aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.cvsignore7
-rw-r--r--ACKNOWLEDGMENTS176
-rw-r--r--BUGS24
-rw-r--r--FAQ394
-rw-r--r--INSTALL576
-rw-r--r--Mailman/.cvsignore3
-rw-r--r--Mailman/Archiver/.cvsignore1
-rw-r--r--Mailman/Archiver/Archiver.py232
-rw-r--r--Mailman/Archiver/HyperArch.py1224
-rw-r--r--Mailman/Archiver/HyperDatabase.py338
-rw-r--r--Mailman/Archiver/Makefile.in72
-rw-r--r--Mailman/Archiver/__init__.py17
-rw-r--r--Mailman/Archiver/pipermail.py854
-rw-r--r--Mailman/Autoresponder.py43
-rw-r--r--Mailman/Bouncer.py281
-rw-r--r--Mailman/Bouncers/.cvsignore1
-rw-r--r--Mailman/Bouncers/BouncerAPI.py71
-rw-r--r--Mailman/Bouncers/Caiwireless.py45
-rw-r--r--Mailman/Bouncers/Compuserve.py45
-rw-r--r--Mailman/Bouncers/DSN.py79
-rw-r--r--Mailman/Bouncers/Exchange.py47
-rw-r--r--Mailman/Bouncers/Exim.py30
-rw-r--r--Mailman/Bouncers/GroupWise.py70
-rw-r--r--Mailman/Bouncers/LLNL.py31
-rw-r--r--Mailman/Bouncers/Makefile.in74
-rw-r--r--Mailman/Bouncers/Microsoft.py48
-rw-r--r--Mailman/Bouncers/Netscape.py88
-rw-r--r--Mailman/Bouncers/Postfix.py86
-rw-r--r--Mailman/Bouncers/Qmail.py61
-rw-r--r--Mailman/Bouncers/SMTP32.py57
-rw-r--r--Mailman/Bouncers/SimpleMatch.py100
-rw-r--r--Mailman/Bouncers/SimpleWarning.py44
-rw-r--r--Mailman/Bouncers/Sina.py47
-rw-r--r--Mailman/Bouncers/Yahoo.py53
-rw-r--r--Mailman/Bouncers/Yale.py79
-rw-r--r--Mailman/Bouncers/__init__.py15
-rw-r--r--Mailman/Cgi/.cvsignore1
-rw-r--r--Mailman/Cgi/Auth.py59
-rw-r--r--Mailman/Cgi/Makefile.in71
-rw-r--r--Mailman/Cgi/__init__.py15
-rw-r--r--Mailman/Cgi/admin.py1407
-rw-r--r--Mailman/Cgi/admindb.py769
-rw-r--r--Mailman/Cgi/confirm.py791
-rw-r--r--Mailman/Cgi/create.py410
-rw-r--r--Mailman/Cgi/edithtml.py170
-rw-r--r--Mailman/Cgi/listinfo.py206
-rw-r--r--Mailman/Cgi/options.py950
-rw-r--r--Mailman/Cgi/private.py162
-rw-r--r--Mailman/Cgi/rmlist.py242
-rw-r--r--Mailman/Cgi/roster.py129
-rw-r--r--Mailman/Cgi/subscribe.py276
-rw-r--r--Mailman/Commands/.cvsignore1
-rw-r--r--Mailman/Commands/Makefile.in69
-rw-r--r--Mailman/Commands/__init__.py15
-rw-r--r--Mailman/Commands/cmd_confirm.py84
-rw-r--r--Mailman/Commands/cmd_echo.py26
-rw-r--r--Mailman/Commands/cmd_end.py33
-rw-r--r--Mailman/Commands/cmd_help.py92
-rw-r--r--Mailman/Commands/cmd_info.py49
-rw-r--r--Mailman/Commands/cmd_join.py20
-rw-r--r--Mailman/Commands/cmd_leave.py20
-rw-r--r--Mailman/Commands/cmd_lists.py69
-rw-r--r--Mailman/Commands/cmd_password.py118
-rw-r--r--Mailman/Commands/cmd_remove.py20
-rw-r--r--Mailman/Commands/cmd_set.py353
-rw-r--r--Mailman/Commands/cmd_stop.py20
-rw-r--r--Mailman/Commands/cmd_subscribe.py136
-rw-r--r--Mailman/Commands/cmd_unsubscribe.py87
-rw-r--r--Mailman/Commands/cmd_who.py133
-rw-r--r--Mailman/Defaults.py.in1224
-rw-r--r--Mailman/Deliverer.py136
-rw-r--r--Mailman/Digester.py73
-rw-r--r--Mailman/Errors.py147
-rw-r--r--Mailman/GatewayManager.py38
-rw-r--r--Mailman/Gui/.cvsignore1
-rw-r--r--Mailman/Gui/Archive.py44
-rw-r--r--Mailman/Gui/Autoresponse.py98
-rw-r--r--Mailman/Gui/Bounce.py183
-rw-r--r--Mailman/Gui/ContentFilter.py169
-rw-r--r--Mailman/Gui/Digest.py160
-rw-r--r--Mailman/Gui/GUIBase.py200
-rw-r--r--Mailman/Gui/General.py446
-rw-r--r--Mailman/Gui/Language.py122
-rw-r--r--Mailman/Gui/Makefile.in69
-rw-r--r--Mailman/Gui/Membership.py34
-rw-r--r--Mailman/Gui/NonDigest.py130
-rw-r--r--Mailman/Gui/Passwords.py31
-rw-r--r--Mailman/Gui/Privacy.py398
-rw-r--r--Mailman/Gui/Topics.py160
-rw-r--r--Mailman/Gui/Usenet.py137
-rw-r--r--Mailman/Gui/__init__.py32
-rw-r--r--Mailman/HTMLFormatter.py433
-rw-r--r--Mailman/Handlers/.cvsignore1
-rw-r--r--Mailman/Handlers/Acknowledge.py62
-rw-r--r--Mailman/Handlers/AfterDelivery.py28
-rw-r--r--Mailman/Handlers/Approve.py82
-rw-r--r--Mailman/Handlers/AvoidDuplicates.py88
-rw-r--r--Mailman/Handlers/CalcRecips.py133
-rw-r--r--Mailman/Handlers/Cleanse.py39
-rw-r--r--Mailman/Handlers/CookHeaders.py254
-rw-r--r--Mailman/Handlers/Decorate.py183
-rw-r--r--Mailman/Handlers/Emergency.py37
-rw-r--r--Mailman/Handlers/FileRecips.py49
-rw-r--r--Mailman/Handlers/Hold.py280
-rw-r--r--Mailman/Handlers/Makefile.in69
-rw-r--r--Mailman/Handlers/MimeDel.py220
-rw-r--r--Mailman/Handlers/Moderate.py164
-rw-r--r--Mailman/Handlers/OwnerRecips.py27
-rw-r--r--Mailman/Handlers/Replybot.py120
-rw-r--r--Mailman/Handlers/SMTPDirect.py349
-rw-r--r--Mailman/Handlers/Scrubber.py400
-rw-r--r--Mailman/Handlers/Sendmail.py116
-rw-r--r--Mailman/Handlers/SpamDetect.py50
-rw-r--r--Mailman/Handlers/Tagger.py156
-rw-r--r--Mailman/Handlers/ToArchive.py39
-rw-r--r--Mailman/Handlers/ToDigest.py351
-rw-r--r--Mailman/Handlers/ToOutgoing.py55
-rw-r--r--Mailman/Handlers/ToUsenet.py44
-rw-r--r--Mailman/Handlers/__init__.py15
-rw-r--r--Mailman/ListAdmin.py579
-rw-r--r--Mailman/LockFile.py596
-rw-r--r--Mailman/Logging/.cvsignore1
-rw-r--r--Mailman/Logging/Logger.py103
-rw-r--r--Mailman/Logging/Makefile.in69
-rw-r--r--Mailman/Logging/MultiLogger.py76
-rw-r--r--Mailman/Logging/StampedLogger.py89
-rw-r--r--Mailman/Logging/Syslog.py69
-rw-r--r--Mailman/Logging/Utils.py52
-rw-r--r--Mailman/Logging/__init__.py15
-rw-r--r--Mailman/MTA/.cvsignore1
-rw-r--r--Mailman/MTA/Makefile.in69
-rw-r--r--Mailman/MTA/Manual.py135
-rw-r--r--Mailman/MTA/Postfix.py344
-rw-r--r--Mailman/MTA/Utils.py79
-rw-r--r--Mailman/MTA/__init__.py15
-rw-r--r--Mailman/MailList.py1346
-rw-r--r--Mailman/Mailbox.py101
-rw-r--r--Mailman/Makefile.in99
-rw-r--r--Mailman/MemberAdaptor.py350
-rw-r--r--Mailman/Message.py274
-rw-r--r--Mailman/OldStyleMemberships.py353
-rw-r--r--Mailman/Pending.py204
-rw-r--r--Mailman/Post.py61
-rw-r--r--Mailman/Queue/.cvsignore1
-rw-r--r--Mailman/Queue/ArchRunner.py76
-rw-r--r--Mailman/Queue/BounceRunner.py195
-rw-r--r--Mailman/Queue/CommandRunner.py220
-rw-r--r--Mailman/Queue/IncomingRunner.py170
-rw-r--r--Mailman/Queue/MaildirRunner.py184
-rw-r--r--Mailman/Queue/Makefile.in69
-rw-r--r--Mailman/Queue/NewsRunner.py158
-rw-r--r--Mailman/Queue/OutgoingRunner.py139
-rw-r--r--Mailman/Queue/Runner.py245
-rw-r--r--Mailman/Queue/Switchboard.py340
-rw-r--r--Mailman/Queue/VirginRunner.py43
-rw-r--r--Mailman/Queue/__init__.py15
-rw-r--r--Mailman/Queue/sbcache.py26
-rw-r--r--Mailman/SafeDict.py70
-rw-r--r--Mailman/SecurityManager.py333
-rw-r--r--Mailman/Site.py107
-rw-r--r--Mailman/TopicMgr.py61
-rw-r--r--Mailman/UserDesc.py57
-rw-r--r--Mailman/Utils.py773
-rw-r--r--Mailman/Version.py48
-rw-r--r--Mailman/__init__.py15
-rw-r--r--Mailman/htmlformat.py678
-rw-r--r--Mailman/i18n.py129
-rw-r--r--Mailman/mm_cfg.py.dist.in44
-rw-r--r--Mailman/versions.py495
-rw-r--r--Makefile.in147
-rw-r--r--NEWS2096
-rw-r--r--README247
-rw-r--r--README-I18N.en166
-rw-r--r--README.BSD27
-rw-r--r--README.CONTRIB17
-rw-r--r--README.EXIM353
-rw-r--r--README.LINUX49
-rw-r--r--README.MACOSX31
-rw-r--r--README.NETSCAPE57
-rw-r--r--README.POSTFIX198
-rw-r--r--README.QMAIL133
-rw-r--r--README.SENDMAIL73
-rw-r--r--README.USERAGENT49
-rw-r--r--TODO174
-rw-r--r--UPGRADING373
-rwxr-xr-xadmin/bin/Release.py229
-rwxr-xr-xadmin/bin/faq2ht.py102
-rwxr-xr-xadmin/bin/mm2do76
-rw-r--r--admin/www/MMGenerator.py110
-rw-r--r--admin/www/Makefile28
-rw-r--r--admin/www/admins.ht8
-rw-r--r--admin/www/admins.html134
-rw-r--r--admin/www/bugs.ht25
-rw-r--r--admin/www/bugs.html166
-rw-r--r--admin/www/devs.ht93
-rw-r--r--admin/www/devs.html212
-rw-r--r--admin/www/doco-links.h7
-rw-r--r--admin/www/docs.ht66
-rw-r--r--admin/www/docs.html200
-rw-r--r--admin/www/download-links.h6
-rw-r--r--admin/www/download.ht38
-rw-r--r--admin/www/download.html161
-rw-r--r--admin/www/faq.ht301
-rw-r--r--admin/www/faq.html433
-rw-r--r--admin/www/features.ht80
-rw-r--r--admin/www/features.html217
-rw-r--r--admin/www/help.ht24
-rw-r--r--admin/www/help.html165
-rw-r--r--admin/www/i18n.ht167
-rw-r--r--admin/www/i18n.html293
-rw-r--r--admin/www/images/PythonPoweredSmall.pngbin0 -> 415 bytes
-rw-r--r--admin/www/images/dragonlogo.jpgbin0 -> 6150 bytes
-rw-r--r--admin/www/images/logo-70.jpgbin0 -> 3734 bytes
-rw-r--r--admin/www/images/logo-lg.jpgbin0 -> 6150 bytes
-rw-r--r--admin/www/images/logo-sm.jpgbin0 -> 2022 bytes
-rw-r--r--admin/www/images/mailman.jpgbin0 -> 28962 bytes
-rw-r--r--admin/www/index.ht59
-rw-r--r--admin/www/index.html204
-rw-r--r--admin/www/install-links.h11
-rw-r--r--admin/www/install.ht17
-rw-r--r--admin/www/install.html140
-rw-r--r--admin/www/inthenews.ht504
-rw-r--r--admin/www/inthenews.html637
-rw-r--r--admin/www/links.h9
-rw-r--r--admin/www/lists.ht52
-rw-r--r--admin/www/lists.html185
-rw-r--r--admin/www/mailman.html146
-rw-r--r--admin/www/mgrs.ht8
-rw-r--r--admin/www/mgrs.html159
-rw-r--r--admin/www/mirrors.ht12
-rw-r--r--admin/www/mirrors.html145
-rw-r--r--admin/www/otherstuff.ht23
-rw-r--r--admin/www/otherstuff.html156
-rw-r--r--admin/www/prev.ht20
-rw-r--r--admin/www/prev.html153
-rw-r--r--admin/www/requirements.ht56
-rw-r--r--admin/www/requirements.html196
-rw-r--r--admin/www/site.ht240
-rw-r--r--admin/www/site.html366
-rw-r--r--admin/www/todo.ht190
-rw-r--r--admin/www/todo.html323
-rw-r--r--admin/www/users.ht8
-rw-r--r--admin/www/users.html134
-rw-r--r--admin/www/version.ht12
-rw-r--r--admin/www/version.html135
-rw-r--r--bin/.cvsignore2
-rw-r--r--bin/Makefile.in78
-rwxr-xr-xbin/add_members297
-rw-r--r--bin/arch187
-rw-r--r--bin/b4b5-archfix96
-rw-r--r--bin/change_pw209
-rwxr-xr-xbin/check_db153
-rwxr-xr-xbin/check_perms362
-rw-r--r--bin/cleanarch165
-rwxr-xr-xbin/clone_member219
-rw-r--r--bin/config_list339
-rw-r--r--bin/convert.py44
-rw-r--r--bin/dumpdb134
-rwxr-xr-xbin/find_member184
-rw-r--r--bin/fix_url.py92
-rw-r--r--bin/genaliases102
-rw-r--r--bin/inject107
-rw-r--r--bin/list_admins101
-rw-r--r--bin/list_lists122
-rwxr-xr-xbin/list_members232
-rw-r--r--bin/list_owners120
-rw-r--r--bin/mailmanctl524
-rwxr-xr-xbin/mmsitepass105
-rwxr-xr-xbin/newlist219
-rwxr-xr-xbin/pygettext.py545
-rw-r--r--bin/qrunner270
-rwxr-xr-xbin/remove_members179
-rwxr-xr-xbin/rmlist138
-rwxr-xr-xbin/sync_members286
-rwxr-xr-xbin/transcheck405
-rw-r--r--bin/unshunt87
-rwxr-xr-xbin/update588
-rw-r--r--bin/version26
-rw-r--r--bin/withlist275
-rwxr-xr-xconfigure2415
-rw-r--r--configure.in645
-rw-r--r--contrib/README4
-rw-r--r--contrib/README.check_perms_grsecurity14
-rw-r--r--contrib/auto116
-rw-r--r--contrib/check_perms_grsecurity.py180
-rw-r--r--contrib/mailman.mc143
-rw-r--r--contrib/majordomo2mailman.pl691
-rw-r--r--contrib/mm-handler236
-rw-r--r--contrib/mm-handler.readme151
-rw-r--r--contrib/qmail-to-mailman.py115
-rw-r--r--contrib/rotatelogs.py103
-rw-r--r--contrib/virtusertable37
-rw-r--r--cron/.cvsignore2
-rw-r--r--cron/Makefile.in75
-rw-r--r--cron/bumpdigests96
-rwxr-xr-xcron/checkdbs136
-rwxr-xr-xcron/crontab.in.in24
-rw-r--r--cron/disabled209
-rwxr-xr-xcron/gate_news274
-rwxr-xr-xcron/mailpasswds216
-rw-r--r--cron/nightly_gzip156
-rwxr-xr-xcron/senddigests94
-rw-r--r--doc/IPC7/README8
-rwxr-xr-xdoc/IPC7/ipc7.doc.gzbin0 -> 87676 bytes
-rwxr-xr-xdoc/IPC7/ipc7.ppt.gzbin0 -> 147911 bytes
-rw-r--r--doc/LISA-98/README13
-rw-r--r--doc/LISA-98/published.ps.gzbin0 -> 351185 bytes
-rw-r--r--doc/mailman-admin.tex1352
-rw-r--r--doc/posting-flow-chart.ps735
-rw-r--r--gnu-COPYING-GPL339
-rwxr-xr-xinstall-sh250
-rw-r--r--messages/.cvsignore2
-rw-r--r--messages/Makefile.in144
-rw-r--r--messages/big5/LC_MESSAGES/mailman.mobin0 -> 13729 bytes
-rw-r--r--messages/big5/LC_MESSAGES/mailman.po8621
-rw-r--r--messages/cs/LC_MESSAGES/mailman.mobin0 -> 221613 bytes
-rw-r--r--messages/cs/LC_MESSAGES/mailman.po10238
-rw-r--r--messages/de/LC_MESSAGES/mailman.mobin0 -> 290997 bytes
-rw-r--r--messages/de/LC_MESSAGES/mailman.po12706
-rw-r--r--messages/de/README.de23
-rw-r--r--messages/es/LC_MESSAGES/mailman.mobin0 -> 325790 bytes
-rw-r--r--messages/es/LC_MESSAGES/mailman.po11837
-rw-r--r--messages/es/README.es82
-rw-r--r--messages/et/LC_MESSAGES/mailman.mobin0 -> 105537 bytes
-rw-r--r--messages/et/LC_MESSAGES/mailman.po8701
-rw-r--r--messages/fi/LC_MESSAGES/mailman.mobin0 -> 158955 bytes
-rw-r--r--messages/fi/LC_MESSAGES/mailman.po9765
-rw-r--r--messages/fi/README.fi13
-rw-r--r--messages/fr/LC_MESSAGES/mailman.mobin0 -> 330226 bytes
-rw-r--r--messages/fr/LC_MESSAGES/mailman.po11371
-rw-r--r--messages/fr/README.fr21
-rw-r--r--messages/hu/FAQ.hu464
-rw-r--r--messages/hu/INSTALL.hu597
-rw-r--r--messages/hu/LC_MESSAGES/mailman.mobin0 -> 319335 bytes
-rw-r--r--messages/hu/LC_MESSAGES/mailman.po11063
-rw-r--r--messages/hu/README.CONTRIB.hu17
-rw-r--r--messages/hu/README.EXIM.hu365
-rw-r--r--messages/hu/README.LINUX.hu59
-rw-r--r--messages/hu/README.MACOSX.hu35
-rw-r--r--messages/hu/README.NETSCAPE.hu57
-rw-r--r--messages/hu/README.POSTFIX.hu212
-rw-r--r--messages/hu/README.SENDMAIL.hu76
-rw-r--r--messages/hu/README.USERAGENT.hu49
-rw-r--r--messages/hu/README.hu267
-rw-r--r--messages/hu/UPGRADING.hu245
-rw-r--r--messages/it/LC_MESSAGES/mailman.mobin0 -> 340894 bytes
-rw-r--r--messages/it/LC_MESSAGES/mailman.po11800
-rw-r--r--messages/it/README.it30
-rw-r--r--messages/ja/INSTALL576
-rw-r--r--messages/ja/LC_MESSAGES/mailman.mobin0 -> 300672 bytes
-rw-r--r--messages/ja/LC_MESSAGES/mailman.po10724
-rw-r--r--messages/ja/README212
-rw-r--r--messages/ja/README.ja78
-rw-r--r--messages/ja/UPGRADING195
-rw-r--r--messages/ko/LC_MESSAGES/mailman.mobin0 -> 148433 bytes
-rw-r--r--messages/ko/LC_MESSAGES/mailman.po9528
-rw-r--r--messages/ko/README.ko26
-rw-r--r--messages/lt/LC_MESSAGES/mailman.mobin0 -> 38344 bytes
-rw-r--r--messages/lt/LC_MESSAGES/mailman.po8096
-rw-r--r--messages/mailman.pot7861
-rw-r--r--messages/nl/LC_MESSAGES/mailman.mobin0 -> 61094 bytes
-rw-r--r--messages/nl/LC_MESSAGES/mailman.po8465
-rw-r--r--messages/no/LC_MESSAGES/mailman.mobin0 -> 304308 bytes
-rw-r--r--messages/no/LC_MESSAGES/mailman.po11778
-rw-r--r--messages/pt_BR/LC_MESSAGES/mailman.mobin0 -> 334389 bytes
-rw-r--r--messages/pt_BR/LC_MESSAGES/mailman.po11781
-rw-r--r--messages/ru/LC_MESSAGES/mailman.mobin0 -> 74139 bytes
-rw-r--r--messages/ru/LC_MESSAGES/mailman.po8742
-rw-r--r--messages/ru/README.ru17
-rw-r--r--messages/sv/LC_MESSAGES/mailman.mobin0 -> 249221 bytes
-rw-r--r--messages/sv/LC_MESSAGES/mailman.po14400
-rw-r--r--messages/sv/README.sv30
-rw-r--r--misc/.cvsignore3
-rw-r--r--misc/JapaneseCodecs-1.4.9.tar.gzbin0 -> 288276 bytes
-rw-r--r--misc/KoreanCodecs-2.0.5.tar.gzbin0 -> 260762 bytes
-rw-r--r--misc/Makefile.in99
-rw-r--r--misc/PythonPowered.pngbin0 -> 945 bytes
-rw-r--r--misc/email-2.4.3.tar.gzbin0 -> 1108079 bytes
-rw-r--r--misc/gnu-head-tiny.jpgbin0 -> 3049 bytes
-rw-r--r--misc/mailman-large.jpgbin0 -> 6150 bytes
-rw-r--r--misc/mailman.in54
-rw-r--r--misc/mailman.jpgbin0 -> 2022 bytes
-rw-r--r--misc/mm-icon.pngbin0 -> 281 bytes
-rw-r--r--misc/paths.py.in60
-rwxr-xr-xmkinstalldirs40
-rw-r--r--scripts/.cvsignore1
-rw-r--r--scripts/Makefile.in75
-rw-r--r--scripts/bounces61
-rwxr-xr-xscripts/confirm62
-rw-r--r--scripts/driver243
-rwxr-xr-xscripts/join61
-rwxr-xr-xscripts/leave61
-rwxr-xr-xscripts/owner67
-rwxr-xr-xscripts/post69
-rwxr-xr-xscripts/request64
-rw-r--r--src/.cvsignore15
-rw-r--r--src/Makefile.in133
-rw-r--r--src/cgi-wrapper.c68
-rw-r--r--src/common.c299
-rw-r--r--src/common.h61
-rw-r--r--src/mail-wrapper.c91
-rw-r--r--src/vsnprintf.c125
-rw-r--r--templates/.cvsignore1
-rw-r--r--templates/Makefile.in74
-rw-r--r--templates/big5/admindbpreamble.html22
-rw-r--r--templates/big5/adminsubscribeack.txt2
-rw-r--r--templates/big5/adminunsubscribeack.txt3
-rw-r--r--templates/big5/admlogin.html31
-rw-r--r--templates/big5/approve.txt12
-rw-r--r--templates/big5/bounce.txt12
-rw-r--r--templates/big5/checkdbs.txt8
-rw-r--r--templates/big5/convert.txt40
-rw-r--r--templates/big5/cronpass.txt16
-rw-r--r--templates/big5/handle_opts.html9
-rw-r--r--templates/big5/headfoot.html23
-rw-r--r--templates/big5/help.txt33
-rw-r--r--templates/big5/listinfo.html127
-rw-r--r--templates/big5/masthead.txt18
-rw-r--r--templates/big5/newlist.txt32
-rw-r--r--templates/big5/options.html150
-rw-r--r--templates/big5/postack.txt7
-rw-r--r--templates/big5/postauth.txt12
-rw-r--r--templates/big5/postheld.txt11
-rw-r--r--templates/big5/refuse.txt11
-rw-r--r--templates/big5/roster.html50
-rw-r--r--templates/big5/subauth.txt10
-rw-r--r--templates/big5/subscribe.html9
-rw-r--r--templates/big5/subscribeack.txt34
-rw-r--r--templates/big5/userpass.txt17
-rw-r--r--templates/big5/verify.txt17
-rw-r--r--templates/cs/admindbdetails.html66
-rw-r--r--templates/cs/admindbpreamble.html14
-rw-r--r--templates/cs/admindbsummary.html18
-rw-r--r--templates/cs/adminsubscribeack.txt3
-rw-r--r--templates/cs/adminunsubscribeack.txt2
-rw-r--r--templates/cs/admlogin.html36
-rw-r--r--templates/cs/approve.txt17
-rw-r--r--templates/cs/article.html48
-rw-r--r--templates/cs/bounce.txt16
-rw-r--r--templates/cs/checkdbs.txt8
-rw-r--r--templates/cs/convert.txt42
-rw-r--r--templates/cs/cronpass.txt21
-rw-r--r--templates/cs/disabled.txt24
-rw-r--r--templates/cs/emptyarchive.html15
-rw-r--r--templates/cs/headfoot.html30
-rw-r--r--templates/cs/help.txt41
-rw-r--r--templates/cs/listinfo.html141
-rw-r--r--templates/cs/masthead.txt16
-rw-r--r--templates/cs/newlist.txt40
-rw-r--r--templates/cs/options.html293
-rw-r--r--templates/cs/postack.txt8
-rw-r--r--templates/cs/postauth.txt13
-rw-r--r--templates/cs/postheld.txt16
-rw-r--r--templates/cs/private.html41
-rw-r--r--templates/cs/refuse.txt12
-rw-r--r--templates/cs/roster.html54
-rw-r--r--templates/cs/subauth.txt10
-rw-r--r--templates/cs/subscribe.html9
-rw-r--r--templates/cs/subscribeack.txt34
-rw-r--r--templates/cs/unsub.txt19
-rw-r--r--templates/cs/unsubauth.txt12
-rw-r--r--templates/cs/userpass.txt18
-rw-r--r--templates/cs/verify.txt26
-rw-r--r--templates/de/admindbdetails.html78
-rw-r--r--templates/de/admindbpreamble.html32
-rw-r--r--templates/de/admindbsummary.html15
-rw-r--r--templates/de/adminsubscribeack.txt1
-rw-r--r--templates/de/adminunsubscribeack.txt2
-rw-r--r--templates/de/admlogin.html39
-rw-r--r--templates/de/approve.txt15
-rw-r--r--templates/de/article.html48
-rw-r--r--templates/de/bounce.txt13
-rw-r--r--templates/de/checkdbs.txt9
-rw-r--r--templates/de/convert.txt34
-rw-r--r--templates/de/cronpass.txt35
-rw-r--r--templates/de/disabled.txt26
-rw-r--r--templates/de/headfoot.html32
-rw-r--r--templates/de/help.txt38
-rw-r--r--templates/de/invite.txt20
-rw-r--r--templates/de/listinfo.html142
-rw-r--r--templates/de/masthead.txt16
-rw-r--r--templates/de/newlist.txt38
-rw-r--r--templates/de/options.html287
-rw-r--r--templates/de/postack.txt7
-rw-r--r--templates/de/postauth.txt13
-rw-r--r--templates/de/postheld.txt15
-rw-r--r--templates/de/private.html42
-rw-r--r--templates/de/refuse.txt11
-rw-r--r--templates/de/roster.html51
-rw-r--r--templates/de/subauth.txt10
-rw-r--r--templates/de/subscribe.html9
-rw-r--r--templates/de/subscribeack.txt36
-rw-r--r--templates/de/unsub.txt27
-rw-r--r--templates/de/userpass.txt24
-rw-r--r--templates/de/verify.txt25
-rw-r--r--templates/en/admindbdetails.html65
-rw-r--r--templates/en/admindbpreamble.html10
-rw-r--r--templates/en/admindbsummary.html14
-rw-r--r--templates/en/adminsubscribeack.txt3
-rw-r--r--templates/en/adminunsubscribeack.txt2
-rw-r--r--templates/en/admlogin.html39
-rw-r--r--templates/en/approve.txt15
-rw-r--r--templates/en/archidxentry.html4
-rw-r--r--templates/en/archidxfoot.html21
-rw-r--r--templates/en/archidxhead.html24
-rw-r--r--templates/en/archlistend.html1
-rw-r--r--templates/en/archliststart.html4
-rw-r--r--templates/en/archtoc.html20
-rw-r--r--templates/en/archtocentry.html12
-rw-r--r--templates/en/article.html50
-rw-r--r--templates/en/bounce.txt13
-rw-r--r--templates/en/checkdbs.txt7
-rw-r--r--templates/en/convert.txt34
-rw-r--r--templates/en/cronpass.txt19
-rw-r--r--templates/en/disabled.txt25
-rw-r--r--templates/en/emptyarchive.html15
-rw-r--r--templates/en/headfoot.html29
-rw-r--r--templates/en/help.txt33
-rw-r--r--templates/en/invite.txt20
-rw-r--r--templates/en/listinfo.html144
-rw-r--r--templates/en/masthead.txt13
-rw-r--r--templates/en/newlist.txt35
-rw-r--r--templates/en/nomoretoday.txt8
-rw-r--r--templates/en/options.html317
-rw-r--r--templates/en/postack.txt8
-rw-r--r--templates/en/postauth.txt13
-rw-r--r--templates/en/postheld.txt15
-rw-r--r--templates/en/private.html43
-rw-r--r--templates/en/refuse.txt13
-rw-r--r--templates/en/roster.html53
-rw-r--r--templates/en/subauth.txt11
-rw-r--r--templates/en/subscribe.html9
-rw-r--r--templates/en/subscribeack.txt33
-rw-r--r--templates/en/unsub.txt23
-rw-r--r--templates/en/unsubauth.txt11
-rw-r--r--templates/en/userpass.txt24
-rw-r--r--templates/en/verify.txt22
-rw-r--r--templates/es/admindbdetails.html63
-rw-r--r--templates/es/admindbpreamble.html10
-rw-r--r--templates/es/admindbsummary.html14
-rw-r--r--templates/es/adminsubscribeack.txt3
-rw-r--r--templates/es/adminunsubscribeack.txt3
-rw-r--r--templates/es/admlogin.html37
-rw-r--r--templates/es/approve.txt16
-rw-r--r--templates/es/article.html48
-rw-r--r--templates/es/bounce.txt12
-rw-r--r--templates/es/checkdbs.txt8
-rw-r--r--templates/es/convert.txt38
-rw-r--r--templates/es/cronpass.txt23
-rw-r--r--templates/es/disabled.txt27
-rw-r--r--templates/es/emptyarchive.html15
-rw-r--r--templates/es/handle_opts.html9
-rw-r--r--templates/es/headfoot.html33
-rw-r--r--templates/es/help.txt37
-rw-r--r--templates/es/invite.txt21
-rw-r--r--templates/es/listinfo.html144
-rw-r--r--templates/es/masthead.txt18
-rw-r--r--templates/es/newlist.txt37
-rw-r--r--templates/es/nomoretoday.txt10
-rw-r--r--templates/es/options.html326
-rw-r--r--templates/es/postack.txt7
-rw-r--r--templates/es/postauth.txt13
-rw-r--r--templates/es/postheld.txt16
-rw-r--r--templates/es/private.html37
-rw-r--r--templates/es/refuse.txt12
-rw-r--r--templates/es/roster.html52
-rw-r--r--templates/es/subauth.txt11
-rw-r--r--templates/es/subscribe.html9
-rw-r--r--templates/es/subscribeack.txt37
-rw-r--r--templates/es/unsub.txt24
-rw-r--r--templates/es/unsubauth.txt11
-rw-r--r--templates/es/userpass.txt28
-rw-r--r--templates/es/verify.txt26
-rw-r--r--templates/et/admindbdetails.html63
-rw-r--r--templates/et/admindbpreamble.html9
-rw-r--r--templates/et/admindbsummary.html13
-rw-r--r--templates/et/adminsubscribeack.txt3
-rw-r--r--templates/et/adminunsubscribeack.txt2
-rw-r--r--templates/et/admlogin.html36
-rw-r--r--templates/et/approve.txt14
-rw-r--r--templates/et/article.html51
-rw-r--r--templates/et/bounce.txt13
-rw-r--r--templates/et/checkdbs.txt9
-rw-r--r--templates/et/convert.txt32
-rw-r--r--templates/et/cronpass.txt19
-rw-r--r--templates/et/disabled.txt26
-rw-r--r--templates/et/emptyarchive.html14
-rw-r--r--templates/et/headfoot.html25
-rw-r--r--templates/et/help.txt33
-rw-r--r--templates/et/invite.txt22
-rw-r--r--templates/et/listinfo.html137
-rw-r--r--templates/et/masthead.txt16
-rw-r--r--templates/et/newlist.txt36
-rw-r--r--templates/et/options.html303
-rw-r--r--templates/et/postack.txt8
-rw-r--r--templates/et/postauth.txt12
-rw-r--r--templates/et/postheld.txt15
-rw-r--r--templates/et/private.html40
-rw-r--r--templates/et/refuse.txt12
-rw-r--r--templates/et/roster.html53
-rw-r--r--templates/et/subauth.txt6
-rw-r--r--templates/et/subscribe.html9
-rw-r--r--templates/et/subscribeack.txt38
-rw-r--r--templates/et/unsub.txt29
-rw-r--r--templates/et/unsubauth.txt7
-rw-r--r--templates/et/userpass.txt26
-rw-r--r--templates/et/verify.txt30
-rw-r--r--templates/fi/admindbdetails.html63
-rw-r--r--templates/fi/admindbpreamble.html57
-rw-r--r--templates/fi/admindbsummary.html17
-rw-r--r--templates/fi/adminsubscribeack.txt3
-rw-r--r--templates/fi/adminunsubscribeack.txt2
-rw-r--r--templates/fi/admlogin.html41
-rw-r--r--templates/fi/approve.txt17
-rw-r--r--templates/fi/article.html49
-rw-r--r--templates/fi/bounce.txt12
-rw-r--r--templates/fi/checkdbs.txt6
-rw-r--r--templates/fi/convert.txt41
-rw-r--r--templates/fi/cronpass.txt19
-rw-r--r--templates/fi/disabled.txt25
-rw-r--r--templates/fi/headfoot.html44
-rw-r--r--templates/fi/help.txt107
-rw-r--r--templates/fi/listinfo.html147
-rw-r--r--templates/fi/masthead.txt18
-rw-r--r--templates/fi/newlist.txt42
-rw-r--r--templates/fi/options.html288
-rw-r--r--templates/fi/postack.txt7
-rw-r--r--templates/fi/postauth.txt14
-rw-r--r--templates/fi/postheld.txt16
-rw-r--r--templates/fi/private.html43
-rw-r--r--templates/fi/reenable.txt4
-rw-r--r--templates/fi/refuse.txt13
-rw-r--r--templates/fi/roster.html53
-rw-r--r--templates/fi/subauth.txt8
-rw-r--r--templates/fi/subscribe.html9
-rw-r--r--templates/fi/subscribeack.txt41
-rw-r--r--templates/fi/unsub.txt25
-rw-r--r--templates/fi/unsubauth.txt9
-rw-r--r--templates/fi/userpass.txt26
-rw-r--r--templates/fi/verify.txt26
-rw-r--r--templates/fr/admindbdetails.html64
-rw-r--r--templates/fr/admindbpreamble.html12
-rw-r--r--templates/fr/admindbsummary.html11
-rw-r--r--templates/fr/adminsubscribeack.txt3
-rw-r--r--templates/fr/adminunsubscribeack.txt2
-rw-r--r--templates/fr/admlogin.html40
-rw-r--r--templates/fr/approve.txt16
-rw-r--r--templates/fr/archidxentry.html4
-rw-r--r--templates/fr/archidxfoot.html22
-rw-r--r--templates/fr/archidxhead.html26
-rw-r--r--templates/fr/archlistend.html1
-rw-r--r--templates/fr/archliststart.html6
-rw-r--r--templates/fr/archtoc.html19
-rw-r--r--templates/fr/archtocentry.html10
-rw-r--r--templates/fr/article.html52
-rw-r--r--templates/fr/bounce.txt13
-rw-r--r--templates/fr/checkdbs.txt7
-rw-r--r--templates/fr/convert.txt37
-rw-r--r--templates/fr/cronpass.txt21
-rw-r--r--templates/fr/disabled.txt29
-rw-r--r--templates/fr/emptyarchive.html18
-rw-r--r--templates/fr/handle_opts.html9
-rw-r--r--templates/fr/headfoot.html31
-rw-r--r--templates/fr/help.txt35
-rw-r--r--templates/fr/invite.txt20
-rw-r--r--templates/fr/listinfo.html149
-rw-r--r--templates/fr/masthead.txt15
-rw-r--r--templates/fr/newlist.txt40
-rw-r--r--templates/fr/nomoretoday.txt10
-rw-r--r--templates/fr/options.html339
-rw-r--r--templates/fr/postack.txt8
-rw-r--r--templates/fr/postauth.txt13
-rw-r--r--templates/fr/postheld.txt16
-rw-r--r--templates/fr/private.html45
-rw-r--r--templates/fr/refuse.txt13
-rw-r--r--templates/fr/roster.html52
-rw-r--r--templates/fr/subauth.txt10
-rw-r--r--templates/fr/subscribe.html9
-rw-r--r--templates/fr/subscribeack.txt36
-rw-r--r--templates/fr/unsub.txt22
-rw-r--r--templates/fr/unsubauth.txt11
-rw-r--r--templates/fr/userpass.txt24
-rw-r--r--templates/fr/verify.txt21
-rw-r--r--templates/gb/admindbpreamble.html22
-rw-r--r--templates/gb/adminsubscribeack.txt2
-rw-r--r--templates/gb/adminunsubscribeack.txt3
-rw-r--r--templates/gb/admlogin.html31
-rw-r--r--templates/gb/approve.txt12
-rw-r--r--templates/gb/bounce.txt12
-rw-r--r--templates/gb/checkdbs.txt8
-rw-r--r--templates/gb/convert.txt40
-rw-r--r--templates/gb/cronpass.txt16
-rw-r--r--templates/gb/handle_opts.html9
-rw-r--r--templates/gb/headfoot.html23
-rw-r--r--templates/gb/help.txt33
-rw-r--r--templates/gb/listinfo.html127
-rw-r--r--templates/gb/masthead.txt18
-rw-r--r--templates/gb/newlist.txt32
-rw-r--r--templates/gb/options.html150
-rw-r--r--templates/gb/postack.txt7
-rw-r--r--templates/gb/postauth.txt12
-rw-r--r--templates/gb/postheld.txt11
-rw-r--r--templates/gb/refuse.txt11
-rw-r--r--templates/gb/roster.html50
-rw-r--r--templates/gb/subauth.txt10
-rw-r--r--templates/gb/subscribe.html9
-rw-r--r--templates/gb/subscribeack.txt34
-rw-r--r--templates/gb/userpass.txt17
-rw-r--r--templates/gb/verify.txt17
-rw-r--r--templates/hu/admindbdetails.html68
-rw-r--r--templates/hu/admindbpreamble.html11
-rw-r--r--templates/hu/admindbsummary.html13
-rw-r--r--templates/hu/adminsubscribeack.txt1
-rw-r--r--templates/hu/adminunsubscribeack.txt1
-rw-r--r--templates/hu/admlogin.html32
-rw-r--r--templates/hu/approve.txt15
-rw-r--r--templates/hu/archidxentry.html4
-rw-r--r--templates/hu/archidxfoot.html19
-rw-r--r--templates/hu/archidxhead.html23
-rw-r--r--templates/hu/archlistend.html1
-rw-r--r--templates/hu/archliststart.html4
-rw-r--r--templates/hu/archtoc.html20
-rw-r--r--templates/hu/archtocentry.html12
-rw-r--r--templates/hu/article.html49
-rw-r--r--templates/hu/bounce.txt13
-rw-r--r--templates/hu/checkdbs.txt7
-rw-r--r--templates/hu/convert.txt31
-rw-r--r--templates/hu/cronpass.txt20
-rw-r--r--templates/hu/disabled.txt24
-rw-r--r--templates/hu/emptyarchive.html14
-rw-r--r--templates/hu/headfoot.html25
-rw-r--r--templates/hu/help.txt34
-rw-r--r--templates/hu/illik.html1542
-rw-r--r--templates/hu/invite.txt21
-rw-r--r--templates/hu/listinfo.html139
-rw-r--r--templates/hu/masthead.txt14
-rw-r--r--templates/hu/newlist.txt35
-rw-r--r--templates/hu/nomoretoday.txt8
-rw-r--r--templates/hu/options.html306
-rw-r--r--templates/hu/postack.txt8
-rw-r--r--templates/hu/postauth.txt13
-rw-r--r--templates/hu/postheld.txt15
-rw-r--r--templates/hu/private.html37
-rw-r--r--templates/hu/refuse.txt13
-rw-r--r--templates/hu/roster.html51
-rw-r--r--templates/hu/subauth.txt11
-rw-r--r--templates/hu/subscribe.html10
-rw-r--r--templates/hu/subscribeack.txt34
-rw-r--r--templates/hu/unsub.txt24
-rw-r--r--templates/hu/unsubauth.txt11
-rw-r--r--templates/hu/userpass.txt23
-rw-r--r--templates/hu/verify.txt25
-rw-r--r--templates/it/admindbdetails.html81
-rw-r--r--templates/it/admindbpreamble.html11
-rw-r--r--templates/it/admindbsummary.html14
-rw-r--r--templates/it/adminsubscribeack.txt1
-rw-r--r--templates/it/adminunsubscribeack.txt1
-rw-r--r--templates/it/admlogin.html39
-rw-r--r--templates/it/approve.txt16
-rw-r--r--templates/it/archidxentry.html4
-rw-r--r--templates/it/archidxfoot.html21
-rw-r--r--templates/it/archidxhead.html24
-rw-r--r--templates/it/archlistend.html1
-rw-r--r--templates/it/archliststart.html4
-rw-r--r--templates/it/archtoc.html20
-rw-r--r--templates/it/archtocentry.html12
-rw-r--r--templates/it/article.html49
-rw-r--r--templates/it/bounce.txt15
-rw-r--r--templates/it/checkdbs.txt10
-rw-r--r--templates/it/convert.txt38
-rw-r--r--templates/it/cronpass.txt22
-rw-r--r--templates/it/disabled.txt26
-rw-r--r--templates/it/emptyarchive.html16
-rw-r--r--templates/it/headfoot.html31
-rw-r--r--templates/it/help.txt33
-rw-r--r--templates/it/invite.txt21
-rw-r--r--templates/it/listinfo.html152
-rw-r--r--templates/it/masthead.txt16
-rw-r--r--templates/it/newlist.txt39
-rw-r--r--templates/it/nomoretoday.txt9
-rw-r--r--templates/it/options.html317
-rw-r--r--templates/it/postack.txt8
-rw-r--r--templates/it/postauth.txt13
-rw-r--r--templates/it/postheld.txt18
-rw-r--r--templates/it/private.html44
-rw-r--r--templates/it/refuse.txt13
-rw-r--r--templates/it/roster.html52
-rw-r--r--templates/it/subauth.txt11
-rw-r--r--templates/it/subscribe.html8
-rw-r--r--templates/it/subscribeack.txt34
-rw-r--r--templates/it/unsub.txt24
-rw-r--r--templates/it/unsubauth.txt11
-rw-r--r--templates/it/userpass.txt26
-rw-r--r--templates/it/verify.txt24
-rw-r--r--templates/ja/admindbdetails.html61
-rw-r--r--templates/ja/admindbpreamble.html12
-rw-r--r--templates/ja/admindbsummary.html13
-rw-r--r--templates/ja/adminsubscribeack.txt3
-rw-r--r--templates/ja/adminunsubscribeack.txt2
-rw-r--r--templates/ja/admlogin.html39
-rw-r--r--templates/ja/approve.txt17
-rw-r--r--templates/ja/archidxentry.html4
-rw-r--r--templates/ja/archidxfoot.html21
-rw-r--r--templates/ja/archidxhead.html24
-rw-r--r--templates/ja/archlistend.html1
-rw-r--r--templates/ja/archliststart.html4
-rw-r--r--templates/ja/archtoc.html20
-rw-r--r--templates/ja/archtocentry.html12
-rw-r--r--templates/ja/article.html50
-rw-r--r--templates/ja/bounce.txt12
-rw-r--r--templates/ja/checkdbs.txt9
-rw-r--r--templates/ja/convert.txt33
-rw-r--r--templates/ja/cronpass.txt16
-rw-r--r--templates/ja/disabled.txt25
-rw-r--r--templates/ja/emptyarchive.html16
-rw-r--r--templates/ja/headfoot.html28
-rw-r--r--templates/ja/help.txt37
-rw-r--r--templates/ja/invite.txt22
-rw-r--r--templates/ja/listinfo.html149
-rw-r--r--templates/ja/masthead.txt14
-rw-r--r--templates/ja/newlist.txt35
-rw-r--r--templates/ja/nomoretoday.txt10
-rw-r--r--templates/ja/options.html303
-rw-r--r--templates/ja/postack.txt8
-rw-r--r--templates/ja/postauth.txt10
-rw-r--r--templates/ja/postheld.txt18
-rw-r--r--templates/ja/private.html41
-rw-r--r--templates/ja/refuse.txt12
-rw-r--r--templates/ja/roster.html54
-rw-r--r--templates/ja/subauth.txt9
-rw-r--r--templates/ja/subscribe.html9
-rw-r--r--templates/ja/subscribeack.txt36
-rw-r--r--templates/ja/unsub.txt25
-rw-r--r--templates/ja/unsubauth.txt9
-rw-r--r--templates/ja/userpass.txt24
-rw-r--r--templates/ja/verify.txt24
-rw-r--r--templates/ko/admindbdetails.html56
-rw-r--r--templates/ko/admindbpreamble.html9
-rw-r--r--templates/ko/admindbsummary.html11
-rw-r--r--templates/ko/adminsubscribeack.txt3
-rw-r--r--templates/ko/adminunsubscribeack.txt2
-rw-r--r--templates/ko/admlogin.html33
-rw-r--r--templates/ko/approve.txt15
-rw-r--r--templates/ko/article.html48
-rw-r--r--templates/ko/bounce.txt12
-rw-r--r--templates/ko/checkdbs.txt8
-rw-r--r--templates/ko/convert.txt37
-rw-r--r--templates/ko/cronpass.txt16
-rw-r--r--templates/ko/disabled.txt25
-rw-r--r--templates/ko/emptyarchive.html14
-rw-r--r--templates/ko/headfoot.html22
-rw-r--r--templates/ko/help.txt32
-rw-r--r--templates/ko/invite.txt20
-rw-r--r--templates/ko/listinfo.html139
-rw-r--r--templates/ko/masthead.txt18
-rw-r--r--templates/ko/newlist.txt35
-rw-r--r--templates/ko/options.html306
-rw-r--r--templates/ko/postack.txt7
-rw-r--r--templates/ko/postauth.txt12
-rw-r--r--templates/ko/postheld.txt15
-rw-r--r--templates/ko/private.html42
-rw-r--r--templates/ko/refuse.txt13
-rw-r--r--templates/ko/roster.html50
-rw-r--r--templates/ko/subauth.txt9
-rw-r--r--templates/ko/subscribe.html9
-rw-r--r--templates/ko/subscribeack.txt33
-rw-r--r--templates/ko/unsub.txt20
-rw-r--r--templates/ko/unsubauth.txt10
-rw-r--r--templates/ko/userpass.txt20
-rw-r--r--templates/ko/verify.txt23
-rw-r--r--templates/lt/admindbdetails.html65
-rw-r--r--templates/lt/admindbpreamble.html13
-rw-r--r--templates/lt/admindbsummary.html14
-rw-r--r--templates/lt/adminsubscribeack.txt3
-rw-r--r--templates/lt/adminunsubscribeack.txt1
-rw-r--r--templates/lt/admlogin.html37
-rw-r--r--templates/lt/approve.txt13
-rw-r--r--templates/lt/archidxentry.html4
-rw-r--r--templates/lt/archidxfoot.html20
-rw-r--r--templates/lt/archidxhead.html23
-rw-r--r--templates/lt/archlistend.html1
-rw-r--r--templates/lt/archliststart.html4
-rw-r--r--templates/lt/archtoc.html19
-rw-r--r--templates/lt/archtocentry.html12
-rw-r--r--templates/lt/article.html49
-rw-r--r--templates/lt/bounce.txt13
-rw-r--r--templates/lt/checkdbs.txt9
-rw-r--r--templates/lt/convert.txt34
-rw-r--r--templates/lt/cronpass.txt12
-rw-r--r--templates/lt/disabled.txt28
-rw-r--r--templates/lt/emptyarchive.html14
-rw-r--r--templates/lt/headfoot.html27
-rw-r--r--templates/lt/help.txt36
-rw-r--r--templates/lt/invite.txt21
-rw-r--r--templates/lt/listinfo.html141
-rw-r--r--templates/lt/masthead.txt16
-rw-r--r--templates/lt/newlist.txt35
-rw-r--r--templates/lt/nomoretoday.txt12
-rw-r--r--templates/lt/options.html276
-rw-r--r--templates/lt/postack.txt5
-rw-r--r--templates/lt/postauth.txt10
-rw-r--r--templates/lt/postheld.txt10
-rw-r--r--templates/lt/private.html42
-rw-r--r--templates/lt/refuse.txt12
-rw-r--r--templates/lt/roster.html53
-rw-r--r--templates/lt/subauth.txt8
-rw-r--r--templates/lt/subscribe.html9
-rw-r--r--templates/lt/subscribeack.txt34
-rw-r--r--templates/lt/unsub.txt26
-rw-r--r--templates/lt/unsubauth.txt8
-rw-r--r--templates/lt/userpass.txt26
-rw-r--r--templates/lt/verify.txt25
-rw-r--r--templates/nl/admindbdetails.html65
-rw-r--r--templates/nl/admindbpreamble.html8
-rw-r--r--templates/nl/admindbsummary.html7
-rw-r--r--templates/nl/adminsubscribeack.txt3
-rw-r--r--templates/nl/adminunsubscribeack.txt2
-rw-r--r--templates/nl/admlogin.html30
-rw-r--r--templates/nl/approve.txt14
-rw-r--r--templates/nl/article.html53
-rw-r--r--templates/nl/bounce.txt12
-rw-r--r--templates/nl/checkdbs.txt7
-rw-r--r--templates/nl/convert.txt32
-rw-r--r--templates/nl/cronpass.txt19
-rw-r--r--templates/nl/disabled.txt24
-rw-r--r--templates/nl/emptyarchive.html13
-rw-r--r--templates/nl/headfoot.html43
-rw-r--r--templates/nl/help.txt24
-rw-r--r--templates/nl/invite.txt20
-rw-r--r--templates/nl/listinfo.html126
-rw-r--r--templates/nl/masthead.txt13
-rw-r--r--templates/nl/newlist.txt35
-rw-r--r--templates/nl/options.html280
-rw-r--r--templates/nl/postack.txt7
-rw-r--r--templates/nl/postauth.txt13
-rw-r--r--templates/nl/postheld.txt15
-rw-r--r--templates/nl/private.html34
-rw-r--r--templates/nl/refuse.txt12
-rw-r--r--templates/nl/roster.html50
-rw-r--r--templates/nl/subauth.txt11
-rw-r--r--templates/nl/subscribe.html9
-rw-r--r--templates/nl/subscribeack.txt33
-rw-r--r--templates/nl/unsub.txt21
-rw-r--r--templates/nl/unsubauth.txt10
-rw-r--r--templates/nl/userpass.txt24
-rw-r--r--templates/nl/verify.txt21
-rw-r--r--templates/no/admindbdetails.html62
-rw-r--r--templates/no/admindbpreamble.html8
-rw-r--r--templates/no/admindbsummary.html10
-rw-r--r--templates/no/adminsubscribeack.txt1
-rw-r--r--templates/no/adminunsubscribeack.txt2
-rw-r--r--templates/no/admlogin.html38
-rw-r--r--templates/no/approve.txt14
-rw-r--r--templates/no/archidxfoot.html21
-rw-r--r--templates/no/archidxhead.html24
-rw-r--r--templates/no/archliststart.html4
-rw-r--r--templates/no/archtoc.html20
-rw-r--r--templates/no/archtocentry.html12
-rw-r--r--templates/no/article.html49
-rw-r--r--templates/no/bounce.txt13
-rw-r--r--templates/no/checkdbs.txt7
-rw-r--r--templates/no/convert.txt33
-rw-r--r--templates/no/cronpass.txt19
-rw-r--r--templates/no/disabled.txt25
-rw-r--r--templates/no/emptyarchive.html14
-rw-r--r--templates/no/headfoot.html26
-rw-r--r--templates/no/help.txt33
-rw-r--r--templates/no/invite.txt19
-rw-r--r--templates/no/listinfo.html137
-rw-r--r--templates/no/masthead.txt15
-rw-r--r--templates/no/newlist.txt38
-rw-r--r--templates/no/nomoretoday.txt7
-rw-r--r--templates/no/options.html300
-rw-r--r--templates/no/postack.txt8
-rw-r--r--templates/no/postauth.txt13
-rw-r--r--templates/no/postheld.txt16
-rw-r--r--templates/no/private.html41
-rw-r--r--templates/no/refuse.txt13
-rw-r--r--templates/no/roster.html52
-rw-r--r--templates/no/subauth.txt10
-rw-r--r--templates/no/subscribe.html9
-rw-r--r--templates/no/subscribeack.txt37
-rw-r--r--templates/no/unsub.txt21
-rw-r--r--templates/no/unsubauth.txt10
-rw-r--r--templates/no/userpass.txt26
-rw-r--r--templates/no/verify.txt21
-rw-r--r--templates/pt_BR/admindbdetails.html71
-rw-r--r--templates/pt_BR/admindbpreamble.html11
-rw-r--r--templates/pt_BR/admindbsummary.html14
-rw-r--r--templates/pt_BR/adminsubscribeack.txt3
-rw-r--r--templates/pt_BR/adminunsubscribeack.txt2
-rw-r--r--templates/pt_BR/admlogin.html39
-rw-r--r--templates/pt_BR/admlogin.txt38
-rw-r--r--templates/pt_BR/approve.txt16
-rw-r--r--templates/pt_BR/article.html50
-rw-r--r--templates/pt_BR/bounce.txt14
-rw-r--r--templates/pt_BR/checkdbs.txt6
-rw-r--r--templates/pt_BR/convert.txt37
-rw-r--r--templates/pt_BR/cronpass.txt21
-rw-r--r--templates/pt_BR/disabled.txt27
-rw-r--r--templates/pt_BR/emptyarchive.html15
-rw-r--r--templates/pt_BR/headfoot.html31
-rw-r--r--templates/pt_BR/help.txt34
-rw-r--r--templates/pt_BR/invite.txt21
-rw-r--r--templates/pt_BR/listinfo.html144
-rw-r--r--templates/pt_BR/masthead.txt16
-rw-r--r--templates/pt_BR/newlist.txt41
-rw-r--r--templates/pt_BR/options.html324
-rw-r--r--templates/pt_BR/postack.txt8
-rw-r--r--templates/pt_BR/postauth.txt13
-rw-r--r--templates/pt_BR/postheld.txt15
-rw-r--r--templates/pt_BR/private.html43
-rw-r--r--templates/pt_BR/refuse.txt13
-rw-r--r--templates/pt_BR/roster.html53
-rw-r--r--templates/pt_BR/subauth.txt11
-rw-r--r--templates/pt_BR/subscribe.html9
-rw-r--r--templates/pt_BR/subscribeack.txt32
-rw-r--r--templates/pt_BR/unsub.txt23
-rw-r--r--templates/pt_BR/unsubauth.txt12
-rw-r--r--templates/pt_BR/userpass.txt25
-rw-r--r--templates/pt_BR/verify.txt23
-rw-r--r--templates/ru/Makefile50
-rw-r--r--templates/ru/admindbdetails.html60
-rw-r--r--templates/ru/admindbpreamble.html11
-rw-r--r--templates/ru/admindbsummary.html11
-rw-r--r--templates/ru/adminsubscribeack.txt2
-rw-r--r--templates/ru/adminunsubscribeack.txt2
-rw-r--r--templates/ru/admlogin.html37
-rw-r--r--templates/ru/approve.txt15
-rw-r--r--templates/ru/archidxentry.html1
-rw-r--r--templates/ru/archidxfoot.html19
-rw-r--r--templates/ru/archidxhead.html23
-rw-r--r--templates/ru/archlistend.html1
-rw-r--r--templates/ru/archliststart.html4
-rw-r--r--templates/ru/archtoc.html19
-rw-r--r--templates/ru/archtocentry.html12
-rw-r--r--templates/ru/article.html48
-rw-r--r--templates/ru/bounce.txt13
-rw-r--r--templates/ru/checkdbs.txt9
-rw-r--r--templates/ru/convert.txt33
-rw-r--r--templates/ru/cronpass.txt19
-rw-r--r--templates/ru/disabled.txt23
-rw-r--r--templates/ru/emptyarchive.html14
-rw-r--r--templates/ru/headfoot.html23
-rw-r--r--templates/ru/help.txt33
-rw-r--r--templates/ru/invite.txt22
-rw-r--r--templates/ru/listinfo.html132
-rw-r--r--templates/ru/masthead.txt18
-rw-r--r--templates/ru/newlist.txt40
-rw-r--r--templates/ru/nomoretoday.txt9
-rw-r--r--templates/ru/options.html306
-rw-r--r--templates/ru/postack.txt8
-rw-r--r--templates/ru/postauth.txt12
-rw-r--r--templates/ru/postheld.txt12
-rw-r--r--templates/ru/private.html40
-rw-r--r--templates/ru/refuse.txt13
-rw-r--r--templates/ru/roster.html48
-rwxr-xr-xtemplates/ru/s2s.py66
-rw-r--r--templates/ru/status42
-rw-r--r--templates/ru/subauth.txt9
-rw-r--r--templates/ru/subscribe.html8
-rw-r--r--templates/ru/subscribeack.txt41
-rw-r--r--templates/ru/unsub.txt24
-rw-r--r--templates/ru/unsubauth.txt9
-rw-r--r--templates/ru/userpass.txt22
-rw-r--r--templates/ru/verify.txt27
-rw-r--r--templates/sv/admindbdetails.html21
-rw-r--r--templates/sv/admindbpreamble.html4
-rw-r--r--templates/sv/admindbsummary.html3
-rw-r--r--templates/sv/adminsubscribeack.txt1
-rw-r--r--templates/sv/adminunsubscribeack.txt2
-rw-r--r--templates/sv/admlogin.html28
-rw-r--r--templates/sv/approve.txt14
-rw-r--r--templates/sv/archtoc.html20
-rw-r--r--templates/sv/archtocentry.html12
-rw-r--r--templates/sv/article.html51
-rw-r--r--templates/sv/bounce.txt13
-rw-r--r--templates/sv/checkdbs.txt7
-rw-r--r--templates/sv/convert.txt33
-rw-r--r--templates/sv/cronpass.txt19
-rw-r--r--templates/sv/disabled.txt25
-rw-r--r--templates/sv/emptyarchive.html11
-rw-r--r--templates/sv/headfoot.html9
-rw-r--r--templates/sv/help.txt33
-rw-r--r--templates/sv/invite.txt19
-rw-r--r--templates/sv/listinfo.html124
-rw-r--r--templates/sv/masthead.txt15
-rw-r--r--templates/sv/newlist.txt39
-rw-r--r--templates/sv/nomoretoday.txt7
-rw-r--r--templates/sv/options.html251
-rw-r--r--templates/sv/postack.txt7
-rw-r--r--templates/sv/postauth.txt13
-rw-r--r--templates/sv/postheld.txt16
-rw-r--r--templates/sv/private.html32
-rw-r--r--templates/sv/refuse.txt13
-rw-r--r--templates/sv/roster.html48
-rw-r--r--templates/sv/subauth.txt10
-rw-r--r--templates/sv/subscribe.html9
-rw-r--r--templates/sv/subscribeack.txt35
-rw-r--r--templates/sv/unsub.txt19
-rw-r--r--templates/sv/unsubauth.txt10
-rw-r--r--templates/sv/userpass.txt26
-rw-r--r--templates/sv/verify.txt20
-rw-r--r--tests/.cvsignore1
-rw-r--r--tests/EmailBase.py75
-rw-r--r--tests/Makefile.in83
-rw-r--r--tests/TestBase.py53
-rw-r--r--tests/bounces/.cvsignore1
-rw-r--r--tests/bounces/Makefile.in68
-rw-r--r--tests/bounces/bounce_01.txt95
-rw-r--r--tests/bounces/bounce_02.txt36
-rw-r--r--tests/bounces/bounce_03.txt109
-rw-r--r--tests/bounces/dsn_01.txt217
-rw-r--r--tests/bounces/dsn_02.txt187
-rw-r--r--tests/bounces/dsn_03.txt144
-rw-r--r--tests/bounces/dsn_04.txt202
-rw-r--r--tests/bounces/dsn_05.txt125
-rw-r--r--tests/bounces/dsn_06.txt122
-rw-r--r--tests/bounces/dsn_07.txt121
-rw-r--r--tests/bounces/dsn_08.txt131
-rw-r--r--tests/bounces/dsn_09.txt89
-rw-r--r--tests/bounces/dsn_10.txt66
-rw-r--r--tests/bounces/dsn_11.txt176
-rw-r--r--tests/bounces/dumbass_01.txt109
-rw-r--r--tests/bounces/exim_01.txt58
-rw-r--r--tests/bounces/groupwise_01.txt151
-rw-r--r--tests/bounces/groupwise_02.txt186
-rw-r--r--tests/bounces/hotpop_01.txt181
-rw-r--r--tests/bounces/llnl_01.txt203
-rw-r--r--tests/bounces/microsoft_01.txt108
-rw-r--r--tests/bounces/microsoft_02.txt119
-rw-r--r--tests/bounces/netscape_01.txt123
-rw-r--r--tests/bounces/newmailru_01.txt112
-rw-r--r--tests/bounces/postfix_01.txt123
-rw-r--r--tests/bounces/postfix_02.txt60
-rw-r--r--tests/bounces/postfix_03.txt145
-rw-r--r--tests/bounces/postfix_04.txt240
-rw-r--r--tests/bounces/postfix_05.txt231
-rw-r--r--tests/bounces/qmail_01.txt103
-rw-r--r--tests/bounces/sendmail_01.txt146
-rw-r--r--tests/bounces/simple_01.txt153
-rw-r--r--tests/bounces/simple_02.txt118
-rw-r--r--tests/bounces/simple_03.txt68
-rw-r--r--tests/bounces/simple_04.txt105
-rw-r--r--tests/bounces/sina_01.txt128
-rw-r--r--tests/bounces/smtp32_01.txt97
-rw-r--r--tests/bounces/smtp32_02.txt96
-rw-r--r--tests/bounces/smtp32_03.txt92
-rw-r--r--tests/bounces/yahoo_01.txt47
-rw-r--r--tests/bounces/yahoo_02.txtbin0 -> 2212 bytes
-rw-r--r--tests/bounces/yahoo_03.txt98
-rw-r--r--tests/bounces/yahoo_04.txt150
-rw-r--r--tests/bounces/yahoo_05.txt150
-rw-r--r--tests/bounces/yahoo_06.txt105
-rw-r--r--tests/bounces/yahoo_07.txt112
-rw-r--r--tests/bounces/yahoo_08.txt129
-rw-r--r--tests/bounces/yahoo_09.txt165
-rw-r--r--tests/bounces/yale_01.txt422
-rw-r--r--tests/fblast.py60
-rw-r--r--tests/msgs/.cvsignore1
-rw-r--r--tests/msgs/Makefile.in68
-rw-r--r--tests/msgs/bad_01.txt62
-rw-r--r--tests/msgs/nimda.txt43
-rwxr-xr-xtests/onebounce.py94
-rw-r--r--tests/test_bounces.py175
-rw-r--r--tests/test_handlers.py1741
-rw-r--r--tests/test_lockfile.py45
-rw-r--r--tests/test_membership.py380
-rw-r--r--tests/test_message.py102
-rw-r--r--tests/test_runners.py120
-rw-r--r--tests/test_safedict.py103
-rw-r--r--tests/test_security_mgr.py261
-rw-r--r--tests/testall.py40
1173 files changed, 284795 insertions, 0 deletions
diff --git a/.cvsignore b/.cvsignore
new file mode 100644
index 00000000..d55a6906
--- /dev/null
+++ b/.cvsignore
@@ -0,0 +1,7 @@
+adm.pw
+config.log
+config.cache
+config.status
+Makefile
+update.log
+build
diff --git a/ACKNOWLEDGMENTS b/ACKNOWLEDGMENTS
new file mode 100644
index 00000000..d9faed5d
--- /dev/null
+++ b/ACKNOWLEDGMENTS
@@ -0,0 +1,176 @@
+Mailman - The GNU Mailing List Management System
+Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+The following folks are or have been the primary maintainers of Mailman:
+
+ Barry Warsaw, Mailman's yappy guard dog
+ Thomas Wouters, Mailman's Dutch treat
+ John Viega, Mailman's inventor
+ Harald Meland, Norse Mailman
+ Ken Manheimer, Mailman's savior
+ Scott Cotton, Cookie-Monster
+
+They can be contacted directly via mailman-cabal@python.org.
+
+Here is the list of other contributors who have donated large bits of
+code, and have assigned copyright for contributions to the FSF:
+
+ Juan Carlos Rey Anaya
+ Norbert Bollow
+ Ben Gertzfield
+ Victoriano Giralt
+ Mads Kiilerich
+ The Dragon De Monsyne
+ Les Niles
+ Terri Oda
+ Simone Piunno
+
+Thanks also to Dragon for his winning Mailman logo contribution, and
+to Terri Oda for the neat shortcut icon.
+
+Control.com sponsored development of several Mailman 2.1 features,
+including topics filters, external membership sources, and initial
+virtual mailing list support. My thanks especially to Dan Pierson and
+Ken Crater from Control.com.
+
+Here is the list of other people who have contributed useful ideas,
+suggestions, bug fixes, testing, etc., or who have been very helpful
+in answering questions on mailman-users.
+
+ David Abrahams
+ William Ahern
+ Sven Anderson
+ Matthias Andree
+ Stonewall Ballard
+ Richard Barrett
+ Jeff Berliner
+ Alessio Bragadini
+ J. D. Bronson
+ Stan Bubrouski
+ Daniel Buchmann
+ Ben Burnett
+ Ted Cabeen
+ Mentor Cana
+ John Carnes
+ Donn Cave
+ David Champion
+ Hye-Shik Chang
+ Paul Cox
+ Emilio Delgado
+ Stefan Divjak
+ Maximillian Dornseif
+ Fred Drake
+ Rob Ellis
+ Fil
+ Patrick Finnerty
+ Erik Forsberg
+ Darrell Fuhriman
+ Carson Gaspar
+ Pascal GEORGE
+ David Gibbs
+ Terry Grace
+ Federico Grau
+ Pekka Haavisto
+ David Habben
+ Stig Hackvan
+ Jeff Hahn
+ Terry Hardie
+ Paul Hebble
+ Tollef Fog Heen
+ Peer Heinlein
+ Henny Huisman
+ Jeremy Hylton
+ Ron Jarrell
+ Matthias Juchem
+ Tamito KAJIYAMA
+ Tokio Kikuchi
+ Ashley M. Kirchner
+ Matthias Klose
+ Harald Koch
+ Chris Kolar
+ Andrew Kuchling
+ Ricardo Kustner
+ L'homme Moderne
+ J C Lawrence
+ Greg Lindahl
+ Christopher P. Lindsey
+ Martin von Loewis
+ Dario Lopez-Kästen
+ Tanner Lovelace
+ Jay Luker
+ Gergely Madarasz
+ Luca Maranzano
+ John A. Martin
+ Michael Mclay
+ Michael Meltzer
+ Marc MERLIN
+ Nigel Metheringham
+ Dan Mick
+ Garey Mills
+ Erik Myllymaki
+ Balazs Nagy
+ Dale Newfield
+ Hrvoje Niksic
+ Les Niles
+ Mike Noyes
+ David B. O'Donnell
+ Timothy O'Malley
+ Jason R. Mastaler
+ Michael Meltzer
+ "office"
+ Dan Ohnesorg
+ Gerald Oskoboiny
+ Eva Österlind
+ Jon Parise
+ Tim Peters
+ PieterB
+ Rodolfo Pilas
+ Skye Poier
+ Don Porter
+ Bob Puff
+ John Read
+ Sean Reifschneider
+ Christian Reis
+ Bernhard Reiter
+ Stephan Richter
+ Tristan Roddis
+ Heiko Rommel
+ Guido van Rossum
+ Nicholas Russo
+ Chris Ryan
+ Cabel Sasser
+ Gleydson Mazioli da Silva
+ Chris Snell
+ Mikhail Sobolev
+ Greg Stein
+ Dale Stimson
+ Szabolcs Szigeti
+ Vizi Szilard
+ David T-G
+ Owen Taylor
+ Danny Terweij
+ Jim Tittsler
+ Chuq Von Rospach
+ Jens Vagelpohl
+ Anti Veeranna
+ Todd Vierling
+ Bill Wagner
+ Greg Ward
+ Mark Weaver
+ Kathleen Webb
+ Ousmane Wilane
+ Dan Wilder
+ Michael Yount
+ Blair Zajac
+ Noam Zeilberger
+
+And everyone else on mailman-developers@python.org and
+mailman-users@python.org! Thank you, all.
+
+
+
+Local Variables:
+mode: indented-text
+indent-tabs-mode: nil
+End:
diff --git a/BUGS b/BUGS
new file mode 100644
index 00000000..7a22d4c2
--- /dev/null
+++ b/BUGS
@@ -0,0 +1,24 @@
+Mailman - The GNU Mailing List Management System
+Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+The Mailman project is being managed on SourceForge at
+
+ http://sf.net/projects/mailman
+
+You should submit bugs to the SourceForge bug manager at
+
+ http://sf.net/bugs/?group_id=103
+
+If you're able, please also submit a patch to the SourceForge patch
+manager, taking care to reference your bug report (which should be
+submitted first). The patch manager is at
+
+ http://sf.net/patch/?group_id=103
+
+
+
+Local Variables:
+mode: indented-text
+indent-tabs-mode: nil
+End:
diff --git a/FAQ b/FAQ
new file mode 100644
index 00000000..291977b9
--- /dev/null
+++ b/FAQ
@@ -0,0 +1,394 @@
+Mailman - The GNU Mailing List Management System
+Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+Note: We're migrating the FAQ to an on-line interactive system called
+ "FAQ Wizard". To see the Mailman FAQ Wizard in action, go to
+ http://www.python.org/cgi-bin/faqw-mm.py
+
+FREQUENTLY ASKED QUESTIONS
+
+Q. How do you spell this program?
+
+A. You spell it "Mailman", with a leading capital "M" and a lowercase
+ second "m". It is incorrect to spell it "MailMan" (i.e. you should
+ not use StudlyCaps).
+
+Q. I'm getting really terrible performance for outgoing messages. It
+ seems that if the MTA has trouble resolving DNS for any recipients,
+ qrunner just gets really slow clearing the queue. Any ideas?
+
+A. What's likely happening is that your MTA is doing DNS resolution on
+ recipients for messages delivered locally (i.e. from Mailman to
+ your MTA via SMTPDirect.py). This is a Bad Thing. You need to
+ turn off synchronous DNS resolution for messages originating from
+ the local host.
+
+ In Exim, the value to edit is receiver_verify_hosts. See
+ README.EXIM for details. Other MTAs have (of course) different
+ parameters and defaults that control this. First check the README
+ file for your MTA and then consult your MTA's own documentation.
+
+Q. My list members are complaining about Mailman's List-* headers!
+ What can I do about this?
+
+A. These headers are described in RFC 2369 and are added by Mailman
+ for the long-term benefit of end-users. While discouraged, the
+ list admin can disable these via the General Options page. See
+ also README.USERAGENT for more information.
+
+Q. Can I put the user's address in the footer that Mailman adds to
+ each message?
+
+A. Yes, in Mailman 2.1. The site admin needs to enable
+ personalization by setting the following variables in the mm_cfg.py
+ file:
+
+ VERP_PASSWORD_REMINDERS = 1
+ VERP_PERSONALIZED_DELIVERIES = 1
+ VERP_DELIVERY_INTERVAL = 1
+ VERP_CONFIRMATIONS = 1
+
+ Once this is done, list admins can enable personalization for
+ regular delivery members (digest deliveries can't be
+ personalized currently). A personalized list can include the
+ user's address in the footer.
+
+Q. My users hate HTML in their email and for security reasons, I want
+ to strip out all MIME attachments. How can I do this?
+
+A. Mailman 2.1 has this feature built-in. See the Content Filtering
+ Options page in the admin interface.
+
+Q. What if I get "document contains no data" from the web server, or
+ mail isn't getting delivered, or I see "Premature end of script
+ headers" or "Mailman CGI error!!!"
+
+A. The most likely cause of this is that the GID that is compiled into
+ the C wrappers does not match the GID that your Web server invokes
+ CGI scripts with. Note that a similar error could occur if your
+ mail system invokes filter programs under a GID that does not match
+ the one compiled into the C mail wrapper.
+
+ To fix this you will need to re-configure Mailman using the
+ --with-cgi-gid and --with-mail-gid options. See the INSTALL file
+ for details.
+
+ These errors are logged to syslog and they do not show up in the
+ Mailman log files. Problems with the CGI wrapper do get reported
+ in the web browser though (unless STEALTH_MODE is enabled), and
+ include the expected GID, so that should help a lot.
+
+ You may want to have syslog running and configured to log the
+ mail.error log class somewhere; on Solaris systems, the line
+
+ mail.debug /var/log/syslog
+
+ causes the messages to go to them in /var/log/syslog, for example.
+ (The distributed syslog.conf forwards the message to the loghost,
+ when present. See the syslog man page for more details.)
+
+ If your system is set like this, and you get a failure trying to
+ visit the mailman/listinfo web page, and it's due to a UID or GID
+ mismatch, then you should get an entry at the end of
+ /var/log/syslog identifying the expected and received values.
+
+ If you are not getting any log messages in syslog, or in Mailman's
+ own log files, but messages are still not being delivered, then it
+ is likely that qrunner is not running (qrunner is the process that
+ handles all mail in the system). In Mailman 2.0, qrunner was
+ invoked from cron so make sure your crontab entries for the
+ `mailman' user have been installed. In Mailman 2.1, qrunner is
+ started with the bin/mailmanctl script, which can be invoked
+ manually, or merged with your OS's init scripts.
+
+Q. What should I check periodically?
+
+A. Many of the scripts have their standard error logged to
+ $prefix/logs/error, and some of the modules write caught errors
+ there, as well, so you should check there at least occasionally to
+ look for bugs in the code and problems in your setup.
+
+ You may want to periodically check the other log files in the logs/
+ directory, perhaps occasionally rotating them with something like
+ the Linux logrotate script.
+
+Q. I can't access the public archives. Why?
+
+A. If you are using Apache, you must make sure that FollowSymLinks is
+ enabled for the path to the public archives. Note that the actual
+ archives always reside in the private tree, and only when archives
+ are public, is the symlink followed. See this archive message for
+ more details:
+
+ http://mail.python.org/pipermail/mailman-users/1998-November/000150.html
+
+Q. Still having problems? Running QMail?
+
+A. Make sure that you are using "preline" before calling the "mailman"
+ wrapper:
+
+ |preline /home/mailman/mail/mailman post listname
+
+ "preline" adds a Unix-style "From " header which the archiver requires.
+ You can fix the archive mbox files by adding:
+
+ From somebody Mon Oct 9 12:27:34 MDT 2000
+
+ before every message and re-running the archive command
+ "bin/arch listname". The archives should now exist. See README.QMAIL
+ for more information.
+
+Q. Still having problems? Running on GNU/Linux?
+
+A. See the README.LINUX file.
+
+Q. I want to get rid of some messages in my archive. How do I do
+ this?
+
+A. David Rocher posts the following recipe:
+
+ * remove $prefix/archives/private/<listname>
+ * edit $prefix/archives/private/<listname>.mbox/<listname>.mbox [optional]
+ * run $prefix/bin/arch <listname>
+
+Q. How secure are the authentication mechanisms used in Mailman's web
+ interface?
+
+A. If your Mailman installation run on an SSL-enabled web server
+ (i.e. you access the Mailman web pages with "https://..." URLs),
+ you should be as safe as SSL itself is.
+
+ However, most Mailman installation run under standard,
+ encryption-unaware servers. There's nothing wrong with that for
+ most applications, but a sufficiently determined cracker *could*
+ get unauthorized access by:
+
+ * Packet sniffing: The password used to do the initial
+ authentication for any non-public Mailman page is sent as clear
+ text over the net. If you consider this to be a big problem, you
+ really should use an SSL-enabled server.
+
+ * Stealing a valid cookie: After successful password
+ authentication, Mailman sends a "cookie" back to the user's
+ browser. This cookie will be used for "automatic" authentication
+ when browsing further within the list's protected pages. Mailman
+ employs "session cookies" which are set until you quit your
+ browser or explicitly log out.
+
+ Gaining access to the user's cookie (e.g. by being able to read
+ the user's browser cookie database, or by means of packet
+ sniffing, or maybe even by some broken browser offering all it's
+ cookies to any and all sites the user accesses), and at the same
+ time being able to fulfill the other criteria for using the
+ cookie could result in unauthorized access.
+
+ Note that this problem is more easily exploited when users browse
+ the web via proxies -- in that case, the cookie would be valid
+ for any connections made through that proxy, and not just for
+ connections made from the particular machine the user happens to
+ be accessing the proxy from.
+
+ * Getting access to the user's terminal: This is really just
+ another kind of cookie stealing. The short cookie expiration
+ time is supposed to help defeat this problem. It can be
+ considered the price to pay for the convenience of not having to
+ type the password in every time.
+
+Q. I want to backup my lists. What do I need to save?
+
+A. See this FAQ wizard entry:
+ http://www.python.org/cgi-bin/faqw-mm.py?req=show&file=faq04.006.htp
+
+Q. How do I rename a list?
+
+A. Renaming a list is currently a bit of a pain to do completely
+ correctly, especially if you want to make sure that the old list
+ contacts are automatically forwarded to the new list. This ought
+ to be easier. :(
+
+ The biggest problem you have is how to stop mail and web traffic to
+ your list during the transition, and what to do about any mail
+ undelivered to the old list after the move. I don't think there
+ are any foolproof steps, but here's how you can reduce the risk:
+
+ - Temporarily disable qrunner. To do this, you need to edit the
+ user `mailman's crontab entry. Execute the following command,
+ commenting out the qrunner line when you're dropped into your
+ editor. Then save the file and quit the editor.
+
+ % crontab -u mailman -e
+
+ - Turn off your mail server. This is mostly harmless since remote
+ MTAs will just keep retrying until you turn it back on, and it's
+ not going to be off for very long.
+
+ - Next turn off your web server if possible. This of course means
+ your entire site will be off-line while you make the switch and
+ this may not be acceptable to you. The next best suggestion is
+ to set up your permanent redirects now for the list you're
+ moving. This means that anybody looking for the list under its
+ old name will be redirected to the new name, but they'll get
+ errors until you've completed the move.
+
+ Let's say the old name is "oldname" and the new name is
+ "newname". Here are some Apache directives that will do the
+ trick, though YMMV:
+
+ RedirectMatch permanent /mailman/(.*)/oldname(.*) http://www.dom.ain/mailman/$1/newname$2
+ RedirectMatch permanent /pipermail/oldname(.*) http://www.dom.ain/pipermail/newname$1
+
+ Add these to your httpd.conf file and restart Apache.
+
+ - Now cd to the directory where you've installed Mailman. Let's
+ say it's /usr/local/mailman:
+
+ % cd /usr/local/mailman
+
+ and cd to the `lists' subdirectory:
+
+ % cd lists
+
+ You should now see the directory `oldname'. Move this to
+ `newname':
+
+ % mv oldname newname
+
+ - Now cd to the private archives directory:
+
+ % cd ../archives/private
+
+ You will need to move the oldname's .mbox directory, and the
+ .mbox file within that directory. Don't worry about the public
+ archives; the next few steps will take care of them without
+ requiring you to fiddle around in the file system:
+
+ % mv oldname.mbox newname.mbox
+ % mv newname.mbox/oldname.mbox newname.mbox/newname.mbox
+
+ - You now need to run the `bin/move_list' script to update some of
+ the internal archiver paths. IMPORTANT: Skip this step if you
+ are using Mailman 2.1!
+
+ % cd ../..
+ % bin/move_list newname
+
+ - You should now regenerate the public archives:
+
+ % bin/arch newname
+
+ - You'll likely need to change some of your list's configuration
+ options, especially if you want to accept postings addressed to
+ the old list on the new list. Visit the admin interface for your
+ new list:
+
+ o Go to the General options
+
+ o Change the "real_name" option to reflect the new list's name,
+ e.g. "Newname"
+
+ o Change the subject prefix to reflect the new list's name,
+ e.g. "[Newname] " (yes, that's a trailing space character).
+
+ o Optionally, update other configuration fields like info,
+ description, or welcome_msg. YMMV.
+
+ o Save your changes
+
+ o Go to the Privacy options
+
+ o Add the old list's address to acceptable_aliases.
+ E.g. "oldname@dom.ain". This way, (after the /etc/aliases
+ changes described below) messages posted to the old list will
+ not be held by the new list for "implicit destination"
+ approval.
+
+ o Save your changes
+
+ - Now you want to update your /etc/aliases file to include the
+ aliases for the new list, and forwards for the old list to the
+ new list. Note that these instructions are for Sendmail style
+ alias files, adjust to the specifics of how your MTA is set up.
+
+ o Find the lines defining the aliases for your old list's name
+
+ o Copy and paste them just below the originals.
+
+ o Change all the references of "oldname" to "newname" in the
+ pasted stanza.
+
+ o Now change the targets of the original aliases to forward to
+ the new aliases. When you're done, you will end up with
+ /etc/aliases entries like the following (YMMV):
+
+ XXX This needs updating for MM2.1!
+
+ # Forward the oldname list to the newname list
+ oldname: newname@dom.ain
+ oldname-request: newname-request@dom.ain
+ oldname-admin: newname-admin@dom.ain
+ oldname-owner: newname-owner@dom.ain
+
+ newname: "|/usr/local/mailman/mail/mailman post newname"
+ newname-admin: "|/usr/local/mailman/mail/mailman mailowner newname"
+ newname-request: "|/usr/local/mailman/mail/mailman mailcmd newname"
+ newname-owner: newname-admin
+
+ o Run newaliases
+
+ - Before you restart everything, you want to make one last check.
+ You're looking for files in the qfiles/ directory that may have
+ been addressed to the old list but weren't delivered before you
+ renamed the list. Do something like the following:
+
+ % cd /usr/local/mailman/qfiles
+ % grep oldname *.msg
+
+ If you get no hits, skip to the next step, you've got nothing to
+ worry about.
+
+ If you did get hits, then things get complicated. I warn you
+ that the rest of this step is untested. :(
+
+ For each of the .msg files that were destined for the old list,
+ you need to change the corresponding .db file. Unfortunately
+ there's no easy way to do this. Anyway...
+
+ Save the following Python code in a file called 'hackdb.py':
+
+ -------------------------hackdb.py
+ import sys
+ import marshal
+ fp = open(sys.argv[1])
+ d = marshal.load(fp)
+ fp.close()
+ d['listname'] = sys.argv[2]
+ fp = open(sys.argv[1], 'w')
+ marshal.dump(d, fp)
+ fp.close()
+ -------------------------
+
+ And then for each file that matched your grep above, do the
+ following:
+
+ % python hackdb.py reallylonghexfilenamematch1.db newname
+
+ - It's now safe to turn your MTA back on.
+
+ - Turn your qrunner back on by running
+
+ % crontab -u mailman -e
+
+ again and this time uncommenting the qrunner line. Save the file
+ and quit your editor.
+
+ - Rejoice, you're done. Send $100,000 in shiny new pennies to the
+ Mailman cabal as your downpayment toward making this easier for
+ the next list you have to rename. :)
+
+
+
+Local Variables:
+mode: text
+indent-tabs-mode: nil
+End:
diff --git a/INSTALL b/INSTALL
new file mode 100644
index 00000000..7becfb8a
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,576 @@
+Mailman - The GNU Mailing List Management System
+Copyright (C) 1998,1999,2000,2001,2002 Free Software Foundation, Inc.
+59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+This file contains installation instructions for GNU Mailman, which is
+configured using the standard GNU autoconf software. You first need
+to prepare your system as outlined in the sections below, and then
+configure and install the Mailman software.
+
+UPGRADING: Upgrading is usually as easy as just installing the new
+version over the existing installation. However, you should read the
+notes in the file UPGRADING for important information before you
+upgrade.
+
+
+0. Installation requirements
+
+ You must have a mail server (MTA) that you can send messages to,
+ and a web server that supports the CGI/1.1 API. Apache makes a
+ fine choice for web server, and MTAs such as Postfix, Exim,
+ Sendmail, and qmail should work just fine.
+
+ You will need an ANSI C compiler to build Mailman's security
+ wrappers. The GNU C compiler gcc 2.8.1 or later is known to work
+ well. For more information about obtaining gcc, see
+
+ http://www.gnu.org
+
+ You must have the Python interpreter installed somewhere on your
+ system. Currently Python 2.1.3 or Python 2.2.1 is recommended.
+ For information about obtaining Python source code, RPM packages,
+ or pre-compiled binaries please see:
+
+ http://www.python.org
+
+ If you are building Python from source, you should be fine with
+ the standard "./configure ; make install" for most Unix-like
+ OSes. If you run "make test", you'll see a bunch of tests skipped
+ -- don't worry, you probably won't need them. Mailman tries to
+ stick to the basics that compile on most systems.
+
+ If there is a README.<yourMTA> file that describes your mail
+ server (MTA), read it now. Some MTAs can be integrated more
+ seamlessly with Mailman for support of some advanced features
+ (like creation and removal of lists through-the-web). Examples
+ are Exim and Postfix. Setup instructions for specific MTAs are
+ contained in these README files.
+
+
+1. System setup
+
+ You will need to be root to perform the steps in this section.
+
+ Before installing the Mailman software, you need to prepare your
+ system by adding certain users and groups.
+
+ - Add a new user called `mailman'. Typically this is added to
+ your /etc/passwd file. If username `mailman' is already in use,
+ choose something else unique and see the --with-username flag
+ below.
+
+ - Add a new group called `mailman'. Typically this is added to
+ your /etc/group file. The Mailman files will be installed under
+ the `mailman' group, with the set-group-id bit. Mailman's
+ security is based on group-ownership permissions, so it is
+ important to get this step right. If groupname `mailman' is
+ already in use, choose something else unique and see the
+ --with-groupname below.
+
+ - Create an installation directory (called $prefix in the
+ documentation that follows). All of the Mailman files will be
+ installed under $prefix. Run "configure --help" for ways to
+ split the installation based on read-only vs. read/write files.
+
+ The default installation directory for Mailman 2.1 is
+ /usr/local/mailman. It used to be /home/mailman for all
+ versions prior to Mailman 2.1alpha2. You can override the
+ default by using the --prefix option to configure (see below).
+ If you're upgrading from a version previous to Mailman 2.1, you
+ will need to use --prefix unless you move your mailing lists
+ (this can be a wise upgrade strategy).
+
+ Watch out if your site does something like mount /usr/local with
+ the nosuid option. This will break Mailman, which relies on
+ set-gid programs for its security. If this describes your
+ environment, simply install Mailman in a location that allows
+ setgid programs.
+
+ Make sure the install directory is set to group `mailman' (or
+ whatever you're going to specify as --with-groupname) and has
+ the setgid bit set (but see README.BSD if you're on a BSD
+ system). You probably also want to guarantee that this
+ directory is readable and executable by everyone. For example,
+ these shell commands will accomplish this:
+
+ % cd $prefix
+ % chgrp mailman .
+ % chmod a+rx,g+ws .
+
+ You are now ready to configure and install the Mailman software.
+
+
+2. Running configure
+
+ TAKE SPECIAL NOTE OF THE --with-mail-gid AND --with-cgi-gid
+ OPTIONS BELOW. YOU WILL PROBABLY NEED TO USE THESE!
+
+ You should not be root while performing the steps in this section.
+ Do them under your own login, or whatever account you typically
+ use to install software. You do not need to do these steps as
+ user mailman, but you could. However, make sure that the login
+ used is a member of the mailman group as that that group has write
+ permissions to the $prefix directory made in the previous step.
+
+ Make sure that you have write permissions to the target
+ installation directory, and permission to create a setgid file in
+ the file system where it resides (NFS and other mounts can be
+ configured to inhibit setgid settings).
+
+ If you've installed other GNU software, you should be familiar
+ with the configure script. Usually you can just cd to the
+ directory you unpacked the Mailman source tarball into, and run
+ configure with no arguments:
+
+ % cd mailman-<version>
+ % ./configure
+ % make install
+
+ The following options allow you to customize your Mailman
+ installation.
+
+ --prefix=<dir>
+ Standard GNU configure option which changes the base
+ directory that Mailman is installed into. By default
+ $prefix is /usr/local/mailman. This directory must
+ already exist, and be set up as described in section 1
+ above.
+
+ --exec-prefix=<dir>
+ Standard GNU configure option which lets you specify a
+ different installation directory for architecture
+ dependent binaries.
+
+ --with-var-prefix=<dir>
+ Store mutable data under <dir> instead of under the prefix
+ or exec_prefix.
+
+ --with-python=</path/to/python>
+ Specify an alternative Python interpreter to use for the
+ wrapper programs. The default is to use the interpreter
+ found first on your shell's $PATH. Note that when running
+ the scripts from the command line, the first Python
+ interpreter found on $PATH is always used.
+
+ --with-username=<username-or-uid>
+ Specify a different username than `mailman' to use as a
+ default. Use this only if the username `mailman' is
+ already in use by somebody (e.g. Mark Ailman's login
+ name). This switch can take an integer user id or a user
+ name. Be sure your $prefix directory is owned by this
+ user.
+
+ --with-groupname=<groupname-or-gid>
+ Specify a different groupname than `mailman' to use as a
+ default. Use this only if the groupname `mailman' is
+ already in use. This switch can take an integer group id
+ or a group name. Be sure your $prefix directory is
+ group-owned by this group.
+
+ --with-mail-gid=<group-or-groups>
+ Specify an alternative group for running scripts via the
+ mail wrapper. <group-or-groups> can be a list of one or
+ more integer group ids or symbolic group names. The first
+ value in the list that resolves to an existing group is
+ used. By default, the value is the list
+ `mailman other mail daemon'.
+
+ This is highly system dependent and you must get this
+ right, because the group id is compiled into the mail
+ wrapper program for added security. On systems using
+ sendmail, the sendmail.cf configuration file designates
+ the group id of sendmail processes using the "DefaultUser"
+ option. (If commented out, it still may be indicating the
+ default...)
+
+ Check your MTA's documentation and configuration files to
+ find the right value for this switch.
+
+ --with-cgi-gid=<group-or-groups>
+ Specify an alternative group for running scripts via the
+ CGI wrapper. <group-or-groups> can be a list of one or
+ more integer group ids or symbolic group names. The first
+ value in the list that resolves to an existing group is
+ used. By default, the value is the the list
+ `www www-data nobody'.
+
+ The proper value for this is dependent on your web server
+ configuration. You must get this right, because the group
+ id is compiled into the CGI wrapper program for added
+ security, and no Mailman CGI scripts will run if this is
+ incorrect.
+
+ If you're using Apache, check the values for the `Group'
+ option in your httpd.conf file.
+
+ --with-cgi-ext=<extension>
+ Specify an extension for cgi-bin programs. The CGI
+ wrappers placed in $PREFIX/cgi-bin will have this
+ extension (some web servers require an extension).
+ <extension> must include the dot.
+
+ --with-gcc=no
+ Don't use gcc, even if it is found. In this case, `cc'
+ must be found on your $PATH.
+
+
+3. Check your installation
+
+ After you've run "make install", you can check that your
+ installation has all the correct permissions and group ownerships
+ by running the check_perms script:
+
+ - cd to $prefix
+
+ - Run bin/check_perms
+
+ Don't try to run bin/check_perms from the source directory; it
+ will only run from the install (i.e. $prefix) directory.
+
+ If this reports no problems, then it's very likely <wink> that
+ your installation is set up correctly. If it reports problems,
+ then you can either fix them manually, re-run the installation, or
+ use check_perms to fix the problems (probably the easiest
+ solution):
+
+ - You need to become the user that did the installation (and that
+ owns all the files in $prefix), or root.
+
+ - Run bin/check_perms -f
+
+ - Repeat previous step until no more errors are reported!
+
+
+4. Final system set-up
+
+ Congratulations! You've installed the Mailman software. To get
+ everything running you need to hook Mailman up to both your web
+ server and your mail system.
+
+ - If you plan on running your MTA and web server on different
+ machines, sharing Mailman installations via NFS, be sure that
+ the clocks on those two machines are synchronized closely. You
+ might take a look at the file Mailman/LockFile.py; the constant
+ CLOCK_SLOP helps the locking mechanism compensate for clock skew
+ in this type of environment.
+
+ - Configure your web server to give $prefix/cgi-bin permission to
+ run CGI scripts. You probably need to be root to do this.
+
+ The line you should add might look something like the following
+ (with the real absolute directory substituted for $prefix, of
+ course):
+
+ Exec /mailman/* $prefix/cgi-bin/*
+ or:
+ ScriptAlias /mailman/ $prefix/cgi-bin/
+
+ Consult your web server's documentation for details.
+
+ - You want to be very sure that the user id under which your CGI
+ scripts run is *not* in the `mailman' group you created above,
+ otherwise private archives will be accessible to anyone.
+
+ - Copy the Mailman, Python, and GNU logos to a location accessible
+ to your web server. E.g. with Apache, you've usually got an
+ `icons' directory that you can drop the images into. For
+ example:
+
+ % cp $prefix/icons/*.{jpg,png} /path/to/apache/icons
+
+ You then want to add a line to your $prefix/Mailman/mm_cfg.py
+ file which sets the base URL for the logos. For example:
+
+ IMAGE_LOGOS = '/images/'
+
+ The default value for IMAGE_LOGOS is '/icons/'. Read the
+ comment in Defaults.py.in for details.
+
+ - Configure your web server to point to the Pipermail public
+ mailing list archives:
+
+ For example, in Apache:
+
+ Alias /pipermail/ $varprefix/archives/public/
+
+ where $varprefix is usually $prefix unless you've used the
+ --with-var-prefix option to configure.
+
+ Consult your web server's documentation for details. Also be
+ sure to configure your web server to follow symbolic links in
+ this directory, otherwise public Pipermail archives won't be
+ accessible. For Apache users, consult the FollowSymLinks
+ option.
+
+ Also, if you're going to be supporting internationalized public
+ archives, you will probably want to turn off any default charset
+ directive for the Pipermail directory, otherwise your
+ multilingual archive pages won't show up correctly. Here's an
+ example for Apache, based on the standard installation
+ directories:
+
+ <Directory "/usr/local/mailman/archives/public/">
+ AddDefaultCharset Off
+ </Directory>
+
+ Now restart your web server.
+
+ - Set up the crontab entries. Mailman runs a number of cron jobs
+ for its basic functionality. Note that if you're upgrading from
+ a previous version of Mailman, you'll want to install the new
+ crontab, but be careful if you're running multiple Mailman
+ installations on your site! Changing the crontab could mess
+ with other parallel Mailman installations.
+
+ If your version of crontab supports the -u option, you must be
+ root to do this next step. Add $prefix/cron/crontab.in as a
+ crontab entry by executing these commands:
+
+ % cd $prefix/cron
+ % crontab -u mailman crontab.in
+
+ If you used the --with-username option, use that user name
+ instead of mailman for the -u argument value. If your crontab
+ does not support the -u option, try these commands:
+
+ % cd $prefix/cron
+ % su - mailman
+ % crontab crontab.in
+
+ - Start the Mailman qrunner daemon, by executing the following
+ from the $prefix directory:
+
+ % bin/mailmanctl start
+
+ If you want to start Mailman every time you reboot your system,
+ and your OS supports the chkconfig command (e.g. RedHat and
+ Mandrake Linuxes) you can simply do the following (as root, from
+ the Mailman install directory):
+
+ % cp scripts/mailman /etc/init.d/mailman
+ % chkconfig --add mailman
+
+ (Note that /etc/init.d may be /etc/rc.d/init.d on some systems.)
+
+ On Debian, you probably want to use
+
+ % update-rc.d mailman defaults
+
+ instead of chkconfig.
+
+ For Unixes that don't support chkconfig, simply copy
+ scripts/mailman as above:
+
+ % cp scripts/mailman /etc/init.d/mailman
+
+ then set up the following symbolic links, again as root:
+
+ % cp misc/mailman /etc/init.d
+ % cd /etc/rc.d/rc0.d
+ % ln -s ../init.d/mailman K12mailman
+ % cd ../rc1.d
+ % ln -s ../init.d/mailman K12mailman
+ % cd ../rc2.d
+ % ln -s ../init.d/mailman S98mailman
+ % cd ../rc3.d
+ % ln -s ../init.d/mailman S98mailman
+ % cd ../rc4.d
+ % ln -s ../init.d/mailman S98mailman
+ % cd ../rc5.d
+ % ln -s ../init.d/mailman S98mailman
+ % cd ../rc6.d
+ % ln -s ../init.d/mailman K12mailman
+
+ - Check the values for DEFAULT_EMAIL_HOST and DEFAULT_URL_HOST in
+ Defaults.py. Make any necessary changes in the mm_cfg.py file.
+ Note that if you change either of these two values, you'll want
+ to add the following afterwards in the mm_cfg.py file:
+
+ add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)
+
+ - Create a "site-wide" mailing list. This is the one that
+ password reminders will appear to come from. Usually this
+ should be the "mailman" mailing list, but if you need to change
+ this, be sure to change the MAILMAN_SITE_LIST variable in
+ mm_cfg.py (see below).
+
+ % bin/newlist mailman
+
+ Follow the prompts, and see the README file for more
+ information.
+
+ - You should then subscribe yourself to the mailman list.
+
+
+5. Customize Mailman
+
+ You should do these steps using the account you installed Mailman
+ under in section 2 above.
+
+ - The file $prefix/Mailman/Defaults.py contains a number of
+ defaults for your installation. If any of these are incorrect,
+ override them in $prefix/Mailman/mm_cfg.py, NOT IN Defaults.py!
+ See the comments in Defaults.py for details. Once a list is
+ created, editing many of these variables will have no effect.
+ At that point, you'll need to configure your lists through the
+ web admin interface or through the command line script
+ bin/withlist or bin/config_list.
+
+ The install process will not overwrite an existing mm_cfg.py
+ file so you can freely make changes to this file.
+
+ Note: Do *not* change HOME_DIR or MAILMAN_DIR. These are set
+ automatically by the configure script.
+
+ - Create the site password using:
+
+ % $prefix/bin/mmsitepass <your-site-password>
+
+ This password can be used anywhere that individual user or
+ mailing list administrator passwords are required, giving the
+ mailman site administrator the ability to adjust these things
+ when necessary.
+
+ You may also want to create a password for the site-wide "list
+ creator" role (someone other than the site administrator who as
+ privileges to create and remove lists through the web). Use the
+ -c option to mmsitepass to set this.
+
+
+6. Getting started
+
+ See the README file under the section "CREATE YOUR FIRST LIST" for
+ a quick introduction to creating an initial test list.
+
+
+7. Troubleshooting
+
+ If you encounter problems with running Mailman, first check the
+ "Common Problems" section, below. If your problem is not covered
+ there, check both the FAQ file and the online FAQ Wizard. Also
+ check for errors your syslog files and in the $prefix/logs/error
+ file.
+
+ Where syslog lives on your particular machine may vary. It may be
+ in /var/log/maillog. It may also be in /var/log/syslog. On many
+ machines, syslog files live in /adm/log/ instead of /var/log.
+
+ If you encounter an error, send an error report to
+ mailman-users@python.org. Include a description of what you're
+ doing to cause the problem, and the relevant lines from your
+ syslog. Also include information on your operating system, which
+ version of Python you're using, and which version of Mailman
+ you're installing.
+
+
+8. Common Problems
+
+ Problem: All Mailman web pages give a 404 File not found error.
+
+ Solution: Your web server has not been set up properly for handling
+ Mailman's cgi commands. Make sure you've:
+
+ 1) Configured the web server to give permissions to
+ $prefix/cgi-bin
+ 2) Restarted the web server properly.
+
+ Consult your web server's documentation for instructions
+ on how to do these things.
+
+
+ Problem: All Mailman web pages give an "Internal Server Error".
+
+ Solution: The likely problem is that you are using the wrong GID or
+ UID for CGI scripts. Check your syslog. If you see, for
+ example, a line like:
+
+ Attempt to exec script with invalid gid 51, expected 99
+
+ You need to reinstall Mailman, and specify $CGI_GID to be 51,
+ as described in the installation instructions.
+
+
+ Problem: I send mail to the list, and get back mail saying the
+ list is not found!
+
+ Solution: You probably didn't add the necessary aliases to the system
+ alias database, given to you when you ran the newlist
+ command. If you did add them, you likely did not update
+ the alias database, or your system requires you to run
+ newaliases explicitly. Refer to section 5 above for
+ more information.
+
+
+ Problem: I send mail to the list, and get back mail saying,
+ "unknown mailer error".
+
+ Solution: The likely problem is that you are using the wrong GID or
+ UID for mail. Check your syslog. If you see, for
+ example, a line like:
+
+ Attempt to exec script with invalid gid 51, expected 99
+
+ You need to reinstall Mailman, and specify $MAIL_GID to
+ be 51, as described in the installation
+ instructions. see notes on Postfix below, as by default
+ it will create these problems on installation.
+
+
+ Problem: I use Postfix for my MTA and the mail wrapper programs
+ are logging complaints about the wrong GID.
+
+ Solution: Create a separate aliases file for Postfix in its
+ main.cf config file under the variable "alias_maps". Put
+ the file somewhere in Mailman's home directory, or
+ somewhere else where the user mailman has write access
+ to it; *as user mailman* call Postfix's "postalias" on the
+ alias file.
+
+ % postalias <the alias file>
+
+ Also as user mailman, run
+
+ % python -c'import os; print os.getgid()'
+
+ This should print out the group id that Mailman should
+ be configured to expect when the mail wrapper programs
+ are run. Call it "thegid". Rebuild Mailman with
+
+ % ./configure --with-mail-gid=thegid
+
+ See also the README.POSTFIX file for more information on
+ connecting Postfix and Mailman.
+
+
+ Problem: I send mail to the list, and get back mail saying,
+ "sh: mailman not available for sendmail programs"
+
+ Solution: Your system uses sendmail restricted shell (smrsh). You
+ need to configure smrsh by creating a symbolic link from
+ the mail wrapper ($prefix/mail/mailman) to the directory
+ identifying executables allowed to run under smrsh.
+
+ Some common names for this directory are
+ /var/admin/sm.bin, /usr/admin/sm.bin or /etc/smrsh.
+
+ Note that on Debian Linux, the system makes
+ /usr/lib/sm.bin, which is wrong, you will need to create
+ the directory /usr/admin/sm.bin and add the link there.
+ Note further any aliases newaliases spits out will need
+ to be adjusted to point to the secure link to the
+ wrapper.
+
+
+ Problem: I messed up when I called configure. How do I clean
+ things up and re-install?
+
+ Solution: % make clean
+ % ./configure --with-the-right-options
+ % make install
+
+
+
+Local Variables:
+mode: indented-text
+indent-tabs-mode: nil
+End:
diff --git a/Mailman/.cvsignore b/Mailman/.cvsignore
new file mode 100644
index 00000000..4ef7207b
--- /dev/null
+++ b/Mailman/.cvsignore
@@ -0,0 +1,3 @@
+Makefile
+mm_cfg.py.dist
+Defaults.py
diff --git a/Mailman/Archiver/.cvsignore b/Mailman/Archiver/.cvsignore
new file mode 100644
index 00000000..f3c7a7c5
--- /dev/null
+++ b/Mailman/Archiver/.cvsignore
@@ -0,0 +1 @@
+Makefile
diff --git a/Mailman/Archiver/Archiver.py b/Mailman/Archiver/Archiver.py
new file mode 100644
index 00000000..903031cd
--- /dev/null
+++ b/Mailman/Archiver/Archiver.py
@@ -0,0 +1,232 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+
+"""Mixin class for putting new messages in the right place for archival.
+
+Public archives are separated from private ones. An external archival
+mechanism (eg, pipermail) should be pointed to the right places, to do the
+archival.
+"""
+
+import os
+import errno
+import traceback
+from cStringIO import StringIO
+
+from Mailman import mm_cfg
+from Mailman import Mailbox
+from Mailman import Utils
+from Mailman import Site
+from Mailman.SafeDict import SafeDict
+from Mailman.Logging.Syslog import syslog
+from Mailman.i18n import _
+
+
+
+def makelink(old, new):
+ try:
+ os.symlink(old, new)
+ except os.error, e:
+ code, msg = e
+ if code <> errno.EEXIST:
+ raise
+
+def breaklink(link):
+ try:
+ os.unlink(link)
+ except os.error, e:
+ code, msg = e
+ if code <> errno.ENOENT:
+ raise
+
+
+
+class Archiver:
+ #
+ # Interface to Pipermail. HyperArch.py uses this method to get the
+ # archive directory for the mailing list
+ #
+ def InitVars(self):
+ # Configurable
+ self.archive = mm_cfg.DEFAULT_ARCHIVE
+ # 0=public, 1=private:
+ self.archive_private = mm_cfg.DEFAULT_ARCHIVE_PRIVATE
+ self.archive_volume_frequency = \
+ mm_cfg.DEFAULT_ARCHIVE_VOLUME_FREQUENCY
+ # The archive file structure by default is:
+ #
+ # archives/
+ # private/
+ # listname.mbox/
+ # listname.mbox
+ # listname/
+ # lots-of-pipermail-stuff
+ # public/
+ # listname.mbox@ -> ../private/listname.mbox
+ # listname@ -> ../private/listname
+ #
+ # IOW, the mbox and pipermail archives are always stored in the
+ # private archive for the list. This is safe because archives/private
+ # is always set to o-rx. Public archives have a symlink to get around
+ # the private directory, pointing directly to the private/listname
+ # which has o+rx permissions. Private archives do not have the
+ # symbolic links.
+ omask = os.umask(0)
+ try:
+ try:
+ os.mkdir(self.archive_dir()+'.mbox', 02775)
+ except OSError, e:
+ if e.errno <> errno.EEXIST: raise
+ # We also create an empty pipermail archive directory into
+ # which we'll drop an empty index.html file into. This is so
+ # that lists that have not yet received a posting have
+ # /something/ as their index.html, and don't just get a 404.
+ try:
+ os.mkdir(self.archive_dir(), 02775)
+ except OSError, e:
+ if e.errno <> errno.EEXIST: raise
+ # See if there's an index.html file there already and if not,
+ # write in the empty archive notice.
+ indexfile = os.path.join(self.archive_dir(), 'index.html')
+ fp = None
+ try:
+ fp = open(indexfile)
+ except IOError, e:
+ if e.errno <> errno.ENOENT: raise
+ else:
+ fp = open(indexfile, 'w')
+ fp.write(Utils.maketext(
+ 'emptyarchive.html',
+ {'listname': self.real_name,
+ 'listinfo': self.GetScriptURL('listinfo', absolute=1),
+ }, mlist=self))
+ if fp:
+ fp.close()
+ finally:
+ os.umask(omask)
+
+ def archive_dir(self):
+ return Site.get_archpath(self.internal_name())
+
+ def ArchiveFileName(self):
+ """The mbox name where messages are left for archive construction."""
+ return os.path.join(self.archive_dir() + '.mbox',
+ self.internal_name() + '.mbox')
+
+ def GetBaseArchiveURL(self):
+ if self.archive_private:
+ return self.GetScriptURL('private', absolute=1) + '/'
+ else:
+ inv = {}
+ for k, v in mm_cfg.VIRTUAL_HOSTS.items():
+ inv[v] = k
+ url = mm_cfg.PUBLIC_ARCHIVE_URL % {
+ 'listname': self.internal_name(),
+ 'hostname': inv.get(self.host_name, mm_cfg.DEFAULT_URL_HOST),
+ }
+ if not url.endswith('/'):
+ url += '/'
+ return url
+
+ def __archive_file(self, afn):
+ """Open (creating, if necessary) the named archive file."""
+ omask = os.umask(002)
+ try:
+ return Mailbox.Mailbox(open(afn, 'a+'))
+ finally:
+ os.umask(omask)
+
+ #
+ # old ArchiveMail function, retained under a new name
+ # for optional archiving to an mbox
+ #
+ def __archive_to_mbox(self, post):
+ """Retain a text copy of the message in an mbox file."""
+ try:
+ afn = self.ArchiveFileName()
+ mbox = self.__archive_file(afn)
+ mbox.AppendMessage(post)
+ mbox.fp.close()
+ except IOError, msg:
+ syslog('error', 'Archive file access failure:\n\t%s %s', afn, msg)
+ raise
+
+ def ExternalArchive(self, ar, txt):
+ d = SafeDict({'listname': self.internal_name()})
+ cmd = ar % d
+ extarch = os.popen(cmd, 'w')
+ extarch.write(txt)
+ status = extarch.close()
+ if status:
+ syslog('error', 'external archiver non-zero exit status: %d\n',
+ (status & 0xff00) >> 8)
+
+ #
+ # archiving in real time this is called from list.post(msg)
+ #
+ def ArchiveMail(self, msg):
+ """Store postings in mbox and/or pipermail archive, depending."""
+ # Fork so archival errors won't disrupt normal list delivery
+ if mm_cfg.ARCHIVE_TO_MBOX == -1:
+ return
+ #
+ # We don't need an extra archiver lock here because we know the list
+ # itself must be locked.
+ if mm_cfg.ARCHIVE_TO_MBOX in (1, 2):
+ self.__archive_to_mbox(msg)
+ if mm_cfg.ARCHIVE_TO_MBOX == 1:
+ # Archive to mbox only.
+ return
+ txt = str(msg)
+ # should we use the internal or external archiver?
+ private_p = self.archive_private
+ if mm_cfg.PUBLIC_EXTERNAL_ARCHIVER and not private_p:
+ self.ExternalArchive(mm_cfg.PUBLIC_EXTERNAL_ARCHIVER, txt)
+ elif mm_cfg.PRIVATE_EXTERNAL_ARCHIVER and private_p:
+ self.ExternalArchive(mm_cfg.PRIVATE_EXTERNAL_ARCHIVER, txt)
+ else:
+ # use the internal archiver
+ f = StringIO(txt)
+ import HyperArch
+ h = HyperArch.HyperArchive(self)
+ h.processUnixMailbox(f)
+ h.close()
+ f.close()
+
+ #
+ # called from MailList.MailList.Save()
+ #
+ def CheckHTMLArchiveDir(self):
+ # We need to make sure that the archive directory has the right perms
+ # for public vs private. If it doesn't exist, or some weird
+ # permissions errors prevent us from stating the directory, it's
+ # pointless to try to fix the perms, so we just return -scott
+ if mm_cfg.ARCHIVE_TO_MBOX == -1:
+ # Archiving is completely disabled, don't require the skeleton.
+ return
+ pubdir = Site.get_archpath(self.internal_name(), public=1)
+ privdir = self.archive_dir()
+ pubmbox = pubdir + '.mbox'
+ privmbox = privdir + '.mbox'
+ if self.archive_private:
+ breaklink(pubdir)
+ breaklink(pubmbox)
+ else:
+ # BAW: privdir or privmbox could be nonexistant. We'd get an
+ # OSError, ENOENT which should be caught and reported properly.
+ makelink(privdir, pubdir)
+ makelink(privmbox, pubmbox)
diff --git a/Mailman/Archiver/HyperArch.py b/Mailman/Archiver/HyperArch.py
new file mode 100644
index 00000000..98fb5738
--- /dev/null
+++ b/Mailman/Archiver/HyperArch.py
@@ -0,0 +1,1224 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""HyperArch: Pipermail archiving for Mailman
+
+ - The Dragon De Monsyne <dragondm@integral.org>
+
+ TODO:
+ - Should be able to force all HTML to be regenerated next time the
+ archive is run, in case a template is changed.
+ - Run a command to generate tarball of html archives for downloading
+ (probably in the 'update_dirty_archives' method).
+"""
+
+from __future__ import nested_scopes
+
+import sys
+import re
+import errno
+import urllib
+import time
+import os
+import types
+import HyperDatabase
+import pipermail
+import weakref
+import binascii
+
+from email.Header import decode_header, make_header
+
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman import LockFile
+from Mailman import MailList
+from Mailman import i18n
+from Mailman.SafeDict import SafeDict
+from Mailman.Logging.Syslog import syslog
+from Mailman.Mailbox import ArchiverMailbox
+
+# Set up i18n. Assume the current language has already been set in the caller.
+_ = i18n._
+
+gzip = None
+if mm_cfg.GZIP_ARCHIVE_TXT_FILES:
+ try:
+ import gzip
+ except ImportError:
+ pass
+
+EMPTYSTRING = ''
+NL = '\n'
+
+# MacOSX has a default stack size that is too small for deeply recursive
+# regular expressions. We see this as crashes in the Python test suite when
+# running test_re.py and test_sre.py. The fix is to set the stack limit to
+# 2048; the general recommendation is to do in the shell before running the
+# test suite. But that's inconvenient for a daemon like the qrunner.
+#
+# AFAIK, this problem only affects the archiver, so we're adding this work
+# around to this file (it'll get imported by the bundled pipermail or by the
+# bin/arch script. We also only do this on darwin, a.k.a. MacOSX.
+if sys.platform == 'darwin':
+ try:
+ import resource
+ except ImportError:
+ pass
+ else:
+ soft, hard = resource.getrlimit(resource.RLIMIT_STACK)
+ newsoft = min(hard, max(soft, 1024*2048))
+ resource.setrlimit(resource.RLIMIT_STACK, (newsoft, hard))
+
+
+
+def html_quote(s, lang=None):
+ repls = ( ('&', '&amp;'),
+ ("<", '&lt;'),
+ (">", '&gt;'),
+ ('"', '&quot;'))
+ for thing, repl in repls:
+ s = s.replace(thing, repl)
+ return Utils.uncanonstr(s, lang)
+
+
+def url_quote(s):
+ return urllib.quote(s)
+
+
+def null_to_space(s):
+ return s.replace('\000', ' ')
+
+
+def sizeof(filename, lang):
+ try:
+ size = os.path.getsize(filename)
+ except OSError, e:
+ # ENOENT can happen if the .mbox file was moved away or deleted, and
+ # an explicit mbox file name was given to bin/arch.
+ if e.errno <> errno.ENOENT: raise
+ return _('size not available')
+ if size < 1000:
+ # Avoid i18n side-effects
+ otrans = i18n.get_translation()
+ try:
+ i18n.set_language(lang)
+ out = _(' %(size)i bytes ')
+ finally:
+ i18n.set_translation(otrans)
+ return out
+ elif size < 1000000:
+ return ' %d KB ' % (size / 1000)
+ # GB?? :-)
+ return ' %d MB ' % (size / 1000000)
+
+
+html_charset = '<META http-equiv="Content-Type" ' \
+ 'content="text/html; charset=%s">'
+
+def CGIescape(arg, lang=None):
+ if isinstance(arg, types.UnicodeType):
+ s = Utils.websafe(arg)
+ else:
+ s = Utils.websafe(str(arg))
+ return Utils.uncanonstr(s.replace('"', '&quot;'), lang)
+
+# Parenthesized human name
+paren_name_pat = re.compile(r'([(].*[)])')
+
+# Subject lines preceded with 'Re:'
+REpat = re.compile( r"\s*RE\s*(\[\d+\]\s*)?:\s*", re.IGNORECASE)
+
+# E-mail addresses and URLs in text
+emailpat = re.compile(r'([-+,.\w]+@[-+.\w]+)')
+
+# Argh! This pattern is buggy, and will choke on URLs with GET parameters.
+urlpat = re.compile(r'(\w+://[^>)\s]+)') # URLs in text
+
+# Blank lines
+blankpat = re.compile(r'^\s*$')
+
+# Starting <html> directive
+htmlpat = re.compile(r'^\s*<HTML>\s*$', re.IGNORECASE)
+# Ending </html> directive
+nohtmlpat = re.compile(r'^\s*</HTML>\s*$', re.IGNORECASE)
+# Match quoted text
+quotedpat = re.compile(r'^([>|:]|&gt;)+')
+
+
+
+# This doesn't need to be a weakref instance because it's just storing
+# strings. Keys are (templatefile, lang) tuples.
+_templatecache = {}
+
+def quick_maketext(templatefile, dict=None, lang=None, mlist=None):
+ if lang is None:
+ if mlist is None:
+ lang = mm_cfg.DEFAULT_SERVER_LANGUAGE
+ else:
+ lang = mlist.preferred_language
+ template = _templatecache.get((templatefile, lang))
+ if template is None:
+ # Use the basic maketext, with defaults to get the raw template
+ template = Utils.maketext(templatefile, lang=lang, raw=1)
+ _templatecache[(templatefile, lang)] = template
+ # Copied from Utils.maketext()
+ text = template
+ if dict is not None:
+ try:
+ sdict = SafeDict(dict)
+ try:
+ text = sdict.interpolate(template)
+ except UnicodeError:
+ # Try again after coercing the template to unicode
+ utemplate = unicode(template,
+ Utils.GetCharSet(lang),
+ 'replace')
+ text = sdict.interpolate(utemplate)
+ except (TypeError, ValueError):
+ # The template is really screwed up
+ pass
+ # Make sure the text is in the given character set, or html-ify any bogus
+ # characters.
+ return Utils.uncanonstr(text, lang)
+
+
+
+# Note: I'm overriding most, if not all of the pipermail Article class
+# here -ddm
+# The Article class encapsulates a single posting. The attributes are:
+#
+# sequence : Sequence number, unique for each article in a set of archives
+# subject : Subject
+# datestr : The posting date, in human-readable format
+# date : The posting date, in purely numeric format
+# fromdate : The posting date, in `unixfrom' format
+# headers : Any other headers of interest
+# author : The author's name (and possibly organization)
+# email : The author's e-mail address
+# msgid : A unique message ID
+# in_reply_to : If !="", this is the msgid of the article being replied to
+# references: A (possibly empty) list of msgid's of earlier articles in
+# the thread
+# body : A list of strings making up the message body
+
+class Article(pipermail.Article):
+ __super_init = pipermail.Article.__init__
+ __super_set_date = pipermail.Article._set_date
+
+ _last_article_time = time.time()
+
+ def __init__(self, message=None, sequence=0, keepHeaders=[],
+ lang=mm_cfg.DEFAULT_SERVER_LANGUAGE, mlist=None):
+ self.__super_init(message, sequence, keepHeaders)
+ self.prev = None
+ self.next = None
+ # Trim Re: from the subject line
+ i = 0
+ while i != -1:
+ result = REpat.match(self.subject)
+ if result:
+ i = result.end(0)
+ self.subject = self.subject[i:]
+ else:
+ i = -1
+ # Useful to keep around
+ self._lang = lang
+ self._mlist = mlist
+
+ if mm_cfg.ARCHIVER_OBSCURES_EMAILADDRS:
+ # Avoid i18n side-effects. Note that the language for this
+ # article (for this list) could be different from the site-wide
+ # preferred language, so we need to ensure no side-effects will
+ # occur. Think what happens when executing bin/arch.
+ otrans = i18n.get_translation()
+ try:
+ i18n.set_language(lang)
+ self.email = re.sub('@', _(' at '), self.email)
+ finally:
+ i18n.set_translation(otrans)
+
+ # Snag the content-* headers. RFC 1521 states that their values are
+ # case insensitive.
+ ctype = message.get('Content-Type', 'text/plain')
+ cenc = message.get('Content-Transfer-Encoding', '')
+ self.ctype = ctype.lower()
+ self.cenc = cenc.lower()
+ self.decoded = {}
+ charset = message.get_param('charset')
+ if charset:
+ charset = charset.lower().strip()
+ if charset[0]=='"' and charset[-1]=='"':
+ charset = charset[1:-1]
+ if charset[0]=="'" and charset[-1]=="'":
+ charset = charset[1:-1]
+ try:
+ body = message.get_payload(decode=1)
+ except binascii.Error:
+ body = None
+ if body and charset != Utils.GetCharSet(self._lang):
+ # decode body
+ try:
+ body = unicode(body, charset)
+ except (UnicodeError, LookupError):
+ body = None
+ if body:
+ self.body = [l + "\n" for l in body.splitlines()]
+
+ self.decode_headers()
+
+ # Mapping of listnames to MailList instances as a weak value dictionary.
+ # This code is copied from Runner.py but there's one important operational
+ # difference. In Runner.py, we always .Load() the MailList object for
+ # each _dispose() run, otherwise the object retrieved from the cache won't
+ # be up-to-date. Since we're creating a new HyperArchive instance for
+ # each message being archived, we don't need to worry about that -- but it
+ # does mean there are additional opportunities for optimization.
+ _listcache = weakref.WeakValueDictionary()
+
+ def _open_list(self, listname):
+ # Cache the open list so that any use of the list within this process
+ # uses the same object. We use a WeakValueDictionary so that when the
+ # list is no longer necessary, its memory is freed.
+ mlist = self._listcache.get(listname)
+ if not mlist:
+ try:
+ mlist = MailList.MailList(listname, lock=0)
+ except Errors.MMListError, e:
+ syslog('error', 'error opening list: %s\n%s', listname, e)
+ return None
+ else:
+ self._listcache[listname] = mlist
+ return mlist
+
+ def __getstate__(self):
+ d = self.__dict__.copy()
+ # We definitely don't want to pickle the MailList instance, so just
+ # pickle a reference to it.
+ if d.has_key('_mlist'):
+ mlist = d['_mlist']
+ del d['_mlist']
+ else:
+ mlist = None
+ if mlist:
+ d['__listname'] = self._mlist.internal_name()
+ else:
+ d['__listname'] = None
+ # Delete a few other things we don't want in the pickle
+ for attr in ('prev', 'next', 'body'):
+ if d.has_key(attr):
+ del d[attr]
+ d['body'] = []
+ return d
+
+ def __setstate__(self, d):
+ # For loading older Articles via pickle. All this stuff was added
+ # when Simone Piunni and Tokio Kikuchi i18n'ified Pipermail. See SF
+ # patch #594771.
+ self.__dict__ = d
+ listname = d.get('__listname')
+ if listname:
+ del d['__listname']
+ d['_mlist'] = self._open_list(listname)
+ if not d.has_key('_lang'):
+ if hasattr(self, '_mlist'):
+ self._lang = self._mlist.preferred_language
+ else:
+ self._lang = mm_cfg.DEFAULT_SERVER_LANGUAGE
+ if not d.has_key('cenc'):
+ self.cenc = None
+ if not d.has_key('decoded'):
+ self.decoded = {}
+
+ def setListIfUnset(self, mlist):
+ if getattr(self, '_mlist', None) is None:
+ self._mlist = mlist
+
+ def quote(self, buf):
+ return html_quote(buf, self._lang)
+
+ def decode_headers(self):
+ """MIME-decode headers.
+
+ If the email, subject, or author attributes contain non-ASCII
+ characters using the encoded-word syntax of RFC 2047, decoded versions
+ of those attributes are placed in the self.decoded (a dictionary).
+
+ If the list's charset differs from the header charset, an attempt is
+ made to decode the headers as Unicode. If that fails, they are left
+ undecoded.
+ """
+ author = self.decode_charset(self.author)
+ subject = self.decode_charset(self.subject)
+ if author:
+ self.decoded['author'] = author
+ email = self.decode_charset(self.email)
+ if email:
+ self.decoded['email'] = email
+ if subject:
+ self.decoded['subject'] = subject
+
+ def decode_charset(self, field):
+ if field.find("=?") == -1:
+ return None
+ # Get the decoded header as a list of (s, charset) tuples
+ pairs = decode_header(field)
+ # Use __unicode__() until we can guarantee Python 2.2
+ try:
+ # Use a large number for maxlinelen so it won't get wrapped
+ h = make_header(pairs, 99999)
+ return h.__unicode__()
+ except (UnicodeError, LookupError):
+ # Unknown encoding
+ return None
+ # The last value for c will have the proper charset in it
+ return EMPTYSTRING.join([s for s, c in pairs])
+
+ def as_html(self):
+ d = self.__dict__.copy()
+ # avoid i18n side-effects
+ otrans = i18n.get_translation()
+ i18n.set_language(self._lang)
+ try:
+ d["prev"], d["prev_wsubj"] = self._get_prev()
+ d["next"], d["next_wsubj"] = self._get_next()
+
+ d["email_html"] = self.quote(self.email)
+ d["title"] = self.quote(self.subject)
+ d["subject_html"] = self.quote(self.subject)
+ d["subject_url"] = url_quote(self.subject)
+ d["in_reply_to_url"] = url_quote(self.in_reply_to)
+ if mm_cfg.ARCHIVER_OBSCURES_EMAILADDRS:
+ # Point the mailto url back to the list
+ author = re.sub('@', _(' at '), self.author)
+ emailurl = self._mlist.GetListEmail()
+ else:
+ author = self.author
+ emailurl = self.email
+ d["author_html"] = self.quote(author)
+ d["email_url"] = url_quote(emailurl)
+ d["datestr_html"] = self.quote(i18n.ctime(int(self.date)))
+ d["body"] = self._get_body()
+ d['listurl'] = self._mlist.GetScriptURL('listinfo', absolute=1)
+ d['listname'] = self._mlist.real_name
+ d['encoding'] = ''
+ finally:
+ i18n.set_translation(otrans)
+
+ charset = Utils.GetCharSet(self._lang)
+ d["encoding"] = html_charset % charset
+
+ self._add_decoded(d)
+ return quick_maketext(
+ 'article.html', d,
+ lang=self._lang, mlist=self._mlist)
+
+ def _get_prev(self):
+ """Return the href and subject for the previous message"""
+ if self.prev:
+ subject = self._get_subject_enc(self.prev)
+ prev = ('<LINK REL="Previous" HREF="%s">'
+ % (url_quote(self.prev.filename)))
+ prev_wsubj = ('<LI>' + _('Previous message:') +
+ ' <A HREF="%s">%s\n</A></li>'
+ % (url_quote(self.prev.filename),
+ self.quote(subject)))
+ else:
+ prev = prev_wsubj = ""
+ return prev, prev_wsubj
+
+ def _get_subject_enc(self, art):
+ """Return the subject of art, decoded if possible.
+
+ If the charset of the current message and art match and the
+ article's subject is encoded, decode it.
+ """
+ return art.decoded.get('subject', art.subject)
+
+ def _get_next(self):
+ """Return the href and subject for the previous message"""
+ if self.next:
+ subject = self._get_subject_enc(self.next)
+ next = ('<LINK REL="Next" HREF="%s">'
+ % (url_quote(self.next.filename)))
+ next_wsubj = ('<LI>' + _('Next message:') +
+ ' <A HREF="%s">%s\n</A></li>'
+ % (url_quote(self.next.filename),
+ self.quote(subject)))
+ else:
+ next = next_wsubj = ""
+ return next, next_wsubj
+
+ _rx_quote = re.compile('=([A-F0-9][A-F0-9])')
+ _rx_softline = re.compile('=[ \t]*$')
+
+ def _get_body(self):
+ """Return the message body ready for HTML, decoded if necessary"""
+ try:
+ body = self.html_body
+ except AttributeError:
+ body = self.body
+ return null_to_space(EMPTYSTRING.join(body))
+
+ def _add_decoded(self, d):
+ """Add encoded-word keys to HTML output"""
+ for src, dst in (('author', 'author_html'),
+ ('email', 'email_html'),
+ ('subject', 'subject_html'),
+ ('subject', 'title')):
+ if self.decoded.has_key(src):
+ d[dst] = self.quote(self.decoded[src])
+
+ def as_text(self):
+ d = self.__dict__.copy()
+ # We need to guarantee a valid From_ line, even if there are
+ # bososities in the headers.
+ if not d.get('fromdate', '').strip():
+ d['fromdate'] = time.ctime(time.time())
+ if not d.get('email', '').strip():
+ d['email'] = 'bogus@does.not.exist.com'
+ if not d.get('datestr', '').strip():
+ d['datestr'] = time.ctime(time.time())
+ #
+ headers = ['From %(email)s %(fromdate)s',
+ 'From: %(email)s (%(author)s)',
+ 'Date: %(datestr)s',
+ 'Subject: %(subject)s']
+ if d['_in_reply_to']:
+ headers.append('In-Reply-To: %(_in_reply_to)s')
+ if d['_references']:
+ headers.append('References: %(_references)s')
+ if d['_message_id']:
+ headers.append('Message-ID: %(_message_id)s')
+ body = EMPTYSTRING.join(self.body)
+ if isinstance(body, types.UnicodeType):
+ body = body.encode(Utils.GetCharSet(self._lang), 'replace')
+ return NL.join(headers) % d + '\n\n' + body
+
+ def _set_date(self, message):
+ self.__super_set_date(message)
+ self.fromdate = time.ctime(int(self.date))
+
+ def loadbody_fromHTML(self,fileobj):
+ self.body = []
+ begin = 0
+ while 1:
+ line = fileobj.readline()
+ if not line:
+ break
+ if not begin:
+ if line.strip() == '<!--beginarticle-->':
+ begin = 1
+ continue
+ if line.strip() == '<!--endarticle-->':
+ break
+ self.body.append(line)
+
+
+
+class HyperArchive(pipermail.T):
+ __super_init = pipermail.T.__init__
+ __super_update_archive = pipermail.T.update_archive
+ __super_update_dirty_archives = pipermail.T.update_dirty_archives
+ __super_add_article = pipermail.T.add_article
+
+ # some defaults
+ DIRMODE = 02775
+ FILEMODE = 0660
+
+ VERBOSE = 0
+ DEFAULTINDEX = 'thread'
+ ARCHIVE_PERIOD = 'month'
+
+ THREADLAZY = 0
+ THREADLEVELS = 3
+
+ ALLOWHTML = 1 # "Lines between <html></html>" handled as is.
+ SHOWHTML = 0 # Eg, nuke leading whitespace in html manner.
+ IQUOTES = 1 # Italicize quoted text.
+ SHOWBR = 0 # Add <br> onto every line
+
+ def __init__(self, maillist):
+ # can't init the database while other processes are writing to it!
+ # XXX TODO- implement native locking
+ # with mailman's LockFile module for HyperDatabase.HyperDatabase
+ #
+ dir = maillist.archive_dir()
+ db = HyperDatabase.HyperDatabase(dir, maillist)
+ self.__super_init(dir, reload=1, database=db)
+
+ self.maillist = maillist
+ self._lock_file = None
+ self.lang = maillist.preferred_language
+ self.charset = Utils.GetCharSet(maillist.preferred_language)
+
+ if hasattr(self.maillist,'archive_volume_frequency'):
+ if self.maillist.archive_volume_frequency == 0:
+ self.ARCHIVE_PERIOD='year'
+ elif self.maillist.archive_volume_frequency == 2:
+ self.ARCHIVE_PERIOD='quarter'
+ elif self.maillist.archive_volume_frequency == 3:
+ self.ARCHIVE_PERIOD='week'
+ elif self.maillist.archive_volume_frequency == 4:
+ self.ARCHIVE_PERIOD='day'
+ else:
+ self.ARCHIVE_PERIOD='month'
+
+ yre = r'(?P<year>[0-9]{4,4})'
+ mre = r'(?P<month>[01][0-9])'
+ dre = r'(?P<day>[0123][0-9])'
+ self._volre = {
+ 'year': '^' + yre + '$',
+ 'quarter': '^' + yre + r'q(?P<quarter>[1234])$',
+ 'month': '^' + yre + r'-(?P<month>[a-zA-Z]+)$',
+ 'week': r'^Week-of-Mon-' + yre + mre + dre,
+ 'day': '^' + yre + mre + dre + '$'
+ }
+
+ def _makeArticle(self, msg, sequence):
+ return Article(msg, sequence,
+ lang=self.maillist.preferred_language,
+ mlist=self.maillist)
+
+ def html_foot(self):
+ # avoid i18n side-effects
+ mlist = self.maillist
+ otrans = i18n.get_translation()
+ i18n.set_language(mlist.preferred_language)
+ # Convenience
+ def quotetime(s):
+ return html_quote(i18n.ctime(s), self.lang)
+ try:
+ d = {"lastdate": quotetime(self.lastdate),
+ "archivedate": quotetime(self.archivedate),
+ "listinfo": mlist.GetScriptURL('listinfo', absolute=1),
+ "version": self.version,
+ }
+ i = {"thread": _("thread"),
+ "subject": _("subject"),
+ "author": _("author"),
+ "date": _("date")
+ }
+ finally:
+ i18n.set_translation(otrans)
+
+ for t in i.keys():
+ cap = t[0].upper() + t[1:]
+ if self.type == cap:
+ d["%s_ref" % (t)] = ""
+ else:
+ d["%s_ref" % (t)] = ('<a href="%s.html#start">[ %s ]</a>'
+ % (t, i[t]))
+ return quick_maketext(
+ 'archidxfoot.html', d,
+ mlist=mlist)
+
+ def html_head(self):
+ # avoid i18n side-effects
+ mlist = self.maillist
+ otrans = i18n.get_translation()
+ i18n.set_language(mlist.preferred_language)
+ # Convenience
+ def quotetime(s):
+ return html_quote(i18n.ctime(s), self.lang)
+ try:
+ d = {"listname": html_quote(mlist.real_name, self.lang),
+ "archtype": self.type,
+ "archive": self.volNameToDesc(self.archive),
+ "listinfo": mlist.GetScriptURL('listinfo', absolute=1),
+ "firstdate": quotetime(self.firstdate),
+ "lastdate": quotetime(self.lastdate),
+ "size": self.size,
+ }
+ i = {"thread": _("thread"),
+ "subject": _("subject"),
+ "author": _("author"),
+ "date": _("date"),
+ }
+ finally:
+ i18n.set_translation(otrans)
+
+ for t in i.keys():
+ cap = t[0].upper() + t[1:]
+ if self.type == cap:
+ d["%s_ref" % (t)] = ""
+ d["archtype"] = i[t]
+ else:
+ d["%s_ref" % (t)] = ('<a href="%s.html#start">[ %s ]</a>'
+ % (t, i[t]))
+ if self.charset:
+ d["encoding"] = html_charset % self.charset
+ else:
+ d["encoding"] = ""
+ return quick_maketext(
+ 'archidxhead.html', d,
+ mlist=mlist)
+
+ def html_TOC(self):
+ mlist = self.maillist
+ listname = mlist.internal_name()
+ mbox = os.path.join(mlist.archive_dir()+'.mbox', listname+'.mbox')
+ d = {"listname": mlist.real_name,
+ "listinfo": mlist.GetScriptURL('listinfo', absolute=1),
+ "fullarch": '../%s.mbox/%s.mbox' % (listname, listname),
+ "size": sizeof(mbox, mlist.preferred_language),
+ 'meta': '',
+ }
+ # Avoid i18n side-effects
+ otrans = i18n.get_translation()
+ i18n.set_language(mlist.preferred_language)
+ try:
+ if not self.archives:
+ d["noarchive_msg"] = _(
+ '<P>Currently, there are no archives. </P>')
+ d["archive_listing_start"] = ""
+ d["archive_listing_end"] = ""
+ d["archive_listing"] = ""
+ else:
+ d["noarchive_msg"] = ""
+ d["archive_listing_start"] = quick_maketext(
+ 'archliststart.html',
+ lang=mlist.preferred_language,
+ mlist=mlist)
+ d["archive_listing_end"] = quick_maketext(
+ 'archlistend.html',
+ mlist=mlist)
+
+ accum = []
+ for a in self.archives:
+ accum.append(self.html_TOC_entry(a))
+ d["archive_listing"] = EMPTYSTRING.join(accum)
+ finally:
+ i18n.set_translation(otrans)
+
+ # The TOC is always in the charset of the list's preferred language
+ d['meta'] += html_charset % Utils.GetCharSet(mlist.preferred_language)
+
+ return quick_maketext(
+ 'archtoc.html', d,
+ mlist=mlist)
+
+ def html_TOC_entry(self, arch):
+ # Check to see if the archive is gzip'd or not
+ txtfile = os.path.join(self.maillist.archive_dir(), arch + '.txt')
+ gzfile = txtfile + '.gz'
+ # which exists? .txt.gz first, then .txt
+ if os.path.exists(gzfile):
+ file = gzfile
+ url = arch + '.txt.gz'
+ templ = '<td><A href="%(url)s">[ ' + _('Gzip\'d Text%(sz)s') \
+ + ']</a></td>'
+ elif os.path.exists(txtfile):
+ file = txtfile
+ url = arch + '.txt'
+ templ = '<td><A href="%(url)s">[ ' + _('Text%(sz)s') + ']</a></td>'
+ else:
+ # neither found?
+ file = None
+ # in Python 1.5.2 we have an easy way to get the size
+ if file:
+ textlink = templ % {
+ 'url': url,
+ 'sz' : sizeof(file, self.maillist.preferred_language)
+ }
+ else:
+ # there's no archive file at all... hmmm.
+ textlink = ''
+ return quick_maketext(
+ 'archtocentry.html',
+ {'archive': arch,
+ 'archivelabel': self.volNameToDesc(arch),
+ 'textlink': textlink
+ },
+ mlist=self.maillist)
+
+ def GetArchLock(self):
+ if self._lock_file:
+ return 1
+ self._lock_file = LockFile.LockFile(
+ os.path.join(mm_cfg.LOCK_DIR,
+ self.maillist.internal_name() + '-arch.lock'))
+ try:
+ self._lock_file.lock(timeout=0.5)
+ except LockFile.TimeOutError:
+ return 0
+ return 1
+
+ def DropArchLock(self):
+ if self._lock_file:
+ self._lock_file.unlock(unconditionally=1)
+ self._lock_file = None
+
+ def processListArch(self):
+ name = self.maillist.ArchiveFileName()
+ wname= name+'.working'
+ ename= name+'.err_unarchived'
+ try:
+ os.stat(name)
+ except (IOError,os.error):
+ #no archive file, nothin to do -ddm
+ return
+
+ #see if arch is locked here -ddm
+ if not self.GetArchLock():
+ #another archiver is running, nothing to do. -ddm
+ return
+
+ #if the working file is still here, the archiver may have
+ # crashed during archiving. Save it, log an error, and move on.
+ try:
+ wf = open(wname)
+ syslog('error',
+ 'Archive working file %s present. '
+ 'Check %s for possibly unarchived msgs',
+ wname, ename)
+ omask = os.umask(007)
+ try:
+ ef = open(ename, 'a+')
+ finally:
+ os.umask(omask)
+ ef.seek(1,2)
+ if ef.read(1) <> '\n':
+ ef.write('\n')
+ ef.write(wf.read())
+ ef.close()
+ wf.close()
+ os.unlink(wname)
+ except IOError:
+ pass
+ os.rename(name,wname)
+ archfile = open(wname)
+ self.processUnixMailbox(archfile)
+ archfile.close()
+ os.unlink(wname)
+ self.DropArchLock()
+
+ def get_filename(self, article):
+ return '%06i.html' % (article.sequence,)
+
+ def get_archives(self, article):
+ """Return a list of indexes where the article should be filed.
+ A string can be returned if the list only contains one entry,
+ and the empty list is legal."""
+ res = self.dateToVolName(float(article.date))
+ self.message(_("figuring article archives\n"))
+ self.message(res + "\n")
+ return res
+
+ def volNameToDesc(self, volname):
+ volname = volname.strip()
+ # Don't make these module global constants since we have to runtime
+ # translate them anyway.
+ monthdict = [
+ '',
+ _('January'), _('February'), _('March'), _('April'),
+ _('May'), _('June'), _('July'), _('August'),
+ _('September'), _('October'), _('November'), _('December')
+ ]
+ for each in self._volre.keys():
+ match = re.match(self._volre[each], volname)
+ # Let ValueErrors percolate up
+ if match:
+ year = int(match.group('year'))
+ if each == 'quarter':
+ d =["", _("First"), _("Second"), _("Third"), _("Fourth") ]
+ ord = d[int(match.group('quarter'))]
+ return _("%(ord)s quarter %(year)i")
+ elif each == 'month':
+ monthstr = match.group('month').lower()
+ for i in range(1, 13):
+ monthname = time.strftime("%B", (1999,i,1,0,0,0,0,1,0))
+ if monthstr.lower() == monthname.lower():
+ month = monthdict[i]
+ return _("%(month)s %(year)i")
+ raise ValueError, "%s is not a month!" % monthstr
+ elif each == 'week':
+ month = monthdict[int(match.group("month"))]
+ day = int(match.group("day"))
+ return _("The Week Of Monday %(day)i %(month)s %(year)i")
+ elif each == 'day':
+ month = monthdict[int(match.group("month"))]
+ day = int(match.group("day"))
+ return _("%(day)i %(month)s %(year)i")
+ else:
+ return match.group('year')
+ raise ValueError, "%s is not a valid volname" % volname
+
+# The following two methods should be inverses of each other. -ddm
+
+ def dateToVolName(self,date):
+ datetuple=time.localtime(date)
+ if self.ARCHIVE_PERIOD=='year':
+ return time.strftime("%Y",datetuple)
+ elif self.ARCHIVE_PERIOD=='quarter':
+ if datetuple[1] in [1,2,3]:
+ return time.strftime("%Yq1",datetuple)
+ elif datetuple[1] in [4,5,6]:
+ return time.strftime("%Yq2",datetuple)
+ elif datetuple[1] in [7,8,9]:
+ return time.strftime("%Yq3",datetuple)
+ else:
+ return time.strftime("%Yq4",datetuple)
+ elif self.ARCHIVE_PERIOD == 'day':
+ return time.strftime("%Y%m%d", datetuple)
+ elif self.ARCHIVE_PERIOD == 'week':
+ # Reconstruct "seconds since epoch", and subtract weekday
+ # multiplied by the number of seconds in a day.
+ monday = time.mktime(datetuple) - datetuple[6] * 24 * 60 * 60
+ # Build a new datetuple from this "seconds since epoch" value
+ datetuple = time.localtime(monday)
+ return time.strftime("Week-of-Mon-%Y%m%d", datetuple)
+ # month. -ddm
+ else:
+ return time.strftime("%Y-%B",datetuple)
+
+
+ def volNameToDate(self,volname):
+ volname = volname.strip()
+ for each in self._volre.keys():
+ match=re.match(self._volre[each],volname)
+ if match:
+ year=int(match.group('year'))
+ month=1
+ day = 1
+ if each == 'quarter':
+ q=int(match.group('quarter'))
+ month=(q*3)-2
+ elif each == 'month':
+ monthstr=match.group('month').lower()
+ m=[]
+ for i in range(1,13):
+ m.append(
+ time.strftime("%B",(1999,i,1,0,0,0,0,1,0)).lower())
+ try:
+ month=m.index(monthstr)+1
+ except ValueError:
+ pass
+ elif each == 'week' or each == 'day':
+ month = int(match.group("month"))
+ day = int(match.group("day"))
+ return time.mktime((year,month,1,0,0,0,0,1,-1))
+ return 0.0
+
+ def sortarchives(self):
+ def sf(a,b,s=self):
+ al=s.volNameToDate(a)
+ bl=s.volNameToDate(b)
+ if al>bl:
+ return 1
+ elif al<bl:
+ return -1
+ else:
+ return 0
+ if self.ARCHIVE_PERIOD in ('month','year','quarter'):
+ self.archives.sort(sf)
+ else:
+ self.archives.sort()
+ self.archives.reverse()
+
+ def message(self, msg):
+ if self.VERBOSE:
+ f = sys.stderr
+ f.write(msg)
+ if msg[-1:] != '\n':
+ f.write('\n')
+ f.flush()
+
+ def open_new_archive(self, archive, archivedir):
+ index_html = os.path.join(archivedir, 'index.html')
+ try:
+ os.unlink(index_html)
+ except:
+ pass
+ os.symlink(self.DEFAULTINDEX+'.html',index_html)
+
+ def write_index_header(self):
+ self.depth=0
+ print self.html_head()
+ if not self.THREADLAZY and self.type=='Thread':
+ self.message(_("Computing threaded index\n"))
+ self.updateThreadedIndex()
+
+ def write_index_footer(self):
+ for i in range(self.depth):
+ print '</UL>'
+ print self.html_foot()
+
+ def write_index_entry(self, article):
+ subject = self.get_header("subject", article)
+ author = self.get_header("author", article)
+ if mm_cfg.ARCHIVER_OBSCURES_EMAILADDRS:
+ author = re.sub('@', _(' at '), author)
+ subject = CGIescape(subject, self.lang)
+ author = CGIescape(author, self.lang)
+
+ d = {
+ 'filename': urllib.quote(article.filename),
+ 'subject': subject,
+ 'sequence': article.sequence,
+ 'author': author
+ }
+ print quick_maketext(
+ 'archidxentry.html', d,
+ mlist=self.maillist)
+
+ def get_header(self, field, article):
+ # if we have no decoded header, return the encoded one
+ result = article.decoded.get(field)
+ if result is None:
+ return getattr(article, field)
+ # otherwise, the decoded one will be Unicode
+ return result
+
+ def write_threadindex_entry(self, article, depth):
+ if depth < 0:
+ self.message('depth<0')
+ depth = 0
+ if depth > self.THREADLEVELS:
+ depth = self.THREADLEVELS
+ if depth < self.depth:
+ for i in range(self.depth-depth):
+ print '</UL>'
+ elif depth > self.depth:
+ for i in range(depth-self.depth):
+ print '<UL>'
+ print '<!--%i %s -->' % (depth, article.threadKey)
+ self.depth = depth
+ self.write_index_entry(article)
+
+ def write_TOC(self):
+ self.sortarchives()
+ omask = os.umask(002)
+ try:
+ toc = open(os.path.join(self.basedir, 'index.html'), 'w')
+ finally:
+ os.umask(omask)
+ toc.write(self.html_TOC())
+ toc.close()
+
+ def write_article(self, index, article, path):
+ # called by add_article
+ omask = os.umask(002)
+ try:
+ f = open(path, 'w')
+ finally:
+ os.umask(omask)
+ f.write(article.as_html())
+ f.close()
+
+ # Write the text article to the text archive.
+ path = os.path.join(self.basedir, "%s.txt" % index)
+ omask = os.umask(002)
+ try:
+ f = open(path, 'a+')
+ finally:
+ os.umask(omask)
+ f.write(article.as_text())
+ f.close()
+
+ def update_archive(self, archive):
+ self.__super_update_archive(archive)
+ # only do this if the gzip module was imported globally, and
+ # gzip'ing was enabled via mm_cfg.GZIP_ARCHIVE_TXT_FILES. See
+ # above.
+ if gzip:
+ archz = None
+ archt = None
+ txtfile = os.path.join(self.basedir, '%s.txt' % archive)
+ gzipfile = os.path.join(self.basedir, '%s.txt.gz' % archive)
+ oldgzip = os.path.join(self.basedir, '%s.old.txt.gz' % archive)
+ try:
+ # open the plain text file
+ archt = open(txtfile)
+ except IOError:
+ return
+ try:
+ os.rename(gzipfile, oldgzip)
+ archz = gzip.open(oldgzip)
+ except (IOError, RuntimeError, os.error):
+ pass
+ try:
+ ou = os.umask(002)
+ newz = gzip.open(gzipfile, 'w')
+ finally:
+ # XXX why is this a finally?
+ os.umask(ou)
+ if archz:
+ newz.write(archz.read())
+ archz.close()
+ os.unlink(oldgzip)
+ # XXX do we really need all this in a try/except?
+ try:
+ newz.write(archt.read())
+ newz.close()
+ archt.close()
+ except IOError:
+ pass
+ os.unlink(txtfile)
+
+ _skip_attrs = ('maillist', '_lock_file', 'charset')
+
+ def getstate(self):
+ d={}
+ for each in self.__dict__.keys():
+ if not (each in self._skip_attrs
+ or each.upper() == each):
+ d[each] = self.__dict__[each]
+ return d
+
+ # Add <A HREF="..."> tags around URLs and e-mail addresses.
+
+ def __processbody_URLquote(self, lines):
+ # XXX a lot to do here:
+ # 1. use lines directly, rather than source and dest
+ # 2. make it clearer
+ # 3. make it faster
+ source = lines[:]
+ dest = lines
+ last_line_was_quoted = 0
+ for i in xrange(0, len(source)):
+ Lorig = L = source[i]
+ prefix = suffix = ""
+ if L is None:
+ continue
+ # Italicise quoted text
+ if self.IQUOTES:
+ quoted = quotedpat.match(L)
+ if quoted is None:
+ last_line_was_quoted = 0
+ else:
+ quoted = quoted.end(0)
+ prefix = CGIescape(L[:quoted], self.lang) + '<i>'
+ suffix = '</I>'
+ if self.SHOWHTML:
+ suffix += '<BR>'
+ if not last_line_was_quoted:
+ prefix = '<BR>' + prefix
+ L = L[quoted:]
+ last_line_was_quoted = 1
+ # Check for an e-mail address
+ L2 = ""
+ jr = emailpat.search(L)
+ kr = urlpat.search(L)
+ while jr is not None or kr is not None:
+ if jr == None:
+ j = -1
+ else:
+ j = jr.start(0)
+ if kr is None:
+ k = -1
+ else:
+ k = kr.start(0)
+ if j != -1 and (j < k or k == -1):
+ text = jr.group(1)
+ length = len(text)
+ if mm_cfg.ARCHIVER_OBSCURES_EMAILADDRS:
+ text = re.sub('@', _(' at '), text)
+ URL = self.maillist.GetScriptURL(
+ 'listinfo', absolute=1)
+ else:
+ URL = 'mailto:' + text
+ pos = j
+ elif k != -1 and (j > k or j == -1):
+ text = URL = kr.group(1)
+ length = len(text)
+ pos = k
+ else: # j==k
+ raise ValueError, "j==k: This can't happen!"
+ #length = len(text)
+ #self.message("URL: %s %s %s \n"
+ # % (CGIescape(L[:pos]), URL, CGIescape(text)))
+ L2 += '%s<A HREF="%s">%s</A>' % (
+ CGIescape(L[:pos], self.lang),
+ html_quote(URL), CGIescape(text, self.lang))
+ L = L[pos+length:]
+ jr = emailpat.search(L)
+ kr = urlpat.search(L)
+ if jr is None and kr is None:
+ L = CGIescape(L, self.lang)
+ L = prefix + L2 + L + suffix
+ source[i] = None
+ dest[i] = L
+
+ # Perform Hypermail-style processing of <HTML></HTML> directives
+ # in message bodies. Lines between <HTML> and </HTML> will be written
+ # out precisely as they are; other lines will be passed to func2
+ # for further processing .
+
+ def __processbody_HTML(self, lines):
+ # XXX need to make this method modify in place
+ source = lines[:]
+ dest = lines
+ l = len(source)
+ i = 0
+ while i < l:
+ while i < l and htmlpat.match(source[i]) is None:
+ i = i + 1
+ if i < l:
+ source[i] = None
+ i = i + 1
+ while i < l and nohtmlpat.match(source[i]) is None:
+ dest[i], source[i] = source[i], None
+ i = i + 1
+ if i < l:
+ source[i] = None
+ i = i + 1
+
+ def format_article(self, article):
+ # called from add_article
+ # TBD: Why do the HTML formatting here and keep it in the
+ # pipermail database? It makes more sense to do the html
+ # formatting as the article is being written as html and toss
+ # the data after it has been written to the archive file.
+ lines = filter(None, article.body)
+ # Handle <HTML> </HTML> directives
+ if self.ALLOWHTML:
+ self.__processbody_HTML(lines)
+ self.__processbody_URLquote(lines)
+ if not self.SHOWHTML and lines:
+ lines.insert(0, '<PRE>')
+ lines.append('</PRE>')
+ else:
+ # Do fancy formatting here
+ if self.SHOWBR:
+ lines = map(lambda x:x + "<BR>", lines)
+ else:
+ for i in range(0, len(lines)):
+ s = lines[i]
+ if s[0:1] in ' \t\n':
+ lines[i] = '<P>' + s
+ article.html_body = lines
+ return article
+
+ def update_article(self, arcdir, article, prev, next):
+ seq = article.sequence
+ filename = os.path.join(arcdir, article.filename)
+ self.message(_('Updating HTML for article %(seq)s'))
+ try:
+ f = open(filename)
+ article.loadbody_fromHTML(f)
+ f.close()
+ except IOError, e:
+ if e.errno <> errno.ENOENT: raise
+ self.message(_('article file %(filename)s is missing!'))
+ article.prev = prev
+ article.next = next
+ omask = os.umask(002)
+ try:
+ f = open(filename, 'w')
+ finally:
+ os.umask(omask)
+ f.write(article.as_html())
+ f.close()
diff --git a/Mailman/Archiver/HyperDatabase.py b/Mailman/Archiver/HyperDatabase.py
new file mode 100644
index 00000000..ab41b824
--- /dev/null
+++ b/Mailman/Archiver/HyperDatabase.py
@@ -0,0 +1,338 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+#
+# site modules
+#
+import os
+import marshal
+import time
+import errno
+
+#
+# package/project modules
+#
+import pipermail
+from Mailman import LockFile
+
+CACHESIZE = pipermail.CACHESIZE
+
+try:
+ import cPickle
+ pickle = cPickle
+except ImportError:
+ import pickle
+
+#
+# we're using a python dict in place of
+# of bsddb.btree database. only defining
+# the parts of the interface used by class HyperDatabase
+# only one thing can access this at a time.
+#
+class DumbBTree:
+ """Stores pickles of Article objects
+
+ This dictionary-like object stores pickles of all the Article
+ objects. The object itself is stored using marshal. It would be
+ much simpler, and probably faster, to store the actual objects in
+ the DumbBTree and pickle it.
+
+ TBD: Also needs a more sensible name, like IteratableDictionary or
+ SortedDictionary.
+ """
+
+ def __init__(self, path):
+ self.current_index = 0
+ self.path = path
+ self.lockfile = LockFile.LockFile(self.path + ".lock")
+ self.lock()
+ self.__dirty = 0
+ self.dict = {}
+ self.sorted = []
+ self.load()
+
+ def __repr__(self):
+ return "DumbBTree(%s)" % self.path
+
+ def __sort(self, dirty=None):
+ if self.__dirty == 1 or dirty:
+ self.sorted = self.dict.keys()
+ self.sorted.sort()
+ self.__dirty = 0
+
+ def lock(self):
+ self.lockfile.lock()
+
+ def unlock(self):
+ try:
+ self.lockfile.unlock()
+ except LockFile.NotLockedError:
+ pass
+
+ def __delitem__(self, item):
+ # if first hasn't been called, we can skip the sort
+ if self.current_index == 0:
+ del self.dict[item]
+ self.__dirty = 1
+ return
+ try:
+ ci = self.sorted[self.current_index]
+ except IndexError:
+ ci = None
+ if ci == item:
+ try:
+ ci = self.sorted[self.current_index + 1]
+ except IndexError:
+ ci = None
+ del self.dict[item]
+ self.__sort(dirty=1)
+ if ci is not None:
+ self.current_index = self.sorted.index(ci)
+ else:
+ self.current_index = self.current_index + 1
+
+ def clear(self):
+ # bulk clearing much faster than deleting each item, esp. with the
+ # implementation of __delitem__() above :(
+ self.dict = {}
+
+ def first(self):
+ self.__sort() # guarantee that the list is sorted
+ if not self.sorted:
+ raise KeyError
+ else:
+ key = self.sorted[0]
+ self.current_index = 1
+ return key, self.dict[key]
+
+ def last(self):
+ if not self.sorted:
+ raise KeyError
+ else:
+ key = self.sorted[-1]
+ self.current_index = len(self.sorted) - 1
+ return key, self.dict[key]
+
+ def next(self):
+ try:
+ key = self.sorted[self.current_index]
+ except IndexError:
+ raise KeyError
+ self.current_index = self.current_index + 1
+ return key, self.dict[key]
+
+ def has_key(self, key):
+ return self.dict.has_key(key)
+
+ def set_location(self, loc):
+ if not self.dict.has_key(loc):
+ raise KeyError
+ self.current_index = self.sorted.index(loc)
+
+ def __getitem__(self, item):
+ return self.dict[item]
+
+ def __setitem__(self, item, val):
+ # if first hasn't been called, then we don't need to worry
+ # about sorting again
+ if self.current_index == 0:
+ self.dict[item] = val
+ self.__dirty = 1
+ return
+ try:
+ current_item = self.sorted[self.current_index]
+ except IndexError:
+ current_item = item
+ self.dict[item] = val
+ self.__sort(dirty=1)
+ self.current_index = self.sorted.index(current_item)
+
+ def __len__(self):
+ return len(self.sorted)
+
+ def load(self):
+ try:
+ fp = open(self.path)
+ try:
+ self.dict = marshal.load(fp)
+ finally:
+ fp.close()
+ except IOError, e:
+ if e.errno <> errno.ENOENT: raise
+ pass
+ except EOFError:
+ pass
+ else:
+ self.__sort(dirty=1)
+
+ def close(self):
+ omask = os.umask(007)
+ try:
+ fp = open(self.path, 'w')
+ finally:
+ os.umask(omask)
+ fp.write(marshal.dumps(self.dict))
+ fp.close()
+ self.unlock()
+
+
+# this is lifted straight out of pipermail with
+# the bsddb.btree replaced with above class.
+# didn't use inheritance because of all the
+# __internal stuff that needs to be here -scott
+#
+class HyperDatabase(pipermail.Database):
+ __super_addArticle = pipermail.Database.addArticle
+
+ def __init__(self, basedir, mlist):
+ self.__cache = {}
+ self.__currentOpenArchive = None # The currently open indices
+ self._mlist = mlist
+ self.basedir = os.path.expanduser(basedir)
+ # Recently added articles, indexed only by message ID
+ self.changed={}
+
+ def firstdate(self, archive):
+ self.__openIndices(archive)
+ date = 'None'
+ try:
+ datekey, msgid = self.dateIndex.first()
+ date = time.asctime(time.localtime(float(datekey[0])))
+ except KeyError:
+ pass
+ return date
+
+ def lastdate(self, archive):
+ self.__openIndices(archive)
+ date = 'None'
+ try:
+ datekey, msgid = self.dateIndex.last()
+ date = time.asctime(time.localtime(float(datekey[0])))
+ except KeyError:
+ pass
+ return date
+
+ def numArticles(self, archive):
+ self.__openIndices(archive)
+ return len(self.dateIndex)
+
+ def addArticle(self, archive, article, subject=None, author=None,
+ date=None):
+ self.__openIndices(archive)
+ self.__super_addArticle(archive, article, subject, author, date)
+
+ def __openIndices(self, archive):
+ if self.__currentOpenArchive == archive:
+ return
+ self.__closeIndices()
+ arcdir = os.path.join(self.basedir, 'database')
+ omask = os.umask(0)
+ try:
+ try:
+ os.mkdir(arcdir, 02770)
+ except OSError, e:
+ if e.errno <> errno.EEXIST: raise
+ finally:
+ os.umask(omask)
+ for i in ('date', 'author', 'subject', 'article', 'thread'):
+ t = DumbBTree(os.path.join(arcdir, archive + '-' + i))
+ setattr(self, i + 'Index', t)
+ self.__currentOpenArchive = archive
+
+ def __closeIndices(self):
+ for i in ('date', 'author', 'subject', 'thread', 'article'):
+ attr = i + 'Index'
+ if hasattr(self, attr):
+ index = getattr(self, attr)
+ if i == 'article':
+ if not hasattr(self, 'archive_length'):
+ self.archive_length = {}
+ l = len(index)
+ self.archive_length[self.__currentOpenArchive] = l
+ index.close()
+ delattr(self, attr)
+ self.__currentOpenArchive = None
+
+ def close(self):
+ self.__closeIndices()
+
+ def hasArticle(self, archive, msgid):
+ self.__openIndices(archive)
+ return self.articleIndex.has_key(msgid)
+
+ def setThreadKey(self, archive, key, msgid):
+ self.__openIndices(archive)
+ self.threadIndex[key]=msgid
+
+ def getArticle(self, archive, msgid):
+ self.__openIndices(archive)
+ if not self.__cache.has_key(msgid):
+ # get the pickled object out of the DumbBTree
+ buf = self.articleIndex[msgid]
+ article = self.__cache[msgid] = pickle.loads(buf)
+ # For upgrading older archives
+ article.setListIfUnset(self._mlist)
+ else:
+ article = self.__cache[msgid]
+ return article
+
+ def first(self, archive, index):
+ self.__openIndices(archive)
+ index = getattr(self, index + 'Index')
+ try:
+ key, msgid = index.first()
+ return msgid
+ except KeyError:
+ return None
+
+ def next(self, archive, index):
+ self.__openIndices(archive)
+ index = getattr(self, index + 'Index')
+ try:
+ key, msgid = index.next()
+ return msgid
+ except KeyError:
+ return None
+
+ def getOldestArticle(self, archive, subject):
+ self.__openIndices(archive)
+ subject = subject.lower()
+ try:
+ key, tempid=self.subjectIndex.set_location(subject)
+ self.subjectIndex.next()
+ [subject2, date]= key.split('\0')
+ if subject!=subject2: return None
+ return tempid
+ except KeyError:
+ return None
+
+ def newArchive(self, archive):
+ pass
+
+ def clearIndex(self, archive, index):
+ self.__openIndices(archive)
+ if hasattr(self.threadIndex, 'clear'):
+ self.threadIndex.clear()
+ return
+ finished=0
+ try:
+ key, msgid=self.threadIndex.first()
+ except KeyError: finished=1
+ while not finished:
+ del self.threadIndex[key]
+ try:
+ key, msgid=self.threadIndex.next()
+ except KeyError: finished=1
diff --git a/Mailman/Archiver/Makefile.in b/Mailman/Archiver/Makefile.in
new file mode 100644
index 00000000..fe56149d
--- /dev/null
+++ b/Mailman/Archiver/Makefile.in
@@ -0,0 +1,72 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# NOTE: Makefile.in is converted into Makefile by the configure script
+# in the parent directory. Once configure has run, you can recreate
+# the Makefile by running just config.status.
+
+# Variables set by configure
+
+VPATH= @srcdir@
+srcdir= @srcdir@
+bindir= @bindir@
+prefix= @prefix@
+exec_prefix= @exec_prefix@
+
+CC= @CC@
+CHMOD= @CHMOD@
+INSTALL= @INSTALL@
+
+DEFS= @DEFS@
+
+# Customizable but not set by configure
+
+OPT= @OPT@
+CFLAGS= $(OPT) $(DEFS)
+PACKAGEDIR= $(prefix)/Mailman/Archiver
+SHELL= /bin/sh
+
+MODULES= __init__.py Archiver.py HyperArch.py HyperDatabase.py \
+pipermail.py
+
+
+# Modes for directories and executables created by the install
+# process. Default to group-writable directories but
+# user-only-writable for executables.
+DIRMODE= 775
+EXEMODE= 755
+FILEMODE= 644
+INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
+
+
+# Rules
+
+all:
+
+install:
+ for f in $(MODULES); \
+ do \
+ $(INSTALL) -m $(FILEMODE) $(srcdir)/$$f $(PACKAGEDIR); \
+ done
+
+finish:
+
+clean:
+
+distclean:
+ -rm *.pyc
+ -rm Makefile
+
diff --git a/Mailman/Archiver/__init__.py b/Mailman/Archiver/__init__.py
new file mode 100644
index 00000000..65ad7be7
--- /dev/null
+++ b/Mailman/Archiver/__init__.py
@@ -0,0 +1,17 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+from Archiver import *
diff --git a/Mailman/Archiver/pipermail.py b/Mailman/Archiver/pipermail.py
new file mode 100644
index 00000000..2e1b226d
--- /dev/null
+++ b/Mailman/Archiver/pipermail.py
@@ -0,0 +1,854 @@
+#! /usr/bin/env python
+
+from __future__ import nested_scopes
+
+import mailbox
+import os
+import re
+import sys
+import time
+from email.Utils import parseaddr, parsedate_tz
+import cPickle as pickle
+from cStringIO import StringIO
+from string import lowercase
+
+__version__ = '0.09 (Mailman edition)'
+VERSION = __version__
+CACHESIZE = 100 # Number of slots in the cache
+
+from Mailman import Errors
+from Mailman.Mailbox import ArchiverMailbox
+from Mailman.Logging.Syslog import syslog
+from Mailman.i18n import _
+
+SPACE = ' '
+
+
+
+msgid_pat = re.compile(r'(<.*>)')
+def strip_separators(s):
+ "Remove quotes or parenthesization from a Message-ID string"
+ if not s:
+ return ""
+ if s[0] in '"<([' and s[-1] in '">)]':
+ s = s[1:-1]
+ return s
+
+smallNameParts = ['van', 'von', 'der', 'de']
+
+def fixAuthor(author):
+ "Canonicalize a name into Last, First format"
+ # If there's a comma, guess that it's already in "Last, First" format
+ if ',' in author:
+ return author
+ L = author.split()
+ i = len(L) - 1
+ if i == 0:
+ return author # The string's one word--forget it
+ if author.upper() == author or author.lower() == author:
+ # Damn, the name is all upper- or lower-case.
+ while i > 0 and L[i-1].lower() in smallNameParts:
+ i = i - 1
+ else:
+ # Mixed case; assume that small parts of the last name will be
+ # in lowercase, and check them against the list.
+ while i>0 and (L[i-1][0] in lowercase or
+ L[i-1].lower() in smallNameParts):
+ i = i - 1
+ author = SPACE.join(L[-1:] + L[i:-1]) + ', ' + SPACE.join(L[:i])
+ return author
+
+# Abstract class for databases
+
+class DatabaseInterface:
+ def __init__(self): pass
+ def close(self): pass
+ def getArticle(self, archive, msgid): pass
+ def hasArticle(self, archive, msgid): pass
+ def addArticle(self, archive, article, subject=None, author=None,
+ date=None): pass
+ def firstdate(self, archive): pass
+ def lastdate(self, archive): pass
+ def first(self, archive, index): pass
+ def next(self, archive, index): pass
+ def numArticles(self, archive): pass
+ def newArchive(self, archive): pass
+ def setThreadKey(self, archive, key, msgid): pass
+ def getOldestArticle(self, subject): pass
+
+class Database(DatabaseInterface):
+ """Define the basic sorting logic for a database
+
+ Assumes that the database internally uses dateIndex, authorIndex,
+ etc.
+ """
+
+ # TBD Factor out more of the logic shared between BSDDBDatabase
+ # and HyperDatabase and place it in this class.
+
+ def __init__(self):
+ # This method need not be called by subclasses that do their
+ # own initialization.
+ self.dateIndex = {}
+ self.authorIndex = {}
+ self.subjectIndex = {}
+ self.articleIndex = {}
+ self.changed = {}
+
+ def addArticle(self, archive, article, subject=None, author=None,
+ date=None):
+ # create the keys; always end w/ msgid which will be unique
+ authorkey = (author or article.author, article.date,
+ article.msgid)
+ subjectkey = (subject or article.subject, article.date,
+ article.msgid)
+ datekey = date or article.date, article.msgid
+
+ # Add the new article
+ self.dateIndex[datekey] = article.msgid
+ self.authorIndex[authorkey] = article.msgid
+ self.subjectIndex[subjectkey] = article.msgid
+
+ self.store_article(article)
+ self.changed[archive, article.msgid] = None
+
+ parentID = article.parentID
+ if parentID is not None and self.articleIndex.has_key(parentID):
+ parent = self.getArticle(archive, parentID)
+ myThreadKey = parent.threadKey + article.date + '-'
+ else:
+ myThreadKey = article.date + '-'
+ article.threadKey = myThreadKey
+ key = myThreadKey, article.msgid
+ self.setThreadKey(archive, key, article.msgid)
+
+ def store_article(self, article):
+ """Store article without message body to save space"""
+ # TBD this is not thread safe!
+ temp = article.body
+ article.body = []
+ self.articleIndex[article.msgid] = pickle.dumps(article)
+ article.body = temp
+
+# The Article class encapsulates a single posting. The attributes
+# are:
+#
+# sequence : Sequence number, unique for each article in a set of archives
+# subject : Subject
+# datestr : The posting date, in human-readable format
+# date : The posting date, in purely numeric format
+# headers : Any other headers of interest
+# author : The author's name (and possibly organization)
+# email : The author's e-mail address
+# msgid : A unique message ID
+# in_reply_to: If != "", this is the msgid of the article being replied to
+# references : A (possibly empty) list of msgid's of earlier articles
+# in the thread
+# body : A list of strings making up the message body
+
+class Article:
+ _last_article_time = time.time()
+
+ def __init__(self, message = None, sequence = 0, keepHeaders = []):
+ if message is None:
+ return
+ self.sequence = sequence
+
+ self.parentID = None
+ self.threadKey = None
+ # otherwise the current sequence number is used.
+ id = strip_separators(message['Message-Id'])
+ if id == "":
+ self.msgid = str(self.sequence)
+ else: self.msgid = id
+
+ if message.has_key('Subject'):
+ self.subject = str(message['Subject'])
+ else:
+ self.subject = _('No subject')
+ if self.subject == "": self.subject = _('No subject')
+
+ self._set_date(message)
+
+ # Figure out the e-mail address and poster's name. Use the From:
+ # field first, followed by Reply-To:
+ self.author, self.email = parseaddr(message.get('From', ''))
+ e = message['Reply-To']
+ if not self.email and e is not None:
+ ignoreauthor, self.email = parseaddr(e)
+ self.email = strip_separators(self.email)
+ self.author = strip_separators(self.author)
+
+ if self.author == "":
+ self.author = self.email
+
+ # Save the In-Reply-To:, References:, and Message-ID: lines
+ #
+ # TBD: The original code does some munging on these fields, which
+ # shouldn't be necessary, but changing this may break code. For
+ # safety, I save the original headers on different attributes for use
+ # in writing the plain text periodic flat files.
+ self._in_reply_to = message['in-reply-to']
+ self._references = message['references']
+ self._message_id = message['message-id']
+
+ i_r_t = message['In-Reply-To']
+ if i_r_t is None:
+ self.in_reply_to = ''
+ else:
+ match = msgid_pat.search(i_r_t)
+ if match is None: self.in_reply_to = ''
+ else: self.in_reply_to = strip_separators(match.group(1))
+
+ references = message['References']
+ if references is None:
+ self.references = []
+ else:
+ self.references = map(strip_separators, references.split())
+
+ # Save any other interesting headers
+ self.headers = {}
+ for i in keepHeaders:
+ if message.has_key(i):
+ self.headers[i] = message[i]
+
+ # Read the message body
+ s = StringIO(message.get_payload())
+ self.body = s.readlines()
+
+ def _set_date(self, message):
+ def floatdate(header):
+ missing = []
+ datestr = message.get(header, missing)
+ if datestr is missing:
+ return None
+ date = parsedate_tz(datestr)
+ try:
+ return time.mktime(date[:9])
+ except (ValueError, OverflowError):
+ return None
+ date = floatdate('date')
+ if date is None:
+ date = floatdate('x-list-received-date')
+ if date is None:
+ # What's left to try?
+ date = self._last_article_time + 1
+ self._last_article_time = date
+ self.date = '%011i' % date
+
+ def __repr__(self):
+ return '<Article ID = '+repr(self.msgid)+'>'
+
+# Pipermail formatter class
+
+class T:
+ DIRMODE = 0755 # Mode to give to created directories
+ FILEMODE = 0644 # Mode to give to created files
+ INDEX_EXT = ".html" # Extension for indexes
+
+ def __init__(self, basedir = None, reload = 1, database = None):
+ # If basedir isn't provided, assume the current directory
+ if basedir is None:
+ self.basedir = os.getcwd()
+ else:
+ basedir = os.path.expanduser(basedir)
+ self.basedir = basedir
+ self.database = database
+
+ # If the directory doesn't exist, create it. This code shouldn't get
+ # run anymore, we create the directory in Archiver.py. It should only
+ # get used by legacy lists created that are only receiving their first
+ # message in the HTML archive now -- Marc
+ try:
+ os.stat(self.basedir)
+ except os.error, errdata:
+ errno, errmsg = errdata
+ if errno != 2:
+ raise os.error, errdata
+ else:
+ self.message(_('Creating archive directory ') + self.basedir)
+ omask = os.umask(0)
+ try:
+ os.mkdir(self.basedir, self.DIRMODE)
+ finally:
+ os.umask(omask)
+
+ # Try to load previously pickled state
+ try:
+ if not reload:
+ raise IOError
+ f = open(os.path.join(self.basedir, 'pipermail.pck'), 'r')
+ self.message(_('Reloading pickled archive state'))
+ d = pickle.load(f)
+ f.close()
+ for key, value in d.items():
+ setattr(self, key, value)
+ except (IOError, EOFError):
+ # No pickled version, so initialize various attributes
+ self.archives = [] # Archives
+ self._dirty_archives = [] # Archives that will have to be updated
+ self.sequence = 0 # Sequence variable used for
+ # numbering articles
+ self.update_TOC = 0 # Does the TOC need updating?
+ #
+ # make the basedir variable work when passed in as an __init__ arg
+ # and different from the one in the pickle. Let the one passed in
+ # as an __init__ arg take precedence if it's stated. This way, an
+ # archive can be moved from one place to another and still work.
+ #
+ if basedir != self.basedir:
+ self.basedir = basedir
+
+ def close(self):
+ "Close an archive, save its state, and update any changed archives."
+ self.update_dirty_archives()
+ self.update_TOC = 0
+ self.write_TOC()
+ # Save the collective state
+ self.message(_('Pickling archive state into ')
+ + os.path.join(self.basedir, 'pipermail.pck'))
+ self.database.close()
+ del self.database
+
+ omask = os.umask(007)
+ try:
+ f = open(os.path.join(self.basedir, 'pipermail.pck'), 'w')
+ finally:
+ os.umask(omask)
+ pickle.dump(self.getstate(), f)
+ f.close()
+
+ def getstate(self):
+ # can override this in subclass
+ return self.__dict__
+
+ #
+ # Private methods
+ #
+ # These will be neither overridden nor called by custom archivers.
+ #
+
+
+ # Create a dictionary of various parameters that will be passed
+ # to the write_index_{header,footer} functions
+ def __set_parameters(self, archive):
+ # Determine the earliest and latest date in the archive
+ firstdate = self.database.firstdate(archive)
+ lastdate = self.database.lastdate(archive)
+
+ # Get the current time
+ now = time.asctime(time.localtime(time.time()))
+ self.firstdate = firstdate
+ self.lastdate = lastdate
+ self.archivedate = now
+ self.size = self.database.numArticles(archive)
+ self.archive = archive
+ self.version = __version__
+
+ # Find the message ID of an article's parent, or return None
+ # if no parent can be found.
+
+ def __findParent(self, article, children = []):
+ parentID = None
+ if article.in_reply_to:
+ parentID = article.in_reply_to
+ elif article.references:
+ # Remove article IDs that aren't in the archive
+ refs = filter(self.articleIndex.has_key, article.references)
+ if not refs:
+ return None
+ maxdate = self.database.getArticle(self.archive,
+ refs[0])
+ for ref in refs[1:]:
+ a = self.database.getArticle(self.archive, ref)
+ if a.date > maxdate.date:
+ maxdate = a
+ parentID = maxdate.msgid
+ else:
+ # Look for the oldest matching subject
+ try:
+ key, tempid = \
+ self.subjectIndex.set_location(article.subject)
+ print key, tempid
+ self.subjectIndex.next()
+ [subject, date] = key.split('\0')
+ print article.subject, subject, date
+ if subject == article.subject and tempid not in children:
+ parentID = tempid
+ except KeyError:
+ pass
+ return parentID
+
+ # Update the threaded index completely
+ def updateThreadedIndex(self):
+ # Erase the threaded index
+ self.database.clearIndex(self.archive, 'thread')
+
+ # Loop over all the articles
+ msgid = self.database.first(self.archive, 'date')
+ while msgid is not None:
+ try:
+ article = self.database.getArticle(self.archive, msgid)
+ except KeyError:
+ pass
+ else:
+ if article.parentID is None or \
+ not self.database.hasArticle(self.archive,
+ article.parentID):
+ # then
+ pass
+ else:
+ parent = self.database.getArticle(self.archive,
+ article.parentID)
+ article.threadKey = parent.threadKey+article.date+'-'
+ self.database.setThreadKey(self.archive,
+ (article.threadKey, article.msgid),
+ msgid)
+ msgid = self.database.next(self.archive, 'date')
+
+ #
+ # Public methods:
+ #
+ # These are part of the public interface of the T class, but will
+ # never be overridden (unless you're trying to do something very new).
+
+ # Update a single archive's indices, whether the archive's been
+ # dirtied or not.
+ def update_archive(self, archive):
+ self.archive = archive
+ self.message(_("Updating index files for archive [%(archive)s]"))
+ arcdir = os.path.join(self.basedir, archive)
+ self.__set_parameters(archive)
+
+ for hdr in ('Date', 'Subject', 'Author'):
+ self._update_simple_index(hdr, archive, arcdir)
+
+ self._update_thread_index(archive, arcdir)
+
+ def _update_simple_index(self, hdr, archive, arcdir):
+ self.message(" " + hdr)
+ self.type = hdr
+ hdr = hdr.lower()
+
+ self._open_index_file_as_stdout(arcdir, hdr)
+ self.write_index_header()
+ count = 0
+ # Loop over the index entries
+ msgid = self.database.first(archive, hdr)
+ while msgid is not None:
+ try:
+ article = self.database.getArticle(self.archive, msgid)
+ except KeyError:
+ pass
+ else:
+ count = count + 1
+ self.write_index_entry(article)
+ msgid = self.database.next(archive, hdr)
+ # Finish up this index
+ self.write_index_footer()
+ self._restore_stdout()
+
+ def _update_thread_index(self, archive, arcdir):
+ self.message(_(" Thread"))
+ self._open_index_file_as_stdout(arcdir, "thread")
+ self.type = 'Thread'
+ self.write_index_header()
+
+ # To handle the prev./next in thread pointers, we need to
+ # track articles 5 at a time.
+
+ # Get the first 5 articles
+ L = [None] * 5
+ i = 2
+ msgid = self.database.first(self.archive, 'thread')
+
+ while msgid is not None and i < 5:
+ L[i] = self.database.getArticle(self.archive, msgid)
+ i = i + 1
+ msgid = self.database.next(self.archive, 'thread')
+
+ while L[2] is not None:
+ article = L[2]
+ artkey = None
+ if article is not None:
+ artkey = article.threadKey
+ if artkey is not None:
+ self.write_threadindex_entry(article, artkey.count('-') - 1)
+ if self.database.changed.has_key((archive,article.msgid)):
+ a1 = L[1]
+ a3 = L[3]
+ self.update_article(arcdir, article, a1, a3)
+ if a3 is not None:
+ self.database.changed[(archive, a3.msgid)] = None
+ if a1 is not None:
+ key = archive, a1.msgid
+ if not self.database.changed.has_key(key):
+ self.update_article(arcdir, a1, L[0], L[2])
+ else:
+ del self.database.changed[key]
+ L = L[1:] # Rotate the list
+ if msgid is None:
+ L.append(msgid)
+ else:
+ L.append(self.database.getArticle(self.archive, msgid))
+ msgid = self.database.next(self.archive, 'thread')
+
+ self.write_index_footer()
+ self._restore_stdout()
+
+ def _open_index_file_as_stdout(self, arcdir, index_name):
+ path = os.path.join(arcdir, index_name + self.INDEX_EXT)
+ omask = os.umask(002)
+ try:
+ self.__f = open(path, 'w')
+ finally:
+ os.umask(omask)
+ self.__stdout = sys.stdout
+ sys.stdout = self.__f
+
+ def _restore_stdout(self):
+ sys.stdout = self.__stdout
+ self.__f.close()
+ del self.__f
+ del self.__stdout
+
+ # Update only archives that have been marked as "changed".
+ def update_dirty_archives(self):
+ for i in self._dirty_archives:
+ self.update_archive(i)
+ self._dirty_archives = []
+
+ # Read a Unix mailbox file from the file object <input>,
+ # and create a series of Article objects. Each article
+ # object will then be archived.
+
+ def _makeArticle(self, msg, sequence):
+ return Article(msg, sequence)
+
+ def processUnixMailbox(self, input, start=None, end=None):
+ mbox = ArchiverMailbox(input, self.maillist)
+ if start is None:
+ start = 0
+ counter = 0
+ while counter < start:
+ try:
+ m = mbox.next()
+ except Errors.DiscardMessage:
+ continue
+ if m is None:
+ return
+ counter += 1
+ while 1:
+ try:
+ pos = input.tell()
+ m = mbox.next()
+ except Errors.DiscardMessage:
+ continue
+ except Exception:
+ syslog('error', 'uncaught archiver exception at filepos: %s',
+ pos)
+ raise
+ if m is None:
+ break
+ if m == '':
+ # It was an unparseable message
+ continue
+ msgid = m.get('message-id', 'n/a')
+ self.message(_('#%(counter)05d %(msgid)s'))
+ a = self._makeArticle(m, self.sequence)
+ self.sequence += 1
+ self.add_article(a)
+ if end is not None and counter >= end:
+ break
+ counter += 1
+
+ def new_archive(self, archive, archivedir):
+ self.archives.append(archive)
+ self.update_TOC = 1
+ self.database.newArchive(archive)
+ # If the archive directory doesn't exist, create it
+ try:
+ os.stat(archivedir)
+ except os.error, errdata:
+ errno, errmsg = errdata
+ if errno == 2:
+ omask = os.umask(0)
+ try:
+ os.mkdir(archivedir, self.DIRMODE)
+ finally:
+ os.umask(omask)
+ else:
+ raise os.error, errdata
+ self.open_new_archive(archive, archivedir)
+
+ def add_article(self, article):
+ archives = self.get_archives(article)
+ if not archives:
+ return
+ if type(archives) == type(''):
+ archives = [archives]
+
+ article.filename = filename = self.get_filename(article)
+ temp = self.format_article(article)
+ for arch in archives:
+ self.archive = arch # why do this???
+ archivedir = os.path.join(self.basedir, arch)
+ if arch not in self.archives:
+ self.new_archive(arch, archivedir)
+
+ # Write the HTML-ized article
+ self.write_article(arch, temp, os.path.join(archivedir,
+ filename))
+
+ author = fixAuthor(article.author)
+ subject = article.subject.lower()
+
+ article.parentID = parentID = self.get_parent_info(arch, article)
+ if parentID:
+ parent = self.database.getArticle(arch, parentID)
+ article.threadKey = parent.threadKey + article.date + '-'
+ else:
+ article.threadKey = article.date + '-'
+ key = article.threadKey, article.msgid
+
+ self.database.setThreadKey(arch, key, article.msgid)
+ self.database.addArticle(arch, temp, author=author,
+ subject=subject)
+
+ if arch not in self._dirty_archives:
+ self._dirty_archives.append(arch)
+
+ def get_parent_info(self, archive, article):
+ parentID = None
+ if article.in_reply_to:
+ parentID = article.in_reply_to
+ elif article.references:
+ refs = self._remove_external_references(article.references)
+ if refs:
+ maxdate = self.database.getArticle(archive, refs[0])
+ for ref in refs[1:]:
+ a = self.database.getArticle(archive, ref)
+ if a.date > maxdate.date:
+ maxdate = a
+ parentID = maxdate.msgid
+ else:
+ # Get the oldest article with a matching subject, and
+ # assume this is a follow-up to that article
+ parentID = self.database.getOldestArticle(archive,
+ article.subject)
+
+ if parentID and not self.database.hasArticle(archive, parentID):
+ parentID = None
+ return parentID
+
+ def write_article(self, index, article, path):
+ omask = os.umask(002)
+ try:
+ f = open(path, 'w')
+ finally:
+ os.umask(omask)
+ temp_stdout, sys.stdout = sys.stdout, f
+ self.write_article_header(article)
+ sys.stdout.writelines(article.body)
+ self.write_article_footer(article)
+ sys.stdout = temp_stdout
+ f.close()
+
+ def _remove_external_references(self, refs):
+ keep = []
+ for ref in refs:
+ if self.database.hasArticle(self.archive, ref):
+ keep.append(ref)
+ return keep
+
+ # Abstract methods: these will need to be overridden by subclasses
+ # before anything useful can be done.
+
+ def get_filename(self, article):
+ pass
+ def get_archives(self, article):
+ """Return a list of indexes where the article should be filed.
+ A string can be returned if the list only contains one entry,
+ and the empty list is legal."""
+ pass
+ def format_article(self, article):
+ pass
+ def write_index_header(self):
+ pass
+ def write_index_footer(self):
+ pass
+ def write_index_entry(self, article):
+ pass
+ def write_threadindex_entry(self, article, depth):
+ pass
+ def write_article_header(self, article):
+ pass
+ def write_article_footer(self, article):
+ pass
+ def write_article_entry(self, article):
+ pass
+ def update_article(self, archivedir, article, prev, next):
+ pass
+ def write_TOC(self):
+ pass
+ def open_new_archive(self, archive, dir):
+ pass
+ def message(self, msg):
+ pass
+
+
+class BSDDBdatabase(Database):
+ __super_addArticle = Database.addArticle
+
+ def __init__(self, basedir):
+ self.__cachekeys = []
+ self.__cachedict = {}
+ self.__currentOpenArchive = None # The currently open indices
+ self.basedir = os.path.expanduser(basedir)
+ self.changed = {} # Recently added articles, indexed only by
+ # message ID
+
+ def firstdate(self, archive):
+ self.__openIndices(archive)
+ date = 'None'
+ try:
+ date, msgid = self.dateIndex.first()
+ date = time.asctime(time.localtime(float(date)))
+ except KeyError:
+ pass
+ return date
+
+ def lastdate(self, archive):
+ self.__openIndices(archive)
+ date = 'None'
+ try:
+ date, msgid = self.dateIndex.last()
+ date = time.asctime(time.localtime(float(date)))
+ except KeyError:
+ pass
+ return date
+
+ def numArticles(self, archive):
+ self.__openIndices(archive)
+ return len(self.dateIndex)
+
+ def addArticle(self, archive, article, subject=None, author=None,
+ date=None):
+ self.__openIndices(archive)
+ self.__super_addArticle(archive, article, subject, author, date)
+
+ # Open the BSDDB files that are being used as indices
+ # (dateIndex, authorIndex, subjectIndex, articleIndex)
+ def __openIndices(self, archive):
+ if self.__currentOpenArchive == archive:
+ return
+
+ import bsddb
+ self.__closeIndices()
+ arcdir = os.path.join(self.basedir, 'database')
+ omask = os.umask(0)
+ try:
+ try:
+ os.mkdir(arcdir, 02775)
+ except OSError:
+ # BAW: Hmm...
+ pass
+ finally:
+ os.umask(omask)
+ for hdr in ('date', 'author', 'subject', 'article', 'thread'):
+ path = os.path.join(arcdir, archive + '-' + hdr)
+ t = bsddb.btopen(path, 'c')
+ setattr(self, hdr + 'Index', t)
+ self.__currentOpenArchive = archive
+
+ # Close the BSDDB files that are being used as indices (if they're
+ # open--this is safe to call if they're already closed)
+ def __closeIndices(self):
+ if self.__currentOpenArchive is not None:
+ pass
+ for hdr in ('date', 'author', 'subject', 'thread', 'article'):
+ attr = hdr + 'Index'
+ if hasattr(self, attr):
+ index = getattr(self, attr)
+ if hdr == 'article':
+ if not hasattr(self, 'archive_length'):
+ self.archive_length = {}
+ self.archive_length[self.__currentOpenArchive] = len(index)
+ index.close()
+ delattr(self,attr)
+ self.__currentOpenArchive = None
+
+ def close(self):
+ self.__closeIndices()
+ def hasArticle(self, archive, msgid):
+ self.__openIndices(archive)
+ return self.articleIndex.has_key(msgid)
+ def setThreadKey(self, archive, key, msgid):
+ self.__openIndices(archive)
+ self.threadIndex[key] = msgid
+ def getArticle(self, archive, msgid):
+ self.__openIndices(archive)
+ if self.__cachedict.has_key(msgid):
+ self.__cachekeys.remove(msgid)
+ self.__cachekeys.append(msgid)
+ return self.__cachedict[msgid]
+ if len(self.__cachekeys) == CACHESIZE:
+ delkey, self.__cachekeys = (self.__cachekeys[0],
+ self.__cachekeys[1:])
+ del self.__cachedict[delkey]
+ s = self.articleIndex[msgid]
+ article = pickle.loads(s)
+ self.__cachekeys.append(msgid)
+ self.__cachedict[msgid] = article
+ return article
+
+ def first(self, archive, index):
+ self.__openIndices(archive)
+ index = getattr(self, index+'Index')
+ try:
+ key, msgid = index.first()
+ return msgid
+ except KeyError:
+ return None
+ def next(self, archive, index):
+ self.__openIndices(archive)
+ index = getattr(self, index+'Index')
+ try:
+ key, msgid = index.next()
+ except KeyError:
+ return None
+ else:
+ return msgid
+
+ def getOldestArticle(self, archive, subject):
+ self.__openIndices(archive)
+ subject = subject.lower()
+ try:
+ key, tempid = self.subjectIndex.set_location(subject)
+ self.subjectIndex.next()
+ [subject2, date] = key.split('\0')
+ if subject != subject2:
+ return None
+ return tempid
+ except KeyError: # XXX what line raises the KeyError?
+ return None
+
+ def newArchive(self, archive):
+ pass
+
+ def clearIndex(self, archive, index):
+ self.__openIndices(archive)
+ index = getattr(self, index+'Index')
+ finished = 0
+ try:
+ key, msgid = self.threadIndex.first()
+ except KeyError:
+ finished = 1
+ while not finished:
+ del self.threadIndex[key]
+ try:
+ key, msgid = self.threadIndex.next()
+ except KeyError:
+ finished = 1
+
+
diff --git a/Mailman/Autoresponder.py b/Mailman/Autoresponder.py
new file mode 100644
index 00000000..c568ec06
--- /dev/null
+++ b/Mailman/Autoresponder.py
@@ -0,0 +1,43 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""MailList mixin class managing the autoresponder.
+"""
+
+from Mailman import mm_cfg
+from Mailman.i18n import _
+
+
+
+class Autoresponder:
+ def InitVars(self):
+ # configurable
+ self.autorespond_postings = 0
+ self.autorespond_admin = 0
+ # this value can be
+ # 0 - no autoresponse on the -request line
+ # 1 - autorespond, but discard the original message
+ # 2 - autorespond, and forward the message on to be processed
+ self.autorespond_requests = 0
+ self.autoresponse_postings_text = ''
+ self.autoresponse_admin_text = ''
+ self.autoresponse_request_text = ''
+ self.autoresponse_graceperiod = 90 # days
+ # non-configurable
+ self.postings_responses = {}
+ self.admin_responses = {}
+ self.request_responses = {}
+
diff --git a/Mailman/Bouncer.py b/Mailman/Bouncer.py
new file mode 100644
index 00000000..34bd21d4
--- /dev/null
+++ b/Mailman/Bouncer.py
@@ -0,0 +1,281 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Handle delivery bounces.
+"""
+
+import sys
+import time
+from types import StringType
+
+from email.MIMEText import MIMEText
+from email.MIMEMessage import MIMEMessage
+
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman import Message
+from Mailman import MemberAdaptor
+from Mailman import Pending
+from Mailman.Logging.Syslog import syslog
+from Mailman import i18n
+
+EMPTYSTRING = ''
+
+# This constant is supposed to represent the day containing the first midnight
+# after the epoch. We'll add (0,)*6 to this tuple to get a value appropriate
+# for time.mktime().
+ZEROHOUR_PLUSONEDAY = time.localtime(mm_cfg.days(1))[:3]
+
+def _(s): return s
+
+REASONS = {MemberAdaptor.BYBOUNCE: _('due to excessive bounces'),
+ MemberAdaptor.BYUSER: _('by yourself'),
+ MemberAdaptor.BYADMIN: _('by the list administrator'),
+ MemberAdaptor.UNKNOWN: _('for unknown reasons'),
+ }
+
+_ = i18n._
+
+
+
+class _BounceInfo:
+ def __init__(self, member, score, date, noticesleft, cookie):
+ self.member = member
+ self.cookie = cookie
+ self.reset(score, date, noticesleft)
+
+ def reset(self, score, date, noticesleft):
+ self.score = score
+ self.date = date
+ self.noticesleft = noticesleft
+ self.lastnotice = ZEROHOUR_PLUSONEDAY
+
+ def __repr__(self):
+ # For debugging
+ return """\
+<bounce info for member %(member)s
+ current score: %(score)s
+ last bounce date: %(date)s
+ email notices left: %(noticesleft)s
+ last notice date: %(lastnotice)s
+ confirmation cookie: %(cookie)s
+ >""" % self.__dict__
+
+
+
+class Bouncer:
+ def InitVars(self):
+ # Configurable...
+ self.bounce_processing = mm_cfg.DEFAULT_BOUNCE_PROCESSING
+ self.bounce_score_threshold = mm_cfg.DEFAULT_BOUNCE_SCORE_THRESHOLD
+ self.bounce_info_stale_after = mm_cfg.DEFAULT_BOUNCE_INFO_STALE_AFTER
+ self.bounce_you_are_disabled_warnings = \
+ mm_cfg.DEFAULT_BOUNCE_YOU_ARE_DISABLED_WARNINGS
+ self.bounce_you_are_disabled_warnings_interval = \
+ mm_cfg.DEFAULT_BOUNCE_YOU_ARE_DISABLED_WARNINGS_INTERVAL
+ self.bounce_unrecognized_goes_to_list_owner = \
+ mm_cfg.DEFAULT_BOUNCE_UNRECOGNIZED_GOES_TO_LIST_OWNER
+ self.bounce_notify_owner_on_disable = \
+ mm_cfg.DEFAULT_BOUNCE_NOTIFY_OWNER_ON_DISABLE
+ self.bounce_notify_owner_on_removal = \
+ mm_cfg.DEFAULT_BOUNCE_NOTIFY_OWNER_ON_REMOVAL
+ # Not configurable...
+ #
+ # This holds legacy member related information. It's keyed by the
+ # member address, and the value is an object containing the bounce
+ # score, the date of the last received bounce, and a count of the
+ # notifications left to send.
+ self.bounce_info = {}
+ # New style delivery status
+ self.delivery_status = {}
+
+ def registerBounce(self, member, msg, weight=1.0):
+ if not self.isMember(member):
+ return
+ info = self.getBounceInfo(member)
+ today = time.localtime()[:3]
+ if not isinstance(info, _BounceInfo):
+ # This is the first bounce we've seen from this member
+ cookie = Pending.new(Pending.RE_ENABLE, self.internal_name(),
+ member)
+ info = _BounceInfo(member, weight, today,
+ self.bounce_you_are_disabled_warnings,
+ cookie)
+ self.setBounceInfo(member, info)
+ syslog('bounce', '%s: %s bounce score: %s', self.internal_name(),
+ member, info.score)
+ # Continue to the check phase below
+ elif self.getDeliveryStatus(member) <> MemberAdaptor.ENABLED:
+ # The user is already disabled, so we can just ignore subsequent
+ # bounces. These are likely due to residual messages that were
+ # sent before disabling the member, but took a while to bounce.
+ syslog('bounce', '%s: %s residual bounce received',
+ self.internal_name(), member)
+ return
+ elif info.date == today:
+ # We've already scored any bounces for today, so ignore this one.
+ syslog('bounce', '%s: %s already scored a bounce for today',
+ self.internal_name(), member)
+ # Continue to check phase below
+ else:
+ # See if this member's bounce information is stale.
+ now = Utils.midnight(today)
+ lastbounce = Utils.midnight(info.date)
+ if lastbounce + self.bounce_info_stale_after < now:
+ # Information is stale, so simply reset it
+ info.reset(weight, today,
+ self.bounce_you_are_disabled_warnings)
+ syslog('bounce', '%s: %s has stale bounce info, resetting',
+ self.internal_name(), member)
+ else:
+ # Nope, the information isn't stale, so add to the bounce
+ # score and take any necessary action.
+ info.score += weight
+ info.date = today
+ syslog('bounce', '%s: %s current bounce score: %s',
+ member, self.internal_name(), info.score)
+ # Continue to the check phase below
+ #
+ # Now that we've adjusted the bounce score for this bounce, let's
+ # check to see if the disable-by-bounce threshold has been reached.
+ if info.score >= self.bounce_score_threshold:
+ self.disableBouncingMember(member, info, msg)
+
+ def disableBouncingMember(self, member, info, msg):
+ # Disable them
+ syslog('bounce', '%s: %s disabling due to bounce score %s >= %s',
+ self.internal_name(), member,
+ info.score, self.bounce_score_threshold)
+ self.setDeliveryStatus(member, MemberAdaptor.BYBOUNCE)
+ self.sendNextNotification(member)
+ if self.bounce_notify_owner_on_disable:
+ self.__sendAdminBounceNotice(member, msg)
+
+ def __sendAdminBounceNotice(self, member, msg):
+ # BAW: This is a bit kludgey, but we're not providing as much
+ # information in the new admin bounce notices as we used to (some of
+ # it was of dubious value). However, we'll provide empty, strange, or
+ # meaningless strings for the unused %()s fields so that the language
+ # translators don't have to provide new templates.
+ siteowner = Utils.get_site_email(self.host_name)
+ text = Utils.maketext(
+ 'bounce.txt',
+ {'listname' : self.real_name,
+ 'addr' : member,
+ 'negative' : '',
+ 'did' : _('disabled'),
+ 'but' : '',
+ 'reenable' : '',
+ 'owneraddr': siteowner,
+ }, mlist=self)
+ subject = _('Bounce action notification')
+ umsg = Message.UserNotification(self.GetOwnerEmail(),
+ siteowner, subject,
+ lang=self.preferred_language)
+ # BAW: Be sure you set the type before trying to attach, or you'll get
+ # a MultipartConversionError.
+ umsg.set_type('multipart/mixed')
+ umsg.attach(
+ MIMEText(text, _charset=Utils.GetCharSet(self.preferred_language)))
+ if isinstance(msg, StringType):
+ umsg.attach(MIMEText(msg))
+ else:
+ umsg.attach(MIMEMessage(msg))
+ umsg.send(self)
+
+ def sendNextNotification(self, member):
+ info = self.getBounceInfo(member)
+ if info is None:
+ return
+ reason = self.getDeliveryStatus(member)
+ if info.noticesleft <= 0:
+ # BAW: Remove them now, with a notification message
+ self.ApprovedDeleteMember(
+ member, 'disabled address',
+ admin_notif=self.bounce_notify_owner_on_removal,
+ userack=1)
+ # Expunge the pending cookie for the user. We throw away the
+ # returned data.
+ Pending.confirm(info.cookie)
+ if reason == MemberAdaptor.BYBOUNCE:
+ syslog('bounce', '%s: %s deleted after exhausting notices',
+ self.internal_name(), member)
+ syslog('subscribe', '%s: %s auto-unsubscribed [reason: %s]',
+ self.internal_name(), member,
+ {MemberAdaptor.BYBOUNCE: 'BYBOUNCE',
+ MemberAdaptor.BYUSER: 'BYUSER',
+ MemberAdaptor.BYADMIN: 'BYADMIN',
+ MemberAdaptor.UNKNOWN: 'UNKNOWN'}.get(
+ reason, 'invalid value'))
+ return
+ # Send the next notification
+ confirmurl = '%s/%s' % (self.GetScriptURL('confirm', absolute=1),
+ info.cookie)
+ optionsurl = self.GetOptionsURL(member, absolute=1)
+ reqaddr = self.GetRequestEmail()
+ lang = self.getMemberLanguage(member)
+ txtreason = REASONS.get(reason)
+ if txtreason is None:
+ txtreason = _('for unknown reasons')
+ else:
+ txtreason = _(txtreason)
+ # Give a little bit more detail on bounce disables
+ if reason == MemberAdaptor.BYBOUNCE:
+ date = time.strftime('%d-%b-%Y',
+ time.localtime(Utils.midnight(info.date)))
+ extra = _(' The last bounce received from you was dated %(date)s')
+ txtreason += extra
+ text = Utils.maketext(
+ 'disabled.txt',
+ {'listname' : self.real_name,
+ 'noticesleft': info.noticesleft,
+ 'confirmurl' : confirmurl,
+ 'optionsurl' : optionsurl,
+ 'password' : self.getMemberPassword(member),
+ 'owneraddr' : self.GetOwnerEmail(),
+ 'reason' : txtreason,
+ }, lang=lang, mlist=self)
+ msg = Message.UserNotification(member, reqaddr, text=text, lang=lang)
+ # BAW: See the comment in MailList.py ChangeMemberAddress() for why we
+ # set the Subject this way.
+ del msg['subject']
+ msg['Subject'] = 'confirm ' + info.cookie
+ msg.send(self)
+ info.noticesleft -= 1
+ info.lastnotice = time.localtime()[:3]
+
+ def BounceMessage(self, msg, msgdata, e=None):
+ # Bounce a message back to the sender, with an error message if
+ # provided in the exception argument.
+ sender = msg.get_sender()
+ subject = msg.get('subject', _('(no subject)'))
+ if e is None:
+ notice = _('[No bounce details are available]')
+ else:
+ notice = _(e.notice())
+ # Currently we always craft bounces as MIME messages.
+ bmsg = Message.UserNotification(msg.get_sender(),
+ self.GetOwnerEmail(),
+ subject,
+ lang=self.preferred_language)
+ # BAW: Be sure you set the type before trying to attach, or you'll get
+ # a MultipartConversionError.
+ bmsg.set_type('multipart/mixed')
+ txt = MIMEText(notice,
+ _charset=Utils.GetCharSet(self.preferred_language))
+ bmsg.attach(txt)
+ bmsg.attach(MIMEMessage(msg))
+ bmsg.send(self)
diff --git a/Mailman/Bouncers/.cvsignore b/Mailman/Bouncers/.cvsignore
new file mode 100644
index 00000000..f3c7a7c5
--- /dev/null
+++ b/Mailman/Bouncers/.cvsignore
@@ -0,0 +1 @@
+Makefile
diff --git a/Mailman/Bouncers/BouncerAPI.py b/Mailman/Bouncers/BouncerAPI.py
new file mode 100644
index 00000000..e8994145
--- /dev/null
+++ b/Mailman/Bouncers/BouncerAPI.py
@@ -0,0 +1,71 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Contains all the common functionality for msg bounce scanning API.
+
+This module can also be used as the basis for a bounce detection testing
+framework. When run as a script, it expects two arguments, the listname and
+the filename containing the bounce message.
+
+"""
+
+import sys
+
+from Mailman.Logging.Syslog import syslog
+
+# If a bounce detector returns Stop, that means to just discard the message.
+# An example is warning messages for temporary delivery problems. These
+# shouldn't trigger a bounce notification, but we also don't want to send them
+# on to the list administrator.
+class _Stop:
+ pass
+Stop = _Stop()
+
+
+BOUNCE_PIPELINE = [
+ 'DSN',
+ 'Qmail',
+ 'Postfix',
+ 'Yahoo',
+ 'Caiwireless',
+ 'Exchange',
+ 'Exim',
+ 'Netscape',
+ 'Compuserve',
+ 'Microsoft',
+ 'GroupWise',
+ 'SMTP32',
+ 'SimpleMatch',
+ 'SimpleWarning',
+ 'Yale',
+ 'LLNL',
+ ]
+
+
+
+# msg must be a mimetools.Message
+def ScanMessages(mlist, msg):
+ for module in BOUNCE_PIPELINE:
+ modname = 'Mailman.Bouncers.' + module
+ __import__(modname)
+ addrs = sys.modules[modname].process(msg)
+ if addrs is Stop:
+ # One of the detectors recognized the bounce, but there were no
+ # addresses to extract. Return the empty list.
+ return []
+ elif addrs:
+ return addrs
+ return []
diff --git a/Mailman/Bouncers/Caiwireless.py b/Mailman/Bouncers/Caiwireless.py
new file mode 100644
index 00000000..0e3e71fc
--- /dev/null
+++ b/Mailman/Bouncers/Caiwireless.py
@@ -0,0 +1,45 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Parse mystery style generated by MTA at caiwireless.net."""
+
+import re
+import email
+from cStringIO import StringIO
+
+tcre = re.compile(r'the following recipients did not receive this message:',
+ re.IGNORECASE)
+acre = re.compile(r'<(?P<addr>[^>]*)>')
+
+
+
+def process(msg):
+ if msg.get_type() <> 'multipart/mixed':
+ return None
+ # simple state machine
+ # 0 == nothing seen
+ # 1 == tag line seen
+ state = 0
+ # This format thinks it's a MIME, but it really isn't
+ for line in email.Iterators.body_line_iterator(msg):
+ line = line.strip()
+ if state == 0 and tcre.match(line):
+ state = 1
+ elif state == 1 and line:
+ mo = acre.match(line)
+ if not mo:
+ return None
+ return [mo.group('addr')]
diff --git a/Mailman/Bouncers/Compuserve.py b/Mailman/Bouncers/Compuserve.py
new file mode 100644
index 00000000..516c2237
--- /dev/null
+++ b/Mailman/Bouncers/Compuserve.py
@@ -0,0 +1,45 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Compuserve has its own weird format for bounces."""
+
+import re
+import email
+
+dcre = re.compile(r'your message could not be delivered', re.IGNORECASE)
+acre = re.compile(r'Invalid receiver address: (?P<addr>.*)')
+
+
+
+def process(msg):
+ # simple state machine
+ # 0 = nothing seen yet
+ # 1 = intro line seen
+ state = 0
+ addrs = []
+ for line in email.Iterators.body_line_iterator(msg):
+ if state == 0:
+ mo = dcre.search(line)
+ if mo:
+ state = 1
+ elif state == 1:
+ mo = dcre.search(line)
+ if mo:
+ break
+ mo = acre.search(line)
+ if mo:
+ addrs.append(mo.group('addr'))
+ return addrs
diff --git a/Mailman/Bouncers/DSN.py b/Mailman/Bouncers/DSN.py
new file mode 100644
index 00000000..3e040bef
--- /dev/null
+++ b/Mailman/Bouncers/DSN.py
@@ -0,0 +1,79 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Parse RFC 1894 (i.e. DSN) bounce formats."""
+
+from email.Iterators import typed_subpart_iterator
+from email.Utils import parseaddr
+from cStringIO import StringIO
+
+
+
+def check(msg):
+ # Iterate over each message/delivery-status subpart
+ addrs = []
+ for part in typed_subpart_iterator(msg, 'message', 'delivery-status'):
+ if not part.is_multipart():
+ # Huh?
+ continue
+ # Each message/delivery-status contains a list of Message objects
+ # which are the header blocks. Iterate over those too.
+ for msgblock in part.get_payload():
+ # We try to dig out the Original-Recipient (which is optional) and
+ # Final-Recipient (which is mandatory, but may not exactly match
+ # an address on our list). Some MTA's also use X-Actual-Recipient
+ # as a synonym for Original-Recipient, but some apparently use
+ # that for other purposes :(
+ #
+ # Also grok out Action so we can do something with that too.
+ action = msgblock.get('action', '')
+ # BAW: Should we treat delayed bounces the same? Yes, because if
+ # the transient problem clears up, they should get unbounced. The
+ # other problem is what to do about a DSN that has both delayed
+ # and failed actions in multiple header blocks? We're not
+ # architected to handle that. ;/
+ if action.lower() not in ('failed', 'failure', 'delayed'):
+ # Some non-permanent failure, so ignore this block
+ continue
+ params = []
+ foundp = 0
+ for header in ('original-recipient', 'final-recipient'):
+ for k, v in msgblock.get_params([], header):
+ if k.lower() == 'rfc822':
+ foundp = 1
+ else:
+ params.append(k)
+ if foundp:
+ # Note that params should already be unquoted.
+ addrs.extend(params)
+ break
+ # Uniquify
+ rtnaddrs = {}
+ for a in addrs:
+ if a is not None:
+ realname, a = parseaddr(a)
+ rtnaddrs[a] = 1
+ return rtnaddrs.keys()
+
+
+
+def process(msg):
+ # The report-type parameter should be "delivery-status", but it seems that
+ # some DSN generating MTAs don't include this on the Content-Type: header,
+ # so let's relax the test a bit.
+ if not msg.is_multipart() or msg.get_subtype() <> 'report':
+ return None
+ return check(msg)
diff --git a/Mailman/Bouncers/Exchange.py b/Mailman/Bouncers/Exchange.py
new file mode 100644
index 00000000..1f73aeb1
--- /dev/null
+++ b/Mailman/Bouncers/Exchange.py
@@ -0,0 +1,47 @@
+# Copyright (C) 2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Recognizes (some) Microsoft Exchange formats."""
+
+import re
+import email.Iterators
+
+scre = re.compile('did not reach the following recipient')
+ecre = re.compile('MSEXCH:')
+a1cre = re.compile('SMTP=(?P<addr>[^;]+); on ')
+a2cre = re.compile('(?P<addr>[^ ]+) on ')
+
+
+
+def process(msg):
+ addrs = {}
+ it = email.Iterators.body_line_iterator(msg)
+ # Find the start line
+ for line in it:
+ if scre.search(line):
+ break
+ else:
+ return []
+ # Search each line until we hit the end line
+ for line in it:
+ if ecre.search(line):
+ break
+ mo = a1cre.search(line)
+ if not mo:
+ mo = a2cre.search(line)
+ if mo:
+ addrs[mo.group('addr')] = 1
+ return addrs.keys()
diff --git a/Mailman/Bouncers/Exim.py b/Mailman/Bouncers/Exim.py
new file mode 100644
index 00000000..1f03df2d
--- /dev/null
+++ b/Mailman/Bouncers/Exim.py
@@ -0,0 +1,30 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Parse bounce messages generated by Exim.
+
+Exim adds an X-Failed-Recipients: header to bounce messages containing
+an `addresslist' of failed addresses.
+
+"""
+
+from email.Utils import getaddresses
+
+
+
+def process(msg):
+ all = msg.get_all('x-failed-recipients', [])
+ return [a for n, a in getaddresses(all)]
diff --git a/Mailman/Bouncers/GroupWise.py b/Mailman/Bouncers/GroupWise.py
new file mode 100644
index 00000000..8bde4405
--- /dev/null
+++ b/Mailman/Bouncers/GroupWise.py
@@ -0,0 +1,70 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""This appears to be the format for Novell GroupWise and NTMail
+
+X-Mailer: Novell GroupWise Internet Agent 5.5.3.1
+X-Mailer: NTMail v4.30.0012
+X-Mailer: Internet Mail Service (5.5.2653.19)
+"""
+
+import re
+from email.Message import Message
+from cStringIO import StringIO
+
+acre = re.compile(r'<(?P<addr>[^>]*)>')
+
+
+
+def find_textplain(msg):
+ if msg.get_type(msg.get_default_type()) == 'text/plain':
+ return msg
+ if msg.is_multipart:
+ for part in msg.get_payload():
+ if not isinstance(part, Message):
+ continue
+ ret = find_textplain(part)
+ if ret:
+ return ret
+ return None
+
+
+
+def process(msg):
+ if msg.get_type() <> 'multipart/mixed' or not msg['x-mailer']:
+ return None
+ addrs = {}
+ # find the first text/plain part in the message
+ textplain = find_textplain(msg)
+ if not textplain:
+ return None
+ body = StringIO(textplain.get_payload())
+ while 1:
+ line = body.readline()
+ if not line:
+ break
+ mo = acre.search(line)
+ if mo:
+ addrs[mo.group('addr')] = 1
+ elif '@' in line:
+ i = line.find(' ')
+ if i == 0:
+ continue
+ if i < 0:
+ addrs[line] = 1
+ else:
+ addrs[line[:i]] = 1
+ return addrs.keys()
diff --git a/Mailman/Bouncers/LLNL.py b/Mailman/Bouncers/LLNL.py
new file mode 100644
index 00000000..faadb0b9
--- /dev/null
+++ b/Mailman/Bouncers/LLNL.py
@@ -0,0 +1,31 @@
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""LLNL's custom Sendmail bounce message."""
+
+import re
+import email
+
+acre = re.compile(r',\s*(?P<addr>\S+@[^,]+),', re.IGNORECASE)
+
+
+
+def process(msg):
+ for line in email.Iterators.body_line_iterator(msg):
+ mo = acre.search(line)
+ if mo:
+ return [mo.group('addr')]
+ return []
diff --git a/Mailman/Bouncers/Makefile.in b/Mailman/Bouncers/Makefile.in
new file mode 100644
index 00000000..d4c9dfca
--- /dev/null
+++ b/Mailman/Bouncers/Makefile.in
@@ -0,0 +1,74 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# NOTE: Makefile.in is converted into Makefile by the configure script
+# in the parent directory. Once configure has run, you can recreate
+# the Makefile by running just config.status.
+
+# Variables set by configure
+
+VPATH= @srcdir@
+srcdir= @srcdir@
+bindir= @bindir@
+prefix= @prefix@
+exec_prefix= @exec_prefix@
+
+CC= @CC@
+CHMOD= @CHMOD@
+INSTALL= @INSTALL@
+
+DEFS= @DEFS@
+
+# Customizable but not set by configure
+
+OPT= @OPT@
+CFLAGS= $(OPT) $(DEFS)
+PACKAGEDIR= $(prefix)/Mailman/Bouncers
+SHELL= /bin/sh
+
+MODULES= *.py
+
+# Modes for directories and executables created by the install
+# process. Default to group-writable directories but
+# user-only-writable for executables.
+DIRMODE= 775
+EXEMODE= 755
+FILEMODE= 644
+INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
+
+
+# Rules
+
+all:
+
+install:
+ for f in $(MODULES); \
+ do \
+ $(INSTALL) -m $(FILEMODE) $(srcdir)/$$f $(PACKAGEDIR); \
+ done
+
+finish:
+
+clean:
+
+distclean:
+ -rm *.pyc
+ -rm Makefile
+
+
+# Local Variables:
+# indent-tabs-mode: t
+# End:
diff --git a/Mailman/Bouncers/Microsoft.py b/Mailman/Bouncers/Microsoft.py
new file mode 100644
index 00000000..65d49cc1
--- /dev/null
+++ b/Mailman/Bouncers/Microsoft.py
@@ -0,0 +1,48 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Microsoft's `SMTPSVC' nears I kin tell."""
+
+import re
+from cStringIO import StringIO
+
+scre = re.compile(r'transcript of session follows', re.IGNORECASE)
+
+
+
+def process(msg):
+ if msg.get_type() <> 'multipart/mixed':
+ return None
+ # Find the first subpart, which has no MIME type
+ try:
+ subpart = msg.get_payload(0)
+ except IndexError:
+ # The message *looked* like a multipart but wasn't
+ return None
+ body = StringIO(subpart.get_payload())
+ state = 0
+ addrs = []
+ while 1:
+ line = body.readline()
+ if not line:
+ break
+ if state == 0:
+ if scre.search(line):
+ state = 1
+ if state == 1:
+ if '@' in line:
+ addrs.append(line)
+ return addrs
diff --git a/Mailman/Bouncers/Netscape.py b/Mailman/Bouncers/Netscape.py
new file mode 100644
index 00000000..21aea7c5
--- /dev/null
+++ b/Mailman/Bouncers/Netscape.py
@@ -0,0 +1,88 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Netscape Messaging Server bounce formats.
+
+I've seen at least one NMS server version 3.6 (envy.gmp.usyd.edu.au) bounce
+messages of this format. Bounces come in DSN MIME format, but don't include
+any -Recipient: headers. Gotta just parse the text :(
+
+NMS 4.1 (dfw-smtpin1.email.verio.net) seems even worse, but we'll try to
+decipher the format here too.
+
+"""
+
+import re
+from cStringIO import StringIO
+
+pcre = re.compile(
+ r'This Message was undeliverable due to the following reason:',
+ re.IGNORECASE)
+
+acre = re.compile(
+ r'(?P<reply>please reply to)?.*<(?P<addr>[^>]*)>',
+ re.IGNORECASE)
+
+
+
+def flatten(msg, leaves):
+ # give us all the leaf (non-multipart) subparts
+ if msg.is_multipart():
+ for part in msg.get_payload():
+ flatten(part, leaves)
+ else:
+ leaves.append(msg)
+
+
+
+def process(msg):
+ # Sigh. Some show NMS 3.6's show
+ # multipart/report; report-type=delivery-status
+ # and some show
+ # multipart/mixed;
+ if not msg.is_multipart():
+ return None
+ # We're looking for a text/plain subpart occuring before a
+ # message/delivery-status subpart.
+ plainmsg = None
+ leaves = []
+ flatten(msg, leaves)
+ for i, subpart in zip(range(len(leaves)-1), leaves):
+ if subpart.get_type() == 'text/plain':
+ plainmsg = subpart
+ break
+ if not plainmsg:
+ return None
+ # Total guesswork, based on captured examples...
+ body = StringIO(plainmsg.get_payload())
+ addrs = []
+ while 1:
+ line = body.readline()
+ if not line:
+ break
+ mo = pcre.search(line)
+ if mo:
+ # We found a bounce section, but I have no idea what the official
+ # format inside here is. :( We'll just search for <addr>
+ # strings.
+ while 1:
+ line = body.readline()
+ if not line:
+ break
+ mo = acre.search(line)
+ if mo and not mo.group('reply'):
+ addrs.append(mo.group('addr'))
+ return addrs
diff --git a/Mailman/Bouncers/Postfix.py b/Mailman/Bouncers/Postfix.py
new file mode 100644
index 00000000..fb1a1233
--- /dev/null
+++ b/Mailman/Bouncers/Postfix.py
@@ -0,0 +1,86 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Parse bounce messages generated by Postfix.
+
+This also matches something called `Keftamail' which looks just like Postfix
+bounces with the word Postfix scratched out and the word `Keftamail' written
+in in crayon.
+
+It also matches something claiming to be `The BNS Postfix program'.
+/Everybody's/ gotta be different, huh?
+
+"""
+
+
+import re
+from cStringIO import StringIO
+
+
+
+def flatten(msg, leaves):
+ # give us all the leaf (non-multipart) subparts
+ if msg.is_multipart():
+ for part in msg.get_payload():
+ flatten(part, leaves)
+ else:
+ leaves.append(msg)
+
+
+
+# are these heuristics correct or guaranteed?
+pcre = re.compile(r'[ \t]*the\s*(bns)?\s*(postfix|keftamail)', re.IGNORECASE)
+rcre = re.compile(r'failure reason:$', re.IGNORECASE)
+acre = re.compile(r'<(?P<addr>[^>]*)>:')
+
+def findaddr(msg):
+ addrs = []
+ body = StringIO(msg.get_payload())
+ # simple state machine
+ # 0 == nothing found
+ # 1 == salutation found
+ state = 0
+ while 1:
+ line = body.readline()
+ if not line:
+ break
+ # preserve leading whitespace
+ line = line.rstrip()
+ # yes use match to match at beginning of string
+ if state == 0 and (pcre.match(line) or rcre.match(line)):
+ state = 1
+ elif state == 1 and line:
+ mo = acre.search(line)
+ if mo:
+ addrs.append(mo.group('addr'))
+ # probably a continuation line
+ return addrs
+
+
+
+def process(msg):
+ if msg.get_type() <> 'multipart/mixed':
+ return None
+ # We're looking for the plain/text subpart with a Content-Description: of
+ # `notification'.
+ leaves = []
+ flatten(msg, leaves)
+ for subpart in leaves:
+ if subpart.get_type() == 'text/plain' and \
+ subpart.get('content-description', '').lower() == 'notification':
+ # then...
+ return findaddr(subpart)
+ return None
diff --git a/Mailman/Bouncers/Qmail.py b/Mailman/Bouncers/Qmail.py
new file mode 100644
index 00000000..d6a3e3c3
--- /dev/null
+++ b/Mailman/Bouncers/Qmail.py
@@ -0,0 +1,61 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Parse bounce messages generated by qmail.
+
+Qmail actually has a standard, called QSBMF (qmail-send bounce message
+format), as described in
+
+ http://cr.yp.to/proto/qsbmf.txt
+
+This module should be conformant.
+
+"""
+
+import re
+import email.Iterators
+
+introtag = 'Hi. This is the'
+acre = re.compile(r'<(?P<addr>[^>]*)>:')
+
+
+
+def process(msg):
+ addrs = []
+ # simple state machine
+ # 0 = nothing seen yet
+ # 1 = intro paragraph seen
+ # 2 = recip paragraphs seen
+ state = 0
+ for line in email.Iterators.body_line_iterator(msg):
+ line = line.strip()
+ if state == 0 and line.startswith(introtag):
+ state = 1
+ elif state == 1 and not line:
+ # Looking for the end of the intro paragraph
+ state = 2
+ elif state == 2:
+ if line.startswith('-'):
+ # We're looking at the break paragraph, so we're done
+ break
+ # At this point we know we must be looking at a recipient
+ # paragraph
+ mo = acre.match(line)
+ if mo:
+ addrs.append(mo.group('addr'))
+ # Otherwise, it must be a continuation line, so just ignore it
+ # Not looking at anything in particular
+ return addrs
diff --git a/Mailman/Bouncers/SMTP32.py b/Mailman/Bouncers/SMTP32.py
new file mode 100644
index 00000000..62982461
--- /dev/null
+++ b/Mailman/Bouncers/SMTP32.py
@@ -0,0 +1,57 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Something which claims
+X-Mailer: <SMTP32 vXXXXXX>
+
+What the heck is this thing? Here's a recent host:
+
+% telnet 207.51.255.218 smtp
+Trying 207.51.255.218...
+Connected to 207.51.255.218.
+Escape character is '^]'.
+220 X1 NT-ESMTP Server 208.24.118.205 (IMail 6.00 45595-15)
+
+"""
+
+import re
+import email
+
+ecre = re.compile('original message follows', re.IGNORECASE)
+acre = re.compile(r'''
+ ( # several different prefixes
+ user\ mailbox[^:]*: # have been spotted in the
+ |delivery\ failed[^:]*: # wild...
+ |undeliverable\ to
+ )
+ \s* # space separator
+ (?P<addr>.*) # and finally, the address
+ ''', re.IGNORECASE | re.VERBOSE)
+
+
+
+def process(msg):
+ mailer = msg.get('x-mailer', '')
+ if not mailer.startswith('<SMTP32 v'):
+ return
+ addrs = {}
+ for line in email.Iterators.body_line_iterator(msg):
+ if ecre.search(line):
+ break
+ mo = acre.search(line)
+ if mo:
+ addrs[mo.group('addr')] = 1
+ return addrs.keys()
diff --git a/Mailman/Bouncers/SimpleMatch.py b/Mailman/Bouncers/SimpleMatch.py
new file mode 100644
index 00000000..ccc8d6ed
--- /dev/null
+++ b/Mailman/Bouncers/SimpleMatch.py
@@ -0,0 +1,100 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Recognizes simple heuristically delimited bounces."""
+
+import re
+import email.Iterators
+
+
+
+def _c(pattern):
+ return re.compile(pattern, re.IGNORECASE)
+
+# This is a list of tuples of the form
+#
+# (start cre, end cre, address cre)
+#
+# where `cre' means compiled regular expression, start is the line just before
+# the bouncing address block, end is the line just after the bouncing address
+# block, and address cre is the regexp that will recognize the addresses. It
+# must have a group called `addr' which will contain exactly and only the
+# address that bounced.
+PATTERNS = [
+ # sdm.de
+ (_c('here is your list of failed recipients'),
+ _c('here is your returned mail'),
+ _c(r'<(?P<addr>[^>]*)>')),
+ # sz-sb.de, corridor.com, nfg.nl
+ (_c('the following addresses had'),
+ _c('transcript of session follows'),
+ _c(r'<(?P<fulladdr>[^>]*)>|\(expanded from: <?(?P<addr>[^>)]*)>?\)')),
+ # robanal.demon.co.uk
+ (_c('this message was created automatically by mail delivery software'),
+ _c('original message follows'),
+ _c('rcpt to:\s*<(?P<addr>[^>]*)>')),
+ # s1.com (InterScan E-Mail VirusWall NT ???)
+ (_c('message from interscan e-mail viruswall nt'),
+ _c('end of message'),
+ _c('rcpt to:\s*<(?P<addr>[^>]*)>')),
+ # Smail
+ (_c('failed addresses follow:'),
+ _c('message text follows:'),
+ _c(r'\s*(?P<addr>\S+@\S+)')),
+ # newmail.ru
+ (_c('This is the machine generated message from mail service.'),
+ _c('--- Below the next line is a copy of the message.'),
+ _c('<(?P<addr>[^>]*)>')),
+ # turbosport.com runs something called `MDaemon 3.5.2' ???
+ (_c('The following addresses did NOT receive a copy of your message:'),
+ _c('--- Session Transcript ---'),
+ _c('[>]\s*(?P<addr>.*)$')),
+ # usa.net
+ (_c('Intended recipient:\s*(?P<addr>.*)$'),
+ _c('--------RETURNED MAIL FOLLOWS--------'),
+ _c('Intended recipient:\s*(?P<addr>.*)$')),
+ # hotpop.com
+ (_c('Undeliverable Address:\s*(?P<addr>.*)$'),
+ _c('Original message attached'),
+ _c('Undeliverable Address:\s*(?P<addr>.*)$')),
+ # Next one goes here...
+ ]
+
+
+
+def process(msg, patterns=None):
+ if patterns is None:
+ patterns = PATTERNS
+ # simple state machine
+ # 0 = nothing seen yet
+ # 1 = intro seen
+ addrs = {}
+ state = 0
+ for line in email.Iterators.body_line_iterator(msg):
+ if state == 0:
+ for scre, ecre, acre in patterns:
+ if scre.search(line):
+ state = 1
+ break
+ if state == 1:
+ mo = acre.search(line)
+ if mo:
+ addr = mo.group('addr')
+ if addr:
+ addrs[mo.group('addr')] = 1
+ elif ecre.search(line):
+ break
+ return addrs.keys()
diff --git a/Mailman/Bouncers/SimpleWarning.py b/Mailman/Bouncers/SimpleWarning.py
new file mode 100644
index 00000000..bc515515
--- /dev/null
+++ b/Mailman/Bouncers/SimpleWarning.py
@@ -0,0 +1,44 @@
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Recognizes simple heuristically delimited warnings."""
+
+from Mailman.Bouncers.SimpleMatch import _c
+from Mailman.Bouncers.SimpleMatch import process as _process
+
+
+
+# This is a list of tuples of the form
+#
+# (start cre, end cre, address cre)
+#
+# where `cre' means compiled regular expression, start is the line just before
+# the bouncing address block, end is the line just after the bouncing address
+# block, and address cre is the regexp that will recognize the addresses. It
+# must have a group called `addr' which will contain exactly and only the
+# address that bounced.
+patterns = [
+ # pop3.pta.lia.net
+ (_c('The address to which the message has not yet been delivered is'),
+ _c('No action is required on your part'),
+ _c(r'\s*(?P<addr>\S+@\S+)\s*')),
+ # Next one goes here...
+ ]
+
+
+
+def process(msg):
+ return _process(msg, patterns)
diff --git a/Mailman/Bouncers/Sina.py b/Mailman/Bouncers/Sina.py
new file mode 100644
index 00000000..2cc2e69b
--- /dev/null
+++ b/Mailman/Bouncers/Sina.py
@@ -0,0 +1,47 @@
+# Copyright (C) 2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""sina.com bounces"""
+
+import re
+from email import Iterators
+
+acre = re.compile(r'<(?P<addr>[^>]*)>')
+
+
+
+def process(msg):
+ if msg.get('from', '').lower() <> 'mailer-daemon@sina.com':
+ print 'out 1'
+ return []
+ if not msg.is_multipart():
+ print 'out 2'
+ return []
+ # The interesting bits are in the first text/plain multipart
+ part = None
+ try:
+ part = msg.get_payload(0)
+ except IndexError:
+ pass
+ if not part:
+ print 'out 3'
+ return []
+ addrs = {}
+ for line in Iterators.body_line_iterator(part):
+ mo = acre.match(line)
+ if mo:
+ addrs[mo.group('addr')] = 1
+ return addrs.keys()
diff --git a/Mailman/Bouncers/Yahoo.py b/Mailman/Bouncers/Yahoo.py
new file mode 100644
index 00000000..fd952915
--- /dev/null
+++ b/Mailman/Bouncers/Yahoo.py
@@ -0,0 +1,53 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Yahoo! has its own weird format for bounces."""
+
+import re
+import email
+from email.Utils import parseaddr
+
+tcre = re.compile(r'message\s+from\s+yahoo\.\S+', re.IGNORECASE)
+acre = re.compile(r'<(?P<addr>[^>]*)>:')
+ecre = re.compile(r'--- Original message follows')
+
+
+
+def process(msg):
+ # Yahoo! bounces seem to have a known subject value and something called
+ # an x-uidl: header, the value of which seems unimportant.
+ sender = parseaddr(msg.get('from', '').lower())[1] or ''
+ if not sender.startswith('mailer-daemon@yahoo'):
+ return None
+ addrs = []
+ # simple state machine
+ # 0 == nothing seen
+ # 1 == tag line seen
+ state = 0
+ for line in email.Iterators.body_line_iterator(msg):
+ line = line.strip()
+ if state == 0 and tcre.match(line):
+ state = 1
+ elif state == 1:
+ mo = acre.match(line)
+ if mo:
+ addrs.append(mo.group('addr'))
+ continue
+ mo = ecre.match(line)
+ if mo:
+ # we're at the end of the error response
+ break
+ return addrs
diff --git a/Mailman/Bouncers/Yale.py b/Mailman/Bouncers/Yale.py
new file mode 100644
index 00000000..6afc4d97
--- /dev/null
+++ b/Mailman/Bouncers/Yale.py
@@ -0,0 +1,79 @@
+# Copyright (C) 2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Yale's mail server is pretty dumb.
+
+Its reports include the end user's name, but not the full domain. I think we
+can usually guess it right anyway. This is completely based on examination of
+the corpse, and is subject to failure whenever Yale even slightly changes
+their MTA. :(
+
+"""
+
+import re
+from cStringIO import StringIO
+from email.Utils import getaddresses
+
+scre = re.compile(r'Message not delivered to the following', re.IGNORECASE)
+ecre = re.compile(r'Error Detail', re.IGNORECASE)
+acre = re.compile(r'\s+(?P<addr>\S+)\s+')
+
+
+
+def process(msg):
+ if msg.is_multipart():
+ return None
+ try:
+ whofrom = getaddresses([msg.get('from', '')])[0][1]
+ if not whofrom:
+ return None
+ username, domain = whofrom.split('@', 1)
+ except (IndexError, ValueError):
+ return None
+ if username.lower() <> 'mailer-daemon':
+ return None
+ parts = domain.split('.')
+ parts.reverse()
+ for part1, part2 in zip(parts, ('edu', 'yale')):
+ if part1 <> part2:
+ return None
+ # Okay, we've established that the bounce came from the mailer-daemon at
+ # yale.edu. Let's look for a name, and then guess the relevant domains.
+ names = {}
+ body = StringIO(msg.get_payload())
+ state = 0
+ # simple state machine
+ # 0 == init
+ # 1 == intro found
+ while 1:
+ line = body.readline()
+ if not line:
+ break
+ if state == 0 and scre.search(line):
+ state = 1
+ elif state == 1 and ecre.search(line):
+ break
+ elif state == 1:
+ mo = acre.search(line)
+ if mo:
+ names[mo.group('addr')] = 1
+ # Now we have a bunch of names, these are either @yale.edu or
+ # @cs.yale.edu. Add them both.
+ addrs = []
+ for name in names.keys():
+ addrs.append(name + '@yale.edu')
+ addrs.append(name + '@cs.yale.edu')
+ return addrs
diff --git a/Mailman/Bouncers/__init__.py b/Mailman/Bouncers/__init__.py
new file mode 100644
index 00000000..2cbbabb1
--- /dev/null
+++ b/Mailman/Bouncers/__init__.py
@@ -0,0 +1,15 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
diff --git a/Mailman/Cgi/.cvsignore b/Mailman/Cgi/.cvsignore
new file mode 100644
index 00000000..f3c7a7c5
--- /dev/null
+++ b/Mailman/Cgi/.cvsignore
@@ -0,0 +1 @@
+Makefile
diff --git a/Mailman/Cgi/Auth.py b/Mailman/Cgi/Auth.py
new file mode 100644
index 00000000..58640663
--- /dev/null
+++ b/Mailman/Cgi/Auth.py
@@ -0,0 +1,59 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Common routines for logging in and logging out of the list administrator
+and list moderator interface.
+"""
+
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman import Errors
+from Mailman.htmlformat import FontAttr
+from Mailman.i18n import _
+
+
+
+class NotLoggedInError(Exception):
+ """Exception raised when no matching admin cookie was found."""
+ def __init__(self, message):
+ Exception.__init__(self, message)
+ self.message = message
+
+
+
+def loginpage(mlist, scriptname, msg='', frontpage=None):
+ url = mlist.GetScriptURL(scriptname)
+ if frontpage:
+ actionurl = url
+ else:
+ actionurl = Utils.GetRequestURI(url)
+ if msg:
+ msg = FontAttr(msg, color='#ff0000', size='+1').Format()
+ if scriptname == 'admindb':
+ who = _('Moderator')
+ else:
+ who = _('Administrator')
+ # Language stuff
+ charset = Utils.GetCharSet(mlist.preferred_language)
+ print 'Content-type: text/html; charset=' + charset + '\n\n'
+ print Utils.maketext(
+ 'admlogin.html',
+ {'listname': mlist.real_name,
+ 'path' : actionurl,
+ 'message' : msg,
+ 'who' : who,
+ }, mlist=mlist)
+ print mlist.GetMailmanFooter()
diff --git a/Mailman/Cgi/Makefile.in b/Mailman/Cgi/Makefile.in
new file mode 100644
index 00000000..a613c2b0
--- /dev/null
+++ b/Mailman/Cgi/Makefile.in
@@ -0,0 +1,71 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# NOTE: Makefile.in is converted into Makefile by the configure script
+# in the parent directory. Once configure has run, you can recreate
+# the Makefile by running just config.status.
+
+# Variables set by configure
+
+VPATH= @srcdir@
+srcdir= @srcdir@
+bindir= @bindir@
+prefix= @prefix@
+exec_prefix= @exec_prefix@
+
+CC= @CC@
+CHMOD= @CHMOD@
+INSTALL= @INSTALL@
+
+DEFS= @DEFS@
+
+# Customizable but not set by configure
+
+OPT= @OPT@
+CFLAGS= $(OPT) $(DEFS)
+PACKAGEDIR= $(prefix)/Mailman
+CGIDIR= $(PACKAGEDIR)/Cgi
+SHELL= /bin/sh
+
+CGI_MODULES= *.py
+
+
+# Modes for directories and executables created by the install
+# process. Default to group-writable directories but
+# user-only-writable for executables.
+DIRMODE= 775
+EXEMODE= 755
+FILEMODE= 644
+INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
+
+
+# Rules
+
+all:
+
+install:
+ for f in $(CGI_MODULES); \
+ do \
+ $(INSTALL) -m $(FILEMODE) $(srcdir)/$$f $(CGIDIR); \
+ done
+
+finish:
+
+clean:
+
+distclean:
+ -rm *.pyc
+ -rm Makefile
diff --git a/Mailman/Cgi/__init__.py b/Mailman/Cgi/__init__.py
new file mode 100644
index 00000000..2cbbabb1
--- /dev/null
+++ b/Mailman/Cgi/__init__.py
@@ -0,0 +1,15 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
diff --git a/Mailman/Cgi/admin.py b/Mailman/Cgi/admin.py
new file mode 100644
index 00000000..49c6efbf
--- /dev/null
+++ b/Mailman/Cgi/admin.py
@@ -0,0 +1,1407 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Process and produce the list-administration options forms.
+
+"""
+
+# For Python 2.1.x compatibility
+from __future__ import nested_scopes
+
+import sys
+import os
+import re
+import cgi
+import sha
+import urllib
+import signal
+from types import *
+from string import lowercase, digits
+
+from email.Utils import unquote, parseaddr, formataddr
+
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman import MailList
+from Mailman import Errors
+from Mailman import MemberAdaptor
+from Mailman import i18n
+from Mailman.UserDesc import UserDesc
+from Mailman.htmlformat import *
+from Mailman.Cgi import Auth
+from Mailman.Logging.Syslog import syslog
+
+# Set up i18n
+_ = i18n._
+i18n.set_language(mm_cfg.DEFAULT_SERVER_LANGUAGE)
+
+NL = '\n'
+OPTCOLUMNS = 11
+
+
+
+def main():
+ # Try to find out which list is being administered
+ parts = Utils.GetPathPieces()
+ if not parts:
+ # None, so just do the admin overview and be done with it
+ admin_overview()
+ return
+ # Get the list object
+ listname = parts[0].lower()
+ try:
+ mlist = MailList.MailList(listname, lock=0)
+ except Errors.MMListError, e:
+ # Avoid cross-site scripting attacks
+ safelistname = Utils.websafe(listname)
+ admin_overview(_('No such list <em>%(safelistname)s</em>'))
+ syslog('error', 'admin.py access for non-existent list: %s',
+ listname)
+ return
+ # Now that we know what list has been requested, all subsequent admin
+ # pages are shown in that list's preferred language.
+ i18n.set_language(mlist.preferred_language)
+ # If the user is not authenticated, we're done.
+ cgidata = cgi.FieldStorage(keep_blank_values=1)
+
+ if not mlist.WebAuthenticate((mm_cfg.AuthListAdmin,
+ mm_cfg.AuthSiteAdmin),
+ cgidata.getvalue('adminpw', '')):
+ if cgidata.has_key('adminpw'):
+ # This is a re-authorization attempt
+ msg = Bold(FontSize('+1', _('Authorization failed.'))).Format()
+ else:
+ msg = ''
+ Auth.loginpage(mlist, 'admin', msg=msg)
+ return
+
+ # Which subcategory was requested? Default is `general'
+ if len(parts) == 1:
+ category = 'general'
+ subcat = None
+ elif len(parts) == 2:
+ category = parts[1]
+ subcat = None
+ else:
+ category = parts[1]
+ subcat = parts[2]
+
+ # Is this a log-out request?
+ if category == 'logout':
+ print mlist.ZapCookie(mm_cfg.AuthListAdmin)
+ Auth.loginpage(mlist, 'admin', frontpage=1)
+ return
+
+ # Sanity check
+ if category not in mlist.GetConfigCategories().keys():
+ category = 'general'
+
+ # Is the request for variable details?
+ varhelp = None
+ qsenviron = os.environ.get('QUERY_STRING')
+ parsedqs = None
+ if qsenviron:
+ parsedqs = cgi.parse_qs(qsenviron)
+ if cgidata.has_key('VARHELP'):
+ varhelp = cgidata.getvalue('VARHELP')
+ elif parsedqs:
+ # POST methods, even if their actions have a query string, don't get
+ # put into FieldStorage's keys :-(
+ qs = parsedqs.get('VARHELP')
+ if qs and isinstance(qs, ListType):
+ varhelp = qs[0]
+ if varhelp:
+ option_help(mlist, varhelp)
+ return
+
+ # The html page document
+ doc = Document()
+ doc.set_language(mlist.preferred_language)
+
+ # From this point on, the MailList object must be locked. However, we
+ # must release the lock no matter how we exit. try/finally isn't enough,
+ # because of this scenario: user hits the admin page which may take a long
+ # time to render; user gets bored and hits the browser's STOP button;
+ # browser shuts down socket; server tries to write to broken socket and
+ # gets a SIGPIPE. Under Apache 1.3/mod_cgi, Apache catches this SIGPIPE
+ # (I presume it is buffering output from the cgi script), then turns
+ # around and SIGTERMs the cgi process. Apache waits three seconds and
+ # then SIGKILLs the cgi process. We /must/ catch the SIGTERM and do the
+ # most reasonable thing we can in as short a time period as possible. If
+ # we get the SIGKILL we're screwed (because it's uncatchable and we'll
+ # have no opportunity to clean up after ourselves).
+ #
+ # This signal handler catches the SIGTERM, unlocks the list, and then
+ # exits the process. The effect of this is that the changes made to the
+ # MailList object will be aborted, which seems like the only sensible
+ # semantics.
+ #
+ # BAW: This may not be portable to other web servers or cgi execution
+ # models.
+ def sigterm_handler(signum, frame, mlist=mlist):
+ # Make sure the list gets unlocked...
+ mlist.Unlock()
+ # ...and ensure we exit, otherwise race conditions could cause us to
+ # enter MailList.Save() while we're in the unlocked state, and that
+ # could be bad!
+ sys.exit(0)
+
+ mlist.Lock()
+ try:
+ # Install the emergency shutdown signal handler
+ signal.signal(signal.SIGTERM, sigterm_handler)
+
+ if cgidata.keys():
+ # There are options to change
+ change_options(mlist, category, subcat, cgidata, doc)
+ # Let the list sanity check the changed values
+ mlist.CheckValues()
+ # Additional sanity checks
+ if not mlist.digestable and not mlist.nondigestable:
+ doc.addError(
+ _('''You have turned off delivery of both digest and
+ non-digest messages. This is an incompatible state of
+ affairs. You must turn on either digest delivery or
+ non-digest delivery or your mailing list will basically be
+ unusable.'''), tag=_('Warning: '))
+
+ if not mlist.digestable and mlist.getDigestMemberKeys():
+ doc.addError(
+ _('''You have digest members, but digests are turned
+ off. Those people will not receive mail.'''),
+ tag=_('Warning: '))
+ if not mlist.nondigestable and mlist.getRegularMemberKeys():
+ doc.addError(
+ _('''You have regular list members but non-digestified mail is
+ turned off. They will receive mail until you fix this
+ problem.'''), tag=_('Warning: '))
+ # Glom up the results page and print it out
+ show_results(mlist, doc, category, subcat, cgidata)
+ print doc.Format()
+ mlist.Save()
+ finally:
+ # Now be sure to unlock the list. It's okay if we get a signal here
+ # because essentially, the signal handler will do the same thing. And
+ # unlocking is unconditional, so it's not an error if we unlock while
+ # we're already unlocked.
+ mlist.Unlock()
+
+
+
+def admin_overview(msg=''):
+ # Show the administrative overview page, with the list of all the lists on
+ # this host. msg is an optional error message to display at the top of
+ # the page.
+ #
+ # This page should be displayed in the server's default language, which
+ # should have already been set.
+ hostname = Utils.get_domain()
+ legend = _('%(hostname)s mailing lists - Admin Links')
+ # The html `document'
+ doc = Document()
+ doc.set_language(mm_cfg.DEFAULT_SERVER_LANGUAGE)
+ doc.SetTitle(legend)
+ # The table that will hold everything
+ table = Table(border=0, width="100%")
+ table.AddRow([Center(Header(2, legend))])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0, colspan=2,
+ bgcolor=mm_cfg.WEB_HEADER_COLOR)
+ # Skip any mailing list that isn't advertised.
+ advertised = []
+ listnames = Utils.list_names()
+ listnames.sort()
+
+ for name in listnames:
+ mlist = MailList.MailList(name, lock=0)
+ if mlist.advertised:
+ if mm_cfg.VIRTUAL_HOST_OVERVIEW and \
+ mlist.web_page_url.find(hostname) == -1:
+ # List is for different identity of this host - skip it.
+ continue
+ else:
+ advertised.append(mlist)
+
+ # Greeting depends on whether there was an error or not
+ if msg:
+ greeting = FontAttr(msg, color="ff5060", size="+1")
+ else:
+ greeting = _("Welcome!")
+
+ welcome = []
+ mailmanlink = Link(mm_cfg.MAILMAN_URL, _('Mailman')).Format()
+ if not advertised:
+ welcome.extend([
+ greeting,
+ _('''<p>There currently are no publicly-advertised %(mailmanlink)s
+ mailing lists on %(hostname)s.'''),
+ ])
+ else:
+ welcome.extend([
+ greeting,
+ _('''<p>Below is the collection of publicly-advertised
+ %(mailmanlink)s mailing lists on %(hostname)s. Click on a list
+ name to visit the configuration pages for that list.'''),
+ ])
+
+ creatorurl = Utils.ScriptURL('create')
+ mailman_owner = Utils.get_site_email()
+ extra = msg and _('right ') or ''
+ welcome.extend([
+ _('''To visit the administrators configuration page for an
+ unadvertised list, open a URL similar to this one, but with a '/' and
+ the %(extra)slist name appended. If you have the proper authority,
+ you can also <a href="%(creatorurl)s">create a new mailing list</a>.
+
+ <p>General list information can be found at '''),
+ Link(Utils.ScriptURL('listinfo'),
+ _('the mailing list overview page')),
+ '.',
+ _('<p>(Send questions and comments to '),
+ Link('mailto:%s' % mailman_owner, mailman_owner),
+ '.)<p>',
+ ])
+
+ table.AddRow([Container(*welcome)])
+ table.AddCellInfo(max(table.GetCurrentRowIndex(), 0), 0, colspan=2)
+
+ if advertised:
+ table.AddRow(['&nbsp;', '&nbsp;'])
+ table.AddRow([Bold(FontAttr(_('List'), size='+2')),
+ Bold(FontAttr(_('Description'), size='+2'))
+ ])
+ highlight = 1
+ for mlist in advertised:
+ table.AddRow(
+ [Link(mlist.GetScriptURL('admin'), Bold(mlist.real_name)),
+ mlist.description or Italic(_('[no description available]'))])
+ if highlight and mm_cfg.WEB_HIGHLIGHT_COLOR:
+ table.AddRowInfo(table.GetCurrentRowIndex(),
+ bgcolor=mm_cfg.WEB_HIGHLIGHT_COLOR)
+ highlight = not highlight
+
+ doc.AddItem(table)
+ doc.AddItem('<hr>')
+ doc.AddItem(MailmanLogo())
+ print doc.Format()
+
+
+
+def option_help(mlist, varhelp):
+ # The html page document
+ doc = Document()
+ doc.set_language(mlist.preferred_language)
+ # Find out which category and variable help is being requested for.
+ item = None
+ reflist = varhelp.split('/')
+ if len(reflist) >= 2:
+ category = subcat = None
+ if len(reflist) == 2:
+ category, varname = reflist
+ elif len(reflist) == 3:
+ category, subcat, varname = reflist
+ options = mlist.GetConfigInfo(category, subcat)
+ for i in options:
+ if i and i[0] == varname:
+ item = i
+ break
+ # Print an error message if we couldn't find a valid one
+ if not item:
+ bad = _('No valid variable name found.')
+ doc.addError(bad)
+ doc.AddItem(mlist.GetMailmanFooter())
+ print doc.Format()
+ return
+ # Get the details about the variable
+ varname, kind, params, dependancies, description, elaboration = \
+ get_item_characteristics(item)
+ # Set up the document
+ realname = mlist.real_name
+ legend = _("""%(realname)s Mailing list Configuration Help
+ <br><em>%(varname)s</em> Option""")
+
+ header = Table(width='100%')
+ header.AddRow([Center(Header(3, legend))])
+ header.AddCellInfo(header.GetCurrentRowIndex(), 0, colspan=2,
+ bgcolor=mm_cfg.WEB_HEADER_COLOR)
+ doc.SetTitle(_("Mailman %(varname)s List Option Help"))
+ doc.AddItem(header)
+ doc.AddItem("<b>%s</b> (%s): %s<p>" % (varname, category, description))
+ if elaboration:
+ doc.AddItem("%s<p>" % elaboration)
+
+ if subcat:
+ url = '%s/%s/%s' % (mlist.GetScriptURL('admin'), category, subcat)
+ else:
+ url = '%s/%s' % (mlist.GetScriptURL('admin'), category)
+ form = Form(url)
+ valtab = Table(cellspacing=3, cellpadding=4, width='100%')
+ add_options_table_item(mlist, category, subcat, valtab, item, detailsp=0)
+ form.AddItem(valtab)
+ form.AddItem('<p>')
+ form.AddItem(Center(submit_button()))
+ doc.AddItem(Center(form))
+
+ doc.AddItem(_("""<em><strong>Warning:</strong> changing this option here
+ could cause other screens to be out-of-sync. Be sure to reload any other
+ pages that are displaying this option for this mailing list. You can also
+ """))
+
+ adminurl = mlist.GetScriptURL('admin')
+ if subcat:
+ url = '%s/%s/%s' % (adminurl, category, subcat)
+ else:
+ url = '%s/%s' % (adminurl, category)
+ categoryname = mlist.GetConfigCategories()[category][0]
+ doc.AddItem(Link(url, _('return to the %(categoryname)s options page.')))
+ doc.AddItem('</em>')
+ doc.AddItem(mlist.GetMailmanFooter())
+ print doc.Format()
+
+
+
+def show_results(mlist, doc, category, subcat, cgidata):
+ # Produce the results page
+ adminurl = mlist.GetScriptURL('admin')
+ categories = mlist.GetConfigCategories()
+ label = _(categories[category][0])
+
+ # Set up the document's headers
+ realname = mlist.real_name
+ doc.SetTitle(_('%(realname)s Administration (%(label)s)'))
+ doc.AddItem(Center(Header(2, _(
+ '%(realname)s mailing list administration<br>%(label)s Section'))))
+ doc.AddItem('<hr>')
+ # Now we need to craft the form that will be submitted, which will contain
+ # all the variable settings, etc. This is a bit of a kludge because we
+ # know that the autoreply and members categories supports file uploads.
+ encoding = None
+ if category in ('autoreply', 'members'):
+ encoding = 'multipart/form-data'
+ if subcat:
+ form = Form('%s/%s/%s' % (adminurl, category, subcat),
+ encoding=encoding)
+ else:
+ form = Form('%s/%s' % (adminurl, category), encoding=encoding)
+ # This holds the two columns of links
+ linktable = Table(valign='top', width='100%')
+ linktable.AddRow([Center(Bold(_("Configuration Categories"))),
+ Center(Bold(_("Other Administrative Activities")))])
+ # The `other links' are stuff in the right column.
+ otherlinks = UnorderedList()
+ otherlinks.AddItem(Link(mlist.GetScriptURL('admindb'),
+ _('Tend to pending moderator requests')))
+ otherlinks.AddItem(Link(mlist.GetScriptURL('listinfo'),
+ _('Go to the general list information page')))
+ otherlinks.AddItem(Link(mlist.GetScriptURL('edithtml'),
+ _('Edit the public HTML pages')))
+ otherlinks.AddItem(Link(mlist.GetBaseArchiveURL(),
+ _('Go to list archives')).Format() +
+ '<br>&nbsp;<br>')
+ # We do not allow through-the-web deletion of the site list!
+ if mm_cfg.OWNERS_CAN_DELETE_THEIR_OWN_LISTS and \
+ mlist.internal_name() <> mm_cfg.MAILMAN_SITE_LIST:
+ otherlinks.AddItem(Link(mlist.GetScriptURL('rmlist'),
+ _('Delete this mailing list')).Format() +
+ _(' (requires confirmation)<br>&nbsp;<br>'))
+ otherlinks.AddItem(Link('%s/logout' % adminurl,
+ # BAW: What I really want is a blank line, but
+ # adding an &nbsp; won't do it because of the
+ # bullet added to the list item.
+ '<FONT SIZE="+2"><b>%s</b></FONT>' %
+ _('Logout')))
+ # These are links to other categories and live in the left column
+ categorylinks_1 = categorylinks = UnorderedList()
+ categorylinks_2 = ''
+ categorykeys = categories.keys()
+ half = len(categorykeys) / 2
+ counter = 0
+ subcat = None
+ for k in categorykeys:
+ label = _(categories[k][0])
+ url = '%s/%s' % (adminurl, k)
+ if k == category:
+ # Handle subcategories
+ subcats = mlist.GetConfigSubCategories(k)
+ if subcats:
+ subcat = Utils.GetPathPieces()[-1]
+ for k, v in subcats:
+ if k == subcat:
+ break
+ else:
+ # The first subcategory in the list is the default
+ subcat = subcats[0][0]
+ subcat_items = []
+ for sub, text in subcats:
+ if sub == subcat:
+ text = Bold('[%s]' % text).Format()
+ subcat_items.append(Link(url + '/' + sub, text))
+ categorylinks.AddItem(
+ Bold(label).Format() +
+ UnorderedList(*subcat_items).Format())
+ else:
+ categorylinks.AddItem(Link(url, Bold('[%s]' % label)))
+ else:
+ categorylinks.AddItem(Link(url, label))
+ counter += 1
+ if counter >= half:
+ categorylinks_2 = categorylinks = UnorderedList()
+ counter = -len(categorykeys)
+ # Make the emergency stop switch a rude solo light
+ etable = Table()
+ # Add all the links to the links table...
+ etable.AddRow([categorylinks_1, categorylinks_2])
+ etable.AddRowInfo(etable.GetCurrentRowIndex(), valign='top')
+ if mlist.emergency:
+ label = _('Emergency moderation of all list traffic is enabled')
+ etable.AddRow([Center(
+ Link('?VARHELP=general/emergency', Bold(label)))])
+ color = mm_cfg.WEB_ERROR_COLOR
+ etable.AddCellInfo(etable.GetCurrentRowIndex(), 0,
+ colspan=2, bgcolor=color)
+ linktable.AddRow([etable, otherlinks])
+ # ...and add the links table to the document.
+ form.AddItem(linktable)
+ form.AddItem('<hr>')
+ form.AddItem(
+ _('''Make your changes in the following section, then submit them
+ using the <em>Submit Your Changes</em> button below.''')
+ + '<p>')
+
+ # The members and passwords categories are special in that they aren't
+ # defined in terms of gui elements. Create those pages here.
+ if category == 'members':
+ # Figure out which subcategory we should display
+ subcat = Utils.GetPathPieces()[-1]
+ if subcat not in ('list', 'add', 'remove'):
+ subcat = 'list'
+ # Add member category specific tables
+ form.AddItem(membership_options(mlist, subcat, cgidata, doc, form))
+ form.AddItem(Center(submit_button('setmemberopts_btn')))
+ # In "list" subcategory, we can also search for members
+ if subcat == 'list':
+ form.AddItem('<hr>\n')
+ table = Table(width='100%')
+ table.AddRow([Center(Header(2, _('Additional Member Tasks')))])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0, colspan=2,
+ bgcolor=mm_cfg.WEB_HEADER_COLOR)
+ # Add a blank separator row
+ table.AddRow(['&nbsp;', '&nbsp;'])
+ # Add a section to set the moderation bit for all members
+ table.AddRow([_("""<li>Set everyone's moderation bit, including
+ those members not currently visible""")])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0, colspan=2)
+ table.AddRow([RadioButtonArray('allmodbit_val',
+ (_('Off'), _('On')),
+ mlist.default_member_moderation),
+ SubmitButton('allmodbit_btn', _('Set'))])
+ form.AddItem(table)
+ elif category == 'passwords':
+ form.AddItem(Center(password_inputs(mlist)))
+ form.AddItem(Center(submit_button()))
+ else:
+ form.AddItem(show_variables(mlist, category, subcat, cgidata, doc))
+ form.AddItem(Center(submit_button()))
+ # And add the form
+ doc.AddItem(form)
+ doc.AddItem(mlist.GetMailmanFooter())
+
+
+
+def show_variables(mlist, category, subcat, cgidata, doc):
+ options = mlist.GetConfigInfo(category, subcat)
+
+ # The table containing the results
+ table = Table(cellspacing=3, cellpadding=4, width='100%')
+
+ # Get and portray the text label for the category.
+ categories = mlist.GetConfigCategories()
+ label = _(categories[category][0])
+
+ table.AddRow([Center(Header(2, label))])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0, colspan=2,
+ bgcolor=mm_cfg.WEB_HEADER_COLOR)
+
+ # The very first item in the config info will be treated as a general
+ # description if it is a string
+ description = options[0]
+ if isinstance(description, StringType):
+ table.AddRow([description])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0, colspan=2)
+ options = options[1:]
+
+ if not options:
+ return table
+
+ # Add the global column headers
+ table.AddRow([Center(Bold(_('Description'))),
+ Center(Bold(_('Value')))])
+ table.AddCellInfo(max(table.GetCurrentRowIndex(), 0), 0,
+ width='15%')
+ table.AddCellInfo(max(table.GetCurrentRowIndex(), 0), 1,
+ width='85%')
+
+ for item in options:
+ if type(item) == StringType:
+ # The very first banner option (string in an options list) is
+ # treated as a general description, while any others are
+ # treated as section headers - centered and italicized...
+ table.AddRow([Center(Italic(item))])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0, colspan=2)
+ else:
+ add_options_table_item(mlist, category, subcat, table, item)
+ table.AddRow(['<br>'])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0, colspan=2)
+ return table
+
+
+
+def add_options_table_item(mlist, category, subcat, table, item, detailsp=1):
+ # Add a row to an options table with the item description and value.
+ varname, kind, params, extra, descr, elaboration = \
+ get_item_characteristics(item)
+ if elaboration is None:
+ elaboration = descr
+ descr = get_item_gui_description(mlist, category, subcat,
+ varname, descr, elaboration, detailsp)
+ val = get_item_gui_value(mlist, category, kind, varname, params, extra)
+ table.AddRow([descr, val])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0,
+ bgcolor=mm_cfg.WEB_ADMINITEM_COLOR)
+ table.AddCellInfo(table.GetCurrentRowIndex(), 1,
+ bgcolor=mm_cfg.WEB_ADMINITEM_COLOR)
+
+
+
+def get_item_characteristics(record):
+ # Break out the components of an item description from its description
+ # record:
+ #
+ # 0 -- option-var name
+ # 1 -- type
+ # 2 -- entry size
+ # 3 -- ?dependancies?
+ # 4 -- Brief description
+ # 5 -- Optional description elaboration
+ if len(record) == 5:
+ elaboration = None
+ varname, kind, params, dependancies, descr = record
+ elif len(record) == 6:
+ varname, kind, params, dependancies, descr, elaboration = record
+ else:
+ raise ValueError, _('Badly formed options entry:\n %(record)s')
+ return varname, kind, params, dependancies, descr, elaboration
+
+
+
+def get_item_gui_value(mlist, category, kind, varname, params, extra):
+ """Return a representation of an item's settings."""
+ # Give the category a chance to return the value for the variable
+ value = None
+ label, gui = mlist.GetConfigCategories()[category]
+ if hasattr(gui, 'getValue'):
+ value = gui.getValue(mlist, kind, varname, params)
+ # Filter out None, and volatile attributes
+ if value is None and not varname.startswith('_'):
+ value = getattr(mlist, varname)
+ # Now create the widget for this value
+ if kind == mm_cfg.Radio or kind == mm_cfg.Toggle:
+ # If we are returning the option for subscribe policy and this site
+ # doesn't allow open subscribes, then we have to alter the value of
+ # mlist.subscribe_policy as passed to RadioButtonArray in order to
+ # compensate for the fact that there is one fewer option.
+ # Correspondingly, we alter the value back in the change options
+ # function -scott
+ #
+ # TBD: this is an ugly ugly hack.
+ if varname.startswith('_'):
+ checked = 0
+ else:
+ checked = value
+ if varname == 'subscribe_policy' and not mm_cfg.ALLOW_OPEN_SUBSCRIBE:
+ checked = checked - 1
+ # For Radio buttons, we're going to interpret the extra stuff as a
+ # horizontal/vertical flag. For backwards compatibility, the value 0
+ # means horizontal, so we use "not extra" to get the parity right.
+ return RadioButtonArray(varname, params, checked, not extra)
+ elif (kind == mm_cfg.String or kind == mm_cfg.Email or
+ kind == mm_cfg.Host or kind == mm_cfg.Number):
+ return TextBox(varname, value, params)
+ elif kind == mm_cfg.Text:
+ if params:
+ r, c = params
+ else:
+ r, c = None, None
+ return TextArea(varname, value or '', r, c)
+ elif kind in (mm_cfg.EmailList, mm_cfg.EmailListEx):
+ if params:
+ r, c = params
+ else:
+ r, c = None, None
+ res = NL.join(value)
+ return TextArea(varname, res, r, c, wrap='off')
+ elif kind == mm_cfg.FileUpload:
+ # like a text area, but also with uploading
+ if params:
+ r, c = params
+ else:
+ r, c = None, None
+ container = Container()
+ container.AddItem(_('<em>Enter the text below, or...</em><br>'))
+ container.AddItem(TextArea(varname, value or '', r, c))
+ container.AddItem(_('<br><em>...specify a file to upload</em><br>'))
+ container.AddItem(FileUpload(varname+'_upload', r, c))
+ return container
+ elif kind == mm_cfg.Select:
+ if params:
+ values, legend, selected = params
+ else:
+ values = mlist.GetAvailableLanguages()
+ legend = map(_, map(Utils.GetLanguageDescr, values))
+ selected = values.index(mlist.preferred_language)
+ return SelectOptions(varname, values, legend, selected)
+ elif kind == mm_cfg.Topics:
+ # A complex and specialized widget type that allows for setting of a
+ # topic name, a mark button, a regexp text box, an "add after mark",
+ # and a delete button. Yeesh! params are ignored.
+ table = Table(border=0)
+ # This adds the html for the entry widget
+ def makebox(i, name, pattern, desc, empty=0, table=table):
+ deltag = 'topic_delete_%02d' % i
+ boxtag = 'topic_box_%02d' % i
+ reboxtag = 'topic_rebox_%02d' % i
+ desctag = 'topic_desc_%02d' % i
+ wheretag = 'topic_where_%02d' % i
+ addtag = 'topic_add_%02d' % i
+ newtag = 'topic_new_%02d' % i
+ if empty:
+ table.AddRow([Center(Bold(_('Topic %(i)d'))),
+ Hidden(newtag)])
+ else:
+ table.AddRow([Center(Bold(_('Topic %(i)d'))),
+ SubmitButton(deltag, _('Delete'))])
+ table.AddRow([Label(_('Topic name:')),
+ TextBox(boxtag, value=name, size=30)])
+ table.AddRow([Label(_('Regexp:')),
+ TextArea(reboxtag, text=pattern,
+ rows=4, cols=30, wrap='off')])
+ table.AddRow([Label(_('Description:')),
+ TextArea(desctag, text=desc,
+ rows=4, cols=30, wrap='soft')])
+ if not empty:
+ table.AddRow([SubmitButton(addtag, _('Add new item...')),
+ SelectOptions(wheretag, ('before', 'after'),
+ (_('...before this one.'),
+ _('...after this one.')),
+ selected=1),
+ ])
+ table.AddRow(['<hr>'])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0, colspan=2)
+ # Now for each element in the existing data, create a widget
+ i = 1
+ data = getattr(mlist, varname)
+ for name, pattern, desc, empty in data:
+ makebox(i, name, pattern, desc, empty)
+ i += 1
+ # Add one more non-deleteable widget as the first blank entry, but
+ # only if there are no real entries.
+ if i == 1:
+ makebox(i, '', '', '', empty=1)
+ return table
+ elif kind == mm_cfg.Checkbox:
+ return CheckBoxArray(varname, *params)
+ else:
+ assert 0, 'Bad gui widget type: %s' % kind
+
+
+
+def get_item_gui_description(mlist, category, subcat,
+ varname, descr, elaboration, detailsp):
+ # Return the item's description, with link to details.
+ #
+ # Details are not included if this is a VARHELP page, because that /is/
+ # the details page!
+ if detailsp:
+ if subcat:
+ varhelp = '/?VARHELP=%s/%s/%s' % (category, subcat, varname)
+ else:
+ varhelp = '/?VARHELP=%s/%s' % (category, varname)
+ if descr == elaboration:
+ linktext = _('<br>(Edit <b>%(varname)s</b>)')
+ else:
+ linktext = _('<br>(Details for <b>%(varname)s</b>)')
+ link = Link(mlist.GetScriptURL('admin') + varhelp,
+ linktext).Format()
+ text = Label('%s %s' % (descr, link)).Format()
+ else:
+ text = Label(descr).Format()
+ if varname[0] == '_':
+ text += Label(_('''<br><em><strong>Note:</strong>
+ setting this value performs an immediate action but does not modify
+ permanent state.</em>''')).Format()
+ return text
+
+
+
+def membership_options(mlist, subcat, cgidata, doc, form):
+ # Show the main stuff
+ adminurl = mlist.GetScriptURL('admin', absolute=1)
+ container = Container()
+ header = Table(width="100%")
+ # If we're in the list subcategory, show the membership list
+ if subcat == 'add':
+ header.AddRow([Center(Header(2, _('Mass Subscriptions')))])
+ header.AddCellInfo(header.GetCurrentRowIndex(), 0, colspan=2,
+ bgcolor=mm_cfg.WEB_HEADER_COLOR)
+ container.AddItem(header)
+ mass_subscribe(mlist, container)
+ return container
+ if subcat == 'remove':
+ header.AddRow([Center(Header(2, _('Mass Removals')))])
+ header.AddCellInfo(header.GetCurrentRowIndex(), 0, colspan=2,
+ bgcolor=mm_cfg.WEB_HEADER_COLOR)
+ container.AddItem(header)
+ mass_remove(mlist, container)
+ return container
+ # Otherwise...
+ header.AddRow([Center(Header(2, _('Membership List')))])
+ header.AddCellInfo(header.GetCurrentRowIndex(), 0, colspan=2,
+ bgcolor=mm_cfg.WEB_HEADER_COLOR)
+ container.AddItem(header)
+ # Add a "search for member" button
+ table = Table(width='100%')
+ link = Link('http://www.python.org/doc/current/lib/re-syntax.html',
+ _('(help)')).Format()
+ table.AddRow([Label(_('Find member %(link)s:')),
+ TextBox('findmember',
+ value=cgidata.getvalue('findmember', '')),
+ SubmitButton('findmember_btn', _('Search...'))])
+ container.AddItem(table)
+ container.AddItem('<hr><p>')
+ usertable = Table(width="90%", border='2')
+ # If there are more members than allowed by chunksize, then we split the
+ # membership up alphabetically. Otherwise just display them all.
+ chunksz = mlist.admin_member_chunksize
+ all = mlist.getMembers()
+ all.sort(lambda x, y: cmp(x.lower(), y.lower()))
+ # See if the query has a regular expression
+ regexp = cgidata.getvalue('findmember', '').strip()
+ if regexp:
+ try:
+ cre = re.compile(regexp, re.IGNORECASE)
+ except re.error:
+ doc.addError(_('Bad regular expression: ') + regexp)
+ else:
+ # BAW: There's got to be a more efficient way of doing this!
+ names = [mlist.getMemberName(s) or '' for s in all]
+ all = [a for n, a in zip(names, all)
+ if cre.search(n) or cre.search(a)]
+ chunkindex = None
+ bucket = None
+ actionurl = None
+ if len(all) < chunksz:
+ members = all
+ else:
+ # Split them up alphabetically, and then split the alphabetical
+ # listing by chunks
+ buckets = {}
+ for addr in all:
+ members = buckets.setdefault(addr[0].lower(), [])
+ members.append(addr)
+ # Now figure out which bucket we want
+ bucket = None
+ qs = {}
+ # POST methods, even if their actions have a query string, don't get
+ # put into FieldStorage's keys :-(
+ qsenviron = os.environ.get('QUERY_STRING')
+ if qsenviron:
+ qs = cgi.parse_qs(qsenviron)
+ bucket = qs.get('letter', 'a')[0].lower()
+ if bucket not in digits + lowercase:
+ bucket = None
+ if not bucket or not buckets.has_key(bucket):
+ keys = buckets.keys()
+ keys.sort()
+ bucket = keys[0]
+ members = buckets[bucket]
+ action = adminurl + '/members?letter=%s' % bucket
+ if len(members) <= chunksz:
+ form.set_action(action)
+ else:
+ i, r = divmod(len(members), chunksz)
+ numchunks = i + (not not r * 1)
+ # Now chunk them up
+ chunkindex = 0
+ if qs.has_key('chunk'):
+ try:
+ chunkindex = int(qs['chunk'][0])
+ except ValueError:
+ chunkindex = 0
+ if chunkindex < 0 or chunkindex > numchunks:
+ chunkindex = 0
+ members = members[chunkindex*chunksz:(chunkindex+1)*chunksz]
+ # And set the action URL
+ form.set_action(action + '&chunk=%s' % chunkindex)
+ # So now members holds all the addresses we're going to display
+ allcnt = len(all)
+ if bucket:
+ membercnt = len(members)
+ usertable.AddRow([Center(Italic(_(
+ '%(allcnt)s members total, %(membercnt)s shown')))])
+ else:
+ usertable.AddRow([Center(Italic(_('%(allcnt)s members total')))])
+ usertable.AddCellInfo(usertable.GetCurrentRowIndex(),
+ usertable.GetCurrentCellIndex(),
+ colspan=OPTCOLUMNS,
+ bgcolor=mm_cfg.WEB_ADMINITEM_COLOR)
+ # Add the alphabetical links
+ if bucket:
+ cells = []
+ for letter in digits + lowercase:
+ if not buckets.get(letter):
+ continue
+ url = adminurl + '/members?letter=%s' % letter
+ if letter == bucket:
+ show = Bold('[%s]' % letter.upper()).Format()
+ else:
+ show = letter.upper()
+ cells.append(Link(url, show).Format())
+ joiner = '&nbsp;'*2 + '\n'
+ usertable.AddRow([Center(joiner.join(cells))])
+ usertable.AddCellInfo(usertable.GetCurrentRowIndex(),
+ usertable.GetCurrentCellIndex(),
+ colspan=OPTCOLUMNS,
+ bgcolor=mm_cfg.WEB_ADMINITEM_COLOR)
+ usertable.AddRow([Center(h) for h in (_('unsub'),
+ _('member address<br>member name'),
+ _('mod'), _('hide'),
+ _('nomail<br>[reason]'),
+ _('ack'), _('not metoo'),
+ _('nodupes'),
+ _('digest'), _('plain'),
+ _('language'))])
+ rowindex = usertable.GetCurrentRowIndex()
+ for i in range(OPTCOLUMNS):
+ usertable.AddCellInfo(rowindex, i, bgcolor=mm_cfg.WEB_ADMINITEM_COLOR)
+ # Find the longest name in the list
+ longest = 0
+ if members:
+ names = filter(None, [mlist.getMemberName(s) for s in members])
+ # Make the name field at least as long as the longest email address
+ longest = max([len(s) for s in names + members])
+ # Abbreviations for delivery status details
+ ds_abbrevs = {MemberAdaptor.UNKNOWN : _('?'),
+ MemberAdaptor.BYUSER : _('U'),
+ MemberAdaptor.BYADMIN : _('A'),
+ MemberAdaptor.BYBOUNCE: _('B'),
+ }
+ # Now populate the rows
+ for addr in members:
+ link = Link(mlist.GetOptionsURL(addr, obscure=1),
+ mlist.getMemberCPAddress(addr))
+ fullname = Utils.uncanonstr(mlist.getMemberName(addr),
+ mlist.preferred_language)
+ name = TextBox(addr + '_realname', fullname, size=longest).Format()
+ cells = [Center(CheckBox(addr + '_unsub', 'off', 0).Format()),
+ link.Format() + '<br>' +
+ name +
+ Hidden('user', urllib.quote(addr)).Format(),
+ ]
+ # Do the `mod' option
+ if mlist.getMemberOption(addr, mm_cfg.Moderate):
+ value = 'on'
+ checked = 1
+ else:
+ value = 'off'
+ checked = 0
+ box = CheckBox('%s_mod' % addr, value, checked)
+ cells.append(Center(box).Format())
+ for opt in ('hide', 'nomail', 'ack', 'notmetoo', 'nodupes'):
+ extra = ''
+ if opt == 'nomail':
+ status = mlist.getDeliveryStatus(addr)
+ if status == MemberAdaptor.ENABLED:
+ value = 'off'
+ checked = 0
+ else:
+ value = 'on'
+ checked = 1
+ extra = '[%s]' % ds_abbrevs[status]
+ elif mlist.getMemberOption(addr, mm_cfg.OPTINFO[opt]):
+ value = 'on'
+ checked = 1
+ else:
+ value = 'off'
+ checked = 0
+ box = CheckBox('%s_%s' % (addr, opt), value, checked)
+ cells.append(Center(box.Format() + extra))
+ # This code is less efficient than the original which did a has_key on
+ # the underlying dictionary attribute. This version is slower and
+ # less memory efficient. It points to a new MemberAdaptor interface
+ # method.
+ if addr in mlist.getRegularMemberKeys():
+ cells.append(Center(CheckBox(addr + '_digest', 'off', 0).Format()))
+ else:
+ cells.append(Center(CheckBox(addr + '_digest', 'on', 1).Format()))
+ if mlist.getMemberOption(addr, mm_cfg.OPTINFO['plain']):
+ value = 'on'
+ checked = 1
+ else:
+ value = 'off'
+ checked = 0
+ cells.append(Center(CheckBox('%s_plain' % addr, value, checked)))
+ # User's preferred language
+ langpref = mlist.getMemberLanguage(addr)
+ langs = mlist.GetAvailableLanguages()
+ langdescs = [_(Utils.GetLanguageDescr(lang)) for lang in langs]
+ try:
+ selected = langs.index(langpref)
+ except ValueError:
+ selected = 0
+ cells.append(Center(SelectOptions(addr + '_language', langs,
+ langdescs, selected)).Format())
+ usertable.AddRow(cells)
+ # Add the usertable and a legend
+ legend = UnorderedList()
+ legend.AddItem(
+ _('<b>unsub</b> -- Click on this to unsubscribe the member.'))
+ legend.AddItem(
+ _("""<b>mod</b> -- The user's personal moderation flag. If this is
+ set, postings from them will be moderated, otherwise they will be
+ approved."""))
+ legend.AddItem(
+ _("""<b>hide</b> -- Is the member's address concealed on
+ the list of subscribers?"""))
+ legend.AddItem(_(
+ """<b>nomail</b> -- Is delivery to the member disabled? If so, an
+ abbreviation will be given describing the reason for the disabled
+ delivery:
+ <ul><li><b>U</b> -- Delivery was disabled by the user via their
+ personal options page.
+ <li><b>A</b> -- Delivery was disabled by the list
+ administrators.
+ <li><b>B</b> -- Delivery was disabled by the system due to
+ excessive bouncing from the member's address.
+ <li><b>?</b> -- The reason for disabled delivery isn't known.
+ This is the case for all memberships which were disabled
+ in older versions of Mailman.
+ </ul>"""))
+ legend.AddItem(
+ _('''<b>ack</b> -- Does the member get acknowledgements of their
+ posts?'''))
+ legend.AddItem(
+ _('''<b>not metoo</b> -- Does the member want to avoid copies of their
+ own postings?'''))
+ legend.AddItem(
+ _('''<b>nodupes</b> -- Does the member want to avoid duplicates of the
+ same message?'''))
+ legend.AddItem(
+ _('''<b>digest</b> -- Does the member get messages in digests?
+ (otherwise, individual messages)'''))
+ legend.AddItem(
+ _('''<b>plain</b> -- If getting digests, does the member get plain
+ text digests? (otherwise, MIME)'''))
+ legend.AddItem(_("<b>language</b> -- Language preferred by the user"))
+ addlegend = ''
+ parsedqs = 0
+ qsenviron = os.environ.get('QUERY_STRING')
+ if qsenviron:
+ qs = cgi.parse_qs(qsenviron).get('legend')
+ if qs and isinstance(qs, ListType):
+ qs = qs[0]
+ if qs == 'yes':
+ addlegend = 'legend=yes&'
+ if addlegend:
+ container.AddItem(legend.Format() + '<p>')
+ container.AddItem(
+ Link(adminurl + '/members/list',
+ _('Click here to hide the legend for this table.')))
+ else:
+ container.AddItem(
+ Link(adminurl + '/members/list?legend=yes',
+ _('Click here to include the legend for this table.')))
+ container.AddItem(Center(usertable))
+
+ # There may be additional chunks
+ if chunkindex is not None:
+ buttons = []
+ url = adminurl + '/members?%sletter=%s&' % (addlegend, bucket)
+ footer = _('''<p><em>To view more members, click on the appropriate
+ range listed below:</em>''')
+ chunkmembers = buckets[bucket]
+ last = len(chunkmembers)
+ for i in range(numchunks):
+ if i == chunkindex:
+ continue
+ start = chunkmembers[i*chunksz]
+ end = chunkmembers[min((i+1)*chunksz, last)-1]
+ link = Link(url + 'chunk=%d' % i, _('from %(start)s to %(end)s'))
+ buttons.append(link)
+ buttons = UnorderedList(*buttons)
+ container.AddItem(footer + buttons.Format() + '<p>')
+ return container
+
+
+
+def mass_subscribe(mlist, container):
+ # MASS SUBSCRIBE
+ GREY = mm_cfg.WEB_ADMINITEM_COLOR
+ table = Table(width='90%')
+ table.AddRow([
+ Label(_('Subscribe these users now or invite them?')),
+ RadioButtonArray('subscribe_or_invite',
+ (_('Subscribe'), _('Invite')),
+ 0, values=(0, 1))
+ ])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0, bgcolor=GREY)
+ table.AddCellInfo(table.GetCurrentRowIndex(), 1, bgcolor=GREY)
+ table.AddRow([
+ Label(_('Send welcome messages to new subscribees?')),
+ RadioButtonArray('send_welcome_msg_to_this_batch',
+ (_('No'), _('Yes')),
+ mlist.send_welcome_msg,
+ values=(0, 1))
+ ])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0, bgcolor=GREY)
+ table.AddCellInfo(table.GetCurrentRowIndex(), 1, bgcolor=GREY)
+ table.AddRow([
+ Label(_('Send notifications of new subscriptions to the list owner?')),
+ RadioButtonArray('send_notifications_to_list_owner',
+ (_('No'), _('Yes')),
+ mlist.admin_notify_mchanges,
+ values=(0,1))
+ ])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0, bgcolor=GREY)
+ table.AddCellInfo(table.GetCurrentRowIndex(), 1, bgcolor=GREY)
+ table.AddRow([Italic(_('Enter one address per line below...'))])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0, colspan=2)
+ table.AddRow([Center(TextArea(name='subscribees',
+ rows=10, cols='70%', wrap=None))])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0, colspan=2)
+ table.AddRow([Italic(Label(_('...or specify a file to upload:'))),
+ FileUpload('subscribees_upload', cols='50')])
+ container.AddItem(Center(table))
+ # Invitation text
+ table.AddRow(['&nbsp;', '&nbsp;'])
+ table.AddRow([Italic(_("""Below, enter additional text to be added to the
+ top of your invitation or the subscription notification. Include at least
+ one blank line at the end..."""))])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0, colspan=2)
+ table.AddRow([Center(TextArea(name='invitation',
+ rows=10, cols='70%', wrap=None))])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0, colspan=2)
+
+
+
+def mass_remove(mlist, container):
+ # MASS UNSUBSCRIBE
+ GREY = mm_cfg.WEB_ADMINITEM_COLOR
+ table = Table(width='90%')
+ table.AddRow([
+ Label(_('Send unsubscription acknowledgement to the user?')),
+ RadioButtonArray('send_unsub_ack_to_this_batch',
+ (_('No'), _('Yes')),
+ 0, values=(0, 1))
+ ])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0, bgcolor=GREY)
+ table.AddCellInfo(table.GetCurrentRowIndex(), 1, bgcolor=GREY)
+ table.AddRow([
+ Label(_('Send notifications to the list owner?')),
+ RadioButtonArray('send_unsub_notifications_to_list_owner',
+ (_('No'), _('Yes')),
+ mlist.admin_notify_mchanges,
+ values=(0, 1))
+ ])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0, bgcolor=GREY)
+ table.AddCellInfo(table.GetCurrentRowIndex(), 1, bgcolor=GREY)
+ table.AddRow([Italic(_('Enter one address per line below...'))])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0, colspan=2)
+ table.AddRow([Center(TextArea(name='unsubscribees',
+ rows=10, cols='70%', wrap=None))])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0, colspan=2)
+ table.AddRow([Italic(Label(_('...or specify a file to upload:'))),
+ FileUpload('unsubscribees_upload', cols='50')])
+ container.AddItem(Center(table))
+
+
+
+def password_inputs(mlist):
+ adminurl = mlist.GetScriptURL('admin', absolute=1)
+ table = Table(cellspacing=3, cellpadding=4)
+ table.AddRow([Center(Header(2, _('Change list ownership passwords')))])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0, colspan=2,
+ bgcolor=mm_cfg.WEB_HEADER_COLOR)
+ table.AddRow([_("""\
+The <em>list administrators</em> are the people who have ultimate control over
+all parameters of this mailing list. They are able to change any list
+configuration variable available through these administration web pages.
+
+<p>The <em>list moderators</em> have more limited permissions; they are not
+able to change any list configuration variable, but they are allowed to tend
+to pending administration requests, including approving or rejecting held
+subscription requests, and disposing of held postings. Of course, the
+<em>list administrators</em> can also tend to pending requests.
+
+<p>In order to split the list ownership duties into administrators and
+moderators, you must set a separate moderator password in the fields below,
+and also provide the email addresses of the list moderators in the
+<a href="%(adminurl)s/general">general options section</a>.""")])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0, colspan=2)
+ # Set up the admin password table on the left
+ atable = Table(border=0, cellspacing=3, cellpadding=4,
+ bgcolor=mm_cfg.WEB_ADMINPW_COLOR)
+ atable.AddRow([Label(_('Enter new administrator password:')),
+ PasswordBox('newpw', size=20)])
+ atable.AddRow([Label(_('Confirm administrator password:')),
+ PasswordBox('confirmpw', size=20)])
+ # Set up the moderator password table on the right
+ mtable = Table(border=0, cellspacing=3, cellpadding=4,
+ bgcolor=mm_cfg.WEB_ADMINPW_COLOR)
+ mtable.AddRow([Label(_('Enter new moderator password:')),
+ PasswordBox('newmodpw', size=20)])
+ mtable.AddRow([Label(_('Confirm moderator password:')),
+ PasswordBox('confirmmodpw', size=20)])
+ # Add these tables to the overall password table
+ table.AddRow([atable, mtable])
+ return table
+
+
+
+def submit_button(name='submit'):
+ table = Table(border=0, cellspacing=0, cellpadding=2)
+ table.AddRow([Bold(SubmitButton(name, _('Submit Your Changes')))])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0, align='middle')
+ return table
+
+
+
+def change_options(mlist, category, subcat, cgidata, doc):
+ def safeint(formvar, defaultval=None):
+ try:
+ return int(cgidata.getvalue(formvar))
+ except (ValueError, TypeError):
+ return defaultval
+ confirmed = 0
+ # Handle changes to the list moderator password. Do this before checking
+ # the new admin password, since the latter will force a reauthentication.
+ new = cgidata.getvalue('newmodpw', '').strip()
+ confirm = cgidata.getvalue('confirmmodpw', '').strip()
+ if new or confirm:
+ if new == confirm:
+ mlist.mod_password = sha.new(new).hexdigest()
+ # No re-authentication necessary because the moderator's
+ # password doesn't get you into these pages.
+ else:
+ doc.addError(_('Moderator passwords did not match'))
+ # Handle changes to the list administrator password
+ new = cgidata.getvalue('newpw', '').strip()
+ confirm = cgidata.getvalue('confirmpw', '').strip()
+ if new or confirm:
+ if new == confirm:
+ mlist.password = sha.new(new).hexdigest()
+ # Set new cookie
+ print mlist.MakeCookie(mm_cfg.AuthListAdmin)
+ else:
+ doc.addError(_('Administrator passwords did not match'))
+ # Give the individual gui item a chance to process the form data
+ categories = mlist.GetConfigCategories()
+ label, gui = categories[category]
+ # BAW: We handle the membership page special... for now.
+ if category <> 'members':
+ gui.handleForm(mlist, category, subcat, cgidata, doc)
+ # mass subscription, removal processing for members category
+ subscribers = ''
+ subscribers += cgidata.getvalue('subscribees', '')
+ subscribers += cgidata.getvalue('subscribees_upload', '')
+ if subscribers:
+ entries = filter(None, [n.strip() for n in subscribers.splitlines()])
+ send_welcome_msg = safeint('send_welcome_msg_to_this_batch',
+ mlist.send_welcome_msg)
+ send_admin_notif = safeint('send_notifications_to_list_owner',
+ mlist.admin_notify_mchanges)
+ # Default is to subscribe
+ subscribe_or_invite = safeint('subscribe_or_invite', 0)
+ invitation = cgidata.getvalue('invitation', '')
+ digest = 0
+ if not mlist.digestable:
+ digest = 0
+ if not mlist.nondigestable:
+ digest = 1
+ subscribe_errors = []
+ subscribe_success = []
+ # Now cruise through all the subscribees and do the deed. BAW: we
+ # should limit the number of "Successfully subscribed" status messages
+ # we display. Try uploading a file with 10k names -- it takes a while
+ # to render the status page.
+ for entry in entries:
+ fullname, address = parseaddr(entry)
+ # Canonicalize the full name
+ fullname = Utils.canonstr(fullname, mlist.preferred_language)
+ userdesc = UserDesc(address, fullname,
+ Utils.MakeRandomPassword(),
+ digest, mlist.preferred_language)
+ try:
+ if subscribe_or_invite:
+ if mlist.isMember(address):
+ raise Errors.MMAlreadyAMember
+ else:
+ mlist.InviteNewMember(userdesc, invitation)
+ else:
+ mlist.ApprovedAddMember(userdesc, send_welcome_msg,
+ send_admin_notif, invitation)
+ except Errors.MMAlreadyAMember:
+ subscribe_errors.append((entry, _('Already a member')))
+ except Errors.MMBadEmailError:
+ if userdesc.address == '':
+ subscribe_errors.append((_('&lt;blank line&gt;'),
+ _('Bad/Invalid email address')))
+ else:
+ subscribe_errors.append((entry,
+ _('Bad/Invalid email address')))
+ except Errors.MMHostileAddress:
+ subscribe_errors.append(
+ (entry, _('Hostile address (illegal characters)')))
+ else:
+ member = Utils.uncanonstr(formataddr((fullname, address)))
+ subscribe_success.append(Utils.websafe(member))
+ if subscribe_success:
+ if subscribe_or_invite:
+ doc.AddItem(Header(5, _('Successfully invited:')))
+ else:
+ doc.AddItem(Header(5, _('Successfully subscribed:')))
+ doc.AddItem(UnorderedList(*subscribe_success))
+ doc.AddItem('<p>')
+ if subscribe_errors:
+ if subscribe_or_invite:
+ doc.AddItem(Header(5, _('Error inviting:')))
+ else:
+ doc.AddItem(Header(5, _('Error subscribing:')))
+ items = ['%s -- %s' % (x0, x1) for x0, x1 in subscribe_errors]
+ doc.AddItem(UnorderedList(*items))
+ doc.AddItem('<p>')
+ # Unsubscriptions
+ removals = ''
+ if cgidata.has_key('unsubscribees'):
+ removals += cgidata['unsubscribees'].value
+ if cgidata.has_key('unsubscribees_upload') and \
+ cgidata['unsubscribees_upload'].value:
+ removals += cgidata['unsubscribees_upload'].value
+ if removals:
+ names = filter(None, [n.strip() for n in removals.splitlines()])
+ send_unsub_notifications = int(
+ cgidata['send_unsub_notifications_to_list_owner'].value)
+ userack = int(
+ cgidata['send_unsub_ack_to_this_batch'].value)
+ unsubscribe_errors = []
+ unsubscribe_success = []
+ for addr in names:
+ try:
+ mlist.ApprovedDeleteMember(
+ addr, whence='admin mass unsub',
+ admin_notif=send_unsub_notifications,
+ userack=userack)
+ unsubscribe_success.append(addr)
+ except Errors.NotAMemberError:
+ unsubscribe_errors.append(addr)
+ if unsubscribe_success:
+ doc.AddItem(Header(5, _('Successfully Unsubscribed:')))
+ doc.AddItem(UnorderedList(*unsubscribe_success))
+ doc.AddItem('<p>')
+ if unsubscribe_errors:
+ doc.AddItem(Header(3, Bold(FontAttr(
+ _('Cannot unsubscribe non-members:'),
+ color='#ff0000', size='+2')).Format()))
+ doc.AddItem(UnorderedList(*unsubscribe_errors))
+ doc.AddItem('<p>')
+ # See if this was a moderation bit operation
+ if cgidata.has_key('allmodbit_btn'):
+ val = cgidata.getvalue('allmodbit_val')
+ try:
+ val = int(val)
+ except VallueError:
+ val = None
+ if val not in (0, 1):
+ doc.addError(_('Bad moderation flag value'))
+ else:
+ for member in mlist.getMembers():
+ mlist.setMemberOption(member, mm_cfg.Moderate, val)
+ # do the user options for members category
+ if cgidata.has_key('setmemberopts_btn') and cgidata.has_key('user'):
+ user = cgidata['user']
+ if type(user) is ListType:
+ users = []
+ for ui in range(len(user)):
+ users.append(urllib.unquote(user[ui].value))
+ else:
+ users = [urllib.unquote(user.value)]
+ errors = []
+ removes = []
+ for user in users:
+ if cgidata.has_key('%s_unsub' % user):
+ try:
+ mlist.ApprovedDeleteMember(user)
+ removes.append(user)
+ except Errors.NotAMemberError:
+ errors.append((user, _('Not subscribed')))
+ continue
+ if not mlist.isMember(user):
+ doc.addError(_('Ignoring changes to deleted member: %(user)s'),
+ tag=_('Warning: '))
+ continue
+ value = cgidata.has_key('%s_digest' % user)
+ try:
+ mlist.setMemberOption(user, mm_cfg.Digests, value)
+ except (Errors.AlreadyReceivingDigests,
+ Errors.AlreadyReceivingRegularDeliveries,
+ Errors.CantDigestError,
+ Errors.MustDigestError):
+ # BAW: Hmm...
+ pass
+
+ newname = cgidata.getvalue(user+'_realname', '')
+ newname = Utils.canonstr(newname, mlist.preferred_language)
+ mlist.setMemberName(user, newname)
+
+ newlang = cgidata.getvalue(user+'_language')
+ oldlang = mlist.getMemberLanguage(user)
+ if newlang and newlang <> oldlang:
+ mlist.setMemberLanguage(user, newlang)
+
+ moderate = not not cgidata.getvalue(user+'_mod')
+ mlist.setMemberOption(user, mm_cfg.Moderate, moderate)
+
+ # Set the `nomail' flag, but only if the user isn't already
+ # disabled (otherwise we might change BYUSER into BYADMIN).
+ if cgidata.has_key('%s_nomail' % user):
+ if mlist.getDeliveryStatus(user) == MemberAdaptor.ENABLED:
+ mlist.setDeliveryStatus(user, MemberAdaptor.BYADMIN)
+ else:
+ mlist.setDeliveryStatus(user, MemberAdaptor.ENABLED)
+ for opt in ('hide', 'ack', 'notmetoo', 'nodupes', 'plain'):
+ opt_code = mm_cfg.OPTINFO[opt]
+ if cgidata.has_key('%s_%s' % (user, opt)):
+ mlist.setMemberOption(user, opt_code, 1)
+ else:
+ mlist.setMemberOption(user, opt_code, 0)
+ # Give some feedback on who's been removed
+ if removes:
+ doc.AddItem(Header(5, _('Successfully Removed:')))
+ doc.AddItem(UnorderedList(*removes))
+ doc.AddItem('<p>')
+ if errors:
+ doc.AddItem(Header(5, _("Error Unsubscribing:")))
+ items = ['%s -- %s' % (x[0], x[1]) for x in errors]
+ doc.AddItem(apply(UnorderedList, tuple((items))))
+ doc.AddItem("<p>")
diff --git a/Mailman/Cgi/admindb.py b/Mailman/Cgi/admindb.py
new file mode 100644
index 00000000..e6b71cda
--- /dev/null
+++ b/Mailman/Cgi/admindb.py
@@ -0,0 +1,769 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Produce and process the pending-approval items for a list."""
+
+import sys
+import os
+import cgi
+import errno
+import signal
+import email
+import time
+from types import ListType
+from urllib import quote_plus, unquote_plus
+
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman import MailList
+from Mailman import Errors
+from Mailman import Message
+from Mailman import i18n
+from Mailman.Handlers.Moderate import ModeratedMemberPost
+from Mailman.ListAdmin import readMessage
+from Mailman.Cgi import Auth
+from Mailman.htmlformat import *
+from Mailman.Logging.Syslog import syslog
+
+EMPTYSTRING = ''
+NL = '\n'
+
+# Set up i18n. Until we know which list is being requested, we use the
+# server's default.
+_ = i18n._
+i18n.set_language(mm_cfg.DEFAULT_SERVER_LANGUAGE)
+
+EXCERPT_HEIGHT = 10
+EXCERPT_WIDTH = 76
+
+
+
+def helds_by_sender(mlist):
+ heldmsgs = mlist.GetHeldMessageIds()
+ bysender = {}
+ for id in heldmsgs:
+ sender = mlist.GetRecord(id)[1]
+ bysender.setdefault(sender, []).append(id)
+ return bysender
+
+
+def hacky_radio_buttons(btnname, labels, values, defaults, spacing=3):
+ # We can't use a RadioButtonArray here because horizontal placement can be
+ # confusing to the user and vertical placement takes up too much
+ # real-estate. This is a hack!
+ space = '&nbsp;' * spacing
+ btns = Table(cellspacing='5', cellpadding='0')
+ btns.AddRow([space + text + space for text in labels])
+ btns.AddRow([Center(RadioButton(btnname, value, default))
+ for value, default in zip(values, defaults)])
+ return btns
+
+
+
+def main():
+ # Figure out which list is being requested
+ parts = Utils.GetPathPieces()
+ if not parts:
+ handle_no_list()
+ return
+
+ listname = parts[0].lower()
+ try:
+ mlist = MailList.MailList(listname, lock=0)
+ except Errors.MMListError, e:
+ # Avoid cross-site scripting attacks
+ safelistname = Utils.websafe(listname)
+ handle_no_list(_('No such list <em>%(safelistname)s</em>'))
+ syslog('error', 'No such list "%s": %s\n', listname, e)
+ return
+
+ # Now that we know which list to use, set the system's language to it.
+ i18n.set_language(mlist.preferred_language)
+
+ # Make sure the user is authorized to see this page.
+ cgidata = cgi.FieldStorage(keep_blank_values=1)
+
+ if not mlist.WebAuthenticate((mm_cfg.AuthListAdmin,
+ mm_cfg.AuthListModerator,
+ mm_cfg.AuthSiteAdmin),
+ cgidata.getvalue('adminpw', '')):
+ if cgidata.has_key('adminpw'):
+ # This is a re-authorization attempt
+ msg = Bold(FontSize('+1', _('Authorization failed.'))).Format()
+ else:
+ msg = ''
+ Auth.loginpage(mlist, 'admindb', msg=msg)
+ return
+
+ # Set up the results document
+ doc = Document()
+ doc.set_language(mlist.preferred_language)
+
+ # See if we're requesting all the messages for a particular sender, or if
+ # we want a specific held message.
+ sender = None
+ msgid = None
+ details = None
+ envar = os.environ.get('QUERY_STRING')
+ if envar:
+ # POST methods, even if their actions have a query string, don't get
+ # put into FieldStorage's keys :-(
+ qs = cgi.parse_qs(envar).get('sender')
+ if qs and type(qs) == ListType:
+ sender = qs[0]
+ qs = cgi.parse_qs(envar).get('msgid')
+ if qs and type(qs) == ListType:
+ msgid = qs[0]
+ qs = cgi.parse_qs(envar).get('details')
+ if qs and type(qs) == ListType:
+ details = qs[0]
+
+ # We need a signal handler to catch the SIGTERM that can come from Apache
+ # when the user hits the browser's STOP button. See the comment in
+ # admin.py for details.
+ #
+ # BAW: Strictly speaking, the list should not need to be locked just to
+ # read the request database. However the request database asserts that
+ # the list is locked in order to load it and it's not worth complicating
+ # that logic.
+ def sigterm_handler(signum, frame, mlist=mlist):
+ # Make sure the list gets unlocked...
+ mlist.Unlock()
+ # ...and ensure we exit, otherwise race conditions could cause us to
+ # enter MailList.Save() while we're in the unlocked state, and that
+ # could be bad!
+ sys.exit(0)
+
+ mlist.Lock()
+ try:
+ # Install the emergency shutdown signal handler
+ signal.signal(signal.SIGTERM, sigterm_handler)
+
+ realname = mlist.real_name
+ if not cgidata.keys():
+ # If this is not a form submission (i.e. there are no keys in the
+ # form), then all we don't need to do much special.
+ doc.SetTitle(_('%(realname)s Administrative Database'))
+ elif not details:
+ # This is a form submission
+ doc.SetTitle(_('%(realname)s Administrative Database Results'))
+ process_form(mlist, doc, cgidata)
+ # Now print the results and we're done. Short circuit for when there
+ # are no pending requests, but be sure to save the results!
+ if not mlist.NumRequestsPending():
+ title = _('%(realname)s Administrative Database')
+ doc.SetTitle(title)
+ doc.AddItem(Header(2, title))
+ doc.AddItem(_('There are no pending requests.'))
+ doc.AddItem(' ')
+ doc.AddItem(Link(mlist.GetScriptURL('admindb', absolute=1),
+ _('Click here to reload this page.')))
+ doc.AddItem(mlist.GetMailmanFooter())
+ print doc.Format()
+ mlist.Save()
+ return
+
+ admindburl = mlist.GetScriptURL('admindb', absolute=1)
+ form = Form(admindburl)
+ # Add the instructions template
+ if details:
+ doc.AddItem(Header(
+ 2, _('Detailed instructions for the administrative database')))
+ else:
+ doc.AddItem(Header(
+ 2,
+ _('Administrative requests for mailing list:')
+ + ' <em>%s</em>' % mlist.real_name))
+ if not details:
+ form.AddItem(Center(SubmitButton('submit', _('Submit All Data'))))
+ # Add a link back to the overview, if we're not viewing the overview!
+ adminurl = mlist.GetScriptURL('admin', absolute=1)
+ d = {'listname' : mlist.real_name,
+ 'detailsurl': admindburl + '?details=instructions',
+ 'summaryurl': admindburl,
+ 'viewallurl': admindburl + '?details=all',
+ 'adminurl' : adminurl,
+ 'filterurl' : adminurl + '/privacy/sender',
+ }
+ addform = 1
+ if sender:
+ esender = Utils.websafe(sender)
+ d['description'] = _("all of %(esender)s's held messages.")
+ doc.AddItem(Utils.maketext('admindbpreamble.html', d,
+ raw=1, mlist=mlist))
+ show_sender_requests(mlist, form, sender)
+ elif msgid:
+ d['description'] = _('a single held message.')
+ doc.AddItem(Utils.maketext('admindbpreamble.html', d,
+ raw=1, mlist=mlist))
+ show_message_requests(mlist, form, msgid)
+ elif details == 'all':
+ d['description'] = _('all held messages.')
+ doc.AddItem(Utils.maketext('admindbpreamble.html', d,
+ raw=1, mlist=mlist))
+ show_detailed_requests(mlist, form)
+ elif details == 'instructions':
+ doc.AddItem(Utils.maketext('admindbdetails.html', d,
+ raw=1, mlist=mlist))
+ addform = 0
+ else:
+ # Show a summary of all requests
+ doc.AddItem(Utils.maketext('admindbsummary.html', d,
+ raw=1, mlist=mlist))
+ num = show_pending_subs(mlist, form)
+ num += show_pending_unsubs(mlist, form)
+ num += show_helds_overview(mlist, form)
+ addform = num > 0
+ # Finish up the document, adding buttons to the form
+ if addform:
+ doc.AddItem(form)
+ form.AddItem('<hr>')
+ form.AddItem(Center(SubmitButton('submit', _('Submit All Data'))))
+ doc.AddItem(mlist.GetMailmanFooter())
+ print doc.Format()
+ # Commit all changes
+ mlist.Save()
+ finally:
+ mlist.Unlock()
+
+
+
+def handle_no_list(msg=''):
+ # Print something useful if no list was given.
+ doc = Document()
+ doc.set_language(mm_cfg.DEFAULT_SERVER_LANGUAGE)
+
+ header = _('Mailman Administrative Database Error')
+ doc.SetTitle(header)
+ doc.AddItem(Header(2, header))
+ doc.AddItem(msg)
+ url = Utils.ScriptURL('admin', absolute=1)
+ link = Link(url, _('list of available mailing lists.')).Format()
+ doc.AddItem(_('You must specify a list name. Here is the %(link)s'))
+ doc.AddItem('<hr>')
+ doc.AddItem(MailmanLogo())
+ print doc.Format()
+
+
+
+def show_pending_subs(mlist, form):
+ # Add the subscription request section
+ pendingsubs = mlist.GetSubscriptionIds()
+ if not pendingsubs:
+ return 0
+ form.AddItem('<hr>')
+ form.AddItem(Center(Header(2, _('Subscription Requests'))))
+ table = Table(border=2)
+ table.AddRow([Center(Bold(_('Address/name'))),
+ Center(Bold(_('Your decision'))),
+ Center(Bold(_('Reason for refusal')))
+ ])
+ # Alphabetical order by email address
+ byaddrs = {}
+ for id in pendingsubs:
+ addr = mlist.GetRecord(id)[1]
+ byaddrs.setdefault(addr, []).append(id)
+ addrs = byaddrs.keys()
+ addrs.sort()
+ num = 0
+ for addr, ids in byaddrs.items():
+ # Eliminate duplicates
+ for id in ids[1:]:
+ mlist.HandleRequest(id, mm_cfg.DISCARD)
+ id = ids[0]
+ time, addr, fullname, passwd, digest, lang = mlist.GetRecord(id)
+ fullname = Utils.uncanonstr(fullname, mlist.preferred_language)
+ radio = RadioButtonArray(id, (_('Defer'),
+ _('Approve'),
+ _('Reject'),
+ _('Discard')),
+ values=(mm_cfg.DEFER,
+ mm_cfg.SUBSCRIBE,
+ mm_cfg.REJECT,
+ mm_cfg.DISCARD),
+ checked=0).Format()
+ if addr not in mlist.ban_list:
+ radio += '<br>' + CheckBox('ban-%d' % id, 1).Format() + \
+ '&nbsp;' + _('Permanently ban from this list')
+ table.AddRow(['%s<br><em>%s</em>' % (addr, fullname),
+ radio,
+ TextBox('comment-%d' % id, size=40)
+ ])
+ num += 1
+ if num > 0:
+ form.AddItem(table)
+ return num
+
+
+
+def show_pending_unsubs(mlist, form):
+ # Add the pending unsubscription request section
+ lang = mlist.preferred_language
+ pendingunsubs = mlist.GetUnsubscriptionIds()
+ if not pendingunsubs:
+ return 0
+ table = Table(border=2)
+ table.AddRow([Center(Bold(_('User address/name'))),
+ Center(Bold(_('Your decision'))),
+ Center(Bold(_('Reason for refusal')))
+ ])
+ # Alphabetical order by email address
+ byaddrs = {}
+ for id in pendingunsubs:
+ addr = mlist.GetRecord(id)[1]
+ byaddrs.setdefault(addr, []).append(id)
+ addrs = byaddrs.keys()
+ addrs.sort()
+ num = 0
+ for addr, ids in byaddrs.items():
+ # Eliminate duplicates
+ for id in ids[1:]:
+ mlist.HandleRequest(id, mm_cfg.DISCARD)
+ id = ids[0]
+ addr = mlist.GetRecord(id)
+ try:
+ fullname = Utils.uncanonstr(mlist.getMemberName(addr), lang)
+ except Errors.NotAMemberError:
+ # They must have been unsubscribed elsewhere, so we can just
+ # discard this record.
+ mlist.HandleRequest(id, mm_cfg.DISCARD)
+ continue
+ num += 1
+ table.AddRow(['%s<br><em>%s</em>' % (addr, fullname),
+ RadioButtonArray(id, (_('Defer'),
+ _('Approve'),
+ _('Reject'),
+ _('Discard')),
+ values=(mm_cfg.DEFER,
+ mm_cfg.UNSUBSCRIBE,
+ mm_cfg.REJECT,
+ mm_cfg.DISCARD),
+ checked=0),
+ TextBox('comment-%d' % id, size=45)
+ ])
+ if num > 0:
+ form.AddItem('<hr>')
+ form.AddItem(Center(Header(2, _('Unsubscription Requests'))))
+ form.AddItem(table)
+ return num
+
+
+
+def show_helds_overview(mlist, form):
+ # Sort the held messages by sender
+ bysender = helds_by_sender(mlist)
+ if not bysender:
+ return 0
+ # Add the by-sender overview tables
+ admindburl = mlist.GetScriptURL('admindb', absolute=1)
+ table = Table(border=0)
+ form.AddItem(table)
+ senders = bysender.keys()
+ senders.sort()
+ for sender in senders:
+ qsender = quote_plus(sender)
+ esender = Utils.websafe(sender)
+ senderurl = admindburl + '?sender=' + qsender
+ # The encompassing sender table
+ stable = Table(border=1)
+ stable.AddRow([Center(Bold(_('From:')).Format() + esender)])
+ stable.AddCellInfo(stable.GetCurrentRowIndex(), 0, colspan=2)
+ left = Table(border=0)
+ left.AddRow([_('Action to take on all these held messages:')])
+ left.AddCellInfo(left.GetCurrentRowIndex(), 0, colspan=2)
+ btns = hacky_radio_buttons(
+ 'senderaction-' + qsender,
+ (_('Defer'), _('Accept'), _('Reject'), _('Discard')),
+ (mm_cfg.DEFER, mm_cfg.APPROVE, mm_cfg.REJECT, mm_cfg.DISCARD),
+ (1, 0, 0, 0))
+ left.AddRow([btns])
+ left.AddCellInfo(left.GetCurrentRowIndex(), 0, colspan=2)
+ left.AddRow([
+ CheckBox('senderpreserve-' + qsender, 1).Format() +
+ '&nbsp;' +
+ _('Preserve messages for the site administrator')
+ ])
+ left.AddCellInfo(left.GetCurrentRowIndex(), 0, colspan=2)
+ left.AddRow([
+ CheckBox('senderforward-' + qsender, 1).Format() +
+ '&nbsp;' +
+ _('Forward messages (individually) to:')
+ ])
+ left.AddCellInfo(left.GetCurrentRowIndex(), 0, colspan=2)
+ left.AddRow([
+ TextBox('senderforwardto-' + qsender,
+ value=mlist.GetOwnerEmail())
+ ])
+ left.AddCellInfo(left.GetCurrentRowIndex(), 0, colspan=2)
+ # If the sender is a member and the message is being held due to a
+ # moderation bit, give the admin a chance to clear the member's mod
+ # bit. If this sender is not a member and is not already on one of
+ # the sender filters, then give the admin a chance to add this sender
+ # to one of the filters.
+ if mlist.isMember(sender):
+ if mlist.getMemberOption(sender, mm_cfg.Moderate):
+ left.AddRow([
+ CheckBox('senderclearmodp-' + qsender, 1).Format() +
+ '&nbsp;' +
+ _("Clear this member's <em>moderate</em> flag")
+ ])
+ else:
+ left.AddRow(
+ [_('<em>The sender is now a member of this list</em>')])
+ left.AddCellInfo(left.GetCurrentRowIndex(), 0, colspan=2)
+ elif sender not in (mlist.accept_these_nonmembers +
+ mlist.hold_these_nonmembers +
+ mlist.reject_these_nonmembers +
+ mlist.discard_these_nonmembers):
+ left.AddRow([
+ CheckBox('senderfilterp-' + qsender, 1).Format() +
+ '&nbsp;' +
+ _('Add <b>%(esender)s</b> to a sender filter')
+ ])
+ left.AddCellInfo(left.GetCurrentRowIndex(), 0, colspan=2)
+ btns = hacky_radio_buttons(
+ 'senderfilter-' + qsender,
+ (_('Accepts'), _('Holds'), _('Rejects'), _('Discards')),
+ (mm_cfg.ACCEPT, mm_cfg.HOLD, mm_cfg.REJECT, mm_cfg.DISCARD),
+ (0, 0, 0, 1))
+ left.AddRow([btns])
+ left.AddCellInfo(left.GetCurrentRowIndex(), 0, colspan=2)
+ if sender not in mlist.ban_list:
+ left.AddRow([
+ CheckBox('senderbanp-' + qsender, 1).Format() +
+ '&nbsp;' +
+ _("""Ban <b>%(esender)s</b> from ever subscribing to this
+ mailing list""")])
+ left.AddCellInfo(left.GetCurrentRowIndex(), 0, colspan=2)
+ right = Table(border=0)
+ right.AddRow([
+ _("""Click on the message number to view the individual
+ message, or you can """) +
+ Link(senderurl, _('view all messages from %(esender)s')).Format()
+ ])
+ right.AddCellInfo(right.GetCurrentRowIndex(), 0, colspan=2)
+ right.AddRow(['&nbsp;', '&nbsp;'])
+ counter = 1
+ for id in bysender[sender]:
+ info = mlist.GetRecord(id)
+ ptime, sender, subject, reason, filename, msgdata = info
+ # BAW: This is really the size of the message pickle, which should
+ # be close, but won't be exact. Sigh, good enough.
+ try:
+ size = os.path.getsize(os.path.join(mm_cfg.DATA_DIR, filename))
+ except OSError, e:
+ if e.errno <> errno.ENOENT: raise
+ # This message must have gotten lost, i.e. it's already been
+ # handled by the time we got here.
+ mlist.HandleRequest(id, mm_cfg.DISCARD)
+ continue
+ t = Table(border=0)
+ t.AddRow([Link(admindburl + '?msgid=%d' % id, '[%d]' % counter),
+ Bold(_('Subject:')),
+ Utils.websafe(subject)
+ ])
+ t.AddRow(['&nbsp;', Bold(_('Size:')), str(size) + _(' bytes')])
+ if reason:
+ reason = _(reason)
+ else:
+ reason = _('not available')
+ t.AddRow(['&nbsp;', Bold(_('Reason:')), reason])
+ # Include the date we received the message, if available
+ when = msgdata.get('received_time')
+ if when:
+ t.AddRow(['&nbsp;', Bold(_('Received:')),
+ time.ctime(when)])
+ counter += 1
+ right.AddRow([t])
+ stable.AddRow([left, right])
+ table.AddRow([stable])
+ return 1
+
+
+
+def show_sender_requests(mlist, form, sender):
+ bysender = helds_by_sender(mlist)
+ if not bysender:
+ return
+ sender_ids = bysender.get(sender)
+ if sender_ids is None:
+ # BAW: should we print an error message?
+ return
+ total = len(sender_ids)
+ count = 1
+ for id in sender_ids:
+ info = mlist.GetRecord(id)
+ show_post_requests(mlist, id, info, total, count, form)
+ count += 1
+
+
+
+def show_message_requests(mlist, form, id):
+ try:
+ id = int(id)
+ info = mlist.GetRecord(id)
+ except (ValueError, KeyError):
+ # BAW: print an error message?
+ return
+ show_post_requests(mlist, id, info, 1, 1, form)
+
+
+
+def show_detailed_requests(mlist, form):
+ all = mlist.GetHeldMessageIds()
+ total = len(all)
+ count = 1
+ for id in mlist.GetHeldMessageIds():
+ info = mlist.GetRecord(id)
+ show_post_requests(mlist, id, info, total, count, form)
+ count += 1
+
+
+
+def show_post_requests(mlist, id, info, total, count, form):
+ # For backwards compatibility with pre 2.0beta3
+ if len(info) == 5:
+ ptime, sender, subject, reason, filename = info
+ msgdata = {}
+ else:
+ ptime, sender, subject, reason, filename, msgdata = info
+ form.AddItem('<hr>')
+ # Header shown on each held posting (including count of total)
+ msg = _('Posting Held for Approval')
+ if total <> 1:
+ msg += _(' (%(count)d of %(total)d)')
+ form.AddItem(Center(Header(2, msg)))
+ # We need to get the headers and part of the textual body of the message
+ # being held. The best way to do this is to use the email Parser to get
+ # an actual object, which will be easier to deal with. We probably could
+ # just do raw reads on the file.
+ try:
+ msg = readMessage(os.path.join(mm_cfg.DATA_DIR, filename))
+ except IOError, e:
+ if e.errno <> errno.ENOENT:
+ raise
+ form.AddItem(_('<em>Message with id #%(id)d was lost.'))
+ form.AddItem('<p>')
+ # BAW: kludge to remove id from requests.db.
+ try:
+ mlist.HandleRequest(id, mm_cfg.DISCARD)
+ except Errors.LostHeldMessage:
+ pass
+ return
+ except email.Errors.MessageParseError:
+ form.AddItem(_('<em>Message with id #%(id)d is corrupted.'))
+ # BAW: Should we really delete this, or shuttle it off for site admin
+ # to look more closely at?
+ form.AddItem('<p>')
+ # BAW: kludge to remove id from requests.db.
+ try:
+ mlist.HandleRequest(id, mm_cfg.DISCARD)
+ except Errors.LostHeldMessage:
+ pass
+ return
+ # Get the header text and the message body excerpt
+ lines = []
+ chars = 0
+ # A negative value means, include the entire message regardless of size
+ limit = mm_cfg.ADMINDB_PAGE_TEXT_LIMIT
+ for line in email.Iterators.body_line_iterator(msg):
+ lines.append(line)
+ chars += len(line)
+ if chars > limit > 0:
+ break
+ # Negative values mean display the entire message, regardless of size
+ if limit > 0:
+ body = EMPTYSTRING.join(lines)[:mm_cfg.ADMINDB_PAGE_TEXT_LIMIT]
+ else:
+ body = EMPTYSTRING.join(lines)
+ hdrtxt = NL.join(['%s: %s' % (k, v) for k, v in msg.items()])
+ hdrtxt = Utils.websafe(hdrtxt)
+ # Okay, we've reconstituted the message just fine. Now for the fun part!
+ t = Table(cellspacing=0, cellpadding=0, width='100%')
+ t.AddRow([Bold(_('From:')), sender])
+ row, col = t.GetCurrentRowIndex(), t.GetCurrentCellIndex()
+ t.AddCellInfo(row, col-1, align='right')
+ t.AddRow([Bold(_('Subject:')), Utils.websafe(subject)])
+ t.AddCellInfo(row+1, col-1, align='right')
+ t.AddRow([Bold(_('Reason:')), _(reason)])
+ t.AddCellInfo(row+2, col-1, align='right')
+ when = msgdata.get('received_time')
+ if when:
+ t.AddRow([Bold(_('Received:')), time.ctime(when)])
+ t.AddCellInfo(row+2, col-1, align='right')
+ # We can't use a RadioButtonArray here because horizontal placement can be
+ # confusing to the user and vertical placement takes up too much
+ # real-estate. This is a hack!
+ buttons = Table(cellspacing="5", cellpadding="0")
+ buttons.AddRow(map(lambda x, s='&nbsp;'*5: s+x+s,
+ (_('Defer'), _('Approve'), _('Reject'), _('Discard'))))
+ buttons.AddRow([Center(RadioButton(id, mm_cfg.DEFER, 1)),
+ Center(RadioButton(id, mm_cfg.APPROVE, 0)),
+ Center(RadioButton(id, mm_cfg.REJECT, 0)),
+ Center(RadioButton(id, mm_cfg.DISCARD, 0)),
+ ])
+ t.AddRow([Bold(_('Action:')), buttons])
+ t.AddCellInfo(row+3, col-1, align='right')
+ t.AddRow(['&nbsp;',
+ CheckBox('preserve-%d' % id, 'on', 0).Format() +
+ '&nbsp;' + _('Preserve message for site administrator')
+ ])
+ t.AddRow(['&nbsp;',
+ CheckBox('forward-%d' % id, 'on', 0).Format() +
+ '&nbsp;' + _('Additionally, forward this message to: ') +
+ TextBox('forward-addr-%d' % id, size=47,
+ value=mlist.GetOwnerEmail()).Format()
+ ])
+ notice = msgdata.get('rejection_notice', _('[No explanation given]'))
+ t.AddRow([
+ Bold(_('If you reject this post,<br>please explain (optional):')),
+ TextArea('comment-%d' % id, rows=4, cols=EXCERPT_WIDTH,
+ text = Utils.wrap(_(notice), column=80))
+ ])
+ row, col = t.GetCurrentRowIndex(), t.GetCurrentCellIndex()
+ t.AddCellInfo(row, col-1, align='right')
+ t.AddRow([Bold(_('Message Headers:')),
+ TextArea('headers-%d' % id, hdrtxt,
+ rows=EXCERPT_HEIGHT, cols=EXCERPT_WIDTH, readonly=1)])
+ row, col = t.GetCurrentRowIndex(), t.GetCurrentCellIndex()
+ t.AddCellInfo(row, col-1, align='right')
+ t.AddRow([Bold(_('Message Excerpt:')),
+ TextArea('fulltext-%d' % id, Utils.websafe(body),
+ rows=EXCERPT_HEIGHT, cols=EXCERPT_WIDTH, readonly=1)])
+ t.AddCellInfo(row+1, col-1, align='right')
+ form.AddItem(t)
+ form.AddItem('<p>')
+
+
+
+def process_form(mlist, doc, cgidata):
+ senderactions = {}
+ # Sender-centric actions
+ for k in cgidata.keys():
+ for prefix in ('senderaction-', 'senderpreserve-', 'senderforward-',
+ 'senderforwardto-', 'senderfilterp-', 'senderfilter-',
+ 'senderclearmodp-', 'senderbanp-'):
+ if k.startswith(prefix):
+ action = k[:len(prefix)-1]
+ sender = unquote_plus(k[len(prefix):])
+ value = cgidata.getvalue(k)
+ senderactions.setdefault(sender, {})[action] = value
+ for sender in senderactions.keys():
+ actions = senderactions[sender]
+ # Handle what to do about all this sender's held messages
+ try:
+ action = int(actions.get('senderaction', mm_cfg.DEFER))
+ except ValueError:
+ action = mm_cfg.DEFER
+ if action in (mm_cfg.DEFER, mm_cfg.APPROVE,
+ mm_cfg.REJECT, mm_cfg.DISCARD):
+ preserve = actions.get('senderpreserve', 0)
+ forward = actions.get('senderforward', 0)
+ forwardaddr = actions.get('senderforwardto', '')
+ comment = _('No reason given')
+ bysender = helds_by_sender(mlist)
+ for id in bysender.get(sender, []):
+ try:
+ mlist.HandleRequest(id, action, comment, preserve,
+ forward, forwardaddr)
+ except (KeyError, Errors.LostHeldMessage):
+ # That's okay, it just means someone else has already
+ # updated the database while we were staring at the page,
+ # so just ignore it
+ continue
+ # Now see if this sender should be added to one of the nonmember
+ # sender filters.
+ if actions.get('senderfilterp', 0):
+ try:
+ which = int(actions.get('senderfilter'))
+ except ValueError:
+ # Bogus form
+ which = 'ignore'
+ if which == mm_cfg.ACCEPT:
+ mlist.accept_these_nonmembers.append(sender)
+ elif which == mm_cfg.HOLD:
+ mlist.hold_these_nonmembers.append(sender)
+ elif which == mm_cfg.REJECT:
+ mlist.reject_these_nonmembers.append(sender)
+ elif which == mm_cfg.DISCARD:
+ mlist.discard_these_nonmembers.append(sender)
+ # Otherwise, it's a bogus form, so ignore it
+ # And now see if we're to clear the member's moderation flag.
+ if actions.get('senderclearmodp', 0):
+ try:
+ mlist.setMemberOption(sender, mm_cfg.Moderate, 0)
+ except Errors.NotAMemberError:
+ # This person's not a member any more. Oh well.
+ pass
+ # And should this address be banned?
+ if actions.get('senderbanp', 0):
+ if sender not in mlist.ban_list:
+ mlist.ban_list.append(sender)
+ # Now, do message specific actions
+ erroraddrs = []
+ for k in cgidata.keys():
+ formv = cgidata[k]
+ if type(formv) == ListType:
+ continue
+ try:
+ v = int(formv.value)
+ request_id = int(k)
+ except ValueError:
+ continue
+ if v not in (mm_cfg.DEFER, mm_cfg.APPROVE, mm_cfg.REJECT,
+ mm_cfg.DISCARD, mm_cfg.SUBSCRIBE, mm_cfg.UNSUBSCRIBE,
+ mm_cfg.ACCEPT, mm_cfg.HOLD):
+ continue
+ # Get the action comment and reasons if present.
+ commentkey = 'comment-%d' % request_id
+ preservekey = 'preserve-%d' % request_id
+ forwardkey = 'forward-%d' % request_id
+ forwardaddrkey = 'forward-addr-%d' % request_id
+ bankey = 'ban-%d' % request_id
+ # Defaults
+ comment = _('[No reason given]')
+ preserve = 0
+ forward = 0
+ forwardaddr = ''
+ if cgidata.has_key(commentkey):
+ comment = cgidata[commentkey].value
+ if cgidata.has_key(preservekey):
+ preserve = cgidata[preservekey].value
+ if cgidata.has_key(forwardkey):
+ forward = cgidata[forwardkey].value
+ if cgidata.has_key(forwardaddrkey):
+ forwardaddr = cgidata[forwardaddrkey].value
+ # Should we ban this address? Do this check before handling the
+ # request id because that will evict the record.
+ if cgidata.getvalue(bankey):
+ sender = mlist.GetRecord(request_id)[1]
+ if sender not in mlist.ban_list:
+ mlist.ban_list.append(sender)
+ # Handle the request id
+ try:
+ mlist.HandleRequest(request_id, v, comment,
+ preserve, forward, forwardaddr)
+ except (KeyError, Errors.LostHeldMessage):
+ # That's okay, it just means someone else has already updated the
+ # database while we were staring at the page, so just ignore it
+ continue
+ except Errors.MMAlreadyAMember, v:
+ erroraddrs.append(v)
+ # save the list and print the results
+ doc.AddItem(Header(2, _('Database Updated...')))
+ if erroraddrs:
+ for addr in erroraddrs:
+ doc.AddItem(`addr` + _(' is already a member') + '<br>')
diff --git a/Mailman/Cgi/confirm.py b/Mailman/Cgi/confirm.py
new file mode 100644
index 00000000..2348b0b6
--- /dev/null
+++ b/Mailman/Cgi/confirm.py
@@ -0,0 +1,791 @@
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Confirm a pending action via URL."""
+
+import signal
+import cgi
+import time
+
+from Mailman import mm_cfg
+from Mailman import Errors
+from Mailman import i18n
+from Mailman import MailList
+from Mailman import Pending
+from Mailman.UserDesc import UserDesc
+from Mailman.htmlformat import *
+from Mailman.Logging.Syslog import syslog
+
+# Set up i18n
+_ = i18n._
+i18n.set_language(mm_cfg.DEFAULT_SERVER_LANGUAGE)
+
+
+
+def main():
+ doc = Document()
+ doc.set_language(mm_cfg.DEFAULT_SERVER_LANGUAGE)
+
+ parts = Utils.GetPathPieces()
+ if not parts or len(parts) < 1:
+ bad_confirmation(doc)
+ doc.AddItem(MailmanLogo())
+ print doc.Format()
+ return
+
+ listname = parts[0].lower()
+ try:
+ mlist = MailList.MailList(listname, lock=0)
+ except Errors.MMListError, e:
+ # Avoid cross-site scripting attacks
+ safelistname = Utils.websafe(listname)
+ bad_confirmation(doc, _('No such list <em>%(safelistname)s</em>'))
+ doc.AddItem(MailmanLogo())
+ print doc.Format()
+ syslog('error', 'No such list "%s": %s', listname, e)
+ return
+
+ # Set the language for the list
+ i18n.set_language(mlist.preferred_language)
+ doc.set_language(mlist.preferred_language)
+
+ # Get the form data to see if this is a second-step confirmation
+ cgidata = cgi.FieldStorage(keep_blank_values=1)
+ cookie = cgidata.getvalue('cookie')
+ if cookie == '':
+ ask_for_cookie(mlist, doc, _('Confirmation string was empty.'))
+ return
+
+ if not cookie and len(parts) == 2:
+ cookie = parts[1]
+
+ if len(parts) > 2:
+ bad_confirmation(doc)
+ doc.AddItem(mlist.GetMailmanFooter())
+ print doc.Format()
+ return
+
+ if not cookie:
+ ask_for_cookie(mlist, doc)
+ return
+
+ days = int(mm_cfg.PENDING_REQUEST_LIFE / mm_cfg.days(1) + 0.5)
+ confirmurl = mlist.GetScriptURL('confirm', absolute=1)
+ # Avoid cross-site scripting attacks
+ safecookie = Utils.websafe(cookie)
+ badconfirmstr = _('''<b>Invalid confirmation string:</b>
+ %(safecookie)s.
+
+ <p>Note that confirmation strings expire approximately
+ %(days)s days after the initial subscription request. If your
+ confirmation has expired, please try to re-submit your subscription.
+ Otherwise, <a href="%(confirmurl)s">re-enter</a> your confirmation
+ string.''')
+
+ content = Pending.confirm(cookie, expunge=0)
+ if content is None:
+ bad_confirmation(doc, badconfirmstr)
+ doc.AddItem(mlist.GetMailmanFooter())
+ print doc.Format()
+ return
+
+ try:
+ if content[0] == Pending.SUBSCRIPTION:
+ if cgidata.getvalue('cancel'):
+ subscription_cancel(mlist, doc, cookie)
+ elif cgidata.getvalue('submit'):
+ subscription_confirm(mlist, doc, cookie, cgidata)
+ else:
+ subscription_prompt(mlist, doc, cookie, content[1])
+ elif content[0] == Pending.UNSUBSCRIPTION:
+ try:
+ if cgidata.getvalue('cancel'):
+ unsubscription_cancel(mlist, doc, cookie)
+ elif cgidata.getvalue('submit'):
+ unsubscription_confirm(mlist, doc, cookie)
+ else:
+ unsubscription_prompt(mlist, doc, cookie, *content[1:])
+ except Errors.NotAMemberError:
+ doc.addError(_("""The address requesting unsubscription is not
+ a member of the mailing list. Perhaps you have already been
+ unsubscribed, e.g. by the list administrator?"""))
+ # And get rid of this confirmation cookie
+ Pending.confirm(cookie)
+ elif content[0] == Pending.CHANGE_OF_ADDRESS:
+ if cgidata.getvalue('cancel'):
+ addrchange_cancel(mlist, doc, cookie)
+ elif cgidata.getvalue('submit'):
+ addrchange_confirm(mlist, doc, cookie)
+ else:
+ # Watch out for users who have unsubscribed themselves in the
+ # meantime!
+ try:
+ addrchange_prompt(mlist, doc, cookie, *content[1:])
+ except Errors.NotAMemberError:
+ doc.addError(_("""The address requesting to be changed has
+ been subsequently unsubscribed. This request has been
+ cancelled."""))
+ Pending.confirm(cookie, expunge=1)
+ elif content[0] == Pending.HELD_MESSAGE:
+ if cgidata.getvalue('cancel'):
+ heldmsg_cancel(mlist, doc, cookie)
+ elif cgidata.getvalue('submit'):
+ heldmsg_confirm(mlist, doc, cookie)
+ else:
+ heldmsg_prompt(mlist, doc, cookie, *content[1:])
+ elif content[0] == Pending.RE_ENABLE:
+ if cgidata.getvalue('cancel'):
+ reenable_cancel(mlist, doc, cookie)
+ elif cgidata.getvalue('submit'):
+ reenable_confirm(mlist, doc, cookie)
+ else:
+ reenable_prompt(mlist, doc, cookie, *content[1:])
+ else:
+ bad_confirmation(doc, _('System error, bad content: %(content)s'))
+ except Errors.MMBadConfirmation:
+ bad_confirmation(doc, badconfirmstr)
+
+ doc.AddItem(mlist.GetMailmanFooter())
+ print doc.Format()
+
+
+
+def bad_confirmation(doc, extra=''):
+ title = _('Bad confirmation string')
+ doc.SetTitle(title)
+ doc.AddItem(Header(3, Bold(FontAttr(title, color='#ff0000', size='+2'))))
+ doc.AddItem(extra)
+
+
+
+def ask_for_cookie(mlist, doc, extra=''):
+ title = _('Enter confirmation cookie')
+ doc.SetTitle(title)
+ form = Form(mlist.GetScriptURL('confirm', 1))
+ table = Table(border=0, width='100%')
+ table.AddRow([Center(Bold(FontAttr(title, size='+1')))])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0,
+ colspan=2, bgcolor=mm_cfg.WEB_HEADER_COLOR)
+
+ if extra:
+ table.AddRow([Bold(FontAttr(extra, size='+1'))])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0, colspan=2)
+
+ # Add cookie entry box
+ table.AddRow([_("""Please enter the confirmation string
+ (i.e. <em>cookie</em>) that you received in your email message, in the box
+ below. Then hit the <em>Submit</em> button to proceed to the next
+ confirmation step.""")])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0, colspan=2)
+ table.AddRow([Label(_('Confirmation string:')),
+ TextBox('cookie')])
+ table.AddRow([Center(SubmitButton('submit_cookie', _('Submit')))])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0, colspan=2)
+ form.AddItem(table)
+ doc.AddItem(form)
+ doc.AddItem(mlist.GetMailmanFooter())
+ print doc.Format()
+
+
+
+def subscription_prompt(mlist, doc, cookie, userdesc):
+ email = userdesc.address
+ password = userdesc.password
+ digest = userdesc.digest
+ lang = userdesc.language
+ name = Utils.uncanonstr(userdesc.fullname, lang)
+ i18n.set_language(lang)
+ doc.set_language(lang)
+ title = _('Confirm subscription request')
+ doc.SetTitle(title)
+
+ form = Form(mlist.GetScriptURL('confirm', 1))
+ table = Table(border=0, width='100%')
+ table.AddRow([Center(Bold(FontAttr(title, size='+1')))])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0,
+ colspan=2, bgcolor=mm_cfg.WEB_HEADER_COLOR)
+
+ listname = mlist.real_name
+ # This is the normal, no-confirmation required results text.
+ #
+ # We do things this way so we don't have to reformat this paragraph, which
+ # would mess up translations. If you modify this text for other reasons,
+ # please refill the paragraph, and clean up the logic.
+ result = _("""Your confirmation is required in order to complete the
+ subscription request to the mailing list <em>%(listname)s</em>. Your
+ subscription settings are shown below; make any necessary changes and hit
+ <em>Subscribe</em> to complete the confirmation process. Once you've
+ confirmed your subscription request, you will be shown your account
+ options page which you can use to further customize your membership
+ options.
+
+ <p>Note: your password will be emailed to you once your subscription is
+ confirmed. You can change it by visiting your personal options page.
+
+ <p>Or hit <em>Cancel and discard</em> to cancel this subscription
+ request.""") + '<p><hr>'
+ if mlist.subscribe_policy in (2, 3):
+ # Confirmation is required
+ result = _("""Your confirmation is required in order to continue with
+ the subscription request to the mailing list <em>%(listname)s</em>.
+ Your subscription settings are shown below; make any necessary changes
+ and hit <em>Subscribe to list ...</em> to complete the confirmation
+ process. Once you've confirmed your subscription request, the
+ moderator must approve or reject your membership request. You will
+ receive notice of their decision.
+
+ <p>Note: your password will be emailed to you once your subscription
+ is confirmed. You can change it by visiting your personal options
+ page.
+
+ <p>Or, if you've changed your mind and do not want to subscribe to
+ this mailing list, you can hit <em>Cancel my subscription
+ request</em>.""") + '<p><hr>'
+ table.AddRow([result])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0, colspan=2)
+
+ table.AddRow([Label(_('Your email address:')), email])
+ table.AddRow([Label(_('Your real name:')),
+ TextBox('realname', name)])
+## table.AddRow([Label(_('Password:')),
+## PasswordBox('password', password)])
+## table.AddRow([Label(_('Password (confirm):')),
+## PasswordBox('pwconfirm', password)])
+ # Only give them a choice to receive digests if they actually have a
+ # choice <wink>.
+ if mlist.nondigestable and mlist.digestable:
+ table.AddRow([Label(_('Receive digests?')),
+ RadioButtonArray('digests', (_('No'), _('Yes')),
+ checked=digest, values=(0, 1))])
+ langs = mlist.GetAvailableLanguages()
+ values = [_(Utils.GetLanguageDescr(l)) for l in langs]
+ try:
+ selected = langs.index(lang)
+ except ValueError:
+ selected = lang.index(mlist.preferred_language)
+ table.AddRow([Label(_('Preferred language:')),
+ SelectOptions('language', langs, values, selected)])
+ table.AddRow([Hidden('cookie', cookie)])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0, colspan=2)
+ table.AddRow([
+ Label(SubmitButton('cancel', _('Cancel my subscription request'))),
+ SubmitButton('submit', _('Subscribe to list %(listname)s'))
+ ])
+ form.AddItem(table)
+ doc.AddItem(form)
+
+
+
+def subscription_cancel(mlist, doc, cookie):
+ # Discard this cookie
+ userdesc = Pending.confirm(cookie, expunge=1)[1]
+ lang = userdesc.language
+ i18n.set_language(lang)
+ doc.set_language(lang)
+ doc.AddItem(_('You have canceled your subscription request.'))
+
+
+
+def subscription_confirm(mlist, doc, cookie, cgidata):
+ # See the comment in admin.py about the need for the signal
+ # handler.
+ def sigterm_handler(signum, frame, mlist=mlist):
+ mlist.Unlock()
+ sys.exit(0)
+
+ listname = mlist.real_name
+ mlist.Lock()
+ try:
+ try:
+ # Some pending values may be overridden in the form. email of
+ # course is hardcoded. ;)
+ lang = cgidata.getvalue('language')
+ i18n.set_language(lang)
+ doc.set_language(lang)
+ if cgidata.has_key('digests'):
+ try:
+ digest = int(cgidata.getvalue('digests'))
+ except ValueError:
+ digest = None
+ else:
+ digest = None
+ userdesc = Pending.confirm(cookie, expunge=0)[1]
+ fullname = cgidata.getvalue('realname', None)
+ if fullname is not None:
+ fullname = Utils.canonstr(fullname, lang)
+ overrides = UserDesc(fullname=fullname, digest=digest, lang=lang)
+ userdesc += overrides
+ op, addr, pw, digest, lang = mlist.ProcessConfirmation(
+ cookie, userdesc)
+ except Errors.MMNeedApproval:
+ title = _('Awaiting moderator approval')
+ doc.SetTitle(title)
+ doc.AddItem(Header(3, Bold(FontAttr(title, size='+2'))))
+ doc.AddItem(_("""\
+ You have successfully confirmed your subscription request to the
+ mailing list %(listname)s, however final approval is required from
+ the list moderator before you will be subscribed. Your request
+ has been forwarded to the list moderator, and you will be notified
+ of the moderator's decision."""))
+ except Errors.NotAMemberError:
+ bad_confirmation(doc, _('''Invalid confirmation string. It is
+ possible that you are attempting to confirm a request for an
+ address that has already been unsubscribed.'''))
+ except Errors.MMAlreadyAMember:
+ doc.addError(_("You are already a member of this mailing list!"))
+ else:
+ # Use the user's preferred language
+ i18n.set_language(lang)
+ doc.set_language(lang)
+ # The response
+ listname = mlist.real_name
+ title = _('Subscription request confirmed')
+ optionsurl = mlist.GetOptionsURL(addr, absolute=1)
+ doc.SetTitle(title)
+ doc.AddItem(Header(3, Bold(FontAttr(title, size='+2'))))
+ doc.AddItem(_('''\
+ You have successfully confirmed your subscription request for
+ "%(addr)s" to the %(listname)s mailing list. A separate
+ confirmation message will be sent to your email address, along
+ with your password, and other useful information and links.
+
+ <p>You can now
+ <a href="%(optionsurl)s">proceed to your membership login
+ page</a>.'''))
+ mlist.Save()
+ finally:
+ mlist.Unlock()
+
+
+
+def unsubscription_cancel(mlist, doc, cookie):
+ # Discard this cookie
+ Pending.confirm(cookie, expunge=1)
+ doc.AddItem(_('You have canceled your unsubscription request.'))
+
+
+
+def unsubscription_confirm(mlist, doc, cookie):
+ # See the comment in admin.py about the need for the signal
+ # handler.
+ def sigterm_handler(signum, frame, mlist=mlist):
+ mlist.Unlock()
+ sys.exit(0)
+
+ mlist.Lock()
+ try:
+ try:
+ # Do this in two steps so we can get the preferred language for
+ # the user who is unsubscribing.
+ op, addr = Pending.confirm(cookie, expunge=0)
+ lang = mlist.getMemberLanguage(addr)
+ i18n.set_language(lang)
+ doc.set_language(lang)
+ op, addr = mlist.ProcessConfirmation(cookie)
+ except Errors.NotAMemberError:
+ bad_confirmation(doc, _('''Invalid confirmation string. It is
+ possible that you are attempting to confirm a request for an
+ address that has already been unsubscribed.'''))
+ else:
+ # The response
+ listname = mlist.real_name
+ title = _('Unsubscription request confirmed')
+ listinfourl = mlist.GetScriptURL('listinfo', absolute=1)
+ doc.SetTitle(title)
+ doc.AddItem(Header(3, Bold(FontAttr(title, size='+2'))))
+ doc.AddItem(_("""\
+ You have successfully unsubscribed from the %(listname)s mailing
+ list. You can now <a href="%(listinfourl)s">visit the list's main
+ information page</a>."""))
+ mlist.Save()
+ finally:
+ mlist.Unlock()
+
+
+
+def unsubscription_prompt(mlist, doc, cookie, addr):
+ title = _('Confirm unsubscription request')
+ doc.SetTitle(title)
+ lang = mlist.getMemberLanguage(addr)
+ i18n.set_language(lang)
+ doc.set_language(lang)
+
+ form = Form(mlist.GetScriptURL('confirm', 1))
+ table = Table(border=0, width='100%')
+ table.AddRow([Center(Bold(FontAttr(title, size='+1')))])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0,
+ colspan=2, bgcolor=mm_cfg.WEB_HEADER_COLOR)
+
+ listname = mlist.real_name
+ fullname = mlist.getMemberName(addr)
+ if fullname is None:
+ fullname = _('<em>Not available</em>')
+ else:
+ fullname = Utils.uncanonstr(fullname, lang)
+ table.AddRow([_("""Your confirmation is required in order to complete the
+ unsubscription request from the mailing list <em>%(listname)s</em>. You
+ are currently subscribed with
+
+ <ul><li><b>Real name:</b> %(fullname)s
+ <li><b>Email address:</b> %(addr)s
+ </ul>
+
+ Hit the <em>Unsubscribe</em> button below to complete the confirmation
+ process.
+
+ <p>Or hit <em>Cancel and discard</em> to cancel this unsubscription
+ request.""") + '<p><hr>'])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0, colspan=2)
+ table.AddRow([Hidden('cookie', cookie)])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0, colspan=2)
+ table.AddRow([SubmitButton('submit', _('Unsubscribe')),
+ SubmitButton('cancel', _('Cancel and discard'))])
+
+ form.AddItem(table)
+ doc.AddItem(form)
+
+
+
+def addrchange_cancel(mlist, doc, cookie):
+ # Discard this cookie
+ Pending.confirm(cookie, expunge=1)
+ doc.AddItem(_('You have canceled your change of address request.'))
+
+
+
+def addrchange_confirm(mlist, doc, cookie):
+ # See the comment in admin.py about the need for the signal
+ # handler.
+ def sigterm_handler(signum, frame, mlist=mlist):
+ mlist.Unlock()
+ sys.exit(0)
+
+ mlist.Lock()
+ try:
+ try:
+ # Do this in two steps so we can get the preferred language for
+ # the user who is unsubscribing.
+ op, oldaddr, newaddr, globally = Pending.confirm(cookie, expunge=0)
+ lang = mlist.getMemberLanguage(oldaddr)
+ i18n.set_language(lang)
+ doc.set_language(lang)
+ op, oldaddr, newaddr = mlist.ProcessConfirmation(cookie)
+ except Errors.NotAMemberError:
+ bad_confirmation(doc, _('''Invalid confirmation string. It is
+ possible that you are attempting to confirm a request for an
+ address that has already been unsubscribed.'''))
+ else:
+ # The response
+ listname = mlist.real_name
+ title = _('Change of address request confirmed')
+ optionsurl = mlist.GetOptionsURL(newaddr, absolute=1)
+ doc.SetTitle(title)
+ doc.AddItem(Header(3, Bold(FontAttr(title, size='+2'))))
+ doc.AddItem(_("""\
+ You have successfully changed your address on the %(listname)s
+ mailing list from <b>%(oldaddr)s</b> to <b>%(newaddr)s</b>. You
+ can now <a href="%(optionsurl)s">proceed to your membership
+ login page</a>."""))
+ mlist.Save()
+ finally:
+ mlist.Unlock()
+
+
+
+def addrchange_prompt(mlist, doc, cookie, oldaddr, newaddr, globally):
+ title = _('Confirm change of address request')
+ doc.SetTitle(title)
+ lang = mlist.getMemberLanguage(oldaddr)
+ i18n.set_language(lang)
+ doc.set_language(lang)
+
+ form = Form(mlist.GetScriptURL('confirm', 1))
+ table = Table(border=0, width='100%')
+ table.AddRow([Center(Bold(FontAttr(title, size='+1')))])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0,
+ colspan=2, bgcolor=mm_cfg.WEB_HEADER_COLOR)
+
+ listname = mlist.real_name
+ fullname = mlist.getMemberName(oldaddr)
+ if fullname is None:
+ fullname = _('<em>Not available</em>')
+ else:
+ fullname = Utils.uncanonstr(fullname, lang)
+ if globally:
+ globallys = _('globally')
+ else:
+ globallys = ''
+ table.AddRow([_("""Your confirmation is required in order to complete the
+ change of address request for the mailing list <em>%(listname)s</em>. You
+ are currently subscribed with
+
+ <ul><li><b>Real name:</b> %(fullname)s
+ <li><b>Old email address:</b> %(oldaddr)s
+ </ul>
+
+ and you have requested to %(globallys)s change your email address to
+
+ <ul><li><b>New email address:</b> %(newaddr)s
+ </ul>
+
+ Hit the <em>Change address</em> button below to complete the confirmation
+ process.
+
+ <p>Or hit <em>Cancel and discard</em> to cancel this change of address
+ request.""") + '<p><hr>'])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0, colspan=2)
+ table.AddRow([Hidden('cookie', cookie)])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0, colspan=2)
+ table.AddRow([SubmitButton('submit', _('Change address')),
+ SubmitButton('cancel', _('Cancel and discard'))])
+
+ form.AddItem(table)
+ doc.AddItem(form)
+
+
+
+def heldmsg_cancel(mlist, doc, cookie):
+ # Discard this cookie
+ title = _('Continue awaiting approval')
+ doc.SetTitle(title)
+ table = Table(border=0, width='100%')
+ table.AddRow([Center(Bold(FontAttr(title, size='+1')))])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0,
+ bgcolor=mm_cfg.WEB_HEADER_COLOR)
+ Pending.confirm(cookie, expunge=1)
+ table.AddRow([_('''Okay, the list moderator will still have the
+ opportunity to approve or reject this message.''')])
+ doc.AddItem(table)
+
+
+
+def heldmsg_confirm(mlist, doc, cookie):
+ # See the comment in admin.py about the need for the signal
+ # handler.
+ def sigterm_handler(signum, frame, mlist=mlist):
+ mlist.Unlock()
+ sys.exit(0)
+
+ mlist.Lock()
+ try:
+ try:
+ # Do this in two steps so we can get the preferred language for
+ # the user who posted the message.
+ op, id = Pending.confirm(cookie, expunge=1)
+ ign, sender, msgsubject, ign, ign, ign = mlist.GetRecord(id)
+ subject = Utils.websafe(msgsubject)
+ lang = mlist.getMemberLanguage(sender)
+ i18n.set_language(lang)
+ doc.set_language(lang)
+ # Discard the message
+ mlist.HandleRequest(id, mm_cfg.DISCARD,
+ _('Sender discarded message via web.'))
+ except Errors.LostHeldMessage:
+ bad_confirmation(doc, _('''The held message with the Subject:
+ header <em>%(subject)s</em> could not be found. The most likely
+ reason for this is that the list moderator has already approved or
+ rejected the message. You were not able to cancel it in
+ time.'''))
+ else:
+ # The response
+ listname = mlist.real_name
+ title = _('Posted message canceled')
+ doc.SetTitle(title)
+ doc.AddItem(Header(3, Bold(FontAttr(title, size='+2'))))
+ doc.AddItem(_('''\
+ You have successfully canceled the posting of your message with
+ the Subject: header <em>%(subject)s</em> to the mailing list
+ %(listname)s.'''))
+ mlist.Save()
+ finally:
+ mlist.Unlock()
+
+
+
+def heldmsg_prompt(mlist, doc, cookie, id):
+ title = _('Cancel held message posting')
+ doc.SetTitle(title)
+ form = Form(mlist.GetScriptURL('confirm', 1))
+ table = Table(border=0, width='100%')
+ table.AddRow([Center(Bold(FontAttr(title, size='+1')))])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0,
+ colspan=2, bgcolor=mm_cfg.WEB_HEADER_COLOR)
+ # Blarg. The list must be locked in order to interact with the ListAdmin
+ # database, even for read-only. See the comment in admin.py about the
+ # need for the signal handler.
+ def sigterm_handler(signum, frame, mlist=mlist):
+ mlist.Unlock()
+ sys.exit(0)
+ # Get the record, but watch for KeyErrors which mean the admin has already
+ # disposed of this message.
+ mlist.Lock()
+ try:
+ try:
+ data = mlist.GetRecord(id)
+ except KeyError:
+ data = None
+ finally:
+ mlist.Unlock()
+
+ if data is None:
+ bad_confirmation(doc, _("""The held message you were referred to has
+ already been handled by the list administrator."""))
+ return
+
+ # Unpack the data and present the confirmation message
+ ign, sender, msgsubject, givenreason, ign, ign = data
+ # Now set the language to the sender's preferred.
+ lang = mlist.getMemberLanguage(sender)
+ i18n.set_language(lang)
+ doc.set_language(lang)
+
+ subject = Utils.websafe(msgsubject)
+ reason = Utils.websafe(_(givenreason))
+ listname = mlist.real_name
+ table.AddRow([_('''Your confirmation is required in order to cancel the
+ posting of your message to the mailing list <em>%(listname)s</em>:
+
+ <ul><li><b>Sender:</b> %(sender)s
+ <li><b>Subject:</b> %(subject)s
+ <li><b>Reason:</b> %(reason)s
+ </ul>
+
+ Hit the <em>Cancel posting</em> button to discard the posting.
+
+ <p>Or hit the <em>Continue awaiting approval</em> button to continue to
+ allow the list moderator to approve or reject the message.''')
+ + '<p><hr>'])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0, colspan=2)
+ table.AddRow([Hidden('cookie', cookie)])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0, colspan=2)
+ table.AddRow([SubmitButton('submit', _('Cancel posting')),
+ SubmitButton('cancel', _('Continue awaiting approval'))])
+
+ form.AddItem(table)
+ doc.AddItem(form)
+
+
+
+def reenable_cancel(mlist, doc, cookie):
+ # Don't actually discard this cookie, since the user may decide to
+ # re-enable their membership at a future time, and we may be sending out
+ # future notifications with this cookie value.
+ doc.AddItem(_("""You have canceled the re-enabling of your membership. If
+ we continue to receive bounces from your address, it could be deleted from
+ this mailing list."""))
+
+
+
+def reenable_confirm(mlist, doc, cookie):
+ # See the comment in admin.py about the need for the signal
+ # handler.
+ def sigterm_handler(signum, frame, mlist=mlist):
+ mlist.Unlock()
+ sys.exit(0)
+
+ mlist.Lock()
+ try:
+ try:
+ # Do this in two steps so we can get the preferred language for
+ # the user who is unsubscribing.
+ op, listname, addr = Pending.confirm(cookie, expunge=0)
+ lang = mlist.getMemberLanguage(addr)
+ i18n.set_language(lang)
+ doc.set_language(lang)
+ op, addr = mlist.ProcessConfirmation(cookie)
+ except Errors.NotAMemberError:
+ bad_confirmation(doc, _('''Invalid confirmation string. It is
+ possible that you are attempting to confirm a request for an
+ address that has already been unsubscribed.'''))
+ else:
+ # The response
+ listname = mlist.real_name
+ title = _('Membership re-enabled.')
+ optionsurl = mlist.GetOptionsURL(addr, absolute=1)
+ doc.SetTitle(title)
+ doc.AddItem(Header(3, Bold(FontAttr(title, size='+2'))))
+ doc.AddItem(_("""\
+ You have successfully re-enabled your membership in the
+ %(listname)s mailing list. You can now <a
+ href="%(optionsurl)s">visit your member options page</a>.
+ """))
+ mlist.Save()
+ finally:
+ mlist.Unlock()
+
+
+
+def reenable_prompt(mlist, doc, cookie, list, member):
+ title = _('Re-enable mailing list membership')
+ doc.SetTitle(title)
+ form = Form(mlist.GetScriptURL('confirm', 1))
+ table = Table(border=0, width='100%')
+ table.AddRow([Center(Bold(FontAttr(title, size='+1')))])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0,
+ colspan=2, bgcolor=mm_cfg.WEB_HEADER_COLOR)
+
+ lang = mlist.getMemberLanguage(member)
+ i18n.set_language(lang)
+ doc.set_language(lang)
+
+ realname = mlist.real_name
+ info = mlist.getBounceInfo(member)
+ if not info:
+ listinfourl = mlist.GetScriptURL('listinfo', absolute=1)
+ # They've already be unsubscribed
+ table.AddRow([_("""We're sorry, but you have already been unsubscribed
+ from this mailing list. To re-subscribe, please visit the
+ <a href="%(listinfourl)s">list information page</a>.""")])
+ return
+
+ date = time.strftime('%A, %B %d, %Y', info.date + (0,) * 6)
+ daysleft = int(info.noticesleft *
+ mlist.bounce_you_are_disabled_warnings_interval /
+ mm_cfg.days(1))
+ # BAW: for consistency this should be changed to 'fullname' or the above
+ # 'fullname's should be changed to 'username'. Don't want to muck with
+ # the i18n catalogs though.
+ username = mlist.getMemberName(member)
+ if username is None:
+ username = _('<em>not available</em>')
+ else:
+ username = Utils.uncanonstr(username, lang)
+
+ table.AddRow([_("""Your membership in the %(realname)s mailing list is
+ currently disabled due to excessive bounces. Your confirmation is
+ required in order to re-enable delivery to your address. We have the
+ following information on file:
+
+ <ul><li><b>Member address:</b> %(member)s
+ <li><b>Member name:</b> %(username)s
+ <li><b>Last bounce received on:</b> %(date)s
+ <li><b>Approximate number of days before you are permanently removed
+ from this list:</b> %(daysleft)s
+ </ul>
+
+ Hit the <em>Re-enable membership</em> button to resume receiving postings
+ from the mailing list. Or hit the <em>Cancel</em> button to defer
+ re-enabling your membership.
+ """)])
+
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0, colspan=2)
+ table.AddRow([Hidden('cookie', cookie)])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0, colspan=2)
+ table.AddRow([SubmitButton('submit', _('Re-enable membership')),
+ SubmitButton('cancel', _('Cancel'))])
+
+ form.AddItem(table)
+ doc.AddItem(form)
diff --git a/Mailman/Cgi/create.py b/Mailman/Cgi/create.py
new file mode 100644
index 00000000..31e16269
--- /dev/null
+++ b/Mailman/Cgi/create.py
@@ -0,0 +1,410 @@
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Create mailing lists through the web."""
+
+import sys
+import os
+import signal
+import cgi
+import sha
+from types import ListType
+
+from Mailman import mm_cfg
+from Mailman import MailList
+from Mailman import Message
+from Mailman import Errors
+from Mailman import i18n
+from Mailman.htmlformat import *
+from Mailman.Logging.Syslog import syslog
+
+# Set up i18n
+_ = i18n._
+i18n.set_language(mm_cfg.DEFAULT_SERVER_LANGUAGE)
+
+
+
+def main():
+ doc = Document()
+ doc.set_language(mm_cfg.DEFAULT_SERVER_LANGUAGE)
+
+ cgidata = cgi.FieldStorage()
+ parts = Utils.GetPathPieces()
+ if parts:
+ # Bad URL specification
+ title = _('Bad URL specification')
+ doc.SetTitle(title)
+ doc.AddItem(
+ Header(3, Bold(FontAttr(title, color='#ff0000', size='+2'))))
+ syslog('error', 'Bad URL specification: %s', parts)
+ elif cgidata.has_key('doit'):
+ # We must be processing the list creation request
+ process_request(doc, cgidata)
+ elif cgidata.has_key('clear'):
+ request_creation(doc)
+ else:
+ # Put up the list creation request form
+ request_creation(doc)
+ doc.AddItem('<hr>')
+ # Always add the footer and print the document
+ doc.AddItem(_('Return to the ') +
+ Link(Utils.ScriptURL('listinfo'),
+ _('general list overview')).Format())
+ doc.AddItem(_('<br>Return to the ') +
+ Link(Utils.ScriptURL('admin'),
+ _('administrative list overview')).Format())
+ doc.AddItem(MailmanLogo())
+ print doc.Format()
+
+
+
+def process_request(doc, cgidata):
+ # Lowercase the listname since this is treated as the "internal" name.
+ listname = cgidata.getvalue('listname', '').strip().lower()
+ owner = cgidata.getvalue('owner', '').strip()
+ try:
+ autogen = int(cgidata.getvalue('autogen', '0'))
+ except ValueError:
+ autogen = 0
+ try:
+ notify = int(cgidata.getvalue('notify', '0'))
+ except ValueError:
+ notify = 0
+ try:
+ moderate = int(cgidata.getvalue('moderate', '0'))
+ except ValueError:
+ moderate = mm_cfg.DEFAULT_DEFAULT_MEMBER_MODERATION
+
+ password = cgidata.getvalue('password', '').strip()
+ confirm = cgidata.getvalue('confirm', '').strip()
+ auth = cgidata.getvalue('auth', '').strip()
+ langs = cgidata.getvalue('langs', [mm_cfg.DEFAULT_SERVER_LANGUAGE])
+
+ if type(langs) <> ListType:
+ langs = [langs]
+ # Sanity check
+ if '@' in listname:
+ request_creation(doc, cgidata,
+ _('List name must not include "@": %(listname)s'))
+ return
+ if Utils.list_exists(listname):
+ # BAW: should we tell them the list already exists? This could be
+ # used to mine/guess the existance of non-advertised lists. Then
+ # again, that can be done in other ways already, so oh well.
+ request_creation(doc, cgidata, _('List already exists: %(listname)s'))
+ return
+ if not listname:
+ request_creation(doc, cgidata,
+ _('You forgot to enter the list name'))
+ return
+ if not owner:
+ request_creation(doc, cgidata,
+ _('You forgot to specify the list owner'))
+ return
+
+ if autogen:
+ if password or confirm:
+ request_creation(
+ doc, cgidata,
+ _('''Leave the initial password (and confirmation) fields
+ blank if you want Mailman to autogenerate the list
+ passwords.'''))
+ return
+ password = confirm = Utils.MakeRandomPassword(length=8)
+ else:
+ if password <> confirm:
+ request_creation(doc, cgidata,
+ _('Initial list passwords do not match'))
+ return
+ if not password:
+ request_creation(
+ doc, cgidata,
+ # The little <!-- ignore --> tag is used so that this string
+ # differs from the one in bin/newlist. The former is destined
+ # for the web while the latter is destined for email, so they
+ # must be different entries in the message catalog.
+ _('The list password cannot be empty<!-- ignore -->'))
+ return
+ # The authorization password must be non-empty, and it must match either
+ # the list creation password or the site admin password
+ ok = 0
+ if auth:
+ ok = Utils.check_global_password(auth, 0)
+ if not ok:
+ ok = Utils.check_global_password(auth)
+ if not ok:
+ request_creation(
+ doc, cgidata,
+ _('You are not authorized to create new mailing lists'))
+ return
+ # We've got all the data we need, so go ahead and try to create the list
+ # See admin.py for why we need to set up the signal handler.
+ mlist = MailList.MailList()
+
+ def sigterm_handler(signum, frame, mlist=mlist):
+ # Make sure the list gets unlocked...
+ mlist.Unlock()
+ # ...and ensure we exit, otherwise race conditions could cause us to
+ # enter MailList.Save() while we're in the unlocked state, and that
+ # could be bad!
+ sys.exit(0)
+
+ try:
+ # Install the emergency shutdown signal handler
+ signal.signal(signal.SIGTERM, sigterm_handler)
+
+ pw = sha.new(password).hexdigest()
+ # Guarantee that all newly created files have the proper permission.
+ # proper group ownership should be assured by the autoconf script
+ # enforcing that all directories have the group sticky bit set
+ oldmask = os.umask(002)
+ try:
+ try:
+ mlist.Create(listname, owner, pw, langs)
+ finally:
+ os.umask(oldmask)
+ except Errors.MMBadEmailError, s:
+ request_creation(doc, cgidata,
+ _('Bad owner email address: %(s)s'))
+ return
+ except Errors.MMListAlreadyExistsError:
+ request_creation(doc, cgidata,
+ _('List already exists: %(listname)s'))
+ return
+ except Errors.BadListNameError, s:
+ request_creation(doc, cgidata,
+ _('Illegal list name: %(s)s'))
+ return
+ except Errors.MMListError:
+ request_creation(
+ doc, cgidata,
+ _('''Some unknown error occurred while creating the list.
+ Please contact the site administrator for assistance.'''))
+ return
+
+ # Initialize the host_name and web_page_url attributes, based on
+ # virtual hosting settings and the request environment variables.
+ hostname = Utils.get_domain()
+ mlist.default_member_moderation = moderate
+ mlist.web_page_url = mm_cfg.DEFAULT_URL_PATTERN % hostname
+ mlist.host_name = mm_cfg.VIRTUAL_HOSTS.get(
+ hostname, mm_cfg.DEFAULT_EMAIL_HOST)
+ mlist.Save()
+ finally:
+ # Now be sure to unlock the list. It's okay if we get a signal here
+ # because essentially, the signal handler will do the same thing. And
+ # unlocking is unconditional, so it's not an error if we unlock while
+ # we're already unlocked.
+ mlist.Unlock()
+
+ # Now do the MTA-specific list creation tasks
+ if mm_cfg.MTA:
+ modname = 'Mailman.MTA.' + mm_cfg.MTA
+ __import__(modname)
+ sys.modules[modname].create(mlist, cgi=1)
+
+ # And send the notice to the list owner.
+ if notify:
+ siteadmin = Utils.get_site_email(mlist.host_name, 'admin')
+ text = Utils.maketext(
+ 'newlist.txt',
+ {'listname' : listname,
+ 'password' : password,
+ 'admin_url' : mlist.GetScriptURL('admin', absolute=1),
+ 'listinfo_url': mlist.GetScriptURL('listinfo', absolute=1),
+ 'requestaddr' : mlist.GetRequestEmail(),
+ 'siteowner' : siteadmin,
+ }, mlist=mlist)
+ msg = Message.UserNotification(
+ owner, siteadmin,
+ _('Your new mailing list: %(listname)s'),
+ text, mlist.preferred_language)
+ msg.send(mlist)
+
+ # Success!
+ listinfo_url = mlist.GetScriptURL('listinfo', absolute=1)
+ admin_url = mlist.GetScriptURL('admin', absolute=1)
+ create_url = Utils.ScriptURL('create')
+
+ title = _('Mailing list creation results')
+ doc.SetTitle(title)
+ table = Table(border=0, width='100%')
+ table.AddRow([Center(Bold(FontAttr(title, size='+1')))])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0,
+ bgcolor=mm_cfg.WEB_HEADER_COLOR)
+ table.AddRow([_('''You have successfully created the mailing list
+ <b>%(listname)s</b> and notification has been sent to the list owner
+ <b>%(owner)s</b>. You can now:''')])
+ ullist = UnorderedList()
+ ullist.AddItem(Link(listinfo_url, _("Visit the list's info page")))
+ ullist.AddItem(Link(admin_url, _("Visit the list's admin page")))
+ ullist.AddItem(Link(create_url, _('Create another list')))
+ table.AddRow([ullist])
+ doc.AddItem(table)
+
+
+
+# Because the cgi module blows
+class Dummy:
+ def getvalue(self, name, default):
+ return default
+dummy = Dummy()
+
+
+
+def request_creation(doc, cgidata=dummy, errmsg=None):
+ # What virtual domain are we using?
+ hostname = Utils.get_domain()
+ # Set up the document
+ title = _('Create a %(hostname)s Mailing List')
+ doc.SetTitle(title)
+ table = Table(border=0, width='100%')
+ table.AddRow([Center(Bold(FontAttr(title, size='+1')))])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0,
+ bgcolor=mm_cfg.WEB_HEADER_COLOR)
+ # Add any error message
+ if errmsg:
+ table.AddRow([Header(3, Bold(
+ FontAttr(_('Error: '), color='#ff0000', size='+2').Format() +
+ Italic(errmsg).Format()))])
+ table.AddRow([_("""You can create a new mailing list by entering the
+ relevant information into the form below. The name of the mailing list
+ will be used as the primary address for posting messages to the list, so
+ it should be lowercased. You will not be able to change this once the
+ list is created.
+
+ <p>You also need to enter the email address of the initial list owner.
+ Once the list is created, the list owner will be given notification, along
+ with the initial list password. The list owner will then be able to
+ modify the password and add or remove additional list owners.
+
+ <p>If you want Mailman to automatically generate the initial list admin
+ password, click on `Yes' in the autogenerate field below, and leave the
+ initial list password fields empty.
+
+ <p>You must have the proper authorization to create new mailing lists.
+ Each site should have a <em>list creator's</em> password, which you can
+ enter in the field at the bottom. Note that the site administrator's
+ password can also be used for authentication.
+ """)])
+ # Build the form for the necessary input
+ GREY = mm_cfg.WEB_ADMINITEM_COLOR
+ form = Form(Utils.ScriptURL('create'))
+ ftable = Table(border=0, cols='2', width='100%',
+ cellspacing=3, cellpadding=4)
+
+ ftable.AddRow([Center(Italic(_('List Identity')))])
+ ftable.AddCellInfo(ftable.GetCurrentRowIndex(), 0, colspan=2)
+
+ ftable.AddRow([Label(_('Name of list:')),
+ TextBox('listname', cgidata.getvalue('listname', ''))])
+ ftable.AddCellInfo(ftable.GetCurrentRowIndex(), 0, bgcolor=GREY)
+ ftable.AddCellInfo(ftable.GetCurrentRowIndex(), 1, bgcolor=GREY)
+
+ ftable.AddRow([Label(_('Initial list owner address:')),
+ TextBox('owner', cgidata.getvalue('owner', ''))])
+ ftable.AddCellInfo(ftable.GetCurrentRowIndex(), 0, bgcolor=GREY)
+ ftable.AddCellInfo(ftable.GetCurrentRowIndex(), 1, bgcolor=GREY)
+
+ try:
+ autogen = int(cgidata.getvalue('autogen', '0'))
+ except ValueError:
+ autogen = 0
+ ftable.AddRow([Label(_('Auto-generate initial list password?')),
+ RadioButtonArray('autogen', (_('No'), _('Yes')),
+ checked=autogen,
+ values=(0, 1))])
+ ftable.AddCellInfo(ftable.GetCurrentRowIndex(), 0, bgcolor=GREY)
+ ftable.AddCellInfo(ftable.GetCurrentRowIndex(), 1, bgcolor=GREY)
+
+ ftable.AddRow([Label(_('Initial list password:')),
+ PasswordBox('password', cgidata.getvalue('password', ''))])
+ ftable.AddCellInfo(ftable.GetCurrentRowIndex(), 0, bgcolor=GREY)
+ ftable.AddCellInfo(ftable.GetCurrentRowIndex(), 1, bgcolor=GREY)
+
+ ftable.AddRow([Label(_('Confirm initial password:')),
+ PasswordBox('confirm', cgidata.getvalue('confirm', ''))])
+ ftable.AddCellInfo(ftable.GetCurrentRowIndex(), 0, bgcolor=GREY)
+ ftable.AddCellInfo(ftable.GetCurrentRowIndex(), 1, bgcolor=GREY)
+
+ try:
+ notify = int(cgidata.getvalue('notify', '1'))
+ except ValueError:
+ notify = 1
+
+ ftable.AddRow([Center(Italic(_('List Characteristics')))])
+ ftable.AddCellInfo(ftable.GetCurrentRowIndex(), 0, colspan=2)
+
+ ftable.AddRow([
+ Label(_("""Should new members be quarantined before they
+ are allowed to post unmoderated to this list? Answer <em>Yes</em> to hold
+ new member postings for moderator approval by default.""")),
+ RadioButtonArray('moderate', (_('No'), _('Yes')),
+ checked=mm_cfg.DEFAULT_DEFAULT_MEMBER_MODERATION,
+ values=(0,1))])
+ ftable.AddCellInfo(ftable.GetCurrentRowIndex(), 0, bgcolor=GREY)
+ ftable.AddCellInfo(ftable.GetCurrentRowIndex(), 1, bgcolor=GREY)
+ # Create the table of initially supported languages, sorted on the long
+ # name of the language.
+ revmap = {}
+ for key, (name, charset) in mm_cfg.LC_DESCRIPTIONS.items():
+ revmap[_(name)] = key
+ langnames = revmap.keys()
+ langnames.sort()
+ langs = []
+ for name in langnames:
+ langs.append(revmap[name])
+ try:
+ langi = langs.index(mm_cfg.DEFAULT_SERVER_LANGUAGE)
+ except ValueError:
+ # Someone must have deleted the servers's preferred language. Could
+ # be other trouble lurking!
+ langi = 0
+ # BAW: we should preserve the list of checked languages across form
+ # invocations.
+ checked = [0] * len(langs)
+ checked[langi] = 1
+ deflang = _(Utils.GetLanguageDescr(mm_cfg.DEFAULT_SERVER_LANGUAGE))
+ ftable.AddRow([Label(_(
+ '''Initial list of supported languages. <p>Note that if you do not
+ select at least one initial language, the list will use the server
+ default language of %(deflang)s''')),
+ CheckBoxArray('langs',
+ [_(Utils.GetLanguageDescr(L)) for L in langs],
+ checked=checked,
+ values=langs)])
+ ftable.AddCellInfo(ftable.GetCurrentRowIndex(), 0, bgcolor=GREY)
+ ftable.AddCellInfo(ftable.GetCurrentRowIndex(), 1, bgcolor=GREY)
+
+ ftable.AddRow([Label(_('Send "list created" email to list owner?')),
+ RadioButtonArray('notify', (_('No'), _('Yes')),
+ checked=notify,
+ values=(0, 1))])
+ ftable.AddCellInfo(ftable.GetCurrentRowIndex(), 0, bgcolor=GREY)
+ ftable.AddCellInfo(ftable.GetCurrentRowIndex(), 1, bgcolor=GREY)
+
+ ftable.AddRow(['<hr>'])
+ ftable.AddCellInfo(ftable.GetCurrentRowIndex(), 0, colspan=2)
+ ftable.AddRow([Label(_("List creator's (authentication) password:")),
+ PasswordBox('auth')])
+ ftable.AddCellInfo(ftable.GetCurrentRowIndex(), 0, bgcolor=GREY)
+ ftable.AddCellInfo(ftable.GetCurrentRowIndex(), 1, bgcolor=GREY)
+
+ ftable.AddRow([Center(SubmitButton('doit', _('Create List'))),
+ Center(SubmitButton('clear', _('Clear Form')))])
+ form.AddItem(ftable)
+ table.AddRow([form])
+ doc.AddItem(table)
diff --git a/Mailman/Cgi/edithtml.py b/Mailman/Cgi/edithtml.py
new file mode 100644
index 00000000..cd235162
--- /dev/null
+++ b/Mailman/Cgi/edithtml.py
@@ -0,0 +1,170 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Script which implements admin editing of the list's html templates."""
+
+import os
+import cgi
+import errno
+
+from Mailman import Utils
+from Mailman import MailList
+from Mailman.htmlformat import *
+from Mailman.HTMLFormatter import HTMLFormatter
+from Mailman import Errors
+from Mailman.Cgi import Auth
+from Mailman.Logging.Syslog import syslog
+from Mailman import i18n
+
+_ = i18n._
+
+
+
+def main():
+ # Trick out pygettext since we want to mark template_data as translatable,
+ # but we don't want to actually translate it here.
+ def _(s):
+ return s
+
+ template_data = (
+ ('listinfo.html', _('General list information page')),
+ ('subscribe.html', _('Subscribe results page')),
+ ('options.html', _('User specific options page')),
+ )
+
+ _ = i18n._
+ doc = Document()
+
+ # Set up the system default language
+ i18n.set_language(mm_cfg.DEFAULT_SERVER_LANGUAGE)
+ doc.set_language(mm_cfg.DEFAULT_SERVER_LANGUAGE)
+
+ parts = Utils.GetPathPieces()
+ if not parts:
+ doc.AddItem(Header(2, _("List name is required.")))
+ print doc.Format()
+ return
+
+ listname = parts[0].lower()
+ try:
+ mlist = MailList.MailList(listname, lock=0)
+ except Errors.MMListError, e:
+ # Avoid cross-site scripting attacks
+ safelistname = Utils.websafe(listname)
+ doc.AddItem(Header(2, _('No such list <em>%(safelistname)s</em>')))
+ print doc.Format()
+ syslog('error', 'No such list "%s": %s', listname, e)
+ return
+
+ # Now that we have a valid list, set the language to its default
+ i18n.set_language(mlist.preferred_language)
+ doc.set_language(mlist.preferred_language)
+
+ # Must be authenticated to get any farther
+ cgidata = cgi.FieldStorage()
+
+ # Editing the html for a list is limited to the list admin and site admin.
+ if not mlist.WebAuthenticate((mm_cfg.AuthListAdmin,
+ mm_cfg.AuthSiteAdmin),
+ cgidata.getvalue('adminpw', '')):
+ if cgidata.has_key('admlogin'):
+ # This is a re-authorization attempt
+ msg = Bold(FontSize('+1', _('Authorization failed.'))).Format()
+ else:
+ msg = ''
+ Auth.loginpage(mlist, 'admin', msg=msg)
+ return
+
+ realname = mlist.real_name
+ if len(parts) > 1:
+ template_name = parts[1]
+ for (template, info) in template_data:
+ if template == template_name:
+ template_info = _(info)
+ doc.SetTitle(_(
+ '%(realname)s -- Edit html for %(template_info)s'))
+ break
+ else:
+ # Avoid cross-site scripting attacks
+ safetemplatename = Utils.websafe(template_name)
+ doc.SetTitle(_('Edit HTML : Error'))
+ doc.AddItem(Header(2, _("%(safetemplatename)s: Invalid template")))
+ doc.AddItem(mlist.GetMailmanFooter())
+ print doc.Format()
+ return
+ else:
+ doc.SetTitle(_('%(realname)s -- HTML Page Editing'))
+ doc.AddItem(Header(1, _('%(realname)s -- HTML Page Editing')))
+ doc.AddItem(Header(2, _('Select page to edit:')))
+ template_list = UnorderedList()
+ for (template, info) in template_data:
+ l = Link(mlist.GetScriptURL('edithtml') + '/' + template, _(info))
+ template_list.AddItem(l)
+ doc.AddItem(FontSize("+2", template_list))
+ doc.AddItem(mlist.GetMailmanFooter())
+ print doc.Format()
+ return
+
+ try:
+ if cgidata.keys():
+ ChangeHTML(mlist, cgidata, template_name, doc)
+ FormatHTML(mlist, doc, template_name, template_info)
+ finally:
+ doc.AddItem(mlist.GetMailmanFooter())
+ print doc.Format()
+
+
+
+def FormatHTML(mlist, doc, template_name, template_info):
+ doc.AddItem(Header(1,'%s:' % mlist.real_name))
+ doc.AddItem(Header(1, template_info))
+ doc.AddItem('<hr>')
+
+ link = Link(mlist.GetScriptURL('admin'),
+ _('View or edit the list configuration information.'))
+
+ doc.AddItem(FontSize("+1", link))
+ doc.AddItem('<p>')
+ doc.AddItem('<hr>')
+ form = Form(mlist.GetScriptURL('edithtml') + '/' + template_name)
+ text = Utils.websafe(Utils.maketext(template_name, raw=1, mlist=mlist))
+ form.AddItem(TextArea('html_code', text, rows=40, cols=75))
+ form.AddItem('<p>' + _('When you are done making changes...'))
+ form.AddItem(SubmitButton('submit', _('Submit Changes')))
+ doc.AddItem(form)
+
+
+
+def ChangeHTML(mlist, cgi_info, template_name, doc):
+ if not cgi_info.has_key('html_code'):
+ doc.AddItem(Header(3,_("Can't have empty html page.")))
+ doc.AddItem(Header(3,_("HTML Unchanged.")))
+ doc.AddItem('<hr>')
+ return
+ code = cgi_info['html_code'].value
+ langdir = os.path.join(mlist.fullpath(), mlist.preferred_language)
+ # Make sure the directory exists
+ try:
+ os.mkdir(langdir, 02775)
+ except OSError, e:
+ if e.errno <> errno.EEXIST: raise
+ fp = open(os.path.join(langdir, template_name), 'w')
+ try:
+ fp.write(code)
+ finally:
+ fp.close()
+ doc.AddItem(Header(3, _('HTML successfully updated.')))
+ doc.AddItem('<hr>')
diff --git a/Mailman/Cgi/listinfo.py b/Mailman/Cgi/listinfo.py
new file mode 100644
index 00000000..d9e4d266
--- /dev/null
+++ b/Mailman/Cgi/listinfo.py
@@ -0,0 +1,206 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Produce listinfo page, primary web entry-point to mailing lists.
+"""
+
+# No lock needed in this script, because we don't change data.
+
+import os
+import cgi
+
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman import MailList
+from Mailman import Errors
+from Mailman import i18n
+from Mailman.htmlformat import *
+from Mailman.Logging.Syslog import syslog
+
+# Set up i18n
+_ = i18n._
+i18n.set_language(mm_cfg.DEFAULT_SERVER_LANGUAGE)
+
+
+
+def main():
+ parts = Utils.GetPathPieces()
+ if not parts:
+ listinfo_overview()
+ return
+
+ listname = parts[0].lower()
+ try:
+ mlist = MailList.MailList(listname, lock=0)
+ except Errors.MMListError, e:
+ # Avoid cross-site scripting attacks
+ safelistname = Utils.websafe(listname)
+ listinfo_overview(_('No such list <em>%(safelistname)s</em>'))
+ syslog('error', 'No such list "%s": %s', listname, e)
+ return
+
+ # See if the user want to see this page in other language
+ cgidata = cgi.FieldStorage()
+ language = cgidata.getvalue('language', mlist.preferred_language)
+ i18n.set_language(language)
+ list_listinfo(mlist, language)
+
+
+
+def listinfo_overview(msg=''):
+ # Present the general listinfo overview
+ hostname = Utils.get_domain()
+ # Set up the document and assign it the correct language. The only one we
+ # know about at the moment is the server's default.
+ doc = Document()
+ doc.set_language(mm_cfg.DEFAULT_SERVER_LANGUAGE)
+
+ legend = _("%(hostname)s Mailing Lists")
+ doc.SetTitle(legend)
+
+ table = Table(border=0, width="100%")
+ table.AddRow([Center(Header(2, legend))])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0, colspan=2,
+ bgcolor=mm_cfg.WEB_HEADER_COLOR)
+
+ # Skip any mailing lists that isn't advertised.
+ advertised = []
+ listnames = Utils.list_names()
+ listnames.sort()
+
+ for name in listnames:
+ mlist = MailList.MailList(name, lock=0)
+ if mlist.advertised:
+ if mm_cfg.VIRTUAL_HOST_OVERVIEW and \
+ mlist.web_page_url.find(hostname) == -1:
+ # List is for different identity of this host - skip it.
+ continue
+ else:
+ advertised.append(mlist)
+
+ if msg:
+ greeting = FontAttr(msg, color="ff5060", size="+1")
+ else:
+ greeting = FontAttr(_('Welcome!'), size='+2')
+
+ welcome = [greeting]
+ mailmanlink = Link(mm_cfg.MAILMAN_URL, _('Mailman')).Format()
+ if not advertised:
+ welcome.extend(
+ _('''<p>There currently are no publicly-advertised
+ %(mailmanlink)s mailing lists on %(hostname)s.'''))
+ else:
+ welcome.append(
+ _('''<p>Below is a listing of all the public mailing lists on
+ %(hostname)s. Click on a list name to get more information about
+ the list, or to subscribe, unsubscribe, and change the preferences
+ on your subscription.'''))
+
+ # set up some local variables
+ adj = msg and _('right') or ''
+ siteowner = Utils.get_site_email()
+ welcome.extend(
+ (_(''' To visit the general information page for an unadvertised list,
+ open a URL similar to this one, but with a '/' and the %(adj)s
+ list name appended.
+ <p>List administrators, you can visit '''),
+ Link(Utils.ScriptURL('admin'),
+ _('the list admin overview page')),
+ _(''' to find the management interface for your list.
+ <p>Send questions or comments to '''),
+ Link('mailto:' + siteowner, siteowner),
+ '.<p>'))
+
+ table.AddRow([apply(Container, welcome)])
+ table.AddCellInfo(max(table.GetCurrentRowIndex(), 0), 0, colspan=2)
+
+ if advertised:
+ table.AddRow(['&nbsp;', '&nbsp;'])
+ table.AddRow([Bold(FontAttr(_('List'), size='+2')),
+ Bold(FontAttr(_('Description'), size='+2'))
+ ])
+ highlight = 1
+ for mlist in advertised:
+ table.AddRow(
+ [Link(mlist.GetScriptURL('listinfo'), Bold(mlist.real_name)),
+ mlist.description or Italic(_('[no description available]'))])
+ if highlight and mm_cfg.WEB_HIGHLIGHT_COLOR:
+ table.AddRowInfo(table.GetCurrentRowIndex(),
+ bgcolor=mm_cfg.WEB_HIGHLIGHT_COLOR)
+ highlight = not highlight
+
+ doc.AddItem(table)
+ doc.AddItem('<hr>')
+ doc.AddItem(MailmanLogo())
+ print doc.Format()
+
+
+
+def list_listinfo(mlist, lang):
+ # Generate list specific listinfo
+ doc = HeadlessDocument()
+ doc.set_language(lang)
+
+ replacements = mlist.GetStandardReplacements(lang)
+
+ if not mlist.digestable or not mlist.nondigestable:
+ replacements['<mm-digest-radio-button>'] = ""
+ replacements['<mm-undigest-radio-button>'] = ""
+ replacements['<mm-digest-question-start>'] = '<!-- '
+ replacements['<mm-digest-question-end>'] = ' -->'
+ else:
+ replacements['<mm-digest-radio-button>'] = mlist.FormatDigestButton()
+ replacements['<mm-undigest-radio-button>'] = \
+ mlist.FormatUndigestButton()
+ replacements['<mm-digest-question-start>'] = ''
+ replacements['<mm-digest-question-end>'] = ''
+ replacements['<mm-plain-digests-button>'] = \
+ mlist.FormatPlainDigestsButton()
+ replacements['<mm-mime-digests-button>'] = mlist.FormatMimeDigestsButton()
+ replacements['<mm-subscribe-box>'] = mlist.FormatBox('email', size=30)
+ replacements['<mm-subscribe-button>'] = mlist.FormatButton(
+ 'email-button', text=_('Subscribe'))
+ replacements['<mm-new-password-box>'] = mlist.FormatSecureBox('pw')
+ replacements['<mm-confirm-password>'] = mlist.FormatSecureBox('pw-conf')
+ replacements['<mm-subscribe-form-start>'] = mlist.FormatFormStart(
+ 'subscribe')
+ # Roster form substitutions
+ replacements['<mm-roster-form-start>'] = mlist.FormatFormStart('roster')
+ replacements['<mm-roster-option>'] = mlist.FormatRosterOptionForUser(lang)
+ # Options form substitutions
+ replacements['<mm-options-form-start>'] = mlist.FormatFormStart('options')
+ replacements['<mm-editing-options>'] = mlist.FormatEditingOption(lang)
+ replacements['<mm-info-button>'] = SubmitButton('UserOptions',
+ _('Edit Options')).Format()
+ # If only one language is enabled for this mailing list, omit the choice
+ # buttons.
+ if len(mlist.GetAvailableLanguages()) == 1:
+ displang = ''
+ else:
+ displang = mlist.FormatButton('displang-button',
+ text = _("View this page in"))
+ replacements['<mm-displang-box>'] = displang
+ replacements['<mm-lang-form-start>'] = mlist.FormatFormStart('listinfo')
+ replacements['<mm-fullname-box>'] = mlist.FormatBox('fullname', size=30)
+
+ # Do the expansion.
+ doc.AddItem(mlist.ParseTags('listinfo.html', replacements, lang))
+ print doc.Format()
+
+
+
+if __name__ == "__main__":
+ main()
diff --git a/Mailman/Cgi/options.py b/Mailman/Cgi/options.py
new file mode 100644
index 00000000..da4562f7
--- /dev/null
+++ b/Mailman/Cgi/options.py
@@ -0,0 +1,950 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Produce and handle the member options."""
+
+import sys
+import os
+import cgi
+import signal
+import urllib
+from types import ListType
+
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman import MailList
+from Mailman import Errors
+from Mailman import MemberAdaptor
+from Mailman import i18n
+from Mailman.htmlformat import *
+from Mailman.Logging.Syslog import syslog
+
+SLASH = '/'
+SETLANGUAGE = -1
+
+# Set up i18n
+_ = i18n._
+i18n.set_language(mm_cfg.DEFAULT_SERVER_LANGUAGE)
+
+
+
+def main():
+ doc = Document()
+ doc.set_language(mm_cfg.DEFAULT_SERVER_LANGUAGE)
+
+ parts = Utils.GetPathPieces()
+ lenparts = parts and len(parts)
+ if not parts or lenparts < 1:
+ title = _('CGI script error')
+ doc.SetTitle(title)
+ doc.AddItem(Header(2, title))
+ doc.addError(_('Invalid options to CGI script.'))
+ doc.AddItem('<hr>')
+ doc.AddItem(MailmanLogo())
+ print doc.Format()
+ return
+
+ # get the list and user's name
+ listname = parts[0].lower()
+ # open list
+ try:
+ mlist = MailList.MailList(listname, lock=0)
+ except Errors.MMListError, e:
+ # Avoid cross-site scripting attacks
+ safelistname = Utils.websafe(listname)
+ title = _('CGI script error')
+ doc.SetTitle(title)
+ doc.AddItem(Header(2, title))
+ doc.addError(_('No such list <em>%(safelistname)s</em>'))
+ doc.AddItem('<hr>')
+ doc.AddItem(MailmanLogo())
+ print doc.Format()
+ syslog('error', 'No such list "%s": %s\n', listname, e)
+ return
+
+ # The total contents of the user's response
+ cgidata = cgi.FieldStorage(keep_blank_values=1)
+
+ # Set the language for the page. If we're coming from the listinfo cgi,
+ # we might have a 'language' key in the cgi data. That was an explicit
+ # preference to view the page in, so we should honor that here. If that's
+ # not available, use the list's default language.
+ language = cgidata.getvalue('language', mlist.preferred_language)
+ i18n.set_language(language)
+ doc.set_language(language)
+
+ if lenparts < 2:
+ user = cgidata.getvalue('email')
+ if not user:
+ # If we're coming from the listinfo page and we left the email
+ # address field blank, it's not an error. listinfo.html names the
+ # button UserOptions; we can use that as the descriminator.
+ if not cgidata.getvalue('UserOptions'):
+ doc.addError(_('No address given'))
+ loginpage(mlist, doc, None, cgidata)
+ print doc.Format()
+ return
+ else:
+ user = Utils.LCDomain(Utils.UnobscureEmail(SLASH.join(parts[1:])))
+
+ # Avoid cross-site scripting attacks
+ safeuser = Utils.websafe(user)
+ # Sanity check the user, but be careful about leaking membership
+ # information when we're using private rosters.
+ if not mlist.isMember(user) and mlist.private_roster == 0:
+ doc.addError(_('No such member: %(safeuser)s.'))
+ loginpage(mlist, doc, None, cgidata)
+ print doc.Format()
+ return
+
+ # Find the case preserved email address (the one the user subscribed with)
+ lcuser = user.lower()
+ try:
+ cpuser = mlist.getMemberCPAddress(lcuser)
+ except Errors.NotAMemberError:
+ # This happens if the user isn't a member but we've got private rosters
+ cpuser = None
+ if lcuser == cpuser:
+ cpuser = None
+
+ # And now we know the user making the request, so set things up to for the
+ # user's stored preferred language, overridden by any form settings for
+ # their new language preference.
+ userlang = cgidata.getvalue('language', mlist.getMemberLanguage(user))
+ doc.set_language(userlang)
+ i18n.set_language(userlang)
+
+ # See if this is VARHELP on topics.
+ varhelp = None
+ if cgidata.has_key('VARHELP'):
+ varhelp = cgidata['VARHELP'].value
+ elif os.environ.get('QUERY_STRING'):
+ # POST methods, even if their actions have a query string, don't get
+ # put into FieldStorage's keys :-(
+ qs = cgi.parse_qs(os.environ['QUERY_STRING']).get('VARHELP')
+ if qs and type(qs) == types.ListType:
+ varhelp = qs[0]
+ if varhelp:
+ topic_details(mlist, doc, user, cpuser, userlang, varhelp)
+ return
+
+ # Are we processing an unsubscription request from the login screen?
+ if cgidata.has_key('login-unsub'):
+ # Because they can't supply a password for unsubscribing, we'll need
+ # to do the confirmation dance.
+ if mlist.isMember(user):
+ mlist.ConfirmUnsubscription(user, userlang)
+ doc.addError(_('The confirmation email has been sent.'), tag='')
+ else:
+ # Not a member
+ if mlist.private_roster == 0:
+ # Public rosters
+ doc.addError(_('No such member: %(safeuser)s.'))
+ else:
+ syslog('mischief',
+ 'Unsub attempt of non-member w/ private rosters: %s',
+ user)
+ doc.addError(_('The confirmation email has been sent.'),
+ tag='')
+ loginpage(mlist, doc, user, cgidata)
+ print doc.Format()
+ return
+
+ # Are we processing a password reminder from the login screen?
+ if cgidata.has_key('login-remind'):
+ if mlist.isMember(user):
+ mlist.MailUserPassword(user)
+ doc.addError(
+ _('A reminder of your password has been emailed to you.'),
+ tag='')
+ else:
+ # Not a member
+ if mlist.private_roster == 0:
+ # Public rosters
+ doc.addError(_('No such member: %(safeuser)s.'))
+ else:
+ syslog('mischief',
+ 'Reminder attempt of non-member w/ private rosters: %s',
+ user)
+ doc.addError(
+ _('A reminder of your password has been emailed to you.'),
+ tag='')
+ loginpage(mlist, doc, user, cgidata)
+ print doc.Format()
+ return
+
+ # Authenticate, possibly using the password supplied in the login page
+ password = cgidata.getvalue('password', '').strip()
+
+ if not mlist.WebAuthenticate((mm_cfg.AuthUser,
+ mm_cfg.AuthListAdmin,
+ mm_cfg.AuthSiteAdmin),
+ password, user):
+ # Not authenticated, so throw up the login page again. If they tried
+ # to authenticate via cgi (instead of cookie), then print an error
+ # message.
+ if cgidata.has_key('password'):
+ doc.addError(_('Authentication failed.'))
+ # So as not to allow membership leakage, prompt for the email
+ # address and the password here.
+ if mlist.private_roster <> 0:
+ syslog('mischief',
+ 'Login failure with private rosters: %s',
+ user)
+ user = None
+ loginpage(mlist, doc, user, cgidata)
+ print doc.Format()
+ return
+
+ # From here on out, the user is okay to view and modify their membership
+ # options. The first set of checks does not require the list to be
+ # locked.
+
+ if cgidata.has_key('logout'):
+ print mlist.ZapCookie(mm_cfg.AuthUser, user)
+ loginpage(mlist, doc, user, cgidata)
+ print doc.Format()
+ return
+
+ if cgidata.has_key('emailpw'):
+ mlist.MailUserPassword(user)
+ options_page(
+ mlist, doc, user, cpuser, userlang,
+ _('A reminder of your password has been emailed to you.'))
+ print doc.Format()
+ return
+
+ if cgidata.has_key('othersubs'):
+ hostname = mlist.host_name
+ title = _('List subscriptions for %(user)s on %(hostname)s')
+ doc.SetTitle(title)
+ doc.AddItem(Header(2, title))
+ doc.AddItem(_('''Click on a link to visit your options page for the
+ requested mailing list.'''))
+
+ # Troll through all the mailing lists that match host_name and see if
+ # the user is a member. If so, add it to the list.
+ onlists = []
+ for gmlist in lists_of_member(mlist, user) + [mlist]:
+ url = gmlist.GetOptionsURL(user)
+ link = Link(url, gmlist.real_name)
+ onlists.append((gmlist.real_name, link))
+ onlists.sort()
+ items = OrderedList(*[link for name, link in onlists])
+ doc.AddItem(items)
+ print doc.Format()
+ return
+
+ if cgidata.has_key('change-of-address'):
+ # We could be changing the user's full name, email address, or both.
+ # Watch out for non-ASCII characters in the member's name.
+ membername = cgidata.getvalue('fullname')
+ # Canonicalize the member's name
+ membername = Utils.canonstr(membername, language)
+ newaddr = cgidata.getvalue('new-address')
+ confirmaddr = cgidata.getvalue('confirm-address')
+
+ oldname = mlist.getMemberName(user)
+ set_address = set_membername = 0
+
+ # See if the user wants to change their email address globally
+ globally = cgidata.getvalue('changeaddr-globally')
+
+ # We will change the member's name under the following conditions:
+ # - membername has a value
+ # - membername has no value, but they /used/ to have a membername
+ if membername and membername <> oldname:
+ # Setting it to a new value
+ set_membername = 1
+ if not membername and oldname:
+ # Unsetting it
+ set_membername = 1
+ # We will change the user's address if both newaddr and confirmaddr
+ # are non-blank, have the same value, and aren't the currently
+ # subscribed email address (when compared case-sensitively). If both
+ # are blank, but membername is set, we ignore it, otherwise we print
+ # an error.
+ msg = ''
+ if newaddr and confirmaddr:
+ if newaddr <> confirmaddr:
+ options_page(mlist, doc, user, cpuser, userlang,
+ _('Addresses did not match!'))
+ print doc.Format()
+ return
+ if newaddr == user:
+ options_page(mlist, doc, user, cpuser, userlang,
+ _('You are already using that email address'))
+ print doc.Format()
+ return
+ # If they're requesting to subscribe an address which is already a
+ # member, and they're /not/ doing it globally, then refuse.
+ # Otherwise, we'll agree to do it globally (with a warning
+ # message) and let ApprovedChangeMemberAddress() handle already a
+ # member issues.
+ if mlist.isMember(newaddr):
+ safenewaddr = Utils.websafe(newaddr)
+ if globally:
+ listname = mlist.real_name
+ msg += _("""\
+The new address you requested %(newaddr)s is already a member of the
+%(listname)s mailing list, however you have also requested a global change of
+address. Upon confirmation, any other mailing list containing the address
+%(user)s will be changed. """)
+ # Don't return
+ else:
+ options_page(
+ mlist, doc, user, cpuser, userlang,
+ _('The new address is already a member: %(newaddr)s'))
+ print doc.Format()
+ return
+ set_address = 1
+ elif (newaddr or confirmaddr) and not set_membername:
+ options_page(mlist, doc, user, cpuser, userlang,
+ _('Addresses may not be blank'))
+ print doc.Format()
+ return
+
+ # Standard sigterm handler.
+ def sigterm_handler(signum, frame, mlist=mlist):
+ mlist.Unlock()
+ sys.exit(0)
+
+ signal.signal(signal.SIGTERM, sigterm_handler)
+ if set_address:
+ # Register the pending change after the list is locked
+ msg += _('A confirmation message has been sent to %(newaddr)s. ')
+ mlist.Lock()
+ try:
+ try:
+ mlist.ChangeMemberAddress(user, newaddr, globally)
+ mlist.Save()
+ finally:
+ mlist.Unlock()
+ except Errors.MMBadEmailError:
+ msg = _('Bad email address provided')
+ except Errors.MMHostileAddress:
+ msg = _('Illegal email address provided')
+ except Errors.MMAlreadyAMember:
+ msg = _('%(newaddr)s is already a member of the list.')
+
+ if set_membername:
+ mlist.Lock()
+ try:
+ mlist.ChangeMemberName(user, membername, globally)
+ mlist.Save()
+ finally:
+ mlist.Unlock()
+ msg += _('Member name successfully changed. ')
+
+ options_page(mlist, doc, user, cpuser, userlang, msg)
+ print doc.Format()
+ return
+
+ if cgidata.has_key('changepw'):
+ newpw = cgidata.getvalue('newpw')
+ confirmpw = cgidata.getvalue('confpw')
+ if not newpw or not confirmpw:
+ options_page(mlist, doc, user, cpuser, userlang,
+ _('Passwords may not be blank'))
+ print doc.Format()
+ return
+ if newpw <> confirmpw:
+ options_page(mlist, doc, user, cpuser, userlang,
+ _('Passwords did not match!'))
+ print doc.Format()
+ return
+
+ # See if the user wants to change their passwords globally
+ mlists = [mlist]
+ if cgidata.getvalue('pw-globally'):
+ mlists.extend(lists_of_member(mlist, user))
+
+ for gmlist in mlists:
+ change_password(gmlist, user, newpw, confirmpw)
+
+ # Regenerate the cookie so a re-authorization isn't necessary
+ print mlist.MakeCookie(mm_cfg.AuthUser, user)
+ options_page(mlist, doc, user, cpuser, userlang,
+ _('Password successfully changed.'))
+ print doc.Format()
+ return
+
+ if cgidata.has_key('unsub'):
+ # Was the confirming check box turned on?
+ if not cgidata.getvalue('unsubconfirm'):
+ options_page(
+ mlist, doc, user, cpuser, userlang,
+ _('''You must confirm your unsubscription request by turning
+ on the checkbox below the <em>Unsubscribe</em> button. You
+ have not been unsubscribed!'''))
+ print doc.Format()
+ return
+
+ # Standard signal handler
+ def sigterm_handler(signum, frame, mlist=mlist):
+ mlist.Unlock()
+ sys.exit(0)
+
+ # Okay, zap them. Leave them sitting at the list's listinfo page. We
+ # must own the list lock, and we want to make sure the user (BAW: and
+ # list admin?) is informed of the removal.
+ signal.signal(signal.SIGTERM, sigterm_handler)
+ mlist.Lock()
+ needapproval = 0
+ try:
+ try:
+ mlist.DeleteMember(
+ user, 'via the member options page', userack=1)
+ except Errors.MMNeedApproval:
+ needapproval = 1
+ mlist.Save()
+ finally:
+ mlist.Unlock()
+ # Now throw up some results page, with appropriate links. We can't
+ # drop them back into their options page, because that's gone now!
+ fqdn_listname = mlist.GetListEmail()
+ owneraddr = mlist.GetOwnerEmail()
+ url = mlist.GetScriptURL('listinfo', absolute=1)
+
+ title = _('Unsubscription results')
+ doc.SetTitle(title)
+ doc.AddItem(Header(2, title))
+ if needapproval:
+ doc.AddItem(_("""Your unsubscription request has been received and
+ forwarded on to the list moderators for approval. You will
+ receive notification once the list moderators have made their
+ decision."""))
+ else:
+ doc.AddItem(_("""You have been successfully unsubscribed from the
+ mailing list %(fqdn_listname)s. If you were receiving digest
+ deliveries you may get one more digest. If you have any questions
+ about your unsubscription, please contact the list owners at
+ %(owneraddr)s."""))
+ doc.AddItem(mlist.GetMailmanFooter())
+ print doc.Format()
+ return
+
+ if cgidata.has_key('options-submit'):
+ # Digest action flags
+ digestwarn = 0
+ cantdigest = 0
+ mustdigest = 0
+
+ newvals = []
+ # First figure out which options have changed. The item names come
+ # from FormatOptionButton() in HTMLFormatter.py
+ for item, flag in (('digest', mm_cfg.Digests),
+ ('mime', mm_cfg.DisableMime),
+ ('dontreceive', mm_cfg.DontReceiveOwnPosts),
+ ('ackposts', mm_cfg.AcknowledgePosts),
+ ('disablemail', mm_cfg.DisableDelivery),
+ ('conceal', mm_cfg.ConcealSubscription),
+ ('remind', mm_cfg.SuppressPasswordReminder),
+ ('rcvtopic', mm_cfg.ReceiveNonmatchingTopics),
+ ('nodupes', mm_cfg.DontReceiveDuplicates),
+ ):
+ try:
+ newval = int(cgidata.getvalue(item))
+ except (TypeError, ValueError):
+ newval = None
+
+ # Skip this option if there was a problem or it wasn't changed.
+ # Note that delivery status is handled separate from the options
+ # flags.
+ if newval is None:
+ continue
+ elif flag == mm_cfg.DisableDelivery:
+ status = mlist.getDeliveryStatus(user)
+ # Here, newval == 0 means enable, newval == 1 means disable
+ if not newval and status <> MemberAdaptor.ENABLED:
+ newval = MemberAdaptor.ENABLED
+ elif newval and status == MemberAdaptor.ENABLED:
+ newval = MemberAdaptor.BYUSER
+ else:
+ continue
+ elif newval == mlist.getMemberOption(user, flag):
+ continue
+ # Should we warn about one more digest?
+ if flag == mm_cfg.Digests and \
+ newval == 0 and mlist.getMemberOption(user, flag):
+ digestwarn = 1
+
+ newvals.append((flag, newval))
+
+ # The user language is handled a little differently
+ if userlang not in mlist.GetAvailableLanguages():
+ newvals.append((SETLANGUAGE, mlist.preferred_language))
+ else:
+ newvals.append((SETLANGUAGE, userlang))
+
+ # Process user selected topics, but don't make the changes to the
+ # MailList object; we must do that down below when the list is
+ # locked.
+ topicnames = cgidata.getvalue('usertopic')
+ if topicnames:
+ # Some topics were selected. topicnames can actually be a string
+ # or a list of strings depending on whether more than one topic
+ # was selected or not.
+ if not isinstance(topicnames, ListType):
+ # Assume it was a bare string, so listify it
+ topicnames = [topicnames]
+ # unquote the topic names
+ topicnames = [urllib.unquote_plus(n) for n in topicnames]
+
+ # The standard sigterm handler (see above)
+ def sigterm_handler(signum, frame, mlist=mlist):
+ mlist.Unlock()
+ sys.exit(0)
+
+ # Now, lock the list and perform the changes
+ mlist.Lock()
+ try:
+ signal.signal(signal.SIGTERM, sigterm_handler)
+ # `values' is a tuple of flags and the web values
+ for flag, newval in newvals:
+ # Handle language settings differently
+ if flag == SETLANGUAGE:
+ mlist.setMemberLanguage(user, newval)
+ # Handle delivery status separately
+ elif flag == mm_cfg.DisableDelivery:
+ mlist.setDeliveryStatus(user, newval)
+ else:
+ try:
+ mlist.setMemberOption(user, flag, newval)
+ except Errors.CantDigestError:
+ cantdigest = 1
+ except Errors.MustDigestError:
+ mustdigest = 1
+ # Set the topics information.
+ mlist.setMemberTopics(user, topicnames)
+ mlist.Save()
+ finally:
+ mlist.Unlock()
+
+ # A bag of attributes for the global options
+ class Global:
+ enable = None
+ remind = None
+ nodupes = None
+ mime = None
+ def __nonzero__(self):
+ return len(self.__dict__.keys()) > 0
+
+ globalopts = Global()
+
+ # The enable/disable option and the password remind option may have
+ # their global flags sets.
+ if cgidata.getvalue('deliver-globally'):
+ # Yes, this is inefficient, but the list is so small it shouldn't
+ # make much of a difference.
+ for flag, newval in newvals:
+ if flag == mm_cfg.DisableDelivery:
+ globalopts.enable = newval
+ break
+
+ if cgidata.getvalue('remind-globally'):
+ for flag, newval in newvals:
+ if flag == mm_cfg.SuppressPasswordReminder:
+ globalopts.remind = newval
+ break
+
+ if cgidata.getvalue('nodupes-globally'):
+ for flag, newval in newvals:
+ if flag == mm_cfg.DontReceiveDuplicates:
+ globalopts.nodupes = newval
+ break
+
+ if cgidata.getvalue('mime-globally'):
+ for flag, newval in newvals:
+ if flag == mm_cfg.DisableMime:
+ globalopts.mime = newval
+ break
+
+ if globalopts:
+ for gmlist in lists_of_member(mlist, user):
+ global_options(gmlist, user, globalopts)
+
+ # Now print the results
+ if cantdigest:
+ msg = _('''The list administrator has disabled digest delivery for
+ this list, so your delivery option has not been set. However your
+ other options have been set successfully.''')
+ elif mustdigest:
+ msg = _('''The list administrator has disabled non-digest delivery
+ for this list, so your delivery option has not been set. However
+ your other options have been set successfully.''')
+ else:
+ msg = _('You have successfully set your options.')
+
+ if digestwarn:
+ msg += _('You may get one last digest.')
+
+ options_page(mlist, doc, user, cpuser, userlang, msg)
+ print doc.Format()
+ return
+
+ options_page(mlist, doc, user, cpuser, userlang)
+ print doc.Format()
+
+
+
+def options_page(mlist, doc, user, cpuser, userlang, message=''):
+ # The bulk of the document will come from the options.html template, which
+ # includes it's own html armor (head tags, etc.). Suppress the head that
+ # Document() derived pages get automatically.
+ doc.suppress_head = 1
+
+ if mlist.obscure_addresses:
+ presentable_user = Utils.ObscureEmail(user, for_text=1)
+ if cpuser is not None:
+ cpuser = Utils.ObscureEmail(cpuser, for_text=1)
+ else:
+ presentable_user = user
+
+ fullname = Utils.uncanonstr(mlist.getMemberName(user), userlang)
+ if fullname:
+ presentable_user += ', %s' % fullname
+
+ # Do replacements
+ replacements = mlist.GetStandardReplacements(userlang)
+ replacements['<mm-results>'] = Bold(FontSize('+1', message)).Format()
+ replacements['<mm-digest-radio-button>'] = mlist.FormatOptionButton(
+ mm_cfg.Digests, 1, user)
+ replacements['<mm-undigest-radio-button>'] = mlist.FormatOptionButton(
+ mm_cfg.Digests, 0, user)
+ replacements['<mm-plain-digests-button>'] = mlist.FormatOptionButton(
+ mm_cfg.DisableMime, 1, user)
+ replacements['<mm-mime-digests-button>'] = mlist.FormatOptionButton(
+ mm_cfg.DisableMime, 0, user)
+ replacements['<mm-global-mime-button>'] = (
+ CheckBox('mime-globally', 1, checked=0).Format())
+ replacements['<mm-delivery-enable-button>'] = mlist.FormatOptionButton(
+ mm_cfg.DisableDelivery, 0, user)
+ replacements['<mm-delivery-disable-button>'] = mlist.FormatOptionButton(
+ mm_cfg.DisableDelivery, 1, user)
+ replacements['<mm-disabled-notice>'] = mlist.FormatDisabledNotice(user)
+ replacements['<mm-dont-ack-posts-button>'] = mlist.FormatOptionButton(
+ mm_cfg.AcknowledgePosts, 0, user)
+ replacements['<mm-ack-posts-button>'] = mlist.FormatOptionButton(
+ mm_cfg.AcknowledgePosts, 1, user)
+ replacements['<mm-receive-own-mail-button>'] = mlist.FormatOptionButton(
+ mm_cfg.DontReceiveOwnPosts, 0, user)
+ replacements['<mm-dont-receive-own-mail-button>'] = (
+ mlist.FormatOptionButton(mm_cfg.DontReceiveOwnPosts, 1, user))
+ replacements['<mm-dont-get-password-reminder-button>'] = (
+ mlist.FormatOptionButton(mm_cfg.SuppressPasswordReminder, 1, user))
+ replacements['<mm-get-password-reminder-button>'] = (
+ mlist.FormatOptionButton(mm_cfg.SuppressPasswordReminder, 0, user))
+ replacements['<mm-public-subscription-button>'] = (
+ mlist.FormatOptionButton(mm_cfg.ConcealSubscription, 0, user))
+ replacements['<mm-hide-subscription-button>'] = mlist.FormatOptionButton(
+ mm_cfg.ConcealSubscription, 1, user)
+ replacements['<mm-dont-receive-duplicates-button>'] = (
+ mlist.FormatOptionButton(mm_cfg.DontReceiveDuplicates, 1, user))
+ replacements['<mm-receive-duplicates-button>'] = (
+ mlist.FormatOptionButton(mm_cfg.DontReceiveDuplicates, 0, user))
+ replacements['<mm-unsubscribe-button>'] = (
+ mlist.FormatButton('unsub', _('Unsubscribe')) + '<br>' +
+ CheckBox('unsubconfirm', 1, checked=0).Format() +
+ _('<em>Yes, I really want to unsubscribe</em>'))
+ replacements['<mm-new-pass-box>'] = mlist.FormatSecureBox('newpw')
+ replacements['<mm-confirm-pass-box>'] = mlist.FormatSecureBox('confpw')
+ replacements['<mm-change-pass-button>'] = (
+ mlist.FormatButton('changepw', _("Change My Password")))
+ replacements['<mm-other-subscriptions-submit>'] = (
+ mlist.FormatButton('othersubs',
+ _('List my other subscriptions')))
+ replacements['<mm-form-start>'] = (
+ mlist.FormatFormStart('options', user))
+ replacements['<mm-user>'] = user
+ replacements['<mm-presentable-user>'] = presentable_user
+ replacements['<mm-email-my-pw>'] = mlist.FormatButton(
+ 'emailpw', (_('Email My Password To Me')))
+ replacements['<mm-umbrella-notice>'] = (
+ mlist.FormatUmbrellaNotice(user, _("password")))
+ replacements['<mm-logout-button>'] = (
+ mlist.FormatButton('logout', _('Log out')))
+ replacements['<mm-options-submit-button>'] = mlist.FormatButton(
+ 'options-submit', _('Submit My Changes'))
+ replacements['<mm-global-pw-changes-button>'] = (
+ CheckBox('pw-globally', 1, checked=0).Format())
+ replacements['<mm-global-deliver-button>'] = (
+ CheckBox('deliver-globally', 1, checked=0).Format())
+ replacements['<mm-global-remind-button>'] = (
+ CheckBox('remind-globally', 1, checked=0).Format())
+ replacements['<mm-global-nodupes-button>'] = (
+ CheckBox('nodupes-globally', 1, checked=0).Format())
+
+ days = int(mm_cfg.PENDING_REQUEST_LIFE / mm_cfg.days(1))
+ if days > 1:
+ units = _('days')
+ else:
+ units = _('day')
+ replacements['<mm-pending-days>'] = _('%(days)d %(units)s')
+
+ replacements['<mm-new-address-box>'] = mlist.FormatBox('new-address')
+ replacements['<mm-confirm-address-box>'] = mlist.FormatBox(
+ 'confirm-address')
+ replacements['<mm-change-address-button>'] = mlist.FormatButton(
+ 'change-of-address', _('Change My Address and Name'))
+ replacements['<mm-global-change-of-address>'] = CheckBox(
+ 'changeaddr-globally', 1, checked=0).Format()
+ replacements['<mm-fullname-box>'] = mlist.FormatBox(
+ 'fullname', value=fullname)
+
+ # Create the topics radios. BAW: what if the list admin deletes a topic,
+ # but the user still wants to get that topic message?
+ usertopics = mlist.getMemberTopics(user)
+ if mlist.topics:
+ table = Table(border="0")
+ for name, pattern, description, emptyflag in mlist.topics:
+ quotedname = urllib.quote_plus(name)
+ details = Link(mlist.GetScriptURL('options') +
+ '/%s/?VARHELP=%s' % (user, quotedname),
+ ' (Details)')
+ if name in usertopics:
+ checked = 1
+ else:
+ checked = 0
+ table.AddRow([CheckBox('usertopic', quotedname, checked=checked),
+ name + details.Format()])
+ topicsfield = table.Format()
+ else:
+ topicsfield = _('<em>No topics defined</em>')
+ replacements['<mm-topics>'] = topicsfield
+ replacements['<mm-suppress-nonmatching-topics>'] = (
+ mlist.FormatOptionButton(mm_cfg.ReceiveNonmatchingTopics, 0, user))
+ replacements['<mm-receive-nonmatching-topics>'] = (
+ mlist.FormatOptionButton(mm_cfg.ReceiveNonmatchingTopics, 1, user))
+
+ if cpuser is not None:
+ replacements['<mm-case-preserved-user>'] = _('''
+You are subscribed to this list with the case-preserved address
+<em>%(cpuser)s</em>.''')
+ else:
+ replacements['<mm-case-preserved-user>'] = ''
+
+ doc.AddItem(mlist.ParseTags('options.html', replacements, userlang))
+
+
+
+def loginpage(mlist, doc, user, cgidata):
+ realname = mlist.real_name
+ actionurl = mlist.GetScriptURL('options')
+ if user is None:
+ title = _('%(realname)s list: member options login page')
+ extra = _('email address and ')
+ else:
+ title = _('%(realname)s list: member options for user %(user)s')
+ obuser = Utils.ObscureEmail(user)
+ extra = ''
+ # Set up the title
+ doc.SetTitle(title)
+ # We use a subtable here so we can put a language selection box in
+ lang = cgidata.getvalue('language', mlist.preferred_language)
+ table = Table(width='100%', border=0, cellspacing=4, cellpadding=5)
+ # If only one language is enabled for this mailing list, omit the choice
+ # buttons.
+ table.AddRow([Center(Header(2, title))])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0,
+ bgcolor=mm_cfg.WEB_HEADER_COLOR)
+ if len(mlist.GetAvailableLanguages()) > 1:
+ langform = Form(actionurl)
+ langform.AddItem(SubmitButton('displang-button',
+ _('View this page in')))
+ langform.AddItem(mlist.GetLangSelectBox(lang))
+ if user:
+ langform.AddItem(Hidden('email', user))
+ table.AddRow([Center(langform)])
+ doc.AddItem(table)
+ # Preamble
+ # Set up the login page
+ form = Form(actionurl)
+ table = Table(width='100%', border=0, cellspacing=4, cellpadding=5)
+ table.AddRow([_("""In order to change your membership option, you must
+ first log in by giving your %(extra)smembership password in the section
+ below. If you don't remember your membership password, you can have it
+ emailed to you by clicking on the button below. If you just want to
+ unsubscribe from this list, click on the <em>Unsubscribe</em> button and a
+ confirmation message will be sent to you.
+
+ <p><strong><em>Important:</em></strong> From this point on, you must have
+ cookies enabled in your browser, otherwise none of your changes will take
+ effect.
+ """)])
+ # Password and login button
+ ptable = Table(width='50%', border=0, cellspacing=4, cellpadding=5)
+ if user is None:
+ ptable.AddRow([Label(_('Email address:')),
+ TextBox('email', size=20)])
+ else:
+ ptable.AddRow([Hidden('email', user)])
+ ptable.AddRow([Label(_('Password:')),
+ PasswordBox('password', size=20)])
+ ptable.AddRow([Center(SubmitButton('login', _('Log in')))])
+ ptable.AddCellInfo(ptable.GetCurrentRowIndex(), 0, colspan=2)
+ table.AddRow([Center(ptable)])
+ # Unsubscribe section
+ table.AddRow([Center(Header(2, _('Unsubscribe')))])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0,
+ bgcolor=mm_cfg.WEB_HEADER_COLOR)
+
+ table.AddRow([_("""By clicking on the <em>Unsubscribe</em> button, a
+ confirmation message will be emailed to you. This message will have a
+ link that you should click on to complete the removal process (you can
+ also confirm by email; see the instructions in the confirmation
+ message).""")])
+
+ table.AddRow([Center(SubmitButton('login-unsub', _('Unsubscribe')))])
+ # Password reminder section
+ table.AddRow([Center(Header(2, _('Password reminder')))])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0,
+ bgcolor=mm_cfg.WEB_HEADER_COLOR)
+
+ table.AddRow([_("""By clicking on the <em>Remind</em> button, your
+ password will be emailed to you.""")])
+
+ table.AddRow([Center(SubmitButton('login-remind', _('Remind')))])
+ # Finish up glomming together the login page
+ form.AddItem(table)
+ doc.AddItem(form)
+ doc.AddItem(mlist.GetMailmanFooter())
+
+
+
+def lists_of_member(mlist, user):
+ hostname = mlist.host_name
+ onlists = []
+ for listname in Utils.list_names():
+ # The current list will always handle things in the mainline
+ if listname == mlist.internal_name():
+ continue
+ glist = MailList.MailList(listname, lock=0)
+ if glist.host_name <> hostname:
+ continue
+ if not glist.isMember(user):
+ continue
+ onlists.append(glist)
+ return onlists
+
+
+
+def change_password(mlist, user, newpw, confirmpw):
+ # This operation requires the list lock, so let's set up the signal
+ # handling so the list lock will get released when the user hits the
+ # browser stop button.
+ def sigterm_handler(signum, frame, mlist=mlist):
+ # Make sure the list gets unlocked...
+ mlist.Unlock()
+ # ...and ensure we exit, otherwise race conditions could cause us to
+ # enter MailList.Save() while we're in the unlocked state, and that
+ # could be bad!
+ sys.exit(0)
+
+ # Must own the list lock!
+ mlist.Lock()
+ try:
+ # Install the emergency shutdown signal handler
+ signal.signal(signal.SIGTERM, sigterm_handler)
+ # change the user's password. The password must already have been
+ # compared to the confirmpw and otherwise been vetted for
+ # acceptability.
+ mlist.setMemberPassword(user, newpw)
+ mlist.Save()
+ finally:
+ mlist.Unlock()
+
+
+
+def global_options(mlist, user, globalopts):
+ # Is there anything to do?
+ for attr in dir(globalopts):
+ if attr.startswith('_'):
+ continue
+ if getattr(globalopts, attr) is not None:
+ break
+ else:
+ return
+
+ def sigterm_handler(signum, frame, mlist=mlist):
+ # Make sure the list gets unlocked...
+ mlist.Unlock()
+ # ...and ensure we exit, otherwise race conditions could cause us to
+ # enter MailList.Save() while we're in the unlocked state, and that
+ # could be bad!
+ sys.exit(0)
+
+ # Must own the list lock!
+ mlist.Lock()
+ try:
+ # Install the emergency shutdown signal handler
+ signal.signal(signal.SIGTERM, sigterm_handler)
+
+ if globalopts.enable is not None:
+ mlist.setDeliveryStatus(user, globalopts.enable)
+
+ if globalopts.remind is not None:
+ mlist.setMemberOption(user, mm_cfg.SuppressPasswordReminder,
+ globalopts.remind)
+
+ if globalopts.nodupes is not None:
+ mlist.setMemberOption(user, mm_cfg.DontReceiveDuplicates,
+ globalopts.nodupes)
+
+ if globalopts.mime is not None:
+ mlist.setMemberOption(user, mm_cfg.DisableMime, globalopts.mime)
+
+ mlist.Save()
+ finally:
+ mlist.Unlock()
+
+
+
+def topic_details(mlist, doc, user, cpuser, userlang, varhelp):
+ # Find out which topic the user wants to get details of
+ reflist = varhelp.split('/')
+ name = None
+ topicname = _('<missing>')
+ if len(reflist) == 1:
+ topicname = urllib.unquote_plus(reflist[0])
+ for name, pattern, description, emptyflag in mlist.topics:
+ if name == topicname:
+ break
+ else:
+ name = None
+
+ if not name:
+ options_page(mlist, doc, user, cpuser, userlang,
+ _('Requested topic is not valid: %(topicname)s'))
+ print doc.Format()
+ return
+
+ table = Table(border=3, width='100%')
+ table.AddRow([Center(Bold(_('Topic filter details')))])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0, colspan=2,
+ bgcolor=mm_cfg.WEB_SUBHEADER_COLOR)
+ table.AddRow([Bold(Label(_('Name:'))),
+ Utils.websafe(name)])
+ table.AddRow([Bold(Label(_('Pattern (as regexp):'))),
+ '<pre>' + Utils.websafe(pattern) + '</pre>'])
+ table.AddRow([Bold(Label(_('Description:'))),
+ Utils.websafe(description)])
+ # Make colors look nice
+ for row in range(1, 4):
+ table.AddCellInfo(row, 0, bgcolor=mm_cfg.WEB_ADMINITEM_COLOR)
+
+ options_page(mlist, doc, user, cpuser, userlang, table.Format())
+ print doc.Format()
diff --git a/Mailman/Cgi/private.py b/Mailman/Cgi/private.py
new file mode 100644
index 00000000..6b7af70a
--- /dev/null
+++ b/Mailman/Cgi/private.py
@@ -0,0 +1,162 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Provide a password-interface wrapper around private archives.
+"""
+
+import sys
+import os
+import cgi
+
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman import MailList
+from Mailman import Errors
+from Mailman import i18n
+from Mailman.htmlformat import *
+from Mailman.Logging.Syslog import syslog
+
+# Set up i18n. Until we know which list is being requested, we use the
+# server's default.
+_ = i18n._
+i18n.set_language(mm_cfg.DEFAULT_SERVER_LANGUAGE)
+
+
+
+def true_path(path):
+ "Ensure that the path is safe by removing .."
+ path = path.replace('../', '')
+ path = path.replace('./', '')
+ return path[1:]
+
+
+def content_type(path):
+ if path[-3:] == '.gz':
+ path = path[:-3]
+ if path[-4:] == '.txt':
+ return 'text/plain'
+ return 'text/html'
+
+
+
+def main():
+ doc = Document()
+ doc.set_language(mm_cfg.DEFAULT_SERVER_LANGUAGE)
+
+ parts = Utils.GetPathPieces()
+ if not parts:
+ doc.SetTitle(_("Private Archive Error"))
+ doc.AddItem(Header(3, _("You must specify a list.")))
+ print doc.Format()
+ return
+
+ path = os.environ.get('PATH_INFO')
+ # BAW: This needs to be converted to the Site module abstraction
+ true_filename = os.path.join(
+ mm_cfg.PRIVATE_ARCHIVE_FILE_DIR,
+ true_path(path))
+
+ listname = parts[0].lower()
+ mboxfile = ''
+ if len(parts) > 1:
+ mboxfile = parts[1]
+
+ # See if it's the list's mbox file is being requested
+ if listname.endswith('.mbox') and mboxfile.endswith('.mbox') and \
+ listname[:-5] == mboxfile[:-5]:
+ listname = listname[:-5]
+ else:
+ mboxfile = ''
+
+ # If it's a directory, we have to append index.html in this script. We
+ # must also check for a gzipped file, because the text archives are
+ # usually stored in compressed form.
+ if os.path.isdir(true_filename):
+ true_filename = true_filename + '/index.html'
+ if not os.path.exists(true_filename) and \
+ os.path.exists(true_filename + '.gz'):
+ true_filename = true_filename + '.gz'
+
+ try:
+ mlist = MailList.MailList(listname, lock=0)
+ except Errors.MMListError, e:
+ # Avoid cross-site scripting attacks
+ safelistname = Utils.websafe(listname)
+ msg = _('No such list <em>%(safelistname)s</em>')
+ doc.SetTitle(_("Private Archive Error - %(msg)s"))
+ doc.AddItem(Header(2, msg))
+ print doc.Format()
+ syslog('error', 'No such list "%s": %s\n', listname, e)
+ return
+
+ i18n.set_language(mlist.preferred_language)
+ doc.set_language(mlist.preferred_language)
+
+ cgidata = cgi.FieldStorage()
+ username = cgidata.getvalue('username', '')
+ password = cgidata.getvalue('password', '')
+
+ is_auth = 0
+ realname = mlist.real_name
+ message = ''
+
+ if not mlist.WebAuthenticate((mm_cfg.AuthUser,
+ mm_cfg.AuthListModerator,
+ mm_cfg.AuthListAdmin,
+ mm_cfg.AuthSiteAdmin),
+ password, username):
+ if cgidata.has_key('submit'):
+ # This is a re-authorization attempt
+ message = Bold(FontSize('+1', _('Authorization failed.'))).Format()
+ # Output the password form
+ charset = Utils.GetCharSet(mlist.preferred_language)
+ print 'Content-type: text/html; charset=' + charset + '\n\n'
+ while path and path[0] == '/':
+ path=path[1:] # Remove leading /'s
+ print Utils.maketext(
+ 'private.html',
+ {'action' : mlist.GetScriptURL('private', absolute=1),
+ 'realname': mlist.real_name,
+ 'message' : message,
+ }, mlist=mlist)
+ return
+
+ lang = mlist.getMemberLanguage(username)
+ i18n.set_language(lang)
+ doc.set_language(lang)
+
+ # Authorization confirmed... output the desired file
+ try:
+ ctype = content_type(path)
+ if mboxfile:
+ f = open(os.path.join(mlist.archive_dir() + '.mbox',
+ mlist.internal_name() + '.mbox'))
+ ctype = 'text/plain'
+ elif true_filename[-3:] == '.gz':
+ import gzip
+ f = gzip.open(true_filename, 'r')
+ else:
+ f = open(true_filename, 'r')
+ except IOError:
+ msg = _('Private archive file not found')
+ doc.SetTitle(msg)
+ doc.AddItem(Header(2, msg))
+ print doc.Format()
+ syslog('error', 'Private archive file not found: %s', true_filename)
+ else:
+ print 'Content-type: %s\n' % ctype
+ sys.stdout.write(f.read())
+ f.close()
diff --git a/Mailman/Cgi/rmlist.py b/Mailman/Cgi/rmlist.py
new file mode 100644
index 00000000..fab57edd
--- /dev/null
+++ b/Mailman/Cgi/rmlist.py
@@ -0,0 +1,242 @@
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Remove/delete mailing lists through the web."""
+
+import os
+import cgi
+import sys
+import errno
+import shutil
+
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman import MailList
+from Mailman import Errors
+from Mailman import i18n
+from Mailman.htmlformat import *
+from Mailman.Logging.Syslog import syslog
+
+# Set up i18n
+_ = i18n._
+i18n.set_language(mm_cfg.DEFAULT_SERVER_LANGUAGE)
+
+
+
+def main():
+ doc = Document()
+ doc.set_language(mm_cfg.DEFAULT_SERVER_LANGUAGE)
+
+ cgidata = cgi.FieldStorage()
+ parts = Utils.GetPathPieces()
+
+ if not parts:
+ # Bad URL specification
+ title = _('Bad URL specification')
+ doc.SetTitle(title)
+ doc.AddItem(
+ Header(3, Bold(FontAttr(title, color='#ff0000', size='+2'))))
+ doc.AddItem('<hr>')
+ doc.AddItem(MailmanLogo())
+ print doc.Format()
+ syslog('error', 'Bad URL specification: %s', parts)
+ return
+
+ listname = parts[0].lower()
+ try:
+ mlist = MailList.MailList(listname, lock=0)
+ except Errors.MMListError, e:
+ # Avoid cross-site scripting attacks
+ safelistname = Utils.websafe(listname)
+ title = _('No such list <em>%(safelistname)s</em>')
+ doc.SetTitle(title)
+ doc.AddItem(
+ Header(3,
+ Bold(FontAttr(title, color='#ff0000', size='+2'))))
+ doc.AddItem('<hr>')
+ doc.AddItem(MailmanLogo())
+ print doc.Format()
+ syslog('error', 'No such list "%s": %s\n', listname, e)
+ return
+
+ # Now that we have a valid mailing list, set the language
+ i18n.set_language(mlist.preferred_language)
+ doc.set_language(mlist.preferred_language)
+
+ # Be sure the list owners are not sneaking around!
+ if not mm_cfg.OWNERS_CAN_DELETE_THEIR_OWN_LISTS:
+ title = _("You're being a sneaky list owner!")
+ doc.SetTitle(title)
+ doc.AddItem(
+ Header(3, Bold(FontAttr(title, color='#ff0000', size='+2'))))
+ doc.AddItem(mlist.GetMailmanFooter())
+ print doc.Format()
+ syslog('mischief', 'Attempt to sneakily delete a list: %s', listname)
+ return
+
+ if cgidata.has_key('doit'):
+ process_request(doc, cgidata, mlist)
+ print doc.Format()
+ return
+
+ request_deletion(doc, mlist)
+ # Always add the footer and print the document
+ doc.AddItem(mlist.GetMailmanFooter())
+ print doc.Format()
+
+
+
+def process_request(doc, cgidata, mlist):
+ password = cgidata.getvalue('password', '').strip()
+ try:
+ delarchives = int(cgidata.getvalue('delarchives', '0'))
+ except ValueError:
+ delarchives = 0
+
+ # Removing a list is limited to the list-creator (a.k.a. list-destroyer),
+ # the list-admin, or the site-admin. Don't use WebAuthenticate here
+ # because we want to be sure the actual typed password is valid, not some
+ # password sitting in a cookie.
+ if mlist.Authenticate((mm_cfg.AuthCreator,
+ mm_cfg.AuthListAdmin,
+ mm_cfg.AuthSiteAdmin),
+ password) == mm_cfg.UnAuthorized:
+ request_deletion(
+ doc, mlist,
+ _('You are not authorized to delete this mailing list'))
+ return
+
+ # Do the MTA-specific list deletion tasks
+ if mm_cfg.MTA:
+ modname = 'Mailman.MTA.' + mm_cfg.MTA
+ __import__(modname)
+ sys.modules[modname].remove(mlist, cgi=1)
+
+ REMOVABLES = ['lists/%s']
+
+ if delarchives:
+ REMOVABLES.extend(['archives/private/%s',
+ 'archives/private/%s.mbox',
+ 'archives/public/%s',
+ 'archives/public/%s.mbox',
+ ])
+
+ problems = 0
+ listname = mlist.internal_name()
+ for dirtmpl in REMOVABLES:
+ dir = os.path.join(mm_cfg.VAR_PREFIX, dirtmpl % listname)
+ if os.path.islink(dir):
+ try:
+ os.unlink(dir)
+ except OSError, e:
+ if e.errno not in (errno.EACCES, errno.EPERM): raise
+ problems += 1
+ syslog('error',
+ 'link %s not deleted due to permission problems',
+ dir)
+ elif os.path.isdir(dir):
+ try:
+ shutil.rmtree(dir)
+ except OSError, e:
+ if e.errno not in (errno.EACCES, errno.EPERM): raise
+ problems += 1
+ syslog('error',
+ 'directory %s not deleted due to permission problems',
+ dir)
+
+ title = _('Mailing list deletion results')
+ doc.SetTitle(title)
+ table = Table(border=0, width='100%')
+ table.AddRow([Center(Bold(FontAttr(title, size='+1')))])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0,
+ bgcolor=mm_cfg.WEB_HEADER_COLOR)
+ if not problems:
+ table.AddRow([_('''You have successfully deleted the mailing list
+ <b>%(listname)s</b>.''')])
+ else:
+ sitelist = Utils.get_site_email(mlist.host_name)
+ table.AddRow([_('''There were some problems deleting the mailing list
+ <b>%(listname)s</b>. Contact your site administrator at %(sitelist)s
+ for details.''')])
+ doc.AddItem(table)
+ doc.AddItem('<hr>')
+ doc.AddItem(_('Return to the ') +
+ Link(Utils.ScriptURL('listinfo'),
+ _('general list overview')).Format())
+ doc.AddItem(_('<br>Return to the ') +
+ Link(Utils.ScriptURL('admin'),
+ _('administrative list overview')).Format())
+ doc.AddItem(MailmanLogo())
+
+
+
+def request_deletion(doc, mlist, errmsg=None):
+ realname = mlist.real_name
+ title = _('Permanently remove mailing list <em>%(realname)s</em>')
+ doc.SetTitle(title)
+
+ table = Table(border=0, width='100%')
+ table.AddRow([Center(Bold(FontAttr(title, size='+1')))])
+ table.AddCellInfo(table.GetCurrentRowIndex(), 0,
+ bgcolor=mm_cfg.WEB_HEADER_COLOR)
+
+ # Add any error message
+ if errmsg:
+ table.AddRow([Header(3, Bold(
+ FontAttr(_('Error: '), color='#ff0000', size='+2').Format() +
+ Italic(errmsg).Format()))])
+
+ table.AddRow([_("""This page allows you as the list owner, to permanent
+ remove this mailing list from the system. <strong>This action is not
+ undoable</strong> so you should undertake it only if you are absolutely
+ sure this mailing list has served its purpose and is no longer necessary.
+
+ <p>Note that no warning will be sent to your list members and after this
+ action, any subsequent messages sent to the mailing list, or any of its
+ administrative addreses will bounce.
+
+ <p>You also have the option of removing the archives for this mailing list
+ at this time. It is almost always recommended that you do
+ <strong>not</strong> remove the archives, since they serve as the
+ historical record of your mailing list.
+
+ <p>For your safety, you will be asked to reconfirm the list password.
+ """)])
+ GREY = mm_cfg.WEB_ADMINITEM_COLOR
+ form = Form(mlist.GetScriptURL('rmlist'))
+ ftable = Table(border=0, cols='2', width='100%',
+ cellspacing=3, cellpadding=4)
+
+ ftable.AddRow([Label(_('List password:')), PasswordBox('password')])
+ ftable.AddCellInfo(ftable.GetCurrentRowIndex(), 0, bgcolor=GREY)
+ ftable.AddCellInfo(ftable.GetCurrentRowIndex(), 1, bgcolor=GREY)
+
+ ftable.AddRow([Label(_('Also delete archives?')),
+ RadioButtonArray('delarchives', (_('No'), _('Yes')),
+ checked=0, values=(0, 1))])
+ ftable.AddCellInfo(ftable.GetCurrentRowIndex(), 0, bgcolor=GREY)
+ ftable.AddCellInfo(ftable.GetCurrentRowIndex(), 1, bgcolor=GREY)
+
+ ftable.AddRow([Center(Link(
+ mlist.GetScriptURL('admin'),
+ _('<b>Cancel</b> and return to list administration')))])
+ ftable.AddCellInfo(ftable.GetCurrentRowIndex(), 0, colspan=2)
+
+ ftable.AddRow([Center(SubmitButton('doit', _('Delete this list')))])
+ ftable.AddCellInfo(ftable.GetCurrentRowIndex(), 0, colspan=2)
+ form.AddItem(ftable)
+ table.AddRow([form])
+ doc.AddItem(table)
diff --git a/Mailman/Cgi/roster.py b/Mailman/Cgi/roster.py
new file mode 100644
index 00000000..71c06240
--- /dev/null
+++ b/Mailman/Cgi/roster.py
@@ -0,0 +1,129 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Produce subscriber roster, using listinfo form data, roster.html template.
+
+Takes listname in PATH_INFO.
+"""
+
+
+# We don't need to lock in this script, because we're never going to change
+# data.
+
+import sys
+import os
+import cgi
+import urllib
+
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman import MailList
+from Mailman import Errors
+from Mailman import i18n
+from Mailman.htmlformat import *
+from Mailman.Logging.Syslog import syslog
+
+# Set up i18n
+_ = i18n._
+i18n.set_language(mm_cfg.DEFAULT_SERVER_LANGUAGE)
+
+
+
+def main():
+ parts = Utils.GetPathPieces()
+ if not parts:
+ error_page(_('Invalid options to CGI script'))
+ return
+
+ listname = parts[0].lower()
+ try:
+ mlist = MailList.MailList(listname, lock=0)
+ except Errors.MMListError, e:
+ # Avoid cross-site scripting attacks
+ safelistname = Utils.websafe(listname)
+ error_page(_('No such list <em>%(safelistname)s</em>'))
+ syslog('error', 'roster: no such list "%s": %s', listname, e)
+ return
+
+ cgidata = cgi.FieldStorage()
+
+ # messages in form should go in selected language (if any...)
+ if cgidata.has_key('language'):
+ lang = cgidata['language'].value
+ else:
+ lang = mlist.preferred_language
+
+ i18n.set_language(lang)
+
+ # Perform authentication for protected rosters. If the roster isn't
+ # protected, then anybody can see the pages. If members-only or
+ # "admin"-only, then we try to cookie authenticate the user, and failing
+ # that, we check roster-email and roster-pw fields for a valid password.
+ # (also allowed: the list moderator, the list admin, and the site admin).
+ if mlist.private_roster == 0:
+ # No privacy
+ ok = 1
+ elif mlist.private_roster == 1:
+ # Members only
+ addr = cgidata.getvalue('roster-email', '')
+ password = cgidata.getvalue('roster-pw', '')
+ ok = mlist.WebAuthenticate((mm_cfg.AuthUser,
+ mm_cfg.AuthListModerator,
+ mm_cfg.AuthListAdmin,
+ mm_cfg.AuthSiteAdmin),
+ password, addr)
+ else:
+ # Admin only, so we can ignore the address field
+ password = cgidata.getvalue('roster-pw', '')
+ ok = mlist.WebAuthenticate((mm_cfg.AuthListModerator,
+ mm_cfg.AuthListAdmin,
+ mm_cfg.AuthSiteAdmin),
+ password)
+ if not ok:
+ realname = mlist.real_name
+ doc = Document()
+ doc.set_language(lang)
+ error_page_doc(doc, _('%(realname)s roster authentication failed.'))
+ doc.AddItem(mlist.GetMailmanFooter())
+ print doc.Format()
+ return
+
+ # The document and its language
+ doc = HeadlessDocument()
+ doc.set_language(lang)
+
+ replacements = mlist.GetAllReplacements(lang)
+ replacements['<mm-displang-box>'] = mlist.FormatButton(
+ 'displang-button',
+ text = _('View this page in'))
+ replacements['<mm-lang-form-start>'] = mlist.FormatFormStart('roster')
+ doc.AddItem(mlist.ParseTags('roster.html', replacements, lang))
+ print doc.Format()
+
+
+
+def error_page(errmsg):
+ doc = Document()
+ doc.set_language(mm_cfg.DEFAULT_SERVER_LANGUAGE)
+ error_page_doc(doc, errmsg)
+ print doc.Format()
+
+
+def error_page_doc(doc, errmsg, *args):
+ # Produce a simple error-message page on stdout and exit.
+ doc.SetTitle(_("Error"))
+ doc.AddItem(Header(2, _("Error")))
+ doc.AddItem(Bold(errmsg % args))
diff --git a/Mailman/Cgi/subscribe.py b/Mailman/Cgi/subscribe.py
new file mode 100644
index 00000000..c2dfe5cd
--- /dev/null
+++ b/Mailman/Cgi/subscribe.py
@@ -0,0 +1,276 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Process subscription or roster requests from listinfo form."""
+
+import sys
+import os
+import cgi
+import signal
+
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman import MailList
+from Mailman import Errors
+from Mailman import i18n
+from Mailman import Message
+from Mailman.UserDesc import UserDesc
+from Mailman.htmlformat import *
+from Mailman.Logging.Syslog import syslog
+
+SLASH = '/'
+ERRORSEP = '\n\n<p>'
+
+# Set up i18n
+_ = i18n._
+i18n.set_language(mm_cfg.DEFAULT_SERVER_LANGUAGE)
+
+
+
+def main():
+ doc = Document()
+ doc.set_language(mm_cfg.DEFAULT_SERVER_LANGUAGE)
+
+ parts = Utils.GetPathPieces()
+ if not parts:
+ doc.AddItem(Header(2, _("Error")))
+ doc.AddItem(Bold(_('Invalid options to CGI script')))
+ print doc.Format()
+ return
+
+ listname = parts[0].lower()
+ try:
+ mlist = MailList.MailList(listname, lock=0)
+ except Errors.MMListError, e:
+ # Avoid cross-site scripting attacks
+ safelistname = Utils.websafe(listname)
+ doc.AddItem(Header(2, _("Error")))
+ doc.AddItem(Bold(_('No such list <em>%(safelistname)s</em>')))
+ print doc.Format()
+ syslog('error', 'No such list "%s": %s\n', listname, e)
+ return
+
+ # See if the form data has a preferred language set, in which case, use it
+ # for the results. If not, use the list's preferred language.
+ cgidata = cgi.FieldStorage()
+ language = cgidata.getvalue('language', mlist.preferred_language)
+ i18n.set_language(language)
+ doc.set_language(language)
+
+ # We need a signal handler to catch the SIGTERM that can come from Apache
+ # when the user hits the browser's STOP button. See the comment in
+ # admin.py for details.
+ #
+ # BAW: Strictly speaking, the list should not need to be locked just to
+ # read the request database. However the request database asserts that
+ # the list is locked in order to load it and it's not worth complicating
+ # that logic.
+ def sigterm_handler(signum, frame, mlist=mlist):
+ # Make sure the list gets unlocked...
+ mlist.Unlock()
+ # ...and ensure we exit, otherwise race conditions could cause us to
+ # enter MailList.Save() while we're in the unlocked state, and that
+ # could be bad!
+ sys.exit(0)
+
+ mlist.Lock()
+ try:
+ # Install the emergency shutdown signal handler
+ signal.signal(signal.SIGTERM, sigterm_handler)
+
+ process_form(mlist, doc, cgidata, language)
+ mlist.Save()
+ finally:
+ mlist.Unlock()
+
+
+
+def process_form(mlist, doc, cgidata, lang):
+ listowner = mlist.GetOwnerEmail()
+ realname = mlist.real_name
+ results = []
+
+ # The email address being subscribed, required
+ email = cgidata.getvalue('email', '')
+ if not email:
+ results.append(_('You must supply a valid email address.'))
+
+ fullname = cgidata.getvalue('fullname', '')
+ # Canonicalize the full name
+ fullname = Utils.canonstr(fullname, lang)
+ # Who was doing the subscribing?
+ remote = os.environ.get('REMOTE_HOST',
+ os.environ.get('REMOTE_ADDR',
+ 'unidentified origin'))
+
+ # Was an attempt made to subscribe the list to itself?
+ if email == mlist.GetListEmail():
+ syslog('mischief', 'Attempt to self subscribe %s: %s', email, remote)
+ results.append(_('You may not subscribe a list to itself!'))
+
+ # If the user did not supply a password, generate one for him
+ password = cgidata.getvalue('pw')
+ confirmed = cgidata.getvalue('pw-conf')
+
+ if password is None and confirmed is None:
+ password = Utils.MakeRandomPassword()
+ elif password is None or confirmed is None:
+ results.append(_('If you supply a password, you must confirm it.'))
+ elif password <> confirmed:
+ results.append(_('Your passwords did not match.'))
+
+ # Get the digest option for the subscription.
+ digestflag = cgidata.getvalue('digest')
+ if digestflag:
+ try:
+ digest = int(digestflag)
+ except ValueError:
+ digest = 0
+ else:
+ digest = mlist.digest_is_default
+
+ # Sanity check based on list configuration. BAW: It's actually bogus that
+ # the page allows you to set the digest flag if you don't really get the
+ # choice. :/
+ if not mlist.digestable:
+ digest = 0
+ elif not mlist.nondigestable:
+ digest = 1
+
+ if results:
+ print_results(mlist, ERRORSEP.join(results), doc, lang)
+ return
+
+ # If this list has private rosters, we have to be careful about the
+ # message that gets printed, otherwise the subscription process can be
+ # used to mine for list members. It may be inefficient, but it's still
+ # possible, and that kind of defeats the purpose of private rosters.
+ # We'll use this string for all successful or unsuccessful subscription
+ # results.
+ if mlist.private_roster == 0:
+ # Public rosters
+ privacy_results = ''
+ else:
+ privacy_results = _("""\
+Your subscription request has been received, and will soon be acted upon.
+Depending on the configuration of this mailing list, your subscription request
+may have to be first confirmed by you via email, or approved by the list
+moderator. If confirmation is required, you will soon get a confirmation
+email which contains further instructions.""")
+
+ try:
+ userdesc = UserDesc(email, fullname, password, digest, lang)
+ mlist.AddMember(userdesc, remote)
+ results = ''
+ # Check for all the errors that mlist.AddMember can throw options on the
+ # web page for this cgi
+ except Errors.MembershipIsBanned:
+ results = _("""The email address you supplied is banned from this
+ mailing list. If you think this restriction is erroneous, please
+ contact the list owners at %(listowner)s.""")
+ except Errors.MMBadEmailError:
+ results = _("""\
+The email address you supplied is not valid. (E.g. it must contain an
+`@'.)""")
+ except Errors.MMHostileAddress:
+ results = _("""\
+Your subscription is not allowed because the email address you gave is
+insecure.""")
+ except Errors.MMSubscribeNeedsConfirmation:
+ # Results string depends on whether we have private rosters or not
+ if privacy_results:
+ results = privacy_results
+ else:
+ results = _("""\
+Confirmation from your email address is required, to prevent anyone from
+subscribing you without permission. Instructions are being sent to you at
+%(email)s. Please note your subscription will not start until you confirm
+your subscription.""")
+ except Errors.MMNeedApproval, x:
+ # Results string depends on whether we have private rosters or not
+ if privacy_results:
+ results = privacy_results
+ else:
+ # We need to interpolate into x
+ x = _(x)
+ results = _("""\
+Your subscription request was deferred because %(x)s. Your request has been
+forwarded to the list moderator. You will receive email informing you of the
+moderator's decision when they get to your request.""")
+ except Errors.MMAlreadyAMember:
+ # Results string depends on whether we have private rosters or not
+ if not privacy_results:
+ results = _('You are already subscribed.')
+ else:
+ results = privacy_results
+ # This could be a membership probe. For safety, let the user know
+ # a probe occurred. BAW: should we inform the list moderator?
+ listaddr = mlist.GetListEmail()
+ # Set the language for this email message to the member's language.
+ mlang = mlist.getMemberLanguage(email)
+ otrans = i18n.get_translation()
+ i18n.set_language(mlang)
+ try:
+ msg = Message.UserNotification(
+ mlist.getMemberCPAddress(email),
+ mlist.GetBouncesEmail(),
+ _('Mailman privacy alert'),
+ _("""\
+An attempt was made to subscribe your address to the mailing list
+%(listaddr)s. You are already subscribed to this mailing list.
+
+Note that the list membership is not public, so it is possible that a bad
+person was trying to probe the list for its membership. This would be a
+privacy violation if we let them do this, but we didn't.
+
+If you submitted the subscription request and forgot that you were already
+subscribed to the list, then you can ignore this message. If you suspect that
+an attempt is being made to covertly discover whether you are a member of this
+list, and you are worried about your privacy, then feel free to send a message
+to the list administrator at %(listowner)s.
+"""), lang=mlang)
+ finally:
+ i18n.set_translation(otrans)
+ msg.send(mlist)
+ # These shouldn't happen unless someone's tampering with the form
+ except Errors.MMCantDigestError:
+ results = _('This list does not support digest delivery.')
+ except Errors.MMMustDigestError:
+ results = _('This list only supports digest delivery.')
+ else:
+ # Everything's cool. Our return string actually depends on whether
+ # this list has private rosters or not
+ if privacy_results:
+ results = privacy_results
+ else:
+ results = _("""\
+You have been successfully subscribed to the %(realname)s mailing list.""")
+ # Show the results
+ print_results(mlist, results, doc, lang)
+
+
+
+def print_results(mlist, results, doc, lang):
+ # The bulk of the document will come from the options.html template, which
+ # includes its own html armor (head tags, etc.). Suppress the head that
+ # Document() derived pages get automatically.
+ doc.suppress_head = 1
+
+ replacements = mlist.GetStandardReplacements(lang)
+ replacements['<mm-results>'] = results
+ output = mlist.ParseTags('subscribe.html', replacements, lang)
+ doc.AddItem(output)
+ print doc.Format()
diff --git a/Mailman/Commands/.cvsignore b/Mailman/Commands/.cvsignore
new file mode 100644
index 00000000..f3c7a7c5
--- /dev/null
+++ b/Mailman/Commands/.cvsignore
@@ -0,0 +1 @@
+Makefile
diff --git a/Mailman/Commands/Makefile.in b/Mailman/Commands/Makefile.in
new file mode 100644
index 00000000..bacd9629
--- /dev/null
+++ b/Mailman/Commands/Makefile.in
@@ -0,0 +1,69 @@
+# Copyright (C) 2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# NOTE: Makefile.in is converted into Makefile by the configure script
+# in the parent directory. Once configure has run, you can recreate
+# the Makefile by running just config.status.
+
+# Variables set by configure
+
+VPATH= @srcdir@
+srcdir= @srcdir@
+bindir= @bindir@
+prefix= @prefix@
+exec_prefix= @exec_prefix@
+
+CC= @CC@
+CHMOD= @CHMOD@
+INSTALL= @INSTALL@
+
+DEFS= @DEFS@
+
+# Customizable but not set by configure
+
+OPT= @OPT@
+CFLAGS= $(OPT) $(DEFS)
+PACKAGEDIR= $(prefix)/Mailman/Commands
+SHELL= /bin/sh
+
+MODULES= *.py
+
+# Modes for directories and executables created by the install
+# process. Default to group-writable directories but
+# user-only-writable for executables.
+DIRMODE= 775
+EXEMODE= 755
+FILEMODE= 644
+INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
+
+
+# Rules
+
+all:
+
+install:
+ for f in $(MODULES); \
+ do \
+ $(INSTALL) -m $(FILEMODE) $(srcdir)/$$f $(PACKAGEDIR); \
+ done
+
+finish:
+
+clean:
+
+distclean:
+ -rm *.pyc
+ -rm Makefile
diff --git a/Mailman/Commands/__init__.py b/Mailman/Commands/__init__.py
new file mode 100644
index 00000000..ac6d2391
--- /dev/null
+++ b/Mailman/Commands/__init__.py
@@ -0,0 +1,15 @@
+# Copyright (C) 2001 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
diff --git a/Mailman/Commands/cmd_confirm.py b/Mailman/Commands/cmd_confirm.py
new file mode 100644
index 00000000..5e4fc701
--- /dev/null
+++ b/Mailman/Commands/cmd_confirm.py
@@ -0,0 +1,84 @@
+# Copyright (C) 2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""
+ confirm <confirmation-string>
+ Confirm an action. The confirmation-string is required and should be
+ supplied with in mailback confirmation notice.
+"""
+
+from Mailman import mm_cfg
+from Mailman import Errors
+from Mailman import Pending
+from Mailman.i18n import _
+
+STOP = 1
+
+
+
+def gethelp(mlist):
+ return _(__doc__)
+
+
+
+def process(res, args):
+ mlist = res.mlist
+ if len(args) <> 1:
+ res.results.append(_('Usage:'))
+ res.results.append(gethelp(mlist))
+ return STOP
+ cookie = args[0]
+ try:
+ results = mlist.ProcessConfirmation(cookie, res.msg)
+ except Errors.MMBadConfirmation, e:
+ # Express in approximate days
+ days = int(mm_cfg.PENDING_REQUEST_LIFE / mm_cfg.days(1) + 0.5)
+ res.results.append(_("""\
+Invalid confirmation string. Note that confirmation strings expire
+approximately %(days)s days after the initial subscription request. If your
+confirmation has expired, please try to re-submit your original request or
+message."""))
+ except Errors.MMNeedApproval:
+ res.results.append(_("""\
+Your request has been forwarded to the list moderator for approval."""))
+ except Errors.MMAlreadyAMember:
+ # Some other subscription request for this address has
+ # already succeeded.
+ res.results.append(_('You are already subscribed.'))
+ except Errors.NotAMemberError:
+ # They've already been unsubscribed
+ res.results.append(_("""\
+You are not current a member. Have you already unsubscribed or changed
+your email address?"""))
+ else:
+ if ((results[0] == Pending.SUBSCRIPTION and mlist.send_welcome_msg)
+ or
+ (results[0] == Pending.UNSUBSCRIPTION and mlist.send_goodbye_msg)):
+ # We don't also need to send a confirmation succeeded message
+ res.respond = 0
+ else:
+ res.results.append(_('Confirmation succeeded'))
+ # Consume any other confirmation strings with the same cookie so
+ # the user doesn't get a misleading "unprocessed" message.
+ match = 'confirm ' + cookie
+ unprocessed = []
+ for line in res.commands:
+ if line.lstrip() == match:
+ continue
+ unprocessed.append(line)
+ res.commands = unprocessed
+ # Process just one confirmation string per message
+ return STOP
diff --git a/Mailman/Commands/cmd_echo.py b/Mailman/Commands/cmd_echo.py
new file mode 100644
index 00000000..1f8b5979
--- /dev/null
+++ b/Mailman/Commands/cmd_echo.py
@@ -0,0 +1,26 @@
+# Copyright (C) 2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""
+ echo [args]
+ Simply echo an acknowledgement. Args are echoed back unchanged.
+"""
+
+SPACE = ' '
+
+def process(res, args):
+ res.results.append('echo %s' % SPACE.join(args))
+ return 1
diff --git a/Mailman/Commands/cmd_end.py b/Mailman/Commands/cmd_end.py
new file mode 100644
index 00000000..aeec7936
--- /dev/null
+++ b/Mailman/Commands/cmd_end.py
@@ -0,0 +1,33 @@
+# Copyright (C) 2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""
+ end
+ Stop processing commands. Use this if your mail program automatically
+ adds a signature file.
+"""
+
+from Mailman.i18n import _
+
+
+
+def gethelp(mlist):
+ return _(__doc__)
+
+
+
+def process(res, args):
+ return 1 # STOP
diff --git a/Mailman/Commands/cmd_help.py b/Mailman/Commands/cmd_help.py
new file mode 100644
index 00000000..e2d865e8
--- /dev/null
+++ b/Mailman/Commands/cmd_help.py
@@ -0,0 +1,92 @@
+# Copyright (C) 2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""
+ help
+ Print this help message.
+"""
+
+import sys
+import os
+
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman.i18n import _
+
+EMPTYSTRING = ''
+
+
+
+def gethelp(mlist):
+ return _(__doc__)
+
+
+
+def process(res, args):
+ # Get the help text introduction
+ mlist = res.mlist
+ # Since this message is personalized, add some useful information if the
+ # address requesting help is a member of the list.
+ msg = res.msg
+ for sender in msg.get_senders():
+ if mlist.isMember(sender):
+ memberurl = mlist.GetOptionsURL(sender, absolute=1)
+ urlhelp = _(
+ 'You can access your personal options via the following url:')
+ res.results.append(urlhelp)
+ res.results.append(memberurl)
+ # Get a blank line in the output.
+ res.results.append('')
+ break
+ # build the specific command helps from the module docstrings
+ modhelps = {}
+ import Mailman.Commands
+ path = os.path.dirname(os.path.abspath(Mailman.Commands.__file__))
+ for file in os.listdir(path):
+ if not file.startswith('cmd_') or not file.endswith('.py'):
+ continue
+ module = os.path.splitext(file)[0]
+ modname = 'Mailman.Commands.' + module
+ try:
+ __import__(modname)
+ except ImportError:
+ continue
+ cmdname = module[4:]
+ help = None
+ if hasattr(sys.modules[modname], 'gethelp'):
+ help = sys.modules[modname].gethelp(mlist)
+ if help:
+ modhelps[cmdname] = help
+ # Now sort the command helps
+ helptext = []
+ keys = modhelps.keys()
+ keys.sort()
+ for cmd in keys:
+ helptext.append(modhelps[cmd])
+ commands = EMPTYSTRING.join(helptext)
+ # Now craft the response
+ helptext = Utils.maketext(
+ 'help.txt',
+ {'listname' : mlist.real_name,
+ 'version' : mm_cfg.VERSION,
+ 'listinfo_url': mlist.GetScriptURL('listinfo', absolute=1),
+ 'requestaddr' : mlist.GetRequestEmail(),
+ 'adminaddr' : mlist.GetOwnerEmail(),
+ 'commands' : commands,
+ }, mlist=mlist, lang=res.msgdata['lang'], raw=1)
+ # Now add to the response
+ res.results.append('help')
+ res.results.append(helptext)
diff --git a/Mailman/Commands/cmd_info.py b/Mailman/Commands/cmd_info.py
new file mode 100644
index 00000000..1c28da70
--- /dev/null
+++ b/Mailman/Commands/cmd_info.py
@@ -0,0 +1,49 @@
+# Copyright (C) 2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""
+ info
+ Get information about this mailing list.
+"""
+
+from Mailman.i18n import _
+
+STOP = 1
+
+
+
+def gethelp(mlist):
+ return _(__doc__)
+
+
+
+def process(res, args):
+ mlist = res.mlist
+ if args:
+ res.results.append(gethelp(mlist))
+ return STOP
+ listname = mlist.real_name
+ description = mlist.description or _('n/a')
+ postaddr = mlist.GetListEmail()
+ requestaddr = mlist.GetRequestEmail()
+ owneraddr = mlist.GetOwnerEmail()
+ listurl = mlist.GetScriptURL('listinfo', absolute=1)
+ res.results.append(_('List name: %(listname)s'))
+ res.results.append(_('Description: %(description)s'))
+ res.results.append(_('Postings to: %(postaddr)s'))
+ res.results.append(_('List Helpbot: %(requestaddr)s'))
+ res.results.append(_('List Owners: %(owneraddr)s'))
+ res.results.append(_('More information: %(listurl)s'))
diff --git a/Mailman/Commands/cmd_join.py b/Mailman/Commands/cmd_join.py
new file mode 100644
index 00000000..4daccc1a
--- /dev/null
+++ b/Mailman/Commands/cmd_join.py
@@ -0,0 +1,20 @@
+# Copyright (C) 2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""The `join' command is synonymous with `subscribe'.
+"""
+
+from Mailman.Commands.cmd_subscribe import process
diff --git a/Mailman/Commands/cmd_leave.py b/Mailman/Commands/cmd_leave.py
new file mode 100644
index 00000000..ed5ccc7b
--- /dev/null
+++ b/Mailman/Commands/cmd_leave.py
@@ -0,0 +1,20 @@
+# Copyright (C) 2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""The `leave' command is synonymous with `unsubscribe'.
+"""
+
+from Mailman.Commands.cmd_unsubscribe import process
diff --git a/Mailman/Commands/cmd_lists.py b/Mailman/Commands/cmd_lists.py
new file mode 100644
index 00000000..81b60e60
--- /dev/null
+++ b/Mailman/Commands/cmd_lists.py
@@ -0,0 +1,69 @@
+# Copyright (C) 2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""
+ lists
+ See a list of the public mailing lists on this GNU Mailman server.
+"""
+
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman.MailList import MailList
+from Mailman.i18n import _
+
+
+STOP = 1
+
+
+
+def gethelp(mlist):
+ return _(__doc__)
+
+
+
+def process(res, args):
+ mlist = res.mlist
+ if args:
+ res.results.append(_('Usage:'))
+ res.results.append(gethelp(mlist))
+ return STOP
+ hostname = mlist.host_name
+ res.results.append(_('Public mailing lists at %(hostname)s:'))
+ lists = Utils.list_names()
+ lists.sort()
+ i = 1
+ for listname in lists:
+ if listname == mlist.internal_name():
+ xlist = mlist
+ else:
+ xlist = MailList(listname, lock=0)
+ # We can mention this list if you already know about it
+ if not xlist.advertised and xlist is not mlist:
+ continue
+ # Skip the list if it isn't in the same virtual domain. BAW: should a
+ # message to the site list include everything regardless of domain?
+ if mm_cfg.VIRTUAL_HOST_OVERVIEW and \
+ xlist.host_name <> mlist.host_name:
+ continue
+ realname = xlist.real_name
+ description = xlist.description or _('n/a')
+ requestaddr = xlist.GetRequestEmail()
+ if i > 1:
+ res.results.append('')
+ res.results.append(_('%(i)3d. List name: %(realname)s'))
+ res.results.append(_(' Description: %(description)s'))
+ res.results.append(_(' Requests to: %(requestaddr)s'))
+ i += 1
diff --git a/Mailman/Commands/cmd_password.py b/Mailman/Commands/cmd_password.py
new file mode 100644
index 00000000..c2347be9
--- /dev/null
+++ b/Mailman/Commands/cmd_password.py
@@ -0,0 +1,118 @@
+# Copyright (C) 2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""
+ password [<oldpassword> <newpassword>] [address=<address>]
+ Retrieve or change your password. With no arguments, this returns
+ your current password. With arguments <oldpassword> and <newpassword>
+ you can change your password.
+
+ If you're posting from an address other than your membership address,
+ specify your membership address with `address=<address>' (no brackets
+ around the email address, and no quotes!). Note that in this case the
+ response is always sent to the subscribed address.
+"""
+
+from email.Utils import parseaddr
+
+from Mailman import mm_cfg
+from Mailman.i18n import _
+
+STOP = 1
+
+
+
+def gethelp(mlist):
+ return _(__doc__)
+
+
+
+def process(res, args):
+ mlist = res.mlist
+ address = None
+ if not args:
+ # They just want to get their existing password
+ realname, address = parseaddr(res.msg['from'])
+ if mlist.isMember(address):
+ password = mlist.getMemberPassword(address)
+ res.results.append(_('Your password is: %(password)s'))
+ else:
+ listname = mlist.real_name
+ res.results.append(
+ _('You are not a member of the %(listname)s mailing list'))
+ return STOP
+ elif len(args) == 1 and args[0].startswith('address='):
+ # They want their password, but they're posting from a different
+ # address. We /must/ return the password to the subscribed address.
+ address = args[0][8:]
+ res.returnaddr = address
+ if mlist.isMember(address):
+ password = mlist.getMemberPassword(address)
+ res.results.append(_('Your password is: %(password)s'))
+ else:
+ listname = mlist.real_name
+ res.results.append(
+ _('You are not a member of the %(listname)s mailing list'))
+ return STOP
+ elif len(args) == 2:
+ # They are changing their password
+ oldpasswd = args[0]
+ newpasswd = args[1]
+ realname, address = parseaddr(res.msg['from'])
+ if mlist.isMember(address):
+ if mlist.Authenticate((mm_cfg.AuthUser, mm_cfg.AuthListAdmin),
+ oldpasswd, address):
+ mlist.setMemberPassword(address, newpasswd)
+ res.results.append(_('Password successfully changed.'))
+ else:
+ res.results.append(_("""\
+You did not give the correct old password, so your password has not been
+changed. Use the no argument version of the password command to retrieve your
+current password, then try again."""))
+ res.results.append(_('\nUsage:'))
+ res.results.append(gethelp(mlist))
+ return STOP
+ else:
+ listname = mlist.real_name
+ res.results.append(
+ _('You are not a member of the %(listname)s mailing list'))
+ return STOP
+ elif len(args) == 3 and args[2].startswith('address='):
+ # They want to change their password, and they're sending this from a
+ # different address than what they're subscribed with. Be sure the
+ # response goes to the subscribed address.
+ oldpasswd = args[0]
+ newpasswd = args[1]
+ address = args[2][8:]
+ res.returnaddr = address
+ if mlist.isMember(address):
+ if mlist.Authenticate((mm_cfg.AuthUser, mm_cfg.AuthListAdmin),
+ oldpasswd, address):
+ mlist.setMemberPassword(address, newpasswd)
+ res.results.append(_('Password successfully changed.'))
+ else:
+ res.results.append(_("""\
+You did not give the correct old password, so your password has not been
+changed. Use the no argument version of the password command to retrieve your
+current password, then try again."""))
+ res.results.append(_('\nUsage:'))
+ res.results.append(gethelp(mlist))
+ return STOP
+ else:
+ listname = mlist.real_name
+ res.results.append(
+ _('You are not a member of the %(listname)s mailing list'))
+ return STOP
diff --git a/Mailman/Commands/cmd_remove.py b/Mailman/Commands/cmd_remove.py
new file mode 100644
index 00000000..55be1f3e
--- /dev/null
+++ b/Mailman/Commands/cmd_remove.py
@@ -0,0 +1,20 @@
+# Copyright (C) 2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""The `remove' command is synonymous with `unsubscribe'.
+"""
+
+from Mailman.Commands.cmd_unsubscribe import process
diff --git a/Mailman/Commands/cmd_set.py b/Mailman/Commands/cmd_set.py
new file mode 100644
index 00000000..c3eaa9a6
--- /dev/null
+++ b/Mailman/Commands/cmd_set.py
@@ -0,0 +1,353 @@
+# Copyright (C) 2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+from email.Utils import parseaddr, formatdate
+
+from Mailman import mm_cfg
+from Mailman import Errors
+from Mailman import MemberAdaptor
+from Mailman import i18n
+
+def _(s): return s
+
+OVERVIEW = _("""
+ set ...
+ Set or view your membership options.
+
+ Use `set help' (without the quotes) to get a more detailed list of the
+ options you can change.
+
+ Use `set show' (without the quotes) to view your current option
+ settings.
+""")
+
+DETAILS = _("""
+ set help
+ Show this detailed help.
+
+ set show [address=<address>]
+ View your current option settings. If you're posting from an address
+ other than your membership address, specify your membership address
+ with `address=<address>' (no brackets around the email address, and no
+ quotes!).
+
+ set authenticate <password> [address=<address>]
+ To set any of your options, you must include this command first, along
+ with your membership password. If you're posting from an address
+ other than your membership address, specify your membership address
+ with `address=<address>' (no brackets around the email address, and no
+ quotes!).
+
+ set ack on
+ set ack off
+ When the `ack' option is turned on, you will receive an
+ acknowledgement message whenever you post a message to the list.
+
+ set digest plain
+ set digest mime
+ set digest off
+ When the `digest' option is turned off, you will receive postings
+ immediately when they are posted. Use `set digest plain' if instead
+ you want to receive postings bundled into a plain text digest
+ (i.e. RFC 1153 digest). Use `set digest mime' if instead you want to
+ receive postings bundled together into a MIME digest.
+
+ set delivery on
+ set delivery off
+ Turn delivery on or off. This does not unsubscribe you, but instead
+ tells Mailman not to deliver messages to you for now. This is useful
+ if you're going on vacation. Be sure to use `set delivery on' when
+ you return from vacation!
+
+ set myposts on
+ set myposts off
+ Use `set myposts off' to not receive copies of messages you post to
+ the list. This has no effect if you're receiving digests.
+
+ set hide on
+ set hide off
+ Use `set hide on' to conceal your email address when people request
+ the membership list.
+
+ set duplicates on
+ set duplicates off
+ Use `set duplicates off' if you want Mailman to not send you messages
+ if your address is explicitly mentioned in the To: or Cc: fields of
+ the message. This can reduce the number of duplicate postings you
+ will receive.
+
+ set reminders on
+ set reminders off
+ Use `set reminders off' if you want to disable the monthly password
+ reminder for this mailing list.
+""")
+
+_ = i18n._
+
+STOP = 1
+
+
+
+def gethelp(mlist):
+ return _(OVERVIEW)
+
+
+
+class SetCommands:
+ def __init__(self):
+ self.__address = None
+ self.__authok = 0
+
+ def process(self, res, args):
+ if not args:
+ res.results.append(_(DETAILS))
+ return STOP
+ subcmd = args.pop(0)
+ methname = 'set_' + subcmd
+ method = getattr(self, methname, None)
+ if method is None:
+ res.results.append(_('Bad set command: %(subcmd)s'))
+ res.results.append(_(DETAILS))
+ return STOP
+ return method(res, args)
+
+ def set_help(self, res, args=1):
+ res.results.append(_(DETAILS))
+ if args:
+ return STOP
+
+ def _usage(self, res):
+ res.results.append(_('Usage:'))
+ return self.set_help(res)
+
+ def set_show(self, res, args):
+ mlist = res.mlist
+ if not args:
+ realname, address = parseaddr(res.msg['from'])
+ elif len(args) == 1 and args[0].startswith('address='):
+ # Send the results to the address, not the From: dude
+ address = args[0][8:]
+ res.returnaddr = address
+ else:
+ return self._usage(res)
+ if not mlist.isMember(address):
+ listname = mlist.real_name
+ res.results.append(
+ _('You are not a member of the %(listname)s mailing list'))
+ return STOP
+ res.results.append(_('Your current option settings:'))
+ opt = mlist.getMemberOption(address, mm_cfg.AcknowledgePosts)
+ onoff = opt and _('on') or _('off')
+ res.results.append(_(' ack %(onoff)s'))
+ # Digests are a special ternary value
+ digestsp = mlist.getMemberOption(address, mm_cfg.Digests)
+ if digestsp:
+ plainp = mlist.getMemberOption(address, mm_cfg.DisableMime)
+ if plainp:
+ res.results.append(_(' digest plain'))
+ else:
+ res.results.append(_(' digest mime'))
+ else:
+ res.results.append(_(' digest off'))
+ # If their membership is disabled, let them know why
+ status = mlist.getDeliveryStatus(address)
+ how = None
+ if status == MemberAdaptor.ENABLED:
+ status = _('delivery on')
+ elif status == MemberAdaptor.BYUSER:
+ status = _('delivery off')
+ how = _('by you')
+ elif status == MemberAdaptor.BYADMIN:
+ status = _('delivery off')
+ how = _('by the admin')
+ elif status == MemberAdaptor.BYBOUNCE:
+ status = _('delivery off')
+ how = _('due to bounces')
+ else:
+ assert status == MemberAdaptor.UNKNOWN
+ status = _('delivery off')
+ how = _('for unknown reasons')
+ changetime = mlist.getDeliveryStatusChangeTime(address)
+ if how and changetime > 0:
+ date = formatdate(changetime)
+ res.results.append(_(' %(status)s (%(how)s on %(date)s)'))
+ else:
+ res.results.append(' ' + status)
+ opt = mlist.getMemberOption(address, mm_cfg.DontReceiveOwnPosts)
+ # sense is reversed
+ onoff = (not opt) and _('on') or _('off')
+ res.results.append(_(' myposts %(onoff)s'))
+ opt = mlist.getMemberOption(address, mm_cfg.ConcealSubscription)
+ onoff = opt and _('on') or _('off')
+ res.results.append(_(' hide %(onoff)s'))
+ opt = mlist.getMemberOption(address, mm_cfg.DontReceiveDuplicates)
+ # sense is reversed
+ onoff = (not opt) and _('on') or _('off')
+ res.results.append(_(' duplicates %(onoff)s'))
+ opt = mlist.getMemberOption(address, mm_cfg.SuppressPasswordReminder)
+ # sense is reversed
+ onoff = (not opt) and _('on') or _('off')
+ res.results.append(_(' reminders %(onoff)s'))
+
+ def set_authenticate(self, res, args):
+ mlist = res.mlist
+ if len(args) == 1:
+ realname, address = parseaddr(res.msg['from'])
+ password = args[0]
+ elif len(args) == 2 and args[1].startswith('address='):
+ password = args[0]
+ address = args[1][8:]
+ else:
+ return self._usage(res)
+ # See if the password matches
+ if not mlist.isMember(address):
+ listname = mlist.real_name
+ res.results.append(
+ _('You are not a member of the %(listname)s mailing list'))
+ return STOP
+ if not mlist.Authenticate((mm_cfg.AuthUser,
+ mm_cfg.AuthListAdmin),
+ password, address):
+ res.results.append(_('You did not give the correct password'))
+ return STOP
+ self.__authok = 1
+ self.__address = address
+
+ def _status(self, res, arg):
+ status = arg.lower()
+ if status == 'on':
+ flag = 1
+ elif status == 'off':
+ flag = 0
+ else:
+ res.results.append(_('Bad argument: %(arg)s'))
+ self._usage(res)
+ return -1
+ # See if we're authenticated
+ if not self.__authok:
+ res.results.append(_('Not authenticated'))
+ self._usage(res)
+ return -1
+ return flag
+
+ def set_ack(self, res, args):
+ mlist = res.mlist
+ if len(args) <> 1:
+ return self._usage(res)
+ status = self._status(res, args[0])
+ if status < 0:
+ return STOP
+ mlist.setMemberOption(self.__address, mm_cfg.AcknowledgePosts, status)
+ res.results.append(_('ack option set'))
+
+ def set_digest(self, res, args):
+ mlist = res.mlist
+ if len(args) <> 1:
+ return self._usage(res)
+ if not self.__authok:
+ res.results.append(_('Not authenticated'))
+ self._usage(res)
+ return STOP
+ arg = args[0].lower()
+ if arg == 'off':
+ try:
+ mlist.setMemberOption(self.__address, mm_cfg.Digests, 0)
+ except Errors.AlreadyReceivingRegularDeliveries:
+ pass
+ elif arg == 'plain':
+ try:
+ mlist.setMemberOption(self.__address, mm_cfg.Digests, 1)
+ except Errors.AlreadyReceivingDigests:
+ pass
+ mlist.setMemberOption(self.__address, mm_cfg.DisableMime, 1)
+ elif arg == 'mime':
+ try:
+ mlist.setMemberOption(self.__address, mm_cfg.Digests, 1)
+ except Errors.AlreadyReceivingDigests:
+ pass
+ mlist.setMemberOption(self.__address, mm_cfg.DisableMime, 0)
+ else:
+ res.results.append(_('Bad argument: %(arg)s'))
+ self._usage(res)
+ return STOP
+ res.results.append(_('digest option set'))
+
+ def set_delivery(self, res, args):
+ mlist = res.mlist
+ if len(args) <> 1:
+ return self._usage(res)
+ status = self._status(res, args[0])
+ if status < 0:
+ return STOP
+ # sense is reversed
+ mlist.setMemberOption(self.__address, mm_cfg.DisableDelivery,
+ not status)
+ res.results.append(_('delivery option set'))
+
+ def set_myposts(self, res, args):
+ mlist = res.mlist
+ if len(args) <> 1:
+ return self._usage(res)
+ status = self._status(res, args[0])
+ if status < 0:
+ return STOP
+ # sense is reversed
+ mlist.setMemberOption(self.__address, mm_cfg.DontReceiveOwnPosts,
+ not status)
+ res.results.append(_('myposts option set'))
+
+ def set_hide(self, res, args):
+ mlist = res.mlist
+ if len(args) <> 1:
+ return self._usage(res)
+ status = self._status(res, args[0])
+ if status < 0:
+ return STOP
+ mlist.setMemberOption(self.__address, mm_cfg.ConcealSubscription,
+ status)
+ res.results.append(_('hide option set'))
+
+ def set_duplicates(self, res, args):
+ mlist = res.mlist
+ if len(args) <> 1:
+ return self._usage(res)
+ status = self._status(res, args[0])
+ if status < 0:
+ return STOP
+ # sense is reversed
+ mlist.setMemberOption(self.__address, mm_cfg.DontReceiveDuplicates,
+ not status)
+ res.results.append(_('duplicates option set'))
+
+ def set_reminders(self, res, args):
+ mlist = res.mlist
+ if len(args) <> 1:
+ return self._usage(res)
+ status = self._status(res, args[0])
+ if status < 0:
+ return STOP
+ # sense is reversed
+ mlist.setMemberOption(self.__address, mm_cfg.SuppressPasswordReminder,
+ not status)
+ res.results.append(_('reminder option set'))
+
+
+
+def process(res, args):
+ # We need to keep some state between set commands
+ if not getattr(res, 'setstate', None):
+ res.setstate = SetCommands()
+ res.setstate.process(res, args)
diff --git a/Mailman/Commands/cmd_stop.py b/Mailman/Commands/cmd_stop.py
new file mode 100644
index 00000000..defcf64d
--- /dev/null
+++ b/Mailman/Commands/cmd_stop.py
@@ -0,0 +1,20 @@
+# Copyright (C) 2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""stop is synonymous with the end command.
+"""
+
+from Mailman.Commands.cmd_end import process
diff --git a/Mailman/Commands/cmd_subscribe.py b/Mailman/Commands/cmd_subscribe.py
new file mode 100644
index 00000000..1a5048d6
--- /dev/null
+++ b/Mailman/Commands/cmd_subscribe.py
@@ -0,0 +1,136 @@
+# Copyright (C) 2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""
+ subscribe [password] [digest|nodigest] [address=<address>]
+ Subscribe to this mailing list. Your password must be given to
+ unsubscribe or change your options, but if you omit the password, one
+ will be generated for you. You may be periodically reminded of your
+ password.
+
+ The next argument may be either: `nodigest' or `digest' (no quotes!).
+ If you wish to subscribe an address other than the address you sent
+ this request from, you may specify `address=<address>' (no brackets
+ around the email address, and no quotes!)
+"""
+
+from email.Utils import parseaddr
+from email.Header import decode_header, make_header
+
+from Mailman import Utils
+from Mailman import Errors
+from Mailman.UserDesc import UserDesc
+from Mailman.i18n import _
+
+STOP = 1
+
+
+
+def gethelp(mlist):
+ return _(__doc__)
+
+
+
+def process(res, args):
+ mlist = res.mlist
+ digest = None
+ password = None
+ address = None
+ realname = None
+ # Parse the args
+ argnum = 0
+ for arg in args:
+ if arg.startswith('address='):
+ address = arg[8:]
+ elif argnum == 0:
+ password = arg
+ elif argnum == 1:
+ if arg.lower() not in ('digest', 'nodigest'):
+ res.results.append(_('Bad digest specifier: %(arg)s'))
+ return STOP
+ if arg.lower() == 'digest':
+ digest = 1
+ else:
+ digest = 0
+ else:
+ res.results.append(_('Usage:'))
+ res.results.append(gethelp(mlist))
+ return STOP
+ argnum += 1
+ # Fill in empty defaults
+ if digest is None:
+ digest = mlist.digest_is_default
+ if password is None:
+ password = Utils.MakeRandomPassword()
+ if address is None:
+ realname, address = parseaddr(res.msg['from'])
+ if not address:
+ # Fall back to the sender address
+ address = res.msg.get_sender()
+ if not address:
+ res.results.append(_('No valid address found to subscribe'))
+ return STOP
+ # Watch for encoded names
+ h = make_header(decode_header(realname))
+ # BAW: in Python 2.2, use just unicode(h)
+ realname = h.__unicode__()
+ # Coerce to byte string if uh contains only ascii
+ try:
+ realname = realname.encode('us-ascii')
+ except UnicodeError:
+ pass
+ # Create the UserDesc record and do a non-approved subscription
+ listowner = mlist.GetOwnerEmail()
+ userdesc = UserDesc(address, realname, password, digest)
+ remote = res.msg.get_sender()
+ try:
+ mlist.AddMember(userdesc, remote)
+ except Errors.MembershipIsBanned:
+ res.results.append(_("""\
+The email address you supplied is banned from this mailing list.
+If you think this restriction is erroneous, please contact the list
+owners at %(listowner)s."""))
+ return STOP
+ except Errors.MMBadEmailError:
+ res.results.append(_("""\
+Mailman won't accept the given email address as a valid address.
+(E.g. it must have an @ in it.)"""))
+ return STOP
+ except Errors.MMHostileAddress:
+ res.results.append(_("""\
+Your subscription is not allowed because
+the email address you gave is insecure."""))
+ return STOP
+ except Errors.MMAlreadyAMember:
+ res.results.append(_('You are already subscribed!'))
+ return STOP
+ except Errors.MMCantDigestError:
+ res.results.append(
+ _('No one can subscribe to the digest of this list!'))
+ return STOP
+ except Errors.MMMustDigestError:
+ res.results.append(_('This list only supports digest subscriptions!'))
+ return STOP
+ except Errors.MMSubscribeNeedsConfirmation:
+ # We don't need to respond /and/ send a confirmation message.
+ res.respond = 0
+ except Errors.MMNeedApproval:
+ res.results.append(_("""\
+Your subscription request has been forwarded to the list administrator
+at %(listowner)s for review."""))
+ else:
+ # Everything is a-ok
+ res.results.append(_('Subscription request succeeded.'))
diff --git a/Mailman/Commands/cmd_unsubscribe.py b/Mailman/Commands/cmd_unsubscribe.py
new file mode 100644
index 00000000..c574a80f
--- /dev/null
+++ b/Mailman/Commands/cmd_unsubscribe.py
@@ -0,0 +1,87 @@
+# Copyright (C) 2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""
+ unsubscribe [password] [address=<address>]
+ Unsubscribe from the mailing list. If given, your password must match
+ your current password. If omitted, a confirmation email will be sent
+ to the unsubscribing address. If you wish to unsubscribe an address
+ other than the address you sent this request from, you may specify
+ `address=<address>' (no brackets around the email address, and no
+ quotes!)
+"""
+
+from email.Utils import parseaddr
+
+from Mailman import Errors
+from Mailman.i18n import _
+
+STOP = 1
+
+
+
+def gethelp(mlist):
+ return _(__doc__)
+
+
+
+def process(res, args):
+ mlist = res.mlist
+ password = None
+ address = None
+ argnum = 0
+ for arg in args:
+ if arg.startswith('address='):
+ address = arg[8:]
+ elif argnum == 0:
+ password = arg
+ else:
+ res.results.append(_('Usage:'))
+ res.results.append(gethelp(mlist))
+ return STOP
+ argnum += 1
+ # Fill in empty defaults
+ if address is None:
+ realname, address = parseaddr(res.msg['from'])
+ if not mlist.isMember(address):
+ listname = mlist.real_name
+ res.results.append(
+ _('%(address)s is not a member of the %(listname)s mailing list'))
+ return STOP
+ # If we're doing admin-approved unsubs, don't worry about the password
+ if mlist.unsubscribe_policy:
+ try:
+ mlist.DeleteMember(address, 'mailcmd')
+ except Errors.MMNeedApproval:
+ res.results.append(_("""\
+Your unsubscription request has been forwarded to the list administrator for
+approval."""))
+ elif password is None:
+ # No password was given, so we need to do a mailback confirmation
+ # instead of unsubscribing them here.
+ cpaddr = mlist.getMemberCPAddress(address)
+ mlist.ConfirmUnsubscription(cpaddr)
+ # We don't also need to send a confirmation to this command
+ res.respond = 0
+ else:
+ # No admin approval is necessary, so we can just delete them if the
+ # passwords match.
+ oldpw = mlist.getMemberPassword(address)
+ if oldpw <> password:
+ res.results.append(_('You gave the wrong password'))
+ return STOP
+ mlist.ApprovedDeleteMember(address, 'mailcmd')
+ res.results.append(_('Unsubscription request succeeded.'))
diff --git a/Mailman/Commands/cmd_who.py b/Mailman/Commands/cmd_who.py
new file mode 100644
index 00000000..62505b3d
--- /dev/null
+++ b/Mailman/Commands/cmd_who.py
@@ -0,0 +1,133 @@
+# Copyright (C) 2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# Remove this when base minimal compatibility is Python 2.2
+from __future__ import nested_scopes
+
+from email.Utils import parseaddr
+
+from Mailman import mm_cfg
+from Mailman import i18n
+
+STOP = 1
+
+def _(s): return s
+
+PUBLICHELP = _("""
+ who
+ See everyone who is on this mailing list.
+""")
+
+MEMBERSONLYHELP = _("""
+ who password [address=<address>]
+ See everyone who is on this mailing list. The roster is limited to
+ list members only, and you must supply your membership password to
+ retrieve it. If you're posting from an address other than your
+ membership address, specify your membership address with
+ `address=<address>' (no brackets around the email address, and no
+ quotes!)
+""")
+
+ADMINONLYHELP = _("""
+ who password
+ See everyone who is on this mailing list. The roster is limited to
+ list administrators and moderators only; you must supply the list
+ admin or moderator password to retrieve the roster.
+""")
+
+_ = i18n._
+
+
+
+def gethelp(mlist):
+ if mlist.private_roster == 0:
+ return _(PUBLICHELP)
+ elif mlist.private_roster == 1:
+ return _(MEMBERSONLYHELP)
+ elif mlist.private_roster == 2:
+ return _(ADMINONLYHELP)
+
+
+def usage(res):
+ res.results.append(_('Usage:'))
+ res.results.append(gethelp(res.mlist))
+
+
+
+def process(res, args):
+ mlist = res.mlist
+ address = None
+ password = None
+ ok = 0
+ if mlist.private_roster == 0:
+ # Public rosters
+ if args:
+ usage(res)
+ return STOP
+ ok = 1
+ elif mlist.private_roster == 1:
+ # List members only
+ if len(args) == 1:
+ password = args[0]
+ realname, address = parseaddr(res.msg['from'])
+ elif len(args) == 2 and args[1].startswith('address='):
+ password = args[0]
+ address = args[1][8:]
+ else:
+ usage(res)
+ return STOP
+ if mlist.isMember(address) and mlist.Authenticate(
+ (mm_cfg.AuthUser,
+ mm_cfg.AuthListModerator,
+ mm_cfg.AuthListAdmin),
+ password, address):
+ # Then
+ ok = 1
+ else:
+ # Admin only
+ if len(args) <> 1:
+ usage(res)
+ return STOP
+ if mlist.Authenticate((mm_cfg.AuthListModerator,
+ mm_cfg.AuthListAdmin),
+ args[0]):
+ ok = 1
+ if not ok:
+ res.results.append(
+ _('You are not allowed to retrieve the list membership.'))
+ return STOP
+ # It's okay for this person to see the list membership
+ dmembers = mlist.getDigestMemberKeys()
+ rmembers = mlist.getRegularMemberKeys()
+ if not dmembers and not rmembers:
+ res.results.append(_('This list has no members.'))
+ return
+ # Convenience function
+ def addmembers(members):
+ for member in members:
+ if mlist.getMemberOption(member, mm_cfg.ConcealSubscription):
+ continue
+ realname = mlist.getMemberName(member)
+ if realname:
+ res.results.append(' %s (%s)' % (member, realname))
+ else:
+ res.results.append(' %s' % member)
+ if rmembers:
+ res.results.append(_('Non-digest (regular) members:'))
+ addmembers(rmembers)
+ if dmembers:
+ res.results.append(_('Digest members:'))
+ addmembers(dmembers)
diff --git a/Mailman/Defaults.py.in b/Mailman/Defaults.py.in
new file mode 100644
index 00000000..a9d11f63
--- /dev/null
+++ b/Mailman/Defaults.py.in
@@ -0,0 +1,1224 @@
+# -*- python -*-
+
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Distributed default settings for significant Mailman config variables.
+"""
+
+# NEVER make site configuration changes to this file. ALWAYS make them in
+# mm_cfg.py instead, in the designated area. See the comments in that file
+# for details.
+
+
+import os
+
+def seconds(s): return s
+def minutes(m): return m * 60
+def hours(h): return h * 60 * 60
+def days(d): return d * 60 * 60 * 24
+
+
+
+#####
+# General system-wide defaults
+#####
+
+# Should image logos be used? Set this to 0 to disable image logos from "our
+# sponsors" and just use textual links instead (this will also disable the
+# shortcut "favicon"). Otherwise, this should contain the URL base path to
+# the logo images (and must contain the trailing slash).. If you want to
+# disable Mailman's logo footer altogther, hack
+# Mailman/htmlformat.py:MailmanLogo(), which also contains the hardcoded links
+# and image names.
+IMAGE_LOGOS = '/icons/'
+
+# The name of the Mailman favicon
+SHORTCUT_ICON = 'mm-icon.png'
+
+# Don't change MAILMAN_URL, unless you want to point it at one of the mirrors.
+MAILMAN_URL = 'http://www.gnu.org/software/mailman/index.html'
+#MAILMAN_URL = 'http://www.list.org/'
+#MAILMAN_URL = 'http://mailman.sf.net/'
+
+# Mailman needs to know about (at least) two fully-qualified domain names
+# (fqdn); 1) the hostname used in your urls, and 2) the hostname used in email
+# addresses for your domain. For example, if people visit your Mailman system
+# with "http://www.dom.ain/mailman" then your url fqdn is "www.dom.ain", and
+# if people send mail to your system via "yourlist@dom.ain" then your email
+# fqdn is "dom.ain". DEFAULT_URL_HOST controls the former, and
+# DEFAULT_EMAIL_HOST controls the latter. Mailman also needs to know how to
+# map from one to the other (this is especially important if you're running
+# with virtual domains). You use "add_virtualhost(urlfqdn, emailfqdn)" to add
+# new mappings.
+#
+# If you don't need to change DEFAULT_EMAIL_HOST and DEFAULT_URL_HOST in your
+# mm_cfg.py, then you're done; the default mapping is added automatically. If
+# however you change either variable in your mm_cfg.py, then be sure to also
+# include the following:
+#
+# add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)
+#
+# because otherwise the default mappings won't be correct.
+DEFAULT_EMAIL_HOST = '@MAILHOST@'
+DEFAULT_URL_HOST = '@URLHOST@'
+DEFAULT_URL_PATTERN = 'http://%s/mailman/'
+
+# DEFAULT_HOST_NAME has been replaced with DEFAULT_EMAIL_HOST, however some
+# sites may have the former in their mm_cfg.py files. If so, we'll believe
+# that, otherwise we'll believe DEFAULT_EMAIL_HOST. Same for DEFAULT_URL.
+DEFAULT_HOST_NAME = None
+DEFAULT_URL = None
+
+HOME_PAGE = 'index.html'
+MAILMAN_SITE_LIST = 'mailman'
+
+# Normally when a site administrator authenticates to a web page with the site
+# password, they get a cookie which authorizes them as the list admin. It
+# makes me nervous to hand out site auth cookies because if this cookie is
+# cracked or intercepted, the intruder will have access to every list on the
+# site. OTOH, it's dang handy to not have to re-authenticate to every list on
+# the site. Set this value to 1 to allow site admin cookies.
+ALLOW_SITE_ADMIN_COOKIES = 0
+
+# Command that is used to convert text/html parts into plain text. This
+# should output results to standard output. %(filename)s will contain the
+# name of the temporary file that the program should operate on.
+HTML_TO_PLAIN_TEXT_COMMAND = '/usr/bin/lynx -dump %(filename)s'
+
+
+
+#####
+# Virtual domains
+#####
+
+# Set up your virtual host mappings here. This is primarily used for the
+# thru-the-web list creation, so its effects are currently fairly limited.
+# Use add_virtualhost() call to add new mappings. The keys are strings as
+# determined by Utils.get_domain(), the values are as appropriate for
+# DEFAULT_HOST_NAME.
+VIRTUAL_HOSTS = {}
+
+# When set, the listinfo and admin overviews of lists on the machine will be
+# confined to only those lists whose web_page_url configuration option host is
+# included within the URL by which the page is visited - only those "on the
+# virtual host". If unset, then all advertised (i.e. public) lists are
+# included in the overview.
+VIRTUAL_HOST_OVERVIEW = 1
+
+
+# Helper function; use this in your mm_cfg.py files. If optional emailhost is
+# omitted it defaults to urlhost with the first name stripped off, e.g.
+#
+# add_virtualhost('www.dom.ain')
+# VIRTUAL_HOST['www.dom.ain']
+# ==> 'dom.ain'
+#
+def add_virtualhost(urlhost, emailhost=None):
+ DOT = '.'
+ if emailhost is None:
+ emailhost = DOT.join(urlhost.split(DOT)[1:])
+ VIRTUAL_HOSTS[urlhost.lower()] = emailhost.lower()
+
+# And set the default
+add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)
+
+
+
+#####
+# Spam avoidance defaults
+#####
+
+# This variable contains a list of 2-tuple of the format (header, regex) which
+# the Mailman/Handlers/SpamDetect.py module uses to match against the current
+# message. If the regex matches the given header in the current message, then
+# it is flagged as spam. header is case-insensitive and should not include
+# the trailing colon. regex is always matched with re.IGNORECASE.
+#
+# Note that the more searching done, the slower the whole process gets. Spam
+# detection is run against all messages coming to either the list, or the
+# -owners address, unless the message is explicitly approved.
+KNOWN_SPAMMERS = []
+
+
+
+#####
+# Web UI defaults
+#####
+
+# Almost all the colors used in Mailman's web interface are parameterized via
+# the following variables. This lets you easily change the color schemes for
+# your preferences without having to do major surgery on the source code.
+# Note that in general, the template colors are not included here since it is
+# easy enough to override the default template colors via site-wide,
+# vdomain-wide, or list-wide specializations.
+
+WEB_BG_COLOR = 'white' # Page background
+WEB_HEADER_COLOR = '#99ccff' # Major section headers
+WEB_SUBHEADER_COLOR = '#fff0d0' # Minor section headers
+WEB_ADMINITEM_COLOR = '#dddddd' # Option field background
+WEB_ADMINPW_COLOR = '#99cccc' # Password box color
+WEB_ERROR_COLOR = 'red' # Error message foreground
+WEB_LINK_COLOR = '' # If true, forces LINK=
+WEB_ALINK_COLOR = '' # If true, forces ALINK=
+WEB_VLINK_COLOR = '' # If true, forces VLINK=
+WEB_HIGHLIGHT_COLOR = '#dddddd' # If true, alternating rows
+ # in listinfo & admin display
+
+
+#####
+# Archive defaults
+#####
+
+# The url template for the public archives. This will be used in several
+# places, including the List-Archive: header, links to the archive on the
+# list's listinfo page, and on the list's admin page.
+#
+# This should be a string with "%(listname)s" somewhere in it. Mailman will
+# interpolate the name of the list into this. You can also include a
+# "%(hostname)s" in the string, into which Mailman will interpolate
+# the host name (usually DEFAULT_URL_HOST).
+PUBLIC_ARCHIVE_URL = 'http://%(hostname)s/pipermail/%(listname)s'
+
+# Are archives on or off by default?
+DEFAULT_ARCHIVE = 1 # 0=Off, 1=On
+
+# Are archives public or private by default?
+DEFAULT_ARCHIVE_PRIVATE = 0 # 0=public, 1=private
+
+# ARCHIVE_TO_MBOX
+#-1 - do not do any archiving
+# 0 - do not archive to mbox, use builtin mailman html archiving only
+# 1 - archive to mbox to use an external archiving mechanism only
+# 2 - archive to both mbox and builtin mailman html archiving -
+# use this to make both external archiving mechanism work and
+# mailman's builtin html archiving. the flat mail file can be
+# useful for searching, external archivers, etc.
+#
+ARCHIVE_TO_MBOX = 2
+
+# 0 - yearly
+# 1 - monthly
+# 2 - quarterly
+# 3 - weekly
+# 4 - daily
+DEFAULT_ARCHIVE_VOLUME_FREQUENCY = 1
+DEFAULT_DIGEST_VOLUME_FREQUENCY = 1
+
+# These variables control the use of an external archiver. Normally if
+# archiving is turned on (see ARCHIVE_TO_MBOX above and the list's archive*
+# attributes) the internal Pipermail archiver is used. This is the default if
+# both of these variables are set to false. When either is set, the value
+# should be a shell command string which will get passed to os.popen(). This
+# string can contain %(listname)s for dictionary interpolation. The name of
+# the list being archived will be substituted for this.
+#
+# Note that if you set one of these variables, you should set both of them
+# (they can be the same string). This will mean your external archiver will
+# be used regardless of whether public or private archives are selected.
+PUBLIC_EXTERNAL_ARCHIVER = 0
+PRIVATE_EXTERNAL_ARCHIVER = 0
+
+# A filter module that converts from multipart messages to "flat" messages
+# (i.e. containing a single payload). This is required for Pipermail, and you
+# may want to set it to 0 for external archivers. You can also replace it
+# with your own module as long as it contains a process() function that takes
+# a MailList object and a Message object. It should raise
+# Errors.DiscardMessage if it wants to throw the message away. Otherwise it
+# should modify the Message object as necessary.
+ARCHIVE_SCRUBBER = 'Mailman.Handlers.Scrubber'
+
+# This variable defines what happens to text/html subparts. They can be
+# stripped completely, escaped, or filtered through an external program. The
+# legal values are:
+# 0 - Strip out text/html parts completely, leaving a notice of the removal in
+# the message. If the outer part is text/html, the entire message is
+# discarded.
+# 1 - Remove any embedded text/html parts, leaving them as HTML-escaped
+# attachments which can be separately viewed. Outer text/html parts are
+# simply HTML-escaped.
+# 2 - Leave it inline, but HTML-escape it
+# 3 - Remove text/html as attachments but don't HTML-escape them. Note: this
+# is very dangerous because it essentially means anybody can send an HTML
+# email to your site containing evil JavaScript or web bugs, or other
+# nasty things, and folks viewing your archives will be susceptible. You
+# should only consider this option if you do heavy moderation of your list
+# postings.
+#
+# Note: given the current archiving code, it is not possible to leave
+# text/html parts inline and un-escaped. I wouldn't think it'd be a good idea
+# to do anyway.
+#
+# The value can also be a string, in which case it is the name of a command to
+# filter the HTML page through. The resulting output is left in an attachment
+# or as the entirety of the message when the outer part is text/html. The
+# format of the string must include a "%(filename)s" which will contain the
+# name of the temporary file that the program should operate on. It should
+# write the processed message to stdout. Set this to
+# HTML_TO_PLAIN_TEXT_COMMAND to specify an HTML to plain text conversion
+# program.
+ARCHIVE_HTML_SANITIZER = 1
+
+# Set this to 1 to enable gzipping of the downloadable archive .txt file.
+# Note that this is /extremely/ inefficient, so an alternative is to just
+# collect the messages in the associated .txt file and run a cron job every
+# night to generate the txt.gz file. See cron/nightly_gzip for details.
+GZIP_ARCHIVE_TXT_FILES = 0
+
+# This sets the default `clobber date' policy for the archiver. When a
+# message is to be archived either by Pipermail or an external archiver,
+# Mailman can modify the Date: header to be the date the message was received
+# instead of the Date: in the original message. This is useful if you
+# typically receive messages with outrageous dates. Set this to 0 to retain
+# the date of the original message, or to 1 to always clobber the date. Set
+# it to 2 to perform `smart overrides' on the date; when the date is outside
+# ARCHIVER_ALLOWABLE_SANE_DATE_SKEW (either too early or too late), then the
+# received date is substituted instead.
+ARCHIVER_CLOBBER_DATE_POLICY = 2
+ARCHIVER_ALLOWABLE_SANE_DATE_SKEW = days(15)
+
+# Pipermail archives contain the raw email addresses of the posting authors.
+# Some view this as a goldmine for spam harvesters. Set this to true to
+# moderately obscure email addresses, but note that this breaks mailto: URLs
+# in the archives too.
+ARCHIVER_OBSCURES_EMAILADDRS = 1
+
+# Pipermail assumes that messages bodies contain US-ASCII text.
+# Change this option to define a different character set to be used as
+# the default character set for the archive. The term "character set"
+# is used in MIME to refer to a method of converting a sequence of
+# octets into a sequence of characters. If you change the default
+# charset, you might need to add it to VERBATIM_ENCODING below.
+DEFAULT_CHARSET = None
+
+# Most character set encodings require special HTML entity characters to be
+# quoted, otherwise they won't look right in the Pipermail archives. However
+# some character sets must not quote these characters so that they can be
+# rendered properly in the browsers. The primary issue is multi-byte
+# encodings where the octet 0x26 does not always represent the & character.
+# This variable contains a list of such characters sets which are not
+# HTML-quoted in the archives.
+VERBATIM_ENCODING = ['iso-2022-jp']
+
+
+
+#####
+# Delivery defaults
+#####
+
+# Final delivery module for outgoing mail. This handler is used for message
+# delivery to the list via the smtpd, and to an individual user. This value
+# must be a string naming a module in the Mailman.Handlers package.
+#
+# WARNING: Sendmail has security holes and should be avoided. In fact, you
+# must read the Mailman/Handlers/Sendmail.py file before it will work for
+# you.
+#
+#DELIVERY_MODULE = 'Sendmail'
+DELIVERY_MODULE = 'SMTPDirect'
+
+# MTA should name a module in Mailman/MTA which provides the MTA specific
+# functionality for creating and removing lists. Some MTAs like Exim can be
+# configured to automatically recognize new lists, in which case the MTA
+# variable should be set to None. Use 'Manual' to print new aliases to
+# standard out (or send an email to the site list owner) for manual twiddling
+# of an /etc/aliases style file. Use 'Postfix' if you are using the Postfix
+# MTA -- but then also see POSTFIX_STYLE_VIRTUAL_DOMAINS.
+MTA = 'Manual'
+
+# If you set MTA='Postfix', then you also want to set the following variable,
+# depending on whether you're using virtual domains in Postfix, and which
+# style of virtual domain you're using. Set this flag to false if you're not
+# using virtual domains in Postfix, or if you're using Sendmail-style virtual
+# domains (where all addresses are visible in all domains). If you're using
+# Postfix-style virtual domains, where aliases should only show up in the
+# virtual domain, set this variable to the list of host_name values to write
+# separate virtual entries for. I.e. if you run dom1.ain, dom2.ain, and
+# dom3.ain, but only dom2 and dom3 are virtual, set this variable to the list
+# ['dom2.ain', 'dom3.ain']. Matches are done against the host_name attribute
+# of the mailing lists. See README.POSTFIX for details.
+POSTFIX_STYLE_VIRTUAL_DOMAINS = []
+
+# These variables describe the program to use for regenerating the aliases.db
+# and virtual-mailman.db files, respectively, from the associated plain text
+# files. The file being updated will be appended to this string (with a
+# separating space), so it must be appropriate for os.system().
+POSTFIX_ALIAS_CMD = '/usr/sbin/postalias'
+POSTFIX_MAP_CMD = '/usr/sbin/postmap'
+
+# Ceiling on the number of recipients that can be specified in a single SMTP
+# transaction. Set to 0 to submit the entire recipient list in one
+# transaction. Only used with the SMTPDirect DELIVERY_MODULE.
+SMTP_MAX_RCPTS = 500
+
+# Ceiling on the number of SMTP sessions to perform on a single socket
+# connection. Some MTAs have limits. Set this to 0 to do as many as we like
+# (i.e. your MTA has no limits). Set this to some number great than 0 and
+# Mailman will close the SMTP connection and re-open it after this number of
+# consecutive sessions.
+SMTP_MAX_SESSIONS_PER_CONNECTION = 0
+
+# Maximum number of simultaneous subthreads that will be used for SMTP
+# delivery. After the recipients list is chunked according to SMTP_MAX_RCPTS,
+# each chunk is handed off to the smptd by a separate such thread. If your
+# Python interpreter was not built for threads, this feature is disabled. You
+# can explicitly disable it in all cases by setting MAX_DELIVERY_THREADS to
+# 0. This feature is only supported with the SMTPDirect DELIVERY_MODULE.
+#
+# NOTE: This is an experimental feature and limited testing shows that it may
+# in fact degrade performance, possibly due to Python's global interpreter
+# lock. Use with caution.
+MAX_DELIVERY_THREADS = 0
+
+# SMTP host and port, when DELIVERY_MODULE is 'SMTPDirect'. Make sure the
+# host exists and is resolvable (i.e., if it's the default of "localhost" be
+# sure there's a localhost entry in your /etc/hosts file!)
+SMTPHOST = 'localhost'
+SMTPPORT = 0 # default from smtplib
+
+# Command for direct command pipe delivery to sendmail compatible program,
+# when DELIVERY_MODULE is 'Sendmail'.
+SENDMAIL_CMD = '/usr/lib/sendmail'
+
+# Set these variables if you need to authenticate to your NNTP server for
+# Usenet posting or reading. If no authentication is necessary, specify None
+# for both variables.
+NNTP_USERNAME = None
+NNTP_PASSWORD = None
+
+# Set this if you have an NNTP server you prefer gatewayed lists to use.
+DEFAULT_NNTP_HOST = ''
+
+# These variables controls how headers must be cleansed in order to be
+# accepted by your NNTP server. Some servers like INN reject messages
+# containing prohibited headers, or duplicate headers. The NNTP server may
+# reject the message for other reasons, but there's little that can be
+# programmatically done about that. See Mailman/Queue/NewsRunner.py
+#
+# First, these headers (case ignored) are removed from the original message.
+NNTP_REMOVE_HEADERS = ['nntp-posting-host', 'nntp-posting-date', 'x-trace',
+ 'x-complaints-to', 'xref', 'date-received', 'posted',
+ 'posting-version', 'relay-version', 'received']
+
+# Next, these headers are left alone, unless there are duplicates in the
+# original message. Any second and subsequent headers are rewritten to the
+# second named header (case preserved).
+NNTP_REWRITE_DUPLICATE_HEADERS = [
+ ('to', 'X-Original-To'),
+ ('cc', 'X-Original-Cc'),
+ ('content-transfer-encoding', 'X-Original-Content-Transfer-Encoding'),
+ ('mime-version', 'X-MIME-Version'),
+ ]
+
+# All `normal' messages which are delivered to the entire list membership go
+# through this pipeline of handler modules. Lists themselves can override the
+# global pipeline by defining a `pipeline' attribute.
+GLOBAL_PIPELINE = [
+ # These are the modules that do tasks common to all delivery paths.
+ 'SpamDetect',
+ 'Approve',
+ 'Replybot',
+ 'Moderate',
+ 'Hold',
+ 'MimeDel',
+ 'Emergency',
+ 'Tagger',
+ 'CalcRecips',
+ 'AvoidDuplicates',
+ 'Cleanse',
+ 'CookHeaders',
+ # And now we send the message to the digest mbox file, and to the arch and
+ # news queues. Runners will provide further processing of the message,
+ # specific to those delivery paths.
+ 'ToDigest',
+ 'ToArchive',
+ 'ToUsenet',
+ # Now we'll do a few extra things specific to the member delivery
+ # (outgoing) path, finally leaving the message in the outgoing queue.
+ 'AfterDelivery',
+ 'Acknowledge',
+ 'ToOutgoing',
+ ]
+
+# This is the pipeline which messages sent to the -owner address go through
+OWNER_PIPELINE = [
+ 'SpamDetect',
+ 'Replybot',
+ 'OwnerRecips',
+ 'ToOutgoing',
+ ]
+
+
+# This defines syslog() format strings for the SMTPDirect delivery module (see
+# DELIVERY_MODULE above). Valid %()s string substitutions include:
+#
+# time -- the time in float seconds that it took to complete the smtp
+# hand-off of the message from Mailman to your smtpd.
+#
+# size -- the size of the entire message, in bytes
+#
+# #recips -- the number of actual recipients for this message.
+#
+# #refused -- the number of smtp refused recipients (use this only in
+# SMTP_LOG_REFUSED).
+#
+# listname -- the `internal' name of the mailing list for this posting
+#
+# msg_<header> -- the value of the delivered message's given header. If
+# the message had no such header, then "n/a" will be used. Note though
+# that if the message had multiple such headers, then it is undefined
+# which will be used.
+#
+# allmsg_<header> - Same as msg_<header> above, but if there are multiple
+# such headers in the message, they will all be printed, separated by
+# comma-space.
+#
+# sender -- the "sender" of the messages, which will be the From: or
+# envelope-sender as determeined by the USE_ENVELOPE_SENDER variable
+# below.
+#
+# The format of the entries is a 2-tuple with the first element naming the
+# file in logs/ to print the message to, and the second being a format string
+# appropriate for Python's %-style string interpolation. The file name is
+# arbitrary; qfiles/<name> will be created automatically if it does not
+# exist.
+
+# The format of the message printed for every delivered message, regardless of
+# whether the delivery was successful or not. Set to None to disable the
+# printing of this log message.
+SMTP_LOG_EVERY_MESSAGE = (
+ 'smtp',
+ '%(msg_message-id)s smtp for %(#recips)d recips, completed in %(time).3f seconds')
+
+# This will only be printed if there were no immediate smtp failures.
+# Mutually exclusive with SMTP_LOG_REFUSED.
+SMTP_LOG_SUCCESS = (
+ 'post',
+ 'post to %(listname)s from %(sender)s, size=%(size)d, success')
+
+# This will only be printed if there were any addresses which encountered an
+# immediate smtp failure. Mutually exclusive with SMTP_LOG_SUCCESS.
+SMTP_LOG_REFUSED = (
+ 'post',
+ 'post to %(listname)s from %(sender)s, size=%(size)d, %(#refused)d failures')
+
+# This will be logged for each specific recipient failure. Additional %()s
+# keys are:
+#
+# recipient -- the failing recipient address
+# failcode -- the smtp failure code
+# failmsg -- the actual smtp message, if available
+SMTP_LOG_EACH_FAILURE = (
+ 'smtp-failure',
+ 'delivery to %(recipient)s failed with code %(failcode)d: %(failmsg)s')
+
+# These variables control the format and frequency of VERP-like delivery for
+# better bounce detection. VERP is Variable Envelope Return Path, defined
+# here:
+#
+# http://cr.yp.to/proto/verp.txt
+#
+# This involves encoding the address of the recipient as we (Mailman) know it
+# into the envelope sender address (i.e. the SMTP `MAIL FROM:' address).
+# Thus, no matter what kind of forwarding the recipient has in place, should
+# it eventually bounce, we will receive an unambiguous notice of the bouncing
+# address.
+#
+# However, we're technically only "VERP-like" because we're doing the envelope
+# sender encoding in Mailman, not in the MTA. We do require cooperation from
+# the MTA, so you must be sure your MTA can be configured for extended address
+# semantics.
+#
+# The first variable describes how to encode VERP envelopes. It must contain
+# these three string interpolations:
+#
+# %(bounces)s -- the list-bounces mailbox will be set here
+# %(mailbox)s -- the recipient's mailbox will be set here
+# %(host)s -- the recipient's host name will be set here
+#
+# This example uses the default below.
+#
+# FQDN list address is: mylist@dom.ain
+# Recipient is: aperson@a.nother.dom
+#
+# The envelope sender will be mylist-bounces+aperson=a.nother.dom@dom.ain
+#
+# Note that your MTA /must/ be configured to deliver such an addressed message
+# to mylist-bounces!
+VERP_FORMAT = '%(bounces)s+%(mailbox)s=%(host)s'
+
+# The second describes a regular expression to unambiguously decode such an
+# address, which will be placed in the To: header of the bounce message by the
+# bouncing MTA. Getting this right is critical -- and tricky. Learn your
+# Python regular expressions. It must define exactly three named groups,
+# bounces, mailbox and host, with the same definition as above. It will be
+# compiled case-insensitively.
+VERP_REGEXP = r'^(?P<bounces>[^+]+?)\+(?P<mailbox>[^=]+)=(?P<host>[^@]+)@.*$'
+
+# A perfect opportunity for doing VERP is the password reminders, which are
+# already addressed individually to each recipient. This flag, if true,
+# enables VERPs on all password reminders.
+VERP_PASSWORD_REMINDERS = 0
+
+# Another good opportunity is when regular delivery is personalized. Here
+# again, we're already incurring the performance hit for addressing each
+# individual recipient. Set this to true to enable VERPs on all personalized
+# regular deliveries (personalized digests aren't supported yet).
+VERP_PERSONALIZED_DELIVERIES = 0
+
+# And finally, we can VERP normal, non-personalized deliveries. However,
+# because it can be a significant performance hit, we allow you to decide how
+# often to VERP regular deliveries. This is the interval, in number of
+# messages, to do a VERP recipient address. The same variable controls both
+# regular and digest deliveries. Set to 0 to disable occasional VERPs, set to
+# 1 to VERP every delivery, or to some number > 1 for only occasional VERPs.
+VERP_DELIVERY_INTERVAL = 0
+
+# For nicer confirmation emails, use a VERP-like format which encodes the
+# confirmation cookie in the reply address. This lets us put a more user
+# friendly Subject: on the message, but requires cooperation from the MTA.
+# Format is like VERP_FORMAT above, but with the following substitutions:
+#
+# %(confirm)s -- the list-confirm mailbox will be set here
+# %(cookie)s -- the confirmation cookie will be set here
+VERP_CONFIRM_FORMAT = '%(addr)s+%(cookie)s'
+
+# This is analogous to VERP_REGEXP, but for splitting apart the
+# VERP_CONFIRM_FORMAT.
+VERP_CONFIRM_REGEXP = r'^(?P<addr>[^+]+?)\+(?P<cookie>[^@]+)@.*$'
+
+# Set this to true to enable VERP-like (more user friendly) confirmations
+VERP_CONFIRMATIONS = 0
+
+# This is the maximum number of automatic responses sent to an address because
+# of -request messages or posting hold messages. This limit prevents response
+# loops between Mailman and misconfigured remote email robots. Mailman
+# already inhibits automatic replies to any message labeled with a header
+# "Precendence: bulk|list|junk". This is a fallback safety valve so it should
+# be set fairly high. Set to 0 for no limit (probably useful only for
+# debugging).
+MAX_AUTORESPONSES_PER_DAY = 10
+
+
+
+#####
+# Qrunner defaults
+#####
+
+# Which queues should the qrunner master watchdog spawn? This is a list of
+# 2-tuples containing the name of the qrunner class (which must live in a
+# module of the same name within the Mailman.Queue package), and the number of
+# parallel processes to fork for each qrunner. If more than one process is
+# used, each will take an equal subdivision of the hash space.
+
+# BAW: Eventually we may support weighted hash spaces.
+# BAW: Although not enforced, the # of slices must be a power of 2
+
+QRUNNERS = [
+ ('ArchRunner', 1), # messages for the archiver
+ ('BounceRunner', 1), # for processing the qfile/bounces directory
+ ('CommandRunner', 1), # commands and bounces from the outside world
+ ('IncomingRunner', 1), # posts from the outside world
+ ('NewsRunner', 1), # outgoing messages to the nntpd
+ ('OutgoingRunner', 1), # outgoing messages to the smtpd
+ ('VirginRunner', 1), # internally crafted (virgin birth) messages
+ ]
+
+# Set this to true to use the `Maildir' delivery option. If you change this
+# you will need to re-run bin/genaliases for MTAs that don't use list
+# auto-detection. Also, the line after USE_MAILDIR to your mm_cfg.py file.
+#
+# WARNING: If you want to use Maildir delivery, you /must/ start Mailman's
+# qrunner as root, or you will get permission problems.
+#
+# NOTE: Maildir delivery is experimental for Mailman 2.1.
+USE_MAILDIR = 0
+# QRUNNERS.append(('MaildirRunner', 1))
+
+# After processing every file in the qrunner's slice, how long should the
+# runner sleep for before checking the queue directory again for new files?
+# This can be a fraction of a second, or zero to check immediately
+# (essentially busy-loop as fast as possible).
+QRUNNER_SLEEP_TIME = seconds(1)
+
+# When a message that is unparsable (by the email package) is received, what
+# should we do with it? The most common cause of unparsable messages is
+# broken MIME encapsulation, and the most common cause of that is viruses like
+# Nimda. Set this variable to 0 to discard such messages, or to 1 to store
+# them in qfiles/bad subdirectory.
+QRUNNER_SAVE_BAD_MESSAGES = 1
+
+
+
+#####
+# General defaults
+#####
+
+# The default language for this server. Whenever we can't figure out the list
+# context or user context, we'll fall back to using this language. See
+# LC_DESCRIPTIONS below for legal values.
+DEFAULT_SERVER_LANGUAGE = 'en'
+
+# When allowing only members to post to a mailing list, how is the sender of
+# the message determined? If this variable is set to 1, then first the
+# message's envelope sender is used, with a fallback to the sender if there is
+# no envelope sender. Set this variable to 0 to always use the sender.
+#
+# The envelope sender is set by the SMTP delivery and is thus less easily
+# spoofed than the sender, which is typically just taken from the From: header
+# and thus easily spoofed by the end-user. However, sometimes the envelope
+# sender isn't set correctly and this will manifest itself by postings being
+# held for approval even if they appear to come from a list member. If you
+# are having this problem, set this variable to 0, but understand that some
+# spoofed messages may get through.
+USE_ENVELOPE_SENDER = 0
+
+# Membership tests for posting purposes are usually performed by looking at a
+# set of headers, passing the test if any of their values match a member of
+# the list. Headers are checked in the order given in this variable. The
+# value None means use the From_ (envelope sender) header. Field names are
+# case insensitive.
+SENDER_HEADERS = ('from', None, 'reply-to', 'sender')
+
+# How many members to display at a time on the admin cgi to unsubscribe them
+# or change their options?
+DEFAULT_ADMIN_MEMBER_CHUNKSIZE = 30
+
+# how many bytes of a held message post should be displayed in the admindb web
+# page? Use a negative number to indicate the entire message, regardless of
+# size (though this will slow down rendering those pages).
+ADMINDB_PAGE_TEXT_LIMIT = 4096
+
+# Set this variable to 1 to allow list owners to delete their own mailing
+# lists. You may not want to give them this power, in which case, setting
+# this variable to 0 instead requires list removal to be done by the site
+# administrator, via the command line script bin/rmlist.
+OWNERS_CAN_DELETE_THEIR_OWN_LISTS = 0
+
+# Set this variable to 1 to allow list owners to set the "personalized" flags
+# on their mailing lists. Turning these on tells Mailman to send separate
+# email messages to each user instead of batching them together for delivery
+# to the MTA. This gives each member a more personalized message, but can
+# have a heavy impact on the performance of your system.
+OWNERS_CAN_ENABLE_PERSONALIZATION = 0
+
+# Should held messages be saved on disk as Python pickles or as plain text?
+# The former is more efficient since we don't need to go through the
+# parse/generate roundtrip each time, but the latter might be preferred if you
+# want to edit the held message on disk.
+HOLD_MESSAGES_AS_PICKLES = 1
+
+# These define the available types of external message metadata formats, and
+# the one to use by default. MARSHAL format uses Python's built-in marshal
+# module. BSDDB_NATIVE uses the bsddb module compiled into Python, which
+# links with whatever version of Berkeley db you've got on your system (in
+# Python 2.0 this is included by default if configure can find it). ASCII
+# format is a dumb repr()-based format with "key = value" Python assignments.
+# It is human readable and editable (as Python source code) and is appropriate
+# for execfile() food.
+#
+# Note! Make sure your queues are empty before you change this.
+METAFMT_MARSHAL = 1
+METAFMT_BSDDB_NATIVE = 2
+METAFMT_ASCII = 3
+
+METADATA_FORMAT = METAFMT_MARSHAL
+
+# This variable controls the order in which list-specific category options are
+# presented in the admin cgi page.
+ADMIN_CATEGORIES = [
+ # First column
+ 'general', 'passwords', 'language', 'members', 'nondigest', 'digest',
+ # Second column
+ 'privacy', 'bounce', 'archive', 'gateway', 'autoreply',
+ 'contentfilter', 'topics',
+ ]
+
+# See "Bitfield for user options" below; make this a sum of those options, to
+# make all new members of lists start with those options flagged. We assume
+# by default that people don't want to receive two copies of posts. Note
+# however that the member moderation flag's initial value is controlled by the
+# list's config variable default_member_moderation.
+DEFAULT_NEW_MEMBER_OPTIONS = 256
+
+
+
+#####
+# List defaults
+#####
+
+# Should a list, by default be advertised? What is the default maximum number
+# of explicit recipients allowed? What is the default maximum message size
+# allowed?
+DEFAULT_LIST_ADVERTISED = 1
+DEFAULT_MAX_NUM_RECIPIENTS = 10
+DEFAULT_MAX_MESSAGE_SIZE = 40 # KB
+
+# These format strings will be expanded w.r.t. the dictionary for the
+# mailing list instance.
+DEFAULT_SUBJECT_PREFIX = "[%(real_name)s] "
+DEFAULT_MSG_HEADER = ""
+DEFAULT_MSG_FOOTER = """_______________________________________________
+%(real_name)s mailing list
+%(real_name)s@%(host_name)s
+%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
+"""
+
+# Mail command processor will ignore mail command lines after designated max.
+DEFAULT_MAIL_COMMANDS_MAX_LINES = 25
+
+# Is the list owner notified of admin requests immediately by mail, as well as
+# by daily pending-request reminder?
+DEFAULT_ADMIN_IMMED_NOTIFY = 1
+
+# Is the list owner notified of subscribes/unsubscribes?
+DEFAULT_ADMIN_NOTIFY_MCHANGES = 0
+
+# Should list members, by default, have their posts be moderated?
+DEFAULT_DEFAULT_MEMBER_MODERATION = 0
+
+# Should non-member posts which are auto-discarded also be forwarded to the
+# moderators?
+DEFAULT_FORWARD_AUTO_DISCARDS = 1
+
+# What shold happen to non-member posts which are do not match explicit
+# non-member actions?
+# 0 = Accept
+# 1 = Hold
+# 2 = Reject
+# 3 = Discard
+DEFAULT_GENERIC_NONMEMBER_ACTION = 1
+
+# Bounce if 'To:', 'Cc:', or 'Resent-To:' fields don't explicitly name list?
+# This is an anti-spam measure
+DEFAULT_REQUIRE_EXPLICIT_DESTINATION = 1
+
+# Alternate names acceptable as explicit destinations for this list.
+DEFAULT_ACCEPTABLE_ALIASES ="""
+"""
+# For mailing lists that have only other mailing lists for members:
+DEFAULT_UMBRELLA_LIST = 0
+
+# For umbrella lists, the suffix for the account part of address for
+# administrative notices (subscription confirmations, password reminders):
+DEFAULT_UMBRELLA_MEMBER_ADMIN_SUFFIX = "-owner"
+
+# This variable controls whether monthly password reminders are sent.
+DEFAULT_SEND_REMINDERS = 1
+
+# Send welcome messages to new users? Probably should keep this set to 1.
+DEFAULT_SEND_WELCOME_MSG = 1
+
+# Send goodbye messages to unsubscribed members? Probably should keep this
+# set to 1.
+DEFAULT_SEND_GOODBYE_MSG = 1
+
+# Wipe sender information, and make it look like the list-admin
+# address sends all messages
+DEFAULT_ANONYMOUS_LIST = 0
+
+# {header-name: regexp} spam filtering - we include some for example sake.
+DEFAULT_BOUNCE_MATCHING_HEADERS = """
+# Lines that *start* with a '#' are comments.
+to: friend@public.com
+message-id: relay.comanche.denmark.eu
+from: list@listme.com
+from: .*@uplinkpro.com
+"""
+
+# Mailman can be configured to "munge" Reply-To: headers for any passing
+# messages. One the one hand, there are a lot of good reasons not to munge
+# Reply-To: but on the other, people really seem to want this feature. See
+# the help for reply_goes_to_list in the web UI for links discussing the
+# issue.
+# 0 - Reply-To: not munged
+# 1 - Reply-To: set back to the list
+# 2 - Reply-To: set to an explicit value (reply_to_address)
+DEFAULT_REPLY_GOES_TO_LIST = 0
+
+# Mailman can be configured to strip any existing Reply-To: header, or simply
+# extend any existing Reply-To: with one based on the above setting. This is
+# a boolean variable.
+DEFAULT_FIRST_STRIP_REPLY_TO = 0
+
+# SUBSCRIBE POLICY
+# 0 - open list (only when ALLOW_OPEN_SUBSCRIBE is set to 1) **
+# 1 - confirmation required for subscribes
+# 2 - admin approval required for subscribes
+# 3 - both confirmation and admin approval required
+#
+# ** please do not choose option 0 if you are not allowing open
+# subscribes (next variable)
+DEFAULT_SUBSCRIBE_POLICY = 1
+
+# does this site allow completely unchecked subscriptions?
+ALLOW_OPEN_SUBSCRIBE = 0
+
+# The default policy for unsubscriptions. 0 (unmoderated unsubscribes) is
+# highly recommended!
+# 0 - unmoderated unsubscribes
+# 1 - unsubscribes require approval
+DEFAULT_UNSUBSCRIBE_POLICY = 0
+
+# Private_roster == 0: anyone can see, 1: members only, 2: admin only.
+DEFAULT_PRIVATE_ROSTER = 1
+
+# When exposing members, make them unrecognizable as email addrs, so
+# web-spiders can't pick up addrs for spam purposes.
+DEFAULT_OBSCURE_ADDRESSES = 1
+
+# RFC 2369 defines List-* headers which are added to every message sent
+# through to the mailing list membership. These are a very useful aid to end
+# users and should always be added. However, not all MUAs are compliant and
+# if a list's membership has many such users, they may clamor for these
+# headers to be suppressed. By setting this variable to 1, list owners will
+# be given the option to suppress these headers. By setting it to 0, list
+# owners will not be given the option to suppress these headers (although some
+# header suppression may still take place, i.e. for announce-only lists, or
+# lists with no archives).
+ALLOW_RFC2369_OVERRIDES = 1
+
+# Defaults for content filtering on mailing lists. DEFAULT_FILTER_CONTENT is
+# a flag which if set to true, turns on content filtering.
+DEFAULT_FILTER_CONTENT = 0
+
+# DEFAULT_FILTER_MIME_TYPES is a list of MIME types to be removed. This is a
+# list of strings of the format "maintype/subtype" or simply "maintype".
+# E.g. "text/html" strips all html attachments while "image" strips all image
+# types regardless of subtype (jpeg, gif, etc.).
+DEFAULT_FILTER_MIME_TYPES = []
+
+# DEFAULT_PASS_MIME_TYPES is a list of MIME types to be passed through. Format is the same as DEFAULT_FILTER_MIME_TYPES
+DEFAULT_PASS_MIME_TYPES = ['multipart/mixed',
+ 'multipart/alternative',
+ 'text/plain']
+
+# Whether text/html should be converted to text/plain after content filtering
+# is performed. Conversion is done according to HTML_TO_PLAIN_TEXT_COMMAND
+DEFAULT_CONVERT_HTML_TO_PLAINTEXT = 1
+
+# Default action to take on filtered messages.
+# 0 = Discard, 1 = Reject, 2 = Forward, 3 = Preserve
+DEFAULT_FILTER_ACTION = 0
+
+# Whether to allow list owners to preserve content filtered messages to a
+# special queue on the disk.
+OWNERS_CAN_PRESERVE_FILTERED_MESSAGES = 1
+
+# Check for administrivia in messages sent to the main list?
+DEFAULT_ADMINISTRIVIA = 1
+
+
+
+#####
+# Digestification defaults
+#####
+
+# Will list be available in non-digested form?
+DEFAULT_NONDIGESTABLE = 1
+
+# Will list be available in digested form?
+DEFAULT_DIGESTABLE = 1
+DEFAULT_DIGEST_HEADER = ""
+DEFAULT_DIGEST_FOOTER = DEFAULT_MSG_FOOTER
+
+DEFAULT_DIGEST_IS_DEFAULT = 0
+DEFAULT_MIME_IS_DEFAULT_DIGEST = 0
+DEFAULT_DIGEST_SIZE_THRESHHOLD = 30 # KB
+DEFAULT_DIGEST_SEND_PERIODIC = 1
+DEFAULT_PLAIN_DIGEST_KEEP_HEADERS = ['message', 'date', 'from',
+ 'subject', 'to', 'cc',
+ 'reply-to', 'organization']
+
+
+
+#####
+# Bounce processing defaults
+#####
+
+# Should we do any bounced mail response at all?
+DEFAULT_BOUNCE_PROCESSING = 1
+
+# Bounce processing works like this: when a bounce from a member is received,
+# we look up the `bounce info' for this member. If there is no bounce info,
+# this is the first bounce we've received from this member. In that case, we
+# record today's date, and initialize the bounce score (see below for initial
+# value).
+#
+# If there is existing bounce info for this member, we look at the last bounce
+# receive date. If this date is farther away from today than the `bounce
+# expiration interval', we throw away all the old data and initialize the
+# bounce score as if this were the first bounce from the member.
+#
+# Otherwise, we increment the bounce score. If we can determine whether the
+# bounce was soft or hard (i.e. transient or fatal), then we use a score value
+# of 0.5 for soft bounces and 1.0 for hard bounces. Note that we only score
+# one bounce per day. If the bounce score is then greater than the `bounce
+# threshold' we disable the member's address.
+#
+# After disabling the address, we can send warning messages to the member,
+# providing a confirmation cookie/url for them to use to re-enable their
+# delivery. After a configurable period of time, we'll delete the address.
+# When we delete the address due to bouncing, we'll send one last message to
+# the member.
+
+# Bounce scores greater than this value get disabled.
+DEFAULT_BOUNCE_SCORE_THRESHOLD = 5.0
+
+# Bounce information older than this interval is considered stale, and is
+# discarded.
+DEFAULT_BOUNCE_INFO_STALE_AFTER = days(7)
+
+# The number of notifications to send to the disabled/removed member before we
+# remove them from the list. A value of 0 means we remove the address
+# immediately (with one last notification). Note that the first one is sent
+# upon change of status to disabled.
+DEFAULT_BOUNCE_YOU_ARE_DISABLED_WARNINGS = 3
+
+# The interval of time between disabled warnings.
+DEFAULT_BOUNCE_YOU_ARE_DISABLED_WARNINGS_INTERVAL = days(7)
+
+# Does the list owner get messages to the -bounces (and -admin) address that
+# failed to match by the bounce detector?
+DEFAULT_BOUNCE_UNRECOGNIZED_GOES_TO_LIST_OWNER = 1
+
+# Notifications on bounce actions. The first specifies whether the list owner
+# should get a notification when a member is disabled due to bouncing, while
+# the second specifies whether the owner should get one when the member is
+# removed due to bouncing.
+DEFAULT_BOUNCE_NOTIFY_OWNER_ON_DISABLE = 1
+DEFAULT_BOUNCE_NOTIFY_OWNER_ON_REMOVAL = 1
+
+
+
+#####
+# General time limits
+#####
+
+# How long should subscriptions requests await confirmation before being
+# dropped?
+PENDING_REQUEST_LIFE = days(3)
+
+# How long should messages which have delivery failures continue to be
+# retried? After this period of time, a message that has failed recipients
+# will be dequeued and those recipients will never receive the message.
+DELIVERY_RETRY_PERIOD = days(5)
+
+
+
+#####
+# Lock management defaults
+#####
+
+# These variables control certain aspects of lock acquisition and retention.
+# They should be tuned as appropriate for your environment. All variables are
+# specified in units of floating point seconds. YOU MAY NEED TO TUNE THESE
+# VARIABLES DEPENDING ON THE SIZE OF YOUR LISTS, THE PERFORMANCE OF YOUR
+# HARDWARE, NETWORK AND GENERAL MAIL HANDLING CAPABILITIES, ETC.
+
+# Set this to true to turn on MailList object lock debugging messages, which
+# will be written to logs/locks. If you think you're having lock problems, or
+# just want to tune the locks for your system, turn on lock debugging.
+LIST_LOCK_DEBUGGING = 0
+
+# This variable specifies how long the lock will be retained for a specific
+# operation on a mailing list. Watch your logs/lock file and if you see a lot
+# of lock breakages, you might need to bump this up. However if you set this
+# too high, a faulty script (or incorrect use of bin/withlist) can prevent the
+# list from being used until the lifetime expires. This is probably one of
+# the most crucial tuning variables in the system.
+LIST_LOCK_LIFETIME = hours(5)
+
+# This variable specifies how long an attempt will be made to acquire a list
+# lock by the incoming qrunner process. If the lock acquisition times out,
+# the message will be re-queued for later delivery.
+LIST_LOCK_TIMEOUT = seconds(10)
+
+
+
+#####
+# Nothing below here is user configurable. Most of these values are in this
+# file for convenience. Don't change any of them or override any of them in
+# your mm_cfg.py file!
+#####
+
+# These directories are used to find various important files in the Mailman
+# installation. PREFIX and EXEC_PREFIX are set by configure and should point
+# to the installation directory of the Mailman package.
+PYTHON = '@PYTHON@'
+PREFIX = '@prefix@'
+EXEC_PREFIX = '@exec_prefix@'
+VAR_PREFIX = '@VAR_PREFIX@'
+
+# Work around a bogus autoconf 2.12 bug
+if EXEC_PREFIX == '${prefix}':
+ EXEC_PREFIX = PREFIX
+
+# CGI extension, change using configure script
+CGIEXT = '@CGIEXT@'
+
+# Group id that group-owns the Mailman installation
+MAILMAN_USER = '@MAILMAN_USER@'
+MAILMAN_GROUP = '@MAILMAN_GROUP@'
+
+# Enumeration for Mailman cgi widget types
+Toggle = 1
+Radio = 2
+String = 3
+Text = 4
+Email = 5
+EmailList = 6
+Host = 7
+Number = 8
+FileUpload = 9
+Select = 10
+Topics = 11
+Checkbox = 12
+# An "extended email list". Contents must be an email address or a ^-prefixed
+# regular expression. Used in the sender moderation text boxes.
+EmailListEx = 13
+
+# Held message disposition actions, for use between admindb.py and
+# ListAdmin.py.
+DEFER = 0
+APPROVE = 1
+REJECT = 2
+DISCARD = 3
+SUBSCRIBE = 4
+UNSUBSCRIBE = 5
+ACCEPT = 6
+HOLD = 7
+
+# Standard text field width
+TEXTFIELDWIDTH = 40
+
+# Bitfield for user options. See DEFAULT_NEW_MEMBER_OPTIONS above to set
+# defaults for all new lists.
+Digests = 0 # handled by other mechanism, doesn't need a flag.
+DisableDelivery = 1 # Obsolete; use set/getDeliveryStatus()
+DontReceiveOwnPosts = 2 # Non-digesters only
+AcknowledgePosts = 4
+DisableMime = 8 # Digesters only
+ConcealSubscription = 16
+SuppressPasswordReminder = 32
+ReceiveNonmatchingTopics = 64
+Moderate = 128
+DontReceiveDuplicates = 256
+
+# A mapping between short option tags and their flag
+OPTINFO = {'hide' : ConcealSubscription,
+ 'nomail' : DisableDelivery,
+ 'ack' : AcknowledgePosts,
+ 'notmetoo': DontReceiveOwnPosts,
+ 'digest' : 0,
+ 'plain' : DisableMime,
+ 'nodupes' : DontReceiveDuplicates
+ }
+
+# Authentication contexts.
+#
+# Mailman defines the following roles:
+
+# - User, a normal user who has no permissions except to change their personal
+# option settings
+# - List creator, someone who can create and delete lists, but cannot
+# (necessarily) configure the list.
+# - List moderator, someone who can tend to pending requests such as
+# subscription requests, or held messages
+# - List administrator, someone who has total control over a list, can
+# configure it, modify user options for members of the list, subscribe and
+# unsubscribe members, etc.
+# - Site administrator, someone who has total control over the entire site and
+# can do any of the tasks mentioned above. This person usually also has
+# command line access.
+
+UnAuthorized = 0
+AuthUser = 1 # Joe Shmoe User
+AuthCreator = 2 # List Creator / Destroyer
+AuthListAdmin = 3 # List Administrator (total control over list)
+AuthListModerator = 4 # List Moderator (can only handle held requests)
+AuthSiteAdmin = 5 # Site Administrator (total control over everything)
+
+# Useful directories
+LIST_DATA_DIR = os.path.join(VAR_PREFIX, 'lists')
+LOG_DIR = os.path.join(VAR_PREFIX, 'logs')
+LOCK_DIR = os.path.join(VAR_PREFIX, 'locks')
+DATA_DIR = os.path.join(VAR_PREFIX, 'data')
+SPAM_DIR = os.path.join(VAR_PREFIX, 'spam')
+WRAPPER_DIR = os.path.join(EXEC_PREFIX, 'mail')
+BIN_DIR = os.path.join(PREFIX, 'bin')
+SCRIPTS_DIR = os.path.join(PREFIX, 'scripts')
+TEMPLATE_DIR = os.path.join(PREFIX, 'templates')
+MESSAGES_DIR = os.path.join(PREFIX, 'messages')
+PUBLIC_ARCHIVE_FILE_DIR = os.path.join(VAR_PREFIX, 'archives', 'public')
+PRIVATE_ARCHIVE_FILE_DIR = os.path.join(VAR_PREFIX, 'archives', 'private')
+
+# Directories used by the qrunner subsystem
+QUEUE_DIR = os.path.join(VAR_PREFIX, 'qfiles')
+INQUEUE_DIR = os.path.join(QUEUE_DIR, 'in')
+OUTQUEUE_DIR = os.path.join(QUEUE_DIR, 'out')
+CMDQUEUE_DIR = os.path.join(QUEUE_DIR, 'commands')
+BOUNCEQUEUE_DIR = os.path.join(QUEUE_DIR, 'bounces')
+NEWSQUEUE_DIR = os.path.join(QUEUE_DIR, 'news')
+ARCHQUEUE_DIR = os.path.join(QUEUE_DIR, 'archive')
+SHUNTQUEUE_DIR = os.path.join(QUEUE_DIR, 'shunt')
+VIRGINQUEUE_DIR = os.path.join(QUEUE_DIR, 'virgin')
+BADQUEUE_DIR = os.path.join(QUEUE_DIR, 'bad')
+MAILDIR_DIR = os.path.join(QUEUE_DIR, 'maildir')
+
+# Other useful files
+PIDFILE = os.path.join(DATA_DIR, 'master-qrunner.pid')
+SITE_PW_FILE = os.path.join(DATA_DIR, 'adm.pw')
+LISTCREATOR_PW_FILE = os.path.join(DATA_DIR, 'creator.pw')
+
+# Import a bunch of version numbers
+from Version import *
+
+# Vgg: Language descriptions and charsets dictionary, any new supported
+# language must have a corresponding entry here. Key is the name of the
+# directories that hold the localized texts. Data are tuples with first
+# element being the description, as described in the catalogs, and second
+# element is the language charset. I have chosen code from /usr/share/locale
+# in my GNU/Linux. :-)
+def _(s):
+ return s
+
+LC_DESCRIPTIONS = {}
+
+def add_language(code, description, charset):
+ LC_DESCRIPTIONS[code] = (description, charset)
+
+add_language('big5', _('Traditional Chinese'), 'big5')
+add_language('cs', _('Czech'), 'iso-8859-2')
+add_language('de', _('German'), 'iso-8859-1')
+add_language('en', _('English (USA)'), 'us-ascii')
+add_language('es', _('Spanish (Spain)'), 'iso-8859-1')
+add_language('et', _('Estonian'), 'iso-8859-15')
+add_language('fi', _('Finnish'), 'iso-8859-1')
+add_language('fr', _('French'), 'iso-8859-1')
+add_language('gb', _('Simplified Chinese'), 'gb2312')
+add_language('hu', _('Hungarian'), 'iso-8859-2')
+add_language('it', _('Italian'), 'iso-8859-1')
+add_language('ja', _('Japanese'), 'euc-jp')
+add_language('ko', _('Korean'), 'euc-kr')
+add_language('lt', _('Lithuanian'), 'iso-8859-13')
+add_language('nl', _('Dutch'), 'iso-8859-1')
+add_language('no', _('Norwegian'), 'iso-8859-1')
+add_language('pt_BR', _('Portuguese (Brazil)'), 'iso-8859-1')
+add_language('ru', _('Russian'), 'koi8-r')
+add_language('sv', _('Swedish'), 'iso-8859-1')
+
+del _
diff --git a/Mailman/Deliverer.py b/Mailman/Deliverer.py
new file mode 100644
index 00000000..983a67d5
--- /dev/null
+++ b/Mailman/Deliverer.py
@@ -0,0 +1,136 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+
+"""Mixin class with message delivery routines."""
+
+from email.MIMEText import MIMEText
+from email.MIMEMessage import MIMEMessage
+
+from Mailman import mm_cfg
+from Mailman import Errors
+from Mailman import Utils
+from Mailman import Message
+from Mailman.i18n import _
+from Mailman.Logging.Syslog import syslog
+
+
+
+class Deliverer:
+ def SendSubscribeAck(self, name, password, digest, text=''):
+ pluser = self.getMemberLanguage(name)
+ if not self.send_welcome_msg:
+ return
+ if self.welcome_msg:
+ welcome = Utils.wrap(self.welcome_msg) + '\n'
+ else:
+ welcome = ''
+ if self.umbrella_list:
+ addr = self.GetMemberAdminEmail(name)
+ umbrella = Utils.wrap(_('''\
+Note: Since this is a list of mailing lists, administrative
+notices like the password reminder will be sent to
+your membership administrative address, %(addr)s.'''))
+ else:
+ umbrella = ''
+ # get the text from the template
+ text += Utils.maketext(
+ 'subscribeack.txt',
+ {'real_name' : self.real_name,
+ 'host_name' : self.host_name,
+ 'welcome' : welcome,
+ 'umbrella' : umbrella,
+ 'emailaddr' : self.GetListEmail(),
+ 'listinfo_url': self.GetScriptURL('listinfo', absolute=1),
+ 'optionsurl' : self.GetOptionsURL(name, absolute=1),
+ 'password' : password,
+ }, lang=pluser, mlist=self)
+ if digest:
+ digmode = _(' (Digest mode)')
+ else:
+ digmode = ''
+ realname = self.real_name
+ msg = Message.UserNotification(
+ self.GetMemberAdminEmail(name), self.GetRequestEmail(),
+ _('Welcome to the "%(realname)s" mailing list%(digmode)s'),
+ text, pluser)
+ msg['X-No-Archive'] = 'yes'
+ msg.send(self, verp=mm_cfg.VERP_PERSONALIZED_DELIVERIES)
+
+ def SendUnsubscribeAck(self, addr, lang):
+ realname = self.real_name
+ msg = Message.UserNotification(
+ self.GetMemberAdminEmail(addr), self.GetBouncesEmail(),
+ _('You have been unsubscribed from the %(realname)s mailing list'),
+ Utils.wrap(self.goodbye_msg), lang)
+ msg.send(self, verp=mm_cfg.VERP_PERSONALIZED_DELIVERIES)
+
+ def MailUserPassword(self, user):
+ listfullname = '%s@%s' % (self.real_name, self.host_name)
+ requestaddr = self.GetRequestEmail()
+ # find the lowercased version of the user's address
+ adminaddr = self.GetBouncesEmail()
+ assert self.isMember(user)
+ if not self.getMemberPassword(user):
+ # The user's password somehow got corrupted. Generate a new one
+ # for him, after logging this bogosity.
+ syslog('error', 'User %s had a false password for list %s',
+ user, self.internal_name())
+ waslocked = self.Locked()
+ if not waslocked:
+ self.Lock()
+ try:
+ self.setMemberPassword(user, Utils.MakeRandomPassword())
+ self.Save()
+ finally:
+ if not waslocked:
+ self.Unlock()
+ # Now send the user his password
+ cpuser = self.getMemberCPAddress(user)
+ recipient = self.GetMemberAdminEmail(cpuser)
+ subject = _('%(listfullname)s mailing list reminder')
+ # get the text from the template
+ text = Utils.maketext(
+ 'userpass.txt',
+ {'user' : cpuser,
+ 'listname' : self.real_name,
+ 'fqdn_lname' : self.GetListEmail(),
+ 'password' : self.getMemberPassword(user),
+ 'options_url': self.GetOptionsURL(user, absolute=1),
+ 'requestaddr': requestaddr,
+ 'owneraddr' : self.GetOwnerEmail(),
+ }, lang=self.getMemberLanguage(user), mlist=self)
+ msg = Message.UserNotification(recipient, adminaddr, subject, text,
+ self.getMemberLanguage(user))
+ msg['X-No-Archive'] = 'yes'
+ msg.send(self, verp=mm_cfg.VERP_PERSONALIZED_DELIVERIES)
+
+ def ForwardMessage(self, msg, text=None, subject=None, tomoderators=1):
+ # Wrap the message as an attachment
+ if text is None:
+ text = _('No reason given')
+ if subject is None:
+ text = _('(no subject)')
+ text = MIMEText(Utils.wrap(text),
+ _charset=Utils.GetCharSet(self.preferred_language))
+ attachment = MIMEMessage(msg)
+ notice = Message.OwnerNotification(
+ self, subject, tomoderators=tomoderators)
+ # Make it look like the message is going to the -owner address
+ notice.set_type('multipart/mixed')
+ notice.attach(text)
+ notice.attach(attachment)
+ notice.send(self)
diff --git a/Mailman/Digester.py b/Mailman/Digester.py
new file mode 100644
index 00000000..94b3dfd5
--- /dev/null
+++ b/Mailman/Digester.py
@@ -0,0 +1,73 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+
+"""Mixin class with list-digest handling methods and settings."""
+
+import os
+from stat import ST_SIZE
+import errno
+
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman import Errors
+from Mailman.Handlers import ToDigest
+from Mailman.i18n import _
+
+
+
+class Digester:
+ def InitVars(self):
+ # Configurable
+ self.digestable = mm_cfg.DEFAULT_DIGESTABLE
+ self.digest_is_default = mm_cfg.DEFAULT_DIGEST_IS_DEFAULT
+ self.mime_is_default_digest = mm_cfg.DEFAULT_MIME_IS_DEFAULT_DIGEST
+ self.digest_size_threshhold = mm_cfg.DEFAULT_DIGEST_SIZE_THRESHHOLD
+ self.digest_send_periodic = mm_cfg.DEFAULT_DIGEST_SEND_PERIODIC
+ self.next_post_number = 1
+ self.digest_header = mm_cfg.DEFAULT_DIGEST_HEADER
+ self.digest_footer = mm_cfg.DEFAULT_DIGEST_FOOTER
+ self.digest_volume_frequency = mm_cfg.DEFAULT_DIGEST_VOLUME_FREQUENCY
+ # Non-configurable.
+ self.one_last_digest = {}
+ self.digest_members = {}
+ self.next_digest_number = 1
+ self.digest_last_sent_at = 0
+
+ def send_digest_now(self):
+ # Note: Handler.ToDigest.send_digests() handles bumping the digest
+ # volume and issue number.
+ digestmbox = os.path.join(self.fullpath(), 'digest.mbox')
+ try:
+ try:
+ mboxfp = None
+ # See if there's a digest pending for this mailing list
+ if os.stat(digestmbox)[ST_SIZE] > 0:
+ mboxfp = open(digestmbox)
+ ToDigest.send_digests(self, mboxfp)
+ os.unlink(digestmbox)
+ finally:
+ if mboxfp:
+ mboxfp.close()
+ except OSError, e:
+ if e.errno <> errno.ENOENT: raise
+ # List has no outstanding digests
+ return 0
+ return 1
+
+ def bump_digest_volume(self):
+ self.volume += 1
+ self.next_digest_number = 1
diff --git a/Mailman/Errors.py b/Mailman/Errors.py
new file mode 100644
index 00000000..ce1868cc
--- /dev/null
+++ b/Mailman/Errors.py
@@ -0,0 +1,147 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+
+"""Shared mailman errors and messages."""
+
+
+# exceptions for problems related to opening a list
+class MMListError(Exception): pass
+class MMUnknownListError(MMListError): pass
+class MMCorruptListDatabaseError(MMListError): pass
+class MMListNotReadyError(MMListError): pass
+class MMListAlreadyExistsError(MMListError): pass
+class BadListNameError(MMListError): pass
+
+# Membership exceptions
+class MMMemberError(Exception): pass
+class MMBadUserError(MMMemberError): pass
+class MMAlreadyAMember(MMMemberError): pass
+
+# "New" style membership exceptions (new w/ MM2.1)
+class MemberError(Exception): pass
+class NotAMemberError(MemberError): pass
+class AlreadyReceivingDigests(MemberError): pass
+class AlreadyReceivingRegularDeliveries(MemberError): pass
+class CantDigestError(MemberError): pass
+class MustDigestError(MemberError): pass
+class MembershipIsBanned(MemberError): pass
+
+# Exception hierarchy for various authentication failures, can be
+# raised from functions in SecurityManager.py
+class MMAuthenticationError(Exception): pass
+class MMBadPasswordError(MMAuthenticationError): pass
+class MMPasswordsMustMatch(MMAuthenticationError): pass
+class MMCookieError(MMAuthenticationError): pass
+class MMExpiredCookieError(MMCookieError): pass
+class MMInvalidCookieError(MMCookieError): pass
+
+# BAW: these still need to be converted to classes.
+MMMustDigestError = "MMMustDigestError"
+MMCantDigestError = "MMCantDigestError"
+MMNeedApproval = "MMNeedApproval"
+MMSubscribeNeedsConfirmation = "MMSubscribeNeedsConfirmation"
+MMBadConfirmation = "MMBadConfirmation"
+MMAlreadyDigested = "MMAlreadyDigested"
+MMAlreadyUndigested = "MMAlreadyUndigested"
+
+MODERATED_LIST_MSG = "Moderated list"
+IMPLICIT_DEST_MSG = "Implicit destination"
+SUSPICIOUS_HEADER_MSG = "Suspicious header"
+FORBIDDEN_SENDER_MSG = "Forbidden sender"
+
+
+
+# New style class based exceptions. All the above errors should eventually be
+# converted.
+
+class MailmanError(Exception):
+ """Base class for all Mailman exceptions."""
+ pass
+
+
+class MMLoopingPost(MailmanError):
+ """Post already went through this list!"""
+ pass
+
+
+# Exception hierarchy for bad email address errors that can be raised from
+# Utils.ValidateEmail()
+class EmailAddressError(MailmanError):
+ """Base class for email address validation errors."""
+ pass
+
+class MMBadEmailError(EmailAddressError):
+ """Email address is invalid (empty string or not fully qualified)."""
+ pass
+
+class MMHostileAddress(EmailAddressError):
+ """Email address has potentially hostile characters in it."""
+ pass
+
+
+# Exceptions for admin request database
+class LostHeldMessage(MailmanError):
+ """Held message was lost."""
+ pass
+
+
+
+def _(s):
+ return s
+
+# Exceptions for the Handler subsystem
+class HandlerError(MailmanError):
+ """Base class for all handler errors."""
+
+class HoldMessage(HandlerError):
+ """Base class for all message-being-held short circuits."""
+
+ # funky spelling is necessary to break import loops
+ reason = _('For some unknown reason')
+
+ def reason_notice(self):
+ return self.reason
+
+ # funky spelling is necessary to break import loops
+ rejection = _('Your message was rejected')
+
+ def rejection_notice(self, mlist):
+ return self.rejection
+
+class DiscardMessage(HandlerError):
+ """The message can be discarded with no further action"""
+
+class SomeRecipientsFailed(HandlerError):
+ """Delivery to some or all recipients failed"""
+ def __init__(self, tempfailures, permfailures):
+ HandlerError.__init__(self)
+ self.tempfailures = tempfailures
+ self.permfailures = permfailures
+
+# multiple inheritance for backwards compatibility
+class LoopError(DiscardMessage, MMLoopingPost):
+ """We've seen this message before"""
+
+class RejectMessage(HandlerError):
+ """The message will be bounced back to the sender"""
+ def __init__(self, notice=None):
+ if notice is None:
+ notice = _('Your message was rejected')
+ self.__notice = notice
+
+ def notice(self):
+ return self.__notice
diff --git a/Mailman/GatewayManager.py b/Mailman/GatewayManager.py
new file mode 100644
index 00000000..fa338cd4
--- /dev/null
+++ b/Mailman/GatewayManager.py
@@ -0,0 +1,38 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Mixin class for configuring Usenet gateway.
+
+All the actual functionality is in Handlers/ToUsenet.py for the mail->news
+gateway and cron/gate_news for the news->mail gateway.
+
+"""
+
+from Mailman import mm_cfg
+from Mailman.i18n import _
+
+
+class GatewayManager:
+ def InitVars(self):
+ # Configurable
+ self.nntp_host = mm_cfg.DEFAULT_NNTP_HOST
+ self.linked_newsgroup = ''
+ self.gateway_to_news = 0
+ self.gateway_to_mail = 0
+ self.news_prefix_subject_too = 1
+ # In patch #401270, this was called newsgroup_is_moderated, but the
+ # semantics weren't quite the same.
+ self.news_moderation = 0
diff --git a/Mailman/Gui/.cvsignore b/Mailman/Gui/.cvsignore
new file mode 100644
index 00000000..f3c7a7c5
--- /dev/null
+++ b/Mailman/Gui/.cvsignore
@@ -0,0 +1 @@
+Makefile
diff --git a/Mailman/Gui/Archive.py b/Mailman/Gui/Archive.py
new file mode 100644
index 00000000..59c2fd10
--- /dev/null
+++ b/Mailman/Gui/Archive.py
@@ -0,0 +1,44 @@
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+from Mailman import mm_cfg
+from Mailman.i18n import _
+from Mailman.Gui.GUIBase import GUIBase
+
+
+
+class Archive(GUIBase):
+ def GetConfigCategory(self):
+ return 'archive', _('Archiving Options')
+
+ def GetConfigInfo(self, mlist, category, subcat=None):
+ if category <> 'archive':
+ return None
+ return [
+ _("List traffic archival policies."),
+
+ ('archive', mm_cfg.Toggle, (_('No'), _('Yes')), 0,
+ _('Archive messages?')),
+
+ ('archive_private', mm_cfg.Radio, (_('public'), _('private')), 0,
+ _('Is archive file source for public or private archival?')),
+
+ ('archive_volume_frequency', mm_cfg.Radio,
+ (_('Yearly'), _('Monthly'), _('Quarterly'),
+ _('Weekly'), _('Daily')),
+ 0,
+ _('How often should a new archive volume be started?')),
+ ]
diff --git a/Mailman/Gui/Autoresponse.py b/Mailman/Gui/Autoresponse.py
new file mode 100644
index 00000000..3c8a71e0
--- /dev/null
+++ b/Mailman/Gui/Autoresponse.py
@@ -0,0 +1,98 @@
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Administrative GUI for the autoresponder."""
+
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman.i18n import _
+from Mailman.Gui.GUIBase import GUIBase
+
+# These are the allowable string substitution variables
+ALLOWEDS = ('listname', 'listurl', 'requestemail', 'adminemail', 'owneremail')
+
+
+
+class Autoresponse(GUIBase):
+ def GetConfigCategory(self):
+ return 'autoreply', _('Auto-responder')
+
+ def GetConfigInfo(self, mlist, category, subcat=None):
+ if category <> 'autoreply':
+ return None
+ WIDTH = mm_cfg.TEXTFIELDWIDTH
+
+ return [
+ _("""\
+Auto-responder characteristics.<p>
+
+In the text fields below, string interpolation is performed with
+the following key/value substitutions:
+<p><ul>
+ <li><b>listname</b> - <em>gets the name of the mailing list</em>
+ <li><b>listurl</b> - <em>gets the list's listinfo URL</em>
+ <li><b>requestemail</b> - <em>gets the list's -request address</em>
+ <li><b>owneremail</b> - <em>gets the list's -owner address</em>
+</ul>
+
+<p>For each text field, you can either enter the text directly into the text
+box, or you can specify a file on your local system to upload as the text."""),
+
+ ('autorespond_postings', mm_cfg.Toggle, (_('No'), _('Yes')), 0,
+ _('''Should Mailman send an auto-response to mailing list
+ posters?''')),
+
+ ('autoresponse_postings_text', mm_cfg.FileUpload,
+ (6, WIDTH), 0,
+ _('Auto-response text to send to mailing list posters.')),
+
+ ('autorespond_admin', mm_cfg.Toggle, (_('No'), _('Yes')), 0,
+ _('''Should Mailman send an auto-response to emails sent to the
+ -owner address?''')),
+
+ ('autoresponse_admin_text', mm_cfg.FileUpload,
+ (6, WIDTH), 0,
+ _('Auto-response text to send to -owner emails.')),
+
+ ('autorespond_requests', mm_cfg.Radio,
+ (_('No'), _('Yes, w/discard'), _('Yes, w/forward')), 0,
+ _('''Should Mailman send an auto-response to emails sent to the
+ -request address? If you choose yes, decide whether you want
+ Mailman to discard the original email, or forward it on to the
+ system as a normal mail command.''')),
+
+ ('autoresponse_request_text', mm_cfg.FileUpload,
+ (6, WIDTH), 0,
+ _('Auto-response text to send to -request emails.')),
+
+ ('autoresponse_graceperiod', mm_cfg.Number, 3, 0,
+ _('''Number of days between auto-responses to either the mailing
+ list or -request/-owner address from the same poster. Set to
+ zero (or negative) for no grace period (i.e. auto-respond to
+ every message).''')),
+ ]
+
+ def _setValue(self, mlist, property, val, doc):
+ # Handle these specially because we may need to convert to/from
+ # external $-string representation.
+ if property in ('autoresponse_postings_text',
+ 'autoresponse_admin_text',
+ 'autoresponse_request_text'):
+ val = self._convertString(mlist, property, ALLOWEDS, val, doc)
+ if val is None:
+ # There was a problem, so don't set it
+ return
+ GUIBase._setValue(self, mlist, property, val, doc)
diff --git a/Mailman/Gui/Bounce.py b/Mailman/Gui/Bounce.py
new file mode 100644
index 00000000..4986cf28
--- /dev/null
+++ b/Mailman/Gui/Bounce.py
@@ -0,0 +1,183 @@
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+from Mailman import mm_cfg
+from Mailman.i18n import _
+from Mailman.mm_cfg import days
+from Mailman.Gui.GUIBase import GUIBase
+
+
+
+class Bounce(GUIBase):
+ def GetConfigCategory(self):
+ return 'bounce', _('Bounce processing')
+
+ def GetConfigInfo(self, mlist, category, subcat=None):
+ if category <> 'bounce':
+ return None
+ return [
+ _("""These policies control the automatic bounce processing system
+ in Mailman. Here's an overview of how it works.
+
+ <p>When a bounce is received, Mailman tries to extract two pieces
+ of information from the message: the address of the member the
+ message was intended for, and the severity of the problem causing
+ the bounce. The severity can be either <em>hard</em> or
+ <em>soft</em> meaning either a fatal error occurred, or a
+ transient error occurred. When in doubt, a hard severity is used.
+
+ <p>If no member address can be extracted from the bounce, then the
+ bounce is usually discarded. Otherwise, each member is assigned a
+ <em>bounce score</em> and every time we encounter a bounce from
+ this member we increment the score. Hard bounces increment by 1
+ while soft bounces increment by 0.5. We only increment the bounce
+ score once per day, so even if we receive ten hard bounces from a
+ member per day, their score will increase by only 1 for that day.
+
+ <p>When a member's bounce score is greater than the
+ <a href="?VARHELP=bounce/bounce_score_threshold">bounce score
+ threshold</a>, the subscription is disabled. Once disabled, the
+ member will not receive any postings from the list until their
+ membership is explicitly re-enabled (either by the list
+ administrator or the user). However, they will receive occasional
+ reminders that their membership has been disabled, and these
+ reminders will include information about how to re-enable their
+ membership.
+
+ <p>You can control both the
+ <a href="?VARHELP=bounce/bounce_you_are_disabled_warnings">number
+ of reminders</a> the member will receive and the
+ <a href="?VARHELP=bounce/bounce_you_are_disabled_warnings_interval"
+ >frequency</a> with which these reminders are sent.
+
+ <p>There is one other important configuration variable; after a
+ certain period of time -- during which no bounces from the member
+ are received -- the bounce information is
+ <a href="?VARHELP=bounce/bounce_info_stale_after">considered
+ stale</a> and discarded. Thus by adjusting this value, and the
+ score threshold, you can control how quickly bouncing members are
+ disabled. You should tune both of these to the frequency and
+ traffic volume of your list."""),
+
+ _('Bounce detection sensitivity'),
+
+ ('bounce_processing', mm_cfg.Toggle, (_('No'), _('Yes')), 0,
+ _('Should Mailman perform automatic bounce processing?'),
+ _("""By setting this value to <em>No</em>, you disable all
+ automatic bounce processing for this list, however bounce
+ messages will still be discarded so that the list administrator
+ isn't inundated with them.""")),
+
+ ('bounce_score_threshold', mm_cfg.Number, 5, 0,
+ _("""The maximum member bounce score before the member's
+ subscription is disabled. This value can be a floating point
+ number.""")),
+
+ ('bounce_info_stale_after', mm_cfg.Number, 5, 0,
+ _("""The number of days after which a member's bounce information
+ is discarded, if no new bounces have been received in the
+ interim. This value must be an integer.""")),
+
+ ('bounce_you_are_disabled_warnings', mm_cfg.Number, 5, 0,
+ _("""How many <em>Your Membership Is Disabled</em> warnings a
+ disabled member should get before their address is removed from
+ the mailing list. Set to 0 to immediately remove an address from
+ the list once their bounce score exceeds the threshold. This
+ value must be an integer.""")),
+
+ ('bounce_you_are_disabled_warnings_interval', mm_cfg.Number, 5, 0,
+ _("""The number of days between sending the <em>Your Membership
+ Is Disabled</em> warnings. This value must be an integer.""")),
+
+ _('Notifications'),
+
+ ('bounce_unrecognized_goes_to_list_owner', mm_cfg.Toggle,
+ (_('No'), _('Yes')), 0,
+ _('''Should Mailman send you, the list owner, any bounce messages
+ that failed to be detected by the bounce processor? <em>Yes</em>
+ is recommended.'''),
+ _("""While Mailman's bounce detector is fairly robust, it's
+ impossible to detect every bounce format in the world. You
+ should keep this variable set to <em>Yes</em> for two reasons: 1)
+ If this really is a permanent bounce from one of your members,
+ you should probably manually remove them from your list, and 2)
+ you might want to send the message on to the Mailman developers
+ so that this new format can be added to its known set.
+
+ <p>If you really can't be bothered, then set this variable to
+ <em>No</em> and all non-detected bounces will be discarded
+ without further processing.
+
+ <p><b>Note:</b> This setting will also affect all messages sent
+ to your list's -admin address. This address is deprecated and
+ should never be used, but some people may still send mail to this
+ address. If this happens, and this variable is set to
+ <em>No</em> those messages too will get discarded. You may want
+ to set up an
+ <a href="?VARHELP=autoreply/autoresponse_admin_text">autoresponse
+ message</a> for email to the -owner and -admin address.""")),
+
+ ('bounce_notify_owner_on_disable', mm_cfg.Toggle,
+ (_('No'), _('Yes')), 0,
+ _("""Should Mailman notify you, the list owner, when bounces
+ cause a member's subscription to be disabled?"""),
+ _("""By setting this value to <em>No</em>, you turn off
+ notification messages that are normally sent to the list owners
+ when a member's delivery is disabled due to excessive bounces.
+ An attempt to notify the member will always be made.""")),
+
+ ('bounce_notify_owner_on_removal', mm_cfg.Toggle,
+ (_('No'), _('Yes')), 0,
+ _("""Should Mailman notify you, the list owner, when bounces
+ cause a member to be unsubscribed?"""),
+ _("""By setting this value to <em>No</em>, you turn off
+ notification messages that are normally sent to the list owners
+ when a member is unsubscribed due to excessive bounces. An
+ attempt to notify the member will always be made.""")),
+
+ ]
+
+ def _setValue(self, mlist, property, val, doc):
+ # Do value conversion from web representation to internal
+ # representation.
+ try:
+ if property == 'bounce_processing':
+ val = int(val)
+ elif property == 'bounce_score_threshold':
+ val = float(val)
+ elif property == 'bounce_info_stale_after':
+ val = days(int(val))
+ elif property == 'bounce_you_are_disabled_warnings':
+ val = int(val)
+ elif property == 'bounce_you_are_disabled_warnings_interval':
+ val = days(int(val))
+ elif property == 'bounce_notify_owner_on_disable':
+ val = int(val)
+ elif property == 'bounce_notify_owner_on_removal':
+ val = int(val)
+ except ValueError:
+ doc.addError(
+ _("""Bad value for <a href="?VARHELP=bounce/%(property)s"
+ >%(property)s</a>: %(val)s"""),
+ tag = _('Error: '))
+ return
+ GUIBase._setValue(self, mlist, property, val, doc)
+
+ def getValue(self, mlist, kind, varname, params):
+ if varname not in ('bounce_info_stale_after',
+ 'bounce_you_are_disabled_warnings_interval'):
+ return None
+ return int(getattr(mlist, varname) / days(1))
diff --git a/Mailman/Gui/ContentFilter.py b/Mailman/Gui/ContentFilter.py
new file mode 100644
index 00000000..cb7ed95c
--- /dev/null
+++ b/Mailman/Gui/ContentFilter.py
@@ -0,0 +1,169 @@
+# Copyright (C) 2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""GUI component managing the content filtering options.
+"""
+
+from Mailman import mm_cfg
+from Mailman.i18n import _
+from Mailman.Gui.GUIBase import GUIBase
+
+NL = '\n'
+
+
+
+class ContentFilter(GUIBase):
+ def GetConfigCategory(self):
+ return 'contentfilter', _('Content&nbsp;filtering')
+
+ def GetConfigInfo(self, mlist, category, subcat=None):
+ if category <> 'contentfilter':
+ return None
+ WIDTH = mm_cfg.TEXTFIELDWIDTH
+
+ actions = [_('Discard'), _('Reject'), _('Forward to List Owner')]
+ if mm_cfg.OWNERS_CAN_PRESERVE_FILTERED_MESSAGES:
+ actions.append(_('Preserve'))
+
+ return [
+ _("""Policies concerning the content of list traffic.
+
+ <p>Content filtering works like this: when a message is
+ received by the list and you have enabled content filtering, the
+ individual attachments are first compared to the
+ <a href="?VARHELP=contentfilter/filter_mime_types">filter
+ types</a>. If the attachment type matches an entry in the filter
+ types, it is discarded.
+
+ <p>Then, if there are <a
+ href="?VARHELP=contentfilter/pass_mime_types">pass types</a>
+ defined, any attachment type that does <em>not</em> match a
+ pass type is also discarded. If there are no pass types defined,
+ this check is skipped.
+
+ <p>After this initial filtering, any <tt>multipart</tt>
+ attachments that are empty are removed. If the outer message is
+ left empty after this filtering, then the whole message is
+ discarded. Then, each <tt>multipart/alternative</tt> section will
+ be replaced by just the first alternative that is non-empty after
+ filtering.
+
+ <p>Finally, any <tt>text/html</tt> parts that are left in the
+ message may be converted to <tt>text/plain</tt> if
+ <a href="?VARHELP=contentfilter/convert_html_to_plaintext"
+ >convert_html_to_plaintext</a> is enabled and the site is
+ configured to allow these conversions."""),
+
+ ('filter_content', mm_cfg.Radio, (_('No'), _('Yes')), 0,
+ _("""Should Mailman filter the content of list traffic according
+ to the settings below?""")),
+
+ ('filter_mime_types', mm_cfg.Text, (10, WIDTH), 0,
+ _("""Remove message attachments that have a matching content
+ type."""),
+
+ _("""Use this option to remove each message attachment that
+ matches one of these content types. Each line should contain a
+ string naming a MIME <tt>type/subtype</tt>,
+ e.g. <tt>image/gif</tt>. Leave off the subtype to remove all
+ parts with a matching major content type, e.g. <tt>image</tt>.
+
+ <p>Blank lines are ignored.
+
+ <p>See also <a href="?VARHELP=contentfilter/pass_mime_types"
+ >pass_mime_types</a> for a content type whitelist.""")),
+
+ ('pass_mime_types', mm_cfg.Text, (10, WIDTH), 0,
+ _("""Remove message attachments that don't have a matching
+ content type. Leave this field blank to skip this filter
+ test."""),
+
+ _("""Use this option to remove each message attachment that does
+ not have a matching content type. Requirements and formats are
+ exactly like <a href="?VARHELP=contentfilter/filter_mime_types"
+ >filter_mime_types</a>.
+
+ <p><b>Note:</b> if you add entries to this list but don't add
+ <tt>multipart</tt> to this list, any messages with attachments
+ will be rejected by the pass filter.""")),
+
+ ('convert_html_to_plaintext', mm_cfg.Radio, (_('No'), _('Yes')), 0,
+ _("""Should Mailman convert <tt>text/html</tt> parts to plain
+ text? This conversion happens after MIME attachments have been
+ stripped.""")),
+
+ ('filter_action', mm_cfg.Radio, tuple(actions), 0,
+
+ _("""Action to take when a message matches the content filtering
+ rules."""),
+
+ _("""One of these actions is take when the message matches one of
+ the content filtering rules, meaning, the top-level
+ content type matches one of the <a
+ href="?VARHELP=contentfilter/filter_mime_types"
+ >filter_mime_types</a>, or the top-level content type does
+ <strong>not</strong> match one of the
+ <a href="?VARHELP=contentfilter/pass_mime_types"
+ >pass_mime_types</a>, or if after filtering the subparts of the
+ message, the message ends up empty.
+
+ <p>Note this action is not taken if after filtering the message
+ still contains content. In that case the message is always
+ forwarded on to the list membership.
+
+ <p>When messages are discarded, a log entry is written
+ containing the Message-ID of the discarded message. When
+ messages are rejected or forwarded to the list owner, a reason
+ for the rejection is included in the bounce message to the
+ original author. When messages are preserved, they are saved in
+ a special queue directory on disk for the site administrator to
+ view (and possibly rescue) but otherwise discarded. This last
+ option is only available if enabled by the site
+ administrator.""")),
+ ]
+
+ def _setValue(self, mlist, property, val, doc):
+ if property in ('filter_mime_types', 'pass_mime_types'):
+ types = []
+ for spectype in [s.strip() for s in val.splitlines()]:
+ ok = 1
+ slashes = spectype.count('/')
+ if slashes == 0 and not spectype:
+ ok = 0
+ elif slashes == 1:
+ maintype, subtype = [s.strip().lower()
+ for s in spectype.split('/')]
+ if not maintype or not subtype:
+ ok = 0
+ elif slashes > 1:
+ ok = 0
+ if not ok:
+ doc.addError(_('Bad MIME type ignored: %(spectype)s'))
+ else:
+ types.append(spectype.strip().lower())
+ if property == 'filter_mime_types':
+ mlist.filter_mime_types = types
+ elif property == 'pass_mime_types':
+ mlist.pass_mime_types = types
+ else:
+ GUIBase._setValue(self, mlist, property, val, doc)
+
+ def getValue(self, mlist, kind, property, params):
+ if property == 'filter_mime_types':
+ return NL.join(mlist.filter_mime_types)
+ if property == 'pass_mime_types':
+ return NL.join(mlist.pass_mime_types)
+ return None
diff --git a/Mailman/Gui/Digest.py b/Mailman/Gui/Digest.py
new file mode 100644
index 00000000..7eb486c7
--- /dev/null
+++ b/Mailman/Gui/Digest.py
@@ -0,0 +1,160 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Administrative GUI for digest deliveries."""
+
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman.i18n import _
+
+# Intra-package import
+from Mailman.Gui.GUIBase import GUIBase
+
+# Common b/w nondigest and digest headers & footers. Personalizations may add
+# to this.
+ALLOWEDS = ('real_name', 'list_name', 'host_name', 'web_page_url',
+ 'description', 'info', 'cgiext', '_internal_name',
+ )
+
+
+
+class Digest(GUIBase):
+ def GetConfigCategory(self):
+ return 'digest', _('Digest options')
+
+ def GetConfigInfo(self, mlist, category, subcat=None):
+ if category <> 'digest':
+ return None
+ WIDTH = mm_cfg.TEXTFIELDWIDTH
+
+ info = [
+ _("Batched-delivery digest characteristics."),
+
+ ('digestable', mm_cfg.Toggle, (_('No'), _('Yes')), 1,
+ _('Can list members choose to receive list traffic '
+ 'bunched in digests?')),
+
+ ('digest_is_default', mm_cfg.Radio,
+ (_('Regular'), _('Digest')), 0,
+ _('Which delivery mode is the default for new users?')),
+
+ ('mime_is_default_digest', mm_cfg.Radio,
+ (_('Plain'), _('MIME')), 0,
+ _('When receiving digests, which format is default?')),
+
+ ('digest_size_threshhold', mm_cfg.Number, 3, 0,
+ _('How big in Kb should a digest be before it gets sent out?')),
+ # Should offer a 'set to 0' for no size threshhold.
+
+ ('digest_send_periodic', mm_cfg.Radio, (_('No'), _('Yes')), 1,
+ _('Should a digest be dispatched daily when the size threshold '
+ "isn't reached?")),
+
+ ('digest_header', mm_cfg.Text, (4, WIDTH), 0,
+ _('Header added to every digest'),
+ _("Text attached (as an initial message, before the table"
+ " of contents) to the top of digests. ")
+ + Utils.maketext('headfoot.html', raw=1, mlist=mlist)),
+
+ ('digest_footer', mm_cfg.Text, (4, WIDTH), 0,
+ _('Footer added to every digest'),
+ _("Text attached (as a final message) to the bottom of digests. ")
+ + Utils.maketext('headfoot.html', raw=1, mlist=mlist)),
+
+ ('digest_volume_frequency', mm_cfg.Radio,
+ (_('Yearly'), _('Monthly'), _('Quarterly'),
+ _('Weekly'), _('Daily')), 0,
+ _('How often should a new digest volume be started?'),
+ _('''When a new digest volume is started, the volume number is
+ incremented and the issue number is reset to 1.''')),
+
+ ('_new_volume', mm_cfg.Toggle, (_('No'), _('Yes')), 0,
+ _('Should Mailman start a new digest volume?'),
+ _('''Setting this option instructs Mailman to start a new volume
+ with the next digest sent out.''')),
+
+ ('_send_digest_now', mm_cfg.Toggle, (_('No'), _('Yes')), 0,
+ _('''Should Mailman send the next digest right now, if it is not
+ empty?''')),
+ ]
+
+## if mm_cfg.OWNERS_CAN_ENABLE_PERSONALIZATION:
+## info.extend([
+## ('digest_personalize', mm_cfg.Toggle, (_('No'), _('Yes')), 1,
+
+## _('''Should Mailman personalize each digest delivery?
+## This is often useful for announce-only lists, but <a
+## href="?VARHELP=digest/digest_personalize">read the details</a>
+## section for a discussion of important performance
+## issues.'''),
+
+## _("""Normally, Mailman sends the digest messages to
+## the mail server in batches. This is much more efficent
+## because it reduces the amount of traffic between Mailman and
+## the mail server.
+
+## <p>However, some lists can benefit from a more personalized
+## approach. In this case, Mailman crafts a new message for
+## each member on the digest delivery list. Turning this on
+## adds a few more expansion variables that can be included in
+## the <a href="?VARHELP=digest/digest_header">message header</a>
+## and <a href="?VARHELP=digest/digest_footer">message footer</a>
+## but it may degrade the performance of your site as
+## a whole.
+
+## <p>You need to carefully consider whether the trade-off is
+## worth it, or whether there are other ways to accomplish what
+## you want. You should also carefully monitor your system load
+## to make sure it is acceptable.
+
+## <p>These additional substitution variables will be available
+## for your headers and footers, when this feature is enabled:
+
+## <ul><li><b>user_address</b> - The address of the user,
+## coerced to lower case.
+## <li><b>user_delivered_to</b> - The case-preserved address
+## that the user is subscribed with.
+## <li><b>user_password</b> - The user's password.
+## <li><b>user_name</b> - The user's full name.
+## <li><b>user_optionsurl</b> - The url to the user's option
+## page.
+## """))
+## ])
+
+ return info
+
+ def _setValue(self, mlist, property, val, doc):
+ # Watch for the special, immediate action attributes
+ if property == '_new_volume' and val:
+ mlist.bump_digest_volume()
+ volume = mlist.volume
+ number = mlist.next_digest_number
+ doc.AddItem(_("""The next digest will be sent as volume
+ %(volume)s, number %(number)s"""))
+ elif property == '_send_digest_now' and val:
+ status = mlist.send_digest_now()
+ if status:
+ doc.AddItem(_("""A digest has been sent."""))
+ else:
+ doc.AddItem(_("""There was no digest to send."""))
+ else:
+ # Everything else...
+ if property in ('digest_header', 'digest_footer'):
+ val = self._convertString(mlist, property, ALLOWEDS, val, doc)
+ if val is None:
+ # There was a problem, so don't set it
+ return
+ GUIBase._setValue(self, mlist, property, val, doc)
diff --git a/Mailman/Gui/GUIBase.py b/Mailman/Gui/GUIBase.py
new file mode 100644
index 00000000..7062235e
--- /dev/null
+++ b/Mailman/Gui/GUIBase.py
@@ -0,0 +1,200 @@
+# Copyright (C) 2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Base class for all web GUI components."""
+
+import re
+from types import TupleType, ListType
+
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman import Errors
+from Mailman.i18n import _
+
+NL = '\n'
+BADJOINER = '</code>, <code>'
+
+
+
+class GUIBase:
+ # Providing a common interface for GUI component form processing. Most
+ # GUI components won't need to override anything, but some may want to
+ # override _setValue() to provide some specialized processing for some
+ # attributes.
+ def _getValidValue(self, mlist, property, wtype, val):
+ # Coerce and validate the new value.
+ #
+ # Radio buttons and boolean toggles both have integral type
+ if wtype in (mm_cfg.Radio, mm_cfg.Toggle):
+ # Let ValueErrors propagate
+ return int(val)
+ # String and Text widgets both just return their values verbatim
+ if wtype in (mm_cfg.String, mm_cfg.Text):
+ return val
+ # This widget contains a single email address
+ if wtype == mm_cfg.Email:
+ # BAW: We must allow blank values otherwise reply_to_address can't
+ # be cleared. This is currently the only mm_cfg.Email type widget
+ # in the interface, so watch out if we ever add any new ones.
+ if val:
+ # Let MMBadEmailError and MMHostileAddress propagate
+ Utils.ValidateEmail(val)
+ return val
+ # These widget types contain lists of email addresses, one per line.
+ # The EmailListEx allows each line to contain either an email address
+ # or a regular expression
+ if wtype in (mm_cfg.EmailList, mm_cfg.EmailListEx):
+ # BAW: value might already be a list, if this is coming from
+ # config_list input. Sigh.
+ if isinstance(val, ListType):
+ return val
+ addrs = []
+ for addr in [s.strip() for s in val.split(NL)]:
+ # Discard empty lines
+ if not addr:
+ continue
+ try:
+ # This throws an exception if the address is invalid
+ Utils.ValidateEmail(addr)
+ except Errors.EmailAddressError:
+ # See if this is a context that accepts regular
+ # expressions, and that the re is legal
+ if wtype == mm_cfg.EmailListEx and addr.startswith('^'):
+ try:
+ re.compile(addr)
+ except re.error:
+ raise ValueError
+ else:
+ raise
+ addrs.append(addr)
+ return addrs
+ # This is a host name, i.e. verbatim
+ if wtype == mm_cfg.Host:
+ return val
+ # This is a number, either a float or an integer
+ if wtype == mm_cfg.Number:
+ num = -1
+ try:
+ num = int(val)
+ except ValueError:
+ # Let ValueErrors percolate up
+ num = float(val)
+ if num < 0:
+ return getattr(mlist, property)
+ return num
+ # This widget is a select box, i.e. verbatim
+ if wtype == mm_cfg.Select:
+ return val
+ # Checkboxes return a list of the selected items, even if only one is
+ # selected.
+ if wtype == mm_cfg.Checkbox:
+ if isinstance(val, ListType):
+ return val
+ return [val]
+ if wtype == mm_cfg.FileUpload:
+ return val
+ if wtype == mm_cfg.Topics:
+ return val
+ # Should never get here
+ assert 0, 'Bad gui widget type: %s' % wtype
+
+ def _setValue(self, mlist, property, val, doc):
+ # Set the value, or override to take special action on the property
+ if not property.startswith('_') and getattr(mlist, property) <> val:
+ setattr(mlist, property, val)
+
+ def _postValidate(self, mlist, doc):
+ # Validate all the attributes for this category
+ pass
+
+ def handleForm(self, mlist, category, subcat, cgidata, doc):
+ for item in self.GetConfigInfo(mlist, category, subcat):
+ # Skip descriptions and legacy non-attributes
+ if not isinstance(item, TupleType) or len(item) < 5:
+ continue
+ # Unpack the gui item description
+ property, wtype, args, deps, desc = item[0:5]
+ # BAW: I know this code is a little crufty but I wanted to
+ # reproduce the semantics of the original code in admin.py as
+ # closely as possible, for now. We can clean it up later.
+ #
+ # The property may be uploadable...
+ uploadprop = property + '_upload'
+ if cgidata.has_key(uploadprop) and cgidata[uploadprop].value:
+ val = cgidata[uploadprop].value
+ elif not cgidata.has_key(property):
+ continue
+ elif isinstance(cgidata[property], ListType):
+ val = [x.value for x in cgidata[property]]
+ else:
+ val = cgidata[property].value
+ # Coerce the value to the expected type, raising exceptions if the
+ # value is invalid
+ try:
+ val = self._getValidValue(mlist, property, wtype, val)
+ except ValueError:
+ doc.addError(_('Invalid value for variable: %(property)s'))
+ # This is the parent of MMBadEmailError and MMHostileAddress
+ except Errors.EmailAddressError:
+ doc.addError(
+ _('Bad email address for option %(property)s: %(val)s'))
+ else:
+ # Set the attribute, which will normally delegate to the mlist
+ self._setValue(mlist, property, val, doc)
+ # Do a final sweep once all the attributes have been set. This is how
+ # we can do cross-attribute assertions
+ self._postValidate(mlist, doc)
+
+ # Convenience method for handling $-string attributes
+ def _convertString(self, mlist, property, alloweds, val, doc):
+ # Is the list using $-strings?
+ dollarp = getattr(mlist, 'use_dollar_strings', 0)
+ if dollarp:
+ ids = Utils.dollar_identifiers(val)
+ else:
+ # %-strings
+ ids = Utils.percent_identifiers(val)
+ # Here's the list of allowable interpolations
+ for allowed in alloweds:
+ if ids.has_key(allowed):
+ del ids[allowed]
+ if ids:
+ # What's left are not allowed
+ badkeys = ids.keys()
+ badkeys.sort()
+ bad = BADJOINER.join(badkeys)
+ doc.addError(_(
+ """The following illegal substitution variables were
+ found in the <code>%(property)s</code> string:
+ <code>%(bad)s</code>
+ <p>Your list may not operate properly until you correct this
+ problem."""), tag=_('Warning: '))
+ return val
+ # Now if we're still using %-strings, do a roundtrip conversion and
+ # see if the converted value is the same as the new value. If not,
+ # then they probably left off a trailing `s'. We'll warn them and use
+ # the corrected string.
+ if not dollarp:
+ fixed = Utils.to_percent(Utils.to_dollar(val))
+ if fixed <> val:
+ doc.addError(_(
+ """Your <code>%(property)s</code> string appeared to
+ have some correctable problems in its new value.
+ The fixed value will be used instead. Please
+ double check that this is what you intended.
+ """))
+ return fixed
+ return val
diff --git a/Mailman/Gui/General.py b/Mailman/Gui/General.py
new file mode 100644
index 00000000..a33d1004
--- /dev/null
+++ b/Mailman/Gui/General.py
@@ -0,0 +1,446 @@
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""MailList mixin class managing the general options.
+"""
+
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman import Errors
+from Mailman.i18n import _
+from Mailman.Gui.GUIBase import GUIBase
+
+OPTIONS = ('hide', 'ack', 'notmetoo', 'nodupes')
+
+
+
+class General(GUIBase):
+ def GetConfigCategory(self):
+ return 'general', _('General Options')
+
+ def GetConfigInfo(self, mlist, category, subcat):
+ if category <> 'general':
+ return None
+ WIDTH = mm_cfg.TEXTFIELDWIDTH
+
+ # These are for the default_options checkboxes below.
+ bitfields = {'hide' : mm_cfg.ConcealSubscription,
+ 'ack' : mm_cfg.AcknowledgePosts,
+ 'notmetoo' : mm_cfg.DontReceiveOwnPosts,
+ 'nodupes' : mm_cfg.DontReceiveDuplicates
+ }
+ bitdescrs = {
+ 'hide' : _("Conceal the member's address"),
+ 'ack' : _("Acknowledge the member's posting"),
+ 'notmetoo' : _("Do not send a copy of a member's own post"),
+ 'nodupes' :
+ _('Filter out duplicate messages to list members (if possible)'),
+ }
+
+ optvals = [mlist.new_member_options & bitfields[o] for o in OPTIONS]
+ opttext = [bitdescrs[o] for o in OPTIONS]
+
+ rtn = [
+ _('''Fundamental list characteristics, including descriptive
+ info and basic behaviors.'''),
+
+ _('General list personality'),
+
+ ('real_name', mm_cfg.String, WIDTH, 0,
+ _('The public name of this list (make case-changes only).'),
+ _('''The capitalization of this name can be changed to make it
+ presentable in polite company as a proper noun, or to make an
+ acronym part all upper case, etc. However, the name will be
+ advertised as the email address (e.g., in subscribe confirmation
+ notices), so it should <em>not</em> be otherwise altered. (Email
+ addresses are not case sensitive, but they are sensitive to
+ almost everything else :-)''')),
+
+ ('owner', mm_cfg.EmailList, (3, WIDTH), 0,
+ _("""The list administrator email addresses. Multiple
+ administrator addresses, each on separate line is okay."""),
+
+ _('''There are two ownership roles associated with each mailing
+ list. The <em>list administrators</em> are the people who have
+ ultimate control over all parameters of this mailing list. They
+ are able to change any list configuration variable available
+ through these administration web pages.
+
+ <p>The <em>list moderators</em> have more limited permissions;
+ they are not able to change any list configuration variable, but
+ they are allowed to tend to pending administration requests,
+ including approving or rejecting held subscription requests, and
+ disposing of held postings. Of course, the <em>list
+ administrators</em> can also tend to pending requests.
+
+ <p>In order to split the list ownership duties into
+ administrators and moderators, you must
+ <a href="passwords">set a separate moderator password</a>,
+ and also provide the <a href="?VARHELP=general/moderator">email
+ addresses of the list moderators</a>. Note that the field you
+ are changing here specifies the list administrators.''')),
+
+ ('moderator', mm_cfg.EmailList, (3, WIDTH), 0,
+ _("""The list moderator email addresses. Multiple
+ moderator addresses, each on separate line is okay."""),
+
+ _('''There are two ownership roles associated with each mailing
+ list. The <em>list administrators</em> are the people who have
+ ultimate control over all parameters of this mailing list. They
+ are able to change any list configuration variable available
+ through these administration web pages.
+
+ <p>The <em>list moderators</em> have more limited permissions;
+ they are not able to change any list configuration variable, but
+ they are allowed to tend to pending administration requests,
+ including approving or rejecting held subscription requests, and
+ disposing of held postings. Of course, the <em>list
+ administrators</em> can also tend to pending requests.
+
+ <p>In order to split the list ownership duties into
+ administrators and moderators, you must
+ <a href="passwords">set a separate moderator password</a>,
+ and also provide the email addresses of the list moderators in
+ this section. Note that the field you are changing here
+ specifies the list moderators.''')),
+
+ ('description', mm_cfg.String, WIDTH, 0,
+ _('A terse phrase identifying this list.'),
+
+ _('''This description is used when the mailing list is listed with
+ other mailing lists, or in headers, and so forth. It should
+ be as succinct as you can get it, while still identifying what
+ the list is.''')),
+
+ ('info', mm_cfg.Text, (7, WIDTH), 0,
+ _('''An introductory description - a few paragraphs - about the
+ list. It will be included, as html, at the top of the listinfo
+ page. Carriage returns will end a paragraph - see the details
+ for more info.'''),
+ _("""The text will be treated as html <em>except</em> that
+ newlines will be translated to &lt;br&gt; - so you can use links,
+ preformatted text, etc, but don't put in carriage returns except
+ where you mean to separate paragraphs. And review your changes -
+ bad html (like some unterminated HTML constructs) can prevent
+ display of the entire listinfo page.""")),
+
+ ('subject_prefix', mm_cfg.String, WIDTH, 0,
+ _('Prefix for subject line of list postings.'),
+ _("""This text will be prepended to subject lines of messages
+ posted to the list, to distinguish mailing list messages in in
+ mailbox summaries. Brevity is premium here, it's ok to shorten
+ long mailing list names to something more concise, as long as it
+ still identifies the mailing list.""")),
+
+ ('anonymous_list', mm_cfg.Radio, (_('No'), _('Yes')), 0,
+ _("""Hide the sender of a message, replacing it with the list
+ address (Removes From, Sender and Reply-To fields)""")),
+
+ _('''<tt>Reply-To:</tt> header munging'''),
+
+ ('first_strip_reply_to', mm_cfg.Radio, (_('No'), _('Yes')), 0,
+ _('''Should any existing <tt>Reply-To:</tt> header found in the
+ original message be stripped? If so, this will be done
+ regardless of whether an explict <tt>Reply-To:</tt> header is
+ added by Mailman or not.''')),
+
+ ('reply_goes_to_list', mm_cfg.Radio,
+ (_('Poster'), _('This list'), _('Explicit address')), 0,
+ _('''Where are replies to list messages directed?
+ <tt>Poster</tt> is <em>strongly</em> recommended for most mailing
+ lists.'''),
+
+ # Details for reply_goes_to_list
+ _("""This option controls what Mailman does to the
+ <tt>Reply-To:</tt> header in messages flowing through this
+ mailing list. When set to <em>Poster</em>, no <tt>Reply-To:</tt>
+ header is added by Mailman, although if one is present in the
+ original message, it is not stripped. Setting this value to
+ either <em>This list</em> or <em>Explicit address</em> causes
+ Mailman to insert a specific <tt>Reply-To:</tt> header in all
+ messages, overriding the header in the original message if
+ necessary (<em>Explicit address</em> inserts the value of <a
+ href="?VARHELP=general/reply_to_address">reply_to_address</a>).
+
+ <p>There are many reasons not to introduce or override the
+ <tt>Reply-To:</tt> header. One is that some posters depend on
+ their own <tt>Reply-To:</tt> settings to convey their valid
+ return address. Another is that modifying <tt>Reply-To:</tt>
+ makes it much more difficult to send private replies. See <a
+ href="http://www.unicom.com/pw/reply-to-harmful.html">`Reply-To'
+ Munging Considered Harmful</a> for a general discussion of this
+ issue. See <a
+ href="http://www.metasystema.org/essays/reply-to-useful.mhtml">Reply-To
+ Munging Considered Useful</a> for a dissenting opinion.
+
+ <p>Some mailing lists have restricted posting privileges, with a
+ parallel list devoted to discussions. Examples are `patches' or
+ `checkin' lists, where software changes are posted by a revision
+ control system, but discussion about the changes occurs on a
+ developers mailing list. To support these types of mailing
+ lists, select <tt>Explicit address</tt> and set the
+ <tt>Reply-To:</tt> address below to point to the parallel
+ list.""")),
+
+ ('reply_to_address', mm_cfg.Email, WIDTH, 0,
+ _('Explicit <tt>Reply-To:</tt> header.'),
+ # Details for reply_to_address
+ _("""This is the address set in the <tt>Reply-To:</tt> header
+ when the <a
+ href="?VARHELP=general/reply_goes_to_list">reply_goes_to_list</a>
+ option is set to <em>Explicit address</em>.
+
+ <p>There are many reasons not to introduce or override the
+ <tt>Reply-To:</tt> header. One is that some posters depend on
+ their own <tt>Reply-To:</tt> settings to convey their valid
+ return address. Another is that modifying <tt>Reply-To:</tt>
+ makes it much more difficult to send private replies. See <a
+ href="http://www.unicom.com/pw/reply-to-harmful.html">`Reply-To'
+ Munging Considered Harmful</a> for a general discussion of this
+ issue. See <a
+ href="http://www.metasystema.org/essays/reply-to-useful.mhtml">Reply-To
+ Munging Considered Useful</a> for a dissenting opinion.
+
+ <p>Some mailing lists have restricted posting privileges, with a
+ parallel list devoted to discussions. Examples are `patches' or
+ `checkin' lists, where software changes are posted by a revision
+ control system, but discussion about the changes occurs on a
+ developers mailing list. To support these types of mailing
+ lists, specify the explicit <tt>Reply-To:</tt> address here. You
+ must also specify <tt>Explicit address</tt> in the
+ <tt>reply_goes_to_list</tt>
+ variable.
+
+ <p>Note that if the original message contains a
+ <tt>Reply-To:</tt> header, it will not be changed.""")),
+
+ _('Umbrella list settings'),
+
+ ('umbrella_list', mm_cfg.Radio, (_('No'), _('Yes')), 0,
+ _('''Send password reminders to, eg, "-owner" address instead of
+ directly to user.'''),
+
+ _("""Set this to yes when this list is intended to cascade only
+ to other mailing lists. When set, meta notices like
+ confirmations and password reminders will be directed to an
+ address derived from the member\'s address - it will have the
+ value of "umbrella_member_suffix" appended to the member's
+ account name.""")),
+
+ ('umbrella_member_suffix', mm_cfg.String, WIDTH, 0,
+ _('''Suffix for use when this list is an umbrella for other
+ lists, according to setting of previous "umbrella_list"
+ setting.'''),
+
+ _("""When "umbrella_list" is set to indicate that this list has
+ other mailing lists as members, then administrative notices like
+ confirmations and password reminders need to not be sent to the
+ member list addresses, but rather to the owner of those member
+ lists. In that case, the value of this setting is appended to
+ the member's account name for such notices. `-owner' is the
+ typical choice. This setting has no effect when "umbrella_list"
+ is "No".""")),
+
+ _('Notifications'),
+
+ ('send_reminders', mm_cfg.Radio, (_('No'), _('Yes')), 0,
+ _('''Send monthly password reminders?'''),
+
+ _('''Turn this on if you want password reminders to be sent once
+ per month to your members. Note that members may disable their
+ own individual password reminders.''')),
+
+ ('welcome_msg', mm_cfg.Text, (4, WIDTH), 0,
+ _('''List-specific text prepended to new-subscriber welcome
+ message'''),
+
+ _("""This value, if any, will be added to the front of the
+ new-subscriber welcome message. The rest of the welcome message
+ already describes the important addresses and URLs for the
+ mailing list, so you don't need to include any of that kind of
+ stuff here. This should just contain mission-specific kinds of
+ things, like etiquette policies or team orientation, or that kind
+ of thing.
+
+ <p>Note that this text will be wrapped, according to the
+ following rules:
+ <ul><li>Each paragraph is filled so that no line is longer than
+ 70 characters.
+ <li>Any line that begins with whitespace is not filled.
+ <li>A blank line separates paragraphs.
+ </ul>""")),
+
+ ('send_welcome_msg', mm_cfg.Radio, (_('No'), _('Yes')), 0,
+ _('Send welcome message to newly subscribed members?'),
+ _("""Turn this off only if you plan on subscribing people manually
+ and don't want them to know that you did so. This option is most
+ useful for transparently migrating lists from some other mailing
+ list manager to Mailman.""")),
+
+ ('goodbye_msg', mm_cfg.Text, (4, WIDTH), 0,
+ _('''Text sent to people leaving the list. If empty, no special
+ text will be added to the unsubscribe message.''')),
+
+ ('send_goodbye_msg', mm_cfg.Radio, (_('No'), _('Yes')), 0,
+ _('Send goodbye message to members when they are unsubscribed?')),
+
+ ('admin_immed_notify', mm_cfg.Radio, (_('No'), _('Yes')), 0,
+ _('''Should the list moderators get immediate notice of new
+ requests, as well as daily notices about collected ones?'''),
+
+ _('''List moderators (and list administrators) are sent daily
+ reminders of requests pending approval, like subscriptions to a
+ moderated list, or postings that are being held for one reason or
+ another. Setting this option causes notices to be sent
+ immediately on the arrival of new requests as well.''')),
+
+ ('admin_notify_mchanges', mm_cfg.Radio, (_('No'), _('Yes')), 0,
+ _('''Should administrator get notices of subscribes and
+ unsubscribes?''')),
+
+ ('respond_to_post_requests', mm_cfg.Radio,
+ (_('No'), _('Yes')), 0,
+ _('Send mail to poster when their posting is held for approval?'),
+
+ _("""Approval notices are sent when mail triggers certain of the
+ limits <em>except</em> routine list moderation and spam filters,
+ for which notices are <em>not</em> sent. This option overrides
+ ever sending the notice.""")),
+
+ _('Additional settings'),
+
+ ('emergency', mm_cfg.Toggle, (_('No'), _('Yes')), 0,
+ _('Emergency moderation of all list traffic.'),
+ _("""When this option is enabled, all list traffic is emergency
+ moderated, i.e. held for moderation. Turn this option on when
+ your list is experiencing a flamewar and you want a cooling off
+ period.""")),
+
+ ('new_member_options', mm_cfg.Checkbox,
+ (opttext, optvals, 0, OPTIONS),
+ # The description for new_member_options includes a kludge where
+ # we add a hidden field so that even when all the checkboxes are
+ # deselected, the form data will still have a new_member_options
+ # key (it will always be a list). Otherwise, we'd never be able
+ # to tell if all were deselected!
+ 0, _('''Default options for new members joining this list.<input
+ type="hidden" name="new_member_options" value="ignore">'''),
+
+ _("""When a new member is subscribed to this list, their initial
+ set of options is taken from the this variable's setting.""")),
+
+ ('administrivia', mm_cfg.Radio, (_('No'), _('Yes')), 0,
+ _('''(Administrivia filter) Check postings and intercept ones
+ that seem to be administrative requests?'''),
+
+ _("""Administrivia tests will check postings to see whether it's
+ really meant as an administrative request (like subscribe,
+ unsubscribe, etc), and will add it to the the administrative
+ requests queue, notifying the administrator of the new request,
+ in the process.""")),
+
+ ('max_message_size', mm_cfg.Number, 7, 0,
+ _('''Maximum length in kilobytes (KB) of a message body. Use 0
+ for no limit.''')),
+
+ ('host_name', mm_cfg.Host, WIDTH, 0,
+ _('Host name this list prefers for email.'),
+
+ _("""The "host_name" is the preferred name for email to
+ mailman-related addresses on this host, and generally should be
+ the mail host's exchanger address, if any. This setting can be
+ useful for selecting among alternative names of a host that has
+ multiple addresses.""")),
+
+ ]
+
+ if mm_cfg.ALLOW_RFC2369_OVERRIDES:
+ rtn.append(
+ ('include_rfc2369_headers', mm_cfg.Radio,
+ (_('No'), _('Yes')), 0,
+ _("""Should messages from this mailing list include the
+ <a href="http://www.faqs.org/rfcs/rfc2369.html">RFC 2369</a>
+ (i.e. <tt>List-*</tt>) headers? <em>Yes</em> is highly
+ recommended."""),
+
+ _("""RFC 2369 defines a set of List-* headers that are
+ normally added to every message sent to the list membership.
+ These greatly aid end-users who are using standards compliant
+ mail readers. They should normally always be enabled.
+
+ <p>However, not all mail readers are standards compliant yet,
+ and if you have a large number of members who are using
+ non-compliant mail readers, they may be annoyed at these
+ headers. You should first try to educate your members as to
+ why these headers exist, and how to hide them in their mail
+ clients. As a last resort you can disable these headers, but
+ this is not recommended (and in fact, your ability to disable
+ these headers may eventually go away)."""))
+ )
+ # Suppression of List-Post: headers
+ rtn.append(
+ ('include_list_post_header', mm_cfg.Radio,
+ (_('No'), _('Yes')), 0,
+ _('Should postings include the <tt>List-Post:</tt> header?'),
+ _("""The <tt>List-Post:</tt> header is one of the headers
+ recommended by
+ <a href="http://www.faqs.org/rfcs/rfc2369.html">RFC 2369</a>.
+ However for some <em>announce-only</em> mailing lists, only a
+ very select group of people are allowed to post to the list; the
+ general membership is usually not allowed to post. For lists of
+ this nature, the <tt>List-Post:</tt> header is misleading.
+ Select <em>No</em> to disable the inclusion of this header. (This
+ does not affect the inclusion of the other <tt>List-*:</tt>
+ headers.)"""))
+ )
+
+ return rtn
+
+ def _setValue(self, mlist, property, val, doc):
+ if property == 'real_name' and \
+ val.lower() <> mlist.internal_name().lower():
+ # These values can't differ by other than case
+ doc.addError(_("""<b>real_name</b> attribute not
+ changed! It must differ from the list's name by case
+ only."""))
+ elif property == 'new_member_options':
+ newopts = 0
+ for opt in OPTIONS:
+ bitfield = mm_cfg.OPTINFO[opt]
+ if opt in val:
+ newopts |= bitfield
+ mlist.new_member_options = newopts
+ elif property == 'subject_prefix':
+ # Convert any html entities to Unicode
+ mlist.subject_prefix = Utils.canonstr(
+ val, mlist.preferred_language)
+ else:
+ GUIBase._setValue(self, mlist, property, val, doc)
+
+ def _postValidate(self, mlist, doc):
+ if not mlist.reply_to_address.strip() and \
+ mlist.reply_goes_to_list == 2:
+ # You can't go to an explicit address that is blank
+ doc.addError(_("""You cannot add a Reply-To: to an explicit
+ address if that address is blank. Resetting these values."""))
+ mlist.reply_to_address = ''
+ mlist.reply_goes_to_list = 0
+
+ def getValue(self, mlist, kind, varname, params):
+ if varname <> 'subject_prefix':
+ return None
+ # The subject_prefix may be Unicode
+ return Utils.uncanonstr(mlist.subject_prefix, mlist.preferred_language)
diff --git a/Mailman/Gui/Language.py b/Mailman/Gui/Language.py
new file mode 100644
index 00000000..bfa5185f
--- /dev/null
+++ b/Mailman/Gui/Language.py
@@ -0,0 +1,122 @@
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""MailList mixin class managing the language options.
+"""
+
+import codecs
+
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman import i18n
+from Mailman.Logging.Syslog import syslog
+from Mailman.Gui.GUIBase import GUIBase
+
+_ = i18n._
+
+
+
+class Language(GUIBase):
+ def GetConfigCategory(self):
+ return 'language', _('Language&nbsp;options')
+
+ def GetConfigInfo(self, mlist, category, subcat=None):
+ if category <> 'language':
+ return None
+
+ # Set things up for the language choices
+ langs = mlist.GetAvailableLanguages()
+ langnames = [_(Utils.GetLanguageDescr(L)) for L in langs]
+ try:
+ langi = langs.index(mlist.preferred_language)
+ except ValueError:
+ # Someone must have deleted the list's preferred language. Could
+ # be other trouble lurking!
+ langi = 0
+
+ # Only allow the admin to choose a language if the system has a
+ # charset for it. I think this is the best way to test for that.
+ def checkcodec(charset):
+ try:
+ codecs.lookup(charset)
+ return 1
+ except LookupError:
+ return 0
+
+ all = [key for key in mm_cfg.LC_DESCRIPTIONS.keys()
+ if checkcodec(Utils.GetCharSet(key))]
+ all.sort()
+ checked = [L in langs for L in all]
+ allnames = [_(Utils.GetLanguageDescr(L)) for L in all]
+
+ return [
+ _('Natural language (internationalization) options.'),
+
+ ('preferred_language', mm_cfg.Select,
+ (langs, langnames, langi),
+ 0,
+ _('Default language for this list.'),
+ _('''This is the default natural language for this mailing list.
+ If <a href="?VARHELP=language/available_languages">more than one
+ language</a> is supported then users will be able to select their
+ own preferences for when they interact with the list. All other
+ interactions will be conducted in the default language. This
+ applies to both web-based and email-based messages, but not to
+ email posted by list members.''')),
+
+ ('available_languages', mm_cfg.Checkbox,
+ (allnames, checked, 0, all), 0,
+ _('Languages supported by this list.'),
+
+ _('''These are all the natural languages supported by this list.
+ Note that the
+ <a href="?VARHELP=language/preferred_language">default
+ language</a> must be included.''')),
+
+ ('encode_ascii_prefixes', mm_cfg.Radio,
+ (_('Never'), _('Always'), _('As needed')), 0,
+ _("""Encode the
+ <a href="?VARHELP=general/subject_prefix">subject
+ prefix</a> even when it consists of only ASCII characters?"""),
+
+ _("""If your mailing list's default language uses a non-ASCII
+ character set and the prefix contains non-ASCII characters, the
+ prefix will always be encoded according to the relevant
+ standards. However, if your prefix contains only ASCII
+ characters, you may want to set this option to <em>Never</em> to
+ disable prefix encoding. This can make the subject headers
+ slightly more readable for users with mail readers that don't
+ properly handle non-ASCII encodings.
+
+ <p>Note however, that if your mailing list receives both encoded
+ and unencoded subject headers, you might want to choose <em>As
+ needed</em>. Using this setting, Mailman will not encode ASCII
+ prefixes when the rest of the header contains only ASCII
+ characters, but if the original header contains non-ASCII
+ characters, it will encode the prefix. This avoids an ambiguity
+ in the standards which could cause some mail readers to display
+ extra, or missing spaces between the prefix and the original
+ header.""")),
+
+ ]
+
+ def _setValue(self, mlist, property, val, doc):
+ # If we're changing the list's preferred language, change the I18N
+ # context as well
+ if property == 'preferred_language':
+ i18n.set_language(val)
+ doc.set_language(val)
+ GUIBase._setValue(self, mlist, property, val, doc)
diff --git a/Mailman/Gui/Makefile.in b/Mailman/Gui/Makefile.in
new file mode 100644
index 00000000..ea219772
--- /dev/null
+++ b/Mailman/Gui/Makefile.in
@@ -0,0 +1,69 @@
+# Copyright (C) 2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# NOTE: Makefile.in is converted into Makefile by the configure script
+# in the parent directory. Once configure has run, you can recreate
+# the Makefile by running just config.status.
+
+# Variables set by configure
+
+VPATH= @srcdir@
+srcdir= @srcdir@
+bindir= @bindir@
+prefix= @prefix@
+exec_prefix= @exec_prefix@
+
+CC= @CC@
+CHMOD= @CHMOD@
+INSTALL= @INSTALL@
+
+DEFS= @DEFS@
+
+# Customizable but not set by configure
+
+OPT= @OPT@
+CFLAGS= $(OPT) $(DEFS)
+PACKAGEDIR= $(prefix)/Mailman/Gui
+SHELL= /bin/sh
+
+MODULES= *.py
+
+# Modes for directories and executables created by the install
+# process. Default to group-writable directories but
+# user-only-writable for executables.
+DIRMODE= 775
+EXEMODE= 755
+FILEMODE= 644
+INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
+
+
+# Rules
+
+all:
+
+install:
+ for f in $(MODULES); \
+ do \
+ $(INSTALL) -m $(FILEMODE) $(srcdir)/$$f $(PACKAGEDIR); \
+ done
+
+finish:
+
+clean:
+
+distclean:
+ -rm *.pyc
+ -rm Makefile
diff --git a/Mailman/Gui/Membership.py b/Mailman/Gui/Membership.py
new file mode 100644
index 00000000..99e44a57
--- /dev/null
+++ b/Mailman/Gui/Membership.py
@@ -0,0 +1,34 @@
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""MailList mixin class managing the membership pseudo-options.
+"""
+
+from Mailman.i18n import _
+
+
+
+class Membership:
+ def GetConfigCategory(self):
+ return 'members', _('Membership&nbsp;Management')
+
+ def GetConfigSubCategories(self, category):
+ if category == 'members':
+ return [('list', _('Membership&nbsp;List')),
+ ('add', _('Mass&nbsp;Subscription')),
+ ('remove', _('Mass&nbsp;Removal')),
+ ]
+ return None
diff --git a/Mailman/Gui/NonDigest.py b/Mailman/Gui/NonDigest.py
new file mode 100644
index 00000000..900f865f
--- /dev/null
+++ b/Mailman/Gui/NonDigest.py
@@ -0,0 +1,130 @@
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""GUI component for managing the non-digest delivery options.
+"""
+
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman.i18n import _
+from Mailman.Gui.GUIBase import GUIBase
+
+from Mailman.Gui.Digest import ALLOWEDS
+PERSONALIZED_ALLOWEDS = ('user_address', 'user_delivered_to', 'user_password',
+ 'user_name', 'user_optionsurl',
+ )
+
+
+
+class NonDigest(GUIBase):
+ def GetConfigCategory(self):
+ return 'nondigest', _('Non-digest&nbsp;options')
+
+ def GetConfigInfo(self, mlist, category, subcat=None):
+ if category <> 'nondigest':
+ return None
+ WIDTH = mm_cfg.TEXTFIELDWIDTH
+
+ info = [
+ _("Policies concerning immediately delivered list traffic."),
+
+ ('nondigestable', mm_cfg.Toggle, (_('No'), _('Yes')), 1,
+ _("""Can subscribers choose to receive mail immediately, rather
+ than in batched digests?""")),
+ ]
+
+ if mm_cfg.OWNERS_CAN_ENABLE_PERSONALIZATION:
+ info.extend([
+ ('personalize', mm_cfg.Radio,
+ (_('No'), _('Yes'), _('Full Personalization')), 1,
+
+ _('''Should Mailman personalize each non-digest delivery?
+ This is often useful for announce-only lists, but <a
+ href="?VARHELP=nondigest/personalize">read the details</a>
+ section for a discussion of important performance
+ issues.'''),
+
+ _("""Normally, Mailman sends the regular delivery messages to
+ the mail server in batches. This is much more efficent
+ because it reduces the amount of traffic between Mailman and
+ the mail server.
+
+ <p>However, some lists can benefit from a more personalized
+ approach. In this case, Mailman crafts a new message for
+ each member on the regular delivery list. Turning this
+ feature on may degrade the performance of your site, so you
+ need to carefully consider whether the trade-off is worth it,
+ or whether there are other ways to accomplish what you want.
+ You should also carefully monitor your system load to make
+ sure it is acceptable.
+
+ <p>Select <em>No</em> to disable personalization and send
+ messages to the members in batches. Select <em>Yes</em> to
+ personalize deliveries and allow additional substitution
+ variables in message headers and footers (see below). In
+ addition, by selecting <em>Full Personalization</em>, the
+ <code>To</code> header of posted messages will be modified to
+ include the member's address instead of the list's posting
+ address.
+
+ <p>When personalization is enabled, a few more expansion
+ variables that can be included in the <a
+ href="?VARHELP=nondigest/msg_header">message header</a> and
+ <a href="?VARHELP=nondigest/msg_footer">message footer</a>.
+
+ <p>These additional substitution variables will be available
+ for your headers and footers, when this feature is enabled:
+
+ <ul><li><b>user_address</b> - The address of the user,
+ coerced to lower case.
+ <li><b>user_delivered_to</b> - The case-preserved address
+ that the user is subscribed with.
+ <li><b>user_password</b> - The user's password.
+ <li><b>user_name</b> - The user's full name.
+ <li><b>user_optionsurl</b> - The url to the user's option
+ page.
+ </ul>
+ """))
+ ])
+ # BAW: for very dumb reasons, we want the `personalize' attribute to
+ # show up before the msg_header and msg_footer attrs, otherwise we'll
+ # get a bogus warning if the header/footer contains a personalization
+ # substitution variable, and we're transitioning from no
+ # personalization to personalization enabled.
+ info.extend([('msg_header', mm_cfg.Text, (10, WIDTH), 0,
+ _('Header added to mail sent to regular list members'),
+ _('''Text prepended to the top of every immediately-delivery
+ message. ''') + Utils.maketext('headfoot.html',
+ mlist=mlist, raw=1)),
+
+ ('msg_footer', mm_cfg.Text, (10, WIDTH), 0,
+ _('Footer added to mail sent to regular list members'),
+ _('''Text appended to the bottom of every immediately-delivery
+ message. ''') + Utils.maketext('headfoot.html',
+ mlist=mlist, raw=1)),
+ ])
+ return info
+
+ def _setValue(self, mlist, property, val, doc):
+ alloweds = list(ALLOWEDS)
+ if mlist.personalize:
+ alloweds.extend(PERSONALIZED_ALLOWEDS)
+ if property in ('msg_header', 'msg_footer'):
+ val = self._convertString(mlist, property, alloweds, val, doc)
+ if val is None:
+ # There was a problem, so don't set it
+ return
+ GUIBase._setValue(self, mlist, property, val, doc)
diff --git a/Mailman/Gui/Passwords.py b/Mailman/Gui/Passwords.py
new file mode 100644
index 00000000..a3cf6b8e
--- /dev/null
+++ b/Mailman/Gui/Passwords.py
@@ -0,0 +1,31 @@
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""MailList mixin class managing the password pseudo-options.
+"""
+
+from Mailman.i18n import _
+from Mailman.Gui.GUIBase import GUIBase
+
+
+
+class Passwords(GUIBase):
+ def GetConfigCategory(self):
+ return 'passwords', _('Passwords')
+
+ def handleForm(self, mlist, category, subcat, cgidata, doc):
+ # Nothing more needs to be done
+ pass
diff --git a/Mailman/Gui/Privacy.py b/Mailman/Gui/Privacy.py
new file mode 100644
index 00000000..7ef50375
--- /dev/null
+++ b/Mailman/Gui/Privacy.py
@@ -0,0 +1,398 @@
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""MailList mixin class managing the privacy options.
+"""
+
+from Mailman import mm_cfg
+from Mailman.i18n import _
+from Mailman.Gui.GUIBase import GUIBase
+
+
+
+class Privacy(GUIBase):
+ def GetConfigCategory(self):
+ return 'privacy', _('Privacy options')
+
+ def GetConfigSubCategories(self, category):
+ if category == 'privacy':
+ return [('subscribing', _('Subscription&nbsp;rules')),
+ ('sender', _('Sender&nbsp;filters')),
+ ('recipient', _('Recipient&nbsp;filters')),
+ ('spam', _('Spam&nbsp;filters')),
+ ]
+ return None
+
+ def GetConfigInfo(self, mlist, category, subcat=None):
+ if category <> 'privacy':
+ return None
+ # Pre-calculate some stuff. Technically, we shouldn't do the
+ # sub_cfentry calculation here, but it's too ugly to indent it any
+ # further, and besides, that'll mess up i18n catalogs.
+ WIDTH = mm_cfg.TEXTFIELDWIDTH
+ if mm_cfg.ALLOW_OPEN_SUBSCRIBE:
+ sub_cfentry = ('subscribe_policy', mm_cfg.Radio,
+ # choices
+ (_('None'),
+ _('Confirm'),
+ _('Require approval'),
+ _('Confirm and approve')),
+ 0,
+ _('What steps are required for subscription?<br>'),
+ _('''None - no verification steps (<em>Not
+ Recommended </em>)<br>
+ Confirm (*) - email confirmation step required <br>
+ Require approval - require list administrator
+ Approval for subscriptions <br>
+ Confirm and approve - both confirm and approve
+
+ <p>(*) when someone requests a subscription,
+ Mailman sends them a notice with a unique
+ subscription request number that they must reply to
+ in order to subscribe.<br>
+
+ This prevents mischievous (or malicious) people
+ from creating subscriptions for others without
+ their consent.'''))
+ else:
+ sub_cfentry = ('subscribe_policy', mm_cfg.Radio,
+ # choices
+ (_('Confirm'),
+ _('Require approval'),
+ _('Confirm and approve')),
+ 1,
+ _('What steps are required for subscription?<br>'),
+ _('''Confirm (*) - email confirmation required <br>
+ Require approval - require list administrator
+ approval for subscriptions <br>
+ Confirm and approve - both confirm and approve
+
+ <p>(*) when someone requests a subscription,
+ Mailman sends them a notice with a unique
+ subscription request number that they must reply to
+ in order to subscribe.<br> This prevents
+ mischievous (or malicious) people from creating
+ subscriptions for others without their consent.'''))
+
+ # some helpful values
+ admin = mlist.GetScriptURL('admin')
+
+ subscribing_rtn = [
+ _("""This section allows you to configure subscription and
+ membership exposure policy. You can also control whether this
+ list is public or not. See also the
+ <a href="%(admin)s/archive">Archival Options</a> section for
+ separate archive-related privacy settings."""),
+
+ _('Subscribing'),
+ ('advertised', mm_cfg.Radio, (_('No'), _('Yes')), 0,
+ _('''Advertise this list when people ask what lists are on this
+ machine?''')),
+
+ sub_cfentry,
+
+ ('unsubscribe_policy', mm_cfg.Radio, (_('No'), _('Yes')), 0,
+ _("""Is the list moderator's approval required for unsubscription
+ requests? (<em>No</em> is recommended)"""),
+
+ _("""When members want to leave a list, they will make an
+ unsubscription request, either via the web or via email.
+ Normally it is best for you to allow open unsubscriptions so that
+ users can easily remove themselves from mailing lists (they get
+ really upset if they can't get off lists!).
+
+ <p>For some lists though, you may want to impose moderator
+ approval before an unsubscription request is processed. Examples
+ of such lists include a corporate mailing list that all employees
+ are required to be members of.""")),
+
+ _('Ban list'),
+ ('ban_list', mm_cfg.EmailListEx, (10, WIDTH), 1,
+ _("""List of addresses which are banned from membership in this
+ mailing list."""),
+
+ _("""Addresses in this list are banned outright from subscribing
+ to this mailing list, with no further moderation required. Add
+ addresses one per line; start the line with a ^ character to
+ designate a regular expression match.""")),
+
+ _("Membership exposure"),
+ ('private_roster', mm_cfg.Radio,
+ (_('Anyone'), _('List members'), _('List admin only')), 0,
+ _('Who can view subscription list?'),
+
+ _('''When set, the list of subscribers is protected by member or
+ admin password authentication.''')),
+
+ ('obscure_addresses', mm_cfg.Radio, (_('No'), _('Yes')), 0,
+ _("""Show member addresses so they're not directly recognizable
+ as email addresses?"""),
+ _("""Setting this option causes member email addresses to be
+ transformed when they are presented on list web pages (both in
+ text and as links), so they're not trivially recognizable as
+ email addresses. The intention is to prevent the addresses
+ from being snarfed up by automated web scanners for use by
+ spammers.""")),
+ ]
+
+ adminurl = mlist.GetScriptURL('admin', absolute=1)
+ sender_rtn = [
+ _("""When a message is posted to the list, a series of
+ moderation steps are take to decide whether the a moderator must
+ first approve the message or not. This section contains the
+ controls for moderation of both member and non-member postings.
+
+ <p>Member postings are held for moderation if their
+ <b>moderation flag</b> is turned on. You can control whether
+ member postings are moderated by default or not.
+
+ <p>Non-member postings can be automatically
+ <a href="?VARHELP=privacy/sender/accept_these_nonmembers"
+ >accepted</a>,
+ <a href="?VARHELP=privacy/sender/hold_these_nonmembers">held for
+ moderation</a>,
+ <a href="?VARHELP=privacy/sender/reject_these_nonmembers"
+ >rejected</a> (bounced), or
+ <a href="?VARHELP=privacy/sender/discard_these_nonmembers"
+ >discarded</a>,
+ either individually or as a group. Any
+ posting from a non-member who is not explicitly accepted,
+ rejected, or discarded, will have their posting filtered by the
+ <a href="?VARHELP=privacy/sender/generic_nonmember_action">general
+ non-member rules</a>.
+
+ <p>In the text boxes below, add one address per line; start the
+ line with a ^ character to designate a <a href=
+ "http://www.python.org/doc/current/lib/module-re.html"
+ >Python regular expression</a>. When entering backslashes, do so
+ as if you were using Python raw strings (i.e. you generally just
+ use a single backslash).
+
+ <p>Note that non-regexp matches are always done first."""),
+
+ _('Member filters'),
+
+ ('default_member_moderation', mm_cfg.Radio, (_('No'), _('Yes')),
+ 0, _('By default, should new list member postings be moderated?'),
+
+ _("""Each list member has a <em>moderation flag</em> which says
+ whether messages from the list member can be posted directly to
+ the list, or must first be approved by the list moderator. When
+ the moderation flag is turned on, list member postings must be
+ approved first. You, the list administrator can decide whether a
+ specific individual's postings will be moderated or not.
+
+ <p>When a new member is subscribed, their initial moderation flag
+ takes its value from this option. Turn this option off to accept
+ member postings by default. Turn this option on to, by default,
+ moderate member postings first. You can always manually set an
+ individual member's moderation bit by using the
+ <a href="%(adminurl)s/members">membership management
+ screens</a>.""")),
+
+ ('member_moderation_action', mm_cfg.Radio,
+ (_('Hold'), _('Reject'), _('Discard')), 0,
+ _("""Action to take when a moderated member posts to the
+ list."""),
+ _("""<ul><li><b>Hold</b> -- this holds the message for approval
+ by the list moderators.
+
+ <p><li><b>Reject</b> -- this automatically rejects the message by
+ sending a bounce notice to the post's author. The text of the
+ bounce notice can be <a
+ href="?VARHELP=privacy/sender/member_moderation_notice"
+ >configured by you</a>.
+
+ <p><li><b>Discard</b> -- this simply discards the message, with
+ no notice sent to the post's author.
+ </ul>""")),
+
+ ('member_moderation_notice', mm_cfg.Text, (10, WIDTH), 1,
+ _("""Text to include in any
+ <a href="?VARHELP/privacy/sender/member_moderation_action"
+ >rejection notice</a> to
+ be sent to moderated members who post to this list.""")),
+
+ _('Non-member filters'),
+
+ ('accept_these_nonmembers', mm_cfg.EmailListEx, (10, WIDTH), 1,
+ _("""List of non-member addresses whose postings should be
+ automatically accepted."""),
+
+ _("""Postings from any of these non-members will be automatically
+ accepted with no further moderation applied. Add member
+ addresses one per line; start the line with a ^ character to
+ designate a regular expression match.""")),
+
+ ('hold_these_nonmembers', mm_cfg.EmailListEx, (10, WIDTH), 1,
+ _("""List of non-member addresses whose postings will be
+ immediately held for moderation."""),
+
+ _("""Postings from any of these non-members will be immediately
+ and automatically held for moderation by the list moderators.
+ The sender will receive a notification message which will allow
+ them to cancel their held message. Add member addresses one per
+ line; start the line with a ^ character to designate a regular
+ expression match.""")),
+
+ ('reject_these_nonmembers', mm_cfg.EmailListEx, (10, WIDTH), 1,
+ _("""List of non-member addresses whose postings will be
+ automatically rejected."""),
+
+ _("""Postings from any of these non-members will be automatically
+ rejected. In other words, their messages will be bounced back to
+ the sender with a notification of automatic rejection. This
+ option is not appropriate for known spam senders; their messages
+ should be
+ <a href="?VARHELP=privacy/sender/discard_these_nonmembers"
+ >automatically discarded</a>.
+
+ <p>Add member addresses one per line; start the line with a ^
+ character to designate a regular expression match.""")),
+
+ ('discard_these_nonmembers', mm_cfg.EmailListEx, (10, WIDTH), 1,
+ _("""List of non-member addresses whose postings will be
+ automatically discarded."""),
+
+ _("""Postings from any of these non-members will be automatically
+ discarded. That is, the message will be thrown away with no
+ further processing or notification. The sender will not receive
+ a notification or a bounce, however the list moderators can
+ optionally <a href="?VARHELP=privacy/sender/forward_auto_discards"
+ >receive copies of auto-discarded messages.</a>.
+
+ <p>Add member addresses one per line; start the line with a ^
+ character to designate a regular expression match.""")),
+
+ ('generic_nonmember_action', mm_cfg.Radio,
+ (_('Accept'), _('Hold'), _('Reject'), _('Discard')), 0,
+ _("""Action to take for postings from non-members for which no
+ explicit action is defined."""),
+
+ _("""When a post from a non-member is received, the message's
+ sender is matched against the list of explicitly
+ <a href="?VARHELP=privacy/sender/accept_these_nonmembers"
+ >accepted</a>,
+ <a href="?VARHELP=privacy/sender/hold_these_nonmembers">held</a>,
+ <a href="?VARHELP=privacy/sender/reject_these_nonmembers"
+ >rejected</a> (bounced), and
+ <a href="?VARHELP=privacy/sender/discard_these_nonmembers"
+ >discarded</a> addresses. If no match is found, then this action
+ is taken.""")),
+
+ ('forward_auto_discards', mm_cfg.Radio, (_('No'), _('Yes')), 0,
+ _("""Should messages from non-members, which are automatically
+ discarded, be forwarded to the list moderator?""")),
+
+ ]
+
+ recip_rtn = [
+ _("""This section allows you to configure various filters based on
+ the recipient of the message."""),
+
+ _('Recipient filters'),
+
+ ('require_explicit_destination', mm_cfg.Radio,
+ (_('No'), _('Yes')), 0,
+ _("""Must posts have list named in destination (to, cc) field
+ (or be among the acceptable alias names, specified below)?"""),
+
+ _("""Many (in fact, most) spams do not explicitly name their
+ myriad destinations in the explicit destination addresses - in
+ fact often the To: field has a totally bogus address for
+ obfuscation. The constraint applies only to the stuff in the
+ address before the '@' sign, but still catches all such spams.
+
+ <p>The cost is that the list will not accept unhindered any
+ postings relayed from other addresses, unless
+
+ <ol>
+ <li>The relaying address has the same name, or
+
+ <li>The relaying address name is included on the options that
+ specifies acceptable aliases for the list.
+
+ </ol>""")),
+
+ ('acceptable_aliases', mm_cfg.Text, (4, WIDTH), 0,
+ _("""Alias names (regexps) which qualify as explicit to or cc
+ destination names for this list."""),
+
+ _("""Alternate addresses that are acceptable when
+ `require_explicit_destination' is enabled. This option takes a
+ list of regular expressions, one per line, which is matched
+ against every recipient address in the message. The matching is
+ performed with Python's re.match() function, meaning they are
+ anchored to the start of the string.
+
+ <p>For backwards compatibility with Mailman 1.1, if the regexp
+ does not contain an `@', then the pattern is matched against just
+ the local part of the recipient address. If that match fails, or
+ if the pattern does contain an `@', then the pattern is matched
+ against the entire recipient address.
+
+ <p>Matching against the local part is deprecated; in a future
+ release, the pattern will always be matched against the entire
+ recipient address.""")),
+
+ ('max_num_recipients', mm_cfg.Number, 5, 0,
+ _('Ceiling on acceptable number of recipients for a posting.'),
+
+ _('''If a posting has this number, or more, of recipients, it is
+ held for admin approval. Use 0 for no ceiling.''')),
+ ]
+
+ spam_rtn = [
+ _("""This section allows you to configure various anti-spam
+ filters posting filters, which can help reduce the amount of spam
+ your list members end up receiving.
+ """),
+
+ _("Anti-Spam filters"),
+
+ ('bounce_matching_headers', mm_cfg.Text, (6, WIDTH), 0,
+ _('Hold posts with header value matching a specified regexp.'),
+ _("""Use this option to prohibit posts according to specific
+ header values. The target value is a regular-expression for
+ matching against the specified header. The match is done
+ disregarding letter case. Lines beginning with '#' are ignored
+ as comments.
+
+ <p>For example:<pre>to: .*@public.com </pre> says to hold all
+ postings with a <em>To:</em> mail header containing '@public.com'
+ anywhere among the addresses.
+
+ <p>Note that leading whitespace is trimmed from the regexp. This
+ can be circumvented in a number of ways, e.g. by escaping or
+ bracketing it.""")),
+ ]
+
+ if subcat == 'sender':
+ return sender_rtn
+ elif subcat == 'recipient':
+ return recip_rtn
+ elif subcat == 'spam':
+ return spam_rtn
+ else:
+ return subscribing_rtn
+
+ def _setValue(self, mlist, property, val, doc):
+ # For subscribe_policy when ALLOW_OPEN_SUBSCRIBE is true, we need to
+ # add one to the value because the page didn't present an open list as
+ # an option.
+ if property == 'subscribe_policy' and not mm_cfg.ALLOW_OPEN_SUBSCRIBE:
+ val += 1
+ setattr(mlist, property, val)
diff --git a/Mailman/Gui/Topics.py b/Mailman/Gui/Topics.py
new file mode 100644
index 00000000..310d876f
--- /dev/null
+++ b/Mailman/Gui/Topics.py
@@ -0,0 +1,160 @@
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+import re
+
+from Mailman import mm_cfg
+from Mailman.i18n import _
+from Mailman.Logging.Syslog import syslog
+from Mailman.Gui.GUIBase import GUIBase
+
+
+
+class Topics(GUIBase):
+ def GetConfigCategory(self):
+ return 'topics', _('Topics')
+
+ def GetConfigInfo(self, mlist, category, subcat=None):
+ if category <> 'topics':
+ return None
+ WIDTH = mm_cfg.TEXTFIELDWIDTH
+
+ return [
+ _('List topic keywords'),
+
+ ('topics_enabled', mm_cfg.Radio, (_('Disabled'), _('Enabled')), 0,
+ _('''Should the topic filter be enabled or disabled?'''),
+
+ _("""The topic filter categorizes each incoming email message
+ according to <a
+ href="http://www.python.org/doc/current/lib/module-re.html">regular
+ expression filters</a> you specify below. If the message's
+ <code>Subject:</code> or <code>Keywords:</code> header contains a
+ match against a topic filter, the message is logically placed
+ into a topic <em>bucket</em>. Each user can then choose to only
+ receive messages from the mailing list for a particular topic
+ bucket (or buckets). Any message not categorized in a topic
+ bucket registered with the user is not delivered to the list.
+
+ <p>Note that this feature only works with regular delivery, not
+ digest delivery.
+
+ <p>The body of the message can also be optionally scanned for
+ <code>Subject:</code> and <code>Keywords:</code> headers, as
+ specified by the <a
+ href="?VARHELP=topics/topics_bodylines_limit">topics_bodylines_limit</a>
+ configuration variable.""")),
+
+ ('topics_bodylines_limit', mm_cfg.Number, 5, 0,
+ _('How many body lines should the topic matcher scan?'),
+
+ _("""The topic matcher will scan this many lines of the message
+ body looking for topic keyword matches. Body scanning stops when
+ either this many lines have been looked at, or a non-header-like
+ body line is encountered. By setting this value to zero, no body
+ lines will be scanned (i.e. only the <code>Keywords:</code> and
+ <code>Subject:</code> headers will be scanned). By setting this
+ value to a negative number, then all body lines will be scanned
+ until a non-header-like line is encountered.
+ """)),
+
+ ('topics', mm_cfg.Topics, 0, 0,
+ _('Topic keywords, one per line, to match against each message.'),
+
+ _("""Each topic keyword is actually a regular expression, which is
+ matched against certain parts of a mail message, specifically the
+ <code>Keywords:</code> and <code>Subject:</code> message headers.
+ Note that the first few lines of the body of the message can also
+ contain a <code>Keywords:</code> and <code>Subject:</code>
+ "header" on which matching is also performed.""")),
+
+ ]
+
+ def handleForm(self, mlist, category, subcat, cgidata, doc):
+ topics = []
+ # We start i at 1 and keep going until we no longer find items keyed
+ # with the marked tags.
+ i = 1
+ while 1:
+ deltag = 'topic_delete_%02d' % i
+ boxtag = 'topic_box_%02d' % i
+ reboxtag = 'topic_rebox_%02d' % i
+ desctag = 'topic_desc_%02d' % i
+ wheretag = 'topic_where_%02d' % i
+ addtag = 'topic_add_%02d' % i
+ newtag = 'topic_new_%02d' % i
+
+ i += 1
+ # Was this a delete? If so, we can just ignore this entry
+ if cgidata.has_key(deltag):
+ continue
+
+ # Get the data for the current box
+ name = cgidata.getvalue(boxtag)
+ pattern = cgidata.getvalue(reboxtag)
+ desc = cgidata.getvalue(desctag)
+
+ if name is None:
+ # We came to the end of the boxes
+ break
+
+ if cgidata.has_key(newtag) and (not name or not pattern):
+ # This new entry is incomplete.
+ doc.addError(_("""Topic specifications require both a name and
+ a pattern. Incomplete topics will be ignored."""))
+ continue
+
+ # Make sure the pattern was a legal regular expression
+ try:
+ re.compile(pattern)
+ except (re.error, TypeError):
+ doc.addError(_("""The topic pattern `%(pattern)s' is not a
+ legal regular expression. It will be discarded."""))
+ continue
+
+ # Was this an add item?
+ if cgidata.has_key(addtag):
+ # Where should the new one be added?
+ where = cgidata.getvalue(wheretag)
+ if where == 'before':
+ # Add a new empty topics box before the current one
+ topics.append(('', '', '', 1))
+ topics.append((name, pattern, desc, 0))
+ # Default is to add it after...
+ else:
+ topics.append((name, pattern, desc, 0))
+ topics.append(('', '', '', 1))
+ # Otherwise, just retain this one in the list
+ else:
+ topics.append((name, pattern, desc, 0))
+
+ # Add these topics to the mailing list object, and deal with other
+ # options.
+ mlist.topics = topics
+ try:
+ mlist.topics_enabled = int(cgidata.getvalue(
+ 'topics_enabled',
+ mlist.topics_enabled))
+ except ValueError:
+ # BAW: should really print a warning
+ pass
+ try:
+ mlist.topics_bodylines_limit = int(cgidata.getvalue(
+ 'topics_bodylines_limit',
+ mlist.topics_bodylines_limit))
+ except ValueError:
+ # BAW: should really print a warning
+ pass
diff --git a/Mailman/Gui/Usenet.py b/Mailman/Gui/Usenet.py
new file mode 100644
index 00000000..9d6b65f4
--- /dev/null
+++ b/Mailman/Gui/Usenet.py
@@ -0,0 +1,137 @@
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+from Mailman import mm_cfg
+from Mailman.i18n import _
+from Mailman.Gui.GUIBase import GUIBase
+
+
+
+class Usenet(GUIBase):
+ def GetConfigCategory(self):
+ return 'gateway', _('Mail&lt;-&gt;News&nbsp;gateways')
+
+ def GetConfigInfo(self, mlist, category, subcat=None):
+ if category <> 'gateway':
+ return None
+
+ WIDTH = mm_cfg.TEXTFIELDWIDTH
+ VERTICAL = 1
+
+ return [
+ _('Mail-to-News and News-to-Mail gateway services.'),
+
+ _('News server settings'),
+
+ ('nntp_host', mm_cfg.String, WIDTH, 0,
+ _('''The Internet address of the machine your News server is
+ running on.'''),
+ _('''The News server is not part of Mailman proper. You have to
+ already have access to a NNTP server, and that NNTP server has to
+ recognize the machine this mailing list runs on as a machine
+ capable of reading and posting news.''')),
+
+ ('linked_newsgroup', mm_cfg.String, WIDTH, 0,
+ _('The name of the Usenet group to gateway to and/or from.')),
+
+ ('gateway_to_news', mm_cfg.Toggle, (_('No'), _('Yes')), 0,
+ _('''Should new posts to the mailing list be sent to the
+ newsgroup?''')),
+
+ ('gateway_to_mail', mm_cfg.Toggle, (_('No'), _('Yes')), 0,
+ _('''Should new posts to the newsgroup be sent to the mailing
+ list?''')),
+
+ _('Forwarding options'),
+
+ ('news_moderation', mm_cfg.Radio,
+ (_('None'), _('Open list, moderated group'), _('Moderated')),
+ VERTICAL,
+
+ _("""The moderation policy of the newsgroup."""),
+
+ _("""This setting determines the moderation policy of the
+ newsgroup and its interaction with the moderation policy of the
+ mailing list. This only applies to the newsgroup that you are
+ gatewaying <em>to</em>, so if you are only gatewaying from
+ Usenet, or the newsgroup you are gatewaying to is not moderated,
+ set this option to <em>None</em>.
+
+ <p>If the newsgroup is moderated, you can set this mailing list
+ up to be the moderation address for the newsgroup. By selecting
+ <em>Moderated</em>, an additional posting hold will be placed in
+ the approval process. All messages posted to the mailing list
+ will have to be approved before being sent on to the newsgroup,
+ or to the mailing list membership.
+
+ <p><em>Note that if the message has an <tt>Approved</tt> header
+ with the list's administrative password in it, this hold test
+ will be bypassed, allowing privileged posters to send messages
+ directly to the list and the newsgroup.</em>
+
+ <p>Finally, if the newsgroup is moderated, but you want to have
+ an open posting policy anyway, you should select <em>Open list,
+ moderated group</em>. The effect of this is to use the normal
+ Mailman moderation facilities, but to add an <tt>Approved</tt>
+ header to all messages that are gatewayed to Usenet.""")),
+
+ ('news_prefix_subject_too', mm_cfg.Toggle, (_('No'), _('Yes')), 0,
+ _('Prefix <tt>Subject:</tt> headers on postings gated to news?'),
+ _("""Mailman prefixes <tt>Subject:</tt> headers with
+ <a href="?VARHELP=general/subject_prefix">text you can
+ customize</a> and normally, this prefix shows up in messages
+ gatewayed to Usenet. You can set this option to <em>No</em> to
+ disable the prefix on gated messages. Of course, if you turn off
+ normal <tt>Subject:</tt> prefixes, they won't be prefixed for
+ gated messages either.""")),
+
+ _('Mass catch up'),
+
+ ('_mass_catchup', mm_cfg.Toggle, (_('No'), _('Yes')), 0,
+ _('Should Mailman perform a <em>catchup</em> on the newsgroup?'),
+ _('''When you tell Mailman to perform a catchup on the newsgroup,
+ this means that you want to start gating messages to the mailing
+ list with the next new message found. All earlier messages on
+ the newsgroup will be ignored. This is as if you were reading
+ the newsgroup yourself, and you marked all current messages as
+ <em>read</em>. By catching up, your mailing list members will
+ not see any of the earlier messages.''')),
+
+ ]
+
+ def _setValue(self, mlist, property, val, doc):
+ # Watch for the special, immediate action attributes
+ if property == '_mass_catchup' and val:
+ mlist.usenet_watermark = None
+ doc.AddItem(_('Mass catchup completed'))
+ else:
+ GUIBase._setValue(self, mlist, property, val, doc)
+
+ def _postValidate(self, mlist, doc):
+ # Make sure that if we're gating, that the newsgroups and host
+ # information are not blank.
+ if mlist.gateway_to_news or mlist.gateway_to_mail:
+ # BAW: It's too expensive and annoying to ensure that both the
+ # host is valid and that the newsgroup is a valid n.g. on the
+ # server. This should be good enough.
+ if not mlist.nntp_host or not mlist.linked_newsgroup:
+ doc.addError(_("""You cannot enable gatewaying unless both the
+ <a href="?VARHELP=gateway/nntp_host">news server field</a> and
+ the <a href="?VARHELP=gateway/linked_newsgroup">linked
+ newsgroup</a> fields are filled in."""))
+ # And reset these values
+ mlist.gateway_to_news = 0
+ mlist.gateway_to_mail = 0
diff --git a/Mailman/Gui/__init__.py b/Mailman/Gui/__init__.py
new file mode 100644
index 00000000..1e79b34a
--- /dev/null
+++ b/Mailman/Gui/__init__.py
@@ -0,0 +1,32 @@
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+from Archive import Archive
+from Autoresponse import Autoresponse
+from Bounce import Bounce
+from Digest import Digest
+from General import General
+from Membership import Membership
+from NonDigest import NonDigest
+from Passwords import Passwords
+from Privacy import Privacy
+from Topics import Topics
+from Usenet import Usenet
+from Language import Language
+from ContentFilter import ContentFilter
+
+# Don't export this symbol outside the package
+del GUIBase
diff --git a/Mailman/HTMLFormatter.py b/Mailman/HTMLFormatter.py
new file mode 100644
index 00000000..397eb475
--- /dev/null
+++ b/Mailman/HTMLFormatter.py
@@ -0,0 +1,433 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+
+"""Routines for presentation of list-specific HTML text."""
+
+import time
+import re
+
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman import MemberAdaptor
+from Mailman.htmlformat import *
+
+from Mailman.i18n import _
+
+
+EMPTYSTRING = ''
+BR = '<br>'
+NL = '\n'
+COMMASPACE = ', '
+
+
+
+class HTMLFormatter:
+ def GetMailmanFooter(self):
+ ownertext = COMMASPACE.join([Utils.ObscureEmail(a, 1)
+ for a in self.owner])
+ # Remove the .Format() when htmlformat conversion is done.
+ realname = self.real_name
+ hostname = self.host_name
+ listinfo_link = Link(self.GetScriptURL('listinfo'), realname).Format()
+ owner_link = Link('mailto:' + self.GetOwnerEmail(), ownertext).Format()
+ innertext = _('%(listinfo_link)s list run by %(owner_link)s')
+ return Container(
+ '<hr>',
+ Address(
+ Container(
+ innertext,
+ '<br>',
+ Link(self.GetScriptURL('admin'),
+ _('%(realname)s administrative interface')),
+ _(' (requires authorization)'),
+ '<br>',
+ Link(Utils.ScriptURL('listinfo'),
+ _('Overview of all %(hostname)s mailing lists')),
+ '<p>', MailmanLogo()))).Format()
+
+ def FormatUsers(self, digest, lang=None):
+ if lang is None:
+ lang = self.preferred_language
+ conceal_sub = mm_cfg.ConcealSubscription
+ people = []
+ if digest:
+ digestmembers = self.getDigestMemberKeys()
+ for dm in digestmembers:
+ if not self.getMemberOption(dm, conceal_sub):
+ people.append(dm)
+ num_concealed = len(digestmembers) - len(people)
+ else:
+ members = self.getRegularMemberKeys()
+ for m in members:
+ if not self.getMemberOption(m, conceal_sub):
+ people.append(m)
+ num_concealed = len(members) - len(people)
+ if num_concealed == 1:
+ concealed = _('<em>(1 private member not shown)</em>')
+ elif num_concealed > 1:
+ concealed = _(
+ '<em>(%(num_concealed)d private members not shown)</em>')
+ else:
+ concealed = ''
+ items = []
+ people.sort()
+ for person in people:
+ id = Utils.ObscureEmail(person)
+ url = self.GetOptionsURL(person)
+ if self.obscure_addresses:
+ showing = Utils.ObscureEmail(person, for_text=1)
+ else:
+ showing = person
+ got = Link(url, showing)
+ if self.getDeliveryStatus(person) <> MemberAdaptor.ENABLED:
+ got = Italic('(', got, ')')
+ items.append(got)
+ # Just return the .Format() so this works until I finish
+ # converting everything to htmlformat...
+ return concealed + UnorderedList(*tuple(items)).Format()
+
+ def FormatOptionButton(self, option, value, user):
+ if option == mm_cfg.DisableDelivery:
+ optval = self.getDeliveryStatus(user) <> MemberAdaptor.ENABLED
+ else:
+ optval = self.getMemberOption(user, option)
+ if optval == value:
+ checked = ' CHECKED'
+ else:
+ checked = ''
+ name = {mm_cfg.DontReceiveOwnPosts : 'dontreceive',
+ mm_cfg.DisableDelivery : 'disablemail',
+ mm_cfg.DisableMime : 'mime',
+ mm_cfg.AcknowledgePosts : 'ackposts',
+ mm_cfg.Digests : 'digest',
+ mm_cfg.ConcealSubscription : 'conceal',
+ mm_cfg.SuppressPasswordReminder : 'remind',
+ mm_cfg.ReceiveNonmatchingTopics : 'rcvtopic',
+ mm_cfg.DontReceiveDuplicates : 'nodupes',
+ }[option]
+ return '<input type=radio name="%s" value="%d"%s>' % (
+ name, value, checked)
+
+ def FormatDigestButton(self):
+ if self.digest_is_default:
+ checked = ' CHECKED'
+ else:
+ checked = ''
+ return '<input type=radio name="digest" value="1"%s>' % checked
+
+ def FormatDisabledNotice(self, user):
+ status = self.getDeliveryStatus(user)
+ reason = None
+ info = self.getBounceInfo(user)
+ if status == MemberAdaptor.BYUSER:
+ reason = _('; it was disabled by you')
+ elif status == MemberAdaptor.BYADMIN:
+ reason = _('; it was disabled by the list administrator')
+ elif status == MemberAdaptor.BYBOUNCE:
+ date = time.strftime('%d-%b-%Y',
+ time.localtime(Utils.midnight(info.date)))
+ reason = _('''; it was disabled due to excessive bounces. The
+ last bounce was received on %(date)s''')
+ elif status == MemberAdaptor.UNKNOWN:
+ reason = _('; it was disabled for unknown reasons')
+ if reason:
+ note = FontSize('+1', _(
+ 'Note: your list delivery is currently disabled%(reason)s.'
+ )).Format()
+ link = Link('#disable', _('Mail delivery')).Format()
+ mailto = Link('mailto:' + self.GetOwnerEmail(),
+ _('the list administrator')).Format()
+ return _('''<p>%(note)s
+
+ <p>You may have disabled list delivery intentionally,
+ or it may have been triggered by bounces from your email
+ address. In either case, to re-enable delivery, change the
+ %(link)s option below. Contact %(mailto)s if you have any
+ questions or need assistance.''')
+ elif info and info.score > 0:
+ # Provide information about their current bounce score. We know
+ # their membership is currently enabled.
+ score = info.score
+ total = self.bounce_score_threshold
+ return _('''<p>We have received some recent bounces from your
+ address. Your current <em>bounce score</em> is %(score)s out of a
+ maximum of %(total)s. Please double check that your subscribed
+ address is correct and that there are no problems with delivery to
+ this address. Your bounce score will be automatically reset if
+ the problems are corrected soon.''')
+ else:
+ return ''
+
+ def FormatUmbrellaNotice(self, user, type):
+ addr = self.GetMemberAdminEmail(user)
+ if self.umbrella_list:
+ return _("(Note - you are subscribing to a list of mailing lists, "
+ "so the %(type)s notice will be sent to the admin address"
+ " for your membership, %(addr)s.)<p>")
+ else:
+ return ""
+
+ def FormatSubscriptionMsg(self):
+ msg = ''
+ also = ''
+ if self.subscribe_policy == 1:
+ msg += _('''You will be sent email requesting confirmation, to
+ prevent others from gratuitously subscribing you.''')
+ elif self.subscribe_policy == 2:
+ msg += _("""This is a closed list, which means your subscription
+ will be held for approval. You will be notified of the list
+ moderator's decision by email.""")
+ also = _('also ')
+ elif self.subscribe_policy == 3:
+ msg += _("""You will be sent email requesting confirmation, to
+ prevent others from gratuitously subscribing you. Once
+ confirmation is received, your request will be held for approval
+ by the list moderator. You will be notified of the moderator's
+ decision by email.""")
+ also = _("also ")
+ if msg:
+ msg += ' '
+ if self.private_roster == 1:
+ msg += _('''This is %(also)sa private list, which means that the
+ list of members is not available to non-members.''')
+ elif self.private_roster:
+ msg += _('''This is %(also)sa hidden list, which means that the
+ list of members is available only to the list administrator.''')
+ else:
+ msg += _('''This is %(also)sa public list, which means that the
+ list of members list is available to everyone.''')
+ if self.obscure_addresses:
+ msg += _(''' (but we obscure the addresses so they are not
+ easily recognizable by spammers).''')
+
+ if self.umbrella_list:
+ sfx = self.umbrella_member_suffix
+ msg += _("""<p>(Note that this is an umbrella list, intended to
+ have only other mailing lists as members. Among other things,
+ this means that your confirmation request will be sent to the
+ `%(sfx)s' account for your address.)""")
+ return msg
+
+ def FormatUndigestButton(self):
+ if self.digest_is_default:
+ checked = ''
+ else:
+ checked = ' CHECKED'
+ return '<input type=radio name="digest" value="0"%s>' % checked
+
+ def FormatMimeDigestsButton(self):
+ if self.mime_is_default_digest:
+ checked = ' CHECKED'
+ else:
+ checked = ''
+ return '<input type=radio name="mime" value="1"%s>' % checked
+
+ def FormatPlainDigestsButton(self):
+ if self.mime_is_default_digest:
+ checked = ''
+ else:
+ checked = ' CHECKED'
+ return '<input type=radio name="plain" value="1"%s>' % checked
+
+ def FormatEditingOption(self, lang):
+ if self.private_roster == 0:
+ either = _('<b><i>either</i></b> ')
+ else:
+ either = ''
+ realname = self.real_name
+
+ text = (_('''To unsubscribe from %(realname)s, get a password reminder,
+ or change your subscription options %(either)senter your subscription
+ email address:
+ <p><center> ''')
+ + TextBox('email', size=30).Format()
+ + ' '
+ + SubmitButton('UserOptions',
+ _('Unsubscribe or edit options')).Format()
+ + Hidden('language', lang).Format()
+ + '</center>')
+ if self.private_roster == 0:
+ text += _('''<p>... <b><i>or</i></b> select your entry from
+ the subscribers list (see above).''')
+ text += _(''' If you leave the field blank, you will be prompted for
+ your email address''')
+ return text
+
+ def RestrictedListMessage(self, which, restriction):
+ if not restriction:
+ return ''
+ elif restriction == 1:
+ return _(
+ '''(<i>%(which)s is only available to the list
+ members.</i>)''')
+ else:
+ return _('''(<i>%(which)s is only available to the list
+ administrator.</i>)''')
+
+ def FormatRosterOptionForUser(self, lang):
+ return self.RosterOption(lang).Format()
+
+ def RosterOption(self, lang):
+ container = Container()
+ container.AddItem(Hidden('language', lang))
+ if not self.private_roster:
+ container.AddItem(_("Click here for the list of ")
+ + self.real_name
+ + _(" subscribers: "))
+ container.AddItem(SubmitButton('SubscriberRoster',
+ _("Visit Subscriber list")))
+ else:
+ if self.private_roster == 1:
+ only = _('members')
+ whom = _('Address:')
+ else:
+ only = _('the list administrator')
+ whom = _('Admin address:')
+ # Solicit the user and password.
+ container.AddItem(
+ self.RestrictedListMessage(_('The subscribers list'),
+ self.private_roster)
+ + _(" <p>Enter your ")
+ + whom[:-1].lower()
+ + _(" and password to visit"
+ " the subscribers list: <p><center> ")
+ + whom
+ + " ")
+ container.AddItem(self.FormatBox('roster-email'))
+ container.AddItem(_("Password: ")
+ + self.FormatSecureBox('roster-pw')
+ + "&nbsp;&nbsp;")
+ container.AddItem(SubmitButton('SubscriberRoster',
+ _('Visit Subscriber List')))
+ container.AddItem("</center>")
+ return container
+
+ def FormatFormStart(self, name, extra=''):
+ base_url = self.GetScriptURL(name)
+ if extra:
+ full_url = "%s/%s" % (base_url, extra)
+ else:
+ full_url = base_url
+ return ('<FORM Method=POST ACTION="%s">' % full_url)
+
+ def FormatArchiveAnchor(self):
+ return '<a href="%s">' % self.GetBaseArchiveURL()
+
+ def FormatFormEnd(self):
+ return '</FORM>'
+
+ def FormatBox(self, name, size=20, value=''):
+ return '<INPUT type="Text" name="%s" size="%d" value="%s">' % (
+ name, size, value)
+
+ def FormatSecureBox(self, name):
+ return '<INPUT type="Password" name="%s" size="15">' % name
+
+ def FormatButton(self, name, text='Submit'):
+ return '<INPUT type="Submit" name="%s" value="%s">' % (name, text)
+
+ def FormatReminder(self, lang):
+ if self.send_reminders:
+ return _('Once a month, your password will be emailed to you as'
+ ' a reminder.')
+ return ''
+
+ def ParseTags(self, template, replacements, lang=None):
+ if lang is None:
+ charset = 'us-ascii'
+ else:
+ charset = Utils.GetCharSet(lang)
+ text = Utils.maketext(template, raw=1, lang=lang, mlist=self)
+ parts = re.split('(</?[Mm][Mm]-[^>]*>)', text)
+ i = 1
+ while i < len(parts):
+ tag = parts[i].lower()
+ if replacements.has_key(tag):
+ repl = replacements[tag]
+ if isinstance(repl, type(u'')):
+ repl = repl.encode(charset, 'replace')
+ parts[i] = repl
+ else:
+ parts[i] = ''
+ i = i + 2
+ return EMPTYSTRING.join(parts)
+
+ # This needs to wait until after the list is inited, so let's build it
+ # when it's needed only.
+ def GetStandardReplacements(self, lang=None):
+ dmember_len = len(self.getDigestMemberKeys())
+ member_len = len(self.getRegularMemberKeys())
+ # If only one language is enabled for this mailing list, omit the
+ # language choice buttons.
+ if len(self.GetAvailableLanguages()) == 1:
+ listlangs = _(Utils.GetLanguageDescr(self.preferred_language))
+ else:
+ listlangs = self.GetLangSelectBox(lang).Format()
+ d = {
+ '<mm-mailman-footer>' : self.GetMailmanFooter(),
+ '<mm-list-name>' : self.real_name,
+ '<mm-email-user>' : self._internal_name,
+ '<mm-list-description>' : self.description,
+ '<mm-list-info>' : BR.join(self.info.split(NL)),
+ '<mm-form-end>' : self.FormatFormEnd(),
+ '<mm-archive>' : self.FormatArchiveAnchor(),
+ '</mm-archive>' : '</a>',
+ '<mm-list-subscription-msg>' : self.FormatSubscriptionMsg(),
+ '<mm-restricted-list-message>' : \
+ self.RestrictedListMessage(_('The current archive'),
+ self.archive_private),
+ '<mm-num-reg-users>' : `member_len`,
+ '<mm-num-digesters>' : `dmember_len`,
+ '<mm-num-members>' : (`member_len + dmember_len`),
+ '<mm-posting-addr>' : '%s' % self.GetListEmail(),
+ '<mm-request-addr>' : '%s' % self.GetRequestEmail(),
+ '<mm-owner>' : self.GetOwnerEmail(),
+ '<mm-reminder>' : self.FormatReminder(self.preferred_language),
+ '<mm-host>' : self.host_name,
+ '<mm-list-langs>' : listlangs,
+ }
+ if mm_cfg.IMAGE_LOGOS:
+ d['<mm-favicon>'] = mm_cfg.IMAGE_LOGOS + mm_cfg.SHORTCUT_ICON
+ return d
+
+ def GetAllReplacements(self, lang=None):
+ """
+ returns standard replaces plus formatted user lists in
+ a dict just like GetStandardReplacements.
+ """
+ if lang is None:
+ lang = self.preferred_language
+ d = self.GetStandardReplacements(lang)
+ d.update({"<mm-regular-users>": self.FormatUsers(0, lang),
+ "<mm-digest-users>": self.FormatUsers(1, lang)})
+ return d
+
+ def GetLangSelectBox(self, lang=None, varname='language'):
+ if lang is None:
+ lang = self.preferred_language
+ # Figure out the available languages
+ values = self.GetAvailableLanguages()
+ legend = map(_, map(Utils.GetLanguageDescr, values))
+ try:
+ selected = values.index(lang)
+ except ValueError:
+ try:
+ selected = values.index(self.preferred_language)
+ except ValueError:
+ selected = mm_cfg.DEFAULT_SERVER_LANGUAGE
+ # Return the widget
+ return SelectOptions(varname, values, legend, selected)
diff --git a/Mailman/Handlers/.cvsignore b/Mailman/Handlers/.cvsignore
new file mode 100644
index 00000000..f3c7a7c5
--- /dev/null
+++ b/Mailman/Handlers/.cvsignore
@@ -0,0 +1 @@
+Makefile
diff --git a/Mailman/Handlers/Acknowledge.py b/Mailman/Handlers/Acknowledge.py
new file mode 100644
index 00000000..103448e1
--- /dev/null
+++ b/Mailman/Handlers/Acknowledge.py
@@ -0,0 +1,62 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Send an acknowledgement of the successful post to the sender.
+
+This only happens if the sender has set their AcknowledgePosts attribute.
+This module must appear after the deliverer in the message pipeline in order
+to send acks only after successful delivery.
+
+"""
+
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman import Message
+from Mailman import Errors
+from Mailman.i18n import _
+
+
+
+def process(mlist, msg, msgdata):
+ # Extract the sender's address and find them in the user database
+ sender = msgdata.get('original_sender', msg.get_sender())
+ try:
+ ack = mlist.getMemberOption(sender, mm_cfg.AcknowledgePosts)
+ if not ack:
+ return
+ except Errors.NotAMemberError:
+ return
+ # Okay, they want acknowledgement of their post. Give them their original
+ # subject. BAW: do we want to use the decoded header?
+ origsubj = msgdata.get('origsubj', msg.get('subject', _('(no subject)')))
+ # Get the user's preferred language
+ lang = msgdata.get('lang', mlist.getMemberLanguage(sender))
+ # Now get the acknowledgement template
+ realname = mlist.real_name
+ text = Utils.maketext(
+ 'postack.txt',
+ {'subject' : origsubj,
+ 'listname' : realname,
+ 'listinfo_url': mlist.GetScriptURL('listinfo', absolute=1),
+ 'optionsurl' : mlist.GetOptionsURL(sender, absolute=1),
+ }, lang=lang, mlist=mlist, raw=1)
+ # Craft the outgoing message, with all headers and attributes
+ # necessary for general delivery. Then enqueue it to the outgoing
+ # queue.
+ subject = _('%(realname)s post acknowledgement')
+ usermsg = Message.UserNotification(sender, mlist.GetBouncesEmail(),
+ subject, text, lang)
+ usermsg.send(mlist)
diff --git a/Mailman/Handlers/AfterDelivery.py b/Mailman/Handlers/AfterDelivery.py
new file mode 100644
index 00000000..b6bb96c2
--- /dev/null
+++ b/Mailman/Handlers/AfterDelivery.py
@@ -0,0 +1,28 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Perform some bookkeeping after a successful post.
+
+This module must appear after the delivery module in the message pipeline.
+"""
+
+import time
+
+
+
+def process(mlist, msg, msgdata):
+ mlist.last_post_time = time.time()
+ mlist.post_id += 1
diff --git a/Mailman/Handlers/Approve.py b/Mailman/Handlers/Approve.py
new file mode 100644
index 00000000..d339a9b1
--- /dev/null
+++ b/Mailman/Handlers/Approve.py
@@ -0,0 +1,82 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Determine whether the message is approved for delivery.
+
+This module only tests for definitive approvals. IOW, this module only
+determines whether the message is definitively approved or definitively
+denied. Situations that could hold a message for approval or confirmation are
+not tested by this module.
+
+"""
+
+from email.Iterators import typed_subpart_iterator
+
+from Mailman import mm_cfg
+from Mailman import Errors
+
+NL = '\n'
+
+
+
+def process(mlist, msg, msgdata):
+ # Short circuits
+ if msgdata.get('approved'):
+ # Digests, Usenet postings, and some other messages come pre-approved.
+ # TBD: we may want to further filter Usenet messages, so the test
+ # above may not be entirely correct.
+ return
+ # See if the message has an Approved or Approve header with a valid
+ # list-moderator, list-admin. Also look at the first non-whitespace line
+ # in the file to see if it looks like an Approved header. We are
+ # specifically /not/ allowing the site admins password to work here
+ # because we want to discourage the practice of sending the site admin
+ # password through email in the clear.
+ missing = []
+ passwd = msg.get('approved', msg.get('approve', missing))
+ if passwd is missing:
+ # Find the first text/plain part in the message
+ part = None
+ for part in typed_subpart_iterator(msg, 'text', 'plain'):
+ break
+ if part is not None:
+ lines = part.get_payload().splitlines()
+ line = ''
+ for lineno, line in zip(range(len(lines)), lines):
+ if line.strip():
+ break
+ i = line.find(':')
+ if i >= 0:
+ name = line[:i]
+ value = line[i+1:]
+ if name.lower() in ('approve', 'approved'):
+ passwd = value.lstrip()
+ # Now strip the first line from the payload so the
+ # password doesn't leak.
+ del lines[lineno]
+ part.set_payload(NL.join(lines[1:]))
+ if passwd is not missing and mlist.Authenticate((mm_cfg.AuthListModerator,
+ mm_cfg.AuthListAdmin),
+ passwd):
+ # BAW: should we definitely deny if the password exists but does not
+ # match? For now we'll let it percolate up for further determination.
+ msgdata['approved'] = 1
+ # Used by the Emergency module
+ msgdata['adminapproved'] = 1
+ # has this message already been posted to this list?
+ beentheres = [s.strip().lower() for s in msg.get_all('x-beenthere', [])]
+ if mlist.GetListEmail().lower() in beentheres:
+ raise Errors.LoopError
diff --git a/Mailman/Handlers/AvoidDuplicates.py b/Mailman/Handlers/AvoidDuplicates.py
new file mode 100644
index 00000000..af740da2
--- /dev/null
+++ b/Mailman/Handlers/AvoidDuplicates.py
@@ -0,0 +1,88 @@
+# Copyright (C) 2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""If the user wishes it, do not send duplicates of the same message.
+
+This module keeps an in-memory dictionary of Message-ID: and recipient pairs.
+If a message with an identical Message-ID: is about to be sent to someone who
+has already received a copy, we either drop the message, add a duplicate
+warning header, or pass it through, depending on the user's preferences.
+"""
+
+from Mailman import mm_cfg
+
+from email.Utils import getaddresses, formataddr
+
+
+
+def process(mlist, msg, msgdata):
+ recips = msgdata['recips']
+ # Short circuit
+ if not recips:
+ return
+ # Seed this set with addresses we don't care about dup avoiding
+ explicit_recips = {}
+ listaddrs = [mlist.GetListEmail(), mlist.GetBouncesEmail(),
+ mlist.GetOwnerEmail(), mlist.GetRequestEmail()]
+ for addr in listaddrs:
+ explicit_recips[addr] = 1
+ # Figure out the set of explicit recipients
+ ccaddrs = {}
+ for header in ('to', 'cc', 'resent-to', 'resent-cc'):
+ addrs = getaddresses(msg.get_all(header, []))
+ if header == 'cc':
+ for name, addr in addrs:
+ ccaddrs[addr] = name, addr
+ for name, addr in addrs:
+ if not addr:
+ continue
+ # Ignore the list addresses for purposes of dup avoidance
+ explicit_recips[addr] = 1
+ # Now strip out the list addresses
+ for addr in listaddrs:
+ del explicit_recips[addr]
+ if not explicit_recips:
+ # No one was explicitly addressed, so we can't do any dup collapsing
+ return
+ newrecips = []
+ for r in recips:
+ # If this recipient is explicitly addressed...
+ if explicit_recips.has_key(r):
+ send_duplicate = 1
+ # If the member wants to receive duplicates, or if the recipient
+ # is not a member at all, just flag the X-Mailman-Duplicate: yes
+ # header.
+ if mlist.isMember(r) and \
+ mlist.getMemberOption(r, mm_cfg.DontReceiveDuplicates):
+ send_duplicate = 0
+ # We'll send a duplicate unless the user doesn't wish it. If
+ # personalization is enabled, the add-dupe-header flag will add a
+ # X-Mailman-Duplicate: yes header for this user's message.
+ if send_duplicate:
+ msgdata.setdefault('add-dup-header', {})[r] = 1
+ newrecips.append(r)
+ elif ccaddrs.has_key(r):
+ del ccaddrs[r]
+ else:
+ # Otherwise, this is the first time they've been in the recips
+ # list. Add them to the newrecips list and flag them as having
+ # received this message.
+ newrecips.append(r)
+ # Set the new list of recipients
+ msgdata['recips'] = newrecips
+ del msg['cc']
+ for item in ccaddrs.values():
+ msg['cc'] = formataddr(item)
diff --git a/Mailman/Handlers/CalcRecips.py b/Mailman/Handlers/CalcRecips.py
new file mode 100644
index 00000000..1b2a600b
--- /dev/null
+++ b/Mailman/Handlers/CalcRecips.py
@@ -0,0 +1,133 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Calculate the regular (i.e. non-digest) recipients of the message.
+
+This module calculates the non-digest recipients for the message based on the
+list's membership and configuration options. It places the list of recipients
+on the `recips' attribute of the message. This attribute is used by the
+SendmailDeliver and BulkDeliver modules.
+"""
+
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman import Message
+from Mailman import Errors
+from Mailman.MemberAdaptor import ENABLED
+from Mailman.i18n import _
+from Mailman.Logging.Syslog import syslog
+
+
+
+def process(mlist, msg, msgdata):
+ # Short circuit if we've already calculated the recipients list,
+ # regardless of whether the list is empty or not.
+ if msgdata.has_key('recips'):
+ return
+ # Should the original sender should be included in the recipients list?
+ include_sender = 1
+ sender = msg.get_sender()
+ try:
+ if mlist.getMemberOption(sender, mm_cfg.DontReceiveOwnPosts):
+ include_sender = 0
+ except Errors.NotAMemberError:
+ pass
+ # Support for urgent messages, which bypasses digests and disabled
+ # delivery and forces an immediate delivery to all members Right Now. We
+ # are specifically /not/ allowing the site admins password to work here
+ # because we want to discourage the practice of sending the site admin
+ # password through email in the clear. (see also Approve.py)
+ missing = []
+ password = msg.get('urgent', missing)
+ if password is not missing:
+ if mlist.Authenticate((mm_cfg.AuthListModerator,
+ mm_cfg.AuthListAdmin),
+ password):
+ recips = mlist.getMemberCPAddresses(mlist.getRegularMemberKeys() +
+ mlist.getDigestMemberKeys())
+ msgdata['recips'] = recips
+ return
+ else:
+ # Bad Urgent: password, so reject it instead of passing it on. I
+ # think it's better that the sender know they screwed up than to
+ # deliver it normally.
+ realname = mlist.real_name
+ text = _("""\
+Your urgent message to the %(realname)s mailing list was not authorized for
+delivery. The original message as received by Mailman is attached.
+""")
+ raise Errors.RejectMessage, Utils.wrap(text)
+ # Calculate the regular recipients of the message
+ recips = [mlist.getMemberCPAddress(m)
+ for m in mlist.getRegularMemberKeys()
+ if mlist.getDeliveryStatus(m) == ENABLED]
+ # Remove the sender if they don't want to receive their own posts
+ if not include_sender:
+ try:
+ recips.remove(mlist.getMemberCPAddress(sender))
+ except (Errors.NotAMemberError, ValueError):
+ # Sender does not want to get copies of their own messages (not
+ # metoo), but delivery to their address is disabled (nomail). Or
+ # the sender is not a member of the mailing list.
+ pass
+ # Handle topic classifications
+ do_topic_filters(mlist, msg, msgdata, recips)
+ # Bookkeeping
+ msgdata['recips'] = recips
+
+
+
+def do_topic_filters(mlist, msg, msgdata, recips):
+ hits = msgdata.get('topichits')
+ zaprecips = []
+ if hits:
+ # The message hit some topics, so only deliver this message to those
+ # who are interested in one of the hit topics.
+ for user in recips:
+ utopics = mlist.getMemberTopics(user)
+ if not utopics:
+ # This user is not interested in any topics, so they get all
+ # postings.
+ continue
+ # BAW: Slow, first-match, set intersection!
+ for topic in utopics:
+ if topic in hits:
+ # The user wants this message
+ break
+ else:
+ # The user was interested in topics, but not any of the ones
+ # this message matched, so zap him.
+ zaprecips.append(user)
+ else:
+ # The semantics for a message that did not hit any of the pre-canned
+ # topics is to troll through the membership list, looking for users
+ # who selected at least one topic of interest, but turned on
+ # ReceiveNonmatchingTopics.
+ for user in recips:
+ if not mlist.getMemberTopics(user):
+ # The user did not select any topics of interest, so he gets
+ # this message by default.
+ continue
+ if not mlist.getMemberOption(user,
+ mm_cfg.ReceiveNonmatchingTopics):
+ # The user has interest in some topics, but elects not to
+ # receive message that match no topics, so zap him.
+ zaprecips.append(user)
+ # Otherwise, the user wants non-matching messages.
+ # Prune out the non-receiving users
+ for user in zaprecips:
+ recips.remove(user)
+
diff --git a/Mailman/Handlers/Cleanse.py b/Mailman/Handlers/Cleanse.py
new file mode 100644
index 00000000..143f9500
--- /dev/null
+++ b/Mailman/Handlers/Cleanse.py
@@ -0,0 +1,39 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Cleanse certain headers from all messages."""
+
+
+def process(mlist, msg, msgdata):
+ # Always remove this header from any outgoing messages. Be sure to do
+ # this after the information on the header is actually used, but before a
+ # permanent record of the header is saved.
+ del msg['approved']
+ # Also remove this header since it can contain a password
+ del msg['urgent']
+ # We remove other headers from anonymous lists
+ if mlist.anonymous_list:
+ del msg['from']
+ del msg['reply-to']
+ del msg['sender']
+ msg['From'] = mlist.GetListEmail()
+ msg['Reply-To'] = mlist.GetListEmail()
+ # Some headers can be used to fish for membership
+ del msg['return-receipt-to']
+ del msg['disposition-notification-to']
+ del msg['x-confirm-reading-to']
+ # Pegasus mail uses this one... sigh
+ del msg['x-pmrqc']
diff --git a/Mailman/Handlers/CookHeaders.py b/Mailman/Handlers/CookHeaders.py
new file mode 100644
index 00000000..40eddd66
--- /dev/null
+++ b/Mailman/Handlers/CookHeaders.py
@@ -0,0 +1,254 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Cook a message's Subject header.
+"""
+
+from __future__ import nested_scopes
+import re
+from types import UnicodeType
+
+from email.Charset import Charset
+from email.Header import Header, decode_header
+from email.Utils import parseaddr, formataddr, getaddresses
+
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman.i18n import _
+from Mailman.Logging.Syslog import syslog
+
+CONTINUATION = ',\n\t'
+COMMASPACE = ', '
+MAXLINELEN = 78
+
+
+
+def _isunicode(s):
+ return isinstance(s, UnicodeType)
+
+def uheader(mlist, s, header_name=None):
+ # Get the charset to encode the string in. If this is us-ascii, we'll use
+ # iso-8859-1 instead, just to get a little extra coverage, and because the
+ # Header class tries us-ascii first anyway.
+ charset = Utils.GetCharSet(mlist.preferred_language)
+ if charset == 'us-ascii':
+ charset = 'iso-8859-1'
+ charset = Charset(charset)
+ # Convert the string to unicode so Header will do the 3-charset encoding.
+ # If s is a byte string and there are funky characters in it that don't
+ # match the charset, we might as well replace them now.
+ if not _isunicode(s):
+ codec = charset.input_codec or 'ascii'
+ s = unicode(s, codec, 'replace')
+ # We purposefully leave no space b/w prefix and subject!
+ return Header(s, charset, header_name=header_name)
+
+
+
+def process(mlist, msg, msgdata):
+ # Set the "X-Ack: no" header if noack flag is set.
+ if msgdata.get('noack'):
+ del msg['x-ack']
+ msg['X-Ack'] = 'no'
+ # Because we're going to modify various important headers in the email
+ # message, we want to save some of the information in the msgdata
+ # dictionary for later. Specifically, the sender header will get waxed,
+ # but we need it for the Acknowledge module later.
+ msgdata['original_sender'] = msg.get_sender()
+ # VirginRunner sets _fasttrack for internally crafted messages.
+ fasttrack = msgdata.get('_fasttrack')
+ if not msgdata.get('isdigest') and not fasttrack:
+ prefix_subject(mlist, msg, msgdata)
+ # Mark message so we know we've been here, but leave any existing
+ # X-BeenThere's intact.
+ msg['X-BeenThere'] = mlist.GetListEmail()
+ # Add Precedence: and other useful headers. None of these are standard
+ # and finding information on some of them are fairly difficult. Some are
+ # just common practice, and we'll add more here as they become necessary.
+ # Good places to look are:
+ #
+ # http://www.dsv.su.se/~jpalme/ietf/jp-ietf-home.html
+ # http://www.faqs.org/rfcs/rfc2076.html
+ #
+ # None of these headers are added if they already exist. BAW: some
+ # consider the advertising of this a security breach. I.e. if there are
+ # known exploits in a particular version of Mailman and we know a site is
+ # using such an old version, they may be vulnerable. It's too easy to
+ # edit the code to add a configuration variable to handle this.
+ if not msg.has_key('x-mailman-version'):
+ msg['X-Mailman-Version'] = mm_cfg.VERSION
+ # We set "Precedence: list" because this is the recommendation from the
+ # sendmail docs, the most authoritative source of this header's semantics.
+ if not msg.has_key('precedence'):
+ msg['Precedence'] = 'list'
+ # Reply-To: munging. Do not do this if the message is "fast tracked",
+ # meaning it is internally crafted and delivered to a specific user. BAW:
+ # Yuck, I really hate this feature but I've caved under the sheer pressure
+ # of the (very vocal) folks want it. OTOH, RFC 2822 allows Reply-To: to
+ # be a list of addresses, so instead of replacing the original, simply
+ # augment it. RFC 2822 allows max one Reply-To: header so collapse them
+ # if we're adding a value, otherwise don't touch it. (Should we collapse
+ # in all cases?)
+ if not fasttrack:
+ # A convenience function, requires nested scopes. pair is (name, addr)
+ new = []
+ d = {}
+ def add(pair):
+ lcaddr = pair[1].lower()
+ if d.has_key(lcaddr):
+ return
+ d[lcaddr] = pair
+ new.append(pair)
+ # List admin wants an explicit Reply-To: added
+ if mlist.reply_goes_to_list == 2:
+ add(parseaddr(mlist.reply_to_address))
+ # If we're not first stripping existing Reply-To: then we need to add
+ # the original Reply-To:'s to the list we're building up. In both
+ # cases we'll zap the existing field because RFC 2822 says max one is
+ # allowed.
+ if not mlist.first_strip_reply_to:
+ orig = msg.get_all('reply-to', [])
+ for pair in getaddresses(orig):
+ add(pair)
+ # Set Reply-To: header to point back to this list. Add this last
+ # because some folks think that some MUAs make it easier to delete
+ # addresses from the right than from the left.
+ if mlist.reply_goes_to_list == 1:
+ i18ndesc = uheader(mlist, mlist.description)
+ add((str(i18ndesc), mlist.GetListEmail()))
+ del msg['reply-to']
+ # Don't put Reply-To: back if there's nothing to add!
+ if new:
+ # Preserve order
+ msg['Reply-To'] = COMMASPACE.join(
+ [formataddr(pair) for pair in new])
+ # The To field normally contains the list posting address. However
+ # when messages are fully personalized, that header will get
+ # overwritten with the address of the recipient. We need to get the
+ # posting address in one of the recipient headers or they won't be
+ # able to reply back to the list. It's possible the posting address
+ # was munged into the Reply-To header, but if not, we'll add it to a
+ # Cc header. BAW: should we force it into a Reply-To header in the
+ # above code?
+ if mlist.personalize == 2 and mlist.reply_goes_to_list <> 1:
+ # Watch out for existing Cc headers, merge, and remove dups. Note
+ # that RFC 2822 says only zero or one Cc header is allowed.
+ new = []
+ d = {}
+ for pair in getaddresses(msg.get_all('cc', [])):
+ add(pair)
+ i18ndesc = uheader(mlist, mlist.description)
+ add((str(i18ndesc), mlist.GetListEmail()))
+ del msg['Cc']
+ msg['Cc'] = COMMASPACE.join([formataddr(pair) for pair in new])
+ # Add list-specific headers as defined in RFC 2369 and RFC 2919, but only
+ # if the message is being crafted for a specific list (e.g. not for the
+ # password reminders).
+ #
+ # BAW: Some people really hate the List-* headers. It seems that the free
+ # version of Eudora (possibly on for some platforms) does not hide these
+ # headers by default, pissing off their users. Too bad. Fix the MUAs.
+ if msgdata.get('_nolist') or not mlist.include_rfc2369_headers:
+ return
+ # Pre-calculate
+ listid = '<%s.%s>' % (mlist.internal_name(), mlist.host_name)
+ if mlist.description:
+ # Make sure description is properly i18n'd
+ listid_h = uheader(mlist, mlist.description, 'List-Id')
+ listid_h.append(' ' + listid, 'us-ascii')
+ else:
+ # For wrapping
+ listid_h = Header(listid, 'us-ascii', header_name='List-Id')
+ # We always add a List-ID: header.
+ del msg['list-id']
+ msg['List-Id'] = listid_h
+ # For internally crafted messages, we
+ # also add a (nonstandard), "X-List-Administrivia: yes" header. For all
+ # others (i.e. those coming from list posts), we adda a bunch of other RFC
+ # 2369 headers.
+ requestaddr = mlist.GetRequestEmail()
+ subfieldfmt = '<%s>, <mailto:%s?subject=%ssubscribe>'
+ listinfo = mlist.GetScriptURL('listinfo', absolute=1)
+ headers = {}
+ if msgdata.get('reduced_list_headers'):
+ headers['X-List-Administrivia'] = 'yes'
+ else:
+ headers.update({
+ 'List-Help' : '<mailto:%s?subject=help>' % requestaddr,
+ 'List-Unsubscribe': subfieldfmt % (listinfo, requestaddr, 'un'),
+ 'List-Subscribe' : subfieldfmt % (listinfo, requestaddr, ''),
+ })
+ # List-Post: is controlled by a separate attribute
+ if mlist.include_list_post_header:
+ headers['List-Post'] = '<mailto:%s>' % mlist.GetListEmail()
+ # Add this header if we're archiving
+ if mlist.archive:
+ archiveurl = mlist.GetBaseArchiveURL()
+ if archiveurl.endswith('/'):
+ archiveurl = archiveurl[:-1]
+ headers['List-Archive'] = '<%s>' % archiveurl
+ # First we delete any pre-existing headers because the RFC permits only
+ # one copy of each, and we want to be sure it's ours.
+ for h, v in headers.items():
+ del msg[h]
+ # Wrap these lines if they are too long. 78 character width probably
+ # shouldn't be hardcoded, but is at least text-MUA friendly. The
+ # adding of 2 is for the colon-space separator.
+ if len(h) + 2 + len(v) > 78:
+ v = CONTINUATION.join(v.split(', '))
+ msg[h] = v
+
+
+
+def prefix_subject(mlist, msg, msgdata):
+ # Add the subject prefix unless the message is a digest or is being fast
+ # tracked (e.g. internally crafted, delivered to a single user such as the
+ # list admin).
+ prefix = mlist.subject_prefix
+ subject = msg['subject']
+ msgdata['origsubj'] = subject
+ # The header may be multilingual; decode it from base64/quopri and search
+ # each chunk for the prefix. BAW: Note that if the prefix contains spaces
+ # and each word of the prefix is encoded in a different chunk in the
+ # header, we won't find it. I think in practice that's unlikely though.
+ headerbits = decode_header(subject)
+ if prefix and subject:
+ pattern = re.escape(prefix.strip())
+ for decodedsubj, charset in headerbits:
+ if re.search(pattern, decodedsubj, re.IGNORECASE):
+ # The subject's already got the prefix, so don't change it
+ return
+ del msg['subject']
+ if not subject:
+ subject = _('(no subject)')
+ # Get the header as a Header instance, with proper unicode conversion
+ h = uheader(mlist, prefix, 'Subject')
+ for s, c in headerbits:
+ # Once again, convert the string to unicode.
+ if c is None:
+ c = Charset('iso-8859-1')
+ if not isinstance(c, Charset):
+ c = Charset(c)
+ if not _isunicode(s):
+ codec = c.input_codec or 'ascii'
+ try:
+ s = unicode(s, codec, 'replace')
+ except LookupError:
+ # Unknown codec, is this default reasonable?
+ s = unicode(s, Utils.GetCharSet(mlist.preferred_language),
+ 'replace')
+ h.append(s, c)
+ msg['Subject'] = h
diff --git a/Mailman/Handlers/Decorate.py b/Mailman/Handlers/Decorate.py
new file mode 100644
index 00000000..5605e321
--- /dev/null
+++ b/Mailman/Handlers/Decorate.py
@@ -0,0 +1,183 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Decorate a message by sticking the header and footer around it.
+"""
+
+from types import ListType
+from email.MIMEText import MIMEText
+
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman import Errors
+from Mailman.Message import Message
+from Mailman.i18n import _
+from Mailman.SafeDict import SafeDict
+from Mailman.Logging.Syslog import syslog
+
+
+
+def process(mlist, msg, msgdata):
+ # Digests and Mailman-craft messages should not get additional headers
+ if msgdata.get('isdigest') or msgdata.get('nodecorate'):
+ return
+ d = {}
+ if msgdata.get('personalize'):
+ # Calculate the extra personalization dictionary. Note that the
+ # length of the recips list better be exactly 1.
+ recips = msgdata.get('recips')
+ assert type(recips) == ListType and len(recips) == 1
+ member = recips[0].lower()
+ d['user_address'] = member
+ try:
+ d['user_delivered_to'] = mlist.getMemberCPAddress(member)
+ # BAW: Hmm, should we allow this?
+ d['user_password'] = mlist.getMemberPassword(member)
+ d['user_language'] = mlist.getMemberLanguage(member)
+ d['user_name'] = mlist.getMemberName(member) or _('not available')
+ d['user_optionsurl'] = mlist.GetOptionsURL(member)
+ except Errors.NotAMemberError:
+ pass
+ # These strings are descriptive for the log file and shouldn't be i18n'd
+ header = decorate(mlist, mlist.msg_header, 'non-digest header', d)
+ footer = decorate(mlist, mlist.msg_footer, 'non-digest footer', d)
+ # Escape hatch if both the footer and header are empty
+ if not header and not footer:
+ return
+ # Be MIME smart here. We only attach the header and footer by
+ # concatenation when the message is a non-multipart of type text/plain.
+ # Otherwise, if it is not a multipart, we make it a multipart, and then we
+ # add the header and footer as text/plain parts.
+ #
+ # BJG: In addition, only add the footer if the message's character set
+ # matches the charset of the list's preferred language. This is a
+ # suboptimal solution, and should be solved by allowing a list to have
+ # multiple headers/footers, for each language the list supports.
+ #
+ # Also, if the list's preferred charset is us-ascii, we can always
+ # safely add the header/footer to a plain text message since all
+ # charsets Mailman supports are strict supersets of us-ascii --
+ # no, UTF-16 emails are not supported yet.
+ mcset = msg.get_param('charset', 'us-ascii').lower()
+ lcset = Utils.GetCharSet(mlist.preferred_language)
+ msgtype = msg.get_type('text/plain')
+ # BAW: If the charsets don't match, should we add the header and footer by
+ # MIME multipart chroming the message?
+ wrap = 1
+ if not msg.is_multipart() and msgtype == 'text/plain' and \
+ msg.get('content-transfer-encoding', '').lower() <> 'base64' and \
+ (lcset == 'us-ascii' or mcset == lcset):
+ oldpayload = msg.get_payload()
+ frontsep = endsep = ''
+ if header and not header.endswith('\n'):
+ frontsep = '\n'
+ if footer and not oldpayload.endswith('\n'):
+ endsep = '\n'
+ payload = header + frontsep + oldpayload + endsep + footer
+ msg.set_payload(payload)
+ wrap = 0
+ elif msg.get_type() == 'multipart/mixed':
+ # The next easiest thing to do is just prepend the header and append
+ # the footer as additional subparts
+ mimehdr = MIMEText(header, 'plain', lcset)
+ mimeftr = MIMEText(footer, 'plain', lcset)
+ payload = msg.get_payload()
+ if not isinstance(payload, ListType):
+ payload = [payload]
+ if footer:
+ payload.append(mimeftr)
+ if header:
+ payload.insert(0, mimehdr)
+ msg.set_payload(payload)
+ wrap = 0
+ # If we couldn't add the header or footer in a less intrusive way, we can
+ # at least do it by MIME encapsulation. We want to keep as much of the
+ # outer chrome as possible.
+ if not wrap:
+ return
+ # Because of the way Message objects are passed around to process(), we
+ # need to play tricks with the outer message -- i.e. the outer one must
+ # remain the same instance. So we're going to create a clone of the outer
+ # message, with all the header chrome intact, then copy the payload to it.
+ # This will give us a clone of the original message, and it will form the
+ # basis of the interior, wrapped Message.
+ inner = Message()
+ # Which headers to copy? Let's just do the Content-* headers
+ for h, v in msg.items():
+ if h.lower().startswith('content-'):
+ inner[h] = v
+ inner.set_payload(msg.get_payload())
+ # For completeness
+ inner.set_unixfrom(msg.get_unixfrom())
+ inner.preamble = msg.preamble
+ inner.epilogue = msg.epilogue
+ # Don't copy get_charset, as this might be None, even if
+ # get_content_charset isn't. However, do make sure there is a default
+ # content-type, even if the original message was not MIME.
+ inner.set_default_type(msg.get_default_type())
+ # BAW: HACK ALERT.
+ if hasattr(msg, '__version__'):
+ inner.__version__ = msg.__version__
+ # Now, play games with the outer message to make it contain three
+ # subparts: the header (if any), the wrapped message, and the footer (if
+ # any).
+ payload = [inner]
+ if header:
+ mimehdr = MIMEText(header, 'plain', lcset)
+ payload.insert(0, mimehdr)
+ if footer:
+ mimeftr = MIMEText(footer, 'plain', lcset)
+ payload.append(mimeftr)
+ msg.set_payload(payload)
+ del msg['content-type']
+ del msg['content-transfer-encoding']
+ del msg['content-disposition']
+ msg['Content-Type'] = 'multipart/mixed'
+
+
+
+def decorate(mlist, template, what, extradict={}):
+ # `what' is just a descriptive phrase used in the log message
+ #
+ # BAW: We've found too many situations where Python can be fooled into
+ # interpolating too much revealing data into a format string. For
+ # example, a footer of "% silly %(real_name)s" would give a header
+ # containing all list attributes. While we've previously removed such
+ # really bad ones like `password' and `passwords', it's much better to
+ # provide a whitelist of known good attributes, then to try to remove a
+ # blacklist of known bad ones.
+ d = SafeDict({'real_name' : mlist.real_name,
+ 'list_name' : mlist.internal_name(),
+ # For backwards compatibility
+ '_internal_name': mlist.internal_name(),
+ 'host_name' : mlist.host_name,
+ 'web_page_url' : mlist.web_page_url,
+ 'description' : mlist.description,
+ 'info' : mlist.info,
+ 'cgiext' : mm_cfg.CGIEXT,
+ })
+ d.update(extradict)
+ # Using $-strings?
+ if getattr(mlist, 'use_dollar_strings', 0):
+ template = Utils.to_percent(template)
+ # Interpolate into the template
+ try:
+ text = (template % d).replace('\r\n', '\n')
+ except (ValueError, TypeError), e:
+ syslog('error', 'Exception while calculating %s:\n%s', what, e)
+ what = what.upper()
+ text = template
+ return text
diff --git a/Mailman/Handlers/Emergency.py b/Mailman/Handlers/Emergency.py
new file mode 100644
index 00000000..1833c9f7
--- /dev/null
+++ b/Mailman/Handlers/Emergency.py
@@ -0,0 +1,37 @@
+# Copyright (C) 2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Put an emergency hold on all messages otherwise approved.
+
+No notices are sent to either the sender or the list owner for emergency
+holds. I think they'd be too obnoxious.
+"""
+
+from Mailman import Errors
+from Mailman.i18n import _
+
+
+
+class EmergencyHold(Errors.HoldMessage):
+ reason = _('Emergency hold on all list traffic is in effect')
+ rejection = _('Your message was deemed inappropriate by the moderator.')
+
+
+
+def process(mlist, msg, msgdata):
+ if mlist.emergency and not msgdata.get('adminapproved'):
+ mlist.HoldMessage(msg, _(EmergencyHold.reason), msgdata)
+ raise EmergencyHold
diff --git a/Mailman/Handlers/FileRecips.py b/Mailman/Handlers/FileRecips.py
new file mode 100644
index 00000000..4ca4582e
--- /dev/null
+++ b/Mailman/Handlers/FileRecips.py
@@ -0,0 +1,49 @@
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Get the normal delivery recipients from a Sendmail style :include: file.
+"""
+
+import os
+import errno
+
+from Mailman import Errors
+
+
+
+def process(mlist, msg, msgdata):
+ if msgdata.has_key('recips'):
+ return
+ filename = os.path.join(mlist.fullpath(), 'members.txt')
+ try:
+ fp = open(filename)
+ except IOError, e:
+ if e.errno <> errno.ENOENT:
+ raise
+ # If the file didn't exist, just set an empty recipients list
+ msgdata['recips'] = []
+ return
+ # Read all the lines out of the file, and strip them of the trailing nl
+ addrs = [line.strip() for line in fp.readlines()]
+ # If the sender is in that list, remove him
+ sender = msg.get_sender()
+ if mlist.isMember(sender):
+ try:
+ addrs.remove(mlist.getMemberCPAddress(sender))
+ except ValueError:
+ # Don't worry if the sender isn't in the list
+ pass
+ msgdata['recips'] = addrs
diff --git a/Mailman/Handlers/Hold.py b/Mailman/Handlers/Hold.py
new file mode 100644
index 00000000..15223959
--- /dev/null
+++ b/Mailman/Handlers/Hold.py
@@ -0,0 +1,280 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Determine whether this message should be held for approval.
+
+This modules tests only for hold situations, such as messages that are too
+large, messages that have potential administrivia, etc. Definitive approvals
+or denials are handled by a different module.
+
+If no determination can be made (i.e. none of the hold criteria matches), then
+we do nothing. If the message must be held for approval, then the hold
+database is updated and any administrator notification messages are sent.
+Finally an exception is raised to let the pipeline machinery know that further
+message handling should stop.
+
+"""
+
+import email
+from email.MIMEText import MIMEText
+from email.MIMEMessage import MIMEMessage
+import email.Utils
+from types import ClassType
+
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman import Errors
+from Mailman import Message
+from Mailman import i18n
+from Mailman import Pending
+from Mailman.Logging.Syslog import syslog
+
+# First, play footsie with _ so that the following are marked as translated,
+# but aren't actually translated until we need the text later on.
+def _(s):
+ return s
+
+
+
+class ForbiddenPoster(Errors.HoldMessage):
+ reason = _('Sender is explicitly forbidden')
+ rejection = _('You are forbidden from posting messages to this list.')
+
+class ModeratedPost(Errors.HoldMessage):
+ reason = _('Post to moderated list')
+ rejection = _('Your message was deemed inappropriate by the moderator.')
+
+class NonMemberPost(Errors.HoldMessage):
+ reason = _('Post by non-member to a members-only list')
+ rejection = _('Non-members are not allowed to post messages to this list.')
+
+class NotExplicitlyAllowed(Errors.HoldMessage):
+ reason = _('Posting to a restricted list by sender requires approval')
+ rejection = _('This list is restricted; your message was not approved.')
+
+class TooManyRecipients(Errors.HoldMessage):
+ reason = _('Too many recipients to the message')
+ rejection = _('Please trim the recipient list; it is too long.')
+
+class ImplicitDestination(Errors.HoldMessage):
+ reason = _('Message has implicit destination')
+ rejection = _('''Blind carbon copies or other implicit destinations are
+not allowed. Try reposting your message by explicitly including the list
+address in the To: or Cc: fields.''')
+
+class Administrivia(Errors.HoldMessage):
+ reason = _('Message may contain administrivia')
+
+ def rejection_notice(self, mlist):
+ listurl = mlist.GetScriptURL('listinfo', absolute=1)
+ request = mlist.GetRequestEmail()
+ return _("""Please do *not* post administrative requests to the mailing
+list. If you wish to subscribe, visit %(listurl)s or send a message with the
+word `help' in it to the request address, %(request)s, for further
+instructions.""")
+
+class SuspiciousHeaders(Errors.HoldMessage):
+ reason = _('Message has a suspicious header')
+ rejection = _('Your message had a suspicious header.')
+
+class MessageTooBig(Errors.HoldMessage):
+ def __init__(self, msgsize, limit):
+ self.__msgsize = msgsize
+ self.__limit = limit
+
+ def reason_notice(self):
+ size = self.__msgsize
+ limit = self.__limit
+ return _('''Message body is too big: %(size)d bytes with a limit of
+%(limit)d KB''')
+
+ def rejection_notice(self, mlist):
+ kb = self.__limit
+ return _('''Your message was too big; please trim it to less than
+%(kb)d KB in size.''')
+
+class ModeratedNewsgroup(ModeratedPost):
+ reason = _('Posting to a moderated newsgroup')
+
+
+
+# And reset the translator
+_ = i18n._
+
+
+
+def ackp(msg):
+ ack = msg.get('x-ack', '').lower()
+ precedence = msg.get('precedence', '').lower()
+ if ack <> 'yes' and precedence in ('bulk', 'junk', 'list'):
+ return 0
+ return 1
+
+
+
+def process(mlist, msg, msgdata):
+ if msgdata.get('approved'):
+ return
+ # Get the sender of the message
+ listname = mlist.internal_name()
+ adminaddr = listname + '-admin'
+ sender = msg.get_sender()
+ # Special case an ugly sendmail feature: If there exists an alias of the
+ # form "owner-foo: bar" and sendmail receives mail for address "foo",
+ # sendmail will change the envelope sender of the message to "bar" before
+ # delivering. This feature does not appear to be configurable. *Boggle*.
+ if not sender or sender[:len(listname)+6] == adminaddr:
+ sender = msg.get_sender(use_envelope=0)
+ #
+ # Possible administrivia?
+ if mlist.administrivia and Utils.is_administrivia(msg):
+ hold_for_approval(mlist, msg, msgdata, Administrivia)
+ # no return
+ #
+ # Are there too many recipients to the message?
+ if mlist.max_num_recipients > 0:
+ # figure out how many recipients there are
+ recips = email.Utils.getaddresses(msg.get_all('to', []) +
+ msg.get_all('cc', []))
+ if len(recips) >= mlist.max_num_recipients:
+ hold_for_approval(mlist, msg, msgdata, TooManyRecipients)
+ # no return
+ #
+ # Implicit destination? Note that message originating from the Usenet
+ # side of the world should never be checked for implicit destination.
+ if mlist.require_explicit_destination and \
+ not mlist.HasExplicitDest(msg) and \
+ not msgdata.get('fromusenet'):
+ # then
+ hold_for_approval(mlist, msg, msgdata, ImplicitDestination)
+ # no return
+ #
+ # Suspicious headers?
+ if mlist.bounce_matching_headers:
+ triggered = mlist.hasMatchingHeader(msg)
+ if triggered:
+ # TBD: Darn - can't include the matching line for the admin
+ # message because the info would also go to the sender
+ hold_for_approval(mlist, msg, msgdata, SuspiciousHeaders)
+ # no return
+ #
+ # Is the message too big?
+ if mlist.max_message_size > 0:
+ bodylen = 0
+ for line in email.Iterators.body_line_iterator(msg):
+ bodylen += len(line)
+ if bodylen/1024.0 > mlist.max_message_size:
+ hold_for_approval(mlist, msg, msgdata,
+ MessageTooBig(bodylen, mlist.max_message_size))
+ # no return
+ #
+ # Are we gatewaying to a moderated newsgroup and is this list the
+ # moderator's address for the group?
+ if mlist.news_moderation == 2:
+ hold_for_approval(mlist, msg, msgdata, ModeratedNewsgroup)
+
+
+
+def hold_for_approval(mlist, msg, msgdata, exc):
+ # BAW: This should really be tied into the email confirmation system so
+ # that the message can be approved or denied via email as well as the
+ # web.
+ if type(exc) is ClassType:
+ # Go ahead and instantiate it now.
+ exc = exc()
+ listname = mlist.real_name
+ sender = msgdata.get('sender', msg.get_sender())
+ owneraddr = mlist.GetOwnerEmail()
+ adminaddr = mlist.GetBouncesEmail()
+ requestaddr = mlist.GetRequestEmail()
+ # We need to send both the reason and the rejection notice through the
+ # translator again, because of the games we play above
+ reason = Utils.wrap(exc.reason_notice())
+ msgdata['rejection_notice'] = Utils.wrap(exc.rejection_notice(mlist))
+ id = mlist.HoldMessage(msg, reason, msgdata)
+ # Now we need to craft and send a message to the list admin so they can
+ # deal with the held message.
+ d = {'listname' : listname,
+ 'hostname' : mlist.host_name,
+ 'reason' : _(reason),
+ 'sender' : sender,
+ 'subject' : msg.get('subject', _('(no subject)')),
+ 'admindb_url': mlist.GetScriptURL('admindb', absolute=1),
+ }
+ # We may want to send a notification to the original sender too
+ fromusenet = msgdata.get('fromusenet')
+ # Since we're sending two messages, which may potentially be in different
+ # languages (the user's preferred and the list's preferred for the admin),
+ # we need to play some i18n games here. Since the current language
+ # context ought to be set up for the user, let's craft his message first.
+ #
+ # This message should appear to come from <list>-admin so as to handle any
+ # bounce processing that might be needed.
+ cookie = Pending.new(Pending.HELD_MESSAGE, id)
+ if not fromusenet and ackp(msg) and mlist.respond_to_post_requests and \
+ mlist.autorespondToSender(sender):
+ # Get a confirmation cookie
+ d['confirmurl'] = '%s/%s' % (mlist.GetScriptURL('confirm', absolute=1),
+ cookie)
+ lang = msgdata.get('lang', mlist.getMemberLanguage(sender))
+ subject = _('Your message to %(listname)s awaits moderator approval')
+ text = Utils.maketext('postheld.txt', d, lang=lang, mlist=mlist)
+ nmsg = Message.UserNotification(sender, adminaddr, subject, text, lang)
+ nmsg.send(mlist)
+ # Now the message for the list owners. Be sure to include the list
+ # moderators in this message. This one should appear to come from
+ # <list>-owner since we really don't need to do bounce processing on it.
+ if mlist.admin_immed_notify:
+ # Now let's temporarily set the language context to that which the
+ # admin is expecting.
+ otranslation = i18n.get_translation()
+ i18n.set_language(mlist.preferred_language)
+ try:
+ lang = mlist.preferred_language
+ charset = Utils.GetCharSet(lang)
+ # We need to regenerate or re-translate a few values in d
+ usersubject = msg.get('subject', _('(no subject)'))
+ d['reason'] = _(reason)
+ d['subject'] = usersubject
+ # craft the admin notification message and deliver it
+ subject = _('%(listname)s post from %(sender)s requires approval')
+ nmsg = Message.UserNotification(owneraddr, owneraddr, subject,
+ lang=lang)
+ nmsg.set_type('multipart/mixed')
+ text = MIMEText(
+ Utils.maketext('postauth.txt', d, raw=1, mlist=mlist),
+ _charset=charset)
+ dmsg = MIMEText(Utils.wrap(_("""\
+If you reply to this message, keeping the Subject: header intact, Mailman will
+discard the held message. Do this if the message is spam. If you reply to
+this message and include an Approved: header with the list password in it, the
+message will be approved for posting to the list. The Approved: header can
+also appear in the first line of the body of the reply.""")),
+ _charset=Utils.GetCharSet(lang))
+ dmsg['Subject'] = 'confirm ' + cookie
+ dmsg['Sender'] = requestaddr
+ dmsg['From'] = requestaddr
+ nmsg.attach(text)
+ nmsg.attach(MIMEMessage(msg))
+ nmsg.attach(MIMEMessage(dmsg))
+ nmsg.send(mlist, **{'tomoderators': 1})
+ finally:
+ i18n.set_translation(otranslation)
+ # Log the held message
+ syslog('vette', '%s post from %s held: %s', listname, sender, reason)
+ # raise the specific MessageHeld exception to exit out of the message
+ # delivery pipeline
+ raise exc
diff --git a/Mailman/Handlers/Makefile.in b/Mailman/Handlers/Makefile.in
new file mode 100644
index 00000000..6123bdfb
--- /dev/null
+++ b/Mailman/Handlers/Makefile.in
@@ -0,0 +1,69 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# NOTE: Makefile.in is converted into Makefile by the configure script
+# in the parent directory. Once configure has run, you can recreate
+# the Makefile by running just config.status.
+
+# Variables set by configure
+
+VPATH= @srcdir@
+srcdir= @srcdir@
+bindir= @bindir@
+prefix= @prefix@
+exec_prefix= @exec_prefix@
+
+CC= @CC@
+CHMOD= @CHMOD@
+INSTALL= @INSTALL@
+
+DEFS= @DEFS@
+
+# Customizable but not set by configure
+
+OPT= @OPT@
+CFLAGS= $(OPT) $(DEFS)
+PACKAGEDIR= $(prefix)/Mailman/Handlers
+SHELL= /bin/sh
+
+MODULES= *.py
+
+# Modes for directories and executables created by the install
+# process. Default to group-writable directories but
+# user-only-writable for executables.
+DIRMODE= 775
+EXEMODE= 755
+FILEMODE= 644
+INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
+
+
+# Rules
+
+all:
+
+install:
+ for f in $(MODULES); \
+ do \
+ $(INSTALL) -m $(FILEMODE) $(srcdir)/$$f $(PACKAGEDIR); \
+ done
+
+finish:
+
+clean:
+
+distclean:
+ -rm *.pyc
+ -rm Makefile
diff --git a/Mailman/Handlers/MimeDel.py b/Mailman/Handlers/MimeDel.py
new file mode 100644
index 00000000..3bcdaffa
--- /dev/null
+++ b/Mailman/Handlers/MimeDel.py
@@ -0,0 +1,220 @@
+# Copyright (C) 2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""MIME-stripping filter for Mailman.
+
+This module scans a message for MIME content, removing those sections whose
+MIME types match one of a list of matches. multipart/alternative sections are
+replaced by the first non-empty component, and multipart/mixed sections
+wrapping only single sections after other processing are replaced by their
+contents.
+"""
+
+import os
+import errno
+import tempfile
+
+from email.Iterators import typed_subpart_iterator
+
+from Mailman import mm_cfg
+from Mailman import Errors
+from Mailman.Message import UserNotification
+from Mailman.Queue.sbcache import get_switchboard
+from Mailman.Logging.Syslog import syslog
+from Mailman.Version import VERSION
+from Mailman.i18n import _
+
+
+
+def process(mlist, msg, msgdata):
+ # Short-circuits
+ if not mlist.filter_content:
+ return
+ if msgdata.get('isdigest'):
+ return
+ # We also don't care about our own digests or plaintext
+ ctype = msg.get_content_type()
+ mtype = msg.get_content_maintype()
+ # Check to see if the outer type matches one of the filter types
+ filtertypes = mlist.filter_mime_types
+ passtypes = mlist.pass_mime_types
+ if ctype in filtertypes or mtype in filtertypes:
+ dispose(mlist, msg, msgdata,
+ _("The message's content type was explicitly disallowed"))
+ # Check to see if there is a pass types and the outer type doesn't match
+ # one of these types
+ if passtypes and not (ctype in passtypes or mtype in passtypes):
+ dispose(mlist, msg, msgdata,
+ _("The message's content type was not explicitly allowed"))
+ numparts = len([subpart for subpart in msg.walk()])
+ # If the message is a multipart, filter out matching subparts
+ if msg.is_multipart():
+ # Recursively filter out any subparts that match the filter list
+ prelen = len(msg.get_payload())
+ filter_parts(msg, filtertypes, passtypes)
+ # If the outer message is now an empty multipart (and it wasn't
+ # before!) then, again it gets discarded.
+ postlen = len(msg.get_payload())
+ if postlen == 0 and prelen > 0:
+ dispose(mlist, msg, msgdata,
+ _("After content filtering, the message was empty"))
+ # Now replace all multipart/alternatives with just the first non-empty
+ # alternative. BAW: We have to special case when the outer part is a
+ # multipart/alternative because we need to retain most of the outer part's
+ # headers. For now we'll move the subpart's payload into the outer part,
+ # and then copy over its Content-Type: and Content-Transfer-Encoding:
+ # headers (any others?).
+ collapse_multipart_alternatives(msg)
+ if ctype == 'multipart/alternative':
+ firstalt = msg.get_payload(0)
+ reset_payload(msg, firstalt)
+ # If we removed some parts, make note of this
+ changedp = 0
+ if numparts <> len([subpart for subpart in msg.walk()]):
+ changedp = 1
+ # Now perhaps convert all text/html to text/plain
+ if mlist.convert_html_to_plaintext and mm_cfg.HTML_TO_PLAIN_TEXT_COMMAND:
+ changedp += to_plaintext(msg)
+ # If we're left with only two parts, an empty body and one attachment,
+ # recast the message to one of just that part
+ if msg.is_multipart() and len(msg.get_payload()) == 2:
+ if msg.get_payload(0).get_payload() == '':
+ useful = msg.get_payload(1)
+ reset_payload(msg, useful)
+ changedp = 1
+ if changedp:
+ msg['X-Content-Filtered-By'] = 'Mailman/MimeDel %s' % VERSION
+
+
+
+def reset_payload(msg, subpart):
+ # Reset payload of msg to contents of subpart, and fix up content headers
+ payload = subpart.get_payload()
+ msg.set_payload(payload)
+ del msg['content-type']
+ del msg['content-transfer-encoding']
+ del msg['content-disposition']
+ del msg['content-description']
+ msg['Content-Type'] = subpart.get('content-type', 'text/plain')
+ cte = subpart.get('content-transfer-encoding')
+ if cte:
+ msg['Content-Transfer-Encoding'] = cte
+ cdisp = subpart.get('content-disposition')
+ if cdisp:
+ msg['Content-Disposition'] = cdisp
+ cdesc = subpart.get('content-description')
+ if cdesc:
+ msg['Content-Description'] = cdesc
+
+
+
+def filter_parts(msg, filtertypes, passtypes):
+ # Look at all the message's subparts, and recursively filter
+ if not msg.is_multipart():
+ return 1
+ payload = msg.get_payload()
+ prelen = len(payload)
+ newpayload = []
+ for subpart in payload:
+ keep = filter_parts(subpart, filtertypes, passtypes)
+ if not keep:
+ continue
+ ctype = subpart.get_content_type()
+ mtype = subpart.get_content_maintype()
+ if ctype in filtertypes or mtype in filtertypes:
+ # Throw this subpart away
+ continue
+ if passtypes and not (ctype in passtypes or mtype in passtypes):
+ # Throw this subpart away
+ continue
+ newpayload.append(subpart)
+ # Check to see if we discarded all the subparts
+ postlen = len(newpayload)
+ msg.set_payload(newpayload)
+ if postlen == 0 and prelen > 0:
+ # We threw away everything
+ return 0
+ return 1
+
+
+
+def collapse_multipart_alternatives(msg):
+ if not msg.is_multipart():
+ return
+ newpayload = []
+ for subpart in msg.get_payload():
+ if subpart.get_content_type() == 'multipart/alternative':
+ try:
+ firstalt = subpart.get_payload(0)
+ newpayload.append(firstalt)
+ except IndexError:
+ pass
+ else:
+ newpayload.append(subpart)
+ msg.set_payload(newpayload)
+
+
+
+def to_plaintext(msg):
+ changedp = 0
+ for subpart in typed_subpart_iterator(msg, 'text', 'html'):
+ filename = tempfile.mktemp('.html')
+ fp = open(filename, 'w')
+ try:
+ fp.write(subpart.get_payload())
+ fp.close()
+ cmd = os.popen(mm_cfg.HTML_TO_PLAIN_TEXT_COMMAND %
+ {'filename': filename})
+ plaintext = cmd.read()
+ rtn = cmd.close()
+ if rtn:
+ syslog('error', 'HTML->text/plain error: %s', rtn)
+ finally:
+ try:
+ os.unlink(filename)
+ except OSError, e:
+ if e.errno <> errno.ENOENT: raise
+ # Now replace the payload of the subpart and twiddle the Content-Type:
+ subpart.set_payload(plaintext)
+ subpart.set_type('text/plain')
+ changedp = 1
+ return changedp
+
+
+
+def dispose(mlist, msg, msgdata, why):
+ # filter_action == 0 just discards, see below
+ if mlist.filter_action == 1:
+ # Bounce the message to the original author
+ raise Errors.RejectMessage, why
+ if mlist.filter_action == 2:
+ # Forward it on to the list owner
+ listname = mlist.internal_name()
+ mlist.ForwardMessage(
+ msg,
+ text=_("""\
+The attached message matched the %(listname)s mailing list's content filtering
+rules and was prevented from being forwarded on to the list membership. You
+are receiving the only remaining copy of the discarded message.
+
+"""),
+ subject=_('Content filtered message notification'))
+ if mlist.filter_action == 3 and \
+ mm_cfg.OWNERS_CAN_PRESERVE_FILTERED_MESSAGES:
+ badq = get_switchboard(mm_cfg.BADQUEUE_DIR)
+ badq.enqueue(msg, msgdata)
+ # Most cases also discard the message
+ raise Errors.DiscardMessage
diff --git a/Mailman/Handlers/Moderate.py b/Mailman/Handlers/Moderate.py
new file mode 100644
index 00000000..d44cb89b
--- /dev/null
+++ b/Mailman/Handlers/Moderate.py
@@ -0,0 +1,164 @@
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Posting moderation filter.
+"""
+
+import re
+from email.MIMEMessage import MIMEMessage
+from email.MIMEText import MIMEText
+
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman import Message
+from Mailman import Errors
+from Mailman.i18n import _
+from Mailman.Handlers import Hold
+from Mailman.Logging.Syslog import syslog
+
+
+
+class ModeratedMemberPost(Hold.ModeratedPost):
+ # BAW: I wanted to use the reason below to differentiate between this
+ # situation and normal ModeratedPost reasons. Greg Ward and Stonewall
+ # Ballard thought the language was too harsh and mentioned offense taken
+ # by some list members. I'd still like this class's reason to be
+ # different than the base class's reason, but we'll use this until someone
+ # can come up with something more clever but inoffensive.
+ #
+ # reason = _('Posts by member are currently quarantined for moderation')
+ pass
+
+
+
+def process(mlist, msg, msgdata):
+ if msgdata.get('approved'):
+ return
+ # First of all, is the poster a member or not?
+ for sender in msg.get_senders():
+ if mlist.isMember(sender):
+ break
+ else:
+ sender = None
+ if sender:
+ # If the member's moderation flag is on, then perform the moderation
+ # action.
+ if mlist.getMemberOption(sender, mm_cfg.Moderate):
+ # Note that for member_moderation_action, 0==Hold, 1=Reject,
+ # 2==Discard
+ if mlist.member_moderation_action == 0:
+ # Hold. BAW: WIBNI we could add the member_moderation_notice
+ # to the notice sent back to the sender?
+ msgdata['sender'] = sender
+ Hold.hold_for_approval(mlist, msg, msgdata,
+ ModeratedMemberPost)
+ elif mlist.member_moderation_action == 1:
+ # Reject
+ text = mlist.member_moderation_notice
+ if text:
+ text = Utils.wrap(text)
+ else:
+ # Use the default RejectMessage notice string
+ text = None
+ raise Errors.RejectMessage, text
+ elif mlist.member_moderation_action == 2:
+ # Discard. BAW: Again, it would be nice if we could send a
+ # discard notice to the sender
+ raise Errors.DiscardMessage
+ else:
+ assert 0, 'bad member_moderation_action'
+ # Should we do anything explict to mark this message as getting past
+ # this point? No, because further pipeline handlers will need to do
+ # their own thing.
+ return
+ else:
+ sender = msg.get_sender()
+ # From here on out, we're dealing with non-members.
+ if matches_p(sender, mlist.accept_these_nonmembers):
+ return
+ if matches_p(sender, mlist.hold_these_nonmembers):
+ Hold.hold_for_approval(mlist, msg, msgdata, Hold.NonMemberPost)
+ # No return
+ if matches_p(sender, mlist.reject_these_nonmembers):
+ do_reject(mlist)
+ # No return
+ if matches_p(sender, mlist.discard_these_nonmembers):
+ do_discard(mlist, msg)
+ # No return
+ # Okay, so the sender wasn't specified explicitly by any of the non-member
+ # moderation configuration variables. Handle by way of generic non-member
+ # action.
+ assert 0 <= mlist.generic_nonmember_action <= 4
+ if mlist.generic_nonmember_action == 0:
+ # Accept
+ return
+ elif mlist.generic_nonmember_action == 1:
+ Hold.hold_for_approval(mlist, msg, msgdata, Hold.NonMemberPost)
+ elif mlist.generic_nonmember_action == 2:
+ do_reject(mlist)
+ elif mlist.generic_nonmember_action == 3:
+ do_discard(mlist, msg)
+
+
+
+def matches_p(sender, nonmembers):
+ # First strip out all the regular expressions
+ plainaddrs = [addr for addr in nonmembers if not addr.startswith('^')]
+ addrdict = Utils.List2Dict(plainaddrs, foldcase=1)
+ if addrdict.has_key(sender):
+ return 1
+ # Now do the regular expression matches
+ for are in nonmembers:
+ if are.startswith('^'):
+ try:
+ cre = re.compile(are, re.IGNORECASE)
+ except re.error:
+ continue
+ if cre.search(sender):
+ return 1
+ return 0
+
+
+
+def do_reject(mlist):
+ listowner = mlist.GetOwnerEmail()
+ raise Errors.RejectMessage, Utils.wrap(_("""\
+You are not allowed to post to this mailing list, and your message has been
+automatically rejected. If you think that your messages are being rejected in
+error, contact the mailing list owner at %(listowner)s."""))
+
+
+
+def do_discard(mlist, msg):
+ sender = msg.get_sender()
+ # Do we forward auto-discards to the list owners?
+ if mlist.forward_auto_discards:
+ lang = mlist.preferred_language
+ varhelp = '%s/?VARHELP=privacy/sender/discard_these_nonmembers' % \
+ mlist.GetScriptURL('admin', absolute=1)
+ nmsg = Message.UserNotification(mlist.GetOwnerEmail(),
+ mlist.GetBouncesEmail(),
+ _('Auto-discard notification'),
+ lang=lang)
+ nmsg.set_type('multipart/mixed')
+ text = MIMEText(Utils.wrap(_(
+ 'The attached message has been automatically discarded.')),
+ _charset=Utils.GetCharSet(lang))
+ nmsg.attach(text)
+ nmsg.attach(MIMEMessage(msg))
+ nmsg.send(mlist)
+ # Discard this sucker
+ raise Errors.DiscardMessage
diff --git a/Mailman/Handlers/OwnerRecips.py b/Mailman/Handlers/OwnerRecips.py
new file mode 100644
index 00000000..c0a54f3d
--- /dev/null
+++ b/Mailman/Handlers/OwnerRecips.py
@@ -0,0 +1,27 @@
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Calculate the list owner recipients (includes moderators).
+"""
+
+
+
+def process(mlist, msg, msgdata):
+ # The recipients are the owner and the moderator
+ msgdata['recips'] = mlist.owner + mlist.moderator
+ # Don't decorate these messages with the header/footers
+ msgdata['nodecorate'] = 1
+ msgdata['personalize'] = 0
diff --git a/Mailman/Handlers/Replybot.py b/Mailman/Handlers/Replybot.py
new file mode 100644
index 00000000..8a9be5cb
--- /dev/null
+++ b/Mailman/Handlers/Replybot.py
@@ -0,0 +1,120 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Handler for auto-responses.
+"""
+
+import time
+
+from Mailman import Utils
+from Mailman import Message
+from Mailman.i18n import _
+from Mailman.SafeDict import SafeDict
+from Mailman.Logging.Syslog import syslog
+
+
+
+def process(mlist, msg, msgdata):
+ # Normally, the replybot should get a shot at this message, but there are
+ # some important short-circuits, mostly to suppress 'bot storms, at least
+ # for well behaved email bots (there are other governors for misbehaving
+ # 'bots). First, if the original message has an "X-Ack: No" header, we
+ # skip the replybot. Then, if the message has a Precedence header with
+ # values bulk, junk, or list, and there's no explicit "X-Ack: yes" header,
+ # we short-circuit. Finally, if the message metadata has a true 'noack'
+ # key, then we skip the replybot too.
+ ack = msg.get('x-ack', '').lower()
+ if ack == 'no' or msgdata.get('noack'):
+ return
+ precedence = msg.get('precedence', '').lower()
+ if ack <> 'yes' and precedence in ('bulk', 'junk', 'list'):
+ return
+ # Check to see if the list is even configured to autorespond to this email
+ # message. Note: the mailowner script sets the `toadmin' or `toowner' key
+ # (which for replybot purposes are equivalent), and the mailcmd script
+ # sets the `torequest' key.
+ toadmin = msgdata.get('toowner')
+ torequest = msgdata.get('torequest')
+ if ((toadmin and not mlist.autorespond_admin) or
+ (torequest and not mlist.autorespond_requests) or \
+ (not toadmin and not torequest and not mlist.autorespond_postings)):
+ return
+ # Now see if we're in the grace period for this sender. graceperiod <= 0
+ # means always autorespond, as does an "X-Ack: yes" header (useful for
+ # debugging).
+ sender = msg.get_sender()
+ now = time.time()
+ graceperiod = mlist.autoresponse_graceperiod
+ if graceperiod > 0 and ack <> 'yes':
+ if toadmin:
+ quiet_until = mlist.admin_responses.get(sender, 0)
+ elif torequest:
+ quiet_until = mlist.request_responses.get(sender, 0)
+ else:
+ quiet_until = mlist.postings_responses.get(sender, 0)
+ if quiet_until > now:
+ return
+ #
+ # Okay, we know we're going to auto-respond to this sender, craft the
+ # message, send it, and update the database.
+ realname = mlist.real_name
+ subject = _('Auto-response for your message to ') + \
+ msg.get('to', _('the "%(realname)s" mailing list'))
+ # Do string interpolation
+ d = SafeDict({'listname' : realname,
+ 'listurl' : mlist.GetScriptURL('listinfo'),
+ 'requestemail': mlist.GetRequestEmail(),
+ # BAW: Deprecate adminemail; it's not advertised but still
+ # supported for backwards compatibility.
+ 'adminemail' : mlist.GetBouncesEmail(),
+ 'owneremail' : mlist.GetOwnerEmail(),
+ })
+ # Just because we're using a SafeDict doesn't mean we can't get all sorts
+ # of other exceptions from the string interpolation. Let's be ultra
+ # conservative here.
+ if toadmin:
+ rtext = mlist.autoresponse_admin_text
+ elif torequest:
+ rtext = mlist.autoresponse_request_text
+ else:
+ rtext = mlist.autoresponse_postings_text
+ # Using $-strings?
+ if getattr(mlist, 'use_dollar_strings', 0):
+ rtext = Utils.to_percent(rtext)
+ try:
+ text = rtext % d
+ except Exception:
+ syslog('error', 'Bad autoreply text for list: %s\n%s',
+ mlist.internal_name(), rtext)
+ text = rtext
+ # Wrap the response.
+ text = Utils.wrap(text)
+ outmsg = Message.UserNotification(sender, mlist.GetBouncesEmail(),
+ subject, text, mlist.preferred_language)
+ outmsg['X-Mailer'] = _('The Mailman Replybot')
+ # prevent recursions and mail loops!
+ outmsg['X-Ack'] = 'No'
+ outmsg.send(mlist)
+ # update the grace period database
+ if graceperiod > 0:
+ # graceperiod is in days, we need # of seconds
+ quiet_until = now + graceperiod * 24 * 60 * 60
+ if toadmin:
+ mlist.admin_responses[sender] = quiet_until
+ elif torequest:
+ mlist.request_responses[sender] = quiet_until
+ else:
+ mlist.postings_responses[sender] = quiet_until
diff --git a/Mailman/Handlers/SMTPDirect.py b/Mailman/Handlers/SMTPDirect.py
new file mode 100644
index 00000000..3033fdbd
--- /dev/null
+++ b/Mailman/Handlers/SMTPDirect.py
@@ -0,0 +1,349 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Local SMTP direct drop-off.
+
+This module delivers messages via SMTP to a locally specified daemon. This
+should be compatible with any modern SMTP server. It is expected that the MTA
+handles all final delivery. We have to play tricks so that the list object
+isn't locked while delivery occurs synchronously.
+
+Note: This file only handles single threaded delivery. See SMTPThreaded.py
+for a threaded implementation.
+"""
+
+import time
+import socket
+import smtplib
+from types import UnicodeType
+
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman import Errors
+from Mailman.Handlers import Decorate
+from Mailman.Logging.Syslog import syslog
+from Mailman.SafeDict import MsgSafeDict
+
+import email
+from email.Utils import formataddr
+from email.Header import Header
+from email.Charset import Charset
+
+DOT = '.'
+
+
+
+# Manage a connection to the SMTP server
+class Connection:
+ def __init__(self):
+ self.__connect()
+
+ def __connect(self):
+ self.__conn = smtplib.SMTP()
+ self.__conn.connect(mm_cfg.SMTPHOST, mm_cfg.SMTPPORT)
+ self.__numsessions = mm_cfg.SMTP_MAX_SESSIONS_PER_CONNECTION
+
+ def sendmail(self, envsender, recips, msgtext):
+ try:
+ results = self.__conn.sendmail(envsender, recips, msgtext)
+ except smtplib.SMTPException:
+ # For safety, reconnect
+ self.__conn.quit()
+ self.__connect()
+ # Let exceptions percolate up
+ raise
+ # Decrement the session counter, reconnecting if necessary
+ self.__numsessions -= 1
+ # By testing exactly for equality to 0, we automatically handle the
+ # case for SMTP_MAX_SESSIONS_PER_CONNECTION <= 0 meaning never close
+ # the connection. We won't worry about wraparound <wink>.
+ if self.__numsessions == 0:
+ self.__conn.quit()
+ self.__connect()
+ return results
+
+ def quit(self):
+ self.__conn.quit()
+
+
+
+def process(mlist, msg, msgdata):
+ recips = msgdata.get('recips')
+ if not recips:
+ # Nobody to deliver to!
+ return
+ # Calculate the non-VERP envelope sender.
+ envsender = msgdata.get('envsender')
+ if envsender is None:
+ if mlist:
+ envsender = mlist.GetBouncesEmail()
+ else:
+ envsender = Utils.get_site_email(extra='bounces')
+ # Time to split up the recipient list. If we're personalizing or VERPing
+ # then each chunk will have exactly one recipient. We'll then hand craft
+ # an envelope sender and stitch a message together in memory for each one
+ # separately. If we're not VERPing, then we'll chunkify based on
+ # SMTP_MAX_RCPTS. Note that most MTAs have a limit on the number of
+ # recipients they'll swallow in a single transaction.
+ deliveryfunc = None
+ if (not msgdata.has_key('personalize') or msgdata['personalize']) and (
+ msgdata.get('verp') or mlist.personalize):
+ chunks = [[recip] for recip in recips]
+ msgdata['personalize'] = 1
+ deliveryfunc = verpdeliver
+ elif mm_cfg.SMTP_MAX_RCPTS <= 0:
+ chunks = [recips]
+ else:
+ chunks = chunkify(recips, mm_cfg.SMTP_MAX_RCPTS)
+ # See if this is an unshunted message for which some were undelivered
+ if msgdata.has_key('undelivered'):
+ chunks = msgdata['undelivered']
+ # If we're doing bulk delivery, then we can stitch up the message now.
+ if deliveryfunc is None:
+ # Be sure never to decorate the message more than once!
+ if not msgdata.get('decorated'):
+ Decorate.process(mlist, msg, msgdata)
+ msgdata['decorated'] = 1
+ deliveryfunc = bulkdeliver
+ refused = {}
+ t0 = time.time()
+ # Open the initial connection
+ origrecips = msgdata['recips']
+ # `undelivered' is a copy of chunks that we pop from to do deliveries.
+ # This seems like a good tradeoff between robustness and resource
+ # utilization. If delivery really fails (i.e. qfiles/shunt type
+ # failures), then we'll pick up where we left off with `undelivered'.
+ # This means at worst, the last chunk for which delivery was attempted
+ # could get duplicates but not every one, and no recips should miss the
+ # message.
+ conn = Connection()
+ try:
+ msgdata['undelivered'] = chunks
+ while chunks:
+ chunk = chunks.pop()
+ msgdata['recips'] = chunk
+ try:
+ deliveryfunc(mlist, msg, msgdata, envsender, refused, conn)
+ except Exception:
+ # If /anything/ goes wrong, push the last chunk back on the
+ # undelivered list and re-raise the exception. We don't know
+ # how many of the last chunk might receive the message, so at
+ # worst, everyone in this chunk will get a duplicate. Sigh.
+ chunks.append(chunk)
+ raise
+ del msgdata['undelivered']
+ finally:
+ conn.quit()
+ msgdata['recips'] = origrecips
+ # Log the successful post
+ t1 = time.time()
+ d = MsgSafeDict(msg, {'time' : t1-t0,
+ # BAW: Urg. This seems inefficient.
+ 'size' : len(msg.as_string()),
+ '#recips' : len(recips),
+ '#refused': len(refused),
+ 'listname': mlist.internal_name(),
+ 'sender' : msg.get_sender(),
+ })
+ # We have to use the copy() method because extended call syntax requires a
+ # concrete dictionary object; it does not allow a generic mapping. It's
+ # still worthwhile doing the interpolation in syslog() because it'll catch
+ # any catastrophic exceptions due to bogus format strings.
+ if mm_cfg.SMTP_LOG_EVERY_MESSAGE:
+ syslog.write_ex(mm_cfg.SMTP_LOG_EVERY_MESSAGE[0],
+ mm_cfg.SMTP_LOG_EVERY_MESSAGE[1], kws=d)
+
+ if refused:
+ if mm_cfg.SMTP_LOG_REFUSED:
+ syslog.write_ex(mm_cfg.SMTP_LOG_REFUSED[0],
+ mm_cfg.SMTP_LOG_REFUSED[1], kws=d)
+
+ elif msgdata.get('tolist'):
+ # Log the successful post, but only if it really was a post to the
+ # mailing list. Don't log sends to the -owner, or -admin addrs.
+ # -request addrs should never get here. BAW: it may be useful to log
+ # the other messages, but in that case, we should probably have a
+ # separate configuration variable to control that.
+ if mm_cfg.SMTP_LOG_SUCCESS:
+ syslog.write_ex(mm_cfg.SMTP_LOG_SUCCESS[0],
+ mm_cfg.SMTP_LOG_SUCCESS[1], kws=d)
+
+ # Process any failed deliveries.
+ tempfailures = []
+ permfailures = []
+ for recip, (code, smtpmsg) in refused.items():
+ # DRUMS is an internet draft, but it says:
+ #
+ # [RFC-821] incorrectly listed the error where an SMTP server
+ # exhausts its implementation limit on the number of RCPT commands
+ # ("too many recipients") as having reply code 552. The correct
+ # reply code for this condition is 452. Clients SHOULD treat a 552
+ # code in this case as a temporary, rather than permanent failure
+ # so the logic below works.
+ #
+ if code >= 500 and code <> 552:
+ # A permanent failure
+ permfailures.append(recip)
+ else:
+ # Deal with persistent transient failures by queuing them up for
+ # future delivery. TBD: this could generate lots of log entries!
+ tempfailures.append(recip)
+ if mm_cfg.SMTP_LOG_EACH_FAILURE:
+ d.update({'recipient': recip,
+ 'failcode' : code,
+ 'failmsg' : smtpmsg})
+ syslog.write_ex(mm_cfg.SMTP_LOG_EACH_FAILURE[0],
+ mm_cfg.SMTP_LOG_EACH_FAILURE[1], kws=d)
+ # Return the results
+ if tempfailures or permfailures:
+ raise Errors.SomeRecipientsFailed(tempfailures, permfailures)
+
+
+
+def chunkify(recips, chunksize):
+ # First do a simple sort on top level domain. It probably doesn't buy us
+ # much to try to sort on MX record -- that's the MTA's job. We're just
+ # trying to avoid getting a max recips error. Split the chunks along
+ # these lines (as suggested originally by Chuq Von Rospach and slightly
+ # elaborated by BAW).
+ chunkmap = {'com': 1,
+ 'net': 2,
+ 'org': 2,
+ 'edu': 3,
+ 'us' : 3,
+ 'ca' : 3,
+ }
+ buckets = {}
+ for r in recips:
+ tld = None
+ i = r.rfind('.')
+ if i >= 0:
+ tld = r[i+1:]
+ bin = chunkmap.get(tld, 0)
+ bucket = buckets.get(bin, [])
+ bucket.append(r)
+ buckets[bin] = bucket
+ # Now start filling the chunks
+ chunks = []
+ currentchunk = []
+ chunklen = 0
+ for bin in buckets.values():
+ for r in bin:
+ currentchunk.append(r)
+ chunklen = chunklen + 1
+ if chunklen >= chunksize:
+ chunks.append(currentchunk)
+ currentchunk = []
+ chunklen = 0
+ if currentchunk:
+ chunks.append(currentchunk)
+ currentchunk = []
+ chunklen = 0
+ return chunks
+
+
+
+def verpdeliver(mlist, msg, msgdata, envsender, failures, conn):
+ for recip in msgdata['recips']:
+ # We now need to stitch together the message with its header and
+ # footer. If we're VERPIng, we have to calculate the envelope sender
+ # for each recipient. Note that the list of recipients must be of
+ # length 1.
+ #
+ # BAW: ezmlm includes the message number in the envelope, used when
+ # sending a notification to the user telling her how many messages
+ # they missed due to bouncing. Neat idea.
+ msgdata['recips'] = [recip]
+ # Make a copy of the message and decorate + delivery that
+ msgcopy = email.message_from_string(msg.as_string())
+ Decorate.process(mlist, msgcopy, msgdata)
+ # Calculate the envelope sender, which we may be VERPing
+ if msgdata.get('verp'):
+ bmailbox, bdomain = Utils.ParseEmail(envsender)
+ rmailbox, rdomain = Utils.ParseEmail(recip)
+ d = {'bounces': bmailbox,
+ 'mailbox': rmailbox,
+ 'host' : DOT.join(rdomain),
+ }
+ envsender = '%s@%s' % ((mm_cfg.VERP_FORMAT % d), DOT.join(bdomain))
+ if mlist.personalize == 2:
+ # When fully personalizing, we want the To address to point to the
+ # recipient, not to the mailing list
+ del msgcopy['to']
+ name = None
+ if mlist.isMember(recip):
+ name = mlist.getMemberName(recip)
+ if name:
+ # Convert the name to an email-safe representation. If the
+ # name is a byte string, convert it first to Unicode, given
+ # the character set of the member's language, replacing bad
+ # characters for which we can do nothing about. Once we have
+ # the name as Unicode, we can create a Header instance for it
+ # so that it's properly encoded for email transport.
+ charset = Utils.GetCharSet(mlist.getMemberLanguage(recip))
+ if charset == 'us-ascii':
+ # Since Header already tries both us-ascii and utf-8,
+ # let's add something a bit more useful.
+ charset = 'iso-8859-1'
+ charset = Charset(charset)
+ codec = charset.input_codec or 'ascii'
+ if not isinstance(name, UnicodeType):
+ name = unicode(name, codec, 'replace')
+ name = Header(name, charset).encode()
+ msgcopy['To'] = formataddr((name, recip))
+ else:
+ msgcopy['To'] = recip
+ # We can flag the mail as a duplicate for each member, if they've
+ # already received this message, as calculated by Message-ID. See
+ # AvoidDuplicates.py for details.
+ del msgcopy['x-mailman-copy']
+ if msgdata.get('add-dup-header', {}).has_key(recip):
+ msgcopy['X-Mailman-Copy'] = 'yes'
+ # For the final delivery stage, we can just bulk deliver to a party of
+ # one. ;)
+ bulkdeliver(mlist, msgcopy, msgdata, envsender, failures, conn)
+
+
+
+def bulkdeliver(mlist, msg, msgdata, envsender, failures, conn):
+ # Do some final cleanup of the message header. Start by blowing away
+ # any the Sender: and Errors-To: headers so remote MTAs won't be
+ # tempted to delivery bounces there instead of our envelope sender
+ del msg['sender']
+ del msg['errors-to']
+ msg['Sender'] = envsender
+ msg['Errors-To'] = envsender
+ # Get the plain, flattened text of the message, sans unixfrom
+ msgtext = msg.as_string()
+ refused = {}
+ recips = msgdata['recips']
+ try:
+ # Send the message
+ refused = conn.sendmail(envsender, recips, msgtext)
+ except smtplib.SMTPRecipientsRefused, e:
+ refused = e.recipients
+ # MTA not responding, or other socket problems, or any other kind of
+ # SMTPException. In that case, nothing got delivered
+ except (socket.error, smtplib.SMTPException), e:
+ # BAW: should this be configurable?
+ syslog('smtp', 'All recipients refused: %s', e)
+ # If the exception had an associated error code, use it, otherwise,
+ # fake it with a non-triggering exception code
+ errcode = getattr(e, 'smtp_code', -1)
+ errmsg = getattr(e, 'smtp_error', 'ignore')
+ for r in recips:
+ refused[r] = (errcode, errmsg)
+ failures.update(refused)
diff --git a/Mailman/Handlers/Scrubber.py b/Mailman/Handlers/Scrubber.py
new file mode 100644
index 00000000..5dabadf3
--- /dev/null
+++ b/Mailman/Handlers/Scrubber.py
@@ -0,0 +1,400 @@
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Cleanse a message for archiving.
+"""
+
+import os
+import re
+import sha
+import time
+import errno
+import binascii
+import tempfile
+import mimetypes
+from cStringIO import StringIO
+from types import IntType
+
+from email.Utils import parsedate
+from email.Parser import HeaderParser
+from email.Generator import Generator
+
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman import LockFile
+from Mailman import Message
+from Mailman.Errors import DiscardMessage
+from Mailman.i18n import _
+from Mailman.Logging.Syslog import syslog
+
+# Path characters for common platforms
+pre = re.compile(r'[/\\:]')
+# All other characters to strip out of Content-Disposition: filenames
+# (essentially anything that isn't an alphanum, dot, slash, or underscore.
+sre = re.compile(r'[^-\w.]')
+# Regexp to strip out leading dots
+dre = re.compile(r'^\.*')
+
+BR = '<br>\n'
+SPACE = ' '
+
+
+
+# We're using a subclass of the standard Generator because we want to suppress
+# headers in the subparts of multiparts. We use a hack -- the ctor argument
+# skipheaders to accomplish this. It's set to true for the outer Message
+# object, but false for all internal objects. We recognize that
+# sub-Generators will get created passing only mangle_from_ and maxheaderlen
+# to the ctors.
+#
+# This isn't perfect because we still get stuff like the multipart boundaries,
+# but see below for how we corrupt that to our nefarious goals.
+class ScrubberGenerator(Generator):
+ def __init__(self, outfp, mangle_from_=1, maxheaderlen=78, skipheaders=1):
+ Generator.__init__(self, outfp, mangle_from_=0)
+ self.__skipheaders = skipheaders
+
+ def _write_headers(self, msg):
+ if not self.__skipheaders:
+ Generator._write_headers(self, msg)
+
+
+def safe_strftime(fmt, floatsecs):
+ try:
+ return time.strftime(fmt, floatsecs)
+ except ValueError:
+ return None
+
+
+def calculate_attachments_dir(mlist, msg, msgdata):
+ # Calculate the directory that attachments for this message will go
+ # under. To avoid inode limitations, the scheme will be:
+ # archives/private/<listname>/attachments/YYYYMMDD/<msgid-hash>/<files>
+ # Start by calculating the date-based and msgid-hash components.
+ fmt = '%Y%m%d'
+ datestr = msg.get('Date')
+ if datestr:
+ now = parsedate(datestr)
+ else:
+ now = time.gmtime(msgdata.get('received_time', time.time()))
+ datedir = safe_strftime(fmt, now)
+ if not datedir:
+ datestr = msgdata.get('X-List-Received-Date')
+ if datestr:
+ datedir = safe_strftime(fmt, datestr)
+ if not datedir:
+ # What next? Unixfrom, I guess.
+ parts = msg.get_unixfrom().split()
+ try:
+ month = {'Jan':1, 'Feb':2, 'Mar':3, 'Apr':4, 'May':5, 'Jun':6,
+ 'Jul':7, 'Aug':8, 'Sep':9, 'Oct':10, 'Nov':11, 'Dec':12,
+ }.get(parts[3], 0)
+ day = int(parts[4])
+ year = int(parts[6])
+ except (IndexError, ValueError):
+ # Best we can do I think
+ month = day = year = 0
+ datedir = '%04d%02d%02d' % (year, month, day)
+ assert datedir
+ # As for the msgid hash, we'll base this part on the Message-ID: so that
+ # all attachments for the same message end up in the same directory (we'll
+ # uniquify the filenames in that directory as needed). We use the first 2
+ # and last 2 bytes of the SHA1 hash of the message id as the basis of the
+ # directory name. Clashes here don't really matter too much, and that
+ # still gives us a 32-bit space to work with.
+ msgid = msg['message-id']
+ if msgid is None:
+ msgid = msg['Message-ID'] = Utils.unique_message_id(mlist)
+ # We assume that the message id actually /is/ unique!
+ digest = sha.new(msgid).hexdigest()
+ return os.path.join('attachments', datedir, digest[:4] + digest[-4:])
+
+
+
+def process(mlist, msg, msgdata=None):
+ sanitize = mm_cfg.ARCHIVE_HTML_SANITIZER
+ outer = 1
+ if msgdata is None:
+ msgdata = {}
+ dir = calculate_attachments_dir(mlist, msg, msgdata)
+ charset = None
+ # Now walk over all subparts of this message and scrub out various types
+ for part in msg.walk():
+ ctype = part.get_type(part.get_default_type())
+ # If the part is text/plain, we leave it alone
+ if ctype == 'text/plain':
+ # We need to choose a charset for the scrubbed message, so we'll
+ # arbitrarily pick the charset of the first text/plain part in the
+ # message.
+ if charset is None:
+ charset = part.get_content_charset(charset)
+ elif ctype == 'text/html' and isinstance(sanitize, IntType):
+ if sanitize == 0:
+ if outer:
+ raise DiscardMessage
+ part.set_payload(_('HTML attachment scrubbed and removed'))
+ part.set_type('text/plain')
+ elif sanitize == 2:
+ # By leaving it alone, Pipermail will automatically escape it
+ pass
+ elif sanitize == 3:
+ # Pull it out as an attachment but leave it unescaped. This
+ # is dangerous, but perhaps useful for heavily moderated
+ # lists.
+ omask = os.umask(002)
+ try:
+ url = save_attachment(mlist, part, dir, filter_html=0)
+ finally:
+ os.umask(omask)
+ part.set_payload(_("""\
+An HTML attachment was scrubbed...
+URL: %(url)s
+"""))
+ part.set_type('text/plain')
+ else:
+ # HTML-escape it and store it as an attachment, but make it
+ # look a /little/ bit prettier. :(
+ payload = Utils.websafe(part.get_payload(decode=1))
+ # For whitespace in the margin, change spaces into
+ # non-breaking spaces, and tabs into 8 of those. Then use a
+ # mono-space font. Still looks hideous to me, but then I'd
+ # just as soon discard them.
+ def doreplace(s):
+ return s.replace(' ', '&nbsp;').replace('\t', '&nbsp'*8)
+ lines = [doreplace(s) for s in payload.split('\n')]
+ payload = '<tt>\n' + BR.join(lines) + '\n</tt>\n'
+ part.set_payload(payload)
+ # We're replacing the payload with the decoded payload so this
+ # will just get in the way.
+ del part['content-transfer-encoding']
+ omask = os.umask(002)
+ try:
+ url = save_attachment(mlist, part, dir, filter_html=0)
+ finally:
+ os.umask(omask)
+ part.set_payload(_("""\
+An HTML attachment was scrubbed...
+URL: %(url)s
+"""))
+ part.set_type('text/plain')
+ elif ctype == 'message/rfc822':
+ # This part contains a submessage, so it too needs scrubbing
+ submsg = part.get_payload(0)
+ omask = os.umask(002)
+ try:
+ url = save_attachment(mlist, part, dir)
+ finally:
+ os.umask(omask)
+ subject = submsg.get('subject', _('no subject'))
+ date = submsg.get('date', _('no date'))
+ who = submsg.get('from', _('unknown sender'))
+ size = len(str(submsg))
+ part.set_payload(_("""\
+An embedded message was scrubbed...
+From: %(who)s
+Subject: %(subject)s
+Date: %(date)s
+Size: %(size)s
+Url: %(url)s
+"""))
+ part.set_type('text/plain')
+ # If the message isn't a multipart, then we'll strip it out as an
+ # attachment that would have to be separately downloaded. Pipermail
+ # will transform the url into a hyperlink.
+ elif not part.is_multipart():
+ payload = part.get_payload()
+ ctype = part.get_type()
+ size = len(payload)
+ omask = os.umask(002)
+ try:
+ url = save_attachment(mlist, part, dir)
+ finally:
+ os.umask(omask)
+ desc = part.get('content-description', _('not available'))
+ filename = part.get_filename(_('not available'))
+ part.set_payload(_("""\
+A non-text attachment was scrubbed...
+Name: %(filename)s
+Type: %(ctype)s
+Size: %(size)d bytes
+Desc: %(desc)s
+Url : %(url)s
+"""))
+ part.set_type('text/plain')
+ outer = 0
+ # We still have to sanitize multipart messages to flat text because
+ # Pipermail can't handle messages with list payloads. This is a kludge;
+ # def (n) clever hack ;).
+ if msg.is_multipart():
+ # By default we take the charset of the first text/plain part in the
+ # message, but if there was none, we'll use the list's preferred
+ # language's charset.
+ if charset is None:
+ charset = Utils.GetCharSet(mlist.preferred_language)
+ # We now want to concatenate all the parts which have been scrubbed to
+ # text/plain, into a single text/plain payload. We need to make sure
+ # all the characters in the concatenated string are in the same
+ # encoding, so we'll use the 'replace' key in the coercion call.
+ # BAW: Martin's original patch suggested we might want to try
+ # generalizing to utf-8, and that's probably a good idea (eventually).
+ text = []
+ for part in msg.get_payload():
+ # All parts should be scrubbed to text/plain by now.
+ partctype = part.get_content_type()
+ if partctype <> 'text/plain':
+ text.append(_('Skipped content of type %(partctype)s'))
+ continue
+ try:
+ t = part.get_payload(decode=1)
+ except binascii.Error:
+ t = part.get_payload()
+ partcharset = part.get_charset()
+ if partcharset and partcharset <> charset:
+ try:
+ t = unicode(t, partcharset, 'replace')
+ # Should use HTML-Escape, or try generalizing to UTF-8
+ t = t.encode(charset, 'replace')
+ except UnicodeError:
+ # Replace funny characters
+ t = unicode(t, 'ascii', 'replace').encode('ascii')
+ text.append(t)
+ # Now join the text and set the payload
+ sep = _('-------------- next part --------------\n')
+ msg.set_payload(sep.join(text), charset)
+ msg.set_type('text/plain')
+ del msg['content-transfer-encoding']
+ msg.add_header('Content-Transfer-Encoding', '8bit')
+ return msg
+
+
+
+def makedirs(dir):
+ # Create all the directories to store this attachment in
+ try:
+ os.makedirs(dir, 02775)
+ except OSError, e:
+ if e.errno <> errno.EEXIST: raise
+ # Unfortunately, FreeBSD seems to be broken in that it doesn't honor the
+ # mode arg of mkdir().
+ def twiddle(arg, dirname, names):
+ os.chmod(dirname, 02775)
+ os.path.walk(dir, twiddle, None)
+
+
+
+def save_attachment(mlist, msg, dir, filter_html=1):
+ fsdir = os.path.join(mlist.archive_dir(), dir)
+ makedirs(fsdir)
+ # Figure out the attachment type and get the decoded data
+ decodedpayload = msg.get_payload(decode=1)
+ # BAW: mimetypes ought to handle non-standard, but commonly found types,
+ # e.g. image/jpg (should be image/jpeg). For now we just store such
+ # things as application/octet-streams since that seems the safest.
+ ext = mimetypes.guess_extension(msg.get_type())
+ if not ext:
+ # We don't know what it is, so assume it's just a shapeless
+ # application/octet-stream, unless the Content-Type: is
+ # message/rfc822, in which case we know we'll coerce the type to
+ # text/plain below.
+ if msg.get_type() == 'message/rfc822':
+ ext = '.txt'
+ else:
+ ext = '.bin'
+ path = None
+ # We need a lock to calculate the next attachment number
+ lockfile = os.path.join(fsdir, 'attachments.lock')
+ lock = LockFile.LockFile(lockfile)
+ lock.lock()
+ try:
+ # Now base the filename on what's in the attachment, uniquifying it if
+ # necessary.
+ filename = msg.get_filename()
+ if not filename:
+ filebase = 'attachment'
+ else:
+ # Sanitize the filename given in the message headers
+ parts = pre.split(filename)
+ filename = parts[-1]
+ # Strip off leading dots
+ filename = dre.sub('', filename)
+ # Allow only alphanumerics, dash, underscore, and dot
+ filename = sre.sub('', filename)
+ # If the filename's extension doesn't match the type we guessed,
+ # which one should we go with? For now, let's go with the one we
+ # guessed so attachments can't lie about their type. Also, if the
+ # filename /has/ no extension, then tack on the one we guessed.
+ filebase, ignore = os.path.splitext(filename)
+ # Now we're looking for a unique name for this file on the file
+ # system. If msgdir/filebase.ext isn't unique, we'll add a counter
+ # after filebase, e.g. msgdir/filebase-cnt.ext
+ counter = 0
+ extra = ''
+ while 1:
+ path = os.path.join(fsdir, filebase + extra + ext)
+ # Generally it is not a good idea to test for file existance
+ # before just trying to create it, but the alternatives aren't
+ # wonderful (i.e. os.open(..., O_CREAT | O_EXCL) isn't
+ # NFS-safe). Besides, we have an exclusive lock now, so we're
+ # guaranteed that no other process will be racing with us.
+ if os.path.exists(path):
+ counter += 1
+ extra = '-%04d' % counter
+ else:
+ break
+ finally:
+ lock.unlock()
+ # `path' now contains the unique filename for the attachment. There's
+ # just one more step we need to do. If the part is text/html and
+ # ARCHIVE_HTML_SANITIZER is a string (which it must be or we wouldn't be
+ # here), then send the attachment through the filter program for
+ # sanitization
+ if filter_html and msg.get_type() == 'text/html':
+ base, ext = os.path.splitext(path)
+ tmppath = base + '-tmp' + ext
+ fp = open(tmppath, 'w')
+ try:
+ fp.write(decodedpayload)
+ fp.close()
+ cmd = mm_cfg.ARCHIVE_HTML_SANITIZER % {'filename' : tmppath}
+ progfp = os.popen(cmd, 'r')
+ decodedpayload = progfp.read()
+ status = progfp.close()
+ if status:
+ syslog('error',
+ 'HTML sanitizer exited with non-zero status: %s',
+ status)
+ finally:
+ os.unlink(tmppath)
+ # BAW: Since we've now sanitized the document, it should be plain
+ # text. Blarg, we really want the sanitizer to tell us what the type
+ # if the return data is. :(
+ ext = '.txt'
+ path = base + '.txt'
+ # Is it a message/rfc822 attachment?
+ elif msg.get_type() == 'message/rfc822':
+ submsg = msg.get_payload()
+ # BAW: I'm sure we can eventually do better than this. :(
+ decodedpayload = Utils.websafe(str(submsg))
+ fp = open(path, 'w')
+ fp.write(decodedpayload)
+ fp.close()
+ # Now calculate the url
+ baseurl = mlist.GetBaseArchiveURL()
+ # Private archives will likely have a trailing slash. Normalize.
+ if baseurl[-1] <> '/':
+ baseurl += '/'
+ url = baseurl + '%s/%s%s%s' % (dir, filebase, extra, ext)
+ return url
diff --git a/Mailman/Handlers/Sendmail.py b/Mailman/Handlers/Sendmail.py
new file mode 100644
index 00000000..8bd88697
--- /dev/null
+++ b/Mailman/Handlers/Sendmail.py
@@ -0,0 +1,116 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Deliver a message via command-line drop-off.
+
+WARNING WARNING WARNING: This module is provided for example purposes only.
+It should not be used in a production environment for reasons described
+below. Because of this, you must explicitly enable it with by editing the
+code. See the WARN section in the process() function.
+
+This module delivers the message via the command line interface to the
+sendmail program. It should work for sendmail clones like Postfix. It is
+expected that sendmail handles final delivery, message queueing, etc. The
+recipient list is only trivially split so that the command line is less than
+about 3k in size.
+
+SECURITY WARNING: Because this module uses os.popen(), it goes through the
+shell. This module does not scan the arguments for potential exploits and so
+it should be considered unsafe for production use. For performance reasons,
+it's not recommended either -- use the SMTPDirect delivery module instead,
+even if you're using the sendmail MTA.
+
+DUPLICATES WARNING: Using this module can cause duplicates to be delivered to
+your membership, depending on your MTA! E.g. It is known that if you're using
+the sendmail MTA, and if a message contains a single dot on a line by itself,
+your list members will receive many duplicates.
+"""
+
+import string
+import os
+
+from Mailman import mm_cfg
+from Mailman import Errors
+from Mailman.Logging.Syslog import syslog
+
+MAX_CMDLINE = 3000
+
+
+
+def process(mlist, msg, msgdata):
+ """Process the message object for the given list.
+
+ The message object is an instance of Mailman.Message and must be fully
+ prepared for delivery (i.e. all the appropriate headers must be set). The
+ message object can have the following attributes:
+
+ recips - the list of recipients for the message (required)
+
+ This function processes the message by handing off the delivery of the
+ message to a sendmail (or sendmail clone) program. It can raise a
+ SendmailHandlerError if an error status was returned by the sendmail
+ program.
+
+ """
+ # WARN: If you've read the warnings above and /still/ insist on using this
+ # module, you must comment out the following line. I still recommend you
+ # don't do this!
+ assert 0, 'Use of the Sendmail.py delivery module is highly discouraged'
+ recips = msgdata.get('recips')
+ if not recips:
+ # Nobody to deliver to!
+ return
+ # Use -f to set the envelope sender
+ cmd = mm_cfg.SENDMAIL_CMD + ' -f ' + mlist.GetBouncesEmail() + ' '
+ # make sure the command line is of a manageable size
+ recipchunks = []
+ currentchunk = []
+ chunklen = 0
+ for r in recips:
+ currentchunk.append(r)
+ chunklen = chunklen + len(r) + 1
+ if chunklen > MAX_CMDLINE:
+ recipchunks.append(string.join(currentchunk))
+ currentchunk = []
+ chunklen = 0
+ # pick up the last one
+ if chunklen:
+ recipchunks.append(string.join(currentchunk))
+ # get all the lines of the message, since we're going to do this over and
+ # over again
+ msgtext = str(msg)
+ msglen = len(msgtext)
+ # cycle through all chunks
+ failedrecips = []
+ for chunk in recipchunks:
+ # TBD: SECURITY ALERT. This invokes the shell!
+ fp = os.popen(cmd + chunk, 'w')
+ fp.write(msgtext)
+ status = fp.close()
+ if status:
+ errcode = (status & 0xff00) >> 8
+ syslog('post', 'post to %s from %s, size=%d, failure=%d',
+ mlist.internal_name(), msg.get_sender(),
+ msglen, errcode)
+ # TBD: can we do better than this? What if only one recipient out
+ # of the entire chunk failed?
+ failedrecips.append(chunk)
+ # Log the successful post
+ syslog('post', 'post to %s from %s, size=%d, success',
+ mlist.internal_name(), msg.get_sender(), msglen)
+ if failedrecips:
+ msgdata['recips'] = failedrecips
+ raise Errors.SomeRecipientsFailed
diff --git a/Mailman/Handlers/SpamDetect.py b/Mailman/Handlers/SpamDetect.py
new file mode 100644
index 00000000..7597b9e9
--- /dev/null
+++ b/Mailman/Handlers/SpamDetect.py
@@ -0,0 +1,50 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Do more detailed spam detection.
+
+This module hard codes site wide spam detection. By hacking the
+KNOWN_SPAMMERS variable, you can set up more regular expression matches
+against message headers. If spam is detected the message is discarded
+immediately.
+
+TBD: This needs to be made more configurable and robust.
+"""
+
+import re
+
+from Mailman import mm_cfg
+from Mailman import Errors
+
+
+
+class SpamDetected(Errors.DiscardMessage):
+ """The message contains known spam"""
+
+
+
+def process(mlist, msg, msgdata):
+ if msgdata.get('approved'):
+ return
+ for header, regex in mm_cfg.KNOWN_SPAMMERS:
+ cre = re.compile(regex, re.IGNORECASE)
+ value = msg[header]
+ if not value:
+ continue
+ mo = cre.search(value)
+ if mo:
+ # we've detected spam, so throw the message away
+ raise SpamDetected
diff --git a/Mailman/Handlers/Tagger.py b/Mailman/Handlers/Tagger.py
new file mode 100644
index 00000000..46a03f67
--- /dev/null
+++ b/Mailman/Handlers/Tagger.py
@@ -0,0 +1,156 @@
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Extract topics from the original mail message.
+"""
+
+import re
+import email
+import email.Errors
+import email.Iterators
+import email.Parser
+
+from Mailman.Logging.Syslog import syslog
+
+CRNL = '\r\n'
+EMPTYSTRING = ''
+NLTAB = '\n\t'
+
+
+
+def process(mlist, msg, msgdata):
+ if not mlist.topics_enabled:
+ return
+ # Extract the Subject:, Keywords:, and possibly body text
+ matchlines = []
+ matchlines.append(msg.get('subject', None))
+ matchlines.append(msg.get('keywords', None))
+ if mlist.topics_bodylines_limit == 0:
+ # Don't scan any body lines
+ pass
+ elif mlist.topics_bodylines_limit < 0:
+ # Scan all body lines
+ matchlines.extend(scanbody(msg))
+ else:
+ # Scan just some of the body lines
+ matchlines.extend(scanbody(msg, mlist.topics_bodylines_limit))
+ matchlines = filter(None, matchlines)
+ # For each regular expression in the topics list, see if any of the lines
+ # of interest from the message match the regexp. If so, the message gets
+ # added to the specific topics bucket.
+ hits = {}
+ for name, pattern, desc, emptyflag in mlist.topics:
+ cre = re.compile(pattern, re.IGNORECASE | re.VERBOSE)
+ for line in matchlines:
+ if cre.search(line):
+ hits[name] = 1
+ break
+ if hits:
+ msgdata['topichits'] = hits.keys()
+ msg['X-Topics'] = NLTAB.join(hits.keys())
+
+
+
+def scanbody(msg, numlines=None):
+ # We only scan the body of the message if it is of MIME type text/plain,
+ # or if the outer type is multipart/alternative and there is a text/plain
+ # part. Anything else, and the body is ignored for header-scan purposes.
+ found = None
+ if msg.get_type('text/plain') == 'text/plain':
+ found = msg
+ elif msg.is_multipart() and msg.get_type() == 'multipart/alternative':
+ for found in msg.get_payload():
+ if found.get_type('text/plain') == 'text/plain':
+ break
+ else:
+ found = None
+ if not found:
+ return []
+ # Now that we have a Message object that meets our criteria, let's extract
+ # the first numlines of body text.
+ lines = []
+ lineno = 0
+ reader = list(email.Iterators.body_line_iterator(msg))
+ while numlines is None or lineno < numlines:
+ try:
+ line = reader.pop(0)
+ except IndexError:
+ break
+ # Blank lines don't count
+ if not line.strip():
+ continue
+ lineno += 1
+ lines.append(line)
+ # Concatenate those body text lines with newlines, and then create a new
+ # message object from those lines.
+ p = _ForgivingParser()
+ msg = p.parsestr(EMPTYSTRING.join(lines))
+ return msg.get_all('subject', []) + msg.get_all('keywords', [])
+
+
+
+class _ForgivingParser(email.Parser.HeaderParser):
+ # Be a little more forgiving about non-header/continuation lines, since
+ # we'll just read as much as we can from "header-like" lines in the body.
+ #
+ # BAW: WIBNI we didn't have to cut-n-paste this whole thing just to
+ # specialize the way it returns?
+ def _parseheaders(self, container, fp):
+ # Parse the headers, returning a list of header/value pairs. None as
+ # the header means the Unix-From header.
+ lastheader = ''
+ lastvalue = []
+ lineno = 0
+ while 1:
+ # Don't strip the line before we test for the end condition,
+ # because whitespace-only header lines are RFC compliant
+ # continuation lines.
+ line = fp.readline()
+ if not line:
+ break
+ line = line.splitlines()[0]
+ if not line:
+ break
+ # Ignore the trailing newline
+ lineno += 1
+ # Check for initial Unix From_ line
+ if line.startswith('From '):
+ if lineno == 1:
+ container.set_unixfrom(line)
+ continue
+ else:
+ break
+ # Header continuation line
+ if line[0] in ' \t':
+ if not lastheader:
+ break
+ lastvalue.append(line)
+ continue
+ # Normal, non-continuation header. BAW: this should check to make
+ # sure it's a legal header, e.g. doesn't contain spaces. Also, we
+ # should expose the header matching algorithm in the API, and
+ # allow for a non-strict parsing mode (that ignores the line
+ # instead of raising the exception).
+ i = line.find(':')
+ if i < 0:
+ break
+ if lastheader:
+ container[lastheader] = NLTAB.join(lastvalue)
+ lastheader = line[:i]
+ lastvalue = [line[i+1:].lstrip()]
+ # Make sure we retain the last header
+ if lastheader:
+ container[lastheader] = NLTAB.join(lastvalue)
diff --git a/Mailman/Handlers/ToArchive.py b/Mailman/Handlers/ToArchive.py
new file mode 100644
index 00000000..dc19f963
--- /dev/null
+++ b/Mailman/Handlers/ToArchive.py
@@ -0,0 +1,39 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Add the message to the archives."""
+
+import time
+from cStringIO import StringIO
+
+from Mailman import mm_cfg
+from Mailman.Queue.sbcache import get_switchboard
+
+
+
+def process(mlist, msg, msgdata):
+ # short circuits
+ if msgdata.get('isdigest') or not mlist.archive:
+ return
+ # Common practice seems to favor "X-No-Archive: yes". No other value for
+ # this header seems to make sense, so we'll just test for it's presence.
+ # I'm keeping "X-Archive: no" for backwards compatibility.
+ if msg.has_key('x-no-archive') or msg.get('x-archive', '').lower() == 'no':
+ return
+ # Send the message to the archiver queue
+ archq = get_switchboard(mm_cfg.ARCHQUEUE_DIR)
+ # Send the message to the queue
+ archq.enqueue(msg, msgdata)
diff --git a/Mailman/Handlers/ToDigest.py b/Mailman/Handlers/ToDigest.py
new file mode 100644
index 00000000..d735cd69
--- /dev/null
+++ b/Mailman/Handlers/ToDigest.py
@@ -0,0 +1,351 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Add the message to the list's current digest and possibly send it.
+"""
+
+# Messages are accumulated to a Unix mailbox compatible file containing all
+# the messages destined for the digest. This file must be parsable by the
+# mailbox.UnixMailbox class (i.e. it must be ^From_ quoted).
+#
+# When the file reaches the size threshold, it is moved to the qfiles/digest
+# directory and the DigestRunner will craft the MIME, rfc1153, and
+# (eventually) URL-subject linked digests from the mbox.
+
+import os
+import re
+import time
+from types import ListType
+from cStringIO import StringIO
+
+from email.Parser import Parser
+from email.Generator import Generator
+from email.MIMEBase import MIMEBase
+from email.MIMEText import MIMEText
+from email.MIMEMessage import MIMEMessage
+from email.Utils import getaddresses
+
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman import Message
+from Mailman import i18n
+from Mailman.MemberAdaptor import ENABLED
+from Mailman.Handlers.Decorate import decorate
+from Mailman.Queue.sbcache import get_switchboard
+from Mailman.Mailbox import Mailbox
+
+_ = i18n._
+
+
+# rfc1153 says we should keep only these headers, and present them in this
+# exact order.
+KEEP = ['Date', 'From', 'To', 'Cc', 'Subject', 'Message-ID', 'Keywords',
+ # I believe we should also keep these headers though.
+ 'In-Reply-To', 'References', 'Content-Type', 'MIME-Version',
+ 'Content-Transfer-Encoding', 'Precedence', 'Reply-To',
+ # Mailman 2.0 adds these headers, but they don't need to be kept from
+ # the original message: Message
+ ]
+
+
+
+def process(mlist, msg, msgdata):
+ # Short circuit non-digestable lists.
+ if not mlist.digestable or msgdata.get('isdigest'):
+ return
+ mboxfile = os.path.join(mlist.fullpath(), 'digest.mbox')
+ omask = os.umask(007)
+ try:
+ mboxfp = open(mboxfile, 'a+')
+ finally:
+ os.umask(omask)
+ g = Generator(mboxfp)
+ g(msg, unixfrom=1)
+ # Calculate the current size of the accumulation file. This will not tell
+ # us exactly how big the MIME, rfc1153, or any other generated digest
+ # message will be, but it's the most easily available metric to decide
+ # whether the size threshold has been reached.
+ mboxfp.flush()
+ size = os.path.getsize(mboxfile)
+ if size / 1024.0 >= mlist.digest_size_threshhold:
+ # This is a bit of a kludge to get the mbox file moved to the digest
+ # queue directory.
+ mboxfp.seek(0)
+ send_digests(mlist, mboxfp)
+ os.unlink(mboxfile)
+ mboxfp.close()
+
+
+
+def send_digests(mlist, mboxfp):
+ # Set the digest volume and time
+ if mlist.digest_last_sent_at:
+ bump = 0
+ # See if we should bump the digest volume number
+ timetup = time.localtime(mlist.digest_last_sent_at)
+ now = time.localtime(time.time())
+ freq = mlist.digest_volume_frequency
+ if freq == 0 and timetup[0] < now[0]:
+ # Yearly
+ bump = 1
+ elif freq == 1 and timetup[1] <> now[1]:
+ # Monthly, but we take a cheap way to calculate this. We assume
+ # that the clock isn't going to be reset backwards.
+ bump = 1
+ elif freq == 2 and (timetup[1] % 4 <> now[1] % 4):
+ # Quarterly, same caveat
+ bump = 1
+ elif freq == 3:
+ # Once again, take a cheap way of calculating this
+ weeknum_last = int(time.strftime('%W', timetup))
+ weeknum_now = int(time.strftime('%W', now))
+ if weeknum_now > weeknum_last or timetup[0] > now[0]:
+ bump = 1
+ elif freq == 4 and timetup[7] <> now[7]:
+ # Daily
+ bump = 1
+ if bump:
+ mlist.bump_digest_volume()
+ mlist.digest_last_sent_at = time.time()
+ # Wrapper around actually digest crafter to set up the language context
+ # properly. All digests are translated to the list's preferred language.
+ otranslation = i18n.get_translation()
+ i18n.set_language(mlist.preferred_language)
+ try:
+ send_i18n_digests(mlist, mboxfp)
+ finally:
+ i18n.set_translation(otranslation)
+
+
+
+def send_i18n_digests(mlist, mboxfp):
+ mbox = Mailbox(mboxfp)
+ # Prepare common information
+ lang = mlist.preferred_language
+ realname = mlist.real_name
+ volume = mlist.volume
+ issue = mlist.next_digest_number
+ digestid = _('%(realname)s Digest, Vol %(volume)d, Issue %(issue)d')
+ # Set things up for the MIME digest. Only headers not added by
+ # CookHeaders need be added here.
+ mimemsg = Message.Message()
+ mimemsg['Content-Type'] = 'multipart/mixed'
+ mimemsg['MIME-Version'] = '1.0'
+ mimemsg['From'] = mlist.GetRequestEmail()
+ mimemsg['Subject'] = digestid
+ mimemsg['To'] = mlist.GetListEmail()
+ mimemsg['Reply-To'] = mlist.GetListEmail()
+ # Set things up for the rfc1153 digest
+ plainmsg = StringIO()
+ rfc1153msg = Message.Message()
+ rfc1153msg['From'] = mlist.GetRequestEmail()
+ rfc1153msg['Subject'] = digestid
+ rfc1153msg['To'] = mlist.GetListEmail()
+ rfc1153msg['Reply-To'] = mlist.GetListEmail()
+ separator70 = '-' * 70
+ separator30 = '-' * 30
+ # In the rfc1153 digest, the masthead contains the digest boilerplate plus
+ # any digest header. In the MIME digests, the masthead and digest header
+ # are separate MIME subobjects. In either case, it's the first thing in
+ # the digest, and we can calculate it now, so go ahead and add it now.
+ mastheadtxt = Utils.maketext(
+ 'masthead.txt',
+ {'real_name' : mlist.real_name,
+ 'got_list_email': mlist.GetListEmail(),
+ 'got_listinfo_url': mlist.GetScriptURL('listinfo', absolute=1),
+ 'got_request_email': mlist.GetRequestEmail(),
+ 'got_owner_email': mlist.GetOwnerEmail(),
+ }, mlist=mlist)
+ # MIME
+ masthead = MIMEText(mastheadtxt, _charset=Utils.GetCharSet(lang))
+ masthead['Content-Description'] = digestid
+ mimemsg.attach(masthead)
+ # rfc1153
+ print >> plainmsg, mastheadtxt
+ print >> plainmsg
+ # Now add the optional digest header
+ if mlist.digest_header:
+ headertxt = decorate(mlist, mlist.digest_header, _('digest header'))
+ # MIME
+ header = MIMEText(headertxt)
+ header['Content-Description'] = _('Digest Header')
+ mimemsg.attach(header)
+ # rfc1153
+ print >> plainmsg, headertxt
+ print >> plainmsg
+ # Now we have to cruise through all the messages accumulated in the
+ # mailbox file. We can't add these messages to the plainmsg and mimemsg
+ # yet, because we first have to calculate the table of contents
+ # (i.e. grok out all the Subjects). Store the messages in a list until
+ # we're ready for them.
+ #
+ # Meanwhile prepare things for the table of contents
+ toc = StringIO()
+ print >> toc, _("Today's Topics:\n")
+ # Now cruise through all the messages in the mailbox of digest messages,
+ # building the MIME payload and core of the rfc1153 digest. We'll also
+ # accumulate Subject: headers and authors for the table-of-contents.
+ messages = []
+ msgcount = 0
+ msg = mbox.next()
+ while msg is not None:
+ if msg == '':
+ # It was an unparseable message
+ msg = mbox.next()
+ msgcount += 1
+ messages.append(msg)
+ # Get the Subject header
+ subject = msg.get('subject', _('(no subject)'))
+ # Don't include the redundant subject prefix in the toc
+ mo = re.match('(re:? *)?(%s)' % re.escape(mlist.subject_prefix),
+ subject, re.IGNORECASE)
+ if mo:
+ subject = subject[:mo.start(2)] + subject[mo.end(2):]
+ addresses = getaddresses([msg.get('From', '')])
+ username = ''
+ # Take only the first author we find
+ if type(addresses) is ListType and len(addresses) > 0:
+ username = addresses[0][0]
+ if username:
+ username = ' (%s)' % username
+ # Wrap the toc subject line
+ wrapped = Utils.wrap('%2d. %s' % (msgcount, subject))
+ # Split by lines and see if the username can fit on the last line
+ slines = wrapped.split('\n')
+ if len(slines[-1]) + len(username) > 70:
+ slines.append(username)
+ else:
+ slines[-1] += username
+ # Add this subject to the accumulating topics
+ first = 1
+ for line in slines:
+ if first:
+ print >> toc, ' ', line
+ first = 0
+ else:
+ print >> toc, ' ', line
+ # We do not want all the headers of the original message to leak
+ # through in the digest messages. For simplicity, we'll leave the
+ # same set of headers in both digests, i.e. those required in rfc1153
+ # plus a couple of other useful ones. We also need to reorder the
+ # headers according to rfc1153.
+ keeper = {}
+ for keep in KEEP:
+ keeper[keep] = msg.get_all(keep, [])
+ # Now remove all unkempt headers :)
+ for header in msg.keys():
+ del msg[header]
+ # And add back the kept header in the rfc1153 designated order
+ for keep in KEEP:
+ for field in keeper[keep]:
+ msg[keep] = field
+ # And a bit of extra stuff
+ msg['Message'] = `msgcount`
+ # Get the next message in the digest mailbox
+ msg = mbox.next()
+ # Now we're finished with all the messages in the digest. First do some
+ # sanity checking and then on to adding the toc.
+ if msgcount == 0:
+ # Why did we even get here?
+ return
+ toctext = toc.getvalue()
+ # MIME
+ tocpart = MIMEText(toctext)
+ tocpart['Content-Description']= _("Today's Topics (%(msgcount)d messages)")
+ mimemsg.attach(tocpart)
+ # rfc1153
+ print >> plainmsg, toctext
+ print >> plainmsg
+ # For rfc1153 digests, we now need the standard separator
+ print >> plainmsg, separator70
+ print >> plainmsg
+ # Now go through and add each message
+ mimedigest = MIMEBase('multipart', 'digest')
+ mimemsg.attach(mimedigest)
+ first = 1
+ for msg in messages:
+ # MIME
+ mimedigest.attach(MIMEMessage(msg))
+ # rfc1153
+ if first:
+ first = 0
+ else:
+ print >> plainmsg, separator30
+ print >> plainmsg
+ g = Generator(plainmsg)
+ g(msg, unixfrom=0)
+ # Now add the footer
+ if mlist.digest_footer:
+ footertxt = decorate(mlist, mlist.digest_footer, _('digest footer'))
+ # MIME
+ footer = MIMEText(footertxt)
+ footer['Content-Description'] = _('Digest Footer')
+ mimemsg.attach(footer)
+ # rfc1153
+ # BAW: This is not strictly conformant rfc1153. The trailer is only
+ # supposed to contain two lines, i.e. the "End of ... Digest" line and
+ # the row of asterisks. If this screws up MUAs, the solution is to
+ # add the footer as the last message in the rfc1153 digest. I just
+ # hate the way that VM does that and I think it's confusing to users,
+ # so don't do it unless there's a clamor.
+ print >> plainmsg, separator30
+ print >> plainmsg
+ print >> plainmsg, footertxt
+ print >> plainmsg
+ # Do the last bit of stuff for each digest type
+ signoff = _('End of ') + digestid
+ # MIME
+ # BAW: This stuff is outside the normal MIME goo, and it's what the old
+ # MIME digester did. No one seemed to complain, probably because you
+ # won't see it in an MUA that can't display the raw message. We've never
+ # got complaints before, but if we do, just wax this. It's primarily
+ # included for (marginally useful) backwards compatibility.
+ mimemsg.postamble = signoff
+ # rfc1153
+ print >> plainmsg, signoff
+ print >> plainmsg, '*' * len(signoff)
+ # Do our final bit of housekeeping, and then send each message to the
+ # outgoing queue for delivery.
+ mlist.next_digest_number += 1
+ virginq = get_switchboard(mm_cfg.VIRGINQUEUE_DIR)
+ # Calculate the recipients lists
+ plainrecips = []
+ mimerecips = []
+ drecips = mlist.getDigestMemberKeys() + mlist.one_last_digest.keys()
+ for user in mlist.getMemberCPAddresses(drecips):
+ # user might be None if someone who toggled off digest delivery
+ # subsequently unsubscribed from the mailing list. Also, filter out
+ # folks who have disabled delivery.
+ if user is None or mlist.getDeliveryStatus(user) <> ENABLED:
+ continue
+ # Otherwise, decide whether they get MIME or RFC 1153 digests
+ if mlist.getMemberOption(user, mm_cfg.DisableMime):
+ plainrecips.append(user)
+ else:
+ mimerecips.append(user)
+ # Zap this since we're now delivering the last digest to these folks.
+ mlist.one_last_digest.clear()
+ # MIME
+ virginq.enqueue(mimemsg,
+ recips=mimerecips,
+ listname=mlist.internal_name(),
+ isdigest=1)
+ # rfc1153
+ rfc1153msg.set_payload(plainmsg.getvalue())
+ virginq.enqueue(rfc1153msg,
+ recips=plainrecips,
+ listname=mlist.internal_name(),
+ isdigest=1)
diff --git a/Mailman/Handlers/ToOutgoing.py b/Mailman/Handlers/ToOutgoing.py
new file mode 100644
index 00000000..4732b984
--- /dev/null
+++ b/Mailman/Handlers/ToOutgoing.py
@@ -0,0 +1,55 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Re-queue the message to the outgoing queue.
+
+This module is only for use by the IncomingRunner for delivering messages
+posted to the list membership. Anything else that needs to go out to some
+recipient should just be placed in the out queue directly.
+"""
+
+from Mailman import mm_cfg
+from Mailman.Queue.sbcache import get_switchboard
+
+
+
+def process(mlist, msg, msgdata):
+ interval = mm_cfg.VERP_DELIVERY_INTERVAL
+ # Should we VERP this message? If personalization is enabled for this
+ # list and VERP_PERSONALIZED_DELIVERIES is true, then yes we VERP it.
+ # Also, if personalization is /not/ enabled, but VERP_DELIVERY_INTERVAL is
+ # set (and we've hit this interval), then again, this message should be
+ # VERPed. Otherwise, no.
+ #
+ # Note that the verp flag may already be set, e.g. by mailpasswds using
+ # VERP_PASSWORD_REMINDERS. Preserve any existing verp flag.
+ if msgdata.has_key('verp'):
+ pass
+ elif mlist.personalize:
+ if mm_cfg.VERP_PERSONALIZED_DELIVERIES:
+ msgdata['verp'] = 1
+ elif interval == 0:
+ # Never VERP
+ pass
+ elif interval == 1:
+ # VERP every time
+ msgdata['verp'] = 1
+ else:
+ # VERP every `inteval' number of times
+ msgdata['verp'] = not int(mlist.post_id) % interval
+ # And now drop the message in qfiles/out
+ outq = get_switchboard(mm_cfg.OUTQUEUE_DIR)
+ outq.enqueue(msg, msgdata, listname=mlist.internal_name())
diff --git a/Mailman/Handlers/ToUsenet.py b/Mailman/Handlers/ToUsenet.py
new file mode 100644
index 00000000..2d6755b7
--- /dev/null
+++ b/Mailman/Handlers/ToUsenet.py
@@ -0,0 +1,44 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Move the message to the mail->news queue."""
+
+from Mailman import mm_cfg
+from Mailman.Queue.sbcache import get_switchboard
+from Mailman.Logging.Syslog import syslog
+
+COMMASPACE = ', '
+
+
+def process(mlist, msg, msgdata):
+ # short circuits
+ if not mlist.gateway_to_news or \
+ msgdata.get('isdigest') or \
+ msgdata.get('fromusenet'):
+ return
+ # sanity checks
+ error = []
+ if not mlist.linked_newsgroup:
+ error.append('no newsgroup')
+ if not mlist.nntp_host:
+ error.append('no NNTP host')
+ if error:
+ syslog('error', 'NNTP gateway improperly configured: %s',
+ COMMASPACE.join(error))
+ return
+ # Put the message in the news runner's queue
+ newsq = get_switchboard(mm_cfg.NEWSQUEUE_DIR)
+ newsq.enqueue(msg, msgdata, listname=mlist.internal_name())
diff --git a/Mailman/Handlers/__init__.py b/Mailman/Handlers/__init__.py
new file mode 100644
index 00000000..2cbbabb1
--- /dev/null
+++ b/Mailman/Handlers/__init__.py
@@ -0,0 +1,15 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
diff --git a/Mailman/ListAdmin.py b/Mailman/ListAdmin.py
new file mode 100644
index 00000000..82eedc80
--- /dev/null
+++ b/Mailman/ListAdmin.py
@@ -0,0 +1,579 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Mixin class for MailList which handles administrative requests.
+
+Two types of admin requests are currently supported: adding members to a
+closed or semi-closed list, and moderated posts.
+
+Pending subscriptions which are requiring a user's confirmation are handled
+elsewhere.
+"""
+
+import os
+import time
+import marshal
+import errno
+import cPickle
+from cStringIO import StringIO
+
+import email
+from email.MIMEMessage import MIMEMessage
+from email.Generator import Generator
+from email.Utils import getaddresses
+
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman import Message
+from Mailman import Errors
+from Mailman.UserDesc import UserDesc
+from Mailman.Queue.sbcache import get_switchboard
+from Mailman.Logging.Syslog import syslog
+from Mailman import i18n
+
+_ = i18n._
+
+# Request types requiring admin approval
+IGN = 0
+HELDMSG = 1
+SUBSCRIPTION = 2
+UNSUBSCRIPTION = 3
+
+# Return status from __handlepost()
+DEFER = 0
+REMOVE = 1
+LOST = 2
+
+DASH = '-'
+NL = '\n'
+
+
+
+class ListAdmin:
+ def InitVars(self):
+ # non-configurable data
+ self.next_request_id = 1
+
+ def InitTempVars(self):
+ self.__db = None
+
+ def __filename(self):
+ return os.path.join(self.fullpath(), 'request.db')
+
+ def __opendb(self):
+ filename = self.__filename()
+ if self.__db is None:
+ assert self.Locked()
+ try:
+ fp = open(filename)
+ self.__db = marshal.load(fp)
+ fp.close()
+ except IOError, e:
+ if e.errno <> errno.ENOENT: raise
+ self.__db = {}
+ except EOFError, e:
+ # The unmarshalling failed, which means the file is corrupt.
+ # Sigh. Start over.
+ syslog('error',
+ 'request.db file corrupt for list %s, blowing it away.',
+ self.internal_name())
+ self.__db = {}
+ # Migrate pre-2.1a3 held subscription records to include the
+ # fullname data field.
+ type, version = self.__db.get('version', (IGN, None))
+ if version is None:
+ # No previous revisiont number, must be upgrading to 2.1a3 or
+ # beyond from some unknown earlier version.
+ for id, (type, data) in self.__db.items():
+ if id == IGN:
+ pass
+ elif id == HELDMSG and len(data) == 5:
+ # tack on a msgdata dictionary
+ self.__db[id] = data + ({},)
+ elif id == SUBSCRIPTION and len(data) == 5:
+ # a fullname field was added
+ stime, addr, password, digest, lang = data
+ self.__db[id] = stime, addr, '', password, digest, lang
+
+
+ def __closedb(self):
+ if self.__db is not None:
+ assert self.Locked()
+ # Save the version number
+ self.__db['version'] = IGN, mm_cfg.REQUESTS_FILE_SCHEMA_VERSION
+ # Now save a temp file and do the tmpfile->real file dance. BAW:
+ # should we be as paranoid as for the config.pck file? Should we
+ # use pickle?
+ tmpfile = self.__filename() + '.tmp'
+ omask = os.umask(002)
+ try:
+ fp = open(tmpfile, 'w')
+ marshal.dump(self.__db, fp)
+ fp.close()
+ self.__db = None
+ finally:
+ os.umask(omask)
+ # Do the dance
+ os.rename(tmpfile, self.__filename())
+
+ def __request_id(self):
+ id = self.next_request_id
+ self.next_request_id += 1
+ return id
+
+ def SaveRequestsDb(self):
+ self.__closedb()
+
+ def NumRequestsPending(self):
+ self.__opendb()
+ # Subtrace one for the version pseudo-entry
+ if self.__db.has_key('version'):
+ return len(self.__db) - 1
+ return len(self.__db)
+
+ def __getmsgids(self, rtype):
+ self.__opendb()
+ ids = [k for k, (type, data) in self.__db.items() if type == rtype]
+ ids.sort()
+ return ids
+
+ def GetHeldMessageIds(self):
+ return self.__getmsgids(HELDMSG)
+
+ def GetSubscriptionIds(self):
+ return self.__getmsgids(SUBSCRIPTION)
+
+ def GetUnsubscriptionIds(self):
+ return self.__getmsgids(UNSUBSCRIPTION)
+
+ def GetRecord(self, id):
+ self.__opendb()
+ type, data = self.__db[id]
+ return data
+
+ def GetRecordType(self, id):
+ self.__opendb()
+ type, data = self.__db[id]
+ return type
+
+ def HandleRequest(self, id, value, comment=None, preserve=None,
+ forward=None, addr=None):
+ self.__opendb()
+ rtype, data = self.__db[id]
+ if rtype == HELDMSG:
+ status = self.__handlepost(data, value, comment, preserve,
+ forward, addr)
+ elif rtype == UNSUBSCRIPTION:
+ status = self.__handleunsubscription(data, value, comment)
+ else:
+ assert rtype == SUBSCRIPTION
+ status = self.__handlesubscription(data, value, comment)
+ if status <> DEFER:
+ # BAW: Held message ids are linked to Pending cookies, allowing
+ # the user to cancel their post before the moderator has approved
+ # it. We should probably remove the cookie associated with this
+ # id, but we have no way currently of correlating them. :(
+ del self.__db[id]
+
+ def HoldMessage(self, msg, reason, msgdata={}):
+ # Make a copy of msgdata so that subsequent changes won't corrupt the
+ # request database. TBD: remove the `filebase' key since this will
+ # not be relevant when the message is resurrected.
+ newmsgdata = {}
+ newmsgdata.update(msgdata)
+ msgdata = newmsgdata
+ # assure that the database is open for writing
+ self.__opendb()
+ # get the next unique id
+ id = self.__request_id()
+ assert not self.__db.has_key(id)
+ # get the message sender
+ sender = msg.get_sender()
+ # calculate the file name for the message text and write it to disk
+ if mm_cfg.HOLD_MESSAGES_AS_PICKLES:
+ ext = 'pck'
+ else:
+ ext = 'txt'
+ filename = 'heldmsg-%s-%d.%s' % (self.internal_name(), id, ext)
+ omask = os.umask(002)
+ fp = None
+ try:
+ fp = open(os.path.join(mm_cfg.DATA_DIR, filename), 'w')
+ if mm_cfg.HOLD_MESSAGES_AS_PICKLES:
+ cPickle.dump(msg, fp, 1)
+ else:
+ g = Generator(fp)
+ g(msg, 1)
+ finally:
+ if fp:
+ fp.close()
+ os.umask(omask)
+ # save the information to the request database. for held message
+ # entries, each record in the database will be of the following
+ # format:
+ #
+ # the time the message was received
+ # the sender of the message
+ # the message's subject
+ # a string description of the problem
+ # name of the file in $PREFIX/data containing the msg text
+ # an additional dictionary of message metadata
+ #
+ msgsubject = msg.get('subject', _('(no subject)'))
+ data = time.time(), sender, msgsubject, reason, filename, msgdata
+ self.__db[id] = (HELDMSG, data)
+ return id
+
+ def __handlepost(self, record, value, comment, preserve, forward, addr):
+ # For backwards compatibility with pre 2.0beta3
+ ptime, sender, subject, reason, filename, msgdata = record
+ path = os.path.join(mm_cfg.DATA_DIR, filename)
+ # Handle message preservation
+ if preserve:
+ parts = os.path.split(path)[1].split(DASH)
+ parts[0] = 'spam'
+ spamfile = DASH.join(parts)
+ # Preserve the message as plain text, not as a pickle
+ try:
+ fp = open(path)
+ except IOError, e:
+ if e.errno <> errno.ENOENT: raise
+ return LOST
+ try:
+ msg = cPickle.load(fp)
+ finally:
+ fp.close()
+ # Save the plain text to a .msg file, not a .pck file
+ outpath = os.path.join(mm_cfg.SPAM_DIR, spamfile)
+ head, ext = os.path.splitext(outpath)
+ outpath = head + '.msg'
+ outfp = open(outpath, 'w')
+ try:
+ g = Generator(outfp)
+ g(msg, 1)
+ finally:
+ outfp.close()
+ # Now handle updates to the database
+ rejection = None
+ fp = None
+ msg = None
+ status = REMOVE
+ if value == mm_cfg.DEFER:
+ # Defer
+ status = DEFER
+ elif value == mm_cfg.APPROVE:
+ # Approved.
+ try:
+ msg = readMessage(path)
+ except IOError, e:
+ if e.errno <> errno.ENOENT: raise
+ return LOST
+ msg = readMessage(path)
+ msgdata['approved'] = 1
+ # adminapproved is used by the Emergency handler
+ msgdata['adminapproved'] = 1
+ # Calculate a new filebase for the approved message, otherwise
+ # delivery errors will cause duplicates.
+ try:
+ del msgdata['filebase']
+ except KeyError:
+ pass
+ # Queue the file for delivery by qrunner. Trying to deliver the
+ # message directly here can lead to a huge delay in web
+ # turnaround. Log the moderation and add a header.
+ msg['X-Mailman-Approved-At'] = email.Utils.formatdate(localtime=1)
+ syslog('vette', 'held message approved, message-id: %s',
+ msg.get('message-id', 'n/a'))
+ # Stick the message back in the incoming queue for further
+ # processing.
+ inq = get_switchboard(mm_cfg.INQUEUE_DIR)
+ inq.enqueue(msg, _metadata=msgdata)
+ elif value == mm_cfg.REJECT:
+ # Rejected
+ rejection = 'Refused'
+ self.__refuse(_('Posting of your message titled "%(subject)s"'),
+ sender, comment or _('[No reason given]'),
+ lang=self.getMemberLanguage(sender))
+ else:
+ assert value == mm_cfg.DISCARD
+ # Discarded
+ rejection = 'Discarded'
+ # Forward the message
+ if forward and addr:
+ # If we've approved the message, we need to be sure to craft a
+ # completely unique second message for the forwarding operation,
+ # since we don't want to share any state or information with the
+ # normal delivery.
+ try:
+ copy = readMessage(path)
+ except IOError, e:
+ if e.errno <> errno.ENOENT: raise
+ raise Errors.LostHeldMessage(path)
+ # It's possible the addr is a comma separated list of addresses.
+ addrs = getaddresses([addr])
+ if len(addrs) == 1:
+ realname, addr = addrs[0]
+ # If the address getting the forwarded message is a member of
+ # the list, we want the headers of the outer message to be
+ # encoded in their language. Otherwise it'll be the preferred
+ # language of the mailing list.
+ lang = self.getMemberLanguage(addr)
+ else:
+ # Throw away the realnames
+ addr = [a for realname, a in addrs]
+ # Which member language do we attempt to use? We could use
+ # the first match or the first address, but in the face of
+ # ambiguity, let's just use the list's preferred language
+ lang = self.preferred_language
+ otrans = i18n.get_translation()
+ i18n.set_language(lang)
+ try:
+ fmsg = Message.UserNotification(
+ addr, self.GetBouncesEmail(),
+ _('Forward of moderated message'),
+ lang=lang)
+ finally:
+ i18n.set_translation(otrans)
+ fmsg.set_type('message/rfc822')
+ fmsg.attach(copy)
+ fmsg.send(self)
+ # Log the rejection
+ if rejection:
+ note = '''%(listname)s: %(rejection)s posting:
+\tFrom: %(sender)s
+\tSubject: %(subject)s''' % {
+ 'listname' : self.internal_name(),
+ 'rejection': rejection,
+ 'sender' : sender.replace('%', '%%'),
+ 'subject' : subject.replace('%', '%%'),
+ }
+ if comment:
+ note += '\n\tReason: ' + comment.replace('%', '%%')
+ syslog('vette', note)
+ # Always unlink the file containing the message text. It's not
+ # necessary anymore, regardless of the disposition of the message.
+ if status <> DEFER:
+ try:
+ os.unlink(path)
+ except OSError, e:
+ if e.errno <> errno.ENOENT: raise
+ # We lost the message text file. Clean up our housekeeping
+ # and inform of this status.
+ return LOST
+ return status
+
+ def HoldSubscription(self, addr, fullname, password, digest, lang):
+ # Assure that the database is open for writing
+ self.__opendb()
+ # Get the next unique id
+ id = self.__request_id()
+ assert not self.__db.has_key(id)
+ #
+ # Save the information to the request database. for held subscription
+ # entries, each record in the database will be one of the following
+ # format:
+ #
+ # the time the subscription request was received
+ # the subscriber's address
+ # the subscriber's selected password (TBD: is this safe???)
+ # the digest flag
+ # the user's preferred language
+ #
+ data = time.time(), addr, fullname, password, digest, lang
+ self.__db[id] = (SUBSCRIPTION, data)
+ #
+ # TBD: this really shouldn't go here but I'm not sure where else is
+ # appropriate.
+ syslog('vette', '%s: held subscription request from %s',
+ self.internal_name(), addr)
+ # Possibly notify the administrator in default list language
+ if self.admin_immed_notify:
+ realname = self.real_name
+ subject = _(
+ 'New subscription request to list %(realname)s from %(addr)s')
+ text = Utils.maketext(
+ 'subauth.txt',
+ {'username' : addr,
+ 'listname' : self.internal_name(),
+ 'hostname' : self.host_name,
+ 'admindb_url': self.GetScriptURL('admindb', absolute=1),
+ }, mlist=self)
+ # This message should appear to come from the <list>-owner so as
+ # to avoid any useless bounce processing.
+ owneraddr = self.GetOwnerEmail()
+ msg = Message.UserNotification(owneraddr, owneraddr, subject, text,
+ self.preferred_language)
+ msg.send(self, **{'tomoderators': 1})
+
+ def __handlesubscription(self, record, value, comment):
+ stime, addr, fullname, password, digest, lang = record
+ if value == mm_cfg.DEFER:
+ return DEFER
+ elif value == mm_cfg.DISCARD:
+ pass
+ elif value == mm_cfg.REJECT:
+ self.__refuse(_('Subscription request'), addr,
+ comment or _('[No reason given]'),
+ lang=lang)
+ else:
+ # subscribe
+ assert value == mm_cfg.SUBSCRIBE
+ try:
+ userdesc = UserDesc(addr, fullname, password, digest, lang)
+ self.ApprovedAddMember(userdesc)
+ except Errors.MMAlreadyAMember:
+ # User has already been subscribed, after sending the request
+ pass
+ # TBD: disgusting hack: ApprovedAddMember() can end up closing
+ # the request database.
+ self.__opendb()
+ return REMOVE
+
+ def HoldUnsubscription(self, addr):
+ # Assure the database is open for writing
+ self.__opendb()
+ # Get the next unique id
+ id = self.__request_id()
+ assert not self.__db.has_key(id)
+ # All we need to do is save the unsubscribing address
+ self.__db[id] = (UNSUBSCRIPTION, addr)
+ syslog('vette', '%s: held unsubscription request from %s',
+ self.internal_name(), addr)
+ # Possibly notify the administrator of the hold
+ if self.admin_immed_notify:
+ realname = self.real_name
+ subject = _(
+ 'New unsubscription request from %(realname)s by %(addr)s')
+ text = Utils.maketext(
+ 'unsubauth.txt',
+ {'username' : addr,
+ 'listname' : self.internal_name(),
+ 'hostname' : self.host_name,
+ 'admindb_url': self.GetScriptURL('admindb', absolute=1),
+ }, mlist=self)
+ # This message should appear to come from the <list>-owner so as
+ # to avoid any useless bounce processing.
+ owneraddr = self.GetOwnerEmail()
+ msg = Message.UserNotification(owneraddr, owneraddr, subject, text,
+ self.preferred_language)
+ msg.send(self, **{'tomoderators': 1})
+
+ def __handleunsubscription(self, record, value, comment):
+ addr = record
+ if value == mm_cfg.DEFER:
+ return DEFER
+ elif value == mm_cfg.DISCARD:
+ pass
+ elif value == mm_cfg.REJECT:
+ self.__refuse(_('Unsubscription request'), addr, comment)
+ else:
+ assert value == mm_cfg.UNSUBSCRIBE
+ try:
+ self.ApprovedDeleteMember(addr)
+ except Errors.NotAMemberError:
+ # User has already been unsubscribed
+ pass
+ return REMOVE
+
+ def __refuse(self, request, recip, comment, origmsg=None, lang=None):
+ # As this message is going to the requestor, try to set the language
+ # to his/her language choice, if they are a member. Otherwise use the
+ # list's preferred language.
+ realname = self.real_name
+ if lang is None:
+ lang = self.getMemberLanguage(recip)
+ text = Utils.maketext(
+ 'refuse.txt',
+ {'listname' : realname,
+ 'request' : request,
+ 'reason' : comment,
+ 'adminaddr': self.GetOwnerEmail(),
+ }, lang=lang, mlist=self)
+ otrans = i18n.get_translation()
+ i18n.set_language(lang)
+ try:
+ # add in original message, but not wrap/filled
+ if origmsg:
+ text = NL.join(
+ [text,
+ '---------- ' + _('Original Message') + ' ----------',
+ str(origmsg)
+ ])
+ subject = _('Request to mailing list %(realname)s rejected')
+ finally:
+ i18n.set_translation(otrans)
+ msg = Message.UserNotification(recip, self.GetBouncesEmail(),
+ subject, text, lang)
+ msg.send(self)
+
+ def _UpdateRecords(self):
+ # Subscription records have changed since MM2.0.x. In that family,
+ # the records were of length 4, containing the request time, the
+ # address, the password, and the digest flag. In MM2.1a2, they grew
+ # an additional language parameter at the end. In MM2.1a4, they grew
+ # a fullname slot after the address. This semi-public method is used
+ # by the update script to coerce all subscription records to the
+ # latest MM2.1 format.
+ #
+ # Held message records have historically either 5 or 6 items too.
+ # These always include the requests time, the sender, subject, default
+ # rejection reason, and message text. When of length 6, it also
+ # includes the message metadata dictionary on the end of the tuple.
+ self.__opendb()
+ for id, (type, info) in self.__db.items():
+ if type == SUBSCRIPTION:
+ if len(info) == 4:
+ # pre-2.1a2 compatibility
+ when, addr, passwd, digest = info
+ fullname = ''
+ lang = self.preferred_language
+ elif len(info) == 5:
+ # pre-2.1a4 compatibility
+ when, addr, passwd, digest, lang = info
+ fullname = ''
+ else:
+ assert len(info) == 6, 'Unknown subscription record layout'
+ continue
+ # Here's the new layout
+ self.__db[id] = when, addr, fullname, passwd, digest, lang
+ elif type == HELDMSG:
+ if len(info) == 5:
+ when, sender, subject, reason, text = info
+ msgdata = {}
+ else:
+ assert len(info) == 6, 'Unknown held msg record layout'
+ continue
+ # Here's the new layout
+ self.__db[id] = when, sender, subject, reason, text, msgdata
+ # All done
+ self.__closedb()
+
+
+
+def readMessage(path):
+ # For backwards compatibility, we must be able to read either a flat text
+ # file or a pickle.
+ ext = os.path.splitext(path)[1]
+ fp = open(path)
+ try:
+ if ext == '.txt':
+ msg = email.message_from_file(fp, Message.Message)
+ else:
+ assert ext == '.pck'
+ msg = cPickle.load(fp)
+ finally:
+ fp.close()
+ return msg
diff --git a/Mailman/LockFile.py b/Mailman/LockFile.py
new file mode 100644
index 00000000..796a81eb
--- /dev/null
+++ b/Mailman/LockFile.py
@@ -0,0 +1,596 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Portable, NFS-safe file locking with timeouts.
+
+This code implements an NFS-safe file-based locking algorithm influenced by
+the GNU/Linux open(2) manpage, under the description of the O_EXCL option.
+From RH6.1:
+
+ [...] O_EXCL is broken on NFS file systems, programs which rely on it
+ for performing locking tasks will contain a race condition. The
+ solution for performing atomic file locking using a lockfile is to
+ create a unique file on the same fs (e.g., incorporating hostname and
+ pid), use link(2) to make a link to the lockfile. If link() returns
+ 0, the lock is successful. Otherwise, use stat(2) on the unique file
+ to check if its link count has increased to 2, in which case the lock
+ is also successful.
+
+The assumption made here is that there will be no `outside interference',
+e.g. no agent external to this code will have access to link() to the affected
+lock files.
+
+LockFile objects support lock-breaking so that you can't wedge a process
+forever. This is especially helpful in a web environment, but may not be
+appropriate for all applications.
+
+Locks have a `lifetime', which is the maximum length of time the process
+expects to retain the lock. It is important to pick a good number here
+because other processes will not break an existing lock until the expected
+lifetime has expired. Too long and other processes will hang; too short and
+you'll end up trampling on existing process locks -- and possibly corrupting
+data. In a distributed (NFS) environment, you also need to make sure that
+your clocks are properly synchronized.
+
+Locks can also log their state to a log file. When running under Mailman, the
+log file is placed in a Mailman-specific location, otherwise, the log file is
+called `LockFile.log' and placed in the temp directory (calculated from
+tempfile.mktemp()).
+
+"""
+
+# This code has undergone several revisions, with contributions from Barry
+# Warsaw, Thomas Wouters, Harald Meland, and John Viega. It should also work
+# well outside of Mailman so it could be used for other Python projects
+# requiring file locking. See the __main__ section at the bottom of the file
+# for unit testing.
+
+import os
+import socket
+import time
+import errno
+import random
+import traceback
+from stat import ST_NLINK, ST_MTIME
+
+# Units are floating-point seconds.
+DEFAULT_LOCK_LIFETIME = 15
+# Allowable a bit of clock skew
+CLOCK_SLOP = 10
+
+
+
+# Figure out what logfile to use. This is different depending on whether
+# we're running in a Mailman context or not.
+_logfile = None
+
+def _get_logfile():
+ global _logfile
+ if _logfile is None:
+ try:
+ from Mailman.Logging.StampedLogger import StampedLogger
+ _logfile = StampedLogger('locks')
+ except ImportError:
+ # not running inside Mailman
+ import tempfile
+ dir = os.path.split(tempfile.mktemp())[0]
+ path = os.path.join(dir, 'LockFile.log')
+ # open in line-buffered mode
+ class SimpleUserFile:
+ def __init__(self, path):
+ self.__fp = open(path, 'a', 1)
+ self.__prefix = '(%d) ' % os.getpid()
+ def write(self, msg):
+ now = '%.3f' % time.time()
+ self.__fp.write(self.__prefix + now + ' ' + msg)
+ _logfile = SimpleUserFile(path)
+ return _logfile
+
+
+
+# Exceptions that can be raised by this module
+class LockError(Exception):
+ """Base class for all exceptions in this module."""
+
+class AlreadyLockedError(LockError):
+ """An attempt is made to lock an already locked object."""
+
+class NotLockedError(LockError):
+ """An attempt is made to unlock an object that isn't locked."""
+
+class TimeOutError(LockError):
+ """The timeout interval elapsed before the lock succeeded."""
+
+
+
+class LockFile:
+ """A portable way to lock resources by way of the file system.
+
+ This class supports the following methods:
+
+ __init__(lockfile[, lifetime[, withlogging]]):
+ Create the resource lock using lockfile as the global lock file. Each
+ process laying claim to this resource lock will create their own
+ temporary lock files based on the path specified by lockfile.
+ Optional lifetime is the number of seconds the process expects to hold
+ the lock. Optional withlogging, when true, turns on lockfile logging
+ (see the module docstring for details).
+
+ set_lifetime(lifetime):
+ Set a new lock lifetime. This takes affect the next time the file is
+ locked, but does not refresh a locked file.
+
+ get_lifetime():
+ Return the lock's lifetime.
+
+ refresh([newlifetime[, unconditionally]]):
+ Refreshes the lifetime of a locked file. Use this if you realize that
+ you need to keep a resource locked longer than you thought. With
+ optional newlifetime, set the lock's lifetime. Raises NotLockedError
+ if the lock is not set, unless optional unconditionally flag is set to
+ true.
+
+ lock([timeout]):
+ Acquire the lock. This blocks until the lock is acquired unless
+ optional timeout is greater than 0, in which case, a TimeOutError is
+ raised when timeout number of seconds (or possibly more) expires
+ without lock acquisition. Raises AlreadyLockedError if the lock is
+ already set.
+
+ unlock([unconditionally]):
+ Relinquishes the lock. Raises a NotLockedError if the lock is not
+ set, unless optional unconditionally is true.
+
+ locked():
+ Return 1 if the lock is set, otherwise 0. To avoid race conditions,
+ this refreshes the lock (on set locks).
+
+ """
+ # BAW: We need to watch out for two lock objects in the same process
+ # pointing to the same lock file. Without this, if you lock lf1 and do
+ # not lock lf2, lf2.locked() will still return true. NOTE: this gimmick
+ # probably does /not/ work in a multithreaded world, but we don't have to
+ # worry about that, do we? <1 wink>.
+ COUNTER = 0
+
+ def __init__(self, lockfile,
+ lifetime=DEFAULT_LOCK_LIFETIME,
+ withlogging=0):
+ """Create the resource lock using lockfile as the global lock file.
+
+ Each process laying claim to this resource lock will create their own
+ temporary lock files based on the path specified by lockfile.
+ Optional lifetime is the number of seconds the process expects to hold
+ the lock. Optional withlogging, when true, turns on lockfile logging
+ (see the module docstring for details).
+
+ """
+ self.__lockfile = lockfile
+ self.__lifetime = lifetime
+ # This works because we know we're single threaded
+ self.__counter = LockFile.COUNTER
+ LockFile.COUNTER += 1
+ self.__tmpfname = '%s.%s.%d.%d' % (
+ lockfile, socket.gethostname(), os.getpid(), self.__counter)
+ self.__withlogging = withlogging
+ self.__logprefix = os.path.split(self.__lockfile)[1]
+ # For transferring ownership across a fork.
+ self.__owned = 1
+
+ def __repr__(self):
+ return '<LockFile %s: %s [%s: %ssec] pid=%s>' % (
+ id(self), self.__lockfile,
+ self.locked() and 'locked' or 'unlocked',
+ self.__lifetime, os.getpid())
+
+ def set_lifetime(self, lifetime):
+ """Set a new lock lifetime.
+
+ This takes affect the next time the file is locked, but does not
+ refresh a locked file.
+ """
+ self.__lifetime = lifetime
+
+ def get_lifetime(self):
+ """Return the lock's lifetime."""
+ return self.__lifetime
+
+ def refresh(self, newlifetime=None, unconditionally=0):
+ """Refreshes the lifetime of a locked file.
+
+ Use this if you realize that you need to keep a resource locked longer
+ than you thought. With optional newlifetime, set the lock's lifetime.
+ Raises NotLockedError if the lock is not set, unless optional
+ unconditionally flag is set to true.
+ """
+ if newlifetime is not None:
+ self.set_lifetime(newlifetime)
+ # Do we have the lock? As a side effect, this refreshes the lock!
+ if not self.locked() and not unconditionally:
+ raise NotLockedError, '%s: %s' % (repr(self), self.__read())
+
+ def lock(self, timeout=0):
+ """Acquire the lock.
+
+ This blocks until the lock is acquired unless optional timeout is
+ greater than 0, in which case, a TimeOutError is raised when timeout
+ number of seconds (or possibly more) expires without lock acquisition.
+ Raises AlreadyLockedError if the lock is already set.
+
+ """
+ if timeout:
+ timeout_time = time.time() + timeout
+ # Make sure my temp lockfile exists, and that its contents are
+ # up-to-date (e.g. the temp file name, and the lock lifetime).
+ self.__write()
+ # TBD: This next call can fail with an EPERM. I have no idea why, but
+ # I'm nervous about wrapping this in a try/except. It seems to be a
+ # very rare occurence, only happens from cron, and (only?) on Solaris
+ # 2.6.
+ self.__touch()
+ self.__writelog('laying claim')
+ # for quieting the logging output
+ loopcount = -1
+ while 1:
+ loopcount = loopcount + 1
+ # Create the hard link and test for exactly 2 links to the file
+ try:
+ os.link(self.__tmpfname, self.__lockfile)
+ # If we got here, we know we know we got the lock, and never
+ # had it before, so we're done. Just touch it again for the
+ # fun of it.
+ self.__writelog('got the lock')
+ self.__touch()
+ break
+ except OSError, e:
+ # The link failed for some reason, possibly because someone
+ # else already has the lock (i.e. we got an EEXIST), or for
+ # some other bizarre reason.
+ if e.errno == errno.ENOENT:
+ # TBD: in some Linux environments, it is possible to get
+ # an ENOENT, which is truly strange, because this means
+ # that self.__tmpfname doesn't exist at the time of the
+ # os.link(), but self.__write() is supposed to guarantee
+ # that this happens! I don't honestly know why this
+ # happens, but for now we just say we didn't acquire the
+ # lock, and try again next time.
+ pass
+ elif e.errno <> errno.EEXIST:
+ # Something very bizarre happened. Clean up our state and
+ # pass the error on up.
+ self.__writelog('unexpected link error: %s' % e)
+ os.unlink(self.__tmpfname)
+ raise
+ elif self.__linkcount() <> 2:
+ # Somebody's messin' with us! Log this, and try again
+ # later. TBD: should we raise an exception?
+ self.__writelog('unexpected linkcount: %d' %
+ self.__linkcount())
+ elif self.__read() == self.__tmpfname:
+ # It was us that already had the link.
+ self.__writelog('already locked')
+ raise AlreadyLockedError
+ # otherwise, someone else has the lock
+ pass
+ # We did not acquire the lock, because someone else already has
+ # it. Have we timed out in our quest for the lock?
+ if timeout and timeout_time < time.time():
+ os.unlink(self.__tmpfname)
+ self.__writelog('timed out')
+ raise TimeOutError
+ # Okay, we haven't timed out, but we didn't get the lock. Let's
+ # find if the lock lifetime has expired.
+ if time.time() > self.__releasetime() + CLOCK_SLOP:
+ # Yes, so break the lock.
+ self.__break()
+ self.__writelog('lifetime has expired, breaking')
+ # Okay, someone else has the lock, our claim hasn't timed out yet,
+ # and the expected lock lifetime hasn't expired yet. So let's
+ # wait a while for the owner of the lock to give it up.
+ elif not loopcount % 100:
+ self.__writelog('waiting for claim')
+ self.__sleep()
+
+ def unlock(self, unconditionally=0):
+ """Unlock the lock.
+
+ If we don't already own the lock (either because of unbalanced unlock
+ calls, or because the lock was stolen out from under us), raise a
+ NotLockedError, unless optional `unconditionally' is true.
+ """
+ islocked = self.locked()
+ if not islocked and not unconditionally:
+ raise NotLockedError
+ # If we owned the lock, remove the global file, relinquishing it.
+ if islocked:
+ try:
+ os.unlink(self.__lockfile)
+ except OSError, e:
+ if e.errno <> errno.ENOENT: raise
+ # Remove our tempfile
+ try:
+ os.unlink(self.__tmpfname)
+ except OSError, e:
+ if e.errno <> errno.ENOENT: raise
+ self.__writelog('unlocked')
+
+ def locked(self):
+ """Returns 1 if we own the lock, 0 if we do not.
+
+ Checking the status of the lockfile resets the lock's lifetime, which
+ helps avoid race conditions during the lock status test.
+ """
+ # Discourage breaking the lock for a while.
+ try:
+ self.__touch()
+ except OSError, e:
+ if e.errno == errno.EPERM:
+ # We can't touch the file because we're not the owner. I
+ # don't see how we can own the lock if we're not the owner.
+ return 0
+ else:
+ raise
+ # TBD: can the link count ever be > 2?
+ if self.__linkcount() <> 2:
+ return 0
+ return self.__read() == self.__tmpfname
+
+ def finalize(self):
+ self.unlock(unconditionally=1)
+
+ def __del__(self):
+ if self.__owned:
+ self.finalize()
+
+ # Use these only if you're transfering ownership to a child process across
+ # a fork. Use at your own risk, but it should be race-condition safe.
+ # _transfer_to() is called in the parent, passing in the pid of the
+ # child. _take_possession() is called in the child, and blocks until the
+ # parent has transferred possession to the child. _disown() is used to
+ # set the __owned flag to 0, and it is a disgusting wart necessary to make
+ # forced lock acquisition work in mailmanctl. :(
+ def _transfer_to(self, pid):
+ # First touch it so it won't get broken while we're fiddling about.
+ self.__touch()
+ # Find out current claim's temp filename
+ winner = self.__read()
+ # Now twiddle ours to the given pid
+ self.__tmpfname = '%s.%s.%d' % (
+ self.__lockfile, socket.gethostname(), pid)
+ # Create a hard link from the global lock file to the temp file. This
+ # actually does things in reverse order of normal operation because we
+ # know that lockfile exists, and tmpfname better not!
+ os.link(self.__lockfile, self.__tmpfname)
+ # Now update the lock file to contain a reference to the new owner
+ self.__write()
+ # Toggle off our ownership of the file so we don't try to finalize it
+ # in our __del__()
+ self.__owned = 0
+ # Unlink the old winner, completing the transfer
+ os.unlink(winner)
+ # And do some sanity checks
+ assert self.__linkcount() == 2
+ assert self.locked()
+ self.__writelog('transferred the lock')
+
+ def _take_possession(self):
+ self.__tmpfname = tmpfname = '%s.%s.%d' % (
+ self.__lockfile, socket.gethostname(), os.getpid())
+ # Wait until the linkcount is 2, indicating the parent has completed
+ # the transfer.
+ while self.__linkcount() <> 2 or self.__read() <> tmpfname:
+ time.sleep(0.25)
+ self.__writelog('took possession of the lock')
+
+ def _disown(self):
+ self.__owned = 0
+
+ #
+ # Private interface
+ #
+
+ def __writelog(self, msg):
+ if self.__withlogging:
+ logf = _get_logfile()
+ logf.write('%s %s\n' % (self.__logprefix, msg))
+ traceback.print_stack(file=logf)
+
+ def __write(self):
+ # Make sure it's group writable
+ oldmask = os.umask(002)
+ try:
+ fp = open(self.__tmpfname, 'w')
+ fp.write(self.__tmpfname)
+ fp.close()
+ finally:
+ os.umask(oldmask)
+
+ def __read(self):
+ try:
+ fp = open(self.__lockfile)
+ filename = fp.read()
+ fp.close()
+ return filename
+ except EnvironmentError, e:
+ if e.errno <> errno.ENOENT: raise
+ return None
+
+ def __touch(self, filename=None):
+ t = time.time() + self.__lifetime
+ try:
+ # TBD: We probably don't need to modify atime, but this is easier.
+ os.utime(filename or self.__tmpfname, (t, t))
+ except OSError, e:
+ if e.errno <> errno.ENOENT: raise
+
+ def __releasetime(self):
+ try:
+ return os.stat(self.__lockfile)[ST_MTIME]
+ except OSError, e:
+ if e.errno <> errno.ENOENT: raise
+ return -1
+
+ def __linkcount(self):
+ try:
+ return os.stat(self.__lockfile)[ST_NLINK]
+ except OSError, e:
+ if e.errno <> errno.ENOENT: raise
+ return -1
+
+ def __break(self):
+ # First, touch the global lock file. This reduces but does not
+ # eliminate the chance for a race condition during breaking. Two
+ # processes could both pass the test for lock expiry in lock() before
+ # one of them gets to touch the global lockfile. This shouldn't be
+ # too bad because all they'll do in this function is wax the lock
+ # files, not claim the lock, and we can be defensive for ENOENTs
+ # here.
+ #
+ # Touching the lock could fail if the process breaking the lock and
+ # the process that claimed the lock have different owners. We could
+ # solve this by set-uid'ing the CGI and mail wrappers, but I don't
+ # think it's that big a problem.
+ try:
+ self.__touch(self.__lockfile)
+ except OSError, e:
+ if e.errno <> errno.EPERM: raise
+ # Get the name of the old winner's temp file.
+ winner = self.__read()
+ # Remove the global lockfile, which actually breaks the lock.
+ try:
+ os.unlink(self.__lockfile)
+ except OSError, e:
+ if e.errno <> errno.ENOENT: raise
+ # Try to remove the old winner's temp file, since we're assuming the
+ # winner process has hung or died. Don't worry too much if we can't
+ # unlink their temp file -- this doesn't wreck the locking algorithm,
+ # but will leave temp file turds laying around, a minor inconvenience.
+ try:
+ if winner:
+ os.unlink(winner)
+ except OSError, e:
+ if e.errno <> errno.ENOENT: raise
+
+ def __sleep(self):
+ interval = random.random() * 2.0 + 0.01
+ time.sleep(interval)
+
+
+
+# Unit test framework
+def _dochild():
+ prefix = '[%d]' % os.getpid()
+ # Create somewhere between 1 and 1000 locks
+ lockfile = LockFile('/tmp/LockTest', withlogging=1, lifetime=120)
+ # Use a lock lifetime of between 1 and 15 seconds. Under normal
+ # situations, Mailman's usage patterns (untested) shouldn't be much longer
+ # than this.
+ workinterval = 5 * random.random()
+ hitwait = 20 * random.random()
+ print prefix, 'workinterval:', workinterval
+ islocked = 0
+ t0 = 0
+ t1 = 0
+ t2 = 0
+ try:
+ try:
+ t0 = time.time()
+ print prefix, 'acquiring...'
+ lockfile.lock()
+ print prefix, 'acquired...'
+ islocked = 1
+ except TimeOutError:
+ print prefix, 'timed out'
+ else:
+ t1 = time.time()
+ print prefix, 'acquisition time:', t1-t0, 'seconds'
+ time.sleep(workinterval)
+ finally:
+ if islocked:
+ try:
+ lockfile.unlock()
+ t2 = time.time()
+ print prefix, 'lock hold time:', t2-t1, 'seconds'
+ except NotLockedError:
+ print prefix, 'lock was broken'
+ # wait for next web hit
+ print prefix, 'webhit sleep:', hitwait
+ time.sleep(hitwait)
+
+
+def _seed():
+ try:
+ fp = open('/dev/random')
+ d = fp.read(40)
+ fp.close()
+ except EnvironmentError, e:
+ if e.errno <> errno.ENOENT:
+ raise
+ import sha
+ d = sha.new(`os.getpid()`+`time.time()`).hexdigest()
+ random.seed(d)
+
+
+def _onetest():
+ loopcount = random.randint(1, 100)
+ for i in range(loopcount):
+ print 'Loop %d of %d' % (i+1, loopcount)
+ pid = os.fork()
+ if pid:
+ # parent, wait for child to exit
+ pid, status = os.waitpid(pid, 0)
+ else:
+ # child
+ _seed()
+ try:
+ _dochild()
+ except KeyboardInterrupt:
+ pass
+ os._exit(0)
+
+
+def _reap(kids):
+ if not kids:
+ return
+ pid, status = os.waitpid(-1, os.WNOHANG)
+ if pid <> 0:
+ del kids[pid]
+
+
+def _test(numtests):
+ kids = {}
+ for i in range(numtests):
+ pid = os.fork()
+ if pid:
+ # parent
+ kids[pid] = pid
+ else:
+ # child
+ _seed()
+ try:
+ _onetest()
+ except KeyboardInterrupt:
+ pass
+ os._exit(0)
+ # slightly randomize each kid's seed
+ while kids:
+ _reap(kids)
+
+
+if __name__ == '__main__':
+ import sys
+ import random
+ _test(int(sys.argv[1]))
diff --git a/Mailman/Logging/.cvsignore b/Mailman/Logging/.cvsignore
new file mode 100644
index 00000000..f3c7a7c5
--- /dev/null
+++ b/Mailman/Logging/.cvsignore
@@ -0,0 +1 @@
+Makefile
diff --git a/Mailman/Logging/Logger.py b/Mailman/Logging/Logger.py
new file mode 100644
index 00000000..0cb7c6af
--- /dev/null
+++ b/Mailman/Logging/Logger.py
@@ -0,0 +1,103 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""File-based logger, writes to named category files in mm_cfg.LOG_DIR."""
+
+import sys
+import os
+import codecs
+from types import StringType
+
+from Mailman import mm_cfg
+from Mailman.Logging.Utils import _logexc
+
+# Set this to the encoding to be used for your log file output. If set to
+# None, then it uses your system's default encoding. Otherwise, it must be an
+# encoding string appropriate for codecs.open().
+LOG_ENCODING = 'iso-8859-1'
+
+
+
+class Logger:
+ def __init__(self, category, nofail=1, immediate=0):
+ """nofail says to fallback to sys.__stderr__ if write fails to
+ category file - a complaint message is emitted, but no exception is
+ raised. Set nofail=0 if you want to handle the error in your code,
+ instead.
+
+ immediate=1 says to create the log file on instantiation.
+ Otherwise, the file is created only when there are writes pending.
+ """
+ self.__filename = os.path.join(mm_cfg.LOG_DIR, category)
+ self.__fp = None
+ self.__nofail = nofail
+ self.__encoding = LOG_ENCODING or sys.getdefaultencoding()
+ if immediate:
+ self.__get_f()
+
+ def __del__(self):
+ self.close()
+
+ def __repr__(self):
+ return '<%s to %s>' % (self.__class__.__name__, `self.__filename`)
+
+ def __get_f(self):
+ if self.__fp:
+ return self.__fp
+ else:
+ try:
+ ou = os.umask(002)
+ try:
+ try:
+ f = codecs.open(
+ self.__filename, 'a+', self.__encoding, 'replace',
+ 1)
+ except LookupError:
+ f = open(self.__filename, 'a+', 1)
+ self.__fp = f
+ finally:
+ os.umask(ou)
+ except IOError, e:
+ if self.__nofail:
+ _logexc(self, e)
+ f = self.__fp = sys.__stderr__
+ else:
+ raise
+ return f
+
+ def flush(self):
+ f = self.__get_f()
+ if hasattr(f, 'flush'):
+ f.flush()
+
+ def write(self, msg):
+ if isinstance(msg, StringType):
+ msg = unicode(msg, self.__encoding)
+ f = self.__get_f()
+ try:
+ f.write(msg)
+ except IOError, msg:
+ _logexc(self, msg)
+
+ def writelines(self, lines):
+ for l in lines:
+ self.write(l)
+
+ def close(self):
+ if not self.__fp:
+ return
+ self.__get_f().close()
+ self.__fp = None
diff --git a/Mailman/Logging/Makefile.in b/Mailman/Logging/Makefile.in
new file mode 100644
index 00000000..407f39a9
--- /dev/null
+++ b/Mailman/Logging/Makefile.in
@@ -0,0 +1,69 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# NOTE: Makefile.in is converted into Makefile by the configure script
+# in the parent directory. Once configure has run, you can recreate
+# the Makefile by running just config.status.
+
+# Variables set by configure
+
+VPATH= @srcdir@
+srcdir= @srcdir@
+bindir= @bindir@
+prefix= @prefix@
+exec_prefix= @exec_prefix@
+
+CC= @CC@
+CHMOD= @CHMOD@
+INSTALL= @INSTALL@
+
+DEFS= @DEFS@
+
+# Customizable but not set by configure
+
+OPT= @OPT@
+CFLAGS= $(OPT) $(DEFS)
+PACKAGEDIR= $(prefix)/Mailman/Logging
+SHELL= /bin/sh
+
+MODULES= *.py
+
+# Modes for directories and executables created by the install
+# process. Default to group-writable directories but
+# user-only-writable for executables.
+DIRMODE= 775
+EXEMODE= 755
+FILEMODE= 644
+INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
+
+
+# Rules
+
+all:
+
+install:
+ for f in $(MODULES); \
+ do \
+ $(INSTALL) -m $(FILEMODE) $(srcdir)/$$f $(PACKAGEDIR); \
+ done
+
+finish:
+
+clean:
+
+distclean:
+ -rm *.pyc
+ -rm Makefile
diff --git a/Mailman/Logging/MultiLogger.py b/Mailman/Logging/MultiLogger.py
new file mode 100644
index 00000000..3ff11d27
--- /dev/null
+++ b/Mailman/Logging/MultiLogger.py
@@ -0,0 +1,76 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""A mutiple sink logger. Any message written goes to all sub-loggers."""
+
+import sys
+from Mailman.Logging.Utils import _logexc
+
+
+
+class MultiLogger:
+ def __init__(self, *args):
+ self.__loggers = []
+ for logger in args:
+ self.__loggers.append(logger)
+
+ def add_logger(self, logger):
+ if logger not in self.__loggers:
+ self.__loggers.append(logger)
+
+ def del_logger(self, logger):
+ if logger in self.__loggers:
+ self.__loggers.remove(logger)
+
+ def write(self, msg):
+ for logger in self.__loggers:
+ # you want to be sure that a bug in one logger doesn't prevent
+ # logging to all the other loggers
+ try:
+ logger.write(msg)
+ except:
+ _logexc(logger, msg)
+
+ def writelines(self, lines):
+ for line in lines:
+ self.write(line)
+
+ def flush(self):
+ for logger in self.__loggers:
+ if hasattr(logger, 'flush'):
+ # you want to be sure that a bug in one logger doesn't prevent
+ # logging to all the other loggers
+ try:
+ logger.flush()
+ except:
+ _logexc(logger)
+
+ def close(self):
+ for logger in self.__loggers:
+ # you want to be sure that a bug in one logger doesn't prevent
+ # logging to all the other loggers
+ try:
+ if logger <> sys.__stderr__ and logger <> sys.__stdout__:
+ logger.close()
+ except:
+ _logexc(logger)
+
+ def reprime(self):
+ for logger in self.__loggers:
+ try:
+ logger.reprime()
+ except AttributeError:
+ pass
diff --git a/Mailman/Logging/StampedLogger.py b/Mailman/Logging/StampedLogger.py
new file mode 100644
index 00000000..370f1af8
--- /dev/null
+++ b/Mailman/Logging/StampedLogger.py
@@ -0,0 +1,89 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+import os
+import time
+
+from Mailman.Logging.Logger import Logger
+
+
+
+class StampedLogger(Logger):
+ """Record messages in log files, including date stamp and optional label.
+
+ If manual_reprime is on (off by default), then timestamp prefix will
+ included only on first .write() and on any write immediately following a
+ call to the .reprime() method. This is useful for when StampedLogger is
+ substituting for sys.stderr, where you'd like to see the grouping of
+ multiple writes under a single timestamp (and there is often is one group,
+ for uncaught exceptions where a script is bombing).
+
+ In any case, the identifying prefix will only follow writes that start on
+ a new line.
+
+ Nofail (by default) says to fallback to sys.stderr if write fails to
+ category file. A message is emitted, but the IOError is caught.
+ Initialize with nofail=0 if you want to handle the error in your code,
+ instead.
+
+ """
+ def __init__(self, category, label=None, manual_reprime=0, nofail=1,
+ immediate=1):
+ """If specified, optional label is included after timestamp.
+ Other options are passed to the Logger class initializer.
+ """
+ self.__label = label
+ self.__manual_reprime = manual_reprime
+ self.__primed = 1
+ self.__bol = 1
+ Logger.__init__(self, category, nofail, immediate)
+
+ def reprime(self):
+ """Reset so timestamp will be included with next write."""
+ self.__primed = 1
+
+ def write(self, msg):
+ if not self.__bol:
+ prefix = ""
+ else:
+ if not self.__manual_reprime or self.__primed:
+ stamp = time.strftime("%b %d %H:%M:%S %Y ",
+ time.localtime(time.time()))
+ self.__primed = 0
+ else:
+ stamp = ""
+ if self.__label is None:
+ label = "(%d)" % os.getpid()
+ else:
+ label = "%s(%d):" % (self.__label, os.getpid())
+ prefix = stamp + label
+ Logger.write(self, "%s %s" % (prefix, msg))
+ if msg and msg[-1] == '\n':
+ self.__bol = 1
+ else:
+ self.__bol = 0
+
+ def writelines(self, lines):
+ first = 1
+ for l in lines:
+ if first:
+ self.write(l)
+ first = 0
+ else:
+ if l and l[0] not in [' ', '\t', '\n']:
+ Logger.write(self, ' ' + l)
+ else:
+ Logger.write(self, l)
diff --git a/Mailman/Logging/Syslog.py b/Mailman/Logging/Syslog.py
new file mode 100644
index 00000000..3e8d557d
--- /dev/null
+++ b/Mailman/Logging/Syslog.py
@@ -0,0 +1,69 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Central logging class for the Mailman system.
+
+This might eventually be replaced by a syslog based logger, hence the name.
+"""
+
+from Mailman.Logging.StampedLogger import StampedLogger
+
+
+
+# Global, shared logger instance. All clients should use this object.
+syslog = None
+
+
+
+# Don't instantiate except below.
+class _Syslog:
+ def __init__(self):
+ self._logfiles = {}
+
+ def __del__(self):
+ self.close()
+
+ def write(self, kind, msg, *args, **kws):
+ self.write_ex(kind, msg, args, kws)
+
+ # We need this because SMTPDirect tries to pass in a special dict-like
+ # object, which is not a concrete dictionary. This is not allowed by
+ # Python's extended call syntax. :(
+ def write_ex(self, kind, msg, args=None, kws=None):
+ origmsg = msg
+ logf = self._logfiles.get(kind)
+ if not logf:
+ logf = self._logfiles[kind] = StampedLogger(kind)
+ try:
+ if args:
+ msg %= args
+ if kws:
+ msg %= kws
+ # It's really bad if exceptions in the syslogger cause other crashes
+ except Exception, e:
+ msg = 'Bad format "%s": %s: %s' % (origmsg, repr(e), e)
+ logf.write(msg + '\n')
+
+ # For the ultimate in convenience
+ __call__ = write
+
+ def close(self):
+ for kind, logger in self._logfiles.items():
+ logger.close()
+ self._logfiles.clear()
+
+
+syslog = _Syslog()
diff --git a/Mailman/Logging/Utils.py b/Mailman/Logging/Utils.py
new file mode 100644
index 00000000..ef119fb0
--- /dev/null
+++ b/Mailman/Logging/Utils.py
@@ -0,0 +1,52 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+import sys
+import traceback
+
+
+def _logexc(logger=None, msg=''):
+ sys.__stderr__.write('Logging error: %s\n' % logger)
+ traceback.print_exc(file=sys.__stderr__)
+ sys.__stderr__.write('Original log message:\n%s\n' % msg)
+
+
+def LogStdErr(category, label, manual_reprime=1, tee_to_real_stderr=1):
+ """Establish a StampedLogger on sys.stderr if possible.
+
+ If tee_to_real_stderr is true, then the real standard error also gets
+ output, via a MultiLogger.
+
+ Returns the MultiLogger if successful, None otherwise.
+ """
+ from StampedLogger import StampedLogger
+ from MultiLogger import MultiLogger
+ try:
+ logger = StampedLogger(category,
+ label=label,
+ manual_reprime=manual_reprime,
+ nofail=0)
+ if tee_to_real_stderr:
+ if hasattr(sys, '__stderr__'):
+ stderr = sys.__stderr__
+ else:
+ stderr = sys.stderr
+ logger = MultiLogger(stderr, logger)
+ sys.stderr = logger
+ return sys.stderr
+ except IOError:
+ return None
+
diff --git a/Mailman/Logging/__init__.py b/Mailman/Logging/__init__.py
new file mode 100644
index 00000000..2cbbabb1
--- /dev/null
+++ b/Mailman/Logging/__init__.py
@@ -0,0 +1,15 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
diff --git a/Mailman/MTA/.cvsignore b/Mailman/MTA/.cvsignore
new file mode 100644
index 00000000..f3c7a7c5
--- /dev/null
+++ b/Mailman/MTA/.cvsignore
@@ -0,0 +1 @@
+Makefile
diff --git a/Mailman/MTA/Makefile.in b/Mailman/MTA/Makefile.in
new file mode 100644
index 00000000..42a6fcc5
--- /dev/null
+++ b/Mailman/MTA/Makefile.in
@@ -0,0 +1,69 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# NOTE: Makefile.in is converted into Makefile by the configure script
+# in the parent directory. Once configure has run, you can recreate
+# the Makefile by running just config.status.
+
+# Variables set by configure
+
+VPATH= @srcdir@
+srcdir= @srcdir@
+bindir= @bindir@
+prefix= @prefix@
+exec_prefix= @exec_prefix@
+
+CC= @CC@
+CHMOD= @CHMOD@
+INSTALL= @INSTALL@
+
+DEFS= @DEFS@
+
+# Customizable but not set by configure
+
+OPT= @OPT@
+CFLAGS= $(OPT) $(DEFS)
+PACKAGEDIR= $(prefix)/Mailman/MTA
+SHELL= /bin/sh
+
+MODULES= *.py
+
+# Modes for directories and executables created by the install
+# process. Default to group-writable directories but
+# user-only-writable for executables.
+DIRMODE= 775
+EXEMODE= 755
+FILEMODE= 644
+INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
+
+
+# Rules
+
+all:
+
+install:
+ for f in $(MODULES); \
+ do \
+ $(INSTALL) -m $(FILEMODE) $(srcdir)/$$f $(PACKAGEDIR); \
+ done
+
+finish:
+
+clean:
+
+distclean:
+ -rm *.pyc
+ -rm Makefile
diff --git a/Mailman/MTA/Manual.py b/Mailman/MTA/Manual.py
new file mode 100644
index 00000000..dd9127cc
--- /dev/null
+++ b/Mailman/MTA/Manual.py
@@ -0,0 +1,135 @@
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Creation/deletion hooks for manual /etc/aliases files."""
+
+import sys
+from cStringIO import StringIO
+
+from Mailman import mm_cfg
+from Mailman import Message
+from Mailman import Utils
+from Mailman.Queue.sbcache import get_switchboard
+from Mailman.i18n import _
+from Mailman.MTA.Utils import makealiases
+
+
+
+# no-ops for interface compliance
+def makelock():
+ class Dummy:
+ def lock(self):
+ pass
+ def unlock(self, unconditionally=0):
+ pass
+ return Dummy()
+
+
+def clear():
+ pass
+
+
+
+# nolock argument is ignored, but exists for interface compliance
+def create(mlist, cgi=0, nolock=0):
+ if mlist is None:
+ return
+ listname = mlist.internal_name()
+ fieldsz = len(listname) + len('-unsubscribe')
+ if cgi:
+ # If a list is being created via the CGI, the best we can do is send
+ # an email message to mailman-owner requesting that the proper aliases
+ # be installed.
+ sfp = StringIO()
+ print >> sfp, _("""\
+The mailing list `%(listname)s' has been created via the through-the-web
+interface. In order to complete the activation of this mailing list, the
+proper /etc/aliases (or equivalent) file must be updated. The program
+`newaliases' may also have to be run.
+
+Here are the entries for the /etc/aliases file:
+""")
+ outfp = sfp
+ else:
+ print _("""
+To finish creating your mailing list, you must edit your /etc/aliases (or
+equivalent) file by adding the following lines, and possibly running the
+`newaliases' program:
+
+## %(listname)s mailing list""")
+ outfp = sys.stdout
+ # Common path
+ for k, v in makealiases(listname):
+ print >> outfp, k + ':', ((fieldsz - len(k)) * ' '), v
+ # If we're using the command line interface, we're done. For ttw, we need
+ # to actually send the message to mailman-owner now.
+ if not cgi:
+ print >> outfp
+ return
+ # Send the message to the site -owner so someone can do something about
+ # this request.
+ siteowner = Utils.get_site_email(extra='owner')
+ # Should this be sent in the site list's preferred language?
+ msg = Message.UserNotification(
+ siteowner, siteowner,
+ _('Mailing list creation request for list %(listname)s'),
+ sfp.getvalue(), mm_cfg.DEFAULT_SERVER_LANGUAGE)
+ outq = get_switchboard(mm_cfg.OUTQUEUE_DIR)
+ outq.enqueue(msg, recips=[siteowner])
+
+
+
+def remove(mlist, cgi=0):
+ listname = mlist.internal_name()
+ fieldsz = len(listname) + len('-unsubscribe')
+ if cgi:
+ # If a list is being removed via the CGI, the best we can do is send
+ # an email message to mailman-owner requesting that the appropriate
+ # aliases be deleted.
+ sfp = StringIO()
+ print >> sfp, _("""\
+The mailing list `%(listname)s' has been removed via the through-the-web
+interface. In order to complete the de-activation of this mailing list, the
+appropriate /etc/aliases (or equivalent) file must be updated. The program
+`newaliases' may also have to be run.
+
+Here are the entries in the /etc/aliases file that should be removed:
+""")
+ outfp = sfp
+ else:
+ print _("""
+To finish removing your mailing list, you must edit your /etc/aliases (or
+equivalent) file by removing the following lines, and possibly running the
+`newaliases' program:
+
+## %(listname)s mailing list""")
+ outfp = sys.stdout
+ # Common path
+ for k, v in makealiases(listname):
+ print >> outfp, k + ':', ((fieldsz - len(k)) * ' '), v
+ # If we're using the command line interface, we're done. For ttw, we need
+ # to actually send the message to mailman-owner now.
+ if not cgi:
+ print >> outfp
+ return
+ siteowner = Utils.get_site_email(extra='owner')
+ # Should this be sent in the site list's preferred language?
+ msg = Message.UserNotification(
+ siteowner, siteowner,
+ _('Mailing list removal request for list %(listname)s'),
+ sfp.getvalue(), mm_cfg.DEFAULT_SERVER_LANGUAGE)
+ outq = get_switchboard(mm_cfg.OUTQUEUE_DIR)
+ outq.enqueue(msg, recips=[siteowner])
diff --git a/Mailman/MTA/Postfix.py b/Mailman/MTA/Postfix.py
new file mode 100644
index 00000000..24c1c7e5
--- /dev/null
+++ b/Mailman/MTA/Postfix.py
@@ -0,0 +1,344 @@
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Creation/deletion hooks for the Postfix MTA.
+"""
+
+import os
+import time
+import errno
+import pwd
+import grp
+from stat import *
+
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman import LockFile
+from Mailman.i18n import _
+from Mailman.MTA.Utils import makealiases
+from Mailman.Logging.Syslog import syslog
+
+LOCKFILE = os.path.join(mm_cfg.LOCK_DIR, 'creator')
+ALIASFILE = os.path.join(mm_cfg.DATA_DIR, 'aliases')
+VIRTFILE = os.path.join(mm_cfg.DATA_DIR, 'virtual-mailman')
+
+
+
+def _update_maps():
+ msg = 'command failed: %s (status: %s, %s)'
+ acmd = mm_cfg.POSTFIX_ALIAS_CMD + ' ' + ALIASFILE
+ status = (os.system(acmd) >> 8) & 0xff
+ if status:
+ errstr = os.strerror(status)
+ syslog('error', msg, acmd, status, errstr)
+ raise RuntimeError, msg % (acmd, status, errstr)
+ if os.path.exists(VIRTFILE):
+ vcmd = mm_cfg.POSTFIX_MAP_CMD + ' ' + VIRTFILE
+ status = (os.system(vcmd) >> 8) & 0xff
+ if status:
+ errstr = os.strerror(status)
+ syslog('error', msg, vcmd, status, errstr)
+ raise RuntimeError, msg % (vcmd, status, errstr)
+
+
+
+def makelock():
+ return LockFile.LockFile(LOCKFILE)
+
+
+def _zapfile(filename):
+ # Truncate the file w/o messing with the file permissions, but only if it
+ # already exists.
+ if os.path.exists(filename):
+ fp = open(filename, 'w')
+ fp.close()
+
+
+def clear():
+ _zapfile(ALIASFILE)
+ _zapfile(VIRTFILE)
+
+
+
+def _addlist(mlist, fp):
+ # Set up the mailman-loop address
+ loopaddr = Utils.ParseEmail(Utils.get_site_email(extra='loop'))[0]
+ loopmbox = os.path.join(mm_cfg.DATA_DIR, 'owner-bounces.mbox')
+ # Seek to the end of the text file, but if it's empty write the standard
+ # disclaimer, and the loop catch address.
+ fp.seek(0, 2)
+ if not fp.tell():
+ print >> fp, """\
+# This file is generated by Mailman, and is kept in sync with the
+# binary hash file aliases.db. YOU SHOULD NOT MANUALLY EDIT THIS FILE
+# unless you know what you're doing, and can keep the two files properly
+# in sync. If you screw it up, you're on your own.
+"""
+ print >> fp, '# The ultimate loop stopper address'
+ print >> fp, '%s: %s' % (loopaddr, loopmbox)
+ print >> fp
+ # Bootstrapping. bin/genaliases must be run before any lists are created,
+ # but if no lists exist yet then mlist is None. The whole point of the
+ # exercise is to get the minimal aliases.db file into existance.
+ if mlist is None:
+ return
+ listname = mlist.internal_name()
+ fieldsz = len(listname) + len('-unsubscribe')
+ # The text file entries get a little extra info
+ print >> fp, '# STANZA START:', listname
+ print >> fp, '# CREATED:', time.ctime(time.time())
+ # Now add all the standard alias entries
+ for k, v in makealiases(listname):
+ # Format the text file nicely
+ print >> fp, k + ':', ((fieldsz - len(k)) * ' ') + v
+ # Finish the text file stanza
+ print >> fp, '# STANZA END:', listname
+ print >> fp
+
+
+
+def _addvirtual(mlist, fp):
+ listname = mlist.internal_name()
+ fieldsz = len(listname) + len('-unsubscribe')
+ hostname = mlist.host_name
+ # Set up the mailman-loop address
+ loopaddr = Utils.get_site_email(mlist.host_name, extra='loop')
+ loopdest = Utils.ParseEmail(loopaddr)[0]
+ # Seek to the end of the text file, but if it's empty write the standard
+ # disclaimer, and the loop catch address.
+ fp.seek(0, 2)
+ if not fp.tell():
+ print >> fp, """\
+# This file is generated by Mailman, and is kept in sync with the binary hash
+# file virtual-mailman.db. YOU SHOULD NOT MANUALLY EDIT THIS FILE unless you
+# know what you're doing, and can keep the two files properly in sync. If you
+# screw it up, you're on your own.
+#
+# Note that you should already have this virtual domain set up properly in
+# your Postfix installation. See README.POSTFIX for details.
+
+# LOOP ADDRESSES START
+%s\t%s
+# LOOP ADDRESSES END
+""" % (loopaddr, loopdest)
+ # The text file entries get a little extra info
+ print >> fp, '# STANZA START:', listname
+ print >> fp, '# CREATED:', time.ctime(time.time())
+ # Now add all the standard alias entries
+ for k, v in makealiases(listname):
+ fqdnaddr = '%s@%s' % (k, hostname)
+ # Format the text file nicely
+ print >> fp, fqdnaddr, ((fieldsz - len(k)) * ' '), k
+ # Finish the text file stanza
+ print >> fp, '# STANZA END:', listname
+ print >> fp
+
+
+
+# Blech.
+def _check_for_virtual_loopaddr(mlist, filename):
+ loopaddr = Utils.get_site_email(mlist.host_name, extra='loop')
+ loopdest = Utils.ParseEmail(loopaddr)[0]
+ infp = open(filename)
+ omask = os.umask(007)
+ try:
+ outfp = open(filename + '.tmp', 'w')
+ finally:
+ os.umask(omask)
+ try:
+ # Find the start of the loop address block
+ while 1:
+ line = infp.readline()
+ if not line:
+ break
+ outfp.write(line)
+ if line.startswith('# LOOP ADDRESSES START'):
+ break
+ # Now see if our domain has already been written
+ while 1:
+ line = infp.readline()
+ if not line:
+ break
+ if line.startswith('# LOOP ADDRESSES END'):
+ # It hasn't
+ print >> outfp, '%s\t%s' % (loopaddr, loopdest)
+ outfp.write(line)
+ break
+ elif line.startswith(loopaddr):
+ # We just found it
+ outfp.write(line)
+ break
+ else:
+ # This isn't our loop address, so spit it out and continue
+ outfp.write(line)
+ outfp.writelines(infp.readlines())
+ finally:
+ infp.close()
+ outfp.close()
+ os.rename(filename + '.tmp', filename)
+
+
+
+def _do_create(mlist, textfile, func):
+ # Crack open the plain text file
+ try:
+ fp = open(textfile, 'r+')
+ except IOError, e:
+ if e.errno <> errno.ENOENT: raise
+ omask = os.umask(007)
+ try:
+ fp = open(textfile, 'w+')
+ finally:
+ os.umask(omask)
+ try:
+ func(mlist, fp)
+ finally:
+ fp.close()
+ # Now double check the virtual plain text file
+ if func is _addvirtual:
+ _check_for_virtual_loopaddr(mlist, textfile)
+
+
+def create(mlist, cgi=0, nolock=0):
+ # Acquire the global list database lock
+ lock = None
+ if not nolock:
+ lock = makelock()
+ lock.lock()
+ # Do the aliases file, which need to be done in any case
+ try:
+ _do_create(mlist, ALIASFILE, _addlist)
+ if mlist and mlist.host_name in mm_cfg.POSTFIX_STYLE_VIRTUAL_DOMAINS:
+ _do_create(mlist, VIRTFILE, _addvirtual)
+ _update_maps()
+ finally:
+ if lock:
+ lock.unlock(unconditionally=1)
+
+
+
+def _do_remove(mlist, textfile, virtualp):
+ listname = mlist.internal_name()
+ # Now do our best to filter out the proper stanza from the text file.
+ # The text file better exist!
+ outfp = None
+ try:
+ infp = open(textfile)
+ except IOError, e:
+ if e.errno <> errno.ENOENT: raise
+ # Otherwise, there's no text file to filter so we're done.
+ return
+ try:
+ omask = os.umask(007)
+ try:
+ outfp = open(textfile + '.tmp', 'w')
+ finally:
+ os.umask(omask)
+ filteroutp = 0
+ start = '# STANZA START: ' + listname
+ end = '# STANZA END: ' + listname
+ while 1:
+ line = infp.readline()
+ if not line:
+ break
+ # If we're filtering out a stanza, just look for the end marker and
+ # filter out everything in between. If we're not in the middle of
+ # filtering out a stanza, we're just looking for the proper begin
+ # marker.
+ if filteroutp:
+ if line.startswith(end):
+ filteroutp = 0
+ # Discard the trailing blank line, but don't worry if
+ # we're at the end of the file.
+ infp.readline()
+ # Otherwise, ignore the line
+ else:
+ if line.startswith(start):
+ # Filter out this stanza
+ filteroutp = 1
+ else:
+ outfp.write(line)
+ # Close up shop, and rotate the files
+ finally:
+ infp.close()
+ outfp.close()
+ os.rename(textfile+'.tmp', textfile)
+
+
+def remove(mlist, cgi=0):
+ # Acquire the global list database lock
+ lock = makelock()
+ lock.lock()
+ try:
+ _do_remove(mlist, ALIASFILE, 0)
+ if mlist.host_name in mm_cfg.POSTFIX_STYLE_VIRTUAL_DOMAINS:
+ _do_remove(mlist, VIRTFILE, 1)
+ # Regenerate the alias and map files
+ _update_maps()
+ finally:
+ lock.unlock(unconditionally=1)
+
+
+
+def checkperms(state):
+ targetmode = S_IFREG | S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP
+ for file in ALIASFILE, VIRTFILE:
+ if state.VERBOSE:
+ print _('checking permissions on %(file)s')
+ stat = None
+ try:
+ stat = os.stat(file)
+ except OSError, e:
+ if e.errno <> errno.ENOENT:
+ raise
+ if stat and (stat[ST_MODE] & targetmode) <> targetmode:
+ state.ERRORS += 1
+ octmode = oct(stat[ST_MODE])
+ print _('%(file)s permissions must be 066x (got %(octmode)s)'),
+ if state.FIX:
+ print _('(fixing)')
+ os.chmod(file, stat[ST_MODE] | targetmode)
+ else:
+ print
+ # Make sure the corresponding .db files are owned by the Mailman user.
+ # We don't need to check the group ownership of the file, since
+ # check_perms checks this itself.
+ dbfile = file + '.db'
+ stat = None
+ try:
+ stat = os.stat(dbfile)
+ except OSError, e:
+ if e.errno <> errno.ENOENT:
+ raise
+ continue
+ if state.VERBOSE:
+ print _('checking ownership of %(dbfile)s')
+ user = mm_cfg.MAILMAN_USER
+ ownerok = stat[ST_UID] == pwd.getpwnam(user)[2]
+ if not ownerok:
+ try:
+ owner = pwd.getpwuid(stat[ST_UID])[0]
+ except KeyError:
+ owner = 'uid %d' % stat[ST_UID]
+ print _('%(dbfile)s owned by %(owner)s (must be owned by %(user)s')
+ state.ERRORS += 1
+ if state.FIX:
+ print _('(fixing)')
+ uid = pwd.getpwnam(user)[2]
+ gid = grp.getgrnam(mm_cfg.MAILMAN_GROUP)[2]
+ os.chown(dbfile, uid, gid)
+ else:
+ print
diff --git a/Mailman/MTA/Utils.py b/Mailman/MTA/Utils.py
new file mode 100644
index 00000000..f55a1ed3
--- /dev/null
+++ b/Mailman/MTA/Utils.py
@@ -0,0 +1,79 @@
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Utilities for list creation/deletion hooks."""
+
+import os
+import pwd
+
+from Mailman import mm_cfg
+
+
+
+def getusername():
+ username = os.environ.get('USER') or os.environ.get('LOGNAME')
+ if not username:
+ import pwd
+ username = pwd.getpwuid(os.getuid())[0]
+ if not username:
+ username = '<unknown>'
+ return username
+
+
+
+def _makealiases_mailprog(listname):
+ wrapper = os.path.join(mm_cfg.WRAPPER_DIR, 'mailman')
+ # Most of the list alias extensions are quite regular. I.e. if the
+ # message is delivered to listname-foobar, it will be filtered to a
+ # program called foobar. There are two exceptions:
+ #
+ # 1) Messages to listname (no extension) go to the post script.
+ # 2) Messages to listname-admin go to the bounces script. This is for
+ # backwards compatibility and may eventually go away (we really have no
+ # need for the -admin address anymore).
+ #
+ # Seed this with the special cases.
+ aliases = [(listname, '"|%s post %s"' % (wrapper, listname)),
+ ]
+ for ext in ('admin', 'bounces', 'confirm', 'join', 'leave', 'owner',
+ 'request', 'subscribe', 'unsubscribe'):
+ aliases.append(('%s-%s' % (listname, ext),
+ '"|%s %s %s"' % (wrapper, ext, listname)))
+ return aliases
+
+
+
+def _makealiases_maildir(listname):
+ maildir = mm_cfg.MAILDIR_DIR
+ if not maildir.endswith('/'):
+ maildir += '/'
+ # Deliver everything using maildir style. This way there's no mail
+ # program, no forking and no wrapper necessary!
+ #
+ # Note, don't use this unless your MTA leaves the envelope recipient in
+ # Delivered-To:, Envelope-To:, or Apparently-To:
+ aliases = [(listname, maildir)]
+ for ext in ('admin', 'bounces', 'confirm', 'join', 'leave', 'owner',
+ 'request', 'subscribe', 'unsubscribe'):
+ aliases.append(('%s-%s' % (listname, ext), maildir))
+ return aliases
+
+
+
+if mm_cfg.USE_MAILDIR:
+ makealiases = _makealiases_maildir
+else:
+ makealiases = _makealiases_mailprog
diff --git a/Mailman/MTA/__init__.py b/Mailman/MTA/__init__.py
new file mode 100644
index 00000000..55cd5826
--- /dev/null
+++ b/Mailman/MTA/__init__.py
@@ -0,0 +1,15 @@
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
diff --git a/Mailman/MailList.py b/Mailman/MailList.py
new file mode 100644
index 00000000..8cffef8c
--- /dev/null
+++ b/Mailman/MailList.py
@@ -0,0 +1,1346 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+
+"""The class representing a Mailman mailing list.
+
+Mixes in many task-specific classes.
+"""
+
+import sys
+import os
+import time
+import marshal
+import errno
+import re
+import shutil
+import socket
+import urllib
+import cPickle
+
+from cStringIO import StringIO
+from UserDict import UserDict
+from urlparse import urlparse
+from types import *
+
+import email.Iterators
+from email.Utils import getaddresses, formataddr, parseaddr
+
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman import Errors
+from Mailman import LockFile
+from Mailman.UserDesc import UserDesc
+
+# base classes
+from Mailman.Archiver import Archiver
+from Mailman.Autoresponder import Autoresponder
+from Mailman.Bouncer import Bouncer
+from Mailman.Deliverer import Deliverer
+from Mailman.Digester import Digester
+from Mailman.GatewayManager import GatewayManager
+from Mailman.HTMLFormatter import HTMLFormatter
+from Mailman.ListAdmin import ListAdmin
+from Mailman.SecurityManager import SecurityManager
+from Mailman.TopicMgr import TopicMgr
+
+# gui components package
+from Mailman import Gui
+
+# other useful classes
+from Mailman import MemberAdaptor
+from Mailman.OldStyleMemberships import OldStyleMemberships
+from Mailman import Message
+from Mailman import Pending
+from Mailman import Site
+from Mailman.i18n import _
+from Mailman.Logging.Syslog import syslog
+
+EMPTYSTRING = ''
+
+
+
+# Use mixins here just to avoid having any one chunk be too large.
+class MailList(HTMLFormatter, Deliverer, ListAdmin,
+ Archiver, Digester, SecurityManager, Bouncer, GatewayManager,
+ Autoresponder, TopicMgr):
+
+ #
+ # A MailList object's basic Python object model support
+ #
+ def __init__(self, name=None, lock=1):
+ # No timeout by default. If you want to timeout, open the list
+ # unlocked, then lock explicitly.
+ #
+ # Only one level of mixin inheritance allowed
+ for baseclass in self.__class__.__bases__:
+ if hasattr(baseclass, '__init__'):
+ baseclass.__init__(self)
+ # Initialize volatile attributes
+ self.InitTempVars(name)
+ # Default membership adaptor class
+ self._memberadaptor = OldStyleMemberships(self)
+ if name:
+ if lock:
+ # This will load the database.
+ self.Lock()
+ else:
+ self.Load()
+ # This extension mechanism allows list-specific overrides of any
+ # method (well, except __init__(), InitTempVars(), and InitVars()
+ # I think).
+ filename = os.path.join(self.fullpath(), 'extend.py')
+ dict = {}
+ try:
+ execfile(filename, dict)
+ except IOError, e:
+ if e.errno <> errno.ENOENT: raise
+ else:
+ func = dict.get('extend')
+ if func:
+ func(self)
+
+ def __getattr__(self, name):
+ # Because we're using delegation, we want to be sure that attribute
+ # access to a delegated member function gets passed to the
+ # sub-objects. This of course imposes a specific name resolution
+ # order.
+ try:
+ return getattr(self._memberadaptor, name)
+ except AttributeError:
+ for guicomponent in self._gui:
+ try:
+ return getattr(guicomponent, name)
+ except AttributeError:
+ pass
+ else:
+ raise AttributeError, name
+
+ def __repr__(self):
+ if self.Locked():
+ status = '(locked)'
+ else:
+ status = '(unlocked)'
+ return '<mailing list "%s" %s at %x>' % (
+ self.internal_name(), status, id(self))
+
+
+ #
+ # Lock management
+ #
+ def Lock(self, timeout=0):
+ self.__lock.lock(timeout)
+ # Must reload our database for consistency. Watch out for lists that
+ # don't exist.
+ try:
+ self.Load()
+ except Exception:
+ self.Unlock()
+ raise
+
+ def Unlock(self):
+ self.__lock.unlock(unconditionally=1)
+
+ def Locked(self):
+ return self.__lock.locked()
+
+
+
+ #
+ # Useful accessors
+ #
+ def internal_name(self):
+ return self._internal_name
+
+ def fullpath(self):
+ return self._full_path
+
+ def getListAddress(self, extra=None):
+ if extra is None:
+ return '%s@%s' % (self.internal_name(), self.host_name)
+ return '%s-%s@%s' % (self.internal_name(), extra, self.host_name)
+
+ # For backwards compatibility
+ def GetBouncesEmail(self):
+ return self.getListAddress('bounces')
+
+ def GetOwnerEmail(self):
+ return self.getListAddress('owner')
+
+ def GetRequestEmail(self):
+ return self.getListAddress('request')
+
+ def GetConfirmEmail(self, cookie):
+ return mm_cfg.VERP_CONFIRM_FORMAT % {
+ 'addr' : '%s-confirm' % self.internal_name(),
+ 'cookie': cookie,
+ } + '@' + self.host_name
+
+ def GetListEmail(self):
+ return self.getListAddress()
+
+ def GetMemberAdminEmail(self, member):
+ """Usually the member addr, but modified for umbrella lists.
+
+ Umbrella lists have other mailing lists as members, and so admin stuff
+ like confirmation requests and passwords must not be sent to the
+ member addresses - the sublists - but rather to the administrators of
+ the sublists. This routine picks the right address, considering
+ regular member address to be their own administrative addresses.
+
+ """
+ if not self.umbrella_list:
+ return member
+ else:
+ acct, host = tuple(member.split('@'))
+ return "%s%s@%s" % (acct, self.umbrella_member_suffix, host)
+
+ def GetScriptURL(self, scriptname, absolute=0):
+ return Utils.ScriptURL(scriptname, self.web_page_url, absolute) + \
+ '/' + self.internal_name()
+
+ def GetOptionsURL(self, user, obscure=0, absolute=0):
+ url = self.GetScriptURL('options', absolute)
+ if obscure:
+ user = Utils.ObscureEmail(user)
+ return '%s/%s' % (url, urllib.quote(user.lower()))
+
+
+ #
+ # Instance and subcomponent initialization
+ #
+ def InitTempVars(self, name):
+ """Set transient variables of this and inherited classes."""
+ # The timestamp is set whenever we load the state from disk. If our
+ # timestamp is newer than the modtime of the config.pck file, we don't
+ # need to reload, otherwise... we do.
+ self.__timestamp = 0
+ self.__lock = LockFile.LockFile(
+ os.path.join(mm_cfg.LOCK_DIR, name or '<site>') + '.lock',
+ # TBD: is this a good choice of lifetime?
+ lifetime = mm_cfg.LIST_LOCK_LIFETIME,
+ withlogging = mm_cfg.LIST_LOCK_DEBUGGING)
+ self._internal_name = name
+ if name:
+ self._full_path = Site.get_listpath(name)
+ else:
+ self._full_path = None
+ # Only one level of mixin inheritance allowed
+ for baseclass in self.__class__.__bases__:
+ if hasattr(baseclass, 'InitTempVars'):
+ baseclass.InitTempVars(self)
+ # Now, initialize our gui components
+ self._gui = []
+ for component in dir(Gui):
+ if component.startswith('_'):
+ continue
+ self._gui.append(getattr(Gui, component)())
+
+ def InitVars(self, name=None, admin='', crypted_password=''):
+ """Assign default values - some will be overriden by stored state."""
+ # Non-configurable list info
+ if name:
+ self._internal_name = name
+
+ # When was the list created?
+ self.created_at = time.time()
+
+ # Must save this state, even though it isn't configurable
+ self.volume = 1
+ self.members = {} # self.digest_members is initted in mm_digest
+ self.data_version = mm_cfg.DATA_FILE_VERSION
+ self.last_post_time = 0
+
+ self.post_id = 1. # A float so it never has a chance to overflow.
+ self.user_options = {}
+ self.language = {}
+ self.usernames = {}
+ self.passwords = {}
+ self.new_member_options = mm_cfg.DEFAULT_NEW_MEMBER_OPTIONS
+
+ # This stuff is configurable
+ self.respond_to_post_requests = 1
+ self.advertised = mm_cfg.DEFAULT_LIST_ADVERTISED
+ self.max_num_recipients = mm_cfg.DEFAULT_MAX_NUM_RECIPIENTS
+ self.max_message_size = mm_cfg.DEFAULT_MAX_MESSAGE_SIZE
+ # See the note in Defaults.py concerning DEFAULT_HOST_NAME
+ # vs. DEFAULT_EMAIL_HOST.
+ self.host_name = mm_cfg.DEFAULT_HOST_NAME or mm_cfg.DEFAULT_EMAIL_HOST
+ self.web_page_url = (
+ mm_cfg.DEFAULT_URL or
+ mm_cfg.DEFAULT_URL_PATTERN % mm_cfg.DEFAULT_URL_HOST)
+ self.owner = [admin]
+ self.moderator = []
+ self.reply_goes_to_list = mm_cfg.DEFAULT_REPLY_GOES_TO_LIST
+ self.reply_to_address = ''
+ self.first_strip_reply_to = mm_cfg.DEFAULT_FIRST_STRIP_REPLY_TO
+ self.admin_immed_notify = mm_cfg.DEFAULT_ADMIN_IMMED_NOTIFY
+ self.admin_notify_mchanges = \
+ mm_cfg.DEFAULT_ADMIN_NOTIFY_MCHANGES
+ self.require_explicit_destination = \
+ mm_cfg.DEFAULT_REQUIRE_EXPLICIT_DESTINATION
+ self.acceptable_aliases = mm_cfg.DEFAULT_ACCEPTABLE_ALIASES
+ self.umbrella_list = mm_cfg.DEFAULT_UMBRELLA_LIST
+ self.umbrella_member_suffix = \
+ mm_cfg.DEFAULT_UMBRELLA_MEMBER_ADMIN_SUFFIX
+ self.send_reminders = mm_cfg.DEFAULT_SEND_REMINDERS
+ self.send_welcome_msg = mm_cfg.DEFAULT_SEND_WELCOME_MSG
+ self.send_goodbye_msg = mm_cfg.DEFAULT_SEND_GOODBYE_MSG
+ self.bounce_matching_headers = \
+ mm_cfg.DEFAULT_BOUNCE_MATCHING_HEADERS
+ self.anonymous_list = mm_cfg.DEFAULT_ANONYMOUS_LIST
+ internalname = self.internal_name()
+ self.real_name = internalname[0].upper() + internalname[1:]
+ self.description = ''
+ self.info = ''
+ self.welcome_msg = ''
+ self.goodbye_msg = ''
+ self.subscribe_policy = mm_cfg.DEFAULT_SUBSCRIBE_POLICY
+ self.unsubscribe_policy = mm_cfg.DEFAULT_UNSUBSCRIBE_POLICY
+ self.private_roster = mm_cfg.DEFAULT_PRIVATE_ROSTER
+ self.obscure_addresses = mm_cfg.DEFAULT_OBSCURE_ADDRESSES
+ self.admin_member_chunksize = mm_cfg.DEFAULT_ADMIN_MEMBER_CHUNKSIZE
+ self.administrivia = mm_cfg.DEFAULT_ADMINISTRIVIA
+ self.preferred_language = mm_cfg.DEFAULT_SERVER_LANGUAGE
+ self.available_languages = []
+ self.include_rfc2369_headers = 1
+ self.include_list_post_header = 1
+ self.filter_mime_types = mm_cfg.DEFAULT_FILTER_MIME_TYPES
+ self.pass_mime_types = mm_cfg.DEFAULT_PASS_MIME_TYPES
+ self.filter_content = mm_cfg.DEFAULT_FILTER_CONTENT
+ self.convert_html_to_plaintext = \
+ mm_cfg.DEFAULT_CONVERT_HTML_TO_PLAINTEXT
+ self.filter_action = mm_cfg.DEFAULT_FILTER_ACTION
+ # Analogs to these are initted in Digester.InitVars
+ self.nondigestable = mm_cfg.DEFAULT_NONDIGESTABLE
+ self.personalize = 0
+ # New sender-centric moderation (privacy) options
+ self.default_member_moderation = \
+ mm_cfg.DEFAULT_DEFAULT_MEMBER_MODERATION
+ # Emergency moderation bit
+ self.emergency = 0
+ # This really ought to default to mm_cfg.HOLD, but that doesn't work
+ # with the current GUI description model. So, 0==Hold, 1==Reject,
+ # 2==Discard
+ self.member_moderation_action = 0
+ self.member_moderation_notice = ''
+ self.accept_these_nonmembers = []
+ self.hold_these_nonmembers = []
+ self.reject_these_nonmembers = []
+ self.discard_these_nonmembers = []
+ self.forward_auto_discards = mm_cfg.DEFAULT_FORWARD_AUTO_DISCARDS
+ self.generic_nonmember_action = mm_cfg.DEFAULT_GENERIC_NONMEMBER_ACTION
+ # Ban lists
+ self.ban_list = []
+ # BAW: This should really be set in SecurityManager.InitVars()
+ self.password = crypted_password
+ # Max autoresponses per day. A mapping between addresses and a
+ # 2-tuple of the date of the last autoresponse and the number of
+ # autoresponses sent on that date.
+ self.hold_and_cmd_autoresponses = {}
+
+ # Only one level of mixin inheritance allowed
+ for baseclass in self.__class__.__bases__:
+ if hasattr(baseclass, 'InitVars'):
+ baseclass.InitVars(self)
+
+ # These need to come near the bottom because they're dependent on
+ # other settings.
+ self.subject_prefix = mm_cfg.DEFAULT_SUBJECT_PREFIX % self.__dict__
+ self.msg_header = mm_cfg.DEFAULT_MSG_HEADER
+ self.msg_footer = mm_cfg.DEFAULT_MSG_FOOTER
+ # Set this to Never if the list's preferred language uses us-ascii,
+ # otherwise set it to As Needed
+ if Utils.GetCharSet(self.preferred_language) == 'us-ascii':
+ self.encode_ascii_prefixes = 0
+ else:
+ self.encode_ascii_prefixes = 2
+
+
+ #
+ # Web API support via administrative categories
+ #
+ def GetConfigCategories(self):
+ class CategoryDict(UserDict):
+ def __init__(self):
+ UserDict.__init__(self)
+ self.keysinorder = mm_cfg.ADMIN_CATEGORIES[:]
+ def keys(self):
+ return self.keysinorder
+ def items(self):
+ items = []
+ for k in mm_cfg.ADMIN_CATEGORIES:
+ items.append((k, self.data[k]))
+ return items
+ def values(self):
+ values = []
+ for k in mm_cfg.ADMIN_CATEGORIES:
+ values.append(self.data[k])
+ return values
+
+ categories = CategoryDict()
+ # Only one level of mixin inheritance allowed
+ for gui in self._gui:
+ k, v = gui.GetConfigCategory()
+ categories[k] = (v, gui)
+ return categories
+
+ def GetConfigSubCategories(self, category):
+ for gui in self._gui:
+ if hasattr(gui, 'GetConfigSubCategories'):
+ # Return the first one that knows about the given subcategory
+ subcat = gui.GetConfigSubCategories(category)
+ if subcat is not None:
+ return subcat
+ return None
+
+ def GetConfigInfo(self, category, subcat=None):
+ for gui in self._gui:
+ if hasattr(gui, 'GetConfigInfo'):
+ value = gui.GetConfigInfo(self, category, subcat)
+ if value:
+ return value
+
+
+ #
+ # List creation
+ #
+ def Create(self, name, admin, crypted_password, langs=None):
+ if Utils.list_exists(name):
+ raise Errors.MMListAlreadyExistsError, name
+ # Validate what will be the list's posting address. If that's
+ # invalid, we don't want to create the mailing list. The hostname
+ # part doesn't really matter, since that better already be valid.
+ # However, most scripts already catch MMBadEmailError as exceptions on
+ # the admin's email address, so transform the exception.
+ postingaddr = '%s@%s' % (name, mm_cfg.DEFAULT_EMAIL_HOST)
+ try:
+ Utils.ValidateEmail(postingaddr)
+ except Errors.MMBadEmailError:
+ raise Errors.BadListNameError, postingaddr
+ # Validate the admin's email address
+ Utils.ValidateEmail(admin)
+ self._internal_name = name
+ self._full_path = Site.get_listpath(name, create=1)
+ # Don't use Lock() since that tries to load the non-existant config.pck
+ self.__lock.lock()
+ self.InitVars(name, admin, crypted_password)
+ self.CheckValues()
+ if langs is None:
+ self.available_languages = [self.preferred_language]
+ else:
+ self.available_languages = langs
+
+
+
+ #
+ # Database and filesystem I/O
+ #
+ def __save(self, dict):
+ # Save the file as a binary pickle, and rotate the old version to a
+ # backup file. We must guarantee that config.pck is always valid so
+ # we never rotate unless the we've successfully written the temp file.
+ # We use pickle now because marshal is not guaranteed to be compatible
+ # between Python versions.
+ fname = os.path.join(self.fullpath(), 'config.pck')
+ fname_tmp = fname + '.tmp.%s.%d' % (socket.gethostname(), os.getpid())
+ fname_last = fname + '.last'
+ fp = None
+ try:
+ fp = open(fname_tmp, 'w')
+ # Use a binary format... it's more efficient.
+ cPickle.dump(dict, fp, 1)
+ fp.close()
+ except IOError, e:
+ syslog('error',
+ 'Failed config.pck write, retaining old state.\n%s', e)
+ if fp is not None:
+ os.unlink(fname_tmp)
+ raise
+ # Now do config.pck.tmp.xxx -> config.pck -> config.pck.last rotation
+ # as safely as possible.
+ try:
+ # might not exist yet
+ os.unlink(fname_last)
+ except OSError, e:
+ if e.errno <> errno.ENOENT: raise
+ try:
+ # might not exist yet
+ os.link(fname, fname_last)
+ except OSError, e:
+ if e.errno <> errno.ENOENT: raise
+ os.rename(fname_tmp, fname)
+ # Reset the timestamp
+ self.__timestamp = os.path.getmtime(fname)
+
+ def Save(self):
+ # Refresh the lock, just to let other processes know we're still
+ # interested in it. This will raise a NotLockedError if we don't have
+ # the lock (which is a serious problem!). TBD: do we need to be more
+ # defensive?
+ self.__lock.refresh()
+ # copy all public attributes to serializable dictionary
+ dict = {}
+ for key, value in self.__dict__.items():
+ if key[0] == '_' or type(value) is MethodType:
+ continue
+ dict[key] = value
+ # Make config.pck unreadable by `other', as it contains all the
+ # list members' passwords (in clear text).
+ omask = os.umask(007)
+ try:
+ self.__save(dict)
+ finally:
+ os.umask(omask)
+ self.SaveRequestsDb()
+ self.CheckHTMLArchiveDir()
+
+ def __load(self, dbfile):
+ # Attempt to load and unserialize the specified database file. This
+ # could actually be a config.db (for pre-2.1alpha3) or config.pck,
+ # i.e. a marshal or a binary pickle. Actually, it could also be a
+ # .last backup file if the primary storage file was corrupt. The
+ # decision on whether to unpickle or unmarshal is based on the file
+ # extension, but we always save it using pickle (since only it, and
+ # not marshal is guaranteed to be compatible across Python versions).
+ #
+ # On success return a 2-tuple of (dictionary, None). On error, return
+ # a 2-tuple of the form (None, errorobj).
+ if dbfile.endswith('.db') or dbfile.endswith('.db.last'):
+ loadfunc = marshal.load
+ elif dbfile.endswith('.pck') or dbfile.endswith('.pck.last'):
+ loadfunc = cPickle.load
+ else:
+ assert 0, 'Bad database file name'
+ try:
+ # Check the mod time of the file first. If it matches our
+ # timestamp, then the state hasn't change since the last time we
+ # loaded it. Otherwise open the file for loading, below. If the
+ # file doesn't exist, we'll get an EnvironmentError with errno set
+ # to ENOENT (EnvironmentError is the base class of IOError and
+ # OSError).
+ mtime = os.path.getmtime(dbfile)
+ if mtime <= self.__timestamp:
+ # File is not newer
+ return None, None
+ fp = open(dbfile)
+ except EnvironmentError, e:
+ if e.errno <> errno.ENOENT: raise
+ # The file doesn't exist yet
+ return None, e
+ try:
+ try:
+ dict = loadfunc(fp)
+ if type(dict) <> DictType:
+ return None, 'Load() expected to return a dictionary'
+ except (EOFError, ValueError, TypeError, MemoryError,
+ cPickle.PicklingError), e:
+ return None, e
+ finally:
+ fp.close()
+ # Update timestamp
+ self.__timestamp = mtime
+ return dict, None
+
+ def Load(self, check_version=1):
+ if not Utils.list_exists(self.internal_name()):
+ raise Errors.MMUnknownListError
+ # We first try to load config.pck, which contains the up-to-date
+ # version of the database. If that fails, perhaps because it's
+ # corrupted or missing, we'll try to load the backup file
+ # config.pck.last.
+ #
+ # Should both of those fail, we'll look for config.db and
+ # config.db.last for backwards compatibility with pre-2.1alpha3
+ pfile = os.path.join(self.fullpath(), 'config.pck')
+ plast = pfile + '.last'
+ dfile = os.path.join(self.fullpath(), 'config.db')
+ dlast = dfile + '.last'
+ for file in (pfile, plast, dfile, dlast):
+ dict, e = self.__load(file)
+ if dict is None:
+ if e is not None:
+ # Had problems with this file; log it and try the next one.
+ syslog('error', "couldn't load config file %s\n%s",
+ file, e)
+ else:
+ # We already have the most up-to-date state
+ return
+ else:
+ break
+ else:
+ # Nothing worked, so we have to give up
+ syslog('error', 'All %s fallbacks were corrupt, giving up',
+ self.internal_name())
+ raise Errors.MMCorruptListDatabaseError, e
+ # Now, if we didn't end up using the primary database file, we want to
+ # copy the fallback into the primary so that the logic in Save() will
+ # still work. For giggles, we'll copy it to a safety backup.
+ if file == plast:
+ shutil.copy(file, pfile)
+ shutil.copy(file, pfile + '.safety')
+ elif file == dlast:
+ shutil.copy(file, dfile)
+ shutil.copy(file, pfile + '.safety')
+ # Copy the loaded dictionary into the attributes of the current
+ # mailing list object, then run sanity check on the data.
+ self.__dict__.update(dict)
+ if check_version:
+ self.CheckVersion(dict)
+ self.CheckValues()
+
+
+ #
+ # Sanity checks
+ #
+ def CheckVersion(self, stored_state):
+ """Auto-update schema if necessary."""
+ if self.data_version >= mm_cfg.DATA_FILE_VERSION:
+ return
+ # Initialize any new variables
+ self.InitVars()
+ # Then reload the database (but don't recurse). Force a reload even
+ # if we have the most up-to-date state.
+ self.__timestamp = 0
+ self.Load(check_version=0)
+ # We must hold the list lock in order to update the schema
+ waslocked = self.Locked()
+ if not waslocked:
+ self.Lock()
+ try:
+ from versions import Update
+ Update(self, stored_state)
+ self.data_version = mm_cfg.DATA_FILE_VERSION
+ self.Save()
+ finally:
+ if not waslocked:
+ self.Unlock()
+
+ def CheckValues(self):
+ """Normalize selected values to known formats."""
+ if '' in urlparse(self.web_page_url)[:2]:
+ # Either the "scheme" or the "network location" part of the parsed
+ # URL is empty; substitute faulty value with (hopefully sane)
+ # default. Note that DEFAULT_URL is obsolete.
+ self.web_page_url = (
+ mm_cfg.DEFAULT_URL or
+ mm_cfg.DEFAULT_URL_PATTERN % mm_cfg.DEFAULT_URL_HOST)
+ if self.web_page_url and self.web_page_url[-1] <> '/':
+ self.web_page_url = self.web_page_url + '/'
+ # Legacy reply_to_address could be an illegal value. We now verify
+ # upon setting and don't check it at the point of use.
+ try:
+ if self.reply_to_address.strip() and self.reply_goes_to_list:
+ Utils.ValidateEmail(self.reply_to_address)
+ except Errors.EmailAddressError:
+ syslog('error', 'Bad reply_to_address "%s" cleared for list: %s',
+ self.reply_to_address, self.internal_name())
+ self.reply_to_address = ''
+ self.reply_goes_to_list = 0
+ # Legacy topics may have bad regular expressions in their patterns
+ goodtopics = []
+ for name, pattern, desc, emptyflag in self.topics:
+ try:
+ re.compile(pattern)
+ except (re.error, TypeError):
+ syslog('error', 'Bad topic pattern "%s" for list: %s',
+ pattern, self.internal_name())
+ else:
+ goodtopics.append((name, pattern, desc, emptyflag))
+ self.topics = goodtopics
+
+
+ #
+ # Membership management front-ends and assertion checks
+ #
+ def InviteNewMember(self, userdesc, text=''):
+ """Invite a new member to the list.
+
+ This is done by creating a subscription pending for the user, and then
+ crafting a message to the member informing them of the invitation.
+ """
+ invitee = userdesc.address
+ requestaddr = self.GetRequestEmail()
+ # Hack alert! Squirrel away a flag that only invitations have, so
+ # that we can do something slightly different when an invitation
+ # subscription is confirmed. In those cases, we don't need further
+ # admin approval, even if the list is so configured
+ userdesc.invitation = 1
+ cookie = Pending.new(Pending.SUBSCRIPTION, userdesc)
+ confirmurl = '%s/%s' % (self.GetScriptURL('confirm', absolute=1),
+ cookie)
+ listname = self.real_name
+ text += Utils.maketext(
+ 'invite.txt',
+ {'email' : invitee,
+ 'listname' : listname,
+ 'hostname' : self.host_name,
+ 'confirmurl' : confirmurl,
+ 'requestaddr': requestaddr,
+ 'cookie' : cookie,
+ 'listowner' : self.GetOwnerEmail(),
+ }, mlist=self)
+ if mm_cfg.VERP_CONFIRMATIONS:
+ subj = _(
+ 'You have been invited to join the %(listname)s mailing list')
+ sender = self.GetConfirmEmail(cookie)
+ else:
+ # Do it the old fashioned way
+ subj = 'confirm ' + cookie
+ sender = requestaddr
+ msg = Message.UserNotification(
+ invitee, sender, subj,
+ text, lang=self.preferred_language)
+ msg.send(self)
+
+ def AddMember(self, userdesc, remote=None):
+ """Front end to member subscription.
+
+ This method enforces subscription policy, validates values, sends
+ notifications, and any other grunt work involved in subscribing a
+ user. It eventually calls ApprovedAddMember() to do the actual work
+ of subscribing the user.
+
+ userdesc is an instance with the following public attributes:
+
+ address -- the unvalidated email address of the member
+ fullname -- the member's full name (i.e. John Smith)
+ digest -- a flag indicating whether the user wants digests or not
+ language -- the requested default language for the user
+ password -- the user's password
+
+ Other attributes may be defined later. Only address is required; the
+ others all have defaults (fullname='', digests=0, language=list's
+ preferred language, password=generated).
+
+ remote is a string which describes where this add request came from.
+ """
+ assert self.Locked()
+ # Suck values out of userdesc, apply defaults, and reset the userdesc
+ # attributes (for passing on to ApprovedAddMember()). Lowercase the
+ # addr's domain part.
+ email = Utils.LCDomain(userdesc.address)
+ name = getattr(userdesc, 'fullname', '')
+ lang = getattr(userdesc, 'language', self.preferred_language)
+ digest = getattr(userdesc, 'digest', None)
+ password = getattr(userdesc, 'password', Utils.MakeRandomPassword())
+ if digest is None:
+ if self.nondigestable:
+ digest = 0
+ else:
+ digest = 1
+ # Validate the e-mail address to some degree.
+ Utils.ValidateEmail(email)
+ if self.isMember(email):
+ raise Errors.MMAlreadyAMember, email
+ if email.lower() == self.GetListEmail().lower():
+ # Trying to subscribe the list to itself!
+ raise Errors.MMBadEmailError
+
+ # Is the subscribing address banned from this list?
+ ban = 0
+ for pattern in self.ban_list:
+ if pattern.startswith('^'):
+ # This is a regular expression match
+ try:
+ if re.search(pattern, email, re.IGNORECASE):
+ ban = 1
+ break
+ except re.error:
+ # BAW: we should probably remove this pattern
+ pass
+ else:
+ # Do the comparison case insensitively
+ if pattern.lower() == email.lower():
+ ban = 1
+ break
+ if ban:
+ syslog('vette', 'banned subscription: %s (matched: %s)',
+ email, pattern)
+ raise Errors.MembershipIsBanned, pattern
+
+ # Sanity check the digest flag
+ if digest and not self.digestable:
+ raise Errors.MMCantDigestError
+ elif not digest and not self.nondigestable:
+ raise Errors.MMMustDigestError
+
+ userdesc.address = email
+ userdesc.fullname = name
+ userdesc.digest = digest
+ userdesc.language = lang
+ userdesc.password = password
+
+ # Apply the list's subscription policy. 0 means open subscriptions; 1
+ # means the user must confirm; 2 means the admin must approve; 3 means
+ # the user must confirm and then the admin must approve
+ if self.subscribe_policy == 0:
+ self.ApprovedAddMember(userdesc)
+ elif self.subscribe_policy == 1 or self.subscribe_policy == 3:
+ # User confirmation required. BAW: this should probably just
+ # accept a userdesc instance.
+ cookie = Pending.new(Pending.SUBSCRIPTION, userdesc)
+ # Send the user the confirmation mailback
+ if remote is None:
+ by = remote = ''
+ else:
+ by = ' ' + remote
+ remote = _(' from %(remote)s')
+
+ recipient = self.GetMemberAdminEmail(email)
+ realname = self.real_name
+ confirmurl = '%s/%s' % (self.GetScriptURL('confirm', absolute=1),
+ cookie)
+ text = Utils.maketext(
+ 'verify.txt',
+ {'email' : email,
+ 'listaddr' : self.GetListEmail(),
+ 'listname' : realname,
+ 'cookie' : cookie,
+ 'requestaddr' : self.GetRequestEmail(),
+ 'remote' : remote,
+ 'listadmin' : self.GetOwnerEmail(),
+ 'confirmurl' : confirmurl,
+ }, lang=lang, mlist=self)
+ msg = Message.UserNotification(
+ recipient, self.GetRequestEmail(),
+ text=text, lang=lang)
+ # BAW: See ChangeMemberAddress() for why we do it this way...
+ del msg['subject']
+ msg['Subject'] = 'confirm ' + cookie
+ msg['Reply-To'] = self.GetRequestEmail()
+ msg.send(self)
+ who = formataddr((name, email))
+ syslog('subscribe', '%s: pending %s %s',
+ self.internal_name(), who, by)
+ raise Errors.MMSubscribeNeedsConfirmation
+ else:
+ # Subscription approval is required. Add this entry to the admin
+ # requests database. BAW: this should probably take a userdesc
+ # just like above.
+ self.HoldSubscription(email, name, password, digest, lang)
+ raise Errors.MMNeedApproval, _(
+ 'subscriptions to %(realname)s require moderator approval')
+
+ def ApprovedAddMember(self, userdesc, ack=None, admin_notif=None, text=''):
+ """Add a member right now.
+
+ The member's subscription must be approved by what ever policy the
+ list enforces.
+
+ userdesc is as above in AddMember().
+
+ ack is a flag that specifies whether the user should get an
+ acknowledgement of their being subscribed. Default is to use the
+ list's default flag value.
+
+ admin_notif is a flag that specifies whether the list owner should get
+ an acknowledgement of this subscription. Default is to use the list's
+ default flag value.
+ """
+ assert self.Locked()
+ # Set up default flag values
+ if ack is None:
+ ack = self.send_welcome_msg
+ if admin_notif is None:
+ admin_notif = self.admin_notify_mchanges
+ # Suck values out of userdesc, and apply defaults.
+ email = Utils.LCDomain(userdesc.address)
+ name = getattr(userdesc, 'fullname', '')
+ lang = getattr(userdesc, 'language', self.preferred_language)
+ digest = getattr(userdesc, 'digest', None)
+ password = getattr(userdesc, 'password', Utils.MakeRandomPassword())
+ if digest is None:
+ if self.nondigestable:
+ digest = 0
+ else:
+ digest = 1
+ # Let's be extra cautious
+ Utils.ValidateEmail(email)
+ if self.isMember(email):
+ raise Errors.MMAlreadyAMember, email
+ # Do the actual addition
+ self.addNewMember(email, realname=name, digest=digest,
+ password=password, language=lang)
+ self.setMemberOption(email, mm_cfg.DisableMime,
+ 1 - self.mime_is_default_digest)
+ self.setMemberOption(email, mm_cfg.Moderate,
+ self.default_member_moderation)
+ # Now send and log results
+ if digest:
+ kind = ' (digest)'
+ else:
+ kind = ''
+ syslog('subscribe', '%s: new%s %s', self.internal_name(),
+ kind, formataddr((email, name)))
+ if ack:
+ self.SendSubscribeAck(email, self.getMemberPassword(email),
+ digest, text)
+ if admin_notif:
+ realname = self.real_name
+ subject = _('%(realname)s subscription notification')
+ text = Utils.maketext(
+ "adminsubscribeack.txt",
+ {"listname" : self.real_name,
+ "member" : formataddr((name, email)),
+ }, mlist=self)
+ msg = Message.OwnerNotification(self, subject, text)
+ msg.send(self)
+
+ def DeleteMember(self, name, whence=None, admin_notif=0, userack=1):
+ realname, email = parseaddr(name)
+ if self.unsubscribe_policy == 0:
+ self.ApprovedDeleteMember(name, whence, admin_notif, userack)
+ else:
+ self.HoldUnsubscription(email)
+ raise Errors.MMNeedApproval, _(
+ 'unsubscriptions require moderator approval')
+
+ def ApprovedDeleteMember(self, name, whence=None,
+ admin_notif=None, userack=None):
+ if userack is None:
+ userack = self.send_goodbye_msg
+ if admin_notif is None:
+ admin_notif = self.admin_notify_mchanges
+ # Delete a member, for which we know the approval has been made
+ fullname, emailaddr = parseaddr(name)
+ userlang = self.getMemberLanguage(emailaddr)
+ # Remove the member
+ self.removeMember(emailaddr)
+ # And send an acknowledgement to the user...
+ if userack:
+ self.SendUnsubscribeAck(emailaddr, userlang)
+ # ...and to the administrator
+ if admin_notif:
+ realname = self.real_name
+ subject = _('%(realname)s unsubscribe notification')
+ text = Utils.maketext(
+ 'adminunsubscribeack.txt',
+ {'member' : name,
+ 'listname': self.real_name,
+ }, mlist=self)
+ msg = Message.OwnerNotification(self, subject, text)
+ msg.send(self)
+ if whence:
+ whence = "; %s" % whence
+ else:
+ whence = ""
+ syslog('subscribe', '%s: deleted %s%s',
+ self.internal_name(), name, whence)
+
+ def ChangeMemberName(self, addr, name, globally):
+ self.setMemberName(addr, name)
+ if not globally:
+ return
+ for listname in Utils.list_names():
+ # Don't bother with ourselves
+ if listname == self.internal_name():
+ continue
+ mlist = MailList(listname, lock=0)
+ if mlist.host_name <> self.host_name:
+ continue
+ if not mlist.isMember(addr):
+ continue
+ mlist.Lock()
+ try:
+ mlist.setMemberName(addr, name)
+ mlist.Save()
+ finally:
+ mlist.Unlock()
+
+ def ChangeMemberAddress(self, oldaddr, newaddr, globally):
+ # Changing a member address consists of verifying the new address,
+ # making sure the new address isn't already a member, and optionally
+ # going through the confirmation process.
+ #
+ # Most of these checks are copied from AddMember
+ newaddr = Utils.LCDomain(newaddr)
+ Utils.ValidateEmail(newaddr)
+ # Raise an exception if this email address is already a member of the
+ # list, but only if the new address is the same case-wise as the old
+ # address.
+ if newaddr == oldaddr and self.isMember(newaddr):
+ raise Errors.MMAlreadyAMember
+ if newaddr == self.GetListEmail().lower():
+ raise Errors.MMBadEmailError
+ # Pend the subscription change
+ cookie = Pending.new(Pending.CHANGE_OF_ADDRESS,
+ oldaddr, newaddr, globally)
+ confirmurl = '%s/%s' % (self.GetScriptURL('confirm', absolute=1),
+ cookie)
+ realname = self.real_name
+ lang = self.getMemberLanguage(oldaddr)
+ text = Utils.maketext(
+ 'verify.txt',
+ {'email' : newaddr,
+ 'listaddr' : self.GetListEmail(),
+ 'listname' : realname,
+ 'cookie' : cookie,
+ 'requestaddr': self.GetRequestEmail(),
+ 'remote' : '',
+ 'listadmin' : self.GetOwnerEmail(),
+ 'confirmurl' : confirmurl,
+ }, lang=lang, mlist=self)
+ # BAW: We don't pass the Subject: into the UserNotification
+ # constructor because it will encode it in the charset of the language
+ # being used. For non-us-ascii charsets, this means it will probably
+ # quopri quote it, and thus replies will also be quopri encoded. But
+ # CommandRunner doesn't yet grok such headers. So, just set the
+ # Subject: in a separate step, although we have to delete the one
+ # UserNotification adds.
+ msg = Message.UserNotification(
+ newaddr, self.GetRequestEmail(),
+ text=text, lang=lang)
+ del msg['subject']
+ msg['Subject'] = 'confirm ' + cookie
+ msg['Reply-To'] = self.GetRequestEmail()
+ msg.send(self)
+
+ def ApprovedChangeMemberAddress(self, oldaddr, newaddr, globally):
+ # Change the membership for the current list first. We don't lock and
+ # save ourself since we assume that the list is already locked.
+ if self.isMember(newaddr):
+ # Just delete the old address
+ if self.isMember(oldaddr):
+ self.ApprovedDeleteMember(oldaddr, admin_notif=1, userack=1)
+ else:
+ self.changeMemberAddress(oldaddr, newaddr)
+ # If globally is true, then we also include every list for which
+ # oldaddr is a member.
+ if not globally:
+ return
+ for listname in Utils.list_names():
+ # Don't bother with ourselves
+ if listname == self.internal_name():
+ continue
+ mlist = MailList(listname, lock=0)
+ if mlist.host_name <> self.host_name:
+ continue
+ if not mlist.isMember(oldaddr) or mlist.isMember(newaddr):
+ continue
+ mlist.Lock()
+ try:
+ mlist.changeMemberAddress(oldaddr, newaddr)
+ mlist.Save()
+ finally:
+ mlist.Unlock()
+
+
+ #
+ # Confirmation processing
+ #
+ def ProcessConfirmation(self, cookie, context=None):
+ data = Pending.confirm(cookie)
+ if data is None:
+ raise Errors.MMBadConfirmation, 'data is None'
+ try:
+ op = data[0]
+ data = data[1:]
+ except ValueError:
+ raise Errors.MMBadConfirmation, 'op-less data %s' % (data,)
+ if op == Pending.SUBSCRIPTION:
+ try:
+ userdesc = data[0]
+ # If confirmation comes from the web, context should be a
+ # UserDesc instance which contains overrides of the original
+ # subscription information. If it comes from email, then
+ # context is a Message and isn't relevant, so ignore it.
+ if isinstance(context, UserDesc):
+ userdesc += context
+ addr = userdesc.address
+ fullname = userdesc.fullname
+ password = userdesc.password
+ digest = userdesc.digest
+ lang = userdesc.language
+ except ValueError:
+ raise Errors.MMBadConfirmation, 'bad subscr data %s' % (data,)
+ # Hack alert! Was this a confirmation of an invitation?
+ invitation = getattr(userdesc, 'invitation', 0)
+ # We check for both 2 (approval required) and 3 (confirm +
+ # approval) because the policy could have been changed in the
+ # middle of the confirmation dance.
+ if not invitation and self.subscribe_policy in (2, 3):
+ self.HoldSubscription(addr, fullname, password, digest, lang)
+ name = self.real_name
+ raise Errors.MMNeedApproval, _(
+ 'subscriptions to %(name)s require administrator approval')
+ self.ApprovedAddMember(userdesc)
+ return op, addr, password, digest, lang
+ elif op == Pending.UNSUBSCRIPTION:
+ addr = data[0]
+ # Log file messages don't need to be i18n'd
+ if isinstance(context, Message.Message):
+ whence = 'email confirmation'
+ else:
+ whence = 'web confirmation'
+ # Can raise NotAMemberError if they unsub'd via other means
+ self.ApprovedDeleteMember(addr, whence=whence)
+ return op, addr
+ elif op == Pending.CHANGE_OF_ADDRESS:
+ oldaddr, newaddr, globally = data
+ self.ApprovedChangeMemberAddress(oldaddr, newaddr, globally)
+ return op, oldaddr, newaddr
+ elif op == Pending.HELD_MESSAGE:
+ id = data[0]
+ approved = None
+ # Confirmation should be coming from email, where context should
+ # be the confirming message. If the message does not have an
+ # Approved: header, this is a discard, otherwise it's an approval
+ # (if the passwords match).
+ if isinstance(context, Message.Message):
+ # See if it's got an Approved: header, either in the headers,
+ # or in the first text/plain section of the response. For
+ # robustness, we'll accept Approve: as well.
+ approved = context.get('Approved', context.get('Approve'))
+ if not approved:
+ try:
+ subpart = list(email.Iterators.typed_subpart_iterator(
+ context, 'text', 'plain'))[0]
+ except IndexError:
+ subpart = None
+ if subpart:
+ s = StringIO(subpart.get_payload())
+ while 1:
+ line = s.readline()
+ if not line:
+ break
+ if not line.strip():
+ continue
+ i = line.find(':')
+ if i > 0:
+ if (line[:i].lower() == 'approve' or
+ line[:i].lower() == 'approved'):
+ # then
+ approved = line[i+1:].strip()
+ break
+ # Okay, does the approved header match the list password?
+ if approved and self.Authenticate([mm_cfg.AuthListAdmin,
+ mm_cfg.AuthListModerator],
+ approved) <> mm_cfg.UnAuthorized:
+ action = mm_cfg.APPROVE
+ else:
+ action = mm_cfg.DISCARD
+ try:
+ self.HandleRequest(id, action)
+ except KeyError:
+ # Most likely because the message has already been disposed of
+ # via the admindb page.
+ syslog('error', 'Could not process HELD_MESSAGE: %s', id)
+ return (op,)
+ elif op == Pending.RE_ENABLE:
+ member = data[1]
+ self.setDeliveryStatus(member, MemberAdaptor.ENABLED)
+ return op, member
+
+ def ConfirmUnsubscription(self, addr, lang=None, remote=None):
+ if lang is None:
+ lang = self.getMemberLanguage(addr)
+ cookie = Pending.new(Pending.UNSUBSCRIPTION, addr)
+ confirmurl = '%s/%s' % (self.GetScriptURL('confirm', absolute=1),
+ cookie)
+ realname = self.real_name
+ if remote is not None:
+ by = " " + remote
+ remote = _(" from %(remote)s")
+ else:
+ by = ""
+ remote = ""
+ text = Utils.maketext(
+ 'unsub.txt',
+ {'email' : addr,
+ 'listaddr' : self.GetListEmail(),
+ 'listname' : realname,
+ 'cookie' : cookie,
+ 'requestaddr' : self.GetRequestEmail(),
+ 'remote' : remote,
+ 'listadmin' : self.GetOwnerEmail(),
+ 'confirmurl' : confirmurl,
+ }, lang=lang, mlist=self)
+ msg = Message.UserNotification(
+ addr, self.GetRequestEmail(),
+ text=text, lang=lang)
+ # BAW: See ChangeMemberAddress() for why we do it this way...
+ del msg['subject']
+ msg['Subject'] = 'confirm ' + cookie
+ msg['Reply-To'] = self.GetRequestEmail()
+ msg.send(self)
+
+
+ #
+ # Miscellaneous stuff
+ #
+ def HasExplicitDest(self, msg):
+ """True if list name or any acceptable_alias is included among the
+ to or cc addrs."""
+ # BAW: fall back to Utils.ParseAddr if the first test fails.
+ # this is the list's full address
+ listfullname = '%s@%s' % (self.internal_name(), self.host_name)
+ recips = []
+ # check all recipient addresses against the list's explicit addresses,
+ # specifically To: Cc: and Resent-to:
+ to = []
+ for header in ('to', 'cc', 'resent-to', 'resent-cc'):
+ to.extend(getaddresses(msg.get_all(header, [])))
+ for fullname, addr in to:
+ # It's possible that if the header doesn't have a valid
+ # (i.e. RFC822) value, we'll get None for the address. So skip
+ # it.
+ if addr is None:
+ continue
+ addr = addr.lower()
+ localpart = addr.split('@')[0]
+ if (# TBD: backwards compatibility: deprecated
+ localpart == self.internal_name() or
+ # exact match against the complete list address
+ addr == listfullname):
+ return 1
+ recips.append((addr, localpart))
+ #
+ # helper function used to match a pattern against an address. Do it
+ def domatch(pattern, addr):
+ try:
+ if re.match(pattern, addr):
+ return 1
+ except re.error:
+ # The pattern is a malformed regexp -- try matching safely,
+ # with all non-alphanumerics backslashed:
+ if re.match(re.escape(pattern), addr):
+ return 1
+ #
+ # Here's the current algorithm for matching acceptable_aliases:
+ #
+ # 1. If the pattern does not have an `@' in it, we first try matching
+ # it against just the localpart. This was the behavior prior to
+ # 2.0beta3, and is kept for backwards compatibility.
+ # (deprecated).
+ #
+ # 2. If that match fails, or the pattern does have an `@' in it, we
+ # try matching against the entire recip address.
+ for addr, localpart in recips:
+ for alias in self.acceptable_aliases.split('\n'):
+ stripped = alias.strip()
+ if not stripped:
+ # ignore blank or empty lines
+ continue
+ if '@' not in stripped and domatch(stripped, localpart):
+ return 1
+ if domatch(stripped, addr):
+ return 1
+ return 0
+
+ def parse_matching_header_opt(self):
+ """Return a list of triples [(field name, regex, line), ...]."""
+ # - Blank lines and lines with '#' as first char are skipped.
+ # - Leading whitespace in the matchexp is trimmed - you can defeat
+ # that by, eg, containing it in gratuitous square brackets.
+ all = []
+ for line in self.bounce_matching_headers.split('\n'):
+ line = line.strip()
+ # Skip blank lines and lines *starting* with a '#'.
+ if not line or line[0] == "#":
+ continue
+ i = line.find(':')
+ if i < 0:
+ # This didn't look like a header line. BAW: should do a
+ # better job of informing the list admin.
+ syslog('config', 'bad bounce_matching_header line: %s\n%s',
+ self.real_name, line)
+ else:
+ header = line[:i]
+ value = line[i+1:].lstrip()
+ try:
+ cre = re.compile(value, re.IGNORECASE)
+ except re.error, e:
+ # The regexp was malformed. BAW: should do a better
+ # job of informing the list admin.
+ syslog('config', '''\
+bad regexp in bounce_matching_header line: %s
+\n%s (cause: %s)''', self.real_name, value, e)
+ else:
+ all.append((header, cre, line))
+ return all
+
+ def hasMatchingHeader(self, msg):
+ """Return true if named header field matches a regexp in the
+ bounce_matching_header list variable.
+
+ Returns constraint line which matches or empty string for no
+ matches.
+ """
+ for header, cre, line in self.parse_matching_header_opt():
+ for value in msg.get_all(header, []):
+ if cre.search(value):
+ return line
+ return 0
+
+ def autorespondToSender(self, sender):
+ """Return true if Mailman should auto-respond to this sender.
+
+ This is only consulted for messages sent to the -request address, or
+ for posting hold notifications, and serves only as a safety value for
+ mail loops with email 'bots.
+ """
+ # No limit
+ if mm_cfg.MAX_AUTORESPONSES_PER_DAY == 0:
+ return 1
+ today = time.localtime()[:3]
+ info = self.hold_and_cmd_autoresponses.get(sender)
+ if info is None or info[0] <> today:
+ # First time we've seen a -request/post-hold for this sender
+ self.hold_and_cmd_autoresponses[sender] = (today, 1)
+ # BAW: no check for MAX_AUTORESPONSES_PER_DAY <= 1
+ return 1
+ date, count = info
+ if count < 0:
+ # They've already hit the limit for today.
+ syslog('vette', '-request/hold autoresponse discarded for: %s',
+ sender)
+ return 0
+ if count >= mm_cfg.MAX_AUTORESPONSES_PER_DAY:
+ syslog('vette', '-request/hold autoresponse limit hit for: %s',
+ sender)
+ self.hold_and_cmd_autoresponses[sender] = (today, -1)
+ # Send this notification message instead
+ text = Utils.maketext(
+ 'nomoretoday.txt',
+ {'sender' : sender,
+ 'listname': '%s@%s' % (self.real_name, self.host_name),
+ 'num' : count,
+ 'owneremail': self.GetOwnerEmail(),
+ })
+ msg = Message.UserNotification(
+ sender, self.GetOwnerEmail(),
+ _('Last autoresponse notification for today'),
+ text)
+ msg.send(self)
+ return 0
+ self.hold_and_cmd_autoresponses[sender] = (today, count+1)
+ return 1
+
+
+
+ #
+ # Multilingual (i18n) support
+ #
+ def GetAvailableLanguages(self):
+ langs = self.available_languages
+ # If we don't add this, and the site admin has never added any
+ # language support to the list, then the general admin page may have a
+ # blank field where the list owner is supposed to chose the list's
+ # preferred language.
+ if mm_cfg.DEFAULT_SERVER_LANGUAGE not in langs:
+ langs.append(mm_cfg.DEFAULT_SERVER_LANGUAGE)
+ return langs
diff --git a/Mailman/Mailbox.py b/Mailman/Mailbox.py
new file mode 100644
index 00000000..8ab085cc
--- /dev/null
+++ b/Mailman/Mailbox.py
@@ -0,0 +1,101 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Extend mailbox.UnixMailbox.
+"""
+
+import sys
+import mailbox
+
+import email
+from email.Generator import Generator
+from email.Parser import Parser
+from email.Errors import MessageParseError
+
+from Mailman import mm_cfg
+from Mailman.Message import Message
+
+
+def _safeparser(fp):
+ try:
+ return email.message_from_file(fp, Message)
+ except MessageParseError:
+ # Don't return None since that will stop a mailbox iterator
+ return ''
+
+
+
+class Mailbox(mailbox.PortableUnixMailbox):
+ def __init__(self, fp):
+ mailbox.PortableUnixMailbox.__init__(self, fp, _safeparser)
+
+ # msg should be an rfc822 message or a subclass.
+ def AppendMessage(self, msg):
+ # Check the last character of the file and write a newline if it isn't
+ # a newline (but not at the beginning of an empty file).
+ try:
+ self.fp.seek(-1, 2)
+ except IOError, e:
+ # Assume the file is empty. We can't portably test the error code
+ # returned, since it differs per platform.
+ pass
+ else:
+ if self.fp.read(1) <> '\n':
+ self.fp.write('\n')
+ # Seek to the last char of the mailbox
+ self.fp.seek(1, 2)
+ # Create a Generator instance to write the message to the file
+ g = Generator(self.fp)
+ g(msg, unixfrom=1)
+
+
+
+# This stuff is used by pipermail.py:processUnixMailbox(). It provides an
+# opportunity for the built-in archiver to scrub archived messages of nasty
+# things like attachments and such...
+def _archfactory(mailbox):
+ # The factory gets a file object, but it also needs to have a MailList
+ # object, so the clearest <wink> way to do this is to build a factory
+ # function that has a reference to the mailbox object, which in turn holds
+ # a reference to the mailing list. Nested scopes would help here, BTW,
+ # but we can't rely on them being around (e.g. Python 2.0).
+ def scrubber(fp, mailbox=mailbox):
+ msg = _safeparser(fp)
+ if msg == '':
+ return msg
+ return mailbox.scrub(msg)
+ return scrubber
+
+
+class ArchiverMailbox(Mailbox):
+ # This is a derived class which is instantiated with a reference to the
+ # MailList object. It is build such that the factory calls back into its
+ # scrub() method, giving the scrubber module a chance to do its thing
+ # before the message is archived.
+ def __init__(self, fp, mlist):
+ if mm_cfg.ARCHIVE_SCRUBBER:
+ __import__(mm_cfg.ARCHIVE_SCRUBBER)
+ self._scrubber = sys.modules[mm_cfg.ARCHIVE_SCRUBBER].process
+ else:
+ self._scrubber = None
+ self._mlist = mlist
+ mailbox.PortableUnixMailbox.__init__(self, fp, _archfactory(self))
+
+ def scrub(self, msg):
+ if self._scrubber:
+ return self._scrubber(self._mlist, msg)
+ else:
+ return msg
diff --git a/Mailman/Makefile.in b/Mailman/Makefile.in
new file mode 100644
index 00000000..d6fec07b
--- /dev/null
+++ b/Mailman/Makefile.in
@@ -0,0 +1,99 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# NOTE: Makefile.in is converted into Makefile by the configure script
+# in the parent directory. Once configure has run, you can recreate
+# the Makefile by running just config.status.
+
+# Variables set by configure
+
+VERSION= @VERSION@
+
+VPATH= @srcdir@
+srcdir= @srcdir@
+bindir= @bindir@
+prefix= @prefix@
+exec_prefix= @exec_prefix@
+
+CC= @CC@
+CHMOD= @CHMOD@
+INSTALL= @INSTALL@
+
+DEFS= @DEFS@
+
+# Customizable but not set by configure
+
+OPT= @OPT@
+CFLAGS= $(OPT) $(DEFS)
+PACKAGEDIR= $(prefix)/Mailman
+SHELL= /bin/sh
+
+MODULES= $(srcdir)/*.py
+SUBDIRS= Cgi Logging Archiver Handlers Bouncers Queue MTA Gui Commands
+
+# Modes for directories and executables created by the install
+# process. Default to group-writable directories but
+# user-only-writable for executables.
+DIRMODE= 775
+EXEMODE= 755
+FILEMODE= 644
+INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
+
+
+# Rules
+
+all:
+ for d in $(SUBDIRS); \
+ do \
+ (cd $$d; $(MAKE)); \
+ done
+
+install-here:
+ for f in $(MODULES); \
+ do \
+ $(INSTALL) -m $(FILEMODE) $$f $(PACKAGEDIR); \
+ done
+ $(INSTALL) -m $(FILEMODE) mm_cfg.py.dist $(PACKAGEDIR)
+ if [ ! -f $(PACKAGEDIR)/mm_cfg.py ]; \
+ then \
+ $(INSTALL) -m $(FILEMODE) mm_cfg.py.dist $(PACKAGEDIR)/mm_cfg.py; \
+ fi
+
+install: install-here
+ for d in $(SUBDIRS); \
+ do \
+ (cd $$d; $(MAKE) install); \
+ done
+
+finish:
+ @for d in $(SUBDIRS); \
+ do \
+ (cd $$d; $(MAKE) finish); \
+ done
+
+clean:
+ for d in $(SUBDIRS); \
+ do \
+ (cd $$d; $(MAKE) clean); \
+ done
+
+distclean:
+ -rm Makefile Defaults.py mm_cfg.py.dist
+ -rm *.pyc
+ for d in $(SUBDIRS); \
+ do \
+ (cd $$d; $(MAKE) distclean); \
+ done
diff --git a/Mailman/MemberAdaptor.py b/Mailman/MemberAdaptor.py
new file mode 100644
index 00000000..dc24ea08
--- /dev/null
+++ b/Mailman/MemberAdaptor.py
@@ -0,0 +1,350 @@
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""This is an interface to list-specific membership information.
+
+This class should not be instantiated directly, but instead, it should be
+subclassed for specific adaptation to membership databases. The default
+MM2.0.x style adaptor is in OldStyleMemberships.py. Through the extend.py
+mechanism, you can instantiate different membership information adaptors to
+get info out of LDAP, Zope, other, or any combination of the above.
+
+Members have three pieces of identifying information: a unique identifying
+opaque key (KEY), a lower-cased email address (LCE), and a case-preserved
+email (CPE) address. Adaptors must ensure that both member keys and lces can
+uniquely identify a member, and that they can (usually) convert freely between
+keys and lces. Most methods must accept either a key or an lce, unless
+specifically documented otherwise.
+
+The CPE is always used to calculate the recipient address for a message. Some
+remote MTAs make a distinction based on localpart case, so we always send
+messages to the case-preserved address. Note that DNS is case insensitive so
+it doesn't matter what the case is for the domain part of an email address,
+although by default, we case-preserve that too.
+
+The adaptors must support the readable interface for getting information about
+memberships, and may optionally support the writeable interface. If they do
+not, then members cannot change their list attributes via Mailman's web or
+email interfaces. Updating membership information in that case is the
+backend's responsibility. Adaptors are allowed to support parts of the
+writeable interface.
+
+For any writeable method not supported, a NotImplemented exception should be
+raised.
+"""
+
+# Delivery statuses
+ENABLED = 0 # enabled
+UNKNOWN = 1 # legacy disabled
+BYUSER = 2 # disabled by user choice
+BYADMIN = 3 # disabled by admin choice
+BYBOUNCE = 4 # disabled by bounces
+
+
+
+class MemberAdaptor:
+ #
+ # The readable interface
+ #
+ def getMembers(self):
+ """Get the LCE for all the members of the mailing list."""
+ raise NotImplemented
+
+ def getRegularMemberKeys(self):
+ """Get the LCE for all regular delivery members (i.e. non-digest)."""
+ raise NotImplemented
+
+ def getDigestMemberKeys(self):
+ """Get the LCE for all digest delivery members."""
+ raise NotImplemented
+
+ def isMember(self, member):
+ """Return 1 if member KEY/LCE is a valid member, otherwise 0."""
+
+ def getMemberKey(self, member):
+ """Return the KEY for the member KEY/LCE.
+
+ If member does not refer to a valid member, raise NotAMemberError.
+ """
+ raise NotImplemented
+
+ def getMemberCPAddress(self, member):
+ """Return the CPE for the member KEY/LCE.
+
+ If member does not refer to a valid member, raise NotAMemberError.
+ """
+ raise NotImplemented
+
+ def getMemberCPAddresses(self, members):
+ """Return a sequence of CPEs for the given sequence of members.
+
+ The returned sequence will be the same length as members. If any of
+ the KEY/LCEs in members does not refer to a valid member, that entry
+ in the returned sequence will be None (i.e. NotAMemberError is never
+ raised).
+ """
+ raise NotImplemented
+
+ def authenticateMember(self, member, response):
+ """Authenticate the member KEY/LCE with the given response.
+
+ If the response authenticates the member, return a secret that is
+ known only to the authenticated member. This need not be the member's
+ password, but it will be used to craft a session cookie, so it should
+ be persistent for the life of the session.
+
+ If the authentication failed return 0. If member did not refer to a
+ valid member, raise NotAMemberError.
+
+ Normally, the response will be the password typed into a web form or
+ given in an email command, but it needn't be. It is up to the adaptor
+ to compare the typed response to the user's authentication token.
+ """
+ raise NotImplemented
+
+ def getMemberPassword(self, member):
+ """Return the member's password.
+
+ If the member KEY/LCE is not a member of the list, raise
+ NotAMemberError.
+ """
+ raise NotImplemented
+
+ def getMemberLanguage(self, member):
+ """Return the preferred language for the member KEY/LCE.
+
+ The language returned must be a key in mm_cfg.LC_DESCRIPTIONS and the
+ mailing list must support that language.
+
+ If member does not refer to a valid member, the list's default
+ language is returned instead of raising a NotAMemberError error.
+ """
+ raise NotImplemented
+
+ def getMemberOption(self, member, flag):
+ """Return the boolean state of the member option for member KEY/LCE.
+
+ Option flags are defined in Defaults.py.
+
+ If member does not refer to a valid member, raise NotAMemberError.
+ """
+ raise NotImplemented
+
+ def getMemberName(self, member):
+ """Return the full name of the member KEY/LCE.
+
+ None is returned if the member has no registered full name. The
+ returned value may be a Unicode string if there are non-ASCII
+ characters in the name. NotAMemberError is raised if member does not
+ refer to a valid member.
+ """
+ raise NotImplemented
+
+ def getMemberTopics(self, member):
+ """Return the list of topics this member is interested in.
+
+ The return value is a list of strings which name the topics.
+ """
+ raise NotImplemented
+
+ def getDeliveryStatus(self, member):
+ """Return the delivery status of this member.
+
+ Value is one of the module constants:
+
+ ENABLED - The deliveries to the user are not disabled
+ UNKNOWN - Deliveries are disabled for unknown reasons. The
+ primary reason for this to happen is that we've copied
+ their delivery status from a legacy version which didn't
+ keep track of disable reasons
+ BYUSER - The user explicitly disable deliveries
+ BYADMIN - The list administrator explicitly disabled deliveries
+ BYBOUNCE - The system disabled deliveries due to bouncing
+
+ If member is not a member of the list, raise NotAMemberError.
+ """
+ raise NotImplemented
+
+ def getDeliveryStatusChangeTime(self, member):
+ """Return the time of the last disabled delivery status change.
+
+ If the current delivery status is ENABLED, the status change time will
+ be zero. If member is not a member of the list, raise
+ NotAMemberError.
+ """
+ raise NotImplemented
+
+ def getDeliveryStatusMembers(self,
+ status=(UNKNOWN, BYUSER, BYADMIN, BYBOUNCE)):
+ """Return the list of members with a matching delivery status.
+
+ Optional `status' if given, must be a sequence containing one or more
+ of ENABLED, UNKNOWN, BYUSER, BYADMIN, or BYBOUNCE. The members whose
+ delivery status is in this sequence are returned.
+ """
+ raise NotImplemented
+
+ def getBouncingMembers(self):
+ """Return the list of members who have outstanding bounce information.
+
+ This list of members doesn't necessarily overlap with
+ getDeliveryStatusMembers() since getBouncingMembers() will return
+ member who have bounced but not yet reached the disable threshold.
+ """
+ raise NotImplemented
+
+ def getBounceInfo(self, member):
+ """Return the member's bounce information.
+
+ A value of None means there is no bounce information registered for
+ the member.
+
+ Bounce info is opaque to the MemberAdaptor. It is set by
+ setBounceInfo() and returned by this method without modification.
+
+ If member is not a member of the list, raise NotAMemberError.
+ """
+ raise NotImplemented
+
+
+ #
+ # The writeable interface
+ #
+ def addNewMember(self, member, **kws):
+ """Subscribes a new member to the mailing list.
+
+ member is the case-preserved address to subscribe. The LCE is
+ calculated from this argument. Return the new member KEY.
+
+ This method also takes a keyword dictionary which can be used to set
+ additional attributes on the member. The actual set of supported
+ keywords is adaptor specific, but should at least include:
+
+ - digest == subscribing to digests instead of regular delivery
+ - password == user's password
+ - language == user's preferred language
+ - realname == user's full name (should be Unicode if there are
+ non-ASCII characters in the name)
+
+ Any values not passed to **kws is set to the adaptor-specific
+ defaults.
+
+ Raise AlreadyAMemberError it the member is already subscribed to the
+ list. Raises ValueError if **kws contains an invalid option.
+ """
+ raise NotImplemented
+
+ def removeMember(self, memberkey):
+ """Unsubscribes the member from the mailing list.
+
+ Raise NotAMemberError if member is not subscribed to the list.
+ """
+ raise NotImplemented
+
+ def changeMemberAddress(self, memberkey, newaddress, nodelete=0):
+ """Change the address for the member KEY.
+
+ memberkey will be a KEY, not an LCE. newaddress should be the
+ new case-preserved address for the member; the LCE will be calculated
+ from newaddress.
+
+ If memberkey does not refer to a valid member, raise NotAMemberError.
+ No verification on the new address is done here (such assertions
+ should be performed by the caller).
+
+ If nodelete flag is true, then the old membership is not removed.
+ """
+ raise NotImplemented
+
+ def setMemberPassword(self, member, password):
+ """Set the password for member LCE/KEY.
+
+ If member does not refer to a valid member, raise NotAMemberError.
+ Also raise BadPasswordError if the password is illegal (e.g. too
+ short or easily guessed via a dictionary attack).
+
+ """
+ raise NotImplemented
+
+ def setMemberLanguage(self, member, language):
+ """Set the language for the member LCE/KEY.
+
+ If member does not refer to a valid member, raise NotAMemberError.
+ Also raise BadLanguageError if the language is invalid (e.g. the list
+ is not configured to support the given language).
+ """
+ raise NotImplemented
+
+ def setMemberOption(self, member, flag, value):
+ """Set the option for the given member to value.
+
+ member is an LCE/KEY, flag is one of the option flags defined in
+ Default.py, and value is a boolean.
+
+ If member does not refer to a valid member, raise NotAMemberError.
+ Also raise BadOptionError if the flag does not refer to a valid
+ option.
+ """
+ raise NotImplemented
+
+ def setMemberName(self, member, realname):
+ """Set the member's full name.
+
+ member is an LCE/KEY and realname is an arbitrary string. It should
+ be a Unicode string if there are non-ASCII characters in the name.
+ NotAMemberError is raised if member does not refer to a valid member.
+ """
+ raise NotImplemented
+
+ def setMemberTopics(self, member, topics):
+ """Add list of topics to member's interest.
+
+ member is an LCE/KEY and realname is an arbitrary string.
+ NotAMemberError is raised if member does not refer to a valid member.
+ topics must be a sequence of strings.
+ """
+ raise NotImplemented
+
+ def setDeliveryStatus(self, member, status):
+ """Set the delivery status of the member's address.
+
+ Status must be one of the module constants:
+
+ ENABLED - The deliveries to the user are not disabled
+ UNKNOWN - Deliveries are disabled for unknown reasons. The
+ primary reason for this to happen is that we've copied
+ their delivery status from a legacy version which didn't
+ keep track of disable reasons
+ BYUSER - The user explicitly disable deliveries
+ BYADMIN - The list administrator explicitly disabled deliveries
+ BYBOUNCE - The system disabled deliveries due to bouncing
+
+ This method also records the time (in seconds since epoch) at which
+ the last status change was made. If the delivery status is changed to
+ ENABLED, then the change time information will be deleted. This value
+ is retrievable via getDeliveryStatusChangeTime().
+ """
+ raise NotImplemented
+
+ def setBounceInfo(self, member, info):
+ """Set the member's bounce information.
+
+ When info is None, any bounce info for the member is cleared.
+
+ Bounce info is opaque to the MemberAdaptor. It is set by this method
+ and returned by getBounceInfo() without modification.
+ """
+ raise NotImplemented
diff --git a/Mailman/Message.py b/Mailman/Message.py
new file mode 100644
index 00000000..b82ddf81
--- /dev/null
+++ b/Mailman/Message.py
@@ -0,0 +1,274 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Standard Mailman message object.
+
+This is a subclass of mimeo.Message but provides a slightly extended interface
+which is more convenient for use inside Mailman.
+"""
+
+import email
+import email.Message
+import email.Utils
+from email.Charset import Charset
+from email.Header import Header
+
+from types import ListType, StringType
+
+from Mailman import mm_cfg
+from Mailman import Utils
+
+COMMASPACE = ', '
+
+VERSION = tuple([int(s) for s in email.__version__.split('.')])
+
+
+
+class Message(email.Message.Message):
+ def __init__(self):
+ # We need a version number so that we can optimize __setstate__()
+ self.__version__ = VERSION
+ email.Message.Message.__init__(self)
+
+ # BAW: For debugging w/ bin/dumpdb. Apparently pprint uses repr.
+ def __repr__(self):
+ return self.__str__()
+
+ def __setstate__(self, d):
+ # The base class attributes have changed over time. Which could
+ # affect Mailman if messages are sitting in the queue at the time of
+ # upgrading the email package. We shouldn't burden email with this,
+ # so we handle schema updates here.
+ self.__dict__ = d
+ # We know that email 2.4.3 is up-to-date
+ version = d.get('__version__', (0, 0, 0))
+ d['__version__'] = VERSION
+ if version >= VERSION:
+ return
+ # Messages grew a _charset attribute between email version 0.97 and 1.1
+ if not d.has_key('_charset'):
+ self._charset = None
+ # Messages grew a _default_type attribute between v2.1 and v2.2
+ if not d.has_key('_default_type'):
+ # We really have no idea whether this message object is contained
+ # inside a multipart/digest or not, so I think this is the best we
+ # can do.
+ self._default_type = 'text/plain'
+ # Header instances used to allow both strings and Charsets in their
+ # _chunks, but by email 2.4.3 now it's just Charsets.
+ headers = []
+ hchanged = 0
+ for k, v in self._headers:
+ if isinstance(v, Header):
+ chunks = []
+ cchanged = 0
+ for s, charset in v._chunks:
+ if isinstance(charset, StringType):
+ charset = Charset(charset)
+ cchanged = 1
+ chunks.append((s, charset))
+ if cchanged:
+ v._chunks = chunks
+ hchanged = 1
+ headers.append((k, v))
+ if hchanged:
+ self._headers = headers
+
+ # I think this method ought to eventually be deprecated
+ def get_sender(self, use_envelope=None, preserve_case=0):
+ """Return the address considered to be the author of the email.
+
+ This can return either the From: header, the Sender: header or the
+ envelope header (a.k.a. the unixfrom header). The first non-empty
+ header value found is returned. However the search order is
+ determined by the following:
+
+ - If mm_cfg.USE_ENVELOPE_SENDER is true, then the search order is
+ Sender:, From:, unixfrom
+
+ - Otherwise, the search order is From:, Sender:, unixfrom
+
+ The optional argument use_envelope, if given overrides the
+ mm_cfg.USE_ENVELOPE_SENDER setting. It should be set to either 0 or 1
+ (don't use None since that indicates no-override).
+
+ unixfrom should never be empty. The return address is always
+ lowercased, unless preserve_case is true.
+
+ This method differs from get_senders() in that it returns one and only
+ one address, and uses a different search order.
+ """
+ senderfirst = mm_cfg.USE_ENVELOPE_SENDER
+ if use_envelope is not None:
+ senderfirst = use_envelope
+ if senderfirst:
+ headers = ('sender', 'from')
+ else:
+ headers = ('from', 'sender')
+ for h in headers:
+ # Use only the first occurrance of Sender: or From:, although it's
+ # not likely there will be more than one.
+ fieldval = self[h]
+ if not fieldval:
+ continue
+ addrs = email.Utils.getaddresses([fieldval])
+ try:
+ realname, address = addrs[0]
+ except IndexError:
+ continue
+ if address:
+ break
+ else:
+ # We didn't find a non-empty header, so let's fall back to the
+ # unixfrom address. This should never be empty, but if it ever
+ # is, it's probably a Really Bad Thing. Further, we just assume
+ # that if the unixfrom exists, the second field is the address.
+ unixfrom = self.get_unixfrom()
+ if unixfrom:
+ address = unixfrom.split()[1]
+ else:
+ # TBD: now what?!
+ address = ''
+ if not preserve_case:
+ return address.lower()
+ return address
+
+ def get_senders(self, preserve_case=0, headers=None):
+ """Return a list of addresses representing the author of the email.
+
+ The list will contain the following addresses (in order)
+ depending on availability:
+
+ 1. From:
+ 2. unixfrom
+ 3. Reply-To:
+ 4. Sender:
+
+ The return addresses are always lower cased, unless `preserve_case' is
+ true. Optional `headers' gives an alternative search order, with None
+ meaning, search the unixfrom header. Items in `headers' are field
+ names without the trailing colon.
+ """
+ if headers is None:
+ headers = mm_cfg.SENDER_HEADERS
+ pairs = []
+ for h in headers:
+ if h is None:
+ # get_unixfrom() returns None if there's no envelope
+ fieldval = self.get_unixfrom() or ''
+ try:
+ pairs.append(('', fieldval.split()[1]))
+ except IndexError:
+ # Ignore badly formatted unixfroms
+ pass
+ else:
+ fieldvals = self.get_all(h)
+ if fieldvals:
+ pairs.extend(email.Utils.getaddresses(fieldvals))
+ authors = []
+ for pair in pairs:
+ address = pair[1]
+ if address is not None and not preserve_case:
+ address = address.lower()
+ authors.append(address)
+ return authors
+
+
+
+class UserNotification(Message):
+ """Class for internally crafted messages."""
+
+ def __init__(self, recip, sender, subject=None, text=None, lang=None):
+ Message.__init__(self)
+ charset = None
+ if lang is not None:
+ charset = Charset(Utils.GetCharSet(lang))
+ if text is not None:
+ self.set_payload(text, charset)
+ if subject is None:
+ subject = '(no subject)'
+ self['Subject'] = Header(subject, charset, header_name='Subject')
+ self['From'] = sender
+ if isinstance(recip, ListType):
+ self['To'] = COMMASPACE.join(recip)
+ self.recips = recip
+ else:
+ self['To'] = recip
+ self.recips = [recip]
+
+ def send(self, mlist, **_kws):
+ """Sends the message by enqueuing it to the `virgin' queue.
+
+ This is used for all internally crafted messages.
+ """
+ # Since we're crafting the message from whole cloth, let's make sure
+ # this message has a Message-ID. Yes, the MTA would give us one, but
+ # this is useful for logging to logs/smtp.
+ if not self.has_key('message-id'):
+ self['Message-ID'] = Utils.unique_message_id(mlist)
+ # Ditto for Date: which is required by RFC 2822
+ if not self.has_key('date'):
+ self['Date'] = email.Utils.formatdate(localtime=1)
+ # UserNotifications are typically for admin messages, and for messages
+ # other than list explosions. Send these out as Precedence: bulk, but
+ # don't override an existing Precedence: header.
+ if not self.has_key('precedence'):
+ self['Precedence'] = 'bulk'
+ self._enqueue(mlist, **_kws)
+
+ def _enqueue(self, mlist, **_kws):
+ # Not imported at module scope to avoid import loop
+ from Mailman.Queue.sbcache import get_switchboard
+ virginq = get_switchboard(mm_cfg.VIRGINQUEUE_DIR)
+ # The message metadata better have a `recip' attribute
+ virginq.enqueue(self,
+ listname = mlist.internal_name(),
+ recips = self.recips,
+ nodecorate = 1,
+ reduced_list_headers = 1,
+ **_kws)
+
+
+
+class OwnerNotification(UserNotification):
+ """Like user notifications, but this message goes to the list owners."""
+
+ def __init__(self, mlist, subject=None, text=None, tomoderators=1):
+ recips = mlist.owner[:]
+ if tomoderators:
+ recips.extend(mlist.moderator)
+ # We have to set the owner to the site's -bounces address, otherwise
+ # we'll get a mail loop if an owner's address bounces.
+ sender = Utils.get_site_email(mlist.host_name, 'bounces')
+ lang = mlist.preferred_language
+ UserNotification.__init__(self, recips, sender, subject, text, lang)
+ # Hack the To header to look like it's going to the -owner address
+ del self['to']
+ self['To'] = mlist.GetOwnerEmail()
+ self._sender = sender
+
+ def _enqueue(self, mlist, **_kws):
+ # Not imported at module scope to avoid import loop
+ from Mailman.Queue.sbcache import get_switchboard
+ virginq = get_switchboard(mm_cfg.VIRGINQUEUE_DIR)
+ # The message metadata better have a `recip' attribute
+ virginq.enqueue(self,
+ listname = mlist.internal_name(),
+ recips = self.recips,
+ nodecorate = 1,
+ reduced_list_headers = 1,
+ envsender = self._sender,
+ **_kws)
diff --git a/Mailman/OldStyleMemberships.py b/Mailman/OldStyleMemberships.py
new file mode 100644
index 00000000..cc42cb90
--- /dev/null
+++ b/Mailman/OldStyleMemberships.py
@@ -0,0 +1,353 @@
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Old style Mailman membership adaptor.
+
+This adaptor gets and sets member information on the MailList object given to
+the constructor. It also equates member keys and lower-cased email addresses,
+i.e. KEY is LCE.
+
+This is the adaptor used by default in Mailman 2.1.
+"""
+
+import time
+from types import StringType
+
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman import Errors
+from Mailman import MemberAdaptor
+
+ISREGULAR = 1
+ISDIGEST = 2
+
+# XXX check for bare access to mlist.members, mlist.digest_members,
+# mlist.user_options, mlist.passwords, mlist.topics_userinterest
+
+# XXX Fix Errors.MMAlreadyAMember and Errors.NotAMember
+# Actually, fix /all/ errors
+
+
+
+class OldStyleMemberships(MemberAdaptor.MemberAdaptor):
+ def __init__(self, mlist):
+ self.__mlist = mlist
+
+ #
+ # Read interface
+ #
+ def getMembers(self):
+ return self.__mlist.members.keys() + self.__mlist.digest_members.keys()
+
+ def getRegularMemberKeys(self):
+ return self.__mlist.members.keys()
+
+ def getDigestMemberKeys(self):
+ return self.__mlist.digest_members.keys()
+
+ def __get_cp_member(self, member):
+ lcmember = member.lower()
+ missing = []
+ val = self.__mlist.members.get(lcmember, missing)
+ if val is not missing:
+ if isinstance(val, StringType):
+ return val, ISREGULAR
+ else:
+ return lcmember, ISREGULAR
+ val = self.__mlist.digest_members.get(lcmember, missing)
+ if val is not missing:
+ if isinstance(val, StringType):
+ return val, ISDIGEST
+ else:
+ return lcmember, ISDIGEST
+ return None, None
+
+ def isMember(self, member):
+ cpaddr, where = self.__get_cp_member(member)
+ if cpaddr is not None:
+ return 1
+ return 0
+
+ def getMemberKey(self, member):
+ cpaddr, where = self.__get_cp_member(member)
+ if cpaddr is None:
+ raise Errors.NotAMemberError, member
+ return member.lower()
+
+ def getMemberCPAddress(self, member):
+ cpaddr, where = self.__get_cp_member(member)
+ if cpaddr is None:
+ raise Errors.NotAMemberError, member
+ return cpaddr
+
+ def getMemberCPAddresses(self, members):
+ return [self.__get_cp_member(member)[0] for member in members]
+
+ def getMemberPassword(self, member):
+ secret = self.__mlist.passwords.get(member.lower())
+ if secret is None:
+ raise Errors.NotAMemberError, member
+ return secret
+
+ def authenticateMember(self, member, response):
+ secret = self.getMemberPassword(member)
+ if secret == response:
+ return secret
+ return 0
+
+ def __assertIsMember(self, member):
+ if not self.isMember(member):
+ raise Errors.NotAMemberError, member
+
+ def getMemberLanguage(self, member):
+ return self.__mlist.language.get(member.lower(),
+ self.__mlist.preferred_language)
+
+ def getMemberOption(self, member, flag):
+ self.__assertIsMember(member)
+ if flag == mm_cfg.Digests:
+ cpaddr, where = self.__get_cp_member(member)
+ return where == ISDIGEST
+ option = self.__mlist.user_options.get(member.lower(), 0)
+ return not not (option & flag)
+
+ def getMemberName(self, member):
+ self.__assertIsMember(member)
+ return self.__mlist.usernames.get(member.lower())
+
+ def getMemberTopics(self, member):
+ self.__assertIsMember(member)
+ return self.__mlist.topics_userinterest.get(member.lower(), [])
+
+ def getDeliveryStatus(self, member):
+ self.__assertIsMember(member)
+ return self.__mlist.delivery_status.get(
+ member.lower(),
+ # Values are tuples, so the default should also be a tuple. The
+ # second item will be ignored.
+ (MemberAdaptor.ENABLED, 0))[0]
+
+ def getDeliveryStatusChangeTime(self, member):
+ self.__assertIsMember(member)
+ return self.__mlist.delivery_status.get(
+ member.lower(),
+ # Values are tuples, so the default should also be a tuple. The
+ # second item will be ignored.
+ (MemberAdaptor.ENABLED, 0))[1]
+
+ def getDeliveryStatusMembers(self, status=(MemberAdaptor.UNKNOWN,
+ MemberAdaptor.BYUSER,
+ MemberAdaptor.BYADMIN,
+ MemberAdaptor.BYBOUNCE)):
+ return [member for member in self.getMembers()
+ if self.getDeliveryStatus(member) in status]
+
+ def getBouncingMembers(self):
+ return [member.lower() for member in self.__mlist.bounce_info.keys()]
+
+ def getBounceInfo(self, member):
+ self.__assertIsMember(member)
+ return self.__mlist.bounce_info.get(member.lower())
+
+ #
+ # Write interface
+ #
+ def addNewMember(self, member, **kws):
+ assert self.__mlist.Locked()
+ # Make sure this address isn't already a member
+ if self.__mlist.isMember(member):
+ raise Errors.MMAlreadyAMember, member
+ # Parse the keywords
+ digest = 0
+ password = Utils.MakeRandomPassword()
+ language = self.__mlist.preferred_language
+ realname = None
+ if kws.has_key('digest'):
+ digest = kws['digest']
+ del kws['digest']
+ if kws.has_key('password'):
+ password = kws['password']
+ del kws['password']
+ if kws.has_key('language'):
+ language = kws['language']
+ del kws['language']
+ if kws.has_key('realname'):
+ realname = kws['realname']
+ del kws['realname']
+ # Assert that no other keywords are present
+ if kws:
+ raise ValueError, kws.keys()
+ # If the localpart has uppercase letters in it, then the value in the
+ # members (or digest_members) dict is the case preserved address.
+ # Otherwise the value is 0. Note that the case of the domain part is
+ # of course ignored.
+ if Utils.LCDomain(member) == member.lower():
+ value = 0
+ else:
+ value = member
+ member = member.lower()
+ if digest:
+ self.__mlist.digest_members[member] = value
+ else:
+ self.__mlist.members[member] = value
+ self.setMemberPassword(member, password)
+
+ self.setMemberLanguage(member, language)
+ if realname:
+ self.setMemberName(member, realname)
+ # Set the member's default set of options
+ if self.__mlist.new_member_options:
+ self.__mlist.user_options[member] = self.__mlist.new_member_options
+
+ def removeMember(self, member):
+ assert self.__mlist.Locked()
+ self.__assertIsMember(member)
+ # Delete the appropriate entries from the various MailList attributes.
+ # Remember that not all of them will have an entry (only those with
+ # values different than the default).
+ memberkey = member.lower()
+ for attr in ('passwords', 'user_options', 'members', 'digest_members',
+ 'language', 'topics_userinterest', 'usernames',
+ 'bounce_info', 'delivery_status',
+ ):
+ dict = getattr(self.__mlist, attr)
+ if dict.has_key(memberkey):
+ del dict[memberkey]
+
+ def changeMemberAddress(self, member, newaddress, nodelete=0):
+ assert self.__mlist.Locked()
+ # Make sure the old address is a member. Assertions that the new
+ # address is not already a member is done by addNewMember() below.
+ self.__assertIsMember(member)
+ # Get the old values
+ memberkey = member.lower()
+ fullname = self.getMemberName(memberkey)
+ flags = self.__mlist.user_options.get(memberkey, 0)
+ digestsp = self.getMemberOption(memberkey, mm_cfg.Digests)
+ password = self.__mlist.passwords.get(memberkey,
+ Utils.MakeRandomPassword())
+ lang = self.getMemberLanguage(memberkey)
+ # Add the new member
+ self.addNewMember(newaddress, realname=fullname, digest=digestsp,
+ password=password, language=lang)
+ # Set the entire options bitfield
+ if flags:
+ self.__mlist.user_options[memberkey] = flags
+ # Delete the old memberkey
+ if not nodelete:
+ self.removeMember(memberkey)
+
+ def setMemberPassword(self, memberkey, password):
+ assert self.__mlist.Locked()
+ self.__assertIsMember(memberkey)
+ self.__mlist.passwords[memberkey.lower()] = password
+
+ def setMemberLanguage(self, memberkey, language):
+ assert self.__mlist.Locked()
+ self.__assertIsMember(memberkey)
+ self.__mlist.language[memberkey.lower()] = language
+
+ def setMemberOption(self, member, flag, value):
+ assert self.__mlist.Locked()
+ self.__assertIsMember(member)
+ memberkey = member.lower()
+ # There's one extra gotcha we have to deal with. If the user is
+ # toggling the Digests flag, then we need to move their entry from
+ # mlist.members to mlist.digest_members or vice versa. Blarg. Do
+ # this before the flag setting below in case it fails.
+ if flag == mm_cfg.Digests:
+ if value:
+ # Be sure the list supports digest delivery
+ if not self.__mlist.digestable:
+ raise Errors.CantDigestError
+ # The user is turning on digest mode
+ if self.__mlist.digest_members.has_key(memberkey):
+ raise Errors.AlreadyReceivingDigests, member
+ cpuser = self.__mlist.members.get(memberkey)
+ if cpuser is None:
+ raise Errors.NotAMemberError, member
+ del self.__mlist.members[memberkey]
+ self.__mlist.digest_members[memberkey] = cpuser
+ else:
+ # Be sure the list supports regular delivery
+ if not self.__mlist.nondigestable:
+ raise Errors.MustDigestError
+ # The user is turning off digest mode
+ if self.__mlist.members.has_key(memberkey):
+ raise Errors.AlreadyReceivingRegularDeliveries, member
+ cpuser = self.__mlist.digest_members.get(memberkey)
+ if cpuser is None:
+ raise Errors.NotAMemberError, member
+ del self.__mlist.digest_members[memberkey]
+ self.__mlist.members[memberkey] = cpuser
+ # When toggling off digest delivery, we want to be sure to set
+ # things up so that the user receives one last digest,
+ # otherwise they may lose some email
+ self.__mlist.one_last_digest[memberkey] = cpuser
+ # We don't need to touch user_options because the digest state
+ # isn't kept as a bitfield flag.
+ return
+ # This is a bit kludgey because the semantics are that if the user has
+ # no options set (i.e. the value would be 0), then they have no entry
+ # in the user_options dict. We use setdefault() here, and then del
+ # the entry below just to make things (questionably) cleaner.
+ self.__mlist.user_options.setdefault(memberkey, 0)
+ if value:
+ self.__mlist.user_options[memberkey] |= flag
+ else:
+ self.__mlist.user_options[memberkey] &= ~flag
+ if not self.__mlist.user_options[memberkey]:
+ del self.__mlist.user_options[memberkey]
+
+ def setMemberName(self, member, realname):
+ assert self.__mlist.Locked()
+ self.__assertIsMember(member)
+ self.__mlist.usernames[member.lower()] = realname
+
+ def setMemberTopics(self, member, topics):
+ assert self.__mlist.Locked()
+ self.__assertIsMember(member)
+ memberkey = member.lower()
+ if topics:
+ self.__mlist.topics_userinterest[memberkey] = topics
+ # if topics is empty, then delete the entry in this dictionary
+ elif self.__mlist.topics_userinterest.has_key(memberkey):
+ del self.__mlist.topics_userinterest[memberkey]
+
+ def setDeliveryStatus(self, member, status):
+ assert status in (MemberAdaptor.ENABLED, MemberAdaptor.UNKNOWN,
+ MemberAdaptor.BYUSER, MemberAdaptor.BYADMIN,
+ MemberAdaptor.BYBOUNCE)
+ assert self.__mlist.Locked()
+ self.__assertIsMember(member)
+ member = member.lower()
+ if status == MemberAdaptor.ENABLED:
+ self.setBounceInfo(member, None)
+ # Otherwise, nothing to do
+ else:
+ self.__mlist.delivery_status[member] = (status, time.time())
+
+ def setBounceInfo(self, member, info):
+ assert self.__mlist.Locked()
+ self.__assertIsMember(member)
+ member = member.lower()
+ if info is None:
+ if self.__mlist.bounce_info.has_key(member):
+ del self.__mlist.bounce_info[member]
+ if self.__mlist.delivery_status.has_key(member):
+ del self.__mlist.delivery_status[member]
+ else:
+ self.__mlist.bounce_info[member] = info
diff --git a/Mailman/Pending.py b/Mailman/Pending.py
new file mode 100644
index 00000000..be1c6cac
--- /dev/null
+++ b/Mailman/Pending.py
@@ -0,0 +1,204 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+""" Track pending confirmation of subscriptions.
+
+new(stuff...) places an item's data in the db, returning its cookie.
+
+confirmed(cookie) returns a tuple for the data, removing the item
+from the db. It returns None if the cookie is not registered.
+"""
+
+import os
+import time
+import sha
+import marshal
+import cPickle
+import random
+import errno
+
+from Mailman import mm_cfg
+from Mailman import LockFile
+
+DBFILE = os.path.join(mm_cfg.DATA_DIR, 'pending.db')
+PCKFILE = os.path.join(mm_cfg.DATA_DIR, 'pending.pck')
+LOCKFILE = os.path.join(mm_cfg.LOCK_DIR, 'pending.lock')
+
+# Types of pending records
+SUBSCRIPTION = 'S'
+UNSUBSCRIPTION = 'U'
+CHANGE_OF_ADDRESS = 'C'
+HELD_MESSAGE = 'H'
+RE_ENABLE = 'E'
+
+_ALLKEYS = [(x,) for x in (SUBSCRIPTION, UNSUBSCRIPTION,
+ CHANGE_OF_ADDRESS, HELD_MESSAGE,
+ RE_ENABLE,
+ )]
+
+
+
+def new(*content):
+ """Create a new entry in the pending database, returning cookie for it."""
+ # It's a programming error if this assertion fails! We do it this way so
+ # the assert test won't fail if the sequence is empty.
+ assert content[:1] in _ALLKEYS
+ # Acquire the pending database lock, letting TimeOutError percolate up.
+ lock = LockFile.LockFile(LOCKFILE)
+ lock.lock(timeout=30)
+ try:
+ # Load the current database
+ db = _load()
+ # Calculate a unique cookie
+ while 1:
+ n = random.random()
+ now = time.time()
+ hashfood = str(now) + str(n) + str(content)
+ cookie = sha.new(hashfood).hexdigest()
+ if not db.has_key(cookie):
+ break
+ # Store the content, plus the time in the future when this entry will
+ # be evicted from the database, due to staleness.
+ db[cookie] = content
+ evictions = db.setdefault('evictions', {})
+ evictions[cookie] = now + mm_cfg.PENDING_REQUEST_LIFE
+ _save(db)
+ return cookie
+ finally:
+ lock.unlock()
+
+
+
+def confirm(cookie, expunge=1):
+ """Return data for cookie, or None if not found.
+
+ If optional expunge is true (the default), the record is also removed from
+ the database.
+ """
+ # Acquire the pending database lock, letting TimeOutError percolate up.
+ # BAW: we perhaps shouldn't acquire the lock if expunge==0.
+ lock = LockFile.LockFile(LOCKFILE)
+ lock.lock(timeout=30)
+ try:
+ # Load the database
+ db = _load()
+ missing = []
+ content = db.get(cookie, missing)
+ if content is missing:
+ return None
+ # Remove the entry from the database
+ if expunge:
+ del db[cookie]
+ del db['evictions'][cookie]
+ _save(db)
+ return content
+ finally:
+ lock.unlock()
+
+
+
+def _load():
+ # The list's lock must be acquired.
+ #
+ # First try to load the pickle file
+ fp = None
+ try:
+ try:
+ fp = open(PCKFILE)
+ return cPickle.load(fp)
+ except IOError, e:
+ if e.errno <> errno.ENOENT: raise
+ try:
+ # Try to load the old DBFILE
+ fp = open(DBFILE)
+ return marshal.load(fp)
+ except IOError, e:
+ if e.errno <> errno.ENOENT: raise
+ # Fresh pendings database
+ return {'evictions': {}}
+ finally:
+ if fp:
+ fp.close()
+
+
+def _save(db):
+ # Lock must be acquired.
+ evictions = db['evictions']
+ now = time.time()
+ for cookie, data in db.items():
+ if cookie in ('evictions', 'version'):
+ continue
+ timestamp = evictions[cookie]
+ if now > timestamp:
+ # The entry is stale, so remove it.
+ del db[cookie]
+ del evictions[cookie]
+ # Clean out any bogus eviction entries.
+ for cookie in evictions.keys():
+ if not db.has_key(cookie):
+ del evictions[cookie]
+ db['version'] = mm_cfg.PENDING_FILE_SCHEMA_VERSION
+ omask = os.umask(007)
+ # Always save this as a pickle (safely), and after that succeeds, blow
+ # away any old marshal file.
+ tmpfile = PCKFILE + '.tmp'
+ fp = None
+ try:
+ fp = open(tmpfile, 'w')
+ cPickle.dump(db, fp)
+ fp.close()
+ fp = None
+ os.rename(tmpfile, PCKFILE)
+ if os.path.exists(DBFILE):
+ os.remove(DBFILE)
+ finally:
+ if fp:
+ fp.close()
+ os.umask(omask)
+
+
+
+def _update(olddb):
+ # Update an old pending_subscriptions.db database to the new format
+ lock = LockFile.LockFile(LOCKFILE)
+ lock.lock(timeout=30)
+ try:
+ # We don't need this entry anymore
+ if olddb.has_key('lastculltime'):
+ del olddb['lastculltime']
+ db = _load()
+ evictions = db.setdefault('evictions', {})
+ for cookie, data in olddb.items():
+ # The cookies used to be kept as a 6 digit integer. We now keep
+ # the cookies as a string (sha in our case, but it doesn't matter
+ # for cookie matching).
+ cookie = str(cookie)
+ # The old format kept the content as a tuple and tacked the
+ # timestamp on as the last element of the tuple. We keep the
+ # timestamps separate, but require the prepending of a record type
+ # indicator. We know that the only things that were kept in the
+ # old format were subscription requests. Also, the old request
+ # format didn't have the subscription language. Best we can do
+ # here is use the server default.
+ db[cookie] = (SUBSCRIPTION,) + data[:-1] + \
+ (mm_cfg.DEFAULT_SERVER_LANGUAGE,)
+ # The old database format kept the timestamp as the time the
+ # request was made. The new format keeps it as the time the
+ # request should be evicted.
+ evictions[cookie] = data[-1] + mm_cfg.PENDING_REQUEST_LIFE
+ _save(db)
+ finally:
+ lock.unlock()
diff --git a/Mailman/Post.py b/Mailman/Post.py
new file mode 100644
index 00000000..a184f1cf
--- /dev/null
+++ b/Mailman/Post.py
@@ -0,0 +1,61 @@
+#! /usr/bin/env python
+#
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+import sys
+
+from Mailman import mm_cfg
+from Mailman.Queue.sbcache import get_switchboard
+
+
+
+def inject(listname, msg, recips=None, qdir=None):
+ if qdir is None:
+ qdir = mm_cfg.INQUEUE_DIR
+ queue = get_switchboard(qdir)
+ kws = {'listname' : listname,
+ 'tolist' : 1,
+ '_plaintext': 1,
+ }
+ if recips:
+ kws['recips'] = recips
+ queue.enqueue(msg, **kws)
+
+
+
+if __name__ == '__main__':
+ # When called as a command line script, standard input is read to get the
+ # list that this message is destined to, the list of explicit recipients,
+ # and the message to send (in its entirety). stdin must have the
+ # following format:
+ #
+ # line 1: the internal name of the mailing list
+ # line 2: the number of explicit recipients to follow. 0 means to use the
+ # list's membership to calculate recipients.
+ # line 3 - 3+recipnum: explicit recipients, one per line
+ # line 4+recipnum - end of file: the message in RFC 822 format (may
+ # include an initial Unix-from header)
+ listname = sys.stdin.readline().strip()
+ numrecips = int(sys.stdin.readline())
+ if numrecips == 0:
+ recips = None
+ else:
+ recips = []
+ for i in range(numrecips):
+ recips.append(sys.stdin.readline().strip())
+ # If the message isn't parsable, we won't get an error here
+ inject(listname, sys.stdin.read(), recips)
diff --git a/Mailman/Queue/.cvsignore b/Mailman/Queue/.cvsignore
new file mode 100644
index 00000000..f3c7a7c5
--- /dev/null
+++ b/Mailman/Queue/.cvsignore
@@ -0,0 +1 @@
+Makefile
diff --git a/Mailman/Queue/ArchRunner.py b/Mailman/Queue/ArchRunner.py
new file mode 100644
index 00000000..14097332
--- /dev/null
+++ b/Mailman/Queue/ArchRunner.py
@@ -0,0 +1,76 @@
+# Copyright (C) 2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Outgoing queue runner."""
+
+import time
+from email.Utils import parsedate_tz, mktime_tz, formatdate
+
+from Mailman import mm_cfg
+from Mailman import LockFile
+from Mailman.Queue.Runner import Runner
+
+
+
+class ArchRunner(Runner):
+ QDIR = mm_cfg.ARCHQUEUE_DIR
+
+ def _dispose(self, mlist, msg, msgdata):
+ # Support clobber_date, i.e. setting the date in the archive to the
+ # received date, not the (potentially bogus) Date: header of the
+ # original message.
+ clobber = 0
+ originaldate = msg.get('date')
+ receivedtime = formatdate(msgdata['received_time'])
+ if not originaldate:
+ clobber = 1
+ elif mm_cfg.ARCHIVER_CLOBBER_DATE_POLICY == 1:
+ clobber = 1
+ elif mm_cfg.ARCHIVER_CLOBBER_DATE_POLICY == 2:
+ # what's the timestamp on the original message?
+ tup = parsedate_tz(originaldate)
+ now = time.time()
+ try:
+ if not tup:
+ clobber = 1
+ elif abs(now - mktime_tz(tup)) > \
+ mm_cfg.ARCHIVER_ALLOWABLE_SANE_DATE_SKEW:
+ clobber = 1
+ except ValueError:
+ # The likely cause of this is that the year in the Date: field
+ # is horribly incorrect, e.g. (from SF bug # 571634):
+ # Date: Tue, 18 Jun 0102 05:12:09 +0500
+ # Obviously clobber such dates.
+ clobber = 1
+ if clobber:
+ del msg['date']
+ del msg['x-original-date']
+ msg['Date'] = receivedtime
+ if originaldate:
+ msg['X-Original-Date'] = originaldate
+ # Always put an indication of when we received the message.
+ msg['X-List-Received-Date'] = receivedtime
+ # Now try to get the list lock
+ try:
+ mlist.Lock(timeout=mm_cfg.LIST_LOCK_TIMEOUT)
+ except LockFile.TimeOutError:
+ # oh well, try again later
+ return 1
+ try:
+ mlist.ArchiveMail(msg)
+ mlist.Save()
+ finally:
+ mlist.Unlock()
diff --git a/Mailman/Queue/BounceRunner.py b/Mailman/Queue/BounceRunner.py
new file mode 100644
index 00000000..e59ac47e
--- /dev/null
+++ b/Mailman/Queue/BounceRunner.py
@@ -0,0 +1,195 @@
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Bounce queue runner."""
+
+import re
+from email.MIMEText import MIMEText
+from email.MIMEMessage import MIMEMessage
+from email.Utils import parseaddr
+
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman import LockFile
+from Mailman.Message import UserNotification
+from Mailman.Bouncers import BouncerAPI
+from Mailman.Queue.Runner import Runner
+from Mailman.Queue.sbcache import get_switchboard
+from Mailman.Logging.Syslog import syslog
+from Mailman.i18n import _
+
+COMMASPACE = ', '
+
+
+
+class BounceRunner(Runner):
+ QDIR = mm_cfg.BOUNCEQUEUE_DIR
+ # We only do bounce processing once per minute.
+ SLEEPTIME = mm_cfg.minutes(1)
+
+ def _dispose(self, mlist, msg, msgdata):
+ # Make sure we have the most up-to-date state
+ mlist.Load()
+ outq = get_switchboard(mm_cfg.OUTQUEUE_DIR)
+ # There are a few possibilities here:
+ #
+ # - the message could have been VERP'd in which case, we know exactly
+ # who the message was destined for. That make our job easy.
+ # - the message could have been originally destined for a list owner,
+ # but a list owner address itself bounced. That's bad, and for now
+ # we'll simply log the problem and attempt to deliver the message to
+ # the site owner.
+ #
+ # All messages to list-owner@vdom.ain have their envelope sender set
+ # to site-owner@dom.ain (no virtual domain). Is this a bounce for a
+ # message to a list owner, coming to the site owner?
+ if msg.get('to', '') == Utils.get_site_email(extra='-owner'):
+ # Send it on to the site owners, but craft the envelope sender to
+ # be the -loop detection address, so if /they/ bounce, we won't
+ # get stuck in a bounce loop.
+ outq.enqueue(msg, msgdata,
+ recips=[Utils.get_site_email()],
+ envsender=Utils.get_site_email(extra='loop'),
+ )
+ # List isn't doing bounce processing?
+ if not mlist.bounce_processing:
+ return
+ # Try VERP detection first, since it's quick and easy
+ addrs = verp_bounce(mlist, msg)
+ if not addrs:
+ # That didn't give us anything useful, so try the old fashion
+ # bounce matching modules
+ addrs = BouncerAPI.ScanMessages(mlist, msg)
+ # If that still didn't return us any useful addresses, then send it on
+ # or discard it.
+ if not addrs:
+ syslog('bounce', 'bounce message w/no discernable addresses: %s',
+ msg.get('message-id'))
+ maybe_forward(mlist, msg)
+ return
+ # BAW: It's possible that there are None's in the list of addresses,
+ # although I'm unsure how that could happen. Possibly ScanMessages()
+ # can let None's sneak through. In any event, this will kill them.
+ addrs = filter(None, addrs)
+ # Okay, we have some recognized addresses. We now need to register
+ # the bounces for each of these. If the bounce came to the site list,
+ # then we'll register the address on every list in the system, but
+ # note: this could be VERY resource intensive!
+ foundp = 0
+ listname = mlist.internal_name()
+ if listname == mm_cfg.MAILMAN_SITE_LIST:
+ foundp = 1
+ for listname in Utils.list_names():
+ xlist = self._open_list(listname)
+ xlist.Load()
+ for addr in addrs:
+ if xlist.isMember(addr):
+ unlockp = 0
+ if not xlist.Locked():
+ try:
+ xlist.Lock(timeout=mm_cfg.LIST_LOCK_TIMEOUT)
+ except LockFile.TimeOutError:
+ # Oh well, forget aboutf this list
+ continue
+ unlockp = 1
+ try:
+ xlist.registerBounce(addr, msg)
+ foundp = 1
+ xlist.Save()
+ finally:
+ if unlockp:
+ xlist.Unlock()
+ else:
+ try:
+ mlist.Lock(timeout=mm_cfg.LIST_LOCK_TIMEOUT)
+ except LockFile.TimeOutError:
+ # Try again later
+ syslog('bounce', "%s: couldn't get list lock", listname)
+ return 1
+ else:
+ try:
+ for addr in addrs:
+ if mlist.isMember(addr):
+ mlist.registerBounce(addr, msg)
+ foundp = 1
+ mlist.Save()
+ finally:
+ mlist.Unlock()
+ if not foundp:
+ # It means an address was recognized but it wasn't an address
+ # that's on any mailing list at this site. BAW: don't forward
+ # these, but do log it.
+ syslog('bounce', 'bounce message with non-members of %s: %s',
+ listname, COMMASPACE.join(addrs))
+ #maybe_forward(mlist, msg)
+
+
+
+def verp_bounce(mlist, msg):
+ bmailbox, bdomain = Utils.ParseEmail(mlist.GetBouncesEmail())
+ # Sadly not every MTA bounces VERP messages correctly, or consistently.
+ # Fall back to Delivered-To: (Postfix), Envelope-To: (Exim) and
+ # Apparently-To:, and then short-circuit if we still don't have anything
+ # to work with. Note that there can be multiple Delivered-To: headers so
+ # we need to search them all (and we don't worry about false positives for
+ # forwarded email, because only one should match VERP_REGEXP).
+ vals = []
+ for header in ('to', 'delivered-to', 'envelope-to', 'apparently-to'):
+ vals.extend(msg.get_all(header, []))
+ for field in vals:
+ to = parseaddr(field)[1]
+ if not to:
+ continue # empty header
+ mo = re.search(mm_cfg.VERP_REGEXP, to)
+ if not mo:
+ continue # no match of regexp
+ try:
+ if bmailbox <> mo.group('bounces'):
+ continue # not a bounce to our list
+ # All is good
+ addr = '%s@%s' % mo.group('mailbox', 'host')
+ except IndexError:
+ syslog('error',
+ "VERP_REGEXP doesn't yield the right match groups: %s",
+ mm_cfg.VERP_REGEXP)
+ return []
+ return [addr]
+
+
+
+def maybe_forward(mlist, msg):
+ # Does the list owner want to get non-matching bounce messages?
+ # If not, simply discard it.
+ if mlist.bounce_unrecognized_goes_to_list_owner:
+ adminurl = mlist.GetScriptURL('admin', absolute=1) + '/bounce'
+ mlist.ForwardMessage(msg,
+ text=_("""\
+The attached message was received as a bounce, but either the bounce format
+was not recognized, or no member addresses could be extracted from it. This
+mailing list has been configured to send all unrecognized bounce messages to
+the list administrator(s).
+
+For more information see:
+%(adminurl)s
+
+"""),
+ subject=_('Uncaught bounce notification'),
+ tomoderators=0)
+ syslog('bounce', 'forwarding unrecognized, message-id: %s',
+ msg.get('message-id', 'n/a'))
+ else:
+ syslog('bounce', 'discarding unrecognized, message-id: %s',
+ msg.get('message-id', 'n/a'))
diff --git a/Mailman/Queue/CommandRunner.py b/Mailman/Queue/CommandRunner.py
new file mode 100644
index 00000000..303d4c52
--- /dev/null
+++ b/Mailman/Queue/CommandRunner.py
@@ -0,0 +1,220 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""-request robot command queue runner."""
+
+# See the delivery diagram in IncomingRunner.py. This module handles all
+# email destined for mylist-request, -join, and -leave. It no longer handles
+# bounce messages (i.e. -admin or -bounces), nor does it handle mail to
+# -owner.
+
+
+
+# BAW: get rid of this when we Python 2.2 is a minimum requirement.
+from __future__ import nested_scopes
+
+import sys
+import re
+from types import StringType, UnicodeType
+
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman import Message
+from Mailman.Handlers import Replybot
+from Mailman.i18n import _
+from Mailman.Queue.Runner import Runner
+from Mailman.Logging.Syslog import syslog
+from Mailman import LockFile
+
+from email.MIMEText import MIMEText
+from email.MIMEMessage import MIMEMessage
+from email.Iterators import typed_subpart_iterator
+
+NL = '\n'
+
+
+
+class Results:
+ def __init__(self, mlist, msg, msgdata):
+ self.mlist = mlist
+ self.msg = msg
+ self.msgdata = msgdata
+ # Only set returnaddr if the response is to go to someone other than
+ # the address specified in the From: header (e.g. for the password
+ # command).
+ self.returnaddr = None
+ self.commands = []
+ self.results = []
+ self.ignored = []
+ self.lineno = 0
+ self.subjcmdretried = 0
+ self.respond = 1
+ # Always process the Subject: header first
+ self.commands.append(msg.get('subject', ''))
+ # Find the first text/plain part
+ part = None
+ for part in typed_subpart_iterator(msg, 'text', 'plain'):
+ break
+ if part is None or part is not msg:
+ # Either there was no text/plain part or we ignored some
+ # non-text/plain parts.
+ self.results.append(_('Ignoring non-text/plain MIME parts'))
+ if part is None:
+ # E.g the outer Content-Type: was text/html
+ return
+ body = part.get_payload()
+ # text/plain parts better have string payloads
+ assert isinstance(body, StringType) or isinstance(body, UnicodeType)
+ lines = body.splitlines()
+ # Use no more lines than specified
+ self.commands.extend(lines[:mm_cfg.DEFAULT_MAIL_COMMANDS_MAX_LINES])
+ self.ignored.extend(lines[mm_cfg.DEFAULT_MAIL_COMMANDS_MAX_LINES:])
+
+ def process(self):
+ # Now, process each line until we find an error. The first
+ # non-command line found stops processing.
+ stop = 0
+ for line in self.commands:
+ if line and line.strip():
+ args = line.split()
+ cmd = args.pop(0).lower()
+ stop = self.do_command(cmd, args)
+ self.lineno += 1
+ if stop:
+ break
+
+ def do_command(self, cmd, args=None):
+ if args is None:
+ args = ()
+ # Try to import a command handler module for this command
+ modname = 'Mailman.Commands.cmd_' + cmd
+ try:
+ __import__(modname)
+ handler = sys.modules[modname]
+ except ImportError:
+ # If we're on line zero, it was the Subject: header that didn't
+ # contain a command. It's possible there's a Re: prefix (or
+ # localized version thereof) on the Subject: line that's messing
+ # things up. Pop the prefix off and try again... once.
+ #
+ # If that still didn't work it isn't enough to stop processing.
+ # BAW: should we include a message that the Subject: was ignored?
+ if not self.subjcmdretried and args:
+ self.subjcmdretried += 1
+ cmd = args.pop(0)
+ return self.do_command(cmd, args)
+ return self.lineno <> 0
+ return handler.process(self, args)
+
+ def send_response(self):
+ # Helper
+ def indent(lines):
+ return [' ' + line for line in lines]
+ # Quick exit for some commands which don't need a response
+ if not self.respond:
+ return
+ resp = [Utils.wrap(_("""\
+The results of your email command are provided below.
+Attached is your original message.
+"""))]
+ if self.results:
+ resp.append(_('- Results:'))
+ resp.extend(indent(self.results))
+ # Ignore empty lines
+ unprocessed = [line for line in self.commands[self.lineno:]
+ if line and line.strip()]
+ if unprocessed:
+ resp.append(_('\n- Unprocessed:'))
+ resp.extend(indent(unprocessed))
+ if self.ignored:
+ resp.append(_('\n- Ignored:'))
+ resp.extend(indent(self.ignored))
+ resp.append(_('\n- Done.\n\n'))
+ results = MIMEText(
+ NL.join(resp),
+ _charset=Utils.GetCharSet(self.mlist.preferred_language))
+ # Safety valve for mail loops with misconfigured email 'bots. We
+ # don't respond to commands sent with "Precedence: bulk|junk|list"
+ # unless they explicitly "X-Ack: yes", but not all mail 'bots are
+ # correctly configured, so we max out the number of responses we'll
+ # give to an address in a single day.
+ #
+ # BAW: We wait until now to make this decision since our sender may
+ # not be self.msg.get_sender(), but I'm not sure this is right.
+ recip = self.returnaddr or self.msg.get_sender()
+ if not self.mlist.autorespondToSender(recip):
+ return
+ msg = Message.UserNotification(
+ recip,
+ self.mlist.GetBouncesEmail(),
+ _('The results of your email commands'),
+ lang=self.mlist.preferred_language)
+ msg.set_type('multipart/mixed')
+ msg.attach(results)
+ orig = MIMEMessage(self.msg)
+ msg.attach(orig)
+ msg.send(self.mlist)
+
+
+
+class CommandRunner(Runner):
+ QDIR = mm_cfg.CMDQUEUE_DIR
+
+ def _dispose(self, mlist, msg, msgdata):
+ # The policy here is similar to the Replybot policy. If a message has
+ # "Precedence: bulk|junk|list" and no "X-Ack: yes" header, we discard
+ # it to prevent replybot response storms.
+ precedence = msg.get('precedence', '').lower()
+ ack = msg.get('x-ack', '').lower()
+ if ack <> 'yes' and precedence in ('bulk', 'junk', 'list'):
+ syslog('vette', 'Precedence: %s message discarded by: %s',
+ precedence, mlist.GetRequestEmail())
+ return 0
+ # Do replybot for commands
+ mlist.Load()
+ Replybot.process(mlist, msg, msgdata)
+ if mlist.autorespond_requests == 1:
+ syslog('vette', 'replied and discard')
+ # w/discard
+ return 0
+ # Now craft the response
+ res = Results(mlist, msg, msgdata)
+ # BAW: Not all the functions of this qrunner require the list to be
+ # locked. Still, it's more convenient to lock it here and now and
+ # deal with lock failures in one place.
+ try:
+ mlist.Lock(timeout=mm_cfg.LIST_LOCK_TIMEOUT)
+ except LockFile.TimeOutError:
+ # Oh well, try again later
+ return 1
+ # This message will have been delivered to one of mylist-request,
+ # mylist-join, or mylist-leave, and the message metadata will contain
+ # a key to which one was used.
+ try:
+ if msgdata.get('torequest'):
+ res.process()
+ elif msgdata.get('tojoin'):
+ res.do_command('join')
+ elif msgdata.get('toleave'):
+ res.do_command('leave')
+ elif msgdata.get('toconfirm'):
+ mo = re.match(mm_cfg.VERP_CONFIRM_REGEXP, msg.get('to', ''))
+ if mo:
+ res.do_command('confirm', (mo.group('cookie'),))
+ res.send_response()
+ mlist.Save()
+ finally:
+ mlist.Unlock()
diff --git a/Mailman/Queue/IncomingRunner.py b/Mailman/Queue/IncomingRunner.py
new file mode 100644
index 00000000..4a60ceb9
--- /dev/null
+++ b/Mailman/Queue/IncomingRunner.py
@@ -0,0 +1,170 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Incoming queue runner."""
+
+# A typical Mailman list exposes nine aliases which point to seven different
+# wrapped scripts. E.g. for a list named `mylist', you'd have:
+#
+# mylist-bounces -> bounces (-admin is a deprecated alias)
+# mylist-confirm -> confirm
+# mylist-join -> join (-subscribe is an alias)
+# mylist-leave -> leave (-unsubscribe is an alias)
+# mylist-owner -> owner
+# mylist -> post
+# mylist-request -> request
+#
+# -request, -join, and -leave are a robot addresses; their sole purpose is to
+# process emailed commands in a Majordomo-like fashion (although the latter
+# two are hardcoded to subscription and unsubscription requests). -bounces is
+# the automated bounce processor, and all messages to list members have their
+# return address set to -bounces. If the bounce processor fails to extract a
+# bouncing member address, it can optionally forward the message on to the
+# list owners.
+#
+# -owner is for reaching a human operator with minimal list interaction
+# (i.e. no bounce processing). -confirm is another robot address which
+# processes replies to VERP-like confirmation notices.
+#
+# So delivery flow of messages look like this:
+#
+# joerandom ---> mylist ---> list members
+# | |
+# | |[bounces]
+# | mylist-bounces <---+ <-------------------------------+
+# | | |
+# | +--->[internal bounce processing] |
+# | ^ | |
+# | | | [bounce found] |
+# | [bounces *] +--->[register and discard] |
+# | | | | |
+# | | | |[*] |
+# | [list owners] |[no bounce found] | |
+# | ^ | | |
+# | | | | |
+# +-------> mylist-owner <--------+ | |
+# | | |
+# | data/owner-bounces.mbox <--[site list] <---+ |
+# | |
+# +-------> mylist-join--+ |
+# | | |
+# +------> mylist-leave--+ |
+# | | |
+# | v |
+# +-------> mylist-request |
+# | | |
+# | +---> [command processor] |
+# | | |
+# +-----> mylist-confirm ----> +---> joerandom |
+# | |
+# |[bounces] |
+# +----------------------+
+#
+# A person can send an email to the list address (for posting), the -owner
+# address (to reach the human operator), or the -confirm, -join, -leave, and
+# -request mailbots. Message to the list address are then forwarded on to the
+# list membership, with bounces directed to the -bounces address.
+#
+# [*] Messages sent to the -owner address are forwarded on to the list
+# owner/moderators. All -owner destined messages have their bounces directed
+# to the site list -bounces address, regardless of whether a human sent the
+# message or the message was crafted internally. The intention here is that
+# the site owners want to be notified when one of their list owners' addresses
+# starts bouncing (yes, the will be automated in a future release).
+#
+# Any messages to site owners has their bounces directed to a special
+# "loop-killer" address, which just dumps the message into
+# data/owners-bounces.mbox.
+#
+# Finally, message to any of the mailbots causes the requested action to be
+# performed. Results notifications are sent to the author of the message,
+# which all bounces pointing back to the -bounces address.
+
+
+import sys
+import os
+from cStringIO import StringIO
+
+from Mailman import mm_cfg
+from Mailman import Errors
+from Mailman import LockFile
+from Mailman.Queue.Runner import Runner
+from Mailman.Logging.Syslog import syslog
+
+
+
+class IncomingRunner(Runner):
+ QDIR = mm_cfg.INQUEUE_DIR
+
+ def _dispose(self, mlist, msg, msgdata):
+ # Try to get the list lock.
+ try:
+ mlist.Lock(timeout=mm_cfg.LIST_LOCK_TIMEOUT)
+ except LockFile.TimeOutError:
+ # Oh well, try again later
+ return 1
+ # Process the message through a handler pipeline. The handler
+ # pipeline can actually come from one of three places: the message
+ # metadata, the mlist, or the global pipeline.
+ #
+ # If a message was requeued due to an uncaught exception, its metadata
+ # will contain the retry pipeline. Use this above all else.
+ # Otherwise, if the mlist has a `pipeline' attribute, it should be
+ # used. Final fallback is the global pipeline.
+ try:
+ pipeline = self._get_pipeline(mlist, msg, msgdata)
+ status = self._dopipeline(mlist, msg, msgdata, pipeline)
+ if status:
+ msgdata['pipeline'] = pipeline
+ mlist.Save()
+ return status
+ finally:
+ mlist.Unlock()
+
+ # Overridable
+ def _get_pipeline(self, mlist, msg, msgdata):
+ # We must return a copy of the list, otherwise, the first message that
+ # flows through the pipeline will empty it out!
+ return msgdata.get('pipeline',
+ getattr(mlist, 'pipeline',
+ mm_cfg.GLOBAL_PIPELINE))[:]
+
+ def _dopipeline(self, mlist, msg, msgdata, pipeline):
+ while pipeline:
+ handler = pipeline.pop(0)
+ modname = 'Mailman.Handlers.' + handler
+ __import__(modname)
+ try:
+ pid = os.getpid()
+ sys.modules[modname].process(mlist, msg, msgdata)
+ # Failsafe -- a child may have leaked through.
+ if pid <> os.getpid():
+ syslog('error', 'child process leaked thru: %s', modname)
+ os._exit(1)
+ except Errors.DiscardMessage:
+ # Throw the message away; we need do nothing else with it.
+ syslog('vette', 'Message discarded, msgid: %s',
+ msg.get('message-id', 'n/a'))
+ return 0
+ except Errors.HoldMessage:
+ # Let the approval process take it from here. The message no
+ # longer needs to be queued.
+ return 0
+ except Errors.RejectMessage, e:
+ mlist.BounceMessage(msg, msgdata, e)
+ return 0
+ # We've successfully completed handling of this message
+ return 0
diff --git a/Mailman/Queue/MaildirRunner.py b/Mailman/Queue/MaildirRunner.py
new file mode 100644
index 00000000..e14ab339
--- /dev/null
+++ b/Mailman/Queue/MaildirRunner.py
@@ -0,0 +1,184 @@
+# Copyright (C) 2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Maildir pre-queue runner.
+
+Most MTAs can be configured to deliver messages to a `Maildir'[1]. This
+runner will read messages from a maildir's new/ directory and inject them into
+Mailman's qfiles/in directory for processing in the normal pipeline. This
+delivery mechanism contrasts with mail program delivery, where incoming
+messages end up in qfiles/in via the MTA executing the scripts/post script
+(and likewise for the other -aliases for each mailing list).
+
+The advantage to Maildir delivery is that it is more efficient; there's no
+need to fork an intervening program just to take the message from the MTA's
+standard output, to the qfiles/in directory.
+
+[1] http://cr.yp.to/proto/maildir.html
+
+We're going to use the :info flag == 1, experimental status flag for our own
+purposes. The :1 can be followed by one of these letters:
+
+- P means that MaildirRunner's in the process of parsing and enqueuing the
+ message. If successful, it will delete the file.
+
+- X means something failed during the parse/enqueue phase. An error message
+ will be logged to log/error and the file will be renamed <filename>:1,X.
+ MaildirRunner will never automatically return to this file, but once the
+ problem is fixed, you can manually move the file back to the new/ directory
+ and MaildirRunner will attempt to re-process it. At some point we may do
+ this automatically.
+
+See the variable USE_MAILDIR in Defaults.py.in for enabling this delivery
+mechanism.
+"""
+
+# NOTE: Maildir delivery is experimental in Mailman 2.1.
+
+import os
+import re
+import errno
+
+from email.Parser import Parser
+from email.Utils import parseaddr
+
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman.Message import Message
+from Mailman.Queue.Runner import Runner
+from Mailman.Queue.sbcache import get_switchboard
+from Mailman.Logging.Syslog import syslog
+
+# We only care about the listname and the subq as in listname@ or
+# listname-request@
+lre = re.compile(r"""
+ ^ # start of string
+ (?P<listname>[^-@]+) # listname@ or listname-subq@
+ (?: # non-grouping
+ - # dash separator
+ (?P<subq>[^-+@]+) # everything up to + or - or @
+ )? # if it exists
+ """, re.VERBOSE | re.IGNORECASE)
+
+
+
+class MaildirRunner(Runner):
+ # This class is much different than most runners because it pulls files
+ # of a different format than what scripts/post and friends leaves. The
+ # files this runner reads are just single message files as dropped into
+ # the directory by the MTA. This runner will read the file, and enqueue
+ # it in the expected qfiles directory for normal processing.
+ def __init__(self, slice=None, numslices=1):
+ # Don't call the base class constructor, but build enough of the
+ # underlying attributes to use the base class's implementation.
+ self._stop = 0
+ self._dir = os.path.join(mm_cfg.MAILDIR_DIR, 'new')
+ self._cur = os.path.join(mm_cfg.MAILDIR_DIR, 'cur')
+ self._parser = Parser(Message)
+
+ def _oneloop(self):
+ # Refresh this each time through the list. BAW: could be too
+ # expensive.
+ listnames = Utils.list_names()
+ # Cruise through all the files currently in the new/ directory
+ try:
+ files = os.listdir(self._dir)
+ except OSError, e:
+ if e.errno <> errno.ENOENT: raise
+ # Nothing's been delivered yet
+ return 0
+ for file in files:
+ srcname = os.path.join(self._dir, file)
+ dstname = os.path.join(self._cur, file + ':1,P')
+ xdstname = os.path.join(self._cur, file + ':1,X')
+ try:
+ os.rename(srcname, dstname)
+ except OSError, e:
+ if e.errno == errno.ENOENT:
+ # Some other MaildirRunner beat us to it
+ continue
+ syslog('error', 'Could not rename maildir file: %s', srcname)
+ raise
+ # Now open, read, parse, and enqueue this message
+ try:
+ fp = open(dstname)
+ try:
+ msg = self._parser.parse(fp)
+ finally:
+ fp.close()
+ # Now we need to figure out which queue of which list this
+ # message was destined for. See verp_bounce() in
+ # BounceRunner.py for why we do things this way.
+ vals = []
+ for header in ('delivered-to', 'envelope-to', 'apparently-to'):
+ vals.extend(msg.get_all(header, []))
+ for field in vals:
+ to = parseaddr(field)[1]
+ if not to:
+ continue
+ mo = lre.match(to)
+ if not mo:
+ # This isn't an address we care about
+ continue
+ listname, subq = mo.group('listname', 'subq')
+ if listname in listnames:
+ break
+ else:
+ # As far as we can tell, this message isn't destined for
+ # any list on the system. What to do?
+ syslog('error', 'Message apparently not for any list: %s',
+ xdstname)
+ os.rename(dstname, xdstname)
+ continue
+ # BAW: blech, hardcoded
+ msgdata = {'listname': listname}
+ # -admin is deprecated
+ if subq in ('bounces', 'admin'):
+ queue = get_switchboard(mm_cfg.BOUNCEQUEUE_DIR)
+ elif subq == 'confirm':
+ msgdata['toconfirm'] = 1
+ queue = get_switchboard(mm_cfg.CMDQUEUE_DIR)
+ elif subq in ('join', 'subscribe'):
+ msgdata['tojoin'] = 1
+ queue = get_switchboard(mm_cfg.CMDQUEUE_DIR)
+ elif subq in ('leave', 'unsubscribe'):
+ msgdata['toleave'] = 1
+ queue = get_switchboard(mm_cfg.CMDQUEUE_DIR)
+ elif subq == 'owner':
+ msgdata.update({
+ 'toowner': 1,
+ 'envsender': Utils.get_site_email(extra='bounces'),
+ 'pipeline': mm_cfg.OWNER_PIPELINE,
+ })
+ queue = get_switchboard(mm_cfg.INQUEUE_DIR)
+ elif subq is None:
+ msgdata['tolist'] = 1
+ queue = get_switchboard(mm_cfg.INQUEUE_DIR)
+ elif subq == 'request':
+ msgdata['torequest'] = 1
+ queue = get_switchboard(mm_cfg.CMDQUEUE_DIR)
+ else:
+ syslog('error', 'Unknown sub-queue: %s', subq)
+ os.rename(dstname, xdstname)
+ continue
+ queue.enqueue(msg, msgdata)
+ os.unlink(dstname)
+ except Exception, e:
+ os.rename(dstname, xdstname)
+ syslog('error', str(e))
+
+ def _cleanup(self):
+ pass
diff --git a/Mailman/Queue/Makefile.in b/Mailman/Queue/Makefile.in
new file mode 100644
index 00000000..a92ae67d
--- /dev/null
+++ b/Mailman/Queue/Makefile.in
@@ -0,0 +1,69 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# NOTE: Makefile.in is converted into Makefile by the configure script
+# in the parent directory. Once configure has run, you can recreate
+# the Makefile by running just config.status.
+
+# Variables set by configure
+
+VPATH= @srcdir@
+srcdir= @srcdir@
+bindir= @bindir@
+prefix= @prefix@
+exec_prefix= @exec_prefix@
+
+CC= @CC@
+CHMOD= @CHMOD@
+INSTALL= @INSTALL@
+
+DEFS= @DEFS@
+
+# Customizable but not set by configure
+
+OPT= @OPT@
+CFLAGS= $(OPT) $(DEFS)
+PACKAGEDIR= $(prefix)/Mailman/Queue
+SHELL= /bin/sh
+
+MODULES= *.py
+
+# Modes for directories and executables created by the install
+# process. Default to group-writable directories but
+# user-only-writable for executables.
+DIRMODE= 775
+EXEMODE= 755
+FILEMODE= 644
+INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
+
+
+# Rules
+
+all:
+
+install:
+ for f in $(MODULES); \
+ do \
+ $(INSTALL) -m $(FILEMODE) $(srcdir)/$$f $(PACKAGEDIR); \
+ done
+
+finish:
+
+clean:
+
+distclean:
+ -rm *.pyc
+ -rm Makefile
diff --git a/Mailman/Queue/NewsRunner.py b/Mailman/Queue/NewsRunner.py
new file mode 100644
index 00000000..0439f0e1
--- /dev/null
+++ b/Mailman/Queue/NewsRunner.py
@@ -0,0 +1,158 @@
+# Copyright (C) 2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""NNTP queue runner."""
+
+import re
+import socket
+import nntplib
+from cStringIO import StringIO
+
+import email
+from email.Utils import getaddresses
+
+COMMASPACE = ', '
+
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman.Queue.Runner import Runner
+from Mailman.Logging.Syslog import syslog
+
+
+# Matches our Mailman crafted Message-IDs. See Utils.unique_message_id()
+mcre = re.compile(r"""
+ <mailman. # match the prefix
+ \d+. # serial number
+ \d+. # time in seconds since epoch
+ \d+. # pid
+ (?P<listname>[^@]+) # list's internal_name()
+ @ # localpart@dom.ain
+ (?P<hostname>[^>]+) # list's host_name
+ > # trailer
+ """, re.VERBOSE)
+
+
+
+class NewsRunner(Runner):
+ QDIR = mm_cfg.NEWSQUEUE_DIR
+
+ def _dispose(self, mlist, msg, msgdata):
+ # Make sure we have the most up-to-date state
+ mlist.Load()
+ if not msgdata.get('prepped'):
+ prepare_message(mlist, msg, msgdata)
+ try:
+ # Flatten the message object, sticking it in a StringIO object
+ fp = StringIO(msg.as_string())
+ conn = None
+ try:
+ try:
+ conn = nntplib.NNTP(mlist.nntp_host, readermode=1,
+ user=mm_cfg.NNTP_USERNAME,
+ password=mm_cfg.NNTP_PASSWORD)
+ conn.post(fp)
+ except nntplib.error_temp, e:
+ syslog('error',
+ '(NNTPDirect) NNTP error for list "%s": %s',
+ mlist.internal_name(), e)
+ except socket.error, e:
+ syslog('error',
+ '(NNTPDirect) socket error for list "%s": %s',
+ mlist.internal_name(), e)
+ finally:
+ if conn:
+ conn.quit()
+ except Exception, e:
+ # Some other exception occurred, which we definitely did not
+ # expect, so set this message up for requeuing.
+ self._log(e)
+ return 1
+ return 0
+
+
+
+def prepare_message(mlist, msg, msgdata):
+ # If the newsgroup is moderated, we need to add this header for the Usenet
+ # software to accept the posting, and not forward it on to the n.g.'s
+ # moderation address. The posting would not have gotten here if it hadn't
+ # already been approved. 1 == open list, mod n.g., 2 == moderated
+ if mlist.news_moderation in (1, 2):
+ del msg['approved']
+ msg['Approved'] = mlist.GetListEmail()
+ # Should we restore the original, non-prefixed subject for gatewayed
+ # messages?
+ origsubj = msgdata.get('origsubj')
+ if not mlist.news_prefix_subject_too and origsubj is not None:
+ del msg['subject']
+ msg['subject'] = origsubj
+ # Add the appropriate Newsgroups: header
+ ngheader = msg['newsgroups']
+ if ngheader is not None:
+ # See if the Newsgroups: header already contains our linked_newsgroup.
+ # If so, don't add it again. If not, append our linked_newsgroup to
+ # the end of the header list
+ ngroups = [s.strip() for s in ngheader.split(',')]
+ if mlist.linked_newsgroup not in ngroups:
+ ngroups.append(mlist.linked_newsgroup)
+ # Subtitute our new header for the old one.
+ del msg['newsgroups']
+ msg['Newsgroups'] = COMMASPACE.join(ngroups)
+ else:
+ # Newsgroups: isn't in the message
+ msg['Newsgroups'] = mlist.linked_newsgroup
+ # Note: We need to be sure two messages aren't ever sent to the same list
+ # in the same process, since message ids need to be unique. Further, if
+ # messages are crossposted to two Usenet-gated mailing lists, they each
+ # need to have unique message ids or the nntpd will only accept one of
+ # them. The solution here is to substitute any existing message-id that
+ # isn't ours with one of ours, so we need to parse it to be sure we're not
+ # looping.
+ #
+ # Our Message-ID format is <mailman.secs.pid.listname@hostname>
+ msgid = msg['message-id']
+ hackmsgid = 1
+ if msgid:
+ mo = mcre.search(msgid)
+ if mo:
+ lname, hname = mo.group('listname', 'hostname')
+ if lname == mlist.internal_name() and hname == mlist.host_name:
+ hackmsgid = 0
+ if hackmsgid:
+ del msg['message-id']
+ msg['Message-ID'] = Utils.unique_message_id(mlist)
+ # Lines: is useful
+ if msg['Lines'] is None:
+ # BAW: is there a better way?
+ count = len(list(email.Iterators.body_line_iterator(msg)))
+ msg['Lines'] = str(count)
+ # Massage the message headers by remove some and rewriting others. This
+ # woon't completely sanitize the message, but it will eliminate the bulk
+ # of the rejections based on message headers. The NNTP server may still
+ # reject the message because of other problems.
+ for header in mm_cfg.NNTP_REMOVE_HEADERS:
+ del msg[header]
+ for header, rewrite in mm_cfg.NNTP_REWRITE_DUPLICATE_HEADERS:
+ values = msg.get_all(header, [])
+ if len(values) < 2:
+ # We only care about duplicates
+ continue
+ del msg[header]
+ # But keep the first one...
+ msg[header] = values[0]
+ for v in values[1:]:
+ msg[rewrite] = v
+ # Mark this message as prepared in case it has to be requeued
+ msgdata['prepped'] = 1
diff --git a/Mailman/Queue/OutgoingRunner.py b/Mailman/Queue/OutgoingRunner.py
new file mode 100644
index 00000000..aed8dcb9
--- /dev/null
+++ b/Mailman/Queue/OutgoingRunner.py
@@ -0,0 +1,139 @@
+# Copyright (C) 2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Outgoing queue runner."""
+
+import sys
+import os
+import time
+import socket
+
+import email
+
+from Mailman import mm_cfg
+from Mailman import Message
+from Mailman import Errors
+from Mailman import LockFile
+from Mailman.Queue.Runner import Runner
+from Mailman.Logging.Syslog import syslog
+
+# This controls how often _doperiodic() will try to deal with deferred
+# permanent failures.
+DEAL_WITH_PERMFAILURES_EVERY = 1
+
+
+
+class OutgoingRunner(Runner):
+ QDIR = mm_cfg.OUTQUEUE_DIR
+
+ def __init__(self, slice=None, numslices=1):
+ Runner.__init__(self, slice, numslices)
+ # Maps mailing lists to (recip, msg) tuples
+ self._permfailures = {}
+ self._permfail_counter = 0
+ # We look this function up only at startup time
+ modname = 'Mailman.Handlers.' + mm_cfg.DELIVERY_MODULE
+ mod = __import__(modname)
+ self._func = getattr(sys.modules[modname], 'process')
+ # This prevents smtp server connection problems from filling up the
+ # error log. It gets reset if the message was successfully sent, and
+ # set if there was a socket.error.
+ self.__logged = 0
+
+ def _dispose(self, mlist, msg, msgdata):
+ # Make sure we have the most up-to-date state
+ mlist.Load()
+ try:
+ pid = os.getpid()
+ self._func(mlist, msg, msgdata)
+ # Failsafe -- a child may have leaked through.
+ if pid <> os.getpid():
+ syslog('error', 'child process leaked thru: %s', modname)
+ os._exit(1)
+ self.__logged = 0
+ except socket.error:
+ # There was a problem connecting to the SMTP server. Log this
+ # once, but crank up our sleep time so we don't fill the error
+ # log.
+ port = mm_cfg.SMTPPORT
+ if port == 0:
+ port = 'smtp'
+ # Log this just once.
+ if not self.__logged:
+ syslog('error', 'Cannot connect to SMTP server %s on port %s',
+ mm_cfg.SMTPHOST, port)
+ self.__logged = 1
+ return 1
+ except Errors.SomeRecipientsFailed, e:
+ # The delivery module being used (SMTPDirect or Sendmail) failed
+ # to deliver the message to one or all of the recipients.
+ # Permanent failures should be registered (but registration
+ # requires the list lock), and temporary failures should be
+ # retried later.
+ #
+ # For permanent failures, make a copy of the message for bounce
+ # handling. I'm not sure this is necessary, or the right thing to
+ # do.
+ pcnt = len(e.permfailures)
+ copy = email.message_from_string(str(msg))
+ self._permfailures.setdefault(mlist, []).extend(
+ zip(e.permfailures, [copy] * pcnt))
+ # Temporary failures
+ if not e.tempfailures:
+ # Don't need to keep the message queued if there were only
+ # permanent failures.
+ return 0
+ now = time.time()
+ recips = e.tempfailures
+ last_recip_count = msgdata.get('last_recip_count', 0)
+ deliver_until = msgdata.get('deliver_until', now)
+ if len(recips) == last_recip_count:
+ # We didn't make any progress, so don't attempt delivery any
+ # longer. BAW: is this the best disposition?
+ if now > deliver_until:
+ return 0
+ else:
+ # Keep trying to delivery this for 3 days
+ deliver_until = now + mm_cfg.DELIVERY_RETRY_PERIOD
+ msgdata['last_recip_count'] = len(recips)
+ msgdata['deliver_until'] = deliver_until
+ msgdata['recips'] = recips
+ # Requeue
+ return 1
+ # We've successfully completed handling of this message
+ return 0
+
+ def _doperiodic(self):
+ # Periodically try to acquire the list lock and clear out the
+ # permanent failures.
+ self._permfail_counter += 1
+ if self._permfail_counter < DEAL_WITH_PERMFAILURES_EVERY:
+ return
+ # Reset the counter
+ self._permfail_counter = 0
+ # And deal with the deferred permanent failures.
+ for mlist in self._permfailures.keys():
+ try:
+ mlist.Lock(timeout=mm_cfg.LIST_LOCK_TIMEOUT)
+ except LockFile.TimeOutError:
+ return
+ try:
+ for recip, msg in self._permfailures[mlist]:
+ mlist.registerBounce(recip, msg)
+ del self._permfailures[mlist]
+ mlist.Save()
+ finally:
+ mlist.Unlock()
diff --git a/Mailman/Queue/Runner.py b/Mailman/Queue/Runner.py
new file mode 100644
index 00000000..134dac99
--- /dev/null
+++ b/Mailman/Queue/Runner.py
@@ -0,0 +1,245 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Generic queue runner class.
+"""
+
+import time
+import traceback
+import weakref
+from cStringIO import StringIO
+
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman import Errors
+from Mailman import MailList
+from Mailman import i18n
+
+from Mailman.Queue.Switchboard import Switchboard
+from Mailman.Logging.Syslog import syslog
+
+
+
+class Runner:
+ QDIR = None
+ SLEEPTIME = mm_cfg.QRUNNER_SLEEP_TIME
+
+ def __init__(self, slice=None, numslices=1):
+ self._kids = {}
+ # Create our own switchboard. Don't use the switchboard cache because
+ # we want to provide slice and numslice arguments.
+ self._switchboard = Switchboard(self.QDIR, slice, numslices)
+ # Create the shunt switchboard
+ self._shunt = Switchboard(mm_cfg.SHUNTQUEUE_DIR)
+ self._stop = 0
+
+ def stop(self):
+ self._stop = 1
+
+ def run(self):
+ # Start the main loop for this queue runner.
+ try:
+ try:
+ while 1:
+ # Once through the loop that processes all the files in
+ # the queue directory.
+ filecnt = self._oneloop()
+ # Do the periodic work for the subclass. BAW: this
+ # shouldn't be called here. There should be one more
+ # _doperiodic() call at the end of the _oneloop() loop.
+ self._doperiodic()
+ # If the stop flag is set, we're done.
+ if self._stop:
+ break
+ # If there were no files to process, then we'll simply
+ # sleep for a little while and expect some to show up.
+ if not filecnt:
+ self._snooze()
+ except KeyboardInterrupt:
+ pass
+ finally:
+ # We've broken out of our main loop, so we want to reap all the
+ # subprocesses we've created and do any other necessary cleanups.
+ self._cleanup()
+
+ def _oneloop(self):
+ # First, list all the files in our queue directory.
+ # Switchboard.files() is guaranteed to hand us the files in FIFO
+ # order. Return an integer count of the number of files that were
+ # available for this qrunner to process. A non-zero value tells run()
+ # not to snooze for a while.
+ files = self._switchboard.files()
+ for filebase in files:
+ # Ask the switchboard for the message and metadata objects
+ # associated with this filebase.
+ msg, msgdata = self._switchboard.dequeue(filebase)
+ # It's possible one or both files got lost. If so, just ignore
+ # this filebase entry. dequeue() will automatically unlink the
+ # other file, but we should log an error message for diagnostics.
+ if msg is None or msgdata is None:
+ syslog('error', 'lost data files for filebase: %s', filebase)
+ else:
+ # Now that we've dequeued the message, we want to be
+ # incredibly anal about making sure that no uncaught exception
+ # could cause us to lose the message. All runners that
+ # implement _dispose() must guarantee that exceptions are
+ # caught and dealt with properly. Still, there may be a bug
+ # in the infrastructure, and we do not want those to cause
+ # messages to be lost. Any uncaught exceptions will cause the
+ # message to be stored in the shunt queue for human
+ # intervention.
+ try:
+ self._onefile(msg, msgdata)
+ except Exception, e:
+ self._log(e)
+ syslog('error', 'SHUNTING: %s', filebase)
+ # Put a marker in the metadata for unshunting
+ msgdata['whichq'] = self._switchboard.whichq()
+ self._shunt.enqueue(msg, msgdata)
+ # Other work we want to do each time through the loop
+ Utils.reap(self._kids, once=1)
+ self._doperiodic()
+ if self._shortcircuit():
+ break
+ return len(files)
+
+ def _onefile(self, msg, msgdata):
+ # Do some common sanity checking on the message metadata. It's got to
+ # be destined for a particular mailing list. This switchboard is used
+ # to shunt off badly formatted messages. We don't want to just trash
+ # them because they may be fixable with human intervention. Just get
+ # them out of our site though.
+ #
+ # Find out which mailing list this message is destined for.
+ listname = msgdata.get('listname')
+ if not listname:
+ listname = mm_cfg.MAILMAN_SITE_LIST
+ mlist = self._open_list(listname)
+ if not mlist:
+ syslog('error',
+ 'Dequeuing message destined for missing list: %s',
+ listname)
+ self._shunt.enqueue(msg, msgdata)
+ return
+ # Now process this message, keeping track of any subprocesses that may
+ # have been spawned. We'll reap those later.
+ #
+ # We also want to set up the language context for this message. The
+ # context will be the preferred language for the user if a member of
+ # the list, or the list's preferred language. However, we must take
+ # special care to reset the defaults, otherwise subsequent messages
+ # may be translated incorrectly. BAW: I'm not sure I like this
+ # approach, but I can't think of anything better right now.
+ otranslation = i18n.get_translation()
+ sender = msg.get_sender()
+ if mlist:
+ lang = mlist.getMemberLanguage(sender)
+ else:
+ lang = mm_cfg.DEFAULT_SERVER_LANGUAGE
+ i18n.set_language(lang)
+ msgdata['lang'] = lang
+ try:
+ keepqueued = self._dispose(mlist, msg, msgdata)
+ finally:
+ i18n.set_translation(otranslation)
+ # Keep tabs on any child processes that got spawned.
+ kids = msgdata.get('_kids')
+ if kids:
+ self._kids.update(kids)
+ if keepqueued:
+ self._switchboard.enqueue(msg, msgdata)
+
+ # Mapping of listnames to MailList instances as a weak value dictionary.
+ _listcache = weakref.WeakValueDictionary()
+
+ def _open_list(self, listname):
+ # Cache the open list so that any use of the list within this process
+ # uses the same object. We use a WeakValueDictionary so that when the
+ # list is no longer necessary, its memory is freed.
+ mlist = self._listcache.get(listname)
+ if not mlist:
+ try:
+ mlist = MailList.MailList(listname, lock=0)
+ except Errors.MMListError, e:
+ syslog('error', 'error opening list: %s\n%s', listname, e)
+ return None
+ else:
+ self._listcache[listname] = mlist
+ return mlist
+
+ def _log(self, exc):
+ syslog('error', 'Uncaught runner exception: %s', exc)
+ s = StringIO()
+ traceback.print_exc(file=s)
+ syslog('error', s.getvalue())
+
+ #
+ # Subclasses can override these methods.
+ #
+ def _cleanup(self):
+ """Clean up upon exit from the main processing loop.
+
+ Called when the Runner's main loop is stopped, this should perform
+ any necessary resource deallocation. Its return value is irrelevant.
+ """
+ Utils.reap(self._kids)
+
+ def _dispose(self, mlist, msg, msgdata):
+ """Dispose of a single message destined for a mailing list.
+
+ Called for each message that the Runner is responsible for, this is
+ the primary overridable method for processing each message.
+ Subclasses, must provide implementation for this method.
+
+ mlist is the MailList instance this message is destined for.
+
+ msg is the Message object representing the message.
+
+ msgdata is a dictionary of message metadata.
+ """
+ raise NotImplementedError
+
+ def _doperiodic(self):
+ """Do some processing `every once in a while'.
+
+ Called every once in a while both from the Runner's main loop, and
+ from the Runner's hash slice processing loop. You can do whatever
+ special periodic processing you want here, and the return value is
+ irrelevant.
+
+ """
+ pass
+
+ def _snooze(self):
+ """Sleep for a little while, because there was nothing to do.
+
+ This is called from the Runner's main loop, but only when the last
+ processing loop had no work to do (i.e. there were no messages in it's
+ little slice of hash space).
+ """
+ if self.SLEEPTIME <= 0:
+ return
+ time.sleep(self.SLEEPTIME)
+
+ def _shortcircuit(self):
+ """Return a true value if the individual file processing loop should
+ exit before it's finished processing each message in the current slice
+ of hash space. A false value tells _oneloop() to continue processing
+ until the current snapshot of hash space is exhausted.
+
+ You could, for example, implement a throttling algorithm here.
+ """
+ return self._stop
diff --git a/Mailman/Queue/Switchboard.py b/Mailman/Queue/Switchboard.py
new file mode 100644
index 00000000..530055ad
--- /dev/null
+++ b/Mailman/Queue/Switchboard.py
@@ -0,0 +1,340 @@
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Reading and writing message objects and message metadata.
+"""
+
+# enqueue() and dequeue() are not symmetric. enqueue() takes a Message
+# object. dequeue() returns a email.Message object tree.
+#
+# Message metadata is represented internally as a Python dictionary. Keys and
+# values must be strings. When written to a queue directory, the metadata is
+# written into an externally represented format, as defined here. Because
+# components of the Mailman system may be written in something other than
+# Python, the external interchange format should be chosen based on what those
+# other components can read and write.
+#
+# Most efficient, and recommended if everything is Python, is Python marshal
+# format. Also supported by default is Berkeley db format (using the default
+# bsddb module compiled into your Python executable -- usually Berkeley db
+# 2), and rfc822 style plain text. You can write your own if you have other
+# needs.
+
+import os
+import time
+import sha
+import marshal
+import errno
+import cPickle
+
+import email
+
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman import Message
+from Mailman.Logging.Syslog import syslog
+
+# 20 bytes of all bits set, maximum sha.digest() value
+shamax = 0xffffffffffffffffffffffffffffffffffffffffL
+
+SAVE_MSGS_AS_PICKLES = 1
+
+
+
+class _Switchboard:
+ def __init__(self, whichq, slice=None, numslices=1):
+ self.__whichq = whichq
+ # Create the directory if it doesn't yet exist.
+ # FIXME
+ omask = os.umask(0) # rwxrws---
+ try:
+ try:
+ os.mkdir(self.__whichq, 0770)
+ except OSError, e:
+ if e.errno <> errno.EEXIST: raise
+ finally:
+ os.umask(omask)
+ # Fast track for no slices
+ self.__lower = None
+ self.__upper = None
+ # BAW: test performance and end-cases of this algorithm
+ if numslices <> 1:
+ self.__lower = (shamax * slice) / numslices
+ self.__upper = (shamax * (slice+1)) / numslices
+
+ def whichq(self):
+ return self.__whichq
+
+ def enqueue(self, _msg, _metadata={}, **_kws):
+ # Calculate the SHA hexdigest of the message to get a unique base
+ # filename. We're also going to use the digest as a hash into the set
+ # of parallel qrunner processes.
+ data = _metadata.copy()
+ data.update(_kws)
+ listname = data.get('listname', '--nolist--')
+ # Get some data for the input to the sha hash
+ now = time.time()
+ if SAVE_MSGS_AS_PICKLES and not data.get('_plaintext'):
+ msgsave = cPickle.dumps(_msg, 1)
+ ext = '.pck'
+ else:
+ msgsave = str(_msg)
+ ext = '.msg'
+ hashfood = msgsave + listname + `now`
+ # Encode the current time into the file name for FIFO sorting in
+ # files(). The file name consists of two parts separated by a `+':
+ # the received time for this message (i.e. when it first showed up on
+ # this system) and the sha hex digest.
+ #rcvtime = data.setdefault('received_time', now)
+ rcvtime = data.setdefault('received_time', now)
+ filebase = `rcvtime` + '+' + sha.new(hashfood).hexdigest()
+ # Figure out which queue files the message is to be written to.
+ msgfile = os.path.join(self.__whichq, filebase + ext)
+ dbfile = os.path.join(self.__whichq, filebase + '.db')
+ # Always add the metadata schema version number
+ data['version'] = mm_cfg.QFILE_SCHEMA_VERSION
+ # Filter out volatile entries
+ for k in data.keys():
+ if k[0] == '_':
+ del data[k]
+ # Now write the message text to one file and the metadata to another
+ # file. The metadata is always written second to avoid race
+ # conditions with the various queue runners (which key off of the .db
+ # filename).
+ omask = os.umask(007) # -rw-rw----
+ try:
+ msgfp = open(msgfile, 'w')
+ finally:
+ os.umask(omask)
+ msgfp.write(msgsave)
+ msgfp.close()
+ # Now write the metadata using the appropriate external metadata
+ # format. We play rename-switcheroo here to further plug the race
+ # condition holes.
+ tmpfile = dbfile + '.tmp'
+ self._ext_write(tmpfile, data)
+ os.rename(tmpfile, dbfile)
+
+ def dequeue(self, filebase):
+ # Calculate the .db and .msg filenames from the given filebase.
+ msgfile = os.path.join(self.__whichq, filebase + '.msg')
+ pckfile = os.path.join(self.__whichq, filebase + '.pck')
+ dbfile = os.path.join(self.__whichq, filebase + '.db')
+ # Now we are going to read the message and metadata for the given
+ # filebase. We want to read things in this order: first, the metadata
+ # file to find out whether the message is stored as a pickle or as
+ # plain text. Second, the actual message file. However, we want to
+ # first unlink the message file and then the .db file, because the
+ # qrunner only cues off of the .db file
+ msg = data = None
+ try:
+ data = self._ext_read(dbfile)
+ os.unlink(dbfile)
+ except EnvironmentError, e:
+ if e.errno <> errno.ENOENT: raise
+ # Between 2.1b4 and 2.1b5, the `rejection-notice' key in the metadata
+ # was renamed to `rejection_notice', since dashes in the keys are not
+ # supported in METAFMT_ASCII.
+ if data.has_key('rejection-notice'):
+ data['rejection_notice'] = data['rejection-notice']
+ del data['rejection-notice']
+ msgfp = None
+ try:
+ try:
+ msgfp = open(pckfile)
+ msg = cPickle.load(msgfp)
+ os.unlink(pckfile)
+ except EnvironmentError, e:
+ if e.errno <> errno.ENOENT: raise
+ msgfp = None
+ try:
+ msgfp = open(msgfile)
+ msg = email.message_from_file(msgfp, Message.Message)
+ os.unlink(msgfile)
+ except EnvironmentError, e:
+ if e.errno <> errno.ENOENT: raise
+ except email.Errors.MessageParseError, e:
+ # This message was unparsable, most likely because its
+ # MIME encapsulation was broken. For now, there's not
+ # much we can do about it.
+ syslog('error', 'message is unparsable: %s', filebase)
+ msgfp.close()
+ msgfp = None
+ if mm_cfg.QRUNNER_SAVE_BAD_MESSAGES:
+ # Cheapo way to ensure the directory exists w/ the
+ # proper permissions.
+ sb = Switchboard(mm_cfg.BADQUEUE_DIR)
+ os.rename(msgfile, os.path.join(
+ mm_cfg.BADQUEUE_DIR, filebase + '.txt'))
+ else:
+ os.unlink(msgfile)
+ msg = data = None
+ finally:
+ if msgfp:
+ msgfp.close()
+ return msg, data
+
+ def files(self):
+ times = {}
+ lower = self.__lower
+ upper = self.__upper
+ for f in os.listdir(self.__whichq):
+ # We only care about the file's base name (i.e. no extension).
+ # Thus we'll ignore anything that doesn't end in .db.
+ if not f.endswith('.db'):
+ continue
+ filebase = os.path.splitext(f)[0]
+ when, digest = filebase.split('+')
+ # Throw out any files which don't match our bitrange. BAW: test
+ # performance and end-cases of this algorithm.
+ if not lower or (lower <= long(digest, 16) < upper):
+ times[float(when)] = filebase
+ # FIFO sort
+ keys = times.keys()
+ keys.sort()
+ return [times[k] for k in keys]
+
+ def _ext_write(self, tmpfile, data):
+ raise NotImplementedError
+
+ def _ext_read(self, dbfile):
+ raise NotImplementedError
+
+
+
+class MarshalSwitchboard(_Switchboard):
+ """Python marshal format."""
+ FLOAT_ATTRIBUTES = ['received_time']
+
+ def _ext_write(self, filename, dict):
+ omask = os.umask(007) # -rw-rw----
+ try:
+ fp = open(filename, 'w')
+ finally:
+ os.umask(omask)
+ # Python's marshal, up to and including in Python 2.1, has a bug where
+ # the full precision of floats was not stored. We work around this
+ # bug by hardcoding a list of float values we know about, repr()-izing
+ # them ourselves, and doing the reverse conversion on _ext_read().
+ for attr in self.FLOAT_ATTRIBUTES:
+ # We use try/except because we expect a hitrate of nearly 100%
+ try:
+ fval = dict[attr]
+ except KeyError:
+ pass
+ else:
+ dict[attr] = repr(fval)
+ marshal.dump(dict, fp)
+ fp.close()
+
+ def _ext_read(self, filename):
+ fp = open(filename)
+ dict = marshal.load(fp)
+ # Update from version 2 files
+ if dict.get('version', 0) == 2:
+ del dict['filebase']
+ # Do the reverse conversion (repr -> float)
+ for attr in self.FLOAT_ATTRIBUTES:
+ try:
+ sval = dict[attr]
+ except KeyError:
+ pass
+ else:
+ # Do a safe eval by setting up a restricted execution
+ # environment. This may not be strictly necessary since we
+ # know they are floats, but it can't hurt.
+ dict[attr] = eval(sval, {'__builtins__': {}})
+ fp.close()
+ return dict
+
+
+
+class BSDDBSwitchboard(_Switchboard):
+ """Native (i.e. compiled-in) Berkeley db format."""
+ def _ext_write(self, filename, dict):
+ import bsddb
+ omask = os.umask(0)
+ try:
+ hashfile = bsddb.hashopen(filename, 'n', 0660)
+ finally:
+ os.umask(omask)
+ # values must be strings
+ for k, v in dict.items():
+ hashfile[k] = marshal.dumps(v)
+ hashfile.sync()
+ hashfile.close()
+
+ def _ext_read(self, filename):
+ import bsddb
+ dict = {}
+ hashfile = bsddb.hashopen(filename, 'r')
+ for k in hashfile.keys():
+ dict[k] = marshal.loads(hashfile[k])
+ hashfile.close()
+ return dict
+
+
+
+class ASCIISwitchboard(_Switchboard):
+ """Human readable .db file format.
+
+ key/value pairs are written as
+
+ key = value
+
+ as real Python code which can be execfile'd.
+ """
+
+ def _ext_write(self, filename, dict):
+ omask = os.umask(007) # -rw-rw----
+ try:
+ fp = open(filename, 'w')
+ finally:
+ os.umask(omask)
+ for k, v in dict.items():
+ print >> fp, '%s = %s' % (k, repr(v))
+ fp.close()
+
+ def _ext_read(self, filename):
+ dict = {'__builtins__': {}}
+ execfile(filename, dict)
+ del dict['__builtins__']
+ return dict
+
+
+
+# Here are the various types of external file formats available. The format
+# chosen is given defined in the mm_cfg.py configuration file.
+if mm_cfg.METADATA_FORMAT == mm_cfg.METAFMT_MARSHAL:
+ Switchboard = MarshalSwitchboard
+elif mm_cfg.METADATA_FORMAT == mm_cfg.METAFMT_BSDDB_NATIVE:
+ Switchboard = BSDDBSwitchboard
+elif mm_cfg.METADATA_FORMAT == mm_cfg.METAFMT_ASCII:
+ Switchboard = ASCIISwitchboard
+else:
+ syslog('error', 'Undefined metadata format: %d (using marshals)',
+ mm_cfg.METADATA_FORMAT)
+ Switchboard = MarshalSwitchboard
+
+
+
+# For bin/dumpdb
+class DumperSwitchboard(Switchboard):
+ def __init__(self):
+ pass
+
+ def read(self, filename):
+ return self._ext_read(filename)
diff --git a/Mailman/Queue/VirginRunner.py b/Mailman/Queue/VirginRunner.py
new file mode 100644
index 00000000..720ecd25
--- /dev/null
+++ b/Mailman/Queue/VirginRunner.py
@@ -0,0 +1,43 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Virgin message queue runner.
+
+This qrunner handles messages that the Mailman system gives virgin birth to.
+E.g. acknowledgement responses to user posts or Replybot messages. They need
+to go through some minimal processing before they can be sent out to the
+recipient.
+"""
+
+from Mailman import mm_cfg
+from Mailman.Queue.Runner import Runner
+from Mailman.Queue.IncomingRunner import IncomingRunner
+
+
+
+class VirginRunner(IncomingRunner):
+ QDIR = mm_cfg.VIRGINQUEUE_DIR
+
+ def _dispose(self, mlist, msg, msgdata):
+ # We need to fasttrack this message through any handlers that touch
+ # it. E.g. especially CookHeaders.
+ msgdata['_fasttrack'] = 1
+ return IncomingRunner._dispose(self, mlist, msg, msgdata)
+
+ def _get_pipeline(self, mlist, msg, msgdata):
+ # It's okay to hardcode this, since it'll be the same for all
+ # internally crafted messages.
+ return ['CookHeaders', 'ToOutgoing']
diff --git a/Mailman/Queue/__init__.py b/Mailman/Queue/__init__.py
new file mode 100644
index 00000000..cdf93257
--- /dev/null
+++ b/Mailman/Queue/__init__.py
@@ -0,0 +1,15 @@
+# Copyright (C) 2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
diff --git a/Mailman/Queue/sbcache.py b/Mailman/Queue/sbcache.py
new file mode 100644
index 00000000..9b918fc5
--- /dev/null
+++ b/Mailman/Queue/sbcache.py
@@ -0,0 +1,26 @@
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""A factory of Switchboards with caching."""
+
+from Mailman.Queue.Switchboard import Switchboard
+
+# a mapping from queue directory to Switchboard instance
+_sbcache = {}
+
+def get_switchboard(qdir):
+ switchboard = _sbcache.setdefault(qdir, Switchboard(qdir))
+ return switchboard
diff --git a/Mailman/SafeDict.py b/Mailman/SafeDict.py
new file mode 100644
index 00000000..37b5198a
--- /dev/null
+++ b/Mailman/SafeDict.py
@@ -0,0 +1,70 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""A `safe' dictionary for string interpolation."""
+
+from types import StringType
+from UserDict import UserDict
+
+COMMASPACE = ', '
+
+
+
+class SafeDict(UserDict):
+ """Dictionary which returns a default value for unknown keys.
+
+ This is used in maketext so that editing templates is a bit more robust.
+ """
+ def __getitem__(self, key):
+ try:
+ return self.data[key]
+ except KeyError:
+ if isinstance(key, StringType):
+ return '%('+key+')s'
+ else:
+ return '<Missing key: %s>' % `key`
+
+ def interpolate(self, template):
+ return template % self
+
+
+
+class MsgSafeDict(SafeDict):
+ def __init__(self, msg, dict=None):
+ self.__msg = msg
+ SafeDict.__init__(self, dict)
+
+ def __getitem__(self, key):
+ if key.startswith('msg_'):
+ return self.__msg.get(key[4:], 'n/a')
+ elif key.startswith('allmsg_'):
+ missing = []
+ all = self.__msg.get_all(key[7:], missing)
+ if all is missing:
+ return 'n/a'
+ return COMMASPACE.join(all)
+ else:
+ return SafeDict.__getitem__(self, key)
+
+ def copy(self):
+ d = self.data.copy()
+ for k in self.__msg.keys():
+ vals = self.__msg.get_all(k)
+ if len(vals) == 1:
+ d['msg_'+k.lower()] = vals[0]
+ else:
+ d['allmsg_'+k.lower()] = COMMASPACE.join(vals)
+ return d
diff --git a/Mailman/SecurityManager.py b/Mailman/SecurityManager.py
new file mode 100644
index 00000000..8b65738e
--- /dev/null
+++ b/Mailman/SecurityManager.py
@@ -0,0 +1,333 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+
+"""Handle passwords and sanitize approved messages."""
+
+# There are current 5 roles defined in Mailman, as codified in Defaults.py:
+# user, list-creator, list-moderator, list-admin, site-admin.
+#
+# Here's how we do cookie based authentication.
+#
+# Each role (see above) has an associated password, which is currently the
+# only way to authenticate a role (in the future, we'll authenticate a
+# user and assign users to roles).
+#
+# Each cookie has the following ingredients: the authorization context's
+# secret (i.e. the password, and a timestamp. We generate an SHA1 hex
+# digest of these ingredients, which we call the `mac'. We then marshal
+# up a tuple of the timestamp and the mac, hexlify that and return that as
+# a cookie keyed off the authcontext. Note that authenticating the user
+# also requires the user's email address to be included in the cookie.
+#
+# The verification process is done in CheckCookie() below. It extracts
+# the cookie, unhexlifies and unmarshals the tuple, extracting the
+# timestamp. Using this, and the shared secret, the mac is calculated,
+# and it must match the mac passed in the cookie. If so, they're golden,
+# otherwise, access is denied.
+#
+# It is still possible for an adversary to attempt to brute force crack
+# the password if they obtain the cookie, since they can extract the
+# timestamp and create macs based on password guesses. They never get a
+# cleartext version of the password though, so security rests on the
+# difficulty and expense of retrying the cgi dialog for each attempt. It
+# also relies on the security of SHA1.
+
+import os
+import time
+import sha
+import marshal
+import binascii
+import Cookie
+from types import StringType, TupleType
+from urlparse import urlparse
+
+try:
+ import crypt
+except ImportError:
+ crypt = None
+import md5
+
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman import Errors
+from Mailman.Logging.Syslog import syslog
+
+
+
+class SecurityManager:
+ def InitVars(self):
+ # We used to set self.password here, from a crypted_password argument,
+ # but that's been removed when we generalized the mixin architecture.
+ # self.password is really a SecurityManager attribute, but it's set in
+ # MailList.InitVars().
+ self.mod_password = None
+ # Non configurable
+ self.passwords = {}
+
+ def AuthContextInfo(self, authcontext, user=None):
+ # authcontext may be one of AuthUser, AuthListModerator,
+ # AuthListAdmin, AuthSiteAdmin. Not supported is the AuthCreator
+ # context.
+ #
+ # user is ignored unless authcontext is AuthUser
+ #
+ # Return the authcontext's secret and cookie key. If the authcontext
+ # doesn't exist, return the tuple (None, None). If authcontext is
+ # AuthUser, but the user isn't a member of this mailing list, a
+ # NotAMemberError will be raised. If the user's secret is None, raise
+ # a MMBadUserError.
+ key = self.internal_name() + '+'
+ if authcontext == mm_cfg.AuthUser:
+ if user is None:
+ # A bad system error
+ raise TypeError, 'No user supplied for AuthUser context'
+ secret = self.getMemberPassword(user)
+ key += 'user+%s' % Utils.ObscureEmail(user)
+ elif authcontext == mm_cfg.AuthListModerator:
+ secret = self.mod_password
+ key += 'moderator'
+ elif authcontext == mm_cfg.AuthListAdmin:
+ secret = self.password
+ key += 'admin'
+ # BAW: AuthCreator
+ elif authcontext == mm_cfg.AuthSiteAdmin:
+ sitepass = Utils.get_global_password()
+ if mm_cfg.ALLOW_SITE_ADMIN_COOKIES and sitepass:
+ secret = sitepass
+ key = 'site'
+ else:
+ # BAW: this should probably hand out a site password based
+ # cookie, but that makes me a bit nervous, so just treat site
+ # admin as a list admin since there is currently no site
+ # admin-only functionality.
+ secret = self.password
+ key += 'admin'
+ else:
+ return None, None
+ return key, secret
+
+ def Authenticate(self, authcontexts, response, user=None):
+ # Given a list of authentication contexts, check to see if the
+ # response matches one of the passwords. authcontexts must be a
+ # sequence, and if it contains the context AuthUser, then the user
+ # argument must not be None.
+ #
+ # Return the authcontext from the argument sequence that matches the
+ # response, or UnAuthorized.
+ for ac in authcontexts:
+ if ac == mm_cfg.AuthCreator:
+ ok = Utils.check_global_password(response, siteadmin=0)
+ if ok:
+ return mm_cfg.AuthCreator
+ elif ac == mm_cfg.AuthSiteAdmin:
+ ok = Utils.check_global_password(response)
+ if ok:
+ return mm_cfg.AuthSiteAdmin
+ elif ac == mm_cfg.AuthListAdmin:
+ def cryptmatchp(response, secret):
+ try:
+ salt = secret[:2]
+ if crypt and crypt.crypt(response, salt) == secret:
+ return 1
+ return 0
+ except TypeError:
+ # BAW: Hard to say why we can get a TypeError here.
+ # SF bug report #585776 says crypt.crypt() can raise
+ # this if salt contains null bytes, although I don't
+ # know how that can happen (perhaps if a MM2.0 list
+ # with USE_CRYPT = 0 has been updated? Doubtful.
+ return 0
+ # The password for the list admin and list moderator are not
+ # kept as plain text, but instead as an sha hexdigest. The
+ # response being passed in is plain text, so we need to
+ # digestify it first. Note however, that for backwards
+ # compatibility reasons, we'll also check the admin response
+ # against the crypted and md5'd passwords, and if they match,
+ # we'll auto-migrate the passwords to sha.
+ key, secret = self.AuthContextInfo(ac)
+ if secret is None:
+ continue
+ sharesponse = sha.new(response).hexdigest()
+ upgrade = ok = 0
+ if sharesponse == secret:
+ ok = 1
+ elif md5.new(response).digest() == secret:
+ ok = 1
+ upgrade = 1
+ elif cryptmatchp(response, secret):
+ ok = 1
+ upgrade = 1
+ if upgrade:
+ save_and_unlock = 0
+ if not self.Locked():
+ self.Lock()
+ save_and_unlock = 1
+ try:
+ self.password = sharesponse
+ if save_and_unlock:
+ self.Save()
+ finally:
+ if save_and_unlock:
+ self.Unlock()
+ if ok:
+ return ac
+ elif ac == mm_cfg.AuthListModerator:
+ # The list moderator password must be sha'd
+ key, secret = self.AuthContextInfo(ac)
+ if secret and sha.new(response).hexdigest() == secret:
+ return ac
+ elif ac == mm_cfg.AuthUser:
+ if self.authenticateMember(user, response):
+ return ac
+ else:
+ # What is this context???
+ syslog('error', 'Bad authcontext: %s', ac)
+ raise ValueError, 'Bad authcontext: %s' % ac
+ return mm_cfg.UnAuthorized
+
+ def WebAuthenticate(self, authcontexts, response, user=None):
+ # Given a list of authentication contexts, check to see if the cookie
+ # contains a matching authorization, falling back to checking whether
+ # the response matches one of the passwords. authcontexts must be a
+ # sequence, and if it contains the context AuthUser, then the user
+ # argument must not be None.
+ #
+ # Returns a flag indicating whether authentication succeeded or not.
+ try:
+ for ac in authcontexts:
+ ok = self.CheckCookie(ac, user)
+ if ok:
+ return 1
+ # Check passwords
+ ac = self.Authenticate(authcontexts, response, user)
+ if ac:
+ print self.MakeCookie(ac, user)
+ return 1
+ except Errors.NotAMemberError:
+ pass
+ return 0
+
+ def MakeCookie(self, authcontext, user=None):
+ key, secret = self.AuthContextInfo(authcontext, user)
+ if key is None or secret is None or not isinstance(secret, StringType):
+ raise ValueError
+ # Timestamp
+ issued = int(time.time())
+ # Get a digest of the secret, plus other information.
+ mac = sha.new(secret + `issued`).hexdigest()
+ # Create the cookie object.
+ c = Cookie.SimpleCookie()
+ c[key] = binascii.hexlify(marshal.dumps((issued, mac)))
+ # The path to all Mailman stuff, minus the scheme and host,
+ # i.e. usually the string `/mailman'
+ path = urlparse(self.web_page_url)[2]
+ c[key]['path'] = path
+ # We use session cookies, so don't set `expires' or `max-age' keys.
+ # Set the RFC 2109 required header.
+ c[key]['version'] = 1
+ return c
+
+ def ZapCookie(self, authcontext, user=None):
+ # We can throw away the secret.
+ key, secret = self.AuthContextInfo(authcontext, user)
+ # Logout of the session by zapping the cookie. For safety both set
+ # max-age=0 (as per RFC2109) and set the cookie data to the empty
+ # string.
+ c = Cookie.SimpleCookie()
+ c[key] = ''
+ # The path to all Mailman stuff, minus the scheme and host,
+ # i.e. usually the string `/mailman'
+ path = urlparse(self.web_page_url)[2]
+ c[key]['path'] = path
+ c[key]['max-age'] = 0
+ # Don't set expires=0 here otherwise it'll force a persistent cookie
+ c[key]['version'] = 1
+ return c
+
+ def CheckCookie(self, authcontext, user=None):
+ # Two results can occur: we return 1 meaning the cookie authentication
+ # succeeded for the authorization context, we return 0 meaning the
+ # authentication failed.
+ #
+ # Dig out the cookie data, which better be passed on this cgi
+ # environment variable. If there's no cookie data, we reject the
+ # authentication.
+ cookiedata = os.environ.get('HTTP_COOKIE')
+ if not cookiedata:
+ return 0
+ # Treat the cookie data as simple strings, and do application level
+ # decoding as necessary. By using SimpleCookie, we prevent any kind
+ # of security breach due to untrusted cookie data being unpickled
+ # (which is quite unsafe).
+ try:
+ c = Cookie.SimpleCookie(cookiedata)
+ except Cookie.CookieError:
+ return 0
+ # If the user was not supplied, but the authcontext is AuthUser, we
+ # can try to glean the user address from the cookie key. There may be
+ # more than one matching key (if the user has multiple accounts
+ # subscribed to this list), but any are okay.
+ if authcontext == mm_cfg.AuthUser:
+ if user:
+ usernames = [user]
+ else:
+ usernames = []
+ prefix = self.internal_name() + '+user+'
+ for k in c.keys():
+ if k.startswith(prefix):
+ usernames.append(k[len(prefix):])
+ # If any check out, we're golden. Note: `@'s are no longer legal
+ # values in cookie keys.
+ for user in [Utils.UnobscureEmail(u) for u in usernames]:
+ ok = self.__checkone(c, authcontext, user)
+ if ok:
+ return 1
+ return 0
+ else:
+ return self.__checkone(c, authcontext, user)
+
+ def __checkone(self, c, authcontext, user):
+ # Do the guts of the cookie check, for one authcontext/user
+ # combination.
+ key, secret = self.AuthContextInfo(authcontext, user)
+ if not c.has_key(key) or not isinstance(secret, StringType):
+ return 0
+ # Undo the encoding we performed in MakeCookie() above. BAW: I
+ # believe this is safe from exploit because marshal can't be forced to
+ # load recursive data structures, and it can't be forced to execute
+ # any unexpected code. The worst that can happen is that either the
+ # client will have provided us bogus data, in which case we'll get one
+ # of the caught exceptions, or marshal format will have changed, in
+ # which case, the cookie decoding will fail. In either case, we'll
+ # simply request reauthorization, resulting in a new cookie being
+ # returned to the client.
+ try:
+ data = marshal.loads(binascii.unhexlify(c[key].value))
+ issued, received_mac = data
+ except (EOFError, ValueError, TypeError, KeyError):
+ return 0
+ # Make sure the issued timestamp makes sense
+ now = time.time()
+ if now < issued:
+ return 0
+ # Calculate what the mac ought to be based on the cookie's timestamp
+ # and the shared secret.
+ mac = sha.new(secret + `issued`).hexdigest()
+ if mac <> received_mac:
+ return 0
+ # Authenticated!
+ return 1
diff --git a/Mailman/Site.py b/Mailman/Site.py
new file mode 100644
index 00000000..d4360d2c
--- /dev/null
+++ b/Mailman/Site.py
@@ -0,0 +1,107 @@
+# Copyright (C) 2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Provide some customization for site-wide behavior.
+
+This should be considered experimental for Mailman 2.1. The default
+implementation should work for standard Mailman.
+"""
+
+import os
+import errno
+
+from Mailman import mm_cfg
+
+
+
+def _makedir(path):
+ try:
+ omask = os.umask(0)
+ try:
+ os.makedirs(path, 02775)
+ finally:
+ os.umask(omask)
+ except OSError, e:
+ # Ignore the exceptions if the directory already exists
+ if e.errno <> errno.EEXIST:
+ raise
+
+
+
+# BAW: We don't really support domain<>None yet. This will be added in a
+# future version. By default, Mailman will never pass in a domain argument.
+def get_listpath(listname, domain=None, create=0):
+ """Return the file system path to the list directory for the named list.
+
+ If domain is given, it is the virtual domain for the named list. The
+ default is to not distinguish list paths on the basis of virtual domains.
+
+ If the create flag is true, then this method should create the path
+ hierarchy if necessary. If the create flag is false, then this function
+ should not attempt to create the path heirarchy (and in fact the absence
+ of the path might be significant).
+ """
+ path = os.path.join(mm_cfg.LIST_DATA_DIR, listname)
+ if create:
+ _makedir(path)
+ return path
+
+
+
+# BAW: We don't really support domain<>None yet. This will be added in a
+# future version. By default, Mailman will never pass in a domain argument.
+def get_archpath(listname, domain=None, create=0, public=0):
+ """Return the file system path to the list's archive directory for the
+ named list in the named virtual domain.
+
+ If domain is given, it is the virtual domain for the named list. The
+ default is to not distinguish list paths on the basis of virtual domains.
+
+ If the create flag is true, then this method should create the path
+ hierarchy if necessary. If the create flag is false, then this function
+ should not attempt to create the path heirarchy (and in fact the absence
+ of the path might be significant).
+
+ If public is true, then the path points to the public archive path (which
+ is usually a symlink instead of a directory).
+ """
+ if public:
+ subdir = mm_cfg.PUBLIC_ARCHIVE_FILE_DIR
+ else:
+ subdir = mm_cfg.PRIVATE_ARCHIVE_FILE_DIR
+ path = os.path.join(subdir, listname)
+ if create:
+ _makedir(path)
+ return path
+
+
+
+# BAW: We don't really support domain<>None yet. This will be added in a
+# future version. By default, Mailman will never pass in a domain argument.
+def get_listnames(domain=None):
+ """Return the names of all the known lists for the given domain.
+
+ If domain is given, it is the virtual domain for the named list. The
+ default is to not distinguish list paths on the basis of virtual domains.
+ """
+ # Import this here to avoid circular imports
+ from Mailman.Utils import list_exists
+ # We don't currently support separate virtual domain directories
+ got = []
+ for fn in os.listdir(mm_cfg.LIST_DATA_DIR):
+ if list_exists(fn):
+ got.append(fn)
+ return got
diff --git a/Mailman/TopicMgr.py b/Mailman/TopicMgr.py
new file mode 100644
index 00000000..09c10d9b
--- /dev/null
+++ b/Mailman/TopicMgr.py
@@ -0,0 +1,61 @@
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""This class mixes in topic feature configuration for mailing lists.
+"""
+
+import re
+
+from Mailman import mm_cfg
+from Mailman.i18n import _
+
+
+
+class TopicMgr:
+ def InitVars(self):
+ # Configurable
+ #
+ # `topics' is a list of 4-tuples of the following form:
+ #
+ # (name, pattern, description, emptyflag)
+ #
+ # name is a required arbitrary string displayed to the user when they
+ # get to select their topics of interest
+ #
+ # pattern is a required verbose regular expression pattern which is
+ # used as IGNORECASE.
+ #
+ # description is an optional description of what this topic is
+ # supposed to match
+ #
+ # emptyflag is a boolean used internally in the admin interface to
+ # signal whether a topic entry is new or not (new ones which do not
+ # have a name or pattern are not saved when the submit button is
+ # pressed).
+ self.topics = []
+ self.topics_enabled = 0
+ self.topics_bodylines_limit = 5
+ # Non-configurable
+ #
+ # This is a mapping between user "names" (i.e. addresses) and
+ # information about which topics that user is interested in. The
+ # values are a list of topic names that the user is interested in,
+ # which should match the topic names in self.topics above.
+ #
+ # If the user has not selected any topics of interest, then the rule
+ # is that they will get all messages, and they will not have an entry
+ # in this dictionary.
+ self.topics_userinterest = {}
diff --git a/Mailman/UserDesc.py b/Mailman/UserDesc.py
new file mode 100644
index 00000000..aa06639f
--- /dev/null
+++ b/Mailman/UserDesc.py
@@ -0,0 +1,57 @@
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""User description class/structure, for ApprovedAddMember and friends."""
+
+class UserDesc:
+ def __init__(self, address=None, fullname=None, password=None,
+ digest=None, lang=None):
+ if address is not None:
+ self.address = address
+ if fullname is not None:
+ self.fullname = fullname
+ if password is not None:
+ self.password = password
+ if digest is not None:
+ self.digest = digest
+ if lang is not None:
+ self.language = lang
+
+ def __iadd__(self, other):
+ if getattr(other, 'address', None) is not None:
+ self.address = other.address
+ if getattr(other, 'fullname', None) is not None:
+ self.fullname = other.fullname
+ if getattr(other, 'password', None) is not None:
+ self.password = other.password
+ if getattr(other, 'digest', None) is not None:
+ self.digest = other.digest
+ if getattr(other, 'language', None) is not None:
+ self.language = other.language
+ return self
+
+ def __repr__(self):
+ address = getattr(self, 'address', 'n/a')
+ fullname = getattr(self, 'fullname', 'n/a')
+ password = getattr(self, 'password', 'n/a')
+ digest = getattr(self, 'digest', 'n/a')
+ if digest == 0:
+ digest = 'no'
+ elif digest == 1:
+ digest = 'yes'
+ language = getattr(self, 'language', 'n/a')
+ return '<UserDesc %s (%s) [%s] [digest? %s] [%s]>' % (
+ address, fullname, password, digest, language)
diff --git a/Mailman/Utils.py b/Mailman/Utils.py
new file mode 100644
index 00000000..b814f3d0
--- /dev/null
+++ b/Mailman/Utils.py
@@ -0,0 +1,773 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+
+"""Miscellaneous essential routines.
+
+This includes actual message transmission routines, address checking and
+message and address munging, a handy-dandy routine to map a function on all
+the mailing lists, and whatever else doesn't belong elsewhere.
+
+"""
+
+from __future__ import nested_scopes
+
+import os
+import re
+import random
+import urlparse
+import sha
+import errno
+import time
+import cgi
+import htmlentitydefs
+import email.Iterators
+from types import UnicodeType
+from string import whitespace, digits
+try:
+ # Python 2.2
+ from string import ascii_letters
+except ImportError:
+ # Older Pythons
+ _lower = 'abcdefghijklmnopqrstuvwxyz'
+ ascii_letters = _lower + _lower.upper()
+
+from Mailman import mm_cfg
+from Mailman import Errors
+from Mailman import Site
+from Mailman.SafeDict import SafeDict
+
+EMPTYSTRING = ''
+NL = '\n'
+DOT = '.'
+IDENTCHARS = ascii_letters + digits + '_'
+
+# Search for $(identifier)s strings, except that the trailing s is optional,
+# since that's a common mistake
+cre = re.compile(r'%\(([_a-z]\w*?)\)s?', re.IGNORECASE)
+# Search for $$, $identifier, or ${identifier}
+dre = re.compile(r'(\${2})|\$([_a-z]\w*)|\${([_a-z]\w*)}', re.IGNORECASE)
+
+
+
+def list_exists(listname):
+ """Return true iff list `listname' exists."""
+ # The existance of any of the following file proves the list exists
+ # <wink>: config.pck, config.pck.last, config.db, config.db.last
+ #
+ # The former two are for 2.1alpha3 and beyond, while the latter two are
+ # for all earlier versions.
+ basepath = Site.get_listpath(listname)
+ for ext in ('.pck', '.pck.last', '.db', '.db.last'):
+ dbfile = os.path.join(basepath, 'config' + ext)
+ if os.path.exists(dbfile):
+ return 1
+ return 0
+
+
+def list_names():
+ """Return the names of all lists in default list directory."""
+ # We don't currently support separate listings of virtual domains
+ return Site.get_listnames()
+
+
+
+# a much more naive implementation than say, Emacs's fill-paragraph!
+def wrap(text, column=70, honor_leading_ws=1):
+ """Wrap and fill the text to the specified column.
+
+ Wrapping is always in effect, although if it is not possible to wrap a
+ line (because some word is longer than `column' characters) the line is
+ broken at the next available whitespace boundary. Paragraphs are also
+ always filled, unless honor_leading_ws is true and the line begins with
+ whitespace. This is the algorithm that the Python FAQ wizard uses, and
+ seems like a good compromise.
+
+ """
+ wrapped = ''
+ # first split the text into paragraphs, defined as a blank line
+ paras = re.split('\n\n', text)
+ for para in paras:
+ # fill
+ lines = []
+ fillprev = 0
+ for line in para.split(NL):
+ if not line:
+ lines.append(line)
+ continue
+ if honor_leading_ws and line[0] in whitespace:
+ fillthis = 0
+ else:
+ fillthis = 1
+ if fillprev and fillthis:
+ # if the previous line should be filled, then just append a
+ # single space, and the rest of the current line
+ lines[-1] = lines[-1].rstrip() + ' ' + line
+ else:
+ # no fill, i.e. retain newline
+ lines.append(line)
+ fillprev = fillthis
+ # wrap each line
+ for text in lines:
+ while text:
+ if len(text) <= column:
+ line = text
+ text = ''
+ else:
+ bol = column
+ # find the last whitespace character
+ while bol > 0 and text[bol] not in whitespace:
+ bol = bol - 1
+ # now find the last non-whitespace character
+ eol = bol
+ while eol > 0 and text[eol] in whitespace:
+ eol = eol - 1
+ # watch out for text that's longer than the column width
+ if eol == 0:
+ # break on whitespace after column
+ eol = column
+ while eol < len(text) and \
+ text[eol] not in whitespace:
+ eol = eol + 1
+ bol = eol
+ while bol < len(text) and \
+ text[bol] in whitespace:
+ bol = bol + 1
+ bol = bol - 1
+ line = text[:eol+1] + '\n'
+ # find the next non-whitespace character
+ bol = bol + 1
+ while bol < len(text) and text[bol] in whitespace:
+ bol = bol + 1
+ text = text[bol:]
+ wrapped = wrapped + line
+ wrapped = wrapped + '\n'
+ # end while text
+ wrapped = wrapped + '\n'
+ # end for text in lines
+ # the last two newlines are bogus
+ return wrapped[:-2]
+
+
+
+def QuotePeriods(text):
+ JOINER = '\n .\n'
+ SEP = '\n.\n'
+ return JOINER.join(text.split(SEP))
+
+
+# This takes an email address, and returns a tuple containing (user,host)
+def ParseEmail(email):
+ user = None
+ domain = None
+ email = email.lower()
+ at_sign = email.find('@')
+ if at_sign < 1:
+ return email, None
+ user = email[:at_sign]
+ rest = email[at_sign+1:]
+ domain = rest.split('.')
+ return user, domain
+
+
+def LCDomain(addr):
+ "returns the address with the domain part lowercased"
+ atind = addr.find('@')
+ if atind == -1: # no domain part
+ return addr
+ return addr[:atind] + '@' + addr[atind+1:].lower()
+
+
+# TBD: what other characters should be disallowed?
+_badchars = re.compile('[][()<>|;^,/]')
+
+def ValidateEmail(s):
+ """Verify that the an email address isn't grossly evil."""
+ # Pretty minimal, cheesy check. We could do better...
+ if not s or s.count(' ') > 0:
+ raise Errors.MMBadEmailError
+ if _badchars.search(s) or s[0] == '-':
+ raise Errors.MMHostileAddress, s
+ user, domain_parts = ParseEmail(s)
+ # This means local, unqualified addresses, are no allowed
+ if not domain_parts:
+ raise Errors.MMBadEmailError, s
+ if len(domain_parts) < 2:
+ raise Errors.MMBadEmailError, s
+
+
+
+def GetPathPieces(envar='PATH_INFO'):
+ path = os.environ.get(envar)
+ if path:
+ return [p for p in path.split('/') if p]
+ return None
+
+
+
+def ScriptURL(target, web_page_url=None, absolute=0):
+ """target - scriptname only, nothing extra
+ web_page_url - the list's configvar of the same name
+ absolute - a flag which if set, generates an absolute url
+ """
+ if web_page_url is None:
+ web_page_url = mm_cfg.DEFAULT_URL_PATTERN % get_domain()
+ if web_page_url[-1] <> '/':
+ web_page_url = web_page_url + '/'
+ fullpath = os.environ.get('REQUEST_URI')
+ if fullpath is None:
+ fullpath = os.environ.get('SCRIPT_NAME', '') + \
+ os.environ.get('PATH_INFO', '')
+ baseurl = urlparse.urlparse(web_page_url)[2]
+ if not absolute and fullpath[:len(baseurl)] == baseurl:
+ # Use relative addressing
+ fullpath = fullpath[len(baseurl):]
+ i = fullpath.find('?')
+ if i > 0:
+ count = fullpath.count('/', 0, i)
+ else:
+ count = fullpath.count('/')
+ path = ('../' * count) + target
+ else:
+ path = web_page_url + target
+ return path + mm_cfg.CGIEXT
+
+
+
+def GetPossibleMatchingAddrs(name):
+ """returns a sorted list of addresses that could possibly match
+ a given name.
+
+ For Example, given scott@pobox.com, return ['scott@pobox.com'],
+ given scott@blackbox.pobox.com return ['scott@blackbox.pobox.com',
+ 'scott@pobox.com']"""
+
+ name = name.lower()
+ user, domain = ParseEmail(name)
+ res = [name]
+ if domain:
+ domain = domain[1:]
+ while len(domain) >= 2:
+ res.append("%s@%s" % (user, DOT.join(domain)))
+ domain = domain[1:]
+ return res
+
+
+
+def List2Dict(list, foldcase=0):
+ """Return a dict keyed by the entries in the list passed to it."""
+ d = {}
+ if foldcase:
+ for i in list:
+ d[i.lower()] = 1
+ else:
+ for i in list:
+ d[i] = 1
+ return d
+
+
+
+_vowels = ('a', 'e', 'i', 'o', 'u')
+_consonants = ('b', 'c', 'd', 'f', 'g', 'h', 'k', 'm', 'n',
+ 'p', 'r', 's', 't', 'v', 'w', 'x', 'z')
+_syllables = []
+
+for v in _vowels:
+ for c in _consonants:
+ _syllables.append(c+v)
+ _syllables.append(v+c)
+del c, v
+
+def MakeRandomPassword(length=6):
+ syls = []
+ while len(syls)*2 < length:
+ syls.append(random.choice(_syllables))
+ return EMPTYSTRING.join(syls)[:length]
+
+def GetRandomSeed():
+ chr1 = int(random.random() * 52)
+ chr2 = int(random.random() * 52)
+ def mkletter(c):
+ if 0 <= c < 26:
+ c = c + 65
+ if 26 <= c < 52:
+ c = c - 26 + 97
+ return c
+ return "%c%c" % tuple(map(mkletter, (chr1, chr2)))
+
+
+
+def set_global_password(pw, siteadmin=1):
+ if siteadmin:
+ filename = mm_cfg.SITE_PW_FILE
+ else:
+ filename = mm_cfg.LISTCREATOR_PW_FILE
+ omask = os.umask(026) # rw-r-----
+ try:
+ fp = open(filename, 'w')
+ fp.write(sha.new(pw).hexdigest() + '\n')
+ fp.close()
+ finally:
+ os.umask(omask)
+
+
+def get_global_password(siteadmin=1):
+ if siteadmin:
+ filename = mm_cfg.SITE_PW_FILE
+ else:
+ filename = mm_cfg.LISTCREATOR_PW_FILE
+ try:
+ fp = open(filename)
+ challenge = fp.read()[:-1] # strip off trailing nl
+ fp.close()
+ except IOError, e:
+ if e.errno <> errno.ENOENT: raise
+ # It's okay not to have a site admin password, just return false
+ return None
+ return challenge
+
+
+def check_global_password(response, siteadmin=1):
+ challenge = get_global_password(siteadmin)
+ if challenge is None:
+ return None
+ return challenge == sha.new(response).hexdigest()
+
+
+
+def websafe(s):
+ return cgi.escape(s, quote=1)
+
+
+
+# Just changing these two functions should be enough to control the way
+# that email address obscuring is handled.
+def ObscureEmail(addr, for_text=0):
+ """Make email address unrecognizable to web spiders, but invertable.
+
+ When for_text option is set (not default), make a sentence fragment
+ instead of a token."""
+ if for_text:
+ return addr.replace('@', ' at ')
+ else:
+ return addr.replace('@', '--at--')
+
+def UnobscureEmail(addr):
+ """Invert ObscureEmail() conversion."""
+ # Contrived to act as an identity operation on already-unobscured
+ # emails, so routines expecting obscured ones will accept both.
+ return addr.replace('--at--', '@')
+
+
+
+def maketext(templatefile, dict=None, raw=0, lang=None, mlist=None):
+ # Make some text from a template file. The order of searches depends on
+ # whether mlist and lang are provided. Once the templatefile is found,
+ # string substitution is performed by interpolation in `dict'. If `raw'
+ # is false, the resulting text is wrapped/filled by calling wrap().
+ #
+ # When looking for a template in a specific language, there are 4 places
+ # that are searched, in this order:
+ #
+ # 1. the list-specific language directory
+ # lists/<listname>/<language>
+ #
+ # 2. the domain-specific language directory
+ # templates/<list.host_name>/<language>
+ #
+ # 3. the site-wide language directory
+ # templates/site/<language>
+ #
+ # 4. the global default language directory
+ # templates/<language>
+ #
+ # The first match found stops the search. In this way, you can specialize
+ # templates at the desired level, or, if you use only the default
+ # templates, you don't need to change anything. You should never modify
+ # files in the templates/<language> subdirectory, since Mailman will
+ # overwrite these when you upgrade. That's what the templates/site
+ # language directories are for.
+ #
+ # A further complication is that the language to search for is determined
+ # by both the `lang' and `mlist' arguments. The search order there is
+ # that if lang is given, then the 4 locations above are searched,
+ # substituting lang for <language>. If no match is found, and mlist is
+ # given, then the 4 locations are searched using the list's preferred
+ # language. After that, the server default language is used for
+ # <language>. If that still doesn't yield a template, then the standard
+ # distribution's English language template is used as an ultimate
+ # fallback. If that's missing you've got big problems. ;)
+ #
+ # A word on backwards compatibility: Mailman versions prior to 2.1 stored
+ # templates in templates/*.{html,txt} and lists/<listname>/*.{html,txt}.
+ # Those directories are no longer searched so if you've got customizations
+ # in those files, you should move them to the appropriate directory based
+ # on the above description. Mailman's upgrade script cannot do this for
+ # you.
+ #
+ # Calculate the languages to scan
+ languages = []
+ if lang is not None:
+ languages.append(lang)
+ if mlist is not None:
+ languages.append(mlist.preferred_language)
+ languages.append(mm_cfg.DEFAULT_SERVER_LANGUAGE)
+ # Calculate the locations to scan
+ searchdirs = []
+ if mlist is not None:
+ searchdirs.append(mlist.fullpath())
+ searchdirs.append(os.path.join(mm_cfg.TEMPLATE_DIR, mlist.host_name))
+ searchdirs.append(os.path.join(mm_cfg.TEMPLATE_DIR, 'site'))
+ searchdirs.append(mm_cfg.TEMPLATE_DIR)
+ # Start scanning
+ quickexit = 'quickexit'
+ fp = None
+ try:
+ for lang in languages:
+ for dir in searchdirs:
+ filename = os.path.join(dir, lang, templatefile)
+ try:
+ fp = open(filename)
+ raise quickexit
+ except IOError, e:
+ if e.errno <> errno.ENOENT: raise
+ # Okay, it doesn't exist, keep looping
+ fp = None
+ except quickexit:
+ pass
+ if fp is None:
+ # Try one last time with the distro English template, which, unless
+ # you've got a really broken installation, must be there.
+ try:
+ fp = open(os.path.join(mm_cfg.TEMPLATE_DIR, 'en', templatefile))
+ except IOError, e:
+ if e.errno <> errno.ENOENT: raise
+ # We never found the template. BAD!
+ raise IOError(errno.ENOENT, 'No template file found', templatefile)
+ template = fp.read()
+ fp.close()
+ text = template
+ if dict is not None:
+ try:
+ sdict = SafeDict(dict)
+ try:
+ text = sdict.interpolate(template)
+ except UnicodeError:
+ # Try again after coercing the template to unicode
+ utemplate = unicode(template, GetCharSet(lang), 'replace')
+ text = sdict.interpolate(utemplate)
+ except (TypeError, ValueError):
+ # The template is really screwed up
+ pass
+ if raw:
+ return text
+ return wrap(text)
+
+
+
+ADMINDATA = {
+ # admin keyword: (minimum #args, maximum #args)
+ 'confirm': (1, 1),
+ 'help': (0, 0),
+ 'info': (0, 0),
+ 'lists': (0, 0),
+ 'options': (0, 0),
+ 'password': (2, 2),
+ 'remove': (0, 0),
+ 'set': (3, 3),
+ 'subscribe': (0, 3),
+ 'unsubscribe': (0, 1),
+ 'who': (0, 0),
+ }
+
+# Given a Message.Message object, test for administrivia (eg subscribe,
+# unsubscribe, etc). The test must be a good guess -- messages that return
+# true get sent to the list admin instead of the entire list.
+def is_administrivia(msg):
+ linecnt = 0
+ lines = []
+ for line in email.Iterators.body_line_iterator(msg):
+ # Strip out any signatures
+ if line == '-- ':
+ break
+ if line.strip():
+ linecnt += 1
+ if linecnt > mm_cfg.DEFAULT_MAIL_COMMANDS_MAX_LINES:
+ return 0
+ lines.append(line)
+ bodytext = NL.join(lines)
+ # See if the body text has only one word, and that word is administrivia
+ if ADMINDATA.has_key(bodytext.strip().lower()):
+ return 1
+ # Look at the first N lines and see if there is any administrivia on the
+ # line. BAW: N is currently hardcoded to 5. str-ify the Subject: header
+ # because it may be an email.Header.Header instance rather than a string.
+ bodylines = lines[:5]
+ subject = str(msg.get('subject', ''))
+ bodylines.append(subject)
+ for line in bodylines:
+ if not line.strip():
+ continue
+ words = [word.lower() for word in line.split()]
+ minargs, maxargs = ADMINDATA.get(words[0], (None, None))
+ if minargs is None and maxargs is None:
+ continue
+ if minargs <= len(words[1:]) <= maxargs:
+ # Special case the `set' keyword. BAW: I don't know why this is
+ # here.
+ if words[0] == 'set' and words[2] not in ('on', 'off'):
+ continue
+ return 1
+ return 0
+
+
+
+def GetRequestURI(fallback=None, escape=1):
+ """Return the full virtual path this CGI script was invoked with.
+
+ Newer web servers seems to supply this info in the REQUEST_URI
+ environment variable -- which isn't part of the CGI/1.1 spec.
+ Thus, if REQUEST_URI isn't available, we concatenate SCRIPT_NAME
+ and PATH_INFO, both of which are part of CGI/1.1.
+
+ Optional argument `fallback' (default `None') is returned if both of
+ the above methods fail.
+
+ The url will be cgi escaped to prevent cross-site scripting attacks,
+ unless `escape' is set to 0.
+ """
+ url = fallback
+ if os.environ.has_key('REQUEST_URI'):
+ url = os.environ['REQUEST_URI']
+ elif os.environ.has_key('SCRIPT_NAME') and os.environ.has_key('PATH_INFO'):
+ url = os.environ['SCRIPT_NAME'] + os.environ['PATH_INFO']
+ if escape:
+ return websafe(url)
+ return url
+
+
+
+# Wait on a dictionary of child pids
+def reap(kids, func=None, once=0):
+ while kids:
+ if func:
+ func()
+ try:
+ pid, status = os.waitpid(-1, os.WNOHANG)
+ except OSError, e:
+ # If the child procs had a bug we might have no children
+ if e.errno <> errno.ECHILD:
+ raise
+ kids.clear()
+ break
+ if pid <> 0:
+ try:
+ del kids[pid]
+ except KeyError:
+ # Huh? How can this happen?
+ pass
+ if once:
+ break
+
+
+def GetLanguageDescr(lang):
+ return mm_cfg.LC_DESCRIPTIONS[lang][0]
+
+
+def GetCharSet(lang):
+ return mm_cfg.LC_DESCRIPTIONS[lang][1]
+
+
+
+def get_domain():
+ host = os.environ.get('HTTP_HOST', os.environ.get('SERVER_NAME'))
+ port = os.environ.get('SERVER_PORT')
+ # Strip off the port if there is one
+ if port and host.endswith(':' + port):
+ host = host[:-len(port)-1]
+ if mm_cfg.VIRTUAL_HOST_OVERVIEW and host:
+ return host.lower()
+ else:
+ # See the note in Defaults.py concerning DEFAULT_HOST_NAME
+ # vs. DEFAULT_EMAIL_HOST.
+ hostname = mm_cfg.DEFAULT_HOST_NAME or mm_cfg.DEFAULT_EMAIL_HOST
+ return hostname.lower()
+
+
+def get_site_email(hostname=None, extra=None):
+ if hostname is None:
+ hostname = mm_cfg.VIRTUAL_HOSTS.get(get_domain(), get_domain())
+ if extra is None:
+ return '%s@%s' % (mm_cfg.MAILMAN_SITE_LIST, hostname)
+ return '%s-%s@%s' % (mm_cfg.MAILMAN_SITE_LIST, extra, hostname)
+
+
+
+# This algorithm crafts a guaranteed unique message-id. The theory here is
+# that pid+listname+host will distinguish the message-id for every process on
+# the system, except when process ids wrap around. To further distinguish
+# message-ids, we prepend the integral time in seconds since the epoch. It's
+# still possible that we'll vend out more than one such message-id per second,
+# so we prepend a monotonically incrementing serial number. It's highly
+# unlikely that within a single second, there'll be a pid wraparound.
+_serial = 0
+def unique_message_id(mlist):
+ global _serial
+ msgid = '<mailman.%d.%d.%d.%s@%s>' % (
+ _serial, time.time(), os.getpid(),
+ mlist.internal_name(), mlist.host_name)
+ _serial += 1
+ return msgid
+
+
+# Figure out epoch seconds of midnight at the start of today (or the given
+# 3-tuple date of (year, month, day).
+def midnight(date=None):
+ if date is None:
+ date = time.localtime()[:3]
+ # -1 for dst flag tells the library to figure it out
+ return time.mktime(date + (0,)*5 + (-1,))
+
+
+
+# Utilities to convert from simplified $identifier substitutions to/from
+# standard Python $(identifier)s substititions. The "Guido rules" for the
+# former are:
+# $$ -> $
+# $identifier -> $(identifier)s
+# ${identifier} -> $(identifier)s
+
+def to_dollar(s):
+ """Convert from %-strings to $-strings."""
+ s = s.replace('$', '$$').replace('%%', '%')
+ parts = cre.split(s)
+ for i in range(1, len(parts), 2):
+ if parts[i+1] and parts[i+1][0] in IDENTCHARS:
+ parts[i] = '${' + parts[i] + '}'
+ else:
+ parts[i] = '$' + parts[i]
+ return EMPTYSTRING.join(parts)
+
+
+def to_percent(s):
+ """Convert from $-strings to %-strings."""
+ s = s.replace('%', '%%').replace('$$', '$')
+ parts = dre.split(s)
+ for i in range(1, len(parts), 4):
+ if parts[i] is not None:
+ parts[i] = '$'
+ elif parts[i+1] is not None:
+ parts[i+1] = '%(' + parts[i+1] + ')s'
+ else:
+ parts[i+2] = '%(' + parts[i+2] + ')s'
+ return EMPTYSTRING.join(filter(None, parts))
+
+
+def dollar_identifiers(s):
+ """Return the set (dictionary) of identifiers found in a $-string."""
+ d = {}
+ for name in filter(None, [b or c or None for a, b, c in dre.findall(s)]):
+ d[name] = 1
+ return d
+
+
+def percent_identifiers(s):
+ """Return the set (dictionary) of identifiers found in a %-string."""
+ d = {}
+ for name in cre.findall(s):
+ d[name] = 1
+ return d
+
+
+
+# Utilities to canonicalize a string, which means un-HTML-ifying the string to
+# produce a Unicode string or an 8-bit string if all the characters are ASCII.
+def canonstr(s, lang=None):
+ newparts = []
+ parts = re.split(r'&(?P<ref>[^;]+);', s)
+ def appchr(i):
+ if i < 256:
+ newparts.append(chr(i))
+ else:
+ newparts.append(unichr(i))
+ while 1:
+ newparts.append(parts.pop(0))
+ if not parts:
+ break
+ ref = parts.pop(0)
+ if ref.startswith('#'):
+ try:
+ appchr(int(ref[1:]))
+ except ValueError:
+ # Non-convertable, stick with what we got
+ newparts.append('&'+ref+';')
+ else:
+ c = htmlentitydefs.entitydefs.get(ref, '?')
+ if c.startswith('#') and c.endswith(';'):
+ appchr(int(ref[1:-1]))
+ else:
+ newparts.append(c)
+ newstr = EMPTYSTRING.join(newparts)
+ if isinstance(newstr, UnicodeType):
+ return newstr
+ # We want the default fallback to be iso-8859-1 even if the language is
+ # English (us-ascii). This seems like a practical compromise so that
+ # non-ASCII characters in names can be used in English lists w/o having to
+ # change the global charset for English from us-ascii (which I
+ # superstitiously think my have unintended consequences).
+ if lang is None:
+ charset = 'iso-8859-1'
+ else:
+ charset = GetCharSet(lang)
+ if charset == 'us-ascii':
+ charset = 'iso-8859-1'
+ return unicode(newstr, charset, 'replace')
+
+
+# The opposite of canonstr() -- sorta. I.e. it attempts to encode s in the
+# charset of the given language, which is the character set that the page will
+# be rendered in, and failing that, replaces non-ASCII characters with their
+# html references. It always returns a byte string.
+def uncanonstr(s, lang=None):
+ if s is None:
+ s = u''
+ if lang is None:
+ charset = 'us-ascii'
+ else:
+ charset = GetCharSet(lang)
+ # See if the string contains characters only in the desired character
+ # set. If so, return it unchanged, except for coercing it to a byte
+ # string.
+ try:
+ if isinstance(s, UnicodeType):
+ return s.encode(charset)
+ else:
+ u = unicode(s, charset)
+ return s
+ except UnicodeError:
+ # Nope, it contains funny characters, so html-ref it
+ return uquote(s)
+
+def uquote(s):
+ a = []
+ for c in s:
+ o = ord(c)
+ if o > 127:
+ a.append('&#%3d;' % o)
+ else:
+ a.append(c)
+ # Join characters together and coerce to byte string
+ return str(EMPTYSTRING.join(a))
diff --git a/Mailman/Version.py b/Mailman/Version.py
new file mode 100644
index 00000000..11fb2c0a
--- /dev/null
+++ b/Mailman/Version.py
@@ -0,0 +1,48 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# Mailman version
+VERSION = "2.1"
+
+# And as a hex number in the manner of PY_VERSION_HEX
+ALPHA = 0xa
+BETA = 0xb
+GAMMA = 0xc
+# release candidates
+RC = GAMMA
+FINAL = 0xf
+
+MAJOR_REV = 2
+MINOR_REV = 1
+MICRO_REV = 0
+REL_LEVEL = FINAL
+# at most 15 beta releases!
+REL_SERIAL = 0
+
+HEX_VERSION = ((MAJOR_REV << 24) | (MINOR_REV << 16) | (MICRO_REV << 8) |
+ (REL_LEVEL << 4) | (REL_SERIAL << 0))
+
+# config.pck schema version number
+DATA_FILE_VERSION = 88
+
+# qfile/*.db schema version number
+QFILE_SCHEMA_VERSION = 3
+
+# version number for the data/pending.db file schema
+PENDING_FILE_SCHEMA_VERSION = 1
+
+# version number for the lists/<listname>/request.db file schema
+REQUESTS_FILE_SCHEMA_VERSION = 1
diff --git a/Mailman/__init__.py b/Mailman/__init__.py
new file mode 100644
index 00000000..2cbbabb1
--- /dev/null
+++ b/Mailman/__init__.py
@@ -0,0 +1,15 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
diff --git a/Mailman/htmlformat.py b/Mailman/htmlformat.py
new file mode 100644
index 00000000..0175bccb
--- /dev/null
+++ b/Mailman/htmlformat.py
@@ -0,0 +1,678 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+
+"""Library for program-based construction of an HTML documents.
+
+Encapsulate HTML formatting directives in classes that act as containers
+for python and, recursively, for nested HTML formatting objects.
+"""
+
+
+# Eventually could abstract down to HtmlItem, which outputs an arbitrary html
+# object given start / end tags, valid options, and a value. Ug, objects
+# shouldn't be adding their own newlines. The next object should.
+
+
+import types
+
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman.i18n import _
+
+SPACE = ' '
+EMPTYSTRING = ''
+NL = '\n'
+
+
+
+# Format an arbitrary object.
+def HTMLFormatObject(item, indent):
+ "Return a presentation of an object, invoking their Format method if any."
+ if type(item) == type(''):
+ return item
+ elif not hasattr(item, "Format"):
+ return `item`
+ else:
+ return item.Format(indent)
+
+def CaseInsensitiveKeyedDict(d):
+ result = {}
+ for (k,v) in d.items():
+ result[k.lower()] = v
+ return result
+
+# Given references to two dictionaries, copy the second dictionary into the
+# first one.
+def DictMerge(destination, fresh_dict):
+ for (key, value) in fresh_dict.items():
+ destination[key] = value
+
+class Table:
+ def __init__(self, **table_opts):
+ self.cells = []
+ self.cell_info = {}
+ self.row_info = {}
+ self.opts = table_opts
+
+ def AddOptions(self, opts):
+ DictMerge(self.opts, opts)
+
+ # Sets all of the cells. It writes over whatever cells you had there
+ # previously.
+
+ def SetAllCells(self, cells):
+ self.cells = cells
+
+ # Add a new blank row at the end
+ def NewRow(self):
+ self.cells.append([])
+
+ # Add a new blank cell at the end
+ def NewCell(self):
+ self.cells[-1].append('')
+
+ def AddRow(self, row):
+ self.cells.append(row)
+
+ def AddCell(self, cell):
+ self.cells[-1].append(cell)
+
+ def AddCellInfo(self, row, col, **kws):
+ kws = CaseInsensitiveKeyedDict(kws)
+ if not self.cell_info.has_key(row):
+ self.cell_info[row] = { col : kws }
+ elif self.cell_info[row].has_key(col):
+ DictMerge(self.cell_info[row], kws)
+ else:
+ self.cell_info[row][col] = kws
+
+ def AddRowInfo(self, row, **kws):
+ kws = CaseInsensitiveKeyedDict(kws)
+ if not self.row_info.has_key(row):
+ self.row_info[row] = kws
+ else:
+ DictMerge(self.row_info[row], kws)
+
+ # What's the index for the row we just put in?
+ def GetCurrentRowIndex(self):
+ return len(self.cells)-1
+
+ # What's the index for the col we just put in?
+ def GetCurrentCellIndex(self):
+ return len(self.cells[-1])-1
+
+ def ExtractCellInfo(self, info):
+ valid_mods = ['align', 'valign', 'nowrap', 'rowspan', 'colspan',
+ 'bgcolor']
+ output = ''
+
+ for (key, val) in info.items():
+ if not key in valid_mods:
+ continue
+ if key == 'nowrap':
+ output = output + ' NOWRAP'
+ continue
+ else:
+ output = output + ' %s="%s"' % (key.upper(), val)
+
+ return output
+
+ def ExtractRowInfo(self, info):
+ valid_mods = ['align', 'valign', 'bgcolor']
+ output = ''
+
+ for (key, val) in info.items():
+ if not key in valid_mods:
+ continue
+ output = output + ' %s="%s"' % (key.upper(), val)
+
+ return output
+
+ def ExtractTableInfo(self, info):
+ valid_mods = ['align', 'width', 'border', 'cellspacing', 'cellpadding',
+ 'bgcolor']
+
+ output = ''
+
+ for (key, val) in info.items():
+ if not key in valid_mods:
+ continue
+ if key == 'border' and val == None:
+ output = output + ' BORDER'
+ continue
+ else:
+ output = output + ' %s="%s"' % (key.upper(), val)
+
+ return output
+
+ def FormatCell(self, row, col, indent):
+ try:
+ my_info = self.cell_info[row][col]
+ except:
+ my_info = None
+
+ output = '\n' + ' '*indent + '<td'
+ if my_info:
+ output = output + self.ExtractCellInfo(my_info)
+ item = self.cells[row][col]
+ item_format = HTMLFormatObject(item, indent+4)
+ output = '%s>%s</td>' % (output, item_format)
+ return output
+
+ def FormatRow(self, row, indent):
+ try:
+ my_info = self.row_info[row]
+ except:
+ my_info = None
+
+ output = '\n' + ' '*indent + '<tr'
+ if my_info:
+ output = output + self.ExtractRowInfo(my_info)
+ output = output + '>'
+
+ for i in range(len(self.cells[row])):
+ output = output + self.FormatCell(row, i, indent + 2)
+
+ output = output + '\n' + ' '*indent + '</tr>'
+
+ return output
+
+ def Format(self, indent=0):
+ output = '\n' + ' '*indent + '<table'
+ output = output + self.ExtractTableInfo(self.opts)
+ output = output + '>'
+
+ for i in range(len(self.cells)):
+ output = output + self.FormatRow(i, indent + 2)
+
+ output = output + '\n' + ' '*indent + '</table>\n'
+
+ return output
+
+
+class Link:
+ def __init__(self, href, text, target=None):
+ self.href = href
+ self.text = text
+ self.target = target
+
+ def Format(self, indent=0):
+ texpr = ""
+ if self.target != None:
+ texpr = ' target="%s"' % self.target
+ return '<a href="%s"%s>%s</a>' % (HTMLFormatObject(self.href, indent),
+ texpr,
+ HTMLFormatObject(self.text, indent))
+
+class FontSize:
+ """FontSize is being deprecated - use FontAttr(..., size="...") instead."""
+ def __init__(self, size, *items):
+ self.items = list(items)
+ self.size = size
+
+ def Format(self, indent=0):
+ output = '<font size="%s">' % self.size
+ for item in self.items:
+ output = output + HTMLFormatObject(item, indent)
+ output = output + '</font>'
+ return output
+
+class FontAttr:
+ """Present arbitrary font attributes."""
+ def __init__(self, *items, **kw):
+ self.items = list(items)
+ self.attrs = kw
+
+ def Format(self, indent=0):
+ seq = []
+ for k, v in self.attrs.items():
+ seq.append('%s="%s"' % (k, v))
+ output = '<font %s>' % SPACE.join(seq)
+ for item in self.items:
+ output = output + HTMLFormatObject(item, indent)
+ output = output + '</font>'
+ return output
+
+
+class Container:
+ def __init__(self, *items):
+ if not items:
+ self.items = []
+ else:
+ self.items = items
+
+ def AddItem(self, obj):
+ self.items.append(obj)
+
+ def Format(self, indent=0):
+ output = []
+ for item in self.items:
+ output.append(HTMLFormatObject(item, indent))
+ return EMPTYSTRING.join(output)
+
+
+class Label(Container):
+ align = 'right'
+
+ def __init__(self, *items):
+ Container.__init__(self, *items)
+
+ def Format(self, indent=0):
+ return ('<div align="%s">' % self.align) + \
+ Container.Format(self, indent) + \
+ '</div>'
+
+
+# My own standard document template. YMMV.
+# something more abstract would be more work to use...
+
+class Document(Container):
+ title = None
+ language = None
+ bgcolor = mm_cfg.WEB_BG_COLOR
+ suppress_head = 0
+
+ def set_language(self, lang=None):
+ self.language = lang
+
+ def set_bgcolor(self, color):
+ self.bgcolor = color
+
+ def SetTitle(self, title):
+ self.title = title
+
+ def Format(self, indent=0, **kws):
+ charset = 'us-ascii'
+ if self.language:
+ charset = Utils.GetCharSet(self.language)
+ output = ['Content-Type: text/html; charset=%s\n' % charset]
+ if not self.suppress_head:
+ kws.setdefault('bgcolor', self.bgcolor)
+ tab = ' ' * indent
+ output.extend([tab,
+ '<HTML>',
+ '<HEAD>'
+ ])
+ if mm_cfg.IMAGE_LOGOS:
+ output.append('<LINK REL="SHORTCUT ICON" HREF="%s">' %
+ (mm_cfg.IMAGE_LOGOS + mm_cfg.SHORTCUT_ICON))
+ # Hit all the bases
+ output.append('<META http-equiv="Content-Type" '
+ 'content="text/html; charset=%s">' % charset)
+ if self.title:
+ output.append('%s<TITLE>%s</TITLE>' % (tab, self.title))
+ output.append('%s</HEAD>' % tab)
+ quals = []
+ # Default link colors
+ if mm_cfg.WEB_VLINK_COLOR:
+ kws.setdefault('vlink', mm_cfg.WEB_VLINK_COLOR)
+ if mm_cfg.WEB_ALINK_COLOR:
+ kws.setdefault('alink', mm_cfg.WEB_ALINK_COLOR)
+ if mm_cfg.WEB_LINK_COLOR:
+ kws.setdefault('alink', mm_cfg.WEB_LINK_COLOR)
+ for k, v in kws.items():
+ quals.append('%s="%s"' % (k, v))
+ output.append('%s<BODY %s>' % (tab, SPACE.join(quals)))
+ # Always do this...
+ output.append(Container.Format(self, indent))
+ if not self.suppress_head:
+ output.append('%s</BODY>' % tab)
+ output.append('%s</HTML>' % tab)
+ return NL.join(output)
+
+ def addError(self, errmsg, tag=None, *args):
+ if tag is None:
+ tag = _('Error: ')
+ self.AddItem(Header(3, Bold(FontAttr(
+ _(tag), color=mm_cfg.WEB_ERROR_COLOR, size='+2')).Format() +
+ Italic(errmsg % args).Format()))
+
+
+class HeadlessDocument(Document):
+ """Document without head section, for templates that provide their own."""
+ suppress_head = 1
+
+
+class StdContainer(Container):
+ def Format(self, indent=0):
+ # If I don't start a new I ignore indent
+ output = '<%s>' % self.tag
+ output = output + Container.Format(self, indent)
+ output = '%s</%s>' % (output, self.tag)
+ return output
+
+
+class QuotedContainer(Container):
+ def Format(self, indent=0):
+ # If I don't start a new I ignore indent
+ output = '<%s>%s</%s>' % (
+ self.tag,
+ Utils.websafe(Container.Format(self, indent)),
+ self.tag)
+ return output
+
+class Header(StdContainer):
+ def __init__(self, num, *items):
+ self.items = items
+ self.tag = 'h%d' % num
+
+class Address(StdContainer):
+ tag = 'address'
+
+class Underline(StdContainer):
+ tag = 'u'
+
+class Bold(StdContainer):
+ tag = 'strong'
+
+class Italic(StdContainer):
+ tag = 'em'
+
+class Preformatted(QuotedContainer):
+ tag = 'pre'
+
+class Subscript(StdContainer):
+ tag = 'sub'
+
+class Superscript(StdContainer):
+ tag = 'sup'
+
+class Strikeout(StdContainer):
+ tag = 'strike'
+
+class Center(StdContainer):
+ tag = 'center'
+
+class Form(Container):
+ def __init__(self, action='', method='POST', encoding=None, *items):
+ apply(Container.__init__, (self,) + items)
+ self.action = action
+ self.method = method
+ self.encoding = encoding
+
+ def set_action(self, action):
+ self.action = action
+
+ def Format(self, indent=0):
+ spaces = ' ' * indent
+ encoding = ''
+ if self.encoding:
+ encoding = 'enctype="%s"' % self.encoding
+ output = '\n%s<FORM action="%s" method="%s" %s>\n' % (
+ spaces, self.action, self.method, encoding)
+ output = output + Container.Format(self, indent+2)
+ output = '%s\n%s</FORM>\n' % (output, spaces)
+ return output
+
+
+class InputObj:
+ def __init__(self, name, ty, value, checked, **kws):
+ self.name = name
+ self.type = ty
+ self.value = value
+ self.checked = checked
+ self.kws = kws
+
+ def Format(self, indent=0):
+ output = ['<INPUT name="%s" type="%s" value="%s"' %
+ (self.name, self.type, self.value)]
+ for item in self.kws.items():
+ output.append('%s="%s"' % item)
+ if self.checked:
+ output.append('CHECKED')
+ output.append('>')
+ return SPACE.join(output)
+
+
+class SubmitButton(InputObj):
+ def __init__(self, name, button_text):
+ InputObj.__init__(self, name, "SUBMIT", button_text, checked=0)
+
+class PasswordBox(InputObj):
+ def __init__(self, name, value='', size=mm_cfg.TEXTFIELDWIDTH):
+ InputObj.__init__(self, name, "PASSWORD", value, checked=0, size=size)
+
+class TextBox(InputObj):
+ def __init__(self, name, value='', size=mm_cfg.TEXTFIELDWIDTH):
+ InputObj.__init__(self, name, "TEXT", value, checked=0, size=size)
+
+class Hidden(InputObj):
+ def __init__(self, name, value=''):
+ InputObj.__init__(self, name, 'HIDDEN', value, checked=0)
+
+class TextArea:
+ def __init__(self, name, text='', rows=None, cols=None, wrap='soft',
+ readonly=0):
+ self.name = name
+ self.text = text
+ self.rows = rows
+ self.cols = cols
+ self.wrap = wrap
+ self.readonly = readonly
+
+ def Format(self, indent=0):
+ output = '<TEXTAREA NAME=%s' % self.name
+ if self.rows:
+ output += ' ROWS=%s' % self.rows
+ if self.cols:
+ output += ' COLS=%s' % self.cols
+ if self.wrap:
+ output += ' WRAP=%s' % self.wrap
+ if self.readonly:
+ output += ' READONLY'
+ output += '>%s</TEXTAREA>' % self.text
+ return output
+
+class FileUpload(InputObj):
+ def __init__(self, name, rows=None, cols=None, **kws):
+ apply(InputObj.__init__, (self, name, 'FILE', '', 0), kws)
+
+class RadioButton(InputObj):
+ def __init__(self, name, value, checked=0, **kws):
+ apply(InputObj.__init__, (self, name, 'RADIO', value, checked), kws)
+
+class CheckBox(InputObj):
+ def __init__(self, name, value, checked=0, **kws):
+ apply(InputObj.__init__, (self, name, "CHECKBOX", value, checked), kws)
+
+class VerticalSpacer:
+ def __init__(self, size=10):
+ self.size = size
+ def Format(self, indent=0):
+ output = '<spacer type="vertical" height="%d">' % self.size
+ return output
+
+class WidgetArray:
+ Widget = None
+
+ def __init__(self, name, button_names, checked, horizontal, values):
+ self.name = name
+ self.button_names = button_names
+ self.checked = checked
+ self.horizontal = horizontal
+ self.values = values
+ assert len(values) == len(button_names)
+ # Don't assert `checked' because for RadioButtons it is a scalar while
+ # for CheckedBoxes it is a vector. Subclasses will assert length.
+
+ def ischecked(self, i):
+ raise NotImplemented
+
+ def Format(self, indent=0):
+ t = Table(cellspacing=5)
+ items = []
+ for i, name, value in zip(range(len(self.button_names)),
+ self.button_names,
+ self.values):
+ ischecked = (self.ischecked(i))
+ item = self.Widget(self.name, value, ischecked).Format() + name
+ items.append(item)
+ if not self.horizontal:
+ t.AddRow(items)
+ items = []
+ if self.horizontal:
+ t.AddRow(items)
+ return t.Format(indent)
+
+class RadioButtonArray(WidgetArray):
+ Widget = RadioButton
+
+ def __init__(self, name, button_names, checked=None, horizontal=1,
+ values=None):
+ if values is None:
+ values = range(len(button_names))
+ # BAW: assert checked is a scalar...
+ WidgetArray.__init__(self, name, button_names, checked, horizontal,
+ values)
+
+ def ischecked(self, i):
+ return self.checked == i
+
+class CheckBoxArray(WidgetArray):
+ Widget = CheckBox
+
+ def __init__(self, name, button_names, checked=None, horizontal=0,
+ values=None):
+ if checked is None:
+ checked = [0] * len(button_names)
+ else:
+ assert len(checked) == len(button_names)
+ if values is None:
+ values = range(len(button_names))
+ WidgetArray.__init__(self, name, button_names, checked, horizontal,
+ values)
+
+ def ischecked(self, i):
+ return self.checked[i]
+
+class UnorderedList(Container):
+ def Format(self, indent=0):
+ spaces = ' ' * indent
+ output = '\n%s<ul>\n' % spaces
+ for item in self.items:
+ output = output + '%s<li>%s\n' % \
+ (spaces, HTMLFormatObject(item, indent + 2))
+ output = output + '%s</ul>\n' % spaces
+ return output
+
+class OrderedList(Container):
+ def Format(self, indent=0):
+ spaces = ' ' * indent
+ output = '\n%s<ol>\n' % spaces
+ for item in self.items:
+ output = output + '%s<li>%s\n' % \
+ (spaces, HTMLFormatObject(item, indent + 2))
+ output = output + '%s</ol>\n' % spaces
+ return output
+
+class DefinitionList(Container):
+ def Format(self, indent=0):
+ spaces = ' ' * indent
+ output = '\n%s<dl>\n' % spaces
+ for dt, dd in self.items:
+ output = output + '%s<dt>%s\n<dd>%s\n' % \
+ (spaces, HTMLFormatObject(dt, indent+2),
+ HTMLFormatObject(dd, indent+2))
+ output = output + '%s</dl>\n' % spaces
+ return output
+
+
+
+# Logo constants
+#
+# These are the URLs which the image logos link to. The Mailman home page now
+# points at the gnu.org site instead of the www.list.org mirror.
+#
+from mm_cfg import MAILMAN_URL
+PYTHON_URL = 'http://www.python.org/'
+GNU_URL = 'http://www.gnu.org/'
+
+# The names of the image logo files. These are concatentated onto
+# mm_cfg.IMAGE_LOGOS (not urljoined).
+DELIVERED_BY = 'mailman.jpg'
+PYTHON_POWERED = 'PythonPowered.png'
+GNU_HEAD = 'gnu-head-tiny.jpg'
+
+
+def MailmanLogo():
+ t = Table(border=0, width='100%')
+ if mm_cfg.IMAGE_LOGOS:
+ def logo(file):
+ return mm_cfg.IMAGE_LOGOS + file
+ mmlink = '<img src="%s" alt="Delivered by Mailman" border=0>' \
+ '<br>version %s' % (logo(DELIVERED_BY), mm_cfg.VERSION)
+ pylink = '<img src="%s" alt="Python Powered" border=0>' % \
+ logo(PYTHON_POWERED)
+ gnulink = '<img src="%s" alt="GNU\'s Not Unix" border=0>' % \
+ logo(GNU_HEAD)
+ t.AddRow([mmlink, pylink, gnulink])
+ else:
+ # use only textual links
+ version = mm_cfg.VERSION
+ mmlink = Link(MAILMAN_URL,
+ _('Delivered by Mailman<br>version %(version)s'))
+ pylink = Link(PYTHON_URL, _('Python Powered'))
+ gnulink = Link(GNU_URL, _("Gnu's Not Unix"))
+ t.AddRow([mmlink, pylink, gnulink])
+ return t
+
+
+class SelectOptions:
+ def __init__(self, varname, values, legend,
+ selected=0, size=1, multiple=None):
+ self.varname = varname
+ self.values = values
+ self.legend = legend
+ self.size = size
+ self.multiple = multiple
+ # we convert any type to tuple, commas are needed
+ if not multiple:
+ if type(selected) == types.IntType:
+ self.selected = (selected,)
+ elif type(selected) == types.TupleType:
+ self.selected = (selected[0],)
+ elif type(selected) == types.ListType:
+ self.selected = (selected[0],)
+ else:
+ self.selected = (0,)
+
+ def Format(self, indent=0):
+ spaces = " " * indent
+ items = min( len(self.values), len(self.legend) )
+
+ # jcrey: If there is no argument, we return nothing to avoid errors
+ if items == 0:
+ return ""
+
+ text = "\n" + spaces + "<Select name=\"%s\"" % self.varname
+ if self.size > 1:
+ text = text + " size=%d" % self.size
+ if self.multiple:
+ text = text + " multiple"
+ text = text + ">\n"
+
+ for i in range(items):
+ if i in self.selected:
+ checked = " Selected"
+ else:
+ checked = ""
+
+ opt = " <option value=\"%s\"%s> %s </option>" % (
+ self.values[i], checked, self.legend[i])
+ text = text + spaces + opt + "\n"
+
+ return text + spaces + '</Select>'
diff --git a/Mailman/i18n.py b/Mailman/i18n.py
new file mode 100644
index 00000000..d38eba85
--- /dev/null
+++ b/Mailman/i18n.py
@@ -0,0 +1,129 @@
+# Copyright (C) 2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+import sys
+import time
+import gettext
+from types import StringType
+
+from Mailman import mm_cfg
+from Mailman.SafeDict import SafeDict
+
+_translation = None
+
+
+
+def set_language(language=None):
+ global _translation
+ if language is not None:
+ language = [language]
+ try:
+ _translation = gettext.translation('mailman', mm_cfg.MESSAGES_DIR,
+ language)
+ except IOError:
+ # The selected language was not installed in messages, so fall back to
+ # untranslated English.
+ _translation = gettext.NullTranslations()
+
+def get_translation():
+ return _translation
+
+def set_translation(translation):
+ global _translation
+ _translation = translation
+
+
+# Set up the global translation based on environment variables. Mostly used
+# for command line scripts.
+if _translation is None:
+ set_language()
+
+
+
+def _(s):
+ if s == '':
+ return s
+ assert s
+ # Do translation of the given string into the current language, and do
+ # Ping-string interpolation into the resulting string.
+ #
+ # This lets you write something like:
+ #
+ # now = time.ctime(time.time())
+ # print _('The current time is: %(now)s')
+ #
+ # and have it Just Work. Note that the lookup order for keys in the
+ # original string is 1) locals dictionary, 2) globals dictionary.
+ #
+ # First, get the frame of the caller
+ frame = sys._getframe(1)
+ # A `safe' dictionary is used so we won't get an exception if there's a
+ # missing key in the dictionary.
+ dict = SafeDict(frame.f_globals.copy())
+ dict.update(frame.f_locals)
+ # Translate the string, then interpolate into it.
+ return _translation.gettext(s) % dict
+
+
+
+def ctime(date):
+ # Don't make these module globals since we have to do runtime translation
+ # of the strings anyway.
+ daysofweek = [
+ _('Mon'), _('Tue'), _('Wed'), _('Thu'),
+ _('Fri'), _('Sat'), _('Sun')
+ ]
+ months = [
+ '',
+ _('Jan'), _('Feb'), _('Mar'), _('Apr'), _('May'), _('Jun'),
+ _('Jul'), _('Aug'), _('Sep'), _('Oct'), _('Nov'), _('Dec')
+ ]
+
+ tzname = _('Server Local Time')
+ if isinstance(date, StringType):
+ try:
+ year, mon, day, hh, mm, ss, wday, ydat, dst = time.strptime(date)
+ tzname = time.tzname[dst and 1 or 0]
+ except ValueError:
+ try:
+ wday, mon, day, hms, year = date.split()
+ hh, mm, ss = hms.split(':')
+ year = int(year)
+ day = int(day)
+ hh = int(hh)
+ mm = int(mm)
+ ss = int(ss)
+ except ValueError:
+ return date
+ else:
+ for i in range(0, 7):
+ wconst = (1999, 1, 1, 0, 0, 0, i, 1, 0)
+ if wday.lower() == time.strftime('%a', wconst).lower():
+ wday = i
+ break
+ for i in range(1, 13):
+ mconst = (1999, i, 1, 0, 0, 0, 0, 1, 0)
+ if mon.lower() == time.strftime('%b', mconst).lower():
+ mon = i
+ break
+ else:
+ year, mon, day, hh, mm, ss, wday, yday, dst = time.localtime(date)
+ tzname = time.tzname[dst and 1 or 0]
+
+ wday = daysofweek[wday]
+ mon = months[mon]
+ return _('%(wday)s %(mon)s %(day)2i %(hh)02i:%(mm)02i:%(ss)02i '
+ '%(tzname)s %(year)04i')
diff --git a/Mailman/mm_cfg.py.dist.in b/Mailman/mm_cfg.py.dist.in
new file mode 100644
index 00000000..c11ac755
--- /dev/null
+++ b/Mailman/mm_cfg.py.dist.in
@@ -0,0 +1,44 @@
+# -*- python -*-
+
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""This module contains your site-specific settings.
+
+From a brand new distribution it should be copied to mm_cfg.py. If you
+already have an mm_cfg.py, be careful to add in only the new settings you
+want. Mailman's installation procedure will never overwrite your mm_cfg.py
+file.
+
+The complete set of distributed defaults, with documentation, are in the file
+Defaults.py. In mm_cfg.py, override only those you want to change, after the
+
+ from Defaults import *
+
+line (see below).
+
+Note that these are just default settings; many can be overridden via the
+administrator and user interfaces on a per-list or per-user basis.
+
+"""
+
+###############################################
+# Here's where we get the distributed defaults.
+
+from Defaults import *
+
+##################################################
+# Put YOUR site-specific settings below this line.
diff --git a/Mailman/versions.py b/Mailman/versions.py
new file mode 100644
index 00000000..7aa9d9e8
--- /dev/null
+++ b/Mailman/versions.py
@@ -0,0 +1,495 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+
+"""Routines which rectify an old mailing list with current structure.
+
+The MailList.CheckVersion() method looks for an old .data_version setting in
+the loaded structure, and if found calls the Update() routine from this
+module, supplying the list and the state last loaded from storage. The state
+is necessary to distinguish from default assignments done in the .InitVars()
+methods, before .CheckVersion() is called.
+
+For new versions you should add sections to the UpdateOldVars() and the
+UpdateOldUsers() sections, to preserve the sense of settings across structural
+changes. Note that the routines have only one pass - when .CheckVersions()
+finds a version change it runs this routine and then updates the data_version
+number of the list, and then does a .Save(), so the transformations won't be
+run again until another version change is detected.
+
+"""
+
+
+from types import ListType, StringType
+
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman import Message
+from Mailman.MemberAdaptor import UNKNOWN
+from Mailman.Logging.Syslog import syslog
+
+
+
+def Update(l, stored_state):
+ "Dispose of old vars and user options, mapping to new ones when suitable."
+ ZapOldVars(l)
+ UpdateOldUsers(l)
+ NewVars(l)
+ UpdateOldVars(l, stored_state)
+ CanonicalizeUserOptions(l)
+ NewRequestsDatabase(l)
+
+
+
+def ZapOldVars(mlist):
+ for name in ('num_spawns', 'filter_prog', 'clobber_date',
+ 'public_archive_file_dir', 'private_archive_file_dir',
+ 'archive_directory',
+ # Pre-2.1a4 bounce data
+ 'minimum_removal_date',
+ 'minimum_post_count_before_bounce_action',
+ 'automatic_bounce_action',
+ 'max_posts_between_bounces',
+ ):
+ if hasattr(mlist, name):
+ delattr(mlist, name)
+
+
+
+uniqueval = []
+def UpdateOldVars(l, stored_state):
+ """Transform old variable values into new ones, deleting old ones.
+ stored_state is last snapshot from file, as opposed to from InitVars()."""
+
+ def PreferStored(oldname, newname, newdefault=uniqueval,
+ l=l, state=stored_state):
+ """Use specified old value if new value is not in stored state.
+
+ If the old attr does not exist, and no newdefault is specified, the
+ new attr is *not* created - so either specify a default or be positive
+ that the old attr exists - or don't depend on the new attr.
+
+ """
+ if hasattr(l, oldname):
+ if not state.has_key(newname):
+ setattr(l, newname, getattr(l, oldname))
+ delattr(l, oldname)
+ if not hasattr(l, newname) and newdefault is not uniqueval:
+ setattr(l, newname, newdefault)
+
+ # Migrate to 2.1b3, baw 17-Aug-2001
+ if hasattr(l, 'dont_respond_to_post_requests'):
+ oldval = getattr(l, 'dont_respond_to_post_requests')
+ if not hasattr(l, 'respond_to_post_requests'):
+ l.respond_to_post_requests = not oldval
+ del l.dont_respond_to_post_requests
+
+ # Migrate to 2.1b3, baw 13-Oct-2001
+ # Basic defaults for new variables
+ if not hasattr(l, 'default_member_moderation'):
+ l.default_member_moderation = mm_cfg.DEFAULT_DEFAULT_MEMBER_MODERATION
+ if not hasattr(l, 'accept_these_nonmembers'):
+ l.accept_these_nonmembers = []
+ if not hasattr(l, 'hold_these_nonmembers'):
+ l.hold_these_nonmembers = []
+ if not hasattr(l, 'reject_these_nonmembers'):
+ l.reject_these_nonmembers = []
+ if not hasattr(l, 'discard_these_nonmembers'):
+ l.discard_these_nonmembers = []
+ if not hasattr(l, 'forward_auto_discards'):
+ l.forward_auto_discards = mm_cfg.DEFAULT_FORWARD_AUTO_DISCARDS
+ if not hasattr(l, 'generic_nonmember_action'):
+ l.generic_nonmember_action = mm_cfg.DEFAULT_GENERIC_NONMEMBER_ACTION
+ # Now convert what we can... Note that the interaction between the
+ # MM2.0.x attributes `moderated', `member_posting_only', and `posters' is
+ # so confusing, it makes my brain really ache. Which is why they go away
+ # in MM2.1. I think the best we can do semantically is the following:
+ #
+ # - If moderated == yes, then any sender who's address is not on the
+ # posters attribute would get held for approval. If the sender was on
+ # the posters list, then we'd defer judgement to a later step
+ # - If member_posting_only == yes, then members could post without holds,
+ # and if there were any addresses added to posters, they could also post
+ # without holds.
+ # - If member_posting_only == no, then what happens depends on the value
+ # of the posters attribute:
+ # o If posters was empty, then anybody can post without their
+ # message being held for approval
+ # o If posters was non-empty, then /only/ those addresses could post
+ # without approval, i.e. members not on posters would have their
+ # messages held for approval.
+ #
+ # How to translate this mess to MM2.1 values? I'm sure I got this wrong
+ # before, but here's how we're going to do it, as of MM2.1b3.
+ #
+ # - We'll control member moderation through their Moderate flag, and
+ # non-member moderation through the generic_nonmember_action,
+ # hold_these_nonmembers, and accept_these_nonmembers.
+ # - If moderated == yes then we need to troll through the addresses on
+ # posters, and any non-members would get added to
+ # accept_these_nonmembers. /Then/ we need to troll through the
+ # membership and any member on posters would get their Moderate flag
+ # unset, while members not on posters would get their Moderate flag set.
+ # Then generic_nonmember_action gets set to 1 (hold) so nonmembers get
+ # moderated, and default_member_moderation will be set to 1 (hold) so
+ # new members will also get held for moderation. We'll stop here.
+ # - We only get to here if moderated == no.
+ # - If member_posting_only == yes, then we'll turn off the Moderate flag
+ # for members. We troll through the posters attribute and add all those
+ # addresses to accept_these_nonmembers. We'll also set
+ # generic_nonmember_action to 1 and default_member_moderation to 0.
+ # We'll stop here.
+ # - We only get to here if member_posting_only == no
+ # - If posters is empty, then anybody could post without being held for
+ # approval, so we'll set generic_nonmember_action to 0 (accept), and
+ # we'll turn off the Moderate flag for all members. We'll also turn off
+ # default_member_moderation so new members can post without approval.
+ # We'll stop here.
+ # - We only get here if posters is non-empty.
+ # - This means that /only/ the addresses on posters got to post without
+ # being held for approval. So first, we troll through posters and add
+ # all non-members to accept_these_nonmembers. Then we troll through the
+ # membership and if their address is on posters, we'll clear their
+ # Moderate flag, otherwise we'll set it. We'll turn on
+ # default_member_moderation so new members get moderated. We'll set
+ # generic_nonmember_action to 1 (hold) so all other non-members will get
+ # moderated. And I think we're finally done.
+ #
+ # SIGH.
+ if hasattr(l, 'moderated'):
+ # We'll assume we're converting all these attributes at once
+ if l.moderated:
+ #syslog('debug', 'Case 1')
+ for addr in l.posters:
+ if not l.isMember(addr):
+ l.accept_these_nonmembers.append(addr)
+ for member in l.getMembers():
+ l.setMemberOption(member, mm_cfg.Moderate,
+ # reset for explicitly named members
+ member not in l.posters)
+ l.generic_nonmember_action = 1
+ l.default_member_moderation = 1
+ elif l.member_posting_only:
+ #syslog('debug', 'Case 2')
+ for addr in l.posters:
+ if not l.isMember(addr):
+ l.accept_these_nonmembers.append(addr)
+ for member in l.getMembers():
+ l.setMemberOption(member, mm_cfg.Moderate, 0)
+ l.generic_nonmember_action = 1
+ l.default_member_moderation = 0
+ elif not l.posters:
+ #syslog('debug', 'Case 3')
+ for member in l.getMembers():
+ l.setMemberOption(member, mm_cfg.Moderate, 0)
+ l.generic_nonmember_action = 0
+ l.default_member_moderation = 0
+ else:
+ #syslog('debug', 'Case 4')
+ for addr in l.posters:
+ if not l.isMember(addr):
+ l.accept_these_nonmembers.append(addr)
+ for member in l.getMembers():
+ l.setMemberOption(member, mm_cfg.Moderate,
+ # reset for explicitly named members
+ member not in l.posters)
+ l.generic_nonmember_action = 1
+ l.default_member_moderation = 1
+ # Now get rid of the old attributes
+ del l.moderated
+ del l.posters
+ del l.member_posting_only
+ if hasattr(l, 'forbidden_posters'):
+ # For each of the posters on this list, if they are members, toggle on
+ # their moderation flag. If they are not members, then add them to
+ # hold_these_nonmembers.
+ forbiddens = l.forbidden_posters
+ for addr in forbiddens:
+ if l.isMember(addr):
+ l.setMemberOption(addr, mm_cfg.Moderate, 1)
+ else:
+ l.hold_these_nonmembers.append(addr)
+ del l.forbidden_posters
+
+ # Migrate to 1.0b6, klm 10/22/1998:
+ PreferStored('reminders_to_admins', 'umbrella_list',
+ mm_cfg.DEFAULT_UMBRELLA_LIST)
+
+ # Migrate up to 1.0b5:
+ PreferStored('auto_subscribe', 'open_subscribe')
+ PreferStored('closed', 'private_roster')
+ PreferStored('mimimum_post_count_before_removal',
+ 'mimimum_post_count_before_bounce_action')
+ PreferStored('bad_posters', 'forbidden_posters')
+ PreferStored('automatically_remove', 'automatic_bounce_action')
+ if hasattr(l, "open_subscribe"):
+ if l.open_subscribe:
+ if mm_cfg.ALLOW_OPEN_SUBSCRIBE:
+ l.subscribe_policy = 0
+ else:
+ l.subscribe_policy = 1
+ else:
+ l.subscribe_policy = 2 # admin approval
+ delattr(l, "open_subscribe")
+ if not hasattr(l, "administrivia"):
+ setattr(l, "administrivia", mm_cfg.DEFAULT_ADMINISTRIVIA)
+ if not hasattr(l, "admin_member_chunksize"):
+ setattr(l, "admin_member_chunksize",
+ mm_cfg.DEFAULT_ADMIN_MEMBER_CHUNKSIZE)
+ #
+ # this attribute was added then deleted, so there are a number of
+ # cases to take care of
+ #
+ if hasattr(l, "posters_includes_members"):
+ if l.posters_includes_members:
+ if l.posters:
+ l.member_posting_only = 1
+ else:
+ if l.posters:
+ l.member_posting_only = 0
+ delattr(l, "posters_includes_members")
+ elif l.data_version <= 10 and l.posters:
+ # make sure everyone gets the behavior the list used to have, but only
+ # for really old versions of Mailman (1.0b5 or before). Any newer
+ # version of Mailman should not get this attribute whacked.
+ l.member_posting_only = 0
+ #
+ # transfer the list data type for holding members and digest members
+ # to the dict data type starting file format version 11
+ #
+ if type(l.members) is ListType:
+ members = {}
+ for m in l.members:
+ members[m] = 1
+ l.members = members
+ if type(l.digest_members) is ListType:
+ dmembers = {}
+ for dm in l.digest_members:
+ dmembers[dm] = 1
+ l.digest_members = dmembers
+ #
+ # set admin_notify_mchanges
+ #
+ if not hasattr(l, "admin_notify_mchanges"):
+ setattr(l, "admin_notify_mchanges",
+ mm_cfg.DEFAULT_ADMIN_NOTIFY_MCHANGES)
+ #
+ # Convert the members and digest_members addresses so that the keys of
+ # both these are always lowercased, but if there is a case difference, the
+ # value contains the case preserved value
+ #
+ for k in l.members.keys():
+ if k.lower() <> k:
+ l.members[k.lower()] = Utils.LCDomain(k)
+ del l.members[k]
+ elif type(l.members[k]) == StringType and k == l.members[k].lower():
+ # already converted
+ pass
+ else:
+ l.members[k] = 0
+ for k in l.digest_members.keys():
+ if k.lower() <> k:
+ l.digest_members[k.lower()] = Utils.LCDomain(k)
+ del l.digest_members[k]
+ elif type(l.digest_members[k]) == StringType and \
+ k == l.digest_members[k].lower():
+ # already converted
+ pass
+ else:
+ l.digest_members[k] = 0
+
+
+
+def NewVars(l):
+ """Add defaults for these new variables if they don't exist."""
+ def add_only_if_missing(attr, initval, l=l):
+ if not hasattr(l, attr):
+ setattr(l, attr, initval)
+ # 1.2 beta 1, baw 18-Feb-2000
+ # Autoresponder mixin class attributes
+ add_only_if_missing('autorespond_postings', 0)
+ add_only_if_missing('autorespond_admin', 0)
+ add_only_if_missing('autorespond_requests', 0)
+ add_only_if_missing('autoresponse_postings_text', '')
+ add_only_if_missing('autoresponse_admin_text', '')
+ add_only_if_missing('autoresponse_request_text', '')
+ add_only_if_missing('autoresponse_graceperiod', 90)
+ add_only_if_missing('postings_responses', {})
+ add_only_if_missing('admin_responses', {})
+ add_only_if_missing('reply_goes_to_list', '')
+ add_only_if_missing('preferred_language', mm_cfg.DEFAULT_SERVER_LANGUAGE)
+ add_only_if_missing('available_languages', [])
+ add_only_if_missing('digest_volume_frequency',
+ mm_cfg.DEFAULT_DIGEST_VOLUME_FREQUENCY)
+ add_only_if_missing('digest_last_sent_at', 0)
+ add_only_if_missing('mod_password', None)
+ add_only_if_missing('moderator', [])
+ add_only_if_missing('topics', [])
+ add_only_if_missing('topics_enabled', 0)
+ add_only_if_missing('topics_bodylines_limit', 5)
+ add_only_if_missing('one_last_digest', {})
+ add_only_if_missing('usernames', {})
+ add_only_if_missing('personalize', 0)
+ add_only_if_missing('first_strip_reply_to',
+ mm_cfg.DEFAULT_FIRST_STRIP_REPLY_TO)
+ add_only_if_missing('unsubscribe_policy',
+ mm_cfg.DEFAULT_UNSUBSCRIBE_POLICY)
+ add_only_if_missing('send_goodbye_msg', mm_cfg.DEFAULT_SEND_GOODBYE_MSG)
+ add_only_if_missing('include_rfc2369_headers', 1)
+ add_only_if_missing('include_list_post_header', 1)
+ add_only_if_missing('bounce_score_threshold',
+ mm_cfg.DEFAULT_BOUNCE_SCORE_THRESHOLD)
+ add_only_if_missing('bounce_info_stale_after',
+ mm_cfg.DEFAULT_BOUNCE_INFO_STALE_AFTER)
+ add_only_if_missing('bounce_you_are_disabled_warnings',
+ mm_cfg.DEFAULT_BOUNCE_YOU_ARE_DISABLED_WARNINGS)
+ add_only_if_missing(
+ 'bounce_you_are_disabled_warnings_interval',
+ mm_cfg.DEFAULT_BOUNCE_YOU_ARE_DISABLED_WARNINGS_INTERVAL)
+ add_only_if_missing(
+ 'bounce_unrecognized_goes_to_list_owner',
+ mm_cfg.DEFAULT_BOUNCE_UNRECOGNIZED_GOES_TO_LIST_OWNER)
+ add_only_if_missing(
+ 'bounce_notify_owner_on_disable',
+ mm_cfg.DEFAULT_BOUNCE_NOTIFY_OWNER_ON_DISABLE)
+ add_only_if_missing(
+ 'bounce_notify_owner_on_removal',
+ mm_cfg.DEFAULT_BOUNCE_NOTIFY_OWNER_ON_REMOVAL)
+ add_only_if_missing('ban_list', [])
+ add_only_if_missing('filter_mime_types', mm_cfg.DEFAULT_FILTER_MIME_TYPES)
+ add_only_if_missing('pass_mime_types', mm_cfg.DEFAULT_PASS_MIME_TYPES)
+ add_only_if_missing('filter_content', mm_cfg.DEFAULT_FILTER_CONTENT)
+ add_only_if_missing('convert_html_to_plaintext',
+ mm_cfg.DEFAULT_CONVERT_HTML_TO_PLAINTEXT)
+ add_only_if_missing('filter_action', mm_cfg.DEFAULT_FILTER_ACTION)
+ add_only_if_missing('delivery_status', {})
+ # This really ought to default to mm_cfg.HOLD, but that doesn't work with
+ # the current GUI description model. So, 0==Hold, 1==Reject, 2==Discard
+ add_only_if_missing('member_moderation_action', 0)
+ add_only_if_missing('member_moderation_notice', '')
+ add_only_if_missing('new_member_options',
+ mm_cfg.DEFAULT_NEW_MEMBER_OPTIONS)
+ # Emergency moderation flag
+ add_only_if_missing('emergency', 0)
+ add_only_if_missing('hold_and_cmd_autoresponses', {})
+ add_only_if_missing('news_prefix_subject_too', 1)
+ # Should prefixes be encoded?
+ if Utils.GetCharSet(l.preferred_language) == 'us-ascii':
+ encode = 0
+ else:
+ encode = 2
+ add_only_if_missing('encode_ascii_prefixes', encode)
+ add_only_if_missing('news_moderation', 0)
+
+
+
+def UpdateOldUsers(mlist):
+ """Transform sense of changed user options."""
+ # pre-1.0b11 to 1.0b11. Force all keys in l.passwords to be lowercase
+ passwords = {}
+ for k, v in mlist.passwords.items():
+ passwords[k.lower()] = v
+ mlist.passwords = passwords
+ # Go through all the keys in bounce_info. If the key is not a member, or
+ # if the data is not a _BounceInfo instance, chuck the bounce info. We're
+ # doing things differently now.
+ from Mailman.Bouncer import _BounceInfo
+ for m in mlist.bounce_info.keys():
+ if not mlist.isMember(m) or not isinstance(mlist.getBounceInfo(m),
+ _BounceInfo):
+ del mlist.bounce_info[m]
+
+
+
+def CanonicalizeUserOptions(l):
+ """Fix up the user options."""
+ # I want to put a flag in the list database which tells this routine to
+ # never try to canonicalize the user options again.
+ if getattr(l, 'useropts_version', 0) > 0:
+ return
+ # pre 1.0rc2 to 1.0rc3. For all keys in l.user_options to be lowercase,
+ # but merge options for both cases
+ options = {}
+ for k, v in l.user_options.items():
+ if k is None:
+ continue
+ lcuser = k.lower()
+ flags = 0
+ if options.has_key(lcuser):
+ flags = options[lcuser]
+ flags |= v
+ options[lcuser] = flags
+ l.user_options = options
+ # 2.1alpha3 -> 2.1alpha4. The DisableDelivery flag is now moved into
+ # get/setDeilveryStatus(). This must be done after the addresses are
+ # canonicalized.
+ for k, v in l.user_options.items():
+ if not l.isMember(k):
+ # There's a key in user_options that isn't associated with a real
+ # member address. This is likely caused by an earlier bug.
+ del l.user_options[k]
+ continue
+ if l.getMemberOption(k, mm_cfg.DisableDelivery):
+ # Convert this flag into a legacy disable
+ l.setDeliveryStatus(k, UNKNOWN)
+ l.setMemberOption(k, mm_cfg.DisableDelivery, 0)
+ l.useropts_version = 1
+
+
+
+def NewRequestsDatabase(l):
+ """With version 1.2, we use a new pending request database schema."""
+ r = getattr(l, 'requests', {})
+ if not r:
+ # no old-style requests
+ return
+ for k, v in r.items():
+ if k == 'post':
+ # This is a list of tuples with the following format
+ #
+ # a sequential request id integer
+ # a timestamp float
+ # a message tuple: (author-email-str, message-text-str)
+ # a reason string
+ # the subject string
+ #
+ # We'll re-submit this as a new HoldMessage request, but we'll
+ # blow away the original timestamp and request id. This means the
+ # request will live a little longer than it possibly should have,
+ # but that's no big deal.
+ for p in v:
+ author, text = p[2]
+ reason = p[3]
+ msg = Message.OutgoingMessage(text)
+ l.HoldMessage(msg, reason)
+ del r[k]
+ elif k == 'add_member':
+ # This is a list of tuples with the following format
+ #
+ # a sequential request id integer
+ # a timestamp float
+ # a digest flag (0 == nodigest, 1 == digest)
+ # author-email-str
+ # password
+ #
+ # See the note above; the same holds true.
+ for ign, ign, digest, addr, password in v:
+ l.HoldSubscription(addr, password, digest)
+ del r[k]
+ else:
+ syslog('error', """\
+VERY BAD NEWS. Unknown pending request type `%s' found for list: %s""",
+ k, l.internal_name())
diff --git a/Makefile.in b/Makefile.in
new file mode 100644
index 00000000..ad4367c3
--- /dev/null
+++ b/Makefile.in
@@ -0,0 +1,147 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# NOTE: Makefile.in is converted into Makefile by the configure script
+# in the parent directory. Once configure has run, you can recreate
+# the Makefile by running just config.status.
+
+# Variables set by configure
+
+SHELL= /bin/sh
+
+VPATH= @srcdir@
+srcdir= @srcdir@
+bindir= @bindir@
+prefix= @prefix@
+exec_prefix= @exec_prefix@
+var_prefix= @VAR_PREFIX@
+
+CC= @CC@
+INSTALL= @INSTALL@
+PYTHON= @PYTHON@
+
+DEFS= @DEFS@
+
+# Customizable but not set by configure
+
+OPT= @OPT@
+CFLAGS= @CFLAGS@ $(OPT) $(DEFS)
+
+VAR_DIRS= \
+ logs archives lists locks data spam qfiles \
+ archives/private archives/public
+
+ARCH_INDEP_DIRS= \
+ bin templates scripts cron pythonlib \
+ Mailman Mailman/Cgi Mailman/Logging Mailman/Archiver \
+ Mailman/Handlers Mailman/Queue Mailman/Bouncers \
+ Mailman/MTA Mailman/Gui Mailman/Commands messages icons \
+ tests tests/bounces tests/msgs
+
+ARCH_DEP_DIRS= cgi-bin mail
+
+# Directories make should decend into
+SUBDIRS= bin cron misc Mailman scripts src templates messages tests
+
+
+# Modes for directories and executables created by the install
+# process. Default to group-writable directories but
+# user-only-writable for executables.
+DIRMODE= 775
+EXEMODE= 755
+FILEMODE= 644
+INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
+DIRSETGID= chmod g+s
+
+DATE = $(shell python -c 'import time; print time.strftime("%d-%b-%Y"),')
+LANGPACK = README-I18N.en templates messages
+EXCLUDES = --exclude=CVS --exclude=.cvsignore --exclude=Makefile* --exclude=*.files --exclude=*.old
+
+# Rules
+
+all: subdirs
+
+subdirs: $(SUBDIRS)
+ for d in $(SUBDIRS); \
+ do \
+ (cd $$d; $(MAKE)); \
+ done
+
+install: doinstall update
+
+doinstall: $(SUBDIRS)
+ @echo "Creating architecture independent directories..."
+ @for d in $(VAR_DIRS); \
+ do \
+ dir=$(var_prefix)/$$d; \
+ if test ! -d $$dir; then \
+ echo "Creating directory hierarchy $$dir"; \
+ $(srcdir)/mkinstalldirs $$dir; \
+ chmod $(DIRMODE) $$dir; \
+ $(DIRSETGID) $$dir; \
+ else true; \
+ fi; \
+ done
+ chmod o-r $(var_prefix)/archives/private
+ @for d in $(ARCH_INDEP_DIRS); \
+ do \
+ dir=$(prefix)/$$d; \
+ if test ! -d $$dir; then \
+ echo "Creating directory hierarchy $$dir"; \
+ $(srcdir)/mkinstalldirs $$dir; \
+ chmod $(DIRMODE) $$dir; \
+ $(DIRSETGID) $$dir; \
+ else true; \
+ fi; \
+ done
+ @echo "Creating architecture dependent directories..."
+ @for d in $(ARCH_DEP_DIRS); \
+ do \
+ dir=$(exec_prefix)/$$d; \
+ if test ! -d $$dir; then \
+ echo "Creating directory hierarchy $$dir"; \
+ $(srcdir)/mkinstalldirs $$dir; \
+ chmod $(DIRMODE) $$dir; \
+ $(DIRSETGID) $$dir; \
+ else true; \
+ fi; \
+ done
+ @for d in $(SUBDIRS); \
+ do \
+ (cd $$d; $(MAKE) install); \
+ done
+ $(PYTHON) -c 'from compileall import *; compile_dir("$(prefix)/Mailman")'
+
+update:
+ @(cd $(prefix) ; bin/update)
+
+clean: $(SUBDIRS)
+ @for d in $(SUBDIRS); \
+ do \
+ (cd $$d; $(MAKE) clean); \
+ done
+ -rm -f update.log
+
+distclean: $(SUBDIRS)
+ @for d in $(SUBDIRS); \
+ do \
+ (cd $$d; $(MAKE) distclean); \
+ done
+ -rm -f config.cache config.log config.status Makefile
+ -rm -rf build
+
+langpack:
+ tar zcvf langpack-$(DATE).tgz $(EXCLUDES) $(LANGPACK)
diff --git a/NEWS b/NEWS
new file mode 100644
index 00000000..34c5b9db
--- /dev/null
+++ b/NEWS
@@ -0,0 +1,2096 @@
+Mailman - The GNU Mailing List Management System
+Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+Here is a history of user visible changes to Mailman.
+
+2.1 final (30-Dec-2002)
+
+ Last minute bug fixes and language updates.
+
+2.1 rc 1 (24-Dec-2002)
+
+ Bug fixes and language updates. Also,
+
+ - Lithuanian support has been added.
+
+ - bin/remove_members grew --nouserack and --noadminack switches
+
+ - configure now honors --srcdir
+
+2.1 beta 6 (09-Dec-2002)
+
+ Lots and lots of bug fixes, and translation updates. Also,
+
+ - ARCHIVER_OBSCURES_EMAILADDRS is now set to true by default.
+
+ - QRUNNER_SAVE_BAD_MESSAGES is now set to true by default.
+
+ - Bounce messages which were recognized, but in which no member
+ addresses were found are no longer forwarded to the list
+ administrator.
+
+ - bin/arch grew a --wipe option which first removes the entire old
+ archive before regenerating the new one.
+
+ - bin/mailmanctl -u now prints a warning that permission problems
+ could appear, such as when trying to delete a list through the
+ web that has some archives in it.
+
+ - bin/remove_members grew --nouserack/-n and -noadminack/-N options.
+
+ - A new script bin/list_owners has been added for printing out
+ list owners and moderators.
+
+ - Dates in the web version of archived messages are now relative
+ to the local timezone, and include the timezone names, when
+ available.
+
+2.1 beta 5 (19-Nov-2002)
+
+ As is typical for a late beta release, this one includes the usual
+ bug fixes, tweaks, and massive new features (just kidding).
+
+ IMPORTANT: If you are using Pipermail, and you have any archives
+ that were created or added to in 2.1b4, you will need to run
+ bin/b4b5-archfix, followed by bin/check_perms to fix some serious
+ performance problems. From you install directory, run
+ "bin/b4b5-archfix --help" for details.
+
+ - The personalization options have been tweaked to provide more
+ control over mail header and decoration personalizations. In
+ 2.1b4, when personalization was enabled, the To and Cc headers
+ were always overwritten. But that's usually not appropriate for
+ anything but announce lists, so now these headers aren't changed
+ unless "Full personalization" is enabled.
+
+ - You now need to go to the General category to enable emergency
+ moderation.
+
+ - The order of the hold modules in the GLOBAL_PIPELINE has
+ changed, again. Now Moderate comes before Hold.
+
+ - Estonian language support has been added.
+
+ - All posted messages should now get decorated with headers and
+ footers in a MIME-safe way. Previously, some MIME type messages
+ didn't get decorated at all.
+
+ - bin/arch grew a -q/--quiet option
+
+ - bin/list_lists grew a -b/--bare option
+
+2.1 beta 4 (26-Oct-2002)
+
+ The usual assortment of bug fixes and language updates, some u/i
+ tweaks, as well as the following:
+
+ - Configuring / building / installing
+ o Tightened up some configure checks; it will now bark loudly
+ if you don't have the Python distutils package available
+ (some Linux distros only include distutils in their "devel"
+ packages).
+
+ o Mailman's username/group security assertions are now done by
+ symbolic name instead of numeric id. This provides a level
+ of indirection that makes it much easier to move or package
+ Mailman. --with-mail-gid and --with-cgi-gid are retained,
+ but they control the group names used instead.
+
+ - Command line scripts
+ o A new script, bin/transcheck that language teams can use to
+ check their .po files.
+
+ o bin/list_members grew a --fullnames/-f option to print the
+ full names along with the addresses.
+
+ o cron/senddigests grew --help/-h and --listname/-l options.
+
+ o bin/fix_url.py grew some command line options to support moving
+ a list to a specific virtual domain.
+
+ - Pipermail / archiving
+ o Reworked the directory layout for archive attachments to be
+ less susceptible to inode overload. Attachments are now
+ placed in
+
+ archives/private/<listname>/attachments/<YYYYMMDD>/<msgidhash>
+
+ o Internationalization support in the archiver has been improved.
+
+ - Internationalization
+ o New languages: Swedish.
+
+ - Mail handling
+ o Content filtering now has a pass_mime_type variable, which
+ is a whitelist of MIME types to allow in postings. See the
+ details of the variable in the Content Filtering category
+ for more information.
+
+ o If a member has enabled their DontReceiveDuplicates option,
+ we'll also strip their addresses from the Cc headers in the
+ copy of the message sent to the list. This helps keep the
+ Cc lines from growing astronomically.
+
+ o Bounce messages are now forwarded to the list administrators
+ both if they are unrecognized, and if no list member's
+ address could be extracted.
+
+ o Content filtering now has a filter_action variable which
+ controls what happens when a message matches the content
+ filter rules. The default is still to discard the message.
+
+ o When searching for an Approve/Approved header, the first
+ non-whitespace line of the body of the message is also
+ checked, if the body has a MIME type of text/plain.
+
+ o If a list is personalized, and the list's posting address is
+ not included in a Reply-To header, the posting address is
+ copied into a Cc header, otherwise there was no (easy) way a
+ recipient could reply back to the list.
+
+ o Added a MS Exchange bounce recognizer.
+
+ o New configuration variable news_moderation which allows the
+ mail->news gateway to properly post to moderated newsgroups.
+
+ o Messages sent to a list's owners now comes from the site
+ list to prevent mail loops when list owners or moderators
+ having bouncing addresses.
+
+ - Miscellaneous
+ o mailanctl prevents runaway restarts by imposing a maximum
+ restart value (defaulting to 10) for restarting the
+ qrunners. If you hit this limit, do "mailmanctl stop"
+ followed by "mailmanctl start".
+
+ o The Membership Management page's search feature now includes
+ searching on members real names.
+
+ o The start of a manual for list administrators is given in
+ Python HOWTO format (LaTeX). It's in doc/mailman-admin.tex
+ but it still needs lots of fleshing out.
+
+ o More protections against creating a list with an invalid name.
+
+2.1 beta 3 (09-Aug-2002)
+
+ The usual assortment of bug fixes and language updates.
+
+ - New languages: Dutch, Portuguese (Brazil)
+
+ - New configure script options: --with-mailhost, --with-urlhost,
+ --without-permcheck. See ./configure --help for details.
+
+ - The encoding of Subject: prefixes is controlled by a new list
+ option encode_ascii_prefixes. This is useful for languages with
+ character sets other than us-ascii. See the Languages admin
+ page for details.
+
+ - A new list option news_prefix_subject_too controls whether
+ postings gated from mail to news should have the subject prefix
+ added to their Subject: header.
+
+ - The algorithm for upgrading the moderation controls for a
+ Mailman 2.0.x list has changed. The change should be
+ transparent, but you'll want to double check the moderation
+ controls after upgrading from MM2.0.x. This should have no
+ effect for upgrades from a previous MM2.1 beta.
+
+ See the UPGRADING file for details.
+
+ - On the Mass Subscribe admin page, a text box has been added so
+ that the admin can add a custom message to be prepended to the
+ welcome/invite notification.
+
+ - On the admindb page, a link is included to more easily reload
+ the page.
+
+ - The Sendmail.py delivery module is sabotaged so that it can't be
+ used naively. You need to read the comments in the file and
+ edit the code to use this unsafe module.
+
+ - When a member sends a `help' command to the request address,
+ the url to their options page is included in the response.
+
+ - Autoresponses, -request command responses, and posting hold
+ notifications are inhibited for any message that has a
+ Precedence: {bulk|list|junk} header. This is to avoid mail
+ loops between email 'bots. If the original message has an
+ X-Ack: yes header, the response is sent.
+
+ Responses are also limited to a maximum number per day, as
+ defined in the site variable MAX_AUTORESPONSES_PER_DAY. This is
+ another guard against 'bot loops, and it defaults to 10.
+
+ - When a Reply-To: header is munged to include both the original
+ and the list address, the list address is always added last.
+
+ - The cron/mailpasswds script has grown a -l/--listname option.
+
+ - The cron/disabled script has grown options to send out
+ notifications for reasons other than bounce-disabled. It has
+ also grown a -f/--force option. See cron/disabled --help for
+ details.
+
+ - The bin/dumpdb script has grown a -n/--noprint option.
+
+ - An experimental new mechanism for processing incoming messages
+ has been added. If you can configure your MTA to do qmail-style
+ Maildir delivery, Mailman now has a MaildirRunner qrunner. This
+ may turn out to be much more efficient and scalable, but for
+ MM2.1, it will not be officially supported. See Defaults.py.in
+ and Mailman/Queue/MaildirRunner.py for details.
+
+2.1 beta 2 (05-May-2002)
+
+ Lots of bug fixing, and the following new features and changes:
+
+ - A "de-mime" content filter feature has been added. This
+ oft-requested feature allows you to specify MIME types that
+ Mailman should strip off of any messages before they're posted
+ to the list. You can also optionally convert text/html to
+ text/plain (by default, through lynx if it's available).
+
+ - Changes to the way the RFC 2919 and 2369 headers (i.e. the
+ List-*: headers) are added:
+ o List-Id: is always added
+ o List-Post:, List-Help:, List-Subscribe:,
+ List-Unsubscribe:, and List-Archive: are only added to
+ posting messages.
+ o X-List-Administrivia: is only added to messages Mailman
+ creates and sends out of its own accord.
+
+ Also, if the site administrator allows it, list owners can
+ suppress the addition of all the List-*: headers. List owners
+ can also separately suppress the List-Post: header for
+ announce-only lists.
+
+ - A new framework for email commands has been added. This allows
+ you to easily add, delete, or change the email commands that
+ Mailman understands, on a per-site, per-list, or even per-user
+ basis.
+
+ - Users can now change their digest delivery type from MIME to
+ plain text globally, for all lists they are subscribed to.
+
+ - No language select pulldowns are shown if the list only supports
+ one language.
+
+ - More mylist-admin eradication.
+
+ - Several performance improvements in the bounce qrunner, one of
+ which is to make it run only once per minute instead of once per
+ second.
+
+ - Korean language support as been added.
+
+ - Gatewaying from news -> mail uses its connections to the nntpd
+ more efficiently.
+
+ - In bin/add_members, -n/--non-digest-members-file command line
+ switch is deprecated in favor of -r/--regular-members-file.
+
+ - bin/sync_members grew a -g/--goodbye-msg switch.
+
+2.1 beta 1 (16-Mar-2002)
+
+ In addition to the usual bug fixes, performance improvements, and
+ GUI changes, here are the highlights:
+
+ - MIME and other message handling
+ o More robustness against badly MIME encapsulated messages: if
+ a MessageParseError is raised during the initial parse, the
+ message can either be discarded or saved in qfiles/bad,
+ depending on the value of the new configuration variable
+ QRUNNER_SAVE_BAD_MESSAGES.
+
+ o There is a new per-user option that can be used to avoid
+ receipt of extra copies, when a member of the list is also
+ explicitly CC'd.
+
+ o Always add an RFC 2822 Date: header if missing, since not
+ all MTAs insert one automatically.
+
+ o The Sender: and Errors-To: headers are no longer added to
+ outgoing messages.
+
+ o Headers and footers are always added by concatenation, if
+ the message is not MIME and if the list's charset is a
+ superset of us-ascii.
+
+ - List administration
+ o An `invitation' feature has been added. This is selectable
+ as a radio button on the mass subscribe page. When
+ selected, users are invited to join instead of immediately
+ joined, i.e. they get a confirmation message.
+
+ o You can now enable and disable list owner notifications for
+ disabled-due-to-bouncing and removal-due-to-bouncing
+ actions. The site config variables
+ DEFAULT_BOUNCE_NOTIFY_OWNER_ON_DISABLE and
+ DEFAULT_BOUNCE_NOTIFY_OWNER_ON_REMOVAL control the default
+ behavior.
+
+ o List owners can now decide whether they receive unrecognized
+ bounce messages or not (i.e. messages that the bounce
+ processor doesn't recognize). Site admins can set the
+ default value for this flag with the config variable
+ DEFAULT_BOUNCE_UNRECOGNIZED_GOES_TO_LIST_OWNER.
+
+ o The admindb summary page gives the option of clearing the
+ moderation flag of members who are on quarantined.
+
+ o The action to take when a moderated member posts to a list
+ is now configurable. The message can either be held,
+ rejected (bounced), or discarded. If the message is
+ rejected, a rejection notice string can be given.
+
+ o In the General admin page, you can now set the default value
+ for five per-user flags: concealing the user's email
+ address, acknowledging posts sent by the user, copy
+ suppression, not-me-too selection, and the default digest
+ type. Site admins can set the default bit field with the
+ new DEFAULT_NEW_MEMBER_OPTIONS variable.
+
+ o A new "Emergency brake" feature for turning on moderation of
+ all list postings. This is useful for when flamewars break
+ out, and the list needs a cooling off period. Messages
+ containing an Approved: header with the list owner password
+ are still allowed through, as are messages approved through
+ the admindb interface.
+
+ o When a moderated message is approved for the list, add an
+ X-Mailman-Approved-At: header which contains the timestamp
+ of the approval action (changed from X-Moderated: with a
+ different format).
+
+ o Lists can now be converted to using a less error prone
+ mechanism for variable substitution syntax in headers and
+ footers. Instead of %(var)s strings, you'd use $var
+ strings. You must use "bin/withlist -r convert" to enable
+ this.
+
+ o When moderating held messages, the header text box and the
+ message excerpt text box are now both read-only.
+
+ o You can't delete the site list through the web.
+
+ o When creating new lists through the web, you have the option
+ of setting the "default member moderation" flag.
+
+ - Security and privacy
+ o New feature: banned subscription addresses. Privacy
+ options/subscription rules now have an additional list box
+ which can contain addresses or regular expressions.
+ Subscription requests from any matching address are
+ automatically rejected.
+
+ o Membership tests which compare message headers against list
+ rosters are now more robust. They now check, by default
+ these header in order: From:, unixfrom, Reply-To:, Sender:.
+ If any match, then the membership test succeeds.
+
+ o ALLOW_SITE_ADMIN_COOKIES is a new configuration variable
+ which says whether to allow AuthSiteAdmin cookies or not.
+ Normally, when a list administrator logs into a list with
+ the site password, they are issued a cookie that only allows
+ them to do administration for this one list. By setting
+ ALLOW_SITE_ADMIN_COOKIES to 1, the user only needs to
+ authenticate to one list with the site password, and they
+ can administer any mailing list.
+
+ I'm not sure this feature is wise, so the default value for
+ ALLOW_SITE_ADMIN_COOKIES is 0.
+
+ o Marc MERLIN's new recipes for secure Linuxes have been
+ updated.
+
+ o DEFAULT_PRIVATE_ROSTER now defaults to 1.
+
+ o Passwords are no longer included in the confirmation pages.
+
+ - Internationalization
+ o With the approval of Tamito KAJIYAMA, the Japanese codecs
+ for Python are now included automatically, so you don't need
+ to download and install these separate. It is installed in
+ a Mailman-specific place so it won't affect your larger
+ Python installation.
+
+ o The configure script will produce a warning if the Chinese
+ codes are not installed. This is not a fatal error.
+
+ o Russian templates and catalogs have been added.
+
+ o Finnish templates and catalogs have been added.
+
+ - Scripts and utilities
+ o New program bin/unshunt to safely move shunted messages back
+ into the appropriate processing queue.
+
+ o New program bin/inject for sending a plaintext message into
+ the incoming queue from the command line.
+
+ o New cron script cron/disabled for periodically culling the
+ disabled membership.
+
+ o bin/list_members has grown some new command line switches
+ for filtering on different criteria (digest mode, disable
+ mode, etc.)
+
+ o bin/remove_members has grown the --fromall switch.
+
+ o You can now do a bin/rmlist -a to remove an archive even
+ after the list has been deleted.
+
+ o bin/update removes the $prefix/Mailman/pythonlib directory.
+
+ o bin/withlist grows a --all/-a flag so the --run/-r option
+ can be applied to all the mailing lists. Also, interactive
+ mode is now the default if -r isn't used. You don't need to
+ run this script as "python -i bin/withlist" anymore.
+
+ o There is a new script contrib/majordomo2mailman.pl which
+ should ease the transition from Majordomo to Mailman.
+
+ - MTA integration
+ o Postfix integration has been made much more robust, but now
+ you have to set POSTFIX_ALIAS_CMD and POSTFIX_MAP_CMD to
+ point to the postalias and postmap commands respectively.
+
+ o VERP-ish delivery has been made much more efficient by
+ eliminating extra disk copies of messages for each recipient
+ of a VERP delivery. It has also been made more robust in
+ the face of failures during chunk delivery. This required a
+ rewrite of SMTPDirect.py and one casualty of that rewrite
+ was the experimental threaded delivery. It is no longer
+ supported (but /might/ be resurrected if there's enough
+ demand -- or a contributed patch :).
+
+ o A new site config variable SMTP_MAX_SESSIONS_PER_CONNECTION
+ specifies how many consecutive SMTP sessions will be
+ conducted down the same socket connection. Some MTAs have a
+ limit on this.
+
+ o Support for VERP-ing confirmation messages. These are less
+ error prone since the Subject: header doesn't need to be
+ retained, and they allow a more user friendly (and i18n'd)
+ Subject: header. VERP_CONFIRM_FORMAT, VERP_CONFIRM_REGEXP,
+ and VERP_CONFIRMATIONS control this feature (only supported
+ for invitation confirmations currently, but will be expanded
+ to the other confirmations).
+
+ o Several new list-centric addresses have been added:
+ -subscribe and -unsubscribe are synonyms for -join and
+ -leave, respectively. Also -confirm has been added to
+ support VERP'd confirmations.
+
+ - Archiver
+ o There's now a default page for the Pipermail archive link
+ for when no messages have yet been posted to the list.
+
+ o Just the mere presence of an X-No-Archive: is enough to
+ inhibit archiving for this message; the value of the header
+ is now ignored.
+
+ - Configuring, building, installing
+ o Mailman now has a new favicon, donated by Terry Oda. Not
+ all web pages are linked to the favicon yet though.
+
+ o The add-on email package is now distributed and installed
+ automatically, so you don't need to do this. It is
+ installed in a Mailman-specific place so it won't affect
+ your larger Python installation.
+
+ o The default value of VERP_REGEXP has changed.
+
+ o New site configuration variables BADQUEUE_DIR and
+ QRUNNER_SAVE_BAD_MESSAGES which describe where to save
+ messages which are not properly MIME encoded.
+
+ o configure should be more POSIX-ly conformant.
+
+ o The Mailman/pythonlib directory has been removed, but a new
+ $prefix/pythonlib directory has been added.
+
+ o Regression tests are now installed.
+
+ o The second argument to add_virtual() calls in mm_cfg.py are
+ now optional.
+
+ o DEFAULT_FIRST_STRIP_REPLY_TO now defaults to 0.
+
+ o Site administrators can edit the Mailman/Site.py file to
+ customize some filesystem layout policies.
+
+
+2.1 alpha 4 (31-Dec-2001)
+
+ - The administrative requests database page (admindb) has been
+ redesigned for better usability when there are lots of held
+ postings. Changes include:
+ o A summary page which groups held messages by sender email
+ address. On this page you can dispose of all the sender's
+ messages in one action. You can also view the details of
+ all the sender's messages, or the details of a single
+ message. You can also add the sender to one of the list's
+ sender filters.
+
+ o A details page where you can view all messages, just those
+ for a particular sender, or just a single held message.
+ This details page is laid out the same as the old admindb
+ page.
+
+ o The instructions have been shorted on the summary and
+ details page, with links to more detailed explanations.
+
+ - Bounce processing
+ o Mailman now keeps track of the reason a member's delivery
+ has been disabled: explicitly by the administrator,
+ explicitly by the user, by the system due to excessive
+ bounces, or for (legacy) unknown reasons.
+
+ o A new bounce processing algorithm has been implemented (we
+ might actually understand this one ;). When an address
+ starts bouncing, the member gets a "bounce score". Hard
+ (fatal) bounces score 1.0, while soft (transient) bounces
+ score 0.5.
+
+ List administrators can specify a bounce threshold above
+ which a member gets disabled. They can also specify a time
+ interval after which, if no bounces are received from the
+ member, the member's bounce score is considered stale and is
+ thrown away.
+
+ o A new cron script, cron/disabled, periodically sends
+ notifications to members who are bounce disabled. After a
+ certain number of warnings the member is deleted from the
+ list. List administrators can control both the number of
+ notifications and the amount of time between notifications.
+
+ Notifications include a confirmation cookie that the member
+ can use to re-enable their subscription, via email or web.
+
+ o New configuration variables to support the bounce processing
+ are DEFAULT_BOUNCE_SCORE_THRESHOLD,
+ DEFAULT_BOUNCE_INFO_STALE_AFTER,
+ DEFAULT_BOUNCE_YOU_ARE_DISABLED_WARNINGS,
+ DEFAULT_BOUNCE_YOU_ARE_DISABLED_WARNINGS_INTERVAL.
+
+ - Privacy and security
+ o Sender filters can now be regular expressions. If a line
+ starts with ^ it is taken as a (raw string) regular
+ expression, otherwise it is a literal email address.
+
+ o Fixes in 2.0.8 ported forward: prevent cross-site scripting
+ exploits.
+
+ - Mail delivery
+ o Aliases have all been changed so that there's more
+ consistency between the alias a message gets delivered to,
+ and the script & queue runner that handles the message.
+
+ I've also renamed the mail wrapper script to `mailman' from
+ `wrapper' to avoid collisions with other MLM's. You /will/
+ need to regenerate your alias files with bin/genaliases, and
+ you may need to update your smrsh (Sendmail) configs.a
+
+ Bounces always go to listname-bounces now, since
+ administration has been separated from bounce processing.
+ listname-admin is obsolete.
+
+ o VERP support! This greatly improves the accuracy of bounce
+ detection. Configuration variables which control this feature
+ include VERP_DELIVERY_INTERVAL, VERP_PERSONALIZED_DELIVERIES,
+ VERP_PASSWORD_REMINDERS, VERP_REGEXP, and VERP_FORMAT. The
+ latter two must be tuned to your MTA.
+
+ o A new alias mailman-loop@dom.ain is added which directs all
+ output to the file $prefix/data/owner-bounces.mbox. This is
+ used when sending messages to the site list owners, as the
+ final fallback for bouncing messages.
+
+ o New configuration variable POSTFIX_STYLE_VIRTUAL_DOMAINS
+ which should be set if you are using the Postfix MTA and
+ want Mailman to play nice with Postfix-style virtual
+ domains.
+
+ - Miscellaneous
+ o Better interoperability with Python 2.2.
+
+ o MailList objects now record the date (in seconds since
+ epoch) that they were created. This is in a hidden
+ attribute `created_at'.
+
+ o bin/qrunner grows a -s/--subproc switch which is usually
+ used only when it's started from mailmanctl.
+
+ o bin/newlist grows a -l/--language option so that the list's
+ preferred language can be set from the command line.
+
+ o cron changes: admin reminders go out at 8am local time instead
+ of 10pm local time.
+
+ - Pipermail archiver
+ o MIME attachments are scrubbed out into separate files which
+ can be viewed by following a link in the original article.
+ Article contains an indication of the size of the
+ attachment, its type, and other useful information.
+
+ o New script bin/cleanarch which can be used to `clean' an
+ .mbox archive file by fixing unescaped embedded Unix From_
+ lines.
+
+ o New configuration variable ARCHIVE_SCRUBBER in
+ Defaults.py.in which names the module that Pipermail should
+ use to scrub articles of MIME attachments.
+
+ o New configuration variable ARCHIVE_HTML_SANITIZER which
+ describes how the scrubber should handle text/html
+ attachments.
+
+ o PUBLIC_ARCHIVE_URL has change its semantics. It is now an
+ absolute url, with the hostname and listname parts
+ interpolated into it on a per-list basis.
+
+ o Pipermail should now provide the proper character set in the
+ Content-Type: header for archived articles.
+
+ - Internationalization
+ o Czech translations by Dan Ohnesorg.
+
+ o The Hungarian charset has be fixed to be iso-8859-2.
+
+ o The member options login page now has a language selection
+ widget.
+
+ - Building, configuration
+ o email-0.96 package is required (see the misc directory).
+
+ o New recipes for integrating Mailman and Sendmail,
+ contributed by David Champion.
+
+
+2.1 alpha 3 (22-Oct-2001)
+
+ - Realname support
+ o Mailman now tracks a member's Real Name in addition to their
+ email address.
+
+ o List members can now supply their Real Names when
+ subscribing via the web. Their Real Names are parsed from
+ any thru-email subscriptions.
+
+ o Members can change their Real Names on their options page,
+ and admins can change members' Real Names on the membership
+ pages. Mass subscribing accepts "email@dom.ain (Real Name)"
+ and "Real Name <email@dom.ain>" entries, for both
+ in-text-box and file-upload mass subscriptions.
+
+ - Filtering and Privacy
+ o Reply-To: munging has been enhanced to allow a wider range
+ of list policies. You can now pre-strip any Reply-To:
+ headers before adding list-specific ones (i.e. you can
+ override or extend existing Reply-To: headers). If
+ stripping, the old headers are no longer saved on
+ X-Reply-To:
+
+ o New sender moderation rules. The old `posters',
+ `member_only_posting', `moderated' and `forbidden_posters'
+ options have been removed in favor of a new moderation
+ scheme. Each member has a personal moderation bit, and
+ non-member postings can be automatically accepted, held for
+ approval, rejected (bounced) or discarded.
+
+ o When membership rosters are private, responses to
+ subscription (and other) requests are made more generic so
+ that these processes can't be covertly mined for hidden
+ addresses. If a subscription request comes in for a user
+ who is already subscribed, the user is notified of potential
+ membership mining.
+
+ o When a held message is approved via the admindb page, an
+ X-Moderated: header is added to the message.
+
+ o List admins can now set an unsubscribe policy which requires
+ them to approve of member unsubscriptions.
+
+ - Web U/I
+ o All web confirmations now require a two-click procedure,
+ where the first click gives them a page that allows them to
+ confirm or cancel their subscription. It is bad form for an
+ email click (HTTP GET) to have side effects.
+
+ o Lots of improvements for clarity.
+
+ o The Privacy category has grown three subcategories.
+
+ o The General options page as a number of subsection headers.
+
+ o The Passwords and Languages categories are now on separate
+ admin pages.
+
+ o The admin subcategories are now formated as two columns in
+ the top and bottom legends.
+
+ o When creating a list through the web, you can now specify
+ the initial list of supported languages.
+
+ o The U/I for unsubscribing a member on the admin's membership
+ page should be more intuitive now.
+
+ o There is now a separate configuration option for whether the
+ goodbye_msg is sent when a member is unsubscribed.
+
+ - Performance
+ o misc/mailman is a Unix init script, appropriate for
+ /etc/init.d, and containing chkconfig hooks for systems that
+ support it.
+
+ o bin/mailmanctl has been rewritten; the `restart' command
+ actually works now. It now also accepts -s, -q, and -u
+ options.
+
+ o bin/qrunner has been rewritten too; it can serve the role of
+ the old cron/qrunner script for those who want classic
+ cron-invoked mail delivery.
+
+ o Internally, messages are now stored in the qfiles directory
+ primarily as pickles. List configuration databases are now
+ stored as pickles too (i.e. config.pck). bin/dumpdb knows
+ how to display both pickles and marshals.
+
+ - Mail delivery
+ o If a user's message is held for approval, they are sent a
+ notification message containing a confirmation cookie. They
+ can use this confirmation cookie to cancel their own
+ postings (if they haven't already been approved).
+
+ o When held messages are forwarded to an explicit address
+ using the admindb page, it is done so in a message/rfc822
+ encapsulation.
+
+ o When a message is first held for approval, the notification
+ sent to the list admin is a 3-part multipart/mixed. The
+ first part holds the notification message, the second part
+ hold the original message, and the third part hold a cookie
+ confirmation message, to which the admin can respond to
+ approve or discard the message via email.
+
+ o In the mail->news gateway, you can define mail headers that
+ must be modified or deleted before the message can be posted
+ to the nntp server.
+
+ o The list admin can send an immediate urgent message to the
+ entire list membership, bypassing digest delivery. This is
+ done by adding an Urgent: header with the list password.
+ Urgent messages with an invalid password are rejected.
+
+ o Lists can now optionally personalize email messages, if the
+ site admin allows it. Personalized messages mean that the
+ To: header includes the recipient's address instead of the
+ list's address, and header and footer messages can contain
+ user-specific information. Note that only regular
+ deliveries can currently be personalized.
+
+ o Message that come from Usenet but that have broken MIME
+ boundaries are ignored.
+
+ o If the site administrator agrees, list owners have the
+ ability to disable RFC 2369 List-* headers.
+
+ o There is now an API for an external process to post a
+ message to a list. This posting process can also specify an
+ explicit list of recipients, in effect turning the mailing
+ list into a "virtual list" with a fluid membership. See
+ Mailman/Post.py for details.
+
+ - Building/testing/configuration
+ o mimelib is no longer required, but you must install the
+ email package (see the tarball in the misc directory).
+
+ o An (as yet) incomplete test suite has been added. Don't try
+ running it in a production environment!
+
+ o Better virtual host support by adding a mapping from the
+ host name given in cgi's HTTP_HOST/SERVER_NAME variable to
+ the email host used in list addresses. (E.g. www.python.org
+ maps to @python.org).
+
+ o Specifying urls to external public archivers is more
+ flexible.
+
+ o The filters/ subdirectory has been removed.
+
+ o There is now a `site list' which is a mailing list that must
+ be created first, and from which all password reminders
+ appear to come from. It is recommended that this list be
+ called "mailman@your.site".
+
+ o bin/move_list is no longer necessary (see the FAQ for
+ detailed instructions on renaming a list).
+
+ o A new script bin/fix_url.py can be used with bin/withlist to
+ change a list's web_page_url configuration variable (since
+ it is no longer modifiable through the web).
+
+ - Internationalization
+ o Support for German, Hungarian, Italian, Japanese, and
+ Norwegian have been added.
+
+ - Miscellaneous
+ o Lots of new bounce detectors. Bounce detectors can now
+ discard temporary bounce messages by returning a special
+ Stop value.
+
+ o bin/withlist now sports a -q/--quiet flag.
+
+ o bin/add_members has a new -a/--admin-notify flag which can
+ be used to inhibit list owner notification for each
+ subscription.
+
+ - Membership Adaptors
+ o Internally, mailing list memberships are accessed through a
+ MemberAdaptor interface. This would allow for integrating
+ membership databases with external sources (e.g. Zope or
+ LDAP), although the only MemberAdaptor currently implemented
+ is a "classic" adaptor which stores the membership
+ information on the MailList object.
+
+ o There's a new pipeline handler module called FileRecips.py
+ which could be used to get all regular delivery mailing list
+ recipients from a Sendmail-style :include: file (see List
+ Extensibility bullet below).
+
+ This work was sponsored by Control.com
+
+ - List Extensibility
+ o A framework has been added which can be used to specialize
+ and extend specific mailing lists. If there is a file
+ called lists/<yourlist>/extend.py, it is execfile()'d after
+ the MailList object is instantiated. The file should
+ contain a function extend() which will be called with the
+ MailList instance. This function can do all sorts of deep
+ things, like modify the handler pipeline just for this list,
+ or even strip out particular admin GUI elements (see below).
+
+ o All the admin page GUI elements are now separate
+ components. This provides greater flexibility for list
+ customization. Also, each GUI element will be given an
+ opportunity to handle admin CGI form data.
+
+ This work was sponsored by Control.com
+
+ - Topic Filters
+ o A new feature has been added called "Topic Filters". A list
+ administrator can create topics, which are essentially
+ regular expression matches against Subject: and Keyword:
+ headers (including such pseudo-headers if they appear in the
+ first few lines of the body of a message).
+
+ List members can then `subscribe' to various topics, which
+ allows them to filter out any messages that don't match a
+ topic, or to filter out any message that does match a
+ topic. This can be useful for high volume lists where not
+ everyone will be interested in every message.
+
+ This work was sponsored by Control.com
+
+2.1 alpha 2 (11-Jul-2001)
+
+ - Building
+ o mimelib 0.4 is now required. Get it from
+ http://mimelib.sf.net. If you've installed an earlier
+ version of mimelib, you must upgrade.
+
+ o /usr/local/mailman is now the default installation
+ directory. Use configure's --prefix switch to change it
+ back to the default (/home/mailman) or any other
+ installation directory of your choice.
+
+ - Security
+ o Better definition of authentication domains. The following
+ roles have been defined: user, list-admin, list-moderator,
+ creator, site-admin.
+
+ o There is now a separate role of "list moderator", which has
+ access to the pending requests (admindb) page, but not the
+ list configuration pages.
+
+ o Subscription confirmations can now be performed via email or
+ via URL. When a subscription is received, a unique (sha)
+ confirm URL is generated in the confirmation message.
+ Simply visiting this URL completes the subscription process.
+
+ o In a similar manner, removal requests (via web or email
+ command) no longer require the password. If the correct
+ password is given, the removal is performed immediately. If
+ no password is given, then a confirmation message is
+ generated.
+
+ - Internationalization
+ o More I18N patches. The basic infrastructure should now be
+ working correctly. Spanish templates and catalogs are
+ included, and English, French, Hungarian, and Big5 templates
+ are included.
+
+ o Cascading specializations and internationalization of
+ templates. Templates are now search for in the following
+ order: list-specific location, domain-specific location,
+ site-wide location, global defaults. Each search location
+ is further qualified by the language being displayed. This
+ means that you only need to change the templates that are
+ different from the global defaults.
+
+ Templates renamed: admlogin.txt => admlogin.html
+ Templates added: private.html
+
+ - Web UI
+ o Redesigned the user options page. It now sits behind an
+ authentication so user options cannot be viewed without the
+ proper password. The other advantage is that the user's
+ password need not be entered on the options page to
+ unsubscribe or change option values. The login screen also
+ provides for password mail-back, and unsubscription w/
+ confirmation.
+
+ Other new features accessible from the user options page
+ include: ability to change email address (with confirmation)
+ both per-list and globally for all list on virtual domain;
+ global membership password changing; global mail delivery
+ disable/enable; ability to suppress password reminders both
+ per-list and globally; logout button.
+
+ [Note: the handle_opts cgi has gone away]
+
+ o Color schemes for non-template based web pages can be defined
+ via mm_cfg.
+
+ o Redesign of the membership management page. The page is now
+ split into three subcategories (Membership List, Mass
+ Subscription, and Mass Removal). The Membership List
+ subcategory now supports searching for member addresses by
+ regular expression, and if necessary, it groups member
+ addresses first alphabetically, and then by chunks.
+
+ Mass Subscription and Mass Removal now support file upload,
+ with one address per line.
+
+ o Hyperlinks from the logos in the footers have been removed.
+ The sponsors got too much "unsubscribe me!" spam from
+ desperate user of Mailman at other sites.
+
+ o New buttons on the digest admin page to send a digest
+ immediately (if it's non-empty), to start a new digest
+ volume with the next digest, and to select the interval with
+ which to automatically start a new digest volume (yearly,
+ monthly, quarterly, weekly, daily).
+
+ DEFAULT_DIGEST_VOLUME_FREQUENCY is a new configuration
+ variable, initially set to give a new digest volume monthly.
+
+ o Through-the-web list creation and removal, using a separate
+ site-wide authentication role called the "list creator and
+ destroyer" or simply "list creator". If the configuration
+ variable OWNERS_CAN_DELETE_THEIR_OWN_LISTS is set to 1 (by
+ default, it's 0), then list admins can delete their own
+ lists.
+
+ This feature requires an adaptor for the particular MTA
+ you're using. An adaptor for Postfix is included, as is a
+ dumb adaptor that just emails mailman@yoursite with the
+ necessary Sendmail style /etc/alias file changes. Some MTAs
+ like Exim can be configured to automatically recognize new
+ lists. The adaptor is selected via the MTA option in
+ mm_cfg.py
+
+ - Email UI
+ o In email commands, "join" is a synonym for
+ "subscribe". "remove" and "leave" are synonyms for
+ "unsubscribe". New robot addresses are support to make
+ subscribing and unsubscribing much easier:
+
+ mylist-join@mysite
+ mylist-leave@mysite
+
+ o Confirmation messages have a shortened Subject: header,
+ containing just the word "confirm" and the confirmation
+ cookie. This should help for MUAs that like to wrap long
+ Subject: lines, messing up confirmation.
+
+ o Mailman now recognizes an Urgent: header, which, if it
+ contains the list moderator or list administrator password,
+ forces the message to be delivered immediately to all
+ members (i.e. both regular and digest members). The message
+ is also placed in the digest. If the password is incorrect,
+ the message will be bounced back to the sender.
+
+ - Performance
+ o Refinements to the new qrunner subsystem which preserves
+ FIFO order of messages.
+
+ o The qrunner is no longer started from cron. It is started
+ by a Un*x init-style script called bin/mailmanctl (see
+ below). cron/qrunner has been removed.
+
+ - Command line scripts
+ o bin/mailmanctl script added, which is used to start, stop,
+ and restart the qrunner daemon.
+
+ o bin/qrunner script added which allows a single sub-qrunner
+ to run once through its processing loop.
+
+ o bin/change_pw script added (eases mass changing of list
+ passwords).
+
+ o bin/update grows a -f switch to force an update.
+
+ o bin/newlang renamed to bin/addlang; bin/rmlang removed.
+
+ o bin/mmsitepass has grown a -c option to set the list
+ creator's password. The site-wide `create' web page is
+ linked to from the admin overview page.
+
+ o bin/newlist's -o option is removed. This script also grows
+ a way of spelling the creation of a list in a specific
+ virtual domain.
+
+ o The `auto' script has been removed.
+
+ o bin/dumpdb has grown -m/--marshal and -p/--pickle options.
+
+ o bin/list_admins can be used to print the owners of a mailing list.
+
+ o bin/genaliases regenerates from scratch the aliases and
+ aliases.db file for the Postfix MTA.
+
+ - Archiver
+ o New archiver date clobbering option, which allows dates to
+ only be clobber if they are outrageously out-of-date
+ (default setting is 15 days on either side of received
+ timestamp). New configuration variables:
+
+ ARCHIVER_CLOBBER_DATE_POLICY
+ ARCHIVER_ALLOWABLE_SANE_DATE_SKEW
+
+ The archived copy of messages grows an X-List-Received-Date:
+ header indicating the time the message was received by
+ Mailman.
+
+ o PRIVATE_ARCHIVE_URL configuration variable is removed (this
+ can be calculated on the fly, and removing it actually makes
+ site configuration easier).
+
+ - Miscellaneous
+ o Several new README's have been added.
+
+ o Most syslog entries for the qrunner have been redirected to
+ logs/error.
+
+ o On SIGHUP, qrunner will re-open all its log files and
+ restart all child processes. See "bin/mailmanctl restart".
+
+ - Patches and bug fixes
+ o SF patches and bug fixes applied: 420396, 424389, 227694,
+ 426002, 401372 (partial), 401452.
+
+ o Fixes in 2.0.5 ported forward:
+ Fix a lock stagnation problem that can result when the
+ user hits the `stop' button on their browser during a
+ write operation that can take a long time (e.g. hitting
+ the membership management admin page).
+
+ o Fixes in 2.0.4 ported forward:
+ Python 2.1 compatibility release. There were a few
+ questionable constructs and uses of deprecated modules
+ that caused annoying warnings when used with Python 2.1.
+ This release quiets those warnings.
+
+ o Fixes in 2.0.3 ported forward:
+ Bug fix release. There was a small typo in 2.0.2 in
+ ListAdmin.py for approving an already subscribed member
+ (thanks Thomas!). Also, an update to the OpenWall
+ security workaround (contrib/securelinux_fix.py) was
+ included. Thanks to Marc Merlin.
+
+2.1 alpha 1 (04-Mar-2001)
+
+ - Python 2.0 or newer required. Also required is `mimelib' a new
+ library for handling MIME documents. This will be bundled in
+ future releases, but for now, you must download and install it
+ (using Python's distutils) from
+
+ http://barry.wooz.org/software/Code/mimelib-0.2.tar.gz
+
+ You need mimelib 0.2 or better.
+
+ - Redesigned qrunner subsystem. Now there are multiple message
+ queues, and considerable flexibility in file formats for
+ integration with external systems. The current crop of queues
+ include:
+
+ archive -- for posting messages to an archiver
+ commands -- for incoming email commands and bounces
+ in -- for list-destined incoming email
+ news -- for messages outgoing to a nntp server
+ out -- for messages outgoing to a smtp server
+ shunt -- for messages that trigger unexpected exceptions in Mailman
+ virgin -- for messages that are generated by Mailman
+
+ cron/qrunner is now a long running script that forks off
+ sub-runners for each of the above queues. qrunner still plays
+ nice with cron, but it is expected to be started by init at some
+ point in the future. Some support exists for parallel
+ processing of messages in the queues.
+
+ - Support for internationalization support merged in. Original
+ work done by Juan Carlos Rey Anaya and Victoriano Giralt. I've
+ tested about 90% of the web side, 50% of the email, and 50% of
+ the command line / cron scripts.
+
+ New scripts: bin/newlang, bin/rmlang
+
+ - New delivery script `auto' for automatic integration with the
+ Postfix MTA.
+
+ - A bunch of new bounce detectors.
+
+ Changes ported from Mailman 2.0.2 and 2.0.1:
+
+ - A fix for a potential privacy exploit where a clever list
+ administrator could gain access to user passwords. This doesn't
+ allow them to do much more harm to the user then they normally
+ could, but they still shouldn't have access to the passwords.
+
+ - In the admindb page, don't complain when approving a
+ subscription of someone who's already on the list (SF bug
+ #222409 - Thomas Wouters).
+
+ Also, quote for HTML the Subject: text printed for held
+ messages, otherwise messages with e.g. "Subject: </table>" could
+ royally screw page formatting.
+
+ - Docstring fix bin/newlist to remove mention of "immediate"
+ argument (Thomas Wouters).
+
+ - Fix for bin/update when PREFIX != VAR_PREFIX (SF bug #229794 --
+ Thomas Wouters).
+
+ - Bug fix release, namely fixes a buglet in bin/withlist affecting
+ the -l and -r flags; also a problem that can cause qrunner to
+ stop processing mail after disk-full events (SourceForge bug
+ 127199).
+
+2.0 final (21-Nov-2000)
+
+ No changes from rc3.
+
+2.0 release candidate 3 (16-Nov-2000)
+
+ - By popular demand, Reply-To: munging policy is now to always
+ override any Reply-To: header in the original message, if
+ reply_goes_to_list is set to "This list" or "Explicit Address"
+
+ - bin/newlist given -q/--quiet flag instead of the <immediate>
+ positional argument
+
+ - Hopefully last fix to DEFAULT_URL not ending in a slash
+ sensitivity
+
+ - 2.0rc2 buglets fixed:
+ o newlist argument parsing
+ o updating with unlocked lists
+ o HyperArch.py traceback when there's no
+ Content-Transfer-Encoding: header
+
+ - SourceForge bugs fixed:
+ 122358 (qmail-to-mailman.py listname case folding)
+
+ - SourceForge patches applied:
+ 102373 (qmail-to-mailman.py listname case folding)
+
+2.0 release candidate 2 (10-Nov-2000)
+
+ - Documentation updates: start at admin/www/index.html
+
+ - bin/withlist accepts additional command line arguments when used
+ with the --run flag; bin/mmsitepass and bin/newlist accept
+ -h/--help flags
+
+ - bin/newlist has a -o/--output flag to append /etc/aliases
+ suggestions to a specified file
+
+ - SourceForge bugs fixed:
+ 116615 (README.BSD update), 117015 (duplicate messages on
+ moderated posts), 117548 (exception in HyperArch.py), 117682
+ (typos), 121185 (vsnprintf signature), 121591 and 122017
+ (bogus link after web unsubscribe), 121811 (`subscribe' in
+ Subject: doesn't get archived)
+
+ - SourceForge patches applied:
+ 101812 (securelinux_fix.py contrib), 102097 (fix for bug
+ 117548), 102211 (additional args for withlist), 102268 (case
+ insensitive Content-Transfer-Encoding:)
+
+2.0 release candidate 1 (23-Oct-2000)
+
+ - Bug fixes and security patches.
+
+ - Better html rendition of articles in non us-ascii charsets
+ (Jeremy Hylton). See VERBATIM_ENCODING variable in
+ Defaults.py.in for customization.
+
+2.0 beta 6 (22-Sep-2000)
+
+ - Building
+ o Tested with Python 1.5.2, Python 1.6, and Python 2.0 beta 1.
+ Conducted on RH Linux 6.1 only, but should work
+ cross-platform.
+
+ o Configure now accepts --with-username, --with-groupname,
+ --with-var-prefix flags. See `configure --help' or the
+ INSTALL file for details.
+
+ o Setting the CFLAGS environment variable before invoking
+ configure now works.
+
+ o The icons are now copied into $prefix/icons at install time.
+ Patch by David Champion.
+
+ - Standards
+ o Compliance with RFC 2369 (List-*: headers). Patch by
+ Darrell Fuhriman. List-ID: header is kept for historical
+ reasons.
+
+ o Fixes by Jeremy Hylton to Pipermail in support of non-ASCII
+ charsets, based on the Content-Type: and encoded-words in
+ the original message. Mail headers are now decoded as per
+ RFC 2047.
+
+ o Many more bounce formats are detected: Microsoft's SMTPSVC,
+ Compuserve, GroupWise, SMTP32, and the more generic
+ SimpleMatch (which catches lots of similar but slightly
+ different formats).
+
+ - Defaults
+ o Email addresses can now be obscured in Pipermail archives by
+ setting mm_cfg.ARCHIVER_OBSCURES_EMAILADDRS to 1 (obscuring
+ is turned off by default). Patch provided by Chris Snell.
+
+ o The default NNTP host can now be set by editing
+ mm_cfg.DEFAULT_NNTP_HOST. Patch by David Champion.
+
+ o The default archiving mode (public/private) can now be set
+ by editing mm_cfg.DEFAULT_ARCHIVE. Patch by Ted Cabeen.
+
+ - Web UI
+ o The variable details pages in the administrators interface
+ is now `live', i.e. there's a submit button on the details
+ page.
+
+ o A link to the administrative interface is placed in the
+ footer of the general user pages (authentication still
+ required, of course!)
+
+ o The user options change results page has a link back to the
+ user's main page.
+
+ o In the admindb page (for dealing with held postings), the
+ default forward address is now listname-owner instead of
+ listname-admin. This avoids bounce detection on the
+ forwarded message.
+
+ - Miscellaneous
+ o Fixed config.db corruption problem when disk-full errors are
+ encountered.
+
+ o Command line scripts accept list names case-insensitively.
+
+ o bin/remove_members takes a -a flag to remove all members of
+ a list in one fell swoop.
+
+ o List admin passwords must be non-empty.
+
+ o Mailman generated passwords are slightly more mnemonic, and
+ shouldn't have confusing character selections (i.e. `i'
+ only, but no `1' or `l').
+
+ o Crossposting to two gated mailing lists should be fixed.
+
+ o Many other bug fixes and minor web UI improvements.
+
+2.0 beta 5 (01-Aug-2000)
+
+ - Bug fix release. This includes a fix for a small security hole
+ which could be exploited to gain mailman group access by a local
+ user (not a mail or web user).
+
+ - As part of the fix for the "cookie reauthorization" bug, only
+ session cookies are used now. This means that administrative
+ and private archive cookies expire only when the browser session
+ is quit, however an explicit "Logout" button has been added.
+
+2.0 beta 4 (06-Jul-2000)
+
+ - Bug fix release.
+
+2.0 beta 3 (29-Jun-2000)
+
+ - Delivery mechanism (qrunner) refined to support immediate
+ queuing, queuing directly from MTA, and queuing on any error
+ along the delivery pipeline. This means 1) that huge lists
+ can't time out the MTA's program delivery channel; 2) it is much
+ harder to completely lose messages; 3) eventually, qrunner will
+ be elaborated to meter delivery to the MTA so as not to swamp
+ it. The tradeoff is in more disk I/O since every message coming
+ into the system (and most that are generated by the system) live
+ on disk for some part of their journey through Mailman.
+
+ For now, see the Default.py variables QRUNNER_PROCESS_LIFETIME
+ and QRUNNER_MAX_MESSAGES for primitive resource management.
+
+ The API to the pipeline handler modules has changed. See
+ Mailman/Handlers/HandlerAPI.py for details.
+
+ - Revamped admindb web page: held messages are split into headers
+ and bodies so they are easier to vette; admins can now also
+ preserve a held message (for spam evidence gathering) or forward
+ the message to a specified email address; disposition of held
+ messages can be deferred; held messages have a more context
+ meaningful default rejection message.
+
+ - Change to the semantics for `acceptable_aliases' list
+ configuration variable, based on suggestions by Harald Meland.
+
+ - New mm_cfg.py variables NNTP_USERNAME and NNTP_PASSWORD can be
+ set on a site-wide basis if connection to your nntpd requires
+ authentication.
+
+ - The list attribute `num_spawns' has been removed. The mm_cfg.py
+ variables MAX_SPAWNS, and DEFAULT_NUM_SPAWNS removed too.
+
+ - LIST_LOCK_LIFETIME cranked to 5 hours and LIST_LOCK_TIMEOUT
+ shortened to 10 seconds. QRUNNER_LOCK_LIFETIME cranked up to 10
+ hours. This should decrease the changes for bogus and harmful
+ lock breaking.
+
+ - Resent-to: is now one of the headers checked for explicit
+ destinations.
+
+ - Tons more bounce formats are recognized. The API to the bounce
+ modules has changed.
+
+ - A rewritten LockFile module which should fix most (hopefully all)
+ bugs in the locking machinery. Many improvements suggested by
+ Thomas Wouters and Harald Meland.
+
+ - Experimental support (disabled by default) for delivering SMTP
+ chunks to the MTA via multiple threads. Your Python executable
+ must have been compiled with thread support enabled, and you
+ must set MAX_DELIVERY_THREADS in mm_cfg.py. Note that this may
+ not improve your overall system performance.
+
+ - Some changes and additions to scripts: bin/find_member now
+ supports a -w/--owner flag to match regexps against mailing list
+ owners; bin/find_member now supports multiple regexps;
+ cron/gate_news command line option changes; new script
+ bin/dumbdb for debugging purposes; bin/clone_member can now also
+ remove the old address and change change the list owner
+ addresses.
+
+ - The News/Mail gateway admin page has a button that lets you do
+ an explicit catchup of the newsgroup.
+
+ - The CVS repository has been moved out to SourceForge. For more
+ information, see the project summary at
+
+ http://sourceforge.net/project/?group_id=103
+
+ - Lots 'o bug fixes and some performance improvements.
+
+2.0 beta 2 (07-Apr-2000)
+
+ - Rewritten gate_news cron script which should be more efficient
+ and avoid race and locking problems. Each list now maintains
+ its own watermark, and when you use the admin CGI script to turn
+ on gating from Usenet->mail, an automatic mass catch up is done
+ to avoid flooding the mailing list. cron/gate_news's command
+ line interface has also changed. See its docstring for
+ details.
+
+ - A new cron script called qrunner has been added to retry message
+ deliveries that fail because of temporary smtpd problems.
+
+ - New command line script called bin/list_lists which does exactly
+ that: lists all the mailing lists on the system (much like the
+ listinfo CGI does).
+
+ - bin/withlist is now directly executable, however if you want to
+ use python -i, you must still explicitly invoke it.
+ bin/withlist also now cleans up after itself by unlocking any
+ locked lists. It does NOT save any dirty lists though - you
+ must do this explicitly.
+
+ - $prefix permissions (and all subdirs) must now be 02775.
+ bin/check_perms has been updated to fix all the subdir
+ permissions.
+
+ - "make update" (a.k.a. bin/update) is run automatically when you
+ do a "make install"
+
+ - The CGI driver script now puts information about the Python
+ environment into the logs/error file (but not the diagnostic web
+ page).
+
+ - Bug fixes and some performance improvements
+
+2.0 beta 1 (19-Mar-2000)
+
+ - Python 1.5.2 (or newer) is now required.
+
+ - A new bundled auto-responder has been added. You can now
+ configure an autoresponse text for each list's primary
+ addresses:
+
+ listname@yourhost.com -- the general posting address
+ listname-request@... -- the automated "request bot" address
+ listname-admin@... -- the human administrator address
+
+ - The standard UI now includes three logos at the bottom of the
+ page: Dragon's Mailman logo, the Python Powered logo, and the
+ GNU logo. All point to their respective home pages.
+
+ - It is now possible to set the Reply-To: field on lists to an
+ arbitrary address. NOTE: Reply-To: munging is generally
+ considered harmful! However for some read-only lists, it is
+ useful to direct replies to a parallel discussion list.
+
+ - There is a new message delivery architecture which uses a
+ pipeline processor for incoming and internally generated
+ messages. Mailman no longer contains a bundled bulk-mailer;
+ instead message delivery is handled completely by the MTA. Most
+ MTAs give a high enough priority to connections from the
+ localhost that mail will not be lost because of system load, but
+ this is not guaranteed (or handled) by Mailman currently. Be
+ careful also if your smtpd is on a different host than the
+ Mailman host. In practice, mail lossage has not be observed.
+
+ For this reason cron/run_queue is no longer needed (see the
+ UPGRADING file for details).
+
+ Also, you can choose whether you want direct smtp delivery, or
+ delivery via the command line to a sendmail-compatible daemon.
+ You can also easily add your own delivery module. See
+ Mailman/Defaults.py for details.
+
+ - A similar pipeline architecture for the parsing of bounce
+ messages has been added. Most common bounce formats are now
+ handled, including Qmail, Postfix, and DSN. It is now much
+ easier to add new bounce detectors.
+
+ - The approval pending architecture has also been revamped.
+ Subscription requests and message posts waiting for admin
+ approval are no longer kept in the config.db file, but in a
+ separate requests.db file instead.
+
+ - Finally made consistent the use of Sender:/From:/From_ in the
+ matching of headers for such things as member-post-only. Now,
+ if USE_ENVELOPE_SENDER is true, Sender: will always be chosen
+ over From:, however the default has been changed to
+ USE_ENVELOPE_SENDER false so that From: is always chosen over
+ Sender:. In both cases, if no header is found, From_ (i.e. the
+ envelope sender is used). Note that the variable is now
+ misnamed! Most people want From: matching anyway and any are
+ easily spoofable.
+
+ - New scripts bin/move_list, bin/config_list
+
+ - cron/upvolumes_yearly, cron/upvolumes_monthly, cron/archive,
+ cron/run_queue all removed. Edit your crontab if you used these
+ scripts. Other scripts removed: contact_transport, deliver,
+ dumb_deliver.
+
+ - Several web UI improvements, especially in the admin page.
+
+ - Remove X-pmrqc: headers to prevent return reciepts for Pegasus
+ mail users.
+
+ - Security patch when using external archivers.
+
+ - Honor "X-Archive: No" header by not putting this message in the
+ archive.
+
+ - Changes to the log file format.
+
+ - The usual bug fixes.
+
+1.1 (05-Nov-1999)
+
+ - All GIFs removed. See http://www.gnu.org/philosophy/gif.html
+ for the reason why.
+
+ - Improvements to the Pipermail archiver which make things faster.
+ Primary change is that the .txt files are not gzipped on every
+ posted message. Instead, use the new cron script `nightly_gzip'
+ to gzip the .txt file in batches (this means that the .txt file
+ will lag behind the on-line archives a little).
+
+ - From the C drivers programs, Python is invoked with the -S
+ option. This tells Python to avoid importing the site module,
+ which can improve start up time of the Python process
+ considerably. Note that the command line script invocation has
+ not been changed.
+
+ - New configuration variables PUBLIC_EXTERNAL_ARCHIVER and
+ PRIVATE_EXTERNAL_ARCHIVER which can contain a shell command
+ string for os.popen(). This can be used to invoke an external
+ archiver instead of the bundled Pipermail archiver. See
+ Defaults.py for details.
+
+ - new script `bin/find_member' which can be used to search for a
+ member by regular expression.
+
+ - More child processes are reaped, which should eliminate most
+ occurrences of zombie processes.
+
+ - A few small miscellaneous bug fixes (including PR#99, PR#107)
+ and improvements to the file locking algorithms.
+
+1.0 (30-Jul-1999)
+
+ - Configure script now allows $PREFIX (by default /home/mailman)
+ to be permissions 02755. Also, configure now tests for
+ vsnprintf()
+
+ - Workaround, taken from GNU screen, for systems missing
+ vsnprintf()
+
+ - Return-Receipt-To: and Disposition-Notification-To: headers are
+ always removed from posted messages (they can be used to troll
+ for list membership).
+
+ - Workaround for MSIE4.01 (and possibly other versions) bug in the
+ handling of cookies.
+
+ - A small collection of other bug fixes.
+
+1.0rc3 (10-Jul-1999)
+
+ - new script bin/check_perms which checks (and optionally fixes)
+ the permissions and group ownerships of the files in your
+ Mailman installation.
+
+ - Removed a bottleneck in the archiving code that was causing
+ performance problems on highly loaded servers.
+
+ - The code that saves a list's state and configuration database
+ has been made more robust.
+
+ - Additional exception handlers have been added in several places
+ to alleviate problems with Mailman bombing out when it really
+ would be better to print/log a helpful message.
+
+ - The "password" mail command will now mail back the sender's
+ subscription password when given with no arguments.
+
+ - The embarrassing subject-prefixing bug present in rc2 has been
+ fixed.
+
+ - A small (but nice :) collection of other squashed bugs.
+
+1.0rc2 (14-Jun-1999)
+
+ - A security flaw in the CGI cookie mechanisms was discovered --
+ the Mailman-issued cookies were easily spoofable, implying that
+ e.g. admin access to all Mailman lists via the web interface
+ could be compromised. This flaw has now been fixed.
+
+ - Handling of SMTP errors has been improved.
+
+ - Both "Mass Subscription" via web admin interface and
+ bin/add_members have been greatly sped up.
+
+ - autoconf check for syslog has been revamped, and is now verified
+ to work on SCO OpenServer 5. If syslog can't be found, the C
+ wrappers will compile, but without any syslog calls.
+
+ - Various other bug fixes.
+
+1.0rc1 (04-May-1999)
+
+ - There is a new Mailman logo, contributed by The Dragon De
+ Monsyne. Please read the INSTALL file for information about
+ installing the logo in a place your Web server can find it.
+
+ - USE_ENVELOPE_SENDER is now set to 0 by default. Turning this on
+ caused problems for too many users; lists restricted to
+ member-only posts were not matching the addresses correctly.
+
+ - A revamped bin/withlist to be a little more useful.
+
+ - A revamped cron/mailpasswds which groups users by virtual hosts.
+
+ - The usual assortment of bug fixes.
+
+1.0b11 (03-Apr-1999)
+
+ - Bug fixes and improvements for case preservation of subscribed
+ addresses. The DATA_FILE_VERSION has been bumped to 14.
+
+ - New script bin/withlist, useful for interactive debugging.
+
+1.0b10 (26-Mar-1999)
+
+ - New script bin/sync_members which can be used to synchronize a
+ list's membership against a flat (e.g. sendmail :include: style)
+ file.
+
+ - bin/add_members and bin/remove_members now accept addresses on
+ the command line with `-' as the value for the -d and -n
+ options.
+
+ - Added variable USE_ENVELOPE_SENDER to Defaults.py for site-wide
+ configuration of address matching scheme. With this variable
+ set to true, the envelope sender (e.g. Unix "From_" header) is
+ used to match addresses, otherwise the From: header is used.
+ Envelope sender matching seems not to work on many systems.
+ This variable is currently defaulted to 1, but may change to 0
+ for the final release.
+
+ - Reorganization of the membership management admin page. Also
+ member addresses are linked to their options page. Only the
+ `General' category has the admin password change form.
+
+ - Major reorganization of email command handling and responses.
+ `notmetoo' is the preferred email command instead of `norcv',
+ although the latter is still accepted as an argument. If more
+ than 5 errors are found in the message, command processing is
+ halted.
+
+ - User options page now shows the user their case-preserved
+ subscribed address as well.
+
+ - The usual assortment of bug fixes.
+
+1.0b9 (01-Mar-1999)
+
+ - New bin scripts: clone_member, list_members, add_members (a
+ consolidation of convertlist and populate_new_list which have
+ been removed).
+
+ - Two new readmes have been added: README.LINUX and README.QMAIL
+
+ - New configure option --with-cgi-ext which can be used if your
+ Web server requires extensions on CGI scripts. The extension
+ must include a dot (e.g. --with-cgi-ext=".cgi").
+
+ - Many bug fixes, including the setgid problem that was causing
+ mail to be lost on some versions of Linux.
+
+1.0b8 (14-Jan-1999)
+
+ - Bug fixes and workarounds for certain Linuxes.
+
+ - Illegal addresses are no longer allowed to be subscribed, from
+ any interface.
+
+1.0b7 (31-Dec-1998)
+
+ - Many, many bug fixes. Some performance improvements for large
+ lists. Some improvements in the Web interfaces. Some security
+ improvements. Improved compatibility with Python 1.5.
+
+ - bin/convert_list and bin/populate_new_list have been replaced
+ by bin/add_members.
+
+ - Admins can now get notification on subscriptions and
+ unsubscriptions. Posts are now logged.
+
+ - The username portion of email addresses are now case-preserved
+ for delivery purposes. All other address comparisions are
+ case-insensitive.
+
+ - New default SMTP_MAX_RCPTS that limits the number of "RCPT TO"
+ SMTP commands that can be given for a single message. Most
+ MTAs have some hard limit.
+
+ - "Precedence: bulk" header and "List-id:" header are now added
+ to all outgoing messages. The latter is not added if the
+ message already has a "List-id:" header. See RFC 2046 and
+ draft-chandhok-listid-02 for details.
+
+ - The standard (as of Python 1.5.2) smtplib.py is now used.
+
+ - The install process now compiles all the .py files in the
+ installation.
+
+ - Versions of the Mailman papers given at IPC7 and LISA-98 are
+ now included.
+
+1.0b6 (07-Nov-1998)
+
+ - Archiving is (finally) back in.
+
+ - Administrivia filter added.
+
+ - Mail queue mechanism revamped with better concurrency control.
+
+ - For recipients that have estmp MTAs, set delivery notification
+ status so that only delivery failure notices are sent out,
+ inhibiting 4 hour and N day warning notices.
+
+ - Now expire old unconfirmed subscription requests, rather than
+ keeping them forever.
+
+ - Added proposed standard List-Id: header, and our own
+ X-MailmanVersion header.
+
+ - Prevent havoc from attempts to subscribe a list to itself. (!)
+
+ - Refine mail command processing to prevent loops.
+
+ - Pending subscription DB redone with better locking and cleaner
+ interface.
+
+ - posters functionality expanded.
+
+ - Subscription policy more flexible, sensible, and
+ site-configurable.
+
+ - Various and sundry bug fixes.
+
+1.0b5 (27-Jul-1998)
+
+ - New file locking that should be portable and work w/ NFS.
+
+ - Better use of packages.
+
+ - Better error logging and reporting.
+
+ - Less startup overhead.
+
+ - Various and sundry bug fixes.
+
+
+1.0b4 (03-Jun-1998)
+
+ - A configure script for easy installation (Barry Warsaw)
+
+ - The ability to install Mailman to locations other than
+ /home/mailman (Barry Warsaw)
+
+ - Use cookies on the admin pages (also hides admin pages from
+ others) (Scott Cotton)
+
+ - Subscription requests send a request for confirmation, which may
+ be done by simply replying to the message (Scott Cotton)
+
+ - Facilities for gating mail to a newsgroup, and for gating a
+ newsgroup to a mailing list (John Viega)
+
+ - Contact the SMTP port instead of calling sendmail (primarily for
+ portability) (John Viega)
+
+ - Changed all links on web pages to relative links where appropriate.
+ (John Viega)
+
+ - Use MD5 if crypt is not available (John Viega)
+
+ - Lots of fixing up of bounce handling (Ken Manheimer)
+
+ - General UI polishing (Ken Manheimer)
+
+ - mm_html: Make it prominent when the user's delivery is disabled
+ on his option page. (Ken Manheimer)
+
+ - mallist:DeleteMember() Delete the option setings if any. (Ken
+ Manheimer)
+
+1.0b3 (03-May-1998)
+
+ - mm_message:Deliverer.DeliverToList() added missing newline
+ between the headers and message body. Without it, any sequence
+ of initial body lines that _looked_ like headers ("Sir: Please
+ excuse my impertinence, but") got treated like headers.
+
+ - Fixed typo which broke subscription acknowledgement message
+ (thanks to janne sinkonen for pointing this out promptly after
+ release). (Anyone who applied my intermediate patch will
+ probably see this one trigger patch'es reversed-patch
+ detector...)
+
+ - Fixed cgi-wrapper.c so it doesn't segfault when invoked with
+ improper uid or gid, and generally wrappers are cleaned up a
+ bit.
+
+ - Prevented delivery-failure notices for misdirected subscribe-
+ confirmation requests from bouncing back to the -request addr,
+ and then being treated as failing requests.
+
+ Implemented two measures. Set the reply-to for the
+ confirmation- request to the -request addr, and the sender to be
+ the list admin. This way, bounces go to list admin instead of
+ to -request addr. (Using the errors-to header wasn't
+ sufficient. Thanks, barry, for pointing out the use of sender
+ here.) Second, ignore any mailcommands coming from postmaster
+ or non-login system type accounts (mailer-daemon, daemon,
+ postoffice, etc.)
+
+ - Reenabled admin setting of web_page_url - crucial for having
+ lists use alternate names of a host that occupies multiple
+ addresses.
+
+ - Fixed and refined admin-options help mechanism. Top-level visit
+ to general-category (where the "general" isn't in the URL) was
+ broken. New help presentation shows the same row that shows on
+ the actual options page.
+
+ - cron/crontab.in crontab template had wrong name for senddigests.
+
+ - Default digest format setting, as distributed, is now non-MIME,
+ on urging of reasoned voices asserting that there are still
+ enough bad MIME implementations in the world to be a nuisance to
+ too many users if MIME is the default. Sigh.
+
+ - MIME digests now preserve the structure of MIME postings,
+ keeping attachments as attachments, etc. They also are more
+ structured in general.
+
+ - Added README instructions explaining how to determine the right
+ UID and GID settings for the wrapper executables, and improved
+ some of the explanations about exploratory interaction
+ w/mailman.
+
+ - Removed the constraint that subscribers have their domain
+ included in a static list in the code. We might want to
+ eventually reincorporate the check for the sake of a warning
+ message, to give a heads up to the subscriber, but try delivery
+ anyway...
+
+ - Added missing titles to error docs.
+
+ - Improved several help details, including particularly explaining
+ better how real_name setting is used.
+
+ - Strengthened admonition against setting reply_goes_to_list.
+
+ - Added X-BeenThere header to postings for the sake of prevention
+ of external mail loops.
+
+ - Improved handling of bounced messages to better recognize
+ members address, and prevent duplicate attempts to react (which
+ could cause superfluous notices to administrator).
+
+ - Added __delitem__ method to mm_message.OutgoingMessage, to fix
+ the intermediate patch posted just before this one.
+
+ - Using keyword substitution format for more message text (ie,
+ "substituting %(such)s into text" % {'such': "something"}) to
+ make the substitutions less fragile and, presumably, easier to
+ debug.
+
+ - Removed hardwired (and failure-prone) /tmp file logging from
+ answer.majordomo_mail, and generally spiffed up following janne
+ sinkkonen's lead.
+
+1.0b2 (13-Apr-1998)
+1.0b1 (09-Apr-1998)
+
+ Web pages much more polished
+ - Better organized, text more finely crafted
+ - Easier, more refined layout
+ - List info and admin interface overviews, enumerate all public lists
+ (via, e.g., http://www.python.org/mailman/listinfo - sans the
+ specific list)
+ - Admin interface broken into sections, with help elaboration for
+ complicated configuration options
+
+ Mailing List Archives
+ - Integrated with a newer, *much* improved, external pipermail - to be
+ found at http://starship.skyport.net/crew/amk/maintained/pipermail.html
+ - Private archives protected with mailing list members passwords,
+ cookie-fied.
+
+ Spam prevention
+ - New spam prevention measures catch most if not all spam without
+ operator intervention or general constraints on who can post to
+ list:
+ require_explicit_destination option imposes hold of any postings
+ that do not have the list name in any of the to or cc header
+ destination addresses. This catches the vast majority of random
+ spam.
+ Other options (forbidden_posters, bounce_matching_headers) provide
+ for filtering of known transgressors.
+ - Option obscure_addresses (default on) causes mailing list subscriber
+ lists on the web to be slightly mangled so they're not directly
+ recognizable as email address by web spiders, which might be
+ seeking targets for spammers.
+
+ Site configuration arrangement organized - in mailman/mailman/modules:
+ - When installing, create a mailman/modules/mm_cfg.py (if there's not
+ one already there), using mm_cfg.py.dist as a template.
+ mm_default.py contains the distributed defaults, including
+ descriptions of the values. mm_cfg.py does a 'from mm_defaults.py
+ import *' to get the distributed defaults. Include settings in
+ mm_cfg.py for any values in mm_defaults.py that need to be
+ customized for your site, after the 'from .. import *'.
+ See mm_cfg.py.dist for more details.
+
+ Logging
+ - Major operations (subscription, admin approval, bounce,
+ digestification, cgi script failure tracebacks) logged in files
+ using a reliable mechanism
+ - Wrapper executables log authentication complaints via syslog
+
+ Wrappers
+ - All cgi-script wrapper executables combined in a single source,
+ easier to configure. (Mail and aliases wrappers separate.)
+
+ List structure version migration
+ - Provision for automatic update of list structures when moving to a
+ new version of the system. See modules/versions.py.
+
+ Code cleaning
+ - Many more module docstrings, __version__ settings, more function
+ docstrings.
+ - Most unqualified exception catches have been replaced with more
+ finely targeted catches, to avoid concealing bugs.
+ - Lotsa long lines wrapped (pet peeve:).
+
+ Random details (not complete, sorry):
+ - make archival frequency a list option
+ - Option for daily digest dispatch, in addition to size threshhold
+ - make sure users only get one periodic password notifcation message for
+ all the lists they're on (repaired 1.0b1.1 varying-case mistake)
+ - Fix rmlist sans-argument bug causing deletion of all lists!
+ - doubled generated random passwords to four letters
+ - Cleaned lots and lots of notices
+ - Lots and lots of html page cleanup, including table-of-contents, etc
+ - Admin options sections - don't do the "if so" if the ensuing list
+ is empty
+ - Prevent list subject-prefix cascade
+ - Sources under CVS
+ - Various spam filters - implicit-destination, header-field
+ - Adjusted permissions for group access
+ - Prevent redundant subscription from redundant vetted requests
+ - Instituted centralize, robustish logging
+ - Wrapper sources use syslog for logging (john viega)
+ - Sorting of users done on presentation, not in list.
+ - Edit options - give an error for non-existent users, not an options page.
+ - Bounce handling - offer 'disable' option, instead of remove, and
+ never remove without notifying admin
+ - Moved subscribers off of listinfo (and made private lists visible
+ modulo authentication)
+ - Parameterize default digest headers and footers and create some
+ - Put titles on cgi result pages that do not get titles (all?)
+ - Option for immediate admin notifcation via email of pending
+ requests, as well as periodic
+ - Admin options web-page help
+ - Enabled grouped and cascading lists despite implicit-name constraint
+ - Changed subscribers list so it has its own script (roster)
+ - Welcome pages: http://www.python.org/mailman/{admin,listinfo}/
+
+0.95 (25-Jan-1997)
+ - Fixed a bug in sending out digests added when adding disable mime option.
+ - Added an option to not notify about bounced posts.
+ - Added hook for pre-posting filters. These could be used to
+ auto-strip signatures. I'm using the feature to auto-strip footers
+ that are auto-generated by mail received from another mailing list.
+
+0.94 (22-Jan-1997)
+ - Made admin password work ubiquitously in place of a user password.
+ - Added an interface for getting / setting user options.
+ - Added user option to disable mime digests (digested people only)
+ - Added user option to not receive your own posts (nondigested people only)
+ - Added user option to ack posts
+ - Added user option to disable list delivery to their box.
+ - Added web interface to user options
+ - Config number of sendmail spawns on a per-list basis
+ - Fixed extra space at beginning of each message in digests...
+ - Handled comma separated emails in bounce messages...
+ - Added a FindUser() function to MailList. Used it where appropriate.
+ - Added mail interface to setting list options.
+ - Added name links to the templates options page
+ - Added an option so people can hide their names from the subscription list.
+ - Added an answer_majordomo_mail script for people switching...
+
+0.93 (18/20-Jan-1997)
+ - When delivering to list, don't call sendmail directly. Write to a file,
+ and then run the new deliver script, which forks and exits in the parent
+ immediately to avoid hanging when delivering mail for large lists, so that
+ large lists don't spend a lot of time locked.
+ - GetSender() no longer assumes that you don't have an owner-xxx address.
+ - Fixed unsubscribing via mail.
+ - Made subscribe via mail generate a password if you don't supply one.
+ - Added an option to clobber the date in the archives to the date the list
+ resent the post, so that the archive doesn't get mail from people sending
+ bad dates clumped up at the beginning or end.
+ - Added automatic error message processing as an option. Currently
+ logging to /tmp/bounce.log
+ - Changed archive to take a list as an argument, (the old way was broken)
+ - Remove (ignore) spaces in email addresses
+ - Allow user passwords to be case insensitive.
+ - Removed the cleanup script since it was now redundant.
+ - Fixed archives if there were no archives.
+ - Added a Lock() call to Load() and Create(). This fixes the
+ problem of loading then locking.
+ - Removed all occurances of Lock() except for the ones in mailing
+ list since creating a list
+ now implicitly locks it.
+ - Quote single periods in message text.
+ - Made bounce system handle digest users fairly.
+
+0.92 (13/16-Jan-1997)
+ - Added Lock and Unlock methods to list to ensure each operation is atomic
+ - Added a cmd that rms all files of a mailing list (but not the aliases)
+ - Fixed subscribing an unknown user@localhost (confirm this)
+ - Changed the sender to list-admin@... to ensure we avoid mail loops.
+ - check to make sure there are msgs to archive before calling pipermail.
+ - started using this w/ real mailing lists.
+ - Added a cron script that scours the maillog for User/Host unknown errs
+ - Sort membership lists
+ - Always display digest_is_default option
+ - Don't slam the TO list unless you're sending a digest.
+ - When making digest summaries, if missing sender name, use their email.
+ - Hacked in some protection against crappy dates in pipermail.py
+ - Made it so archive/digest volumes can go up monthly for large large lists.
+ - Number digest messages
+ - Add headers/footers to each message in digest for braindead mailers
+ - I removed some forgotten debug statements that caused server errors
+ when a CGI script sent mail.
+ - Removed loose_matches flag, since everything used it.
+ - Fixed a problem in pipermail if there was no From line.
+ - In upvolume_ scripts, remove INDEX files as we leave a volume.
+ - Threw a couple of scripts in bin for generating archives from majordomo's
+ digest-archives. I wouldn't recommend them for the layman, though, they
+ were meant to do a job quickly, not to be usable.
+
+0.91 (23-Dec-1996)
+ - broke code into mixins for managability
+ - tag parsing instead of lots of gsubs
+ - tweaked pipermail (see comments on pipermail header)
+ - templates are now on a per-list basis as intended.
+ - request over web that your password be emailed to you.
+ - option so that web subscriptions require email confirmation.
+ - wrote a first pass at an admin interface to configurable variables.
+ - made digests mime-compliant.
+ - added a FakeFile class that simulates enough of a file object on a
+ string of text to fool rfc822.Message in non-seek mode.
+ - changed OutgoingMessage not to require its args in constructor.
+ - added an admin request DB interface.
+ - clearly separated the internal name from the real name.
+ - replaced lots of ugly, redundant code w/ nice code.
+ (added Get...Email() interfaces, GetScriptURL, etc...)
+ - Wrote a lot of pretty html formatting functions / classes.
+ - Fleshed out the newlist command a lot. It now mails the new list
+ admin, and auto-updates the aliases file.
+ - Made multiple owners acceptable.
+ - Non-advertised lists, closed lists, max header length, max msg length
+ - Allowed editing templates from list admin pages.
+ - You can get to your info page from the web even if the list is closed.
+
+
+Local Variables:
+mode: indented-text
+indent-tabs-mode: nil
+End:
diff --git a/README b/README
new file mode 100644
index 00000000..57e4652a
--- /dev/null
+++ b/README
@@ -0,0 +1,247 @@
+Mailman - The GNU Mailing List Management System
+Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+INTRODUCTION
+
+ This is GNU Mailman, a mailing list management system distributed
+ under the terms of the GNU General Public License (GPL). The name
+ of this software is spelled "Mailman" with a leading capital `M'
+ but with a lower case second `m'. Any other spelling is
+ incorrect.
+
+ Mailman is written primarily in Python, a free object-oriented
+ scripting language. There is some ANSI C code for security
+ purposes.
+
+ Mailman was originally developed by John Viega. Subsequent
+ development (through version 1.0b3) was by Ken Manheimer. Further
+ work towards the 1.0 final release was a group effort, with the
+ core contributors being: Barry Warsaw, Ken Manheimer, Scott
+ Cotton, Harald Meland, and John Viega. Version 1.0 and beyond
+ have been primarily maintained by Barry Warsaw with contributions
+ from many; see the ACKNOWLEDGMENTS file for details. Jeremy
+ Hylton helped considerably with the Pipermail code in Mailman 2.0.
+
+ The Mailman home page is
+
+ http://www.gnu.org/software/mailman
+
+ with mirrors at
+
+ http://www.list.org
+ http://mailman.sf.net
+
+ Mailman 2.1 requires Python 2.1.3 or greater, which can be
+ downloaded from
+
+ http://www.python.org
+
+ It is recommended that you use Python 2.1.3 or Python 2.2.1, the
+ latest releases as of this writing. Mailman 2.1 is not compatible
+ with Python 2.0 or any earlier version.
+
+ You will also need an ANSI C compiler to build both Python and
+ Mailman; gcc (the GNU C compiler) works just fine. Mailman
+ currently works only on GNU/Linux and other Unix-like operating
+ systems (e.g. Solaris, *BSD, MacOSX, etc.). It does not run on
+ Windows, although web and mail clients on any platform should be
+ able to interact with Mailman just fine.
+
+ See the INSTALL file for installation instructions. If you are
+ upgrading from a previous version of Mailman, you need to read the
+ UPGRADING file for important information.
+
+
+FEATURES
+
+ Read the NEWS file for a list of changes since version 0.9. Read
+ the TODO file for our (extensive) wish list. You can see Mailman
+ 2.1 in action at
+
+ http://mail.python.org/mailman-21/listinfo
+
+ Mailman has most of the standard features you'd expect in a
+ mailing list manager, and more:
+
+ - Web based list administration for nearly all tasks. Web based
+ subscriptions and user configuration management. A customizable
+ "home page" for each mailing list.
+
+ - Privacy features such as moderation, open and closed list
+ subscription policies, private membership rosters, and
+ sender-based filters.
+
+ - Automatic web based archiving built-in with support for private
+ and public archives, and hooks for external archivers.
+
+ - Per-user configuration optional digest delivery for either
+ MIME-compliant or RFC 1153 style "plain text" digests.
+
+ - Integrated mail/Usenet gateways.
+
+ - Integrated auto-replies.
+
+ - Majordomo-style email based commands.
+
+ - Integrated bounce detection within an extensible framework.
+
+ - Integrated spam detection, and MIME-based content filtering.
+
+ - An extensible mail delivery pipeline.
+
+ - Support for virtual domains.
+
+
+REQUIREMENTS
+
+ The default mail delivery mechanism uses a direct SMTP connection
+ to whatever mail transport agent you have running on port 25. You
+ can thus use Mailman with any such MTA, however with certain MTAs
+ (e.g. Exim and Postfix), Mailman will support thru-the-web
+ creation and removal of mailing lists.
+
+ Mailman works with any web server that supports CGI/1.1. The HTML
+ it generates is quite pedestrian and stingy on the graphics so it
+ should be friendly to most web browsers and network connections.
+ It is regularly tested with IE 5.5, Netscape 4.7x, and Mozilla on
+ Windows and Netscape 4.7x and Mozilla on Linux (and occasionally
+ Lynx on Linux and Netscape and Mozilla on MacOS too!).
+
+ You will need root access on the machine hosting your Mailman
+ installation in order to complete some of the configuration
+ steps. See the INSTALL file for details.
+
+ Mailman's web and email user interface should be compatible with
+ just about any mail reader or web browser, although a mail reader
+ that is MIME aware will be a big help. You do not need Java,
+ JavaScript, or any other fancy plugins.
+
+
+CREATE YOUR FIRST LIST
+
+ These instructions assume that you've installed and configured
+ Mailman according to the instructions in the INSTALL file. To
+ create and test your first list, try the following:
+
+ - First, initialize the site administrator's password by cd'ing to
+ the install directory (by default /usr/local/mailman) and typing
+
+ % bin/mmsitepass
+ New site password: [yourpassword]
+ Again to confirm password: [yourpassword]
+ Password changed.
+
+ - Visit the url
+
+ http://my.dom.ain/mailman/create
+
+ Fill out the form as described in the on-screen instructions, and
+ in the "List creator's password" field, type the password you
+ entered above. Type your own email address for the "Initial
+ list owner address", and select "Yes" to notify the list
+ administrator.
+
+ - Hit "Create List"
+
+ - Check your email for a message from Mailman informing you that
+ your new mailing list was created.
+
+ - NOTE: If you are using an MTA other than Exim or Postfix
+ (e.g. Sendmail or qmail), then you'll need to do the extra step
+ of installing the mailing list aliases manually. Follow the
+ instructions in an email message that you should have received
+ (you'll need to know how to do this for your particular MTA, see
+ the README for your MTA for more information).
+
+ - Now visit the list's admin page (either by following the link on
+ the web page or entering the link from the email Mailman just
+ sent you). Typically the url will be something like
+
+ http://my.dom.ain/mailman/admin/mysitelist
+
+ Type in the list's password and click on "Let me in..."
+
+ - Click on "Membership Management" and then on "Mass Subscription".
+
+ - Enter your email address in the big text field, and click on
+ "Submit Your Changes"
+
+ - Now go to your email and send a message to yourlist@my.dom.ain.
+ Within a minute or two you should see your message reflected
+ back to you via Mailman.
+
+ Congratulations! You've just set up and tested your first Mailman
+ mailing list. If you had any problems along the way, please see
+ the section below on FOR MORE INFORMATION.
+
+
+FOR MORE INFORMATION
+
+ The online documentation can be found in
+
+ file:admin/www/index.html
+
+ in the directory in which you unpacked Mailman.
+
+ Chris Kolar has made a list owner-oriented manual available from
+ the following URL
+
+ http://www.imsa.edu/~ckolar/mailman/
+
+ There are also several mailing lists that can be used as resources
+ to help you get going with Mailman.
+
+ Mailman-Users
+ An list for users of Mailman, for posting questions or
+ problems related to installation, use, etc. We'll try to keep
+ the deep technical discussions off this list.
+
+ http://mail.python.org/mailman/listinfo/mailman-users
+
+ Listowners
+ This mailing list with a non-technical focus, specifically for
+ discussions from the perspective of listowners and moderators
+ who do not have "shell access" to the mailing list server
+ where the Mailman software runs.
+
+ http://listowner.org
+
+ Mailman-Announce
+ A read-only list for release announcements an other important
+ news.
+
+ http://mail.python.org/mailman/listinfo/mailman-announce
+
+ Mailman-Developers
+ A list for those of you interested in helping develop
+ Mailman's future direction. This list will contain in-depth
+ technical discussions.
+
+ http://mail.python.org/mailman/listinfo/mailman-developers
+
+ Mailman-I18N
+ A list for the discussion of the Mailman internationalization
+ effort. Mailman 2.1 will be fully multi-lingual.
+
+ http://mail.python.org/mailman/listinfo/mailman-i18n
+
+ Mailman-Checkins
+ A read-only list which is an adjunct to the public anonymous
+ CVS repository. You can stay on the bleeding edge of Mailman
+ development by subscribing to this list.
+
+ http://mail.python.org/mailman/listinfo/mailman-checkins
+
+ The Mailman project is coordinated on SourceForge at
+
+ http://sf.net/projects/mailman
+
+ You should use SourceForge to report bugs and to upload patches.
+
+
+
+Local Variables:
+mode: indented-text
+indent-tabs-mode: nil
+End:
diff --git a/README-I18N.en b/README-I18N.en
new file mode 100644
index 00000000..59b20965
--- /dev/null
+++ b/README-I18N.en
@@ -0,0 +1,166 @@
+Mailman - The GNU Mailing List Management System
+Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+
+INTERNATIONALIZATION
+
+ Mailman 2.1 is multilingual. By default it supports English, but
+ additional languages may also be available. If the language you
+ want to add is already supported by Mailman, then getting all your
+ lists to also support that language is fairly easy. You just need
+ to go to the administrative web pages, click on the "Languages"
+ category, and select the languages you want your list to support.
+
+ If the language you want to use has not been previously
+ translated, or you don't know where to find the language pack for
+ your language, read the section below or contact the Mailman
+ internationalization mailing list mailman-i18n@python.org.
+
+
+ADDING NEW TRANSLATIONS
+
+ Suppose you want to add new translations for a previously
+ unsupported language, what steps would you need to take?
+
+ First, you should send a message to mailman-i18n@python.org to
+ make sure nobody has already created the translations for your
+ language. In the example below, we're going to create a
+ translation for the mythical language "Fredonia" which has the
+ official language code of "xx".
+
+ You should also see
+
+ http://www.list.org/MM21/i18n.html
+
+ for more information on internationalizing Mailman.
+
+ In general you need to do two things to add translations for a
+ language in Mailman. You need to translate the message catalog
+ and you need to translate the templates.
+
+ To translate the message catalog, grab the file
+ messages/mailman.pot and make a copy called mailman.po in the
+ subdirectory messages/xx/LC_MESSAGES. Then you edit the file and
+ add the translations for each message identified in the catalog.
+ It will be very helpful to have a good tool, such as KDE's KBabel
+ tool, or po-mode for Emacs, for this part of the job.
+
+ Once you've added your translations, you can then run msgfmt over
+ your .po file to generate messages/xx/LC_MESSAGE/mailman.mo.
+
+ Next, create the subdirectory templates/xx and translate each of
+ the files in templates/en/*.{html,txt}. These you should also
+ donate back to the Mailman project.
+
+ To make Mailman and your lists aware of the new language, follow
+ the directions in the section above.
+
+
+TRANSLATION HINTS
+
+ Q: If your language uses non-ASCII characters, such as the cedilla in
+ French, how should you add these to the catalogs and templates?
+
+ A: For any message that is destined for the web interface, use an
+ HTML entity reference where appropriate. For messages destined
+ for email, you should use the non-ASCII characters explicitly.
+ This includes both for the message catalog and the templates.
+
+
+RESYNCHRONIZING THE CATALOG
+
+ As Mailman development continues, new updated catalogs
+ (i.e. mailman.pot files) will be made available. As mailman.pot
+ changes, the individual language catalogs
+ (i.e. xx/LC_MESSAGES/mailman.po files) need to be updated as well.
+
+ In general, I as the Mailman maintainer will merge the new
+ catalogs with the individual language catalogs, and commit the
+ updates to CVS. Translators should grab the new mailman.po files
+ from CVS and update the translated messages. They should also
+ update the template translations.
+
+ For best results, you will probably want to keep current on
+ changes to Mailman 2.1 in the CVS. As Mailman 2.1 moves towards
+ final release, the catalogs and templates should start to
+ stabilize. Alternatively, occasionally I will make new English
+ language packs available on SourceForge, and you can use these to
+ create your translations.
+
+
+DONATING YOUR TRANSLATION BACK TO MAILMAN
+
+ We'd really appreciate it if you donate your translations back to
+ the Mailman project, so that others can benefit from your effort.
+ You'll get credit of course, in the Mailman documentation. Here
+ are the steps to donate your translations, either the first time
+ or subsequent updates.
+
+ The best thing to do is to send me <barry@python.org> a "tarball",
+ i.e. a gzip'd tarfile, that can be unpacked in the top level
+ directory of the Mailman CVS tree. This would be the directory
+ containing this README-I18N.en file.
+
+ Your tarball should contain two directories, where your donated
+ language is `xx':
+
+ templates/xx
+ messages/xx
+
+ In templates/xx there should be the translated templates, all the
+ .txt and .html files, for your language, mirroring those in the
+ English template directory (always the master copy).
+
+ In messages/xx you should have a single directory LC_MESSAGES, and
+ in that directory a file called mailman.po, which is the human
+ readable catalog for your language. Do not send me the mailman.mo
+ file, since I'll recreate it on my end, and that'll save on the
+ size of the tarball.
+
+ That's basically it. If you need to include a README, please call
+ it README.xx and put it in the messages/xx directory. README.xx
+ can be in your native language.
+
+ You can email the tarball to me, and if this is the first
+ installation of the language, please tell me what the
+ add_language() call in Defaults.py.in should be for your
+ language.
+
+
+CURRENT LIST OF LANGUAGE SUPPORTED OUT-OF-THE BOX
+
+ As of this writing (23-Dec-2002), Mailman 2.1 supports the
+ following languages out of the box:
+
+ - Czech
+ - Chinese (Simplified and Traditional)
+ - Dutch
+ - English
+ - Estonian
+ - Finnish
+ - French
+ - German
+ - Hungarian
+ - Italian
+ - Japanese
+ - Korean
+ - Lithuanian
+ - Spanish
+ - Swedish
+ - Norwegian
+ - Portuguese (Brazil)
+ - Russian
+
+ We've also had volunteers for these languages, although they
+ aren't yet integrated into the code base:
+
+ - Catalan
+ - Polish
+
+
+
+Local Variables:
+mode: text
+indent-tabs-mode: nil
+End:
diff --git a/README.BSD b/README.BSD
new file mode 100644
index 00000000..f5b6a0eb
--- /dev/null
+++ b/README.BSD
@@ -0,0 +1,27 @@
+Mailman - The GNU Mailing List Management System
+Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+BSD ISSUES
+
+1. Vivek Khera writes that BSD does nightly security scans for setuid
+ file changes. Setgid directories also come up on the scan when
+ they change. He says that setgid bit is not necessary on BSD
+ systems because group ownership is automatically inherited on files
+ created in directories. On other Un*xes, this only happens when
+ the directory has the setgid bit turned on.
+
+ To install without turning on the setgid bit on directories, simply
+ pass in the DIRSETGID variable to make, like so:
+
+ % make DIRSETGID=: install
+
+ This turns off the chmod g+s on each directory as they are
+ installed.
+
+
+
+Local Variables:
+mode: text
+indent-tabs-mode: nil
+End:
diff --git a/README.CONTRIB b/README.CONTRIB
new file mode 100644
index 00000000..b15d57cb
--- /dev/null
+++ b/README.CONTRIB
@@ -0,0 +1,17 @@
+Mailman - The GNU Mailing List Management System
+Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+Encrypted mailing lists
+
+ Raphinou <rb@raphinou.com> has documented a setup for encrypted
+ mailing lists at
+
+ http://www.raphinou.com/smailman
+
+
+
+Local Variables:
+mode: indented-text
+indent-tabs-mode: nil
+End:
diff --git a/README.EXIM b/README.EXIM
new file mode 100644
index 00000000..c1e93827
--- /dev/null
+++ b/README.EXIM
@@ -0,0 +1,353 @@
+Using Exim and Mailman Together
+===============================
+
+[This is derived from Nigel Metheringham's "HOWTO - Using Exim and
+ Mailman together", which covers Mailman 2.0.x and Exim 3. It
+ has been updated to cover Mailman 2.1 and Exim 4. The original
+ document is here: http://www.exim.org/howto/mailman.html]
+
+
+Mailman configuration
+---------------------
+
+There is no Mailman configuration needed other than the standard
+options detailed in the Mailman install documentation. The Exim
+configuration is transparent to Mailman. The user and group settings
+for Mailman must match those in the config fragments given below.
+
+
+Exim configuration
+------------------
+
+The Exim configuration is built so that a list created within Mailman
+automatically appears to Exim without the need for defining any
+additional aliases.
+
+The drawback of this configuration is that it will work poorly on
+systems supporting lists in several different mail domains. While
+Mailman handles virtual domains, it does not yet support having two
+distinct lists with the same name in different virtual domains, using
+the same Mailman installation. This will eventually change. (But see
+below for a variation on this scheme that should accommodate virtual
+domains better.)
+
+The configuration file excerpts below are for use in an already
+functional Exim configuration, which accepts mail for the domain in
+which the list resides. If this domain is separate from the others
+handled by your Exim configuration, then you'll need to:
+
+ * add the list domain, "my.list.domain" to local_domains
+
+ * add a "domains=my.list.domain" option to the director
+ (router) for the list
+
+ * (optional) exclude that domain from your other directors (routers)
+
+[Note: the instructions in this document should work with either Exim 3
+or Exim 4. In Exim 3, you must have a 'local_domains' configuration
+setting; in Exim 4, you most likely have a 'local_domains' domainlist.
+If you don't, you probably know what you're doing and can adjust
+accordingly. Similarly, in Exim 4 the concept of "directors" has
+disappeared -- there are only routers now. So if you're using Exim 4,
+whenever this document says "director", read "router".]
+
+Whether you are using Exim 3 or Exim 4, you will need to add some macros
+to the main section of your Exim config file. You will also need to
+define one new transport. With Exim 3, you'll need to add a new
+director; with Exim 4, a new router plays the same role.
+
+Finally, the configuration supplied here should allow co-habiting
+Mailman 2.0 and 2.1 installations, with the proviso that you'll probably
+want to use "mm21" in place of "mailman" -- e.g., MM21_HOME,
+mm21_transport, etc.
+
+
+Main configuration settings
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+First, you need to add some macros to the top of your Exim config file.
+These just make the director (router) and transport below a bit
+cleaner. Obviously, you'll need to edit these based on how you
+configured and installed Mailman.
+
+ # Home dir for your Mailman installation -- aka Mailman's prefix
+ # directory.
+ MAILMAN_HOME=/usr/local/mailman
+ MAILMAN_WRAP=MAILMAN_HOME/mail/mailman
+
+ # User and group for Mailman, should match your --with-mail-gid
+ # switch to Mailman's configure script.
+ MAILMAN_USER=mailman
+ MAILMAN_GROUP=mailman
+
+
+Transport for Exim 3
+~~~~~~~~~~~~~~~~~~~~
+
+Add this to the transports section of your Exim config file,
+i.e. somewhere between the first and second "end" line:
+
+ mailman_transport:
+ driver = pipe
+ command = MAILMAN_WRAP \
+ '${if def:local_part_suffix \
+ {${sg{$local_part_suffix}{-(\\w+)(\\+.*)?}{\$1}}} \
+ {post}}' \
+ $local_part
+ current_directory = MAILMAN_HOME
+ home_directory = MAILMAN_HOME
+ user = MAILMAN_USER
+ group = MAILMAN_GROUP
+
+(XXX this is untested by me under Exim 3! Can someone using Exim 3
+please let me know if it works?)
+
+
+Director for Exim 3
+~~~~~~~~~~~~~~~~~~~
+
+If you're using Exim 3, you'll need to add the following director to
+your config file (directors go between the second and third "end"
+lines). Also, don't forget that order matters -- e.g. you can make
+Mailman lists take precedence over system aliases by putting this
+director in front of your aliasfile director, or vice-versa.
+
+ # Handle all addresses related to a list 'foo': the posting address.
+ # Automatically detects list existence by looking
+ # for lists/$local_part/config.pck under MAILMAN_HOME.
+ mailman_director:
+ driver = smartuser
+ require_files = MAILMAN_HOME/lists/$local_part/config.pck
+ suffix_optional
+ suffix = -bounces : -bounces+* : \
+ -confirm+* : -join : -leave : \
+ -owner : -request : -admin
+ transport = mailman_transport
+
+
+Router for Exim 4
+~~~~~~~~~~~~~~~~~
+
+In Exim 4, there's no such thing as directors -- you need to add a new
+router instead. Also, the canonical order of the configuration file was
+changed so routers come before transports, so the router for Exim 4
+comes first here. Put this router somewhere after the "begin routers"
+line of your config file, and remember that order matters.
+
+ mailman_router:
+ driver = accept
+ require_files = MAILMAN_HOME/lists/$local_part/config.pck
+ local_part_suffix_optional
+ local_part_suffix = -bounces : -bounces+* : \
+ -confirm+* : -join : -leave : \
+ -owner : -request : -admin
+ transport = mailman_transport
+
+
+Transports for Exim 4
+~~~~~~~~~~~~~~~~~~~~~
+
+The transport for Exim 4 is the same as for Exim 3; just copy the
+transport given above to somewhere under the "begin transports" line of
+your Exim config file.
+
+
+Notes
+-----
+
+Exim should be configured to allow reasonable volume -- e.g. don't set
+max_recipients down to a silly value -- and with normal degrees of
+security -- specifically, be sure to allow relaying from 127.0.0.1, but
+pretty much nothing else. Parallel deliveries and other tweaks can also
+be used if you like; experiment with your setup to see what works.
+Delay warning messages should be switched off or configured to only
+happen for non-list mail, unless you like receiving tons of mail when
+some random host is down.
+
+
+Problems
+--------
+
+ * Mailman will send as many MAIL FROM/RCPT TO as it needs. It may result
+ in more than 10 or 100 messages sent in one connection, which will exceed
+ the default value of Exim's smtp_accept_queue_per_connection
+ This is bad because it will cause Exim to switch into queue mode and
+ severely delay delivery of your list messages.
+ The way to fix this is to set mailman's SMTP_MAX_SESSIONS_PER_CONNECTION
+ (in ~mailman/Mailman/mm_cfg.py) to a smaller value than Exim's
+ smtp_accept_queue_per_connection
+
+ * Mailman should ignore Exim delay warning messages, even though
+ Exim should never send this to list messages. Mailman 2.1's
+ general bounce detection and VERP support should greatly improve
+ the bounce detector's hit rates.
+
+ * List existence is determined by the existence of a config.pck file
+ for a list. If you delete lists by foul means, be aware of this.
+
+ * If you are getting Exim or Mailman complaining about user ids when
+ you send mail to a list, check that the MAILMAN_USER and
+ MAILMAN_GROUP match those of Mailman itself (i.e. what were used
+ in the configure script). Also make sure you do not have aliases
+ in the main alias file for the list.
+
+
+Receiver Verification
+---------------------
+
+Exim's receiver verification feature is very useful -- it lets Exim
+reject unrouteable addresses at SMTP time. However, this is most useful
+for externally-originating mail that is addressed to mail in one of your
+local domains. For Mailman list traffic, mail originates on your
+server, and is addressed to random external domains that are not under
+your control. Furthermore, each message is addressed to many recipients
+-- up to 500 if you use Mailman's default configuration and don't tweak
+SMTP_MAX_RCPTS.
+
+Doing receiver verification on Mailman list traffic is a recipe for
+trouble. In particular, Exim will attempt to route every recipient
+addresses in outgoing Mailman list posts. Even though this requires
+nothing more than a few DNS lookups for each address, it can still
+introduce significant delays. Therefore, you should disable recipient
+verification for Mailman traffic.
+
+Under Exim 3, put this in your main configuration section:
+
+ receiver_verify_hosts = !127.0.0.1
+
+Under Exim 4, this is probably already taken care of for you by the
+default recipient verification ACL statement (in the "RCPT TO" ACL):
+
+ accept domains = +local_domains
+ endpass
+ message = unknown user
+ verify = recipient
+
+which only does recipient verification on addresses in your domain.
+(That's not exactly the same as doing recipient verification only on
+messages coming from non-127.0.0.1 hosts, but it should do the trick for
+Mailman.)
+
+
+SMTP Callback
+-------------
+
+Exim's SMTP callback feature is an even more powerful way to detect
+bogus sender addresses than normal sender verification. Unfortunately,
+lots of servers send bounce messages with a bogus address in the header,
+and there are plenty that send bounces with bogus envelope senders
+(even though they're supposed to just use an empty envelope sender for
+bounces).
+
+In order to ensure that Mailman can disable/remove bouncing addresses,
+you generally want to receive bounces for Mailman lists, even if those
+bounces are themselves not bounceable. Thus, you might want to disable
+SMTP callback on bounce messages.
+
+With Exim 4, you can accomplish this using something like the following
+in your "RCPT TO" ACL:
+
+ # Accept bounces to lists even if callbacks or other checks would fail
+ warn message = X-WhitelistedRCPT-nohdrfromcallback: Yes
+ condition = \
+ ${if and {{match{$local_part}{(.*)-bounces\+.*}}
+ {exists {MAILMAN_HOME/lists/$1/config.pck}}} \
+ {yes}{no}}
+ {yes}{no}}
+
+ accept condition = \
+ ${if and {{match{$local_part}{(.*)-bounces\+.*}}
+ {exists {MAILMAN_HOME/lists/$1/config.pck}}} \
+ {yes}{no}}
+ {yes}{no}}
+
+ # Now, check sender address with SMTP callback.
+ deny !verify = sender/callout=90s
+
+If you also do SMTP callbacks on header addresses, you'll want something
+like this in your "DATA" ACL:
+
+ deny !condition = $header_X-WhitelistedRCPT-nohdrfromcallback:
+ !verify = header_sender/callout=90s
+
+[XXX all this stuff is completely untested by me! -Greg]
+
+
+Doing VERP with Exim and Mailman
+--------------------------------
+
+VERP will send one email, with a separate envelope sender (return path),
+for each of your subscribers -- read the information in
+~mailman/Mailman/Default.py for the options that start with VERP. In a
+nutshell, all you need to do to enable VERP with Exim is to add these
+lines to ~mailman/Mailman/mm_cfg.py:
+
+ VERP_PASSWORD_REMINDERS = 1
+ VERP_PERSONALIZED_DELIVERIES = 1
+ VERP_DELIVERY_INTERVAL = 1
+ VERP_CONFIRMATIONS = 1
+
+(The director (router) above is smart enough to deal with VERP bounces.)
+
+
+Virtual Domains
+---------------
+
+One approach to handling virtual domains is to use a separate Mailman
+installation for each virtual domain. (Currently, this is the only way
+to have lists with the same name in different virtual domains handled by
+the same machine.)
+
+In this case, the MAILMAN_HOME and MAILMAN_WRAP macros are useless --
+you can remove them. Change your director (router) to something like
+this:
+
+ require_files = /virtual/${domain}/mailman/lists/${lc:$local_part}/config.pck
+
+and change your transport like this:
+
+ command = /virtual/${domain}/mailman/mail/mailman \
+ ${if def:local_part_suffix \
+ {${sg{$local_part_suffix}{-(\\w+)(\\+.*)?}{\$1}}}
+ {post}} \
+ $local_part
+ current_directory = /virtual/${domain}/mailman
+ home_directory = /virtual/${domain}/mailman
+
+
+List Verification
+-----------------
+
+This is how a set of address tests for the Exim lists look on a working
+system. The list in question is quixote-users@mems-exchange.org, and
+these commands were run on the mems-exchange.org mail server ("% "
+indicates the Unix shell prompt):
+
+ % exim -bt quixote-users
+ quixote-users@mems-exchange.org
+ router = mailman_main_router, transport = mailman_transport
+
+ % exim -bt quixote-users-request
+ quixote-users-request@mems-exchange.org
+ router = mailman_router, transport = mailman_transport
+
+ % exim -bt quixote-users-bounces
+ quixote-users-bounces@mems-exchange.org
+ router = mailman_router, transport = mailman_transport
+
+ % exim -bt quixote-users-bounces+luser=example.com
+ quixote-users-bounces+luser=example.com@mems-exchange.org
+ router = mailman_router, transport = mailman_transport
+
+If your "exim -bt" output looks something like this, that's a start: at
+least it means Exim will pass the right messages to the right Mailman
+commands. It by no means guarantees that your Exim/Mailman installation
+is functioning perfectly, though!
+
+
+Document History
+----------------
+
+Originally written by Nigel Metheringham <postmaster@exim.org>.
+Updated by Marc Merlin <marc_soft@merlins.org> for Mailman 2.1, Exim 4.
+Overhauled/reformatted/clarified/simplified by Greg Ward <gward@python.net>.
diff --git a/README.LINUX b/README.LINUX
new file mode 100644
index 00000000..77fa7e67
--- /dev/null
+++ b/README.LINUX
@@ -0,0 +1,49 @@
+Mailman - The GNU Mailing List Management System
+Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+
+GNU/LINUX ISSUES
+
+ GNU/Linux seems to be the most popular platform on which to run
+ Mailman. Here are some hints on getting Mailman to run on Linux:
+
+ If you are getting errors with hard link creations and/or you are using
+ a special secure kernel (securelinux/openwall/grsecurity), see
+ contrib/README.check_perms_grsecurity.
+
+ Note that if you are using Linux Mandrake in secure mode, you are probably
+ concerned by this.
+
+
+PYTHON PACKAGES
+
+ Note that if you installed Python from your Linux distribution's
+ package manager (e.g. .rpms for Redhat-derived systems or .deb for
+ Debian), you must install the `development' package of Python, or
+ you may not get everything you need.
+
+ For example, using Python 2.2 on Debian, you will need to install
+ the python2.2-dev package. On Redhat, you probably need the
+ python2-devel package.
+
+ If you install Python from source, you should be fine.
+
+ One symptom of this problem, although for unknown reasons, is that
+ you might get an error such as this during your install:
+
+ Traceback (most recent call last):
+ File "bin/update", line 44, in ?
+ import paths
+ ImportError: No module named paths
+ make: *** [update] Error 1
+
+ If this happens, install the Python development package and try
+ "configure ; make install" again.
+
+
+
+Local Variables:
+mode: text
+indent-tabs-mode: nil
+End:
diff --git a/README.MACOSX b/README.MACOSX
new file mode 100644
index 00000000..272d15ff
--- /dev/null
+++ b/README.MACOSX
@@ -0,0 +1,31 @@
+Mailman - The GNU Mailing List Management System
+Copyright (C) 2002 by the Free Software Foundation, Inc.
+59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+
+MacOSX ISSUES
+
+ Mailman should run on MacOSX, although I have not personally had
+ time to try it yet. Here are some pointers we've collected on
+ getting Mailman to run on MacOSX.
+
+ - Jaguar (MacOSX 10.2) comes with Python 2.2. While this isn't
+ the very latest stable version of Python, it ought to be
+ sufficient to run Mailman 2.1.
+
+ - David B. O'Donnell has a web page describing his configuration
+ of Mailman 2.0.13 and Postfix on MacOSX Server.
+
+ http://www.afp548.com/Articles/mail/python-mailman.html
+
+ - Kathleen Webb posted her experiences in getting Mailman running
+ on Jaguar using Sendmail.
+
+ http://mail.python.org/pipermail/mailman-users/2002-October/022947.html
+
+
+
+Local Variables:
+mode: text
+indent-tabs-mode: nil
+End:
diff --git a/README.NETSCAPE b/README.NETSCAPE
new file mode 100644
index 00000000..0f879b74
--- /dev/null
+++ b/README.NETSCAPE
@@ -0,0 +1,57 @@
+Mailman - The GNU Mailing List Management System
+Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+
+NETSCAPE ISSUES
+
+ Some of your users may experience problems sending mail to a
+ members-only list, if they are using Netscape Communicator as
+ their MUA. Communicator 4.x on Linux has been observed to insert
+ bogus unqualified Sender: headers -- i.e. Sender: headers with
+ only the username part of the email address. Other version of
+ Netscape may also have the same bug.
+
+ By default, members-only lists use the From: header as the first
+ field to authenticate against, falling back to Sender:. The site
+ administrator can also configure Mailman to always use Sender:
+ first. If Sender: is used, and it exists in the email message,
+ but it is unqualified, it will never match a mailing list member's
+ address, and their post will always be held for approval.
+
+ In the future, Mailman will improve its algorithm for finding a
+ matching address, but in the meantime, M. A. Lemburg <mal@lemburg.com>
+ provides the following advice. You can send this snippet to any user
+ whose posts are being held for seemingly no reason.
+
+ Edit the two .js files in your .netscape directory (liprefs.js and
+ preferences.js) to include the function call:
+
+ user_pref("mail.suppress_sender_header", true);
+
+ BTW, the binary includes a comment which says that this is only
+ necessary on Unix.
+
+ Since Communicator regenerates this file upon exit, the change
+ must be done when Communicator is not currently running. With the
+ next start, it will stop adding the Sender: header and things
+ start to work like a charm again.
+
+ The reason things start to work again, is that Mailman falls back to
+ authenticating the From: header if the Sender: header is missing,
+ even if the site administrator has configured things to look at
+ Sender: first.
+
+
+MOZILLA
+
+ There are no known problems with Mozilla 0.9.x at this time. I
+ don't know whether the above Netscape problem also affects
+ Mozilla.
+
+
+
+Local Variables:
+mode: indented-text
+indent-tabs-mode: nil
+End:
diff --git a/README.POSTFIX b/README.POSTFIX
new file mode 100644
index 00000000..204fd26c
--- /dev/null
+++ b/README.POSTFIX
@@ -0,0 +1,198 @@
+Mailman - The GNU Mailing List Management System
+Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+
+GENERAL SETUP INFORMATION
+
+ Mailman should work pretty much out of the box with a standard
+ Postfix installation. As of this writing I've tested it with
+ Postfix 19991231 up to pl13, and with 200010228 up to pl08.
+
+ It is recommended that you set "owner_request_special = no" in
+ your main.cf config file so that Postfix won't treat -owner and
+ -request addresses specially (we want Postfix to simply deliver
+ such messages to the Mailman wrapper). The default is "yes" I
+ believe.
+
+ In order to support Mailman's optional VERP delivery, you will
+ want to disable luser_relay (the default) and you will want to set
+ recipient_delimiter for extended address semantics. Here, my
+ recommendations are to comment out any luser_relay value in your
+ main.cf and just go with the defaults. Also, set
+ "recipient_delimiter = +" so that the symbol used to separate an
+ address from its extended semantics is a + sign. This will work
+ well with the default values for VERP_FORMAT and VERP_REGEXP in
+ Defaults.py.
+
+ Finally, if you are using Postfix-style virtual domains, read the
+ section on virtual domain support below.
+
+
+INTEGRATING POSTFIX AND MAILMAN
+
+ You can integrate Postfix and Mailman such that when new lists are
+ created, or lists are removed, Postfix's alias database will be
+ automatically updated. The following are the steps you need to
+ take to make this work.
+
+ In the description below, we assume that you've installed Mailman
+ in the default location, i.e. /usr/local/mailman. If that's not
+ the case, adjust the instructions according to your use of
+ configure's --prefix and --with-var-prefix options.
+
+ - If you are using Postfix-style virtual domains and you want
+ Mailman to honor your virtual domains, read the section below
+ first!
+
+ - Add this to the bottom of the $prefix/Mailman/mm_cfg.py file:
+
+ MTA = 'Postfix'
+
+ The MTA variable names a module in Mailman/MTA which contains the
+ MTA-specific functions to be executed when a list is created or
+ removed.
+
+ - Look at the Defaults.py file for the variables POSTFIX_ALIAS_CMD
+ and POSTFIX_MAP_CMD command. Make sure these point to your
+ postalias and postmap programs respectively.
+
+ - Run the genaliases script to initialize your aliases file.
+
+ % cd /usr/local/mailman
+ % bin/genaliases
+
+ Make sure that the owner of the data/aliases and data/aliases.db
+ file is `mailman' and that the group owner for those files is
+ `mailman'. E.g.:
+
+ % su
+ % chown mailman:mailman data/aliases*
+
+ - Hack your Postfix's main.cf file to include the following path
+ in your alias_maps variable:
+
+ /usr/local/mailman/data/aliases
+
+ (no trailing .db). Do not include this in your alias_database
+ variable. This is because you do not want Postfix's newaliases
+ command to modify Mailman's aliases.db file, but you do want
+ Postfix to consult aliases.db when looking for local addresses.
+
+ You probably want to use a hash: style database for this entry.
+ Here's an example:
+
+ alias_maps = hash:/etc/postfix/aliases,
+ hash:/usr/local/mailman/data/aliases
+
+ - When you configure Mailman, use the --with-mail-gid=mailman
+ switch (actually, this will be the default if you configured
+ Mailman after adding the `mailman' owner). Because the owner of
+ the aliases.db file is `mailman', Postfix will execute Mailman's
+ wrapper program as uid and gid mailman.
+
+ That's it! One caveat: when you add or remove a list, the
+ aliases.db file will updated, but it will not automatically run
+ "postfix reload". This is because you need to be root to run this
+ and suid-root scripts are not secure. The only effect of this is
+ that it will take about a minute for Postfix to notice the change
+ to the aliases.db file and update its tables. I consider this a
+ minor inconvenience.
+
+
+VIRTUAL DOMAINS
+
+ Postfix supports two styles of virtual domains, called
+ "Postfix-style" and "Sendmail-style". With the latter, all
+ aliases are visible in all domains, and nothing special need be
+ done with Mailman.
+
+ With Postfix-style virtual domains, things are a little trickier,
+ although Mailman should work well with it. First, you'll need to
+ add a path to Postfix's virtual_maps variable:
+
+ virtual_maps = <your normal virtual files>,
+ hash:/usr/local/mailman/data/virtual-mailman
+
+ assuming you've installed Mailman in the default location. Note
+ that you must follow Postfix's instructions for setting up the
+ virtual domains; get your virtual domains working in Postfix
+ first before integrating Mailman.
+
+ Next, in your mm_cfg.py file, you will want to set the variable
+ POSTFIX_STYLE_VIRTUAL_DOMAINS to the list of virtual domains that
+ Mailman should update. This may not be all of the virtual domains
+ that your Postfix installation supports! The values in this list
+ will be matched against the host_name attribute of mailing lists
+ objects, and must be an exact match.
+
+ Here's an example:
+
+ Let's say I've set up Postfix to handle the virtual domains
+ dom1.ain, dom2.ain, and dom3.ain. Let's say further that in
+ main.cf you've got the following settings:
+
+ myhostname = mail.dom1.ain
+ mydomain = dom1.ain
+ mydestination = $myhostname, localhost.$mydomain
+ virtual_maps = hash:/some/path/to/virtual-dom1,
+ hash:/some/path/to/virtual-dom2,
+ hash:/some/path/to/virtual-dom2
+
+ Let's say further that in virtual-dom1, you've got the following
+ lines:
+
+ dom1.ain IGNORE
+ @dom1.ain @mail.dom1.ain
+
+ This tells Postfix to deliver anything addressed to dom1.ain to
+ the same mailbox at mail.dom1.com, it's default destination.
+
+ In this case you would not include dom1.ain in
+ POSTFIX_STYLE_VIRTUAL_DOMAINS because otherwise Mailman will write
+ entries for mailing lists in the dom1.ain domain as
+
+ mylist@dom1.ain mylist
+ mylist-request@dom1.ain mylist-request
+ # and so on...
+
+ The more specific entries trump your more general entries and thus
+ breaking the delivery of any dom1.ain mailing list.
+
+ However, you would include dom2.ain and dom3.ain in mm_cfg.py:
+
+ POSTFIX_STYLE_VIRTUAL_DOMAINS = ['dom2.ain', 'dom3.ain']
+
+ Now, any list that Mailman creates in either of those two domains,
+ will have the correct entries written to
+ /usr/local/mailman/data/virtual-mailman
+
+ As above with the data/aliases* files, you want to make sure that
+ both data/virtual-mailman and data/virtual-mailman.db are user and
+ group owned by the `mailman' user/group. So to get things
+ started, set up your virtual domains, run bin/genaliases, and
+ check the ownerships of the files. From here on out, you should
+ be good to go.
+
+
+AN ALTERNATIVE APPROACH
+
+ Fil <fil@rezo.net> has an alternative approach based on virtual
+ maps and regular expressions, as described at:
+
+ (French) http://listes.rezo.net/comment.php
+ (English) http://listes.rezo.net/how.php
+
+ This is a good (and simpler) alternative if you don't mind
+ exposing an additional hostname in the domain part of the
+ addresses people will use to contact your list. I.e. if people
+ should use mylist@lists.dom.ain instead of mylist@dom.ain.
+
+ I have not extensively tested this approach however.
+
+
+
+Local Variables:
+mode: text
+indent-tabs-mode: nil
+End:
diff --git a/README.QMAIL b/README.QMAIL
new file mode 100644
index 00000000..3ae5717f
--- /dev/null
+++ b/README.QMAIL
@@ -0,0 +1,133 @@
+Mailman - The GNU Mailing List Management System
+Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+MORE INFORMATION
+
+You might be interested in some information that Norbert Bollow has
+written about Mailman and Qmail integration, available here:
+
+ http://mailman.cis.to/qmail-verh/
+
+
+QMAIL ISSUES
+
+There are some issues that users of the qmail mail transport agent
+have encountered. None of the core maintainers use qmail, so all of
+this information has been contributed by the Mailman user community,
+especially Martin Preishuber and Christian Tismer, with notes by
+Balazs Nagy (BN) and Norbert Bollow (NB).
+
+- You might need to set the mail-gid user to either "qmail", "mailman", or
+ "nofiles" by using the --with-mail-gid configure option.
+
+ BN: it highly depends on your mail storing policy. For example if
+ you use the simple ~alias/.qmail-* files, you can use `id -g alias`.
+ But if you use /var/qmail/users, the specified mail gid can be
+ used.
+
+ If you are going to be directing virtual domains directly to the
+ "mailman" user (using "virtualdomains" on a list-only domain, for
+ example), you will have to use --with-mail-gid=<gid of mailman user's group>
+ This is incompatible with having list aliases in ~alias, unless that alias
+ simply forwards to "mailman-listname*".
+
+- If there is a user `mailman' on your system, the alias
+ `mailman-owner' will work only in ~mailman. You have to do a "touch
+ .qmail-owner" in ~mailman directory to create this alias.
+
+ NB: An alternative, IMHO better solution is to `chown root
+ ~mailman', that will stop qmail from considering `mailman' to be a
+ user to whom mail can be delivered. (See `man 8 qmail-getpw'.)
+
+- In a related issue, if you have any users with the same name as one
+ of your mailing lists, you will have problems if list names contain
+ `-' in them. Putting .qmail redirections into the user's home
+ directory doesn't work because the Mailman wrappers will not get
+ spawned with the proper GID. The solution is to put the following
+ lines in the /var/qmail/users/assign file:
+
+ +zope-:alias:112:11:/var/qmail/alias:-:zope-:
+ .
+
+ where in this case the listname is e.g. zope-users.
+
+ NB: Alternatively, you could host the lists on a virtual domain, and
+ use the /var/qmail/control/virtualdomains file to put the mailman
+ user in charge of this virtual domain.
+
+- BN: If inbound messages are delivered by another user than mailman,
+ it's necessary to allow it to access ~mailman. Be sure that
+ ~mailman has group writing access and setgid bit is set. Then put
+ the delivering user to mailman group, and you can deny access to
+ ~mailman to others. Be sure that you can do the same with the WWW
+ service.
+
+ By the way the best thing is to make a virtual mail server to handle
+ all of the mail. NB: E.g. make an additional "A" DNS record for the
+ virtual mailserver pointing to your IP address, add the line
+ `lists.kva.hu:mailman' to /var/qmail/control/virtualdomains and a
+ `lists.kva.hu' line to /var/qmail/control/rcpthosts file. Don't
+ forget to HUP the qmail-send after modifying "virtualdomains". Then
+ every mail to lists.kva.hu will arrive to mail.kva.hu's mailman
+ user.
+
+ Then make your aliases:
+ .qmail => mailman@...'s letters
+ .qmail-owner => mailman-owner's letters
+
+
+ For list aliases, you can either create them manually:
+ .qmail-list => posts to the 'list' list
+ .qmail-list-admin => posts to the 'list's owner
+ .qmail-list-request => requests to 'list'
+ etc
+
+ or for automatic list alias handling (when using the lists.kva.hu virtual
+ as above), see "contrib/qmail-to-mailman.py" in the Mailman distribution.
+ Modify the "~mailman/.qmail-default" to include:
+
+ |/path/to/python /path/to/qmail-to-mailman.py
+
+ and new lists will automatically be picked up.
+
+- You have to make sure that the localhost can relay. If you start
+ qmail via inetd and tcpenv, you need some line the following in your
+ /etc/hosts.allow file:
+
+ tcp-env: 127. 10.205.200 : setenv RELAYCLIENT
+
+ where 10.205.200. is your IP address block. If you use tcpserver, then you
+ need something like the following in your /etc/tcp.smtp file:
+
+ 10.205.200.:allow,RELAYCLIENT=""
+ 127.:allow,RELAYCLIENT=""
+
+- BN: Bigger /var/qmail/control/concurrencyremote values work better
+ sending outbound messages, within reason. Unless you know your system
+ can handle it (many if not most cannot) this should not be set to a value
+ greater than 120.
+
+- More information about setting up qmail and relaying can be found in
+ the qmail documentation.
+
+BN: Last but not least, here's a little script to generate aliases to
+your lists (if for some reason you can/will not have them
+automatically picked up using "contrib/qmail-to-mailman.py"):
+
+#!/bin/sh
+if [ $# = 1 ]; then
+ i=$1
+ echo Making links to $i...
+ echo "|preline /home/mailman/mail/mailman post $i" > .qmail-$i
+ echo "|preline /home/mailman/mail/mailman mailowner $i" > .qmail-$i-admin
+ echo "|preline /home/mailman/mail/mailman mailowner $i" > .qmail-$i-owner
+ echo "|preline /home/mailman/mail/mailman mailowner $i" > .qmail-owner-$i
+ echo "|preline /home/mailman/mail/mailman mailcmd $i" > .qmail-$i-request
+fi
+
+
+Local Variables:
+mode: text
+indent-tabs-mode: nil
+End:
diff --git a/README.SENDMAIL b/README.SENDMAIL
new file mode 100644
index 00000000..8b24e38d
--- /dev/null
+++ b/README.SENDMAIL
@@ -0,0 +1,73 @@
+Mailman - The GNU Mailing List Management System
+Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+SECURITY NOTE
+
+ You may be tempted to set the DELIVERY_MODULE configuration
+ variable in mm_cfg.py to `Sendmail' when using the Sendmail MTA.
+ Don't. The Sendmail.py module is misnamed -- it's really a
+ command line based message handoff scheme as opposed to the SMTP
+ scheme used in SMTPDirect (the default). Sendmail.py has known
+ security holes and is provided as a proof-of-concept only. If you
+ are having problems using SMTPDirect.py please fix those instead
+ of using Sendmail.py, or you may open your system up to security
+ exploits.
+
+
+SENDMAIL `smrsh' COMPATIBILITY
+
+ Many newer versions of Sendmail come with a restricted execution
+ utility called "smrsh", which limits the executables that Sendmail
+ will allow to be used as mail filter programs. You need to
+ explicitly allow Mailman's wrapper program to be used with smrsh
+ before it will work. If mail is not getting delivered to
+ Mailman's wrapper program and you're getting an "operating system
+ error" in your mail syslog, this could be your problem.
+
+ One good way of doing this is to:
+
+ - cd into /etc/smrsh (or where ever it happens to reside on
+ your system, such as /var/smrsh or /usr/local/smrsh).
+
+ - create a symbolic link to Mailman's wrapper program
+
+ For example, if you've installed Mailman in the standard location,
+ you can just execute these commands (you might have to do these as
+ root):
+
+ % cd /etc/smrsh
+ % ln -s /usr/local/mailman/mail/mailman mailman
+
+
+INTEGRATING SENDMAIL AND MAILMAN
+
+ David Champion has contributed a recipe for more closely
+ integrating Sendmail and Mailman, such that Sendmail will
+ automatically recognize and deliver to new mailing lists as they
+ are created, without having to manually edit alias tables.
+
+ In the contrib directory, you will find four files
+
+ mm-handler.readme - an explanation of how to set everything up
+ mm-handler - the mail delivery agent (MDA)
+ mailman.mc - a toy configuration file sample
+ virtusertable - a sample for RFC 2142 address exceptions
+
+
+PERFORMANCE NOTES
+
+ One of the surest performance killers for Sendmail users is when
+ Sendmail is configured to synchronously verify the recipient's
+ host via DNS. If it does this for messages posted to it from
+ Mailman, you will get horrible performance. Since Mailman usually
+ connects via localhost (i.e. 127.0.0.1) to the SMTP port of
+ Sendmail, you should be sure to configure Sendmail /not/ to do DNS
+ verification synchronously for localhost connections.
+
+
+
+Local Variables:
+mode: text
+indent-tabs-mode: nil
+End:
diff --git a/README.USERAGENT b/README.USERAGENT
new file mode 100644
index 00000000..497e66df
--- /dev/null
+++ b/README.USERAGENT
@@ -0,0 +1,49 @@
+Mailman - The GNU Mailing List Management System
+Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+
+INTRODUCTION
+
+ Mailman is compliant with RFC 2369, which specifies a number of
+ List-* headers that mailing list management software should add to
+ every outbound email message. These headers are designed to make
+ it easy for mail user agents (MUAs) to assist users in common
+ mailing list tasks, such as getting help or unsubscribing.
+
+ At this time, not all MUAs understand the RFC 2369 headers, and
+ instead of suppressing those List-* headers, they show them to the
+ user. Many list managers report that this can generate a large
+ amount of support requests from their user base.
+
+ In Mailman 2.0, you cannot turn off the List-* headers without
+ hacking the Mailman source. Because these headers are in the
+ long-term benefit of end-users, it is strongly encouraged to leave
+ these headers in and lobby the MUA vendors to support them. In
+ the meantime, you can provide your users with the following
+ information to help them suppress these headers.
+
+
+EUDORA USERS
+
+ Mike Noyes provides the following suggestion:
+
+ You can hide the new list headers. Edit your Eudora.ini file, and
+ add this line under [settings].
+
+ TabooHeaders=List,X-UID,Received,Status,X-UIDL,Message,In-Reply, \
+ X-Priority,Mime-Version,Content,X-Persona,Resent-Message,References, \
+ Return,X400,X-400,Mail-System,Errors-To,X-List,Delivery,Disposition, \
+ X-Juno,Precedence,X-Attachments,X-MSMail,X-MimeOLE,X-Nav
+
+ note: everything other than "List" is the default
+
+ ref. Eudora .ini Settings TabooHeaders
+ http://www.eudora.com/techsupport/ini.html
+
+
+
+Local Variables:
+mode: text
+indent-tabs-mode: nil
+End:
diff --git a/TODO b/TODO
new file mode 100644
index 00000000..9b3e54a7
--- /dev/null
+++ b/TODO
@@ -0,0 +1,174 @@
+Mailman - The GNU Mailing List Management System
+Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+
+The Mailman Wishlist
+(Last Update: $Date: 2002-11-19 06:50:54 +0000 (Tue, 19 Nov 2002) $)
+
+ Here's the wish list for future versions of Mailman. Many new
+ features have been added to Mailman 2.1, so what's left will
+ probably end up in a Mailman 3.0.
+
+ Please also see the Mailman design notes wiki at
+
+ http://www.zope.org/Members/bwarsaw/MailmanDesignNotes/FrontPage
+
+Email Handling
+ - Re-implement the bulk mailer to do DNS lookups and remote MTA
+ delivery directly (optional).
+ - For low-traffic sites, a queued message could trigger a qrunner
+ process. It would work until all mail was delivered, then sleep
+ and exit if no new work arrived.
+ - Strip any addresses of members who have nodupe turned on, from
+ the Cc headers of the list copy of a message.
+ - Separate processing for MIME and plaintext digests. E.g. you
+ might want to filter images out of plaintext but not MIME
+ digests.
+
+Documentation
+ - A detailed feature list
+ - A user's guide
+ - A site-admin's guide
+ - A list-admin's guide
+ - More on-line documentation and UI help
+ - A developer's guide w/ architecture and API information
+ - manpages for the scripts in bin and cron
+ - Integrate Christopher Kolar's documentation
+
+General Web UI
+ - NO DEAD ENDS and every web page is reachable.
+ - All web UI must be configurable so that it more easily
+ integrates into an existing site's design. Probably means using
+ a better template language/system like Zope's Presentation
+ Templates, Quixote, or PHP.
+ - Default UI should add a navigation sidebar to all web pages.
+ - Web pages should never mention disabled features.
+ - Allow a site admin and list admins to categorize lists, so that
+ they can be better organized on the listinfo and admin overview
+ pages.
+
+List Administration
+ - Allow the moderator to edit posts being held for approval (make
+ it evident, either through a header or other means that the
+ message was edited by the moderator).
+ - Allow the admin to disable option settings by users
+ - Allow admins to block nomail settings
+ - Allow admins to control and set individual headers, adding,
+ removing, or overriding those in the original message (sometimes
+ very useful, but could be dangerous!)
+ - New moderation choice: archive but don't send to list.
+ - New moderation choice: annotate and send to author for
+ resubmittal. Or just be able to annotate the message for
+ multiple moderator scenarios.
+ - Better integration with moderated newsgroups (and allow some
+ addresses to bypass even that moderation and be delivered to a
+ secondary channel, like moderators@isc.org).
+ - Allow a list to be marked `disabled' so things like the replybot
+ still works, and the archives are still available, but mail
+ posted to the list is always returned unsent.
+ - Ability to `sideline' some messages in the moderation queue
+ - Hook moderation up to a whitelist a la TMDA. A non-member
+ message gets held in a non-admindb queue, and the sender gets a
+ confirmation message. When they confirm, we moderate the
+ message as normal, but if they don't we assume it's spam (after
+ some period of time) and discard it. The admin should be able
+ to see all these super-quarantined messages with the flip of a
+ button.
+ - Add a moderation option to pass through any message which is a
+ reply to a message previously distributed through the list, even
+ if it comes from a non-member. Treat that non-member as a
+ member for the duration of the thread. Use In-Reply-To,
+ References and Message-ID to match these up.
+ - When a held message is forwarded (for admin editing and approved
+ resend) there should be a way to auto-discard the held message
+ when the approved resend is received.
+ - Have an option to sort the list of members by real name or email
+ address.
+ - Test a message for all hold criteria, record them all instead of
+ just the first match, and do a SpamAssassin like scoring to
+ decide whether the message should get held or not.
+
+List Membership
+ - Have one account per user per site, with multiple email
+ addresses and fallbacks. Allow them to subscribe whichever
+ address they want to whichever list, with different options per
+ subscription.
+ - Allow the user to get BOTH normal and digested delivery (but I
+ still don't understand why someone would want this)
+ - More flexible digests: index digests (subject and authors only,
+ with URLs to retrieve the article)
+ - Timed vacations, allowing a user to postpone or discard email
+ for a certain number of days or weeks.
+ - Keep user-centric stats, such as the date the user was
+ subscribed, the date of their last change to their account, the
+ date they last sent a message through the list. Perhaps also
+ log each message they send through the list.
+
+Site Administration
+ - Allow the site admin to define list styles or themes, and list
+ admins to choose one of the canned styles to apply to their
+ list.
+ - Allow the site admin to send an email message to all the list
+ admins using a mechanism similar to the Urgent: header (possibly
+ by addressing it to mailman@site.dom).
+
+Other Usability Improvments
+ - A better strategy is needed for sub-lists and super-lists,
+ including dealing with the resulting password reminders and
+ authorization to modify the sub & superlists.
+ - Add a limit on the number of posts from any one individual
+ within a period of time (1 post per day, 10 per week, etc).
+ Also, limits on mailbacks, infos, etc.
+
+Mailcmd interface
+ - Provide an email interface to all administrative commands
+ - Allow email unsubs from matching address to unsubscribe,
+ possibly adding an "allow open unsubscribes" option to control
+ this. Also, adding a confirmation with click-thru confirmation
+ to resubscribe.
+ - For email subscribes, keep an audit of where requests are coming
+ from, and send the original request headers in the confirmation
+ message. Helps track down subscribe bombs.
+ - Investigate Majordomo2's email admin capabilities.
+ - Support the `which' command.
+
+Portability & architecture
+ - Use a real transactional database for all information, and allow
+ various bits of information to come from different sources (a
+ relational database, ZODB, LDAP, etc)
+ - Member profiles
+ - Allow lists of the same name in two different virtual domains
+ - Should be able to gather statistics, such as deliveries/day,
+ performance, number of subscribers over time, etc.
+ - Implement something like Roundup's nosy lists, maybe even
+ integrate with Roundup.
+ - Split Mailman into libraries so, e.g. the delivery part could be
+ used by other projects.
+
+Bounce handling
+ - Add more patterns for bounce handling (never ending)
+ - Send mail to people who are being removed without their knowledge
+ (even though they're likely not to get it).
+
+Pipermail + Archiving mechanism
+ - Search engine for archives
+ - Provide downloadable tar.gz's of the html archives
+ - sort by date should go most-recent to oldest
+ - allow list owner to edit archive messages
+ - optional form front-end to public interfaces as a filter to
+ address harvesters.
+ - In general the whole Pipermail subsystem needs a good rewrite.
+ - Write an API between Mailman and the archiver so that message
+ footers can contain the URL to the archived message.
+
+Code cleanup
+ - Turn all remaining string exceptions into class exceptions
+ - Unit and system test suite! (ongoing)
+
+
+
+Local Variables:
+mode: indented-text
+indent-tabs-mode: nil
+End:
diff --git a/UPGRADING b/UPGRADING
new file mode 100644
index 00000000..5214a85c
--- /dev/null
+++ b/UPGRADING
@@ -0,0 +1,373 @@
+Mailman - The GNU Mailing List Management System
+Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+
+A NOTE ABOUT MODERATION
+
+ When you upgrade from Mailman 2.0.x to Mailman 2.1, you should
+ double check that your moderation and privacy options are still
+ set the way you want them. The Mailman options dealing with
+ moderation and privacy have changed significantly, to make them
+ easier to understand and control. Ever effort was taken to
+ translate the old configuration variables to the new configuration
+ variables, but because the old semantics were so complex, it is
+ possible your settings may not have been correctly translated.
+
+ Check especially the values for (in Privacy -> Sender Filters)
+ default_member_moderation, generic_nonmember_action, and
+ accept_these_nonmembers. Check also the moderation flag on member
+ accounts in the Membership Management screen.
+
+
+UPGRADING FROM PREVIOUS VERSIONS
+
+ For the most part, upgrading Mailman is as easy as just installing
+ the latest version over the existing version. However, there are
+ some changes that need to be taken care of manually.
+
+ What you need to do depends on the version you are using and the
+ version you are upgrading to. In all cases, you should first turn
+ off your mail and web access to your Mailman installation. You're
+ essentially upgrading a database, and it's usually a good idea to
+ make sure the database cannot be modified in the middle of the
+ upgrade.
+
+ My recommendations are
+
+ - Turn off your incoming mail daemon. Most remote smtp servers
+ will simply queue up messages destined for your domain if port
+ 25 is shut off.
+
+ - Temporarily disable web access to Mailman. You can do this by
+ either turning off your web server temporarily, or by setting up
+ a temporary redirect to a "service unavailable" page for the
+ Mailman URLs. Refer to your web server documentation for
+ details.
+
+ Mailman will NOT upgrade the template files for existing lists.
+ Chuq Von Rospach gives some useful advice in this message to the
+ users mailing list:
+
+ http://mail.python.org/pipermail/mailman-users/2000-September/006826.html
+
+ [Actually, the upgrade to MM2.1a2 /will/ shuffle template files,
+ deleting any that it detects are unchanged from the original
+ defaults (calculated via md5 checksums).]
+
+
+UPGRADING FROM 2.0.x to 2.1
+
+ In Mailman 2.1, the qrunner subsystem has been completely
+ rewritten. You no longer start qrunner from cron! Instead, there
+ is a bin/mailmanctl script which is used to start, stop, and
+ restart mail delivery. This script is appropriate to use as a
+ Unix init script. Be sure to update your crontab with the new
+ cron/crontab.in file.
+
+ NOTE: It is very important that if you are upgrading from a
+ pre-MM2.1alpha2 system to a post-MM2.1alpha2 system that you let
+ the old qrunner process clear any and all messages sitting in the
+ qfiles/ directory *BEFORE* you upgrade. Otherwise after the
+ upgrade, those messages will not get delivered, and I'm not
+ exactly sure yet how to upgrade those pending messages.
+
+ NOTE: When upgrading to Mailman 2.1beta1, you will need to
+ regenerate your aliases files. There have been many changes to
+ the alias names, the programs they map to, and the name of the
+ wrapper script. See README.<yourMTA> for details of making
+ Mailman work with your mail server.
+
+ To regenerate your aliases, use the bin/genaliases script.
+
+ Mailman 2.1 introduces multilingual (a.k.a. internationalization
+ or i18n) support. Previously only one language per list was
+ supported, and it was assumed that this language would be English.
+ The upgrade script for Mailman 2.1 creates a subdirectory `en'
+ inside each lists/<listname> directory. It then copies all the
+ .txt and .html files from lists/<listname> into
+ lists/<listname>/en.
+
+ If you have modified those templates to contain non-English text,
+ you will have to manually rename the en subdirectories to the
+ language code for the language of your templates. Mailman's
+ upgrade script should handle cleaning up any templates which are
+ duplicates of the defaults, but you'll want to double check this
+ manually.
+
+ If you are running a MM2.0.x system with non-standard patches
+ applied, you might have some other problems with your upgrade.
+ Here are some instances we know about:
+
+ - If you've applied patch #413752 (coerce to plaintext), then your
+ upgraded will not go smoothly. Take a look at patch #651406 for
+ an unofficial solution.
+
+ http://sf.net/tracker/?group_id=103&atid=300103&func=detail&aid=413752
+ http://sf.net/tracker/?group_id=103&atid=300103&func=detail&aid=651406
+
+
+UPGRADING INDIVIDUAL LISTS
+
+ If you're nervous about upgrading all of your lists to 2.1 in one
+ go, you can move them and upgrade them one at a time. Start by
+ doing a clean Mailman 2.1 installation in an empty directory --
+ call it $MM21. (I'll assume your Mailman 2.0 installation is in
+ $MM20.)
+
+ Doing this means you'll have co-habiting Mailman 2.0 and 2.1
+ installations for a while, until you have moved all of your lists
+ to Mailman 2.1. Depending on your MTA and web server, this could
+ be transparent and painless, or it could be an ongoing headache.
+
+ If you use Apache with mod_rewrite, then it's fairly
+ straightforward to set things up so that both Mailman 2.0 and 2.1
+ inhabit the /mailman and /pipermail URL-space of your server; this
+ makes the transition almost transparent to list admins and
+ subscribers. See below for details.
+
+ Now, for each list that you want to move, you'll have to
+
+ * Shut down your MTA.
+
+ If you have a lot of outgoing list traffic, you might need to
+ leave your MTA up but only let it accept connections from
+ 127.0.0.1 (localhost), so Mailman 2.0 can flush its queue.
+ How to do this is MTA-dependent; for Exim, you can set
+ "local_interfaces = 127.0.0.1" and "kill -HUP" the Exim
+ daemon.
+
+ * Shut down your web server. For a more professional look, or
+ if you want to allow people to keep accessing the rest of your
+ web site, you could make your web server respond to all
+ /mailman/ URLs with a "temporarily unavailable" message.
+
+ How to do this is web server-dependent; with Apache and
+ mod_rewrite, this does the trick:
+
+ RewriteRule ^/mailman/.* /var/www/unavailable.html [L]
+
+ (Of course, you'll have to supply your own
+ /var/www/unavailable.html.)
+
+ * Force Mailman 2.0 to process its queue:
+
+ python -S $MM20/cron/qrunner
+
+ (This is only necessary if there are any files in $MM20/qfiles;
+ if you need to do this, make sure you left your MTA listening to
+ 127.0.0.1.)
+
+ * Move the list:
+
+ cd $MM20
+ mv -i lists/foo-list $MM21/lists
+ mv -i archives/private/foo-list $MM21/archives/private
+ mv -i archives/private/foo-list.mbox $MM21/archives/private
+ rm archives/public/foo-list
+ rm archives/public/foo-list.mbox
+ cd $MM21
+ bin/withlist -l -r fix_url mylist
+
+ (The fix_url step will not be necessary if your Mailman 2.0
+ and 2.1 installations will be sharing the same URL-space.)
+
+ * Edit your web server config so the list's URLs continue to
+ work. There are two possible approaches here; the simpler way
+ is to setup a new slice of URL-space that will be used by your
+ Mailman 2.1 installation, eg. /mailman-21:
+ With Apache and mod_rewrite:
+
+ RewriteRule /mailman/(.*)/(foo-list.*) /mailman-21/$1/$2 [R=temp]
+
+ (The [R=temp] assumes that "/mailman-21/" is a temporary URL,
+ and you'll move all your lists to "/mailman/" when the
+ transition to Mailman 2.1 is complete.)
+
+ If you don't want to expose ugly temporary URLs like
+ "/mailman-21" to the world, it's only slightly more work to make
+ Mailman 2.0 and 2.1 share the same slices of URL-space. Here's
+ how to do it with Apache and mod_rewrite:
+
+ RewriteRule ^/mailman/(.*)/(foo-list.*) \
+ $MM21/cgi-bin/$1/$2 \
+ [T=application/x-httpd-cgi]
+
+ Not only is this more aesthetically pleasing, it's faster -- no
+ redirects.
+
+ In either case, you'll want to rewrite the list's archive URLs
+ to Mailman 2.1's archive:
+
+ RewriteRule ^/pipermail/(foo-list.*) $MM21/archives/public/$1
+
+ * Restart your web server (or disable the "temporarily
+ unavailable" stuff).
+
+ * Restart your MTA (or make it listen to more than just
+ 127.0.0.1).
+
+
+UPGRADING FROM 2.0 to 2.0.x (where x >= 1)
+
+ Nothing much more than running "make install" (after upgrading)
+ should be necessary.
+
+
+UPGRADING FROM 2.0 beta to 2.0 final
+
+ You MUST re-run configure; running config.status is not sufficient
+ due to some recent changes in the autoconf scripts. You can do a
+ head of config.status if you don't remember the options you
+ originally ran configure with.
+
+ The cron jobs for Mailman 2.0 final have changed considerably,
+ including the frequency with which they run. You should reload
+ misc/crontab.in for the `mailman' user to get the right settings.
+ See the INSTALL file for details.
+
+ FAILURE TO DO THIS WILL RESULT IN A LESS THAN OPTIMALLY FUNCTIONAL
+ MAILMAN INSTALLATION.
+
+
+UPGRADING FROM 1.x to 2.x
+
+ In addition to the instructions above, I highly recommend that you
+ make sure your Mailman queue is cleared /before/ upgrading.
+
+ Mailman version 1.x had a cron script called run_queue which was
+ part of its bulk mailer. With Mailman 2.x there is no default
+ bulk mailer (it lets the MTA handle this), and it is currently
+ unknown what the effects of upgrading are on the run_queue script,
+ but I'll bet it's not good. :)
+
+ The way to make sure that your Mailman queue is empty is to look
+ in your $prefix/data directory. If you see any files that start
+ with "mm_q." you've still got messages waiting on the queue. You
+ can run $prefix/cron/run_queue by hand until the queue is cleared.
+ Multiple invocations of this script won't help though; they lock
+ each other out. Also, be warned that clearing the queue can take
+ a while and may cause a large load on your system (two reasons why
+ all this stuff has been redesigned in 2.x :).
+
+ You do not need to run "make update" if you are upgrading from
+ version 1.0 or 1.1 to version 2.0, since this is now run
+ automatically when you do a "make install". However you should
+ modify your crontab entries to execute cron/qrunner instead of
+ cron/run_queue. You can also safely remove the file
+ $prefix/cron/run_queue.
+
+ If you are upgrading from a pre-1.0 beta, you need to follow the
+ instructions below.
+
+
+UPGRADING FROM PRE-1.0 to 2.x
+
+ You need to do a few extra things to make sure that the file
+ system layout for the early 1.0 betas is upgraded to the 1.x
+ configuration. There are two ways to do this.
+
+ First, from the source directory, after you've done a "make
+ install" you can run "make update". "make update" creates a file
+ named "update.log" in the top level of the source distribution.
+ If the script that updates the Mailman filesystem encounters
+ something that is not resolvable, it will log info about this to
+ "update.log". This is worth checking after the upgrade completes.
+
+ You can also just change to the installation directory (i.e. $prefix)
+ and run bin/update. This is the same as above except that the
+ update.log file is not generated.
+
+ Check your crontab entry. Remove any runs of obsolete scripts, in
+ particular cron/upvolumes_yearly, cron/upvolumes_monthly, or
+ cron/archive.
+
+
+WHAT "MAKE UPDATE" DOES
+
+ Below is an annotated listing of the things that "make update"
+ does. Hopefully, this will help resolve any problems you are
+ having.
+
+ Note that it can't hurt to run "make update" each time you
+ upgrade, but if you're running version 1.0 or newer, it won't help
+ much either!
+
+ - To upgrade to 1.0b10, you will need to copy
+ templates/options.html to lists/<listname>/options.html for each
+ mailing list you have. However, if you have edited the
+ options.html file, say from the Web interface, you will have to
+ merge these changes in manually.
+
+ - The upgrade to 1.0b7 included the removal of
+ Mailman/smtplib.py{,c} since Mailman now uses the default Python
+ 1.5.2 version of smtplib.
+
+ - Archiving files are moved around as part of integrating
+ Pipermail into Mailman, as of 1.0b6. In particular,
+
+ 1) if a list has only a private mbox archive
+ $prefix/archives/private/<listname> is moved to
+ $prefix/archives/private/<listname>.mbox/<listname>
+
+ 2) if a list has only a public mbox archive
+ $prefix/archives/public/<listname> is moved to
+ $prefix/archives/private/<listname>.mbox/<listname>
+
+ and a symlink is made that points
+ $prefix/archives/public/<listname>.mbox to
+ $prefix/archives/private/<listname>.mbox/<listname>
+
+ 3) if a list has both private and public mbox archives,
+ make update picks one of the above 2 configurations based on
+ whether or not the list currently is archived publicly. It then
+ renames the other mbox to mbox.preb6.
+
+ 4) if a list used recent CVS sources, where archives were placed in
+ $prefix/public_html/archives, then these are moved to
+ $prefix/archives/private/<listname> and a symlink is made from
+ $prefix/archives/public/<listname> to that spot if the list's
+ archives are public. Also, a permissions-related security
+ problem is removed.
+
+ To integrate mbox archives of old lists, log in as user `mailman'
+ and run $prefix/bin/arch <listname> <path-to-mbox-archive>.
+
+ Also, by default, beta6 does both mbox and html based archiving,
+ but you can configure Mailman to do one, both, or neither.
+ Please see $prefix/Mailman/Defaults.py for details.
+
+ There was a short period of time when the CVS sources archiving
+ code was not organized into its own package. The pickled
+ articles in the archives that were placed into archives during
+ this period stored the path to the module HyperArch, but that
+ module has moved. You can quick fix this by running
+
+ ln -s $prefix/Mailman/Archiver/HyperArch.py \
+ $prefix/Mailman/HyperArch.py
+
+ - If upgrading from version 1.0b4 or earlier, "make update" moves
+ list-specific templates. For each list,
+ $prefix/templates/<listname>/* is moved to $prefix/lists/<listname>.
+ Please reference the generic templates in $prefix/templates to see
+ if any variables have changed (There shouldn't be many, only
+ options.html was updated from b5 to b6).
+
+ For really old versions of Mailman, you may not even have
+ <listname> subdirectories in $prefix/templates! In this case
+ you will need to manually copy some files into your new list
+ directories. Here's an example shell command that will do the
+ trick:
+
+ cp templates/{archives,handle_opts,listinfo,roster,subscribe}.html lists/<listname>
+
+ - Some modules that existed in previous versions, but that have
+ been replaced with newer (differently named) modules, are
+ removed.
+
+
+
+Local Variables:
+mode: indented-text
+indent-tabs-mode: nil
+End:
diff --git a/admin/bin/Release.py b/admin/bin/Release.py
new file mode 100755
index 00000000..227cdb5a
--- /dev/null
+++ b/admin/bin/Release.py
@@ -0,0 +1,229 @@
+#! /usr/bin/env python
+#
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Manage releases of Mailman.
+
+Usage: %(program)s [options] tagname
+
+Where `options' are:
+
+ --tag
+ -t
+ Tag all release files with tagname.
+
+ --TAG
+ -T
+ Like --tag, but relocates any existing tag. See `cvs tag -F'. Only
+ one of --tag or --TAG can be given on the command line.
+
+ --package
+ -p
+ create the distribution package
+
+ --bump
+ -b
+ Bump the revision number in key files to tagname. This is done by
+ textual substitution.
+
+ --help
+ -h
+ Print this help message.
+
+ tagname is used in the various commands above. It should essentially be
+ the version number for the release, and is required.
+"""
+
+import sys
+import os
+import errno
+import re
+import time
+import tempfile
+import getopt
+
+program = sys.argv[0]
+
+def usage(code, msg=''):
+ print >> sys.stderr, __doc__ % globals()
+ if msg:
+ print >> sys.stderr, msg
+ sys.exit(code)
+
+
+
+_releasedir = None
+def releasedir(tagname=None):
+ global _releasedir
+ if not _releasedir:
+ tmpdir = tempfile.gettempdir()
+ _releasedir = os.path.join(tmpdir, 'mailman-' + tagname)
+ return _releasedir
+
+
+
+# CVS related commands
+
+def tag2rel(tagname):
+ return '"Release_%s"' % tagname.replace('.', '_')
+
+def cvsdo(cvscmd):
+ # I don't know why -d is suddenly required -- $CVSROOT used to work just
+ # fine but now (RH7.3) doesn't at all.
+ cmd = 'cvs -d %s %s' % (os.environ['CVSROOT'], cvscmd)
+ os.system(cmd)
+
+def tag_release(tagname, retag):
+ # Convert dots in tagname to underscores
+ relname = tag2rel(tagname)
+ print 'Tagging release with', relname, '...'
+ option = ''
+ if retag:
+ option = '-F'
+ cvsdo('tag %s %s' % (option, relname))
+
+def checkout(tagname, tail):
+ print 'checking out...',
+ relname = tag2rel(tagname)
+ cvsdo('export -k kv -r %s -d %s mailman' % (relname, tail))
+ os.rename('%s/doc' % tail, 'mailman-doc')
+
+
+
+def make_pkg(tagname):
+ dir = releasedir(tagname)
+ print 'Exporting release dir', dir, '...'
+ head, tail = os.path.split(dir)
+ # this can't be done from a working directory
+ curdir = os.getcwd()
+ try:
+ os.chdir(head)
+ checkout(tagname, tail)
+ print 'making tarball...'
+ relname = 'mailman-' + tagname
+ os.system('tar cvzf %s --exclude .cvsignore %s' %
+ (relname + '.tgz', relname))
+ os.system('tar cvzf mailman-doc.tgz --exclude .cvsignore mailman-doc')
+ finally:
+ os.chdir(curdir)
+
+
+VERSIONMARK = '<!-VERSION--->'
+DATEMARK = '<!-DATE--->'
+
+
+def do_bump(newvers):
+ print 'doing bump...',
+ # hack some files
+ for file in ('index.ht', 'version.ht'):
+ print '%s...' % file,
+ fp = open(os.path.join('admin', 'www', file), 'r+')
+ text = fp.read()
+ parts = text.split(VERSIONMARK)
+ parts[1] = newvers
+ text = VERSIONMARK.join(parts)
+ parts = text.split(DATEMARK)
+ parts[1] = time.strftime('%d-%b-%Y', time.localtime(time.time()))
+ text = DATEMARK.join(parts)
+ fp.seek(0)
+ fp.write(text)
+ fp.close()
+ # hack the configure.in file
+ print 'Version.py...',
+ infp = open('Mailman/Version.py')
+ outfp = open('Mailman/Version.py.new', 'w')
+ matched = 0
+ cre = re.compile(r'^VERSION(?P<ws>[ \t]*)=')
+ while 1:
+ line = infp.readline()
+ if not line:
+ if not matched:
+ print 'Error! VERSION line not found'
+ break
+ mo = cre.search(line)
+ if matched or not mo:
+ outfp.write(line)
+ else:
+ outfp.write('VERSION%s= "%s"\n' % (mo.group('ws'), newvers))
+ matched = 1
+ infp.close()
+ outfp.close()
+ os.rename('Mailman/Version.py.new', 'Mailman/Version.py')
+
+
+
+def main():
+ try:
+ opts, args = getopt.getopt(sys.argv[1:], 'btTph',
+ ['bump', 'tag', 'TAG', 'package', 'help'])
+ except getopt.error, msg:
+ usage(1, msg)
+
+ # required minor rev number
+ if len(args) <> 1:
+ usage(1, 'tagname argument is required')
+
+ tagname = args[0]
+
+ # We need a $CVSROOT
+ if not os.environ.get('CVSROOT'):
+ try:
+ fp = open('CVS/Root')
+ os.environ['CVSROOT'] = fp.read().strip()
+ fp.close()
+ except IOError, e:
+ if e.errno <> errno.ENOENT: raise
+ usage(1, 'CVSROOT is not set and could not be guessed')
+ print 'Using CVSROOT:', os.environ['CVSROOT']
+
+ # default options
+ tag = 0
+ retag = 0
+ package = 0
+ bump = 0
+
+ for opt, arg in opts:
+ if opt in ('-h', '--help'):
+ usage(0)
+ elif opt in ('-t', '--tag'):
+ tag = 1
+ elif opt in ('-T', '--TAG'):
+ tag = 1
+ retag = 1
+ elif opt in ('-p', '--package'):
+ package = 1
+ elif opt in ('-b', '--bump'):
+ bump = 1
+
+ # very important!!!
+ omask = os.umask(0)
+ try:
+ if tag:
+ tag_release(tagname, retag)
+
+ if package:
+ make_pkg(tagname)
+
+ if bump:
+ do_bump(tagname)
+ finally:
+ os.umask(omask)
+
+
+
+if __name__ == '__main__':
+ main()
diff --git a/admin/bin/faq2ht.py b/admin/bin/faq2ht.py
new file mode 100755
index 00000000..29db9ea7
--- /dev/null
+++ b/admin/bin/faq2ht.py
@@ -0,0 +1,102 @@
+#! /usr/bin/env python
+
+"""Convert the plain text FAQ file to its .ht template.
+"""
+
+import sys
+import os
+import re
+
+
+
+def main():
+ faqfile = sys.argv[1]
+ fp = open(faqfile)
+ lines = fp.readlines()
+ fp.close()
+
+ outfile = sys.argv[2]
+ if outfile == '-':
+ closep = 0
+ out = sys.stdout
+ else:
+ closep = 1
+ out = open(outfile, 'w')
+
+ # skip over cruft in FAQ file
+ lineno = 0
+ while not lines[lineno].startswith('FREQUENTLY'):
+ lineno += 1
+ lineno += 1
+
+ # skip blanks
+ while not lines[lineno].strip():
+ lineno += 1
+
+ # first print out standard .ht boilerplate
+ print >> out, '''\
+Title: Mailman Frequently Asked Questions
+
+See also the <a href="http://www.python.org/cgi-bin/faqw-mm.py">Mailman
+FAQ Wizard</a> for more information.
+
+ <h3>Mailman Frequently Asked Questions</h3>
+'''
+ first = 1
+ question = []
+ answer = []
+ faq = []
+ while 1:
+ line = lines[lineno][:-1]
+
+ if line.startswith('Q.'):
+ inquestion = 1
+ if not first:
+ faq.append((question, answer))
+ question = []
+ answer = []
+ else:
+ first = 0
+ elif line.startswith('A.'):
+ inquestion = 0
+ elif line.startswith('\f'):
+ break
+
+ if inquestion:
+ question.append(line)
+ else:
+ # watch for lists
+ if line.lstrip().startswith('*'):
+ answer.append('<li>')
+ line = line.replace('*', '', 1)
+ # substitute <...>
+ line = re.sub(r'<(?P<var>[^>]+)>',
+ '<em>\g<var></em>',
+ line)
+ # make links active
+ line = re.sub(r'(?P<url>http://\S+)',
+ '<a href="\g<url>">\g<url></a>',
+ line)
+ answer.append(line)
+
+ lineno += 1
+ faq.append((question, answer))
+
+ for question, answer in faq:
+ print >> out, '<b>',
+ for line in question:
+ print >> out, line
+ print >> out, '</b><br>',
+ for line in answer:
+ if not line:
+ print >> out, '<p>',
+ else:
+ print >> out, line
+
+ if closep:
+ out.close()
+
+
+
+if __name__ == '__main__':
+ main()
diff --git a/admin/bin/mm2do b/admin/bin/mm2do
new file mode 100755
index 00000000..661a25f4
--- /dev/null
+++ b/admin/bin/mm2do
@@ -0,0 +1,76 @@
+#! /usr/bin/env python
+#
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Generate the todo.ht file from the plain-text TODO file."""
+
+import sys
+
+infp = open(sys.argv[1])
+outfp = open(sys.argv[2], 'w')
+
+SPACE = ' '
+
+print >> outfp, 'Title: The Mailman Wishlist\n'
+
+def dumpsection(header, items, hasitems):
+ # We're looking at a header
+ if header:
+ # output the previous section
+ print >> outfp, '<h3>', header, '</h3>'
+ if hasitems:
+ print >> outfp, '<ul>'
+ for item in items:
+ if item:
+ print >> outfp, ' <li>', SPACE.join(item)
+ print >> outfp, '</ul>'
+ else:
+ for item in items:
+ print >> outfp, SPACE.join(item), '<p>'
+
+
+
+header = ''
+items = [['']]
+hasitems = False
+inpreamble = True
+while True:
+ line = infp.readline()
+ if not line or line[0] == '\f':
+ break
+ # Skip the legalese preamble
+ if inpreamble:
+ if line.strip():
+ continue
+ else:
+ inpreamble = False
+ if not line[0].isspace():
+ dumpsection(header, items, hasitems)
+ header = line
+ items = [[]]
+ continue
+ # find out what the first non-ws character on the line is
+ line = line.lstrip()
+ if line and line[0] == '-':
+ items.append([line[2:-1]])
+ hasitems = True
+ else:
+ if not line:
+ continue
+ items[-1].append(line)
+
+dumpsection(header, items, hasitems)
diff --git a/admin/www/MMGenerator.py b/admin/www/MMGenerator.py
new file mode 100644
index 00000000..df632984
--- /dev/null
+++ b/admin/www/MMGenerator.py
@@ -0,0 +1,110 @@
+"""Generator for the Mailman on-line documentation.
+
+Requires ht2html.py, available from http://ht2html.sourceforge.net
+"""
+
+import os
+import time
+
+from Skeleton import Skeleton
+from Sidebar import Sidebar, BLANKCELL
+from Banner import Banner
+from HTParser import HTParser
+from LinkFixer import LinkFixer
+
+
+
+sitelinks = [
+ # Row 1
+ ('%(rootdir)s/index.html', 'Home'),
+ ('%(rootdir)s/docs.html', 'Documentation'),
+ ('%(rootdir)s/lists.html', 'Mailing lists'),
+ ('%(rootdir)s/help.html', 'Help'),
+ ('%(rootdir)s/download.html', 'Download'),
+ ('%(rootdir)s/devs.html', 'Developers'),
+ ]
+
+
+
+class MMGenerator(Skeleton, Sidebar, Banner):
+ def __init__(self, file, rootdir, relthis):
+ self.__body = None
+ root, ext = os.path.splitext(file)
+ html = root + '.html'
+ p = self.__parser = HTParser(file, 'mailman-users@python.org')
+ f = self.__linkfixer = LinkFixer(html, rootdir, relthis)
+ p.process_sidebar()
+ p.sidebar.append(BLANKCELL)
+ # massage our links
+ self.__d = {'rootdir': rootdir}
+ self.__linkfixer.massage(p.sidebar, self.__d)
+ # tweak
+ p.sidebar.append((None,
+ '''<a href="http://www.python.org/"><img border=0
+ src="%(rootdir)s/images/PythonPoweredSmall.png"
+ ></a>&nbsp;<a href="http://sourceforge.net"><img
+ src="http://sourceforge.net/sflogo.php?group_id=103"
+ width="88" height="31" border="0"
+ alt="SourceForge Logo"></a>'''
+ % self.__d))
+ p.sidebar.append(BLANKCELL)
+ thisyear = time.localtime()[0]
+ copyright = self.__parser.get('copyright', '1998-%s' % thisyear)
+ p.sidebar.append((None, '&copy; ' + copyright + """
+Free Software Foundation, Inc. Verbatim copying and distribution of this
+entire article is permitted in any medium, provided this notice is preserved.
+"""))
+ Sidebar.__init__(self, p.sidebar)
+ #
+ # fix up our site links, no relthis because the site links are
+ # relative to the root of my web pages
+ #
+ sitelink_fixer = LinkFixer(f.myurl(), rootdir)
+ sitelink_fixer.massage(sitelinks, self.__d, aboves=1)
+ Banner.__init__(self, sitelinks, cols=3)
+ # kludge!
+## for i in range(len(p.sidebar)-1, -1, -1):
+## if p.sidebar[i] == 'Email Us':
+## p.sidebar[i] = 'Email me'
+## break
+
+ def get_corner(self):
+ rootdir = self.__linkfixer.rootdir()
+ return '''
+<center>
+ <a href="%(rootdir)s/index.html">
+ <img border=0 src="%(rootdir)s/images/logo-70.jpg"></a></center>''' \
+ % self.__d
+
+ def get_corner_bgcolor(self):
+ return 'white'
+
+ def get_banner(self):
+ return Banner.get_banner(self)
+
+ def get_title(self):
+ return self.__parser.get('title')
+
+ def get_sidebar(self):
+ return Sidebar.get_sidebar(self)
+
+ def get_banner_attributes(self):
+ return 'CELLSPACING=0 CELLPADDING=0'
+
+ def get_body(self):
+ if self.__body is None:
+ self.__body = self.__parser.fp.read()
+ return self.__body
+
+ def get_lightshade(self):
+ """Return lightest of 3 color scheme shade."""
+ # The Mailman logo's foreground is approximately #da7074
+ #return '#99997c'
+ #return '#a39c82'
+ #return '#caa08f'
+ return '#eecfa1'
+
+ def get_darkshade(self):
+ """Return darkest of 3 color scheme shade."""
+ #return '#545454'
+ return '#36648b'
diff --git a/admin/www/Makefile b/admin/www/Makefile
new file mode 100644
index 00000000..23e5eeff
--- /dev/null
+++ b/admin/www/Makefile
@@ -0,0 +1,28 @@
+HT2HTML = $(HOME)/projects/ht2html/ht2html.py
+
+HTSTYLE = MMGenerator
+HTALLFLAGS = -f -s $(HTSTYLE)
+HTROOT = .
+HTFLAGS = $(HTALLFLAGS) -r $(HTROOT)
+HTRELDIR = .
+
+SOURCES = $(shell echo *.ht)
+EXTRA_TARGETS = faq.html todo.html
+TARGETS = $(filter-out *.html,$(SOURCES:%.ht=%.html)) $(EXTRA_TARGETS)
+GENERATED_HTML= $(SOURCES:.ht=.html)
+
+.SUFFIXES: .ht .html
+.ht.html:
+ $(HT2HTML) $(HTFLAGS) $(HTRELDIR)/$<
+
+all: $(TARGETS)
+
+faq.ht: ../../FAQ
+ ../bin/faq2ht.py $< $@
+
+todo.ht: ../../TODO
+ ../bin/mm2do $< $@
+
+clean:
+ -rm $(GENERATED_HTML)
+ -rm faq.ht todo.ht
diff --git a/admin/www/admins.ht b/admin/www/admins.ht
new file mode 100644
index 00000000..b227a8c2
--- /dev/null
+++ b/admin/www/admins.ht
@@ -0,0 +1,8 @@
+Title: List Manager Documentation
+Links: doco-links.h
+
+<h3>List Manager Documentation</h3>
+
+<p><a href="http://staff.imsa.edu/~ckolar">Chris Kolar</a> has made
+available <a href="http://staff.imsa.edu/~ckolar/mailman/">list
+manager documentation</a> for Mailman.
diff --git a/admin/www/admins.html b/admin/www/admins.html
new file mode 100644
index 00000000..520ea223
--- /dev/null
+++ b/admin/www/admins.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<!-- THIS PAGE IS AUTOMATICALLY GENERATED. DO NOT EDIT. -->
+<!-- Thu Dec 26 22:30:21 2002 -->
+<!-- USING HT2HTML 2.0 -->
+<!-- SEE http://ht2html.sf.net -->
+<!-- User-specified headers:
+Title: List Manager Documentation
+
+-->
+
+<head>
+<title>List Manager Documentation</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
+<meta name="generator" content="HT2HTML/2.0">
+<style type="text/css">
+body { margin: 0px; }
+</style>
+</head>
+<body bgcolor="#ffffff" text="#000000"
+ marginwidth="0" marginheight="0"
+ link="#0000bb" vlink="#551a8b"
+ alink="#ff0000">
+<!-- start of page table -->
+<table width="100%" border="0" cellspacing="0" cellpadding="0">
+<!-- start of banner row -->
+<tr>
+<!-- start of corner cells -->
+<td width="150" valign="middle" bgcolor="white" class="corner">
+
+<center>
+ <a href="./index.html">
+ <img border=0 src="./images/logo-70.jpg"></a></center> </td>
+<td width="15" bgcolor="#eecfa1">&nbsp;&nbsp;</td><!--spacer-->
+<!-- end of corner cells -->
+<!-- start of banner -->
+<td width="90%" bgcolor="#eecfa1" class="banner">
+<!-- start of site links table -->
+<table width="100%" border="0"
+CELLSPACING=0 CELLPADDING=0
+ bgcolor="#ffffff">
+<tr>
+ <td bgcolor="#eecfa1">
+<a href="./index.html">Home</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./docs.html">Documentation</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./lists.html">Mailing lists</a>
+ </td>
+</tr><tr>
+ <td bgcolor="#eecfa1">
+<a href="./help.html">Help</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./download.html">Download</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./devs.html">Developers</a>
+ </td>
+</tr>
+</table><!-- end of site links table -->
+
+</td><!-- end of banner -->
+</tr><!-- end of banner row -->
+<tr><!-- start of sidebar/body row -->
+<!-- start of sidebar cells -->
+<td width="150" valign="top" bgcolor="#eecfa1" class="sidebar">
+<!-- start of sidebar table -->
+<table width="100%" border="0" cellspacing="0" cellpadding="3"
+ bgcolor="#ffffff">
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Documentation
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="docs.html">Overview</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="users.html">Users</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<b>List Managers</b>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="site.html">Site Administrators</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="i18n.html">Translators</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">&nbsp;
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Email Us
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="mailto:mailman-users@python.org">mailman-users@python.org</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&nbsp;
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="http://www.python.org/"><img border=0
+ src="./images/PythonPoweredSmall.png"
+ ></a>&nbsp;<a href="http://sourceforge.net"><img
+ src="http://sourceforge.net/sflogo.php?group_id=103"
+ width="88" height="31" border="0"
+ alt="SourceForge Logo"></a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&nbsp;
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&copy; 1998-2002
+Free Software Foundation, Inc. Verbatim copying and distribution of this
+entire article is permitted in any medium, provided this notice is preserved.
+
+</td></tr>
+</table><!-- end of sidebar table -->
+
+</td>
+<td width="15">&nbsp;&nbsp;</td><!--spacer-->
+<!-- end of sidebar cell -->
+<!-- start of body cell -->
+<td valign="top" width="90%" class="body"><br>
+<h3>List Manager Documentation</h3>
+
+<p><a href="http://staff.imsa.edu/~ckolar">Chris Kolar</a> has made
+available <a href="http://staff.imsa.edu/~ckolar/mailman/">list
+manager documentation</a> for Mailman.
+
+</td><!-- end of body cell -->
+</tr><!-- end of sidebar/body row -->
+</table><!-- end of page table -->
+</body></html>
diff --git a/admin/www/bugs.ht b/admin/www/bugs.ht
new file mode 100644
index 00000000..b39ecd5d
--- /dev/null
+++ b/admin/www/bugs.ht
@@ -0,0 +1,25 @@
+Title: Bugs and Patches
+Other-links:
+ <h3>Exits</h3>
+ <li><a href="http://sourceforge.net/bugs/?group_id=103">Bug Tracker</a>
+ <li><a href="http://sourceforge.net/patch/?group_id=103">Patch Manager</a>
+ <li><a href="http://sourceforge.net/projects/mailman">Mailman Project</a>
+
+<h3>Bugs and Patches</h3>
+
+<p>Mailman is being <a
+href="http://sourceforge.net/projects/mailman">developed on
+SourceForge</a>. Please use the SourceForge <a
+href="http://sourceforge.net/bugs/?group_id=103">bug tracker</a> to
+report any bugs.. If you have patches you'd like to submit, the best
+place to do that is on the SourceForge <a
+href="http://sourceforge.net/patch/?group_id=103">patch manager</a>.
+
+<p>Be sure to select the right <em>group</em> for your bug or patch,
+e.g. <em>Mailman 2.1</em>. Failing to do so may cause your submission
+to get overlooked. It is also recommended that you email a note about
+your submission to the
+<a href="http://mail.python.org/mailman/listinfo/mailman-developers"
+>mailman-developers</a> mailing list, but don't rely on just the email
+to get the attention of the Mailman developers.
+
diff --git a/admin/www/bugs.html b/admin/www/bugs.html
new file mode 100644
index 00000000..8c174924
--- /dev/null
+++ b/admin/www/bugs.html
@@ -0,0 +1,166 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<!-- THIS PAGE IS AUTOMATICALLY GENERATED. DO NOT EDIT. -->
+<!-- Thu Dec 26 22:31:20 2002 -->
+<!-- USING HT2HTML 2.0 -->
+<!-- SEE http://ht2html.sf.net -->
+<!-- User-specified headers:
+Title: Bugs and Patches
+
+-->
+
+<head>
+<title>Bugs and Patches</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
+<meta name="generator" content="HT2HTML/2.0">
+<style type="text/css">
+body { margin: 0px; }
+</style>
+</head>
+<body bgcolor="#ffffff" text="#000000"
+ marginwidth="0" marginheight="0"
+ link="#0000bb" vlink="#551a8b"
+ alink="#ff0000">
+<!-- start of page table -->
+<table width="100%" border="0" cellspacing="0" cellpadding="0">
+<!-- start of banner row -->
+<tr>
+<!-- start of corner cells -->
+<td width="150" valign="middle" bgcolor="white" class="corner">
+
+<center>
+ <a href="./index.html">
+ <img border=0 src="./images/logo-70.jpg"></a></center> </td>
+<td width="15" bgcolor="#eecfa1">&nbsp;&nbsp;</td><!--spacer-->
+<!-- end of corner cells -->
+<!-- start of banner -->
+<td width="90%" bgcolor="#eecfa1" class="banner">
+<!-- start of site links table -->
+<table width="100%" border="0"
+CELLSPACING=0 CELLPADDING=0
+ bgcolor="#ffffff">
+<tr>
+ <td bgcolor="#eecfa1">
+<a href="./index.html">Home</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./docs.html">Documentation</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./lists.html">Mailing lists</a>
+ </td>
+</tr><tr>
+ <td bgcolor="#eecfa1">
+<a href="./help.html">Help</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./download.html">Download</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./devs.html">Developers</a>
+ </td>
+</tr>
+</table><!-- end of site links table -->
+
+</td><!-- end of banner -->
+</tr><!-- end of banner row -->
+<tr><!-- start of sidebar/body row -->
+<!-- start of sidebar cells -->
+<td width="150" valign="top" bgcolor="#eecfa1" class="sidebar">
+<!-- start of sidebar table -->
+<table width="100%" border="0" cellspacing="0" cellpadding="3"
+ bgcolor="#ffffff">
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Overview
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="index.html">Home</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="features.html">Features</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="otherstuff.html">Logos and Papers</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="inthenews.html">Mailman in Use</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="prev.html">Previous Releases</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<b>Bugs and Patches</b>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="mirrors.html">Mirrors</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">&nbsp;
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Exits
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="http://sourceforge.net/bugs/?group_id=103">Bug Tracker</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="http://sourceforge.net/patch/?group_id=103">Patch Manager</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="http://sourceforge.net/projects/mailman">Mailman Project</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">&nbsp;
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Email Us
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="mailto:mailman-users@python.org">mailman-users@python.org</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&nbsp;
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="http://www.python.org/"><img border=0
+ src="./images/PythonPoweredSmall.png"
+ ></a>&nbsp;<a href="http://sourceforge.net"><img
+ src="http://sourceforge.net/sflogo.php?group_id=103"
+ width="88" height="31" border="0"
+ alt="SourceForge Logo"></a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&nbsp;
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&copy; 1998-2002
+Free Software Foundation, Inc. Verbatim copying and distribution of this
+entire article is permitted in any medium, provided this notice is preserved.
+
+</td></tr>
+</table><!-- end of sidebar table -->
+
+</td>
+<td width="15">&nbsp;&nbsp;</td><!--spacer-->
+<!-- end of sidebar cell -->
+<!-- start of body cell -->
+<td valign="top" width="90%" class="body"><br>
+<h3>Bugs and Patches</h3>
+
+<p>Mailman is being <a
+href="http://sourceforge.net/projects/mailman">developed on
+SourceForge</a>. Please use the SourceForge <a
+href="http://sourceforge.net/bugs/?group_id=103">bug tracker</a> to
+report any bugs.. If you have patches you'd like to submit, the best
+place to do that is on the SourceForge <a
+href="http://sourceforge.net/patch/?group_id=103">patch manager</a>.
+
+<p>Be sure to select the right <em>group</em> for your bug or patch,
+e.g. <em>Mailman 2.1</em>. Failing to do so may cause your submission
+to get overlooked. It is also recommended that you email a note about
+your submission to the
+<a href="http://mail.python.org/mailman/listinfo/mailman-developers"
+>mailman-developers</a> mailing list, but don't rely on just the email
+to get the attention of the Mailman developers.
+
+
+</td><!-- end of body cell -->
+</tr><!-- end of sidebar/body row -->
+</table><!-- end of page table -->
+</body></html>
diff --git a/admin/www/devs.ht b/admin/www/devs.ht
new file mode 100644
index 00000000..937a6af9
--- /dev/null
+++ b/admin/www/devs.ht
@@ -0,0 +1,93 @@
+Title: Mailman Developer Resources
+Links:
+Other-links:
+ <h3>Developer Exits</h3>
+ <li><a href="http://sourceforge.net/projects/mailman">SourceForge Project Page</a>
+ <li><a href="http://www.zope.org/Members/bwarsaw/MailmanDesignNotes/">Mailman Wiki</a>
+ <li><a href="http://www.zope.org/Members/bwarsaw/MailmanDesignNotes/MailmanThreePointOh">Mailman 3.0 Wiki</a>
+ <li><a href="http://mail.python.org/mailman/listinfo/mailman-developers">mailman-developers list</a>
+ <li><a href="http://demo.iuveno-net.de/iuveno/Products/ZMailman/">ZMailman</a>
+
+<h3>Developer Resources</h3>
+
+If you're the kind of person who loves to get elbow deep in code,
+there are lots of opportunities to dig into Mailman. You may want to
+find a project on our Mailman
+<a href="todo.html">TODO list</a> or on the
+<a href="http://www.zope.org/Members/bwarsaw/MailmanDesignNotes/">Mailman
+design notes wiki</a>. Because Wikis are intended to be
+collaborative, you're free to contribute to this page in true Wiki
+fashion. You will also definitely want to subscribe
+to the <a href="http://mail.python.org/mailman/listinfo/mailman-developers"
+>mailman-developers</a> mailing list.
+
+<h3>SourceForge Project Page</h3>
+
+Developers should start with the
+<a href="http://sourceforge.net/projects/mailman">Mailman project at
+SourceForge</a>. All patches and bugs should be submitted here so
+they won't get lost, although it is also requested that you inform the
+mailman-developers list about your submissions.
+
+<h3>IRC</h3>
+
+Some of the Mailman developers also occasionally hang out on the
+<em>mailman</em> IRC channel at openprojects.net, though attendance
+has been spotty lately.
+
+<!--table-stop-->
+
+<h3>Future plans</h3>
+
+Now that Mailman 2.1 has been released, I want to start thinking about
+what will be in <a
+href="http://www.zope.org/Members/bwarsaw/MailmanDesignNotes/MailmanThreePointOh">Mailman
+3.0</a>. I intend to use the wiki for most design artifacts, and the
+mailman-developers mailing list for most discussions. The items that
+are high on my list (which is by no means complete or definitive)
+include:
+
+<ul>
+<li><b>Consolidated user database</b> -- A user should have just one
+account for every mailing list they are members of at a site, and they
+should be able to manage all their options through this account.
+It should be possible to integrate these databases with a site's
+existing user management system to reduce duplication of data and
+effort.
+
+<p><li><b>Unified template system</b> -- Mailman has a somewhat fractured
+and inconvenient templating system, using both a homegrown HTML object
+model in Python and coarse templates filled in with data at rendering
+time. It can be near impossible to change the look and feel of the
+administration pages, and a small change to the u/i of other pages
+requires updates in all supported languages. I want to use a
+templating system like
+<a href="http://dev.zope.org/Wikis/DevSite/Projects/ZPT/">ZPT</a> or
+<a href="http://www.mems-exchange.org/software/quixote/">Quixote</a>.
+Actually, I plan to generalize the web interface so that many different
+templating systems could be used, although we'll pick one to ship by
+default.
+
+<p><li><b>A Real Database</b> -- Mailman uses an inefficient persistency
+system based on Python pickles, and every mailing list has its own
+pickled state. This has several disadvantages, including poor
+scalability, difficulty in doing cross-mailing list operations, and
+the virtual host limitation on list names. Mailman 3.0 will use a
+real database, perhaps based on
+<a href="http://www.zope.org/Wikis/ZODB/">ZODB</a> or
+<a href="http://www.sleepycat.com">BerkeleyDB</a>. Again, the goal is
+to generalize the interface to the backend database so that others can
+be used, but choose one and ship it by default.
+
+<p><li><b>Component Architecture</b> -- Zope3's
+<a href="http://dev.zope.org/Wikis/DevSite/Projects/ComponentArchitecture/"
+>component architecture</a> provides some very nice organizational
+tools and software development methodologies. We'll be adopting many
+of these for Mailman 3.0, which will allow us to do the kinds of
+templating and database generalization described above.
+</ul>
+
+Stephan Richter has let an effort called
+<a href="http://demo.iuveno-net.de/iuveno/Products/ZMailman/"
+>ZMailman</a> for integrating Zope and Mailman. I consider this a
+proof of concept of some of the ideas outlined above.
diff --git a/admin/www/devs.html b/admin/www/devs.html
new file mode 100644
index 00000000..41d1eb3f
--- /dev/null
+++ b/admin/www/devs.html
@@ -0,0 +1,212 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<!-- THIS PAGE IS AUTOMATICALLY GENERATED. DO NOT EDIT. -->
+<!-- Thu Dec 26 22:30:21 2002 -->
+<!-- USING HT2HTML 2.0 -->
+<!-- SEE http://ht2html.sf.net -->
+<!-- User-specified headers:
+Title: Mailman Developer Resources
+
+-->
+
+<head>
+<title>Mailman Developer Resources</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
+<meta name="generator" content="HT2HTML/2.0">
+<style type="text/css">
+body { margin: 0px; }
+</style>
+</head>
+<body bgcolor="#ffffff" text="#000000"
+ marginwidth="0" marginheight="0"
+ link="#0000bb" vlink="#551a8b"
+ alink="#ff0000">
+<!-- start of page table -->
+<table width="100%" border="0" cellspacing="0" cellpadding="0">
+<!-- start of banner row -->
+<tr>
+<!-- start of corner cells -->
+<td width="150" valign="middle" bgcolor="white" class="corner">
+
+<center>
+ <a href="./index.html">
+ <img border=0 src="./images/logo-70.jpg"></a></center> </td>
+<td width="15" bgcolor="#eecfa1">&nbsp;&nbsp;</td><!--spacer-->
+<!-- end of corner cells -->
+<!-- start of banner -->
+<td width="90%" bgcolor="#eecfa1" class="banner">
+<!-- start of site links table -->
+<table width="100%" border="0"
+CELLSPACING=0 CELLPADDING=0
+ bgcolor="#ffffff">
+<tr>
+ <td bgcolor="#eecfa1">
+<a href="./index.html">Home</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./docs.html">Documentation</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./lists.html">Mailing lists</a>
+ </td>
+</tr><tr>
+ <td bgcolor="#eecfa1">
+<a href="./help.html">Help</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./download.html">Download</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<b>Developers</b>
+ </td>
+</tr>
+</table><!-- end of site links table -->
+
+</td><!-- end of banner -->
+</tr><!-- end of banner row -->
+<tr><!-- start of sidebar/body row -->
+<!-- start of sidebar cells -->
+<td width="150" valign="top" bgcolor="#eecfa1" class="sidebar">
+<!-- start of sidebar table -->
+<table width="100%" border="0" cellspacing="0" cellpadding="3"
+ bgcolor="#ffffff">
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Developer Exits
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="http://sourceforge.net/projects/mailman">SourceForge Project Page</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="http://www.zope.org/Members/bwarsaw/MailmanDesignNotes/">Mailman Wiki</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="http://www.zope.org/Members/bwarsaw/MailmanDesignNotes/MailmanThreePointOh">Mailman 3.0 Wiki</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="http://mail.python.org/mailman/listinfo/mailman-developers">mailman-developers list</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="http://demo.iuveno-net.de/iuveno/Products/ZMailman/">ZMailman</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">&nbsp;
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Email Us
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="mailto:mailman-users@python.org">mailman-users@python.org</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&nbsp;
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="http://www.python.org/"><img border=0
+ src="./images/PythonPoweredSmall.png"
+ ></a>&nbsp;<a href="http://sourceforge.net"><img
+ src="http://sourceforge.net/sflogo.php?group_id=103"
+ width="88" height="31" border="0"
+ alt="SourceForge Logo"></a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&nbsp;
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&copy; 1998-2002
+Free Software Foundation, Inc. Verbatim copying and distribution of this
+entire article is permitted in any medium, provided this notice is preserved.
+
+</td></tr>
+</table><!-- end of sidebar table -->
+
+</td>
+<td width="15">&nbsp;&nbsp;</td><!--spacer-->
+<!-- end of sidebar cell -->
+<!-- start of body cell -->
+<td valign="top" width="90%" class="body"><br>
+<h3>Developer Resources</h3>
+
+If you're the kind of person who loves to get elbow deep in code,
+there are lots of opportunities to dig into Mailman. You may want to
+find a project on our Mailman
+<a href="todo.html">TODO list</a> or on the
+<a href="http://www.zope.org/Members/bwarsaw/MailmanDesignNotes/">Mailman
+design notes wiki</a>. Because Wikis are intended to be
+collaborative, you're free to contribute to this page in true Wiki
+fashion. You will also definitely want to subscribe
+to the <a href="http://mail.python.org/mailman/listinfo/mailman-developers"
+>mailman-developers</a> mailing list.
+
+<h3>SourceForge Project Page</h3>
+
+Developers should start with the
+<a href="http://sourceforge.net/projects/mailman">Mailman project at
+SourceForge</a>. All patches and bugs should be submitted here so
+they won't get lost, although it is also requested that you inform the
+mailman-developers list about your submissions.
+
+<h3>IRC</h3>
+
+Some of the Mailman developers also occasionally hang out on the
+<em>mailman</em> IRC channel at openprojects.net, though attendance
+has been spotty lately.
+
+<!--table-stop-->
+
+<h3>Future plans</h3>
+
+Now that Mailman 2.1 has been released, I want to start thinking about
+what will be in <a
+href="http://www.zope.org/Members/bwarsaw/MailmanDesignNotes/MailmanThreePointOh">Mailman
+3.0</a>. I intend to use the wiki for most design artifacts, and the
+mailman-developers mailing list for most discussions. The items that
+are high on my list (which is by no means complete or definitive)
+include:
+
+<ul>
+<li><b>Consolidated user database</b> -- A user should have just one
+account for every mailing list they are members of at a site, and they
+should be able to manage all their options through this account.
+It should be possible to integrate these databases with a site's
+existing user management system to reduce duplication of data and
+effort.
+
+<p><li><b>Unified template system</b> -- Mailman has a somewhat fractured
+and inconvenient templating system, using both a homegrown HTML object
+model in Python and coarse templates filled in with data at rendering
+time. It can be near impossible to change the look and feel of the
+administration pages, and a small change to the u/i of other pages
+requires updates in all supported languages. I want to use a
+templating system like
+<a href="http://dev.zope.org/Wikis/DevSite/Projects/ZPT/">ZPT</a> or
+<a href="http://www.mems-exchange.org/software/quixote/">Quixote</a>.
+Actually, I plan to generalize the web interface so that many different
+templating systems could be used, although we'll pick one to ship by
+default.
+
+<p><li><b>A Real Database</b> -- Mailman uses an inefficient persistency
+system based on Python pickles, and every mailing list has its own
+pickled state. This has several disadvantages, including poor
+scalability, difficulty in doing cross-mailing list operations, and
+the virtual host limitation on list names. Mailman 3.0 will use a
+real database, perhaps based on
+<a href="http://www.zope.org/Wikis/ZODB/">ZODB</a> or
+<a href="http://www.sleepycat.com">BerkeleyDB</a>. Again, the goal is
+to generalize the interface to the backend database so that others can
+be used, but choose one and ship it by default.
+
+<p><li><b>Component Architecture</b> -- Zope3's
+<a href="http://dev.zope.org/Wikis/DevSite/Projects/ComponentArchitecture/"
+>component architecture</a> provides some very nice organizational
+tools and software development methodologies. We'll be adopting many
+of these for Mailman 3.0, which will allow us to do the kinds of
+templating and database generalization described above.
+</ul>
+
+Stephan Richter has let an effort called
+<a href="http://demo.iuveno-net.de/iuveno/Products/ZMailman/"
+>ZMailman</a> for integrating Zope and Mailman. I consider this a
+proof of concept of some of the ideas outlined above.
+
+</td><!-- end of body cell -->
+</tr><!-- end of sidebar/body row -->
+</table><!-- end of page table -->
+</body></html>
diff --git a/admin/www/doco-links.h b/admin/www/doco-links.h
new file mode 100644
index 00000000..29ac84ba
--- /dev/null
+++ b/admin/www/doco-links.h
@@ -0,0 +1,7 @@
+<!-- -*- html -*- -->
+<h3>Documentation</h3>
+<li><a href="docs.html">Overview</a>
+<li><a href="users.html">Users</a>
+<li><a href="admins.html">List Managers</a>
+<li><a href="site.html">Site Administrators</a>
+<li><a href="i18n.html">Translators</a>
diff --git a/admin/www/docs.ht b/admin/www/docs.ht
new file mode 100644
index 00000000..6372be36
--- /dev/null
+++ b/admin/www/docs.ht
@@ -0,0 +1,66 @@
+Title: Mailman Documentation
+Links: doco-links.h
+Other-links:
+ <h3>Exits</h3>
+ <li><a href="http://www.python.org/cgi-bin/faqw-mm.py">FAQ Wizard</a>
+ <li><a href="http://staff.imsa.edu/~ckolar/mailman">Chris Kolar's Docs</a>
+ <li><a href="http://www.exim.org/howto/mailman.html">Exim HOWTO</a>
+
+<h3>Mailman Documentation</h3>
+
+On-line documentation for Mailman 2.1 is still under construction, but
+is organized among the following audiences:
+
+<ul>
+<li><a href="users.html"><b>Users</b></a> -- anybody who is a member
+ of a mailing list managed by Mailman. This documentation explains
+ how you can subscribe and unsubscribe from mailing lists, how to
+ change your personal options, and how to interact with other parts
+ of the Mailman system.
+
+<p><li><a href="admins.html"><b>List Managers</b></a> -- anybody who
+ is a list administrator or moderator for a mailing list. This
+ documentation goes into all the gory details about how to set up
+ your lists, what the various options mean and control, and how to
+ manage the membership of your mailing list.
+
+<p><li><a href="site.html"><b>Site Administrators</b></a> -- anybody
+ who is setting up a Mailman site. This documentation contains all
+ the information about installing Mailman, integrating it with your
+ mail and web servers, setting list defaults, configuring virtual
+ domains, and enabling various options for your list
+ administrators. This documentation also gives some hints on how
+ to tune Mailman for optimal performance.
+
+<p><li><a href="i18n.html"><b>Translators</b></a> -- anybody who is
+ contributing to internationalization support for Mailman. This
+ describes contact addresses for the current language champions and
+ tells you what you need to do if you want to contribute a new
+ language translation to the project (more are always welcome!).
+</ul>
+
+<h3>Other Resources</h3>
+
+<p>The <a href="faq.html">Frequently Asked Questions (FAQ)</a> is
+available to answer the most common questions. See also the community
+driven <a href="http://www.python.org/cgi-bin/faqw-mm.py">Mailman
+FAQ Wizard</a>. Feel free to add or correct entries in the FAQ Wizard
+-- this is your resource for helping your colleagues. The password is
+<em>Mailman</em> (yes, we use the honor system here).
+
+<p>For issues not covered in the FAQ, please post your questions to
+the <a href="lists.html">Mailman-Users</a> mailing list.
+
+<p><a href="http://staff.imsa.edu/~ckolar/index.htm">Chris Kolar</a> has made
+available <a href="http://staff.imsa.edu/~ckolar/mailman">Mailman
+documentation</a>, primarily for list owners who are not necessarily
+technical, but who own Mailman mailing lists.
+
+<p>Nigel Metheringham has posted a
+<a href="http://www.exim.org/howto/mailman.html">HOWTO on using Exim
+and Mailman</a> together. If you're using the
+<a href="http://www.exim.org">Exim mailer</a> you should check this out.
+
+<p>The <a href="download.html">Mailman source distribution</a> itself
+contains many README files for discussion of issues specific to
+operating system, mail transport agent, or web server.
diff --git a/admin/www/docs.html b/admin/www/docs.html
new file mode 100644
index 00000000..35f1ffc7
--- /dev/null
+++ b/admin/www/docs.html
@@ -0,0 +1,200 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<!-- THIS PAGE IS AUTOMATICALLY GENERATED. DO NOT EDIT. -->
+<!-- Thu Dec 26 22:30:21 2002 -->
+<!-- USING HT2HTML 2.0 -->
+<!-- SEE http://ht2html.sf.net -->
+<!-- User-specified headers:
+Title: Mailman Documentation
+
+-->
+
+<head>
+<title>Mailman Documentation</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
+<meta name="generator" content="HT2HTML/2.0">
+<style type="text/css">
+body { margin: 0px; }
+</style>
+</head>
+<body bgcolor="#ffffff" text="#000000"
+ marginwidth="0" marginheight="0"
+ link="#0000bb" vlink="#551a8b"
+ alink="#ff0000">
+<!-- start of page table -->
+<table width="100%" border="0" cellspacing="0" cellpadding="0">
+<!-- start of banner row -->
+<tr>
+<!-- start of corner cells -->
+<td width="150" valign="middle" bgcolor="white" class="corner">
+
+<center>
+ <a href="./index.html">
+ <img border=0 src="./images/logo-70.jpg"></a></center> </td>
+<td width="15" bgcolor="#eecfa1">&nbsp;&nbsp;</td><!--spacer-->
+<!-- end of corner cells -->
+<!-- start of banner -->
+<td width="90%" bgcolor="#eecfa1" class="banner">
+<!-- start of site links table -->
+<table width="100%" border="0"
+CELLSPACING=0 CELLPADDING=0
+ bgcolor="#ffffff">
+<tr>
+ <td bgcolor="#eecfa1">
+<a href="./index.html">Home</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<b>Documentation</b>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./lists.html">Mailing lists</a>
+ </td>
+</tr><tr>
+ <td bgcolor="#eecfa1">
+<a href="./help.html">Help</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./download.html">Download</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./devs.html">Developers</a>
+ </td>
+</tr>
+</table><!-- end of site links table -->
+
+</td><!-- end of banner -->
+</tr><!-- end of banner row -->
+<tr><!-- start of sidebar/body row -->
+<!-- start of sidebar cells -->
+<td width="150" valign="top" bgcolor="#eecfa1" class="sidebar">
+<!-- start of sidebar table -->
+<table width="100%" border="0" cellspacing="0" cellpadding="3"
+ bgcolor="#ffffff">
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Documentation
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<b>Overview</b>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="users.html">Users</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="admins.html">List Managers</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="site.html">Site Administrators</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="i18n.html">Translators</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">&nbsp;
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Exits
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="http://www.python.org/cgi-bin/faqw-mm.py">FAQ Wizard</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="http://staff.imsa.edu/~ckolar/mailman">Chris Kolar's Docs</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="http://www.exim.org/howto/mailman.html">Exim HOWTO</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">&nbsp;
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Email Us
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="mailto:mailman-users@python.org">mailman-users@python.org</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&nbsp;
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="http://www.python.org/"><img border=0
+ src="./images/PythonPoweredSmall.png"
+ ></a>&nbsp;<a href="http://sourceforge.net"><img
+ src="http://sourceforge.net/sflogo.php?group_id=103"
+ width="88" height="31" border="0"
+ alt="SourceForge Logo"></a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&nbsp;
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&copy; 1998-2002
+Free Software Foundation, Inc. Verbatim copying and distribution of this
+entire article is permitted in any medium, provided this notice is preserved.
+
+</td></tr>
+</table><!-- end of sidebar table -->
+
+</td>
+<td width="15">&nbsp;&nbsp;</td><!--spacer-->
+<!-- end of sidebar cell -->
+<!-- start of body cell -->
+<td valign="top" width="90%" class="body"><br>
+<h3>Mailman Documentation</h3>
+
+On-line documentation for Mailman 2.1 is still under construction, but
+is organized among the following audiences:
+
+<ul>
+<li><a href="users.html"><b>Users</b></a> -- anybody who is a member
+ of a mailing list managed by Mailman. This documentation explains
+ how you can subscribe and unsubscribe from mailing lists, how to
+ change your personal options, and how to interact with other parts
+ of the Mailman system.
+
+<p><li><a href="admins.html"><b>List Managers</b></a> -- anybody who
+ is a list administrator or moderator for a mailing list. This
+ documentation goes into all the gory details about how to set up
+ your lists, what the various options mean and control, and how to
+ manage the membership of your mailing list.
+
+<p><li><a href="site.html"><b>Site Administrators</b></a> -- anybody
+ who is setting up a Mailman site. This documentation contains all
+ the information about installing Mailman, integrating it with your
+ mail and web servers, setting list defaults, configuring virtual
+ domains, and enabling various options for your list
+ administrators. This documentation also gives some hints on how
+ to tune Mailman for optimal performance.
+
+<p><li><a href="i18n.html"><b>Translators</b></a> -- anybody who is
+ contributing to internationalization support for Mailman. This
+ describes contact addresses for the current language champions and
+ tells you what you need to do if you want to contribute a new
+ language translation to the project (more are always welcome!).
+</ul>
+
+<h3>Other Resources</h3>
+
+<p>The <a href="faq.html">Frequently Asked Questions (FAQ)</a> is
+available to answer the most common questions. See also the community
+driven <a href="http://www.python.org/cgi-bin/faqw-mm.py">Mailman
+FAQ Wizard</a>. Feel free to add or correct entries in the FAQ Wizard
+-- this is your resource for helping your colleagues. The password is
+<em>Mailman</em> (yes, we use the honor system here).
+
+<p>For issues not covered in the FAQ, please post your questions to
+the <a href="lists.html">Mailman-Users</a> mailing list.
+
+<p><a href="http://staff.imsa.edu/~ckolar/index.htm">Chris Kolar</a> has made
+available <a href="http://staff.imsa.edu/~ckolar/mailman">Mailman
+documentation</a>, primarily for list owners who are not necessarily
+technical, but who own Mailman mailing lists.
+
+<p>Nigel Metheringham has posted a
+<a href="http://www.exim.org/howto/mailman.html">HOWTO on using Exim
+and Mailman</a> together. If you're using the
+<a href="http://www.exim.org">Exim mailer</a> you should check this out.
+
+<p>The <a href="download.html">Mailman source distribution</a> itself
+contains many README files for discussion of issues specific to
+operating system, mail transport agent, or web server.
+
+</td><!-- end of body cell -->
+</tr><!-- end of sidebar/body row -->
+</table><!-- end of page table -->
+</body></html>
diff --git a/admin/www/download-links.h b/admin/www/download-links.h
new file mode 100644
index 00000000..635a577c
--- /dev/null
+++ b/admin/www/download-links.h
@@ -0,0 +1,6 @@
+<!-- -*- html -*- -->
+<h3>Downloading</h3>
+<li><a href="download.html">Downloading</a>
+<li><a href="version.html">Latest Version</a>
+<li><a href="requirements.html">Requirements</a>
+<li><a href="install.html">Installing</a>
diff --git a/admin/www/download.ht b/admin/www/download.ht
new file mode 100644
index 00000000..617b15b8
--- /dev/null
+++ b/admin/www/download.ht
@@ -0,0 +1,38 @@
+Title: Downloading Mailman
+Links: download-links.h
+
+<h3>Downloading</h3>
+
+Mailman is available from the following sources:
+
+<ul>
+ <li><a href="http://sourceforge.net/project/showfiles.php?group_id=103">SourceForge</a>
+ <li><a href="http://ftp.gnu.org/gnu/mailman/">GNU</a>
+ <li><a href="http://www.list.org/mailman.tar.gz">List.Org</a>
+</ul>
+
+<em>If you're using a command line FTP client, be sure to set the mode
+to binary</em>. Once you've downloaded the source tarball, you can
+unpack it with the following commands:
+
+<blockquote>
+<pre>
+% cd /usr/local/src
+% tar zxf mailman.tar.gz
+</pre>
+</blockquote>
+
+Note that the file name may have the version number in it,
+e.g. <code>mailman-2.1.tar.gz</code>.
+
+<p>Mailman's tarball unpacks into a directory called
+<code>mailman-xyz</code> where <em>xyz</em> is the version number.
+Note also that some versions of <code>tar</code> don't accept the
+<em>z</em> option. In that case, you'll need to use the
+<code>gunzip</code> program like so:
+
+<blockquote>
+<pre>
+% gunzip -c mailman.tar.gz | tar xf -
+</pre>
+</blockquote>
diff --git a/admin/www/download.html b/admin/www/download.html
new file mode 100644
index 00000000..3ca2be31
--- /dev/null
+++ b/admin/www/download.html
@@ -0,0 +1,161 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<!-- THIS PAGE IS AUTOMATICALLY GENERATED. DO NOT EDIT. -->
+<!-- Thu Dec 26 22:30:22 2002 -->
+<!-- USING HT2HTML 2.0 -->
+<!-- SEE http://ht2html.sf.net -->
+<!-- User-specified headers:
+Title: Downloading Mailman
+
+-->
+
+<head>
+<title>Downloading Mailman</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
+<meta name="generator" content="HT2HTML/2.0">
+<style type="text/css">
+body { margin: 0px; }
+</style>
+</head>
+<body bgcolor="#ffffff" text="#000000"
+ marginwidth="0" marginheight="0"
+ link="#0000bb" vlink="#551a8b"
+ alink="#ff0000">
+<!-- start of page table -->
+<table width="100%" border="0" cellspacing="0" cellpadding="0">
+<!-- start of banner row -->
+<tr>
+<!-- start of corner cells -->
+<td width="150" valign="middle" bgcolor="white" class="corner">
+
+<center>
+ <a href="./index.html">
+ <img border=0 src="./images/logo-70.jpg"></a></center> </td>
+<td width="15" bgcolor="#eecfa1">&nbsp;&nbsp;</td><!--spacer-->
+<!-- end of corner cells -->
+<!-- start of banner -->
+<td width="90%" bgcolor="#eecfa1" class="banner">
+<!-- start of site links table -->
+<table width="100%" border="0"
+CELLSPACING=0 CELLPADDING=0
+ bgcolor="#ffffff">
+<tr>
+ <td bgcolor="#eecfa1">
+<a href="./index.html">Home</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./docs.html">Documentation</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./lists.html">Mailing lists</a>
+ </td>
+</tr><tr>
+ <td bgcolor="#eecfa1">
+<a href="./help.html">Help</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<b>Download</b>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./devs.html">Developers</a>
+ </td>
+</tr>
+</table><!-- end of site links table -->
+
+</td><!-- end of banner -->
+</tr><!-- end of banner row -->
+<tr><!-- start of sidebar/body row -->
+<!-- start of sidebar cells -->
+<td width="150" valign="top" bgcolor="#eecfa1" class="sidebar">
+<!-- start of sidebar table -->
+<table width="100%" border="0" cellspacing="0" cellpadding="3"
+ bgcolor="#ffffff">
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Downloading
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<b>Downloading</b>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="version.html">Latest Version</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="requirements.html">Requirements</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="install.html">Installing</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">&nbsp;
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Email Us
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="mailto:mailman-users@python.org">mailman-users@python.org</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&nbsp;
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="http://www.python.org/"><img border=0
+ src="./images/PythonPoweredSmall.png"
+ ></a>&nbsp;<a href="http://sourceforge.net"><img
+ src="http://sourceforge.net/sflogo.php?group_id=103"
+ width="88" height="31" border="0"
+ alt="SourceForge Logo"></a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&nbsp;
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&copy; 1998-2002
+Free Software Foundation, Inc. Verbatim copying and distribution of this
+entire article is permitted in any medium, provided this notice is preserved.
+
+</td></tr>
+</table><!-- end of sidebar table -->
+
+</td>
+<td width="15">&nbsp;&nbsp;</td><!--spacer-->
+<!-- end of sidebar cell -->
+<!-- start of body cell -->
+<td valign="top" width="90%" class="body"><br>
+<h3>Downloading</h3>
+
+Mailman is available from the following sources:
+
+<ul>
+ <li><a href="http://sourceforge.net/project/showfiles.php?group_id=103">SourceForge</a>
+ <li><a href="http://ftp.gnu.org/gnu/mailman/">GNU</a>
+ <li><a href="http://www.list.org/mailman.tar.gz">List.Org</a>
+</ul>
+
+<em>If you're using a command line FTP client, be sure to set the mode
+to binary</em>. Once you've downloaded the source tarball, you can
+unpack it with the following commands:
+
+<blockquote>
+<pre>
+% cd /usr/local/src
+% tar zxf mailman.tar.gz
+</pre>
+</blockquote>
+
+Note that the file name may have the version number in it,
+e.g. <code>mailman-2.1.tar.gz</code>.
+
+<p>Mailman's tarball unpacks into a directory called
+<code>mailman-xyz</code> where <em>xyz</em> is the version number.
+Note also that some versions of <code>tar</code> don't accept the
+<em>z</em> option. In that case, you'll need to use the
+<code>gunzip</code> program like so:
+
+<blockquote>
+<pre>
+% gunzip -c mailman.tar.gz | tar xf -
+</pre>
+</blockquote>
+
+</td><!-- end of body cell -->
+</tr><!-- end of sidebar/body row -->
+</table><!-- end of page table -->
+</body></html>
diff --git a/admin/www/faq.ht b/admin/www/faq.ht
new file mode 100644
index 00000000..2fd281d2
--- /dev/null
+++ b/admin/www/faq.ht
@@ -0,0 +1,301 @@
+Title: Mailman Frequently Asked Questions
+
+See also the <a href="http://www.python.org/cgi-bin/faqw-mm.py">Mailman
+FAQ Wizard</a> for more information.
+
+ <h3>Mailman Frequently Asked Questions</h3>
+
+<b> Q. How do you spell this program?
+
+</b><br> A. You spell it "Mailman", with a leading capital "M" and a lowercase
+ second "m". It is incorrect to spell it "MailMan" (i.e. you should
+ not use StudlyCaps).
+<p> <b> Q. I'm getting really terrible performance for outgoing messages. It
+ seems that if the MTA has trouble resolving DNS for any recipients,
+ qrunner just gets really slow clearing the queue. Any ideas?
+
+</b><br> A. What's likely happening is that your MTA is doing DNS resolution on
+ recipients for messages delivered locally (i.e. from Mailman to
+ your MTA via SMTPDirect.py). This is a Bad Thing. You need to
+ turn off synchronous DNS resolution for messages originating from
+ the local host.
+<p> In Exim, the value to edit is receiver_verify_hosts. See
+ README.EXIM for details. Other MTAs have (of course) different
+ parameters and defaults that control this. First check the README
+ file for your MTA and then consult your MTA's own documentation.
+<p> <b> Q. My list members are complaining about Mailman's List-* headers!
+ What can I do about this?
+
+</b><br> A. These headers are described in RFC 2369 and are added by Mailman
+ for the long-term benefit of end-users. While discouraged, the
+ list admin can disable these via the General Options page. See
+ also README.USERAGENT for more information.
+<p> <b> Q. Can I put the user's address in the footer that Mailman adds to
+ each message?
+
+</b><br> A. Yes, in Mailman 2.1. The site admin needs to enable
+ personalization by setting the following variables in the mm_cfg.py
+ file:
+<p> VERP_PASSWORD_REMINDERS = 1
+ VERP_PERSONALIZED_DELIVERIES = 1
+ VERP_DELIVERY_INTERVAL = 1
+ VERP_CONFIRMATIONS = 1
+<p> Once this is done, list admins can enable personalization for
+ regular delivery members (digest deliveries can't be
+ personalized currently). A personalized list can include the
+ user's address in the footer.
+<p> <b> Q. My users hate HTML in their email and for security reasons, I want
+ to strip out all MIME attachments. How can I do this?
+
+</b><br> A. Mailman 2.1 has this feature built-in. See the Content Filtering
+ Options page in the admin interface.
+<p> <b> Q. What if I get "document contains no data" from the web server, or
+ mail isn't getting delivered, or I see "Premature end of script
+ headers" or "Mailman CGI error!!!"
+
+</b><br> A. The most likely cause of this is that the GID that is compiled into
+ the C wrappers does not match the GID that your Web server invokes
+ CGI scripts with. Note that a similar error could occur if your
+ mail system invokes filter programs under a GID that does not match
+ the one compiled into the C mail wrapper.
+<p> To fix this you will need to re-configure Mailman using the
+ --with-cgi-gid and --with-mail-gid options. See the INSTALL file
+ for details.
+<p> These errors are logged to syslog and they do not show up in the
+ Mailman log files. Problems with the CGI wrapper do get reported
+ in the web browser though (unless STEALTH_MODE is enabled), and
+ include the expected GID, so that should help a lot.
+<p> You may want to have syslog running and configured to log the
+ mail.error log class somewhere; on Solaris systems, the line
+<p> mail.debug /var/log/syslog
+<p> causes the messages to go to them in /var/log/syslog, for example.
+ (The distributed syslog.conf forwards the message to the loghost,
+ when present. See the syslog man page for more details.)
+<p> If your system is set like this, and you get a failure trying to
+ visit the mailman/listinfo web page, and it's due to a UID or GID
+ mismatch, then you should get an entry at the end of
+ /var/log/syslog identifying the expected and received values.
+<p> If you are not getting any log messages in syslog, or in Mailman's
+ own log files, but messages are still not being delivered, then it
+ is likely that qrunner is not running (qrunner is the process that
+ handles all mail in the system). In Mailman 2.0, qrunner was
+ invoked from cron so make sure your crontab entries for the
+ `mailman' user have been installed. In Mailman 2.1, qrunner is
+ started with the bin/mailmanctl script, which can be invoked
+ manually, or merged with your OS's init scripts.
+<p> <b> Q. What should I check periodically?
+
+</b><br> A. Many of the scripts have their standard error logged to
+ $prefix/logs/error, and some of the modules write caught errors
+ there, as well, so you should check there at least occasionally to
+ look for bugs in the code and problems in your setup.
+<p> You may want to periodically check the other log files in the logs/
+ directory, perhaps occasionally rotating them with something like
+ the Linux logrotate script.
+<p> <b> Q. I can't access the public archives. Why?
+
+</b><br> A. If you are using Apache, you must make sure that FollowSymLinks is
+ enabled for the path to the public archives. Note that the actual
+ archives always reside in the private tree, and only when archives
+ are public, is the symlink followed. See this archive message for
+ more details:
+<p> <a href="http://mail.python.org/pipermail/mailman-users/1998-November/000150.html">http://mail.python.org/pipermail/mailman-users/1998-November/000150.html</a>
+<p> <b> Q. Still having problems? Running QMail?
+
+</b><br> A. Make sure that you are using "preline" before calling the "mailman"
+ wrapper:
+<p> |preline /home/mailman/mail/mailman post listname
+<p> "preline" adds a Unix-style "From " header which the archiver requires.
+ You can fix the archive mbox files by adding:
+<p> From somebody Mon Oct 9 12:27:34 MDT 2000
+<p> before every message and re-running the archive command
+ "bin/arch listname". The archives should now exist. See README.QMAIL
+ for more information.
+<p> <b> Q. Still having problems? Running on GNU/Linux?
+
+</b><br> A. See the README.LINUX file.
+<p> <b> Q. I want to get rid of some messages in my archive. How do I do
+ this?
+
+</b><br> A. David Rocher posts the following recipe:
+<p> <li>
+ remove $prefix/archives/private/<em>listname</em>
+<li>
+ edit $prefix/archives/private/<em>listname</em>.mbox/<em>listname</em>.mbox [optional]
+<li>
+ run $prefix/bin/arch <em>listname</em>
+<p> <b> Q. How secure are the authentication mechanisms used in Mailman's web
+ interface?
+
+</b><br> A. If your Mailman installation run on an SSL-enabled web server
+ (i.e. you access the Mailman web pages with "https://..." URLs),
+ you should be as safe as SSL itself is.
+<p> However, most Mailman installation run under standard,
+ encryption-unaware servers. There's nothing wrong with that for
+ most applications, but a sufficiently determined cracker *could*
+ get unauthorized access by:
+<p> <li>
+ Packet sniffing: The password used to do the initial
+ authentication for any non-public Mailman page is sent as clear
+ text over the net. If you consider this to be a big problem, you
+ really should use an SSL-enabled server.
+<p> <li>
+ Stealing a valid cookie: After successful password
+ authentication, Mailman sends a "cookie" back to the user's
+ browser. This cookie will be used for "automatic" authentication
+ when browsing further within the list's protected pages. Mailman
+ employs "session cookies" which are set until you quit your
+ browser or explicitly log out.
+<p> Gaining access to the user's cookie (e.g. by being able to read
+ the user's browser cookie database, or by means of packet
+ sniffing, or maybe even by some broken browser offering all it's
+ cookies to any and all sites the user accesses), and at the same
+ time being able to fulfill the other criteria for using the
+ cookie could result in unauthorized access.
+<p> Note that this problem is more easily exploited when users browse
+ the web via proxies -- in that case, the cookie would be valid
+ for any connections made through that proxy, and not just for
+ connections made from the particular machine the user happens to
+ be accessing the proxy from.
+<p> <li>
+ Getting access to the user's terminal: This is really just
+ another kind of cookie stealing. The short cookie expiration
+ time is supposed to help defeat this problem. It can be
+ considered the price to pay for the convenience of not having to
+ type the password in every time.
+<p> <b> Q. I want to backup my lists. What do I need to save?
+
+</b><br> A. See this FAQ wizard entry:
+ <a href="http://www.python.org/cgi-bin/faqw-mm.py?req=show&file=faq04.006.htp">http://www.python.org/cgi-bin/faqw-mm.py?req=show&file=faq04.006.htp</a>
+<p> <b> Q. How do I rename a list?
+
+</b><br> A. Renaming a list is currently a bit of a pain to do completely
+ correctly, especially if you want to make sure that the old list
+ contacts are automatically forwarded to the new list. This ought
+ to be easier. :(
+<p> The biggest problem you have is how to stop mail and web traffic to
+ your list during the transition, and what to do about any mail
+ undelivered to the old list after the move. I don't think there
+ are any foolproof steps, but here's how you can reduce the risk:
+<p> - Temporarily disable qrunner. To do this, you need to edit the
+ user `mailman's crontab entry. Execute the following command,
+ commenting out the qrunner line when you're dropped into your
+ editor. Then save the file and quit the editor.
+<p> % crontab -u mailman -e
+<p> - Turn off your mail server. This is mostly harmless since remote
+ MTAs will just keep retrying until you turn it back on, and it's
+ not going to be off for very long.
+<p> - Next turn off your web server if possible. This of course means
+ your entire site will be off-line while you make the switch and
+ this may not be acceptable to you. The next best suggestion is
+ to set up your permanent redirects now for the list you're
+ moving. This means that anybody looking for the list under its
+ old name will be redirected to the new name, but they'll get
+ errors until you've completed the move.
+<p> Let's say the old name is "oldname" and the new name is
+ "newname". Here are some Apache directives that will do the
+ trick, though YMMV:
+<p> RedirectMatch permanent /mailman/(.*)/oldname(.*) <a href="http://www.dom.ain/mailman/$1/newname$2">http://www.dom.ain/mailman/$1/newname$2</a>
+ RedirectMatch permanent /pipermail/oldname(.*) <a href="http://www.dom.ain/pipermail/newname$1">http://www.dom.ain/pipermail/newname$1</a>
+<p> Add these to your httpd.conf file and restart Apache.
+<p> - Now cd to the directory where you've installed Mailman. Let's
+ say it's /usr/local/mailman:
+<p> % cd /usr/local/mailman
+<p> and cd to the `lists' subdirectory:
+<p> % cd lists
+<p> You should now see the directory `oldname'. Move this to
+ `newname':
+<p> % mv oldname newname
+<p> - Now cd to the private archives directory:
+<p> % cd ../archives/private
+<p> You will need to move the oldname's .mbox directory, and the
+ .mbox file within that directory. Don't worry about the public
+ archives; the next few steps will take care of them without
+ requiring you to fiddle around in the file system:
+<p> % mv oldname.mbox newname.mbox
+ % mv newname.mbox/oldname.mbox newname.mbox/newname.mbox
+<p> - You now need to run the `bin/move_list' script to update some of
+ the internal archiver paths. IMPORTANT: Skip this step if you
+ are using Mailman 2.1!
+<p> % cd ../..
+ % bin/move_list newname
+<p> - You should now regenerate the public archives:
+<p> % bin/arch newname
+<p> - You'll likely need to change some of your list's configuration
+ options, especially if you want to accept postings addressed to
+ the old list on the new list. Visit the admin interface for your
+ new list:
+<p> o Go to the General options
+<p> o Change the "real_name" option to reflect the new list's name,
+ e.g. "Newname"
+<p> o Change the subject prefix to reflect the new list's name,
+ e.g. "[Newname] " (yes, that's a trailing space character).
+<p> o Optionally, update other configuration fields like info,
+ description, or welcome_msg. YMMV.
+<p> o Save your changes
+<p> o Go to the Privacy options
+<p> o Add the old list's address to acceptable_aliases.
+ E.g. "oldname@dom.ain". This way, (after the /etc/aliases
+ changes described below) messages posted to the old list will
+ not be held by the new list for "implicit destination"
+ approval.
+<p> o Save your changes
+<p> - Now you want to update your /etc/aliases file to include the
+ aliases for the new list, and forwards for the old list to the
+ new list. Note that these instructions are for Sendmail style
+ alias files, adjust to the specifics of how your MTA is set up.
+<p> o Find the lines defining the aliases for your old list's name
+<p> o Copy and paste them just below the originals.
+<p> o Change all the references of "oldname" to "newname" in the
+ pasted stanza.
+<p> o Now change the targets of the original aliases to forward to
+ the new aliases. When you're done, you will end up with
+ /etc/aliases entries like the following (YMMV):
+<p> XXX This needs updating for MM2.1!
+<p> # Forward the oldname list to the newname list
+ oldname: newname@dom.ain
+ oldname-request: newname-request@dom.ain
+ oldname-admin: newname-admin@dom.ain
+ oldname-owner: newname-owner@dom.ain
+<p> newname: "|/usr/local/mailman/mail/mailman post newname"
+ newname-admin: "|/usr/local/mailman/mail/mailman mailowner newname"
+ newname-request: "|/usr/local/mailman/mail/mailman mailcmd newname"
+ newname-owner: newname-admin
+<p> o Run newaliases
+<p> - Before you restart everything, you want to make one last check.
+ You're looking for files in the qfiles/ directory that may have
+ been addressed to the old list but weren't delivered before you
+ renamed the list. Do something like the following:
+<p> % cd /usr/local/mailman/qfiles
+ % grep oldname *.msg
+<p> If you get no hits, skip to the next step, you've got nothing to
+ worry about.
+<p> If you did get hits, then things get complicated. I warn you
+ that the rest of this step is untested. :(
+<p> For each of the .msg files that were destined for the old list,
+ you need to change the corresponding .db file. Unfortunately
+ there's no easy way to do this. Anyway...
+<p> Save the following Python code in a file called 'hackdb.py':
+<p> -------------------------hackdb.py
+ import sys
+ import marshal
+ fp = open(sys.argv[1])
+ d = marshal.load(fp)
+ fp.close()
+ d['listname'] = sys.argv[2]
+ fp = open(sys.argv[1], 'w')
+ marshal.dump(d, fp)
+ fp.close()
+ -------------------------
+<p> And then for each file that matched your grep above, do the
+ following:
+<p> % python hackdb.py reallylonghexfilenamematch1.db newname
+<p> - It's now safe to turn your MTA back on.
+<p> - Turn your qrunner back on by running
+<p> % crontab -u mailman -e
+<p> again and this time uncommenting the qrunner line. Save the file
+ and quit your editor.
+<p> - Rejoice, you're done. Send $100,000 in shiny new pennies to the
+ Mailman cabal as your downpayment toward making this easier for
+ the next list you have to rename. :)
+<p> <p> \ No newline at end of file
diff --git a/admin/www/faq.html b/admin/www/faq.html
new file mode 100644
index 00000000..60c0ec7e
--- /dev/null
+++ b/admin/www/faq.html
@@ -0,0 +1,433 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<!-- THIS PAGE IS AUTOMATICALLY GENERATED. DO NOT EDIT. -->
+<!-- Thu Dec 26 22:30:25 2002 -->
+<!-- USING HT2HTML 2.0 -->
+<!-- SEE http://ht2html.sf.net -->
+<!-- User-specified headers:
+Title: Mailman Frequently Asked Questions
+
+-->
+
+<head>
+<title>Mailman Frequently Asked Questions</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
+<meta name="generator" content="HT2HTML/2.0">
+<style type="text/css">
+body { margin: 0px; }
+</style>
+</head>
+<body bgcolor="#ffffff" text="#000000"
+ marginwidth="0" marginheight="0"
+ link="#0000bb" vlink="#551a8b"
+ alink="#ff0000">
+<!-- start of page table -->
+<table width="100%" border="0" cellspacing="0" cellpadding="0">
+<!-- start of banner row -->
+<tr>
+<!-- start of corner cells -->
+<td width="150" valign="middle" bgcolor="white" class="corner">
+
+<center>
+ <a href="./index.html">
+ <img border=0 src="./images/logo-70.jpg"></a></center> </td>
+<td width="15" bgcolor="#eecfa1">&nbsp;&nbsp;</td><!--spacer-->
+<!-- end of corner cells -->
+<!-- start of banner -->
+<td width="90%" bgcolor="#eecfa1" class="banner">
+<!-- start of site links table -->
+<table width="100%" border="0"
+CELLSPACING=0 CELLPADDING=0
+ bgcolor="#ffffff">
+<tr>
+ <td bgcolor="#eecfa1">
+<a href="./index.html">Home</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./docs.html">Documentation</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./lists.html">Mailing lists</a>
+ </td>
+</tr><tr>
+ <td bgcolor="#eecfa1">
+<a href="./help.html">Help</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./download.html">Download</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./devs.html">Developers</a>
+ </td>
+</tr>
+</table><!-- end of site links table -->
+
+</td><!-- end of banner -->
+</tr><!-- end of banner row -->
+<tr><!-- start of sidebar/body row -->
+<!-- start of sidebar cells -->
+<td width="150" valign="top" bgcolor="#eecfa1" class="sidebar">
+<!-- start of sidebar table -->
+<table width="100%" border="0" cellspacing="0" cellpadding="3"
+ bgcolor="#ffffff">
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Overview
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="index.html">Home</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="features.html">Features</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="otherstuff.html">Logos and Papers</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="inthenews.html">Mailman in Use</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="prev.html">Previous Releases</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="bugs.html">Bugs and Patches</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="mirrors.html">Mirrors</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">&nbsp;
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Email Us
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="mailto:mailman-users@python.org">mailman-users@python.org</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&nbsp;
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="http://www.python.org/"><img border=0
+ src="./images/PythonPoweredSmall.png"
+ ></a>&nbsp;<a href="http://sourceforge.net"><img
+ src="http://sourceforge.net/sflogo.php?group_id=103"
+ width="88" height="31" border="0"
+ alt="SourceForge Logo"></a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&nbsp;
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&copy; 1998-2002
+Free Software Foundation, Inc. Verbatim copying and distribution of this
+entire article is permitted in any medium, provided this notice is preserved.
+
+</td></tr>
+</table><!-- end of sidebar table -->
+
+</td>
+<td width="15">&nbsp;&nbsp;</td><!--spacer-->
+<!-- end of sidebar cell -->
+<!-- start of body cell -->
+<td valign="top" width="90%" class="body"><br>
+See also the <a href="http://www.python.org/cgi-bin/faqw-mm.py">Mailman
+FAQ Wizard</a> for more information.
+
+ <h3>Mailman Frequently Asked Questions</h3>
+
+<b> Q. How do you spell this program?
+
+</b><br> A. You spell it "Mailman", with a leading capital "M" and a lowercase
+ second "m". It is incorrect to spell it "MailMan" (i.e. you should
+ not use StudlyCaps).
+<p> <b> Q. I'm getting really terrible performance for outgoing messages. It
+ seems that if the MTA has trouble resolving DNS for any recipients,
+ qrunner just gets really slow clearing the queue. Any ideas?
+
+</b><br> A. What's likely happening is that your MTA is doing DNS resolution on
+ recipients for messages delivered locally (i.e. from Mailman to
+ your MTA via SMTPDirect.py). This is a Bad Thing. You need to
+ turn off synchronous DNS resolution for messages originating from
+ the local host.
+<p> In Exim, the value to edit is receiver_verify_hosts. See
+ README.EXIM for details. Other MTAs have (of course) different
+ parameters and defaults that control this. First check the README
+ file for your MTA and then consult your MTA's own documentation.
+<p> <b> Q. My list members are complaining about Mailman's List-* headers!
+ What can I do about this?
+
+</b><br> A. These headers are described in RFC 2369 and are added by Mailman
+ for the long-term benefit of end-users. While discouraged, the
+ list admin can disable these via the General Options page. See
+ also README.USERAGENT for more information.
+<p> <b> Q. Can I put the user's address in the footer that Mailman adds to
+ each message?
+
+</b><br> A. Yes, in Mailman 2.1. The site admin needs to enable
+ personalization by setting the following variables in the mm_cfg.py
+ file:
+<p> VERP_PASSWORD_REMINDERS = 1
+ VERP_PERSONALIZED_DELIVERIES = 1
+ VERP_DELIVERY_INTERVAL = 1
+ VERP_CONFIRMATIONS = 1
+<p> Once this is done, list admins can enable personalization for
+ regular delivery members (digest deliveries can't be
+ personalized currently). A personalized list can include the
+ user's address in the footer.
+<p> <b> Q. My users hate HTML in their email and for security reasons, I want
+ to strip out all MIME attachments. How can I do this?
+
+</b><br> A. Mailman 2.1 has this feature built-in. See the Content Filtering
+ Options page in the admin interface.
+<p> <b> Q. What if I get "document contains no data" from the web server, or
+ mail isn't getting delivered, or I see "Premature end of script
+ headers" or "Mailman CGI error!!!"
+
+</b><br> A. The most likely cause of this is that the GID that is compiled into
+ the C wrappers does not match the GID that your Web server invokes
+ CGI scripts with. Note that a similar error could occur if your
+ mail system invokes filter programs under a GID that does not match
+ the one compiled into the C mail wrapper.
+<p> To fix this you will need to re-configure Mailman using the
+ --with-cgi-gid and --with-mail-gid options. See the INSTALL file
+ for details.
+<p> These errors are logged to syslog and they do not show up in the
+ Mailman log files. Problems with the CGI wrapper do get reported
+ in the web browser though (unless STEALTH_MODE is enabled), and
+ include the expected GID, so that should help a lot.
+<p> You may want to have syslog running and configured to log the
+ mail.error log class somewhere; on Solaris systems, the line
+<p> mail.debug /var/log/syslog
+<p> causes the messages to go to them in /var/log/syslog, for example.
+ (The distributed syslog.conf forwards the message to the loghost,
+ when present. See the syslog man page for more details.)
+<p> If your system is set like this, and you get a failure trying to
+ visit the mailman/listinfo web page, and it's due to a UID or GID
+ mismatch, then you should get an entry at the end of
+ /var/log/syslog identifying the expected and received values.
+<p> If you are not getting any log messages in syslog, or in Mailman's
+ own log files, but messages are still not being delivered, then it
+ is likely that qrunner is not running (qrunner is the process that
+ handles all mail in the system). In Mailman 2.0, qrunner was
+ invoked from cron so make sure your crontab entries for the
+ `mailman' user have been installed. In Mailman 2.1, qrunner is
+ started with the bin/mailmanctl script, which can be invoked
+ manually, or merged with your OS's init scripts.
+<p> <b> Q. What should I check periodically?
+
+</b><br> A. Many of the scripts have their standard error logged to
+ $prefix/logs/error, and some of the modules write caught errors
+ there, as well, so you should check there at least occasionally to
+ look for bugs in the code and problems in your setup.
+<p> You may want to periodically check the other log files in the logs/
+ directory, perhaps occasionally rotating them with something like
+ the Linux logrotate script.
+<p> <b> Q. I can't access the public archives. Why?
+
+</b><br> A. If you are using Apache, you must make sure that FollowSymLinks is
+ enabled for the path to the public archives. Note that the actual
+ archives always reside in the private tree, and only when archives
+ are public, is the symlink followed. See this archive message for
+ more details:
+<p> <a href="http://mail.python.org/pipermail/mailman-users/1998-November/000150.html">http://mail.python.org/pipermail/mailman-users/1998-November/000150.html</a>
+<p> <b> Q. Still having problems? Running QMail?
+
+</b><br> A. Make sure that you are using "preline" before calling the "mailman"
+ wrapper:
+<p> |preline /home/mailman/mail/mailman post listname
+<p> "preline" adds a Unix-style "From " header which the archiver requires.
+ You can fix the archive mbox files by adding:
+<p> From somebody Mon Oct 9 12:27:34 MDT 2000
+<p> before every message and re-running the archive command
+ "bin/arch listname". The archives should now exist. See README.QMAIL
+ for more information.
+<p> <b> Q. Still having problems? Running on GNU/Linux?
+
+</b><br> A. See the README.LINUX file.
+<p> <b> Q. I want to get rid of some messages in my archive. How do I do
+ this?
+
+</b><br> A. David Rocher posts the following recipe:
+<p> <li>
+ remove $prefix/archives/private/<em>listname</em>
+<li>
+ edit $prefix/archives/private/<em>listname</em>.mbox/<em>listname</em>.mbox [optional]
+<li>
+ run $prefix/bin/arch <em>listname</em>
+<p> <b> Q. How secure are the authentication mechanisms used in Mailman's web
+ interface?
+
+</b><br> A. If your Mailman installation run on an SSL-enabled web server
+ (i.e. you access the Mailman web pages with "https://..." URLs),
+ you should be as safe as SSL itself is.
+<p> However, most Mailman installation run under standard,
+ encryption-unaware servers. There's nothing wrong with that for
+ most applications, but a sufficiently determined cracker *could*
+ get unauthorized access by:
+<p> <li>
+ Packet sniffing: The password used to do the initial
+ authentication for any non-public Mailman page is sent as clear
+ text over the net. If you consider this to be a big problem, you
+ really should use an SSL-enabled server.
+<p> <li>
+ Stealing a valid cookie: After successful password
+ authentication, Mailman sends a "cookie" back to the user's
+ browser. This cookie will be used for "automatic" authentication
+ when browsing further within the list's protected pages. Mailman
+ employs "session cookies" which are set until you quit your
+ browser or explicitly log out.
+<p> Gaining access to the user's cookie (e.g. by being able to read
+ the user's browser cookie database, or by means of packet
+ sniffing, or maybe even by some broken browser offering all it's
+ cookies to any and all sites the user accesses), and at the same
+ time being able to fulfill the other criteria for using the
+ cookie could result in unauthorized access.
+<p> Note that this problem is more easily exploited when users browse
+ the web via proxies -- in that case, the cookie would be valid
+ for any connections made through that proxy, and not just for
+ connections made from the particular machine the user happens to
+ be accessing the proxy from.
+<p> <li>
+ Getting access to the user's terminal: This is really just
+ another kind of cookie stealing. The short cookie expiration
+ time is supposed to help defeat this problem. It can be
+ considered the price to pay for the convenience of not having to
+ type the password in every time.
+<p> <b> Q. I want to backup my lists. What do I need to save?
+
+</b><br> A. See this FAQ wizard entry:
+ <a href="http://www.python.org/cgi-bin/faqw-mm.py?req=show&file=faq04.006.htp">http://www.python.org/cgi-bin/faqw-mm.py?req=show&file=faq04.006.htp</a>
+<p> <b> Q. How do I rename a list?
+
+</b><br> A. Renaming a list is currently a bit of a pain to do completely
+ correctly, especially if you want to make sure that the old list
+ contacts are automatically forwarded to the new list. This ought
+ to be easier. :(
+<p> The biggest problem you have is how to stop mail and web traffic to
+ your list during the transition, and what to do about any mail
+ undelivered to the old list after the move. I don't think there
+ are any foolproof steps, but here's how you can reduce the risk:
+<p> - Temporarily disable qrunner. To do this, you need to edit the
+ user `mailman's crontab entry. Execute the following command,
+ commenting out the qrunner line when you're dropped into your
+ editor. Then save the file and quit the editor.
+<p> % crontab -u mailman -e
+<p> - Turn off your mail server. This is mostly harmless since remote
+ MTAs will just keep retrying until you turn it back on, and it's
+ not going to be off for very long.
+<p> - Next turn off your web server if possible. This of course means
+ your entire site will be off-line while you make the switch and
+ this may not be acceptable to you. The next best suggestion is
+ to set up your permanent redirects now for the list you're
+ moving. This means that anybody looking for the list under its
+ old name will be redirected to the new name, but they'll get
+ errors until you've completed the move.
+<p> Let's say the old name is "oldname" and the new name is
+ "newname". Here are some Apache directives that will do the
+ trick, though YMMV:
+<p> RedirectMatch permanent /mailman/(.*)/oldname(.*) <a href="http://www.dom.ain/mailman/$1/newname$2">http://www.dom.ain/mailman/$1/newname$2</a>
+ RedirectMatch permanent /pipermail/oldname(.*) <a href="http://www.dom.ain/pipermail/newname$1">http://www.dom.ain/pipermail/newname$1</a>
+<p> Add these to your httpd.conf file and restart Apache.
+<p> - Now cd to the directory where you've installed Mailman. Let's
+ say it's /usr/local/mailman:
+<p> % cd /usr/local/mailman
+<p> and cd to the `lists' subdirectory:
+<p> % cd lists
+<p> You should now see the directory `oldname'. Move this to
+ `newname':
+<p> % mv oldname newname
+<p> - Now cd to the private archives directory:
+<p> % cd ../archives/private
+<p> You will need to move the oldname's .mbox directory, and the
+ .mbox file within that directory. Don't worry about the public
+ archives; the next few steps will take care of them without
+ requiring you to fiddle around in the file system:
+<p> % mv oldname.mbox newname.mbox
+ % mv newname.mbox/oldname.mbox newname.mbox/newname.mbox
+<p> - You now need to run the `bin/move_list' script to update some of
+ the internal archiver paths. IMPORTANT: Skip this step if you
+ are using Mailman 2.1!
+<p> % cd ../..
+ % bin/move_list newname
+<p> - You should now regenerate the public archives:
+<p> % bin/arch newname
+<p> - You'll likely need to change some of your list's configuration
+ options, especially if you want to accept postings addressed to
+ the old list on the new list. Visit the admin interface for your
+ new list:
+<p> o Go to the General options
+<p> o Change the "real_name" option to reflect the new list's name,
+ e.g. "Newname"
+<p> o Change the subject prefix to reflect the new list's name,
+ e.g. "[Newname] " (yes, that's a trailing space character).
+<p> o Optionally, update other configuration fields like info,
+ description, or welcome_msg. YMMV.
+<p> o Save your changes
+<p> o Go to the Privacy options
+<p> o Add the old list's address to acceptable_aliases.
+ E.g. "oldname@dom.ain". This way, (after the /etc/aliases
+ changes described below) messages posted to the old list will
+ not be held by the new list for "implicit destination"
+ approval.
+<p> o Save your changes
+<p> - Now you want to update your /etc/aliases file to include the
+ aliases for the new list, and forwards for the old list to the
+ new list. Note that these instructions are for Sendmail style
+ alias files, adjust to the specifics of how your MTA is set up.
+<p> o Find the lines defining the aliases for your old list's name
+<p> o Copy and paste them just below the originals.
+<p> o Change all the references of "oldname" to "newname" in the
+ pasted stanza.
+<p> o Now change the targets of the original aliases to forward to
+ the new aliases. When you're done, you will end up with
+ /etc/aliases entries like the following (YMMV):
+<p> XXX This needs updating for MM2.1!
+<p> # Forward the oldname list to the newname list
+ oldname: newname@dom.ain
+ oldname-request: newname-request@dom.ain
+ oldname-admin: newname-admin@dom.ain
+ oldname-owner: newname-owner@dom.ain
+<p> newname: "|/usr/local/mailman/mail/mailman post newname"
+ newname-admin: "|/usr/local/mailman/mail/mailman mailowner newname"
+ newname-request: "|/usr/local/mailman/mail/mailman mailcmd newname"
+ newname-owner: newname-admin
+<p> o Run newaliases
+<p> - Before you restart everything, you want to make one last check.
+ You're looking for files in the qfiles/ directory that may have
+ been addressed to the old list but weren't delivered before you
+ renamed the list. Do something like the following:
+<p> % cd /usr/local/mailman/qfiles
+ % grep oldname *.msg
+<p> If you get no hits, skip to the next step, you've got nothing to
+ worry about.
+<p> If you did get hits, then things get complicated. I warn you
+ that the rest of this step is untested. :(
+<p> For each of the .msg files that were destined for the old list,
+ you need to change the corresponding .db file. Unfortunately
+ there's no easy way to do this. Anyway...
+<p> Save the following Python code in a file called 'hackdb.py':
+<p> -------------------------hackdb.py
+ import sys
+ import marshal
+ fp = open(sys.argv[1])
+ d = marshal.load(fp)
+ fp.close()
+ d['listname'] = sys.argv[2]
+ fp = open(sys.argv[1], 'w')
+ marshal.dump(d, fp)
+ fp.close()
+ -------------------------
+<p> And then for each file that matched your grep above, do the
+ following:
+<p> % python hackdb.py reallylonghexfilenamematch1.db newname
+<p> - It's now safe to turn your MTA back on.
+<p> - Turn your qrunner back on by running
+<p> % crontab -u mailman -e
+<p> again and this time uncommenting the qrunner line. Save the file
+ and quit your editor.
+<p> - Rejoice, you're done. Send $100,000 in shiny new pennies to the
+ Mailman cabal as your downpayment toward making this easier for
+ the next list you have to rename. :)
+<p> <p>
+</td><!-- end of body cell -->
+</tr><!-- end of sidebar/body row -->
+</table><!-- end of page table -->
+</body></html>
diff --git a/admin/www/features.ht b/admin/www/features.ht
new file mode 100644
index 00000000..dca77bf9
--- /dev/null
+++ b/admin/www/features.ht
@@ -0,0 +1,80 @@
+Title: Mailman Features
+Other-links:
+ <h3>Exits</h3>
+ <li><a href="http://www.oac.uci.edu/indiv/ehood/mhonarc.html">MHonArc</a>
+
+<h3>Mailman Features</h3>
+
+Here's a brief description of the new features in Mailman 2.1
+The <a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/mailman/mailman/NEWS?rev=HEAD&content-type=text/vnd.viewcvs-markup"
+>NEWS</a> file contains a detailed summary of all new features.
+
+<ul>
+<li>Through-the-web list creation and removal (with automatic
+ support depending on the MTA)
+<li>Multi-lingual support: list web pages and email notices can be in
+ any of nearly two dozen supported language, configurable
+ per-site, per-list, and per-user
+<li> "Real name" support for members
+<li>Much better password-less operation for simple user tasks.
+<li>Support for personalized deliveries and
+ <a href="http://cr.yp.to/proto/verp.txt">VERP</a>-like message
+ delivery for foolproof bounce detection
+<li>Emergency moderation
+<li>MIME-based content filtering, with demime/stripmime like options
+<li>Regular expression based topic filtering
+<li>Better membership management, including searching
+<li>Re-organized administrative requests pages
+<li>Moderated newsgroup support
+<li>A new architecture for the mail delivery subsystem, removing
+ the dependence on cron, for better responsiveness and
+ scalability
+<li>New moderation and privacy controls
+<li>Invitations
+<li>Autoresponse governors
+<li>Users can now change some of their delivery options globally,
+ for all lists at a site, including their password, delivery
+ status, real name, etc.
+<li>Much better MIME and I18n support in the archiver
+<li>A separate "list moderator" role has been added
+<li>Urgent: header support (bypasses digests to reach all users
+ immediately).
+</ul>
+
+Here is a short summary of other features in Mailman. For details,
+please see the <a href="docs.html">on-line documentation</a>.
+
+<ul>
+<li>Web based list administration for nearly all tasks, including list
+ configuration, moderation (post approvals), management of user
+ accounts.
+<li>Web based subscribing and unsubscribing, and user configuration
+ management. Users can temporarily disable their accounts, select
+ digest modes, hide their email addresses from other members, etc.
+<li>A customizable <em>home page</em> for each mailing list.
+<li>Per-list privacy features, such as closed-subscriptions, private
+ archives, private membership rosters, and sender-based posting
+ rules.
+<li>Configurable (per-list and per-user) delivery mode
+ <ul><li>Regular (immediate) delivery
+ <li>MIME digest
+ <li>Plain (<a href="http://www.faqs.org/rfcs/rfc1153.html">RFC
+ 1153</a>) digests
+ </ul>
+<li>Integrated bounce detection within an extensible framework.
+ Automatic disposition of bouncing addresses (disable,
+ unsubscribe).
+<li>Integrated spam filters
+<li>Built-in web-based archiving, with hooks for external archivers such as
+ <a href="http://www.oac.uci.edu/indiv/ehood/mhonarc.html">MHonArc</a>.
+<li>Integrated Usenet gatewaying.
+<li>Integrated auto-replies.
+<li>Majordomo-style email based commands.
+<li>Multiple list owners and moderators are possible.
+<li>Support for virtual domains.
+<li>Runs on GNU/Linux and most Un*x-like systems, compatible with most
+ web servers and browsers, and most SMTP servers. Requires Python
+ 2.1.3 or newer.
+<li>An extensible mail delivery pipeline.
+<li>High-performance mail delivery, with a scalable architecture.
+</ul>
diff --git a/admin/www/features.html b/admin/www/features.html
new file mode 100644
index 00000000..878be8de
--- /dev/null
+++ b/admin/www/features.html
@@ -0,0 +1,217 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<!-- THIS PAGE IS AUTOMATICALLY GENERATED. DO NOT EDIT. -->
+<!-- Thu Dec 26 22:30:22 2002 -->
+<!-- USING HT2HTML 2.0 -->
+<!-- SEE http://ht2html.sf.net -->
+<!-- User-specified headers:
+Title: Mailman Features
+
+-->
+
+<head>
+<title>Mailman Features</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
+<meta name="generator" content="HT2HTML/2.0">
+<style type="text/css">
+body { margin: 0px; }
+</style>
+</head>
+<body bgcolor="#ffffff" text="#000000"
+ marginwidth="0" marginheight="0"
+ link="#0000bb" vlink="#551a8b"
+ alink="#ff0000">
+<!-- start of page table -->
+<table width="100%" border="0" cellspacing="0" cellpadding="0">
+<!-- start of banner row -->
+<tr>
+<!-- start of corner cells -->
+<td width="150" valign="middle" bgcolor="white" class="corner">
+
+<center>
+ <a href="./index.html">
+ <img border=0 src="./images/logo-70.jpg"></a></center> </td>
+<td width="15" bgcolor="#eecfa1">&nbsp;&nbsp;</td><!--spacer-->
+<!-- end of corner cells -->
+<!-- start of banner -->
+<td width="90%" bgcolor="#eecfa1" class="banner">
+<!-- start of site links table -->
+<table width="100%" border="0"
+CELLSPACING=0 CELLPADDING=0
+ bgcolor="#ffffff">
+<tr>
+ <td bgcolor="#eecfa1">
+<a href="./index.html">Home</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./docs.html">Documentation</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./lists.html">Mailing lists</a>
+ </td>
+</tr><tr>
+ <td bgcolor="#eecfa1">
+<a href="./help.html">Help</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./download.html">Download</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./devs.html">Developers</a>
+ </td>
+</tr>
+</table><!-- end of site links table -->
+
+</td><!-- end of banner -->
+</tr><!-- end of banner row -->
+<tr><!-- start of sidebar/body row -->
+<!-- start of sidebar cells -->
+<td width="150" valign="top" bgcolor="#eecfa1" class="sidebar">
+<!-- start of sidebar table -->
+<table width="100%" border="0" cellspacing="0" cellpadding="3"
+ bgcolor="#ffffff">
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Overview
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="index.html">Home</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<b>Features</b>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="otherstuff.html">Logos and Papers</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="inthenews.html">Mailman in Use</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="prev.html">Previous Releases</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="bugs.html">Bugs and Patches</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="mirrors.html">Mirrors</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">&nbsp;
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Exits
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="http://www.oac.uci.edu/indiv/ehood/mhonarc.html">MHonArc</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">&nbsp;
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Email Us
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="mailto:mailman-users@python.org">mailman-users@python.org</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&nbsp;
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="http://www.python.org/"><img border=0
+ src="./images/PythonPoweredSmall.png"
+ ></a>&nbsp;<a href="http://sourceforge.net"><img
+ src="http://sourceforge.net/sflogo.php?group_id=103"
+ width="88" height="31" border="0"
+ alt="SourceForge Logo"></a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&nbsp;
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&copy; 1998-2002
+Free Software Foundation, Inc. Verbatim copying and distribution of this
+entire article is permitted in any medium, provided this notice is preserved.
+
+</td></tr>
+</table><!-- end of sidebar table -->
+
+</td>
+<td width="15">&nbsp;&nbsp;</td><!--spacer-->
+<!-- end of sidebar cell -->
+<!-- start of body cell -->
+<td valign="top" width="90%" class="body"><br>
+<h3>Mailman Features</h3>
+
+Here's a brief description of the new features in Mailman 2.1
+The <a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/mailman/mailman/NEWS?rev=HEAD&content-type=text/vnd.viewcvs-markup"
+>NEWS</a> file contains a detailed summary of all new features.
+
+<ul>
+<li>Through-the-web list creation and removal (with automatic
+ support depending on the MTA)
+<li>Multi-lingual support: list web pages and email notices can be in
+ any of nearly two dozen supported language, configurable
+ per-site, per-list, and per-user
+<li> "Real name" support for members
+<li>Much better password-less operation for simple user tasks.
+<li>Support for personalized deliveries and
+ <a href="http://cr.yp.to/proto/verp.txt">VERP</a>-like message
+ delivery for foolproof bounce detection
+<li>Emergency moderation
+<li>MIME-based content filtering, with demime/stripmime like options
+<li>Regular expression based topic filtering
+<li>Better membership management, including searching
+<li>Re-organized administrative requests pages
+<li>Moderated newsgroup support
+<li>A new architecture for the mail delivery subsystem, removing
+ the dependence on cron, for better responsiveness and
+ scalability
+<li>New moderation and privacy controls
+<li>Invitations
+<li>Autoresponse governors
+<li>Users can now change some of their delivery options globally,
+ for all lists at a site, including their password, delivery
+ status, real name, etc.
+<li>Much better MIME and I18n support in the archiver
+<li>A separate "list moderator" role has been added
+<li>Urgent: header support (bypasses digests to reach all users
+ immediately).
+</ul>
+
+Here is a short summary of other features in Mailman. For details,
+please see the <a href="docs.html">on-line documentation</a>.
+
+<ul>
+<li>Web based list administration for nearly all tasks, including list
+ configuration, moderation (post approvals), management of user
+ accounts.
+<li>Web based subscribing and unsubscribing, and user configuration
+ management. Users can temporarily disable their accounts, select
+ digest modes, hide their email addresses from other members, etc.
+<li>A customizable <em>home page</em> for each mailing list.
+<li>Per-list privacy features, such as closed-subscriptions, private
+ archives, private membership rosters, and sender-based posting
+ rules.
+<li>Configurable (per-list and per-user) delivery mode
+ <ul><li>Regular (immediate) delivery
+ <li>MIME digest
+ <li>Plain (<a href="http://www.faqs.org/rfcs/rfc1153.html">RFC
+ 1153</a>) digests
+ </ul>
+<li>Integrated bounce detection within an extensible framework.
+ Automatic disposition of bouncing addresses (disable,
+ unsubscribe).
+<li>Integrated spam filters
+<li>Built-in web-based archiving, with hooks for external archivers such as
+ <a href="http://www.oac.uci.edu/indiv/ehood/mhonarc.html">MHonArc</a>.
+<li>Integrated Usenet gatewaying.
+<li>Integrated auto-replies.
+<li>Majordomo-style email based commands.
+<li>Multiple list owners and moderators are possible.
+<li>Support for virtual domains.
+<li>Runs on GNU/Linux and most Un*x-like systems, compatible with most
+ web servers and browsers, and most SMTP servers. Requires Python
+ 2.1.3 or newer.
+<li>An extensible mail delivery pipeline.
+<li>High-performance mail delivery, with a scalable architecture.
+</ul>
+
+</td><!-- end of body cell -->
+</tr><!-- end of sidebar/body row -->
+</table><!-- end of page table -->
+</body></html>
diff --git a/admin/www/help.ht b/admin/www/help.ht
new file mode 100644
index 00000000..fa6fe4bd
--- /dev/null
+++ b/admin/www/help.ht
@@ -0,0 +1,24 @@
+Title: Mailman Help
+Other-links:
+ <h3>Help</h3>
+ <li><a href="faq.html">FAQ</a>
+ <li><a href="http://www.python.org/cgi-bin/faqw-mm.py">FAQ
+ Wizard</a> (Exit)
+ <li><a href="lists.html">Mailing lists</a>
+
+<h3>Help</h3>
+
+There are many resources available for those who need help with
+Mailman, beyond the <a href="docs.html">on-line documentation</a>. If
+you are having problems installing or configuring Mailman, or if you
+have questions about what Mailman can do, you should probably start
+with the <a href="faq.html">FAQ</a>, and the community driven
+<a href="http://www.python.org/cgi-bin/faqw-mm.py">FAQ Wizard</a>.
+
+<p>Beyond that, please use the <a href="lists.html">discussion
+lists</a> for asking questions. There are lots of very helpful and
+knowledgeable people on the lists who can help. Probably the most
+helpful will be the <a href="http://listowner.org/">Listowners</a>
+mailing list and the
+<a href="http://mail.python.org/mailman/listinfo/mailman-users"
+>mailman-users</a> mailing lists.
diff --git a/admin/www/help.html b/admin/www/help.html
new file mode 100644
index 00000000..e70186b2
--- /dev/null
+++ b/admin/www/help.html
@@ -0,0 +1,165 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<!-- THIS PAGE IS AUTOMATICALLY GENERATED. DO NOT EDIT. -->
+<!-- Thu Dec 26 22:30:22 2002 -->
+<!-- USING HT2HTML 2.0 -->
+<!-- SEE http://ht2html.sf.net -->
+<!-- User-specified headers:
+Title: Mailman Help
+
+-->
+
+<head>
+<title>Mailman Help</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
+<meta name="generator" content="HT2HTML/2.0">
+<style type="text/css">
+body { margin: 0px; }
+</style>
+</head>
+<body bgcolor="#ffffff" text="#000000"
+ marginwidth="0" marginheight="0"
+ link="#0000bb" vlink="#551a8b"
+ alink="#ff0000">
+<!-- start of page table -->
+<table width="100%" border="0" cellspacing="0" cellpadding="0">
+<!-- start of banner row -->
+<tr>
+<!-- start of corner cells -->
+<td width="150" valign="middle" bgcolor="white" class="corner">
+
+<center>
+ <a href="./index.html">
+ <img border=0 src="./images/logo-70.jpg"></a></center> </td>
+<td width="15" bgcolor="#eecfa1">&nbsp;&nbsp;</td><!--spacer-->
+<!-- end of corner cells -->
+<!-- start of banner -->
+<td width="90%" bgcolor="#eecfa1" class="banner">
+<!-- start of site links table -->
+<table width="100%" border="0"
+CELLSPACING=0 CELLPADDING=0
+ bgcolor="#ffffff">
+<tr>
+ <td bgcolor="#eecfa1">
+<a href="./index.html">Home</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./docs.html">Documentation</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./lists.html">Mailing lists</a>
+ </td>
+</tr><tr>
+ <td bgcolor="#eecfa1">
+<b>Help</b>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./download.html">Download</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./devs.html">Developers</a>
+ </td>
+</tr>
+</table><!-- end of site links table -->
+
+</td><!-- end of banner -->
+</tr><!-- end of banner row -->
+<tr><!-- start of sidebar/body row -->
+<!-- start of sidebar cells -->
+<td width="150" valign="top" bgcolor="#eecfa1" class="sidebar">
+<!-- start of sidebar table -->
+<table width="100%" border="0" cellspacing="0" cellpadding="3"
+ bgcolor="#ffffff">
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Overview
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="index.html">Home</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="features.html">Features</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="otherstuff.html">Logos and Papers</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="inthenews.html">Mailman in Use</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="prev.html">Previous Releases</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="bugs.html">Bugs and Patches</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="mirrors.html">Mirrors</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">&nbsp;
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Help
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="faq.html">FAQ</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="http://www.python.org/cgi-bin/faqw-mm.py">FAQ
+ Wizard</a> (Exit)
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="lists.html">Mailing lists</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">&nbsp;
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Email Us
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="mailto:mailman-users@python.org">mailman-users@python.org</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&nbsp;
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="http://www.python.org/"><img border=0
+ src="./images/PythonPoweredSmall.png"
+ ></a>&nbsp;<a href="http://sourceforge.net"><img
+ src="http://sourceforge.net/sflogo.php?group_id=103"
+ width="88" height="31" border="0"
+ alt="SourceForge Logo"></a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&nbsp;
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&copy; 1998-2002
+Free Software Foundation, Inc. Verbatim copying and distribution of this
+entire article is permitted in any medium, provided this notice is preserved.
+
+</td></tr>
+</table><!-- end of sidebar table -->
+
+</td>
+<td width="15">&nbsp;&nbsp;</td><!--spacer-->
+<!-- end of sidebar cell -->
+<!-- start of body cell -->
+<td valign="top" width="90%" class="body"><br>
+<h3>Help</h3>
+
+There are many resources available for those who need help with
+Mailman, beyond the <a href="docs.html">on-line documentation</a>. If
+you are having problems installing or configuring Mailman, or if you
+have questions about what Mailman can do, you should probably start
+with the <a href="faq.html">FAQ</a>, and the community driven
+<a href="http://www.python.org/cgi-bin/faqw-mm.py">FAQ Wizard</a>.
+
+<p>Beyond that, please use the <a href="lists.html">discussion
+lists</a> for asking questions. There are lots of very helpful and
+knowledgeable people on the lists who can help. Probably the most
+helpful will be the <a href="http://listowner.org/">Listowners</a>
+mailing list and the
+<a href="http://mail.python.org/mailman/listinfo/mailman-users"
+>mailman-users</a> mailing lists.
+
+</td><!-- end of body cell -->
+</tr><!-- end of sidebar/body row -->
+</table><!-- end of page table -->
+</body></html>
diff --git a/admin/www/i18n.ht b/admin/www/i18n.ht
new file mode 100644
index 00000000..b40d3393
--- /dev/null
+++ b/admin/www/i18n.ht
@@ -0,0 +1,167 @@
+Title: Internationalization
+Links: doco-links.h
+
+<h3>Internationalization</h3>
+
+Mailman 2.1 is fully internationalized. This means you can add
+translations of all the email and web templates so that your users can
+interact with your mailing lists in their native language.
+Internationalization is handled as follows:
+
+<ul>
+ <li>Each Mailman installation has a server default language.
+ Mailman ships with US English as the server default.
+
+ <p><li>Mailman comes with many supported languages, and if your
+ language is on that list, it will just work.
+
+ <p><li>Individual list owners can choose which languages they'd
+ like their mailing list to support from the suite of site-enabled
+ languages. The list owner can also select the list's default
+ language. Mailing lists can thus be monolingual (with English or
+ any other installed language as the default), or they can be
+ multilingual.
+
+ <p><li>Individual users can choose what their preferred language
+ is, from the set of list-enabled languages. Thus, if a list is
+ multilingual, the user can choose which language they'd prefer
+ when interacting with Mailman.
+</ul>
+
+It must be noted that Mailman never actually translates the messages
+that flow through its mailing lists. It's up to the list members to
+adhere to their community's language conventions.
+
+<h3>Mailman Language Champions</h3>
+
+Each language translation has a champion who coordinates updates and
+submits them to the Mailman project. If the language you are
+interested is listed here, please contact the champion for details.
+If your language is not listed here, or if you have general questions
+about I18N Mailman, please contact the
+<a href="http://mail.python.org/mailman/listinfo/mailman-i18n"
+>mailman-i18n@python.org</a> mailing list.
+
+<p>We are investigating using the
+<a href="http://www.iro.umontreal.ca/contrib/po/HTML/">Translation
+Project</a> for future language support.
+
+<dl>
+ <p><dt><b>Catalan</b></dt>
+ <dd><a href="mailto:jordi@debian.org">Jordi Mallach</a> is heading
+ up the Catalan translation effort.
+
+ <p><dt><b>Chinese</b> Simplified (GB), and Big5</dt>
+ <dd><a href="mailto:max.yu@turbolinux.com.cn">Max Yu</a> heads up
+ the Simplified Chinese translation effort. Michael Fang
+ contributed a Big5 mailman.po file, but I've had some trouble
+ converting it to a .mo file with msgfmt. Assistance would be
+ greatly appreciated!
+
+ <p><dt><b>Czech</b></dt>
+ <dd><a href="mailto:dan@ohnesorg.cz">Dan Ohnesorg</a> heads up
+ the Czech translation effort, which has been assisted by
+ <a href="mailto:stan@krnovsko.cz">V. Stanovsky</a>.</dd>
+
+ <p><dt><b>Dutch</b></dt>
+ <dd><a href="mailto:danny@terweij.nl">Danny Terweij</a> and
+ <a href="mailto:sander@steffann.nl">Sander Steffann</a> head up
+ the Dutch translation.
+
+ <p><dt><b>Estonian</b></dt>
+ <dd><a href="mailto:duke@linux.ee">Anti Veeranna</a> heads up the
+ Estonian translation effort.
+
+ <p><dt><b>Finnish</b></dt>
+ <dd><a href="mailto:pekka.haavisto@mtt.fi">Pekka Haavisto</a>
+ heads up the Finnish translation effort.
+
+ <p><dt><b>French</b></dt>
+ <dd><a href="mailto:george@lyon.inserm.fr">Pascal GEORGE</a> and
+ <a href="mailto:wilane@yahoo.com">Ousmane Wilane</a> head up the
+ French translation effort, with a mailing list hosted by
+ <a href="mailto:Fil@rezo.net">Fil</a> at
+ <a href="http://listes.rezo.net/mailman/listinfo/mailman-fr"
+ >http://listes.rezo.net/mailman/listinfo/mailman-fr</a>.
+
+ <p><dt><b>German</b></dt>
+ <dd><a href="mailto:p.heinlein@jpberlin.de">Peer Heinlein</a> is
+ now the German translation champion.
+
+ <p><dt><b>Hungarian</b></dt>
+ <dd><a href="mailto:vizisz@freemail.hu">Vizi Szilard</a>
+ heads up the Hungarian translation effort, with
+ some help from Szabolcs Szigeti and
+ <a href="mailto:Funk.Gabor@hunetkft.hu">Gabor Funk</a>.
+
+ <p><dt><b>Italian</b></dt>
+ <dd><a href="mailto:pioppo@ferrara.linux.it">Simone Piunno</a> is
+ heading up the Italian translations, with help from many others.
+ Simone has created an Italian mailing list for those wishing to
+ help: <a href="http://mailman.ferrara.linux.it/listinfo/mailman-it/"
+ >http://mailman.ferrara.linux.it/listinfo/mailman-it/</a>
+
+ <p><dt><b>Japanese</b></dt>
+ <dd>Tokio Kikuchi maintains the
+ <a href="http://mm.tkikuchi.net/"><em>Japanized Mailman Page</em></a>
+ and also runs a mailing list for Japanese Mailman users, for which
+ the <a href="http://mm.tkikuchi.net/pipermail/mmjp-users/">archives</a>
+ are publically available.
+
+ <p><dt><b>Korean</b></dt>
+ <dd><a href="mailto:song@yaimma.co.kr">song@yaimma.co.kr</a> has
+ volunteered to head up the Korean translation effort.</dd>
+
+ <p><dt><b>Lithuanian</b></dt>
+ <dd><a href="mailto:mantas@akl.lt">Mantas Kriauciunas</a> has
+ contributed a Lithuanian translation.
+
+ <p><dt><b>Norwegian</b></dt>
+ <dd><a href="mailto:Daniel.Buchmann@bibsys.no">Daniel Buchmann</a>
+ heads up the Norwegian translation effort. See also his
+ <a href="http://www.bibsys.no/~db/MM21">Norwegian Mailman Page</a>.
+ </dd>
+
+ <p><dt><b>Polish</b></dt>
+ <dd>Contrary to what you might think knowing my last name, I don't
+ know a word of Polish. :) Fortunately,
+ <a href="mailto:Pawel.Kolodziejczyk@comarch.pl">Pawel
+ Kolodziejczyk</a>, <a href="mailto:wanted@mwd.pl">Marcin
+ Sochacki</a>, and
+ <a href="mailto:m.zaborowski@il.pw.edu.pl">Marcin Zaborowski</a>
+ have volunteered to spearhead the Polish
+ translations.
+
+ <p><dt><b>Portuguese</b></dt>
+ <dd>The following folks are working on the Portuguese
+ translations:
+ <ul>
+ <li><a href="mailto:gleydson.mazioli@ima.sp.gov.br">Gleydson
+ Mazioli da Silva</a>
+ <li><a href="mailto:samarta@ci.uc.pt">João Sá Marta</a>
+ <li><a href="mailto:queiroz@ccuec.unicamp.br">Rubens Queiroz de
+ Almeida</a>,
+ <li><a href="mailto:aleck@unesp.br">Aleck Zander</a>
+ <li><a href="mailto:joseroberto@dicaslinux.com.br">Jose Roberto Kerne</a>.
+ </ul>
+ They are working on both the Brazilian (pt_BR) and Portuguese (pt_PT)
+ translations.
+
+ <p><dt><b>Russian</b></dt>
+ <dd><a href="mailto:mss@mawhrin.net">Mikhail Sobolev</a>
+ has volunteered to head up the Russian translation effort. There
+ is also a <a href="mailto:mailman-ru@only.mawhrin.net">Russian
+ Mailman list</a> for discussion of the Russian translation.
+
+ <p><dt><b>Spanish</b></dt>
+ <dd><a href="mailto:jcrey@uma.es">Juan Carlos Rey Anaya</a> heads
+ up the Spanish translations.
+
+ <p><dt><b>Swedish</b></dt>
+ <dd><a href="mailto:information@arvika.se">Eva &Ouml;sterlind</a>
+ heads up the Swedish translation effort, with help from our
+ Norwegian champion
+ <a href="mailto:Daniel.Buchmann@bibsys.no">Daniel Buchmann</a>.
+
+</dl>
+
diff --git a/admin/www/i18n.html b/admin/www/i18n.html
new file mode 100644
index 00000000..55249df5
--- /dev/null
+++ b/admin/www/i18n.html
@@ -0,0 +1,293 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<!-- THIS PAGE IS AUTOMATICALLY GENERATED. DO NOT EDIT. -->
+<!-- Mon Dec 30 23:25:30 2002 -->
+<!-- USING HT2HTML 2.0 -->
+<!-- SEE http://ht2html.sf.net -->
+<!-- User-specified headers:
+Title: Internationalization
+
+-->
+
+<head>
+<title>Internationalization</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
+<meta name="generator" content="HT2HTML/2.0">
+<style type="text/css">
+body { margin: 0px; }
+</style>
+</head>
+<body bgcolor="#ffffff" text="#000000"
+ marginwidth="0" marginheight="0"
+ link="#0000bb" vlink="#551a8b"
+ alink="#ff0000">
+<!-- start of page table -->
+<table width="100%" border="0" cellspacing="0" cellpadding="0">
+<!-- start of banner row -->
+<tr>
+<!-- start of corner cells -->
+<td width="150" valign="middle" bgcolor="white" class="corner">
+
+<center>
+ <a href="./index.html">
+ <img border=0 src="./images/logo-70.jpg"></a></center> </td>
+<td width="15" bgcolor="#eecfa1">&nbsp;&nbsp;</td><!--spacer-->
+<!-- end of corner cells -->
+<!-- start of banner -->
+<td width="90%" bgcolor="#eecfa1" class="banner">
+<!-- start of site links table -->
+<table width="100%" border="0"
+CELLSPACING=0 CELLPADDING=0
+ bgcolor="#ffffff">
+<tr>
+ <td bgcolor="#eecfa1">
+<a href="./index.html">Home</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./docs.html">Documentation</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./lists.html">Mailing lists</a>
+ </td>
+</tr><tr>
+ <td bgcolor="#eecfa1">
+<a href="./help.html">Help</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./download.html">Download</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./devs.html">Developers</a>
+ </td>
+</tr>
+</table><!-- end of site links table -->
+
+</td><!-- end of banner -->
+</tr><!-- end of banner row -->
+<tr><!-- start of sidebar/body row -->
+<!-- start of sidebar cells -->
+<td width="150" valign="top" bgcolor="#eecfa1" class="sidebar">
+<!-- start of sidebar table -->
+<table width="100%" border="0" cellspacing="0" cellpadding="3"
+ bgcolor="#ffffff">
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Documentation
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="docs.html">Overview</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="users.html">Users</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="admins.html">List Managers</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="site.html">Site Administrators</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<b>Translators</b>
+</td></tr>
+<tr><td bgcolor="#eecfa1">&nbsp;
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Email Us
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="mailto:mailman-users@python.org">mailman-users@python.org</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&nbsp;
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="http://www.python.org/"><img border=0
+ src="./images/PythonPoweredSmall.png"
+ ></a>&nbsp;<a href="http://sourceforge.net"><img
+ src="http://sourceforge.net/sflogo.php?group_id=103"
+ width="88" height="31" border="0"
+ alt="SourceForge Logo"></a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&nbsp;
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&copy; 1998-2002
+Free Software Foundation, Inc. Verbatim copying and distribution of this
+entire article is permitted in any medium, provided this notice is preserved.
+
+</td></tr>
+</table><!-- end of sidebar table -->
+
+</td>
+<td width="15">&nbsp;&nbsp;</td><!--spacer-->
+<!-- end of sidebar cell -->
+<!-- start of body cell -->
+<td valign="top" width="90%" class="body"><br>
+<h3>Internationalization</h3>
+
+Mailman 2.1 is fully internationalized. This means you can add
+translations of all the email and web templates so that your users can
+interact with your mailing lists in their native language.
+Internationalization is handled as follows:
+
+<ul>
+ <li>Each Mailman installation has a server default language.
+ Mailman ships with US English as the server default.
+
+ <p><li>Mailman comes with many supported languages, and if your
+ language is on that list, it will just work.
+
+ <p><li>Individual list owners can choose which languages they'd
+ like their mailing list to support from the suite of site-enabled
+ languages. The list owner can also select the list's default
+ language. Mailing lists can thus be monolingual (with English or
+ any other installed language as the default), or they can be
+ multilingual.
+
+ <p><li>Individual users can choose what their preferred language
+ is, from the set of list-enabled languages. Thus, if a list is
+ multilingual, the user can choose which language they'd prefer
+ when interacting with Mailman.
+</ul>
+
+It must be noted that Mailman never actually translates the messages
+that flow through its mailing lists. It's up to the list members to
+adhere to their community's language conventions.
+
+<h3>Mailman Language Champions</h3>
+
+Each language translation has a champion who coordinates updates and
+submits them to the Mailman project. If the language you are
+interested is listed here, please contact the champion for details.
+If your language is not listed here, or if you have general questions
+about I18N Mailman, please contact the
+<a href="http://mail.python.org/mailman/listinfo/mailman-i18n"
+>mailman-i18n@python.org</a> mailing list.
+
+<p>We are investigating using the
+<a href="http://www.iro.umontreal.ca/contrib/po/HTML/">Translation
+Project</a> for future language support.
+
+<dl>
+ <p><dt><b>Catalan</b></dt>
+ <dd><a href="mailto:jordi@debian.org">Jordi Mallach</a> is heading
+ up the Catalan translation effort.
+
+ <p><dt><b>Chinese</b> Simplified (GB), and Big5</dt>
+ <dd><a href="mailto:max.yu@turbolinux.com.cn">Max Yu</a> heads up
+ the Simplified Chinese translation effort. Michael Fang
+ contributed a Big5 mailman.po file, but I've had some trouble
+ converting it to a .mo file with msgfmt. Assistance would be
+ greatly appreciated!
+
+ <p><dt><b>Czech</b></dt>
+ <dd><a href="mailto:dan@ohnesorg.cz">Dan Ohnesorg</a> heads up
+ the Czech translation effort, which has been assisted by
+ <a href="mailto:stan@krnovsko.cz">V. Stanovsky</a>.</dd>
+
+ <p><dt><b>Dutch</b></dt>
+ <dd><a href="mailto:danny@terweij.nl">Danny Terweij</a> and
+ <a href="mailto:sander@steffann.nl">Sander Steffann</a> head up
+ the Dutch translation.
+
+ <p><dt><b>Estonian</b></dt>
+ <dd><a href="mailto:duke@linux.ee">Anti Veeranna</a> heads up the
+ Estonian translation effort.
+
+ <p><dt><b>Finnish</b></dt>
+ <dd><a href="mailto:pekka.haavisto@mtt.fi">Pekka Haavisto</a>
+ heads up the Finnish translation effort.
+
+ <p><dt><b>French</b></dt>
+ <dd><a href="mailto:george@lyon.inserm.fr">Pascal GEORGE</a> and
+ <a href="mailto:wilane@yahoo.com">Ousmane Wilane</a> head up the
+ French translation effort, with a mailing list hosted by
+ <a href="mailto:Fil@rezo.net">Fil</a> at
+ <a href="http://listes.rezo.net/mailman/listinfo/mailman-fr"
+ >http://listes.rezo.net/mailman/listinfo/mailman-fr</a>.
+
+ <p><dt><b>German</b></dt>
+ <dd><a href="mailto:p.heinlein@jpberlin.de">Peer Heinlein</a> is
+ now the German translation champion.
+
+ <p><dt><b>Hungarian</b></dt>
+ <dd><a href="mailto:vizisz@freemail.hu">Vizi Szilard</a>
+ heads up the Hungarian translation effort, with
+ some help from Szabolcs Szigeti and
+ <a href="mailto:Funk.Gabor@hunetkft.hu">Gabor Funk</a>.
+
+ <p><dt><b>Italian</b></dt>
+ <dd><a href="mailto:pioppo@ferrara.linux.it">Simone Piunno</a> is
+ heading up the Italian translations, with help from many others.
+ Simone has created an Italian mailing list for those wishing to
+ help: <a href="http://mailman.ferrara.linux.it/listinfo/mailman-it/"
+ >http://mailman.ferrara.linux.it/listinfo/mailman-it/</a>
+
+ <p><dt><b>Japanese</b></dt>
+ <dd>Tokio Kikuchi maintains the
+ <a href="http://mm.tkikuchi.net/"><em>Japanized Mailman Page</em></a>
+ and also runs a mailing list for Japanese Mailman users, for which
+ the <a href="http://mm.tkikuchi.net/pipermail/mmjp-users/">archives</a>
+ are publically available.
+
+ <p><dt><b>Korean</b></dt>
+ <dd><a href="mailto:song@yaimma.co.kr">song@yaimma.co.kr</a> has
+ volunteered to head up the Korean translation effort.</dd>
+
+ <p><dt><b>Lithuanian</b></dt>
+ <dd><a href="mailto:mantas@akl.lt">Mantas Kriauciunas</a> has
+ contributed a Lithuanian translation.
+
+ <p><dt><b>Norwegian</b></dt>
+ <dd><a href="mailto:Daniel.Buchmann@bibsys.no">Daniel Buchmann</a>
+ heads up the Norwegian translation effort. See also his
+ <a href="http://www.bibsys.no/~db/MM21">Norwegian Mailman Page</a>.
+ </dd>
+
+ <p><dt><b>Polish</b></dt>
+ <dd>Contrary to what you might think knowing my last name, I don't
+ know a word of Polish. :) Fortunately,
+ <a href="mailto:Pawel.Kolodziejczyk@comarch.pl">Pawel
+ Kolodziejczyk</a>, <a href="mailto:wanted@mwd.pl">Marcin
+ Sochacki</a>, and
+ <a href="mailto:m.zaborowski@il.pw.edu.pl">Marcin Zaborowski</a>
+ have volunteered to spearhead the Polish
+ translations.
+
+ <p><dt><b>Portuguese</b></dt>
+ <dd>The following folks are working on the Portuguese
+ translations:
+ <ul>
+ <li><a href="mailto:gleydson.mazioli@ima.sp.gov.br">Gleydson
+ Mazioli da Silva</a>
+ <li><a href="mailto:samarta@ci.uc.pt">João Sá Marta</a>
+ <li><a href="mailto:queiroz@ccuec.unicamp.br">Rubens Queiroz de
+ Almeida</a>,
+ <li><a href="mailto:aleck@unesp.br">Aleck Zander</a>
+ <li><a href="mailto:joseroberto@dicaslinux.com.br">Jose Roberto Kerne</a>.
+ </ul>
+ They are working on both the Brazilian (pt_BR) and Portuguese (pt_PT)
+ translations.
+
+ <p><dt><b>Russian</b></dt>
+ <dd><a href="mailto:mss@mawhrin.net">Mikhail Sobolev</a>
+ has volunteered to head up the Russian translation effort. There
+ is also a <a href="mailto:mailman-ru@only.mawhrin.net">Russian
+ Mailman list</a> for discussion of the Russian translation.
+
+ <p><dt><b>Spanish</b></dt>
+ <dd><a href="mailto:jcrey@uma.es">Juan Carlos Rey Anaya</a> heads
+ up the Spanish translations.
+
+ <p><dt><b>Swedish</b></dt>
+ <dd><a href="mailto:information@arvika.se">Eva &Ouml;sterlind</a>
+ heads up the Swedish translation effort, with help from our
+ Norwegian champion
+ <a href="mailto:Daniel.Buchmann@bibsys.no">Daniel Buchmann</a>.
+
+</dl>
+
+
+</td><!-- end of body cell -->
+</tr><!-- end of sidebar/body row -->
+</table><!-- end of page table -->
+</body></html>
diff --git a/admin/www/images/PythonPoweredSmall.png b/admin/www/images/PythonPoweredSmall.png
new file mode 100644
index 00000000..081f72e8
--- /dev/null
+++ b/admin/www/images/PythonPoweredSmall.png
Binary files differ
diff --git a/admin/www/images/dragonlogo.jpg b/admin/www/images/dragonlogo.jpg
new file mode 100644
index 00000000..e184f3c6
--- /dev/null
+++ b/admin/www/images/dragonlogo.jpg
Binary files differ
diff --git a/admin/www/images/logo-70.jpg b/admin/www/images/logo-70.jpg
new file mode 100644
index 00000000..20e19389
--- /dev/null
+++ b/admin/www/images/logo-70.jpg
Binary files differ
diff --git a/admin/www/images/logo-lg.jpg b/admin/www/images/logo-lg.jpg
new file mode 100644
index 00000000..e184f3c6
--- /dev/null
+++ b/admin/www/images/logo-lg.jpg
Binary files differ
diff --git a/admin/www/images/logo-sm.jpg b/admin/www/images/logo-sm.jpg
new file mode 100644
index 00000000..94a4c011
--- /dev/null
+++ b/admin/www/images/logo-sm.jpg
Binary files differ
diff --git a/admin/www/images/mailman.jpg b/admin/www/images/mailman.jpg
new file mode 100644
index 00000000..83c3e8f2
--- /dev/null
+++ b/admin/www/images/mailman.jpg
Binary files differ
diff --git a/admin/www/index.ht b/admin/www/index.ht
new file mode 100644
index 00000000..4b97f45d
--- /dev/null
+++ b/admin/www/index.ht
@@ -0,0 +1,59 @@
+Title: Mailman, the GNU Mailing List Manager
+Other-links:
+ <h3>Exits</h3>
+ <li><a href="http://sf.net/projects/mailman">SF Project Page</a>
+ <li><a href="lists.html">Discussion Lists</a>
+ <li><a href="http://www.python.org/">Python</a>
+ <li><a href="http://www.gnu.org/">GNU</a>
+ <li><a href="http://barry.warsaw.us/">Barry Warsaw</a>
+
+
+<h3>Mailman, the GNU Mailing List Manager</h3>
+
+Mailman is free software for managing electronic mail discussion and
+e-newsletter lists. Mailman is integrated with the web, making it
+easy for users to manage their accounts and for list owners to
+administer their lists. Mailman supports built-in archiving,
+automatic bounce processing, content filtering, digest delivery, spam
+filters, and more. See the <a href="features.html">features page</a>
+for details.
+
+<p>Mailman is free software, distributed under the
+<a href="http://www.gnu.org/copyleft/gpl.html">GNU General Public
+License</a>. Mailman is written in the
+<a href="http://www.python.org/">Python</a>
+programming language, with a little bit of C code for security.
+
+<p>The name of this software is spelled <em>Mailman</em>
+with a capital leading <em>M</em> and a lowercase second <em>m</em>.
+It is incorrect to spell it "MailMan" (i.e. you should not use
+StudlyCaps).
+<!-- Mailman is gender neutral, low carb, kid safe, drug
+free, high octane, slightly lemony flavored... and easier to remember
+than <a href="http://www.eve-golden.com/images/FloobsOPT--OK.jpg">Floob
+Boober Bab Boober Bubs</a>. -->
+
+<h3>Current Version</h3>
+
+<p>Version
+<!-VERSION--->2.1<!-VERSION--->,
+(released on
+<!-DATE--->30-Dec-2002<!-DATE--->)
+is the current released version of Mailman, in production at many
+sites.
+
+<h3>Acknowledgements</h3>
+
+<p>Mailman's lead developer is
+<a href="http://barry.warsaw.us">Barry Warsaw</a> who can be contacted
+at <a href="mailto:barry@python.org">barry@python.org</a>.
+
+<p>Thanks go to
+<a href="http://www.control.com/">Control.com</a> for their
+sponsorship of new Mailman 2.1 features such as the topic filters,
+external membership sources, and "virtual" mailing lists. Also, a
+huge thanks goes out to my employer <a href="http://www.zope.com">Zope
+Corporation</a> for their support, as well as the
+<a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/mailman/mailman/ACKNOWLEDGMENTS?rev=HEAD&content-type=text/vnd.viewcvs-markup"
+>list of contributors</a>, bug hunters, big idea people, and others
+who have helped immensely with Mailman's development.
diff --git a/admin/www/index.html b/admin/www/index.html
new file mode 100644
index 00000000..903e9e49
--- /dev/null
+++ b/admin/www/index.html
@@ -0,0 +1,204 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<!-- THIS PAGE IS AUTOMATICALLY GENERATED. DO NOT EDIT. -->
+<!-- Mon Dec 30 23:30:18 2002 -->
+<!-- USING HT2HTML 2.0 -->
+<!-- SEE http://ht2html.sf.net -->
+<!-- User-specified headers:
+Title: Mailman, the GNU Mailing List Manager
+
+-->
+
+<head>
+<title>Mailman, the GNU Mailing List Manager</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
+<meta name="generator" content="HT2HTML/2.0">
+<style type="text/css">
+body { margin: 0px; }
+</style>
+</head>
+<body bgcolor="#ffffff" text="#000000"
+ marginwidth="0" marginheight="0"
+ link="#0000bb" vlink="#551a8b"
+ alink="#ff0000">
+<!-- start of page table -->
+<table width="100%" border="0" cellspacing="0" cellpadding="0">
+<!-- start of banner row -->
+<tr>
+<!-- start of corner cells -->
+<td width="150" valign="middle" bgcolor="white" class="corner">
+
+<center>
+ <a href="./index.html">
+ <img border=0 src="./images/logo-70.jpg"></a></center> </td>
+<td width="15" bgcolor="#eecfa1">&nbsp;&nbsp;</td><!--spacer-->
+<!-- end of corner cells -->
+<!-- start of banner -->
+<td width="90%" bgcolor="#eecfa1" class="banner">
+<!-- start of site links table -->
+<table width="100%" border="0"
+CELLSPACING=0 CELLPADDING=0
+ bgcolor="#ffffff">
+<tr>
+ <td bgcolor="#eecfa1">
+<b>Home</b>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./docs.html">Documentation</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./lists.html">Mailing lists</a>
+ </td>
+</tr><tr>
+ <td bgcolor="#eecfa1">
+<a href="./help.html">Help</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./download.html">Download</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./devs.html">Developers</a>
+ </td>
+</tr>
+</table><!-- end of site links table -->
+
+</td><!-- end of banner -->
+</tr><!-- end of banner row -->
+<tr><!-- start of sidebar/body row -->
+<!-- start of sidebar cells -->
+<td width="150" valign="top" bgcolor="#eecfa1" class="sidebar">
+<!-- start of sidebar table -->
+<table width="100%" border="0" cellspacing="0" cellpadding="3"
+ bgcolor="#ffffff">
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Overview
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<b>Home</b>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="features.html">Features</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="otherstuff.html">Logos and Papers</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="inthenews.html">Mailman in Use</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="prev.html">Previous Releases</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="bugs.html">Bugs and Patches</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="mirrors.html">Mirrors</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">&nbsp;
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Exits
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="http://sf.net/projects/mailman">SF Project Page</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="lists.html">Discussion Lists</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="http://www.python.org/">Python</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="http://www.gnu.org/">GNU</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="http://barry.warsaw.us/">Barry Warsaw</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">&nbsp;
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Email Us
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="mailto:mailman-users@python.org">mailman-users@python.org</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&nbsp;
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="http://www.python.org/"><img border=0
+ src="./images/PythonPoweredSmall.png"
+ ></a>&nbsp;<a href="http://sourceforge.net"><img
+ src="http://sourceforge.net/sflogo.php?group_id=103"
+ width="88" height="31" border="0"
+ alt="SourceForge Logo"></a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&nbsp;
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&copy; 1998-2002
+Free Software Foundation, Inc. Verbatim copying and distribution of this
+entire article is permitted in any medium, provided this notice is preserved.
+
+</td></tr>
+</table><!-- end of sidebar table -->
+
+</td>
+<td width="15">&nbsp;&nbsp;</td><!--spacer-->
+<!-- end of sidebar cell -->
+<!-- start of body cell -->
+<td valign="top" width="90%" class="body"><br>
+
+<h3>Mailman, the GNU Mailing List Manager</h3>
+
+Mailman is free software for managing electronic mail discussion and
+e-newsletter lists. Mailman is integrated with the web, making it
+easy for users to manage their accounts and for list owners to
+administer their lists. Mailman supports built-in archiving,
+automatic bounce processing, content filtering, digest delivery, spam
+filters, and more. See the <a href="features.html">features page</a>
+for details.
+
+<p>Mailman is free software, distributed under the
+<a href="http://www.gnu.org/copyleft/gpl.html">GNU General Public
+License</a>. Mailman is written in the
+<a href="http://www.python.org/">Python</a>
+programming language, with a little bit of C code for security.
+
+<p>The name of this software is spelled <em>Mailman</em>
+with a capital leading <em>M</em> and a lowercase second <em>m</em>.
+It is incorrect to spell it "MailMan" (i.e. you should not use
+StudlyCaps).
+<!-- Mailman is gender neutral, low carb, kid safe, drug
+free, high octane, slightly lemony flavored... and easier to remember
+than <a href="http://www.eve-golden.com/images/FloobsOPT--OK.jpg">Floob
+Boober Bab Boober Bubs</a>. -->
+
+<h3>Current Version</h3>
+
+<p>Version
+<!-VERSION--->2.1<!-VERSION--->,
+(released on
+<!-DATE--->30-Dec-2002<!-DATE--->)
+is the current released version of Mailman, in production at many
+sites.
+
+<h3>Acknowledgements</h3>
+
+<p>Mailman's lead developer is
+<a href="http://barry.warsaw.us">Barry Warsaw</a> who can be contacted
+at <a href="mailto:barry@python.org">barry@python.org</a>.
+
+<p>Thanks go to
+<a href="http://www.control.com/">Control.com</a> for their
+sponsorship of new Mailman 2.1 features such as the topic filters,
+external membership sources, and "virtual" mailing lists. Also, a
+huge thanks goes out to my employer <a href="http://www.zope.com">Zope
+Corporation</a> for their support, as well as the
+<a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/mailman/mailman/ACKNOWLEDGMENTS?rev=HEAD&content-type=text/vnd.viewcvs-markup"
+>list of contributors</a>, bug hunters, big idea people, and others
+who have helped immensely with Mailman's development.
+
+</td><!-- end of body cell -->
+</tr><!-- end of sidebar/body row -->
+</table><!-- end of page table -->
+</body></html>
diff --git a/admin/www/install-links.h b/admin/www/install-links.h
new file mode 100644
index 00000000..5774631f
--- /dev/null
+++ b/admin/www/install-links.h
@@ -0,0 +1,11 @@
+<!-- -*- html -*- -->
+<h3>Installing Mailman</h3>
+<li><a href="install-start.html">Start installing</a>
+<li><a href="install-system.html">System setup</a>
+<li><a href="install-config.html">Running configure</a>
+<li><a href="install-check.html">Check your installation</a>
+<li><a href="install-final.html">Final system setup</a>
+<li><a href="install-custom.html">Customize Mailman</a>
+<li><a href="install-test.html">Create a test list</a>
+<li><a href="install-trouble.html">Troubleshooting</a>
+<li><a href="install-faq.html">Common problems FAQ</a>
diff --git a/admin/www/install.ht b/admin/www/install.ht
new file mode 100644
index 00000000..1db5cb81
--- /dev/null
+++ b/admin/www/install.ht
@@ -0,0 +1,17 @@
+Title: Installing Mailman
+Links: download-links.h
+
+<h3>Installing Mailman</h3>
+
+For detailed installation instructions, please see the
+<code>INSTALL</code> file in the source distribution.
+
+<!-- Commented out, but I hope to make this true soon
+
+For detailed installation instructions, see the <em>Installing</em>
+chapter of the <a href="site.html">Site Administrator's Guide</a>.
+-->
+
+Be sure to read the <code>README</code> and <code>UPGRADING</code>
+files in the source distribution for additional instructions, hints,
+and warnings.
diff --git a/admin/www/install.html b/admin/www/install.html
new file mode 100644
index 00000000..3894dbba
--- /dev/null
+++ b/admin/www/install.html
@@ -0,0 +1,140 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<!-- THIS PAGE IS AUTOMATICALLY GENERATED. DO NOT EDIT. -->
+<!-- Mon Dec 30 23:25:30 2002 -->
+<!-- USING HT2HTML 2.0 -->
+<!-- SEE http://ht2html.sf.net -->
+<!-- User-specified headers:
+Title: Installing Mailman
+
+-->
+
+<head>
+<title>Installing Mailman</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
+<meta name="generator" content="HT2HTML/2.0">
+<style type="text/css">
+body { margin: 0px; }
+</style>
+</head>
+<body bgcolor="#ffffff" text="#000000"
+ marginwidth="0" marginheight="0"
+ link="#0000bb" vlink="#551a8b"
+ alink="#ff0000">
+<!-- start of page table -->
+<table width="100%" border="0" cellspacing="0" cellpadding="0">
+<!-- start of banner row -->
+<tr>
+<!-- start of corner cells -->
+<td width="150" valign="middle" bgcolor="white" class="corner">
+
+<center>
+ <a href="./index.html">
+ <img border=0 src="./images/logo-70.jpg"></a></center> </td>
+<td width="15" bgcolor="#eecfa1">&nbsp;&nbsp;</td><!--spacer-->
+<!-- end of corner cells -->
+<!-- start of banner -->
+<td width="90%" bgcolor="#eecfa1" class="banner">
+<!-- start of site links table -->
+<table width="100%" border="0"
+CELLSPACING=0 CELLPADDING=0
+ bgcolor="#ffffff">
+<tr>
+ <td bgcolor="#eecfa1">
+<a href="./index.html">Home</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./docs.html">Documentation</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./lists.html">Mailing lists</a>
+ </td>
+</tr><tr>
+ <td bgcolor="#eecfa1">
+<a href="./help.html">Help</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./download.html">Download</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./devs.html">Developers</a>
+ </td>
+</tr>
+</table><!-- end of site links table -->
+
+</td><!-- end of banner -->
+</tr><!-- end of banner row -->
+<tr><!-- start of sidebar/body row -->
+<!-- start of sidebar cells -->
+<td width="150" valign="top" bgcolor="#eecfa1" class="sidebar">
+<!-- start of sidebar table -->
+<table width="100%" border="0" cellspacing="0" cellpadding="3"
+ bgcolor="#ffffff">
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Downloading
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="download.html">Downloading</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="version.html">Latest Version</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="requirements.html">Requirements</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<b>Installing</b>
+</td></tr>
+<tr><td bgcolor="#eecfa1">&nbsp;
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Email Us
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="mailto:mailman-users@python.org">mailman-users@python.org</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&nbsp;
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="http://www.python.org/"><img border=0
+ src="./images/PythonPoweredSmall.png"
+ ></a>&nbsp;<a href="http://sourceforge.net"><img
+ src="http://sourceforge.net/sflogo.php?group_id=103"
+ width="88" height="31" border="0"
+ alt="SourceForge Logo"></a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&nbsp;
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&copy; 1998-2002
+Free Software Foundation, Inc. Verbatim copying and distribution of this
+entire article is permitted in any medium, provided this notice is preserved.
+
+</td></tr>
+</table><!-- end of sidebar table -->
+
+</td>
+<td width="15">&nbsp;&nbsp;</td><!--spacer-->
+<!-- end of sidebar cell -->
+<!-- start of body cell -->
+<td valign="top" width="90%" class="body"><br>
+<h3>Installing Mailman</h3>
+
+For detailed installation instructions, please see the
+<code>INSTALL</code> file in the source distribution.
+
+<!-- Commented out, but I hope to make this true soon
+
+For detailed installation instructions, see the <em>Installing</em>
+chapter of the <a href="site.html">Site Administrator's Guide</a>.
+-->
+
+Be sure to read the <code>README</code> and <code>UPGRADING</code>
+files in the source distribution for additional instructions, hints,
+and warnings.
+
+</td><!-- end of body cell -->
+</tr><!-- end of sidebar/body row -->
+</table><!-- end of page table -->
+</body></html>
diff --git a/admin/www/inthenews.ht b/admin/www/inthenews.ht
new file mode 100644
index 00000000..f3a20348
--- /dev/null
+++ b/admin/www/inthenews.ht
@@ -0,0 +1,504 @@
+Title: Mailman in Use and in the News
+
+<h3>Mailman in Use and in the News</h3>
+
+Mailman was featured as the Project of the Month in the
+<a href="http://www.linux-mag.com/2002-05/toc.html">May 2002 issue of
+Linux Magazine</a>.
+
+<p>Mailman was featured in a cover story article in the March 1999
+issue of SunWorld (apparently no longer on-line). The article was
+written by Cameron Laird and Kathryn Soraiz.
+
+<p>Mailman was briefly mentioned in a ZDNet article on GNU/Linux.
+This was picked up by MSNBC. Unfortunately, both these links also
+appear to be dead now too.
+
+<p>Below are the lists of sites using Mailman or providing list hosting
+services using Mailman. If you'd like to be included in this list,
+please <a href="mailto:mailman-cabal@python.org">let us know</a>.
+
+<p>The following sites provide mailing list hosting services using
+Mailman. If you like Mailman but still don't want to install it on
+your own systems, you might consider having your list hosted at one of
+these sites. Inclusion in this list does <em>not</em> construe an
+endorsement or recommendation by the Mailman development team, nor is
+there any relationship between them and us, beyond their use of our
+free software. Some of these services may have restrictions or fees
+for use.
+
+<ul>
+ <li><a href="http://www.pair.com/pair/pairlist/">Pair List</a>
+ <!-- Sheryl Coe -->
+ <li><a href="http://www.reportica.net/">Reportica Service
+ Bureau</a>. Reportica has put up a <a
+ href="http://www.reportica.net/services/lists/host/screen-index.html"
+ >demo of their service</a>.
+ <!-- CarlC -->
+ <li><a href="http://www.carlc.com/">CarlC Internet Services</a>
+</ul>
+
+
+<p>The following sites (in no particular order) are known to use
+Mailman or Mailman technology to run their mailing lists.
+
+<ul>
+ <!-- Chuq von Rospach -->
+ <li><a href="http://lists.apple.com/">Apple Computer, Inc.</a>
+ <!-- Luke Tymowski -->
+ <li><a href="http://lists.us.dell.com/mailman/listinfo">Dell Computers</a>
+ <!-- Keith Packard -->
+ <li><a href="http://xfree86.org/">The XFree86 Project, Inc.</a>
+ <!-- Marc Merlin -->
+ <li><a href="http://valinux.com/">VA Linux</a>
+ <li><a href="http://sourceforge.net/">SourceForge.net</a>
+ <!-- Ricardo Kustner -->
+ <li><a href="http://www.freshmeat.net/">FreshMeat</a>
+ <!-- Jason R. Mastaler -->
+ <li><a href="http://www.xemacs.org/">XEmacs.Org</a>
+ <!-- Jeff Barger -->
+ <li><a href="http://www.listserve.com/">ListServe.com</a>
+ <!-- Sean Reifschneider -->
+ <li><a href="http://tummy.com/">tummy.com</a> (lots of Linux
+ lists)
+ <!-- Roger Pena -->
+ <li><a href="http://www.redhat.com/">RedHat, Inc.</a>
+ <li><a href="http://lists.samba.org/">Samba</a>
+ <!-- Chris Howells -->
+ <li><a href="http://mail.kde.org/mailman/listinfo">KDE Project</a>
+ <!-- Barry Warsaw -->
+ <li><a href="http://www.python.org/sigs/">Python.Org</a>
+ <li><a href="http://lists.zope.org/">Zope.org</a>
+ <li><a href="http://www.zope.com/">Zope.com</a> (<em>Yay!</em>)
+ <!-- Owen Taylor -->
+ <li><a href="http://mail.gnome.org/">GNOME.Org</a>
+ <!-- Sarah Stapleton-Gray -->
+ <li><a href="http://www.now.org/">National Organization of Women</a>
+ <!-- Nigel Metheringham -->
+ <li><a href="http://www.exim.org/">Exim.Org</a> (see also Nigel's
+ <a href="http://www.exim.org/pipermail/exim-users">htdig
+ extensions</a> in action for searchable archives)
+ <li><a href="http://list.wylug.org.uk/mailman/listinfo">Yorkshire
+ Linux User Group mailing lists</a>
+ <!-- Marc Merlin -->
+ <li><a href="http://linuxia64.org/">IA-64 Linux Project</a>
+ <!-- Markus Grundmann -->
+ <li><a href="http://www.orsn.org/">ORSN, Open Root Server Network
+ in Europe</a>
+ <!-- Jim Hebert -->
+ <li><a href="http://www.cosource.com/">Cosource.com</a>
+ <li><a href="http://www.vistasource.com/">VistaSource.com</a>
+ (private lists only, currently)
+ <!-- Bill Bradford -->
+ <li><a href="http://www.sunhelp.org/mailman/listinfo/">SunHelp.Org</a>
+ <li><a href="http://www.sunmanagers.org/mailman/listinfo">Sun Managers</a>
+ <li><a href="http://www.linuxmanagers.org/mailman/listinfo">Linux
+ Managers</a>
+ <!-- Bill Hoffman -->
+ <li><a href="http://public.kitware.com/">Visualization Tool Kit
+ (VTK)</a>
+ <!-- J C Lawrence -->
+ <li><a href="https://www.kanga.nu/lists/listinfo/">Kanga.NU<a>
+ <!-- Michael Dunston -->
+ <li><a href="http://www.music.vt.edu">Music and Technology
+ Department, Virginia Tech School of the Arts</a>
+ <!-- Nick Marouf -->
+ <li><a href="http://www.earlham.edu">Earlham College</a>
+ <!-- Mike Richardson -->
+ <li><a href="http://lists.man.ac.uk/mailman/listinfo">University
+ of Manchester</a>
+ <!-- Jeff Berliner -->
+ <li><a href="http://endeavor.med.nyu.edu/mailman/listinfo">New York
+ University School of Medicine</a>
+ <!-- Marco Obaid -->
+ <li><a href="http://lists.MUW.Edu/">Mississippi University for Women</a>
+ <!-- Carel Braam -->
+ <li><a href="http://pegasus.tue.nl">Eindhoven University of Technology</a>
+ <!-- Prof. Marcelo Maia Sobral -->
+ <li>University of vale do Itajai, Sao Jose, Brasil
+ <!-- Conal Garrity -->
+ <li><a href="http://www.kvsc.org/">KVSC Radio, St. Cloud State
+ University, MN</a>
+ <!-- Babak Mostaghassi -->
+ <li><a href="http://ill.iut.ac.ir/">Linux Lab of Isfahan
+ University Of Technology</a>
+ <!-- Aly S.P Dharshi -->
+ <li>University of Lethbridge Organization of Residence Students
+ <!-- Courtney V. Bearse -->
+ <li><a href="http://linux.uky.edu/mailman/listinfo/">University of
+ Kentucky</a>
+ <!-- Jonathan Abela -->
+ <li><a href="http://engsoc.queensu.ca">Queen's Engineering</a>
+
+ <!-- Chuq von Rospach's alter ego -->
+ <li><a href="http://www.hockeyfanz.com/">HockeyFanz.com</a>
+ <!-- Johnny Fuerst -->
+ <li><a href="http://mail.cathat.net/mailman/listinfo/">The CatHat
+ Republic</a>
+ <!-- Phil Barnett -->
+ <li><a
+ href="http://www.matrixlist.com/mailman/listinfo">www.matrixlist.com</a>
+ <!-- John A. Martin -->
+ <li><a href="http://lists.essential.org/">lists.essential.org</a>
+ <!-- Dan Mick -->
+ <li><a href="http://socal-raves.org/">SoCal-Raves.org</a>
+ <!-- Peter Murray -->
+ <li><a href="http://www.ravedata.com/">ravedata.com</a>
+ <!-- Satya -->
+ <li><a href="http://txr.cjb.net/ml.html">TSEC mailing list</a>
+ <li><a href="http://quickapps.cjb.net/ml.html">GRE (grad studies)
+ mailing list</a>
+ <!-- tim -->
+ <li><a href="http://www.hal2001.org">HAL (Hackers at Large) 2001</a>
+ <!-- Rodrigo Moya -->
+ <li><a href="http://www.essential-is.com/">www.essential-is.com</a>
+ <!-- Kevin N. Carpenter -->
+ <li><a href="http://www.seaplace.org/">FishRoom</a>
+ <!-- Dan Ohnesorg -->
+ <li><a href="http://www.debian.cz/">www.debian.cz</a>
+ <li><a href="http://dali.feld.cvut.cz/">dali.feld.cvut.cz</a>
+ <!-- Stephan Berndts -->
+ <li><a href="http://lists.spline.de/">lists.spline.de</a>
+ <!-- W. Reilly Cooley -->
+ <li><a href="http://mail.wirex.com/">mail.wirex.com</a>
+ <!-- Roger Pena -->
+ <li><a href="http://www.linux.cu/">linux.cu</a>
+ <!-- Ricardo Kustner -->
+ <li><a href="http://www.miss-janet.com/">www.miss-janet.com</a>
+ <!-- I.Ioannou -->
+ <li><a href="http://lists.hellug.gr">Greek LUG</a>
+ <!-- George Dinwiddie -->
+ <li><a href="http://www.alberg30.org/">alberg30.org</a>
+ <!-- Jeff Berliner -->
+ <li><a href="http://www.anthem2000.com/">anthem2000.com</a>
+ <!-- Mentor Cana -->
+ <li><a href="http://www.alb-net.com/mailman/listinfo">www.alb-net.com</a>
+ <!-- Les Niles -->
+ <li><a
+ href="http://www.aviating.com/mooney/">www.aviating.com</a>
+ <li><a href="http://www.kjsl.com/">www.kjsl.com</a>
+ <!-- Brian Edmonds -->
+ <li><a href="http://gweep.ca/">gweep.ca</a>
+ <li><a href="http://antarti.ca/">antarti.ca</a>
+ <!-- Adam J -->
+ <li><a href="http://dumpshock.com/">dumpshock.com</a>
+ <!-- Christopher Schulte -->
+ <li><a href="http://lists.schulte.org/">home of the linux pptp
+ server (among others)</a>
+ <!-- Matthias Saou -->
+ <li><a href="http://www.aldil.org/">ALDIL, a French free software
+ user group</a>
+ <!-- Bruno Unna -->
+ <li><a href="http://www.iac.com.mx/">Internet de Alta Calidad</a>
+ with some
+ <a href="http://iac.com.mx/mailman/listinfo/">public mailing lists</a>.
+ <!-- Johannes B. Ullrich -->
+ <li><a href="http://dsheild.org/">dsheild.org</a>
+ <!-- Luca "Ghedo" Ghedini -->
+ <li><a href="http://ing.unibo.it">ing.unibo.it</a> and
+ <a href="http://deis.unibo.it">deis.unibo.it</a>, and "lots of
+ virtual domains".
+ <!-- Fred Herman -->
+ <li><a href="http://www.pplug.org/">Pikes Peak Linux Users
+ Group</a> and
+ <li><a href="http://www.springsdanceclub.com">Colorado Springs Dance
+ Club</a>
+ <!-- Matthew Enger -->
+ <li><a href="http://www.dhs.org">www.dhs.org</a>
+ <!-- Jason Wood -->
+ <li><a href="http://lists.ccil.org/">Chester County InterLink</a>
+ (also supporting a number of other non-profits, including the
+ National Associate of Social Workers, Philadelphia region.
+ <!-- Krzysztof Wychowalek -->
+ <li><a href="http://www.most.org.pl">MOST - Polish provider for
+ Environmental Movement</a>
+ <!-- Ken Kyler -->
+ <li><a href="http://www.elists.org/">eLists.org</a>
+ <!-- kellan -->
+ <li><a href="http://lists.indymedia.org/">IndyMedia</a>
+ <!-- Yasha Harari -->
+ <li><a href="http://mail.anywhereyougo.com/">mail.anywhereyougo.com</a>
+ <!-- Gary Coulbourne -->
+ <li><a href="http://bears.org/">The bearfolks mailing list</a>
+ <!-- Hong Feng -->
+ <li><a href="http://www.rons.net.cn/">Free software site in China</a>
+ <!-- Julio Calvo -->
+ <li><a href="http://listas.unt.edu.ar/mailman/listinfo">Universidad
+ Nacional de Tucuman, Argentina</a>
+ <!-- Christopher VanOosterhout -->
+ <li><a href="http://www.torresen.com/">Torresen Marine, Inc.</a>
+ including their <a href="http://www.torresen.com/newsletters/">primary
+ newsletter</a>
+ <!-- Ned Lilly -->
+ <li><a href="http://www.greatbridge.org/">www.greatbridge.org</a>
+ <!-- Chris Abraham -->
+ <li><a href="http://www.memes.org/mailman/admin">www.memes.org</a>
+ <!-- Joachim, BaWue-Net -->
+ <li><a href="http://www.bawue.de/">BaWue-Net</a>, a local specialty
+ ISP in Southern Germany</a>
+ <!-- Karsten Thygesen -->
+ <li><a href="http://sunsite.dk/">SunSITE.dk</a>
+ <!-- Bob Valiant -->
+ <li><a href="http://seactc.net">Seattle Community Technology Alliance
+ (SCTA)</a>
+ <!-- Chris Dagdigian -->
+ <li><a href="http://www.bioperl.org/">www.bioperl.org</a>,
+ <a href="http://www.biojava.org/">www.biojava.org</a>,
+ <a href="http://www.bioXML.org/">www.bioXML.org</a>,
+ <a href="http://www.biocorba.org/">www.biocorba.org</a>,
+ <a href="http://www.biopython.org/">www.biopython.org</a>,
+ <a href="http://www.open-bio.org/">www.open-bio.org</a>
+ <!-- David Parr -->
+ <li><a href="http://lists.dalsemi.com/">lists.dalsemi.com</a>
+ <!-- Lic. Vladimir Valdespino Mojena -->
+ <li><a href="http://www.cmw.sld.cu/">www.cmw.sld.cu</a>
+ <!-- Parag Mehta -->
+ <li><a href="http://www.ilug-bom.org.in/">Indian Linux Users Group
+ - Mumbai Chapter</a>
+ <!-- Daniel James -->
+ <li><a href="http://linux.org.uk/">linux.org.uk (Alan Cox's
+ site)</a> and <a href="http://linuxuser.co.uk/">linuxuser.co.uk</a>
+ <!-- Richard Shilling -->
+ <li><a href="http://www.beowulf.org/mailman/listinfo/beowulf">Beowulf</a>
+ <!-- Jeff @ SpamCop -->
+ <li><a href="http://spamcop.net">SpamCop</a>, along with
+ <a href="http://news.spamcop.net">Mailman and the archives</a>
+ <!-- Andreas Hasenack -->
+ <li><a href="http://distro.conectiva.com/">distro.conectiva.com</a>
+ <!-- Kathleen Weaver -->
+ <li><a href="http://www.click-l.com/">www.click-l.com</a>
+ <!-- Gregory Keefe -->
+ <li><a href="http://www.hn.org/">Hammernode Internet Services, Int'l</a>
+ <!-- Mop Da Floors -->
+ <li><a href="http://www.wi2600.org/">www.wi2600.org</a>
+ <!-- Jason McGillivray -->
+ <li><a href="http://www.opensourcedirectory.org/">Open-Source Directory</a>
+ <!-- Patrick Lacson -->
+ <li><a href="http://hidetheword.org">hidetheword.org</a>
+ <!-- David Hallowell -->
+ <li><a href="http://www.guardian.co.uk/">Guardian Unlimited (the
+ site of the UK newspaper <em>The Guardian</em>)</a>.
+ <!-- President @ chatster -->
+ <li><a href="http://www.chatster.org/mailman/listinfo/">chatser.org</a>
+ <!-- Jason Kaufman -->
+ <li><a href="http://www.cleaning.com/">Clean Media, Inc.</a>
+ <!-- Daniel Robbins -->
+ <li><a href="http://www.gentoo.org/">Gentoo Linux</a>
+ <!-- Rolando Guerra -->
+ <li><a href="http://listas.rcp.net.pe/">rcp.net.pe</a>
+ <!-- Bharath Chari -->
+ <li><a href="http://www.arachnis.com/">www.arachnis.com</a>
+ <!-- Supreet Sethi -->
+ <li><a href="http://www.sarai.net/">Sarai (New Media Initiative)</a>
+ <!-- Pankaj Kaushal -->
+ <li><a href="http://www.gnu-india.org">The Hurd
+ development/hacking group in India</a>
+ <!-- Quique -->
+ <li><a href="http://www.sindominio.net">sindominio.net</a>
+ <!-- Mike Watterson -->
+ <li><a href="http://www.chesapeakechurch.org">Chesapeake Church</a>
+ <!-- Marcos Rodrigues -->
+ <li><a href="http://www.unc-ct.rct-sc.br">Universidade do
+ Contestado-UnC Curitibanos/SC/Brasil</a>
+ <!-- Quique -->
+ <li><a href="http://sindominio.net">sindominio.net</a>
+ <!-- Damir Horvat -->
+ <li><a href="http://www.voljatel.si">VOLJATEL telekomunikacije d.d.</a>
+ <!-- Rod (Gentle) Ellis -->
+ <li><a href="http://www.JesusList.com">JesusList.com</a>
+ <!-- Jeffery Cann -->
+ <li><a href="http://clue.denver.co.us/">CLUE - Colorado Linux
+ Users and Enthusiasts</a>
+ <!-- Zoltan Arpadffy -->
+ <li><a href="http://www.polarhome.com/">www.polarhome.com</a>
+ <!-- webmaster@closeadeal.com -->
+ <li><a
+ href="http://www.closeadeal.com/mailman/listinfo/eureka_closeadeal.com"
+ >CloseADeal.com</a>
+ <!-- Jim Reisert -->
+ <li><a href="http://lists.contesting.com/mailman/listinfo"
+ >Contesting.com</a>, Amateur ("Ham") Radio lists.
+ <!-- Stephen McKeown -->
+ <li><a href="http://www.jmbarrie.net">http://www.jmbarrie.net</a>
+ <!-- Dennis Du Bois -->
+ <li><a href="http://freelance-seattle.net/">Freelance-Seattle.net</a>
+ <!-- Charles Tucker -->
+ <li><a href="http://www.riverbend.com/">Riverbend Church</a>
+ <!-- Ben Dyer -->
+ <li><a href="http://lists.evolt.org/">Evolt.org</a>
+ <!-- munindo -->
+ <li><a href="http://mail2.factsoft.de/mailman/listinfo/national"
+ >http://mail2.factsoft.de/mailman/listinfo/national</a>
+ <!-- Ignacio Valdez -->
+ <li><a href="http://www.linuxmednews.com">Linux Medical News</a>
+ <!-- Dean Strik -->
+ <li><a href="http://lists.stack.nl/">stack.nl</a>
+ <!-- Jim Goltz -->
+ <li>NFR Security
+ <!-- Stephan Richter -->
+ <li><a href="http://iuveno-net.de/">iuveno-net.de</a>
+ <!-- Johnny Fuerst -->
+ <li><a href="http://mailman.cathat.net/">cathat.net</a>
+ <!-- gulli -->
+ <li><a href="http://www.heise.de/bin/newsletter/listinfo/newsticker"
+ >heise-newsletter</a>, the biggest news-website for
+ it-professionals in Germany.
+ <!-- Alden Gillespy -->
+ <li><a href="http://www.thetestpattern.com/">Test Pattern Radio</a>
+ <!-- Roberto Mogliotti -->
+ <li><a href="http://lists.atlink.it/">ATLink SRL</a>
+ <!-- Daniel Buchmann -->
+ <li><a href="http://www.bibsys.com/english.html">BIBSYS (Library
+ Automation System, Norway)</a>
+ <!-- Tim Lyons -->
+ <li><a href="http://www.digitalvoodoo.org">www.digitalvoodoo.org</a>
+ <!-- Michael Neil Felzien -->
+ <li><a href="http://www.pied.com/">Process Integrated Engineering
+ Design (PIED)</a>
+ <!-- mark roberts -->
+ <li>BBSRC (Bioscience and Biotechnical Scientific Research Council)
+ <!-- Joshua Erdman -->
+ <li><a href="http://www.ernestallen.com">Ernest & Allen</a>
+ <!-- Hank Roth -->
+ <li><a href="http://pnews.org/">pnews.org</a>
+ <!-- Rene Lange -->
+ <li><a href="http://www.tlug.de">Linux Users Group, Germany</a>
+ <!-- switzerland -->
+ <li><a href="http://lists.indymedia.org">indymedia</a>
+ <!-- Keith Patton -->
+ <li><a href="http://www.ethicalmedia.com">Ethical Media Ltd</a>
+ <!-- Leandro Rache Sanchez -->
+ <li><a href="http://www.hipertek.net">Hipertek Ltda</a>, Bogota,
+ Columbia</a>
+ <!-- Yann Forget -->
+ <li><a href="http://mail.ynternet.net/mailman/listinfo"
+ >ynternet.org</a>
+ <!-- Renn -->
+ <li><a href="http://csrfree.csrsr.ncu.edu.tw/mailman/listinfo/ncuce83/"
+ >National Central University, Dept. of Civil Engineering, the 83th</a>
+ <!-- Jesse Trucks -->
+ <li><A HREF="http://list.cyberius.net">Cyberius' Network lists</A>
+ <!-- Erik J. Heels -->
+ <li><a href="http://www.iserver.com">iServer</a> and
+ <a href="http://www.lawlawlaw.com">www.lawlawlaw.com</a>
+ <!-- Peter Verhas -->
+ <li><a href="http://Scriptbasic.com">Scriptbasic.com</a>
+ <!-- webmaster@itxzone.com -->
+ <li><a href="http://www.itxzone.com/">ITXZONE: The Indian IT Zone</a>
+ <!-- renn@cy1000.com.tw -->
+ <li><a
+ href="http://csrfree.csrsr.ncu.edu.tw/mailman/listinfo/ncuce83/"
+ >National Central University, Dept. of Civil Engineering, the 83th</a>
+ <!-- Jerry Feldman -->
+ <li><a href="http://www.blu.org/">Boston Linux and Unix user group</a>
+ <!-- Leandro Rache Sanchez -->
+ <li><a href="http://www.hipertek.net/">Hipertek Ltda.</a>
+ <!-- Jan Kampherbeek -->
+ <li><a href="http://spiderpro.com/">SpiderPro</a>
+ <!-- Porfirio Trincheiras -->
+ <li><a href="http://www.fmh.utl.pt">Faculdade de Motricidade
+ Humana</a> and
+ <a href="http://www.fmv.utl.pt">Faculdade de Medicina Veterinária</a>
+ <!-- info@compamerica.com -->
+ <li><a href="http://www.american-computer.com">American Computer</a>
+ <!-- Bob Radvanovsky -->
+ <li><a href="http://www.unixworks.net">Unixworks</a>
+ <!-- Mats Brante -->
+ <li><a href="http://www.osthyvel.net">Osthyvel.net</a>
+ <!-- Nemeth Tamas -->
+ <li><a href="http://lists.sek.nyme.hu">University of West Hungary</a>
+ <!-- Marc MERLIN -->
+ <li><a href="http://lists.svlug.org/lists/listinfo/">Silicon Valley
+ Linux Users' Group</a>
+ <!-- Bernardo Bernal González -->
+ <li><a href="http://www.fundaciongsr.es">German Sanchez Ruiperez
+ Foundation, Spain</a>
+ <!-- Alejandro G. Sánchez Martínez -->
+ <li><a href="http://www.red-libre.com">www.red-libre.com</a>
+ <!-- Randy Stoeker -->
+ <li><a href="http://comm-org.utoledo.edu">COMM-ORG: The On-Line
+ Conference on Community Organizing</a>
+ <!-- Josenivaldo Benito Junior -->
+ <li>FAI - Faculdades Adamantinenses Integradas
+ <!-- Ravi Starzl -->
+ <li><a href="http://www.oddzz.com">Oddzz</a> and <a
+ href="http://www.casinozz.com">Casinozz</a>.
+ <!-- Don Sizemore -->
+ <li><a href="http://www.ibiblio.org">ibiblio</a>
+ <!-- Marc Bitner -->
+ <li><a href="http://shrplist.umsmed.edu/mailman/listinfo/him-l">University
+ of Mississippi Medical Center HIM Listserve</a>
+ <!-- Eli Caul -->
+ <li><a href="http://www.mirafiori.com">the Fiat Page</a>
+ (automotive), with mailing lists at
+ <a href="http://www.mirafiori.com/lists">this url</a>.
+ <!-- Art Jones -->
+ <li><a href="http://www.meteoritecentral.com/">Meteorite
+ Central</a> via the mailing lists at Pair Networks.
+ <!-- Alstair Hutchinson -->
+ <li><a href="http://www.deviantpc.com">DeviantPC</a>
+ <!-- George D. Holmes -->
+ <li><a href="http://mailman.csce.uark.edu">The Computer Science &
+ Computer Engineering</a> department at the University of Arkansas.
+ <!-- steven -->
+ <li><a href="http://www.shakespeare-monologues.org/">Shakespeare's
+ Monologues</a> with mailing lists at
+ <a
+ href="http://lists.shakespeare-monologues.org/mailman/listinfo/discussion">this url</a>.
+ <!-- Kenneth Irving -->
+ <li><a href="http://www.fq.edu.uy">Universidad de la República,
+ Facultad de Química, Uruguay</a>
+ <!-- Ian McCormack -->
+ <li><a href="http://www.ne4x4.org.uk/">North East 4x4 club</a>
+ <!-- Jörn Nettingsmeier -->
+ <li><a href="http://www.linuxdj.com/audio/lad/">Linux Audio
+ Mailing Lists</a>
+ <!-- Dirk H. Shulz -->
+ <li><a href="http://www.multibyte.de">MultiByte GmbH</a>
+ <!-- Justin Yunke -->
+ <li><a href="http://www.elists.org/">Elists Online</a>
+ <!-- John C. Amodeo -->
+ <li><a href="http://fas.rutgers.edu">FAS - Rutgers, The State
+ University of New Jersey</a>
+ <!-- Lucian Daniel Kafka -->
+ <li><a href="http://www.conexim.com.au">Conexim web hosting Australia</a>
+ <!-- zainul bakri -->
+ <li>National Institute of Health Research and Development, Indonesia.
+ <!-- Chris Olson -->
+ <li><a href="http://astcomm.net/">AST Communications, Inc.</a>
+ <!-- Derek Colley -->
+ <li><a href="http://listserv.sap.com/">SAP</a>
+ <!-- Christian Thamer -->
+ <li><a href="http://www.iwl.com/Support/lists.html">InterWorking Labs</a>
+ <!-- A. Sajjad Zaidi -->
+ <li><a href="http://www.tokyopc.org/">Tokyo PC Users Group</a>
+ with mailing lists <a
+ href="http://www.tokyopc.org/mailman/listinfo/">here</a>.
+ <!-- Dr. David A. Zatz -->
+ <li><a href="http://allpar.com/">Allpar.com (Chrysler enthusiasts)</a>
+ <!-- Donna Hanlon -->
+ <li><a href="http://brainmap.wustl.edu">Van Essen Lab at Washington
+ University School of Medicine</a>
+ <!-- Matt Helsley -->
+ <li><a href="http://linux.ucla.edu">UCLA LUG</a> with mailing
+ lists <a href="http://linux.ucla.edu/mailman/listinfo">here</a>.
+ <!-- Erisian Saint Vinge -->
+ <li><a href="http://www.azone.org/">Azone</a>
+ <!-- Nicolas Cartron -->
+ <li><a href="http://squirrelmail-fr.org">SquirrelMail (French)</a>
+ <!-- Shakaraji Thakor -->
+ <li><a href="http://mail.gnvfc.com/mailman/listinfo">GNFC Ltd</a>
+ <!-- Peter Turner -->
+ <li><a href="http://www.edow.org">Diocese of Washington</a>
+ <!-- Gottfried Hamm -->
+ <li><a href="http://lists.ghks.de/">Gottfried Hamm
+ KommunikationsSysteme</a>
+ <!-- Richard Lippmann -->
+ <li><a href="http://www.zirndorf.de">Cultural events in Zirndorf,
+ Bavaria</a>
+ <!-- Gualter Barbas Baptista -->
+ <li><a href="http://gaia.org.pt">GAIA</a>, with mailing lists at
+ <a href="http://gaia.org.pt/listas/">here</a>.
+ <!-- Ansgar Schmidt -->
+ <li><a href="http://auriga.wearlab.de">Free Mobile Software System</a>
+</ul>
diff --git a/admin/www/inthenews.html b/admin/www/inthenews.html
new file mode 100644
index 00000000..4ff788e5
--- /dev/null
+++ b/admin/www/inthenews.html
@@ -0,0 +1,637 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<!-- THIS PAGE IS AUTOMATICALLY GENERATED. DO NOT EDIT. -->
+<!-- Thu Dec 26 22:30:23 2002 -->
+<!-- USING HT2HTML 2.0 -->
+<!-- SEE http://ht2html.sf.net -->
+<!-- User-specified headers:
+Title: Mailman in Use and in the News
+
+-->
+
+<head>
+<title>Mailman in Use and in the News</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
+<meta name="generator" content="HT2HTML/2.0">
+<style type="text/css">
+body { margin: 0px; }
+</style>
+</head>
+<body bgcolor="#ffffff" text="#000000"
+ marginwidth="0" marginheight="0"
+ link="#0000bb" vlink="#551a8b"
+ alink="#ff0000">
+<!-- start of page table -->
+<table width="100%" border="0" cellspacing="0" cellpadding="0">
+<!-- start of banner row -->
+<tr>
+<!-- start of corner cells -->
+<td width="150" valign="middle" bgcolor="white" class="corner">
+
+<center>
+ <a href="./index.html">
+ <img border=0 src="./images/logo-70.jpg"></a></center> </td>
+<td width="15" bgcolor="#eecfa1">&nbsp;&nbsp;</td><!--spacer-->
+<!-- end of corner cells -->
+<!-- start of banner -->
+<td width="90%" bgcolor="#eecfa1" class="banner">
+<!-- start of site links table -->
+<table width="100%" border="0"
+CELLSPACING=0 CELLPADDING=0
+ bgcolor="#ffffff">
+<tr>
+ <td bgcolor="#eecfa1">
+<a href="./index.html">Home</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./docs.html">Documentation</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./lists.html">Mailing lists</a>
+ </td>
+</tr><tr>
+ <td bgcolor="#eecfa1">
+<a href="./help.html">Help</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./download.html">Download</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./devs.html">Developers</a>
+ </td>
+</tr>
+</table><!-- end of site links table -->
+
+</td><!-- end of banner -->
+</tr><!-- end of banner row -->
+<tr><!-- start of sidebar/body row -->
+<!-- start of sidebar cells -->
+<td width="150" valign="top" bgcolor="#eecfa1" class="sidebar">
+<!-- start of sidebar table -->
+<table width="100%" border="0" cellspacing="0" cellpadding="3"
+ bgcolor="#ffffff">
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Overview
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="index.html">Home</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="features.html">Features</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="otherstuff.html">Logos and Papers</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<b>Mailman in Use</b>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="prev.html">Previous Releases</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="bugs.html">Bugs and Patches</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="mirrors.html">Mirrors</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">&nbsp;
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Email Us
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="mailto:mailman-users@python.org">mailman-users@python.org</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&nbsp;
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="http://www.python.org/"><img border=0
+ src="./images/PythonPoweredSmall.png"
+ ></a>&nbsp;<a href="http://sourceforge.net"><img
+ src="http://sourceforge.net/sflogo.php?group_id=103"
+ width="88" height="31" border="0"
+ alt="SourceForge Logo"></a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&nbsp;
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&copy; 1998-2002
+Free Software Foundation, Inc. Verbatim copying and distribution of this
+entire article is permitted in any medium, provided this notice is preserved.
+
+</td></tr>
+</table><!-- end of sidebar table -->
+
+</td>
+<td width="15">&nbsp;&nbsp;</td><!--spacer-->
+<!-- end of sidebar cell -->
+<!-- start of body cell -->
+<td valign="top" width="90%" class="body"><br>
+<h3>Mailman in Use and in the News</h3>
+
+Mailman was featured as the Project of the Month in the
+<a href="http://www.linux-mag.com/2002-05/toc.html">May 2002 issue of
+Linux Magazine</a>.
+
+<p>Mailman was featured in a cover story article in the March 1999
+issue of SunWorld (apparently no longer on-line). The article was
+written by Cameron Laird and Kathryn Soraiz.
+
+<p>Mailman was briefly mentioned in a ZDNet article on GNU/Linux.
+This was picked up by MSNBC. Unfortunately, both these links also
+appear to be dead now too.
+
+<p>Below are the lists of sites using Mailman or providing list hosting
+services using Mailman. If you'd like to be included in this list,
+please <a href="mailto:mailman-cabal@python.org">let us know</a>.
+
+<p>The following sites provide mailing list hosting services using
+Mailman. If you like Mailman but still don't want to install it on
+your own systems, you might consider having your list hosted at one of
+these sites. Inclusion in this list does <em>not</em> construe an
+endorsement or recommendation by the Mailman development team, nor is
+there any relationship between them and us, beyond their use of our
+free software. Some of these services may have restrictions or fees
+for use.
+
+<ul>
+ <li><a href="http://www.pair.com/pair/pairlist/">Pair List</a>
+ <!-- Sheryl Coe -->
+ <li><a href="http://www.reportica.net/">Reportica Service
+ Bureau</a>. Reportica has put up a <a
+ href="http://www.reportica.net/services/lists/host/screen-index.html"
+ >demo of their service</a>.
+ <!-- CarlC -->
+ <li><a href="http://www.carlc.com/">CarlC Internet Services</a>
+</ul>
+
+
+<p>The following sites (in no particular order) are known to use
+Mailman or Mailman technology to run their mailing lists.
+
+<ul>
+ <!-- Chuq von Rospach -->
+ <li><a href="http://lists.apple.com/">Apple Computer, Inc.</a>
+ <!-- Luke Tymowski -->
+ <li><a href="http://lists.us.dell.com/mailman/listinfo">Dell Computers</a>
+ <!-- Keith Packard -->
+ <li><a href="http://xfree86.org/">The XFree86 Project, Inc.</a>
+ <!-- Marc Merlin -->
+ <li><a href="http://valinux.com/">VA Linux</a>
+ <li><a href="http://sourceforge.net/">SourceForge.net</a>
+ <!-- Ricardo Kustner -->
+ <li><a href="http://www.freshmeat.net/">FreshMeat</a>
+ <!-- Jason R. Mastaler -->
+ <li><a href="http://www.xemacs.org/">XEmacs.Org</a>
+ <!-- Jeff Barger -->
+ <li><a href="http://www.listserve.com/">ListServe.com</a>
+ <!-- Sean Reifschneider -->
+ <li><a href="http://tummy.com/">tummy.com</a> (lots of Linux
+ lists)
+ <!-- Roger Pena -->
+ <li><a href="http://www.redhat.com/">RedHat, Inc.</a>
+ <li><a href="http://lists.samba.org/">Samba</a>
+ <!-- Chris Howells -->
+ <li><a href="http://mail.kde.org/mailman/listinfo">KDE Project</a>
+ <!-- Barry Warsaw -->
+ <li><a href="http://www.python.org/sigs/">Python.Org</a>
+ <li><a href="http://lists.zope.org/">Zope.org</a>
+ <li><a href="http://www.zope.com/">Zope.com</a> (<em>Yay!</em>)
+ <!-- Owen Taylor -->
+ <li><a href="http://mail.gnome.org/">GNOME.Org</a>
+ <!-- Sarah Stapleton-Gray -->
+ <li><a href="http://www.now.org/">National Organization of Women</a>
+ <!-- Nigel Metheringham -->
+ <li><a href="http://www.exim.org/">Exim.Org</a> (see also Nigel's
+ <a href="http://www.exim.org/pipermail/exim-users">htdig
+ extensions</a> in action for searchable archives)
+ <li><a href="http://list.wylug.org.uk/mailman/listinfo">Yorkshire
+ Linux User Group mailing lists</a>
+ <!-- Marc Merlin -->
+ <li><a href="http://linuxia64.org/">IA-64 Linux Project</a>
+ <!-- Markus Grundmann -->
+ <li><a href="http://www.orsn.org/">ORSN, Open Root Server Network
+ in Europe</a>
+ <!-- Jim Hebert -->
+ <li><a href="http://www.cosource.com/">Cosource.com</a>
+ <li><a href="http://www.vistasource.com/">VistaSource.com</a>
+ (private lists only, currently)
+ <!-- Bill Bradford -->
+ <li><a href="http://www.sunhelp.org/mailman/listinfo/">SunHelp.Org</a>
+ <li><a href="http://www.sunmanagers.org/mailman/listinfo">Sun Managers</a>
+ <li><a href="http://www.linuxmanagers.org/mailman/listinfo">Linux
+ Managers</a>
+ <!-- Bill Hoffman -->
+ <li><a href="http://public.kitware.com/">Visualization Tool Kit
+ (VTK)</a>
+ <!-- J C Lawrence -->
+ <li><a href="https://www.kanga.nu/lists/listinfo/">Kanga.NU<a>
+ <!-- Michael Dunston -->
+ <li><a href="http://www.music.vt.edu">Music and Technology
+ Department, Virginia Tech School of the Arts</a>
+ <!-- Nick Marouf -->
+ <li><a href="http://www.earlham.edu">Earlham College</a>
+ <!-- Mike Richardson -->
+ <li><a href="http://lists.man.ac.uk/mailman/listinfo">University
+ of Manchester</a>
+ <!-- Jeff Berliner -->
+ <li><a href="http://endeavor.med.nyu.edu/mailman/listinfo">New York
+ University School of Medicine</a>
+ <!-- Marco Obaid -->
+ <li><a href="http://lists.MUW.Edu/">Mississippi University for Women</a>
+ <!-- Carel Braam -->
+ <li><a href="http://pegasus.tue.nl">Eindhoven University of Technology</a>
+ <!-- Prof. Marcelo Maia Sobral -->
+ <li>University of vale do Itajai, Sao Jose, Brasil
+ <!-- Conal Garrity -->
+ <li><a href="http://www.kvsc.org/">KVSC Radio, St. Cloud State
+ University, MN</a>
+ <!-- Babak Mostaghassi -->
+ <li><a href="http://ill.iut.ac.ir/">Linux Lab of Isfahan
+ University Of Technology</a>
+ <!-- Aly S.P Dharshi -->
+ <li>University of Lethbridge Organization of Residence Students
+ <!-- Courtney V. Bearse -->
+ <li><a href="http://linux.uky.edu/mailman/listinfo/">University of
+ Kentucky</a>
+ <!-- Jonathan Abela -->
+ <li><a href="http://engsoc.queensu.ca">Queen's Engineering</a>
+
+ <!-- Chuq von Rospach's alter ego -->
+ <li><a href="http://www.hockeyfanz.com/">HockeyFanz.com</a>
+ <!-- Johnny Fuerst -->
+ <li><a href="http://mail.cathat.net/mailman/listinfo/">The CatHat
+ Republic</a>
+ <!-- Phil Barnett -->
+ <li><a
+ href="http://www.matrixlist.com/mailman/listinfo">www.matrixlist.com</a>
+ <!-- John A. Martin -->
+ <li><a href="http://lists.essential.org/">lists.essential.org</a>
+ <!-- Dan Mick -->
+ <li><a href="http://socal-raves.org/">SoCal-Raves.org</a>
+ <!-- Peter Murray -->
+ <li><a href="http://www.ravedata.com/">ravedata.com</a>
+ <!-- Satya -->
+ <li><a href="http://txr.cjb.net/ml.html">TSEC mailing list</a>
+ <li><a href="http://quickapps.cjb.net/ml.html">GRE (grad studies)
+ mailing list</a>
+ <!-- tim -->
+ <li><a href="http://www.hal2001.org">HAL (Hackers at Large) 2001</a>
+ <!-- Rodrigo Moya -->
+ <li><a href="http://www.essential-is.com/">www.essential-is.com</a>
+ <!-- Kevin N. Carpenter -->
+ <li><a href="http://www.seaplace.org/">FishRoom</a>
+ <!-- Dan Ohnesorg -->
+ <li><a href="http://www.debian.cz/">www.debian.cz</a>
+ <li><a href="http://dali.feld.cvut.cz/">dali.feld.cvut.cz</a>
+ <!-- Stephan Berndts -->
+ <li><a href="http://lists.spline.de/">lists.spline.de</a>
+ <!-- W. Reilly Cooley -->
+ <li><a href="http://mail.wirex.com/">mail.wirex.com</a>
+ <!-- Roger Pena -->
+ <li><a href="http://www.linux.cu/">linux.cu</a>
+ <!-- Ricardo Kustner -->
+ <li><a href="http://www.miss-janet.com/">www.miss-janet.com</a>
+ <!-- I.Ioannou -->
+ <li><a href="http://lists.hellug.gr">Greek LUG</a>
+ <!-- George Dinwiddie -->
+ <li><a href="http://www.alberg30.org/">alberg30.org</a>
+ <!-- Jeff Berliner -->
+ <li><a href="http://www.anthem2000.com/">anthem2000.com</a>
+ <!-- Mentor Cana -->
+ <li><a href="http://www.alb-net.com/mailman/listinfo">www.alb-net.com</a>
+ <!-- Les Niles -->
+ <li><a
+ href="http://www.aviating.com/mooney/">www.aviating.com</a>
+ <li><a href="http://www.kjsl.com/">www.kjsl.com</a>
+ <!-- Brian Edmonds -->
+ <li><a href="http://gweep.ca/">gweep.ca</a>
+ <li><a href="http://antarti.ca/">antarti.ca</a>
+ <!-- Adam J -->
+ <li><a href="http://dumpshock.com/">dumpshock.com</a>
+ <!-- Christopher Schulte -->
+ <li><a href="http://lists.schulte.org/">home of the linux pptp
+ server (among others)</a>
+ <!-- Matthias Saou -->
+ <li><a href="http://www.aldil.org/">ALDIL, a French free software
+ user group</a>
+ <!-- Bruno Unna -->
+ <li><a href="http://www.iac.com.mx/">Internet de Alta Calidad</a>
+ with some
+ <a href="http://iac.com.mx/mailman/listinfo/">public mailing lists</a>.
+ <!-- Johannes B. Ullrich -->
+ <li><a href="http://dsheild.org/">dsheild.org</a>
+ <!-- Luca "Ghedo" Ghedini -->
+ <li><a href="http://ing.unibo.it">ing.unibo.it</a> and
+ <a href="http://deis.unibo.it">deis.unibo.it</a>, and "lots of
+ virtual domains".
+ <!-- Fred Herman -->
+ <li><a href="http://www.pplug.org/">Pikes Peak Linux Users
+ Group</a> and
+ <li><a href="http://www.springsdanceclub.com">Colorado Springs Dance
+ Club</a>
+ <!-- Matthew Enger -->
+ <li><a href="http://www.dhs.org">www.dhs.org</a>
+ <!-- Jason Wood -->
+ <li><a href="http://lists.ccil.org/">Chester County InterLink</a>
+ (also supporting a number of other non-profits, including the
+ National Associate of Social Workers, Philadelphia region.
+ <!-- Krzysztof Wychowalek -->
+ <li><a href="http://www.most.org.pl">MOST - Polish provider for
+ Environmental Movement</a>
+ <!-- Ken Kyler -->
+ <li><a href="http://www.elists.org/">eLists.org</a>
+ <!-- kellan -->
+ <li><a href="http://lists.indymedia.org/">IndyMedia</a>
+ <!-- Yasha Harari -->
+ <li><a href="http://mail.anywhereyougo.com/">mail.anywhereyougo.com</a>
+ <!-- Gary Coulbourne -->
+ <li><a href="http://bears.org/">The bearfolks mailing list</a>
+ <!-- Hong Feng -->
+ <li><a href="http://www.rons.net.cn/">Free software site in China</a>
+ <!-- Julio Calvo -->
+ <li><a href="http://listas.unt.edu.ar/mailman/listinfo">Universidad
+ Nacional de Tucuman, Argentina</a>
+ <!-- Christopher VanOosterhout -->
+ <li><a href="http://www.torresen.com/">Torresen Marine, Inc.</a>
+ including their <a href="http://www.torresen.com/newsletters/">primary
+ newsletter</a>
+ <!-- Ned Lilly -->
+ <li><a href="http://www.greatbridge.org/">www.greatbridge.org</a>
+ <!-- Chris Abraham -->
+ <li><a href="http://www.memes.org/mailman/admin">www.memes.org</a>
+ <!-- Joachim, BaWue-Net -->
+ <li><a href="http://www.bawue.de/">BaWue-Net</a>, a local specialty
+ ISP in Southern Germany</a>
+ <!-- Karsten Thygesen -->
+ <li><a href="http://sunsite.dk/">SunSITE.dk</a>
+ <!-- Bob Valiant -->
+ <li><a href="http://seactc.net">Seattle Community Technology Alliance
+ (SCTA)</a>
+ <!-- Chris Dagdigian -->
+ <li><a href="http://www.bioperl.org/">www.bioperl.org</a>,
+ <a href="http://www.biojava.org/">www.biojava.org</a>,
+ <a href="http://www.bioXML.org/">www.bioXML.org</a>,
+ <a href="http://www.biocorba.org/">www.biocorba.org</a>,
+ <a href="http://www.biopython.org/">www.biopython.org</a>,
+ <a href="http://www.open-bio.org/">www.open-bio.org</a>
+ <!-- David Parr -->
+ <li><a href="http://lists.dalsemi.com/">lists.dalsemi.com</a>
+ <!-- Lic. Vladimir Valdespino Mojena -->
+ <li><a href="http://www.cmw.sld.cu/">www.cmw.sld.cu</a>
+ <!-- Parag Mehta -->
+ <li><a href="http://www.ilug-bom.org.in/">Indian Linux Users Group
+ - Mumbai Chapter</a>
+ <!-- Daniel James -->
+ <li><a href="http://linux.org.uk/">linux.org.uk (Alan Cox's
+ site)</a> and <a href="http://linuxuser.co.uk/">linuxuser.co.uk</a>
+ <!-- Richard Shilling -->
+ <li><a href="http://www.beowulf.org/mailman/listinfo/beowulf">Beowulf</a>
+ <!-- Jeff @ SpamCop -->
+ <li><a href="http://spamcop.net">SpamCop</a>, along with
+ <a href="http://news.spamcop.net">Mailman and the archives</a>
+ <!-- Andreas Hasenack -->
+ <li><a href="http://distro.conectiva.com/">distro.conectiva.com</a>
+ <!-- Kathleen Weaver -->
+ <li><a href="http://www.click-l.com/">www.click-l.com</a>
+ <!-- Gregory Keefe -->
+ <li><a href="http://www.hn.org/">Hammernode Internet Services, Int'l</a>
+ <!-- Mop Da Floors -->
+ <li><a href="http://www.wi2600.org/">www.wi2600.org</a>
+ <!-- Jason McGillivray -->
+ <li><a href="http://www.opensourcedirectory.org/">Open-Source Directory</a>
+ <!-- Patrick Lacson -->
+ <li><a href="http://hidetheword.org">hidetheword.org</a>
+ <!-- David Hallowell -->
+ <li><a href="http://www.guardian.co.uk/">Guardian Unlimited (the
+ site of the UK newspaper <em>The Guardian</em>)</a>.
+ <!-- President @ chatster -->
+ <li><a href="http://www.chatster.org/mailman/listinfo/">chatser.org</a>
+ <!-- Jason Kaufman -->
+ <li><a href="http://www.cleaning.com/">Clean Media, Inc.</a>
+ <!-- Daniel Robbins -->
+ <li><a href="http://www.gentoo.org/">Gentoo Linux</a>
+ <!-- Rolando Guerra -->
+ <li><a href="http://listas.rcp.net.pe/">rcp.net.pe</a>
+ <!-- Bharath Chari -->
+ <li><a href="http://www.arachnis.com/">www.arachnis.com</a>
+ <!-- Supreet Sethi -->
+ <li><a href="http://www.sarai.net/">Sarai (New Media Initiative)</a>
+ <!-- Pankaj Kaushal -->
+ <li><a href="http://www.gnu-india.org">The Hurd
+ development/hacking group in India</a>
+ <!-- Quique -->
+ <li><a href="http://www.sindominio.net">sindominio.net</a>
+ <!-- Mike Watterson -->
+ <li><a href="http://www.chesapeakechurch.org">Chesapeake Church</a>
+ <!-- Marcos Rodrigues -->
+ <li><a href="http://www.unc-ct.rct-sc.br">Universidade do
+ Contestado-UnC Curitibanos/SC/Brasil</a>
+ <!-- Quique -->
+ <li><a href="http://sindominio.net">sindominio.net</a>
+ <!-- Damir Horvat -->
+ <li><a href="http://www.voljatel.si">VOLJATEL telekomunikacije d.d.</a>
+ <!-- Rod (Gentle) Ellis -->
+ <li><a href="http://www.JesusList.com">JesusList.com</a>
+ <!-- Jeffery Cann -->
+ <li><a href="http://clue.denver.co.us/">CLUE - Colorado Linux
+ Users and Enthusiasts</a>
+ <!-- Zoltan Arpadffy -->
+ <li><a href="http://www.polarhome.com/">www.polarhome.com</a>
+ <!-- webmaster@closeadeal.com -->
+ <li><a
+ href="http://www.closeadeal.com/mailman/listinfo/eureka_closeadeal.com"
+ >CloseADeal.com</a>
+ <!-- Jim Reisert -->
+ <li><a href="http://lists.contesting.com/mailman/listinfo"
+ >Contesting.com</a>, Amateur ("Ham") Radio lists.
+ <!-- Stephen McKeown -->
+ <li><a href="http://www.jmbarrie.net">http://www.jmbarrie.net</a>
+ <!-- Dennis Du Bois -->
+ <li><a href="http://freelance-seattle.net/">Freelance-Seattle.net</a>
+ <!-- Charles Tucker -->
+ <li><a href="http://www.riverbend.com/">Riverbend Church</a>
+ <!-- Ben Dyer -->
+ <li><a href="http://lists.evolt.org/">Evolt.org</a>
+ <!-- munindo -->
+ <li><a href="http://mail2.factsoft.de/mailman/listinfo/national"
+ >http://mail2.factsoft.de/mailman/listinfo/national</a>
+ <!-- Ignacio Valdez -->
+ <li><a href="http://www.linuxmednews.com">Linux Medical News</a>
+ <!-- Dean Strik -->
+ <li><a href="http://lists.stack.nl/">stack.nl</a>
+ <!-- Jim Goltz -->
+ <li>NFR Security
+ <!-- Stephan Richter -->
+ <li><a href="http://iuveno-net.de/">iuveno-net.de</a>
+ <!-- Johnny Fuerst -->
+ <li><a href="http://mailman.cathat.net/">cathat.net</a>
+ <!-- gulli -->
+ <li><a href="http://www.heise.de/bin/newsletter/listinfo/newsticker"
+ >heise-newsletter</a>, the biggest news-website for
+ it-professionals in Germany.
+ <!-- Alden Gillespy -->
+ <li><a href="http://www.thetestpattern.com/">Test Pattern Radio</a>
+ <!-- Roberto Mogliotti -->
+ <li><a href="http://lists.atlink.it/">ATLink SRL</a>
+ <!-- Daniel Buchmann -->
+ <li><a href="http://www.bibsys.com/english.html">BIBSYS (Library
+ Automation System, Norway)</a>
+ <!-- Tim Lyons -->
+ <li><a href="http://www.digitalvoodoo.org">www.digitalvoodoo.org</a>
+ <!-- Michael Neil Felzien -->
+ <li><a href="http://www.pied.com/">Process Integrated Engineering
+ Design (PIED)</a>
+ <!-- mark roberts -->
+ <li>BBSRC (Bioscience and Biotechnical Scientific Research Council)
+ <!-- Joshua Erdman -->
+ <li><a href="http://www.ernestallen.com">Ernest & Allen</a>
+ <!-- Hank Roth -->
+ <li><a href="http://pnews.org/">pnews.org</a>
+ <!-- Rene Lange -->
+ <li><a href="http://www.tlug.de">Linux Users Group, Germany</a>
+ <!-- switzerland -->
+ <li><a href="http://lists.indymedia.org">indymedia</a>
+ <!-- Keith Patton -->
+ <li><a href="http://www.ethicalmedia.com">Ethical Media Ltd</a>
+ <!-- Leandro Rache Sanchez -->
+ <li><a href="http://www.hipertek.net">Hipertek Ltda</a>, Bogota,
+ Columbia</a>
+ <!-- Yann Forget -->
+ <li><a href="http://mail.ynternet.net/mailman/listinfo"
+ >ynternet.org</a>
+ <!-- Renn -->
+ <li><a href="http://csrfree.csrsr.ncu.edu.tw/mailman/listinfo/ncuce83/"
+ >National Central University, Dept. of Civil Engineering, the 83th</a>
+ <!-- Jesse Trucks -->
+ <li><A HREF="http://list.cyberius.net">Cyberius' Network lists</A>
+ <!-- Erik J. Heels -->
+ <li><a href="http://www.iserver.com">iServer</a> and
+ <a href="http://www.lawlawlaw.com">www.lawlawlaw.com</a>
+ <!-- Peter Verhas -->
+ <li><a href="http://Scriptbasic.com">Scriptbasic.com</a>
+ <!-- webmaster@itxzone.com -->
+ <li><a href="http://www.itxzone.com/">ITXZONE: The Indian IT Zone</a>
+ <!-- renn@cy1000.com.tw -->
+ <li><a
+ href="http://csrfree.csrsr.ncu.edu.tw/mailman/listinfo/ncuce83/"
+ >National Central University, Dept. of Civil Engineering, the 83th</a>
+ <!-- Jerry Feldman -->
+ <li><a href="http://www.blu.org/">Boston Linux and Unix user group</a>
+ <!-- Leandro Rache Sanchez -->
+ <li><a href="http://www.hipertek.net/">Hipertek Ltda.</a>
+ <!-- Jan Kampherbeek -->
+ <li><a href="http://spiderpro.com/">SpiderPro</a>
+ <!-- Porfirio Trincheiras -->
+ <li><a href="http://www.fmh.utl.pt">Faculdade de Motricidade
+ Humana</a> and
+ <a href="http://www.fmv.utl.pt">Faculdade de Medicina Veterinária</a>
+ <!-- info@compamerica.com -->
+ <li><a href="http://www.american-computer.com">American Computer</a>
+ <!-- Bob Radvanovsky -->
+ <li><a href="http://www.unixworks.net">Unixworks</a>
+ <!-- Mats Brante -->
+ <li><a href="http://www.osthyvel.net">Osthyvel.net</a>
+ <!-- Nemeth Tamas -->
+ <li><a href="http://lists.sek.nyme.hu">University of West Hungary</a>
+ <!-- Marc MERLIN -->
+ <li><a href="http://lists.svlug.org/lists/listinfo/">Silicon Valley
+ Linux Users' Group</a>
+ <!-- Bernardo Bernal González -->
+ <li><a href="http://www.fundaciongsr.es">German Sanchez Ruiperez
+ Foundation, Spain</a>
+ <!-- Alejandro G. Sánchez Martínez -->
+ <li><a href="http://www.red-libre.com">www.red-libre.com</a>
+ <!-- Randy Stoeker -->
+ <li><a href="http://comm-org.utoledo.edu">COMM-ORG: The On-Line
+ Conference on Community Organizing</a>
+ <!-- Josenivaldo Benito Junior -->
+ <li>FAI - Faculdades Adamantinenses Integradas
+ <!-- Ravi Starzl -->
+ <li><a href="http://www.oddzz.com">Oddzz</a> and <a
+ href="http://www.casinozz.com">Casinozz</a>.
+ <!-- Don Sizemore -->
+ <li><a href="http://www.ibiblio.org">ibiblio</a>
+ <!-- Marc Bitner -->
+ <li><a href="http://shrplist.umsmed.edu/mailman/listinfo/him-l">University
+ of Mississippi Medical Center HIM Listserve</a>
+ <!-- Eli Caul -->
+ <li><a href="http://www.mirafiori.com">the Fiat Page</a>
+ (automotive), with mailing lists at
+ <a href="http://www.mirafiori.com/lists">this url</a>.
+ <!-- Art Jones -->
+ <li><a href="http://www.meteoritecentral.com/">Meteorite
+ Central</a> via the mailing lists at Pair Networks.
+ <!-- Alstair Hutchinson -->
+ <li><a href="http://www.deviantpc.com">DeviantPC</a>
+ <!-- George D. Holmes -->
+ <li><a href="http://mailman.csce.uark.edu">The Computer Science &
+ Computer Engineering</a> department at the University of Arkansas.
+ <!-- steven -->
+ <li><a href="http://www.shakespeare-monologues.org/">Shakespeare's
+ Monologues</a> with mailing lists at
+ <a
+ href="http://lists.shakespeare-monologues.org/mailman/listinfo/discussion">this url</a>.
+ <!-- Kenneth Irving -->
+ <li><a href="http://www.fq.edu.uy">Universidad de la República,
+ Facultad de Química, Uruguay</a>
+ <!-- Ian McCormack -->
+ <li><a href="http://www.ne4x4.org.uk/">North East 4x4 club</a>
+ <!-- Jörn Nettingsmeier -->
+ <li><a href="http://www.linuxdj.com/audio/lad/">Linux Audio
+ Mailing Lists</a>
+ <!-- Dirk H. Shulz -->
+ <li><a href="http://www.multibyte.de">MultiByte GmbH</a>
+ <!-- Justin Yunke -->
+ <li><a href="http://www.elists.org/">Elists Online</a>
+ <!-- John C. Amodeo -->
+ <li><a href="http://fas.rutgers.edu">FAS - Rutgers, The State
+ University of New Jersey</a>
+ <!-- Lucian Daniel Kafka -->
+ <li><a href="http://www.conexim.com.au">Conexim web hosting Australia</a>
+ <!-- zainul bakri -->
+ <li>National Institute of Health Research and Development, Indonesia.
+ <!-- Chris Olson -->
+ <li><a href="http://astcomm.net/">AST Communications, Inc.</a>
+ <!-- Derek Colley -->
+ <li><a href="http://listserv.sap.com/">SAP</a>
+ <!-- Christian Thamer -->
+ <li><a href="http://www.iwl.com/Support/lists.html">InterWorking Labs</a>
+ <!-- A. Sajjad Zaidi -->
+ <li><a href="http://www.tokyopc.org/">Tokyo PC Users Group</a>
+ with mailing lists <a
+ href="http://www.tokyopc.org/mailman/listinfo/">here</a>.
+ <!-- Dr. David A. Zatz -->
+ <li><a href="http://allpar.com/">Allpar.com (Chrysler enthusiasts)</a>
+ <!-- Donna Hanlon -->
+ <li><a href="http://brainmap.wustl.edu">Van Essen Lab at Washington
+ University School of Medicine</a>
+ <!-- Matt Helsley -->
+ <li><a href="http://linux.ucla.edu">UCLA LUG</a> with mailing
+ lists <a href="http://linux.ucla.edu/mailman/listinfo">here</a>.
+ <!-- Erisian Saint Vinge -->
+ <li><a href="http://www.azone.org/">Azone</a>
+ <!-- Nicolas Cartron -->
+ <li><a href="http://squirrelmail-fr.org">SquirrelMail (French)</a>
+ <!-- Shakaraji Thakor -->
+ <li><a href="http://mail.gnvfc.com/mailman/listinfo">GNFC Ltd</a>
+ <!-- Peter Turner -->
+ <li><a href="http://www.edow.org">Diocese of Washington</a>
+ <!-- Gottfried Hamm -->
+ <li><a href="http://lists.ghks.de/">Gottfried Hamm
+ KommunikationsSysteme</a>
+ <!-- Richard Lippmann -->
+ <li><a href="http://www.zirndorf.de">Cultural events in Zirndorf,
+ Bavaria</a>
+ <!-- Gualter Barbas Baptista -->
+ <li><a href="http://gaia.org.pt">GAIA</a>, with mailing lists at
+ <a href="http://gaia.org.pt/listas/">here</a>.
+ <!-- Ansgar Schmidt -->
+ <li><a href="http://auriga.wearlab.de">Free Mobile Software System</a>
+</ul>
+
+</td><!-- end of body cell -->
+</tr><!-- end of sidebar/body row -->
+</table><!-- end of page table -->
+</body></html>
diff --git a/admin/www/links.h b/admin/www/links.h
new file mode 100644
index 00000000..aa56a298
--- /dev/null
+++ b/admin/www/links.h
@@ -0,0 +1,9 @@
+<!-- -*- html -*- -->
+<h3>Overview</h3>
+<li><a href="index.html">Home</a>
+<li><a href="features.html">Features</a>
+<li><a href="otherstuff.html">Logos and Papers</a>
+<li><a href="inthenews.html">Mailman in Use</a>
+<li><a href="prev.html">Previous Releases</a>
+<li><a href="bugs.html">Bugs and Patches</a>
+<li><a href="mirrors.html">Mirrors</a>
diff --git a/admin/www/lists.ht b/admin/www/lists.ht
new file mode 100644
index 00000000..c9e8e563
--- /dev/null
+++ b/admin/www/lists.ht
@@ -0,0 +1,52 @@
+Title: Mailman mailing lists
+
+<h3>Mailman mailing lists</h3>
+
+We have several mailing lists devoted to Mailman, which also provide a
+nice demonstration of Mailman!
+
+<ul>
+<p><li><a href="http://mail.python.org/mailman/listinfo/mailman-users">
+ Mailman Users</a> is the mailing list to subscribe to if you are
+ using Mailman at your site, and may have problems or questions
+ relating to installation, use, etc. We'll try to keep the deep
+ technical discussions off this list.
+ (<a href="http://mail.python.org/pipermail/mailman-users/"><em>archives</em></a>)
+
+<p><li><a href="http://listowner.org/">Listowners</a>
+ is a mailing list with a non-technical focus, specifically for
+ discussions from the perspective of listowners and moderators
+ who do not have "shell access" to the mailing list server
+ where the Mailman software runs. (<a href="http://listowner.org/pipermail/lo/"><em>archives</em></a>)
+
+<p><li><a href="http://mail.python.org/mailman/listinfo/mailman-announce">
+ Mailman Announce</a> is a read-only list that you can subscribe to
+ if you are only interested in release notices and other important
+ news. Only the core Mailman developers can post messages to this
+ list.
+ (<a href="http://mail.python.org/pipermail/mailman-announce/"><em>archives</em></a>)
+
+<p><li><a href="http://mail.python.org/mailman/listinfo/mailman-developers">
+ Mailman Developers</a> is the mailing list to use if you are
+ interested in helping us develop Mailman, discuss future
+ directions, etc. This is the list for more in-depth technical
+ issues.
+ (<a href="http://mail.python.org/pipermail/mailman-developers/"><em>archives</em></a>)
+
+ <p>More information about developer resources is available
+ <a href="devs.html">here</a>.
+
+<p><li><a href="http://mail.python.org/mailman/listinfo/mailman-i18n">
+ Mailman Internationalization</a> is the list for discussing the
+ multi-lingual support in Mailman 2.1. Everyone who is working on
+ translations of Mailman should subscribe to this mailing list.
+ (<a href="http://mail.python.org/pipermail/mailman-i18n/"><em>archives</em></a>)
+
+<p><li><a href="http://mail.python.org/mailman/listinfo/mailman-checkins">
+ Mailman Checkins</a> is an adjunct list to the publically
+ accessible read-only CVS repository. This list is for the
+ hardcore developers, or anybody else submitting patches, since we
+ really prefer such patches to be generated against the latest
+ snapshot. This is a read-only list; only the core Mailman
+ developers can post messages to this list. There is no archive.
+</ul>
diff --git a/admin/www/lists.html b/admin/www/lists.html
new file mode 100644
index 00000000..998d7483
--- /dev/null
+++ b/admin/www/lists.html
@@ -0,0 +1,185 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<!-- THIS PAGE IS AUTOMATICALLY GENERATED. DO NOT EDIT. -->
+<!-- Thu Dec 26 22:30:23 2002 -->
+<!-- USING HT2HTML 2.0 -->
+<!-- SEE http://ht2html.sf.net -->
+<!-- User-specified headers:
+Title: Mailman mailing lists
+
+-->
+
+<head>
+<title>Mailman mailing lists</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
+<meta name="generator" content="HT2HTML/2.0">
+<style type="text/css">
+body { margin: 0px; }
+</style>
+</head>
+<body bgcolor="#ffffff" text="#000000"
+ marginwidth="0" marginheight="0"
+ link="#0000bb" vlink="#551a8b"
+ alink="#ff0000">
+<!-- start of page table -->
+<table width="100%" border="0" cellspacing="0" cellpadding="0">
+<!-- start of banner row -->
+<tr>
+<!-- start of corner cells -->
+<td width="150" valign="middle" bgcolor="white" class="corner">
+
+<center>
+ <a href="./index.html">
+ <img border=0 src="./images/logo-70.jpg"></a></center> </td>
+<td width="15" bgcolor="#eecfa1">&nbsp;&nbsp;</td><!--spacer-->
+<!-- end of corner cells -->
+<!-- start of banner -->
+<td width="90%" bgcolor="#eecfa1" class="banner">
+<!-- start of site links table -->
+<table width="100%" border="0"
+CELLSPACING=0 CELLPADDING=0
+ bgcolor="#ffffff">
+<tr>
+ <td bgcolor="#eecfa1">
+<a href="./index.html">Home</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./docs.html">Documentation</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<b>Mailing lists</b>
+ </td>
+</tr><tr>
+ <td bgcolor="#eecfa1">
+<a href="./help.html">Help</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./download.html">Download</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./devs.html">Developers</a>
+ </td>
+</tr>
+</table><!-- end of site links table -->
+
+</td><!-- end of banner -->
+</tr><!-- end of banner row -->
+<tr><!-- start of sidebar/body row -->
+<!-- start of sidebar cells -->
+<td width="150" valign="top" bgcolor="#eecfa1" class="sidebar">
+<!-- start of sidebar table -->
+<table width="100%" border="0" cellspacing="0" cellpadding="3"
+ bgcolor="#ffffff">
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Overview
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="index.html">Home</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="features.html">Features</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="otherstuff.html">Logos and Papers</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="inthenews.html">Mailman in Use</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="prev.html">Previous Releases</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="bugs.html">Bugs and Patches</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="mirrors.html">Mirrors</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">&nbsp;
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Email Us
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="mailto:mailman-users@python.org">mailman-users@python.org</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&nbsp;
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="http://www.python.org/"><img border=0
+ src="./images/PythonPoweredSmall.png"
+ ></a>&nbsp;<a href="http://sourceforge.net"><img
+ src="http://sourceforge.net/sflogo.php?group_id=103"
+ width="88" height="31" border="0"
+ alt="SourceForge Logo"></a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&nbsp;
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&copy; 1998-2002
+Free Software Foundation, Inc. Verbatim copying and distribution of this
+entire article is permitted in any medium, provided this notice is preserved.
+
+</td></tr>
+</table><!-- end of sidebar table -->
+
+</td>
+<td width="15">&nbsp;&nbsp;</td><!--spacer-->
+<!-- end of sidebar cell -->
+<!-- start of body cell -->
+<td valign="top" width="90%" class="body"><br>
+<h3>Mailman mailing lists</h3>
+
+We have several mailing lists devoted to Mailman, which also provide a
+nice demonstration of Mailman!
+
+<ul>
+<p><li><a href="http://mail.python.org/mailman/listinfo/mailman-users">
+ Mailman Users</a> is the mailing list to subscribe to if you are
+ using Mailman at your site, and may have problems or questions
+ relating to installation, use, etc. We'll try to keep the deep
+ technical discussions off this list.
+ (<a href="http://mail.python.org/pipermail/mailman-users/"><em>archives</em></a>)
+
+<p><li><a href="http://listowner.org/">Listowners</a>
+ is a mailing list with a non-technical focus, specifically for
+ discussions from the perspective of listowners and moderators
+ who do not have "shell access" to the mailing list server
+ where the Mailman software runs. (<a href="http://listowner.org/pipermail/lo/"><em>archives</em></a>)
+
+<p><li><a href="http://mail.python.org/mailman/listinfo/mailman-announce">
+ Mailman Announce</a> is a read-only list that you can subscribe to
+ if you are only interested in release notices and other important
+ news. Only the core Mailman developers can post messages to this
+ list.
+ (<a href="http://mail.python.org/pipermail/mailman-announce/"><em>archives</em></a>)
+
+<p><li><a href="http://mail.python.org/mailman/listinfo/mailman-developers">
+ Mailman Developers</a> is the mailing list to use if you are
+ interested in helping us develop Mailman, discuss future
+ directions, etc. This is the list for more in-depth technical
+ issues.
+ (<a href="http://mail.python.org/pipermail/mailman-developers/"><em>archives</em></a>)
+
+ <p>More information about developer resources is available
+ <a href="devs.html">here</a>.
+
+<p><li><a href="http://mail.python.org/mailman/listinfo/mailman-i18n">
+ Mailman Internationalization</a> is the list for discussing the
+ multi-lingual support in Mailman 2.1. Everyone who is working on
+ translations of Mailman should subscribe to this mailing list.
+ (<a href="http://mail.python.org/pipermail/mailman-i18n/"><em>archives</em></a>)
+
+<p><li><a href="http://mail.python.org/mailman/listinfo/mailman-checkins">
+ Mailman Checkins</a> is an adjunct list to the publically
+ accessible read-only CVS repository. This list is for the
+ hardcore developers, or anybody else submitting patches, since we
+ really prefer such patches to be generated against the latest
+ snapshot. This is a read-only list; only the core Mailman
+ developers can post messages to this list. There is no archive.
+</ul>
+
+</td><!-- end of body cell -->
+</tr><!-- end of sidebar/body row -->
+</table><!-- end of page table -->
+</body></html>
diff --git a/admin/www/mailman.html b/admin/www/mailman.html
new file mode 100644
index 00000000..bc8b1e16
--- /dev/null
+++ b/admin/www/mailman.html
@@ -0,0 +1,146 @@
+<!-- This is a boilerplate for the web pages used in the GNU project.
+ Please change it according to specifications -->
+<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<HTML>
+<HEAD>
+<TITLE>Mailman - GNU Project - Free Software Foundation (FSF)</TITLE>
+<LINK REV="made" HREF="mailto:webmasters@www.gnu.org">
+</HEAD>
+<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#1F00FF" ALINK="#FF0000" VLINK="#9900DD">
+<H3>Mailman</H3>
+<!-- When using this boilerplate, remember to replace the "???" in both places above. -->
+
+<!-- when you replace this graphics, make sure you change the link
+ to also point to the correct html page.
+ If you make a new graphics for this page, make sure it has
+ a corresponding entry in /graphics/graphics.html -->
+<A HREF="/graphics/dragonlogo.jpg"><IMG SRC="/graphics/dragonlogo.jpg"
+ ALT=" [Delivered by Mailman logo] "
+ WIDTH="247" HEIGHT="93">&nbsp; (jpeg 6k)</A>
+<!-- only english is available currently
+<P>[<A HREF="">French</A>|<A HREF="">Spanish</A>]
+<P> -->
+<HR>
+<P>
+<!-- Replace this list with the page's contents. -->
+<H4>Table of contents</H4>
+<UL>
+ <LI><A HREF="#introduction"
+ NAME="TOCintroduction">Introduction to Mailman</A>
+ <LI><A HREF="#downloading"
+ NAME="TOCdownloading">Downloading Mailman</A>
+ <li><a href="#mailinglists"
+ name="TOCmailinglists">Mailman Discussion Lists</a>
+</UL>
+
+<P>
+<H4><A HREF="#TOCintroduction"
+ NAME="introduction">Introduction to Mailman</A></H4>
+<P>
+Mailman is software to help manage email discussion lists, much like
+Majordomo and SmartList. Unlike most similar products, Mailman gives
+each mailing list a web page, and allows users to subscribe,
+unsubscribe, etc. over the web. Even the list manager can administer
+his or her list entirely from the web. Mailman also integrates most
+things people want to do with mailing lists, including archiving,
+mail-to-news gateways, integrated bounce handling, spam prevention,
+email-based admin commands, direct SMTP delivery (with fast bulk
+mailing), support for virtual domains, and more.
+
+<p>
+Mailman runs on most Un*x-like systems, is compatible with most web
+servers and browsers, and most SMTP servers. Mailman requires
+<a href="http://www.python.org/">Python version 1.5 or newer</a>.
+Python is a free object-oriented scripting language. A few files are
+written in C for security purposes.
+
+<p>The manual is still only a set of READMEs provided in the Mailman
+distribution. For now, more information can be found at
+<a href="http://www.list.org/">www.list.org</a>.
+
+<P>
+<HR>
+<P>
+<H4><A HREF="#TOCdownloading" NAME="downloading">Downloading Mailman</A></H4>
+<P>
+Mailman can be found on
+<A HREF="http://ftp.gnu.org/gnu/mailman/">http://ftp.gnu.org/gnu/mailman/</A>
+or one of <A HREF="/prep/ftp.html">the mirrors</A>.
+<P>
+
+<p>
+<HR>
+<P>
+<H4><a href="#TOCmailinglists" NAME="mailinglists">Mailman Discussion
+Lists</a></h4>
+
+<p>
+There are several mailing lists devoted to Mailman, which also provide
+nice demonstrations of Mailman!
+
+<ul>
+<li><a href="http://www.python.org/mailman/listinfo/mailman-announce">
+ Mailman Announce</a> is a read-only list that you can subscribe to
+ if you are only interested in release notices and other important
+ news. Only the core Mailman developers can post messages to this
+ list.
+
+<p><li><a href="http://www.python.org/mailman/listinfo/mailman-users">
+ Mailman Users</a> is the mailing list to subscribe to if you are
+ using Mailman at your site, and may have problems or questions
+ relating to installation, use, etc. We'll try to keep the deep
+ technical discussions off this list.
+
+<p><li><a href="http://www.python.org/mailman/listinfo/mailman-developers">
+ Mailman Developers</a> is the mailing list to use if you are
+ interested in helping us develop Mailman, discuss future
+ directions, etc. This is the list for more in-depth technical
+ issues.
+
+<p><li><a href="http://www.python.org/mailman/listinfo/mailman-checkins">
+ Mailman Checkins</a> is an adjunct list to the publically
+ accessible read-only CVS repository. This list is for the
+ hardcore developers, or anybody else submitting patches, since we
+ really prefer such patches to be generated against the latest
+ snapshot. This is a read-only list; only the core Mailman
+ developers can post messages to this list. There is no archive.
+</ul>
+
+<!--
+ * If needed, change the copyright block at the bottom. In general, all pages
+ on the GNU web server should have the section about verbatim copying. Please
+ do NOT remove this without talking with the webmasters first.
+-->
+<HR>
+
+<!-- english only currently
+[<A HREF="">French</A>|<A HREF="">Spanish</A>]<P>
+-->
+Return to <A HREF="/home.html">GNU's home page</A>.
+<P>
+
+Please send FSF &amp; GNU inquiries &amp; questions to
+
+<A HREF="mailto:gnu@gnu.org"><EM>gnu@gnu.org</EM></A>.
+There are also <A HREF="/home.html#ContactInfo">other ways to
+contact</A> the FSF.
+<P>
+
+Please send comments on these web pages to
+
+<A HREF="mailto:webmasters@gnu.org"><EM>webmasters@gnu.org</EM></A>,
+send other questions to
+<A HREF="mailto:gnu@gnu.org"><EM>gnu@gnu.org</EM></A>.
+<P>
+Copyright (C) 1999,2000 Free Software Foundation, Inc.,
+59 Temple Place - Suite 330, Boston, MA 02111, USA
+<P>
+Verbatim copying and distribution of this entire article is
+permitted in any medium, provided this notice is preserved.<P>
+Updated:
+<!-- hhmts start -->
+Last modified: Sat Oct 26 13:29:25 EDT 2002
+<!-- hhmts end -->
+<HR>
+</BODY>
+</HTML>
diff --git a/admin/www/mgrs.ht b/admin/www/mgrs.ht
new file mode 100644
index 00000000..d4358062
--- /dev/null
+++ b/admin/www/mgrs.ht
@@ -0,0 +1,8 @@
+Title: List Manager Documentation
+Links: links.h doco-links.h
+
+<h3>List Manager Documentation</h3>
+
+<p><a href="http://staff.imsa.edu/~ckolar">Chris Kolar</a> has made
+available <a href="http://staff.imsa.edu/~ckolar/mailman/">list
+manager documentation</a> for Mailman.
diff --git a/admin/www/mgrs.html b/admin/www/mgrs.html
new file mode 100644
index 00000000..37742b1e
--- /dev/null
+++ b/admin/www/mgrs.html
@@ -0,0 +1,159 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<!-- THIS PAGE IS AUTOMATICALLY GENERATED. DO NOT EDIT. -->
+<!-- Thu Dec 26 22:30:23 2002 -->
+<!-- USING HT2HTML 2.0 -->
+<!-- SEE http://ht2html.sf.net -->
+<!-- User-specified headers:
+Title: List Manager Documentation
+
+-->
+
+<head>
+<title>List Manager Documentation</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
+<meta name="generator" content="HT2HTML/2.0">
+<style type="text/css">
+body { margin: 0px; }
+</style>
+</head>
+<body bgcolor="#ffffff" text="#000000"
+ marginwidth="0" marginheight="0"
+ link="#0000bb" vlink="#551a8b"
+ alink="#ff0000">
+<!-- start of page table -->
+<table width="100%" border="0" cellspacing="0" cellpadding="0">
+<!-- start of banner row -->
+<tr>
+<!-- start of corner cells -->
+<td width="150" valign="middle" bgcolor="white" class="corner">
+
+<center>
+ <a href="./index.html">
+ <img border=0 src="./images/logo-70.jpg"></a></center> </td>
+<td width="15" bgcolor="#eecfa1">&nbsp;&nbsp;</td><!--spacer-->
+<!-- end of corner cells -->
+<!-- start of banner -->
+<td width="90%" bgcolor="#eecfa1" class="banner">
+<!-- start of site links table -->
+<table width="100%" border="0"
+CELLSPACING=0 CELLPADDING=0
+ bgcolor="#ffffff">
+<tr>
+ <td bgcolor="#eecfa1">
+<a href="./index.html">Home</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./docs.html">Documentation</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./lists.html">Mailing lists</a>
+ </td>
+</tr><tr>
+ <td bgcolor="#eecfa1">
+<a href="./help.html">Help</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./download.html">Download</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./devs.html">Developers</a>
+ </td>
+</tr>
+</table><!-- end of site links table -->
+
+</td><!-- end of banner -->
+</tr><!-- end of banner row -->
+<tr><!-- start of sidebar/body row -->
+<!-- start of sidebar cells -->
+<td width="150" valign="top" bgcolor="#eecfa1" class="sidebar">
+<!-- start of sidebar table -->
+<table width="100%" border="0" cellspacing="0" cellpadding="3"
+ bgcolor="#ffffff">
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Overview
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="index.html">Home</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="features.html">Features</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="otherstuff.html">Logos and Papers</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="inthenews.html">Mailman in Use</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="prev.html">Previous Releases</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="bugs.html">Bugs and Patches</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="mirrors.html">Mirrors</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">&nbsp;
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Documentation
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="docs.html">Overview</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="users.html">Users</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="admins.html">List Managers</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="site.html">Site Administrators</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="i18n.html">Translators</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">&nbsp;
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Email Us
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="mailto:mailman-users@python.org">mailman-users@python.org</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&nbsp;
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="http://www.python.org/"><img border=0
+ src="./images/PythonPoweredSmall.png"
+ ></a>&nbsp;<a href="http://sourceforge.net"><img
+ src="http://sourceforge.net/sflogo.php?group_id=103"
+ width="88" height="31" border="0"
+ alt="SourceForge Logo"></a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&nbsp;
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&copy; 1998-2002
+Free Software Foundation, Inc. Verbatim copying and distribution of this
+entire article is permitted in any medium, provided this notice is preserved.
+
+</td></tr>
+</table><!-- end of sidebar table -->
+
+</td>
+<td width="15">&nbsp;&nbsp;</td><!--spacer-->
+<!-- end of sidebar cell -->
+<!-- start of body cell -->
+<td valign="top" width="90%" class="body"><br>
+<h3>List Manager Documentation</h3>
+
+<p><a href="http://staff.imsa.edu/~ckolar">Chris Kolar</a> has made
+available <a href="http://staff.imsa.edu/~ckolar/mailman/">list
+manager documentation</a> for Mailman.
+
+</td><!-- end of body cell -->
+</tr><!-- end of sidebar/body row -->
+</table><!-- end of page table -->
+</body></html>
diff --git a/admin/www/mirrors.ht b/admin/www/mirrors.ht
new file mode 100644
index 00000000..7ca7c37c
--- /dev/null
+++ b/admin/www/mirrors.ht
@@ -0,0 +1,12 @@
+Title: Mailman Web Page Mirrors
+
+<h3>Mailman Web Page Mirrors</h3>
+
+These web pages are mirrored in several locations for your
+convenience. Here are the current list of mirrors:
+
+<ul>
+<li><a href="http://www.list.org/">www.list.org</a>
+<li><a href="http://www.gnu.org/software/mailman/index.html">GNU</a>
+<li><a href="http://mailman.sf.net/">SourceForge</a>
+</ul>
diff --git a/admin/www/mirrors.html b/admin/www/mirrors.html
new file mode 100644
index 00000000..84c25eda
--- /dev/null
+++ b/admin/www/mirrors.html
@@ -0,0 +1,145 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<!-- THIS PAGE IS AUTOMATICALLY GENERATED. DO NOT EDIT. -->
+<!-- Thu Dec 26 22:30:23 2002 -->
+<!-- USING HT2HTML 2.0 -->
+<!-- SEE http://ht2html.sf.net -->
+<!-- User-specified headers:
+Title: Mailman Web Page Mirrors
+
+-->
+
+<head>
+<title>Mailman Web Page Mirrors</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
+<meta name="generator" content="HT2HTML/2.0">
+<style type="text/css">
+body { margin: 0px; }
+</style>
+</head>
+<body bgcolor="#ffffff" text="#000000"
+ marginwidth="0" marginheight="0"
+ link="#0000bb" vlink="#551a8b"
+ alink="#ff0000">
+<!-- start of page table -->
+<table width="100%" border="0" cellspacing="0" cellpadding="0">
+<!-- start of banner row -->
+<tr>
+<!-- start of corner cells -->
+<td width="150" valign="middle" bgcolor="white" class="corner">
+
+<center>
+ <a href="./index.html">
+ <img border=0 src="./images/logo-70.jpg"></a></center> </td>
+<td width="15" bgcolor="#eecfa1">&nbsp;&nbsp;</td><!--spacer-->
+<!-- end of corner cells -->
+<!-- start of banner -->
+<td width="90%" bgcolor="#eecfa1" class="banner">
+<!-- start of site links table -->
+<table width="100%" border="0"
+CELLSPACING=0 CELLPADDING=0
+ bgcolor="#ffffff">
+<tr>
+ <td bgcolor="#eecfa1">
+<a href="./index.html">Home</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./docs.html">Documentation</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./lists.html">Mailing lists</a>
+ </td>
+</tr><tr>
+ <td bgcolor="#eecfa1">
+<a href="./help.html">Help</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./download.html">Download</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./devs.html">Developers</a>
+ </td>
+</tr>
+</table><!-- end of site links table -->
+
+</td><!-- end of banner -->
+</tr><!-- end of banner row -->
+<tr><!-- start of sidebar/body row -->
+<!-- start of sidebar cells -->
+<td width="150" valign="top" bgcolor="#eecfa1" class="sidebar">
+<!-- start of sidebar table -->
+<table width="100%" border="0" cellspacing="0" cellpadding="3"
+ bgcolor="#ffffff">
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Overview
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="index.html">Home</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="features.html">Features</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="otherstuff.html">Logos and Papers</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="inthenews.html">Mailman in Use</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="prev.html">Previous Releases</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="bugs.html">Bugs and Patches</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<b>Mirrors</b>
+</td></tr>
+<tr><td bgcolor="#eecfa1">&nbsp;
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Email Us
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="mailto:mailman-users@python.org">mailman-users@python.org</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&nbsp;
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="http://www.python.org/"><img border=0
+ src="./images/PythonPoweredSmall.png"
+ ></a>&nbsp;<a href="http://sourceforge.net"><img
+ src="http://sourceforge.net/sflogo.php?group_id=103"
+ width="88" height="31" border="0"
+ alt="SourceForge Logo"></a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&nbsp;
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&copy; 1998-2002
+Free Software Foundation, Inc. Verbatim copying and distribution of this
+entire article is permitted in any medium, provided this notice is preserved.
+
+</td></tr>
+</table><!-- end of sidebar table -->
+
+</td>
+<td width="15">&nbsp;&nbsp;</td><!--spacer-->
+<!-- end of sidebar cell -->
+<!-- start of body cell -->
+<td valign="top" width="90%" class="body"><br>
+<h3>Mailman Web Page Mirrors</h3>
+
+These web pages are mirrored in several locations for your
+convenience. Here are the current list of mirrors:
+
+<ul>
+<li><a href="http://www.list.org/">www.list.org</a>
+<li><a href="http://www.gnu.org/software/mailman/index.html">GNU</a>
+<li><a href="http://mailman.sf.net/">SourceForge</a>
+</ul>
+
+</td><!-- end of body cell -->
+</tr><!-- end of sidebar/body row -->
+</table><!-- end of page table -->
+</body></html>
diff --git a/admin/www/otherstuff.ht b/admin/www/otherstuff.ht
new file mode 100644
index 00000000..b60041f7
--- /dev/null
+++ b/admin/www/otherstuff.ht
@@ -0,0 +1,23 @@
+Title: Mailman Logos and Papers
+
+<h3>Logos</h3>
+
+The Dragon De Monsyne created and donated two logos for Mailman which
+you can use to link back to the Mailman website.
+
+<table>
+<tr><td><img src="images/logo-sm.jpg"></td>
+ <td><img src="images/logo-lg.jpg"></td>
+</tr><tr><td><center>Small Logo (110x35)</center></td>
+ <td><center>Large Logo (247x93)</center></td>
+</tr>
+</table>
+
+<h3>Papers</h3>
+
+<p>A number of papers and other material presented at
+<a href="http://www.foretec.com/python/workshops/1998-11/proceedings.html">
+the 7th International Python Conference</a> and the 12th Usenix LISA
+conference are available
+<a href="http://sourceforge.net/project/showfiles.php?group_id=103"
+>here</a>.
diff --git a/admin/www/otherstuff.html b/admin/www/otherstuff.html
new file mode 100644
index 00000000..47dae557
--- /dev/null
+++ b/admin/www/otherstuff.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<!-- THIS PAGE IS AUTOMATICALLY GENERATED. DO NOT EDIT. -->
+<!-- Mon Dec 30 23:37:27 2002 -->
+<!-- USING HT2HTML 2.0 -->
+<!-- SEE http://ht2html.sf.net -->
+<!-- User-specified headers:
+Title: Mailman Logos and Papers
+
+-->
+
+<head>
+<title>Mailman Logos and Papers</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
+<meta name="generator" content="HT2HTML/2.0">
+<style type="text/css">
+body { margin: 0px; }
+</style>
+</head>
+<body bgcolor="#ffffff" text="#000000"
+ marginwidth="0" marginheight="0"
+ link="#0000bb" vlink="#551a8b"
+ alink="#ff0000">
+<!-- start of page table -->
+<table width="100%" border="0" cellspacing="0" cellpadding="0">
+<!-- start of banner row -->
+<tr>
+<!-- start of corner cells -->
+<td width="150" valign="middle" bgcolor="white" class="corner">
+
+<center>
+ <a href="./index.html">
+ <img border=0 src="./images/logo-70.jpg"></a></center> </td>
+<td width="15" bgcolor="#eecfa1">&nbsp;&nbsp;</td><!--spacer-->
+<!-- end of corner cells -->
+<!-- start of banner -->
+<td width="90%" bgcolor="#eecfa1" class="banner">
+<!-- start of site links table -->
+<table width="100%" border="0"
+CELLSPACING=0 CELLPADDING=0
+ bgcolor="#ffffff">
+<tr>
+ <td bgcolor="#eecfa1">
+<a href="./index.html">Home</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./docs.html">Documentation</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./lists.html">Mailing lists</a>
+ </td>
+</tr><tr>
+ <td bgcolor="#eecfa1">
+<a href="./help.html">Help</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./download.html">Download</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./devs.html">Developers</a>
+ </td>
+</tr>
+</table><!-- end of site links table -->
+
+</td><!-- end of banner -->
+</tr><!-- end of banner row -->
+<tr><!-- start of sidebar/body row -->
+<!-- start of sidebar cells -->
+<td width="150" valign="top" bgcolor="#eecfa1" class="sidebar">
+<!-- start of sidebar table -->
+<table width="100%" border="0" cellspacing="0" cellpadding="3"
+ bgcolor="#ffffff">
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Overview
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="index.html">Home</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="features.html">Features</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<b>Logos and Papers</b>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="inthenews.html">Mailman in Use</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="prev.html">Previous Releases</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="bugs.html">Bugs and Patches</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="mirrors.html">Mirrors</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">&nbsp;
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Email Us
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="mailto:mailman-users@python.org">mailman-users@python.org</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&nbsp;
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="http://www.python.org/"><img border=0
+ src="./images/PythonPoweredSmall.png"
+ ></a>&nbsp;<a href="http://sourceforge.net"><img
+ src="http://sourceforge.net/sflogo.php?group_id=103"
+ width="88" height="31" border="0"
+ alt="SourceForge Logo"></a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&nbsp;
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&copy; 1998-2002
+Free Software Foundation, Inc. Verbatim copying and distribution of this
+entire article is permitted in any medium, provided this notice is preserved.
+
+</td></tr>
+</table><!-- end of sidebar table -->
+
+</td>
+<td width="15">&nbsp;&nbsp;</td><!--spacer-->
+<!-- end of sidebar cell -->
+<!-- start of body cell -->
+<td valign="top" width="90%" class="body"><br>
+<h3>Logos</h3>
+
+The Dragon De Monsyne created and donated two logos for Mailman which
+you can use to link back to the Mailman website.
+
+<table>
+<tr><td><img src="images/logo-sm.jpg"></td>
+ <td><img src="images/logo-lg.jpg"></td>
+</tr><tr><td><center>Small Logo (110x35)</center></td>
+ <td><center>Large Logo (247x93)</center></td>
+</tr>
+</table>
+
+<h3>Papers</h3>
+
+<p>A number of papers and other material presented at
+<a href="http://www.foretec.com/python/workshops/1998-11/proceedings.html">
+the 7th International Python Conference</a> and the 12th Usenix LISA
+conference are available
+<a href="http://sourceforge.net/project/showfiles.php?group_id=103"
+>here</a>.
+
+</td><!-- end of body cell -->
+</tr><!-- end of sidebar/body row -->
+</table><!-- end of page table -->
+</body></html>
diff --git a/admin/www/prev.ht b/admin/www/prev.ht
new file mode 100644
index 00000000..a48031be
--- /dev/null
+++ b/admin/www/prev.ht
@@ -0,0 +1,20 @@
+Title: Previous Mailman Releases
+
+<h3>Previous Mailman Releases</h3>
+
+<a href="http://sourceforge.net/project/shownotes.php?release_id=102354"
+>Mailman 2.0.13</a> is the most stable version of the 2.0 release
+branch. It is in production use at thousands of sites. It should be
+fairly easy to upgrade from Mailman 2.0.13 to Mailman 2.1 -- see the
+documentation that comes with Mailman 2.1 for details.
+
+<p>Mailman 2.0.13 works with any Python version from 1.5.2 to 2.3
+(still in alpha development as of this writing 26-Dec-2002). Mailman
+2.1 requires at least Python 2.1.3 and works best with Python 2.2.2.
+If you plan on upgrading Mailman, I first recommend that you upgrade
+to Python 2.2.2, and then upgrade Mailman.
+
+<p>There are tons of <a href="features.html">new features</a> in
+Mailman 2.1, and no new development is being done on the Mailman 2.0.x
+branch. Only absolutely critical security fixes will be issued for
+Mailman 2.0 -- the last one was issued on 29-Jul-2002.
diff --git a/admin/www/prev.html b/admin/www/prev.html
new file mode 100644
index 00000000..1fa8d465
--- /dev/null
+++ b/admin/www/prev.html
@@ -0,0 +1,153 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<!-- THIS PAGE IS AUTOMATICALLY GENERATED. DO NOT EDIT. -->
+<!-- Thu Dec 26 22:30:24 2002 -->
+<!-- USING HT2HTML 2.0 -->
+<!-- SEE http://ht2html.sf.net -->
+<!-- User-specified headers:
+Title: Previous Mailman Releases
+
+-->
+
+<head>
+<title>Previous Mailman Releases</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
+<meta name="generator" content="HT2HTML/2.0">
+<style type="text/css">
+body { margin: 0px; }
+</style>
+</head>
+<body bgcolor="#ffffff" text="#000000"
+ marginwidth="0" marginheight="0"
+ link="#0000bb" vlink="#551a8b"
+ alink="#ff0000">
+<!-- start of page table -->
+<table width="100%" border="0" cellspacing="0" cellpadding="0">
+<!-- start of banner row -->
+<tr>
+<!-- start of corner cells -->
+<td width="150" valign="middle" bgcolor="white" class="corner">
+
+<center>
+ <a href="./index.html">
+ <img border=0 src="./images/logo-70.jpg"></a></center> </td>
+<td width="15" bgcolor="#eecfa1">&nbsp;&nbsp;</td><!--spacer-->
+<!-- end of corner cells -->
+<!-- start of banner -->
+<td width="90%" bgcolor="#eecfa1" class="banner">
+<!-- start of site links table -->
+<table width="100%" border="0"
+CELLSPACING=0 CELLPADDING=0
+ bgcolor="#ffffff">
+<tr>
+ <td bgcolor="#eecfa1">
+<a href="./index.html">Home</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./docs.html">Documentation</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./lists.html">Mailing lists</a>
+ </td>
+</tr><tr>
+ <td bgcolor="#eecfa1">
+<a href="./help.html">Help</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./download.html">Download</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./devs.html">Developers</a>
+ </td>
+</tr>
+</table><!-- end of site links table -->
+
+</td><!-- end of banner -->
+</tr><!-- end of banner row -->
+<tr><!-- start of sidebar/body row -->
+<!-- start of sidebar cells -->
+<td width="150" valign="top" bgcolor="#eecfa1" class="sidebar">
+<!-- start of sidebar table -->
+<table width="100%" border="0" cellspacing="0" cellpadding="3"
+ bgcolor="#ffffff">
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Overview
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="index.html">Home</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="features.html">Features</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="otherstuff.html">Logos and Papers</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="inthenews.html">Mailman in Use</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<b>Previous Releases</b>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="bugs.html">Bugs and Patches</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="mirrors.html">Mirrors</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">&nbsp;
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Email Us
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="mailto:mailman-users@python.org">mailman-users@python.org</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&nbsp;
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="http://www.python.org/"><img border=0
+ src="./images/PythonPoweredSmall.png"
+ ></a>&nbsp;<a href="http://sourceforge.net"><img
+ src="http://sourceforge.net/sflogo.php?group_id=103"
+ width="88" height="31" border="0"
+ alt="SourceForge Logo"></a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&nbsp;
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&copy; 1998-2002
+Free Software Foundation, Inc. Verbatim copying and distribution of this
+entire article is permitted in any medium, provided this notice is preserved.
+
+</td></tr>
+</table><!-- end of sidebar table -->
+
+</td>
+<td width="15">&nbsp;&nbsp;</td><!--spacer-->
+<!-- end of sidebar cell -->
+<!-- start of body cell -->
+<td valign="top" width="90%" class="body"><br>
+<h3>Previous Mailman Releases</h3>
+
+<a href="http://sourceforge.net/project/shownotes.php?release_id=102354"
+>Mailman 2.0.13</a> is the most stable version of the 2.0 release
+branch. It is in production use at thousands of sites. It should be
+fairly easy to upgrade from Mailman 2.0.13 to Mailman 2.1 -- see the
+documentation that comes with Mailman 2.1 for details.
+
+<p>Mailman 2.0.13 works with any Python version from 1.5.2 to 2.3
+(still in alpha development as of this writing 26-Dec-2002). Mailman
+2.1 requires at least Python 2.1.3 and works best with Python 2.2.2.
+If you plan on upgrading Mailman, I first recommend that you upgrade
+to Python 2.2.2, and then upgrade Mailman.
+
+<p>There are tons of <a href="features.html">new features</a> in
+Mailman 2.1, and no new development is being done on the Mailman 2.0.x
+branch. Only absolutely critical security fixes will be issued for
+Mailman 2.0 -- the last one was issued on 29-Jul-2002.
+
+</td><!-- end of body cell -->
+</tr><!-- end of sidebar/body row -->
+</table><!-- end of page table -->
+</body></html>
diff --git a/admin/www/requirements.ht b/admin/www/requirements.ht
new file mode 100644
index 00000000..f193ecea
--- /dev/null
+++ b/admin/www/requirements.ht
@@ -0,0 +1,56 @@
+Title: Mailman Requirements
+Links: download-links.h
+Other-links:
+ <h3>SMTP servers</h3>
+ <li><a href="http://www.postfix.org/">Postfix</a>
+ <li><a href="http://www.exim.org/">Exim</a>
+ <li><a href="http://www.sendmail.org/">Sendmail</a>
+ <li><a href="http://www.qmail.org/">Qmail</a>
+ <h3>Other software</h3>
+ <li><a href="http://www.apache.org/">Apache web server</a>
+ <li><a href="http://www.gnu.org/software/gcc/">GNU C compiler</a>
+
+<h3>Requirements</h3>
+
+<p>Mailman currently runs only on GNU/Linux and any other Un*x-like
+operating system, such as *BSD, Solaris, etc. It should work on
+MacOSX but not earlier versions of MacOS. It probably does not work
+on Windows, although it's possible you could get it running on a
+Cygwin system (please <a
+href="mailto:mailman-developers@python.org">let the developer
+community know</a> if you have success with this!)
+
+<p>Before you can run Mailman, you need to make sure that
+<a href="http://www.python.org/">Python</a> is installed. Mailman 2.1
+requires at least Python 2.1.3, although Python 2.2.2 is
+recommended. Most GNU/Linux systems come with Python pre-installed, so
+you just need to make sure you're running an up-to-date version. You
+can do this by executing the following at your shell's command line:
+
+<blockquote>
+<pre>
+% python -V
+Python 2.1.3
+</pre>
+</blockquote>
+
+If your Python executable doesn't understand the <code>-V</code>
+option, it's definitely too old!
+
+<p>You will also need an SMTP server (a.k.a. mail transport agent or
+<em>MTA</em>) for mail delivery and reception. Mailman should work
+well with any of the most popular Unix mail servers such as
+<a href="http://www.postfix.org/">Postfix</a>,
+<a href="http://www.exim.org/">Exim</a>,
+<a href="http://www.sendmail.org/">Sendmail</a> and
+<a href="http://www.qmail.org/">qmail</a>.
+
+<p>You will also need a web server.
+<a href="http://www.apache.org/">Apache</a> is certainly the most
+popular, is available for all Unix systems, and works great with
+Mailman.
+
+<p>To install Mailman from the sources, you will also need an ANSI C
+compiler. The
+<a href="http://www.gnu.org/software/gcc/">GNU C compiler</a>
+gcc 2.8.1 or later is known to work well.
diff --git a/admin/www/requirements.html b/admin/www/requirements.html
new file mode 100644
index 00000000..1bb74e74
--- /dev/null
+++ b/admin/www/requirements.html
@@ -0,0 +1,196 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<!-- THIS PAGE IS AUTOMATICALLY GENERATED. DO NOT EDIT. -->
+<!-- Thu Dec 26 22:32:32 2002 -->
+<!-- USING HT2HTML 2.0 -->
+<!-- SEE http://ht2html.sf.net -->
+<!-- User-specified headers:
+Title: Mailman Requirements
+
+-->
+
+<head>
+<title>Mailman Requirements</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
+<meta name="generator" content="HT2HTML/2.0">
+<style type="text/css">
+body { margin: 0px; }
+</style>
+</head>
+<body bgcolor="#ffffff" text="#000000"
+ marginwidth="0" marginheight="0"
+ link="#0000bb" vlink="#551a8b"
+ alink="#ff0000">
+<!-- start of page table -->
+<table width="100%" border="0" cellspacing="0" cellpadding="0">
+<!-- start of banner row -->
+<tr>
+<!-- start of corner cells -->
+<td width="150" valign="middle" bgcolor="white" class="corner">
+
+<center>
+ <a href="./index.html">
+ <img border=0 src="./images/logo-70.jpg"></a></center> </td>
+<td width="15" bgcolor="#eecfa1">&nbsp;&nbsp;</td><!--spacer-->
+<!-- end of corner cells -->
+<!-- start of banner -->
+<td width="90%" bgcolor="#eecfa1" class="banner">
+<!-- start of site links table -->
+<table width="100%" border="0"
+CELLSPACING=0 CELLPADDING=0
+ bgcolor="#ffffff">
+<tr>
+ <td bgcolor="#eecfa1">
+<a href="./index.html">Home</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./docs.html">Documentation</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./lists.html">Mailing lists</a>
+ </td>
+</tr><tr>
+ <td bgcolor="#eecfa1">
+<a href="./help.html">Help</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./download.html">Download</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./devs.html">Developers</a>
+ </td>
+</tr>
+</table><!-- end of site links table -->
+
+</td><!-- end of banner -->
+</tr><!-- end of banner row -->
+<tr><!-- start of sidebar/body row -->
+<!-- start of sidebar cells -->
+<td width="150" valign="top" bgcolor="#eecfa1" class="sidebar">
+<!-- start of sidebar table -->
+<table width="100%" border="0" cellspacing="0" cellpadding="3"
+ bgcolor="#ffffff">
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Downloading
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="download.html">Downloading</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="version.html">Latest Version</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<b>Requirements</b>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="install.html">Installing</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">&nbsp;
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+SMTP servers
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="http://www.postfix.org/">Postfix</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="http://www.exim.org/">Exim</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="http://www.sendmail.org/">Sendmail</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="http://www.qmail.org/">Qmail</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">&nbsp;
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Other software
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="http://www.apache.org/">Apache web server</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="http://www.gnu.org/software/gcc/">GNU C compiler</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">&nbsp;
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Email Us
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="mailto:mailman-users@python.org">mailman-users@python.org</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&nbsp;
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="http://www.python.org/"><img border=0
+ src="./images/PythonPoweredSmall.png"
+ ></a>&nbsp;<a href="http://sourceforge.net"><img
+ src="http://sourceforge.net/sflogo.php?group_id=103"
+ width="88" height="31" border="0"
+ alt="SourceForge Logo"></a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&nbsp;
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&copy; 1998-2002
+Free Software Foundation, Inc. Verbatim copying and distribution of this
+entire article is permitted in any medium, provided this notice is preserved.
+
+</td></tr>
+</table><!-- end of sidebar table -->
+
+</td>
+<td width="15">&nbsp;&nbsp;</td><!--spacer-->
+<!-- end of sidebar cell -->
+<!-- start of body cell -->
+<td valign="top" width="90%" class="body"><br>
+<h3>Requirements</h3>
+
+<p>Mailman currently runs only on GNU/Linux and any other Un*x-like
+operating system, such as *BSD, Solaris, etc. It should work on
+MacOSX but not earlier versions of MacOS. It probably does not work
+on Windows, although it's possible you could get it running on a
+Cygwin system (please <a
+href="mailto:mailman-developers@python.org">let the developer
+community know</a> if you have success with this!)
+
+<p>Before you can run Mailman, you need to make sure that
+<a href="http://www.python.org/">Python</a> is installed. Mailman 2.1
+requires at least Python 2.1.3, although Python 2.2.2 is
+recommended. Most GNU/Linux systems come with Python pre-installed, so
+you just need to make sure you're running an up-to-date version. You
+can do this by executing the following at your shell's command line:
+
+<blockquote>
+<pre>
+% python -V
+Python 2.1.3
+</pre>
+</blockquote>
+
+If your Python executable doesn't understand the <code>-V</code>
+option, it's definitely too old!
+
+<p>You will also need an SMTP server (a.k.a. mail transport agent or
+<em>MTA</em>) for mail delivery and reception. Mailman should work
+well with any of the most popular Unix mail servers such as
+<a href="http://www.postfix.org/">Postfix</a>,
+<a href="http://www.exim.org/">Exim</a>,
+<a href="http://www.sendmail.org/">Sendmail</a> and
+<a href="http://www.qmail.org/">qmail</a>.
+
+<p>You will also need a web server.
+<a href="http://www.apache.org/">Apache</a> is certainly the most
+popular, is available for all Unix systems, and works great with
+Mailman.
+
+<p>To install Mailman from the sources, you will also need an ANSI C
+compiler. The
+<a href="http://www.gnu.org/software/gcc/">GNU C compiler</a>
+gcc 2.8.1 or later is known to work well.
+
+</td><!-- end of body cell -->
+</tr><!-- end of sidebar/body row -->
+</table><!-- end of page table -->
+</body></html>
diff --git a/admin/www/site.ht b/admin/www/site.ht
new file mode 100644
index 00000000..abb08bd6
--- /dev/null
+++ b/admin/www/site.ht
@@ -0,0 +1,240 @@
+Title: Site Administrator Documentation
+Links: doco-links.h
+
+<h3>Site Administrator Documentation</h3>
+
+By definition, the site administrator has shell access to the Mailman
+installation, and the proper permissions for total control over
+Mailman at the site. The site admin can edit the
+<code>Mailman/mm_cfg.py</code> configuration file, and can run the
+various and sundry command line scripts.
+
+<h3>Command line scripts</h3>
+
+This is a brief overview of the current crop of command line scripts
+available to the site administrator in the <code>bin</code> directory.
+For more details, run the script with the <code>--help</code> option,
+which will print out the usage synopsis. <em>You must run these
+scripts from the bin directory in the Mailman installation location,
+usually <code>/home/mailman</code></em>.
+
+<dl>
+<dt><b>add_members</b>
+<dd>Use this script to mass add members to a mailing list. Input
+ files are plain text, with one address per line. Command line
+ options allow you to add the addresses as digest or regular
+ members, select whether various notification emails are sent, and
+ choose which list to add the members to.
+
+<dt><b>addlang</b>
+<dd>Use this to add language support to a specific list. The site
+ itself must have the language pack to add already installed. Note
+ that removing language support from a list requires you to
+ manually <tt>rm</tt> the lists/<em>yourlist</em>/<em>lang</em>
+ subdirectory.
+
+<dt><b>arch</b>
+<dd>Use this to rebuild a list's archive. This script can't be used
+ to modify a list's raw mbox file, but once you've edited the mbox
+ file some other way, you can use this script to regenerate the
+ HTML version of the on-line archive.
+
+<dt><b>change_pw</b>
+<dd>Use this to change the password for a specific mailing list.
+
+<dt><b>check_db</b>
+<dd>Use this script to check the integrity of a list's
+ <code>config.pck</code> and <code>config.pck.last</code> database
+ files.
+
+<dt><b>check_perms</b>
+<dd>Use this script to check, and optionally fix, the permissions of
+ the various files in a Mailman installation.
+
+<dt><b>clone_member</b>
+<dd>Use this script to <em>clone</em> an address on a particular list
+ into different address. This is useful when someone is changing
+ email addresses and wants to keep all their old configuration
+ options. Eventually members will be able to do their own cloning,
+ but for now, only the site administrator can do this. Command
+ line options let you remove the old address, clone addresses in
+ the list managers addresses, etc.
+
+<dt><b>config_list</b>
+<dd>This is a very powerful script which lets you view and modify a
+ list's configuration variables from the command line. E.g. you
+ can dump out all the list options into a plain text file (actually
+ a valid Python file!), complete with comments explaining each
+ variable. Or you can apply the configuration from such a file to
+ a particular list.
+
+ <p>Where this might be useful is if you wanted to change the
+ <code>web_page_url</code> attribute on every list. You could
+ create a file containing only the line
+
+<blockquote>
+<pre>
+web_page_url = 'http://www.mynewsite.com/mailman-relocated/'
+</pre>
+</blockquote>
+
+ and then feed this file back to <code>config_list</code> for every
+ list on your system. <code>config_list</code> only sets the
+ list variables that it finds in the input file.
+
+<dt><b>digest_arch</b>
+<dd>This script is deprecated.
+
+<dt><b>dumpdb</b>
+<dd>This script dumps the plain text representation for any <code>.db</code>
+ database file. These files usually contain Python marshaled
+ dictionaries, and can be found in the <code>qfiles</code>
+ directory, the <code>lists/<em>listname</em></code> directory,
+ etc. This script can also be used to print out the contents of a
+ pickled message file, which are stored in <code>.pck</code> files.
+
+<dt><b>find_member</b>
+<dd>Use this script to search all the lists, or some subset of lists,
+ for an address matching a regular expression. command line
+ options let you also search the list managers as well.
+
+<dt><b>genaliases</b>
+<dd>Use this script to regenerate the plain text and <em>db</em> alias
+ files for Postfix (if you're using Postfix as you're MTA).
+
+<dt><b>list_admins</b>
+<dd>List all the owners of a mailing list.
+
+<dt><b>list_lists</b>
+<dd>List all, or some subset of, the mailing lists in the system.
+
+<dt><b>list_members</b>
+<dd>List the members of a mailing list. Command line options let you
+ print just the regular or just the digest members, print the
+ case-preserved addresses of the members, etc.
+
+<dt><b>mailmanctl</b>
+<dd>The main qrunner control script. Use this to start, stop, and
+ restart the qrunner.
+
+<dt><b>mmsitepass</b>
+<dd>Use this script to set the site password, which can be used any
+ where in the system a list or user password can be used.
+ Essentially, the site password trumps any other password, so
+ choose wisely!
+
+<dt><b>move_list</b>
+<dd>Use this script when you move Mailman to a new installation location.
+
+<dt><b>newlist</b>
+<dd>Use this script to create new mailing lists.
+
+<dt><b>qrunner</b>
+<dd>Use this to run a single qrunner once (for debugging).
+
+<dt><b>remove_members</b>
+<dd>Use this list to remove members from a mailing list.
+
+<dt><b>rmlist</b>
+<dd>Use this script to remove a mailing list. By default, a list's
+ archives are not removed unless the <code>--archives</code> option
+ is given.
+
+<dt><b>sync_members</b>
+<dd>Use this to synchronize mailing lists in a list's database with a
+ plain text file of addresses, similar to what is used for
+ <code>add_members</code>. In a sense, this script combines the
+ functionality of <code>add_members</code> and
+ <code>remove_members</code>. Any addresses in the file that are
+ not present in the list roster are added, and any addresses in the
+ roster that are not present in the file are removed.
+
+ <p>Command line options let you send various notification emails,
+ preview the changes, etc.
+
+<dt><b>update</b>
+<dd>Don't use this script manually; it is used as part of the
+ installation and upgrade procedures.
+
+<dt><b>version</b>
+<dd>Prints the Mailman version number.
+
+<dt><b>withlist</b>
+<dd>This is the most powerful and flexible script in Mailman. With it
+ you can do all manner of programmatic changes to mailing lists, or
+ look at and interactively inspect almost any aspect of Mailman.
+ By default, you run this using Python's interactive prompt, like
+ so:
+
+<blockquote>
+<pre>
+% cd /home/mailman
+% python -i bin/withlist mylist
+Loading list: mylist (unlocked)
+>>>
+</pre>
+</blockquote>
+
+ Here you see that you're left at the Python prompt after the list
+ has been loaded and instantiated. Note that without the
+ <code>--lock</code> option, the list is not locked. List must be
+ locked if you plan to make modifications to any attributes (and
+ they must be explicitly saved, as <code>withlist</code> does not
+ automatically save changes to list objects).
+
+ <p>At the prompt, the global object <em>m</em> is the instantiated
+ list object. It's a Python instance so you can do all the normal
+ things to it, view or change attributes, or make method calls on
+ it.
+
+ <p>Have a look also at the <code>--run</code> option, which lets
+ you put your programmatic changes into a Python module (file) and
+ run that module over any mailing list you want. This makes
+ <code>withlist</code> essentially a framework for easily adding
+ your own list-specific command line scripts.
+</dl>
+
+<h3>Cron scripts</h3>
+
+Mailman comes with a number of scripts that are typically only run by
+cron. However, it is generally okay for the site administrator to run
+these scripts manually, say to force a sending of accumulated digests,
+or to mail out member passwords, etc. You generally run these by
+invoking the Python executable on them, like so:
+
+<blockquote>
+<pre>
+% cd /home/mailman
+% python -S cron/senddigests
+</pre>
+</blockquote>
+
+The <code>-S</code> option is an optimization and (minor) security
+recommendation; it inhibits Python's implicit <code>import site</code>
+on initialization. Not all of these scripts support the
+<code>--help</code> option. Here is a brief description of what the
+cron scripts do:
+
+<dl>
+<dt><b>bumpdigests</b>
+<dd><em>Bumps</em> the digest volume numbers for the specified lists.
+ Resets the issue number to 1.
+
+<dt><b>checkdbs</b>
+<dd>Checks for ending list requests (posts and subscriptions) and
+ mails the list manager if there are any.
+
+<dt><b>gate_news</b>
+<dd>Polls the NNTP servers for messages and forwards any new messages
+ to their mailing list gateways.
+
+<dt><b>mailpasswds</b>
+<dd>Sends the password reminder emails to all users and all mailing lists.
+
+<dt><b>nightly_gzip</b>
+<dd>Regenerates the Pipermail <code>gzip</code>'d flat archive files.
+
+<dt><b>senddigests</b>
+<dd>Sends all accumulated digests.
+
+</dl>
diff --git a/admin/www/site.html b/admin/www/site.html
new file mode 100644
index 00000000..d27461ba
--- /dev/null
+++ b/admin/www/site.html
@@ -0,0 +1,366 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<!-- THIS PAGE IS AUTOMATICALLY GENERATED. DO NOT EDIT. -->
+<!-- Thu Dec 26 22:30:24 2002 -->
+<!-- USING HT2HTML 2.0 -->
+<!-- SEE http://ht2html.sf.net -->
+<!-- User-specified headers:
+Title: Site Administrator Documentation
+
+-->
+
+<head>
+<title>Site Administrator Documentation</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
+<meta name="generator" content="HT2HTML/2.0">
+<style type="text/css">
+body { margin: 0px; }
+</style>
+</head>
+<body bgcolor="#ffffff" text="#000000"
+ marginwidth="0" marginheight="0"
+ link="#0000bb" vlink="#551a8b"
+ alink="#ff0000">
+<!-- start of page table -->
+<table width="100%" border="0" cellspacing="0" cellpadding="0">
+<!-- start of banner row -->
+<tr>
+<!-- start of corner cells -->
+<td width="150" valign="middle" bgcolor="white" class="corner">
+
+<center>
+ <a href="./index.html">
+ <img border=0 src="./images/logo-70.jpg"></a></center> </td>
+<td width="15" bgcolor="#eecfa1">&nbsp;&nbsp;</td><!--spacer-->
+<!-- end of corner cells -->
+<!-- start of banner -->
+<td width="90%" bgcolor="#eecfa1" class="banner">
+<!-- start of site links table -->
+<table width="100%" border="0"
+CELLSPACING=0 CELLPADDING=0
+ bgcolor="#ffffff">
+<tr>
+ <td bgcolor="#eecfa1">
+<a href="./index.html">Home</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./docs.html">Documentation</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./lists.html">Mailing lists</a>
+ </td>
+</tr><tr>
+ <td bgcolor="#eecfa1">
+<a href="./help.html">Help</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./download.html">Download</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./devs.html">Developers</a>
+ </td>
+</tr>
+</table><!-- end of site links table -->
+
+</td><!-- end of banner -->
+</tr><!-- end of banner row -->
+<tr><!-- start of sidebar/body row -->
+<!-- start of sidebar cells -->
+<td width="150" valign="top" bgcolor="#eecfa1" class="sidebar">
+<!-- start of sidebar table -->
+<table width="100%" border="0" cellspacing="0" cellpadding="3"
+ bgcolor="#ffffff">
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Documentation
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="docs.html">Overview</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="users.html">Users</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="admins.html">List Managers</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<b>Site Administrators</b>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="i18n.html">Translators</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">&nbsp;
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Email Us
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="mailto:mailman-users@python.org">mailman-users@python.org</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&nbsp;
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="http://www.python.org/"><img border=0
+ src="./images/PythonPoweredSmall.png"
+ ></a>&nbsp;<a href="http://sourceforge.net"><img
+ src="http://sourceforge.net/sflogo.php?group_id=103"
+ width="88" height="31" border="0"
+ alt="SourceForge Logo"></a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&nbsp;
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&copy; 1998-2002
+Free Software Foundation, Inc. Verbatim copying and distribution of this
+entire article is permitted in any medium, provided this notice is preserved.
+
+</td></tr>
+</table><!-- end of sidebar table -->
+
+</td>
+<td width="15">&nbsp;&nbsp;</td><!--spacer-->
+<!-- end of sidebar cell -->
+<!-- start of body cell -->
+<td valign="top" width="90%" class="body"><br>
+<h3>Site Administrator Documentation</h3>
+
+By definition, the site administrator has shell access to the Mailman
+installation, and the proper permissions for total control over
+Mailman at the site. The site admin can edit the
+<code>Mailman/mm_cfg.py</code> configuration file, and can run the
+various and sundry command line scripts.
+
+<h3>Command line scripts</h3>
+
+This is a brief overview of the current crop of command line scripts
+available to the site administrator in the <code>bin</code> directory.
+For more details, run the script with the <code>--help</code> option,
+which will print out the usage synopsis. <em>You must run these
+scripts from the bin directory in the Mailman installation location,
+usually <code>/home/mailman</code></em>.
+
+<dl>
+<dt><b>add_members</b>
+<dd>Use this script to mass add members to a mailing list. Input
+ files are plain text, with one address per line. Command line
+ options allow you to add the addresses as digest or regular
+ members, select whether various notification emails are sent, and
+ choose which list to add the members to.
+
+<dt><b>addlang</b>
+<dd>Use this to add language support to a specific list. The site
+ itself must have the language pack to add already installed. Note
+ that removing language support from a list requires you to
+ manually <tt>rm</tt> the lists/<em>yourlist</em>/<em>lang</em>
+ subdirectory.
+
+<dt><b>arch</b>
+<dd>Use this to rebuild a list's archive. This script can't be used
+ to modify a list's raw mbox file, but once you've edited the mbox
+ file some other way, you can use this script to regenerate the
+ HTML version of the on-line archive.
+
+<dt><b>change_pw</b>
+<dd>Use this to change the password for a specific mailing list.
+
+<dt><b>check_db</b>
+<dd>Use this script to check the integrity of a list's
+ <code>config.pck</code> and <code>config.pck.last</code> database
+ files.
+
+<dt><b>check_perms</b>
+<dd>Use this script to check, and optionally fix, the permissions of
+ the various files in a Mailman installation.
+
+<dt><b>clone_member</b>
+<dd>Use this script to <em>clone</em> an address on a particular list
+ into different address. This is useful when someone is changing
+ email addresses and wants to keep all their old configuration
+ options. Eventually members will be able to do their own cloning,
+ but for now, only the site administrator can do this. Command
+ line options let you remove the old address, clone addresses in
+ the list managers addresses, etc.
+
+<dt><b>config_list</b>
+<dd>This is a very powerful script which lets you view and modify a
+ list's configuration variables from the command line. E.g. you
+ can dump out all the list options into a plain text file (actually
+ a valid Python file!), complete with comments explaining each
+ variable. Or you can apply the configuration from such a file to
+ a particular list.
+
+ <p>Where this might be useful is if you wanted to change the
+ <code>web_page_url</code> attribute on every list. You could
+ create a file containing only the line
+
+<blockquote>
+<pre>
+web_page_url = 'http://www.mynewsite.com/mailman-relocated/'
+</pre>
+</blockquote>
+
+ and then feed this file back to <code>config_list</code> for every
+ list on your system. <code>config_list</code> only sets the
+ list variables that it finds in the input file.
+
+<dt><b>digest_arch</b>
+<dd>This script is deprecated.
+
+<dt><b>dumpdb</b>
+<dd>This script dumps the plain text representation for any <code>.db</code>
+ database file. These files usually contain Python marshaled
+ dictionaries, and can be found in the <code>qfiles</code>
+ directory, the <code>lists/<em>listname</em></code> directory,
+ etc. This script can also be used to print out the contents of a
+ pickled message file, which are stored in <code>.pck</code> files.
+
+<dt><b>find_member</b>
+<dd>Use this script to search all the lists, or some subset of lists,
+ for an address matching a regular expression. command line
+ options let you also search the list managers as well.
+
+<dt><b>genaliases</b>
+<dd>Use this script to regenerate the plain text and <em>db</em> alias
+ files for Postfix (if you're using Postfix as you're MTA).
+
+<dt><b>list_admins</b>
+<dd>List all the owners of a mailing list.
+
+<dt><b>list_lists</b>
+<dd>List all, or some subset of, the mailing lists in the system.
+
+<dt><b>list_members</b>
+<dd>List the members of a mailing list. Command line options let you
+ print just the regular or just the digest members, print the
+ case-preserved addresses of the members, etc.
+
+<dt><b>mailmanctl</b>
+<dd>The main qrunner control script. Use this to start, stop, and
+ restart the qrunner.
+
+<dt><b>mmsitepass</b>
+<dd>Use this script to set the site password, which can be used any
+ where in the system a list or user password can be used.
+ Essentially, the site password trumps any other password, so
+ choose wisely!
+
+<dt><b>move_list</b>
+<dd>Use this script when you move Mailman to a new installation location.
+
+<dt><b>newlist</b>
+<dd>Use this script to create new mailing lists.
+
+<dt><b>qrunner</b>
+<dd>Use this to run a single qrunner once (for debugging).
+
+<dt><b>remove_members</b>
+<dd>Use this list to remove members from a mailing list.
+
+<dt><b>rmlist</b>
+<dd>Use this script to remove a mailing list. By default, a list's
+ archives are not removed unless the <code>--archives</code> option
+ is given.
+
+<dt><b>sync_members</b>
+<dd>Use this to synchronize mailing lists in a list's database with a
+ plain text file of addresses, similar to what is used for
+ <code>add_members</code>. In a sense, this script combines the
+ functionality of <code>add_members</code> and
+ <code>remove_members</code>. Any addresses in the file that are
+ not present in the list roster are added, and any addresses in the
+ roster that are not present in the file are removed.
+
+ <p>Command line options let you send various notification emails,
+ preview the changes, etc.
+
+<dt><b>update</b>
+<dd>Don't use this script manually; it is used as part of the
+ installation and upgrade procedures.
+
+<dt><b>version</b>
+<dd>Prints the Mailman version number.
+
+<dt><b>withlist</b>
+<dd>This is the most powerful and flexible script in Mailman. With it
+ you can do all manner of programmatic changes to mailing lists, or
+ look at and interactively inspect almost any aspect of Mailman.
+ By default, you run this using Python's interactive prompt, like
+ so:
+
+<blockquote>
+<pre>
+% cd /home/mailman
+% python -i bin/withlist mylist
+Loading list: mylist (unlocked)
+>>>
+</pre>
+</blockquote>
+
+ Here you see that you're left at the Python prompt after the list
+ has been loaded and instantiated. Note that without the
+ <code>--lock</code> option, the list is not locked. List must be
+ locked if you plan to make modifications to any attributes (and
+ they must be explicitly saved, as <code>withlist</code> does not
+ automatically save changes to list objects).
+
+ <p>At the prompt, the global object <em>m</em> is the instantiated
+ list object. It's a Python instance so you can do all the normal
+ things to it, view or change attributes, or make method calls on
+ it.
+
+ <p>Have a look also at the <code>--run</code> option, which lets
+ you put your programmatic changes into a Python module (file) and
+ run that module over any mailing list you want. This makes
+ <code>withlist</code> essentially a framework for easily adding
+ your own list-specific command line scripts.
+</dl>
+
+<h3>Cron scripts</h3>
+
+Mailman comes with a number of scripts that are typically only run by
+cron. However, it is generally okay for the site administrator to run
+these scripts manually, say to force a sending of accumulated digests,
+or to mail out member passwords, etc. You generally run these by
+invoking the Python executable on them, like so:
+
+<blockquote>
+<pre>
+% cd /home/mailman
+% python -S cron/senddigests
+</pre>
+</blockquote>
+
+The <code>-S</code> option is an optimization and (minor) security
+recommendation; it inhibits Python's implicit <code>import site</code>
+on initialization. Not all of these scripts support the
+<code>--help</code> option. Here is a brief description of what the
+cron scripts do:
+
+<dl>
+<dt><b>bumpdigests</b>
+<dd><em>Bumps</em> the digest volume numbers for the specified lists.
+ Resets the issue number to 1.
+
+<dt><b>checkdbs</b>
+<dd>Checks for ending list requests (posts and subscriptions) and
+ mails the list manager if there are any.
+
+<dt><b>gate_news</b>
+<dd>Polls the NNTP servers for messages and forwards any new messages
+ to their mailing list gateways.
+
+<dt><b>mailpasswds</b>
+<dd>Sends the password reminder emails to all users and all mailing lists.
+
+<dt><b>nightly_gzip</b>
+<dd>Regenerates the Pipermail <code>gzip</code>'d flat archive files.
+
+<dt><b>senddigests</b>
+<dd>Sends all accumulated digests.
+
+</dl>
+
+</td><!-- end of body cell -->
+</tr><!-- end of sidebar/body row -->
+</table><!-- end of page table -->
+</body></html>
diff --git a/admin/www/todo.ht b/admin/www/todo.ht
new file mode 100644
index 00000000..c6901ee3
--- /dev/null
+++ b/admin/www/todo.ht
@@ -0,0 +1,190 @@
+Title: The Mailman Wishlist
+
+ <p>
+<h3> The Mailman Wishlist
+</h3>
+ <p>
+<h3> (Last Update: $Date: 2002-12-27 03:36:46 +0000 (Fri, 27 Dec 2002) $)
+</h3>
+Here's the wish list for future versions of Mailman. Many new
+ features have been added to Mailman 2.1, so what's left will
+ probably end up in a Mailman 3.0.
+ Please also see the Mailman design notes wiki at
+ http://www.zope.org/Members/bwarsaw/MailmanDesignNotes/FrontPage
+<p>
+<h3> Email Handling
+</h3>
+<ul>
+ <li> Re-implement the bulk mailer to do DNS lookups and remote MTA delivery directly (optional).
+
+ <li> For low-traffic sites, a queued message could trigger a qrunner process. It would work until all mail was delivered, then sleep
+ and exit if no new work arrived.
+
+ <li> Strip any addresses of members who have nodupe turned on, from the Cc headers of the list copy of a message.
+
+ <li> Separate processing for MIME and plaintext digests. E.g. you might want to filter images out of plaintext but not MIME
+ digests.
+
+</ul>
+<h3> Documentation
+</h3>
+<ul>
+ <li> A detailed feature list
+ <li> A user's guide
+ <li> A site-admin's guide
+ <li> A list-admin's guide
+ <li> More on-line documentation and UI help
+ <li> A developer's guide w/ architecture and API information
+ <li> manpages for the scripts in bin and cron
+ <li> Integrate Christopher Kolar's documentation
+</ul>
+<h3> General Web UI
+</h3>
+<ul>
+ <li> NO DEAD ENDS and every web page is reachable.
+ <li> All web UI must be configurable so that it more easily integrates into an existing site's design. Probably means using
+ a better template language/system like Zope's Presentation
+ Templates, Quixote, or PHP.
+
+ <li> Default UI should add a navigation sidebar to all web pages.
+ <li> Web pages should never mention disabled features.
+ <li> Allow a site admin and list admins to categorize lists, so that they can be better organized on the listinfo and admin overview
+ pages.
+
+</ul>
+<h3> List Administration
+</h3>
+<ul>
+ <li> Allow the moderator to edit posts being held for approval (make it evident, either through a header or other means that the
+ message was edited by the moderator).
+
+ <li> Allow the admin to disable option settings by users
+ <li> Allow admins to block nomail settings
+ <li> Allow admins to control and set individual headers, adding, removing, or overriding those in the original message (sometimes
+ very useful, but could be dangerous!)
+
+ <li> New moderation choice: archive but don't send to list.
+ <li> New moderation choice: annotate and send to author for resubmittal. Or just be able to annotate the message for
+ multiple moderator scenarios.
+
+ <li> Better integration with moderated newsgroups (and allow some addresses to bypass even that moderation and be delivered to a
+ secondary channel, like moderators@isc.org).
+
+ <li> Allow a list to be marked `disabled' so things like the replybot still works, and the archives are still available, but mail
+ posted to the list is always returned unsent.
+
+ <li> Ability to `sideline' some messages in the moderation queue
+ <li> Hook moderation up to a whitelist a la TMDA. A non-member message gets held in a non-admindb queue, and the sender gets a
+ confirmation message. When they confirm, we moderate the
+ message as normal, but if they don't we assume it's spam (after
+ some period of time) and discard it. The admin should be able
+ to see all these super-quarantined messages with the flip of a
+ button.
+
+ <li> Add a moderation option to pass through any message which is a reply to a message previously distributed through the list, even
+ if it comes from a non-member. Treat that non-member as a
+ member for the duration of the thread. Use In-Reply-To,
+ References and Message-ID to match these up.
+
+ <li> When a held message is forwarded (for admin editing and approved resend) there should be a way to auto-discard the held message
+ when the approved resend is received.
+
+ <li> Have an option to sort the list of members by real name or email address.
+
+ <li> Test a message for all hold criteria, record them all instead of just the first match, and do a SpamAssassin like scoring to
+ decide whether the message should get held or not.
+
+</ul>
+<h3> List Membership
+</h3>
+<ul>
+ <li> Have one account per user per site, with multiple email addresses and fallbacks. Allow them to subscribe whichever
+ address they want to whichever list, with different options per
+ subscription.
+
+ <li> Allow the user to get BOTH normal and digested delivery (but I still don't understand why someone would want this)
+
+ <li> More flexible digests: index digests (subject and authors only, with URLs to retrieve the article)
+
+ <li> Timed vacations, allowing a user to postpone or discard email for a certain number of days or weeks.
+
+ <li> Keep user-centric stats, such as the date the user was subscribed, the date of their last change to their account, the
+ date they last sent a message through the list. Perhaps also
+ log each message they send through the list.
+
+</ul>
+<h3> Site Administration
+</h3>
+<ul>
+ <li> Allow the site admin to define list styles or themes, and list admins to choose one of the canned styles to apply to their
+ list.
+
+ <li> Allow the site admin to send an email message to all the list admins using a mechanism similar to the Urgent: header (possibly
+ by addressing it to mailman@site.dom).
+
+</ul>
+<h3> Other Usability Improvments
+</h3>
+<ul>
+ <li> A better strategy is needed for sub-lists and super-lists, including dealing with the resulting password reminders and
+ authorization to modify the sub & superlists.
+
+ <li> Add a limit on the number of posts from any one individual within a period of time (1 post per day, 10 per week, etc).
+ Also, limits on mailbacks, infos, etc.
+
+</ul>
+<h3> Mailcmd interface
+</h3>
+<ul>
+ <li> Provide an email interface to all administrative commands
+ <li> Allow email unsubs from matching address to unsubscribe, possibly adding an "allow open unsubscribes" option to control
+ this. Also, adding a confirmation with click-thru confirmation
+ to resubscribe.
+
+ <li> For email subscribes, keep an audit of where requests are coming from, and send the original request headers in the confirmation
+ message. Helps track down subscribe bombs.
+
+ <li> Investigate Majordomo2's email admin capabilities.
+ <li> Support the `which' command.
+</ul>
+<h3> Portability & architecture
+</h3>
+<ul>
+ <li> Use a real transactional database for all information, and allow various bits of information to come from different sources (a
+ relational database, ZODB, LDAP, etc)
+
+ <li> Member profiles
+ <li> Allow lists of the same name in two different virtual domains
+ <li> Should be able to gather statistics, such as deliveries/day, performance, number of subscribers over time, etc.
+
+ <li> Implement something like Roundup's nosy lists, maybe even integrate with Roundup.
+
+ <li> Split Mailman into libraries so, e.g. the delivery part could be used by other projects.
+
+</ul>
+<h3> Bounce handling
+</h3>
+<ul>
+ <li> Add more patterns for bounce handling (never ending)
+ <li> Send mail to people who are being removed without their knowledge (even though they're likely not to get it).
+
+</ul>
+<h3> Pipermail + Archiving mechanism
+</h3>
+<ul>
+ <li> Search engine for archives
+ <li> Provide downloadable tar.gz's of the html archives
+ <li> sort by date should go most-recent to oldest
+ <li> allow list owner to edit archive messages
+ <li> optional form front-end to public interfaces as a filter to address harvesters.
+
+ <li> In general the whole Pipermail subsystem needs a good rewrite.
+ <li> Write an API between Mailman and the archiver so that message footers can contain the URL to the archived message.
+
+</ul>
+<h3> Code cleanup
+</h3>
+<ul>
+ <li> Turn all remaining string exceptions into class exceptions
+ <li> Unit and system test suite! (ongoing)
+</ul>
diff --git a/admin/www/todo.html b/admin/www/todo.html
new file mode 100644
index 00000000..f681af12
--- /dev/null
+++ b/admin/www/todo.html
@@ -0,0 +1,323 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<!-- THIS PAGE IS AUTOMATICALLY GENERATED. DO NOT EDIT. -->
+<!-- Thu Dec 26 22:30:25 2002 -->
+<!-- USING HT2HTML 2.0 -->
+<!-- SEE http://ht2html.sf.net -->
+<!-- User-specified headers:
+Title: The Mailman Wishlist
+
+-->
+
+<head>
+<title>The Mailman Wishlist</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
+<meta name="generator" content="HT2HTML/2.0">
+<style type="text/css">
+body { margin: 0px; }
+</style>
+</head>
+<body bgcolor="#ffffff" text="#000000"
+ marginwidth="0" marginheight="0"
+ link="#0000bb" vlink="#551a8b"
+ alink="#ff0000">
+<!-- start of page table -->
+<table width="100%" border="0" cellspacing="0" cellpadding="0">
+<!-- start of banner row -->
+<tr>
+<!-- start of corner cells -->
+<td width="150" valign="middle" bgcolor="white" class="corner">
+
+<center>
+ <a href="./index.html">
+ <img border=0 src="./images/logo-70.jpg"></a></center> </td>
+<td width="15" bgcolor="#eecfa1">&nbsp;&nbsp;</td><!--spacer-->
+<!-- end of corner cells -->
+<!-- start of banner -->
+<td width="90%" bgcolor="#eecfa1" class="banner">
+<!-- start of site links table -->
+<table width="100%" border="0"
+CELLSPACING=0 CELLPADDING=0
+ bgcolor="#ffffff">
+<tr>
+ <td bgcolor="#eecfa1">
+<a href="./index.html">Home</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./docs.html">Documentation</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./lists.html">Mailing lists</a>
+ </td>
+</tr><tr>
+ <td bgcolor="#eecfa1">
+<a href="./help.html">Help</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./download.html">Download</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./devs.html">Developers</a>
+ </td>
+</tr>
+</table><!-- end of site links table -->
+
+</td><!-- end of banner -->
+</tr><!-- end of banner row -->
+<tr><!-- start of sidebar/body row -->
+<!-- start of sidebar cells -->
+<td width="150" valign="top" bgcolor="#eecfa1" class="sidebar">
+<!-- start of sidebar table -->
+<table width="100%" border="0" cellspacing="0" cellpadding="3"
+ bgcolor="#ffffff">
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Overview
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="index.html">Home</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="features.html">Features</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="otherstuff.html">Logos and Papers</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="inthenews.html">Mailman in Use</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="prev.html">Previous Releases</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="bugs.html">Bugs and Patches</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="mirrors.html">Mirrors</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">&nbsp;
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Email Us
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="mailto:mailman-users@python.org">mailman-users@python.org</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&nbsp;
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="http://www.python.org/"><img border=0
+ src="./images/PythonPoweredSmall.png"
+ ></a>&nbsp;<a href="http://sourceforge.net"><img
+ src="http://sourceforge.net/sflogo.php?group_id=103"
+ width="88" height="31" border="0"
+ alt="SourceForge Logo"></a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&nbsp;
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&copy; 1998-2002
+Free Software Foundation, Inc. Verbatim copying and distribution of this
+entire article is permitted in any medium, provided this notice is preserved.
+
+</td></tr>
+</table><!-- end of sidebar table -->
+
+</td>
+<td width="15">&nbsp;&nbsp;</td><!--spacer-->
+<!-- end of sidebar cell -->
+<!-- start of body cell -->
+<td valign="top" width="90%" class="body"><br>
+ <p>
+<h3> The Mailman Wishlist
+</h3>
+ <p>
+<h3> (Last Update: $Date: 2002-12-27 03:36:46 +0000 (Fri, 27 Dec 2002) $)
+</h3>
+Here's the wish list for future versions of Mailman. Many new
+ features have been added to Mailman 2.1, so what's left will
+ probably end up in a Mailman 3.0.
+ Please also see the Mailman design notes wiki at
+ http://www.zope.org/Members/bwarsaw/MailmanDesignNotes/FrontPage
+<p>
+<h3> Email Handling
+</h3>
+<ul>
+ <li> Re-implement the bulk mailer to do DNS lookups and remote MTA delivery directly (optional).
+
+ <li> For low-traffic sites, a queued message could trigger a qrunner process. It would work until all mail was delivered, then sleep
+ and exit if no new work arrived.
+
+ <li> Strip any addresses of members who have nodupe turned on, from the Cc headers of the list copy of a message.
+
+ <li> Separate processing for MIME and plaintext digests. E.g. you might want to filter images out of plaintext but not MIME
+ digests.
+
+</ul>
+<h3> Documentation
+</h3>
+<ul>
+ <li> A detailed feature list
+ <li> A user's guide
+ <li> A site-admin's guide
+ <li> A list-admin's guide
+ <li> More on-line documentation and UI help
+ <li> A developer's guide w/ architecture and API information
+ <li> manpages for the scripts in bin and cron
+ <li> Integrate Christopher Kolar's documentation
+</ul>
+<h3> General Web UI
+</h3>
+<ul>
+ <li> NO DEAD ENDS and every web page is reachable.
+ <li> All web UI must be configurable so that it more easily integrates into an existing site's design. Probably means using
+ a better template language/system like Zope's Presentation
+ Templates, Quixote, or PHP.
+
+ <li> Default UI should add a navigation sidebar to all web pages.
+ <li> Web pages should never mention disabled features.
+ <li> Allow a site admin and list admins to categorize lists, so that they can be better organized on the listinfo and admin overview
+ pages.
+
+</ul>
+<h3> List Administration
+</h3>
+<ul>
+ <li> Allow the moderator to edit posts being held for approval (make it evident, either through a header or other means that the
+ message was edited by the moderator).
+
+ <li> Allow the admin to disable option settings by users
+ <li> Allow admins to block nomail settings
+ <li> Allow admins to control and set individual headers, adding, removing, or overriding those in the original message (sometimes
+ very useful, but could be dangerous!)
+
+ <li> New moderation choice: archive but don't send to list.
+ <li> New moderation choice: annotate and send to author for resubmittal. Or just be able to annotate the message for
+ multiple moderator scenarios.
+
+ <li> Better integration with moderated newsgroups (and allow some addresses to bypass even that moderation and be delivered to a
+ secondary channel, like moderators@isc.org).
+
+ <li> Allow a list to be marked `disabled' so things like the replybot still works, and the archives are still available, but mail
+ posted to the list is always returned unsent.
+
+ <li> Ability to `sideline' some messages in the moderation queue
+ <li> Hook moderation up to a whitelist a la TMDA. A non-member message gets held in a non-admindb queue, and the sender gets a
+ confirmation message. When they confirm, we moderate the
+ message as normal, but if they don't we assume it's spam (after
+ some period of time) and discard it. The admin should be able
+ to see all these super-quarantined messages with the flip of a
+ button.
+
+ <li> Add a moderation option to pass through any message which is a reply to a message previously distributed through the list, even
+ if it comes from a non-member. Treat that non-member as a
+ member for the duration of the thread. Use In-Reply-To,
+ References and Message-ID to match these up.
+
+ <li> When a held message is forwarded (for admin editing and approved resend) there should be a way to auto-discard the held message
+ when the approved resend is received.
+
+ <li> Have an option to sort the list of members by real name or email address.
+
+ <li> Test a message for all hold criteria, record them all instead of just the first match, and do a SpamAssassin like scoring to
+ decide whether the message should get held or not.
+
+</ul>
+<h3> List Membership
+</h3>
+<ul>
+ <li> Have one account per user per site, with multiple email addresses and fallbacks. Allow them to subscribe whichever
+ address they want to whichever list, with different options per
+ subscription.
+
+ <li> Allow the user to get BOTH normal and digested delivery (but I still don't understand why someone would want this)
+
+ <li> More flexible digests: index digests (subject and authors only, with URLs to retrieve the article)
+
+ <li> Timed vacations, allowing a user to postpone or discard email for a certain number of days or weeks.
+
+ <li> Keep user-centric stats, such as the date the user was subscribed, the date of their last change to their account, the
+ date they last sent a message through the list. Perhaps also
+ log each message they send through the list.
+
+</ul>
+<h3> Site Administration
+</h3>
+<ul>
+ <li> Allow the site admin to define list styles or themes, and list admins to choose one of the canned styles to apply to their
+ list.
+
+ <li> Allow the site admin to send an email message to all the list admins using a mechanism similar to the Urgent: header (possibly
+ by addressing it to mailman@site.dom).
+
+</ul>
+<h3> Other Usability Improvments
+</h3>
+<ul>
+ <li> A better strategy is needed for sub-lists and super-lists, including dealing with the resulting password reminders and
+ authorization to modify the sub & superlists.
+
+ <li> Add a limit on the number of posts from any one individual within a period of time (1 post per day, 10 per week, etc).
+ Also, limits on mailbacks, infos, etc.
+
+</ul>
+<h3> Mailcmd interface
+</h3>
+<ul>
+ <li> Provide an email interface to all administrative commands
+ <li> Allow email unsubs from matching address to unsubscribe, possibly adding an "allow open unsubscribes" option to control
+ this. Also, adding a confirmation with click-thru confirmation
+ to resubscribe.
+
+ <li> For email subscribes, keep an audit of where requests are coming from, and send the original request headers in the confirmation
+ message. Helps track down subscribe bombs.
+
+ <li> Investigate Majordomo2's email admin capabilities.
+ <li> Support the `which' command.
+</ul>
+<h3> Portability & architecture
+</h3>
+<ul>
+ <li> Use a real transactional database for all information, and allow various bits of information to come from different sources (a
+ relational database, ZODB, LDAP, etc)
+
+ <li> Member profiles
+ <li> Allow lists of the same name in two different virtual domains
+ <li> Should be able to gather statistics, such as deliveries/day, performance, number of subscribers over time, etc.
+
+ <li> Implement something like Roundup's nosy lists, maybe even integrate with Roundup.
+
+ <li> Split Mailman into libraries so, e.g. the delivery part could be used by other projects.
+
+</ul>
+<h3> Bounce handling
+</h3>
+<ul>
+ <li> Add more patterns for bounce handling (never ending)
+ <li> Send mail to people who are being removed without their knowledge (even though they're likely not to get it).
+
+</ul>
+<h3> Pipermail + Archiving mechanism
+</h3>
+<ul>
+ <li> Search engine for archives
+ <li> Provide downloadable tar.gz's of the html archives
+ <li> sort by date should go most-recent to oldest
+ <li> allow list owner to edit archive messages
+ <li> optional form front-end to public interfaces as a filter to address harvesters.
+
+ <li> In general the whole Pipermail subsystem needs a good rewrite.
+ <li> Write an API between Mailman and the archiver so that message footers can contain the URL to the archived message.
+
+</ul>
+<h3> Code cleanup
+</h3>
+<ul>
+ <li> Turn all remaining string exceptions into class exceptions
+ <li> Unit and system test suite! (ongoing)
+</ul>
+
+</td><!-- end of body cell -->
+</tr><!-- end of sidebar/body row -->
+</table><!-- end of page table -->
+</body></html>
diff --git a/admin/www/users.ht b/admin/www/users.ht
new file mode 100644
index 00000000..56267675
--- /dev/null
+++ b/admin/www/users.ht
@@ -0,0 +1,8 @@
+Title: User Documentation
+Links: doco-links.h
+
+<h3>User Documentation</h3>
+
+<p><a href="http://staff.imsa.edu/~ckolar">Chris Kolar</a> has made
+available a <a href="http://staff.imsa.edu/~ckolar/mailman/">Mailman
+user guide</a> for end-users interacting with a Mailman system.
diff --git a/admin/www/users.html b/admin/www/users.html
new file mode 100644
index 00000000..5ce2508d
--- /dev/null
+++ b/admin/www/users.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<!-- THIS PAGE IS AUTOMATICALLY GENERATED. DO NOT EDIT. -->
+<!-- Thu Dec 26 22:30:24 2002 -->
+<!-- USING HT2HTML 2.0 -->
+<!-- SEE http://ht2html.sf.net -->
+<!-- User-specified headers:
+Title: User Documentation
+
+-->
+
+<head>
+<title>User Documentation</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
+<meta name="generator" content="HT2HTML/2.0">
+<style type="text/css">
+body { margin: 0px; }
+</style>
+</head>
+<body bgcolor="#ffffff" text="#000000"
+ marginwidth="0" marginheight="0"
+ link="#0000bb" vlink="#551a8b"
+ alink="#ff0000">
+<!-- start of page table -->
+<table width="100%" border="0" cellspacing="0" cellpadding="0">
+<!-- start of banner row -->
+<tr>
+<!-- start of corner cells -->
+<td width="150" valign="middle" bgcolor="white" class="corner">
+
+<center>
+ <a href="./index.html">
+ <img border=0 src="./images/logo-70.jpg"></a></center> </td>
+<td width="15" bgcolor="#eecfa1">&nbsp;&nbsp;</td><!--spacer-->
+<!-- end of corner cells -->
+<!-- start of banner -->
+<td width="90%" bgcolor="#eecfa1" class="banner">
+<!-- start of site links table -->
+<table width="100%" border="0"
+CELLSPACING=0 CELLPADDING=0
+ bgcolor="#ffffff">
+<tr>
+ <td bgcolor="#eecfa1">
+<a href="./index.html">Home</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./docs.html">Documentation</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./lists.html">Mailing lists</a>
+ </td>
+</tr><tr>
+ <td bgcolor="#eecfa1">
+<a href="./help.html">Help</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./download.html">Download</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./devs.html">Developers</a>
+ </td>
+</tr>
+</table><!-- end of site links table -->
+
+</td><!-- end of banner -->
+</tr><!-- end of banner row -->
+<tr><!-- start of sidebar/body row -->
+<!-- start of sidebar cells -->
+<td width="150" valign="top" bgcolor="#eecfa1" class="sidebar">
+<!-- start of sidebar table -->
+<table width="100%" border="0" cellspacing="0" cellpadding="3"
+ bgcolor="#ffffff">
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Documentation
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="docs.html">Overview</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<b>Users</b>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="admins.html">List Managers</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="site.html">Site Administrators</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="i18n.html">Translators</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">&nbsp;
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Email Us
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="mailto:mailman-users@python.org">mailman-users@python.org</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&nbsp;
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="http://www.python.org/"><img border=0
+ src="./images/PythonPoweredSmall.png"
+ ></a>&nbsp;<a href="http://sourceforge.net"><img
+ src="http://sourceforge.net/sflogo.php?group_id=103"
+ width="88" height="31" border="0"
+ alt="SourceForge Logo"></a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&nbsp;
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&copy; 1998-2002
+Free Software Foundation, Inc. Verbatim copying and distribution of this
+entire article is permitted in any medium, provided this notice is preserved.
+
+</td></tr>
+</table><!-- end of sidebar table -->
+
+</td>
+<td width="15">&nbsp;&nbsp;</td><!--spacer-->
+<!-- end of sidebar cell -->
+<!-- start of body cell -->
+<td valign="top" width="90%" class="body"><br>
+<h3>User Documentation</h3>
+
+<p><a href="http://staff.imsa.edu/~ckolar">Chris Kolar</a> has made
+available a <a href="http://staff.imsa.edu/~ckolar/mailman/">Mailman
+user guide</a> for end-users interacting with a Mailman system.
+
+</td><!-- end of body cell -->
+</tr><!-- end of sidebar/body row -->
+</table><!-- end of page table -->
+</body></html>
diff --git a/admin/www/version.ht b/admin/www/version.ht
new file mode 100644
index 00000000..1774bf79
--- /dev/null
+++ b/admin/www/version.ht
@@ -0,0 +1,12 @@
+Title: Current Mailman Version
+Links: download-links.h
+
+<h3>Current Mailman Version</h3>
+
+<p>Version
+(<!-VERSION--->2.1<!-VERSION--->,
+released on
+<!-DATE--->30-Dec-2002<!-DATE--->)
+is the latest stable release. See also information on
+<a href="prev.html">previous version</a> if you're not yet ready to
+upgrade.
diff --git a/admin/www/version.html b/admin/www/version.html
new file mode 100644
index 00000000..17f168a3
--- /dev/null
+++ b/admin/www/version.html
@@ -0,0 +1,135 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<!-- THIS PAGE IS AUTOMATICALLY GENERATED. DO NOT EDIT. -->
+<!-- Mon Dec 30 23:19:52 2002 -->
+<!-- USING HT2HTML 2.0 -->
+<!-- SEE http://ht2html.sf.net -->
+<!-- User-specified headers:
+Title: Current Mailman Version
+
+-->
+
+<head>
+<title>Current Mailman Version</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
+<meta name="generator" content="HT2HTML/2.0">
+<style type="text/css">
+body { margin: 0px; }
+</style>
+</head>
+<body bgcolor="#ffffff" text="#000000"
+ marginwidth="0" marginheight="0"
+ link="#0000bb" vlink="#551a8b"
+ alink="#ff0000">
+<!-- start of page table -->
+<table width="100%" border="0" cellspacing="0" cellpadding="0">
+<!-- start of banner row -->
+<tr>
+<!-- start of corner cells -->
+<td width="150" valign="middle" bgcolor="white" class="corner">
+
+<center>
+ <a href="./index.html">
+ <img border=0 src="./images/logo-70.jpg"></a></center> </td>
+<td width="15" bgcolor="#eecfa1">&nbsp;&nbsp;</td><!--spacer-->
+<!-- end of corner cells -->
+<!-- start of banner -->
+<td width="90%" bgcolor="#eecfa1" class="banner">
+<!-- start of site links table -->
+<table width="100%" border="0"
+CELLSPACING=0 CELLPADDING=0
+ bgcolor="#ffffff">
+<tr>
+ <td bgcolor="#eecfa1">
+<a href="./index.html">Home</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./docs.html">Documentation</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./lists.html">Mailing lists</a>
+ </td>
+</tr><tr>
+ <td bgcolor="#eecfa1">
+<a href="./help.html">Help</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./download.html">Download</a>
+ </td>
+ <td bgcolor="#eecfa1">
+<a href="./devs.html">Developers</a>
+ </td>
+</tr>
+</table><!-- end of site links table -->
+
+</td><!-- end of banner -->
+</tr><!-- end of banner row -->
+<tr><!-- start of sidebar/body row -->
+<!-- start of sidebar cells -->
+<td width="150" valign="top" bgcolor="#eecfa1" class="sidebar">
+<!-- start of sidebar table -->
+<table width="100%" border="0" cellspacing="0" cellpadding="3"
+ bgcolor="#ffffff">
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Downloading
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="download.html">Downloading</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<b>Latest Version</b>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="requirements.html">Requirements</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="install.html">Installing</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">&nbsp;
+<tr><td bgcolor="#36648b"><b><font color="#ffffff">
+Email Us
+</font></b></td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="mailto:mailman-users@python.org">mailman-users@python.org</a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&nbsp;
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+<a href="http://www.python.org/"><img border=0
+ src="./images/PythonPoweredSmall.png"
+ ></a>&nbsp;<a href="http://sourceforge.net"><img
+ src="http://sourceforge.net/sflogo.php?group_id=103"
+ width="88" height="31" border="0"
+ alt="SourceForge Logo"></a>
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&nbsp;
+</td></tr>
+<tr><td bgcolor="#eecfa1">
+&copy; 1998-2002
+Free Software Foundation, Inc. Verbatim copying and distribution of this
+entire article is permitted in any medium, provided this notice is preserved.
+
+</td></tr>
+</table><!-- end of sidebar table -->
+
+</td>
+<td width="15">&nbsp;&nbsp;</td><!--spacer-->
+<!-- end of sidebar cell -->
+<!-- start of body cell -->
+<td valign="top" width="90%" class="body"><br>
+<h3>Current Mailman Version</h3>
+
+<p>Version
+(<!-VERSION--->2.1<!-VERSION--->,
+released on
+<!-DATE--->30-Dec-2002<!-DATE--->)
+is the latest stable release. See also information on
+<a href="prev.html">previous version</a> if you're not yet ready to
+upgrade.
+
+</td><!-- end of body cell -->
+</tr><!-- end of sidebar/body row -->
+</table><!-- end of page table -->
+</body></html>
diff --git a/bin/.cvsignore b/bin/.cvsignore
new file mode 100644
index 00000000..7bda5c8c
--- /dev/null
+++ b/bin/.cvsignore
@@ -0,0 +1,2 @@
+.cvsignore
+Makefile
diff --git a/bin/Makefile.in b/bin/Makefile.in
new file mode 100644
index 00000000..a406ca46
--- /dev/null
+++ b/bin/Makefile.in
@@ -0,0 +1,78 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# NOTE: Makefile.in is converted into Makefile by the configure script
+# in the parent directory. Once configure has run, you can recreate
+# the Makefile by running just config.status.
+
+# Variables set by configure
+
+VPATH= @srcdir@
+srcdir= @srcdir@
+bindir= @bindir@
+prefix= @prefix@
+exec_prefix= @exec_prefix@
+
+CC= @CC@
+CHMOD= @CHMOD@
+INSTALL= @INSTALL@
+
+DEFS= @DEFS@
+
+# Customizable but not set by configure
+
+OPT= @OPT@
+CFLAGS= $(OPT) $(DEFS)
+MAILDIR= $(exec_prefix)/mail
+SCRIPTSDIR= $(prefix)/bin
+
+SHELL= /bin/sh
+
+SCRIPTS= mmsitepass newlist rmlist add_members \
+ list_members remove_members clone_member update arch \
+ sync_members check_db withlist check_perms find_member \
+ version config_list list_lists dumpdb cleanarch \
+ list_admins genaliases change_pw mailmanctl qrunner inject \
+ unshunt fix_url.py convert.py transcheck b4b5-archfix \
+ list_owners
+
+BUILDDIR= ../build/bin
+
+# Modes for directories and executables created by the install
+# process. Default to group-writable directories but
+# user-only-writable for executables.
+DIRMODE= 775
+EXEMODE= 755
+FILEMODE= 644
+INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
+
+
+# Rules
+
+all:
+
+install:
+ for f in $(SCRIPTS); \
+ do \
+ $(INSTALL) -m $(EXEMODE) $(BUILDDIR)/$$f $(SCRIPTSDIR); \
+ done
+
+finish:
+
+clean:
+
+distclean:
+ -rm Makefile
diff --git a/bin/add_members b/bin/add_members
new file mode 100755
index 00000000..ad4f43b8
--- /dev/null
+++ b/bin/add_members
@@ -0,0 +1,297 @@
+#! @PYTHON@
+#
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# argv[1] should be the name of the list.
+# argv[2] should be the list of non-digested users.
+# argv[3] should be the list of digested users.
+
+# Make sure that the list of email addresses doesn't contain any comments,
+# like majordomo may throw in. For now, you just have to remove them manually.
+
+"""Add members to a list from the command line.
+
+Usage:
+ add_members [options] listname
+
+Options:
+
+ --regular-members-file=file
+ -r file
+ A file containing addresses of the members to be added, one
+ address per line. This list of people become non-digest
+ members. If file is `-', read addresses from stdin. Note that
+ -n/--non-digest-members-file are deprecated synonyms for this option.
+
+ --digest-members-file=file
+ -d=file
+ Similar to above, but these people become digest members.
+
+ --changes-msg=<y|n>
+ -c <y|n>
+ Set whether or not to send the list members the `there's going to be
+ big changes to your list' message. defaults to no.
+
+ --welcome-msg=<y|n>
+ -w <y|n>
+ Set whether or not to send the list members a welcome message,
+ overriding whatever the list's `send_welcome_msg' setting is.
+
+ --admin-notify=<y|n>
+ -a <y|n>
+ Set whether or not to send the list administrators a notification on
+ the success/failure of these subscriptions, overriding whatever the
+ list's `admin_notify_mchanges' setting is.
+
+ --help
+ -h
+ Print this help message and exit.
+
+ listname
+ The name of the Mailman list you are adding members to. It must
+ already exist.
+
+You must supply at least one of -r and -d options. At most one of the
+files can be `-'.
+"""
+
+import sys
+import os
+import getopt
+from cStringIO import StringIO
+
+import paths
+# Import this /after/ paths so that the sys.path is properly hacked
+from email.Utils import parseaddr
+
+from Mailman import MailList
+from Mailman import Utils
+from Mailman import Message
+from Mailman import Errors
+from Mailman import mm_cfg
+from Mailman import i18n
+
+_ = i18n._
+
+
+
+def usage(status, msg=''):
+ if status:
+ fd = sys.stderr
+ else:
+ fd = sys.stdout
+ print >> fd, _(__doc__)
+ if msg:
+ print >> fd, msg
+ sys.exit(status)
+
+
+
+def readfile(filename):
+ if filename == '-':
+ fp = sys.stdin
+ closep = 0
+ else:
+ fp = open(filename)
+ closep = 1
+ # strip all the lines of whitespace and discard blank lines
+ lines = filter(None, [line.strip() for line in fp.readlines()])
+ if closep:
+ fp.close()
+ return lines
+
+
+
+def SendExplanation(mlist, users):
+ listname = mlist.real_name
+ listhost = mlist.host_name
+ d = {'listname' : listname,
+ 'listhost' : listhost,
+ 'listaddr' : mlist.GetListEmail(),
+ 'listinfo_url': mlist.GetScriptURL('listinfo', absolute=1),
+ 'requestaddr' : mlist.GetRequestEmail(),
+ 'adminaddr' : mlist.GetOwnerEmail(),
+ 'version' : mm_cfg.VERSION,
+ }
+ otrans = i18n.get_translation()
+ i18n.set_language(mlist.preferred_language)
+ try:
+ text = Utils.maketext('convert.txt', d)
+ subject = _('Big change in %(listname)s@%(listhost)s mailing list')
+ msg = Message.UserNotification(users, mlist.GetBouncesEmail(),
+ subject, text,
+ mlist.preferred_language)
+ finally:
+ i18n.set_translation(otrans)
+ msg.send(mlist)
+
+
+
+class Tee:
+ def __init__(self, outfp):
+ self.__outfp = outfp
+
+ def write(self, msg):
+ sys.stdout.write(msg)
+ self.__outfp.write(msg)
+
+
+class UserDesc: pass
+
+
+
+def addall(mlist, members, digest, ack, outfp):
+ tee = Tee(outfp)
+ for member in members:
+ userdesc = UserDesc()
+ userdesc.fullname, userdesc.address = parseaddr(member)
+ userdesc.digest = digest
+
+ try:
+ mlist.ApprovedAddMember(userdesc, ack, 0)
+ except Errors.MMAlreadyAMember:
+ print >> tee, _('Already a member: %(member)s')
+ except Errors.MMBadEmailError:
+ if userdesc.address == '':
+ print >> tee, _('Bad/Invalid email address: blank line')
+ else:
+ print >> tee, _('Bad/Invalid email address: %(member)s')
+ except Errors.MMHostileAddress:
+ print >> tee, _('Hostile address (illegal characters): %(member)s')
+ else:
+ print >> tee, _('Subscribed: %(member)s')
+
+
+
+def main():
+ try:
+ opts, args = getopt.getopt(sys.argv[1:],
+ 'a:n:r:d:c:w:h',
+ ['admin-notify=',
+ 'regular-members-file=',
+ 'non-digest-members-file=',
+ 'digest-members-file=',
+ 'changes-msg=',
+ 'welcome-msg=',
+ 'help'])
+ except getopt.error, msg:
+ usage(1, msg)
+
+ if len(args) <> 1:
+ usage(1)
+
+ listname = args[0].lower().strip()
+ nfile = None
+ dfile = None
+ send_changes_msg = 0
+ send_welcome_msg = None
+ admin_notif = None
+ for opt, arg in opts:
+ if opt in ('-h', '--help'):
+ usage(0)
+ elif opt in ('-d', '--digest-members-file'):
+ dfile = arg
+ # Deprecate -/--non-digest-members-file or consistency with
+ # list_members
+ elif opt in ('-r', '--regular-members-file'):
+ nfile = arg
+ elif opt in ('-n', '--non-digest-members-file'):
+ nfile = arg
+ # I don't think we need to use the warnings module here.
+ print >> sys.stderr, 'option', opt, \
+ 'is deprecated, use -r/--regular-members-file'
+ elif opt in ('-c', '--changes-msg'):
+ if arg.lower()[0] == 'y':
+ send_changes_msg = 1
+ elif arg.lower()[0] == 'n':
+ send_changes_msg = 0
+ else:
+ usage(1, _('Bad argument to -c/--changes-msg: %(arg)s'))
+ elif opt in ('-w', '--welcome-msg'):
+ if arg.lower()[0] == 'y':
+ send_welcome_msg = 1
+ elif arg.lower()[0] == 'n':
+ send_welcome_msg = 0
+ else:
+ usage(1, _('Bad argument to -w/--welcome-msg: %(arg)s'))
+ elif opt in ('-a', '--admin-notify'):
+ if arg.lower()[0] == 'y':
+ admin_notif = 1
+ elif arg.lower()[0] == 'n':
+ admin_notif = 0
+ else:
+ usage(1, _('Bad argument to -a/--admin-notify: %(arg)s'))
+
+ if dfile is None and nfile is None:
+ usage(1)
+
+ if dfile == "-" and nfile == "-":
+ usage(1, _('Cannot read both digest and normal members '
+ 'from standard input.'))
+
+ try:
+ mlist = MailList.MailList(listname)
+ except Errors.MMUnknownListError:
+ usage(1, _('No such list: %(listname)s'))
+
+ # Set up defaults
+ if send_welcome_msg is None:
+ send_welcome_msg = mlist.send_welcome_msg
+ if admin_notif is None:
+ admin_notif = mlist.admin_notify_mchanges
+
+ otrans = i18n.get_translation()
+ # Read the regular and digest member files
+ try:
+ dmembers = []
+ if dfile:
+ dmembers = readfile(dfile)
+
+ nmembers = []
+ if nfile:
+ nmembers = readfile(nfile)
+
+ if not dmembers and not nmembers:
+ usage(0, _('Nothing to do.'))
+
+ s = StringIO()
+ i18n.set_language(mlist.preferred_language)
+ if nmembers:
+ addall(mlist, nmembers, 0, send_welcome_msg, s)
+
+ if dmembers:
+ addall(mlist, dmembers, 1, send_welcome_msg, s)
+
+ if admin_notif:
+ realname = mlist.real_name
+ subject = _('%(realname)s subscription notification')
+ msg = Message.UserNotification(
+ mlist.owner, Utils.get_site_email(), subject, s.getvalue(),
+ mlist.preferred_language)
+ msg.send(mlist)
+
+ if send_changes_msg:
+ SendExplanation(mlist, nmembers + dmembers)
+
+ mlist.Save()
+ finally:
+ mlist.Unlock()
+ i18n.set_translation(otrans)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/bin/arch b/bin/arch
new file mode 100644
index 00000000..be430f68
--- /dev/null
+++ b/bin/arch
@@ -0,0 +1,187 @@
+#! @PYTHON@
+#
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Rebuild a list's archive.
+
+Use this command to rebuild the archives for a mailing list. You may want to
+do this if you edit some messages in an archive, or remove some messages from
+an archive.
+
+Usage: %(PROGRAM)s [options] <listname> [<mbox>]
+
+Where options are:
+ -h / --help
+ Print this help message and exit.
+
+ -q / --quiet
+ Make the archiver output less verbose.
+
+ --wipe
+ First wipe out the original archive before regenerating. You usually
+ want to specify this argument unless you're generating the archive in
+ chunks.
+
+ -s N
+ --start=N
+ Start indexing at article N, where article 0 is the first in the mbox.
+ Defaults to 0.
+
+ -e M
+ --end=M
+ End indexing at article M. This script is not very efficient with
+ respect to memory management, and for large archives, it may not be
+ possible to index the mbox entirely. For that reason, you can specify
+ the start and end article numbers.
+
+Where <mbox> is the path to a list's complete mbox archive. Usually this will
+be some path in the archives/private directory. For example:
+
+%% bin/arch mylist archives/private/mylist.mbox/mylist.mbox
+
+<mbox> is optional. If it is missing, it is calculated.
+"""
+
+import os
+import sys
+import getopt
+import shutil
+
+import paths
+from Mailman import mm_cfg
+from Mailman import Errors
+
+from Mailman.MailList import MailList
+from Mailman.Archiver.HyperArch import HyperArchive
+from Mailman.LockFile import LockFile
+from Mailman import i18n
+
+_ = i18n._
+
+PROGRAM = sys.argv[0]
+i18n.set_language(mm_cfg.DEFAULT_SERVER_LANGUAGE)
+
+
+
+def usage(code, msg=''):
+ if code:
+ fd = sys.stderr
+ else:
+ fd = sys.stdout
+ print >> fd, _(__doc__)
+ if msg:
+ print >> fd, msg
+ sys.exit(code)
+
+
+
+def main():
+ # get command line arguments
+ try:
+ opts, args = getopt.getopt(
+ sys.argv[1:], 'hs:e:q',
+ ['help', 'start', 'end', 'quiet', 'wipe'])
+ except getopt.error, msg:
+ usage(1, msg)
+
+ start = None
+ end = None
+ verbose = 1
+ wipe = 0
+ for opt, arg in opts:
+ if opt in ('-h', '--help'):
+ usage(0)
+ elif opt in ('-s', '--start'):
+ try:
+ start = int(arg)
+ except ValueError:
+ usage(1)
+ elif opt in ('-e', '--end'):
+ try:
+ end = int(arg)
+ except ValueError:
+ usage(1)
+ elif opt in ('-q', '--quiet'):
+ verbose = 0
+ elif opt == '--wipe':
+ wipe = 1
+
+ # grok arguments
+ if len(args) < 1:
+ usage(1, _('listname is required'))
+ listname = args[0].lower().strip()
+
+ if len(args) < 2:
+ mbox = None
+ else:
+ mbox = args[1]
+
+ if len(args) > 2:
+ usage(1)
+
+ # open the mailing list object
+ mlist = None
+ lock = None
+ try:
+ try:
+ mlist = MailList(listname)
+ except Errors.MMListError, e:
+ usage(2, _('No such list "%(listname)s"\n%(e)s'))
+ if mbox is None:
+ mbox = mlist.ArchiveFileName()
+
+ i18n.set_language(mlist.preferred_language)
+ # lay claim to the archive's lock file. this is so no other post can
+ # mess up the archive while we're glomming it. we pick a suitably
+ # long period of time for the lock lifetime, however we really don't
+ # know how long it will take.
+ #
+ # XXX: processUnixMailbox() should refresh the lock.
+ #
+ # XXX: this may not be necessary because I think we lay claim to the
+ # list lock up above, although that may be too short to be of use (and
+ # maybe we don't really want to lock the list anyway).
+ #
+ lockfile = os.path.join(mm_cfg.LOCK_DIR, mlist._internal_name) + \
+ '.archiver.lock'
+ # set the lock lifetime to 3 hours. XXX is this reasonable???
+ lock = LockFile(lockfile, lifetime=3*60*60)
+ lock.lock()
+ # Maybe wipe the old archives
+ if wipe:
+ shutil.rmtree(mlist.archive_dir())
+ try:
+ fp = open(mbox)
+ except IOError, msg:
+ usage(3, _('Cannot open mbox file %(mbox)s: %(msg)s'))
+
+ archiver = HyperArchive(mlist)
+ archiver.VERBOSE = verbose
+ try:
+ archiver.processUnixMailbox(fp, start, end)
+ finally:
+ archiver.close()
+ fp.close()
+ finally:
+ if lock:
+ lock.unlock()
+ if mlist:
+ mlist.Unlock()
+
+
+if __name__ == '__main__':
+ main()
diff --git a/bin/b4b5-archfix b/bin/b4b5-archfix
new file mode 100644
index 00000000..0ae66c9d
--- /dev/null
+++ b/bin/b4b5-archfix
@@ -0,0 +1,96 @@
+#! @PYTHON@
+#
+# Copyright (C) 2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Fix the MM2.1b4 archives.
+
+Usage: %(PROGRAM)s [options] file ...
+
+Where options are:
+ -h / --help
+ Print this help message and exit.
+
+Only use this to `fix' some archive database files that may have gotten
+written in Mailman 2.1b4 with some bogus data. Use like this from your
+$PREFIX directory
+
+%% %(PROGRAM)s `grep -l _mlist archives/private/*/database/*-article`
+
+(note the backquotes are required)
+
+You will need to run `bin/check_perms -f' after running this script.
+"""
+# This script is provided for convenience purposes only. It isn't supported.
+
+import os
+import sys
+import getopt
+import marshal
+import cPickle as pickle
+
+# Required to get the right classes for unpickling
+import paths
+from Mailman.i18n import _
+
+PROGRAM = sys.argv[0]
+
+
+
+def usage(code, msg=''):
+ if code:
+ fd = sys.stderr
+ else:
+ fd = sys.stdout
+ print >> fd, _(__doc__)
+ if msg:
+ print >> fd, msg
+ sys.exit(code)
+
+
+
+def main():
+ # get command line arguments
+ try:
+ opts, args = getopt.getopt(sys.argv[1:], 'h', ['help'])
+ except getopt.error, msg:
+ usage(1, msg)
+
+ for opt, arg in opts:
+ if opt in ('-h', '--help'):
+ usage(0)
+
+ for filename in args:
+ print 'processing:', filename
+ fp = open(filename, 'rb')
+ d = marshal.load(fp)
+ fp.close()
+ newd = {}
+ for key, pckstr in d.items():
+ article = pickle.loads(pckstr)
+ newd[key] = pickle.dumps(article)
+ fp = open(filename + '.tmp', 'wb')
+ marshal.dump(newd, fp)
+ fp.close()
+ os.rename(filename, filename + '.bak')
+ os.rename(filename + '.tmp', filename)
+
+ print 'You should now run "bin/check_perms -f"'
+
+
+
+if __name__ == '__main__':
+ main()
diff --git a/bin/change_pw b/bin/change_pw
new file mode 100644
index 00000000..0e365e08
--- /dev/null
+++ b/bin/change_pw
@@ -0,0 +1,209 @@
+#! @PYTHON@
+#
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Change a list's password.
+
+Prior to Mailman 2.1, list passwords were kept in crypt'd format -- usually.
+Some Python installations didn't have the crypt module available, so they'd
+fall back to md5. Then suddenly the Python installation might grow a crypt
+module and all list passwords would be broken.
+
+In Mailman 2.1, all list and site passwords are stored in SHA1 hexdigest
+form. This breaks list passwords for all existing pre-Mailman 2.1 lists, and
+since those passwords aren't stored anywhere in plain text, they cannot be
+retrieved and updated.
+
+Thus, this script generates new passwords for a list, and optionally sends it
+to all the owners of the list.
+
+Usage: change_pw [options]
+
+Options:
+
+ --all / -a
+ Change the password for all lists.
+
+ --domain=domain
+ -d domain
+ Change the password for all lists in the virtual domain `domain'. It
+ is okay to give multiple -d options.
+
+ --listname=listname
+ -l listname
+ Change the password only for the named list. It is okay to give
+ multiple -l options.
+
+ --password=newpassword
+ -p newpassword
+ Use the supplied plain text password `newpassword' as the new password
+ for any lists that are being changed (as specified by the -a, -d, and
+ -l options). If not given, lists will be assigned a randomly
+ generated new password.
+
+ --quiet / -q
+ Don't notify list owners of the new password. You'll have to have
+ some other way of letting the list owners know the new password
+ (presumably out-of-band).
+
+ --help / -h
+ Print this help message and exit.
+"""
+
+import sys
+import sha
+import getopt
+
+import paths
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman import MailList
+from Mailman import Errors
+from Mailman import Message
+from Mailman import i18n
+
+_ = i18n._
+
+SPACE = ' '
+
+
+
+def usage(code, msg=''):
+ if code:
+ fd = sys.stderr
+ else:
+ fd = sys.stdout
+ print >> fd, _(__doc__)
+ if msg:
+ print >> fd, msg
+ sys.exit(code)
+
+
+
+_listcache = {}
+
+def openlist(listname):
+ missing = []
+ mlist = _listcache.get(listname, missing)
+ if mlist is missing:
+ try:
+ mlist = MailList.MailList(listname, lock=0)
+ except Errors.MMListError, e:
+ usage(1, _('No such list "%(listname)s"\n%(e)s'))
+ _listcache[listname] = mlist
+ return mlist
+
+
+
+def main():
+ # Parse options
+ try:
+ opts, args = getopt.getopt(
+ sys.argv[1:], 'ad:l:p:qh',
+ ['all', 'domain=', 'listname=', 'password=', 'quiet', 'help'])
+ except getopt.error, msg:
+ usage(1, msg)
+
+ # defaults
+ listnames = {}
+ domains = {}
+ password = None
+ quiet = 0
+
+ for opt, arg in opts:
+ if opt in ('-h', '--help'):
+ usage(0)
+ elif opt in ('-a', '--all'):
+ for name in Utils.list_names():
+ listnames[name] = 1
+ elif opt in ('-d', '--domain'):
+ domains[arg] = 1
+ elif opt in ('-l', '--listname'):
+ listnames[arg] = 1
+ elif opt in ('-p', '--password'):
+ password = arg
+ elif opt in ('-q', '--quiet'):
+ quiet = 1
+
+ if args:
+ strargs = SPACE.join(args)
+ usage(1, _('Bad arguments: %(strargs)s'))
+
+ if password is not None:
+ if not password:
+ usage(1, _('Empty list passwords are not allowed'))
+ shapassword = sha.new(password).hexdigest()
+
+ if domains:
+ for name in Utils.list_names():
+ mlist = openlist(name)
+ if domains.has_key(mlist.host_name):
+ listnames[name] = 1
+
+ if not listnames:
+ print >> sys.stderr, _('Nothing to do.')
+ sys.exit(0)
+
+ # Set the password on the lists
+ for listname in listnames.keys():
+ mlist = openlist(listname)
+ mlist.Lock()
+ try:
+ if password is None:
+ randompw = Utils.MakeRandomPassword(8)
+ shapassword = sha.new(randompw).hexdigest()
+ notifypassword = randompw
+ else:
+ notifypassword = password
+
+ mlist.password = shapassword
+ mlist.Save()
+ finally:
+ mlist.Unlock()
+
+ # Notification
+ print _('New %(listname)s password: %(notifypassword)s')
+ if not quiet:
+ otrans = i18n.get_translation()
+ i18n.set_language(mlist.preferred_language)
+ try:
+ hostname = mlist.host_name
+ adminurl = mlist.GetScriptURL('admin', absolute=1)
+ msg = Message.UserNotification(
+ mlist.owner[:], Utils.get_site_email(),
+ _('Your new %(listname)s list password'),
+ _('''\
+The site administrator at %(hostname)s has changed the password for your
+mailing list %(listname)s. It is now
+
+ %(notifypassword)s
+
+Please be sure to use this for all future list administration. You may want
+to log in now to your list and change the password to something more to your
+liking. Visit your list admin page at
+
+ %(adminurl)s
+'''),
+ mlist.preferred_language)
+ finally:
+ i18n.set_translation(otrans)
+ msg.send(mlist)
+
+
+
+if __name__ == '__main__':
+ main()
diff --git a/bin/check_db b/bin/check_db
new file mode 100755
index 00000000..c869b194
--- /dev/null
+++ b/bin/check_db
@@ -0,0 +1,153 @@
+#! @PYTHON@
+#
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Check a list's config database file for integrity.
+
+All of the following files are checked:
+
+ config.pck
+ config.pck.last
+ config.db
+ config.db.last
+ config.safety
+
+It's okay if any of these are missing. config.pck and config.pck.last are
+pickled versions of the config database file for 2.1a3 and beyond. config.db
+and config.db.last are used in all earlier versions, and these are Python
+marshals. config.safety is a pickle written by 2.1a3 and beyond when the
+primary config.pck file could not be read.
+
+Usage: %(PROGRAM)s [options] [listname [listname ...]]
+
+Options:
+
+ --all / -a
+ Check the databases for all lists. Otherwise only the lists named on
+ the command line are checked.
+
+ --verbose / -v
+ Verbose output. The state of every tested file is printed.
+ Otherwise only corrupt files are displayed.
+
+ --help / -h
+ Print this text and exit.
+"""
+
+import sys
+import os
+import errno
+import getopt
+import marshal
+import cPickle
+
+import paths
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman.MailList import MailList
+from Mailman.i18n import _
+
+PROGRAM = sys.argv[0]
+
+
+
+def usage(code, msg=''):
+ if code:
+ fd = sys.stderr
+ else:
+ fd = sys.stdout
+ print >> fd, _(__doc__)
+ if msg:
+ print >> fd, msg
+ sys.exit(code)
+
+
+
+def testfile(dbfile):
+ if dbfile.endswith('.db') or dbfile.endswith('.db.last'):
+ loadfunc = marshal.load
+ elif dbfile.endswith('.pck') or dbfile.endswith('.pck.last'):
+ loadfunc = cPickle.load
+ else:
+ assert 0
+ fp = open(dbfile)
+ try:
+ loadfunc(fp)
+ finally:
+ fp.close()
+
+
+def main():
+ try:
+ opts, args = getopt.getopt(sys.argv[1:], 'ahv',
+ ['all', 'verbose', 'help'])
+ except getopt.error, msg:
+ usage(1, msg)
+
+ verbose = 0
+ listnames = args
+
+ for opt, arg in opts:
+ if opt in ('-h', '--help'):
+ usage(0)
+ elif opt in ('-v', '--verbose'):
+ verbose = 1
+ elif opt in ('-a', '--all'):
+ listnames = Utils.list_names()
+
+ listnames = [n.lower().strip() for n in listnames]
+ if not listnames:
+ print _('Nothing to do.')
+ sys.exit(0)
+
+ for listname in listnames:
+ if not Utils.list_exists(listname):
+ print _('No list named:'), listname
+ continue
+ mlist = MailList(listname, lock=0)
+ pfile = os.path.join(mlist.fullpath(), 'config.pck')
+ plast = pfile + '.last'
+ dfile = os.path.join(mlist.fullpath(), 'config.db')
+ dlast = dfile + '.last'
+
+ if verbose:
+ print _('List:'), listname
+
+ for file in (pfile, plast, dfile, dlast):
+ status = 0
+ try:
+ testfile(file)
+ except IOError, e:
+ # Don't report ENOENT unless we're in verbose mode
+ if verbose or e.errno <> errno.ENOENT:
+ status = e
+ except Exception, e:
+ status = e
+ # Report errors
+ if status:
+ if isinstance(status, EnvironmentError):
+ # This already includes the file name
+ print ' ', status
+ else:
+ print ' %s: %s' % (file, status)
+ elif verbose:
+ print _(' %(file)s: okay')
+
+
+
+if __name__ == '__main__':
+ main()
diff --git a/bin/check_perms b/bin/check_perms
new file mode 100755
index 00000000..44fbe547
--- /dev/null
+++ b/bin/check_perms
@@ -0,0 +1,362 @@
+#! @PYTHON@
+#
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Check the permissions for the Mailman installation.
+
+Usage: %(PROGRAM)s [-f] [-v] [-h]
+
+With no arguments, just check and report all the files that have bogus
+permissions or group ownership. With -f (and run as root), fix all the
+permission problems found. With -v be verbose.
+
+"""
+
+import sys
+import os
+import errno
+import getopt
+import pwd
+import grp
+from stat import *
+
+try:
+ import paths
+except ImportError:
+ print '''Could not import paths!
+
+This probably means that you are trying to run check_perms from the source
+directory. You must run this from the installation directory instead.
+'''
+ raise
+from Mailman import mm_cfg
+from Mailman.mm_cfg import MAILMAN_USER, MAILMAN_GROUP
+from Mailman.i18n import _
+
+# Let KeyErrors percolate
+MAILMAN_GID = grp.getgrnam(MAILMAN_GROUP)[2]
+MAILMAN_UID = pwd.getpwnam(MAILMAN_USER)[2]
+
+PROGRAM = sys.argv[0]
+
+# Gotta check the archives/private/*/database/* files
+
+
+
+class State:
+ FIX = 0
+ VERBOSE = 0
+ ERRORS = 0
+
+STATE = State()
+
+DIRPERMS = S_ISGID | S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH
+QFILEPERMS = S_ISGID | S_IRWXU | S_IRWXG
+PYFILEPERMS = S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH
+ARTICLEFILEPERMS = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP
+
+
+
+def statmode(path):
+ return os.stat(path)[ST_MODE]
+
+def statgidmode(path):
+ stat = os.stat(path)
+ return stat[ST_MODE], stat[ST_GID]
+
+def checkwalk(arg, dirname, names):
+ for name in names:
+ path = os.path.join(dirname, name)
+ if arg.VERBOSE:
+ print _(' checking gid and mode for %(path)s')
+ try:
+ mode, gid = statgidmode(path)
+ except OSError, e:
+ if e.errno <> errno.ENOENT: raise
+ continue
+ if gid <> MAILMAN_GID:
+ try:
+ groupname = grp.getgrgid(gid)[0]
+ except KeyError:
+ groupname = '<anon gid %d>' % gid
+ arg.ERRORS += 1
+ print _('%(path)s bad group (has: %(groupname)s, '
+ 'expected %(MAILMAN_GROUP)s)'),
+ if STATE.FIX:
+ print _('(fixing)')
+ os.chown(path, -1, MAILMAN_GID)
+ else:
+ print
+ # all directories must be at least rwxrwsr-x. Don't check the private
+ # archive directory or database directory themselves since these are
+ # checked in checkarchives() and checkarchivedbs() below.
+ private = mm_cfg.PRIVATE_ARCHIVE_FILE_DIR
+ if path == private or (os.path.commonprefix((path, private)) == private
+ and os.path.split(path)[1] == 'database'):
+ continue
+ # The directories under qfiles should have a more limited permission
+ if os.path.commonprefix((path, mm_cfg.QUEUE_DIR)) == mm_cfg.QUEUE_DIR:
+ targetperms = QFILEPERMS
+ octperms = oct(targetperms)
+ else:
+ targetperms = DIRPERMS
+ octperms = oct(targetperms)
+ if S_ISDIR(mode) and (mode & targetperms) <> targetperms:
+ arg.ERRORS += 1
+ print _('directory permissions must be %(octperms)s: %(path)s'),
+ if STATE.FIX:
+ print _('(fixing)')
+ os.chmod(path, mode | targetperms)
+ else:
+ print
+ elif os.path.splitext(path)[1] in ('.py', '.pyc', '.pyo'):
+ octperms = oct(PYFILEPERMS)
+ if mode & PYFILEPERMS <> PYFILEPERMS:
+ print _('source perms must be %(octperms)s: %(path)s'),
+ arg.ERRORS += 1
+ if STATE.FIX:
+ print _('(fixing)')
+ os.chmod(path, mode | PYFILEPERMS)
+ else:
+ print
+ elif path.endswith('-article'):
+ # Article files must be group writeable
+ octperms = oct(ARTICLEFILEPERMS)
+ if mode & ARTICLEFILEPERMS <> ARTICLEFILEPERMS:
+ print _('article db files must be %(octperms)s: %(path)s'),
+ arg.ERRORS += 1
+ if STATE.FIX:
+ print _('(fixing)')
+ os.chmod(path, mode | ARTICLEFILEPERMS)
+ else:
+ print
+
+def checkall():
+ # first check PREFIX
+ if STATE.VERBOSE:
+ prefix = mm_cfg.PREFIX
+ print _('checking mode for %(prefix)s')
+ dirs = {}
+ for d in (mm_cfg.PREFIX, mm_cfg.EXEC_PREFIX, mm_cfg.VAR_PREFIX):
+ dirs[d] = 1
+ for d in dirs.keys():
+ mode = statmode(d)
+ if (mode & DIRPERMS) <> DIRPERMS:
+ STATE.ERRORS += 1
+ print _('directory must be at least 02775: %(d)s'),
+ if STATE.FIX:
+ print _('(fixing)')
+ os.chmod(d, mode | DIRPERMS)
+ else:
+ print
+ # check all subdirs
+ os.path.walk(d, checkwalk, STATE)
+
+
+def checkarchives():
+ private = mm_cfg.PRIVATE_ARCHIVE_FILE_DIR
+ if STATE.VERBOSE:
+ print _('checking perms on %(private)s')
+ # private archives must not be other readable
+ mode = statmode(private)
+ if mode & S_IROTH:
+ STATE.ERRORS += 1
+ print _('%(private)s must not be other-readable'),
+ if STATE.FIX:
+ print _('(fixing)')
+ os.chmod(private, mode & ~S_IROTH)
+ else:
+ print
+
+
+MBOXPERMS = S_IRGRP | S_IWGRP | S_IRUSR | S_IWUSR
+
+
+def checkmboxfile(mboxdir):
+ absdir = os.path.join(mm_cfg.PRIVATE_ARCHIVE_FILE_DIR, mboxdir)
+ for f in os.listdir(absdir):
+ if not f.endswith('.mbox'):
+ continue
+ mboxfile = os.path.join(absdir, f)
+ mode = statmode(mboxfile)
+ if (mode & MBOXPERMS) <> MBOXPERMS:
+ STATE.ERRORS = STATE.ERRORS + 1
+ print _('mbox file must be at least 0660:'), mboxfile
+ if STATE.FIX:
+ print _('(fixing)')
+ os.chmod(mboxfile, mode | MBOXPERMS)
+ else:
+ print
+
+
+def checkarchivedbs():
+ # The archives/private/listname/database file must not be other readable
+ # or executable otherwise those files will be accessible when the archives
+ # are public. That may not be a horrible breach, but let's close this off
+ # anyway.
+ for dir in os.listdir(mm_cfg.PRIVATE_ARCHIVE_FILE_DIR):
+ if dir.endswith('.mbox'):
+ checkmboxfile(dir)
+ dbdir = os.path.join(mm_cfg.PRIVATE_ARCHIVE_FILE_DIR, dir, 'database')
+ try:
+ mode = statmode(dbdir)
+ except OSError, e:
+ if e.errno not in (errno.ENOENT, errno.ENOTDIR): raise
+ continue
+ if mode & S_IRWXO:
+ STATE.ERRORS += 1
+ print _('%(dbdir)s "other" perms must be 000'),
+ if STATE.FIX:
+ print _('(fixing)')
+ os.chmod(dbdir, mode & ~S_IRWXO)
+ else:
+ print
+
+
+def checkcgi():
+ cgidir = os.path.join(mm_cfg.EXEC_PREFIX, 'cgi-bin')
+ if STATE.VERBOSE:
+ print _('checking cgi-bin permissions')
+ exes = os.listdir(cgidir)
+ for f in exes:
+ path = os.path.join(cgidir, f)
+ if STATE.VERBOSE:
+ print _(' checking set-gid for %(path)s')
+ mode = statmode(path)
+ if mode & S_IXGRP and not mode & S_ISGID:
+ STATE.ERRORS += 1
+ print _('%(path)s must be set-gid'),
+ if STATE.FIX:
+ print _('(fixing)')
+ os.chmod(path, mode | S_ISGID)
+ else:
+ print
+
+def checkmail():
+ wrapper = os.path.join(mm_cfg.WRAPPER_DIR, 'mailman')
+ if STATE.VERBOSE:
+ print _('checking set-gid for %(wrapper)s')
+ mode = statmode(wrapper)
+ if not mode & S_ISGID:
+ STATE.ERRORS += 1
+ print _('%(wrapper)s must be set-gid'),
+ if STATE.FIX:
+ print _('(fixing)')
+ os.chmod(wrapper, mode | S_ISGID)
+
+def checkadminpw():
+ for pwfile in (os.path.join(mm_cfg.DATA_DIR, 'adm.pw'),
+ os.path.join(mm_cfg.DATA_DIR, 'creator.pw')):
+ targetmode = S_IFREG | S_IRUSR | S_IWUSR | S_IRGRP
+ if STATE.VERBOSE:
+ print _('checking permissions on %(pwfile)s')
+ try:
+ mode = statmode(pwfile)
+ except OSError, e:
+ if e.errno <> errno.ENOENT: raise
+ return
+ if mode <> targetmode:
+ STATE.ERRORS += 1
+ octmode = oct(mode)
+ print _('%(pwfile)s permissions must be exactly 0640 '
+ '(got %(octmode)s)'),
+ if STATE.FIX:
+ print _('(fixing)')
+ os.chmod(pwfile, targetmode)
+ else:
+ print
+
+def checkmta():
+ if mm_cfg.MTA:
+ modname = 'Mailman.MTA.' + mm_cfg.MTA
+ __import__(modname)
+ try:
+ sys.modules[modname].checkperms(STATE)
+ except AttributeError:
+ pass
+
+def checkdata():
+ targetmode = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP
+ checkfiles = ('config.pck', 'config.pck.last',
+ 'config.db', 'config.db.last',
+ 'next-digest', 'next-digest-topics',
+ 'request.db', 'request.db.tmp')
+ if STATE.VERBOSE:
+ print _('checking permissions on list data')
+ # BAW: This needs to be converted to the Site module abstraction
+ for dir in os.listdir(mm_cfg.LIST_DATA_DIR):
+ for file in checkfiles:
+ path = os.path.join(mm_cfg.LIST_DATA_DIR, dir, file)
+ if STATE.VERBOSE:
+ print _(' checking permissions on: %(path)s')
+ try:
+ mode = statmode(path)
+ except OSError, e:
+ if e.errno <> errno.ENOENT: raise
+ continue
+ if (mode & targetmode) <> targetmode:
+ STATE.ERRORS += 1
+ print _('file permissions must be at least 660: %(path)s'),
+ if STATE.FIX:
+ print _('(fixing)')
+ os.chmod(path, mode | targetmode)
+ else:
+ print
+
+
+
+def usage(code, msg=''):
+ if code:
+ fd = sys.stderr
+ else:
+ fd = sys.stdout
+ print >> fd, _(__doc__)
+ if msg:
+ print >> fd, msg
+ sys.exit(code)
+
+
+if __name__ == '__main__':
+ try:
+ opts, args = getopt.getopt(sys.argv[1:],
+ 'fvh',
+ ['fix', 'verbose', 'help'])
+ except getopt.error, msg:
+ usage(1, msg)
+
+ for opt, arg in opts:
+ if opt in ('-h', '--help'):
+ usage(0)
+ elif opt in ('-f', '--fix'):
+ STATE.FIX = 1
+ elif opt in ('-v', '--verbose'):
+ STATE.VERBOSE = 1
+
+ checkall()
+ checkarchives()
+ checkarchivedbs()
+ checkcgi()
+ checkmail()
+ checkdata()
+ checkadminpw()
+ checkmta()
+
+ if not STATE.ERRORS:
+ print _('No problems found')
+ else:
+ print _('Problems found:'), STATE.ERRORS
+ print _('Re-run as %(MAILMAN_USER)s (or root) with -f flag to fix')
diff --git a/bin/cleanarch b/bin/cleanarch
new file mode 100644
index 00000000..85a8df6a
--- /dev/null
+++ b/bin/cleanarch
@@ -0,0 +1,165 @@
+#! @PYTHON@
+
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Clean up an .mbox archive file.
+
+The archiver looks for Unix-From lines separating messages in an mbox archive
+file. For compatibility, it specifically looks for lines that start with
+"From " -- i.e. the letters capital-F, lowercase-r, o, m, space, ignoring
+everything else on the line.
+
+Normally, any lines that start "From " in the body of a message should be
+escaped such that a > character is actually the first on a line. It is
+possible though that body lines are not actually escaped. This script
+attempts to fix these by doing a stricter test of the Unix-From lines. Any
+lines that start "From " but do not pass this stricter test are escaped with a
+> character.
+
+Usage: cleanarch [options] < inputfile > outputfile
+Options:
+ -s n
+ --status=n
+ Print a # character every n lines processed
+
+ -q / --quiet
+ Don't print changed line information to standard error.
+
+ -n / --dry-run
+ Don't actually output anything.
+
+ -h / --help
+ Print this message and exit
+"""
+
+import sys
+import re
+import getopt
+import mailbox
+
+import paths
+from Mailman.i18n import _
+
+cre = re.compile(mailbox.UnixMailbox._fromlinepattern)
+
+# From RFC 2822, a header field name must contain only characters from 33-126
+# inclusive, excluding colon. I.e. from oct 41 to oct 176 less oct 072. Must
+# use re.match() so that it's anchored at the beginning of the line.
+fre = re.compile(r'[\041-\071\073-\0176]+')
+
+
+
+def usage(code, msg=''):
+ if code:
+ fd = sys.stderr
+ else:
+ fd = sys.stdout
+ print >> fd, _(__doc__)
+ if msg:
+ print >> fd, msg
+ sys.exit(code)
+
+
+
+def escape_line(line, lineno, quiet, output):
+ if output:
+ sys.stdout.write('>' + line)
+ if not quiet:
+ print >> sys.stderr, _('Unix-From line changed: %(lineno)d')
+ print >> sys.stderr, line[:-1]
+
+
+
+def main():
+ try:
+ opts, args = getopt.getopt(
+ sys.argv[1:], 'hqns:',
+ ['help', 'quiet', 'dry-run', 'status='])
+ except getopt.error, msg:
+ usage(1, msg)
+
+ quiet = 0
+ output = 1
+ status = -1
+
+ for opt, arg in opts:
+ if opt in ('-h', '--help'):
+ usage(0)
+ elif opt in ('-q', '--quiet'):
+ quiet = 1
+ elif opt in ('-n', '--dry-run'):
+ output = 0
+ elif opt in ('-s', '--status'):
+ try:
+ status = int(arg)
+ except ValueError:
+ usage(1, _('Bad status number: %(arg)s'))
+
+ if args:
+ usage(1)
+
+ lineno = 0
+ statuscnt = 0
+ messages = 0
+ while 1:
+ lineno += 1
+ line = sys.stdin.readline()
+ if not line:
+ break
+ if line.startswith('From '):
+ if cre.match(line):
+ # This is a real Unix-From line. But it could be a message
+ # /about/ Unix-From lines, so as a second order test, make
+ # sure there's at least one RFC 2822 header following
+ nextline = sys.stdin.readline()
+ lineno += 1
+ if not nextline:
+ # It was the last line of the mbox, so it couldn't have
+ # been a Unix-From
+ escape_line(line, lineno, quiet, output)
+ break
+ fieldname = nextline.split(':', 1)
+ if len(fieldname) < 2 or not fre.match(nextline):
+ # The following line was not a header, so this wasn't a
+ # valid Unix-From
+ escape_line(line, lineno, quiet, output)
+ if output:
+ sys.stdout.write(nextline)
+ else:
+ # It's a valid Unix-From line
+ messages += 1
+ if output:
+ sys.stdout.write(line)
+ sys.stdout.write(nextline)
+ else:
+ # This is a bogus Unix-From line
+ escape_line(line, lineno, quiet, output)
+ elif output:
+ # Any old line
+ sys.stdout.write(line)
+ if status > 0 and (lineno % status) == 0:
+ sys.stderr.write('#')
+ statuscnt += 1
+ if statuscnt > 50:
+ print >> sys.stderr
+ statuscnt = 0
+ print >> sys.stderr, _('%(messages)d messages found')
+
+
+
+if __name__ == '__main__':
+ main()
diff --git a/bin/clone_member b/bin/clone_member
new file mode 100755
index 00000000..5861aff5
--- /dev/null
+++ b/bin/clone_member
@@ -0,0 +1,219 @@
+#! @PYTHON@
+#
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Clone a member address.
+
+Cloning a member address means that a new member will be added who has all the
+same options and passwords as the original member address. Note that this
+operation is fairly trusting of the user who runs it -- it does no
+verification to the new address, it does not send out a welcome message, etc.
+
+The existing member's subscription is usually not modified in any way. If you
+want to remove the old address, use the -r flag. If you also want to change
+any list admin addresses, use the -a flag.
+
+Usage:
+ clone_member [options] fromoldaddr tonewaddr
+
+Where:
+
+ --listname=listname
+ -l listname
+ Check and modify only the named mailing lists. If -l is not given,
+ then all mailing lists are scanned from the address. Multiple -l
+ options can be supplied.
+
+ --remove
+ -r
+ Remove the old address from the mailing list after it's been cloned.
+
+ --admin
+ -a
+ Scan the list admin addresses for the old address, and clone or change
+ them too.
+
+ --quiet
+ -q
+ Do the modifications quietly.
+
+ --nomodify
+ -n
+ Print what would be done, but don't actually do it. Inhibits the
+ --quiet flag.
+
+ --help
+ -h
+ Print this help message and exit.
+
+ fromoldaddr (`from old address') is the old address of the user. tonewaddr
+ (`to new address') is the new address of the user.
+
+"""
+
+import sys
+import getopt
+
+import paths
+from Mailman import MailList
+from Mailman import Utils
+from Mailman import Errors
+from Mailman.i18n import _
+
+
+
+def usage(code, msg=''):
+ if code:
+ fd = sys.stderr
+ else:
+ fd = sys.stdout
+ print >> fd, _(__doc__)
+ if msg:
+ print >> fd, msg
+ sys.exit(code)
+
+
+
+def dolist(mlist, options):
+ SPACE = ' '
+ if not options.quiet:
+ print _('processing mailing list:'), mlist.internal_name()
+
+ # scan the list owners. TBD: mlist.owner keys should be lowercase?
+ oldowners = mlist.owner[:]
+ oldowners.sort()
+ if options.admintoo:
+ if not options.quiet:
+ print _(' scanning list owners:'), SPACE.join(oldowners)
+ newowners = {}
+ foundp = 0
+ for owner in mlist.owner:
+ if options.lfromaddr == owner.lower():
+ foundp = 1
+ if options.remove:
+ continue
+ newowners[owner] = 1
+ if foundp:
+ newowners[options.toaddr] = 1
+ newowners = newowners.keys()
+ newowners.sort()
+ if options.modify:
+ mlist.owner = newowners
+ if not options.quiet:
+ if newowners <> oldowners:
+ print
+ print _(' new list owners:'), SPACE.join(newowners)
+ else:
+ print _('(no change)')
+
+ # see if the fromaddr is a digest member or regular member
+ if options.lfromaddr in mlist.getDigestMemberKeys():
+ digest = 1
+ elif options.lfromaddr in mlist.getRegularMemberKeys():
+ digest = 0
+ else:
+ if not options.quiet:
+ print _(' address not found:'), options.fromaddr
+ return
+
+ # Now change the membership address
+ try:
+ if options.modify:
+ mlist.changeMemberAddress(options.fromaddr, options.toaddr,
+ not options.remove)
+ if not options.quiet:
+ print _(' clone address added:'), options.toaddr
+ except Errors.MMAlreadyAMember:
+ if not options.quiet:
+ print _(' clone address is already a member:'), options.toaddr
+
+ if options.remove:
+ print _(' original address removed:'), options.fromaddr
+
+
+
+def main():
+ # default options
+ class Options:
+ listnames = None
+ remove = 0
+ admintoo = 0
+ quiet = 0
+ modify = 1
+
+ # scan sysargs
+ try:
+ opts, args = getopt.getopt(
+ sys.argv[1:], 'arl:qnh',
+ ['admin', 'remove', 'listname=', 'quiet', 'nomodify', 'help'])
+ except getopt.error, msg:
+ usage(1, msg)
+
+ options = Options()
+ for opt, arg in opts:
+ if opt in ('-h', '--help'):
+ usage(0)
+ elif opt in ('-q', '--quiet'):
+ options.quiet = 1
+ elif opt in ('-n', '--nomodify'):
+ options.modify = 0
+ elif opt in ('-a', '--admin'):
+ options.admintoo = 1
+ elif opt in ('-r', '--remove'):
+ options.remove = 1
+ elif opt in ('-l', '--listname'):
+ if options.listnames is None:
+ options.listnames = []
+ options.listnames.append(arg.lower())
+
+ # further options and argument processing
+ if not options.modify:
+ options.quiet = 0
+
+ if len(args) <> 2:
+ usage(1)
+ fromaddr = args[0]
+ toaddr = args[1]
+
+ # validate and normalize the target address
+ try:
+ Utils.ValidateEmail(toaddr)
+ except Errors.EmailAddressError:
+ usage(1, _('Not a valid email address: %(toaddr)s'))
+ lfromaddr = fromaddr.lower()
+ options.toaddr = toaddr
+ options.fromaddr = fromaddr
+ options.lfromaddr = lfromaddr
+
+ if options.listnames is None:
+ options.listnames = Utils.list_names()
+
+ for listname in options.listnames:
+ try:
+ mlist = MailList.MailList(listname)
+ except Errors.MMListError, e:
+ print _('Error opening list "%(listname)s", skipping.\n%(e)s')
+ continue
+ try:
+ dolist(mlist, options)
+ finally:
+ mlist.Save()
+ mlist.Unlock()
+
+
+if __name__ == '__main__':
+ main()
diff --git a/bin/config_list b/bin/config_list
new file mode 100644
index 00000000..9675e142
--- /dev/null
+++ b/bin/config_list
@@ -0,0 +1,339 @@
+#! @PYTHON@
+#
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Configure a list from a text file description.
+
+Usage: config_list [options] listname
+
+Options:
+ --inputfile filename
+ -i filename
+ Configure the list by assigning each module-global variable in the
+ file to an attribute on the list object, then saving the list. The
+ named file is loaded with execfile() and must be legal Python code.
+ Any variable that isn't already an attribute of the list object is
+ ignored (a warning message is printed). See also the -c option.
+
+ A special variable named `mlist' is put into the globals during the
+ execfile, which is bound to the actual MailList object. This lets you
+ do all manner of bizarre thing to the list object, but BEWARE! Using
+ this can severely (and possibly irreparably) damage your mailing list!
+
+ --outputfile filename
+ -o filename
+ Instead of configuring the list, print out a list's configuration
+ variables in a format suitable for input using this script. In this
+ way, you can easily capture the configuration settings for a
+ particular list and imprint those settings on another list. filename
+ is the file to output the settings to. If filename is `-', standard
+ out is used.
+
+ --checkonly
+ -c
+ With this option, the modified list is not actually changed. Only
+ useful with -i.
+
+ --verbose
+ -v
+ Print the name of each attribute as it is being changed. Only useful
+ with -i.
+
+ --help
+ -h
+ Print this help message and exit.
+
+The options -o and -i are mutually exclusive.
+
+"""
+
+import sys
+import re
+import time
+import getopt
+from types import TupleType
+
+import paths
+from Mailman import mm_cfg
+from Mailman import MailList
+from Mailman import Utils
+from Mailman import Errors
+from Mailman.i18n import _
+
+NL = '\n'
+
+
+
+def usage(code, msg=''):
+ if code:
+ fd = sys.stderr
+ else:
+ fd = sys.stdout
+ print >> fd, _(__doc__)
+ if msg:
+ print >> fd, msg
+ sys.exit(code)
+
+
+
+def do_output(listname, outfile):
+ closep = 0
+ try:
+ if outfile == '-':
+ outfp = sys.stdout
+ else:
+ outfp = open(outfile, 'w')
+ closep = 1
+ # Open the specified list unlocked, since we're only reading it.
+ try:
+ mlist = MailList.MailList(listname, lock=0)
+ except Errors.MMListError:
+ usage(1, _('No such list: %(listname)s'))
+ # get all the list config info. all this stuff is accessible via the
+ # web interface
+ when = time.ctime(time.time())
+ print >> outfp, _('''\
+## "%(listname)s" mailing list configuration settings -*- python -*-
+## captured on %(when)s
+''')
+
+ for k in mm_cfg.ADMIN_CATEGORIES:
+ subcats = mlist.GetConfigSubCategories(k)
+ if subcats is None:
+ do_list_categories(mlist, k, None, outfp)
+ else:
+ for subcat in [t[0] for t in subcats]:
+ do_list_categories(mlist, k, subcat, outfp)
+ finally:
+ if closep:
+ outfp.close()
+
+
+def do_list_categories(mlist, k, subcat, outfp):
+ info = mlist.GetConfigInfo(k, subcat)
+ label, gui = mlist.GetConfigCategories()[k]
+ if info is None:
+ return
+ print >> outfp, '##', k.capitalize(), _('options')
+ print >> outfp, '#'
+ # First, massage the descripton text, which could have obnoxious
+ # leading whitespace on second and subsequent lines due to
+ # triple-quoted string nonsense in the source code.
+ desc = NL.join([s.lstrip() for s in info[0].split('\n')])
+ # Print out the category description
+ desc = Utils.wrap(desc)
+ for line in desc.split('\n'):
+ print >> outfp, '#', line
+ print >> outfp
+ for data in info[1:]:
+ if not isinstance(data, TupleType):
+ continue
+ varname = data[0]
+ # Variable could be volatile
+ if varname[0] == '_':
+ continue
+ vtype = data[1]
+ # First, massage the descripton text, which could have
+ # obnoxious leading whitespace on second and subsequent lines
+ # due to triple-quoted string nonsense in the source code.
+ desc = NL.join([s.lstrip() for s in data[-1].split('\n')])
+ # Now strip out all HTML tags
+ desc = re.sub('<.*?>', '', desc)
+ # And convert &lt;/&gt; to <>
+ desc = re.sub('&lt;', '<', desc)
+ desc = re.sub('&gt;', '>', desc)
+ # Print out the variable description.
+ desc = Utils.wrap(desc)
+ for line in desc.split('\n'):
+ print >> outfp, '#', line
+ # munge the value based on its type
+ value = None
+ if hasattr(gui, 'getValue'):
+ value = gui.getValue(mlist, vtype, varname, data[2])
+ if value is None and not varname.startswith('_'):
+ value = getattr(mlist, varname)
+ if vtype in (mm_cfg.Text, mm_cfg.FileUpload):
+ print >> outfp, varname, '=',
+ lines = value.splitlines()
+ if not lines:
+ print >> outfp, "''"
+ elif len(lines) == 1:
+ print >> outfp, repr(lines[0])
+ else:
+ first = 1
+ outfp.write(' """')
+ for line in lines:
+ if first:
+ first = 0
+ else:
+ print >> outfp
+ outfp.write(line.replace('"', '\\"'))
+ print >> outfp, '"""'
+ elif vtype in (mm_cfg.Radio, mm_cfg.Toggle):
+ print >> outfp, '#'
+ print >> outfp, '#', _('legal values are:')
+ # TBD: This is disgusting, but it's special cased
+ # everywhere else anyway...
+ if varname == 'subscribe_policy' and \
+ not mm_cfg.ALLOW_OPEN_SUBSCRIBE:
+ i = 1
+ else:
+ i = 0
+ for choice in data[2]:
+ print >> outfp, '# ', i, '= "%s"' % choice
+ i += 1
+ print >> outfp, varname, '=', repr(value)
+ else:
+ print >> outfp, varname, '=', repr(value)
+ print >> outfp
+
+
+
+def getPropertyMap(mlist):
+ guibyprop = {}
+ categories = mlist.GetConfigCategories()
+ for category, (label, gui) in categories.items():
+ if not hasattr(gui, 'GetConfigInfo'):
+ continue
+ subcats = mlist.GetConfigSubCategories(category)
+ if subcats is None:
+ subcats = [(None, None)]
+ for subcat, sclabel in subcats:
+ for element in gui.GetConfigInfo(mlist, category, subcat):
+ if not isinstance(element, TupleType):
+ continue
+ propname = element[0]
+ wtype = element[1]
+ guibyprop[propname] = (gui, wtype)
+ return guibyprop
+
+
+class FakeDoc:
+ # Fake the error reporting API for the htmlformat.Document class
+ def addError(self, s, tag=None, *args):
+ if tag:
+ print >> sys.stderr, tag
+ print >> sys.stderr, s % args
+
+ def set_language(self, val):
+ pass
+
+
+def do_input(listname, infile, checkonly, verbose):
+ fakedoc = FakeDoc()
+ # open the specified list locked, unless checkonly is set
+ try:
+ mlist = MailList.MailList(listname, lock=not checkonly)
+ except Errors.MMListError, e:
+ usage(1, _('No such list "%(listname)s"\n%(e)s'))
+ savelist = 0
+ guibyprop = getPropertyMap(mlist)
+ try:
+ globals = {'mlist': mlist}
+ # Any exception that occurs in execfile() will cause the list to not
+ # be saved, but any other problems are not save-fatal.
+ execfile(infile, globals)
+ savelist = 1
+ for k, v in globals.items():
+ if k in ('mlist', '__builtins__'):
+ continue
+ if not hasattr(mlist, k):
+ print >> sys.stderr, _('attribute "%(k)s" ignored')
+ continue
+ if verbose:
+ print >> sys.stderr, _('attribute "%(k)s" changed')
+ missing = []
+ gui, wtype = guibyprop.get(k, (missing, missing))
+ if gui is missing:
+ # This isn't an official property of the list, but that's
+ # okay, we'll just restore it the old fashioned way
+ print >> sys.stderr, _('Non-standard property restored: %(k)s')
+ setattr(mlist, k, v)
+ else:
+ # BAW: This uses non-public methods. This logic taken from
+ # the guts of GUIBase.handleForm().
+ try:
+ validval = gui._getValidValue(mlist, k, wtype, v)
+ except ValueError:
+ print >> sys.stderr, _('Invalid value for property: %(k)s')
+ except Errors.EmailAddressError:
+ print >> sys.stderr, _(
+ 'Bad email address for option %(k)s: %(v)s')
+ else:
+ # BAW: Horrible hack, but then this is special cased
+ # everywhere anyway. :( Privacy._setValue() knows that
+ # when ALLOW_OPEN_SUBSCRIBE is false, the web values are
+ # 0, 1, 2 but these really should be 1, 2, 3, so it adds
+ # one. But we really do provide [0..3] so we need to undo
+ # the hack that _setValue adds. :( :(
+ if k == 'subscribe_policy' and \
+ not mm_cfg.ALLOW_OPEN_SUBSCRIBE:
+ validval -= 1
+ gui._setValue(mlist, k, validval, fakedoc)
+ # BAW: when to do gui._postValidate()???
+ finally:
+ if savelist and not checkonly:
+ mlist.Save()
+ mlist.Unlock()
+
+
+
+def main():
+ try:
+ opts, args = getopt.getopt(
+ sys.argv[1:], 'ci:o:vh',
+ ['checkonly', 'inputfile=', 'outputfile=', 'verbose', 'help'])
+ except getopt.error, msg:
+ usage(1, msg)
+
+ # defaults
+ infile = None
+ outfile = None
+ checkonly = 0
+ verbose = 0
+ for opt, arg in opts:
+ if opt in ('-h', '--help'):
+ usage(0)
+ elif opt in ('-o', '--outputfile'):
+ outfile = arg
+ elif opt in ('-i', '--inputfile'):
+ infile = arg
+ elif opt in ('-c', '--checkonly'):
+ checkonly = 1
+ elif opt in ('-v', '--verbose'):
+ verbose = 1
+
+ # sanity check
+ if infile is not None and outfile is not None:
+ usage(1, _('Only one of -i or -o is allowed'))
+ if infile is None and outfile is None:
+ usage(1, _('One of -i or -o is required'))
+
+ # get the list name
+ if len(args) <> 1:
+ usage(1, _('List name is required'))
+ listname = args[0].lower().strip()
+
+ if outfile:
+ do_output(listname, outfile)
+ else:
+ do_input(listname, infile, checkonly, verbose)
+
+
+
+if __name__ == '__main__':
+ main()
diff --git a/bin/convert.py b/bin/convert.py
new file mode 100644
index 00000000..24951b5e
--- /dev/null
+++ b/bin/convert.py
@@ -0,0 +1,44 @@
+#! @PYTHON@
+#
+# Copyright (C) 2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Convert a list's interpolation strings from %-strings to $-strings.
+
+This script is intended to be run as a bin/withlist script, i.e.
+
+% bin/withlist -l -r convert <mylist>
+"""
+
+import paths
+from Mailman import Utils
+from Mailman.i18n import _
+
+def convert(mlist):
+ for attr in ('msg_header', 'msg_footer', 'digest_header', 'digest_footer',
+ 'autoresponse_postings_text', 'autoresponse_admin_text',
+ 'autoresponse_request_text'):
+ s = getattr(mlist, attr)
+ t = Utils.to_dollar(s)
+ setattr(mlist, attr, t)
+ mlist.use_dollar_strings = 1
+ print _('Saving list')
+ mlist.Save()
+
+
+
+if __name__ == '__main__':
+ print _(__doc__.replace('%', '%%'))
diff --git a/bin/dumpdb b/bin/dumpdb
new file mode 100644
index 00000000..be04385b
--- /dev/null
+++ b/bin/dumpdb
@@ -0,0 +1,134 @@
+#! @PYTHON@
+#
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Dump the contents of any Mailman `database' file.
+
+Usage: %(PROGRAM)s [options] filename
+
+Options:
+
+ --marshal/-m
+ Assume the file contains a Python marshal, overridding any automatic
+ guessing.
+
+ --pickle/-p
+ Assume the file contains a Python pickle, overridding any automatic
+ guessing.
+
+ --noprint/-n
+ Don't attempt to pretty print the object. This is useful if there's
+ some problem with the object and you just want to get an unpickled
+ representation. Useful with `python -i bin/dumpdb <file>'. In that
+ case, the root of the tree will be left in a global called "msg".
+
+ --help/-h
+ Print this help message and exit
+
+If the filename ends with `.db', then it is assumed that the file contains a
+Python marshal. If the file ends with `.pck' then it is assumed to contain a
+Python pickle. In either case, if you want to override the default assumption
+-- or if the file ends in neither suffix -- use the -p or -m flags.
+"""
+
+import sys
+import os
+import getopt
+import pprint
+import cPickle
+
+import paths
+# Import this /after/ paths so that the sys.path is properly hacked
+from email.Generator import Generator
+
+from Mailman.Queue.Switchboard import DumperSwitchboard
+from Mailman.i18n import _
+
+PROGRAM = sys.argv[0]
+COMMASPACE = ', '
+
+
+
+def usage(code, msg=''):
+ if code:
+ fd = sys.stderr
+ else:
+ fd = sys.stdout
+ print >> fd, _(__doc__) % globals()
+ if msg:
+ print >> fd, msg
+ sys.exit(code)
+
+
+
+def main():
+ try:
+ opts, args = getopt.getopt(sys.argv[1:], 'mphn',
+ ['marshal', 'pickle', 'help', 'noprint'])
+ except getopt.error, msg:
+ usage(1, msg)
+
+ # Options.
+ # None == guess, 0 == pickle, 1 == marshal
+ filetype = None
+ doprint = 1
+
+ for opt, arg in opts:
+ if opt in ('-h', '--help'):
+ usage(0)
+ elif opt in ('-p', '--pickle'):
+ filetype = 0
+ elif opt in ('-m', '--marshal'):
+ filetype = 1
+ elif opt in ('-n', '--noprint'):
+ doprint = 0
+
+ if len(args) < 1:
+ usage(1, _('No filename given.'))
+ elif len(args) > 1:
+ pargs = COMMASPACE.join(args)
+ usage(1, _('Bad arguments: %(pargs)s'))
+ else:
+ filename = args[0]
+
+ if filetype is None:
+ if filename.endswith('.db'):
+ filetype = 1
+ elif filename.endswith('.pck'):
+ filetype = 0
+ else:
+ usage(1, _('Please specify either -p or -m.'))
+
+ # Handle dbs
+ pp = pprint.PrettyPrinter(indent=4)
+ if filetype == 1:
+ # BAW: this probably doesn't work if there are mixed types of .db
+ # files (i.e. some marshals, some bdbs).
+ d = DumperSwitchboard().read(filename)
+ if doprint:
+ pp.pprint(d)
+ return d
+ else:
+ m = cPickle.load(open(filename))
+ if doprint:
+ pp.pprint(m)
+ return m
+
+
+
+if __name__ == '__main__':
+ msg = main()
diff --git a/bin/find_member b/bin/find_member
new file mode 100755
index 00000000..0656d500
--- /dev/null
+++ b/bin/find_member
@@ -0,0 +1,184 @@
+#! @PYTHON@
+#
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Find all lists that a member's address is on.
+
+Usage:
+ find_member [options] regex [regex [...]]
+
+Where:
+ --listname=listname
+ -l listname
+ Include only the named list in the search.
+
+ --exclude=listname
+ -x listname
+ Exclude the named list from the search.
+
+ --owners
+ -w
+ Search list owners as well as members.
+
+ --help
+ -h
+ Print this help message and exit.
+
+ regex
+ A Python regular expression to match against.
+
+The interaction between -l and -x is as follows. If any -l option is given
+then only the named list will be included in the search. If any -x option is
+given but no -l option is given, then all lists will be search except those
+specifically excluded.
+
+Regular expression syntax is Perl5-like, using the Python re module. Complete
+specifications are at:
+
+http://www.python.org/doc/current/lib/module-re.html
+
+Address matches are case-insensitive, but case-preserved addresses are
+displayed.
+
+"""
+
+import sys
+import re
+import getopt
+
+import paths
+from Mailman import Utils
+from Mailman import MailList
+from Mailman import Errors
+from Mailman.i18n import _
+
+AS_MEMBER = 0x01
+AS_OWNER = 0x02
+
+
+
+def usage(code, msg=''):
+ if code:
+ fd = sys.stderr
+ else:
+ fd = sys.stdout
+ print >> fd, _(__doc__)
+ if msg:
+ print >> fd, msg
+ sys.exit(code)
+
+
+
+def scanlists(options):
+ cres = []
+ for r in options.regexps:
+ cres.append(re.compile(r, re.IGNORECASE))
+ #
+ # dictionary of {address, (listname, ownerp)}
+ matches = {}
+ for listname in options.listnames:
+ try:
+ mlist = MailList.MailList(listname, lock=0)
+ except Errors.MMListError:
+ print _('No such list: %(listname)s')
+ continue
+ if options.owners:
+ owners = mlist.owner
+ else:
+ owners = []
+ for cre in cres:
+ for member in mlist.getMembers():
+ if cre.search(member):
+ addr = mlist.getMemberCPAddress(member)
+ entries = matches.get(addr, {})
+ aswhat = entries.get(listname, 0)
+ aswhat |= AS_MEMBER
+ entries[listname] = aswhat
+ matches[addr] = entries
+ for owner in owners:
+ if cre.search(owner):
+ entries = matches.get(addr, {})
+ aswhat = entries.get(listname, 0)
+ aswhat |= AS_OWNER
+ entries[listname] = aswhat
+ matches[addr] = entries
+ return matches
+
+
+
+class Options:
+ listnames = Utils.list_names()
+ owners = None
+
+
+def main():
+ try:
+ opts, args = getopt.getopt(sys.argv[1:], 'l:x:wh',
+ ['listname=', 'exclude=', 'owners',
+ 'help'])
+ except getopt.error, msg:
+ usage(1, msg)
+
+ options = Options()
+ loptseen = 0
+ excludes = []
+ for opt, arg in opts:
+ if opt in ('-h', '--help'):
+ usage(0)
+ elif opt in ('-l', '--listname'):
+ if not loptseen:
+ options.listnames = []
+ loptseen = 1
+ options.listnames.append(arg.lower())
+ elif opt in ('-x', '--exclude'):
+ excludes.append(arg.lower())
+ elif opt in ('-w', '--owners'):
+ options.owners = 1
+
+ for ex in excludes:
+ try:
+ options.listnames.remove(ex)
+ except ValueError:
+ pass
+
+ if not args:
+ usage(1, _('Search regular expression required'))
+
+ options.regexps = args
+
+ if not options.listnames:
+ print _('No lists to search')
+ return
+
+ matches = scanlists(options)
+ addrs = matches.keys()
+ addrs.sort()
+ for k in addrs:
+ hits = matches[k]
+ lists = hits.keys()
+ print k, _('found in:')
+ for name in lists:
+ aswhat = hits[name]
+ if aswhat & AS_MEMBER:
+ print ' ', name
+ if aswhat & AS_OWNER:
+ print ' ', name, _('(as owner)')
+
+
+
+if __name__ == '__main__':
+ main()
diff --git a/bin/fix_url.py b/bin/fix_url.py
new file mode 100644
index 00000000..582a0e76
--- /dev/null
+++ b/bin/fix_url.py
@@ -0,0 +1,92 @@
+#! @PYTHON@
+#
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Reset a list's web_page_url attribute to the default setting.
+
+This script is intended to be run as a bin/withlist script, i.e.
+
+% bin/withlist -l -r fix_url listname [options]
+
+Options:
+ -u urlhost
+ --urlhost=urlhost
+ Look up urlhost in the virtual host table and set the web_page_url and
+ host_name attributes of the list to the values found. This
+ essentially moves the list from one virtual domain to another.
+
+ Without this option, the default web_page_url and host_name values are
+ used.
+
+ -v / --verbose
+ Print what the script is doing.
+
+If run standalone, it prints this help text and exits.
+"""
+
+import sys
+import getopt
+
+import paths
+from Mailman import mm_cfg
+from Mailman.i18n import _
+
+
+
+def usage(code, msg=''):
+ print _(__doc__.replace('%', '%%'))
+ if msg:
+ print msg
+ sys.exit(code)
+
+
+
+def fix_url(mlist, *args):
+ try:
+ opts, args = getopt.getopt(args, 'u:v', ['urlhost=', 'verbose'])
+ except getopt.error, msg:
+ usage(1, msg)
+
+ verbose = 0
+ urlhost = mailhost = None
+ for opt, arg in opts:
+ if opt in ('-u', '--urlhost'):
+ urlhost = arg
+ elif opt in ('-v', '--verbose'):
+ verbose = 1
+
+ if urlhost:
+ web_page_url = mm_cfg.DEFAULT_URL_PATTERN % urlhost
+ mailhost = mm_cfg.VIRTUAL_HOSTS.get(urlhost.lower(), urlhost)
+ else:
+ web_page_url = mm_cfg.DEFAULT_URL_PATTERN % mm_cfg.DEFAULT_URL_HOST
+ mailhost = mm_cfg.DEFAULT_EMAIL_HOST
+
+ if verbose:
+ print _('Setting web_page_url to: %(web_page_url)s')
+ mlist.web_page_url = web_page_url
+ if verbose:
+ print _('Setting host_name to: %(mailhost)s')
+ mlist.host_name = mailhost
+ print _('Saving list')
+ mlist.Save()
+ mlist.Unlock()
+
+
+
+if __name__ == '__main__':
+ usage(0)
diff --git a/bin/genaliases b/bin/genaliases
new file mode 100644
index 00000000..289c5bec
--- /dev/null
+++ b/bin/genaliases
@@ -0,0 +1,102 @@
+#! @PYTHON@
+#
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Regenerate Postfix's data/aliases and data/aliases.db files from scratch.
+
+Usage:
+
+ genaliases [options]
+
+Options:
+
+ -h/--help
+ Print this message and exit.
+"""
+
+import sys
+import os
+import getopt
+import fcntl
+
+import paths # path hacking
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman import MailList
+from Mailman.i18n import _
+
+
+
+def usage(code, msg=''):
+ if code:
+ fd = sys.stderr
+ else:
+ fd = sys.stdout
+ print >> fd, _(__doc__)
+ if msg:
+ print >> fd, msg
+ sys.exit(code)
+
+
+
+def main():
+ try:
+ opts, args = getopt.getopt(sys.argv[1:], 'h', ['help'])
+ except getopt.error, msg:
+ usage(1, msg)
+
+ for opt, arg in opts:
+ if opt in ('-h', '--help'):
+ usage(0)
+
+ if args:
+ usage(1)
+
+ # Open up the MTA specific module
+ modulename = 'Mailman.MTA.' + mm_cfg.MTA
+ __import__(modulename)
+ MTA = sys.modules[modulename]
+
+ # Open the text file and Berkeley DB files, truncating any data already
+ # there. We need to acquire a lock so nobody tries to update the files
+ # while we're doing it.
+ lock = MTA.makelock()
+ lock.lock()
+ # Group lists by virtual hostname
+ mlists = {}
+ for listname in Utils.list_names():
+ mlist = MailList.MailList(listname, lock=0)
+ mlists.setdefault(mlist.host_name, []).append(mlist)
+ # Make sure the files are created rw-rw-xxx; it should be okay to be world
+ # readable.
+ omask = os.umask(002)
+ try:
+ MTA.clear()
+ if not mlists:
+ MTA.create(None, nolock=1)
+ else:
+ for hostname, vlists in mlists.items():
+ for mlist in vlists:
+ MTA.create(mlist, nolock=1)
+ finally:
+ os.umask(omask)
+ lock.unlock(unconditionally=1)
+
+
+
+if __name__ == '__main__':
+ main()
diff --git a/bin/inject b/bin/inject
new file mode 100644
index 00000000..50deba6a
--- /dev/null
+++ b/bin/inject
@@ -0,0 +1,107 @@
+#! @PYTHON@
+#
+# Copyright (C) 2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Inject a message from a file into Mailman's incoming queue.
+
+Usage: inject [options] [filename]
+
+Options:
+
+ -h / --help
+ Print this text and exit.
+
+ -l listname
+ --listname=listname
+ The name of the list to inject this message to. Required.
+
+ -q queuename
+ --queue=queuename
+ The name of the queue to inject the message to. The queuename must be
+ one of the directories inside the qfiles directory. If omitted, the
+ incoming queue is used.
+
+filename is the name of the plaintext message file to inject. If omitted,
+standard input is used.
+"""
+
+import sys
+import os
+import getopt
+
+import paths
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman import Post
+from Mailman.i18n import _
+
+
+
+def usage(code, msg=''):
+ if code:
+ fd = sys.stderr
+ else:
+ fd = sys.stdout
+ print >> fd, _(__doc__)
+ if msg:
+ print >> fd, msg
+ sys.exit(code)
+
+
+
+def main():
+ try:
+ opts, args = getopt.getopt(
+ sys.argv[1:], 'hl:q:L',
+ ['help', 'listname=', 'queue=', 'showqnames'])
+ except getopt.error, msg:
+ usage(1, msg)
+
+ qdir = mm_cfg.INQUEUE_DIR
+ listname = None
+
+ for opt, arg in opts:
+ if opt in ('-h', '--help'):
+ usage(0)
+ elif opt in ('-q', '--queue'):
+ qdir = os.path.join(mm_cfg.QUEUE_DIR, arg)
+ if not os.path.isdir(qdir):
+ usage(1, _('Bad queue directory: %(qdir)s'))
+ elif opt in ('-l', '--listname'):
+ listname = arg
+
+ if listname is None:
+ usage(1, _('A list name is required'))
+ elif not Utils.list_exists(listname):
+ usage(1, _('No such list: %(listname)s'))
+
+ if len(args) == 0:
+ # Use standard input
+ msgtext = sys.stdin.read()
+ elif len(args) == 1:
+ fp = open(args[0])
+ msgtext = fp.read()
+ fp.close()
+ else:
+ usage(1)
+
+ Post.inject(listname, msgtext, qdir=qdir)
+
+
+
+if __name__ == '__main__':
+ main()
diff --git a/bin/list_admins b/bin/list_admins
new file mode 100644
index 00000000..0c4e4ffe
--- /dev/null
+++ b/bin/list_admins
@@ -0,0 +1,101 @@
+#! @PYTHON@
+#
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""List all the owners of a mailing list.
+
+Usage: %(program)s [options] listname ...
+
+Where:
+
+ --all-vhost=vhost
+ -v=vhost
+ List the owners of all the mailing lists for the given virtual host.
+
+ --all
+ -a
+ List the owners of all the mailing lists on this system.
+
+ --help
+ -h
+ Print this help message and exit.
+
+`listname' is the name of the mailing list to print the owners of. You can
+have more than one named list on the command line.
+"""
+
+import sys
+import getopt
+
+import paths
+from Mailman import MailList, Utils
+from Mailman import Errors
+from Mailman.i18n import _
+
+COMMASPACE = ', '
+
+program = sys.argv[0]
+
+
+
+def usage(code, msg=''):
+ if code:
+ fd = sys.stderr
+ else:
+ fd = sys.stdout
+ print >> fd, _(__doc__)
+ if msg:
+ print >> fd, msg
+ sys.exit(code)
+
+
+
+def main():
+ try:
+ opts, args = getopt.getopt(sys.argv[1:], 'hv:a',
+ ['help', 'all-vhost=', 'all'])
+ except getopt.error, msg:
+ usage(1, msg)
+
+ listnames = args
+ vhost = None
+ for opt, arg in opts:
+ if opt in ('-h', '--help'):
+ usage(0)
+ elif opt in ('-a', '--all'):
+ listnames = Utils.list_names()
+ elif opt in ('-v', '--all-vhost'):
+ listnames = Utils.list_names()
+ vhost = arg
+
+ for listname in listnames:
+ try:
+ mlist = MailList.MailList(listname, lock=0)
+ except Errors.MMListError, e:
+ print _('No such list: %(listname)s')
+ continue
+
+ if vhost and vhost <> mlist.host_name:
+ continue
+
+ owners = COMMASPACE.join(mlist.owner)
+ print _('List: %(listname)s, \tOwners: %(owners)s')
+
+
+
+if __name__ == '__main__':
+ main()
diff --git a/bin/list_lists b/bin/list_lists
new file mode 100644
index 00000000..4dd6b55c
--- /dev/null
+++ b/bin/list_lists
@@ -0,0 +1,122 @@
+#! @PYTHON@
+#
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""List all mailing lists.
+
+Usage: %(program)s [options]
+
+Where:
+
+ -a / --advertised
+ List only those mailing lists that are publically advertised
+
+ --virtual-host-overview=domain
+ -V domain
+ List only those mailing lists that are homed to the given virtual
+ domain. This only works if the VIRTUAL_HOST_OVERVIEW variable is
+ set.
+
+ -b / --bare
+ Displays only the list name, with no description.
+
+ -h / --help
+ Print this text and exit.
+
+"""
+
+import sys
+import getopt
+import paths
+
+from Mailman import mm_cfg
+from Mailman import MailList
+from Mailman import Utils
+from Mailman import Errors
+from Mailman.i18n import _
+
+program = sys.argv[0]
+
+def usage(code, msg=''):
+ if code:
+ fd = sys.stderr
+ else:
+ fd = sys.stdout
+ print >> fd, _(__doc__)
+ if msg:
+ print >> fd, msg
+ sys.exit(code)
+
+
+
+def main():
+ try:
+ opts, args = getopt.getopt(sys.argv[1:], 'abV:h',
+ ['advertised', 'bare',
+ 'virtual-host-overview=',
+ 'help'])
+ except getopt.error, msg:
+ usage(1, msg)
+
+ advertised = 0
+ vhost = None
+ bare = 0
+ for opt, arg in opts:
+ if opt in ('-h', '--help'):
+ usage(0)
+ elif opt in ('-a', '--advertised'):
+ advertised = 1
+ elif opt in ('-V', '--virtual-host-overview'):
+ vhost = arg
+ elif opt in ('-b', '--bare'):
+ bare = 1
+
+ names = Utils.list_names()
+ names.sort()
+
+ mlists = []
+ longest = 0
+ for n in names:
+ mlist = MailList.MailList(n, lock=0)
+ if advertised and not mlist.advertised:
+ continue
+ if vhost and mm_cfg.VIRTUAL_HOST_OVERVIEW and \
+ vhost.find(mlist.web_page_url) == -1 and \
+ mlist.web_page_url.find(vhost) == -1:
+ continue
+ mlists.append(mlist)
+ longest = max(len(mlist.real_name), longest)
+
+ if not mlists and not bare:
+ print _('No matching mailing lists found')
+ return
+
+ if not bare:
+ print len(mlists), _('matching mailing lists found:')
+
+ format = '%%%ds - %%.%ds' % (longest, 77 - longest)
+ for mlist in mlists:
+ if bare:
+ print mlist.internal_name()
+ else:
+ description = mlist.description or _('[no description available]')
+ print ' ', format % (mlist.real_name, description)
+
+
+
+if __name__ == '__main__':
+ main()
diff --git a/bin/list_members b/bin/list_members
new file mode 100755
index 00000000..3ad10f51
--- /dev/null
+++ b/bin/list_members
@@ -0,0 +1,232 @@
+#! @PYTHON@
+#
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""List all the members of a mailing list.
+
+Usage: %(PROGRAM)s [options] listname
+
+Where:
+
+ --output file
+ -o file
+ Write output to specified file instead of standard out.
+
+ --regular / -r
+ Print just the regular (non-digest) members.
+
+ --digest[=kind] / -d [kind]
+ Print just the digest members. Optional argument can be "mime" or
+ "plain" which prints just the digest members receiving that kind of
+ digest.
+
+ --nomail[=why] / -n [why]
+ Print the members that have delivery disabled. Optional argument can
+ be "byadmin", "byuser", "bybounce", or "unknown" which prints just the
+ users who have delivery disabled for that reason. It can also be
+ "enabled" which prints just those member for whom delivery is
+ enabled.
+
+ --fullnames / -f
+ Include the full names in the output.
+
+ --preserve
+ -p
+ Output member addresses case preserved the way they were added to the
+ list. Otherwise, addresses are printed in all lowercase.
+
+ --help
+ -h
+ Print this help message and exit.
+
+ listname is the name of the mailing list to use.
+
+Note that if neither -r or -d is supplied, both regular members are printed
+first, followed by digest members, but no indication is given as to address
+status.
+"""
+
+import sys
+
+import paths
+from Mailman import mm_cfg
+from Mailman import MailList
+from Mailman import Errors
+from Mailman import MemberAdaptor
+from Mailman.i18n import _
+
+from email.Utils import formataddr
+
+PROGRAM = sys.argv[0]
+WHYCHOICES = {'enabled' : MemberAdaptor.ENABLED,
+ 'unknown' : MemberAdaptor.UNKNOWN,
+ 'byuser' : MemberAdaptor.BYUSER,
+ 'byadmin' : MemberAdaptor.BYADMIN,
+ 'bybounce': MemberAdaptor.BYBOUNCE,
+ }
+
+
+def usage(code, msg=''):
+ if code:
+ fd = sys.stderr
+ else:
+ fd = sys.stdout
+ print >> fd, _(__doc__)
+ if msg:
+ print >> fd, msg
+ sys.exit(code)
+
+
+
+def whymatches(mlist, addr, why):
+ # Return true if the `why' matches the reason the address is enabled, or
+ # in the case of why is None, that they are disabled for any reason
+ # (i.e. not enabled).
+ status = mlist.getDeliveryStatus(addr)
+ if why is None:
+ return status <> MemberAdaptor.ENABLED
+ return status == WHYCHOICES[why]
+
+
+
+def main():
+ # Because of the optional arguments, we can't use getopt. :(
+ outfile = None
+ regular = None
+ digest = None
+ preserve = None
+ nomail = None
+ why = None
+ kind = None
+ fullnames = 0
+
+ # Throw away the first (program) argument
+ args = sys.argv[1:]
+ if not args:
+ usage(0)
+
+ while 1:
+ try:
+ opt = args.pop(0)
+ except IndexError:
+ usage(1)
+ if opt in ('-h', '--help'):
+ usage(0)
+ elif opt in ('-f', '--fullnames'):
+ fullnames = 1
+ elif opt in ('-p', '--preserve'):
+ preserve = 1
+ elif opt in ('-r', '--regular'):
+ regular = 1
+ elif opt in ('-o', '--output'):
+ try:
+ outfile = args.pop(0)
+ except IndexError:
+ usage(1)
+ elif opt == '-n':
+ nomail = 1
+ if args and args[0] in WHYCHOICES.keys():
+ why = args.pop(0)
+ elif opt.startswith('--nomail'):
+ nomail = 1
+ i = opt.find('=')
+ if i >= 0:
+ why = opt[i+1:]
+ if why not in WHYCHOICES.keys():
+ usage(1, _('Bad --nomail option: %(why)s'))
+ elif opt == '-d':
+ digest = 1
+ if args and args[0] in ('mime', 'plain'):
+ kind = args.pop(0)
+ elif opt.startswith('--digest'):
+ digest = 1
+ i = opt.find('=')
+ if i >= 0:
+ kind = opt[i+1:]
+ if kind not in ('mime', 'plain'):
+ usage(1, _('Bad --digest option: %(kind)s'))
+ else:
+ # No more options left, push the last one back on the list
+ args.insert(0, opt)
+ break
+
+ if len(args) <> 1:
+ usage(1)
+
+ listname = args[0].lower().strip()
+
+ if regular is None and digest is None:
+ regular = digest = 1
+
+ if outfile:
+ try:
+ fp = open(outfile, 'w')
+ except IOError:
+ print >> sys.stderr, _('Could not open file for writing:'), outfile
+ sys.exit(1)
+ else:
+ fp = sys.stdout
+
+ try:
+ mlist = MailList.MailList(listname, lock=0)
+ except Errors.MMListError, e:
+ print >> sys.stderr, _('No such list: %(listname)s')
+ sys.exit(1)
+
+ # Get the lowercased member addresses
+ rmembers = mlist.getRegularMemberKeys()
+ dmembers = mlist.getDigestMemberKeys()
+
+ if preserve:
+ # Convert to the case preserved addresses
+ rmembers = mlist.getMemberCPAddresses(rmembers)
+ dmembers = mlist.getMemberCPAddresses(dmembers)
+
+ if regular:
+ rmembers.sort()
+ for addr in rmembers:
+ name = fullnames and mlist.getMemberName(addr)
+ # Filter out nomails
+ if nomail and not whymatches(mlist, addr, why):
+ continue
+ enc = sys.getdefaultencoding()
+ s = formataddr((name, addr)).encode(enc, 'replace')
+ print >> fp, s
+ if digest:
+ dmembers.sort()
+ for addr in dmembers:
+ name = fullnames and mlist.getMemberName(addr)
+ # Filter out nomails
+ if nomail and not whymatches(mlist, addr, why):
+ continue
+ # Filter out digest kinds
+ if mlist.getMemberOption(addr, mm_cfg.DisableMime):
+ # They're getting plain text digests
+ if kind == 'mime':
+ continue
+ else:
+ # They're getting MIME digests
+ if kind == 'plain':
+ continue
+ enc = sys.getdefaultencoding()
+ s = formataddr((name, addr)).encode(enc, 'replace')
+ print >> fp, s
+
+
+
+if __name__ == '__main__':
+ main()
diff --git a/bin/list_owners b/bin/list_owners
new file mode 100644
index 00000000..baacf27a
--- /dev/null
+++ b/bin/list_owners
@@ -0,0 +1,120 @@
+#! @PYTHON@
+#
+# Copyright (C) 2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""List the owners of a mailing list, or all mailing lists.
+
+Usage: %(PROGRAM)s [options] [listname ...]
+Options:
+
+ -w / --with-listnames
+ Group the owners by list names and include the list names in the
+ output. Otherwise, the owners will be sorted and uniquified based on
+ the email address.
+
+ -m / --moderators
+ Include the list moderators in the output.
+
+ -h / --help
+ Print this help message and exit.
+
+ listname
+ Print the owners of the specified lists. More than one can appear
+ after the options. If there are no listnames provided, the owners of
+ all the lists will be displayed.
+"""
+
+import sys
+import getopt
+
+import paths
+from Mailman import Utils
+from Mailman.MailList import MailList
+from Mailman.i18n import _
+
+PROGRAM = sys.argv[0]
+
+try:
+ True, False
+except NameError:
+ True = 1
+ False = 0
+
+
+
+def usage(code, msg=''):
+ if code:
+ fd = sys.stderr
+ else:
+ fd = sys.stdout
+ print >> fd, _(__doc__)
+ if msg:
+ print >> fd, msg
+ sys.exit(code)
+
+
+
+def main():
+ try:
+ opts, args = getopt.getopt(sys.argv[1:], 'wmh',
+ ['with-listnames', 'moderators', 'help'])
+ except getopt.error, msg:
+ usage(1, msg)
+
+ withnames = moderators = False
+ for opt, arg in opts:
+ if opt in ('-h', '--help'):
+ usage(0)
+ elif opt in ('-m', '--moderators'):
+ moderators = True
+ elif opt in ('-w', '--with-listnames'):
+ withnames = True
+
+ listnames = args or Utils.list_names()
+ bylist = {}
+
+ for listname in listnames:
+ mlist = MailList(listname, lock=0)
+ addrs = mlist.owner[:]
+ if moderators:
+ addrs.extend(mlist.moderator)
+ bylist[listname] = addrs
+
+ if withnames:
+ for listname in listnames:
+ unique = {}
+ for addr in bylist[listname]:
+ unique[addr] = 1
+ keys = unique.keys()
+ keys.sort()
+ print listname
+ for k in keys:
+ print '\t', k
+ else:
+ unique = {}
+ for listname in listnames:
+ for addr in bylist[listname]:
+ unique[addr] = 1
+ keys = unique.keys()
+ keys.sort()
+ for k in keys:
+ print k
+
+
+
+if __name__ == '__main__':
+ main()
diff --git a/bin/mailmanctl b/bin/mailmanctl
new file mode 100644
index 00000000..0292e1f3
--- /dev/null
+++ b/bin/mailmanctl
@@ -0,0 +1,524 @@
+#! @PYTHON@
+
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Primary start-up and shutdown script for Mailman's qrunner daemon.
+
+This script starts, stops, and restarts the main Mailman queue runners, making
+sure that the various long-running qrunners are still alive and kicking. It
+does this by forking and exec'ing the qrunners and waiting on their pids.
+When it detects a subprocess has exited, it may restart it.
+
+The qrunners respond to SIGINT, SIGTERM, and SIGHUP. SIGINT and SIGTERM both
+cause the qrunners to exit cleanly, but the master will only restart qrunners
+that have exited due to a SIGINT. SIGHUP causes the master and the qrunners
+to close their log files, and reopen then upon the next printed message.
+
+The master also responds to SIGINT, SIGTERM, and SIGHUP, which it simply
+passes on to the qrunners (note that the master will close and reopen its own
+log files on receipt of a SIGHUP). The master also leaves its own process id
+in the file data/master-qrunner.pid but you normally don't need to use this
+pid directly. The `start', `stop', `restart', and `reopen' commands handle
+everything for you.
+
+Usage: %(PROGRAM)s [options] [ start | stop | restart | reopen ]
+
+Options:
+
+ -n/--no-restart
+ Don't restart the qrunners when they exit because of an error or a
+ SIGINT. They are never restarted if they exit in response to a
+ SIGTERM. Use this only for debugging. Only useful if the `start'
+ command is given.
+
+ -u/--run-as-user
+ Normally, this script will refuse to run if the user id and group id
+ are not set to the `mailman' user and group (as defined when you
+ configured Mailman). If run as root, this script will change to this
+ user and group before the check is made.
+
+ This can be inconvenient for testing and debugging purposes, so the -u
+ flag means that the step that sets and checks the uid/gid is skipped,
+ and the program is run as the current user and group. This flag is
+ not recommended for normal production environments.
+
+ Note though, that if you run with -u and are not in the mailman group,
+ you may have permission problems, such as begin unable to delete a
+ list's archives through the web. Tough luck!
+
+ -s/--stale-lock-cleanup
+ If mailmanctl finds an existing master lock, it will normally exit
+ with an error message. With this option, mailmanctl will perform an
+ extra level of checking. If a process matching the host/pid described
+ in the lock file is running, mailmanctl will still exit, but if no
+ matching process is found, mailmanctl will remove the apparently stale
+ lock and make another attempt to claim the master lock.
+
+ -q/--quiet
+ Don't print status messages. Error messages are still printed to
+ standard error.
+
+ -h/--help
+ Print this message and exit.
+
+Commands:
+
+ start - Start the master daemon and all qrunners. Prints a message and
+ exits if the master daemon is already running.
+
+ stop - Stops the master daemon and all qrunners. After stopping, no
+ more messages will be processed.
+
+ restart - Restarts the qrunners, but not the master process. Use this
+ whenever you upgrade or update Mailman so that the qrunners will
+ use the newly installed code.
+
+ reopen - This will close all log files, causing them to be re-opened the
+ next time a message is written to them
+"""
+
+import sys
+import os
+import time
+import getopt
+import signal
+import errno
+import pwd
+import grp
+import socket
+
+import paths
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman import LockFile
+from Mailman.i18n import _
+from Mailman.Logging.Syslog import syslog
+from Mailman.Logging.Utils import LogStdErr
+
+PROGRAM = sys.argv[0]
+COMMASPACE = ', '
+DOT = '.'
+
+# Locking contantsa
+LOCKFILE = os.path.join(mm_cfg.LOCK_DIR, 'master-qrunner')
+# Since we wake up once per day and refresh the lock, the LOCK_LIFETIME
+# needn't be (much) longer than SNOOZE. We pad it 6 hours just to be safe.
+LOCK_LIFETIME = mm_cfg.days(1) + mm_cfg.hours(6)
+SNOOZE = mm_cfg.days(1)
+MAX_RESTARTS = 10
+
+LogStdErr('error', 'mailmanctl', manual_reprime=0)
+
+
+
+def usage(code, msg=''):
+ if code:
+ fd = sys.stderr
+ else:
+ fd = sys.stdout
+ print >> fd, _(__doc__)
+ if msg:
+ print >> fd, msg
+ sys.exit(code)
+
+
+
+def kill_watcher(sig):
+ try:
+ fp = open(mm_cfg.PIDFILE)
+ pidstr = fp.read()
+ fp.close()
+ pid = int(pidstr.strip())
+ except (IOError, ValueError), e:
+ # For i18n convenience
+ pidfile = mm_cfg.PIDFILE
+ print >> sys.stderr, _('PID unreadable in: %(pidfile)s')
+ print >> sys.stderr, e
+ print >> sys.stderr, _('Is qrunner even running?')
+ return
+ try:
+ os.kill(pid, sig)
+ except OSError, e:
+ if e.errno <> errno.ESRCH: raise
+ print >> sys.stderr, _('No child with pid: %(pid)s')
+ print >> sys.stderr, e
+ print >> sys.stderr, _('Stale pid file removed.')
+ os.unlink(mm_cfg.PIDFILE)
+
+
+
+def get_lock_data():
+ # Return the hostname, pid, and tempfile
+ fp = open(LOCKFILE)
+ filename = os.path.split(fp.read().strip())[1]
+ fp.close()
+ parts = filename.split('.')
+ hostname = DOT.join(parts[1:-1])
+ pid = int(parts[-1])
+ return hostname, int(pid), filename
+
+
+def qrunner_state():
+ # 1 if proc exists on host (but is it qrunner? ;)
+ # 0 if host matches but no proc
+ # hostname if hostname doesn't match
+ hostname, pid, tempfile = get_lock_data()
+ if hostname <> socket.gethostname():
+ return hostname
+ # Find out if the process exists by calling kill with a signal 0.
+ try:
+ os.kill(pid, 0)
+ except OSError, e:
+ if e.errno <> errno.ESRCH: raise
+ return 0
+ return 1
+
+
+def acquire_lock_1(force):
+ # Be sure we can acquire the master qrunner lock. If not, it means some
+ # other master qrunner daemon is already going.
+ lock = LockFile.LockFile(LOCKFILE, LOCK_LIFETIME)
+ try:
+ lock.lock(0.1)
+ return lock
+ except LockFile.TimeOutError:
+ if not force:
+ raise
+ # Force removal of lock first
+ lock._disown()
+ hostname, pid, tempfile = get_lock_data()
+ os.unlink(LOCKFILE)
+ os.unlink(os.path.join(mm_cfg.LOCK_DIR, tempfile))
+ return acquire_lock_1(force=0)
+
+
+def acquire_lock(force):
+ try:
+ lock = acquire_lock_1(force)
+ return lock
+ except LockFile.TimeOutError:
+ status = qrunner_state()
+ if status == 1:
+ # host matches and proc exists
+ print >> sys.stderr, _("""\
+The master qrunner lock could not be acquired because it appears as if another
+master qrunner is already running.
+""")
+ elif status == 0:
+ # host matches but no proc
+ print >> sys.stderr, _("""\
+The master qrunner lock could not be acquired. It appears as though there is
+a stale master qrunner lock. Try re-running mailmanctl with the -s flag.
+""")
+ else:
+ # host doesn't even match
+ print >> sys.stderr, _("""\
+The master qrunner lock could not be acquired, because it appears as if some
+process on some other host may have acquired it. We can't test for stale
+locks across host boundaries, so you'll have to do this manually. Or, if you
+know the lock is stale, re-run mailmanctl with the -s flag.
+
+Lock file: %(LOCKFILE)s
+Lock host: %(status)s
+
+Exiting.""")
+
+
+
+def start_runner(qrname, slice, count):
+ pid = os.fork()
+ if pid:
+ # parent
+ return pid
+ # child
+ #
+ # Craft the command line arguments for the exec() call.
+ rswitch = '--runner=%s:%d:%d' % (qrname, slice, count)
+ # BAW: should argv[0] be `python'?
+ exe = os.path.join(mm_cfg.BIN_DIR, 'qrunner')
+ os.execl(mm_cfg.PYTHON, 'qrunner', exe, rswitch, '-s')
+ # Should never get here
+ raise RuntimeError, 'os.execl() failed'
+
+
+def start_all_runners():
+ kids = {}
+ for qrname, count in mm_cfg.QRUNNERS:
+ for slice in range(count):
+ # queue runner name, slice, numslices, restart count
+ info = (qrname, slice, count, 0)
+ pid = start_runner(qrname, slice, count)
+ kids[pid] = info
+ return kids
+
+
+
+def check_privs():
+ # If we're running as root (uid == 0), coerce the uid and gid to that
+ # which Mailman was configured for, and refuse to run if we didn't coerce
+ # the uid/gid.
+ gid = grp.getgrnam(mm_cfg.MAILMAN_GROUP)[2]
+ uid = pwd.getpwnam(mm_cfg.MAILMAN_USER)[2]
+ myuid = os.getuid()
+ if myuid == 0:
+ os.setgid(gid)
+ os.setuid(uid)
+ elif myuid <> uid:
+ name = mm_cfg.MAILMAN_USER
+ usage(1, _(
+ 'Run this program as root or as the %(name)s user, or use -u.'))
+
+
+
+def main():
+ global quiet
+ try:
+ opts, args = getopt.getopt(sys.argv[1:], 'hnusq',
+ ['help', 'no-start', 'run-as-user',
+ 'stale-lock-cleanup', 'quiet'])
+ except getopt.error, msg:
+ usage(1, msg)
+
+ restart = 1
+ checkprivs = 1
+ force = 0
+ quiet = 0
+ for opt, arg in opts:
+ if opt in ('-h', '--help'):
+ usage(0)
+ elif opt in ('-n', '--no-restart'):
+ restart = 0
+ elif opt in ('-u', '--run-as-user'):
+ checkprivs = 0
+ elif opt in ('-s', '--stale-lock-cleanup'):
+ force = 1
+ elif opt in ('-q', '--quiet'):
+ quiet = 1
+
+ if len(args) < 1:
+ usage(1, _('No command given.'))
+ elif len(args) > 1:
+ command = COMMASPACE.join(args)
+ usage(1, _('Bad command: %(command)s'))
+
+ if checkprivs:
+ check_privs()
+ else:
+ print _('Warning! You may encounter permission problems.')
+
+ # Handle the commands
+ command = args[0].lower()
+ if command == 'stop':
+ # Sent the master qrunner process a SIGINT, which is equivalent to
+ # giving cron/qrunner a ctrl-c or KeyboardInterrupt. This will
+ # effectively shut everything down.
+ if not quiet:
+ print _("Shutting down Mailman's master qrunner")
+ kill_watcher(signal.SIGTERM)
+ elif command == 'restart':
+ # Sent the master qrunner process a SIGHUP. This will cause the
+ # master qrunner to kill and restart all the worker qrunners, and to
+ # close and re-open its log files.
+ if not quiet:
+ print _("Restarting Mailman's master qrunner")
+ kill_watcher(signal.SIGINT)
+ elif command == 'reopen':
+ if not quiet:
+ print _('Re-opening all log files')
+ kill_watcher(signal.SIGHUP)
+ elif command == 'start':
+ # Here's the scoop on the processes we're about to create. We'll need
+ # one for each qrunner, and one for a master child process watcher /
+ # lock refresher process.
+ #
+ # The child watcher process simply waits on the pids of the children
+ # qrunners. Unless explicitly disabled by a mailmanctl switch (or the
+ # children are killed with SIGTERM instead of SIGINT), the watcher
+ # will automatically restart any child process that exits. This
+ # allows us to be more robust, and also to implement restart by simply
+ # SIGINT'ing the qrunner children, and letting the watcher restart
+ # them.
+ #
+ # Under normal operation, we have a child per queue. This lets us get
+ # the most out of the available resources, since a qrunner with no
+ # files in its queue directory is pretty cheap, but having a separate
+ # runner process per queue allows for a very responsive system. Some
+ # people want a more traditional (i.e. MM2.0.x) cron-invoked qrunner.
+ # No problem, but using mailmanctl isn't the answer. So while
+ # mailmanctl hard codes some things, others, such as the number of
+ # qrunners per queue, is configurable in mm_cfg.py.
+ #
+ # First, acquire the master mailmanctl lock
+ lock = acquire_lock(force)
+ if not lock:
+ return
+ # Daemon process startup according to Stevens, Advanced Programming in
+ # the UNIX Environment, Chapter 13.
+ pid = os.fork()
+ if pid:
+ # parent
+ if not quiet:
+ print _("Starting Mailman's master qrunner.")
+ # Give up the lock "ownership". This just means the foreground
+ # process won't close/unlock the lock when it finalizes this lock
+ # instance. We'll let the mater watcher subproc own the lock.
+ lock._transfer_to(pid)
+ return
+ # child
+ lock._take_possession()
+ # First, save our pid in a file for "mailmanctl stop" rendezvous. We
+ # want the perms on the .pid file to be rw-rw----
+ omask = os.umask(6)
+ try:
+ fp = open(mm_cfg.PIDFILE, 'w')
+ print >> fp, os.getpid()
+ fp.close()
+ finally:
+ os.umask(omask)
+ # Create a new session and become the session leader, but since we
+ # won't be opening any terminal devices, don't do the ultra-paranoid
+ # suggestion of doing a second fork after the setsid() call.
+ os.setsid()
+ # Instead of cd'ing to root, cd to the Mailman installation home
+ os.chdir(mm_cfg.PREFIX)
+ # Clear our file mode creation umask
+ os.umask(0)
+ # I don't think we have any unneeded file descriptors.
+ #
+ # Now start all the qrunners. This returns a dictionary where the
+ # keys are qrunner pids and the values are tuples of the following
+ # form: (qrname, slice, count). This does its own fork and exec, and
+ # sets up its own signal handlers.
+ kids = start_all_runners()
+ # Set up a SIGALRM handler to refresh the lock once per day. The lock
+ # lifetime is 1day+6hours so this should be plenty.
+ def sigalrm_handler(signum, frame, lock=lock):
+ lock.refresh()
+ signal.alarm(mm_cfg.days(1))
+ signal.signal(signal.SIGALRM, sigalrm_handler)
+ signal.alarm(mm_cfg.days(1))
+ # Set up a SIGHUP handler so that if we get one, we'll pass it along
+ # to all the qrunner children. This will tell them to close and
+ # reopen their log files
+ def sighup_handler(signum, frame, kids=kids):
+ # Closing our syslog will cause it to be re-opened at the next log
+ # print output.
+ syslog.close()
+ for pid in kids.keys():
+ os.kill(pid, signal.SIGHUP)
+ # And just to tweak things...
+ syslog('qrunner',
+ 'Master watcher caught SIGHUP. Re-opening log files.')
+ signal.signal(signal.SIGHUP, sighup_handler)
+ # We also need to install a SIGTERM handler because that's what init
+ # will kill this process with when changing run levels.
+ def sigterm_handler(signum, frame, kids=kids):
+ for pid in kids.keys():
+ try:
+ os.kill(pid, signal.SIGTERM)
+ except OSError, e:
+ if e.errno <> errno.ESRCH: raise
+ syslog('qrunner', 'Master watcher caught SIGTERM. Exiting.')
+ signal.signal(signal.SIGTERM, sigterm_handler)
+ # Finally, we need a SIGINT handler which will cause the sub-qrunners
+ # to exit, but the master will restart SIGINT'd sub-processes unless
+ # the -n flag was given.
+ def sigint_handler(signum, frame, kids=kids):
+ for pid in kids.keys():
+ os.kill(pid, signal.SIGINT)
+ syslog('qrunner', 'Master watcher caught SIGINT. Restarting.')
+ signal.signal(signal.SIGINT, sigint_handler)
+ # Now we're ready to simply do our wait/restart loop. This is the
+ # master qrunner watcher.
+ try:
+ while 1:
+ try:
+ pid, status = os.wait()
+ except OSError, e:
+ # No children? We're done
+ if e.errno == errno.ECHILD:
+ break
+ # If the system call got interrupted, just restart it.
+ elif e.errno <> errno.EINTR:
+ raise
+ continue
+ killsig = exitstatus = None
+ if os.WIFSIGNALED(status):
+ killsig = os.WTERMSIG(status)
+ if os.WIFEXITED(status):
+ exitstatus = os.WEXITSTATUS(status)
+ # We'll restart the process unless we were given the
+ # "no-restart" switch, or if the process was SIGTERM'd or
+ # exitted with a SIGTERM exit status. This lets us better
+ # handle runaway restarts (say, if the subproc had a syntax
+ # error!)
+ restarting = ''
+ if restart:
+ if (exitstatus == None and killsig <> signal.SIGTERM) or \
+ (killsig == None and exitstatus <> signal.SIGTERM):
+ # Then
+ restarting = '[restarting]'
+ qrname, slice, count, restarts = kids[pid]
+ del kids[pid]
+ syslog('qrunner', """\
+Master qrunner detected subprocess exit
+(pid: %d, sig: %s, sts: %s, class: %s, slice: %d/%d) %s""",
+ pid, killsig, exitstatus, qrname,
+ slice+1, count, restarting)
+ # See if we've reached the maximum number of allowable restarts
+ if exitstatus <> signal.SIGINT:
+ restarts += 1
+ if restarts > MAX_RESTARTS:
+ syslog('qrunner', """\
+Qrunner %s reached maximum restart limit of %d, not restarting.""",
+ qrname, MAX_RESTARTS)
+ restarting = ''
+ # Now perhaps restart the process unless it exited with a
+ # SIGTERM or we aren't restarting.
+ if restarting:
+ newpid = start_runner(qrname, slice, count)
+ kids[newpid] = (qrname, slice, count, restarts)
+ finally:
+ # Should we leave the main loop for any reason, we want to be sure
+ # all of our children are exited cleanly. Send SIGTERMs to all
+ # the child processes and wait for them all to exit.
+ for pid in kids.keys():
+ try:
+ os.kill(pid, signal.SIGTERM)
+ except OSError, e:
+ if e.errno == errno.ESRCH:
+ # The child has already exited
+ syslog('qrunner', 'ESRCH on pid: %d', pid)
+ del kids[pid]
+ # Wait for all the children to go away
+ while 1:
+ try:
+ pid, status = os.wait()
+ except OSError, e:
+ if e.errno == errno.ECHILD:
+ break
+ elif e.errno <> errno.EINTR:
+ raise
+ continue
+ # Finally, give up the lock
+ lock.unlock(unconditionally=1)
+ os._exit(0)
+
+
+
+if __name__ == '__main__':
+ main()
diff --git a/bin/mmsitepass b/bin/mmsitepass
new file mode 100755
index 00000000..8ae8bc72
--- /dev/null
+++ b/bin/mmsitepass
@@ -0,0 +1,105 @@
+#! @PYTHON@
+#
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Set the site password, prompting from the terminal.
+
+The site password can be used in most if not all places that the list
+administrator's password can be used, which in turn can be used in most places
+that a list users password can be used.
+
+Usage: %(PROGRAM)s [options] [password]
+
+Options:
+
+ -c/--listcreator
+ Set the list creator password instead of the site password. The list
+ creator is authorized to create and remove lists, but does not have
+ the total power of the site administrator.
+
+ -h/--help
+ Print this help message and exit.
+
+If password is not given on the command line, it will be prompted for.
+"""
+
+import sys
+import getpass
+import getopt
+
+import paths
+from Mailman import Utils
+from Mailman.i18n import _
+
+PROGRAM = sys.argv[0]
+
+
+
+def usage(code, msg=''):
+ if code:
+ fd = sys.stderr
+ else:
+ fd = sys.stdout
+ print >> fd, _(__doc__)
+ if msg:
+ print >> fd, msg
+ sys.exit(code)
+
+
+
+def main():
+ try:
+ opts, args = getopt.getopt(sys.argv[1:], 'ch',
+ ['listcreator', 'help'])
+ except getopt.error, msg:
+ usage(1, msg)
+
+ # Defaults
+ siteadmin = 1
+ pwdesc = _('site')
+
+ for opt, arg in opts:
+ if opt in ('-h', '--help'):
+ usage(0)
+ elif opt in ('-c', '--listcreator'):
+ siteadmin = 0
+ pwdesc = _('list creator')
+
+ if len(args) == 1:
+ pw1 = args[0]
+ else:
+ try:
+ pw1 = getpass.getpass(_('New %(pwdesc)s password: '))
+ pw2 = getpass.getpass(_('Again to confirm password: '))
+ if pw1 <> pw2:
+ print _('Passwords do not match; no changes made.')
+ sys.exit(1)
+ except KeyboardInterrupt:
+ print _('Interrupted...')
+ sys.exit(0)
+ # Set the site password by writing it to a local file. Make sure the
+ # permissions don't allow other+read.
+ Utils.set_global_password(pw1, siteadmin)
+ if Utils.check_global_password(pw1, siteadmin):
+ print _('Password changed.')
+ else:
+ print _('Password change failed.')
+
+
+
+if __name__ == '__main__':
+ main()
diff --git a/bin/newlist b/bin/newlist
new file mode 100755
index 00000000..503783d9
--- /dev/null
+++ b/bin/newlist
@@ -0,0 +1,219 @@
+#! @PYTHON@
+#
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Create a new, unpopulated mailing list.
+
+Usage: %(PROGRAM)s [options] [listname [listadmin-addr [admin-password]]]
+
+Options:
+
+ -l language
+ --language language
+ Make the list's preferred language `language', which must be a two
+ letter language code.
+
+ -q/--quiet
+ Normally the administrator is notified by email (after a prompt) that
+ their list has been created. This option suppresses the prompt and
+ notification.
+
+ -h/--help
+ Print this help text and exit.
+
+You can specify as many of the arguments as you want on the command line:
+you will be prompted for the missing ones.
+
+Every Mailman list has two parameters which define the default host name for
+outgoing email, and the default URL for all web interfaces. When you
+configured Mailman, certain defaults were calculated, but if you are running
+multiple virtual Mailman sites, then the defaults may not be appropriate for
+the list you are creating.
+
+You can specify the domain to create your new list in by spelling the listname
+like so:
+
+ mylist@www.mydom.ain
+
+where `www.mydom.ain' should be the base hostname for the URL to this virtual
+hosts's lists. E.g. with is setting people will view the general list
+overviews at http://www.mydom.ain/mailman/listinfo. Also, www.mydom.ain
+should be a key in the VIRTUAL_HOSTS mapping in mm_cfg.py/Defaults.py. It
+will be looked up to give the email hostname. If this can't be found, then
+www.mydom.ain will be used for both the web interface and the email
+interface.
+
+If you spell the list name as just `mylist', then the email hostname will be
+taken from DEFAULT_EMAIL_HOST and the url will be taken from DEFAULT_URL (as
+defined in your Defaults.py file or overridden by settings in mm_cfg.py).
+
+Note that listnames are forced to lowercase.
+"""
+
+import sys
+import os
+import getpass
+import getopt
+import sha
+
+import paths
+from Mailman import mm_cfg
+from Mailman import MailList
+from Mailman import Utils
+from Mailman import Errors
+from Mailman import Message
+from Mailman import i18n
+
+_ = i18n._
+
+PROGRAM = sys.argv[0]
+
+
+
+def usage(code, msg=''):
+ if code:
+ fd = sys.stderr
+ else:
+ fd = sys.stdout
+ print >> fd, _(__doc__)
+ if msg:
+ print >> fd, msg
+ sys.exit(code)
+
+
+
+def main():
+ try:
+ opts, args = getopt.getopt(sys.argv[1:], 'hql:',
+ ['help', 'quiet', 'language='])
+ except getopt.error, msg:
+ usage(1, msg)
+
+ lang = mm_cfg.DEFAULT_SERVER_LANGUAGE
+ quiet = 0
+ for opt, arg in opts:
+ if opt in ('-h', '--help'):
+ usage(0)
+ if opt in ('-q', '--quiet'):
+ quiet = 1
+ if opt in ('-l', '--language'):
+ lang = arg
+
+ # Is the language known?
+ if lang not in mm_cfg.LC_DESCRIPTIONS.keys():
+ usage(1, _('Unknown language: %(lang)s'))
+
+ if len(args) > 0:
+ listname = args[0]
+ else:
+ listname = raw_input(_('Enter the name of the list: '))
+ listname = listname.lower()
+
+ host_name = None
+ web_page_url = None
+ if '@' in listname:
+ listname, domain = listname.split('@', 1)
+ host_name = mm_cfg.VIRTUAL_HOSTS.get(domain, domain)
+ web_page_url = mm_cfg.DEFAULT_URL_PATTERN % domain
+
+ if Utils.list_exists(listname):
+ usage(1, _('List already exists: %(listname)s'))
+
+ if len(args) > 1:
+ owner_mail = args[1]
+ else:
+ owner_mail = raw_input(
+ _('Enter the email of the person running the list: '))
+
+ if len(args) > 2:
+ listpasswd = args[2]
+ else:
+ listpasswd = getpass.getpass(_('Initial %(listname)s password: '))
+ # List passwords cannot be empty
+ listpasswd = listpasswd.strip()
+ if not listpasswd:
+ usage(1, _('The list password cannot be empty'))
+
+ mlist = MailList.MailList()
+ try:
+ pw = sha.new(listpasswd).hexdigest()
+ # Guarantee that all newly created files have the proper permission.
+ # proper group ownership should be assured by the autoconf script
+ # enforcing that all directories have the group sticky bit set
+ oldmask = os.umask(002)
+ try:
+ try:
+ mlist.Create(listname, owner_mail, pw)
+ finally:
+ os.umask(oldmask)
+ except Errors.BadListNameError, s:
+ usage(1, _('Illegal list name: %(s)s'))
+ except Errors.MMBadEmailError, s:
+ usage(1, _('Bad owner email address: %(s)s'))
+ except Errors.MMListAlreadyExistsError:
+ usage(1, _('List already exists: %(listname)s'))
+
+ # Assign domain-specific attributes
+ if host_name:
+ mlist.host_name = host_name
+ mlist.web_page_url = web_page_url
+
+ # And assign the preferred language
+ mlist.preferred_language = lang
+
+ mlist.Save()
+ finally:
+ mlist.Unlock()
+
+ # Now do the MTA-specific list creation tasks
+ if mm_cfg.MTA:
+ modname = 'Mailman.MTA.' + mm_cfg.MTA
+ __import__(modname)
+ sys.modules[modname].create(mlist)
+
+ # And send the notice to the list owner
+ if not quiet:
+ print _('Hit enter to notify %(listname)s owner...'),
+ sys.stdin.readline()
+ siteadmin = Utils.get_site_email(mlist.host_name, 'admin')
+ text = Utils.maketext(
+ 'newlist.txt',
+ {'listname' : listname,
+ 'password' : listpasswd,
+ 'admin_url' : mlist.GetScriptURL('admin', absolute=1),
+ 'listinfo_url': mlist.GetScriptURL('listinfo', absolute=1),
+ 'requestaddr' : mlist.GetRequestEmail(),
+ 'siteowner' : siteadmin,
+ }, mlist=mlist)
+ # Set the I18N language to the list's preferred language so the header
+ # will match the template language. Stashing and restoring the old
+ # translation context is just (healthy? :) paranoia.
+ otrans = i18n.get_translation()
+ i18n.set_language(mlist.preferred_language)
+ try:
+ msg = Message.UserNotification(
+ owner_mail, siteadmin,
+ _('Your new mailing list: %(listname)s'),
+ text, mlist.preferred_language)
+ msg.send(mlist)
+ finally:
+ i18n.set_translation(otrans)
+
+
+
+if __name__ == '__main__':
+ main()
diff --git a/bin/pygettext.py b/bin/pygettext.py
new file mode 100755
index 00000000..d6e1b4f7
--- /dev/null
+++ b/bin/pygettext.py
@@ -0,0 +1,545 @@
+#! @PYTHON@
+# Originally written by Barry Warsaw <barry@zope.com>
+#
+# Minimally patched to make it even more xgettext compatible
+# by Peter Funk <pf@artcom-gmbh.de>
+
+"""pygettext -- Python equivalent of xgettext(1)
+
+Many systems (Solaris, Linux, Gnu) provide extensive tools that ease the
+internationalization of C programs. Most of these tools are independent of
+the programming language and can be used from within Python programs. Martin
+von Loewis' work[1] helps considerably in this regard.
+
+There's one problem though; xgettext is the program that scans source code
+looking for message strings, but it groks only C (or C++). Python introduces
+a few wrinkles, such as dual quoting characters, triple quoted strings, and
+raw strings. xgettext understands none of this.
+
+Enter pygettext, which uses Python's standard tokenize module to scan Python
+source code, generating .pot files identical to what GNU xgettext[2] generates
+for C and C++ code. From there, the standard GNU tools can be used.
+
+A word about marking Python strings as candidates for translation. GNU
+xgettext recognizes the following keywords: gettext, dgettext, dcgettext, and
+gettext_noop. But those can be a lot of text to include all over your code.
+C and C++ have a trick: they use the C preprocessor. Most internationalized C
+source includes a #define for gettext() to _() so that what has to be written
+in the source is much less. Thus these are both translatable strings:
+
+ gettext("Translatable String")
+ _("Translatable String")
+
+Python of course has no preprocessor so this doesn't work so well. Thus,
+pygettext searches only for _() by default, but see the -k/--keyword flag
+below for how to augment this.
+
+ [1] http://www.python.org/workshops/1997-10/proceedings/loewis.html
+ [2] http://www.gnu.org/software/gettext/gettext.html
+
+NOTE: pygettext attempts to be option and feature compatible with GNU xgettext
+where ever possible. However some options are still missing or are not fully
+implemented. Also, xgettext's use of command line switches with option
+arguments is broken, and in these cases, pygettext just defines additional
+switches.
+
+Usage: pygettext [options] inputfile ...
+
+Options:
+
+ -a
+ --extract-all
+ Extract all strings.
+
+ -d name
+ --default-domain=name
+ Rename the default output file from messages.pot to name.pot.
+
+ -E
+ --escape
+ Replace non-ASCII characters with octal escape sequences.
+
+ -D
+ --docstrings
+ Extract module, class, method, and function docstrings. These do not
+ need to be wrapped in _() markers, and in fact cannot be for Python to
+ consider them docstrings. (See also the -X option).
+
+ -h
+ --help
+ Print this help message and exit.
+
+ -k word
+ --keyword=word
+ Keywords to look for in addition to the default set, which are:
+ %(DEFAULTKEYWORDS)s
+
+ You can have multiple -k flags on the command line.
+
+ -K
+ --no-default-keywords
+ Disable the default set of keywords (see above). Any keywords
+ explicitly added with the -k/--keyword option are still recognized.
+
+ --no-location
+ Do not write filename/lineno location comments.
+
+ -n
+ --add-location
+ Write filename/lineno location comments indicating where each
+ extracted string is found in the source. These lines appear before
+ each msgid. The style of comments is controlled by the -S/--style
+ option. This is the default.
+
+ -o filename
+ --output=filename
+ Rename the default output file from messages.pot to filename. If
+ filename is `-' then the output is sent to standard out.
+
+ -p dir
+ --output-dir=dir
+ Output files will be placed in directory dir.
+
+ -S stylename
+ --style stylename
+ Specify which style to use for location comments. Two styles are
+ supported:
+
+ Solaris # File: filename, line: line-number
+ GNU #: filename:line
+
+ The style name is case insensitive. GNU style is the default.
+
+ -v
+ --verbose
+ Print the names of the files being processed.
+
+ -V
+ --version
+ Print the version of pygettext and exit.
+
+ -w columns
+ --width=columns
+ Set width of output to columns.
+
+ -x filename
+ --exclude-file=filename
+ Specify a file that contains a list of strings that are not be
+ extracted from the input files. Each string to be excluded must
+ appear on a line by itself in the file.
+
+ -X filename
+ --no-docstrings=filename
+ Specify a file that contains a list of files (one per line) that
+ should not have their docstrings extracted. This is only useful in
+ conjunction with the -D option above.
+
+If `inputfile' is -, standard input is read.
+"""
+
+import os
+import sys
+import time
+import getopt
+import tokenize
+import operator
+
+# for selftesting
+try:
+ import fintl
+ _ = fintl.gettext
+except ImportError:
+ def _(s): return s
+
+__version__ = '1.4'
+
+default_keywords = ['_']
+DEFAULTKEYWORDS = ', '.join(default_keywords)
+
+EMPTYSTRING = ''
+
+
+
+# The normal pot-file header. msgmerge and Emacs's po-mode work better if it's
+# there.
+pot_header = _('''\
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR ORGANIZATION
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\\n"
+"POT-Creation-Date: %(time)s\\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\\n"
+"Language-Team: LANGUAGE <LL@li.org>\\n"
+"MIME-Version: 1.0\\n"
+"Content-Type: text/plain; charset=CHARSET\\n"
+"Content-Transfer-Encoding: ENCODING\\n"
+"Generated-By: pygettext.py %(version)s\\n"
+
+''')
+
+
+def usage(code, msg=''):
+ if code:
+ fd = sys.stderr
+ else:
+ fd = sys.stdout
+ print >> fd, _(__doc__) % globals()
+ if msg:
+ print >> fd, msg
+ sys.exit(code)
+
+
+
+escapes = []
+
+def make_escapes(pass_iso8859):
+ global escapes
+ if pass_iso8859:
+ # Allow iso-8859 characters to pass through so that e.g. 'msgid
+ # "Höhe"' would result not result in 'msgid "H\366he"'. Otherwise we
+ # escape any character outside the 32..126 range.
+ mod = 128
+ else:
+ mod = 256
+ for i in range(256):
+ if 32 <= (i % mod) <= 126:
+ escapes.append(chr(i))
+ else:
+ escapes.append("\\%03o" % i)
+ escapes[ord('\\')] = '\\\\'
+ escapes[ord('\t')] = '\\t'
+ escapes[ord('\r')] = '\\r'
+ escapes[ord('\n')] = '\\n'
+ escapes[ord('\"')] = '\\"'
+
+
+def escape(s):
+ global escapes
+ s = list(s)
+ for i in range(len(s)):
+ s[i] = escapes[ord(s[i])]
+ return EMPTYSTRING.join(s)
+
+
+def safe_eval(s):
+ # unwrap quotes, safely
+ return eval(s, {'__builtins__':{}}, {})
+
+
+def normalize(s):
+ # This converts the various Python string types into a format that is
+ # appropriate for .po files, namely much closer to C style.
+ lines = s.split('\n')
+ if len(lines) == 1:
+ s = '"' + escape(s) + '"'
+ else:
+ if not lines[-1]:
+ del lines[-1]
+ lines[-1] = lines[-1] + '\n'
+ for i in range(len(lines)):
+ lines[i] = escape(lines[i])
+ lineterm = '\\n"\n"'
+ s = '""\n"' + lineterm.join(lines) + '"'
+ return s
+
+
+
+class TokenEater:
+ def __init__(self, options):
+ self.__options = options
+ self.__messages = {}
+ self.__state = self.__waiting
+ self.__data = []
+ self.__lineno = -1
+ self.__freshmodule = 1
+ self.__curfile = None
+
+ def __call__(self, ttype, tstring, stup, etup, line):
+ # dispatch
+## import token
+## print >> sys.stderr, 'ttype:', token.tok_name[ttype], \
+## 'tstring:', tstring
+ self.__state(ttype, tstring, stup[0])
+
+ def __waiting(self, ttype, tstring, lineno):
+ opts = self.__options
+ # Do docstring extractions, if enabled
+ if opts.docstrings and not opts.nodocstrings.get(self.__curfile):
+ # module docstring?
+ if self.__freshmodule:
+ if ttype == tokenize.STRING:
+ self.__addentry(safe_eval(tstring), lineno, isdocstring=1)
+ self.__freshmodule = 0
+ elif ttype not in (tokenize.COMMENT, tokenize.NL):
+ self.__freshmodule = 0
+ return
+ # class docstring?
+ if ttype == tokenize.NAME and tstring in ('class', 'def'):
+ self.__state = self.__suiteseen
+ return
+ if ttype == tokenize.NAME and tstring in opts.keywords:
+ self.__state = self.__keywordseen
+
+ def __suiteseen(self, ttype, tstring, lineno):
+ # ignore anything until we see the colon
+ if ttype == tokenize.OP and tstring == ':':
+ self.__state = self.__suitedocstring
+
+ def __suitedocstring(self, ttype, tstring, lineno):
+ # ignore any intervening noise
+ if ttype == tokenize.STRING:
+ self.__addentry(safe_eval(tstring), lineno, isdocstring=1)
+ self.__state = self.__waiting
+ elif ttype not in (tokenize.NEWLINE, tokenize.INDENT,
+ tokenize.COMMENT):
+ # there was no class docstring
+ self.__state = self.__waiting
+
+ def __keywordseen(self, ttype, tstring, lineno):
+ if ttype == tokenize.OP and tstring == '(':
+ self.__data = []
+ self.__lineno = lineno
+ self.__state = self.__openseen
+ else:
+ self.__state = self.__waiting
+
+ def __openseen(self, ttype, tstring, lineno):
+ if ttype == tokenize.OP and tstring == ')':
+ # We've seen the last of the translatable strings. Record the
+ # line number of the first line of the strings and update the list
+ # of messages seen. Reset state for the next batch. If there
+ # were no strings inside _(), then just ignore this entry.
+ if self.__data:
+ self.__addentry(EMPTYSTRING.join(self.__data))
+ self.__state = self.__waiting
+ elif ttype == tokenize.STRING:
+ self.__data.append(safe_eval(tstring))
+ # TBD: should we warn if we seen anything else?
+
+ def __addentry(self, msg, lineno=None, isdocstring=0):
+ if lineno is None:
+ lineno = self.__lineno
+ if not msg in self.__options.toexclude:
+ entry = (self.__curfile, lineno)
+ self.__messages.setdefault(msg, {})[entry] = isdocstring
+
+ def set_filename(self, filename):
+ self.__curfile = filename
+ self.__freshmodule = 1
+
+ def write(self, fp):
+ options = self.__options
+ timestamp = time.ctime(time.time())
+ # The time stamp in the header doesn't have the same format as that
+ # generated by xgettext...
+ print >> fp, pot_header % {'time': timestamp, 'version': __version__}
+ # Sort the entries. First sort each particular entry's keys, then
+ # sort all the entries by their first item.
+ reverse = {}
+ for k, v in self.__messages.items():
+ keys = v.keys()
+ keys.sort()
+ reverse.setdefault(tuple(keys), []).append((k, v))
+ rkeys = reverse.keys()
+ rkeys.sort()
+ for rkey in rkeys:
+ rentries = reverse[rkey]
+ rentries.sort()
+ for k, v in rentries:
+ isdocstring = 0
+ # If the entry was gleaned out of a docstring, then add a
+ # comment stating so. This is to aid translators who may wish
+ # to skip translating some unimportant docstrings.
+ if reduce(operator.__add__, v.values()):
+ isdocstring = 1
+ # k is the message string, v is a dictionary-set of (filename,
+ # lineno) tuples. We want to sort the entries in v first by
+ # file name and then by line number.
+ v = v.keys()
+ v.sort()
+ if not options.writelocations:
+ pass
+ # location comments are different b/w Solaris and GNU:
+ elif options.locationstyle == options.SOLARIS:
+ for filename, lineno in v:
+ d = {'filename': filename, 'lineno': lineno}
+ print >>fp, _(
+ '# File: %(filename)s, line: %(lineno)d') % d
+ elif options.locationstyle == options.GNU:
+ # fit as many locations on one line, as long as the
+ # resulting line length doesn't exceeds 'options.width'
+ locline = '#:'
+ for filename, lineno in v:
+ d = {'filename': filename, 'lineno': lineno}
+ s = _(' %(filename)s:%(lineno)d') % d
+ if len(locline) + len(s) <= options.width:
+ locline = locline + s
+ else:
+ print >> fp, locline
+ locline = "#:" + s
+ if len(locline) > 2:
+ print >> fp, locline
+ if isdocstring:
+ print >> fp, '#, docstring'
+ print >> fp, 'msgid', normalize(k)
+ print >> fp, 'msgstr ""\n'
+
+
+
+def main():
+ global default_keywords
+ try:
+ opts, args = getopt.getopt(
+ sys.argv[1:],
+ 'ad:DEhk:Kno:p:S:Vvw:x:X:',
+ ['extract-all', 'default-domain=', 'escape', 'help',
+ 'keyword=', 'no-default-keywords',
+ 'add-location', 'no-location', 'output=', 'output-dir=',
+ 'style=', 'verbose', 'version', 'width=', 'exclude-file=',
+ 'docstrings', 'no-docstrings',
+ ])
+ except getopt.error, msg:
+ usage(1, msg)
+
+ # for holding option values
+ class Options:
+ # constants
+ GNU = 1
+ SOLARIS = 2
+ # defaults
+ extractall = 0 # FIXME: currently this option has no effect at all.
+ escape = 0
+ keywords = []
+ outpath = ''
+ outfile = 'messages.pot'
+ writelocations = 1
+ locationstyle = GNU
+ verbose = 0
+ width = 78
+ excludefilename = ''
+ docstrings = 0
+ nodocstrings = {}
+
+ options = Options()
+ locations = {'gnu' : options.GNU,
+ 'solaris' : options.SOLARIS,
+ }
+
+ # parse options
+ for opt, arg in opts:
+ if opt in ('-h', '--help'):
+ usage(0)
+ elif opt in ('-a', '--extract-all'):
+ options.extractall = 1
+ elif opt in ('-d', '--default-domain'):
+ options.outfile = arg + '.pot'
+ elif opt in ('-E', '--escape'):
+ options.escape = 1
+ elif opt in ('-D', '--docstrings'):
+ options.docstrings = 1
+ elif opt in ('-k', '--keyword'):
+ options.keywords.append(arg)
+ elif opt in ('-K', '--no-default-keywords'):
+ default_keywords = []
+ elif opt in ('-n', '--add-location'):
+ options.writelocations = 1
+ elif opt in ('--no-location',):
+ options.writelocations = 0
+ elif opt in ('-S', '--style'):
+ options.locationstyle = locations.get(arg.lower())
+ if options.locationstyle is None:
+ usage(1, _('Invalid value for --style: %s') % arg)
+ elif opt in ('-o', '--output'):
+ options.outfile = arg
+ elif opt in ('-p', '--output-dir'):
+ options.outpath = arg
+ elif opt in ('-v', '--verbose'):
+ options.verbose = 1
+ elif opt in ('-V', '--version'):
+ print _('pygettext.py (xgettext for Python) %s') % __version__
+ sys.exit(0)
+ elif opt in ('-w', '--width'):
+ try:
+ options.width = int(arg)
+ except ValueError:
+ usage(1, _('--width argument must be an integer: %s') % arg)
+ elif opt in ('-x', '--exclude-file'):
+ options.excludefilename = arg
+ elif opt in ('-X', '--no-docstrings'):
+ fp = open(arg)
+ try:
+ while 1:
+ line = fp.readline()
+ if not line:
+ break
+ options.nodocstrings[line[:-1]] = 1
+ finally:
+ fp.close()
+
+ # calculate escapes
+ make_escapes(options.escape)
+
+ # calculate all keywords
+ options.keywords.extend(default_keywords)
+
+ # initialize list of strings to exclude
+ if options.excludefilename:
+ try:
+ fp = open(options.excludefilename)
+ options.toexclude = fp.readlines()
+ fp.close()
+ except IOError:
+ print >> sys.stderr, _(
+ "Can't read --exclude-file: %s") % options.excludefilename
+ sys.exit(1)
+ else:
+ options.toexclude = []
+
+ # slurp through all the files
+ eater = TokenEater(options)
+ for filename in args:
+ if filename == '-':
+ if options.verbose:
+ print _('Reading standard input')
+ fp = sys.stdin
+ closep = 0
+ else:
+ if options.verbose:
+ print _('Working on %s') % filename
+ fp = open(filename)
+ closep = 1
+ try:
+ eater.set_filename(filename)
+ try:
+ tokenize.tokenize(fp.readline, eater)
+ except tokenize.TokenError, e:
+ print >> sys.stderr, '%s: %s, line %d, column %d' % (
+ e[0], filename, e[1][0], e[1][1])
+ finally:
+ if closep:
+ fp.close()
+
+ # write the output
+ if options.outfile == '-':
+ fp = sys.stdout
+ closep = 0
+ else:
+ if options.outpath:
+ options.outfile = os.path.join(options.outpath, options.outfile)
+ fp = open(options.outfile, 'w')
+ closep = 1
+ try:
+ eater.write(fp)
+ finally:
+ if closep:
+ fp.close()
+
+
+if __name__ == '__main__':
+ main()
+ # some more test strings
+ _(u'a unicode string')
diff --git a/bin/qrunner b/bin/qrunner
new file mode 100644
index 00000000..bb2f62d3
--- /dev/null
+++ b/bin/qrunner
@@ -0,0 +1,270 @@
+#! @PYTHON@
+
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Run one or more qrunners, once or repeatedly.
+
+Each named runner class is run in round-robin fashion. In other words, the
+first named runner is run to consume all the files currently in its
+directory. When that qrunner is done, the next one is run to consume all the
+files in /its/ directory, and so on. The number of total iterations can be
+given on the command line.
+
+Usage: %(PROGRAM)s [options]
+
+Options:
+
+ -r runner[:slice:range]
+ --runner=runner[:slice:range]
+ Run the named qrunner, which must be one of the strings returned by
+ the -l option. Optional slice:range if given, is used to assign
+ multiple qrunner processes to a queue. range is the total number of
+ qrunners for this queue while slice is the number of this qrunner from
+ [0..range).
+
+ If using the slice:range form, you better make sure that each qrunner
+ for the queue is given the same range value. If slice:runner is not
+ given, then 1:1 is used.
+
+ Multiple -r options may be given, in which case each qrunner will run
+ once in round-robin fashion. The special runner `All' is shorthand
+ for a qrunner for each listed by the -l option.
+
+ --once
+ -o
+ Run each named qrunner exactly once through its main loop. Otherwise,
+ each qrunner runs indefinitely, until the process receives a SIGTERM
+ or SIGINT.
+
+ -l/--list
+ Shows the available qrunner names and exit.
+
+ -v/--verbose
+ Spit out more debugging information to the logs/qrunner log file.
+
+ -s/--subproc
+ This should only be used when running qrunner as a subprocess of the
+ mailmanctl startup script. It changes some of the exit-on-error
+ behavior to work better with that framework.
+
+ -h/--help
+ Print this message and exit.
+
+runner is required unless -l or -h is given, and it must be one of the names
+displayed by the -l switch.
+"""
+
+import sys
+import getopt
+import signal
+
+import paths
+from Mailman import mm_cfg
+from Mailman.i18n import _
+from Mailman.Logging.Syslog import syslog
+from Mailman.Logging.Utils import LogStdErr
+
+PROGRAM = sys.argv[0]
+COMMASPACE = ', '
+
+# Flag which says whether we're running under mailmanctl or not.
+AS_SUBPROC = 0
+
+LogStdErr('error', 'qrunner', manual_reprime=0)
+
+
+
+def usage(code, msg=''):
+ if code:
+ fd = sys.stderr
+ else:
+ fd = sys.stdout
+ print >> fd, _(__doc__)
+ if msg:
+ print >> fd, msg
+ sys.exit(code)
+
+
+
+def make_qrunner(name, slice, range, once=0):
+ modulename = 'Mailman.Queue.' + name
+ try:
+ __import__(modulename)
+ except ImportError, e:
+ if AS_SUBPROC:
+ # Exit with SIGTERM exit code so mailmanctl won't try to restart us
+ print >> sys.stderr, 'Cannot import runner module', modulename
+ print >> sys.stderr, e
+ sys.exit(signal.SIGTERM)
+ else:
+ usage(1, e)
+ qrclass = getattr(sys.modules[modulename], name)
+ if once:
+ # Subclass to hack in the setting of the stop flag in _doperiodic()
+ class Once(qrclass):
+ def _doperiodic(self):
+ self.stop()
+ qrunner = Once(slice, range)
+ else:
+ qrunner = qrclass(slice, range)
+ return qrunner
+
+
+
+def set_signals(loop):
+ # Set up the SIGTERM handler for stopping the loop
+ def sigterm_handler(signum, frame, loop=loop):
+ # Exit the qrunner cleanly
+ loop.stop()
+ loop.status = signal.SIGTERM
+ syslog('qrunner', '%s qrunner caught SIGTERM. Stopping.', loop.name())
+ signal.signal(signal.SIGTERM, sigterm_handler)
+ # Set up the SIGINT handler for stopping the loop. For us, SIGINT is
+ # the same as SIGTERM, but our parent treats the exit statuses
+ # differently (it restarts a SIGINT but not a SIGTERM).
+ def sigint_handler(signum, frame, loop=loop):
+ # Exit the qrunner cleanly
+ loop.stop()
+ loop.status = signal.SIGINT
+ syslog('qrunner', '%s qrunner caught SIGINT. Stopping.', loop.name())
+ signal.signal(signal.SIGINT, sigint_handler)
+ # SIGHUP just tells us to close our log files. They'll be
+ # automatically reopened at the next log print :)
+ def sighup_handler(signum, frame, loop=loop):
+ syslog.close()
+ syslog('qrunner', '%s qrunner caught SIGHUP. Reopening logs.',
+ loop.name())
+ signal.signal(signal.SIGHUP, sighup_handler)
+
+
+
+def main():
+ global AS_SUBPROC
+ try:
+ opts, args = getopt.getopt(
+ sys.argv[1:], 'hlor:vs',
+ ['help', 'list', 'once', 'runner=', 'verbose', 'subproc'])
+ except getopt.error, msg:
+ usage(1, msg)
+
+ once = 0
+ runners = []
+ verbose = 0
+ for opt, arg in opts:
+ if opt in ('-h', '--help'):
+ usage(0)
+ elif opt in ('-l', '--list'):
+ for runnername, slices in mm_cfg.QRUNNERS:
+ if runnername.endswith('Runner'):
+ name = runnername[:-len('Runner')]
+ else:
+ name = runnername
+ print _('%(name)s runs the %(runnername)s qrunner')
+ print _('All runs all the above qrunners')
+ sys.exit(0)
+ elif opt in ('-o', '--once'):
+ once = 1
+ elif opt in ('-r', '--runner'):
+ runnerspec = arg
+ parts = runnerspec.split(':')
+ if len(parts) == 1:
+ runner = parts[0]
+ slice = 1
+ range = 1
+ elif len(parts) == 3:
+ runner = parts[0]
+ try:
+ slice = int(parts[1])
+ range = int(parts[2])
+ except ValueError:
+ usage(1, 'Bad runner specification: %(runnerspec)s')
+ else:
+ usage(1, 'Bad runner specification: %(runnerspec)s')
+ if runner == 'All':
+ for runnername, slices in mm_cfg.QRUNNERS:
+ runners.append((runnername, slice, range))
+ else:
+ if runner.endswith('Runner'):
+ runners.append((runner, slice, range))
+ else:
+ runners.append((runner + 'Runner', slice, range))
+ elif opt in ('-s', '--subproc'):
+ AS_SUBPROC = 1
+ elif opt in ('-v', '--verbose'):
+ verbose = 1
+
+ if len(args) <> 0:
+ usage(1)
+ if len(runners) == 0:
+ usage(1, _('No runner name given.'))
+
+ # Fast track for one infinite runner
+ if len(runners) == 1 and not once:
+ qrunner = make_qrunner(*runners[0])
+ class Loop:
+ status = 0
+ def __init__(self, qrunner):
+ self.__qrunner = qrunner
+ def name(self):
+ return self.__qrunner.__class__.__name__
+ def stop(self):
+ self.__qrunner.stop()
+ loop = Loop(qrunner)
+ set_signals(loop)
+ # Now start up the main loop
+ syslog('qrunner', '%s qrunner started.', loop.name())
+ qrunner.run()
+ syslog('qrunner', '%s qrunner exiting.', loop.name())
+ else:
+ # Anything else we have to handle a bit more specially
+ qrunners = []
+ for runner, slice, range in runners:
+ qrunner = make_qrunner(runner, slice, range, 1)
+ qrunners.append(qrunner)
+ # This class is used to manage the main loop
+ class Loop:
+ status = 0
+ def __init__(self):
+ self.__isdone = 0
+ def name(self):
+ return 'Main loop'
+ def stop(self):
+ self.__isdone = 1
+ def isdone(self):
+ return self.__isdone
+ loop = Loop()
+ set_signals(loop)
+ syslog('qrunner', 'Main qrunner loop started.')
+ while not loop.isdone():
+ for qrunner in qrunners:
+ # In case the SIGTERM came in the middle of this iteration
+ if loop.isdone():
+ break
+ if verbose:
+ syslog('qrunner', 'Now doing a %s qrunner iteration',
+ qrunner.__class__.__bases__[0].__name__)
+ qrunner.run()
+ if once:
+ break
+ syslog('qrunner', 'Main qrunner loop exiting.')
+ # All done
+ sys.exit(loop.status)
+
+
+
+if __name__ == '__main__':
+ main()
diff --git a/bin/remove_members b/bin/remove_members
new file mode 100755
index 00000000..888dfa51
--- /dev/null
+++ b/bin/remove_members
@@ -0,0 +1,179 @@
+#! @PYTHON@
+#
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+"""Remove members from a list.
+
+Usage:
+ remove_members [options] [listname] [addr1 ...]
+
+Options:
+
+ --file=file
+ -f file
+ Remove member addresses found in the given file. If file is
+ `-', read stdin.
+
+ --all
+ -a
+ Remove all members of the mailing list.
+ (mutually exclusive with --fromall)
+
+ --fromall
+ Removes the given addresses from all the lists on this system
+ regardless of virtual domains if you have any. This option cannot be
+ used -a/--all. Also, you should not specify a listname when using this
+ option.
+
+ --nouserack
+ -n
+ Don't send the user acknowledgements.
+
+ --noadminack
+ -N
+ Don't send the admin acknowledgements.
+
+ --help
+ -h
+ Print this help message and exit.
+
+ listname is the name of the mailing list to use.
+
+ addr1 ... are additional addresses to remove.
+
+"""
+
+import sys
+import getopt
+
+import paths
+from Mailman import MailList
+from Mailman import Utils
+from Mailman import Errors
+from Mailman.i18n import _
+
+
+
+def usage(code, msg=''):
+ if code:
+ fd = sys.stderr
+ else:
+ fd = sys.stdout
+ print >> fd, _(__doc__)
+ if msg:
+ print >> fd, msg
+ sys.exit(code)
+
+
+def ReadFile(filename):
+ lines = []
+ if filename == "-":
+ fp = sys.stdin
+ closep = 0
+ else:
+ fp = open(filename)
+ closep = 1
+ lines = filter(None, [line.strip() for line in fp.readlines()])
+ if closep:
+ fp.close()
+ return lines
+
+
+
+def main():
+ try:
+ opts, args = getopt.getopt(
+ sys.argv[1:], 'naf:hN',
+ ['all', 'fromall', 'file=', 'help', 'nouserack', 'noadminack'])
+ except getopt.error, msg:
+ usage(1, msg)
+
+ if len(args) < 1:
+ usage(1)
+
+ filename = None
+ all = 0
+ alllists = 0
+ userack = 1
+ admin_notif = 1
+
+ for opt, arg in opts:
+ if opt in ('-h', '--help'):
+ usage(0)
+ elif opt in ('-f', '--file'):
+ filename = arg
+ elif opt in ('-a', '--all'):
+ all = 1
+ elif opt == '--fromall':
+ alllists = 1
+ elif opt in ('-n', '--nouserack'):
+ userack = 0
+ elif opt in ('-N', '--noadminack'):
+ admin_notif = 0
+
+ # You probably don't want to delete all the users of all the lists -- Marc
+ if all and alllists:
+ usage(1)
+
+ if alllists:
+ addresses = args
+ else:
+ listname = args[0].lower().strip()
+ addresses = args[1:]
+
+ if alllists:
+ listnames = Utils.list_names()
+ else:
+ listnames = [listname]
+
+ if filename:
+ try:
+ addresses = addresses + ReadFile(filename)
+ except IOError:
+ print _('Could not open file for reading: %(filename)s.')
+
+ for listname in listnames:
+ try:
+ # open locked
+ mlist = MailList.MailList(listname)
+ except Errors.MMListError:
+ print _('Error opening list %(listname)s... skipping.')
+ continue
+
+ if all:
+ addresses = mlist.getMembers()
+
+ try:
+ for addr in addresses:
+ if not mlist.isMember(addr):
+ if not alllists:
+ print _('No such member: %(addr)s')
+ continue
+ mlist.ApprovedDeleteMember(addr,
+ 'bin/remove_members',
+ admin_notif,
+ userack)
+ if alllists:
+ print _("User `%(addr)s' removed from list: %(listname)s.")
+ mlist.Save()
+ finally:
+ mlist.Unlock()
+
+
+
+if __name__ == '__main__':
+ main()
diff --git a/bin/rmlist b/bin/rmlist
new file mode 100755
index 00000000..6ff0b5c1
--- /dev/null
+++ b/bin/rmlist
@@ -0,0 +1,138 @@
+#! @PYTHON@
+#
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Remove the components of a mailing list with impunity - beware!
+
+This removes (almost) all traces of a mailing list. By default, the lists
+archives are not removed, which is very handy for retiring old lists.
+
+Usage:
+ rmlist [-a] [-h] listname
+
+Where:
+ --archives
+ -a
+ Remove the list's archives too, or if the list has already been
+ deleted, remove any residual archives.
+
+ --help
+ -h
+ Print this help message and exit.
+
+"""
+
+import os
+import sys
+import getopt
+import shutil
+
+import paths
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman import MailList
+from Mailman.i18n import _
+
+
+
+def usage(code, msg=''):
+ if code:
+ fd = sys.stderr
+ else:
+ fd = sys.stdout
+ print >> fd, _(__doc__)
+ if msg:
+ print >> fd, msg
+ sys.exit(code)
+
+
+
+def remove_it(listname, dir, msg):
+ if os.path.islink(dir):
+ print _('Removing %(msg)s')
+ os.unlink(dir)
+ elif os.path.isdir(dir):
+ print _('Removing %(msg)s')
+ shutil.rmtree(dir)
+ else:
+ print _('%(listname)s %(msg)s not found as %(dir)s')
+
+
+
+def main():
+ try:
+ opts, args = getopt.getopt(sys.argv[1:], 'ah',
+ ['archives', 'help'])
+ except getopt.error, msg:
+ usage(1, msg)
+
+ if len(args) <> 1:
+ usage(1)
+ listname = args[0].lower().strip()
+
+ removeArchives = 0
+ for opt, arg in opts:
+ if opt in ('-a', '--archives'):
+ removeArchives = 1
+ elif opt in ('-h', '--help'):
+ usage(0)
+
+ if not Utils.list_exists(listname):
+ if not removeArchives:
+ usage(1, _('No such list (or list already deleted): %(listname)s'))
+ else:
+ print _(
+ 'No such list: %(listname)s. Removing its residual archives.')
+
+ if not removeArchives:
+ print _('Not removing archives. Reinvoke with -a to remove them.')
+
+
+ REMOVABLES = []
+ if Utils.list_exists(listname):
+ mlist = MailList.MailList(listname, lock=0)
+
+ # Do the MTA-specific list deletion tasks
+ if mm_cfg.MTA:
+ modname = 'Mailman.MTA.' + mm_cfg.MTA
+ __import__(modname)
+ sys.modules[modname].remove(mlist)
+
+ REMOVABLES = [
+ (os.path.join('lists', listname), _('list info')),
+ ]
+
+ if removeArchives:
+ REMOVABLES.extend([
+ (os.path.join('archives', 'private', listname),
+ _('private archives')),
+ (os.path.join('archives', 'private', listname + '.mbox'),
+ _('private archives')),
+ (os.path.join('archives', 'public', listname),
+ _('public archives')),
+ (os.path.join('archives', 'public', listname + '.mbox'),
+ _('public archives')),
+ ])
+
+ for dirtmpl, msg in REMOVABLES:
+ dir = os.path.join(mm_cfg.VAR_PREFIX, dirtmpl)
+ remove_it(listname, dir, msg)
+
+
+
+if __name__ == '__main__':
+ main()
diff --git a/bin/sync_members b/bin/sync_members
new file mode 100755
index 00000000..1bf9a454
--- /dev/null
+++ b/bin/sync_members
@@ -0,0 +1,286 @@
+#! @PYTHON@
+#
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Synchronize a mailing list's membership with a flat file.
+
+This script is useful if you have a Mailman mailing list and a sendmail
+:include: style list of addresses (also as is used in Majordomo). For every
+address in the file that does not appear in the mailing list, the address is
+added. For every address in the mailing list that does not appear in the
+file, the address is removed. Other options control what happens when an
+address is added or removed.
+
+Usage: %(PROGRAM)s [options] -f file listname
+
+Where `options' are:
+
+ --no-change
+ -n
+ Don't actually make the changes. Instead, print out what would be
+ done to the list.
+
+ --welcome-msg[=<yes|no>]
+ -w[=<yes|no>]
+ Sets whether or not to send the newly added members a welcome
+ message, overriding whatever the list's `send_welcome_msg' setting
+ is. With -w=yes or -w, the welcome message is sent. With -w=no, no
+ message is sent.
+
+ --goodbye-msg[=<yes|no>]
+ -g[=<yes|no>]
+ Sets whether or not to send the goodbye message to removed members,
+ overriding whatever the list's `send_goodbye_msg' setting is. With
+ -g=yes or -g, the goodbye message is sent. With -g=no, no message is
+ sent.
+
+ --digest[=<yes|no>]
+ -d[=<yes|no>]
+ Selects whether to make newly added members receive messages in
+ digests. With -d=yes or -d, they become digest members. With -d=no
+ (or if no -d option given) they are added as regular members.
+
+ --notifyadmin[=<yes|no>]
+ -a[=<yes|no>]
+ Specifies whether the admin should be notified for each subscription
+ or unsubscription. If you're adding a lot of addresses, you
+ definitely want to turn this off! With -a=yes or -a, the admin is
+ notified. With -a=no, the admin is not notified. With no -a option,
+ the default for the list is used.
+
+ --file <filename | ->
+ -f <filename | ->
+ This option is required. It specifies the flat file to synchronize
+ against. Email addresses must appear one per line. If filename is
+ `-' then stdin is used.
+
+ --help
+ -h
+ Print this message.
+
+ listname
+ Required. This specifies the list to synchronize.
+"""
+
+import sys
+
+import paths
+# Import this /after/ paths so that the sys.path is properly hacked
+import email.Utils
+
+from Mailman import MailList
+from Mailman import Errors
+from Mailman import Utils
+from Mailman.UserDesc import UserDesc
+from Mailman.i18n import _
+
+
+
+PROGRAM = sys.argv[0]
+
+def usage(code, msg=''):
+ if code:
+ fd = sys.stderr
+ else:
+ fd = sys.stdout
+ print >> fd, _(__doc__)
+ if msg:
+ print >> fd, msg
+ sys.exit(code)
+
+
+
+def yesno(opt):
+ i = opt.find('=')
+ yesno = opt[i+1:].lower()
+ if yesno in ('y', 'yes'):
+ return 1
+ elif yesno in ('n', 'no'):
+ return 0
+ else:
+ usage(1, _('Bad choice: %(yesno)s'))
+ # no return
+
+
+def main():
+ dryrun = 0
+ digest = 0
+ welcome = None
+ goodbye = None
+ filename = None
+ listname = None
+ notifyadmin = None
+
+ # TBD: can't use getopt with this command line syntax, which is broken and
+ # should be changed to be getopt compatible.
+ i = 1
+ while i < len(sys.argv):
+ opt = sys.argv[i]
+ if opt in ('-h', '--help'):
+ usage(0)
+ elif opt in ('-n', '--no-change'):
+ dryrun = 1
+ i += 1
+ print _('Dry run mode')
+ elif opt in ('-d', '--digest'):
+ digest = 1
+ i += 1
+ elif opt.startswith('-d=') or opt.startswith('--digest='):
+ digest = yesno(opt)
+ i += 1
+ elif opt in ('-w', '--welcome-msg'):
+ welcome = 1
+ i += 1
+ elif opt.startswith('-w=') or opt.startswith('--welcome-msg='):
+ welcome = yesno(opt)
+ i += 1
+ elif opt in ('-g', '--goodbye-msg'):
+ goodbye = 1
+ i += 1
+ elif opt.startswith('-g=') or opt.startswith('--goodbye-msg='):
+ goodbye = yesno(opt)
+ i += 1
+ elif opt in ('-f', '--file'):
+ if filename is not None:
+ usage(1, _('Only one -f switch allowed'))
+ try:
+ filename = sys.argv[i+1]
+ except IndexError:
+ usage(1, _('No argument to -f given'))
+ i += 2
+ elif opt in ('-a', '--notifyadmin'):
+ notifyadmin = 1
+ i += 1
+ elif opt.startswith('-a=') or opt.startswith('--notifyadmin='):
+ notifyadmin = yesno(opt)
+ i += 1
+ elif opt[0] == '-':
+ usage(1, _('Illegal option: %(opt)s'))
+ else:
+ try:
+ listname = sys.argv[i].lower()
+ i += 1
+ except IndexError:
+ usage(1, _('No listname given'))
+ break
+
+ if listname is None or filename is None:
+ usage(1, _('Must have a listname and a filename'))
+
+ # read the list of addresses to sync to from the file
+ if filename == '-':
+ filemembers = sys.stdin.readlines()
+ else:
+ try:
+ fp = open(filename)
+ except IOError, (code, msg):
+ usage(1, _('Cannot read address file: %(filename)s: %(msg)s'))
+ try:
+ filemembers = fp.readlines()
+ finally:
+ fp.close()
+
+ # strip out lines we don't care about, they are comments (# in first
+ # non-whitespace) or are blank
+ for i in range(len(filemembers)-1, -1, -1):
+ addr = filemembers[i].strip()
+ if addr == '' or addr[:1] == '#':
+ del filemembers[i]
+ print _('Ignore : %(addr)30s')
+
+ # first filter out any invalid addresses
+ filemembers = email.Utils.getaddresses(filemembers)
+ invalid = 0
+ for name, addr in filemembers:
+ try:
+ Utils.ValidateEmail(addr)
+ except Errors.EmailAddressError:
+ print _('Invalid : %(addr)30s')
+ invalid = 1
+ if invalid:
+ print _('You must fix the preceding invalid addresses first.')
+ sys.exit(1)
+
+ # get the locked list object
+ try:
+ mlist = MailList.MailList(listname)
+ except Errors.MMListError, e:
+ print _('No such list: %(listname)s')
+ sys.exit(1)
+
+ try:
+ # Get the list of addresses currently subscribed
+ addrs = {}
+ needsadding = {}
+ matches = {}
+ for addr in mlist.getMemberCPAddresses(mlist.getMembers()):
+ addrs[addr.lower()] = addr
+
+ for name, addr in filemembers:
+ # Any address found in the file that is also in the list can be
+ # ignored. If not found in the list, it must be added later.
+ laddr = addr.lower()
+ if addrs.has_key(laddr):
+ del addrs[laddr]
+ matches[laddr] = 1
+ elif not matches.has_key(laddr):
+ needsadding[laddr] = (name, addr)
+
+ if not needsadding and not addrs:
+ print _('Nothing to do.')
+ sys.exit(0)
+
+ # addrs contains now all the addresses that need removing
+ for laddr, (name, addr) in needsadding.items():
+ pw = Utils.MakeRandomPassword()
+ # should not already be subscribed, otherwise our test above is
+ # broken. Bogosity is if the address is listed in the file more
+ # than once. Second and subsequent ones trigger an
+ # MMAlreadyAMember error. Just catch it and go on.
+ userdesc = UserDesc(addr, name, pw, digest)
+ try:
+ if not dryrun:
+ mlist.ApprovedAddMember(userdesc, welcome, notifyadmin)
+ s = email.Utils.formataddr((name, addr)).encode(enc, 'replace')
+ print _('Added : %(s)s')
+ except Errors.MMAlreadyAMember:
+ pass
+
+ for laddr, addr in addrs.items():
+ # Should be a member, otherwise our test above is broken
+ if not dryrun:
+ try:
+ mlist.ApprovedDeleteMember(addr, admin_notif=notifyadmin,
+ userack=goodbye)
+ except Errors.NotAMemberError:
+ # This can happen if the address is illegal (i.e. can't be
+ # parsed by email.Utils.parseaddr()) but for legacy
+ # reasons is in the database. Use a lower level remove to
+ # get rid of this member's entry
+ mlist.removeMember(addr)
+ name = mlist.getMemberName(laddr) or ''
+ enc = sys.getdefaultencoding()
+ s = email.Utils.formataddr((name, addr)).encode(enc, 'replace')
+ print _('Removed: %(s)s')
+
+ mlist.Save()
+ finally:
+ mlist.Unlock()
+
+
+if __name__ == '__main__':
+ main()
diff --git a/bin/transcheck b/bin/transcheck
new file mode 100755
index 00000000..fbb0dcd8
--- /dev/null
+++ b/bin/transcheck
@@ -0,0 +1,405 @@
+#! @PYTHON@
+#
+# transcheck - (c) 2002 by Simone Piunno <pioppo@ferrara.linux.it>
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the version 2.0 of the GNU General Public License as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""
+Check a given Mailman translation, making sure that variables and
+tags referenced in translation are the same variables and tags in
+the original templates and catalog.
+
+Usage:
+
+cd $MAILMAN_DIR
+%(program)s [-q] <lang>
+
+Where <lang> is your country code (e.g. 'it' for Italy) and -q is
+to ask for a brief summary.
+"""
+
+import sys
+import re
+import os
+import getopt
+
+import paths
+from Mailman.i18n import _
+
+program = sys.argv[0]
+
+
+
+def usage(code, msg=''):
+ if code:
+ fd = sys.stderr
+ else:
+ fd = sys.stdout
+ print >> fd, _(__doc__)
+ if msg:
+ print >> fd, msg
+ sys.exit(code)
+
+
+
+class TransChecker:
+ "check a translation comparing with the original string"
+ def __init__(self, regexp):
+ self.dict = {}
+ self.errs = []
+ self.regexp = re.compile(regexp)
+
+ def checkin(self, string):
+ "scan a string from the original file"
+ for key in self.regexp.findall(string):
+ if self.dict.has_key(key):
+ self.dict[key] += 1
+ else:
+ self.dict[key] = 1
+
+ def checkout(self, string):
+ "scan a translated string"
+ for key in self.regexp.findall(string):
+ if self.dict.has_key(key):
+ self.dict[key] -= 1
+ else:
+ self.errs.append(
+ "%(key)s was not found" %
+ { 'key' : key }
+ )
+
+ def computeErrors(self):
+ "check for differences between checked in and checked out"
+ for key in self.dict.keys():
+ if self.dict[key] < 0:
+ self.errs.append(
+ "Too much %(key)s" %
+ { 'key' : key }
+ )
+ if self.dict[key] > 0:
+ self.errs.append(
+ "Too few %(key)s" %
+ { 'key' : key }
+ )
+ return self.errs
+
+ def status(self):
+ if self.errs:
+ return "FAILED"
+ else:
+ return "OK"
+
+ def errorsAsString(self):
+ msg = ""
+ for err in self.errs:
+ msg += " - %(err)s" % { 'err': err }
+ return msg
+
+ def reset(self):
+ self.dict = {}
+ self.errs = []
+
+
+
+class POParser:
+ "parse a .po file extracting msgids and msgstrs"
+ def __init__(self, filename=""):
+ self.status = 0
+ self.files = []
+ self.msgid = ""
+ self.msgstr = ""
+ self.line = 1
+ self.f = None
+ self.esc = { "n": "\n", "r": "\r", "t": "\t" }
+ if filename:
+ self.f = open(filename)
+
+ def open(self, filename):
+ self.f = open(filename)
+
+ def close(self):
+ self.f.close()
+
+ def parse(self):
+ """States table for the finite-states-machine parser:
+ 0 idle
+ 1 filename-or-comment
+ 2 msgid
+ 3 msgstr
+ 4 end
+ """
+ # each time we can safely re-initialize those vars
+ self.files = []
+ self.msgid = ""
+ self.msgstr = ""
+
+
+ # can't continue if status == 4, this is a dead status
+ if self.status == 4:
+ return 0
+
+ while 1:
+ # continue scanning, char-by-char
+ c = self.f.read(1)
+ if not c:
+ # EOF -> maybe we have a msgstr to save?
+ self.status = 4
+ if self.msgstr:
+ return 1
+ else:
+ return 0
+
+ # keep the line count up-to-date
+ if c == "\n":
+ self.line += 1
+
+ # a pound was detected the previous char...
+ if self.status == 1:
+ if c == ":":
+ # was a line of filenames
+ row = self.f.readline()
+ self.files += row.split()
+ self.line += 1
+ elif c == "\n":
+ # was a single pount on the line
+ pass
+ else:
+ # was a comment... discard
+ self.f.readline()
+ self.line += 1
+ # in every case, we switch to idle status
+ self.status = 0;
+ continue
+
+ # in idle status we search for a '#' or for a 'm'
+ if self.status == 0:
+ if c == "#":
+ # this could be a comment or a filename
+ self.status = 1;
+ continue
+ elif c == "m":
+ # this should be a msgid start...
+ s = self.f.read(4)
+ assert s == "sgid"
+ # so now we search for a '"'
+ self.status = 2
+ continue
+ # in idle only those other chars are possibile
+ assert c in [ "\n", " ", "\t" ]
+
+ # searching for the msgid string
+ if self.status == 2:
+ if c == "\n":
+ # a double LF is not possible here
+ c = self.f.read(1)
+ assert c != "\n"
+ if c == "\"":
+ # ok, this is the start of the string,
+ # now search for the end
+ while 1:
+ c = self.f.read(1)
+ if not c:
+ # EOF, bailout
+ self.status = 4
+ return 0
+ if c == "\\":
+ # a quoted char...
+ c = self.f.read(1)
+ if self.esc.has_key(c):
+ self.msgid += self.esc[c]
+ else:
+ self.msgid += c
+ continue
+ if c == "\"":
+ # end of string found
+ break
+ # a normal char, add it
+ self.msgid += c
+ if c == "m":
+ # this should be a msgstr identifier
+ s = self.f.read(5)
+ assert s == "sgstr"
+ # ok, now search for the msgstr string
+ self.status = 3
+
+ # searching for the msgstr string
+ if self.status == 3:
+ if c == "\n":
+ # a double LF is the end of the msgstr!
+ c = self.f.read(1)
+ if c == "\n":
+ # ok, time to go idle and return
+ self.status = 0
+ self.line += 1
+ return 1
+ if c == "\"":
+ # start of string found
+ while 1:
+ c = self.f.read(1)
+ if not c:
+ # EOF, bail out
+ self.status = 4
+ return 1
+ if c == "\\":
+ # a quoted char...
+ c = self.f.read(1)
+ if self.esc.has_key(c):
+ self.msgid += self.esc[c]
+ else:
+ self.msgid += c
+ continue
+ if c == "\"":
+ # end of string
+ break
+ # a normal char, add it
+ self.msgstr += c
+
+
+
+
+def check_file(translatedFile, originalFile, html=0, quiet=0):
+ """check a translated template against the original one
+ search also <MM-*> tags if html is not zero"""
+
+ if html:
+ c = TransChecker("(%\([^)]+\)[0-9]*[sd]|</?MM-[^>]+>)")
+ else:
+ c = TransChecker("(%\([^)]+\)[0-9]*[sd])")
+
+ try:
+ f = open(originalFile)
+ except IOError:
+ if not quiet:
+ print " - Can'open original file " + originalFile
+ return 1
+
+ while 1:
+ line = f.readline()
+ if not line: break
+ c.checkin(line)
+
+ f.close()
+
+ try:
+ f = open(translatedFile)
+ except IOError:
+ if not quiet:
+ print " - Can'open translated file " + translatedFile
+ return 1
+
+ while 1:
+ line = f.readline()
+ if not line: break
+ c.checkout(line)
+
+ f.close()
+
+ n = 0
+ msg = ""
+ for desc in c.computeErrors():
+ n +=1
+ if not quiet:
+ print " - %(desc)s" % { 'desc': desc }
+ return n
+
+
+
+def check_po(file, quiet=0):
+ "scan the po file comparing msgids with msgstrs"
+ n = 0
+ p = POParser(file)
+ c = TransChecker("(%\([^)]+\)[0-9]*[sdu]|%[0-9]*[sdu])")
+ while p.parse():
+ if p.msgstr:
+ c.reset()
+ c.checkin(p.msgid)
+ c.checkout(p.msgstr)
+ for desc in c.computeErrors():
+ n += 1
+ if not quiet:
+ print " - near line %(line)d %(file)s: %(desc)s" % {
+ 'line': p.line,
+ 'file': p.files,
+ 'desc': desc
+ }
+ p.close()
+ return n
+
+
+def main():
+ try:
+ opts, args = getopt.getopt(sys.argv[1:], 'qh', ['quiet', 'help'])
+ except getopt.error, msg:
+ usage(1, msg)
+
+ quiet = 0
+ for opt, arg in opts:
+ if opt in ('-h', '--help'):
+ usage(0)
+ elif opt in ('-q', '--quiet'):
+ quiet = 1
+
+ if len(args) <> 1:
+ usage(1)
+
+ lang = args[0]
+
+ isHtml = re.compile("\.html$");
+ isTxt = re.compile("\.txt$");
+
+ numerrors = 0
+ numfiles = 0
+ try:
+ files = os.listdir("templates/" + lang + "/")
+ except:
+ print "can't open templates/%s/" % lang
+ for file in files:
+ fileEN = "templates/en/" + file
+ fileIT = "templates/" + lang + "/" + file
+ errlist = []
+ if isHtml.search(file):
+ if not quiet:
+ print "HTML checking " + fileIT + "... "
+ n = check_file(fileIT, fileEN, html=1, quiet=quiet)
+ if n:
+ numerrors += n
+ numfiles += 1
+ elif isTxt.search(file):
+ if not quiet:
+ print "TXT checking " + fileIT + "... "
+ n = check_file(fileIT, fileEN, html=0, quiet=quiet)
+ if n:
+ numerrors += n
+ numfiles += 1
+
+ else:
+ continue
+
+ file = "messages/" + lang + "/LC_MESSAGES/mailman.po"
+ if not quiet:
+ print "PO checking " + file + "... "
+ n = check_po(file, quiet=quiet)
+ if n:
+ numerrors += n
+ numfiles += 1
+
+ if quiet:
+ print "%(errs)u warnings in %(files)u files" % {
+ 'errs': numerrors,
+ 'files': numfiles
+ }
+
+
+if __name__ == '__main__':
+ main()
diff --git a/bin/unshunt b/bin/unshunt
new file mode 100644
index 00000000..cd8a538e
--- /dev/null
+++ b/bin/unshunt
@@ -0,0 +1,87 @@
+#! @PYTHON@
+
+# Copyright (C) 2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Move a message from the shunt queue to the original queue.
+
+Usage: %(PROGRAM)s [options] [directory]
+
+Where:
+
+ -h / --help
+ Print help and exit.
+
+Optional `directory' specifies a directory to dequeue from other than
+qfiles/shunt.
+"""
+
+import sys
+import getopt
+
+import paths
+from Mailman import mm_cfg
+from Mailman.Queue.sbcache import get_switchboard
+from Mailman.i18n import _
+
+
+
+def usage(code, msg=''):
+ if code:
+ fd = sys.stderr
+ else:
+ fd = sys.stdout
+ print >> fd, _(__doc__)
+ if msg:
+ print >> fd, msg
+ sys.exit(code)
+
+
+
+def main():
+ try:
+ opts, args = getopt.getopt(sys.argv[1:], 'h', ['help'])
+ except getopt.error, msg:
+ usage(1, msg)
+
+ for opt, arg in opts:
+ if opt in ('-h', '--help'):
+ usage(0)
+
+ if len(args) == 0:
+ qdir = mm_cfg.SHUNTQUEUE_DIR
+ elif len(args) == 1:
+ qdir = args[0]
+ else:
+ usage(1)
+
+ sb = get_switchboard(qdir)
+ for filebase in sb.files():
+ try:
+ msg, msgdata = sb.dequeue(filebase)
+ whichq = msgdata.get('whichq', mm_cfg.INQUEUE_DIR)
+ tosb = get_switchboard(whichq)
+ tosb.enqueue(msg, msgdata)
+ except Exception, e:
+ # If there are any unshunting errors, log them and continue trying
+ # other shunted messages.
+ print >> sys.stderr, _(
+ 'Cannot unshunt message %(filebase)s, skipping:\n%(e)s')
+
+
+
+if __name__ == '__main__':
+ main()
diff --git a/bin/update b/bin/update
new file mode 100755
index 00000000..b0b425d3
--- /dev/null
+++ b/bin/update
@@ -0,0 +1,588 @@
+#! @PYTHON@
+#
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Perform all necessary upgrades.
+
+Usage: %(PROGRAM)s [options]
+
+Options:
+ -f/--force
+ Force running the upgrade procedures. Normally, if the version number
+ of the installed Mailman matches the current version number (or a
+ `downgrade' is detected), nothing will be done.
+
+ -h/--help
+ Print this text and exit.
+
+Use this script to help you update to the latest release of Mailman from
+some previous version. It knows about versions back to 1.0b4 (?).
+"""
+
+import os
+import md5
+import sys
+import time
+import errno
+import getopt
+import shutil
+import marshal
+
+import paths
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman import MailList
+from Mailman.LockFile import TimeOutError
+from Mailman.i18n import _
+from Mailman.Queue.Switchboard import Switchboard
+from Mailman.OldStyleMemberships import OldStyleMemberships
+from Mailman.MemberAdaptor import BYBOUNCE, ENABLED
+
+FRESH = 0
+NOTFRESH = -1
+
+LMVFILE = os.path.join(mm_cfg.DATA_DIR, 'last_mailman_version')
+PROGRAM = sys.argv[0]
+
+
+
+def calcversions():
+ # Returns a tuple of (lastversion, thisversion). If the last version
+ # could not be determined, lastversion will be FRESH or NOTFRESH,
+ # depending on whether this installation appears to be fresh or not. The
+ # determining factor is whether there are files in the $var_prefix/logs
+ # subdir or not. The version numbers are HEX_VERSIONs.
+ #
+ # See if we stored the last updated version
+ lastversion = None
+ thisversion = mm_cfg.HEX_VERSION
+ try:
+ fp = open(LMVFILE)
+ data = fp.read()
+ fp.close()
+ lastversion = int(data, 16)
+ except (IOError, ValueError):
+ pass
+ #
+ # try to figure out if this is a fresh install
+ if lastversion is None:
+ lastversion = FRESH
+ try:
+ if os.listdir(mm_cfg.LOG_DIR):
+ lastversion = NOTFRESH
+ except OSError:
+ pass
+ return (lastversion, thisversion)
+
+
+
+def makeabs(relpath):
+ return os.path.join(mm_cfg.PREFIX, relpath)
+
+def make_varabs(relpath):
+ return os.path.join(mm_cfg.VAR_PREFIX, relpath)
+
+
+def move_language_templates(mlist):
+ listname = mlist.internal_name()
+ print _('Fixing language templates: %(listname)s')
+ # Mailman 2.1 has a new cascading search for its templates, defined and
+ # described in Utils.py:maketext(). Putting templates in the top level
+ # templates/ subdir or the lists/<listname> subdir is deprecated and no
+ # longer searched..
+ #
+ # What this means is that most templates can live in the global templates/
+ # subdirectory, and only needs to be copied into the list-, vhost-, or
+ # site-specific language directories when needed.
+ #
+ # Also, by default all standard (i.e. English) templates must now live in
+ # the templates/en directory. This update cleans up all the templates,
+ # deleting more-specific duplicates (as calculated by md5 checksums) in
+ # favor of more-global locations.
+ #
+ # First, get rid of any lists/<list> template or lists/<list>/en template
+ # that is identical to the global templates/* default.
+ for gtemplate in os.listdir(os.path.join(mm_cfg.TEMPLATE_DIR, 'en')):
+ # BAW: get rid of old templates, e.g. admlogin.txt and
+ # handle_opts.html
+ try:
+ fp = open(os.path.join(mm_cfg.TEMPLATE_DIR, gtemplate))
+ except IOError, e:
+ if e.errno <> errno.ENOENT: raise
+ # No global template
+ continue
+
+ gcksum = md5.new(fp.read()).digest()
+ fp.close()
+ # Match against the lists/<list>/* template
+ try:
+ fp = open(os.path.join(mlist.fullpath(), gtemplate))
+ except IOError, e:
+ if e.errno <> errno.ENOENT: raise
+ else:
+ tcksum = md5.new(fp.read()).digest()
+ fp.close()
+ if gcksum == tcksum:
+ os.unlink(os.path.join(mlist.fullpath(), gtemplate))
+ # Match against the lists/<list>/*.prev template
+ try:
+ fp = open(os.path.join(mlist.fullpath(), gtemplate + '.prev'))
+ except IOError, e:
+ if e.errno <> errno.ENOENT: raise
+ else:
+ tcksum = md5.new(fp.read()).digest()
+ fp.close()
+ if gcksum == tcksum:
+ os.unlink(os.path.join(mlist.fullpath(), gtemplate + '.prev'))
+ # Match against the lists/<list>/en/* templates
+ try:
+ fp = open(os.path.join(mlist.fullpath(), 'en', gtemplate))
+ except IOError, e:
+ if e.errno <> errno.ENOENT: raise
+ else:
+ tcksum = md5.new(fp.read()).digest()
+ fp.close()
+ if gcksum == tcksum:
+ os.unlink(os.path.join(mlist.fullpath(), 'en', gtemplate))
+ # Match against the templates/* template
+ try:
+ fp = open(os.path.join(mm_cfg.TEMPLATE_DIR, gtemplate))
+ except IOError, e:
+ if e.errno <> errno.ENOENT: raise
+ else:
+ tcksum = md5.new(fp.read()).digest()
+ fp.close()
+ if gcksum == tcksum:
+ os.unlink(os.path.join(mm_cfg.TEMPLATE_DIR, gtemplate))
+ # Match against the templates/*.prev template
+ try:
+ fp = open(os.path.join(mm_cfg.TEMPLATE_DIR, gtemplate + '.prev'))
+ except IOError, e:
+ if e.errno <> errno.ENOENT: raise
+ else:
+ tcksum = md5.new(fp.read()).digest()
+ fp.close()
+ if gcksum == tcksum:
+ os.unlink(os.path.join(mm_cfg.TEMPLATE_DIR,
+ gtemplate + '.prev'))
+
+
+
+def dolist(listname):
+ errors = 0
+ mlist = MailList.MailList(listname, lock=0)
+ try:
+ mlist.Lock(0.5)
+ except TimeOutError:
+ print >> sys.stderr, _('WARNING: could not acquire lock for list: '
+ '%(listname)s')
+ return 1
+
+ # Sanity check the invariant that every BYBOUNCE disabled member must have
+ # bounce information. Some earlier betas broke this. BAW: we're
+ # submerging below the MemberAdaptor interface, so skip this if we're not
+ # using OldStyleMemberships.
+ if isinstance(mlist._memberadaptor, OldStyleMemberships):
+ noinfo = {}
+ for addr, (reason, when) in mlist.delivery_status.items():
+ if reason == BYBOUNCE and not mlist.bounce_info.has_key(addr):
+ noinfo[addr] = reason, when
+ # What to do about these folks with a BYBOUNCE delivery status and no
+ # bounce info? This number should be very small, and I think it's
+ # fine to simple re-enable them and let the bounce machinery
+ # re-disable them if necessary.
+ n = len(noinfo)
+ if n > 0:
+ print _(
+ 'Resetting %(n)s BYBOUNCEs disabled addrs with no bounce info')
+ for addr in noinfo.keys():
+ mlist.setDeliveryStatus(addr, ENABLED)
+
+ # Update the held requests database
+ print _("""Updating the held requests database.""")
+ mlist._UpdateRecords()
+
+ mbox_dir = make_varabs('archives/private/%s.mbox' % (listname))
+ mbox_file = make_varabs('archives/private/%s.mbox/%s' % (listname,
+ listname))
+
+ o_pub_mbox_file = make_varabs('archives/public/%s' % (listname))
+ o_pri_mbox_file = make_varabs('archives/private/%s' % (listname))
+
+ html_dir = o_pri_mbox_file
+ o_html_dir = makeabs('public_html/archives/%s' % (listname))
+ #
+ # make the mbox directory if it's not there.
+ #
+ if not os.path.exists(mbox_dir):
+ ou = os.umask(0)
+ os.mkdir(mbox_dir, 02775)
+ os.umask(ou)
+ else:
+ # this shouldn't happen, but hey, just in case
+ if not os.path.isdir(mbox_dir):
+ print _("""\
+For some reason, %(mbox_dir)s exists as a file. This won't work with
+b6, so I'm renaming it to %(mbox_dir)s.tmp and proceeding.""")
+ os.rename(mbox_dir, "%s.tmp" % (mbox_dir))
+ ou = os.umask(0)
+ os.mkdir(mbox_dir, 02775)
+ os.umask(ou)
+
+ # Move any existing mboxes around, but watch out for both a public and a
+ # private one existing
+ if os.path.isfile(o_pri_mbox_file) and os.path.isfile(o_pub_mbox_file):
+ if mlist.archive_private:
+ print _("""\
+
+%(listname)s has both public and private mbox archives. Since this list
+currently uses private archiving, I'm installing the private mbox archive
+-- %(o_pri_mbox_file)s -- as the active archive, and renaming
+ %(o_pub_mbox_file)s
+to
+ %(o_pub_mbox_file)s.preb6
+
+You can integrate that into the archives if you want by using the 'arch'
+script.
+""") % (mlist._internal_name, o_pri_mbox_file, o_pub_mbox_file,
+ o_pub_mbox_file)
+ os.rename(o_pub_mbox_file, "%s.preb6" % (o_pub_mbox_file))
+ else:
+ print _("""\
+%s has both public and private mbox archives. Since this list
+currently uses public archiving, I'm installing the public mbox file
+archive file (%s) as the active one, and renaming
+ %s
+ to
+ %s.preb6
+
+You can integrate that into the archives if you want by using the 'arch'
+script.
+""") % (mlist._internal_name, o_pub_mbox_file, o_pri_mbox_file,
+ o_pri_mbox_file)
+ os.rename(o_pri_mbox_file, "%s.preb6" % (o_pri_mbox_file))
+ #
+ # move private archive mbox there if it's around
+ # and take into account all sorts of absurdities
+ #
+ print _('- updating old private mbox file')
+ if os.path.exists(o_pri_mbox_file):
+ if os.path.isfile(o_pri_mbox_file):
+ os.rename(o_pri_mbox_file, mbox_file)
+ elif not os.path.isdir(o_pri_mbox_file):
+ newname = "%s.mm_install-dunno_what_this_was_but_its_in_the_way" \
+ % o_pri_mbox_file
+ os.rename(o_pri_mbox_file, newname)
+ print _("""\
+ unknown file in the way, moving
+ %(o_pri_mbox_file)s
+ to
+ %(newname)s""")
+ else:
+ # directory
+ print _("""\
+ looks like you have a really recent CVS installation...
+ you're either one brave soul, or you already ran me""")
+
+
+ #
+ # move public archive mbox there if it's around
+ # and take into account all sorts of absurdities.
+ #
+ print _('- updating old public mbox file')
+ if os.path.exists(o_pub_mbox_file):
+ if os.path.isfile(o_pub_mbox_file):
+ os.rename(o_pub_mbox_file, mbox_file)
+ elif not os.path.isdir(o_pub_mbox_file):
+ newname = "%s.mm_install-dunno_what_this_was_but_its_in_the_way" \
+ % o_pub_mbox_file
+ os.rename(o_pub_mbox_file, newname)
+ print _("""\
+ unknown file in the way, moving
+ %(o_pub_mbox_file)s
+ to
+ %(newname)s""")
+ else: # directory
+ print _("""\
+ looks like you have a really recent CVS installation...
+ you're either one brave soul, or you already ran me""")
+
+ #
+ # move the html archives there
+ #
+ if os.path.isdir(o_html_dir):
+ os.rename(o_html_dir, html_dir)
+ #
+ # chmod the html archives
+ #
+ os.chmod(html_dir, 02775)
+ # BAW: Is this still necessary?!
+ mlist.Save()
+ #
+ # check to see if pre-b4 list-specific templates are around
+ # and move them to the new place if there's not already
+ # a new one there
+ #
+ tmpl_dir = os.path.join(mm_cfg.PREFIX, "templates")
+ list_dir = os.path.join(mm_cfg.PREFIX, "lists")
+ b4_tmpl_dir = os.path.join(tmpl_dir, mlist._internal_name)
+ new_tmpl_dir = os.path.join(list_dir, mlist._internal_name)
+ if os.path.exists(b4_tmpl_dir):
+ print _("""\
+- This list looks like it might have <= b4 list templates around""")
+ for f in os.listdir(b4_tmpl_dir):
+ o_tmpl = os.path.join(b4_tmpl_dir, f)
+ n_tmpl = os.path.join(new_tmpl_dir, f)
+ if not os.path.exists(n_tmpl):
+ os.rename(o_tmpl, n_tmpl)
+ print _('- moved %(o_tmpl)s to %(n_tmpl)s')
+ else:
+ print _("""\
+- both %(o_tmpl)s and %(n_tmpl)s exist, leaving untouched""")
+ #
+ # Move all the templates to the en language subdirectory as required for
+ # Mailman 2.1
+ #
+ move_language_templates(mlist)
+ # Avoid eating filehandles with the list lockfiles
+ mlist.Unlock()
+ return 0
+
+
+
+def archive_path_fixer(unused_arg, dir, files):
+ # Passed to os.path.walk to fix the perms on old html archives.
+ for f in files:
+ abs = os.path.join(dir, f)
+ if os.path.isdir(abs):
+ if f == "database":
+ os.chmod(abs, 02770)
+ else:
+ os.chmod(abs, 02775)
+ elif os.path.isfile(abs):
+ os.chmod(abs, 0664)
+
+def remove_old_sources(module):
+ # Also removes old directories.
+ src = '%s/%s' % (mm_cfg.PREFIX, module)
+ pyc = src + "c"
+ if os.path.isdir(src):
+ print _('removing directory %(src)s and everything underneath')
+ shutil.rmtree(src)
+ elif os.path.exists(src):
+ print _('removing %(src)s')
+ try:
+ os.unlink(src)
+ except os.error, rest:
+ print _("Warning: couldn't remove %(src)s -- %(rest)s")
+ if module.endswith('.py') and os.path.exists(pyc):
+ try:
+ os.unlink(pyc)
+ except os.error, rest:
+ print _("couldn't remove old file %(pyc)s -- %(rest)s")
+
+
+def update_qfiles():
+ print _('updating old qfiles')
+ prefix = `time.time()` + '+'
+ # Be sure the qfiles/in directory exists (we don't really need the
+ # switchboard object, but it's convenient for creating the directory).
+ sb = Switchboard(mm_cfg.INQUEUE_DIR)
+ for file in os.listdir(mm_cfg.QUEUE_DIR):
+ # Updating means just mokving the .db and .msg files to qfiles/in where
+ # it should be dequeued, converted, and processed normally.
+ if file.endswith('.msg'):
+ oldmsgfile = os.path.join(mm_cfg.QUEUE_DIR, file)
+ newmsgfile = os.path.join(mm_cfg.INQUEUE_DIR, prefix + file)
+ os.rename(oldmsgfile, newmsgfile)
+ elif file.endswith('.db'):
+ olddbfile = os.path.join(mm_cfg.QUEUE_DIR, file)
+ newdbfile = os.path.join(mm_cfg.INQUEUE_DIR, prefix + file)
+ os.rename(olddbfile, newdbfile)
+
+
+
+def main():
+ errors = 0
+ # get rid of old stuff
+ print _('getting rid of old source files')
+ for mod in ('Mailman/Archiver.py', 'Mailman/HyperArch.py',
+ 'Mailman/HyperDatabase.py', 'Mailman/pipermail.py',
+ 'Mailman/smtplib.py', 'Mailman/Cookie.py',
+ 'bin/update_to_10b6', 'scripts/mailcmd',
+ 'scripts/mailowner', 'mail/wrapper', 'Mailman/pythonlib',
+ 'cgi-bin/archives', 'Mailman/MailCommandHandler'):
+ remove_old_sources(mod)
+ listnames = Utils.list_names()
+ if not listnames:
+ print _('no lists == nothing to do, exiting')
+ return
+ #
+ # for people with web archiving, make sure the directories
+ # in the archiving are set with proper perms for b6.
+ #
+ if os.path.isdir("%s/public_html/archives" % mm_cfg.PREFIX):
+ print _("""\
+fixing all the perms on your old html archives to work with b6
+If your archives are big, this could take a minute or two...""")
+ os.path.walk("%s/public_html/archives" % mm_cfg.PREFIX,
+ archive_path_fixer, "")
+ print _('done')
+ for listname in listnames:
+ print _('Updating mailing list: %(listname)s')
+ errors = errors + dolist(listname)
+ print
+ print _('Updating Usenet watermarks')
+ wmfile = os.path.join(mm_cfg.DATA_DIR, 'gate_watermarks')
+ try:
+ fp = open(wmfile)
+ except IOError:
+ print _('- nothing to update here')
+ else:
+ d = marshal.load(fp)
+ fp.close()
+ for listname in d.keys():
+ if listname not in listnames:
+ # this list no longer exists
+ continue
+ mlist = MailList.MailList(listname, lock=0)
+ try:
+ mlist.Lock(0.5)
+ except TimeOutError:
+ print >> sys.stderr, _(
+ 'WARNING: could not acquire lock for list: %(listname)s')
+ errors = errors + 1
+ else:
+ # Pre 1.0b7 stored 0 in the gate_watermarks file to indicate
+ # that no gating had been done yet. Without coercing this to
+ # None, the list could now suddenly get flooded.
+ mlist.usenet_watermark = d[listname] or None
+ mlist.Save()
+ mlist.Unlock()
+ os.unlink(wmfile)
+ print _('- usenet watermarks updated and gate_watermarks removed')
+ #
+ # In Mailman 2.1, the pending database format and file name has changed.
+ #
+ oldpendingfile = os.path.join(mm_cfg.DATA_DIR, 'pending_subscriptions.db')
+ try:
+ fp = open(oldpendingfile)
+ except IOError, e:
+ if e.errno <> errno.ENOENT: raise
+ else:
+ print _('Updating old pending_subscriptions.db database')
+ from Mailman import Pending
+ db = marshal.load(fp)
+ Pending._update(db)
+ fp.close()
+ os.unlink(oldpendingfile)
+ #
+ # In Mailman 2.1, the qfiles directory has a different structure and a
+ # different content.
+ #
+ update_qfiles()
+ #
+ # This warning was necessary for the upgrade from 1.0b9 to 1.0b10.
+ # There's no good way of figuring this out for releases prior to 2.0beta2
+ # :(
+ #
+ if lastversion == NOTFRESH:
+ print _("""
+
+NOTE NOTE NOTE NOTE NOTE
+
+ You are upgrading an existing Mailman installation, but I can't tell what
+ version you were previously running.
+
+ If you are upgrading from Mailman 1.0b9 or earlier you will need to
+ manually update your mailing lists. For each mailing list you need to
+ copy the file templates/options.html lists/<listname>/options.html.
+
+ However, if you have edited this file via the Web interface, you will have
+ to merge your changes into this file, otherwise you will lose your
+ changes.
+
+NOTE NOTE NOTE NOTE NOTE
+
+""")
+ return errors
+
+
+
+def usage(code, msg=''):
+ if code:
+ fd = sys.stderr
+ else:
+ fd = sys.stdout
+ print >> fd, _(__doc__) % globals()
+ if msg:
+ print >> sys.stderr, msg
+ sys.exit(code)
+
+
+
+if __name__ == '__main__':
+ try:
+ opts, args = getopt.getopt(sys.argv[1:], 'hf',
+ ['help', 'force'])
+ except getopt.error, msg:
+ usage(1, msg)
+
+ if args:
+ usage(1, 'Unexpected arguments: %s' % args)
+
+ force = 0
+ for opt, arg in opts:
+ if opt in ('-h', '--help'):
+ usage(0)
+ elif opt in ('-f', '--force'):
+ force = 1
+
+ # calculate the versions
+ lastversion, thisversion = calcversions()
+ hexlversion = hex(lastversion)
+ hextversion = hex(thisversion)
+ if lastversion == thisversion and not force:
+ # nothing to do
+ print _('No updates are necessary.')
+ sys.exit(0)
+ if lastversion > thisversion and not force:
+ print _("""\
+Downgrade detected, from version %(hexlversion)s to version %(hextversion)s
+This is probably not safe.
+Exiting.""")
+ sys.exit(1)
+ print _('Upgrading from version %(hexlversion)s to %(hextversion)s')
+ errors = main()
+ if not errors:
+ # Record the version we just upgraded to
+ fp = open(LMVFILE, 'w')
+ fp.write(hex(mm_cfg.HEX_VERSION) + '\n')
+ fp.close()
+ else:
+ lockdir = mm_cfg.LOCK_DIR
+ print _('''\
+
+ERROR:
+
+The locks for some lists could not be acquired. This means that either
+Mailman was still active when you upgraded, or there were stale locks in the
+%(lockdir)s directory.
+
+You must put Mailman into a quiescent state and remove all stale locks, then
+re-run "make update" manually. See the INSTALL and UPGRADE files for details.
+''')
diff --git a/bin/version b/bin/version
new file mode 100644
index 00000000..6e10e869
--- /dev/null
+++ b/bin/version
@@ -0,0 +1,26 @@
+#! @PYTHON@
+#
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Print the Mailman version.
+"""
+
+import paths
+import Mailman.mm_cfg
+from Mailman.i18n import _
+
+print _('Using Mailman version:'), Mailman.mm_cfg.VERSION
diff --git a/bin/withlist b/bin/withlist
new file mode 100644
index 00000000..a9bd6361
--- /dev/null
+++ b/bin/withlist
@@ -0,0 +1,275 @@
+#! @PYTHON@
+#
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""General framework for interacting with a mailing list object.
+
+There are two ways to use this script: interactively or programmatically.
+Using it interactively allows you to play with, examine and modify a MailList
+object from Python's interactive interpreter. When running interactively, a
+MailList object called `m' will be available in the global namespace. It also
+loads the class MailList into the global namespace.
+
+Programmatically, you can write a function to operate on a MailList object,
+and this script will take care of the housekeeping (see below for examples).
+In that case, the general usage syntax is:
+
+%% bin/withlist [options] listname [args ...]
+
+Options:
+
+ -l / --lock
+ Lock the list when opening. Normally the list is opened unlocked
+ (e.g. for read-only operations). You can always lock the file after
+ the fact by typing `m.Lock()'
+
+ Note that if you use this option, you should explicitly call m.Save()
+ before exiting, since the interpreter's clean up procedure will not
+ automatically save changes to the MailList object (but it will unlock
+ the list).
+
+ -i / --interactive
+ Leaves you at an interactive prompt after all other processing is
+ complete. This is the default unless the -r option is given.
+
+ --run [module.]callable
+ -r [module.]callable
+ This can be used to run a script with the opened MailList object.
+ This works by attempting to import `module' (which must already be
+ accessible on your sys.path), and then calling `callable' from the
+ module. callable can be a class or function; it is called with the
+ MailList object as the first argument. If additional args are given
+ on the command line, they are passed as subsequent positional args to
+ the callable.
+
+ Note that `module.' is optional; if it is omitted then a module with
+ the name `callable' will be imported.
+
+ The global variable `r' will be set to the results of this call.
+
+ --all / -a
+ This option only works with the -r option. Use this if you want to
+ execute the script on all mailing lists. When you use -a you should
+ not include a listname argument on the command line. The variable `r'
+ will be a list of all the results.
+
+ --quiet / -q
+ Suppress all status messages.
+
+ --help / -h
+ Print this message and exit
+
+
+Here's an example of how to use the -r option. Say you have a file in the
+Mailman installation directory called `listaddr.py', with the following
+two functions:
+
+def listaddr(mlist):
+ print mlist.GetListEmail()
+
+def requestaddr(mlist):
+ print mlist.GetRequestEmail()
+
+Now, from the command line you can print the list's posting address by running
+the following from the command line:
+
+%% bin/withlist -r listaddr mylist
+Loading list: mylist (unlocked)
+Importing listaddr ...
+Running listaddr.listaddr() ...
+mylist@myhost.com
+
+And you can print the list's request address by running:
+
+%% bin/withlist -r listaddr.requestaddr mylist
+Loading list: mylist (unlocked)
+Importing listaddr ...
+Running listaddr.requestaddr() ...
+mylist-request@myhost.com
+
+As another example, say you wanted to change the password for a particular
+user on a particular list. You could put the following function in a file
+called `changepw.py':
+
+from Mailman.Errors import NotAMember
+
+def changepw(mlist, addr, newpasswd):
+ try:
+ mlist.setMemberPassword(addr, newpasswd)
+ mlist.Save()
+ except NotAMember:
+ print 'No address matched:', addr
+
+and run this from the command line:
+%% bin/withlist -l -r changepw mylist somebody@somewhere.org foobar
+"""
+
+import sys
+import getopt
+import code
+
+import paths
+from Mailman import Utils
+from Mailman import MailList
+from Mailman import Errors
+from Mailman.i18n import _
+
+# `m' will be the MailList object and `r' will be the results of the callable
+m = None
+r = None
+VERBOSE = 1
+LOCK = 0
+
+
+
+def usage(code, msg=''):
+ if code:
+ fd = sys.stderr
+ else:
+ fd = sys.stdout
+ print >> fd, _(__doc__)
+ if msg:
+ print >> fd, msg
+ sys.exit(code)
+
+
+def atexit():
+ """Unlock a locked list, but do not implicitly Save() it.
+
+ This does not get run if the interpreter exits because of a signal, or if
+ os._exit() is called. It will get called if an exception occurs though.
+ """
+ global m
+ if not m:
+ return
+ if m.Locked():
+ if VERBOSE:
+ listname = m.internal_name()
+ print >> sys.stderr, _(
+ 'Unlocking (but not saving) list: %(listname)s')
+ m.Unlock()
+ if VERBOSE:
+ print >> sys.stderr, _('Finalizing')
+ del m
+
+
+
+def do_list(listname, args, func):
+ global m
+ # first try to open mailing list
+ if VERBOSE:
+ print >> sys.stderr, _('Loading list %(listname)s'),
+ if LOCK:
+ print >> sys.stderr, _('(locked)')
+ else:
+ print >> sys.stderr, _('(unlocked)')
+
+ try:
+ m = MailList.MailList(listname, lock=LOCK)
+ except Errors.MMUnknownListError:
+ print >> sys.stderr, _('Unknown list: %(listname)s')
+ m = None
+
+ # try to import the module and run the callable
+ if func:
+ return func(m, *args)
+ return None
+
+
+
+def main():
+ global VERBOSE
+ global LOCK
+ global r
+ try:
+ opts, args = getopt.getopt(
+ sys.argv[1:], 'hlr:qia',
+ ['help', 'lock', 'run=', 'quiet', 'interactive', 'all'])
+ except getopt.error, msg:
+ usage(1, msg)
+
+ run = None
+ interact = None
+ all = 0
+ for opt, arg in opts:
+ if opt in ('-h', '--help'):
+ usage(0)
+ elif opt in ('-l', '--lock'):
+ LOCK = 1
+ elif opt in ('-r', '--run'):
+ run = arg
+ elif opt in ('-q', '--quiet'):
+ VERBOSE = 0
+ elif opt in ('-i', '--interactive'):
+ interact = 1
+ elif opt in ('-a', '--all'):
+ all = 1
+
+ if len(args) < 1 and not all:
+ usage(1, _('No list name supplied.'))
+
+ if all and not run:
+ usage(1, _('--all requires --run'))
+
+ # The default for interact is 1 unless -r was given
+ if interact is None:
+ if run is None:
+ interact = 1
+ else:
+ interact = 0
+
+ # try to import the module for the callable
+ func = None
+ if run:
+ i = run.find('.')
+ if i < 0:
+ module = run
+ callable = run
+ else:
+ module = run[:i]
+ callable = run[i+1:]
+ if VERBOSE:
+ print >> sys.stderr, _('Importing %(module)s...')
+ mod = __import__(module)
+ if VERBOSE:
+ print >> sys.stderr, _('Running %(module)s.%(callable)s()...')
+ func = getattr(mod, callable)
+
+ if all:
+ r = [do_list(listname, args, func) for listname in Utils.list_names()]
+ else:
+ listname = args.pop(0).lower().strip()
+ r = do_list(listname, args, func)
+
+ # Now go to interactive mode, perhaps
+ if interact:
+ # Attempt to import the readline module, so we emulate the interactive
+ # console as closely as possible. Don't worry if it doesn't import.
+ # readline works by side-effect.
+ try:
+ import readline
+ except ImportError:
+ pass
+ namespace = globals().copy()
+ namespace.update(locals())
+ code.InteractiveConsole(namespace).interact(
+ _("The variable `m' is the %(listname)s MailList instance"))
+
+
+
+sys.exitfunc = atexit
+main()
diff --git a/configure b/configure
new file mode 100755
index 00000000..cd8cda9b
--- /dev/null
+++ b/configure
@@ -0,0 +1,2415 @@
+#! /bin/sh
+
+# From configure.in Revision: 2.38
+
+# Guess values for system-dependent variables and create Makefiles.
+# Generated automatically using autoconf version 2.13
+# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
+#
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+
+# Defaults:
+ac_help=
+ac_default_prefix=/usr/local
+# Any additions from configure.in:
+ac_default_prefix=/usr/local/mailman
+ac_help="$ac_help
+ --with-python specify path to Python interpreter"
+ac_help="$ac_help
+ --without-gcc never use gcc"
+ac_help="$ac_help
+ --with-var-prefix directory for mutable data [/var/mailman]"
+ac_help="$ac_help
+ --without-permcheck skip the check for target directory permissions"
+ac_help="$ac_help
+ --with-username specify a user name other than \"mailman\""
+ac_help="$ac_help
+ --with-groupname specify a group name other than \"mailman\""
+ac_help="$ac_help
+ --with-mail-gid group name mail programs run as"
+ac_help="$ac_help
+ --with-cgi-gid group name CGI programs run as"
+ac_help="$ac_help
+ --with-cgi-ext specify extension for CGI programs (include dot)"
+ac_help="$ac_help
+ --with-mailhost specify the hostname part for outgoing email"
+ac_help="$ac_help
+ --with-urlhost specify the hostname part of urls"
+
+# Initialize some variables set by options.
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+build=NONE
+cache_file=./config.cache
+exec_prefix=NONE
+host=NONE
+no_create=
+nonopt=NONE
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+target=NONE
+verbose=
+x_includes=NONE
+x_libraries=NONE
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datadir='${prefix}/share'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+libdir='${exec_prefix}/lib'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+infodir='${prefix}/info'
+mandir='${prefix}/man'
+
+# Initialize some other variables.
+subdirs=
+MFLAGS= MAKEFLAGS=
+SHELL=${CONFIG_SHELL-/bin/sh}
+# Maximum number of lines to put in a shell here document.
+ac_max_here_lines=12
+
+ac_prev=
+for ac_option
+do
+
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval "$ac_prev=\$ac_option"
+ ac_prev=
+ continue
+ fi
+
+ case "$ac_option" in
+ -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+ *) ac_optarg= ;;
+ esac
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case "$ac_option" in
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir="$ac_optarg" ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build="$ac_optarg" ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file="$ac_optarg" ;;
+
+ -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
+ | --da=*)
+ datadir="$ac_optarg" ;;
+
+ -disable-* | --disable-*)
+ ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
+ { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+ fi
+ ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+ eval "enable_${ac_feature}=no" ;;
+
+ -enable-* | --enable-*)
+ ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
+ { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+ fi
+ ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+ case "$ac_option" in
+ *=*) ;;
+ *) ac_optarg=yes ;;
+ esac
+ eval "enable_${ac_feature}='$ac_optarg'" ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix="$ac_optarg" ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he)
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat << EOF
+Usage: configure [options] [host]
+Options: [defaults in brackets after descriptions]
+Configuration:
+ --cache-file=FILE cache test results in FILE
+ --help print this message
+ --no-create do not create output files
+ --quiet, --silent do not print \`checking...' messages
+ --version print the version of autoconf that created configure
+Directory and file names:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ [$ac_default_prefix]
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ [same as prefix]
+ --bindir=DIR user executables in DIR [EPREFIX/bin]
+ --sbindir=DIR system admin executables in DIR [EPREFIX/sbin]
+ --libexecdir=DIR program executables in DIR [EPREFIX/libexec]
+ --datadir=DIR read-only architecture-independent data in DIR
+ [PREFIX/share]
+ --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data in DIR
+ [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var]
+ --libdir=DIR object code libraries in DIR [EPREFIX/lib]
+ --includedir=DIR C header files in DIR [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include]
+ --infodir=DIR info documentation in DIR [PREFIX/info]
+ --mandir=DIR man documentation in DIR [PREFIX/man]
+ --srcdir=DIR find the sources in DIR [configure dir or ..]
+ --program-prefix=PREFIX prepend PREFIX to installed program names
+ --program-suffix=SUFFIX append SUFFIX to installed program names
+ --program-transform-name=PROGRAM
+ run sed PROGRAM on installed program names
+EOF
+ cat << EOF
+Host type:
+ --build=BUILD configure for building on BUILD [BUILD=HOST]
+ --host=HOST configure for HOST [guessed]
+ --target=TARGET configure for TARGET [TARGET=HOST]
+Features and packages:
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+ --x-includes=DIR X include files are in DIR
+ --x-libraries=DIR X library files are in DIR
+EOF
+ if test -n "$ac_help"; then
+ echo "--enable and --with options recognized:$ac_help"
+ fi
+ exit 0 ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host="$ac_optarg" ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir="$ac_optarg" ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir="$ac_optarg" ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir="$ac_optarg" ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir="$ac_optarg" ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst \
+ | --locals | --local | --loca | --loc | --lo)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* \
+ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+ localstatedir="$ac_optarg" ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir="$ac_optarg" ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir="$ac_optarg" ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix="$ac_optarg" ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix="$ac_optarg" ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix="$ac_optarg" ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name="$ac_optarg" ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir="$ac_optarg" ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir="$ac_optarg" ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site="$ac_optarg" ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir="$ac_optarg" ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir="$ac_optarg" ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target="$ac_optarg" ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers)
+ echo "configure generated by autoconf version 2.13"
+ exit 0 ;;
+
+ -with-* | --with-*)
+ ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
+ { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+ fi
+ ac_package=`echo $ac_package| sed 's/-/_/g'`
+ case "$ac_option" in
+ *=*) ;;
+ *) ac_optarg=yes ;;
+ esac
+ eval "with_${ac_package}='$ac_optarg'" ;;
+
+ -without-* | --without-*)
+ ac_package=`echo $ac_option|sed -e 's/-*without-//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
+ { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+ fi
+ ac_package=`echo $ac_package| sed 's/-/_/g'`
+ eval "with_${ac_package}=no" ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes="$ac_optarg" ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries="$ac_optarg" ;;
+
+ -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
+ ;;
+
+ *)
+ if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
+ echo "configure: warning: $ac_option: invalid host type" 1>&2
+ fi
+ if test "x$nonopt" != xNONE; then
+ { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
+ fi
+ nonopt="$ac_option"
+ ;;
+
+ esac
+done
+
+if test -n "$ac_prev"; then
+ { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
+fi
+
+trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+# File descriptor usage:
+# 0 standard input
+# 1 file creation
+# 2 errors and warnings
+# 3 some systems may open it to /dev/tty
+# 4 used on the Kubota Titan
+# 6 checking for... messages and results
+# 5 compiler messages saved in config.log
+if test "$silent" = yes; then
+ exec 6>/dev/null
+else
+ exec 6>&1
+fi
+exec 5>./config.log
+
+echo "\
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+" 1>&5
+
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Also quote any args containing shell metacharacters.
+ac_configure_args=
+for ac_arg
+do
+ case "$ac_arg" in
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c) ;;
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
+ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
+ ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+ *) ac_configure_args="$ac_configure_args $ac_arg" ;;
+ esac
+done
+
+# NLS nuisances.
+# Only set these to C if already set. These must not be set unconditionally
+# because not all systems understand e.g. LANG=C (notably SCO).
+# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
+# Non-C LC_CTYPE values break the ctype check.
+if test "${LANG+set}" = set; then LANG=C; export LANG; fi
+if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
+if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
+if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -rf conftest* confdefs.h
+# AIX cpp loses on an empty file, so make sure it contains at least a newline.
+echo > confdefs.h
+
+# A filename unique to this package, relative to the directory that
+# configure is in, which we can look for to find out if srcdir is correct.
+ac_unique_file=src/common.h
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then its parent.
+ ac_prog=$0
+ ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
+ test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
+ srcdir=$ac_confdir
+ if test ! -r $srcdir/$ac_unique_file; then
+ srcdir=..
+ fi
+else
+ ac_srcdir_defaulted=no
+fi
+if test ! -r $srcdir/$ac_unique_file; then
+ if test "$ac_srcdir_defaulted" = yes; then
+ { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
+ else
+ { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
+ fi
+fi
+srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
+
+# Prefer explicitly selected file to automatically selected ones.
+if test -z "$CONFIG_SITE"; then
+ if test "x$prefix" != xNONE; then
+ CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+ else
+ CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+ fi
+fi
+for ac_site_file in $CONFIG_SITE; do
+ if test -r "$ac_site_file"; then
+ echo "loading site script $ac_site_file"
+ . "$ac_site_file"
+ fi
+done
+
+if test -r "$cache_file"; then
+ echo "loading cache $cache_file"
+ . $cache_file
+else
+ echo "creating cache $cache_file"
+ > $cache_file
+fi
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+ac_exeext=
+ac_objext=o
+if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+ # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
+ if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+ ac_n= ac_c='
+' ac_t=' '
+ else
+ ac_n=-n ac_c= ac_t=
+ fi
+else
+ ac_n= ac_c='\c' ac_t=
+fi
+
+
+
+
+# /usr/local/mailman is the default installation directory
+
+
+
+# Check for Python! Better be found on $PATH
+echo $ac_n "checking for --with-python""... $ac_c" 1>&6
+echo "configure:558: checking for --with-python" >&5
+# Check whether --with-python or --without-python was given.
+if test "${with_python+set}" = set; then
+ withval="$with_python"
+ :
+fi
+
+case "$with_python" in
+ "") ans="no";;
+ *) ans="$with_python"
+esac
+echo "$ac_t""$ans" 1>&6
+
+if test -z "$with_python"
+then
+ # Extract the first word of "python", so it can be a program name with args.
+set dummy python; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:576: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_with_python'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$with_python" in
+ /*)
+ ac_cv_path_with_python="$with_python" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_with_python="$with_python" # Let the user override the test with a dos path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_path_with_python="$ac_dir/$ac_word"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_path_with_python" && ac_cv_path_with_python="/usr/local/bin/python"
+ ;;
+esac
+fi
+with_python="$ac_cv_path_with_python"
+if test -n "$with_python"; then
+ echo "$ac_t""$with_python" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+fi
+
+echo $ac_n "checking Python interpreter""... $ac_c" 1>&6
+echo "configure:612: checking Python interpreter" >&5
+if test ! -x $with_python
+then
+ { echo "configure: error:
+
+***** No Python interpreter found!
+***** Try including the configure option
+***** --with-python=/path/to/python/interpreter" 1>&2; exit 1; }
+fi
+
+PYTHON=$with_python
+echo "$ac_t""$PYTHON" 1>&6
+
+# See if Python is new enough. 2.1 or better is required, with 2.1.3
+# recommended.
+echo $ac_n "checking Python version""... $ac_c" 1>&6
+echo "configure:628: checking Python version" >&5
+
+cat > conftest.py <<EOF
+import sys
+try:
+ v = sys.hexversion
+except AttributeError:
+ v = 0
+# int of hexversion 0x2010000
+if v >= 0x2010000:
+ s = sys.version.split()[0]
+else:
+ s = ""
+fp = open("conftest.out", "w")
+fp.write("%s\n" % s)
+fp.close()
+EOF
+
+$PYTHON conftest.py
+version=`cat conftest.out`
+rm -f conftest.out conftest.py
+if test -z "$version"
+then
+ { echo "configure: error:
+
+***** $PYTHON is too old (or broken)
+***** Python 2.1 or newer is required
+***** Python 2.1.3 or better is recommended" 1>&2; exit 1; }
+fi
+echo "$ac_t""$version" 1>&6
+
+# Make sure distutils is available. Some Linux Python packages split
+# distutils into the "-devel" package, so they need both.
+echo $ac_n "checking that Python has a working distutils""... $ac_c" 1>&6
+echo "configure:662: checking that Python has a working distutils" >&5
+
+cat > conftest.py <<EOF
+try:
+ import distutils.errors
+ import distutils.sysconfig
+except ImportError:
+ res = "no"
+else:
+ try:
+ distutils.sysconfig.get_config_vars()
+ except distutils.errors.DistutilsPlatformError:
+ res = "no"
+ else:
+ res = "yes"
+fp = open("conftest.out", "w")
+fp.write("%s\n" % res)
+fp.close()
+EOF
+
+$PYTHON conftest.py
+havedistutils=`cat conftest.out`
+rm -f conftest.out conftest.py
+if test "$havedistutils" != "yes"
+then
+ { echo "configure: error:
+
+***** Distutils is not available or is incomplete for $PYTHON
+***** If you installed Python from RPM (or other package manager)
+***** be sure to install the -devel package, or install Python
+***** from source. See README.LINUX for details" 1>&2; exit 1; }
+fi
+echo "$ac_t""$havedistutils" 1>&6
+
+# Checks for programs.
+ac_aux_dir=
+for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
+ if test -f $ac_dir/install-sh; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install-sh -c"
+ break
+ elif test -f $ac_dir/install.sh; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install.sh -c"
+ break
+ fi
+done
+if test -z "$ac_aux_dir"; then
+ { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
+fi
+ac_config_guess=$ac_aux_dir/config.guess
+ac_config_sub=$ac_aux_dir/config.sub
+ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
+
+# Find a good install program. We prefer a C program (faster),
+# so one script is as good as another. But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# ./install, which can be erroneously created by make from ./install.sh.
+echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
+echo "configure:728: checking for a BSD compatible install" >&5
+if test -z "$INSTALL"; then
+if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":"
+ for ac_dir in $PATH; do
+ # Account for people who put trailing slashes in PATH elements.
+ case "$ac_dir/" in
+ /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
+ *)
+ # OSF1 and SCO ODT 3.0 have their own names for install.
+ # Don't use installbsd from OSF since it installs stuff as root
+ # by default.
+ for ac_prog in ginstall scoinst install; do
+ if test -f $ac_dir/$ac_prog; then
+ if test $ac_prog = install &&
+ grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
+ # AIX install. It has an incompatible calling convention.
+ :
+ else
+ ac_cv_path_install="$ac_dir/$ac_prog -c"
+ break 2
+ fi
+ fi
+ done
+ ;;
+ esac
+ done
+ IFS="$ac_save_IFS"
+
+fi
+ if test "${ac_cv_path_install+set}" = set; then
+ INSTALL="$ac_cv_path_install"
+ else
+ # As a last resort, use the slow shell script. We don't cache a
+ # path for INSTALL within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the path is relative.
+ INSTALL="$ac_install_sh"
+ fi
+fi
+echo "$ac_t""$INSTALL" 1>&6
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
+echo "configure:781: checking whether ${MAKE-make} sets \${MAKE}" >&5
+set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftestmake <<\EOF
+all:
+ @echo 'ac_maketemp="${MAKE}"'
+EOF
+# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=`
+if test -n "$ac_maketemp"; then
+ eval ac_cv_prog_make_${ac_make}_set=yes
+else
+ eval ac_cv_prog_make_${ac_make}_set=no
+fi
+rm -f conftestmake
+fi
+if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ SET_MAKE=
+else
+ echo "$ac_t""no" 1>&6
+ SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+# Extract the first word of "true", so it can be a program name with args.
+set dummy true; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:810: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_TRUE'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$TRUE" in
+ /*)
+ ac_cv_path_TRUE="$TRUE" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_TRUE="$TRUE" # Let the user override the test with a dos path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH:/bin:/usr/bin"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_path_TRUE="$ac_dir/$ac_word"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_path_TRUE" && ac_cv_path_TRUE="true"
+ ;;
+esac
+fi
+TRUE="$ac_cv_path_TRUE"
+if test -n "$TRUE"; then
+ echo "$ac_t""$TRUE" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+
+# Find compiler, allow alternatives to gcc
+echo $ac_n "checking for --without-gcc""... $ac_c" 1>&6
+echo "configure:846: checking for --without-gcc" >&5
+# Check whether --with-gcc or --without-gcc was given.
+if test "${with_gcc+set}" = set; then
+ withval="$with_gcc"
+
+ case $withval in
+ no) CC=cc
+ without_gcc=yes;;
+ yes) CC=gcc
+ without_gcc=no;;
+ *) CC=$withval
+ without_gcc=$withval;;
+ esac
+else
+ without_gcc=no;
+fi
+
+echo "$ac_t""$without_gcc" 1>&6
+
+# If the user switches compilers, we can't believe the cache
+if test ! -z "$ac_cv_prog_CC" -a ! -z "$CC" -a "$CC" != "$ac_cv_prog_CC"
+then
+ { echo "configure: error: cached CC is different -- throw away $cache_file
+(it is also a good idea to do 'make clean' before compiling)" 1>&2; exit 1; }
+fi
+
+# Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:875: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_CC="gcc"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+ echo "$ac_t""$CC" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+if test -z "$CC"; then
+ # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:905: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_prog_rejected=no
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
+ ac_prog_rejected=yes
+ continue
+ fi
+ ac_cv_prog_CC="cc"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+if test $ac_prog_rejected = yes; then
+ # We found a bogon in the path, so make sure we never use it.
+ set dummy $ac_cv_prog_CC
+ shift
+ if test $# -gt 0; then
+ # We chose a different compiler from the bogus one.
+ # However, it has the same basename, so the bogon will be chosen
+ # first if we set CC to just the basename; use the full file name.
+ shift
+ set dummy "$ac_dir/$ac_word" "$@"
+ shift
+ ac_cv_prog_CC="$@"
+ fi
+fi
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+ echo "$ac_t""$CC" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+ if test -z "$CC"; then
+ case "`uname -s`" in
+ *win32* | *WIN32*)
+ # Extract the first word of "cl", so it can be a program name with args.
+set dummy cl; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:956: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_CC="cl"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+ echo "$ac_t""$CC" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+ ;;
+ esac
+ fi
+ test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
+fi
+
+echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
+echo "configure:988: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+cat > conftest.$ac_ext << EOF
+
+#line 999 "configure"
+#include "confdefs.h"
+
+main(){return(0);}
+EOF
+if { (eval echo configure:1004: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ ac_cv_prog_cc_works=yes
+ # If we can't run a trivial program, we are probably using a cross compiler.
+ if (./conftest; exit) 2>/dev/null; then
+ ac_cv_prog_cc_cross=no
+ else
+ ac_cv_prog_cc_cross=yes
+ fi
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ ac_cv_prog_cc_works=no
+fi
+rm -fr conftest*
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
+if test $ac_cv_prog_cc_works = no; then
+ { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
+fi
+echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
+echo "configure:1030: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
+cross_compiling=$ac_cv_prog_cc_cross
+
+echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
+echo "configure:1035: checking whether we are using GNU C" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.c <<EOF
+#ifdef __GNUC__
+ yes;
+#endif
+EOF
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1044: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+ ac_cv_prog_gcc=yes
+else
+ ac_cv_prog_gcc=no
+fi
+fi
+
+echo "$ac_t""$ac_cv_prog_gcc" 1>&6
+
+if test $ac_cv_prog_gcc = yes; then
+ GCC=yes
+else
+ GCC=
+fi
+
+ac_test_CFLAGS="${CFLAGS+set}"
+ac_save_CFLAGS="$CFLAGS"
+CFLAGS=
+echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
+echo "configure:1063: checking whether ${CC-cc} accepts -g" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ echo 'void f(){}' > conftest.c
+if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
+ ac_cv_prog_cc_g=yes
+else
+ ac_cv_prog_cc_g=no
+fi
+rm -f conftest*
+
+fi
+
+echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
+if test "$ac_test_CFLAGS" = set; then
+ CFLAGS="$ac_save_CFLAGS"
+elif test $ac_cv_prog_cc_g = yes; then
+ if test "$GCC" = yes; then
+ CFLAGS="-g -O2"
+ else
+ CFLAGS="-g"
+ fi
+else
+ if test "$GCC" = yes; then
+ CFLAGS="-O2"
+ else
+ CFLAGS=
+ fi
+fi
+
+
+
+# Optimizer/debugger flags passed between Makefiles
+
+if test -z "$OPT"
+then
+ case $GCC in
+ yes)
+ case $ac_cv_prog_cc_g in
+ yes) OPT="-g -O2";;
+ *) OPT="-O2";;
+ esac
+ ;;
+ *) OPT="-O";;
+ esac
+fi
+
+# We better be able to execute interpreters
+# Pull the hash mark out of the macro call to avoid m4 problems.
+ac_msg="whether #! works in shell scripts"
+echo $ac_n "checking $ac_msg""... $ac_c" 1>&6
+echo "configure:1115: checking $ac_msg" >&5
+if eval "test \"`echo '$''{'ac_cv_sys_interpreter'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ echo '#! /bin/cat
+exit 69
+' > conftest
+chmod u+x conftest
+(SHELL=/bin/sh; export SHELL; ./conftest >/dev/null)
+if test $? -ne 69; then
+ ac_cv_sys_interpreter=yes
+else
+ ac_cv_sys_interpreter=no
+fi
+rm -f conftest
+fi
+
+echo "$ac_t""$ac_cv_sys_interpreter" 1>&6
+interpval="$ac_cv_sys_interpreter"
+
+if test "$ac_cv_sys_interpreter" != "yes"
+then
+ { echo "configure: error:
+
+***** Cannot execute interpreter scripts?
+***** Are you sure you system doesn't support this?" 1>&2; exit 1; }
+fi
+
+
+# Check for an alternate data directory, separate from installation dir.
+default_var_prefix="/var/mailman"
+
+echo $ac_n "checking for --with-var-prefix""... $ac_c" 1>&6
+echo "configure:1148: checking for --with-var-prefix" >&5
+# Check whether --with-var-prefix or --without-var-prefix was given.
+if test "${with_var_prefix+set}" = set; then
+ withval="$with_var_prefix"
+ :
+fi
+
+case "$with_var_prefix" in
+ yes) VAR_PREFIX="$default_var_prefix"; ans=$VAR_PREFIX;;
+ ""|no) VAR_PREFIX="$prefix"; ans="no";;
+ *) VAR_PREFIX="$with_var_prefix"; ans=$VAR_PREFIX;
+esac
+echo "$ac_t""$ans" 1>&6
+
+echo $ac_n "checking for --with-permcheck""... $ac_c" 1>&6
+echo "configure:1163: checking for --with-permcheck" >&5
+# Check whether --with-permcheck or --without-permcheck was given.
+if test "${with_permcheck+set}" = set; then
+ withval="$with_permcheck"
+ :
+fi
+
+if test -z "$with_permcheck"
+then
+ with_permcheck="yes"
+fi
+echo "$ac_t""$with_permcheck" 1>&6
+# Now make sure that $prefix is set up correctly. It must be group
+# owned by the target group, it must have the group sticky bit set, and
+# it must be a+rx
+if test "$VAR_PREFIX" = "NONE"
+then
+ VAR_PREFIX=$ac_default_prefix
+ prefixcheck=$ac_default_prefix
+else
+ prefixcheck=$VAR_PREFIX
+fi
+
+# new macro for finding group names
+
+
+
+# new macro for finding UIDs
+
+
+# Check for some other uid to use than `mailman'
+echo $ac_n "checking for --with-username""... $ac_c" 1>&6
+echo "configure:1195: checking for --with-username" >&5
+# Check whether --with-username or --without-username was given.
+if test "${with_username+set}" = set; then
+ withval="$with_username"
+ :
+fi
+
+
+if test -z "$with_username"
+then
+ with_username="mailman"
+fi
+USERNAME=$with_username
+echo "$ac_t""$USERNAME" 1>&6
+
+# User `mailman' must exist
+
+echo $ac_n "checking for user name \"$USERNAME\"""... $ac_c" 1>&6
+echo "configure:1213: checking for user name \"$USERNAME\"" >&5
+
+# MAILMAN_USER == variable name
+# $USERNAME == user id to check for
+
+
+if test -z "$MAILMAN_USER"
+then
+ cat > conftest.py <<EOF
+import pwd
+uid = ''
+for user in "$USERNAME".split():
+ try:
+ try:
+ uname = pwd.getpwuid(int(user))[0]
+ break
+ except ValueError:
+ uname = pwd.getpwnam(user)[0]
+ break
+ except KeyError:
+ uname = ''
+fp = open("conftest.out", "w")
+fp.write("%s\n" % uname)
+fp.close()
+EOF
+ $PYTHON conftest.py
+ MAILMAN_USER=`cat conftest.out`
+fi
+
+rm -f conftest.out conftest.py
+if test -z "$MAILMAN_USER"
+then
+ if test "$with_permcheck" = "yes"
+ then
+ { echo "configure: error:
+***** No \"$USERNAME\" user found!
+***** Your system must have a \"$USERNAME\" user defined
+***** (usually in your /etc/passwd file). Please see the INSTALL
+***** file for details." 1>&2; exit 1; }
+ fi
+fi
+echo "$ac_t""okay" 1>&6
+
+
+# Check for some other gid to use than `mailman'
+echo $ac_n "checking for --with-groupname""... $ac_c" 1>&6
+echo "configure:1259: checking for --with-groupname" >&5
+# Check whether --with-groupname or --without-groupname was given.
+if test "${with_groupname+set}" = set; then
+ withval="$with_groupname"
+ :
+fi
+
+
+if test -z "$with_groupname"
+then
+ with_groupname="mailman"
+fi
+GROUPNAME=$with_groupname
+echo "$ac_t""$GROUPNAME" 1>&6
+
+
+# Target group must exist
+
+echo $ac_n "checking for group name \"$GROUPNAME\"""... $ac_c" 1>&6
+echo "configure:1278: checking for group name \"$GROUPNAME\"" >&5
+
+# MAILMAN_GROUP == variable name
+# $GROUPNAME == user id to check for
+
+
+if test -z "$MAILMAN_GROUP"
+then
+ cat > conftest.py <<EOF
+import grp
+gid = ''
+for group in "$GROUPNAME".split():
+ try:
+ try:
+ gname = grp.getgrgid(int(group))[0]
+ break
+ except ValueError:
+ gname = grp.getgrnam(group)[0]
+ break
+ except KeyError:
+ gname = ''
+fp = open("conftest.out", "w")
+fp.write("%s\n" % gname)
+fp.close()
+EOF
+ $PYTHON conftest.py
+ MAILMAN_GROUP=`cat conftest.out`
+fi
+
+rm -f conftest.out conftest.py
+if test -z "$MAILMAN_GROUP"
+then
+ if test "$with_permcheck" = "yes"
+ then
+ { echo "configure: error:
+***** No \"$GROUPNAME\" group found!
+***** Your system must have a \"$GROUPNAME\" group defined
+***** (usually in your /etc/group file). Please see the INSTALL
+***** file for details." 1>&2; exit 1; }
+ fi
+fi
+echo "$ac_t""okay" 1>&6
+
+
+echo $ac_n "checking permissions on $prefixcheck""... $ac_c" 1>&6
+echo "configure:1323: checking permissions on $prefixcheck" >&5
+
+cat > conftest.py <<EOF
+import os, grp
+from stat import *
+prefix = "$prefixcheck"
+groupname = "$GROUPNAME"
+mailmangroup = "$MAILMAN_GROUP"
+mailmangid = grp.getgrnam(mailmangroup)[2]
+problems = []
+try: statdata = os.stat(prefix)
+except OSError:
+ problems.append("Directory doesn't exist: " + prefix)
+else:
+ mode = statdata[ST_MODE]
+ gid = statdata[ST_GID]
+ if mailmangid <> gid:
+ problems.append("Directory must be owned by group " +
+ groupname + ": " + prefix)
+ if (mode & S_ISGID) <> S_ISGID:
+ problems.append("Set-gid bit must be set for directory: " + prefix)
+ perms = S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH
+ if (mode & perms) <> perms:
+ problems.append("Permissions should be at least 02775: " + prefix)
+if not problems:
+ msg = "okay\n"
+else:
+ msg = '***** ' + '\n***** '.join(problems) + '\n'
+fp = open("conftest.out", "w")
+fp.write(msg)
+fp.close()
+EOF
+
+$PYTHON conftest.py
+status=`cat conftest.out`
+rm -f conftest.out conftest.py
+if test "$with_permcheck" = "yes"
+then
+ if test "$status" != "okay"
+ then
+ { echo "configure: error:
+***** Installation directory $prefixcheck is not configured properly!
+$status" 1>&2; exit 1; }
+ fi
+else
+ status="skipped"
+fi
+echo "$ac_t""$status" 1>&6
+
+
+# Now find the UIDs and GIDs
+# Support --with-mail-gid and --with-cgi-gid
+echo $ac_n "checking for mail wrapper group; i.e. --with-mail-gid""... $ac_c" 1>&6
+echo "configure:1376: checking for mail wrapper group; i.e. --with-mail-gid" >&5
+# Check whether --with-mail-gid or --without-mail-gid was given.
+if test "${with_mail_gid+set}" = set; then
+ withval="$with_mail_gid"
+ :
+fi
+
+if test -z "$with_mail_gid"
+then
+ with_mail_gid="mailman other mail daemon"
+fi
+
+# MAIL_GROUP == variable name
+# $with_mail_gid == user id to check for
+
+
+if test -z "$MAIL_GROUP"
+then
+ cat > conftest.py <<EOF
+import grp
+gid = ''
+for group in "$with_mail_gid".split():
+ try:
+ try:
+ gname = grp.getgrgid(int(group))[0]
+ break
+ except ValueError:
+ gname = grp.getgrnam(group)[0]
+ break
+ except KeyError:
+ gname = ''
+fp = open("conftest.out", "w")
+fp.write("%s\n" % gname)
+fp.close()
+EOF
+ $PYTHON conftest.py
+ MAIL_GROUP=`cat conftest.out`
+fi
+
+rm -f conftest.out conftest.py
+if test -z "$MAIL_GROUP"
+then
+ if test "$with_permcheck" = "yes"
+ then
+ { echo "configure: error:
+***** No group name \"$with_mail_gid\" found for the mail wrapper program.
+***** This is the group that your mail server will use to run Mailman's
+***** programs. You should specify an existing group with the
+***** --with-mail-gid configure option, or use --without-permcheck to
+***** skip this verification step. See also your mail server's documentation,
+***** and Mailman's INSTALL file for details" 1>&2; exit 1; }
+ else
+ MAIL_GROUP=$with_mail_gid
+ fi
+fi
+echo "$ac_t""$MAIL_GROUP" 1>&6
+
+
+echo $ac_n "checking for CGI wrapper group; i.e. --with-cgi-gid""... $ac_c" 1>&6
+echo "configure:1435: checking for CGI wrapper group; i.e. --with-cgi-gid" >&5
+# Check whether --with-cgi-gid or --without-cgi-gid was given.
+if test "${with_cgi_gid+set}" = set; then
+ withval="$with_cgi_gid"
+ :
+fi
+
+if test -z "$with_cgi_gid"
+then
+ with_cgi_gid="www www-data nobody"
+fi
+
+
+# CGI_GROUP == variable name
+# $with_cgi_gid == user id to check for
+
+
+if test -z "$CGI_GROUP"
+then
+ cat > conftest.py <<EOF
+import grp
+gid = ''
+for group in "$with_cgi_gid".split():
+ try:
+ try:
+ gname = grp.getgrgid(int(group))[0]
+ break
+ except ValueError:
+ gname = grp.getgrnam(group)[0]
+ break
+ except KeyError:
+ gname = ''
+fp = open("conftest.out", "w")
+fp.write("%s\n" % gname)
+fp.close()
+EOF
+ $PYTHON conftest.py
+ CGI_GROUP=`cat conftest.out`
+fi
+
+rm -f conftest.out conftest.py
+if test -z "$CGI_GROUP"
+then
+ if test "$with_permcheck" = "yes"
+ then
+ { echo "configure: error:
+***** No group name \"$with_cgi_gid\" found for the CGI wrapper program.
+***** This is the group that your web server will use to run Mailman's
+***** programs. You should specify an existing group with the
+***** --with-cgi-gid configure option, or use --without-permcheck to
+***** skip this verification step. See also your web server's documentation,
+***** and Mailman's INSTALL file for details" 1>&2; exit 1; }
+ else
+ CGI_GROUP=$with_cgi_gid
+ fi
+fi
+echo "$ac_t""$CGI_GROUP" 1>&6
+
+
+# Check for CGI extensions, required by some Web servers
+
+echo $ac_n "checking for CGI extensions""... $ac_c" 1>&6
+echo "configure:1497: checking for CGI extensions" >&5
+# Check whether --with-cgi-ext or --without-cgi-ext was given.
+if test "${with_cgi_ext+set}" = set; then
+ withval="$with_cgi_ext"
+ :
+fi
+
+if test -z "$with_cgi_ext"
+then
+ CGIEXT=''
+ with_cgi_ext='no'
+else
+ CGIEXT=$with_cgi_ext
+fi
+echo "$ac_t""$with_cgi_ext" 1>&6
+
+
+# figure out the default mail hostname and url host component
+
+echo $ac_n "checking for --with-mailhost""... $ac_c" 1>&6
+echo "configure:1517: checking for --with-mailhost" >&5
+# Check whether --with-mailhost or --without-mailhost was given.
+if test "${with_mailhost+set}" = set; then
+ withval="$with_mailhost"
+ :
+fi
+
+if test -z "$with_mailhost"
+then
+ MAILHOST=''
+ with_mailhost='no'
+else
+ MAILHOST=$with_mailhost
+fi
+echo "$ac_t""$with_mailhost" 1>&6
+
+
+echo $ac_n "checking for --with-urlhost""... $ac_c" 1>&6
+echo "configure:1535: checking for --with-urlhost" >&5
+# Check whether --with-urlhost or --without-urlhost was given.
+if test "${with_urlhost+set}" = set; then
+ withval="$with_urlhost"
+ :
+fi
+
+if test -z "$with_urlhost"
+then
+ URLHOST=''
+ with_urlhost='no'
+else
+ URLHOST=$with_urlhost
+fi
+echo "$ac_t""$with_urlhost" 1>&6
+
+
+cat > conftest.py <<EOF
+# python
+from socket import *
+fqdn = getfqdn()
+fp = open('conftest.out', 'w')
+print >> fp, fqdn
+print >> fp, fqdn
+fp.close()
+EOF
+$PYTHON conftest.py
+
+echo $ac_n "checking for default mail host name""... $ac_c" 1>&6
+echo "configure:1564: checking for default mail host name" >&5
+if test -z "$MAILHOST"
+then
+ MAILHOST=`sed q conftest.out`
+fi
+echo "$ac_t""$MAILHOST" 1>&6
+echo $ac_n "checking for default URL host component""... $ac_c" 1>&6
+echo "configure:1571: checking for default URL host component" >&5
+if test -z "$URLHOST"
+then
+ URLHOST=`sed -n '$p' conftest.out`
+fi
+echo "$ac_t""$URLHOST" 1>&6
+rm -f conftest.out conftest.py
+
+# Checks for libraries.
+for ac_func in strerror setregid syslog
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:1583: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 1588 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:1611: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+
+if test $ac_cv_func_syslog = no; then
+ # syslog is not in the default libraries. See if it's in some other.
+ # Additionally, for at least SCO OpenServer, syslog() is #defined to
+ # one of several _real_ functions in syslog.h, so we need to do the test
+ # with the appropriate include.
+ for lib in bsd socket inet; do
+ echo $ac_n "checking for syslog in -l$lib""... $ac_c" 1>&6
+echo "configure:1642: checking for syslog in -l$lib" >&5
+ Mailman_LIBS_save="$LIBS"; LIBS="$LIBS -l$lib"
+ cat > conftest.$ac_ext <<EOF
+#line 1645 "configure"
+#include "confdefs.h"
+#include <syslog.h>
+int main() {
+syslog(LOG_DEBUG, "Just a test...");
+; return 0; }
+EOF
+if { (eval echo configure:1652: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ echo "$ac_t""yes" 1>&6
+ cat >> confdefs.h <<\EOF
+#define HAVE_SYSLOG 1
+EOF
+
+ break
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ echo "$ac_t""no" 1>&6
+ LIBS="$Mailman_LIBS_save"
+fi
+rm -f conftest*
+ unset Mailman_LIBS_save
+ done
+fi
+
+# Checks for header files.
+echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
+echo "configure:1674: checking how to run the C preprocessor" >&5
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+ CPP=
+fi
+if test -z "$CPP"; then
+if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ # This must be in double quotes, not single quotes, because CPP may get
+ # substituted into the Makefile and "${CC-cc}" will confuse make.
+ CPP="${CC-cc} -E"
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp.
+ cat > conftest.$ac_ext <<EOF
+#line 1689 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:1695: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ :
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ CPP="${CC-cc} -E -traditional-cpp"
+ cat > conftest.$ac_ext <<EOF
+#line 1706 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:1712: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ :
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ CPP="${CC-cc} -nologo -E"
+ cat > conftest.$ac_ext <<EOF
+#line 1723 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:1729: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ :
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ CPP=/lib/cpp
+fi
+rm -f conftest*
+fi
+rm -f conftest*
+fi
+rm -f conftest*
+ ac_cv_prog_CPP="$CPP"
+fi
+ CPP="$ac_cv_prog_CPP"
+else
+ ac_cv_prog_CPP="$CPP"
+fi
+echo "$ac_t""$CPP" 1>&6
+
+echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
+echo "configure:1754: checking for ANSI C header files" >&5
+if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 1759 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:1767: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ ac_cv_header_stdc=yes
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+cat > conftest.$ac_ext <<EOF
+#line 1784 "configure"
+#include "confdefs.h"
+#include <string.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "memchr" >/dev/null 2>&1; then
+ :
+else
+ rm -rf conftest*
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+cat > conftest.$ac_ext <<EOF
+#line 1802 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "free" >/dev/null 2>&1; then
+ :
+else
+ rm -rf conftest*
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+if test "$cross_compiling" = yes; then
+ :
+else
+ cat > conftest.$ac_ext <<EOF
+#line 1823 "configure"
+#include "confdefs.h"
+#include <ctype.h>
+#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int main () { int i; for (i = 0; i < 256; i++)
+if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
+exit (0); }
+
+EOF
+if { (eval echo configure:1834: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+ :
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -fr conftest*
+ ac_cv_header_stdc=no
+fi
+rm -fr conftest*
+fi
+
+fi
+fi
+
+echo "$ac_t""$ac_cv_header_stdc" 1>&6
+if test $ac_cv_header_stdc = yes; then
+ cat >> confdefs.h <<\EOF
+#define STDC_HEADERS 1
+EOF
+
+fi
+
+for ac_hdr in syslog.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:1861: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 1866 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:1871: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+
+
+# Checks for typedefs, structures, and compiler characteristics.
+echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6
+echo "configure:1900: checking for uid_t in sys/types.h" >&5
+if eval "test \"`echo '$''{'ac_cv_type_uid_t'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 1905 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "uid_t" >/dev/null 2>&1; then
+ rm -rf conftest*
+ ac_cv_type_uid_t=yes
+else
+ rm -rf conftest*
+ ac_cv_type_uid_t=no
+fi
+rm -f conftest*
+
+fi
+
+echo "$ac_t""$ac_cv_type_uid_t" 1>&6
+if test $ac_cv_type_uid_t = no; then
+ cat >> confdefs.h <<\EOF
+#define uid_t int
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define gid_t int
+EOF
+
+fi
+
+echo $ac_n "checking type of array argument to getgroups""... $ac_c" 1>&6
+echo "configure:1934: checking type of array argument to getgroups" >&5
+if eval "test \"`echo '$''{'ac_cv_type_getgroups'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test "$cross_compiling" = yes; then
+ ac_cv_type_getgroups=cross
+else
+ cat > conftest.$ac_ext <<EOF
+#line 1942 "configure"
+#include "confdefs.h"
+
+/* Thanks to Mike Rendell for this test. */
+#include <sys/types.h>
+#define NGID 256
+#undef MAX
+#define MAX(x, y) ((x) > (y) ? (x) : (y))
+main()
+{
+ gid_t gidset[NGID];
+ int i, n;
+ union { gid_t gval; long lval; } val;
+
+ val.lval = -1;
+ for (i = 0; i < NGID; i++)
+ gidset[i] = val.gval;
+ n = getgroups (sizeof (gidset) / MAX (sizeof (int), sizeof (gid_t)) - 1,
+ gidset);
+ /* Exit non-zero if getgroups seems to require an array of ints. This
+ happens when gid_t is short but getgroups modifies an array of ints. */
+ exit ((n > 0 && gidset[n] != val.gval) ? 1 : 0);
+}
+
+EOF
+if { (eval echo configure:1967: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+ ac_cv_type_getgroups=gid_t
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -fr conftest*
+ ac_cv_type_getgroups=int
+fi
+rm -fr conftest*
+fi
+
+if test $ac_cv_type_getgroups = cross; then
+ cat > conftest.$ac_ext <<EOF
+#line 1981 "configure"
+#include "confdefs.h"
+#include <unistd.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "getgroups.*int.*gid_t" >/dev/null 2>&1; then
+ rm -rf conftest*
+ ac_cv_type_getgroups=gid_t
+else
+ rm -rf conftest*
+ ac_cv_type_getgroups=int
+fi
+rm -f conftest*
+
+fi
+fi
+
+echo "$ac_t""$ac_cv_type_getgroups" 1>&6
+cat >> confdefs.h <<EOF
+#define GETGROUPS_T $ac_cv_type_getgroups
+EOF
+
+
+
+# Checks for library functions.
+for ac_func in vsnprintf
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:2009: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2014 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:2037: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+
+
+
+
+
+
+
+SCRIPTS="build/bin/add_members:bin/add_members \
+build/bin/arch:bin/arch \
+build/bin/change_pw:bin/change_pw \
+build/bin/check_db:bin/check_db \
+build/bin/check_perms:bin/check_perms \
+build/bin/cleanarch:bin/cleanarch \
+build/bin/clone_member:bin/clone_member \
+build/bin/config_list:bin/config_list \
+build/bin/convert.py:bin/convert.py \
+build/bin/dumpdb:bin/dumpdb \
+build/bin/find_member:bin/find_member \
+build/bin/fix_url.py:bin/fix_url.py \
+build/bin/genaliases:bin/genaliases \
+build/bin/inject:bin/inject \
+build/bin/list_admins:bin/list_admins \
+build/bin/list_lists:bin/list_lists \
+build/bin/list_members:bin/list_members \
+build/bin/list_owners:bin/list_owners \
+build/bin/mailmanctl:bin/mailmanctl \
+build/bin/mmsitepass:bin/mmsitepass \
+build/bin/newlist:bin/newlist \
+build/bin/pygettext.py:bin/pygettext.py \
+build/bin/qrunner:bin/qrunner \
+build/bin/remove_members:bin/remove_members \
+build/bin/rmlist:bin/rmlist \
+build/bin/sync_members:bin/sync_members \
+build/bin/transcheck:bin/transcheck \
+build/bin/unshunt:bin/unshunt \
+build/bin/update:bin/update \
+build/bin/version:bin/version \
+build/bin/withlist:bin/withlist \
+build/bin/b4b5-archfix:bin/b4b5-archfix \
+build/contrib/check_perms_grsecurity.py:contrib/check_perms_grsecurity.py \
+build/contrib/qmail-to-mailman.py:contrib/qmail-to-mailman.py \
+build/contrib/rotatelogs.py:contrib/rotatelogs.py \
+build/cron/bumpdigests:cron/bumpdigests \
+build/cron/checkdbs:cron/checkdbs \
+build/cron/disabled:cron/disabled \
+build/cron/gate_news:cron/gate_news \
+build/cron/mailpasswds:cron/mailpasswds \
+build/cron/nightly_gzip:cron/nightly_gzip \
+build/cron/senddigests:cron/senddigests \
+"
+
+
+
+# These directories are temporary directories to store macro-expanded
+# scripts. They're removed on a make distclean, so we make them here.
+mkdir -p build/bin build/contrib build/cron
+
+trap '' 1 2 15
+cat > confcache <<\EOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs. It is not useful on other systems.
+# If it contains results you don't want to keep, you may remove or edit it.
+#
+# By default, configure uses ./config.cache as the cache file,
+# creating it if it does not exist already. You can give configure
+# the --cache-file=FILE option to use a different cache file; that is
+# what configure does when it calls configure scripts in
+# subdirectories, so they share the cache.
+# Giving --cache-file=/dev/null disables caching, for debugging configure.
+# config.status only pays attention to the cache file if you give it the
+# --recheck option to rerun configure.
+#
+EOF
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, don't put newlines in cache variables' values.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(set) 2>&1 |
+ case `(ac_space=' '; set | grep ac_space) 2>&1` in
+ *ac_space=\ *)
+ # `set' does not quote correctly, so add quotes (double-quote substitution
+ # turns \\\\ into \\, and sed turns \\ into \).
+ sed -n \
+ -e "s/'/'\\\\''/g" \
+ -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
+ ;;
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
+ ;;
+ esac >> confcache
+if cmp -s $cache_file confcache; then
+ :
+else
+ if test -w $cache_file; then
+ echo "updating cache $cache_file"
+ cat confcache > $cache_file
+ else
+ echo "not updating unwritable cache $cache_file"
+ fi
+fi
+rm -f confcache
+
+trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# Any assignment to VPATH causes Sun make to only execute
+# the first set of double-colon rules, so remove it if not needed.
+# If there is a colon in the path, we need to keep it.
+if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d'
+fi
+
+trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
+
+# Transform confdefs.h into DEFS.
+# Protect against shell expansion while executing Makefile rules.
+# Protect against Makefile macro expansion.
+cat > conftest.defs <<\EOF
+s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g
+s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g
+s%\[%\\&%g
+s%\]%\\&%g
+s%\$%$$%g
+EOF
+DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '`
+rm -f conftest.defs
+
+
+# Without the "./", some shells look in PATH for config.status.
+: ${CONFIG_STATUS=./config.status}
+
+echo creating $CONFIG_STATUS
+rm -f $CONFIG_STATUS
+cat > $CONFIG_STATUS <<EOF
+#! /bin/sh
+# Generated automatically by configure.
+# Run this file to recreate the current configuration.
+# This directory was configured as follows,
+# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+#
+# $0 $ac_configure_args
+#
+# Compiler output produced by configure, useful for debugging
+# configure, is in ./config.log if it exists.
+
+ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
+for ac_option
+do
+ case "\$ac_option" in
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
+ exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
+ -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
+ echo "$CONFIG_STATUS generated by autoconf version 2.13"
+ exit 0 ;;
+ -help | --help | --hel | --he | --h)
+ echo "\$ac_cs_usage"; exit 0 ;;
+ *) echo "\$ac_cs_usage"; exit 1 ;;
+ esac
+done
+
+ac_given_srcdir=$srcdir
+ac_given_INSTALL="$INSTALL"
+
+trap 'rm -fr `echo "misc/paths.py Mailman/Defaults.py Mailman/mm_cfg.py.dist
+ src/Makefile misc/Makefile bin/Makefile
+ Mailman/Makefile Mailman/Cgi/Makefile Mailman/Logging/Makefile
+ Mailman/Archiver/Makefile Mailman/Commands/Makefile
+ Mailman/Handlers/Makefile Mailman/Bouncers/Makefile
+ Mailman/Queue/Makefile Mailman/MTA/Makefile Mailman/Gui/Makefile
+ templates/Makefile cron/Makefile scripts/Makefile messages/Makefile
+ cron/crontab.in misc/mailman Makefile
+ tests/Makefile tests/bounces/Makefile tests/msgs/Makefile
+ $SCRIPTS" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+EOF
+cat >> $CONFIG_STATUS <<EOF
+
+# Protect against being on the right side of a sed subst in config.status.
+sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
+ s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
+$ac_vpsub
+$extrasub
+s%@SHELL@%$SHELL%g
+s%@CFLAGS@%$CFLAGS%g
+s%@CPPFLAGS@%$CPPFLAGS%g
+s%@CXXFLAGS@%$CXXFLAGS%g
+s%@FFLAGS@%$FFLAGS%g
+s%@DEFS@%$DEFS%g
+s%@LDFLAGS@%$LDFLAGS%g
+s%@LIBS@%$LIBS%g
+s%@exec_prefix@%$exec_prefix%g
+s%@prefix@%$prefix%g
+s%@program_transform_name@%$program_transform_name%g
+s%@bindir@%$bindir%g
+s%@sbindir@%$sbindir%g
+s%@libexecdir@%$libexecdir%g
+s%@datadir@%$datadir%g
+s%@sysconfdir@%$sysconfdir%g
+s%@sharedstatedir@%$sharedstatedir%g
+s%@localstatedir@%$localstatedir%g
+s%@libdir@%$libdir%g
+s%@includedir@%$includedir%g
+s%@oldincludedir@%$oldincludedir%g
+s%@infodir@%$infodir%g
+s%@mandir@%$mandir%g
+s%@with_python@%$with_python%g
+s%@PYTHON@%$PYTHON%g
+s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
+s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
+s%@INSTALL_DATA@%$INSTALL_DATA%g
+s%@SET_MAKE@%$SET_MAKE%g
+s%@TRUE@%$TRUE%g
+s%@CC@%$CC%g
+s%@OPT@%$OPT%g
+s%@VAR_PREFIX@%$VAR_PREFIX%g
+s%@MAILMAN_USER@%$MAILMAN_USER%g
+s%@MAILMAN_GROUP@%$MAILMAN_GROUP%g
+s%@MAIL_GROUP@%$MAIL_GROUP%g
+s%@CGI_GROUP@%$CGI_GROUP%g
+s%@CGIEXT@%$CGIEXT%g
+s%@MAILHOST@%$MAILHOST%g
+s%@URLHOST@%$URLHOST%g
+s%@CPP@%$CPP%g
+s%@SCRIPTS@%$SCRIPTS%g
+
+CEOF
+EOF
+
+cat >> $CONFIG_STATUS <<\EOF
+
+# Split the substitutions into bite-sized pieces for seds with
+# small command number limits, like on Digital OSF/1 and HP-UX.
+ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
+ac_file=1 # Number of current file.
+ac_beg=1 # First line for current file.
+ac_end=$ac_max_sed_cmds # Line after last line for current file.
+ac_more_lines=:
+ac_sed_cmds=""
+while $ac_more_lines; do
+ if test $ac_beg -gt 1; then
+ sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
+ else
+ sed "${ac_end}q" conftest.subs > conftest.s$ac_file
+ fi
+ if test ! -s conftest.s$ac_file; then
+ ac_more_lines=false
+ rm -f conftest.s$ac_file
+ else
+ if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds="sed -f conftest.s$ac_file"
+ else
+ ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
+ fi
+ ac_file=`expr $ac_file + 1`
+ ac_beg=$ac_end
+ ac_end=`expr $ac_end + $ac_max_sed_cmds`
+ fi
+done
+if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds=cat
+fi
+EOF
+
+cat >> $CONFIG_STATUS <<EOF
+
+CONFIG_FILES=\${CONFIG_FILES-"misc/paths.py Mailman/Defaults.py Mailman/mm_cfg.py.dist
+ src/Makefile misc/Makefile bin/Makefile
+ Mailman/Makefile Mailman/Cgi/Makefile Mailman/Logging/Makefile
+ Mailman/Archiver/Makefile Mailman/Commands/Makefile
+ Mailman/Handlers/Makefile Mailman/Bouncers/Makefile
+ Mailman/Queue/Makefile Mailman/MTA/Makefile Mailman/Gui/Makefile
+ templates/Makefile cron/Makefile scripts/Makefile messages/Makefile
+ cron/crontab.in misc/mailman Makefile
+ tests/Makefile tests/bounces/Makefile tests/msgs/Makefile
+ $SCRIPTS"}
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
+ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+ case "$ac_file" in
+ *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
+ ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+ *) ac_file_in="${ac_file}.in" ;;
+ esac
+
+ # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
+
+ # Remove last slash and all that follows it. Not all systems have dirname.
+ ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+ if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+ # The file is in a subdirectory.
+ test ! -d "$ac_dir" && mkdir "$ac_dir"
+ ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
+ # A "../" for each directory in $ac_dir_suffix.
+ ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
+ else
+ ac_dir_suffix= ac_dots=
+ fi
+
+ case "$ac_given_srcdir" in
+ .) srcdir=.
+ if test -z "$ac_dots"; then top_srcdir=.
+ else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
+ /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
+ *) # Relative path.
+ srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
+ top_srcdir="$ac_dots$ac_given_srcdir" ;;
+ esac
+
+ case "$ac_given_INSTALL" in
+ [/$]*) INSTALL="$ac_given_INSTALL" ;;
+ *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
+ esac
+
+ echo creating "$ac_file"
+ rm -f "$ac_file"
+ configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
+ case "$ac_file" in
+ *Makefile*) ac_comsub="1i\\
+# $configure_input" ;;
+ *) ac_comsub= ;;
+ esac
+
+ ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
+ sed -e "$ac_comsub
+s%@configure_input@%$configure_input%g
+s%@srcdir@%$srcdir%g
+s%@top_srcdir@%$top_srcdir%g
+s%@INSTALL@%$INSTALL%g
+" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
+fi; done
+rm -f conftest.s*
+
+EOF
+cat >> $CONFIG_STATUS <<EOF
+
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+echo "configuration completed at" `date`
+exit 0
+EOF
+chmod +x $CONFIG_STATUS
+rm -fr confdefs* $ac_clean_files
+test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
+
+
+# Make sure all the build scripts are executable.
+chmod -R +x build
+
+# Test for the Chinese codecs.
+
diff --git a/configure.in b/configure.in
new file mode 100644
index 00000000..6d5f0af0
--- /dev/null
+++ b/configure.in
@@ -0,0 +1,645 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+dnl Process this file with autoconf to produce a configure script.
+AC_REVISION($Revision: 6094 $)
+AC_PREREQ(2.0)
+AC_INIT(src/common.h)
+
+
+# /usr/local/mailman is the default installation directory
+AC_PREFIX_DEFAULT(/usr/local/mailman)
+
+
+# Check for Python! Better be found on $PATH
+AC_MSG_CHECKING(for --with-python)
+AC_ARG_WITH(python, dnl
+[ --with-python specify path to Python interpreter])
+case "$with_python" in
+ "") ans="no";;
+ *) ans="$with_python"
+esac
+AC_MSG_RESULT($ans)
+
+if test -z "$with_python"
+then
+ AC_PATH_PROG(with_python, python, /usr/local/bin/python)
+fi
+
+AC_MSG_CHECKING(Python interpreter)
+if test ! -x $with_python
+then
+ AC_MSG_ERROR([
+
+***** No Python interpreter found!
+***** Try including the configure option
+***** --with-python=/path/to/python/interpreter])
+fi
+AC_SUBST(PYTHON)
+PYTHON=$with_python
+AC_MSG_RESULT($PYTHON)
+
+# See if Python is new enough. 2.1 or better is required, with 2.1.3
+# recommended.
+AC_MSG_CHECKING(Python version)
+changequote(,)
+cat > conftest.py <<EOF
+import sys
+try:
+ v = sys.hexversion
+except AttributeError:
+ v = 0
+# int of hexversion 0x2010000
+if v >= 0x2010000:
+ s = sys.version.split()[0]
+else:
+ s = ""
+fp = open("conftest.out", "w")
+fp.write("%s\n" % s)
+fp.close()
+EOF
+changequote([, ])
+$PYTHON conftest.py
+version=`cat conftest.out`
+rm -f conftest.out conftest.py
+if test -z "$version"
+then
+ AC_MSG_ERROR([
+
+***** $PYTHON is too old (or broken)
+***** Python 2.1 or newer is required
+***** Python 2.1.3 or better is recommended])
+fi
+AC_MSG_RESULT($version)
+
+# Make sure distutils is available. Some Linux Python packages split
+# distutils into the "-devel" package, so they need both.
+AC_MSG_CHECKING(that Python has a working distutils)
+changequote(,)
+cat > conftest.py <<EOF
+try:
+ import distutils.errors
+ import distutils.sysconfig
+except ImportError:
+ res = "no"
+else:
+ try:
+ distutils.sysconfig.get_config_vars()
+ except distutils.errors.DistutilsPlatformError:
+ res = "no"
+ else:
+ res = "yes"
+fp = open("conftest.out", "w")
+fp.write("%s\n" % res)
+fp.close()
+EOF
+changequote([, ])
+$PYTHON conftest.py
+havedistutils=`cat conftest.out`
+rm -f conftest.out conftest.py
+if test "$havedistutils" != "yes"
+then
+ AC_MSG_ERROR([
+
+***** Distutils is not available or is incomplete for $PYTHON
+***** If you installed Python from RPM (or other package manager)
+***** be sure to install the -devel package, or install Python
+***** from source. See README.LINUX for details])
+fi
+AC_MSG_RESULT($havedistutils)
+
+# Checks for programs.
+AC_PROG_INSTALL
+AC_PROG_MAKE_SET
+AC_PATH_PROG(TRUE, true, true, $PATH:/bin:/usr/bin)
+
+# Find compiler, allow alternatives to gcc
+AC_MSG_CHECKING(for --without-gcc)
+AC_ARG_WITH(gcc, [ --without-gcc never use gcc], [
+ case $withval in
+ no) CC=cc
+ without_gcc=yes;;
+ yes) CC=gcc
+ without_gcc=no;;
+ *) CC=$withval
+ without_gcc=$withval;;
+ esac], without_gcc=no;)
+AC_MSG_RESULT($without_gcc)
+
+# If the user switches compilers, we can't believe the cache
+if test ! -z "$ac_cv_prog_CC" -a ! -z "$CC" -a "$CC" != "$ac_cv_prog_CC"
+then
+ AC_ERROR(cached CC is different -- throw away $cache_file
+(it is also a good idea to do 'make clean' before compiling))
+fi
+
+AC_PROG_CC
+
+
+# Optimizer/debugger flags passed between Makefiles
+AC_SUBST(OPT)
+if test -z "$OPT"
+then
+ case $GCC in
+ yes)
+ case $ac_cv_prog_cc_g in
+ yes) OPT="-g -O2";;
+ *) OPT="-O2";;
+ esac
+ ;;
+ *) OPT="-O";;
+ esac
+fi
+
+# We better be able to execute interpreters
+AC_SYS_INTERPRETER
+if test "$ac_cv_sys_interpreter" != "yes"
+then
+ AC_MSG_ERROR([
+
+***** Cannot execute interpreter scripts?
+***** Are you sure you system doesn't support this?])
+fi
+
+
+# Check for an alternate data directory, separate from installation dir.
+default_var_prefix="/var/mailman"
+AC_SUBST(VAR_PREFIX)
+AC_MSG_CHECKING(for --with-var-prefix)
+AC_ARG_WITH(var-prefix, dnl
+[ --with-var-prefix directory for mutable data [/var/mailman]])
+case "$with_var_prefix" in
+ yes) VAR_PREFIX="$default_var_prefix"; ans=$VAR_PREFIX;;
+ ""|no) VAR_PREFIX="$prefix"; ans="no";;
+ *) VAR_PREFIX="$with_var_prefix"; ans=$VAR_PREFIX;
+esac
+AC_MSG_RESULT($ans)
+
+AC_MSG_CHECKING(for --with-permcheck)
+AC_ARG_WITH(permcheck, dnl
+[ --without-permcheck skip the check for target directory permissions])
+if test -z "$with_permcheck"
+then
+ with_permcheck="yes"
+fi
+AC_MSG_RESULT($with_permcheck)
+# Now make sure that $prefix is set up correctly. It must be group
+# owned by the target group, it must have the group sticky bit set, and
+# it must be a+rx
+if test "$VAR_PREFIX" = "NONE"
+then
+ VAR_PREFIX=$ac_default_prefix
+ prefixcheck=$ac_default_prefix
+else
+ prefixcheck=$VAR_PREFIX
+fi
+
+# new macro for finding group names
+AC_DEFUN(MM_FIND_GROUP_NAME, [
+# $1 == variable name
+# $2 == user id to check for
+AC_SUBST($1)
+changequote(,)
+if test -z "$$1"
+then
+ cat > conftest.py <<EOF
+import grp
+gid = ''
+for group in "$2".split():
+ try:
+ try:
+ gname = grp.getgrgid(int(group))[0]
+ break
+ except ValueError:
+ gname = grp.getgrnam(group)[0]
+ break
+ except KeyError:
+ gname = ''
+fp = open("conftest.out", "w")
+fp.write("%s\n" % gname)
+fp.close()
+EOF
+ $PYTHON conftest.py
+ $1=`cat conftest.out`
+fi
+changequote([, ])
+rm -f conftest.out conftest.py])
+
+
+# new macro for finding UIDs
+AC_DEFUN(MM_FIND_USER_NAME, [
+# $1 == variable name
+# $2 == user id to check for
+AC_SUBST($1)
+changequote(,)
+if test -z "$$1"
+then
+ cat > conftest.py <<EOF
+import pwd
+uid = ''
+for user in "$2".split():
+ try:
+ try:
+ uname = pwd.getpwuid(int(user))[0]
+ break
+ except ValueError:
+ uname = pwd.getpwnam(user)[0]
+ break
+ except KeyError:
+ uname = ''
+fp = open("conftest.out", "w")
+fp.write("%s\n" % uname)
+fp.close()
+EOF
+ $PYTHON conftest.py
+ $1=`cat conftest.out`
+fi
+changequote([, ])
+rm -f conftest.out conftest.py])
+
+# Check for some other uid to use than `mailman'
+AC_MSG_CHECKING(for --with-username)
+AC_ARG_WITH(username, dnl
+[ --with-username specify a user name other than \"mailman\"])
+
+if test -z "$with_username"
+then
+ with_username="mailman"
+fi
+USERNAME=$with_username
+AC_MSG_RESULT($USERNAME)
+
+# User `mailman' must exist
+AC_SUBST(MAILMAN_USER)
+AC_MSG_CHECKING(for user name \"$USERNAME\")
+MM_FIND_USER_NAME(MAILMAN_USER, $USERNAME)
+if test -z "$MAILMAN_USER"
+then
+ if test "$with_permcheck" = "yes"
+ then
+ AC_MSG_ERROR([
+***** No \"$USERNAME\" user found!
+***** Your system must have a \"$USERNAME\" user defined
+***** (usually in your /etc/passwd file). Please see the INSTALL
+***** file for details.])
+ fi
+fi
+AC_MSG_RESULT(okay)
+
+
+# Check for some other gid to use than `mailman'
+AC_MSG_CHECKING(for --with-groupname)
+AC_ARG_WITH(groupname, dnl
+[ --with-groupname specify a group name other than \"mailman\"])
+
+if test -z "$with_groupname"
+then
+ with_groupname="mailman"
+fi
+GROUPNAME=$with_groupname
+AC_MSG_RESULT($GROUPNAME)
+
+
+# Target group must exist
+AC_SUBST(MAILMAN_GROUP)
+AC_MSG_CHECKING(for group name \"$GROUPNAME\")
+MM_FIND_GROUP_NAME(MAILMAN_GROUP, $GROUPNAME)
+if test -z "$MAILMAN_GROUP"
+then
+ if test "$with_permcheck" = "yes"
+ then
+ AC_MSG_ERROR([
+***** No \"$GROUPNAME\" group found!
+***** Your system must have a \"$GROUPNAME\" group defined
+***** (usually in your /etc/group file). Please see the INSTALL
+***** file for details.])
+ fi
+fi
+AC_MSG_RESULT(okay)
+
+
+AC_MSG_CHECKING(permissions on $prefixcheck)
+changequote(,)
+cat > conftest.py <<EOF
+import os, grp
+from stat import *
+prefix = "$prefixcheck"
+groupname = "$GROUPNAME"
+mailmangroup = "$MAILMAN_GROUP"
+mailmangid = grp.getgrnam(mailmangroup)[2]
+problems = []
+try: statdata = os.stat(prefix)
+except OSError:
+ problems.append("Directory doesn't exist: " + prefix)
+else:
+ mode = statdata[ST_MODE]
+ gid = statdata[ST_GID]
+ if mailmangid <> gid:
+ problems.append("Directory must be owned by group " +
+ groupname + ": " + prefix)
+ if (mode & S_ISGID) <> S_ISGID:
+ problems.append("Set-gid bit must be set for directory: " + prefix)
+ perms = S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH
+ if (mode & perms) <> perms:
+ problems.append("Permissions should be at least 02775: " + prefix)
+if not problems:
+ msg = "okay\n"
+else:
+ msg = '***** ' + '\n***** '.join(problems) + '\n'
+fp = open("conftest.out", "w")
+fp.write(msg)
+fp.close()
+EOF
+changequote([, ])
+$PYTHON conftest.py
+status=`cat conftest.out`
+rm -f conftest.out conftest.py
+if test "$with_permcheck" = "yes"
+then
+ if test "$status" != "okay"
+ then
+ AC_MSG_ERROR([
+***** Installation directory $prefixcheck is not configured properly!
+$status])
+ fi
+else
+ status="skipped"
+fi
+AC_MSG_RESULT($status)
+
+
+# Now find the UIDs and GIDs
+# Support --with-mail-gid and --with-cgi-gid
+AC_MSG_CHECKING(for mail wrapper group; i.e. --with-mail-gid)
+AC_ARG_WITH(mail-gid, dnl
+[ --with-mail-gid group name mail programs run as])
+if test -z "$with_mail_gid"
+then
+ with_mail_gid="mailman other mail daemon"
+fi
+MM_FIND_GROUP_NAME(MAIL_GROUP, $with_mail_gid)
+if test -z "$MAIL_GROUP"
+then
+ if test "$with_permcheck" = "yes"
+ then
+ AC_MSG_ERROR([
+***** No group name \"$with_mail_gid\" found for the mail wrapper program.
+***** This is the group that your mail server will use to run Mailman's
+***** programs. You should specify an existing group with the
+***** --with-mail-gid configure option, or use --without-permcheck to
+***** skip this verification step. See also your mail server's documentation,
+***** and Mailman's INSTALL file for details])
+ else
+ MAIL_GROUP=$with_mail_gid
+ fi
+fi
+AC_MSG_RESULT($MAIL_GROUP)
+
+
+AC_MSG_CHECKING(for CGI wrapper group; i.e. --with-cgi-gid)
+AC_ARG_WITH(cgi-gid, dnl
+[ --with-cgi-gid group name CGI programs run as])
+if test -z "$with_cgi_gid"
+then
+ with_cgi_gid="www www-data nobody"
+fi
+
+MM_FIND_GROUP_NAME(CGI_GROUP, $with_cgi_gid)
+if test -z "$CGI_GROUP"
+then
+ if test "$with_permcheck" = "yes"
+ then
+ AC_MSG_ERROR([
+***** No group name \"$with_cgi_gid\" found for the CGI wrapper program.
+***** This is the group that your web server will use to run Mailman's
+***** programs. You should specify an existing group with the
+***** --with-cgi-gid configure option, or use --without-permcheck to
+***** skip this verification step. See also your web server's documentation,
+***** and Mailman's INSTALL file for details])
+ else
+ CGI_GROUP=$with_cgi_gid
+ fi
+fi
+AC_MSG_RESULT($CGI_GROUP)
+
+
+# Check for CGI extensions, required by some Web servers
+AC_SUBST(CGIEXT)
+AC_MSG_CHECKING(for CGI extensions)
+AC_ARG_WITH(cgi-ext, dnl
+[ --with-cgi-ext specify extension for CGI programs (include dot)])
+if test -z "$with_cgi_ext"
+then
+ CGIEXT=''
+ with_cgi_ext='no'
+else
+ CGIEXT=$with_cgi_ext
+fi
+AC_MSG_RESULT($with_cgi_ext)
+
+
+# figure out the default mail hostname and url host component
+AC_SUBST(MAILHOST)
+AC_MSG_CHECKING(for --with-mailhost)
+AC_ARG_WITH(mailhost, dnl
+[ --with-mailhost specify the hostname part for outgoing email])
+if test -z "$with_mailhost"
+then
+ MAILHOST=''
+ with_mailhost='no'
+else
+ MAILHOST=$with_mailhost
+fi
+AC_MSG_RESULT($with_mailhost)
+
+AC_SUBST(URLHOST)
+AC_MSG_CHECKING(for --with-urlhost)
+AC_ARG_WITH(urlhost, dnl
+[ --with-urlhost specify the hostname part of urls])
+if test -z "$with_urlhost"
+then
+ URLHOST=''
+ with_urlhost='no'
+else
+ URLHOST=$with_urlhost
+fi
+AC_MSG_RESULT($with_urlhost)
+
+changequote(,)
+cat > conftest.py <<EOF
+# python
+from socket import *
+fqdn = getfqdn()
+fp = open('conftest.out', 'w')
+print >> fp, fqdn
+print >> fp, fqdn
+fp.close()
+EOF
+$PYTHON conftest.py
+changequote([, ])
+AC_MSG_CHECKING(for default mail host name)
+if test -z "$MAILHOST"
+then
+ MAILHOST=`sed q conftest.out`
+fi
+AC_MSG_RESULT($MAILHOST)
+AC_MSG_CHECKING(for default URL host component)
+if test -z "$URLHOST"
+then
+ URLHOST=`sed -n '$p' conftest.out`
+fi
+AC_MSG_RESULT($URLHOST)
+rm -f conftest.out conftest.py
+
+# Checks for libraries.
+AC_CHECK_FUNCS(strerror setregid syslog)
+if test $ac_cv_func_syslog = no; then
+ # syslog is not in the default libraries. See if it's in some other.
+ # Additionally, for at least SCO OpenServer, syslog() is #defined to
+ # one of several _real_ functions in syslog.h, so we need to do the test
+ # with the appropriate include.
+ for lib in bsd socket inet; do
+ AC_MSG_CHECKING(for syslog in -l$lib)
+ Mailman_LIBS_save="$LIBS"; LIBS="$LIBS -l$lib"
+ AC_TRY_LINK([#include <syslog.h>],
+ [syslog(LOG_DEBUG, "Just a test...");],
+ [AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_SYSLOG)
+ break],
+ [AC_MSG_RESULT(no)
+ LIBS="$Mailman_LIBS_save"])
+ unset Mailman_LIBS_save
+ done
+fi
+
+# Checks for header files.
+AC_HEADER_STDC
+AC_CHECK_HEADERS(syslog.h)
+
+# Checks for typedefs, structures, and compiler characteristics.
+AC_TYPE_UID_T
+AC_TYPE_GETGROUPS
+
+# Checks for library functions.
+AC_CHECK_FUNCS(vsnprintf)
+
+dnl Expand PYTHON path in the scripts, output into build/scriptname
+
+AC_DEFUN(MM_SCRIPTS, [dnl
+bin/add_members \
+bin/arch \
+bin/change_pw \
+bin/check_db \
+bin/check_perms \
+bin/cleanarch \
+bin/clone_member \
+bin/config_list \
+bin/convert.py \
+bin/dumpdb \
+bin/find_member \
+bin/fix_url.py \
+bin/genaliases \
+bin/inject \
+bin/list_admins \
+bin/list_lists \
+bin/list_members \
+bin/list_owners \
+bin/mailmanctl \
+bin/mmsitepass \
+bin/newlist \
+bin/pygettext.py \
+bin/qrunner \
+bin/remove_members \
+bin/rmlist \
+bin/sync_members \
+bin/transcheck \
+bin/unshunt \
+bin/update \
+bin/version \
+bin/withlist \
+bin/b4b5-archfix \
+contrib/check_perms_grsecurity.py \
+contrib/qmail-to-mailman.py \
+contrib/rotatelogs.py \
+cron/bumpdigests \
+cron/checkdbs \
+cron/disabled \
+cron/gate_news \
+cron/mailpasswds \
+cron/nightly_gzip \
+cron/senddigests \
+])
+
+dnl Please make sure to leave a space at the end of the last entry.
+dnl (This is so we don't have to use [a-z/] style character classes
+dnl in the regexp below and mess with m4 quoting, which is not fun.)
+
+dnl This regexp munges each line in MM_SCRIPTS, replacing:
+dnl path/script \
+dnl with:
+dnl build/path/script:path/script \
+dnl so that we can macro-expand variables in scripts without using
+dnl script.in filenames, outputting the new files in build/ .
+
+SCRIPTS="patsubst(MM_SCRIPTS, \(.+\) \(\\?\), build/\1:\1 \2)"
+
+AC_SUBST(SCRIPTS)
+
+# These directories are temporary directories to store macro-expanded
+# scripts. They're removed on a make distclean, so we make them here.
+mkdir -p build/bin build/contrib build/cron
+
+dnl Output everything
+AC_OUTPUT([misc/paths.py Mailman/Defaults.py Mailman/mm_cfg.py.dist
+ src/Makefile misc/Makefile bin/Makefile
+ Mailman/Makefile Mailman/Cgi/Makefile Mailman/Logging/Makefile
+ Mailman/Archiver/Makefile Mailman/Commands/Makefile
+ Mailman/Handlers/Makefile Mailman/Bouncers/Makefile
+ Mailman/Queue/Makefile Mailman/MTA/Makefile Mailman/Gui/Makefile
+ templates/Makefile cron/Makefile scripts/Makefile messages/Makefile
+ cron/crontab.in misc/mailman Makefile
+ tests/Makefile tests/bounces/Makefile tests/msgs/Makefile
+ $SCRIPTS],
+ echo "configuration completed at" `date`)
+
+# Make sure all the build scripts are executable.
+chmod -R +x build
+
+# Test for the Chinese codecs.
+dnl AC_MSG_CHECKING(for Python Chinese Unicode codecs)
+dnl cat > conftest.py <<EOF
+dnl try:
+dnl unicode("abc", "big5-tw")
+dnl print "found"
+dnl except LookupError:
+dnl print "not found"
+dnl EOF
+dnl chinese=`$PYTHON conftest.py 2>/dev/null`
+dnl rm -f conftest.py
+dnl AC_MSG_RESULT($chinese)
+dnl if test "x$chinese" != "xfound"
+dnl then
+dnl AC_MSG_WARN([
+
+dnl ***** Python Unicode codecs for Chinese not found.
+dnl ***** Chinese emails generated by or manipulated in Mailman will not
+dnl ***** be sent in the correct encoding and may be unreadable.
+dnl ***** Please uncompress and install the Chinese codecs from:
+dnl ***** http://sourceforge.net/projects/python-codecs/
+dnl *****
+dnl ***** Note: Everything else will work just fine.
+dnl ])
+dnl fi
diff --git a/contrib/README b/contrib/README
new file mode 100644
index 00000000..3e475032
--- /dev/null
+++ b/contrib/README
@@ -0,0 +1,4 @@
+This directory contains unofficial contributed scripts and extensions
+to Mailman. They are unsupported by the Mailman developers. If you
+have questions or problems with them, please contact the contribution
+author directly.
diff --git a/contrib/README.check_perms_grsecurity b/contrib/README.check_perms_grsecurity
new file mode 100644
index 00000000..6d1d0389
--- /dev/null
+++ b/contrib/README.check_perms_grsecurity
@@ -0,0 +1,14 @@
+The check_perms_grsecurity.py script, if copied in your installed
+~mailman/bin/ directory and run from there will modify permissions of
+files so that Mailman with extra restrictions imposed by linux kernel security
+patches like securelinux/openwall in 2.2.x or grsecurity in 2.4.x
+
+The way it works is that it makes sure that the UID of any script that
+touches config.pck is `mailman'. What this means however is that
+scripts in ~mailman/bin will now only work if run as user mailman or
+root (the script then changes its UID and GID to mailman).
+To make grsecurity happy, we remove the group writeable bit on a directories
+that contain binaries.
+
+Enjoy
+Marc MERLIN <marc_soft@merlins.org>/<marc_bts@vasoftware.com> - 2001/12/10
diff --git a/contrib/auto b/contrib/auto
new file mode 100644
index 00000000..6ac7eba0
--- /dev/null
+++ b/contrib/auto
@@ -0,0 +1,116 @@
+# -*- python -*-
+#
+# Copyright (C) 2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Automatically send a message to a mailing list.
+"""
+
+# To use with Postfix, set the following in your main.cf file:
+#
+# recipient_delimiter = +
+# luser_relay = mm+$user@yourdomain.com
+# owner_request_special = no
+
+import sys
+import os
+import time
+
+import paths
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman import MailList
+from Mailman import Errors
+from Mailman.Queue.sbcache import get_switchboard
+from Mailman.Logging.Utils import LogStdErr
+
+# Error code if it's really not a Mailman list addr destination
+EX_NOUSER = 67
+
+LogStdErr('auto', 'auto')
+
+DISPOSE_MAP = {None : 'tolist',
+ 'request': 'torequest',
+ 'admin' : 'toadmin',
+ 'owner' : 'toadmin',
+ }
+
+
+
+def fqdn_listname(listname, hostname):
+ return ('%s@%s' % (listname, hostname)).lower()
+
+
+
+def main():
+ # Postfix sets some environment variables based on information gleaned
+ # from the original message. This is the most direct way to figure out
+ # which list the message was intended for.
+ extension = os.environ.get('EXTENSION', '').lower()
+ i = extension.rfind('-')
+ if i < 0:
+ listname = extension
+ subdest = 'tolist'
+ else:
+ missing = []
+ listname = extension[:i]
+ subdest = DISPOSE_MAP.get(extension[i+1:], missing)
+ if not Utils.list_exists(listname) or subdest is missing:
+ # must be a list that has a `-' in it's name
+ listname = extension
+ subdest = 'tolist'
+ if not listname:
+ print >> sys.stderr, 'Empty list name (someone being subversive?)'
+ return EX_NOUSER
+ try:
+ mlist = MailList.MailList(listname, lock=0)
+ except Errors.MMListError:
+ print >> sys.stderr, 'List not found:', listname
+ return EX_NOUSER
+
+ # Make sure that the domain part of the incoming address matches the
+ # domain of the mailing list. Actually, it's possible that one or the
+ # other is more fully qualified, and thus longer. So we split the domains
+ # by dots, reverse them and make sure that whatever parts /are/ defined
+ # for both are equivalent.
+ domain = os.environ.get('DOMAIN', '').lower()
+ domainp = domain.split('.')
+ hostname = mlist.host_name.split('.')
+ domainp.reverse()
+ hostname.reverse()
+ for ca, cb in zip(domainp, hostname):
+ if ca <> cb:
+ print >> sys.stderr, 'Domain mismatch: %s@%s (expected @%s)' \
+ % (listname, domain, mlist.host_name)
+ return EX_NOUSER
+
+ if subdest is None:
+ print >> sys.stderr, 'Bad sub-destination:', extension
+ return EX_NOUSER
+
+ inq = get_switchboard(mm_cfg.INQUEUE_DIR)
+ inq.enqueue(sys.stdin.read(),
+ listname=listname,
+ received_time=time.time(),
+ _plaintext=1,
+ **{subdest: 1})
+ return 0
+
+
+
+if __name__ == '__main__':
+ code = main()
+ sys.exit(code)
diff --git a/contrib/check_perms_grsecurity.py b/contrib/check_perms_grsecurity.py
new file mode 100644
index 00000000..7b27a19f
--- /dev/null
+++ b/contrib/check_perms_grsecurity.py
@@ -0,0 +1,180 @@
+#! @PYTHON@
+#
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Fixes for running Mailman under the `secure-linux' patch or grsecurity.
+
+Run check_perms -f and only then check_perms_grsecurity.py -f
+Note that you will have to re-run this script after a mailman upgrade and
+that check_perms will undo part of what this script does
+
+If you use Solar Designer's secure-linux patch, it prevents a process from
+linking (hard link) to a file it doesn't own.
+Grsecurity (http://grsecurity.net/) can have the same restriction depending
+on how it was built, including other restrictions like preventing you to run
+a program if it is located in a directory writable by a non root user.
+
+As a result Mailman has to be changed so that the whole tree is owned by
+Mailman, and the CGIs and some of the programs in the bin tree (the ones
+that lock config.pck files) are SUID Mailman. The idea is that config.pck
+files have to be owned by the mailman UID and only touched by programs that
+are UID mailman.
+At the same time, We have to make sure that at least 3 directories under
+~mailman aren't writable by mailman: mail, cgi-bin, and bin
+
+Binary commands that are changed to be SUID mailman are also made unreadable
+and unrunnable by people who aren't in the mailman group. This shouldn't
+affect much since most of those commands would fail work if you weren't part
+of the mailman group anyway.
+Scripts in ~mailman/bin/ are not made suid or sgid, they need to be run by
+user mailman or root to work.
+
+Marc <marc_soft@merlins.org>/<marc_bts@vasoftware.com>
+2000/10/27 - Initial version for secure_linux/openwall and mailman 2.0
+2001/12/09 - Updated version for grsecurity and mailman 2.1
+"""
+
+import sys
+import os
+import paths
+import re
+import glob
+import pwd
+import grp
+from Mailman import mm_cfg
+from Mailman.mm_cfg import MAILMAN_USER, MAILMAN_GROUP
+from stat import *
+
+# Directories that we don't want writable by mailman.
+dirstochownroot= ( 'mail', 'cgi-bin', 'bin' )
+
+# Those are the programs that we patch so that they insist being run under the
+# mailman uid or as root.
+binfilestopatch= ( 'add_members', 'change_pw', 'check_db', 'clone_member',
+ 'config_list', 'newlist', 'qrunner', 'remove_members',
+ 'rmlist', 'sync_members', 'update', 'withlist' )
+
+def main(argv):
+ binpath = paths.prefix + '/bin/'
+ droplib = binpath + 'CheckFixUid.py'
+
+ if len(argv) < 2 or argv[1] != "-f":
+ print __doc__
+ sys.exit(1)
+
+ print "Making select directories owned and writable by root only"
+ for dir in dirstochownroot:
+ dirpath = paths.prefix + '/' + dir
+ os.chown(dirpath, 0, MAILMAN_GID)
+ os.chmod(dirpath, 02755)
+ print dirpath
+
+ print
+
+ file = paths.prefix + '/data/last_mailman_version'
+ print "Making" + file + "owned by mailman (not root)"
+ uid = pwd.getpwnam(MAILMAN_USER)[2]
+ gid = grp.getgrnam(MAILMAN_GROUP)[2]
+ os.chown(file, uid, gid)
+ print
+
+ if not os.path.exists(droplib):
+ print "Creating " + droplib
+ fp = open(droplib, 'w', 0644)
+ fp.write("""import sys
+import os
+import grp, pwd
+from Mailman.mm_cfg import MAILMAN_USER, MAILMAN_GROUP
+
+class CheckFixUid:
+ if os.geteuid() == 0:
+ uid = pwd.getpwnam(MAILMAN_USER)[2]
+ gid = grp.getgrnam(MAILMAN_GROUP)[2]
+ os.setgid(gid)
+ os.setuid(uid)
+ if os.geteuid() != uid:
+ print "You need to run this script as root or mailman because it was configured to run"
+ print "on a linux system with a security patch which restricts hard links"
+ sys.exit()
+""")
+ fp.close()
+ else:
+ print "Skipping creation of " + droplib
+
+
+ print "\nMaking cgis setuid mailman"
+ cgis = glob.glob(paths.prefix + '/cgi-bin/*')
+
+ for file in cgis:
+ print file
+ os.chown(file, uid, gid)
+ os.chmod(file, 06755)
+
+ print "\nMaking mail wrapper setuid mailman"
+ file= paths.prefix + '/mail/mailman'
+ os.chown(file, uid, gid)
+ os.chmod(file, 06755)
+ print file
+
+ print "\nEnsuring that all config.db/pck files are owned by Mailman"
+ cdbs = glob.glob(paths.prefix + '/lists/*/config.db*')
+ cpcks = glob.glob(paths.prefix + '/lists/*/config.pck*')
+
+ for file in cdbs + cpcks:
+ stat = os.stat(file)
+ if (stat[ST_UID] != uid or stat[ST_GID] != gid):
+ print file
+ os.chown(file, uid, gid)
+
+ print "\nPatching mailman scripts to change the uid to mailman"
+
+ for script in binfilestopatch:
+ filefd = open(script, "r")
+ file = filefd.readlines()
+ filefd.close()
+
+ patched = 0
+ try:
+ file.index("import CheckFixUid\n")
+ print "Not patching " + script + ", already patched"
+ except ValueError:
+ file.insert(file.index("import paths\n")+1, "import CheckFixUid\n")
+ for i in range(len(file)-1, 0, -1):
+ object=re.compile("^([ ]*)main\(").search(file[i])
+ # Special hack to support patching of update
+ object2=re.compile("^([ ]*).*=[ ]*main\(").search(file[i])
+ if object:
+ print "Patching " + script
+ file.insert(i,
+ object.group(1) + "CheckFixUid.CheckFixUid()\n")
+ patched=1
+ break
+ if object2:
+ print "Patching " + script
+ file.insert(i,
+ object2.group(1) + "CheckFixUid.CheckFixUid()\n")
+ patched=1
+ break
+
+ if patched==0:
+ print "Warning, file "+script+" couldn't be patched."
+ print "If you use it, mailman may not function properly"
+ else:
+ filefd=open(script, "w")
+ filefd.writelines(file)
+
+main(sys.argv)
diff --git a/contrib/mailman.mc b/contrib/mailman.mc
new file mode 100644
index 00000000..fc39edbd
--- /dev/null
+++ b/contrib/mailman.mc
@@ -0,0 +1,143 @@
+dnl
+dnl *** EXAMPLE *** sendmail.mc file for a Mailman list server using
+dnl mm-handler to deal with list operations (in place of aliases).
+dnl This is what I actually use on my site.
+dnl
+dnl $Id: mailman.mc 4287 2001-10-27 02:30:51Z bwarsaw $
+dnl
+
+
+dnl
+dnl First you need to define your general characteristics. You
+dnl should know what these settings should be at your site -- I
+dnl only know what they should be at mine.
+dnl
+OSTYPE(solaris2)dnl
+DOMAIN(generic)dnl
+
+dnl
+dnl You can keep the old alias files for back-compatibility, but it's
+dnl probably better not to as this can become a point of confusion
+dnl later.
+dnl
+define(`ALIAS_FILE', `/etc/mail/aliases,/etc/mail/lists')
+
+dnl
+dnl I use procmail for local delivery, because it's smart to have a
+dnl local delivery mailer, even if you don't (ordinarily) do any local
+dnl delivery. The Solaris local delivery mailer is part of its sendmail
+dnl package. I pkgrmed the sendmail packages so that system upgrades
+dnl don't kill my sendmail.com sendmail, so mail.local is unavailable,
+dnl so I throw procmail in here even though it never gets used.
+dnl
+define(`PROCMAIL_MAILER_PATH', `/opt/bin/procmail')
+FEATURE(`local_procmail')
+MAILER(`local')
+
+dnl
+dnl Miscellaneous tuning. Not relevant to Mailman.
+dnl
+define(`confCONNECTION_RATE_THROTTLE', 5)
+define(`confMAX_MESSAGE_SIZE', `5000000')
+define(`confNO_RCPT_ACTION', `add-to-undisclosed')
+define(`confME_TOO', `True')
+define(`confDOUBLE_BOUNCE_ADDRESS', `mailer-daemon')
+
+dnl
+dnl Privacy options. Also not relevant.
+dnl
+define(`confPRIVACY_FLAGS', `authwarnings,needvrfyhelo,noexpn,noreceipts,restrictmailq')
+
+
+dnl
+dnl Mm-handler works by mailertabling all addresses on your list
+dnl server hostname(s) through the mm-handler mailer. Mailertable
+dnl maps mail domains to mailer types. I want a mailertable to map
+dnl listtest.uchicago.edu to the mm-handler mailer, but we need to
+dnl specifically request this functionality in the .mc file.
+dnl
+FEATURE(`mailertable', `hash -o /etc/mail/mailertable')
+
+dnl
+dnl This leads to an immediate and important side-effect: "local"
+dnl addresses, and notably RFC-specified addresses such as postmaster,
+dnl are assumed by sendmail to be lists! Since aliases are not processed
+dnl for domaintabled domains, we must use a virtusertable to reroute
+dnl such addresses.
+dnl
+FEATURE(`virtusertable', `hash -o /etc/mail/virtusertable')
+
+dnl
+dnl By default, sendmail applies virtusertable mapping, if at all, for
+dnl all interfaces for which it accepts mail -- i.e., all domains in
+dnl $=w. Mm-handler relies on your having a single domain (hostname)
+dnl that serves only lists, with no users. To avoid potential namespace
+dnl conflicts, you need not to have this list domain included in $=w.
+dnl As a result, virtuser mapping does not apply for the Mailman
+dnl list domain. However, you can pre-empt this rule by defining
+dnl $={VirtHost}: if there are domains in this class, they will be
+dnl mapped before $=w is mapped.
+dnl
+dnl VIRTUSER_DOMAIN() defines this class.
+dnl
+VIRTUSER_DOMAIN(`nospam.uchicago.edu listtest.uchicago.edu listhost.uchicago.edu')
+
+dnl
+dnl On a related point: by default, Sendmail probes for open IP
+dnl interfaces, and adds their hostnames to $=w. Although Sendmail does
+dnl virtusertable mapping for members of $=w, it doesn't do mailertable
+dnl mapping for them, because they're considered "local". This tells
+dnl Sendmail not to probe interfaces for local hosts, and it's critical
+dnl if your Mailman domain is actually an IP address (with an A record,
+dnl not just CNAME or MX) on your server.
+dnl
+define(`confDONT_PROBE_INTERFACES', `True')
+
+
+dnl
+dnl Even though my actual hostname is foobar, tell the world that I'm
+dnl listtest.uchicago.edu.
+dnl
+FEATURE(`limited_masquerade')
+MASQUERADE_AS(`listtest.uchicago.edu')
+
+
+dnl
+dnl Access control is a useful feature for blocking abusers and relays
+dnl and such.
+dnl
+FEATURE(`access_db')
+
+
+dnl
+dnl This allows you to block access for individual recipents through
+dnl the same access database as is used for blocking sender hosts and
+dnl addresses.
+dnl
+FEATURE(`blacklist_recipients')
+
+
+dnl
+dnl Other local mailers...
+dnl
+MAILER(`smtp')
+MAILER(`procmail')
+
+
+dnl
+dnl Our Mailman-specific local mailer.
+dnl
+MAILER_DEFINITIONS
+####################################
+### New Mailer specifications ###
+####################################
+
+## Special flags! See
+## http://www.sendmail.org/~ca/email/doc8.10/op-sh-5.html#sh-5.4
+## Note especially the absence of the "m" and "n" flags. THIS IS
+## IMPORTANT: mm-handler assumes this behavior to avoid having to know
+## too much about address parsing and other RFC-2822 mail details.
+
+Mmailman, P=/etc/mail/mm-handler, F=rDFMhlqSu, U=mailman:other,
+ S=EnvFromL, R=EnvToL/HdrToL,
+ A=mm-handler $h $u
diff --git a/contrib/majordomo2mailman.pl b/contrib/majordomo2mailman.pl
new file mode 100644
index 00000000..c874862e
--- /dev/null
+++ b/contrib/majordomo2mailman.pl
@@ -0,0 +1,691 @@
+#!/usr/bin/perl -w
+
+# majordomo2mailman.pl - Migrate Majordomo mailing lists to Mailman 2.0
+# Copyright (C) 2002 Heiko Rommel (rommel@suse.de)
+
+# BAW: Note this probably needs to be upgraded to work with MM2.1
+
+#
+# License:
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 1, or (at your option)
+# any later version.
+
+#
+# Warranty:
+#
+# There's absolutely no warranty.
+#
+
+# comments on possible debug messages during the conversion:
+#
+# "not an valid email address" : those addresses are rejected, i.e. not imported into the Mailman list
+# "not a numeric value" : such a value will be converted to 0 (z.B. maxlength)
+# "already subscribed" : will only once be subscribed on the Mailman list
+# "...umbrella..." or "...taboo..." -> Mailman-Admin-Guide
+
+use strict;
+use Getopt::Long;
+use Fcntl;
+use POSIX qw (tmpnam);
+
+use vars qw (
+ $majordomo $mydomain $myurl
+ $aliasin $listdir
+ $aliasout $mailmanbin
+ $umbrella_member_suffix $private
+ $newsserver $newsprefix
+ $susehack $susearchuser
+ $help $debug $update $all $usagemsg
+ *FH
+ %mlaliases %mlowners %mlapprovers
+ %defaultmlconf %mlconf
+ %defaultmmconf %mmconf
+);
+
+#
+# adjust your site-specific settings here
+#
+
+$mydomain = "my.domain";
+$majordomo = "majordomo"; # the master Majordomo address for your site
+$aliasin = "/var/lib/majordomo/aliases";
+$listdir = "/var/lib/majordomo/lists";
+$aliasout = "/tmp/aliases";
+$myurl = "http://my.domain/mailman/";
+$mailmanbin = "/usr/lib/mailman/bin";
+$umbrella_member_suffix = "-owner";
+$private = "yes"; # is this a private/Intranet site ?
+$newsserver = "news.my.domain";
+$newsprefix = "intern.";
+
+$susehack = "no";
+$susearchuser = "archdummy";
+
+#
+# 0)
+# parse the command line arguments
+#
+
+$usagemsg = "usage: majordomo2mailman [-h|--help] [-d|--debug] [-u|--update] < (-a|--all) | list-of-mailinglists >";
+
+GetOptions(
+ "h|help" => \$help,
+ "d|debug" => \$debug,
+ "a|all" => \$all,
+ "u|update" => \$update
+) or die "$usagemsg\n";
+
+if (defined($help)) { die "$usagemsg\n"; }
+
+if ((not defined($all)) and (@ARGV<1)) { die "$usagemsg\n"; }
+
+if ($<) { die "this script must be run as root!\n"; }
+
+#
+# 1)
+# build a list of all aliases and extract the name of mailing lists plus their owners
+#
+
+%mlaliases = %mlowners = %mlapprovers = ();
+
+open (FH, "< $aliasin") or die "can't open $aliasin\n";
+
+while (<FH>) {
+ # first, build a list of all active aliases and their resolution
+ if (/^([^\#:]+)\s*:\s*(.*)$/) {
+ $mlaliases{$1} = $2;
+ }
+}
+
+my $mlalias;
+for $mlalias (keys %mlaliases) {
+ # if we encounter an alias with :include: as expansion
+ # it is save to assume that the alias has the form
+ # <mailinglist>-outgoing -
+ # that way we find the names of all active mailing lists
+ if ($mlaliases{$mlalias} =~ /\:include\:/) {
+ my $ml;
+ ($ml = $mlalias) =~ s/-outgoing//g;
+ $mlowners{$ml} = $mlaliases{"owner-$ml"};
+ $mlapprovers{$ml} = $mlaliases{"$ml-approval"};
+ }
+}
+
+close (FH);
+
+#
+# 2)
+# for each list read the Majordomo configuration params
+# and create a Mailman clone
+#
+
+my $ml;
+for $ml ((defined ($all)) ? sort keys %mlowners : @ARGV) {
+
+ init_defaultmlconf($ml);
+ %mlconf = %defaultmlconf;
+
+ init_defaultmmconf($ml);
+ %mmconf = %defaultmmconf;
+
+ my @privileged; # addresses that are mentioned in restrict_post
+ my @members;
+ my ($primaryowner, @secondaryowner);
+ my ($primaryapprover, @secondaryapprover);
+
+ my ($skey, $terminator);
+ my $filename;
+ my @args;
+
+ #
+ # a)
+ # parse the configuration file
+ #
+
+ open (FH, "< $listdir/$ml.config") or die "can't open $listdir/$ml.config\n";
+
+ while (<FH>) {
+ # key = value ?
+ if (/^\s*([^=\#\s]+)\s*=\s*(.*)\s*$/) {
+ $mlconf{$1} = $2;
+ }
+ # key << EOF
+ # value
+ # EOF ?
+ elsif (/^\s*([^<\#\s]+)\s*<<\s*(.*)\s*$/) {
+ ($skey, $terminator) = ($1, $2);
+ while (<FH>) {
+ last if (/^$terminator\s*$/);
+ $mlconf{$skey} .= $_;
+ }
+ chomp $mlconf{$skey};
+ }
+ }
+
+ close (FH);
+
+ #
+ # b)
+ # test if there are so-called flag files (clue that this is an old-style Majordomo lists)
+ # and overwrite previously parsed values
+ # (stolen from majordomo::config_parse.pl: handle_flag_files())
+ #
+
+ if ( -e "$listdir/$ml.private") {
+ $mlconf{"get_access"} = "closed";
+ $mlconf{"index_access"} = "closed";
+ $mlconf{"who_access"} = "closed";
+ $mlconf{"which_access"} = "closed";
+ }
+
+ $mlconf{"subscribe_policy"} = "closed" if ( -e "$listdir/$ml.closed");
+ $mlconf{"unsubscribe_policy"} = "closed" if ( -e "$listdir/$ml.closed");
+
+ if ( -e "$listdir/$ml.auto" && -e "$listdir/$ml.closed") {
+ print STDERR "sowohl $ml.auto als auch $ml.closed existieren. Wähle $ml.closed\n";
+ }
+ else {
+ $mlconf{"subscribe_policy"} = "auto" if ( -e"$listdir/$ml.auto");
+ $mlconf{"unsubscribe_policy"} = "auto" if ( -e"$listdir/$ml.auto");
+ }
+
+ $mlconf{"strip"} = 1 if ( -e "$listdir/$ml.strip");
+ $mlconf{"noadvertise"} = "/.*/" if ( -e "$listdir/$ml.hidden");
+
+ # admin_passwd:
+ $filename = "$listdir/" . $mlconf{"admin_passwd"};
+ if ( -e "$listdir/$ml.passwd" ) {
+ $mlconf{"admin_passwd"} = read_from_file("$listdir/$ml.passwd");
+ }
+ elsif ( -e "$filename" ) {
+ $mlconf{"admin_passwd"} = read_from_file("$filename");
+ }
+ # else take it verbatim
+
+ # approve_passwd:
+ $filename = "$listdir/" . $mlconf{"approve_passwd"};
+ if ( -e "$listdir/$ml.passwd" ) {
+ $mlconf{"approve_passwd"} = read_from_file("$listdir/$ml.passwd");
+ }
+ elsif ( -e "$filename" ) {
+ $mlconf{"approve_passwd"} = read_from_file("$filename");
+ }
+ # else take it verbatim
+
+ #
+ # c)
+ # add some information from additional configuration files
+ #
+
+ # restrict_post
+ if (defined ($mlconf{"restrict_post"})) {
+ @privileged = ();
+ for $filename (split /\s+/, $mlconf{"restrict_post"}) {
+ open (FH, "< $listdir/$filename") or die "can't open $listdir/$filename\n";
+ push (@privileged, <FH>);
+ chomp @privileged;
+ close (FH);
+ }
+ }
+
+ if ($susehack =~ m/yes/i) {
+ @privileged = grep(!/$susearchuser\@$mydomain/i, @privileged);
+ }
+
+ $mlconf{"privileged"} = \@privileged;
+
+ # members
+ @members = ();
+ open (FH, "< $listdir/$ml") or die "can't open $listdir/$ml\n";
+ push (@members, <FH>);
+ chomp @members;
+ close (FH);
+
+ $mlconf{"gated"} = "no";
+
+ if ($susehack =~ m/yes/i) {
+ if (grep(/$susearchuser\@$mydomain/i, @members)) {
+ $mlconf{"gated"} = "yes";
+ }
+ @members = grep(!/$susearchuser\@$mydomain/i, @members);
+ }
+
+ $mlconf{"members"} = \@members;
+
+ # intro message
+ if (open (FH, "< $listdir/$ml.intro")) {
+ { local $/; $mlconf{"intro"} = <FH>; }
+ }
+ else { $mlconf{"intro"} = ""; }
+
+ # info message
+ if (open (FH, "< $listdir/$ml.info")) {
+ { local $/; $mlconf{"info"} = <FH>; }
+ }
+ else { $mlconf{"info"} = ""; }
+
+ #
+ # d)
+ # take over some other params into the configuration table
+ #
+
+ $mlconf{"name"} = "$ml";
+
+ ($primaryowner, @secondaryowner) =
+ expand_alias (split (/\s*,\s*/, aliassub($mlowners{$ml})));
+
+ ($primaryapprover, @secondaryapprover) =
+ expand_alias (split (/\s*,\s*/, aliassub($mlapprovers{$ml})));
+
+ $mlconf{"primaryowner"} = $primaryowner;
+ $mlconf{"secondaryowner"} = \@secondaryowner;
+
+ $mlconf{"primaryapprover"} = $primaryapprover;
+ $mlconf{"secondaryapprover"} = \@secondaryapprover;
+
+ #
+ # debugging output
+ #
+
+ if (defined ($debug)) {
+ print "##################### $ml ####################\n";
+ for $skey (sort keys %mlconf) {
+ if (defined ($mlconf{$skey})) { print "$skey = $mlconf{$skey}\n"; }
+ else { print "$skey = (?)\n"; }
+ }
+ my $priv;
+ for $priv (@privileged) {
+ print "\t$ml: $priv\n";
+ }
+ }
+
+ #
+ # e)
+ # with the help of Mailman commands - create a new list and subscribe the old staff
+ #
+
+ if (defined($update)) {
+ print "updating configuration of \"$ml\"\n";
+ }
+ else {
+ # Mailman lists can initially be only created with one owner
+ @args = ("$mailmanbin/newlist", "-q", "-o", "$aliasout", "$ml", $mlconf{"primaryowner"}, $mlconf{"admin_passwd"});
+ system (@args) == 0 or die "system @args failed: $?";
+ }
+
+ # Mailman accepts only subscriber lists > 0
+ if (@members > 0) {
+ $filename = tmpnam();
+ open (FH, "> $filename") or die "can't open $filename\n";
+ for $skey (@members) {
+ print FH "$skey" . "\n";
+ }
+ close (FH);
+ @args = ("$mailmanbin/add_members", "-n", "$filename", "--welcome-msg=n", "$ml");
+ system (@args) == 0 or die "system @args failed: $?";
+ }
+
+ #
+ # f)
+ # "translate" the Majordomo list configuration
+ #
+
+ m2m();
+
+ # write the Mailman config
+
+ $filename = tmpnam();
+
+ open (FH, "> $filename") or die "can't open $filename\n";
+ for $skey (sort keys %mmconf) {
+ print FH "$skey = " . $mmconf{$skey} . "\n";
+ }
+ close (FH);
+
+ @args = ("$mailmanbin/config_list", "-i", "$filename", "$ml");
+ system (@args) == 0 or die "system @args failed: $?";
+
+ unlink($filename) or print STDERR "unable to unlink \"$filename\"!\n";
+
+}
+
+exit 0;
+
+#############
+# subs
+#############
+
+#
+# I don't know how to write Perl code
+# therefor I need this stupid procedure to cleanly read a value from file
+#
+
+sub read_from_file {
+ my $value;
+ local *FH;
+
+ open (FH, "< $_[0]") or die "can't open $_[0]\n";
+ $value = <FH>;
+ chomp $value;
+ close (FH);
+
+ return $value;
+}
+
+
+#
+# add "@$mydomain" to each element that does not contain a "@"
+#
+
+sub expand_alias {
+ return map { (not $_ =~ /@/) ? $_ .= "\@$mydomain" : $_ } @_;
+}
+
+#
+# replace the typical owner-majordomo aliases
+#
+
+sub aliassub {
+ my $string = $_[0];
+
+ $string =~ s/(owner-$majordomo|$majordomo-owner)/mailman-owner/gi;
+
+ return $string;
+}
+
+#
+# default values of Majordomo mailing lists
+# (stolen from majordomo::config_parse.pl: %known_keys)
+#
+
+sub init_defaultmlconf {
+ my $ml = $_[0];
+
+ %defaultmlconf=(
+ 'welcome', "yes",
+ 'announcements', "yes",
+ 'get_access', "open",
+ 'index_access', "open",
+ 'who_access', "open",
+ 'which_access', "open",
+ 'info_access', "open",
+ 'intro_access', "open",
+ 'advertise', "",
+ 'noadvertise', "",
+ 'description', "",
+ 'subscribe_policy', "open",
+ 'unsubscribe_policy', "open",
+ 'mungedomain', "no",
+ 'admin_passwd', "$ml.admin",
+ 'strip', "yes",
+ 'date_info', "yes",
+ 'date_intro', "yes",
+ 'archive_dir', "",
+ 'moderate', "no",
+ 'moderator', "",
+ 'approve_passwd', "$ml.pass",
+ 'sender', "owner-$ml",
+ 'maxlength', "40000",
+ 'precedence', "bulk",
+ 'reply_to', "",
+ 'restrict_post', "",
+ 'purge_received', "no",
+ 'administrivia', "yes",
+ 'resend_host', "",
+ 'debug', "no",
+ 'message_fronter', "",
+ 'message_footer', "",
+ 'message_headers', "",
+ 'subject_prefix', "",
+ 'taboo_headers', "",
+ 'taboo_body', "",
+ 'digest_volume', "1",
+ 'digest_issue', "1",
+ 'digest_work_dir', "",
+ 'digest_name', "$ml",
+ 'digest_archive', "",
+ 'digest_rm_footer', "",
+ 'digest_rm_fronter', "",
+ 'digest_maxlines', "",
+ 'digest_maxdays', "",
+ 'comments', ""
+ );
+}
+
+
+#
+# Mailman mailing list params that are not derived from Majordomo mailing lists params
+# (e.g. bounce_matching_headers+forbbiden_posters vs. taboo_headers+taboo_body)
+# If you need one of this params to be variable remove it here and add some code to the
+# main procedure; additionally, you should compare it with what you have in
+# /usr/lib/mailman/Mailman/mm_cfg.py
+#
+
+sub init_defaultmmconf {
+
+ %defaultmmconf=(
+ 'goodbye_msg', "\'\'",
+ 'umbrella_list', "0",
+ 'umbrella_member_suffix', "\'$umbrella_member_suffix\'",
+ 'send_reminders', "0",
+ 'admin_immed_notify', "1",
+ 'admin_notify_mchanges', "0",
+ 'dont_respond_to_post_requests', "0",
+ 'obscure_addresses', "1",
+ 'require_explicit_destination', "1",
+ 'acceptable_aliases', "\"\"\"\n\"\"\"\n",
+ 'max_num_recipients', "10",
+ 'forbidden_posters', "[]",
+ 'bounce_matching_headers', "\"\"\"\n\"\"\"\n",
+ 'anonymous_list', "0",
+ 'nondigestable', "1",
+ 'digestable', "1",
+ 'digest_is_default', "0",
+ 'mime_is_default_digest', "0",
+ 'digest_size_threshhold', "40",
+ 'digest_send_periodic', "1",
+ 'digest_header', "\'\'",
+ 'bounce_processing', "1",
+ 'minimum_removal_date', "4",
+ 'minimum_post_count_before_bounce_action', "3",
+ 'max_posts_between_bounces', "5",
+ 'automatic_bounce_action', "3",
+ 'archive_private', "0",
+ 'clobber_date', "1",
+ 'archive_volume_frequency', "1",
+ 'autorespond_postings', "0",
+ 'autoresponse_postings_text', "\'\'",
+ 'autorespond_admin', "0",
+ 'autoresponse_admin_text', "\'\'",
+ 'autorespond_requests', "0",
+ 'autoresponse_request_text', "\'\'",
+ 'autoresponse_graceperiod', "90"
+ );
+}
+
+#
+# convert a Majordomo mailing list configuration (%mlconf) into a
+# Mailman mailing list configuration (%mmconf)
+# only those params are affected which can be derived from Majordomo
+# mailing list configurations
+#
+
+sub m2m {
+
+ my $elem;
+ my $admin;
+
+ $mmconf{"real_name"} = "\'" . $mlconf{"name"} . "\'";
+
+ # Mailman does not know the difference between owner and approver
+ for $admin (($mlconf{"primaryowner"}, @{$mlconf{"secondaryowner"}},
+ $mlconf{"primaryapprover"}, @{$mlconf{"secondarapprover"}})) {
+ # merging owners and approvers may result in a loop:
+ if (lc($admin) ne lc("owner-" . $mlconf{"name"} . "\@" . $mydomain)) {
+ $mmconf{"owner"} .= ",\'" . "$admin" . "\'";
+ }
+ }
+ $mmconf{"owner"} =~ s/^,//g;
+ $mmconf{"owner"} = "\[" . $mmconf{"owner"} . "\]";
+
+ # remove characters that will break Python
+ ($mmconf{"description"} = $mlconf{"description"}) =~ s/\'/\\\'/g;
+ $mmconf{"description"} = "\'" . $mmconf{"description"} . "\'";
+
+ $mmconf{"info"} = "\"\"\"\n" . $mlconf{"info"} . "\"\"\"\n";
+
+ $mmconf{"subject_prefix"} = "\'" . $mlconf{"subject_prefix"} . "\'";
+
+ $mmconf{"welcome_msg"} = "\"\"\"\n" . $mlconf{"intro"} . "\"\"\"\n";
+
+ # I don't know how to handle this because the reply_to param in the lists
+ # I had were not configured consistently
+ if ($mlconf{"reply_to"} =~ /\S+/) {
+ if ($mlconf{"name"} . "\@" =~ m/$mlconf{"reply_to"}/i) {
+ $mmconf{"reply_goes_to_list"} = "1";
+ $mmconf{"reply_to_address"} = "\'\'";
+ }
+ else {
+ $mmconf{"reply_goes_to_list"} = "2";
+ $mmconf{"reply_to_address"} = "\'" . $mlconf{"reply_to"} . "\'";
+ }
+ }
+ else {
+ $mmconf{"reply_goes_to_list"} = "0";
+ $mmconf{"reply_to_address"} = "\'\'";
+ }
+
+ $mmconf{"administrivia"} = ($mlconf{"administrivia"} =~ m/yes/i) ? "1" : "0";
+ $mmconf{"send_welcome_msg"} = ($mlconf{"welcome"} =~ m/yes/i) ? "1" : "0";
+
+ $mmconf{"max_message_size"} = int ($mlconf{"maxlength"} / 1000);
+
+ $mmconf{"host_name"} = ($mlconf{"resend_host"} =~ /\S+/) ?
+ $mlconf{"resend_host"} : "\'" . $mydomain . "\'";
+
+ $mmconf{"web_page_url"} = "\'" . $myurl . "\'";
+
+ # problematic since Mailman does not know access patterns
+ # I assume, that if there was given a noadvertise pattern, the
+ # list shouldn't be visible at all
+ $mmconf{"advertised"} = ($mlconf{"noadvertise"} =~ /\.\*/) ? "0" : "1";
+
+ # confirm+approval is much to long winded for private sites
+ $mmconf{"subscribe_policy"} =
+ ($mlconf{"subscribe_policy"} =~ m/(open|auto)/i) ? "1" :
+ ($private =~ m/yes/i) ? "2" : "3";
+
+ # in case this is a private site allow list visiblity at most
+ $mmconf{"private_roster"} =
+ ($mlconf{"who_access"} =~ m/open/i and not $private =~ m/yes/i) ? "0" :
+ ($mlconf{"who_access"} =~ m/open|list/i) ? "1" : "2";
+
+ $mmconf{"moderated"} = ($mlconf{"moderate"} =~ m/yes/i) ? "1" : "0";
+ # there is no way to a set a separate moderator in Mailman
+
+ # external, since lengthy
+ mm_posters();
+
+ if ($mlconf{"message_fronter"} =~ /\S+/) {
+ $mmconf{"msg_header"} = "\"\"\"\n" . $mlconf{"message_fronter"} . "\"\"\"\n";
+ }
+ else {
+ $mmconf{"msg_header"} = "\'\'";
+ }
+
+ if ($mlconf{"message_footer"} =~ /\S+/) {
+ $mmconf{"msg_footer"} = "\"\"\"\n" . $mlconf{"message_footer"} . "\"\"\"\n";
+ }
+ else {
+ $mmconf{"msg_footer"} = "\'\'";
+ }
+
+ # gateway to news
+ $mmconf{"nntp_host"} = "\'" . $newsserver . "\'";
+ $mmconf{"linked_newsgroup"} = "\'" . $newsprefix . $mlconf{"name"} . "\'";
+
+ if ($mlconf{"gated"} =~ m/yes/i) {
+ $mmconf{"gateway_to_news"} = "1";
+ $mmconf{"gateway_to_mail"} = "1";
+ $mmconf{"archive"} = "1";
+ }
+ else {
+ $mmconf{"gateway_to_news"} = "0";
+ $mmconf{"gateway_to_mail"} = "0";
+ $mmconf{"archive"} = "0";
+ }
+
+ # print warnings if this seems to be an umbrella list
+ for $elem (@{$mlconf{"privileged"}}, @{$mlconf{"members"}}) {
+ $elem =~ s/\@$mydomain//gi;
+ if (defined($mlaliases{$elem . $umbrella_member_suffix})) {
+ print STDERR "\"" . $mlconf{"name"} .
+ "\" possibly forms part off/is an umbrella list, since \"$elem\" is a local mailing list alias\n";
+ }
+ }
+
+ # print warnings if we encountered a Taboo-Header or Taboo-Body
+ if ($mlconf{"taboo_headers"} =~ /\S+/ or $mlconf{"taboo_body"} =~ /\S+/) {
+ print STDERR "\"" . $mlconf{"name"} . "\" taboo_headers or taboo_body seem to be set - please check manually.\n";
+ }
+}
+
+#
+# with some set theory on the member and priviliged list try to determine the params
+# $mmconf{"member_posting_only"} and $mmconf{"posters"}
+#
+
+sub mm_posters {
+ if ($mlconf{"restrict_post"} =~ /\S+/) {
+ my %privileged = ();
+ my %members = ();
+ my $key;
+
+ foreach $key (@{$mlconf{"privileged"}}) { $privileged{$key} = "OK"; }
+ foreach $key (@{$mlconf{"members"}}) { $members{$key} = "OK"; }
+
+ # are all members privileged, too ?
+ my $included = 1;
+ foreach $key (keys %members) {
+ if (not exists $privileged{$key}) {
+ $included = 0;
+ last;
+ }
+ }
+ if ($included) {
+ $mmconf{"member_posting_only"} = "1";
+
+ # posters = privileged - members:
+ my %diff = %privileged;
+ foreach $key (keys %members) {
+ delete $diff{$key} if exists $members{$key};
+ }
+
+ $mmconf{"posters"} = "";
+ for $key (sort keys %diff) {
+ $mmconf{"posters"} .= ",\'" . $key . "\'";
+ }
+ $mmconf{"posters"} =~ s/^,//g;
+ $mmconf{"posters"} = "[" . $mmconf{"posters"} . "]";
+ }
+ else {
+ $mmconf{"member_posting_only"} = "0";
+
+ # posters = privileged:
+ $mmconf{"posters"} = "";
+ for $key (sort keys %privileged) {
+ $mmconf{"posters"} .= ",\'" . $key . "\'";
+ }
+ $mmconf{"posters"} =~ s/^,//g;
+ $mmconf{"posters"} = "[" . $mmconf{"posters"} . "]";
+ }
+ }
+ else {
+ $mmconf{"member_posting_only"} = "0";
+ $mmconf{"posters"} = "[]";
+ }
+}
+
diff --git a/contrib/mm-handler b/contrib/mm-handler
new file mode 100644
index 00000000..0535cbfb
--- /dev/null
+++ b/contrib/mm-handler
@@ -0,0 +1,236 @@
+#!/usr/local/bin/perl
+##
+## Sendmail mailer for Mailman
+##
+## Simulates these aliases:
+##
+##testlist: "|/home/mailman/mail/mailman post testlist"
+##testlist-admin: "|/home/mailman/mail/mailman admin testlist"
+##testlist-bounces: "|/home/mailman/mail/mailman bounces testlist"
+##testlist-confirm: "|/home/mailman/mail/mailman confirm testlist"
+##testlist-join: "|/home/mailman/mail/mailman join testlist"
+##testlist-leave: "|/home/mailman/mail/mailman leave testlist"
+##testlist-owner: "|/home/mailman/mail/mailman owner testlist"
+##testlist-request: "|/home/mailman/mail/mailman request testlist"
+##testlist-subscribe: "|/home/mailman/mail/mailman subscribe testlist"
+##testlist-unsubscribe: "|/home/mailman/mail/mailman unsubscribe testlist"
+##owner-testlist: testlist-owner
+
+## Some assembly required.
+$MMWRAPPER = "/home/mailman/mail/mailman";
+$MMLISTDIR = "/home/mailman/lists";
+$SENDMAIL = "/usr/lib/sendmail -oem -oi";
+$VERSION = '$Id: mm-handler 5100 2002-04-05 19:41:09Z bwarsaw $';
+
+## Comment this if you offer local user addresses.
+$NOUSERS = "\nPersonal e-mail addresses are not offered by this server.";
+
+# uncomment for debugging....
+#$DEBUG = 1;
+
+use FileHandle;
+use Sys::Hostname;
+use Socket;
+
+($VERS_STR = $VERSION) =~ s/^\$\S+\s+(\S+),v\s+(\S+\s+\S+\s+\S+).*/\1 \2/;
+
+$BOUNDARY = sprintf("%08x-%d", time, time % $$);
+
+## Informative, non-standard rejection letter
+sub mail_error {
+ my ($in, $to, $list, $server, $reason) = @_;
+ my $sendmail;
+
+ if ($server && $server ne "") {
+ $servname = $server;
+ } else {
+ $servname = "This server";
+ $server = &get_ip_addr;
+ }
+
+ #$sendmail = new FileHandle ">/tmp/mm-$$";
+ $sendmail = new FileHandle "|$SENDMAIL $to";
+ if (!defined($sendmail)) {
+ print STDERR "$0: cannot exec \"$SENDMAIL\"\n";
+ exit (-1);
+ }
+
+ $sendmail->print ("From: MAILER-DAEMON\@$server
+To: $to
+Subject: Returned mail: List unknown
+Mime-Version: 1.0
+Content-type: multipart/mixed; boundary=\"$BOUNDARY\"
+Content-Disposition: inline
+
+--$BOUNDARY
+Content-Type: text/plain; charset=us-ascii
+Content-Description: Error processing your mail
+Content-Disposition: inline
+
+Your mail for $list could not be sent:
+ $reason
+
+For a list of publicly-advertised mailing lists hosted on this server,
+visit this URL:
+ http://$server/
+
+If this does not resolve your problem, you may write to:
+ postmaster\@$server
+or
+ mailman-owner\@$server
+
+
+$servname delivers e-mail to registered mailing lists
+and to the administrative addresses defined and required by IETF
+Request for Comments (RFC) 2142 [1].
+$NOUSERS
+
+The Internet Engineering Task Force [2] (IETF) oversees the development
+of open standards for the Internet community, including the protocols
+and formats employed by Internet mail systems.
+
+For your convenience, your original mail is attached.
+
+
+[1] Crocker, D. \"Mailbox Names for Common Services, Roles and
+ Functions\". http://www.ietf.org/rfc/rfc2142.txt
+
+[2] http://www.ietf.org/
+
+--$BOUNDARY
+Content-Type: message/rfc822
+Content-Description: Your undelivered mail
+Content-Disposition: attachment
+
+");
+
+ while ($_ = <$in>) {
+ $sendmail->print ($_);
+ }
+
+ $sendmail->print ("\n");
+ $sendmail->print ("--$BOUNDARY--\n");
+
+ close($sendmail);
+}
+
+## Get my IP address, in case my sendmail doesn't tell me my name.
+sub get_ip_addr {
+ my $host = hostname;
+ my $ip = gethostbyname($host);
+ return inet_ntoa($ip);
+}
+
+## Split an address into its base list name and the appropriate command
+## for the relevant function.
+sub split_addr {
+ my ($addr) = @_;
+ my ($list, $cmd);
+ my @validfields = qw(admin bounces confirm join leave owner request
+ subscribe unsubscribe);
+
+ if ($addr =~ /(.*)-(.*)\+.*$/) {
+ $list = $1;
+ $cmd = "$2";
+ } else {
+ $addr =~ /(.*)-(.*)$/;
+ $list = $1;
+ $cmd = $2;
+ }
+ if (grep /^$cmd$/, @validfields) {
+ if ($list eq "owner") {
+ $list = $cmd;
+ $cmd = "owner";
+ }
+ } else {
+ $list = $addr;
+ $cmd = "post";
+ }
+
+ return ($list, $cmd);
+}
+
+## The time, formatted as for an mbox's "From_" line.
+sub mboxdate {
+ my ($time) = @_;
+ my @days = qw(Sun Mon Tue Wed Thu Fri Sat);
+ my @months = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec);
+ my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) =
+ localtime($time);
+
+ ## Two-digit year handling complies with RFC 2822 (section 4.3),
+ ## with the addition that three-digit years are accommodated.
+ if ($year < 50) {
+ $year += 2000;
+ } elsif ($year < 1900) {
+ $year += 1900;
+ }
+
+ return sprintf ("%s %s %2d %02d:%02d:%02d %d",
+ $days[$wday], $months[$mon], $mday,
+ $hour, $min, $sec, $year);
+}
+
+BEGIN: {
+ $sender = undef;
+ $server = undef;
+ @to = ();
+ while ($#ARGV >= 0) {
+ if ($ARGV[0] eq "-r") {
+ $sender = $ARGV[1];
+ shift @ARGV;
+ } elsif (!defined($server)) {
+ $server = $ARGV[0];
+ } else {
+ push(@to, $ARGV[0]);
+ }
+ shift @ARGV;
+ }
+
+ if ($DEBUG) {
+ $to = join(',', @to);
+ print STDERR "to: $to\n";
+ print STDERR "sender: $sender\n";
+ print STDERR "server: $server\n";
+ exit(-1);
+ }
+
+ADDR: for $addr (@to) {
+ $prev = undef;
+ $list = $addr;
+
+ $cmd= "post";
+ if (! -f "$MMLISTDIR/$list/config.pck") {
+ ($list, $cmd) = &split_addr($list);
+ if (! -f "$MMLISTDIR/$list/config.pck") {
+ $was_to = $addr;
+ $was_to .= "\@$server" if ("$server" ne "");
+ mail_error(\*STDIN, $sender, $was_to, $server,
+ "no list named \"$list\" is known by $server");
+ next ADDR;
+ }
+ }
+
+ $wrapper = new FileHandle "|$MMWRAPPER $cmd $list";
+ if (!defined($wrapper)) {
+ ## Defer?
+ print STDERR "$0: cannot exec ",
+ "\"$MMWRAPPER $cmd $list\": deferring\n";
+ exit (-1);
+ }
+
+ # Don't need these without the "n" flag on the mailer def....
+ #$date = &mboxdate(time);
+ #$wrapper->print ("From $sender $date\n");
+
+ # ...because we use these instead.
+ $from_ = <STDIN>;
+ $wrapper->print ($from_);
+
+ $wrapper->print ("X-Mailman-Handler: $VERSION\n");
+ while (<STDIN>) {
+ $wrapper->print ($_);
+ }
+ close($wrapper);
+ }
+}
diff --git a/contrib/mm-handler.readme b/contrib/mm-handler.readme
new file mode 100644
index 00000000..a406e33e
--- /dev/null
+++ b/contrib/mm-handler.readme
@@ -0,0 +1,151 @@
+Contributed by David Champion <dgc@uchicago.edu>
+See also ../README.SENDMAIL
+
+What?
+-----
+Mm-handler is a mail delivery agent (MDA) -- a "mailer", in Sendmail
+lingo. Its function is to assume authority for messages destined to
+Mailman lists, so that they're off sendmail's hands, and you (the site
+administrator) don't need to maintain databases of aliases and such. It
+takes a small bit of work to set up, but once that's done, you'll never
+need to mess with aliases for Mailman's sake again.
+
+When?
+-----
+The only further catch is that mm-handler is only really useful when
+it mostly "owns" its mail domain (the hostname part after an e-mail
+address's "@" symbol) -- when you can dedicate the mail domain to
+Mailman. If you have a limited set of exceptions -- a few users, for
+example -- you can still use it, but for sites with a dynamic or even
+mix of users (or forwarders) and lists, it might not gain you much.
+
+How do you know whether mm-handler is appropriate for you? Let's look
+at some examples. If you're running lists off your primary DNS domain
+name, you probably have a mix of lists and users in your namespace. Take
+python.org, for example: it hosts Mailman lists, and it hosts users'
+personal accounts. There aren't a whole bunch of either, but the ratio
+is probably fairly near 1:1. Mm-handler is not very useful here, because
+there's no simple way to separate user addresses from list addresses --
+not to mention that mm-handler is written in perl, so that's just bad
+form.
+
+This begs two different, complementary situations. A hypothetical
+domain, incidents.int, is used mostly for mailing lists. It's a
+front-end site, and not a general user mail service. There might be
+a couple of user addresses -- system administrators and such -- but
+these are few in number and easily adjusted manually by the site
+administrator. The 250 mailing lists at the site are much more dynamic,
+and a much bigger pain to keep track of by editing an alias file. This
+site can easily benefit from mm-handler.
+
+Inversely, mail.aero, another hypothetical domain, provides POP mail
+service to employees of the aerospace industry. Its addresses are
+almost entirely users, although it maintains a few mailing lists for
+convenience. This site has nothing to gain from mm-handler. It's much
+easier to maintain an alias file of 10 lists than to dedicate the domain
+to Mailman, and put all 10,000 aerospace workers in a user table.
+
+Those are the trickier cases. The case where mm-handler really works
+best is when you can dedicate a single hostname under your DNS domain
+to mailing lists, and host no user accounts there. At the University of
+Chicago, we do this with listhost.uchicago.edu. SourceForge does this,
+too, although I don't believe they use Sendmail.
+
+If your site is like that, you should read on.
+
+How?
+----
+Set-up isn't all that complicated. I've included a file here called
+"mailman.mc". This is the m4 file that I use on my list server, and you
+can likely use it with few changes at your site. It's well-annotated;
+the rationale for each parameter (or set of parameters) is provided in
+m4 (ahem) comments.
+
+So, the simple steps are as follows:
+
+1. Copy mailman.mc, and make any changes you need at your site. You
+ DEFINITELY need some changes. There are hostnames in there that you
+ need to adjust, and chances are that you'll need to change some other
+ parameters (like the host OS), too. [1]
+
+2. Install mm-handler. Because my server's sendmail-related files live
+ in /etc/mail, I keep mm-handler there, too. YMMV.
+
+3. Edit mm-handler, and make any changes you need at your site. You
+ probably want to change $MMWRAPPER and $MMLISTDIR at line 14, and you
+ *might* want to take a look at the helpful boilerplate text beginning
+ at line 64. (This text is sent whenever someone tries to send mail to
+ a nonexistent list address on your mail domain.)
+
+4. You should set up a virtusertable. (See mailman.mc for an
+ explanation.) There's an example of a good, minimal virtusertable
+ in this distribution. The virtusertable begins as a text file named
+ "virtusertable", stored in the same directory as all the other
+ Sendmail files, but it's converted to a map file for Sendmail's use.
+ Install the virtusertable, and (re)make the map file. [2]
+
+5. You absolutely must have a mailertable, or all of this goes nowhere.
+ Like virtusertable, the mailertable is a map that begins as text and
+ gets converted. It's named "mailertable", and it's probably pretty
+ simple. Mine looks like this:
+
+ listtest.uchicago.edu mailman:listtest.uchicago.edu
+
+ This says: assign all incoming mail (that was not intercepted by the
+ virtusertable) and that is in the listtest.uchicago.edu domain to the
+ "mailman" mailer, and tell the "mailman" mailer that the hostname
+ we're using is "listtest.uchicago.edu". You can support multiple
+ virtual hosts using mm-handler just by placing corresponding lines in
+ mailertable.
+
+ Be sure to make this map, too!
+
+6. The mailer definition (see the end of mailman.mc, or your own .mc
+ file) for mm-handler sets the user/group that mm-handler will run
+ under. (I use mailman:other.) Be sure that mm-handler is executable
+ by this user or group. You almost certainly need the user to be the
+ same as the Mailman user, and this user is almost always called
+ "mailman", so you probably shouldn't change the defaults.
+
+7. Generate your new sendmail.cf file. See the sendmail documentation if
+ you're not familiar with this procedure. [1]
+
+8. Stop sendmail on your list server, if you haven't already. Install
+ the new sendmail.cf file wherever your sendmail.cf file belongs.
+ (This depends on how sendmail was compiled, but most systems support
+ using /etc/sendmail.cf.)
+
+9. Cross your fingers and restart sendmail.
+
+A. Barry warns that Mailman now needs you to modify your
+ Mailman/mm_cfg.py file, adding this line:
+
+ MTA = None
+
+ This tells Mailman that it doesn't need to do anything special when
+ it creates or deletes mailing lists through the web. For more
+ information, take a look at the comments for this variable in your
+ Defaults.py file (but never edit this file -- always edit mm_cfg.py
+ instead!).
+
+That's it! With any luck, you're fully functional.
+
+--
+[1] The .mc file is the standard, supported way of configuring sendmail.
+ I'm not going to get into this here, and I'm not going to tell
+ you how to write raw sendmail.cf stuff, because if you need to do
+ it this way then you need something more comprehensive than I can
+ provide. If you need help with the .mc -> .cf process, I recommend
+ these links:
+
+ http://www.sendmail.org/~ca/email/setup1.html
+ http://www.sendmail.org/~ca/email/doc8.9/README.cf.html
+ http://www.hserus.net/sendmail.html
+
+[2] This is often done with something like "makemap hash
+ /etc/virtusertable </etc/virtusertable", but it could be different
+ on your server. Consult the sendmail documentation if you do not
+ know.
+
+--
+$Id: mm-handler.readme 4287 2001-10-27 02:30:51Z bwarsaw $
diff --git a/contrib/qmail-to-mailman.py b/contrib/qmail-to-mailman.py
new file mode 100644
index 00000000..76f25225
--- /dev/null
+++ b/contrib/qmail-to-mailman.py
@@ -0,0 +1,115 @@
+#! @PYTHON@
+
+# Configuration variables - Change these for your site if necessary.
+MailmanHome = "@prefix@"; # Mailman home directory.
+MailmanOwner = "postmaster@localhost"; # Postmaster and abuse mail recepient.
+# End of configuration variables.
+
+# qmail-to-mailman.py
+#
+# Interface mailman to a qmail virtual domain. Does not require the creation
+# of _any_ aliases to connect lists to your mail system.
+#
+# Bruce Perens, bruce@perens.com, March 1999.
+# This is free software under the GNU General Public License.
+#
+# This script is meant to be called from ~mailman/.qmail-default . It catches
+# all mail to a virtual domain, in my case "lists.hams.com". It looks at the
+# recepient for each mail message and decides if the mail is addressed to a
+# valid list or not, and bounces the message with a helpful suggestion if it's
+# not addressed to a list. It decides if it is a posting, a list command, or
+# mail to the list administrator, by checking for the -admin, -owner, and
+# -request addresses. It will recognize a list as soon as the list is created,
+# there is no need to add _any_ aliases for any list. It recognizes mail to
+# postmaster, mailman-owner, abuse, mailer-daemon, root, and owner, and
+# routes those mails to MailmanOwner as defined in the configuration
+# variables, above.
+#
+# INSTALLATION:
+#
+# Install this file as ~mailman/qmail-to-mailman.py
+#
+# To configure a virtual domain to connect to mailman, create these files:
+#
+# ~mailman/.qmail-default
+# |preline @PYTHON@ @prefix@/mail-in.py
+#
+# /var/qmail/control/virtualdomains:
+# DOMAIN.COM:mailman
+#
+# Note: "preline" is a QMail program which ensures a Unix "From " header is
+# on the message. Archiving will break without this.
+#
+# Replace DOMAIN.COM above with the name of the domain to be connected to
+# Mailman. Note that _all_ mail to that domain will go to Mailman, so you
+# don't want to put the name of your main domain here. In my case, I created
+# lists.hams.com for Mailman, and I use hams.com as my regular domain.
+#
+# After you edit /var/qmail/control/virtualdomains, kill and restart qmail.
+#
+
+import sys, os, re, string
+
+def main():
+ os.nice(5) # Handle mailing lists at non-interactive priority.
+
+ os.chdir(MailmanHome + "/lists")
+
+ try:
+ local = os.environ["LOCAL"]
+ except:
+ # This might happen if we're not using qmail.
+ sys.stderr.write("LOCAL not set in environment?\n")
+ sys.exit(100)
+
+ local = string.lower(local)
+ local = re.sub("^mailman-","",local)
+
+ names = ("root", "postmaster", "mailer-daemon", "mailman-owner", "owner",
+ "abuse")
+ for i in names:
+ if i == local:
+ os.execv("/var/qmail/bin/qmail-inject",
+ ("/var/qmail/bin/qmail-inject", MailmanOwner))
+ sys.exit(0)
+
+ type = "post"
+ types = (("-admin$", "bounces"),
+ ("-bounces$", "bounces"),
+ ("-join$", "join"),
+ ("-leave$", "leave"),
+ ("-owner$", "owner"),
+ ("-request$", "request"))
+
+ for i in types:
+ if re.search(i[0],local):
+ type = i[1]
+ local = re.sub(i[0],"",local)
+
+ if os.path.exists(local):
+ os.execv(MailmanHome + "/mail/mailman",
+ (MailmanHome + "/mail/mailman", type, local))
+ else:
+ bounce()
+ sys.exit(111)
+
+def bounce():
+ bounce_message = """\
+TO ACCESS THE MAILING LIST SYSTEM: Start your web browser on
+http://%s/
+That web page will help you subscribe or unsubscribe, and will
+give you directions on how to post to each mailing list.\n"""
+ sys.stderr.write(bounce_message % (os.environ["HOST"]))
+ sys.exit(100)
+
+try:
+ sys.exit(main())
+except SystemExit, argument:
+ sys.exit(argument)
+
+except Exception, argument:
+ info = sys.exc_info()
+ trace = info[2]
+ sys.stderr.write("%s %s\n" % (sys.exc_type, argument))
+ sys.stderr.write("Line %d\n" % (trace.tb_lineno))
+ sys.exit(111) # Soft failure, try again later.
diff --git a/contrib/rotatelogs.py b/contrib/rotatelogs.py
new file mode 100644
index 00000000..b88cb802
--- /dev/null
+++ b/contrib/rotatelogs.py
@@ -0,0 +1,103 @@
+#! @PYTHON@
+#
+# Copyright (C) 2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Check the error logs and send any which have information in them.
+
+If any log entries exist, a message is sent to the mailman owner address
+and the logs are rotated.
+"""
+
+# GETTING STARTED
+#
+# Run this program as root from cron, preferably at least daily. Running
+# as root is optional, but will preserve the various modes and ownerships
+# of log files in "~mailman/logs". If any entries are in "errors" or
+# "smtp-errors", they will be mailed to the mailman owner address.
+#
+# Set COMPRESS_LOGFILES_WITH in mm_cfg.py to "gzip" to get rotated logfiles
+# to be compressed.
+#
+# Hacked from some existing Mailman code by
+# Sean Reifschneider <jafo-mailman@tummy.com>
+# Please direct questions on this to the above address.
+#
+
+showLines = 100 # lines of log messages to display before truncating
+
+import sys, os, string, time, errno
+import paths
+from Mailman import mm_cfg, Utils
+import fileinput, socket, time, stat
+
+# Work around known problems with some RedHat cron daemons
+import signal
+signal.signal(signal.SIGCHLD, signal.SIG_DFL)
+
+
+newLogfiles = []
+text = []
+text.append('Mailman Log Report')
+text.append('Generated: %s' % time.ctime(time.time()))
+text.append('Host: %s' % socket.gethostname())
+text.append('')
+
+logDate = time.strftime('%Y%m%d-%H%M%S', time.localtime(time.time()))
+textSend = 0
+for log in ( 'error', 'smtp-failures' ):
+ fileName = os.path.join(mm_cfg.LOG_DIR, log)
+
+ # rotate file if it contains any data
+ stats = os.stat(fileName)
+ if stats[stat.ST_SIZE] < 1: continue
+ fileNameNew = '%s.%s' % ( fileName, logDate )
+ newLogfiles.append(fileNameNew)
+ os.rename(fileName, fileNameNew)
+ open(fileName, 'w')
+ os.chmod(fileName, stat.S_IMODE(stats[stat.ST_MODE]))
+ try: os.chown(fileName, stats[stat.ST_UID], stats[stat.ST_GID])
+ except OSError: pass # permission denied, DOH!
+
+ textSend = 1
+ tmp = '# FILE: %s #' % fileNameNew
+ text.append('#' * len(tmp))
+ text.append(tmp)
+ text.append('#' * len(tmp))
+ text.append('')
+
+ linesLeft = showLines # e-mail first linesLeft of log files
+ for line in fileinput.input(fileNameNew):
+ if linesLeft == 0:
+ text.append('[... truncated ...]')
+ break
+ linesLeft = linesLeft - 1
+ line = string.rstrip(line)
+ text.append(line)
+ text.append('')
+
+# send message if we've actually found anything
+if textSend:
+ text = string.join(text, '\n') + '\n'
+ siteowner = Utils.get_site_email()
+ Utils.SendTextToUser(
+ 'Mailman Log Report -- %s' % time.ctime(time.time()),
+ text, siteowner, siteowner)
+
+# compress any log-files we made
+if hasattr(mm_cfg, 'COMPRESS_LOGFILES_WITH') and mm_cfg.COMPRESS_LOGFILES_WITH:
+ for file in newLogfiles:
+ os.system(mm_cfg.COMPRESS_LOGFILES_WITH % file)
diff --git a/contrib/virtusertable b/contrib/virtusertable
new file mode 100644
index 00000000..eb5eb744
--- /dev/null
+++ b/contrib/virtusertable
@@ -0,0 +1,37 @@
+##
+## Example virtusertable for use with a Mailman site running mm-handler.
+##
+## $Id: virtusertable 4287 2001-10-27 02:30:51Z bwarsaw $
+##
+
+##
+## My server's hostname is nospam, but we don't honor that as a
+## Mailman mail domain. Anything @nospam.uchicago.edu should be
+## forwarded to our master Mailman admin address.
+##
+@nospam.uchicago.edu mailman-owner@midway.uchicago.edu
+
+##
+## Redirect mail to the standard Mailman admin addresses to the
+## master admin address. (Midway.uchicago.edu is our site's central
+## mail-routing server, and it carries aliases for maintenance groups.
+## Not a good plan to entrust Mailman maintenance mail to Mailman.)
+##
+mailman@listhost.uchicago.edu mailman-owner@midway.uchicago.edu
+mailman-owner@listhost.uchicago.edu mailman-owner@midway.uchicago.edu
+
+##
+## These addresses are required or recommended either by convention
+## or by RFC 2142, "Mailbox Names for Common Services, Roles and
+## Functions". Honor them.
+##
+MAILER-DAEMON@listhost.uchicago.edu mailman-owner@midway.uchicago.edu
+postmaster@listhost.uchicago.edu mailman-owner@midway.uchicago.edu
+webmaster@listhost.uchicago.edu mailman-owner@midway.uchicago.edu
+abuse@listhost.uchicago.edu sun-admin@midway.uchicago.edu
+root@listhost.uchicago.edu sun-admin@midway.uchicago.edu
+
+##
+## If I had a need, I could put user accounts in here, too.
+##
+dgc@listhost.uchicago.edu dgc@where.my.mail.really.goes
diff --git a/cron/.cvsignore b/cron/.cvsignore
new file mode 100644
index 00000000..d2278ab6
--- /dev/null
+++ b/cron/.cvsignore
@@ -0,0 +1,2 @@
+crontab.in
+Makefile
diff --git a/cron/Makefile.in b/cron/Makefile.in
new file mode 100644
index 00000000..2f596751
--- /dev/null
+++ b/cron/Makefile.in
@@ -0,0 +1,75 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# NOTE: Makefile.in is converted into Makefile by the configure script
+# in the parent directory. Once configure has run, you can recreate
+# the Makefile by running just config.status.
+
+# Variables set by configure
+
+VPATH= @srcdir@
+srcdir= @srcdir@
+bindir= @bindir@
+prefix= @prefix@
+exec_prefix= @exec_prefix@
+
+CC= @CC@
+CHMOD= @CHMOD@
+INSTALL= @INSTALL@
+
+DEFS= @DEFS@
+
+# Customizable but not set by configure
+
+OPT= @OPT@
+CFLAGS= $(OPT) $(DEFS)
+CRONDIR= $(prefix)/cron
+
+SHELL= /bin/sh
+
+PROGRAMS= checkdbs mailpasswds senddigests gate_news \
+ nightly_gzip bumpdigests disabled
+FILES= crontab.in
+
+BUILDDIR= ../build/cron
+
+# Modes for directories and executables created by the install
+# process. Default to group-writable directories but
+# user-only-writable for executables.
+EXEMODE= 755
+FILEMODE= 644
+
+
+# Rules
+
+all:
+
+install:
+ for f in $(FILES); \
+ do \
+ $(INSTALL) -m $(FILEMODE) $$f $(CRONDIR); \
+ done
+ for f in $(PROGRAMS); \
+ do \
+ $(INSTALL) -m $(EXEMODE) $(BUILDDIR)/$$f $(CRONDIR); \
+ done
+
+finish:
+
+clean:
+
+distclean:
+ -rm Makefile crontab.in
diff --git a/cron/bumpdigests b/cron/bumpdigests
new file mode 100644
index 00000000..3636fc6e
--- /dev/null
+++ b/cron/bumpdigests
@@ -0,0 +1,96 @@
+#! @PYTHON@
+#
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Increment the digest volume number and reset the digest number to one.
+
+Usage: %(PROGRAM)s [options] [listname ...]
+
+Options:
+
+ --help/-h
+ Print this message and exit.
+
+The lists named on the command line are bumped. If no list names are given,
+all lists are bumped.
+"""
+
+import sys
+import getopt
+
+import paths
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman import MailList
+from Mailman import Errors
+from Mailman.i18n import _
+
+# Work around known problems with some RedHat cron daemons
+import signal
+signal.signal(signal.SIGCHLD, signal.SIG_DFL)
+
+PROGRAM = sys.argv[0]
+
+
+
+def usage(code, msg=''):
+ if code:
+ fd = sys.stderr
+ else:
+ fd = sys.stdout
+ print >> fd, _(__doc__)
+ if msg:
+ print >> fd, msg
+ sys.exit(code)
+
+
+
+def main():
+ try:
+ opts, args = getopt.getopt(sys.argv[1:], 'h', ['help'])
+ except getopt.error, msg:
+ usage(1, msg)
+
+ for opt, arg in opts:
+ if opt in ('-h', '--help'):
+ usage(0)
+
+ if args:
+ listnames = args
+ else:
+ listnames = Utils.list_names()
+
+ if not listnames:
+ print _('Nothing to do.')
+ sys.exit(0)
+
+ for listname in listnames:
+ try:
+ # be sure the list is locked
+ mlist = MailList.MailList(listname)
+ except Errors.MMListError, e:
+ usage(1, _('No such list: %(listname)s'))
+ try:
+ mlist.bump_digest_volume()
+ finally:
+ mlist.Save()
+ mlist.Unlock()
+
+
+
+if __name__ == '__main__':
+ main()
diff --git a/cron/checkdbs b/cron/checkdbs
new file mode 100755
index 00000000..46883cf0
--- /dev/null
+++ b/cron/checkdbs
@@ -0,0 +1,136 @@
+#! @PYTHON@
+#
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Invoked by cron, this checks for pending moderation requests and mails the
+list moderators if necessary.
+"""
+
+import sys
+import time
+from types import UnicodeType
+
+import paths
+
+# Import this after paths so we get Mailman's copy of the email package
+from email.Charset import Charset
+
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman import MailList
+from Mailman import Message
+from Mailman import i18n
+
+# Work around known problems with some RedHat cron daemons
+import signal
+signal.signal(signal.SIGCHLD, signal.SIG_DFL)
+
+NL = '\n'
+
+_ = i18n._
+i18n.set_language(mm_cfg.DEFAULT_SERVER_LANGUAGE)
+
+def _isunicode(s):
+ return isinstance(s, UnicodeType)
+
+
+
+def main():
+ for name in Utils.list_names():
+ # the list must be locked in order to open the requests database
+ mlist = MailList.MailList(name)
+ try:
+ count = mlist.NumRequestsPending()
+ # While we're at it, let's evict yesterday's autoresponse data
+ midnightToday = Utils.midnight()
+ evictions = []
+ for sender in mlist.hold_and_cmd_autoresponses.keys():
+ date, respcount = mlist.hold_and_cmd_autoresponses[sender]
+ if Utils.midnight(date) < midnightToday:
+ evictions.append(sender)
+ if evictions:
+ for sender in evictions:
+ del mlist.hold_and_cmd_autoresponses[sender]
+ # Only here have we changed the list's database
+ mlist.Save()
+ if count:
+ i18n.set_language(mlist.preferred_language)
+ realname = mlist.real_name
+ text = Utils.maketext(
+ 'checkdbs.txt',
+ {'count' : count,
+ 'host_name': mlist.host_name,
+ 'adminDB' : mlist.GetScriptURL('admindb', absolute=1),
+ 'real_name': realname,
+ }, mlist=mlist)
+ text += '\n' + pending_requests(mlist)
+ subject = _(
+ '%(count)d %(realname)s moderator request(s) waiting')
+ msg = Message.UserNotification(mlist.GetOwnerEmail(),
+ mlist.GetBouncesEmail(),
+ subject, text,
+ mlist.preferred_language)
+ msg.send(mlist, **{'tomoderators': 1})
+ finally:
+ mlist.Unlock()
+
+
+
+
+def pending_requests(mlist):
+ # Must return a byte string
+ pending = []
+ first = 1
+ for id in mlist.GetSubscriptionIds():
+ if first:
+ pending.append(_('Pending subscriptions:'))
+ first = 0
+ when, addr, fullname, passwd, digest, lang = mlist.GetRecord(id)
+ if fullname:
+ fullname = ' (%s)' % fullname
+ pending.append(' %s%s %s' % (addr, fullname, time.ctime(when)))
+ first = 1
+ for id in mlist.GetHeldMessageIds():
+ if first:
+ pending.append(_('\nPending posts:'))
+ first = 0
+ info = mlist.GetRecord(id)
+ when, sender, subject, reason, text, msgdata = mlist.GetRecord(id)
+ date = time.ctime(when)
+ pending.append(_("""\
+From: %(sender)s on %(date)s
+Subject: %(subject)s
+Cause: %(reason)s"""))
+ pending.append('')
+ # Make sure that the text we return from here can be encoded to a byte
+ # string in the charset of the list's language. This could fail if for
+ # example, the request was pended while the list's language was French,
+ # but then it was changed to English before checkdbs ran.
+ text = NL.join(pending)
+ charset = Charset(Utils.GetCharSet(mlist.preferred_language))
+ incodec = charset.input_codec or 'ascii'
+ outcodec = charset.output_codec or 'ascii'
+ if _isunicode(text):
+ return text.encode(outcodec, 'replace')
+ # Be sure this is a byte string encodeable in the list's charset
+ utext = unicode(text, incodec, 'replace')
+ return utext.encode(outcodec, 'replace')
+
+
+
+if __name__ == '__main__':
+ main()
diff --git a/cron/crontab.in.in b/cron/crontab.in.in
new file mode 100755
index 00000000..49f27c72
--- /dev/null
+++ b/cron/crontab.in.in
@@ -0,0 +1,24 @@
+# At 8AM every day, mail reminders to admins as to pending requests.
+# They are less likely to ignore these reminders if they're mailed
+# early in the morning, but of course, this is local time... ;)
+0 8 * * * @PYTHON@ -S @prefix@/cron/checkdbs
+#
+# At 9AM, send notifications to disabled members that are due to be
+# reminded to re-enable their accounts.
+0 9 * * * @PYTHON@ -S @prefix@/cron/disabled
+#
+# Noon, mail digests for lists that do periodic as well as threshhold delivery.
+0 12 * * * @PYTHON@ -S @prefix@/cron/senddigests
+#
+# 5 AM on the first of each month, mail out password reminders.
+0 5 1 * * @PYTHON@ -S @prefix@/cron/mailpasswds
+#
+# Every 5 mins, try to gate news to mail. You can comment this one out
+# if you don't want to allow gating, or don't have any going on right now,
+# or want to exclusively use a callback strategy instead of polling.
+0,5,10,15,20,25,30,35,40,45,50,55 * * * * @PYTHON@ -S @prefix@/cron/gate_news
+#
+# At 3:27am every night, regenerate the gzip'd archive file. Only
+# turn this on if the internal archiver is used and
+# GZIP_ARCHIVE_TXT_FILES is false in mm_cfg.py
+27 3 * * * @PYTHON@ -S @prefix@/cron/nightly_gzip
diff --git a/cron/disabled b/cron/disabled
new file mode 100644
index 00000000..dcf05f25
--- /dev/null
+++ b/cron/disabled
@@ -0,0 +1,209 @@
+#! @PYTHON@
+#
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Process disabled members, recommended once per day.
+
+This script cruises through every mailing list looking for members whose
+delivery is disabled. If they have been disabled due to bounces, they will
+receive another notification, or they may be removed if they've received the
+maximum number of notifications.
+
+Use the --byadmin, --byuser, and --unknown flags to also send notifications to
+members whose accounts have been disabled for those reasons. Use --all to
+send the notification to all disabled members.
+
+Usage: %(PROGRAM)s [options]
+
+Options:
+ -h / --help
+ Print this message and exit.
+
+ -o / --byadmin
+ Also send notifications to any member disabled by the list
+ owner/administrator.
+
+ -m / --byuser
+ Also send notifications to any member disabled by themselves.
+
+ -u / --unknown
+ Also send notifications to any member disabled for unknown reasons
+ (usually a legacy disabled address).
+
+ -b / --notbybounce
+ Don't send notifications to members disabled because of bounces (the
+ default is to notify bounce disabled members).
+
+ -a / --all
+ Send notifications to all disabled members.
+
+ -f / --force
+ Send notifications to disabled members even if they're not due a new
+ notification yet.
+
+ -l listname
+ --listname=listname
+ Process only the given list, otherwise do all lists.
+"""
+
+import sys
+import time
+import getopt
+
+import paths
+# mm_cfg must be imported before the other modules, due to the side-effect of
+# it hacking sys.paths to include site-packages. Without this, running this
+# script from cron with python -S will fail.
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman import MailList
+from Mailman import Pending
+from Mailman import MemberAdaptor
+from Mailman.Bouncer import _BounceInfo
+from Mailman.Logging.Syslog import syslog
+from Mailman.i18n import _
+
+# Work around known problems with some RedHat cron daemons
+import signal
+signal.signal(signal.SIGCHLD, signal.SIG_DFL)
+
+PROGRAM = sys.argv[0]
+
+
+
+def usage(code, msg=''):
+ if code:
+ fd = sys.stderr
+ else:
+ fd = sys.stdout
+ print >> fd, _(__doc__)
+ if msg:
+ print >> fd, msg
+ sys.exit(code)
+
+
+
+def main():
+ try:
+ opts, args = getopt.getopt(
+ sys.argv[1:], 'hl:omubaf',
+ ['byadmin', 'byuser', 'unknown', 'notbybounce', 'all',
+ 'listname=', 'help', 'force'])
+ except getopt.error, msg:
+ usage(1, msg)
+
+ if args:
+ usage(1)
+
+ force = 0
+ listnames = []
+ who = [MemberAdaptor.BYBOUNCE]
+ for opt, arg in opts:
+ if opt in ('-h', '--help'):
+ usage(0)
+ elif opt in ('-l', '--list'):
+ listnames.append(arg)
+ elif opt in ('-o', '--byadmin'):
+ who.append(MemberAdaptor.BYADMIN)
+ elif opt in ('-m', '--byuser'):
+ who.append(MemberAdaptor.BYUSER)
+ elif opt in ('-u', '--unknown'):
+ who.append(MemberAdaptor.UNKNOWN)
+ elif opt in ('-b', '--notbybounce'):
+ try:
+ who.remove(MemberAdaptor.BYBOUNCE)
+ except ValueError:
+ # Already removed
+ pass
+ elif opt in ('-a', '--all'):
+ who = [MemberAdaptor.BYBOUNCE, MemberAdaptor.BYADMIN,
+ MemberAdaptor.BYUSER, MemberAdaptor.UNKNOWN]
+ elif opt in ('-f', '--force'):
+ force = 1
+
+ who = tuple(who)
+
+ if not listnames:
+ listnames = Utils.list_names()
+
+ msg = _('[disabled by periodic sweep and cull, no message available]')
+ today = time.mktime(time.localtime()[:3] + (0,) * 6)
+ for listname in listnames:
+ # List of members to notify
+ notify = []
+ mlist = MailList.MailList(listname)
+ try:
+ interval = mlist.bounce_you_are_disabled_warnings_interval
+ # Find all the members who are currently bouncing and see if
+ # they've reached the disable threshold but haven't yet been
+ # disabled. This is a sweep through the membership catching
+ # situations where they've bounced a bunch, then the list admin
+ # lowered the threshold, but we haven't (yet) seen more bounces
+ # from the member. Note: we won't worry about stale information
+ # or anything else since the normal bounce processing code will
+ # handle that.
+ disables = []
+ for member in mlist.getBouncingMembers():
+ if mlist.getDeliveryStatus(member) <> MemberAdaptor.ENABLED:
+ continue
+ info = mlist.getBounceInfo(member)
+ if info.score >= mlist.bounce_score_threshold:
+ disables.append((member, info))
+ if disables:
+ for member, info in disables:
+ mlist.disableBouncingMember(member, info, msg)
+ # Go through all the members who have delivery disabled, and find
+ # those that are due to have another notification. If they are
+ # disabled for another reason than bouncing, and we're processing
+ # them (because of the command line switch) then they won't have a
+ # bounce info record. We can piggyback on that for all disable
+ # purposes.
+ members = mlist.getDeliveryStatusMembers(who)
+ for member in members:
+ info = mlist.getBounceInfo(member)
+ if not info:
+ # See if they are bounce disabled, or disabled for some
+ # other reason.
+ status = mlist.getDeliveryStatus(member)
+ if status == MemberAdaptor.BYBOUNCE:
+ syslog(
+ 'error',
+ '%s disabled BYBOUNCE lacks bounce info, list: %s',
+ member, mlist.internal_name())
+ continue
+ info = _BounceInfo(
+ member, 0, today,
+ mlist.bounce_you_are_disabled_warnings,
+ Pending.new(Pending.RE_ENABLE, mlist.internal_name(),
+ member))
+ mlist.setBounceInfo(member, info)
+ lastnotice = time.mktime(info.lastnotice + (0,) * 6)
+ if force or today >= lastnotice + interval:
+ notify.append(member)
+ # Now, send notifications to anyone who is due
+ for member in notify:
+ syslog('bounce', 'Notifying disabled member %s for list: %s',
+ member, mlist.internal_name())
+ mlist.sendNextNotification(member)
+ mlist.Save()
+ finally:
+ mlist.Unlock()
+
+
+
+if __name__ == '__main__':
+ main()
diff --git a/cron/gate_news b/cron/gate_news
new file mode 100755
index 00000000..3fe466d4
--- /dev/null
+++ b/cron/gate_news
@@ -0,0 +1,274 @@
+#! @PYTHON@
+#
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Poll the NNTP servers for messages to be gatewayed to mailing lists.
+
+Usage: gate_news [options]
+
+Where options are
+
+ --help
+ -h
+ Print this text and exit.
+
+"""
+
+import sys
+import os
+import time
+import getopt
+import socket
+import nntplib
+
+import paths
+# Import this /after/ paths so that the sys.path is properly hacked
+import email.Errors
+from email.Parser import Parser
+
+from Mailman import mm_cfg
+from Mailman import MailList
+from Mailman import Utils
+from Mailman import Message
+from Mailman import LockFile
+from Mailman.i18n import _
+from Mailman.Queue.sbcache import get_switchboard
+from Mailman.Logging.Utils import LogStdErr
+from Mailman.Logging.Syslog import syslog
+
+# Work around known problems with some RedHat cron daemons
+import signal
+signal.signal(signal.SIGCHLD, signal.SIG_DFL)
+
+GATENEWS_LOCK_FILE = os.path.join(mm_cfg.LOCK_DIR, 'gate_news.lock')
+
+LogStdErr('error', 'gate_news', manual_reprime=0)
+
+LOCK_LIFETIME = mm_cfg.hours(2)
+NL = '\n'
+
+# Continues inside try: block are not allowed in Python versions before 2.1.
+# This exception is used to work around that.
+class _ContinueLoop(Exception):
+ pass
+
+
+
+def usage(status, msg=''):
+ if code:
+ fd = sys.stderr
+ else:
+ fd = sys.stdout
+ print >> fd, _(__doc__)
+ if msg:
+ print >> fd, msg
+ sys.exit(code)
+
+
+
+_hostcache = {}
+
+def open_newsgroup(mlist):
+ # Open up a "mode reader" connection to nntp server. This will be shared
+ # for all the gated lists having the same nntp_host.
+ conn = _hostcache.get(mlist.nntp_host)
+ if conn is None:
+ try:
+ conn = nntplib.NNTP(mlist.nntp_host, readermode=1,
+ user=mm_cfg.NNTP_USERNAME,
+ password=mm_cfg.NNTP_PASSWORD)
+ except (socket.error, nntplib.NNTPError, IOError), e:
+ syslog('fromusenet',
+ 'error opening connection to nntp_host: %s\n%s',
+ mlist.nntp_host, e)
+ raise
+ _hostcache[mlist.nntp_host] = conn
+ # Get the GROUP information for the list, but we're only really interested
+ # in the first article number and the last article number
+ r,c,f,l,n = conn.group(mlist.linked_newsgroup)
+ return conn, int(f), int(l)
+
+
+def clearcache():
+ reverse = {}
+ for conn in _hostcache.values():
+ reverse[conn] = 1
+ for conn in reverse.keys():
+ conn.quit()
+ _hostcache.clear()
+
+
+
+# This function requires the list to be locked.
+def poll_newsgroup(mlist, conn, first, last, glock):
+ listname = mlist.internal_name()
+ # NEWNEWS is not portable and has synchronization issues.
+ for num in range(first, last):
+ glock.refresh()
+ try:
+ headers = conn.head(`num`)[3]
+ found_to = 0
+ beenthere = 0
+ for header in headers:
+ i = header.find(':')
+ value = header[:i].lower()
+ if i > 0 and value == 'to':
+ found_to = 1
+ if value <> 'x-beenthere':
+ continue
+ if header[i:] == ': %s' % mlist.GetListEmail():
+ beenthere = 1
+ break
+ if not beenthere:
+ body = conn.body(`num`)[3]
+ # Usenet originated messages will not have a Unix envelope
+ # (i.e. "From " header). This breaks Pipermail archiving, so
+ # we will synthesize one. Be sure to use the format searched
+ # for by mailbox.UnixMailbox._isrealfromline(). BAW: We use
+ # the -bounces address here in case any downstream clients use
+ # the envelope sender for bounces; I'm not sure about this,
+ # but it's the closest to the old semantics.
+ lines = ['From %s %s' % (mlist.GetBouncesEmail(),
+ time.ctime(time.time()))]
+ lines.extend(headers)
+ lines.append('')
+ lines.extend(body)
+ lines.append('')
+ p = Parser(Message.Message)
+ try:
+ msg = p.parsestr(NL.join(lines))
+ except email.Errors.MessageError, e:
+ syslog('fromusenet',
+ 'email package exception for %s:%d\n%s',
+ mlist.linked_newsgroup, num, e)
+ raise _ContinueLoop
+ if found_to:
+ del msg['X-Originally-To']
+ msg['X-Originally-To'] = msg['To']
+ del msg['To']
+ msg['To'] = mlist.GetListEmail()
+ # Post the message to the locked list
+ inq = get_switchboard(mm_cfg.INQUEUE_DIR)
+ inq.enqueue(msg,
+ listname = mlist.internal_name(),
+ fromusenet = 1)
+ syslog('fromusenet',
+ 'posted to list %s: %7d' % (listname, num))
+ except nntplib.NNTPError, e:
+ syslog('fromusenet',
+ 'NNTP error for list %s: %7d' % (listname, num))
+ syslog('fromusenet', str(e))
+ except _ContinueLoop:
+ continue
+ # Even if we don't post the message because it was seen on the
+ # list already, update the watermark
+ mlist.usenet_watermark = num
+
+
+
+def process_lists(glock):
+ for listname in Utils.list_names():
+ glock.refresh()
+ # Open the list unlocked just to check to see if it is gating news to
+ # mail. If not, we're done with the list. Otherwise, lock the list
+ # and gate the group.
+ mlist = MailList.MailList(listname, lock=0)
+ if not mlist.gateway_to_mail:
+ continue
+ # Get the list's watermark, i.e. the last article number that we gated
+ # from news to mail. `None' means that this list has never polled its
+ # newsgroup and that we should do a catch up.
+ watermark = getattr(mlist, 'usenet_watermark', None)
+ # Open the newsgroup, but let most exceptions percolate up.
+ try:
+ conn, first, last = open_newsgroup(mlist)
+ except (socket.error, nntplib.NNTPError):
+ break
+ syslog('fromusenet', '%s: [%d..%d]' % (listname, first, last))
+ try:
+ try:
+ if watermark is None:
+ mlist.Lock(timeout=mm_cfg.LIST_LOCK_TIMEOUT)
+ # This is the first time we've tried to gate this
+ # newsgroup. We essentially do a mass catch-up, otherwise
+ # we'd flood the mailing list.
+ mlist.usenet_watermark = last
+ syslog('fromusenet', '%s caught up to article %d' %
+ (listname, last))
+ else:
+ # The list has been polled previously, so now we simply
+ # grab all the messages on the newsgroup that have not
+ # been seen by the mailing list. The first such article
+ # is the maximum of the lowest article available in the
+ # newsgroup and the watermark. It's possible that some
+ # articles have been expired since the last time gate_news
+ # has run. Not much we can do about that.
+ start = max(watermark+1, first)
+ if start > last:
+ syslog('fromusenet', 'nothing new for list %s' %
+ listname)
+ else:
+ mlist.Lock(timeout=mm_cfg.LIST_LOCK_TIMEOUT)
+ syslog('fromusenet', 'gating %s articles [%d..%d]' %
+ (listname, start, last))
+ # Use last+1 because poll_newsgroup() employes a for
+ # loop over range, and this will not include the last
+ # element in the list.
+ poll_newsgroup(mlist, conn, start, last+1, glock)
+ except LockFile.TimeOutError:
+ syslog('fromusenet', 'Could not acquire list lock: %s' %
+ listname)
+ finally:
+ if mlist.Locked():
+ mlist.Save()
+ mlist.Unlock()
+ syslog('fromusenet', '%s watermark: %d' %
+ (listname, mlist.usenet_watermark))
+
+
+
+def main():
+ lock = LockFile.LockFile(GATENEWS_LOCK_FILE,
+ # it's okay to hijack this
+ lifetime=LOCK_LIFETIME)
+ try:
+ lock.lock(timeout=0.5)
+ except LockFile.TimeOutError:
+ syslog('fromusenet', 'Could not acquire gate_news lock')
+ return
+ try:
+ process_lists(lock)
+ finally:
+ clearcache()
+ lock.unlock(unconditionally=1)
+
+
+
+if __name__ == '__main__':
+ try:
+ opts, args = getopt.getopt(sys.argv[1:], 'h', ['help'])
+ except getopt.error, msg:
+ usage(1, msg)
+
+ if args:
+ usage(1, 'No args are expected')
+
+ for opt, arg in opts:
+ if opt in ('-h', '--help'):
+ usage(0)
+
+ main()
diff --git a/cron/mailpasswds b/cron/mailpasswds
new file mode 100755
index 00000000..a009e92b
--- /dev/null
+++ b/cron/mailpasswds
@@ -0,0 +1,216 @@
+#! @PYTHON@
+#
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Send password reminders for all lists to all users.
+
+This program scans all mailing lists and collects users and their passwords,
+grouped by the list's host_name if mm_cfg.VIRTUAL_HOST_OVERVIEW is true. Then
+one email message is sent to each unique user (per-virtual host) containing
+the list passwords and options url for the user. The password reminder comes
+from the mm_cfg.MAILMAN_SITE_LIST, which must exist.
+
+Usage: %(PROGRAM)s [options]
+
+Options:
+ -l listname
+ --listname=listname
+ Send password reminders for the named list only. If omitted,
+ reminders are sent for all lists. Multiple -l/--listname options are
+ allowed.
+
+ -h/--help
+ Print this message and exit.
+"""
+
+# This puppy should probably do lots of logging.
+import sys
+import os
+import errno
+import getopt
+
+import paths
+# mm_cfg must be imported before the other modules, due to the side-effect of
+# it hacking sys.paths to include site-packages. Without this, running this
+# script from cron with python -S will fail.
+from Mailman import mm_cfg
+from Mailman import MailList
+from Mailman import Errors
+from Mailman import Utils
+from Mailman import Message
+from Mailman import i18n
+from Mailman.Logging.Syslog import syslog
+
+# Work around known problems with some RedHat cron daemons
+import signal
+signal.signal(signal.SIGCHLD, signal.SIG_DFL)
+
+NL = '\n'
+PROGRAM = sys.argv[0]
+
+_ = i18n._
+
+
+
+def usage(code, msg=''):
+ if code:
+ fd = sys.stderr
+ else:
+ fd = sys.stdout
+ print >> fd, _(__doc__)
+ if msg:
+ print >> fd, msg
+ sys.exit(code)
+
+
+
+def main():
+ try:
+ opts, args = getopt.getopt(sys.argv[1:], 'l:h',
+ ['listname=', 'help'])
+ except getopt.error, msg:
+ usage(1, msg)
+
+ if args:
+ usage(1)
+
+ listnames = None
+ for opt, arg in opts:
+ if opt in ('-h', '--help'):
+ usage(0)
+ if opt in ('-l', '--listname'):
+ if listnames is None:
+ listnames = [arg]
+ else:
+ listnames.append(arg)
+
+ if listnames is None:
+ listnames = Utils.list_names()
+
+ # This is the list that all the reminders will look like they come from,
+ # but with the host name coerced to the virtual host we're processing.
+ try:
+ sitelist = MailList.MailList(mm_cfg.MAILMAN_SITE_LIST, lock=0)
+ except Errors.MMUnknownListError:
+ # Do it this way for I18n's _()
+ sitelistname = mm_cfg.MAILMAN_SITE_LIST
+ print >> sys.stderr, _('Site list is missing: %(sitelistname)s')
+ syslog('error', 'Site list is missing: %s', mm_cfg.MAILMAN_SITE_LIST)
+ sys.exit(1)
+
+ # Group lists by host_name if VIRTUAL_HOST_OVERVIEW is true, otherwise
+ # there's only one key in this dictionary: mm_cfg.DEFAULT_EMAIL_HOST. The
+ # values are lists of the unlocked MailList instances.
+ byhost = {}
+ for listname in listnames:
+ mlist = MailList.MailList(listname, lock=0)
+ if not mlist.send_reminders:
+ continue
+ if mm_cfg.VIRTUAL_HOST_OVERVIEW:
+ host = mlist.host_name
+ else:
+ # See the note in Defaults.py concerning DEFAULT_HOST_NAME
+ # vs. DEFAULT_EMAIL_HOST.
+ host = mm_cfg.DEFAULT_HOST_NAME or mm_cfg.DEFAULT_EMAIL_HOST
+ byhost.setdefault(host, []).append(mlist)
+
+ # Now for each virtual host, collate the user information. Each user
+ # entry has the form (listaddr, password, optionsurl)
+ for host in byhost.keys():
+ # Site owner is `mailman@dom.ain'
+ userinfo = {}
+ for mlist in byhost[host]:
+ listaddr = mlist.GetListEmail()
+ for member in mlist.getMembers():
+ # BAW: we group by cpaddress because although it's highly
+ # likely, there's no guarantee that person@list1 is the same
+ # as PERSON@list2. Sigh.
+ cpaddress = mlist.getMemberCPAddress(member)
+ password = mlist.getMemberPassword(member)
+ optionsurl = mlist.GetOptionsURL(member)
+ lang = mlist.getMemberLanguage(member)
+ info = (listaddr, password, optionsurl, lang)
+ userinfo.setdefault(cpaddress, []).append(info)
+ # Now that we've collected user information for this host, send each
+ # user the password reminder.
+ for addr in userinfo.keys():
+ # If the person is on more than one list, it is possible that they
+ # have different preferred languages, and there's no good way to
+ # know which one they want their password reminder in. Pick the
+ # most popular, and break the tie randomly.
+ #
+ # Also, we need an example -request address for cronpass.txt and
+ # again, there's no clear winner. Just take the first one in this
+ # case.
+ table = []
+ langs = {}
+ for listaddr, password, optionsurl, lang in userinfo[addr]:
+ langs[lang] = langs.get(lang, 0) + 1
+ # If the list address is really long, break it across two
+ # lines.
+ if len(listaddr) > 39:
+ fmt = '%s\n %-10s\n%s\n'
+ else:
+ fmt = '%-40s %-10s\n%s\n'
+ table.append(fmt % (listaddr, password, optionsurl))
+ # Figure out which language to use
+ langcnt = 0
+ poplang = None
+ for lang, cnt in langs.items():
+ if cnt > langcnt:
+ poplang = lang
+ langcnt = cnt
+ # Craft the table header
+ header = '%-40s %-10s\n%-40s %-10s' % (
+ _('List'), _('Password // URL'), '----', '--------')
+ # Now we're finally ready to send the email!
+ siteowner = Utils.get_site_email(host, 'owner')
+ sitereq = Utils.get_site_email(host, 'request')
+ sitebounce = Utils.get_site_email(host, 'bounces')
+ text = Utils.maketext(
+ 'cronpass.txt',
+ {'hostname': host,
+ 'useraddr': addr,
+ 'exreq' : sitereq,
+ 'owner' : siteowner,
+ }, lang=poplang)
+ # Add the table to the end so it doesn't get wrapped/filled
+ text += (header + '\n' + NL.join(table))
+ # Translate the message and headers to user's suggested lang
+ otrans = i18n.get_translation()
+ try:
+ i18n.set_language(poplang)
+ msg = Message.UserNotification(
+ addr, siteowner,
+ _('%(host)s mailing list memberships reminder'),
+ text, poplang)
+ finally:
+ i18n.set_translation(otrans)
+ msg['X-No-Archive'] = 'yes'
+ # We want to make this look like it's coming from the siteowner's
+ # list, but we also want to be sure that the apparent host name is
+ # the current virtual host. Look in CookHeaders.py for why this
+ # trick works. Blarg.
+ msg.send(sitelist, **{'errorsto': sitebounce,
+ '_nolist' : 1,
+ 'verp' : mm_cfg.VERP_PASSWORD_REMINDERS,
+ })
+
+
+
+if __name__ == '__main__':
+ main()
diff --git a/cron/nightly_gzip b/cron/nightly_gzip
new file mode 100644
index 00000000..61b64184
--- /dev/null
+++ b/cron/nightly_gzip
@@ -0,0 +1,156 @@
+#! @PYTHON@
+#
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+"""Re-generate the Pipermail gzip'd archive flat files.
+
+This script should be run nightly from cron. When run from the command line,
+the following usage is understood:
+
+Usage: %(program)s [-v] [-h] [listnames]
+
+Where:
+ --verbose
+ -v
+ print each file as it's being gzip'd
+
+ --help
+ -h
+ print this message and exit
+
+ listnames
+ Optionally, only compress the .txt files for the named lists. Without
+ this, all archivable lists are processed.
+
+"""
+
+import sys
+import os
+import time
+from stat import *
+import getopt
+
+try:
+ import gzip
+except ImportError:
+ gzip = None
+
+import paths
+# mm_cfg must be imported before the other modules, due to the side-effect of
+# it hacking sys.paths to include site-packages. Without this, running this
+# script from cron with python -S will fail.
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman import MailList
+
+
+
+program = sys.argv[0]
+VERBOSE = 0
+
+def usage(code, msg=''):
+ if code:
+ fd = sys.stderr
+ else:
+ fd = sys.stdout
+ print >> fd, _(__doc__) % globals()
+ if msg:
+ print >> fd, msg
+ sys.exit(code)
+
+
+
+def compress(txtfile):
+ if VERBOSE:
+ print "gzip'ing:", txtfile
+ infp = open(txtfile)
+ outfp = gzip.open(txtfile+'.gz', 'wb', 6)
+ outfp.write(infp.read())
+ outfp.close()
+ infp.close()
+
+
+
+def main():
+ global VERBOSE
+ try:
+ opts, args = getopt.getopt(sys.argv[1:], 'vh', ['verbose', 'help'])
+ except getopt.error, msg:
+ usage(1, msg)
+
+ # defaults
+ for opt, arg in opts:
+ if opt in ('-h', '--help'):
+ usage(0)
+ elif opt in ('-v', '--verbose'):
+ VERBOSE = 1
+
+ # limit to the specified lists?
+ if args:
+ listnames = args
+ else:
+ listnames = Utils.list_names()
+
+ # process all the specified lists
+ for name in listnames:
+ mlist = MailList.MailList(name, lock=0)
+ if not mlist.archive:
+ continue
+ dir = mlist.archive_dir()
+ try:
+ allfiles = os.listdir(dir)
+ except os.error:
+ # has the list received any messages? if not, last_post_time will
+ # be zero, so it's not really a bogus archive dir.
+ if mlist.last_post_time > 0:
+ print 'List', name, 'has a bogus archive_directory:', dir
+ continue
+ if VERBOSE:
+ print 'Processing list:', name
+ files = []
+ for f in allfiles:
+ if f[-4:] <> '.txt':
+ continue
+ # stat both the .txt and .txt.gz files and append them only if
+ # the former is newer than the latter.
+ txtfile = os.path.join(dir, f)
+ gzpfile = txtfile + '.gz'
+ txt_mtime = os.stat(txtfile)[ST_MTIME]
+ try:
+ gzp_mtime = os.stat(gzpfile)[ST_MTIME]
+ except os.error:
+ gzp_mtime = -1
+ if txt_mtime > gzp_mtime:
+ files.append(txtfile)
+ for f in files:
+ compress(f)
+
+
+
+if __name__ == '__main__' and \
+ gzip is not None and \
+ mm_cfg.ARCHIVE_TO_MBOX in (1, 2) and \
+ not mm_cfg.GZIP_ARCHIVE_TXT_FILES:
+ # we're only going to run the nightly archiver if messages are archived to
+ # the mbox, and the gzip file is not created on demand (i.e. for every
+ # individual post). This is the normal mode of operation. Also, be sure
+ # we can actually import the gzip module!
+ omask = os.umask(002)
+ try:
+ main()
+ finally:
+ os.umask(omask)
diff --git a/cron/senddigests b/cron/senddigests
new file mode 100755
index 00000000..5f03606b
--- /dev/null
+++ b/cron/senddigests
@@ -0,0 +1,94 @@
+#! @PYTHON@
+#
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Dispatch digests for lists w/pending messages and digest_send_periodic set.
+
+Usage: %(PROGRAM)s [options]
+
+Options:
+ -h / --help
+ Print this message and exit.
+
+ -l listname
+ --listname=listname
+ Send the digest for the given list only, otherwise the digests for all
+ lists are sent out.
+"""
+
+import sys
+import getopt
+
+import paths
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman import MailList
+from Mailman.i18n import _
+
+# Work around known problems with some RedHat cron daemons
+import signal
+signal.signal(signal.SIGCHLD, signal.SIG_DFL)
+
+PROGRAM = sys.argv[0]
+
+
+
+def usage(code, msg=''):
+ if code:
+ fd = sys.stderr
+ else:
+ fd = sys.stdout
+ print >> fd, _(__doc__)
+ if msg:
+ print >> fd, msg
+ sys.exit(code)
+
+
+
+def main():
+ try:
+ opts, args = getopt.getopt(sys.argv[1:], 'hl:', ['help', 'listname='])
+ except getopt.error, msg:
+ usage(1, msg)
+
+ if args:
+ usage(1)
+
+ listnames = []
+ for opt, arg in opts:
+ if opt in ('-h', '--help'):
+ usage(0)
+ elif opt in ('-l', '--listname'):
+ listnames.append(arg)
+
+ if not listnames:
+ listnames = Utils.list_names()
+
+ for listname in listnames:
+ mlist = MailList.MailList(listname, lock=0)
+ if mlist.digest_send_periodic:
+ mlist.Lock()
+ try:
+ mlist.send_digest_now()
+ mlist.Save()
+ finally:
+ mlist.Unlock()
+
+
+
+if __name__ == '__main__':
+ main()
diff --git a/doc/IPC7/README b/doc/IPC7/README
new file mode 100644
index 00000000..835ff71a
--- /dev/null
+++ b/doc/IPC7/README
@@ -0,0 +1,8 @@
+The file ipc7.doc contains the MS Word version of the Mailman paper
+presented by Ken Manheimer at the 7th International Python Conference,
+held in Houston TX, November 10-13, 1998.
+
+The file ipc7.ppt contains the MS PowerPoint slides Ken used in his
+presentation.
+
+[ipc7.doc.gz and ipc7.ppt.gz are compressed with GNU gzip]
diff --git a/doc/IPC7/ipc7.doc.gz b/doc/IPC7/ipc7.doc.gz
new file mode 100755
index 00000000..e13bb4aa
--- /dev/null
+++ b/doc/IPC7/ipc7.doc.gz
Binary files differ
diff --git a/doc/IPC7/ipc7.ppt.gz b/doc/IPC7/ipc7.ppt.gz
new file mode 100755
index 00000000..7fe2cd14
--- /dev/null
+++ b/doc/IPC7/ipc7.ppt.gz
Binary files differ
diff --git a/doc/LISA-98/README b/doc/LISA-98/README
new file mode 100644
index 00000000..9809cf05
--- /dev/null
+++ b/doc/LISA-98/README
@@ -0,0 +1,13 @@
+The file published.ps is (nearly) the PostScript of the paper
+published in Usenix LISA 98, Dec 6-11 1998, Boston MA. John Viega
+presented this paper on Dec 11, 1998.
+
+I say "nearly" because there was one minor typo in this file that was
+corrected in the final published version. Footnote 3 (page 312)
+should read:
+
+ This file may in fact reside in other locations, depending on the
+ system. For example, on many Solaris machines this file is
+ located in /etc/mail/aliases.
+
+[published.ps.gz is compressed with GNU gzip]
diff --git a/doc/LISA-98/published.ps.gz b/doc/LISA-98/published.ps.gz
new file mode 100644
index 00000000..4ab84dfe
--- /dev/null
+++ b/doc/LISA-98/published.ps.gz
Binary files differ
diff --git a/doc/mailman-admin.tex b/doc/mailman-admin.tex
new file mode 100644
index 00000000..8cdc7a61
--- /dev/null
+++ b/doc/mailman-admin.tex
@@ -0,0 +1,1352 @@
+\documentclass{howto}
+
+\title{GNU Mailman - List Administration Manual}
+
+% Increment the release number whenever significant changes are made.
+% The author and/or editor can define 'significant' however they like.
+\release{1.0}
+
+% At minimum, give your name and an email address. You can include a
+% snail-mail address if you like.
+\author{Barry A. Warsaw}
+%\authoraddress{barry@zope.com}
+
+\date{\today} % XXX update before tagging release!
+\release{2.1} % software release, not documentation
+\setreleaseinfo{} % empty for final release
+\setshortversion{2.1} % major.minor only for software
+
+\begin{document}
+\maketitle
+
+% This makes the Abstract go on a separate page in the HTML version;
+% if a copyright notice is used, it should go immediately after this.
+%
+\ifhtml
+\chapter*{Front Matter\label{front}}
+\fi
+
+% Copyright statement should go here, if needed.
+% ...
+
+% The abstract should be a paragraph or two long, and describe the
+% scope of the document.
+\begin{abstract}
+\noindent
+This document describes the list administrator's interface for GNU
+Mailman 2.1. It contains information a list owner would need to
+configure their list, either through the web interface or through
+email. It also covers the moderator's interface for approving held
+messages and subscription notices, and the web interface for creating
+new mailing lists. In general, it does not cover the command line
+interface to Mailman, installing Mailman, or interacting with Mailman
+from the point of view of the user. That information is covered in
+other manuals.
+\end{abstract}
+
+\tableofcontents
+
+\section{Introduction to GNU Mailman}
+
+GNU Mailman is software that lets you manage electronic mailing lists.
+It supports a wide range of mailing list types, such as general
+discussion lists and announce-only lists. Mailman has extensive
+features for controlling the privacy of your lists, distributing your
+list as personalized postings or digests, gatewaying postings to and
+from Usenet, and providing automatic bounce detection. Mailman
+provides a built-in archiver, multiple natural languages, as well as
+advanced content and topic filtering.
+
+Mailman provides several interfaces to its functionality. Most list
+administrators will primarily use the web interface to customize their
+lists. There is also a limited email command interface to the
+administrative functions, as well as a command line interface if you
+have shell access on the Mailman server. This document does not cover
+the command line interface; see the GNU Mailman site administrator's
+manual for more details.
+
+\subsection{A List's Email Addresses}
+
+Every mailing list has a set of email addresses that messages can be
+sent to. There's always one address for posting messages to the list,
+one address that bounces will be sent to, and addresses for processing
+email commands. For example, for a mailing list called
+\var{mylist@example.com}, you'd find these addresses:
+
+\begin{itemize}
+\item mylist@example.com -- this is the email address people should
+ use for new postings to the list.
+
+\item mylist-join@example.com -- by sending a message to this address,
+ a new member can request subscription to the list. Both the
+ \mailheader{Subject} header and body of such a message are
+ ignored. Note that mylist-subscribe@example.com is an alias for
+ the -join address.
+
+\item mylist-leave@example.com -- by sending a message to this address,
+ a member can request unsubscription from the list. As with the
+ -join address, the \mailheader{Subject} header and body of the
+ message is ignored. Note that mylist-unsubscribe@example.com is
+ an alias for the -leave address.
+
+\item mylist-owner@example.com -- This address reaches the list owner
+ and list moderators directly.
+
+\item mylist-request@example.com -- This address reaches a mail robot
+ which processes email commands that can be used to set member
+ subscription options, as well as process other commands.
+
+\item mylist-bounces@example.com -- This address receives bounces from
+ members who's addresses have become either temporarily or
+ permanently inactive. The -bounces address is also a mail robot
+ that processes bounces and automatically disables or removes
+ members as configured in the bounce processing settings. Any
+ bounce messages that are either unrecognized, or do not seem to
+ contain member addresses, are forwarded to the list
+ administrators.
+
+\item mylist-confirm@example.com -- This address is another email
+ robot, which processes confirmation messages for subscription
+ and unsubscription requests.
+\end{itemize}
+
+There's also an -admin address which also reaches the list
+administrators, but this address only exists for compatibility with
+older versions of Mailman.
+
+\subsection{Administrative Roles}
+
+There are two primary administrative roles for each mailing list, a
+list owner and a list moderator. A list owner is allowed to change
+various settings of the list, such as the privacy and archiving
+policies, the content filtering settings, etc. The list owner is also
+allowed to subscribe or invite members, unsubscribe members, and
+change any member's subscription options.
+
+The list moderator on the other hand, is only allowed to approve or
+reject postings and subscription requests. The list moderator can
+also do things like clear a member's moderation flag, or add an
+address to a list of approved non-member posters.
+
+Normally, the list owner and list moderator are the same person. In
+fact, the list owner can always do all the tasks a list moderator can
+do. Access to both the owner's configuration pages, and the
+moderation pages are protected by the same password. However, if the
+list owner wants to delegate posting and subscription approval
+authority to other people, a separate list moderator password can be
+set, giving moderators access to the approval pages, but not the
+configuration pages. In this setup, list owners can still moderate
+the list, of course.
+
+In the sections that follow, we'll often use the terms list owner and
+list administrator interchangably, meaning both roles. When
+necessary, we'll distinguish the list moderator explicitly.
+
+\subsection{A List's Web Pages}
+
+Every mailing list is also accessible by a number of web pages. Note
+that the exact urls is configurable by the site administrator, so they
+may be different than what's described below. We'll describe the most
+common default configuration, but check with your site administrator
+or hosting service for details.
+
+Mailman provides a set of web pages that list members use to get
+information about the list, or manage their membership options. There
+are also list archive pages, for browsing an online web-based archive
+of the list traffic. These are described in more detail in the GNU
+Mailman user's manual.
+
+Mailman also provides a set of pages for configuring an individual
+list, as well as a set of pages for disposing of posting and
+subscription requests.
+
+For a mailing list called \var{mylist} hosted at the domain
+\var{lists.example.com}, you would typically access the administrative
+pages by going to \code{http://lists.example.com/mailman/admin/mylist}.
+The first time you visit this page, you will be presented with a login
+page, asking for the list owner's password. When you enter the
+password, Mailman will store a session cookie in your browser, so you
+don't have to re-authenticate for every action you want to take. This
+cookie is stored only until you exit your browser.
+
+To access the administrative requests page, you'd visit
+\code{http://lists.example.com/mailman/admindb/mylist} (note the
+\emph{admindb} url as opposed to the \emph{admin} url). Again, the
+first time you visit this page, you'll be presented with a login page,
+on which you can enter either the list moderator password or the list
+owner password. Again, a session cookie is dropped in your browser.
+Note also that if you've previously logged in as the list owner, you
+do not need to re-login to access the administrative requests page.
+
+\subsection{Basic Architectural Overview}
+
+This section will outline the basic architecture of GNU Mailman, such
+as how messages are processed by the sytem. Without going into lots
+of detail, this information will help you understand how the
+configuration options control Mailman's functionality.
+
+When mail enters the system from your mail server, it is dropped into
+one of several Mailman \emph{queues} depending on the address the
+message was sent to. For example, if your system has a mailing list
+named \var{mylist} and your domain is \var{example.com}, people can
+post messages to your list by sending them to
+\var{mylist@example.com}. These messages will be dropped into the
+\emph{incoming} queue, which is also colloquially called the
+\emph{moderate-and-munge} queue. The incoming queue is where most of
+the approval process occurs, and it's also where the message is
+prepared for sending out to the list membership.
+
+There are separate queues for the built-in archiver, the bounce
+processor, the email command processor, as well as the outgoing email
+and news queues. There's also a queue for messages generated by the
+Mailman system. Each of these queues typically has one \emph{queue
+runner} (or ``qrunner'') that processes messages in the queue. The
+qrunners are idle when there are no messages to process.
+
+Every message in the queues are represented by two files, a message
+file and a metadata file. Both of these files share the same base
+name, which is a combination of a unique hash and the Unix time that
+the message was received. The metadata file has a suffix of
+\file{.db} and the message file has a suffix of either \file{.msg} if
+stored in plain text, or \file{.pck} if stored in a more efficient
+internal representation\footnote{Specifically, a Python pickle}.
+
+As a message moves through the incoming queue, it performs various
+checks on the message, such as whether it matches one of the
+moderation criteria, or contains disallowed MIME types. Once a
+message is approved for sending to the list membership, the message is
+prepared for sending by deleting, adding, or changing message headers,
+adding footers, etc. Messages in the incoming queue may also be
+stored for appending to digests.
+
+\section{The List Configuration Pages}
+
+After logging into the list configuration pages, you'll see the
+configuration options for the list, grouped in categories. All the
+administrative pages have some common elements. In the upper section,
+you'll see two columns labeled ``Configuration Categories''. Some
+categories have sub-categories which are only visible when you click
+on the category link. The first page you see after logging in will be
+the ``General Options'' category. The specific option settings for
+each category are described below.
+
+On the right side of the top section, you'll see a column labeled
+``Other Administrative Activities''. Here you'll find some other
+things you can do to your list, as well as convenient links to the
+list information page and the list archives. Note the big ``Logout''
+link; use this if you're finished configuring your list and don't want
+to leave the session cookie active in your browser.
+
+Below this common header, you'll find a list of this category's
+configuration variables, arranged in two columns. In the left column
+is a brief description of the option, which also contains a
+``details'' link. For many of the variables, more details are
+available describing the semantics of the various available settings,
+or information on the interaction between this setting and other list
+options. Clicking on the details link brings up a page which contains
+only the information for that option, as well as a button for
+submitting your setting, and a link back to the category page.
+
+On the right side of the two-column section, you'll see the variable's
+current value. Some variables may present a limited set of values,
+via radio button or check box arrays. Other variables may present
+text entry boxes of one or multiple lines. Most variables control
+settings for the operation of the list, but others perform immediate
+actions (these are clearly labeled).
+
+At the bottom of the page, you'll find a ``Submit'' button and a
+footer with some more useful links and a few logos. Hitting the
+submit button commits your list settings, after they've been
+validated. Any invalid values will be ignored and an error message
+will be displayed at the top of the resulting page. The results page
+will always be the category page that you submitted.
+
+\subsection{The General Options Category}
+
+The General Options category is where you can set a variety of
+variables that affect basic behavior and public information. In the
+descriptions that follow, the variable name is given first, along with
+an overview and a description of what that variable controls.
+
+\subsubsection{General list personality}
+
+These variables, grouped under the general list personality section,
+control some public information about the mailing list.
+
+\begin{description}
+\item[real_name]
+ Every mailing list has both a \emph{posting name} and a \emph{real
+ name}. The posting name shows up in urls and in email addresses,
+ e.g. the \code{mylist} in \code{mylist@example.com}. The posting
+ name is always presented in lower case, with alphanumeric
+ characters and no spaces. The list's real name is used in some
+ public information and email responses, such as in the general
+ list overview. The real name can differ from the posting name by
+ case only. For example, if the posting name is \code{mylist}, the
+ real name can be \code{Posting}.
+
+\item[owner]
+ This variable contains a list of email addresses, one address per
+ line, of the list owners. These addresses are used whenever the
+ list owners need to be contacted, either by the system or by end
+ users. Often, these addresses are used in combination with the
+ \code{moderator} addresses (see below).
+
+\item[moderator]
+ This variable contains a list of email addresses, one address per
+ line, of the list moderators. These addresses are often used in
+ combination with the \code{owner} addresses. For example, when
+ you email \code{mylist-owner@example.com}, both the owner and
+ moderator addresses will receive a copy of the message.
+
+\item[description]
+ In the general list overview page, which shows you every available
+ mailing list, each list is displayed with a short description.
+ The contents of this variable is that description. Note that in
+ emails from the mailing list, this description is also used in the
+ comment section of the \mailheader{To} address. This text should
+ be relatively short and no longer than one line.
+
+\item[info]
+ This variable contains a longer description of the mailing list.
+ It is included at the top of the list's information page, and it
+ can contain HTML. However, blank lines will be automatically
+ converted into paragraph breaks. Preview your HTML though,
+ because unclosed or invalid HTML can prevent display of parts of
+ the list information page.
+
+\item[subject_prefix]
+ This is a string that will be prepended to the
+ \mailheader{Subject} header of any message posted to the list.
+ For example, if a message is posted to the list with a
+ \mailheader{Subject} like:
+
+ \begin{verbatim}
+ Subject: This is a message
+ \end{verbatim}
+
+ and the \code{subject_prefix} is \code{[My List] } (note the
+ trailing space!), then the message will be received like so:
+
+ \begin{verbatim}
+ Subject: [My List] This is a message
+ \end{verbatim}
+
+ If you leave \code{subject_prefix} empty, no prefix will be added
+ to the \mailheader{Subject}. Mailman is careful not to add a
+ prefix when the header already has one, as is the case in replies
+ for example. The prefix can also contain characters in the list's
+ preferred language. In this case, because of vagarities of the
+ email standards, you may or may not want to add a trailing space.
+
+\item[anonymous_list]
+ This variable allows you to turn on some simple anonymizing
+ features of Mailman. When you set this option to \emph{Yes},
+ Mailman will remove or replace the \mailheader{From},
+ \mailheader{Sender}, and \mailheader{Reply-To} fields of any
+ message posted to the list.
+
+ Note that this option is simply an aid for anonymization, it
+ doesn't guarantee it. For example, a poster's identity could be
+ evident in their signature, or in other mail headers, or even in
+ the style of the content of the message. There's little Mailman
+ can do about this kind of identity leakage.
+\end{description}
+
+\subsubsection{Reply-To header munging}
+
+This section controls what happens to the \mailheader{Reply-To}
+headers of messages posted through your list.
+
+Beware! \mailheader{Reply-To} munging is considered a religious issue
+and the policies you set here can ignite some of the most heated
+off-topic flame wars on your mailing lists. We'll try to stay as
+agnostic as possible, but our biases may still peak through.
+
+\mailheader{Reply-To} is a header that is commonly used to redirect
+replies to messages. Exactly what happens when your uses reply to
+such a message depends on the mail readers your users use, and what
+functions they provide. Usually, there is both a ``reply to sender''
+button and a ``reply to all'' button. If people use these buttons
+correctly, you will probably never need to munge
+\mailheader{Reply-To}, so the default values should be fine.
+
+Since an informed decision is always best, here are links to two
+articles that discuss the opposing viewpoints in great detail:
+
+\begin{itemize}
+
+\item \ulink{Reply-To Munging Considered
+ Harmful}{http://www.unicom.com/pw/reply-to-harmful.html}
+\item \ulink{Reply-To Munging Considered
+ Useful}{http://www.metasystema.org/essays/reply-to-useful.mhtml}
+
+\end{itemize}
+
+The three options in this section work together to provide enough
+flexibility to do whatever \mailheader{Reply-To} munging you might
+(misguidingly :) feel you need to do.
+
+\begin{description}
+
+\item[first_strip_reply_to]
+ This variable controls whether any \mailheader{Reply-To} header
+ already present in the posted message should get removed before
+ any other munging occurs. Stripping this header will be done
+ regardless of whether or not Mailman will add its own
+ \mailheader{Reply-To} header to the message.
+
+ If this option is set to \emph{No}, then any existing
+ \mailheader{Reply-To} header will be retained in the posted
+ message. If Mailman adds its own header, it will contain
+ addresses which are the union of the original header and the
+ Mailman added addresses. The mail standards specify that a
+ message may only have one \mailheader{Reply-To} header, but that
+ that header may contain multiple addresses.
+
+\item[reply_goes_to_list]
+ This variable controls whether Mailman will add its own
+ \mailheader{Reply-To} header, and if so, what the value of that
+ header will be (not counting original header stripping -- see
+ above).
+
+ When you set this variable to \emph{Poster}, no additional
+ \mailheader{Reply-To} header will be added by Mailman. This
+ setting is strongly recommended.
+
+ When you set this variable to \emph{This list}, a
+ \mailheader{Reply-To} header pointing back to your list's posting
+ address will be added.
+
+ When you set this variable to \emph{Explicit address}, the value
+ of the variable \code{reply_to_address} (see below) will be
+ added. Note that this is one situation where
+ \mailheader{Reply-To} munging may have a legitimate purpose. Say
+ you have two lists at your site, an announce list and a discussion
+ list. The announce list might allow postings only from a small
+ number of approved users; the general list membership probably
+ can't post to this list. But you want to allow comments on
+ announcements to be posted to the general discussion list by any
+ list member. In this case, you can set the \mailheader{Reply-To}
+ header for the announce list to point to the discussion list's
+ posting address.
+
+\item[reply_to_address]
+ This is the address that will be added in the
+ \mailheader{Reply-To} header if \code{reply_goes_to_list} is set
+ to \emph{Explicit address}.
+
+\end{description}
+
+\subsubsection{Umbrella list settings}
+
+TBD. Note that umbrella lists are deprecated and will be replace with
+a better mechanism for Mailman 3.0.
+
+\subsubsection{Notifications}
+
+Mailman sends notifications to the list administrators or list members
+under a number of different circumstances. Most of these
+notifications can be configured in this section, but see the Bounce
+Processing and Auto-responder categories for other notifications that
+Mailman can send.
+
+\begin{description}
+\item[send_reminders]
+ By default Mailman sends all list members a monthly password
+ reminder. This notice serves two purposes. First, it reminds
+ people about all the lists they may be subscribed to on this
+ domain, including the lists where their subscription may be
+ disabled. Second, it reminds people about their passwords for
+ these lists, as well as the url for their personal options pages,
+ so that they can more easily configure their subscription options.
+
+ Some people get annoyed with these monthly reminders, and they can
+ disable the reminders via their subscription options page. For
+ some lists, the monthly reminders aren't appropriate for any of
+ the members, so you can disable them list-wide by setting the
+ \code{send_reminders} variable to \emph{No}.
+
+\item[welcome_msg]
+ When new members are subscribed to the list, either by their own
+ action, or the action of a list administrator, a welcome message
+ can be sent to them. The welcome message contains some common
+ boilerplate information, such as the name of the list,
+ instructions for posting to the list, and the member's
+ subscription password. You can add additional information to the
+ welcome message by typing the text into the \code{welcome_msg}
+ text box. Note that because this text is sent as part of an
+ email, it should \strong{not} contain HTML.
+
+\item[send_welcome_msg]
+ This flag controls whether or not the welcome message is sent to
+ new subscribers.
+
+\item[goodbye_msg]
+ Like the \code{welcome_msg}, a ``goodbye'' message can be sent to
+ members when they unsubscribe from the list. Unlike the welcome
+ message, there's no boilerplate for the goodbye message. Enter
+ the entire goodbye message you'd like unsubscribing members to
+ receive into the \code{goodbye_msg} text box.
+
+\item[send_goodbye_msg]
+ This flag controls whether or not the goodbye message is sent to
+ unsubscribing members.
+
+\item[admin_immed_notify]
+ List moderators get notifications of pending administrative
+ actions, such as subscription or unsubscription requests that
+ require moderator approval, or posted messages that are being held
+ for moderator approval. List moderators will always get a daily
+ summary of such pending requests, but they can also get immediate
+ notifications when such a request is made. The
+ \code{admin_immed_notify} variable controls whether these
+ immediate notifications are sent or not. It's generally a good
+ idea to leave this set to \emph{Yes}.
+
+\item[admin_notify_mchanges]
+ This variable controls whether the list administrators should get
+ notifications when members join or leave the list.
+
+\item[respond_to_post_requests]
+ This variable controls whether the original sender of a posting
+ gets a notice when their message is held for moderator approval.
+
+\end{description}
+
+\subsubsection{Additional settings}
+
+This section contains some miscellaneous settings for your mailing
+list.
+
+\begin{description}
+\item[emergency]
+ When this option is enabled, all list traffic is emergency
+ moderated, i.e. held for moderation. Turn this option on when
+ your list is experiencing a flamewar and you want a cooling off
+ period.
+
+\item[new_member_options]
+ Each member has a set of subscription options which they can use
+ to control how they receive messages and otherwise interact with
+ the list. While the members can change these settings by logging
+ into their personal options page, you might want to set the
+ default for a number of the member options. You can do that with
+ this variable, but see also the other categories for other member
+ defaults you can set.
+
+ This variable presents a set of checkboxes which control the
+ defaults for some of the member options. \emph{Conceal the
+ member's address} specifies whether or not the address is
+ displayed in the list roster. \emph{Acknowledge the member's
+ posting} controls whether or not Mailman sends an acknowledgement
+ to a member when they post a message to the list. \emph{Do not
+ send a copy of a member's own post} specifies whether a member
+ posting to the list will get a copy of their own posting.
+ \emph{Filter out duplicate messages to list members (if possible)}
+ specifies whether members who are explicitly listed as a recipient
+ of a message (e.g. via the \mailheader{Cc} header) will also get a
+ copy from Mailman.
+
+ Of course, members can always override these defaults by making
+ changes on their membership options page.
+
+\item[administrivia]
+ This option specifies whether Mailman will search posted messages
+ for \emph{admimistrivia}, in other words, email commands which
+ usually should be posted to the \code{-request} address for the
+ list. Setting this to \emph{Yes} helps prevent such things as
+ unsubscribe messages getting erroneously posted to the list.
+
+ If a message seems to contain administrivia, it is held for
+ moderator approval.
+
+\item[max_message_size]
+ This option specifies a maximum message size, in kilobytes, over
+ which the message will be held for moderator approval.
+
+\item[host_name]
+ This option specifies the host name part of email addresses used
+ by this list. For example, this is the \code{example.com} part of
+ the posting address \code{mylist@example.com}.
+
+ It's generally not a good idea to change this value, since its
+ default value is specified when the mailing list is created.
+ Changing this to an incorrect value could make it difficult to
+ contact your mailing list. Also not that the url used to visit
+ the list's pages is not configurable through the web interface.
+ This is because if you messed it up, you'd have to have the site
+ administrator fix it.
+
+\item[include_rfc2369_headers]
+ \rfc{2369} is an internet standard that describes a bunch of
+ headers that mailing list managers should add to messages to make
+ it easier for people to interact with the list. Mail reading
+ programs which support this standard may provide buttons for easy
+ access to the list's archives, or for subscribing and
+ unsubscribing to the list. It's generally a good idea to enable
+ these headers as it provides for an improved user experience.
+ These headers are often called the \code{List-*} headers.
+
+ However, not all mail readers are standards compliant yet, and if
+ you have a large number of members who are using non-compliant
+ mail readers, they may be annoyed at these headers. You should
+ first try to educate your members as to why these headers exist,
+ and how to hide them in their mail clients. As a last resort you
+ can disable these headers, but this is not recommended.
+
+\item[include_list_post_header]
+ The \mailheader{List-Post} header is one of the headers
+ recommended by \rfc{2369}. However for some announce-only mailing
+ lists, only a very select group of people are allowed to post to
+ the list; the general membership is usually not allowed to post to
+ such lists. For lists of this nature, the \mailheader{List-Post}
+ header is misleading. Select \emph{No} to disable the inclusion
+ of this header. (This does not affect the inclusion of the other
+ \code{List-*} headers.)
+\end{description}
+
+\subsection{The Passwords Category}
+As mentioned above, there are two primary administrative roles for
+mailing lists. In this category you can specify the password for
+these roles.
+
+The list owner has total control over the configuration of their
+mailing list (within some bounds as specified by the site
+administrator). Note that on this page, for historical reasons, the
+list owner role is described here as the \emph{list administrator}.
+You can set the list owner's password by entering it in the password
+field on the left. You must type it twice for confirmation. Note
+that if you forget this password, the only way for you to get back
+into your list's administrative pages is to ask the site administrator
+to reset it for you (there's no password reminders for list owners).
+
+If you want to delegate list moderation to someone else, you can enter
+a different moderator password in the field on the right (typed twice
+for confirmation). Note that if you aren't going to delegate
+moderation, and the same people are going to both configure the list
+and moderate postings to the list, don't enter anything into the
+moderator password fields. If you do enter a separate moderator
+password, be sure to fill in the \code{moderator} variable in the
+\emph{General options} category page.
+
+\subsection{The Language Options Category}
+Mailman is multilingual and internationalized, meaning you can set up
+your list so that members can interact with it in any of a number of
+natural languages. Of course, Mailman won't translate list
+postings. :)
+
+However, if your site administrator has enabled its support, you can
+set your list up to support any of about two dozen languages, such as
+German, Italian, Japanese, or Spanish. Your list members can then
+choose any of your supported languages as their \emph{preferred
+language} for interacting with the list. Such things as their member
+options page will be displayed in this language. Each mailing list
+also has its own \emph{preferred language} which is the language the
+list supports if no other language context is known.
+
+These variables control the language settings for your mailing list:
+
+\begin{description}
+\item[preferred_language]
+ This is the list's preferred language, which is the language that
+ the list administrative pages will be displayed in. Also any
+ messages sent to the list owners by Mailman will be sent in this
+ language. This option is presented as a drop-down list containing
+ the language enabled in the \code{available_languages} variable.
+
+\item[available_languages]
+ This set of checkboxes contains all the natural languages that
+ your site administrator has made available to your mailing lists.
+ Select any language that you'd either like your members to be able
+ to view the list in, or that you'd like to be able to use in your
+ list's \code{preferred_language} variable.
+
+\item[encode_ascii_prefixes]
+ If your mailing list's preferred language uses a non-ASCII
+ character set and the \code{subject_prefix} contains non-ASCII
+ characters, the prefix will always be encoded according to the
+ relevant standards. However, if your subject prefix contains only
+ ASCII characters, you may want to set this option to \emph{Never}
+ to disable prefix encoding. This can make the subject headers
+ slightly more readable for users with mail readers that don't
+ properly handle non-ASCII encodings.
+
+ Note however, that if your mailing list receives both encoded and
+ unencoded subject headers, you might want to choose \emph{As
+ needed}. Using this setting, Mailman will not encode ASCII
+ prefixes when the rest of the header contains only ASCII
+ characters, but if the original header contains non-ASCII
+ characters, it will encode the prefix. This avoids an ambiguity
+ in the standards which could cause some mail readers to display
+ extra, or missing spaces between the prefix and the original
+ header.
+\end{description}
+
+\subsection{The Membership Management Category}
+
+The \emph{Membership Management} category is unlike the other
+administrative categories. It doesn't contain configuration variables
+or list settings. Instead, it presents a number of pages that allow
+you to manage the membership of you list. This includes pages for
+subscribing and unsubscribing members, and for searching for members,
+and for changing various member-specific settings.
+
+More details on membership management are described in the Membership
+Management section.
+
+\subsection{The Non-digest Options Category}
+
+Mailman delivers messages to users via two modes. List members can
+elect to receive postings in bundles call \emph{digests} one or a few
+times a day, or they can receive messages immediately whenever the
+message is posted to the list. This latter delivery mode is also
+called \emph{non-digest delivery}. There are two administrative
+categories available for separately controlling digest and non-digest
+delivery. You can even disable one or the other forms of delivery
+(but not both).
+
+Both kinds of delivery can have list-specific headers and footers
+added to them which can contain other useful information you want your
+list members to see. For example, you can include instructions for
+unsubscribing, or a url to the lists digest, or any other information.
+
+Non-digest deliveries can also be \emph{personalized} which means
+certain parts of the message can contain information tailored to the
+member receiving the message. For example, the \mailheader{To} header
+will contain the address of the member when deliveries are
+personalized. Footers and headers can contain personalized
+information as well, such as a link to the individual user's options
+page.
+
+In addition, personalized messages will contain extra information that
+Mailman can use to unambiguously track bounces from members.
+Ordinarily, Mailman does some pattern recognition on bounce messages
+to determine list members whose addresses are no longer valid, but
+because of the vagaries of mail systems, and the countless forwards
+people can put in place, it's often the case that bounce messages
+don't contain any useful information in them. Personalized messages
+avoid this problem by encoding information in certain headers that
+unambiguously identify the recipient of a message. If that message
+bounces, Mailman will know exactly which member it was intended for.
+
+Note that because personalization requires extra system resources, it
+must be enabled by the site administrator before you can choose it.
+
+Here are the variables which control non-digest delivery:
+
+\begin{description}
+\item[nondigestable]
+ This option controls whether members can receive immediate
+ delivery or not. If not, they will be forced to receive messages
+ in digests. You can't disable non-digest delivery if digests are
+ already disabled.
+
+\item[personalize]
+ This option turns on message personalization.
+
+\item[msg_header]
+ This text box lets you enter information that will be included in
+ the header of every non-digest message sent through the
+ list.
+
+ See below for more information on what can go in the headers and
+ footers. If you leave this text box empty, no header will be
+ added.
+
+\item[msg_footer]
+ Just like with the header, you can add a footer to every message.
+ The same rules apply to footers as apply to headers.
+\end{description}
+
+Headers and footers can contain any text you want. For non-English
+lists, the headers and footers can contain any character in the
+character set of the list's preferred language. The headers and
+footers can also contain \emph{substitution variables} which Mailman
+will fill in with information taken from the mailing list. These
+substitutions are in Python string interpolation format, where
+something like \code{\%(list_name)s} is substituted with he name of
+the mailing list. Note that the trailing \samp{s} is
+required\footnote{The site administrator can configure lists to use a
+simpler interpolation format, where \code{\$list_name} or
+\code{\$\{list_name\}} would be substituted with the mailing list's
+name. Ask your site administrator if the've configured your list this
+way.}.
+
+For example, a footer containing the following text:
+
+\begin{verbatim}
+This is the \%(list_name)s mailing list
+Description: \%(description)s
+\end{verbatim}
+
+might get attached to postings like so:
+
+\begin{verbatim}
+This is the Example mailing list
+Description: An example of Mailman mailing lists
+\end{verbatim}
+
+Here is the list of substitution variables available for your headers
+and footers:
+
+\begin{description}
+\item[real_name]
+ This is the value of the \code{real_name} configuration variable
+ in the General options category.
+
+\item[list_name]
+ This is the canonical name of the mailing list. In other words
+ it's the posting address of the list\footnote{For backward
+ compatibility, the variable \code{_internal_name} is
+ equivalent.}.
+
+\item[host_name]
+ This is the domain name part of the email address for this list.
+
+\item[web_page_url]
+ This is the base url for contacting the list via the web. It can
+ be appended with \code{listinfo/\%(list_name)s} to yield the
+ general list information page for the mailing list.
+
+\item[description]
+ The brief description of the mailing list.
+
+\item[info]
+ This is the full description of the mailing list.
+
+\item[cgiext]
+ This is the extension added to CGI scripts. It might be the empty
+ string, \code{.cgi}, or something else depending on how your site
+ is configured.
+\end{description}
+
+Note that \code{real_name}, \code{host_name}, \code{description}, and
+\code{info} substitution variables take their values from the list
+configuration variables of the same name.
+
+When personalization is enabled, the following substitution variables
+are also available:
+
+\begin{description}
+\item[user_address]
+ The address of the recipient of the message, coerced to lower case.
+
+\item[user_delivered_to]
+ The case-preserved address that the user subscribed to the mailing
+ list with\footnote{Usually it makes no difference which of
+ \code{user_address} and \code{user_delivered_to} is used, but it's
+ important to remember that they can be different. When they're
+ different, Mailman always uses the lower case address as the key
+ to the member's subscription information, but it always delivers
+ messages to the case-preserved version.}.
+
+\item[user_password]
+ The user's password, in clear text.
+
+\item[user_name]
+ The user's full name.
+
+\item[user_optionsurl]
+ The url to the user's personal options page.
+\end{description}
+
+\subsection{The Digest Options Category}
+
+Digest delivery is a way to bundle many articles together into one
+package, which can be delivered once per day (if there were any posted
+articles), or whenever the package is bigger than a specified limit.
+Some users may prefer this style of delivery for higher traffic lists
+since they will receive fewer messages.
+
+Mailman supports two standard digest formats, and if digests are
+enabled, users can select which of the two formats they receive. One
+is MIME digests, where each message is an attachment inside a
+\mimetype{multipart/digest}. This format also contains a summary
+table of contents, and of course the an optional header and footer,
+and it retains most of the headers of the original messages.
+
+The second type is called ``plaintext'' digests because they are
+readable in mail readers that don't support MIME. Actually, they
+adhere to the \rfc{1153} digest standard. The retain some, but not
+all of the original messages, but can also include a summary and
+headers and footers.
+
+Like non-digest delivery, you can enable or disable digest delivery,
+but you cannot disable both types of delivery. You can specify
+different headers and footers for digest and non-digest deliveries.
+You cannot personalize digest deliveries.
+
+As list administrator, you may want to send an urgent message to all
+list members, bypassing the normal digest bundling. To do this, send
+the message with a \mailheader{Urgent} header, where the value of the
+header is the list administrator's password. Non-digest members will
+receive the message like normal, but digest members will receive the
+message immediately\footnote{They'll also receive the message in the
+digest.}.
+
+Here are the variables which control digest delivery:
+
+\begin{description}
+\item[digestable]
+ The option controls whether members can receive digest deliveries
+ or not. If not, they will be forced to receive immediate
+ deliveries. You can't disable digests if non-digests are already
+ disabled.
+
+\item[digest_is_default]
+ Controls which style of delivery is the default for new members.
+ You can choose \emph{Regular} (non-digest) or \emph{Digest}
+ delivery.
+
+\item[mime_is_default_digest]
+ If a member is allowed to choose digests, this variable controls
+ which is the default digest style they will receive. \emph{Plain}
+ digests are \rfc{1153} format as described above.
+
+\item[digest_size_threshold]
+ Normally, digest members get at least one message per day, if
+ there have been any messages posted to the list. However, for
+ high volume lists, you may want to send out digests when the size
+ has reached a certain threshold, otherwise, the one digest they
+ receive could be huge. This variable controls the size threshold
+ by specifying the maximum digest size in kilobytes. Note that
+ this threshold isn't exact. Set this variable to zero to specify
+ that there is no size threshold, in which case no more than one
+ digest will be sent out per day.
+
+\item[digest_send_periodic]
+ This variable actually controls whether or not a digest is sent
+ daily when the size threshold has not yet been met. If set to
+ \emph{No}, then digests will only be sent when they are bigger
+ than \code{digest_size_threshold}.
+
+\item[digest_header]
+ This text box lets you enter information that will be included in
+ the header of every digest message sent through the list. The
+ same information can go in this header as can go in the
+ \code{msg_header}, except for the personalization variables.
+
+\item[digest_footer]
+ Just like with the header, you can add a footer to every message.
+ The same rules apply to digest footers as apply to digest headers.
+
+\item[digest_volume_frequency]
+ Each digest is numbered with a volume and an issue. This variable
+ controls how often a new digest volume is sent. When the digest
+ volume number is incremented, the issue number is reset to 1.
+
+\item[_new_volume]
+ This is an action variable, which forces an increment of the
+ volume number as soon as you submit the form.
+
+\item[_send_digest_now]
+ This is another action variable. Select \emph{Yes}, submit the
+ form, and the current digest is packaged up and sent to digest
+ members, regardless of size (well, there has to be at least one
+ message in the digest).
+\end{description}
+
+\subsection{The Privacy Options Category}
+
+The Privacy category lets you control how much of the list's
+information is public, as well as who can send messages to your list.
+It also contains some spam detection filters. Note that this section
+is not used to control whether your list's archives are public or
+private; for that, use the \ref{Archiving options} category.
+
+There are four sub-categories:
+\begin{itemize}
+\item Subscription rules -- i.e. the rules for joining and leaving
+ your mailing list
+
+\item Sender filters -- the rules for who may post messages to your
+ list
+
+\item Recipient filters -- moderation rules based on the recipient of
+ the message
+
+\item Spam filters -- some regular expression based rules for header
+ matching
+\end{itemize}
+
+The sender, recipient, and spam filtering rules are part of the
+general list moderation features of Mailman. When a message is posted
+to the list, it is matched against a number of criteria, the outcome
+of which determines whether the message is reflected to the membership
+or not. In general, the outcome is one of four states:
+
+\begin{itemize}
+\item Approved or Accepted -- the message may be sent on to the
+ members of the mailing list.
+
+\item Hold -- the message will be held for moderator approval. The
+ list owners and moderators will then have to explicitly approve
+ the message before the list members will see it.
+
+\item Reject -- the message is bounced back to the original sender,
+ often with a notice containing the reason the message was
+ rejected. The list members never see rejected messages.
+
+\item Discard -- the message is simply thrown away without further
+ processing.
+\end{itemize}
+
+Many of the fields in this section are text boxes accepting addresses,
+one per line. Unless otherwise noted, these also accept regular
+expressions which will be matched against an address, if the line
+begins with a \^ (caret) character.
+
+\subsubsection{Subscription rules}
+
+This subcategory controls the rules for exposing the existance of this
+list, and for what new members must do in order to subscribe to the
+list.
+
+\begin{description}
+\item[advertised]
+ This option controls whether this list will show up in the list
+ overview for the site. Normally, an overview contains the name
+ and short description of every mailing list in the virtual
+ domain. By setting this variable to \emph{No}, it will not show
+ up in this overview, nor will it show up in the administrative
+ overview. The only way then to find the list is to guess (or
+ know!) its name.
+
+\item[subscribe_policy]
+ This option controls the steps that a new member must take to join
+ the list. The available options may differ based on some defaults
+ that the site administrator chooses. They are:
+
+ \begin{itemize}
+ \item None -- No verification is done on the subscribing
+ member. This is also called \emph{open subscriptions} and is
+ generally disabled by default. The site administrator must
+ allow list admins to choose this option; if not, this option
+ will not be presented to you.
+
+ \item Confirm -- An email confirmation step is required before the
+ address is added to the list. When a member requests
+ subscription, either via the web page or by sending a
+ message to \var{yourlist}\code{-join@example.com}, Mailman
+ will send a confirmation message to the requesting address.
+ This mail-back confirmation contains a unique identifier,
+ which the requester can present to Mailman in order to
+ confirm their subscription. This can be done either by
+ replying to the mail-back, or by visiting the url in the
+ mail-back message. The url points to a page that lets the
+ user either discard or confirm their request.
+
+ \item Require approval -- All subscription requests are held for
+ approval of the list moderator. No mail-back confirmation
+ is sent, but the list admins will recieve a message
+ indicating that approval is pending.
+
+ \item Confirm and approve -- Here, a mail-back notice must first
+ be confirmed by the requester. Once confirmed, the list
+ moderator must then approve the request. This is the most
+ secure method for users to subscribe since it both verifies
+ the requesting address, and forces the list moderators to
+ approve the request.
+
+ \end{itemize}
+
+\item[unsubscribe_policy]
+ Specifies whether the list moderator's approval is required for
+ unsubscription requests. \emph{No} is highly recommended, since
+ it is exceedingly impolite to not allow people to leave a mailing
+ list whenever they want (i.e. opt-out). \emph{Yes} is useful in
+ some specialized contexts; e.g. you may not want to allow
+ employees to unsubscribe from the company newsletter.
+
+\item[ban_list]
+ This contains a list of addresses (or regular expressiosn), one
+ per line, that are banned from ever subscribing to your mailing
+ list. If a match occurs during the subscription process, the
+ request will be automatically rejected, and the requester will get
+ a rejection notice. You can use this to permanently ban
+ troublesome posters to a members-only list.
+
+\item[private_roster]
+ This specifies who is allowed to view the roster of member
+ addresses. If you choose \emph{Anyone}, then the list membership
+ is completely public. You can limit exposure of the roster to
+ just list members, or just to the list administrators. In the
+ former case, a user must enter a valid member's address and
+ password before they can view the roster. In the latter case, a
+ list administrator's password must be enter; if a matching admin
+ password is entered, address field is ignored.
+
+\item[obscure_addresses]
+ Controls whether some simple obfuscation of addresses is used when
+ member addresses are included on web pages. This should reduce
+ the opportunity for email address harvesting by spammers, although
+ it probably doesn't eliminate it.
+\end{description}
+
+\subsubsection{Sender filters}
+
+When a message is posted to the list, a series of moderation criteria are
+applied to determine the disposition of the message. This section
+contains the modeation controls for postings from both members and
+non-members.
+
+\begin{description}
+\item[default_member_moderation]
+ Member postings are held for moderation if their \emph{moderation
+ flag} is turned on. Note that only the list administrators can
+ change the value of a member's moderation flag.
+
+ You can control whether new members get their moderation flag
+ turned on or off by default when they subscribe to the list. By
+ turning this flag off by default, postings by members will be
+ allowed without further intervention (barring other restrictions
+ such as size or implicit recipient lists -- see below). By
+ turning the flag on, you can quarantine new member postings to
+ make sure that they meet your criteria for netiquette, topicality,
+ etc. Once you determine that the new member understands the
+ community's posting rules, you can turn off their moderation flag
+ and let their postings go through unstopped.
+
+ E-newsletter style lists can also be set up by using the
+ moderation flag. By setting the \code{member_moderation_action}
+ to \emph{Reject}, and by turning off the moderation flag for just
+ the few approved senders, your list will operate in essentially a
+ one-way direction. Note that you'd also need to reject or discard
+ postings from non-members.
+
+\item[member_moderation_action]
+ This is the action to take for postings from a member who's
+ moderation flag is set. For typical discussion lists, you'll
+ likely set this to \emph{Hold} so that the list moderator will get
+ a chance to manually approve, reject, or discard the message. For
+ e-newsletter and announcement lists, you might want to set this to
+ \emph{Reject} or \emph{Discard}.
+
+ Note that when a moderated member posts to your list, and the
+ \code{member_moderation_action} is set to \emph{Hold}, the message
+ will appear on the administrative requests page. When you dispose
+ of the message, you will be given an opportunity to clear the
+ moderation flag at the same time. If you're quarantining new
+ posts, this makes it very convenient to both approve a new
+ member's post and de-moderate them at the same time.
+
+\item[member_moderation_notice]
+ When a member's moderation flag is turned on and
+ \code{member_moderation_action} is \emph{Reject}, this variable
+ contains the text sent in the rejection notice.
+\end{description}
+
+The next batch of variables controls what happens when non-members
+post messages to the list. Each of these accepts one email address
+per line; regular expressions are allowed if the line starts with the
+\^ (caret) character. These address lists are always consulted in the
+order in which they're presented on this page (i.e. accepts first,
+followed by holds, rejections, and discards).
+
+\begin{description}
+\item[accept_these_nonmembers]
+ Postings from non-members whose addresses match this list are
+ accepted, barring other list restrictions due to size, implicit
+ recipients, etc. You might want to add alternative addresses of
+ approved posters to this list.
+
+\item[hold_these_nonmembers]
+ Postings from non-members whose addresses match this list are
+ held for moderator approval.
+
+\item[reject_these_nonmembers]
+ Postings from non-members whose addresses match this list are
+ rejected, i.e. bounced back to the original sender. There
+ currently is no way to add additional text to the rejection
+ message.
+
+\item[discard_these_nonmembers]
+ Postings from non-members whose addresses match this list are
+ discarded, with no bounce back message. You might want to add the
+ addresses of known spammers to this list.
+
+\item[generic_nonmember_action]
+ This variable controls what happens to non-member posts when the
+ address of the sender doesn't match any of the above four lists.
+ If you set this to \emph{Hold}, the posting will appear on the
+ administrative requests page, and you will be given an opportunity
+ to add the non-member to one of the above four lists at the same
+ time you dispose of the held message.
+
+\item[forward_auto_discards]
+ When messages from non-members are discarded, either because the
+ sender address matched \code{discard_these_nonmembers}, or because
+ \code{generic_nonmember_action} is \emph{Discard}, you can choose
+ whether such messages are forwarded to the lsit administrators or
+ not.
+\end{description}
+
+\subsubsection{Recipient Filters}
+
+The variables in this section control various filters based on the
+recipient of the message.
+
+\begin{description}
+\item[require_explicit_destination]
+ This controls whether the mailing list posting address must be
+ explicitly named in the \mailheader{To} or \mailheader{Cc}
+ recipient lists. The main reason why it wouldn't is if the
+ message was blind-carbon-copied (i.e. \mailheader{Bcc}'d) to the
+ list. Spammers like to do this, but sometimes legitimate messages
+ are forwarded to the list this way.
+
+ If the list is not explicitly addressed and this setting is turned
+ on, the message will be held for moderator approval.
+
+\item[acceptable_aliases]
+ This is the list of alternative addresses that are acceptable as a
+ list posting address when \code{require_explicit_destination} is
+ enabled. This is useful for when there aliases for the main
+ posting address (e.g. \code{help@example.com} may be an alias for
+ \code{help-list@example.com}).
+
+\item[max_num_recipients]
+ This is the maximum number of explicit recipients that are allowed
+ on the posted message. Spammers sometimes send messages with lots
+ of explicit recipients, so setting this number to a reasonable
+ value may cut down on spam.
+\end{description}
+
+\subsubsection{Spam Filters}
+
+This section provides some adjuncts to spam fighting tools; it
+doesn't replace dedicated anti-spam tools such as SpamAssassin or
+Spambayes.
+
+\begin{description}
+\item[bounce_matching_headers]
+ This variable contains header regular expressions, one per line,
+ and if any of a message's headers matches one of these patterns,
+ it will be held for moderation. The format is a colon separated
+ header and value, where the header is case insensitive and the
+ value is any valid Python regular expression. Lines that start
+ with \# are ignored.
+
+ This variable can be used to catch known spammers by writing
+ regexps that match against \mailheader{To} or \mailheader{Cc}
+ lines, or known-bad \mailheader{Message-ID}s. Perhaps more useful
+ though are patterns that match headers added by spam detection
+ tools higher up in the tool chain. For example, you might
+ configure SpamAssassin to add an \mailheader{X-Spam-Score} header
+ with between zero and 5 stars depending on the spam score. Then
+ you can add a line to this variable like:
+
+ \begin{verbatim}
+ X-Spam-Score: [*]{3,5}
+ \end{verbatim}
+
+ This line will match from 3 to 5 stars in the value of this
+ field.
+\end{description}
+
+\subsection{The Bounce Processing Category}
+
+These policies control the automatic bounce processing system in
+Mailman. Here's an overview of how it works:
+
+When a bounce is received, Mailman tries to extract two pieces of
+information from the message: the address of the member the message
+was intended for, and the severity of the problem causing the bounce.
+The severity can be either \emph{hard} for fatal errors, or
+\emph{soft} for transient errors. When in doubt, a hard severity is
+used.
+
+If no member address can be extracted from the bounce, then the bounce
+message is usually discarded. Every member has a \emph{bounce score},
+initialized at zero, and every time we encounter a bounce from a
+member we increment that member's score. Hard bounces increment by 1
+while soft bounces increment by 0.5. We only increment the bounce
+score once per day, so even if we receive ten hard bounces from a
+member per day, their score will increase by only 1 for that day.
+
+When a member's bounce score is greater than the \emph{bounce score
+threshold} (see below), the member's subscription is disabled. Once
+disabled, the member will not receive any postings from the list until
+their membership is explicitly re-enabled, either by the list
+administrator or the user. However, they will receive occasional
+reminders that their membership has been disabled, and these reminders
+will include information about how to re-enable their membership. You
+can control both the number of reminders the member will receive and
+the frequency with which these reminders are sent.
+
+There is one other important configuration variable; after a certain
+period of time -- during which no bounces from the member are received
+-- the bounce information is considered stale and discarded. Thus by
+adjusting this value, and the score threshold, you can control how
+quickly bouncing members are disabled. You should tune both of these
+to the frequency and traffic volume of your list.
+
+\begin{description}
+
+\item[bounce_processing]
+ Specifies whether or not this list should do automatic bounce
+ processing.
+
+\item[bounce_score_threshold]
+ This is the bounce score above which a member's subscription will
+ be automatically disabled. When the subscription is re-enabled,
+ their bounce score will be reset to zero. This value can be a
+ floating point number.
+
+\item[bounce_info_stale_after]
+ Thenumber of days after which a member's bounce information is
+ considered stale. If no new bounces have been received in the
+ interrim, the bounce score is reset to zero. This value must be
+ an integer.
+
+\item[bounce_you_are_disabled_warnings]
+ The number of notices a disabled member will receive before their
+ address is removed from the mailing list's roster. Set this to 0
+ to immediately remove an address from the list once their bounce
+ score exceeds the threshold. This value must be an integer.
+
+\item[bounce_you_are_disabled_warnings_interval]
+ The number of days between each disabled notification.
+
+\item[bounce_unrecognized_goes_to_list_owner]
+ This variable controls whether unrecognized bounces are discarded,
+ or forwarded on the list administrator. The bounce detector isn't
+ perfect, although personalization can make it much more accurate.
+ The list owner may want to receive unrecognized bounces so that
+ they can manually disable or remove such members.
+\end{description}
+
+\subsection{The Archiving Options Category}
+\subsection{The Mail/News Gateway Category}
+\subsection{The Auto-responder Category}
+\subsection{The Content Filtering Category}
+\subsection{The Topics Category}
+
+\section{Membership Management}
+\section{Tending to Pending Moderator Requests}
+\section{Editing the Public HTML Pages}
+\section{Deleting the Mailing List}
+
+\appendix
+
+\section{This is an Appendix}
+
+To create an appendix in a Python HOWTO document, use markup like
+this:
+
+\begin{verbatim}
+\appendix
+
+\section{This is an Appendix}
+
+To create an appendix in a Python HOWTO document, ....
+
+
+\section{This is another}
+
+Just add another \section{}, but don't say \appendix again.
+\end{verbatim}
+
+
+\end{document}
diff --git a/doc/posting-flow-chart.ps b/doc/posting-flow-chart.ps
new file mode 100644
index 00000000..e8d47e27
--- /dev/null
+++ b/doc/posting-flow-chart.ps
@@ -0,0 +1,735 @@
+%!PS-Adobe-2.0
+%%Title: posting-flow-chart
+%%Creator: Dia v0.86
+%%CreationDate: Mon Oct 15 13:46:55 2001
+%%For: a user
+%%DocumentPaperSizes: A4
+%%Orientation: Landscape
+%%BeginSetup
+%%EndSetup
+%%EndComments
+%%BeginProlog
+[ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright
+/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one
+/two /three /four /five /six /seven /eight /nine /colon /semicolon
+/less /equal /greater /question /at /A /B /C /D /E
+/F /G /H /I /J /K /L /M /N /O
+/P /Q /R /S /T /U /V /W /X /Y
+/Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c
+/d /e /f /g /h /i /j /k /l /m
+/n /o /p /q /r /s /t /u /v /w
+/x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright
+/ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior
+/acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf
+/threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
+/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde
+/Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex
+/Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring
+/ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
+/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave
+/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] /isolatin1encoding exch def
+/Times-Roman-latin1
+ /Times-Roman findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Times-Italic-latin1
+ /Times-Italic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Times-Bold-latin1
+ /Times-Bold findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Times-BoldItalic-latin1
+ /Times-BoldItalic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/AvantGarde-Book-latin1
+ /AvantGarde-Book findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/AvantGarde-BookOblique-latin1
+ /AvantGarde-BookOblique findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/AvantGarde-Demi-latin1
+ /AvantGarde-Demi findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/AvantGarde-DemiOblique-latin1
+ /AvantGarde-DemiOblique findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Bookman-Light-latin1
+ /Bookman-Light findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Bookman-LightItalic-latin1
+ /Bookman-LightItalic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Bookman-Demi-latin1
+ /Bookman-Demi findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Bookman-DemiItalic-latin1
+ /Bookman-DemiItalic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Courier-latin1
+ /Courier findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Courier-Oblique-latin1
+ /Courier-Oblique findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Courier-Bold-latin1
+ /Courier-Bold findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Courier-BoldOblique-latin1
+ /Courier-BoldOblique findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Helvetica-latin1
+ /Helvetica findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Helvetica-Oblique-latin1
+ /Helvetica-Oblique findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Helvetica-Bold-latin1
+ /Helvetica-Bold findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Helvetica-BoldOblique-latin1
+ /Helvetica-BoldOblique findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Helvetica-Narrow-latin1
+ /Helvetica-Narrow findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Helvetica-Narrow-Oblique-latin1
+ /Helvetica-Narrow-Oblique findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Helvetica-Narrow-Bold-latin1
+ /Helvetica-Narrow-Bold findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Helvetica-Narrow-BoldOblique-latin1
+ /Helvetica-Narrow-BoldOblique findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/NewCenturySchoolbook-Roman-latin1
+ /NewCenturySchoolbook-Roman findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/NewCenturySchoolbook-Italic-latin1
+ /NewCenturySchoolbook-Italic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/NewCenturySchoolbook-Bold-latin1
+ /NewCenturySchoolbook-Bold findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/NewCenturySchoolbook-BoldItalic-latin1
+ /NewCenturySchoolbook-BoldItalic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Palatino-Roman-latin1
+ /Palatino-Roman findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Palatino-Italic-latin1
+ /Palatino-Italic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Palatino-Bold-latin1
+ /Palatino-Bold findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Palatino-BoldItalic-latin1
+ /Palatino-BoldItalic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Symbol-latin1
+ /Symbol findfont
+definefont pop
+/ZapfChancery-MediumItalic-latin1
+ /ZapfChancery-MediumItalic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/ZapfDingbats-latin1
+ /ZapfDingbats findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/cp {closepath} bind def
+/c {curveto} bind def
+/f {fill} bind def
+/a {arc} bind def
+/ef {eofill} bind def
+/ex {exch} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth pop} bind def
+/tr {translate} bind def
+
+/ellipsedict 8 dict def
+ellipsedict /mtrx matrix put
+/ellipse
+{ ellipsedict begin
+ /endangle exch def
+ /startangle exch def
+ /yrad exch def
+ /xrad exch def
+ /y exch def
+ /x exch def /savematrix mtrx currentmatrix def
+ x y tr xrad yrad sc
+ 0 0 1 startangle endangle arc
+ savematrix setmatrix
+ end
+} def
+
+/mergeprocs {
+dup length
+3 -1 roll
+dup
+length
+dup
+5 1 roll
+3 -1 roll
+add
+array cvx
+dup
+3 -1 roll
+0 exch
+putinterval
+dup
+4 2 roll
+putinterval
+} bind def
+%%EndProlog
+
+
+%%Page: 1 1
+gs
+90 rotate
+10.504277 -10.504277 scale
+-7.390052 13.596868 translate
+n 15.000000 -5.986920 m 79.927437 -5.986920 l 79.927437 35.463012 l 15.000000 35.463012 l 15.000000 -5.986920 l clip
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0 slj
+0 slc
+0 slj
+[] 0 sd
+1.000000 1.000000 1.000000 srgb
+n 28.288577 -5.936920 m 34.143683 -5.936920 l 34.952105 -5.936920 35.607460 -5.489205 35.607460 -4.936920 c 35.607460 -4.384635 34.952105 -3.936920 34.143683 -3.936920 c 28.288577 -3.936920 l 27.480155 -3.936920 26.824800 -4.384635 26.824800 -4.936920 c 26.824800 -5.489205 27.480155 -5.936920 28.288577 -5.936920 c f
+0.000000 0.000000 0.000000 srgb
+n 28.288577 -5.936920 m 34.143683 -5.936920 l 34.952105 -5.936920 35.607460 -5.489205 35.607460 -4.936920 c 35.607460 -4.384635 34.952105 -3.936920 34.143683 -3.936920 c 28.288577 -3.936920 l 27.480155 -3.936920 26.824800 -4.384635 26.824800 -4.936920 c 26.824800 -5.489205 27.480155 -5.936920 28.288577 -5.936920 c s
+/Courier-latin1 ff 0.800000 scf sf
+0.000000 0.000000 0.000000 srgb
+(post a msg) dup sw 2 div 31.216130 ex sub -4.742230 m gs 1 -1 sc sh gr
+1.000000 1.000000 1.000000 srgb
+n 31.228705 0.448229 m 34.632611 3.852135 l 31.228705 7.256041 l 27.824799 3.852135 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 31.228705 0.448229 m 34.632611 3.852135 l 31.228705 7.256041 l 27.824799 3.852135 l cp s
+/Courier-latin1 ff 0.800000 scf sf
+0.000000 0.000000 0.000000 srgb
+(is a) dup sw 2 div 31.228705 ex sub 3.646825 m gs 1 -1 sc sh gr
+0.000000 0.000000 0.000000 srgb
+(member?) dup sw 2 div 31.228705 ex sub 4.446825 m gs 1 -1 sc sh gr
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0.000000 0.000000 0.000000 srgb
+n 31.228700 0.448231 m 31.216100 -3.936920 l s
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 30.826403 -0.350616 m 31.228700 0.448231 l 31.626400 -0.352915 l f
+1.000000 1.000000 1.000000 srgb
+n 22.333205 8.807639 m 25.737111 12.211545 l 22.333205 15.615451 l 18.929299 12.211545 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 22.333205 8.807639 m 25.737111 12.211545 l 22.333205 15.615451 l 18.929299 12.211545 l cp s
+/Courier-latin1 ff 0.800000 scf sf
+0.000000 0.000000 0.000000 srgb
+(mod bit) dup sw 2 div 22.333205 ex sub 12.006235 m gs 1 -1 sc sh gr
+0.000000 0.000000 0.000000 srgb
+(set?) dup sw 2 div 22.333205 ex sub 12.806235 m gs 1 -1 sc sh gr
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0.000000 0.000000 0.000000 srgb
+n 22.333200 8.807640 m 27.824800 3.852140 l s
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 22.659157 7.974722 m 22.333200 8.807640 l 23.195108 8.568655 l f
+/Courier-latin1 ff 0.800000 scf sf
+0.000000 0.000000 0.000000 srgb
+() dup sw 2 div 15.000000 ex sub 5.000000 m gs 1 -1 sc sh gr
+/Courier-latin1 ff 0.800000 scf sf
+0.000000 0.000000 0.000000 srgb
+(yes) dup sw 2 div 28.675700 ex sub 3.001160 m gs 1 -1 sc sh gr
+/Courier-latin1 ff 0.800000 scf sf
+0.000000 0.000000 0.000000 srgb
+(yes) dup sw 2 div 19.780300 ex sub 11.360600 m gs 1 -1 sc sh gr
+/Courier-latin1 ff 0.800000 scf sf
+0.000000 0.000000 0.000000 srgb
+(no) dup sw 2 div 23.184200 ex sub 14.764500 m gs 1 -1 sc sh gr
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0.000000 0.000000 0.000000 srgb
+n 34.632600 3.852140 m 40.261205 8.139600 l s
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 39.382424 7.973037 m 40.261205 8.139600 l 39.867187 7.336637 l f
+/Courier-latin1 ff 0.800000 scf sf
+0.000000 0.000000 0.000000 srgb
+(no) dup sw 2 div 33.781600 ex sub 3.001160 m gs 1 -1 sc sh gr
+1.000000 1.000000 1.000000 srgb
+n 40.261205 8.139600 m 43.907510 11.959285 l 40.261205 15.778970 l 36.614900 11.959285 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 40.261205 8.139600 m 43.907510 11.959285 l 40.261205 15.778970 l 36.614900 11.959285 l cp s
+/Courier-latin1 ff 0.800000 scf sf
+0.000000 0.000000 0.000000 srgb
+(explicit) dup sw 2 div 40.261205 ex sub 11.753975 m gs 1 -1 sc sh gr
+0.000000 0.000000 0.000000 srgb
+(accept?) dup sw 2 div 40.261205 ex sub 12.553975 m gs 1 -1 sc sh gr
+/Courier-latin1 ff 0.800000 scf sf
+0.000000 0.000000 0.000000 srgb
+(yes) dup sw 2 div 39.349629 ex sub 14.824049 m gs 1 -1 sc sh gr
+1.000000 1.000000 1.000000 srgb
+n 59.913105 8.346249 m 63.559411 11.992555 l 59.913105 15.638861 l 56.266799 11.992555 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 59.913105 8.346249 m 63.559411 11.992555 l 59.913105 15.638861 l 56.266799 11.992555 l cp s
+/Courier-latin1 ff 0.800000 scf sf
+0.000000 0.000000 0.000000 srgb
+(explicit) dup sw 2 div 59.913105 ex sub 11.787245 m gs 1 -1 sc sh gr
+0.000000 0.000000 0.000000 srgb
+(reject?) dup sw 2 div 59.913105 ex sub 12.587245 m gs 1 -1 sc sh gr
+/Courier-latin1 ff 0.800000 scf sf
+0.000000 0.000000 0.000000 srgb
+(yes) dup sw 2 div 59.001528 ex sub 14.727284 m gs 1 -1 sc sh gr
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0.000000 0.000000 0.000000 srgb
+n 54.324011 11.922575 m 56.266799 11.992555 l s
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 55.452919 12.363498 m 56.266799 11.992555 l 55.481716 11.564017 l f
+/Courier-latin1 ff 0.800000 scf sf
+0.000000 0.000000 0.000000 srgb
+(no) dup sw 2 div 42.995934 ex sub 11.004364 m gs 1 -1 sc sh gr
+1.000000 1.000000 1.000000 srgb
+n 71.066405 8.389389 m 74.712711 12.035695 l 71.066405 15.682001 l 67.420099 12.035695 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 71.066405 8.389389 m 74.712711 12.035695 l 71.066405 15.682001 l 67.420099 12.035695 l cp s
+/Courier-latin1 ff 0.800000 scf sf
+0.000000 0.000000 0.000000 srgb
+(explicit) dup sw 2 div 71.066405 ex sub 11.830385 m gs 1 -1 sc sh gr
+0.000000 0.000000 0.000000 srgb
+(discard?) dup sw 2 div 71.066405 ex sub 12.630385 m gs 1 -1 sc sh gr
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0.000000 0.000000 0.000000 srgb
+n 63.559411 11.992555 m 67.420100 12.035700 l s
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 66.615680 12.426735 m 67.420100 12.035700 l 66.624620 11.626785 l f
+/Courier-latin1 ff 0.800000 scf sf
+0.000000 0.000000 0.000000 srgb
+(no) dup sw 2 div 62.647834 ex sub 11.080979 m gs 1 -1 sc sh gr
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0.000000 0.000000 0.000000 srgb
+n 71.066400 15.682000 m 71.055000 19.434500 l s
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 70.657432 18.633289 m 71.055000 19.434500 l 71.457429 18.635719 l f
+/Courier-latin1 ff 0.800000 scf sf
+0.000000 0.000000 0.000000 srgb
+(yes) dup sw 2 div 70.154800 ex sub 14.770400 m gs 1 -1 sc sh gr
+/Courier-latin1 ff 0.800000 scf sf
+0.000000 0.000000 0.000000 srgb
+(no) dup sw 2 div 73.801100 ex sub 11.124100 m gs 1 -1 sc sh gr
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0.000000 0.000000 0.000000 srgb
+n 59.913105 15.638861 m 59.907500 19.455400 l s
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 59.508675 18.654813 m 59.907500 19.455400 l 60.308674 18.655988 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+0.000000 0.000000 0.000000 srgb
+n 22.333200 15.615400 m 22.362400 21.044900 l 27.166900 21.015055 l s
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 26.369400 21.420017 m 27.166900 21.015055 l 26.364431 20.620032 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0 slj
+0 slc
+0 slj
+[] 0 sd
+1.000000 1.000000 1.000000 srgb
+n 28.954977 29.425200 m 34.810083 29.425200 l 35.618505 29.425200 36.273860 29.964050 36.273860 30.628755 c 36.273860 31.293460 35.618505 31.832310 34.810083 31.832310 c 28.954977 31.832310 l 28.146555 31.832310 27.491200 31.293460 27.491200 30.628755 c 27.491200 29.964050 28.146555 29.425200 28.954977 29.425200 c f
+0.000000 0.000000 0.000000 srgb
+n 28.954977 29.425200 m 34.810083 29.425200 l 35.618505 29.425200 36.273860 29.964050 36.273860 30.628755 c 36.273860 31.293460 35.618505 31.832310 34.810083 31.832310 c 28.954977 31.832310 l 28.146555 31.832310 27.491200 31.293460 27.491200 30.628755 c 27.491200 29.964050 28.146555 29.425200 28.954977 29.425200 c s
+/Courier-latin1 ff 0.800000 scf sf
+0.000000 0.000000 0.000000 srgb
+(hold for) dup sw 2 div 31.882530 ex sub 30.423445 m gs 1 -1 sc sh gr
+0.000000 0.000000 0.000000 srgb
+(moderation) dup sw 2 div 31.882530 ex sub 31.223445 m gs 1 -1 sc sh gr
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0 slj
+0 slc
+0 slj
+[] 0 sd
+1.000000 1.000000 1.000000 srgb
+n 28.666900 19.811500 m 34.666900 19.811500 l 35.495328 19.811500 36.166900 20.350350 36.166900 21.015055 c 36.166900 21.679760 35.495328 22.218610 34.666900 22.218610 c 28.666900 22.218610 l 27.838472 22.218610 27.166900 21.679760 27.166900 21.015055 c 27.166900 20.350350 27.838472 19.811500 28.666900 19.811500 c f
+0.000000 0.000000 0.000000 srgb
+n 28.666900 19.811500 m 34.666900 19.811500 l 35.495328 19.811500 36.166900 20.350350 36.166900 21.015055 c 36.166900 21.679760 35.495328 22.218610 34.666900 22.218610 c 28.666900 22.218610 l 27.838472 22.218610 27.166900 21.679760 27.166900 21.015055 c 27.166900 20.350350 27.838472 19.811500 28.666900 19.811500 c s
+/Courier-latin1 ff 0.800000 scf sf
+0.000000 0.000000 0.000000 srgb
+(pass thru) dup sw 2 div 31.666900 ex sub 21.209745 m gs 1 -1 sc sh gr
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0 slj
+0 slc
+0 slj
+[] 0 sd
+1.000000 1.000000 1.000000 srgb
+n 57.222377 19.455400 m 62.592683 19.455400 l 63.334168 19.455400 63.935260 19.903115 63.935260 20.455400 c 63.935260 21.007685 63.334168 21.455400 62.592683 21.455400 c 57.222377 21.455400 l 56.480892 21.455400 55.879800 21.007685 55.879800 20.455400 c 55.879800 19.903115 56.480892 19.455400 57.222377 19.455400 c f
+0.000000 0.000000 0.000000 srgb
+n 57.222377 19.455400 m 62.592683 19.455400 l 63.334168 19.455400 63.935260 19.903115 63.935260 20.455400 c 63.935260 21.007685 63.334168 21.455400 62.592683 21.455400 c 57.222377 21.455400 l 56.480892 21.455400 55.879800 21.007685 55.879800 20.455400 c 55.879800 19.903115 56.480892 19.455400 57.222377 19.455400 c s
+/Courier-latin1 ff 0.800000 scf sf
+0.000000 0.000000 0.000000 srgb
+(bounce it) dup sw 2 div 59.907530 ex sub 20.650090 m gs 1 -1 sc sh gr
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0 slj
+0 slc
+0 slj
+[] 0 sd
+1.000000 1.000000 1.000000 srgb
+n 67.885077 19.434500 m 74.224983 19.434500 l 75.100342 19.434500 75.809960 19.882215 75.809960 20.434500 c 75.809960 20.986785 75.100342 21.434500 74.224983 21.434500 c 67.885077 21.434500 l 67.009718 21.434500 66.300100 20.986785 66.300100 20.434500 c 66.300100 19.882215 67.009718 19.434500 67.885077 19.434500 c f
+0.000000 0.000000 0.000000 srgb
+n 67.885077 19.434500 m 74.224983 19.434500 l 75.100342 19.434500 75.809960 19.882215 75.809960 20.434500 c 75.809960 20.986785 75.100342 21.434500 74.224983 21.434500 c 67.885077 21.434500 l 67.009718 21.434500 66.300100 20.986785 66.300100 20.434500 c 66.300100 19.882215 67.009718 19.434500 67.885077 19.434500 c s
+/Courier-latin1 ff 0.800000 scf sf
+0.000000 0.000000 0.000000 srgb
+(discard it) dup sw 2 div 71.055030 ex sub 20.629190 m gs 1 -1 sc sh gr
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+0.000000 0.000000 0.000000 srgb
+n 40.261205 15.778970 m 40.184200 21.044900 l 36.166900 21.015055 l s
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 36.969849 20.621009 m 36.166900 21.015055 l 36.963906 21.420987 l f
+1.000000 1.000000 1.000000 srgb
+n 65.017305 25.865999 m 69.790811 30.639505 l 65.017305 35.413011 l 60.243799 30.639505 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 65.017305 25.865999 m 69.790811 30.639505 l 65.017305 35.413011 l 60.243799 30.639505 l cp s
+/Courier-latin1 ff 0.800000 scf sf
+0.000000 0.000000 0.000000 srgb
+(generic) dup sw 2 div 65.017305 ex sub 30.034195 m gs 1 -1 sc sh gr
+0.000000 0.000000 0.000000 srgb
+(non-member) dup sw 2 div 65.017305 ex sub 30.834195 m gs 1 -1 sc sh gr
+0.000000 0.000000 0.000000 srgb
+(disposition) dup sw 2 div 65.017305 ex sub 31.634195 m gs 1 -1 sc sh gr
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+0.000000 0.000000 0.000000 srgb
+n 74.712700 12.035700 m 77.310000 12.068400 l 77.310000 30.668100 l 69.790800 30.639500 l s
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 70.592316 30.242546 m 69.790800 30.639500 l 70.589273 31.042540 l f
+/Courier-latin1 ff 0.800000 scf sf
+0.000000 0.000000 0.000000 srgb
+(discard) dup sw 2 div 68.632800 ex sub 24.246900 m gs 1 -1 sc sh gr
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0.000000 0.000000 0.000000 srgb
+n 66.210600 27.059400 m 71.055000 21.434500 l s
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 70.836024 22.301708 m 71.055000 21.434500 l 70.229848 21.779644 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0.000000 0.000000 0.000000 srgb
+n 63.823900 27.059400 m 59.907500 21.455400 l s
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 60.693636 21.882004 m 59.907500 21.455400 l 60.037899 22.340271 l f
+/Courier-latin1 ff 0.800000 scf sf
+0.000000 0.000000 0.000000 srgb
+(reject) dup sw 2 div 61.865700 ex sub 24.257400 m gs 1 -1 sc sh gr
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0.000000 0.000000 0.000000 srgb
+n 60.243800 30.639500 m 36.273860 30.628755 l s
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 37.074039 30.229114 m 36.273860 30.628755 l 37.073681 31.029114 l f
+/Courier-latin1 ff 0.800000 scf sf
+0.000000 0.000000 0.000000 srgb
+(hold) dup sw 2 div 48.258830 ex sub 30.634128 m gs 1 -1 sc sh gr
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+0.000000 0.000000 0.000000 srgb
+n 18.929299 12.211545 m 17.707519 12.274592 l 17.707519 30.574592 l 27.491200 30.628755 l s
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 26.688998 31.024320 m 27.491200 30.628755 l 26.693427 30.224332 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0.000000 0.000000 0.000000 srgb
+n 61.437100 29.446100 m 35.727550 21.866089 l s
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 36.608013 21.708655 m 35.727550 21.866089 l 36.381775 22.475998 l f
+/Courier-latin1 ff 0.800000 scf sf
+0.000000 0.000000 0.000000 srgb
+(accept) dup sw 2 div 48.582325 ex sub 25.656094 m gs 1 -1 sc sh gr
+1.000000 1.000000 1.000000 srgb
+n 50.677705 8.276269 m 54.324011 11.922575 l 50.677705 15.568881 l 47.031399 11.922575 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 50.677705 8.276269 m 54.324011 11.922575 l 50.677705 15.568881 l 47.031399 11.922575 l cp s
+/Courier-latin1 ff 0.800000 scf sf
+0.000000 0.000000 0.000000 srgb
+(explicit) dup sw 2 div 50.677705 ex sub 11.717265 m gs 1 -1 sc sh gr
+0.000000 0.000000 0.000000 srgb
+(hold?) dup sw 2 div 50.677705 ex sub 12.517265 m gs 1 -1 sc sh gr
+/Courier-latin1 ff 0.800000 scf sf
+0.000000 0.000000 0.000000 srgb
+(yes) dup sw 2 div 49.766128 ex sub 14.657304 m gs 1 -1 sc sh gr
+/Courier-latin1 ff 0.800000 scf sf
+0.000000 0.000000 0.000000 srgb
+(no) dup sw 2 div 53.412434 ex sub 11.010998 m gs 1 -1 sc sh gr
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0 slc
+0.000000 0.000000 0.000000 srgb
+n 50.677705 15.568881 m 50.723859 19.674592 l 35.845120 29.777721 l s
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 36.282254 28.997392 m 35.845120 29.777721 l 36.731664 29.659231 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+0.000000 0.000000 0.000000 srgb
+n 43.907510 11.959285 m 47.031399 11.922575 l s
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 46.236154 12.331948 m 47.031399 11.922575 l 46.226754 11.532003 l f
+/Courier-latin1 ff 2.000000 scf sf
+0.000000 0.000000 0.000000 srgb
+(Sender Moderation Flowchart) dup sw 2 div 57.443403 ex sub 1.624592 m gs 1 -1 sc sh gr
+gr
+showpage
+
diff --git a/gnu-COPYING-GPL b/gnu-COPYING-GPL
new file mode 100644
index 00000000..a43ea212
--- /dev/null
+++ b/gnu-COPYING-GPL
@@ -0,0 +1,339 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 675 Mass Ave, Cambridge, MA 02139, USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ Appendix: How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) 19yy <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) 19yy name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/install-sh b/install-sh
new file mode 100755
index 00000000..ebc66913
--- /dev/null
+++ b/install-sh
@@ -0,0 +1,250 @@
+#! /bin/sh
+#
+# install - install a program, script, or datafile
+# This comes from X11R5 (mit/util/scripts/install.sh).
+#
+# Copyright 1991 by the Massachusetts Institute of Technology
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of M.I.T. not be used in advertising or
+# publicity pertaining to distribution of the software without specific,
+# written prior permission. M.I.T. makes no representations about the
+# suitability of this software for any purpose. It is provided "as is"
+# without express or implied warranty.
+#
+# Calling this script install-sh is preferred over install.sh, to prevent
+# `make' implicit rules from creating a file called install from it
+# when there is no Makefile.
+#
+# This script is compatible with the BSD install script, but was written
+# from scratch. It can only install one file at a time, a restriction
+# shared with many OS's install programs.
+
+
+# set DOITPROG to echo to test this script
+
+# Don't use :- since 4.3BSD and earlier shells don't like it.
+doit="${DOITPROG-}"
+
+
+# put in absolute paths if you don't have them in your path; or use env. vars.
+
+mvprog="${MVPROG-mv}"
+cpprog="${CPPROG-cp}"
+chmodprog="${CHMODPROG-chmod}"
+chownprog="${CHOWNPROG-chown}"
+chgrpprog="${CHGRPPROG-chgrp}"
+stripprog="${STRIPPROG-strip}"
+rmprog="${RMPROG-rm}"
+mkdirprog="${MKDIRPROG-mkdir}"
+
+transformbasename=""
+transform_arg=""
+instcmd="$mvprog"
+chmodcmd="$chmodprog 0755"
+chowncmd=""
+chgrpcmd=""
+stripcmd=""
+rmcmd="$rmprog -f"
+mvcmd="$mvprog"
+src=""
+dst=""
+dir_arg=""
+
+while [ x"$1" != x ]; do
+ case $1 in
+ -c) instcmd="$cpprog"
+ shift
+ continue;;
+
+ -d) dir_arg=true
+ shift
+ continue;;
+
+ -m) chmodcmd="$chmodprog $2"
+ shift
+ shift
+ continue;;
+
+ -o) chowncmd="$chownprog $2"
+ shift
+ shift
+ continue;;
+
+ -g) chgrpcmd="$chgrpprog $2"
+ shift
+ shift
+ continue;;
+
+ -s) stripcmd="$stripprog"
+ shift
+ continue;;
+
+ -t=*) transformarg=`echo $1 | sed 's/-t=//'`
+ shift
+ continue;;
+
+ -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
+ shift
+ continue;;
+
+ *) if [ x"$src" = x ]
+ then
+ src=$1
+ else
+ # this colon is to work around a 386BSD /bin/sh bug
+ :
+ dst=$1
+ fi
+ shift
+ continue;;
+ esac
+done
+
+if [ x"$src" = x ]
+then
+ echo "install: no input file specified"
+ exit 1
+else
+ true
+fi
+
+if [ x"$dir_arg" != x ]; then
+ dst=$src
+ src=""
+
+ if [ -d $dst ]; then
+ instcmd=:
+ else
+ instcmd=mkdir
+ fi
+else
+
+# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
+# might cause directories to be created, which would be especially bad
+# if $src (and thus $dsttmp) contains '*'.
+
+ if [ -f $src -o -d $src ]
+ then
+ true
+ else
+ echo "install: $src does not exist"
+ exit 1
+ fi
+
+ if [ x"$dst" = x ]
+ then
+ echo "install: no destination specified"
+ exit 1
+ else
+ true
+ fi
+
+# If destination is a directory, append the input filename; if your system
+# does not like double slashes in filenames, you may need to add some logic
+
+ if [ -d $dst ]
+ then
+ dst="$dst"/`basename $src`
+ else
+ true
+ fi
+fi
+
+## this sed command emulates the dirname command
+dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
+
+# Make sure that the destination directory exists.
+# this part is taken from Noah Friedman's mkinstalldirs script
+
+# Skip lots of stat calls in the usual case.
+if [ ! -d "$dstdir" ]; then
+defaultIFS='
+'
+IFS="${IFS-${defaultIFS}}"
+
+oIFS="${IFS}"
+# Some sh's can't handle IFS=/ for some reason.
+IFS='%'
+set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
+IFS="${oIFS}"
+
+pathcomp=''
+
+while [ $# -ne 0 ] ; do
+ pathcomp="${pathcomp}${1}"
+ shift
+
+ if [ ! -d "${pathcomp}" ] ;
+ then
+ $mkdirprog "${pathcomp}"
+ else
+ true
+ fi
+
+ pathcomp="${pathcomp}/"
+done
+fi
+
+if [ x"$dir_arg" != x ]
+then
+ $doit $instcmd $dst &&
+
+ if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
+ if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
+ if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
+ if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
+else
+
+# If we're going to rename the final executable, determine the name now.
+
+ if [ x"$transformarg" = x ]
+ then
+ dstfile=`basename $dst`
+ else
+ dstfile=`basename $dst $transformbasename |
+ sed $transformarg`$transformbasename
+ fi
+
+# don't allow the sed command to completely eliminate the filename
+
+ if [ x"$dstfile" = x ]
+ then
+ dstfile=`basename $dst`
+ else
+ true
+ fi
+
+# Make a temp file name in the proper directory.
+
+ dsttmp=$dstdir/#inst.$$#
+
+# Move or copy the file name to the temp name
+
+ $doit $instcmd $src $dsttmp &&
+
+ trap "rm -f ${dsttmp}" 0 &&
+
+# and set any options; do chmod last to preserve setuid bits
+
+# If any of these fail, we abort the whole thing. If we want to
+# ignore errors from any of these, just make sure not to ignore
+# errors from the above "$doit $instcmd $src $dsttmp" command.
+
+ if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
+ if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
+ if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
+ if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
+
+# Now rename the file to the real destination.
+
+ $doit $rmcmd -f $dstdir/$dstfile &&
+ $doit $mvcmd $dsttmp $dstdir/$dstfile
+
+fi &&
+
+
+exit 0
diff --git a/messages/.cvsignore b/messages/.cvsignore
new file mode 100644
index 00000000..7106b623
--- /dev/null
+++ b/messages/.cvsignore
@@ -0,0 +1,2 @@
+Makefile
+*.files
diff --git a/messages/Makefile.in b/messages/Makefile.in
new file mode 100644
index 00000000..e4fb0dde
--- /dev/null
+++ b/messages/Makefile.in
@@ -0,0 +1,144 @@
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# NOTE: Makefile.in is converted into Makefile by the configure script
+# in the parent directory. Once configure has run, you can recreate
+# the Makefile by running just config.status.
+#
+# NOTE: You should ordinarily never need to run "make catalogs", but
+# if you find you do, you will need GNU make, and the GNU gettext
+# suite (e.g. msgfmt, msgmerge).
+
+# Variables set by configure
+
+VPATH= @srcdir@
+srcdir= @srcdir@
+bindir= @bindir@
+prefix= @prefix@
+exec_prefix= @exec_prefix@
+
+CC= @CC@
+CHMOD= @CHMOD@
+INSTALL= @INSTALL@
+
+DEFS= @DEFS@
+
+# Customizable but not set by configure
+
+OPT= @OPT@
+CFLAGS= $(OPT) $(DEFS)
+PACKAGEDIR= $(prefix)/messages
+SHELL= /bin/sh
+DIRSETGID= chmod g+s
+MSGFMT= msgfmt
+MSGMERGE= msgmerge
+
+# CVS available languages
+LANGUAGES= cs de es et fi fr hu it ja ko lt nl no pt_BR ru sv
+LANGDIRS= $(LANGUAGES:%=messages/%/LC_MESSAGES)
+# Human readable po file
+POFILES= $(LANGUAGES:%=%/LC_MESSAGES/mailman.po)
+# Binary generated mo file
+MOFILES= $(LANGUAGES:%=%/LC_MESSAGES/mailman.mo)
+TARGETS= $(MOFILES)
+
+# Modes for directories and executables created by the install
+# process. Default to group-writable directories but
+# user-only-writable for executables.
+DIRMODE= 775
+EXEMODE= 755
+FILEMODE= 644
+INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
+PROG= @PYTHON@ build/bin/pygettext.py
+
+.SUFFIXES: .po .mo
+.po.mo:
+ -$(MSGFMT) -o $@ $<
+
+# Rules
+
+all:
+
+catalogs: $(TARGETS)
+
+check:
+ @for file in $(POFILES); \
+ do \
+ echo "Checking $$file"; \
+ msgfmt -o /dev/null --statistics -v $$file; \
+ done
+
+install: doinstall
+
+# we should depend on the .mo files instead of making them!
+doinstall:
+ @for d in $(LANGDIRS); \
+ do \
+ dir=$(prefix)/$$d; \
+ echo "Creating language directory $$dir"; \
+ $(srcdir)/../mkinstalldirs $$dir; \
+ chmod $(DIRMODE) $$dir; \
+ $(DIRSETGID) $$dir; \
+ done
+ @for d in $(LANGUAGES); \
+ do \
+ readme=$(srcdir)/$$d/README.$$d; \
+ if test -f $$readme; \
+ then \
+ $(INSTALL) -m $(FILEMODE) $$readme $(prefix)/messages/$$d; \
+ fi; \
+ done
+ @for d in $(LANGUAGES); \
+ do \
+ po=$(srcdir)/$$d/LC_MESSAGES/mailman.po; \
+ mo=$(srcdir)/$$d/LC_MESSAGES/mailman.mo; \
+ dir=$(prefix)/messages/$$d/LC_MESSAGES; \
+ $(INSTALL) -m $(FILEMODE) $$po $$mo $$dir; \
+ done
+
+finish:
+
+clean:
+ -rm -f marked.files docstring.files
+
+distclean: clean
+ -rm -f Makefile
+
+catclean:
+ -rm -f Makefile */LC_MESSAGES/mailman.mo */LC_MESSAGES/mailman.po.old $(POTFILE)
+ -rm *.pot
+
+marked.files:
+ @echo "Calculating marked input files for pygettext"
+ (cd ..; find Mailman -path '*pythonlib' -prune -o -path '*Commands/cmd_*.py' -prune -o -name '*.py' -print >| messages/$@)
+
+docstring.files:
+ @echo "Calculating script input files for pygettext"
+ (cd ..; grep -d skip -l -i '^#! .*python.*' `find bin cron scripts -name ".#*" -prune -o -print` | grep -v pygettext >| messages/$@)
+ (cd ..; ls Mailman/Commands/cmd_*.py >> messages/$@)
+
+mailman.pot: marked.files docstring.files
+ @echo "Running pygettext on $@; this make take a while."
+ (cd ..; $(PROG) -p messages -d mailman -D -X messages/marked.files `cat messages/marked.files messages/docstring.files`)
+
+# Update the individual mailman.po files with the new changes to the
+# .pot file
+%/LC_MESSAGES/mailman.po: mailman.pot
+ @echo "Merging new template file with existing translations"
+ -mv $@ $@.old && $(MSGMERGE) -o $@ $@.old mailman.pot
+
+
+FORCE:
diff --git a/messages/big5/LC_MESSAGES/mailman.mo b/messages/big5/LC_MESSAGES/mailman.mo
new file mode 100644
index 00000000..3c459f6c
--- /dev/null
+++ b/messages/big5/LC_MESSAGES/mailman.mo
Binary files differ
diff --git a/messages/big5/LC_MESSAGES/mailman.po b/messages/big5/LC_MESSAGES/mailman.po
new file mode 100644
index 00000000..7f27a723
--- /dev/null
+++ b/messages/big5/LC_MESSAGES/mailman.po
@@ -0,0 +1,8621 @@
+# Big5 translate PO.
+# GPL (C) 2001
+# Michael Fang <michael@xlinux.com;ccfang@kalug.ks.edu.tw>, 2001.
+# Yuan-Chen Cheng <ycheng@slat.org>, 2002.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mailman-2.0\n"
+"POT-Creation-Date: Thu Jun 27 19:40:04 2002\n"
+"PO-Revision-Date: Tue Jan 16 10:00:00 2001\n"
+"Last-Translator: Yuan-Chen Cheng <ycheng@slat.org>\n"
+"Language-Team: Chinese (traditional) <zh-L10n@linux.org.tw>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=Big5\n"
+"Content-Transfer-Encoding: 8-big5\n"
+"Generated-By: pygettext.py 0.2\n"
+
+#: Mailman/Archiver/pipermail.py:166 Mailman/Archiver/pipermail.py:167
+msgid "No subject"
+msgstr "µL¥DÃD"
+
+#: Mailman/Archiver/pipermail.py:268
+msgid "Creating archive directory "
+msgstr "«Ø¥ßÂkÀɥؿý "
+
+#: Mailman/Archiver/pipermail.py:280
+msgid "Reloading pickled archive state"
+msgstr "­«·s¸ü¤JÂkÀɪ¬ºA"
+
+#: Mailman/Archiver/pipermail.py:307
+msgid "Pickling archive state into "
+msgstr "·Ç³ÆÂkÀɪ¬ºA¨ì"
+
+#: Mailman/Archiver/pipermail.py:418
+#, fuzzy
+msgid "Updating index files for archive [%(archive)s]"
+msgstr "§ó·s¯Á¤ÞÀÉ [%s]"
+
+#: Mailman/Archiver/pipermail.py:452
+msgid " Thread"
+msgstr " ½uºü"
+
+#: Mailman/Archiver/pipermail.py:554
+msgid "#%(counter)05d %(msgid)s"
+msgstr ""
+
+#: Mailman/Bouncer.py:44
+msgid "due to excessive bounces"
+msgstr ""
+
+#: Mailman/Bouncer.py:45
+msgid "by yourself"
+msgstr ""
+
+#: Mailman/Bouncer.py:46
+#, fuzzy
+msgid "by the list administrator"
+msgstr "¾Â¥D"
+
+#: Mailman/Bouncer.py:47 Mailman/Bouncer.py:230
+#: Mailman/Commands/cmd_set.py:182
+msgid "for unknown reasons"
+msgstr ""
+
+#: Mailman/Bouncer.py:178
+msgid "disabled"
+msgstr ""
+
+#: Mailman/Bouncer.py:183
+#, fuzzy
+msgid "Bounce action notification"
+msgstr "%s ­q¾\³qª¾"
+
+#: Mailman/Bouncer.py:256 Mailman/Handlers/Acknowledge.py:50
+#: Mailman/Handlers/CookHeaders.py:181 Mailman/Handlers/Hold.py:207
+#: Mailman/Handlers/Hold.py:242 Mailman/Handlers/ToDigest.py:205
+#: Mailman/ListAdmin.py:234
+msgid "(no subject)"
+msgstr "(¨S¦³¥DÃD)"
+
+#: Mailman/Bouncer.py:258
+#, fuzzy
+msgid "[No bounce details are available]"
+msgstr "µL¥¼ºÉ¨Æ©y¡C"
+
+#: Mailman/Cgi/Auth.py:46
+msgid "Moderator"
+msgstr ""
+
+#: Mailman/Cgi/Auth.py:48
+#, fuzzy
+msgid "Administrator"
+msgstr "¾Â¥D"
+
+#: Mailman/Cgi/admin.py:70 Mailman/Cgi/admindb.py:85 Mailman/Cgi/confirm.py:55
+#: Mailman/Cgi/edithtml.py:67 Mailman/Cgi/listinfo.py:51
+#: Mailman/Cgi/options.py:70 Mailman/Cgi/private.py:98
+#: Mailman/Cgi/rmlist.py:62 Mailman/Cgi/roster.py:57
+#: Mailman/Cgi/subscribe.py:61
+#, fuzzy
+msgid "No such list <em>%(safelistname)s</em>"
+msgstr "µL¦¹½×¾Â <em>%s</em>"
+
+#: Mailman/Cgi/admin.py:85 Mailman/Cgi/admindb.py:101
+#: Mailman/Cgi/edithtml.py:85 Mailman/Cgi/private.py:123
+#, fuzzy
+msgid "Authorization failed."
+msgstr "ÅçÃÒ¤£¦¨¥\"
+
+#: Mailman/Cgi/admin.py:175
+#, fuzzy
+msgid ""
+"You have turned off delivery of both digest and\n"
+" non-digest messages. This is an incompatible state of\n"
+" affairs. You must turn on either digest delivery or\n"
+" non-digest delivery or your mailing list will basically be\n"
+" unusable."
+msgstr ""
+"±z¤w¸gÃö³¬ºK­n»P¤@¯ë­q¾\ \n"
+" «H¥óªºµo°e¡C¦¹¤GªÌ¬O¤¬¥¸¨Æ¥ó¡C±z¥²¶·¦Û¨âªÌ¤¤\n"
+" ¾Ü¤@¨Ï¥Î¡A¤£µM±zªº³q«H½×¾Â°ò¥»¤W¬OµLªk¨Ï¥Îªº¡C"
+
+#: Mailman/Cgi/admin.py:179 Mailman/Cgi/admin.py:185 Mailman/Cgi/admin.py:190
+#: Mailman/Cgi/admin.py:1349 Mailman/Gui/GUIBase.py:184
+msgid "Warning: "
+msgstr ""
+
+#: Mailman/Cgi/admin.py:183
+#, fuzzy
+msgid ""
+"You have digest members, but digests are turned\n"
+" off. Those people will not receive mail."
+msgstr ""
+"±z¦³ºK­n¼Ò¦¡ªº·|­û¡A\n"
+" ¦ýºK­n¼Ò¦¡¤w¸gÃö³¬¡A«e­z¤H­û±N¦¬¤£¨ì«H¥ó"
+
+#: Mailman/Cgi/admin.py:188
+#, fuzzy
+msgid ""
+"You have regular list members but non-digestified mail is\n"
+" turned off. They will receive mail until you fix this\n"
+" problem."
+msgstr ""
+"±z¦³¤@¯ë­q¾\·|­û¡A¦ý¬O«DºK­n·|­û\n"
+" ªº¶l»¼¿ï¶µ³QÃö³¬¡C ¤@¯ë·|­û±N«ùÄò¦¬¨ì«H¥óª½¨ì±z­×¥¿«e­z°ÝÃDÂI"
+
+#: Mailman/Cgi/admin.py:212
+#, fuzzy
+msgid "%(hostname)s mailing lists - Admin Links"
+msgstr "%s ³q«H½×¾Â - ºÞ²zºô­¶³sµ²"
+
+#: Mailman/Cgi/admin.py:241 Mailman/Cgi/listinfo.py:97
+msgid "Welcome!"
+msgstr "Åwªï¡I"
+
+#: Mailman/Cgi/admin.py:244 Mailman/Cgi/listinfo.py:100
+msgid "Mailman"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:248
+#, fuzzy
+msgid ""
+"<p>There currently are no publicly-advertised %(mailmanlink)s\n"
+" mailing lists on %(hostname)s."
+msgstr "<p> ²{¦b¨ÃµL¤½¶}¤§³q«H½×¾Â"
+
+#: Mailman/Cgi/admin.py:254
+msgid ""
+"<p>Below is the collection of publicly-advertised\n"
+" %(mailmanlink)s mailing lists on %(hostname)s. Click on a list\n"
+" name to visit the configuration pages for that list."
+msgstr ""
+
+#: Mailman/Cgi/admin.py:261
+msgid "right "
+msgstr "¹ï "
+
+#: Mailman/Cgi/admin.py:263
+msgid ""
+"To visit the administrators configuration page for an\n"
+" unadvertised list, open a URL similar to this one, but with a '/' "
+"and\n"
+" the %(extra)slist name appended. If you have the proper authority,\n"
+" you can also <a href=\"%(creatorurl)s\">create a new mailing list</"
+"a>.\n"
+"\n"
+" <p>General list information can be found at "
+msgstr ""
+
+#: Mailman/Cgi/admin.py:270
+msgid "the mailing list overview page"
+msgstr "³q«H½×¾Â²¤¶ºô­¶"
+
+#: Mailman/Cgi/admin.py:272
+msgid "<p>(Send questions and comments to "
+msgstr "<p>(±N±zªº·N¨£©ÎºÃ°Ý±Hµ¹ "
+
+#: Mailman/Cgi/admin.py:282 Mailman/Cgi/listinfo.py:132 cron/mailpasswds:173
+msgid "List"
+msgstr "½×¾Â"
+
+#: Mailman/Cgi/admin.py:283 Mailman/Cgi/admin.py:553
+#: Mailman/Cgi/listinfo.py:133
+msgid "Description"
+msgstr "°h­q"
+
+#: Mailman/Cgi/admin.py:289 Mailman/Cgi/listinfo.py:139 bin/list_lists:103
+msgid "[no description available]"
+msgstr "[¨S¦³»¡©ú]"
+
+#: Mailman/Cgi/admin.py:322
+msgid "No valid variable name found."
+msgstr ""
+
+#: Mailman/Cgi/admin.py:332
+#, fuzzy
+msgid ""
+"%(realname)s Mailing list Configuration Help\n"
+" <br><em>%(varname)s</em> Option"
+msgstr "%s ³q«H½×¾Â³]©w»¡©ú<br><em>%s</em> ³]©w"
+
+#: Mailman/Cgi/admin.py:339
+#, fuzzy
+msgid "Mailman %(varname)s List Option Help"
+msgstr "Mailman %s ½×¾Â³]©w»¡©ú"
+
+#: Mailman/Cgi/admin.py:357
+#, fuzzy
+msgid ""
+"<em><strong>Warning:</strong> changing this option here\n"
+" could cause other screens to be out-of-sync. Be sure to reload any "
+"other\n"
+" pages that are displaying this option for this mailing list. You can "
+"also\n"
+" "
+msgstr ""
+"<em><strong>ĵ§i¡G<strong> ¦b³oÃäÅܧó³]©w·|³y¦¨\n"
+" ¨ä¥¦ªºµe­±¤£¦P¨B¡C ½Ð§ó·s¸Ó½×¾ÂÅã¥Ü¦¹¶µ³]©wªº¨ä¥Lºô­¶¡C\n"
+" ±z¤]¥i¥H"
+
+#: Mailman/Cgi/admin.py:367
+#, fuzzy
+msgid "return to the %(category)s options page."
+msgstr "ªð¦^ %s ³]©w­¶¡C"
+
+#: Mailman/Cgi/admin.py:382
+msgid "%(realname)s Administration (%(label)s)"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:383
+#, fuzzy
+msgid "%(realname)s mailing list administration<br>%(label)s Section"
+msgstr "%s ³q«H½×¾ÂºÞ²z<br>%s ­¶"
+
+#: Mailman/Cgi/admin.py:399
+msgid "Configuration Categories"
+msgstr "³]©w¥Ø¿ý"
+
+#: Mailman/Cgi/admin.py:400
+msgid "Other Administrative Activities"
+msgstr "¨ä¥LºÞ²z¬¡°Ê"
+
+#: Mailman/Cgi/admin.py:404
+#, fuzzy
+msgid "Tend to pending moderator requests"
+msgstr "³B²z«Ýµô¨M¥Ó½Ð"
+
+#: Mailman/Cgi/admin.py:406
+msgid "Go to the general list information page"
+msgstr "«e©¹½×¾Â²¤¶ºô­¶"
+
+#: Mailman/Cgi/admin.py:408
+#, fuzzy
+msgid "Edit the public HTML pages"
+msgstr "½s¿è¤½¶}½×¾Â²¤¶ HTML ºô­¶"
+
+#: Mailman/Cgi/admin.py:410
+msgid "Go to list archives"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:416
+#, fuzzy
+msgid "Delete this mailing list"
+msgstr "Åwªï¥[¤J \"%s\" ³q«H½×¾Â %s"
+
+#: Mailman/Cgi/admin.py:417
+msgid " (requires confirmation)<br>&nbsp;<br>"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:423
+msgid "Logout"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:466
+msgid "Emergency moderation of all list traffic:"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:483
+#, fuzzy
+msgid ""
+"Make your changes in the following section, then submit them\n"
+" using the <em>Submit Your Changes</em> button below."
+msgstr "¦b¤U­±Åܧó±zªº³]©w¡A¨Ã¨Ï¥Î¤U¤èªº«öÁä½T©w¤§¡C%s<p>"
+
+#: Mailman/Cgi/admin.py:501
+msgid "Additional Member Tasks"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:507
+msgid ""
+"<li>Set everyone's moderation bit, including\n"
+" those members not currently visible"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:511
+msgid "Off"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:511
+msgid "On"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:513
+msgid "Set"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:554
+msgid "Value"
+msgstr "­È"
+
+#: Mailman/Cgi/admin.py:608
+#, fuzzy
+msgid ""
+"Badly formed options entry:\n"
+" %(record)s"
+msgstr ""
+"³]©w®æ¦¡µLªk¿ë§O¡G\n"
+" %s"
+
+#: Mailman/Cgi/admin.py:663
+msgid "<em>Enter the text below, or...</em><br>"
+msgstr "<em>½Ð¦b¤U¤è¿é¤J¤å¦r¡A©Î ...</em><br>"
+
+#: Mailman/Cgi/admin.py:665
+msgid "<br><em>...specify a file to upload</em><br>"
+msgstr "<br><em>...«ü©w¤W¶ÇÀÉ®×</em><br>"
+
+#: Mailman/Cgi/admin.py:691 Mailman/Cgi/admin.py:694
+msgid "Topic %(i)d"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:695
+msgid "Delete"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:696
+msgid "Topic name:"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:698
+msgid "Regexp:"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:701 Mailman/Cgi/options.py:918
+#, fuzzy
+msgid "Description:"
+msgstr "°h­q"
+
+#: Mailman/Cgi/admin.py:705
+msgid "Add new item..."
+msgstr ""
+
+#: Mailman/Cgi/admin.py:707
+msgid "...before this one."
+msgstr ""
+
+#: Mailman/Cgi/admin.py:708
+msgid "...after this one."
+msgstr ""
+
+#: Mailman/Cgi/admin.py:743
+msgid "<br>(Details for <b>%(varname)s</b>)"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:748
+#, fuzzy
+msgid ""
+"<br><em><strong>Note:</strong>\n"
+" setting this value performs an immediate action but does not modify\n"
+" permanent state.</em>"
+msgstr ""
+"<div ALIGN=\"right\"><br><em><strong>³Æµù¡G</strong>\n"
+" ¥»¦¸ªº³]©w¶È¨Ñ¥ß§Yªº³B¸m¡A³]©wª¬ºA¨Ã¥¼¦]¦¹Åܧó¡C\n"
+" </em></div>"
+
+#: Mailman/Cgi/admin.py:762
+#, fuzzy
+msgid "Mass Subscriptions"
+msgstr "­q¾\¥Ó½Ð"
+
+#: Mailman/Cgi/admin.py:769
+msgid "Mass Removals"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:776
+msgid "Membership List"
+msgstr "·|­û²M³æ"
+
+#: Mailman/Cgi/admin.py:783
+msgid "(help)"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:784
+msgid "Find member %(link)s:"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:787
+msgid "Search..."
+msgstr ""
+
+#: Mailman/Cgi/admin.py:802
+msgid "Bad regular expression: "
+msgstr ""
+
+#: Mailman/Cgi/admin.py:853
+msgid "%(allcnt)s members total, %(membercnt)s shown"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:856
+msgid "%(allcnt)s members total"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:879
+msgid "unsub"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:880
+#, fuzzy
+msgid "member address<br>member name"
+msgstr "·|­û¦a§}"
+
+#: Mailman/Cgi/admin.py:881
+msgid "hide"
+msgstr "ÁôÂÃ"
+
+#: Mailman/Cgi/admin.py:881
+msgid "mod"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:882
+msgid "nomail<br>[reason]"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:883
+msgid "ack"
+msgstr "¦^°õ"
+
+#: Mailman/Cgi/admin.py:883
+msgid "not metoo"
+msgstr "§Ú¤]¤£­n"
+
+#: Mailman/Cgi/admin.py:884
+msgid "nodupes"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:885
+msgid "digest"
+msgstr "ºK­n"
+
+#: Mailman/Cgi/admin.py:885
+msgid "plain"
+msgstr "¯Â¤å¦r"
+
+#: Mailman/Cgi/admin.py:886
+msgid "language"
+msgstr "»y¨¥"
+
+#: Mailman/Cgi/admin.py:897
+msgid "?"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:898
+msgid "U"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:899
+msgid "A"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:900
+msgid "B"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:972
+msgid "<b>unsub</b> -- Click on this to unsubscribe the member."
+msgstr ""
+
+#: Mailman/Cgi/admin.py:974
+msgid ""
+"<b>mod</b> -- The user's personal moderation flag. If this is\n"
+" set, postings from them will be moderated, otherwise they will be\n"
+" approved."
+msgstr ""
+
+#: Mailman/Cgi/admin.py:978
+#, fuzzy
+msgid ""
+"<b>hide</b> -- Is the member's address concealed on\n"
+" the list of subscribers?"
+msgstr "<b>ÁôÂÃ</b> -- ·|­ûªº email ¬O§_­n¥X²{¦b­q¾\·|­û²M³æ¡H"
+
+#: Mailman/Cgi/admin.py:980
+msgid ""
+"<b>nomail</b> -- Is delivery to the member disabled? If so, an\n"
+" abbreviation will be given describing the reason for the disabled\n"
+" delivery:\n"
+" <ul><li><b>U</b> -- Delivery was disabled by the user via their\n"
+" personal options page.\n"
+" <li><b>A</b> -- Delivery was disabled by the list\n"
+" administrators.\n"
+" <li><b>B</b> -- Delivery was disabled by the system due to\n"
+" excessive bouncing from the member's address.\n"
+" <li><b>?</b> -- The reason for disabled delivery isn't "
+"known.\n"
+" This is the case for all memberships which were "
+"disabled\n"
+" in older versions of Mailman.\n"
+" </ul>"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:995
+#, fuzzy
+msgid ""
+"<b>ack</b> -- Does the member get acknowledgements of their\n"
+" posts?"
+msgstr "<b>¦^°õ</b> -- ¦¬¨ì·|­û§ë®Ñ«á¬O§_À³±H«H³qª¾¥»¤H¡H"
+
+#: Mailman/Cgi/admin.py:998
+#, fuzzy
+msgid ""
+"<b>not metoo</b> -- Does the member want to avoid copies of their\n"
+" own postings?"
+msgstr "<b>§Ú¤]¤£­n</b> -- ±H«H¤H¬O§_­n¦¬¨ì¥L¦Û¤vªº§ë®Ñ¡H"
+
+#: Mailman/Cgi/admin.py:1001
+#, fuzzy
+msgid ""
+"<b>nodupes</b> -- Does the member want to avoid duplicates of the\n"
+" same message?"
+msgstr "<b>§Ú¤]¤£­n</b> -- ±H«H¤H¬O§_­n¦¬¨ì¥L¦Û¤vªº§ë®Ñ¡H"
+
+#: Mailman/Cgi/admin.py:1004
+#, fuzzy
+msgid ""
+"<b>digest</b> -- Does the member get messages in digests?\n"
+" (otherwise, individual messages)"
+msgstr "<b>ºK­n</b> -- ·|­û¬O§_¥i¥H¿ï¾ÜºK­n¼Ò¦¡¦¬«H¡H¡]©ÎªÌ»¡¨Ì­Ó§O§ë®Ñ¦¬«H¡^"
+
+#: Mailman/Cgi/admin.py:1007
+#, fuzzy
+msgid ""
+"<b>plain</b> -- If getting digests, does the member get plain\n"
+" text digests? (otherwise, MIME)"
+msgstr ""
+"<b>¯Â¤å¦r</b> -- ¦pªG¿ï¾ÜºK­n¼Ò¦¡¡A·|­û¬O§_­n¦¬¨ì¯Â¤å¦r®æ¦¡ªººK­n¡H(§_«h¥H "
+"MIME ±H°e)"
+
+#: Mailman/Cgi/admin.py:1009
+#, fuzzy
+msgid "<b>language</b> -- Language preferred by the user"
+msgstr "<b>»y¨¥</b> -- ¨Ï¥ÎªÌ¾A¥Îªº»y¨¥"
+
+#: Mailman/Cgi/admin.py:1023
+msgid "Click here to hide the legend for this table."
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1027
+msgid "Click here to include the legend for this table."
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1034
+#, fuzzy
+msgid ""
+"<p><em>To view more members, click on the appropriate\n"
+" range listed below:</em>"
+msgstr "<p><em>±ý¬d¬Ý¨ä¥L­¶¡AÂI¿ï¥H¤U©Ò¦C¦U­¶</em>"
+
+#: Mailman/Cgi/admin.py:1043
+#, fuzzy
+msgid "from %(start)s to %(end)s"
+msgstr "±q %s ¨ì %s"
+
+#: Mailman/Cgi/admin.py:1056
+msgid "Subscribe these users now or invite them?"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1058
+msgid "Invite"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1058 Mailman/Cgi/confirm.py:272
+#: Mailman/Cgi/listinfo.py:171
+msgid "Subscribe"
+msgstr "­q¾\"
+
+#: Mailman/Cgi/admin.py:1064
+#, fuzzy
+msgid "Send welcome messages to new subscribees?"
+msgstr "·í¦³·s·|­û¥[¤J®É¡A¬O§_±HµoÅwªï«H¡H"
+
+#: Mailman/Cgi/admin.py:1066 Mailman/Cgi/admin.py:1075
+#: Mailman/Cgi/admin.py:1108 Mailman/Cgi/admin.py:1116
+#: Mailman/Cgi/confirm.py:260 Mailman/Cgi/create.py:323
+#: Mailman/Cgi/create.py:351 Mailman/Cgi/create.py:383
+#: Mailman/Cgi/rmlist.py:205 Mailman/Gui/Archive.py:33
+#: Mailman/Gui/Autoresponse.py:54 Mailman/Gui/Autoresponse.py:62
+#: Mailman/Gui/Autoresponse.py:71 Mailman/Gui/Bounce.py:77
+#: Mailman/Gui/Bounce.py:108 Mailman/Gui/Bounce.py:134
+#: Mailman/Gui/Bounce.py:143 Mailman/Gui/ContentFilter.py:40
+#: Mailman/Gui/ContentFilter.py:64 Mailman/Gui/Digest.py:46
+#: Mailman/Gui/Digest.py:62 Mailman/Gui/Digest.py:84 Mailman/Gui/Digest.py:89
+#: Mailman/Gui/General.py:150 Mailman/Gui/General.py:228
+#: Mailman/Gui/General.py:255 Mailman/Gui/General.py:282
+#: Mailman/Gui/General.py:293 Mailman/Gui/General.py:296
+#: Mailman/Gui/General.py:306 Mailman/Gui/General.py:311
+#: Mailman/Gui/General.py:334 Mailman/Gui/General.py:362
+#: Mailman/Gui/General.py:385 Mailman/Gui/NonDigest.py:44
+#: Mailman/Gui/NonDigest.py:51 Mailman/Gui/Privacy.py:100
+#: Mailman/Gui/Privacy.py:106 Mailman/Gui/Privacy.py:139
+#: Mailman/Gui/Privacy.py:187 Mailman/Gui/Privacy.py:295
+#: Mailman/Gui/Privacy.py:310 Mailman/Gui/Privacy.py:374
+#: Mailman/Gui/Usenet.py:46 Mailman/Gui/Usenet.py:50 Mailman/Gui/Usenet.py:54
+msgid "No"
+msgstr "§_"
+
+#: Mailman/Cgi/admin.py:1066 Mailman/Cgi/admin.py:1075
+#: Mailman/Cgi/admin.py:1108 Mailman/Cgi/admin.py:1116
+#: Mailman/Cgi/confirm.py:260 Mailman/Cgi/create.py:323
+#: Mailman/Cgi/create.py:351 Mailman/Cgi/create.py:383
+#: Mailman/Cgi/rmlist.py:205 Mailman/Gui/Archive.py:33
+#: Mailman/Gui/Autoresponse.py:54 Mailman/Gui/Autoresponse.py:62
+#: Mailman/Gui/Bounce.py:77 Mailman/Gui/Bounce.py:108
+#: Mailman/Gui/Bounce.py:134 Mailman/Gui/Bounce.py:143
+#: Mailman/Gui/ContentFilter.py:40 Mailman/Gui/ContentFilter.py:64
+#: Mailman/Gui/Digest.py:46 Mailman/Gui/Digest.py:62 Mailman/Gui/Digest.py:84
+#: Mailman/Gui/Digest.py:89 Mailman/Gui/General.py:150
+#: Mailman/Gui/General.py:228 Mailman/Gui/General.py:255
+#: Mailman/Gui/General.py:282 Mailman/Gui/General.py:293
+#: Mailman/Gui/General.py:296 Mailman/Gui/General.py:306
+#: Mailman/Gui/General.py:311 Mailman/Gui/General.py:334
+#: Mailman/Gui/General.py:362 Mailman/Gui/General.py:385
+#: Mailman/Gui/NonDigest.py:44 Mailman/Gui/NonDigest.py:51
+#: Mailman/Gui/Privacy.py:100 Mailman/Gui/Privacy.py:106
+#: Mailman/Gui/Privacy.py:139 Mailman/Gui/Privacy.py:187
+#: Mailman/Gui/Privacy.py:295 Mailman/Gui/Privacy.py:310
+#: Mailman/Gui/Privacy.py:374 Mailman/Gui/Usenet.py:46
+#: Mailman/Gui/Usenet.py:50 Mailman/Gui/Usenet.py:54
+msgid "Yes"
+msgstr "¬O"
+
+#: Mailman/Cgi/admin.py:1073
+msgid "Send notifications of new subscriptions to the list owner?"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1081 Mailman/Cgi/admin.py:1122
+#, fuzzy
+msgid "Enter one address per line below..."
+msgstr "¨C¦æ¿é¤J¤@­Ó email ¦a§}¡G"
+
+#: Mailman/Cgi/admin.py:1086 Mailman/Cgi/admin.py:1127
+#, fuzzy
+msgid "...or specify a file to upload:"
+msgstr "<br><em>...«ü©w¤W¶ÇÀÉ®×</em><br>"
+
+#: Mailman/Cgi/admin.py:1091
+msgid ""
+"Below, enter additional text to be added to the\n"
+" top of your invitation or the subscription notification. Include at "
+"least\n"
+" one blank line at the end..."
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1106
+msgid "Send unsubscription acknowledgement to the user?"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1114
+msgid "Send notifications to the list owner?"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1136
+#, fuzzy
+msgid "Change list ownership passwords"
+msgstr "Åܧó±K½X"
+
+#: Mailman/Cgi/admin.py:1139
+msgid ""
+"The <em>list administrators</em> are the people who have ultimate control "
+"over\n"
+"all parameters of this mailing list. They are able to change any list\n"
+"configuration variable available through these administration web pages.\n"
+"\n"
+"<p>The <em>list moderators</em> have more limited permissions; they are not\n"
+"able to change any list configuration variable, but they are allowed to "
+"tend\n"
+"to pending administration requests, including approving or rejecting held\n"
+"subscription requests, and disposing of held postings. Of course, the\n"
+"<em>list administrators</em> can also tend to pending requests.\n"
+"\n"
+"<p>In order to split the list ownership duties into administrators and\n"
+"moderators, you must set a separate moderator password in the fields below,\n"
+"and also provide the email addresses of the list moderators in the\n"
+"<a href=\"%(adminurl)s/general\">general options section</a>."
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1158
+#, fuzzy
+msgid "Enter new administrator password:"
+msgstr "¾Â¥D±K½X¤£¥¿½T"
+
+#: Mailman/Cgi/admin.py:1160
+#, fuzzy
+msgid "Confirm administator password:"
+msgstr "¾Â¥D±K½X¤£¥¿½T"
+
+#: Mailman/Cgi/admin.py:1165
+#, fuzzy
+msgid "Enter new moderator password:"
+msgstr " ½Ð¿é¤J·s±K½X¡G"
+
+#: Mailman/Cgi/admin.py:1167
+#, fuzzy
+msgid "Confirm moderator password:"
+msgstr "½T»{·s±K½X¡G"
+
+#: Mailman/Cgi/admin.py:1177
+msgid "Submit Your Changes"
+msgstr "½T»{±zªºÅܧó"
+
+#: Mailman/Cgi/admin.py:1200
+#, fuzzy
+msgid "Moderator passwords did not match"
+msgstr "±zªº±K½X¤£²Å¡C<br>"
+
+#: Mailman/Cgi/admin.py:1210
+#, fuzzy
+msgid "Administator passwords did not match"
+msgstr "±zªº±K½X¤£²Å¡C<br>"
+
+#: Mailman/Cgi/admin.py:1254
+msgid "Already a member"
+msgstr "¤w¬O·|­û"
+
+#: Mailman/Cgi/admin.py:1257
+msgid "&lt;blank line&gt;"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1258 Mailman/Cgi/admin.py:1261
+msgid "Bad/Invalid email address"
+msgstr "¤£¥¿½T ªº email ¦a§}"
+
+#: Mailman/Cgi/admin.py:1264
+#, fuzzy
+msgid "Hostile address (illegal characters)"
+msgstr "¤Ï¹ï¦a§}(¤£¥¿½Tªº¦r¤¸)"
+
+#: Mailman/Cgi/admin.py:1269
+#, fuzzy
+msgid "Successfully invited:"
+msgstr "¤w­q¾\¦¨¥\¡G"
+
+#: Mailman/Cgi/admin.py:1271
+#, fuzzy
+msgid "Successfully subscribed:"
+msgstr "¤w­q¾\¦¨¥\¡G"
+
+#: Mailman/Cgi/admin.py:1276
+#, fuzzy
+msgid "Error inviting:"
+msgstr "°h­q¥¢±Ñ¡G"
+
+#: Mailman/Cgi/admin.py:1278
+#, fuzzy
+msgid "Error subscribing:"
+msgstr "°h­q¥¢±Ñ¡G"
+
+#: Mailman/Cgi/admin.py:1307
+#, fuzzy
+msgid "Successfully Unsubscribed:"
+msgstr "¤w­q¾\¦¨¥\¡G"
+
+#: Mailman/Cgi/admin.py:1312
+#, fuzzy
+msgid "Cannot unsubscribe non-members:"
+msgstr "¤@¯ë­q¾\·|­û"
+
+#: Mailman/Cgi/admin.py:1324
+msgid "Bad moderation flag value"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1345
+msgid "Not subscribed"
+msgstr "¥¼­q¾\"
+
+#: Mailman/Cgi/admin.py:1348
+msgid "Ignoring changes to deleted member: %(user)s"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1387
+#, fuzzy
+msgid "Successfully Removed:"
+msgstr "¤w­q¾\¦¨¥\¡G"
+
+#: Mailman/Cgi/admin.py:1391
+msgid "Error Unsubscribing:"
+msgstr "°h­q¥¢±Ñ¡G"
+
+#: Mailman/Cgi/admindb.py:155 Mailman/Cgi/admindb.py:163
+#, fuzzy
+msgid "%(realname)s Administrative Database"
+msgstr "%s ºÞ²z¤¶­±"
+
+#: Mailman/Cgi/admindb.py:158
+msgid "%(realname)s Administrative Database Results"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:166
+msgid "There are no pending requests."
+msgstr "¨S¦³«Ý³B²zªº­n¨D¡C"
+
+#: Mailman/Cgi/admindb.py:177
+msgid "Detailed instructions for the administrative database"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:181
+msgid "Administrative requests for mailing list:"
+msgstr "³q«H½×¾Â¥DºÞ¨Æ°È¥Ó½Ð"
+
+#: Mailman/Cgi/admindb.py:184 Mailman/Cgi/admindb.py:226
+msgid "Submit All Data"
+msgstr "°e¥X©Ò¦³¸ê®Æ"
+
+#: Mailman/Cgi/admindb.py:197
+msgid "all of %(esender)s's held messages."
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:202
+msgid "a single held message."
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:207
+#, fuzzy
+msgid "all held messages."
+msgstr "«H¥ó¬O§_ÂkÀÉ¡H"
+
+#: Mailman/Cgi/admindb.py:241
+#, fuzzy
+msgid "Mailman Administrative Database Error"
+msgstr "Mailman ¸ê®Æ®wºÞ²z¿ù»~"
+
+#: Mailman/Cgi/admindb.py:246
+msgid "list of available mailing lists."
+msgstr "³q«H½×¾Â¦Cªí¡C"
+
+#: Mailman/Cgi/admindb.py:247
+#, fuzzy
+msgid "You must specify a list name. Here is the %(link)s"
+msgstr "±z¥²¶·«ü©w½×¾Â¦WºÙ¡C ³o¸Ì¬O "
+
+#: Mailman/Cgi/admindb.py:260
+msgid "Subscription Requests"
+msgstr "­q¾\¥Ó½Ð"
+
+#: Mailman/Cgi/admindb.py:262
+#, fuzzy
+msgid "Address/name"
+msgstr "¦a§}"
+
+#: Mailman/Cgi/admindb.py:263 Mailman/Cgi/admindb.py:308
+#, fuzzy
+msgid "Your decision"
+msgstr "±zªºµô¨M"
+
+#: Mailman/Cgi/admindb.py:264 Mailman/Cgi/admindb.py:309
+msgid "Reason for refusal"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:279 Mailman/Cgi/admindb.py:328
+#: Mailman/Cgi/admindb.py:367 Mailman/Cgi/admindb.py:574
+msgid "Defer"
+msgstr "©µ¿ð"
+
+#: Mailman/Cgi/admindb.py:280 Mailman/Cgi/admindb.py:329
+#: Mailman/Cgi/admindb.py:574
+msgid "Approve"
+msgstr "®Ö­ã"
+
+#: Mailman/Cgi/admindb.py:281 Mailman/Cgi/admindb.py:330
+#: Mailman/Cgi/admindb.py:367 Mailman/Cgi/admindb.py:574
+#: Mailman/Gui/Privacy.py:206 Mailman/Gui/Privacy.py:280
+msgid "Reject"
+msgstr "©Úµ´"
+
+#: Mailman/Cgi/admindb.py:282 Mailman/Cgi/admindb.py:331
+#: Mailman/Cgi/admindb.py:367 Mailman/Cgi/admindb.py:574
+#: Mailman/Gui/Privacy.py:206 Mailman/Gui/Privacy.py:280
+msgid "Discard"
+msgstr "©¿²¤"
+
+#: Mailman/Cgi/admindb.py:290
+#, fuzzy
+msgid "Permanently ban from this list"
+msgstr "¥»½×¾Âªº¹w³]»y¨¥"
+
+#: Mailman/Cgi/admindb.py:305
+#, fuzzy
+msgid "Unsubscription Requests"
+msgstr "­q¾\¥Ó½Ð"
+
+#: Mailman/Cgi/admindb.py:307
+#, fuzzy
+msgid "User address/name"
+msgstr "·|­û¦a§}"
+
+#: Mailman/Cgi/admindb.py:360 Mailman/Cgi/admindb.py:562
+msgid "From:"
+msgstr "¨Ó·½¡G"
+
+#: Mailman/Cgi/admindb.py:363
+msgid "Action to take on all these held messages:"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:367 Mailman/Gui/Privacy.py:280
+msgid "Accept"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:375
+#, fuzzy
+msgid "Preserve messages for the site administrator"
+msgstr "Á`¾Â¥D¨p¤H«H¥ó"
+
+#: Mailman/Cgi/admindb.py:381
+msgid "Forward messages (individually) to:"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:399
+msgid "Clear this member's <em>moderate</em> flag"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:409
+msgid "Add <b>%(esender)s</b> to a sender filter"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:414
+msgid "Accepts"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:414
+#, fuzzy
+msgid "Discards"
+msgstr "©¿²¤"
+
+#: Mailman/Cgi/admindb.py:414
+msgid "Holds"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:414
+#, fuzzy
+msgid "Rejects"
+msgstr "©Úµ´"
+
+#: Mailman/Cgi/admindb.py:423
+msgid ""
+"Ban <b>%(esender)s</b> from ever subscribing to this\n"
+" mailing list"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:428
+msgid ""
+"Click on the message number to view the individual\n"
+" message, or you can "
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:430
+msgid "view all messages from %(esender)s"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:450 Mailman/Cgi/admindb.py:565
+msgid "Subject:"
+msgstr "¥DÃD¡G"
+
+#: Mailman/Cgi/admindb.py:453
+#, fuzzy
+msgid " bytes"
+msgstr " ¬O "
+
+#: Mailman/Cgi/admindb.py:453
+msgid "Size:"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:454 Mailman/Cgi/admindb.py:567
+msgid "Reason:"
+msgstr "­ì¦]¡G"
+
+#: Mailman/Cgi/admindb.py:455 Mailman/Handlers/Decorate.py:49
+#: Mailman/Handlers/Scrubber.py:156 Mailman/Handlers/Scrubber.py:157
+#, fuzzy
+msgid "not available"
+msgstr "[¨S¦³»¡©ú]"
+
+#: Mailman/Cgi/admindb.py:511
+msgid "Posting Held for Approval"
+msgstr "§ë®Ñ¾D¯d¸m¼f¬d"
+
+#: Mailman/Cgi/admindb.py:513
+#, fuzzy
+msgid " (%(count)d of %(total)d)"
+msgstr " (%d ÄÝ©ó %d)"
+
+#: Mailman/Cgi/admindb.py:524
+#, fuzzy
+msgid "<em>Message with id #%(id)d was lost."
+msgstr "<em>½s¸¹ #%d ªº«H¥ó¿ò¥¢¡C"
+
+#: Mailman/Cgi/admindb.py:533
+#, fuzzy
+msgid "<em>Message with id #%(id)d is corrupted."
+msgstr "<em>½s¸¹ #%d ªº«H¥ó¿ò¥¢¡C"
+
+#: Mailman/Cgi/admindb.py:580
+msgid "Action:"
+msgstr "°Ê§@¡G"
+
+#: Mailman/Cgi/admindb.py:584
+msgid "Preserve message for site administrator"
+msgstr "Á`¾Â¥D¨p¤H«H¥ó"
+
+#: Mailman/Cgi/admindb.py:588
+msgid "Additionally, forward this message to: "
+msgstr "¦¹¥~¡AÂà°e¦¹°T®§¨ì¡G "
+
+#: Mailman/Cgi/admindb.py:593
+msgid "If you reject this post,<br>please explain (optional):"
+msgstr "­Y±z©Úµ´¦¹«H¥ó¡A<br>½Ð»¡©ú(¿ï¾Ü©Ê)¡G"
+
+#: Mailman/Cgi/admindb.py:596
+msgid "[No explanation given]"
+msgstr "[¨S¦³­ì¦]]"
+
+#: Mailman/Cgi/admindb.py:601
+msgid "Message Headers:"
+msgstr "«H¥ó¼ÐÃD¡G"
+
+#: Mailman/Cgi/admindb.py:606
+msgid "Message Excerpt:"
+msgstr "°T®§ºK­n¡G"
+
+#: Mailman/Cgi/admindb.py:639
+#, fuzzy
+msgid "No reason given"
+msgstr "[¨S¦³»¡©ú­ì¦]]"
+
+#: Mailman/Cgi/admindb.py:700 Mailman/ListAdmin.py:307
+#: Mailman/ListAdmin.py:417
+msgid "[No reason given]"
+msgstr "[¨S¦³»¡©ú­ì¦]]"
+
+#: Mailman/Cgi/admindb.py:729
+msgid "Database Updated..."
+msgstr "¸ê®Æ®w¤w§ó·s..."
+
+#: Mailman/Cgi/admindb.py:732
+msgid " is already a member"
+msgstr " ¤w¸g¬O·|­û"
+
+#: Mailman/Cgi/confirm.py:69
+msgid "Confirmation string was empty."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:89
+msgid ""
+"<b>Invalid confirmation string:</b>\n"
+" %(safecookie)s.\n"
+"\n"
+" <p>Note that confirmation strings expire approximately\n"
+" %(days)s days after the initial subscription request. If your\n"
+" confirmation has expired, please try to re-submit your subscription.\n"
+" Otherwise, <a href=\"%(confirmurl)s\">re-enter</a> your confirmation\n"
+" string."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:131
+msgid ""
+"The address requesting to be changed has\n"
+" been subsequently unsubscribed. This request has been\n"
+" cancelled"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:150
+msgid "System error, bad content: %(content)s"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:160
+msgid "Bad confirmation string"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:168
+#, fuzzy
+msgid "Enter confirmation cookie"
+msgstr "ÅçÃÒ cookie ¸ÑŪ¥¢±Ñ"
+
+#: Mailman/Cgi/confirm.py:181
+msgid ""
+"Please enter the confirmation string\n"
+" (i.e. <em>cookie</em>) that you received in your email message, in the "
+"box\n"
+" below. Then hit the <em>Submit</em> button to proceed to the next\n"
+" confirmation step."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:186
+#, fuzzy
+msgid "Confirmation string:"
+msgstr "³]©w¥Ø¿ý"
+
+#: Mailman/Cgi/confirm.py:188
+#, fuzzy
+msgid "Submit"
+msgstr "°e¥XÅܧó"
+
+#: Mailman/Cgi/confirm.py:203
+#, fuzzy
+msgid "Confirm subscription request"
+msgstr "­q¾\¥Ó½Ð"
+
+#: Mailman/Cgi/confirm.py:220
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" subscription request to the mailing list <em>%(listname)s</em>. Your\n"
+" subscription settings are shown below; make any necessary changes and "
+"hit\n"
+" <em>Subscribe</em> to complete the confirmation process. Once you've\n"
+" confirmed your subscription request, you will be shown your account\n"
+" options page which you can use to further customize your membership\n"
+" options.\n"
+"\n"
+" <p>Note: your password will be emailed to you once your subscription is\n"
+" confirmed. You can change it by visiting your personal options page.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this subscription\n"
+" request."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:235
+msgid ""
+"Your confirmation is required in order to continue with\n"
+" the subscription request to the mailing list <em>%(listname)s</em>.\n"
+" Your subscription settings are shown below; make any necessary "
+"changes\n"
+" and hit <em>Subscribe</em> to complete the confirmation process. "
+"Once\n"
+" you've confirmed your subscription request, the moderator must "
+"approve\n"
+" or reject your membership request. You will receive notice of "
+"their\n"
+" decision.\n"
+"\n"
+" <p>Note: your password will be emailed to you once your "
+"subscription\n"
+" is confirmed. You can change it by visiting your personal options\n"
+" page.\n"
+"\n"
+" <p>Or you can hit <em>Cancel and discard</em> now to cancel this\n"
+" subscription request."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:252
+#, fuzzy
+msgid "Your email address:"
+msgstr "¾Â¥D email¡G"
+
+#: Mailman/Cgi/confirm.py:253
+msgid "Your real name:"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:259
+msgid "Receive digests?"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:268
+msgid "Preferred language:"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:273 Mailman/Cgi/confirm.py:432
+#: Mailman/Cgi/confirm.py:528
+msgid "Cancel and discard"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:283
+#, fuzzy
+msgid "You have canceled your subscription request."
+msgstr "±z¤w¸g³]©w¦¨¥\¡C"
+
+#: Mailman/Cgi/confirm.py:315
+#, fuzzy
+msgid "Awaiting moderator approval"
+msgstr "§ë®Ñ¾D¯d¸m¼f¬d"
+
+#: Mailman/Cgi/confirm.py:318
+msgid ""
+" You have successfully confirmed your subscription request to "
+"the\n"
+" mailing list %(listname)s, however final approval is required "
+"from\n"
+" the list moderator before you will be subscribed. Your request\n"
+" has been forwarded to the list moderator, and you will be "
+"notified\n"
+" of the moderator's decision."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:325 Mailman/Cgi/confirm.py:378
+#: Mailman/Cgi/confirm.py:464 Mailman/Cgi/confirm.py:675
+msgid ""
+"Invalid confirmation string. It is\n"
+" possible that you are attempting to confirm a request for an\n"
+" address that has already been unsubscribed."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:334
+#, fuzzy
+msgid "Subscription request confirmed"
+msgstr "­q¾\¥Ó½Ð"
+
+#: Mailman/Cgi/confirm.py:338
+msgid ""
+" You have successfully confirmed your subscription request for\n"
+" \"%(addr)s\" to the %(listname)s mailing list. A separate\n"
+" confirmation message will be sent to your email address, along\n"
+" with your password, and other useful information and links.\n"
+"\n"
+" <p>You can now\n"
+" <a href=\"%(optionsurl)s\">proceed to your membership login\n"
+" page</a>."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:356
+#, fuzzy
+msgid "You have canceled your unsubscription request."
+msgstr "±z¤w¸g³]©w¦¨¥\¡C"
+
+#: Mailman/Cgi/confirm.py:384
+#, fuzzy
+msgid "Unsubscription request confirmed"
+msgstr "­q¾\¥Ó½Ð"
+
+#: Mailman/Cgi/confirm.py:388
+msgid ""
+" You have successfully unsubscribed from the %(listname)s "
+"mailing\n"
+" list. You can now <a href=\"%(listinfourl)s\">visit the list's "
+"main\n"
+" information page</a>."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:399
+#, fuzzy
+msgid "Confirm unsubscription request"
+msgstr "­q¾\¥Ó½Ð"
+
+#: Mailman/Cgi/confirm.py:414 Mailman/Cgi/confirm.py:501
+msgid "<em>Not available</em>"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:415
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" unsubscription request from the mailing list <em>%(listname)s</em>. "
+"You\n"
+" are currently subscribed with\n"
+"\n"
+" <ul><li><b>Real name:</b> %(fullname)s\n"
+" <li><b>Email address:</b> %(addr)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Unsubscribe</em> button below to complete the confirmation\n"
+" process.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this unsubscription\n"
+" request."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:431 Mailman/Cgi/options.py:631
+#: Mailman/Cgi/options.py:776 Mailman/Cgi/options.py:786
+msgid "Unsubscribe"
+msgstr "°h­q"
+
+#: Mailman/Cgi/confirm.py:442
+msgid "You have canceled your change of address request."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:470
+msgid "Change of address request confirmed"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:474
+msgid ""
+" You have successfully changed your address on the %(listname)s\n"
+" mailing list from <b>%(oldaddr)s</b> to <b>%(newaddr)s</b>. "
+"You\n"
+" can now <a href=\"%(optionsurl)s\">proceed to your membership\n"
+" login page</a>."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:486
+msgid "Confirm change of address request"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:503
+msgid "globally"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:506
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" change of address request for the mailing list <em>%(listname)s</em>. "
+"You\n"
+" are currently subscribed with\n"
+"\n"
+" <ul><li><b>Real name:</b> %(fullname)s\n"
+" <li><b>Old email address:</b> %(oldaddr)s\n"
+" </ul>\n"
+"\n"
+" and you have requested to %(globallys)s change your email address to\n"
+"\n"
+" <ul><li><b>New email address:</b> %(newaddr)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Change address</em> button below to complete the "
+"confirmation\n"
+" process.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this change of address\n"
+" request."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:527
+#, fuzzy
+msgid "Change address"
+msgstr "·|­û¦a§}"
+
+#: Mailman/Cgi/confirm.py:537 Mailman/Cgi/confirm.py:640
+msgid "Continue awaiting approval"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:544
+msgid ""
+"Okay, the list moderator will still have the\n"
+" opportunity to approve or reject this message."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:570
+msgid "Sender discarded message via web."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:572
+msgid ""
+"The held message with the Subject:\n"
+" header <em>%(subject)s</em> could not be found. The most "
+"likely\n"
+" reason for this is that the list moderator has already approved "
+"or\n"
+" rejected the message. You were not able to cancel it in\n"
+" time."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:580
+msgid "Posted message canceled"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:583
+msgid ""
+" You have successfully canceled the posting of your message with\n"
+" the Subject: header <em>%(subject)s</em> to the mailing list\n"
+" %(listname)s."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:594
+msgid "Cancel held message posting"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:623
+msgid ""
+"Your confirmation is required in order to cancel the\n"
+" posting of your message to the mailing list <em>%(listname)s</em>:\n"
+"\n"
+" <ul><li><b>Sender:</b> %(sender)s\n"
+" <li><b>Subject:</b> %(subject)s\n"
+" <li><b>Reason:</b> %(reason)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Cancel posting</em> button to discard the posting.\n"
+"\n"
+" <p>Or hit the <em>Continue awaiting approval</em> button to continue to\n"
+" allow the list moderator to approve or reject the message."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:639
+msgid "Cancel posting"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:651
+msgid ""
+"You have canceled the re-enabling of your membership. If\n"
+" we continue to receive bounces from your address, it could be deleted "
+"from\n"
+" this mailing list."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:681
+#, fuzzy
+msgid "Membership re-enabled."
+msgstr "·|­ûºÞ²z"
+
+#: Mailman/Cgi/confirm.py:685
+msgid ""
+" You have successfully re-enabled your membership in the\n"
+" %(listname)s mailing list. You can now <a\n"
+" href=\"%(optionsurl)s\">visit your member options page</a>.\n"
+" "
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:697
+#, fuzzy
+msgid "Re-enable mailing list membership"
+msgstr " %s ³q«H½×¾Â·|Äy´£¿ô"
+
+#: Mailman/Cgi/confirm.py:714
+msgid ""
+"We're sorry, but you have already been unsubscribed\n"
+" from this mailing list. To re-subscribe, please visit the\n"
+" <a href=\"%(listinfourl)s\">list information page</a>."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:723
+msgid "<em>not available</em>"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:725
+msgid ""
+"Your membership in the %(realname)s mailing list is\n"
+" currently disabled due to excessive bounces. Your confirmation is\n"
+" required in order to re-enable delivery to your address. We have the\n"
+" following information on file:\n"
+"\n"
+" <ul><li><b>Member address:</b> %(member)s\n"
+" <li><b>Member name:</b> %(username)s\n"
+" <li><b>Last bounce received on:</b> %(date)s\n"
+" <li><b>Approximate number of days before you are permanently "
+"removed\n"
+" from this list:</b> %(daysleft)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Re-enable membership</em> button to resume receiving "
+"postings\n"
+" from the mailing list. Or hit the <em>Cancel</em> button to defer\n"
+" re-enabling your membership.\n"
+" "
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:745
+msgid "Re-enable membership"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:746
+msgid "Cancel"
+msgstr ""
+
+#: Mailman/Cgi/create.py:48 Mailman/Cgi/rmlist.py:46
+msgid "Bad URL specification"
+msgstr ""
+
+#: Mailman/Cgi/create.py:63 Mailman/Cgi/rmlist.py:153
+msgid "Return to the "
+msgstr ""
+
+#: Mailman/Cgi/create.py:65 Mailman/Cgi/rmlist.py:155
+#, fuzzy
+msgid "general list overview"
+msgstr "³q«H½×¾Â²¤¶ºô­¶"
+
+#: Mailman/Cgi/create.py:66 Mailman/Cgi/rmlist.py:156
+msgid "<br>Return to the "
+msgstr ""
+
+#: Mailman/Cgi/create.py:68 Mailman/Cgi/rmlist.py:158
+#, fuzzy
+msgid "administrative list overview"
+msgstr "%s ºÞ²z¤¶­±"
+
+#: Mailman/Cgi/create.py:101
+msgid "List name must not include \"@\": %(listname)s"
+msgstr ""
+
+#: Mailman/Cgi/create.py:107 Mailman/Cgi/create.py:185 bin/newlist:130
+#: bin/newlist:162
+msgid "List already exists: %(listname)s"
+msgstr ""
+
+#: Mailman/Cgi/create.py:111
+msgid "You forgot to enter the list name"
+msgstr ""
+
+#: Mailman/Cgi/create.py:115
+#, fuzzy
+msgid "You forgot to specify the list owner"
+msgstr "±z¥²¶·«ü©w¤@­Ó½×¾Â¡C"
+
+#: Mailman/Cgi/create.py:122
+msgid ""
+"Leave the initial password (and confirmation) fields\n"
+" blank if you want Mailman to autogenerate the list\n"
+" passwords."
+msgstr ""
+
+#: Mailman/Cgi/create.py:130
+#, fuzzy
+msgid "Initial list passwords do not match"
+msgstr "±K½X¤£²Å"
+
+#: Mailman/Cgi/create.py:139
+msgid "The list password cannot be empty<!-- ignore -->"
+msgstr ""
+
+#: Mailman/Cgi/create.py:151
+msgid "You are not authorized to create new mailing lists"
+msgstr ""
+
+#: Mailman/Cgi/create.py:181
+#, fuzzy
+msgid "Bad owner email address: %(owner)s"
+msgstr "¤£¥¿½T ªº email ¦a§}"
+
+#: Mailman/Cgi/create.py:190
+msgid ""
+"Some unknown error occurred while creating the list.\n"
+" Please contact the site administrator for assistance."
+msgstr ""
+
+#: Mailman/Cgi/create.py:229 bin/newlist:204
+msgid "Your new mailing list: %(listname)s"
+msgstr ""
+
+#: Mailman/Cgi/create.py:238
+#, fuzzy
+msgid "Mailing list creation results"
+msgstr "%s ³q«H½×¾Â´£¿ô"
+
+#: Mailman/Cgi/create.py:244
+msgid ""
+"You have successfully created the mailing list\n"
+" <b>%(listname)s</b> and notification has been sent to the list owner\n"
+" <b>%(owner)s</b>. You can now:"
+msgstr ""
+
+#: Mailman/Cgi/create.py:248
+#, fuzzy
+msgid "Visit the list's info page"
+msgstr "½×¾ÂºÞ²zÁ`Äýºô­¶"
+
+#: Mailman/Cgi/create.py:249
+#, fuzzy
+msgid "Visit the list's admin page"
+msgstr "½×¾ÂºÞ²zÁ`Äýºô­¶"
+
+#: Mailman/Cgi/create.py:250
+msgid "Create another list"
+msgstr ""
+
+#: Mailman/Cgi/create.py:268
+#, fuzzy
+msgid "Create a %(hostname)s Mailing List"
+msgstr "%s ³q«H½×¾Â"
+
+#: Mailman/Cgi/create.py:277 Mailman/Cgi/rmlist.py:176
+#: Mailman/Gui/Bounce.py:175 Mailman/htmlformat.py:339
+#, fuzzy
+msgid "Error: "
+msgstr "¿ù»~"
+
+#: Mailman/Cgi/create.py:279
+msgid ""
+"You can create a new mailing list by entering the\n"
+" relevant information into the form below. The name of the mailing list\n"
+" will be used as the primary address for posting messages to the list, "
+"so\n"
+" it should be lowercased. You will not be able to change this once the\n"
+" list is created.\n"
+"\n"
+" <p>You also need to enter the email address of the initial list owner.\n"
+" Once the list is created, the list owner will be given notification, "
+"along\n"
+" with the initial list password. The list owner will then be able to\n"
+" modify the password and add or remove additional list owners.\n"
+"\n"
+" <p>If you want Mailman to automatically generate the initial list admin\n"
+" password, click on `Yes' in the autogenerate field below, and leave the\n"
+" initial list password fields empty.\n"
+"\n"
+" <p>You must have the proper authorization to create new mailing lists.\n"
+" Each site should have a <em>list creator's</em> password, which you can\n"
+" enter in the field at the bottom. Note that the site administrator's\n"
+" password can also be used for authentication.\n"
+" "
+msgstr ""
+
+#: Mailman/Cgi/create.py:305
+msgid "List Identity"
+msgstr ""
+
+#: Mailman/Cgi/create.py:308
+msgid "Name of list:"
+msgstr ""
+
+#: Mailman/Cgi/create.py:313
+msgid "Initial list owner address:"
+msgstr ""
+
+#: Mailman/Cgi/create.py:322
+msgid "Auto-generate initial list password?"
+msgstr ""
+
+#: Mailman/Cgi/create.py:329
+#, fuzzy
+msgid "Initial list password:"
+msgstr " ½Ð¿é¤J·s±K½X¡G"
+
+#: Mailman/Cgi/create.py:334
+#, fuzzy
+msgid "Confirm initial password:"
+msgstr "½T»{·s±K½X¡G"
+
+#: Mailman/Cgi/create.py:344
+#, fuzzy
+msgid "List Characteristics"
+msgstr "ºK­nµo°e¿ï¶µ"
+
+#: Mailman/Cgi/create.py:348
+msgid ""
+"Should new members be quarantined before they\n"
+" are allowed to post unmoderated to this list? Answer <em>Yes</em> to "
+"hold\n"
+" new member postings for moderator approval by default."
+msgstr ""
+
+#: Mailman/Cgi/create.py:371
+msgid ""
+"Initial list of supported languages. <p>Note that if you do not\n"
+" select at least one initial language, the list will use the server\n"
+" default language of %(deflang)s"
+msgstr ""
+
+#: Mailman/Cgi/create.py:382
+msgid "Send \"list created\" email to list owner?"
+msgstr ""
+
+#: Mailman/Cgi/create.py:391
+#, fuzzy
+msgid "List creator's (authentication) password:"
+msgstr "%s ·|­ûÅçÃÒ¥¢±Ñ¡C"
+
+#: Mailman/Cgi/create.py:396
+msgid "Create List"
+msgstr ""
+
+#: Mailman/Cgi/create.py:397
+msgid "Clear Form"
+msgstr ""
+
+#: Mailman/Cgi/edithtml.py:43
+msgid "General list information page"
+msgstr "½×¾Â²¤¶ºô­¶"
+
+#: Mailman/Cgi/edithtml.py:44
+msgid "Subscribe results page"
+msgstr "­q¾\µ²ªG"
+
+#: Mailman/Cgi/edithtml.py:45
+msgid "User specific options page"
+msgstr "¨Ï¥ÎªÌ³]©wºô­¶"
+
+#: Mailman/Cgi/edithtml.py:57
+msgid "List name is required."
+msgstr "»Ý­n½×¾Â¦WºÙ¡C"
+
+#: Mailman/Cgi/edithtml.py:97
+#, fuzzy
+msgid "%(realname)s -- Edit html for %(template_info)s"
+msgstr "%s -- ½s¿è %s ªº html"
+
+#: Mailman/Cgi/edithtml.py:103
+msgid "Edit HTML : Error"
+msgstr "½s¿è HTML : ¿ù»~"
+
+#: Mailman/Cgi/edithtml.py:104
+#, fuzzy
+msgid "%(safetemplatename)s: Invalid template"
+msgstr "%s:¼Ëª©¤£¥¿½T"
+
+#: Mailman/Cgi/edithtml.py:109 Mailman/Cgi/edithtml.py:110
+#, fuzzy
+msgid "%(realname)s -- HTML Page Editing"
+msgstr "%s -- HTML ºô­¶½s¿è"
+
+#: Mailman/Cgi/edithtml.py:111
+msgid "Select page to edit:"
+msgstr "¿ï¾Ü±ý½s¿èºô­¶¡G"
+
+#: Mailman/Cgi/edithtml.py:137
+msgid "View or edit the list configuration information."
+msgstr "¬d¬Ý©Î½s¿è½×¾Â³]©w¸ê°T¡C"
+
+#: Mailman/Cgi/edithtml.py:145
+msgid "When you are done making changes..."
+msgstr "·í±z§¹¦¨Åܧó«á..."
+
+#: Mailman/Cgi/edithtml.py:146
+msgid "Submit Changes"
+msgstr "°e¥XÅܧó"
+
+#: Mailman/Cgi/edithtml.py:153
+msgid "Can't have empty html page."
+msgstr "¤£±µ¨üªÅ¥Õºô­¶¡C"
+
+#: Mailman/Cgi/edithtml.py:154
+msgid "HTML Unchanged."
+msgstr "HTML ¨S¦³ÅܰʡC"
+
+#: Mailman/Cgi/edithtml.py:169
+msgid "HTML successfully updated."
+msgstr "HTML ¤w§ó·s¦¨¥\¡C"
+
+#: Mailman/Cgi/listinfo.py:71
+#, fuzzy
+msgid "%(hostname)s Mailing Lists"
+msgstr "%s ³q«H½×¾Â"
+
+#: Mailman/Cgi/listinfo.py:103
+#, fuzzy
+msgid ""
+"<p>There currently are no publicly-advertised\n"
+" %(mailmanlink)s mailing lists on %(hostname)s."
+msgstr "<p> ²{¦b¨ÃµL¤½¶}¤§³q«H½×¾Â"
+
+#: Mailman/Cgi/listinfo.py:107
+msgid ""
+"<p>Below is a listing of all the public mailing lists on\n"
+" %(hostname)s. Click on a list name to get more information "
+"about\n"
+" the list, or to subscribe, unsubscribe, and change the "
+"preferences\n"
+" on your subscription."
+msgstr ""
+"<p>¥H¤U¬O¥D¾÷ %(hostname)s ¤W¥þ³¡ªº¤½¶}½×¾Â²M³æ¡A\n"
+" ÂI¨ú³q«H½×¾Â¦WºÙ¥H¨ú±o¸Ó½×¾Â§ó¦hªº¸ê°T\n"
+" ¡B­q¾\¡B°h­q¤ÎÅܧó­q¤áªº¬ÛÃö³]©w"
+
+#: Mailman/Cgi/listinfo.py:113
+#, fuzzy
+msgid "right"
+msgstr "¹ï "
+
+#: Mailman/Cgi/listinfo.py:116
+#, fuzzy
+msgid ""
+" To visit the info page for an unadvertised list,\n"
+" a URL similar to this one, but with a '/' and the %(adj)s\n"
+" list name appended.\n"
+" <p>List administrators, you can visit "
+msgstr " ±ý¬d¬Ý¥¼¤½¶}½×¾ÂªºÂ²¤¶ºô­¶¡A½Ð¨Ì¥»¨Ò¶}±Ò URL ¡A¦ý­n¥[¤W '/' ©M"
+
+#: Mailman/Cgi/listinfo.py:121
+msgid "the list admin overview page"
+msgstr "½×¾ÂºÞ²zÁ`Äýºô­¶"
+
+#: Mailman/Cgi/listinfo.py:122
+#, fuzzy
+msgid ""
+" to find the management interface for your list.\n"
+" <p>Send questions or comments to "
+msgstr " ¬d¸ß±zªº½×¾ÂºÞ²z¤¶­±¡C<p>(±N±zªº·N¨£©ÎºÃ°Ý±Hµ¹ "
+
+#: Mailman/Cgi/listinfo.py:183
+msgid "Edit Options"
+msgstr "­×§ï³]©w"
+
+#: Mailman/Cgi/listinfo.py:190 Mailman/Cgi/options.py:742
+#: Mailman/Cgi/roster.py:111
+#, fuzzy
+msgid "View this page in"
+msgstr "¬ÛÃöºô­¶¦b"
+
+#: Mailman/Cgi/options.py:50 Mailman/Cgi/options.py:67
+msgid "CGI script error"
+msgstr ""
+
+#: Mailman/Cgi/options.py:53
+msgid "Invalid options to CGI script."
+msgstr "CGI ¿ï¶µ¿ù»~¡C"
+
+#: Mailman/Cgi/options.py:95
+#, fuzzy
+msgid "No address given"
+msgstr "[¨S¦³»¡©ú­ì¦]]"
+
+#: Mailman/Cgi/options.py:107 Mailman/Cgi/options.py:154
+#: Mailman/Cgi/options.py:176
+#, fuzzy
+msgid "No such member: %(safeuser)s."
+msgstr "%s: ¨S¦³·|­û %s¡C"
+
+#: Mailman/Cgi/options.py:149 Mailman/Cgi/options.py:159
+msgid "The confirmation email has been sent."
+msgstr ""
+
+#: Mailman/Cgi/options.py:170 Mailman/Cgi/options.py:182
+#: Mailman/Cgi/options.py:225
+msgid "A reminder of your password has been emailed to you."
+msgstr "±zªº±K½X´£¿ô«H¥ó¤w¸g¶l±Hµ¹±z"
+
+#: Mailman/Cgi/options.py:199
+#, fuzzy
+msgid "Authentication failed."
+msgstr "ÅçÃÒ¤£¦¨¥\"
+
+#: Mailman/Cgi/options.py:231
+#, fuzzy
+msgid "List subscriptions for %(user)s on %(hostname)s"
+msgstr "%s ¦b %s ªº­q¾\²M³æ "
+
+#: Mailman/Cgi/options.py:234
+#, fuzzy
+msgid ""
+"Click on a link to visit your options page for the\n"
+" requested mailing list."
+msgstr "ÂI¿ïÃìµ²¥H«e©¹±z¦b¸Ó½×¾Âªº³]©wºô­¶"
+
+#: Mailman/Cgi/options.py:275
+#, fuzzy
+msgid "Addresses did not match!"
+msgstr "±K½X¤£²Å"
+
+#: Mailman/Cgi/options.py:280
+#, fuzzy
+msgid "You are already using that email address"
+msgstr "±z¤w¸g¦b¦¬ºK­n¡C"
+
+#: Mailman/Cgi/options.py:286
+msgid "Addresses may not be blank"
+msgstr ""
+
+#: Mailman/Cgi/options.py:302
+msgid "A confirmation message has been sent to %(newaddr)s. "
+msgstr ""
+
+#: Mailman/Cgi/options.py:311
+#, fuzzy
+msgid "Bad email address provided"
+msgstr "¤£¥¿½T ªº email ¦a§}"
+
+#: Mailman/Cgi/options.py:313
+#, fuzzy
+msgid "Illegal email address provided"
+msgstr "¤£¥¿½T ªº email ¦a§}"
+
+#: Mailman/Cgi/options.py:315
+#, fuzzy
+msgid "%(newaddr)s is already a member of the list."
+msgstr "%s «D¥»½×¾Â·|­û"
+
+#: Mailman/Cgi/options.py:324
+#, fuzzy
+msgid "Member name successfully changed. "
+msgstr "HTML ¤w§ó·s¦¨¥\¡C"
+
+#: Mailman/Cgi/options.py:335
+#, fuzzy
+msgid "Passwords may not be blank"
+msgstr "±K½X¤£²Å"
+
+#: Mailman/Cgi/options.py:340
+#, fuzzy
+msgid "Passwords did not match!"
+msgstr "±K½X¤£²Å"
+
+#: Mailman/Cgi/options.py:355 Mailman/Commands/cmd_password.py:79
+#: Mailman/Commands/cmd_password.py:105
+#, fuzzy
+msgid "Password successfully changed."
+msgstr "HTML ¤w§ó·s¦¨¥\¡C"
+
+#: Mailman/Cgi/options.py:364
+msgid ""
+"You must confirm your unsubscription request by turning\n"
+" on the checkbox below the <em>Unsubscribe</em> button. You\n"
+" have not been unsubscribed!"
+msgstr ""
+
+#: Mailman/Cgi/options.py:396
+#, fuzzy
+msgid "Unsubscription results"
+msgstr "­q¾\¥Ó½Ð"
+
+#: Mailman/Cgi/options.py:400
+msgid ""
+"Your unsubscription request has been received and\n"
+" forwarded on to the list moderators for approval. You will\n"
+" receive notification once the list moderators have made their\n"
+" decision."
+msgstr ""
+
+#: Mailman/Cgi/options.py:405
+msgid ""
+"You have been successfully unsubscribed from the\n"
+" mailing list %(fqdn_listname)s. If you were receiving digest\n"
+" deliveries you may get one more digest. If you have any "
+"questions\n"
+" about your unsubscription, please contact the list owners at\n"
+" %(owneraddr)s."
+msgstr ""
+
+#: Mailman/Cgi/options.py:553
+msgid ""
+"The list administrator has disabled digest delivery for\n"
+" this list, so your delivery option has not been set. However "
+"your\n"
+" other options have been set successfully."
+msgstr ""
+"¥»½×¾Â¾Â¥D¤wÃö³¬¥»½×¾ÂºK­n¼Ò¦¡­q¾\¥\¯à¡A\n"
+" ¦]¦¹¦³Ãö­q¾\¼Ò¦¡ªº³]©w¥¼Åܧó¡A\n"
+" ¦ý¨ä¥L³]©wÅܧ󦨥\¡C"
+
+#: Mailman/Cgi/options.py:557
+msgid ""
+"The list administrator has disabled non-digest delivery\n"
+" for this list, so your delivery option has not been set. "
+"However\n"
+" your other options have been set successfully."
+msgstr ""
+"¾Â¥D¤wÃö³¬¥»½×¾Â«DºK­n­q¾\\n"
+" ¡A©Ò¥H±z¤£¥i³]©w­q¾\¼Ò¦¡¡C¦¹¥~\n"
+" ±z¨ä¥Lªº³]©w§¡¤w³]©w¦¨¥\¡C"
+
+#: Mailman/Cgi/options.py:561
+msgid "You have successfully set your options."
+msgstr "±z¤w¸g³]©w¦¨¥\¡C"
+
+#: Mailman/Cgi/options.py:564
+msgid "You may get one last digest."
+msgstr "±z¥i¦¬¨ì³Ì·s¤@´ÁªººK­n¡C"
+
+#: Mailman/Cgi/options.py:633
+msgid "<em>Yes, I really want to unsubscribe</em>"
+msgstr ""
+
+#: Mailman/Cgi/options.py:637
+msgid "Change My Password"
+msgstr "Åܧó±K½X"
+
+#: Mailman/Cgi/options.py:640
+msgid "List my other subscriptions"
+msgstr "¦C¥X§Ú¨ä¥Lªº­q¾\"
+
+#: Mailman/Cgi/options.py:646
+msgid "Email My Password To Me"
+msgstr "±N±K½X±Hµ¹§Ú¦Û¤v"
+
+#: Mailman/Cgi/options.py:648
+msgid "password"
+msgstr "±K½X"
+
+#: Mailman/Cgi/options.py:650
+msgid "Log out"
+msgstr ""
+
+#: Mailman/Cgi/options.py:652
+msgid "Submit My Changes"
+msgstr "°e¥X§ÚªºÅܧó"
+
+#: Mailman/Cgi/options.py:664
+msgid "days"
+msgstr ""
+
+#: Mailman/Cgi/options.py:666
+msgid "day"
+msgstr ""
+
+#: Mailman/Cgi/options.py:667
+msgid "%(days)d %(units)s"
+msgstr ""
+
+#: Mailman/Cgi/options.py:673
+msgid "Change My Address and Name"
+msgstr ""
+
+#: Mailman/Cgi/options.py:701
+msgid "<em>No topics defined</em>"
+msgstr ""
+
+#: Mailman/Cgi/options.py:709
+#, fuzzy
+msgid ""
+"\n"
+"You are subscribed to this list with the case-preserved address\n"
+"<em>%(cpuser)s</em>."
+msgstr ""
+"\n"
+"±z¥H«O¯d¤j¼g¦r¥Àªº¦a§}­q¾\¥»½×¾Â\n"
+"<em>%s</em>¡C"
+
+#: Mailman/Cgi/options.py:723
+msgid "%(realname)s list: member options login page"
+msgstr ""
+
+#: Mailman/Cgi/options.py:724
+#, fuzzy
+msgid "email address and "
+msgstr "·|­û¦a§}"
+
+#: Mailman/Cgi/options.py:726
+msgid "%(realname)s list: member options for user %(user)s"
+msgstr ""
+
+#: Mailman/Cgi/options.py:752
+msgid ""
+"In order to change your membership option, you must\n"
+" first log in by giving your %(extra)smembership password in the section\n"
+" below. If you don't remember your membership password, you can have it\n"
+" emailed to you by clicking on the button below. If you just want to\n"
+" unsubscribe from this list, click on the <em>Unsubscribe</em> button and "
+"a\n"
+" confirmation message will be sent to you.\n"
+"\n"
+" <p><strong><em>Important:</em></strong> From this point on, you must "
+"have\n"
+" cookies enabled in your browser, otherwise none of your changes will "
+"take\n"
+" effect.\n"
+" "
+msgstr ""
+
+#: Mailman/Cgi/options.py:766
+#, fuzzy
+msgid "Email address:"
+msgstr "¾Â¥D email¡G"
+
+#: Mailman/Cgi/options.py:770
+#, fuzzy
+msgid "Password:"
+msgstr "±K½X¡G "
+
+#: Mailman/Cgi/options.py:772
+msgid "Log in"
+msgstr ""
+
+#: Mailman/Cgi/options.py:780
+msgid ""
+"By clicking on the <em>Unsubscribe</em> button, a\n"
+" confirmation message will be emailed to you. This message will have a\n"
+" link that you should click on to complete the removal process (you can\n"
+" also confirm by email; see the instructions in the confirmation\n"
+" message)."
+msgstr ""
+
+#: Mailman/Cgi/options.py:788
+#, fuzzy
+msgid "Password reminder"
+msgstr "±K½X¡G "
+
+#: Mailman/Cgi/options.py:792
+#, fuzzy
+msgid ""
+"By clicking on the <em>Remind</em> button, your\n"
+" password will be emailed to you."
+msgstr "±zªº±K½X´£¿ô«H¥ó¤w¸g¶l±Hµ¹±z"
+
+#: Mailman/Cgi/options.py:795
+msgid "Remind"
+msgstr ""
+
+#: Mailman/Cgi/options.py:895
+msgid "<missing>"
+msgstr ""
+
+#: Mailman/Cgi/options.py:906
+msgid "Requested topic is not valid: %(topicname)s"
+msgstr ""
+
+#: Mailman/Cgi/options.py:911
+msgid "Topic filter details"
+msgstr ""
+
+#: Mailman/Cgi/options.py:914
+msgid "Name:"
+msgstr ""
+
+#: Mailman/Cgi/options.py:916
+msgid "Pattern (as regexp):"
+msgstr ""
+
+#: Mailman/Cgi/private.py:61
+msgid "Private Archive Error"
+msgstr "«D¤½¶}½×¾ÂÂkÀÉ¥¢±Ñ"
+
+#: Mailman/Cgi/private.py:62
+msgid "You must specify a list."
+msgstr "±z¥²¶·«ü©w¤@­Ó½×¾Â¡C"
+
+#: Mailman/Cgi/private.py:99
+#, fuzzy
+msgid "Private Archive Error - %(msg)s"
+msgstr "¨p¤H½×¾Â¦sÀÉ¿ù»~ - %s"
+
+#: Mailman/Cgi/private.py:154
+#, fuzzy
+msgid "Private archive file not found"
+msgstr "¥¼µo²{ÂkÀɤ§ÀÉ®×"
+
+#: Mailman/Cgi/rmlist.py:79
+msgid "You're being a sneaky list owner!"
+msgstr ""
+
+#: Mailman/Cgi/rmlist.py:117
+msgid "You are not authorized to delete this mailing list"
+msgstr ""
+
+#: Mailman/Cgi/rmlist.py:143
+#, fuzzy
+msgid "Mailing list deletion results"
+msgstr " %s ¤Wªº³q«H½×¾Â ¡C"
+
+#: Mailman/Cgi/rmlist.py:149
+msgid ""
+"You have successfully deleted the mailing list\n"
+" <b>%(listname)s</b>."
+msgstr ""
+
+#: Mailman/Cgi/rmlist.py:165
+msgid "Permanently remove mailing list <em>%(realname)s</em>"
+msgstr ""
+
+#: Mailman/Cgi/rmlist.py:179
+msgid ""
+"This page allows you as the list owner, to permanent\n"
+" remove this mailing list from the system. <strong>This action is not\n"
+" undoable</strong> so you should undertake it only if you are absolutely\n"
+" sure this mailing list has served its purpose and is no longer "
+"necessary.\n"
+"\n"
+" <p>Note that no warning will be sent to your list members and after "
+"this\n"
+" action, any subsequent messages sent to the mailing list, or any of its\n"
+" administrative addreses will bounce.\n"
+"\n"
+" <p>You also have the option of removing the archives for this mailing "
+"list\n"
+" at this time. It is almost always recommended that you do\n"
+" <strong>not</strong> remove the archives, since they serve as the\n"
+" historical record of your mailing list.\n"
+"\n"
+" <p>For your safety, you will be asked to reconfirm the list password.\n"
+" "
+msgstr ""
+
+#: Mailman/Cgi/rmlist.py:200
+#, fuzzy
+msgid "List password:"
+msgstr "±K½X"
+
+#: Mailman/Cgi/rmlist.py:204
+msgid "Also delete archives?"
+msgstr ""
+
+#: Mailman/Cgi/rmlist.py:212
+msgid "<b>Cancel</b> and return to list administration"
+msgstr ""
+
+#: Mailman/Cgi/rmlist.py:215
+#, fuzzy
+msgid "Delete this list"
+msgstr "¦¹½×¾Â"
+
+#: Mailman/Cgi/roster.py:48 Mailman/Cgi/subscribe.py:50
+msgid "Invalid options to CGI script"
+msgstr "CGI ³]©w¿ù»~"
+
+#: Mailman/Cgi/roster.py:99
+#, fuzzy
+msgid "%(realname)s roster authentication failed."
+msgstr "%s ·|­ûÅçÃÒ¥¢±Ñ¡C"
+
+#: Mailman/Cgi/roster.py:127 Mailman/Cgi/roster.py:128
+#: Mailman/Cgi/subscribe.py:49 Mailman/Cgi/subscribe.py:60
+msgid "Error"
+msgstr "¿ù»~"
+
+#: Mailman/Cgi/subscribe.py:109
+#, fuzzy
+msgid "You must supply a valid email address."
+msgstr "±z¥²¶·µ¹©w¥¿½Tªº email ¦a§}¡C<br>"
+
+#: Mailman/Cgi/subscribe.py:122
+#, fuzzy
+msgid "You may not subscribe a list to itself!"
+msgstr "±z¤£¥i¥H½×¾Â¥»¨­ªº email ­q¾\¦Û¤v¡I<br>"
+
+#: Mailman/Cgi/subscribe.py:131
+#, fuzzy
+msgid "If you supply a password, you must confirm it."
+msgstr "±z¥²¶·µ¹©w¤@¥¿½T±K½X¡A¨Ã½T»{¤§¡C<br>"
+
+#: Mailman/Cgi/subscribe.py:133
+#, fuzzy
+msgid "Your passwords did not match."
+msgstr "±zªº±K½X¤£²Å¡C<br>"
+
+#: Mailman/Cgi/subscribe.py:167
+msgid ""
+"Your subscription request has been received, and will soon be acted upon.\n"
+"Depending on the configuration of this mailing list, your subscription "
+"request\n"
+"may have to be first confirmed by you via email, or approved by the list\n"
+"moderator. If confirmation is required, you will soon get a confirmation\n"
+"email which contains further instructions."
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:181
+msgid ""
+"The email address you supplied is banned from this\n"
+" mailing list. If you think this restriction is erroneous, please\n"
+" contact the list owners at %(listowner)s."
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:185
+msgid ""
+"The email address you supplied is not valid. (E.g. it must contain an\n"
+"`@'.)"
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:189
+#, fuzzy
+msgid ""
+"Your subscription is not allowed because the email address you gave is\n"
+"insecure."
+msgstr ""
+"±zªº­q¾\¥Ó½Ð¤£³q¹L¡A¦]¬°±zµ¹ªº \n"
+"email ¦a§}¤£¦w¥þ¡C"
+
+#: Mailman/Cgi/subscribe.py:197
+#, fuzzy
+msgid ""
+"Confirmation from your email address is required, to prevent anyone from\n"
+"subscribing you without permission. Instructions are being sent to you at\n"
+"%(email)s. Please note your subscription will not start until you confirm\n"
+"your subscription."
+msgstr ""
+"¬°¤F¹w¨¾¥¼¸g±z¦P·N«o³w¦æ¥N¬°­q¾\¥»½×¾Â¡A½T»{±zªº email ¦a§}¬O¥²¶·ªº¡C¸Ô²Óªº¨B"
+"ÆJ±N±H¨ì±z¦b %s ªº±b¸¹¡C½Ðª`·N¡A°£«DÀò±o±zªº½T»{¡A§_«h­q¾\¤´¤£ºâ¦³®Ä¡C"
+
+#: Mailman/Cgi/subscribe.py:209
+#, fuzzy
+msgid ""
+"Your subscription request was deferred because %(x)s. Your request has "
+"been\n"
+"forwarded to the list moderator. You will receive email informing you of "
+"the\n"
+"moderator's decision when they get to your request."
+msgstr ""
+"­q¾\±N¦] %s ¦Ó <em>©µ´Á</em>¡C ±zªº¥Ó½Ð±NÂà°e¾Â¥D®Ö­ã¡Aµy±ß±z·|¦¬¨ì¾Â¥Dªºµô¨M"
+"³qª¾ªº email¡C<p>"
+
+#: Mailman/Cgi/subscribe.py:216 Mailman/Commands/cmd_confirm.py:60
+#, fuzzy
+msgid "You are already subscribed."
+msgstr "±z¤w¸g­q¾\¡I"
+
+#: Mailman/Cgi/subscribe.py:230
+msgid "Mailman privacy alert"
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:231
+msgid ""
+"An attempt was made to subscribe your address to the mailing list\n"
+"%(listaddr)s. You are already subscribed to this mailing list.\n"
+"\n"
+"Note that the list membership is not public, so it is possible that a bad\n"
+"person was trying to probe the list for its membership. This would be a\n"
+"privacy violation if we let them do this, but we didn't.\n"
+"\n"
+"If you submitted the subscription request and forgot that you were already\n"
+"subscribed to the list, then you can ignore this message. If you suspect "
+"that\n"
+"an attempt is being made to covertly discover whether you are a member of "
+"this\n"
+"list, and you are worried about your privacy, then feel free to send a "
+"message\n"
+"to the list administrator at %(listowner)s.\n"
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:250
+#, fuzzy
+msgid "This list does not support digest delivery."
+msgstr "¥»½×¾Â¶È´£¨ÑºK­n·|­û­q¾\¡I"
+
+#: Mailman/Cgi/subscribe.py:252
+#, fuzzy
+msgid "This list only supports digest delivery."
+msgstr "¥»½×¾Â¶È´£¨ÑºK­n·|­û­q¾\¡I"
+
+#: Mailman/Cgi/subscribe.py:259
+#, fuzzy
+msgid "You have been successfully subscribed to the %(realname)s mailing list."
+msgstr "±z¤w¸g¦¨¥\­q¾\ %s ½×¾Â¡C"
+
+#: Mailman/Commands/cmd_confirm.py:17
+msgid ""
+"\n"
+" confirm <confirmation-string>\n"
+" Confirm an action. The confirmation-string is required and should "
+"be\n"
+" supplied with in mailback confirmation notice.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_confirm.py:39 Mailman/Commands/cmd_lists.py:40
+#: Mailman/Commands/cmd_set.py:133 Mailman/Commands/cmd_subscribe.py:68
+#: Mailman/Commands/cmd_unsubscribe.py:52 Mailman/Commands/cmd_who.py:65
+#, fuzzy
+msgid "Usage:"
+msgstr "¥Îªk¡G lists"
+
+#: Mailman/Commands/cmd_confirm.py:48
+msgid ""
+"Invalid confirmation string. Note that confirmation strings expire\n"
+"approximately %(days)s days after the initial subscription request. If "
+"your\n"
+"confirmation has expired, please try to re-submit your original request or\n"
+"message."
+msgstr ""
+
+#: Mailman/Commands/cmd_confirm.py:55
+#, fuzzy
+msgid "Your request has been forwarded to the list moderator for approval."
+msgstr "±zªº¥Ó½Ð¤wÂà°e¸Ó½×¾Â¾Â¥D®Ö­ã"
+
+#: Mailman/Commands/cmd_confirm.py:64
+msgid ""
+"You are not current a member. Have you already unsubscribed or changed\n"
+"your email address?"
+msgstr ""
+
+#: Mailman/Commands/cmd_confirm.py:69
+#, fuzzy
+msgid "Confirmation succeeded"
+msgstr "³]©w¥Ø¿ý"
+
+#: Mailman/Commands/cmd_echo.py:17
+msgid ""
+"\n"
+" echo [args]\n"
+" Simply echo an acknowledgement. Args are echoed back unchanged.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_end.py:17
+msgid ""
+"\n"
+" end\n"
+" Stop processing commands. Use this if your mail program "
+"automatically\n"
+" adds a signature file.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_help.py:17
+msgid ""
+"\n"
+" help\n"
+" Print this help message.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_help.py:47
+msgid "You can access your personal options via the following url:"
+msgstr ""
+
+#: Mailman/Commands/cmd_info.py:17
+msgid ""
+"\n"
+" info\n"
+" Get information about this mailing list.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_info.py:39 Mailman/Commands/cmd_lists.py:62
+msgid "n/a"
+msgstr ""
+
+#: Mailman/Commands/cmd_info.py:44
+msgid "List name: %(listname)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_info.py:45
+msgid "Description: %(description)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_info.py:46
+msgid "Postings to: %(postaddr)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_info.py:47
+msgid "List Helpbot: %(requestaddr)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_info.py:48
+msgid "List Owners: %(owneraddr)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_info.py:49
+msgid "More information: %(listurl)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_join.py:17
+msgid "The `join' command is synonymous with `subscribe'.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_leave.py:17
+msgid "The `leave' command is synonymous with `unsubscribe'.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_lists.py:17
+msgid ""
+"\n"
+" lists\n"
+" See a list of the public mailing lists on this GNU Mailman server.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_lists.py:44
+#, fuzzy
+msgid "Public mailing lists at %(hostname)s:"
+msgstr ""
+"\n"
+"¥»¤½¶}³q«H½×¾Â¥Ñ mailman@%s °õ¦æ"
+
+#: Mailman/Commands/cmd_lists.py:66
+msgid "%(i)3d. List name: %(realname)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_lists.py:67
+msgid " Description: %(description)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_lists.py:68
+msgid " Requests to: %(requestaddr)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_password.py:17
+msgid ""
+"\n"
+" password [<oldpassword> <newpassword>] [address=<address>]\n"
+" Retrieve or change your password. With no arguments, this returns\n"
+" your current password. With arguments <oldpassword> and "
+"<newpassword>\n"
+" you can change your password.\n"
+"\n"
+" If you're posting from an address other than your membership "
+"address,\n"
+" specify your membership address with `address=<address>' (no "
+"brackets\n"
+" around the email address, and no quotes!). Note that in this case "
+"the\n"
+" response is always sent to the subscribed address.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_password.py:51 Mailman/Commands/cmd_password.py:64
+#, fuzzy
+msgid "Your password is: %(password)s"
+msgstr "±zÀx¦sªº±K½X¤£¦s¦b¡C"
+
+#: Mailman/Commands/cmd_password.py:55 Mailman/Commands/cmd_password.py:68
+#: Mailman/Commands/cmd_password.py:91 Mailman/Commands/cmd_password.py:117
+#: Mailman/Commands/cmd_set.py:149 Mailman/Commands/cmd_set.py:219
+#, fuzzy
+msgid "You are not a member of the %(listname)s mailing list"
+msgstr "%s «D¥»½×¾Â·|­û"
+
+#: Mailman/Commands/cmd_password.py:81 Mailman/Commands/cmd_password.py:107
+msgid ""
+"You did not give the correct old password, so your password has not been\n"
+"changed. Use the no argument version of the password command to retrieve "
+"your\n"
+"current password, then try again."
+msgstr ""
+
+#: Mailman/Commands/cmd_password.py:85 Mailman/Commands/cmd_password.py:111
+#, fuzzy
+msgid ""
+"\n"
+"Usage:"
+msgstr "¥Îªk¡G lists"
+
+#: Mailman/Commands/cmd_remove.py:17
+msgid "The `remove' command is synonymous with `unsubscribe'.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:26
+msgid ""
+"\n"
+" set ...\n"
+" Set or view your membership options.\n"
+"\n"
+" Use `set help' (without the quotes) to get a more detailed list of "
+"the\n"
+" options you can change.\n"
+"\n"
+" Use `set show' (without the quotes) to view your current option\n"
+" settings.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:37
+msgid ""
+"\n"
+" set help\n"
+" Show this detailed help.\n"
+"\n"
+" set show [address=<address>]\n"
+" View your current option settings. If you're posting from an "
+"address\n"
+" other than your membership address, specify your membership address\n"
+" with `address=<address>' (no brackets around the email address, and "
+"no\n"
+" quotes!).\n"
+"\n"
+" set authenticate <password> [address=<address>]\n"
+" To set any of your options, you must include this command first, "
+"along\n"
+" with your membership password. If you're posting from an address\n"
+" other than your membership address, specify your membership address\n"
+" with `address=<address>' (no brackets around the email address, and "
+"no\n"
+" quotes!).\n"
+"\n"
+" set ack on\n"
+" set ack off\n"
+" When the `ack' option is turned on, you will receive an\n"
+" acknowledgement message whenever you post a message to the list.\n"
+"\n"
+" set digest plain\n"
+" set digest mime\n"
+" set digest off\n"
+" When the `digest' option is turned off, you will receive postings\n"
+" immediately when they are posted. Use `set digest plain' if "
+"instead\n"
+" you want to receive postings bundled into a plain text digest\n"
+" (i.e. RFC 1153 digest). Use `set digest mime' if instead you want "
+"to\n"
+" receive postings bundled together into a MIME digest.\n"
+"\n"
+" set delivery on\n"
+" set delivery off\n"
+" Turn delivery on or off. This does not unsubscribe you, but "
+"instead\n"
+" tells Mailman not to deliver messages to you for now. This is "
+"useful\n"
+" if you're going on vacation. Be sure to use `set delivery on' when\n"
+" you return from vacation!\n"
+"\n"
+" set myposts on\n"
+" set myposts off\n"
+" Use `set myposts off' to not receive copies of messages you post to\n"
+" the list. This has no effect if you're receiving digests.\n"
+"\n"
+" set hide on\n"
+" set hide off\n"
+" Use `set hide on' to conceal your email address when people request\n"
+" the membership list.\n"
+"\n"
+" set duplicates on\n"
+" set duplicates off\n"
+" Use `set duplicates off' if you want Mailman to not send you "
+"messages\n"
+" if your address is explicitly mentioned in the To: or Cc: fields of\n"
+" the message. This can reduce the number of duplicate postings you\n"
+" will receive.\n"
+"\n"
+" set reminders on\n"
+" set reminders off\n"
+" Use `set reminders off' if you want to disable the monthly password\n"
+" reminder for this mailing list.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:122
+msgid "Bad set command: %(subcmd)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:151
+msgid "Your current option settings:"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:153 Mailman/Commands/cmd_set.py:191
+#: Mailman/Commands/cmd_set.py:194 Mailman/Commands/cmd_set.py:198
+#: Mailman/Commands/cmd_set.py:202
+msgid "off"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:153 Mailman/Commands/cmd_set.py:191
+#: Mailman/Commands/cmd_set.py:194 Mailman/Commands/cmd_set.py:198
+#: Mailman/Commands/cmd_set.py:202
+#, fuzzy
+msgid "on"
+msgstr "µL"
+
+#: Mailman/Commands/cmd_set.py:154
+msgid " ack %(onoff)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:169
+msgid "delivery on"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:171 Mailman/Commands/cmd_set.py:174
+#: Mailman/Commands/cmd_set.py:177 Mailman/Commands/cmd_set.py:181
+msgid "delivery off"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:172
+msgid "by you"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:175
+msgid "by the admin"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:178
+msgid "due to bounces"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:186
+msgid " %(status)s (%(how)s on %(date)s)"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:192
+msgid " myposts %(onoff)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:195
+msgid " hide %(onoff)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:199
+msgid " duplicates %(onoff)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:203
+msgid " reminders %(onoff)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:224
+#, fuzzy
+msgid "You did not give the correct password"
+msgstr "±K½X¿ù»~¡C"
+
+#: Mailman/Commands/cmd_set.py:236 Mailman/Commands/cmd_set.py:283
+msgid "Bad argument: %(arg)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:241 Mailman/Commands/cmd_set.py:261
+#, fuzzy
+msgid "Not authenticated"
+msgstr "ÅçÃÒ¤£¦¨¥\"
+
+#: Mailman/Commands/cmd_set.py:254
+#, fuzzy
+msgid "ack option set"
+msgstr "Áô±K³]©w"
+
+#: Mailman/Commands/cmd_set.py:286
+#, fuzzy
+msgid "digest option set"
+msgstr "­×§ï³]©w"
+
+#: Mailman/Commands/cmd_set.py:298
+msgid "delivery option set"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:310
+msgid "myposts option set"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:321
+msgid "hide option set"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:333
+#, fuzzy
+msgid "duplicates option set"
+msgstr "­×§ï³]©w"
+
+#: Mailman/Commands/cmd_set.py:345
+#, fuzzy
+msgid "reminder option set"
+msgstr "¤@¯ë³]©w"
+
+#: Mailman/Commands/cmd_stop.py:17
+msgid "stop is synonymous with the end command.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:17
+msgid ""
+"\n"
+" subscribe [password] [digest|nodigest] [address=<address>]\n"
+" Subscribe to this mailing list. Your password must be given to\n"
+" unsubscribe or change your options, but if you omit the password, "
+"one\n"
+" will be generated for you. You may be periodically reminded of "
+"your\n"
+" password.\n"
+"\n"
+" The next argument may be either: `nodigest' or `digest' (no "
+"quotes!).\n"
+" If you wish to subscribe an address other than the address you sent\n"
+" this request from, you may specify `address=<address>' (no brackets\n"
+" around the email address, and no quotes!)\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:61
+msgid "Bad digest specifier: %(arg)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:83
+msgid "No valid address found to subscribe"
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:92
+msgid ""
+"The email address you supplied is banned from this mailing list.\n"
+"If you think this restriction is erroneous, please contact the list\n"
+"owners at %(listowner)s."
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:98
+#, fuzzy
+msgid ""
+"Mailman won't accept the given email address as a valid address.\n"
+"(E.g. it must have an @ in it.)"
+msgstr ""
+"Mailman »{¬°±zªº email ¦a§}¿ù»~¡C\n"
+"(¬O¤£¬Oº|±¼¤F¤@­Ó @ ??? )"
+
+#: Mailman/Commands/cmd_subscribe.py:103
+msgid ""
+"Your subscription is not allowed because\n"
+"the email address you gave is insecure."
+msgstr ""
+"±zªº­q¾\¥Ó½Ð¤£³q¹L¡A¦]¬°±zµ¹ªº \n"
+"email ¦a§}¤£¦w¥þ¡C"
+
+#: Mailman/Commands/cmd_subscribe.py:108
+msgid "You are already subscribed!"
+msgstr "±z¤w¸g­q¾\¡I"
+
+#: Mailman/Commands/cmd_subscribe.py:112
+msgid "No one can subscribe to the digest of this list!"
+msgstr "¤£¥i¥HºK­n¼Ò¦¡­q¾\¦¹½×¾Â¡I"
+
+#: Mailman/Commands/cmd_subscribe.py:115
+msgid "This list only supports digest subscriptions!"
+msgstr "¥»½×¾Â¶È´£¨ÑºK­n·|­û­q¾\¡I"
+
+#: Mailman/Commands/cmd_subscribe.py:118
+msgid "A confirmation email has been sent separately."
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:120
+#, fuzzy
+msgid ""
+"Your subscription request has been forwarded to the list administrator\n"
+"at %(listowner)s for review."
+msgstr "±zªº­q¾\¥Ó½Ð¤wÂà°e %s ¾Â¥D¼f®Ö¡C"
+
+#: Mailman/Commands/cmd_subscribe.py:125
+#, fuzzy
+msgid "Subscription request succeeded."
+msgstr "­q¾\¥Ó½Ð"
+
+#: Mailman/Commands/cmd_unsubscribe.py:17
+msgid ""
+"\n"
+" unsubscribe [password] [address=<address>]\n"
+" Unsubscribe from the mailing list. If given, your password must "
+"match\n"
+" your current password. If omitted, a confirmation email will be "
+"sent\n"
+" to the unsubscribing address. If you wish to unsubscribe an address\n"
+" other than the address you sent this request from, you may specify\n"
+" `address=<address>' (no brackets around the email address, and no\n"
+" quotes!)\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_unsubscribe.py:62
+#, fuzzy
+msgid "%(address)s is not a member of the %(listname)s mailing list"
+msgstr "%s «D¥»½×¾Â·|­û"
+
+#: Mailman/Commands/cmd_unsubscribe.py:69
+#, fuzzy
+msgid ""
+"Your unsubscription request has been forwarded to the list administrator "
+"for\n"
+"approval."
+msgstr "±zªº­q¾\¥Ó½Ð¤wÂà°e %s ¾Â¥D¼f®Ö¡C"
+
+#: Mailman/Commands/cmd_unsubscribe.py:77
+msgid "A removal confirmation message has been sent."
+msgstr ""
+
+#: Mailman/Commands/cmd_unsubscribe.py:83
+#, fuzzy
+msgid "You gave the wrong password"
+msgstr "±K½X¿ù»~¡C"
+
+#: Mailman/Commands/cmd_unsubscribe.py:86
+#, fuzzy
+msgid "Unsubscription request succeeded."
+msgstr "­q¾\¥Ó½Ð"
+
+#: Mailman/Commands/cmd_who.py:29
+msgid ""
+"\n"
+" who\n"
+" See everyone who is on this mailing list.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_who.py:34
+msgid ""
+"\n"
+" who password [address=<address>]\n"
+" See everyone who is on this mailing list. The roster is limited to\n"
+" list members only, and you must supply your membership password to\n"
+" retrieve it. If you're posting from an address other than your\n"
+" membership address, specify your membership address with\n"
+" `address=<address>' (no brackets around the email address, and no\n"
+" quotes!)\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_who.py:44
+msgid ""
+"\n"
+" who password\n"
+" See everyone who is on this mailing list. The roster is limited to\n"
+" list administrators and moderators only; you must supply the list\n"
+" admin or moderator password to retrieve the roster.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_who.py:110
+#, fuzzy
+msgid "You are not allowed to retrieve the list membership."
+msgstr "±z¤£¬O½×¾Â¦¨­û¡C"
+
+#: Mailman/Commands/cmd_who.py:116
+msgid "This list has no members."
+msgstr ""
+
+#: Mailman/Commands/cmd_who.py:129
+#, fuzzy
+msgid "Non-digest (regular) members:"
+msgstr "«D-ºK­n·|­û¡G\n"
+
+#: Mailman/Commands/cmd_who.py:132
+#, fuzzy
+msgid "Digest members:"
+msgstr "ºK­n·|­û¡G\n"
+
+#: Mailman/Defaults.py:1159
+msgid "Traditional Chinese"
+msgstr ""
+
+#: Mailman/Defaults.py:1160
+msgid "Czech"
+msgstr ""
+
+#: Mailman/Defaults.py:1161
+msgid "German"
+msgstr ""
+
+#: Mailman/Defaults.py:1162
+msgid "English (USA)"
+msgstr "­^»y (USA)"
+
+#: Mailman/Defaults.py:1163
+msgid "Spanish (Spain)"
+msgstr "¦è¯Z¤ú»y (¦è¯Z¤ú)"
+
+#: Mailman/Defaults.py:1164
+msgid "Estonian"
+msgstr ""
+
+#: Mailman/Defaults.py:1165
+msgid "Finnish"
+msgstr ""
+
+#: Mailman/Defaults.py:1166
+msgid "French"
+msgstr ""
+
+#: Mailman/Defaults.py:1167
+msgid "Simplified Chinese"
+msgstr ""
+
+#: Mailman/Defaults.py:1168
+msgid "Hungarian"
+msgstr ""
+
+#: Mailman/Defaults.py:1169
+msgid "Italian"
+msgstr "¸q¤j§Q"
+
+#: Mailman/Defaults.py:1170
+msgid "Japanese"
+msgstr ""
+
+#: Mailman/Defaults.py:1171
+msgid "Korean"
+msgstr ""
+
+#: Mailman/Defaults.py:1172
+msgid "Norwegian"
+msgstr ""
+
+#: Mailman/Defaults.py:1173
+msgid "Russian"
+msgstr ""
+
+#: Mailman/Deliverer.py:42
+#, fuzzy
+msgid ""
+"Note: Since this is a list of mailing lists, administrative\n"
+"notices like the password reminder will be sent to\n"
+"your membership administrative address, %(addr)s."
+msgstr ""
+"³Æµù¡G¦]¬°³o¬O½×¾Âªº¤@Äýªí¡AºÞ²z¨Æ¶µ¦p\n"
+"±K½X´£¿ô¡A±N·|±H¨ì±zªº·|­ûºÞ²z¦a§}¡A%s¡C\n"
+
+#: Mailman/Deliverer.py:61
+msgid " (Digest mode)"
+msgstr " (ºK­n¼Ò¦¡)"
+
+#: Mailman/Deliverer.py:67
+#, fuzzy
+msgid "Welcome to the \"%(realname)s\" mailing list%(digmode)s"
+msgstr "Åwªï¥[¤J \"%s\" ³q«H½×¾Â %s"
+
+#: Mailman/Deliverer.py:76
+#, fuzzy
+msgid "You have been unsubscribed from the %(realname)s mailing list"
+msgstr "¦Û \"%s\" ½×¾Â¨ú®ø­q¾\"
+
+#: Mailman/Deliverer.py:103
+#, fuzzy
+msgid "%(listfullname)s mailing list reminder"
+msgstr "%s ³q«H½×¾Â´£¿ô"
+
+#: Mailman/Errors.py:115
+msgid "For some unknown reason"
+msgstr ""
+
+#: Mailman/Errors.py:121 Mailman/Errors.py:144
+msgid "Your message was rejected"
+msgstr "±zªº§ë®Ñ¤w¾D°h¦^"
+
+#: Mailman/Gui/Archive.py:25
+#, fuzzy
+msgid "Archiving Options"
+msgstr "ÂkÀɳ]©w"
+
+#: Mailman/Gui/Archive.py:31
+msgid "List traffic archival policies."
+msgstr "½×¾Â¬Fµ¦¡C"
+
+#: Mailman/Gui/Archive.py:34
+msgid "Archive messages?"
+msgstr "«H¥ó¬O§_ÂkÀÉ¡H"
+
+#: Mailman/Gui/Archive.py:36
+msgid "private"
+msgstr "«D¤½¶}"
+
+#: Mailman/Gui/Archive.py:36
+msgid "public"
+msgstr "¤½¶}"
+
+#: Mailman/Gui/Archive.py:37
+msgid "Is archive file source for public or private archival?"
+msgstr "ÂkÀÉ«H­n¤½¶}ÁÙ¬O¤£¤½¶}¡H"
+
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Monthly"
+msgstr "¨C¤ë"
+
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Quarterly"
+msgstr "¨C©u"
+
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Yearly"
+msgstr "¨C¦~"
+
+#: Mailman/Gui/Archive.py:41 Mailman/Gui/Digest.py:79
+msgid "Daily"
+msgstr "¨C¤é"
+
+#: Mailman/Gui/Archive.py:41 Mailman/Gui/Digest.py:79
+msgid "Weekly"
+msgstr "¨C¶g"
+
+#: Mailman/Gui/Archive.py:43
+msgid "How often should a new archive volume be started?"
+msgstr "«HÂkÀɪº¶g´Á¡H"
+
+#: Mailman/Gui/Autoresponse.py:31
+msgid "Auto-responder"
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:39
+msgid ""
+"Auto-responder characteristics.<p>\n"
+"\n"
+"In the text fields below, string interpolation is performed with\n"
+"the following key/value substitutions:\n"
+"<p><ul>\n"
+" <li><b>listname</b> - <em>gets the name of the mailing list</em>\n"
+" <li><b>listurl</b> - <em>gets the list's listinfo URL</em>\n"
+" <li><b>requestemail</b> - <em>gets the list's -request address</em>\n"
+" <li><b>owneremail</b> - <em>gets the list's -owner address</em>\n"
+"</ul>\n"
+"\n"
+"<p>For each text field, you can either enter the text directly into the "
+"text\n"
+"box, or you can specify a file on your local system to upload as the text."
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:55
+msgid ""
+"Should Mailman send an auto-response to mailing list\n"
+" posters?"
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:60
+msgid "Auto-response text to send to mailing list posters."
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:63
+msgid ""
+"Should Mailman send an auto-response to emails sent to the\n"
+" -owner address?"
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:68
+msgid "Auto-response text to send to -owner emails."
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:71
+msgid "Yes, w/discard"
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:71
+msgid "Yes, w/forward"
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:72
+msgid ""
+"Should Mailman send an auto-response to emails sent to the\n"
+" -request address? If you choose yes, decide whether you want\n"
+" Mailman to discard the original email, or forward it on to the\n"
+" system as a normal mail command."
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:79
+msgid "Auto-response text to send to -request emails."
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:82
+msgid ""
+"Number of days between auto-responses to either the mailing\n"
+" list or -request/-owner address from the same poster. Set to\n"
+" zero (or negative) for no grace period (i.e. auto-respond to\n"
+" every message)."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:26
+#, fuzzy
+msgid "Bounce processing"
+msgstr "°h«H³]©w"
+
+#: Mailman/Gui/Bounce.py:32
+msgid ""
+"These policies control the automatic bounce processing system\n"
+" in Mailman. Here's an overview of how it works.\n"
+"\n"
+" <p>When a bounce is received, Mailman tries to extract two "
+"pieces\n"
+" of information from the message: the address of the member the\n"
+" message was intended for, and the severity of the problem "
+"causing\n"
+" the bounce. The severity can be either <em>hard</em> or\n"
+" <em>soft</em> meaning either a fatal error occurred, or a\n"
+" transient error occurred. When in doubt, a hard severity is "
+"used.\n"
+"\n"
+" <p>If no member address can be extracted from the bounce, then "
+"the\n"
+" bounce is usually discarded. Otherwise, each member is assigned "
+"a\n"
+" <em>bounce score</em> and every time we encounter a bounce from\n"
+" this member we increment the score. Hard bounces increment by "
+"1\n"
+" while soft bounces increment by 0.5. We only increment the "
+"bounce\n"
+" score once per day, so even if we receive ten hard bounces from "
+"a\n"
+" member per day, their score will increase by only 1 for that "
+"day.\n"
+"\n"
+" <p>When a member's bounce score is greater than the\n"
+" <a href=\"?VARHELP=bounce/bounce_score_threshold\">bounce score\n"
+" threshold</a>, the subscription is disabled. Once disabled, "
+"the\n"
+" member will not receive any postings from the list until their\n"
+" membership is explicitly re-enabled (either by the list\n"
+" administrator or the user). However, they will receive "
+"occasional\n"
+" reminders that their membership has been disabled, and these\n"
+" reminders will include information about how to re-enable their\n"
+" membership.\n"
+"\n"
+" <p>You can control both the\n"
+" <a href=\"?VARHELP=bounce/bounce_you_are_disabled_warnings"
+"\">number\n"
+" of reminders</a> the member will receive and the\n"
+" <a href=\"?VARHELP=bounce/"
+"bounce_you_are_disabled_warnings_interval\"\n"
+" >frequency</a> with which these reminders are sent.\n"
+"\n"
+" <p>There is one other important configuration variable; after a\n"
+" certain period of time -- during which no bounces from the "
+"member\n"
+" are received -- the bounce information is\n"
+" <a href=\"?VARHELP=bounce/bounce_info_stale_after\">considered\n"
+" stale</a> and discarded. Thus by adjusting this value, and the\n"
+" score threshold, you can control how quickly bouncing members "
+"are\n"
+" disabled. You should tune both of these to the frequency and\n"
+" traffic volume of your list."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:75
+msgid "Bounce detection sensitivity"
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:78
+#, fuzzy
+msgid "Should Mailman perform automatic bounce processing?"
+msgstr "¬O§_»Ý­n Mailman ¦b·s»D¸s²Õ¤¤ <em>§ì«H</em>¡H"
+
+#: Mailman/Gui/Bounce.py:79
+msgid ""
+"By setting this value to <em>No</em>, you disable all\n"
+" automatic bounce processing for this list, however bounce\n"
+" messages will still be discarded so that the list "
+"administrator\n"
+" isn't inundated with them."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:85
+msgid ""
+"The maximum member bounce score before the member's\n"
+" subscription is disabled. This value can be a floating point\n"
+" number."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:90
+msgid ""
+"The number of days after which a member's bounce information\n"
+" is discarded, if no new bounces have been received in the\n"
+" interim. This value must be an integer."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:95
+msgid ""
+"How many <em>Your Membership Is Disabled</em> warnings a\n"
+" disabled member should get before their address is removed "
+"from\n"
+" the mailing list. Set to 0 to immediately remove an address "
+"from\n"
+" the list once their bounce score exceeds the threshold. This\n"
+" value must be an integer."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:102
+msgid ""
+"The number of days between sending the <em>Your Membership\n"
+" Is Disabled</em> warnings. This value must be an integer."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:105 Mailman/Gui/General.py:253
+msgid "Notifications"
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:109
+msgid ""
+"Should Mailman send you, the list owner, any bounce messages\n"
+" that failed to be detected by the bounce processor? <em>Yes</"
+"em>\n"
+" is recommended."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:112
+msgid ""
+"While Mailman's bounce detector is fairly robust, it's\n"
+" impossible to detect every bounce format in the world. You\n"
+" should keep this variable set to <em>Yes</em> for two reasons: "
+"1)\n"
+" If this really is a permanent bounce from one of your members,\n"
+" you should probably manually remove them from your list, and "
+"2)\n"
+" you might want to send the message on to the Mailman "
+"developers\n"
+" so that this new format can be added to its known set.\n"
+"\n"
+" <p>If you really can't be bothered, then set this variable to\n"
+" <em>No</em> and all non-detected bounces will be discarded\n"
+" without further processing.\n"
+"\n"
+" <p><b>Note:</b> This setting will also affect all messages "
+"sent\n"
+" to your list's -admin address. This address is deprecated and\n"
+" should never be used, but some people may still send mail to "
+"this\n"
+" address. If this happens, and this variable is set to\n"
+" <em>No</em> those messages too will get discarded. You may "
+"want\n"
+" to set up an\n"
+" <a href=\"?VARHELP=autoreply/autoresponse_admin_text"
+"\">autoresponse\n"
+" message</a> for email to the -owner and -admin address."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:135
+msgid ""
+"Should Mailman notify you, the list owner, when bounces\n"
+" cause a member's subscription to be disabled?"
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:137
+msgid ""
+"By setting this value to <em>No</em>, you turn off\n"
+" notification messages that are normally sent to the list "
+"owners\n"
+" when a member's delivery is disabled due to excessive bounces.\n"
+" An attempt to notify the member will always be made."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:144
+msgid ""
+"Should Mailman notify you, the list owner, when bounces\n"
+" cause a member to be unsubscribed?"
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:146
+msgid ""
+"By setting this value to <em>No</em>, you turn off\n"
+" notification messages that are normally sent to the list "
+"owners\n"
+" when a member is unsubscribed due to excessive bounces. An\n"
+" attempt to notify the member will always be made."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:173
+msgid ""
+"Bad value for <a href=\"?VARHELP=bounce/%(property)s\"\n"
+" >%(property)s</a>: %(val)s"
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:30
+msgid "Content&nbsp;filtering"
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:38
+#, fuzzy
+msgid "Policies concerning concerning the content of list traffic."
+msgstr "¤@¯ë½×¾Â«H¥óªº¬y¶qºÞ¨î¬Fµ¦¡C"
+
+#: Mailman/Gui/ContentFilter.py:41
+msgid ""
+"Should Mailman filter the content of list traffic according\n"
+" to the settings below?"
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:45
+msgid ""
+"Remove sections of messages that have a matching MIME\n"
+" type."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:48
+msgid ""
+"Use this option to remove each message section with a\n"
+" matching MIME type. Each line should contain a string naming "
+"a\n"
+" MIME <tt>type/subtype</tt>, e.g. <tt>image/gif</tt>. Leave "
+"off\n"
+" the subtype to remove all parts with a matching MIME major "
+"type,\n"
+" e.g. <tt>image</tt>. Blank lines are ignored.\n"
+"\n"
+" <p>After stripping message parts, any <tt>multipart</tt>\n"
+" attachment that is empty as a result is removed all together. "
+"If\n"
+" the outer part's MIME type matches one of the strip types, or "
+"if\n"
+" all of the outer part's subparts are stripped, then the whole\n"
+" message is discarded. Finally, each\n"
+" <tt>multipart/alternative</tt> section will be replaced by "
+"just\n"
+" the first alternative that is non-empty after the specified "
+"types\n"
+" have been removed."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:65
+msgid ""
+"Should Mailman convert <tt>text/html</tt> parts to plain\n"
+" text? This conversion happens after MIME attachments have "
+"been\n"
+" stripped."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:75
+msgid "Bad MIME type ignored: %(spectype)s"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:36
+#, fuzzy
+msgid "Digest options"
+msgstr "ºK­n-·|­û ³]©w"
+
+#: Mailman/Gui/Digest.py:44
+msgid "Batched-delivery digest characteristics."
+msgstr "ºK­nµo°e¿ï¶µ"
+
+#: Mailman/Gui/Digest.py:47
+msgid "Can list members choose to receive list traffic bunched in digests?"
+msgstr "·|­û¬O§_¥i¿ï¾Ü¥HºK­n¼Ò¦¡¦¬¨ì°h«H°O¿ý¡H"
+
+#: Mailman/Gui/Digest.py:51
+msgid "Digest"
+msgstr "ºK­n"
+
+#: Mailman/Gui/Digest.py:51
+msgid "Regular"
+msgstr "¤@¯ë"
+
+#: Mailman/Gui/Digest.py:52
+msgid "Which delivery mode is the default for new users?"
+msgstr "·s·|­ûªº¹w³]¦¬«H¼Ò¦¡¡H"
+
+#: Mailman/Gui/Digest.py:55
+msgid "MIME"
+msgstr "MIME"
+
+#: Mailman/Gui/Digest.py:55
+msgid "Plain"
+msgstr "¯Â¤å¦r"
+
+#: Mailman/Gui/Digest.py:56
+msgid "When receiving digests, which format is default?"
+msgstr "±z§Æ±æ¦¬¨ì­þ¤@ºØ®æ¦¡ªººK­n¡H"
+
+#: Mailman/Gui/Digest.py:59
+msgid "How big in Kb should a digest be before it gets sent out?"
+msgstr "ºK­n¤j¤p(Kb¡A²Ö¿n«H¥ó¶W¹L¦¹­È¤~µo°eºK­n)?"
+
+#: Mailman/Gui/Digest.py:63
+msgid ""
+"Should a digest be dispatched daily when the size threshold isn't reached?"
+msgstr "·íºK­n¤j¤p¥¼¹FªùÂe®É¡A¬O§_¤´¶·¨C¤éµo°eºK­n¡H"
+
+#: Mailman/Gui/Digest.py:67
+msgid "Header added to every digest"
+msgstr "¨C«ÊºK­nªº¼ÐÀY"
+
+#: Mailman/Gui/Digest.py:68
+msgid ""
+"Text attached (as an initial message, before the table of contents) to the "
+"top of digests. "
+msgstr "ªþ¥[¦bºK­n«e­±ªº¤å¦r (·í§@ºK­nªº¶}³õ¥Õ¡A¦b¤º®e¦Cªí«e­±)"
+
+#: Mailman/Gui/Digest.py:73
+msgid "Footer added to every digest"
+msgstr "¥[¦b¨C«ÊºK­nªºµù¸}"
+
+#: Mailman/Gui/Digest.py:74
+msgid "Text attached (as a final message) to the bottom of digests. "
+msgstr "ºK­n«H§À(§@¬°³Ì«á°T®§)ªº¤å¦r"
+
+#: Mailman/Gui/Digest.py:80
+#, fuzzy
+msgid "How often should a new digest volume be started?"
+msgstr "«HÂkÀɪº¶g´Á¡H"
+
+#: Mailman/Gui/Digest.py:81
+msgid ""
+"When a new digest volume is started, the volume number is\n"
+" incremented and the issue number is reset to 1."
+msgstr ""
+
+#: Mailman/Gui/Digest.py:85
+msgid "Should Mailman start a new digest volume?"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:86
+msgid ""
+"Setting this option instructs Mailman to start a new volume\n"
+" with the next digest sent out."
+msgstr ""
+
+#: Mailman/Gui/Digest.py:90
+msgid ""
+"Should Mailman send the next digest right now, if it is not\n"
+" empty?"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:145
+msgid ""
+"The next digest will be sent as volume\n"
+" %(volume)s, number %(number)s"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:150
+msgid "A digest has been sent."
+msgstr ""
+
+#: Mailman/Gui/Digest.py:152
+#, fuzzy
+msgid "There was no digest to send."
+msgstr "¨S¦³«Ý³B²zªº­n¨D¡C"
+
+#: Mailman/Gui/GUIBase.py:149
+msgid "Invalid value for variable: %(property)s"
+msgstr ""
+
+#: Mailman/Gui/GUIBase.py:153
+msgid "Bad email address for option %(property)s: %(val)s"
+msgstr ""
+
+#: Mailman/Gui/GUIBase.py:179
+msgid ""
+"The following illegal substitution variables were\n"
+" found in the <code>%(property)s</code> string:\n"
+" <code>%(bad)s</code>\n"
+" <p>Your list may not operate properly until you correct "
+"this\n"
+" problem."
+msgstr ""
+
+#: Mailman/Gui/GUIBase.py:193
+msgid ""
+"Your <code>%(property)s</code> string appeared to\n"
+" have some correctable problems in its new value.\n"
+" The fixed value will be used instead. Please\n"
+" double check that this is what you intended.\n"
+" "
+msgstr ""
+
+#: Mailman/Gui/General.py:32
+msgid "General Options"
+msgstr "¤@¯ë³]©w"
+
+#: Mailman/Gui/General.py:46
+#, fuzzy
+msgid "Conceal the member's address"
+msgstr "·|­û¦a§}"
+
+#: Mailman/Gui/General.py:47
+msgid "Acknowledge the member's posting"
+msgstr ""
+
+#: Mailman/Gui/General.py:48
+msgid "Do not send a copy of a member's own post"
+msgstr ""
+
+#: Mailman/Gui/General.py:50
+msgid "Filter out duplicate messages to list members (if possible)"
+msgstr ""
+
+#: Mailman/Gui/General.py:57
+#, fuzzy
+msgid ""
+"Fundamental list characteristics, including descriptive\n"
+" info and basic behaviors."
+msgstr "½×¾Â°ò¥»¸ê®Æ¡A¥]¬A»¡©ú»P¤½¥¬ªº¸ê°T¡C"
+
+#: Mailman/Gui/General.py:60
+#, fuzzy
+msgid "General list personality"
+msgstr "½×¾Â²¤¶ºô­¶"
+
+#: Mailman/Gui/General.py:63
+msgid "The public name of this list (make case-changes only)."
+msgstr "¦¹½×¾Âªº¤½¶}¦WºÙ (¶È·|Åܧó¤j¤p¼g)¡C"
+
+#: Mailman/Gui/General.py:64
+#, fuzzy
+msgid ""
+"The capitalization of this name can be changed to make it\n"
+" presentable in polite company as a proper noun, or to make an\n"
+" acronym part all upper case, etc. However, the name will be\n"
+" advertised as the email address (e.g., in subscribe "
+"confirmation\n"
+" notices), so it should <em>not</em> be otherwise altered. "
+"(Email\n"
+" addresses are not case sensitive, but they are sensitive to\n"
+" almost everything else :-)"
+msgstr ""
+"¦WºÙªº¤j¤p¼g¥i¯à³Q­×§ï¬°²Å¦X¤@¯ë¥Î»y¡A©ÎªÌ»¡±N²Ä¤@­Ó¦r¥ÀÂର¤j¼g¡Aµ¥µ¥¡C¸Ó¦W"
+"ºÙ¥Î¦b email ¦a§}(¨Ò¦p¡A­q¾\½T»{´£¥Ü)®É±N<em>¤£</em> ·|¥Î¨ä¥L¤èªk´À´«¡C"
+"(Email ¦a§}¤j¤p¼gµLÃö¡A¨ä¾lªº´X¥G³£¦³Ãö«Y:-)"
+
+#: Mailman/Gui/General.py:73
+#, fuzzy
+msgid ""
+"The list administrator email addresses. Multiple\n"
+" administrator addresses, each on separate line is okay."
+msgstr "¾Â¥D email - ¥i¥H¦P®É«ü¬£¼Æ¦ì¾Â¥D(¨C­Ó¾Â¥D email ¥H³æ¿W¤@¦æ°Ï¹j)¡C"
+
+#: Mailman/Gui/General.py:76
+msgid ""
+"There are two ownership roles associated with each mailing\n"
+" list. The <em>list administrators</em> are the people who "
+"have\n"
+" ultimate control over all parameters of this mailing list. "
+"They\n"
+" are able to change any list configuration variable available\n"
+" through these administration web pages.\n"
+"\n"
+" <p>The <em>list moderators</em> have more limited permissions;\n"
+" they are not able to change any list configuration variable, "
+"but\n"
+" they are allowed to tend to pending administration requests,\n"
+" including approving or rejecting held subscription requests, "
+"and\n"
+" disposing of held postings. Of course, the <em>list\n"
+" administrators</em> can also tend to pending requests.\n"
+"\n"
+" <p>In order to split the list ownership duties into\n"
+" administrators and moderators, you must\n"
+" <a href=\"passwords\">set a separate moderator password</a>,\n"
+" and also provide the <a href=\"?VARHELP=general/moderator"
+"\">email\n"
+" addresses of the list moderators</a>. Note that the field you\n"
+" are changing here specifies the list administators."
+msgstr ""
+
+#: Mailman/Gui/General.py:97
+#, fuzzy
+msgid ""
+"The list moderator email addresses. Multiple\n"
+" moderator addresses, each on separate line is okay."
+msgstr "¾Â¥D email - ¥i¥H¦P®É«ü¬£¼Æ¦ì¾Â¥D(¨C­Ó¾Â¥D email ¥H³æ¿W¤@¦æ°Ï¹j)¡C"
+
+#: Mailman/Gui/General.py:100
+msgid ""
+"There are two ownership roles associated with each mailing\n"
+" list. The <em>list administrators</em> are the people who "
+"have\n"
+" ultimate control over all parameters of this mailing list. "
+"They\n"
+" are able to change any list configuration variable available\n"
+" through these administration web pages.\n"
+"\n"
+" <p>The <em>list moderators</em> have more limited permissions;\n"
+" they are not able to change any list configuration variable, "
+"but\n"
+" they are allowed to tend to pending administration requests,\n"
+" including approving or rejecting held subscription requests, "
+"and\n"
+" disposing of held postings. Of course, the <em>list\n"
+" administrators</em> can also tend to pending requests.\n"
+"\n"
+" <p>In order to split the list ownership duties into\n"
+" administrators and moderators, you must\n"
+" <a href=\"passwords\">set a separate moderator password</a>,\n"
+" and also provide the email addresses of the list moderators in\n"
+" this section. Note that the field you are changing here\n"
+" specifies the list moderators."
+msgstr ""
+
+#: Mailman/Gui/General.py:121
+msgid "A terse phrase identifying this list."
+msgstr "ÃѧO¥»½×¾ÂªºÁY¼g"
+
+#: Mailman/Gui/General.py:123
+#, fuzzy
+msgid ""
+"This description is used when the mailing list is listed with\n"
+" other mailing lists, or in headers, and so forth. It "
+"should\n"
+" be as succinct as you can get it, while still identifying "
+"what\n"
+" the list is."
+msgstr ""
+"³o¸Ìªº±Ô­z¥Î©ó·í½×¾Â¦W¦C¨ä¥L½×¾Â¤¤©Î¦b¼ÐÃD¤¤¡A½Ñ¦p¦¹Ãþ¡C±Ô­zÀ³¶V²¼ä¶V¦n¡A¥u"
+"­n¯àÃѧO¥¦¬O¤@­Ó½×¾Â§Y¥i¡C"
+
+#: Mailman/Gui/General.py:129
+#, fuzzy
+msgid ""
+"An introductory description - a few paragraphs - about the\n"
+" list. It will be included, as html, at the top of the "
+"listinfo\n"
+" page. Carriage returns will end a paragraph - see the details\n"
+" for more info."
+msgstr ""
+"Ãö©ó¦¹½×¾ÂªºÂ²¤¶»¡©ú¡C¿é¤J¤å¦r±N¥H html ªº®æ¦¡¥]§t¦b½×¾Â²¤¶ºô­¶ªº³Ì«e­±¡C "
+"Return ¥Î©ó¹º¤À¬q¸¨ - ¸Ô±¡½Ð°Ñ¦Ò²Ó¸`¡C"
+
+#: Mailman/Gui/General.py:133
+#, fuzzy
+msgid ""
+"The text will be treated as html <em>except</em> that\n"
+" newlines will be translated to &lt;br&gt; - so you can use "
+"links,\n"
+" preformatted text, etc, but don't put in carriage returns "
+"except\n"
+" where you mean to separate paragraphs. And review your changes "
+"-\n"
+" bad html (like some unterminated HTML constructs) can prevent\n"
+" display of the entire listinfo page."
+msgstr ""
+"³o¨Ç¤å¦r±Nµø¬° html <em>°£¤F</em>·s¦æ¦r¤¸¡A·s¦æ¦r¤¸±N³QÂର &lt;br&gt; - ©Ò¥H"
+"±z¥i¥H¨Ï¥Î¶W³sµ²¡A®æ¦¡¤Æªº¤å¦r ... µ¥µ¥¡A¦ý½Ð¤Å¿é¤J return ¡A°£«D±z¯uªº·Q¤À¬q"
+"¸¨¡C¨Ã¥B¼fµø±zÅܧó«áªº¤å¥ó - ¤£§¹¾ãªº html ®æ¦¡(¨Ò¦p¤£¦¨¹ïªº HTML ¼ÐÅÒ) ±N³y"
+"¦¨½×¾Â²¤¶ºô­¶µLªk¥¿±`Åã¥Ü¡C"
+
+#: Mailman/Gui/General.py:141
+msgid "Prefix for subject line of list postings."
+msgstr "½×¾Â«H¥ó¥DÃD«e¸m¤å¦r"
+
+#: Mailman/Gui/General.py:142
+#, fuzzy
+msgid ""
+"This text will be prepended to subject lines of messages\n"
+" posted to the list, to distinguish mailing list messages in in\n"
+" mailbox summaries. Brevity is premium here, it's ok to "
+"shorten\n"
+" long mailing list names to something more concise, as long as "
+"it\n"
+" still identifies the mailing list."
+msgstr ""
+" ¿é¤J¤å¦r±N¥[¦b§ë®Ñ«H¥óªº¥DÃD¤§«e¡A¥H«K¦b«H½cºK­n¤¤¤@²´´N»{¥X³q«H½×¾Âªº«H¥ó¡C"
+"¦¹³B²¼ä³Ì­«­n¡A¥i¥H±N½×¾Â¦WºÙ¥ÎÁY¼gªí¥Ü¡A¥u­n¨¬¥H¿ë§O§Y¥i¡C"
+
+#: Mailman/Gui/General.py:148
+#, fuzzy
+msgid "<tt>Reply-To:</tt> header munging"
+msgstr "©ú½T <tt>Reply-To:</tt> ¼ÐÃD¡C"
+
+#: Mailman/Gui/General.py:151
+msgid ""
+"Should any existing <tt>Reply-To:</tt> header found in the\n"
+" original message be stripped? If so, this will be done\n"
+" regardless of whether an explict <tt>Reply-To:</tt> header is\n"
+" added by Mailman or not."
+msgstr ""
+
+#: Mailman/Gui/General.py:157
+msgid "Explicit address"
+msgstr "©ú½T¦a§}"
+
+#: Mailman/Gui/General.py:157
+msgid "Poster"
+msgstr "§ë®ÑªÌ"
+
+#: Mailman/Gui/General.py:157
+msgid "This list"
+msgstr "¦¹½×¾Â"
+
+#: Mailman/Gui/General.py:158
+#, fuzzy
+msgid ""
+"Where are replies to list messages directed?\n"
+" <tt>Poster</tt> is <em>strongly</em> recommended for most "
+"mailing\n"
+" lists."
+msgstr ""
+"½×¾Â«H¥óªº¦^«H¤H­n¶ñ½Ö¡H ¹ï¤j³¡¤Àªº½×¾Â¦Ó¨¥¡A<em>±j¯P</em>«ØÄ³¥H<tt>±H«H¤H</"
+"tt>§@¬°½×¾Âµo¥X«H¥óªº¦^«H¤H¡C"
+
+#: Mailman/Gui/General.py:163
+#, fuzzy
+msgid ""
+"This option controls what Mailman does to the\n"
+" <tt>Reply-To:</tt> header in messages flowing through this\n"
+" mailing list. When set to <em>Poster</em>, no <tt>Reply-To:</"
+"tt>\n"
+" header is added by Mailman, although if one is present in the\n"
+" original message, it is not stripped. Setting this value to\n"
+" either <em>This list</em> or <em>Explicit address</em> causes\n"
+" Mailman to insert a specific <tt>Reply-To:</tt> header in all\n"
+" messages, overriding the header in the original message if\n"
+" necessary (<em>Explicit address</em> inserts the value of <a\n"
+" href=\"?VARHELP=general/reply_to_address\">reply_to_address</"
+"a>).\n"
+" \n"
+" <p>There are many reasons not to introduce or override the\n"
+" <tt>Reply-To:</tt> header. One is that some posters depend on\n"
+" their own <tt>Reply-To:</tt> settings to convey their valid\n"
+" return address. Another is that modifying <tt>Reply-To:</tt>\n"
+" makes it much more difficult to send private replies. See <a\n"
+" href=\"http://www.unicom.com/pw/reply-to-harmful.html\">`Reply-"
+"To'\n"
+" Munging Considered Harmful</a> for a general discussion of "
+"this\n"
+" issue. See <a\n"
+" href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml"
+"\">Reply-To\n"
+" Munging Considered Useful</a> for a dissenting opinion.\n"
+"\n"
+" <p>Some mailing lists have restricted posting privileges, with "
+"a\n"
+" parallel list devoted to discussions. Examples are `patches' "
+"or\n"
+" `checkin' lists, where software changes are posted by a "
+"revision\n"
+" control system, but discussion about the changes occurs on a\n"
+" developers mailing list. To support these types of mailing\n"
+" lists, select <tt>Explicit address</tt> and set the\n"
+" <tt>Reply-To:</tt> address below to point to the parallel\n"
+" list."
+msgstr ""
+"¥»³]©w²o¯A¨ì Mailman ¹ï¥»½×¾Â¹ï¦^«H¦a§} <tt>Reply-To:</tt> ªº±±¨î¡C\n"
+"·í³]©w¬° <em>§ë®ÑªÌ</em>, Mailman ¤£·|¥[¤W <tt>Reply-To:</tt> ¼ÐÃD¡A\n"
+"°²¨Ï§ë®Ñ«H¥ó¦³ <tt>Reply-To:</tt> ¼ÐÃD¡AMailman ·|«O¯d­ì¦^«H¦a§} ¡C\n"
+"­Y³]©w¬° <em>¥»½×¾Â</em> ©Î <em>©ú½T¦a§}</em> Mailman ·|¦b©Ò¦³\n"
+"«H¥ó¥[¤W¯S©wªº <tt>Reply-To:</tt> ¦^«H¦a§} ¡A\n"
+"¦pªG¦³»Ý­n¥i¥HÅܧó¦^«H¦a§} (<em>©ú½T¦a§}</em> \n"
+"¨ì¤U­±ªº³sµ²¶ñ¤W<a href=\"?VARHELP=general/reply_to_address\">¦^«H¦a§} </"
+"a>)¡C\n"
+" \n"
+"<p>°ò©ó³\¦h­ì¦]¡A§Ú­Ì¤£«ØÄ³±z§ó´« <tt>Reply-To:</tt> ªº¤º®e¡C\n"
+"¨ä¤@¬O¦³¨Ç§ë®Ñ¥Á²³¨Ì¿à¦Û¤vªº <tt>Reply-To:</tt> ¨Ó³]©w¥L­Ì¥¿\n"
+"½Tªº¦^«H¦a§}¡C ¨ä¤G¬O­×§ï <tt>Reply-To:</tt> ¤£©ö¦^ÂШp¤H«H¥ó¡C\n"
+"½Ð°Ñ¦Ò <a href=\"http://www.unicom.com/pw/reply-to-harmful.html\">`Reply-To' "
+"Munging\n"
+"Considered Harmful</a> ¡A³o¸Ì¦³³o­ÓÃD¥Ø¶i¤@¨Bªº°Q½×¡C ½Ð¨ì <a\n"
+"href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml\">Reply-To\n"
+"Munging Considered Useful</a> µoªí±zªº·N¨£¡C\n"
+"\n"
+"<p>¬Y¨Ç¥­¦æ½×¾Â(¦P®É¨Ï¥Î¨â­Ó½×¾Â)·|­­¨î§ë®ÑªÌªº¸ê®æ¡C\n"
+"¦p `patches' ©Î `checkin' ½×¾Â¡A¨ä³nÅéÅܧóµo§G¥Ñ RCS ¦Û°Ê±H¥X\n"
+"¡A¦ý¬O¨ä°Q½×°Ï«o¦b¶}µoªÌ½×¾Â¡C±ý¤ä´©¦¹ºØ«¬ºAªº³q«H½×¾Â®É\n"
+"¡A½Ð¿ï¾Ü <tt>©ú½T¦a§}</tt> ¨Ã±N <tt>Reply-To:</tt> ªº³]©w\n"
+"«ü¦V¥­¦æªº½×¾Â¡C"
+
+#: Mailman/Gui/General.py:195
+msgid "Explicit <tt>Reply-To:</tt> header."
+msgstr "©ú½T <tt>Reply-To:</tt> ¼ÐÃD¡C"
+
+#: Mailman/Gui/General.py:197
+#, fuzzy
+msgid ""
+"This is the address set in the <tt>Reply-To:</tt> header\n"
+" when the <a\n"
+" href=\"?VARHELP=general/reply_goes_to_list"
+"\">reply_goes_to_list</a>\n"
+" option is set to <em>Explicit address</em>.\n"
+"\n"
+" <p>There are many reasons not to introduce or override the\n"
+" <tt>Reply-To:</tt> header. One is that some posters depend on\n"
+" their own <tt>Reply-To:</tt> settings to convey their valid\n"
+" return address. Another is that modifying <tt>Reply-To:</tt>\n"
+" makes it much more difficult to send private replies. See <a\n"
+" href=\"http://www.unicom.com/pw/reply-to-harmful.html\">`Reply-"
+"To'\n"
+" Munging Considered Harmful</a> for a general discussion of "
+"this\n"
+" issue. See <a\n"
+" href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml"
+"\">Reply-To\n"
+" Munging Considered Useful</a> for a dissenting opinion.\n"
+"\n"
+" <p>Some mailing lists have restricted posting privileges, with "
+"a\n"
+" parallel list devoted to discussions. Examples are `patches' "
+"or\n"
+" `checkin' lists, where software changes are posted by a "
+"revision\n"
+" control system, but discussion about the changes occurs on a\n"
+" developers mailing list. To support these types of mailing\n"
+" lists, specify the explicit <tt>Reply-To:</tt> address here. "
+"You\n"
+" must also specify <tt>Explicit address</tt> in the\n"
+" <tt>reply_goes_to_list</tt>\n"
+" variable.\n"
+"\n"
+" <p>Note that if the original message contains a\n"
+" <tt>Reply-To:</tt> header, it will not be changed."
+msgstr ""
+"³o¬O <tt>Reply-To:</tt> ¼ÐÃDªº³]©w­È\n"
+"·í <a href=\"?VARHELP=general/reply_goes_to_list\">¦^«H¨ì½×¾Â</a>\n"
+"³]©w¬° <em>©ú½T¦a§}</em>¡C\n"
+"\n"
+"<p>°ò©ó³\¦h­ì¦]¡A§Ú­Ì¤£«ØÄ³±z§ó´««H¥ó <tt>Reply-To:</tt>ªº¼ÐÃD¡C\n"
+"¨ä¤@¬O¦³¨Ç§ë®Ñ¥Á²³¨Ì¿à¦Û¤vªº <tt>Reply-To:</tt> ¨Ó³]©w¥L­Ì¥¿\n"
+"½Tªº¦^«H¦a§}¡C ¨ä¤G¬O­×§ï <tt>Reply-To:</tt> ¤£©ö¦^ÂШp¤H«H¥ó¡C\n"
+"½Ð°Ñ¦Ò <a href=\"http://www.unicom.com/pw/reply-to-harmful.html\">`Reply-To' "
+"Munging\n"
+"Considered Harmful</a> ¡A³o¸Ì¦³³o­ÓÃD¥Ø¶i¤@¨Bªº°Q½×¡C ½Ð¨ì <a\n"
+"href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml\">Reply-To\n"
+"Munging Considered Useful</a> µoªí±zªº·N¨£¡C\n"
+"\n"
+"<p>¬Y¨Ç¥­¦æ½×¾Â(¦P®É¨Ï¥Î¨â­Ó½×¾Â)·|­­¨î§ë®ÑªÌªº¸ê®æ¡C\n"
+"¦p `patches' ©Î `checkin' ½×¾Â¡A¨ä³nÅéÅܧóµo§G¥Ñ RCS ¦Û°Ê±H¥X\n"
+"¡A¦ý¬O¨ä°Q½×°Ï«o¦b¶}µoªÌ½×¾Â¡C±ý¤ä´©¦¹ºØ«¬ºAªº³q«H½×¾Â®É\n"
+"¡A½Ð±N <tt>¦^«H¨ì½×¾Â</tt> ³]©w¬° <tt>©ú½T¦a§}</tt> ¡A\n"
+"¨Ã±N <tt>Reply-To:</tt> ªº³]©w«ü¦V¥­¦æªº½×¾Â¡C\n"
+"<p>µù¡G­Y­ì«H¥ó¤w«ü©w <tt>Reply-To:</tt> ¼ÐÃD¡A\n"
+"«h¤£°µÅܧó¡C"
+
+#: Mailman/Gui/General.py:226
+msgid "Umbrella list settings"
+msgstr ""
+
+#: Mailman/Gui/General.py:229
+#, fuzzy
+msgid ""
+"Send password reminders to, eg, \"-owner\" address instead of\n"
+" directly to user."
+msgstr "±N±K½X´£¿ô«H±H¨ì¡A¨Ò¦p¡A\"-owner\" ¦a§}¦Ó«Dª½±µ±Hµ¹¨Ï¥ÎªÌ¡C"
+
+#: Mailman/Gui/General.py:232
+#, fuzzy
+msgid ""
+"Set this to yes when this list is intended to cascade only\n"
+" to other mailing lists. When set, meta notices like\n"
+" confirmations and password reminders will be directed to an\n"
+" address derived from the member's address - it will have the\n"
+" value of \"umbrella_member_suffix\" appended to the member's\n"
+" account name."
+msgstr ""
+"­Y¥»½×¾Â¶È¨Ñ¦ê³s¨ä¥L³q«H½×¾Â¤§¥Î¡A½Ð³]©w¬° '¬O' ¡C·í³]©w¤§«á¡AºÞ²z«H¥ó¦p¡G½T"
+"»{«H¡B±K½X´£¿ô±N³QÂà±H¨ì­q¾\·|­û¦a§}ªº­l¥Í¦a§} - ¸Ó¦a§}À³¬°­q¾\·|­û¦a§}¥[¤W"
+"\"umbrella_member_suffix\" ªº³]©w­È¡C"
+
+#: Mailman/Gui/General.py:240
+#, fuzzy
+msgid ""
+"Suffix for use when this list is an umbrella for other\n"
+" lists, according to setting of previous \"umbrella_list\"\n"
+" setting."
+msgstr ""
+"®Ú¾Ú¤§«e \"¾ðª¬½×¾Â\" ªº³]©w­È¡A·í¥»½×¾Â§@¬°¾ðª¬½×¾Âªº¤À¤ä®Éªº©µ¦ùªþ¥[¦r§À"
+
+#: Mailman/Gui/General.py:244
+#, fuzzy
+msgid ""
+"When \"umbrella_list\" is set to indicate that this list has\n"
+" other mailing lists as members, then administrative notices "
+"like\n"
+" confirmations and password reminders need to not be sent to "
+"the\n"
+" member list addresses, but rather to the owner of those member\n"
+" lists. In that case, the value of this setting is appended to\n"
+" the member's account name for such notices. `-owner' is the\n"
+" typical choice. This setting has no effect when \"umbrella_list"
+"\"\n"
+" is \"No\"."
+msgstr ""
+"·í³]©w\"¾ðª¬½×¾Â\"®É´N¥Nªí¸Ó½×¾Â¾Ö¦³¨ä¥L³q«H½×¾Â¬°¨ä·|­û¡A¦]¦¹ºÞ²zªº´£¿ô¶l¥ó"
+"¦p½T»{«H¡B±K½X´£¿ô¤£¥i¥Hª½±µ±Hµ¹¨ä¥L³q«H½×¾Â¡C¹J¨ì³oºØ±¡§Î®É¡A¥»³]©w·|¥[¦b­q"
+"¾\±b¸¹¤§«á¥Î¨Ó¦¬«e­zªººÞ²z«H¥ó¡C'-owner' ´N¬O¨å«¬ªº½d¨Ò¡C­Y\"¾ðª¬½×¾Â\"³]©w¬°"
+"\"§_\"ªº¸Ü¡A«h¥»¶µ³]©wµL®Ä¡C"
+
+#: Mailman/Gui/General.py:256
+#, fuzzy
+msgid "Send monthly password reminders?"
+msgstr "­n¤£­n¨C¤ë±H¥X´£¿ô±K½X¡H Åܧ󤧫eªº³]©w¡C"
+
+#: Mailman/Gui/General.py:258
+msgid ""
+"Turn this on if you want password reminders to be sent once\n"
+" per month to your members. Note that members may disable "
+"their\n"
+" own individual password reminders."
+msgstr ""
+
+#: Mailman/Gui/General.py:263
+#, fuzzy
+msgid ""
+"List-specific text prepended to new-subscriber welcome\n"
+" message"
+msgstr "¥»½×¾Â·s·|­ûÅwªï«H¥óªºªþ¥[°T®§"
+
+#: Mailman/Gui/General.py:266
+#, fuzzy
+msgid ""
+"This value, if any, will be added to the front of the\n"
+" new-subscriber welcome message. The rest of the welcome "
+"message\n"
+" already describes the important addresses and URLs for the\n"
+" mailing list, so you don't need to include any of that kind of\n"
+" stuff here. This should just contain mission-specific kinds "
+"of\n"
+" things, like etiquette policies or team orientation, or that "
+"kind\n"
+" of thing.\n"
+"\n"
+" <p>Note that this text will be wrapped, according to the\n"
+" following rules:\n"
+" <ul><li>Each paragraph is filled so that no line is longer "
+"than\n"
+" 70 characters.\n"
+" <li>Any line that begins with whitespace is not filled.\n"
+" <li>A blank line separates paragraphs.\n"
+" </ul>"
+msgstr ""
+"¿é¤J¤å¦r±N¥[¦b·s·|­ûÅwªï«H¥ó¤§«e¡AÅwªï«H¥ó¨ä¾lªº³¡¤À±N»¡©ú¸Ó½×¾Â¬ÛÃöªº­«­n¦a"
+"§}¤Î URL¡A©Ò¥H¤£»Ý­n¿é¤J¦¹Ãþ¸ê°T¡CÀ³¸Ó¿é¤J¥ô°È©Ê½è¤§Ãþªº°T®§¡A¦p§¸`³W½d©ÎªÌ"
+"¹Î¶¤¤è°w©Î½Ñ¦p¦¹Ãþªº¨Æ±¡¡C"
+
+#: Mailman/Gui/General.py:283
+#, fuzzy
+msgid "Send welcome message to newly subscribed members?"
+msgstr "·í¦³·s·|­û¥[¤J®É¡A¬O§_±HµoÅwªï«H¡H"
+
+#: Mailman/Gui/General.py:284
+#, fuzzy
+msgid ""
+"Turn this off only if you plan on subscribing people manually\n"
+" and don't want them to know that you did so. This option is "
+"most\n"
+" useful for transparently migrating lists from some other "
+"mailing\n"
+" list manager to Mailman."
+msgstr ""
+"­Y­q¾\®É¤£·Qµo¥X³qª¾«H¡A½Ð¥´¶}¦¹¥\¯à¡C³q±`¥Î©ó±N²{¦æªº alias Âର Mailman ºÞ"
+"²zªº¤j¶q­q¾\®É¡C"
+
+#: Mailman/Gui/General.py:290
+#, fuzzy
+msgid ""
+"Text sent to people leaving the list. If empty, no special\n"
+" text will be added to the unsubscribe message."
+msgstr "¥»½×¾Â·|­û°h­qªº°T®§¡C­YªÅ¥Õ¡A«h°h­q°T®§¤£·|¦³ÃB¥~ªº°T®§¡C"
+
+#: Mailman/Gui/General.py:294
+#, fuzzy
+msgid "Send goodbye message to members when they are unsubscribed?"
+msgstr "·í¦³·s·|­û¥[¤J®É¡A¬O§_±HµoÅwªï«H¡H"
+
+#: Mailman/Gui/General.py:297
+#, fuzzy
+msgid ""
+"Should the list moderators get immediate notice of new\n"
+" requests, as well as daily notices about collected ones?"
+msgstr "·í¦³¥Ó½Ð®Ö­ã®×¥ó®É¡A¾Â¥DÀ³¥ß§Y¦¬¨ì³qª¾¡AÁÙ¬O¨C¤é¦¬¶°«á¦A±H¥X³qª¾¡H"
+
+#: Mailman/Gui/General.py:300
+#, fuzzy
+msgid ""
+"List moderators (and list administrators) are sent daily\n"
+" reminders of requests pending approval, like subscriptions to "
+"a\n"
+" moderated list, or postings that are being held for one reason "
+"or\n"
+" another. Setting this option causes notices to be sent\n"
+" immediately on the arrival of new requests as well."
+msgstr ""
+"­Y½×¾Â¦³«Ý®Ö­ã¤§®×¥ó¾Â¥D¨C¤Ñ±N·|¦¬¨ì´£¿ôªº«H¥ó¡A¨Ò¦p­q¾\¥Ó½Ð©Î¬O¯d¸m«H¥ó³B"
+"¸m¡C¥´¶}¦¹¶µ³]©w«á¡A­Y¦³«Ýµô¨Mªº®×¥ó¡A¾Â¥D¤]·|¥ß¨è¦¬¨ì³qª¾¡C"
+
+#: Mailman/Gui/General.py:307
+#, fuzzy
+msgid ""
+"Should administrator get notices of subscribes and\n"
+" unsubscribes?"
+msgstr "·í¦³ ­q¾\/°h­q Á|°Ê®É¬O§_­n³qª¾¾Â¥D¡H"
+
+#: Mailman/Gui/General.py:312
+msgid "Send mail to poster when their posting is held for approval?"
+msgstr "·í§ë®Ñ¾D¯d¸m²¾°eµô¨M®É¬O§_­n³qª¾±H«H¤H¡H"
+
+#: Mailman/Gui/General.py:314
+#, fuzzy
+msgid ""
+"Approval notices are sent when mail triggers certain of the\n"
+" limits <em>except</em> routine list moderation and spam "
+"filters,\n"
+" for which notices are <em>not</em> sent. This option "
+"overrides\n"
+" ever sending the notice."
+msgstr ""
+"·íµo¥Í«H¥ó¾DÄdºI©Î¨ä¥LÃþ¦üªº±¡§Î®É¡Amailman ·|±H¥X­n¨D®Ö­ãªº«H¥ó¡C <em>°£«D</"
+"em> ¬O¹H¤Ï½×¾Âªº¯S®í³W½d¤Î spam ¹w¨¾³W«h¡A¹J¨ì³oºØ±¡§Î®É mailman <em>¤£</em>"
+"·|±H¥X­n¨D®Ö­ãªº«H¥ó¡C ³o­Ó³]©w·|¨ú®ø¨C¦¸³£±H¥X­n¨D®Ö­ãªº«H¥óªº³]©w¡C"
+
+#: Mailman/Gui/General.py:319
+msgid "Additional settings"
+msgstr ""
+
+#: Mailman/Gui/General.py:328
+msgid ""
+"Default options for new members joining this list.<input\n"
+" type=\"hidden\" name=\"new_member_options\" value=\"ignore\">"
+msgstr ""
+
+#: Mailman/Gui/General.py:331
+msgid ""
+"When a new member is subscribed to this list, their initial\n"
+" set of options is taken from the this variable's setting."
+msgstr ""
+
+#: Mailman/Gui/General.py:335
+#, fuzzy
+msgid ""
+"(Administrivia filter) Check postings and intercept ones\n"
+" that seem to be administrative requests?"
+msgstr "(ºÞ²z³W«h) Àˬd¨ÃÄdºI¬Ý°_¨Ó¹³¥Ó½Ð«H¥óªº§ë®Ñ¡H"
+
+#: Mailman/Gui/General.py:338
+#, fuzzy
+msgid ""
+"Administrivia tests will check postings to see whether it's\n"
+" really meant as an administrative request (like subscribe,\n"
+" unsubscribe, etc), and will add it to the the administrative\n"
+" requests queue, notifying the administrator of the new "
+"request,\n"
+" in the process."
+msgstr ""
+"ºÞ²z´ú¸Õ±NÀˬd§ë®Ñ¬O§_¬°ºÞ²z¨Æ¶µ¥Ó½Ð(¹³­q¾\¡A°h­q¡Aµ¥µ¥)¡A¦P®É°e¶i¥Ó½Ð¦î¦C¡A"
+"¨Ã±N·s¥Ó½Ð³qª¾¾Â¥D¡C"
+
+#: Mailman/Gui/General.py:345
+#, fuzzy
+msgid ""
+"Maximum length in kilobytes (KB) of a message body. Use 0\n"
+" for no limit."
+msgstr "«H¥ó¤º®e¤W­­¡C ­Y¤£­­¨î½Ð¶ñ 0 ¡C"
+
+#: Mailman/Gui/General.py:349
+#, fuzzy
+msgid "Host name this list prefers for email."
+msgstr "¥»½×¾Âªº¥D¾÷¦WºÙ"
+
+#: Mailman/Gui/General.py:351
+#, fuzzy
+msgid ""
+"The \"host_name\" is the preferred name for email to\n"
+" mailman-related addresses on this host, and generally should "
+"be\n"
+" the mail host's exchanger address, if any. This setting can "
+"be\n"
+" useful for selecting among alternative names of a host that "
+"has\n"
+" multiple addresses."
+msgstr ""
+"¥»½×¾Â¬ÛÃö email ±b¸¹¦X©yªº¥D¾÷¦WºÙ¡A³q±`¬O¶l¥ó¦øªA¾¹ªº¦a§}¡C¥»³]©w¾A¦X¥D¾÷¦P"
+"®É¾Ö¦³¦h­Ó¦ì§}ªºª¬ªp¡C"
+
+#: Mailman/Gui/General.py:363
+msgid ""
+"Should messages from this mailing list include the\n"
+" <a href=\"http://www.faqs.org/rfc/rfc2369.html\">RFC 2369</"
+"a>\n"
+" (i.e. <tt>List-*</tt>) headers? <em>Yes</em> is highly\n"
+" recommended."
+msgstr ""
+
+#: Mailman/Gui/General.py:368
+msgid ""
+"RFC 2369 defines a set of List-* headers that are\n"
+" normally added to every message sent to the list "
+"membership.\n"
+" These greatly aid end-users who are using standards "
+"compliant\n"
+" mail readers. They should normally always be enabled.\n"
+"\n"
+" <p>However, not all mail readers are standards compliant "
+"yet,\n"
+" and if you have a large number of members who are using\n"
+" non-compliant mail readers, they may be annoyed at these\n"
+" headers. You should first try to educate your members as "
+"to\n"
+" why these headers exist, and how to hide them in their "
+"mail\n"
+" clients. As a last resort you can disable these headers, "
+"but\n"
+" this is not recommended (and in fact, your ability to "
+"disable\n"
+" these headers may eventually go away)."
+msgstr ""
+
+#: Mailman/Gui/General.py:386
+msgid "Should postings include the <tt>List-Post:</tt> header?"
+msgstr ""
+
+#: Mailman/Gui/General.py:387
+msgid ""
+"The <tt>List-Post:</tt> header is one of the headers\n"
+" recommended by\n"
+" <a href=\"http://www.faqs.org/rfc/rfc2369.html\">RFC 2369</a>.\n"
+" However for some <em>announce-only</em> mailing lists, only a\n"
+" very select group of people are allowed to post to the list; "
+"the\n"
+" general membership is usually not allowed to post. For lists "
+"of\n"
+" this nature, the <tt>List-Post:</tt> header is misleading.\n"
+" Select <em>No</em> to disable the inclusion of this header. "
+"(This\n"
+" does not affect the inclusion of the other <tt>List-*:</tt>\n"
+" headers.)"
+msgstr ""
+
+#: Mailman/Gui/General.py:405
+#, fuzzy
+msgid ""
+"<b>real_name</b> attribute not\n"
+" changed! It must differ from the list's name by case\n"
+" only."
+msgstr ""
+"<p><b>¥¿¦¡¦WºÙ</b> Äݩʥ¼Åܧó¡I\n"
+" »P½×¾Â¦WºÙ¶È¤j¤p¼g¤£¦P¦Ó¤w¡C\n"
+" <p>"
+
+#: Mailman/Gui/General.py:422
+msgid ""
+"You cannot add a Reply-To: to an explicit\n"
+" address if that address is blank. Resetting these values."
+msgstr ""
+
+#: Mailman/Gui/Language.py:32
+msgid "Language&nbsp;options"
+msgstr ""
+
+#: Mailman/Gui/Language.py:53
+msgid "Natural language (internationalization) options."
+msgstr ""
+
+#: Mailman/Gui/Language.py:58
+msgid "Default language for this list."
+msgstr "¥»½×¾Âªº¹w³]»y¨¥"
+
+#: Mailman/Gui/Language.py:59
+msgid ""
+"This is the default natural language for this mailing list.\n"
+" If <a href=\"?VARHELP=language/available_languages\">more than "
+"one\n"
+" language</a> is supported then users will be able to select "
+"their\n"
+" own preferences for when they interact with the list. All "
+"other\n"
+" interactions will be conducted in the default language. This\n"
+" applies to both web-based and email-based messages, but not to\n"
+" email posted by list members."
+msgstr ""
+
+#: Mailman/Gui/Language.py:69
+#, fuzzy
+msgid "Languages supported by this list."
+msgstr "¥»½×¾Âªº¹w³]»y¨¥"
+
+#: Mailman/Gui/Language.py:71
+msgid ""
+"These are all the natural languages supported by this list.\n"
+" Note that the\n"
+" <a href=\"?VARHELP=language/preferred_language\">default\n"
+" language</a> must be included."
+msgstr ""
+
+#: Mailman/Gui/Membership.py:26
+#, fuzzy
+msgid "Membership&nbsp;Management"
+msgstr "·|­ûºÞ²z"
+
+#: Mailman/Gui/Membership.py:30
+#, fuzzy
+msgid "Membership&nbsp;List"
+msgstr "·|­û²M³æ"
+
+#: Mailman/Gui/Membership.py:31
+msgid "Mass&nbsp;Subscription"
+msgstr ""
+
+#: Mailman/Gui/Membership.py:32
+msgid "Mass&nbsp;Removal"
+msgstr ""
+
+#: Mailman/Gui/NonDigest.py:34
+msgid "Non-digest&nbsp;options"
+msgstr ""
+
+#: Mailman/Gui/NonDigest.py:42
+msgid "Policies concerning immediately delivered list traffic."
+msgstr "¤@¯ë½×¾Â«H¥óªº¬y¶qºÞ¨î¬Fµ¦¡C"
+
+#: Mailman/Gui/NonDigest.py:45
+#, fuzzy
+msgid ""
+"Can subscribers choose to receive mail immediately, rather\n"
+" than in batched digests?"
+msgstr "·|­û¬O§_¥i¿ï¾Ü¥ß§Y¦¬¨ì«H¥ó¡A¦Ó«D¤À§åªººK­n¡H"
+
+#: Mailman/Gui/NonDigest.py:53
+msgid ""
+"Should Mailman personalize each non-digest delivery?\n"
+" This is often useful for announce-only lists, but <a\n"
+" href=\"?VARHELP=nondigest/personalize\">read the details</"
+"a>\n"
+" section for a discussion of important performance\n"
+" issues."
+msgstr ""
+
+#: Mailman/Gui/NonDigest.py:59
+msgid ""
+"Normally, Mailman sends the regular delivery messages to\n"
+" the mail server in batches. This is much more efficent\n"
+" because it reduces the amount of traffic between Mailman "
+"and\n"
+" the mail server.\n"
+"\n"
+" <p>However, some lists can benefit from a more "
+"personalized\n"
+" approach. In this case, Mailman crafts a new message for\n"
+" each member on the regular delivery list. Turning this\n"
+" feature on may degrade the performance of your site, so "
+"you\n"
+" need to carefully consider whether the trade-off is worth "
+"it,\n"
+" or whether there are other ways to accomplish what you "
+"want.\n"
+" You should also carefully monitor your system load to make\n"
+" sure it is acceptable.\n"
+"\n"
+" <p>When personalized lists are enabled, two things happen.\n"
+" First, the <code>To:</code> header of the posted message "
+"is\n"
+" modified so that each individual user is addressed\n"
+" specifically. I.e. it looks like the message was "
+"addressed\n"
+" to the recipient instead of to the list.\n"
+"\n"
+" <p>Second a few more expansion variables that can be "
+"included\n"
+" in the <a href=\"?VARHELP=nondigest/msg_header\">message\n"
+" header</a> and\n"
+" <a href=\"?VARHELP=nondigest/msg_footer\">message footer</"
+"a>.\n"
+"\n"
+" <p>These additional substitution variables will be "
+"available\n"
+" for your headers and footers, when this feature is "
+"enabled:\n"
+"\n"
+" <ul><li><b>user_address</b> - The address of the user,\n"
+" coerced to lower case.\n"
+" <li><b>user_delivered_to</b> - The case-preserved "
+"address\n"
+" that the user is subscribed with.\n"
+" <li><b>user_password</b> - The user's password.\n"
+" <li><b>user_name</b> - The user's full name.\n"
+" <li><b>user_optionsurl</b> - The url to the user's "
+"option\n"
+" page.\n"
+" </ul>\n"
+" "
+msgstr ""
+
+#: Mailman/Gui/NonDigest.py:104
+msgid "Header added to mail sent to regular list members"
+msgstr "±Hµ¹¤@¯ë­q¾\·|­ûªº©ïÀY"
+
+#: Mailman/Gui/NonDigest.py:105
+#, fuzzy
+msgid ""
+"Text prepended to the top of every immediately-delivery\n"
+" message. "
+msgstr "ªþ¥[¦b¨C«Ê¥ß§Yµo°e«H¥ó³Ì«e­±ªº¤å¦r¡C"
+
+#: Mailman/Gui/NonDigest.py:110
+msgid "Footer added to mail sent to regular list members"
+msgstr "¤@¯ë½×¾Â¦¨­û¦¬«Hªºµù¸}"
+
+#: Mailman/Gui/NonDigest.py:111
+#, fuzzy
+msgid ""
+"Text appended to the bottom of every immediately-delivery\n"
+" message. "
+msgstr "ªþ¥[¦b¨C«Ê¥ß§Yµo°e«H¥ó¤§«áªº¤å¦r"
+
+#: Mailman/Gui/Passwords.py:27
+#, fuzzy
+msgid "Passwords"
+msgstr "±K½X¡G "
+
+#: Mailman/Gui/Privacy.py:28
+#, fuzzy
+msgid "Privacy options"
+msgstr "Áô±K³]©w"
+
+#: Mailman/Gui/Privacy.py:32
+#, fuzzy
+msgid "Subscription&nbsp;rules"
+msgstr "­q¾\¥Ó½Ð"
+
+#: Mailman/Gui/Privacy.py:33
+msgid "Sender&nbsp;filters"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:34
+msgid "Spam&nbsp;filters"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:48
+#, fuzzy
+msgid "None"
+msgstr "µL"
+
+#: Mailman/Gui/Privacy.py:49 Mailman/Gui/Privacy.py:72
+#, fuzzy
+msgid "Confirm"
+msgstr "½T»{"
+
+#: Mailman/Gui/Privacy.py:50 Mailman/Gui/Privacy.py:73
+#, fuzzy
+msgid "Require approval"
+msgstr "»Ý¸g®Ö­ã"
+
+#: Mailman/Gui/Privacy.py:51 Mailman/Gui/Privacy.py:74
+#, fuzzy
+msgid "Confirm and approve"
+msgstr "½T»{+®Ö­ã"
+
+#: Mailman/Gui/Privacy.py:53 Mailman/Gui/Privacy.py:76
+msgid "What steps are required for subscription?<br>"
+msgstr "±z»Ý­n«ç¼Ëªº­q¾\¬yµ{¡H<br>"
+
+#: Mailman/Gui/Privacy.py:54
+#, fuzzy
+msgid ""
+"None - no verification steps (<em>Not\n"
+" Recommended </em>)<br>\n"
+" Confirm (*) - email confirmation step required "
+"<br>\n"
+" Require approval - require list administrator\n"
+" Approval for subscriptions <br>\n"
+" Confirm and approve - both confirm and approve\n"
+" \n"
+" <p>(*) when someone requests a subscription,\n"
+" Mailman sends them a notice with a unique\n"
+" subscription request number that they must reply "
+"to\n"
+" in order to subscribe.<br>\n"
+"\n"
+" This prevents mischievous (or malicious) people\n"
+" from creating subscriptions for others without\n"
+" their consent."
+msgstr ""
+"§K - ¤£»Ý½T»{¤âÄò(<em>¤£«ØÄ³</em>)<br>»Ý½T»{ (*) - »Ý¸g email ½T»{¤âÄò<br>»Ý"
+"®Ö­ã - »Ý¸g¾Â¥D®Ö­ã<br>½T»{¡Ï®Ö­ã - »Ý¸g¾Â¥D®Ö­ã«á½T»{<p> (*) ·í¦³¤H´£¥X­q¾\"
+"¥Ó½Ð®É¡A mailman ·|±Hµ¹¥Ó½Ð¤H¤@«Ê­n¨D½T»{ªº«H¥ó¡A¤W­±·|¦³¤@­Ó­q¾\¸¹½X¥Î¥HÃÑ"
+"§O¡C­q¾\¤H¥²¶·¦^ÂЦ¹«Ê½T»{«H¤~ºâ§¹¦¨½T»{ªº¤âÄò¡C<br>³o¬O¬°¤F¹w¨¾¦³¤H´c§@¼@¡A"
+"¥¼¸g email ±b¸¹©Ò¦³¤H¤§¦P·N¤§¤U¥N¬°¥Ó½Ð¥[¤J³q«H½×¾Â¡C"
+
+#: Mailman/Gui/Privacy.py:77
+#, fuzzy
+msgid ""
+"Confirm (*) - email confirmation required <br>\n"
+" Require approval - require list administrator\n"
+" approval for subscriptions <br>\n"
+" Confirm and approve - both confirm and approve\n"
+" \n"
+" <p>(*) when someone requests a subscription,\n"
+" Mailman sends them a notice with a unique\n"
+" subscription request number that they must reply "
+"to\n"
+" in order to subscribe.<br> This prevents\n"
+" mischievous (or malicious) people from creating\n"
+" subscriptions for others without their consent."
+msgstr ""
+"»Ý¸g½T»{(*) - »Ý¸g email ½T»{ <br>»Ý¸g®Ö­ã - ­q¾\»Ý¸g¾Â¥D®Ö­ã<br>½T»{+®Ö­ã - "
+"»Ý¸g¹L½T»{©M®Ö­ã<p>(*) ·í¦³¤H­n¨D­q¾\®É¡Amailman ·|±H¥X¤@«Ê§t¦³½T»{¸¹½Xªº½T»{"
+"«H¡A¦Ó­q¾\ªÌ­n¦^³o«Ê½T»{¤~§¹¦¨­q¾\¡C<br>³o¬O¬°¤F¹w¨¾¦³¤H´c§@¼@¡A¥¼¸g email ±b"
+"¸¹©Ò¦³¤H¤§¦P·N¤§¤U¥N¬°¥Ó½Ð¥[¤J³q«H½×¾Â¡C"
+
+#: Mailman/Gui/Privacy.py:93
+msgid ""
+"This section allows you to configure subscription and\n"
+" membership exposure policy. You can also control whether this\n"
+" list is public or not. See also the\n"
+" <a href=\"%(admin)s/archive\">Archival Options</a> section for\n"
+" separate archive-related privacy settings."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:99
+msgid "Subscribing"
+msgstr "­q¾\"
+
+#: Mailman/Gui/Privacy.py:101
+#, fuzzy
+msgid ""
+"Advertise this list when people ask what lists are on this\n"
+" machine?"
+msgstr "·í¬d¸ß¥»¾÷©Ò¦³½×¾Â®É¡A¬O§_­n¦C¥X¥»½×¾Â¡H"
+
+#: Mailman/Gui/Privacy.py:107
+msgid ""
+"Is the list moderator's approval required for unsubscription\n"
+" requests? (<em>No</em> is recommended)"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:110
+msgid ""
+"When members want to leave a list, they will make an\n"
+" unsubscription request, either via the web or via email.\n"
+" Normally it is best for you to allow open unsubscriptions so "
+"that\n"
+" users can easily remove themselves from mailing lists (they "
+"get\n"
+" really upset if they can't get off lists!).\n"
+"\n"
+" <p>For some lists though, you may want to impose moderator\n"
+" approval before an unsubscription request is processed. "
+"Examples\n"
+" of such lists include a corporate mailing list that all "
+"employees\n"
+" are required to be members of."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:121
+#, fuzzy
+msgid "Ban list"
+msgstr "¥Îªk¡G lists"
+
+#: Mailman/Gui/Privacy.py:123
+msgid ""
+"List of addresses which are banned from membership in this\n"
+" mailing list."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:126
+msgid ""
+"Addresses in this list are banned outright from subscribing\n"
+" to this mailing list, with no further moderation required. "
+"Add\n"
+" addresses one per line; start the line with a ^ character to\n"
+" designate a regular expression match."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:131
+msgid "Membership exposure"
+msgstr "·|­û¤½§i"
+
+#: Mailman/Gui/Privacy.py:133
+msgid "Anyone"
+msgstr "¥ô¦ó¤H"
+
+#: Mailman/Gui/Privacy.py:133
+msgid "List admin only"
+msgstr "­­¾Â¥D"
+
+#: Mailman/Gui/Privacy.py:133
+msgid "List members"
+msgstr "½×¾Â­q¾\·|­û"
+
+#: Mailman/Gui/Privacy.py:134
+msgid "Who can view subscription list?"
+msgstr "½Ö¥i¥H¬d¸ß­q¤á²M³æ¡H"
+
+#: Mailman/Gui/Privacy.py:136
+#, fuzzy
+msgid ""
+"When set, the list of subscribers is protected by member or\n"
+" admin password authentication."
+msgstr "³]©w«á¡A½×¾Âªº­q¾\·|­û²M³æ±N­­­q¾\·|­û©Î¾Â¥D±K½XÅçÃÒ«á¡A¤è¥iÀ˵ø¡C"
+
+#: Mailman/Gui/Privacy.py:140
+#, fuzzy
+msgid ""
+"Show member addrs so they're not directly recognizable as\n"
+" email addrs?"
+msgstr "Åã¥Ü·|­û¦a§}¦ý¬O¤£ª½±µÅã¥Ü email ®æ¦¡¡H"
+
+#: Mailman/Gui/Privacy.py:142
+#, fuzzy
+msgid ""
+"Setting this option causes member email addresses to be\n"
+" transformed when they are presented on list web pages (both in\n"
+" text and as links), so they're not trivially recognizable as\n"
+" email addresses. The intention is to prevent the addresses\n"
+" from being snarfed up by automated web scanners for use by\n"
+" spammers."
+msgstr ""
+"¶}±Ò¥»³]©w«á¡AÅã¥Ü¦bºô­¶ªº·|­ûªº email ¦a§}(¤£½×¬O¤å¦r©Î³sµ²)±N·|²¤°µÅܧΡAÅý"
+"¤H»{¤£¥X¨º¬O email ¦a§}¡C³o­Ó¥\¯à¬O¥Î¨Ó¨¾¤îºô­¶¦Û°Ê±½ºË³nÅé¨ú±o·|­ûªº email¡C"
+
+#: Mailman/Gui/Privacy.py:152
+msgid ""
+"When a message is posted to the list, a series of\n"
+" moderation steps are take to decide whether the a moderator "
+"must\n"
+" first approve the message or not. This section contains the\n"
+" controls for moderation of both member and non-member postings.\n"
+"\n"
+" <p>Member postings are held for moderation if their\n"
+" <b>moderation flag</b> is turned on. You can control whether\n"
+" member postings are moderated by default or not.\n"
+"\n"
+" <p>Non-member postings can be automatically\n"
+" <a href=\"?VARHELP=privacy/sender/accept_these_nonmembers\"\n"
+" >accepted</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/hold_these_nonmembers\">held "
+"for\n"
+" moderation</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/reject_these_nonmembers\"\n"
+" >rejected</a> (bounced), or\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >discarded</a>,\n"
+" either individually or as a group. Any\n"
+" posting from a non-member who is not explicitly accepted,\n"
+" rejected, or discarded, will have their posting filtered by the\n"
+" <a href=\"?VARHELP=privacy/sender/generic_nonmember_action"
+"\">general\n"
+" non-member rules</a>.\n"
+"\n"
+" <p>In the text boxes below, add one address per line; start the\n"
+" line with a ^ character to designate a <a href=\n"
+" \"http://www.python.org/doc/current/lib/module-re.html\"\n"
+" >Python regular expression</a>. When entering backslashes, do "
+"so\n"
+" as if you were using Python raw strings (i.e. you generally "
+"just\n"
+" use a single backslash).\n"
+"\n"
+" <p>Note that non-regexp matches are always done first."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:185
+#, fuzzy
+msgid "Member filters"
+msgstr "·|­û²M³æ"
+
+#: Mailman/Gui/Privacy.py:188
+msgid "By default, should new list member postings be moderated?"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:190
+msgid ""
+"Each list member has a <em>moderation flag</em> which says\n"
+" whether messages from the list member can be posted directly "
+"to\n"
+" the list, or must first be approved by the list moderator. "
+"When\n"
+" the moderation flag is turned on, list member postings must be\n"
+" approved first. You, the list administrator can decide whether "
+"a\n"
+" specific individual's postings will be moderated or not.\n"
+"\n"
+" <p>When a new member is subscribed, their initial moderation "
+"flag\n"
+" takes its value from this option. Turn this option off to "
+"accept\n"
+" member postings by default. Turn this option on to, by "
+"default,\n"
+" moderate member postings first. You can always manually set "
+"an\n"
+" individual member's moderation bit by using the\n"
+" <a href=\"%(adminurl)s/members\">membership management\n"
+" screens</a>."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:206 Mailman/Gui/Privacy.py:280
+msgid "Hold"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:207
+msgid ""
+"Action to take when a moderated member posts to the\n"
+" list."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:209
+msgid ""
+"<ul><li><b>Hold</b> -- this holds the message for approval\n"
+" by the list moderators.\n"
+"\n"
+" <p><li><b>Reject</b> -- this automatically rejects the message "
+"by\n"
+" sending a bounce notice to the post's author. The text of the\n"
+" bounce notice can be <a\n"
+" href=\"?VARHELP=privacy/sender/member_moderation_notice\"\n"
+" >configured by you</a>.\n"
+"\n"
+" <p><li><b>Discard</b> -- this simply discards the message, "
+"with\n"
+" no notice sent to the post's author.\n"
+" </ul>"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:223
+msgid ""
+"Text to include in any\n"
+" <a href=\"?VARHELP/privacy/sender/member_moderation_action\"\n"
+" >rejection notice</a> to\n"
+" be sent to moderated members who post to this list."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:228
+msgid "Non-member filters"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:231
+msgid ""
+"List of non-member addresses whose postings should be\n"
+" automatically accepted."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:234
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" accepted with no further moderation applied. Add member\n"
+" addresses one per line; start the line with a ^ character to\n"
+" designate a regular expression match."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:240
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" immediately held for moderation."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:243
+msgid ""
+"Postings from any of these non-members will be immediately\n"
+" and automatically held for moderation by the list moderators.\n"
+" The sender will receive a notification message which will "
+"allow\n"
+" them to cancel their held message. Add member addresses one "
+"per\n"
+" line; start the line with a ^ character to designate a regular\n"
+" expression match."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:251
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" automatically rejected."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:254
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" rejected. In other words, their messages will be bounced back "
+"to\n"
+" the sender with a notification of automatic rejection. This\n"
+" option is not appropriate for known spam senders; their "
+"messages\n"
+" should be\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >automatically discarded</a>.\n"
+"\n"
+" <p>Add member addresses one per line; start the line with a ^\n"
+" character to designate a regular expression match."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:266
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" automatically discarded."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:269
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" discarded. That is, the message will be thrown away with no\n"
+" further processing or notification. The sender will not "
+"receive\n"
+" a notification or a bounce, however the list moderators can\n"
+" optionally <a href=\"?VARHELP=privacy/sender/"
+"forward_auto_discards\"\n"
+" >receive copies of auto-discarded messages.</a>.\n"
+"\n"
+" <p>Add member addresses one per line; start the line with a ^\n"
+" character to designate a regular expression match."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:281
+msgid ""
+"Action to take for postings from non-members for which no\n"
+" explicit action is defined."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:284
+msgid ""
+"When a post from a non-member is received, the message's\n"
+" sender is matched against the list of explicitly\n"
+" <a href=\"?VARHELP=privacy/sender/accept_these_nonmembers\"\n"
+" >accepted</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/hold_these_nonmembers\">held</"
+"a>,\n"
+" <a href=\"?VARHELP=privacy/sender/reject_these_nonmembers\"\n"
+" >rejected</a> (bounced), and\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >discarded</a> addresses. If no match is found, then this "
+"action\n"
+" is taken."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:296
+msgid ""
+"Should messages from non-members, which are automatically\n"
+" discarded, be forwarded to the list moderator?"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:302
+msgid ""
+"This section allows you to configure various anti-spam\n"
+" filters posting filters, which can help reduce the amount of "
+"spam\n"
+" your list members end up receiving.\n"
+" "
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:307
+msgid "Anti-Spam filters"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:311
+#, fuzzy
+msgid ""
+"Must posts have list named in destination (to, cc) field\n"
+" (or be among the acceptable alias names, specified below)?"
+msgstr "§ë®Ñ¤§¦¬¥ó¤H(to,cc)Äæ¦ì¬O§_À³¸Ó¥]§t½×¾Â¦WºÙ(©ÎªÌ¤U¦C©Ò¦C¤§§O¦W)¡H"
+
+#: Mailman/Gui/Privacy.py:314
+#, fuzzy
+msgid ""
+"Many (in fact, most) spams do not explicitly name their\n"
+" myriad destinations in the explicit destination addresses - in\n"
+" fact often the To: field has a totally bogus address for\n"
+" obfuscation. The constraint applies only to the stuff in the\n"
+" address before the '@' sign, but still catches all such spams.\n"
+"\n"
+" <p>The cost is that the list will not accept unhindered any\n"
+" postings relayed from other addresses, unless\n"
+"\n"
+" <ol>\n"
+" <li>The relaying address has the same name, or\n"
+"\n"
+" <li>The relaying address name is included on the options "
+"that\n"
+" specifies acceptable aliases for the list.\n"
+"\n"
+" </ol>"
+msgstr ""
+"¤j¦h¼Æªº©U§£«H¨Ã¨S¦³©ú½Tªº¦¬¥ó¤H»P±H«H¤H - ¨Æ¹ê¤W³q±`¬O¤@­Ó¤£¦s¦bªº¦a§}¡C°ß¤@"
+"ªº­­¨î¬OºÞ¨î '@' ¤§«eªº¦¨­û¦WºÙ¡C<p>¥¦ªº»ù­È¦b©ó½×¾Â¤£·|±µ¨ü¥ô¦ó¨ä¥LÂà«H¦a§}"
+"ªº§ë®Ñ¡A°£«D<ol><li>Âà«H¦a§}»P¸Ó½×¾Â¦P¦W¡A©Î<li>Âà«H¦a§}¬O¸Ó½×¾Â«ü©w¥i±µ¨üªº"
+"§O¦W¡C</ol>"
+
+#: Mailman/Gui/Privacy.py:332
+#, fuzzy
+msgid ""
+"Alias names (regexps) which qualify as explicit to or cc\n"
+" destination names for this list."
+msgstr "§O¦W (regexps) ­­©w¬° to ©Î cc §t¦³½×¾Â¦WºÙ¡C"
+
+#: Mailman/Gui/Privacy.py:335
+#, fuzzy
+msgid ""
+"Alternate addresses that are acceptable when\n"
+" `require_explicit_destination' is enabled. This option takes "
+"a\n"
+" list of regular expressions, one per line, which is matched\n"
+" against every recipient address in the message. The matching "
+"is\n"
+" performed with Python's re.match() function, meaning they are\n"
+" anchored to the start of the string.\n"
+" \n"
+" <p>For backwards compatibility with Mailman 1.1, if the regexp\n"
+" does not contain an `@', then the pattern is matched against "
+"just\n"
+" the local part of the recipient address. If that match fails, "
+"or\n"
+" if the pattern does contain an `@', then the pattern is "
+"matched\n"
+" against the entire recipient address.\n"
+" \n"
+" <p>Matching against the local part is deprecated; in a future\n"
+" release, the pattern will always be matched against the entire\n"
+" recipient address."
+msgstr ""
+"·í¶}±Ò '»Ý­n_©ú½T_¦¬«H¤H' ³]©w«á¡A¥i¥H¿é¤J¥t¤@­Ó¦¬«H¦a§}¡C¸Ó³]©w°õ¦æ¤@¨t¦C¥H"
+"¦æ¤À¬qªº reqular expression ¡A¥HÀˬd§ë®Ñ«H¥ó¥þ³¡ªº¦¬¥ó¤H¡CÀˬd¬O§Q¥Î Python "
+"ªº re.match() ¨ç¼Æ°õ¦æ¡A©Ò¥H©w¦ìÂI¬O¦b¦r¦êªº°_ÂI¡C<p>¬°¤F»P Mailman 1.1 ¬Û"
+"®e¡A¦pªG regexp ¨S¦³ '@' ¦r¤¸¡A±N°w¹ï¦¬¥ó¤H±b¸¹§@¤ñ¹ï¡C¦pªG¤ñ¹ï¥¢±Ñ©ÎªÌ¤ñ¹ï³W"
+"«h¦³ '@' ¦r¤¸¡A«h·|¤ñ¹ï§¹¾ãªº¦¬¥ó¤H¦a§}¡C<p> ³æ¿W¤ñ¹ï¦¬¥ó¤H±b¸¹ªº¥\¯à¡Aµy«áª©"
+"¥»±N·|¨ú®ø¨Ã§ï¬°¤ñ¹ï§¹¾ãªº¦¬¥ó¤H¦a§}¡C"
+
+#: Mailman/Gui/Privacy.py:353
+msgid "Ceiling on acceptable number of recipients for a posting."
+msgstr "§ë®Ñ¦¬«H¤H¼Æ¤W­­¡C"
+
+#: Mailman/Gui/Privacy.py:355
+#, fuzzy
+msgid ""
+"If a posting has this number, or more, of recipients, it is\n"
+" held for admin approval. Use 0 for no ceiling."
+msgstr "­Y¦¬¥ó¤H¶W¹L³]©w­È®É¡A«H¥ó±N¯d¸mÂà°e¾Â¥Dµô¨M¡C 0 ¥Nªí¨S¦³­­¨î¡C"
+
+#: Mailman/Gui/Privacy.py:359
+msgid "Hold posts with header value matching a specified regexp."
+msgstr "­Y«H¥ó¼ÐÃD²Å¦X regexp «h¤©¥H¯d¸m¡C"
+
+#: Mailman/Gui/Privacy.py:360
+#, fuzzy
+msgid ""
+"Use this option to prohibit posts according to specific\n"
+" header values. The target value is a regular-expression for\n"
+" matching against the specified header. The match is done\n"
+" disregarding letter case. Lines beginning with '#' are "
+"ignored\n"
+" as comments.\n"
+"\n"
+" <p>For example:<pre>to: .*@public.com </pre> says to hold all\n"
+" postings with a <em>To:</em> mail header containing '@public."
+"com'\n"
+" anywhere among the addresses.\n"
+"\n"
+" <p>Note that leading whitespace is trimmed from the regexp. "
+"This\n"
+" can be circumvented in a number of ways, e.g. by escaping or\n"
+" bracketing it."
+msgstr ""
+"¦¹¶µ³]©w¥Î©óÄdºI¯S©w¼ÐÃDªº«H¥ó¡C©Ò¿é¤Jªº­È¥Î©ó»P«H¥ó¼ÐÃD°µ reqular-"
+"expression ªº¤ñ¹ï¡C¤ñ¹ï®É¦r¥À¤j¤p¼g¤£¼vÅT¡C¦æ­º¥H '#' ¼Ð°OªÌ¬°µù¸Ñ¡C<p>¨Ò"
+"¦p¡G <pre>to: .*@public.com </pre> ªí¥ÜÄdºI¶l¥ó<em>to</em>¼ÐÃD¤¤¡A¦a§}¤º§t"
+"¦³ '@public.com' ¦r¥yªº«H¥ó¡C<p>½Ðª`·N¡A«e¾ÉªºªÅ¥Õ regexp ±N©¿²¤¤£­p¡C¦³¦n´X"
+"­Ó¤èªk¥i¨±°jªº¶i¦æÀˬd¡A¦p¨Ò¥~¦r¤¸©Î¨í¸¹¡C<p> ¬ÛÃö¾÷¨î½Ð°Ñ¦Ò <em>¸T¤î§ë®Ñ¤H­û"
+"</em> ³]©w"
+
+#: Mailman/Gui/Privacy.py:375
+#, fuzzy
+msgid ""
+"Hide the sender of a message, replacing it with the list\n"
+" address (Removes From, Sender and Reply-To fields)"
+msgstr "ÁôÂñH«H¤H¦a§}¡A¨Ã¥H½×¾Â«H½c¨ú¥N¤§ (²¾°£¨Ó·½¡B±H«H¤H¤Î¦^«HÄæ¦ì)"
+
+#: Mailman/Gui/Topics.py:28
+msgid "Topics"
+msgstr ""
+
+#: Mailman/Gui/Topics.py:36
+msgid "List topic keywords"
+msgstr ""
+
+#: Mailman/Gui/Topics.py:38
+#, fuzzy
+msgid "Disabled"
+msgstr "©¿²¤"
+
+#: Mailman/Gui/Topics.py:38
+msgid "Enabled"
+msgstr ""
+
+#: Mailman/Gui/Topics.py:39
+msgid "Should the topic filter be enabled or disabled?"
+msgstr ""
+
+#: Mailman/Gui/Topics.py:41
+msgid ""
+"The topic filter categorizes each incoming email message\n"
+" according to <a\n"
+" href=\"http://www.python.org/doc/current/lib/module-re.html"
+"\">regular\n"
+" expression filters</a> you specify below. If the message's\n"
+" <code>Subject:</code> or <code>Keywords:</code> header contains "
+"a\n"
+" match against a topic filter, the message is logically placed\n"
+" into a topic <em>bucket</em>. Each user can then choose to "
+"only\n"
+" receive messages from the mailing list for a particular topic\n"
+" bucket (or buckets). Any message not categorized in a topic\n"
+" bucket registered with the user is not delivered to the list.\n"
+"\n"
+" <p>Note that this feature only works with regular delivery, "
+"not\n"
+" digest delivery.\n"
+"\n"
+" <p>The body of the message can also be optionally scanned for\n"
+" <code>Subject:</code> and <code>Keywords:</code> headers, as\n"
+" specified by the <a\n"
+" href=\"?VARHELP=topics/topics_bodylines_limit"
+"\">topics_bodylines_limit</a>\n"
+" configuration variable."
+msgstr ""
+
+#: Mailman/Gui/Topics.py:62
+msgid "How many body lines should the topic matcher scan?"
+msgstr ""
+
+#: Mailman/Gui/Topics.py:64
+msgid ""
+"The topic matcher will scan this many lines of the message\n"
+" body looking for topic keyword matches. Body scanning stops "
+"when\n"
+" either this many lines have been looked at, or a non-header-"
+"like\n"
+" body line is encountered. By setting this value to zero, no "
+"body\n"
+" lines will be scanned (i.e. only the <code>Keywords:</code> "
+"and\n"
+" <code>Subject:</code> headers will be scanned). By setting "
+"this\n"
+" value to a negative number, then all body lines will be "
+"scanned\n"
+" until a non-header-like line is encountered.\n"
+" "
+msgstr ""
+
+#: Mailman/Gui/Topics.py:75
+msgid "Topic keywords, one per line, to match against each message."
+msgstr ""
+
+#: Mailman/Gui/Topics.py:77
+msgid ""
+"Each topic keyword is actually a regular expression, which is\n"
+" matched against certain parts of a mail message, specifically "
+"the\n"
+" <code>Keywords:</code> and <code>Subject:</code> message "
+"headers.\n"
+" Note that the first few lines of the body of the message can "
+"also\n"
+" contain a <code>Keywords:</code> and <code>Subject:</code>\n"
+" \"header\" on which matching is also performed."
+msgstr ""
+
+#: Mailman/Gui/Topics.py:116
+msgid ""
+"Topic specifications require both a name and\n"
+" a pattern. Incomplete topics will be ignored."
+msgstr ""
+
+#: Mailman/Gui/Topics.py:124
+msgid ""
+"The topic pattern `%(pattern)s' is not a\n"
+" legal regular expression. It will be discarded."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:25
+#, fuzzy
+msgid "Mail&lt;-&gt;News&nbsp;gateways"
+msgstr "Mail-News ¤Î News-Mail ¹h¹D"
+
+#: Mailman/Gui/Usenet.py:33
+msgid "Mail-to-News and News-to-Mail gateway services."
+msgstr "Mail-to-News ¤Î News-to-Mail ¹h¹DªA°È¡C"
+
+#: Mailman/Gui/Usenet.py:36
+#, fuzzy
+msgid ""
+"The Internet address of the machine your News server is\n"
+" running on."
+msgstr "±z«ü©w IP ¦ì§}ªº·s»D¦øªA¾¹°õ¦æ¶Ô°È¤¤¡C"
+
+#: Mailman/Gui/Usenet.py:38
+#, fuzzy
+msgid ""
+"The News server is not part of Mailman proper. You have to\n"
+" already have access to a NNTP server, and that NNTP server has "
+"to\n"
+" recognize the machine this mailing list runs on as a machine\n"
+" capable of reading and posting news."
+msgstr ""
+"·s»D¦øªA¾¹¨Ã«D Mailman ªº¥\¯à¡C±z¥²¶·¾Ö¦³¦s¨ú NNTP ¦øªA¾¹ªºÅv­­¡A¥B NNTP ¦øªA"
+"¾¹»Ý»{¥i ½×¾Â©Ò¦bªº¥D¾÷¾Ö¦³Åª«H¤Î§ë®ÑªºÅv­­¡C"
+
+#: Mailman/Gui/Usenet.py:44
+msgid "The name of the Usenet group to gateway to and/or from."
+msgstr "Âà«H·s»D¸s²Õªº¦WºÙ¡C"
+
+#: Mailman/Gui/Usenet.py:47
+#, fuzzy
+msgid ""
+"Should new posts to the mailing list be sent to the\n"
+" newsgroup?"
+msgstr "³q«H½×¾Âªº·s«H¬O§_­n±H©¹·s»D¸s²Õ¡H"
+
+#: Mailman/Gui/Usenet.py:51
+#, fuzzy
+msgid ""
+"Should new posts to the newsgroup be sent to the mailing\n"
+" list?"
+msgstr "·s»D¸s²Õªº·s«H¬O§_­nÂà°e³q«H½×¾Â¡H"
+
+#: Mailman/Gui/Usenet.py:55
+msgid "Should Mailman perform a <em>catchup</em> on the newsgroup?"
+msgstr "¬O§_»Ý­n Mailman ¦b·s»D¸s²Õ¤¤ <em>§ì«H</em>¡H"
+
+#: Mailman/Gui/Usenet.py:56
+#, fuzzy
+msgid ""
+"When you tell Mailman to perform a catchup on the newsgroup,\n"
+" this means that you want to start gating messages to the "
+"mailing\n"
+" list with the next new message found. All earlier messages on\n"
+" the newsgroup will be ignored. This is as if you were reading\n"
+" the newsgroup yourself, and you marked all current messages as\n"
+" <em>read</em>. By catching up, your mailing list members will\n"
+" not see any of the earlier messages."
+msgstr ""
+"·í±z­n¨D Mailman ¦b·s»D¸s²Õ°õ¦æ§ì«Hªº¤u§@®É¡A\n"
+" ¤]´N¬O»¡¡G·í·s»D¸s²Õ¦¬¨ì¤U¤@«Ê·s«H®É¡AMailman \n"
+" ¤~·|±N¥¦Âà¨ì³q«H½×¾Â¤¤¡A¥ý«eªº«H¥ó«h¤£§t¦b¤º¡C\n"
+" ³o´N¹³¾\Ū·s»D¸s²Õ®É¡A±N©Ò¦³ªº«H¥ó¼Ð°O¦¨<em>¤wŪ</em>\n"
+" ¤@¯ë¡C¶}©l§ì«H«á¡A³q«H½×¾Âªº¦¨­û±N¤£·|¦¬¨ì\n"
+" ·s»D¸s²Õ¦­¥ýªº°Q½×¤º®e¡C"
+
+#: Mailman/Gui/Usenet.py:69
+msgid "Mass catchup completed"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:46
+msgid "%(listinfo_link)s list run by %(owner_link)s"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:54
+#, fuzzy
+msgid "%(realname)s administrative interface"
+msgstr "%s ºÞ²z¤¶­±"
+
+#: Mailman/HTMLFormatter.py:55
+msgid " (requires authorization)"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:58
+#, fuzzy
+msgid "Overview of all %(hostname)s mailing lists"
+msgstr "³q«H½×¾Â¦Cªí¡C"
+
+#: Mailman/HTMLFormatter.py:79
+#, fuzzy
+msgid "<em>(1 private member not shown)</em>"
+msgstr "<em>(%d «D¤½¶}·|­û %s ¤£Åã¥Ü)</em>"
+
+#: Mailman/HTMLFormatter.py:81
+#, fuzzy
+msgid "<em>(%(num_concealed)d private members not shown)</em>"
+msgstr "<em>(%d «D¤½¶}·|­û %s ¤£Åã¥Ü)</em>"
+
+#: Mailman/HTMLFormatter.py:136
+msgid "; it was disabled by you"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:138
+#, fuzzy
+msgid "; it was disabled by the list administrator"
+msgstr "¾Â¥D"
+
+#: Mailman/HTMLFormatter.py:140
+msgid "; it was disabled due to excessive bounces"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:142
+msgid "; it was disabled for unknown reasons"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:144
+#, fuzzy
+msgid "Note: your list delivery is currently disabled %(reason)s."
+msgstr "³Æµù - ±z½×¾Âªº¦¬«H³]©w²{¦b¬OÃö³¬¡C"
+
+#: Mailman/HTMLFormatter.py:147
+#, fuzzy
+msgid "Mail delivery"
+msgstr "¨ú®ø«H¥óµo°e"
+
+#: Mailman/HTMLFormatter.py:149 Mailman/HTMLFormatter.py:294
+msgid "the list administrator"
+msgstr "¾Â¥D"
+
+#: Mailman/HTMLFormatter.py:150
+msgid ""
+"<p>%(note)s\n"
+"\n"
+" <p>You may have disabled list delivery intentionally,\n"
+" or it may have been triggered by bounces from your email\n"
+" address. In either case, to re-enable delivery, change the\n"
+" %(link)s option below. Contact %(mailto)s if you have any\n"
+" questions or need assistance."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:162
+msgid ""
+"<p>We have received some recent bounces from your\n"
+" address. Your current <em>bounce score</em> is %(score)s out of "
+"a\n"
+" maximum of %(total)s. Please double check that your subscribed\n"
+" address is correct and that there are no problems with delivery "
+"to\n"
+" this address. Your bounce score will be automatically reset if\n"
+" the problems are corrected soon."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:174
+#, fuzzy
+msgid ""
+"(Note - you are subscribing to a list of mailing lists, so the %(type)s "
+"notice will be sent to the admin address for your membership, %(addr)s.)<p>"
+msgstr "(µù - ±z­q¾\¤F¤@­Ó³q«H½×¾Â¡A©Ò¥H %s ·|±N±zªº·|Äy³qª¾¾Â¥D¡A %s ¡C)<p>"
+
+#: Mailman/HTMLFormatter.py:184
+#, fuzzy
+msgid ""
+"You will be sent email requesting confirmation, to\n"
+" prevent others from gratuitously subscribing you."
+msgstr "±z¥²¶·±H¥X½T»{«H¡A¥H¨¾¤î¥¼¸g±z¦P·Nªº¥N­q¦æ¬°¡C"
+
+#: Mailman/HTMLFormatter.py:187
+#, fuzzy
+msgid ""
+"This is a closed list, which means your subscription\n"
+" will be held for approval. You will be notified of the list\n"
+" moderator's decision by email."
+msgstr ""
+"³o¬O¤£¤½¶}ªº³q«H½×¾Â¡A¤]´N¬O»¡±zªº­q¾\¥Ó½Ð±N°e¾Â¥D®Ö­ã¡C±z±N·|¦¬¨ì¾Â¥Dµô¨Mµ²"
+"ªGªº email ³qª¾¡C "
+
+#: Mailman/HTMLFormatter.py:190 Mailman/HTMLFormatter.py:197
+msgid "also "
+msgstr "¤]"
+
+#: Mailman/HTMLFormatter.py:192
+#, fuzzy
+msgid ""
+"You will be sent email requesting confirmation, to\n"
+" prevent others from gratuitously subscribing you. Once\n"
+" confirmation is received, your request will be held for "
+"approval\n"
+" by the list moderator. You will be notified of the moderator's\n"
+" decision by email."
+msgstr ""
+"±z¥²¶·±H¥X½T»{«H¥H¨¾¤îµL¬Gªº¥N­q¦æ¬°¡C¤@¥¹¦¬¨ì±zªº½T»{«H«á¡A±zªº­q¾\¥Ó½Ð±NÂà"
+"°e¾Â¥D®Ö­ã¡Cµy«á±z·|¦¬¨ì¾Â¥Dªºµô¨M email¡C"
+
+#: Mailman/HTMLFormatter.py:201
+#, fuzzy
+msgid ""
+"This is %(also)sa private list, which means that the\n"
+" list of members is not available to non-members."
+msgstr "³o¬O %s ¤Wªº¨p¤H½×¾Â¡A¤]´N¬O»¡·|­û²M³æ¤£¹ï«D·|­û¤½¶}¡C"
+
+#: Mailman/HTMLFormatter.py:204
+#, fuzzy
+msgid ""
+"This is %(also)sa hidden list, which means that the\n"
+" list of members is available only to the list administrator."
+msgstr "³o¬O¥D¾÷ %s ¤Wªº¥¼¤½¶}½×¾Â¡A·N«ä´N¬O»¡·|­û²M³æ¶È­­¾Â¥D¬d¾\¡C"
+
+#: Mailman/HTMLFormatter.py:207
+#, fuzzy
+msgid ""
+"This is %(also)sa public list, which means that the\n"
+" list of members list is available to everyone."
+msgstr "³o¬O¥D¾÷ %s ¤Wªº¤½¶}½×¾Â¡A·N«ä¬O»¡­q¾\·|­û²M³æ¥i¤½¶}¬d¾\"
+
+#: Mailman/HTMLFormatter.py:210
+#, fuzzy
+msgid ""
+" (but we obscure the addresses so they are not\n"
+" easily recognizable by spammers)."
+msgstr "(¦ý¬O§Ú­ÌÁôÂæa§}¥H¨¾¤î±Hµo©U§£«Hªº¤H»´©öªº¨ú±o¶l¥ó¦a§})¡C"
+
+#: Mailman/HTMLFormatter.py:215
+#, fuzzy
+msgid ""
+"<p>(Note that this is an umbrella list, intended to\n"
+" have only other mailing lists as members. Among other things,\n"
+" this means that your confirmation request will be sent to the\n"
+" `%(sfx)s' account for your address.)"
+msgstr ""
+"<p>(½Ðª`·N³o¬O¦¨­û¶È­­©ó³q«H½×¾Â±b¸¹ªº¾ðª¬³q«H½×¾Â¡C ¤]´N¬O»¡±zªº½T»{«H¥Ó½Ð"
+"À³±H¨ì±z¦b¥D¾÷ '%s' ¤Wªº±b¸¹¡C)"
+
+#: Mailman/HTMLFormatter.py:244
+#, fuzzy
+msgid "<b><i>either</i></b> "
+msgstr "<b><i> ¦P®É</i></b> "
+
+#: Mailman/HTMLFormatter.py:249
+msgid ""
+"To unsubscribe from %(realname)s, get a password reminder,\n"
+" or change your subscription options %(either)senter your "
+"subscription\n"
+" email address:\n"
+" <p><center> "
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:256
+#, fuzzy
+msgid "Unsubscribe or edit options"
+msgstr "%s °h­q³qª¾"
+
+#: Mailman/HTMLFormatter.py:260
+#, fuzzy
+msgid ""
+"<p>... <b><i>or</i></b> select your entry from\n"
+" the subscribers list (see above)."
+msgstr "<p>... <b><i>©Î</i></b> ¦Û·|­û²M³æÂI¿ï±zªº±b¸¹ (¨£¤W¤è)¡C"
+
+#: Mailman/HTMLFormatter.py:262
+msgid ""
+" If you leave the field blank, you will be prompted for\n"
+" your email address"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:270
+#, fuzzy
+msgid ""
+"(<i>The %(which)s is only available to the list\n"
+" members.</i>)"
+msgstr "<i>%s ¶È­­½×¾Â¦¨­û¨Ï¥Î¡C</i>)"
+
+#: Mailman/HTMLFormatter.py:274
+#, fuzzy
+msgid ""
+"(<i>The %(which)s is only available to the list\n"
+" administrator.</i>)"
+msgstr "<i>%s ­­¾Â¥D°õ¦æ¡C</i>"
+
+#: Mailman/HTMLFormatter.py:284
+msgid "Click here for the list of "
+msgstr "ÂI¦¹³B¨ì½×¾Â"
+
+#: Mailman/HTMLFormatter.py:286
+msgid " subscribers: "
+msgstr " ­q¤á¡G"
+
+#: Mailman/HTMLFormatter.py:288
+msgid "Visit Subscriber list"
+msgstr "¬d¬Ý­q¾\·|­û²M³æ"
+
+#: Mailman/HTMLFormatter.py:291
+msgid "members"
+msgstr "·|­û"
+
+#: Mailman/HTMLFormatter.py:292
+msgid "Address:"
+msgstr "¦a§}¡G"
+
+#: Mailman/HTMLFormatter.py:295
+msgid "Admin address:"
+msgstr "¾Â¥D email¡G"
+
+#: Mailman/HTMLFormatter.py:297
+msgid "subscribers list"
+msgstr "­q¾\·|­û²M³æ"
+
+#: Mailman/HTMLFormatter.py:299
+msgid " <p>Enter your "
+msgstr " <p>¿é¤J±zªº "
+
+#: Mailman/HTMLFormatter.py:301
+msgid " and password to visit the subscribers list: <p><center> "
+msgstr " ¤Î±K½X¥H«e©¹·|­û³]©wºô­¶¡G<p><center>"
+
+#: Mailman/HTMLFormatter.py:306
+msgid "Password: "
+msgstr "±K½X¡G "
+
+#: Mailman/HTMLFormatter.py:310
+msgid "Visit Subscriber List"
+msgstr "¬d¬Ý­q¾\·|­û²M³æ"
+
+#: Mailman/HTMLFormatter.py:340
+msgid "Once a month, your password will be emailed to you as a reminder."
+msgstr "±zªº±K½X¨C­Ó¤ë±N¦Û°Ê±Hµ¹§A¤@¦¸³Æ§Ñ¡C"
+
+#: Mailman/HTMLFormatter.py:379
+msgid "current archive"
+msgstr "²{¦bªºÀÉ®×"
+
+#: Mailman/Handlers/Acknowledge.py:64
+msgid "%(realname)s post acknowledgement"
+msgstr "%(realname)s µo¨¥¦^°õ"
+
+#: Mailman/Handlers/CalcRecips.py:68
+msgid ""
+"Your urgent message to the %(realname)s mailing list was not authorized for\n"
+"delivery. The original message as received by Mailman is attached.\n"
+msgstr ""
+
+#: Mailman/Handlers/Decorate.py:53
+#, fuzzy
+msgid "non-digest header"
+msgstr "ºK­n¼ÐÃD"
+
+#: Mailman/Handlers/Decorate.py:54
+#, fuzzy
+msgid "non-digest footer"
+msgstr "ºK­nµù¸}"
+
+#: Mailman/Handlers/Emergency.py:29
+msgid "Emergency hold on all list traffic is in effect"
+msgstr ""
+
+#: Mailman/Handlers/Emergency.py:30 Mailman/Handlers/Hold.py:60
+#, fuzzy
+msgid "Your message was deemed inappropriate by the moderator."
+msgstr "¾Â¥D»{¬°±z§ë®Ñªº¤º®e¤£§´¡C"
+
+#: Mailman/Handlers/Hold.py:55
+msgid "Sender is explicitly forbidden"
+msgstr "±H«H¤H³Q©ú¥O¸T¤î"
+
+#: Mailman/Handlers/Hold.py:56
+msgid "You are forbidden from posting messages to this list."
+msgstr "±z³Q¸T¤î§ë®Ñ¨ì¥»½×¾Â¡C"
+
+#: Mailman/Handlers/Hold.py:59
+msgid "Post to moderated list"
+msgstr "§ë®Ñ¨ìºÞ¨îªº½×¾Â"
+
+#: Mailman/Handlers/Hold.py:63
+msgid "Post by non-member to a members-only list"
+msgstr "«D·|­û§ë®Ñ¨ì­­·|­ûµo¨¥ªº½×¾Â"
+
+#: Mailman/Handlers/Hold.py:64
+msgid "Non-members are not allowed to post messages to this list."
+msgstr "¤£¤¹³\«D·|­û¦b¦¹½×¾Âµo¨¥"
+
+#: Mailman/Handlers/Hold.py:67
+msgid "Posting to a restricted list by sender requires approval"
+msgstr "§ë®Ñ¨ìºÞ¨îªº½×¾Â»Ý­n®Ö­ã"
+
+#: Mailman/Handlers/Hold.py:68
+msgid "This list is restricted; your message was not approved."
+msgstr "³o¬O¨p¤H½×¾Â¡F¤£¤¹³\§ë®Ñ¡C"
+
+#: Mailman/Handlers/Hold.py:71
+msgid "Too many recipients to the message"
+msgstr "«H¥ó¦¬¥ó¤H¤Ó¦h"
+
+#: Mailman/Handlers/Hold.py:72
+msgid "Please trim the recipient list; it is too long."
+msgstr "½Ð§R´î¦¬¥ó¤Hªº¼Æ¥Ø¡A¦¬¥ó¤H¤Ó¦h¤F¡C"
+
+#: Mailman/Handlers/Hold.py:75
+msgid "Message has implicit destination"
+msgstr "«H¥ó¦³Áô§t¦¬¥ó¤H"
+
+#: Mailman/Handlers/Hold.py:76
+msgid ""
+"Blind carbon copies or other implicit destinations are\n"
+"not allowed. Try reposting your message by explicitly including the list\n"
+"address in the To: or Cc: fields."
+msgstr ""
+"¤£¤¹³\§ë®Ñ«H¥óªº¦¬¥ó¤HÄæ¦ìªÅ¥Õ¡A©ÎªÌ¤£²M·¡¡C\n"
+"§ë®Ñ®É½Ð±N±ý§ë®Ñ¤§½×¾Â¦a§}¦C¦b¦¬¥ó¤HÄæ¦ì\n"
+"( To: ©Î Cc: )¡C"
+
+#: Mailman/Handlers/Hold.py:81
+msgid "Message may contain administrivia"
+msgstr "°T®§¥]§tºÞ²z«ü¥O"
+
+#: Mailman/Handlers/Hold.py:86
+msgid ""
+"Please do *not* post administrative requests to the mailing\n"
+"list. If you wish to subscribe, visit %(listurl)s or send a message with "
+"the\n"
+"word `help' in it to the request address, %(request)s, for further\n"
+"instructions."
+msgstr ""
+"½Ð *¤£­n* ±HµoºÞ²z­n¨D¨ì³q«H½×¾Â¤W¡A¦pªG±z»Ý­n­q¾\\n"
+"¡A½Ð¨ì %(listurl)s ©Î¥H 'help' ¬°«H¥ó¤º®e±H¨ì¥Ó½Ð±b¸¹\n"
+" %(request)s ¡A¥H¨ú±o¶i¤@¨Bªº«ü¥Ü¡C"
+
+#: Mailman/Handlers/Hold.py:92
+msgid "Message has a suspicious header"
+msgstr "«H¥ó§t¦³¥iºÃªº¼ÐÃD"
+
+#: Mailman/Handlers/Hold.py:93
+msgid "Your message had a suspicious header."
+msgstr "±zªº«H¥ó§t¦³¥iºÃªº¼ÐÃD¡C"
+
+#: Mailman/Handlers/Hold.py:103
+#, fuzzy
+msgid ""
+"Message body is too big: %(size)d bytes with a limit of\n"
+"%(limit)d KB"
+msgstr "«H¥ó¤º®e¹L¤j¡G %d bytes ¡]¤W­­ %d KB)"
+
+#: Mailman/Handlers/Hold.py:108
+#, fuzzy
+msgid ""
+"Your message was too big; please trim it to less than\n"
+"%(kb)d KB in size."
+msgstr "±zªº«H¥ó¤Ó¤j¡A½Ð§R´î«H¥ó¨ì¤p©ó%(kb)s KB¡C"
+
+#: Mailman/Handlers/Hold.py:226
+msgid "Your message to %(listname)s awaits moderator approval"
+msgstr "±z±H¨ì %(listname)s ªº«H¥ó¤w°e¥æ¾Â¥Dµô¨M"
+
+#: Mailman/Handlers/Hold.py:246
+msgid "%(listname)s post from %(sender)s requires approval"
+msgstr "%(listname)s µo¨¥ ¨Ó¦Û %(sender)s »Ý­n®Ö­ã"
+
+#: Mailman/Handlers/Hold.py:253
+msgid ""
+"If you reply to this message, keeping the Subject: header intact, Mailman "
+"will\n"
+"discard the held message. Do this if the message is spam. If you reply to\n"
+"this message and include an Approved: header with the list password in it, "
+"the\n"
+"message will be approved for posting to the list. The Approved: header can\n"
+"also appear in the first line of the body of the reply."
+msgstr ""
+
+#: Mailman/Handlers/Moderate.py:35
+#, fuzzy
+msgid "Post by a moderated member"
+msgstr "§ë®Ñ¨ìºÞ¨îªº½×¾Â"
+
+#: Mailman/Handlers/Moderate.py:130
+msgid ""
+"You are not allowed to post to this mailing list, and your message has been\n"
+"automatically rejected. If you think that your messages are being rejected "
+"in\n"
+"error, contact the mailing list owner at %(listowner)s."
+msgstr ""
+
+#: Mailman/Handlers/Moderate.py:145
+#, fuzzy
+msgid "Auto-discard notification"
+msgstr "%s °h­q³qª¾"
+
+#: Mailman/Handlers/Moderate.py:148
+msgid "The attached message has been automatically discarded."
+msgstr ""
+
+#: Mailman/Handlers/Replybot.py:71
+#, fuzzy
+msgid "Auto-response for your message to "
+msgstr "¥H¼ÐÃD \"%s\" §ë®Ñ"
+
+#: Mailman/Handlers/Replybot.py:72
+#, fuzzy
+msgid "the \"%(realname)s\" mailing list"
+msgstr "Åwªï¥[¤J \"%s\" ³q«H½×¾Â %s"
+
+#: Mailman/Handlers/Replybot.py:104
+msgid "The Mailman Replybot"
+msgstr ""
+
+#: Mailman/Handlers/Scrubber.py:81
+msgid "HTML attachment scrubbed and removed"
+msgstr ""
+
+#: Mailman/Handlers/Scrubber.py:94 Mailman/Handlers/Scrubber.py:116
+msgid ""
+"An HTML attachment was scrubbed...\n"
+"URL: %(url)s\n"
+msgstr ""
+
+#: Mailman/Handlers/Scrubber.py:128
+#, fuzzy
+msgid "no subject"
+msgstr "(¨S¦³¥DÃD)"
+
+#: Mailman/Handlers/Scrubber.py:129
+msgid "no date"
+msgstr ""
+
+#: Mailman/Handlers/Scrubber.py:130
+msgid "unknown sender"
+msgstr ""
+
+#: Mailman/Handlers/Scrubber.py:132
+msgid ""
+"An embedded message was scrubbed...\n"
+"From: %(who)s\n"
+"Subject: %(subject)s\n"
+"Date: %(date)s\n"
+"Size: %(size)s\n"
+"Url: %(url)s\n"
+msgstr ""
+
+#: Mailman/Handlers/Scrubber.py:158
+msgid ""
+"A non-text attachment was scrubbed...\n"
+"Name: %(filename)s\n"
+"Type: %(ctype)s\n"
+"Size: %(size)d bytes\n"
+"Desc: %(desc)s\n"
+"Url : %(url)s\n"
+msgstr ""
+
+#: Mailman/Handlers/ToDigest.py:140
+msgid "%(realname)s Digest, Vol %(volume)d, Issue %(issue)d"
+msgstr ""
+
+#: Mailman/Handlers/ToDigest.py:178
+#, fuzzy
+msgid "digest header"
+msgstr "ºK­n¼ÐÃD"
+
+#: Mailman/Handlers/ToDigest.py:181
+msgid "Digest Header"
+msgstr "ºK­n¼ÐÃD"
+
+#: Mailman/Handlers/ToDigest.py:194
+#, fuzzy
+msgid "Today's Topics:\n"
+msgstr "¤µ¤é¼ÐÃD¡G"
+
+#: Mailman/Handlers/ToDigest.py:261
+#, fuzzy
+msgid "Today's Topics (%(msgcount)d messages)"
+msgstr "¤µ¤é¼ÐÃD (%s)"
+
+#: Mailman/Handlers/ToDigest.py:287
+#, fuzzy
+msgid "digest footer"
+msgstr "ºK­nµù¸}"
+
+#: Mailman/Handlers/ToDigest.py:290
+msgid "Digest Footer"
+msgstr "ºK­nµù¸}"
+
+#: Mailman/Handlers/ToDigest.py:304
+#, fuzzy
+msgid "End of "
+msgstr "µ²§ô¡G "
+
+#: Mailman/ListAdmin.py:306
+#, fuzzy
+msgid "Posting of your message titled \"%(subject)s\""
+msgstr "¥H¼ÐÃD \"%s\" §ë®Ñ"
+
+#: Mailman/ListAdmin.py:334
+#, fuzzy
+msgid "Forward of moderated message"
+msgstr "§ë®Ñ¨ìºÞ¨îªº½×¾Â"
+
+#: Mailman/ListAdmin.py:393
+#, fuzzy
+msgid "New subscription request to list %(realname)s from %(addr)s"
+msgstr "%s ½×¾Â­q¾\¥Ó½Ð¡A¥Ñ %s ´£¥X"
+
+#: Mailman/ListAdmin.py:416
+msgid "Subscription request"
+msgstr "­q¾\¥Ó½Ð"
+
+#: Mailman/ListAdmin.py:446
+#, fuzzy
+msgid "New unsubscription request from %(realname)s by %(addr)s"
+msgstr "%s ½×¾Â­q¾\¥Ó½Ð¡A¥Ñ %s ´£¥X"
+
+#: Mailman/ListAdmin.py:469
+#, fuzzy
+msgid "Unsubscription request"
+msgstr "­q¾\¥Ó½Ð"
+
+#: Mailman/ListAdmin.py:500
+msgid "Original Message"
+msgstr "­ì¤å"
+
+#: Mailman/ListAdmin.py:503
+#, fuzzy
+msgid "Request to mailing list %(realname)s rejected"
+msgstr "¦b½×¾Â %s ªº¥Ó½Ð¤w³Q©Úµ´"
+
+#: Mailman/MTA/Manual.py:55
+msgid ""
+"The mailing list `%(listname)s' has been created via the through-the-web\n"
+"interface. In order to complete the activation of this mailing list, the\n"
+"proper /etc/aliases (or equivalent) file must be updated. The program\n"
+"`newaliases' may also have to be run.\n"
+"\n"
+"Here are the entries for the /etc/aliases file:\n"
+msgstr ""
+
+#: Mailman/MTA/Manual.py:65
+msgid ""
+"\n"
+"To finish creating your mailing list, you must edit your /etc/aliases (or\n"
+"equivalent) file by adding the following lines, and possibly running the\n"
+"`newaliases' program:\n"
+"\n"
+"## %(listname)s mailing list"
+msgstr ""
+
+#: Mailman/MTA/Manual.py:86
+#, fuzzy
+msgid "Mailing list creation request for list %(listname)s"
+msgstr "³q«H½×¾Â¥DºÞ¨Æ°È¥Ó½Ð"
+
+#: Mailman/MTA/Manual.py:101
+msgid ""
+"The mailing list `%(listname)s' has been removed via the through-the-web\n"
+"interface. In order to complete the de-activation of this mailing list, "
+"the\n"
+"appropriate /etc/aliases (or equivalent) file must be updated. The program\n"
+"`newaliases' may also have to be run.\n"
+"\n"
+"Here are the entries in the /etc/aliases file that should be removed:\n"
+msgstr ""
+
+#: Mailman/MTA/Manual.py:111
+msgid ""
+"\n"
+"To finish removing your mailing list, you must edit your /etc/aliases (or\n"
+"equivalent) file by removing the following lines, and possibly running the\n"
+"`newaliases' program:\n"
+"\n"
+"## %(listname)s mailing list"
+msgstr ""
+
+#: Mailman/MTA/Manual.py:130
+msgid "Mailing list removal request for list %(listname)s"
+msgstr ""
+
+#: Mailman/MTA/Postfix.py:299
+msgid "checking permissions on %(file)s"
+msgstr ""
+
+#: Mailman/MTA/Postfix.py:309
+msgid "%(file)s permissions must be 066x (got %(octmode)s)"
+msgstr ""
+
+#: Mailman/MTA/Postfix.py:311 Mailman/MTA/Postfix.py:337 bin/check_perms:101
+#: bin/check_perms:123 bin/check_perms:142 bin/check_perms:160
+#: bin/check_perms:180 bin/check_perms:204 bin/check_perms:224
+#: bin/check_perms:238 bin/check_perms:258 bin/check_perms:294
+msgid "(fixing)"
+msgstr ""
+
+#: Mailman/MTA/Postfix.py:327
+msgid "checking ownership of %(dbfile)s"
+msgstr ""
+
+#: Mailman/MTA/Postfix.py:334
+msgid "%(dbfile)s owned by %(owner)s (must be owned by Mailman)"
+msgstr ""
+
+#: Mailman/MailList.py:671
+msgid "You have been invited to join the %(listname)s mailing list"
+msgstr ""
+
+#: Mailman/MailList.py:775 Mailman/MailList.py:1132
+#, fuzzy
+msgid " from %(remote)s"
+msgstr " ±H¦Û %s"
+
+#: Mailman/MailList.py:812
+#, fuzzy
+msgid "subscriptions to %(realname)s require moderator approval"
+msgstr "%s ªº­q¾\»Ý­n¾Â¥D®Ö­ã"
+
+#: Mailman/MailList.py:871 bin/add_members:277
+#, fuzzy
+msgid "%(realname)s subscription notification"
+msgstr "%s ­q¾\³qª¾"
+
+#: Mailman/MailList.py:889
+#, fuzzy
+msgid "unsubscriptions require moderator approval"
+msgstr "%s ªº­q¾\»Ý­n¾Â¥D®Ö­ã"
+
+#: Mailman/MailList.py:910
+#, fuzzy
+msgid "%(realname)s unsubscribe notification"
+msgstr "%s °h­q³qª¾"
+
+#: Mailman/MailList.py:1052
+#, fuzzy
+msgid "subscriptions to %(name)s require administrator approval"
+msgstr "%s ªº­q¾\»Ý­n¾Â¥D®Ö­ã"
+
+#: Mailman/MailList.py:1298
+msgid "Last autoresponse notification for today"
+msgstr ""
+
+#: Mailman/Queue/CommandRunner.py:73
+msgid "Ignoring non-text/plain MIME parts"
+msgstr ""
+
+#: Mailman/Queue/CommandRunner.py:125
+msgid ""
+"The results of your email command are provided below.\n"
+"Attached is your original message.\n"
+msgstr ""
+
+#: Mailman/Queue/CommandRunner.py:130
+msgid "- Results:"
+msgstr ""
+
+#: Mailman/Queue/CommandRunner.py:136
+msgid ""
+"\n"
+"- Unprocessed:"
+msgstr ""
+
+#: Mailman/Queue/CommandRunner.py:139
+msgid ""
+"\n"
+"- Ignored:"
+msgstr ""
+
+#: Mailman/Queue/CommandRunner.py:141
+msgid ""
+"\n"
+"- Done.\n"
+"\n"
+msgstr ""
+
+#: Mailman/Queue/CommandRunner.py:159
+msgid "The results of your email commands"
+msgstr ""
+
+#: Mailman/htmlformat.py:627
+#, fuzzy
+msgid "Delivered by Mailman<br>version %(version)s"
+msgstr "¥Ñ Mailman<br>ª©¥» %s µo°e"
+
+#: Mailman/htmlformat.py:628
+msgid "Python Powered"
+msgstr "Python ¥[¤O"
+
+#: Mailman/htmlformat.py:629
+msgid "Gnu's Not Unix"
+msgstr ""
+
+#: bin/add_members:26
+msgid ""
+"Add members to a list from the command line.\n"
+"\n"
+"Usage:\n"
+" add_members [options] listname\n"
+"\n"
+"Options:\n"
+"\n"
+" --regular-members-file=file\n"
+" -r file\n"
+" A file containing addresses of the members to be added, one\n"
+" address per line. This list of people become non-digest\n"
+" members. If file is `-', read addresses from stdin. Note that\n"
+" -n/--non-digest-members-file are deprecated synonyms for this "
+"option.\n"
+"\n"
+" --digest-members-file=file\n"
+" -d=file\n"
+" Similar to above, but these people become digest members.\n"
+"\n"
+" --changes-msg=<y|n>\n"
+" -c <y|n> \n"
+"\tSet whether or not to send the list members the `there's going to be\n"
+"\tbig changes to your list' message. defaults to no.\n"
+"\n"
+" --welcome-msg=<y|n>\n"
+" -w <y|n>\n"
+" Set whether or not to send the list members a welcome message,\n"
+" overriding whatever the list's `send_welcome_msg' setting is.\n"
+"\n"
+" --admin-notify=<y|n>\n"
+" -a <y|n>\n"
+" Set whether or not to send the list administrators a notification "
+"on\n"
+" the success/failure of these subscriptions, overriding whatever the\n"
+" list's `admin_notify_mchanges' setting is.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname\n"
+" The name of the Mailman list you are adding members to. It must\n"
+" already exist.\n"
+"\n"
+"You must supply at least one of -n and -d options. At most one of the\n"
+"files can be `-'.\n"
+msgstr ""
+
+#: bin/add_members:130
+msgid "Big change in %(listname)s@%(listhost)s mailing list"
+msgstr ""
+
+#: bin/add_members:163
+#, fuzzy
+msgid "Already a member: %(member)s"
+msgstr "¤w¬O·|­û"
+
+#: bin/add_members:166
+#, fuzzy
+msgid "Bad/Invalid email address: blank line"
+msgstr "¤£¥¿½T ªº email ¦a§}"
+
+#: bin/add_members:168
+#, fuzzy
+msgid "Bad/Invalid email address: %(member)s"
+msgstr "¤£¥¿½T ªº email ¦a§}"
+
+#: bin/add_members:170
+#, fuzzy
+msgid "Hostile address (illegal characters): %(member)s"
+msgstr "¤Ï¹ï¦a§}(¤£¥¿½Tªº¦r¤¸)"
+
+#: bin/add_members:172
+#, fuzzy
+msgid "Subscribed: %(member)s"
+msgstr "¤@¯ë­q¾\·|­û"
+
+#: bin/add_members:219
+msgid "Bad argument to -c/--changes-msg: %(arg)s"
+msgstr ""
+
+#: bin/add_members:226
+msgid "Bad argument to -w/--welcome-msg: %(arg)s"
+msgstr ""
+
+#: bin/add_members:233
+msgid "Bad argument to -a/--admin-notify: %(arg)s"
+msgstr ""
+
+#: bin/add_members:239
+msgid "Cannot read both digest and normal members from standard input."
+msgstr ""
+
+#: bin/add_members:245 bin/config_list:101 bin/find_member:93 bin/inject:86
+#: bin/list_admins:85 bin/list_members:175 bin/sync_members:218
+#: cron/bumpdigests:82
+#, fuzzy
+msgid "No such list: %(listname)s"
+msgstr "µL¦¹½×¾Â \"%s\": %s\n"
+
+#: bin/add_members:265 bin/change_pw:154 bin/check_db:110 bin/sync_members:240
+#: cron/bumpdigests:74
+msgid "Nothing to do."
+msgstr ""
+
+#: bin/arch:19
+msgid ""
+"Rebuild a list's archive.\n"
+"\n"
+"Use this command to rebuild the archives for a mailing list. You may want "
+"to\n"
+"do this if you edit some messages in an archive, or remove some messages "
+"from\n"
+"an archive.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] <listname> [<mbox>]\n"
+"\n"
+"Where options are:\n"
+" -h / --help\n"
+" Print this help message and exit.\n"
+"\n"
+" -s N\n"
+" --start=N\n"
+" Start indexing at article N, where article 0 is the first in the "
+"mbox.\n"
+" Defaults to 0.\n"
+"\n"
+" -e M\n"
+" --end=M\n"
+" End indexing at article M. This script is not very efficient with\n"
+" respect to memory management, and for large archives, it may not be\n"
+" possible to index the mbox entirely. For that reason, you can "
+"specify\n"
+" the start and end article numbers.\n"
+"\n"
+"Where <mbox> is the path to a list's complete mbox archive. Usually this "
+"will \n"
+"be some path in the archives/private directory. For example:\n"
+"\n"
+"%% bin/arch mylist archives/private/mylist.mbox/mylist.mbox\n"
+"\n"
+"<mbox> is optional. If it is missing, it is calculated.\n"
+msgstr ""
+
+#: bin/arch:102
+#, fuzzy
+msgid "listname is required"
+msgstr "»Ý­n½×¾Â¦WºÙ¡C"
+
+#: bin/arch:120 bin/change_pw:102 bin/config_list:233
+#, fuzzy
+msgid ""
+"No such list \"%(listname)s\"\n"
+"%(e)s"
+msgstr "µL¦¹½×¾Â \"%s\": %s\n"
+
+#: bin/arch:143
+msgid "Cannot open mbox file %(mbox)s: %(msg)s"
+msgstr ""
+
+#: bin/change_pw:19
+msgid ""
+"Change a list's password.\n"
+"\n"
+"Prior to Mailman 2.1, list passwords were kept in crypt'd format -- "
+"usually.\n"
+"Some Python installations didn't have the crypt module available, so they'd\n"
+"fall back to md5. Then suddenly the Python installation might grow a crypt\n"
+"module and all list passwords would be broken.\n"
+"\n"
+"In Mailman 2.1, all list and site passwords are stored in SHA1 hexdigest\n"
+"form. This breaks list passwords for all existing pre-Mailman 2.1 lists, "
+"and\n"
+"since those passwords aren't stored anywhere in plain text, they cannot be\n"
+"retrieved and updated.\n"
+"\n"
+"Thus, this script generates new passwords for a list, and optionally sends "
+"it\n"
+"to all the owners of the list.\n"
+"\n"
+"Usage: change_pw [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" --all / -a\n"
+" Change the password for all lists.\n"
+"\n"
+" --domain=domain\n"
+" -d domain\n"
+" Change the password for all lists in the virtual domain `domain'. "
+"It\n"
+" is okay to give multiple -d options.\n"
+"\n"
+" --listname=listname\n"
+" -l listname\n"
+" Change the password only for the named list. It is okay to give\n"
+" multiple -l options.\n"
+"\n"
+" --password=newpassword\n"
+" -p newpassword\n"
+" Use the supplied plain text password `newpassword' as the new "
+"password\n"
+" for any lists that are being changed (as specified by the -a, -d, "
+"and\n"
+" -l options). If not given, lists will be assigned a randomly\n"
+" generated new password.\n"
+"\n"
+" --quiet / -q\n"
+" Don't notify list owners of the new password. You'll have to have\n"
+" some other way of letting the list owners know the new password\n"
+" (presumably out-of-band).\n"
+"\n"
+" --help / -h\n"
+" Print this help message and exit.\n"
+msgstr ""
+
+#: bin/change_pw:140
+msgid "Bad arguments: %(strargs)s"
+msgstr ""
+
+#: bin/change_pw:144
+#, fuzzy
+msgid "Empty list passwords are not allowed"
+msgstr "¤£¤¹³\ºÞ²zªÌ±K½XªÅ¥Õ"
+
+#: bin/change_pw:175
+msgid "New %(listname)s password: %(notifypassword)s"
+msgstr ""
+
+#: bin/change_pw:184
+msgid "Your new %(listname)s list password"
+msgstr ""
+
+#: bin/change_pw:185
+msgid ""
+"The site administrator at %(hostname)s has changed the password for your\n"
+"mailing list %(listname)s. It is now\n"
+"\n"
+" %(notifypassword)s\n"
+"\n"
+"Please be sure to use this for all future list administration. You may "
+"want\n"
+"to log in now to your list and change the password to something more to "
+"your\n"
+"liking. Visit your list admin page at\n"
+"\n"
+" %(adminurl)s\n"
+msgstr ""
+
+#: bin/check_db:19
+msgid ""
+"Check a list's config database file for integrity.\n"
+"\n"
+"All of the following files are checked:\n"
+"\n"
+" config.pck\n"
+" config.pck.last\n"
+" config.db\n"
+" config.db.last\n"
+" config.safety\n"
+"\n"
+"It's okay if any of these are missing. config.pck and config.pck.last are\n"
+"pickled versions of the config database file for 2.1a3 and beyond. config."
+"db\n"
+"and config.db.last are used in all earlier versions, and these are Python\n"
+"marshals. config.safety is a pickle written by 2.1a3 and beyond when the\n"
+"primary config.pck file could not be read.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname [listname ...]]\n"
+"\n"
+"Options:\n"
+"\n"
+" --all / -a\n"
+" Check the databases for all lists. Otherwise only the lists named "
+"on\n"
+" the command line are checked.\n"
+"\n"
+" --verbose / -v\n"
+" Verbose output. The state of every tested file is printed.\n"
+" Otherwise only corrupt files are displayed.\n"
+"\n"
+" --help / -h\n"
+" Print this text and exit.\n"
+msgstr ""
+
+#: bin/check_db:115
+msgid "No list named:"
+msgstr ""
+
+#: bin/check_db:124
+#, fuzzy
+msgid "List:"
+msgstr "½×¾Â"
+
+#: bin/check_db:144
+msgid " %(file)s: okay"
+msgstr ""
+
+#: bin/check_perms:19
+msgid ""
+"Check the permissions for the Mailman installation.\n"
+"\n"
+"Usage: %(PROGRAM)s [-f] [-v] [-h]\n"
+"\n"
+"With no arguments, just check and report all the files that have bogus\n"
+"permissions or group ownership. With -f (and run as root), fix all the\n"
+"permission problems found. With -v be verbose.\n"
+"\n"
+msgstr ""
+
+#: bin/check_perms:86
+msgid " checking gid and mode for %(path)s"
+msgstr ""
+
+#: bin/check_perms:98
+msgid "%(path)s bad gid (has: %(groupname)s, expected %(MAILMAN_GRPNAME)s)"
+msgstr ""
+
+#: bin/check_perms:121
+msgid "directory permissions must be %(octperms)s: %(path)s"
+msgstr ""
+
+#: bin/check_perms:132
+msgid "checking mode for %(prefix)s"
+msgstr ""
+
+#: bin/check_perms:140
+msgid "directory must be at least 02775: %(d)s"
+msgstr ""
+
+#: bin/check_perms:153
+msgid "checking perms on %(private)s"
+msgstr ""
+
+#: bin/check_perms:158
+msgid "%(private)s must not be other-readable"
+msgstr ""
+
+#: bin/check_perms:178
+msgid "mbox file must be at least 0660:"
+msgstr ""
+
+#: bin/check_perms:202
+msgid "%(dbdir)s \"other\" perms must be 000"
+msgstr ""
+
+#: bin/check_perms:213
+msgid "checking cgi-bin permissions"
+msgstr ""
+
+#: bin/check_perms:218
+msgid " checking set-gid for %(path)s"
+msgstr ""
+
+#: bin/check_perms:222
+msgid "%(path)s must be set-gid"
+msgstr ""
+
+#: bin/check_perms:232
+msgid "checking set-gid for %(wrapper)s"
+msgstr ""
+
+#: bin/check_perms:236
+msgid "%(wrapper)s must be set-gid"
+msgstr ""
+
+#: bin/check_perms:246
+msgid "checking permissions on %(pwfile)s"
+msgstr ""
+
+#: bin/check_perms:255
+msgid "%(pwfile)s permissions must be exactly 0640 (got %(octmode)s)"
+msgstr ""
+
+#: bin/check_perms:278
+msgid "checking permissions on list data"
+msgstr ""
+
+#: bin/check_perms:284
+msgid " checking permissions on: %(path)s"
+msgstr ""
+
+#: bin/check_perms:292
+msgid "file permissions must be at least 660: %(path)s"
+msgstr ""
+
+#: bin/check_perms:334
+msgid "No problems found"
+msgstr ""
+
+#: bin/check_perms:336
+msgid "Problems found:"
+msgstr ""
+
+#: bin/check_perms:337
+msgid "Re-run as %(MAILMAN_OWNER)s (or root) with -f flag to fix"
+msgstr ""
+
+#: bin/cleanarch:19
+msgid ""
+"Clean up an .mbox archive file.\n"
+"\n"
+"The archiver looks for Unix-From lines separating messages in an mbox "
+"archive\n"
+"file. For compatibility, it specifically looks for lines that start with\n"
+"\"From \" -- i.e. the letters capital-F, lowercase-r, o, m, space, ignoring\n"
+"everything else on the line.\n"
+"\n"
+"Normally, any lines that start \"From \" in the body of a message should be\n"
+"escaped such that a > character is actually the first on a line. It is\n"
+"possible though that body lines are not actually escaped. This script\n"
+"attempts to fix these by doing a stricter test of the Unix-From lines. Any\n"
+"lines that start \"From \" but do not pass this stricter test are escaped "
+"with a\n"
+"> character.\n"
+"\n"
+"Usage: cleanarch [options] < inputfile > outputfile\n"
+"Options:\n"
+" -s n\n"
+" --status=n\n"
+" Print a # character every n lines processed\n"
+"\n"
+" -q / --quiet\n"
+" Don't print changed line information to standard error.\n"
+"\n"
+" -n / --dry-run\n"
+" Don't actually output anything.\n"
+"\n"
+" -h / --help\n"
+" Print this message and exit\n"
+msgstr ""
+
+#: bin/cleanarch:78
+msgid "Unix-From line changed: %(lineno)d"
+msgstr ""
+
+#: bin/cleanarch:106
+msgid "Bad status number: %(arg)s"
+msgstr ""
+
+#: bin/cleanarch:158
+msgid "%(messages)d messages found"
+msgstr ""
+
+#: bin/clone_member:19
+msgid ""
+"Clone a member address.\n"
+"\n"
+"Cloning a member address means that a new member will be added who has all "
+"the\n"
+"same options and passwords as the original member address. Note that this\n"
+"operation is fairly trusting of the user who runs it -- it does no\n"
+"verification to the new address, it does not send out a welcome message, "
+"etc.\n"
+"\n"
+"The existing member's subscription is usually not modified in any way. If "
+"you\n"
+"want to remove the old address, use the -r flag. If you also want to "
+"change\n"
+"any list admin addresses, use the -a flag.\n"
+"\n"
+"Usage:\n"
+" clone_member [options] fromoldaddr tonewaddr\n"
+"\n"
+"Where:\n"
+"\n"
+" --listname=listname\n"
+" -l listname\n"
+" Check and modify only the named mailing lists. If -l is not given,\n"
+" then all mailing lists are scanned from the address. Multiple -l\n"
+" options can be supplied.\n"
+"\n"
+" --remove\n"
+" -r\n"
+" Remove the old address from the mailing list after it's been "
+"cloned.\n"
+"\n"
+" --admin\n"
+" -a\n"
+" Scan the list admin addresses for the old address, and clone or "
+"change\n"
+" them too.\n"
+"\n"
+" --quiet\n"
+" -q\n"
+" Do the modifications quietly.\n"
+"\n"
+" --nomodify\n"
+" -n\n"
+" Print what would be done, but don't actually do it. Inhibits the\n"
+" --quiet flag.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" fromoldaddr (`from old address') is the old address of the user. "
+"tonewaddr\n"
+" (`to new address') is the new address of the user.\n"
+"\n"
+msgstr ""
+
+#: bin/clone_member:90
+#, fuzzy
+msgid "processing mailing list:"
+msgstr "%s ³q«H½×¾Â"
+
+#: bin/clone_member:97
+#, fuzzy
+msgid " scanning list owners:"
+msgstr " %s ¤Wªº³q«H½×¾Â ¡C"
+
+#: bin/clone_member:115
+msgid " new list owners:"
+msgstr ""
+
+#: bin/clone_member:117
+msgid "(no change)"
+msgstr ""
+
+#: bin/clone_member:126
+msgid " address not found:"
+msgstr ""
+
+#: bin/clone_member:135
+msgid " clone address added:"
+msgstr ""
+
+#: bin/clone_member:138
+#, fuzzy
+msgid " clone address is already a member:"
+msgstr " ¤w¸g¬O·|­û"
+
+#: bin/clone_member:141
+msgid " original address removed:"
+msgstr ""
+
+#: bin/clone_member:192
+#, fuzzy
+msgid "Not a valid email address: %(toaddr)s"
+msgstr "¤£¥¿½T ªº email ¦a§}"
+
+#: bin/clone_member:205
+msgid ""
+"Error opening list \"%(listname)s\", skipping.\n"
+"%(e)s"
+msgstr ""
+
+#: bin/config_list:19
+msgid ""
+"Configure a list from a text file description.\n"
+"\n"
+"Usage: config_list [options] listname\n"
+"\n"
+"Options:\n"
+" --inputfile filename\n"
+" -i filename\n"
+" Configure the list by assigning each module-global variable in the\n"
+" file to an attribute on the list object, then saving the list. The\n"
+" named file is loaded with execfile() and must be legal Python code.\n"
+" Any variable that isn't already an attribute of the list object is\n"
+" ignored (a warning message is printed). See also the -c option.\n"
+"\n"
+" A special variable named `mlist' is put into the globals during the\n"
+" execfile, which is bound to the actual MailList object. This lets "
+"you\n"
+" do all manner of bizarre thing to the list object, but BEWARE! "
+"Using\n"
+" this can severely (and possibly irreparably) damage your mailing "
+"list!\n"
+"\n"
+" --outputfile filename\n"
+" -o filename\n"
+" Instead of configuring the list, print out a list's configuration\n"
+" variables in a format suitable for input using this script. In "
+"this\n"
+" way, you can easily capture the configuration settings for a\n"
+" particular list and imprint those settings on another list. "
+"filename\n"
+" is the file to output the settings to. If filename is `-', "
+"standard\n"
+" out is used.\n"
+"\n"
+" --checkonly\n"
+" -c\n"
+" With this option, the modified list is not actually changed. Only\n"
+" useful with -i.\n"
+"\n"
+" --verbose\n"
+" -v\n"
+" Print the name of each attribute as it is being changed. Only "
+"useful\n"
+" with -i.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+"The options -o and -i are mutually exclusive.\n"
+"\n"
+msgstr ""
+
+#: bin/config_list:105
+msgid ""
+"## \"%(listname)s\" mailing list configuration settings -*- python -*-\n"
+"## captured on %(when)s\n"
+msgstr ""
+
+#: bin/config_list:127
+#, fuzzy
+msgid "options"
+msgstr "°h«H³]©w"
+
+#: bin/config_list:184
+msgid "legal values are:"
+msgstr ""
+
+#: bin/config_list:246
+msgid "attribute \"%(k)s\" ignored"
+msgstr ""
+
+#: bin/config_list:249
+msgid "attribute \"%(k)s\" changed"
+msgstr ""
+
+#: bin/config_list:255
+msgid "Non-standard property restored: %(k)s"
+msgstr ""
+
+#: bin/config_list:263
+msgid "Invalid value for property: %(k)s"
+msgstr ""
+
+#: bin/config_list:265
+msgid "Bad email address for option %(k)s: %(v)s"
+msgstr ""
+
+#: bin/config_list:304
+msgid "Only one of -i or -o is allowed"
+msgstr ""
+
+#: bin/config_list:306
+msgid "One of -i or -o is required"
+msgstr ""
+
+#: bin/config_list:310
+#, fuzzy
+msgid "List name is required"
+msgstr "»Ý­n½×¾Â¦WºÙ¡C"
+
+#: bin/convert.py:19
+msgid ""
+"Convert a list's interpolation strings from %-strings to $-strings.\n"
+"\n"
+"This script is intended to be run as a bin/withlist script, i.e.\n"
+"\n"
+"% bin/withlist -l -r convert <mylist>\n"
+msgstr ""
+
+#: bin/convert.py:38 bin/fix_url.py:34
+#, fuzzy
+msgid "Saving list"
+msgstr "¥Îªk¡G lists"
+
+#: bin/convert.py:44 bin/fix_url.py:40
+msgid "%%%"
+msgstr ""
+
+#: bin/dumpdb:19
+msgid ""
+"Dump the contents of any Mailman `database' file.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] filename\n"
+"\n"
+"Options:\n"
+"\n"
+" --marshal/-m\n"
+" Assume the file contains a Python marshal, overridding any "
+"automatic\n"
+" guessing.\n"
+"\n"
+" --pickle/-p\n"
+" Assume the file contains a Python pickle, overridding any automatic\n"
+" guessing.\n"
+"\n"
+" --help/-h\n"
+" Print this help message and exit\n"
+"\n"
+"If the filename ends with `.db', then it is assumed that the file contains "
+"a\n"
+"Python marshal. If the file ends with `.pck' then it is assumed to contain "
+"a\n"
+"Python pickle. In either case, if you want to override the default "
+"assumption\n"
+"-- or if the file ends in neither suffix -- use the -p or -m flags.\n"
+msgstr ""
+
+#: bin/dumpdb:88
+#, fuzzy
+msgid "No filename given."
+msgstr "[¨S¦³»¡©ú­ì¦]]"
+
+#: bin/dumpdb:91
+msgid "Bad arguments: %(pargs)s"
+msgstr ""
+
+#: bin/dumpdb:101
+msgid "Please specify either -p or -m."
+msgstr ""
+
+#: bin/find_member:19
+msgid ""
+"Find all lists that a member's address is on.\n"
+"\n"
+"Usage:\n"
+" find_member [options] regex [regex [...]]\n"
+"\n"
+"Where:\n"
+" --listname=listname\n"
+" -l listname\n"
+" Include only the named list in the search.\n"
+"\n"
+" --exclude=listname\n"
+" -x listname\n"
+" Exclude the named list from the search.\n"
+"\n"
+" --owners\n"
+" -w\n"
+" Search list owners as well as members.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" regex\n"
+" A Python regular expression to match against.\n"
+"\n"
+"The interaction between -l and -x is as follows. If any -l option is given\n"
+"then only the named list will be included in the search. If any -x option "
+"is\n"
+"given but no -l option is given, then all lists will be search except those\n"
+"specifically excluded.\n"
+"\n"
+"Regular expression syntax is Perl5-like, using the Python re module. "
+"Complete\n"
+"specifications are at:\n"
+"\n"
+"http://www.python.org/doc/current/lib/module-re.html\n"
+"\n"
+"Address matches are case-insensitive, but case-preserved addresses are\n"
+"displayed.\n"
+"\n"
+msgstr ""
+
+#: bin/find_member:155
+msgid "Search regular expression required"
+msgstr ""
+
+#: bin/find_member:160
+msgid "No lists to search"
+msgstr ""
+
+#: bin/find_member:169
+msgid "found in:"
+msgstr ""
+
+#: bin/find_member:175
+msgid "(as owner)"
+msgstr ""
+
+#: bin/fix_url.py:19
+msgid ""
+"Reset a list's web_page_url attribute to the default setting.\n"
+"\n"
+"This script is intended to be run as a bin/withlist script, i.e.\n"
+"\n"
+"% bin/withlist -l -r fix_url <mylist>\n"
+msgstr ""
+
+#: bin/genaliases:19
+msgid ""
+"Regenerate Postfix's data/aliases and data/aliases.db files from scratch.\n"
+"\n"
+"Usage:\n"
+"\n"
+" genaliases [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+msgstr ""
+
+#: bin/inject:19
+msgid ""
+"Inject a message from a file into Mailman's incoming queue.\n"
+"\n"
+"Usage: inject [options] [filename]\n"
+"\n"
+"Options:\n"
+"\n"
+" -h / --help\n"
+" Print this text and exit.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" The name of the list to inject this message to. Required.\n"
+"\n"
+" -q queuename\n"
+" --queue=queuename\n"
+" The name of the queue to inject the message to. The queuename must "
+"be\n"
+" one of the directories inside the qfiles directory. If omitted, "
+"the\n"
+" incoming queue is used.\n"
+"\n"
+"filename is the name of the plaintext message file to inject. If omitted,\n"
+"standard input is used.\n"
+msgstr ""
+
+#: bin/inject:79
+msgid "Bad queue directory: %(qdir)s"
+msgstr ""
+
+#: bin/inject:84
+#, fuzzy
+msgid "A list name is required"
+msgstr "»Ý­n½×¾Â¦WºÙ¡C"
+
+#: bin/list_admins:19
+msgid ""
+"List all the owners of a mailing list.\n"
+"\n"
+"Usage: %(program)s [options] listname ...\n"
+"\n"
+"Where:\n"
+"\n"
+" --all-vhost=vhost\n"
+" -v=vhost\n"
+" List the owners of all the mailing lists for the given virtual "
+"host.\n"
+"\n"
+" --all\n"
+" -a\n"
+" List the owners of all the mailing lists on this system.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+"`listname' is the name of the mailing list to print the owners of. You can\n"
+"have more than one named list on the command line.\n"
+msgstr ""
+
+#: bin/list_admins:92
+msgid "List: %(listname)s, \tOwners: %(owners)s"
+msgstr ""
+
+#: bin/list_lists:19
+msgid ""
+"List all mailing lists.\n"
+"\n"
+"Usage: %(program)s [options]\n"
+"\n"
+"Where:\n"
+"\n"
+" --advertised\n"
+" -a\n"
+" List only those mailing lists that are publically advertised\n"
+"\n"
+" --virtual-host-overview=domain\n"
+" -V domain\n"
+" List only those mailing lists that are homed to the given virtual\n"
+" domain. This only works if the VIRTUAL_HOST_OVERVIEW variable is\n"
+" set.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this text and exit.\n"
+"\n"
+msgstr ""
+
+#: bin/list_lists:97
+#, fuzzy
+msgid "No matching mailing lists found"
+msgstr " %s ¤Wªº³q«H½×¾Â ¡C"
+
+#: bin/list_lists:100
+#, fuzzy
+msgid "matching mailing lists found:"
+msgstr " %s ¤Wªº³q«H½×¾Â ¡C"
+
+#: bin/list_members:19
+msgid ""
+"List all the members of a mailing list.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] listname\n"
+"\n"
+"Where:\n"
+"\n"
+" --output file\n"
+" -o file\n"
+" Write output to specified file instead of standard out.\n"
+"\n"
+" --regular / -r\n"
+" Print just the regular (non-digest) members.\n"
+"\n"
+" --digest[=kind] / -d [kind]\n"
+" Print just the digest members. Optional argument can be \"mime\" "
+"or\n"
+" \"plain\" which prints just the digest members receiving that kind "
+"of\n"
+" digest.\n"
+"\n"
+" --nomail[=why] / -n [why]\n"
+" Print the members that have delivery disabled. Optional argument "
+"can\n"
+" be \"byadmin\", \"byuser\", \"bybounce\", or \"unknown\" which "
+"prints just the\n"
+" users who have delivery disabled for that reason. It can also be\n"
+" \"enabled\" which prints just those member for whom delivery is\n"
+" enabled.\n"
+"\n"
+" --preserve\n"
+" -p\n"
+" Output member addresses case preserved the way they were added to "
+"the\n"
+" list. Otherwise, addresses are printed in all lowercase.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname is the name of the mailing list to use.\n"
+"\n"
+"Note that if neither -r or -d is supplied, both regular members are printed\n"
+"first, followed by digest members, but no indication is given as to address\n"
+"status.\n"
+msgstr ""
+
+#: bin/list_members:138
+msgid "Bad --nomail option: %(why)s"
+msgstr ""
+
+#: bin/list_members:149
+msgid "Bad --digest option: %(kind)s"
+msgstr ""
+
+#: bin/list_members:167
+msgid "Could not open file for writing:"
+msgstr ""
+
+#: bin/mailmanctl:19
+msgid ""
+"Primary start-up and shutdown script for Mailman's qrunner daemon.\n"
+"\n"
+"This script starts, stops, and restarts the main Mailman queue runners, "
+"making\n"
+"sure that the various long-running sub-qrunners are still alive and "
+"kicking.\n"
+"It does this by forking and exec'ing the sub-qrunners and waiting on their\n"
+"pids. When it detects a subprocess has exited, it may restart it.\n"
+"\n"
+"The sub-qrunners respond to SIGINT, SIGTERM, and SIGHUP. SIGINT and "
+"SIGTERM\n"
+"both cause the sub-qrunners to exit cleanly, but the master will only "
+"restart\n"
+"sub-qrunners that have exited due to a SIGINT. SIGHUP causes the master\n"
+"qrunner and sub-qrunners to close their log files, and reopen then upon the\n"
+"next printed message.\n"
+"\n"
+"The master qrunner also responds to SIGINT, SIGTERM, and SIGHUP, which it\n"
+"simply passes on to the sub-qrunners (note that the master will close and\n"
+"reopen its own log files on receipt of a SIGHUP). The master qrunner also\n"
+"leaves its own process id in the file data/master-qrunner.pid but you "
+"normally\n"
+"don't need to use this pid directly. The `start', `stop', `restart', and\n"
+"`open' commands handle everything for you.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [ start | stop | restart | reopen ]\n"
+"\n"
+"Options:\n"
+"\n"
+" -n/--no-restart\n"
+" Don't restart the sub-qrunners when they exit because of an error or "
+"a\n"
+" SIGINT (they are never restarted if they exit in response to a\n"
+" SIGTERM). Use this only for debugging. Only useful if the `start'\n"
+" command is given.\n"
+"\n"
+" -u/--run-as-user\n"
+" Normally, this script will refuse to run if the user id and group "
+"id\n"
+" are not set to the `mailman' user and group (as defined when you\n"
+" configured Mailman). If run as root, this script will change to "
+"this\n"
+" user and group before the check is made.\n"
+"\n"
+" This can be inconvenient for testing and debugging purposes, so the -"
+"u\n"
+" flag means that the step that sets and checks the uid/gid is "
+"skipped,\n"
+" and the program is run as the current user and group. This flag is\n"
+" not recommended for normal production environments.\n"
+"\n"
+" -s/--stale-lock-cleanup\n"
+" If mailmanctl finds an existing master qrunner lock, it will "
+"normally\n"
+" exit with an error message. With this optionn, mailmanctl will "
+"perform\n"
+" an extra level of checking. If a process matching the host/pid\n"
+" described in the lock file is running, mailmanctl will still exit, "
+"but\n"
+" if no matching process is found, mailmanctl will remove the "
+"apparently\n"
+" stale lock and make another attempt to claim the master lock.\n"
+"\n"
+" -q/--quiet\n"
+" Don't print status messages. Error messages are still printed to\n"
+" standard error.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+"\n"
+"Commands:\n"
+"\n"
+" start - Start the master qrunner daemon and all sub-qrunners. Prints "
+"a\n"
+" message and exits if the master qrunner daemon is already\n"
+" running.\n"
+"\n"
+" stop - Stops the master qrunner daemon and all sub-qrunners. After\n"
+" stopping, no more messages will be processed.\n"
+"\n"
+" restart - Restarts the sub-qrunners, but not the master qrunner. This "
+"is\n"
+" really handy for development because without restarting, the\n"
+" sub-qrunners won't reload any changed modules.\n"
+"\n"
+" reopen - This will simply cause all log files to be re-opened.\n"
+msgstr ""
+
+#: bin/mailmanctl:140
+msgid "PID unreadable in: %(pidfile)s"
+msgstr ""
+
+#: bin/mailmanctl:148
+msgid "No child with pid: %(pid)s"
+msgstr ""
+
+#: bin/mailmanctl:156
+msgid "Return the hostname, pid, and tempfile"
+msgstr ""
+
+#: bin/mailmanctl:208
+msgid ""
+"The master qrunner lock could not be acquired because it appears as if "
+"another\n"
+"master qrunner is already running.\n"
+msgstr ""
+
+#: bin/mailmanctl:214
+msgid ""
+"The master qrunner lock could not be acquired. It appears as though there "
+"is\n"
+"a stale master qrunner lock. Try re-running mailmanctl with the -s flag.\n"
+msgstr ""
+
+#: bin/mailmanctl:220
+msgid ""
+"The master qrunner lock could not be acquired, because it appears as if "
+"some\n"
+"process on some other host may have acquired it. We can't test for stale\n"
+"locks across host boundaries, so you'll have to do this manually. Or, if "
+"you\n"
+"know the lock is stale, re-run mailmanctl with the -s flag.\n"
+"\n"
+"Lock file: %(LOCKFILE)s\n"
+"Lock host: %(status)s\n"
+"\n"
+"Exiting."
+msgstr ""
+
+#: bin/mailmanctl:269
+msgid "Run this program as root or as the %(name)s user, or use -u."
+msgstr ""
+
+#: bin/mailmanctl:300
+#, fuzzy
+msgid "No command given."
+msgstr "[¨S¦³»¡©ú­ì¦]]"
+
+#: bin/mailmanctl:303
+msgid "Bad command: %(command)s"
+msgstr ""
+
+#: bin/mailmanctl:315
+msgid "Shutting down Mailman's master qrunner"
+msgstr ""
+
+#: bin/mailmanctl:322
+msgid "Restarting Mailman's master qrunner"
+msgstr ""
+
+#: bin/mailmanctl:326
+msgid "Re-opening all log files"
+msgstr ""
+
+#: bin/mailmanctl:360
+msgid "Starting Mailman's master qrunner."
+msgstr ""
+
+#: bin/mmsitepass:19
+msgid ""
+"Set the site password, prompting from the terminal.\n"
+"\n"
+"The site password can be used in most if not all places that the list\n"
+"administrator's password can be used, which in turn can be used in most "
+"places\n"
+"that a list users password can be used.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [password]\n"
+"\n"
+"Options:\n"
+"\n"
+" -c/--listcreator\n"
+" Set the list creator password instead of the site password. The "
+"list\n"
+" creator is authorized to create and remove lists, but does not have\n"
+" the total power of the site administrator.\n"
+"\n"
+" -h/--help\n"
+" Print this help message and exit.\n"
+"\n"
+"If password is not given on the command line, it will be prompted for.\n"
+msgstr ""
+
+#: bin/mmsitepass:69
+#, fuzzy
+msgid "site"
+msgstr "ºô¯¸"
+
+#: bin/mmsitepass:76
+msgid "list creator"
+msgstr ""
+
+#: bin/mmsitepass:82
+msgid "New %(pwdesc)s password: "
+msgstr ""
+
+#: bin/mmsitepass:83
+#, fuzzy
+msgid "Again to confirm password: "
+msgstr "½T»{·s±K½X¡G"
+
+#: bin/mmsitepass:85
+#, fuzzy
+msgid "Passwords do not match; no changes made."
+msgstr "±K½X¤£²Å"
+
+#: bin/mmsitepass:88
+msgid "Interrupted..."
+msgstr ""
+
+#: bin/mmsitepass:94
+#, fuzzy
+msgid "Password changed."
+msgstr "±K½X¡G "
+
+#: bin/mmsitepass:96
+msgid "Password change failed."
+msgstr ""
+
+#: bin/newlist:19
+msgid ""
+"Create a new, unpopulated mailing list.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname [listadmin-addr [admin-password]]]\n"
+"\n"
+"Options:\n"
+"\n"
+" -l language\n"
+" --language language\n"
+" Make the list's preferred language `language', which must be a two\n"
+" letter language code.\n"
+"\n"
+" -q/--quiet\n"
+" Normally the administrator is notified by email (after a prompt) "
+"that\n"
+" their list has been created. This option suppresses the prompt and\n"
+" notification.\n"
+"\n"
+" -h/--help\n"
+" Print this help text and exit.\n"
+"\n"
+"You can specify as many of the arguments as you want on the command line:\n"
+"you will be prompted for the missing ones.\n"
+"\n"
+"Every Mailman list has two parameters which define the default host name "
+"for\n"
+"outgoing email, and the default URL for all web interfaces. When you\n"
+"configured Mailman, certain defaults were calculated, but if you are "
+"running\n"
+"multiple virtual Mailman sites, then the defaults may not be appropriate "
+"for\n"
+"the list you are creating.\n"
+"\n"
+"You can specify the domain to create your new list in by spelling the "
+"listname\n"
+"like so:\n"
+"\n"
+" mylist@www.mydom.ain\n"
+"\n"
+"where `www.mydom.ain' should be the base hostname for the URL to this "
+"virtual\n"
+"hosts's lists. E.g. with is setting people will view the general list\n"
+"overviews at http://www.mydom.ain/mailman/listinfo. Also, www.mydom.ain\n"
+"should be a key in the VIRTUAL_HOSTS mapping in mm_cfg.py/Defaults.py. It\n"
+"will be looked up to give the email hostname. If this can't be found, then\n"
+"www.mydom.ain will be used for both the web interface and the email\n"
+"interface.\n"
+"\n"
+"If you spell the list name as just `mylist', then the email hostname will "
+"be\n"
+"taken from DEFAULT_HOST_NAME and the url will be taken from DEFAULT_URL (as\n"
+"defined in your Defaults.py file or overridden by settings in mm_cfg.py).\n"
+"\n"
+"Note that listnames are forced to lowercase.\n"
+msgstr ""
+
+#: bin/newlist:114
+msgid "Unknown language: %(lang)s"
+msgstr ""
+
+#: bin/newlist:119
+#, fuzzy
+msgid "Enter the name of the list: "
+msgstr "%s «D¥»½×¾Â·|­û"
+
+#: bin/newlist:136
+msgid "Enter the email of the person running the list: "
+msgstr ""
+
+#: bin/newlist:141
+msgid "Initial %(listname)s password: "
+msgstr ""
+
+#: bin/newlist:145
+msgid "The list password cannot be empty"
+msgstr ""
+
+#: bin/newlist:160
+msgid "Bad owner email address: %(owner_mail)s"
+msgstr ""
+
+#: bin/newlist:184
+msgid "Hit enter to notify %(listname)s owner..."
+msgstr ""
+
+#: bin/qrunner:19
+msgid ""
+"Run one or more qrunners, once or repeatedly.\n"
+"\n"
+"Each named runner class is run in round-robin fashion. In other words, the\n"
+"first named runner is run to consume all the files currently in its\n"
+"directory. When that qrunner is done, the next one is run to consume all "
+"the\n"
+"files in /its/ directory, and so on. The number of total iterations can be\n"
+"given on the command line.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" -r runner[:slice:range]\n"
+" --runner=runner[:slice:range]\n"
+" Run the named qrunner, which must be one of the strings returned by\n"
+" the -l option. Optional slice:range if given, is used to assign\n"
+" multiple qrunner processes to a queue. range is the total number "
+"of\n"
+" qrunners for this queue while slice is the number of this qrunner "
+"from\n"
+" [0..range).\n"
+"\n"
+" If using the slice:range form, you better make sure that each "
+"qrunner\n"
+" for the queue is given the same range value. If slice:runner is "
+"not\n"
+" given, then 1:1 is used.\n"
+"\n"
+" Multiple -r options may be given, in which case each qrunner will "
+"run\n"
+" once in round-robin fashion. The special runner `All' is shorthand\n"
+" for a qrunner for each listed by the -l option.\n"
+"\n"
+" --once\n"
+" -o\n"
+" Run each named qrunner exactly once through its main loop. "
+"Otherwise,\n"
+" each qrunner runs indefinitely, until the process receives a "
+"SIGTERM\n"
+" or SIGINT.\n"
+"\n"
+" -l/--list\n"
+" Shows the available qrunner names and exit.\n"
+"\n"
+" -v/--verbose\n"
+" Spit out more debugging information to the logs/qrunner log file.\n"
+"\n"
+" -s/--subproc\n"
+" This should only be used when running qrunner as a subprocess of "
+"the\n"
+" mailmanctl startup script. It changes some of the exit-on-error\n"
+" behavior to work better with that framework.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+"\n"
+"runner is required unless -l or -h is given, and it must be one of the "
+"names\n"
+"displayed by the -l switch.\n"
+msgstr ""
+
+#: bin/qrunner:172
+msgid "%(name)s runs the %(runnername)s qrunner"
+msgstr ""
+
+#: bin/qrunner:173
+msgid "All runs all the above qrunners"
+msgstr ""
+
+#: bin/qrunner:209
+#, fuzzy
+msgid "No runner name given."
+msgstr "[¨S¦³»¡©ú­ì¦]]"
+
+#: bin/remove_members:19
+msgid ""
+"Remove members from a list.\n"
+"\n"
+"Usage:\n"
+" remove_members [options] [listname] [addr1 ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" --file=file\n"
+" -f file\n"
+" Remove member addresses found in the given file. If file is\n"
+" `-', read stdin.\n"
+"\n"
+" --all\n"
+" -a\n"
+" Remove all members of the mailing list.\n"
+" (mutually exclusive with --fromall)\n"
+"\n"
+" --fromall\n"
+" Removes the given addresses from all the lists on this system\n"
+" regardless of virtual domains if you have any. This option cannot "
+"be\n"
+" used -a/--all. Also, you should not specify a listname when using "
+"this\n"
+" option.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname is the name of the mailing list to use.\n"
+"\n"
+" addr1 ... are additional addresses to remove.\n"
+"\n"
+msgstr ""
+
+#: bin/remove_members:128
+msgid "Could not open file for reading: %(filename)s."
+msgstr ""
+
+#: bin/remove_members:135
+msgid "Error opening list %(listname)s... skipping."
+msgstr ""
+
+#: bin/remove_members:145
+#, fuzzy
+msgid "No such member: %(addr)s"
+msgstr "%s: ¨S¦³·|­û %s¡C"
+
+#: bin/remove_members:149
+msgid "User `%(addr)s' removed from list: %(listname)s."
+msgstr ""
+
+#: bin/rmlist:19
+msgid ""
+"Remove the components of a mailing list with impunity - beware!\n"
+"\n"
+"This removes (almost) all traces of a mailing list. By default, the lists\n"
+"archives are not removed, which is very handy for retiring old lists.\n"
+"\n"
+"Usage:\n"
+" rmlist [-a] [-h] listname\n"
+"\n"
+"Where:\n"
+" --archives\n"
+" -a\n"
+" Remove the list's archives too, or if the list has already been\n"
+" deleted, remove any residual archives.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+msgstr ""
+
+#: bin/rmlist:61 bin/rmlist:64
+msgid "Removing %(msg)s"
+msgstr ""
+
+#: bin/rmlist:67
+msgid "%(listname)s %(msg)s not found as %(dir)s"
+msgstr ""
+
+#: bin/rmlist:91
+msgid "No such list (or list already deleted): %(listname)s"
+msgstr ""
+
+#: bin/rmlist:93
+msgid "No such list: %(listname)s. Removing its residual archives."
+msgstr ""
+
+#: bin/rmlist:97
+msgid "Not removing archives. Reinvoke with -a to remove them."
+msgstr ""
+
+#: bin/rmlist:111
+msgid "list info"
+msgstr ""
+
+#: bin/rmlist:117 bin/rmlist:119
+#, fuzzy
+msgid "private archives"
+msgstr "«D¤½¶}½×¾ÂÂkÀÉ¥¢±Ñ"
+
+#: bin/rmlist:121 bin/rmlist:123
+#, fuzzy
+msgid "public archives"
+msgstr "²{¦bªºÀÉ®×"
+
+#: bin/sync_members:19
+msgid ""
+"Synchronize a mailing list's membership with a flat file.\n"
+"\n"
+"This script is useful if you have a Mailman mailing list and a sendmail\n"
+":include: style list of addresses (also as is used in Majordomo). For "
+"every\n"
+"address in the file that does not appear in the mailing list, the address "
+"is\n"
+"added. For every address in the mailing list that does not appear in the\n"
+"file, the address is removed. Other options control what happens when an\n"
+"address is added or removed.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] -f file listname\n"
+"\n"
+"Where `options' are:\n"
+"\n"
+" --no-change\n"
+" -n\n"
+" Don't actually make the changes. Instead, print out what would be\n"
+" done to the list.\n"
+"\n"
+" --welcome-msg[=<yes|no>]\n"
+" -w[=<yes|no>]\n"
+" Sets whether or not to send the newly added members a welcome\n"
+" message, overriding whatever the list's `send_welcome_msg' setting\n"
+" is. With -w=yes or -w, the welcome message is sent. With -w=no, "
+"no\n"
+" message is sent.\n"
+"\n"
+" --goodbye-msg[=<yes|no>]\n"
+" -g[=<yes|no>]\n"
+" Sets whether or not to send the goodbye message to removed members,\n"
+" overriding whatever the list's `send_goodbye_msg' setting is. With\n"
+" -g=yes or -g, the goodbye message is sent. With -g=no, no message "
+"is\n"
+" sent.\n"
+"\n"
+" --digest[=<yes|no>]\n"
+" -d[=<yes|no>]\n"
+" Selects whether to make newly added members receive messages in\n"
+" digests. With -d=yes or -d, they become digest members. With -"
+"d=no\n"
+" (or if no -d option given) they are added as regular members.\n"
+"\n"
+" --notifyadmin[=<yes|no>]\n"
+" --a[=<yes|no>]\n"
+" Specifies whether the admin should be notified for each "
+"subscription\n"
+" or unsubscription. If you're adding a lot of addresses, you\n"
+" definitely want to turn this off! With -a=yes or -a, the admin is\n"
+" notified. With -a=no, the admin is not notified. With no -a "
+"option,\n"
+" the default for the list is used.\n"
+"\n"
+" --file <filename | ->\n"
+" -f <filename | ->\n"
+" This option is required. It specifies the flat file to synchronize\n"
+" against. Email addresses must appear one per line. If filename is\n"
+" `-' then stdin is used.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this message.\n"
+"\n"
+" listname\n"
+" Required. This specifies the list to synchronize.\n"
+msgstr ""
+
+#: bin/sync_members:111
+msgid "Bad choice: %(yesno)s"
+msgstr ""
+
+#: bin/sync_members:134
+msgid "Dry run mode"
+msgstr ""
+
+#: bin/sync_members:155
+msgid "Only one -f switch allowed"
+msgstr ""
+
+#: bin/sync_members:159
+#, fuzzy
+msgid "No argument to -f given"
+msgstr "[¨S¦³»¡©ú­ì¦]]"
+
+#: bin/sync_members:168
+msgid "Illegal option: %(opt)s"
+msgstr ""
+
+#: bin/sync_members:174
+#, fuzzy
+msgid "No listname given"
+msgstr "[¨S¦³»¡©ú­ì¦]]"
+
+#: bin/sync_members:178
+msgid "Must have a listname and a filename"
+msgstr ""
+
+#: bin/sync_members:187
+msgid "Cannot read address file: %(filename)s: %(msg)s"
+msgstr ""
+
+#: bin/sync_members:199
+msgid "Ignore : %(addr)30s"
+msgstr ""
+
+#: bin/sync_members:208
+#, fuzzy
+msgid "Invalid : %(addr)30s"
+msgstr "¤£¥¿½T ªº email ¦a§}"
+
+#: bin/sync_members:211
+msgid "You must fix the preceding invalid addresses first."
+msgstr ""
+
+#: bin/sync_members:254
+msgid "Added : <%(addr)30s> %(name)s"
+msgstr ""
+
+#: bin/sync_members:271
+msgid "Removed: <%(addr)30s> %(name)s"
+msgstr ""
+
+#: bin/unshunt:19
+msgid ""
+"Move a message from the shunt queue to the original queue.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [directory]\n"
+"\n"
+"Where:\n"
+"\n"
+" -h / --help\n"
+" Print help and exit.\n"
+"\n"
+"Optional `directory' specifies a directory to dequeue from other than\n"
+"qfiles/shunt.\n"
+msgstr ""
+
+#: bin/update:19
+msgid ""
+"Perform all necessary upgrades.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -f/--force\n"
+" Force running the upgrade procedures. Normally, if the version "
+"number\n"
+" of the installed Mailman matches the current version number (or a\n"
+" `downgrade' is detected), nothing will be done.\n"
+"\n"
+" -h/--help\n"
+" Print this text and exit.\n"
+"\n"
+"Use this script to help you update to the latest release of Mailman from\n"
+"some previous version. It knows about versions back to 1.0b4 (?).\n"
+msgstr ""
+
+#: bin/update:99
+msgid "Fixing language templates: %(listname)s"
+msgstr ""
+
+#: bin/update:188 bin/update:442
+msgid "WARNING: could not acquire lock for list: %(listname)s"
+msgstr ""
+
+#: bin/update:193
+msgid "Updating the held requests database."
+msgstr ""
+
+#: bin/update:215
+msgid ""
+"For some reason, %(mbox_dir)s exists as a file. This won't work with\n"
+"b6, so I'm renaming it to %(mbox_dir)s.tmp and proceeding."
+msgstr ""
+
+#: bin/update:227
+msgid ""
+"\n"
+"%(listname)s has both public and private mbox archives. Since this list\n"
+"currently uses private archiving, I'm installing the private mbox archive\n"
+"-- %(o_pri_mbox_file)s -- as the active archive, and renaming\n"
+" %(o_pub_mbox_file)s\n"
+"to\n"
+" %(o_pub_mbox_file)s.preb6\n"
+"\n"
+"You can integrate that into the archives if you want by using the 'arch'\n"
+"script.\n"
+msgstr ""
+
+#: bin/update:242
+msgid ""
+"%s has both public and private mbox archives. Since this list\n"
+"currently uses public archiving, I'm installing the public mbox file\n"
+"archive file (%s) as the active one, and renaming\n"
+" %s\n"
+" to\n"
+" %s.preb6\n"
+"\n"
+"You can integrate that into the archives if you want by using the 'arch'\n"
+"script.\n"
+msgstr ""
+
+#: bin/update:259
+msgid "- updating old private mbox file"
+msgstr ""
+
+#: bin/update:267
+msgid ""
+" unknown file in the way, moving\n"
+" %(o_pri_mbox_file)s\n"
+" to\n"
+" %(newname)s"
+msgstr ""
+
+#: bin/update:274 bin/update:297
+msgid ""
+" looks like you have a really recent CVS installation...\n"
+" you're either one brave soul, or you already ran me"
+msgstr ""
+
+#: bin/update:283
+msgid "- updating old public mbox file"
+msgstr ""
+
+#: bin/update:291
+msgid ""
+" unknown file in the way, moving\n"
+" %(o_pub_mbox_file)s\n"
+" to\n"
+" %(newname)s"
+msgstr ""
+
+#: bin/update:322
+msgid "- This list looks like it might have <= b4 list templates around"
+msgstr ""
+
+#: bin/update:329
+msgid "- moved %(o_tmpl)s to %(n_tmpl)s"
+msgstr ""
+
+#: bin/update:331
+msgid "- both %(o_tmpl)s and %(n_tmpl)s exist, leaving untouched"
+msgstr ""
+
+#: bin/update:361
+msgid "removing directory %(src)s and everything underneath"
+msgstr ""
+
+#: bin/update:364
+msgid "removing %(src)s"
+msgstr ""
+
+#: bin/update:368
+msgid "Warning: couldn't remove %(src)s -- %(rest)s"
+msgstr ""
+
+#: bin/update:373
+msgid "couldn't remove old file %(pyc)s -- %(rest)s"
+msgstr ""
+
+#: bin/update:377
+msgid "updating old qfiles"
+msgstr ""
+
+#: bin/update:399
+msgid "getting rid of old source files"
+msgstr ""
+
+#: bin/update:409
+msgid "no lists == nothing to do, exiting"
+msgstr ""
+
+#: bin/update:416
+msgid ""
+"fixing all the perms on your old html archives to work with b6\n"
+"If your archives are big, this could take a minute or two..."
+msgstr ""
+
+#: bin/update:421
+#, fuzzy
+msgid "done"
+msgstr "µL"
+
+#: bin/update:423
+msgid "Updating mailing list: %(listname)s"
+msgstr ""
+
+#: bin/update:425
+msgid "Updating Usenet watermarks"
+msgstr ""
+
+#: bin/update:430
+msgid "- nothing to update here"
+msgstr ""
+
+#: bin/update:453
+msgid "- usenet watermarks updated and gate_watermarks removed"
+msgstr ""
+
+#: bin/update:463
+msgid "Updating old pending_subscriptions.db database"
+msgstr ""
+
+#: bin/update:480
+msgid ""
+"\n"
+"\n"
+"NOTE NOTE NOTE NOTE NOTE\n"
+"\n"
+" You are upgrading an existing Mailman installation, but I can't tell "
+"what\n"
+" version you were previously running.\n"
+"\n"
+" If you are upgrading from Mailman 1.0b9 or earlier you will need to\n"
+" manually update your mailing lists. For each mailing list you need to\n"
+" copy the file templates/options.html lists/<listname>/options.html.\n"
+"\n"
+" However, if you have edited this file via the Web interface, you will "
+"have\n"
+" to merge your changes into this file, otherwise you will lose your\n"
+" changes.\n"
+"\n"
+"NOTE NOTE NOTE NOTE NOTE\n"
+"\n"
+msgstr ""
+
+#: bin/update:533
+msgid "No updates are necessary."
+msgstr ""
+
+#: bin/update:536
+msgid ""
+"Downgrade detected, from version %(hexlversion)s to version %(hextversion)s\n"
+"This is probably not safe.\n"
+"Exiting."
+msgstr ""
+
+#: bin/update:541
+msgid "Upgrading from version %(hexlversion)s to %(hextversion)s"
+msgstr ""
+
+#: bin/update:550
+msgid ""
+"\n"
+"ERROR:\n"
+"\n"
+"The locks for some lists could not be acquired. This means that either\n"
+"Mailman was still active when you upgraded, or there were stale locks in "
+"the\n"
+"%(lockdir)s directory.\n"
+"\n"
+"You must put Mailman into a quiescent state and remove all stale locks, "
+"then\n"
+"re-run \"make update\" manually. See the INSTALL and UPGRADE files for "
+"details.\n"
+msgstr ""
+
+#: bin/version:19
+msgid "Print the Mailman version.\n"
+msgstr ""
+
+#: bin/version:26
+#, fuzzy
+msgid "Using Mailman version:"
+msgstr ""
+"¤£¥i¹w´Áªº Mailman ¿ù»~¡G\n"
+"%s"
+
+#: bin/withlist:19
+msgid ""
+"General framework for interacting with a mailing list object.\n"
+"\n"
+"There are two ways to use this script: interactively or programmatically.\n"
+"Using it interactively allows you to play with, examine and modify a "
+"MailList\n"
+"object from Python's interactive interpreter. When running interactively, "
+"a\n"
+"MailList object called `m' will be available in the global namespace. It "
+"also\n"
+"loads the class MailList into the global namespace.\n"
+"\n"
+"Programmatically, you can write a function to operate on a MailList object,\n"
+"and this script will take care of the housekeeping (see below for "
+"examples).\n"
+"In that case, the general usage syntax is:\n"
+"\n"
+"%% bin/withlist [options] listname [args ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" -l / --lock\n"
+" Lock the list when opening. Normally the list is opened unlocked\n"
+" (e.g. for read-only operations). You can always lock the file "
+"after\n"
+" the fact by typing `m.Lock()'\n"
+"\n"
+" Note that if you use this option, you should explicitly call m.Save"
+"()\n"
+" before exiting, since the interpreter's clean up procedure will not\n"
+" automatically save changes to the MailList object (but it will "
+"unlock\n"
+" the list).\n"
+"\n"
+" -i / --interactive\n"
+" Leaves you at an interactive prompt after all other processing is\n"
+" complete. This is the default unless the -r option is given.\n"
+"\n"
+" --run [module.]callable\n"
+" -r [module.]callable\n"
+" This can be used to run a script with the opened MailList object.\n"
+" This works by attempting to import `module' (which must already be\n"
+" accessible on your sys.path), and then calling `callable' from the\n"
+" module. callable can be a class or function; it is called with the\n"
+" MailList object as the first argument. If additional args are "
+"given\n"
+" on the command line, they are passed as subsequent positional args "
+"to\n"
+" the callable.\n"
+"\n"
+" Note that `module.' is optional; if it is omitted then a module "
+"with\n"
+" the name `callable' will be imported.\n"
+"\n"
+" The global variable `r' will be set to the results of this call.\n"
+"\n"
+" --all / -a\n"
+" This option only works with the -r option. Use this if you want to\n"
+" execute the script on all mailing lists. When you use -a you "
+"should\n"
+" not include a listname argument on the command line. The variable "
+"`r'\n"
+" will be a list of all the results.\n"
+"\n"
+" --quiet / -q\n"
+" Suppress all status messages.\n"
+"\n"
+" --help / -h\n"
+" Print this message and exit\n"
+"\n"
+"\n"
+"Here's an example of how to use the -r option. Say you have a file in the\n"
+"Mailman installation directory called `listaddr.py', with the following\n"
+"two functions:\n"
+"\n"
+"def listaddr(mlist):\n"
+" print mlist.GetListEmail()\n"
+"\n"
+"def requestaddr(mlist):\n"
+" print mlist.GetRequestEmail()\n"
+"\n"
+"Now, from the command line you can print the list's posting address by "
+"running\n"
+"the following from the command line:\n"
+"\n"
+"%% bin/withlist -r listaddr mylist\n"
+"Loading list: mylist (unlocked)\n"
+"Importing listaddr ...\n"
+"Running listaddr.listaddr() ...\n"
+"mylist@myhost.com\n"
+"\n"
+"And you can print the list's request address by running:\n"
+"\n"
+"%% bin/withlist -r listaddr.requestaddr mylist\n"
+"Loading list: mylist (unlocked)\n"
+"Importing listaddr ...\n"
+"Running listaddr.requestaddr() ...\n"
+"mylist-request@myhost.com\n"
+"\n"
+"As another example, say you wanted to change the password for a particular\n"
+"user on a particular list. You could put the following function in a file\n"
+"called `changepw.py':\n"
+"\n"
+"from Mailman.Errors import NotAMember\n"
+"\n"
+"def changepw(mlist, addr, newpasswd):\n"
+" try:\n"
+" mlist.setMemberPassword(addr, newpasswd)\n"
+" mlist.Save()\n"
+" except NotAMember:\n"
+" print 'No address matched:', addr\n"
+"\n"
+"and run this from the command line:\n"
+"%% bin/withlist -l -r changepw mylist somebody@somewhere.org foobar\n"
+msgstr ""
+
+#: bin/withlist:147
+msgid ""
+"Unlock a locked list, but do not implicitly Save() it.\n"
+"\n"
+" This does not get run if the interpreter exits because of a signal, or "
+"if\n"
+" os._exit() is called. It will get called if an exception occurs "
+"though.\n"
+" "
+msgstr ""
+
+#: bin/withlist:158
+msgid "Unlocking (but not saving) list: %(listname)s"
+msgstr ""
+
+#: bin/withlist:162
+msgid "Finalizing"
+msgstr ""
+
+#: bin/withlist:171
+msgid "Loading list %(listname)s"
+msgstr ""
+
+#: bin/withlist:173
+msgid "(locked)"
+msgstr ""
+
+#: bin/withlist:175
+msgid "(unlocked)"
+msgstr ""
+
+#: bin/withlist:180
+msgid "Unknown list: %(listname)s"
+msgstr ""
+
+#: bin/withlist:219
+#, fuzzy
+msgid "No list name supplied."
+msgstr "»Ý­n½×¾Â¦WºÙ¡C"
+
+#: bin/withlist:222
+msgid "--all requires --run"
+msgstr ""
+
+#: bin/withlist:242
+msgid "Importing %(module)s..."
+msgstr ""
+
+#: bin/withlist:245
+msgid "Running %(module)s.%(callable)s()..."
+msgstr ""
+
+#: bin/withlist:266
+msgid "The variable `m' is the %(listname)s MailList instance"
+msgstr ""
+
+#: cron/bumpdigests:19
+msgid ""
+"Increment the digest volume number and reset the digest number to one.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" --help/-h\n"
+" Print this message and exit.\n"
+"\n"
+"The lists named on the command line are bumped. If no list names are "
+"given,\n"
+"all lists are bumped.\n"
+msgstr ""
+
+#: cron/checkdbs:19
+msgid ""
+"Invoked by cron, this checks for pending moderation requests and mails the\n"
+"list moderators if necessary.\n"
+msgstr ""
+
+#: cron/checkdbs:76
+msgid "%(count)d %(realname)s moderator request(s) waiting"
+msgstr ""
+
+#: cron/checkdbs:94
+#, fuzzy
+msgid "Pending subscriptions:"
+msgstr "¦C¥X§Ú¨ä¥Lªº­q¾\"
+
+#: cron/checkdbs:103
+msgid ""
+"\n"
+"Pending posts:"
+msgstr ""
+
+#: cron/checkdbs:108
+msgid ""
+" From: %(sender)s on %(date)s\n"
+" Cause: %(reason)s"
+msgstr ""
+
+#: cron/disabled:19
+msgid ""
+"Process disabled members, recommended once per day.\n"
+"\n"
+"This script cruises through every mailing list looking for members whose\n"
+"delivery is disabled. If they have been disabled due to bounces, they will\n"
+"receive another notification, or they may be removed if they've received "
+"the\n"
+"maximum number of notifications.\n"
+"\n"
+"Use the --byadmin, --byuser, and --unknown flags to also send notifications\n"
+"to users whose accounts have been disabled for those reasons. Use --all to\n"
+"send the notification to all disabled users.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -h / --help\n"
+" Print this message and exit.\n"
+"\n"
+" -o / --byadmin\n"
+" Also send notifications to any user disabled by the list\n"
+" owner/administrator.\n"
+"\n"
+" -m / --byuser\n"
+" Also send notifications to any user disabled by themselves "
+"(member).\n"
+"\n"
+" -u / --unknown\n"
+" Also send notifications to any user disabled for unknown reasons\n"
+" (usually a legacy disabled address).\n"
+"\n"
+" -b / --notbybounce\n"
+" Don't send notifications to users disabled because of bounces (the\n"
+" default is to notify bounce disabled members).\n"
+"\n"
+" -a / --all\n"
+" Send notifications to all disabled users.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" Process only the given list, otherwise do all lists.\n"
+msgstr ""
+
+#: cron/disabled:132
+msgid "[disabled by periodic sweep and cull, no message available]"
+msgstr ""
+
+#: cron/gate_news:19
+msgid ""
+"Poll the NNTP servers for messages to be gatewayed to mailing lists.\n"
+"\n"
+"Usage: gate_news [options]\n"
+"\n"
+"Where options are\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this text and exit.\n"
+"\n"
+msgstr ""
+
+#: cron/mailpasswds:19
+msgid ""
+"Send password reminders for all lists to all users.\n"
+"\n"
+"This program scans all mailing lists and collects users and their "
+"passwords,\n"
+"grouped by the list's host_name if mm_cfg.VIRTUAL_HOST_OVERVIEW is true. "
+"Then\n"
+"one email message is sent to each unique user (per-virtual host) containing\n"
+"the list passwords and options url for the user. The password reminder "
+"comes\n"
+"from the mm_cfg.MAILMAN_SITE_LIST, which must exist.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -l listname\n"
+" --listname=listname\n"
+" Send password reminders for the named list only. If omitted,\n"
+" reminders are sent for all lists. Multiple -l/--listname options "
+"are\n"
+" allowed.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+msgstr ""
+
+#: cron/mailpasswds:107
+msgid "Site list is missing: %(sitelistname)s"
+msgstr ""
+
+#: cron/mailpasswds:173
+#, fuzzy
+msgid "Password // URL"
+msgstr "±K½X¡G "
+
+#: cron/mailpasswds:193
+#, fuzzy
+msgid "%(host)s mailing list memberships reminder"
+msgstr " %s ³q«H½×¾Â·|Äy´£¿ô"
+
+#: cron/nightly_gzip:19
+msgid ""
+"Re-generate the Pipermail gzip'd archive flat files.\n"
+"\n"
+"This script should be run nightly from cron. When run from the command "
+"line,\n"
+"the following usage is understood:\n"
+"\n"
+"Usage: %(program)s [-v] [-h] [listnames]\n"
+"\n"
+"Where:\n"
+" --verbose\n"
+" -v\n"
+" print each file as it's being gzip'd\n"
+"\n"
+" --help\n"
+" -h\n"
+" print this message and exit\n"
+"\n"
+" listnames\n"
+" Optionally, only compress the .txt files for the named lists. "
+"Without \n"
+" this, all archivable lists are processed.\n"
+"\n"
+msgstr ""
+
+#: cron/senddigests:19
+msgid ""
+"Dispatch digests for lists w/pending messages and digest_send_periodic set.\n"
+"\n"
+"Typically it's invoked via cron.\n"
+msgstr ""
+
+#~ msgid " list run by "
+#~ msgstr "½×¾Â¾Â¥D"
+
+#~ msgid "That password was incorrect."
+#~ msgstr "±K½X¿ù»~¡C"
+
+#~ msgid ""
+#~ "Usage: info\n"
+#~ "To get info for a particular list, send your request to\n"
+#~ "the '-request' address for that list, or use the 'lists' command\n"
+#~ "to get info for all the lists."
+#~ msgstr ""
+#~ "¥Îªk: info\n"
+#~ "±ý¨ú±o¸Ó½×¾Â¬ÛÃö¸ê°T¡A½Ð±N»Ý¨D±H¨ì\n"
+#~ "¸Ó½×¾Â¤§ '-request' «H½c¡A©ÎªÌ¨Ï¥Î 'lists' «ü¥O\n"
+#~ "¥H¨ú±o¥þ³¡½×¾Âªº¬ÛÃö¸ê°T¡C"
+
+#~ msgid "not "
+#~ msgstr "§_"
+
+#~ msgid "%s not a member!<p>"
+#~ msgstr "%s «D­q¤á¡I<p>"
+
+#~ msgid ""
+#~ "When turned on, you get a separate acknowledgement email\n"
+#~ "when you post messages to the list."
+#~ msgstr ""
+#~ "·í¶}±Ò¥»¥\¯à«á¡A¨C·í±z±H«H¨ì½×¾Â¡A±z±N·|ÃB¥~¦¬\n"
+#~ "¨ì¤@«Êª¾·|ªº email¡C"
+
+#~ msgid "<b>subscr</b> -- Is the member subscribed?"
+#~ msgstr "<b>­q¾\</b> -- ¬O§_¤w¸g­q¾\¡H"
+
+#~ msgid "If you refuse this subscription, please explain (optional)"
+#~ msgstr "­Y±z©Úµ´­q¾\¡A½Ð²¤­z­ì¦](¿ï¾Ü©Ê)"
+
+#~ msgid ""
+#~ " Click on a list name to visit the configuration pages for that list."
+#~ msgstr " ÂI¿ï½×¾Â¦WºÙ¥H«e©¹¸Ó½×¾Â³]©wµe­±¡C"
+
+#~ msgid " Enter current password:"
+#~ msgstr " ¿é¤J²{¦bªº±K½X¡G"
+
+#~ msgid ""
+#~ "Adding entries here will have one of two effects, according to whether "
+#~ "another option restricts posting to members. <ul> <li> If "
+#~ "<i>member_posting_only</i> is 'yes', then entries added here will have "
+#~ "posting privilege in addition to list members. <li> If "
+#~ "<i>member_posting_only</i> is 'no', then <em>only</em> the posters listed "
+#~ "here will be able to post without admin approval. </ul>"
+#~ msgstr ""
+#~ "¥[¦b¥H¤Uªº¤H­û¡A®Ú¾Ú¥t¥~ªº³]©w '­­¨î·|­û§ë®Ñ' ¦Ó¦³¤U¦C¨âºØµ²ªG¡C<ul> <li> "
+#~ "­Y <i>­­_·|­û_§ë®Ñ</i> ¬° '¬O' , «h©Ò¥[¤H­û¬°ÃB¥~¤¹³\µo¨¥¤§¤H­û¡C <li> ­Y "
+#~ "<i>­­_·|­û_§ë®Ñ</i> ¬° '§_', «h <em>¶È¦³</em> ¦W¦C²M³æªº·|­ûµo¨¥¤£»Ý¸g¾Â¥D"
+#~ "³\¥i¡C </ul>"
+
+#~ msgid ""
+#~ "You are subscribed as %s,\n"
+#~ " with password: %s"
+#~ msgstr ""
+#~ "±z¥H %s ªº±b¸¹­q¾\¡A\n"
+#~ " ±K½X¬°¡G %s"
+
+#~ msgid "The old password you supplied was incorrect."
+#~ msgstr "±z¿é¤JªºÂ±K½X¤£¥¿½T¡C"
+
+#~ msgid "unidentified origin"
+#~ msgstr "µLªk¿ëÃѨӷ½"
+
+#~ msgid ""
+#~ "Maximum number of messages your list gets in an hour. (Yes, bounce "
+#~ "detection finds this info useful)"
+#~ msgstr "³q«H½×¾Â¨C¤p®É³Ì¤j³B²z«H¥ó¼Æ¡C(¨S¿ù¡A°h«H°»´ú¤Q¤À»Ý­n³o­Ó¸ê°T)"
+
+#~ msgid "Usage: confirm <confirmation number>\n"
+#~ msgstr "¥Îªk¡Gconfirm <½T»{¸¹½X>\n"
+
+#~ msgid " List administrators, you can visit "
+#~ msgstr " ¾Â¥D±z¦n¡A±z¥i³y³X "
+
+#~ msgid ""
+#~ "Usage: subscribe [password] [digest|nodigest] [address=<email-address>]"
+#~ msgstr "¥Îªk¡Gsubscribe [±K½X][digest|nodigest][address=<email ¦a§}>]"
+
+#~ msgid "nomail"
+#~ msgstr "¤£¦¬«H¥ó"
+
+#~ msgid ""
+#~ "Invalid confirmation number!\n"
+#~ "Note that confirmation numbers expire %s days after initial request.\n"
+#~ "Please check date and number and try again, from the start if necessary."
+#~ msgstr ""
+#~ "½T»{¸¹½X¿ù»~¡I\n"
+#~ "½T»{¸¹½X¦b¥Ó½Ð´£¥X %s ¤Ñ«á¹L´Á¡C\n"
+#~ "½Ð¦A¦¸½T»{¥Ó½Ð®É¶¡¤Î½T»{½X«á¦A¸Õ¤@¦¸¡A­Y¦³¥²­n½Ð¦A±q·s¥Ó½Ð¤@¦¸¡C"
+
+#~ msgid ""
+#~ "\n"
+#~ "Too many errors encountered; the rest of the message is ignored:"
+#~ msgstr ""
+#~ "\n"
+#~ "µo¥Í¤Ó¦h¿ù»~ ; ±N©¿²¤«H¥ó¨ä¾l³¡¤À¡J"
+
+#~ msgid "To Change The Administrator Password"
+#~ msgstr "Åܧó¾Â¥D±K½X"
+
+#~ msgid " There currently are no publicly-advertised "
+#~ msgstr " ²{¦b¬O«D¤½¶}"
+
+#~ msgid " the %slist name appended."
+#~ msgstr " ¥[¤W½×¾Â¦WºÙ %s "
+
+#~ msgid "Succeeded"
+#~ msgstr "¦¨¥\"
+
+#~ msgid "User %s on list %s has no password"
+#~ msgstr "¨Ï¥ÎªÌ %s ¦b½×¾Â %s ¨S¦³±K½X"
+
+#~ msgid ""
+#~ "Minimum number of days an address has been non-fatally bad before we take "
+#~ "action"
+#~ msgstr "¶l¥ó¸Õ§ë¦¸¼Æ"
+
+#~ msgid "The rest of the message is ignored:"
+#~ msgstr "¦¹«H¥ó¨ä¾l³¡¤À±N©¿²¤¡G"
+
+#~ msgid "You seem to already be not a member."
+#~ msgstr "±z¬Ý°_¨Ó¤w¸g¤£¬O·|­û¡C"
+
+#~ msgid "Mailman results for %s"
+#~ msgstr "%s Mailman ªºµ²ªG"
+
+#~ msgid "Send Welcome message to this batch? "
+#~ msgstr "¥»¦¸¬O§_±HµoÅwªï°T®§¡H"
+
+#~ msgid "<b>nomail</b> -- Is delivery to the member disabled?"
+#~ msgstr "<b>¼È°±°e«H</b> -- ¸Ó·|­û¬O§_¼È°±°e«H¡H"
+
+#~ msgid "%s -- confirmation of subscription -- request %d"
+#~ msgstr "%s -- ½T»{«H -- ¥Ó½Ð %d"
+
+#~ msgid "Bad user - %s."
+#~ msgstr "¤£¨}¨Ï¥ÎªÌ - %s"
+
+#~ msgid ""
+#~ "Your subscription is not allowed because the email address you gave is "
+#~ "insecure.<p>"
+#~ msgstr "±zªº­q¾\¥Ó½Ð¤£³q¹L¡A¦]¬°±zµ¹ªº email ¦a§}¤£¦w¥þ¡C<p>"
+
+#~ msgid "No such list <em>%s</em><p>"
+#~ msgstr "µL¦¹½×¾Â <em>%s</em><p>"
+
+#~ msgid "General posting filters"
+#~ msgstr "³q¥Î«H¥óÀˬd³W«h"
+
+#~ msgid ""
+#~ "When turned on, you get postings from the list bundled\n"
+#~ "into digests. Otherwise, you get each individual message immediately as\n"
+#~ "it is posted to the list."
+#~ msgstr ""
+#~ "·í¥´¶}¦¹¶µ³]©w«á¡A±z±N·|¦¬¨ì¶°µ²¦¨ºK­nªº§ë®Ñ¡C\n"
+#~ "§_«h·í¦³¤H§ë®Ñ¨ì½×¾Â®É¡A±z·|¥ß§Y¦¬¨ì­Ó§O§ë®Ñªº«H¥ó¡C"
+
+#~ msgid ""
+#~ "When turned on, delivery to your email address is disabled,\n"
+#~ " but your address is still subscribed. This is useful if you plan on\n"
+#~ " taking a short vacation."
+#~ msgstr ""
+#~ "·í¥´¶}¦¹¶µ³]©w«á¡A±zªº email ¦a§}±N¼È°±°e«H¡A\n"
+#~ "¦ý±z¤´«O¦³·|­ûªº¸ê®æ¡C³o­Ó³]©w¹ï©ó­pµe¥X¹Cªº¤H\n"
+#~ "«Ü¦³À°§U¡C"
+
+#~ msgid " Masthead (%s digest, %s)"
+#~ msgstr "µo¦æ¤H (%s ºK­n¡A%s)"
+
+#~ msgid "The list is currently not functional."
+#~ msgstr "¥»½×¾Â¥Ø«e©|¥¼¶}©ñ¡C"
+
+#~ msgid "You must specify your old password, and your new password twice."
+#~ msgstr "±z¥²¶·¿é¤J±K½X¡A¥H¤Î¿é¤J¨â¦¸·s±K½X¡C"
+
+#~ msgid ""
+#~ "This is the common root for all Mailman URLs referencing this\n"
+#~ " mailing list. It is also used in the listinfo overview of\n"
+#~ " mailing lists to identify whether or not this list resides "
+#~ "on the\n"
+#~ " virtual host identified by the overview URL; i.e. if this "
+#~ "value\n"
+#~ " is found (anywhere) in the URL, then this list is considered "
+#~ "to\n"
+#~ " be on that virtual host. If not, then it is excluded from "
+#~ "the\n"
+#~ " listing.\n"
+#~ " <p><b><font size=\"+1\">Warning:</font></b> setting this "
+#~ "value to\n"
+#~ " an invalid base URL will render the mailing list unusable. "
+#~ "You\n"
+#~ " will also not be able to fix this from the web interface! "
+#~ "In\n"
+#~ " that case, the site administrator will have to fix the "
+#~ "mailing\n"
+#~ " list from the command line."
+#~ msgstr ""
+#~ "³o¬O©Ò¦³³q«H½×¾Â¬ÛÃöºô­¶ªº Mailman URLs ªº°ò·Ç¡C\n"
+#~ " ³q±`¥Î©ó¦C¥X¦P¤@µêÀÀ¥D¾÷¤Wªº³q«H½×¾Â²M³æ¡C\n"
+#~ " ³o­Ó³]©w¥i¥Ñ URL ÃѧO³q«H½×¾Â¬O§_¦P¤@µêÀÀ¥D¾÷¡C\n"
+#~ " ¦P²z¡A¦pªG URL Äæ¦ì¦³¥ô¦óªº¤å¦r¡A«h¸Ó½×¾Â¬°µêÀÀ\n"
+#~ " ¥D¾÷ªº³q«H½×¾Â¡C§_«h¸Ó½×¾Â¤£·|¥X²{¦b½×¾Â²M³æ¤W¡C\n"
+#~ " <p><b><font size=\"+1\">ĵ§i¡G</font></b> ­Y°ò·Ç URLs \n"
+#~ " ³]©w¿ù»~±N¾É­P³q«H½×¾ÂµLªk¹B§@¡C ¦P®É±z¤]µLªk§Q¥Î\n"
+#~ " web ¤¶­±¨Ó­×§ï¬ÛÃöªº³]©w¡C¦b³oºØ±¡§Î¤§¤U¡A°ß¤@ªº¤èªk\n"
+#~ " ´N¬O½ÐÁ`¾Â¥D¤U«ü¥O­×§ï¬ÛÃö³]©w¡C"
+
+#~ msgid "your list administrator"
+#~ msgstr "±zªº¾Â¥D"
+
+#~ msgid ""
+#~ "You may have set non-delivery deliberately, or it may have been triggered "
+#~ "by bounces from your delivery address. In either case, to reenable "
+#~ "delivery, change the "
+#~ msgstr ""
+#~ "±z¥i¯à¬G·N³]©w¤£¦¬«H¡A©ÎªÌ¬O»F¦]©ó±zªº¦¬«H¦a§}µo¥Í¤Ó¦h°h«H©Ò­P¡C¦b³oºØ±¡ªp"
+#~ "¤U¡A±ý«ì´_¦¬«H½ÐÅܧó"
+
+#~ msgid "Private list: only members may see list of subscribers."
+#~ msgstr "¨p¤H½×¾Â¡G­­·|­û¬d¬Ý·|­û²M³æ"
+
+#~ msgid "Usage: unsubscribe <password> [<email-address>]"
+#~ msgstr "¥Îªk¡G unsubscribe <±K½X> [<email ¦a§}>]"
+
+#~ msgid ""
+#~ "Policies regarding systematic processing of bounce messages, to help "
+#~ "automate recognition and handling of defunct addresses."
+#~ msgstr "°h«H³B²z¬Fµ¦¡A¥Î¥H¨ó§U¿ë»{¤Î¾Þ§@µL®Äªº¦a§}¡C"
+
+#~ msgid "Command? "
+#~ msgstr "«ü¥O¡H"
+
+#~ msgid " no "
+#~ msgstr " §_"
+
+#~ msgid "Addresses whose postings are always held for approval."
+#~ msgstr "¦CºÞ¤H­û¡A§ë®Ñ§¡»Ý¸g®Ö­ã¡C"
+
+#~ msgid "List doesn't accept digest members."
+#~ msgstr "½×¾Â¤£±µ¨üºK­n·|­û"
+
+#~ msgid "You have no password. Contact the list administrator."
+#~ msgstr "±z¨S¦³±K½X¡C ½Ð»P¾Â¥DÁpô¡C"
+
+#~ msgid "NO MEMBERS."
+#~ msgstr "¨S¦³¦¨­û¡C"
+
+#~ msgid ""
+#~ "List access policies, including anti-spam measures, covering members and "
+#~ "outsiders. (See also the <a href=\"%s/archive\">Archival Options "
+#~ "section</a> for separate archive-privacy settings.)"
+#~ msgstr ""
+#~ "½×¾ÂºÞ¨î¬Fµ¦¡A¥]¬A¨¾©U§£«H±¹¬I¡A·|­û¤Î«D·|­û¡C(­Ó§OÂkÀɳ]©w½Ð°Ñ¦Ò<a href="
+#~ "\"%s/archive\">ÂkÀɳ]©w­¶</a> )"
+
+#~ msgid "Message"
+#~ msgstr "«H¥ó"
+
+#~ msgid ""
+#~ "An unexpected Mailman error has occurred in\n"
+#~ "MailCommandHandler.ParseMailCommands(). Here is the traceback:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "µo¥Í¤£¥i¹w´Áªº Mailman ¿ù»~¦b\n"
+#~ "MailCommandHandler.ParseMailCommands()¡C ¥H¤U¬O°lÂÜ¡G\n"
+#~ "\n"
+
+#~ msgid "Must posts be approved by an administrator?"
+#~ msgstr "§ë®Ñ§¡»Ý¸g¾Â¥D®Ö­ã¶Ü¡H"
+
+#~ msgid ""
+#~ "Email addresses whose posts should always be held for approval, no matter "
+#~ "what other options you have set. See also the subsequent option which "
+#~ "applies to arbitrary content of arbitrary headers."
+#~ msgstr ""
+#~ "¸g±`¦CºÞ Email ¦a§}¡A¤£½×°µ¦óºØ³]©w¡A¦CºÞ¤§ email ±b¸¹ªº§ë®Ñ§¡·|°e¾Â¥D®Ö"
+#~ "­ã¡C"
+
+#~ msgid ""
+#~ "\n"
+#~ "To change an option, do: set <option> <on|off> <password>\n"
+#~ "\n"
+#~ "Option explanations:\n"
+#~ "--------------------"
+#~ msgstr ""
+#~ "\n"
+#~ "±ýÅܧó³]©w¡A½Ð¥´ set <³]©w¶µ¥Ø> <on|off> <±K½X>\n"
+#~ "\n"
+#~ "³]©w»¡©ú¡G\n"
+#~ "--------------------"
+
+#~ msgid "User not found."
+#~ msgstr "¥¼µo²{¨Ï¥ÎªÌ"
+
+#~ msgid "Refuse"
+#~ msgstr "©Úµ´"
+
+#~ msgid "Stale cookie found"
+#~ msgstr "§ä¨ìªº cookie"
+
+#~ msgid " General list information can be found at "
+#~ msgstr " §ä¤£¨ì½×¾Â²¤¶¸ê°T¡Aºô§}¡G"
+
+#~ msgid "You must specify your password."
+#~ msgstr "±z¥²¶·µ¹©w±zªº±K½X¡C"
+
+#~ msgid "%s member %s bouncing - %s%s"
+#~ msgstr "%s ·|­û %s °h«H - %s%s"
+
+#~ msgid "%s subscriber list requires authentication."
+#~ msgstr "%s ·|­û²M³æ»Ý­n±K½XÅçÃÒ¡C"
+
+#~ msgid ""
+#~ "When turned on, your email address is concealed\n"
+#~ "on the Web page that lists the members of the mailing list."
+#~ msgstr ""
+#~ "·í¥´¶}¦¹¶µ³]©w«á¡A±zªº email ±N¤£·|Åã¥Ü¦b\n"
+#~ "½×¾Âªº­q¾\²M³æºô­¶¤¤¡C"
+
+#~ msgid ""
+#~ "Mailman won't accept the given email address as a valid address. (Does it "
+#~ "have an @ in it???)<p>"
+#~ msgstr "Mailman »{¬°±zªº email ¦a§}¿ù»~¡C(¬O¤£¬Oº|±¼¤F¤@­Ó @ ??? )<p>"
+
+#~ msgid "Your cookie has gone stale, enter password to get a new one."
+#~ msgstr "±zªº cookie ¤w¸g¿ò¥¢¡A½Ð¦A¦¸¿é¤J±K½X¡C"
+
+#~ msgid "\trequests to: "
+#~ msgstr "\t¥Ó½Ð³B¡G "
+
+#~ msgid "List is not functional."
+#~ msgstr "½×¾Â¥\¯à¥¼¶}±Ò¡C"
+
+#~ msgid "%s is not subscribed to this list."
+#~ msgstr "%s ¨Ã¥¼­q¾\¥»½×¾Â"
+
+#~ msgid "\tdescription: "
+#~ msgstr "\t´y­z¡G "
+
+#~ msgid "%s isn't subscribed to this list."
+#~ msgstr "%s ¨Ã¥¼­q¾\¥»½×¾Â¡C"
+
+#~ msgid ""
+#~ "An unexpected Mailman error has occurred.\n"
+#~ "\n"
+#~ "Please forward your request to the human list administrator in charge of "
+#~ "this\n"
+#~ "list at <%s>. The traceback is attached below and will be forwarded to "
+#~ "the\n"
+#~ "list administrator automatically."
+#~ msgstr ""
+#~ "µo¥Í¤£¥i¹w´Áªº Mailman ¿ù»~¡C\n"
+#~ "\n"
+#~ "½Ð±N±zªº¥Ó½Ð±Hµ¹¦b <%s> ¤Wªº¾Â¥D¡C¥H¤U©Ò¦Cªº°»¿ù¸ê°T±N¦Û°Ê±H\n"
+#~ "µ¹¾Â¥D°Ñ¦Ò¡C"
+
+#~ msgid "%s admin authentication failed."
+#~ msgstr "%s ÅçÃÒ¥¢±Ñ¡C"
+
+#~ msgid "%s has no subscribed addr <i>%s</i>."
+#~ msgstr "%s ¤W¨ÃµL <i>%s</i> ­q¾\°O¿ý¡C"
+
+#~ msgid "Changing user options results page"
+#~ msgstr "·|­ûÅܧó³]©wµ²ªG"
+
+#~ msgid "[original message unavailable]"
+#~ msgstr "[¤£´£¨Ñ­ì©l«H¥ó]"
+
+#~ msgid ""
+#~ "Use this option if you want to restrict posting to list members. If you "
+#~ "want list members to be able to post, plus a handful of other posters, "
+#~ "see the <i> posters </i> setting below"
+#~ msgstr ""
+#~ "­Y±z·Q­­¨î¶È¥Ñ·|­û§ë®Ñ½Ð¨Ï¥Î¥»¶µ³]©w¡C¦pªG±z­n½×¾Â¦¨­û¥i¥H§ë®Ñ¥H¥~¡A¥t¥~¥H"
+#~ "¤â°Ê¥[¤J¨ä¥L¤¹³\§ë®Ñªº¤H­û¡A½Ð°Ñ¦Ò¥H¤U <i>§ë®Ñ¤H</i>ªº³]©w"
+
+#~ msgid ""
+#~ "\n"
+#~ "For more complete info about the %(listname)s mailing list, including\n"
+#~ "background and instructions for subscribing to and using it, visit:\n"
+#~ "\n"
+#~ " %(url)s\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\n"
+#~ "¦³Ãö %(listname)s ³q«H½×¾Âªº¶i¤@¨B®ø®§¡A¥]¬A\n"
+#~ "­I´º¸ê®Æ¥H¤Î­q¾\¤Î¨Ï¥ÎªºÂ²¤¶½Ð°Ñ¦Òºô­¶¡G\n"
+#~ "\n"
+#~ " %(url)s\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "The list is not fully functional, and can not accept subscription "
+#~ "requests.<p>"
+#~ msgstr "¥»½×¾Â¥¼¶}©ñ­q¾\¡C<p>"
+
+#~ msgid ""
+#~ "Subject line ignored:\n"
+#~ " "
+#~ msgstr ""
+#~ "¥DÃD¦æ©¿²¤¡G\n"
+#~ " "
+
+#~ msgid "Regular-member (non-digest) Options"
+#~ msgstr "¤@¯ë·|­û³]©w(«DºK­n)³]©w"
+
+#~ msgid "Email address '%s' not accepted by Mailman."
+#~ msgstr "Mailman ¤£±µ¨ü '%s' email ¦a§}¡C"
+
+#~ msgid "<p>Continue to "
+#~ msgstr "<p>³sÄò "
+
+#~ msgid "No file"
+#~ msgstr "¨S¦³ÀÉ®×"
+
+#~ msgid "Action when critical or excessive bounces are detected."
+#~ msgstr "·í°»´ú¨ìÄY­«©Î¶W¶qªº©U§£¶l¥ó®É°µ¥X¤ÏÀ³¡C"
+
+#~ msgid "Private list: No one may see subscription list."
+#~ msgstr "¨p¤H½×¾Â¡G ­q¾\²M³æµL¥i©^§i¡C"
+
+#~ msgid "Found no password for %s"
+#~ msgstr "¥¼µo²{ %s ªº±K½X"
+
+#~ msgid ""
+#~ "When turned on, you get `plain' digests, which are actually\n"
+#~ "formatted using the older RFC934 digest format. This format can be "
+#~ "easier\n"
+#~ "to read if you have a non-MIME compliant mail reader. When this option "
+#~ "is\n"
+#~ "turned off, you get digests in MIME format, which are much better if you\n"
+#~ "have a mail reader that supports MIME."
+#~ msgstr ""
+#~ "·í¥´¶}¦¹³]©w¡A±z·|¦¬¨ì'¯Â¤å¦r'®æ¦¡ªººK­n¡A¦¹®æ¦¡\n"
+#~ "§¹¥þ¿í·Óªº RFC 934 ºK­n®æ¦¡¡C¦pªG±z¨Ï¥Îªº¬O«D MIME ¬Û®eªº\n"
+#~ "¦¬«H³nÅé®É¡A¦¹ºØ®æ¦¡«Ü®e©ö³Q¤ä´©¡C ·íÃö³¬¦¹³]©w®É¡A±z±N·|¦¬\n"
+#~ "¨ì MIME ®æ¦¡ªººK­n¡A¦pªG±z¥Î¤ä´© MIME ªº¶l¥ó³nÅé®É¸û¬°¦X¾A"
+
+#~ msgid "You are already subscribed!<p>"
+#~ msgstr "±z¤w¸g­q¾\¦¨¥\¡I<p>"
+
+#~ msgid ""
+#~ "Addresses of members accepted for posting to this list without implicit "
+#~ "approval requirement. (See \"Restrict ... to list members\" for whether "
+#~ "or not this is in addition to allowing posting by list members"
+#~ msgstr ""
+#~ "¤¹³\¤£¸g®Ö­ã§ë®Ñ¤§·|­û¦a§}¡C(½Ð¬Ý\"­­·|­û§ë®Ñ\"¥H¨M©w¬O§_¤¹³\½×¾Â·|­û§ë®Ñ"
+
+#~ msgid "Passwords must match."
+#~ msgstr "±K½X¿ù»~¡C"
+
+#~ msgid ""
+#~ "All messages not related to an specific user will be displayed in this "
+#~ "language."
+#~ msgstr "°£¯S©w¨Ï¥ÎªÌ¥~¡A©Ò¦³°T®§±N¥H¦¹ºØ»y¨¥Åã¥Ü¡C"
+
+#~ msgid "Usage: password [<oldpw> <newpw>]"
+#~ msgstr "¥Îªk¡Gpassword [<±K½X> <·s±K½X>]"
+
+#~ msgid ""
+#~ "This is an automated response.\n"
+#~ "\n"
+#~ "There were problems with the email commands you sent to Mailman via the\n"
+#~ "administrative address <%(sender)s>.\n"
+#~ "\n"
+#~ "To obtain instructions on valid Mailman email commands, send email to\n"
+#~ "<%(sender)s> with the word \"help\" in the subject line or in the body of "
+#~ "the\n"
+#~ "message.\n"
+#~ "\n"
+#~ "If you want to reach the human being that manages this mailing list, "
+#~ "please\n"
+#~ "send your message to <%(admin)s>.\n"
+#~ "\n"
+#~ "The following is a detailed description of the problems.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "³o¬O¦Û°Ê¦^ÂЪº«H¥ó¡C\n"
+#~ "\n"
+#~ "±z±H¨ìºÞ²z«H½c <%(sender)s> ªº email «ü¥O¦³»~¡C\n"
+#~ "\n"
+#~ "\n"
+#~ "±ýª¾¥¿½Tªº email «ü¥O¡A½Ð¥H \"help\" ¬°«H¥ó¥DÃD©ÎªÌ«H¥ó¤º®e¡A\n"
+#~ "±H¨ì <%(sender)s> ¡C\n"
+#~ "\n"
+#~ "\n"
+#~ "­Y±z­n¸ò½×¾ÂºÞ²z¤H­û(¾Â¥D)Ápµ¸¡A½Ð±N±zªº·N¨£±H¨ì\n"
+#~ " <%(admin)s>¡C\n"
+#~ "\n"
+#~ "¥H¤Uªþ¤W°ÝÃD«H¥óªº»¡©ú¡C\n"
+#~ "\n"
+
+#~ msgid "Your account has gone awry - please contact the list administrator!"
+#~ msgstr "±zªº±b¸¹¤w¸g¨ú®ø - ½Ð»P¾Â¥DÁpô¡I"
+
+#~ msgid "Error decoding authorization cookie."
+#~ msgstr "ÅçÃÒ cookie ¸ÑŪ¥¢±Ñ¡C"
+
+#~ msgid ""
+#~ "Base URL for Mailman web interface. The URL must end in a\n"
+#~ " \t single \"/\". See also the details for an important warning "
+#~ "when\n"
+#~ " \t changing this value."
+#~ msgstr ""
+#~ "Mailman ºô­¶¤¶­±ªº URL¡CURL µ²§À¥²¶·¬O¤@­Ó \"/\"¡C\n"
+#~ "\t ·íÅܧ󦹶µ³]©w®É¡A½Ð¸ÔŪÃö©óÅܧó®Éªº­«­n°T®§¡C\n"
+#~ "\t"
+
+#~ msgid "%s Admindb"
+#~ msgstr "% ºÞ²z¸ê®Æ®w"
+
+#~ msgid "You have been unsubscribed."
+#~ msgstr "±z¤w¸g°h­q¡C"
+
+#~ msgid "Please enter your %s subscription email address and password."
+#~ msgstr "½Ð¿é¤J¦b %s ªº­q¾\ email ±b¸¹¤Î±K½X¡C "
+
+#~ msgid "Your password has been changed."
+#~ msgstr "±zªº±K½X¤w¸gÅܧó¡C"
+
+#~ msgid "You must supply a password to change options."
+#~ msgstr "±z¥²¶·µ¹©w±K½X¥HÅܧó³]©w¡C"
+
+#~ msgid ""
+#~ "Minimum number of posts to the list since members first bounce before we "
+#~ "consider removing them from the list"
+#~ msgstr "³Ì¤Ö°h«H¦¸¼Æ¡A¶W¹L¦¹¼Æ mailman ±N·|¦Û°Ê¦Û½×¾Â²¾°£¡C"
+
+#~ msgid "<malformed option>"
+#~ msgstr "<malformed ³]©w>"
+
+#~ msgid " (You can change your password there, too.)"
+#~ msgstr " (±z¤]¥i¦b¨ºÃäÅܧó±K½X¡C)"
+
+#~ msgid " if you have questions."
+#~ msgstr " ­Y±z¦³¨ä¥L°ÝÃD¡C"
+
+#~ msgid "<p> Below is the collection of publicly-advertised "
+#~ msgstr "<p> ¥H¤U¬O¤½¶}ªº½×¾Â¦Cªí"
+
+#~ msgid "(%s members total, max. %s at a time displayed)"
+#~ msgstr "(·|­û¦@ %s ¤H¡A¨C­¶³Ì¦hÅã¥Ü %s ¤H)"
+
+#~ msgid "subscr"
+#~ msgstr "­q¾\"
+
+#~ msgid "), %senter your subscription email address:"
+#~ msgstr ")¡A %s ½Ð¿é¤J­q¾\ªº email ¦a§}¡G"
+
+#~ msgid "Succeeded."
+#~ msgstr "¦¨¥\"
+
+#~ msgid "Authentication error."
+#~ msgstr "ÅçÃÒ¿ù»~¡C"
+
+#~ msgid "You must give your password to unsubscribe."
+#~ msgstr "±ý¨ú®ø­q¾\±z¥²¶·µ¹©w±zªº±K½X¡C"
+
+#~ msgid "You must supply your email address."
+#~ msgstr "±z¥²¶·µ¹©w±zªº email ¦a§}¡C"
+
+#~ msgid ""
+#~ "Set date in archive to when the mail is claimed to have been sent, or to "
+#~ "the time we resend it?"
+#~ msgstr "³]©w«H¥ó¦sÀɤé´Á¬O¨Ì«H¥ó±H¥X®É¶¡¡AÁÙ¬O mailman °e¥Xªº®É¶¡¡H"
+
+#~ msgid "You already have digests off."
+#~ msgstr "§A¤w¸g¨ú®øºK­n¼Ò¦¡¡C"
+
+#~ msgid "%s user %s missing password!"
+#~ msgstr "%s ¨Ï¥ÎªÌ %s ¿ò¥¢±K½X¡I"
+
+#~ msgid "Do nothing"
+#~ msgstr "¤£§@¦^À³"
+
+#~ msgid ""
+#~ "The password entry for `%s' has not been found. The list administrator "
+#~ "is being notified.<p>"
+#~ msgstr "¨S¦³µo²{ '%s' ªº±K½X¡C±N³qª¾¾Â¥D³B²z¡C<p>"
+
+#~ msgid "You must type in your new password twice"
+#~ msgstr "±z¥²¶·¿é¤J±K½X¨â¦¸"
+
+#~ msgid "edit your personal options"
+#~ msgstr "­×§ï­Ó¤H³]©w"
+
+#~ msgid "Disable and DON'T notify me"
+#~ msgstr "¨ú®ø­q¾\¥B¤£­n³qª¾§Ú"
+
+#~ msgid "Private list: only members may see info."
+#~ msgstr "¨p¤H½×¾Â¡G­­·|­ûÆ[¬Ý¡C"
+
+#~ msgid ""
+#~ "Usage: unsubscribe <password> [<email-address>]\n"
+#~ "To unsubscribe from a particular list, send your request\n"
+#~ "to the '-request' address for that list."
+#~ msgstr ""
+#~ "¥Îªk¡G unsubscribe <±K½X> [<email ¦a§}>]\n"
+#~ "±ý²×¤î¤@½×¾Âªº­q¾\®É¡A±N±zªº¥Ó½Ð±H¨ì\n"
+#~ "¸Ó½×¾Â '-request' ªº¦a§}¡C"
+
+#~ msgid "Try to figure out error messages automatically? "
+#~ msgstr "±ý¦Û°Ê§ä¥X¿ù»~«H¥ó¶Ü¡H"
+
+#~ msgid "%s Admindb Results"
+#~ msgstr "%s ºÞ²z¸ê®Æ®wµ²ªG"
+
+#~ msgid "Disable and notify me"
+#~ msgstr "¨ú®ø¨Ã³qª¾§Ú"
+
+#~ msgid "Incorrect password."
+#~ msgstr "±K½X¿ù»~¡C"
+
+#~ msgid " option. Contact "
+#~ msgstr " ¿ï¶µ¡C ±µ¬¢ "
+
+#~ msgid ""
+#~ " To visit the administrators configuration page for an unadvertised list, "
+#~ "open a URL similar to this"
+#~ msgstr "±ý«e©¹¥¼¤½¶}½×¾Â¤§ºÞ²z³]©wºô­¶¡A½Ð¦p¤U©Ò¥Ü¶}±Ò URL "
+
+#~ msgid ""
+#~ "Restrict posting privilege to list members? (<i>member_posting_only</i>)"
+#~ msgstr "¶È­­½×¾Â·|­ûµo¨¥¶Ü¡H(<i>­­_·|­û_§ë®Ñ</i>)"
+
+#~ msgid "When resent"
+#~ msgstr "·í­«±H®É"
+
+#~ msgid "Your email address or password were incorrect. Please try again."
+#~ msgstr "±zªº email ¦a§}©Î±K½X¦³»~¡C½Ð¦A¸Õ¤@¦¸¡C"
+
+#~ msgid ""
+#~ "The list is not fully functional, and can not accept subscription\n"
+#~ "requests."
+#~ msgstr ""
+#~ "¥»½×¾Â¥\¯à¥¼§¹¥þ¶}©ñ¡A¥Ø«e¼È¤£±µ¨ü­q¾\¥Ó½Ð\n"
+#~ "¡C"
+
+#~ msgid "Remove and notify me"
+#~ msgstr "²¾°£¨Ã³qª¾§Ú"
+
+#~ msgid ""
+#~ "To change your subscription (set options like digest and delivery modes, "
+#~ "get a reminder of your password, or unsubscribe from "
+#~ msgstr "±ýÅܧó±zªº­q¾\(³]©w ºK­n©Î¤@¯ë¼Ò¦¡¡A¨ú±o´£¿ô±K½X"
+
+#~ msgid "End of %s Digest"
+#~ msgstr "%s ºK­nµ²§À"
+
+#~ msgid ""
+#~ "When turned on, you do *not* get copies of your own\n"
+#~ "posts to the list. Otherwise, you do get copies of your own posts\n"
+#~ " (yes, this seems a little backwards). This does not affect the "
+#~ "contents\n"
+#~ "of digests, so if you receive postings in digests, you will always get\n"
+#~ "copies of your messages in the digest."
+#~ msgstr ""
+#~ "·í¶}±Ò¥»¶µ³]©w«á¡A±z *¤£* ·|¦¬¨ì¥Ñ±z¦Û¤v±H¨ì\n"
+#~ "½×¾Âªº«H¥ó¡C ¦¹¥~¡A±z¤]¥i¦¬¨ì±z¦Û¤vªº§ë®Ñ \n"
+#~ "(¨S¿ù¡A³oÅ¥°_¨Ó¦³ÂI¥Ù¬Þ)¡C ³o­Ó³]©w¤£·|¼vÅT\n"
+#~ "ºK­nªº¤º®e¡A©Ò¥H¦pªG±z¬OºK­n­q¤áªº¸Ü¡A±z¦¬\n"
+#~ "¨ìªººK­n¤]·|¥]§t±z¦Û¤v§ë®Ñªº«H¥ó¡C"
+
+#~ msgid ""
+#~ "Usage: who\n"
+#~ "To get subscribership for a particular list, send your request\n"
+#~ "to the '-request' address for that list."
+#~ msgstr ""
+#~ "¥Îªk¡G who\n"
+#~ "±ý­q¾\¬Y¤@½×¾Â®É¡A½Ð±N¥Ó½Ð¨ç±H¨ì\n"
+#~ "¸Ó½×¾Âªº '-request' ¦a§}¡C"
+
+#~ msgid "Maximum command lines (%d) encountered, ignoring the rest..."
+#~ msgstr "¶W¹L³Ì¤j«ü¥O¦æ¼Æ(%d)¡A¶W¹L³¡¤À±N©¿²¤..."
+
+#~ msgid "Spam-specific posting filters"
+#~ msgstr "©U§£«H¥ó¹LÂo³W«h"
+
+#~ msgid "List only accepts digest members."
+#~ msgstr "½×¾Â¶È±µ¨üºK­n·|­û"
+
+#~ msgid "When sent"
+#~ msgstr "·í±H¥X®É"
+
+#~ msgid "Error Subscribing:"
+#~ msgstr "­q¾\¤£¦¨¥\¡G"
+
+#~ msgid " one, but with a '/' and the %slist name appended.<p>"
+#~ msgstr " ¡A¥B·|¥[¤W '/' ¤Î½×¾Â¦WºÙ %s ¡C"
+
+#~ msgid ""
+#~ "Usage: set <option> <on|off> <password>\n"
+#~ "Valid options are:\n"
+#~ msgstr ""
+#~ "¥Îªk: set <¿ï¶µ> <on|off> <±K½X>\n"
+#~ "¥¿½Tªº¿ï¶µ¬O:\n"
+
+#~ msgid "Option %s/%s not found: %s"
+#~ msgstr "¿ï¶µ %s/%s ¥¼µo²{¡J%s"
diff --git a/messages/cs/LC_MESSAGES/mailman.mo b/messages/cs/LC_MESSAGES/mailman.mo
new file mode 100644
index 00000000..6b32e545
--- /dev/null
+++ b/messages/cs/LC_MESSAGES/mailman.mo
Binary files differ
diff --git a/messages/cs/LC_MESSAGES/mailman.po b/messages/cs/LC_MESSAGES/mailman.po
new file mode 100644
index 00000000..cb0845ab
--- /dev/null
+++ b/messages/cs/LC_MESSAGES/mailman.po
@@ -0,0 +1,10238 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) 1999 Free Software Foundation, Inc.
+# Dan Ohnesorg <Dan@feld.cvut.cz>, 1999.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 1.0rc3\n"
+"POT-Creation-Date: Tue Dec 24 13:41:28 2002\n"
+"PO-Revision-Date: 2002-12-15 00:39+0100\n"
+"Last-Translator: Dan Ohnesorg <dan@ohnesorg.cz>\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-2\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 0.9.6\n"
+
+#: Mailman/Archiver/HyperArch.py:112
+msgid "size not available"
+msgstr "velikost není známa"
+
+#: Mailman/Archiver/HyperArch.py:118
+msgid " %(size)i bytes "
+msgstr " %(size)i bajtù "
+
+#: Mailman/Archiver/HyperArch.py:249 Mailman/Archiver/HyperArch.py:405
+#: Mailman/Archiver/HyperArch.py:963 Mailman/Archiver/HyperArch.py:1127
+msgid " at "
+msgstr " na "
+
+#: Mailman/Archiver/HyperArch.py:434
+msgid "Previous message:"
+msgstr "Pøedchozí pøíspìvek:"
+
+#: Mailman/Archiver/HyperArch.py:456
+msgid "Next message:"
+msgstr "Následující pøíspìvek:"
+
+#: Mailman/Archiver/HyperArch.py:609 Mailman/Archiver/HyperArch.py:645
+msgid "thread"
+msgstr "Vlákno"
+
+#: Mailman/Archiver/HyperArch.py:610 Mailman/Archiver/HyperArch.py:646
+msgid "subject"
+msgstr "vìc"
+
+#: Mailman/Archiver/HyperArch.py:611 Mailman/Archiver/HyperArch.py:647
+msgid "author"
+msgstr "autor"
+
+#: Mailman/Archiver/HyperArch.py:612 Mailman/Archiver/HyperArch.py:648
+msgid "date"
+msgstr "datum"
+
+#: Mailman/Archiver/HyperArch.py:684
+msgid "<P>Currently, there are no archives. </P>"
+msgstr "<P>V souèasné dobì neexistují ¾ádné archivy. </P>"
+
+#: Mailman/Archiver/HyperArch.py:721
+msgid "Gzip'd Text%(sz)s"
+msgstr "Zagzipovaný text %(sz)s"
+
+#: Mailman/Archiver/HyperArch.py:726
+msgid "Text%(sz)s"
+msgstr "Text %(sz)s"
+
+#: Mailman/Archiver/HyperArch.py:816
+msgid "figuring article archives\n"
+msgstr "generuji archiv pøíspìvkù\n"
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "April"
+msgstr "Duben"
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "February"
+msgstr "Únor"
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "January"
+msgstr "Leden"
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "March"
+msgstr "Bøezen"
+
+#: Mailman/Archiver/HyperArch.py:827
+msgid "August"
+msgstr "Srpen"
+
+#: Mailman/Archiver/HyperArch.py:827
+msgid "July"
+msgstr "Èerven"
+
+#: Mailman/Archiver/HyperArch.py:827
+msgid "June"
+msgstr "Èervenec"
+
+#: Mailman/Archiver/HyperArch.py:827 Mailman/i18n.py:91
+msgid "May"
+msgstr "Kvìten"
+
+#: Mailman/Archiver/HyperArch.py:828
+msgid "December"
+msgstr "Prosinec"
+
+#: Mailman/Archiver/HyperArch.py:828
+msgid "November"
+msgstr "Listopad"
+
+#: Mailman/Archiver/HyperArch.py:828
+msgid "October"
+msgstr "Øíjen"
+
+#: Mailman/Archiver/HyperArch.py:828
+msgid "September"
+msgstr "Záøí"
+
+#: Mailman/Archiver/HyperArch.py:836
+msgid "First"
+msgstr "První"
+
+#: Mailman/Archiver/HyperArch.py:836
+msgid "Fourth"
+msgstr "Ètvrtý"
+
+#: Mailman/Archiver/HyperArch.py:836
+msgid "Second"
+msgstr "Druhý"
+
+#: Mailman/Archiver/HyperArch.py:836
+msgid "Third"
+msgstr "Tøetí"
+
+#: Mailman/Archiver/HyperArch.py:838
+msgid "%(ord)s quarter %(year)i"
+msgstr "%(ord)s ètvrtletí %(year)i"
+
+#: Mailman/Archiver/HyperArch.py:845
+msgid "%(month)s %(year)i"
+msgstr "%(month)s %(year)i"
+
+#: Mailman/Archiver/HyperArch.py:850
+msgid "The Week Of Monday %(day)i %(month)s %(year)i"
+msgstr "Týden, který zaèíná pondìlím %(day)i %(month)s %(year)i"
+
+#: Mailman/Archiver/HyperArch.py:854
+msgid "%(day)i %(month)s %(year)i"
+msgstr "%(day)i %(month)s %(year)i"
+
+#: Mailman/Archiver/HyperArch.py:951
+msgid "Computing threaded index\n"
+msgstr "Generuji index pro pøíspìvky sdru¾ené do vláken\n"
+
+#: Mailman/Archiver/HyperArch.py:1206
+msgid "Updating HTML for article %(seq)s"
+msgstr "Aktualizuji HTML stránky pro pøíspìvek %(seq)s"
+
+#: Mailman/Archiver/HyperArch.py:1213
+msgid "article file %(filename)s is missing!"
+msgstr "soubor %(filename)s ve kterém je ulo¾en pøíspìvìk nebyl nalezen!"
+
+#: Mailman/Archiver/pipermail.py:168 Mailman/Archiver/pipermail.py:169
+msgid "No subject"
+msgstr "Nebyl nalezen subjekt"
+
+#: Mailman/Archiver/pipermail.py:269
+msgid "Creating archive directory "
+msgstr "Vytváøím adresáø s pøíspìvky"
+
+#: Mailman/Archiver/pipermail.py:281
+msgid "Reloading pickled archive state"
+msgstr "Naèítám stav po¹kozeného archivu."
+
+#: Mailman/Archiver/pipermail.py:308
+msgid "Pickling archive state into "
+msgstr "Ukládám stav archivu do"
+
+#: Mailman/Archiver/pipermail.py:419
+msgid "Updating index files for archive [%(archive)s]"
+msgstr "Aktualizuji indexový soubor pro archiv konference [%(archive)s]"
+
+#: Mailman/Archiver/pipermail.py:452
+msgid " Thread"
+msgstr "Thread"
+
+#: Mailman/Archiver/pipermail.py:557
+msgid "#%(counter)05d %(msgid)s"
+msgstr "#%(counter)05d %(msgid)s"
+
+#: Mailman/Bouncer.py:44
+msgid "due to excessive bounces"
+msgstr "kvùli nedoruèitelnosti"
+
+#: Mailman/Bouncer.py:45
+msgid "by yourself"
+msgstr "na pokyn u¾ivatele"
+
+#: Mailman/Bouncer.py:46
+msgid "by the list administrator"
+msgstr "administrátorem konference"
+
+#: Mailman/Bouncer.py:47 Mailman/Bouncer.py:232
+#: Mailman/Commands/cmd_set.py:182
+msgid "for unknown reasons"
+msgstr "z neznámých dùvodù"
+
+#: Mailman/Bouncer.py:179
+msgid "disabled"
+msgstr "zakázáno"
+
+#: Mailman/Bouncer.py:184
+msgid "Bounce action notification"
+msgstr "Oznámení o nedoruèitelnosti"
+
+#: Mailman/Bouncer.py:239
+msgid " The last bounce received from you was dated %(date)s"
+msgstr ""
+" Poslední pøíspìvek, který se vrátil jako nedoruèitelný na Va¹i adresu má "
+"datum: %(date)s"
+
+#: Mailman/Bouncer.py:264 Mailman/Deliverer.py:126
+#: Mailman/Handlers/Acknowledge.py:44 Mailman/Handlers/CookHeaders.py:236
+#: Mailman/Handlers/Hold.py:214 Mailman/Handlers/Hold.py:249
+#: Mailman/Handlers/ToDigest.py:211 Mailman/ListAdmin.py:235
+msgid "(no subject)"
+msgstr "(no subject)"
+
+#: Mailman/Bouncer.py:266
+msgid "[No bounce details are available]"
+msgstr "[®ádné dal¹í informace nejsou dostupné.]"
+
+#: Mailman/Cgi/Auth.py:46
+msgid "Moderator"
+msgstr "Moderátor"
+
+#: Mailman/Cgi/Auth.py:48
+msgid "Administrator"
+msgstr "Administrátor"
+
+#: Mailman/Cgi/admin.py:70 Mailman/Cgi/admindb.py:89 Mailman/Cgi/confirm.py:55
+#: Mailman/Cgi/edithtml.py:67 Mailman/Cgi/listinfo.py:51
+#: Mailman/Cgi/options.py:71 Mailman/Cgi/private.py:98
+#: Mailman/Cgi/rmlist.py:64 Mailman/Cgi/roster.py:57
+#: Mailman/Cgi/subscribe.py:61
+msgid "No such list <em>%(safelistname)s</em>"
+msgstr "Nenalezl jsem konferenci <em>%(safelistname)s</em>."
+
+#: Mailman/Cgi/admin.py:85 Mailman/Cgi/admindb.py:105
+#: Mailman/Cgi/edithtml.py:85 Mailman/Cgi/private.py:123
+msgid "Authorization failed."
+msgstr "Selhání autorizace."
+
+#: Mailman/Cgi/admin.py:175
+msgid ""
+"You have turned off delivery of both digest and\n"
+" non-digest messages. This is an incompatible state of\n"
+" affairs. You must turn on either digest delivery or\n"
+" non-digest delivery or your mailing list will basically be\n"
+" unusable."
+msgstr ""
+"Zakázal jste souèasnì zasílání digest i non-digest. To není mo¾né, proto¾e "
+"potom by konferencí nepro¹el ¾ádný pøíspìvek. Musíte alespoò jeden zpùsob "
+"doruèení zapnout."
+
+#: Mailman/Cgi/admin.py:179 Mailman/Cgi/admin.py:185 Mailman/Cgi/admin.py:190
+#: Mailman/Cgi/admin.py:1361 Mailman/Gui/GUIBase.py:184
+msgid "Warning: "
+msgstr "Pozor: "
+
+#: Mailman/Cgi/admin.py:183
+msgid ""
+"You have digest members, but digests are turned\n"
+" off. Those people will not receive mail."
+msgstr ""
+"Pozor: Konference obsahuje digest úèastníky. Pokud digest vypnete nebudou "
+"dostávat po¹tu."
+
+#: Mailman/Cgi/admin.py:188
+msgid ""
+"You have regular list members but non-digestified mail is\n"
+" turned off. They will receive mail until you fix this\n"
+" problem."
+msgstr ""
+"Pozor: V konferenci máte ne-digest úèastníky, ale je povoleno jen rozesíláni "
+"digestu. Tito nebudou dostávat po¹tu."
+
+#: Mailman/Cgi/admin.py:212
+msgid "%(hostname)s mailing lists - Admin Links"
+msgstr "Konference na serveru %(hostname)s - Administrativní odkazy"
+
+#: Mailman/Cgi/admin.py:241 Mailman/Cgi/listinfo.py:97
+msgid "Welcome!"
+msgstr "Vítejte!"
+
+#: Mailman/Cgi/admin.py:244 Mailman/Cgi/listinfo.py:100
+msgid "Mailman"
+msgstr "Mailman"
+
+#: Mailman/Cgi/admin.py:248
+msgid ""
+"<p>There currently are no publicly-advertised %(mailmanlink)s\n"
+" mailing lists on %(hostname)s."
+msgstr ""
+"<p>Na serveru %(hostname)s nejsou v této dobì ¾ádné veøejnì pøístupné "
+"konference spravované %(mailmanlink)s."
+
+#: Mailman/Cgi/admin.py:254
+msgid ""
+"<p>Below is the collection of publicly-advertised\n"
+" %(mailmanlink)s mailing lists on %(hostname)s. Click on a list\n"
+" name to visit the configuration pages for that list."
+msgstr ""
+"<p>Zde vidíte seznam veøejnì pøístupných konferencí provozovaných pod \n"
+" %(mailmanlink)s na serveru %(hostname)s. Kliknutím na\n"
+" jméno konference se dostanete na její konfiguraèní stránky."
+
+#: Mailman/Cgi/admin.py:261
+msgid "right "
+msgstr "Vpravo"
+
+#: Mailman/Cgi/admin.py:263
+msgid ""
+"To visit the administrators configuration page for an\n"
+" unadvertised list, open a URL similar to this one, but with a '/' "
+"and\n"
+" the %(extra)slist name appended. If you have the proper authority,\n"
+" you can also <a href=\"%(creatorurl)s\">create a new mailing list</"
+"a>.\n"
+"\n"
+" <p>General list information can be found at "
+msgstr ""
+"Pro konfiguraci konference, které není veøejnì pøístupná\n"
+" zadejte URL podobné tomuto, ale na konec za '/' pøidejte\n"
+" jméno %(extra)s list . Pokud máte dostateèná práva,\n"
+" mù¾ete na URL <a href=\"%(creatorurl)s\">zalo¾it novou konferenci</"
+"a>.\n"
+"\n"
+" <p>V¹eobecné informace o konferencích jsou na "
+
+#: Mailman/Cgi/admin.py:270
+msgid "the mailing list overview page"
+msgstr "informaèní stránce konference"
+
+#: Mailman/Cgi/admin.py:272
+msgid "<p>(Send questions and comments to "
+msgstr "<p>(Zasílejte dotazy a pøipomínky na "
+
+#: Mailman/Cgi/admin.py:282 Mailman/Cgi/listinfo.py:132 cron/mailpasswds:179
+msgid "List"
+msgstr "Do konference"
+
+#: Mailman/Cgi/admin.py:283 Mailman/Cgi/admin.py:549
+#: Mailman/Cgi/listinfo.py:133
+msgid "Description"
+msgstr "Popis"
+
+#: Mailman/Cgi/admin.py:289 Mailman/Cgi/listinfo.py:139 bin/list_lists:116
+msgid "[no description available]"
+msgstr "[¾ádný popis není k dispozici]"
+
+#: Mailman/Cgi/admin.py:322
+msgid "No valid variable name found."
+msgstr "Nenalezl jsem ¾ádný platný název promìnné"
+
+#: Mailman/Cgi/admin.py:332
+msgid ""
+"%(realname)s Mailing list Configuration Help\n"
+" <br><em>%(varname)s</em> Option"
+msgstr ""
+"Konference %(realname)s \n"
+" <br>Nápovìda pro volbu<em> %(varname)s</em>."
+
+#: Mailman/Cgi/admin.py:339
+msgid "Mailman %(varname)s List Option Help"
+msgstr "Nápovìda pro promìnnou %(varname)s"
+
+#: Mailman/Cgi/admin.py:357
+msgid ""
+"<em><strong>Warning:</strong> changing this option here\n"
+" could cause other screens to be out-of-sync. Be sure to reload any "
+"other\n"
+" pages that are displaying this option for this mailing list. You can "
+"also\n"
+" "
+msgstr ""
+"<em><strong>Pozor:</strong> pokud zmìníte tuto volbu,\n"
+" budou ostatní stránky s konfigurací konference out-of-sync.Musíte je "
+"v¹echny obnovit, ne¾ na nich budete dìlat nìjaké zmìny. Nebo mù¾ete "
+
+#: Mailman/Cgi/admin.py:368
+msgid "return to the %(categoryname)s options page."
+msgstr "pøejít zpìt na stránku %(categoryname)s."
+
+#: Mailman/Cgi/admin.py:383
+msgid "%(realname)s Administration (%(label)s)"
+msgstr "Administrace konference %(realname)s (%(label)s)"
+
+#: Mailman/Cgi/admin.py:384
+msgid "%(realname)s mailing list administration<br>%(label)s Section"
+msgstr "Konfigurace konference %(realname)s <br>%(label)s"
+
+#: Mailman/Cgi/admin.py:400
+msgid "Configuration Categories"
+msgstr "Konfiguraèní kategorie"
+
+#: Mailman/Cgi/admin.py:401
+msgid "Other Administrative Activities"
+msgstr "Dal¹í administrativní úkony"
+
+#: Mailman/Cgi/admin.py:405
+msgid "Tend to pending moderator requests"
+msgstr "Pøejdi na stránku administativních po¾adavkù."
+
+#: Mailman/Cgi/admin.py:407
+msgid "Go to the general list information page"
+msgstr "Pøejdi na stránku se v¹eobecnými informacemi o konferenci."
+
+#: Mailman/Cgi/admin.py:409
+msgid "Edit the public HTML pages"
+msgstr "Edituje HTML ¹ablony pro veøejnì pøístupné stránky konference."
+
+#: Mailman/Cgi/admin.py:411
+msgid "Go to list archives"
+msgstr "Jdi na archiv konference"
+
+#: Mailman/Cgi/admin.py:417
+msgid "Delete this mailing list"
+msgstr "Sma¾te tuto konferenci"
+
+#: Mailman/Cgi/admin.py:418
+msgid " (requires confirmation)<br>&nbsp;<br>"
+msgstr ".(vy¾aduje potvrzení)<br>&nbsp;<br>"
+
+#: Mailman/Cgi/admin.py:424
+msgid "Logout"
+msgstr "Odhlá¹ení"
+
+#: Mailman/Cgi/admin.py:468
+msgid "Emergency moderation of all list traffic is enabled"
+msgstr "Nouzová moderace v¹ech pøíspìvkù do konference je povolena."
+
+#: Mailman/Cgi/admin.py:479
+msgid ""
+"Make your changes in the following section, then submit them\n"
+" using the <em>Submit Your Changes</em> button below."
+msgstr ""
+"Proveïte potøebné zmìny\n"
+" a ulo¾te je kliknutím na tlaèítko na konci stránky."
+
+#: Mailman/Cgi/admin.py:497
+msgid "Additional Member Tasks"
+msgstr "Dal¹í vlastnosti úèastníkù"
+
+#: Mailman/Cgi/admin.py:503
+msgid ""
+"<li>Set everyone's moderation bit, including\n"
+" those members not currently visible"
+msgstr ""
+"<li>Nastav ka¾dému pøíznak moderace, vèetnì tìch úèastníkù, \n"
+" kteøí nejsou zobrazeni."
+
+#: Mailman/Cgi/admin.py:507
+msgid "Off"
+msgstr "Off"
+
+#: Mailman/Cgi/admin.py:507
+msgid "On"
+msgstr "On"
+
+#: Mailman/Cgi/admin.py:509
+msgid "Set"
+msgstr "Nastav"
+
+#: Mailman/Cgi/admin.py:550
+msgid "Value"
+msgstr "Hodnota"
+
+#: Mailman/Cgi/admin.py:604
+msgid ""
+"Badly formed options entry:\n"
+" %(record)s"
+msgstr ""
+"Tato volba nemá po¾adovaný formát:\n"
+" %(record)s"
+
+#: Mailman/Cgi/admin.py:662
+msgid "<em>Enter the text below, or...</em><br>"
+msgstr "<em>Zadejte text, nebo...</em><br>"
+
+#: Mailman/Cgi/admin.py:664
+msgid "<br><em>...specify a file to upload</em><br>"
+msgstr "<br><em>...vyberte soubor, který bude poslán na server</em><br>"
+
+#: Mailman/Cgi/admin.py:690 Mailman/Cgi/admin.py:693
+msgid "Topic %(i)d"
+msgstr "Téma è. %(i)d"
+
+#: Mailman/Cgi/admin.py:694
+msgid "Delete"
+msgstr "Sma¾"
+
+#: Mailman/Cgi/admin.py:695
+msgid "Topic name:"
+msgstr "Název:"
+
+#: Mailman/Cgi/admin.py:697
+msgid "Regexp:"
+msgstr "Regulární výraz:"
+
+#: Mailman/Cgi/admin.py:700 Mailman/Cgi/options.py:943
+msgid "Description:"
+msgstr "Popis:"
+
+#: Mailman/Cgi/admin.py:704
+msgid "Add new item..."
+msgstr "Pøidej novou polo¾ku...."
+
+#: Mailman/Cgi/admin.py:706
+msgid "...before this one."
+msgstr "... pøed tuto."
+
+#: Mailman/Cgi/admin.py:707
+msgid "...after this one."
+msgstr "... za tuto."
+
+#: Mailman/Cgi/admin.py:742
+msgid "<br>(Edit <b>%(varname)s</b>)"
+msgstr "<br>(Editovat <b>%(varname)s</b>)"
+
+#: Mailman/Cgi/admin.py:744
+msgid "<br>(Details for <b>%(varname)s</b>)"
+msgstr "<br>(Detaily o <b>%(varname)s</b>)"
+
+#: Mailman/Cgi/admin.py:751
+msgid ""
+"<br><em><strong>Note:</strong>\n"
+" setting this value performs an immediate action but does not modify\n"
+" permanent state.</em>"
+msgstr ""
+"<br><em><strong>Pozor:</strong>\n"
+" Zmìna této hodnoty vyvolá okam¾itou akci, ale nezmìní konfiguraci "
+"konference.</em>"
+
+#: Mailman/Cgi/admin.py:765
+msgid "Mass Subscriptions"
+msgstr "Hromadné pøihlá¹ení"
+
+#: Mailman/Cgi/admin.py:772
+msgid "Mass Removals"
+msgstr "Hromadné odhlá¹ení úèastníkù"
+
+#: Mailman/Cgi/admin.py:779
+msgid "Membership List"
+msgstr "Seznam úèastníkù"
+
+#: Mailman/Cgi/admin.py:786
+msgid "(help)"
+msgstr "(nápovìda)"
+
+#: Mailman/Cgi/admin.py:787
+msgid "Find member %(link)s:"
+msgstr "Nalezni úèastníka %(link)s:"
+
+#: Mailman/Cgi/admin.py:790
+msgid "Search..."
+msgstr "Hledej..."
+
+#: Mailman/Cgi/admin.py:805
+msgid "Bad regular expression: "
+msgstr "Chybný regulární výraz: "
+
+#: Mailman/Cgi/admin.py:861
+msgid "%(allcnt)s members total, %(membercnt)s shown"
+msgstr "Konference má %(allcnt)s úèastníkù, %(membercnt)s je zobrazeno"
+
+#: Mailman/Cgi/admin.py:864
+msgid "%(allcnt)s members total"
+msgstr "Celkem %(allcnt)s úèastníkù"
+
+#: Mailman/Cgi/admin.py:887
+msgid "unsub"
+msgstr "unsub"
+
+#: Mailman/Cgi/admin.py:888
+msgid "member address<br>member name"
+msgstr "adresa úèastníka<br>jméno úèastníka"
+
+#: Mailman/Cgi/admin.py:889
+msgid "hide"
+msgstr "skryj"
+
+#: Mailman/Cgi/admin.py:889
+msgid "mod"
+msgstr "mod"
+
+#: Mailman/Cgi/admin.py:890
+msgid "nomail<br>[reason]"
+msgstr "nomail<br>[dùvod]"
+
+#: Mailman/Cgi/admin.py:891
+msgid "ack"
+msgstr "potvrzení"
+
+#: Mailman/Cgi/admin.py:891
+msgid "not metoo"
+msgstr "not metoo"
+
+#: Mailman/Cgi/admin.py:892
+msgid "nodupes"
+msgstr "nodupes"
+
+#: Mailman/Cgi/admin.py:893
+msgid "digest"
+msgstr "digest"
+
+#: Mailman/Cgi/admin.py:893
+msgid "plain"
+msgstr "plain"
+
+#: Mailman/Cgi/admin.py:894
+msgid "language"
+msgstr "jazyk"
+
+#: Mailman/Cgi/admin.py:905
+msgid "?"
+msgstr "?"
+
+#: Mailman/Cgi/admin.py:906
+msgid "U"
+msgstr "U"
+
+#: Mailman/Cgi/admin.py:907
+msgid "A"
+msgstr "A"
+
+#: Mailman/Cgi/admin.py:908
+msgid "B"
+msgstr "B"
+
+#: Mailman/Cgi/admin.py:979
+msgid "<b>unsub</b> -- Click on this to unsubscribe the member."
+msgstr "<b>unsub</b> -- Vykliknìte pro odhlá¹ení úèastníka."
+
+#: Mailman/Cgi/admin.py:981
+msgid ""
+"<b>mod</b> -- The user's personal moderation flag. If this is\n"
+" set, postings from them will be moderated, otherwise they will be\n"
+" approved."
+msgstr ""
+"<b>mod</b> -- U¾ivatelùm pøíznak moderace. Pokud je nastaven, \n"
+" tak v¹echny pøíspìvky od tohoto u¾ivatele musí být \n"
+" schváleny moderátorem. V opaèném pøípadì budou \n"
+" pøímo distribuovány."
+
+#: Mailman/Cgi/admin.py:985
+msgid ""
+"<b>hide</b> -- Is the member's address concealed on\n"
+" the list of subscribers?"
+msgstr "<b>skryj</b> -- Je úèastník viditelný v seznamu úèastníkù?"
+
+#: Mailman/Cgi/admin.py:987
+msgid ""
+"<b>nomail</b> -- Is delivery to the member disabled? If so, an\n"
+" abbreviation will be given describing the reason for the disabled\n"
+" delivery:\n"
+" <ul><li><b>U</b> -- Delivery was disabled by the user via their\n"
+" personal options page.\n"
+" <li><b>A</b> -- Delivery was disabled by the list\n"
+" administrators.\n"
+" <li><b>B</b> -- Delivery was disabled by the system due to\n"
+" excessive bouncing from the member's address.\n"
+" <li><b>?</b> -- The reason for disabled delivery isn't "
+"known.\n"
+" This is the case for all memberships which were "
+"disabled\n"
+" in older versions of Mailman.\n"
+" </ul>"
+msgstr ""
+"<b>nomail</b> -- Doruèování pøíspìvkù tomuto u¾ivateli je zakázáno.\n"
+" Pokud je pøíznak nastaven, je pøipojena zkratka, která vysvìtluje,\n"
+" proè je doruèování zakázáno: <ul><li><b>U</b> -- U¾ivatel "
+"si zákaz nastavil sám v konfiguraci u¾ivatele. \n"
+" <li><b>A</b> -- Bylo zakázáno administrátorem.\n"
+" <li><b>B</b> -- Bylo zakázáno listserverem automaticky,\n"
+" proto¾e se pøíspìvky vracely jako nedoruèitelné.\n"
+" <li><b>?</b> -- Dùvod není znám.\n"
+" To mù¾e znamenat, ¾e bylo zakázáno star¹í verzí Mailmanu,\n"
+" která tyto pøíznaky nepodporovala. \n"
+" </ul>"
+
+#: Mailman/Cgi/admin.py:1002
+msgid ""
+"<b>ack</b> -- Does the member get acknowledgements of their\n"
+" posts?"
+msgstr "<b>potvrzení</b> -- Dostává pøispìvatel potvrzení o pøijetí pøíspìvku?"
+
+#: Mailman/Cgi/admin.py:1005
+msgid ""
+"<b>not metoo</b> -- Does the member want to avoid copies of their\n"
+" own postings?"
+msgstr ""
+"<b>not metoo</b> -- Úèastník si nepøeje dostávat kopie vlastních pøíspìvkù."
+
+#: Mailman/Cgi/admin.py:1008
+msgid ""
+"<b>nodupes</b> -- Does the member want to avoid duplicates of the\n"
+" same message?"
+msgstr ""
+"<b>nodupes</b> -- Má se systém pokou¹et nedoruèovat duplicitní pøíspìvky "
+"tomuto u¾ivateli?"
+
+#: Mailman/Cgi/admin.py:1011
+msgid ""
+"<b>digest</b> -- Does the member get messages in digests?\n"
+" (otherwise, individual messages)"
+msgstr ""
+"<b>digest</b> -- Dostává úèastník pøíspìvky jako digest? (V opaèném pøípadì "
+"dostává ka¾dý pøíspìvek samostatnì a ihned.)"
+
+#: Mailman/Cgi/admin.py:1014
+msgid ""
+"<b>plain</b> -- If getting digests, does the member get plain\n"
+" text digests? (otherwise, MIME)"
+msgstr ""
+"<b>plain</b> -- Pokud má úèastník nastaven digest, dostává jej jako èistý "
+"text? (jinak bude formátován podle MIME)"
+
+#: Mailman/Cgi/admin.py:1016
+msgid "<b>language</b> -- Language preferred by the user"
+msgstr "<b>Jazyk</b> -- Jazyk preferovaný úèastníky konference."
+
+#: Mailman/Cgi/admin.py:1030
+msgid "Click here to hide the legend for this table."
+msgstr "Kliknutím sem skryjete popisek této tabulky."
+
+#: Mailman/Cgi/admin.py:1034
+msgid "Click here to include the legend for this table."
+msgstr "Kliknutím sem zobrazíte popisek této tabulky."
+
+#: Mailman/Cgi/admin.py:1041
+msgid ""
+"<p><em>To view more members, click on the appropriate\n"
+" range listed below:</em>"
+msgstr ""
+"<p><em>Pro zobrazení dal¹ích èástí výpisu kliknìte ní¾e na segment, který "
+"chcete zobrazit.</em>"
+
+#: Mailman/Cgi/admin.py:1050
+msgid "from %(start)s to %(end)s"
+msgstr "od %(start)s do %(end)s"
+
+#: Mailman/Cgi/admin.py:1063
+msgid "Subscribe these users now or invite them?"
+msgstr ""
+"Mají být tito úèastníci pøihlá¹eni a nebo pozváni k úèasti v konferenci?"
+
+#: Mailman/Cgi/admin.py:1065
+msgid "Invite"
+msgstr "Pozváni"
+
+#: Mailman/Cgi/admin.py:1065 Mailman/Cgi/listinfo.py:175
+msgid "Subscribe"
+msgstr "Pøihlas"
+
+#: Mailman/Cgi/admin.py:1071
+msgid "Send welcome messages to new subscribees?"
+msgstr "Poslat novì pøihlá¹eným uvítací zprávu?"
+
+#: Mailman/Cgi/admin.py:1073 Mailman/Cgi/admin.py:1082
+#: Mailman/Cgi/admin.py:1115 Mailman/Cgi/admin.py:1123
+#: Mailman/Cgi/confirm.py:271 Mailman/Cgi/create.py:327
+#: Mailman/Cgi/create.py:355 Mailman/Cgi/create.py:395
+#: Mailman/Cgi/rmlist.py:228 Mailman/Gui/Archive.py:33
+#: Mailman/Gui/Autoresponse.py:54 Mailman/Gui/Autoresponse.py:62
+#: Mailman/Gui/Autoresponse.py:71 Mailman/Gui/Bounce.py:77
+#: Mailman/Gui/Bounce.py:108 Mailman/Gui/Bounce.py:134
+#: Mailman/Gui/Bounce.py:143 Mailman/Gui/ContentFilter.py:70
+#: Mailman/Gui/ContentFilter.py:103 Mailman/Gui/Digest.py:46
+#: Mailman/Gui/Digest.py:62 Mailman/Gui/Digest.py:84 Mailman/Gui/Digest.py:89
+#: Mailman/Gui/General.py:148 Mailman/Gui/General.py:154
+#: Mailman/Gui/General.py:232 Mailman/Gui/General.py:259
+#: Mailman/Gui/General.py:286 Mailman/Gui/General.py:297
+#: Mailman/Gui/General.py:300 Mailman/Gui/General.py:310
+#: Mailman/Gui/General.py:315 Mailman/Gui/General.py:325
+#: Mailman/Gui/General.py:345 Mailman/Gui/General.py:373
+#: Mailman/Gui/General.py:396 Mailman/Gui/NonDigest.py:44
+#: Mailman/Gui/NonDigest.py:52 Mailman/Gui/Privacy.py:101
+#: Mailman/Gui/Privacy.py:107 Mailman/Gui/Privacy.py:140
+#: Mailman/Gui/Privacy.py:188 Mailman/Gui/Privacy.py:296
+#: Mailman/Gui/Privacy.py:309 Mailman/Gui/Usenet.py:50
+#: Mailman/Gui/Usenet.py:54 Mailman/Gui/Usenet.py:91 Mailman/Gui/Usenet.py:103
+msgid "No"
+msgstr "Ne"
+
+#: Mailman/Cgi/admin.py:1073 Mailman/Cgi/admin.py:1082
+#: Mailman/Cgi/admin.py:1115 Mailman/Cgi/admin.py:1123
+#: Mailman/Cgi/confirm.py:271 Mailman/Cgi/create.py:327
+#: Mailman/Cgi/create.py:355 Mailman/Cgi/create.py:395
+#: Mailman/Cgi/rmlist.py:228 Mailman/Gui/Archive.py:33
+#: Mailman/Gui/Autoresponse.py:54 Mailman/Gui/Autoresponse.py:62
+#: Mailman/Gui/Bounce.py:77 Mailman/Gui/Bounce.py:108
+#: Mailman/Gui/Bounce.py:134 Mailman/Gui/Bounce.py:143
+#: Mailman/Gui/ContentFilter.py:70 Mailman/Gui/ContentFilter.py:103
+#: Mailman/Gui/Digest.py:46 Mailman/Gui/Digest.py:62 Mailman/Gui/Digest.py:84
+#: Mailman/Gui/Digest.py:89 Mailman/Gui/General.py:148
+#: Mailman/Gui/General.py:154 Mailman/Gui/General.py:232
+#: Mailman/Gui/General.py:259 Mailman/Gui/General.py:286
+#: Mailman/Gui/General.py:297 Mailman/Gui/General.py:300
+#: Mailman/Gui/General.py:310 Mailman/Gui/General.py:315
+#: Mailman/Gui/General.py:325 Mailman/Gui/General.py:345
+#: Mailman/Gui/General.py:373 Mailman/Gui/General.py:396
+#: Mailman/Gui/NonDigest.py:44 Mailman/Gui/NonDigest.py:52
+#: Mailman/Gui/Privacy.py:101 Mailman/Gui/Privacy.py:107
+#: Mailman/Gui/Privacy.py:140 Mailman/Gui/Privacy.py:188
+#: Mailman/Gui/Privacy.py:296 Mailman/Gui/Privacy.py:309
+#: Mailman/Gui/Usenet.py:50 Mailman/Gui/Usenet.py:54 Mailman/Gui/Usenet.py:91
+#: Mailman/Gui/Usenet.py:103
+msgid "Yes"
+msgstr "Ano"
+
+#: Mailman/Cgi/admin.py:1080
+msgid "Send notifications of new subscriptions to the list owner?"
+msgstr "Zasílat upozornìní na nová pøihlá¹ení vlastníkovi konference?"
+
+#: Mailman/Cgi/admin.py:1088 Mailman/Cgi/admin.py:1129
+msgid "Enter one address per line below..."
+msgstr "Zadejte na ka¾dý øádek jednu adresu:"
+
+#: Mailman/Cgi/admin.py:1093 Mailman/Cgi/admin.py:1134
+msgid "...or specify a file to upload:"
+msgstr "...vyberte soubor, který bude poslán na server:"
+
+#: Mailman/Cgi/admin.py:1098
+msgid ""
+"Below, enter additional text to be added to the\n"
+" top of your invitation or the subscription notification. Include at "
+"least\n"
+" one blank line at the end..."
+msgstr ""
+"Do tohoto pole zadejte text, který bude pøidán na zaèátek \n"
+"emailu, který bude poslán jako zvací a nebo jako potvrzení\n"
+"o pøihlá¹ení. Na konci nechte alespoò jeden prázdný øádek,\n"
+"aby se text po kompletaci neslil dohromady."
+
+#: Mailman/Cgi/admin.py:1113
+msgid "Send unsubscription acknowledgement to the user?"
+msgstr "Zaslat úèastníkovi upozornìní o odhlá¹ení?"
+
+#: Mailman/Cgi/admin.py:1121
+msgid "Send notifications to the list owner?"
+msgstr "Zasílat upozornìní vlastníkovi konference?"
+
+#: Mailman/Cgi/admin.py:1143
+msgid "Change list ownership passwords"
+msgstr "Zmìna hesla vlastníka konference"
+
+#: Mailman/Cgi/admin.py:1146
+msgid ""
+"The <em>list administrators</em> are the people who have ultimate control "
+"over\n"
+"all parameters of this mailing list. They are able to change any list\n"
+"configuration variable available through these administration web pages.\n"
+"\n"
+"<p>The <em>list moderators</em> have more limited permissions; they are not\n"
+"able to change any list configuration variable, but they are allowed to "
+"tend\n"
+"to pending administration requests, including approving or rejecting held\n"
+"subscription requests, and disposing of held postings. Of course, the\n"
+"<em>list administrators</em> can also tend to pending requests.\n"
+"\n"
+"<p>In order to split the list ownership duties into administrators and\n"
+"moderators, you must set a separate moderator password in the fields below,\n"
+"and also provide the email addresses of the list moderators in the\n"
+"<a href=\"%(adminurl)s/general\">general options section</a>."
+msgstr ""
+"<em>Administrátoøi konference</em> jsou lidé, kteøí mají úplnou\n"
+"kontrolu nad konfigurací konference. Mohou prostøednictvím tìchto "
+"webovských\n"
+"stránek mìnit v¹echny parametry a takté¾ rozhodovat o po¾adavcích\n"
+"z administrativní databáze.\n"
+"\n"
+"<p><em>Moderátoøi</em> mají pouze omezená práva. \n"
+"Nemohou mìnit konfiguraci, pouze rozhodují o distribuci pozastavených\n"
+"pøíspìvkù a ¾ádostech o pøihlá¹ení do konference.\n"
+"\n"
+"<p>Moderátoøi se zakládají vepsáním jejich emailových adres <a href=\"%"
+"(adminurl)s/general\"> do pøíslu¹ných políèek na stránce v¹eobecných "
+"vlastností</a>. a zadáním hesla do ní¾e uvedeného vstupního pole."
+
+#: Mailman/Cgi/admin.py:1165
+msgid "Enter new administrator password:"
+msgstr "Zadejte nové heslo pro administrátora konference:"
+
+#: Mailman/Cgi/admin.py:1167
+msgid "Confirm administrator password:"
+msgstr "Potvrïte heslo administrátora konference:"
+
+#: Mailman/Cgi/admin.py:1172
+msgid "Enter new moderator password:"
+msgstr "Zadejte nové heslo pro moderátora:"
+
+#: Mailman/Cgi/admin.py:1174
+msgid "Confirm moderator password:"
+msgstr "Potvrï nové heslo pro moderátora:"
+
+#: Mailman/Cgi/admin.py:1184
+msgid "Submit Your Changes"
+msgstr "Ulo¾it zmìny"
+
+#: Mailman/Cgi/admin.py:1207
+msgid "Moderator passwords did not match"
+msgstr "Hesla moderátora se neshodují."
+
+#: Mailman/Cgi/admin.py:1217
+msgid "Administrator passwords did not match"
+msgstr "Hesla administrátora se neshodují."
+
+#: Mailman/Cgi/admin.py:1265
+msgid "Already a member"
+msgstr "Je ji¾ úèastníkem"
+
+#: Mailman/Cgi/admin.py:1268
+msgid "&lt;blank line&gt;"
+msgstr "&lt;prázdný øádek&gt;"
+
+#: Mailman/Cgi/admin.py:1269 Mailman/Cgi/admin.py:1272
+msgid "Bad/Invalid email address"
+msgstr "Neplatná emailová adresa"
+
+#: Mailman/Cgi/admin.py:1275
+msgid "Hostile address (illegal characters)"
+msgstr "Neplatná adresa (obsahuje nepovolené znaky)"
+
+#: Mailman/Cgi/admin.py:1281
+msgid "Successfully invited:"
+msgstr "Úspì¹nì pøizváni:"
+
+#: Mailman/Cgi/admin.py:1283
+msgid "Successfully subscribed:"
+msgstr "Úspì¹nì pøihlá¹eni:"
+
+#: Mailman/Cgi/admin.py:1288
+msgid "Error inviting:"
+msgstr "Chyba pøi pozvání:"
+
+#: Mailman/Cgi/admin.py:1290
+msgid "Error subscribing:"
+msgstr "Chyba pøi pøihla¹ování:"
+
+#: Mailman/Cgi/admin.py:1319
+msgid "Successfully Unsubscribed:"
+msgstr "Úspì¹nì odhlá¹eni:"
+
+#: Mailman/Cgi/admin.py:1324
+msgid "Cannot unsubscribe non-members:"
+msgstr "Nemohu odhlásit nìkoho, kdo není úèastníkem:"
+
+#: Mailman/Cgi/admin.py:1336
+msgid "Bad moderation flag value"
+msgstr "Chybná hodnota pøíznaku moderace."
+
+#: Mailman/Cgi/admin.py:1357
+msgid "Not subscribed"
+msgstr "Není pøihlá¹en"
+
+#: Mailman/Cgi/admin.py:1360
+msgid "Ignoring changes to deleted member: %(user)s"
+msgstr "Ignoruji zmìny provedené u odhlá¹eného úèastníka: %(user)s"
+
+#: Mailman/Cgi/admin.py:1400
+msgid "Successfully Removed:"
+msgstr "Úspì¹nì odstranìni:"
+
+#: Mailman/Cgi/admin.py:1404
+msgid "Error Unsubscribing:"
+msgstr "Chyba pøi odhla¹ování"
+
+#: Mailman/Cgi/admindb.py:159 Mailman/Cgi/admindb.py:167
+msgid "%(realname)s Administrative Database"
+msgstr "Konference %(realname)s -- administrace"
+
+#: Mailman/Cgi/admindb.py:162
+msgid "%(realname)s Administrative Database Results"
+msgstr "Konference %(realname)s -- výsledky editace databáze po¾adavkù"
+
+#: Mailman/Cgi/admindb.py:170
+msgid "There are no pending requests."
+msgstr "®ádné po¾adavky neèekají na vyøízení."
+
+#: Mailman/Cgi/admindb.py:173
+msgid "Click here to reload this page."
+msgstr "Kliknutím sem obnovíte obsah této stránky."
+
+#: Mailman/Cgi/admindb.py:184
+msgid "Detailed instructions for the administrative database"
+msgstr "Podrobnìj¹í instrukce pro práci s databází po¾adavkù"
+
+#: Mailman/Cgi/admindb.py:188
+msgid "Administrative requests for mailing list:"
+msgstr "Administrativní po¾adavky pro konference"
+
+#: Mailman/Cgi/admindb.py:191 Mailman/Cgi/admindb.py:234
+msgid "Submit All Data"
+msgstr "Potvrï v¹echny akce"
+
+#: Mailman/Cgi/admindb.py:204
+msgid "all of %(esender)s's held messages."
+msgstr "v¹echny pozdr¾ené zprávy od úèastníka %(esender)s."
+
+#: Mailman/Cgi/admindb.py:209
+msgid "a single held message."
+msgstr "jedna pozdr¾ená zpráva."
+
+#: Mailman/Cgi/admindb.py:214
+msgid "all held messages."
+msgstr "v¹echny pozdr¾ené pøíspìvky."
+
+#: Mailman/Cgi/admindb.py:249
+msgid "Mailman Administrative Database Error"
+msgstr "Pøi zpracování databáze po¾adavkù (Admindb) do¹lo k chybì."
+
+#: Mailman/Cgi/admindb.py:254
+msgid "list of available mailing lists."
+msgstr "seznam konferencí"
+
+#: Mailman/Cgi/admindb.py:255
+msgid "You must specify a list name. Here is the %(link)s"
+msgstr "Musíte zadat název konference, zde je odkaz %(link)s"
+
+#: Mailman/Cgi/admindb.py:268
+msgid "Subscription Requests"
+msgstr "Po¾adavky na pøihlá¹ení"
+
+#: Mailman/Cgi/admindb.py:270
+msgid "Address/name"
+msgstr "Adresa/jméno"
+
+#: Mailman/Cgi/admindb.py:271 Mailman/Cgi/admindb.py:320
+msgid "Your decision"
+msgstr "Va¹e rozhodnutí"
+
+#: Mailman/Cgi/admindb.py:272 Mailman/Cgi/admindb.py:321
+msgid "Reason for refusal"
+msgstr "Dùvod pro zamítnutí"
+
+#: Mailman/Cgi/admindb.py:289 Mailman/Cgi/admindb.py:346
+#: Mailman/Cgi/admindb.py:389 Mailman/Cgi/admindb.py:612
+msgid "Defer"
+msgstr "Odlo¾"
+
+#: Mailman/Cgi/admindb.py:290 Mailman/Cgi/admindb.py:347
+#: Mailman/Cgi/admindb.py:612
+msgid "Approve"
+msgstr "Odsouhlas"
+
+#: Mailman/Cgi/admindb.py:291 Mailman/Cgi/admindb.py:348
+#: Mailman/Cgi/admindb.py:389 Mailman/Cgi/admindb.py:612
+#: Mailman/Gui/ContentFilter.py:37 Mailman/Gui/Privacy.py:207
+#: Mailman/Gui/Privacy.py:281
+msgid "Reject"
+msgstr "Odmítni"
+
+#: Mailman/Cgi/admindb.py:292 Mailman/Cgi/admindb.py:349
+#: Mailman/Cgi/admindb.py:389 Mailman/Cgi/admindb.py:612
+#: Mailman/Gui/ContentFilter.py:37 Mailman/Gui/Privacy.py:207
+#: Mailman/Gui/Privacy.py:281
+msgid "Discard"
+msgstr "Zahoï"
+
+#: Mailman/Cgi/admindb.py:300
+msgid "Permanently ban from this list"
+msgstr "Trvale zakázat pøístup do konference"
+
+#: Mailman/Cgi/admindb.py:319
+msgid "User address/name"
+msgstr "adresa úèastníka/jméno úèastníka"
+
+#: Mailman/Cgi/admindb.py:359
+msgid "Unsubscription Requests"
+msgstr "Po¾adavky na odhlá¹ení"
+
+#: Mailman/Cgi/admindb.py:382 Mailman/Cgi/admindb.py:596
+msgid "From:"
+msgstr "Od:"
+
+#: Mailman/Cgi/admindb.py:385
+msgid "Action to take on all these held messages:"
+msgstr "Co se má udìlat se v¹emi pozdr¾enými zprávami:"
+
+#: Mailman/Cgi/admindb.py:389 Mailman/Gui/Privacy.py:281
+msgid "Accept"
+msgstr "Akceptovat"
+
+#: Mailman/Cgi/admindb.py:397
+msgid "Preserve messages for the site administrator"
+msgstr "Uschovej tuto zprávu pro administrátora serveru"
+
+#: Mailman/Cgi/admindb.py:403
+msgid "Forward messages (individually) to:"
+msgstr "Pøepo¹li zprávy (jednotlivì) na:"
+
+#: Mailman/Cgi/admindb.py:421
+msgid "Clear this member's <em>moderate</em> flag"
+msgstr "Zru¹it tomuto úèastníkovi pøíznak <em>moderovat</em>."
+
+#: Mailman/Cgi/admindb.py:425
+msgid "<em>The sender is now a member of this list</em>"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:434
+msgid "Add <b>%(esender)s</b> to a sender filter"
+msgstr "Pøidej <b>%(esender)s</b> se filtru odesílatelù"
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Accepts"
+msgstr "Akceptovat"
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Discards"
+msgstr "Zahoï"
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Holds"
+msgstr "Pozdr¾et"
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Rejects"
+msgstr "Odmítni"
+
+#: Mailman/Cgi/admindb.py:448
+msgid ""
+"Ban <b>%(esender)s</b> from ever subscribing to this\n"
+" mailing list"
+msgstr ""
+"Zaka¾ úèastníkovi <b>%(esender)s</b> nav¾dy pøihlá¹ení do \n"
+"této konference."
+
+#: Mailman/Cgi/admindb.py:453
+msgid ""
+"Click on the message number to view the individual\n"
+" message, or you can "
+msgstr ""
+"Buï mù¾ete kliknout na èíslo zprávy, abyste si ji zobrazili, \n"
+"nebo mù¾ete"
+
+#: Mailman/Cgi/admindb.py:455
+msgid "view all messages from %(esender)s"
+msgstr "zobrazit v¹echny zprávy od %(esender)s"
+
+#: Mailman/Cgi/admindb.py:475 Mailman/Cgi/admindb.py:599
+msgid "Subject:"
+msgstr "Subject:"
+
+#: Mailman/Cgi/admindb.py:478
+msgid " bytes"
+msgstr " bytù"
+
+#: Mailman/Cgi/admindb.py:478
+msgid "Size:"
+msgstr "Velikost:"
+
+#: Mailman/Cgi/admindb.py:482 Mailman/Handlers/Decorate.py:50
+#: Mailman/Handlers/Scrubber.py:226 Mailman/Handlers/Scrubber.py:227
+msgid "not available"
+msgstr "[¾ádný popis není k dispozici]"
+
+#: Mailman/Cgi/admindb.py:483 Mailman/Cgi/admindb.py:601
+msgid "Reason:"
+msgstr "Dùvod:"
+
+#: Mailman/Cgi/admindb.py:487 Mailman/Cgi/admindb.py:605
+msgid "Received:"
+msgstr "Doruèeno:"
+
+#: Mailman/Cgi/admindb.py:545
+msgid "Posting Held for Approval"
+msgstr "Pøíspìvek byl pozastaven do souhlasu moderátora"
+
+#: Mailman/Cgi/admindb.py:547
+msgid " (%(count)d of %(total)d)"
+msgstr " (%(count)d z %(total)d)"
+
+#: Mailman/Cgi/admindb.py:558
+msgid "<em>Message with id #%(id)d was lost."
+msgstr "<em>Pøíspìvek s ID #%(id)d byl ztracen."
+
+#: Mailman/Cgi/admindb.py:567
+msgid "<em>Message with id #%(id)d is corrupted."
+msgstr "<em>Pøíspìvek s ID #%(id)d byl po¹kozen."
+
+#: Mailman/Cgi/admindb.py:618
+msgid "Action:"
+msgstr "Akce:"
+
+#: Mailman/Cgi/admindb.py:622
+msgid "Preserve message for site administrator"
+msgstr "Uschovej tuto zprávu pro administrátora serveru"
+
+#: Mailman/Cgi/admindb.py:626
+msgid "Additionally, forward this message to: "
+msgstr "Kromì toho za¹lete tuto zprávu na adresu:"
+
+#: Mailman/Cgi/admindb.py:630
+msgid "[No explanation given]"
+msgstr "[Bez udání dùvodu]"
+
+#: Mailman/Cgi/admindb.py:632
+msgid "If you reject this post,<br>please explain (optional):"
+msgstr "Pokud zamítnete tento pøíspìvek, <br>prosím napi¹te proè:"
+
+#: Mailman/Cgi/admindb.py:638
+msgid "Message Headers:"
+msgstr "Hlavièky pøíspìvku:"
+
+#: Mailman/Cgi/admindb.py:643
+msgid "Message Excerpt:"
+msgstr "Èást zprávy"
+
+#: Mailman/Cgi/admindb.py:676 Mailman/Deliverer.py:124
+msgid "No reason given"
+msgstr "Bez udání dùvodu"
+
+#: Mailman/Cgi/admindb.py:737 Mailman/ListAdmin.py:308
+#: Mailman/ListAdmin.py:429
+msgid "[No reason given]"
+msgstr "[Bez udání dùvodu]"
+
+#: Mailman/Cgi/admindb.py:766
+msgid "Database Updated..."
+msgstr "Databáze byla aktualizována"
+
+#: Mailman/Cgi/admindb.py:769
+msgid " is already a member"
+msgstr "je úèastníkem konference"
+
+#: Mailman/Cgi/confirm.py:69
+msgid "Confirmation string was empty."
+msgstr "Konfirmaèní øetìzec byl prázdný"
+
+#: Mailman/Cgi/confirm.py:89
+msgid ""
+"<b>Invalid confirmation string:</b>\n"
+" %(safecookie)s.\n"
+"\n"
+" <p>Note that confirmation strings expire approximately\n"
+" %(days)s days after the initial subscription request. If your\n"
+" confirmation has expired, please try to re-submit your subscription.\n"
+" Otherwise, <a href=\"%(confirmurl)s\">re-enter</a> your confirmation\n"
+" string."
+msgstr ""
+"<b>Neplatný potvrzovací øetìzec:</b>\n"
+" %(safecookie)s.\n"
+"\n"
+" <p>Nezapomínejte, ¾e potvrzovací øetìzec pøestane platit pøibli¾nì \n"
+" %(days)s dní po zadání po¾adavku. Pokud vám øetìzec vypr¹el - pøestal "
+"platit\n"
+" prosíme, pøihlaste se znovu.\n"
+" V jiných pøípadech href=\"%(confirmurl)s\">zopakujte</a> zadání "
+"potvrzovacího\n"
+" øetìzce."
+
+#: Mailman/Cgi/confirm.py:122
+msgid ""
+"The address requesting unsubscription is not\n"
+" a member of the mailing list. Perhaps you have already "
+"been\n"
+" unsubscribed, e.g. by the list administrator?"
+msgstr ""
+"Nemohu vás odhlásit, proto¾e tato adresa v konferenci není pøihlá¹ena. \n"
+"Mo¾ná vás ji¾ odhlásil správce konference."
+
+#: Mailman/Cgi/confirm.py:138
+msgid ""
+"The address requesting to be changed has\n"
+" been subsequently unsubscribed. This request has been\n"
+" cancelled."
+msgstr ""
+"Adresa, která ¾ádala o zmìnu ji¾ není pøihlá¹ena.\n"
+"Po¾adavek byl zru¹en."
+
+#: Mailman/Cgi/confirm.py:157
+msgid "System error, bad content: %(content)s"
+msgstr "System error, bad content: %(content)s"
+
+#: Mailman/Cgi/confirm.py:167
+msgid "Bad confirmation string"
+msgstr "Chybný konfirmaèní øetìzec"
+
+#: Mailman/Cgi/confirm.py:175
+msgid "Enter confirmation cookie"
+msgstr "Zadejte potvrzovací øetìzec"
+
+#: Mailman/Cgi/confirm.py:188
+msgid ""
+"Please enter the confirmation string\n"
+" (i.e. <em>cookie</em>) that you received in your email message, in the "
+"box\n"
+" below. Then hit the <em>Submit</em> button to proceed to the next\n"
+" confirmation step."
+msgstr ""
+"Prosíme, zadejte do políèka potvrzovací øetìzec\n"
+" (tedy <em>cookie</em>) které jste obdr¾eli v emailové zprávì\n"
+" a kliknìte na tlaèítko <em>Submit</em>, abyste mohli pokraèovat k "
+"dal¹ímu\n"
+" bodu pøihlá¹ení."
+
+#: Mailman/Cgi/confirm.py:193
+msgid "Confirmation string:"
+msgstr "Konfirmaèní øetìzec: "
+
+#: Mailman/Cgi/confirm.py:195
+msgid "Submit"
+msgstr "Ulo¾ zmìny"
+
+#: Mailman/Cgi/confirm.py:210
+msgid "Confirm subscription request"
+msgstr "Potvrï ¾ádosti o pøihlá¹ení"
+
+#: Mailman/Cgi/confirm.py:227
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" subscription request to the mailing list <em>%(listname)s</em>. Your\n"
+" subscription settings are shown below; make any necessary changes and "
+"hit\n"
+" <em>Subscribe</em> to complete the confirmation process. Once you've\n"
+" confirmed your subscription request, you will be shown your account\n"
+" options page which you can use to further customize your membership\n"
+" options.\n"
+"\n"
+" <p>Note: your password will be emailed to you once your subscription is\n"
+" confirmed. You can change it by visiting your personal options page.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this subscription\n"
+" request."
+msgstr ""
+"Pro pøihlá¹ení do konference <em>%(listname)s</em> je vy¾adováno ovìøení.\n"
+"Prohlédnìte si údaje uvedené ve formuláøi, proveïte zmìny, jsou-li "
+"potøeba, \n"
+"a kliknìte na tlaèítko <em>Pøihlásit</em>. \n"
+"Po pøihlá¹ení budete vidìt v seznamu úèastníkù a mù¾ete si kliknutím na své "
+"jméno \n"
+"nastavit dal¹í vlastnosti. Pokud konference nezveøejòuje seznam úèastníkù, "
+"budete muset \n"
+"zadat svou adresu do zvlá¹tního políèka na stránce s informacemi o "
+"konferenci. \n"
+"\n"
+" <p>Nebo mù¾ete kliknout na <em>Zru¹it</em>, co¾ zru¹í po¾adavek na "
+"pøihlá¹ení \n"
+"a sma¾e zadané údaje."
+
+#: Mailman/Cgi/confirm.py:242
+msgid ""
+"Your confirmation is required in order to continue with\n"
+" the subscription request to the mailing list <em>%(listname)s</em>.\n"
+" Your subscription settings are shown below; make any necessary "
+"changes\n"
+" and hit <em>Subscribe to list ...</em> to complete the confirmation\n"
+" process. Once you've confirmed your subscription request, the\n"
+" moderator must approve or reject your membership request. You will\n"
+" receive notice of their decision.\n"
+"\n"
+" <p>Note: your password will be emailed to you once your "
+"subscription\n"
+" is confirmed. You can change it by visiting your personal options\n"
+" page.\n"
+"\n"
+" <p>Or, if you've changed your mind and do not want to subscribe to\n"
+" this mailing list, you can hit <em>Cancel my subscription\n"
+" request</em>."
+msgstr ""
+"Pro pøihlá¹ení do konference <em>%(listname)s</em> je vy¾adováno ovìøení.\n"
+"Prohlédnìte si údaje uvedené ve formuláøi, proveïte zmìny, jsou-li "
+"potøeba, \n"
+"a kliknìte na tlaèítko <em>Pøihlásit</em>. \n"
+"Po pøihlá¹ení budete vidìt v seznamu úèastníkù a mù¾ete si kliknutím na své "
+"jméno \n"
+"nastavit dal¹í vlastnosti. Pokud konference nezveøejòuje seznam úèastníkù, "
+"budete muset \n"
+"zadat svou adresu do zvlá¹tního políèka na stránce s informacemi o "
+"konferenci. \n"
+"\n"
+" <p>Nebo mù¾ete kliknout na <em>Zru¹it</em>, co¾ zru¹í po¾adavek na "
+"pøihlá¹ení \n"
+"a sma¾e zadané údaje."
+
+# In this entry insert a space at the end of string, it will be stripped.
+#: Mailman/Cgi/confirm.py:260
+msgid "Your email address:"
+msgstr "Va¹e e-mailová adresa: "
+
+#: Mailman/Cgi/confirm.py:261
+msgid "Your real name:"
+msgstr "Va¹e celé jméno:"
+
+#: Mailman/Cgi/confirm.py:270
+msgid "Receive digests?"
+msgstr "Dostávat pøíspìvky jako digest?"
+
+#: Mailman/Cgi/confirm.py:279
+msgid "Preferred language:"
+msgstr "Preferovaný jazyk:"
+
+#: Mailman/Cgi/confirm.py:284
+msgid "Cancel my subscription request"
+msgstr "Zru¹ ¾ádost o pøihlá¹ení"
+
+#: Mailman/Cgi/confirm.py:285
+msgid "Subscribe to list %(listname)s"
+msgstr "Pøihlá¹ení do konference %(listname)s"
+
+#: Mailman/Cgi/confirm.py:295
+msgid "You have canceled your subscription request."
+msgstr "Zru¹il jste po¾adavek na pøihlá¹ení"
+
+#: Mailman/Cgi/confirm.py:329
+msgid "Awaiting moderator approval"
+msgstr "Pøíspìvek byl pozastaven do souhlasu moderátora"
+
+#: Mailman/Cgi/confirm.py:332
+msgid ""
+" You have successfully confirmed your subscription request to "
+"the\n"
+" mailing list %(listname)s, however final approval is required "
+"from\n"
+" the list moderator before you will be subscribed. Your request\n"
+" has been forwarded to the list moderator, and you will be "
+"notified\n"
+" of the moderator's decision."
+msgstr ""
+" Úspì¹nì jste ovìøil ¾ádost o pøihlá¹ení do konference:\n"
+" %(listname)s\n"
+" Nicménì pøihlá¹ení musí je¹tì schválit moderátor konference.\n"
+" O jeho rozhodnutí budete informován."
+
+#: Mailman/Cgi/confirm.py:339 Mailman/Cgi/confirm.py:394
+#: Mailman/Cgi/confirm.py:482 Mailman/Cgi/confirm.py:705
+msgid ""
+"Invalid confirmation string. It is\n"
+" possible that you are attempting to confirm a request for an\n"
+" address that has already been unsubscribed."
+msgstr ""
+"Chybný ovìøovací øetìzec.\n"
+" Je mo¾né, ¾e se odhla¹ujete z konference, ze které, jste se u¾ "
+"odhlásil."
+
+#: Mailman/Cgi/confirm.py:343
+msgid "You are already a member of this mailing list!"
+msgstr "Ji¾ jste úèastníkem této konference!"
+
+#: Mailman/Cgi/confirm.py:350
+msgid "Subscription request confirmed"
+msgstr "®ádost o pøihlá¹ení byla potvrzena"
+
+#: Mailman/Cgi/confirm.py:354
+msgid ""
+" You have successfully confirmed your subscription request for\n"
+" \"%(addr)s\" to the %(listname)s mailing list. A separate\n"
+" confirmation message will be sent to your email address, along\n"
+" with your password, and other useful information and links.\n"
+"\n"
+" <p>You can now\n"
+" <a href=\"%(optionsurl)s\">proceed to your membership login\n"
+" page</a>."
+msgstr ""
+" Úspì¹nì jste pro¹el ovìøením platnosti Va¹eho po¾adavku na\n"
+" pøihlá¹ení a tak jste pøihlá¹en jako \"%(addr)s\" \n"
+" do konference %(listname)s. \n"
+" Na Va¹i adresu byla zaslána zpráva, obsahující heslo pro zmìny\n"
+" konfigurace a mnoho dal¹ích u¾iteèných informaci. \n"
+" <p>Nyní mù¾ete pøejít na\n"
+" <a href=\"%(optionsurl)s\">stránku \n"
+" s konfigurací va¹eho úètu</a>."
+
+#: Mailman/Cgi/confirm.py:372
+msgid "You have canceled your unsubscription request."
+msgstr "Zru¹il jste Vá¹ po¾adavek na odhlá¹ení."
+
+#: Mailman/Cgi/confirm.py:400
+msgid "Unsubscription request confirmed"
+msgstr "®ádost o odhlá¹ení byla potvrzena"
+
+#: Mailman/Cgi/confirm.py:404
+msgid ""
+" You have successfully unsubscribed from the %(listname)s "
+"mailing\n"
+" list. You can now <a href=\"%(listinfourl)s\">visit the list's "
+"main\n"
+" information page</a>."
+msgstr ""
+" Právì jste se odhlásil z konference %(listname)s.\n"
+" Nyní mù¾ete pokraèovat na <a href=\"%(listinfourl)s\">hlavní "
+"stránku s informacemi o konferenci.</a>."
+
+#: Mailman/Cgi/confirm.py:415
+msgid "Confirm unsubscription request"
+msgstr "Potvrï ¾ádost o odhlá¹ení"
+
+#: Mailman/Cgi/confirm.py:430 Mailman/Cgi/confirm.py:519
+msgid "<em>Not available</em>"
+msgstr "<em>Není definováno ¾ádné téma</em>"
+
+#: Mailman/Cgi/confirm.py:433
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" unsubscription request from the mailing list <em>%(listname)s</em>. "
+"You\n"
+" are currently subscribed with\n"
+"\n"
+" <ul><li><b>Real name:</b> %(fullname)s\n"
+" <li><b>Email address:</b> %(addr)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Unsubscribe</em> button below to complete the confirmation\n"
+" process.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this unsubscription\n"
+" request."
+msgstr ""
+"K odhlá¹ení z konference <em>%(listname)s</em>\n"
+"je potøeba potvrzení\n"
+"Nyní jste pøihlá¹en jako:\n"
+" <ul><li><b>Jméno:</b> %(fullname)s\n"
+" <li><b>Emailová adresa:</b> %(addr)s\n"
+" </ul>\n"
+"\n"
+" Kliknutím na tlaèítko <em>Odhlásit</em> se opravdu odhlásíte.\n"
+"\n"
+" <p>A nebo kliknìte na <em>Zru¹it</em> a odhlá¹ení se neprovede."
+
+#: Mailman/Cgi/confirm.py:449 Mailman/Cgi/options.py:660
+#: Mailman/Cgi/options.py:801 Mailman/Cgi/options.py:811
+msgid "Unsubscribe"
+msgstr "Odhlásit"
+
+#: Mailman/Cgi/confirm.py:450 Mailman/Cgi/confirm.py:548
+msgid "Cancel and discard"
+msgstr "Zru¹ a zahoï"
+
+#: Mailman/Cgi/confirm.py:460
+msgid "You have canceled your change of address request."
+msgstr "Zru¹il jste po¾adavek na zmìnu adresy."
+
+#: Mailman/Cgi/confirm.py:488
+msgid "Change of address request confirmed"
+msgstr "Zmìna adresy byla odsouhlasena"
+
+#: Mailman/Cgi/confirm.py:492
+msgid ""
+" You have successfully changed your address on the %(listname)s\n"
+" mailing list from <b>%(oldaddr)s</b> to <b>%(newaddr)s</b>. "
+"You\n"
+" can now <a href=\"%(optionsurl)s\">proceed to your membership\n"
+" login page</a>."
+msgstr ""
+" Zmìnil jste adresu, ze které jste pøihlá¹en do konference %"
+"(listname)s.\n"
+" Pùvodní adresa byla <b>%(oldaddr)s</b> a nyní jste pøihlá¹en "
+"jako <b>%(newaddr)s</b>. Nyní mù¾ete pokraèovat na stránku s <a "
+"href=\"%(optionsurl)s\">konfigurací svého \n"
+" úètu</a>."
+
+#: Mailman/Cgi/confirm.py:504
+msgid "Confirm change of address request"
+msgstr "Potvrï ¾ádost o zmìnu adresy"
+
+#: Mailman/Cgi/confirm.py:523
+msgid "globally"
+msgstr "globálnì"
+
+#: Mailman/Cgi/confirm.py:526
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" change of address request for the mailing list <em>%(listname)s</em>. "
+"You\n"
+" are currently subscribed with\n"
+"\n"
+" <ul><li><b>Real name:</b> %(fullname)s\n"
+" <li><b>Old email address:</b> %(oldaddr)s\n"
+" </ul>\n"
+"\n"
+" and you have requested to %(globallys)s change your email address to\n"
+"\n"
+" <ul><li><b>New email address:</b> %(newaddr)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Change address</em> button below to complete the "
+"confirmation\n"
+" process.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this change of address\n"
+" request."
+msgstr ""
+"Potvrïte, prosím, zmìnu adresy pro konferenci \n"
+" <em>%(listname)s</em>. Nyní jste pøihlá¹en jako\n"
+"\n"
+" <ul><li><b>Jméno:</b> %(fullname)s\n"
+" <li><b>Pùvodní emailová adresa:</b> %(oldaddr)s\n"
+" </ul>\n"
+"\n"
+" a po¾adujete zmìnit %(globallys)s adresu \n"
+"\n"
+" <ul><li><b>na novou adresu:</b> %(newaddr)s\n"
+" </ul>\n"
+"\n"
+" Zmìnu provedete kliknutím na <em>Zmìnit adresu</em>.\n"
+" <p>Nebo mù¾ete kliknout na <em>Zru¹it</em> pro zru¹ení po¾adavku."
+
+#: Mailman/Cgi/confirm.py:547
+msgid "Change address"
+msgstr "Po¾adavek na zmìnu"
+
+#: Mailman/Cgi/confirm.py:557 Mailman/Cgi/confirm.py:670
+msgid "Continue awaiting approval"
+msgstr "Pokraèuj v èekání na souhlas"
+
+#: Mailman/Cgi/confirm.py:564
+msgid ""
+"Okay, the list moderator will still have the\n"
+" opportunity to approve or reject this message."
+msgstr ""
+"Dobøe, moderátor konference bude mít mo¾nost pøíspìvek povolit nebo "
+"zamítnout."
+
+#: Mailman/Cgi/confirm.py:590
+msgid "Sender discarded message via web."
+msgstr "Odesílatel zru¹il pøíspìvek pøes webovské rozhraní."
+
+#: Mailman/Cgi/confirm.py:592
+msgid ""
+"The held message with the Subject:\n"
+" header <em>%(subject)s</em> could not be found. The most "
+"likely\n"
+" reason for this is that the list moderator has already approved "
+"or\n"
+" rejected the message. You were not able to cancel it in\n"
+" time."
+msgstr ""
+"Zpráva ve vìci :<em>%(subject)s</em> nebyla nalezena. \n"
+" To pravdìpodobnì znamená, ¾e moderátor zprávu ji¾ schválil\n"
+" a tak byla rozeslána a nebo ji zamítl. S po¾adavkem na zru¹ení\n"
+" pøíspìvku jste pøi¹el pozdì."
+
+#: Mailman/Cgi/confirm.py:600
+msgid "Posted message canceled"
+msgstr "Pøíspìvek byl stornován"
+
+#: Mailman/Cgi/confirm.py:603
+msgid ""
+" You have successfully canceled the posting of your message with\n"
+" the Subject: header <em>%(subject)s</em> to the mailing list\n"
+" %(listname)s."
+msgstr ""
+" Podaøilo se Vám zru¹it distribuci pøíspìvku ve vìci:\n"
+" <em>%(subject)s</em> do konference \n"
+" %(listname)s."
+
+#: Mailman/Cgi/confirm.py:614
+msgid "Cancel held message posting"
+msgstr "Zahoï pøíspìvek"
+
+#: Mailman/Cgi/confirm.py:639
+msgid ""
+"The held message you were referred to has\n"
+" already been handled by the list administrator."
+msgstr "Pøíspìvek, který jste chtìl zobrazit byl ji¾ vyøízen moderátorem."
+
+#: Mailman/Cgi/confirm.py:653
+msgid ""
+"Your confirmation is required in order to cancel the\n"
+" posting of your message to the mailing list <em>%(listname)s</em>:\n"
+"\n"
+" <ul><li><b>Sender:</b> %(sender)s\n"
+" <li><b>Subject:</b> %(subject)s\n"
+" <li><b>Reason:</b> %(reason)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Cancel posting</em> button to discard the posting.\n"
+"\n"
+" <p>Or hit the <em>Continue awaiting approval</em> button to continue to\n"
+" allow the list moderator to approve or reject the message."
+msgstr ""
+"Potvrïte, ¾e si pøejete zahodit svùj pøíspìvek do konference\n"
+" <em>%(listname)s</em>:\n"
+"\n"
+" <ul><li><b>Odesílatel:</b> %(sender)s\n"
+" <li><b>Vìc:</b> %(subject)s\n"
+" <li><b>Dùvod:</b> %(reason)s\n"
+" </ul>\n"
+"\n"
+" Kliknutím na<em>Zahoï pøíspìvek</em> bude pøíspìvek zru¹en.\n"
+"\n"
+" <p>Nebo kliknìte na <em>Pokraèuj v èekání na souhlas</em> a pøíspìvek "
+"poèká na\n"
+" rozhodnutí moderátora."
+
+#: Mailman/Cgi/confirm.py:669
+msgid "Cancel posting"
+msgstr "Zahoï pøíspìvek"
+
+#: Mailman/Cgi/confirm.py:681
+msgid ""
+"You have canceled the re-enabling of your membership. If\n"
+" we continue to receive bounces from your address, it could be deleted "
+"from\n"
+" this mailing list."
+msgstr ""
+"Zru¹il jste po¾adavek na obnovení èlenství. Pokud se budou \n"
+"i nadále vracet pøíspìvky, bude Va¹e adresa z konference odhlá¹ena."
+
+#: Mailman/Cgi/confirm.py:711
+msgid "Membership re-enabled."
+msgstr "Èlenství bylo znovu povoleno."
+
+#: Mailman/Cgi/confirm.py:715
+msgid ""
+" You have successfully re-enabled your membership in the\n"
+" %(listname)s mailing list. You can now <a\n"
+" href=\"%(optionsurl)s\">visit your member options page</a>.\n"
+" "
+msgstr ""
+" Úspì¹nì jste obnovil èlenství v konferenci\n"
+" %(listname)s. Nyní mù¾ete pokraèovat <a\n"
+" href=\"%(optionsurl)s\">na stránku s konfigurací èlena</a>.\n"
+" "
+
+#: Mailman/Cgi/confirm.py:727
+msgid "Re-enable mailing list membership"
+msgstr "Povol èlenství v konferenci"
+
+#: Mailman/Cgi/confirm.py:744
+msgid ""
+"We're sorry, but you have already been unsubscribed\n"
+" from this mailing list. To re-subscribe, please visit the\n"
+" <a href=\"%(listinfourl)s\">list information page</a>."
+msgstr ""
+"Je nám líto, ale u¾ jste byl z této konference odhlá¹en.\n"
+" Pokud se chcete znovu pøihlásit, \n"
+" <a href=\"%(listinfourl)s\">nav¹tivte informaèní stránku.</a>."
+
+#: Mailman/Cgi/confirm.py:758
+msgid "<em>not available</em>"
+msgstr "<em>není k dispozici</em>"
+
+#: Mailman/Cgi/confirm.py:762
+msgid ""
+"Your membership in the %(realname)s mailing list is\n"
+" currently disabled due to excessive bounces. Your confirmation is\n"
+" required in order to re-enable delivery to your address. We have the\n"
+" following information on file:\n"
+"\n"
+" <ul><li><b>Member address:</b> %(member)s\n"
+" <li><b>Member name:</b> %(username)s\n"
+" <li><b>Last bounce received on:</b> %(date)s\n"
+" <li><b>Approximate number of days before you are permanently "
+"removed\n"
+" from this list:</b> %(daysleft)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Re-enable membership</em> button to resume receiving "
+"postings\n"
+" from the mailing list. Or hit the <em>Cancel</em> button to defer\n"
+" re-enabling your membership.\n"
+" "
+msgstr ""
+"Va¹e èlenství v konferenci %(realname)s je pozastaveno\n"
+" proto¾e se nám nedaøí doruèovat pøíspìvky na uvedenou adresu.\n"
+" Pokud chcete pøíspìvky opìt dostávat, musíte èlenství obnovit.\n"
+" Údaje o pozastavení èlenství:\n"
+"\n"
+" <ul><li><b>Adresa úèastníka:</b> %(member)s\n"
+" <li><b>Jméno úèastníka:</b> %(username)s\n"
+" <li><b>Poslední vrácený pøíspìvek se vrátil dne:</b> %(date)s\n"
+" <li><b>Pøibli¾ný poèet dní zbývající do automatického odhlá¹ení z "
+"konference:</b> %(daysleft)s\n"
+" </ul>\n"
+"\n"
+" Po kliknutí na <em>Obnov èlenství</em> budete opìt dostávat pøíspìvky.\n"
+" Nebo kliknìte na <em>Zru¹it</em> a systém bude dále èekat.\n"
+" "
+
+#: Mailman/Cgi/confirm.py:782
+msgid "Re-enable membership"
+msgstr "Obnov èlenství"
+
+#: Mailman/Cgi/confirm.py:783
+msgid "Cancel"
+msgstr "Zru¹"
+
+#: Mailman/Cgi/create.py:48 Mailman/Cgi/rmlist.py:48
+msgid "Bad URL specification"
+msgstr "Chybnì zadané URL"
+
+#: Mailman/Cgi/create.py:63 Mailman/Cgi/rmlist.py:176
+msgid "Return to the "
+msgstr "Zpìt na"
+
+#: Mailman/Cgi/create.py:65 Mailman/Cgi/rmlist.py:178
+msgid "general list overview"
+msgstr "informaèní stránce konference"
+
+#: Mailman/Cgi/create.py:66 Mailman/Cgi/rmlist.py:179
+msgid "<br>Return to the "
+msgstr "<br>Zpìt na"
+
+#: Mailman/Cgi/create.py:68 Mailman/Cgi/rmlist.py:181
+msgid "administrative list overview"
+msgstr "administrative list overview"
+
+#: Mailman/Cgi/create.py:101
+msgid "List name must not include \"@\": %(listname)s"
+msgstr "Jméno konference nesmí obsahovat \"@\": %(listname)s"
+
+#: Mailman/Cgi/create.py:107 Mailman/Cgi/create.py:185 bin/newlist:134
+#: bin/newlist:168
+msgid "List already exists: %(listname)s"
+msgstr "Konference ji¾ existuje : %(listname)s"
+
+#: Mailman/Cgi/create.py:111
+msgid "You forgot to enter the list name"
+msgstr "Zapomnìl jste zadat název konference"
+
+#: Mailman/Cgi/create.py:115
+msgid "You forgot to specify the list owner"
+msgstr "Zapomnìl jste zadat vlastníka konference"
+
+#: Mailman/Cgi/create.py:122
+msgid ""
+"Leave the initial password (and confirmation) fields\n"
+" blank if you want Mailman to autogenerate the list\n"
+" passwords."
+msgstr ""
+"Pokud necháte poèáteèní hesla nevyplnìná Mailman vygeneruje náhodná hesla "
+"sám."
+
+#: Mailman/Cgi/create.py:130
+msgid "Initial list passwords do not match"
+msgstr "Hesla pro zøízení konference nesouhlasí"
+
+#: Mailman/Cgi/create.py:139
+msgid "The list password cannot be empty<!-- ignore -->"
+msgstr "Heslo pro konferenci nesmí být prázdné.<!-- ignore -->"
+
+#: Mailman/Cgi/create.py:151
+msgid "You are not authorized to create new mailing lists"
+msgstr "Nemáte právo zalo¾it novou konferenci."
+
+#: Mailman/Cgi/create.py:181 bin/newlist:166
+msgid "Bad owner email address: %(s)s"
+msgstr "Neplatná adresa vlastníka: %(s)s"
+
+#: Mailman/Cgi/create.py:189 bin/newlist:164
+msgid "Illegal list name: %(s)s"
+msgstr "Nepøípustný název konference %(s)s"
+
+#: Mailman/Cgi/create.py:194
+msgid ""
+"Some unknown error occurred while creating the list.\n"
+" Please contact the site administrator for assistance."
+msgstr ""
+"V prùbìhu zakládání konference do¹lo k neznámé chybì\n"
+" Prosíme, kontaktuje správce serveru."
+
+#: Mailman/Cgi/create.py:233 bin/newlist:210
+msgid "Your new mailing list: %(listname)s"
+msgstr "Va¹e nová konference : %(listname)s"
+
+#: Mailman/Cgi/create.py:242
+msgid "Mailing list creation results"
+msgstr "Výsledky vytvoøení konference"
+
+#: Mailman/Cgi/create.py:248
+msgid ""
+"You have successfully created the mailing list\n"
+" <b>%(listname)s</b> and notification has been sent to the list owner\n"
+" <b>%(owner)s</b>. You can now:"
+msgstr ""
+"Právì jste úspì¹nì zalo¾il konferenci\n"
+" <b>%(listname)s</b>, zpráva byla zaslána i vlastníkovi na adresu:\n"
+" <b>%(owner)s</b>. Nyní mù¾ete:"
+
+#: Mailman/Cgi/create.py:252
+msgid "Visit the list's info page"
+msgstr "Nav¹tivte informaèní stránky o konferenci"
+
+#: Mailman/Cgi/create.py:253
+msgid "Visit the list's admin page"
+msgstr "Nav¹tivte stránky pro administrátora konference"
+
+#: Mailman/Cgi/create.py:254
+msgid "Create another list"
+msgstr "Zalo¾it dal¹í konferenci?"
+
+#: Mailman/Cgi/create.py:272
+msgid "Create a %(hostname)s Mailing List"
+msgstr "Vytvoø konferenci %(hostname)s"
+
+#: Mailman/Cgi/create.py:281 Mailman/Cgi/rmlist.py:199
+#: Mailman/Gui/Bounce.py:175 Mailman/htmlformat.py:339
+msgid "Error: "
+msgstr "Chyba"
+
+#: Mailman/Cgi/create.py:283
+msgid ""
+"You can create a new mailing list by entering the\n"
+" relevant information into the form below. The name of the mailing list\n"
+" will be used as the primary address for posting messages to the list, "
+"so\n"
+" it should be lowercased. You will not be able to change this once the\n"
+" list is created.\n"
+"\n"
+" <p>You also need to enter the email address of the initial list owner.\n"
+" Once the list is created, the list owner will be given notification, "
+"along\n"
+" with the initial list password. The list owner will then be able to\n"
+" modify the password and add or remove additional list owners.\n"
+"\n"
+" <p>If you want Mailman to automatically generate the initial list admin\n"
+" password, click on `Yes' in the autogenerate field below, and leave the\n"
+" initial list password fields empty.\n"
+"\n"
+" <p>You must have the proper authorization to create new mailing lists.\n"
+" Each site should have a <em>list creator's</em> password, which you can\n"
+" enter in the field at the bottom. Note that the site administrator's\n"
+" password can also be used for authentication.\n"
+" "
+msgstr ""
+"Mù¾ete vytvoøit novou konferenci vyplnìním tohoto formuláøe. \n"
+"Název konference bude pou¾it jako adresa, na kterou se budou\n"
+"zasílat pøíspìvky, proto by mìl být psán malými písmeny. Po vytvoøení \n"
+"konference nebudete moci název zmìnit.\n"
+"\n"
+"<p>Dále musíte zadat emailové adresy vlastníkù konference. Na tyto adresy\n"
+"bude po zalo¾ení zaslána zpráva o vzniku konference a hesla pro pøístup\n"
+"do administrativního rozhraní. \n"
+"\n"
+"<p>Pokud chcete, aby byla poèáteèní hesla vygenerována náhodnì, vyberte "
+"patøiènou\n"
+"volbu a nevyplòujte pøíslu¹ná políèka.\n"
+"\n"
+"<p>Pro zalo¾ení musíte zadat heslo. Jedná se buï o heslo administrátora "
+"serveru a nebo\n"
+"o heslo urèené pro vytváøení konferencí."
+
+#: Mailman/Cgi/create.py:309
+msgid "List Identity"
+msgstr "Identita konference"
+
+#: Mailman/Cgi/create.py:312
+msgid "Name of list:"
+msgstr "Jméno konference:"
+
+#: Mailman/Cgi/create.py:317
+msgid "Initial list owner address:"
+msgstr "Poèáteèní adresa vlastníka konference:"
+
+#: Mailman/Cgi/create.py:326
+msgid "Auto-generate initial list password?"
+msgstr "Vytvoøit náhodné poèáteèní heslo?"
+
+#: Mailman/Cgi/create.py:333
+msgid "Initial list password:"
+msgstr "Poèáteèní heslo:"
+
+#: Mailman/Cgi/create.py:338
+msgid "Confirm initial password:"
+msgstr "Potvrï poèáteèní heslo:"
+
+#: Mailman/Cgi/create.py:348
+msgid "List Characteristics"
+msgstr "Charakteristika konference"
+
+#: Mailman/Cgi/create.py:352
+msgid ""
+"Should new members be quarantined before they\n"
+" are allowed to post unmoderated to this list? Answer <em>Yes</em> to "
+"hold\n"
+" new member postings for moderator approval by default."
+msgstr ""
+"Mají být novì pøihlá¹ení dr¾eni v karanténì? Pokud odpovíte <em>Ano</em> \n"
+"budou v¹echny pøíspìvky novì pøihlá¹ených úèastníkù zadr¾eny do rozhodnutí "
+"moderátora."
+
+#: Mailman/Cgi/create.py:383
+msgid ""
+"Initial list of supported languages. <p>Note that if you do not\n"
+" select at least one initial language, the list will use the server\n"
+" default language of %(deflang)s"
+msgstr ""
+"Seznam øeèí podporovaných konferencí pøi jejím zalo¾ení. <p>Pokud "
+"nevyberete ¾ádnou øeè,\n"
+" bude pou¾it implicitní jazyk serveru, tedy \n"
+" %(deflang)s"
+
+#: Mailman/Cgi/create.py:394
+msgid "Send \"list created\" email to list owner?"
+msgstr "Zaslat vlastníkovi konference dopis s oznámením o zalo¾ení konference?"
+
+#: Mailman/Cgi/create.py:403
+msgid "List creator's (authentication) password:"
+msgstr "Heslo tvùrce konference:"
+
+#: Mailman/Cgi/create.py:408
+msgid "Create List"
+msgstr "Zalo¾ konferenci"
+
+#: Mailman/Cgi/create.py:409
+msgid "Clear Form"
+msgstr "Vyma¾ formuláø"
+
+#: Mailman/Cgi/edithtml.py:43
+msgid "General list information page"
+msgstr "Základní konfigurace konference"
+
+#: Mailman/Cgi/edithtml.py:44
+msgid "Subscribe results page"
+msgstr "Výsledky pøihlá¹ení"
+
+#: Mailman/Cgi/edithtml.py:45
+msgid "User specific options page"
+msgstr "Nastavení specifická pro u¾ivatele"
+
+#: Mailman/Cgi/edithtml.py:57
+msgid "List name is required."
+msgstr "Jméno konference je vy¾adováno."
+
+#: Mailman/Cgi/edithtml.py:97
+msgid "%(realname)s -- Edit html for %(template_info)s"
+msgstr "Konference %(realname)s -- Editovat ¹ablony pro %(template_info)s"
+
+#: Mailman/Cgi/edithtml.py:103
+msgid "Edit HTML : Error"
+msgstr "Chyba pøi editaci HTML ¹ablon"
+
+#: Mailman/Cgi/edithtml.py:104
+msgid "%(safetemplatename)s: Invalid template"
+msgstr "%(safetemplatename)s: vadná ¹ablona"
+
+#: Mailman/Cgi/edithtml.py:109 Mailman/Cgi/edithtml.py:110
+msgid "%(realname)s -- HTML Page Editing"
+msgstr "Konference %(realname)s -- Editace HTML stránek"
+
+#: Mailman/Cgi/edithtml.py:111
+msgid "Select page to edit:"
+msgstr "Vyberte, kterou ¹ablonu si pøejete editovat."
+
+#: Mailman/Cgi/edithtml.py:137
+msgid "View or edit the list configuration information."
+msgstr "Zobraz a/nebo modifikuj konfiguraci konference."
+
+#: Mailman/Cgi/edithtml.py:145
+msgid "When you are done making changes..."
+msgstr "Kdy¾ jste skonèil se zmìnami...."
+
+#: Mailman/Cgi/edithtml.py:146
+msgid "Submit Changes"
+msgstr "Ulo¾ zmìny"
+
+#: Mailman/Cgi/edithtml.py:153
+msgid "Can't have empty html page."
+msgstr "Není mo¾né mít prázdnou ¹ablonu pro generování HTML stránek."
+
+#: Mailman/Cgi/edithtml.py:154
+msgid "HTML Unchanged."
+msgstr "HTML ¹ablony nebyly zmìnìny"
+
+#: Mailman/Cgi/edithtml.py:169
+msgid "HTML successfully updated."
+msgstr "HTML ¹ablony byly úspì¹nì aktualizovány."
+
+#: Mailman/Cgi/listinfo.py:71
+msgid "%(hostname)s Mailing Lists"
+msgstr "Server %(hostname)s -- Konference"
+
+#: Mailman/Cgi/listinfo.py:103
+msgid ""
+"<p>There currently are no publicly-advertised\n"
+" %(mailmanlink)s mailing lists on %(hostname)s."
+msgstr ""
+"<p>V souèasné dobì zde nejsou ¾ádné veøejnì pøístupné konference\n"
+" %(mailmanlink)s na serveru %(hostname)s."
+
+#: Mailman/Cgi/listinfo.py:107
+msgid ""
+"<p>Below is a listing of all the public mailing lists on\n"
+" %(hostname)s. Click on a list name to get more information "
+"about\n"
+" the list, or to subscribe, unsubscribe, and change the "
+"preferences\n"
+" on your subscription."
+msgstr ""
+"<p>Toto je seznam v¹ech veøejnì pøístupných konferencí\n"
+"na serveru %(hostname)s.Kliknutím na název konference se dozvíte podrobnìj¹í "
+"informace \n"
+"o konferenci, budete se do ní moci pøihlásit nebo zmìnit parametry\n"
+"svého úètu."
+
+#: Mailman/Cgi/listinfo.py:113
+msgid "right"
+msgstr "Vpravo"
+
+#: Mailman/Cgi/listinfo.py:116
+msgid ""
+" To visit the general information page for an unadvertised list,\n"
+" open a URL similar to this one, but with a '/' and the %(adj)s\n"
+" list name appended.\n"
+" <p>List administrators, you can visit "
+msgstr ""
+"Pro zobrazení informaèní stránky neveøejné konference \n"
+" pou¾ijte URL podobné souèasnému, ale na konec doplòte za / %(adj)s\n"
+" název konference.\n"
+" <p>Správci konference mohou pou¾ít"
+
+#: Mailman/Cgi/listinfo.py:121
+msgid "the list admin overview page"
+msgstr "administrátorské stránky"
+
+#: Mailman/Cgi/listinfo.py:122
+msgid ""
+" to find the management interface for your list.\n"
+" <p>Send questions or comments to "
+msgstr ""
+"pro zobrazení administrátorského rozhraní.<p>(Pøípadné dotazy nebo komentáøe "
+"zasílejte na "
+
+#: Mailman/Cgi/listinfo.py:187
+msgid "Edit Options"
+msgstr "Editace vlastností"
+
+#: Mailman/Cgi/listinfo.py:194 Mailman/Cgi/options.py:767
+#: Mailman/Cgi/roster.py:111
+msgid "View this page in"
+msgstr "Zobraz tuto stránku v "
+
+#: Mailman/Cgi/options.py:51 Mailman/Cgi/options.py:68
+msgid "CGI script error"
+msgstr "Chyba v CGI skriptu"
+
+#: Mailman/Cgi/options.py:54
+msgid "Invalid options to CGI script."
+msgstr "Neplatné parametry cgi skriptu."
+
+#: Mailman/Cgi/options.py:96
+msgid "No address given"
+msgstr "Nebyl zadána adresa"
+
+#: Mailman/Cgi/options.py:108 Mailman/Cgi/options.py:155
+#: Mailman/Cgi/options.py:177
+msgid "No such member: %(safeuser)s."
+msgstr "Nenalezl jsem úèastníka: %(safeuser)s."
+
+#: Mailman/Cgi/options.py:150 Mailman/Cgi/options.py:160
+msgid "The confirmation email has been sent."
+msgstr "Dopis s oznámením byl odeslán."
+
+#: Mailman/Cgi/options.py:171 Mailman/Cgi/options.py:183
+#: Mailman/Cgi/options.py:226
+msgid "A reminder of your password has been emailed to you."
+msgstr "Bylo Vám zasláno pøipomenutí Va¹eho hesla."
+
+#: Mailman/Cgi/options.py:200
+msgid "Authentication failed."
+msgstr "Autentizace selhala."
+
+#: Mailman/Cgi/options.py:232
+msgid "List subscriptions for %(user)s on %(hostname)s"
+msgstr ""
+"Seznam konferencí, ve kterých je pøihlá¹en u¾ivatel %(user)s na serveru %"
+"(hostname)s"
+
+#: Mailman/Cgi/options.py:235
+msgid ""
+"Click on a link to visit your options page for the\n"
+" requested mailing list."
+msgstr "Pro zobrazení vlastností této konference kliknìte na odkaz."
+
+#: Mailman/Cgi/options.py:284
+msgid "Addresses did not match!"
+msgstr "Adresy nesouhlasí!"
+
+#: Mailman/Cgi/options.py:289
+msgid "You are already using that email address"
+msgstr "Tuto emailovou adresu ji¾ pou¾íváte"
+
+#: Mailman/Cgi/options.py:301
+msgid ""
+"The new address you requested %(newaddr)s is already a member of the\n"
+"%(listname)s mailing list, however you have also requested a global change "
+"of\n"
+"address. Upon confirmation, any other mailing list containing the address\n"
+"%(user)s will be changed. "
+msgstr ""
+"Nová adresa, kterou jste zadal (%(newaddr)s) je ji¾ v konferenci\n"
+"%(listname)s pøihlá¹ena. Nicménì jste po¾ádal o globální\n"
+"zmìnu adresy a tak budou po potvrzení zmìnìny adresy v ostatních\n"
+"konferencích, kterých je u¾ivatel %(user)s èlenem."
+
+#: Mailman/Cgi/options.py:310
+msgid "The new address is already a member: %(newaddr)s"
+msgstr "Nová adresa je v konferenci ji¾ pøihlá¹ena: %(newaddr)s"
+
+#: Mailman/Cgi/options.py:316
+msgid "Addresses may not be blank"
+msgstr "Adresy nesmí zùstat nevyplnìné."
+
+#: Mailman/Cgi/options.py:328
+msgid "A confirmation message has been sent to %(newaddr)s. "
+msgstr "Zpráva s upozornìním byla zaslána na adresu %(newaddr)s"
+
+#: Mailman/Cgi/options.py:337
+msgid "Bad email address provided"
+msgstr "Neplatná emailová adresa"
+
+#: Mailman/Cgi/options.py:339
+msgid "Illegal email address provided"
+msgstr "Neplatná emailová adresa"
+
+#: Mailman/Cgi/options.py:341
+msgid "%(newaddr)s is already a member of the list."
+msgstr "%(newaddr)s ji¾ je pøihlá¹en."
+
+#: Mailman/Cgi/options.py:350
+msgid "Member name successfully changed. "
+msgstr "Jméno bylo úspì¹nì zmìnìno."
+
+#: Mailman/Cgi/options.py:361
+msgid "Passwords may not be blank"
+msgstr "Nejsou povolena prázdná hesla."
+
+#: Mailman/Cgi/options.py:366
+msgid "Passwords did not match!"
+msgstr "Hesla nesouhlasí"
+
+#: Mailman/Cgi/options.py:381 Mailman/Commands/cmd_password.py:79
+#: Mailman/Commands/cmd_password.py:105
+msgid "Password successfully changed."
+msgstr "Heslo bylo úspì¹nì zmìnìno."
+
+#: Mailman/Cgi/options.py:390
+msgid ""
+"You must confirm your unsubscription request by turning\n"
+" on the checkbox below the <em>Unsubscribe</em> button. You\n"
+" have not been unsubscribed!"
+msgstr ""
+"Odhlá¹ení je nutné potvrdit. \n"
+"Za¹krtnìte políèko pod tlaèítkem <em>Odhlásit</em>.\n"
+"V tomto okam¾iku je¹tì nejste odhlá¹en!"
+
+#: Mailman/Cgi/options.py:422
+msgid "Unsubscription results"
+msgstr "Výsledky odhlá¹ení"
+
+#: Mailman/Cgi/options.py:426
+msgid ""
+"Your unsubscription request has been received and\n"
+" forwarded on to the list moderators for approval. You will\n"
+" receive notification once the list moderators have made their\n"
+" decision."
+msgstr ""
+"Vá¹ po¾adavek na odhlá¹ení byl pøijat a pøedán moderátorovi ke schválení.\n"
+" O výsledku budete informován "
+
+#: Mailman/Cgi/options.py:431
+msgid ""
+"You have been successfully unsubscribed from the\n"
+" mailing list %(fqdn_listname)s. If you were receiving digest\n"
+" deliveries you may get one more digest. If you have any "
+"questions\n"
+" about your unsubscription, please contact the list owners at\n"
+" %(owneraddr)s."
+msgstr ""
+"Odhlásil jste se z konference %(fqdn_listname)s. Pokud jste ji odebíral v "
+"DIGEST\n"
+"re¾imu, dostanete je¹tì poslední dávku. Pokud máte nìjaké dotazy, "
+"kontaktujte správce\n"
+"na adrese: %(owneraddr)s."
+
+#: Mailman/Cgi/options.py:582
+msgid ""
+"The list administrator has disabled digest delivery for\n"
+" this list, so your delivery option has not been set. However "
+"your\n"
+" other options have been set successfully."
+msgstr ""
+"Administrátor konference nepovolil nastavení digest módu pro tuto "
+"konferenci.\n"
+"Ale ostatní volby, které jste nastavil, byly akceptovány."
+
+#: Mailman/Cgi/options.py:586
+msgid ""
+"The list administrator has disabled non-digest delivery\n"
+" for this list, so your delivery option has not been set. "
+"However\n"
+" your other options have been set successfully."
+msgstr ""
+"Administrátor konference nepovolil pro tuto konferenci nastavení digest "
+"módu.\n"
+"Ale ostatní volby, které jste nastavil, byly akceptovány."
+
+#: Mailman/Cgi/options.py:590
+msgid "You have successfully set your options."
+msgstr "Va¹e nastavení bylo úspì¹nì zmìnìno."
+
+#: Mailman/Cgi/options.py:593
+msgid "You may get one last digest."
+msgstr "Je¹tì mo¾ná obdr¾íte jeden poslední digest."
+
+#: Mailman/Cgi/options.py:662
+msgid "<em>Yes, I really want to unsubscribe</em>"
+msgstr "<em>Ano; skuteènì se chci odhlásit</em>"
+
+#: Mailman/Cgi/options.py:666
+msgid "Change My Password"
+msgstr "Zmìna hesla"
+
+#: Mailman/Cgi/options.py:669
+msgid "List my other subscriptions"
+msgstr "Zobraz ostatní konference, ve kterých jsem pøihlá¹en."
+
+#: Mailman/Cgi/options.py:675
+msgid "Email My Password To Me"
+msgstr "Za¹li mi heslo mailem"
+
+#: Mailman/Cgi/options.py:677
+msgid "password"
+msgstr "heslo"
+
+#: Mailman/Cgi/options.py:679
+msgid "Log out"
+msgstr "Odhlásit"
+
+#: Mailman/Cgi/options.py:681
+msgid "Submit My Changes"
+msgstr "Proveï zmìny"
+
+#: Mailman/Cgi/options.py:693
+msgid "days"
+msgstr "dny"
+
+#: Mailman/Cgi/options.py:695
+msgid "day"
+msgstr "den"
+
+#: Mailman/Cgi/options.py:696
+msgid "%(days)d %(units)s"
+msgstr "%(days)d %(units)s"
+
+#: Mailman/Cgi/options.py:702
+msgid "Change My Address and Name"
+msgstr "Zmìò mojí adresu a jméno"
+
+#: Mailman/Cgi/options.py:726
+msgid "<em>No topics defined</em>"
+msgstr "<em>Není definováno ¾ádné téma</em>"
+
+#: Mailman/Cgi/options.py:734
+msgid ""
+"\n"
+"You are subscribed to this list with the case-preserved address\n"
+"<em>%(cpuser)s</em>."
+msgstr ""
+"\n"
+"Do této konference jste pøihlá¹en s adresou ve které se rozli¹uje velikost "
+"písmen\n"
+"<em>%(cpuser)s</em>."
+
+#: Mailman/Cgi/options.py:748
+msgid "%(realname)s list: member options login page"
+msgstr "Konference %(realname)s: pøihlá¹ení úèastníka pro editaci parametrù"
+
+#: Mailman/Cgi/options.py:749
+msgid "email address and "
+msgstr "emailová adresa a "
+
+#: Mailman/Cgi/options.py:751
+msgid "%(realname)s list: member options for user %(user)s"
+msgstr "Nastavení parametrù pro %(user)s v konferenci %(realname)s"
+
+#: Mailman/Cgi/options.py:777
+msgid ""
+"In order to change your membership option, you must\n"
+" first log in by giving your %(extra)smembership password in the section\n"
+" below. If you don't remember your membership password, you can have it\n"
+" emailed to you by clicking on the button below. If you just want to\n"
+" unsubscribe from this list, click on the <em>Unsubscribe</em> button and "
+"a\n"
+" confirmation message will be sent to you.\n"
+"\n"
+" <p><strong><em>Important:</em></strong> From this point on, you must "
+"have\n"
+" cookies enabled in your browser, otherwise none of your changes will "
+"take\n"
+" effect.\n"
+" "
+msgstr ""
+"Abyste mohl zmìnit parametry svého úètu, musíte se pøihlásit.\n"
+"Pokud si nepamatujete %(extra)s heslo, mù¾ete si jej nechat zaslat kliknutím "
+"na\n"
+"pøíslu¹né tlaèítko.\n"
+"Pokud se chcete odhlásit, musíte kliknout na tlaèítko odhlásit.\n"
+"Následnì dostanete mail, ve kterém budou pokyny, jak své odhlá¹ení "
+"potvrdit.\n"
+"\n"
+"<p><strong><em>Pozor:</em></strong> Systém vyu¾ívá cookies a tak je musíte\n"
+"mít povolené, aby bylo mo¾né se pøihlásit.\n"
+"Autorizaèní cookie bude mít platnost do uzavøení okna prohlí¾eèe a nebo\n"
+"do kliknutí na odhlásit."
+
+# In this entry insert a space at the end of string, it will be stripped.
+#: Mailman/Cgi/options.py:791
+msgid "Email address:"
+msgstr "Emailová adresa:"
+
+#: Mailman/Cgi/options.py:795
+msgid "Password:"
+msgstr " Heslo:"
+
+#: Mailman/Cgi/options.py:797
+msgid "Log in"
+msgstr "Pøihlásit"
+
+#: Mailman/Cgi/options.py:805
+msgid ""
+"By clicking on the <em>Unsubscribe</em> button, a\n"
+" confirmation message will be emailed to you. This message will have a\n"
+" link that you should click on to complete the removal process (you can\n"
+" also confirm by email; see the instructions in the confirmation\n"
+" message)."
+msgstr ""
+"Pokud kliknete na tlaèítko <em>odhlásit</em>, bude na Va¹i adresu zaslána "
+"¾ádost\n"
+"o potvrzení. Bude obsahovat odkaz, jeho¾ vyvoláním se definitivnì odhlásíte. "
+"Nebo\n"
+"mù¾ete odhlá¹ení potvrdit mailem, podrobnosti budou uvedeny v té zprávì."
+
+#: Mailman/Cgi/options.py:813
+msgid "Password reminder"
+msgstr "Pøipomínka hesla"
+
+#: Mailman/Cgi/options.py:817
+msgid ""
+"By clicking on the <em>Remind</em> button, your\n"
+" password will be emailed to you."
+msgstr ""
+"Kliknutím na tlaèítko <em>Po¹li heslo</em> Vám bude zaslána Va¹e heslo."
+
+#: Mailman/Cgi/options.py:820
+msgid "Remind"
+msgstr "Upozorni"
+
+#: Mailman/Cgi/options.py:920
+msgid "<missing>"
+msgstr "<chybí>"
+
+#: Mailman/Cgi/options.py:931
+msgid "Requested topic is not valid: %(topicname)s"
+msgstr "Téma, které po¾adujete, neexistuje: %(topicname)s"
+
+#: Mailman/Cgi/options.py:936
+msgid "Topic filter details"
+msgstr "Parametry tématického filtru"
+
+#: Mailman/Cgi/options.py:939
+msgid "Name:"
+msgstr "Jméno:"
+
+#: Mailman/Cgi/options.py:941
+msgid "Pattern (as regexp):"
+msgstr "Pravidlo (regulární výraz):"
+
+#: Mailman/Cgi/private.py:61
+msgid "Private Archive Error"
+msgstr "Chyba soukromého archivu"
+
+#: Mailman/Cgi/private.py:62
+msgid "You must specify a list."
+msgstr "Musíte zadat konferenci."
+
+#: Mailman/Cgi/private.py:99
+msgid "Private Archive Error - %(msg)s"
+msgstr "Chyba v neveøejném archivu - %(msg)s"
+
+#: Mailman/Cgi/private.py:154
+msgid "Private archive file not found"
+msgstr "Nebyl nalezen soubor privátního archivu."
+
+#: Mailman/Cgi/rmlist.py:81
+msgid "You're being a sneaky list owner!"
+msgstr "You're being a sneaky list owner!"
+
+#: Mailman/Cgi/rmlist.py:119
+msgid "You are not authorized to delete this mailing list"
+msgstr "Nemáte právo zru¹it tuto konferenci"
+
+#: Mailman/Cgi/rmlist.py:160
+msgid "Mailing list deletion results"
+msgstr "Výsledek smazání konference"
+
+#: Mailman/Cgi/rmlist.py:167
+msgid ""
+"You have successfully deleted the mailing list\n"
+" <b>%(listname)s</b>."
+msgstr ""
+"Zru¹il jste konferenci:\n"
+" <b>%(listname)s</b>."
+
+#: Mailman/Cgi/rmlist.py:171
+msgid ""
+"There were some problems deleting the mailing list\n"
+" <b>%(listname)s</b>. Contact your site administrator at %(sitelist)"
+"s\n"
+" for details."
+msgstr ""
+"Nepodaøilo se smazat konferenci <b>%(listname)s</b>.\n"
+"Kontaktujte správce serveru %(sitelist)s pro dal¹í informace. "
+
+#: Mailman/Cgi/rmlist.py:188
+msgid "Permanently remove mailing list <em>%(realname)s</em>"
+msgstr "Skuteènì nevratnì zru¹it konferenci <em>%(realname)s</em>"
+
+#: Mailman/Cgi/rmlist.py:202
+msgid ""
+"This page allows you as the list owner, to permanent\n"
+" remove this mailing list from the system. <strong>This action is not\n"
+" undoable</strong> so you should undertake it only if you are absolutely\n"
+" sure this mailing list has served its purpose and is no longer "
+"necessary.\n"
+"\n"
+" <p>Note that no warning will be sent to your list members and after "
+"this\n"
+" action, any subsequent messages sent to the mailing list, or any of its\n"
+" administrative addreses will bounce.\n"
+"\n"
+" <p>You also have the option of removing the archives for this mailing "
+"list\n"
+" at this time. It is almost always recommended that you do\n"
+" <strong>not</strong> remove the archives, since they serve as the\n"
+" historical record of your mailing list.\n"
+"\n"
+" <p>For your safety, you will be asked to reconfirm the list password.\n"
+" "
+msgstr ""
+"Tato stránka umo¾òuje vlastníkovi konference její zru¹ení. \n"
+"<strong>Tato akce není vratná, to znamená, ¾e zru¹enou konferenci je mo¾né\n"
+"obnovit pouze pokud máte funkèní zálohu systému.</strong>\n"
+"\n"
+" <p>Úèastníkùm konference nebude zasláno ¾ádné upozornìní. V¹echny\n"
+"po¾adavky, které pøijdou na adresu konference po jejím zru¹ení budou\n"
+"vráceny.\n"
+" <p>Mù¾ete odstranit i archivy. To vám ale rozhodnì nedoporuèujeme,\n"
+"archivy mohou obsahovat mno¾ství u¾iteèných informací.\n"
+"\n"
+" <p>Z bezpeènostních dùvodù budete muset zadat heslo pro potvrzení akce.\n"
+" "
+
+#: Mailman/Cgi/rmlist.py:223
+msgid "List password:"
+msgstr "heslo pro konferenci:"
+
+#: Mailman/Cgi/rmlist.py:227
+msgid "Also delete archives?"
+msgstr "Smazat archivy?"
+
+#: Mailman/Cgi/rmlist.py:235
+msgid "<b>Cancel</b> and return to list administration"
+msgstr "<b>Zru¹</b> a vra» se na stránku administrace konference"
+
+#: Mailman/Cgi/rmlist.py:238
+msgid "Delete this list"
+msgstr "Sma¾ tuto konferenci"
+
+#: Mailman/Cgi/roster.py:48 Mailman/Cgi/subscribe.py:50
+msgid "Invalid options to CGI script"
+msgstr "Neplatné parametry cgi skriptu."
+
+#: Mailman/Cgi/roster.py:99
+msgid "%(realname)s roster authentication failed."
+msgstr "U¾ivatel %(realname)s nepodaøilo se pøihlásit."
+
+#: Mailman/Cgi/roster.py:127 Mailman/Cgi/roster.py:128
+#: Mailman/Cgi/subscribe.py:49 Mailman/Cgi/subscribe.py:60
+msgid "Error"
+msgstr "Chyba"
+
+#: Mailman/Cgi/subscribe.py:109
+msgid "You must supply a valid email address."
+msgstr "Musíte zadat platnou e-mailovou adresu."
+
+#: Mailman/Cgi/subscribe.py:122
+msgid "You may not subscribe a list to itself!"
+msgstr "Nemù¾ete pøihlásit konferenci do konference!"
+
+#: Mailman/Cgi/subscribe.py:131
+msgid "If you supply a password, you must confirm it."
+msgstr "Pokud zadáte heslo musíte jej zadat dvakrát, pro potvrzení."
+
+#: Mailman/Cgi/subscribe.py:133
+msgid "Your passwords did not match."
+msgstr "Va¹e hesla se neshodují."
+
+#: Mailman/Cgi/subscribe.py:167
+msgid ""
+"Your subscription request has been received, and will soon be acted upon.\n"
+"Depending on the configuration of this mailing list, your subscription "
+"request\n"
+"may have to be first confirmed by you via email, or approved by the list\n"
+"moderator. If confirmation is required, you will soon get a confirmation\n"
+"email which contains further instructions."
+msgstr ""
+"Obdr¾eli jsme Va¹í ¾ádost o pøihlá¹ení do konference. V závislosti na "
+"konfiguraci\n"
+"této konference mù¾e být vy¾adováno potvrzení pøihlá¹ky mailem nebo souhlas\n"
+"moderátora. Pokud je vy¾adováno potvrzení mailem, dostanete obratem "
+"emailovou \n"
+"zprávu s podrobnými instrukcemi."
+
+#: Mailman/Cgi/subscribe.py:181
+msgid ""
+"The email address you supplied is banned from this\n"
+" mailing list. If you think this restriction is erroneous, please\n"
+" contact the list owners at %(listowner)s."
+msgstr ""
+"Emailová adresa, ze které se pøihla¹ujete, je zakázaná.\n"
+" Pokud máte pocit, ¾e to není správnì, mù¾ete kontaktovat správce\n"
+" na adrese %(listowner)s. Typicky bývají zakázány adresy ze kterých\n"
+" dostáváme spam."
+
+#: Mailman/Cgi/subscribe.py:185
+msgid ""
+"The email address you supplied is not valid. (E.g. it must contain an\n"
+"`@'.)"
+msgstr "Zadaná emailová adresa je neplatná. (Napø. neobsahuje @)"
+
+#: Mailman/Cgi/subscribe.py:189
+msgid ""
+"Your subscription is not allowed because the email address you gave is\n"
+"insecure."
+msgstr ""
+"Nebyl jste pøihlá¹en, proto¾e zadané e-mailová adresa není bezpeèná.\n"
+"Jste si jist, ¾e do ní Exchange nepøidala neviditelné znaky?"
+
+#: Mailman/Cgi/subscribe.py:197
+msgid ""
+"Confirmation from your email address is required, to prevent anyone from\n"
+"subscribing you without permission. Instructions are being sent to you at\n"
+"%(email)s. Please note your subscription will not start until you confirm\n"
+"your subscription."
+msgstr ""
+"Pro pøihlá¹ení je nutné potvrzení zaslané z Va¹í e-mailové adresy, aby nikdo "
+"nemohl pøihlásit\n"
+"nìkoho bez jeho vìdomí. Na adresu %(email)s byly zaslány instrukce jak to "
+"udìlat."
+
+#: Mailman/Cgi/subscribe.py:209
+msgid ""
+"Your subscription request was deferred because %(x)s. Your request has "
+"been\n"
+"forwarded to the list moderator. You will receive email informing you of "
+"the\n"
+"moderator's decision when they get to your request."
+msgstr ""
+"Pøihlá¹ení bylo <em>pozastaveno</em> z dùvodu:<br> %(x)s<p>. Vá¹ po¾adavek "
+"musí být schválen administrátorem konference. Jakmile administrátor rozhodne "
+"budete informováni mailem.<p>"
+
+#: Mailman/Cgi/subscribe.py:216 Mailman/Commands/cmd_confirm.py:60
+msgid "You are already subscribed."
+msgstr "V¾dy» u¾ jste pøihlá¹en!"
+
+#: Mailman/Cgi/subscribe.py:230
+msgid "Mailman privacy alert"
+msgstr "Upozornìní na mo¾né poru¹ení soukromí"
+
+#: Mailman/Cgi/subscribe.py:231
+msgid ""
+"An attempt was made to subscribe your address to the mailing list\n"
+"%(listaddr)s. You are already subscribed to this mailing list.\n"
+"\n"
+"Note that the list membership is not public, so it is possible that a bad\n"
+"person was trying to probe the list for its membership. This would be a\n"
+"privacy violation if we let them do this, but we didn't.\n"
+"\n"
+"If you submitted the subscription request and forgot that you were already\n"
+"subscribed to the list, then you can ignore this message. If you suspect "
+"that\n"
+"an attempt is being made to covertly discover whether you are a member of "
+"this\n"
+"list, and you are worried about your privacy, then feel free to send a "
+"message\n"
+"to the list administrator at %(listowner)s.\n"
+msgstr ""
+"Byl uèinìn pokus o pøihlá¹ení Va¹í adresy do konference \n"
+"%(listaddr)s. Do této konference jste ale u¾ pøihlá¹en.\n"
+"\n"
+"Tato konference není veøejná a tak je mo¾né, ¾e se nìkdo pokusil\n"
+"zjistit, jestli jste jejím èlenem. Pokud bychom po¾adavek zpracování\n"
+"bì¾ným zpùsobem, vyzradili bychom, ¾e jste èlenem a tím by mohlo\n"
+"být poru¹eno Va¹e soukromí. My jsme v¹ak simulovali, ¾e pøihlá¹ení\n"
+"probìhlo a tak potenciální útoèník nic nezjistil.\n"
+"\n"
+"Pokud jste to byl Vy, kdo pøihlá¹ku podal, aèkoliv jste ji¾ èlenem "
+"konference\n"
+"mù¾ete tuto zprávu klidnì ignorovat. Pokud jste se ale znovu nepøihla¹oval\n"
+"a jednalo se skuteènì o pokud o útok, kontaktujte správce konference, který\n"
+"má mo¾nost pokusit se o dohledání útoèníka.\n"
+"\n"
+"Adresa správce konference je %(listowner)s.\n"
+
+#: Mailman/Cgi/subscribe.py:250
+msgid "This list does not support digest delivery."
+msgstr "Tato konference nepodporuje digest re¾im."
+
+#: Mailman/Cgi/subscribe.py:252
+msgid "This list only supports digest delivery."
+msgstr "Tato konference podporuje jedinì digest re¾im."
+
+#: Mailman/Cgi/subscribe.py:259
+msgid "You have been successfully subscribed to the %(realname)s mailing list."
+msgstr "Úspì¹nì jste se pøihlásil do konference %(realname)s."
+
+#: Mailman/Commands/cmd_confirm.py:17
+msgid ""
+"\n"
+" confirm <confirmation-string>\n"
+" Confirm an action. The confirmation-string is required and should "
+"be\n"
+" supplied with in mailback confirmation notice.\n"
+msgstr ""
+"\n"
+" confirm <potvrzovací øetezec>\n"
+" Potvrzení akce, potvrzovací øetìzec je vy¾adován a obdr¾íte jej\n"
+" ve výzvì k potvrzení.\n"
+
+#: Mailman/Commands/cmd_confirm.py:40 Mailman/Commands/cmd_lists.py:40
+#: Mailman/Commands/cmd_set.py:133 Mailman/Commands/cmd_subscribe.py:69
+#: Mailman/Commands/cmd_unsubscribe.py:52 Mailman/Commands/cmd_who.py:65
+msgid "Usage:"
+msgstr "Zpùsob u¾ití: "
+
+#: Mailman/Commands/cmd_confirm.py:49
+msgid ""
+"Invalid confirmation string. Note that confirmation strings expire\n"
+"approximately %(days)s days after the initial subscription request. If "
+"your\n"
+"confirmation has expired, please try to re-submit your original request or\n"
+"message."
+msgstr ""
+"Neplatný øetìzec pro potvrzení pøihlá¹ení\n"
+" vygenerovaný øetìzec je platný je %(days)s dní po\n"
+" zaslání po¾adavku na pøihlá¹ení.\n"
+"\n"
+" Prosíme, pøihlaste se znovu."
+
+#: Mailman/Commands/cmd_confirm.py:55
+msgid "Your request has been forwarded to the list moderator for approval."
+msgstr "Vá¹ po¾adavek byl zaslán administrátorovi k odsouhlasení."
+
+#: Mailman/Commands/cmd_confirm.py:63
+msgid ""
+"You are not current a member. Have you already unsubscribed or changed\n"
+"your email address?"
+msgstr "Nejste úèastníkem. Neodhlásil jste se?"
+
+#: Mailman/Commands/cmd_confirm.py:73
+msgid "Confirmation succeeded"
+msgstr "Úspì¹nì potvrzeno"
+
+#: Mailman/Commands/cmd_echo.py:17
+msgid ""
+"\n"
+" echo [args]\n"
+" Simply echo an acknowledgement. Args are echoed back unchanged.\n"
+msgstr ""
+"\n"
+" echo [argumenty]\n"
+" vrátí zpìt øetìzec zadaný za tímto pøíkazem. Do øetìzce nebude nijak "
+"zasahováno\n"
+" mù¾e se to hodit napø. pøi ovìøování funkènosti a nebo pokud je "
+"potøeba dohledat, jestli nìkdo po cestì nemìní obsahy zpráv.\n"
+
+#: Mailman/Commands/cmd_end.py:17
+msgid ""
+"\n"
+" end\n"
+" Stop processing commands. Use this if your mail program "
+"automatically\n"
+" adds a signature file.\n"
+msgstr ""
+"\n"
+" end\n"
+" Ukonèi zpracování zprávy. Hodí se napø. kdy¾ po¹tovní program v¾dy\n"
+" pøidává na konec zprávy podpis.\n"
+
+#: Mailman/Commands/cmd_help.py:17
+msgid ""
+"\n"
+" help\n"
+" Print this help message.\n"
+msgstr ""
+"\n"
+" help\n"
+" Vrátí tuto zprávu s nápovìdou.\n"
+
+#: Mailman/Commands/cmd_help.py:47
+msgid "You can access your personal options via the following url:"
+msgstr "K parametrùm va¹eho úètu do dostanete prostøednictvím tohoto odkazu:"
+
+#: Mailman/Commands/cmd_info.py:17
+msgid ""
+"\n"
+" info\n"
+" Get information about this mailing list.\n"
+msgstr ""
+"\n"
+" info\n"
+" Vrátí informace o této konferenci.\n"
+
+#: Mailman/Commands/cmd_info.py:39 Mailman/Commands/cmd_lists.py:62
+msgid "n/a"
+msgstr "není známo"
+
+#: Mailman/Commands/cmd_info.py:44
+msgid "List name: %(listname)s"
+msgstr "Konference: %(listname)s"
+
+#: Mailman/Commands/cmd_info.py:45
+msgid "Description: %(description)s"
+msgstr "Popis: %(description)s"
+
+#: Mailman/Commands/cmd_info.py:46
+msgid "Postings to: %(postaddr)s"
+msgstr "Pøíspìvky na adresu: %(postaddr)s"
+
+#: Mailman/Commands/cmd_info.py:47
+msgid "List Helpbot: %(requestaddr)s"
+msgstr "Adresa robota s nápovìdou: %(requestaddr)s"
+
+#: Mailman/Commands/cmd_info.py:48
+msgid "List Owners: %(owneraddr)s"
+msgstr "Správci konference: %(owneraddr)s"
+
+#: Mailman/Commands/cmd_info.py:49
+msgid "More information: %(listurl)s"
+msgstr "Dal¹í informace jsou na: %(listurl)s"
+
+#: Mailman/Commands/cmd_join.py:17
+msgid "The `join' command is synonymous with `subscribe'.\n"
+msgstr "Pøíkaz `join' je synonymem pro `subscribe'.\n"
+
+#: Mailman/Commands/cmd_leave.py:17
+msgid "The `leave' command is synonymous with `unsubscribe'.\n"
+msgstr "Pøíkaz `leave' je synonymem pro `unsubscribe'.\n"
+
+#: Mailman/Commands/cmd_lists.py:17
+msgid ""
+"\n"
+" lists\n"
+" See a list of the public mailing lists on this GNU Mailman server.\n"
+msgstr ""
+"\n"
+" lists\n"
+" Zobraz seznam konferencí na tomto serveru.\n"
+
+#: Mailman/Commands/cmd_lists.py:44
+msgid "Public mailing lists at %(hostname)s:"
+msgstr "Veøejnì pøístupné konference provozované na %(hostname)s:"
+
+#: Mailman/Commands/cmd_lists.py:66
+msgid "%(i)3d. List name: %(realname)s"
+msgstr "%(i)3d. Konference: %(realname)s"
+
+#: Mailman/Commands/cmd_lists.py:67
+msgid " Description: %(description)s"
+msgstr " Popis: %(description)s"
+
+#: Mailman/Commands/cmd_lists.py:68
+msgid " Requests to: %(requestaddr)s"
+msgstr " Po¾adavky na adresu: %(requestaddr)s"
+
+#: Mailman/Commands/cmd_password.py:17
+msgid ""
+"\n"
+" password [<oldpassword> <newpassword>] [address=<address>]\n"
+" Retrieve or change your password. With no arguments, this returns\n"
+" your current password. With arguments <oldpassword> and "
+"<newpassword>\n"
+" you can change your password.\n"
+"\n"
+" If you're posting from an address other than your membership "
+"address,\n"
+" specify your membership address with `address=<address>' (no "
+"brackets\n"
+" around the email address, and no quotes!). Note that in this case "
+"the\n"
+" response is always sent to the subscribed address.\n"
+msgstr ""
+"\n"
+" password [<staré heslo> <nové heslo>] [address=<adresa>]\n"
+" Vrátí nebo zmìní heslo úèastníka. Pokud je pou¾it bez parametrù\n"
+" tak za¹le aktuální heslo. Pokud je uvedeno staré heslo i nové "
+"heslo,\n"
+" tak je heslo zmìnìno.\n"
+" Pokud zasíláte po¾adavek z jiné adresy, ne¾ z které jste "
+"pøihlá¹eni,\n"
+" mù¾ete svou adresu úèastníka specifikovat v parametru address,\n"
+" nicménì nové heslo bude zasláno jedinì na adresu, ze které\n"
+" jste pøihlá¹eni a ne na tu aktuální.\n"
+
+#: Mailman/Commands/cmd_password.py:51 Mailman/Commands/cmd_password.py:64
+msgid "Your password is: %(password)s"
+msgstr "Va¹e heslo je: %(password)s"
+
+#: Mailman/Commands/cmd_password.py:55 Mailman/Commands/cmd_password.py:68
+#: Mailman/Commands/cmd_password.py:91 Mailman/Commands/cmd_password.py:117
+#: Mailman/Commands/cmd_set.py:149 Mailman/Commands/cmd_set.py:219
+msgid "You are not a member of the %(listname)s mailing list"
+msgstr "Nejste úèastníkem konference %(listname)s."
+
+#: Mailman/Commands/cmd_password.py:81 Mailman/Commands/cmd_password.py:107
+msgid ""
+"You did not give the correct old password, so your password has not been\n"
+"changed. Use the no argument version of the password command to retrieve "
+"your\n"
+"current password, then try again."
+msgstr ""
+"Nezadali jste platné pùvodní heslo a tak nebylo heslo zmìnìno. Pokud\n"
+"své heslo neznáte, za¹lete pøíkaz bez parametrù a my vám heslo za¹leme.\n"
+"Potom mù¾ete zkusit provést zmìnu znovu."
+
+#: Mailman/Commands/cmd_password.py:85 Mailman/Commands/cmd_password.py:111
+msgid ""
+"\n"
+"Usage:"
+msgstr ""
+"\n"
+"Zpùsob u¾ití: "
+
+#: Mailman/Commands/cmd_remove.py:17
+msgid "The `remove' command is synonymous with `unsubscribe'.\n"
+msgstr "Pøíkaz `remove' je synonymem pro `unsubscribe'.\n"
+
+#: Mailman/Commands/cmd_set.py:26
+msgid ""
+"\n"
+" set ...\n"
+" Set or view your membership options.\n"
+"\n"
+" Use `set help' (without the quotes) to get a more detailed list of "
+"the\n"
+" options you can change.\n"
+"\n"
+" Use `set show' (without the quotes) to view your current option\n"
+" settings.\n"
+msgstr ""
+"\n"
+" set <option> <on|off> <heslo>\n"
+" Mìní nastavení Va¹eho u¾ivatelského konta.\n"
+" Pokud za¹lete pøíkaz `set help' (bez uvozovek),\n"
+" získáte seznam vlastností, které je mo¾né mìnit.\n"
+" Pøíkazem `set show' (bez uvozovek) získáte aktuální hodnoty,\n"
+" na které máte jednotlivé volby nastaveny.\n"
+
+#: Mailman/Commands/cmd_set.py:37
+msgid ""
+"\n"
+" set help\n"
+" Show this detailed help.\n"
+"\n"
+" set show [address=<address>]\n"
+" View your current option settings. If you're posting from an "
+"address\n"
+" other than your membership address, specify your membership address\n"
+" with `address=<address>' (no brackets around the email address, and "
+"no\n"
+" quotes!).\n"
+"\n"
+" set authenticate <password> [address=<address>]\n"
+" To set any of your options, you must include this command first, "
+"along\n"
+" with your membership password. If you're posting from an address\n"
+" other than your membership address, specify your membership address\n"
+" with `address=<address>' (no brackets around the email address, and "
+"no\n"
+" quotes!).\n"
+"\n"
+" set ack on\n"
+" set ack off\n"
+" When the `ack' option is turned on, you will receive an\n"
+" acknowledgement message whenever you post a message to the list.\n"
+"\n"
+" set digest plain\n"
+" set digest mime\n"
+" set digest off\n"
+" When the `digest' option is turned off, you will receive postings\n"
+" immediately when they are posted. Use `set digest plain' if "
+"instead\n"
+" you want to receive postings bundled into a plain text digest\n"
+" (i.e. RFC 1153 digest). Use `set digest mime' if instead you want "
+"to\n"
+" receive postings bundled together into a MIME digest.\n"
+"\n"
+" set delivery on\n"
+" set delivery off\n"
+" Turn delivery on or off. This does not unsubscribe you, but "
+"instead\n"
+" tells Mailman not to deliver messages to you for now. This is "
+"useful\n"
+" if you're going on vacation. Be sure to use `set delivery on' when\n"
+" you return from vacation!\n"
+"\n"
+" set myposts on\n"
+" set myposts off\n"
+" Use `set myposts off' to not receive copies of messages you post to\n"
+" the list. This has no effect if you're receiving digests.\n"
+"\n"
+" set hide on\n"
+" set hide off\n"
+" Use `set hide on' to conceal your email address when people request\n"
+" the membership list.\n"
+"\n"
+" set duplicates on\n"
+" set duplicates off\n"
+" Use `set duplicates off' if you want Mailman to not send you "
+"messages\n"
+" if your address is explicitly mentioned in the To: or Cc: fields of\n"
+" the message. This can reduce the number of duplicate postings you\n"
+" will receive.\n"
+"\n"
+" set reminders on\n"
+" set reminders off\n"
+" Use `set reminders off' if you want to disable the monthly password\n"
+" reminder for this mailing list.\n"
+msgstr ""
+"\n"
+" set help\n"
+" Za¹li nápovìdu.\n"
+"\n"
+" set show [address=<adresa>]\n"
+" Zobraz aktuální nastavení. \n"
+" Pokud je pøíkaz zaslán z jiné adresy ne¾ z které jste pøihlá¹eni,\n"
+" uveïte adresu úèastníka jako parametr za addres=\n"
+"\n"
+" set authenticate <heslo> [address=<adresa>]\n"
+" Pro nastavení parametrù je nutné jako pøíkaz uvést tento,\n"
+" pro pøihlá¹ení.\n"
+" Pokud je pøíkaz zaslán z jiné adresy ne¾ z které jste pøihlá¹eni,\n"
+" uveïte adresu úèastníka jako parametr za addres=\n"
+"\n"
+" set ack on\n"
+" set ack off\n"
+" Pokud zapnete volbu ack (on), budete dostávat informaci o rozeslání\n"
+" ka¾dého svého pøíspìvku.\n"
+"\n"
+" set digest plain\n"
+" set digest mime\n"
+" set digest off\n"
+" Ovládání digest re¾imu, tedy zasílání jedné zprávy obsahující "
+"nìkolik\n"
+" pøíspìvkù místo toho, aby byl ka¾dý pøíspìvek distribuován "
+"samostatnì.\n"
+" Rozdíl mezi plain a mime je v tom, ¾e v pøípadì mime je digest "
+"zasílán jako\n"
+" klasická multipart zpráva.\n"
+"\n"
+" set delivery on\n"
+" set delivery off\n"
+" Vypni nebo opìt zapni doruèování pøíspìvkù. Tato volba\n"
+" se pou¾ívá pokud nechcete po nìjakou dobu dostávat\n"
+" pøíspìvky, ale nechcete se odhla¹ovat. Druhý èastý pøípad je, ¾e "
+"potøebujete\n"
+" do konference pøispívat z více adres, ale nechcete dostávat ka¾dý "
+"pøíspìvek\n"
+" nìkolikrát. Potom si na ostatních adresách nastavíte delivery off. "
+"Samozøejmì\n"
+" tohle je potøeba jen u konferencí, které nepøijímají pøíspìvky od "
+"nepøihlá¹ených\n"
+" úèastníkù.\n"
+"\n"
+" set myposts on\n"
+" set myposts off\n"
+" Zapíná nebo vypíná to, zda dostanete kopii vlastního\n"
+" pøíspìvku. Pokud pou¾íváte digest, nemá tato volba vliv.\n"
+"\n"
+" set hide on\n"
+" set hide off\n"
+" Volbou `set hide on' zajistíte, ¾e nebudete vidìt v seznamu "
+"úèastníkù.\n"
+"\n"
+" set duplicates on\n"
+" set duplicates off\n"
+" Volbou `set duplicates off' dosáhnete toho, ¾e Mailman se bude pøed\n"
+" distribucí pøíspìvku dívat do polí to: a cc: a pokud tam budete\n"
+" explicitnì uvedeni, z distribuce vás vynechá. To vede ke sní¾ení\n"
+" pøíspìvkù, které dostanete duplicitnì. (Napø. pokud autor odpovídá\n"
+" pøímo vám a dá kopii do konference.)\n"
+"\n"
+" set reminders on\n"
+" set reminders off\n"
+" Volbou `set reminders off' zamezíte tomu, abyste dostávali ka¾dý "
+"mìsíc upomínku\n"
+" s heslem.\n"
+
+#: Mailman/Commands/cmd_set.py:122
+msgid "Bad set command: %(subcmd)s"
+msgstr "Chybný parametr u pøíkazu set: %(subcmd)s"
+
+#: Mailman/Commands/cmd_set.py:151
+msgid "Your current option settings:"
+msgstr "Va¹e aktuální konfigurace:"
+
+#: Mailman/Commands/cmd_set.py:153 Mailman/Commands/cmd_set.py:191
+#: Mailman/Commands/cmd_set.py:194 Mailman/Commands/cmd_set.py:198
+#: Mailman/Commands/cmd_set.py:202
+msgid "off"
+msgstr "Off"
+
+#: Mailman/Commands/cmd_set.py:153 Mailman/Commands/cmd_set.py:191
+#: Mailman/Commands/cmd_set.py:194 Mailman/Commands/cmd_set.py:198
+#: Mailman/Commands/cmd_set.py:202
+msgid "on"
+msgstr "on"
+
+#: Mailman/Commands/cmd_set.py:154
+msgid " ack %(onoff)s"
+msgstr " ack %(onoff)s"
+
+#: Mailman/Commands/cmd_set.py:160
+msgid " digest plain"
+msgstr " digest, v èistém textu"
+
+#: Mailman/Commands/cmd_set.py:162
+msgid " digest mime"
+msgstr " digest, jako MIME zpráva"
+
+#: Mailman/Commands/cmd_set.py:164
+msgid " digest off"
+msgstr " digest je vypnut"
+
+#: Mailman/Commands/cmd_set.py:169
+msgid "delivery on"
+msgstr "Doruèování po¹ty zapnuto"
+
+#: Mailman/Commands/cmd_set.py:171 Mailman/Commands/cmd_set.py:174
+#: Mailman/Commands/cmd_set.py:177 Mailman/Commands/cmd_set.py:181
+msgid "delivery off"
+msgstr "Doruèování po¹ty vypnuto"
+
+#: Mailman/Commands/cmd_set.py:172
+msgid "by you"
+msgstr "Vámi"
+
+#: Mailman/Commands/cmd_set.py:175
+msgid "by the admin"
+msgstr "administrátorem konference"
+
+#: Mailman/Commands/cmd_set.py:178
+msgid "due to bounces"
+msgstr "kvùli nedoruèitelnosti"
+
+#: Mailman/Commands/cmd_set.py:186
+msgid " %(status)s (%(how)s on %(date)s)"
+msgstr " %(status)s (%(how)s dne %(date)s)"
+
+#: Mailman/Commands/cmd_set.py:192
+msgid " myposts %(onoff)s"
+msgstr " myposts %(onoff)s"
+
+#: Mailman/Commands/cmd_set.py:195
+msgid " hide %(onoff)s"
+msgstr " hide %(onoff)s"
+
+#: Mailman/Commands/cmd_set.py:199
+msgid " duplicates %(onoff)s"
+msgstr " duplicates %(onoff)s"
+
+#: Mailman/Commands/cmd_set.py:203
+msgid " reminders %(onoff)s"
+msgstr " reminders %(onoff)s"
+
+#: Mailman/Commands/cmd_set.py:224
+msgid "You did not give the correct password"
+msgstr "Zadali jste ¹patné heslo."
+
+#: Mailman/Commands/cmd_set.py:236 Mailman/Commands/cmd_set.py:283
+msgid "Bad argument: %(arg)s"
+msgstr "Chybný argument: %(arg)s"
+
+#: Mailman/Commands/cmd_set.py:241 Mailman/Commands/cmd_set.py:261
+msgid "Not authenticated"
+msgstr "Nepøihlá¹en"
+
+#: Mailman/Commands/cmd_set.py:254
+msgid "ack option set"
+msgstr "Zapnuto potvrzování"
+
+#: Mailman/Commands/cmd_set.py:286
+msgid "digest option set"
+msgstr "Zapnuto digest doruèování"
+
+#: Mailman/Commands/cmd_set.py:298
+msgid "delivery option set"
+msgstr "Zapnuto doruèování"
+
+#: Mailman/Commands/cmd_set.py:310
+msgid "myposts option set"
+msgstr "Zapnuto doruèování vlastních pøíspìvkù"
+
+#: Mailman/Commands/cmd_set.py:321
+msgid "hide option set"
+msgstr "Skrytý u¾ivatel"
+
+#: Mailman/Commands/cmd_set.py:333
+msgid "duplicates option set"
+msgstr "Zapnuta detekce duplicitních pøíspìvkù"
+
+#: Mailman/Commands/cmd_set.py:345
+msgid "reminder option set"
+msgstr "Povoleno zasílání upozornìní na heslo"
+
+#: Mailman/Commands/cmd_stop.py:17
+msgid "stop is synonymous with the end command.\n"
+msgstr "stop je synonymem pro pøíkaz end.\n"
+
+#: Mailman/Commands/cmd_subscribe.py:17
+msgid ""
+"\n"
+" subscribe [password] [digest|nodigest] [address=<address>]\n"
+" Subscribe to this mailing list. Your password must be given to\n"
+" unsubscribe or change your options, but if you omit the password, "
+"one\n"
+" will be generated for you. You may be periodically reminded of "
+"your\n"
+" password.\n"
+"\n"
+" The next argument may be either: `nodigest' or `digest' (no "
+"quotes!).\n"
+" If you wish to subscribe an address other than the address you sent\n"
+" this request from, you may specify `address=<address>' (no brackets\n"
+" around the email address, and no quotes!)\n"
+msgstr ""
+"\n"
+" subscribe [heslo] [digest|nodigest] [address=<adresa>]\n"
+" Pøihlásí Vás do konference. Heslo budete potøebovat pro odhlá¹ení\n"
+" nebo zmìnu nastavení Va¹eho u¾ivatelského konta. Pokud si heslo\n"
+" nezvolíte bude Vám nìjaké vygenerováno. Heslo je periodicky "
+"zasíláno\n"
+" v¹em úèastníkùm, zpravidla na zaèátku mìsíce. Nastavení digestu "
+"mù¾e\n"
+" být buï \"nodigest\" nebo \"digest\". (Bez tìch uvozovek.) Pokud je "
+"digest\n"
+" zapnut jsou Vám pøíspìvky z konference zasílány jen jednou dennì "
+"(nebo\n"
+" dle nastavení správcem konference) v jednom mnohadílném dopise.\n"
+" Pokud tuto volbu neuvedete, pou¾ije se volba nastavená správcem\n"
+" konference jako standardní.\n"
+" Pokud se chcete pøihlásit z jiné adresy, ne¾ z které odchází "
+"po¾adavek,\n"
+" tak vyu¾ijete parametr adress=. Za nìj napí¹ete adresu, kterou "
+"chcete\n"
+" pøihlásit, bez uvozovek a závorek, napø. takto: "
+"address=pepa@freemail.fr\n"
+
+#: Mailman/Commands/cmd_subscribe.py:62
+msgid "Bad digest specifier: %(arg)s"
+msgstr "Chybná volba digest: %(arg)s"
+
+#: Mailman/Commands/cmd_subscribe.py:84
+msgid "No valid address found to subscribe"
+msgstr "Nebyla nalezena platná adresa pro pøihlá¹ení"
+
+#: Mailman/Commands/cmd_subscribe.py:102
+msgid ""
+"The email address you supplied is banned from this mailing list.\n"
+"If you think this restriction is erroneous, please contact the list\n"
+"owners at %(listowner)s."
+msgstr ""
+"Emailová adresa, kterou jste pou¾il je na seznamu zakázaných adres,\n"
+"které se nesmí pøihlásit do konference. Pokud máte pocit, ¾e je to chyba\n"
+"kontaktujte správce konference na adrese %(listowner)s."
+
+#: Mailman/Commands/cmd_subscribe.py:108
+msgid ""
+"Mailman won't accept the given email address as a valid address.\n"
+"(E.g. it must have an @ in it.)"
+msgstr ""
+"Tato e-mailová adresa není platná nebo nevyhovuje na¹im kontrolním "
+"pravidlùm.\n"
+"Jste si jisti, ¾e jste ji zadali správnì?"
+
+#: Mailman/Commands/cmd_subscribe.py:113
+msgid ""
+"Your subscription is not allowed because\n"
+"the email address you gave is insecure."
+msgstr ""
+"Nebyl jste pøihlá¹en, proto¾e zadané e-mailová adresa není bezpeèná.\n"
+"Jste si jist, ¾e do ní Exchange nepøidala neviditelné znaky?"
+
+#: Mailman/Commands/cmd_subscribe.py:118
+msgid "You are already subscribed!"
+msgstr "V¾dy» u¾ jste pøihlá¹en!"
+
+#: Mailman/Commands/cmd_subscribe.py:122
+msgid "No one can subscribe to the digest of this list!"
+msgstr "Není mo¾né pøihlásit se do této konference v digest re¾imu."
+
+#: Mailman/Commands/cmd_subscribe.py:125
+msgid "This list only supports digest subscriptions!"
+msgstr "Tato konference podporuje jedinì digest re¾im."
+
+#: Mailman/Commands/cmd_subscribe.py:131
+msgid ""
+"Your subscription request has been forwarded to the list administrator\n"
+"at %(listowner)s for review."
+msgstr ""
+"Va¹e ¾ádost o pøihlá¹ení byla pøedána administrátorovi konference na\n"
+"adresu %(listowner)s ke zpracování."
+
+#: Mailman/Commands/cmd_subscribe.py:136
+msgid "Subscription request succeeded."
+msgstr "®ádost o pøihlá¹ení byla potvrzena"
+
+#: Mailman/Commands/cmd_unsubscribe.py:17
+msgid ""
+"\n"
+" unsubscribe [password] [address=<address>]\n"
+" Unsubscribe from the mailing list. If given, your password must "
+"match\n"
+" your current password. If omitted, a confirmation email will be "
+"sent\n"
+" to the unsubscribing address. If you wish to unsubscribe an address\n"
+" other than the address you sent this request from, you may specify\n"
+" `address=<address>' (no brackets around the email address, and no\n"
+" quotes!)\n"
+msgstr ""
+"\n"
+" unsubscribe <heslo> [address=adresa] \n"
+" Odhlá¹ení z konference. Heslo je vy¾adováno, pokud jej neznáte "
+"nechte\n"
+" si jej zaslat z webovského rozhraní konference. Pokud se "
+"odhla¹ujete\n"
+" z jiné adresy, ne¾ kterou máte v konferenci, zadejte ji jako dal¹í\n"
+" volbu za heslo, tentokrát bez address=. \n"
+
+#: Mailman/Commands/cmd_unsubscribe.py:62
+msgid "%(address)s is not a member of the %(listname)s mailing list"
+msgstr "%(address)s není úèastníkem konference %(listname)s"
+
+#: Mailman/Commands/cmd_unsubscribe.py:69
+msgid ""
+"Your unsubscription request has been forwarded to the list administrator "
+"for\n"
+"approval."
+msgstr ""
+"Va¹e ¾ádost o pøihlá¹ení byla pøedána administrátorovi konference ke "
+"zpracování."
+
+#: Mailman/Commands/cmd_unsubscribe.py:84
+msgid "You gave the wrong password"
+msgstr "Zadali jste ¹patné heslo."
+
+#: Mailman/Commands/cmd_unsubscribe.py:87
+msgid "Unsubscription request succeeded."
+msgstr "®ádost o odhlá¹ení byla potvrzena"
+
+#: Mailman/Commands/cmd_who.py:29
+msgid ""
+"\n"
+" who\n"
+" See everyone who is on this mailing list.\n"
+msgstr ""
+"\n"
+" who\n"
+" Vrátí seznam úèastníkù, pokud to správce konference povolil.\n"
+
+#: Mailman/Commands/cmd_who.py:34
+msgid ""
+"\n"
+" who password [address=<address>]\n"
+" See everyone who is on this mailing list. The roster is limited to\n"
+" list members only, and you must supply your membership password to\n"
+" retrieve it. If you're posting from an address other than your\n"
+" membership address, specify your membership address with\n"
+" `address=<address>' (no brackets around the email address, and no\n"
+" quotes!)\n"
+msgstr ""
+"\n"
+" who heslo [address=<adresa>]\n"
+" Za¹li seznam úèastníkù. Musíte zadat heslo a pokud po¾adavek zasíláte "
+"z jiné\n"
+" adresy, ne¾ z které jste pøihlá¹eni, musíte jako parametr zadat i "
+"adresu, ze\n"
+" které jste pøihlá¹eni.\n"
+
+#: Mailman/Commands/cmd_who.py:44
+msgid ""
+"\n"
+" who password\n"
+" See everyone who is on this mailing list. The roster is limited to\n"
+" list administrators and moderators only; you must supply the list\n"
+" admin or moderator password to retrieve the roster.\n"
+msgstr ""
+"\n"
+" who heslo\n"
+" Za¹li seznam lidí v konferenci. Pokud je pro zobrazení seznamu lidí\n"
+" vy¾adováno heslo, musíte jej zadat.\n"
+
+#: Mailman/Commands/cmd_who.py:110
+msgid "You are not allowed to retrieve the list membership."
+msgstr "Nemáte právo zobrazit seznam úèastníkù."
+
+#: Mailman/Commands/cmd_who.py:116
+msgid "This list has no members."
+msgstr "Tato konference nemá ¾ádného úèastníka."
+
+#: Mailman/Commands/cmd_who.py:129
+msgid "Non-digest (regular) members:"
+msgstr "Bì¾ní úèastníci:"
+
+#: Mailman/Commands/cmd_who.py:132
+msgid "Digest members:"
+msgstr "Úèastnící odebírající Digest verzi:"
+
+#: Mailman/Defaults.py:1204
+msgid "Traditional Chinese"
+msgstr "Tradièní èín¹tina"
+
+#: Mailman/Defaults.py:1205
+msgid "Czech"
+msgstr "Èe¹tina"
+
+#: Mailman/Defaults.py:1206
+msgid "German"
+msgstr "Nìmèina"
+
+#: Mailman/Defaults.py:1207
+msgid "English (USA)"
+msgstr "Anglicky (USA)"
+
+#: Mailman/Defaults.py:1208
+msgid "Spanish (Spain)"
+msgstr "©panìlsky (Spain)"
+
+#: Mailman/Defaults.py:1209
+msgid "Estonian"
+msgstr "Eston¹tina"
+
+#: Mailman/Defaults.py:1210
+msgid "Finnish"
+msgstr "Fin¹tina"
+
+#: Mailman/Defaults.py:1211
+msgid "French"
+msgstr "Francouzsky"
+
+#: Mailman/Defaults.py:1212
+msgid "Simplified Chinese"
+msgstr "Zjednodu¹ená èín¹tina"
+
+#: Mailman/Defaults.py:1213
+msgid "Hungarian"
+msgstr "Maïar¹tina"
+
+#: Mailman/Defaults.py:1214
+msgid "Italian"
+msgstr "Italsky"
+
+#: Mailman/Defaults.py:1215
+msgid "Japanese"
+msgstr "Japonsky"
+
+#: Mailman/Defaults.py:1216
+msgid "Korean"
+msgstr "Korej¹tina"
+
+#: Mailman/Defaults.py:1217
+msgid "Lithuanian"
+msgstr ""
+
+#: Mailman/Defaults.py:1218
+msgid "Dutch"
+msgstr "Dán¹tina"
+
+#: Mailman/Defaults.py:1219
+msgid "Norwegian"
+msgstr "Nor¹tina"
+
+#: Mailman/Defaults.py:1220
+msgid "Portuguese (Brazil)"
+msgstr "Brazilská portugal¹tina"
+
+#: Mailman/Defaults.py:1221
+msgid "Russian"
+msgstr "Ru¹tina"
+
+#: Mailman/Defaults.py:1222
+msgid "Swedish"
+msgstr "©véd¹tina"
+
+#: Mailman/Deliverer.py:43
+msgid ""
+"Note: Since this is a list of mailing lists, administrative\n"
+"notices like the password reminder will be sent to\n"
+"your membership administrative address, %(addr)s."
+msgstr ""
+"(Toto je konference, která obsahuje pouze jiné konference. Upomínky hesel "
+"budou zasílány na administrativní adresu: %(addr)s)."
+
+#: Mailman/Deliverer.py:62
+msgid " (Digest mode)"
+msgstr "Digest"
+
+#: Mailman/Deliverer.py:68
+msgid "Welcome to the \"%(realname)s\" mailing list%(digmode)s"
+msgstr "Vítejte v konferenci \"%(realname)s\"! %(digmode)s"
+
+#: Mailman/Deliverer.py:77
+msgid "You have been unsubscribed from the %(realname)s mailing list"
+msgstr "Odhlá¹en z konference \"%(realname)s\""
+
+#: Mailman/Deliverer.py:104
+msgid "%(listfullname)s mailing list reminder"
+msgstr "Konference %(listfullname)s pøipomínka hesla"
+
+#: Mailman/Errors.py:114
+msgid "For some unknown reason"
+msgstr "Z neznámých dùvodù"
+
+#: Mailman/Errors.py:120 Mailman/Errors.py:143
+msgid "Your message was rejected"
+msgstr "Vá¹ pøíspìvek byl odmítnut"
+
+#: Mailman/Gui/Archive.py:25
+msgid "Archiving Options"
+msgstr "Parametry archivace"
+
+#: Mailman/Gui/Archive.py:31
+msgid "List traffic archival policies."
+msgstr "Zpùsob archivace pøíspìvkù."
+
+#: Mailman/Gui/Archive.py:34
+msgid "Archive messages?"
+msgstr "Archivovat pøíspìvky?"
+
+#: Mailman/Gui/Archive.py:36
+msgid "private"
+msgstr "soukromý"
+
+#: Mailman/Gui/Archive.py:36
+msgid "public"
+msgstr "veøejný"
+
+#: Mailman/Gui/Archive.py:37
+msgid "Is archive file source for public or private archival?"
+msgstr "Je archivní soubor zdrojem pro veøejný nebo soukromý archiv?"
+
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Monthly"
+msgstr "Mìsíènì"
+
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Quarterly"
+msgstr "Ètvrtletnì"
+
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Yearly"
+msgstr "Roènì"
+
+#: Mailman/Gui/Archive.py:41 Mailman/Gui/Digest.py:79
+msgid "Daily"
+msgstr "Dennì"
+
+#: Mailman/Gui/Archive.py:41 Mailman/Gui/Digest.py:79
+msgid "Weekly"
+msgstr "Týdnì"
+
+#: Mailman/Gui/Archive.py:43
+msgid "How often should a new archive volume be started?"
+msgstr "Jak èasto má být zakládán nový oddíl archívu?"
+
+#: Mailman/Gui/Autoresponse.py:31
+msgid "Auto-responder"
+msgstr "Automatický odpovídaè"
+
+#: Mailman/Gui/Autoresponse.py:39
+msgid ""
+"Auto-responder characteristics.<p>\n"
+"\n"
+"In the text fields below, string interpolation is performed with\n"
+"the following key/value substitutions:\n"
+"<p><ul>\n"
+" <li><b>listname</b> - <em>gets the name of the mailing list</em>\n"
+" <li><b>listurl</b> - <em>gets the list's listinfo URL</em>\n"
+" <li><b>requestemail</b> - <em>gets the list's -request address</em>\n"
+" <li><b>owneremail</b> - <em>gets the list's -owner address</em>\n"
+"</ul>\n"
+"\n"
+"<p>For each text field, you can either enter the text directly into the "
+"text\n"
+"box, or you can specify a file on your local system to upload as the text."
+msgstr ""
+"Pou¾ití automatického odpovídaèe.<p>\n"
+"\n"
+"V textových polích, která následují, jsou pou¾ívány standardní nahrazení "
+"Pythonu s pou¾itím následujících dvojic klíè/hodnota:\n"
+"<p><ul>\n"
+" <li><b>listname</b> - <em>jméno konference</em>\n"
+" <li><b>listurl</b> - <em>URL pro stránku s informacemi o konferenci</"
+"em>\n"
+" <li><b>requestemail</b> - <em>-request adresa konference</em>\n"
+" <li><b>adminemail</b> - <em>-admin adresa konference</em>\n"
+" <li><b>owneremail</b> - <em>-owner adresa konference</em>\n"
+"</ul>\n"
+"\n"
+"<p>Pro ka¾dou polo¾ku mù¾ete zadat text buï pøímo do okna nebo\n"
+"jej mù¾ete natáhnout ze souboru na lokálním disku."
+
+#: Mailman/Gui/Autoresponse.py:55
+msgid ""
+"Should Mailman send an auto-response to mailing list\n"
+" posters?"
+msgstr "Má Mailman zasílat automatické odpovìdi autorùm pøíspìvkù?"
+
+#: Mailman/Gui/Autoresponse.py:60
+msgid "Auto-response text to send to mailing list posters."
+msgstr "Text, který bude zaslán autorovi pøíspìvku."
+
+#: Mailman/Gui/Autoresponse.py:63
+msgid ""
+"Should Mailman send an auto-response to emails sent to the\n"
+" -owner address?"
+msgstr ""
+"Má Mailman zasílat automatické odpovìdi na dopisy adresované na\n"
+" -owner adresy?"
+
+#: Mailman/Gui/Autoresponse.py:68
+msgid "Auto-response text to send to -owner emails."
+msgstr "Text, který je automaticky zasílán v odpovìdi na -owner dopisy."
+
+#: Mailman/Gui/Autoresponse.py:71
+msgid "Yes, w/discard"
+msgstr "Ano; s zahozením"
+
+#: Mailman/Gui/Autoresponse.py:71
+msgid "Yes, w/forward"
+msgstr "Ano; s forwardováním"
+
+#: Mailman/Gui/Autoresponse.py:72
+msgid ""
+"Should Mailman send an auto-response to emails sent to the\n"
+" -request address? If you choose yes, decide whether you want\n"
+" Mailman to discard the original email, or forward it on to the\n"
+" system as a normal mail command."
+msgstr ""
+"Má Mailman automaticky odpovídat na dopisy adresované na -request\n"
+" adresu? Pokud vyberete ano, zvolte, zda má být originální "
+"dopis\n"
+" zahozen, nebo pøeposlán ke zpracování jako normální pøíkaz pro\n"
+" listserver."
+
+#: Mailman/Gui/Autoresponse.py:79
+msgid "Auto-response text to send to -request emails."
+msgstr "Text, který je automaticky zasílán v odpovìdi na -request dopisy."
+
+#: Mailman/Gui/Autoresponse.py:82
+msgid ""
+"Number of days between auto-responses to either the mailing\n"
+" list or -request/-owner address from the same poster. Set to\n"
+" zero (or negative) for no grace period (i.e. auto-respond to\n"
+" every message)."
+msgstr ""
+"Poèet dní, po které nebude znovu zasílána automatická odpovìï na stejnou "
+"adresu.\n"
+" Nastavení na 0 znamená, ¾e odpovìï bude zasílána na ka¾dou "
+"zprávu.\n"
+" (Volba pro -admin a -owner adresy)."
+
+#: Mailman/Gui/Bounce.py:26
+msgid "Bounce processing"
+msgstr "Detekce nedoruèitelných pøíspìvkù"
+
+#: Mailman/Gui/Bounce.py:32
+msgid ""
+"These policies control the automatic bounce processing system\n"
+" in Mailman. Here's an overview of how it works.\n"
+"\n"
+" <p>When a bounce is received, Mailman tries to extract two "
+"pieces\n"
+" of information from the message: the address of the member the\n"
+" message was intended for, and the severity of the problem "
+"causing\n"
+" the bounce. The severity can be either <em>hard</em> or\n"
+" <em>soft</em> meaning either a fatal error occurred, or a\n"
+" transient error occurred. When in doubt, a hard severity is "
+"used.\n"
+"\n"
+" <p>If no member address can be extracted from the bounce, then "
+"the\n"
+" bounce is usually discarded. Otherwise, each member is assigned "
+"a\n"
+" <em>bounce score</em> and every time we encounter a bounce from\n"
+" this member we increment the score. Hard bounces increment by "
+"1\n"
+" while soft bounces increment by 0.5. We only increment the "
+"bounce\n"
+" score once per day, so even if we receive ten hard bounces from "
+"a\n"
+" member per day, their score will increase by only 1 for that "
+"day.\n"
+"\n"
+" <p>When a member's bounce score is greater than the\n"
+" <a href=\"?VARHELP=bounce/bounce_score_threshold\">bounce score\n"
+" threshold</a>, the subscription is disabled. Once disabled, "
+"the\n"
+" member will not receive any postings from the list until their\n"
+" membership is explicitly re-enabled (either by the list\n"
+" administrator or the user). However, they will receive "
+"occasional\n"
+" reminders that their membership has been disabled, and these\n"
+" reminders will include information about how to re-enable their\n"
+" membership.\n"
+"\n"
+" <p>You can control both the\n"
+" <a href=\"?VARHELP=bounce/bounce_you_are_disabled_warnings"
+"\">number\n"
+" of reminders</a> the member will receive and the\n"
+" <a href=\"?VARHELP=bounce/"
+"bounce_you_are_disabled_warnings_interval\"\n"
+" >frequency</a> with which these reminders are sent.\n"
+"\n"
+" <p>There is one other important configuration variable; after a\n"
+" certain period of time -- during which no bounces from the "
+"member\n"
+" are received -- the bounce information is\n"
+" <a href=\"?VARHELP=bounce/bounce_info_stale_after\">considered\n"
+" stale</a> and discarded. Thus by adjusting this value, and the\n"
+" score threshold, you can control how quickly bouncing members "
+"are\n"
+" disabled. You should tune both of these to the frequency and\n"
+" traffic volume of your list."
+msgstr ""
+"Zde se nastavují pravidla pro detekci neplatných adres. Nìkolik slov o tom "
+"jak\n"
+"to funguje:\n"
+"\n"
+"<p>Pokud se vrátí pøíspìvek jako nedoruèitelný, Mailman se pokusí v nìm\n"
+"najít dvì informace. Jednak adresu, na kterou není mo¾né doruèovat\n"
+"a jednak dùvod pro selhání doruèení. Dùvod mù¾e být buï <em>trvalý</em> a "
+"nebo <em>doèasný</em>.\n"
+"Pokud není mo¾né zjistit, o jakou chybu se jedná, má se za to, ¾e problém je "
+"trvalý.\n"
+"\n"
+"<p>Pokud se nepodaøí zjistit na jakou adresu se pøíspìvek nepodaøilo "
+"doruèit, je chybová\n"
+"zpráva zahozena. To je speciálnì v Èeské republice problém freemailù/"
+"webmailù\n"
+"které ignorují patøièná RFC pro formát chyb doruèení a generují nesmyslné "
+"chybové\n"
+"zprávy.\n"
+"\n"
+"<p>Pokud je mo¾né zjistit, kterému úèastníkovi není mo¾né po¹tu doruèit, je "
+"mu pøiøazeno\n"
+"<em>skóre nedoruèitelnosti</em>. To je s ka¾dým dal¹ím vráceným pøíspìvkem "
+"inkrementováno. Pokud\n"
+"je nemo¾nost doruèení vyhodnocena jako trvalá, je inkrementováno o 1, pokud "
+"je problém\n"
+"doèasný, je inkrementováno o 0,5. K inkrementaci ale dojde jen jednou dennì, "
+"bez ohledu\n"
+"na to, kolik pøíspìvkù se za den vrací. \n"
+"\n"
+"<p>Pokud pøekroèí skóre hodnotu nastavenou v promìnné\n"
+"<a href=\"?VARHELP=bounce/bounce_score_threshold\"> maximální skóre</a>, "
+"jeho èlenství je pozastaveno.\n"
+"Na jeho adresu u¾ nejsou posílány ¾ádné dal¹í pøíspìvky. Dostává jen\n"
+"upozornìní, ¾e jeho èlenství je pozastaveno a ¾e jej musí obnovit.\n"
+"Postup pro obnovení èlenství je popsán v tìchto upozornìních.\n"
+"\n"
+"<p>Mù¾ete nastavit jednak\n"
+" <a href=\"?VARHELP=bounce/bounce_you_are_disabled_warnings"
+"\">poèet\n"
+" zaslaných upozornìní</a>, které budou úèastníkovi zaslány a "
+"také\n"
+" <a href=\"?VARHELP=bounce/"
+"bounce_you_are_disabled_warnings_interval\"\n"
+" >frekvenci</a>jak èasto jsou upozornìní zasílána.\n"
+"\n"
+" <p>Poslední dùle¾itý bod konfigurace je nastavení doby po které\n"
+" bude skóre resetováno, pokud se nevrátí ¾ádný nedoruèitelný "
+"pøíspìvek.\n"
+" Nazývá se <a href=\"?VARHELP=bounce/bounce_info_stale_after"
+"\">doba vypr¹ení\n"
+" pozastavení</a>. Tuto hodnotu musíte sladit s objemem "
+"komunikace\n"
+" pøes konferenci a spolu s maximálním skóre urèuje jak rychle "
+"budou zakazování\n"
+" úèastníci, kteøí nemají platnou adresu. "
+
+#: Mailman/Gui/Bounce.py:75
+msgid "Bounce detection sensitivity"
+msgstr "Citlivost detekce nedoruèitelných pøíspìvkù"
+
+#: Mailman/Gui/Bounce.py:78
+msgid "Should Mailman perform automatic bounce processing?"
+msgstr ""
+"Má se Mailman pokou¹et automaticky odhla¹ovat úèastníky, kterým není mo¾né "
+"doruèovat pøíspìvky?"
+
+#: Mailman/Gui/Bounce.py:79
+msgid ""
+"By setting this value to <em>No</em>, you disable all\n"
+" automatic bounce processing for this list, however bounce\n"
+" messages will still be discarded so that the list "
+"administrator\n"
+" isn't inundated with them."
+msgstr ""
+"Pokud nastavíte tuto hodnotu na <em>Ne</em>, zaká¾ete automatickou\n"
+" detekci neplatných adres úèastníkù. Nicménì zprávy obsahující\n"
+" chyby doruèení budou zahazovány a administrátor jimi nebude "
+"obtì¾ován."
+
+#: Mailman/Gui/Bounce.py:85
+msgid ""
+"The maximum member bounce score before the member's\n"
+" subscription is disabled. This value can be a floating point\n"
+" number."
+msgstr ""
+"Maximální skóre po jeho¾ dosa¾ení je úèastníkovi pozastaveno èlenství.\n"
+"Mù¾e to být jakékoliv kladné reálné èíslo."
+
+#: Mailman/Gui/Bounce.py:90
+msgid ""
+"The number of days after which a member's bounce information\n"
+" is discarded, if no new bounces have been received in the\n"
+" interim. This value must be an integer."
+msgstr ""
+"Poèet dní, po jejich¾ uplynutí je skóre resetováno, pokud v jejich prùbìhu "
+"nevznikne ¾ádná\n"
+"chyba doruèení. Musí to být celé èíslo."
+
+#: Mailman/Gui/Bounce.py:95
+msgid ""
+"How many <em>Your Membership Is Disabled</em> warnings a\n"
+" disabled member should get before their address is removed "
+"from\n"
+" the mailing list. Set to 0 to immediately remove an address "
+"from\n"
+" the list once their bounce score exceeds the threshold. This\n"
+" value must be an integer."
+msgstr ""
+"Kolik upozornìní typu <em>Va¹e èlenství je pozastaveno</em> je zasláno\n"
+" úèastníkovi pøed vyøazením ze seznamu èlenù. Pokud nastavíte 0\n"
+" bude adresa odstranìna okam¾itì jak bude dosa¾eno maximální "
+"skóre.\n"
+" Musí to být celé èíslo."
+
+#: Mailman/Gui/Bounce.py:102
+msgid ""
+"The number of days between sending the <em>Your Membership\n"
+" Is Disabled</em> warnings. This value must be an integer."
+msgstr ""
+"Poèet dní mezi zasláním dvou upozornìní typu <em>Va¹e èlenství je "
+"pozastaveno</em> \n"
+"Musí to být celé èíslo."
+
+#: Mailman/Gui/Bounce.py:105 Mailman/Gui/General.py:257
+msgid "Notifications"
+msgstr "Notifikace"
+
+#: Mailman/Gui/Bounce.py:109
+msgid ""
+"Should Mailman send you, the list owner, any bounce messages\n"
+" that failed to be detected by the bounce processor? <em>Yes</"
+"em>\n"
+" is recommended."
+msgstr ""
+"Má Mailman zasílat správci konference vrácené pøíspìvky, které\n"
+"nemohly být zpracovány automaticky? Je doporuèeno nastavit <em>Ano</em>."
+
+#: Mailman/Gui/Bounce.py:112
+msgid ""
+"While Mailman's bounce detector is fairly robust, it's\n"
+" impossible to detect every bounce format in the world. You\n"
+" should keep this variable set to <em>Yes</em> for two reasons: "
+"1)\n"
+" If this really is a permanent bounce from one of your members,\n"
+" you should probably manually remove them from your list, and "
+"2)\n"
+" you might want to send the message on to the Mailman "
+"developers\n"
+" so that this new format can be added to its known set.\n"
+"\n"
+" <p>If you really can't be bothered, then set this variable to\n"
+" <em>No</em> and all non-detected bounces will be discarded\n"
+" without further processing.\n"
+"\n"
+" <p><b>Note:</b> This setting will also affect all messages "
+"sent\n"
+" to your list's -admin address. This address is deprecated and\n"
+" should never be used, but some people may still send mail to "
+"this\n"
+" address. If this happens, and this variable is set to\n"
+" <em>No</em> those messages too will get discarded. You may "
+"want\n"
+" to set up an\n"
+" <a href=\"?VARHELP=autoreply/autoresponse_admin_text"
+"\">autoresponse\n"
+" message</a> for email to the -owner and -admin address."
+msgstr ""
+"Aèkoliv je detekce nedoruèitelných pøíspìvkù v Mailmanu pomìrnì dokonalá\n"
+"není mo¾né znát ka¾dý zpùsob, jakým nìkdo dává najevo, ¾e adresa, kam je "
+"pøíspìvek\n"
+"zasílán, není platná. Tento parametr byste mìli nastavit na <em>Ano</em> ze "
+"dvou dùvodù:\n"
+"1)\n"
+"Pokud se jedná skuteènì o adresu, na kterou není a nebude mo¾né nìco "
+"doruèit,\n"
+"zøejmì ji budete chtít odhlásit z konference ruènì. \n"
+"2)\n"
+"Nebylo by ¹patné, kdybyste zprávu zaslali autorùm Mailmanu, aby mohli\n"
+"napøí¹tì i tento neznámý formát chybové zprávy správnì rozpoznat a zaøadit\n"
+"do pøí¹tí verze. \n"
+"\n"
+" <p>Pokud si skuteènì nepøejete být provozem konference "
+"obtì¾ováni\n"
+" nastavte hodnotu na <em>Ne</em> a v¹echna hlá¹ení o "
+"nedoruèitelnosti,\n"
+" která nebudou systémem rozpoznána, budou zahozena.\n"
+"\n"
+"<p><b>Pozor:</b> Toto nastavení ovlivní v¹echny zprávy, které budou zaslány "
+"na\n"
+"admin adresu konference. Tato adresa by se ji¾ sice nemìla pou¾ívat, \n"
+"ale stále se najdou lidé, kteøí na ni zasílají rùzné dotazy a podobnì. Pøi "
+"nastavení\n"
+"<em>Ne</em> tyto zprávy budou také zahozeny a vy je neuvidíte.\n"
+"Mo¾ná proto budete chtít nastavit <a href=\"?VARHELP=autoreply/"
+"autoresponse_admin_text\">\n"
+"automatickou odpovìï</a> pro -owner a -admin adresy."
+
+#: Mailman/Gui/Bounce.py:135
+msgid ""
+"Should Mailman notify you, the list owner, when bounces\n"
+" cause a member's subscription to be disabled?"
+msgstr ""
+"Má Mailman upozornit správce konference, pokud je úèastníkovi\n"
+"pozastaveno zasílání pøíspìvkù, proto¾e se vracejí?"
+
+#: Mailman/Gui/Bounce.py:137
+msgid ""
+"By setting this value to <em>No</em>, you turn off\n"
+" notification messages that are normally sent to the list "
+"owners\n"
+" when a member's delivery is disabled due to excessive bounces.\n"
+" An attempt to notify the member will always be made."
+msgstr ""
+"Pokud zvolíte <em>Ne</em>, nebude administrátor konference dostávat\n"
+"zprávy o zákazu doruèování úèastníkùm, na jejich¾ adresy se nedaøí\n"
+"doruèovat pøíspìvky. Úèastníkovi se mailman pokusí poslat zprávu\n"
+"o dùvodu pozastavení úèastnictví v ka¾dém pøípadì."
+
+#: Mailman/Gui/Bounce.py:144
+msgid ""
+"Should Mailman notify you, the list owner, when bounces\n"
+" cause a member to be unsubscribed?"
+msgstr ""
+"Má Mailman informovat správce konference o odhlá¹ení úèastníka\n"
+"na podnìt automatické detekce nedoruèitelných pøíspìvkù?"
+
+#: Mailman/Gui/Bounce.py:146
+msgid ""
+"By setting this value to <em>No</em>, you turn off\n"
+" notification messages that are normally sent to the list "
+"owners\n"
+" when a member is unsubscribed due to excessive bounces. An\n"
+" attempt to notify the member will always be made."
+msgstr ""
+"Pokud zvolíte <em>Ne</em>, nebude administrátor konference dostávat\n"
+"zprávy o odhlá¹ení úèastníka, na jeho¾ adresu se dlouhodobì nedaøí\n"
+"doruèovat pøíspìvky. Úèastníkovi se mailman pokusí poslat zprávu\n"
+"o dùvodu odhlá¹ení v ka¾dém pøípadì."
+
+#: Mailman/Gui/Bounce.py:173
+msgid ""
+"Bad value for <a href=\"?VARHELP=bounce/%(property)s\"\n"
+" >%(property)s</a>: %(val)s"
+msgstr ""
+"Neplatná hodnota promìnné <a href=\"?VARHELP=bounce/%(property)s\">%"
+"(property)s</a>: %(val)s"
+
+#: Mailman/Gui/ContentFilter.py:30
+msgid "Content&nbsp;filtering"
+msgstr "Filtrace&nbsp;obsahu"
+
+#: Mailman/Gui/ContentFilter.py:37
+msgid "Forward to List Owner"
+msgstr "Pøepo¹li vlastníkovi konference"
+
+#: Mailman/Gui/ContentFilter.py:39
+msgid "Preserve"
+msgstr "Zachovej"
+
+#: Mailman/Gui/ContentFilter.py:42
+msgid ""
+"Policies concerning the content of list traffic.\n"
+"\n"
+" <p>Content filtering works like this: when a message is\n"
+" received by the list and you have enabled content filtering, "
+"the\n"
+" individual attachments are first compared to the\n"
+" <a href=\"?VARHELP=contentfilter/filter_mime_types\">filter\n"
+" types</a>. If the attachment type matches an entry in the "
+"filter\n"
+" types, it is discarded.\n"
+"\n"
+" <p>Then, if there are <a\n"
+" href=\"?VARHELP=contentfilter/pass_mime_types\">pass types</a>\n"
+" defined, any attachment type that does <em>not</em> match a\n"
+" pass type is also discarded. If there are no pass types "
+"defined,\n"
+" this check is skipped.\n"
+"\n"
+" <p>After this initial filtering, any <tt>multipart</tt>\n"
+" attachments that are empty are removed. If the outer message "
+"is\n"
+" left empty after this filtering, then the whole message is\n"
+" discarded. Then, each <tt>multipart/alternative</tt> section "
+"will\n"
+" be replaced by just the first alternative that is non-empty "
+"after\n"
+" filtering.\n"
+"\n"
+" <p>Finally, any <tt>text/html</tt> parts that are left in the\n"
+" message may be converted to <tt>text/plain</tt> if\n"
+" <a href=\"?VARHELP=contentfilter/convert_html_to_plaintext\"\n"
+" >convert_html_to_plaintext</a> is enabled and the site is\n"
+" configured to allow these conversions."
+msgstr ""
+"Pravidla pro filtrování obsahu pøíspìvkù.\n"
+"\n"
+" <p>Filtrace obsahu funguje takto: Pokud máte filtraci povolenu,\n"
+" jsou nejdøíve v¹echny pøílohy pøíspìvku porovnávány podle "
+"seznamu\n"
+" <a href=\"?VARHELP=contentfilter/filter_mime_types\">Odstraò "
+"pøílohy zpráv,\n"
+" které mají tento MIME typ</a>. Pokud je pøíloha v tomto seznamu "
+"nalezena,\n"
+" je automaticky zahozena.\n"
+"\n"
+" <p>Potom, pokud je nastavena volba <a\n"
+" href=\"?VARHELP=contentfilter/pass_mime_types\">Propus» tyto "
+"pøílohy</a>,\n"
+" jsou zahozeny v¹echny pøílohy, jejich¾ MIME typ <em>není</em> v "
+"seznamu uveden.\n"
+" Pokud je tento seznam prázdný, je tato kontrola pøeskoèena. \n"
+"\n"
+" <p>Po tomto prvním pøefiltrování jsou odstranìny v¹echny\n"
+" <tt>multipart</tt> pøílohy, které jsou nyní prázdné. Pokud "
+"zùstane\n"
+" po pøefiltrování prázdný celý pøíspìvek, je zahozen celý.\n"
+" Potom jsou prohledány v¹echny <tt>multipart/alternative</tt> "
+"sekce\n"
+" a pokud obsahují jen jednu èást, jsou nahrazeny touto èástí.\n"
+"\n"
+" <p>Nakonec jsou v¹echny <tt>text/html</tt> èásti, které v "
+"pøíspìvku\n"
+" zùstaly konvertovány na èásti typu <tt>text/plain</tt> pokud je "
+"aktivní volba\n"
+" <a href=\"?VARHELP=contentfilter/convert_html_to_plaintext\"\n"
+" >konvertovat html na èistý text</a> a server je nakonfigurován "
+"tak, \n"
+" ¾e tuto konverzi dovoluje."
+
+#: Mailman/Gui/ContentFilter.py:71
+msgid ""
+"Should Mailman filter the content of list traffic according\n"
+" to the settings below?"
+msgstr ""
+"Má Mailman filtrovat obsah pøíspìvkù do konference podle ní¾e\n"
+"nastavených pravidel?"
+
+#: Mailman/Gui/ContentFilter.py:75
+msgid ""
+"Remove message attachments that have a matching content\n"
+" type."
+msgstr "Odstraò pøílohy zpráv, které mají tento MIME typ."
+
+#: Mailman/Gui/ContentFilter.py:78
+msgid ""
+"Use this option to remove each message attachment that\n"
+" matches one of these content types. Each line should contain "
+"a\n"
+" string naming a MIME <tt>type/subtype</tt>,\n"
+" e.g. <tt>image/gif</tt>. Leave off the subtype to remove all\n"
+" parts with a matching major content type, e.g. <tt>image</tt>.\n"
+"\n"
+" <p>Blank lines are ignored.\n"
+"\n"
+" <p>See also <a href=\"?VARHELP=contentfilter/pass_mime_types\"\n"
+" >pass_mime_types</a> for a content type whitelist."
+msgstr ""
+"Pou¾itím této volby mù¾ete odstranit ty èásti pøíspìvkù, jejich¾\n"
+" MIME typ vyhovuje jednomu ze zde uvedených.\n"
+" Ka¾dý øádek musí obsahovat øetìzec ve tvaru <tt>type/subtype</"
+"tt>,\n"
+" napø. <tt>image/gif</tt>. Pokud subtype neuvedete, budou "
+"odstranìny\n"
+" v¹echny èásti s typem odpovídajícím danému typu, napø.\n"
+" <tt>image</tt>.\n"
+"\n"
+" <p>Prázdné øádky jsou ignorovány.\n"
+"\n"
+" <p>Nahlédnìte také do volby <a href=\"?VARHELP=contentfilter/"
+"pass_mime_types\"\n"
+" >pass_mime_types</a> pro seznam typù, které jsou povoleny."
+
+#: Mailman/Gui/ContentFilter.py:90
+msgid ""
+"Remove message attachments that don't have a matching\n"
+" content type. Leave this field blank to skip this filter\n"
+" test."
+msgstr ""
+"Propus» tyto pøílohy. Nechte pole prázdné, pokud nechcete pøílohy filtrovat."
+
+#: Mailman/Gui/ContentFilter.py:94
+msgid ""
+"Use this option to remove each message attachment that does\n"
+" not have a matching content type. Requirements and formats "
+"are\n"
+" exactly like <a href=\"?VARHELP=contentfilter/filter_mime_types"
+"\"\n"
+" >filter_mime_types</a>.\n"
+"\n"
+" <p><b>Note:</b> if you add entries to this list but don't add\n"
+" <tt>multipart</tt> to this list, any messages with attachments\n"
+" will be rejected by the pass filter."
+msgstr ""
+"Pou¾itím této volby mù¾ete odstranit v¹echny pøílohy, kromì tìch,\n"
+" jejich¾ typ je uveden v tomto seznamu. Syntaxe je stejná s "
+"volbou\n"
+" <a href=\"?VARHELP=contentfilter/filter_mime_types\"\n"
+" >filter_mime_types</a>.\n"
+"\n"
+" <p><b>Pozor:</b> Pokud do tohoto seznamu uvedete nìjaké "
+"polo¾ky\n"
+" a neuvedete v nìm polo¾ku <tt>multipart</tt> budou v¹echny "
+"pøíspìvky, které obsahují pøílohu, fitrem zamítnuty. "
+
+#: Mailman/Gui/ContentFilter.py:104
+msgid ""
+"Should Mailman convert <tt>text/html</tt> parts to plain\n"
+" text? This conversion happens after MIME attachments have "
+"been\n"
+" stripped."
+msgstr ""
+"Má Mailman konvertovat <tt>text/html</tt> na èistý text?\n"
+"Tato konverze je provádìna a¾ po odstranìní pøípadných MIME pøíloh. "
+
+#: Mailman/Gui/ContentFilter.py:110
+msgid ""
+"Action to take when a message matches the content filtering\n"
+" rules."
+msgstr "Akce, která probìhne kdy¾ pøíspìvek vyhoví testu na filtrování obsahu."
+
+#: Mailman/Gui/ContentFilter.py:113
+msgid ""
+"One of these actions is take when the message matches one of\n"
+" the content filtering rules, meaning, the top-level\n"
+" content type matches one of the <a\n"
+" href=\"?VARHELP=contentfilter/filter_mime_types\"\n"
+" >filter_mime_types</a>, or the top-level content type does\n"
+" <strong>not</strong> match one of the\n"
+" <a href=\"?VARHELP=contentfilter/pass_mime_types\"\n"
+" >pass_mime_types</a>, or if after filtering the subparts of "
+"the\n"
+" message, the message ends up empty.\n"
+"\n"
+" <p>Note this action is not taken if after filtering the "
+"message\n"
+" still contains content. In that case the message is always\n"
+" forwarded on to the list membership.\n"
+"\n"
+" <p>When messages are discarded, a log entry is written\n"
+" containing the Message-ID of the discarded message. When\n"
+" messages are rejected or forwarded to the list owner, a reason\n"
+" for the rejection is included in the bounce message to the\n"
+" original author. When messages are preserved, they are saved "
+"in\n"
+" a special queue directory on disk for the site administrator "
+"to\n"
+" view (and possibly rescue) but otherwise discarded. This last\n"
+" option is only available if enabled by the site\n"
+" administrator."
+msgstr ""
+"Jedna z následujících akcí je provedena s pøíspìvkem, jeho¾\n"
+" hlavní content type vyhovìl podmínce na filtrování \n"
+" <a\n"
+" href=\"?VARHELP=contentfilter/filter_mime_types\"\n"
+" >filter_mime_types</a>, a nebo\n"
+" <strong>nevyhovìl</strong> podmínce pro povolení\n"
+" <a href=\"?VARHELP=contentfilter/pass_mime_types\"\n"
+" >pass_mime_types</a>, pøípadnì s takovým, který zùstal\n"
+" po filtraci obsahu prázdný.\n"
+"\n"
+" <p> Je tøeba vìdìt, ¾e v pøípadì, ¾e po filtraci v pøíspìvku\n"
+" nìjaká èást zùstala, tato akce se na nìj nevztahuje\n"
+" a pøíspìvek bude rozeslán.\n"
+"\n"
+" <p>Pokud je zpráva zahozena, je do logovacích souborù "
+"zaznamenáno\n"
+" její Message-ID. Pokud je zpráva odmítnuta a nebo pøeposlána "
+"moderátorovi\n"
+" je jejímu autorovi zasláno oznámení, které obsahuje dùvod "
+"odmítnutí. \n"
+" Pokud je zpráva zachována, je ulo¾ena do zvlá¹tní fronty, kde "
+"èeká na\n"
+" rozhodnutí administrátora. Ten zprávu mù¾e buï smazat a nebo "
+"povolit její \n"
+" rozeslání. Poslední volba nemusí být dostupná, pokud ji správce "
+"serveru\n"
+" nepovolil. "
+
+#: Mailman/Gui/ContentFilter.py:154
+msgid "Bad MIME type ignored: %(spectype)s"
+msgstr "Chybný MIME typ byl ignorován: %(spectype)s"
+
+#: Mailman/Gui/Digest.py:36
+msgid "Digest options"
+msgstr "Parametry digest doruèování"
+
+#: Mailman/Gui/Digest.py:44
+msgid "Batched-delivery digest characteristics."
+msgstr "Vlastnosti DIGEST re¾imu."
+
+#: Mailman/Gui/Digest.py:47
+msgid "Can list members choose to receive list traffic bunched in digests?"
+msgstr "Mù¾e si u¾ivatel zvolit zasílání zpráv jako digest?"
+
+#: Mailman/Gui/Digest.py:51
+msgid "Digest"
+msgstr "Digest"
+
+#: Mailman/Gui/Digest.py:51
+msgid "Regular"
+msgstr "Normální po¹ta"
+
+#: Mailman/Gui/Digest.py:52
+msgid "Which delivery mode is the default for new users?"
+msgstr "Jaký re¾im doruèování je nastaven implicitnì u nového u¾ivatele?"
+
+#: Mailman/Gui/Digest.py:55
+msgid "MIME"
+msgstr "MIME"
+
+#: Mailman/Gui/Digest.py:55
+msgid "Plain"
+msgstr "èistý text"
+
+#: Mailman/Gui/Digest.py:56
+msgid "When receiving digests, which format is default?"
+msgstr "Pokud si u¾ivatel vybere digest, jaký je jeho implicitní formát?"
+
+#: Mailman/Gui/Digest.py:59
+msgid "How big in Kb should a digest be before it gets sent out?"
+msgstr "Jaká je maximální velikost digestu?"
+
+#: Mailman/Gui/Digest.py:63
+msgid ""
+"Should a digest be dispatched daily when the size threshold isn't reached?"
+msgstr ""
+"Má být digest odeslán ka¾dý den i pøi nepøekroèení maximální velikosti?"
+
+#: Mailman/Gui/Digest.py:67
+msgid "Header added to every digest"
+msgstr "Hlavièka, která bude pøidávána ke ka¾dému digestu"
+
+#: Mailman/Gui/Digest.py:68
+msgid ""
+"Text attached (as an initial message, before the table of contents) to the "
+"top of digests. "
+msgstr ""
+"Text, který bude pøipojen ke ka¾dému digestu. (Bude pøipojen jako první "
+"zpráva v digestu, je¹tì pøed obsahem.)"
+
+#: Mailman/Gui/Digest.py:73
+msgid "Footer added to every digest"
+msgstr "Patièka pøidávaná ke ka¾dému digestu"
+
+#: Mailman/Gui/Digest.py:74
+msgid "Text attached (as a final message) to the bottom of digests. "
+msgstr "Text, který bude pøipojen jako poslední zpráva do digestu."
+
+#: Mailman/Gui/Digest.py:80
+msgid "How often should a new digest volume be started?"
+msgstr "Jak èasto má být zakládán nový oddíl archívu?"
+
+#: Mailman/Gui/Digest.py:81
+msgid ""
+"When a new digest volume is started, the volume number is\n"
+" incremented and the issue number is reset to 1."
+msgstr ""
+"Pokud je zahájena nová digest dávka, je èíslo dávky inkrementováno\n"
+" a èíslo pøíspìvku je nastaveno na 1."
+
+#: Mailman/Gui/Digest.py:85
+msgid "Should Mailman start a new digest volume?"
+msgstr "Má Mailman zahájit ukládání do nové DIGEST dávky?"
+
+#: Mailman/Gui/Digest.py:86
+msgid ""
+"Setting this option instructs Mailman to start a new volume\n"
+" with the next digest sent out."
+msgstr ""
+"Aktivací této volby zpùsobíte odeslání zpráv pøipravených k doruèení v "
+"re¾imu DIGEST\n"
+"a zahájíte novou dávku."
+
+#: Mailman/Gui/Digest.py:90
+msgid ""
+"Should Mailman send the next digest right now, if it is not\n"
+" empty?"
+msgstr ""
+"Má Mailman odeslat zprávy v DIGEST dávce právì teï? (Pokud je dávka\n"
+"prázdná, nebude odesláno nic.)"
+
+#: Mailman/Gui/Digest.py:145
+msgid ""
+"The next digest will be sent as volume\n"
+" %(volume)s, number %(number)s"
+msgstr ""
+"Následující digest bude zaslán jako slo¾ka\n"
+" %(volume)s, èíslo %(number)s"
+
+#: Mailman/Gui/Digest.py:150
+msgid "A digest has been sent."
+msgstr "Digest byl odeslán."
+
+#: Mailman/Gui/Digest.py:152
+msgid "There was no digest to send."
+msgstr "®ádné digest dávky neèekají na odeslání."
+
+#: Mailman/Gui/GUIBase.py:149
+msgid "Invalid value for variable: %(property)s"
+msgstr "Chybná hodnota promìnné: %(property)s"
+
+#: Mailman/Gui/GUIBase.py:153
+msgid "Bad email address for option %(property)s: %(val)s"
+msgstr "Chybná emailová adresa pro parametr %(property)s: %(val)s"
+
+#: Mailman/Gui/GUIBase.py:179
+msgid ""
+"The following illegal substitution variables were\n"
+" found in the <code>%(property)s</code> string:\n"
+" <code>%(bad)s</code>\n"
+" <p>Your list may not operate properly until you correct "
+"this\n"
+" problem."
+msgstr ""
+"Byly nalezeny následující neplatné substituce v\n"
+" <code>%(property)s</code> neplatná hodnota:\n"
+" <code>%(bad)s</code>\n"
+" <p>Dokud nebude problém vyøe¹en, konference nemusí fungovat."
+
+#: Mailman/Gui/GUIBase.py:193
+msgid ""
+"Your <code>%(property)s</code> string appeared to\n"
+" have some correctable problems in its new value.\n"
+" The fixed value will be used instead. Please\n"
+" double check that this is what you intended.\n"
+" "
+msgstr ""
+"Va¹e promìnná <code>%(property)s</code> obsahovala\n"
+" chybné hodnoty, které systém nahradil standardními.\n"
+" Prosím, ovìøte si, ¾e tyto hodnoty odpovídají tomu, \n"
+" co jste chtìli nastavit.\n"
+" "
+
+#: Mailman/Gui/General.py:32
+msgid "General Options"
+msgstr "V¹eobecné vlastnosti"
+
+#: Mailman/Gui/General.py:46
+msgid "Conceal the member's address"
+msgstr "Skrýt adresu úèastníka"
+
+#: Mailman/Gui/General.py:47
+msgid "Acknowledge the member's posting"
+msgstr "Pøijmi pøíspìvek úèastníka"
+
+#: Mailman/Gui/General.py:48
+msgid "Do not send a copy of a member's own post"
+msgstr "Nezasílej úèastníkovi kopii jeho vlastních pøíspìvkù"
+
+#: Mailman/Gui/General.py:50
+msgid "Filter out duplicate messages to list members (if possible)"
+msgstr "Filtruj duplicitní pøíspìvky, pokud je to mo¾né"
+
+#: Mailman/Gui/General.py:57
+msgid ""
+"Fundamental list characteristics, including descriptive\n"
+" info and basic behaviors."
+msgstr ""
+"Základní charakteristika konference, vèetnì popisu a základních informací."
+
+#: Mailman/Gui/General.py:60
+msgid "General list personality"
+msgstr "Informaèní stránka konference"
+
+#: Mailman/Gui/General.py:63
+msgid "The public name of this list (make case-changes only)."
+msgstr ""
+"Jméno konference. Je v nìm mo¾né provádìt pouze zmìny velikosti písmen."
+
+#: Mailman/Gui/General.py:64
+msgid ""
+"The capitalization of this name can be changed to make it\n"
+" presentable in polite company as a proper noun, or to make an\n"
+" acronym part all upper case, etc. However, the name will be\n"
+" advertised as the email address (e.g., in subscribe "
+"confirmation\n"
+" notices), so it should <em>not</em> be otherwise altered. "
+"(Email\n"
+" addresses are not case sensitive, but they are sensitive to\n"
+" almost everything else :-)"
+msgstr ""
+"Zmìna velikosti písmen je jediná pøijatelná. Toto jméno bude pou¾ito v "
+"odkazech na konferenci a budou z nìj generovány html stránky s mailto: "
+"odkazy. Pokud bude jméno zmìnìno, pøes nìj zasílaná po¹ta asi nebude "
+"doruèena Mailmanovi."
+
+#: Mailman/Gui/General.py:73
+msgid ""
+"The list administrator email addresses. Multiple\n"
+" administrator addresses, each on separate line is okay."
+msgstr ""
+"E-mailová adresa administrátora konference. Pokud potøebujete zadat více "
+"adres, uvádìjte ka¾dou na nový øádek."
+
+#: Mailman/Gui/General.py:76
+msgid ""
+"There are two ownership roles associated with each mailing\n"
+" list. The <em>list administrators</em> are the people who "
+"have\n"
+" ultimate control over all parameters of this mailing list. "
+"They\n"
+" are able to change any list configuration variable available\n"
+" through these administration web pages.\n"
+"\n"
+" <p>The <em>list moderators</em> have more limited permissions;\n"
+" they are not able to change any list configuration variable, "
+"but\n"
+" they are allowed to tend to pending administration requests,\n"
+" including approving or rejecting held subscription requests, "
+"and\n"
+" disposing of held postings. Of course, the <em>list\n"
+" administrators</em> can also tend to pending requests.\n"
+"\n"
+" <p>In order to split the list ownership duties into\n"
+" administrators and moderators, you must\n"
+" <a href=\"passwords\">set a separate moderator password</a>,\n"
+" and also provide the <a href=\"?VARHELP=general/moderator"
+"\">email\n"
+" addresses of the list moderators</a>. Note that the field you\n"
+" are changing here specifies the list administrators."
+msgstr ""
+"Ka¾dá konference mù¾e mít administrátora a moderátora.\n"
+"<em>Administrátor</em> má úplnou kontrolu na konfigurací konference.\n"
+"Oproti tomu <em>moderátor</em> mù¾e jen povolovat nebo zamítat pøíspìvky.\n"
+"<em>Administrátor</em> mù¾e samozøejmì o pøíspìvcích rozhodovat také.\n"
+"\n"
+"Pokud chcete zalo¾it moderátora, vyplòte do okénka jeho <a href=\"?"
+"VARHELP=general/moderator\">emailovou adresu</a> a\n"
+"<a href=\"passwords\">zadejte heslo moderátora</a>. Moderátorù mù¾e být, "
+"stejnì\n"
+"jako administrátorù, více. Pozor, zde zmìníte adresu administrátora."
+
+#: Mailman/Gui/General.py:97
+msgid ""
+"The list moderator email addresses. Multiple\n"
+" moderator addresses, each on separate line is okay."
+msgstr ""
+"E-mailová adresa moderátora konference. Pokud potøebujete zadat více adres, "
+"uvádìjte ka¾dou na nový øádek."
+
+#: Mailman/Gui/General.py:100
+msgid ""
+"There are two ownership roles associated with each mailing\n"
+" list. The <em>list administrators</em> are the people who "
+"have\n"
+" ultimate control over all parameters of this mailing list. "
+"They\n"
+" are able to change any list configuration variable available\n"
+" through these administration web pages.\n"
+"\n"
+" <p>The <em>list moderators</em> have more limited permissions;\n"
+" they are not able to change any list configuration variable, "
+"but\n"
+" they are allowed to tend to pending administration requests,\n"
+" including approving or rejecting held subscription requests, "
+"and\n"
+" disposing of held postings. Of course, the <em>list\n"
+" administrators</em> can also tend to pending requests.\n"
+"\n"
+" <p>In order to split the list ownership duties into\n"
+" administrators and moderators, you must\n"
+" <a href=\"passwords\">set a separate moderator password</a>,\n"
+" and also provide the email addresses of the list moderators in\n"
+" this section. Note that the field you are changing here\n"
+" specifies the list moderators."
+msgstr ""
+"Ka¾dá konference mù¾e mít administrátora a moderátora.\n"
+"Administrátor má úplnou kontrolu na konfigurací konference.\n"
+"Oproti tomu moderátor mù¾e jen povolovat nebo zamítat pøíspìvky.\n"
+"Administrátor mù¾e samozøejmì o pøíspìvcích rozhodovat také.\n"
+"\n"
+"Pokud chcete zalo¾it moderátora, vyplòte do okénka jeho emailovou adresu\n"
+"a zadejte heslo. "
+
+#: Mailman/Gui/General.py:121
+msgid "A terse phrase identifying this list."
+msgstr "Krátké heslo identifikující konferenci"
+
+#: Mailman/Gui/General.py:123
+msgid ""
+"This description is used when the mailing list is listed with\n"
+" other mailing lists, or in headers, and so forth. It "
+"should\n"
+" be as succinct as you can get it, while still identifying "
+"what\n"
+" the list is."
+msgstr ""
+"Tento popis bude zobrazen v¹ude tam, kde je to vhodné. Mìl by být co "
+"nejkrat¹í a souèasnì nejúdernìj¹í."
+
+#: Mailman/Gui/General.py:129
+msgid ""
+"An introductory description - a few paragraphs - about the\n"
+" list. It will be included, as html, at the top of the "
+"listinfo\n"
+" page. Carriage returns will end a paragraph - see the details\n"
+" for more info."
+msgstr ""
+"Nìkolik slov o konferenci. Tento text bude zobrazen jako html stránka na "
+"zaèátku stránky listinfo. Znaky nový øádek budou konvertovány do znakù "
+"zahajujících odstavec."
+
+#: Mailman/Gui/General.py:133
+msgid ""
+"The text will be treated as html <em>except</em> that\n"
+" newlines will be translated to &lt;br&gt; - so you can use "
+"links,\n"
+" preformatted text, etc, but don't put in carriage returns "
+"except\n"
+" where you mean to separate paragraphs. And review your changes "
+"-\n"
+" bad html (like some unterminated HTML constructs) can prevent\n"
+" display of the entire listinfo page."
+msgstr ""
+"Tento text bude interpretován jako HTML. <em>Kromì</em> znakù nový øádek, "
+"které budou konvertovány do znakù nový odstavec. Mù¾ete pou¾ívat odkazy, "
+"pøedformátovaný text a tak podobnì s výhradou, ¾e znaky nový øádek musí "
+"oddìlovat odstavce."
+
+#: Mailman/Gui/General.py:141
+msgid "Prefix for subject line of list postings."
+msgstr "Prefix, který bude pøidán do subjektu ka¾dého rozesílaného pøíspìvku."
+
+#: Mailman/Gui/General.py:142
+msgid ""
+"This text will be prepended to subject lines of messages\n"
+" posted to the list, to distinguish mailing list messages in in\n"
+" mailbox summaries. Brevity is premium here, it's ok to "
+"shorten\n"
+" long mailing list names to something more concise, as long as "
+"it\n"
+" still identifies the mailing list."
+msgstr ""
+"Tento text bude uvozovat subjekt ka¾dé zprávy. Asi by bylo vhodné, aby mìl "
+"vztah ke konferenci, ale mìl by být krat¹í, aby zbyteènì neubíral místo."
+
+#: Mailman/Gui/General.py:149
+msgid ""
+"Hide the sender of a message, replacing it with the list\n"
+" address (Removes From, Sender and Reply-To fields)"
+msgstr ""
+"Skryj pùvodního autora pøíspìvku a nahraï jej adresou konference. (Vztahuje "
+"se na adresy v From, Sender a Reply-To.)"
+
+#: Mailman/Gui/General.py:152
+msgid "<tt>Reply-To:</tt> header munging"
+msgstr "Nastavovat hlavièku <tt>Reply-To:</tt>."
+
+#: Mailman/Gui/General.py:155
+msgid ""
+"Should any existing <tt>Reply-To:</tt> header found in the\n"
+" original message be stripped? If so, this will be done\n"
+" regardless of whether an explict <tt>Reply-To:</tt> header is\n"
+" added by Mailman or not."
+msgstr ""
+"Má být pøed pøidáním vlastní hlavièky <tt>Reply-To:</tt> z konfigurace "
+"konference odstranìna existující,\n"
+" hlavièka <tt>Reply-To:</tt>?"
+
+#: Mailman/Gui/General.py:161
+msgid "Explicit address"
+msgstr "Konkrétní adresa"
+
+#: Mailman/Gui/General.py:161
+msgid "Poster"
+msgstr "Pøispìvateli"
+
+#: Mailman/Gui/General.py:161
+msgid "This list"
+msgstr "Tato konference"
+
+#: Mailman/Gui/General.py:162
+msgid ""
+"Where are replies to list messages directed?\n"
+" <tt>Poster</tt> is <em>strongly</em> recommended for most "
+"mailing\n"
+" lists."
+msgstr ""
+"Budou odpovìdi adresovány do konference, nebo pøispìvateli? Volba "
+"<tt>Pøispìvateli</tt> je <em>dùraznì</em> doporuèena. (Tento ponìkud "
+"kryptický text je o poli Reply-To:, i kdy¾ to anglický originál zaml¾uje)"
+
+#: Mailman/Gui/General.py:167
+msgid ""
+"This option controls what Mailman does to the\n"
+" <tt>Reply-To:</tt> header in messages flowing through this\n"
+" mailing list. When set to <em>Poster</em>, no <tt>Reply-To:</"
+"tt>\n"
+" header is added by Mailman, although if one is present in the\n"
+" original message, it is not stripped. Setting this value to\n"
+" either <em>This list</em> or <em>Explicit address</em> causes\n"
+" Mailman to insert a specific <tt>Reply-To:</tt> header in all\n"
+" messages, overriding the header in the original message if\n"
+" necessary (<em>Explicit address</em> inserts the value of <a\n"
+" href=\"?VARHELP=general/reply_to_address\">reply_to_address</"
+"a>).\n"
+" \n"
+" <p>There are many reasons not to introduce or override the\n"
+" <tt>Reply-To:</tt> header. One is that some posters depend on\n"
+" their own <tt>Reply-To:</tt> settings to convey their valid\n"
+" return address. Another is that modifying <tt>Reply-To:</tt>\n"
+" makes it much more difficult to send private replies. See <a\n"
+" href=\"http://www.unicom.com/pw/reply-to-harmful.html\">`Reply-"
+"To'\n"
+" Munging Considered Harmful</a> for a general discussion of "
+"this\n"
+" issue. See <a\n"
+" href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml"
+"\">Reply-To\n"
+" Munging Considered Useful</a> for a dissenting opinion.\n"
+"\n"
+" <p>Some mailing lists have restricted posting privileges, with "
+"a\n"
+" parallel list devoted to discussions. Examples are `patches' "
+"or\n"
+" `checkin' lists, where software changes are posted by a "
+"revision\n"
+" control system, but discussion about the changes occurs on a\n"
+" developers mailing list. To support these types of mailing\n"
+" lists, select <tt>Explicit address</tt> and set the\n"
+" <tt>Reply-To:</tt> address below to point to the parallel\n"
+" list."
+msgstr ""
+"Volí jak se bude Mailman chovat k hlavièce <tt>Reply-To:</tt>.\n"
+"Pokud je nastavena na <em>Pøispìvatel</em> není hlavièka <tt>Reply-To:</tt>\n"
+"ke zprávì pøidána a v pøípadì, ¾e ji¾ existuje není nijak mìnìna.\n"
+"Nastavením buï na <em>Tato konference</em> nebo <em>Explicitní adresa</em>\n"
+"bude zaji¹tìno, ¾e Mailman hlavièku nastaví vlastní. Ve druhém pøípadì\n"
+"je pou¾ita adresa z volby <a\n"
+"href=\"?VARHELP=general/reply_to_address\">Adresa pro odpovìï</a>).\n"
+" \n"
+"\n"
+"<p>Existuje mnoho dùvodù, proè není správné mìnit nebo nastavovat "
+"hlavièku<tt>Reply-To:</tt>.\n"
+"Hlavní je, ¾e nìkteøí pøispìvatelé potøebují mít zachovánu hlavièku "
+"<tt>Reply-To:</tt>\n"
+"a mít ji nastavenu na platnou zpáteèní adresu. Dal¹í je, ¾e zmìnou \n"
+"<tt>Reply-To:</tt> zkomplikujete odpovídání na adresu odesílatele, pokud "
+"nìkdo nechce\n"
+"odpovídat do konference. Pro dal¹í informace nahlédnìte do \n"
+"<a href=\"http://www.unicom.com/pw/reply-to-harmful.html\">`Reply-To' "
+"Munging\n"
+"Considered Harmful</a>, kde je detailnì probráno, jak se má pou¾ívat a "
+"zpracovávat\n"
+"tato hlavièka. Dal¹í zajímavé informace jsou na <a\n"
+"href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml\">Reply-To\n"
+"Munging Considered Useful</a>.\n"
+"\n"
+"<p>Nìkteré konference mají omezenou mo¾nost pøispívat s tím,\n"
+"¾e pro diskusi je zøízena paralelní konference.\n"
+"Napøíklad konference, kam jsou zasílány informace z CVS nebo bugreporty\n"
+"jsou obsluhovány automatem a vývojáøi mohou diskutovat na dané téma jinde.\n"
+"Pokud vytváøíte takovou konferenci nastavte zde adresu pro hlavièku \n"
+"<tt>Reply-To:</tt>. Souèasnì musíte v parametru <tt>odpovìï do konference</"
+"tt>\n"
+"nastavit volbu <tt>Explicitní adresa</tt>.\n"
+"\n"
+"<p>Pozor: Pokud pøíspìvek obsahuje hlavièku <tt>Reply-To:</tt>\n"
+"její obsah nebude zmìnìn."
+
+#: Mailman/Gui/General.py:199
+msgid "Explicit <tt>Reply-To:</tt> header."
+msgstr "Nastavovat hlavièku <tt>Reply-To:</tt>."
+
+#: Mailman/Gui/General.py:201
+msgid ""
+"This is the address set in the <tt>Reply-To:</tt> header\n"
+" when the <a\n"
+" href=\"?VARHELP=general/reply_goes_to_list"
+"\">reply_goes_to_list</a>\n"
+" option is set to <em>Explicit address</em>.\n"
+"\n"
+" <p>There are many reasons not to introduce or override the\n"
+" <tt>Reply-To:</tt> header. One is that some posters depend on\n"
+" their own <tt>Reply-To:</tt> settings to convey their valid\n"
+" return address. Another is that modifying <tt>Reply-To:</tt>\n"
+" makes it much more difficult to send private replies. See <a\n"
+" href=\"http://www.unicom.com/pw/reply-to-harmful.html\">`Reply-"
+"To'\n"
+" Munging Considered Harmful</a> for a general discussion of "
+"this\n"
+" issue. See <a\n"
+" href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml"
+"\">Reply-To\n"
+" Munging Considered Useful</a> for a dissenting opinion.\n"
+"\n"
+" <p>Some mailing lists have restricted posting privileges, with "
+"a\n"
+" parallel list devoted to discussions. Examples are `patches' "
+"or\n"
+" `checkin' lists, where software changes are posted by a "
+"revision\n"
+" control system, but discussion about the changes occurs on a\n"
+" developers mailing list. To support these types of mailing\n"
+" lists, specify the explicit <tt>Reply-To:</tt> address here. "
+"You\n"
+" must also specify <tt>Explicit address</tt> in the\n"
+" <tt>reply_goes_to_list</tt>\n"
+" variable.\n"
+"\n"
+" <p>Note that if the original message contains a\n"
+" <tt>Reply-To:</tt> header, it will not be changed."
+msgstr ""
+"Toto je adresa na kterou je nastavena hlavièka <tt>Reply-To:</tt> \n"
+"pokud je volba <a href=\"?VARHELP=general/reply_goes_to_list\">odpovìï do "
+"konference</a>\n"
+"nastavena na <em>konkrétní adresu</em>.\n"
+"\n"
+"<p>Existuje mnoho dùvodù, proè není správné mìnit nebo nastavovat "
+"hlavièku<tt>Reply-To:</tt>.\n"
+"Hlavní je, ¾e nìkteøí pøispìvatelé potøebují mít zachovánu hlavièku "
+"<tt>Reply-To:</tt>\n"
+"a mít ji nastavenu na platnou zpáteèní adresu. Dal¹í je, ¾e zmìnou \n"
+"<tt>Reply-To:</tt> zkomplikujete odpovídání na adresu odesílatele, pokud "
+"nìkdo nechce\n"
+"odpovídat do konference. Pro dal¹í informace nahlédnìte do \n"
+"<a href=\"http://www.unicom.com/pw/reply-to-harmful.html\">`Reply-To' "
+"Munging\n"
+"Considered Harmful</a>, kde je detailnì probráno, jak se má pou¾ívat a "
+"zpracovávat\n"
+"tato hlavièka. Dal¹í zajímavé informace jsou na <a\n"
+"href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml\">Reply-To\n"
+"Munging Considered Useful</a>.\n"
+"\n"
+"<p>Nìkteré konference mají omezenou mo¾nost pøispívat s tím,\n"
+"¾e pro diskusi je zøízena paralelní konference.\n"
+"Napøíklad konference, kam jsou zasílány informace z CVS nebo bugreporty\n"
+"jsou obsluhovány automatem a vývojáøi mohou diskutovat na dané téma jinde.\n"
+"Pokud vytváøíte takovou konferenci nastavte zde adresu pro hlavièku \n"
+"<tt>Reply-To:</tt>. Souèasnì musíte v parametru <tt>odpovìï do konference</"
+"tt>\n"
+"nastavit volbu <tt>Explicitní adresa</tt>.\n"
+"\n"
+"<p>Pozor: Pokud pøíspìvek obsahuje hlavièku <tt>Reply-To:</tt>\n"
+"její obsah nebude zmìnìn."
+
+#: Mailman/Gui/General.py:230
+msgid "Umbrella list settings"
+msgstr "Konfigurace de¹tníkové konference"
+
+#: Mailman/Gui/General.py:233
+msgid ""
+"Send password reminders to, eg, \"-owner\" address instead of\n"
+" directly to user."
+msgstr "Zasílat upomínky hesel na adresu \"-owner\" místo pøímo u¾ivateli?"
+
+#: Mailman/Gui/General.py:236
+msgid ""
+"Set this to yes when this list is intended to cascade only\n"
+" to other mailing lists. When set, meta notices like\n"
+" confirmations and password reminders will be directed to an\n"
+" address derived from the member's address - it will have the\n"
+" value of \"umbrella_member_suffix\" appended to the member's\n"
+" account name."
+msgstr ""
+"Nastavte tuto polo¾ku, pokud je tato konference konferencí zastøe¹ující "
+"dal¹í podøízené\n"
+"konference, jejími úèastníky jsou tedy jen jiné konference. Takové "
+"konferenci budeme hezky \n"
+"èesky øíkat de¹tníková konference. Výsledkem nastavení této volby bude, ¾e "
+"administrativní \n"
+"zále¾itosti nebudou zasílány na adresu úèastníka, ale na adresu, které "
+"vznikne z adresy \n"
+"úèastníka pøidáním textu uvedeného v poli \"de¹tníkový sufix\"."
+
+#: Mailman/Gui/General.py:244
+msgid ""
+"Suffix for use when this list is an umbrella for other\n"
+" lists, according to setting of previous \"umbrella_list\"\n"
+" setting."
+msgstr ""
+"Sufix, který bude pøidán ke jménu úèastníka\n"
+"konference v de¹tníkové konfiguraci. "
+
+#: Mailman/Gui/General.py:248
+msgid ""
+"When \"umbrella_list\" is set to indicate that this list has\n"
+" other mailing lists as members, then administrative notices "
+"like\n"
+" confirmations and password reminders need to not be sent to "
+"the\n"
+" member list addresses, but rather to the owner of those member\n"
+" lists. In that case, the value of this setting is appended to\n"
+" the member's account name for such notices. `-owner' is the\n"
+" typical choice. This setting has no effect when \"umbrella_list"
+"\"\n"
+" is \"No\"."
+msgstr ""
+"Pokud je nastaveno, ¾e konference je \"de¹tníková\", znamená to, ¾e jejími "
+"úèastníky jsou pouze jiné konference. To znamená, ¾e v¹echny zprávy,které "
+"souvisí se správou úèastnického konta nejsou zasílány a adresu úèastníka "
+"konference, ale na adresu, která vznikne pøidáním zde uvedeného øetìzce "
+"adrese úèastníka. Témìø výhradnì se pou¾ívá øetìzec -owner. Pokud toto není "
+"de¹tníková konference, nemá tato volba ¾ádný efekt."
+
+#: Mailman/Gui/General.py:260
+msgid "Send monthly password reminders?"
+msgstr "Zasílat ka¾dý mìsíc upozornìní na hesla?"
+
+#: Mailman/Gui/General.py:262
+msgid ""
+"Turn this on if you want password reminders to be sent once\n"
+" per month to your members. Note that members may disable "
+"their\n"
+" own individual password reminders."
+msgstr ""
+"Pokud bude tato volba aktivní, budou úèastníci konference dostávat\n"
+" jednou mìsíènì upozornìní obsahující jejich hesla a seznam\n"
+" konferencí do kterých jsou pøihlá¹eni. Zasílání tìchto zpráv "
+"si\n"
+" mohou individuálnì vypnout v konfiguraci èlena."
+
+#: Mailman/Gui/General.py:267
+msgid ""
+"List-specific text prepended to new-subscriber welcome\n"
+" message"
+msgstr ""
+"Text, který bude zaslán úèastníkovi konference po pøihlá¹ení. Nemusí "
+"obsahovat pokyny pro práci s Mailmanem, proto¾e ty budou na konec zprávy "
+"pøidány automaticky. Spí¹e by se mìlo jednat o text popisující o èem "
+"konference je, co se v ní smí a co ne a tak podobnì."
+
+#: Mailman/Gui/General.py:270
+msgid ""
+"This value, if any, will be added to the front of the\n"
+" new-subscriber welcome message. The rest of the welcome "
+"message\n"
+" already describes the important addresses and URLs for the\n"
+" mailing list, so you don't need to include any of that kind of\n"
+" stuff here. This should just contain mission-specific kinds "
+"of\n"
+" things, like etiquette policies or team orientation, or that "
+"kind\n"
+" of thing.\n"
+"\n"
+" <p>Note that this text will be wrapped, according to the\n"
+" following rules:\n"
+" <ul><li>Each paragraph is filled so that no line is longer "
+"than\n"
+" 70 characters.\n"
+" <li>Any line that begins with whitespace is not filled.\n"
+" <li>A blank line separates paragraphs.\n"
+" </ul>"
+msgstr ""
+"Tento text bude odeslán jako první èást zprávy obsahující pokyny pro práci s "
+"Mailmanem. Pokyny pro ovládání Mailmanu budou pøipojeny k této zprávì, tak¾e "
+"není nutné, aby byly zmiòovány v tomto textu."
+
+#: Mailman/Gui/General.py:287
+msgid "Send welcome message to newly subscribed members?"
+msgstr "Poslat novì pøihlá¹eným uvítací zprávu?"
+
+#: Mailman/Gui/General.py:288
+msgid ""
+"Turn this off only if you plan on subscribing people manually\n"
+" and don't want them to know that you did so. This option is "
+"most\n"
+" useful for transparently migrating lists from some other "
+"mailing\n"
+" list manager to Mailman."
+msgstr ""
+"Tuto volbu vypnìte jedinì v pøípadì, ¾e nemáte zájem, aby úèastník vìdìl o "
+"svém pøihlá¹ení.\n"
+"Vhodné pou¾ití je tøeba pøi zmìnì listserveru, kdy nepotøebujete, aby "
+"úèastníci byli o zmìnì informováni."
+
+#: Mailman/Gui/General.py:294
+msgid ""
+"Text sent to people leaving the list. If empty, no special\n"
+" text will be added to the unsubscribe message."
+msgstr ""
+"Text, který bude zaslán úèastníkùm, kteøí se odhla¹ují z konference. Ke "
+"zprávì nebude pøidán ¾ádný dal¹í text. (Uvítací zpráva obsahuje popis práce "
+"s Mailmanem, ale odhla¹ovací nikoliv.)"
+
+#: Mailman/Gui/General.py:298
+msgid "Send goodbye message to members when they are unsubscribed?"
+msgstr "Poslat pøi odhlá¹ení louèící zprávu?"
+
+#: Mailman/Gui/General.py:301
+msgid ""
+"Should the list moderators get immediate notice of new\n"
+" requests, as well as daily notices about collected ones?"
+msgstr ""
+"Mají být adminitrátorovi zasílány administrativní po¾adavky ihned a nebo jen "
+"jednou dennì?"
+
+#: Mailman/Gui/General.py:304
+msgid ""
+"List moderators (and list administrators) are sent daily\n"
+" reminders of requests pending approval, like subscriptions to "
+"a\n"
+" moderated list, or postings that are being held for one reason "
+"or\n"
+" another. Setting this option causes notices to be sent\n"
+" immediately on the arrival of new requests as well."
+msgstr ""
+"Správci konference jsou periodicky zasílána upozornìní, aby odbavil èekající "
+"pøíspìvky.Pokud vyberete tuto volbu, budou upozornìní zasílána okam¾itì pøi "
+"vzniku po¾adavku.Jinak budou upozornìní zasílána jednou dennì."
+
+#: Mailman/Gui/General.py:311
+msgid ""
+"Should administrator get notices of subscribes and\n"
+" unsubscribes?"
+msgstr ""
+"Má být administrátor informován o pøihla¹ování a odhla¹ování úèastníkù?"
+
+#: Mailman/Gui/General.py:316
+msgid "Send mail to poster when their posting is held for approval?"
+msgstr ""
+"Informovat pøispìvatele, ¾e jeho pøíspìvek byl pozastaven a pøedán ke "
+"schválení administrátorovi?"
+
+#: Mailman/Gui/General.py:318
+msgid ""
+"Approval notices are sent when mail triggers certain of the\n"
+" limits <em>except</em> routine list moderation and spam "
+"filters,\n"
+" for which notices are <em>not</em> sent. This option "
+"overrides\n"
+" ever sending the notice."
+msgstr ""
+"Upozornìní jsou zasílána kdy¾ pøíspìvek poru¹í nìkteré pravidlo pro jeho "
+"pøijetí, <em>kromì</em> pøíspìvkù, které jsou zachyceny proti spamovacími "
+"filtry. Na takové pøíspìvky systém <em>nereaguje</em>."
+
+#: Mailman/Gui/General.py:323
+msgid "Additional settings"
+msgstr "Dal¹í konfiguraèní volby"
+
+#: Mailman/Gui/General.py:326
+msgid "Emergency moderation of all list traffic."
+msgstr "Nouzová moderace v¹ech pøíspìvkù do konference:"
+
+#: Mailman/Gui/General.py:327
+msgid ""
+"When this option is enabled, all list traffic is emergency\n"
+" moderated, i.e. held for moderation. Turn this option on when\n"
+" your list is experiencing a flamewar and you want a cooling "
+"off\n"
+" period."
+msgstr ""
+"Pokud je tato volba povolena, jsou v¹echny pøíspìvky do konference\n"
+"automaticky pozastaveny a èekají na souhlas moderátora. Tato volba je "
+"vhodná,\n"
+"pokud v konferenci nastane flamewar a chcete ji nechat vychladnout."
+
+#: Mailman/Gui/General.py:339
+msgid ""
+"Default options for new members joining this list.<input\n"
+" type=\"hidden\" name=\"new_member_options\" value=\"ignore\">"
+msgstr ""
+"Výchozí hodnoty pro úèastníky, kteøí se pøihlásí do konference.<input\n"
+" type=\"hidden\" name=\"new_member_options\" value=\"ignore\">"
+
+#: Mailman/Gui/General.py:342
+msgid ""
+"When a new member is subscribed to this list, their initial\n"
+" set of options is taken from the this variable's setting."
+msgstr ""
+"Kdy¾ se do konference pøihlásí nový úèastník,\n"
+" výchozí hodnoty jeho úètu budou nastaveny\n"
+" podle tìchto promìnných."
+
+#: Mailman/Gui/General.py:346
+msgid ""
+"(Administrivia filter) Check postings and intercept ones\n"
+" that seem to be administrative requests?"
+msgstr ""
+"(Administrivia filter) Kontrolovat pøíspìvky, jestli se nejedná \n"
+"o pøíkazy pro Mailman, zaslané omylem na adresu konference?"
+
+#: Mailman/Gui/General.py:349
+msgid ""
+"Administrivia tests will check postings to see whether it's\n"
+" really meant as an administrative request (like subscribe,\n"
+" unsubscribe, etc), and will add it to the the administrative\n"
+" requests queue, notifying the administrator of the new "
+"request,\n"
+" in the process."
+msgstr ""
+"Tento filtr hledá na zaèátku pøíspìvkù øádky, které vypadají jako pøíkazy "
+"pro listserver. Pokud je takový text nalezen je distribuce zprávy pozdr¾ena "
+"a¾ do rozhodnutí administrátora."
+
+#: Mailman/Gui/General.py:356
+msgid ""
+"Maximum length in kilobytes (KB) of a message body. Use 0\n"
+" for no limit."
+msgstr ""
+"Maximální velikost pøíspìvku v KB. Pokud nemá být velikost omezena, nastavte "
+"ji na 0."
+
+#: Mailman/Gui/General.py:360
+msgid "Host name this list prefers for email."
+msgstr ""
+"Jméno serveru, na kterém bì¾í tato konference. Pozor, pokud se bude li¹it od "
+"jména, pøes které se zobrazuje seznam konferencí, konference v nìm nebude "
+"uvedena."
+
+#: Mailman/Gui/General.py:362
+msgid ""
+"The \"host_name\" is the preferred name for email to\n"
+" mailman-related addresses on this host, and generally should "
+"be\n"
+" the mail host's exchanger address, if any. This setting can "
+"be\n"
+" useful for selecting among alternative names of a host that "
+"has\n"
+" multiple addresses."
+msgstr ""
+"Volba jméno serveru je urèena pro nastavení adresy, kterou bude Mailman "
+"pou¾ívat jako souèást adresy odesílatele. Má být nastavena na jména MX "
+"serveru,resp. na jméno domény, kde Mailman bì¾í. Tato volba mù¾e být "
+"u¾iteèná pokud má server, kde Mailman bì¾í více jmen."
+
+#: Mailman/Gui/General.py:374
+msgid ""
+"Should messages from this mailing list include the\n"
+" <a href=\"http://www.faqs.org/rfcs/rfc2369.html\">RFC 2369</"
+"a>\n"
+" (i.e. <tt>List-*</tt>) headers? <em>Yes</em> is highly\n"
+" recommended."
+msgstr ""
+"Mají pøíspìvky rozesílané touto konferencí obsahovat hlavièky podle \n"
+" <a href=\"http://www.faqs.org/rfc/rfc2369.html\">RFC 2369</"
+"a>\n"
+" (to znamená <tt>List-*</tt>)? <em>Ano</em> je velice "
+"silnì\n"
+" doporuèeno."
+
+#: Mailman/Gui/General.py:379
+msgid ""
+"RFC 2369 defines a set of List-* headers that are\n"
+" normally added to every message sent to the list "
+"membership.\n"
+" These greatly aid end-users who are using standards "
+"compliant\n"
+" mail readers. They should normally always be enabled.\n"
+"\n"
+" <p>However, not all mail readers are standards compliant "
+"yet,\n"
+" and if you have a large number of members who are using\n"
+" non-compliant mail readers, they may be annoyed at these\n"
+" headers. You should first try to educate your members as "
+"to\n"
+" why these headers exist, and how to hide them in their "
+"mail\n"
+" clients. As a last resort you can disable these headers, "
+"but\n"
+" this is not recommended (and in fact, your ability to "
+"disable\n"
+" these headers may eventually go away)."
+msgstr ""
+"RFC 2369 definuje sadu hlavièek, které jsou pøidávány ke ka¾dému\n"
+"distribuovanému pøíspìvku. Pokud úèastník pou¾ívá inteligentní\n"
+"mailový klient, mù¾e se podle informací z tìchto hlavièek do konference\n"
+"pøihlásit, odhlásit a nebo nav¹tívit archiv.\n"
+"\n"
+"<p>Bohu¾el ne v¹ichni klienti to podporují. Pokus si budou úèastníci \n"
+"stì¾ovat je potøeba jim nejdøíve vysvìtlit jak se hlavièky skrývají, aby\n"
+"je nevidìli a teprve v pøípadì, ¾e nebude jiná mo¾nost tuto volbu potlaèit."
+
+#: Mailman/Gui/General.py:397
+msgid "Should postings include the <tt>List-Post:</tt> header?"
+msgstr "Mají pøíspìvky obsahovat hlavièku <tt>List-Post:</tt>?"
+
+#: Mailman/Gui/General.py:398
+msgid ""
+"The <tt>List-Post:</tt> header is one of the headers\n"
+" recommended by\n"
+" <a href=\"http://www.faqs.org/rfcs/rfc2369.html\">RFC 2369</"
+"a>.\n"
+" However for some <em>announce-only</em> mailing lists, only a\n"
+" very select group of people are allowed to post to the list; "
+"the\n"
+" general membership is usually not allowed to post. For lists "
+"of\n"
+" this nature, the <tt>List-Post:</tt> header is misleading.\n"
+" Select <em>No</em> to disable the inclusion of this header. "
+"(This\n"
+" does not affect the inclusion of the other <tt>List-*:</tt>\n"
+" headers.)"
+msgstr ""
+"Hlavièka <tt>List-Post:</tt> je jednou z hlavièek doporuèených normou\n"
+" <a href=\"http://www.faqs.org/rfc/rfc2369.html\">RFC 2369</a>.\n"
+" Nicménì nìkteré konference <em>urèené pouze k rozesílání</em> "
+"zpráv,\n"
+" kdy úèastníci nemohou do konference sami pøispívat, mohou "
+"nastavit, ¾e se hlavièka nepou¾ije a tak nebudou úèastníci "
+"mateni. (Nastavení neovlivní ostatní <tt>List-*:</tt>\n"
+" hlavièky.)"
+
+#: Mailman/Gui/General.py:416
+msgid ""
+"<b>real_name</b> attribute not\n"
+" changed! It must differ from the list's name by case\n"
+" only."
+msgstr ""
+"Atribut <b>real_name</b> nebyl zmìnìn. Od jména konference se smí li¹it jen "
+"velikostí písmen."
+
+#: Mailman/Gui/General.py:437
+msgid ""
+"You cannot add a Reply-To: to an explicit\n"
+" address if that address is blank. Resetting these values."
+msgstr ""
+"Namù¾ete nastavovat hlavièku Reply-To: na zadanou adresu,\n"
+" kdy¾ jste ¾ádnou nevyplnili. Vracím nastavení na výchozí hodnotu."
+
+#: Mailman/Gui/Language.py:34
+msgid "Language&nbsp;options"
+msgstr "Podpora&nbsp;lokalizace"
+
+#: Mailman/Gui/Language.py:66
+msgid "Natural language (internationalization) options."
+msgstr "Parametry internacionalizace - komunikace v národních jazycích"
+
+#: Mailman/Gui/Language.py:71
+msgid "Default language for this list."
+msgstr "Jazyk, kterým bude tato konference standardnì mluvit."
+
+#: Mailman/Gui/Language.py:72
+msgid ""
+"This is the default natural language for this mailing list.\n"
+" If <a href=\"?VARHELP=language/available_languages\">more than "
+"one\n"
+" language</a> is supported then users will be able to select "
+"their\n"
+" own preferences for when they interact with the list. All "
+"other\n"
+" interactions will be conducted in the default language. This\n"
+" applies to both web-based and email-based messages, but not to\n"
+" email posted by list members."
+msgstr ""
+"Toto je výchozí jazyk pou¾ívaný pro komunikaci s konferencí.\n"
+" Pokud je v <a href=\"?VARHELP=language/available_languages"
+"\">jazyky k dispozici\n"
+" </a> vybráno více voleb, budou mít úèastníci mo¾nost vybrat si "
+"jazyk ze seznamu \n"
+" Obsahujícího vybrané jazyky. Tam kde není akce vázána na "
+"konkrétního\n"
+" úèastníka, bude komunikace probíhat ve výchozím jazyku."
+
+#: Mailman/Gui/Language.py:82
+msgid "Languages supported by this list."
+msgstr "Jazyk, kterým bude tato konference standardnì mluvit."
+
+#: Mailman/Gui/Language.py:84
+msgid ""
+"These are all the natural languages supported by this list.\n"
+" Note that the\n"
+" <a href=\"?VARHELP=language/preferred_language\">default\n"
+" language</a> must be included."
+msgstr ""
+"Toto je seznam jazykù, které mù¾ete vybrat a umo¾nit tak úèastníkùm jejich "
+"pou¾íváni.\n"
+" Nezapomeòte, ¾e \n"
+" <a href=\"?VARHELP=language/preferred_language\">výchozí\n"
+" jazyk</a> musí být také vybrán."
+
+#: Mailman/Gui/Language.py:90
+msgid "Always"
+msgstr "V¾dy"
+
+#: Mailman/Gui/Language.py:90
+msgid "As needed"
+msgstr "Dle potøeby"
+
+#: Mailman/Gui/Language.py:90
+msgid "Never"
+msgstr "Nikdy"
+
+#: Mailman/Gui/Language.py:91
+msgid ""
+"Encode the\n"
+" <a href=\"?VARHELP=general/subject_prefix\">subject\n"
+" prefix</a> even when it consists of only ASCII characters?"
+msgstr ""
+"Kódovat \n"
+" <a href=\"?VARHELP=general/subject_prefix\">prefix hlavièky\n"
+" subject</a> i kdy¾ obsahuje pouze ASCII znaky?"
+
+#: Mailman/Gui/Language.py:95
+msgid ""
+"If your mailing list's default language uses a non-ASCII\n"
+" character set and the prefix contains non-ASCII characters, "
+"the\n"
+" prefix will always be encoded according to the relevant\n"
+" standards. However, if your prefix contains only ASCII\n"
+" characters, you may want to set this option to <em>Never</em> "
+"to\n"
+" disable prefix encoding. This can make the subject headers\n"
+" slightly more readable for users with mail readers that don't\n"
+" properly handle non-ASCII encodings.\n"
+"\n"
+" <p>Note however, that if your mailing list receives both "
+"encoded\n"
+" and unencoded subject headers, you might want to choose <em>As\n"
+" needed</em>. Using this setting, Mailman will not encode "
+"ASCII\n"
+" prefixes when the rest of the header contains only ASCII\n"
+" characters, but if the original header contains non-ASCII\n"
+" characters, it will encode the prefix. This avoids an "
+"ambiguity\n"
+" in the standards which could cause some mail readers to "
+"display\n"
+" extra, or missing spaces between the prefix and the original\n"
+" header."
+msgstr ""
+"Pokud provozujete konferenci v jazyce, který nepou¾ívá ASCII kódování\n"
+" a prefix pøidaný k poli Subject obsahuje znaky, které "
+"nespadají\n"
+" do èistého ASCII kódování, bude celý Subject zakódován\n"
+" Podle bì¾ných standardù. Nicménì pokud prefix obsahuje pouze\n"
+" ASCII znaky, mo¾ná budete chtít nastavit volbu na <em>Nikdy</"
+"em>\n"
+" co¾ zajistí, ¾e se Subject nebude nikdy kódovat. To mù¾e\n"
+" zajistit, ¾e zpráva bude lépe èitelná pro ty, kteøí mají "
+"star¹í\n"
+" klienty, které neumí èíst korektnì národní znaky.\n"
+"\n"
+" <p>Pokud ale distribuujete pøíspìvky, které mohou v Subjectu\n"
+" obsahovat národní znaky, zvolte volbu <em>Dle\n"
+" potøeby</em>. To zajistí, ¾e Mailman bude kódovat "
+"celé Subjecty, pokud budou obsahovat alespoò jeden národní "
+"znak.\n"
+" Proto¾e mù¾e nastat situace, kdy Subject bude dodán v jiném "
+"kódování,\n"
+" ne¾ pou¾ívá konference, je kódování provádìno nadvakrát, jednou "
+"prefix\n"
+" a za nìj je pøidán originální Obsah Subjectu. To mù¾e u "
+"nìkterých po¹tovních\n"
+" vést k zobrazení mezery mezi prefixem a subjectem, nebo k jinak "
+"pøekvapivému chování. "
+
+#: Mailman/Gui/Membership.py:26
+msgid "Membership&nbsp;Management"
+msgstr "Správa&nbsp;úèastníkù"
+
+#: Mailman/Gui/Membership.py:30
+msgid "Membership&nbsp;List"
+msgstr "Seznam&nbsp;úèastníkù"
+
+#: Mailman/Gui/Membership.py:31
+msgid "Mass&nbsp;Subscription"
+msgstr "Hromadné&nbsp;pøihlá¹ení"
+
+#: Mailman/Gui/Membership.py:32
+msgid "Mass&nbsp;Removal"
+msgstr "Hromadné&nbsp;odhlá¹ení úèastníkù"
+
+#: Mailman/Gui/NonDigest.py:34
+msgid "Non-digest&nbsp;options"
+msgstr "Parametry&nbsp;bì¾ného doruèování"
+
+#: Mailman/Gui/NonDigest.py:42
+msgid "Policies concerning immediately delivered list traffic."
+msgstr "Pravidla vztahující se na pøíspìvky distribuované okam¾itì"
+
+#: Mailman/Gui/NonDigest.py:45
+msgid ""
+"Can subscribers choose to receive mail immediately, rather\n"
+" than in batched digests?"
+msgstr "Mohou si úèastníci zvolit pøímou distribuci místo digestu?"
+
+#: Mailman/Gui/NonDigest.py:52
+msgid "Full Personalization"
+msgstr "Personalizace pøíspìvkù"
+
+#: Mailman/Gui/NonDigest.py:54
+msgid ""
+"Should Mailman personalize each non-digest delivery?\n"
+" This is often useful for announce-only lists, but <a\n"
+" href=\"?VARHELP=nondigest/personalize\">read the details</"
+"a>\n"
+" section for a discussion of important performance\n"
+" issues."
+msgstr ""
+"Má Mailman personifikovat ka¾dou rozeslanou zprávu (kromì digestu)?\n"
+" Tohle mù¾e být u¾iteèné pro konference, kde se zasílají jen "
+"rùzná oznámení, nicménì <a\n"
+" href=\"?VARHELP=nondigest/personalize\">pøeètìte si v "
+"návodu</a>\n"
+" dùle¾ité informace o dopadech na rychlost doruèování. "
+
+#: Mailman/Gui/NonDigest.py:60
+msgid ""
+"Normally, Mailman sends the regular delivery messages to\n"
+" the mail server in batches. This is much more efficent\n"
+" because it reduces the amount of traffic between Mailman "
+"and\n"
+" the mail server.\n"
+"\n"
+" <p>However, some lists can benefit from a more "
+"personalized\n"
+" approach. In this case, Mailman crafts a new message for\n"
+" each member on the regular delivery list. Turning this\n"
+" feature on may degrade the performance of your site, so "
+"you\n"
+" need to carefully consider whether the trade-off is worth "
+"it,\n"
+" or whether there are other ways to accomplish what you "
+"want.\n"
+" You should also carefully monitor your system load to make\n"
+" sure it is acceptable.\n"
+"\n"
+" <p>Select <em>No</em> to disable personalization and send\n"
+" messages to the members in batches. Select <em>Yes</em> "
+"to\n"
+" personalize deliveries and allow additional substitution\n"
+" variables in message headers and footers (see below). In\n"
+" addition, by selecting <em>Full Personalization</em>, the\n"
+" <code>To</code> header of posted messages will be modified "
+"to\n"
+" include the member's address instead of the list's posting\n"
+" address.\n"
+"\n"
+" <p>When personalization is enabled, a few more expansion\n"
+" variables that can be included in the <a\n"
+" href=\"?VARHELP=nondigest/msg_header\">message header</a> "
+"and\n"
+" <a href=\"?VARHELP=nondigest/msg_footer\">message footer</"
+"a>.\n"
+"\n"
+" <p>These additional substitution variables will be "
+"available\n"
+" for your headers and footers, when this feature is "
+"enabled:\n"
+"\n"
+" <ul><li><b>user_address</b> - The address of the user,\n"
+" coerced to lower case.\n"
+" <li><b>user_delivered_to</b> - The case-preserved "
+"address\n"
+" that the user is subscribed with.\n"
+" <li><b>user_password</b> - The user's password.\n"
+" <li><b>user_name</b> - The user's full name.\n"
+" <li><b>user_optionsurl</b> - The url to the user's "
+"option\n"
+" page.\n"
+" </ul>\n"
+" "
+msgstr ""
+"Za normálních okolností pøedává Mailman k doruèení pøíspìvky s celými bloky "
+"adres.\n"
+"To je nejrychlej¹í metoda, která minimalizuje objem komunikace mezi "
+"Mailmanem a SMTP serverem.\n"
+"<p>Nìkdy ale mù¾e být u¾iteèné zasílat ka¾dý pøíspìvek separátnì a vkládat "
+"do nìj informace, \n"
+"které umo¾ní pøesnì zjistit, na kterou adresu úèastníka byl pøíspìvek "
+"zaslán. Pokud se takový\n"
+"pøíspìvek vrátí, nemusí nám vadit, ¾e nám jej vrací nekorektní SMTP server, "
+"který nám vrátil\n"
+"zprávu ve stavu, kdy nemù¾eme zjistit, komu vlastnì zpráva nebyla "
+"doruèena. \n"
+"<p>Nevýhodou tohoto øe¹ení je vysoká re¾ie spojená a bìhem Mailmanu. Pokud "
+"budete\n"
+"pou¾ívat tuto variantu, musíte peèlivì sledovat zátì¾ systému, abyste si "
+"nezpùsobili\n"
+"sami sobì DOS útok. <p>Aktivace této volby zpùsobí dvì vìci. Jednak je "
+"zmìnìna hlavièka <code>To:</code> tak,\n"
+"¾e pøíspìvek vypadá jako zaslaný konkrétnímu úèastníkovi a ne do konference. "
+"Za druhé se pøístupní\n"
+"nìkolik dal¹ích promìnných, které lze pou¾ít pro substituce v <a href=\"?"
+"VARHELP=nondigest/msg_header\">hlavièkách</a> zprávy a nebo v <a href=\"?"
+"VARHELP=nondigest/msg_footer\">patièce</a>.\n"
+"Jedná se o tyto promìnné:\n"
+" <ul><li><b>user_address</b> - Adresa úèastníka konvertovaná "
+"na malá písmena\n"
+" <li><b>user_delivered_to</b> - Adresa úèastníka s "
+"velikostí písmen tak, jak ji uvedl v pøihlá¹ce.\n"
+" <li><b>user_password</b> - Heslo úèastníka.\n"
+" <li><b>user_name</b> - Celé jméno úèastníka.\n"
+" <li><b>user_optionsurl</b> - URL s odkazem na "
+"konfiguraèní stránku úèastníka.\n"
+" </ul>"
+
+#: Mailman/Gui/NonDigest.py:108
+msgid "Header added to mail sent to regular list members"
+msgstr "Hlavièka pøidávaná do pøíspìvkù zasílaných ne-digest úèastníkùm."
+
+#: Mailman/Gui/NonDigest.py:109
+msgid ""
+"Text prepended to the top of every immediately-delivery\n"
+" message. "
+msgstr "Text pøidaný na zaèátek ka¾dé ihned distribuované zprávy."
+
+#: Mailman/Gui/NonDigest.py:114
+msgid "Footer added to mail sent to regular list members"
+msgstr "Patièka pøidaná ke ka¾dé ihned distribuované zprávì."
+
+#: Mailman/Gui/NonDigest.py:115
+msgid ""
+"Text appended to the bottom of every immediately-delivery\n"
+" message. "
+msgstr "Text pøidaný na konec ihned rozesílaných pøíspìvkù."
+
+#: Mailman/Gui/Passwords.py:27
+msgid "Passwords"
+msgstr "Hesla"
+
+#: Mailman/Gui/Privacy.py:28
+msgid "Privacy options"
+msgstr "Soukromí"
+
+#: Mailman/Gui/Privacy.py:32
+msgid "Subscription&nbsp;rules"
+msgstr "®ádosti o&nbsp;pøihlá¹ení"
+
+#: Mailman/Gui/Privacy.py:33
+msgid "Sender&nbsp;filters"
+msgstr "Filtrace&nbsp;odesílatelù"
+
+#: Mailman/Gui/Privacy.py:34
+msgid "Recipient&nbsp;filters"
+msgstr "Filtrace&nbsp;adresátù"
+
+#: Mailman/Gui/Privacy.py:35
+msgid "Spam&nbsp;filters"
+msgstr "Filtrace&nbsp;spamu"
+
+#: Mailman/Gui/Privacy.py:49 Mailman/Gui/Usenet.py:61
+msgid "None"
+msgstr "nic"
+
+#: Mailman/Gui/Privacy.py:50 Mailman/Gui/Privacy.py:73
+msgid "Confirm"
+msgstr "Potvrï"
+
+#: Mailman/Gui/Privacy.py:51 Mailman/Gui/Privacy.py:74
+msgid "Require approval"
+msgstr "Vy¾aduj schválení"
+
+#: Mailman/Gui/Privacy.py:52 Mailman/Gui/Privacy.py:75
+msgid "Confirm and approve"
+msgstr "potvrzení úèastníkem a schválení moderátorem"
+
+#: Mailman/Gui/Privacy.py:54 Mailman/Gui/Privacy.py:77
+msgid "What steps are required for subscription?<br>"
+msgstr "Co je vy¾adováno pro pøihlá¹ení úèastníka?"
+
+#: Mailman/Gui/Privacy.py:55
+msgid ""
+"None - no verification steps (<em>Not\n"
+" Recommended </em>)<br>\n"
+" Confirm (*) - email confirmation step required "
+"<br>\n"
+" Require approval - require list administrator\n"
+" Approval for subscriptions <br>\n"
+" Confirm and approve - both confirm and approve\n"
+" \n"
+" <p>(*) when someone requests a subscription,\n"
+" Mailman sends them a notice with a unique\n"
+" subscription request number that they must reply "
+"to\n"
+" in order to subscribe.<br>\n"
+"\n"
+" This prevents mischievous (or malicious) people\n"
+" from creating subscriptions for others without\n"
+" their consent."
+msgstr ""
+"®ádné - není vy¾adováno ovìøení (<em>Dùraznì nedoporuèujeme</em>)"
+"<br>Potvrdit (*) - je vy¾adováno ovìøení zasláním emailové zprávy."
+"<br>Vy¾adovat souhlas - pro pøihlá¹ení je nutný souhlas správce "
+"konference<br>Potvrdit + odsouhlasit - je nutný jak souhlas správce "
+"konference, tak ovìøení zasláním emailu.<p> (*) Pokud se nìkdo chce "
+"pøihlásit do konference Mailman mu za¹le na jeho emailovou adresu "
+"upozornìní. Upozornìní obsahuje unikátní identifikaèní èíslo a adresát musí "
+"èíslo zaslat zpìt - odpovìdìt na email, aby byl do konference pøihlá¹en. "
+"<br>Tím je zaji¹tìno, ¾e nebude mo¾né nìkoho pøihlásit do konference bez "
+"jeho vìdomí a ¾e do konference nebude zaøazena neplatná emailová adresa."
+
+#: Mailman/Gui/Privacy.py:78
+msgid ""
+"Confirm (*) - email confirmation required <br>\n"
+" Require approval - require list administrator\n"
+" approval for subscriptions <br>\n"
+" Confirm and approve - both confirm and approve\n"
+" \n"
+" <p>(*) when someone requests a subscription,\n"
+" Mailman sends them a notice with a unique\n"
+" subscription request number that they must reply "
+"to\n"
+" in order to subscribe.<br> This prevents\n"
+" mischievous (or malicious) people from creating\n"
+" subscriptions for others without their consent."
+msgstr ""
+"potvrzení (*) - je vy¾adováno zaslání potvrzujícího emailu<br>vy¾aduj "
+"souhlas - èekej na souhlas moderátora<br>potvrzení + souhlas - je vy¾adován "
+"jak souhlas administrátora, tak potvrzení emailem<p> (*) Pokud se nìkdo "
+"chce pøihlásit Mailman mu za¹le email s unikátním èíslem. Úèastník musí na "
+"tento email odpovìdìt - zaslat èíslo zpìt.<br> Tím je zaji¹tìno, ¾e nikdo "
+"nebude pøihlá¹en bez svého vìdomí a souèasnì, ¾e se v konferenci neobjeví "
+"neplatné emailové adresy."
+
+#: Mailman/Gui/Privacy.py:94
+msgid ""
+"This section allows you to configure subscription and\n"
+" membership exposure policy. You can also control whether this\n"
+" list is public or not. See also the\n"
+" <a href=\"%(admin)s/archive\">Archival Options</a> section for\n"
+" separate archive-related privacy settings."
+msgstr ""
+"Politika zasílání pøíspìvkù. Obsahuje anti-spam filtry, rozli¹ení úèastníka "
+"od cizího\n"
+"a podobnì. (Nahlédnìte do <a href=\"%(admin)s/archive\">Archivace</a>, pro "
+"konfiguraci pøístupu\n"
+"k archivùm.)"
+
+#: Mailman/Gui/Privacy.py:100
+msgid "Subscribing"
+msgstr "Pøihla¹ování"
+
+#: Mailman/Gui/Privacy.py:102
+msgid ""
+"Advertise this list when people ask what lists are on this\n"
+" machine?"
+msgstr "Zobraz tuto konferenci v seznamu konferencí na tomto listserveru?"
+
+#: Mailman/Gui/Privacy.py:108
+msgid ""
+"Is the list moderator's approval required for unsubscription\n"
+" requests? (<em>No</em> is recommended)"
+msgstr ""
+"Je vy¾adován souhlas moderátora s odhlá¹ením úèastníkù?\n"
+" (Doporuèujeme nastavit <em>Ne</em>)"
+
+#: Mailman/Gui/Privacy.py:111
+msgid ""
+"When members want to leave a list, they will make an\n"
+" unsubscription request, either via the web or via email.\n"
+" Normally it is best for you to allow open unsubscriptions so "
+"that\n"
+" users can easily remove themselves from mailing lists (they "
+"get\n"
+" really upset if they can't get off lists!).\n"
+"\n"
+" <p>For some lists though, you may want to impose moderator\n"
+" approval before an unsubscription request is processed. "
+"Examples\n"
+" of such lists include a corporate mailing list that all "
+"employees\n"
+" are required to be members of."
+msgstr ""
+"Pokud se chce úèastník odhlásit z konference, musí poslat po¾adavek,\n"
+"buï emailem a nebo prostøednictvím www rozhraní. Normálnì je to v¹e\n"
+"co je potøeba pro odhlá¹ení z konference, tak¾e se úèastník mù¾e odhlásit\n"
+"kdykoliv sám. \n"
+"<p>Nìkdy ale mù¾e být potøeba. aby odhlá¹ení schválil moderátor. Není to\n"
+"èastý po¾adavek, ale mù¾e se jednat tøeba o firemní konferenci, ve které\n"
+"je povinná úèast v¹ech zamìstnancù."
+
+#: Mailman/Gui/Privacy.py:122
+msgid "Ban list"
+msgstr "Seznam zakázaných odesílatelù"
+
+#: Mailman/Gui/Privacy.py:124
+msgid ""
+"List of addresses which are banned from membership in this\n"
+" mailing list."
+msgstr "Seznam adres, které se nesmí pøihlásit do této konference."
+
+#: Mailman/Gui/Privacy.py:127
+msgid ""
+"Addresses in this list are banned outright from subscribing\n"
+" to this mailing list, with no further moderation required. "
+"Add\n"
+" addresses one per line; start the line with a ^ character to\n"
+" designate a regular expression match."
+msgstr ""
+"Adresy v tomto seznamu mají trvale zakázáno pøihlá¹ení do konference.\n"
+" Jejich pøípadné po¾adavky budou zamítnuty bez toho, aby "
+"moderátor\n"
+" musel o po¾adavku rozhodnout. Pokud chcete do seznamu umístit\n"
+" regulární výraz, napi¹te na daný øádek jako první znak ^."
+
+#: Mailman/Gui/Privacy.py:132
+msgid "Membership exposure"
+msgstr "Správa úèastníkù"
+
+#: Mailman/Gui/Privacy.py:134
+msgid "Anyone"
+msgstr "Kdokoliv"
+
+#: Mailman/Gui/Privacy.py:134
+msgid "List admin only"
+msgstr "Pouze administrátor konference"
+
+#: Mailman/Gui/Privacy.py:134
+msgid "List members"
+msgstr "Úèastnící konference"
+
+#: Mailman/Gui/Privacy.py:135
+msgid "Who can view subscription list?"
+msgstr "Kdo si mù¾e prohlédnout seznam úèastníkù?"
+
+#: Mailman/Gui/Privacy.py:137
+msgid ""
+"When set, the list of subscribers is protected by member or\n"
+" admin password authentication."
+msgstr ""
+"Pokud je tato volba nastavena, je pro zobrazení seznamu úèastníkù "
+"vy¾adováno \n"
+"ovìøení heslem úèastníka nebo administrátora."
+
+#: Mailman/Gui/Privacy.py:141
+msgid ""
+"Show member addresses so they're not directly recognizable\n"
+" as email addresses?"
+msgstr ""
+"Zobrazuj adresy úèastníkù tak, aby nebyly snadno rozpoznatelné jako e-"
+"mailové adresy?"
+
+#: Mailman/Gui/Privacy.py:143
+msgid ""
+"Setting this option causes member email addresses to be\n"
+" transformed when they are presented on list web pages (both in\n"
+" text and as links), so they're not trivially recognizable as\n"
+" email addresses. The intention is to prevent the addresses\n"
+" from being snarfed up by automated web scanners for use by\n"
+" spammers."
+msgstr ""
+"Nastavením této volby zajistíte, ¾e adresy úèastníkù budou na webovských "
+"stránkách zobrazeny v modifikovaném formátu, který nevypadá jako emailová "
+"adresa a tak není sbírán automatickými vyhledávaèi adres pro spamování."
+
+#: Mailman/Gui/Privacy.py:153
+msgid ""
+"When a message is posted to the list, a series of\n"
+" moderation steps are take to decide whether the a moderator "
+"must\n"
+" first approve the message or not. This section contains the\n"
+" controls for moderation of both member and non-member postings.\n"
+"\n"
+" <p>Member postings are held for moderation if their\n"
+" <b>moderation flag</b> is turned on. You can control whether\n"
+" member postings are moderated by default or not.\n"
+"\n"
+" <p>Non-member postings can be automatically\n"
+" <a href=\"?VARHELP=privacy/sender/accept_these_nonmembers\"\n"
+" >accepted</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/hold_these_nonmembers\">held "
+"for\n"
+" moderation</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/reject_these_nonmembers\"\n"
+" >rejected</a> (bounced), or\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >discarded</a>,\n"
+" either individually or as a group. Any\n"
+" posting from a non-member who is not explicitly accepted,\n"
+" rejected, or discarded, will have their posting filtered by the\n"
+" <a href=\"?VARHELP=privacy/sender/generic_nonmember_action"
+"\">general\n"
+" non-member rules</a>.\n"
+"\n"
+" <p>In the text boxes below, add one address per line; start the\n"
+" line with a ^ character to designate a <a href=\n"
+" \"http://www.python.org/doc/current/lib/module-re.html\"\n"
+" >Python regular expression</a>. When entering backslashes, do "
+"so\n"
+" as if you were using Python raw strings (i.e. you generally "
+"just\n"
+" use a single backslash).\n"
+"\n"
+" <p>Note that non-regexp matches are always done first."
+msgstr ""
+"Pokud je do konference zaslán pøíspìvek, je nejdøíve provedena série testù\n"
+"které mají rozhodnout jestli je pro rozeslání pøíspìvku potøebné rozhodnutí\n"
+"moderátora. V této sekci nastavíte parametry tìchto pravidel a to pro bì¾né\n"
+"i digest doruèování.\n"
+" <p> Pøíspìvky od úèastníkù jsou automaticky pozdr¾eny, pokud má "
+"úèastník nastaven \n"
+" <b>pøíznak moderovat</b>. Mù¾ete nastavit, jestli jsou ve "
+"výchozím stavu pøíspìvky\n"
+" moderovány a nebo ne.\n"
+"\n"
+" <p>Pøíspìvky z adres, které se neúèastní konference mohou být "
+"automaticky \n"
+" <a href=\"?VARHELP=privacy/sender/accept_these_nonmembers"
+"\">akceptovány</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/hold_these_nonmembers"
+"\">pozdr¾eny do rozhodnutí moderátora </a>,\n"
+" <a href=\"?VARHELP=privacy/sender/reject_these_nonmembers\"\n"
+" >odmítnuty</a> (vráceny) a nebo\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >zahozeny</a>,\n"
+" a to buï samostatnì a nebo hromadnì.\n"
+" Na pøíspìvky, pro které nebude nalezena ¾ádná podmínka v seznamu "
+"bude aplikována \n"
+" <a href=\"?VARHELP=privacy/sender/generic_nonmember_action"
+"\">výchozí akce\n"
+" pro pøíspìvky od neúèastníkù</a>.\n"
+"\n"
+" <p>Do ní¾e zobrazených rámeèkù zapisujte na ka¾dý øádek jednu "
+"adresu.\n"
+" Pokud chcete pou¾ít <a href=\n"
+" \"http://www.python.org/doc/current/lib/module-re.html\"\n"
+" >Regulární výraz Pythonu</a> zaènìte øádek znakem ^. Pokud "
+"potøebujete zadat \n"
+" zpìtné lomítko zadejte jej jako jednoduché (tedy není potøeba "
+"jej nìjak escapovat). \n"
+"\n"
+" <p>Pozor, nejdøíve jsou vyhodnocovány bì¾né vzory a¾ a¾ potom "
+"regulární výrazy."
+
+#: Mailman/Gui/Privacy.py:186
+msgid "Member filters"
+msgstr "Filtr seznamu úèastníkù"
+
+#: Mailman/Gui/Privacy.py:189
+msgid "By default, should new list member postings be moderated?"
+msgstr "Mají být pøíspìvky nových úèastníkù schvalovány moderátorem?"
+
+#: Mailman/Gui/Privacy.py:191
+msgid ""
+"Each list member has a <em>moderation flag</em> which says\n"
+" whether messages from the list member can be posted directly "
+"to\n"
+" the list, or must first be approved by the list moderator. "
+"When\n"
+" the moderation flag is turned on, list member postings must be\n"
+" approved first. You, the list administrator can decide whether "
+"a\n"
+" specific individual's postings will be moderated or not.\n"
+"\n"
+" <p>When a new member is subscribed, their initial moderation "
+"flag\n"
+" takes its value from this option. Turn this option off to "
+"accept\n"
+" member postings by default. Turn this option on to, by "
+"default,\n"
+" moderate member postings first. You can always manually set "
+"an\n"
+" individual member's moderation bit by using the\n"
+" <a href=\"%(adminurl)s/members\">membership management\n"
+" screens</a>."
+msgstr ""
+"Ka¾dý úèastník konference má vlastní <em>pøíznak moderace</em>, který\n"
+" urèuje, jestli jeho pøíspìvky mohou být distribuovány pøímo a "
+"nebo\n"
+" zda je musí nejdøíve schválit moderátor. To umo¾òuje "
+"rozhodovat\n"
+" zvlá¹» o pøíspìvcích problémových úèastníkù a nebo nastavit "
+"tento\n"
+" pøíznak novým úèastníkùm a tím zabránit spamovacím robotùm\n"
+" v distribuci spamu pøes fale¹né pøihlá¹ení do konference.\n"
+"\n"
+" <p>Kdy¾ se pøihlásí nový úèastník, jeho pøíznak se nastaví "
+"podle\n"
+" hodnoty této volby. Kdy¾ uznáte úèastníka za schopného pøímo \n"
+" pøispívat, mù¾ete mu na stránce \n"
+" <a href=\"%(adminurl)s/members\">správy úèastníkù\n"
+" </a> pøíznak zru¹it."
+
+#: Mailman/Gui/Privacy.py:207 Mailman/Gui/Privacy.py:281
+msgid "Hold"
+msgstr "Pozastav"
+
+#: Mailman/Gui/Privacy.py:208
+msgid ""
+"Action to take when a moderated member posts to the\n"
+" list."
+msgstr "Akce, která probìhne kdy¾ moderovaný úèastník pøispìje do konference."
+
+#: Mailman/Gui/Privacy.py:210
+msgid ""
+"<ul><li><b>Hold</b> -- this holds the message for approval\n"
+" by the list moderators.\n"
+"\n"
+" <p><li><b>Reject</b> -- this automatically rejects the message "
+"by\n"
+" sending a bounce notice to the post's author. The text of the\n"
+" bounce notice can be <a\n"
+" href=\"?VARHELP=privacy/sender/member_moderation_notice\"\n"
+" >configured by you</a>.\n"
+"\n"
+" <p><li><b>Discard</b> -- this simply discards the message, "
+"with\n"
+" no notice sent to the post's author.\n"
+" </ul>"
+msgstr ""
+"<ul><li><b>Zadr¾</b> -- pozastaví distribuci pøíspìvku a èeká na rozhodnutí "
+"moderátora.\n"
+"\n"
+" <p><li><b>Odmítni</b> -- vrátí zprávu odesílateli. Pøilo¾í k ní "
+"vysvìtlující text\n"
+" tak jak je nastaven v konfiguraèní volbì <a\n"
+" href=\"?VARHELP=privacy/sender/member_moderation_notice\"\n"
+" >zpráva o zamítnutí pøíspìvku.</a>.\n"
+"\n"
+" <p><li><b>Zahoï</b> -- jednodu¹e zprávu zahodí a autorovi "
+"nehlásí nic.\n"
+" </ul>"
+
+#: Mailman/Gui/Privacy.py:224
+msgid ""
+"Text to include in any\n"
+" <a href=\"?VARHELP/privacy/sender/member_moderation_action\"\n"
+" >rejection notice</a> to\n"
+" be sent to moderated members who post to this list."
+msgstr ""
+"Text, který bude pøilo¾en ke ka¾dé\n"
+" <a href=\"?VARHELP/privacy/sender/member_moderation_action\"\n"
+" >zprávì o zamítnutí pøíspìvku</a>,\n"
+" která je zaslána autorovi zprávy."
+
+#: Mailman/Gui/Privacy.py:229
+msgid "Non-member filters"
+msgstr "Filtry pro neúèastníky"
+
+#: Mailman/Gui/Privacy.py:232
+msgid ""
+"List of non-member addresses whose postings should be\n"
+" automatically accepted."
+msgstr ""
+"Seznam adres (které nejsou èleny konference) jejich¾ pøíspìvky budou "
+"automaticky akceptovány."
+
+#: Mailman/Gui/Privacy.py:235
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" accepted with no further moderation applied. Add member\n"
+" addresses one per line; start the line with a ^ character to\n"
+" designate a regular expression match."
+msgstr ""
+"Pøíspìvky od v¹ech tìchto odesílatelù (neèlenù konference), budou\n"
+"automaticky akceptovány bez potøeby souhlasu moderátora. Na ka¾dý øádek\n"
+"zapisujte jednu adresu. Pokud se jedná o regulární výraz, zaènìte øádek "
+"znakem ^."
+
+#: Mailman/Gui/Privacy.py:241
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" immediately held for moderation."
+msgstr ""
+"Seznam adres (které nejsou èleny konference), jejich¾ pøíspìvky budou\n"
+" v ka¾dém pøípadì zadr¾eny do rozhodnutí moderátora."
+
+#: Mailman/Gui/Privacy.py:244
+msgid ""
+"Postings from any of these non-members will be immediately\n"
+" and automatically held for moderation by the list moderators.\n"
+" The sender will receive a notification message which will "
+"allow\n"
+" them to cancel their held message. Add member addresses one "
+"per\n"
+" line; start the line with a ^ character to designate a regular\n"
+" expression match."
+msgstr ""
+"Pøíspìvky od v¹ech tìchto odesílatelù (neèlenù konference), budou\n"
+"automaticky pozastaveny do rozhodnutí moderátora. Na ka¾dý øádek\n"
+"zapisujte jednu adresu. Pokud se jedná o regulární výraz, zaènìte øádek "
+"znakem ^."
+
+#: Mailman/Gui/Privacy.py:252
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" automatically rejected."
+msgstr ""
+"Seznam adres (které nejsou èleny konference), jejich¾ pøíspìvky budou\n"
+" v ka¾dém pøípadì automaticky zamítnuty."
+
+#: Mailman/Gui/Privacy.py:255
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" rejected. In other words, their messages will be bounced back "
+"to\n"
+" the sender with a notification of automatic rejection. This\n"
+" option is not appropriate for known spam senders; their "
+"messages\n"
+" should be\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >automatically discarded</a>.\n"
+"\n"
+" <p>Add member addresses one per line; start the line with a ^\n"
+" character to designate a regular expression match."
+msgstr ""
+"Pøíspìvky od v¹ech tìchto odesílatelù (neèlenù konference), budou\n"
+"automaticky odmítnuty bez potøeby vyjádøení moderátora. Na ka¾dý øádek\n"
+"zapisujte jednu adresu. Pokud se jedná o regulární výraz, zaènìte øádek "
+"znakem ^.\n"
+"Tato volba není urèena pro filtrování spamu. Pokud potøebujete vlo¾it "
+"adresu \n"
+"ze které pøichází spam, udìlejte tak <a href=\"?VARHELP=privacy/sender/"
+"discard_these_nonmembers\"\n"
+" >do seznamu automaticky zahazovaných odesílatelù</a>."
+
+#: Mailman/Gui/Privacy.py:267
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" automatically discarded."
+msgstr ""
+"Seznam adres (které nejsou èleny konference), jejich¾ pøíspìvky budou\n"
+" v ka¾dém pøípadì automaticky zahozeny."
+
+#: Mailman/Gui/Privacy.py:270
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" discarded. That is, the message will be thrown away with no\n"
+" further processing or notification. The sender will not "
+"receive\n"
+" a notification or a bounce, however the list moderators can\n"
+" optionally <a href=\"?VARHELP=privacy/sender/"
+"forward_auto_discards\"\n"
+" >receive copies of auto-discarded messages.</a>.\n"
+"\n"
+" <p>Add member addresses one per line; start the line with a ^\n"
+" character to designate a regular expression match."
+msgstr ""
+"Pøíspìvky od v¹ech tìchto odesílatelù (neèlenù konference), budou\n"
+"automaticky zahozeny bez potøeby vyjádøení moderátora. Na ka¾dý øádek\n"
+"zapisujte jednu adresu. Pokud se jedná o regulární výraz, zaènìte øádek "
+"znakem ^.\n"
+"Pokud je potøeba, aby administrátor vìdìl o zahazovaných zprávách, mù¾ete\n"
+"nastavit, ¾e <a href=\"?VARHELP=privacy/sender/forward_auto_discards\"\n"
+" >bude dostávat kopie zahozených zpráv</a>."
+
+#: Mailman/Gui/Privacy.py:282
+msgid ""
+"Action to take for postings from non-members for which no\n"
+" explicit action is defined."
+msgstr ""
+"Co se má stát s pøíspìvkem od nìkoho, kdo není úèastníkem konference,\n"
+" a pro jeho adresu není nastavena ¾ádná speciální akce (nevyhovuje\n"
+"¾ádnému z pøedchozích pravidel)."
+
+#: Mailman/Gui/Privacy.py:285
+msgid ""
+"When a post from a non-member is received, the message's\n"
+" sender is matched against the list of explicitly\n"
+" <a href=\"?VARHELP=privacy/sender/accept_these_nonmembers\"\n"
+" >accepted</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/hold_these_nonmembers\">held</"
+"a>,\n"
+" <a href=\"?VARHELP=privacy/sender/reject_these_nonmembers\"\n"
+" >rejected</a> (bounced), and\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >discarded</a> addresses. If no match is found, then this "
+"action\n"
+" is taken."
+msgstr ""
+"Kdy¾ Mailman pøijme pøíspìvek od nìkoho, kdo není èlenem konference,\n"
+" porovnává jeho adresu se seznamy automaticky \n"
+" <a href=\"?VARHELP=privacy/sender/accept_these_nonmembers\"\n"
+" >akceptovaných</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/hold_these_nonmembers"
+"\">pozastavovaných</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/reject_these_nonmembers\"\n"
+" >zamítaných</a> (vracených) a \n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >zahazovaných</a> adres. Pokud odesílatel není nalezen v "
+"¾ádném z tìchto seznamù\n"
+" pou¾ije se pro pøíspìvek tato akce."
+
+#: Mailman/Gui/Privacy.py:297
+msgid ""
+"Should messages from non-members, which are automatically\n"
+" discarded, be forwarded to the list moderator?"
+msgstr ""
+"Mají být pøíspìvky neúèastníkù, které jsou automaticky zahazovány, "
+"pøeposílány moderátorovi?"
+
+#: Mailman/Gui/Privacy.py:303
+msgid ""
+"This section allows you to configure various filters based on\n"
+" the recipient of the message."
+msgstr ""
+"Tato sekce vám umo¾ní nastavovat rùzné volby z závislosti na tom, komu je "
+"pøíspìvek adresován."
+
+#: Mailman/Gui/Privacy.py:306
+msgid "Recipient filters"
+msgstr "Filtr adresátù"
+
+#: Mailman/Gui/Privacy.py:310
+msgid ""
+"Must posts have list named in destination (to, cc) field\n"
+" (or be among the acceptable alias names, specified below)?"
+msgstr ""
+"Musí pøíspìvky obsahovat adresu konference v adrese? Kontrolují se i ní¾e "
+"uvedené aliasy."
+
+#: Mailman/Gui/Privacy.py:313
+msgid ""
+"Many (in fact, most) spams do not explicitly name their\n"
+" myriad destinations in the explicit destination addresses - in\n"
+" fact often the To: field has a totally bogus address for\n"
+" obfuscation. The constraint applies only to the stuff in the\n"
+" address before the '@' sign, but still catches all such spams.\n"
+"\n"
+" <p>The cost is that the list will not accept unhindered any\n"
+" postings relayed from other addresses, unless\n"
+"\n"
+" <ol>\n"
+" <li>The relaying address has the same name, or\n"
+"\n"
+" <li>The relaying address name is included on the options "
+"that\n"
+" specifies acceptable aliases for the list.\n"
+"\n"
+" </ol>"
+msgstr ""
+"Vìt¹ina spamù neobsahuje adresu na kterou je zaslána ve své hlavièce, resp. "
+"v poli To:. Vìt¹inou obsahuje nìjakou naprosto nesmyslnou cílovou adresu. "
+"Omezení, které zde mù¾ete nastavit, kontroluje, zda se èást adresy uvedená "
+"pøed znakem @ shoduje se jménem konference, nebo s nastavenými aliasy pro "
+"konferenci.To zamezí rozeslání vìt¹iny spamù, ale má to vedlej¹í úèinek "
+"spoèívající v tom, ¾e pokud pøeposíláte pøíspìvky pøes nìjakou jinou adresu, "
+"musíte ji uvést v seznamu aliasù pro danou konferenci."
+
+#: Mailman/Gui/Privacy.py:331
+msgid ""
+"Alias names (regexps) which qualify as explicit to or cc\n"
+" destination names for this list."
+msgstr "Aliasy (zapsané regulárními výrazy), které ukazují na tuto konferenci."
+
+#: Mailman/Gui/Privacy.py:334
+msgid ""
+"Alternate addresses that are acceptable when\n"
+" `require_explicit_destination' is enabled. This option takes "
+"a\n"
+" list of regular expressions, one per line, which is matched\n"
+" against every recipient address in the message. The matching "
+"is\n"
+" performed with Python's re.match() function, meaning they are\n"
+" anchored to the start of the string.\n"
+" \n"
+" <p>For backwards compatibility with Mailman 1.1, if the regexp\n"
+" does not contain an `@', then the pattern is matched against "
+"just\n"
+" the local part of the recipient address. If that match fails, "
+"or\n"
+" if the pattern does contain an `@', then the pattern is "
+"matched\n"
+" against the entire recipient address.\n"
+" \n"
+" <p>Matching against the local part is deprecated; in a future\n"
+" release, the pattern will always be matched against the entire\n"
+" recipient address."
+msgstr ""
+"Alternativní adresy, které jsou pøijatelné jako adresy konference pokud je "
+"nastavena volba `po¾aduj konkrétní adresu'. Obsahuje seznam regulárních "
+"výrazù, ka¾dý na samostatném øádku, oproti kterým je pomocí funkce re.match"
+"() kontrolován ka¾dý adresát pøíspìvku. <p>Pro zaji¹tìní zpìtné "
+"kompatibility v Mailmanem 1.1: pokud regulární výraz neobsahuje znak `@', "
+"tak je kontrolována jen èást adresy pøed znakem `@'. Toto chování je "
+"povoleno na pøechodnou dobu a v dal¹ích verzích nebude zachováno."
+
+#: Mailman/Gui/Privacy.py:352
+msgid "Ceiling on acceptable number of recipients for a posting."
+msgstr ""
+"Maximální poèet adresátù, pokud bude pøekroèen pøíspìvek nebude rozeslán."
+
+#: Mailman/Gui/Privacy.py:354
+msgid ""
+"If a posting has this number, or more, of recipients, it is\n"
+" held for admin approval. Use 0 for no ceiling."
+msgstr ""
+"Pokud má pøíspìvek stejnì nebo více adresátù, ne¾ je zde uvedeno, bude "
+"pozastaven do rozhodnutí moderátora. Zadejte 0 pro distribuci ka¾dého "
+"pøíspìvku bez omezení."
+
+#: Mailman/Gui/Privacy.py:359
+msgid ""
+"This section allows you to configure various anti-spam\n"
+" filters posting filters, which can help reduce the amount of "
+"spam\n"
+" your list members end up receiving.\n"
+" "
+msgstr ""
+"Tato sekce Vám umo¾ní nastavit rùzné filtry bránící konferenci proti spamu\n"
+"a tím omezit poèet nevy¾ádaných pøíspìvkù, které pøijdou do konference."
+
+#: Mailman/Gui/Privacy.py:364
+msgid "Anti-Spam filters"
+msgstr "Anti spam filtry"
+
+#: Mailman/Gui/Privacy.py:367
+msgid "Hold posts with header value matching a specified regexp."
+msgstr ""
+"Pozastav distribuci pøíspìvkù, které obsahují v hlavièce takovéto øetìzce."
+
+#: Mailman/Gui/Privacy.py:368
+msgid ""
+"Use this option to prohibit posts according to specific\n"
+" header values. The target value is a regular-expression for\n"
+" matching against the specified header. The match is done\n"
+" disregarding letter case. Lines beginning with '#' are "
+"ignored\n"
+" as comments.\n"
+"\n"
+" <p>For example:<pre>to: .*@public.com </pre> says to hold all\n"
+" postings with a <em>To:</em> mail header containing '@public."
+"com'\n"
+" anywhere among the addresses.\n"
+"\n"
+" <p>Note that leading whitespace is trimmed from the regexp. "
+"This\n"
+" can be circumvented in a number of ways, e.g. by escaping or\n"
+" bracketing it."
+msgstr ""
+"Tato volba je urèena na omezení pøíspìvkù podle specifických vlastností, \n"
+"obsahù, hlavièek. Zadávejte regulární výrazy, jeden na ka¾dý øádek. Øádky\n"
+"zaèínající znakem # jsou ignorovány jako komentáøe. Pøi hledání se \n"
+"nerozli¹uje velikost písmen.\n"
+"<p>Pøíklad:<p><pre>to: .*@public.com </pre> \n"
+"zpùsobí zadr¾ení v¹ech pøíspìvkù, které v hlavièce <em>to</em> obsahují \n"
+"øetìzec'@public.com' .<p>Mezery na zaèátku øádku jsou ignorovány, co¾ mù¾e \n"
+"být u¾iteèné pro strukturování zadaných pravidel."
+
+#: Mailman/Gui/Topics.py:28
+msgid "Topics"
+msgstr "Tematické filtry"
+
+#: Mailman/Gui/Topics.py:36
+msgid "List topic keywords"
+msgstr "Zobraz klíèová slova pro tøídìní podle témat"
+
+#: Mailman/Gui/Topics.py:38
+msgid "Disabled"
+msgstr "Zakázán"
+
+#: Mailman/Gui/Topics.py:38
+msgid "Enabled"
+msgstr "Povolen"
+
+#: Mailman/Gui/Topics.py:39
+msgid "Should the topic filter be enabled or disabled?"
+msgstr "Má být povolen tematický filtr?"
+
+#: Mailman/Gui/Topics.py:41
+msgid ""
+"The topic filter categorizes each incoming email message\n"
+" according to <a\n"
+" href=\"http://www.python.org/doc/current/lib/module-re.html"
+"\">regular\n"
+" expression filters</a> you specify below. If the message's\n"
+" <code>Subject:</code> or <code>Keywords:</code> header contains "
+"a\n"
+" match against a topic filter, the message is logically placed\n"
+" into a topic <em>bucket</em>. Each user can then choose to "
+"only\n"
+" receive messages from the mailing list for a particular topic\n"
+" bucket (or buckets). Any message not categorized in a topic\n"
+" bucket registered with the user is not delivered to the list.\n"
+"\n"
+" <p>Note that this feature only works with regular delivery, "
+"not\n"
+" digest delivery.\n"
+"\n"
+" <p>The body of the message can also be optionally scanned for\n"
+" <code>Subject:</code> and <code>Keywords:</code> headers, as\n"
+" specified by the <a\n"
+" href=\"?VARHELP=topics/topics_bodylines_limit"
+"\">topics_bodylines_limit</a>\n"
+" configuration variable."
+msgstr ""
+"Tématický filtr zatøídí ka¾dou pøijatou zprávu s pou¾itím <a\n"
+" href=\"http://www.python.org/doc/current/lib/module-re.html"
+"\">regulárních\n"
+" výrazù</a> , které zadáte ní¾e. Pokud zpráva obsahuje v "
+"hlavièce \n"
+" <code>Subject:</code> a nebo <code>Keywords:</code> výraz "
+"nalezený\n"
+" v seznamu témat, je zaøazena do správného <em>kyblíèku</em>.\n"
+" Ka¾dý u¾ivatel si mù¾e vybrat z kterých kyblíèkù si pøeje "
+"dostávat pøíspìvky.\n"
+"\n"
+" <p>Pozor, tuto volbu mají jen u¾ivatelé pøijímající zprávy "
+"bì¾ným zpùsobem,\n"
+" odbìratelé digestu tu mo¾nost nemají.\n"
+"\n"
+" <p>Na výskyt hlavièek \n"
+" <code>Subject:</code> a nebo <code>Keyword:</code> mù¾e být "
+"testována i èást\n"
+" tìla pøíspìvku, v závislosti na nastavení promìnné <a\n"
+" href=\"?VARHELP=topics/topics_bodylines_limit\"> Kolik øádek z tìla "
+"pøíspìvku má být prohlédnuto pøi hledání klíèových slov?</a>."
+
+#: Mailman/Gui/Topics.py:62
+msgid "How many body lines should the topic matcher scan?"
+msgstr ""
+"Kolik øádek z tìla pøíspìvku má být prohlédnuto pøi hledání klíèových slov?"
+
+#: Mailman/Gui/Topics.py:64
+msgid ""
+"The topic matcher will scan this many lines of the message\n"
+" body looking for topic keyword matches. Body scanning stops "
+"when\n"
+" either this many lines have been looked at, or a non-header-"
+"like\n"
+" body line is encountered. By setting this value to zero, no "
+"body\n"
+" lines will be scanned (i.e. only the <code>Keywords:</code> "
+"and\n"
+" <code>Subject:</code> headers will be scanned). By setting "
+"this\n"
+" value to a negative number, then all body lines will be "
+"scanned\n"
+" until a non-header-like line is encountered.\n"
+" "
+msgstr ""
+"Tématický filtr bude hledat své hlavièky (tedy <code>Keywords:</code> a\n"
+" <code>Subject:</code>) i v tìle zprávy a to bud zde nastavený "
+"poèet øádek\n"
+" nebo dokud nenarazí na konec zprávy. Pokud nastavíte nulu, "
+"nebude se tìlo prohledávat\n"
+" vùbec, pokud nastavíte záporné èíslo, bude se v ka¾dém pøípadì "
+"prohledávat celé tìlo zprávy."
+
+#: Mailman/Gui/Topics.py:75
+msgid "Topic keywords, one per line, to match against each message."
+msgstr ""
+"Klíèová slova pro tematický filtr. Zapisujte jedno slovo na øádek. Slova "
+"budou hledána v pøíspìvcích."
+
+#: Mailman/Gui/Topics.py:77
+msgid ""
+"Each topic keyword is actually a regular expression, which is\n"
+" matched against certain parts of a mail message, specifically "
+"the\n"
+" <code>Keywords:</code> and <code>Subject:</code> message "
+"headers.\n"
+" Note that the first few lines of the body of the message can "
+"also\n"
+" contain a <code>Keywords:</code> and <code>Subject:</code>\n"
+" \"header\" on which matching is also performed."
+msgstr ""
+"Ka¾dá polo¾ka tematického filtru je vlastnì regulární výraz, který je "
+"porovnáván\n"
+"se speciálním øádky ve zprávì, tedy s hlavièkami <code>Keywords:</code> a "
+"nebo\n"
+" <code>Subject:</code>. Ty se mohou vyskytovat jak v záhlaví, tak na zaèátku "
+"tìla zprávy."
+
+#: Mailman/Gui/Topics.py:116
+msgid ""
+"Topic specifications require both a name and\n"
+" a pattern. Incomplete topics will be ignored."
+msgstr ""
+"Definice topicu vy¾aduje zadání jak názvu, tak vzoru pro\n"
+" porovnávání. Nekompletní definice budou ignorovány."
+
+#: Mailman/Gui/Topics.py:124
+msgid ""
+"The topic pattern `%(pattern)s' is not a\n"
+" legal regular expression. It will be discarded."
+msgstr ""
+"Zadaný vzor: `%(pattern)s' není platným\n"
+" regulárním výrazem, nebude pou¾it."
+
+#: Mailman/Gui/Usenet.py:25
+msgid "Mail&lt;-&gt;News&nbsp;gateways"
+msgstr "Brána mezi Mail&lt;-&gt;News"
+
+#: Mailman/Gui/Usenet.py:35
+msgid "Mail-to-News and News-to-Mail gateway services."
+msgstr "Brána mezi po¹tou a newsy."
+
+#: Mailman/Gui/Usenet.py:37
+msgid "News server settings"
+msgstr "Konfigurace News serveru"
+
+#: Mailman/Gui/Usenet.py:40
+msgid ""
+"The Internet address of the machine your News server is\n"
+" running on."
+msgstr "Internetová adresa poèítaèe na kterém bì¾í vá¹ news server."
+
+#: Mailman/Gui/Usenet.py:42
+msgid ""
+"The News server is not part of Mailman proper. You have to\n"
+" already have access to a NNTP server, and that NNTP server has "
+"to\n"
+" recognize the machine this mailing list runs on as a machine\n"
+" capable of reading and posting news."
+msgstr ""
+"News server není souèástí Mailmanu. Musíte mít pøístup na nìjaký existující\n"
+" News server a musíte mít právo na nìj pøispívat a èíst z nìj pøíspìvky. \n"
+"Server musí mít pøedem vytvoøenu newsovou skupinu pro propojení s konferencí."
+
+#: Mailman/Gui/Usenet.py:48
+msgid "The name of the Usenet group to gateway to and/or from."
+msgstr "Jméno NNTP skupiny se kterou je konference svázána"
+
+#: Mailman/Gui/Usenet.py:51
+msgid ""
+"Should new posts to the mailing list be sent to the\n"
+" newsgroup?"
+msgstr "Mají být pøíspìvky zaslané do konference pøeposlány do NEWS?"
+
+#: Mailman/Gui/Usenet.py:55
+msgid ""
+"Should new posts to the newsgroup be sent to the mailing\n"
+" list?"
+msgstr ""
+"Mají být pøíspìvky zaslané do News pøeposlány i do konference? (Pøíspìvky "
+"zaslané do konference nebudou pøeposílány v ¾ádném pøípadì.)"
+
+#: Mailman/Gui/Usenet.py:58
+msgid "Forwarding options"
+msgstr "Parametry pøeposílání"
+
+#: Mailman/Gui/Usenet.py:61
+msgid "Moderated"
+msgstr "Moderována"
+
+#: Mailman/Gui/Usenet.py:61
+msgid "Open list, moderated group"
+msgstr "Veøejná konference, moderovaná skupina"
+
+#: Mailman/Gui/Usenet.py:64
+msgid "The moderation policy of the newsgroup."
+msgstr "Pravidla pro moderování newsové skupiny."
+
+#: Mailman/Gui/Usenet.py:66
+msgid ""
+"This setting determines the moderation policy of the\n"
+" newsgroup and its interaction with the moderation policy of "
+"the\n"
+" mailing list. This only applies to the newsgroup that you are\n"
+" gatewaying <em>to</em>, so if you are only gatewaying from\n"
+" Usenet, or the newsgroup you are gatewaying to is not "
+"moderated,\n"
+" set this option to <em>None</em>.\n"
+"\n"
+" <p>If the newsgroup is moderated, you can set this mailing "
+"list\n"
+" up to be the moderation address for the newsgroup. By "
+"selecting\n"
+" <em>Moderated</em>, an additional posting hold will be placed "
+"in\n"
+" the approval process. All messages posted to the mailing list\n"
+" will have to be approved before being sent on to the "
+"newsgroup,\n"
+" or to the mailing list membership.\n"
+"\n"
+" <p><em>Note that if the message has an <tt>Approved</tt> "
+"header\n"
+" with the list's administrative password in it, this hold test\n"
+" will be bypassed, allowing privileged posters to send messages\n"
+" directly to the list and the newsgroup.</em>\n"
+"\n"
+" <p>Finally, if the newsgroup is moderated, but you want to "
+"have\n"
+" an open posting policy anyway, you should select <em>Open "
+"list,\n"
+" moderated group</em>. The effect of this is to use the normal\n"
+" Mailman moderation facilities, but to add an <tt>Approved</tt>\n"
+" header to all messages that are gatewayed to Usenet."
+msgstr ""
+"Toto nastavení definuje vztah mezi pravidly pro moderování NEWS a "
+"konference.\n"
+" Platí pouze pro pøíspìvky, které zasíláte <em>do</em> NEWS.\n"
+" Pokud pouze získáváte pøíspìvky z NEWS a nebo pokud je "
+"pøedáváte do\n"
+" nemoderované skupiny, nastavte tuto volbu na <em>Ne</em>.\n"
+"\n"
+" <p>Pokud je skupina moderovaná, mù¾ete nastavit adresu této "
+"konference\n"
+" jako adresu moderátora konference. V tom pøípadì zvolte volbu\n"
+" <em>Moderovaná</em>, a v¹echny pøíspìvky budou pozastaveny do\n"
+" rozhodnutí moderátora. Schválené pøíspìvky budou rozeslány jako "
+"do\n"
+" konference, tak do NEWS.\n"
+"\n"
+" <p><em>Pozor: Pokud má pøíspìvek hlavièku <tt>Approved</tt>\n"
+" s platným heslem pro moderování, je tento test pøeskoèen a "
+"pøíspìvek\n"
+" je rozeslán do konference i do NEWS, to umo¾òuje "
+"privilegovaným\n"
+" pøispìvatelùm zasílat pøíspìvky bez omezení..</em>\n"
+"\n"
+" <p>Nakonec, pokud je NEWS skupina moderovaná, ale konference "
+"otevøená,\n"
+" pou¾ijte volbu <em>Otevøená konference, moderovaná skupina</"
+"em>.\n"
+" To zajistí, ¾e do ka¾dého pøíspìvku pøedávaného do NEWS bude "
+"pøidána hlavièka <tt>Approved</tt>\n"
+" s platným heslem moderátora, tak aby pøíspìvek pro¹el do NEWS."
+
+#: Mailman/Gui/Usenet.py:92
+msgid "Prefix <tt>Subject:</tt> headers on postings gated to news?"
+msgstr "Pøidávat <tt>prefix Subjectu:</tt> i u pøíspìvkù pøedávaných do news?"
+
+#: Mailman/Gui/Usenet.py:93
+msgid ""
+"Mailman prefixes <tt>Subject:</tt> headers with\n"
+" <a href=\"?VARHELP=general/subject_prefix\">text you can\n"
+" customize</a> and normally, this prefix shows up in messages\n"
+" gatewayed to Usenet. You can set this option to <em>No</em> "
+"to\n"
+" disable the prefix on gated messages. Of course, if you turn "
+"off\n"
+" normal <tt>Subject:</tt> prefixes, they won't be prefixed for\n"
+" gated messages either."
+msgstr ""
+"Mailman pøidává na zaèátek hlavièky<tt>Subject:</tt>\n"
+" <a href=\"?VARHELP=general/subject_prefix\">text, který si "
+"mù¾ete\n"
+" zvolit</a> a za normálních okolností je tento text pøidán i do "
+"pøíspìvkù\n"
+" pøedaných do Newsù (Usenetu). Ale pokud tuto volbu nastavíte na "
+"<em>Ne</em> nebudou pøíspìvky pøedané do news tento text "
+"obsahovat. Samozøejmì mù¾ete\n"
+" vypnout prefixy hlavièky <tt>Subject:</tt> úplnì a pak nebudou "
+"pøidávány ani\n"
+" bì¾nì rozeslaných pøíspìvkù."
+
+#: Mailman/Gui/Usenet.py:101
+msgid "Mass catch up"
+msgstr "Hromadné sta¾ení pøíspìvkù bylo dokonèeno."
+
+#: Mailman/Gui/Usenet.py:104
+msgid "Should Mailman perform a <em>catchup</em> on the newsgroup?"
+msgstr "Má se Mailman <em>synchronizovat</em> s newsy?"
+
+#: Mailman/Gui/Usenet.py:105
+msgid ""
+"When you tell Mailman to perform a catchup on the newsgroup,\n"
+" this means that you want to start gating messages to the "
+"mailing\n"
+" list with the next new message found. All earlier messages on\n"
+" the newsgroup will be ignored. This is as if you were reading\n"
+" the newsgroup yourself, and you marked all current messages as\n"
+" <em>read</em>. By catching up, your mailing list members will\n"
+" not see any of the earlier messages."
+msgstr ""
+"Pokud povolíte Mailmanovi, aby synchronizoval pøíspìvky s news bude naèítat\n"
+"pouze pøíspìvky, které vzniklou jako nové a posílat je do konference. Ji¾ "
+"existujících\n"
+"pøíspìvkù si nebude v¹ímat, tak¾e ani úèastníci konference o nich nebudou "
+"vìdìt."
+
+#: Mailman/Gui/Usenet.py:119
+msgid "Mass catchup completed"
+msgstr "Hromadné sta¾ení pøíspìvkù bylo dokonèeno."
+
+#: Mailman/Gui/Usenet.py:131
+msgid ""
+"You cannot enable gatewaying unless both the\n"
+" <a href=\"?VARHELP=gateway/nntp_host\">news server field</a> "
+"and\n"
+" the <a href=\"?VARHELP=gateway/linked_newsgroup\">linked\n"
+" newsgroup</a> fields are filled in."
+msgstr ""
+"Nemù¾ete povolit gateway pro News dokud nejsou nastaveny promìnné\n"
+" <a href=\"?VARHELP=gateway/nntp_host\">news server</a> a\n"
+" the <a href=\"?VARHELP=gateway/linked_newsgroup\">newsová\n"
+" skupina</a>."
+
+#: Mailman/HTMLFormatter.py:47
+msgid "%(listinfo_link)s list run by %(owner_link)s"
+msgstr "Konferenci %(listinfo_link)s spravuje(í) %(owner_link)s"
+
+#: Mailman/HTMLFormatter.py:55
+msgid "%(realname)s administrative interface"
+msgstr "Administrativní rozhraní pro %(realname)s"
+
+#: Mailman/HTMLFormatter.py:56
+msgid " (requires authorization)"
+msgstr ".(vy¾aduje pøihlá¹ení)"
+
+#: Mailman/HTMLFormatter.py:59
+msgid "Overview of all %(hostname)s mailing lists"
+msgstr "Informace o konferencích na serveru %(hostname)s"
+
+#: Mailman/HTMLFormatter.py:80
+msgid "<em>(1 private member not shown)</em>"
+msgstr "<em>(1 skrytý úèastník není zobrazen)</em>"
+
+#: Mailman/HTMLFormatter.py:82
+msgid "<em>(%(num_concealed)d private members not shown)</em>"
+msgstr "<em>(%(num_concealed)d skrytých úèastníkù není zobrazeno)</em>"
+
+#: Mailman/HTMLFormatter.py:137
+msgid "; it was disabled by you"
+msgstr "; zakázal jste to sám"
+
+#: Mailman/HTMLFormatter.py:139
+msgid "; it was disabled by the list administrator"
+msgstr "; bylo to zakázáno administrátorem konference"
+
+#: Mailman/HTMLFormatter.py:143
+msgid ""
+"; it was disabled due to excessive bounces. The\n"
+" last bounce was received on %(date)s"
+msgstr ""
+"; bylo to zakázáno, proto¾e se vracely pøíspìvky jako nedoruèitelné. \n"
+" Poslední pøíspìvek se vrátil dne: %(date)s"
+
+#: Mailman/HTMLFormatter.py:146
+msgid "; it was disabled for unknown reasons"
+msgstr "; bylo to zakázáno z neznámých dùvodù"
+
+#: Mailman/HTMLFormatter.py:148
+msgid "Note: your list delivery is currently disabled%(reason)s."
+msgstr ""
+"POZOR - nedostáváte pøíspìvky, proto¾e máte zakázanou adresu z dùvodu: %"
+"(reason)s."
+
+#: Mailman/HTMLFormatter.py:151
+msgid "Mail delivery"
+msgstr "Doruèování po¹ty"
+
+#: Mailman/HTMLFormatter.py:153 Mailman/HTMLFormatter.py:298
+msgid "the list administrator"
+msgstr "administrátora konference"
+
+#: Mailman/HTMLFormatter.py:154
+msgid ""
+"<p>%(note)s\n"
+"\n"
+" <p>You may have disabled list delivery intentionally,\n"
+" or it may have been triggered by bounces from your email\n"
+" address. In either case, to re-enable delivery, change the\n"
+" %(link)s option below. Contact %(mailto)s if you have any\n"
+" questions or need assistance."
+msgstr ""
+"<p>%(note)s\n"
+"\n"
+" <p>Doruèování pøíspìvkù jste si zakázal sám,\n"
+" nebo to udìlal robot, proto¾e se po¹ta pro vás vracela.\n"
+" Pokud chcete doruèování opìt povolit, kliknìte na odkaz:\n"
+" %(link)s \n"
+" Kontaktujte %(mailto)s, pokud máte dotaz nebo potøebujete pomoci."
+
+#: Mailman/HTMLFormatter.py:166
+msgid ""
+"<p>We have received some recent bounces from your\n"
+" address. Your current <em>bounce score</em> is %(score)s out of "
+"a\n"
+" maximum of %(total)s. Please double check that your subscribed\n"
+" address is correct and that there are no problems with delivery "
+"to\n"
+" this address. Your bounce score will be automatically reset if\n"
+" the problems are corrected soon."
+msgstr ""
+"<p>Pøíspìvky, které zasíláme na Va¹i adresu se nám vrací jako "
+"nedoruèitelné.\n"
+" Va¹e aktuální <em>skóre nedoruèitelnosti</em> je %(score)s, co¾\n"
+" je více ne¾ povolené maximum: %(total)s. Prosíme, pøekontrolujte "
+"si\n"
+" ¾e adresa, ze které jste pøihlá¹en je korektní a ¾e na ní je "
+"mo¾né\n"
+" zasílat pøíspìvky. Jakmile se nám podaøí doruèovat pøíspìvky "
+"bez\n"
+" problémù, bude Va¹e skóre resetováno."
+
+#: Mailman/HTMLFormatter.py:178
+msgid ""
+"(Note - you are subscribing to a list of mailing lists, so the %(type)s "
+"notice will be sent to the admin address for your membership, %(addr)s.)<p>"
+msgstr ""
+"(Pozor - pøihlásili jste se do konference, jejími¾ èleny jsou dal¹í "
+"konference. %(type)s bude zaslán administrátorovi na adresu: %(addr)s.)<p>"
+
+#: Mailman/HTMLFormatter.py:188
+msgid ""
+"You will be sent email requesting confirmation, to\n"
+" prevent others from gratuitously subscribing you."
+msgstr ""
+"Obdr¾íte elektronickou po¹tou ¾ádost o potvrzení pøihlá¹ení, aby se nemohlo "
+"stát, ¾e by Vás pøihlásil nìkdo cizí."
+
+#: Mailman/HTMLFormatter.py:191
+msgid ""
+"This is a closed list, which means your subscription\n"
+" will be held for approval. You will be notified of the list\n"
+" moderator's decision by email."
+msgstr ""
+"Tato konference je uzavøená, to znamená, ¾e Va¹e pøihlá¹ení musí nejdøíve "
+"schválit administrátor konference. O jeho rozhodnutí budete informován e-"
+"mailem."
+
+#: Mailman/HTMLFormatter.py:194 Mailman/HTMLFormatter.py:201
+msgid "also "
+msgstr "tak¾e "
+
+#: Mailman/HTMLFormatter.py:196
+msgid ""
+"You will be sent email requesting confirmation, to\n"
+" prevent others from gratuitously subscribing you. Once\n"
+" confirmation is received, your request will be held for "
+"approval\n"
+" by the list moderator. You will be notified of the moderator's\n"
+" decision by email."
+msgstr ""
+"Byla Vám zaslána ¾ádost o potvrzení pøihlá¹ky, aby Vás nìkdo jiný nemohl "
+"pøihlásit bez Va¹eho vìdomí. Po potvrzení bude pøihlá¹ka postoupena "
+"administrátorovi, který rozhodne o její akceptaci. O výsledku budete "
+"informováni elektronickou po¹tou."
+
+#: Mailman/HTMLFormatter.py:205
+msgid ""
+"This is %(also)sa private list, which means that the\n"
+" list of members is not available to non-members."
+msgstr ""
+"Toto je %(also)sa uzavøená konference, to, mimo jiné, znamená, ¾e seznam "
+"úèastníkù je pøístupný pouze úèastníkùm."
+
+#: Mailman/HTMLFormatter.py:208
+msgid ""
+"This is %(also)sa hidden list, which means that the\n"
+" list of members is available only to the list administrator."
+msgstr ""
+"Toto je %(also)sa skrytá skupina. Seznam úèastníkù je dostupný pouze "
+"administrátorovi."
+
+#: Mailman/HTMLFormatter.py:211
+msgid ""
+"This is %(also)sa public list, which means that the\n"
+" list of members list is available to everyone."
+msgstr ""
+"Tato konference %(also)sa je otevøená, seznam jejích úèastníkù je volnì k "
+"dispozici."
+
+#: Mailman/HTMLFormatter.py:214
+msgid ""
+" (but we obscure the addresses so they are not\n"
+" easily recognizable by spammers)."
+msgstr ""
+" (nicménì adresy jsou modifikovány tak, aby je nebylo mo¾né pou¾ít bez, "
+"dal¹ích úprav, pro spamming.)"
+
+#: Mailman/HTMLFormatter.py:219
+msgid ""
+"<p>(Note that this is an umbrella list, intended to\n"
+" have only other mailing lists as members. Among other things,\n"
+" this means that your confirmation request will be sent to the\n"
+" `%(sfx)s' account for your address.)"
+msgstr ""
+"<p>(Pozor, tato konference je urèen jen k tomu, aby mìla za èleny dal¹í "
+"konference. Kromì jiného to znamená, ¾e ¾ádost o akceptaci pøihlá¹ení bude "
+"zaslána na adresu '%(sfx)s', nikoliv na adresu Vámi zadanou.)"
+
+#: Mailman/HTMLFormatter.py:248
+msgid "<b><i>either</i></b> "
+msgstr "<b><i> nebo </i></b> "
+
+#: Mailman/HTMLFormatter.py:253
+msgid ""
+"To unsubscribe from %(realname)s, get a password reminder,\n"
+" or change your subscription options %(either)senter your "
+"subscription\n"
+" email address:\n"
+" <p><center> "
+msgstr ""
+"Pro zmìnu vlastností Va¹eho úètu (nastavení digestu\n"
+" re¾imù doruèení, zaslání hesla nebo odhlá¹ení \n"
+" z konference %(realname)s) %(either)s zadejte adresu, pod kterou "
+"jste pøihlá¹eni:\n"
+" <p><center> "
+
+#: Mailman/HTMLFormatter.py:260
+msgid "Unsubscribe or edit options"
+msgstr "Odhla¹ nebo edituj parametry"
+
+#: Mailman/HTMLFormatter.py:264
+msgid ""
+"<p>... <b><i>or</i></b> select your entry from\n"
+" the subscribers list (see above)."
+msgstr "<p>... <b><i>nebo</i></b> vyberte svou adresu ze seznamu úèastníkù."
+
+#: Mailman/HTMLFormatter.py:266
+msgid ""
+" If you leave the field blank, you will be prompted for\n"
+" your email address"
+msgstr "Pokud toto políèko nevyplníte, budete po¾ádán o emailovou adresu."
+
+#: Mailman/HTMLFormatter.py:274
+msgid ""
+"(<i>%(which)s is only available to the list\n"
+" members.</i>)"
+msgstr "<i>%(which)s je k dispozici pouze pro úèastníky konference.</i>)"
+
+#: Mailman/HTMLFormatter.py:278
+msgid ""
+"(<i>%(which)s is only available to the list\n"
+" administrator.</i>)"
+msgstr "<i>%(which)s je k dispozici pouze pro administrátora konference.</i>"
+
+#: Mailman/HTMLFormatter.py:288
+msgid "Click here for the list of "
+msgstr "kliknìte zde pro seznam"
+
+#: Mailman/HTMLFormatter.py:290
+msgid " subscribers: "
+msgstr " úèastníkù: "
+
+#: Mailman/HTMLFormatter.py:292
+msgid "Visit Subscriber list"
+msgstr "Zobraz seznam úèastníkù"
+
+#: Mailman/HTMLFormatter.py:295
+msgid "members"
+msgstr "Úèastnící konference"
+
+# In this entry insert a space at the end of string, it will be stripped.
+#: Mailman/HTMLFormatter.py:296
+msgid "Address:"
+msgstr "Adresa:"
+
+# In this entry insert a space at the end of string, it will be stripped.
+#: Mailman/HTMLFormatter.py:299
+msgid "Admin address:"
+msgstr "Adresa administrátora:"
+
+#: Mailman/HTMLFormatter.py:302
+msgid "The subscribers list"
+msgstr "seznam úèastníkù"
+
+#: Mailman/HTMLFormatter.py:304
+msgid " <p>Enter your "
+msgstr " <p>Zadejte Va¹i "
+
+#: Mailman/HTMLFormatter.py:306
+msgid " and password to visit the subscribers list: <p><center> "
+msgstr "a heslo k pøístupu do seznamu úèastníkù: <p><center> "
+
+#: Mailman/HTMLFormatter.py:311
+msgid "Password: "
+msgstr " Heslo: "
+
+#: Mailman/HTMLFormatter.py:315
+msgid "Visit Subscriber List"
+msgstr "Zobraz seznam úèastníkù"
+
+#: Mailman/HTMLFormatter.py:345
+msgid "Once a month, your password will be emailed to you as a reminder."
+msgstr "Jednou mìsíènì Vám bude heslo pro pøipomenutí zasláno."
+
+#: Mailman/HTMLFormatter.py:391
+msgid "The current archive"
+msgstr "aktuální archiv"
+
+#: Mailman/Handlers/Acknowledge.py:59
+msgid "%(realname)s post acknowledgement"
+msgstr "Konference %(realname)s - potvrzení o pøijetí pøíspìvku k distribuci"
+
+#: Mailman/Handlers/CalcRecips.py:68
+msgid ""
+"Your urgent message to the %(realname)s mailing list was not authorized for\n"
+"delivery. The original message as received by Mailman is attached.\n"
+msgstr ""
+"Va¹e urgentní zpráva do konference %(realname)s \n"
+"neobsahovala potøebné heslo. Zprávu Vám v pøíloze vracíme, tak\n"
+"jak jsme ji obdr¾eli. \n"
+
+#: Mailman/Handlers/Emergency.py:29
+msgid "Emergency hold on all list traffic is in effect"
+msgstr "Je aktivní nouzová moderace v¹ech zpráv"
+
+#: Mailman/Handlers/Emergency.py:30 Mailman/Handlers/Hold.py:58
+msgid "Your message was deemed inappropriate by the moderator."
+msgstr "Vá¹ pøíspìvek byl moderátorem shledán nepøijatelným."
+
+#: Mailman/Handlers/Hold.py:53
+msgid "Sender is explicitly forbidden"
+msgstr "Odesílatel je explicitnì zakázán"
+
+#: Mailman/Handlers/Hold.py:54
+msgid "You are forbidden from posting messages to this list."
+msgstr "Máte zakázáno pøispívat do této konference."
+
+#: Mailman/Handlers/Hold.py:57
+msgid "Post to moderated list"
+msgstr "Pøíspìvek do moderované konference"
+
+#: Mailman/Handlers/Hold.py:61
+msgid "Post by non-member to a members-only list"
+msgstr "Pøíspìvek do od neèlena do konference s pøispíváním omezeným na èleny"
+
+#: Mailman/Handlers/Hold.py:62
+msgid "Non-members are not allowed to post messages to this list."
+msgstr "Do této konference smí pøispívat jen její úèastníci."
+
+#: Mailman/Handlers/Hold.py:65
+msgid "Posting to a restricted list by sender requires approval"
+msgstr "Do konference není mo¾né pøispívat bez souhlasu moderátora"
+
+#: Mailman/Handlers/Hold.py:66
+msgid "This list is restricted; your message was not approved."
+msgstr ""
+"Tato konference není veøejnì pøístupná, Vás pøíspìvek nebyl akceptován."
+
+#: Mailman/Handlers/Hold.py:69
+msgid "Too many recipients to the message"
+msgstr "Zpráva obsahuje pøíli¹ mnoho pøíjemcù"
+
+#: Mailman/Handlers/Hold.py:70
+msgid "Please trim the recipient list; it is too long."
+msgstr "Prosím, zkra»te seznam pøíjemcù, je pøíli¹ dlouhý."
+
+#: Mailman/Handlers/Hold.py:73
+msgid "Message has implicit destination"
+msgstr "Zpráva neobsahuje korektního (¾ádného) pøíjemce"
+
+#: Mailman/Handlers/Hold.py:74
+msgid ""
+"Blind carbon copies or other implicit destinations are\n"
+"not allowed. Try reposting your message by explicitly including the list\n"
+"address in the To: or Cc: fields."
+msgstr ""
+"Slepé kopie ani jiné zpùsoby zaslání pøíspìvku tak, ¾e neobsahuje v polích "
+"To:\n"
+"nebo CC: adresu konference, nejsou povoleny. Prosím za¹lete pøíspìvek znovu "
+"tak, aby\n"
+"obsahoval adresu konference v jednom z tìchto polí. \n"
+"Toto opatøení je nutné pro zamezení spamování pøes na¹i konferenci."
+
+#: Mailman/Handlers/Hold.py:79
+msgid "Message may contain administrivia"
+msgstr "Zpráva pravdìpodobnì obsahuje pøíkazy pro listserver"
+
+#: Mailman/Handlers/Hold.py:84
+msgid ""
+"Please do *not* post administrative requests to the mailing\n"
+"list. If you wish to subscribe, visit %(listurl)s or send a message with "
+"the\n"
+"word `help' in it to the request address, %(request)s, for further\n"
+"instructions."
+msgstr ""
+"Prosím, nezasílejte administrativní po¾adavky na adresu konference.\n"
+"Pokud se chcete pøihlásit, nav¹tivte stránky konference na adrese:\n"
+"%(listurl)s\n"
+"nebo za¹lete na adresu %(request)s zprávu obsahující jako Subject: slovo "
+"'help' a získáte bli¾¹í informace."
+
+#: Mailman/Handlers/Hold.py:90
+msgid "Message has a suspicious header"
+msgstr "Vá¹ pøíspìvek má neplatnou hlavièku."
+
+#: Mailman/Handlers/Hold.py:91
+msgid "Your message had a suspicious header."
+msgstr "Vá¹ pøíspìvek má neplatnou hlavièku."
+
+#: Mailman/Handlers/Hold.py:101
+msgid ""
+"Message body is too big: %(size)d bytes with a limit of\n"
+"%(limit)d KB"
+msgstr ""
+"Tìlo zprávy je pøíli¹ veliké: %(size)d bytù, kde¾to limit je %(limit)d KB."
+
+#: Mailman/Handlers/Hold.py:106
+msgid ""
+"Your message was too big; please trim it to less than\n"
+"%(kb)d KB in size."
+msgstr ""
+"Va¹e zpráva je pøíli¹ veliká, prosím zkra»te ji na \n"
+"%(kb)d KB."
+
+#: Mailman/Handlers/Hold.py:110
+msgid "Posting to a moderated newsgroup"
+msgstr "Pøíspìvek do moderované konference"
+
+#: Mailman/Handlers/Hold.py:233
+msgid "Your message to %(listname)s awaits moderator approval"
+msgstr "Vá¹ pøíspìvek do konference %(listname)s èeká na schválení moderátorem"
+
+#: Mailman/Handlers/Hold.py:253
+msgid "%(listname)s post from %(sender)s requires approval"
+msgstr ""
+"Pøíspìvek od %(sender)s do konference %(listname)s vy¾aduje souhlas "
+"moderátora."
+
+#: Mailman/Handlers/Hold.py:260
+msgid ""
+"If you reply to this message, keeping the Subject: header intact, Mailman "
+"will\n"
+"discard the held message. Do this if the message is spam. If you reply to\n"
+"this message and include an Approved: header with the list password in it, "
+"the\n"
+"message will be approved for posting to the list. The Approved: header can\n"
+"also appear in the first line of the body of the reply."
+msgstr ""
+"Pokud odpovíte na tuto zprávu a necháte její Subject: beze zmìny, Mailman\n"
+"zahodí originální pøíspìvek. To mù¾ete udìlat napø se spamem. Pokud na "
+"zprávu\n"
+"odpovíte a navíc pøidáte hlavièku Approved: obsahující jako hodnotu heslo\n"
+"konference, pøíspìvek bude rozeslán. Pokud Vá¹ klient el. po¹ty neumí\n"
+"pøidat dal¹í hlavièku, mù¾ete ji dát i na první øádek v tìle zprávy."
+
+#: Mailman/Handlers/MimeDel.py:56
+msgid "The message's content type was explicitly disallowed"
+msgstr "Content type tohoto pøíspìvku byl výslovnì zakázán"
+
+#: Mailman/Handlers/MimeDel.py:61
+msgid "The message's content type was not explicitly allowed"
+msgstr "Content type této zprávy nebyl explicitnì povolen"
+
+#: Mailman/Handlers/MimeDel.py:73
+msgid "After content filtering, the message was empty"
+msgstr "Po pøefiltrování obsahu nezbyl ¾ádný text k odeslání"
+
+#: Mailman/Handlers/MimeDel.py:208
+msgid ""
+"The attached message matched the %(listname)s mailing list's content "
+"filtering\n"
+"rules and was prevented from being forwarded on to the list membership. "
+"You\n"
+"are receiving the only remaining copy of the discarded message.\n"
+"\n"
+msgstr ""
+"Pøilo¾ená zpráva nebyla rozeslána do konference %(listname)s, proto¾e \n"
+"filtry na obsah zprávy, které jsou v konferenci aktivní, oznaèily její "
+"obsah\n"
+"za nepøijatelný.\n"
+"Tato vrácená zpráva je jedinou kopií va¹eho pøíspìvku. Na serveru nebyla\n"
+"ulo¾ena a ani nebyla nikam rozeslána.\n"
+"\n"
+
+#: Mailman/Handlers/MimeDel.py:214
+msgid "Content filtered message notification"
+msgstr "Zpráva o filtraci obsahu pøíspìvku"
+
+#: Mailman/Handlers/Moderate.py:138
+msgid ""
+"You are not allowed to post to this mailing list, and your message has been\n"
+"automatically rejected. If you think that your messages are being rejected "
+"in\n"
+"error, contact the mailing list owner at %(listowner)s."
+msgstr ""
+"Nemáte povoleno pøispívat do této konference a tak byl pøíspìvek "
+"automaticky\n"
+"zamítnut a vrácen. Pokud máte pocit, ¾e je to chyba, mù¾ete kontaktovat\n"
+"správce konference na adrese %(listowner)s."
+
+#: Mailman/Handlers/Moderate.py:153
+msgid "Auto-discard notification"
+msgstr "Upozornìní na automatické zahození pøíspìvku"
+
+#: Mailman/Handlers/Moderate.py:156
+msgid "The attached message has been automatically discarded."
+msgstr "Pøilo¾ená zpráva byla automaticky zahozena."
+
+#: Mailman/Handlers/Replybot.py:74
+msgid "Auto-response for your message to "
+msgstr "Automatická odpovìï na zprávu pro "
+
+#: Mailman/Handlers/Replybot.py:75
+msgid "the \"%(realname)s\" mailing list"
+msgstr "konference \"%(realname)s\" "
+
+#: Mailman/Handlers/Replybot.py:107
+msgid "The Mailman Replybot"
+msgstr "Odpovídací robot"
+
+#: Mailman/Handlers/Scrubber.py:148
+msgid "HTML attachment scrubbed and removed"
+msgstr "Pøíspìvek byl vyèi¹tìn a HTML èást byla odstranìna"
+
+#: Mailman/Handlers/Scrubber.py:162 Mailman/Handlers/Scrubber.py:188
+msgid ""
+"An HTML attachment was scrubbed...\n"
+"URL: %(url)s\n"
+msgstr ""
+"HTML pøíloha byla odstranìna...\n"
+"URL: %(url)s\n"
+
+#: Mailman/Handlers/Scrubber.py:201
+msgid "no subject"
+msgstr "no subject"
+
+#: Mailman/Handlers/Scrubber.py:202
+msgid "no date"
+msgstr "bez data"
+
+#: Mailman/Handlers/Scrubber.py:203
+msgid "unknown sender"
+msgstr "neznámý odesílatel"
+
+#: Mailman/Handlers/Scrubber.py:205
+msgid ""
+"An embedded message was scrubbed...\n"
+"From: %(who)s\n"
+"Subject: %(subject)s\n"
+"Date: %(date)s\n"
+"Size: %(size)s\n"
+"Url: %(url)s\n"
+msgstr ""
+"Vlo¾ená zpráv byla odstranìna...\n"
+"Od: %(who)s\n"
+"Subject: %(subject)s\n"
+"Datum: %(date)s\n"
+"Velikost: %(size)s\n"
+"Url: %(url)s\n"
+
+#: Mailman/Handlers/Scrubber.py:228
+msgid ""
+"A non-text attachment was scrubbed...\n"
+"Name: %(filename)s\n"
+"Type: %(ctype)s\n"
+"Size: %(size)d bytes\n"
+"Desc: %(desc)s\n"
+"Url : %(url)s\n"
+msgstr ""
+"Netextová pøíloha byla odstranìna...\n"
+"Jméno: %(filename)s\n"
+"Typ: %(ctype)s\n"
+"Velikost: %(size)d bytes\n"
+"Popis: %(desc)s\n"
+"Url : %(url)s\n"
+
+#: Mailman/Handlers/Scrubber.py:258
+msgid "Skipped content of type %(partctype)s"
+msgstr "Zde byl umístìn nepøijatelný obsah typu: %(partctype)s"
+
+#: Mailman/Handlers/Scrubber.py:275
+msgid "-------------- next part --------------\n"
+msgstr "------------- dal¹í èást ---------------\n"
+
+#: Mailman/Handlers/ToDigest.py:141
+msgid "%(realname)s Digest, Vol %(volume)d, Issue %(issue)d"
+msgstr "%(realname)s Digest, Vol %(volume)d, Issue %(issue)d"
+
+#: Mailman/Handlers/ToDigest.py:181
+msgid "digest header"
+msgstr "Záhlaví Digest zprávy"
+
+#: Mailman/Handlers/ToDigest.py:184
+msgid "Digest Header"
+msgstr "Záhlaví Digest zprávy"
+
+#: Mailman/Handlers/ToDigest.py:197
+msgid "Today's Topics:\n"
+msgstr "Dne¹ní menu:\n"
+
+#: Mailman/Handlers/ToDigest.py:267
+msgid "Today's Topics (%(msgcount)d messages)"
+msgstr "Dne¹ní menu (%(msgcount)d zpráv):"
+
+#: Mailman/Handlers/ToDigest.py:292
+msgid "digest footer"
+msgstr "Patièka digestu"
+
+#: Mailman/Handlers/ToDigest.py:295
+msgid "Digest Footer"
+msgstr "Patièka digestu"
+
+#: Mailman/Handlers/ToDigest.py:309
+msgid "End of "
+msgstr "Konec: "
+
+#: Mailman/ListAdmin.py:307
+msgid "Posting of your message titled \"%(subject)s\""
+msgstr "Va¹e zpráva ve vìci %(subject)s\""
+
+#: Mailman/ListAdmin.py:346
+msgid "Forward of moderated message"
+msgstr "Forwardovat moderovanou zprávu"
+
+#: Mailman/ListAdmin.py:405
+msgid "New subscription request to list %(realname)s from %(addr)s"
+msgstr "Po¾adavek na pøihlá¹ení do konference %(realname)s od %(addr)s"
+
+#: Mailman/ListAdmin.py:428
+msgid "Subscription request"
+msgstr "®ádost o pøihlá¹ení"
+
+#: Mailman/ListAdmin.py:458
+msgid "New unsubscription request from %(realname)s by %(addr)s"
+msgstr "Po¾adavek na pøihlá¹ení do konference %(realname)s od %(addr)s"
+
+#: Mailman/ListAdmin.py:481
+msgid "Unsubscription request"
+msgstr "®ádost o odhlá¹ení"
+
+#: Mailman/ListAdmin.py:512
+msgid "Original Message"
+msgstr "Pùvodní zpráva"
+
+#: Mailman/ListAdmin.py:515
+msgid "Request to mailing list %(realname)s rejected"
+msgstr "Po¾adavek do konference %(realname)s byl zamítnut."
+
+#: Mailman/MTA/Manual.py:57
+msgid ""
+"The mailing list `%(listname)s' has been created via the through-the-web\n"
+"interface. In order to complete the activation of this mailing list, the\n"
+"proper /etc/aliases (or equivalent) file must be updated. The program\n"
+"`newaliases' may also have to be run.\n"
+"\n"
+"Here are the entries for the /etc/aliases file:\n"
+msgstr ""
+"Prostøednictvím webovského rozhraní byla zalo¾ena konference\n"
+"`%(listname)s'.\n"
+"Aby bylo mo¾né zasílat pøíspìvky, musíte je¹tì ruènì doplnit\n"
+"do souboru /etc/aliases tyto øádky: (Asi bude nutné následnì spustit\n"
+"pøíkaz newaliases).\n"
+
+#: Mailman/MTA/Manual.py:67
+msgid ""
+"\n"
+"To finish creating your mailing list, you must edit your /etc/aliases (or\n"
+"equivalent) file by adding the following lines, and possibly running the\n"
+"`newaliases' program:\n"
+"\n"
+"## %(listname)s mailing list"
+msgstr ""
+"\n"
+"Aby bylo mo¾né zasílat pøíspìvky, musíte je¹tì ruènì doplnit\n"
+"do souboru /etc/aliases tyto øádky: (Asi bude nutné následnì spustit\n"
+"pøíkaz newaliases).\n"
+"## %(listname)s mailing list"
+
+#: Mailman/MTA/Manual.py:88
+msgid "Mailing list creation request for list %(listname)s"
+msgstr "Administrativní po¾adavky pro konferenci '%(listname)s' "
+
+#: Mailman/MTA/Manual.py:103
+msgid ""
+"The mailing list `%(listname)s' has been removed via the through-the-web\n"
+"interface. In order to complete the de-activation of this mailing list, "
+"the\n"
+"appropriate /etc/aliases (or equivalent) file must be updated. The program\n"
+"`newaliases' may also have to be run.\n"
+"\n"
+"Here are the entries in the /etc/aliases file that should be removed:\n"
+msgstr ""
+"Konference `%(listname)s' byla zru¹ena pøes webovské rozhraní.\n"
+"Nyní je nutné zru¹it ze souboru /etc/aliases následující øádky: \n"
+"(Asi bude nutné potom spustit pøíkaz newaliases.)\n"
+"\n"
+
+#: Mailman/MTA/Manual.py:113
+msgid ""
+"\n"
+"To finish removing your mailing list, you must edit your /etc/aliases (or\n"
+"equivalent) file by removing the following lines, and possibly running the\n"
+"`newaliases' program:\n"
+"\n"
+"## %(listname)s mailing list"
+msgstr ""
+"\n"
+"Nyní je nutné zru¹it ze souboru /etc/aliases následující øádky: \n"
+"(Asi bude nutné potom spustit pøíkaz newaliases.)\n"
+"\n"
+"## %(listname)s mailing list"
+
+#: Mailman/MTA/Manual.py:132
+msgid "Mailing list removal request for list %(listname)s"
+msgstr "Po¾adavek na zru¹ení konference %(listname)s"
+
+#: Mailman/MTA/Postfix.py:300
+msgid "checking permissions on %(file)s"
+msgstr "Ovìøuji práva souboru %(file)s"
+
+#: Mailman/MTA/Postfix.py:310
+msgid "%(file)s permissions must be 066x (got %(octmode)s)"
+msgstr "Práva na souboru: %(file)s musí být 066x (jsou %(octmode)s)"
+
+#: Mailman/MTA/Postfix.py:312 Mailman/MTA/Postfix.py:339 bin/check_perms:100
+#: bin/check_perms:122 bin/check_perms:132 bin/check_perms:143
+#: bin/check_perms:162 bin/check_perms:180 bin/check_perms:200
+#: bin/check_perms:224 bin/check_perms:244 bin/check_perms:258
+#: bin/check_perms:278 bin/check_perms:315
+msgid "(fixing)"
+msgstr "(opravuji)"
+
+#: Mailman/MTA/Postfix.py:328
+msgid "checking ownership of %(dbfile)s"
+msgstr "Ovìøuji práva souboru %(dbfile)s"
+
+#: Mailman/MTA/Postfix.py:336
+msgid "%(dbfile)s owned by %(owner)s (must be owned by %(user)s"
+msgstr ""
+"Soubor %(dbfile)s patøí u¾ivateli %(owner)s (musí být vlastnìn %(user)s)"
+
+#: Mailman/MailList.py:697
+msgid "You have been invited to join the %(listname)s mailing list"
+msgstr "Byl jste pozván, abyste se pøihlásil do konference %(listname)s."
+
+#: Mailman/MailList.py:801 Mailman/MailList.py:1157
+msgid " from %(remote)s"
+msgstr "od %(remote)s"
+
+#: Mailman/MailList.py:835
+msgid "subscriptions to %(realname)s require moderator approval"
+msgstr "pøihlá¹ky do konference %(realname)s vy¾adují souhlas moderátora"
+
+#: Mailman/MailList.py:894 bin/add_members:281
+msgid "%(realname)s subscription notification"
+msgstr "%(realname)s zpráva o pøihlá¹ení."
+
+#: Mailman/MailList.py:909
+msgid "unsubscriptions require moderator approval"
+msgstr "odhlá¹ení z konference vy¾aduje souhlas moderátora"
+
+#: Mailman/MailList.py:928
+msgid "%(realname)s unsubscribe notification"
+msgstr "%(realname)s zpráva o odhlá¹ení"
+
+#: Mailman/MailList.py:1072
+msgid "subscriptions to %(name)s require administrator approval"
+msgstr "pøihlá¹ky do konference %(name)s vy¾adují souhlas moderátora"
+
+#: Mailman/MailList.py:1326
+msgid "Last autoresponse notification for today"
+msgstr "Poslední dne¹ní automatická odpovìï"
+
+#: Mailman/Queue/BounceRunner.py:179
+msgid ""
+"The attached message was received as a bounce, but either the bounce format\n"
+"was not recognized, or no member addresses could be extracted from it. "
+"This\n"
+"mailing list has been configured to send all unrecognized bounce messages "
+"to\n"
+"the list administrator(s).\n"
+"\n"
+"For more information see:\n"
+"%(adminurl)s\n"
+"\n"
+msgstr ""
+"Pøilo¾ený pøíspìvek byl vrácen jako nedoruèitelný, nicménì\n"
+"automatický systém pro detekci neplatných adres v nìm nedokázal\n"
+"nalézt adresu, která není platná - zpùsobila vrácení pøíspìvku.\n"
+"Tato konference je nakonfigurována tak, ¾e taková chybová hlá¹ení\n"
+"pøeposílá administrátorovi.\n"
+"\n"
+"Dal¹í informace naleznete na adrese:\n"
+"%(adminurl)s\n"
+"\n"
+
+#: Mailman/Queue/BounceRunner.py:189
+msgid "Uncaught bounce notification"
+msgstr "Nesrozumitelné oznámení o nedoruèitelnosti"
+
+#: Mailman/Queue/CommandRunner.py:74
+msgid "Ignoring non-text/plain MIME parts"
+msgstr "Ignoruji MIME èásti jiného typu ne¾ text/plain"
+
+#: Mailman/Queue/CommandRunner.py:129
+msgid ""
+"The results of your email command are provided below.\n"
+"Attached is your original message.\n"
+msgstr ""
+"Ní¾e naleznete výsledek pøíkazù, které jste zaslal.\n"
+"Pøikládám i pùvodní emailovou zprávu.\n"
+
+#: Mailman/Queue/CommandRunner.py:134
+msgid "- Results:"
+msgstr "- Výsledky:"
+
+#: Mailman/Queue/CommandRunner.py:140
+msgid ""
+"\n"
+"- Unprocessed:"
+msgstr ""
+"\n"
+" Nezpracováno:"
+
+#: Mailman/Queue/CommandRunner.py:143
+msgid ""
+"\n"
+"- Ignored:"
+msgstr ""
+"\n"
+" Ignorováno:"
+
+#: Mailman/Queue/CommandRunner.py:145
+msgid ""
+"\n"
+"- Done.\n"
+"\n"
+msgstr ""
+"\n"
+" Hotovo:\n"
+" \n"
+
+#: Mailman/Queue/CommandRunner.py:163
+msgid "The results of your email commands"
+msgstr "Výsledky pøíkazù zaslaných e-mailem"
+
+#: Mailman/htmlformat.py:627
+msgid "Delivered by Mailman<br>version %(version)s"
+msgstr "Doruèeno Mailmanem<br>verze %(version)s"
+
+#: Mailman/htmlformat.py:628
+msgid "Python Powered"
+msgstr "Python Powered"
+
+#: Mailman/htmlformat.py:629
+msgid "Gnu's Not Unix"
+msgstr "Gnu's Not Unix"
+
+#: Mailman/i18n.py:86
+msgid "Mon"
+msgstr "Pondìlí"
+
+#: Mailman/i18n.py:86
+msgid "Thu"
+msgstr "Ètvrtek"
+
+#: Mailman/i18n.py:86
+msgid "Tue"
+msgstr "Úterý"
+
+#: Mailman/i18n.py:86
+msgid "Wed"
+msgstr "Støeda"
+
+#: Mailman/i18n.py:87
+msgid "Fri"
+msgstr "Pátek"
+
+#: Mailman/i18n.py:87
+msgid "Sat"
+msgstr "Sobota"
+
+#: Mailman/i18n.py:87
+msgid "Sun"
+msgstr "Nedìle"
+
+#: Mailman/i18n.py:91
+msgid "Apr"
+msgstr "Duben"
+
+#: Mailman/i18n.py:91
+msgid "Feb"
+msgstr "Únor"
+
+#: Mailman/i18n.py:91
+msgid "Jan"
+msgstr "Leden"
+
+#: Mailman/i18n.py:91
+msgid "Jun"
+msgstr "Èerven"
+
+#: Mailman/i18n.py:91
+msgid "Mar"
+msgstr "Bøezen"
+
+#: Mailman/i18n.py:92
+msgid "Aug"
+msgstr "Srpen"
+
+#: Mailman/i18n.py:92
+msgid "Dec"
+msgstr "Prosinec"
+
+#: Mailman/i18n.py:92
+msgid "Jul"
+msgstr "Èervenec"
+
+#: Mailman/i18n.py:92
+msgid "Nov"
+msgstr "Listopad"
+
+#: Mailman/i18n.py:92
+msgid "Oct"
+msgstr "Øíjen"
+
+#: Mailman/i18n.py:92
+msgid "Sep"
+msgstr "Záøí"
+
+#: Mailman/i18n.py:95
+msgid "Server Local Time"
+msgstr "Místní èas serveru"
+
+#: Mailman/i18n.py:128
+msgid ""
+"%(wday)s %(mon)s %(day)2i %(hh)02i:%(mm)02i:%(ss)02i %(tzname)s %(year)04i"
+msgstr ""
+"%(wday)s %(mon)s %(day)2i %(hh)02i:%(mm)02i:%(ss)02i %(tzname)s %(year)04i"
+
+#: bin/add_members:26
+msgid ""
+"Add members to a list from the command line.\n"
+"\n"
+"Usage:\n"
+" add_members [options] listname\n"
+"\n"
+"Options:\n"
+"\n"
+" --regular-members-file=file\n"
+" -r file\n"
+" A file containing addresses of the members to be added, one\n"
+" address per line. This list of people become non-digest\n"
+" members. If file is `-', read addresses from stdin. Note that\n"
+" -n/--non-digest-members-file are deprecated synonyms for this "
+"option.\n"
+"\n"
+" --digest-members-file=file\n"
+" -d=file\n"
+" Similar to above, but these people become digest members.\n"
+"\n"
+" --changes-msg=<y|n>\n"
+" -c <y|n> \n"
+"\tSet whether or not to send the list members the `there's going to be\n"
+"\tbig changes to your list' message. defaults to no.\n"
+"\n"
+" --welcome-msg=<y|n>\n"
+" -w <y|n>\n"
+" Set whether or not to send the list members a welcome message,\n"
+" overriding whatever the list's `send_welcome_msg' setting is.\n"
+"\n"
+" --admin-notify=<y|n>\n"
+" -a <y|n>\n"
+" Set whether or not to send the list administrators a notification "
+"on\n"
+" the success/failure of these subscriptions, overriding whatever the\n"
+" list's `admin_notify_mchanges' setting is.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname\n"
+" The name of the Mailman list you are adding members to. It must\n"
+" already exist.\n"
+"\n"
+"You must supply at least one of -r and -d options. At most one of the\n"
+"files can be `-'.\n"
+msgstr ""
+
+#: bin/add_members:134
+msgid "Big change in %(listname)s@%(listhost)s mailing list"
+msgstr "Velká zmìna v konferenci %(listname)s@%(listhost)s."
+
+#: bin/add_members:167
+msgid "Already a member: %(member)s"
+msgstr "Je ji¾ úèastníkem %(member)s"
+
+#: bin/add_members:170
+msgid "Bad/Invalid email address: blank line"
+msgstr "Neplatná emailová adresa: prázdný øádek"
+
+#: bin/add_members:172
+msgid "Bad/Invalid email address: %(member)s"
+msgstr "Neplatná emailová adresa: %(member)s"
+
+#: bin/add_members:174
+msgid "Hostile address (illegal characters): %(member)s"
+msgstr "Neplatná adresa (obsahuje nepovolené znaky): %(member)s"
+
+#: bin/add_members:176
+msgid "Subscribed: %(member)s"
+msgstr "Pøihlá¹en: %(member)s"
+
+#: bin/add_members:223
+msgid "Bad argument to -c/--changes-msg: %(arg)s"
+msgstr "Chybný parametr u -c/--changes-msg: %(arg)s"
+
+#: bin/add_members:230
+msgid "Bad argument to -w/--welcome-msg: %(arg)s"
+msgstr "Chybný parametr u -w/--welcome-msg: %(arg)s"
+
+#: bin/add_members:237
+msgid "Bad argument to -a/--admin-notify: %(arg)s"
+msgstr "Chybný parametr u -a/--admin-notify: %(arg)s"
+
+#: bin/add_members:243
+msgid "Cannot read both digest and normal members from standard input."
+msgstr ""
+"Nemohu èíst ze standardního vstupu jak bì¾né úèastníky, tak úèastníky "
+"vyu¾ívající digest."
+
+#: bin/add_members:249 bin/config_list:105 bin/find_member:97 bin/inject:90
+#: bin/list_admins:89 bin/list_members:187 bin/sync_members:222
+#: cron/bumpdigests:86
+msgid "No such list: %(listname)s"
+msgstr "Nenalezl jsem konferenci %(listname)s"
+
+#: bin/add_members:269 bin/change_pw:158 bin/check_db:114 bin/sync_members:244
+#: cron/bumpdigests:78
+msgid "Nothing to do."
+msgstr "®ádný pøíkaz."
+
+#: bin/arch:19
+msgid ""
+"Rebuild a list's archive.\n"
+"\n"
+"Use this command to rebuild the archives for a mailing list. You may want "
+"to\n"
+"do this if you edit some messages in an archive, or remove some messages "
+"from\n"
+"an archive.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] <listname> [<mbox>]\n"
+"\n"
+"Where options are:\n"
+" -h / --help\n"
+" Print this help message and exit.\n"
+"\n"
+" -q / --quiet\n"
+" Make the archiver output less verbose.\n"
+"\n"
+" --wipe\n"
+" First wipe out the original archive before regenerating. You "
+"usually\n"
+" want to specify this argument unless you're generating the archive "
+"in\n"
+" chunks.\n"
+"\n"
+" -s N\n"
+" --start=N\n"
+" Start indexing at article N, where article 0 is the first in the "
+"mbox.\n"
+" Defaults to 0.\n"
+"\n"
+" -e M\n"
+" --end=M\n"
+" End indexing at article M. This script is not very efficient with\n"
+" respect to memory management, and for large archives, it may not be\n"
+" possible to index the mbox entirely. For that reason, you can "
+"specify\n"
+" the start and end article numbers.\n"
+"\n"
+"Where <mbox> is the path to a list's complete mbox archive. Usually this "
+"will\n"
+"be some path in the archives/private directory. For example:\n"
+"\n"
+"%% bin/arch mylist archives/private/mylist.mbox/mylist.mbox\n"
+"\n"
+"<mbox> is optional. If it is missing, it is calculated.\n"
+msgstr ""
+
+#: bin/arch:125
+msgid "listname is required"
+msgstr "Jméno konference je vy¾adováno."
+
+#: bin/arch:143 bin/change_pw:106 bin/config_list:242
+msgid ""
+"No such list \"%(listname)s\"\n"
+"%(e)s"
+msgstr ""
+"Nenalezl jsem konferenci %(listname)s: \n"
+"%(e)s"
+
+#: bin/arch:170
+msgid "Cannot open mbox file %(mbox)s: %(msg)s"
+msgstr "Nemohu otevøít mbox %(mbox)s: %(msg)s"
+
+#: bin/b4b5-archfix:19
+msgid ""
+"Fix the MM2.1b4 archives.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] file ...\n"
+"\n"
+"Where options are:\n"
+" -h / --help\n"
+" Print this help message and exit.\n"
+"\n"
+"Only use this to `fix' some archive database files that may have gotten\n"
+"written in Mailman 2.1b4 with some bogus data. Use like this from your\n"
+"$PREFIX directory\n"
+"\n"
+"%% %(PROGRAM)s `grep -l _mlist archives/private/*/database/*-article`\n"
+"\n"
+"(note the backquotes are required)\n"
+"\n"
+"You will need to run `bin/check_perms -f' after running this script.\n"
+msgstr ""
+
+#: bin/change_pw:19
+msgid ""
+"Change a list's password.\n"
+"\n"
+"Prior to Mailman 2.1, list passwords were kept in crypt'd format -- "
+"usually.\n"
+"Some Python installations didn't have the crypt module available, so they'd\n"
+"fall back to md5. Then suddenly the Python installation might grow a crypt\n"
+"module and all list passwords would be broken.\n"
+"\n"
+"In Mailman 2.1, all list and site passwords are stored in SHA1 hexdigest\n"
+"form. This breaks list passwords for all existing pre-Mailman 2.1 lists, "
+"and\n"
+"since those passwords aren't stored anywhere in plain text, they cannot be\n"
+"retrieved and updated.\n"
+"\n"
+"Thus, this script generates new passwords for a list, and optionally sends "
+"it\n"
+"to all the owners of the list.\n"
+"\n"
+"Usage: change_pw [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" --all / -a\n"
+" Change the password for all lists.\n"
+"\n"
+" --domain=domain\n"
+" -d domain\n"
+" Change the password for all lists in the virtual domain `domain'. "
+"It\n"
+" is okay to give multiple -d options.\n"
+"\n"
+" --listname=listname\n"
+" -l listname\n"
+" Change the password only for the named list. It is okay to give\n"
+" multiple -l options.\n"
+"\n"
+" --password=newpassword\n"
+" -p newpassword\n"
+" Use the supplied plain text password `newpassword' as the new "
+"password\n"
+" for any lists that are being changed (as specified by the -a, -d, "
+"and\n"
+" -l options). If not given, lists will be assigned a randomly\n"
+" generated new password.\n"
+"\n"
+" --quiet / -q\n"
+" Don't notify list owners of the new password. You'll have to have\n"
+" some other way of letting the list owners know the new password\n"
+" (presumably out-of-band).\n"
+"\n"
+" --help / -h\n"
+" Print this help message and exit.\n"
+msgstr ""
+
+#: bin/change_pw:144
+msgid "Bad arguments: %(strargs)s"
+msgstr "Chybné argumenty: %(strargs)s"
+
+#: bin/change_pw:148
+msgid "Empty list passwords are not allowed"
+msgstr "Není dovoleno, aby správce konference mìl prázdné heslo."
+
+#: bin/change_pw:179
+msgid "New %(listname)s password: %(notifypassword)s"
+msgstr "Nové heslo pro konferenci %(listname)s: %(notifypassword)s"
+
+#: bin/change_pw:188
+msgid "Your new %(listname)s list password"
+msgstr "Va¹e nové heslo pro %(listname)s"
+
+#: bin/change_pw:189
+msgid ""
+"The site administrator at %(hostname)s has changed the password for your\n"
+"mailing list %(listname)s. It is now\n"
+"\n"
+" %(notifypassword)s\n"
+"\n"
+"Please be sure to use this for all future list administration. You may "
+"want\n"
+"to log in now to your list and change the password to something more to "
+"your\n"
+"liking. Visit your list admin page at\n"
+"\n"
+" %(adminurl)s\n"
+msgstr ""
+
+#: bin/check_db:19
+msgid ""
+"Check a list's config database file for integrity.\n"
+"\n"
+"All of the following files are checked:\n"
+"\n"
+" config.pck\n"
+" config.pck.last\n"
+" config.db\n"
+" config.db.last\n"
+" config.safety\n"
+"\n"
+"It's okay if any of these are missing. config.pck and config.pck.last are\n"
+"pickled versions of the config database file for 2.1a3 and beyond. config."
+"db\n"
+"and config.db.last are used in all earlier versions, and these are Python\n"
+"marshals. config.safety is a pickle written by 2.1a3 and beyond when the\n"
+"primary config.pck file could not be read.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname [listname ...]]\n"
+"\n"
+"Options:\n"
+"\n"
+" --all / -a\n"
+" Check the databases for all lists. Otherwise only the lists named "
+"on\n"
+" the command line are checked.\n"
+"\n"
+" --verbose / -v\n"
+" Verbose output. The state of every tested file is printed.\n"
+" Otherwise only corrupt files are displayed.\n"
+"\n"
+" --help / -h\n"
+" Print this text and exit.\n"
+msgstr ""
+
+#: bin/check_db:119
+msgid "No list named:"
+msgstr ""
+
+#: bin/check_db:128
+msgid "List:"
+msgstr "Konference: "
+
+#: bin/check_db:148
+msgid " %(file)s: okay"
+msgstr ""
+
+#: bin/check_perms:19
+msgid ""
+"Check the permissions for the Mailman installation.\n"
+"\n"
+"Usage: %(PROGRAM)s [-f] [-v] [-h]\n"
+"\n"
+"With no arguments, just check and report all the files that have bogus\n"
+"permissions or group ownership. With -f (and run as root), fix all the\n"
+"permission problems found. With -v be verbose.\n"
+"\n"
+msgstr ""
+
+#: bin/check_perms:85
+msgid " checking gid and mode for %(path)s"
+msgstr ""
+
+#: bin/check_perms:97
+msgid "%(path)s bad group (has: %(groupname)s, expected %(MAILMAN_GROUP)s)"
+msgstr ""
+
+#: bin/check_perms:120
+msgid "directory permissions must be %(octperms)s: %(path)s"
+msgstr ""
+
+#: bin/check_perms:129
+msgid "source perms must be %(octperms)s: %(path)s"
+msgstr ""
+
+#: bin/check_perms:140
+msgid "article db files must be %(octperms)s: %(path)s"
+msgstr ""
+
+#: bin/check_perms:152
+msgid "checking mode for %(prefix)s"
+msgstr ""
+
+#: bin/check_perms:160
+msgid "directory must be at least 02775: %(d)s"
+msgstr ""
+
+#: bin/check_perms:173
+msgid "checking perms on %(private)s"
+msgstr ""
+
+#: bin/check_perms:178
+msgid "%(private)s must not be other-readable"
+msgstr ""
+
+#: bin/check_perms:198
+msgid "mbox file must be at least 0660:"
+msgstr ""
+
+#: bin/check_perms:222
+msgid "%(dbdir)s \"other\" perms must be 000"
+msgstr ""
+
+#: bin/check_perms:233
+msgid "checking cgi-bin permissions"
+msgstr ""
+
+#: bin/check_perms:238
+msgid " checking set-gid for %(path)s"
+msgstr ""
+
+#: bin/check_perms:242
+msgid "%(path)s must be set-gid"
+msgstr ""
+
+#: bin/check_perms:252
+msgid "checking set-gid for %(wrapper)s"
+msgstr ""
+
+#: bin/check_perms:256
+msgid "%(wrapper)s must be set-gid"
+msgstr ""
+
+#: bin/check_perms:266
+msgid "checking permissions on %(pwfile)s"
+msgstr ""
+
+#: bin/check_perms:275
+msgid "%(pwfile)s permissions must be exactly 0640 (got %(octmode)s)"
+msgstr ""
+
+#: bin/check_perms:299
+msgid "checking permissions on list data"
+msgstr ""
+
+#: bin/check_perms:305
+msgid " checking permissions on: %(path)s"
+msgstr ""
+
+#: bin/check_perms:313
+msgid "file permissions must be at least 660: %(path)s"
+msgstr ""
+
+#: bin/check_perms:359
+msgid "No problems found"
+msgstr ""
+
+#: bin/check_perms:361
+msgid "Problems found:"
+msgstr ""
+
+#: bin/check_perms:362
+msgid "Re-run as %(MAILMAN_USER)s (or root) with -f flag to fix"
+msgstr ""
+
+#: bin/cleanarch:19
+msgid ""
+"Clean up an .mbox archive file.\n"
+"\n"
+"The archiver looks for Unix-From lines separating messages in an mbox "
+"archive\n"
+"file. For compatibility, it specifically looks for lines that start with\n"
+"\"From \" -- i.e. the letters capital-F, lowercase-r, o, m, space, ignoring\n"
+"everything else on the line.\n"
+"\n"
+"Normally, any lines that start \"From \" in the body of a message should be\n"
+"escaped such that a > character is actually the first on a line. It is\n"
+"possible though that body lines are not actually escaped. This script\n"
+"attempts to fix these by doing a stricter test of the Unix-From lines. Any\n"
+"lines that start \"From \" but do not pass this stricter test are escaped "
+"with a\n"
+"> character.\n"
+"\n"
+"Usage: cleanarch [options] < inputfile > outputfile\n"
+"Options:\n"
+" -s n\n"
+" --status=n\n"
+" Print a # character every n lines processed\n"
+"\n"
+" -q / --quiet\n"
+" Don't print changed line information to standard error.\n"
+"\n"
+" -n / --dry-run\n"
+" Don't actually output anything.\n"
+"\n"
+" -h / --help\n"
+" Print this message and exit\n"
+msgstr ""
+
+#: bin/cleanarch:82
+msgid "Unix-From line changed: %(lineno)d"
+msgstr ""
+
+#: bin/cleanarch:110
+msgid "Bad status number: %(arg)s"
+msgstr "Chybný stavový kód: %(arg)s"
+
+#: bin/cleanarch:160
+msgid "%(messages)d messages found"
+msgstr ""
+
+#: bin/clone_member:19
+msgid ""
+"Clone a member address.\n"
+"\n"
+"Cloning a member address means that a new member will be added who has all "
+"the\n"
+"same options and passwords as the original member address. Note that this\n"
+"operation is fairly trusting of the user who runs it -- it does no\n"
+"verification to the new address, it does not send out a welcome message, "
+"etc.\n"
+"\n"
+"The existing member's subscription is usually not modified in any way. If "
+"you\n"
+"want to remove the old address, use the -r flag. If you also want to "
+"change\n"
+"any list admin addresses, use the -a flag.\n"
+"\n"
+"Usage:\n"
+" clone_member [options] fromoldaddr tonewaddr\n"
+"\n"
+"Where:\n"
+"\n"
+" --listname=listname\n"
+" -l listname\n"
+" Check and modify only the named mailing lists. If -l is not given,\n"
+" then all mailing lists are scanned from the address. Multiple -l\n"
+" options can be supplied.\n"
+"\n"
+" --remove\n"
+" -r\n"
+" Remove the old address from the mailing list after it's been "
+"cloned.\n"
+"\n"
+" --admin\n"
+" -a\n"
+" Scan the list admin addresses for the old address, and clone or "
+"change\n"
+" them too.\n"
+"\n"
+" --quiet\n"
+" -q\n"
+" Do the modifications quietly.\n"
+"\n"
+" --nomodify\n"
+" -n\n"
+" Print what would be done, but don't actually do it. Inhibits the\n"
+" --quiet flag.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" fromoldaddr (`from old address') is the old address of the user. "
+"tonewaddr\n"
+" (`to new address') is the new address of the user.\n"
+"\n"
+msgstr ""
+
+#: bin/clone_member:94
+msgid "processing mailing list:"
+msgstr "zpracovávám konferenci:"
+
+#: bin/clone_member:101
+msgid " scanning list owners:"
+msgstr "hledám vlastníka konference:"
+
+#: bin/clone_member:119
+msgid " new list owners:"
+msgstr ""
+
+#: bin/clone_member:121
+msgid "(no change)"
+msgstr ""
+
+#: bin/clone_member:130
+msgid " address not found:"
+msgstr ""
+
+#: bin/clone_member:139
+msgid " clone address added:"
+msgstr ""
+
+#: bin/clone_member:142
+msgid " clone address is already a member:"
+msgstr "cílová adresa, na kterou klonujete je ji¾ úèastníkem:"
+
+#: bin/clone_member:145
+msgid " original address removed:"
+msgstr ""
+
+#: bin/clone_member:196
+msgid "Not a valid email address: %(toaddr)s"
+msgstr "Neplatná emailová adresa %(toaddr)s"
+
+#: bin/clone_member:209
+msgid ""
+"Error opening list \"%(listname)s\", skipping.\n"
+"%(e)s"
+msgstr ""
+
+#: bin/config_list:19
+msgid ""
+"Configure a list from a text file description.\n"
+"\n"
+"Usage: config_list [options] listname\n"
+"\n"
+"Options:\n"
+" --inputfile filename\n"
+" -i filename\n"
+" Configure the list by assigning each module-global variable in the\n"
+" file to an attribute on the list object, then saving the list. The\n"
+" named file is loaded with execfile() and must be legal Python code.\n"
+" Any variable that isn't already an attribute of the list object is\n"
+" ignored (a warning message is printed). See also the -c option.\n"
+"\n"
+" A special variable named `mlist' is put into the globals during the\n"
+" execfile, which is bound to the actual MailList object. This lets "
+"you\n"
+" do all manner of bizarre thing to the list object, but BEWARE! "
+"Using\n"
+" this can severely (and possibly irreparably) damage your mailing "
+"list!\n"
+"\n"
+" --outputfile filename\n"
+" -o filename\n"
+" Instead of configuring the list, print out a list's configuration\n"
+" variables in a format suitable for input using this script. In "
+"this\n"
+" way, you can easily capture the configuration settings for a\n"
+" particular list and imprint those settings on another list. "
+"filename\n"
+" is the file to output the settings to. If filename is `-', "
+"standard\n"
+" out is used.\n"
+"\n"
+" --checkonly\n"
+" -c\n"
+" With this option, the modified list is not actually changed. Only\n"
+" useful with -i.\n"
+"\n"
+" --verbose\n"
+" -v\n"
+" Print the name of each attribute as it is being changed. Only "
+"useful\n"
+" with -i.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+"The options -o and -i are mutually exclusive.\n"
+"\n"
+msgstr ""
+
+#: bin/config_list:109
+msgid ""
+"## \"%(listname)s\" mailing list configuration settings -*- python -*-\n"
+"## captured on %(when)s\n"
+msgstr ""
+
+#: bin/config_list:131
+msgid "options"
+msgstr "Vlastnosti"
+
+#: bin/config_list:188
+msgid "legal values are:"
+msgstr ""
+
+#: bin/config_list:255
+msgid "attribute \"%(k)s\" ignored"
+msgstr ""
+
+#: bin/config_list:258
+msgid "attribute \"%(k)s\" changed"
+msgstr ""
+
+#: bin/config_list:264
+msgid "Non-standard property restored: %(k)s"
+msgstr ""
+
+#: bin/config_list:272
+msgid "Invalid value for property: %(k)s"
+msgstr "Chybná hodnota parametru: %(k)s"
+
+#: bin/config_list:274
+msgid "Bad email address for option %(k)s: %(v)s"
+msgstr "Chybná emailová adresa pro parametr %(k)s: %(v)s"
+
+#: bin/config_list:322
+msgid "Only one of -i or -o is allowed"
+msgstr ""
+
+#: bin/config_list:324
+msgid "One of -i or -o is required"
+msgstr ""
+
+#: bin/config_list:328
+msgid "List name is required"
+msgstr "Jméno konference je vy¾adováno."
+
+#: bin/convert.py:19
+msgid ""
+"Convert a list's interpolation strings from %-strings to $-strings.\n"
+"\n"
+"This script is intended to be run as a bin/withlist script, i.e.\n"
+"\n"
+"% bin/withlist -l -r convert <mylist>\n"
+msgstr ""
+
+#: bin/convert.py:38 bin/fix_url.py:85
+msgid "Saving list"
+msgstr "Ukládám konferenci"
+
+#: bin/convert.py:44 bin/fix_url.py:51
+msgid "%%%"
+msgstr ""
+
+#: bin/dumpdb:19
+msgid ""
+"Dump the contents of any Mailman `database' file.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] filename\n"
+"\n"
+"Options:\n"
+"\n"
+" --marshal/-m\n"
+" Assume the file contains a Python marshal, overridding any "
+"automatic\n"
+" guessing.\n"
+"\n"
+" --pickle/-p\n"
+" Assume the file contains a Python pickle, overridding any automatic\n"
+" guessing.\n"
+"\n"
+" --noprint/-n\n"
+" Don't attempt to pretty print the object. This is useful if "
+"there's\n"
+" some problem with the object and you just want to get an unpickled\n"
+" representation. Useful with `python -i bin/dumpdb <file>'. In "
+"that\n"
+" case, the root of the tree will be left in a global called \"msg\".\n"
+"\n"
+" --help/-h\n"
+" Print this help message and exit\n"
+"\n"
+"If the filename ends with `.db', then it is assumed that the file contains "
+"a\n"
+"Python marshal. If the file ends with `.pck' then it is assumed to contain "
+"a\n"
+"Python pickle. In either case, if you want to override the default "
+"assumption\n"
+"-- or if the file ends in neither suffix -- use the -p or -m flags.\n"
+msgstr ""
+
+#: bin/dumpdb:101
+msgid "No filename given."
+msgstr "Nebyl zadán název souboru."
+
+#: bin/dumpdb:104
+msgid "Bad arguments: %(pargs)s"
+msgstr ""
+
+#: bin/dumpdb:114
+msgid "Please specify either -p or -m."
+msgstr ""
+
+#: bin/find_member:19
+msgid ""
+"Find all lists that a member's address is on.\n"
+"\n"
+"Usage:\n"
+" find_member [options] regex [regex [...]]\n"
+"\n"
+"Where:\n"
+" --listname=listname\n"
+" -l listname\n"
+" Include only the named list in the search.\n"
+"\n"
+" --exclude=listname\n"
+" -x listname\n"
+" Exclude the named list from the search.\n"
+"\n"
+" --owners\n"
+" -w\n"
+" Search list owners as well as members.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" regex\n"
+" A Python regular expression to match against.\n"
+"\n"
+"The interaction between -l and -x is as follows. If any -l option is given\n"
+"then only the named list will be included in the search. If any -x option "
+"is\n"
+"given but no -l option is given, then all lists will be search except those\n"
+"specifically excluded.\n"
+"\n"
+"Regular expression syntax is Perl5-like, using the Python re module. "
+"Complete\n"
+"specifications are at:\n"
+"\n"
+"http://www.python.org/doc/current/lib/module-re.html\n"
+"\n"
+"Address matches are case-insensitive, but case-preserved addresses are\n"
+"displayed.\n"
+"\n"
+msgstr ""
+
+#: bin/find_member:159
+msgid "Search regular expression required"
+msgstr ""
+
+#: bin/find_member:164
+msgid "No lists to search"
+msgstr ""
+
+#: bin/find_member:173
+msgid "found in:"
+msgstr ""
+
+#: bin/find_member:179
+msgid "(as owner)"
+msgstr ""
+
+#: bin/fix_url.py:19
+msgid ""
+"Reset a list's web_page_url attribute to the default setting.\n"
+"\n"
+"This script is intended to be run as a bin/withlist script, i.e.\n"
+"\n"
+"% bin/withlist -l -r fix_url listname [options]\n"
+"\n"
+"Options:\n"
+" -u urlhost\n"
+" --urlhost=urlhost\n"
+" Look up urlhost in the virtual host table and set the web_page_url "
+"and\n"
+" host_name attributes of the list to the values found. This\n"
+" essentially moves the list from one virtual domain to another.\n"
+"\n"
+" Without this option, the default web_page_url and host_name values "
+"are\n"
+" used.\n"
+"\n"
+" -v / --verbose\n"
+" Print what the script is doing.\n"
+"\n"
+"If run standalone, it prints this help text and exits.\n"
+msgstr ""
+
+#: bin/fix_url.py:80
+msgid "Setting web_page_url to: %(web_page_url)s"
+msgstr ""
+
+#: bin/fix_url.py:83
+msgid "Setting host_name to: %(mailhost)s"
+msgstr ""
+
+#: bin/genaliases:19
+msgid ""
+"Regenerate Postfix's data/aliases and data/aliases.db files from scratch.\n"
+"\n"
+"Usage:\n"
+"\n"
+" genaliases [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+msgstr ""
+
+#: bin/inject:19
+msgid ""
+"Inject a message from a file into Mailman's incoming queue.\n"
+"\n"
+"Usage: inject [options] [filename]\n"
+"\n"
+"Options:\n"
+"\n"
+" -h / --help\n"
+" Print this text and exit.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" The name of the list to inject this message to. Required.\n"
+"\n"
+" -q queuename\n"
+" --queue=queuename\n"
+" The name of the queue to inject the message to. The queuename must "
+"be\n"
+" one of the directories inside the qfiles directory. If omitted, "
+"the\n"
+" incoming queue is used.\n"
+"\n"
+"filename is the name of the plaintext message file to inject. If omitted,\n"
+"standard input is used.\n"
+msgstr ""
+
+#: bin/inject:83
+msgid "Bad queue directory: %(qdir)s"
+msgstr ""
+
+#: bin/inject:88
+msgid "A list name is required"
+msgstr "Jméno konference je vy¾adováno."
+
+#: bin/list_admins:19
+msgid ""
+"List all the owners of a mailing list.\n"
+"\n"
+"Usage: %(program)s [options] listname ...\n"
+"\n"
+"Where:\n"
+"\n"
+" --all-vhost=vhost\n"
+" -v=vhost\n"
+" List the owners of all the mailing lists for the given virtual "
+"host.\n"
+"\n"
+" --all\n"
+" -a\n"
+" List the owners of all the mailing lists on this system.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+"`listname' is the name of the mailing list to print the owners of. You can\n"
+"have more than one named list on the command line.\n"
+msgstr ""
+
+#: bin/list_admins:96
+msgid "List: %(listname)s, \tOwners: %(owners)s"
+msgstr ""
+
+#: bin/list_lists:19
+msgid ""
+"List all mailing lists.\n"
+"\n"
+"Usage: %(program)s [options]\n"
+"\n"
+"Where:\n"
+"\n"
+" -a / --advertised\n"
+" List only those mailing lists that are publically advertised\n"
+"\n"
+" --virtual-host-overview=domain\n"
+" -V domain\n"
+" List only those mailing lists that are homed to the given virtual\n"
+" domain. This only works if the VIRTUAL_HOST_OVERVIEW variable is\n"
+" set.\n"
+"\n"
+" -b / --bare\n"
+" Displays only the list name, with no description.\n"
+"\n"
+" -h / --help\n"
+" Print this text and exit.\n"
+"\n"
+msgstr ""
+
+#: bin/list_lists:105
+msgid "No matching mailing lists found"
+msgstr "Nenalezena ¾ádná konference, která by vyhovovala podmínce"
+
+#: bin/list_lists:109
+msgid "matching mailing lists found:"
+msgstr "nalezeny následující konference:"
+
+#: bin/list_members:19
+msgid ""
+"List all the members of a mailing list.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] listname\n"
+"\n"
+"Where:\n"
+"\n"
+" --output file\n"
+" -o file\n"
+" Write output to specified file instead of standard out.\n"
+"\n"
+" --regular / -r\n"
+" Print just the regular (non-digest) members.\n"
+"\n"
+" --digest[=kind] / -d [kind]\n"
+" Print just the digest members. Optional argument can be \"mime\" "
+"or\n"
+" \"plain\" which prints just the digest members receiving that kind "
+"of\n"
+" digest.\n"
+"\n"
+" --nomail[=why] / -n [why]\n"
+" Print the members that have delivery disabled. Optional argument "
+"can\n"
+" be \"byadmin\", \"byuser\", \"bybounce\", or \"unknown\" which "
+"prints just the\n"
+" users who have delivery disabled for that reason. It can also be\n"
+" \"enabled\" which prints just those member for whom delivery is\n"
+" enabled.\n"
+"\n"
+" --fullnames / -f\n"
+" Include the full names in the output.\n"
+"\n"
+" --preserve\n"
+" -p\n"
+" Output member addresses case preserved the way they were added to "
+"the\n"
+" list. Otherwise, addresses are printed in all lowercase.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname is the name of the mailing list to use.\n"
+"\n"
+"Note that if neither -r or -d is supplied, both regular members are printed\n"
+"first, followed by digest members, but no indication is given as to address\n"
+"status.\n"
+msgstr ""
+
+#: bin/list_members:150
+msgid "Bad --nomail option: %(why)s"
+msgstr ""
+
+#: bin/list_members:161
+msgid "Bad --digest option: %(kind)s"
+msgstr ""
+
+#: bin/list_members:179
+msgid "Could not open file for writing:"
+msgstr ""
+
+#: bin/list_owners:19
+msgid ""
+"List the owners of a mailing list, or all mailing lists.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname ...]\n"
+"Options:\n"
+"\n"
+" -w / --with-listnames\n"
+" Group the owners by list names and include the list names in the\n"
+" output. Otherwise, the owners will be sorted and uniquified based "
+"on\n"
+" the email address.\n"
+"\n"
+" -m / --moderators\n"
+" Include the list moderators in the output.\n"
+"\n"
+" -h / --help\n"
+" Print this help message and exit.\n"
+"\n"
+" listname\n"
+" Print the owners of the specified lists. More than one can appear\n"
+" after the options. If there are no listnames provided, the owners "
+"of\n"
+" all the lists will be displayed.\n"
+msgstr ""
+
+#: bin/mailmanctl:19
+msgid ""
+"Primary start-up and shutdown script for Mailman's qrunner daemon.\n"
+"\n"
+"This script starts, stops, and restarts the main Mailman queue runners, "
+"making\n"
+"sure that the various long-running qrunners are still alive and kicking. "
+"It\n"
+"does this by forking and exec'ing the qrunners and waiting on their pids.\n"
+"When it detects a subprocess has exited, it may restart it.\n"
+"\n"
+"The qrunners respond to SIGINT, SIGTERM, and SIGHUP. SIGINT and SIGTERM "
+"both\n"
+"cause the qrunners to exit cleanly, but the master will only restart "
+"qrunners\n"
+"that have exited due to a SIGINT. SIGHUP causes the master and the "
+"qrunners\n"
+"to close their log files, and reopen then upon the next printed message.\n"
+"\n"
+"The master also responds to SIGINT, SIGTERM, and SIGHUP, which it simply\n"
+"passes on to the qrunners (note that the master will close and reopen its "
+"own\n"
+"log files on receipt of a SIGHUP). The master also leaves its own process "
+"id\n"
+"in the file data/master-qrunner.pid but you normally don't need to use this\n"
+"pid directly. The `start', `stop', `restart', and `reopen' commands handle\n"
+"everything for you.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [ start | stop | restart | reopen ]\n"
+"\n"
+"Options:\n"
+"\n"
+" -n/--no-restart\n"
+" Don't restart the qrunners when they exit because of an error or a\n"
+" SIGINT. They are never restarted if they exit in response to a\n"
+" SIGTERM. Use this only for debugging. Only useful if the `start'\n"
+" command is given.\n"
+"\n"
+" -u/--run-as-user\n"
+" Normally, this script will refuse to run if the user id and group "
+"id\n"
+" are not set to the `mailman' user and group (as defined when you\n"
+" configured Mailman). If run as root, this script will change to "
+"this\n"
+" user and group before the check is made.\n"
+"\n"
+" This can be inconvenient for testing and debugging purposes, so the -"
+"u\n"
+" flag means that the step that sets and checks the uid/gid is "
+"skipped,\n"
+" and the program is run as the current user and group. This flag is\n"
+" not recommended for normal production environments.\n"
+"\n"
+" Note though, that if you run with -u and are not in the mailman "
+"group,\n"
+" you may have permission problems, such as begin unable to delete a\n"
+" list's archives through the web. Tough luck!\n"
+"\n"
+" -s/--stale-lock-cleanup\n"
+" If mailmanctl finds an existing master lock, it will normally exit\n"
+" with an error message. With this option, mailmanctl will perform "
+"an\n"
+" extra level of checking. If a process matching the host/pid "
+"described\n"
+" in the lock file is running, mailmanctl will still exit, but if no\n"
+" matching process is found, mailmanctl will remove the apparently "
+"stale\n"
+" lock and make another attempt to claim the master lock.\n"
+"\n"
+" -q/--quiet\n"
+" Don't print status messages. Error messages are still printed to\n"
+" standard error.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+"\n"
+"Commands:\n"
+"\n"
+" start - Start the master daemon and all qrunners. Prints a message "
+"and\n"
+" exits if the master daemon is already running.\n"
+"\n"
+" stop - Stops the master daemon and all qrunners. After stopping, no\n"
+" more messages will be processed.\n"
+"\n"
+" restart - Restarts the qrunners, but not the master process. Use this\n"
+" whenever you upgrade or update Mailman so that the qrunners "
+"will\n"
+" use the newly installed code.\n"
+"\n"
+" reopen - This will close all log files, causing them to be re-opened "
+"the\n"
+" next time a message is written to them\n"
+msgstr ""
+
+#: bin/mailmanctl:149
+msgid "PID unreadable in: %(pidfile)s"
+msgstr ""
+
+#: bin/mailmanctl:151
+msgid "Is qrunner even running?"
+msgstr ""
+
+#: bin/mailmanctl:157
+msgid "No child with pid: %(pid)s"
+msgstr ""
+
+#: bin/mailmanctl:159
+msgid "Stale pid file removed."
+msgstr ""
+
+#: bin/mailmanctl:217
+msgid ""
+"The master qrunner lock could not be acquired because it appears as if "
+"another\n"
+"master qrunner is already running.\n"
+msgstr ""
+
+#: bin/mailmanctl:223
+msgid ""
+"The master qrunner lock could not be acquired. It appears as though there "
+"is\n"
+"a stale master qrunner lock. Try re-running mailmanctl with the -s flag.\n"
+msgstr ""
+
+#: bin/mailmanctl:229
+msgid ""
+"The master qrunner lock could not be acquired, because it appears as if "
+"some\n"
+"process on some other host may have acquired it. We can't test for stale\n"
+"locks across host boundaries, so you'll have to do this manually. Or, if "
+"you\n"
+"know the lock is stale, re-run mailmanctl with the -s flag.\n"
+"\n"
+"Lock file: %(LOCKFILE)s\n"
+"Lock host: %(status)s\n"
+"\n"
+"Exiting."
+msgstr ""
+
+#: bin/mailmanctl:282
+msgid "Run this program as root or as the %(name)s user, or use -u."
+msgstr ""
+
+#: bin/mailmanctl:313
+msgid "No command given."
+msgstr "Nebyl zadán ¾ádný pøíkaz."
+
+#: bin/mailmanctl:316
+msgid "Bad command: %(command)s"
+msgstr ""
+
+#: bin/mailmanctl:321
+msgid "Warning! You may encounter permission problems."
+msgstr ""
+
+#: bin/mailmanctl:330
+msgid "Shutting down Mailman's master qrunner"
+msgstr ""
+
+#: bin/mailmanctl:337
+msgid "Restarting Mailman's master qrunner"
+msgstr ""
+
+#: bin/mailmanctl:341
+msgid "Re-opening all log files"
+msgstr ""
+
+#: bin/mailmanctl:375
+msgid "Starting Mailman's master qrunner."
+msgstr ""
+
+#: bin/mmsitepass:19
+msgid ""
+"Set the site password, prompting from the terminal.\n"
+"\n"
+"The site password can be used in most if not all places that the list\n"
+"administrator's password can be used, which in turn can be used in most "
+"places\n"
+"that a list users password can be used.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [password]\n"
+"\n"
+"Options:\n"
+"\n"
+" -c/--listcreator\n"
+" Set the list creator password instead of the site password. The "
+"list\n"
+" creator is authorized to create and remove lists, but does not have\n"
+" the total power of the site administrator.\n"
+"\n"
+" -h/--help\n"
+" Print this help message and exit.\n"
+"\n"
+"If password is not given on the command line, it will be prompted for.\n"
+msgstr ""
+
+#: bin/mmsitepass:73
+msgid "site"
+msgstr ""
+
+#: bin/mmsitepass:80
+msgid "list creator"
+msgstr ""
+
+#: bin/mmsitepass:86
+msgid "New %(pwdesc)s password: "
+msgstr ""
+
+#: bin/mmsitepass:87
+msgid "Again to confirm password: "
+msgstr ""
+
+#: bin/mmsitepass:89
+msgid "Passwords do not match; no changes made."
+msgstr ""
+
+#: bin/mmsitepass:92
+msgid "Interrupted..."
+msgstr ""
+
+#: bin/mmsitepass:98
+msgid "Password changed."
+msgstr ""
+
+#: bin/mmsitepass:100
+msgid "Password change failed."
+msgstr ""
+
+#: bin/newlist:19
+msgid ""
+"Create a new, unpopulated mailing list.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname [listadmin-addr [admin-password]]]\n"
+"\n"
+"Options:\n"
+"\n"
+" -l language\n"
+" --language language\n"
+" Make the list's preferred language `language', which must be a two\n"
+" letter language code.\n"
+"\n"
+" -q/--quiet\n"
+" Normally the administrator is notified by email (after a prompt) "
+"that\n"
+" their list has been created. This option suppresses the prompt and\n"
+" notification.\n"
+"\n"
+" -h/--help\n"
+" Print this help text and exit.\n"
+"\n"
+"You can specify as many of the arguments as you want on the command line:\n"
+"you will be prompted for the missing ones.\n"
+"\n"
+"Every Mailman list has two parameters which define the default host name "
+"for\n"
+"outgoing email, and the default URL for all web interfaces. When you\n"
+"configured Mailman, certain defaults were calculated, but if you are "
+"running\n"
+"multiple virtual Mailman sites, then the defaults may not be appropriate "
+"for\n"
+"the list you are creating.\n"
+"\n"
+"You can specify the domain to create your new list in by spelling the "
+"listname\n"
+"like so:\n"
+"\n"
+" mylist@www.mydom.ain\n"
+"\n"
+"where `www.mydom.ain' should be the base hostname for the URL to this "
+"virtual\n"
+"hosts's lists. E.g. with is setting people will view the general list\n"
+"overviews at http://www.mydom.ain/mailman/listinfo. Also, www.mydom.ain\n"
+"should be a key in the VIRTUAL_HOSTS mapping in mm_cfg.py/Defaults.py. It\n"
+"will be looked up to give the email hostname. If this can't be found, then\n"
+"www.mydom.ain will be used for both the web interface and the email\n"
+"interface.\n"
+"\n"
+"If you spell the list name as just `mylist', then the email hostname will "
+"be\n"
+"taken from DEFAULT_EMAIL_HOST and the url will be taken from DEFAULT_URL "
+"(as\n"
+"defined in your Defaults.py file or overridden by settings in mm_cfg.py).\n"
+"\n"
+"Note that listnames are forced to lowercase.\n"
+msgstr ""
+
+#: bin/newlist:118
+msgid "Unknown language: %(lang)s"
+msgstr "Neznámý jazyk: %(lang)s"
+
+#: bin/newlist:123
+msgid "Enter the name of the list: "
+msgstr "Zadejte název konference:"
+
+#: bin/newlist:140
+msgid "Enter the email of the person running the list: "
+msgstr "Zadejte emailovou adresu správce konference:"
+
+#: bin/newlist:145
+msgid "Initial %(listname)s password: "
+msgstr "Poèáteèní heslo pro konferenci %(listname)s: "
+
+#: bin/newlist:149
+msgid "The list password cannot be empty"
+msgstr "Heslo pro konferenci nesmí být prázdné."
+
+#: bin/newlist:190
+msgid "Hit enter to notify %(listname)s owner..."
+msgstr ""
+"Stisknìte ENTER pro zaslání informace o zalo¾ení konference na adresu %"
+"(listname)s..."
+
+#: bin/qrunner:19
+msgid ""
+"Run one or more qrunners, once or repeatedly.\n"
+"\n"
+"Each named runner class is run in round-robin fashion. In other words, the\n"
+"first named runner is run to consume all the files currently in its\n"
+"directory. When that qrunner is done, the next one is run to consume all "
+"the\n"
+"files in /its/ directory, and so on. The number of total iterations can be\n"
+"given on the command line.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" -r runner[:slice:range]\n"
+" --runner=runner[:slice:range]\n"
+" Run the named qrunner, which must be one of the strings returned by\n"
+" the -l option. Optional slice:range if given, is used to assign\n"
+" multiple qrunner processes to a queue. range is the total number "
+"of\n"
+" qrunners for this queue while slice is the number of this qrunner "
+"from\n"
+" [0..range).\n"
+"\n"
+" If using the slice:range form, you better make sure that each "
+"qrunner\n"
+" for the queue is given the same range value. If slice:runner is "
+"not\n"
+" given, then 1:1 is used.\n"
+"\n"
+" Multiple -r options may be given, in which case each qrunner will "
+"run\n"
+" once in round-robin fashion. The special runner `All' is shorthand\n"
+" for a qrunner for each listed by the -l option.\n"
+"\n"
+" --once\n"
+" -o\n"
+" Run each named qrunner exactly once through its main loop. "
+"Otherwise,\n"
+" each qrunner runs indefinitely, until the process receives a "
+"SIGTERM\n"
+" or SIGINT.\n"
+"\n"
+" -l/--list\n"
+" Shows the available qrunner names and exit.\n"
+"\n"
+" -v/--verbose\n"
+" Spit out more debugging information to the logs/qrunner log file.\n"
+"\n"
+" -s/--subproc\n"
+" This should only be used when running qrunner as a subprocess of "
+"the\n"
+" mailmanctl startup script. It changes some of the exit-on-error\n"
+" behavior to work better with that framework.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+"\n"
+"runner is required unless -l or -h is given, and it must be one of the "
+"names\n"
+"displayed by the -l switch.\n"
+msgstr ""
+
+#: bin/qrunner:176
+msgid "%(name)s runs the %(runnername)s qrunner"
+msgstr ""
+
+#: bin/qrunner:177
+msgid "All runs all the above qrunners"
+msgstr ""
+
+#: bin/qrunner:213
+msgid "No runner name given."
+msgstr "Nebylo zadáno jméno pro runner."
+
+#: bin/remove_members:19
+msgid ""
+"Remove members from a list.\n"
+"\n"
+"Usage:\n"
+" remove_members [options] [listname] [addr1 ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" --file=file\n"
+" -f file\n"
+" Remove member addresses found in the given file. If file is\n"
+" `-', read stdin.\n"
+"\n"
+" --all\n"
+" -a\n"
+" Remove all members of the mailing list.\n"
+" (mutually exclusive with --fromall)\n"
+"\n"
+" --fromall\n"
+" Removes the given addresses from all the lists on this system\n"
+" regardless of virtual domains if you have any. This option cannot "
+"be\n"
+" used -a/--all. Also, you should not specify a listname when using "
+"this\n"
+" option.\n"
+"\n"
+" --nouserack\n"
+" -n\n"
+" Don't send the user acknowledgements.\n"
+"\n"
+" --noadminack\n"
+" -N\n"
+" Don't send the admin acknowledgements.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname is the name of the mailing list to use.\n"
+"\n"
+" addr1 ... are additional addresses to remove.\n"
+"\n"
+msgstr ""
+
+#: bin/remove_members:147
+msgid "Could not open file for reading: %(filename)s."
+msgstr ""
+
+#: bin/remove_members:154
+msgid "Error opening list %(listname)s... skipping."
+msgstr "Chyba pøi otevírání konfigurace konference %(listname)s... pøeskakuji."
+
+#: bin/remove_members:164
+msgid "No such member: %(addr)s"
+msgstr "Nenalezl jsem úèastníka: %(addr)s."
+
+#: bin/remove_members:171
+msgid "User `%(addr)s' removed from list: %(listname)s."
+msgstr "Úèastníka `%(addr)s' byl odhlá¹en z konference: %(listname)s."
+
+#: bin/rmlist:19
+msgid ""
+"Remove the components of a mailing list with impunity - beware!\n"
+"\n"
+"This removes (almost) all traces of a mailing list. By default, the lists\n"
+"archives are not removed, which is very handy for retiring old lists.\n"
+"\n"
+"Usage:\n"
+" rmlist [-a] [-h] listname\n"
+"\n"
+"Where:\n"
+" --archives\n"
+" -a\n"
+" Remove the list's archives too, or if the list has already been\n"
+" deleted, remove any residual archives.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+msgstr ""
+
+#: bin/rmlist:66 bin/rmlist:69
+msgid "Removing %(msg)s"
+msgstr ""
+
+#: bin/rmlist:72
+msgid "%(listname)s %(msg)s not found as %(dir)s"
+msgstr ""
+
+#: bin/rmlist:96
+msgid "No such list (or list already deleted): %(listname)s"
+msgstr "Nenalezl jsem konferenci (tøeba byla smazána) - %(listname)s"
+
+#: bin/rmlist:98
+msgid "No such list: %(listname)s. Removing its residual archives."
+msgstr "Nenalezl jsem konferenci %(listname)s - odstraòuji zbytky archivù."
+
+#: bin/rmlist:102
+msgid "Not removing archives. Reinvoke with -a to remove them."
+msgstr ""
+
+#: bin/rmlist:116
+msgid "list info"
+msgstr ""
+
+#: bin/rmlist:122 bin/rmlist:124
+msgid "private archives"
+msgstr "soukromé archivy"
+
+#: bin/rmlist:126 bin/rmlist:128
+msgid "public archives"
+msgstr "veøejné archivy"
+
+#: bin/sync_members:19
+msgid ""
+"Synchronize a mailing list's membership with a flat file.\n"
+"\n"
+"This script is useful if you have a Mailman mailing list and a sendmail\n"
+":include: style list of addresses (also as is used in Majordomo). For "
+"every\n"
+"address in the file that does not appear in the mailing list, the address "
+"is\n"
+"added. For every address in the mailing list that does not appear in the\n"
+"file, the address is removed. Other options control what happens when an\n"
+"address is added or removed.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] -f file listname\n"
+"\n"
+"Where `options' are:\n"
+"\n"
+" --no-change\n"
+" -n\n"
+" Don't actually make the changes. Instead, print out what would be\n"
+" done to the list.\n"
+"\n"
+" --welcome-msg[=<yes|no>]\n"
+" -w[=<yes|no>]\n"
+" Sets whether or not to send the newly added members a welcome\n"
+" message, overriding whatever the list's `send_welcome_msg' setting\n"
+" is. With -w=yes or -w, the welcome message is sent. With -w=no, "
+"no\n"
+" message is sent.\n"
+"\n"
+" --goodbye-msg[=<yes|no>]\n"
+" -g[=<yes|no>]\n"
+" Sets whether or not to send the goodbye message to removed members,\n"
+" overriding whatever the list's `send_goodbye_msg' setting is. With\n"
+" -g=yes or -g, the goodbye message is sent. With -g=no, no message "
+"is\n"
+" sent.\n"
+"\n"
+" --digest[=<yes|no>]\n"
+" -d[=<yes|no>]\n"
+" Selects whether to make newly added members receive messages in\n"
+" digests. With -d=yes or -d, they become digest members. With -"
+"d=no\n"
+" (or if no -d option given) they are added as regular members.\n"
+"\n"
+" --notifyadmin[=<yes|no>]\n"
+" -a[=<yes|no>]\n"
+" Specifies whether the admin should be notified for each "
+"subscription\n"
+" or unsubscription. If you're adding a lot of addresses, you\n"
+" definitely want to turn this off! With -a=yes or -a, the admin is\n"
+" notified. With -a=no, the admin is not notified. With no -a "
+"option,\n"
+" the default for the list is used.\n"
+"\n"
+" --file <filename | ->\n"
+" -f <filename | ->\n"
+" This option is required. It specifies the flat file to synchronize\n"
+" against. Email addresses must appear one per line. If filename is\n"
+" `-' then stdin is used.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this message.\n"
+"\n"
+" listname\n"
+" Required. This specifies the list to synchronize.\n"
+msgstr ""
+
+#: bin/sync_members:115
+msgid "Bad choice: %(yesno)s"
+msgstr ""
+
+#: bin/sync_members:138
+msgid "Dry run mode"
+msgstr ""
+
+#: bin/sync_members:159
+msgid "Only one -f switch allowed"
+msgstr ""
+
+#: bin/sync_members:163
+msgid "No argument to -f given"
+msgstr "Nebyl zadán parametr k -f"
+
+#: bin/sync_members:172
+msgid "Illegal option: %(opt)s"
+msgstr ""
+
+#: bin/sync_members:178
+msgid "No listname given"
+msgstr "Nebyl zadán název konference"
+
+#: bin/sync_members:182
+msgid "Must have a listname and a filename"
+msgstr ""
+
+#: bin/sync_members:191
+msgid "Cannot read address file: %(filename)s: %(msg)s"
+msgstr ""
+
+#: bin/sync_members:203
+msgid "Ignore : %(addr)30s"
+msgstr "Ignoruji : %(addr)30s"
+
+#: bin/sync_members:212
+msgid "Invalid : %(addr)30s"
+msgstr "Neplatná adresa : %(addr)30s"
+
+#: bin/sync_members:215
+msgid "You must fix the preceding invalid addresses first."
+msgstr ""
+
+#: bin/sync_members:259
+msgid "Added : %(s)s"
+msgstr ""
+
+#: bin/sync_members:278
+msgid "Removed: %(s)s"
+msgstr ""
+
+#: bin/transcheck:18
+msgid ""
+"\n"
+"Check a given Mailman translation, making sure that variables and\n"
+"tags referenced in translation are the same variables and tags in\n"
+"the original templates and catalog.\n"
+"\n"
+"Usage:\n"
+"\n"
+"cd $MAILMAN_DIR\n"
+"%(program)s [-q] <lang>\n"
+"\n"
+"Where <lang> is your country code (e.g. 'it' for Italy) and -q is\n"
+"to ask for a brief summary.\n"
+msgstr ""
+
+#: bin/transcheck:57
+msgid "check a translation comparing with the original string"
+msgstr ""
+
+#: bin/transcheck:64
+msgid "scan a string from the original file"
+msgstr ""
+
+#: bin/transcheck:72
+msgid "scan a translated string"
+msgstr ""
+
+#: bin/transcheck:83
+msgid "check for differences between checked in and checked out"
+msgstr ""
+
+#: bin/transcheck:116
+msgid "parse a .po file extracting msgids and msgstrs"
+msgstr ""
+
+#: bin/transcheck:135
+msgid ""
+"States table for the finite-states-machine parser:\n"
+" 0 idle\n"
+" 1 filename-or-comment\n"
+" 2 msgid\n"
+" 3 msgstr\n"
+" 4 end\n"
+" "
+msgstr ""
+
+#: bin/transcheck:272
+msgid ""
+"check a translated template against the original one\n"
+" search also <MM-*> tags if html is not zero"
+msgstr ""
+
+#: bin/transcheck:319
+msgid "scan the po file comparing msgids with msgstrs"
+msgstr ""
+
+#: bin/unshunt:19
+msgid ""
+"Move a message from the shunt queue to the original queue.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [directory]\n"
+"\n"
+"Where:\n"
+"\n"
+" -h / --help\n"
+" Print help and exit.\n"
+"\n"
+"Optional `directory' specifies a directory to dequeue from other than\n"
+"qfiles/shunt.\n"
+msgstr ""
+
+#: bin/unshunt:81
+msgid ""
+"Cannot unshunt message %(filebase)s, skipping:\n"
+"%(e)s"
+msgstr ""
+
+#: bin/update:19
+msgid ""
+"Perform all necessary upgrades.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -f/--force\n"
+" Force running the upgrade procedures. Normally, if the version "
+"number\n"
+" of the installed Mailman matches the current version number (or a\n"
+" `downgrade' is detected), nothing will be done.\n"
+"\n"
+" -h/--help\n"
+" Print this text and exit.\n"
+"\n"
+"Use this script to help you update to the latest release of Mailman from\n"
+"some previous version. It knows about versions back to 1.0b4 (?).\n"
+msgstr ""
+
+#: bin/update:102
+msgid "Fixing language templates: %(listname)s"
+msgstr ""
+
+#: bin/update:191 bin/update:466
+msgid "WARNING: could not acquire lock for list: %(listname)s"
+msgstr ""
+
+#: bin/update:210
+msgid "Resetting %(n)s BYBOUNCEs disabled addrs with no bounce info"
+msgstr ""
+
+#: bin/update:216
+msgid "Updating the held requests database."
+msgstr ""
+
+#: bin/update:238
+msgid ""
+"For some reason, %(mbox_dir)s exists as a file. This won't work with\n"
+"b6, so I'm renaming it to %(mbox_dir)s.tmp and proceeding."
+msgstr ""
+
+#: bin/update:250
+msgid ""
+"\n"
+"%(listname)s has both public and private mbox archives. Since this list\n"
+"currently uses private archiving, I'm installing the private mbox archive\n"
+"-- %(o_pri_mbox_file)s -- as the active archive, and renaming\n"
+" %(o_pub_mbox_file)s\n"
+"to\n"
+" %(o_pub_mbox_file)s.preb6\n"
+"\n"
+"You can integrate that into the archives if you want by using the 'arch'\n"
+"script.\n"
+msgstr ""
+
+#: bin/update:265
+msgid ""
+"%s has both public and private mbox archives. Since this list\n"
+"currently uses public archiving, I'm installing the public mbox file\n"
+"archive file (%s) as the active one, and renaming\n"
+" %s\n"
+" to\n"
+" %s.preb6\n"
+"\n"
+"You can integrate that into the archives if you want by using the 'arch'\n"
+"script.\n"
+msgstr ""
+
+#: bin/update:282
+msgid "- updating old private mbox file"
+msgstr ""
+
+#: bin/update:290
+msgid ""
+" unknown file in the way, moving\n"
+" %(o_pri_mbox_file)s\n"
+" to\n"
+" %(newname)s"
+msgstr ""
+
+#: bin/update:297 bin/update:320
+msgid ""
+" looks like you have a really recent CVS installation...\n"
+" you're either one brave soul, or you already ran me"
+msgstr ""
+
+#: bin/update:306
+msgid "- updating old public mbox file"
+msgstr ""
+
+#: bin/update:314
+msgid ""
+" unknown file in the way, moving\n"
+" %(o_pub_mbox_file)s\n"
+" to\n"
+" %(newname)s"
+msgstr ""
+
+#: bin/update:345
+msgid "- This list looks like it might have <= b4 list templates around"
+msgstr ""
+
+#: bin/update:352
+msgid "- moved %(o_tmpl)s to %(n_tmpl)s"
+msgstr ""
+
+#: bin/update:354
+msgid "- both %(o_tmpl)s and %(n_tmpl)s exist, leaving untouched"
+msgstr ""
+
+#: bin/update:384
+msgid "removing directory %(src)s and everything underneath"
+msgstr ""
+
+#: bin/update:387
+msgid "removing %(src)s"
+msgstr ""
+
+#: bin/update:391
+msgid "Warning: couldn't remove %(src)s -- %(rest)s"
+msgstr ""
+
+#: bin/update:396
+msgid "couldn't remove old file %(pyc)s -- %(rest)s"
+msgstr ""
+
+#: bin/update:400
+msgid "updating old qfiles"
+msgstr ""
+
+#: bin/update:422
+msgid "getting rid of old source files"
+msgstr ""
+
+#: bin/update:432
+msgid "no lists == nothing to do, exiting"
+msgstr ""
+
+#: bin/update:439
+msgid ""
+"fixing all the perms on your old html archives to work with b6\n"
+"If your archives are big, this could take a minute or two..."
+msgstr ""
+
+#: bin/update:444
+msgid "done"
+msgstr "hotovo"
+
+#: bin/update:446
+msgid "Updating mailing list: %(listname)s"
+msgstr ""
+
+#: bin/update:449
+msgid "Updating Usenet watermarks"
+msgstr ""
+
+#: bin/update:454
+msgid "- nothing to update here"
+msgstr ""
+
+#: bin/update:477
+msgid "- usenet watermarks updated and gate_watermarks removed"
+msgstr ""
+
+#: bin/update:487
+msgid "Updating old pending_subscriptions.db database"
+msgstr ""
+
+#: bin/update:504
+msgid ""
+"\n"
+"\n"
+"NOTE NOTE NOTE NOTE NOTE\n"
+"\n"
+" You are upgrading an existing Mailman installation, but I can't tell "
+"what\n"
+" version you were previously running.\n"
+"\n"
+" If you are upgrading from Mailman 1.0b9 or earlier you will need to\n"
+" manually update your mailing lists. For each mailing list you need to\n"
+" copy the file templates/options.html lists/<listname>/options.html.\n"
+"\n"
+" However, if you have edited this file via the Web interface, you will "
+"have\n"
+" to merge your changes into this file, otherwise you will lose your\n"
+" changes.\n"
+"\n"
+"NOTE NOTE NOTE NOTE NOTE\n"
+"\n"
+msgstr ""
+
+#: bin/update:561
+msgid "No updates are necessary."
+msgstr ""
+
+#: bin/update:564
+msgid ""
+"Downgrade detected, from version %(hexlversion)s to version %(hextversion)s\n"
+"This is probably not safe.\n"
+"Exiting."
+msgstr ""
+
+#: bin/update:569
+msgid "Upgrading from version %(hexlversion)s to %(hextversion)s"
+msgstr ""
+
+#: bin/update:578
+msgid ""
+"\n"
+"ERROR:\n"
+"\n"
+"The locks for some lists could not be acquired. This means that either\n"
+"Mailman was still active when you upgraded, or there were stale locks in "
+"the\n"
+"%(lockdir)s directory.\n"
+"\n"
+"You must put Mailman into a quiescent state and remove all stale locks, "
+"then\n"
+"re-run \"make update\" manually. See the INSTALL and UPGRADE files for "
+"details.\n"
+msgstr ""
+
+#: bin/version:19
+msgid "Print the Mailman version.\n"
+msgstr "Zobraz verzi Mailmanu.\n"
+
+#: bin/version:26
+msgid "Using Mailman version:"
+msgstr "Pou¾íváme Mailman verze:"
+
+#: bin/withlist:19
+msgid ""
+"General framework for interacting with a mailing list object.\n"
+"\n"
+"There are two ways to use this script: interactively or programmatically.\n"
+"Using it interactively allows you to play with, examine and modify a "
+"MailList\n"
+"object from Python's interactive interpreter. When running interactively, "
+"a\n"
+"MailList object called `m' will be available in the global namespace. It "
+"also\n"
+"loads the class MailList into the global namespace.\n"
+"\n"
+"Programmatically, you can write a function to operate on a MailList object,\n"
+"and this script will take care of the housekeeping (see below for "
+"examples).\n"
+"In that case, the general usage syntax is:\n"
+"\n"
+"%% bin/withlist [options] listname [args ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" -l / --lock\n"
+" Lock the list when opening. Normally the list is opened unlocked\n"
+" (e.g. for read-only operations). You can always lock the file "
+"after\n"
+" the fact by typing `m.Lock()'\n"
+"\n"
+" Note that if you use this option, you should explicitly call m.Save"
+"()\n"
+" before exiting, since the interpreter's clean up procedure will not\n"
+" automatically save changes to the MailList object (but it will "
+"unlock\n"
+" the list).\n"
+"\n"
+" -i / --interactive\n"
+" Leaves you at an interactive prompt after all other processing is\n"
+" complete. This is the default unless the -r option is given.\n"
+"\n"
+" --run [module.]callable\n"
+" -r [module.]callable\n"
+" This can be used to run a script with the opened MailList object.\n"
+" This works by attempting to import `module' (which must already be\n"
+" accessible on your sys.path), and then calling `callable' from the\n"
+" module. callable can be a class or function; it is called with the\n"
+" MailList object as the first argument. If additional args are "
+"given\n"
+" on the command line, they are passed as subsequent positional args "
+"to\n"
+" the callable.\n"
+"\n"
+" Note that `module.' is optional; if it is omitted then a module "
+"with\n"
+" the name `callable' will be imported.\n"
+"\n"
+" The global variable `r' will be set to the results of this call.\n"
+"\n"
+" --all / -a\n"
+" This option only works with the -r option. Use this if you want to\n"
+" execute the script on all mailing lists. When you use -a you "
+"should\n"
+" not include a listname argument on the command line. The variable "
+"`r'\n"
+" will be a list of all the results.\n"
+"\n"
+" --quiet / -q\n"
+" Suppress all status messages.\n"
+"\n"
+" --help / -h\n"
+" Print this message and exit\n"
+"\n"
+"\n"
+"Here's an example of how to use the -r option. Say you have a file in the\n"
+"Mailman installation directory called `listaddr.py', with the following\n"
+"two functions:\n"
+"\n"
+"def listaddr(mlist):\n"
+" print mlist.GetListEmail()\n"
+"\n"
+"def requestaddr(mlist):\n"
+" print mlist.GetRequestEmail()\n"
+"\n"
+"Now, from the command line you can print the list's posting address by "
+"running\n"
+"the following from the command line:\n"
+"\n"
+"%% bin/withlist -r listaddr mylist\n"
+"Loading list: mylist (unlocked)\n"
+"Importing listaddr ...\n"
+"Running listaddr.listaddr() ...\n"
+"mylist@myhost.com\n"
+"\n"
+"And you can print the list's request address by running:\n"
+"\n"
+"%% bin/withlist -r listaddr.requestaddr mylist\n"
+"Loading list: mylist (unlocked)\n"
+"Importing listaddr ...\n"
+"Running listaddr.requestaddr() ...\n"
+"mylist-request@myhost.com\n"
+"\n"
+"As another example, say you wanted to change the password for a particular\n"
+"user on a particular list. You could put the following function in a file\n"
+"called `changepw.py':\n"
+"\n"
+"from Mailman.Errors import NotAMember\n"
+"\n"
+"def changepw(mlist, addr, newpasswd):\n"
+" try:\n"
+" mlist.setMemberPassword(addr, newpasswd)\n"
+" mlist.Save()\n"
+" except NotAMember:\n"
+" print 'No address matched:', addr\n"
+"\n"
+"and run this from the command line:\n"
+"%% bin/withlist -l -r changepw mylist somebody@somewhere.org foobar\n"
+msgstr ""
+
+#: bin/withlist:151
+msgid ""
+"Unlock a locked list, but do not implicitly Save() it.\n"
+"\n"
+" This does not get run if the interpreter exits because of a signal, or "
+"if\n"
+" os._exit() is called. It will get called if an exception occurs "
+"though.\n"
+" "
+msgstr ""
+
+#: bin/withlist:162
+msgid "Unlocking (but not saving) list: %(listname)s"
+msgstr "Odemkni, ale neulo¾, konferenci : %(listname)s"
+
+#: bin/withlist:166
+msgid "Finalizing"
+msgstr ""
+
+#: bin/withlist:175
+msgid "Loading list %(listname)s"
+msgstr ""
+
+#: bin/withlist:177
+msgid "(locked)"
+msgstr ""
+
+#: bin/withlist:179
+msgid "(unlocked)"
+msgstr ""
+
+#: bin/withlist:184
+msgid "Unknown list: %(listname)s"
+msgstr "Neznámá konference: %(listname)s"
+
+#: bin/withlist:223
+msgid "No list name supplied."
+msgstr "Jméno konference je vy¾adováno."
+
+#: bin/withlist:226
+msgid "--all requires --run"
+msgstr ""
+
+#: bin/withlist:246
+msgid "Importing %(module)s..."
+msgstr ""
+
+#: bin/withlist:249
+msgid "Running %(module)s.%(callable)s()..."
+msgstr ""
+
+#: bin/withlist:270
+msgid "The variable `m' is the %(listname)s MailList instance"
+msgstr ""
+
+#: cron/bumpdigests:19
+msgid ""
+"Increment the digest volume number and reset the digest number to one.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" --help/-h\n"
+" Print this message and exit.\n"
+"\n"
+"The lists named on the command line are bumped. If no list names are "
+"given,\n"
+"all lists are bumped.\n"
+msgstr ""
+
+#: cron/checkdbs:19
+msgid ""
+"Invoked by cron, this checks for pending moderation requests and mails the\n"
+"list moderators if necessary.\n"
+msgstr ""
+
+#: cron/checkdbs:81
+msgid "%(count)d %(realname)s moderator request(s) waiting"
+msgstr "%(realname)s - Na rozhodnutí moderátora èeká %(count)d pøíspìvkù."
+
+#: cron/checkdbs:100
+msgid "Pending subscriptions:"
+msgstr "Èekají na pøihlá¹ení: "
+
+#: cron/checkdbs:109
+msgid ""
+"\n"
+"Pending posts:"
+msgstr ""
+"\n"
+"Èekající pøíspìvky:"
+
+#: cron/checkdbs:114
+msgid ""
+"From: %(sender)s on %(date)s\n"
+"Subject: %(subject)s\n"
+"Cause: %(reason)s"
+msgstr ""
+"Od: %(sender)s dne %(date)s\n"
+"Vìc: %(subject)s\n"
+"Dùvod: %(reason)s"
+
+#: cron/disabled:19
+msgid ""
+"Process disabled members, recommended once per day.\n"
+"\n"
+"This script cruises through every mailing list looking for members whose\n"
+"delivery is disabled. If they have been disabled due to bounces, they will\n"
+"receive another notification, or they may be removed if they've received "
+"the\n"
+"maximum number of notifications.\n"
+"\n"
+"Use the --byadmin, --byuser, and --unknown flags to also send notifications "
+"to\n"
+"members whose accounts have been disabled for those reasons. Use --all to\n"
+"send the notification to all disabled members.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -h / --help\n"
+" Print this message and exit.\n"
+"\n"
+" -o / --byadmin\n"
+" Also send notifications to any member disabled by the list\n"
+" owner/administrator.\n"
+"\n"
+" -m / --byuser\n"
+" Also send notifications to any member disabled by themselves.\n"
+"\n"
+" -u / --unknown\n"
+" Also send notifications to any member disabled for unknown reasons\n"
+" (usually a legacy disabled address).\n"
+"\n"
+" -b / --notbybounce\n"
+" Don't send notifications to members disabled because of bounces "
+"(the\n"
+" default is to notify bounce disabled members).\n"
+"\n"
+" -a / --all\n"
+" Send notifications to all disabled members.\n"
+"\n"
+" -f / --force\n"
+" Send notifications to disabled members even if they're not due a "
+"new\n"
+" notification yet.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" Process only the given list, otherwise do all lists.\n"
+msgstr ""
+
+#: cron/disabled:143
+msgid "[disabled by periodic sweep and cull, no message available]"
+msgstr ""
+
+#: cron/gate_news:19
+msgid ""
+"Poll the NNTP servers for messages to be gatewayed to mailing lists.\n"
+"\n"
+"Usage: gate_news [options]\n"
+"\n"
+"Where options are\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this text and exit.\n"
+"\n"
+msgstr ""
+
+#: cron/mailpasswds:19
+msgid ""
+"Send password reminders for all lists to all users.\n"
+"\n"
+"This program scans all mailing lists and collects users and their "
+"passwords,\n"
+"grouped by the list's host_name if mm_cfg.VIRTUAL_HOST_OVERVIEW is true. "
+"Then\n"
+"one email message is sent to each unique user (per-virtual host) containing\n"
+"the list passwords and options url for the user. The password reminder "
+"comes\n"
+"from the mm_cfg.MAILMAN_SITE_LIST, which must exist.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -l listname\n"
+" --listname=listname\n"
+" Send password reminders for the named list only. If omitted,\n"
+" reminders are sent for all lists. Multiple -l/--listname options "
+"are\n"
+" allowed.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+msgstr ""
+
+#: cron/mailpasswds:111
+msgid "Site list is missing: %(sitelistname)s"
+msgstr ""
+
+#: cron/mailpasswds:179
+msgid "Password // URL"
+msgstr "Heslo // URL"
+
+#: cron/mailpasswds:199
+msgid "%(host)s mailing list memberships reminder"
+msgstr "Server %(host)s: Upozornìní na úèast v konferencích"
+
+#: cron/nightly_gzip:19
+msgid ""
+"Re-generate the Pipermail gzip'd archive flat files.\n"
+"\n"
+"This script should be run nightly from cron. When run from the command "
+"line,\n"
+"the following usage is understood:\n"
+"\n"
+"Usage: %(program)s [-v] [-h] [listnames]\n"
+"\n"
+"Where:\n"
+" --verbose\n"
+" -v\n"
+" print each file as it's being gzip'd\n"
+"\n"
+" --help\n"
+" -h\n"
+" print this message and exit\n"
+"\n"
+" listnames\n"
+" Optionally, only compress the .txt files for the named lists. "
+"Without \n"
+" this, all archivable lists are processed.\n"
+"\n"
+msgstr ""
+
+#: cron/senddigests:19
+msgid ""
+"Dispatch digests for lists w/pending messages and digest_send_periodic set.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -h / --help\n"
+" Print this message and exit.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" Send the digest for the given list only, otherwise the digests for "
+"all\n"
+" lists are sent out.\n"
+msgstr ""
+
+#~ msgid "Posts by member are currently quarantined for moderation"
+#~ msgstr ""
+#~ "Pøíspìvky èlenù jsou momentálnì pozastavovány do rozhodnutí moderátora"
+
+#~ msgid "A confirmation email has been sent separately."
+#~ msgstr "Dopis s potvrzením byl odeslán samostatnì."
+
+#~ msgid "A removal confirmation message has been sent."
+#~ msgstr "Byl odeslán po¾adavek na odsouhlasení zru¹ení konference."
+
+#~ msgid "non-digest header"
+#~ msgstr "záhlaví pro nondigest zprávu"
+
+#~ msgid "non-digest footer"
+#~ msgstr "Patièka k nondigestu"
+
+#~ msgid "Bad owner email address: %(owner_mail)s"
+#~ msgstr "Chybná emailová adresa vlastníka konference: %(owner_mail)s"
+
+#~ msgid "Policies concerning concerning the content of list traffic."
+#~ msgstr "Pravidla vztahující se na obsah pøíspìvkù."
+
+#~ msgid ""
+#~ "To finish creating your mailing list, you must edit your\n"
+#~ "/etc/aliases (or equivalent) file by adding the following lines:\n"
+#~ "\n"
+#~ "## %(listname)s mailing list\n"
+#~ "## created: %(date)s %(user)s\n"
+#~ "%(list)s \"|%(wrapper)s post %(listname)s\"\n"
+#~ "%(admin)s \"|%(wrapper)s mailowner %(listname)s\"\n"
+#~ "%(request)s \"|%(wrapper)s mailcmd %(listname)s\"\n"
+#~ "%(owner)s %(listname)s-admin\n"
+#~ msgstr ""
+#~ "Pro dokonèení zalo¾ení konference musíte do souboru\n"
+#~ "/etc/aliases (nebo jeho ekvivalentu) vlo¾it následující øádky:\n"
+#~ "\n"
+#~ "## %(listname)s mailing list\n"
+#~ "## created: %(date)s %(user)s\n"
+#~ "%(list)s \"|%(wrapper)s post %(listname)s\"\n"
+#~ "%(admin)s \"|%(wrapper)s mailowner %(listname)s\"\n"
+#~ "%(request)s \"|%(wrapper)s mailcmd %(listname)s\"\n"
+#~ "%(owner)s %(listname)s-admin\n"
+
+#~ msgid ""
+#~ "To finish removing your mailing list, you must edit your\n"
+#~ "/etc/aliases (or equivalent) file by removing the following lines:\n"
+#~ "\n"
+#~ "%(list)s \"|%(wrapper)s post %(listname)s\"\n"
+#~ "%(admin)s \"|%(wrapper)s mailowner %(listname)s\"\n"
+#~ "%(request)s \"|%(wrapper)s mailcmd %(listname)s\"\n"
+#~ "%(owner)s %(listname)s-admin\n"
+#~ msgstr ""
+#~ "Pro dokonèení odstranìní konference musí ze souboru\n"
+#~ "/etc/aliases (nebo ekvivalentního) odstranit následující øádky:\n"
+#~ "\n"
+#~ "%(list)s \"|%(wrapper)s post %(listname)s\"\n"
+#~ "%(admin)s \"|%(wrapper)s mailowner %(listname)s\"\n"
+#~ "%(request)s \"|%(wrapper)s mailcmd %(listname)s\"\n"
+#~ "%(owner)s %(listname)s-admin\n"
+
+#~ msgid ""
+#~ "To finish creating your mailing list, execute the following\n"
+#~ "commands with the proper permission:\n"
+#~ "\n"
+#~ "echo '|preline %(wrapper)s post %(listname)s' >~alias/.qmail-%(listname)"
+#~ "s\n"
+#~ "echo '|preline %(wrapper)s mailowner %(listname)s' >~alias/.qmail-%"
+#~ "(listname)s-admin\n"
+#~ "echo '|preline %(wrapper)s mailcmd %(listname)s' >~alias/.qmail-%"
+#~ "(listname)s-request\n"
+#~ "echo '&%(listname)s-admin' >~alias/.qmail-owner-%(listname)s\n"
+#~ "echo '&%(listname)s-admin' >~alias/.qmail-%(listname)s-owner\n"
+#~ "\n"
+#~ "chmod 644 ~alias/.qmail-%(listname)s ~alias/.qmail-%(listname)s-admin\n"
+#~ "chmod 644 ~alias/.qmail-%(listname)s-request ~alias/.qmail-%(listname)s-"
+#~ "owner\n"
+#~ "chmod 644 ~alias/.qmail-owner-%(listname)s\n"
+#~ msgstr ""
+#~ "Pro zalo¾ení konference musíte zadat následující pøíkazy\n"
+#~ "z úètu s patøiènými právy:\n"
+#~ "\n"
+#~ "echo '|preline %(wrapper)s post %(listname)s' >~alias/.qmail-%(listname)"
+#~ "s\n"
+#~ "echo '|preline %(wrapper)s mailowner %(listname)s' >~alias/.qmail-%"
+#~ "(listname)s-admin\n"
+#~ "echo '|preline %(wrapper)s mailcmd %(listname)s' >~alias/.qmail-%"
+#~ "(listname)s-request\n"
+#~ "echo '&%(listname)s-admin' >~alias/.qmail-owner-%(listname)s\n"
+#~ "echo '&%(listname)s-admin' >~alias/.qmail-%(listname)s-owner\n"
+#~ "\n"
+#~ "chmod 644 ~alias/.qmail-%(listname)s ~alias/.qmail-%(listname)s-admin\n"
+#~ "chmod 644 ~alias/.qmail-%(listname)s-request ~alias/.qmail-%(listname)s-"
+#~ "owner\n"
+#~ "chmod 644 ~alias/.qmail-owner-%(listname)s\n"
+
+#~ msgid ""
+#~ "To finish removing your mailing list, you must remove the\n"
+#~ "all the entires for the %(listname)s aliases."
+#~ msgstr ""
+#~ "Pro dokonèení zru¹ení konference %(listname)s musíte odstranit v¹echny "
+#~ "její aliasy."
+
+#~ msgid "Password (confirm):"
+#~ msgstr "Heslo (pro potvrzení):"
+
+#~ msgid ""
+#~ " The passwords you entered in the confirmation screen did "
+#~ "not\n"
+#~ " match, so your original subscription password will be "
+#~ "used\n"
+#~ " instead. Your password will have been generated by "
+#~ "Mailman if\n"
+#~ " you left the password fields blank. In any event, your\n"
+#~ " membership password will be sent to you in a separate\n"
+#~ " acknowledgement email.<p>"
+#~ msgstr ""
+#~ "Heslo, které jste zadal pøi potvrzení pøihlá¹ky nesouhlasí s heslem, \n"
+#~ "které jste zadal v pùvodní pøihlá¹ce. Pou¾ito bude heslo z pùvodní \n"
+#~ "pøihlá¹ky. Pokud jste jej nezadal, tak bude vytvoøeno heslo náhodné\n"
+#~ "a bude zasláno v zvlá¹tním emailu. <p>"
+
+#~ msgid "Post by a moderated member"
+#~ msgstr "Pøíspìvek od moderovaného èlena"
+
+#~ msgid "Auto-response text to send to -admin and -owner emails."
+#~ msgstr ""
+#~ "Text, který bude zaslán jako odpovìï na dopisy adresované na -admin nebo -"
+#~ "owner adresu."
+
+#~ msgid ""
+#~ "When turned on, your email address is concealed on the Web page\n"
+#~ "that lists the members of the mailing list."
+#~ msgstr ""
+#~ "Pokud je tato volba zapnuta, Va¹e adrese nebude zobrazena v seznamu "
+#~ "úèastníkù."
+
+#~ msgid ""
+#~ "When turned on, delivery to your email address is disabled, but\n"
+#~ "your address is still subscribed. This is useful if you plan on taking "
+#~ "a\n"
+#~ "short vacation."
+#~ msgstr ""
+#~ "Pokud je tato volba zapnuta, nedostáváte ¾ádné pøíspìvky z konference, "
+#~ "nicménì jste stále pøihlá¹eni. To je výhodné tøeba kdy¾ odjí¾díte na "
+#~ "prázdniny. Pokud by v konferenci do¹lo ke zmìnám, administrátor má Va¹i "
+#~ "adresu a mù¾e Vás o nich informovat. To je rozdíl mezi touto volbou a "
+#~ "úplným odhlá¹ením."
+
+#~ msgid ""
+#~ "When turned on, you get a separate acknowledgement email when you\n"
+#~ "post messages to the list."
+#~ msgstr ""
+#~ "Pokud je tato volba zapnuta, obdr¾íte potvrzení po zaslání ka¾dého "
+#~ "pøíspìvku"
+
+#~ msgid ""
+#~ "When turned on, you do *not* get copies of your own posts to\n"
+#~ "the list. Otherwise, you do get copies of your own posts (yes, this "
+#~ "seems a\n"
+#~ "little backwards). This does not affect the contents of digests, so if "
+#~ "you\n"
+#~ "receive postings in digests, you will always get copies of your messages "
+#~ "in\n"
+#~ "the digest."
+#~ msgstr ""
+#~ "Pokud je tato volba zapnuta, nedostáváte pøíspìvky, které jste sami "
+#~ "poslali do konference. To ale platí pouze pro bì¾né úèastníky. Úèastníci "
+#~ "vyu¾ívající digest v nìm obdr¾í i vlastní pøíspìvky."
+
+#~ msgid ""
+#~ "When turned on, you get postings from the list bundled into\n"
+#~ "digests. Otherwise, you get each individual message immediately as it "
+#~ "is\n"
+#~ "posted to the list."
+#~ msgstr ""
+#~ "Pokud je tato volba zapnuta nedostáváte ka¾dý pøíspìvek z konference "
+#~ "samostatnì, ale dostáváte v¹echny najednou v urèitém èasovém intervalu, "
+#~ "obvykle jednou dennì. Této funkci se øíká digest."
+
+#~ msgid ""
+#~ "When turned on, you get `plain' digests, which are actually\n"
+#~ "formatted using the RFC1154 digest format. This format can be easier to "
+#~ "read\n"
+#~ "if you have a non-MIME compliant mail reader. When this option is turned "
+#~ "off,\n"
+#~ "you get digests in MIME format, which are much better if you have a mail\n"
+#~ "reader that supports MIME."
+#~ msgstr ""
+#~ "Pokud je tato volba zapnuta, budete digest balíèky dostávat v èistém "
+#~ "textu podle RFC934\n"
+#~ "Tento formát je snáze èitelný, pokud Vá¹ po¹tovní klient nepodporuje "
+#~ "normu MIME. Vìt¹ina\n"
+#~ "ji v¹ak podporuje a tak nechte tuto volbu vypnutou a u¾ijte si mnohem "
+#~ "komfortnìj¹í MIME verze."
+
+#~ msgid ""
+#~ "Subject line ignored:\n"
+#~ " "
+#~ msgstr ""
+#~ "Subject byl ignorován:\n"
+#~ ".."
+
+#~ msgid ""
+#~ "Maximum command lines (%(maxlines)d) encountered, ignoring the rest..."
+#~ msgstr ""
+#~ "Byl zpracován maximální poèet øádek (%(maxlines)d), zbytek bude "
+#~ "ignorován..."
+
+#~ msgid "End: "
+#~ msgstr "Konec: "
+
+#~ msgid "The rest of the message is ignored:"
+#~ msgstr "Zbytek zprávy je ignorován:"
+
+#~ msgid "Command? "
+#~ msgstr "Pøíkaz?"
+
+#~ msgid ""
+#~ "\n"
+#~ "Too many errors encountered; the rest of the message is ignored:"
+#~ msgstr ""
+#~ "\n"
+#~ "Nalezeno pøíli¹ mnoho chyb. Zbytek zprávy je ignorován."
+
+#~ msgid ""
+#~ "An unexpected Mailman error has occurred.\n"
+#~ "\n"
+#~ "Please forward your request to the human list administrator in charge of "
+#~ "this\n"
+#~ "list at <%(admin)s>. The traceback is attached below and will be "
+#~ "forwarded to\n"
+#~ "the list administrator automatically."
+#~ msgstr ""
+#~ "Nastala neoèekávaná chyba pøi bìhu Mailmanu.\n"
+#~ "\n"
+#~ "Prosím, pøedejte Vá¹ po¾adavek administrátorovi\n"
+#~ "na <%(admin)s>. Ní¾e uvedený popis chyby byl administrátovi pøedán "
+#~ "automaticky."
+
+#~ msgid "Unexpected Mailman error"
+#~ msgstr "Neoèekávaná chyba v Mailmanu"
+
+#~ msgid ""
+#~ "An unexpected Mailman error has occurred in\n"
+#~ "MailCommandHandler.ParseMailCommands(). Here is the traceback:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Ve funkci MailCommandHandler.ParseMailCommands()\n"
+#~ "nastala neoèekávaná chyba.\n"
+#~ " Následuje ladící informace:\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "This is an automated response.\n"
+#~ "\n"
+#~ "There were problems with the email commands you sent to Mailman via the\n"
+#~ "administrative address %(requestaddr)s.\n"
+#~ "\n"
+#~ "To obtain instructions on valid Mailman email commands, send email to\n"
+#~ "%(requestaddr)s with the word \"help\" in the subject line or in the body "
+#~ "of the\n"
+#~ "message.\n"
+#~ "\n"
+#~ "If you want to reach the human being that manages this mailing list, "
+#~ "please\n"
+#~ "send your message to %(adminaddr)s.\n"
+#~ "\n"
+#~ "The following is a detailed description of the problems.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Tato zpráva byla vygenerována automaticky.\n"
+#~ "\n"
+#~ "Ve zprávì, kterou jste zaslali na adresu <%(requestaddr)s> byly neznámé\n"
+#~ "pøíkazy.\n"
+#~ "\n"
+#~ "Abyste získali seznam platných pøíkazù, za¹lete, prosím, na adresu:\n"
+#~ "<%(requestaddr)s> dopis obsahující slovo \"help\" (bez úvozovek) v "
+#~ "Subjektu.\n"
+#~ "\n"
+#~ "Pokud máte nìjaký jiný problém, napi¹te administrátorovi na <%(adminaddr)"
+#~ "s>.\n"
+#~ "\n"
+#~ "Následující text popisuje, jaký problém nastal pøi zpracování po¾adavkù.\n"
+#~ "\n"
+
+#~ msgid "Mailman results for %(realname)s"
+#~ msgstr "Výsledky pro %(realname)s"
+
+#~ msgid "Usage: password [<oldpw> <newpw>]"
+#~ msgstr "Zpùsob u¾ití: password [<staré heslo> <nové heslo>]"
+
+#~ msgid "You are subscribed as %(user)s, with password: %(password)s"
+#~ msgstr "Jste pøihlá¹en jako %(user)s, s heslem: %(password)s"
+
+#~ msgid "Found no password for %(sender)s"
+#~ msgstr "Nebylo nalezeno heslo pro %(sender)s"
+
+#~ msgid "Succeeded."
+#~ msgstr "Úspì¹nì provedeno."
+
+#~ msgid "by your configuration"
+#~ msgstr "kvùli Va¹í konfiguraci"
+
+#~ msgid "on (%(reason)s"
+#~ msgstr "z (%(reason)s"
+
+#~ msgid ""
+#~ "To change an option, do: set <option> <on|off> <password>\n"
+#~ "\n"
+#~ "Option explanations:\n"
+#~ "--------------------\n"
+#~ msgstr ""
+#~ "Pro zmìnu vlastností konta zadejte: set <vlastnost> <on|off> <heslo>\n"
+#~ "\n"
+#~ "Popis vlastností:\n"
+#~ "--------------------\n"
+
+#~ msgid ""
+#~ "Usage: set <option> <on|off> <password>\n"
+#~ "Valid options are:\n"
+#~ msgstr ""
+#~ "Zpùsob u¾ití: set <vlastnost> <on|off> <heslo>\n"
+#~ "Platné vlastnosti je:\n"
+
+#~ msgid "You are already receiving digests."
+#~ msgstr "Digest mód máte ji¾ nastaven."
+
+#~ msgid "You already have digests off."
+#~ msgstr "Digest mód máte vypnutý."
+
+#~ msgid "List only accepts digest members."
+#~ msgstr "Do konference se mohou pøihlásit jedinì odbìratelé digestu."
+
+#~ msgid "List doesn't accept digest members."
+#~ msgstr "V této konferenci není mo¾né zapnout digest mód."
+
+#~ msgid "\trequests to: "
+#~ msgstr "\tpo¾adavek na: "
+
+#~ msgid "\tdescription: "
+#~ msgstr "\tpopis:"
+
+#~ msgid ""
+#~ "\n"
+#~ "Usage: info\n"
+#~ "To get info for a particular list, send your request to\n"
+#~ "the `-request' address for that list, or use the `lists' command\n"
+#~ "to get info for all the lists."
+#~ msgstr ""
+#~ "\n"
+#~ "Zpùsob u¾ití: info\n"
+#~ "Abyste získali informace o konkrétní konferenci, za¹lete svùj po¾adavek "
+#~ "na adresu\n"
+#~ "<konference>-request, nebo za¹lete pøíkaz 'lists', který zobrazí seznam "
+#~ "v¹ech dostupných konferencí."
+
+#~ msgid "Private list: only members may see info."
+#~ msgstr "Soukromá konference, seznam úèastníkù je dostupný jen úèastníkùm."
+
+#~ msgid ""
+#~ "\n"
+#~ "For more complete info about the %(listname)s mailing list, including\n"
+#~ "background and instructions for subscribing to and using it, visit:\n"
+#~ "\n"
+#~ " %(url)s\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Pro získání dal¹ích informací o konferenci %(listname)s, vèetnì "
+#~ "detailního\n"
+#~ "popisu a instrukcí pro pøihlá¹ení, nav¹tivte:\n"
+#~ "\n"
+#~ " %(url)s\n"
+
+#~ msgid "No other details are available."
+#~ msgstr "®ádné dal¹í informace nejsou dostupné."
+
+#~ msgid ""
+#~ "Usage: who\n"
+#~ "To get subscribership for a particular list, send your request\n"
+#~ "to the `-request' address for that list."
+#~ msgstr ""
+#~ "Zpùsob u¾ití: who\n"
+#~ "Zobrazí seznam úèastníkù konference. Tento pøíkaz se zasílá na adresu\n"
+#~ "<konference>'-request'"
+
+#~ msgid "Private list: No one may see subscription list."
+#~ msgstr "Soukromá konference, nikdo není oprávnìn vidìt seznam úèastníkù."
+
+#~ msgid "Private list: only members may see list of subscribers."
+#~ msgstr ""
+#~ "Soukromá konference pouze její úèastníci si mohou zobrazit seznam "
+#~ "pøihlá¹ených."
+
+#~ msgid "NO MEMBERS."
+#~ msgstr "®ádní úèastníci."
+
+#~ msgid ""
+#~ "Usage: unsubscribe [password] [email-address]\n"
+#~ "To unsubscribe from a particular list, send your request to\n"
+#~ "the `-request' address for that list."
+#~ msgstr ""
+#~ "Zpùsob u¾ití: unsubscribe <heslo> [<emailová-adresa>]\n"
+#~ "Pro odhlá¹ení z konkrétní konference, za¹lete tento pøíkaz\n"
+#~ "na <konference>'-request' adresu."
+
+#~ msgid ""
+#~ "Usage: subscribe [password] [digest|nodigest] [address=<email-address>]"
+#~ msgstr ""
+#~ "Zpùsob u¾ití: subscribe [heslo] [digest|nodigest] [address=<emailová-"
+#~ "adresa>]"
+
+#~ msgid ""
+#~ "The list is not fully functional, and can not accept subscription "
+#~ "requests."
+#~ msgstr "Tato konference není v provozu a nemù¾e akceptovat pøihlá¹ky."
+
+#~ msgid "Succeeded"
+#~ msgstr "Provedeno"
+
+#~ msgid "Usage: confirm <confirmation string>\n"
+#~ msgstr "Zpùsob u¾ití: confirm <konfirmaèní èíslo>\n"
+
+#~ msgid "User `%(addr)s' not found."
+#~ msgstr "U¾ivatel %(addr)s nebyl nalezen."
+
+#~ msgid ""
+#~ "<li>Find members by\n"
+#~ " <a href=\"http://www.python.org/doc/current/lib/re-syntax."
+#~ "html\"\n"
+#~ " >Python regular expression</a> (<em>regexp</em>)<br>"
+#~ msgstr ""
+#~ "<li>Hledej úèastníky podle \n"
+#~ " <a href=\"http://www.python.org/doc/current/lib/re-syntax."
+#~ "html\"\n"
+#~ " >regulárních výrazù Pythonu</a> (<em>regexp</em>)<br>"
+
+#~ msgid "Send welcome message to this batch?"
+#~ msgstr "Zaslat této skupinì uvítací zprávu?"
+
+#~ msgid " no "
+#~ msgstr " no "
+
+#~ msgid " yes "
+#~ msgstr " ano "
+
+#~ msgid "Send notifications to the list owner? "
+#~ msgstr "Zasílat upozornìní vlastníkovi konference?"
+
+#~ msgid "Successfully Subscribed:"
+#~ msgstr "Úspì¹nì pøihlá¹eni:"
+
+#~ msgid "Error Subscribing:"
+#~ msgstr "Chyba pøi pøihlá¹ení do konference"
+
+#~ msgid "via the member options page"
+#~ msgstr "pøes stránku s vlastnostmi úèastníka"
+
+#, fuzzy
+#~ msgid "Default options for new members joining this list."
+#~ msgstr "%(sender)s není úèastníkem konference."
+
+#~ msgid ""
+#~ "Before adding a list-specific <tt>Reply-To:</tt> header,\n"
+#~ " should any existing <tt>Reply-To:</tt> field be stripped "
+#~ "from\n"
+#~ " the message?"
+#~ msgstr ""
+#~ "Má být pøed pøidáním vlastní hlavièky <tt>Reply-To:</tt> z konfigurace "
+#~ "konference odstranìna existující,\n"
+#~ " hlavièka <tt>Reply-To:</tt>?"
+
+#~ msgid ""
+#~ "The attached message has been automatically discarded because the "
+#~ "sender's\n"
+#~ "address, %(sender)s, was on the discard_these_nonmembers list. For the "
+#~ "list\n"
+#~ "of auto-discard addresses, see\n"
+#~ "\n"
+#~ " %(varhelp)s\n"
+#~ msgstr ""
+#~ "Pøilo¾ená zpráva byla zahozena, proto¾e její odesílatel (%(sender)s) \n"
+#~ "je na seznamu nepovolených adres. \n"
+#~ "Pokud potøebujete dal¹í informace a nebo seznam neplatných adres,\n"
+#~ "nahlédnìte do: \n"
+#~ " %(varhelp)s\n"
diff --git a/messages/de/LC_MESSAGES/mailman.mo b/messages/de/LC_MESSAGES/mailman.mo
new file mode 100644
index 00000000..5dc08cb5
--- /dev/null
+++ b/messages/de/LC_MESSAGES/mailman.mo
Binary files differ
diff --git a/messages/de/LC_MESSAGES/mailman.po b/messages/de/LC_MESSAGES/mailman.po
new file mode 100644
index 00000000..607d2dd0
--- /dev/null
+++ b/messages/de/LC_MESSAGES/mailman.po
@@ -0,0 +1,12706 @@
+# Deutsche Übersetzung der Mailman messages
+# Peer Heinlein <p.heinlein@jpberlin.de>,
+# Jens Vagelpohl <jens@zope.com>,
+# Dieter Kirchner <dkirchner@bupnet.de> und
+# Holger Jahn <holja@t-online.de>, 2001-2002.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: Tue Dec 24 13:41:28 2002\n"
+"PO-Revision-Date: 2002-12-30 22:01+0100\n"
+"Last-Translator: Peer Heinlein <p.heinlein@jpberlin.de>\n"
+"Language-Team: Deutsch\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.4\n"
+"X-Generator: KBabel 0.9.6\n"
+
+# Mailman/Handlers/Decorate.py:49
+#: Mailman/Archiver/HyperArch.py:112
+msgid "size not available"
+msgstr "Größe nicht verfügbar"
+
+#: Mailman/Archiver/HyperArch.py:118
+msgid " %(size)i bytes "
+msgstr " %(size)i Bytes "
+
+#: Mailman/Archiver/HyperArch.py:249 Mailman/Archiver/HyperArch.py:405
+#: Mailman/Archiver/HyperArch.py:963 Mailman/Archiver/HyperArch.py:1127
+msgid " at "
+msgstr " at "
+
+#: Mailman/Archiver/HyperArch.py:434
+msgid "Previous message:"
+msgstr "Vorherige Nachricht:"
+
+# Mailman/Gui/Archive.py:31
+#: Mailman/Archiver/HyperArch.py:456
+msgid "Next message:"
+msgstr "Nächste Nachricht:"
+
+# Mailman/Archiver/pipermail.py:448
+#: Mailman/Archiver/HyperArch.py:609 Mailman/Archiver/HyperArch.py:645
+msgid "thread"
+msgstr "Diskussionsfaden"
+
+# Mailman/Handlers/CalcRecips.py:37 Mailman/Handlers/CookHeaders.py:55
+# Mailman/Handlers/Hold.py:240 Mailman/Handlers/Hold.py:274
+# Mailman/Handlers/ToDigest.py:213 Mailman/ListAdmin.py:202
+#: Mailman/Archiver/HyperArch.py:610 Mailman/Archiver/HyperArch.py:646
+msgid "subject"
+msgstr "(kein Betreff)"
+
+#: Mailman/Archiver/HyperArch.py:611 Mailman/Archiver/HyperArch.py:647
+msgid "author"
+msgstr "Autor"
+
+#: Mailman/Archiver/HyperArch.py:612 Mailman/Archiver/HyperArch.py:648
+msgid "date"
+msgstr "Datum"
+
+#: Mailman/Archiver/HyperArch.py:684
+msgid "<P>Currently, there are no archives. </P>"
+msgstr "<P>Keine Archive vorhanden. </P>"
+
+#: Mailman/Archiver/HyperArch.py:721
+msgid "Gzip'd Text%(sz)s"
+msgstr "%(sz)s Text gepackt (gzip)"
+
+#: Mailman/Archiver/HyperArch.py:726
+msgid "Text%(sz)s"
+msgstr "Text%(sz)s"
+
+# Mailman/Cgi/private.py:62
+#: Mailman/Archiver/HyperArch.py:816
+msgid "figuring article archives\n"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "April"
+msgstr "April"
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "February"
+msgstr "Februar"
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "January"
+msgstr "Januar"
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "March"
+msgstr "März"
+
+#: Mailman/Archiver/HyperArch.py:827
+msgid "August"
+msgstr "August"
+
+#: Mailman/Archiver/HyperArch.py:827
+msgid "July"
+msgstr "Juli"
+
+#: Mailman/Archiver/HyperArch.py:827
+msgid "June"
+msgstr "Juni"
+
+# Mailman/Cgi/options.py:563
+#: Mailman/Archiver/HyperArch.py:827 Mailman/i18n.py:91
+msgid "May"
+msgstr "Mai"
+
+# Mailman/HTMLFormatter.py:264
+#: Mailman/Archiver/HyperArch.py:828
+msgid "December"
+msgstr "Dezember"
+
+# Mailman/HTMLFormatter.py:264
+#: Mailman/Archiver/HyperArch.py:828
+msgid "November"
+msgstr "November"
+
+#: Mailman/Archiver/HyperArch.py:828
+msgid "October"
+msgstr "Oktober"
+
+# Mailman/HTMLFormatter.py:264
+#: Mailman/Archiver/HyperArch.py:828
+msgid "September"
+msgstr "September"
+
+# Mailman/Cgi/admin.py:266 Mailman/Cgi/listinfo.py:132 cron/mailpasswds:147
+#: Mailman/Archiver/HyperArch.py:836
+msgid "First"
+msgstr "Erste(s)"
+
+#: Mailman/Archiver/HyperArch.py:836
+msgid "Fourth"
+msgstr "Vierte(s)"
+
+#: Mailman/Archiver/HyperArch.py:836
+msgid "Second"
+msgstr "Zweite(r)"
+
+# Mailman/Cgi/admin.py:816
+#: Mailman/Archiver/HyperArch.py:836
+msgid "Third"
+msgstr "Dritte(s)"
+
+#: Mailman/Archiver/HyperArch.py:838
+msgid "%(ord)s quarter %(year)i"
+msgstr "%(ord)s Quartal %(year)i"
+
+#: Mailman/Archiver/HyperArch.py:845
+msgid "%(month)s %(year)i"
+msgstr "%(month)s %(year)i"
+
+#: Mailman/Archiver/HyperArch.py:850
+msgid "The Week Of Monday %(day)i %(month)s %(year)i"
+msgstr "Woche %(day)i %(month)s %(year)i"
+
+#: Mailman/Archiver/HyperArch.py:854
+msgid "%(day)i %(month)s %(year)i"
+msgstr "%(day)i %(month)s %(year)i"
+
+#: Mailman/Archiver/HyperArch.py:951
+msgid "Computing threaded index\n"
+msgstr "Berechne verketteten Index\n"
+
+# Mailman/Archiver/pipermail.py:414
+#: Mailman/Archiver/HyperArch.py:1206
+msgid "Updating HTML for article %(seq)s"
+msgstr "Akutalisiere HTML für Artikel %(seq)s"
+
+#: Mailman/Archiver/HyperArch.py:1213
+msgid "article file %(filename)s is missing!"
+msgstr "Artikel-Datei %(filename)s fehlt!"
+
+# Mailman/Archiver/pipermail.py:166 Mailman/Archiver/pipermail.py:167
+#: Mailman/Archiver/pipermail.py:168 Mailman/Archiver/pipermail.py:169
+msgid "No subject"
+msgstr "Kein Betreff"
+
+# Mailman/Archiver/pipermail.py:264
+#: Mailman/Archiver/pipermail.py:269
+msgid "Creating archive directory "
+msgstr "Archiv-Verzeichnis wird erstellt"
+
+# Mailman/Archiver/pipermail.py:276
+#: Mailman/Archiver/pipermail.py:281
+msgid "Reloading pickled archive state"
+msgstr "Vorheriger Archivzustand wird geladen"
+
+# Mailman/Archiver/pipermail.py:303
+#: Mailman/Archiver/pipermail.py:308
+msgid "Pickling archive state into "
+msgstr "Schreibe Archivzustand in Datei "
+
+# Mailman/Archiver/pipermail.py:414
+#: Mailman/Archiver/pipermail.py:419
+msgid "Updating index files for archive [%(archive)s]"
+msgstr "Index-Dateien für Archiv [%(archive)s] werden aktualisiert"
+
+# Mailman/Archiver/pipermail.py:448
+#: Mailman/Archiver/pipermail.py:452
+msgid " Thread"
+msgstr " Diskussionsfaden"
+
+#: Mailman/Archiver/pipermail.py:557
+msgid "#%(counter)05d %(msgid)s"
+msgstr "#%(counter)05d %(msgid)s"
+
+#: Mailman/Bouncer.py:44
+msgid "due to excessive bounces"
+msgstr "wegen andauernder Unzustellbarkeit"
+
+#: Mailman/Bouncer.py:45
+msgid "by yourself"
+msgstr "selber"
+
+# Mailman/HTMLFormatter.py:137 Mailman/HTMLFormatter.py:267
+#: Mailman/Bouncer.py:46
+msgid "by the list administrator"
+msgstr "durch den Administrator der Liste"
+
+#: Mailman/Bouncer.py:47 Mailman/Bouncer.py:232
+#: Mailman/Commands/cmd_set.py:182
+msgid "for unknown reasons"
+msgstr "Aus unbekannten Gründen "
+
+# Mailman/Bouncer.py:158 Mailman/Bouncer.py:162
+#: Mailman/Bouncer.py:179
+msgid "disabled"
+msgstr "deaktiviert"
+
+# Mailman/MailList.py:711 bin/add_members:258
+#: Mailman/Bouncer.py:184
+msgid "Bounce action notification"
+msgstr "Bounce-Benachrichtigung"
+
+#: Mailman/Bouncer.py:239
+msgid " The last bounce received from you was dated %(date)s"
+msgstr " Die letzte Unzustellbarkeitsmeldung von Ihnen kam am %(date)s"
+
+# Mailman/Handlers/CalcRecips.py:37 Mailman/Handlers/CookHeaders.py:55
+# Mailman/Handlers/Hold.py:240 Mailman/Handlers/Hold.py:274
+# Mailman/Handlers/ToDigest.py:213 Mailman/ListAdmin.py:202
+#: Mailman/Bouncer.py:264 Mailman/Deliverer.py:126
+#: Mailman/Handlers/Acknowledge.py:44 Mailman/Handlers/CookHeaders.py:236
+#: Mailman/Handlers/Hold.py:214 Mailman/Handlers/Hold.py:249
+#: Mailman/Handlers/ToDigest.py:211 Mailman/ListAdmin.py:235
+msgid "(no subject)"
+msgstr "(kein Betreff)"
+
+# Mailman/Cgi/admin.py:273 Mailman/Cgi/listinfo.py:139 bin/list_lists:103
+#: Mailman/Bouncer.py:266
+msgid "[No bounce details are available]"
+msgstr "[keine Bounce-Details verfügbar]"
+
+# Mailman/Cgi/Auth.py:46
+#: Mailman/Cgi/Auth.py:46
+msgid "Moderator"
+msgstr "Moderator"
+
+# Mailman/Cgi/Auth.py:48
+#: Mailman/Cgi/Auth.py:48
+msgid "Administrator"
+msgstr "Administrator"
+
+# Mailman/Cgi/admin.py:66 Mailman/Cgi/admindb.py:60 Mailman/Cgi/confirm.py:52
+# Mailman/Cgi/edithtml.py:65 Mailman/Cgi/listinfo.py:49
+# Mailman/Cgi/options.py:67 Mailman/Cgi/private.py:96
+# Mailman/Cgi/rmlist.py:60 Mailman/Cgi/roster.py:55
+# Mailman/Cgi/subscribe.py:57
+#: Mailman/Cgi/admin.py:70 Mailman/Cgi/admindb.py:89 Mailman/Cgi/confirm.py:55
+#: Mailman/Cgi/edithtml.py:67 Mailman/Cgi/listinfo.py:51
+#: Mailman/Cgi/options.py:71 Mailman/Cgi/private.py:98
+#: Mailman/Cgi/rmlist.py:64 Mailman/Cgi/roster.py:57
+#: Mailman/Cgi/subscribe.py:61
+msgid "No such list <em>%(safelistname)s</em>"
+msgstr "Keine Liste mit Namen <em>%(safelistname)s</em> vorhanden."
+
+# Mailman/Cgi/admin.py:81 Mailman/Cgi/admindb.py:76
+# Mailman/Cgi/edithtml.py:83 Mailman/Cgi/private.py:121
+#: Mailman/Cgi/admin.py:85 Mailman/Cgi/admindb.py:105
+#: Mailman/Cgi/edithtml.py:85 Mailman/Cgi/private.py:123
+msgid "Authorization failed."
+msgstr "Zugang verweigert."
+
+# Mailman/Cgi/admin.py:165
+#: Mailman/Cgi/admin.py:175
+msgid ""
+"You have turned off delivery of both digest and\n"
+" non-digest messages. This is an incompatible state of\n"
+" affairs. You must turn on either digest delivery or\n"
+" non-digest delivery or your mailing list will basically be\n"
+" unusable."
+msgstr ""
+"Sie haben sowohl die Sendung von Einzelnachrichten, als auch die Zusendung "
+"von Nachrichtensammlungen abgestellt. Damit ist diese Liste unbrauchbar für "
+"Sie. Bitte wählen Sie entweder den Versand von Einzelnachrichten oder "
+"Nachrichtensammlungen."
+
+# Mailman/Cgi/admin.py:1337
+#: Mailman/Cgi/admin.py:179 Mailman/Cgi/admin.py:185 Mailman/Cgi/admin.py:190
+#: Mailman/Cgi/admin.py:1361 Mailman/Gui/GUIBase.py:184
+msgid "Warning: "
+msgstr "Achtung: "
+
+# Mailman/Cgi/admin.py:174
+#: Mailman/Cgi/admin.py:183
+msgid ""
+"You have digest members, but digests are turned\n"
+" off. Those people will not receive mail."
+msgstr ""
+"Sie haben Mitglieder die Nachrichtensammlungen (digests) bekommen wollen, "
+"aber der Sammlungs-Modus ist von Ihnen deaktiviert. Diese Mitglieder "
+"bekommen deswegen gar keine Nachrichten!"
+
+# Mailman/Cgi/admin.py:179
+#: Mailman/Cgi/admin.py:188
+msgid ""
+"You have regular list members but non-digestified mail is\n"
+" turned off. They will receive mail until you fix this\n"
+" problem."
+msgstr ""
+"Sie haben Mitglieder, die einzelne Nachrichten bekommen wollen, aber dieser "
+"Modus ist von Ihnen deaktiviert. Diese Mitglieder bekommen erst dann wieder "
+"Nachrichten, wenn Sie den Versand von einzelnen Nachrichten freigegeben "
+"haben."
+
+# Mailman/Cgi/admin.py:203
+#: Mailman/Cgi/admin.py:212
+msgid "%(hostname)s mailing lists - Admin Links"
+msgstr "%(hostname)s Email Listen - Administrative Links"
+
+# Mailman/Cgi/admin.py:225 Mailman/Cgi/listinfo.py:97
+#: Mailman/Cgi/admin.py:241 Mailman/Cgi/listinfo.py:97
+msgid "Welcome!"
+msgstr "Willkommen!"
+
+# Mailman/Cgi/admin.py:228 Mailman/Cgi/listinfo.py:100
+#: Mailman/Cgi/admin.py:244 Mailman/Cgi/listinfo.py:100
+msgid "Mailman"
+msgstr "Mailman"
+
+# Mailman/Cgi/admin.py:232
+#: Mailman/Cgi/admin.py:248
+msgid ""
+"<p>There currently are no publicly-advertised %(mailmanlink)s\n"
+" mailing lists on %(hostname)s."
+msgstr ""
+"<p>Momentan sind keine öffentlich zugänglichen %(mailmanlink)s Mailinglisten "
+"auf %(hostname)s."
+
+# Mailman/Cgi/admin.py:238
+#: Mailman/Cgi/admin.py:254
+msgid ""
+"<p>Below is the collection of publicly-advertised\n"
+" %(mailmanlink)s mailing lists on %(hostname)s. Click on a list\n"
+" name to visit the configuration pages for that list."
+msgstr ""
+"<p>Dies ist eine Auflistung aller öffentlich verfügbaren %(mailmanlink)s "
+"Mailinglisten auf %(hostname)s. Wählen Sie einen Listen-Namen, um die "
+"Konfigurationsseiten für diese Liste zu sehen."
+
+# Mailman/Cgi/admin.py:245
+#: Mailman/Cgi/admin.py:261
+msgid "right "
+msgstr "rechts "
+
+# Mailman/Cgi/admin.py:247
+#: Mailman/Cgi/admin.py:263
+msgid ""
+"To visit the administrators configuration page for an\n"
+" unadvertised list, open a URL similar to this one, but with a '/' "
+"and\n"
+" the %(extra)slist name appended. If you have the proper authority,\n"
+" you can also <a href=\"%(creatorurl)s\">create a new mailing list</"
+"a>.\n"
+"\n"
+" <p>General list information can be found at "
+msgstr ""
+"Um die Konfigurationsseite für eine nicht öffentlich verfügbare Liste zu "
+"sehen, hängen sie einfach '/' und den %(extra)s an diese Addresse an. Falls "
+"Sie die erforderliche Zugangsberechtigung haben, können sie auch eine <a "
+"href=\"%(creatorurl)s\">neue Liste einrichten</a>.\n"
+"\n"
+"<p>Allgemeine Listeninformationen sind unter "
+
+# Mailman/Cgi/admin.py:254
+#: Mailman/Cgi/admin.py:270
+msgid "the mailing list overview page"
+msgstr "die Übersichtsseite für die Liste"
+
+# Mailman/Cgi/admin.py:256
+#: Mailman/Cgi/admin.py:272
+msgid "<p>(Send questions and comments to "
+msgstr "<p>(Bitte senden Sie Fragen oder Kommentare an "
+
+# Mailman/Cgi/admin.py:266 Mailman/Cgi/listinfo.py:132 cron/mailpasswds:147
+#: Mailman/Cgi/admin.py:282 Mailman/Cgi/listinfo.py:132 cron/mailpasswds:179
+msgid "List"
+msgstr "Liste"
+
+# Mailman/Cgi/admin.py:267 Mailman/Cgi/admin.py:508
+# Mailman/Cgi/listinfo.py:133
+#: Mailman/Cgi/admin.py:283 Mailman/Cgi/admin.py:549
+#: Mailman/Cgi/listinfo.py:133
+msgid "Description"
+msgstr "Beschreibung"
+
+# Mailman/Cgi/admin.py:273 Mailman/Cgi/listinfo.py:139 bin/list_lists:103
+#: Mailman/Cgi/admin.py:289 Mailman/Cgi/listinfo.py:139 bin/list_lists:116
+msgid "[no description available]"
+msgstr "[keine Beschreibung verfügbar]"
+
+# Mailman/Cgi/admin.py:302
+#: Mailman/Cgi/admin.py:322
+msgid "No valid variable name found."
+msgstr "Kein gültiger Variablennname gefunden"
+
+# Mailman/Cgi/admin.py:314
+#: Mailman/Cgi/admin.py:332
+msgid ""
+"%(realname)s Mailing list Configuration Help\n"
+" <br><em>%(varname)s</em> Option"
+msgstr "%(realname)s Listenkonfigurationshilfe <br><em>%(varname)s</em> Option"
+
+# Mailman/Cgi/admin.py:321
+#: Mailman/Cgi/admin.py:339
+msgid "Mailman %(varname)s List Option Help"
+msgstr "Hilfe für Mailman %(varname)s Listen-Optionen"
+
+# Mailman/Cgi/admin.py:334
+#: Mailman/Cgi/admin.py:357
+msgid ""
+"<em><strong>Warning:</strong> changing this option here\n"
+" could cause other screens to be out-of-sync. Be sure to reload any "
+"other\n"
+" pages that are displaying this option for this mailing list. You can "
+"also\n"
+" "
+msgstr ""
+"<em><strong>Achtung:</strong> Wenn diese Konfiguration verändert wird, "
+"müssen alle anderen geöffneten Seiten neu geladen werden, damit sie diese "
+"Äbderung übernehmen. Sie können auch "
+
+# Mailman/Cgi/admin.py:340
+#: Mailman/Cgi/admin.py:368
+msgid "return to the %(categoryname)s options page."
+msgstr "zur Konfigurationsseite für %(categoryname)s zurückkehren."
+
+# Mailman/Cgi/admin.py:355
+#: Mailman/Cgi/admin.py:383
+msgid "%(realname)s Administration (%(label)s)"
+msgstr "%(realname)s Administration (%(label)s)"
+
+# Mailman/Cgi/admin.py:356
+#: Mailman/Cgi/admin.py:384
+msgid "%(realname)s mailing list administration<br>%(label)s Section"
+msgstr "%(realname)s Listen-Administration<br>Sektion %(label)s"
+
+# Mailman/Cgi/admin.py:361
+#: Mailman/Cgi/admin.py:400
+msgid "Configuration Categories"
+msgstr "Konfigurationskategorien"
+
+# Mailman/Cgi/admin.py:362
+#: Mailman/Cgi/admin.py:401
+msgid "Other Administrative Activities"
+msgstr "Andere Administrative Tätigkeiten"
+
+# Mailman/Cgi/admin.py:367
+#: Mailman/Cgi/admin.py:405
+msgid "Tend to pending moderator requests"
+msgstr "Unbearbeitete Moderationsanträge bearbeiten"
+
+# Mailman/Cgi/admin.py:369
+#: Mailman/Cgi/admin.py:407
+msgid "Go to the general list information page"
+msgstr "Zur allgemeinen Listen-Informationsseite gehen"
+
+# Mailman/Cgi/admin.py:371
+#: Mailman/Cgi/admin.py:409
+msgid "Edit the public HTML pages"
+msgstr "Öffentliche HTML-Seiten anpassen"
+
+# Mailman/Cgi/admin.py:373
+#: Mailman/Cgi/admin.py:411
+msgid "Go to list archives"
+msgstr "Zum Listen-Archiv gehen"
+
+# Mailman/Cgi/admin.py:377
+#: Mailman/Cgi/admin.py:417
+msgid "Delete this mailing list"
+msgstr "Liste löschen"
+
+# Mailman/Cgi/admin.py:378
+#: Mailman/Cgi/admin.py:418
+msgid " (requires confirmation)<br>&nbsp;<br>"
+msgstr " (erfordert Bestätigung)<br>&nbsp;<br>"
+
+# Mailman/Cgi/admin.py:384
+#: Mailman/Cgi/admin.py:424
+msgid "Logout"
+msgstr "Abmelden"
+
+#: Mailman/Cgi/admin.py:468
+msgid "Emergency moderation of all list traffic is enabled"
+msgstr "Notmoderation aller eingehenden Nachrichten"
+
+# Mailman/Cgi/admin.py:444
+#: Mailman/Cgi/admin.py:479
+msgid ""
+"Make your changes in the following section, then submit them\n"
+" using the <em>Submit Your Changes</em> button below."
+msgstr ""
+"Änderungen können im folgenden Abschnitt eingestellt und dann mit dem "
+"<em>Änderungen vornehmen</em>-Schalter vorgenommen werden."
+
+#: Mailman/Cgi/admin.py:497
+msgid "Additional Member Tasks"
+msgstr "Zusätzliche Mitgliederaufträge"
+
+#: Mailman/Cgi/admin.py:503
+msgid ""
+"<li>Set everyone's moderation bit, including\n"
+" those members not currently visible"
+msgstr ""
+"<li>Setze jedermanns Moderations-Bit, einschliesslich der Mitglieder, die "
+"augenblicklich nicht sichtbar sind"
+
+#: Mailman/Cgi/admin.py:507
+msgid "Off"
+msgstr "Aus"
+
+#: Mailman/Cgi/admin.py:507
+msgid "On"
+msgstr "Ein"
+
+#: Mailman/Cgi/admin.py:509
+msgid "Set"
+msgstr "Gesetzt"
+
+# Mailman/Cgi/admin.py:509
+#: Mailman/Cgi/admin.py:550
+msgid "Value"
+msgstr "Wert"
+
+# Mailman/Cgi/admin.py:562
+#: Mailman/Cgi/admin.py:604
+msgid ""
+"Badly formed options entry:\n"
+" %(record)s"
+msgstr "Ungültige Konfiguration: %(record)s"
+
+# Mailman/Cgi/admin.py:614
+#: Mailman/Cgi/admin.py:662
+msgid "<em>Enter the text below, or...</em><br>"
+msgstr "<em>Setzen Sie den Text unten ein, oder...</em><br>"
+
+# Mailman/Cgi/admin.py:616
+#: Mailman/Cgi/admin.py:664
+msgid "<br><em>...specify a file to upload</em><br>"
+msgstr "<br><em>...wählen Sie eine Datei zum hochladen</em><br>"
+
+# Mailman/Cgi/admin.py:642 Mailman/Cgi/admin.py:645
+#: Mailman/Cgi/admin.py:690 Mailman/Cgi/admin.py:693
+msgid "Topic %(i)d"
+msgstr "Thema %(i)d"
+
+# Mailman/Cgi/admin.py:646
+#: Mailman/Cgi/admin.py:694
+msgid "Delete"
+msgstr "Löschen"
+
+# Mailman/Cgi/admin.py:647
+#: Mailman/Cgi/admin.py:695
+msgid "Topic name:"
+msgstr "Themenname:"
+
+# Mailman/Cgi/admin.py:649
+#: Mailman/Cgi/admin.py:697
+msgid "Regexp:"
+msgstr "Regulärer Ausdruck:"
+
+# Mailman/Cgi/admin.py:652 Mailman/Cgi/options.py:799
+#: Mailman/Cgi/admin.py:700 Mailman/Cgi/options.py:943
+msgid "Description:"
+msgstr "Beschreibung:"
+
+# Mailman/Cgi/admin.py:656
+#: Mailman/Cgi/admin.py:704
+msgid "Add new item..."
+msgstr "Neuen Eintrag hinzufügen..."
+
+# Mailman/Cgi/admin.py:658
+#: Mailman/Cgi/admin.py:706
+msgid "...before this one."
+msgstr "...vor diesem Eintrag."
+
+# Mailman/Cgi/admin.py:659
+#: Mailman/Cgi/admin.py:707
+msgid "...after this one."
+msgstr "...nach diesem Eintrag."
+
+#: Mailman/Cgi/admin.py:742
+msgid "<br>(Edit <b>%(varname)s</b>)"
+msgstr "<br>(Details zu <b>%(varname)s</b>)"
+
+#: Mailman/Cgi/admin.py:744
+msgid "<br>(Details for <b>%(varname)s</b>)"
+msgstr "<br>(Details zu <b>%(varname)s</b>)"
+
+# Mailman/Cgi/admin.py:694
+#: Mailman/Cgi/admin.py:751
+msgid ""
+"<br><em><strong>Note:</strong>\n"
+" setting this value performs an immediate action but does not modify\n"
+" permanent state.</em>"
+msgstr ""
+"<br><em><strong>Hinweis:</strong> Änderungen dieses Wertes werden sofort "
+"vorgenommen, modifizieren aber nicht den permanenten Zustand.</em>"
+
+# Mailman/Cgi/admin.py:707
+#: Mailman/Cgi/admin.py:765
+msgid "Mass Subscriptions"
+msgstr "Masseneintrag neuer Mitglieder"
+
+# Mailman/Cgi/admin.py:714
+#: Mailman/Cgi/admin.py:772
+msgid "Mass Removals"
+msgstr "Massenaustrag von Mitgliedern"
+
+# Mailman/Cgi/admin.py:721 Mailman/Gui/Membership.py:30
+#: Mailman/Cgi/admin.py:779
+msgid "Membership List"
+msgstr "Mitgliederliste"
+
+#: Mailman/Cgi/admin.py:786
+msgid "(help)"
+msgstr "(Hilfe)"
+
+#: Mailman/Cgi/admin.py:787
+msgid "Find member %(link)s:"
+msgstr "Mitglied %(link)s finden:"
+
+# Mailman/Cgi/admin.py:466
+#: Mailman/Cgi/admin.py:790
+msgid "Search..."
+msgstr "Suchen..."
+
+#: Mailman/Cgi/admin.py:805
+msgid "Bad regular expression: "
+msgstr "Fehlerhafter regulärer Ausdruck: "
+
+# Mailman/Cgi/admin.py:788
+#: Mailman/Cgi/admin.py:861
+msgid "%(allcnt)s members total, %(membercnt)s shown"
+msgstr "%(allcnt)s Mitglieder insgesamt, %(membercnt)s werden angezeigt"
+
+# Mailman/Cgi/admin.py:791
+#: Mailman/Cgi/admin.py:864
+msgid "%(allcnt)s members total"
+msgstr "%(allcnt)s Mitglieder insgesamt"
+
+# Mailman/Cgi/admin.py:814
+#: Mailman/Cgi/admin.py:887
+msgid "unsub"
+msgstr "Austragen"
+
+# Mailman/Cgi/admin.py:815
+#: Mailman/Cgi/admin.py:888
+msgid "member address<br>member name"
+msgstr "Mitglieder-Adresse<br>Mitgliedsname"
+
+# Mailman/Cgi/admin.py:816
+#: Mailman/Cgi/admin.py:889
+msgid "hide"
+msgstr "Verstecken"
+
+# Mailman/Bouncer.py:168
+#: Mailman/Cgi/admin.py:889
+msgid "mod"
+msgstr "moderiert"
+
+#: Mailman/Cgi/admin.py:890
+msgid "nomail<br>[reason]"
+msgstr "keine Nachricht<br>[Grund]"
+
+# Mailman/Cgi/admin.py:817
+#: Mailman/Cgi/admin.py:891
+msgid "ack"
+msgstr "Bestätigung"
+
+# Mailman/Cgi/admin.py:817
+#: Mailman/Cgi/admin.py:891
+msgid "not metoo"
+msgstr "Keine eigenen"
+
+#: Mailman/Cgi/admin.py:892
+msgid "nodupes"
+msgstr "Keine Duplikate"
+
+# Mailman/Cgi/admin.py:818
+#: Mailman/Cgi/admin.py:893
+msgid "digest"
+msgstr "Sammlung"
+
+# Mailman/Cgi/admin.py:818
+#: Mailman/Cgi/admin.py:893
+msgid "plain"
+msgstr "Einzeln"
+
+# Mailman/Cgi/admin.py:819
+#: Mailman/Cgi/admin.py:894
+msgid "language"
+msgstr "Sprache"
+
+#: Mailman/Cgi/admin.py:905
+msgid "?"
+msgstr "?"
+
+#: Mailman/Cgi/admin.py:906
+msgid "U"
+msgstr "U"
+
+#: Mailman/Cgi/admin.py:907
+msgid "A"
+msgstr "A"
+
+#: Mailman/Cgi/admin.py:908
+msgid "B"
+msgstr "B"
+
+# Mailman/Cgi/admin.py:880
+#: Mailman/Cgi/admin.py:979
+msgid "<b>unsub</b> -- Click on this to unsubscribe the member."
+msgstr "<b>Austragen</b> -- Abonnement beenden"
+
+#: Mailman/Cgi/admin.py:981
+msgid ""
+"<b>mod</b> -- The user's personal moderation flag. If this is\n"
+" set, postings from them will be moderated, otherwise they will be\n"
+" approved."
+msgstr ""
+"<b>mod</b> -- Die Moderationeinstellung für dieses Mitglied. Wenn diese\n"
+" Einstellung gesetzt ist, werden alle Nachrichten dieses Benutzers\n"
+" moderiert, ansonsten werden sie sofort verteilt."
+
+# Mailman/Cgi/admin.py:882
+#: Mailman/Cgi/admin.py:985
+msgid ""
+"<b>hide</b> -- Is the member's address concealed on\n"
+" the list of subscribers?"
+msgstr ""
+"<b>Verstecken</b> -- Ist diese Mitgliedsaddresse auf der\n"
+" Abonnentenliste unsichtbar?"
+
+#: Mailman/Cgi/admin.py:987
+msgid ""
+"<b>nomail</b> -- Is delivery to the member disabled? If so, an\n"
+" abbreviation will be given describing the reason for the disabled\n"
+" delivery:\n"
+" <ul><li><b>U</b> -- Delivery was disabled by the user via their\n"
+" personal options page.\n"
+" <li><b>A</b> -- Delivery was disabled by the list\n"
+" administrators.\n"
+" <li><b>B</b> -- Delivery was disabled by the system due to\n"
+" excessive bouncing from the member's address.\n"
+" <li><b>?</b> -- The reason for disabled delivery isn't "
+"known.\n"
+" This is the case for all memberships which were "
+"disabled\n"
+" in older versions of Mailman.\n"
+" </ul>"
+msgstr ""
+"<b>nomail</b> -- Ist die Auslieferung von Mails an diesen User deaktiviert? "
+"Wenn ja, wird\n"
+" Ihnen ein Kürzel den Grund dafür angeben:\n"
+" <ul><li><b>U</b> -- Die Zustellung wurde durch den User selbst "
+"deaktiviert.\n"
+" <li><b>A</b> -- Die Zustellung wurde durch den Listen-"
+"Administrator deaktiviert.\n"
+" <li><b>B</b> -- Die Zustellung wurde von Mailman deaktivert, "
+"da e-Mails an diese Adresse mehrfach unzustellbar waren.\n"
+" <li><b>?</b> -- Der Grund für die Deaktivierung ist nicht "
+"bekannt (i.d.R. erfolgte die Deaktivierung in einer älteren Mailman-"
+"Version).\n"
+" </ul>"
+
+# Mailman/Cgi/admin.py:886
+#: Mailman/Cgi/admin.py:1002
+msgid ""
+"<b>ack</b> -- Does the member get acknowledgements of their\n"
+" posts?"
+msgstr ""
+"<b>Bestätigung</b> -- Bekommt dieses Mitglied Bestätigungen für seine\n"
+" Sendungen an die Liste?"
+
+# Mailman/Cgi/admin.py:889
+#: Mailman/Cgi/admin.py:1005
+msgid ""
+"<b>not metoo</b> -- Does the member want to avoid copies of their\n"
+" own postings?"
+msgstr ""
+"<b>Keine eigenen</b> -- Möchte dieses Mitglied keine Mitteilungen\n"
+" erhalten, die von Ihm selber gesendet wurden?"
+
+# Mailman/Cgi/admin.py:889
+#: Mailman/Cgi/admin.py:1008
+msgid ""
+"<b>nodupes</b> -- Does the member want to avoid duplicates of the\n"
+" same message?"
+msgstr ""
+"<b>Keine eigenen</b> -- Möchte dieses Mitglied keine Mitteilungen\n"
+" erhalten, die von Ihm selber gesendet wurden?"
+
+# Mailman/Cgi/admin.py:892
+#: Mailman/Cgi/admin.py:1011
+msgid ""
+"<b>digest</b> -- Does the member get messages in digests?\n"
+" (otherwise, individual messages)"
+msgstr ""
+"<b>Sammlung</b> -- Bekommt dieses Mitglied Sammlungen\n"
+" anstatt einzelner Mitteilungen?"
+
+# Mailman/Cgi/admin.py:895
+#: Mailman/Cgi/admin.py:1014
+msgid ""
+"<b>plain</b> -- If getting digests, does the member get plain\n"
+" text digests? (otherwise, MIME)"
+msgstr ""
+"<b>Einfach</b> -- Falls Sammlungen gewählt wurde, bekommt\n"
+" dieses Mitglied Mitteilungen in einfachem Text oder MIME-Format?"
+
+# Mailman/Cgi/admin.py:897
+#: Mailman/Cgi/admin.py:1016
+msgid "<b>language</b> -- Language preferred by the user"
+msgstr "<b>Sprache</b> -- Die bevorzugte Sprache des Mitglieds"
+
+#: Mailman/Cgi/admin.py:1030
+msgid "Click here to hide the legend for this table."
+msgstr "Hier klicken, um die Erklärungen für diese Tabelle nicht anzuzeigen."
+
+#: Mailman/Cgi/admin.py:1034
+msgid "Click here to include the legend for this table."
+msgstr "Hier klicken, um die Erklärungen für diese Tabelle anzuzeigen."
+
+# Mailman/Cgi/admin.py:904
+#: Mailman/Cgi/admin.py:1041
+msgid ""
+"<p><em>To view more members, click on the appropriate\n"
+" range listed below:</em>"
+msgstr "<p><em>Um mehr Mitglieder zu sehen, wählen Sie die entsprechende Länge:</em>"
+
+# Mailman/Cgi/admin.py:913
+#: Mailman/Cgi/admin.py:1050
+msgid "from %(start)s to %(end)s"
+msgstr "von %(start)s bis %(end)s"
+
+#: Mailman/Cgi/admin.py:1063
+msgid "Subscribe these users now or invite them?"
+msgstr "Diese Benutzer jetzt anmelden oder nur einladen?"
+
+# Mailman/Cgi/subscribe.py:116
+#: Mailman/Cgi/admin.py:1065
+msgid "Invite"
+msgstr "Einladen"
+
+# Mailman/Cgi/confirm.py:220 Mailman/Cgi/listinfo.py:171
+#: Mailman/Cgi/admin.py:1065 Mailman/Cgi/listinfo.py:175
+msgid "Subscribe"
+msgstr "Abonnieren"
+
+# Mailman/Cgi/admin.py:927
+#: Mailman/Cgi/admin.py:1071
+msgid "Send welcome messages to new subscribees?"
+msgstr "Einen Willkommensgruss an neue Abonnenten senden?"
+
+# Mailman/Cgi/confirm.py:208 Mailman/Cgi/create.py:301
+# Mailman/Cgi/create.py:347 Mailman/Gui/Archive.py:30
+# Mailman/Gui/Autoresponse.py:48 Mailman/Gui/Autoresponse.py:56
+# Mailman/Gui/Autoresponse.py:65 Mailman/Gui/Bounce.py:32
+# Mailman/Gui/Digest.py:35 Mailman/Gui/Digest.py:51 Mailman/Gui/Digest.py:73
+# Mailman/Gui/Digest.py:78 Mailman/Gui/General.py:217
+# Mailman/Gui/General.py:227 Mailman/Gui/General.py:252
+# Mailman/Gui/General.py:256 Mailman/Gui/General.py:263
+# Mailman/Gui/General.py:273 Mailman/Gui/General.py:278
+# Mailman/Gui/NonDigest.py:36 Mailman/Gui/NonDigest.py:55
+# Mailman/Gui/Privacy.py:86 Mailman/Gui/Privacy.py:100
+# Mailman/Gui/Privacy.py:111 Mailman/Gui/Privacy.py:114
+# Mailman/Gui/Privacy.py:147 Mailman/Gui/Privacy.py:221
+# Mailman/Gui/Usenet.py:43 Mailman/Gui/Usenet.py:47 Mailman/Gui/Usenet.py:51
+#: Mailman/Cgi/admin.py:1073 Mailman/Cgi/admin.py:1082
+#: Mailman/Cgi/admin.py:1115 Mailman/Cgi/admin.py:1123
+#: Mailman/Cgi/confirm.py:271 Mailman/Cgi/create.py:327
+#: Mailman/Cgi/create.py:355 Mailman/Cgi/create.py:395
+#: Mailman/Cgi/rmlist.py:228 Mailman/Gui/Archive.py:33
+#: Mailman/Gui/Autoresponse.py:54 Mailman/Gui/Autoresponse.py:62
+#: Mailman/Gui/Autoresponse.py:71 Mailman/Gui/Bounce.py:77
+#: Mailman/Gui/Bounce.py:108 Mailman/Gui/Bounce.py:134
+#: Mailman/Gui/Bounce.py:143 Mailman/Gui/ContentFilter.py:70
+#: Mailman/Gui/ContentFilter.py:103 Mailman/Gui/Digest.py:46
+#: Mailman/Gui/Digest.py:62 Mailman/Gui/Digest.py:84 Mailman/Gui/Digest.py:89
+#: Mailman/Gui/General.py:148 Mailman/Gui/General.py:154
+#: Mailman/Gui/General.py:232 Mailman/Gui/General.py:259
+#: Mailman/Gui/General.py:286 Mailman/Gui/General.py:297
+#: Mailman/Gui/General.py:300 Mailman/Gui/General.py:310
+#: Mailman/Gui/General.py:315 Mailman/Gui/General.py:325
+#: Mailman/Gui/General.py:345 Mailman/Gui/General.py:373
+#: Mailman/Gui/General.py:396 Mailman/Gui/NonDigest.py:44
+#: Mailman/Gui/NonDigest.py:52 Mailman/Gui/Privacy.py:101
+#: Mailman/Gui/Privacy.py:107 Mailman/Gui/Privacy.py:140
+#: Mailman/Gui/Privacy.py:188 Mailman/Gui/Privacy.py:296
+#: Mailman/Gui/Privacy.py:309 Mailman/Gui/Usenet.py:50
+#: Mailman/Gui/Usenet.py:54 Mailman/Gui/Usenet.py:91 Mailman/Gui/Usenet.py:103
+msgid "No"
+msgstr "Nein"
+
+# Mailman/Cgi/confirm.py:208 Mailman/Cgi/create.py:301
+# Mailman/Cgi/create.py:347 Mailman/Gui/Archive.py:30
+# Mailman/Gui/Autoresponse.py:48 Mailman/Gui/Autoresponse.py:56
+# Mailman/Gui/Bounce.py:32 Mailman/Gui/Digest.py:35 Mailman/Gui/Digest.py:51
+# Mailman/Gui/Digest.py:73 Mailman/Gui/Digest.py:78
+# Mailman/Gui/General.py:217 Mailman/Gui/General.py:227
+# Mailman/Gui/General.py:252 Mailman/Gui/General.py:256
+# Mailman/Gui/General.py:263 Mailman/Gui/General.py:273
+# Mailman/Gui/General.py:278 Mailman/Gui/NonDigest.py:36
+# Mailman/Gui/NonDigest.py:55 Mailman/Gui/Privacy.py:86
+# Mailman/Gui/Privacy.py:100 Mailman/Gui/Privacy.py:111
+# Mailman/Gui/Privacy.py:114 Mailman/Gui/Privacy.py:147
+# Mailman/Gui/Privacy.py:221 Mailman/Gui/Usenet.py:43
+# Mailman/Gui/Usenet.py:47 Mailman/Gui/Usenet.py:51
+#: Mailman/Cgi/admin.py:1073 Mailman/Cgi/admin.py:1082
+#: Mailman/Cgi/admin.py:1115 Mailman/Cgi/admin.py:1123
+#: Mailman/Cgi/confirm.py:271 Mailman/Cgi/create.py:327
+#: Mailman/Cgi/create.py:355 Mailman/Cgi/create.py:395
+#: Mailman/Cgi/rmlist.py:228 Mailman/Gui/Archive.py:33
+#: Mailman/Gui/Autoresponse.py:54 Mailman/Gui/Autoresponse.py:62
+#: Mailman/Gui/Bounce.py:77 Mailman/Gui/Bounce.py:108
+#: Mailman/Gui/Bounce.py:134 Mailman/Gui/Bounce.py:143
+#: Mailman/Gui/ContentFilter.py:70 Mailman/Gui/ContentFilter.py:103
+#: Mailman/Gui/Digest.py:46 Mailman/Gui/Digest.py:62 Mailman/Gui/Digest.py:84
+#: Mailman/Gui/Digest.py:89 Mailman/Gui/General.py:148
+#: Mailman/Gui/General.py:154 Mailman/Gui/General.py:232
+#: Mailman/Gui/General.py:259 Mailman/Gui/General.py:286
+#: Mailman/Gui/General.py:297 Mailman/Gui/General.py:300
+#: Mailman/Gui/General.py:310 Mailman/Gui/General.py:315
+#: Mailman/Gui/General.py:325 Mailman/Gui/General.py:345
+#: Mailman/Gui/General.py:373 Mailman/Gui/General.py:396
+#: Mailman/Gui/NonDigest.py:44 Mailman/Gui/NonDigest.py:52
+#: Mailman/Gui/Privacy.py:101 Mailman/Gui/Privacy.py:107
+#: Mailman/Gui/Privacy.py:140 Mailman/Gui/Privacy.py:188
+#: Mailman/Gui/Privacy.py:296 Mailman/Gui/Privacy.py:309
+#: Mailman/Gui/Usenet.py:50 Mailman/Gui/Usenet.py:54 Mailman/Gui/Usenet.py:91
+#: Mailman/Gui/Usenet.py:103
+msgid "Yes"
+msgstr "Ja"
+
+# Mailman/Cgi/admin.py:972
+#: Mailman/Cgi/admin.py:1080
+msgid "Send notifications of new subscriptions to the list owner?"
+msgstr "Benachrichtigungen über Neuanmeldungen an den Listen-Besitzer senden?"
+
+# Mailman/Cgi/admin.py:947 Mailman/Cgi/admin.py:981
+#: Mailman/Cgi/admin.py:1088 Mailman/Cgi/admin.py:1129
+msgid "Enter one address per line below..."
+msgstr "Fügen Sie eine Adresse pro Zeile ein..."
+
+# Mailman/Cgi/admin.py:952 Mailman/Cgi/admin.py:986
+#: Mailman/Cgi/admin.py:1093 Mailman/Cgi/admin.py:1134
+msgid "...or specify a file to upload:"
+msgstr "...oder wählen Sie eine Datei:"
+
+#: Mailman/Cgi/admin.py:1098
+msgid ""
+"Below, enter additional text to be added to the\n"
+" top of your invitation or the subscription notification. Include at "
+"least\n"
+" one blank line at the end..."
+msgstr ""
+"Geben Sie einen Text ein, der Ihren Einladungen vorangestellt wird. Bitte "
+"fügen Sie mindestens eine Leerzeile am Ende ein! "
+
+# Mailman/Cgi/admin.py:963
+#: Mailman/Cgi/admin.py:1113
+msgid "Send unsubscription acknowledgement to the user?"
+msgstr "Bestätigung des beendeten Abonnements an den Benutzer senden?"
+
+# Mailman/Cgi/admin.py:972
+#: Mailman/Cgi/admin.py:1121
+msgid "Send notifications to the list owner?"
+msgstr "Benachrichtigungen an den Listen-Besitzer senden?"
+
+# Mailman/Cgi/admin.py:994
+#: Mailman/Cgi/admin.py:1143
+msgid "Change list ownership passwords"
+msgstr "Passworte für Listen-Besitzer andern"
+
+# Mailman/Cgi/admin.py:997
+#: Mailman/Cgi/admin.py:1146
+msgid ""
+"The <em>list administrators</em> are the people who have ultimate control "
+"over\n"
+"all parameters of this mailing list. They are able to change any list\n"
+"configuration variable available through these administration web pages.\n"
+"\n"
+"<p>The <em>list moderators</em> have more limited permissions; they are not\n"
+"able to change any list configuration variable, but they are allowed to "
+"tend\n"
+"to pending administration requests, including approving or rejecting held\n"
+"subscription requests, and disposing of held postings. Of course, the\n"
+"<em>list administrators</em> can also tend to pending requests.\n"
+"\n"
+"<p>In order to split the list ownership duties into administrators and\n"
+"moderators, you must set a separate moderator password in the fields below,\n"
+"and also provide the email addresses of the list moderators in the\n"
+"<a href=\"%(adminurl)s/general\">general options section</a>."
+msgstr ""
+"<a name=\"passwords\">Die</a> <em>Listen-Administratoren</em> haben volle\n"
+"Kontrolle über die Konfiguration dieser Liste. Alle Einstellungen auf "
+"diesen\n"
+"Webseiten können von ihnen geändert werden.\n"
+"\n"
+"<em>Listen-Moderatoren</em> haben limitierte Befugnisse. Die können keine\n"
+"Einstellungen ändern, aber über Anmeldungen neuer Listenmitglieder "
+"entscheiden.\n"
+"Sie können auch zurückgehaltene Mitteilungen an die Liste freigeben oder "
+"löschen.\n"
+"All diese Tätigkeiten können natürlich auch von <em>Listen-Administratoren</"
+"em>\n"
+"vorgenommen werden.\n"
+"\n"
+"<p>Um die Listenpflege auf Administratoren und Moderatoren aufzuteilen, "
+"müssen Sie\n"
+"in den entsprechenden Feldern unten ein separates Passwort für Moderatoren "
+"setzen\n"
+"und die Adressen der Moderatoren in der oberen Sektion angeben."
+
+# Mailman/Cgi/admin.py:1017
+#: Mailman/Cgi/admin.py:1165
+msgid "Enter new administrator password:"
+msgstr "Neues Administratoren-Passwort einsetzen:"
+
+# Mailman/Cgi/admin.py:1019
+#: Mailman/Cgi/admin.py:1167
+msgid "Confirm administrator password:"
+msgstr "Administratoren-Passwort bestätigen: "
+
+# Mailman/Cgi/admin.py:1024
+#: Mailman/Cgi/admin.py:1172
+msgid "Enter new moderator password:"
+msgstr "Neues Moderatoren-Passwort einsetzen:"
+
+# Mailman/Cgi/admin.py:1026
+#: Mailman/Cgi/admin.py:1174
+msgid "Confirm moderator password:"
+msgstr "Moderatoren-Passwort bestätigen:"
+
+# Mailman/Cgi/admin.py:1036
+#: Mailman/Cgi/admin.py:1184
+msgid "Submit Your Changes"
+msgstr "Änderungen vornehmen"
+
+# Mailman/Cgi/admin.py:1111
+#: Mailman/Cgi/admin.py:1207
+msgid "Moderator passwords did not match"
+msgstr "Das Moderatoren-Passwort und die Bestätigung sind nicht gleich"
+
+# Mailman/Cgi/admin.py:1123
+#: Mailman/Cgi/admin.py:1217
+msgid "Administrator passwords did not match"
+msgstr "Die Administrator-Passwörter stimmten nicht überein"
+
+# Mailman/Cgi/admin.py:1228
+#: Mailman/Cgi/admin.py:1265
+msgid "Already a member"
+msgstr "Bereits Mitglied"
+
+# Mailman/Cgi/admin.py:1231
+#: Mailman/Cgi/admin.py:1268
+msgid "&lt;blank line&gt;"
+msgstr "&lt;Leerzeile&gt;"
+
+# Mailman/Cgi/admin.py:1232 Mailman/Cgi/admin.py:1235
+#: Mailman/Cgi/admin.py:1269 Mailman/Cgi/admin.py:1272
+msgid "Bad/Invalid email address"
+msgstr "Ungültige Email-Addresse"
+
+# Mailman/Cgi/admin.py:1238
+#: Mailman/Cgi/admin.py:1275
+msgid "Hostile address (illegal characters)"
+msgstr "Vermutlich feindliche Adresse (illegale Zeichen)"
+
+# Mailman/Cgi/admin.py:1242
+#: Mailman/Cgi/admin.py:1281
+msgid "Successfully invited:"
+msgstr "Erfolgreich eingeladen:"
+
+# Mailman/Cgi/admin.py:1276
+#: Mailman/Cgi/admin.py:1283
+msgid "Successfully subscribed:"
+msgstr "Erfolgreich eingetragen: "
+
+# Mailman/Cgi/admin.py:1328
+#: Mailman/Cgi/admin.py:1288
+msgid "Error inviting:"
+msgstr "Fehler beim Einladen:"
+
+# Mailman/Cgi/admin.py:1328
+#: Mailman/Cgi/admin.py:1290
+msgid "Error subscribing:"
+msgstr "Fehler beim Abonnieren:"
+
+# Mailman/Cgi/admin.py:1276
+#: Mailman/Cgi/admin.py:1319
+msgid "Successfully Unsubscribed:"
+msgstr "Erfolgreich beendete Abonnements:"
+
+# Mailman/Cgi/admin.py:1281
+#: Mailman/Cgi/admin.py:1324
+msgid "Cannot unsubscribe non-members:"
+msgstr "Nicht-Mitglieder können nicht aus dem Abonnement genommen werden:"
+
+#: Mailman/Cgi/admin.py:1336
+msgid "Bad moderation flag value"
+msgstr "Ungültiger Wert der Moderationseinstellung"
+
+# Mailman/Cgi/admin.py:1301
+#: Mailman/Cgi/admin.py:1357
+msgid "Not subscribed"
+msgstr "Nicht abonniert:"
+
+#: Mailman/Cgi/admin.py:1360
+msgid "Ignoring changes to deleted member: %(user)s"
+msgstr "Änderungen f¨r gelöschtes Mitglied %(user)s ignoriert"
+
+# Mailman/Cgi/admin.py:1242
+#: Mailman/Cgi/admin.py:1400
+msgid "Successfully Removed:"
+msgstr "Erfolgreich entfernt:"
+
+# Mailman/Cgi/admin.py:1328
+#: Mailman/Cgi/admin.py:1404
+msgid "Error Unsubscribing:"
+msgstr "Fehler beim Beenden des Abonnement:"
+
+# Mailman/Cgi/admindb.py:111
+#: Mailman/Cgi/admindb.py:159 Mailman/Cgi/admindb.py:167
+msgid "%(realname)s Administrative Database"
+msgstr "%(realname)s Administrative Datenbank"
+
+# Mailman/Cgi/admindb.py:114
+#: Mailman/Cgi/admindb.py:162
+msgid "%(realname)s Administrative Database Results"
+msgstr "%(realname)s Administrative Datenbank-Ergebnisse"
+
+# Mailman/Cgi/admindb.py:153
+#: Mailman/Cgi/admindb.py:170
+msgid "There are no pending requests."
+msgstr "Keine unbearbeiteten Anfragen."
+
+# Mailman/HTMLFormatter.py:257
+#: Mailman/Cgi/admindb.py:173
+msgid "Click here to reload this page."
+msgstr "Klicken Sie hier, um diese Seite neu zu laden."
+
+# Mailman/Cgi/admindb.py:111
+#: Mailman/Cgi/admindb.py:184
+msgid "Detailed instructions for the administrative database"
+msgstr "Detailed instructions for the administrative database"
+
+# Mailman/Cgi/admindb.py:149
+#: Mailman/Cgi/admindb.py:188
+msgid "Administrative requests for mailing list:"
+msgstr "Administrative Anfragen für Liste:"
+
+# Mailman/Cgi/admindb.py:166 Mailman/Cgi/admindb.py:202
+#: Mailman/Cgi/admindb.py:191 Mailman/Cgi/admindb.py:234
+msgid "Submit All Data"
+msgstr "Alle Daten senden"
+
+#: Mailman/Cgi/admindb.py:204
+msgid "all of %(esender)s's held messages."
+msgstr "alle festgehaltenen Nachrichten vom %(sender)s."
+
+# Mailman/Cgi/confirm.py:547
+#: Mailman/Cgi/admindb.py:209
+msgid "a single held message."
+msgstr "zurückgehaltene Nachricht "
+
+# Mailman/Cgi/confirm.py:547
+#: Mailman/Cgi/admindb.py:214
+msgid "all held messages."
+msgstr "alle zurückgehaltene Nachrichten"
+
+# Mailman/Cgi/admindb.py:131
+#: Mailman/Cgi/admindb.py:249
+msgid "Mailman Administrative Database Error"
+msgstr "Mailman Administrative Datenbank Fehler"
+
+# Mailman/Cgi/admindb.py:136
+#: Mailman/Cgi/admindb.py:254
+msgid "list of available mailing lists."
+msgstr "Liste der verfügbaren Listen."
+
+# Mailman/Cgi/admindb.py:137
+#: Mailman/Cgi/admindb.py:255
+msgid "You must specify a list name. Here is the %(link)s"
+msgstr "Sie müssen einen Listennamen angeben. Benutzen Sie bitte %(link)s"
+
+# Mailman/Cgi/admindb.py:171
+#: Mailman/Cgi/admindb.py:268
+msgid "Subscription Requests"
+msgstr "Abonnement-Anfragen"
+
+# Mailman/Cgi/admindb.py:173
+#: Mailman/Cgi/admindb.py:270
+msgid "Address/name"
+msgstr "Benutzer-Adresse / Name "
+
+# Mailman/Cgi/admindb.py:174
+#: Mailman/Cgi/admindb.py:271 Mailman/Cgi/admindb.py:320
+msgid "Your decision"
+msgstr "Ihre Entscheidung"
+
+# Mailman/Cgi/admindb.py:175
+#: Mailman/Cgi/admindb.py:272 Mailman/Cgi/admindb.py:321
+msgid "Reason for refusal"
+msgstr "Ablehnungsgrund"
+
+# Mailman/Cgi/admindb.py:180 Mailman/Cgi/admindb.py:280
+#: Mailman/Cgi/admindb.py:289 Mailman/Cgi/admindb.py:346
+#: Mailman/Cgi/admindb.py:389 Mailman/Cgi/admindb.py:612
+msgid "Defer"
+msgstr "Verschieben"
+
+# Mailman/Cgi/admindb.py:181 Mailman/Cgi/admindb.py:280
+#: Mailman/Cgi/admindb.py:290 Mailman/Cgi/admindb.py:347
+#: Mailman/Cgi/admindb.py:612
+msgid "Approve"
+msgstr "Annehmen"
+
+# Mailman/Cgi/admindb.py:182 Mailman/Cgi/admindb.py:280
+#: Mailman/Cgi/admindb.py:291 Mailman/Cgi/admindb.py:348
+#: Mailman/Cgi/admindb.py:389 Mailman/Cgi/admindb.py:612
+#: Mailman/Gui/ContentFilter.py:37 Mailman/Gui/Privacy.py:207
+#: Mailman/Gui/Privacy.py:281
+msgid "Reject"
+msgstr "Ablehnen"
+
+# Mailman/Cgi/admindb.py:183 Mailman/Cgi/admindb.py:280
+#: Mailman/Cgi/admindb.py:292 Mailman/Cgi/admindb.py:349
+#: Mailman/Cgi/admindb.py:389 Mailman/Cgi/admindb.py:612
+#: Mailman/Gui/ContentFilter.py:37 Mailman/Gui/Privacy.py:207
+#: Mailman/Gui/Privacy.py:281
+msgid "Discard"
+msgstr "Wegwerfen"
+
+# Mailman/Gui/Language.py:53
+#: Mailman/Cgi/admindb.py:300
+msgid "Permanently ban from this list"
+msgstr "Dauerhaft von der Liste verbannen"
+
+# Mailman/Cgi/admindb.py:173
+#: Mailman/Cgi/admindb.py:319
+msgid "User address/name"
+msgstr "Benutzer-Adresse / Name"
+
+# Mailman/Cgi/admindb.py:171
+#: Mailman/Cgi/admindb.py:359
+msgid "Unsubscription Requests"
+msgstr "Abbestellungs-Anfragen"
+
+# Mailman/Cgi/admindb.py:268
+#: Mailman/Cgi/admindb.py:382 Mailman/Cgi/admindb.py:596
+msgid "From:"
+msgstr "Absender:"
+
+#: Mailman/Cgi/admindb.py:385
+msgid "Action to take on all these held messages:"
+msgstr "Was soll mit diesen Nachrichten geschehen?"
+
+#: Mailman/Cgi/admindb.py:389 Mailman/Gui/Privacy.py:281
+msgid "Accept"
+msgstr "Akzeptiert"
+
+# Mailman/Cgi/admindb.py:290
+#: Mailman/Cgi/admindb.py:397
+msgid "Preserve messages for the site administrator"
+msgstr "Mitteilung für Administrator erhalten"
+
+#: Mailman/Cgi/admindb.py:403
+msgid "Forward messages (individually) to:"
+msgstr "Nachrichten (einzeln) weiterleiten an:"
+
+#: Mailman/Cgi/admindb.py:421
+msgid "Clear this member's <em>moderate</em> flag"
+msgstr "<em>Moderationseinstellung</em> für dieses mitglied löschen"
+
+#: Mailman/Cgi/admindb.py:425
+msgid "<em>The sender is now a member of this list</em>"
+msgstr "<em>Der Absender ist kein Mitglied der Liste</em>"
+
+#: Mailman/Cgi/admindb.py:434
+msgid "Add <b>%(esender)s</b> to a sender filter"
+msgstr "<b>%(esender)s</b> dem Sender-Filter hinzufügen?"
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Accepts"
+msgstr "Akzeptiert"
+
+# Mailman/Cgi/admindb.py:183 Mailman/Cgi/admindb.py:280
+#: Mailman/Cgi/admindb.py:439
+msgid "Discards"
+msgstr "Wegwerfen"
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Holds"
+msgstr "Zurückgehalten"
+
+# Mailman/Cgi/admindb.py:182 Mailman/Cgi/admindb.py:280
+#: Mailman/Cgi/admindb.py:439
+msgid "Rejects"
+msgstr "Ablehnen"
+
+#: Mailman/Cgi/admindb.py:448
+msgid ""
+"Ban <b>%(esender)s</b> from ever subscribing to this\n"
+" mailing list"
+msgstr ""
+"Diesen Absender (<b>%(esender)s</b>) jegliches Abonnement\n"
+" dieser Liste verweigern"
+
+#: Mailman/Cgi/admindb.py:453
+msgid ""
+"Click on the message number to view the individual\n"
+" message, or you can "
+msgstr ""
+"Klicken Sie auf die Nachrichtennummer, um die betreffende\n"
+" Nachricht zu lesen, oder "
+
+#: Mailman/Cgi/admindb.py:455
+msgid "view all messages from %(esender)s"
+msgstr "alle Nachrichten von Absender %(esender)s ansehen"
+
+# Mailman/Cgi/admindb.py:271
+#: Mailman/Cgi/admindb.py:475 Mailman/Cgi/admindb.py:599
+msgid "Subject:"
+msgstr "Betreff:"
+
+# Mailman/Cgi/admin.py:934 Mailman/Cgi/admin.py:945 Mailman/Cgi/admin.py:968
+# Mailman/Cgi/admin.py:979
+#: Mailman/Cgi/admindb.py:478
+msgid " bytes"
+msgstr " Bytes"
+
+#: Mailman/Cgi/admindb.py:478
+msgid "Size:"
+msgstr "Grösse:"
+
+# Mailman/Handlers/Decorate.py:49
+#: Mailman/Cgi/admindb.py:482 Mailman/Handlers/Decorate.py:50
+#: Mailman/Handlers/Scrubber.py:226 Mailman/Handlers/Scrubber.py:227
+msgid "not available"
+msgstr "nicht verfügbar"
+
+# Mailman/Cgi/admindb.py:273
+#: Mailman/Cgi/admindb.py:483 Mailman/Cgi/admindb.py:601
+msgid "Reason:"
+msgstr "Grund:"
+
+# Mailman/Cgi/confirm.py:207
+#: Mailman/Cgi/admindb.py:487 Mailman/Cgi/admindb.py:605
+msgid "Received:"
+msgstr "Erhalten:"
+
+# Mailman/Cgi/admindb.py:216
+#: Mailman/Cgi/admindb.py:545
+msgid "Posting Held for Approval"
+msgstr "Mitteilung zur Kontrolle zurückgehalten"
+
+# Mailman/Cgi/admindb.py:218
+#: Mailman/Cgi/admindb.py:547
+msgid " (%(count)d of %(total)d)"
+msgstr " (%(count)d von %(total)d)"
+
+# Mailman/Cgi/admindb.py:232
+#: Mailman/Cgi/admindb.py:558
+msgid "<em>Message with id #%(id)d was lost."
+msgstr "<em>Mitteilung mit ID #%(id)d verloren."
+
+# Mailman/Cgi/admindb.py:241
+#: Mailman/Cgi/admindb.py:567
+msgid "<em>Message with id #%(id)d is corrupted."
+msgstr "<em>Mitteilung mit ID #%(id)d ist fehlerhaft."
+
+# Mailman/Cgi/admindb.py:286
+#: Mailman/Cgi/admindb.py:618
+msgid "Action:"
+msgstr "Tätigkeit:"
+
+# Mailman/Cgi/admindb.py:290
+#: Mailman/Cgi/admindb.py:622
+msgid "Preserve message for site administrator"
+msgstr "Mitteilung für Administrator erhalten"
+
+# Mailman/Cgi/admindb.py:294
+#: Mailman/Cgi/admindb.py:626
+msgid "Additionally, forward this message to: "
+msgstr "Zusätzlich weiterleiten an Adressaten: "
+
+# Mailman/Cgi/admindb.py:302
+#: Mailman/Cgi/admindb.py:630
+msgid "[No explanation given]"
+msgstr "[Keine Begründung angegeben]"
+
+# Mailman/Cgi/admindb.py:299
+#: Mailman/Cgi/admindb.py:632
+msgid "If you reject this post,<br>please explain (optional):"
+msgstr ""
+"Falls Sie diese Mitteilung zurückweisen,<br>geben Sie den Grund an "
+"(optional):"
+
+# Mailman/Cgi/admindb.py:307
+#: Mailman/Cgi/admindb.py:638
+msgid "Message Headers:"
+msgstr "Mitteilungs-Header:"
+
+# Mailman/Cgi/admindb.py:312
+#: Mailman/Cgi/admindb.py:643
+msgid "Message Excerpt:"
+msgstr "Auszug:"
+
+# Mailman/Cgi/admindb.py:338 Mailman/ListAdmin.py:258
+#: Mailman/Cgi/admindb.py:676 Mailman/Deliverer.py:124
+msgid "No reason given"
+msgstr "[Kein Grund angegeben]"
+
+# Mailman/Cgi/admindb.py:338 Mailman/ListAdmin.py:258
+#: Mailman/Cgi/admindb.py:737 Mailman/ListAdmin.py:308
+#: Mailman/ListAdmin.py:429
+msgid "[No reason given]"
+msgstr "[Kein Grund angegeben]"
+
+# Mailman/Cgi/admindb.py:361
+#: Mailman/Cgi/admindb.py:766
+msgid "Database Updated..."
+msgstr "Datenbank angeglichen..."
+
+# Mailman/Cgi/admindb.py:364
+#: Mailman/Cgi/admindb.py:769
+msgid " is already a member"
+msgstr " ist bereits Mitglied."
+
+# Mailman/Cgi/confirm.py:66
+#: Mailman/Cgi/confirm.py:69
+msgid "Confirmation string was empty."
+msgstr "Leere Bestätigungszeile."
+
+# Mailman/Cgi/confirm.py:84
+#: Mailman/Cgi/confirm.py:89
+msgid ""
+"<b>Invalid confirmation string:</b>\n"
+" %(safecookie)s.\n"
+"\n"
+" <p>Note that confirmation strings expire approximately\n"
+" %(days)s days after the initial subscription request. If your\n"
+" confirmation has expired, please try to re-submit your subscription.\n"
+" Otherwise, <a href=\"%(confirmurl)s\">re-enter</a> your confirmation\n"
+" string."
+msgstr ""
+"<b>Ungültige Bestätigung:</b> %(safecookie)s.\n"
+" <p>Bitte beachten Sie, dass Bestätigungen ungefähr %(days)s Tage nach der "
+"Anfrage ungültig werden. Falls Ihre Bestätigung ungültig ist, senden Sie "
+"bitte eine neue Anfrage. Andernfalls geben Sie Ihre Bestätigung <a href=\"%"
+"(confirmurl)s\">erneut</a>."
+
+#: Mailman/Cgi/confirm.py:122
+msgid ""
+"The address requesting unsubscription is not\n"
+" a member of the mailing list. Perhaps you have already "
+"been\n"
+" unsubscribed, e.g. by the list administrator?"
+msgstr ""
+"Die Adresse ist kein Mitglied der Mailingliste.\n"
+"Vielleicht wurde sie bereits anderweitig ausgetragen, z.B. durch\n"
+"den Listenadministrator?"
+
+#: Mailman/Cgi/confirm.py:138
+msgid ""
+"The address requesting to be changed has\n"
+" been subsequently unsubscribed. This request has been\n"
+" cancelled."
+msgstr ""
+"Diese Adresse wurde zwischenzeitlich bereits aus der Liste ausgetragen. Ihre "
+"Anfrage wurde verworfen."
+
+#: Mailman/Cgi/confirm.py:157
+msgid "System error, bad content: %(content)s"
+msgstr "Systemfehler, ungültiger Inhalt: %(content)"
+
+# Mailman/Cgi/confirm.py:140
+#: Mailman/Cgi/confirm.py:167
+msgid "Bad confirmation string"
+msgstr "Fehlerhafte Bestätigung"
+
+# Mailman/Cgi/confirm.py:148
+#: Mailman/Cgi/confirm.py:175
+msgid "Enter confirmation cookie"
+msgstr "Bitte geben Sie den Bestätigungs-Code an"
+
+# Mailman/Cgi/confirm.py:161
+#: Mailman/Cgi/confirm.py:188
+msgid ""
+"Please enter the confirmation string\n"
+" (i.e. <em>cookie</em>) that you received in your email message, in the "
+"box\n"
+" below. Then hit the <em>Submit</em> button to proceed to the next\n"
+" confirmation step."
+msgstr ""
+"Bitte geben Sie den Bestätigungscode (i.e. <em>cookie</em>) den Sie in der "
+"Email erhalten haben, unten ein. Dann klicken Sie auf den <em>Abschicken</"
+"em> Knopf um den nächsten Bestätigungschritt aufzurufen."
+
+# Mailman/Cgi/confirm.py:166
+#: Mailman/Cgi/confirm.py:193
+msgid "Confirmation string:"
+msgstr "Bestätigungscode:"
+
+# Mailman/Cgi/confirm.py:168
+#: Mailman/Cgi/confirm.py:195
+msgid "Submit"
+msgstr "Abschicken"
+
+# Mailman/Cgi/confirm.py:179
+#: Mailman/Cgi/confirm.py:210
+msgid "Confirm subscription request"
+msgstr "Mitgliedsantrag bestätigen"
+
+# Mailman/Cgi/confirm.py:188
+#: Mailman/Cgi/confirm.py:227
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" subscription request to the mailing list <em>%(listname)s</em>. Your\n"
+" subscription settings are shown below; make any necessary changes and "
+"hit\n"
+" <em>Subscribe</em> to complete the confirmation process. Once you've\n"
+" confirmed your subscription request, you will be shown your account\n"
+" options page which you can use to further customize your membership\n"
+" options.\n"
+"\n"
+" <p>Note: your password will be emailed to you once your subscription is\n"
+" confirmed. You can change it by visiting your personal options page.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this subscription\n"
+" request."
+msgstr ""
+"Ihre Bestätigung ist erforderlich um Ihren Antrag auf Abonnement der "
+"Mailingliste <em>%(listname)s</em> abzuschliessen. Ihre Einstellungen zum "
+"Antrag werden unten angezeigt, passen Sie diese an und klicken Sie auf "
+"<em>Abonnieren</em> um die Bestätigung abzuschliessen. Sobald die "
+"Bestätigung erfolgt ist, wird Ihnen eine Seite mit den Optionen Ihres "
+"Abonnements angezeigt, wo Sie weitere Einstellungen für Ihre Mitgliedschaft "
+"treffen können.\n"
+" <p>Oder klicken Sie auf<em>Abbrechen und verwerfen</em> um die Mailingliste "
+"nicht zu abonnieren."
+
+# Mailman/Cgi/confirm.py:188
+#: Mailman/Cgi/confirm.py:242
+msgid ""
+"Your confirmation is required in order to continue with\n"
+" the subscription request to the mailing list <em>%(listname)s</em>.\n"
+" Your subscription settings are shown below; make any necessary "
+"changes\n"
+" and hit <em>Subscribe to list ...</em> to complete the confirmation\n"
+" process. Once you've confirmed your subscription request, the\n"
+" moderator must approve or reject your membership request. You will\n"
+" receive notice of their decision.\n"
+"\n"
+" <p>Note: your password will be emailed to you once your "
+"subscription\n"
+" is confirmed. You can change it by visiting your personal options\n"
+" page.\n"
+"\n"
+" <p>Or, if you've changed your mind and do not want to subscribe to\n"
+" this mailing list, you can hit <em>Cancel my subscription\n"
+" request</em>."
+msgstr ""
+"Ihre Bestätigung ist erforderlich um Ihren Antrag auf Abonnement der "
+"Mailingliste <em>%(listname)s</em> abzuschliessen. Ihre Einstellungen zum "
+"Antrag werden unten angezeigt, passen Sie diese an und klicken Sie auf "
+"<em>Abonnieren</em> um die Bestätigung abzuschliessen. Sobald die "
+"Bestätigung erfolgt ist, wird Ihnen eine Seite mit den Optionen Ihres "
+"Abonnements angezeigt, wo Sie weitere Einstellungen für Ihre Mitgliedschaft "
+"treffen können.\n"
+" <p>Oder klicken Sie auf<em>Abbrechen und verwerfen</em> um die Mailingliste "
+"nicht zu abonnieren."
+
+# Mailman/Cgi/confirm.py:200
+#: Mailman/Cgi/confirm.py:260
+msgid "Your email address:"
+msgstr "Ihre Emailadresse:"
+
+# Mailman/Cgi/confirm.py:201
+#: Mailman/Cgi/confirm.py:261
+msgid "Your real name:"
+msgstr "Ihr Name:"
+
+# Mailman/Cgi/confirm.py:207
+#: Mailman/Cgi/confirm.py:270
+msgid "Receive digests?"
+msgstr "Nachrichtensammlungen abonnieren?"
+
+# Mailman/Cgi/confirm.py:216
+#: Mailman/Cgi/confirm.py:279
+msgid "Preferred language:"
+msgstr "Bevorzugte Sprache:"
+
+# Mailman/Cgi/confirm.py:179
+#: Mailman/Cgi/confirm.py:284
+msgid "Cancel my subscription request"
+msgstr "Eintragswunsch zurückziehen"
+
+# Mailman/Cgi/admin.py:66 Mailman/Cgi/admindb.py:60 Mailman/Cgi/confirm.py:52
+# Mailman/Cgi/edithtml.py:65 Mailman/Cgi/listinfo.py:49
+# Mailman/Cgi/options.py:67 Mailman/Cgi/private.py:96
+# Mailman/Cgi/rmlist.py:60 Mailman/Cgi/roster.py:55
+# Mailman/Cgi/subscribe.py:57
+#: Mailman/Cgi/confirm.py:285
+msgid "Subscribe to list %(listname)s"
+msgstr "Eintrag in Liste %(listname)s"
+
+# Mailman/Cgi/confirm.py:231
+#: Mailman/Cgi/confirm.py:295
+msgid "You have canceled your subscription request."
+msgstr "Sie haben Ihren Abo-Antrag abgebrochen "
+
+# Mailman/Cgi/confirm.py:268
+#: Mailman/Cgi/confirm.py:329
+msgid "Awaiting moderator approval"
+msgstr "Warten auf Bestätigung des Moderators"
+
+# Mailman/Cgi/confirm.py:271
+#: Mailman/Cgi/confirm.py:332
+msgid ""
+" You have successfully confirmed your subscription request to "
+"the\n"
+" mailing list %(listname)s, however final approval is required "
+"from\n"
+" the list moderator before you will be subscribed. Your request\n"
+" has been forwarded to the list moderator, and you will be "
+"notified\n"
+" of the moderator's decision."
+msgstr ""
+" Sie haben Ihren Antrag auf Abonnement der Mailingliste %"
+"(listname)s erfolgreich bestätigt. Eine abschliessende Erlaubnis des "
+"Moderators ist erforderlich bevor das Abonnement wirksam wird. Ihre Anfrage "
+"wurde an den Moderator weitergeleitet, und Sie werden über dessen "
+"Entscheidung informiert."
+
+# Mailman/Cgi/confirm.py:278 Mailman/Cgi/confirm.py:339
+# Mailman/Cgi/confirm.py:421
+#: Mailman/Cgi/confirm.py:339 Mailman/Cgi/confirm.py:394
+#: Mailman/Cgi/confirm.py:482 Mailman/Cgi/confirm.py:705
+msgid ""
+"Invalid confirmation string. It is\n"
+" possible that you are attempting to confirm a request for an\n"
+" address that has already been unsubscribed."
+msgstr ""
+"Ungültiger Bestätigungscode. Es ist möglich das Sie versuchen einen Abo-"
+"Antrag für eine Emailadresse zu bestätigen, die bereits das Abonnement "
+"gekündigt hat."
+
+# Mailman/Deliverer.py:76
+#: Mailman/Cgi/confirm.py:343
+msgid "You are already a member of this mailing list!"
+msgstr "Sie haben die Mailingliste \"%(realname)s\" bestellt"
+
+# Mailman/Cgi/confirm.py:287
+#: Mailman/Cgi/confirm.py:350
+msgid "Subscription request confirmed"
+msgstr "Antrag auf Abo bestätigt"
+
+# Mailman/Cgi/confirm.py:299
+#: Mailman/Cgi/confirm.py:354
+msgid ""
+" You have successfully confirmed your subscription request for\n"
+" \"%(addr)s\" to the %(listname)s mailing list. A separate\n"
+" confirmation message will be sent to your email address, along\n"
+" with your password, and other useful information and links.\n"
+"\n"
+" <p>You can now\n"
+" <a href=\"%(optionsurl)s\">proceed to your membership login\n"
+" page</a>."
+msgstr ""
+" Sie haben Ihren Abo-Antrag für \"%(addr)s\" bei der Mailingliste "
+"%(listname)s bestätigt. Eine Email mit der Bestätigung und Ihrem Passwort "
+"wird an Sie geschickt, sowie weiteren nützlichen Informationen und Links.\n"
+" <p>Sie können nun zu Ihrer <a href=\"%(optionsurl)s\">Mitgliedschaftsseite "
+"gehen</a>."
+
+# Mailman/Cgi/confirm.py:317
+#: Mailman/Cgi/confirm.py:372
+msgid "You have canceled your unsubscription request."
+msgstr "Sie haben Ihre Abo-Kündigung abgebrochen."
+
+# Mailman/Cgi/confirm.py:345
+#: Mailman/Cgi/confirm.py:400
+msgid "Unsubscription request confirmed"
+msgstr "Abo-Kündigung bestätigt"
+
+# Mailman/Cgi/confirm.py:349
+#: Mailman/Cgi/confirm.py:404
+msgid ""
+" You have successfully unsubscribed from the %(listname)s "
+"mailing\n"
+" list. You can now <a href=\"%(listinfourl)s\">visit the list's "
+"main\n"
+" information page</a>."
+msgstr ""
+" Sie haben erfolgreich das Abonnement der Mailingliste %(listname)"
+"s gekündigt. Sie können nun die allgemeine <a href=\"%(listinfourl)s\"> "
+"Informationsseite der Mailingliste besuchen</a>."
+
+# Mailman/Cgi/confirm.py:360
+#: Mailman/Cgi/confirm.py:415
+msgid "Confirm unsubscription request"
+msgstr "Antrag auf Abo-Kündigung bestätigen"
+
+# Mailman/Cgi/confirm.py:371 Mailman/Cgi/confirm.py:454
+#: Mailman/Cgi/confirm.py:430 Mailman/Cgi/confirm.py:519
+msgid "<em>Not available</em>"
+msgstr "<em>Nicht verfügbar</em>"
+
+# Mailman/Cgi/confirm.py:372
+#: Mailman/Cgi/confirm.py:433
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" unsubscription request from the mailing list <em>%(listname)s</em>. "
+"You\n"
+" are currently subscribed with\n"
+"\n"
+" <ul><li><b>Real name:</b> %(fullname)s\n"
+" <li><b>Email address:</b> %(addr)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Unsubscribe</em> button below to complete the confirmation\n"
+" process.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this unsubscription\n"
+" request."
+msgstr ""
+"Ihre Bestätigung ist erforderlich um die Kündigung des Abonnements der "
+"Mailingliste <em>%(listname)s</em> abzuschliessen. Sie sind im Moment mit "
+"folgenden Daten Mitglied:\n"
+" <ul><li><b>Name:</b> %(fullname)s <li><b>Emailadresse:</b> %(addr)s </ul>\n"
+" Klicken Sie auf <em>Abo-Kündigung</em> um die Kündigung zu bestätigen.\n"
+" <p>Oder klicken Sie auf <em>Abbrechen und verwerfen</em> um das Abo nicht "
+"zu kündigen."
+
+# Mailman/Cgi/confirm.py:388 Mailman/Cgi/options.py:530
+# Mailman/Cgi/options.py:665 Mailman/Cgi/options.py:675
+#: Mailman/Cgi/confirm.py:449 Mailman/Cgi/options.py:660
+#: Mailman/Cgi/options.py:801 Mailman/Cgi/options.py:811
+msgid "Unsubscribe"
+msgstr "Abo-Kündigung"
+
+# Mailman/Cgi/confirm.py:221 Mailman/Cgi/confirm.py:389
+# Mailman/Cgi/confirm.py:481
+#: Mailman/Cgi/confirm.py:450 Mailman/Cgi/confirm.py:548
+msgid "Cancel and discard"
+msgstr "Abbrechen und verwerfen"
+
+# Mailman/Cgi/confirm.py:399
+#: Mailman/Cgi/confirm.py:460
+msgid "You have canceled your change of address request."
+msgstr "Sie haben die Änderung Ihrer Adresse abgebrochen."
+
+# Mailman/Cgi/confirm.py:427
+#: Mailman/Cgi/confirm.py:488
+msgid "Change of address request confirmed"
+msgstr "Änderung Ihrer Adresse bestätigt"
+
+# Mailman/Cgi/confirm.py:431
+#: Mailman/Cgi/confirm.py:492
+msgid ""
+" You have successfully changed your address on the %(listname)s\n"
+" mailing list from <b>%(oldaddr)s</b> to <b>%(newaddr)s</b>. "
+"You\n"
+" can now <a href=\"%(optionsurl)s\">proceed to your membership\n"
+" login page</a>."
+msgstr ""
+" Sie haben erfolgreich Ihre Adresse für die Mailingliste %"
+"(listname)s von <b>%(oldaddr)s</b> nach <b>%(newaddr)s</b> geändert. Sie "
+"können nun zu Ihrer <a href=\"%(optionsurl)s\">Mitgliedsseite wechseln</a>."
+
+# Mailman/Cgi/confirm.py:443
+#: Mailman/Cgi/confirm.py:504
+msgid "Confirm change of address request"
+msgstr "Bestätigen Sie die Änderung Ihrer Adresse"
+
+# Mailman/Cgi/confirm.py:456
+#: Mailman/Cgi/confirm.py:523
+msgid "globally"
+msgstr "generell"
+
+# Mailman/Cgi/confirm.py:459
+#: Mailman/Cgi/confirm.py:526
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" change of address request for the mailing list <em>%(listname)s</em>. "
+"You\n"
+" are currently subscribed with\n"
+"\n"
+" <ul><li><b>Real name:</b> %(fullname)s\n"
+" <li><b>Old email address:</b> %(oldaddr)s\n"
+" </ul>\n"
+"\n"
+" and you have requested to %(globallys)s change your email address to\n"
+"\n"
+" <ul><li><b>New email address:</b> %(newaddr)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Change address</em> button below to complete the "
+"confirmation\n"
+" process.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this change of address\n"
+" request."
+msgstr ""
+"Ihre Bestätigung ist erforderlich um die Änderung Ihrer Adresse für die "
+"Mailingliste <em>%(listname)s</em> abzuschliessen. Sie haben im Moment mit "
+"folgender Emailadresse abonniert:\n"
+" <ul><li><b>Name:</b> %(fullname)s <li><b>Alte Emailadresse:</b> %(oldaddr)s "
+"</ul>\n"
+" und wollen Ihre Emailadresse %(globallys)s ändern auf die\n"
+" <ul><li><b>Neue Emailadresse:</b> %(newaddr)s </ul>\n"
+" Klicken Sie auf <em>Adresse ändern</em> um die Änderung zu bestätigen.\n"
+" <p>Oder klicken Sie auf <em>Abbrechen und verwerfen</em> um die Änderung "
+"nicht zu bestätigen."
+
+# Mailman/Cgi/confirm.py:480
+#: Mailman/Cgi/confirm.py:547
+msgid "Change address"
+msgstr "Adresse ändern"
+
+# Mailman/Cgi/confirm.py:490 Mailman/Cgi/confirm.py:588
+#: Mailman/Cgi/confirm.py:557 Mailman/Cgi/confirm.py:670
+msgid "Continue awaiting approval"
+msgstr "Weitermachen und Erlaubnis abwarten"
+
+# Mailman/Cgi/confirm.py:497
+#: Mailman/Cgi/confirm.py:564
+msgid ""
+"Okay, the list moderator will still have the\n"
+" opportunity to approve or reject this message."
+msgstr ""
+"Der Listenmoderator hat noch die Gelegenheit die Nachricht zu genehmigen "
+"oder abzulehnen."
+
+# Mailman/Cgi/confirm.py:523
+#: Mailman/Cgi/confirm.py:590
+msgid "Sender discarded message via web."
+msgstr "Absender hat die Nachricht via WWW verworfen."
+
+# Mailman/Cgi/confirm.py:525
+#: Mailman/Cgi/confirm.py:592
+msgid ""
+"The held message with the Subject:\n"
+" header <em>%(subject)s</em> could not be found. The most "
+"likely\n"
+" reason for this is that the list moderator has already approved "
+"or\n"
+" rejected the message. You were not able to cancel it in\n"
+" time."
+msgstr ""
+"Die zurückgehaltene Nachricht mit dem Betreff: header <em>%(subject)s</em> "
+"wurde nicht gefunden. Der wahrscheinlichste Grund dafür ist das der "
+"Moderator diese Nachricht bereits genehmigt oder abgelehnt hat. Sie waren "
+"nicht mehr rechtzeitig in der Lage die Nachricht zu verwerfen."
+
+# Mailman/Cgi/confirm.py:533
+#: Mailman/Cgi/confirm.py:600
+msgid "Posted message canceled"
+msgstr "Veröffentlichte Nachricht verworfen"
+
+# Mailman/Cgi/confirm.py:536
+#: Mailman/Cgi/confirm.py:603
+msgid ""
+" You have successfully canceled the posting of your message with\n"
+" the Subject: header <em>%(subject)s</em> to the mailing list\n"
+" %(listname)s."
+msgstr ""
+" Sie haben die bereits veröffentlichte Nachricht mit dem Betreff "
+"header <em>%(subject)s</em> an die Mailingliste %(listname)s erfolgreich "
+"verworfen."
+
+# Mailman/Cgi/confirm.py:547
+#: Mailman/Cgi/confirm.py:614
+msgid "Cancel held message posting"
+msgstr "Zurückgehaltene Nachricht verwerfen"
+
+#: Mailman/Cgi/confirm.py:639
+msgid ""
+"The held message you were referred to has\n"
+" already been handled by the list administrator."
+msgstr "Die zurückgehaltene Nachricht wurde bereits durch den Moderator bearbeitet!"
+
+# Mailman/Cgi/confirm.py:571
+#: Mailman/Cgi/confirm.py:653
+msgid ""
+"Your confirmation is required in order to cancel the\n"
+" posting of your message to the mailing list <em>%(listname)s</em>:\n"
+"\n"
+" <ul><li><b>Sender:</b> %(sender)s\n"
+" <li><b>Subject:</b> %(subject)s\n"
+" <li><b>Reason:</b> %(reason)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Cancel posting</em> button to discard the posting.\n"
+"\n"
+" <p>Or hit the <em>Continue awaiting approval</em> button to continue to\n"
+" allow the list moderator to approve or reject the message."
+msgstr ""
+"Ihre Bestätigung ist erforderlich um Ihre Nachricht an die Mailingliste <em>%"
+"(listname)s</em> zu verwerfen:\n"
+" <ul><li><b>Absender:</b> %(sender)s <li><b>Betreff:</b> %(subject)s "
+"<li><b>Begründung:</b> %(reason)s </ul>\n"
+" Klicken Sie auf <em>Nachricht verwerfen</em> zum verwerfen der Nachricht.\n"
+" <p>Klicken Sie auf <em>Weitermachen und Erlaubnis abwarten</em> um dem "
+"Moderator der Mailingliste Ablehnung oder Genehmigung der Nachricht zu "
+"ermöglichen."
+
+# Mailman/Cgi/confirm.py:587
+#: Mailman/Cgi/confirm.py:669
+msgid "Cancel posting"
+msgstr "Nachricht verwerfen"
+
+#: Mailman/Cgi/confirm.py:681
+msgid ""
+"You have canceled the re-enabling of your membership. If\n"
+" we continue to receive bounces from your address, it could be deleted "
+"from\n"
+" this mailing list."
+msgstr ""
+"Sie haben die reaktivierung Ihres Mailinglisteneintrages abgebrochen. Falls "
+"Ihre Adresse weiterhin unzustellbar bleibt, könnten Sie ggf. von den Listen "
+"gelöscht werden!"
+
+# Mailman/Gui/Privacy.py:92
+#: Mailman/Cgi/confirm.py:711
+msgid "Membership re-enabled."
+msgstr "Mitgliedschaft reaktiviert"
+
+# Mailman/Cgi/confirm.py:349
+#: Mailman/Cgi/confirm.py:715
+msgid ""
+" You have successfully re-enabled your membership in the\n"
+" %(listname)s mailing list. You can now <a\n"
+" href=\"%(optionsurl)s\">visit your member options page</a>.\n"
+" "
+msgstr ""
+" Sie haben erfolgreich das Abonnement der Mailingliste %(listname)"
+"s gekündigt. Sie können nun die allgemeine <a href=\"%(optionsurl)s\"> "
+"Informationsseite der Mailingliste besuchen</a>."
+
+# Mailman/Deliverer.py:103
+#: Mailman/Cgi/confirm.py:727
+msgid "Re-enable mailing list membership"
+msgstr "Reaktivierung der Mitgliedschaft"
+
+# Mailman/Cgi/confirm.py:349
+#: Mailman/Cgi/confirm.py:744
+msgid ""
+"We're sorry, but you have already been unsubscribed\n"
+" from this mailing list. To re-subscribe, please visit the\n"
+" <a href=\"%(listinfourl)s\">list information page</a>."
+msgstr ""
+"Sie wurden aus der Liste bereits erfolgreich ausgetragen.\n"
+"Um sich neu einzutragen, besuchen Sie bitte die Seite <a href=\"%"
+"(listinfourl)s\"> Informationsseite der Mailingliste</a>."
+
+# Mailman/Cgi/confirm.py:371 Mailman/Cgi/confirm.py:454
+#: Mailman/Cgi/confirm.py:758
+msgid "<em>not available</em>"
+msgstr "<em>Nicht verfügbar</em>"
+
+#: Mailman/Cgi/confirm.py:762
+msgid ""
+"Your membership in the %(realname)s mailing list is\n"
+" currently disabled due to excessive bounces. Your confirmation is\n"
+" required in order to re-enable delivery to your address. We have the\n"
+" following information on file:\n"
+"\n"
+" <ul><li><b>Member address:</b> %(member)s\n"
+" <li><b>Member name:</b> %(username)s\n"
+" <li><b>Last bounce received on:</b> %(date)s\n"
+" <li><b>Approximate number of days before you are permanently "
+"removed\n"
+" from this list:</b> %(daysleft)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Re-enable membership</em> button to resume receiving "
+"postings\n"
+" from the mailing list. Or hit the <em>Cancel</em> button to defer\n"
+" re-enabling your membership.\n"
+" "
+msgstr ""
+"Ihr Bezug der Mailingliste %(realname)s ist derzeit deaktiviert,\n"
+"da Ihre Mailadresse über längere Zeit unzustellbar war. Das kann\n"
+"z.B. an Mailservern liegen, die nicht erreichbar waren, oder an e-Mail-"
+"Accounts,\n"
+"überfüllt waren und keine e-Mails mehr annahmen.\n"
+"<p>Diese Testmail soll prüfen, ob Ihr Account wieder erreichbar ist. Um\n"
+"Ihren Account wieder zu aktivieren, müssen Sie diese e-mail rückbestätigen.\n"
+"Sie erhalten dann sofort wieder alle Mailinglistenmails ganz normal "
+"zugesandt. \n"
+"<p>Folgende Daten haben wir dazu gespeichert:\n"
+"<ul> <li><b>Mailadresse:</b> %(member)s\n"
+"<li><b>Vollständiger Name:</b> %(username)s\n"
+"<li><b>Letzte unzustellbare Nachricht:</b> %(date)s\n"
+"<li><b>Anzahl der Tage, bevor Ihre Mailadresse\n"
+"vollständig gelöscht wird:</b> %(daysleft)s\n"
+"</ul>\n"
+"\n"
+"Klicken Sie auf den Knopf <em>Reaktivierung der Mitgliedschaft</em> um Ihren "
+"Account wieder zu aktivieren und rückzubestätigen. \n"
+"\n"
+"Oder drücken Sie <em>Abbruch</em> um diese Rückbestätigung abzuberechen\n"
+"und zu verschieben.\n"
+" "
+
+#: Mailman/Cgi/confirm.py:782
+msgid "Re-enable membership"
+msgstr "Reaktivierung der Mitgliedschaft"
+
+# Mailman/Cgi/confirm.py:587
+#: Mailman/Cgi/confirm.py:783
+msgid "Cancel"
+msgstr "Abbruch"
+
+# Mailman/Cgi/create.py:48 Mailman/Cgi/rmlist.py:46 Mailman/Cgi/rmlist.py:77
+#: Mailman/Cgi/create.py:48 Mailman/Cgi/rmlist.py:48
+msgid "Bad URL specification"
+msgstr "Falsche URL Angabe"
+
+# Mailman/Cgi/create.py:63 Mailman/Cgi/rmlist.py:160
+#: Mailman/Cgi/create.py:63 Mailman/Cgi/rmlist.py:176
+msgid "Return to the "
+msgstr "Rückkehr zu der "
+
+# Mailman/Cgi/create.py:65 Mailman/Cgi/rmlist.py:162
+#: Mailman/Cgi/create.py:65 Mailman/Cgi/rmlist.py:178
+msgid "general list overview"
+msgstr "Allgemeinen Listenübersicht"
+
+# Mailman/Cgi/create.py:66 Mailman/Cgi/rmlist.py:163
+#: Mailman/Cgi/create.py:66 Mailman/Cgi/rmlist.py:179
+msgid "<br>Return to the "
+msgstr "<br> Rückkehr zu der "
+
+# Mailman/Cgi/create.py:68 Mailman/Cgi/rmlist.py:165
+#: Mailman/Cgi/create.py:68 Mailman/Cgi/rmlist.py:181
+msgid "administrative list overview"
+msgstr "Administrativen Listenübersicht"
+
+# Mailman/Cgi/create.py:95
+#: Mailman/Cgi/create.py:101
+msgid "List name must not include \"@\": %(listname)s"
+msgstr "Der Listenname darf \"@\" nicht enthalten: %(listname)s"
+
+# Mailman/Cgi/create.py:101 Mailman/Cgi/create.py:174 bin/newlist:122
+# bin/newlist:154
+#: Mailman/Cgi/create.py:107 Mailman/Cgi/create.py:185 bin/newlist:134
+#: bin/newlist:168
+msgid "List already exists: %(listname)s"
+msgstr "Liste existiert bereits: %(listname)s"
+
+# Mailman/Cgi/create.py:105
+#: Mailman/Cgi/create.py:111
+msgid "You forgot to enter the list name"
+msgstr "Sie haben den Namen der Liste nicht angegeben"
+
+# Mailman/Cgi/create.py:109
+#: Mailman/Cgi/create.py:115
+msgid "You forgot to specify the list owner"
+msgstr "Sie haben den Eigentümer der Liste nicht angegeben"
+
+# Mailman/Cgi/create.py:116
+#: Mailman/Cgi/create.py:122
+msgid ""
+"Leave the initial password (and confirmation) fields\n"
+" blank if you want Mailman to autogenerate the list\n"
+" passwords."
+msgstr ""
+"Sie können die Felder Passwort und die Bestätigung frei lassen, wenn Sie "
+"wollen das Mailman das Passwort für die Liste automatisch generiert."
+
+# Mailman/Cgi/create.py:124
+#: Mailman/Cgi/create.py:130
+msgid "Initial list passwords do not match"
+msgstr "Die anfänglichen Passwörter sind verschieden"
+
+# Mailman/Cgi/create.py:128 bin/newlist:137
+#: Mailman/Cgi/create.py:139
+msgid "The list password cannot be empty<!-- ignore -->"
+msgstr "Das Passwort für die Liste darf nicht leer sein"
+
+# Mailman/Cgi/create.py:140
+#: Mailman/Cgi/create.py:151
+msgid "You are not authorized to create new mailing lists"
+msgstr ""
+"Sie dürfen keine neuen Mailinglisten erstellen. Haben Sie das richtige "
+"Kennwort?"
+
+# Mailman/Cgi/create.py:170
+#: Mailman/Cgi/create.py:181 bin/newlist:166
+msgid "Bad owner email address: %(s)s"
+msgstr "Falsche Emailadresse des Eigentümers: %(s)s"
+
+#: Mailman/Cgi/create.py:189 bin/newlist:164
+msgid "Illegal list name: %(s)s"
+msgstr "Ungültiger Listenname: %(s)s"
+
+# Mailman/Cgi/create.py:179
+#: Mailman/Cgi/create.py:194
+msgid ""
+"Some unknown error occurred while creating the list.\n"
+" Please contact the site administrator for assistance."
+msgstr ""
+"Ein unbekannter Fehler hat sich beim anlegen der Liste ereignet. "
+"Kontaktieren Sie den Server-Administrator für Hilfe."
+
+# Mailman/Cgi/create.py:203 bin/newlist:184
+#: Mailman/Cgi/create.py:233 bin/newlist:210
+msgid "Your new mailing list: %(listname)s"
+msgstr "Ihre neue Mailingliste: %(listname)s"
+
+# Mailman/Cgi/create.py:212
+#: Mailman/Cgi/create.py:242
+msgid "Mailing list creation results"
+msgstr "Ergebnis für des Anlegen einer neuen Mailingliste"
+
+# Mailman/Cgi/create.py:218
+#: Mailman/Cgi/create.py:248
+msgid ""
+"You have successfully created the mailing list\n"
+" <b>%(listname)s</b> and notification has been sent to the list owner\n"
+" <b>%(owner)s</b>. You can now:"
+msgstr ""
+"Sie haben erfolgreich die neue Mailingliste <b>%(listname)s</b> angelegt, "
+"eine Email wurde an den Eigentümer <b>%(owner)s</b> geschickt. Sie können "
+"jetzt:"
+
+# Mailman/Cgi/create.py:222
+#: Mailman/Cgi/create.py:252
+msgid "Visit the list's info page"
+msgstr "Die Informationsseite der Mailingliste besuchen"
+
+# Mailman/Cgi/create.py:223
+#: Mailman/Cgi/create.py:253
+msgid "Visit the list's admin page"
+msgstr "Die Administrationsseite der Mailingliste besuchen"
+
+# Mailman/Cgi/create.py:224
+#: Mailman/Cgi/create.py:254
+msgid "Create another list"
+msgstr "Ein weitere Mailingliste anlegen?"
+
+# Mailman/Cgi/create.py:249
+#: Mailman/Cgi/create.py:272
+msgid "Create a %(hostname)s Mailing List"
+msgstr "Anlegen einer Mailingliste auf %(hostname)s "
+
+# Mailman/Cgi/admin.py:1112 Mailman/Cgi/admin.py:1124
+# Mailman/Cgi/admin.py:1170 Mailman/Cgi/create.py:258
+# Mailman/Cgi/rmlist.py:183
+#: Mailman/Cgi/create.py:281 Mailman/Cgi/rmlist.py:199
+#: Mailman/Gui/Bounce.py:175 Mailman/htmlformat.py:339
+msgid "Error: "
+msgstr "Fehler: "
+
+# Mailman/Cgi/create.py:260
+#: Mailman/Cgi/create.py:283
+msgid ""
+"You can create a new mailing list by entering the\n"
+" relevant information into the form below. The name of the mailing list\n"
+" will be used as the primary address for posting messages to the list, "
+"so\n"
+" it should be lowercased. You will not be able to change this once the\n"
+" list is created.\n"
+"\n"
+" <p>You also need to enter the email address of the initial list owner.\n"
+" Once the list is created, the list owner will be given notification, "
+"along\n"
+" with the initial list password. The list owner will then be able to\n"
+" modify the password and add or remove additional list owners.\n"
+"\n"
+" <p>If you want Mailman to automatically generate the initial list admin\n"
+" password, click on `Yes' in the autogenerate field below, and leave the\n"
+" initial list password fields empty.\n"
+"\n"
+" <p>You must have the proper authorization to create new mailing lists.\n"
+" Each site should have a <em>list creator's</em> password, which you can\n"
+" enter in the field at the bottom. Note that the site administrator's\n"
+" password can also be used for authentication.\n"
+" "
+msgstr ""
+"Sie können hier eine neue Mailingliste erzeugen. Der Name der Mailingliste "
+"wird als Mailadresse zum Versand von Nachrichten benutzt, daher bitte nur "
+"Kleinbuchstaben verwenden. Nachdem die Liste erst einmal angelegt wurde, "
+"können Sie den Namen nicht mehr ändern.\n"
+" <p>Sie müssen auch einen Eigentümer der Mailingliste angeben. Sobald die "
+"Liste ereugt wird, geht eine Information darüber an den Eigentümer, zusammen "
+"mit dem Passwort der Liste. Der Eigentümer kann das Passwort ändern und "
+"weitere Eigentümer eintragen.\n"
+"<p>Wenn Sie wollen, dass Mailman das Passwort automatisch erzeugt, klicken "
+"Sie auf `Ja' im Feld automatisch erzeugen, und lassen Sie die "
+"Passwortfelder leer.\n"
+"<p>Sie müssen sich korrekt angemeldet haben um neue Listen zu erzeugen. Dazu "
+"müssen Sie im letzten Feld ein spezielles Kennwort angeben, daß Ihr Mailman-"
+"Administrator vorgegeben hat, um Mißbrauch zu verhindern. Sollten Sie dieses "
+"Kennwort nicht wissen, wenden Sie sich bitte an Ihren Mailman-Administrator!"
+
+#: Mailman/Cgi/create.py:309
+msgid "List Identity"
+msgstr "Listen-Identität"
+
+# Mailman/Cgi/create.py:286
+#: Mailman/Cgi/create.py:312
+msgid "Name of list:"
+msgstr "Name der Mailingliste:"
+
+# Mailman/Cgi/create.py:291
+#: Mailman/Cgi/create.py:317
+msgid "Initial list owner address:"
+msgstr "Emailadresse des Eigentümers:"
+
+# Mailman/Cgi/create.py:300
+#: Mailman/Cgi/create.py:326
+msgid "Auto-generate initial list password?"
+msgstr "Passwort automatisch erzeugen ?"
+
+# Mailman/Cgi/create.py:307
+#: Mailman/Cgi/create.py:333
+msgid "Initial list password:"
+msgstr "Mailinglisten Passwort:"
+
+# Mailman/Cgi/create.py:312
+#: Mailman/Cgi/create.py:338
+msgid "Confirm initial password:"
+msgstr "Passwort bestätigen:"
+
+# Mailman/Gui/Digest.py:33
+#: Mailman/Cgi/create.py:348
+msgid "List Characteristics"
+msgstr "Listen-Charakteristik"
+
+#: Mailman/Cgi/create.py:352
+msgid ""
+"Should new members be quarantined before they\n"
+" are allowed to post unmoderated to this list? Answer <em>Yes</em> to "
+"hold\n"
+" new member postings for moderator approval by default."
+msgstr "Sollen neue Mitglieder zuerst auf <i>moderiert</i> gesetzt werden?"
+
+# Mailman/Cgi/create.py:335
+#: Mailman/Cgi/create.py:383
+msgid ""
+"Initial list of supported languages. <p>Note that if you do not\n"
+" select at least one initial language, the list will use the server\n"
+" default language of %(deflang)s"
+msgstr ""
+"Liste der unterstützten Sprachen. <p>Wenn Sie keine Sprache auswählen, wird "
+"die Standardsprache des Servers benutzt (%(deflang)s)."
+
+# Mailman/Cgi/create.py:346
+#: Mailman/Cgi/create.py:394
+msgid "Send \"list created\" email to list owner?"
+msgstr "Soll eine die e-Mail \"Liste erzeugt\" an den Eigentümer gehen?"
+
+# Mailman/Cgi/create.py:355
+#: Mailman/Cgi/create.py:403
+msgid "List creator's (authentication) password:"
+msgstr "Authorisierungs-Passwort zur Listenerzeugung:"
+
+# Mailman/Cgi/create.py:360
+#: Mailman/Cgi/create.py:408
+msgid "Create List"
+msgstr "Erzeuge Liste"
+
+# Mailman/Cgi/create.py:361
+#: Mailman/Cgi/create.py:409
+msgid "Clear Form"
+msgstr "Formular löschen"
+
+# Mailman/Cgi/edithtml.py:42
+#: Mailman/Cgi/edithtml.py:43
+msgid "General list information page"
+msgstr "Allgemeine Informationsseite der Liste"
+
+# Mailman/Cgi/edithtml.py:43
+#: Mailman/Cgi/edithtml.py:44
+msgid "Subscribe results page"
+msgstr "Ergebnis des Abonnements"
+
+# Mailman/Cgi/edithtml.py:44
+#: Mailman/Cgi/edithtml.py:45
+msgid "User specific options page"
+msgstr "Benutzerspezifische Optionen"
+
+# Mailman/Cgi/edithtml.py:57
+#: Mailman/Cgi/edithtml.py:57
+msgid "List name is required."
+msgstr "Der Name der Liste ist erforderlich"
+
+# Mailman/Cgi/edithtml.py:95
+#: Mailman/Cgi/edithtml.py:97
+msgid "%(realname)s -- Edit html for %(template_info)s"
+msgstr "%(realname)s -- html für %(template_info)s bearbeiten"
+
+# Mailman/Cgi/edithtml.py:99
+#: Mailman/Cgi/edithtml.py:103
+msgid "Edit HTML : Error"
+msgstr "HTML bearbeiten: Fehler"
+
+# Mailman/Cgi/edithtml.py:100
+#: Mailman/Cgi/edithtml.py:104
+msgid "%(safetemplatename)s: Invalid template"
+msgstr "%(safetemplate_name)s: Ungültige Vorlage"
+
+# Mailman/Cgi/edithtml.py:105 Mailman/Cgi/edithtml.py:106
+#: Mailman/Cgi/edithtml.py:109 Mailman/Cgi/edithtml.py:110
+msgid "%(realname)s -- HTML Page Editing"
+msgstr "%(realname)s -- HTML Seiten Bearbeitung"
+
+# Mailman/Cgi/edithtml.py:107
+#: Mailman/Cgi/edithtml.py:111
+msgid "Select page to edit:"
+msgstr "Wählen Sie die Seite zur Bearbeitung aus:"
+
+# Mailman/Cgi/edithtml.py:133
+#: Mailman/Cgi/edithtml.py:137
+msgid "View or edit the list configuration information."
+msgstr "Ansehen oder bearbeiten der Listenkonfiguration"
+
+# Mailman/Cgi/edithtml.py:142
+#: Mailman/Cgi/edithtml.py:145
+msgid "When you are done making changes..."
+msgstr "Wenn Sie mit den Änderungen fertig sind..."
+
+# Mailman/Cgi/edithtml.py:143
+#: Mailman/Cgi/edithtml.py:146
+msgid "Submit Changes"
+msgstr "Änderungen übermitteln"
+
+# Mailman/Cgi/edithtml.py:150
+#: Mailman/Cgi/edithtml.py:153
+msgid "Can't have empty html page."
+msgstr "Sie können keine leere html Seite verwenden"
+
+# Mailman/Cgi/edithtml.py:151
+#: Mailman/Cgi/edithtml.py:154
+msgid "HTML Unchanged."
+msgstr "HTML unverändert"
+
+# Mailman/Cgi/edithtml.py:159
+#: Mailman/Cgi/edithtml.py:169
+msgid "HTML successfully updated."
+msgstr "HTML erfolgreich aktualisiert"
+
+# Mailman/Cgi/listinfo.py:69
+#: Mailman/Cgi/listinfo.py:71
+msgid "%(hostname)s Mailing Lists"
+msgstr " Mailinglisten auf %(hostname)s"
+
+# Mailman/Cgi/listinfo.py:103
+#: Mailman/Cgi/listinfo.py:103
+msgid ""
+"<p>There currently are no publicly-advertised\n"
+" %(mailmanlink)s mailing lists on %(hostname)s."
+msgstr ""
+"<p>Es gibt im Moment keine öffentlichen Mailinglisten %(mailmanlink)s auf "
+"dem Server %(hostname)s."
+
+# Mailman/Cgi/listinfo.py:107
+#: Mailman/Cgi/listinfo.py:107
+msgid ""
+"<p>Below is a listing of all the public mailing lists on\n"
+" %(hostname)s. Click on a list name to get more information "
+"about\n"
+" the list, or to subscribe, unsubscribe, and change the "
+"preferences\n"
+" on your subscription."
+msgstr ""
+"<p>Unten finden Sie eine Aufstellung aller öffentlichen Mailinglisten auf "
+"dem Server %(hostname)s. Klicken Sie auf den Namen einer Liste um mehr über "
+"diese zu erfahren oder um sie zu abonnieren, zu kündigen oder die Optionen "
+"Ihres Abonnements anzupassen."
+
+# Mailman/Cgi/listinfo.py:113
+#: Mailman/Cgi/listinfo.py:113
+msgid "right"
+msgstr "rechts"
+
+# Mailman/Cgi/listinfo.py:116
+#: Mailman/Cgi/listinfo.py:116
+msgid ""
+" To visit the general information page for an unadvertised list,\n"
+" open a URL similar to this one, but with a '/' and the %(adj)s\n"
+" list name appended.\n"
+" <p>List administrators, you can visit "
+msgstr ""
+"Um die Informationsseite einer nicht öffentlichen Liste zu besuchen, "
+"benutzen Sie eine URL ähnlicher dieser, aber mit einem '/' und dem %(adj)s "
+"Listennamen angehängt. <p>Für Administratoren der Listen gibt es die Seite "
+
+# Mailman/Cgi/listinfo.py:121
+#: Mailman/Cgi/listinfo.py:121
+msgid "the list admin overview page"
+msgstr "Übersichtsseite für Listenadministratoren"
+
+# Mailman/Cgi/listinfo.py:122
+#: Mailman/Cgi/listinfo.py:122
+msgid ""
+" to find the management interface for your list.\n"
+" <p>Send questions or comments to "
+msgstr " zur Verwaltung der eigenen Liste. <p>Senden Sie Fragen und Kommentare an "
+
+# Mailman/Cgi/listinfo.py:180
+#: Mailman/Cgi/listinfo.py:187
+msgid "Edit Options"
+msgstr "Optionen verändern"
+
+# Mailman/Cgi/listinfo.py:183 Mailman/Cgi/roster.py:109
+#: Mailman/Cgi/listinfo.py:194 Mailman/Cgi/options.py:767
+#: Mailman/Cgi/roster.py:111
+msgid "View this page in"
+msgstr "Diese Seite in / View this page in"
+
+# Mailman/Cgi/options.py:49 Mailman/Cgi/options.py:64
+#: Mailman/Cgi/options.py:51 Mailman/Cgi/options.py:68
+msgid "CGI script error"
+msgstr "CGI Skript Fehler"
+
+# Mailman/Cgi/options.py:52
+#: Mailman/Cgi/options.py:54
+msgid "Invalid options to CGI script."
+msgstr "Ungültige Optionen für das CGI Skript."
+
+# Mailman/Cgi/admindb.py:338 Mailman/ListAdmin.py:258
+#: Mailman/Cgi/options.py:96
+msgid "No address given"
+msgstr "[Keine Adresse angegeben / kein Login erfolgt]"
+
+# Mailman/Cgi/options.py:93
+#: Mailman/Cgi/options.py:108 Mailman/Cgi/options.py:155
+#: Mailman/Cgi/options.py:177
+msgid "No such member: %(safeuser)s."
+msgstr " %(safeuser)s ist nicht Abonnent."
+
+# Mailman/Cgi/options.py:133
+#: Mailman/Cgi/options.py:150 Mailman/Cgi/options.py:160
+msgid "The confirmation email has been sent."
+msgstr "Die Email mit der Bestätigung wurde verschickt."
+
+# Mailman/Cgi/options.py:144 Mailman/Cgi/options.py:181
+#: Mailman/Cgi/options.py:171 Mailman/Cgi/options.py:183
+#: Mailman/Cgi/options.py:226
+msgid "A reminder of your password has been emailed to you."
+msgstr "Eine Email mit Ihrem Passwort zur Erinnerung wurde an Sie geschickt."
+
+# Mailman/Cgi/options.py:161
+#: Mailman/Cgi/options.py:200
+msgid "Authentication failed."
+msgstr "Authorisierung fehlgeschlagen."
+
+# Mailman/Cgi/options.py:187
+#: Mailman/Cgi/options.py:232
+msgid "List subscriptions for %(user)s on %(hostname)s"
+msgstr "Abonnements von Mailinglisten für %(user)s bei %(hostname)s "
+
+# Mailman/Cgi/options.py:190
+#: Mailman/Cgi/options.py:235
+msgid ""
+"Click on a link to visit your options page for the\n"
+" requested mailing list."
+msgstr ""
+"Klicken Sie auf einen Link um Ihre Optionen für die entsprechende Liste zu "
+"verändern."
+
+# Mailman/Cgi/options.py:231
+#: Mailman/Cgi/options.py:284
+msgid "Addresses did not match!"
+msgstr "Die Adressen sind nicht identisch !"
+
+# Mailman/Cgi/options.py:236
+#: Mailman/Cgi/options.py:289
+msgid "You are already using that email address"
+msgstr "Sie verwenden bereits diese Emailadresse"
+
+#: Mailman/Cgi/options.py:301
+msgid ""
+"The new address you requested %(newaddr)s is already a member of the\n"
+"%(listname)s mailing list, however you have also requested a global change "
+"of\n"
+"address. Upon confirmation, any other mailing list containing the address\n"
+"%(user)s will be changed. "
+msgstr ""
+"Die neue Mailadresse %(newaddr)s ist bereits ein Mitglied der Mailingliste\n"
+"%(listname)s. Da Sie eine globale Änderung in allen Mailinglisten gewünscht\n"
+"haben, wird in allen anderen Listen noch die Mailadresse\n"
+" %(user)s entsprechend angepaßt."
+
+# Mailman/Cgi/admindb.py:364
+#: Mailman/Cgi/options.py:310
+msgid "The new address is already a member: %(newaddr)s"
+msgstr "Die neue Adresse ist bereits Mitglied: %(newaddr)s"
+
+# Mailman/Cgi/options.py:242
+#: Mailman/Cgi/options.py:316
+msgid "Addresses may not be blank"
+msgstr "Die Adresse darf nicht leer sein"
+
+# Mailman/Cgi/options.py:258
+#: Mailman/Cgi/options.py:328
+msgid "A confirmation message has been sent to %(newaddr)s. "
+msgstr "Eine Bestätigung wurde an %(newaddr)s geschickt"
+
+# Mailman/Cgi/options.py:267
+#: Mailman/Cgi/options.py:337
+msgid "Bad email address provided"
+msgstr "Ungültige Emailadresse"
+
+# Mailman/Cgi/options.py:269
+#: Mailman/Cgi/options.py:339
+msgid "Illegal email address provided"
+msgstr "Emailadresse ist nicht erlaubt"
+
+# Mailman/Cgi/options.py:271
+#: Mailman/Cgi/options.py:341
+msgid "%(newaddr)s is already a member of the list."
+msgstr "%(newaddr)s ist bereits Abonnent der Liste."
+
+# Mailman/Cgi/options.py:280
+#: Mailman/Cgi/options.py:350
+msgid "Member name successfully changed. "
+msgstr "Mitgliedsname erfolgreich geändert."
+
+# Mailman/Cgi/options.py:291
+#: Mailman/Cgi/options.py:361
+msgid "Passwords may not be blank"
+msgstr "Die Passwörter dürfen nicht leer sein"
+
+# Mailman/Cgi/options.py:296
+#: Mailman/Cgi/options.py:366
+msgid "Passwords did not match!"
+msgstr "Die Passwörter sind nicht identisch !"
+
+# Mailman/Cgi/options.py:312
+#: Mailman/Cgi/options.py:381 Mailman/Commands/cmd_password.py:79
+#: Mailman/Commands/cmd_password.py:105
+msgid "Password successfully changed."
+msgstr "Passwort erfolgreich geändert."
+
+# Mailman/Cgi/options.py:321
+#: Mailman/Cgi/options.py:390
+msgid ""
+"You must confirm your unsubscription request by turning\n"
+" on the checkbox below the <em>Unsubscribe</em> button. You\n"
+" have not been unsubscribed!"
+msgstr ""
+"Sie müssen die Kündigung des Abonnements bestätigen, in dem Sie unter dem "
+"<em>Kündigen</em> Knopf einen Haken setzen. Ihre Kündigung war nicht "
+"erfolgreich !"
+
+# Mailman/Cgi/options.py:349
+#: Mailman/Cgi/options.py:422
+msgid "Unsubscription results"
+msgstr "Ergebnis der Kündigung"
+
+#: Mailman/Cgi/options.py:426
+msgid ""
+"Your unsubscription request has been received and\n"
+" forwarded on to the list moderators for approval. You will\n"
+" receive notification once the list moderators have made their\n"
+" decision."
+msgstr ""
+"Ihre Austragswunsch wurde empfangen und an den Moderator\n"
+"zur Bestätigung weitergeleitet. Sie erhalten in Kürze Nachricht \n"
+"über seine Entscheidung. "
+
+# Mailman/Cgi/options.py:352
+#: Mailman/Cgi/options.py:431
+msgid ""
+"You have been successfully unsubscribed from the\n"
+" mailing list %(fqdn_listname)s. If you were receiving digest\n"
+" deliveries you may get one more digest. If you have any "
+"questions\n"
+" about your unsubscription, please contact the list owners at\n"
+" %(owneraddr)s."
+msgstr ""
+"Sie haben erfolgreich das Abo der Mailingliste %(fqdn_listname)s gekündigt. "
+"Wenn Sie Nachrichtensammlungen bekommen haben, erhalten Sie manchmal noch "
+"eine weitere. Wenn Sie noch irgendwelche Fragen zu Ihrer Kündigung haben, "
+"richten Sie bitte Ihre Fragen an den Eigentümer der Liste, %(owneraddr)s."
+
+# Mailman/Cgi/options.py:458
+#: Mailman/Cgi/options.py:582
+msgid ""
+"The list administrator has disabled digest delivery for\n"
+" this list, so your delivery option has not been set. However "
+"your\n"
+" other options have been set successfully."
+msgstr ""
+"Der Administrator der Liste hat die Auslieferung von Nachrichtensammlungen "
+"deaktiviert, daher wurde diese Option nicht eingeschaltet. Die anderen "
+"Optionen wurden erfolgreich gesetzt."
+
+# Mailman/Cgi/options.py:462
+#: Mailman/Cgi/options.py:586
+msgid ""
+"The list administrator has disabled non-digest delivery\n"
+" for this list, so your delivery option has not been set. "
+"However\n"
+" your other options have been set successfully."
+msgstr ""
+"Der Administrator der Liste hat die Auslieferung von Einzelnachrichten "
+"deaktiviert, daher wurde diese Option nicht eingeschaltet. Die anderen "
+"Optionen wurden erfolgreich gesetzt."
+
+# Mailman/Cgi/options.py:466
+#: Mailman/Cgi/options.py:590
+msgid "You have successfully set your options."
+msgstr "Sie haben Ihre Optionen erfolgreich gesetzt"
+
+# Mailman/Cgi/options.py:469
+#: Mailman/Cgi/options.py:593
+msgid "You may get one last digest."
+msgstr "Sie erhalten eventuell eine letzte Nachrichtensammlung."
+
+# Mailman/Cgi/options.py:532
+#: Mailman/Cgi/options.py:662
+msgid "<em>Yes, I really want to unsubscribe</em>"
+msgstr "<em>Ja, Ich möchte das Abo wirklich kündigen</em>"
+
+# Mailman/Cgi/options.py:536
+#: Mailman/Cgi/options.py:666
+msgid "Change My Password"
+msgstr "Mein Passwort ändern"
+
+# Mailman/Cgi/options.py:539
+#: Mailman/Cgi/options.py:669
+msgid "List my other subscriptions"
+msgstr "Meine anderen Abonnements auflisten"
+
+# Mailman/Cgi/options.py:545
+#: Mailman/Cgi/options.py:675
+msgid "Email My Password To Me"
+msgstr "Mir mein Passwort per Email schicken"
+
+# Mailman/Cgi/options.py:547
+#: Mailman/Cgi/options.py:677
+msgid "password"
+msgstr "Passwort"
+
+# Mailman/Cgi/options.py:549
+#: Mailman/Cgi/options.py:679
+msgid "Log out"
+msgstr "Abmelden"
+
+# Mailman/Cgi/options.py:551
+#: Mailman/Cgi/options.py:681
+msgid "Submit My Changes"
+msgstr "Meine Änderungen übermitteln"
+
+# Mailman/Cgi/options.py:561
+#: Mailman/Cgi/options.py:693
+msgid "days"
+msgstr "Tage"
+
+# Mailman/Cgi/options.py:563
+#: Mailman/Cgi/options.py:695
+msgid "day"
+msgstr "Tag"
+
+# Mailman/Cgi/options.py:564
+#: Mailman/Cgi/options.py:696
+msgid "%(days)d %(units)s"
+msgstr "%(days)d %(units)s "
+
+# Mailman/Cgi/options.py:570
+#: Mailman/Cgi/options.py:702
+msgid "Change My Address and Name"
+msgstr "Meine Emailadresse und Namen ändern "
+
+# Mailman/Cgi/options.py:598
+#: Mailman/Cgi/options.py:726
+msgid "<em>No topics defined</em>"
+msgstr "<em>Keine Themen definiert</em>"
+
+# Mailman/Cgi/options.py:606
+#: Mailman/Cgi/options.py:734
+msgid ""
+"\n"
+"You are subscribed to this list with the case-preserved address\n"
+"<em>%(cpuser)s</em>."
+msgstr ""
+"\n"
+"Sie haben diese Liste mit der Adresse\n"
+"<em>%(cpuser)s</em> abonniert."
+
+# Mailman/Cgi/options.py:619
+#: Mailman/Cgi/options.py:748
+msgid "%(realname)s list: member options login page"
+msgstr "Mailingliste %(realname)s: Login für Mitglieder"
+
+# Mailman/Cgi/options.py:621
+#: Mailman/Cgi/options.py:749
+msgid "email address and "
+msgstr "Emailadresse und"
+
+# Mailman/Cgi/options.py:623
+#: Mailman/Cgi/options.py:751
+msgid "%(realname)s list: member options for user %(user)s"
+msgstr "Mailingliste %(realname)s: Optionen für das Mitglied %(user)s "
+
+# Mailman/Cgi/options.py:636
+#: Mailman/Cgi/options.py:777
+msgid ""
+"In order to change your membership option, you must\n"
+" first log in by giving your %(extra)smembership password in the section\n"
+" below. If you don't remember your membership password, you can have it\n"
+" emailed to you by clicking on the button below. If you just want to\n"
+" unsubscribe from this list, click on the <em>Unsubscribe</em> button and "
+"a\n"
+" confirmation message will be sent to you.\n"
+"\n"
+" <p><strong><em>Important:</em></strong> From this point on, you must "
+"have\n"
+" cookies enabled in your browser, otherwise none of your changes will "
+"take\n"
+" effect.\n"
+" "
+msgstr ""
+"Um Ihre Optionen als Mitglied zu ändern, müssen Sie sich erst mit Ihrem %"
+"(extra)s Passwort anmelden. Wenn Sie sich an das Passwort nicht erinnern, "
+"können Sie es sich per Email schicken lassen, in dem Sie unten auf den "
+"entsprechenden Knopf drücken. Wenn Sie nur das Abonnement kündigen wollen, "
+"tragen Sie Emailadresse und Passwort ein und klicken Sie auf <em>Abo-"
+"Kündigung</em>. \n"
+" <p><strong><em>Wichtig:</em></strong> Von diesem Punkt an müssen Cookies in "
+"Ihrem Browser eingeschaltet sein, sonst haben Ihre Änderungen keine "
+"Wirkung.\n"
+" <p>Die Cookies sind für eine Sitzung gültig, so das Sie sich nicht immer "
+"wieder neu anmelden müssen. Der Cookie wird bei Verlassen des Browsers "
+"automatisch ungültig, oder Sie können den Cookie durch klicken auf "
+"<em>Abmelden</em> sofort ungültig machen. Den Link dazu sehen Sie nach Ihrer "
+"erfolgreichen Anmeldung. "
+
+# Mailman/Cgi/options.py:656
+#: Mailman/Cgi/options.py:791
+msgid "Email address:"
+msgstr "Emailadresse:"
+
+# Mailman/Cgi/confirm.py:203 Mailman/Cgi/options.py:658
+#: Mailman/Cgi/options.py:795
+msgid "Password:"
+msgstr "Passwort:"
+
+# Mailman/Cgi/options.py:660
+#: Mailman/Cgi/options.py:797
+msgid "Log in"
+msgstr "Anmelden"
+
+# Mailman/Cgi/options.py:669
+#: Mailman/Cgi/options.py:805
+msgid ""
+"By clicking on the <em>Unsubscribe</em> button, a\n"
+" confirmation message will be emailed to you. This message will have a\n"
+" link that you should click on to complete the removal process (you can\n"
+" also confirm by email; see the instructions in the confirmation\n"
+" message)."
+msgstr ""
+"Möchten Sie keine e-Mails der Liste mehr bekommen? Tragen Sie oben Ihre "
+"Mailadresse und Ihr Kennwort ein und klicken Sie hier auf <em>Abo-Kündigung</"
+"em>! <p>Um Mißbrauch zu verhindern wird per Email an Sie eine Bitte um "
+"Rückbestätigung geschickt. Diese Nachricht enthält einen Link mit dem Sie "
+"die Kündigungsprozedur beenden können. Erst dann sind Sie von der Liste "
+"abgemeldet! Alternativ können Sie per Email die Kündigung bestätigen, die "
+"Anleitung dazu steht ebenfalls in der Nachricht, die Sie bekommen. <p> "
+"<b>Wichtig:</b> Sie müssen hier genau die Mailadresse angeben, mit der Sie "
+"in der Mailingliste eingetragen sind! Bedenken Sie das bitte, falls Sie sich "
+"Mailadressen von anderen Mailaccounts aus weiterleiten lassen!"
+
+# Mailman/Cgi/options.py:679
+#: Mailman/Cgi/options.py:813
+msgid "Password reminder"
+msgstr "Passwort-Erinnerung"
+
+# Mailman/Cgi/options.py:683
+#: Mailman/Cgi/options.py:817
+msgid ""
+"By clicking on the <em>Remind</em> button, your\n"
+" password will be emailed to you."
+msgstr ""
+"Haben Sie Ihr Passwort nicht mehr? Klicken auf <em>Erinnern</em> um sich Ihr "
+"Passwort per Email zusenden zu lassen!"
+
+# Mailman/Cgi/options.py:686
+#: Mailman/Cgi/options.py:820
+msgid "Remind"
+msgstr "Passwort zumailen"
+
+# Mailman/Cgi/options.py:776
+#: Mailman/Cgi/options.py:920
+msgid "<missing>"
+msgstr "<fehlend>"
+
+# Mailman/Cgi/options.py:787
+#: Mailman/Cgi/options.py:931
+msgid "Requested topic is not valid: %(topicname)s"
+msgstr "Angefordertes Thema ist nicht in Ordnung: %(topicname)s"
+
+# Mailman/Cgi/options.py:792
+#: Mailman/Cgi/options.py:936
+msgid "Topic filter details"
+msgstr "Themenfilter Details"
+
+# Mailman/Cgi/options.py:795
+#: Mailman/Cgi/options.py:939
+msgid "Name:"
+msgstr "Name:"
+
+# Mailman/Cgi/options.py:797
+#: Mailman/Cgi/options.py:941
+msgid "Pattern (as regexp):"
+msgstr "Suchmuster (als regulärer Ausdruck):"
+
+# Mailman/Cgi/private.py:62
+#: Mailman/Cgi/private.py:61
+msgid "Private Archive Error"
+msgstr "Fehler im privaten Archiv"
+
+# Mailman/Cgi/private.py:63
+#: Mailman/Cgi/private.py:62
+msgid "You must specify a list."
+msgstr "Sie müssen eine Liste angeben."
+
+# Mailman/Cgi/private.py:97
+#: Mailman/Cgi/private.py:99
+msgid "Private Archive Error - %(msg)s"
+msgstr " Fehler im privaten Archiv - %(msg)s"
+
+# Mailman/Cgi/private.py:155
+#: Mailman/Cgi/private.py:154
+msgid "Private archive file not found"
+msgstr "Archivdatei nicht gefunden"
+
+# Mailman/Cgi/rmlist.py:88
+#: Mailman/Cgi/rmlist.py:81
+msgid "You're being a sneaky list owner!"
+msgstr "Sie sind ein gemeiner Listenverwalter !"
+
+# Mailman/Cgi/rmlist.py:124
+#: Mailman/Cgi/rmlist.py:119
+msgid "You are not authorized to delete this mailing list"
+msgstr "Sie haben nicht die Berechtigung diese Liste zu löschen"
+
+# Mailman/Cgi/rmlist.py:150
+#: Mailman/Cgi/rmlist.py:160
+msgid "Mailing list deletion results"
+msgstr "Ergebnisse des Löschens"
+
+# Mailman/Cgi/rmlist.py:156
+#: Mailman/Cgi/rmlist.py:167
+msgid ""
+"You have successfully deleted the mailing list\n"
+" <b>%(listname)s</b>."
+msgstr "Sie haben erfolgreich die Mailingliste <b>%(listname)s</b> gelöscht."
+
+#: Mailman/Cgi/rmlist.py:171
+msgid ""
+"There were some problems deleting the mailing list\n"
+" <b>%(listname)s</b>. Contact your site administrator at %(sitelist)"
+"s\n"
+" for details."
+msgstr ""
+"Es gab Probleme die Mailingliste <b>%(listname)s</b> zu löschen .\n"
+"Kontaktieren Sie bitte den Administrator von %(sitelist) für nähere Details. "
+
+# Mailman/Cgi/rmlist.py:172
+#: Mailman/Cgi/rmlist.py:188
+msgid "Permanently remove mailing list <em>%(realname)s</em>"
+msgstr "Dauerhaft die Mailingliste <em>%(realname)s</em> löschen"
+
+# Mailman/Cgi/rmlist.py:186
+#: Mailman/Cgi/rmlist.py:202
+msgid ""
+"This page allows you as the list owner, to permanent\n"
+" remove this mailing list from the system. <strong>This action is not\n"
+" undoable</strong> so you should undertake it only if you are absolutely\n"
+" sure this mailing list has served its purpose and is no longer "
+"necessary.\n"
+"\n"
+" <p>Note that no warning will be sent to your list members and after "
+"this\n"
+" action, any subsequent messages sent to the mailing list, or any of its\n"
+" administrative addreses will bounce.\n"
+"\n"
+" <p>You also have the option of removing the archives for this mailing "
+"list\n"
+" at this time. It is almost always recommended that you do\n"
+" <strong>not</strong> remove the archives, since they serve as the\n"
+" historical record of your mailing list.\n"
+"\n"
+" <p>For your safety, you will be asked to reconfirm the list password.\n"
+" "
+msgstr ""
+"Diese Seite erlaubt es Ihnen als Eigentümer der Mailingliste diese dauerhaft "
+"aus dem System zu löschen. <strong>Dieser Vorgang kann nicht rückgängig "
+"gemacht werden</strong>, daher sollten Sie sich völlig sicher sein das die "
+"Mailingliste ihren Zweck erfüllt hat.\n"
+" <p>Beachten Sie, das die Abonnenten keine Warnung erhalten und das nach dem "
+"Löschen der Liste alle Emails an diese als unzustellbar zurückgehen, auch "
+"die administrativen Anfragen.\n"
+" <p>Sie haben auf die Möglichkeit die Archive der Liste mit zu löschen. Es "
+"wird allerdings grundsätzlich empfohlen, das Sie die Archive <strong>nicht</"
+"strong> löschen, damit sie später noch als historische Dokumentation dienen "
+"Ihrer Mailingliste dienen kann.\n"
+" <p>Zu Ihrer Sicherheit müssen Sie mit dem Listenpasswort erneut bestätigen. "
+
+# Mailman/Cgi/rmlist.py:207
+#: Mailman/Cgi/rmlist.py:223
+msgid "List password:"
+msgstr "Listenpasswort:"
+
+# Mailman/Cgi/rmlist.py:211
+#: Mailman/Cgi/rmlist.py:227
+msgid "Also delete archives?"
+msgstr "Auch Archive löschen ?"
+
+# Mailman/Cgi/rmlist.py:219
+#: Mailman/Cgi/rmlist.py:235
+msgid "<b>Cancel</b> and return to list administration"
+msgstr "<b>Abbrechen</b> und zurück zur Listenverwaltung"
+
+# Mailman/Cgi/rmlist.py:222
+#: Mailman/Cgi/rmlist.py:238
+msgid "Delete this list"
+msgstr "Diese Liste löschen"
+
+# Mailman/Cgi/roster.py:48 Mailman/Cgi/subscribe.py:48
+#: Mailman/Cgi/roster.py:48 Mailman/Cgi/subscribe.py:50
+msgid "Invalid options to CGI script"
+msgstr "Ungültige Optionen für das CGI-Skript"
+
+# Mailman/Cgi/roster.py:97
+#: Mailman/Cgi/roster.py:99
+msgid "%(realname)s roster authentication failed."
+msgstr "%(realname)s Teilnehmerliste - Anmeldung fehlgeschlagen"
+
+# Mailman/Cgi/roster.py:125 Mailman/Cgi/roster.py:126
+# Mailman/Cgi/subscribe.py:47 Mailman/Cgi/subscribe.py:56
+#: Mailman/Cgi/roster.py:127 Mailman/Cgi/roster.py:128
+#: Mailman/Cgi/subscribe.py:49 Mailman/Cgi/subscribe.py:60
+msgid "Error"
+msgstr "Fehler"
+
+# Mailman/Cgi/subscribe.py:103
+#: Mailman/Cgi/subscribe.py:109
+msgid "You must supply a valid email address."
+msgstr "Sie müssen eine gültige Emailadresse angeben."
+
+# Mailman/Cgi/subscribe.py:121
+#: Mailman/Cgi/subscribe.py:122
+msgid "You may not subscribe a list to itself!"
+msgstr "Sie dürfen die Liste nicht sich selbst abonnieren lassen!"
+
+# Mailman/Cgi/subscribe.py:137
+#: Mailman/Cgi/subscribe.py:131
+msgid "If you supply a password, you must confirm it."
+msgstr "Wenn Sie ein Passwort angeben, müssen Sie es bestätigen.<br>"
+
+# Mailman/Cgi/subscribe.py:140
+#: Mailman/Cgi/subscribe.py:133
+msgid "Your passwords did not match."
+msgstr "Die Passwörter waren nicht identisch."
+
+#: Mailman/Cgi/subscribe.py:167
+msgid ""
+"Your subscription request has been received, and will soon be acted upon.\n"
+"Depending on the configuration of this mailing list, your subscription "
+"request\n"
+"may have to be first confirmed by you via email, or approved by the list\n"
+"moderator. If confirmation is required, you will soon get a confirmation\n"
+"email which contains further instructions."
+msgstr ""
+"Ihr Abonnementantrag ist soeben eingetroffen und wir alsbald bearbeitet.\n"
+"Je nach Konfiguration der Mailingliste kann es erforderlich sein, dass\n"
+"Ihr Antrag erst noch von Ihnen per Email, oder vom Administrator der Liste\n"
+"bestätigt werden muss. Wenn eine Bestätigung Ihrer Seite benötigt wird,\n"
+"erhalten Sie in Kürze eine Email, die Sie auffordert, den Antrag zu\n"
+"bestätigen. Weitere Instruktionen finden Sie dann in dieser Email."
+
+#: Mailman/Cgi/subscribe.py:181
+msgid ""
+"The email address you supplied is banned from this\n"
+" mailing list. If you think this restriction is erroneous, please\n"
+" contact the list owners at %(listowner)s."
+msgstr ""
+"Ihre Mailadresse wurde permanent von der Mailingliste verbannt. \n"
+"Wenn Sie glauben, daß ein Fehler vorliegt, wenden Sie sich bitte an\n"
+"den Listen-Administrator %(listowner)s."
+
+#: Mailman/Cgi/subscribe.py:185
+msgid ""
+"The email address you supplied is not valid. (E.g. it must contain an\n"
+"`@'.)"
+msgstr ""
+"Die von Ihnen angegebene Emailadresse ist ungültig (diese muss wenigstens\n"
+"ein '@' enthalten)."
+
+# Mailman/Cgi/subscribe.py:188
+#: Mailman/Cgi/subscribe.py:189
+msgid ""
+"Your subscription is not allowed because the email address you gave is\n"
+"insecure."
+msgstr ""
+"Sie dürfen nicht abonnieren weil die von Ihnen angegebene Emailadresse als\n"
+"unsicher betrachtet wird.<p>"
+
+# Mailman/Cgi/subscribe.py:174
+#: Mailman/Cgi/subscribe.py:197
+msgid ""
+"Confirmation from your email address is required, to prevent anyone from\n"
+"subscribing you without permission. Instructions are being sent to you at\n"
+"%(email)s. Please note your subscription will not start until you confirm\n"
+"your subscription."
+msgstr ""
+"Eine Bestätigung von Ihrer Emailadresse aus ist erforderlich, damit Sie\n"
+"nicht irgend jemand ohne Ihre Erlaubnis eintragen kann. Eine Anleitung wird\n"
+"an %(email)s geschickt. Bitte beachten Sie, dass das Abonnement erst nach\n"
+"erfolgter Bestätigung beginnt."
+
+# Mailman/Cgi/subscribe.py:183
+#: Mailman/Cgi/subscribe.py:209
+msgid ""
+"Your subscription request was deferred because %(x)s. Your request has "
+"been\n"
+"forwarded to the list moderator. You will receive email informing you of "
+"the\n"
+"moderator's decision when they get to your request."
+msgstr ""
+"Das Abonnement wurde <em>verzögert</em> wegen %(x)s. Ihr Antrag wurde an\n"
+"den Listenmoderator weitergeleitet. Sie werden eine Email mit seiner\n"
+"Entscheidung über Ihren Antrag erhalten.<p>"
+
+# Mailman/MailCommandHandler.py:699
+#: Mailman/Cgi/subscribe.py:216 Mailman/Commands/cmd_confirm.py:60
+msgid "You are already subscribed."
+msgstr "Sie sind bereits Abonnent."
+
+#: Mailman/Cgi/subscribe.py:230
+msgid "Mailman privacy alert"
+msgstr "Privatsphären-Warnung von Mailman"
+
+#: Mailman/Cgi/subscribe.py:231
+msgid ""
+"An attempt was made to subscribe your address to the mailing list\n"
+"%(listaddr)s. You are already subscribed to this mailing list.\n"
+"\n"
+"Note that the list membership is not public, so it is possible that a bad\n"
+"person was trying to probe the list for its membership. This would be a\n"
+"privacy violation if we let them do this, but we didn't.\n"
+"\n"
+"If you submitted the subscription request and forgot that you were already\n"
+"subscribed to the list, then you can ignore this message. If you suspect "
+"that\n"
+"an attempt is being made to covertly discover whether you are a member of "
+"this\n"
+"list, and you are worried about your privacy, then feel free to send a "
+"message\n"
+"to the list administrator at %(listowner)s.\n"
+msgstr ""
+"Es wurde versucht, unter Verwendung Ihrer Emailadrsse die Mailingliste\n"
+"%(listaddr)s zu abonnieren. Sie sind aber bereits Mitglied dieser Liste.\n"
+"\n"
+"Beachten Sie bitte, dass die Mitgliederliste dieser Mailingliste nicht\n"
+"öffentlich ist, so das es sein kann, dass ein schlimmer Finger die Liste\n"
+"auf vorhandene Konten abklappert. Dies wäre eine Verletzung der "
+"Intimsphäre,\n"
+"wenn wir ihn gewähren wassen würden (was wir aber nicht tun!).\n"
+"\n"
+"Sollten Sie befürchten, dass hier ein solcher Versuch vorliegt,\n"
+"herauszufinden, ob sie Mitglied dieser Liste sind und Sie sich Sorgen über\n"
+"Ihre Privatsphäre machen, zögern Sie nicht, sich an den Administrator der\n"
+"Liste unter %(listowner)s zu wenden.\n"
+"\n"
+"Wenn es allerdings doch Sie waren, der den Abonnementsantrag sendete,\n"
+"\"betrachten Sie dieses Schreiben bitte als gegenstandslos\", wie es immer\n"
+"so schön heisst.\n"
+
+# Mailman/Cgi/subscribe.py:200 Mailman/MailCommandHandler.py:661
+#: Mailman/Cgi/subscribe.py:250
+msgid "This list does not support digest delivery."
+msgstr "Diese Liste erlaubt keine Abonnements von Nachrichtensammlungen!"
+
+# Mailman/Cgi/subscribe.py:200 Mailman/MailCommandHandler.py:661
+#: Mailman/Cgi/subscribe.py:252
+msgid "This list only supports digest delivery."
+msgstr "Diese Liste erlaubt nur Abonnements von Nachrichtensammlungen!"
+
+# Mailman/Cgi/subscribe.py:203
+#: Mailman/Cgi/subscribe.py:259
+msgid "You have been successfully subscribed to the %(realname)s mailing list."
+msgstr "Sie haben die Mailingliste %(rname)s erfolgreich abonniert."
+
+#: Mailman/Commands/cmd_confirm.py:17
+msgid ""
+"\n"
+" confirm <confirmation-string>\n"
+" Confirm an action. The confirmation-string is required and should "
+"be\n"
+" supplied with in mailback confirmation notice.\n"
+msgstr ""
+"\n"
+" confirm <confirmation-string>\n"
+" Bestätigt einen Befehl. Der Bestätigungscode ist zwingend\n"
+" und sollte Ihren mit der Bestätigungsanfrage zugemailt "
+"werden.\n"
+
+# Mailman/MailCommandHandler.py:444
+#: Mailman/Commands/cmd_confirm.py:40 Mailman/Commands/cmd_lists.py:40
+#: Mailman/Commands/cmd_set.py:133 Mailman/Commands/cmd_subscribe.py:69
+#: Mailman/Commands/cmd_unsubscribe.py:52 Mailman/Commands/cmd_who.py:65
+msgid "Usage:"
+msgstr "Benutzung:"
+
+# Mailman/MailCommandHandler.py:684
+#: Mailman/Commands/cmd_confirm.py:49
+msgid ""
+"Invalid confirmation string. Note that confirmation strings expire\n"
+"approximately %(days)s days after the initial subscription request. If "
+"your\n"
+"confirmation has expired, please try to re-submit your original request or\n"
+"message."
+msgstr ""
+"Ungültiger Bestätigungtext. Bitte beachten Sie, dass die Bestätigungtexte\n"
+"ein Verfallsdatum von ca. %(days)s Tagen nach Erhalt der ersten\n"
+"Abonnementantrages aufweisen. Sollte Ihr Abonnementantrag abgelaufen sein,\n"
+"fordern Sie bitte einen neuen an."
+
+# Mailman/MailCommandHandler.py:692
+#: Mailman/Commands/cmd_confirm.py:55
+msgid "Your request has been forwarded to the list moderator for approval."
+msgstr ""
+"Ihr Anliegen wurde mit der Bitte um Bestätigung an den Listenmoderator "
+"weitergeleitet."
+
+# Mailman/MailCommandHandler.py:703
+#: Mailman/Commands/cmd_confirm.py:63
+msgid ""
+"You are not current a member. Have you already unsubscribed or changed\n"
+"your email address?"
+msgstr "Sie sind kein Mitglied. Haben Sie das Abo vielleicht bereits abbestellt?"
+
+# Mailman/Cgi/confirm.py:166
+#: Mailman/Commands/cmd_confirm.py:73
+msgid "Confirmation succeeded"
+msgstr "Bestätigung erfolgreich"
+
+#: Mailman/Commands/cmd_echo.py:17
+msgid ""
+"\n"
+" echo [args]\n"
+" Simply echo an acknowledgement. Args are echoed back unchanged.\n"
+msgstr ""
+"\n"
+" echo [args]\n"
+" Gibt einfach eine Rückmeldung zurück (zum test).\n"
+
+#: Mailman/Commands/cmd_end.py:17
+msgid ""
+"\n"
+" end\n"
+" Stop processing commands. Use this if your mail program "
+"automatically\n"
+" adds a signature file.\n"
+msgstr ""
+"\n"
+" end\n"
+" Beendet die Liste der Kommandos. Nützlich, falls Sie eine\n"
+" angehänget Signatur in Ihrer e-mail haben.\n"
+
+#: Mailman/Commands/cmd_help.py:17
+msgid ""
+"\n"
+" help\n"
+" Print this help message.\n"
+msgstr ""
+"\n"
+" help\n"
+" Gibt diesen Hilfetext aus.\n"
+
+#: Mailman/Commands/cmd_help.py:47
+msgid "You can access your personal options via the following url:"
+msgstr "Sie können Ihre persönlichen Einstellungen unter folgender Webadresse ändern:"
+
+#: Mailman/Commands/cmd_info.py:17
+msgid ""
+"\n"
+" info\n"
+" Get information about this mailing list.\n"
+msgstr ""
+"\n"
+" info\n"
+" Gibt Informationen über diese Mailingliste.\n"
+
+#: Mailman/Commands/cmd_info.py:39 Mailman/Commands/cmd_lists.py:62
+msgid "n/a"
+msgstr "n/a"
+
+# Mailman/Cgi/create.py:95
+#: Mailman/Commands/cmd_info.py:44
+msgid "List name: %(listname)s"
+msgstr "Listenname: %(listname)s"
+
+#: Mailman/Commands/cmd_info.py:45
+msgid "Description: %(description)s"
+msgstr "Beschreibung: %(description)s"
+
+#: Mailman/Commands/cmd_info.py:46
+msgid "Postings to: %(postaddr)s"
+msgstr "e-mails an: %(postaddr)s"
+
+#: Mailman/Commands/cmd_info.py:47
+msgid "List Helpbot: %(requestaddr)s"
+msgstr "Listen-Programm: %(requestaddr)s"
+
+#: Mailman/Commands/cmd_info.py:48
+msgid "List Owners: %(owneraddr)s"
+msgstr "Liste-Administrator: %(owneraddr)s"
+
+#: Mailman/Commands/cmd_info.py:49
+msgid "More information: %(listurl)s"
+msgstr "Weitere Informationen: %(listurl)s"
+
+#: Mailman/Commands/cmd_join.py:17
+msgid "The `join' command is synonymous with `subscribe'.\n"
+msgstr "Das Kommando `join' ist identisch mit `subscribe'.\n"
+
+#: Mailman/Commands/cmd_leave.py:17
+msgid "The `leave' command is synonymous with `unsubscribe'.\n"
+msgstr "Das Kommando `leave' ist identisch mit `unsubscribe'.\n"
+
+#: Mailman/Commands/cmd_lists.py:17
+msgid ""
+"\n"
+" lists\n"
+" See a list of the public mailing lists on this GNU Mailman server.\n"
+msgstr ""
+"\n"
+" lists\n"
+" Listet alle öffentlichen Mailinglisten dieses Mailman-Servers.\n"
+
+# Mailman/MailCommandHandler.py:449
+#: Mailman/Commands/cmd_lists.py:44
+msgid "Public mailing lists at %(hostname)s:"
+msgstr "Öffentliche Mailingliste auf %(hostname)s:"
+
+#: Mailman/Commands/cmd_lists.py:66
+msgid "%(i)3d. List name: %(realname)s"
+msgstr "%(i)3d. Listen-Name: %(realname)s"
+
+#: Mailman/Commands/cmd_lists.py:67
+msgid " Description: %(description)s"
+msgstr " Beschreibung: %(description)s"
+
+#: Mailman/Commands/cmd_lists.py:68
+msgid " Requests to: %(requestaddr)s"
+msgstr " Kommandos an: %(requestaddr)s"
+
+#: Mailman/Commands/cmd_password.py:17
+msgid ""
+"\n"
+" password [<oldpassword> <newpassword>] [address=<address>]\n"
+" Retrieve or change your password. With no arguments, this returns\n"
+" your current password. With arguments <oldpassword> and "
+"<newpassword>\n"
+" you can change your password.\n"
+"\n"
+" If you're posting from an address other than your membership "
+"address,\n"
+" specify your membership address with `address=<address>' (no "
+"brackets\n"
+" around the email address, and no quotes!). Note that in this case "
+"the\n"
+" response is always sent to the subscribed address.\n"
+msgstr ""
+"\n"
+" password [<oldpassword> <newpassword>] [address=<address>]\n"
+" Ohne Argumente schickt Ihnen dieser Befehl Ihr aktuelles Passwort\n"
+" zu. Mit den Argumenten <oldpassword> und <newpassword>\n"
+" können Sie Ihr Passwort ändern lassen.\n"
+"\n"
+" Wenn Sie von einer anderen als der eingetragenen Mailadresse aus\n"
+" senden, können Sie mit `address=<address>' eine andere Adresse\n"
+" angeben, für die dieses Kommando gelten soll (natürlich ohne "
+"Angabe\n"
+" der spitzen Klammern und ohne Anführungszeichen!).\n"
+"\n"
+" Beachten Sie, daß in diesem Fall das Ergebnis des Kommandos aus \n"
+" Sicherheitsgründen immer an die hier eingetragene Mailadresse "
+"geschickt\n"
+" wird!\n"
+
+#: Mailman/Commands/cmd_password.py:51 Mailman/Commands/cmd_password.py:64
+msgid "Your password is: %(password)s"
+msgstr "Ihr Passwort ist: %(password)s"
+
+# Mailman/Deliverer.py:76
+#: Mailman/Commands/cmd_password.py:55 Mailman/Commands/cmd_password.py:68
+#: Mailman/Commands/cmd_password.py:91 Mailman/Commands/cmd_password.py:117
+#: Mailman/Commands/cmd_set.py:149 Mailman/Commands/cmd_set.py:219
+msgid "You are not a member of the %(listname)s mailing list"
+msgstr "Sie sind kein Mitglied der Liste %(listname)s"
+
+#: Mailman/Commands/cmd_password.py:81 Mailman/Commands/cmd_password.py:107
+msgid ""
+"You did not give the correct old password, so your password has not been\n"
+"changed. Use the no argument version of the password command to retrieve "
+"your\n"
+"current password, then try again."
+msgstr ""
+"Sie haben das alte, bisherige Passwort nicht richtig angegeben. Das\n"
+"Passwort wurde deshalb nicht geändert!\n"
+"Senden Sie den Befehl 'password' ohne weitere Parameter, dann wird\n"
+"Ihnen Ihr bisheriges Passwort zugemailt."
+
+# Mailman/MailCommandHandler.py:444
+#: Mailman/Commands/cmd_password.py:85 Mailman/Commands/cmd_password.py:111
+msgid ""
+"\n"
+"Usage:"
+msgstr ""
+"\n"
+"Benutzung:"
+
+#: Mailman/Commands/cmd_remove.py:17
+msgid "The `remove' command is synonymous with `unsubscribe'.\n"
+msgstr "Das Kommando `remove' ist identisch mit `unsubscribe'.\n"
+
+#: Mailman/Commands/cmd_set.py:26
+msgid ""
+"\n"
+" set ...\n"
+" Set or view your membership options.\n"
+"\n"
+" Use `set help' (without the quotes) to get a more detailed list of "
+"the\n"
+" options you can change.\n"
+"\n"
+" Use `set show' (without the quotes) to view your current option\n"
+" settings.\n"
+msgstr ""
+"\n"
+" set ...\n"
+" Setzt Mitgliedschaftsoptionen oder zeigt sie an.\n"
+"\n"
+" Nutzen Sie `set help' (ohne Anführungszeichen) um eine "
+"detailliertere\n"
+" Hilfe über die Optionen zu bekommen, die Sie ändern können.\n"
+"\n"
+" Nutzen Sie `set show' (ohne Anführungszeichen) um Ihre aktuellen\n"
+" Einstellungen angezeigt zu bekommen.\n"
+
+#: Mailman/Commands/cmd_set.py:37
+msgid ""
+"\n"
+" set help\n"
+" Show this detailed help.\n"
+"\n"
+" set show [address=<address>]\n"
+" View your current option settings. If you're posting from an "
+"address\n"
+" other than your membership address, specify your membership address\n"
+" with `address=<address>' (no brackets around the email address, and "
+"no\n"
+" quotes!).\n"
+"\n"
+" set authenticate <password> [address=<address>]\n"
+" To set any of your options, you must include this command first, "
+"along\n"
+" with your membership password. If you're posting from an address\n"
+" other than your membership address, specify your membership address\n"
+" with `address=<address>' (no brackets around the email address, and "
+"no\n"
+" quotes!).\n"
+"\n"
+" set ack on\n"
+" set ack off\n"
+" When the `ack' option is turned on, you will receive an\n"
+" acknowledgement message whenever you post a message to the list.\n"
+"\n"
+" set digest plain\n"
+" set digest mime\n"
+" set digest off\n"
+" When the `digest' option is turned off, you will receive postings\n"
+" immediately when they are posted. Use `set digest plain' if "
+"instead\n"
+" you want to receive postings bundled into a plain text digest\n"
+" (i.e. RFC 1153 digest). Use `set digest mime' if instead you want "
+"to\n"
+" receive postings bundled together into a MIME digest.\n"
+"\n"
+" set delivery on\n"
+" set delivery off\n"
+" Turn delivery on or off. This does not unsubscribe you, but "
+"instead\n"
+" tells Mailman not to deliver messages to you for now. This is "
+"useful\n"
+" if you're going on vacation. Be sure to use `set delivery on' when\n"
+" you return from vacation!\n"
+"\n"
+" set myposts on\n"
+" set myposts off\n"
+" Use `set myposts off' to not receive copies of messages you post to\n"
+" the list. This has no effect if you're receiving digests.\n"
+"\n"
+" set hide on\n"
+" set hide off\n"
+" Use `set hide on' to conceal your email address when people request\n"
+" the membership list.\n"
+"\n"
+" set duplicates on\n"
+" set duplicates off\n"
+" Use `set duplicates off' if you want Mailman to not send you "
+"messages\n"
+" if your address is explicitly mentioned in the To: or Cc: fields of\n"
+" the message. This can reduce the number of duplicate postings you\n"
+" will receive.\n"
+"\n"
+" set reminders on\n"
+" set reminders off\n"
+" Use `set reminders off' if you want to disable the monthly password\n"
+" reminder for this mailing list.\n"
+msgstr ""
+"\n"
+" set help\n"
+" Zeigt diese Hilfe.\n"
+"\n"
+" set show [address=<address>]\n"
+" Zeigt Ihre aktuellen Einstellungen. Wenn Sie von einer "
+"anderen als der eingetragenen Mailadresse aus\n"
+" senden, können Sie mit `address=<address>' eine andere Adresse\n"
+" angeben, für die dieses Kommando gelten soll (natürlich ohne Angabe\n"
+" der spitzen Klammern und ohne Anführungszeichen!).\n"
+"\n"
+" set authenticate <password> [address=<address>]\n"
+" Um eine der Optionen zu verändern, müssen Sie zuerst dieses "
+"Kommando\n"
+" mit Ihrem Passwort in die Mail schreiben um sich zu legitimieren. "
+"Danach \n"
+" können Sie die unten aufgeführten Optionen setzen.\n"
+" Wenn Sie von einer anderen als der eingetragenen Mailadresse aus\n"
+" senden, können Sie mit `address=<address>' eine andere Adresse\n"
+" angeben, für die dieses Kommando gelten soll (natürlich ohne Angabe\n"
+" der spitzen Klammern und ohne Anführungszeichen!).\n"
+"\n"
+" set ack on\n"
+" set ack off\n"
+" Wenn die Option `ack' gesetzt ist, erhalten Sie eine Bestätigung\n"
+" wenn eine Mail von Ihnen an die Liste verteilt worden ist. \n"
+"\n"
+" set digest plain\n"
+" set digest mime\n"
+" set digest off\n"
+" Wenn die Option `digest' gesetzt ist, erhalten Sie alle Nachrichten\n"
+" gesammelt in einer täglichen Zusammenfassung. \n"
+" Mit `set digest plain' ist diese Zusammenfassung eine reine Text- \n"
+" Mail, mit `set digest mime' können Sie Einstellen, daß die \n"
+" Nachrichten dieses Archives als große MIME-Mail erstellt wird.\n"
+"\n"
+" set delivery on\n"
+" set delivery off\n"
+" Damit können Sie den Bezug der Mailingliste vorübergehend\n"
+" deaktivieren. Sie bleiben eingetragen, erhalten aber solange keine\n"
+" Nachrichten, bis Sie den Bezug mit 'set delivery on' wieder\n"
+" aktivieren. \n"
+"\n"
+" set myposts on\n"
+" set myposts off\n"
+" Mit `set myposts off' können Sie dafür sorgen, daß Sie Ihre Mails\n"
+" an die Liste nicht selbst nochmal zugeschickt bekommen.\n"
+" -Wenn Sie die Nachrichten als tägliche Zusammenfassung\n"
+" erhalten, bleibt diese Option wirkungslos. \n"
+"\n"
+" set hide on\n"
+" set hide off\n"
+" Mit dieser Option können Sie verhindern, daß Ihre Mailadresse\n"
+" in der Mitgliedsübersicht aufgeführt wird.\n"
+"\n"
+" set duplicates on\n"
+" set duplicates off\n"
+" Mit `set duplicates off' können Sie einstellen, daß Sie e-Mails der\n"
+" Liste dann nicht bekommen, wenn Sie bereits im To: oder CC:-Feld\n"
+" der e-Mail als Empfänger genannt waren.\n"
+"\n"
+" set reminders on\n"
+" set reminders off\n"
+" Nutzen Sie `set reminders off' wenn Sie keine monatliche \n"
+" Paßworterinnerungsmail bekommen möchten.\n"
+
+#: Mailman/Commands/cmd_set.py:122
+msgid "Bad set command: %(subcmd)s"
+msgstr "Unverständliche Anweisung: %(subcmd)s"
+
+#: Mailman/Commands/cmd_set.py:151
+msgid "Your current option settings:"
+msgstr "Ihre aktuellen Einstellungen:"
+
+#: Mailman/Commands/cmd_set.py:153 Mailman/Commands/cmd_set.py:191
+#: Mailman/Commands/cmd_set.py:194 Mailman/Commands/cmd_set.py:198
+#: Mailman/Commands/cmd_set.py:202
+msgid "off"
+msgstr "Aus"
+
+# Mailman/Cgi/confirm.py:208 Mailman/Cgi/create.py:301
+# Mailman/Cgi/create.py:347 Mailman/Gui/Archive.py:30
+# Mailman/Gui/Autoresponse.py:48 Mailman/Gui/Autoresponse.py:56
+# Mailman/Gui/Autoresponse.py:65 Mailman/Gui/Bounce.py:32
+# Mailman/Gui/Digest.py:35 Mailman/Gui/Digest.py:51 Mailman/Gui/Digest.py:73
+# Mailman/Gui/Digest.py:78 Mailman/Gui/General.py:217
+# Mailman/Gui/General.py:227 Mailman/Gui/General.py:252
+# Mailman/Gui/General.py:256 Mailman/Gui/General.py:263
+# Mailman/Gui/General.py:273 Mailman/Gui/General.py:278
+# Mailman/Gui/NonDigest.py:36 Mailman/Gui/NonDigest.py:55
+# Mailman/Gui/Privacy.py:86 Mailman/Gui/Privacy.py:100
+# Mailman/Gui/Privacy.py:111 Mailman/Gui/Privacy.py:114
+# Mailman/Gui/Privacy.py:147 Mailman/Gui/Privacy.py:221
+# Mailman/Gui/Usenet.py:43 Mailman/Gui/Usenet.py:47 Mailman/Gui/Usenet.py:51
+#: Mailman/Commands/cmd_set.py:153 Mailman/Commands/cmd_set.py:191
+#: Mailman/Commands/cmd_set.py:194 Mailman/Commands/cmd_set.py:198
+#: Mailman/Commands/cmd_set.py:202
+msgid "on"
+msgstr "Ein"
+
+#: Mailman/Commands/cmd_set.py:154
+msgid " ack %(onoff)s"
+msgstr ""
+
+# Mailman/Gui/Digest.py:27
+#: Mailman/Commands/cmd_set.py:160
+msgid " digest plain"
+msgstr "Nachrichtensammlung (plain)"
+
+# Mailman/Deliverer.py:61
+#: Mailman/Commands/cmd_set.py:162
+msgid " digest mime"
+msgstr "Nachrichtensammlung (MIME)"
+
+# Mailman/MailCommandHandler.py:434
+#: Mailman/Commands/cmd_set.py:164
+msgid " digest off"
+msgstr "Nachrichtensammlungen abgeschaltet."
+
+# Mailman/HTMLFormatter.py:135
+#: Mailman/Commands/cmd_set.py:169
+msgid "delivery on"
+msgstr "Mailzustellung aktiviert"
+
+# Mailman/HTMLFormatter.py:135
+#: Mailman/Commands/cmd_set.py:171 Mailman/Commands/cmd_set.py:174
+#: Mailman/Commands/cmd_set.py:177 Mailman/Commands/cmd_set.py:181
+msgid "delivery off"
+msgstr "Mailzustellung deaktiviert"
+
+#: Mailman/Commands/cmd_set.py:172
+msgid "by you"
+msgstr "durch Sie"
+
+# Mailman/Gui/Privacy.py:94
+#: Mailman/Commands/cmd_set.py:175
+msgid "by the admin"
+msgstr "durch den Listenadministrator"
+
+#: Mailman/Commands/cmd_set.py:178
+msgid "due to bounces"
+msgstr "wegen unzustellbarerer Nachrichten"
+
+#: Mailman/Commands/cmd_set.py:186
+msgid " %(status)s (%(how)s on %(date)s)"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:192
+msgid " myposts %(onoff)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:195
+msgid " hide %(onoff)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:199
+msgid " duplicates %(onoff)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:203
+msgid " reminders %(onoff)s"
+msgstr ""
+
+# Mailman/MailCommandHandler.py:354 Mailman/MailCommandHandler.py:424
+# Mailman/MailCommandHandler.py:578
+#: Mailman/Commands/cmd_set.py:224
+msgid "You did not give the correct password"
+msgstr "Falsches Passwort."
+
+#: Mailman/Commands/cmd_set.py:236 Mailman/Commands/cmd_set.py:283
+msgid "Bad argument: %(arg)s"
+msgstr "Ungültiges Argument: %(args)s"
+
+# Mailman/Cgi/options.py:161
+#: Mailman/Commands/cmd_set.py:241 Mailman/Commands/cmd_set.py:261
+msgid "Not authenticated"
+msgstr "Nicht angemeldet"
+
+# Mailman/Gui/Privacy.py:27
+#: Mailman/Commands/cmd_set.py:254
+msgid "ack option set"
+msgstr "Option 'ack' ist aktiviert."
+
+# Mailman/Gui/Digest.py:27
+#: Mailman/Commands/cmd_set.py:286
+msgid "digest option set"
+msgstr "Nachrichtensammlung aktiviert"
+
+# Mailman/Gui/Privacy.py:27
+#: Mailman/Commands/cmd_set.py:298
+msgid "delivery option set"
+msgstr "Option 'delivery' gesetzt"
+
+# Mailman/Gui/Digest.py:27
+#: Mailman/Commands/cmd_set.py:310
+msgid "myposts option set"
+msgstr "Option 'mypost' gesetzt"
+
+# Mailman/Gui/Digest.py:27
+#: Mailman/Commands/cmd_set.py:321
+msgid "hide option set"
+msgstr "Option 'hide' gesetzt"
+
+# Mailman/Gui/Digest.py:27
+#: Mailman/Commands/cmd_set.py:333
+msgid "duplicates option set"
+msgstr "Option 'duplicate' gesetzt"
+
+# Mailman/Gui/General.py:28
+#: Mailman/Commands/cmd_set.py:345
+msgid "reminder option set"
+msgstr "Option 'reminder' gesetzt"
+
+#: Mailman/Commands/cmd_stop.py:17
+msgid "stop is synonymous with the end command.\n"
+msgstr "Das Kommando 'stop' ist identisch mit 'end'.\n"
+
+#: Mailman/Commands/cmd_subscribe.py:17
+msgid ""
+"\n"
+" subscribe [password] [digest|nodigest] [address=<address>]\n"
+" Subscribe to this mailing list. Your password must be given to\n"
+" unsubscribe or change your options, but if you omit the password, "
+"one\n"
+" will be generated for you. You may be periodically reminded of "
+"your\n"
+" password.\n"
+"\n"
+" The next argument may be either: `nodigest' or `digest' (no "
+"quotes!).\n"
+" If you wish to subscribe an address other than the address you sent\n"
+" this request from, you may specify `address=<address>' (no brackets\n"
+" around the email address, and no quotes!)\n"
+msgstr ""
+"\n"
+" subscribe [password] [digest|nodigest] [address=<address>]\n"
+" Trägt Sie in eine Mailingliste ein. Das Passwort wird später\n"
+" benötigt um sich wieder auszutragen oder Einstellungen zu\n"
+" ändern.\n"
+" Wenn Sie kein Kennwort angeben, vergibt der Server Ihnen\n"
+" automatisch eines. Von Zeit zu Zeit werden Sie per e-Mail an\n"
+" Ihr Passwort erinnert.\n"
+" Der nächste Parameter kann entweder `nodigest' oder `digest'\n"
+" sein (ohne Anführunsgzeichen!). Geben Sie 'digest' an, falls Sie\n"
+" alle Mails in einer täglichen Sammel-Mail erhalten möchten.\n"
+"\n"
+" Wenn Sie von einer anderen als der eingetragenen Mailadresse aus\n"
+" senden, können Sie mit `address=<address>' eine andere Adresse\n"
+" angeben, für die dieses Kommando gelten soll (natürlich ohne "
+"Angabe\n"
+" der spitzen Klammern und ohne Anführungszeichen!).\n"
+
+# Mailman/Gui/Digest.py:27
+#: Mailman/Commands/cmd_subscribe.py:62
+msgid "Bad digest specifier: %(arg)s"
+msgstr "Falsche digest-Angabe: %(arg)s"
+
+#: Mailman/Commands/cmd_subscribe.py:84
+msgid "No valid address found to subscribe"
+msgstr "Keine gültige Adresse zum eintragen gefunden."
+
+#: Mailman/Commands/cmd_subscribe.py:102
+msgid ""
+"The email address you supplied is banned from this mailing list.\n"
+"If you think this restriction is erroneous, please contact the list\n"
+"owners at %(listowner)s."
+msgstr ""
+"Ihre e-mail-Adresse ist von der Liste verbannt worden. Wenn Sie glauben,\n"
+"daß ein Fehler vorliegt, so kontaktieren Sie bitte den Listenbesitzer:\n"
+"%(listowner)s."
+
+# Mailman/MailCommandHandler.py:645
+#: Mailman/Commands/cmd_subscribe.py:108
+msgid ""
+"Mailman won't accept the given email address as a valid address.\n"
+"(E.g. it must have an @ in it.)"
+msgstr ""
+"Mailman wird die angegebene Emailadresse nicht als gültige Adresse\n"
+"akzeptieren (möglicherweise fehlt das '@' darin)."
+
+# Mailman/MailCommandHandler.py:652
+#: Mailman/Commands/cmd_subscribe.py:113
+msgid ""
+"Your subscription is not allowed because\n"
+"the email address you gave is insecure."
+msgstr ""
+"Das Abonnieren wurde abgelehnt, da Sie eine unsichere Emailadresse\n"
+"angegeben haben."
+
+# Mailman/MailCommandHandler.py:656
+#: Mailman/Commands/cmd_subscribe.py:118
+msgid "You are already subscribed!"
+msgstr "Sie sind bereits Abonnement!"
+
+# Mailman/Cgi/subscribe.py:198 Mailman/MailCommandHandler.py:659
+#: Mailman/Commands/cmd_subscribe.py:122
+msgid "No one can subscribe to the digest of this list!"
+msgstr "Niemand kann die Nachrichtensammlungen dieser Liste abonnieren !"
+
+# Mailman/Cgi/subscribe.py:200 Mailman/MailCommandHandler.py:661
+#: Mailman/Commands/cmd_subscribe.py:125
+msgid "This list only supports digest subscriptions!"
+msgstr "Diese Liste erlaubt nur Abonnements von Nachrichtensammlungen!"
+
+# Mailman/MailCommandHandler.py:641
+#: Mailman/Commands/cmd_subscribe.py:131
+msgid ""
+"Your subscription request has been forwarded to the list administrator\n"
+"at %(listowner)s for review."
+msgstr ""
+"Ihr Abonnementantrag wurde mit der Bitte um Freigabe an den\n"
+"Listenadministrator <%(listowner)s> weitergeleitet."
+
+# Mailman/Cgi/confirm.py:287
+#: Mailman/Commands/cmd_subscribe.py:136
+msgid "Subscription request succeeded."
+msgstr "Eintragswunsch bestätigt"
+
+#: Mailman/Commands/cmd_unsubscribe.py:17
+msgid ""
+"\n"
+" unsubscribe [password] [address=<address>]\n"
+" Unsubscribe from the mailing list. If given, your password must "
+"match\n"
+" your current password. If omitted, a confirmation email will be "
+"sent\n"
+" to the unsubscribing address. If you wish to unsubscribe an address\n"
+" other than the address you sent this request from, you may specify\n"
+" `address=<address>' (no brackets around the email address, and no\n"
+" quotes!)\n"
+msgstr ""
+"\n"
+" unsubscribe [password] [address=<address>]\n"
+" Trägt Sie aus einer Mailingliste aus. Das Paßwort muß mit "
+"ihrem aktuellen Passwort übereinstimmen. -Geben Sie kein Passwort "
+"an, so erhalten Sie eine weitere e-Mail mit der Bitte um "
+"Rückbestätigung des Austragswunsches.\n"
+" Wenn Sie eine andere Adresse austragen wollen, als die, von "
+"der Sie mailen, so können Sie mit `address=<address>' (ohne "
+"Klammern und Anführungszeichen) eine andere Adresse angeben.\n"
+
+# Mailman/MailCommandHandler.py:359 Mailman/MailCommandHandler.py:365
+# Mailman/MailCommandHandler.py:420 Mailman/MailCommandHandler.py:587
+#: Mailman/Commands/cmd_unsubscribe.py:62
+msgid "%(address)s is not a member of the %(listname)s mailing list"
+msgstr "%(adress)s ist kein Mitglied der Liste %(listname)s."
+
+#: Mailman/Commands/cmd_unsubscribe.py:69
+msgid ""
+"Your unsubscription request has been forwarded to the list administrator "
+"for\n"
+"approval."
+msgstr ""
+"Ihr Abbestelllungsantrag wurde mit der Bitte um Bestätigung an den\n"
+"Listenadministrator weitergeleitet."
+
+# Mailman/MailCommandHandler.py:354 Mailman/MailCommandHandler.py:424
+# Mailman/MailCommandHandler.py:578
+#: Mailman/Commands/cmd_unsubscribe.py:84
+msgid "You gave the wrong password"
+msgstr "Falsches Passwort."
+
+# Mailman/Cgi/confirm.py:345
+#: Mailman/Commands/cmd_unsubscribe.py:87
+msgid "Unsubscription request succeeded."
+msgstr "Abo-Kündigung bestätigt"
+
+#: Mailman/Commands/cmd_who.py:29
+msgid ""
+"\n"
+" who\n"
+" See everyone who is on this mailing list.\n"
+msgstr ""
+"\n"
+" who\n"
+" Zeigt die Mitglieder eine Liste an (sofern öffentlich).\n"
+
+#: Mailman/Commands/cmd_who.py:34
+msgid ""
+"\n"
+" who password [address=<address>]\n"
+" See everyone who is on this mailing list. The roster is limited to\n"
+" list members only, and you must supply your membership password to\n"
+" retrieve it. If you're posting from an address other than your\n"
+" membership address, specify your membership address with\n"
+" `address=<address>' (no brackets around the email address, and no\n"
+" quotes!)\n"
+msgstr ""
+"\n"
+" who password [address=<address>]\n"
+" Erzeugt eine Übersicht der Mitglieder der Liste. Da dies nur für\n"
+" Listenmitglieder erlaubt ist, müssen Sie Ihr Listenkennwort mit\n"
+" angeben.\n"
+" Wenn Sie von einer anderen als der eingetragenen Mailadresse aus\n"
+" senden, können Sie mit `address=<address>' eine andere Adresse\n"
+" angeben, für die dieses Kommando gelten soll (natürlich ohne Angabe\n"
+" der spitzen Klammern und ohne Anführungszeichen!).\n"
+
+#: Mailman/Commands/cmd_who.py:44
+msgid ""
+"\n"
+" who password\n"
+" See everyone who is on this mailing list. The roster is limited to\n"
+" list administrators and moderators only; you must supply the list\n"
+" admin or moderator password to retrieve the roster.\n"
+msgstr ""
+"\n"
+" who password\n"
+" Erzeugt eine Übersicht über die Mitglieder der Liste. Da dies nur\n"
+" dem Listenadministrator oder -moderator erlaubt ist, müssen Sie\n"
+" ein Admin- oder Moderationskennwort der Liste mit angeben.\n"
+
+# Mailman/Cgi/create.py:140
+#: Mailman/Commands/cmd_who.py:110
+msgid "You are not allowed to retrieve the list membership."
+msgstr "Sie sind nicht berechtigt die Liste der Mitglieder anzusehen."
+
+#: Mailman/Commands/cmd_who.py:116
+msgid "This list has no members."
+msgstr "Diese Liste hat keine Mitglieder."
+
+# Mailman/MailCommandHandler.py:532
+#: Mailman/Commands/cmd_who.py:129
+msgid "Non-digest (regular) members:"
+msgstr "Normale Mitglieder (sofortiger Bezug, keine digests):"
+
+# Mailman/MailCommandHandler.py:526
+#: Mailman/Commands/cmd_who.py:132
+msgid "Digest members:"
+msgstr "Mitglieder, die Nachrichtensammlungen erhalten:"
+
+# Mailman/Defaults.py:771
+#: Mailman/Defaults.py:1204
+msgid "Traditional Chinese"
+msgstr "Traditionelles Chinesisch"
+
+#: Mailman/Defaults.py:1205
+msgid "Czech"
+msgstr "Tschechisch"
+
+#: Mailman/Defaults.py:1206
+msgid "German"
+msgstr "Deutsch"
+
+# Mailman/Defaults.py:772
+#: Mailman/Defaults.py:1207
+msgid "English (USA)"
+msgstr "Englisch (USA)"
+
+# Mailman/Defaults.py:773
+#: Mailman/Defaults.py:1208
+msgid "Spanish (Spain)"
+msgstr "Spanisch (Spanien)"
+
+#: Mailman/Defaults.py:1209
+msgid "Estonian"
+msgstr "Estonian"
+
+#: Mailman/Defaults.py:1210
+msgid "Finnish"
+msgstr "Finnisch"
+
+# Mailman/Defaults.py:774
+#: Mailman/Defaults.py:1211
+msgid "French"
+msgstr "Französisch"
+
+# Mailman/Defaults.py:775
+#: Mailman/Defaults.py:1212
+msgid "Simplified Chinese"
+msgstr "Vereinfachtes Chinesisch"
+
+# Mailman/Defaults.py:776
+#: Mailman/Defaults.py:1213
+msgid "Hungarian"
+msgstr "Ungarisch"
+
+# Mailman/Defaults.py:777
+#: Mailman/Defaults.py:1214
+msgid "Italian"
+msgstr "Italienisch"
+
+# Mailman/Defaults.py:778
+#: Mailman/Defaults.py:1215
+msgid "Japanese"
+msgstr "Japanisch"
+
+# Mailman/Defaults.py:779
+#: Mailman/Defaults.py:1216
+msgid "Korean"
+msgstr "Koreanisch"
+
+#: Mailman/Defaults.py:1217
+msgid "Lithuanian"
+msgstr "Lithuanian"
+
+#: Mailman/Defaults.py:1218
+msgid "Dutch"
+msgstr "Holländisch"
+
+# Mailman/Defaults.py:779
+#: Mailman/Defaults.py:1219
+msgid "Norwegian"
+msgstr "Norwegisch"
+
+#: Mailman/Defaults.py:1220
+msgid "Portuguese (Brazil)"
+msgstr "Portuguese (Brazil)"
+
+#: Mailman/Defaults.py:1221
+msgid "Russian"
+msgstr "Russisch"
+
+#: Mailman/Defaults.py:1222
+msgid "Swedish"
+msgstr "Schwedisch"
+
+# Mailman/Deliverer.py:42
+#: Mailman/Deliverer.py:43
+msgid ""
+"Note: Since this is a list of mailing lists, administrative\n"
+"notices like the password reminder will be sent to\n"
+"your membership administrative address, %(addr)s."
+msgstr ""
+"Hinweis: Das dies eine Liste von Mailinglisten ist, werden administrative\n"
+"Nachrichten wie die Passworterinnerung an die adminstrative Adresse\n"
+"geschickt, also an %(addr)s."
+
+# Mailman/Deliverer.py:61
+#: Mailman/Deliverer.py:62
+msgid " (Digest mode)"
+msgstr " (Nachrichtensammlungsmodus)"
+
+# Mailman/Deliverer.py:67
+#: Mailman/Deliverer.py:68
+msgid "Welcome to the \"%(realname)s\" mailing list%(digmode)s"
+msgstr "Willkommen bei der \"%(realname)s\" Mailingliste %(digmode)s "
+
+# Mailman/Deliverer.py:76
+#: Mailman/Deliverer.py:77
+msgid "You have been unsubscribed from the %(realname)s mailing list"
+msgstr "Sie haben die Mailingliste \"%(realname)s\" abbestellt"
+
+# Mailman/Deliverer.py:103
+#: Mailman/Deliverer.py:104
+msgid "%(listfullname)s mailing list reminder"
+msgstr "%(listfullname)s Mailinglisten Erinnerung"
+
+#: Mailman/Errors.py:114
+msgid "For some unknown reason"
+msgstr "Aus unbekannten Gründen"
+
+# Mailman/Errors.py:116
+#: Mailman/Errors.py:120 Mailman/Errors.py:143
+msgid "Your message was rejected"
+msgstr "Ihre Nachricht wurde zurückgewiesen"
+
+# Mailman/Gui/Archive.py:24
+#: Mailman/Gui/Archive.py:25
+msgid "Archiving Options"
+msgstr "Archivierungsoptionen"
+
+# Mailman/Gui/Archive.py:28
+#: Mailman/Gui/Archive.py:31
+msgid "List traffic archival policies."
+msgstr "Archivierungspolitik für den Nachrichtenverkehr"
+
+# Mailman/Gui/Archive.py:31
+#: Mailman/Gui/Archive.py:34
+msgid "Archive messages?"
+msgstr "Nachrichten archivieren?"
+
+# Mailman/Gui/Archive.py:33
+#: Mailman/Gui/Archive.py:36
+msgid "private"
+msgstr "privat"
+
+# Mailman/Gui/Archive.py:33
+#: Mailman/Gui/Archive.py:36
+msgid "public"
+msgstr "öffentlich"
+
+# Mailman/Gui/Archive.py:34
+#: Mailman/Gui/Archive.py:37
+msgid "Is archive file source for public or private archival?"
+msgstr "Sind die Archivdateien für ein privates oder öffentliches Archiv?"
+
+# Mailman/Gui/Archive.py:37 Mailman/Gui/Digest.py:67
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Monthly"
+msgstr "Monatlich"
+
+# Mailman/Gui/Archive.py:37 Mailman/Gui/Digest.py:67
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Quarterly"
+msgstr "Quartalsweise"
+
+# Mailman/Gui/Archive.py:37 Mailman/Gui/Digest.py:67
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Yearly"
+msgstr "Jährlich"
+
+# Mailman/Gui/Archive.py:38 Mailman/Gui/Digest.py:68
+#: Mailman/Gui/Archive.py:41 Mailman/Gui/Digest.py:79
+msgid "Daily"
+msgstr "Täglich"
+
+# Mailman/Gui/Archive.py:38 Mailman/Gui/Digest.py:68
+#: Mailman/Gui/Archive.py:41 Mailman/Gui/Digest.py:79
+msgid "Weekly"
+msgstr "Wöchentlich"
+
+# Mailman/Gui/Archive.py:40
+#: Mailman/Gui/Archive.py:43
+msgid "How often should a new archive volume be started?"
+msgstr "Wie oft soll eine neue Nachrichtensammlung angelegt werden ?"
+
+# Mailman/Gui/Autoresponse.py:26
+#: Mailman/Gui/Autoresponse.py:31
+msgid "Auto-responder"
+msgstr "Automatischer Beantworter"
+
+# Mailman/Gui/Autoresponse.py:32
+#: Mailman/Gui/Autoresponse.py:39
+msgid ""
+"Auto-responder characteristics.<p>\n"
+"\n"
+"In the text fields below, string interpolation is performed with\n"
+"the following key/value substitutions:\n"
+"<p><ul>\n"
+" <li><b>listname</b> - <em>gets the name of the mailing list</em>\n"
+" <li><b>listurl</b> - <em>gets the list's listinfo URL</em>\n"
+" <li><b>requestemail</b> - <em>gets the list's -request address</em>\n"
+" <li><b>owneremail</b> - <em>gets the list's -owner address</em>\n"
+"</ul>\n"
+"\n"
+"<p>For each text field, you can either enter the text directly into the "
+"text\n"
+"box, or you can specify a file on your local system to upload as the text."
+msgstr ""
+"Verhalten des automatischen Beantworters.<p>\n"
+"\n"
+"In den Textfeldern unten wird Python %(string)s die Schlüssel durch die "
+"Werte\n"
+"ersetzen (Schlüssel - Wert):\n"
+"<p><ul>\n"
+"<li><b>%(listname)s</b> - <em>ergibt den Listennamen</em>\n"
+"<li><b>%(listurl)s</b> - <em>ergibt die Informations-URL der Liste</em>\n"
+"<li><b>%(requestemail)s</b> - <em>ergibt die -request Adresse der Liste</"
+"em>\n"
+"<li><b>%(adminemail)s</b> - <em>ergibt die -admin Adresse der Liste</em>\n"
+"<li><b>%(owneremail)s</b> - <em>ergibt die -owner Adresse der Liste</em>\n"
+"</ul>\n"
+"\n"
+"<p>In jedem Textfeld können Sie entweder direkt den Text eingeben oder eine\n"
+"Datei auf ihrem Rechner angeben, die als Text hochgeladen wird."
+
+# Mailman/Gui/Autoresponse.py:49
+#: Mailman/Gui/Autoresponse.py:55
+msgid ""
+"Should Mailman send an auto-response to mailing list\n"
+" posters?"
+msgstr ""
+"Soll Mailman eine automatische Antwort an Personen schicken, die eine Email "
+"an die Liste schicken ?"
+
+# Mailman/Gui/Autoresponse.py:54
+#: Mailman/Gui/Autoresponse.py:60
+msgid "Auto-response text to send to mailing list posters."
+msgstr "Text der automatischen Antwort auf Emails an die Liste."
+
+# Mailman/Gui/Autoresponse.py:57
+#: Mailman/Gui/Autoresponse.py:63
+msgid ""
+"Should Mailman send an auto-response to emails sent to the\n"
+" -owner address?"
+msgstr ""
+"Soll Mailman eine automatische Antwort auf Emails verschicken, die an die -"
+"admin und -owner Adressen gehen ?"
+
+# Mailman/Gui/Autoresponse.py:73
+#: Mailman/Gui/Autoresponse.py:68
+msgid "Auto-response text to send to -owner emails."
+msgstr "Text der automatischen Antwort auf Emails an die -owner Adresse."
+
+# Mailman/Gui/Autoresponse.py:65
+#: Mailman/Gui/Autoresponse.py:71
+msgid "Yes, w/discard"
+msgstr "Ja, mit verwerfen"
+
+# Mailman/Gui/Autoresponse.py:65
+#: Mailman/Gui/Autoresponse.py:71
+msgid "Yes, w/forward"
+msgstr "Ja, mit weiterleiten"
+
+# Mailman/Gui/Autoresponse.py:66
+#: Mailman/Gui/Autoresponse.py:72
+msgid ""
+"Should Mailman send an auto-response to emails sent to the\n"
+" -request address? If you choose yes, decide whether you want\n"
+" Mailman to discard the original email, or forward it on to the\n"
+" system as a normal mail command."
+msgstr ""
+"Soll Mailman eine automatische Antwort auf Emails schicken, die an die -"
+"request Adresse geschickt werden ? Wenn Sie das wollen, legen Sie fest ob "
+"Mailman die originale Email verwerfen soll oder aber an das System als "
+"normales Kommando weiterleiten soll."
+
+# Mailman/Gui/Autoresponse.py:73
+#: Mailman/Gui/Autoresponse.py:79
+msgid "Auto-response text to send to -request emails."
+msgstr "Text der automatischen Antwort auf Emails an die -request Adresse."
+
+# Mailman/Gui/Autoresponse.py:76
+#: Mailman/Gui/Autoresponse.py:82
+msgid ""
+"Number of days between auto-responses to either the mailing\n"
+" list or -request/-owner address from the same poster. Set to\n"
+" zero (or negative) for no grace period (i.e. auto-respond to\n"
+" every message)."
+msgstr ""
+"Zahl von Tagen zwischen den automatischen Antworten auf Emails an die Liste "
+"oder die -admin/-owner Adresse vom selben Abonnenten. Setzen Sie den Wert "
+"auf Null (oder negativ) für automatische Antwort auf jede einzelne Nachricht."
+
+# Mailman/Cgi/confirm.py:587
+#: Mailman/Gui/Bounce.py:26
+msgid "Bounce processing"
+msgstr "Bounce-Bearbeitung"
+
+#: Mailman/Gui/Bounce.py:32
+msgid ""
+"These policies control the automatic bounce processing system\n"
+" in Mailman. Here's an overview of how it works.\n"
+"\n"
+" <p>When a bounce is received, Mailman tries to extract two "
+"pieces\n"
+" of information from the message: the address of the member the\n"
+" message was intended for, and the severity of the problem "
+"causing\n"
+" the bounce. The severity can be either <em>hard</em> or\n"
+" <em>soft</em> meaning either a fatal error occurred, or a\n"
+" transient error occurred. When in doubt, a hard severity is "
+"used.\n"
+"\n"
+" <p>If no member address can be extracted from the bounce, then "
+"the\n"
+" bounce is usually discarded. Otherwise, each member is assigned "
+"a\n"
+" <em>bounce score</em> and every time we encounter a bounce from\n"
+" this member we increment the score. Hard bounces increment by "
+"1\n"
+" while soft bounces increment by 0.5. We only increment the "
+"bounce\n"
+" score once per day, so even if we receive ten hard bounces from "
+"a\n"
+" member per day, their score will increase by only 1 for that "
+"day.\n"
+"\n"
+" <p>When a member's bounce score is greater than the\n"
+" <a href=\"?VARHELP=bounce/bounce_score_threshold\">bounce score\n"
+" threshold</a>, the subscription is disabled. Once disabled, "
+"the\n"
+" member will not receive any postings from the list until their\n"
+" membership is explicitly re-enabled (either by the list\n"
+" administrator or the user). However, they will receive "
+"occasional\n"
+" reminders that their membership has been disabled, and these\n"
+" reminders will include information about how to re-enable their\n"
+" membership.\n"
+"\n"
+" <p>You can control both the\n"
+" <a href=\"?VARHELP=bounce/bounce_you_are_disabled_warnings"
+"\">number\n"
+" of reminders</a> the member will receive and the\n"
+" <a href=\"?VARHELP=bounce/"
+"bounce_you_are_disabled_warnings_interval\"\n"
+" >frequency</a> with which these reminders are sent.\n"
+"\n"
+" <p>There is one other important configuration variable; after a\n"
+" certain period of time -- during which no bounces from the "
+"member\n"
+" are received -- the bounce information is\n"
+" <a href=\"?VARHELP=bounce/bounce_info_stale_after\">considered\n"
+" stale</a> and discarded. Thus by adjusting this value, and the\n"
+" score threshold, you can control how quickly bouncing members "
+"are\n"
+" disabled. You should tune both of these to the frequency and\n"
+" traffic volume of your list."
+msgstr ""
+
+# Mailman/Gui/Bounce.py:24
+#: Mailman/Gui/Bounce.py:75
+msgid "Bounce detection sensitivity"
+msgstr "Sensibilität der Bounce-Erkennung"
+
+# Mailman/Gui/Usenet.py:52
+#: Mailman/Gui/Bounce.py:78
+msgid "Should Mailman perform automatic bounce processing?"
+msgstr "Soll Mailman automatische Bounce-Erkennung machen?"
+
+#: Mailman/Gui/Bounce.py:79
+msgid ""
+"By setting this value to <em>No</em>, you disable all\n"
+" automatic bounce processing for this list, however bounce\n"
+" messages will still be discarded so that the list "
+"administrator\n"
+" isn't inundated with them."
+msgstr ""
+"Wenn Sie diese Option auf <em>No</em> setzen, deaktivieren Sie die\n"
+"automatische Bounce-Erkennung für diese Mailingliste. Der Listeninhaber\n"
+"erhält keine Kopien der verworfenen Bounces."
+
+#: Mailman/Gui/Bounce.py:85
+msgid ""
+"The maximum member bounce score before the member's\n"
+" subscription is disabled. This value can be a floating point\n"
+" number."
+msgstr ""
+"Die maximale Anzahl von unzustellbaren Nachrichten (Bounce), bevor\n"
+"die Listenmitgliedschaft des Users deaktiviert wird. Geben Sie einen\n"
+"ganzzahligen positiven Wert an."
+
+#: Mailman/Gui/Bounce.py:90
+msgid ""
+"The number of days after which a member's bounce information\n"
+" is discarded, if no new bounces have been received in the\n"
+" interim. This value must be an integer."
+msgstr ""
+"Die Anzahl der Tage, nachdenen die Bounce-Überwachung eines Nutzers\n"
+"beendet wird, wenn seine Mailadresse wieder zustellbar ist und keine\n"
+"Bounces mehr zurückkommen. Geben Sie einen ganzzahligen positiven Wert an."
+
+#: Mailman/Gui/Bounce.py:95
+msgid ""
+"How many <em>Your Membership Is Disabled</em> warnings a\n"
+" disabled member should get before their address is removed "
+"from\n"
+" the mailing list. Set to 0 to immediately remove an address "
+"from\n"
+" the list once their bounce score exceeds the threshold. This\n"
+" value must be an integer."
+msgstr ""
+"Wieviele <em>Your Membership Is Disabled</em>-Warnungen soll ein\n"
+"Mitglied bekommen, bevor seine Adresse von der Liste dauerhaft\n"
+"entfernt wird?\n"
+"Setzen Sie den Wert 0 um diese Adressen sofort zu entfernen,\n "
+"sobald die maximale Anzahl der Bounces überschritten wird."
+
+#: Mailman/Gui/Bounce.py:102
+msgid ""
+"The number of days between sending the <em>Your Membership\n"
+" Is Disabled</em> warnings. This value must be an integer."
+msgstr ""
+"Anzahl der Tage zwischen den <em>Ihre Mitgliedschaft ist deaktiviert</em>-"
+"Warnungen. "
+
+#: Mailman/Gui/Bounce.py:105 Mailman/Gui/General.py:257
+msgid "Notifications"
+msgstr "Benachrichtigungen"
+
+#: Mailman/Gui/Bounce.py:109
+msgid ""
+"Should Mailman send you, the list owner, any bounce messages\n"
+" that failed to be detected by the bounce processor? <em>Yes</"
+"em>\n"
+" is recommended."
+msgstr ""
+"Soll Mailman an den Listenbesitzer nicht erkannte Bounce-Nachrichten\n"
+"zur Ansicht weiterleiten?"
+
+#: Mailman/Gui/Bounce.py:112
+msgid ""
+"While Mailman's bounce detector is fairly robust, it's\n"
+" impossible to detect every bounce format in the world. You\n"
+" should keep this variable set to <em>Yes</em> for two reasons: "
+"1)\n"
+" If this really is a permanent bounce from one of your members,\n"
+" you should probably manually remove them from your list, and "
+"2)\n"
+" you might want to send the message on to the Mailman "
+"developers\n"
+" so that this new format can be added to its known set.\n"
+"\n"
+" <p>If you really can't be bothered, then set this variable to\n"
+" <em>No</em> and all non-detected bounces will be discarded\n"
+" without further processing.\n"
+"\n"
+" <p><b>Note:</b> This setting will also affect all messages "
+"sent\n"
+" to your list's -admin address. This address is deprecated and\n"
+" should never be used, but some people may still send mail to "
+"this\n"
+" address. If this happens, and this variable is set to\n"
+" <em>No</em> those messages too will get discarded. You may "
+"want\n"
+" to set up an\n"
+" <a href=\"?VARHELP=autoreply/autoresponse_admin_text"
+"\">autoresponse\n"
+" message</a> for email to the -owner and -admin address."
+msgstr ""
+"Obwohl die Bounce-Erkennung von Mailman sehr stabil arbeitet, ist\n"
+"es natürlich unmöglich jedes Bounce-Format der Welt zu erkennen.\n"
+"Aus zwei Gründen kann es Sinn machen, diese Variable auf <em>Yes</em>\n"
+"zu setzen: \n"
+"1)\n"
+" Wenn es sich wirklich um einen permanenten Bounce dieser Adresse handelt,\n"
+" sollten Sie diese Adresse manuell entfernen.\n "
+"2)\n"
+" Helfen Sie mit und senden Sie unerkannte Bounce-Formate an die Entwickler\n"
+" von Mailman, damit wir sie in die Bounce-Erkennung integrieren können!\n"
+"\n"
+" <p>Wenn Sie die Variable auf <em>No</em> setzen, werden alle nicht "
+" erkannten Bounces ohne weitere Bearbeitung verworfen."
+"\n"
+" <p><b>Achtung:</b> Diese Einstellung gilt auch für alle e-mails,\n"
+" die an Ihre List-Admin-Adresse geschickt werden. Diese Adressen sind\n"
+" veraltet und sollten nicht weiter benutzt werden. Ist diese Einstellung auf <em>No</em>\n"
+" gesetzt, werden diese e-Mails ebenfalls verworfen! Sie können einen\n"
+" <a href=\"?VARHELP=autoreply/autoresponse_admin_text"
+"\">Autoresponder</a> einsetzen, um diese e-mails beantworten zu lassen!"
+
+#: Mailman/Gui/Bounce.py:135
+msgid ""
+"Should Mailman notify you, the list owner, when bounces\n"
+" cause a member's subscription to be disabled?"
+msgstr ""
+"Soll Mailman den Listeninhaber benachrichtigen, wenn ein\n"
+"Nutzer wegen permanenter Bounces deaktiviert wird?"
+
+#: Mailman/Gui/Bounce.py:137
+msgid ""
+"By setting this value to <em>No</em>, you turn off\n"
+" notification messages that are normally sent to the list "
+"owners\n"
+" when a member's delivery is disabled due to excessive bounces.\n"
+" An attempt to notify the member will always be made."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:144
+msgid ""
+"Should Mailman notify you, the list owner, when bounces\n"
+" cause a member to be unsubscribed?"
+msgstr ""
+"Soll Mailman den Listeninhaber benachrichtigen, wenn ein\n"
+"Nutzer wegen permanenter Bounces ausgetragen wird?"
+
+#: Mailman/Gui/Bounce.py:146
+msgid ""
+"By setting this value to <em>No</em>, you turn off\n"
+" notification messages that are normally sent to the list "
+"owners\n"
+" when a member is unsubscribed due to excessive bounces. An\n"
+" attempt to notify the member will always be made."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:173
+msgid ""
+"Bad value for <a href=\"?VARHELP=bounce/%(property)s\"\n"
+" >%(property)s</a>: %(val)s"
+msgstr ""
+"Ungültiger Wert <a href=\"?VARHELP=bounce/%(property)s\"\n"
+" >%(property)s</a>: %(val)s"
+
+#: Mailman/Gui/ContentFilter.py:30
+msgid "Content&nbsp;filtering"
+msgstr "Absender&nbsp;Adressfilter"
+
+#: Mailman/Gui/ContentFilter.py:37
+msgid "Forward to List Owner"
+msgstr "Weitergeleitet an den Listen-Inhaber"
+
+#: Mailman/Gui/ContentFilter.py:39
+msgid "Preserve"
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:42
+msgid ""
+"Policies concerning the content of list traffic.\n"
+"\n"
+" <p>Content filtering works like this: when a message is\n"
+" received by the list and you have enabled content filtering, "
+"the\n"
+" individual attachments are first compared to the\n"
+" <a href=\"?VARHELP=contentfilter/filter_mime_types\">filter\n"
+" types</a>. If the attachment type matches an entry in the "
+"filter\n"
+" types, it is discarded.\n"
+"\n"
+" <p>Then, if there are <a\n"
+" href=\"?VARHELP=contentfilter/pass_mime_types\">pass types</a>\n"
+" defined, any attachment type that does <em>not</em> match a\n"
+" pass type is also discarded. If there are no pass types "
+"defined,\n"
+" this check is skipped.\n"
+"\n"
+" <p>After this initial filtering, any <tt>multipart</tt>\n"
+" attachments that are empty are removed. If the outer message "
+"is\n"
+" left empty after this filtering, then the whole message is\n"
+" discarded. Then, each <tt>multipart/alternative</tt> section "
+"will\n"
+" be replaced by just the first alternative that is non-empty "
+"after\n"
+" filtering.\n"
+"\n"
+" <p>Finally, any <tt>text/html</tt> parts that are left in the\n"
+" message may be converted to <tt>text/plain</tt> if\n"
+" <a href=\"?VARHELP=contentfilter/convert_html_to_plaintext\"\n"
+" >convert_html_to_plaintext</a> is enabled and the site is\n"
+" configured to allow these conversions."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:71
+msgid ""
+"Should Mailman filter the content of list traffic according\n"
+" to the settings below?"
+msgstr "Soll Mailman die Mails nach den untenstehenden Regeln filtern?"
+
+#: Mailman/Gui/ContentFilter.py:75
+msgid ""
+"Remove message attachments that have a matching content\n"
+" type."
+msgstr ""
+"Entfernt Mail-Attachements, die einen entsprechenden MIME-\n"
+"Content-Type haben."
+
+#: Mailman/Gui/ContentFilter.py:78
+msgid ""
+"Use this option to remove each message attachment that\n"
+" matches one of these content types. Each line should contain "
+"a\n"
+" string naming a MIME <tt>type/subtype</tt>,\n"
+" e.g. <tt>image/gif</tt>. Leave off the subtype to remove all\n"
+" parts with a matching major content type, e.g. <tt>image</tt>.\n"
+"\n"
+" <p>Blank lines are ignored.\n"
+"\n"
+" <p>See also <a href=\"?VARHELP=contentfilter/pass_mime_types\"\n"
+" >pass_mime_types</a> for a content type whitelist."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:90
+msgid ""
+"Remove message attachments that don't have a matching\n"
+" content type. Leave this field blank to skip this filter\n"
+" test."
+msgstr ""
+"Entfernt Attachements, die keinen passenden content-typ haben. \n"
+"Lassen Sie dieses Feld leer um hier nicht zu filtern und\n"
+"alles durchzulassen. "
+
+#: Mailman/Gui/ContentFilter.py:94
+msgid ""
+"Use this option to remove each message attachment that does\n"
+" not have a matching content type. Requirements and formats "
+"are\n"
+" exactly like <a href=\"?VARHELP=contentfilter/filter_mime_types"
+"\"\n"
+" >filter_mime_types</a>.\n"
+"\n"
+" <p><b>Note:</b> if you add entries to this list but don't add\n"
+" <tt>multipart</tt> to this list, any messages with attachments\n"
+" will be rejected by the pass filter."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:104
+msgid ""
+"Should Mailman convert <tt>text/html</tt> parts to plain\n"
+" text? This conversion happens after MIME attachments have "
+"been\n"
+" stripped."
+msgstr ""
+"Soll Mailman Teile der Nachricht mit dem Mime-Typ<tt>text/html</tt> in reinen\n"
+"blanken ASCII-Text konvertieren?"
+
+#: Mailman/Gui/ContentFilter.py:110
+msgid ""
+"Action to take when a message matches the content filtering\n"
+" rules."
+msgstr ""
+"Aktion die ausgelöst wird, wenn eine Nachricht auf die "
+"Filterregeln zutrifft."
+
+#: Mailman/Gui/ContentFilter.py:113
+msgid ""
+"One of these actions is take when the message matches one of\n"
+" the content filtering rules, meaning, the top-level\n"
+" content type matches one of the <a\n"
+" href=\"?VARHELP=contentfilter/filter_mime_types\"\n"
+" >filter_mime_types</a>, or the top-level content type does\n"
+" <strong>not</strong> match one of the\n"
+" <a href=\"?VARHELP=contentfilter/pass_mime_types\"\n"
+" >pass_mime_types</a>, or if after filtering the subparts of "
+"the\n"
+" message, the message ends up empty.\n"
+"\n"
+" <p>Note this action is not taken if after filtering the "
+"message\n"
+" still contains content. In that case the message is always\n"
+" forwarded on to the list membership.\n"
+"\n"
+" <p>When messages are discarded, a log entry is written\n"
+" containing the Message-ID of the discarded message. When\n"
+" messages are rejected or forwarded to the list owner, a reason\n"
+" for the rejection is included in the bounce message to the\n"
+" original author. When messages are preserved, they are saved "
+"in\n"
+" a special queue directory on disk for the site administrator "
+"to\n"
+" view (and possibly rescue) but otherwise discarded. This last\n"
+" option is only available if enabled by the site\n"
+" administrator."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:154
+msgid "Bad MIME type ignored: %(spectype)s"
+msgstr "Falscher MIME-Typ ignoriert: %(spectype)s"
+
+# Mailman/Gui/Digest.py:27
+#: Mailman/Gui/Digest.py:36
+msgid "Digest options"
+msgstr "Optionen für Nachrichtensammlungen"
+
+# Mailman/Gui/Digest.py:33
+#: Mailman/Gui/Digest.py:44
+msgid "Batched-delivery digest characteristics."
+msgstr "Stapelweise Zustellung von Nachrichtensammlungen"
+
+# Mailman/Gui/Digest.py:36
+#: Mailman/Gui/Digest.py:47
+msgid "Can list members choose to receive list traffic bunched in digests?"
+msgstr "Können Abonnenten Nachrichtensammlungen auswählen ?"
+
+# Mailman/Gui/Digest.py:40
+#: Mailman/Gui/Digest.py:51
+msgid "Digest"
+msgstr "Nachrichtensammlung"
+
+# Mailman/Gui/Digest.py:40
+#: Mailman/Gui/Digest.py:51
+msgid "Regular"
+msgstr "Normal"
+
+# Mailman/Gui/Digest.py:41
+#: Mailman/Gui/Digest.py:52
+msgid "Which delivery mode is the default for new users?"
+msgstr "Welcher Auslieferungsmodus ist die Voreinstellung für neue Abonnenten?"
+
+# Mailman/Gui/Digest.py:44
+#: Mailman/Gui/Digest.py:55
+msgid "MIME"
+msgstr "MIME"
+
+# Mailman/Gui/Digest.py:44
+#: Mailman/Gui/Digest.py:55
+msgid "Plain"
+msgstr "Einzelnachrichten"
+
+# Mailman/Gui/Digest.py:45
+#: Mailman/Gui/Digest.py:56
+msgid "When receiving digests, which format is default?"
+msgstr "Welches Format der Nachrichtensammlungen ist Voreinstellung ?"
+
+# Mailman/Gui/Digest.py:48
+#: Mailman/Gui/Digest.py:59
+msgid "How big in Kb should a digest be before it gets sent out?"
+msgstr "Wie groß (in KB) soll eine Sammlung vor dem Verschicken werden ?"
+
+# Mailman/Gui/Digest.py:52
+#: Mailman/Gui/Digest.py:63
+msgid "Should a digest be dispatched daily when the size threshold isn't reached?"
+msgstr "Sammlung täglich schicken wenn die Größe nicht erreicht wird ?"
+
+# Mailman/Gui/Digest.py:56
+#: Mailman/Gui/Digest.py:67
+msgid "Header added to every digest"
+msgstr "Nachrichtenkopf für jede Nachrichtensammlung"
+
+# Mailman/Gui/Digest.py:57
+#: Mailman/Gui/Digest.py:68
+msgid ""
+"Text attached (as an initial message, before the table of contents) to the "
+"top of digests. "
+msgstr ""
+"Vorangestellter Text (als Einleitung, vor dem Inhaltsverzeichnis) der "
+"Sammlungen. "
+
+# Mailman/Gui/Digest.py:62
+#: Mailman/Gui/Digest.py:73
+msgid "Footer added to every digest"
+msgstr "Nachrichtenfußzeile jeder Sammlung"
+
+# Mailman/Gui/Digest.py:63
+#: Mailman/Gui/Digest.py:74
+msgid "Text attached (as a final message) to the bottom of digests. "
+msgstr "Text am Ende jeder Sammlung (als abschließende Nachricht)."
+
+# Mailman/Gui/Digest.py:69
+#: Mailman/Gui/Digest.py:80
+msgid "How often should a new digest volume be started?"
+msgstr "Wie oft soll eine neuer Sammlungsband angelegt werden ?"
+
+# Mailman/Gui/Digest.py:70
+#: Mailman/Gui/Digest.py:81
+msgid ""
+"When a new digest volume is started, the volume number is\n"
+" incremented and the issue number is reset to 1."
+msgstr ""
+"Beim Anlegen eines neuen Sammlungsbanden wird die Bandnummer um eins erhöht "
+"und der Themenzähler auf eins zurückgesetzt."
+
+# Mailman/Gui/Digest.py:74
+#: Mailman/Gui/Digest.py:85
+msgid "Should Mailman start a new digest volume?"
+msgstr "Soll Mailman einen neuen Sammlungsband anlegen?"
+
+# Mailman/Gui/Digest.py:75
+#: Mailman/Gui/Digest.py:86
+msgid ""
+"Setting this option instructs Mailman to start a new volume\n"
+" with the next digest sent out."
+msgstr ""
+"Diese Option weist Mailman an, beim nächsten Senden einer "
+"Nachrichtensammlung (Digest) einen neuen Sammlungsband anzulegen."
+
+# Mailman/Gui/Digest.py:79
+#: Mailman/Gui/Digest.py:90
+msgid ""
+"Should Mailman send the next digest right now, if it is not\n"
+" empty?"
+msgstr ""
+"Soll Mailman die nächste Nachrichtensammlung (Digest) gleich jetzt senden, "
+"wenn sie nicht leer ist?"
+
+#: Mailman/Gui/Digest.py:145
+msgid ""
+"The next digest will be sent as volume\n"
+" %(volume)s, number %(number)s"
+msgstr ""
+"Das nächste digest wird als Volume\n"
+" %(volume)s, Nummer %(number)s gesendet"
+
+# Mailman/Cgi/options.py:133
+#: Mailman/Gui/Digest.py:150
+msgid "A digest has been sent."
+msgstr "Nachrichtensammlung wurde versandt."
+
+# Mailman/Cgi/admindb.py:153
+#: Mailman/Gui/Digest.py:152
+msgid "There was no digest to send."
+msgstr "Es stand keine Sammlung zum Versand aus."
+
+#: Mailman/Gui/GUIBase.py:149
+msgid "Invalid value for variable: %(property)s"
+msgstr "Ungültiger Wert: %(property)s"
+
+# Mailman/Cgi/admin.py:1169
+#: Mailman/Gui/GUIBase.py:153
+msgid "Bad email address for option %(property)s: %(val)s"
+msgstr "Ungültige Email-Adresse für %(property)s: %(val)s"
+
+#: Mailman/Gui/GUIBase.py:179
+msgid ""
+"The following illegal substitution variables were\n"
+" found in the <code>%(property)s</code> string:\n"
+" <code>%(bad)s</code>\n"
+" <p>Your list may not operate properly until you correct "
+"this\n"
+" problem."
+msgstr ""
+"Die folgenden unzulässigen Variablen wurden gefunden:\n"
+"<code>%(property)s</code>: <code>%(bad)s</code>\n"
+"<p>Die Liste kann eventuell nicht richtig funktionieren, solange dieses Problem nicht gelöst ist!"
+
+#: Mailman/Gui/GUIBase.py:193
+msgid ""
+"Your <code>%(property)s</code> string appeared to\n"
+" have some correctable problems in its new value.\n"
+" The fixed value will be used instead. Please\n"
+" double check that this is what you intended.\n"
+" "
+msgstr ""
+
+# Mailman/Gui/General.py:28
+#: Mailman/Gui/General.py:32
+msgid "General Options"
+msgstr "Allgemeine Optionen"
+
+#: Mailman/Gui/General.py:46
+msgid "Conceal the member's address"
+msgstr ""
+
+#: Mailman/Gui/General.py:47
+msgid "Acknowledge the member's posting"
+msgstr ""
+
+#: Mailman/Gui/General.py:48
+msgid "Do not send a copy of a member's own post"
+msgstr ""
+
+#: Mailman/Gui/General.py:50
+msgid "Filter out duplicate messages to list members (if possible)"
+msgstr ""
+
+# Mailman/Gui/General.py:34
+#: Mailman/Gui/General.py:57
+msgid ""
+"Fundamental list characteristics, including descriptive\n"
+" info and basic behaviors."
+msgstr ""
+"Grundlegende Eigenschaften und Einstellungen der Liste, einschliesslich "
+"beschreibender Info."
+
+# Mailman/Cgi/create.py:65 Mailman/Cgi/rmlist.py:162
+#: Mailman/Gui/General.py:60
+msgid "General list personality"
+msgstr "Allgemeine Listenübersicht"
+
+# Mailman/Gui/General.py:38
+#: Mailman/Gui/General.py:63
+msgid "The public name of this list (make case-changes only)."
+msgstr "Der öffentliche Name dieser Liste (nur Gross-/Kleinschreibung ändern)."
+
+# Mailman/Gui/General.py:39
+#: Mailman/Gui/General.py:64
+msgid ""
+"The capitalization of this name can be changed to make it\n"
+" presentable in polite company as a proper noun, or to make an\n"
+" acronym part all upper case, etc. However, the name will be\n"
+" advertised as the email address (e.g., in subscribe "
+"confirmation\n"
+" notices), so it should <em>not</em> be otherwise altered. "
+"(Email\n"
+" addresses are not case sensitive, but they are sensitive to\n"
+" almost everything else :-)"
+msgstr ""
+
+# Mailman/Gui/General.py:48
+#: Mailman/Gui/General.py:73
+msgid ""
+"The list administrator email addresses. Multiple\n"
+" administrator addresses, each on separate line is okay."
+msgstr ""
+"Die Emailadresse des Administrators der Liste. Mehrere Adressen können "
+"angegeben werden (eine pro Zeile)."
+
+# Mailman/Cgi/admin.py:997
+#: Mailman/Gui/General.py:76
+msgid ""
+"There are two ownership roles associated with each mailing\n"
+" list. The <em>list administrators</em> are the people who "
+"have\n"
+" ultimate control over all parameters of this mailing list. "
+"They\n"
+" are able to change any list configuration variable available\n"
+" through these administration web pages.\n"
+"\n"
+" <p>The <em>list moderators</em> have more limited permissions;\n"
+" they are not able to change any list configuration variable, "
+"but\n"
+" they are allowed to tend to pending administration requests,\n"
+" including approving or rejecting held subscription requests, "
+"and\n"
+" disposing of held postings. Of course, the <em>list\n"
+" administrators</em> can also tend to pending requests.\n"
+"\n"
+" <p>In order to split the list ownership duties into\n"
+" administrators and moderators, you must\n"
+" <a href=\"passwords\">set a separate moderator password</a>,\n"
+" and also provide the <a href=\"?VARHELP=general/moderator"
+"\">email\n"
+" addresses of the list moderators</a>. Note that the field you\n"
+" are changing here specifies the list administrators."
+msgstr ""
+"<a name=\"passwords\">Die</a> <em>Listen-Administratoren</em> haben volle\n"
+"Kontrolle über die Konfiguration dieser Liste. Alle Einstellungen auf "
+"diesen\n"
+"Webseiten können von ihnen geändert werden.\n"
+"\n"
+"<em>Listen-Moderatoren</em> haben limitierte Befugnisse. Sie können keine\n"
+"Einstellungen ändern, aber über Anmeldungen neuer Listenmitglieder "
+"entscheiden.\n"
+"Sie können auch zurückgehaltene Mitteilungen an die Liste freigeben oder "
+"löschen.\n"
+"All diese Tätigkeiten können natürlich auch von <em>Listen-Administratoren</"
+"em>\n"
+"vorgenommen werden.\n"
+"\n"
+"<p>Um die Listenpflege auf Administratoren und Moderatoren aufzuteilen, "
+"müssen Sie\n"
+"in den entsprechenden Feldern unten ein <a href=\"passwords\">separates Passwort</a> für <a href=\"?VARHELP=general/moderator"
+"\">Moderatoren</a> "
+"setzen\n"
+"und die Adressen der Moderatoren in der oberen Sektion angeben."
+
+# Mailman/Gui/General.py:72
+#: Mailman/Gui/General.py:97
+msgid ""
+"The list moderator email addresses. Multiple\n"
+" moderator addresses, each on separate line is okay."
+msgstr ""
+"Die Emailadresse des Listenmoderators. Mehrere Adressen können angegeben "
+"werden (eine pro Zeile)."
+
+# Mailman/Cgi/admin.py:997
+#: Mailman/Gui/General.py:100
+msgid ""
+"There are two ownership roles associated with each mailing\n"
+" list. The <em>list administrators</em> are the people who "
+"have\n"
+" ultimate control over all parameters of this mailing list. "
+"They\n"
+" are able to change any list configuration variable available\n"
+" through these administration web pages.\n"
+"\n"
+" <p>The <em>list moderators</em> have more limited permissions;\n"
+" they are not able to change any list configuration variable, "
+"but\n"
+" they are allowed to tend to pending administration requests,\n"
+" including approving or rejecting held subscription requests, "
+"and\n"
+" disposing of held postings. Of course, the <em>list\n"
+" administrators</em> can also tend to pending requests.\n"
+"\n"
+" <p>In order to split the list ownership duties into\n"
+" administrators and moderators, you must\n"
+" <a href=\"passwords\">set a separate moderator password</a>,\n"
+" and also provide the email addresses of the list moderators in\n"
+" this section. Note that the field you are changing here\n"
+" specifies the list moderators."
+msgstr ""
+"<a name=\"passwords\">Die</a> <em>Listen-Administratoren</em> haben volle\n"
+"Kontrolle über die Konfiguration dieser Liste. Alle Einstellungen auf "
+"diesen\n"
+"Webseiten können von ihnen geändert werden.\n"
+"\n"
+"<em>Listen-Moderatoren</em> haben limitierte Befugnisse. Die können keine\n"
+"Einstellungen ändern, aber über Anmeldungen neuer Listenmitglieder "
+"entscheiden.\n"
+"Sie können auch zurückgehaltene Mitteilungen an die Liste freigeben oder "
+"löschen.\n"
+"All diese Tätigkeiten können natürlich auch von <em>Listen-Administratoren</"
+"em>\n"
+"vorgenommen werden.\n"
+"\n"
+"<p>Um die Listenpflege auf Administratoren und Moderatoren aufzuteilen, "
+"müssen Sie\n"
+"in den entsprechenden Feldern unten ein separates Passwort für Moderatoren "
+"setzen\n"
+"und die Adressen der Moderatoren in der oberen Sektion angeben."
+
+# Mailman/Gui/General.py:96
+#: Mailman/Gui/General.py:121
+msgid "A terse phrase identifying this list."
+msgstr "Kurze, prägnante Beschreibung dieser Liste."
+
+# Mailman/Gui/General.py:98
+#: Mailman/Gui/General.py:123
+msgid ""
+"This description is used when the mailing list is listed with\n"
+" other mailing lists, or in headers, and so forth. It "
+"should\n"
+" be as succinct as you can get it, while still identifying "
+"what\n"
+" the list is."
+msgstr ""
+"Diese Beschreibung wird angezeigt, wenn die Mailingliste zusammen mit "
+"anderen Liste ausgegeben wird (oder in Headern). Die Beschreibung sollte so "
+"prägnant wie möglich ausfallen - schliesslich soll hier das Wesen der Liste "
+"auf den Punkt gebracht werden."
+
+# Mailman/Gui/General.py:104
+#: Mailman/Gui/General.py:129
+msgid ""
+"An introductory description - a few paragraphs - about the\n"
+" list. It will be included, as html, at the top of the "
+"listinfo\n"
+" page. Carriage returns will end a paragraph - see the details\n"
+" for more info."
+msgstr ""
+"Eine kleine einführende Beschreibung in die Liste. Sie wird\n"
+"im Kopf der Listinfo-Webseite eingeblendet. Mit einem\n"
+"Return können Sie Absätze trennen, HTML-Tags sind möglich.\n"
+"Lesen Sie die Detail-Seite für nähere Infos."
+
+# Mailman/Gui/General.py:108
+#: Mailman/Gui/General.py:133
+msgid ""
+"The text will be treated as html <em>except</em> that\n"
+" newlines will be translated to &lt;br&gt; - so you can use "
+"links,\n"
+" preformatted text, etc, but don't put in carriage returns "
+"except\n"
+" where you mean to separate paragraphs. And review your changes "
+"-\n"
+" bad html (like some unterminated HTML constructs) can prevent\n"
+" display of the entire listinfo page."
+msgstr ""
+"Der Text wird als HTML behandelt, <em>abgesehen</em> von den "
+"Zeilenumbrüchen, die nach &lt;br&gt; übersetzt werden. Sie können also "
+"Links, vorformatierten Text, usw. verwenden - nur sollten Sie keine CR-"
+"Zeichen benutzen, ausser dort, wo Sie Absätze trennen möchten. Sehen Sie "
+"sich Ihre Änderungen dann nochmals genau an - mieser HTML-Code (wie z.B. "
+"fehlende schliessende Tags) können dafür sorgen, dass die ganze listinfo-"
+"Seite nicht mehr dargestellt werden kann."
+
+# Mailman/Gui/General.py:116
+#: Mailman/Gui/General.py:141
+msgid "Prefix for subject line of list postings."
+msgstr "Präfix für Betreffzeile der Listennachrichten"
+
+# Mailman/Gui/General.py:117
+#: Mailman/Gui/General.py:142
+msgid ""
+"This text will be prepended to subject lines of messages\n"
+" posted to the list, to distinguish mailing list messages in in\n"
+" mailbox summaries. Brevity is premium here, it's ok to "
+"shorten\n"
+" long mailing list names to something more concise, as long as "
+"it\n"
+" still identifies the mailing list."
+msgstr ""
+"Dieser Text wird den Betreffzeilen der Nachrichten an dieser Liste "
+"vorangestellt, um die Mitteilungen innerhalb der Mailbox-Zusammenfassungen "
+"unterscheiden zu können. Hierbei gilt: In der Kürze liegt die Würze! Es ist "
+"eine gute Idee, lange Listennamen durch etwas knapperes zu ersetzen, solange "
+"dies die Liste immer noch einwandfrei identifiziert."
+
+# Mailman/Gui/Privacy.py:222
+#: Mailman/Gui/General.py:149
+msgid ""
+"Hide the sender of a message, replacing it with the list\n"
+" address (Removes From, Sender and Reply-To fields)"
+msgstr ""
+"Verstecken des Absenders einer Nachricht, indem er durch die Adresse der "
+"Mailingliste ersetzt wird (die Felder 'From:', 'Sender:' und 'Reply-"
+"To:'werden entfernt)"
+
+#: Mailman/Gui/General.py:152
+msgid "<tt>Reply-To:</tt> header munging"
+msgstr "<tt>Reply-To:</tt> Header Optionen"
+
+#: Mailman/Gui/General.py:155
+msgid ""
+"Should any existing <tt>Reply-To:</tt> header found in the\n"
+" original message be stripped? If so, this will be done\n"
+" regardless of whether an explict <tt>Reply-To:</tt> header is\n"
+" added by Mailman or not."
+msgstr ""
+"Sollen vorhandene <tt>Reply-To:</tt>-Header der Orginal-Nachricht\n"
+"verworfen werden? Falls diese Option aktiviert ist, wird der Header auch \n"
+"dann entfernt, wenn kein explizierter <tt>Reply-To:</tt>-Header der Liste "
+"gesetzt ist."
+
+# Mailman/Gui/General.py:148
+#: Mailman/Gui/General.py:161
+msgid "Explicit address"
+msgstr "Explizite Adresse"
+
+# Mailman/Gui/General.py:148
+#: Mailman/Gui/General.py:161
+msgid "Poster"
+msgstr "Absender"
+
+# Mailman/Gui/General.py:148
+#: Mailman/Gui/General.py:161
+msgid "This list"
+msgstr "Diese Liste"
+
+# Mailman/Gui/General.py:149
+#: Mailman/Gui/General.py:162
+msgid ""
+"Where are replies to list messages directed?\n"
+" <tt>Poster</tt> is <em>strongly</em> recommended for most "
+"mailing\n"
+" lists."
+msgstr ""
+"An welche Adresse sollen die Antworten auf Nachrichten der Liste gesendet "
+"werden? <tt>Absender</tt> wird <em>dringend</em> empfohlen für die meistens "
+"Mailinglisten."
+
+# Mailman/Gui/General.py:154
+#: Mailman/Gui/General.py:167
+msgid ""
+"This option controls what Mailman does to the\n"
+" <tt>Reply-To:</tt> header in messages flowing through this\n"
+" mailing list. When set to <em>Poster</em>, no <tt>Reply-To:</"
+"tt>\n"
+" header is added by Mailman, although if one is present in the\n"
+" original message, it is not stripped. Setting this value to\n"
+" either <em>This list</em> or <em>Explicit address</em> causes\n"
+" Mailman to insert a specific <tt>Reply-To:</tt> header in all\n"
+" messages, overriding the header in the original message if\n"
+" necessary (<em>Explicit address</em> inserts the value of <a\n"
+" href=\"?VARHELP=general/reply_to_address\">reply_to_address</"
+"a>).\n"
+" \n"
+" <p>There are many reasons not to introduce or override the\n"
+" <tt>Reply-To:</tt> header. One is that some posters depend on\n"
+" their own <tt>Reply-To:</tt> settings to convey their valid\n"
+" return address. Another is that modifying <tt>Reply-To:</tt>\n"
+" makes it much more difficult to send private replies. See <a\n"
+" href=\"http://www.unicom.com/pw/reply-to-harmful.html\">`Reply-"
+"To'\n"
+" Munging Considered Harmful</a> for a general discussion of "
+"this\n"
+" issue. See <a\n"
+" href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml"
+"\">Reply-To\n"
+" Munging Considered Useful</a> for a dissenting opinion.\n"
+"\n"
+" <p>Some mailing lists have restricted posting privileges, with "
+"a\n"
+" parallel list devoted to discussions. Examples are `patches' "
+"or\n"
+" `checkin' lists, where software changes are posted by a "
+"revision\n"
+" control system, but discussion about the changes occurs on a\n"
+" developers mailing list. To support these types of mailing\n"
+" lists, select <tt>Explicit address</tt> and set the\n"
+" <tt>Reply-To:</tt> address below to point to the parallel\n"
+" list."
+msgstr ""
+"Diese Option steuert, was Mailman mit dem <tt>Reply-To:</tt> Header "
+"anstellt, wenn eine durchrauschende Nachricht einen solchen enthält. Wenn "
+"diese Option auf <em>Absender</em> gesetzt ist, wird kein <tt>Reply-To:</tt> "
+"Header hinzugefügt und auch kein bereits enthaltener Header entfernt. Setzen "
+"Sie diesen Wert hingegen auf entweder <em>Diese Liste</em> oder "
+"<em>Explizite Adresse</em>, wird Mailman einen spezifischen <tt>Reply-To:</"
+"tt> Header einfügen - und dabei auch den möglicherweise bereits enthaltenen "
+"überschreiben, falls erforderlich (<em>Explizite Adresse</em> fügt den Wert "
+"der Option <a href=\"?VARHELP=general/reply_to_address\"> Antwort an "
+"Adresse</a> ein).\n"
+" <p>Es gibt viele Gründe, den <tt>Reply-To:</tt> Header unberührt zu "
+"lassen. Einer davon ist, das einige Benutzer selbst vom Wert des <tt>Reply-"
+"To:</tt> Header abhängen, da sie damit ihre korrekte Rücksendeadresse "
+"übermitteln. Ein weiterer Grund ist, dass es ein modifizierter <tt>Reply-To:"
+"</tt> Header es viel schwieriger macht, private Emailantworten zu "
+"verschicken. Siehe hier zu die Diskussion auf: <a href=\"http://www.unicom."
+"com/pw/reply-to-harmful.html\"> Reply-To Munging Considered Harmful</a>. Und "
+"um sich vom Gegenteil zu überzeugen, siehe: <a href=\"http://www.metasystema."
+"org/essays/reply-to-useful.mhtml\"> Reply-To Munging Considered Useful</a>. "
+"Soweit dazu....\n"
+" <p>Einige Mailinglisten laufen mit eingeschränkten Nutzungsrechten, "
+"begleitet von einer parallelen Liste für Diskussionszwecke. beispiele "
+"hierfür sind `patches' oder `checkin' Listen, auf denen Software-Änderungen "
+"über ein Versions-Kontrollsystem veröffentlicht werden, aber die "
+"Diskussionen über die Änderungen auf einer Entwicklerliste stattfinden. Um "
+"diese Art Mailingliste zu unterstützen, spezifizieren Sie hier ausdrücklich "
+"die <tt>Reply-To:</tt> Adresse. Sie müssen dann aber ebenfalls die Variable "
+"<tt>Anwort geht an Liste</tt> auf den Wert <tt>Explizite Adresse</tt> setzen."
+
+# Mailman/Gui/General.py:186
+#: Mailman/Gui/General.py:199
+msgid "Explicit <tt>Reply-To:</tt> header."
+msgstr "Expliziter <tt>Reply-To:</tt> Header"
+
+# Mailman/Gui/General.py:188
+#: Mailman/Gui/General.py:201
+msgid ""
+"This is the address set in the <tt>Reply-To:</tt> header\n"
+" when the <a\n"
+" href=\"?VARHELP=general/reply_goes_to_list"
+"\">reply_goes_to_list</a>\n"
+" option is set to <em>Explicit address</em>.\n"
+"\n"
+" <p>There are many reasons not to introduce or override the\n"
+" <tt>Reply-To:</tt> header. One is that some posters depend on\n"
+" their own <tt>Reply-To:</tt> settings to convey their valid\n"
+" return address. Another is that modifying <tt>Reply-To:</tt>\n"
+" makes it much more difficult to send private replies. See <a\n"
+" href=\"http://www.unicom.com/pw/reply-to-harmful.html\">`Reply-"
+"To'\n"
+" Munging Considered Harmful</a> for a general discussion of "
+"this\n"
+" issue. See <a\n"
+" href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml"
+"\">Reply-To\n"
+" Munging Considered Useful</a> for a dissenting opinion.\n"
+"\n"
+" <p>Some mailing lists have restricted posting privileges, with "
+"a\n"
+" parallel list devoted to discussions. Examples are `patches' "
+"or\n"
+" `checkin' lists, where software changes are posted by a "
+"revision\n"
+" control system, but discussion about the changes occurs on a\n"
+" developers mailing list. To support these types of mailing\n"
+" lists, specify the explicit <tt>Reply-To:</tt> address here. "
+"You\n"
+" must also specify <tt>Explicit address</tt> in the\n"
+" <tt>reply_goes_to_list</tt>\n"
+" variable.\n"
+"\n"
+" <p>Note that if the original message contains a\n"
+" <tt>Reply-To:</tt> header, it will not be changed."
+msgstr ""
+"Dies ist die Adresse, die im <tt>Reply-To:</tt> Header benutzt wird, wenn "
+"die <a href=\"?VARHELP=general/reply_goes_to_list\"> Anwort geht an Liste</"
+"a> Option auf den Wert <em>Explizite Adresse</em> gesetzt ist. <p>Es gibt "
+"viele Gründe, den <tt>Reply-To:</tt> Header unberührt zu lassen. Einer davon "
+"ist, das einige Benutzer selbst vom Wert des <tt>Reply-To:</tt> Header "
+"abhängen, da sie damit ihre korrekte Rücksendeadresse übermitteln. Ein "
+"weiterer Grund ist, dass es ein modifizierter <tt>Reply-To:</tt> Header es "
+"viel schwieriger macht, private Emailantworten zu verschicken. Siehe hier zu "
+"die Diskussion auf: <a href=\"http://www.unicom.com/pw/reply-to-harmful.html"
+"\"> Reply-To Munging Considered Harmful</a>. Und um sich vom Gegenteil zu "
+"überzeugen, siehe: <a href=\"http://www.metasystema.org/essays/reply-to-"
+"useful.mhtml\"> Reply-To Munging Considered Useful</a>. Soweit dazu....\n"
+" <p>Einige Mailinglisten laufen mit eingeschränkten Nutzungsrechten, "
+"begleitet von einer parallelen Liste für Diskussionszwecke. beispiele "
+"hierfür sind `patches' oder `checkin' Listen, auf denen Software-Änderungen "
+"über ein Versions-Kontrollsystem veröffentlicht werden, aber die "
+"Diskussionen über die Änderungen auf einer Entwicklerliste stattfinden. Um "
+"diese Art Mailingliste zu unterstützen, spezifizieren Sie hier ausdrücklich "
+"die <tt>Reply-To:</tt> Adresse. Sie müssen dann aber ebenfalls die Variable "
+"<tt>Anwort geht an Liste</tt> auf den Wert <tt>Explizite Adresse</tt> "
+"setzen. <p>Hinweis: Sollte die originale Nachricht bereits einen <tt>Reply-"
+"To:</tt> Header enthalten, wird dieser nicht verändert."
+
+#: Mailman/Gui/General.py:230
+msgid "Umbrella list settings"
+msgstr "Einstellungen der Regenschirm-Listen"
+
+# Mailman/Gui/General.py:228
+#: Mailman/Gui/General.py:233
+msgid ""
+"Send password reminders to, eg, \"-owner\" address instead of\n"
+" directly to user."
+msgstr ""
+"Sende Passwort-Erinnerung nicht direkt an die Adresse eines Mitgliedes, "
+"sondern füge der Adresse zuvor den \"Regenschirm-Listen-Anhang\" hinzu."
+
+# Mailman/Gui/General.py:231
+#: Mailman/Gui/General.py:236
+msgid ""
+"Set this to yes when this list is intended to cascade only\n"
+" to other mailing lists. When set, meta notices like\n"
+" confirmations and password reminders will be directed to an\n"
+" address derived from the member's address - it will have the\n"
+" value of \"umbrella_member_suffix\" appended to the member's\n"
+" account name."
+msgstr ""
+"Schalten Sie diese Option ein, wenn Sie beabsichtigen, dass diese Liste nur "
+"Nachrichten an andere Mailiglisten durchreicht. Meta-Nachrichten wie "
+"Bestätigungen und Passort-Erinnerungen werden dann an Adressen gesendet, die "
+"von den Mitgliedsadressen abgeleitet wurden (es wird der Wert des "
+"\"Regenschirm-Listen-Anhangs\" an den Mitgliedsnamen angehängt)."
+
+# Mailman/Gui/General.py:239
+#: Mailman/Gui/General.py:244
+msgid ""
+"Suffix for use when this list is an umbrella for other\n"
+" lists, according to setting of previous \"umbrella_list\"\n"
+" setting."
+msgstr ""
+"Namenserweiterung zur Verwendung von \"Regenschirm-Listen\" entsprechend dem "
+"Wert der Einstellung der vorangegangenen \"Regenschirm-Liste\""
+
+# Mailman/Gui/General.py:243
+#: Mailman/Gui/General.py:248
+msgid ""
+"When \"umbrella_list\" is set to indicate that this list has\n"
+" other mailing lists as members, then administrative notices "
+"like\n"
+" confirmations and password reminders need to not be sent to "
+"the\n"
+" member list addresses, but rather to the owner of those member\n"
+" lists. In that case, the value of this setting is appended to\n"
+" the member's account name for such notices. `-owner' is the\n"
+" typical choice. This setting has no effect when \"umbrella_list"
+"\"\n"
+" is \"No\"."
+msgstr ""
+"Wenn die \"Regenschirm-Liste\" gesetzt ist, um anzuzeigen, dass diese Liste "
+"andere Mailinglisten als Mitglieder hat, müssen Verwaltungsnachhrichten "
+"nicht mehr an die Listenmitglieder, sondern an die Eigentümer der Listen "
+"gesendet werden. In diesem Fall wird der Einstellungswert dieser Option an "
+"den Kontennamen des Mitgliedes angehängt, um ihm solche Nachrichten senden "
+"zu können. `-owner' ist die übliche Einstellung dieser Option. Der Inhalt "
+"dieser Variablen ist bedeutungslos, wenn die \"Regenschirm-Liste\" "
+"deaktiviert ist."
+
+# Mailman/Cgi/options.py:679
+#: Mailman/Gui/General.py:260
+msgid "Send monthly password reminders?"
+msgstr "Sende monatliche Passwort-Erinnerungsnachricht?"
+
+#: Mailman/Gui/General.py:262
+msgid ""
+"Turn this on if you want password reminders to be sent once\n"
+" per month to your members. Note that members may disable "
+"their\n"
+" own individual password reminders."
+msgstr ""
+"Schalten Sie diese Option ein, wenn Sie einmal im Monat eine Passwort-"
+"Erinnerungsnachricht an die Listenmitglieder senden möchten. Beachten Sie "
+"bitte, dass die Mitglieder diese Erinnerungsnachricht in ihren persönlichen "
+"Einstellung abschalten können."
+
+# Mailman/Gui/General.py:124
+#: Mailman/Gui/General.py:267
+msgid ""
+"List-specific text prepended to new-subscriber welcome\n"
+" message"
+msgstr "Listenspezifischen Text zum Willkommensgruss für neue Abonnenten hinzufügen"
+
+# Mailman/Gui/General.py:127
+#: Mailman/Gui/General.py:270
+msgid ""
+"This value, if any, will be added to the front of the\n"
+" new-subscriber welcome message. The rest of the welcome "
+"message\n"
+" already describes the important addresses and URLs for the\n"
+" mailing list, so you don't need to include any of that kind of\n"
+" stuff here. This should just contain mission-specific kinds "
+"of\n"
+" things, like etiquette policies or team orientation, or that "
+"kind\n"
+" of thing.\n"
+"\n"
+" <p>Note that this text will be wrapped, according to the\n"
+" following rules:\n"
+" <ul><li>Each paragraph is filled so that no line is longer "
+"than\n"
+" 70 characters.\n"
+" <li>Any line that begins with whitespace is not filled.\n"
+" <li>A blank line separates paragraphs.\n"
+" </ul>"
+msgstr ""
+"Dieser Text wird, wenn vorhanden, am Beginn des Willkommensgrusses für neue "
+"Abonnenten eingefügt. Der Rest der Willkommensnachricht beschreibt bereits "
+"die wichtigen Adressen und URL's der Mailingliste, sodass Sie sich nicht die "
+"Mühe machen müssen, diese hier nochmals aufzuführen. Hier sollte statt "
+"dessen thematisch eher auf die Umgangsformen bei der Benutzung der Listen, u."
+"ä. hingewiesen werde. <p>Hinweis: Dieser Text wird gemäss den folgenden "
+"Regeln umgebrochen: <ul><li>Die Zeilen werden so umgebrochen, das keine "
+"Zeile mehr als 70 Zeichen lang ist. <li>Zeilen, die mit Leerzeichen oder "
+"Tabs beginnen, werden nicht aufgefüllt. <li>Absätze werden durch leere "
+"Zeilen separiert. </ul>"
+
+# Mailman/Cgi/admin.py:927
+#: Mailman/Gui/General.py:287
+msgid "Send welcome message to newly subscribed members?"
+msgstr "Einen Willkommensgruss an neue Abonnenten senden?"
+
+#: Mailman/Gui/General.py:288
+msgid ""
+"Turn this off only if you plan on subscribing people manually\n"
+" and don't want them to know that you did so. This option is "
+"most\n"
+" useful for transparently migrating lists from some other "
+"mailing\n"
+" list manager to Mailman."
+msgstr ""
+"Schalten Sie dies nur ab, wenn Sie vorhaben, Abbestellungen manuell "
+"vorzunehmen (und nicht möchten, das davon jemand etwas mitbekommt). Diese "
+"Option ist am nützlichsten, wenn Sie eine Mailingliste transparent von einem "
+"anderen Mailinglistenmanager zu Mailman migrieren möchten."
+
+# Mailman/Gui/General.py:144
+#: Mailman/Gui/General.py:294
+msgid ""
+"Text sent to people leaving the list. If empty, no special\n"
+" text will be added to the unsubscribe message."
+msgstr ""
+"Text, der an die Leute gesendet wird, die die Liste verlassen. Wenn Sie hier "
+"nichts angeben, wird kein besonderer Text an die Abbestellungsnachricht "
+"hinzugefügt."
+
+#: Mailman/Gui/General.py:298
+msgid "Send goodbye message to members when they are unsubscribed?"
+msgstr "Abschiedsgruss an Mitglieder senden, die eine Liste abbestellen?"
+
+# Mailman/Gui/General.py:264
+#: Mailman/Gui/General.py:301
+msgid ""
+"Should the list moderators get immediate notice of new\n"
+" requests, as well as daily notices about collected ones?"
+msgstr ""
+"Den Listenmoderator sofort benachrichtigen, wenn neue Anforderungen "
+"eintreffen und ihm täglich eine Email mit einer Zusammenfassung senden?"
+
+# Mailman/Gui/General.py:267
+#: Mailman/Gui/General.py:304
+msgid ""
+"List moderators (and list administrators) are sent daily\n"
+" reminders of requests pending approval, like subscriptions to "
+"a\n"
+" moderated list, or postings that are being held for one reason "
+"or\n"
+" another. Setting this option causes notices to be sent\n"
+" immediately on the arrival of new requests as well."
+msgstr ""
+"Listenmoderatoren (und -administratoren) erhalten täglich Erinnerungs-Emails "
+"betreffend offener Genehmigungen (z.B. für Abonnements moderierter Listen, "
+"oder für Beiträge, die aus dem einen oder anderen Grund zurückgehalten "
+"wurden). Das Einschalten dieser Option führt dazu, dass die "
+"Listenverantwortlichen sofort benachrichtigt werden, sobald eine neue "
+"Steueranweisung eintrifft."
+
+# Mailman/Gui/General.py:274
+#: Mailman/Gui/General.py:311
+msgid ""
+"Should administrator get notices of subscribes and\n"
+" unsubscribes?"
+msgstr "Administrator bei Abonnements und Abbestellungen benachrichtigen?"
+
+# Mailman/Gui/General.py:279
+#: Mailman/Gui/General.py:316
+msgid "Send mail to poster when their posting is held for approval?"
+msgstr "Sende Email an Absender, wenn dessen Beitrag auf Genehmigung wartet?"
+
+# Mailman/Gui/General.py:281
+#: Mailman/Gui/General.py:318
+msgid ""
+"Approval notices are sent when mail triggers certain of the\n"
+" limits <em>except</em> routine list moderation and spam "
+"filters,\n"
+" for which notices are <em>not</em> sent. This option "
+"overrides\n"
+" ever sending the notice."
+msgstr ""
+"Genehmigungshinweise werden versendet, wenn eine Email bestimmte Limits "
+"verletzt, <em>ausser</em> bei gewöhnlicher Listenmoderation und bei Spam-"
+"Filtern, für die ebenfalls <em>keine</em> Hinweise gesendet werden."
+
+# Mailman/Defaults.py:771
+#: Mailman/Gui/General.py:323
+msgid "Additional settings"
+msgstr "Zusätzliche Einstellungen"
+
+#: Mailman/Gui/General.py:326
+msgid "Emergency moderation of all list traffic."
+msgstr "Notmoderation aller eingehenden Nachrichten"
+
+#: Mailman/Gui/General.py:327
+msgid ""
+"When this option is enabled, all list traffic is emergency\n"
+" moderated, i.e. held for moderation. Turn this option on when\n"
+" your list is experiencing a flamewar and you want a cooling "
+"off\n"
+" period."
+msgstr ""
+"Wenn diese Option aktiviert ist, werden alle Mails für die Moderation \n"
+"vorgehalten, unabhängig vom Moderations-Bit einzelner User. Aktivieren\n"
+"Sie diese Option, wenn auf der Liste z.B. ein Flame-War ausgebrochen ist und\n"
+"Sie nur vorübergehend eine Moderation auf der Liste aktivieren möchten."
+
+#: Mailman/Gui/General.py:339
+msgid ""
+"Default options for new members joining this list.<input\n"
+" type=\"hidden\" name=\"new_member_options\" value=\"ignore\">"
+msgstr ""
+
+#: Mailman/Gui/General.py:342
+msgid ""
+"When a new member is subscribed to this list, their initial\n"
+" set of options is taken from the this variable's setting."
+msgstr ""
+
+# Mailman/Gui/General.py:218
+#: Mailman/Gui/General.py:346
+msgid ""
+"(Administrivia filter) Check postings and intercept ones\n"
+" that seem to be administrative requests?"
+msgstr ""
+"Anweisungen filtern. Sollen Nachrichten überprüft, und solche abgefangen "
+"werden, die Steueranweisungen enthalten?"
+
+# Mailman/Gui/General.py:221
+#: Mailman/Gui/General.py:349
+msgid ""
+"Administrivia tests will check postings to see whether it's\n"
+" really meant as an administrative request (like subscribe,\n"
+" unsubscribe, etc), and will add it to the the administrative\n"
+" requests queue, notifying the administrator of the new "
+"request,\n"
+" in the process."
+msgstr ""
+"Der Anweisungstest prüft, ob eine Nachricht wirklich eine Anweisung enthält "
+"(wie abonnieren, abbestellen, etc.), und wird diese Nachricht in die "
+"Verwaltungs-Warteschlange stellen, wenn dem so ist. Der Administrator erhält "
+"anschliessend eine Benachrichtigung, mit der er über die Anforderung "
+"informiert wird."
+
+# Mailman/Gui/General.py:287
+#: Mailman/Gui/General.py:356
+msgid ""
+"Maximum length in kilobytes (KB) of a message body. Use 0\n"
+" for no limit."
+msgstr ""
+"Maximale Grösse in Kilobyte (KB) eines Nachrichtentextes. Keine "
+"Grössenbeschränkung bei Angabe von 0."
+
+# Mailman/Gui/General.py:291
+#: Mailman/Gui/General.py:360
+msgid "Host name this list prefers for email."
+msgstr "Bevorzugter Hostname für Email an diese Liste"
+
+# Mailman/Gui/General.py:293
+#: Mailman/Gui/General.py:362
+msgid ""
+"The \"host_name\" is the preferred name for email to\n"
+" mailman-related addresses on this host, and generally should "
+"be\n"
+" the mail host's exchanger address, if any. This setting can "
+"be\n"
+" useful for selecting among alternative names of a host that "
+"has\n"
+" multiple addresses."
+msgstr ""
+"Der Rechnername \"host_name\" ist der bevorzugte Name für Email an Mailman-"
+"bezogene Adressen auf diesem Rechner. Generell sollte dies der MX-Rechner "
+"(Mail Exchanger) der Domäne sein, in der sich der Host befindet. Diese "
+"Option ist besonders dann interessant, wenn Mailman auf einem Rechner mit "
+"mehreren Netzwerkadressen läuft."
+
+#: Mailman/Gui/General.py:374
+msgid ""
+"Should messages from this mailing list include the\n"
+" <a href=\"http://www.faqs.org/rfcs/rfc2369.html\">RFC 2369</"
+"a>\n"
+" (i.e. <tt>List-*</tt>) headers? <em>Yes</em> is highly\n"
+" recommended."
+msgstr ""
+"Sollen in die Nachrichten dieser Mailingliste <a href=\"http://www.faqs.org/"
+"rfc/rfc2369.html\"> RFC 2369</a> Header eingefügt werden? (<em>Ja</em> ist "
+"sehr empfehlenswert)"
+
+#: Mailman/Gui/General.py:379
+msgid ""
+"RFC 2369 defines a set of List-* headers that are\n"
+" normally added to every message sent to the list "
+"membership.\n"
+" These greatly aid end-users who are using standards "
+"compliant\n"
+" mail readers. They should normally always be enabled.\n"
+"\n"
+" <p>However, not all mail readers are standards compliant "
+"yet,\n"
+" and if you have a large number of members who are using\n"
+" non-compliant mail readers, they may be annoyed at these\n"
+" headers. You should first try to educate your members as "
+"to\n"
+" why these headers exist, and how to hide them in their "
+"mail\n"
+" clients. As a last resort you can disable these headers, "
+"but\n"
+" this is not recommended (and in fact, your ability to "
+"disable\n"
+" these headers may eventually go away)."
+msgstr ""
+"RFC 2369 definiert einen Satz von List-* Headern, die normalerweise in jede "
+"Nachricht eingefügt werden, die an die Listenmitglieder gesendet wird. Das "
+"ist eine grossartige Sache für Endbenutzer, die Standard-Emailsoftware "
+"verwenden, weshalb diese Option in der Regel immer eingeschaltet sein "
+"sollte.\n"
+" <p>Leider halten sich jedoch noch nicht alle Emailprogramme an diese "
+"Standards, und wenn Ihre Mitglieder überwiegend solche Software verwenden, "
+"können Sie diese Headererzeugung abschalten, um Ihre Leserschaft nicht zu "
+"verärgern. Allerdings sollten Sie zuvor versuchen, Ihre Benutzer zur "
+"Verwendung von standardkompatibler Software anzuhalten, da es sich ansonsten "
+"sehr empfiehlt, diese Header zu benutzen (ausserdem kann es passieren, dass "
+"die Option zur Headerunterdrückung in zukünftigen Versionen entfällt)."
+
+#: Mailman/Gui/General.py:397
+msgid "Should postings include the <tt>List-Post:</tt> header?"
+msgstr "Sollen e-mails einen <tt>List-Post:</tt>-Header bekommen?"
+
+#: Mailman/Gui/General.py:398
+msgid ""
+"The <tt>List-Post:</tt> header is one of the headers\n"
+" recommended by\n"
+" <a href=\"http://www.faqs.org/rfcs/rfc2369.html\">RFC 2369</"
+"a>.\n"
+" However for some <em>announce-only</em> mailing lists, only a\n"
+" very select group of people are allowed to post to the list; "
+"the\n"
+" general membership is usually not allowed to post. For lists "
+"of\n"
+" this nature, the <tt>List-Post:</tt> header is misleading.\n"
+" Select <em>No</em> to disable the inclusion of this header. "
+"(This\n"
+" does not affect the inclusion of the other <tt>List-*:</tt>\n"
+" headers.)"
+msgstr ""
+
+# Mailman/Cgi/admin.py:1188
+#: Mailman/Gui/General.py:416
+msgid ""
+"<b>real_name</b> attribute not\n"
+" changed! It must differ from the list's name by case\n"
+" only."
+msgstr ""
+"<p><b>real_name</b> Wert unverändert! Es darf sich nur in Klein- oder "
+"Grossschreibung vom Listennamen unterscheiden.<p>"
+
+#: Mailman/Gui/General.py:437
+msgid ""
+"You cannot add a Reply-To: to an explicit\n"
+" address if that address is blank. Resetting these values."
+msgstr ""
+"Sie können nicht einen Reply-To:-Header auf eine explizit Adresse\n"
+"setzen lassen, wenn eben diese Adresse leer gelassen wird."
+
+# Mailman/Gui/Language.py:29
+#: Mailman/Gui/Language.py:34
+msgid "Language&nbsp;options"
+msgstr "Sprach-Optionen"
+
+# Mailman/Gui/Language.py:48
+#: Mailman/Gui/Language.py:66
+msgid "Natural language (internationalization) options."
+msgstr "Sprach-Optionen (Internationalisierung)."
+
+# Mailman/Gui/Language.py:53
+#: Mailman/Gui/Language.py:71
+msgid "Default language for this list."
+msgstr "Voreingestellte Sprache dieser Mailingliste."
+
+# Mailman/Gui/Language.py:54
+#: Mailman/Gui/Language.py:72
+msgid ""
+"This is the default natural language for this mailing list.\n"
+" If <a href=\"?VARHELP=language/available_languages\">more than "
+"one\n"
+" language</a> is supported then users will be able to select "
+"their\n"
+" own preferences for when they interact with the list. All "
+"other\n"
+" interactions will be conducted in the default language. This\n"
+" applies to both web-based and email-based messages, but not to\n"
+" email posted by list members."
+msgstr ""
+"Dies ist die voreingestellte Sprache dieser Mailingliste. Sind <a href=\"?"
+"VARHELP=language/available_languages\"> mehrere Sprachen</a> verfügbar, "
+"können die Benutzer ihre Voreinstellungen entsprechend ändern. Alle "
+"Konversationen mit dem Benutzer werden in der voreingestellten Sprache "
+"geführt. Dies gilt für Nachrichten per Email und Webseite, aber nicht für "
+"Beiträge von Mitgliedern der Liste."
+
+# Mailman/Gui/Language.py:64
+#: Mailman/Gui/Language.py:82
+msgid "Languages supported by this list."
+msgstr "Von dieser Liste unterstützte Sprachen."
+
+# Mailman/Gui/Language.py:66
+#: Mailman/Gui/Language.py:84
+msgid ""
+"These are all the natural languages supported by this list.\n"
+" Note that the\n"
+" <a href=\"?VARHELP=language/preferred_language\">default\n"
+" language</a> must be included."
+msgstr ""
+"Hier sehen Sie alle Sprachen, die diese Liste unterstützt. Bitte beachten "
+"Sie, dass die <a href=\"?VARHELP=language/preferred_language\"> "
+"voreingestellte Sprache</a> in dieser Liste enthalten sein muss."
+
+# Mailman/Cgi/options.py:561
+#: Mailman/Gui/Language.py:90
+msgid "Always"
+msgstr "Immer"
+
+#: Mailman/Gui/Language.py:90
+msgid "As needed"
+msgstr "Soweit benötigt"
+
+# Mailman/Cgi/admindb.py:180 Mailman/Cgi/admindb.py:280
+#: Mailman/Gui/Language.py:90
+msgid "Never"
+msgstr "Nie"
+
+#: Mailman/Gui/Language.py:91
+msgid ""
+"Encode the\n"
+" <a href=\"?VARHELP=general/subject_prefix\">subject\n"
+" prefix</a> even when it consists of only ASCII characters?"
+msgstr "Soll der Betreff MIME-kodiert werden, auch wenn er nur ASCII-Zeichen enthält?"
+
+#: Mailman/Gui/Language.py:95
+msgid ""
+"If your mailing list's default language uses a non-ASCII\n"
+" character set and the prefix contains non-ASCII characters, "
+"the\n"
+" prefix will always be encoded according to the relevant\n"
+" standards. However, if your prefix contains only ASCII\n"
+" characters, you may want to set this option to <em>Never</em> "
+"to\n"
+" disable prefix encoding. This can make the subject headers\n"
+" slightly more readable for users with mail readers that don't\n"
+" properly handle non-ASCII encodings.\n"
+"\n"
+" <p>Note however, that if your mailing list receives both "
+"encoded\n"
+" and unencoded subject headers, you might want to choose <em>As\n"
+" needed</em>. Using this setting, Mailman will not encode "
+"ASCII\n"
+" prefixes when the rest of the header contains only ASCII\n"
+" characters, but if the original header contains non-ASCII\n"
+" characters, it will encode the prefix. This avoids an "
+"ambiguity\n"
+" in the standards which could cause some mail readers to "
+"display\n"
+" extra, or missing spaces between the prefix and the original\n"
+" header."
+msgstr ""
+
+# Mailman/Gui/Membership.py:26
+#: Mailman/Gui/Membership.py:26
+msgid "Membership&nbsp;Management"
+msgstr "Mitglieder-Verwaltung"
+
+# Mailman/Cgi/admin.py:721 Mailman/Gui/Membership.py:30
+#: Mailman/Gui/Membership.py:30
+msgid "Membership&nbsp;List"
+msgstr "Mitgliederliste"
+
+# Mailman/Cgi/admin.py:707
+#: Mailman/Gui/Membership.py:31
+msgid "Mass&nbsp;Subscription"
+msgstr "Abonnieren en masse"
+
+# Mailman/Cgi/admin.py:714
+#: Mailman/Gui/Membership.py:32
+msgid "Mass&nbsp;Removal"
+msgstr "Löschen en masse"
+
+# Mailman/Gui/NonDigest.py:28
+#: Mailman/Gui/NonDigest.py:34
+msgid "Non-digest&nbsp;options"
+msgstr "Non-Digest-Optionen"
+
+# Mailman/Gui/NonDigest.py:34
+#: Mailman/Gui/NonDigest.py:42
+msgid "Policies concerning immediately delivered list traffic."
+msgstr "Verhalten in Sachen Datenverkehr bei sofortiger Mailzustellung."
+
+# Mailman/Gui/NonDigest.py:37
+#: Mailman/Gui/NonDigest.py:45
+msgid ""
+"Can subscribers choose to receive mail immediately, rather\n"
+" than in batched digests?"
+msgstr "Haben Abonnementen die Wahl, ob sie Emails sofort statt stapelweise erhalten?"
+
+#: Mailman/Gui/NonDigest.py:52
+msgid "Full Personalization"
+msgstr ""
+
+# Mailman/Gui/NonDigest.py:57
+#: Mailman/Gui/NonDigest.py:54
+msgid ""
+"Should Mailman personalize each non-digest delivery?\n"
+" This is often useful for announce-only lists, but <a\n"
+" href=\"?VARHELP=nondigest/personalize\">read the details</"
+"a>\n"
+" section for a discussion of important performance\n"
+" issues."
+msgstr ""
+"Soll Mailman das Zustellungshandling für normale Mailinglisten "
+"personalisieren? Diese Option kann interessant für reine Ankündigunslisten "
+"sein, lesen sie aber auf alle Fälle die <ahref=\"?VARHELP=nondigest/"
+"personalize\"> Details zu Leistungsaspekten</a> durch, bevor Sie sich hieran "
+"die Finger verbrennen."
+
+#: Mailman/Gui/NonDigest.py:60
+msgid ""
+"Normally, Mailman sends the regular delivery messages to\n"
+" the mail server in batches. This is much more efficent\n"
+" because it reduces the amount of traffic between Mailman "
+"and\n"
+" the mail server.\n"
+"\n"
+" <p>However, some lists can benefit from a more "
+"personalized\n"
+" approach. In this case, Mailman crafts a new message for\n"
+" each member on the regular delivery list. Turning this\n"
+" feature on may degrade the performance of your site, so "
+"you\n"
+" need to carefully consider whether the trade-off is worth "
+"it,\n"
+" or whether there are other ways to accomplish what you "
+"want.\n"
+" You should also carefully monitor your system load to make\n"
+" sure it is acceptable.\n"
+"\n"
+" <p>Select <em>No</em> to disable personalization and send\n"
+" messages to the members in batches. Select <em>Yes</em> "
+"to\n"
+" personalize deliveries and allow additional substitution\n"
+" variables in message headers and footers (see below). In\n"
+" addition, by selecting <em>Full Personalization</em>, the\n"
+" <code>To</code> header of posted messages will be modified "
+"to\n"
+" include the member's address instead of the list's posting\n"
+" address.\n"
+"\n"
+" <p>When personalization is enabled, a few more expansion\n"
+" variables that can be included in the <a\n"
+" href=\"?VARHELP=nondigest/msg_header\">message header</a> "
+"and\n"
+" <a href=\"?VARHELP=nondigest/msg_footer\">message footer</"
+"a>.\n"
+"\n"
+" <p>These additional substitution variables will be "
+"available\n"
+" for your headers and footers, when this feature is "
+"enabled:\n"
+"\n"
+" <ul><li><b>user_address</b> - The address of the user,\n"
+" coerced to lower case.\n"
+" <li><b>user_delivered_to</b> - The case-preserved "
+"address\n"
+" that the user is subscribed with.\n"
+" <li><b>user_password</b> - The user's password.\n"
+" <li><b>user_name</b> - The user's full name.\n"
+" <li><b>user_optionsurl</b> - The url to the user's "
+"option\n"
+" page.\n"
+" </ul>\n"
+" "
+msgstr ""
+"Normalerweise sendet Mailman reguläre Nachrichtenzustellungen stapelweise an "
+"den Mailserver. Dies ist sehr effizient und reduziert den Datenverkehr "
+"zwischen Mailman und dem Mailserver beträchtlich.\n"
+" <p>Allerdings können einige Listen von einer etwas individuelleren "
+"Vorgehensweise profitieren. In diesem Fall\n"
+" verarbeitet Mailman jede neue Nachricht jedes Mitgliedes "
+"separat. Das Einschalten dieser Option kann sich negativ auf die Leistung "
+"Ihres Systems auswirken, deshalb sollten Sie Ihre Systemlast sorgfältig im "
+"Auge behalten.\n"
+" <p>Wenn die individuelle Listenverarbeitung aktiviert ist, passieren zwei "
+"Dinge. <p>Zum einen wird der <code>To:</code> Header der gesendeten "
+"Nachricht modifiziert, damit jeder einzelne Benutzer separat adressiert "
+"wird. Danach sieht es so aus, als ob die Nachricht an den Empfänger alleine "
+"adressiert war und nicht an die Mailingliste. <p>Zum zweiten können einige "
+"Expansionsvariablen in den <a href=\"?VARHELP=nondigest/msg_header\"> "
+"Kopfzeilen der Nachrichten</a> und den <a href=\"?VARHELP=nondigest/"
+"msg_footer\"> Fusszeilen der Nachrichten</a> eingefügt werden.\n"
+" <p>Die folgenden zusätzlichen Ersetzungsvariablen sind bei aktivierter "
+"Option in den Kopf- und Fusszeilen verfügbar:\n"
+" <ul><li><b>user_address</b> - Die Adresse des Benutzers (in "
+"Kleinschreibung). <li><b>user_delivered_to</b> - Die Adresse mit der sich "
+"der Benutzer ursprünglich angemeldet hat (Schreibweise wie eingegeben). "
+"<li><b>user_password</b> - Das Passwort des Benutzers. <li><b>user_name</b> "
+"- Der vollständige Name des Benutzers. <li><b>user_optionsurl</b> - Die URL "
+"zu den benutzerspezifischen Einstellungen. </ul> "
+
+# Mailman/Gui/NonDigest.py:41
+#: Mailman/Gui/NonDigest.py:108
+msgid "Header added to mail sent to regular list members"
+msgstr "Kopfzeile für Email an reguläre Listenmitglieder wurde hinzugefügt"
+
+# Mailman/Gui/NonDigest.py:42
+#: Mailman/Gui/NonDigest.py:109
+msgid ""
+"Text prepended to the top of every immediately-delivery\n"
+" message. "
+msgstr "Der Text wurde am Beginn jeder sofort zuzustellenden Nachricht eingefügt. "
+
+# Mailman/Gui/NonDigest.py:47
+#: Mailman/Gui/NonDigest.py:114
+msgid "Footer added to mail sent to regular list members"
+msgstr "Fusszeile für Email an reguläre Listenmitglieder wurde hinzugefügt"
+
+# Mailman/Gui/NonDigest.py:48
+#: Mailman/Gui/NonDigest.py:115
+msgid ""
+"Text appended to the bottom of every immediately-delivery\n"
+" message. "
+msgstr "Der Text wurde ans Ende jeder sofort zuzustellenden Nachricht hinzugefügt. "
+
+# Mailman/Cgi/confirm.py:203 Mailman/Cgi/options.py:658
+#: Mailman/Gui/Passwords.py:27
+msgid "Passwords"
+msgstr "Passwörter"
+
+# Mailman/Gui/Privacy.py:27
+#: Mailman/Gui/Privacy.py:28
+msgid "Privacy options"
+msgstr "Vertrauliche Optionen"
+
+# Mailman/Cgi/admindb.py:171
+#: Mailman/Gui/Privacy.py:32
+msgid "Subscription&nbsp;rules"
+msgstr "Abonnement-Spielregeln"
+
+#: Mailman/Gui/Privacy.py:33
+msgid "Sender&nbsp;filters"
+msgstr "Absender&nbsp;Adressfilter"
+
+#: Mailman/Gui/Privacy.py:34
+msgid "Recipient&nbsp;filters"
+msgstr "Empfänger&nbsp;Adressfilter"
+
+#: Mailman/Gui/Privacy.py:35
+msgid "Spam&nbsp;filters"
+msgstr "Spam&nbsp;Adressfilter"
+
+# Mailman/Cgi/confirm.py:208 Mailman/Cgi/create.py:301
+# Mailman/Cgi/create.py:347 Mailman/Gui/Archive.py:30
+# Mailman/Gui/Autoresponse.py:48 Mailman/Gui/Autoresponse.py:56
+# Mailman/Gui/Autoresponse.py:65 Mailman/Gui/Bounce.py:32
+# Mailman/Gui/Digest.py:35 Mailman/Gui/Digest.py:51 Mailman/Gui/Digest.py:73
+# Mailman/Gui/Digest.py:78 Mailman/Gui/General.py:217
+# Mailman/Gui/General.py:227 Mailman/Gui/General.py:252
+# Mailman/Gui/General.py:256 Mailman/Gui/General.py:263
+# Mailman/Gui/General.py:273 Mailman/Gui/General.py:278
+# Mailman/Gui/NonDigest.py:36 Mailman/Gui/NonDigest.py:55
+# Mailman/Gui/Privacy.py:86 Mailman/Gui/Privacy.py:100
+# Mailman/Gui/Privacy.py:111 Mailman/Gui/Privacy.py:114
+# Mailman/Gui/Privacy.py:147 Mailman/Gui/Privacy.py:221
+# Mailman/Gui/Usenet.py:43 Mailman/Gui/Usenet.py:47 Mailman/Gui/Usenet.py:51
+#: Mailman/Gui/Privacy.py:49 Mailman/Gui/Usenet.py:61
+msgid "None"
+msgstr "Nein"
+
+#: Mailman/Gui/Privacy.py:50 Mailman/Gui/Privacy.py:73
+msgid "Confirm"
+msgstr "Rückbestätigung durch den User"
+
+#: Mailman/Gui/Privacy.py:51 Mailman/Gui/Privacy.py:74
+msgid "Require approval"
+msgstr "Genehmigung durch den Listenadministrator"
+
+# Mailman/Cgi/confirm.py:490 Mailman/Cgi/confirm.py:588
+#: Mailman/Gui/Privacy.py:52 Mailman/Gui/Privacy.py:75
+msgid "Confirm and approve"
+msgstr "Bestätigung und Genehmigung"
+
+# Mailman/Gui/Privacy.py:40 Mailman/Gui/Privacy.py:63
+#: Mailman/Gui/Privacy.py:54 Mailman/Gui/Privacy.py:77
+msgid "What steps are required for subscription?<br>"
+msgstr "Was muss ich tun, um eine Mailingliste zu abonnieren?<br>"
+
+#: Mailman/Gui/Privacy.py:55
+msgid ""
+"None - no verification steps (<em>Not\n"
+" Recommended </em>)<br>\n"
+" Confirm (*) - email confirmation step required "
+"<br>\n"
+" Require approval - require list administrator\n"
+" Approval for subscriptions <br>\n"
+" Confirm and approve - both confirm and approve\n"
+" \n"
+" <p>(*) when someone requests a subscription,\n"
+" Mailman sends them a notice with a unique\n"
+" subscription request number that they must reply "
+"to\n"
+" in order to subscribe.<br>\n"
+"\n"
+" This prevents mischievous (or malicious) people\n"
+" from creating subscriptions for others without\n"
+" their consent."
+msgstr ""
+"Keine - Überprüfung nicht erforderlich (<em>Nicht empfehlenswert</em>)<br> "
+"Bestätigung (*) - Bestätigungsmail erforderlich<br> Erfordert Genehmigung - "
+"Die Genehmigung des Administrators der Liste ist nötig, um eine Liste zu "
+"abonnieren.<br> Bestätigung und Genehmigung - erfordert beides.\n"
+" <p>(*) Als Antwort auf eine Abonnierungsanfrage sendet Mailman eine "
+"Bestätigungsaufforderung mit einer eindeutigen Bearbeitungsnummer an den "
+"neuen Abonnementen, die dieser zurückschicken muss, um Zugang zur Liste zu "
+"erhalten. Dies verhindert, dass Scherzkekse andere Leute ohne deren Wissen "
+"mit Mailinglisten-Abos zumüllen."
+
+#: Mailman/Gui/Privacy.py:78
+msgid ""
+"Confirm (*) - email confirmation required <br>\n"
+" Require approval - require list administrator\n"
+" approval for subscriptions <br>\n"
+" Confirm and approve - both confirm and approve\n"
+" \n"
+" <p>(*) when someone requests a subscription,\n"
+" Mailman sends them a notice with a unique\n"
+" subscription request number that they must reply "
+"to\n"
+" in order to subscribe.<br> This prevents\n"
+" mischievous (or malicious) people from creating\n"
+" subscriptions for others without their consent."
+msgstr ""
+"Bestätigung (*) - Bestätigungs-Email erforderlich <br> Genehmigung "
+"erforderlich - erfordert die Genehmigung des Administrators der Liste, um "
+"eine Liste zu abonnieren.<br> Bestätigung und Genehmigung - erfordert "
+"beides.\n"
+" <p>(*) Als Antwort auf eine Abonnierungsanfrage sendet Mailman eine "
+"Bestätigungsaufforderung mit einer eindeutigen Bearbeitungsnummer an den "
+"neuen Abonnementen, die dieser zurückschicken muss, um Zugang zur Liste zu "
+"erhalten. Dies verhindert, dass Scherzkekse andere Leute ohne deren Wissen "
+"mit Mailinglisten-Abos zumüllen."
+
+#: Mailman/Gui/Privacy.py:94
+msgid ""
+"This section allows you to configure subscription and\n"
+" membership exposure policy. You can also control whether this\n"
+" list is public or not. See also the\n"
+" <a href=\"%(admin)s/archive\">Archival Options</a> section for\n"
+" separate archive-related privacy settings."
+msgstr ""
+"Dieser Abschnitt ermöglicht Ihnen die Konfiguration Ihres Abonnements und "
+"die Einstellung der Gültigkeitsdauer Ihrer Mitgliedschaft in der Liste. "
+"Beachten Sie hierbei auch den Abschnitt <a href=\"%(admin)s/archive"
+"\">Archivierungsoptionen</a> in Hinblick auf archivbezogene, vertrauliche "
+"Einstellungen."
+
+# Mailman/Gui/Privacy.py:85
+#: Mailman/Gui/Privacy.py:100
+msgid "Subscribing"
+msgstr "Abboniere"
+
+# Mailman/Gui/Privacy.py:87
+#: Mailman/Gui/Privacy.py:102
+msgid ""
+"Advertise this list when people ask what lists are on this\n"
+" machine?"
+msgstr ""
+"Diese Liste auch bekanntmachen, wenn die Leute anfragen, welche Listen auf "
+"dieser Maschine verfügbar sind?"
+
+#: Mailman/Gui/Privacy.py:108
+msgid ""
+"Is the list moderator's approval required for unsubscription\n"
+" requests? (<em>No</em> is recommended)"
+msgstr ""
+"Ist die Zustimmung des Administrators einer Liste erforderlich, wenn ein "
+"Abonnement eine Mailingliste abbestellen möchte? (Empfehlung: <em>Nein</em>)"
+
+#: Mailman/Gui/Privacy.py:111
+msgid ""
+"When members want to leave a list, they will make an\n"
+" unsubscription request, either via the web or via email.\n"
+" Normally it is best for you to allow open unsubscriptions so "
+"that\n"
+" users can easily remove themselves from mailing lists (they "
+"get\n"
+" really upset if they can't get off lists!).\n"
+"\n"
+" <p>For some lists though, you may want to impose moderator\n"
+" approval before an unsubscription request is processed. "
+"Examples\n"
+" of such lists include a corporate mailing list that all "
+"employees\n"
+" are required to be members of."
+msgstr ""
+"Wenn Mitglieder einer Liste ihr Abonnement kündigen möchten, stellen sie "
+"eine Aufforderung zum Abbestellen, entweder über die Webseite, oder per "
+"Email. Normalerweise ist es das beste, die Möglichkeit zum Abbestellen in "
+"den Händen der Benutzer zu lassen (da die Leute wirklich einen dicken Hals "
+"kriegen, wenn eine Liste nicht wieder los werden!).\n"
+" <p>Einige Listen können jedoch ein moderiertes Abbestellen einer "
+"Mailingliste durchaus sinnvoll erscheinen lassen - beispielsweise "
+"firmeninterne Listen, über die alle Beschäftigten mit Informationen versorgt "
+"werden müssen."
+
+# Mailman/MailCommandHandler.py:444
+#: Mailman/Gui/Privacy.py:122
+msgid "Ban list"
+msgstr "Verbannungsliste"
+
+#: Mailman/Gui/Privacy.py:124
+msgid ""
+"List of addresses which are banned from membership in this\n"
+" mailing list."
+msgstr ""
+"Liste der Adressen, die vom Bezug der\n"
+"Mailingliste ausgeschlossen sind ('verbannt')."
+
+#: Mailman/Gui/Privacy.py:127
+msgid ""
+"Addresses in this list are banned outright from subscribing\n"
+" to this mailing list, with no further moderation required. "
+"Add\n"
+" addresses one per line; start the line with a ^ character to\n"
+" designate a regular expression match."
+msgstr ""
+"Adressen dieser Liste können sich grundsätzlich nicht in die Mailingliste\n"
+"eintragen, der Admin erhält darüber auch keine weitere Nachricht. \n"
+"Fügen Sie eine Mailadresse pro Zeile hinzu.\n"
+"Beginnen Sie mir einem ^ um Regular-Expressions einzuleiten. "
+
+# Mailman/Gui/Privacy.py:92
+#: Mailman/Gui/Privacy.py:132
+msgid "Membership exposure"
+msgstr "Mitgliedschaft abgelaufen"
+
+# Mailman/Gui/Privacy.py:94
+#: Mailman/Gui/Privacy.py:134
+msgid "Anyone"
+msgstr "Jeder"
+
+# Mailman/Gui/Privacy.py:94
+#: Mailman/Gui/Privacy.py:134
+msgid "List admin only"
+msgstr "Nur der Listenadministrator"
+
+# Mailman/Gui/Privacy.py:94
+#: Mailman/Gui/Privacy.py:134
+msgid "List members"
+msgstr "Abonnementen der Liste"
+
+# Mailman/Gui/Privacy.py:95
+#: Mailman/Gui/Privacy.py:135
+msgid "Who can view subscription list?"
+msgstr "Wer darf die Mitgliederliste einer Mailingliste einsehen?"
+
+# Mailman/Gui/Privacy.py:97
+#: Mailman/Gui/Privacy.py:137
+msgid ""
+"When set, the list of subscribers is protected by member or\n"
+" admin password authentication."
+msgstr ""
+"Ist diese Option eingeschaltet, kann die Adressliste der Mitglieder nur von "
+"Mitgliedern (nach Passwortabfrage) und dem Administrator eingesehen werden."
+
+# Mailman/Gui/Privacy.py:101
+#: Mailman/Gui/Privacy.py:141
+msgid ""
+"Show member addresses so they're not directly recognizable\n"
+" as email addresses?"
+msgstr ""
+"Sollen Mailadressen so dargestellt werden, daß sie nicht mehr direkt als "
+"Mailadresse erkannt werden (z.B. von Suchrobotern der SPAM-Versender)"
+
+# Mailman/Gui/Privacy.py:103
+#: Mailman/Gui/Privacy.py:143
+msgid ""
+"Setting this option causes member email addresses to be\n"
+" transformed when they are presented on list web pages (both in\n"
+" text and as links), so they're not trivially recognizable as\n"
+" email addresses. The intention is to prevent the addresses\n"
+" from being snarfed up by automated web scanners for use by\n"
+" spammers."
+msgstr ""
+"Das Einschalten dieser Option bewirkt eine Transformation der Darstellung "
+"von Emailadressen auf Mailinglisten-Webseiten (sowohl im Text, als auch in "
+"den Links). Damit wird Spammern und deren automatisierten Webscannern das "
+"Leben schwerer gemacht. Ansonsten könnten die sich die Adressen einfach so "
+"reinschnorcheln."
+
+#: Mailman/Gui/Privacy.py:153
+msgid ""
+"When a message is posted to the list, a series of\n"
+" moderation steps are take to decide whether the a moderator "
+"must\n"
+" first approve the message or not. This section contains the\n"
+" controls for moderation of both member and non-member postings.\n"
+"\n"
+" <p>Member postings are held for moderation if their\n"
+" <b>moderation flag</b> is turned on. You can control whether\n"
+" member postings are moderated by default or not.\n"
+"\n"
+" <p>Non-member postings can be automatically\n"
+" <a href=\"?VARHELP=privacy/sender/accept_these_nonmembers\"\n"
+" >accepted</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/hold_these_nonmembers\">held "
+"for\n"
+" moderation</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/reject_these_nonmembers\"\n"
+" >rejected</a> (bounced), or\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >discarded</a>,\n"
+" either individually or as a group. Any\n"
+" posting from a non-member who is not explicitly accepted,\n"
+" rejected, or discarded, will have their posting filtered by the\n"
+" <a href=\"?VARHELP=privacy/sender/generic_nonmember_action"
+"\">general\n"
+" non-member rules</a>.\n"
+"\n"
+" <p>In the text boxes below, add one address per line; start the\n"
+" line with a ^ character to designate a <a href=\n"
+" \"http://www.python.org/doc/current/lib/module-re.html\"\n"
+" >Python regular expression</a>. When entering backslashes, do "
+"so\n"
+" as if you were using Python raw strings (i.e. you generally "
+"just\n"
+" use a single backslash).\n"
+"\n"
+" <p>Note that non-regexp matches are always done first."
+msgstr ""
+"Wenn eine Nachricht an eine Mailingliste gesendet wurde, wird eine Reihe von "
+"Moderationsschritten durchgeführt, um zu entscheiden, ob der Moderator die "
+"Nachricht erst einmal bestätigen muss, oder nicht.\n"
+"Dieser Abschnitt enthält "
+"die Kontrollfunkionen der Moderation sowohl der Mitglieds-, als auch der "
+"Nichtmitgliedsbeiträge. <p>Beiträge von Mitgliedern werden für die "
+"Moderation zurückgehalten, wenn deren <b>Moderations-Schalter</b> "
+"eingeschaltet ist. Es lässt sich einstellen, ob Mitgliedspublikationen "
+"standardseitig moderiert werden, oder nicht.\n"
+" <p>Beiträge von Nichtmitgliedern können automatisch <a href=\"?"
+"VARHELP=privacy/sender/accept_these_nonmembers\"> akzeptiert</a>, zur "
+"Moderation <a href=\"?VARHELP=privacy/sender/hold_these_nonmembers\"> "
+"zurückgehalten</a>, <a href=\"?VARHELP=privacy/sender/reject_these_nonmembers"
+"\"> abgewiesen</a> (bounced), oder <a href=\"?VARHELP=privacy/sender/"
+"discard_these_nonmembers\"> verworfen</a> werden, entweder individuell oder "
+"als Gruppe. Jede Nachricht eines Nichtmitgliedes, das nicht ausdrücklich "
+"automatische akzeptiert, abgewiesen oder verworfen wird, unterliegt den <a "
+"href=\"?VARHELP=privacy/sender/generic_nonmember_action\"> generellen "
+"Filterregeln für Nichmitglieder</a>. "
+"\n"
+"<p>Fügen Sie eine Mailadresse pro Zeile hinzu.\n"
+"Beginnen Sie mir einem ^ um <a href=\"http://www.python.org/doc/current/lib/module-re.html\"\n> "
+"Regular-Expressions</a> einzuleiten. Geben Sie einen Backslash so an, wie normale "
+"Python-Strings (i.d.R. ein einfacher normaler Backslash).\n"
+"\n"
+"<p>Nicht-RegExp-Ausdrücke werden immer zuerst geprüft!"
+
+# Mailman/Cgi/admin.py:721 Mailman/Gui/Membership.py:30
+#: Mailman/Gui/Privacy.py:186
+msgid "Member filters"
+msgstr "Mitglieder-Filter"
+
+#: Mailman/Gui/Privacy.py:189
+msgid "By default, should new list member postings be moderated?"
+msgstr "Sollen die Beiträge neuer Listenmitglieder moderiert werden?"
+
+#: Mailman/Gui/Privacy.py:191
+msgid ""
+"Each list member has a <em>moderation flag</em> which says\n"
+" whether messages from the list member can be posted directly "
+"to\n"
+" the list, or must first be approved by the list moderator. "
+"When\n"
+" the moderation flag is turned on, list member postings must be\n"
+" approved first. You, the list administrator can decide whether "
+"a\n"
+" specific individual's postings will be moderated or not.\n"
+"\n"
+" <p>When a new member is subscribed, their initial moderation "
+"flag\n"
+" takes its value from this option. Turn this option off to "
+"accept\n"
+" member postings by default. Turn this option on to, by "
+"default,\n"
+" moderate member postings first. You can always manually set "
+"an\n"
+" individual member's moderation bit by using the\n"
+" <a href=\"%(adminurl)s/members\">membership management\n"
+" screens</a>."
+msgstr ""
+"Jeder Abonnement verfügt über einen <em>Moderations-Schalter</em>, der "
+"festlegt, ob Nachrichten dieses Listenmitgliedes direkt an die Liste gehen, "
+"oder zuerst moderiert werden müssen. Wenn der Schalter aktiviert ist, müssen "
+"Veröffentlichungen dieses Abonnementen immer erst bestätigt werden. Sie, der "
+"Administrator der Mailingliste, können entscheiden, ob Veröffentlichungen "
+"einzelner Leute moderiert werden sollen, oder nicht. <p>Wenn sich ein neuer "
+"Abonnement auf der Liste registriert, wird sein initialer Moderations-"
+"Schalter auf den Wert gesetzt, den Sie mit dieser Option festlegen. Schalten "
+"Sie diese Option aus, um unmoderierte Veröffentlichungen grundsätzlich zu "
+"gestatten. Schalten Sie sie ein, um die Moderation generell zu erzwingen. "
+"Sie können hiervon abweichende, individuelle Einstellungen definieren. "
+"Schauen Sie hierfür in die <a href=\"%(adminurl)s/members\">Mitglieder-"
+"Verwaltung</a>."
+
+#: Mailman/Gui/Privacy.py:207 Mailman/Gui/Privacy.py:281
+msgid "Hold"
+msgstr "Zurückgehalten"
+
+#: Mailman/Gui/Privacy.py:208
+msgid ""
+"Action to take when a moderated member posts to the\n"
+" list."
+msgstr ""
+"Was soll passieren, wenn ein auf 'moderiert' geschaltetes Mitglied\n"
+"an die Liste sendet?"
+
+#: Mailman/Gui/Privacy.py:210
+msgid ""
+"<ul><li><b>Hold</b> -- this holds the message for approval\n"
+" by the list moderators.\n"
+"\n"
+" <p><li><b>Reject</b> -- this automatically rejects the message "
+"by\n"
+" sending a bounce notice to the post's author. The text of the\n"
+" bounce notice can be <a\n"
+" href=\"?VARHELP=privacy/sender/member_moderation_notice\"\n"
+" >configured by you</a>.\n"
+"\n"
+" <p><li><b>Discard</b> -- this simply discards the message, "
+"with\n"
+" no notice sent to the post's author.\n"
+" </ul>"
+msgstr ""
+"<ul><li><b>Halten</b> -- dies hält die Nachricht weiterhin vor um später über eien Freigabe zu entscheiden. "
+"\n"
+"\n"
+" <p><li><b>Reject</b> -- weist die Nachricht zurück und schickt eine Bounce-Nachricht\n"
+"an den Autor. Der Text der Bounce-Nachricht kann <a\n"
+" href=\"?VARHELP=privacy/sender/member_moderation_notice\"\n"
+" >hier</a> eingegeben werden.\n"
+"\n"
+" <p><li><b>Verwerfen</b> -- entfernt die Nachricht und schickt keine\n "
+"Bounce-Nachricht an den Absender zurück.\n"
+" </ul>"
+
+#: Mailman/Gui/Privacy.py:224
+msgid ""
+"Text to include in any\n"
+" <a href=\"?VARHELP/privacy/sender/member_moderation_action\"\n"
+" >rejection notice</a> to\n"
+" be sent to moderated members who post to this list."
+msgstr ""
+"Text der jeder <a href=\"?VARHELP/privacy/sender/member_moderation_action\"\n"
+" >Reject-Nachricht</a> beigefügt wird, wenn e-Mails der Nutzer nicht an eine moderierte\n"
+"Liste durchgelassen werden."
+
+#: Mailman/Gui/Privacy.py:229
+msgid "Non-member filters"
+msgstr "Anti-Spam Filter "
+
+#: Mailman/Gui/Privacy.py:232
+msgid ""
+"List of non-member addresses whose postings should be\n"
+" automatically accepted."
+msgstr ""
+"Adressliste der Nichtmitglieder deren Nachrichten automatisch akzeptiert "
+"werden."
+
+#: Mailman/Gui/Privacy.py:235
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" accepted with no further moderation applied. Add member\n"
+" addresses one per line; start the line with a ^ character to\n"
+" designate a regular expression match."
+msgstr ""
+"Nachrichten von jedem dieser Nichtmitglieder werden automatisch und ohne\n"
+"weitere Moderation akzeptiert. Fügen Sie eine Mailadresse pro Zeile hinzu.\n"
+"Beginnen Sie mir einem ^ um Regular-Expressions einzuleiten."
+
+#: Mailman/Gui/Privacy.py:241
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" immediately held for moderation."
+msgstr ""
+"Adressliste der Nichtmitglieder deren Nachrichten automatisch für eine "
+"Moderation zurückgehalten werden."
+
+#: Mailman/Gui/Privacy.py:244
+msgid ""
+"Postings from any of these non-members will be immediately\n"
+" and automatically held for moderation by the list moderators.\n"
+" The sender will receive a notification message which will "
+"allow\n"
+" them to cancel their held message. Add member addresses one "
+"per\n"
+" line; start the line with a ^ character to designate a regular\n"
+" expression match."
+msgstr ""
+"Nachrichten von jedem dieser Nichtmitglieder werden automatisch "
+"zurückgehalten zur Moderation durch den Listenmoderator. Der Absender erhält "
+"eine Benachrichtigung, die es ihm erlaubt, die zurückgehaltene "
+"Veröffentlichung zu löschen. Fügen Sie eine Mailadresse pro Zeile hinzu.\n"
+"Beginnen Sie mir einem ^ um Regular-Expressions einzuleiten."
+
+#: Mailman/Gui/Privacy.py:252
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" automatically rejected."
+msgstr ""
+"Adressliste der Nichtmitglieder deren Nachrichten automatisch zurückgewiesen "
+"werden."
+
+#: Mailman/Gui/Privacy.py:255
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" rejected. In other words, their messages will be bounced back "
+"to\n"
+" the sender with a notification of automatic rejection. This\n"
+" option is not appropriate for known spam senders; their "
+"messages\n"
+" should be\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >automatically discarded</a>.\n"
+"\n"
+" <p>Add member addresses one per line; start the line with a ^\n"
+" character to designate a regular expression match."
+msgstr ""
+"Nachrichten von jedem dieser Nichtmitglieder werden automatisch abgewiesen. "
+"Das heisst, die Nachricht wird mit einem Hinweis auf die automatische "
+"Zurückweisung an den Absender zurückgeschickt. Diese Option ist nicht "
+"geeignet für Spam-Versender - deren deren Nachrichten sollten Sie <a href=\"?"
+"VARHELP=privacy/sender/discard_these_nonmembers\" >automatisch verwerfen "
+"lassen</a>. "
+"<p>Fügen Sie eine Mailadresse pro Zeile hinzu.\n"
+"Beginnen Sie mir einem ^ um Regular-Expressions einzuleiten."
+
+#: Mailman/Gui/Privacy.py:267
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" automatically discarded."
+msgstr ""
+"Adressliste der Nichtmitglieder deren Nachrichten automatisch verworfen "
+"werden."
+
+#: Mailman/Gui/Privacy.py:270
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" discarded. That is, the message will be thrown away with no\n"
+" further processing or notification. The sender will not "
+"receive\n"
+" a notification or a bounce, however the list moderators can\n"
+" optionally <a href=\"?VARHELP=privacy/sender/"
+"forward_auto_discards\"\n"
+" >receive copies of auto-discarded messages.</a>.\n"
+"\n"
+" <p>Add member addresses one per line; start the line with a ^\n"
+" character to designate a regular expression match."
+msgstr ""
+"Nachrichten von jedem dieser Nichtmitglieder werden automatisch verworfen. "
+"Das heisst, die Nachricht wird weggeworfen und es\n"
+"findet keine weitere Verarbeitung oder Benachrichtigung mehr statt. Der\n"
+"Absender erhält keinerlei Information, jedoch kann der Listenmoderator\n"
+"optionalerweise <a href=\"?VARHELP=privacy/sender/forward_auto_discards\">\n"
+"Kopien von automatisch verworfenen Nachrichten</a> beziehen. "
+"<p>Fügen Sie eine Mailadresse pro Zeile hinzu.\n"
+"Beginnen Sie mir einem ^ um Regular-Expressions einzuleiten."
+
+#: Mailman/Gui/Privacy.py:282
+msgid ""
+"Action to take for postings from non-members for which no\n"
+" explicit action is defined."
+msgstr ""
+"Aktion, die beim Eingang einer Nachricht eines Nichtmitgliedes ausgeführt "
+"werden soll, wenn für dieses Nichtmitglied bislang keine Aktion hinterlegt "
+"ist."
+
+#: Mailman/Gui/Privacy.py:285
+msgid ""
+"When a post from a non-member is received, the message's\n"
+" sender is matched against the list of explicitly\n"
+" <a href=\"?VARHELP=privacy/sender/accept_these_nonmembers\"\n"
+" >accepted</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/hold_these_nonmembers\">held</"
+"a>,\n"
+" <a href=\"?VARHELP=privacy/sender/reject_these_nonmembers\"\n"
+" >rejected</a> (bounced), and\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >discarded</a> addresses. If no match is found, then this "
+"action\n"
+" is taken."
+msgstr ""
+"Wenn eine Nachricht eines Nichtmitgliedes einer Liste eintrifft, wird die "
+"Absendeadresse mit der Liste der explizit <a href=\"?VARHELP=privacy/sender/"
+"accept_these_nonmembers\" >zugelassenen</a>, <a href=\"?VARHELP=privacy/"
+"sender/hold_these_nonmembers\" >zurückgehaltenen</a>, <a href=\"?"
+"VARHELP=privacy/sender/reject_these_nonmembers\" >abgewiesenen</a> "
+"(bounced), und <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\" "
+">verworfenen</a> Adressen verglichen. Wurde keine Übereinstimmung gefunden, "
+"wird diese Aktion ausgeführt."
+
+#: Mailman/Gui/Privacy.py:297
+msgid ""
+"Should messages from non-members, which are automatically\n"
+" discarded, be forwarded to the list moderator?"
+msgstr ""
+"Sollen Nachrichten von Nichtmitgliedern, die automatisch verworfen werden, "
+"an den Moderator der Liste weitergeleitet werden?"
+
+#: Mailman/Gui/Privacy.py:303
+msgid ""
+"This section allows you to configure various filters based on\n"
+" the recipient of the message."
+msgstr ""
+"Sie können hier verschiedene Filter einstellen,\n"
+"mit denen die Empfängeradresse abgeglichen wird."
+
+# Mailman/Cgi/admin.py:721 Mailman/Gui/Membership.py:30
+#: Mailman/Gui/Privacy.py:306
+msgid "Recipient filters"
+msgstr "Empfängerfilter"
+
+# Mailman/Gui/Privacy.py:148
+#: Mailman/Gui/Privacy.py:310
+msgid ""
+"Must posts have list named in destination (to, cc) field\n"
+" (or be among the acceptable alias names, specified below)?"
+msgstr ""
+"Die meisten Nachrichten tragen den Listennamen im Zielfeld ('To:', 'Cc'). "
+"(Oder befindet er sich unter den unten definierten Aliasnamen?)"
+
+# Mailman/Gui/Privacy.py:151
+#: Mailman/Gui/Privacy.py:313
+msgid ""
+"Many (in fact, most) spams do not explicitly name their\n"
+" myriad destinations in the explicit destination addresses - in\n"
+" fact often the To: field has a totally bogus address for\n"
+" obfuscation. The constraint applies only to the stuff in the\n"
+" address before the '@' sign, but still catches all such spams.\n"
+"\n"
+" <p>The cost is that the list will not accept unhindered any\n"
+" postings relayed from other addresses, unless\n"
+"\n"
+" <ol>\n"
+" <li>The relaying address has the same name, or\n"
+"\n"
+" <li>The relaying address name is included on the options "
+"that\n"
+" specifies acceptable aliases for the list.\n"
+"\n"
+" </ol>"
+msgstr ""
+"Viele (in Wirklichkeit die meisten) Spams adressieren die myriaden Empfänger "
+"gar nicht ausdrücklich, tatsächlich enthält das 'To:'-Feld eine "
+"Scheinadresse als Nebelkerze. Der Adresszwang wirkt sich nur auf den "
+"Adressteil vor dem '@' aus, fängt aber dennoch all solchen Spam ab.\n"
+" <p>Der Preis dafür ist, daß die Liste dann keine weitergeleiteten "
+"Nachrichten anderer Adressen mehr ungehindert akzeptiert. Dies tut sich erst "
+"wieder, wenn\n"
+" <ol> <li>die weiterleitende Adresse den gleichen Namen trägt, oder\n"
+" <li>die weiterleitende Adresse zu den Optionen hinzugefügt worden ist, die "
+"die akzeptablen Aliase definiert.\n"
+" </ol>"
+
+# Mailman/Gui/Privacy.py:169
+#: Mailman/Gui/Privacy.py:331
+msgid ""
+"Alias names (regexps) which qualify as explicit to or cc\n"
+" destination names for this list."
+msgstr ""
+"Aliasnamen (reguläre Ausdrücke), die die Empfänger ('To:' und 'Cc:') dieser "
+"Liste festlegen."
+
+# Mailman/Gui/Privacy.py:172
+#: Mailman/Gui/Privacy.py:334
+msgid ""
+"Alternate addresses that are acceptable when\n"
+" `require_explicit_destination' is enabled. This option takes "
+"a\n"
+" list of regular expressions, one per line, which is matched\n"
+" against every recipient address in the message. The matching "
+"is\n"
+" performed with Python's re.match() function, meaning they are\n"
+" anchored to the start of the string.\n"
+" \n"
+" <p>For backwards compatibility with Mailman 1.1, if the regexp\n"
+" does not contain an `@', then the pattern is matched against "
+"just\n"
+" the local part of the recipient address. If that match fails, "
+"or\n"
+" if the pattern does contain an `@', then the pattern is "
+"matched\n"
+" against the entire recipient address.\n"
+" \n"
+" <p>Matching against the local part is deprecated; in a future\n"
+" release, the pattern will always be matched against the entire\n"
+" recipient address."
+msgstr ""
+"Akzeptable alternative Adressen bei Verwendung der Option "
+"`require_explicit_destination'. Diese Option erwartet eine Liste von "
+"regulären Ausdrücken (eine pro Zeile), die dann mit jeder Empfängeradresse "
+"in der Nachricht verglichen wird. Die Suche benutzt Python's re.match() "
+"Funktion, d.h. die Suche startet immer am Zeilenbeginn.\n"
+" <p>Für die Rückwärtskompatibilität mit Mailman 1.1 wird bei der Suche nur "
+"der lokale Teil der Empfängeradresse benutzt, wenn der reguläre Ausdruck "
+"kein '@' beinhaltet. Ansonsten wird der gesamte Adressausdruck samt Domäne "
+"verglichen. <p>Diese Art des Adressvergleiches ist unerwünscht. In einer "
+"zukünftigen Version wird nur noch die gesamte Adresse verglichen."
+
+# Mailman/Gui/Privacy.py:190
+#: Mailman/Gui/Privacy.py:352
+msgid "Ceiling on acceptable number of recipients for a posting."
+msgstr "Obergrenze der Empfängeranzahl einer Veröffentlichung."
+
+# Mailman/Gui/Privacy.py:192
+#: Mailman/Gui/Privacy.py:354
+msgid ""
+"If a posting has this number, or more, of recipients, it is\n"
+" held for admin approval. Use 0 for no ceiling."
+msgstr ""
+"Anfordern einer Bestätigung des Admins, wenn eine Nachricht diese Anzahl "
+"Empfänger hat (oder mehr). 0 wenn keine Obergrenze gelten soll."
+
+#: Mailman/Gui/Privacy.py:359
+msgid ""
+"This section allows you to configure various anti-spam\n"
+" filters posting filters, which can help reduce the amount of "
+"spam\n"
+" your list members end up receiving.\n"
+" "
+msgstr ""
+"Dieser Abschnitt erlaubt Ihnen die Konfiguration verschiedener Anti-Spam- "
+"und Nachrichtenfilter, welche Ihnen helfen können, die Menge an Spam für "
+"Ihre Listenmitglieder zu reduzieren. "
+
+#: Mailman/Gui/Privacy.py:364
+msgid "Anti-Spam filters"
+msgstr "Anti-Spam Filter"
+
+# Mailman/Gui/Privacy.py:203
+#: Mailman/Gui/Privacy.py:367
+msgid "Hold posts with header value matching a specified regexp."
+msgstr "Zurückhalten von Nachrichten in Abhängigkeit vom Headerinhalt (RegEx)."
+
+# Mailman/Gui/Privacy.py:204
+#: Mailman/Gui/Privacy.py:368
+msgid ""
+"Use this option to prohibit posts according to specific\n"
+" header values. The target value is a regular-expression for\n"
+" matching against the specified header. The match is done\n"
+" disregarding letter case. Lines beginning with '#' are "
+"ignored\n"
+" as comments.\n"
+"\n"
+" <p>For example:<pre>to: .*@public.com </pre> says to hold all\n"
+" postings with a <em>To:</em> mail header containing '@public."
+"com'\n"
+" anywhere among the addresses.\n"
+"\n"
+" <p>Note that leading whitespace is trimmed from the regexp. "
+"This\n"
+" can be circumvented in a number of ways, e.g. by escaping or\n"
+" bracketing it."
+msgstr ""
+"Verwenden Sie diese Option, um die Veröffentlichung von Nachrichten zu "
+"verhindern, deren Header bestimmte Texte enthält, die Sie in Form von "
+"regulären Ausdrücken angeben können. Die Suche ignoriert Gross-/"
+"Kleinschreibung; Zeilen, die mit einem '#' beginnen, werden als Kommentar "
+"gewertet.\n"
+" <p>Ein Beispiel: <pre>to: .*@public.com </pre> hält alle Mails zurück, "
+"deren 'To:'-Header '@public.com' irgendein enthält.\n"
+" <p>Hinweis: führende Leerzeichen und Tabs werden vom regulären Ausdruck "
+"beseitigt. Dies kann durch Entwertung, oder Klammerung der Ausdrücke "
+"umgangen werden, wo gewünscht. <p>Siehe hiezu auch die Option "
+"<em>forbidden_posters</em>. "
+
+#: Mailman/Gui/Topics.py:28
+msgid "Topics"
+msgstr "Themen"
+
+# Mailman/Gui/Topics.py:31
+#: Mailman/Gui/Topics.py:36
+msgid "List topic keywords"
+msgstr "Stichwörter auflisten"
+
+# Mailman/Gui/Topics.py:33
+#: Mailman/Gui/Topics.py:38
+msgid "Disabled"
+msgstr "Ausgeschaltet"
+
+# Mailman/Gui/Topics.py:33
+#: Mailman/Gui/Topics.py:38
+msgid "Enabled"
+msgstr "Eingeschaltet"
+
+# Mailman/Gui/Topics.py:34
+#: Mailman/Gui/Topics.py:39
+msgid "Should the topic filter be enabled or disabled?"
+msgstr "Themenfilter einschalten oder ausschalten?"
+
+# Mailman/Gui/Topics.py:36
+#: Mailman/Gui/Topics.py:41
+msgid ""
+"The topic filter categorizes each incoming email message\n"
+" according to <a\n"
+" href=\"http://www.python.org/doc/current/lib/module-re.html"
+"\">regular\n"
+" expression filters</a> you specify below. If the message's\n"
+" <code>Subject:</code> or <code>Keywords:</code> header contains "
+"a\n"
+" match against a topic filter, the message is logically placed\n"
+" into a topic <em>bucket</em>. Each user can then choose to "
+"only\n"
+" receive messages from the mailing list for a particular topic\n"
+" bucket (or buckets). Any message not categorized in a topic\n"
+" bucket registered with the user is not delivered to the list.\n"
+"\n"
+" <p>Note that this feature only works with regular delivery, "
+"not\n"
+" digest delivery.\n"
+"\n"
+" <p>The body of the message can also be optionally scanned for\n"
+" <code>Subject:</code> and <code>Keywords:</code> headers, as\n"
+" specified by the <a\n"
+" href=\"?VARHELP=topics/topics_bodylines_limit"
+"\">topics_bodylines_limit</a>\n"
+" configuration variable."
+msgstr ""
+"Der Themenfilter kategorisiert jede eingehende Emailnachricht gemäss href="
+"\"http://www.python.org/doc/current/lib/module-re.html\">Filterregeln mit "
+"regulären Ausdrücken</a>, die Sie weiter unten festlegen können. Wenn die "
+"<code>Subject:</code> oder <code>Keywords:</code> Header der Nachricht mit "
+"dem Suchthema übereinstimmen, wird die Nachricht in einem thematischen "
+"<em>'Sammelkörbchen'<em> plaziert. Jeder Benutzer hat dann die "
+"Auswahlmöglichkeit, nur noch zu bestimmten Themen Nachrichten von der "
+"Mailingliste zu erhalten. Jede nicht so katagorisierte Nachricht des "
+"Benutzers wird dann nicht mehr an die Liste gesendet.\n"
+" <p>Hinweis: Dies funktioniert nur bei normaler Nachrichtenzustellung, aber "
+"nicht mit Sammelnachrichten.\n"
+" <p>Optional kann auch der Nachrichtentext auf Vorkommen von <code>Subject:</"
+"code> und <code>Keyword:</code> Header durchsucht werden. Spezifizieren Sie "
+"hierzu die Option"
+"href=\"?VARHELP=topics/topics_bodylines_limit\">topics_bodylines_limit</a>."
+
+# Mailman/Gui/Topics.py:57
+#: Mailman/Gui/Topics.py:62
+msgid "How many body lines should the topic matcher scan?"
+msgstr "Wieviele Zeilen des Nachrichtentextes soll die Stichwortsuche prüfen?"
+
+# Mailman/Gui/Topics.py:59
+#: Mailman/Gui/Topics.py:64
+msgid ""
+"The topic matcher will scan this many lines of the message\n"
+" body looking for topic keyword matches. Body scanning stops "
+"when\n"
+" either this many lines have been looked at, or a non-header-"
+"like\n"
+" body line is encountered. By setting this value to zero, no "
+"body\n"
+" lines will be scanned (i.e. only the <code>Keywords:</code> "
+"and\n"
+" <code>Subject:</code> headers will be scanned). By setting "
+"this\n"
+" value to a negative number, then all body lines will be "
+"scanned\n"
+" until a non-header-like line is encountered.\n"
+" "
+msgstr ""
+"Die Stichwortsuche wird den Nachrichtentext auf Übereinstimmungen mit dem "
+"eingegeben Schlagwort untersuchen. Die Suche endet entweder, wenn die "
+"festgelegte Anzahl Textzeilen durchsucht wurde, oder wenn die Suche auf eine "
+"Zeile trifft, die nicht headerähnlich ist. Setzen Sie die Anzahl der "
+"Suchzeilen auf Null, wenn Sie möchten, daß nur noch die <code>Keywords:</"
+"code> und <code>Subject:</code> Header überprüft werden. Wenn Sie diesen "
+"Wert auf eine negative Zahl setzen, werden alle Zeilen durchsucht, es sei "
+"denn, die Suche trifft wieder auf eine nicht headerähnliche Zeile, was die "
+"Suche beendet. "
+
+# Mailman/Gui/Topics.py:70
+#: Mailman/Gui/Topics.py:75
+msgid "Topic keywords, one per line, to match against each message."
+msgstr "Stichwörter (eines pro Zeile), nach denen in jeder Nachricht gesucht wird."
+
+# Mailman/Gui/Topics.py:72
+#: Mailman/Gui/Topics.py:77
+msgid ""
+"Each topic keyword is actually a regular expression, which is\n"
+" matched against certain parts of a mail message, specifically "
+"the\n"
+" <code>Keywords:</code> and <code>Subject:</code> message "
+"headers.\n"
+" Note that the first few lines of the body of the message can "
+"also\n"
+" contain a <code>Keywords:</code> and <code>Subject:</code>\n"
+" \"header\" on which matching is also performed."
+msgstr ""
+"Jedes Stichwort wird als regulärer Ausdruck zur Suche innerhalb bestimmter "
+"Teile einer Mailnachricht benutzt - den sogenannten <code>Keywords:</code> "
+"und <code>Subject:</code> Headern. Bedenken Sie, das die ersten Zeilen des "
+"Nachrichtentextes auch einen <code>Keywords:</code>, oder <code>Subject:</"
+"code> Header enthalten können, der dann auch durchsucht wird."
+
+#: Mailman/Gui/Topics.py:116
+msgid ""
+"Topic specifications require both a name and\n"
+" a pattern. Incomplete topics will be ignored."
+msgstr ""
+
+#: Mailman/Gui/Topics.py:124
+msgid ""
+"The topic pattern `%(pattern)s' is not a\n"
+" legal regular expression. It will be discarded."
+msgstr ""
+
+# Mailman/Gui/Usenet.py:24
+#: Mailman/Gui/Usenet.py:25
+msgid "Mail&lt;-&gt;News&nbsp;gateways"
+msgstr "Mail&lt;-&gt;News&nbsp;Schnittstelle"
+
+# Mailman/Gui/Usenet.py:30
+#: Mailman/Gui/Usenet.py:35
+msgid "Mail-to-News and News-to-Mail gateway services."
+msgstr "Mail-nach-News und News-nach-Mail Transportservice"
+
+#: Mailman/Gui/Usenet.py:37
+msgid "News server settings"
+msgstr "Einstellungen zum News-Server"
+
+# Mailman/Gui/Usenet.py:33
+#: Mailman/Gui/Usenet.py:40
+msgid ""
+"The Internet address of the machine your News server is\n"
+" running on."
+msgstr "Die Internetadresse der Maschine, auf der der News-Server läuft."
+
+# Mailman/Gui/Usenet.py:35
+#: Mailman/Gui/Usenet.py:42
+msgid ""
+"The News server is not part of Mailman proper. You have to\n"
+" already have access to a NNTP server, and that NNTP server has "
+"to\n"
+" recognize the machine this mailing list runs on as a machine\n"
+" capable of reading and posting news."
+msgstr ""
+"Der Newsserver ist kein Bestandteil von Mailman. Sie benötigen einen "
+"bestehenden Zugang zu einem NNTP-Server, der darüber hinaus in der Lage sein "
+"muss, mit der Maschine auf der die Mailingliste läuft, News auszutauschen."
+
+# Mailman/Gui/Usenet.py:41
+#: Mailman/Gui/Usenet.py:48
+msgid "The name of the Usenet group to gateway to and/or from."
+msgstr "Der Name der Usenet-Gruppe, an/von der weitergereicht werden soll."
+
+# Mailman/Gui/Usenet.py:44
+#: Mailman/Gui/Usenet.py:51
+msgid ""
+"Should new posts to the mailing list be sent to the\n"
+" newsgroup?"
+msgstr ""
+"Sollen neue Nachrichten für die Mailingliste auch an die Newsgroup gesendet "
+"werden?"
+
+# Mailman/Gui/Usenet.py:48
+#: Mailman/Gui/Usenet.py:55
+msgid ""
+"Should new posts to the newsgroup be sent to the mailing\n"
+" list?"
+msgstr ""
+"Sollen neue Nachrichten für die Newsgroup auch an die Mailingliste gesendet "
+"werden?"
+
+# Mailman/Gui/Archive.py:24
+#: Mailman/Gui/Usenet.py:58
+msgid "Forwarding options"
+msgstr "Weiterleitungsoptionen"
+
+# Mailman/Cgi/Auth.py:46
+#: Mailman/Gui/Usenet.py:61
+msgid "Moderated"
+msgstr "Moderiert"
+
+#: Mailman/Gui/Usenet.py:61
+msgid "Open list, moderated group"
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:64
+msgid "The moderation policy of the newsgroup."
+msgstr "Die Moderationsregeln der Newsgruppe"
+
+#: Mailman/Gui/Usenet.py:66
+msgid ""
+"This setting determines the moderation policy of the\n"
+" newsgroup and its interaction with the moderation policy of "
+"the\n"
+" mailing list. This only applies to the newsgroup that you are\n"
+" gatewaying <em>to</em>, so if you are only gatewaying from\n"
+" Usenet, or the newsgroup you are gatewaying to is not "
+"moderated,\n"
+" set this option to <em>None</em>.\n"
+"\n"
+" <p>If the newsgroup is moderated, you can set this mailing "
+"list\n"
+" up to be the moderation address for the newsgroup. By "
+"selecting\n"
+" <em>Moderated</em>, an additional posting hold will be placed "
+"in\n"
+" the approval process. All messages posted to the mailing list\n"
+" will have to be approved before being sent on to the "
+"newsgroup,\n"
+" or to the mailing list membership.\n"
+"\n"
+" <p><em>Note that if the message has an <tt>Approved</tt> "
+"header\n"
+" with the list's administrative password in it, this hold test\n"
+" will be bypassed, allowing privileged posters to send messages\n"
+" directly to the list and the newsgroup.</em>\n"
+"\n"
+" <p>Finally, if the newsgroup is moderated, but you want to "
+"have\n"
+" an open posting policy anyway, you should select <em>Open "
+"list,\n"
+" moderated group</em>. The effect of this is to use the normal\n"
+" Mailman moderation facilities, but to add an <tt>Approved</tt>\n"
+" header to all messages that are gatewayed to Usenet."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:92
+msgid "Prefix <tt>Subject:</tt> headers on postings gated to news?"
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:93
+msgid ""
+"Mailman prefixes <tt>Subject:</tt> headers with\n"
+" <a href=\"?VARHELP=general/subject_prefix\">text you can\n"
+" customize</a> and normally, this prefix shows up in messages\n"
+" gatewayed to Usenet. You can set this option to <em>No</em> "
+"to\n"
+" disable the prefix on gated messages. Of course, if you turn "
+"off\n"
+" normal <tt>Subject:</tt> prefixes, they won't be prefixed for\n"
+" gated messages either."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:101
+msgid "Mass catch up"
+msgstr ""
+
+# Mailman/Gui/Usenet.py:52
+#: Mailman/Gui/Usenet.py:104
+msgid "Should Mailman perform a <em>catchup</em> on the newsgroup?"
+msgstr "Soll Mailman die Newsgroup <em>einholen<em>?"
+
+# Mailman/Gui/Usenet.py:53
+#: Mailman/Gui/Usenet.py:105
+msgid ""
+"When you tell Mailman to perform a catchup on the newsgroup,\n"
+" this means that you want to start gating messages to the "
+"mailing\n"
+" list with the next new message found. All earlier messages on\n"
+" the newsgroup will be ignored. This is as if you were reading\n"
+" the newsgroup yourself, and you marked all current messages as\n"
+" <em>read</em>. By catching up, your mailing list members will\n"
+" not see any of the earlier messages."
+msgstr ""
+"Wenn Sie Mailman anweisen, eine Newsgroup einzuholen, bedeutet das, dass "
+"Mailman - beginnend mit der ersten neuen Nachricht - die News an die "
+"Mailingliste durchreichen soll. Alle älteren News der Newsgroup werden "
+"ignoriert. Das funktioniert so, als ob Sie die News selbst lesen würden und "
+"alle aktuellen Meldungen als <em>read</em> markiert hätten. Durch das "
+"Einholen bekommen Ihre Mailinglistenmitglieder keine der älteren Nahcrichten "
+"zu Gesicht."
+
+#: Mailman/Gui/Usenet.py:119
+msgid "Mass catchup completed"
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:131
+msgid ""
+"You cannot enable gatewaying unless both the\n"
+" <a href=\"?VARHELP=gateway/nntp_host\">news server field</a> "
+"and\n"
+" the <a href=\"?VARHELP=gateway/linked_newsgroup\">linked\n"
+" newsgroup</a> fields are filled in."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:47
+msgid "%(listinfo_link)s list run by %(owner_link)s"
+msgstr "Die Mailingliste %(listinfo_link)s wird betrieben von %(owner_link)s"
+
+# Mailman/HTMLFormatter.py:55
+#: Mailman/HTMLFormatter.py:55
+msgid "%(realname)s administrative interface"
+msgstr "%(realname)s Schnittstelle zur Administration"
+
+# Mailman/HTMLFormatter.py:56
+#: Mailman/HTMLFormatter.py:56
+msgid " (requires authorization)"
+msgstr " (Authentifikation erforderlich)"
+
+# Mailman/HTMLFormatter.py:59
+#: Mailman/HTMLFormatter.py:59
+msgid "Overview of all %(hostname)s mailing lists"
+msgstr "Übersicht aller Mailinglisten auf %(hostname)s"
+
+#: Mailman/HTMLFormatter.py:80
+msgid "<em>(1 private member not shown)</em>"
+msgstr "<em>(1 privates Mitglied wird nicht angezeigt)</em>"
+
+#: Mailman/HTMLFormatter.py:82
+msgid "<em>(%(num_concealed)d private members not shown)</em>"
+msgstr "<em>(%(num_concealed)d private Mitglieder werden nicht angezeigt)</em>"
+
+#: Mailman/HTMLFormatter.py:137
+msgid "; it was disabled by you"
+msgstr "; es wurde von Ihnen deaktiviert"
+
+# Mailman/HTMLFormatter.py:137 Mailman/HTMLFormatter.py:267
+#: Mailman/HTMLFormatter.py:139
+msgid "; it was disabled by the list administrator"
+msgstr "; es wurde vom Listen-Administrator deaktiviert"
+
+#: Mailman/HTMLFormatter.py:143
+msgid ""
+"; it was disabled due to excessive bounces. The\n"
+" last bounce was received on %(date)s"
+msgstr ""
+"; es wurde wegen andauernder Unzustellbarkeit deaktiviert.\n"
+"Die letzte Mail war am %(date)s unzustellbar."
+
+#: Mailman/HTMLFormatter.py:146
+msgid "; it was disabled for unknown reasons"
+msgstr "; es wurde aus unbekannten Gründen deaktiviert"
+
+# Mailman/HTMLFormatter.py:133
+#: Mailman/HTMLFormatter.py:148
+msgid "Note: your list delivery is currently disabled%(reason)s."
+msgstr "Hinweis: die Zustellung von Nachrichten ist momentan abgeschaltet%(reason)s."
+
+# Mailman/HTMLFormatter.py:135
+#: Mailman/HTMLFormatter.py:151
+msgid "Mail delivery"
+msgstr "Mailzustellung"
+
+# Mailman/HTMLFormatter.py:137 Mailman/HTMLFormatter.py:267
+#: Mailman/HTMLFormatter.py:153 Mailman/HTMLFormatter.py:298
+msgid "the list administrator"
+msgstr "der Administrator der Liste"
+
+# Mailman/HTMLFormatter.py:138
+#: Mailman/HTMLFormatter.py:154
+msgid ""
+"<p>%(note)s\n"
+"\n"
+" <p>You may have disabled list delivery intentionally,\n"
+" or it may have been triggered by bounces from your email\n"
+" address. In either case, to re-enable delivery, change the\n"
+" %(link)s option below. Contact %(mailto)s if you have any\n"
+" questions or need assistance."
+msgstr ""
+"<p>%(note)s\n"
+" <p>Sie haben womöglich absichlich den Mailversand abgeschaltet, oder dies "
+"wurde durch Bounces Ihrer Emailadresse ausgelöst. Um die Zustellung von "
+"Nachrichten wieder einzuschalten, benutzen Sie die %(link)s Option unten. "
+"Sollten Sie Hilfe benötigen oder Fragen haben, setzen Sie sich bitte mit %"
+"(mailto)s in Verbindung."
+
+#: Mailman/HTMLFormatter.py:166
+msgid ""
+"<p>We have received some recent bounces from your\n"
+" address. Your current <em>bounce score</em> is %(score)s out of "
+"a\n"
+" maximum of %(total)s. Please double check that your subscribed\n"
+" address is correct and that there are no problems with delivery "
+"to\n"
+" this address. Your bounce score will be automatically reset if\n"
+" the problems are corrected soon."
+msgstr ""
+"<p>Wir haben mehrere Bounces von Ihrer Mailadresse bekommen, d.h.\n"
+"Mails an Ihre Adresse waren mehrmals unzustellbar. Ihr aktueller\n"
+"<em>Bounce-Wert</em> ist %(score)s von %(total)s.\n"
+"Bitte prüfen Sie, ob die eingetragene Mailadresse wirklich korrekt ist und\n"
+"es keine Zustellprobleme (z.B. überfüllte Postfächer o.ä.) gibt.\n"
+"Der Bounce-Wert wird automatisch auf Null zurückgesetzt, wenn die Probleme\n"
+"behoben sind und nicht mehr auftreten. "
+
+# Mailman/HTMLFormatter.py:151
+#: Mailman/HTMLFormatter.py:178
+msgid ""
+"(Note - you are subscribing to a list of mailing lists, so the %(type)s "
+"notice will be sent to the admin address for your membership, %(addr)s.)<p>"
+msgstr ""
+"(Hinweis - Sie sind im Begriff, eine Liste von Listen zu abonnieren,weshalb "
+"der %(type)s-Hinweis an die Adminadresse Ihrer Mitgliedschaft,%(addr)s., "
+"gesendet wird.)<p>"
+
+# Mailman/HTMLFormatter.py:161
+#: Mailman/HTMLFormatter.py:188
+msgid ""
+"You will be sent email requesting confirmation, to\n"
+" prevent others from gratuitously subscribing you."
+msgstr ""
+"In Kürze erhalten Sie eine Bestätigungs-Email, um sicherzustellen, dass es "
+"wirklich Sie sind, der abonnieren moechte."
+
+# Mailman/HTMLFormatter.py:164
+#: Mailman/HTMLFormatter.py:191
+msgid ""
+"This is a closed list, which means your subscription\n"
+" will be held for approval. You will be notified of the list\n"
+" moderator's decision by email."
+msgstr ""
+"Dies ist eine geschlossene Mailingliste, d.h. Ihr Antrag auf Abonnement der "
+"Liste muss erst vom Moderator bestätigt werden. Sie erhalten die "
+"Entscheidung des Moderators per Email."
+
+# Mailman/HTMLFormatter.py:167 Mailman/HTMLFormatter.py:174
+#: Mailman/HTMLFormatter.py:194 Mailman/HTMLFormatter.py:201
+msgid "also "
+msgstr "auch"
+
+# Mailman/HTMLFormatter.py:169
+#: Mailman/HTMLFormatter.py:196
+msgid ""
+"You will be sent email requesting confirmation, to\n"
+" prevent others from gratuitously subscribing you. Once\n"
+" confirmation is received, your request will be held for "
+"approval\n"
+" by the list moderator. You will be notified of the moderator's\n"
+" decision by email."
+msgstr ""
+"In Kürze erhalten Sie eine Bestätigungs-Email, um sicherzustellen, dass es "
+"wirklich Sie sind, der abonnieren moechte. Nach Eingang Ihrer Bestätigung "
+"wird diese dem Moderator der Liste zur Zulassung - oder Ablehnung - "
+"vorgelegt. Sie erhalten die Entscheidung des Moderators per Email."
+
+# Mailman/HTMLFormatter.py:176
+#: Mailman/HTMLFormatter.py:205
+msgid ""
+"This is %(also)sa private list, which means that the\n"
+" list of members is not available to non-members."
+msgstr ""
+"Dies ist %(also)s eine private Mailingliste, d.h. die\n"
+"Abonnementenliste kann von Nichtmitgliedern nicht eingesehen werden."
+
+# Mailman/HTMLFormatter.py:179
+#: Mailman/HTMLFormatter.py:208
+msgid ""
+"This is %(also)sa hidden list, which means that the\n"
+" list of members is available only to the list administrator."
+msgstr ""
+"Dies ist %(also)s eine versteckte Mailingliste, d.h. die\n"
+"Abonnementenliste kann nur vom Administrator der Liste eingesehen werden."
+
+# Mailman/HTMLFormatter.py:182
+#: Mailman/HTMLFormatter.py:211
+msgid ""
+"This is %(also)sa public list, which means that the\n"
+" list of members list is available to everyone."
+msgstr ""
+"Dies ist %(also)s eine öffentliche Mailingliste, d.h. die Abonnementenliste "
+"kann von jedermann eingesehen werden."
+
+# Mailman/HTMLFormatter.py:185
+#: Mailman/HTMLFormatter.py:214
+msgid ""
+" (but we obscure the addresses so they are not\n"
+" easily recognizable by spammers)."
+msgstr ""
+" (wir verdunkeln die Adressen, damit sie nicht so leicht von Spammern zu "
+"erkennen sind)."
+
+# Mailman/HTMLFormatter.py:190
+#: Mailman/HTMLFormatter.py:219
+msgid ""
+"<p>(Note that this is an umbrella list, intended to\n"
+" have only other mailing lists as members. Among other things,\n"
+" this means that your confirmation request will be sent to the\n"
+" `%(sfx)s' account for your address.)"
+msgstr ""
+"<p>(Beachten Sie, das diese Liste nur den Regenschirm spielt; sie enthält "
+"nur andere Listen als Mitglieder. Unter anderem bedeutet dies, dass Ihre "
+"Bestätigungsanforderung an das `%(sfx)s' Konto Ihrer Adresse gesendet wird.)"
+
+# Mailman/HTMLFormatter.py:219
+#: Mailman/HTMLFormatter.py:248
+msgid "<b><i>either</i></b> "
+msgstr "<b><i>entweder</i></b>"
+
+# Mailman/HTMLFormatter.py:224
+#: Mailman/HTMLFormatter.py:253
+msgid ""
+"To unsubscribe from %(realname)s, get a password reminder,\n"
+" or change your subscription options %(either)senter your "
+"subscription\n"
+" email address:\n"
+" <p><center> "
+msgstr ""
+"Um das Abonnement von %(realname)s abzubestellen, eine Passwort-Erinnerung "
+"zu erhalten, oder die Abo - Einstellungen zu ändern, geben Sie %(either)s "
+"Ihre Emailadresse: <p><center> "
+
+# Mailman/HTMLFormatter.py:231
+#: Mailman/HTMLFormatter.py:260
+msgid "Unsubscribe or edit options"
+msgstr "Abonnement abbestellen oder Einstellungen editieren"
+
+# Mailman/HTMLFormatter.py:234
+#: Mailman/HTMLFormatter.py:264
+msgid ""
+"<p>... <b><i>or</i></b> select your entry from\n"
+" the subscribers list (see above)."
+msgstr ""
+"<p>... <b><i>or</i></b> wählen Sie Ihren Eintrag aus der Abonnentenliste "
+"(siehe oben)."
+
+# Mailman/HTMLFormatter.py:236
+#: Mailman/HTMLFormatter.py:266
+msgid ""
+" If you leave the field blank, you will be prompted for\n"
+" your email address"
+msgstr "Wenn Sie dieses Feld leer lassen, werden Sie nach Ihrer Emailadresse gefragt"
+
+# Mailman/HTMLFormatter.py:244
+#: Mailman/HTMLFormatter.py:274
+msgid ""
+"(<i>%(which)s is only available to the list\n"
+" members.</i>)"
+msgstr "(<i>%(which)s ist alleine für die Abonnementen der Liste bestimmt.</i>)"
+
+# Mailman/HTMLFormatter.py:248
+#: Mailman/HTMLFormatter.py:278
+msgid ""
+"(<i>%(which)s is only available to the list\n"
+" administrator.</i>)"
+msgstr "(<i>%(which)s ist alleine für den Administrator der Liste bestimmt.</i>)"
+
+# Mailman/HTMLFormatter.py:257
+#: Mailman/HTMLFormatter.py:288
+msgid "Click here for the list of "
+msgstr "Hier gibt's die Liste der"
+
+# Mailman/HTMLFormatter.py:259
+#: Mailman/HTMLFormatter.py:290
+msgid " subscribers: "
+msgstr " Abonnementen: "
+
+# Mailman/HTMLFormatter.py:261
+#: Mailman/HTMLFormatter.py:292
+msgid "Visit Subscriber list"
+msgstr "Abonnementenliste anschauen"
+
+# Mailman/HTMLFormatter.py:264
+#: Mailman/HTMLFormatter.py:295
+msgid "members"
+msgstr "Mitglieder"
+
+# Mailman/HTMLFormatter.py:265
+#: Mailman/HTMLFormatter.py:296
+msgid "Address:"
+msgstr "Adresse:"
+
+# Mailman/HTMLFormatter.py:268
+#: Mailman/HTMLFormatter.py:299
+msgid "Admin address:"
+msgstr "Administratoradresse:"
+
+# Mailman/HTMLFormatter.py:270
+#: Mailman/HTMLFormatter.py:302
+msgid "The subscribers list"
+msgstr "Die Abonnementenliste"
+
+# Mailman/HTMLFormatter.py:272
+#: Mailman/HTMLFormatter.py:304
+msgid " <p>Enter your "
+msgstr " <p>Geben Sie Ihren "
+
+# Mailman/HTMLFormatter.py:274
+#: Mailman/HTMLFormatter.py:306
+msgid " and password to visit the subscribers list: <p><center> "
+msgstr " und Ihr Passwort ein, um die Abonnementenliste zu sehen: <p><center> "
+
+# Mailman/HTMLFormatter.py:279
+#: Mailman/HTMLFormatter.py:311
+msgid "Password: "
+msgstr "Passwort: "
+
+# Mailman/HTMLFormatter.py:283
+#: Mailman/HTMLFormatter.py:315
+msgid "Visit Subscriber List"
+msgstr "Abonnementenliste anschauen"
+
+# Mailman/HTMLFormatter.py:313
+#: Mailman/HTMLFormatter.py:345
+msgid "Once a month, your password will be emailed to you as a reminder."
+msgstr "Zur Erinnerung wird Ihnen einmal monatlich Ihr Passwort gemailt."
+
+# Mailman/HTMLFormatter.py:358
+#: Mailman/HTMLFormatter.py:391
+msgid "The current archive"
+msgstr "Das aktuelle Archiv"
+
+# Mailman/Handlers/Acknowledge.py:62
+#: Mailman/Handlers/Acknowledge.py:59
+msgid "%(realname)s post acknowledgement"
+msgstr "%(realname)s Veröffentlichung bestätigt"
+
+#: Mailman/Handlers/CalcRecips.py:68
+msgid ""
+"Your urgent message to the %(realname)s mailing list was not authorized for\n"
+"delivery. The original message as received by Mailman is attached.\n"
+msgstr ""
+"Ihre dringende Nachricht an die %(realname)s Mailingliste konnte nicht\n"
+"zugestellt werden, da die erforderliche Authorisierung fehlt.\n"
+"Im Anhang beigefügt finden Sie die Originalnachricht, die Sie an Mailman\n"
+"gesendet hatten.\n"
+
+#: Mailman/Handlers/Emergency.py:29
+msgid "Emergency hold on all list traffic is in effect"
+msgstr "Not-Moderation für alle Nachrichten ist aktiviert"
+
+# Mailman/Handlers/Hold.py:57
+#: Mailman/Handlers/Emergency.py:30 Mailman/Handlers/Hold.py:58
+msgid "Your message was deemed inappropriate by the moderator."
+msgstr "Ihre Nachricht wurde vom Moderator als unangebracht erachtet."
+
+#: Mailman/Handlers/Hold.py:53
+msgid "Sender is explicitly forbidden"
+msgstr "Absender ist ausdrücklich unerwünscht."
+
+# Mailman/Handlers/Hold.py:53
+#: Mailman/Handlers/Hold.py:54
+msgid "You are forbidden from posting messages to this list."
+msgstr ""
+"Es ist Ihnen nicht gestattet, Nachrichten auf dieser Liste zu "
+"veröffentlichen."
+
+#: Mailman/Handlers/Hold.py:57
+msgid "Post to moderated list"
+msgstr "An moderierte Liste gesendet"
+
+#: Mailman/Handlers/Hold.py:61
+msgid "Post by non-member to a members-only list"
+msgstr ""
+"Absender ist nicht Mitglied der Liste -- E-Mails an die Liste aber nur für "
+"Mitglieder erlaubt! "
+
+# Mailman/Handlers/Hold.py:61
+#: Mailman/Handlers/Hold.py:62
+msgid "Non-members are not allowed to post messages to this list."
+msgstr ""
+"Nichtmitgliedern ist es nicht gestattet, Nachrichten auf dieser Liste zu\n"
+"veröffentlichen."
+
+#: Mailman/Handlers/Hold.py:65
+msgid "Posting to a restricted list by sender requires approval"
+msgstr ""
+"Das Veröffentlichen auf einer Liste mit eingeschränkten Zugriffsrechten\n"
+"ist nur mit zuvor eingeholter Bestätigung erlaubt."
+
+# Mailman/Handlers/Hold.py:65
+#: Mailman/Handlers/Hold.py:66
+msgid "This list is restricted; your message was not approved."
+msgstr ""
+"Diese Liste unterliegt Einschränkungen. Ihre Nachricht wurde nicht\n"
+"zur Veröffentlichung zugelassen."
+
+#: Mailman/Handlers/Hold.py:69
+msgid "Too many recipients to the message"
+msgstr "Die Anzahl der Empfänger dieser Nachricht ist zu hoch."
+
+# Mailman/Handlers/Hold.py:69
+#: Mailman/Handlers/Hold.py:70
+msgid "Please trim the recipient list; it is too long."
+msgstr "Die Anzahl der Empfänger ist zu hoch. Bitte verringern Sie sie."
+
+#: Mailman/Handlers/Hold.py:73
+msgid "Message has implicit destination"
+msgstr "Nachricht enthält eine weitere Zieladresse"
+
+# Mailman/Handlers/Hold.py:73
+#: Mailman/Handlers/Hold.py:74
+msgid ""
+"Blind carbon copies or other implicit destinations are\n"
+"not allowed. Try reposting your message by explicitly including the list\n"
+"address in the To: or Cc: fields."
+msgstr ""
+"Verborgene Durchschläge ('BCC:'), oder weitere enthaltene Zieladressen,\n"
+"sind nicht erlaubt. Tragen Sie die Adresse der Mailinmgliste in das 'An:'-\n"
+"oder 'Cc:'-Adressfeld ein und senden Sie Ihre Nachricht bitte noch einmal."
+
+#: Mailman/Handlers/Hold.py:79
+msgid "Message may contain administrivia"
+msgstr "Nachricht kann Administrativa enthalten"
+
+# Mailman/Handlers/Hold.py:83
+#: Mailman/Handlers/Hold.py:84
+msgid ""
+"Please do *not* post administrative requests to the mailing\n"
+"list. If you wish to subscribe, visit %(listurl)s or send a message with "
+"the\n"
+"word `help' in it to the request address, %(request)s, for further\n"
+"instructions."
+msgstr ""
+"Bitte senden Sie *keine* Administrationsanforderungen an die Mailingliste.\n"
+"Wenn Sie eine Liste abonnieren möchten, schauen Sie einmal auf %(listurl)s\n"
+"vorbei, oder senden Sie eine Nachricht mit dem Wörtchen `help' darin an die\n"
+"Administrationsadresse, %(request)s, um an weitere Informationen zu\n"
+"gelangen."
+
+#: Mailman/Handlers/Hold.py:90
+msgid "Message has a suspicious header"
+msgstr "Nachricht enthält einen verdächtigen Header"
+
+# Mailman/Handlers/Hold.py:90
+#: Mailman/Handlers/Hold.py:91
+msgid "Your message had a suspicious header."
+msgstr "Ihre Nachricht enthält einen verdächtigen Header."
+
+#: Mailman/Handlers/Hold.py:101
+msgid ""
+"Message body is too big: %(size)d bytes with a limit of\n"
+"%(limit)d KB"
+msgstr ""
+"Der Textteil Ihrer Nachricht war mit %(size)d Bytes zu umfangreich.\n"
+"Die maximal zulässige Größe beträgt %(limit)d KB."
+
+#: Mailman/Handlers/Hold.py:106
+msgid ""
+"Your message was too big; please trim it to less than\n"
+"%(kb)d KB in size."
+msgstr ""
+"Ihre Nachricht war zu umfangreich. Die maximal zulässige Größe beträgt %(kb)"
+"d KB."
+
+#: Mailman/Handlers/Hold.py:110
+msgid "Posting to a moderated newsgroup"
+msgstr "An moderierte Liste senden"
+
+# Mailman/Handlers/Hold.py:258
+#: Mailman/Handlers/Hold.py:233
+msgid "Your message to %(listname)s awaits moderator approval"
+msgstr "Ihre Nachricht an %(listname)s wartet auf Bestätigung des Moderators"
+
+# Mailman/Handlers/Hold.py:279
+#: Mailman/Handlers/Hold.py:253
+msgid "%(listname)s post from %(sender)s requires approval"
+msgstr "%(listname)s Veröffentlichung von %(sender)s erfordert Bestätigung"
+
+#: Mailman/Handlers/Hold.py:260
+msgid ""
+"If you reply to this message, keeping the Subject: header intact, Mailman "
+"will\n"
+"discard the held message. Do this if the message is spam. If you reply to\n"
+"this message and include an Approved: header with the list password in it, "
+"the\n"
+"message will be approved for posting to the list. The Approved: header can\n"
+"also appear in the first line of the body of the reply."
+msgstr ""
+"Wenn Sie auf diese Nachricht anworten und die Betreffzeile unberührt "
+"lassen,\n"
+"wird Mailman die zurückgehaltene Nachricht löschen. Machen Sie davon bei\n"
+"unerwünschtem 'Spam' Gebrauch.\n"
+"Fügen Sie statt dessen beim Beanworten dieser Nachricht einen\n"
+"'Approved:'-Header ein, der das Passwort der Mailingliste enthält, wird die\n"
+"Nachricht zur Veröffentlichung auf der Liste zugelassen.\n"
+"Die 'Approved:'-Zeile darf auch als erste Zeile des Nachrichtentextes\n"
+"erscheinen."
+
+#: Mailman/Handlers/MimeDel.py:56
+msgid "The message's content type was explicitly disallowed"
+msgstr "Der Inhalt der Nachricht wurde ausdrücklich geblocked."
+
+#: Mailman/Handlers/MimeDel.py:61
+msgid "The message's content type was not explicitly allowed"
+msgstr "Der Inhalt der Nachricht wurde ausdrücklich geblocked."
+
+#: Mailman/Handlers/MimeDel.py:73
+msgid "After content filtering, the message was empty"
+msgstr "Nach dem Filtern der Mail blieb kein Inhalt mehr übrig..."
+
+#: Mailman/Handlers/MimeDel.py:208
+msgid ""
+"The attached message matched the %(listname)s mailing list's content "
+"filtering\n"
+"rules and was prevented from being forwarded on to the list membership. "
+"You\n"
+"are receiving the only remaining copy of the discarded message.\n"
+"\n"
+msgstr ""
+"Die angehängte Nachricht blieb im Filter der Mailingliste %(listname)s "
+"hängen. Sie wurde nicht an die Teilnehmer weiterverteilt und auf dem Server "
+"gelöscht.\n"
+"Sie erhalten hiermit die einzige noch verbleibende Kopie der e-Mail! \n"
+
+#: Mailman/Handlers/MimeDel.py:214
+msgid "Content filtered message notification"
+msgstr "Benachrichtigung über gefilterte e-Mail"
+
+#: Mailman/Handlers/Moderate.py:138
+msgid ""
+"You are not allowed to post to this mailing list, and your message has been\n"
+"automatically rejected. If you think that your messages are being rejected "
+"in\n"
+"error, contact the mailing list owner at %(listowner)s."
+msgstr ""
+"Es ist Ihnen nicht gestattet, Nachrichten auf dieser Mailingliste zu\n"
+"veröffentlichen. Ihre e-Mail wurden deshalb automatisch abgewiesen. Sollten "
+"Sie\n"
+"der Meinung sein, dass diese Zurückweisung auf einem Fehler beruht, setzen\n"
+"Sie sich bitte mit dem Eigentümer der Mailingliste, %(listowner)s, in\n"
+"Verbindung."
+
+#: Mailman/Handlers/Moderate.py:153
+msgid "Auto-discard notification"
+msgstr "Benachrichtigung über das automatische Verwerfen"
+
+#: Mailman/Handlers/Moderate.py:156
+msgid "The attached message has been automatically discarded."
+msgstr "Die angehängte Nachricht wurde automatisch verworfen."
+
+# Mailman/Handlers/Replybot.py:66
+#: Mailman/Handlers/Replybot.py:74
+msgid "Auto-response for your message to "
+msgstr "Automatische Beantwortung Ihrer Nachricht an "
+
+# Mailman/Handlers/Replybot.py:67
+#: Mailman/Handlers/Replybot.py:75
+msgid "the \"%(realname)s\" mailing list"
+msgstr "Die \"%(realname)s\" Mailingliste"
+
+# Mailman/Handlers/Replybot.py:94
+#: Mailman/Handlers/Replybot.py:107
+msgid "The Mailman Replybot"
+msgstr "Der Mailman ReplyBot"
+
+#: Mailman/Handlers/Scrubber.py:148
+msgid "HTML attachment scrubbed and removed"
+msgstr "Ein Dateianhang mit HTML-Daten wurde geschreddert und entfernt"
+
+#: Mailman/Handlers/Scrubber.py:162 Mailman/Handlers/Scrubber.py:188
+msgid ""
+"An HTML attachment was scrubbed...\n"
+"URL: %(url)s\n"
+msgstr ""
+"Ein Dateianhang mit HTML-Daten wurde geschreddert...\n"
+"URL: %(url)s\n"
+
+# Mailman/Handlers/CalcRecips.py:37 Mailman/Handlers/CookHeaders.py:55
+# Mailman/Handlers/Hold.py:240 Mailman/Handlers/Hold.py:274
+# Mailman/Handlers/ToDigest.py:213 Mailman/ListAdmin.py:202
+#: Mailman/Handlers/Scrubber.py:201
+msgid "no subject"
+msgstr "kein Betreff"
+
+#: Mailman/Handlers/Scrubber.py:202
+msgid "no date"
+msgstr "kein Datum"
+
+#: Mailman/Handlers/Scrubber.py:203
+msgid "unknown sender"
+msgstr "unbekannter Sender"
+
+#: Mailman/Handlers/Scrubber.py:205
+msgid ""
+"An embedded message was scrubbed...\n"
+"From: %(who)s\n"
+"Subject: %(subject)s\n"
+"Date: %(date)s\n"
+"Size: %(size)s\n"
+"Url: %(url)s\n"
+msgstr ""
+"Ein Dateianhang mit Binärdaten wurde geschreddert...\n"
+"Von: %(who)s\n"
+"Betreff: %(subject)s\n"
+"Datum: %(date)s\n"
+"Größe: %(size)s\n"
+"URL: %(url)s\n"
+
+#: Mailman/Handlers/Scrubber.py:228
+msgid ""
+"A non-text attachment was scrubbed...\n"
+"Name: %(filename)s\n"
+"Type: %(ctype)s\n"
+"Size: %(size)d bytes\n"
+"Desc: %(desc)s\n"
+"Url : %(url)s\n"
+msgstr ""
+"Ein Dateianhang mit Binärdaten wurde geschreddert...\n"
+"Dateiname : %(filename)s\n"
+"Dateityp : %(ctype)s\n"
+"Dateigröße : %(size)d bytes\n"
+"Beschreibung: %(desc)s\n"
+"URL : %(url)s\n"
+
+#: Mailman/Handlers/Scrubber.py:258
+msgid "Skipped content of type %(partctype)s"
+msgstr "Übersprungener Inhalt vom Typ %(partctype)s"
+
+#: Mailman/Handlers/Scrubber.py:275
+msgid "-------------- next part --------------\n"
+msgstr "-------------- nächster Teil --------------\n"
+
+# Mailman/Handlers/ToDigest.py:148
+#: Mailman/Handlers/ToDigest.py:141
+msgid "%(realname)s Digest, Vol %(volume)d, Issue %(issue)d"
+msgstr "%(realname)s Nachrichtensammlung, Band %(volume)d, Eintrag %(issue)d"
+
+# Mailman/Handlers/ToDigest.py:186
+#: Mailman/Handlers/ToDigest.py:181
+msgid "digest header"
+msgstr "Kopfzeile der Nachrichtensammlung"
+
+# Mailman/Handlers/ToDigest.py:189
+#: Mailman/Handlers/ToDigest.py:184
+msgid "Digest Header"
+msgstr "Kopfzeile der Nachrichtensammlung"
+
+# Mailman/Handlers/ToDigest.py:202
+#: Mailman/Handlers/ToDigest.py:197
+msgid "Today's Topics:\n"
+msgstr "Meldungen des Tages:\n"
+
+# Mailman/Handlers/ToDigest.py:269
+#: Mailman/Handlers/ToDigest.py:267
+msgid "Today's Topics (%(msgcount)d messages)"
+msgstr "Meldungen des Tages (%(msgcount)d messages)"
+
+# Mailman/Handlers/ToDigest.py:295
+#: Mailman/Handlers/ToDigest.py:292
+msgid "digest footer"
+msgstr "Fusszeile der Nachrichtensammlung"
+
+# Mailman/Handlers/ToDigest.py:298
+#: Mailman/Handlers/ToDigest.py:295
+msgid "Digest Footer"
+msgstr "Fusszeile der Nachrichtensammlung"
+
+# Mailman/Handlers/ToDigest.py:312
+#: Mailman/Handlers/ToDigest.py:309
+msgid "End of "
+msgstr "Ende "
+
+# Mailman/ListAdmin.py:257
+#: Mailman/ListAdmin.py:307
+msgid "Posting of your message titled \"%(subject)s\""
+msgstr "Veröffentlichung Ihrer Nachricht betreffend \"%(subject)s\""
+
+#: Mailman/ListAdmin.py:346
+msgid "Forward of moderated message"
+msgstr "Weiterleitung der moderierten Nachricht "
+
+# Mailman/ListAdmin.py:344
+#: Mailman/ListAdmin.py:405
+msgid "New subscription request to list %(realname)s from %(addr)s"
+msgstr "Neuer Listen-Abonnementantrag fÜr Liste %(realname)s von %(addr)s"
+
+# Mailman/ListAdmin.py:367
+#: Mailman/ListAdmin.py:428
+msgid "Subscription request"
+msgstr "Listen-Abonnementantrag"
+
+# Mailman/Cgi/confirm.py:345
+#: Mailman/ListAdmin.py:458
+msgid "New unsubscription request from %(realname)s by %(addr)s"
+msgstr "Neuer Listenabbestellungs-Antrag fÜr Liste %(realname)s von %(addr)s"
+
+# Mailman/Cgi/options.py:349
+#: Mailman/ListAdmin.py:481
+msgid "Unsubscription request"
+msgstr "Listen-Abbestellungsantrag"
+
+# Mailman/ListAdmin.py:399
+#: Mailman/ListAdmin.py:512
+msgid "Original Message"
+msgstr "Ursprüngliche Nachricht"
+
+# Mailman/ListAdmin.py:402
+#: Mailman/ListAdmin.py:515
+msgid "Request to mailing list %(realname)s rejected"
+msgstr "Die Aufforderung an die Mailingliste %(realname)s wurde zurückgewiesen"
+
+# Mailman/MTA/Manual.py:38
+#: Mailman/MTA/Manual.py:57
+msgid ""
+"The mailing list `%(listname)s' has been created via the through-the-web\n"
+"interface. In order to complete the activation of this mailing list, the\n"
+"proper /etc/aliases (or equivalent) file must be updated. The program\n"
+"`newaliases' may also have to be run.\n"
+"\n"
+"Here are the entries for the /etc/aliases file:\n"
+msgstr ""
+"Die Mailingliste `%(listname)s' wurde unter Verwendung der Web-"
+"Schnittstelle\n"
+"neu angelegt. Um das Neuanlegen der Liste abzuschliessen, editieren Sie\n"
+"die Datei /etc/aliases (oder deren Äquivalent), löschen darin die folgenden\n"
+"Zeilen und starten anschliessend das Programm 'newaliases' (oder das\n"
+"entsprechende Gegenstück), um das Mailsystem zu aktualisieren.\n"
+"\n"
+"Diese Einträge sollten der Datei /etc/aliases hinzugefügt werden:\n"
+"\n"
+
+# Mailman/MTA/Manual.py:48
+#: Mailman/MTA/Manual.py:67
+msgid ""
+"\n"
+"To finish creating your mailing list, you must edit your /etc/aliases (or\n"
+"equivalent) file by adding the following lines, and possibly running the\n"
+"`newaliases' program:\n"
+"\n"
+"## %(listname)s mailing list"
+msgstr ""
+"\n"
+"Um das Neuanlegen Ihrer Mailingliste abzuschliessen, editieren Sie die "
+"Datei\n"
+"/etc/aliases (oder deren Äquivalent) und fügen die folgenden Zeilen ein:\n"
+"\n"
+"## %(listname)s mailing list\n"
+"Führen Sie anschliessend das Programm 'newaliases' (oder das entsprechende\n"
+"Gegenstück) aus, um dem Mailsystem die Änderungen mitzuteilen."
+
+# Mailman/MTA/Manual.py:66
+#: Mailman/MTA/Manual.py:88
+msgid "Mailing list creation request for list %(listname)s"
+msgstr "Anforderung zur Neuanlage der Mailingliste %(listname)s"
+
+# Mailman/MTA/Manual.py:81
+#: Mailman/MTA/Manual.py:103
+msgid ""
+"The mailing list `%(listname)s' has been removed via the through-the-web\n"
+"interface. In order to complete the de-activation of this mailing list, "
+"the\n"
+"appropriate /etc/aliases (or equivalent) file must be updated. The program\n"
+"`newaliases' may also have to be run.\n"
+"\n"
+"Here are the entries in the /etc/aliases file that should be removed:\n"
+msgstr ""
+"Die Mailingliste `%(listname)s' wurde unter Verwendung der Web-"
+"Schnittstelle\n"
+"gelöscht. Um das Entfernen der Mailingliste abzuschliessen, editieren Sie\n"
+"die Datei /etc/aliases (oder deren Äquivalent), löschen darin die folgenden\n"
+"Zeilen und starten anschliessend das Programm 'newaliases' (oder das\n"
+"entsprechende Gegenstück), um das Mailsystem zu aktualisieren.\n"
+"\n"
+"Diese Einträge sollten aus der Datei /etc/aliases entfernt werden:\n"
+"\n"
+
+# Mailman/MTA/Manual.py:91
+#: Mailman/MTA/Manual.py:113
+msgid ""
+"\n"
+"To finish removing your mailing list, you must edit your /etc/aliases (or\n"
+"equivalent) file by removing the following lines, and possibly running the\n"
+"`newaliases' program:\n"
+"\n"
+"## %(listname)s mailing list"
+msgstr ""
+"\n"
+"Um das Entfernen der Mailingliste abzuschliessen, editieren Sie die Datei\n"
+"/etc/aliases (oder deren Äquivalent) und löschen darin die folgenden "
+"Zeilen:\n"
+"\n"
+"## %(listname)s Mailingliste\n"
+"Führen Sie anschliessend das Programm 'newaliases' (oder das entsprechende\n"
+"Gegenstück) aus, um dem Mailsystem die Änderungen mitzuteilen."
+
+# Mailman/MTA/Manual.py:109
+#: Mailman/MTA/Manual.py:132
+msgid "Mailing list removal request for list %(listname)s"
+msgstr "Löschanforderung für Liste %(listname)s"
+
+#: Mailman/MTA/Postfix.py:300
+msgid "checking permissions on %(file)s"
+msgstr "überprüfe Zugriffsrechte von %(file)s"
+
+# Mailman/MTA/Postfix.py:232
+#: Mailman/MTA/Postfix.py:310
+msgid "%(file)s permissions must be 066x (got %(octmode)s)"
+msgstr "%(file)s Zugriffsrechte sollten 066x sein (ist aber %(octmode)s)"
+
+# Mailman/MTA/Postfix.py:234 Mailman/MTA/Postfix.py:252 bin/check_perms:101
+# bin/check_perms:123 bin/check_perms:142 bin/check_perms:160
+# bin/check_perms:180 bin/check_perms:204 bin/check_perms:224
+# bin/check_perms:238 bin/check_perms:258 bin/check_perms:292
+#: Mailman/MTA/Postfix.py:312 Mailman/MTA/Postfix.py:339 bin/check_perms:100
+#: bin/check_perms:122 bin/check_perms:132 bin/check_perms:143
+#: bin/check_perms:162 bin/check_perms:180 bin/check_perms:200
+#: bin/check_perms:224 bin/check_perms:244 bin/check_perms:258
+#: bin/check_perms:278 bin/check_perms:315
+msgid "(fixing)"
+msgstr "(korrigiere)"
+
+# Mailman/MTA/Postfix.py:241
+#: Mailman/MTA/Postfix.py:328
+msgid "checking ownership of %(dbfile)s"
+msgstr "überprüfe Eigentümer von %(dbfile)s"
+
+# Mailman/MTA/Postfix.py:249
+#: Mailman/MTA/Postfix.py:336
+msgid "%(dbfile)s owned by %(owner)s (must be owned by %(user)s"
+msgstr "%(dbfile)s ist Eigentum von %(owner)s (sollte aber %(user)s gehören)"
+
+# Mailman/Deliverer.py:76
+#: Mailman/MailList.py:697
+msgid "You have been invited to join the %(listname)s mailing list"
+msgstr "Sie wurden eingeladen der %(listname)s beizutreten"
+
+# Mailman/MailList.py:614 Mailman/MailList.py:886
+#: Mailman/MailList.py:801 Mailman/MailList.py:1157
+msgid " from %(remote)s"
+msgstr " von %(remote)s"
+
+# Mailman/MailList.py:649
+#: Mailman/MailList.py:835
+msgid "subscriptions to %(realname)s require moderator approval"
+msgstr "Das Abonnieren von %(realname)s erfordert die Bestätigung des Moderators"
+
+# Mailman/MailList.py:711 bin/add_members:258
+#: Mailman/MailList.py:894 bin/add_members:281
+msgid "%(realname)s subscription notification"
+msgstr "%(realname)s Abonnierungsbenachrichtigung"
+
+# Mailman/Cgi/confirm.py:268
+#: Mailman/MailList.py:909
+msgid "unsubscriptions require moderator approval"
+msgstr "Abbestellungen erfordern die Bestätigung des Moderators"
+
+# Mailman/MailList.py:739
+#: Mailman/MailList.py:928
+msgid "%(realname)s unsubscribe notification"
+msgstr "%(realname)s Abbestellungbenachrichtigung"
+
+# Mailman/MailList.py:860
+#: Mailman/MailList.py:1072
+msgid "subscriptions to %(name)s require administrator approval"
+msgstr "Das Abonnieren von %(name)s erfordert die Bestätigung des Aministrators"
+
+#: Mailman/MailList.py:1326
+msgid "Last autoresponse notification for today"
+msgstr "Letzte automatische Benachrichtigung für heute"
+
+#: Mailman/Queue/BounceRunner.py:179
+msgid ""
+"The attached message was received as a bounce, but either the bounce format\n"
+"was not recognized, or no member addresses could be extracted from it. "
+"This\n"
+"mailing list has been configured to send all unrecognized bounce messages "
+"to\n"
+"the list administrator(s).\n"
+"\n"
+"For more information see:\n"
+"%(adminurl)s\n"
+"\n"
+msgstr ""
+"Die angehängte Nachricht kam als unzustellbar an die Liste zurück. Leider "
+"wurde entweder das Bounce-Format nicht erkannt, oder keine Mailadresse eines "
+"Mailinglistenmitglieds konnte extrahiert werden.\n"
+"Da diese Mailingliste so konfiguriert wurde, daß Sie Kopien von unerkannten "
+"Bounces erhalten möchten, kriegen Sie den Bounce zur Ansicht zugesandt.\n"
+"\n"
+"Für weitere Informationen besuchen Sie bitte %(adminurl)s\n"
+"\n"
+
+# Mailman/MailList.py:711 bin/add_members:258
+#: Mailman/Queue/BounceRunner.py:189
+msgid "Uncaught bounce notification"
+msgstr "Unerkannte Bounce-Benachrichtigung"
+
+#: Mailman/Queue/CommandRunner.py:74
+msgid "Ignoring non-text/plain MIME parts"
+msgstr "Ignoriere non-text/plain MIME Teil"
+
+#: Mailman/Queue/CommandRunner.py:129
+msgid ""
+"The results of your email command are provided below.\n"
+"Attached is your original message.\n"
+msgstr ""
+"Das Ergebniss Ihres Kommandos ist unten aufgeführt.\n"
+"Angehängt ist Ihre ursprüngliche Nachricht.\n"
+
+#: Mailman/Queue/CommandRunner.py:134
+msgid "- Results:"
+msgstr "- Ergebnis:"
+
+#: Mailman/Queue/CommandRunner.py:140
+msgid ""
+"\n"
+"- Unprocessed:"
+msgstr ""
+"\n"
+"- Unbearbeitet:"
+
+#: Mailman/Queue/CommandRunner.py:143
+msgid ""
+"\n"
+"- Ignored:"
+msgstr ""
+"\n"
+"- Ignoriert:"
+
+#: Mailman/Queue/CommandRunner.py:145
+msgid ""
+"\n"
+"- Done.\n"
+"\n"
+msgstr ""
+"\n"
+"- Erledigt.\n"
+"\n"
+
+#: Mailman/Queue/CommandRunner.py:163
+msgid "The results of your email commands"
+msgstr "Das Ergebnis Ihres e-Mail-Kommandos"
+
+# Mailman/htmlformat.py:611
+#: Mailman/htmlformat.py:627
+msgid "Delivered by Mailman<br>version %(version)s"
+msgstr "Zugestellt von Mailman<br>version %(version)s"
+
+# Mailman/htmlformat.py:612
+#: Mailman/htmlformat.py:628
+msgid "Python Powered"
+msgstr "Python Powered"
+
+# Mailman/htmlformat.py:613
+#: Mailman/htmlformat.py:629
+msgid "Gnu's Not Unix"
+msgstr "Gnu's Not Unix (Gnu's sind keine Unickse)"
+
+# Mailman/Cgi/confirm.py:208 Mailman/Cgi/create.py:301
+# Mailman/Cgi/create.py:347 Mailman/Gui/Archive.py:30
+# Mailman/Gui/Autoresponse.py:48 Mailman/Gui/Autoresponse.py:56
+# Mailman/Gui/Autoresponse.py:65 Mailman/Gui/Bounce.py:32
+# Mailman/Gui/Digest.py:35 Mailman/Gui/Digest.py:51 Mailman/Gui/Digest.py:73
+# Mailman/Gui/Digest.py:78 Mailman/Gui/General.py:217
+# Mailman/Gui/General.py:227 Mailman/Gui/General.py:252
+# Mailman/Gui/General.py:256 Mailman/Gui/General.py:263
+# Mailman/Gui/General.py:273 Mailman/Gui/General.py:278
+# Mailman/Gui/NonDigest.py:36 Mailman/Gui/NonDigest.py:55
+# Mailman/Gui/Privacy.py:86 Mailman/Gui/Privacy.py:100
+# Mailman/Gui/Privacy.py:111 Mailman/Gui/Privacy.py:114
+# Mailman/Gui/Privacy.py:147 Mailman/Gui/Privacy.py:221
+# Mailman/Gui/Usenet.py:43 Mailman/Gui/Usenet.py:47 Mailman/Gui/Usenet.py:51
+#: Mailman/i18n.py:86
+msgid "Mon"
+msgstr "Mon"
+
+#: Mailman/i18n.py:86
+msgid "Thu"
+msgstr "Don"
+
+#: Mailman/i18n.py:86
+msgid "Tue"
+msgstr "Die"
+
+#: Mailman/i18n.py:86
+msgid "Wed"
+msgstr "Mit"
+
+#: Mailman/i18n.py:87
+msgid "Fri"
+msgstr "Fre"
+
+#: Mailman/i18n.py:87
+msgid "Sat"
+msgstr "Sam"
+
+#: Mailman/i18n.py:87
+msgid "Sun"
+msgstr "Son"
+
+# Mailman/Cgi/admindb.py:181 Mailman/Cgi/admindb.py:280
+#: Mailman/i18n.py:91
+msgid "Apr"
+msgstr "Apr"
+
+#: Mailman/i18n.py:91
+msgid "Feb"
+msgstr "Feb"
+
+#: Mailman/i18n.py:91
+msgid "Jan"
+msgstr "Jan"
+
+#: Mailman/i18n.py:91
+msgid "Jun"
+msgstr "Jun"
+
+#: Mailman/i18n.py:91
+msgid "Mar"
+msgstr "Mar"
+
+#: Mailman/i18n.py:92
+msgid "Aug"
+msgstr "Aug"
+
+#: Mailman/i18n.py:92
+msgid "Dec"
+msgstr "Dez"
+
+#: Mailman/i18n.py:92
+msgid "Jul"
+msgstr "Jul"
+
+# Mailman/Cgi/confirm.py:208 Mailman/Cgi/create.py:301
+# Mailman/Cgi/create.py:347 Mailman/Gui/Archive.py:30
+# Mailman/Gui/Autoresponse.py:48 Mailman/Gui/Autoresponse.py:56
+# Mailman/Gui/Autoresponse.py:65 Mailman/Gui/Bounce.py:32
+# Mailman/Gui/Digest.py:35 Mailman/Gui/Digest.py:51 Mailman/Gui/Digest.py:73
+# Mailman/Gui/Digest.py:78 Mailman/Gui/General.py:217
+# Mailman/Gui/General.py:227 Mailman/Gui/General.py:252
+# Mailman/Gui/General.py:256 Mailman/Gui/General.py:263
+# Mailman/Gui/General.py:273 Mailman/Gui/General.py:278
+# Mailman/Gui/NonDigest.py:36 Mailman/Gui/NonDigest.py:55
+# Mailman/Gui/Privacy.py:86 Mailman/Gui/Privacy.py:100
+# Mailman/Gui/Privacy.py:111 Mailman/Gui/Privacy.py:114
+# Mailman/Gui/Privacy.py:147 Mailman/Gui/Privacy.py:221
+# Mailman/Gui/Usenet.py:43 Mailman/Gui/Usenet.py:47 Mailman/Gui/Usenet.py:51
+#: Mailman/i18n.py:92
+msgid "Nov"
+msgstr "Nov"
+
+#: Mailman/i18n.py:92
+msgid "Oct"
+msgstr "Okt"
+
+#: Mailman/i18n.py:92
+msgid "Sep"
+msgstr "Sep"
+
+#: Mailman/i18n.py:95
+msgid "Server Local Time"
+msgstr "Lokale Serverzeit"
+
+#: Mailman/i18n.py:128
+msgid "%(wday)s %(mon)s %(day)2i %(hh)02i:%(mm)02i:%(ss)02i %(tzname)s %(year)04i"
+msgstr "%(wday)s %(mon)s %(day)2i %(hh)02i:%(mm)02i:%(ss)02i %(tzname)s %(year)04i"
+
+#: bin/add_members:26
+msgid ""
+"Add members to a list from the command line.\n"
+"\n"
+"Usage:\n"
+" add_members [options] listname\n"
+"\n"
+"Options:\n"
+"\n"
+" --regular-members-file=file\n"
+" -r file\n"
+" A file containing addresses of the members to be added, one\n"
+" address per line. This list of people become non-digest\n"
+" members. If file is `-', read addresses from stdin. Note that\n"
+" -n/--non-digest-members-file are deprecated synonyms for this "
+"option.\n"
+"\n"
+" --digest-members-file=file\n"
+" -d=file\n"
+" Similar to above, but these people become digest members.\n"
+"\n"
+" --changes-msg=<y|n>\n"
+" -c <y|n> \n"
+"\tSet whether or not to send the list members the `there's going to be\n"
+"\tbig changes to your list' message. defaults to no.\n"
+"\n"
+" --welcome-msg=<y|n>\n"
+" -w <y|n>\n"
+" Set whether or not to send the list members a welcome message,\n"
+" overriding whatever the list's `send_welcome_msg' setting is.\n"
+"\n"
+" --admin-notify=<y|n>\n"
+" -a <y|n>\n"
+" Set whether or not to send the list administrators a notification "
+"on\n"
+" the success/failure of these subscriptions, overriding whatever the\n"
+" list's `admin_notify_mchanges' setting is.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname\n"
+" The name of the Mailman list you are adding members to. It must\n"
+" already exist.\n"
+"\n"
+"You must supply at least one of -r and -d options. At most one of the\n"
+"files can be `-'.\n"
+msgstr ""
+"Hinzufügen neuer Mitglieder zu einer Mailingliste.\n"
+"\n"
+"Benutzung:\n"
+" add_members [optionen] listenname\n"
+"\n"
+"Optionen:\n"
+"\n"
+" --regular-members-file=file\n"
+" -r file\n"
+" Lese hinzuzufügende Adressen aus einer Datei (eine Adresse/Zeile).\n"
+" Diese Mitglieder werden zu normalen Mitgliedern, erhalten somit\n"
+" keine Nachrichtensammlungen (Digests).\n"
+" Ist der Dateiname '-', wird von stdin gelesen.\n"
+"\n"
+" --digest-members-file=file\n"
+" -d=file\n"
+" Analog wie oben, aber die Mitglieder werden zu Digest-Mitgliedern.\n"
+"\n"
+" --changes-msg=<y|n>\n"
+" -c <y|n> \n"
+" Legt fest, ob die Listenmitglieder bei grossen Änderungen eine\n"
+" Benachrichtigung erhalten, oder nicht. Standardwert: Nein.\n"
+"\n"
+" --welcome-msg=<y|n>\n"
+" -w <y|n>\n"
+" Legt fest, ob die Listenmitglieder eine Begrüssungsnachricht\n"
+" erhalten. Diese Option hat Vorrang vor der `send_welcome_msg'\n"
+" Option der Mailingliste.\n"
+"\n"
+" --admin-notify=<y|n>\n"
+" -a <y|n>\n"
+" Legt fest, ob die Listenadministratoren eine Benachrichtigung über\n"
+" das Gelingen/Scheitern dieses Abonnements erhalten. Diese Option "
+"hat\n"
+" Vorrang vor der `admin_notify_mchanges' Option der Mailingliste.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Ausgabe dieser Meldung und Schluss\n"
+"\n"
+" listname\n"
+" Der Name der (bereits angelegten) Mailingliste.\n"
+"\n"
+"Sie müssen mindestens eine der beiden Optionen -n oder -d angeben. Höchstens\n"
+"eine der Datei kann '-' (STDIN) sein.\n"
+
+#: bin/add_members:134
+msgid "Big change in %(listname)s@%(listhost)s mailing list"
+msgstr "Grosse Änderung in der Mailingliste %(listname)s@%(listhost)s"
+
+# Mailman/Cgi/admin.py:1228
+#: bin/add_members:167
+msgid "Already a member: %(member)s"
+msgstr "Ist bereits Mitglied: %(member)s"
+
+# Mailman/Cgi/admin.py:1232 Mailman/Cgi/admin.py:1235
+#: bin/add_members:170
+msgid "Bad/Invalid email address: blank line"
+msgstr "Ungültige Emailaddresse: leere Zeile"
+
+# Mailman/Cgi/admin.py:1232 Mailman/Cgi/admin.py:1235
+#: bin/add_members:172
+msgid "Bad/Invalid email address: %(member)s"
+msgstr "Ungültige Emailaddresse: %(member)s"
+
+# Mailman/Cgi/admin.py:1238
+#: bin/add_members:174
+msgid "Hostile address (illegal characters): %(member)s"
+msgstr "Vermutlich feindliche Adresse (ungültige Zeichen): %(member)s"
+
+# Mailman/Cgi/admin.py:1281
+#: bin/add_members:176
+msgid "Subscribed: %(member)s"
+msgstr "Abonniert: %(member)s"
+
+#: bin/add_members:223
+msgid "Bad argument to -c/--changes-msg: %(arg)s"
+msgstr "Ungültiges Argument für -c/--changes-msg: %(arg)s"
+
+#: bin/add_members:230
+msgid "Bad argument to -w/--welcome-msg: %(arg)s"
+msgstr "Ungültiges Argument für -w/--welcome-msg: %(arg)s"
+
+#: bin/add_members:237
+msgid "Bad argument to -a/--admin-notify: %(arg)s"
+msgstr "Ungültiges Argument für -a/--admin-notify: %(arg)s"
+
+#: bin/add_members:243
+msgid "Cannot read both digest and normal members from standard input."
+msgstr ""
+"Normale und Digest-Mitglieder können nicht gleichzeitig von der\n"
+"Standardeingabe gelesen werden"
+
+# Mailman/Cgi/admin.py:66 Mailman/Cgi/admindb.py:60 Mailman/Cgi/confirm.py:52
+# Mailman/Cgi/edithtml.py:65 Mailman/Cgi/listinfo.py:49
+# Mailman/Cgi/options.py:67 Mailman/Cgi/private.py:96
+# Mailman/Cgi/rmlist.py:60 Mailman/Cgi/roster.py:55
+# Mailman/Cgi/subscribe.py:57
+#: bin/add_members:249 bin/config_list:105 bin/find_member:97 bin/inject:90
+#: bin/list_admins:89 bin/list_members:187 bin/sync_members:222
+#: cron/bumpdigests:86
+msgid "No such list: %(listname)s"
+msgstr "Liste nicht vorhanden: %(listname)s"
+
+#: bin/add_members:269 bin/change_pw:158 bin/check_db:114 bin/sync_members:244
+#: cron/bumpdigests:78
+msgid "Nothing to do."
+msgstr "Nichts zu tun."
+
+#: bin/arch:19
+msgid ""
+"Rebuild a list's archive.\n"
+"\n"
+"Use this command to rebuild the archives for a mailing list. You may want "
+"to\n"
+"do this if you edit some messages in an archive, or remove some messages "
+"from\n"
+"an archive.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] <listname> [<mbox>]\n"
+"\n"
+"Where options are:\n"
+" -h / --help\n"
+" Print this help message and exit.\n"
+"\n"
+" -q / --quiet\n"
+" Make the archiver output less verbose.\n"
+"\n"
+" --wipe\n"
+" First wipe out the original archive before regenerating. You "
+"usually\n"
+" want to specify this argument unless you're generating the archive "
+"in\n"
+" chunks.\n"
+"\n"
+" -s N\n"
+" --start=N\n"
+" Start indexing at article N, where article 0 is the first in the "
+"mbox.\n"
+" Defaults to 0.\n"
+"\n"
+" -e M\n"
+" --end=M\n"
+" End indexing at article M. This script is not very efficient with\n"
+" respect to memory management, and for large archives, it may not be\n"
+" possible to index the mbox entirely. For that reason, you can "
+"specify\n"
+" the start and end article numbers.\n"
+"\n"
+"Where <mbox> is the path to a list's complete mbox archive. Usually this "
+"will\n"
+"be some path in the archives/private directory. For example:\n"
+"\n"
+"%% bin/arch mylist archives/private/mylist.mbox/mylist.mbox\n"
+"\n"
+"<mbox> is optional. If it is missing, it is calculated.\n"
+msgstr ""
+"Neuaufbau des Listenarchives.\n"
+"\n"
+"Dieser Befehl wird dazu verwendet, ein Listenarchiv erneut zu erzeugen.\n"
+"Dies kann erforderlich sein, wenn Sie einige Nachrichten editiert oder\n"
+"aus dem Archiv gelöscht haben.\n"
+"\n"
+"Benutzung: %(PROGRAM)s [options] <listenname> [<mbox>]\n"
+"\n"
+"Mögliche Optionen sind:\n"
+" -h / --help\n"
+" Gibt diesen Hilfetext aus.\n"
+"\n"
+" -q / --quiet\n"
+" Sorgt für weniger Informationen und Ausgaben.\n"
+"\n"
+" --wipe\n"
+" First wipe out the original archive before regenerating. You "
+"usually\n"
+" want to specify this argument unless you're generating the archive "
+"in\n"
+" chunks.\n"
+"\n"
+" -s N\n"
+" --start=N\n"
+" Beginne bei e-mail Nummer N (0 entspricht der\n"
+" ersten e-mail!). Standardwert: 0.\n"
+"\n"
+" -e M\n"
+" --end=M\n"
+" Ende bei e-mail Nummer M. Da dieses Script nicht sehr effizient\n"
+" mit dem Arbeitsspeicher umgeht, kann es bei größeren Archiven\n"
+" nötig sein, die Indizierung mit diesen Parametern in mehreren\n"
+" Schritten durchzuführen.\n"
+"\n"
+"Wobei <mbox> der Pfad zu einem vollständigen mbox-Archiv ist. Üblicher-\n"
+"weise ist dies ein Pfad auf das 'archives/private'-Verzeichnis, z.B.:\n"
+"\n"
+"%% bin/arch mylist archives/private/mylist.mbox/mylist.mbox\n"
+"\n"
+"<mbox> ist optional. Wenn es fehlt wird es automatisch gesetzt.\n"
+
+# Mailman/Cgi/edithtml.py:57
+#: bin/arch:125
+msgid "listname is required"
+msgstr "Der Name der Liste ist erforderlich"
+
+# Mailman/Cgi/admin.py:66 Mailman/Cgi/admindb.py:60 Mailman/Cgi/confirm.py:52
+# Mailman/Cgi/edithtml.py:65 Mailman/Cgi/listinfo.py:49
+# Mailman/Cgi/options.py:67 Mailman/Cgi/private.py:96
+# Mailman/Cgi/rmlist.py:60 Mailman/Cgi/roster.py:55
+# Mailman/Cgi/subscribe.py:57
+#: bin/arch:143 bin/change_pw:106 bin/config_list:242
+msgid ""
+"No such list \"%(listname)s\"\n"
+"%(e)s"
+msgstr ""
+"Liste nicht vorhanden: \"%(listname)s\"\n"
+"%(e)s"
+
+#: bin/arch:170
+msgid "Cannot open mbox file %(mbox)s: %(msg)s"
+msgstr "Kann die mbox-Datei %(mbox)s nicht öffnen. Grund: %(msg)s"
+
+#: bin/b4b5-archfix:19
+msgid ""
+"Fix the MM2.1b4 archives.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] file ...\n"
+"\n"
+"Where options are:\n"
+" -h / --help\n"
+" Print this help message and exit.\n"
+"\n"
+"Only use this to `fix' some archive database files that may have gotten\n"
+"written in Mailman 2.1b4 with some bogus data. Use like this from your\n"
+"$PREFIX directory\n"
+"\n"
+"%% %(PROGRAM)s `grep -l _mlist archives/private/*/database/*-article`\n"
+"\n"
+"(note the backquotes are required)\n"
+"\n"
+"You will need to run `bin/check_perms -f' after running this script.\n"
+msgstr ""
+
+#: bin/change_pw:19
+msgid ""
+"Change a list's password.\n"
+"\n"
+"Prior to Mailman 2.1, list passwords were kept in crypt'd format -- "
+"usually.\n"
+"Some Python installations didn't have the crypt module available, so they'd\n"
+"fall back to md5. Then suddenly the Python installation might grow a crypt\n"
+"module and all list passwords would be broken.\n"
+"\n"
+"In Mailman 2.1, all list and site passwords are stored in SHA1 hexdigest\n"
+"form. This breaks list passwords for all existing pre-Mailman 2.1 lists, "
+"and\n"
+"since those passwords aren't stored anywhere in plain text, they cannot be\n"
+"retrieved and updated.\n"
+"\n"
+"Thus, this script generates new passwords for a list, and optionally sends "
+"it\n"
+"to all the owners of the list.\n"
+"\n"
+"Usage: change_pw [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" --all / -a\n"
+" Change the password for all lists.\n"
+"\n"
+" --domain=domain\n"
+" -d domain\n"
+" Change the password for all lists in the virtual domain `domain'. "
+"It\n"
+" is okay to give multiple -d options.\n"
+"\n"
+" --listname=listname\n"
+" -l listname\n"
+" Change the password only for the named list. It is okay to give\n"
+" multiple -l options.\n"
+"\n"
+" --password=newpassword\n"
+" -p newpassword\n"
+" Use the supplied plain text password `newpassword' as the new "
+"password\n"
+" for any lists that are being changed (as specified by the -a, -d, "
+"and\n"
+" -l options). If not given, lists will be assigned a randomly\n"
+" generated new password.\n"
+"\n"
+" --quiet / -q\n"
+" Don't notify list owners of the new password. You'll have to have\n"
+" some other way of letting the list owners know the new password\n"
+" (presumably out-of-band).\n"
+"\n"
+" --help / -h\n"
+" Print this help message and exit.\n"
+msgstr ""
+"Ändere das Passwort einer Mailingliste.\n"
+"\n"
+"Vor Mailman-Version 2.1 wurden die Passwörter verschlüsselt gespeichert --\n"
+"wenigstens normalerweise.\n"
+"Einige Python Installationen verfügten aber nicht über das Kryptomodul,\n"
+"weshalb diese MD5 verwendeten. Nach einem Update stand diesen "
+"Installationen\n"
+"nun plötzlich ein neues Kryptomodul zur Verfügung - und die alten "
+"Passwörter\n"
+"waren nicht mehr verwendbar.\n"
+"\n"
+"Ab Mailman Version 2.1 werden die Passwörter im SHA1 Hexdigest-Format\n"
+"gespeichert. Das bedeutet, das ab diesem Zeitpunkt keine alten Listen mehr\n"
+"gelesen werden kÖnnen.\n"
+"\n"
+"Deshalb erzeugt dieses Skript neue Passwörter für eine Liste und sendet\n"
+"diese optional an alle Eigentümer der Mailingliste.\n"
+"\n"
+"Benutzung: change_pw [optionen]\n"
+"\n"
+"Optionen:\n"
+"\n"
+" --all / -a\n"
+" Ändere das Passwort aller Listen.\n"
+"\n"
+" --domain=domain\n"
+" -d domain\n"
+" Ändere das Passwort aller Listen in der virtuellen Domäne `domain'.\n"
+" Die Angabe mehrerer -d Optionen ist erlaubt.\n"
+"\n"
+" --listname=listname\n"
+" -l listname\n"
+" Ändere nur das Passwort der angegebenen Liste.\n"
+" Die Angabe mehrerer -l Optionen ist erlaubt.\n"
+"\n"
+" --password=newpassword\n"
+" -p newpassword\n"
+" Benutze das angegebene Passwort als neues Passwort für jede\n"
+" geänderte Mailingliste (wie mit -a, -d und -l angegeben).\n"
+" Wird kein Passwort spezifiziert, werden zufallsgesteuerte benutzt.\n"
+"\n"
+" --quiet / -q\n"
+" Keine Benachrichtigung an die Listeneigentümer senden. Dann müssen\n"
+" Sie jedoch selbst nach einem Weg suchen, die Listenbesitzer über\n"
+" das neue Passwort zu informieren.\n"
+"\n"
+" --help / -h\n"
+" Ausgabe dieser Meldung und Schluss.\n"
+
+#: bin/change_pw:144
+msgid "Bad arguments: %(strargs)s"
+msgstr "Ungültiges Argument: %(strargs)s"
+
+# Mailman/Cgi/create.py:124
+#: bin/change_pw:148
+msgid "Empty list passwords are not allowed"
+msgstr "Leere Listen-Passwörter sind nicht erlaubt"
+
+#: bin/change_pw:179
+msgid "New %(listname)s password: %(notifypassword)s"
+msgstr "Neues Passwort der Liste %(listname)s: %(notifypassword)s"
+
+# Mailman/Cgi/create.py:307
+#: bin/change_pw:188
+msgid "Your new %(listname)s list password"
+msgstr "Ihr neues Passwort für die Mailingliste %(listname)s"
+
+#: bin/change_pw:189
+msgid ""
+"The site administrator at %(hostname)s has changed the password for your\n"
+"mailing list %(listname)s. It is now\n"
+"\n"
+" %(notifypassword)s\n"
+"\n"
+"Please be sure to use this for all future list administration. You may "
+"want\n"
+"to log in now to your list and change the password to something more to "
+"your\n"
+"liking. Visit your list admin page at\n"
+"\n"
+" %(adminurl)s\n"
+msgstr ""
+"Der Masteradministrator auf %(hostname)s hat das Passwort Ihrer Mailing-\n"
+"liste %(listname)s geändert. Es lautet nun:\n"
+" %(notifypassword)s\n"
+"\n"
+"Bitte benutzen Sie dieses Passwort für alle Administrationstätigkeiten an\n"
+"Ihrer Mailingliste. Sie können sich nun anmelden und dieses Passwort durch\n"
+"eines ersetzen, das Ihnen besser gefällt.\n"
+"\n"
+"Schauen Sie doch auch einmal auf Ihre Administrationsseite unter:\n"
+" %(adminurl)s\n"
+
+#: bin/check_db:19
+msgid ""
+"Check a list's config database file for integrity.\n"
+"\n"
+"All of the following files are checked:\n"
+"\n"
+" config.pck\n"
+" config.pck.last\n"
+" config.db\n"
+" config.db.last\n"
+" config.safety\n"
+"\n"
+"It's okay if any of these are missing. config.pck and config.pck.last are\n"
+"pickled versions of the config database file for 2.1a3 and beyond. config."
+"db\n"
+"and config.db.last are used in all earlier versions, and these are Python\n"
+"marshals. config.safety is a pickle written by 2.1a3 and beyond when the\n"
+"primary config.pck file could not be read.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname [listname ...]]\n"
+"\n"
+"Options:\n"
+"\n"
+" --all / -a\n"
+" Check the databases for all lists. Otherwise only the lists named "
+"on\n"
+" the command line are checked.\n"
+"\n"
+" --verbose / -v\n"
+" Verbose output. The state of every tested file is printed.\n"
+" Otherwise only corrupt files are displayed.\n"
+"\n"
+" --help / -h\n"
+" Print this text and exit.\n"
+msgstr ""
+"Integritätsprüfung der Konfigurations-Datenbank einer Mailingliste.\n"
+"\n"
+"Die folgenden Dateien werden überprüft:\n"
+"\n"
+" config.pck\n"
+" config.pck.last\n"
+" config.db\n"
+" config.db.last\n"
+" config.safety\n"
+"\n"
+"Es macht nichts, wenn einige der Dateien nicht vorhanden sind. config.pck\n"
+"und config.pck.last sind 'pickled'-Versionen der Konfig.-Datenbank ab\n"
+"Version 2.1a3 und darüber. config.db und config.db.last wurden in älteren\n"
+"Versionen benutzt (und sind Python 'marshals'). config.safety ist eine\n"
+"'pickled'-Version erzeugt von 2.1a3 und später, wenn die primäre config.pck\n"
+"nicht gelesen werden konnte.\n"
+"\n"
+"Benutzung: %(PROGRAM)s [optionen] [listenname [listenname ...]]\n"
+"\n"
+"Optionen:\n"
+"\n"
+" --all / -a\n"
+" Überprüfe die Datanbanken aller Listen. Ansonsten würden nur die\n"
+" auf der Kommandozeile angegebenen Listen überprüft.\n"
+"\n"
+" --verbose / -v\n"
+" Ausführliche Ausgabe. Der Status jeder getesten Datei wird\n"
+" ausgegeben. Ansonsten würden nur die beschädigten Dateien\n"
+" aufgelistet.\n"
+"\n"
+" --help / -h\n"
+" Ausgabe dieser Meldung und Schluss.\n"
+
+# Mailman/Cgi/admin.py:647
+#: bin/check_db:119
+msgid "No list named:"
+msgstr "Keine Liste mit dem Namen: "
+
+# Mailman/Cgi/admin.py:266 Mailman/Cgi/listinfo.py:132 cron/mailpasswds:147
+#: bin/check_db:128
+msgid "List:"
+msgstr "Liste:"
+
+#: bin/check_db:148
+msgid " %(file)s: okay"
+msgstr " %(file)s: in Ordnung"
+
+#: bin/check_perms:19
+msgid ""
+"Check the permissions for the Mailman installation.\n"
+"\n"
+"Usage: %(PROGRAM)s [-f] [-v] [-h]\n"
+"\n"
+"With no arguments, just check and report all the files that have bogus\n"
+"permissions or group ownership. With -f (and run as root), fix all the\n"
+"permission problems found. With -v be verbose.\n"
+"\n"
+msgstr ""
+"Überprüfe die Dateizugriffsrechte für die Mailman-Installation.\n"
+"\n"
+"Benutzung: %(PROGRAM)s [-f] [-v] [-h]\n"
+"\n"
+"Ohne Argumente gestartet, überprüft das Programm einfach nur die Dateien\n"
+"und gibt einen Report aller falschen Berechtigungen und Besitzer aus.\n"
+"Mit dem -f Schalter (und als User 'root' ausgeführt), behebt es alle\n"
+"gefundenen Sicherheitsprobleme.\n"
+"Noch mitteilsamer wird das Programm durch Verwendung der -v Option.\n"
+"\n"
+
+#: bin/check_perms:85
+msgid " checking gid and mode for %(path)s"
+msgstr "überprüfe GID und Modus für %(path)s"
+
+#: bin/check_perms:97
+msgid "%(path)s bad group (has: %(groupname)s, expected %(MAILMAN_GROUP)s)"
+msgstr "%(path)s falsche GID (ist: %(groupname)s, soll: %(MAILMAN_GROUP)s)"
+
+#: bin/check_perms:120
+msgid "directory permissions must be %(octperms)s: %(path)s"
+msgstr "Verzeichnisrechte müssen %(octperms)s sein für: %(path)s"
+
+#: bin/check_perms:129
+msgid "source perms must be %(octperms)s: %(path)s"
+msgstr "Verzeichnisrechte müssen %(octperms)s sein: %(path)s"
+
+#: bin/check_perms:140
+msgid "article db files must be %(octperms)s: %(path)s"
+msgstr "Dateirechte müssen %(octperms)s sein: %(path)s"
+
+#: bin/check_perms:152
+msgid "checking mode for %(prefix)s"
+msgstr "überprüfe Modus für %(prefix)s"
+
+#: bin/check_perms:160
+msgid "directory must be at least 02775: %(d)s"
+msgstr "Verzeichnisrechte müssen midestens 02775 betragen: %(d)s"
+
+#: bin/check_perms:173
+msgid "checking perms on %(private)s"
+msgstr "überprüfe Dateirechte von %(private)s"
+
+#: bin/check_perms:178
+msgid "%(private)s must not be other-readable"
+msgstr "%(private)s darf nicht vom 'Rest der Welt' lesbar sein"
+
+#: bin/check_perms:198
+msgid "mbox file must be at least 0660:"
+msgstr "mbox-Dateirechte müssen mindestens 0660 sein:"
+
+#: bin/check_perms:222
+msgid "%(dbdir)s \"other\" perms must be 000"
+msgstr "%(dbdir)s Dateirechte für 'Rest der Welt' müssen 000 sein"
+
+#: bin/check_perms:233
+msgid "checking cgi-bin permissions"
+msgstr "überprüfe cgi-bin Dateirechte"
+
+#: bin/check_perms:238
+msgid " checking set-gid for %(path)s"
+msgstr "überprüfe set-gid Dateirechte für %(path)s"
+
+#: bin/check_perms:242
+msgid "%(path)s must be set-gid"
+msgstr "%(path)s erfordert set-gid Dateirechte"
+
+#: bin/check_perms:252
+msgid "checking set-gid for %(wrapper)s"
+msgstr "überprüfe set-gid Dateirechte für %(wrapper)s"
+
+#: bin/check_perms:256
+msgid "%(wrapper)s must be set-gid"
+msgstr "%(wrapper)s erfordert set-gid Dateirechte"
+
+#: bin/check_perms:266
+msgid "checking permissions on %(pwfile)s"
+msgstr "überprüfe Zugriffsrechte von: %(pwfile)s"
+
+#: bin/check_perms:275
+msgid "%(pwfile)s permissions must be exactly 0640 (got %(octmode)s)"
+msgstr "%(pwfile)s Zugriffsrechte müssen exakt 0640 sein (sind %(octmode)s)."
+
+#: bin/check_perms:299
+msgid "checking permissions on list data"
+msgstr "überprüfe Zugriffsrechte der Listendaten"
+
+#: bin/check_perms:305
+msgid " checking permissions on: %(path)s"
+msgstr "überprüfe Zugriffsrechte von: %(path)s"
+
+#: bin/check_perms:313
+msgid "file permissions must be at least 660: %(path)s"
+msgstr "Dateizugriffsrechte müssen mindestens '660' sein: %(path)s"
+
+# Mailman/Cgi/admin.py:302
+#: bin/check_perms:359
+msgid "No problems found"
+msgstr "Keine Probleme aufgetreten"
+
+#: bin/check_perms:361
+msgid "Problems found:"
+msgstr "Probleme aufgetreten: "
+
+#: bin/check_perms:362
+msgid "Re-run as %(MAILMAN_USER)s (or root) with -f flag to fix"
+msgstr ""
+"Zum Beheben starten Sie erneut als %(MAILMAN_USER)s (oder 'root') mit der "
+"Option -f."
+
+#: bin/cleanarch:19
+msgid ""
+"Clean up an .mbox archive file.\n"
+"\n"
+"The archiver looks for Unix-From lines separating messages in an mbox "
+"archive\n"
+"file. For compatibility, it specifically looks for lines that start with\n"
+"\"From \" -- i.e. the letters capital-F, lowercase-r, o, m, space, ignoring\n"
+"everything else on the line.\n"
+"\n"
+"Normally, any lines that start \"From \" in the body of a message should be\n"
+"escaped such that a > character is actually the first on a line. It is\n"
+"possible though that body lines are not actually escaped. This script\n"
+"attempts to fix these by doing a stricter test of the Unix-From lines. Any\n"
+"lines that start \"From \" but do not pass this stricter test are escaped "
+"with a\n"
+"> character.\n"
+"\n"
+"Usage: cleanarch [options] < inputfile > outputfile\n"
+"Options:\n"
+" -s n\n"
+" --status=n\n"
+" Print a # character every n lines processed\n"
+"\n"
+" -q / --quiet\n"
+" Don't print changed line information to standard error.\n"
+"\n"
+" -n / --dry-run\n"
+" Don't actually output anything.\n"
+"\n"
+" -h / --help\n"
+" Print this message and exit\n"
+msgstr ""
+
+#: bin/cleanarch:82
+msgid "Unix-From line changed: %(lineno)d"
+msgstr "Unix-From Zeile geändert: %(lineno)d"
+
+#: bin/cleanarch:110
+msgid "Bad status number: %(arg)s"
+msgstr "Ungültiges Argument: %(args)s"
+
+#: bin/cleanarch:160
+msgid "%(messages)d messages found"
+msgstr "%(messages)d Nachrichten gefunden"
+
+#: bin/clone_member:19
+msgid ""
+"Clone a member address.\n"
+"\n"
+"Cloning a member address means that a new member will be added who has all "
+"the\n"
+"same options and passwords as the original member address. Note that this\n"
+"operation is fairly trusting of the user who runs it -- it does no\n"
+"verification to the new address, it does not send out a welcome message, "
+"etc.\n"
+"\n"
+"The existing member's subscription is usually not modified in any way. If "
+"you\n"
+"want to remove the old address, use the -r flag. If you also want to "
+"change\n"
+"any list admin addresses, use the -a flag.\n"
+"\n"
+"Usage:\n"
+" clone_member [options] fromoldaddr tonewaddr\n"
+"\n"
+"Where:\n"
+"\n"
+" --listname=listname\n"
+" -l listname\n"
+" Check and modify only the named mailing lists. If -l is not given,\n"
+" then all mailing lists are scanned from the address. Multiple -l\n"
+" options can be supplied.\n"
+"\n"
+" --remove\n"
+" -r\n"
+" Remove the old address from the mailing list after it's been "
+"cloned.\n"
+"\n"
+" --admin\n"
+" -a\n"
+" Scan the list admin addresses for the old address, and clone or "
+"change\n"
+" them too.\n"
+"\n"
+" --quiet\n"
+" -q\n"
+" Do the modifications quietly.\n"
+"\n"
+" --nomodify\n"
+" -n\n"
+" Print what would be done, but don't actually do it. Inhibits the\n"
+" --quiet flag.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" fromoldaddr (`from old address') is the old address of the user. "
+"tonewaddr\n"
+" (`to new address') is the new address of the user.\n"
+"\n"
+msgstr ""
+"Klone die Adresse eines Mitgliedes.\n"
+"\n"
+"Das 'Klonen' einer Mitgliedsadresse bedeutet, dass das neue Mitglied alle\n"
+"Optionen und Passwörter wie das originale Mitglied erhält. Bitte beachten\n"
+"Sie, das diese Operation sehr viel Vertrauen in den Benutzer setzt, der\n"
+"dieses Skript aufruft. Es findet keine Adressprüfung statt, ein "
+"Willkommens-\n"
+"gruss wird nicht gesendet, usw.\n"
+"\n"
+"Der bestehende Mitgliedseintrag wird nicht modifiziert. Wenn Sie die alte\n"
+"Adresse löschen möchten, benutzen Sie die -r Option. Sollten Sie auch die\n"
+"Adressen der Listenadministratoren ändern wollen, verwenden Sie die Option\n"
+"-a.\n"
+"\n"
+"Benutzung:\n"
+" clone_member [optionen] von_alter_adresse nach_neue_adresse\n"
+"\n"
+"Where:\n"
+"\n"
+" --listname=listname\n"
+" -l listname\n"
+" Überprüfe und modifiziere nur die angegebene Listen. Wenn die -l\n"
+" Option nicht angegeben wurde, wird nach der Adresse in allen Listen\n"
+" gesucht. Mehrfache -l Optionsangaben sind zulässig.\n"
+"\n"
+" --remove\n"
+" -r\n"
+" Lösche die alten Adressen auf der Mailingliste nach dem Klonen.\n"
+"\n"
+" --admin\n"
+" -a\n"
+" Durchsuche die Adressen der Listenadmins nach der alten Adresse\n"
+" und klone oder ändere diese ebenso.\n"
+"\n"
+" --quiet\n"
+" -q\n"
+" Führe alle Modifikationen still durch.\n"
+"\n"
+" --nomodify\n"
+" -n\n"
+" Zeige an, was passieren würde, aber ändere nichts.\n"
+" Macht die --quiet Option unwirksam.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Ausgabe dieser Meldung und Schluss.\n"
+"\n"
+"von_alter_adresse ist die alte Adresse des Mitglieds, nach_neue_adresse\n"
+"ist die neue.\n"
+"\n"
+
+# Mailman/Cgi/admin.py:377
+#: bin/clone_member:94
+msgid "processing mailing list:"
+msgstr "Bearbeite Mailingliste: "
+
+#: bin/clone_member:101
+msgid " scanning list owners:"
+msgstr "durchsuche Listeneigentümer: "
+
+# Mailman/Cgi/rmlist.py:88
+#: bin/clone_member:119
+msgid " new list owners:"
+msgstr " neue Listeneigentümer: "
+
+#: bin/clone_member:121
+msgid "(no change)"
+msgstr "(keine Änderung)"
+
+#: bin/clone_member:130
+msgid " address not found:"
+msgstr " Adresse nicht gefunden: "
+
+#: bin/clone_member:139
+msgid " clone address added:"
+msgstr " geklonte Adresse hinzugefügt: "
+
+# Mailman/Cgi/admindb.py:364
+#: bin/clone_member:142
+msgid " clone address is already a member:"
+msgstr " geklonte Adresse ist bereits Mitglied: "
+
+# Mailman/Cgi/options.py:267
+#: bin/clone_member:145
+msgid " original address removed:"
+msgstr " originale Emailadresse wurde entfernt: "
+
+# Mailman/Cgi/create.py:170
+#: bin/clone_member:196
+msgid "Not a valid email address: %(toaddr)s"
+msgstr "Ungültige Emailadresse: %(toaddr)s"
+
+#: bin/clone_member:209
+msgid ""
+"Error opening list \"%(listname)s\", skipping.\n"
+"%(e)s"
+msgstr ""
+"Fehler beim Öffnen der Liste \"%(listname)s\", wird übersprungen.\n"
+"%(e)s"
+
+#: bin/config_list:19
+msgid ""
+"Configure a list from a text file description.\n"
+"\n"
+"Usage: config_list [options] listname\n"
+"\n"
+"Options:\n"
+" --inputfile filename\n"
+" -i filename\n"
+" Configure the list by assigning each module-global variable in the\n"
+" file to an attribute on the list object, then saving the list. The\n"
+" named file is loaded with execfile() and must be legal Python code.\n"
+" Any variable that isn't already an attribute of the list object is\n"
+" ignored (a warning message is printed). See also the -c option.\n"
+"\n"
+" A special variable named `mlist' is put into the globals during the\n"
+" execfile, which is bound to the actual MailList object. This lets "
+"you\n"
+" do all manner of bizarre thing to the list object, but BEWARE! "
+"Using\n"
+" this can severely (and possibly irreparably) damage your mailing "
+"list!\n"
+"\n"
+" --outputfile filename\n"
+" -o filename\n"
+" Instead of configuring the list, print out a list's configuration\n"
+" variables in a format suitable for input using this script. In "
+"this\n"
+" way, you can easily capture the configuration settings for a\n"
+" particular list and imprint those settings on another list. "
+"filename\n"
+" is the file to output the settings to. If filename is `-', "
+"standard\n"
+" out is used.\n"
+"\n"
+" --checkonly\n"
+" -c\n"
+" With this option, the modified list is not actually changed. Only\n"
+" useful with -i.\n"
+"\n"
+" --verbose\n"
+" -v\n"
+" Print the name of each attribute as it is being changed. Only "
+"useful\n"
+" with -i.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+"The options -o and -i are mutually exclusive.\n"
+"\n"
+msgstr ""
+"Konfiguriere eine Mailingliste anhand einer Textdatei.\n"
+"\n"
+"Banutzung: konfig_liste [optionen] listenname\n"
+"\n"
+"Optionen:\n"
+" --inputfile filename\n"
+" -i filename\n"
+" Konfiguriere eine Liste durch Zuweisung der modulweit globalen\n"
+" Variablen aus der Textdatei an ein Attribut des Listenobjekts.\n"
+" Anschliessend wird die Liste gespeichert. Die angegebene Datei wird\n"
+" mit execfile() geladen und muss zulässigen Pythoncode enthalten.\n"
+" Jede Variable, die nicht bereits ein Attribut des Listnobjektes "
+"ist,\n"
+" wird ignoriert (unter Ausgabe einer Warnung). Siehe auch: -c "
+"Option.\n"
+"\n"
+" Eine Spezialvariable namens `mlist' wird in den globalen Namensraum\n"
+" geladen, wenn execfile() aufgerufen wird (welches an das aktuelle\n"
+" MailList-Objekt gebunden ist). Damit lassen sich allerlei bizarre\n"
+" Sachen mit der Mailingliste anstellen. Aber ACHTUNG! Der Einsatz\n"
+" dieser Option kann schweren, womöglich gar irreparablen Schaden an\n"
+" Ihrer Mailingliste anrichten!\n"
+"\n"
+" --outputfile filename\n"
+" -o filename\n"
+" Anstatt die Liste zu konfigurieren, gebe eine Aufstellung der\n"
+" Konfigurationsvariablen der Liste in einer für dieses Skript\n"
+" lesbaren Form aus. Mit dieser Option lassen sich ganz einfach die\n"
+" Konfigurationsdaten einer Liste auf eine andere übertragen.\n"
+" 'filename' ist der Name der Ausgabedatei für die Einstellungen.\n"
+" Wird '-' angegeben, wird die Ausgabe nach stdout geleitet.\n"
+"\n"
+" --checkonly\n"
+" -c\n"
+" Mit dieser Option wird die Liste nicht verändert. Nur sinnvoll\n"
+" in Verbindung mit der -i Option.\n"
+"\n"
+" --verbose\n"
+" -v\n"
+" Ausgabe des Namens jedes Attributes, wenn es geändert wird.\n"
+" Nur sinnvoll in Verbindung mit der -i Option.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Ausgabe dieser Meldung und Schluss.\n"
+"\n"
+"Die Optionen -i und -o schliessen sich gegenseitig aus.\n"
+"\n"
+
+#: bin/config_list:109
+msgid ""
+"## \"%(listname)s\" mailing list configuration settings -*- python -*-\n"
+"## captured on %(when)s\n"
+msgstr ""
+"## Konfiguration der Mailingliste \"%(listname)s\" -*- python -*-\n"
+"## Aufgezeichnet um %(when)s\n"
+
+# Mailman/Gui/Digest.py:27
+#: bin/config_list:131
+msgid "options"
+msgstr "Optionen"
+
+#: bin/config_list:188
+msgid "legal values are:"
+msgstr "zulässige Werte sind: "
+
+#: bin/config_list:255
+msgid "attribute \"%(k)s\" ignored"
+msgstr "Attribut \"%(k)s\" wurde ignoriert"
+
+#: bin/config_list:258
+msgid "attribute \"%(k)s\" changed"
+msgstr "Attribut \"%(k)s\" wurde geändert"
+
+#: bin/config_list:264
+msgid "Non-standard property restored: %(k)s"
+msgstr ""
+
+#: bin/config_list:272
+msgid "Invalid value for property: %(k)s"
+msgstr "Ungültiger Wert für %(k)s"
+
+# Mailman/Cgi/admin.py:1169
+#: bin/config_list:274
+msgid "Bad email address for option %(k)s: %(v)s"
+msgstr "Ungültige Email-Adresse für %(k)s: %(v)s"
+
+#: bin/config_list:322
+msgid "Only one of -i or -o is allowed"
+msgstr "Nur eine der -i und -o Optionen ist erlaubt"
+
+#: bin/config_list:324
+msgid "One of -i or -o is required"
+msgstr "Entweder -i oder -o muss angegeben werden"
+
+# Mailman/Cgi/edithtml.py:57
+#: bin/config_list:328
+msgid "List name is required"
+msgstr "Der Name der Liste ist erforderlich"
+
+#: bin/convert.py:19
+msgid ""
+"Convert a list's interpolation strings from %-strings to $-strings.\n"
+"\n"
+"This script is intended to be run as a bin/withlist script, i.e.\n"
+"\n"
+"% bin/withlist -l -r convert <mylist>\n"
+msgstr ""
+
+# Mailman/MailCommandHandler.py:444
+#: bin/convert.py:38 bin/fix_url.py:85
+msgid "Saving list"
+msgstr "Speichere Liste"
+
+#: bin/convert.py:44 bin/fix_url.py:51
+msgid "%%%"
+msgstr "%%%"
+
+#: bin/dumpdb:19
+msgid ""
+"Dump the contents of any Mailman `database' file.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] filename\n"
+"\n"
+"Options:\n"
+"\n"
+" --marshal/-m\n"
+" Assume the file contains a Python marshal, overridding any "
+"automatic\n"
+" guessing.\n"
+"\n"
+" --pickle/-p\n"
+" Assume the file contains a Python pickle, overridding any automatic\n"
+" guessing.\n"
+"\n"
+" --noprint/-n\n"
+" Don't attempt to pretty print the object. This is useful if "
+"there's\n"
+" some problem with the object and you just want to get an unpickled\n"
+" representation. Useful with `python -i bin/dumpdb <file>'. In "
+"that\n"
+" case, the root of the tree will be left in a global called \"msg\".\n"
+"\n"
+" --help/-h\n"
+" Print this help message and exit\n"
+"\n"
+"If the filename ends with `.db', then it is assumed that the file contains "
+"a\n"
+"Python marshal. If the file ends with `.pck' then it is assumed to contain "
+"a\n"
+"Python pickle. In either case, if you want to override the default "
+"assumption\n"
+"-- or if the file ends in neither suffix -- use the -p or -m flags.\n"
+msgstr ""
+"Extrahiert den Inhalt von Mailman-Datenbanken (.db oder .pck).\n"
+"\n"
+"Benutzung: %(PROGRAM)s [optionen] dateiname\n"
+"\n"
+"Optionen:\n"
+"\n"
+" --marshal/-m\n"
+" Setze voraus, das die Datei ein \"Python marshal\" enthält.\n"
+" Unterdrückt das automatische Raten des Dateityps.\n"
+"\n"
+" --pickle/-p\n"
+" Setze voraus, das die Datei ein \"Python pickle\" enthält.\n"
+" Unterdrückt das automatische Raten des Dateityps.\n"
+"\n"
+" --noprint/-n\n"
+" Don't attempt to pretty print the object. This is useful if there's\n"
+" some problem with the object and you just want to get an unpickled\n"
+" representation. Useful with `python -i bin/dumpdb <file>'. In "
+"that\n"
+" case, the root of the tree will be left in a global called \"msg\".\n"
+"\n"
+" --help/-h\n"
+" Ausgabe dieser Meldung und Schluss.\n"
+"\n"
+"Wenn der Dateiname mit einem '.db' endet, wird davon ausgegangen, das die\n"
+"Datei einen \"Python marshal\" enthält. Endet der Dateiname mit einem '.db'\n"
+"wird vermutet, das die Datei einen \"Python pickle\" enthält. In beiden\n"
+"Fällen können Sie das Verhalten des Programms mit den Schaltern -p oder -m\n"
+"steuern.\n"
+
+# Mailman/Cgi/admindb.py:338 Mailman/ListAdmin.py:258
+#: bin/dumpdb:101
+msgid "No filename given."
+msgstr "Dateiname nicht angegeben."
+
+#: bin/dumpdb:104
+msgid "Bad arguments: %(pargs)s"
+msgstr "Ungültiges Argument: %(pargs)s"
+
+#: bin/dumpdb:114
+msgid "Please specify either -p or -m."
+msgstr "Bitte entweder -p oder -m angeben."
+
+#: bin/find_member:19
+msgid ""
+"Find all lists that a member's address is on.\n"
+"\n"
+"Usage:\n"
+" find_member [options] regex [regex [...]]\n"
+"\n"
+"Where:\n"
+" --listname=listname\n"
+" -l listname\n"
+" Include only the named list in the search.\n"
+"\n"
+" --exclude=listname\n"
+" -x listname\n"
+" Exclude the named list from the search.\n"
+"\n"
+" --owners\n"
+" -w\n"
+" Search list owners as well as members.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" regex\n"
+" A Python regular expression to match against.\n"
+"\n"
+"The interaction between -l and -x is as follows. If any -l option is given\n"
+"then only the named list will be included in the search. If any -x option "
+"is\n"
+"given but no -l option is given, then all lists will be search except those\n"
+"specifically excluded.\n"
+"\n"
+"Regular expression syntax is Perl5-like, using the Python re module. "
+"Complete\n"
+"specifications are at:\n"
+"\n"
+"http://www.python.org/doc/current/lib/module-re.html\n"
+"\n"
+"Address matches are case-insensitive, but case-preserved addresses are\n"
+"displayed.\n"
+"\n"
+msgstr ""
+"Finde alle Listen, in denen eine Mitgliederadresse enthalten ist.\n"
+"\n"
+"Benutzung:\n"
+" find_member [optionen] regex [regex [...]]\n"
+"\n"
+"Wobei gilt:\n"
+" --listname=listname\n"
+" -l listname\n"
+" Nur die angegebene Liste durchsuchen.\n"
+"\n"
+" --exclude=listname\n"
+" -x listname\n"
+" Ausschliessen einer Liste von der Suche.\n"
+"\n"
+" --owners\n"
+" -w\n"
+" Suche nach Besitzer einer Liste, wie auch nach Mitgliedern.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Ausgabe dieser Meldung und Schluss.\n"
+"\n"
+" regex\n"
+" Ein Python regulärer Ausdruck, nach dem gesucht werden soll.\n"
+"\n"
+"Das Zusammenspiel der -l und -x Optionen geschieht wie folgt. Ist nur eine\n"
+"-l Option vorhanden, wird nur die angegebene Liste zur Suche benutzt.\n"
+"Wurde eine -x Option angegeben, aber keine -l Option, werden alle Listen\n"
+"mit Ausnahme der ausdrücklich ausgeschlossenen durchsucht.\n"
+"\n"
+"Die vom Python re-Modul benutzte Syntax für reguläre Ausdrücke entspricht\n"
+"der von Perl5. Die kompletten Spezifikationen sind erhältlich unter:\n"
+"\n"
+"http://www.python.org/doc/current/lib/module-re.html\n"
+"\n"
+"Die Adresssuche ignoriert Gross-/Kleinschreibung, zeigt jedoch unter-\n"
+"schiedliche Schreibweisen der Adressen an.\n"
+"\n"
+
+#: bin/find_member:159
+msgid "Search regular expression required"
+msgstr "Suchmuster erforderlich (Regulärer Ausdruck)"
+
+#: bin/find_member:164
+msgid "No lists to search"
+msgstr "Keine Listen für Suche verfügbar"
+
+#: bin/find_member:173
+msgid "found in:"
+msgstr "gefunden in: "
+
+#: bin/find_member:179
+msgid "(as owner)"
+msgstr "(als Besitzer)"
+
+#: bin/fix_url.py:19
+msgid ""
+"Reset a list's web_page_url attribute to the default setting.\n"
+"\n"
+"This script is intended to be run as a bin/withlist script, i.e.\n"
+"\n"
+"% bin/withlist -l -r fix_url listname [options]\n"
+"\n"
+"Options:\n"
+" -u urlhost\n"
+" --urlhost=urlhost\n"
+" Look up urlhost in the virtual host table and set the web_page_url "
+"and\n"
+" host_name attributes of the list to the values found. This\n"
+" essentially moves the list from one virtual domain to another.\n"
+"\n"
+" Without this option, the default web_page_url and host_name values "
+"are\n"
+" used.\n"
+"\n"
+" -v / --verbose\n"
+" Print what the script is doing.\n"
+"\n"
+"If run standalone, it prints this help text and exits.\n"
+msgstr ""
+
+#: bin/fix_url.py:80
+msgid "Setting web_page_url to: %(web_page_url)s"
+msgstr "Setze web_page_url auf: %(web_page_url)s"
+
+#: bin/fix_url.py:83
+msgid "Setting host_name to: %(mailhost)s"
+msgstr "Setze host_name auf: %(mailhost)s"
+
+#: bin/genaliases:19
+msgid ""
+"Regenerate Postfix's data/aliases and data/aliases.db files from scratch.\n"
+"\n"
+"Usage:\n"
+"\n"
+" genaliases [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+msgstr ""
+"Regeneriere Postfix's data/aliases und data/aliases.db Dateien.\n"
+"\n"
+"Benutzung:\n"
+"\n"
+" genaliases [optionen]\n"
+"\n"
+"Options:\n"
+"\n"
+" -h/--help\n"
+" Ausgabe dieses Hilfetextes.\n"
+
+#: bin/inject:19
+msgid ""
+"Inject a message from a file into Mailman's incoming queue.\n"
+"\n"
+"Usage: inject [options] [filename]\n"
+"\n"
+"Options:\n"
+"\n"
+" -h / --help\n"
+" Print this text and exit.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" The name of the list to inject this message to. Required.\n"
+"\n"
+" -q queuename\n"
+" --queue=queuename\n"
+" The name of the queue to inject the message to. The queuename must "
+"be\n"
+" one of the directories inside the qfiles directory. If omitted, "
+"the\n"
+" incoming queue is used.\n"
+"\n"
+"filename is the name of the plaintext message file to inject. If omitted,\n"
+"standard input is used.\n"
+msgstr ""
+
+#: bin/inject:83
+msgid "Bad queue directory: %(qdir)s"
+msgstr "Falsches queue-Verzeichnis: %(qdir)s"
+
+# Mailman/Cgi/edithtml.py:57
+#: bin/inject:88
+msgid "A list name is required"
+msgstr "Ein Name der Liste ist erforderlich"
+
+#: bin/list_admins:19
+msgid ""
+"List all the owners of a mailing list.\n"
+"\n"
+"Usage: %(program)s [options] listname ...\n"
+"\n"
+"Where:\n"
+"\n"
+" --all-vhost=vhost\n"
+" -v=vhost\n"
+" List the owners of all the mailing lists for the given virtual "
+"host.\n"
+"\n"
+" --all\n"
+" -a\n"
+" List the owners of all the mailing lists on this system.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+"`listname' is the name of the mailing list to print the owners of. You can\n"
+"have more than one named list on the command line.\n"
+msgstr ""
+"Anzeige aller Besitzer einer Mailingliste.\n"
+"\n"
+"Benutzung: %(program)s [optionen] listenname ...\n"
+"\n"
+"Wobei gilt:\n"
+"\n"
+" --all-vhost=vhost\n"
+" -v=vhost\n"
+" Anzeige aller Besitzer einer Mailingliste innerhalb des angegebenen\n"
+" virtuellen Hosts.\n"
+"\n"
+" --all\n"
+" -a\n"
+" Anzeige aller Besitzer aller Mailinglisten auf diesem System.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Ausgabe dieser Meldung und Schluss.\n"
+"\n"
+"`listenname' ist der Name der Mailingliste, deren Besitzer angezeigt werden\n"
+"sollen. Es können mehrere Listen auf der Kommandozeile angegeben werden.\n"
+
+#: bin/list_admins:96
+msgid "List: %(listname)s, \tOwners: %(owners)s"
+msgstr "Liste: %(listname)s, \tEigentümer: %(owners)s"
+
+#: bin/list_lists:19
+msgid ""
+"List all mailing lists.\n"
+"\n"
+"Usage: %(program)s [options]\n"
+"\n"
+"Where:\n"
+"\n"
+" -a / --advertised\n"
+" List only those mailing lists that are publically advertised\n"
+"\n"
+" --virtual-host-overview=domain\n"
+" -V domain\n"
+" List only those mailing lists that are homed to the given virtual\n"
+" domain. This only works if the VIRTUAL_HOST_OVERVIEW variable is\n"
+" set.\n"
+"\n"
+" -b / --bare\n"
+" Displays only the list name, with no description.\n"
+"\n"
+" -h / --help\n"
+" Print this text and exit.\n"
+"\n"
+msgstr ""
+"Anzeige aller Mailinglisten.\n"
+"\n"
+"Benutzung: %(program)s [optionen]\n"
+"\n"
+"Wobei gilt:\n"
+"\n"
+" --advertised\n"
+" -a\n"
+" Nur solche Listen anzeigen, die öffentlich gelisted werden.\n"
+"\n"
+" --virtual-host-overview=domain\n"
+" -V domain\n"
+" Nur Listen anzeigen, die in der angegebenen virtuellen Domäne\n"
+" zu Hause sind. Dies funktioniert nur, wenn die Umgebungsvariable\n"
+" VIRTUAL_HOST_OVERVIEW gesetzt ist.\n"
+"\n"
+" -b / --bare\n"
+" Listet nur Mailinglisten ohne gesetzte Kurzbeschreibung.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Ausgabe dieser Meldung und Schluss.\n"
+"\n"
+
+# Mailman/Cgi/admin.py:377
+#: bin/list_lists:105
+msgid "No matching mailing lists found"
+msgstr "Keine passende Mailinglisten gefunden"
+
+# Mailman/Cgi/admin.py:377
+#: bin/list_lists:109
+msgid "matching mailing lists found:"
+msgstr "Passende Mailinglisten gefunden: "
+
+#: bin/list_members:19
+msgid ""
+"List all the members of a mailing list.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] listname\n"
+"\n"
+"Where:\n"
+"\n"
+" --output file\n"
+" -o file\n"
+" Write output to specified file instead of standard out.\n"
+"\n"
+" --regular / -r\n"
+" Print just the regular (non-digest) members.\n"
+"\n"
+" --digest[=kind] / -d [kind]\n"
+" Print just the digest members. Optional argument can be \"mime\" "
+"or\n"
+" \"plain\" which prints just the digest members receiving that kind "
+"of\n"
+" digest.\n"
+"\n"
+" --nomail[=why] / -n [why]\n"
+" Print the members that have delivery disabled. Optional argument "
+"can\n"
+" be \"byadmin\", \"byuser\", \"bybounce\", or \"unknown\" which "
+"prints just the\n"
+" users who have delivery disabled for that reason. It can also be\n"
+" \"enabled\" which prints just those member for whom delivery is\n"
+" enabled.\n"
+"\n"
+" --fullnames / -f\n"
+" Include the full names in the output.\n"
+"\n"
+" --preserve\n"
+" -p\n"
+" Output member addresses case preserved the way they were added to "
+"the\n"
+" list. Otherwise, addresses are printed in all lowercase.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname is the name of the mailing list to use.\n"
+"\n"
+"Note that if neither -r or -d is supplied, both regular members are printed\n"
+"first, followed by digest members, but no indication is given as to address\n"
+"status.\n"
+msgstr ""
+"Anzeigen aller Mitglieder einer Mailingliste.\n"
+"\n"
+"Benutzung: %(PROGRAM) [-o datei] [-r] [-d] [-p] [-h] listenname\n"
+"\n"
+"Optionen:\n"
+"\n"
+" --output file\n"
+" -o file\n"
+" Ausgabe in angegebene Datei anstatt auf die Standardausgabe.\n"
+"\n"
+" --regular\n"
+" -r\n"
+" Nur die normalen Mitglieder ausgeben, keine Mitglieder von\n"
+" Nachrichtenübersichten (Digests).\n"
+"\n"
+" --digest\n"
+" -d\n"
+" Nur die Mitglieder von Nachrichtenübersichten (Digests) ausgeben.\n"
+"\n"
+" --nomail[=why] / -n [why]\n"
+" Listet Mitglieder, deren Account deaktiviert ist. Optional können Sie\n"
+" nach der Ursache der Deaktivierung filtern: \"byadmin\", \"byuser\", \n"
+" \"bybounce\", oder \"unknown\". Sie können auch \"enabled\"\n"
+" angeben, das listet alle normalen Nutzer auf.\n"
+"\n"
+" --fullnames / -f\n"
+" Gibt auch den Realnamen der User mit aus.\n"
+"\n"
+" --preserve\n"
+" -p\n"
+" Behält die Schreibweise der Mitglieder-Emailadressen sp bei, wie sie\n"
+" eingetragen wurden. Ansonsten werden die Adressen in Kleinbuchstaben\n"
+" umgewandelt.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Ausgabe dieser Meldung und Schluss.\n"
+"\n"
+" listenname ist der Name der zu benutzenden Mailingliste.\n"
+"\n"
+"Bitte beachten Sie, das bei Nichtangabe der -r oder -d Optionen alle\n"
+"Mitglieder ausgegeben werden (zuerst die normalen Mitglieder, gefolgt von\n"
+"den Mitgliedern der Nachrichtenübersichten (Digests)). Es wird allerdings\n"
+"keine gesonderte Statusanzeige mit ausgegeben. Somit ist nicht sichtbar, in\n"
+"welcher Katagorie ein Benutzer Mitglied ist\n"
+".\n"
+
+#: bin/list_members:150
+msgid "Bad --nomail option: %(why)s"
+msgstr "Falsche --nomail Option: %(why)s"
+
+# Mailman/Gui/Digest.py:27
+#: bin/list_members:161
+msgid "Bad --digest option: %(kind)s"
+msgstr "Falsche --digest Option: %(kind)s"
+
+#: bin/list_members:179
+msgid "Could not open file for writing:"
+msgstr "Logdatei konnte nicht zum Schreiben geöffnet werden: "
+
+#: bin/list_owners:19
+msgid ""
+"List the owners of a mailing list, or all mailing lists.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname ...]\n"
+"Options:\n"
+"\n"
+" -w / --with-listnames\n"
+" Group the owners by list names and include the list names in the\n"
+" output. Otherwise, the owners will be sorted and uniquified based "
+"on\n"
+" the email address.\n"
+"\n"
+" -m / --moderators\n"
+" Include the list moderators in the output.\n"
+"\n"
+" -h / --help\n"
+" Print this help message and exit.\n"
+"\n"
+" listname\n"
+" Print the owners of the specified lists. More than one can appear\n"
+" after the options. If there are no listnames provided, the owners "
+"of\n"
+" all the lists will be displayed.\n"
+msgstr ""
+
+#: bin/mailmanctl:19
+msgid ""
+"Primary start-up and shutdown script for Mailman's qrunner daemon.\n"
+"\n"
+"This script starts, stops, and restarts the main Mailman queue runners, "
+"making\n"
+"sure that the various long-running qrunners are still alive and kicking. "
+"It\n"
+"does this by forking and exec'ing the qrunners and waiting on their pids.\n"
+"When it detects a subprocess has exited, it may restart it.\n"
+"\n"
+"The qrunners respond to SIGINT, SIGTERM, and SIGHUP. SIGINT and SIGTERM "
+"both\n"
+"cause the qrunners to exit cleanly, but the master will only restart "
+"qrunners\n"
+"that have exited due to a SIGINT. SIGHUP causes the master and the "
+"qrunners\n"
+"to close their log files, and reopen then upon the next printed message.\n"
+"\n"
+"The master also responds to SIGINT, SIGTERM, and SIGHUP, which it simply\n"
+"passes on to the qrunners (note that the master will close and reopen its "
+"own\n"
+"log files on receipt of a SIGHUP). The master also leaves its own process "
+"id\n"
+"in the file data/master-qrunner.pid but you normally don't need to use this\n"
+"pid directly. The `start', `stop', `restart', and `reopen' commands handle\n"
+"everything for you.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [ start | stop | restart | reopen ]\n"
+"\n"
+"Options:\n"
+"\n"
+" -n/--no-restart\n"
+" Don't restart the qrunners when they exit because of an error or a\n"
+" SIGINT. They are never restarted if they exit in response to a\n"
+" SIGTERM. Use this only for debugging. Only useful if the `start'\n"
+" command is given.\n"
+"\n"
+" -u/--run-as-user\n"
+" Normally, this script will refuse to run if the user id and group "
+"id\n"
+" are not set to the `mailman' user and group (as defined when you\n"
+" configured Mailman). If run as root, this script will change to "
+"this\n"
+" user and group before the check is made.\n"
+"\n"
+" This can be inconvenient for testing and debugging purposes, so the -"
+"u\n"
+" flag means that the step that sets and checks the uid/gid is "
+"skipped,\n"
+" and the program is run as the current user and group. This flag is\n"
+" not recommended for normal production environments.\n"
+"\n"
+" Note though, that if you run with -u and are not in the mailman "
+"group,\n"
+" you may have permission problems, such as begin unable to delete a\n"
+" list's archives through the web. Tough luck!\n"
+"\n"
+" -s/--stale-lock-cleanup\n"
+" If mailmanctl finds an existing master lock, it will normally exit\n"
+" with an error message. With this option, mailmanctl will perform "
+"an\n"
+" extra level of checking. If a process matching the host/pid "
+"described\n"
+" in the lock file is running, mailmanctl will still exit, but if no\n"
+" matching process is found, mailmanctl will remove the apparently "
+"stale\n"
+" lock and make another attempt to claim the master lock.\n"
+"\n"
+" -q/--quiet\n"
+" Don't print status messages. Error messages are still printed to\n"
+" standard error.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+"\n"
+"Commands:\n"
+"\n"
+" start - Start the master daemon and all qrunners. Prints a message "
+"and\n"
+" exits if the master daemon is already running.\n"
+"\n"
+" stop - Stops the master daemon and all qrunners. After stopping, no\n"
+" more messages will be processed.\n"
+"\n"
+" restart - Restarts the qrunners, but not the master process. Use this\n"
+" whenever you upgrade or update Mailman so that the qrunners "
+"will\n"
+" use the newly installed code.\n"
+"\n"
+" reopen - This will close all log files, causing them to be re-opened "
+"the\n"
+" next time a message is written to them\n"
+msgstr ""
+"Skript zum Hoch- und Runterfahren des qrunner-Dämons.\n"
+"\n"
+"Dieses Skript startet, stoppt und restartet die Masterprozesse der Queue-\n"
+"Runner. Es stellt sicher, dass die qrunner-Subprozesse am Leben\n"
+"bleiben, indem es die Sub-qrunner-Kindprozesse startet "
+"und\n"
+"auf deren PIDs wartet. Sobald es feststellt, dass einer der Prozesse\n"
+"beendet wurde, startet es diese erneut.\n"
+"\n"
+"Die Sub-qrunner verarbeiten die Signale SIGINT, SIGTERM, und SIGHUP. SIGINT\n"
+"und SIGTERM lassen die sub-qrunner sauber beenden, aber der Masterprozess\n"
+"wird nur solche Sub-qrunner restarten, die auf ein SIGINT hin geendet haben\n"
+"SIGHUP veranlasst den Master- und die Sub-qrunner, ihre Logfiles zu\n"
+"schliessen und diese bei Eintreffen der nächsten Meldung erneut zu öffnen.\n"
+"\n"
+"Der Master-qrunner reagiert auch auf SIGINT, SIGTERM, und SIGHUP, die er\n"
+"einfach an dei Sub-qrunner weiterleitet. Der Master setzt seine Logdateien\n"
+"nach einem SIGHUP ebenfalls zurück. In der Datei data/master-qrunner.pid\n"
+"hinterlässt der Master seine PID, doch i.d.R. wird die PID nie direkt\n"
+"benötigt. Die `start', `stop', `restart' und `reopen' Befehle erledigen\n"
+"alles für Sie.\n"
+"\n"
+"Benutzung: %(PROGRAM) [optionen] [ start | stop | restart | reopen ]\n"
+"\n"
+"Optionen:\n"
+"\n"
+" -n/--no-restart\n"
+" Kein Restart der sub-qrunner, wenn diese aufgrund eines Fehlers\n"
+" oder eines SIGINT geendet haben (sie werden nie neu gestartet, wenn\n"
+" sie sich auf ein SIGTERM hin beendet haben).\n"
+" Nur zu Debuggingzwecken und in Verbindung mit der start-Option.\n"
+"\n"
+" -u/--run-as-user\n"
+" Normalerweise verweigert das Skript die Arbeit, wenn die UID/GID\n"
+" nicht die des Benutzers 'mailman' sind (abhängig von der Mailman-\n"
+" Konfiguration bei der Installation). Wird dieses Skript als User\n"
+" 'root' gestartet, wechselt es nach dem Start die UID/GID. Nur für\n"
+" Debuggingzwecke und nicht für Produktionsumgebungen gedacht.\n"
+"\n"
+" -s/--stale-lock-cleanup\n"
+" Findet mailmanctl eine vorhandene Master-Sperrdatei, bricht es\n"
+" normalerweise mit einer Fehlermeldung ab. Mit dieser Option führt\n"
+" es eine Extraprüfung durch: Läuft ein Prozess mit der gleichen PID\n"
+" wie in der PID-Datei enthalten, bricht es nach wie vor ab. Ist\n"
+" hingegen kein laufender Prozess vorhanden, wird die PID-Datei\n"
+" entfernt und ein erneuter Versuch unternommen, die Sperrdatei des\n"
+" Masterprozesses an sich zu bringen.\n"
+"\n"
+" -q/--quiet\n"
+" Keine Ausgabe von Statusmeldungen. Fehler gehen nach STDERR.\n"
+"\n"
+" -h/--help\n"
+" Ausgabe dieser Meldung und Schluss.\n"
+"\n"
+"Befehle:\n"
+"\n"
+" start - Startet den Master-qrunner Prozessd und alle Sub-qrunner.\n"
+" Gibt eine Statusmeldung aus und beendet sich sofort wieder,\n"
+" wenn der Master bereits läuft.\n"
+"\n"
+" stop - Stoppt den Master-qrunner Prozessd und alle Sub-qrunner.\n"
+" Nach dem Anhalten werden keine Maldungen mehr ausgegeben.\n"
+"\n"
+" restart - Restartet die Sub-qrunners, aber nicht den Master. Dies ist\n"
+" sehr praktisch für Entwickler, denn ohne den Restart würden\n"
+" die sub-qrunners keine modifizierten Module nachladen.\n"
+"\n"
+" reopen - Schliessen der Logdateien, gefolgt von einem Neuöffnen.\n"
+
+#: bin/mailmanctl:149
+msgid "PID unreadable in: %(pidfile)s"
+msgstr "PID in %(pidfile)s nicht lesbar"
+
+#: bin/mailmanctl:151
+msgid "Is qrunner even running?"
+msgstr "Läuft qrunner überhaupt?"
+
+#: bin/mailmanctl:157
+msgid "No child with pid: %(pid)s"
+msgstr "Kein Kindprozess mit der PID %(pid)s vorhanden"
+
+#: bin/mailmanctl:159
+msgid "Stale pid file removed."
+msgstr "Liegengebliebene pid-Datei entfernt."
+
+#: bin/mailmanctl:217
+msgid ""
+"The master qrunner lock could not be acquired because it appears as if "
+"another\n"
+"master qrunner is already running.\n"
+msgstr ""
+"Die Sperre des qrunner-Masterprozesses konnte nicht übernommen werden.\n"
+"Ein anderer qrunner scheint bereits zu laufen.\n"
+
+#: bin/mailmanctl:223
+msgid ""
+"The master qrunner lock could not be acquired. It appears as though there "
+"is\n"
+"a stale master qrunner lock. Try re-running mailmanctl with the -s flag.\n"
+msgstr ""
+"Die Sperre des qrunner-Masterprozesses konnte nicht übernommen werden. Es\n"
+"sieht so aus, als ob dies eine ungültige Sperre ist.\n"
+"Rufen Sie das das Programm mailmanctl mit der -s Option nochmals auf.\n"
+
+#: bin/mailmanctl:229
+msgid ""
+"The master qrunner lock could not be acquired, because it appears as if "
+"some\n"
+"process on some other host may have acquired it. We can't test for stale\n"
+"locks across host boundaries, so you'll have to do this manually. Or, if "
+"you\n"
+"know the lock is stale, re-run mailmanctl with the -s flag.\n"
+"\n"
+"Lock file: %(LOCKFILE)s\n"
+"Lock host: %(status)s\n"
+"\n"
+"Exiting."
+msgstr ""
+"Die Sperre des qrunner-Masterprozesses konnte nicht übernommen werden. Es\n"
+"sieht so aus, als ob die Sperre einem anderen Prozess auf einem anderen\n"
+"Hosts gehört. Wir können leider keinen Test auf ungültige Sperren über\n"
+"Hostgrenzen hinweg durchführen, also bleibt Ihnen nichts anderes übrig, als\n"
+"dies manuell zu tun. Wenn Sie sich ganz sicher sind, daß die Sperre "
+"ungültig\n"
+"ist, rufen Sie nochmals das Programm mailmanctl mit der -s Option auf.\n"
+"\n"
+"Sperrdatei: %(LOCKFILE)s\n"
+"Sperrhost: %(status)s\n"
+"\n"
+"Programmende."
+
+#: bin/mailmanctl:282
+msgid "Run this program as root or as the %(name)s user, or use -u."
+msgstr ""
+"Führen Sie dieses Programm als Benutzer root, oder %(name)s aus,\n"
+"bzw. benutzen Sie die Option -u."
+
+# Mailman/Cgi/admindb.py:338 Mailman/ListAdmin.py:258
+#: bin/mailmanctl:313
+msgid "No command given."
+msgstr "Keine Anweisung angegeben."
+
+#: bin/mailmanctl:316
+msgid "Bad command: %(command)s"
+msgstr "Unverständliche Anweisung: %(command)s"
+
+#: bin/mailmanctl:321
+msgid "Warning! You may encounter permission problems."
+msgstr "Warnung! Sie könnten Probleme mit Dateirechte bekommen!"
+
+#: bin/mailmanctl:330
+msgid "Shutting down Mailman's master qrunner"
+msgstr "Herunterfahren des qrunner-Masterprozesses"
+
+#: bin/mailmanctl:337
+msgid "Restarting Mailman's master qrunner"
+msgstr "Restarte Mailman's qrunner-Masterprozess"
+
+#: bin/mailmanctl:341
+msgid "Re-opening all log files"
+msgstr "Wiedereröffnen aller Logdateien"
+
+#: bin/mailmanctl:375
+msgid "Starting Mailman's master qrunner."
+msgstr "Starte Mailman's qrunner-Masterprozess."
+
+#: bin/mmsitepass:19
+msgid ""
+"Set the site password, prompting from the terminal.\n"
+"\n"
+"The site password can be used in most if not all places that the list\n"
+"administrator's password can be used, which in turn can be used in most "
+"places\n"
+"that a list users password can be used.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [password]\n"
+"\n"
+"Options:\n"
+"\n"
+" -c/--listcreator\n"
+" Set the list creator password instead of the site password. The "
+"list\n"
+" creator is authorized to create and remove lists, but does not have\n"
+" the total power of the site administrator.\n"
+"\n"
+" -h/--help\n"
+" Print this help message and exit.\n"
+"\n"
+"If password is not given on the command line, it will be prompted for.\n"
+msgstr ""
+"Setzt das Master-Passwort (site password).\n"
+"\n"
+"Das Masterpasswort kann an allen Stellen benutzt werden, an denen nach\n"
+"dem Passwort eines Listenadministrators gefragt wird. Dieses wiederrum kann\n"
+"an fast allen Stellen benutzt werden, an denen nach dem Passwort eines Listen-\n"
+"Mitgliedes verlangt wird.\n"
+"\n"
+"Benutzung: %(PROGRAM)s [optionen] [passwort]\n"
+"\n"
+"Optionen:\n"
+"\n"
+" -c/--listcreator\n"
+" Setzt das Passwort für den Erzeuger einer Mailingliste.\n"
+" Der Erzeuger einer Liste ist berechtigt, Listen zu erstellen und\n"
+" zu löschen, hat aber nicht die Rechte des Masteradministrators.\n"
+"\n"
+" -h/--help\n"
+" Ausgabe dieser Meldung und Schluss.\n"
+"\n"
+"Wurde kein Passwort in der Kommandozeile angegeben, fragt das Programm "
+"danach.\n"
+
+# Mailman/Cgi/subscribe.py:116
+#: bin/mmsitepass:73
+msgid "site"
+msgstr "Webseite"
+
+# Mailman/Cgi/Auth.py:48
+#: bin/mmsitepass:80
+msgid "list creator"
+msgstr "Administrator"
+
+#: bin/mmsitepass:86
+msgid "New %(pwdesc)s password: "
+msgstr "Neues %(pwdesc)s Passwort: "
+
+# Mailman/Cgi/create.py:312
+#: bin/mmsitepass:87
+msgid "Again to confirm password: "
+msgstr "Passwort bestätigen:"
+
+# Mailman/Cgi/options.py:296
+#: bin/mmsitepass:89
+msgid "Passwords do not match; no changes made."
+msgstr "Die Passwörter sind nicht identisch!"
+
+#: bin/mmsitepass:92
+msgid "Interrupted..."
+msgstr "Unterbrochen..."
+
+# Mailman/Cgi/options.py:312
+#: bin/mmsitepass:98
+msgid "Password changed."
+msgstr "Passwort erfolgreich geändert."
+
+# Mailman/Cgi/options.py:312
+#: bin/mmsitepass:100
+msgid "Password change failed."
+msgstr "Ändern des Passwortes gescheitert."
+
+#: bin/newlist:19
+msgid ""
+"Create a new, unpopulated mailing list.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname [listadmin-addr [admin-password]]]\n"
+"\n"
+"Options:\n"
+"\n"
+" -l language\n"
+" --language language\n"
+" Make the list's preferred language `language', which must be a two\n"
+" letter language code.\n"
+"\n"
+" -q/--quiet\n"
+" Normally the administrator is notified by email (after a prompt) "
+"that\n"
+" their list has been created. This option suppresses the prompt and\n"
+" notification.\n"
+"\n"
+" -h/--help\n"
+" Print this help text and exit.\n"
+"\n"
+"You can specify as many of the arguments as you want on the command line:\n"
+"you will be prompted for the missing ones.\n"
+"\n"
+"Every Mailman list has two parameters which define the default host name "
+"for\n"
+"outgoing email, and the default URL for all web interfaces. When you\n"
+"configured Mailman, certain defaults were calculated, but if you are "
+"running\n"
+"multiple virtual Mailman sites, then the defaults may not be appropriate "
+"for\n"
+"the list you are creating.\n"
+"\n"
+"You can specify the domain to create your new list in by spelling the "
+"listname\n"
+"like so:\n"
+"\n"
+" mylist@www.mydom.ain\n"
+"\n"
+"where `www.mydom.ain' should be the base hostname for the URL to this "
+"virtual\n"
+"hosts's lists. E.g. with is setting people will view the general list\n"
+"overviews at http://www.mydom.ain/mailman/listinfo. Also, www.mydom.ain\n"
+"should be a key in the VIRTUAL_HOSTS mapping in mm_cfg.py/Defaults.py. It\n"
+"will be looked up to give the email hostname. If this can't be found, then\n"
+"www.mydom.ain will be used for both the web interface and the email\n"
+"interface.\n"
+"\n"
+"If you spell the list name as just `mylist', then the email hostname will "
+"be\n"
+"taken from DEFAULT_EMAIL_HOST and the url will be taken from DEFAULT_URL "
+"(as\n"
+"defined in your Defaults.py file or overridden by settings in mm_cfg.py).\n"
+"\n"
+"Note that listnames are forced to lowercase.\n"
+msgstr ""
+"Erzeugt eine neue, leere Mailingliste.\n"
+"\n"
+"Benutzung: %(PROGRAM)s [opt.] [listenname [listadmin-email [admin-passwd]]]\n"
+"\n"
+"Optionen:\n"
+"\n"
+" -l language\n"
+" --language language\n"
+" Setzt `language' als Standard-Sprache der Liste an. Geben Sie dazu\n"
+" den zwei Buchstaben langen Ländercode an (z.B. 'de' oder 'en').\n"
+"\n"
+" -q/--quiet\n"
+" Normalerweise erhält der Administrator eine Email, wenn eine neue\n"
+" Mailingliste angelegt wurde. Diese Option unterdrückt diese Email.\n"
+"\n"
+" -h/--help\n"
+" Ausgabe dieser Meldung und Schluss.\n"
+"\n"
+"Auf der Kommandozeile können so viele Argumente angegeben werden, wie Sie\n"
+"wollen. Auf fehlende Parameter werden Sie vom Programm aufmerksam gemacht.\n"
+"\n"
+"Jede Mailman-Liste hat zwei Parameter, die den Standard-Hostnamen\n"
+"für ausgehende Mails und die Standard-URL für das Web-Interface\n"
+"festlegen. Mailman kommt zwar mit einer sinnvollen Grundeinstellung daher,\n"
+"wenn Sie aber mehrere virtuelle Mailman-Sites betreiben sollten, kann es\n"
+"durchaus vorkommen, dass die Standardwerte ungenügend sind.\n"
+"\n"
+"Die Domäne, die zur Erzeugung neuer Listen benutzt wird, kann wie folgt\n"
+"angegeben werden:\n"
+"\n"
+" mylist@www.mydom.ain\n"
+"\n"
+"wobei `www.mydom.ain' der Basis-Hostname der virtuellen Hosts sein sollte.\n"
+"In diesem Beispiel wäre die generelle Listenübersicht erreichbar unter\n"
+"http://www.mydom.ain/mailman/listinfo. Ebenso sollte www.mydom.ain einen\n"
+"Eintrag im VIRTUAL_HOSTS-Mapping in der Datei mm_cfg.py/Defaults.py haben,\n"
+"die zum Nachschlagen der Hostnamen für ausgehende Email benutzt wird. Ist\n"
+"kein solcher Eintrag vorhanden, wird www.mydom.ain sowohl für die Web-, als\n"
+"auch für die Emailschnittstelle herangezogen.\n"
+"\n"
+"Bei Angabe eines einfachen Listennamens (`mylist'), wird der Email-Hostname\n"
+"der Variablen DEFAULT_HOST_NAME und die URL aus DEFAULT_URL entnommen (wie\n"
+"in der Datei Defaults.py hinterlegt, oder überschrieben in mm_cfg.py).\n"
+"\n"
+"Bitte beachten Sie, das Listennamen in Kleinbuchstaben umgewandelt werden.\n"
+
+#: bin/newlist:118
+msgid "Unknown language: %(lang)s"
+msgstr "Unbekannte Sprache: %(lang)s"
+
+#: bin/newlist:123
+msgid "Enter the name of the list: "
+msgstr "Name der Mailingliste: "
+
+#: bin/newlist:140
+msgid "Enter the email of the person running the list: "
+msgstr "Emailadresse des Listenverwalters: "
+
+# Mailman/Cgi/create.py:307
+#: bin/newlist:145
+msgid "Initial %(listname)s password: "
+msgstr "Erstmaliges Passwort für die Liste %(listname)s: "
+
+# Mailman/Cgi/create.py:128 bin/newlist:137
+#: bin/newlist:149
+msgid "The list password cannot be empty"
+msgstr "Das Passwort für die Liste darf nicht leer sein"
+
+#: bin/newlist:190
+msgid "Hit enter to notify %(listname)s owner..."
+msgstr "Enter drücken, um den Besitzer der Liste %(listname)s zu benachrichtigen..."
+
+#: bin/qrunner:19
+msgid ""
+"Run one or more qrunners, once or repeatedly.\n"
+"\n"
+"Each named runner class is run in round-robin fashion. In other words, the\n"
+"first named runner is run to consume all the files currently in its\n"
+"directory. When that qrunner is done, the next one is run to consume all "
+"the\n"
+"files in /its/ directory, and so on. The number of total iterations can be\n"
+"given on the command line.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" -r runner[:slice:range]\n"
+" --runner=runner[:slice:range]\n"
+" Run the named qrunner, which must be one of the strings returned by\n"
+" the -l option. Optional slice:range if given, is used to assign\n"
+" multiple qrunner processes to a queue. range is the total number "
+"of\n"
+" qrunners for this queue while slice is the number of this qrunner "
+"from\n"
+" [0..range).\n"
+"\n"
+" If using the slice:range form, you better make sure that each "
+"qrunner\n"
+" for the queue is given the same range value. If slice:runner is "
+"not\n"
+" given, then 1:1 is used.\n"
+"\n"
+" Multiple -r options may be given, in which case each qrunner will "
+"run\n"
+" once in round-robin fashion. The special runner `All' is shorthand\n"
+" for a qrunner for each listed by the -l option.\n"
+"\n"
+" --once\n"
+" -o\n"
+" Run each named qrunner exactly once through its main loop. "
+"Otherwise,\n"
+" each qrunner runs indefinitely, until the process receives a "
+"SIGTERM\n"
+" or SIGINT.\n"
+"\n"
+" -l/--list\n"
+" Shows the available qrunner names and exit.\n"
+"\n"
+" -v/--verbose\n"
+" Spit out more debugging information to the logs/qrunner log file.\n"
+"\n"
+" -s/--subproc\n"
+" This should only be used when running qrunner as a subprocess of "
+"the\n"
+" mailmanctl startup script. It changes some of the exit-on-error\n"
+" behavior to work better with that framework.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+"\n"
+"runner is required unless -l or -h is given, and it must be one of the "
+"names\n"
+"displayed by the -l switch.\n"
+msgstr ""
+"Startet einmalig oder wiederholt einen oder mehrere qrunner.\n"
+"\n"
+"Jede angegebene Klasse wird im Round-Robin-Verfahren ausgeführt. Mit "
+"anderen\n"
+"Worten, der erste Runner wird alle Dateien in seinem Verzeichis "
+"verarbeiten,\n"
+"der nächste Runner verarbeitet die Dateien in seinem Verzeichnis, usw.\n"
+"Die Anzahl der Iterationen kann auf der Kommandozeile angegeben werden.\n"
+"\n"
+"Benutzung: %(PROGRAM)s [optionen]\n"
+"\n"
+"Optionen:\n"
+"\n"
+" -r runner[:slice:range]\n"
+" --runner=runner[:slice:range]\n"
+" Führt den angegeben qrunner aus, welcher einer der von der Option -"
+"l\n"
+" angezeigten sein muss. Die Option slice:range kann dazu benutzt\n"
+" werden, um einer Queue mehrere qrunner-Prozesse zuzuweisen. Dabei\n"
+" gibt range die Gesamtzahl der qrunner pro Queue an, und slice die\n"
+" an die Nummer des qrunners im Bereich [0..range].\n"
+"\n"
+" Wenn Sie die slice:range Option benutzen, stellen Sie besser "
+"sicher,\n"
+" dass jedem qrunner einer Queue derselbe range-Wert zugewiesen wird.\n"
+" Fehlwertseitig wird der Wert 1:1 benutzte.\n"
+"\n"
+" Es können mehrere r-Optionen angegeben werden. In diesem Fall wird\n"
+" jeder qrunner genau einmal im Round-Robin-Verfahren gestartet.\n"
+" Der besondere Runner `All' ist ein Alias für alle von der Option -l\n"
+" gelisteten.\n"
+"\n"
+" --once\n"
+" -o\n"
+" Führt jeden angegebenen qrunner genau einmal in seiner Haupschleife\n"
+" aus. Andernfalls läuft jeder qrunner solange, bis er ein SIGTERM-\n"
+" oder SIGINT-Signal empfängt.\n"
+"\n"
+" -l/--list\n"
+" Auflistung aller verfügbaren qrunner-Namen.\n"
+"\n"
+" -v/--verbose\n"
+" Sei etwas mitteilsamer in Bezug auf Logdatei-Meldungen.\n"
+"\n"
+" -s/--subproc\n"
+" Sollte nur vom mailmanctl-Startscript benutzt werden. Diese\n"
+" Parameter verändert das Verhalten der qrunner-Prozesse bei "
+" Fehlern, damit diese besser mit dem Hauptprozess kommunizieren.\n"
+"\n"
+" -h/--help\n"
+" Ausgabe dieser Meldung und Schluss.\n"
+"\n"
+"Die Angabe des runners ist erforderlich, ausser bei Angabe der Optionen\n"
+"-l und -h. Runner muss einer der von der Option -l gelisteten Namen sein.\n"
+
+#: bin/qrunner:176
+msgid "%(name)s runs the %(runnername)s qrunner"
+msgstr "%(name)s startet den %(runnername)s qrunner"
+
+#: bin/qrunner:177
+msgid "All runs all the above qrunners"
+msgstr "All: startet alle o.a. qrunners"
+
+# Mailman/Cgi/admindb.py:338 Mailman/ListAdmin.py:258
+#: bin/qrunner:213
+msgid "No runner name given."
+msgstr "Kein runner-Name angegeben."
+
+#: bin/remove_members:19
+msgid ""
+"Remove members from a list.\n"
+"\n"
+"Usage:\n"
+" remove_members [options] [listname] [addr1 ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" --file=file\n"
+" -f file\n"
+" Remove member addresses found in the given file. If file is\n"
+" `-', read stdin.\n"
+"\n"
+" --all\n"
+" -a\n"
+" Remove all members of the mailing list.\n"
+" (mutually exclusive with --fromall)\n"
+"\n"
+" --fromall\n"
+" Removes the given addresses from all the lists on this system\n"
+" regardless of virtual domains if you have any. This option cannot "
+"be\n"
+" used -a/--all. Also, you should not specify a listname when using "
+"this\n"
+" option.\n"
+"\n"
+" --nouserack\n"
+" -n\n"
+" Don't send the user acknowledgements.\n"
+"\n"
+" --noadminack\n"
+" -N\n"
+" Don't send the admin acknowledgements.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname is the name of the mailing list to use.\n"
+"\n"
+" addr1 ... are additional addresses to remove.\n"
+"\n"
+msgstr ""
+"Entfernt Mitglieder aus einer Mailingliste.\n"
+"\n"
+"Benutzung:\n"
+" remove_members [optionen] listenname [adresse1 ...]\n"
+"\n"
+"optionen:\n"
+"\n"
+" --file=file\n"
+" -f file\n"
+" Entferne Mitgliedsadressen, die in Datei stehen. Ist der\n"
+" Dateiname `-', lese von stdin.\n"
+"\n"
+" --all\n"
+" -a\n"
+" Entferne alle Mitglieder einer Mailingliste.\n"
+"\n"
+" --fromall\n"
+" Entfernt die Adresse von allen Mailinglisten des Servers, unabhängig\n"
+" von eventuellen virtuellen Domains. Diese Option kann nicht zusammen\n"
+" mit -a/--all benutzt werden. Geben Sie bitte trotzdem einen Listennamen \n"
+" als Parameter an!\n"
+"\n"
+" --nouserack\n"
+" -n\n"
+" Sendet keine Bestätigungen an die betroffenen User.\n"
+"\n"
+" --noadminack\n"
+" -N\n"
+" Sendet keine Bestätigungen an den Administrator.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Ausgabe dieser Meldung.\n"
+"\n"
+" listenname ist der Name der Mailingliste, die benutzt werden soll.\n"
+"\n"
+" adresse1 ... Adresse(n), die entfernt werden sollen.\n"
+"\n"
+
+#: bin/remove_members:147
+msgid "Could not open file for reading: %(filename)s."
+msgstr "Kann Datei %(filename)s nicht zum Lesen öffnen."
+
+#: bin/remove_members:154
+msgid "Error opening list %(listname)s... skipping."
+msgstr "Fehler beim Öffnen der Liste %(listname)s, wird übersprungen."
+
+# Mailman/Cgi/options.py:93
+#: bin/remove_members:164
+msgid "No such member: %(addr)s"
+msgstr " %(addr)s ist nicht Abonnent."
+
+# Mailman/MTA/Manual.py:109
+#: bin/remove_members:171
+msgid "User `%(addr)s' removed from list: %(listname)s."
+msgstr "Nutzer `%(addr)s' von der Liste %(listname)s entfernt."
+
+#: bin/rmlist:19
+msgid ""
+"Remove the components of a mailing list with impunity - beware!\n"
+"\n"
+"This removes (almost) all traces of a mailing list. By default, the lists\n"
+"archives are not removed, which is very handy for retiring old lists.\n"
+"\n"
+"Usage:\n"
+" rmlist [-a] [-h] listname\n"
+"\n"
+"Where:\n"
+" --archives\n"
+" -a\n"
+" Remove the list's archives too, or if the list has already been\n"
+" deleted, remove any residual archives.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+msgstr ""
+"Vorsicht: Entfernt fast alle Daten einer Mailingliste!\n"
+"\n"
+"Diese Aktion entfernt (fast) alle Spuren einer Mailingliste, bis auf die\n"
+"Archive, was sehr praktisch für die Ablage alter Listen sein kann.\n"
+"\n"
+"Benutzung:\n"
+" rmlist [-a] [-h] listenname\n"
+"\n"
+"Wobei gilt:\n"
+" --archives\n"
+" -a\n"
+" Entfernt auch die Listenarchive.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Ausgabe dieser Meldung und Schluss.\n"
+"\n"
+
+#: bin/rmlist:66 bin/rmlist:69
+msgid "Removing %(msg)s"
+msgstr "Entferne %(msg)s"
+
+#: bin/rmlist:72
+msgid "%(listname)s %(msg)s not found as %(dir)s"
+msgstr "%(listname)s %(msg)s nicht als %(dir)s gefunden"
+
+# Mailman/Cgi/admin.py:66 Mailman/Cgi/admindb.py:60 Mailman/Cgi/confirm.py:52
+# Mailman/Cgi/edithtml.py:65 Mailman/Cgi/listinfo.py:49
+# Mailman/Cgi/options.py:67 Mailman/Cgi/private.py:96
+# Mailman/Cgi/rmlist.py:60 Mailman/Cgi/roster.py:55
+# Mailman/Cgi/subscribe.py:57
+#: bin/rmlist:96
+msgid "No such list (or list already deleted): %(listname)s"
+msgstr "Liste nicht vorhanden (oder bereits gelöscht): %(listname)s"
+
+# Mailman/Cgi/admin.py:66 Mailman/Cgi/admindb.py:60 Mailman/Cgi/confirm.py:52
+# Mailman/Cgi/edithtml.py:65 Mailman/Cgi/listinfo.py:49
+# Mailman/Cgi/options.py:67 Mailman/Cgi/private.py:96
+# Mailman/Cgi/rmlist.py:60 Mailman/Cgi/roster.py:55
+# Mailman/Cgi/subscribe.py:57
+#: bin/rmlist:98
+msgid "No such list: %(listname)s. Removing its residual archives."
+msgstr "Liste nicht vorhanden: %(listname)s. Entferne verbliebene Archive."
+
+#: bin/rmlist:102
+msgid "Not removing archives. Reinvoke with -a to remove them."
+msgstr "Archive nicht entfernt. Nochmals mit -a aufrufen, um sie zu entfernen"
+
+#: bin/rmlist:116
+msgid "list info"
+msgstr "Listen-Info"
+
+# Mailman/Cgi/private.py:62
+#: bin/rmlist:122 bin/rmlist:124
+msgid "private archives"
+msgstr "Private Archive"
+
+# Mailman/Cgi/admin.py:373
+#: bin/rmlist:126 bin/rmlist:128
+msgid "public archives"
+msgstr "Öffentliche Archive"
+
+#: bin/sync_members:19
+msgid ""
+"Synchronize a mailing list's membership with a flat file.\n"
+"\n"
+"This script is useful if you have a Mailman mailing list and a sendmail\n"
+":include: style list of addresses (also as is used in Majordomo). For "
+"every\n"
+"address in the file that does not appear in the mailing list, the address "
+"is\n"
+"added. For every address in the mailing list that does not appear in the\n"
+"file, the address is removed. Other options control what happens when an\n"
+"address is added or removed.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] -f file listname\n"
+"\n"
+"Where `options' are:\n"
+"\n"
+" --no-change\n"
+" -n\n"
+" Don't actually make the changes. Instead, print out what would be\n"
+" done to the list.\n"
+"\n"
+" --welcome-msg[=<yes|no>]\n"
+" -w[=<yes|no>]\n"
+" Sets whether or not to send the newly added members a welcome\n"
+" message, overriding whatever the list's `send_welcome_msg' setting\n"
+" is. With -w=yes or -w, the welcome message is sent. With -w=no, "
+"no\n"
+" message is sent.\n"
+"\n"
+" --goodbye-msg[=<yes|no>]\n"
+" -g[=<yes|no>]\n"
+" Sets whether or not to send the goodbye message to removed members,\n"
+" overriding whatever the list's `send_goodbye_msg' setting is. With\n"
+" -g=yes or -g, the goodbye message is sent. With -g=no, no message "
+"is\n"
+" sent.\n"
+"\n"
+" --digest[=<yes|no>]\n"
+" -d[=<yes|no>]\n"
+" Selects whether to make newly added members receive messages in\n"
+" digests. With -d=yes or -d, they become digest members. With -"
+"d=no\n"
+" (or if no -d option given) they are added as regular members.\n"
+"\n"
+" --notifyadmin[=<yes|no>]\n"
+" -a[=<yes|no>]\n"
+" Specifies whether the admin should be notified for each "
+"subscription\n"
+" or unsubscription. If you're adding a lot of addresses, you\n"
+" definitely want to turn this off! With -a=yes or -a, the admin is\n"
+" notified. With -a=no, the admin is not notified. With no -a "
+"option,\n"
+" the default for the list is used.\n"
+"\n"
+" --file <filename | ->\n"
+" -f <filename | ->\n"
+" This option is required. It specifies the flat file to synchronize\n"
+" against. Email addresses must appear one per line. If filename is\n"
+" `-' then stdin is used.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this message.\n"
+"\n"
+" listname\n"
+" Required. This specifies the list to synchronize.\n"
+msgstr ""
+"Synchronisiert Mitgliedsliste einer Mailingliste mit einer Textdatei.\n"
+"\n"
+"Dieses Skript ist besonders dann nützlich, wenn Sie eine Mailliste und eine\n"
+"Sendmail-Stil :include:-Adressliste (analog Majordomo) haben. Jeder\n"
+"Adresseintrag in der Datei, der nicht in der Mailliste vorhanden ist, wird\n"
+"zur Mailingliste hinzugefügt.\n"
+"Jede in der Mauilingsliste vorhandene Adresse, die in der Datei nicht\n"
+"existiert, wird aus der Mailliste entfernt. Die anderen Optionen steuern,\n"
+"wie Adressen hinzugefügt oder entfernt werden.\n"
+"\n"
+"Benutzung: %(PROGRAM)s [optionen] -f datei listenname\n"
+"\n"
+"Wobei `optionen' sein können:\n"
+"\n"
+" --no-change\n"
+" -n\n"
+" Ändere nicht. Gebe statt dessen aus, was an der Liste geändert\n"
+" werden würde.\n"
+"\n"
+" --welcome-msg[=<yes|no>]\n"
+" -w[=<yes|no>]\n"
+" Festlegen, ob neu hinzugekommene Benutzer eine Willkommens-\n"
+" nachricht erhalten. Dieser Parameter überschreibt den Wert der\n"
+" `send_welcome_msg'-Variablen.\n"
+" Mit -w=yes oder -w wird die Nachricht gesendet, mit -w=no nicht.\n"
+"\n"
+" --goodbye-msg[=<yes|no>]\n"
+" -g[=<yes|no>]\n"
+" Stellt ein, ob ausgetragene User eine Abschiedsmail erhalten. Diese\n"
+" Option überschreibt den Standard-Wert der Listeneinstellung.\n"
+"\n"
+" --digest[=<yes|no>]\n"
+" -d[=<yes|no>]\n"
+" Legt fest, ob neue Listenmitglieder Nachrichtensammlungen\n"
+" erhalten. Mit -d=yes or -d erhalten sie diese. Mit -d=no nicht.\n"
+"\n"
+" --notifyadmin[=<yes|no>]\n"
+" --a[=<yes|no>]\n"
+" Legt fest, ob der Administrator einer Liste über jedes abonnieren/\n"
+" abbestellen per Email informiert wird. Bei Eingabe von Massenabos\n"
+" empfiehlt es sich, diese Option abzuschalten! Mit -a=yes or -a\n"
+" wird der Admin benachrichtigt, mit -a=no nicht und mit nicht\n"
+" gesetzter Option wird der Fehlwert benutzt.\n"
+"\n"
+" --file <dateiname | ->\n"
+" -f <dateiname | ->\n"
+" Diese Angabe ist erforderlich. Sie spezifiziert die "
+"Synchronisations\n"
+" datei. Pro Zeile darf eine Emailadresse drin stehen. Ist statt des\n"
+" Dateinames ein `-' angegeben, wird stdin benutzt.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Ausgabe dieser Meldung.\n"
+"\n"
+" listenname\n"
+" Erforderlich. Liste, mit der synchronisiert werden soll.\n"
+
+#: bin/sync_members:115
+msgid "Bad choice: %(yesno)s"
+msgstr "Schlecht gewählt: %(yesno)s"
+
+#: bin/sync_members:138
+msgid "Dry run mode"
+msgstr "Was-Wäre-Wenn-Modus"
+
+#: bin/sync_members:159
+msgid "Only one -f switch allowed"
+msgstr "Parameter -f nur einmal pro Befehl erlaubt"
+
+# Mailman/Cgi/admindb.py:338 Mailman/ListAdmin.py:258
+#: bin/sync_members:163
+msgid "No argument to -f given"
+msgstr "Kein Wert für Parameter -f angegeben"
+
+#: bin/sync_members:172
+msgid "Illegal option: %(opt)s"
+msgstr "Unzulässige Option: %(opt)s"
+
+# Mailman/Cgi/admindb.py:338 Mailman/ListAdmin.py:258
+#: bin/sync_members:178
+msgid "No listname given"
+msgstr "Kein Listenname angegeben"
+
+#: bin/sync_members:182
+msgid "Must have a listname and a filename"
+msgstr "Benötige Listenname und Dateiname"
+
+#: bin/sync_members:191
+msgid "Cannot read address file: %(filename)s: %(msg)s"
+msgstr "Kann Adressdatei nicht lesen: %(filename)s: %(msg)s"
+
+#: bin/sync_members:203
+msgid "Ignore : %(addr)30s"
+msgstr "Ignoriere: %(addr)30s"
+
+# Mailman/Cgi/admin.py:1232 Mailman/Cgi/admin.py:1235
+#: bin/sync_members:212
+msgid "Invalid : %(addr)30s"
+msgstr "Ungültig : %(addr)30s"
+
+#: bin/sync_members:215
+msgid "You must fix the preceding invalid addresses first."
+msgstr "Korrigieren Sie zuerst die vorangehende ungültige Adresse."
+
+#: bin/sync_members:259
+msgid "Added : %(s)s"
+msgstr "Hinzugefügt: %(s)s"
+
+#: bin/sync_members:278
+msgid "Removed: %(s)s"
+msgstr "Entfernt: %(s)s"
+
+#: bin/transcheck:18
+msgid ""
+"\n"
+"Check a given Mailman translation, making sure that variables and\n"
+"tags referenced in translation are the same variables and tags in\n"
+"the original templates and catalog.\n"
+"\n"
+"Usage:\n"
+"\n"
+"cd $MAILMAN_DIR\n"
+"%(program)s [-q] <lang>\n"
+"\n"
+"Where <lang> is your country code (e.g. 'it' for Italy) and -q is\n"
+"to ask for a brief summary.\n"
+msgstr ""
+
+#: bin/transcheck:57
+msgid "check a translation comparing with the original string"
+msgstr "überprüft eine Übersetzung und vergleicht sie mit dem Orginal"
+
+#: bin/transcheck:64
+msgid "scan a string from the original file"
+msgstr ""
+
+#: bin/transcheck:72
+msgid "scan a translated string"
+msgstr ""
+
+#: bin/transcheck:83
+msgid "check for differences between checked in and checked out"
+msgstr ""
+
+#: bin/transcheck:116
+msgid "parse a .po file extracting msgids and msgstrs"
+msgstr ""
+
+#: bin/transcheck:135
+msgid ""
+"States table for the finite-states-machine parser:\n"
+" 0 idle\n"
+" 1 filename-or-comment\n"
+" 2 msgid\n"
+" 3 msgstr\n"
+" 4 end\n"
+" "
+msgstr ""
+
+#: bin/transcheck:272
+msgid ""
+"check a translated template against the original one\n"
+" search also <MM-*> tags if html is not zero"
+msgstr ""
+
+#: bin/transcheck:319
+msgid "scan the po file comparing msgids with msgstrs"
+msgstr ""
+
+#: bin/unshunt:19
+msgid ""
+"Move a message from the shunt queue to the original queue.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [directory]\n"
+"\n"
+"Where:\n"
+"\n"
+" -h / --help\n"
+" Print help and exit.\n"
+"\n"
+"Optional `directory' specifies a directory to dequeue from other than\n"
+"qfiles/shunt.\n"
+msgstr ""
+
+#: bin/unshunt:81
+msgid ""
+"Cannot unshunt message %(filebase)s, skipping:\n"
+"%(e)s"
+msgstr ""
+
+#: bin/update:19
+msgid ""
+"Perform all necessary upgrades.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -f/--force\n"
+" Force running the upgrade procedures. Normally, if the version "
+"number\n"
+" of the installed Mailman matches the current version number (or a\n"
+" `downgrade' is detected), nothing will be done.\n"
+"\n"
+" -h/--help\n"
+" Print this text and exit.\n"
+"\n"
+"Use this script to help you update to the latest release of Mailman from\n"
+"some previous version. It knows about versions back to 1.0b4 (?).\n"
+msgstr ""
+"Updates werden ausgeführt.\n"
+"\n"
+"Benutzung: %(PROGRAM)s [optionen]\n"
+"\n"
+"Optionen:\n"
+" -f/--force\n"
+" Erzwinge Ausführung der Updates. Bei identischer Versionsnummer\n"
+" von Update und vorhandener Installaion wird im Regelfall gar nichts\n"
+" getan.\n"
+"\n"
+" -h/--help\n"
+" Ausgabe dieser Meldung und Schluss.\n"
+"\n"
+"Benutzen Sie dieses Skript, um auf das neueste verfügbare Update von\n"
+"Mailman zu aktualisieren. Das Update ist möglich ab Version 1.0b4 (?).\n"
+
+# Mailman/Cgi/create.py:101 Mailman/Cgi/create.py:174 bin/newlist:122
+# bin/newlist:154
+#: bin/update:102
+msgid "Fixing language templates: %(listname)s"
+msgstr "Korrigiere Sprachschablone für Liste: %(listname)s"
+
+# Mailman/Cgi/create.py:203 bin/newlist:184
+#: bin/update:191 bin/update:466
+msgid "WARNING: could not acquire lock for list: %(listname)s"
+msgstr "WARNUNG: Keine Kontrolle über die Dateisperre der Liste: %(listname)s"
+
+#: bin/update:210
+msgid "Resetting %(n)s BYBOUNCEs disabled addrs with no bounce info"
+msgstr ""
+
+#: bin/update:216
+msgid "Updating the held requests database."
+msgstr "Update der Datenbank mit gehaltenen Nachrichten."
+
+#: bin/update:238
+msgid ""
+"For some reason, %(mbox_dir)s exists as a file. This won't work with\n"
+"b6, so I'm renaming it to %(mbox_dir)s.tmp and proceeding."
+msgstr ""
+"Aus irgendwelchen Gründen existiert %(mbox_dir)s als Datei. Das\n"
+"funktioniert nicht in Verbindung mit b6, weshalb ich die Datei nach\n"
+"%(mbox_dir)s.tmp umbenennen und fortfahren werde."
+
+#: bin/update:250
+msgid ""
+"\n"
+"%(listname)s has both public and private mbox archives. Since this list\n"
+"currently uses private archiving, I'm installing the private mbox archive\n"
+"-- %(o_pri_mbox_file)s -- as the active archive, and renaming\n"
+" %(o_pub_mbox_file)s\n"
+"to\n"
+" %(o_pub_mbox_file)s.preb6\n"
+"\n"
+"You can integrate that into the archives if you want by using the 'arch'\n"
+"script.\n"
+msgstr ""
+"\n"
+"%(listname)s beinhaltet sowohl ein öffentliches, als auch ein privates\n"
+"mbox-Archiv. Da diese Liste im Augenblick private Archivierung benutzt,\n"
+"installiere ich nun das private mbox-Dateiarchiv -- %(o_pri_mbox_file)s --\n"
+"als das aktive und benenne\n"
+" %(o_pub_mbox_file)s\n"
+" nach\n"
+" %(o_pub_mbox_file)s.preb6\n"
+"um.\n"
+"Sie können dieses Archiv in Ihre Archive integrieren, indem Sie das 'arch'-\n"
+"Skript benutzen.\n"
+
+#: bin/update:265
+msgid ""
+"%s has both public and private mbox archives. Since this list\n"
+"currently uses public archiving, I'm installing the public mbox file\n"
+"archive file (%s) as the active one, and renaming\n"
+" %s\n"
+" to\n"
+" %s.preb6\n"
+"\n"
+"You can integrate that into the archives if you want by using the 'arch'\n"
+"script.\n"
+msgstr ""
+"%s beinhaltet sowohl ein öffentliches, als auch ein privates mbox-Archiv.\n"
+"Da diese Liste im Augenblick öffentliche Archivierung benutzt, installiere\n"
+"ich nun das öffentliche mbox-Dateiarchiv (%s) als das aktive und benenne %s "
+"nach %s.preb6\n"
+"um.\n"
+"Sie können dieses Archiv in Ihre Archive integrieren, indem Sie das 'arch'-\n"
+"Skript benutzen.\n"
+
+#: bin/update:282
+msgid "- updating old private mbox file"
+msgstr "- aktualisiere alte, öffentliche mbox-Datei"
+
+#: bin/update:290
+msgid ""
+" unknown file in the way, moving\n"
+" %(o_pri_mbox_file)s\n"
+" to\n"
+" %(newname)s"
+msgstr "unbekannte Datei im Weg, verschiebe %(o_pri_mbox_file)s nach %(newname)s"
+
+#: bin/update:297 bin/update:320
+msgid ""
+" looks like you have a really recent CVS installation...\n"
+" you're either one brave soul, or you already ran me"
+msgstr ""
+" Sieht so aus, als hätten Sie eine richtig aktuelle CVS Installation... "
+"entweder sind Sie ein tapferes Schneiderlein, oder haben mich bereits einmal "
+"laufen lassen"
+
+#: bin/update:306
+msgid "- updating old public mbox file"
+msgstr "- aktualisiere alte, öffentliche mbox-Datei"
+
+#: bin/update:314
+msgid ""
+" unknown file in the way, moving\n"
+" %(o_pub_mbox_file)s\n"
+" to\n"
+" %(newname)s"
+msgstr " unbekannte Datei im Weg, verschiebe %(o_pub_mbox_file)s nach %(newname)s"
+
+#: bin/update:345
+msgid "- This list looks like it might have <= b4 list templates around"
+msgstr "- Sieht so aus, als basierte die Liste auf Schablonen <= b4"
+
+#: bin/update:352
+msgid "- moved %(o_tmpl)s to %(n_tmpl)s"
+msgstr "- %(o_tmpl)s nach %(n_tmpl)s verschoben"
+
+#: bin/update:354
+msgid "- both %(o_tmpl)s and %(n_tmpl)s exist, leaving untouched"
+msgstr "- Lasse die Finger davon: %(o_tmpl)s und %(n_tmpl)s existieren."
+
+#: bin/update:384
+msgid "removing directory %(src)s and everything underneath"
+msgstr ""
+
+#: bin/update:387
+msgid "removing %(src)s"
+msgstr "Entferne %(src)s"
+
+#: bin/update:391
+msgid "Warning: couldn't remove %(src)s -- %(rest)s"
+msgstr "Warnung: Konnte Datei %(src)s nicht entfernen -- %(rest)s"
+
+#: bin/update:396
+msgid "couldn't remove old file %(pyc)s -- %(rest)s"
+msgstr "konnte alte Datei %(pyc)s nicht entfernen -- %(rest)s"
+
+#: bin/update:400
+msgid "updating old qfiles"
+msgstr "update alte qfiles"
+
+#: bin/update:422
+msgid "getting rid of old source files"
+msgstr ""
+
+#: bin/update:432
+msgid "no lists == nothing to do, exiting"
+msgstr "Keine Listen == Nichts zu tun. Feierabend."
+
+#: bin/update:439
+msgid ""
+"fixing all the perms on your old html archives to work with b6\n"
+"If your archives are big, this could take a minute or two..."
+msgstr ""
+"korrigiere die Berechtigungen an Ihren alten HTML-Archiven, damit diese\n"
+"zu b6 passen. Bei grösseren Archiven kann dieses einige Minuten dauern..."
+
+# Mailman/Cgi/confirm.py:208 Mailman/Cgi/create.py:301
+# Mailman/Cgi/create.py:347 Mailman/Gui/Archive.py:30
+# Mailman/Gui/Autoresponse.py:48 Mailman/Gui/Autoresponse.py:56
+# Mailman/Gui/Autoresponse.py:65 Mailman/Gui/Bounce.py:32
+# Mailman/Gui/Digest.py:35 Mailman/Gui/Digest.py:51 Mailman/Gui/Digest.py:73
+# Mailman/Gui/Digest.py:78 Mailman/Gui/General.py:217
+# Mailman/Gui/General.py:227 Mailman/Gui/General.py:252
+# Mailman/Gui/General.py:256 Mailman/Gui/General.py:263
+# Mailman/Gui/General.py:273 Mailman/Gui/General.py:278
+# Mailman/Gui/NonDigest.py:36 Mailman/Gui/NonDigest.py:55
+# Mailman/Gui/Privacy.py:86 Mailman/Gui/Privacy.py:100
+# Mailman/Gui/Privacy.py:111 Mailman/Gui/Privacy.py:114
+# Mailman/Gui/Privacy.py:147 Mailman/Gui/Privacy.py:221
+# Mailman/Gui/Usenet.py:43 Mailman/Gui/Usenet.py:47 Mailman/Gui/Usenet.py:51
+#: bin/update:444
+msgid "done"
+msgstr "erledigt"
+
+# Mailman/Cgi/create.py:203 bin/newlist:184
+#: bin/update:446
+msgid "Updating mailing list: %(listname)s"
+msgstr "Aktualisiere Mailingliste: %(listname)s"
+
+#: bin/update:449
+msgid "Updating Usenet watermarks"
+msgstr "Aktualisiere Usenet-Wasserzeichen"
+
+#: bin/update:454
+msgid "- nothing to update here"
+msgstr "- kein Update erforderlich"
+
+#: bin/update:477
+msgid "- usenet watermarks updated and gate_watermarks removed"
+msgstr "- Usenet-Wasserzeichen aktualisiert und gate_watermarks entfernt"
+
+#: bin/update:487
+msgid "Updating old pending_subscriptions.db database"
+msgstr "Update der alten pending_subscriptions.db Datenbank"
+
+#: bin/update:504
+msgid ""
+"\n"
+"\n"
+"NOTE NOTE NOTE NOTE NOTE\n"
+"\n"
+" You are upgrading an existing Mailman installation, but I can't tell "
+"what\n"
+" version you were previously running.\n"
+"\n"
+" If you are upgrading from Mailman 1.0b9 or earlier you will need to\n"
+" manually update your mailing lists. For each mailing list you need to\n"
+" copy the file templates/options.html lists/<listname>/options.html.\n"
+"\n"
+" However, if you have edited this file via the Web interface, you will "
+"have\n"
+" to merge your changes into this file, otherwise you will lose your\n"
+" changes.\n"
+"\n"
+"NOTE NOTE NOTE NOTE NOTE\n"
+"\n"
+msgstr ""
+"\n"
+"\n"
+"ACHTUNG ACHTUNG ACHTUNG\n"
+" Sie updaten gerade eine vorhandene Mailman-Installation, aber ich kann "
+"nicht ermitteln, welche Version zuvor lief.\n"
+" Wenn Sie von Mailman-Version 1.0b9 oder älter updaten, müssen Sie Ihre "
+"Mailinglisten manuell updaten. Sie müssen die Datei templates/ options.html "
+"jeder Liste nach lists/<listname>/options.html kopieren.\n"
+" Auf jeden Fall müssen Sie die Änderungen von Hand in diese Datei einfügen, "
+"wenn Sie die Webschnittstelle zum Editieren benutzt haben, da Sie ansonsten "
+"alle Änderungen dieser Datei verlieren.\n"
+"\n"
+"ACHTUNG ACHTUNG ACHTUNG\n"
+"\n"
+
+#: bin/update:561
+msgid "No updates are necessary."
+msgstr "Keine Updates erforderlich."
+
+#: bin/update:564
+msgid ""
+"Downgrade detected, from version %(hexlversion)s to version %(hextversion)s\n"
+"This is probably not safe.\n"
+"Exiting."
+msgstr ""
+"Einspielen einer älteren Version erkannt (Version %(hexlversion)s nach\n"
+"Version %(hextversion)s). Dies macht wahrscheinlich wenig Sinn....\n"
+"Programmende."
+
+#: bin/update:569
+msgid "Upgrading from version %(hexlversion)s to %(hextversion)s"
+msgstr "Update von Version %(hexlversion)s auf %(hextversion)s"
+
+#: bin/update:578
+msgid ""
+"\n"
+"ERROR:\n"
+"\n"
+"The locks for some lists could not be acquired. This means that either\n"
+"Mailman was still active when you upgraded, or there were stale locks in "
+"the\n"
+"%(lockdir)s directory.\n"
+"\n"
+"You must put Mailman into a quiescent state and remove all stale locks, "
+"then\n"
+"re-run \"make update\" manually. See the INSTALL and UPGRADE files for "
+"details.\n"
+msgstr ""
+"\n"
+"FEHLER:\n"
+"\n"
+"Die Sperren einiger Listen konnten nicht übernommen werden. Das bedeutet\n"
+"entweder, das Mailman beim letzten Upgrade aktiv war, oder dass ungültige\n"
+"Sperren im Verzeichnis %(lockdir)s vorhanden sind.\n"
+"\n"
+"Sie müssen Mailman stoppen, alle ungültigen Sperren beseitigen und dann\n"
+"nochmals den Befehl \"make update\" manuell aufrufen. Siehe die INSTALL-\n"
+
+#: bin/version:19
+msgid "Print the Mailman version.\n"
+msgstr "Ausgabe der Mailman-Version.\n"
+
+#: bin/version:26
+msgid "Using Mailman version:"
+msgstr "Benutze Mailman-Version:"
+
+#: bin/withlist:19
+msgid ""
+"General framework for interacting with a mailing list object.\n"
+"\n"
+"There are two ways to use this script: interactively or programmatically.\n"
+"Using it interactively allows you to play with, examine and modify a "
+"MailList\n"
+"object from Python's interactive interpreter. When running interactively, "
+"a\n"
+"MailList object called `m' will be available in the global namespace. It "
+"also\n"
+"loads the class MailList into the global namespace.\n"
+"\n"
+"Programmatically, you can write a function to operate on a MailList object,\n"
+"and this script will take care of the housekeeping (see below for "
+"examples).\n"
+"In that case, the general usage syntax is:\n"
+"\n"
+"%% bin/withlist [options] listname [args ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" -l / --lock\n"
+" Lock the list when opening. Normally the list is opened unlocked\n"
+" (e.g. for read-only operations). You can always lock the file "
+"after\n"
+" the fact by typing `m.Lock()'\n"
+"\n"
+" Note that if you use this option, you should explicitly call m.Save"
+"()\n"
+" before exiting, since the interpreter's clean up procedure will not\n"
+" automatically save changes to the MailList object (but it will "
+"unlock\n"
+" the list).\n"
+"\n"
+" -i / --interactive\n"
+" Leaves you at an interactive prompt after all other processing is\n"
+" complete. This is the default unless the -r option is given.\n"
+"\n"
+" --run [module.]callable\n"
+" -r [module.]callable\n"
+" This can be used to run a script with the opened MailList object.\n"
+" This works by attempting to import `module' (which must already be\n"
+" accessible on your sys.path), and then calling `callable' from the\n"
+" module. callable can be a class or function; it is called with the\n"
+" MailList object as the first argument. If additional args are "
+"given\n"
+" on the command line, they are passed as subsequent positional args "
+"to\n"
+" the callable.\n"
+"\n"
+" Note that `module.' is optional; if it is omitted then a module "
+"with\n"
+" the name `callable' will be imported.\n"
+"\n"
+" The global variable `r' will be set to the results of this call.\n"
+"\n"
+" --all / -a\n"
+" This option only works with the -r option. Use this if you want to\n"
+" execute the script on all mailing lists. When you use -a you "
+"should\n"
+" not include a listname argument on the command line. The variable "
+"`r'\n"
+" will be a list of all the results.\n"
+"\n"
+" --quiet / -q\n"
+" Suppress all status messages.\n"
+"\n"
+" --help / -h\n"
+" Print this message and exit\n"
+"\n"
+"\n"
+"Here's an example of how to use the -r option. Say you have a file in the\n"
+"Mailman installation directory called `listaddr.py', with the following\n"
+"two functions:\n"
+"\n"
+"def listaddr(mlist):\n"
+" print mlist.GetListEmail()\n"
+"\n"
+"def requestaddr(mlist):\n"
+" print mlist.GetRequestEmail()\n"
+"\n"
+"Now, from the command line you can print the list's posting address by "
+"running\n"
+"the following from the command line:\n"
+"\n"
+"%% bin/withlist -r listaddr mylist\n"
+"Loading list: mylist (unlocked)\n"
+"Importing listaddr ...\n"
+"Running listaddr.listaddr() ...\n"
+"mylist@myhost.com\n"
+"\n"
+"And you can print the list's request address by running:\n"
+"\n"
+"%% bin/withlist -r listaddr.requestaddr mylist\n"
+"Loading list: mylist (unlocked)\n"
+"Importing listaddr ...\n"
+"Running listaddr.requestaddr() ...\n"
+"mylist-request@myhost.com\n"
+"\n"
+"As another example, say you wanted to change the password for a particular\n"
+"user on a particular list. You could put the following function in a file\n"
+"called `changepw.py':\n"
+"\n"
+"from Mailman.Errors import NotAMember\n"
+"\n"
+"def changepw(mlist, addr, newpasswd):\n"
+" try:\n"
+" mlist.setMemberPassword(addr, newpasswd)\n"
+" mlist.Save()\n"
+" except NotAMember:\n"
+" print 'No address matched:', addr\n"
+"\n"
+"and run this from the command line:\n"
+"%% bin/withlist -l -r changepw mylist somebody@somewhere.org foobar\n"
+msgstr ""
+"Generelles Rahmenwerk zur Interaktion mit einem Mailinglisten-Objekt.\n"
+"\n"
+"Es gibt zwei Wege, dieses Skript zu benutzen: interaktiv oder programmiert.\n"
+"Der interaktive Weg erlaubt es, herum zu spielen und ein MailList-Objekt\n"
+"mit Python's interaktivem Interpreter zu modifizieren. Um dies zu tun, \n"
+"kann Python wie folgt gestartet werden:\n"
+"\n"
+"%% python -i bin/withlist [options] listenname [argumente ...]\n"
+"\n"
+"Lädt das angegebene Listenobjekt (Angabe erforderlich) in ein Objekt mit "
+"dem\n"
+"Namen `m' innerhalb des globalen Namespace. Aussdem lädt es die Klasse\n"
+"MailList in den globalen Namespace.\n"
+"\n"
+"Programmiertechnisch können sie eine Funktion schreiben, um mit einem\n"
+"MailList-Objekt zu arbeiten und das Skipt wird sich um das Haushalten\n"
+"kümmern (s.u. für Beispiele). In diesem Fall lautet die generelle Syntax:\n"
+"\n"
+"%% bin/withlist [optionen] listenname [argumente ...]\n"
+"\n"
+"Optionen:\n"
+"\n"
+" -l\n"
+" --lock\n"
+" Sperre die Liste beim Öffnen. Fehlwert: Entgesperrt beim Öffnen.\n"
+" (z.B. fü Nurlese-Operationen). Das Sperren der Liste ist jederzeit\n"
+" möglich durch Eingabe von `m.Lock()'\n"
+"\n"
+" Wenn Sie die Sperre benutzen, sollten Sie vor dem Beenden die\n"
+" Funktion m.Save() aufrufen, da die Aufräumprozedur des Interpreters\n"
+" nicht automatisch alle Änderungen am MailList-Ojekt speichert (aber\n"
+" er entsperrt wenigstens die Liste.)\n"
+"\n"
+" -i / --interactive\n"
+" Gibt Ihnen eine interaktive Eingabeshell, wenn alles erledigt\n"
+" wurde. (Standardverahlten, solange nicht '-r' angeben wird.)\n"
+"\n"
+" --run [module.]callable\n"
+" -r [module.]callable\n"
+" Diese Option kann benutzt werden, um ein Skript innerhalb eines\n"
+" geöffneten MailList-Objekts laufen zu lassen. Dies geschieht durch\n"
+" das Importieren von `module' (welches über den sys.path bereits\n"
+" zugänglich sein muss), und dem anschliessendem Laden von "
+"`callable'.\n"
+" `callable' kann eine Klasse oder Funktion sein, sie wird aufgerufem\n"
+" mit dem Namen des MailList-Objektes als erstem Argument.\n"
+" Wurden weitere Parameter angegeben, werden diese an `callable'\n"
+" in gleicher Reihenfolge weitergereicht.\n"
+"\n"
+" Beachten Sie, dass die Angabe von `module.' optional ist; wurde auf\n"
+" die Angabe verzichtet, wird ein Modul mit dem Namen `callable'\n"
+" importiert.\n"
+"\n"
+" Die globale Variable `r' wird auf den Rückkehrwert dieses Aufrufes\n"
+" gesetzt\n"
+"\n"
+" --all / -a\n"
+" Diese Option geht nur zusammen mit '-r'. Geben Sie das an, wenn Sie das\n"
+" Script auf allen Listen ausführen wollen. In diesem Fall sollten Sie keinen\n"
+" Listennamen als Aufrufparameter mit angeben. "
+"\n"
+" Die globale Variable `r' beinhaltet eine gesammelte Liste aller Ergebnisse.\n"
+"\n"
+" --quiet\n"
+" -q\n"
+" Unterdrücke alle Statusmeldungen.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Ausgabe dieser Meldung und Schluss.\n"
+"\n"
+"\n"
+"Hier nun ein Beispiel zur Benutzung der -r Option. Wenn Sie eine Datei\n"
+"im Mailman-Installationsverzeichnis namens `listaddr.py' haben, die die\n"
+"beiden folgenden Funktion enthält:\n"
+"\n"
+"def listaddr(mlist):\n"
+" print mlist.GetListEmail()\n"
+"\n"
+"def requestaddr(mlist):\n"
+" print mlist.GetRequestEmail()\n"
+"\n"
+"Damit können Sie sich auf der Kommandozeile die Postingadresse einer Liste\n"
+"ausgeben lassen, indem Sie diese Befehle eingeben:\n"
+"\n"
+"%% bin/withlist -r listaddr mylist\n"
+"Loading list: mylist (unlocked)\n"
+"Importing listaddr ...\n"
+"Running listaddr.listaddr() ...\n"
+"mylist@myhost.com\n"
+"\n"
+"Und durch Aufruf des folgenden können Sie sich die Request-Adresse\n"
+"geben lassen:\n"
+"\n"
+"%% bin/withlist -r listaddr.requestaddr mylist\n"
+"Loading list: mylist (unlocked)\n"
+"Importiere Mailinglistenadresse ...\n"
+"Running listaddr.requestaddr() ...\n"
+"mylist-request@myhost.com\n"
+"\n"
+"Als ein weiteres Beispiel - um sagen wir einmal, das Passwort eines\n"
+"bestimmten Benutzers einer bestimmten Liste zu ändern -, könnten Sie\n"
+"die folgenden Funktionen in eine Datei names `changepw.py' stecken:\n"
+"\n"
+"from Mailman.Errors import NotAMember\n"
+"\n"
+"def changepw(mlist, addr, newpasswd):\n"
+" try:\n"
+" mlist.setMemberPassword(addr, newpasswd)\n"
+" mlist.Save()\n"
+" except NotAMember:\n"
+" print 'Es passte keine Adresse:', addr\n"
+"\n"
+"und diesen Befehl in der Kommandozeile eingeben:\n"
+"%% bin/withlist -l -r changepw mylist somebody@somewhere.org foobar\n"
+
+#: bin/withlist:151
+msgid ""
+"Unlock a locked list, but do not implicitly Save() it.\n"
+"\n"
+" This does not get run if the interpreter exits because of a signal, or "
+"if\n"
+" os._exit() is called. It will get called if an exception occurs "
+"though.\n"
+" "
+msgstr ""
+"Gebe eine zuvor gesperrte Liste wieder frei, sichere sie aber ausdrücklich\n"
+"nicht via Save().\n"
+" Wird nicht ausgeführt, wenn der Interpreter ein Exitsignal erhält, oder "
+"die Methode os._exit() aufgerufen wird (obwohl sie aufgerufen wird, falls "
+"eine Exception auftritt). "
+
+# Mailman/Cgi/create.py:203 bin/newlist:184
+#: bin/withlist:162
+msgid "Unlocking (but not saving) list: %(listname)s"
+msgstr "Gebe Mailingliste wieder frei (aber speichere sie nicht): %(listname)s"
+
+#: bin/withlist:166
+msgid "Finalizing"
+msgstr "Vollende"
+
+# Mailman/Cgi/create.py:203 bin/newlist:184
+#: bin/withlist:175
+msgid "Loading list %(listname)s"
+msgstr "Lade Mailingliste: %(listname)s"
+
+#: bin/withlist:177
+msgid "(locked)"
+msgstr "(gesperrt)"
+
+#: bin/withlist:179
+msgid "(unlocked)"
+msgstr "(entsperrt)"
+
+# Mailman/Cgi/create.py:203 bin/newlist:184
+#: bin/withlist:184
+msgid "Unknown list: %(listname)s"
+msgstr "Unbekannte Liste: %(listname)s"
+
+# Mailman/Cgi/edithtml.py:57
+#: bin/withlist:223
+msgid "No list name supplied."
+msgstr "Kein Mailingslisten-Name angegeben."
+
+#: bin/withlist:226
+msgid "--all requires --run"
+msgstr ""
+
+#: bin/withlist:246
+msgid "Importing %(module)s..."
+msgstr "Importiere %(module)s..."
+
+#: bin/withlist:249
+msgid "Running %(module)s.%(callable)s()..."
+msgstr "Ausführen von %(module)s.%(callable)s()..."
+
+#: bin/withlist:270
+msgid "The variable `m' is the %(listname)s MailList instance"
+msgstr ""
+
+#: cron/bumpdigests:19
+msgid ""
+"Increment the digest volume number and reset the digest number to one.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" --help/-h\n"
+" Print this message and exit.\n"
+"\n"
+"The lists named on the command line are bumped. If no list names are "
+"given,\n"
+"all lists are bumped.\n"
+msgstr ""
+"Zählt die Mailsammlungs-Nummer um eins hoch und setzt den e-mail-Zähler auf Eins\n"
+"\n"
+"Benutzung: %(PROGRAM)s [optionen] [listenname ...]\n"
+"\n"
+"Optionen:\n"
+"\n"
+" --help/-h\n"
+" Ausgabe dieser Meldung und Schluss.\n"
+"\n"
+"Die auf der Kommandozeile angegeben Listen werden geschoben. Wird kein\n"
+"Listenname angegeben, werden alle vorhandenen Listen geschoben.\n"
+
+#: cron/checkdbs:19
+msgid ""
+"Invoked by cron, this checks for pending moderation requests and mails the\n"
+"list moderators if necessary.\n"
+msgstr ""
+"Via Cron gesteuert sucht dieses Programm nach offenen, moderierten\n"
+"Anforderungen und sendet gegebenenfalls eine Email an den Moderator der\n"
+"betreffenden Listen.\n"
+
+#: cron/checkdbs:81
+msgid "%(count)d %(realname)s moderator request(s) waiting"
+msgstr "%(count)d %(realname)s Moderatoranforderung(en) warten"
+
+# Mailman/Cgi/admin.py:707
+#: cron/checkdbs:100
+msgid "Pending subscriptions:"
+msgstr "Noch offene Abonnements:"
+
+#: cron/checkdbs:109
+msgid ""
+"\n"
+"Pending posts:"
+msgstr ""
+"\n"
+"Offene Eingänge:"
+
+#: cron/checkdbs:114
+msgid ""
+"From: %(sender)s on %(date)s\n"
+"Subject: %(subject)s\n"
+"Cause: %(reason)s"
+msgstr ""
+"Von: %(sender)s am %(date)s\n"
+"Betreff: %(subject)s\n"
+"Grund: %(reason)s"
+
+#: cron/disabled:19
+msgid ""
+"Process disabled members, recommended once per day.\n"
+"\n"
+"This script cruises through every mailing list looking for members whose\n"
+"delivery is disabled. If they have been disabled due to bounces, they will\n"
+"receive another notification, or they may be removed if they've received "
+"the\n"
+"maximum number of notifications.\n"
+"\n"
+"Use the --byadmin, --byuser, and --unknown flags to also send notifications "
+"to\n"
+"members whose accounts have been disabled for those reasons. Use --all to\n"
+"send the notification to all disabled members.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -h / --help\n"
+" Print this message and exit.\n"
+"\n"
+" -o / --byadmin\n"
+" Also send notifications to any member disabled by the list\n"
+" owner/administrator.\n"
+"\n"
+" -m / --byuser\n"
+" Also send notifications to any member disabled by themselves.\n"
+"\n"
+" -u / --unknown\n"
+" Also send notifications to any member disabled for unknown reasons\n"
+" (usually a legacy disabled address).\n"
+"\n"
+" -b / --notbybounce\n"
+" Don't send notifications to members disabled because of bounces "
+"(the\n"
+" default is to notify bounce disabled members).\n"
+"\n"
+" -a / --all\n"
+" Send notifications to all disabled members.\n"
+"\n"
+" -f / --force\n"
+" Send notifications to disabled members even if they're not due a "
+"new\n"
+" notification yet.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" Process only the given list, otherwise do all lists.\n"
+msgstr ""
+
+#: cron/disabled:143
+msgid "[disabled by periodic sweep and cull, no message available]"
+msgstr ""
+
+#: cron/gate_news:19
+msgid ""
+"Poll the NNTP servers for messages to be gatewayed to mailing lists.\n"
+"\n"
+"Usage: gate_news [options]\n"
+"\n"
+"Where options are\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this text and exit.\n"
+"\n"
+msgstr ""
+"NNTP-Server auf Nachrichten abfragen, die an Mailinglisten durchgereicht\n"
+"werden müssen.\n"
+"\n"
+"Benutzung: gate_news [optionen]\n"
+"\n"
+"Wobei gilt\n"
+"\n"
+" --help\n"
+" -h\n"
+" Ausgabe dieser Maldung und Schluss.\n"
+"\n"
+
+#: cron/mailpasswds:19
+msgid ""
+"Send password reminders for all lists to all users.\n"
+"\n"
+"This program scans all mailing lists and collects users and their "
+"passwords,\n"
+"grouped by the list's host_name if mm_cfg.VIRTUAL_HOST_OVERVIEW is true. "
+"Then\n"
+"one email message is sent to each unique user (per-virtual host) containing\n"
+"the list passwords and options url for the user. The password reminder "
+"comes\n"
+"from the mm_cfg.MAILMAN_SITE_LIST, which must exist.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -l listname\n"
+" --listname=listname\n"
+" Send password reminders for the named list only. If omitted,\n"
+" reminders are sent for all lists. Multiple -l/--listname options "
+"are\n"
+" allowed.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+msgstr ""
+"Sende Passwort-Erinnerung an alle Benutzer aller Listen.\n"
+"\n"
+"Dieses Programm durchsucht alle Listen und sammelt alle Benutzer und deren\n"
+"Passwörter, gruppiert nach dem Hostnamen der Liste, sofern die Option\n"
+"mm_cfg.VIRTUAL_HOST_OVERVIEW gesetzt ist. Anschliessend wird eine Email an\n"
+"jeden eindeutigen Benutzer gesendet (pro virtuellen Host), die das Passwort\n"
+"der Liste und einen Link auf die Benutzeroptionen enthält.\n"
+"Die Passwort-Erinnerung wird von mm_cfg.MAILMAN_SITE_LIST gesteuert.\n"
+"\n"
+"Benutzung: %(PROGRAM)s [optionen]\n"
+"\n"
+"Optionen:\n"
+" -l listname\n"
+" --listname=listname\n"
+" Sendet die Paßworterinnerung nur für die hier genannte Liste.\n"
+" Mehrere Listennamen können durch mehrere -l/--listname-Optionen\n"
+" angegeben werden. Fehler diese Option ganz, geht die Paßworterinnerung\n"
+" an alle Listen raus.\n"
+"\n"
+" -h/--help\n"
+" Ausgabe dieser Meldung und Schluss.\n"
+
+# Mailman/Cgi/create.py:101 Mailman/Cgi/create.py:174 bin/newlist:122
+# bin/newlist:154
+#: cron/mailpasswds:111
+msgid "Site list is missing: %(sitelistname)s"
+msgstr "Vermisse die Mailingliste: %(sitelistname)s"
+
+# Mailman/Cgi/confirm.py:203 Mailman/Cgi/options.py:658
+#: cron/mailpasswds:179
+msgid "Password // URL"
+msgstr "Passwort // URL"
+
+# Mailman/Deliverer.py:103
+#: cron/mailpasswds:199
+msgid "%(host)s mailing list memberships reminder"
+msgstr "%(host)s Mitgliedschafts-Erinnerung"
+
+#: cron/nightly_gzip:19
+msgid ""
+"Re-generate the Pipermail gzip'd archive flat files.\n"
+"\n"
+"This script should be run nightly from cron. When run from the command "
+"line,\n"
+"the following usage is understood:\n"
+"\n"
+"Usage: %(program)s [-v] [-h] [listnames]\n"
+"\n"
+"Where:\n"
+" --verbose\n"
+" -v\n"
+" print each file as it's being gzip'd\n"
+"\n"
+" --help\n"
+" -h\n"
+" print this message and exit\n"
+"\n"
+" listnames\n"
+" Optionally, only compress the .txt files for the named lists. "
+"Without \n"
+" this, all archivable lists are processed.\n"
+"\n"
+msgstr ""
+"Erneutes generieren der komprimierten Pipermail-Archivdateien.\n"
+"\n"
+"Dieses Skript sollte nachts per cron laufen. Das Programm kennt die \n"
+"folgenden Kommandozeilenparameter:\n"
+"\n"
+"Benutzung: %(program)s [-v] [-h] [listennamen]\n"
+"\n"
+"Wobei gilt:\n"
+"\n"
+" --verbose\n"
+" -v\n"
+" Ausgabe des Dateinamens beim Komprimieren\n"
+"\n"
+" --help\n"
+" -h\n"
+" Ausgabe dieser Meldung und Schluss\n"
+"\n"
+" listennamen\n"
+" Optional, nur komprimieren vorhandener .txt Dateien der angegebene\n"
+" Liste. Ohne Angabe des Listennamens werden die Dateien aller Listen\n"
+" komprimiert\n"
+".\n"
+
+#: cron/senddigests:19
+msgid ""
+"Dispatch digests for lists w/pending messages and digest_send_periodic set.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -h / --help\n"
+" Print this message and exit.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" Send the digest for the given list only, otherwise the digests for "
+"all\n"
+" lists are sent out.\n"
+msgstr ""
+"Sendet aktuelles digest einer Liste."
+"\n"
+"Benutzung: %(PROGRAM)s [options]\n"
+"\n"
+"Optionen:\n"
+" -h / --help\n"
+" Gibt diese Hilfe-Meldung aus.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" Sendet den digest nur für die angegebene Liste aus. Fehler diese\n"
+" Option, werden die digests aller Listen rausgeschickt!\n"
+
+# Mailman/Cgi/options.py:133
+#, fuzzy
+#~ msgid "A confirmation email has been sent separately."
+#~ msgstr "Die Email mit der Bestätigung wurde verschickt."
+
+# Mailman/MailCommandHandler.py:574
+#~ msgid "A removal confirmation message has been sent."
+#~ msgstr "Eine Bestätigung über das Entfernen wurde gesendet."
+
+# Mailman/Handlers/Decorate.py:53
+#~ msgid "non-digest header"
+#~ msgstr "Non-Digest Kopfzeile"
+
+# Mailman/Handlers/Decorate.py:54
+#~ msgid "non-digest footer"
+#~ msgstr "Non-Digest Fusszeile"
+
+# Mailman/Cgi/create.py:170
+#~ msgid "Bad owner email address: %(owner_mail)s"
+#~ msgstr "Falsche Emailadresse des Eigentümers: %(owner_mail)s"
+
+#~ msgid ""
+#~ "Dispatch digests for lists w/pending messages and digest_send_periodic "
+#~ "set.\n"
+#~ "\n"
+#~ "Typically it's invoked via cron.\n"
+#~ msgstr ""
+#~ "Verteile Nachrichtensammlungen für Listen mit zurückgehaltenen "
+#~ "Nachrichten\n"
+#~ "und gesetzter Option digest_send_periodic.\n"
+#~ "\n"
+#~ "Typischerweise erfolgt der Aufruf via cron.\n"
+
+# Mailman/Gui/NonDigest.py:34
+#, fuzzy
+#~ msgid "Policies concerning concerning the content of list traffic."
+#~ msgstr "Verhalten in Sachen Datenverkehr bei sofortiger Mailzustellung."
+
+# Mailman/MTA/Aliases.py:40
+#~ msgid ""
+#~ "To finish creating your mailing list, you must edit your\n"
+#~ "/etc/aliases (or equivalent) file by adding the following lines:\n"
+#~ "\n"
+#~ "## %(listname)s mailing list\n"
+#~ "## created: %(date)s %(user)s\n"
+#~ "%(list)s \"|%(wrapper)s post %(listname)s\"\n"
+#~ "%(admin)s \"|%(wrapper)s mailowner %(listname)s\"\n"
+#~ "%(request)s \"|%(wrapper)s mailcmd %(listname)s\"\n"
+#~ "%(owner)s %(listname)s-admin\n"
+#~ msgstr ""
+#~ "Um das Neuanlegen Ihrer Mailingliste abzuschliessen, editieren Sie die "
+#~ "Datei\n"
+#~ "/etc/aliases (oder deren Äquivalent) und fügen die folgenden Zeilen ein:\n"
+#~ "\n"
+#~ "## %(listname)s mailing list\n"
+#~ "## created: %(date)s %(user)s\n"
+#~ "%(list)s \"|%(wrapper)s post %(listname)s\"\n"
+#~ "%(admin)s \"|%(wrapper)s mailowner %(listname)s\"\n"
+#~ "%(request)s \"|%(wrapper)s mailcmd %(listname)s\"\n"
+#~ "%(owner)s %(listname)s-admin\n"
+
+# Mailman/MTA/Aliases.py:63
+#~ msgid ""
+#~ "To finish removing your mailing list, you must edit your\n"
+#~ "/etc/aliases (or equivalent) file by removing the following lines:\n"
+#~ "\n"
+#~ "%(list)s \"|%(wrapper)s post %(listname)s\"\n"
+#~ "%(admin)s \"|%(wrapper)s mailowner %(listname)s\"\n"
+#~ "%(request)s \"|%(wrapper)s mailcmd %(listname)s\"\n"
+#~ "%(owner)s %(listname)s-admin\n"
+#~ msgstr ""
+#~ "Um das Entfernen der Mailingliste abzuschliessen, editieren Sie die "
+#~ "Datei\n"
+#~ "/etc/aliases (oder deren Äquivalent) und löschen darin die folgenden "
+#~ "Zeilen:\n"
+#~ "\n"
+#~ "%(list)s \"|%(wrapper)s post %(listname)s\"\n"
+#~ "%(admin)s \"|%(wrapper)s mailowner %(listname)s\"\n"
+#~ "%(request)s \"|%(wrapper)s mailcmd %(listname)s\"\n"
+#~ "%(owner)s %(listname)s-admin\n"
+
+# Mailman/MTA/Qmail.py:31
+#~ msgid ""
+#~ "To finish creating your mailing list, execute the following\n"
+#~ "commands with the proper permission:\n"
+#~ "\n"
+#~ "echo '|preline %(wrapper)s post %(listname)s' >~alias/.qmail-%(listname)"
+#~ "s\n"
+#~ "echo '|preline %(wrapper)s mailowner %(listname)s' >~alias/.qmail-%"
+#~ "(listname)s-admin\n"
+#~ "echo '|preline %(wrapper)s mailcmd %(listname)s' >~alias/.qmail-%"
+#~ "(listname)s-request\n"
+#~ "echo '&%(listname)s-admin' >~alias/.qmail-owner-%(listname)s\n"
+#~ "echo '&%(listname)s-admin' >~alias/.qmail-%(listname)s-owner\n"
+#~ "\n"
+#~ "chmod 644 ~alias/.qmail-%(listname)s ~alias/.qmail-%(listname)s-admin\n"
+#~ "chmod 644 ~alias/.qmail-%(listname)s-request ~alias/.qmail-%(listname)s-"
+#~ "owner\n"
+#~ "chmod 644 ~alias/.qmail-owner-%(listname)s\n"
+#~ msgstr ""
+#~ "Um das Anlegen Ihrer Mailingliste zu vervollständigen, führen Sie bitte "
+#~ "die\n"
+#~ "folgenden Anweisungen aus (mit den entsprechenden Berechtigungen):\n"
+#~ "\n"
+#~ "echo '|preline %(wrapper)s post %(listname)s' >~alias/.qmail-%(listname)"
+#~ "s\n"
+#~ "echo '|preline %(wrapper)s mailowner %(listname)s' >~alias/.qmail-%"
+#~ "(listname)s-admin\n"
+#~ "echo '|preline %(wrapper)s mailcmd %(listname)s' >~alias/.qmail-%"
+#~ "(listname)s-request\n"
+#~ "echo '&%(listname)s-admin' >~alias/.qmail-owner-%(listname)s\n"
+#~ "echo '&%(listname)s-admin' >~alias/.qmail-%(listname)s-owner\n"
+#~ "\n"
+#~ "chmod 644 ~alias/.qmail-%(listname)s ~alias/.qmail-%(listname)s-admin\n"
+#~ "chmod 644 ~alias/.qmail-%(listname)s-request ~alias/.qmail-%(listname)s-"
+#~ "owner\n"
+#~ "chmod 644 ~alias/.qmail-owner-%(listname)s\n"
+
+# Mailman/MailCommandHandler.py:229
+# Mailman/MTA/Qmail.py:48
+#~ msgid ""
+#~ "To finish removing your mailing list, you must remove the\n"
+#~ "all the entires for the %(listname)s aliases."
+#~ msgstr ""
+#~ "Um das Entfernen Ihrer Mailingliste zu komplettieren, löschen Sie bitte\n"
+#~ "alle Einträge des %(listname)s Aliases."
+
+#~ msgid "Return the hostname, pid, and tempfile"
+#~ msgstr "Liefert den Hostnamen, die PID und die Tempdatei zurück."
+
+#~ msgid "Post by a moderated member"
+#~ msgstr "Veröffentlichung eines moderierten Mitglieds"
+
+# Mailman/Gui/Autoresponse.py:62
+#~ msgid "Auto-response text to send to -admin and -owner emails."
+#~ msgstr "Text der automatischen Antwort auf Emails an -admin und -owner ."
+
+#, fuzzy
+#~ msgid ""
+#~ "pygettext -- Python equivalent of xgettext(1)\n"
+#~ "\n"
+#~ "Many systems (Solaris, Linux, Gnu) provide extensive tools that ease the\n"
+#~ "internationalization of C programs. Most of these tools are independent "
+#~ "of\n"
+#~ "the programming language and can be used from within Python programs. "
+#~ "Martin\n"
+#~ "von Loewis' work[1] helps considerably in this regard.\n"
+#~ "\n"
+#~ "There's one problem though; xgettext is the program that scans source "
+#~ "code\n"
+#~ "looking for message strings, but it groks only C (or C++). Python "
+#~ "introduces\n"
+#~ "a few wrinkles, such as dual quoting characters, triple quoted strings, "
+#~ "and\n"
+#~ "raw strings. xgettext understands none of this.\n"
+#~ "\n"
+#~ "Enter pygettext, which uses Python's standard tokenize module to scan "
+#~ "Python\n"
+#~ "source code, generating .pot files identical to what GNU xgettext[2] "
+#~ "generates\n"
+#~ "for C and C++ code. From there, the standard GNU tools can be used.\n"
+#~ "\n"
+#~ "A word about marking Python strings as candidates for translation. GNU\n"
+#~ "xgettext recognizes the following keywords: gettext, dgettext, dcgettext, "
+#~ "and\n"
+#~ "gettext_noop. But those can be a lot of text to include all over your "
+#~ "code.\n"
+#~ "C and C++ have a trick: they use the C preprocessor. Most "
+#~ "internationalized C\n"
+#~ "source includes a #define for gettext() to _() so that what has to be "
+#~ "written\n"
+#~ "in the source is much less. Thus these are both translatable strings:\n"
+#~ "\n"
+#~ " gettext(\"Translatable String\")\n"
+#~ " _(\"Translatable String\")\n"
+#~ "\n"
+#~ "Python of course has no preprocessor so this doesn't work so well. "
+#~ "Thus,\n"
+#~ "pygettext searches only for _() by default, but see the -k/--keyword "
+#~ "flag\n"
+#~ "below for how to augment this.\n"
+#~ "\n"
+#~ " [1] http://www.python.org/workshops/1997-10/proceedings/loewis.html\n"
+#~ " [2] http://www.gnu.org/software/gettext/gettext.html\n"
+#~ "\n"
+#~ "NOTE: pygettext attempts to be option and feature compatible with GNU "
+#~ "xgettext\n"
+#~ "where ever possible. However some options are still missing or are not "
+#~ "fully\n"
+#~ "implemented. Also, xgettext's use of command line switches with option\n"
+#~ "arguments is broken, and in these cases, pygettext just defines "
+#~ "additional\n"
+#~ "switches.\n"
+#~ "\n"
+#~ "Usage: pygettext [options] inputfile ...\n"
+#~ "\n"
+#~ "Options:\n"
+#~ "\n"
+#~ " -a\n"
+#~ " --extract-all\n"
+#~ " Extract all strings.\n"
+#~ "\n"
+#~ " -d name\n"
+#~ " --default-domain=name\n"
+#~ " Rename the default output file from messages.pot to name.pot.\n"
+#~ "\n"
+#~ " -E\n"
+#~ " --escape\n"
+#~ " Replace non-ASCII characters with octal escape sequences.\n"
+#~ "\n"
+#~ " -D\n"
+#~ " --docstrings\n"
+#~ " Extract module, class, method, and function docstrings. These do "
+#~ "not\n"
+#~ " need to be wrapped in _() markers, and in fact cannot be for "
+#~ "Python to\n"
+#~ " consider them docstrings. (See also the -X option).\n"
+#~ "\n"
+#~ " -h\n"
+#~ " --help\n"
+#~ " Print this help message and exit.\n"
+#~ "\n"
+#~ " -k word\n"
+#~ " --keyword=word\n"
+#~ " Keywords to look for in addition to the default set, which are:\n"
+#~ " %(DEFAULTKEYWORDS)s\n"
+#~ "\n"
+#~ " You can have multiple -k flags on the command line.\n"
+#~ "\n"
+#~ " -K\n"
+#~ " --no-default-keywords\n"
+#~ " Disable the default set of keywords (see above). Any keywords\n"
+#~ " explicitly added with the -k/--keyword option are still "
+#~ "recognized.\n"
+#~ "\n"
+#~ " --no-location\n"
+#~ " Do not write filename/lineno location comments.\n"
+#~ "\n"
+#~ " -n\n"
+#~ " --add-location\n"
+#~ " Write filename/lineno location comments indicating where each\n"
+#~ " extracted string is found in the source. These lines appear "
+#~ "before\n"
+#~ " each msgid. The style of comments is controlled by the -S/--"
+#~ "style\n"
+#~ " option. This is the default.\n"
+#~ "\n"
+#~ " -o filename\n"
+#~ " --output=filename\n"
+#~ " Rename the default output file from messages.pot to filename. "
+#~ "If\n"
+#~ " filename is `-' then the output is sent to standard out.\n"
+#~ "\n"
+#~ " -p dir\n"
+#~ " --output-dir=dir\n"
+#~ " Output files will be placed in directory dir.\n"
+#~ "\n"
+#~ " -S stylename\n"
+#~ " --style stylename\n"
+#~ " Specify which style to use for location comments. Two styles "
+#~ "are\n"
+#~ " supported:\n"
+#~ "\n"
+#~ " Solaris # File: filename, line: line-number\n"
+#~ " GNU #: filename:line\n"
+#~ "\n"
+#~ " The style name is case insensitive. GNU style is the default.\n"
+#~ "\n"
+#~ " -v\n"
+#~ " --verbose\n"
+#~ " Print the names of the files being processed.\n"
+#~ "\n"
+#~ " -V\n"
+#~ " --version\n"
+#~ " Print the version of pygettext and exit.\n"
+#~ "\n"
+#~ " -w columns\n"
+#~ " --width=columns\n"
+#~ " Set width of output to columns.\n"
+#~ "\n"
+#~ " -x filename\n"
+#~ " --exclude-file=filename\n"
+#~ " Specify a file that contains a list of strings that are not be\n"
+#~ " extracted from the input files. Each string to be excluded must\n"
+#~ " appear on a line by itself in the file.\n"
+#~ "\n"
+#~ " -X filename\n"
+#~ " --no-docstrings=filename\n"
+#~ " Specify a file that contains a list of files (one per line) that\n"
+#~ " should not have their docstrings extracted. This is only useful "
+#~ "in\n"
+#~ " conjunction with the -D option above.\n"
+#~ "\n"
+#~ "If `inputfile' is -, standard input is read.\n"
+#~ msgstr ""
+#~ "pygettext -- Python Äquivalent zu xgettext(1)\n"
+#~ "\n"
+#~ "Viele Systeme (Solaris, Linux, Gnu) stellen umfangreiche Werkzeuge zur\n"
+#~ "Internationalisierung von C-Programmen bereit. Viele dieser Tools sind\n"
+#~ "unabhängig von der Programmiersprache und können von Python-Programmen\n"
+#~ "genutzt werden. Martin von Loewis' Arbeit [1] hilft hierbei "
+#~ "beträchtlich.\n"
+#~ "\n"
+#~ "Ein Problem verbleibt jedoch: xgettext ist ein Programm, das Quellcode "
+#~ "nach\n"
+#~ "Zeichenketten durchsucht, aber leider nur C/C++ Code versteht. Python\n"
+#~ "hingegen nutzt einige Tricks, so etwa das doppelte oder dreifache\n"
+#~ "Einschliessen von Text in Hochkommata und das Arbeiten mit rohem Text,\n"
+#~ "womit xgettext nun überhaupt nichts anfangen kann.\n"
+#~ "\n"
+#~ "Deshalb können Sie pygettext benutzen, um .pot-Dateien zu erzeugen, die\n"
+#~ "identisch mit denen von GNU xgettext[2] erzeugten sind. Dabei werden\n"
+#~ "zum Durchsuchen der Quellen Python's Standardmodule zur Token-Analyse\n"
+#~ "benutzt. Nachdem Sie die .pot-Dateien erzeugt haben, können Sie die GNU-\n"
+#~ "Standardtools zur weiteren Bearbeitung benutzen.\n"
+#~ "\n"
+#~ "Ein Wort zum Markieren von Strings für die Übersetzung in Python: GNU\n"
+#~ "xgettext erkennt die folgenden Schlüsselwörter: gettext, dgettext,\n"
+#~ "dcgettext, and gettext_noop. Das kann zu einer Menge einzufügenem Text\n"
+#~ "in Ihrem Quellcode führen. C und C++ benutzen einen Trick: einen\n"
+#~ "Präprozessor nämlich. Der meiste internationalisierte C-Quellcode "
+#~ "beinhaltet\n"
+#~ "einen #define für gettext() auf _(), sodass die Menge an zu schreibendem\n"
+#~ "Code wesentlich geringer ist.\n"
+#~ "Folglich sind diese beiden Strings übersetzbar:\n"
+#~ "\n"
+#~ " gettext(\"Translatable String\")\n"
+#~ " _(\"Translatable String\")\n"
+#~ "\n"
+#~ "Python hat natürlich keinen Präprozessor, weshalb das nicht "
+#~ "funktionieren\n"
+#~ "würde. Deshalb sucht pygettext nur nach _(). Siehe hierzu aber die "
+#~ "Option\n"
+#~ "-k/--keyword weiter unten im Text\n"
+#~ "\n"
+#~ " [1] http://www.python.org/workshops/1997-10/proceedings/loewis.html\n"
+#~ " [2] http://www.gnu.org/software/gettext/gettext.html\n"
+#~ "\n"
+#~ "HINWEIS: pygettext bemüht sich, in seinem Funktionsumfang und seinen\n"
+#~ "Optionen zum GNU xgettext kompatibel zu sein. Einige Optionen fehlen "
+#~ "aber\n"
+#~ "dennoch, bzw. sind noch nicht vollständig implementiert. Des weiteren\n"
+#~ "bestehen bei xgettext Probleme bei der Benutzung von Optionsargumenten,\n"
+#~ "die pygettext dadurch umgeht, dass es einfach neue Optionen definiert.\n"
+#~ "\n"
+#~ "Benutzung: pygettext [optionen] eingabedatei ...\n"
+#~ "\n"
+#~ "Optionen:\n"
+#~ "\n"
+#~ " -a\n"
+#~ " --extract-all\n"
+#~ " Extrahieren aller Zeichenketten.\n"
+#~ "\n"
+#~ " -d name\n"
+#~ " --default-domain=name\n"
+#~ " Umbenennen der Default-Ausgabedatei von messages.pot nach name."
+#~ "pot.\n"
+#~ "\n"
+#~ " -E\n"
+#~ " --escape\n"
+#~ " Ersetze Nicht-ASCII-Zeichen durch oktale Escapesequenzen.\n"
+#~ "\n"
+#~ " -D\n"
+#~ " --docstrings\n"
+#~ " Extrahiere Modul-, Klassen-, Methoden-, und Funktions-"
+#~ "Docstrings.\n"
+#~ " Diese müssen nicht in _() gekapselt sein; dürfen es auch nicht "
+#~ "sein,\n"
+#~ " um von Python noch als Docstrings erkannt zu werden (siehe "
+#~ "hierzu\n"
+#~ " die X-Option).\n"
+#~ "\n"
+#~ " -h\n"
+#~ " --help\n"
+#~ " Ausgabe dieser Meldung und Schluss.\n"
+#~ "\n"
+#~ " -k word\n"
+#~ " --keyword=word\n"
+#~ " Zusätzliche Schlüsselwörter, nach denen gesucht werden soll.\n"
+#~ " Der fehlwertseitige Umfang besteht aus: %(DEFAULTKEYWORDS)s.\n"
+#~ "\n"
+#~ " Diese Option kann mehrfach angegeben werden.\n"
+#~ "\n"
+#~ " -K\n"
+#~ " --no-default-keywords\n"
+#~ " Abschalten der Standard-Schlüsselwörter (siehe oben). Alle mit "
+#~ "der\n"
+#~ " Option -k/--keyword angegebenen Schlüsselwörter werden aber nach "
+#~ "wie\n"
+#~ " vor erkannt\n"
+#~ "\n"
+#~ " --no-location\n"
+#~ " Keine Kommantare zu Dateinamen/Zeilenposition hinfufügen.\n"
+#~ "\n"
+#~ " -n\n"
+#~ " --add-location\n"
+#~ " Füge Dateinamen und Zeilenposition der Strings in den Quellcodes\n"
+#~ " hinzu. Diese Zeilen erscheinen vor jeder msgid. Der "
+#~ "Kommentarstil\n"
+#~ " wird von der -S/--style Option gesteuert. Die Option -n ist\n"
+#~ " fehlwertseitig aktiviert.\n"
+#~ "\n"
+#~ " -o filename\n"
+#~ " --output=filename\n"
+#~ " Umbenennen der Default-Ausgabedatei von messages.pot nach "
+#~ "filename.\n"
+#~ " Wenn Dateiname '-' ist, wird die Ausgabe nach stdout gesendet.\n"
+#~ "\n"
+#~ " -p dir\n"
+#~ " --output-dir=dir\n"
+#~ " Ausgabedateien werden ins Verzeichnis dir geschrieben.\n"
+#~ "\n"
+#~ " -S stylename\n"
+#~ " --style stylename\n"
+#~ " Legt fest, welcher Stil für Positionskommentare benutzt werden "
+#~ "soll.\n"
+#~ " Zwei Stile stehen zur Auswahl:\n"
+#~ "\n"
+#~ " Solaris # Datei: Dateiname, Zeile: Zeilennummer\n"
+#~ " GNU #: Dateiname:Zeile\n"
+#~ "\n"
+#~ " Grosskleinschreibung des Stilnames spielt keine Rolle.\n"
+#~ " Fehlwertseitig wird der GNU-Stil benutzt.\n"
+#~ "\n"
+#~ " -v\n"
+#~ " --verbose\n"
+#~ " Ausgabe der gerade in Verarbeitung befindlichen Dateinamen.\n"
+#~ "\n"
+#~ " -V\n"
+#~ " --version\n"
+#~ " Ausgabe des Versionstands von pygettext.\n"
+#~ "\n"
+#~ " -w columns\n"
+#~ " --width=columns\n"
+#~ " Legt fest, wieviele Spalten die Ausgabe breit ist.\n"
+#~ "\n"
+#~ " -x filename\n"
+#~ " --exclude-file=filename\n"
+#~ " Datei angeben, die eine Liste aller Strings enthält, die nicht "
+#~ "aus\n"
+#~ " den Quelldateien extrahiert werden sollen. Jede Zeichenkette, "
+#~ "die\n"
+#~ " nicht extrahiert werden soll, muss in einer Zeile alleine "
+#~ "stehen.\n"
+#~ "\n"
+#~ " -X filename\n"
+#~ " --no-docstrings=filename\n"
+#~ " Datei angeben, die eine Liste von Dateien enthält (eine pro "
+#~ "Zeile)\n"
+#~ " deren Docstrings nicht extrahiert werden sollen. Dies ist nur\n"
+#~ " sinnvoll in Verbindung mit der -D Option.\n"
+#~ "\n"
+#~ "Wenn `inputfile' '-' ist, wird von der Standardeingabe gelesen.\n"
+
+#~ msgid ""
+#~ "# SOME DESCRIPTIVE TITLE.\n"
+#~ "# Copyright (C) YEAR ORGANIZATION\n"
+#~ "# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.\n"
+#~ "#\n"
+#~ "msgid \"\"\n"
+#~ "msgstr \"\"\n"
+#~ "\"Project-Id-Version: PACKAGE VERSION\\n\"\n"
+#~ "\"POT-Creation-Date: %(time)s\\n\"\n"
+#~ "\"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n\"\n"
+#~ "\"Last-Translator: FULL NAME <EMAIL@ADDRESS>\\n\"\n"
+#~ "\"Language-Team: LANGUAGE <LL@li.org>\\n\"\n"
+#~ "\"MIME-Version: 1.0\\n\"\n"
+#~ "\"Content-Type: text/plain; charset=CHARSET\\n\"\n"
+#~ "\"Content-Transfer-Encoding: ENCODING\\n\"\n"
+#~ "\"Generated-By: pygettext.py %(version)s\\n\"\n"
+#~ "\n"
+#~ msgstr ""
+#~ "# EIN AUSDRUCKSSTARKER TITEL.\n"
+#~ "# Copyright (C) JAHR ORGANISATION\n"
+#~ "# ERSTER AUTO <EMAIL@ADRESSE>, JAHR.\n"
+#~ "#\n"
+#~ "msgid \"\"\n"
+#~ "msgstr \"\"\n"
+#~ "\"Projekt-Id-Version: PACKET VERSION\\n\"\n"
+#~ "\"POT-Erzeugungsdatum: %(time)s\\n\"\n"
+#~ "\"PO-Revisionsdatum: TT.MM.JAHR HH:MM+ZEITZONE\\n\"\n"
+#~ "\"Last-Translator: NAME <EMAIL@ADRESSE>\\n\"\n"
+#~ "\"Übersetzungsteam: SPRACHE <LL@li.org>\\n\"\n"
+#~ "\"MIME-Version: 1.0\\n\"\n"
+#~ "\"Content-Type: text/plain; charset=CHARSET\\n\"\n"
+#~ "\"Content-Transfer-Encoding: ENCODING\\n\"\n"
+#~ "\"Generated-By: pygettext.py %(version)s\\n\"\n"
+#~ "\n"
+
+#~ msgid "# File: %(filename)s, line: %(lineno)d"
+#~ msgstr "# Datei: %(filename)s, Zeile: %(lineno)d"
+
+#~ msgid " %(filename)s:%(lineno)d"
+#~ msgstr " %(filename)s:%(lineno)d"
+
+#~ msgid "pygettext.py (xgettext for Python) %s"
+#~ msgstr "pygettext.py (xgettext für Python) %s"
+
+#~ msgid "--width argument must be an integer: %s"
+#~ msgstr "--width Argument muss ein Integer sein: %s"
+
+#~ msgid "Can't read --exclude-file: %s"
+#~ msgstr "Nicht lesbar: --exclude-file: %s"
+
+#~ msgid "Reading standard input"
+#~ msgstr "Lese Standardeingabe"
+
+#~ msgid "Working on %s"
+#~ msgstr "Arbeite an %s"
+
+# Mailman/Cgi/confirm.py:587
+#~ msgid "a unicode string"
+#~ msgstr "eine Unicode-Zeichenkette"
+
+# Mailman/MailCommandHandler.py:57
+#~ msgid ""
+#~ "When turned on, your email address is concealed on the Web page\n"
+#~ "that lists the members of the mailing list."
+#~ msgstr ""
+#~ "Ist diese Option eingeschaltet, wird Ihre Emailadresse auf der Webseite\n"
+#~ "verborgen, so dass diese nicht mehr im Mitgliederverzeichnis sichtbar ist."
+
+# Mailman/MailCommandHandler.py:60
+#~ msgid ""
+#~ "When turned on, delivery to your email address is disabled, but\n"
+#~ "your address is still subscribed. This is useful if you plan on taking "
+#~ "a\n"
+#~ "short vacation."
+#~ msgstr ""
+#~ "Ist diese Option eingeschaltet, werden keine Emails mehr an Ihre Adresse\n"
+#~ "zugestellt, Ihr Abonnement bleibt aber dennoch gültig. Nützlich, wenn "
+#~ "Sie\n"
+#~ "einen kleinen Urlaub planen."
+
+# Mailman/MailCommandHandler.py:64
+#~ msgid ""
+#~ "When turned on, you get a separate acknowledgement email when you\n"
+#~ "post messages to the list."
+#~ msgstr ""
+#~ "Ist diese Option eingeschaltet, erhalten Sie eine separate "
+#~ "Bestätigungsemail\n"
+#~ "auf jede Nachricht, die Sie an die Liste senden."
+
+# Mailman/MailCommandHandler.py:67
+#~ msgid ""
+#~ "When turned on, you do *not* get copies of your own posts to\n"
+#~ "the list. Otherwise, you do get copies of your own posts (yes, this "
+#~ "seems a\n"
+#~ "little backwards). This does not affect the contents of digests, so if "
+#~ "you\n"
+#~ "receive postings in digests, you will always get copies of your messages "
+#~ "in\n"
+#~ "the digest."
+#~ msgstr ""
+#~ "Ist diese Option eingeschaltet, erhalten Sie *keine* Kopien Ihrer "
+#~ "eigenen\n"
+#~ "Nachrichten an die Liste. Anderenfalls erhalten Sie diese. Diese Options\n"
+#~ "beeinflusst in keiner Weise die Reaktion auf Postings an Sammellisten, "
+#~ "die\n"
+#~ "in der Tat immer eine Kopie an den Einsender einer Nachricht senden."
+
+# Mailman/MailCommandHandler.py:73
+#~ msgid ""
+#~ "When turned on, you get postings from the list bundled into\n"
+#~ "digests. Otherwise, you get each individual message immediately as it "
+#~ "is\n"
+#~ "posted to the list."
+#~ msgstr ""
+#~ "Ist diese Option eingeschaltet, erhalten Sie Nachrichten in Form von\n"
+#~ "(Tages-)Zusammenfassungen. Anderenfalls erhalten Sie die Nachrichten so,\n"
+#~ "wie sie an die Mailingliste gesendet wurden."
+
+# Mailman/MailCommandHandler.py:77
+#~ msgid ""
+#~ "When turned on, you get `plain' digests, which are actually\n"
+#~ "formatted using the RFC1154 digest format. This format can be easier to "
+#~ "read\n"
+#~ "if you have a non-MIME compliant mail reader. When this option is turned "
+#~ "off,\n"
+#~ "you get digests in MIME format, which are much better if you have a mail\n"
+#~ "reader that supports MIME."
+#~ msgstr ""
+#~ "Wenn dies eingeschaltet ist, erhalten Sie Nachrichtensammlungen im "
+#~ "`plain'-\n"
+#~ "Format, unter Verwendung des RFC1154-Digest-Formats. Es kann sein, dass "
+#~ "Sie\n"
+#~ "dieses Format leichter lesen können, wenn Sie ein Non-MIME-Mailprogramm\n"
+#~ "einsetzen. Wenn diese Option abgeschaltet ist, erhalten Sie Sammlungen "
+#~ "im\n"
+#~ "MIME-Format, welche mit einem entsprechenden Mailprogramm viel besser\n"
+#~ "gelesen werden können."
+
+# Mailman/MailCommandHandler.py:208
+#~ msgid ""
+#~ "Subject line ignored:\n"
+#~ " "
+#~ msgstr "Ignoriere Befreffzeile: "
+
+# Mailman/MailCommandHandler.py:213
+#~ msgid ""
+#~ "Maximum command lines (%(maxlines)d) encountered, ignoring the rest..."
+#~ msgstr ""
+#~ "Maximale Anzahl an Kommandozeilen erreicht (%(maxlines)d), ignoriere den "
+#~ "Rest..."
+
+# Mailman/MailCommandHandler.py:229
+#~ msgid "End: "
+#~ msgstr "Ende: "
+
+# Mailman/MailCommandHandler.py:230
+#~ msgid "The rest of the message is ignored:"
+#~ msgstr "Der Rest der Nachricht wird ignoriert:"
+
+# Mailman/MailCommandHandler.py:235
+#~ msgid "Command? "
+#~ msgstr "Anweisung?"
+
+# Mailman/MailCommandHandler.py:237
+#~ msgid ""
+#~ "\n"
+#~ "Too many errors encountered; the rest of the message is ignored:"
+#~ msgstr ""
+#~ "\n"
+#~ "Zu viele Fehler aufgetreten. Der Rest der Nachricht wird ignoriert: "
+
+# Mailman/MailCommandHandler.py:269
+#~ msgid ""
+#~ "An unexpected Mailman error has occurred.\n"
+#~ "\n"
+#~ "Please forward your request to the human list administrator in charge of "
+#~ "this\n"
+#~ "list at <%(admin)s>. The traceback is attached below and will be "
+#~ "forwarded to\n"
+#~ "the list administrator automatically."
+#~ msgstr ""
+#~ "Ein unerwarteter Fehler ist aufgetreten.\n"
+#~ "\n"
+#~ "Bitte leiten Sie Ihre Anfrage an den Listenadministrator dieser Liste\n"
+#~ "weiter. Sie erreichen diesen unter <%(admin)s>. Die Fehlerrückverfolgung\n"
+#~ "finden Sie im Anschluss an diese Nachricht; sie wird automatisch an den\n"
+#~ "Verwalter der Liste weitergeleitet."
+
+# Mailman/MailCommandHandler.py:282
+#~ msgid "Unexpected Mailman error"
+#~ msgstr "Unerwarteter Fehler aufgetreten"
+
+# Mailman/MailCommandHandler.py:283
+#~ msgid ""
+#~ "An unexpected Mailman error has occurred in\n"
+#~ "MailCommandHandler.ParseMailCommands(). Here is the traceback:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Ein unerwarteter Fehler trat auf in MailCommandHandler.ParseMailCommands"
+#~ "()\n"
+#~ "Hier nun das Ergebnis der Rückverfolgung:\n"
+#~ "\n"
+
+# Mailman/MailCommandHandler.py:300
+#~ msgid ""
+#~ "This is an automated response.\n"
+#~ "\n"
+#~ "There were problems with the email commands you sent to Mailman via the\n"
+#~ "administrative address %(requestaddr)s.\n"
+#~ "\n"
+#~ "To obtain instructions on valid Mailman email commands, send email to\n"
+#~ "%(requestaddr)s with the word \"help\" in the subject line or in the body "
+#~ "of the\n"
+#~ "message.\n"
+#~ "\n"
+#~ "If you want to reach the human being that manages this mailing list, "
+#~ "please\n"
+#~ "send your message to %(adminaddr)s.\n"
+#~ "\n"
+#~ "The following is a detailed description of the problems.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Dies ist eine automatisch erzeugte Antwort.\n"
+#~ "\n"
+#~ "Es gab Schwierigkeiten mit den Emailbefehlen, die Sie an Mailman unter\n"
+#~ "Verwendung seiner Verwaltungsadresse %(requestaddr)s gesendet haben.\n"
+#~ "\n"
+#~ "Um Instruktionen zu den gültigen Mailman-Emailkommandos zu erhalten,\n"
+#~ "senden Sie eine Email mit dem Betreff \"help\" (oder im Nachrichtentext)\n"
+#~ "an die Adresse %(requestaddr)s.\n"
+#~ "\n"
+#~ "Möchten sie hingegen Kontakt zu dem menschlichen Wesen aufnehmen, das "
+#~ "diese\n"
+#~ "Mailingliste verwaltet, senden Sie Ihre Nachricht an %(requestaddr)s.\n"
+#~ "\n"
+#~ "Hier sehen Sie eine detailierte Beschreibung des aufgetretenen Problems:\n"
+#~ "\n"
+
+# Mailman/MailCommandHandler.py:318
+#~ msgid "Mailman results for %(realname)s"
+#~ msgstr "Mailman-Ergebnisse für %(realname)s"
+
+# Mailman/MailCommandHandler.py:333
+#~ msgid "Usage: password [<oldpw> <newpw>]"
+#~ msgstr "Benutzung password [<altes_pw> <neues_pw>]"
+
+# Mailman/MailCommandHandler.py:344
+#~ msgid "You are subscribed as %(user)s, with password: %(password)s"
+#~ msgstr "Sie haben als %(user)s abonniert, Ihr Passwort lautet %(password)s"
+
+# Mailman/MailCommandHandler.py:348
+#~ msgid "Found no password for %(sender)s"
+#~ msgstr "Kein Passwort für %(sender)s vorhanden"
+
+# Mailman/MailCommandHandler.py:357 Mailman/MailCommandHandler.py:430
+# Mailman/MailCommandHandler.py:581
+#~ msgid "Succeeded."
+#~ msgstr "Erfolgreich erledigt"
+
+# Mailman/MailList.py:614 Mailman/MailList.py:886
+#, fuzzy
+#~ msgid "on (%(reason)s"
+#~ msgstr " von %(remote)s"
+
+# Mailman/MailCommandHandler.py:374
+#~ msgid ""
+#~ "To change an option, do: set <option> <on|off> <password>\n"
+#~ "\n"
+#~ "Option explanations:\n"
+#~ "--------------------\n"
+#~ msgstr ""
+#~ "Um eine Option zu Ändern: set <option> <on|off> <passwort>\n"
+#~ "\n"
+#~ "Erklärung der Optionen:\n"
+#~ "-----------------------\n"
+
+# Mailman/MailCommandHandler.py:391
+#~ msgid ""
+#~ "Usage: set <option> <on|off> <password>\n"
+#~ "Valid options are:\n"
+#~ msgstr ""
+#~ "Benutzung: set <option> <on|off> <passwort>\n"
+#~ "Gültige Optionen sind:\n"
+
+# Mailman/MailCommandHandler.py:432
+#~ msgid "You are already receiving digests."
+#~ msgstr "Sie sind bereits Empfänger von Nachrichtensammlungen."
+
+# Mailman/MailCommandHandler.py:436
+#~ msgid "List only accepts digest members."
+#~ msgstr "Die Liste akzeptiert nur Mitglieder von Nachrichtensammlungen"
+
+# Mailman/MailCommandHandler.py:438
+#~ msgid "List doesn't accept digest members."
+#~ msgstr "Die Liste akzeptiert keine Mitglieder von Nachrichtensammlungen"
+
+# Mailman/MailCommandHandler.py:466
+#~ msgid "\trequests to: "
+#~ msgstr "\tAnforderungen an: "
+
+# Mailman/MailCommandHandler.py:469
+#~ msgid "\tdescription: "
+#~ msgstr "\tBeschreibung:"
+
+# Mailman/MailCommandHandler.py:474
+#~ msgid ""
+#~ "\n"
+#~ "Usage: info\n"
+#~ "To get info for a particular list, send your request to\n"
+#~ "the `-request' address for that list, or use the `lists' command\n"
+#~ "to get info for all the lists."
+#~ msgstr ""
+#~ "\n"
+#~ "Benutzung: info\n"
+#~ "Um Informationen über eine bestimmte Liste zu erhalten, benutzen Sie "
+#~ "bitte\n"
+#~ "die `-request'-Adresse dieser Liste, oder verwenden Sie den `lists'-"
+#~ "Befehl\n"
+#~ "wenn Sie an Informationen aller Listen interessiert sind."
+
+# Mailman/MailCommandHandler.py:482
+#~ msgid "Private list: only members may see info."
+#~ msgstr "Private Liste: Nur Mitglieder dürfen die Beschreibung einsehen."
+
+# Mailman/MailCommandHandler.py:485
+#~ msgid ""
+#~ "\n"
+#~ "For more complete info about the %(listname)s mailing list, including\n"
+#~ "background and instructions for subscribing to and using it, visit:\n"
+#~ "\n"
+#~ " %(url)s\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Für umfangreichere Informationen über die Mailingliste %(listname)s,\n"
+#~ "einschliesslich der Benutzeranweisungen und Hinweisen zum Abonnieren,\n"
+#~ "schauen sie bitte auf:\n"
+#~ " %(url)s\n"
+#~ "\n"
+
+# Mailman/MailCommandHandler.py:495
+#~ msgid "No other details are available."
+#~ msgstr "Keine weiteren Details verfügbar."
+
+# Mailman/MailCommandHandler.py:501
+#~ msgid ""
+#~ "Usage: who\n"
+#~ "To get subscribership for a particular list, send your request\n"
+#~ "to the `-request' address for that list."
+#~ msgstr ""
+#~ "Benutzung: who\n"
+#~ "Um die Mitgliederliste einer bestimmten Liste einzusehen, senden Sie\n"
+#~ "eine entsprechende Anforderung an die `-request'-Adresse dieser Liste."
+
+# Mailman/MailCommandHandler.py:507
+#~ msgid "Private list: No one may see subscription list."
+#~ msgstr "Private Liste: Niemand darf die Mitgliedsliste einsehen."
+
+# Mailman/MailCommandHandler.py:510
+#~ msgid "Private list: only members may see list of subscribers."
+#~ msgstr "Private Liste: Nur Mitglieder dürfen die Mitgliedsliste einsehen."
+
+# Mailman/MailCommandHandler.py:516
+#~ msgid "NO MEMBERS."
+#~ msgstr "KEINE MITGLIEDER"
+
+# Mailman/MailCommandHandler.py:560
+#~ msgid ""
+#~ "Usage: unsubscribe [password] [email-address]\n"
+#~ "To unsubscribe from a particular list, send your request to\n"
+#~ "the `-request' address for that list."
+#~ msgstr ""
+#~ "Benutzung: unsubscribe [passwort] [email-adresse]\n"
+#~ "Um eine bestimmte Liste abzubestellen, senden Sie eine entsprechende\n"
+#~ "Anforderung an die `-request'-Adresse dieser Liste."
+
+# Mailman/MailCommandHandler.py:599 Mailman/MailCommandHandler.py:616
+#~ msgid ""
+#~ "Usage: subscribe [password] [digest|nodigest] [address=<email-address>]"
+#~ msgstr ""
+#~ "Benutzung: subscribe [passwort] [digest|nodigest] [addresse=<email-"
+#~ "adresse>]"
+
+# Mailman/MailCommandHandler.py:649
+#~ msgid ""
+#~ "The list is not fully functional, and can not accept subscription "
+#~ "requests."
+#~ msgstr ""
+#~ "Die Mailingliste ist nicht vollständig funktionsfähig und nimmt im \n"
+#~ "Moment keine Abonnementanträge entgegen."
+
+# Mailman/MailCommandHandler.py:670 Mailman/MailCommandHandler.py:712
+#~ msgid "Succeeded"
+#~ msgstr "Erfolgreich erledigt"
+
+# Mailman/MailCommandHandler.py:675
+#~ msgid "Usage: confirm <confirmation string>\n"
+#~ msgstr "Benutzung: confirm <Bestätigungtext>\n"
+
+#, fuzzy
+#~ msgid ""
+#~ "Remove members from a list.\n"
+#~ "\n"
+#~ "Usage:\n"
+#~ " remove_members [options] listname [addr1 ...]\n"
+#~ "\n"
+#~ "Options:\n"
+#~ "\n"
+#~ " --file=file\n"
+#~ " -f file\n"
+#~ " Remove member addresses found in the given file. If file is\n"
+#~ " `-', read stdin.\n"
+#~ "\n"
+#~ " --all\n"
+#~ " -a\n"
+#~ " Remove all members of the mailing list.\n"
+#~ "\n"
+#~ " --help\n"
+#~ " -h\n"
+#~ " Print this help message and exit.\n"
+#~ "\n"
+#~ " listname is the name of the mailing list to use.\n"
+#~ "\n"
+#~ " addr1 ... are additional addresses to remove.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Entferne Mitglieder aus einer Mailingliste.\n"
+#~ "\n"
+#~ "Benutzung:\n"
+#~ " remove_members [optionen] listenname [adresse1 ...]\n"
+#~ "\n"
+#~ "optionen:\n"
+#~ "\n"
+#~ " --file=file\n"
+#~ " -f file\n"
+#~ " Entferne Mitgliedsadressen, die in Datei stehen. Ist der\n"
+#~ " Dateiname `-', lese von stdin.\n"
+#~ "\n"
+#~ " --all\n"
+#~ " -a\n"
+#~ " Entferne alle Mitglieder einer Mailingliste.\n"
+#~ "\n"
+#~ " --help\n"
+#~ " -h\n"
+#~ " Ausgabe dieser Maldung und Schluss\n"
+#~ "\n"
+#~ " listenname ist der Name der Mailingliste, die benutzt werden soll.\n"
+#~ "\n"
+#~ " adresse1 ... erste und weitere Adressen, die entfernt werden sollen.\n"
+#~ "\n"
+
+# Mailman/Bouncer.py:253 Mailman/Bouncer.py:280
+#~ msgid "User `%(addr)s' not found."
+#~ msgstr "Benutzer `%(addr)s' nicht gefunden."
+
+# Mailman/Cgi/admin.py:460
+#~ msgid ""
+#~ "<li>Find members by\n"
+#~ " <a href=\"http://www.python.org/doc/current/lib/re-syntax."
+#~ "html\"\n"
+#~ " >Python regular expression</a> (<em>regexp</em>)<br>"
+#~ msgstr ""
+#~ "<li>Mitgliedersuche mit Hilfe von <a href=\"http://www.python.org/doc/"
+#~ "current/lib/re-syntax.html\">Python's regulären Ausdrücken</a> "
+#~ "(<em>regexp</em>)<br>"
+
+# Mailman/Cgi/admin.py:927
+#~ msgid "Send welcome message to this batch?"
+#~ msgstr "Eine Willkommensmitteilung an diese Gruppe senden?"
+
+# Mailman/Cgi/admin.py:931 Mailman/Cgi/admin.py:942 Mailman/Cgi/admin.py:966
+# Mailman/Cgi/admin.py:976
+#~ msgid " no "
+#~ msgstr " Nein "
+
+# Mailman/Cgi/admin.py:934 Mailman/Cgi/admin.py:945 Mailman/Cgi/admin.py:968
+# Mailman/Cgi/admin.py:979
+#~ msgid " yes "
+#~ msgstr " Ja "
+
+# Mailman/Cgi/admin.py:938
+#~ msgid "Send notifications to the list owner? "
+#~ msgstr "Notiz an den Listen-Besitzer schicken?"
+
+# Mailman/Cgi/admin.py:1242
+#~ msgid "Successfully Subscribed:"
+#~ msgstr "Erfolgreich abonniert:"
+
+# Mailman/Cgi/admin.py:1246
+#~ msgid "Error Subscribing:"
+#~ msgstr "Fehler im Abonnement:"
+
+# Mailman/Cgi/options.py:338
+#~ msgid "via the member options page"
+#~ msgstr "über die Seite mit benutzerspezifischen Einstellungen"
+
+# Mailman/MailCommandHandler.py:359 Mailman/MailCommandHandler.py:365
+# Mailman/MailCommandHandler.py:420 Mailman/MailCommandHandler.py:587
+#, fuzzy
+#~ msgid "Default options for new members joining this list."
+#~ msgstr "%(sender)s ist kein Mitglied dieser Liste."
+
+#~ msgid ""
+#~ "\n"
+#~ "NOTE: This is being deprecated since mailman has been shifted over to an\n"
+#~ " external archiver (ie, andrew kuchling's latest version of "
+#~ "pipermail.)\n"
+#~ "\n"
+#~ "This program shouldn't be attempted by people who don't understand "
+#~ "Python.\n"
+#~ "I wrote it to build archives for a few lists I'd been running for a long\n"
+#~ "time under majordomo.\n"
+#~ "\n"
+#~ "Convert majordomo digests all stored in one directory into mailbox\n"
+#~ "format. Note that the digests correct order in the dir should be\n"
+#~ "alphabetical order.\n"
+#~ "\n"
+#~ "The output file is ARCHIVE.ME in the same directory the digests are "
+#~ "in. \n"
+#~ "Run this program before you transfer the majordomo list. \n"
+#~ "\n"
+#~ "To get the output file archived, create the list under mailman, \n"
+#~ "run this script, and then do the following:\n"
+#~ "\n"
+#~ "cat ARCHIVE.ME >> ~mailman/mailman/lists/mylist/archived.mail\n"
+#~ "\n"
+#~ "You also need to adjust the variable: \n"
+#~ "NUM_LINES_TO_STRIP_FROM_TOP\n"
+#~ msgstr ""
+#~ "\n"
+#~ "HINWEIS: Von der Benutzung wird abgeraten, da Mailman mittlerweile einen\n"
+#~ "externen Archivierer verwendet (i.d.R. Andrew Kuchling's neueste Version\n"
+#~ "von Pipermail).\n"
+#~ "\n"
+#~ "Dieses Programm sollte nicht von Leuten ausprobiert werden, die von "
+#~ "Python\n"
+#~ "nichts verstehen. Ich schrieb es, um Archive zu bauen, die einigen "
+#~ "wenigen\n"
+#~ "Listen unter Majordomo entstammten.\n"
+#~ "\n"
+#~ "Die Ausgabedatei heisst ARCHIVE.ME und landet im selben Verzeichnis wie "
+#~ "die\n"
+#~ "Digests. Führen Sie dieses Programm aus, bevor Sie die Majordomo-Listen\n"
+#~ "einspielen.\n"
+#~ "\n"
+#~ "Um die Ausgabedatei zu archivierenm erzeugen Sie die Liste mit Mailman,\n"
+#~ "rufen dieses Skript auf und tun das folgende:\n"
+#~ "\n"
+#~ "cat ARCHIVE.ME >> ~mailman/mailman/lists/mylist/archived.mail\n"
+#~ "\n"
+#~ "Sie müssen zusätzlich noch die Variable NUM_LINES_TO_STRIP_FROM_TOP\n"
+#~ "entsprechend anpassen\n"
+
+# Mailman/Cgi/confirm.py:205
+#~ msgid "Password (confirm):"
+#~ msgstr "Passwort (bestätigen)"
+
+# Mailman/Cgi/confirm.py:292
+#~ msgid ""
+#~ " The passwords you entered in the confirmation screen did "
+#~ "not\n"
+#~ " match, so your original subscription password will be "
+#~ "used\n"
+#~ " instead. Your password will have been generated by "
+#~ "Mailman if\n"
+#~ " you left the password fields blank. In any event, your\n"
+#~ " membership password will be sent to you in a separate\n"
+#~ " acknowledgement email.<p>"
+#~ msgstr ""
+#~ " Die von Ihnen eingegebenen Passwörter zur Bestätigung "
+#~ "waren nicht gleich, daher wird das ursprüngliche Passwort benutzt. Wenn "
+#~ "Sie kein Passwort angegeben haben wird eines automatisch erzeugt. Auf "
+#~ "jeden Fall geht Ihnen das Passwort der Mitgliedschaft in einer getrennt "
+#~ "verschickten Email zu.<p>"
+
+#~ msgid ""
+#~ "Before adding a list-specific <tt>Reply-To:</tt> header,\n"
+#~ " should any existing <tt>Reply-To:</tt> field be stripped "
+#~ "from\n"
+#~ " the message?"
+#~ msgstr ""
+#~ "Soll ein existierender <tt>Reply-To:</tt> Header entfernt werden, bevor "
+#~ "der listenspezifische Header eingefügt wird?"
+
+#~ msgid ""
+#~ "The attached message has been automatically discarded because the "
+#~ "sender's\n"
+#~ "address, %(sender)s, was on the discard_these_nonmembers list. For the "
+#~ "list\n"
+#~ "of auto-discard addresses, see\n"
+#~ "\n"
+#~ " %(varhelp)s\n"
+#~ msgstr ""
+#~ "Die angehängte Nachricht wurde automatische verworfen, da die "
+#~ "Emailadresse\n"
+#~ "des Absenders auf der 'discard_these_nonmembers'-Liste eingetragen ist. "
+#~ "Um\n"
+#~ "die Adressliste der automatisch verworfenen Mitglieder zu erhalten, "
+#~ "siehe:\n"
+#~ " %(varhelp)s\n"
+
+# Mailman/MTA/Postfix.py:223
+#~ msgid "checking permissions on %(DBFILE)s"
+#~ msgstr "überprüfe Zugriffsrechte von %(DBFILE)s"
+
+# Mailman/Bouncer.py:168
+#~ msgid "removed"
+#~ msgstr "entfernt"
+
+# Mailman/Bouncer.py:173
+#~ msgid "not "
+#~ msgstr " nicht "
+
+# Mailman/Bouncer.py:191
+#~ msgid "BUT: %(succeeded)s"
+#~ msgstr "ABER: %(succeeded)s"
+
+# Mailman/Bouncer.py:241
+#~ msgid "%(rname)s member %(addr)s bouncing - %(negative)s%(did)s"
+#~ msgstr "%(rname)s Mitglied %(addr)s kommt zurück - %(negative)s%(did)s"
+
+# Mailman/Bouncer.py:253 Mailman/Bouncer.py:280
+#~ msgid "User not found."
+#~ msgstr "Benutzer nicht gefunden."
+
+# Mailman/Cgi/admin.py:816
+#~ msgid "nomail"
+#~ msgstr "Keine Mail"
+
+# Mailman/Cgi/admin.py:884
+#~ msgid "<b>nomail</b> -- Is delivery to the member disabled?"
+#~ msgstr "<b>Abgestellt</b> -- Ist der Versand an dieses Mitglied gestoppt?"
+
+# Mailman/Cgi/private.py:156
+#~ msgid "No file"
+#~ msgstr "Keine Datei"
+
+# Mailman/Gui/Bounce.py:28
+#~ msgid ""
+#~ "Policies regarding systematic processing of bounce messages,\n"
+#~ " to help automate recognition and handling of defunct\n"
+#~ " addresses."
+#~ msgstr ""
+#~ "Verhalten des Systems bei der Verarbeitung zurückkommender Nachrichten, "
+#~ "um nicht funktionierende Emailadressen leichter erkennen und verarbeiten "
+#~ "zu können."
+
+# Mailman/Gui/Bounce.py:33
+#~ msgid "Try to figure out error messages automatically?"
+#~ msgstr "Soll versucht werden Fehlermeldungen automatisch zu erkennen ?"
+
+# Mailman/Gui/Bounce.py:36
+#~ msgid ""
+#~ "Minimum number of days an address has been non-fatally bad\n"
+#~ " before we take action"
+#~ msgstr ""
+#~ "Minimale Zahl von Tagen bevor wir aktiv werden, wenn eine Adresse nicht "
+#~ "völlig unerreichbar ist"
+
+# Mailman/Gui/Bounce.py:40
+#~ msgid ""
+#~ "Minimum number of posts to the list since members first\n"
+#~ " bounce before we consider removing them from the list"
+#~ msgstr ""
+#~ "Minimale Anzahl von Tagen seit der ersten unzustellbaren Nachricht bevor "
+#~ "wir erwägen das Abonnement zu kündigen"
+
+# Mailman/Gui/Bounce.py:44
+#~ msgid ""
+#~ "Maximum number of messages your list gets in an hour. (Yes,\n"
+#~ " bounce detection finds this info useful)"
+#~ msgstr ""
+#~ "Maximale Anzahl von Nachrichten an die Liste pro Stunde. (Ja, diese "
+#~ "Information ist nützlich für die Erkennung)"
+
+# Mailman/Gui/Bounce.py:48
+#~ msgid "Do nothing"
+#~ msgstr "Tue nichts"
+
+# Mailman/Gui/Bounce.py:49
+#~ msgid "Disable and notify me"
+#~ msgstr "Deaktivieren und mich informieren"
+
+# Mailman/Gui/Bounce.py:50
+#~ msgid "Disable and DON'T notify me"
+#~ msgstr "Deaktivieren und mich NICHT informieren"
+
+# Mailman/Gui/Bounce.py:51
+#~ msgid "Remove and notify me"
+#~ msgstr "Abo kündigen und mich informieren"
+
+# Mailman/Gui/Bounce.py:53
+#~ msgid "Action when critical or excessive bounces are detected."
+#~ msgstr "Was tun, wenn kritische oder exzessive Rückläufe erkannt werden?"
+
+#~ msgid ""
+#~ "Primary start-up and shutdown script for Mailman's qrunner daemon.\n"
+#~ "\n"
+#~ "Usage: %(PROGRAM) [options] [ start | stop | restart ]\n"
+#~ "\n"
+#~ "options:\n"
+#~ "\n"
+#~ " -h/--help\n"
+#~ " Print this text and exit.\n"
+#~ "\n"
+#~ "Commands:\n"
+#~ "\n"
+#~ " start - Start the master qrunner daemon. Prints a message and "
+#~ "returns\n"
+#~ " if the master qrunner daemon is already running.\n"
+#~ "\n"
+#~ " stop - Stops the master qrunner daemon and all worker qrunners. "
+#~ "After\n"
+#~ " stopping, no more messages will be processed.\n"
+#~ "\n"
+#~ " restart - Restarts the master qrunner daemon by sending it a SIGHUP. "
+#~ "This\n"
+#~ " will cause all worker qrunners to be stopped and restarted, "
+#~ "and\n"
+#~ " will cause any log files open by the master qrunner to be\n"
+#~ " re-opened.\n"
+#~ msgstr ""
+#~ "Primäres Skript zum Hoch- und Runterfahren des qrunner Dämons.\n"
+#~ "\n"
+#~ "Benutzung: %(PROGRAM)s [optionen] [ start | stop | restart ]\n"
+#~ "\n"
+#~ "Optionen:\n"
+#~ "\n"
+#~ " -n/--no-restart\n"
+#~ " Kein Restart der Queues, wenn das vorangegangene Beenden durch "
+#~ "einen\n"
+#~ " Fehler ausgelöst wurde. Nur zu Debuggingzwecken und in "
+#~ "Verbindung\n"
+#~ " mit der 'start'-Option.\n"
+#~ "\n"
+#~ " -h/--help\n"
+#~ " Ausgabe dieser Meldung und Schluss.\n"
+#~ "\n"
+#~ "Befehle:\n"
+#~ "\n"
+#~ " start - Starte den Masterdämon. Gibt eine Startmeldung aus und \n"
+#~ " kehrt sofort zurück, wenn der Dämon bereits läuft.\n"
+#~ "\n"
+#~ " stop - Stoppt den Masterdämon und alle seine Arbeitsprozesse.\n"
+#~ " Nach dem Stop erfolgen keine weiteren Meldungen.\n"
+#~ "\n"
+#~ " restart - Restart des Masterdämons durch Senden des Signals SIGHUP.\n"
+#~ " Damit werden alle qrunner-Prozesse beendet und neu "
+#~ "gestartet.\n"
+#~ " Alle Logdateien des Masterdämons werden erneut geöffnet.\n"
+
+#~ msgid "PID unreadable in: %(PIDFILE)s"
+#~ msgstr "PID nicht lesbar: %(PIDFILE)s"
+
+#~ msgid ""
+#~ "Primary start-up and shutdown script for Mailman's qrunner daemon.\n"
+#~ "\n"
+#~ "Usage: %(PROGRAM)s [options] [ start | stop | restart ]\n"
+#~ "\n"
+#~ "options:\n"
+#~ "\n"
+#~ " -n/--no-restart\n"
+#~ " Don't restart queue runners when they exit because of an error. "
+#~ "Use\n"
+#~ " this only for debugging. Only useful if the `start' command is "
+#~ "given.\n"
+#~ "\n"
+#~ " -h/--help\n"
+#~ " Print this text and exit.\n"
+#~ "\n"
+#~ "Commands:\n"
+#~ "\n"
+#~ " start - Start the master qrunner daemon. Prints a message and "
+#~ "returns\n"
+#~ " if the master qrunner daemon is already running.\n"
+#~ "\n"
+#~ " stop - Stops the master qrunner daemon and all worker qrunners. "
+#~ "After\n"
+#~ " stopping, no more messages will be processed.\n"
+#~ "\n"
+#~ " restart - Restarts the master qrunner daemon by sending it a SIGHUP. "
+#~ "This\n"
+#~ " will cause all worker qrunners to be stopped and restarted, "
+#~ "and\n"
+#~ " will cause any log files open by the master qrunner to be\n"
+#~ " re-opened.\n"
+#~ msgstr ""
+#~ "Primäres Skript zum Hoch- und Runterfahren des qrunner Dämons.\n"
+#~ "\n"
+#~ "Benutzung: %(PROGRAM)s [optionen] [ start | stop | restart ]\n"
+#~ "\n"
+#~ "Optionen:\n"
+#~ "\n"
+#~ " -n/--no-restart\n"
+#~ " Kein Restart der Queues, wenn das vorangegangene Beenden durch "
+#~ "einen\n"
+#~ " Fehler ausgelöst wurde. Nur zu Debuggingzwecken und in "
+#~ "Verbindung\n"
+#~ " mit der 'start'-Option.\n"
+#~ "\n"
+#~ " -h/--help\n"
+#~ " Ausgabe dieser Meldung und Schluss.\n"
+#~ "\n"
+#~ "Befehle:\n"
+#~ "\n"
+#~ " start - Starte den Masterdämon. Gibt eine Startmeldung aus und \n"
+#~ " kehrt sofort zurück, wenn der Dämon bereits läuft.\n"
+#~ "\n"
+#~ " stop - Stoppt den Masterdämon und alle seine Arbeitsprozesse.\n"
+#~ " Nach dem Stop erfolgen keine weiteren Meldungen.\n"
+#~ "\n"
+#~ " restart - Restart des Masterdämons durch Senden des Signals SIGHUP.\n"
+#~ " Damit werden alle qrunner-Prozesse beendet und neu "
+#~ "gestartet.\n"
+#~ " Alle Logdateien des Masterdämons werden erneut geöffnet.\n"
+
+#~ msgid ""
+#~ "Process emailed commands.\n"
+#~ "\n"
+#~ "Called by the wrapper, stdin is the mail message, and argv[1] is the "
+#~ "name\n"
+#~ "of the target mailing list.\n"
+#~ "\n"
+#~ "Errors are redirected to logs/errors.\n"
+#~ msgstr ""
+#~ "Verarbeite Emailbefehle.\n"
+#~ "\n"
+#~ "Wurde vom Wrapper aufgerufen; die Nachricht steht in der "
+#~ "Standardeingabe \n"
+#~ "und argv[1] enthält den Namen der Zielmailingliste\n"
+#~ "\n"
+#~ "Fehlermeldungen wurden umgeleitet nach logs/errors.\n"
+
+#~ msgid "mailcmd script got no listname."
+#~ msgstr "mailcmd-Skript erhielt keinen Listennamen."
+
+# Mailman/Cgi/admin.py:66 Mailman/Cgi/admindb.py:60 Mailman/Cgi/confirm.py:52
+# Mailman/Cgi/edithtml.py:65 Mailman/Cgi/listinfo.py:49
+# Mailman/Cgi/options.py:67 Mailman/Cgi/private.py:96
+# Mailman/Cgi/rmlist.py:60 Mailman/Cgi/roster.py:55
+# Mailman/Cgi/subscribe.py:57
+#~ msgid "mailcmd script, list not found: %(listname)s"
+#~ msgstr "mailcmd-Skript, Mailingliste %(listname)s nicht gefunden."
+
diff --git a/messages/de/README.de b/messages/de/README.de
new file mode 100644
index 00000000..09345241
--- /dev/null
+++ b/messages/de/README.de
@@ -0,0 +1,23 @@
+German translation for the Mailman project
+
+This is currently IN PROGRESS. Direct any questions, suggestions or
+flames to Peer Heinlein (p.heinlein@jpberlin.de).
+
+
+
+Deutsche Uebersetzung fuer das Mailman-Projekt
+
+Diese Uebersetzung ist zur Zeit noch nicht komplettiert. Bitte wenden
+Sie sich an Peer Heinlein (p.heinlein@jpberlin.de) mit allen Fragen,
+Ideen oder Kritik.
+
+Peer Heinlein
+JPBerlin - Mailbox und Politischer Provider
+p.heinlein@jpberlin.de
+
+
+
+Local Variables:
+mode: indented-text
+indent-tabs-mode: nil
+End:
diff --git a/messages/es/LC_MESSAGES/mailman.mo b/messages/es/LC_MESSAGES/mailman.mo
new file mode 100644
index 00000000..47098cca
--- /dev/null
+++ b/messages/es/LC_MESSAGES/mailman.mo
Binary files differ
diff --git a/messages/es/LC_MESSAGES/mailman.po b/messages/es/LC_MESSAGES/mailman.po
new file mode 100644
index 00000000..92c0681a
--- /dev/null
+++ b/messages/es/LC_MESSAGES/mailman.po
@@ -0,0 +1,11837 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR ORGANIZATION
+# FIRST AUTHOR <jcrey@uma.es>, 2000
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Mailman\n"
+"POT-Creation-Date: Thu Dec 12 09:34:16 2002\n"
+"PO-Revision-Date: 2002-06-04 11:54GMT\n"
+"Last-Translator: Victoriano Giralt <victoriano@uma.es>\n"
+"Language-Team: Español <es@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 0.9.5\n"
+
+#: Mailman/Archiver/HyperArch.py:111
+msgid "size not available"
+msgstr "tamaño no disponible"
+
+#: Mailman/Archiver/HyperArch.py:117
+msgid " %(size)i bytes "
+msgstr " %(size)i bytes "
+
+#: Mailman/Archiver/HyperArch.py:251 Mailman/Archiver/HyperArch.py:421
+#: Mailman/Archiver/HyperArch.py:1014
+msgid " at "
+msgstr " en "
+
+#: Mailman/Archiver/HyperArch.py:450
+msgid "Previous message:"
+msgstr "Mensaje anterior:"
+
+#: Mailman/Archiver/HyperArch.py:482
+msgid "Next message:"
+msgstr "Próximo mensaje:"
+
+#: Mailman/Archiver/HyperArch.py:660 Mailman/Archiver/HyperArch.py:696
+msgid "thread"
+msgstr "hilo"
+
+#: Mailman/Archiver/HyperArch.py:661 Mailman/Archiver/HyperArch.py:697
+msgid "subject"
+msgstr "asunto"
+
+#: Mailman/Archiver/HyperArch.py:662 Mailman/Archiver/HyperArch.py:698
+msgid "author"
+msgstr "autor"
+
+#: Mailman/Archiver/HyperArch.py:663 Mailman/Archiver/HyperArch.py:699
+msgid "date"
+msgstr "fecha"
+
+#: Mailman/Archiver/HyperArch.py:735
+msgid "<P>Currently, there are no archives. </P>"
+msgstr "Actualmente no hay archivo. </P>"
+
+#: Mailman/Archiver/HyperArch.py:772
+msgid "Gzip'd Text%(sz)s"
+msgstr "Texto Gzip%(sz)s"
+
+#: Mailman/Archiver/HyperArch.py:777
+msgid "Text%(sz)s"
+msgstr "Texto%(sz)s"
+
+#: Mailman/Archiver/HyperArch.py:867
+msgid "figuring article archives\n"
+msgstr "calculando el archivo de los artículos\n"
+
+#: Mailman/Archiver/HyperArch.py:877
+msgid "April"
+msgstr "Abril"
+
+#: Mailman/Archiver/HyperArch.py:877
+msgid "February"
+msgstr "Febrero"
+
+#: Mailman/Archiver/HyperArch.py:877
+msgid "January"
+msgstr "Enero"
+
+#: Mailman/Archiver/HyperArch.py:877
+msgid "March"
+msgstr "Marzo"
+
+#: Mailman/Archiver/HyperArch.py:878
+msgid "August"
+msgstr "Agosto"
+
+#: Mailman/Archiver/HyperArch.py:878
+msgid "July"
+msgstr "Julio"
+
+#: Mailman/Archiver/HyperArch.py:878
+msgid "June"
+msgstr "Junio"
+
+#: Mailman/Archiver/HyperArch.py:878 Mailman/i18n.py:91
+msgid "May"
+msgstr "Mayo"
+
+#: Mailman/Archiver/HyperArch.py:879
+msgid "December"
+msgstr "Diciembre"
+
+#: Mailman/Archiver/HyperArch.py:879
+msgid "November"
+msgstr "Noviembre"
+
+#: Mailman/Archiver/HyperArch.py:879
+msgid "October"
+msgstr "Octubre"
+
+#: Mailman/Archiver/HyperArch.py:879
+msgid "September"
+msgstr "Septiembre"
+
+#: Mailman/Archiver/HyperArch.py:887
+msgid "First"
+msgstr "Primero"
+
+#: Mailman/Archiver/HyperArch.py:887
+msgid "Fourth"
+msgstr "Cuarto"
+
+#: Mailman/Archiver/HyperArch.py:887
+msgid "Second"
+msgstr "Segundo"
+
+#: Mailman/Archiver/HyperArch.py:887
+msgid "Third"
+msgstr "Tercero"
+
+#: Mailman/Archiver/HyperArch.py:889
+msgid "%(ord)s quarter %(year)i"
+msgstr "%(ord)s cuarto %(year)i"
+
+#: Mailman/Archiver/HyperArch.py:896
+msgid "%(month)s %(year)i"
+msgstr "%(month)s %(year)i"
+
+#: Mailman/Archiver/HyperArch.py:901
+msgid "The Week Of Monday %(day)i %(month)s %(year)i"
+msgstr "La semana del %(day)i %(month)s %(year)i"
+
+#: Mailman/Archiver/HyperArch.py:905
+msgid "%(day)i %(month)s %(year)i"
+msgstr "%(day)i %(month)s %(year)i"
+
+#: Mailman/Archiver/HyperArch.py:1002
+msgid "Computing threaded index\n"
+msgstr "Calculando el indice los hilos\n"
+
+#: Mailman/Archiver/HyperArch.py:1261
+msgid "Updating HTML for article %(seq)s"
+msgstr "Actualizando el código HTML del artículo %(seq)s"
+
+#: Mailman/Archiver/HyperArch.py:1268
+msgid "article file %(filename)s is missing!"
+msgstr "no se encuentra el fichero %(filename)s asociado al artículo"
+
+#: Mailman/Archiver/pipermail.py:168 Mailman/Archiver/pipermail.py:169
+msgid "No subject"
+msgstr "Sin asunto"
+
+#: Mailman/Archiver/pipermail.py:269
+msgid "Creating archive directory "
+msgstr "Creando directorio de almacenaje"
+
+#: Mailman/Archiver/pipermail.py:281
+msgid "Reloading pickled archive state"
+msgstr "Recargando el estado de los ficheros almacenados"
+
+#: Mailman/Archiver/pipermail.py:308
+msgid "Pickling archive state into "
+msgstr "Preparando el estado del archivo a "
+
+#: Mailman/Archiver/pipermail.py:419
+msgid "Updating index files for archive [%(archive)s]"
+msgstr "Actualizando el índice de los ficheros de [%(archive)s]"
+
+#: Mailman/Archiver/pipermail.py:452
+msgid " Thread"
+msgstr " Hilo"
+
+#: Mailman/Archiver/pipermail.py:557
+msgid "#%(counter)05d %(msgid)s"
+msgstr "#%(counter)05d %(msgid)s"
+
+#: Mailman/Bouncer.py:44
+msgid "due to excessive bounces"
+msgstr "por demasiados rebotes"
+
+#: Mailman/Bouncer.py:45
+msgid "by yourself"
+msgstr "por ti mismo"
+
+#: Mailman/Bouncer.py:46
+msgid "by the list administrator"
+msgstr "por el administrador de la lista"
+
+#: Mailman/Bouncer.py:47 Mailman/Bouncer.py:232
+#: Mailman/Commands/cmd_set.py:182
+msgid "for unknown reasons"
+msgstr "Debido a algún motivo desconocido"
+
+#: Mailman/Bouncer.py:179
+msgid "disabled"
+msgstr "inhabilidata"
+
+#: Mailman/Bouncer.py:184
+msgid "Bounce action notification"
+msgstr "Notificación de rebote"
+
+#: Mailman/Bouncer.py:239
+msgid " The last bounce received from you was dated %(date)s"
+msgstr "El último rebote recibido de usted fue hace %(date)s"
+
+#: Mailman/Bouncer.py:264 Mailman/Deliverer.py:126
+#: Mailman/Handlers/Acknowledge.py:44 Mailman/Handlers/CookHeaders.py:236
+#: Mailman/Handlers/Hold.py:214 Mailman/Handlers/Hold.py:249
+#: Mailman/Handlers/ToDigest.py:211 Mailman/ListAdmin.py:235
+msgid "(no subject)"
+msgstr "(sin asunto)"
+
+#: Mailman/Bouncer.py:266
+msgid "[No bounce details are available]"
+msgstr "[No hay detalles de rebotes disponibles]"
+
+#: Mailman/Cgi/Auth.py:46
+msgid "Moderator"
+msgstr "Moderador"
+
+#: Mailman/Cgi/Auth.py:48
+msgid "Administrator"
+msgstr "Administrador"
+
+#: Mailman/Cgi/admin.py:70 Mailman/Cgi/admindb.py:89 Mailman/Cgi/confirm.py:55
+#: Mailman/Cgi/edithtml.py:67 Mailman/Cgi/listinfo.py:51
+#: Mailman/Cgi/options.py:71 Mailman/Cgi/private.py:98
+#: Mailman/Cgi/rmlist.py:64 Mailman/Cgi/roster.py:57
+#: Mailman/Cgi/subscribe.py:61
+msgid "No such list <em>%(safelistname)s</em>"
+msgstr "La lista <em>%(safelistname)s</em> no existe"
+
+#: Mailman/Cgi/admin.py:85 Mailman/Cgi/admindb.py:105
+#: Mailman/Cgi/edithtml.py:85 Mailman/Cgi/private.py:123
+msgid "Authorization failed."
+msgstr "Autorización infructuosa"
+
+#: Mailman/Cgi/admin.py:175
+msgid ""
+"You have turned off delivery of both digest and\n"
+" non-digest messages. This is an incompatible state of\n"
+" affairs. You must turn on either digest delivery or\n"
+" non-digest delivery or your mailing list will basically be\n"
+" unusable."
+msgstr ""
+"Ha desactivado tanto la entrega de mensajes agrupados como no agrupados.\n"
+" Este situación es incompatible. Tiene que habilitar la\n"
+" entrega de los mensajes en modo agrupados o en modo no "
+"agrupados porque\n"
+" su lista de distribución no podrá ser usada."
+
+#: Mailman/Cgi/admin.py:179 Mailman/Cgi/admin.py:185 Mailman/Cgi/admin.py:190
+#: Mailman/Cgi/admin.py:1361 Mailman/Gui/GUIBase.py:184
+msgid "Warning: "
+msgstr "Advertencia: "
+
+#: Mailman/Cgi/admin.py:183
+msgid ""
+"You have digest members, but digests are turned\n"
+" off. Those people will not receive mail."
+msgstr ""
+"Tiene subscriptores con el modo agrupados activado, en\n"
+" esta lista el modo agrupado está desactivado.\n"
+" Esos subscriptores no recibirán correo."
+
+#: Mailman/Cgi/admin.py:188
+msgid ""
+"You have regular list members but non-digestified mail is\n"
+" turned off. They will receive mail until you fix this\n"
+" problem."
+msgstr ""
+"Tiene subscriptores que quieren recibir el correo a medida que \n"
+" llega, pero esta modalidad está desactivada. Ellos\n"
+" recibirán \n"
+" correo hasta que corrija este problema."
+
+#: Mailman/Cgi/admin.py:212
+msgid "%(hostname)s mailing lists - Admin Links"
+msgstr "Listas de distribución en %(hostname)s - Enlaces de administración"
+
+#: Mailman/Cgi/admin.py:241 Mailman/Cgi/listinfo.py:97
+msgid "Welcome!"
+msgstr "¡Bienvenidos!"
+
+#: Mailman/Cgi/admin.py:244 Mailman/Cgi/listinfo.py:100
+msgid "Mailman"
+msgstr "Mailman"
+
+#: Mailman/Cgi/admin.py:248
+msgid ""
+"<p>There currently are no publicly-advertised %(mailmanlink)s\n"
+" mailing lists on %(hostname)s."
+msgstr ""
+"<p>Actualmente no hay listas de %(mailmanlink)s que anunciar "
+"públicamente en %(hostname)s. "
+
+#: Mailman/Cgi/admin.py:254
+msgid ""
+"<p>Below is the collection of publicly-advertised\n"
+" %(mailmanlink)s mailing lists on %(hostname)s. Click on a list\n"
+" name to visit the configuration pages for that list."
+msgstr ""
+"<p>A continuación se muestran las listas de \n"
+" distribución de %(mailmanlink)s que se anuncian\n"
+" públicamente en %(hostname)s. Dele con el\n"
+" ratón a un nombre de lista para visitar las\n"
+" páginas de configuración de esa lista. "
+
+#: Mailman/Cgi/admin.py:261
+msgid "right "
+msgstr " correcta"
+
+#: Mailman/Cgi/admin.py:263
+msgid ""
+"To visit the administrators configuration page for an\n"
+" unadvertised list, open a URL similar to this one, but with a '/' "
+"and\n"
+" the %(extra)slist name appended. If you have the proper authority,\n"
+" you can also <a href=\"%(creatorurl)s\">create a new mailing list</"
+"a>.\n"
+"\n"
+" <p>General list information can be found at "
+msgstr ""
+"Para configurar una lista que no se enseña públicamente, abra\n"
+" una URL similar a la que existe, pero con un '/' seguido por el\n"
+" nombre de la lista%(extra)s. Si tiene la autorización adecuada,\n"
+" también puede <a href=\"%(creatorurl)s\">crear una lista de\n"
+" distribución nueva</a>.\n"
+"\n"
+" <p>Se puede encontrar información general sobre las listas en "
+
+#: Mailman/Cgi/admin.py:270
+msgid "the mailing list overview page"
+msgstr "la página de información general de las listas de distribución"
+
+#: Mailman/Cgi/admin.py:272
+msgid "<p>(Send questions and comments to "
+msgstr "<p>(Mande sus preguntas y comentarios a "
+
+#: Mailman/Cgi/admin.py:282 Mailman/Cgi/listinfo.py:132 cron/mailpasswds:179
+msgid "List"
+msgstr "Lista"
+
+#: Mailman/Cgi/admin.py:283 Mailman/Cgi/admin.py:549
+#: Mailman/Cgi/listinfo.py:133
+msgid "Description"
+msgstr "Descripción"
+
+#: Mailman/Cgi/admin.py:289 Mailman/Cgi/listinfo.py:139 bin/list_lists:116
+msgid "[no description available]"
+msgstr "[descripción no disponible]"
+
+#: Mailman/Cgi/admin.py:322
+msgid "No valid variable name found."
+msgstr "Encontrado un nombre de variable no válido"
+
+#: Mailman/Cgi/admin.py:332
+msgid ""
+"%(realname)s Mailing list Configuration Help\n"
+" <br><em>%(varname)s</em> Option"
+msgstr ""
+"Ayuda de configuración de la lista de distribución %(realname)s, opción "
+"<br><em>%(varname)s</em>"
+
+#: Mailman/Cgi/admin.py:339
+msgid "Mailman %(varname)s List Option Help"
+msgstr "Ayuda de Mailman para la opción de lista %(varname)s"
+
+#: Mailman/Cgi/admin.py:357
+msgid ""
+"<em><strong>Warning:</strong> changing this option here\n"
+" could cause other screens to be out-of-sync. Be sure to reload any "
+"other\n"
+" pages that are displaying this option for this mailing list. You can "
+"also\n"
+" "
+msgstr ""
+"<em><strong>Advertencia</strong> si modifica esta opción aquí \n"
+" podría hacer que otras pantallas estén desincronizadas. \n"
+" Asegurese de recargar cualquier otra página que esté visualizando \n"
+" esta opción para esta lista de distribución. También puede "
+
+#: Mailman/Cgi/admin.py:368
+msgid "return to the %(categoryname)s options page."
+msgstr "Volver a la página de opciones %(categoryname)s"
+
+#: Mailman/Cgi/admin.py:383
+msgid "%(realname)s Administration (%(label)s)"
+msgstr "Administración de %(realname)s (%(label)s)"
+
+#: Mailman/Cgi/admin.py:384
+msgid "%(realname)s mailing list administration<br>%(label)s Section"
+msgstr ""
+"Administración de la lista de distribución %(realname)s<br> Sección de %"
+"(label)s"
+
+#: Mailman/Cgi/admin.py:400
+msgid "Configuration Categories"
+msgstr "Categorías de configuración"
+
+#: Mailman/Cgi/admin.py:401
+msgid "Other Administrative Activities"
+msgstr "Otras actividades administrativas"
+
+#: Mailman/Cgi/admin.py:405
+msgid "Tend to pending moderator requests"
+msgstr "Ocuparse de las peticiones pendientes de moderar"
+
+#: Mailman/Cgi/admin.py:407
+msgid "Go to the general list information page"
+msgstr "Ir a la página de información general sobre la lista."
+
+#: Mailman/Cgi/admin.py:409
+msgid "Edit the public HTML pages"
+msgstr "Editar el código HTML de las páginas de acceso público"
+
+#: Mailman/Cgi/admin.py:411
+msgid "Go to list archives"
+msgstr "Ir al archivo de la lista"
+
+#: Mailman/Cgi/admin.py:417
+msgid "Delete this mailing list"
+msgstr "Borrar esta lista de distribución"
+
+#: Mailman/Cgi/admin.py:418
+msgid " (requires confirmation)<br>&nbsp;<br>"
+msgstr " (requiere confirmación)&nbsp;<br>"
+
+#: Mailman/Cgi/admin.py:424
+msgid "Logout"
+msgstr "Desconexión"
+
+#: Mailman/Cgi/admin.py:468
+msgid "Emergency moderation of all list traffic is enabled"
+msgstr "La moderación de emergencia de todo el tráfico de las listas está habilitado"
+
+#: Mailman/Cgi/admin.py:479
+msgid ""
+"Make your changes in the following section, then submit them\n"
+" using the <em>Submit Your Changes</em> button below."
+msgstr ""
+"Haga sus cambios a continuación y\n"
+" confirmelos utilizando el botón del final."
+
+#: Mailman/Cgi/admin.py:497
+msgid "Additional Member Tasks"
+msgstr "Tareas adicionales con los subscriptores"
+
+#: Mailman/Cgi/admin.py:503
+msgid ""
+"<li>Set everyone's moderation bit, including\n"
+" those members not currently visible"
+msgstr ""
+"<li>Activar el bit de moderación de cualquiera, incluyendo\n"
+" a aquellos subscriptores que actualmente no estén\n"
+" visibles"
+
+#: Mailman/Cgi/admin.py:507
+msgid "Off"
+msgstr "Desactivar"
+
+#: Mailman/Cgi/admin.py:507
+msgid "On"
+msgstr "Activar"
+
+#: Mailman/Cgi/admin.py:509
+msgid "Set"
+msgstr "Establecer"
+
+#: Mailman/Cgi/admin.py:550
+msgid "Value"
+msgstr "Valor"
+
+#: Mailman/Cgi/admin.py:604
+msgid ""
+"Badly formed options entry:\n"
+" %(record)s"
+msgstr ""
+"La opción introducida se ha formado incorrectamente:\n"
+" %(record)s"
+
+#: Mailman/Cgi/admin.py:662
+msgid "<em>Enter the text below, or...</em><br>"
+msgstr "<em>Indique el texto abajo, o...</em><br>"
+
+#: Mailman/Cgi/admin.py:664
+msgid "<br><em>...specify a file to upload</em><br>"
+msgstr "<br><em>...especifique el fichero a depositar</em><br>"
+
+#: Mailman/Cgi/admin.py:690 Mailman/Cgi/admin.py:693
+msgid "Topic %(i)d"
+msgstr "Asunto %(i)d"
+
+#: Mailman/Cgi/admin.py:694
+msgid "Delete"
+msgstr "Borrar"
+
+#: Mailman/Cgi/admin.py:695
+msgid "Topic name:"
+msgstr "Nombre del tema:"
+
+#: Mailman/Cgi/admin.py:697
+msgid "Regexp:"
+msgstr "Expresión regular:"
+
+#: Mailman/Cgi/admin.py:700 Mailman/Cgi/options.py:943
+msgid "Description:"
+msgstr "Descripción"
+
+#: Mailman/Cgi/admin.py:704
+msgid "Add new item..."
+msgstr "Agregar elemento nuevo..."
+
+#: Mailman/Cgi/admin.py:706
+msgid "...before this one."
+msgstr "...antes de éste."
+
+#: Mailman/Cgi/admin.py:707
+msgid "...after this one."
+msgstr "...después de éste."
+
+#: Mailman/Cgi/admin.py:742
+msgid "<br>(Edit <b>%(varname)s</b>)"
+msgstr "<br>(Editar <b>%(varname)s</b>)"
+
+#: Mailman/Cgi/admin.py:744
+msgid "<br>(Details for <b>%(varname)s</b>)"
+msgstr "<br>(Detalles de <b>%(varname)s</b>)"
+
+#: Mailman/Cgi/admin.py:751
+msgid ""
+"<br><em><strong>Note:</strong>\n"
+" setting this value performs an immediate action but does not modify\n"
+" permanent state.</em>"
+msgstr ""
+"<br><em><strong>Nota:</strong>\n"
+" activando este valor realiza una acción inmediata pero no modifica\n"
+" el estado permanente.</em>"
+
+#: Mailman/Cgi/admin.py:765
+msgid "Mass Subscriptions"
+msgstr "Subscripciones en Masa"
+
+#: Mailman/Cgi/admin.py:772
+msgid "Mass Removals"
+msgstr "Bajas en masa"
+
+#: Mailman/Cgi/admin.py:779
+msgid "Membership List"
+msgstr "Lista de subscriptores"
+
+#: Mailman/Cgi/admin.py:786
+msgid "(help)"
+msgstr "(ayuda)"
+
+#: Mailman/Cgi/admin.py:787
+msgid "Find member %(link)s:"
+msgstr "Localizar subscriptor %(link)s:"
+
+#: Mailman/Cgi/admin.py:790
+msgid "Search..."
+msgstr "Buscar..."
+
+#: Mailman/Cgi/admin.py:805
+msgid "Bad regular expression: "
+msgstr "Expresión regular mal formada: "
+
+#: Mailman/Cgi/admin.py:861
+msgid "%(allcnt)s members total, %(membercnt)s shown"
+msgstr "%(allcnt)s subscriptores en total, se muestran %(membercnt)s"
+
+#: Mailman/Cgi/admin.py:864
+msgid "%(allcnt)s members total"
+msgstr "%(allcnt)s subscriptores en total"
+
+#: Mailman/Cgi/admin.py:887
+msgid "unsub"
+msgstr "desubscribir"
+
+#: Mailman/Cgi/admin.py:888
+msgid "member address<br>member name"
+msgstr "dirección del subscriptor<br>nombre del subscriptor"
+
+#: Mailman/Cgi/admin.py:889
+msgid "hide"
+msgstr "oculto"
+
+#: Mailman/Cgi/admin.py:889
+msgid "mod"
+msgstr "mod"
+
+#: Mailman/Cgi/admin.py:890
+msgid "nomail<br>[reason]"
+msgstr "sin correo<br>[razón]"
+
+#: Mailman/Cgi/admin.py:891
+msgid "ack"
+msgstr "conf"
+
+#: Mailman/Cgi/admin.py:891
+msgid "not metoo"
+msgstr "a mi no"
+
+#: Mailman/Cgi/admin.py:892
+msgid "nodupes"
+msgstr "sin duplicados"
+
+#: Mailman/Cgi/admin.py:893
+msgid "digest"
+msgstr "agrupado"
+
+#: Mailman/Cgi/admin.py:893
+msgid "plain"
+msgstr "texto"
+
+#: Mailman/Cgi/admin.py:894
+msgid "language"
+msgstr "idioma"
+
+#: Mailman/Cgi/admin.py:905
+msgid "?"
+msgstr "?"
+
+#: Mailman/Cgi/admin.py:906
+msgid "U"
+msgstr "U"
+
+#: Mailman/Cgi/admin.py:907
+msgid "A"
+msgstr "A"
+
+#: Mailman/Cgi/admin.py:908
+msgid "B"
+msgstr "B"
+
+#: Mailman/Cgi/admin.py:979
+msgid "<b>unsub</b> -- Click on this to unsubscribe the member."
+msgstr ""
+"<b>unsub</b> -- Pincha aquí para anular la subscripción del subscriptor."
+
+#: Mailman/Cgi/admin.py:981
+msgid ""
+"<b>mod</b> -- The user's personal moderation flag. If this is\n"
+" set, postings from them will be moderated, otherwise they will be\n"
+" approved."
+msgstr ""
+"<b>mod</b> -- El banderín de moderación personal del usuario. Si\n"
+" está activo, los envios que provengan de él\n"
+" serán moderados, en otro caso serán aprobados"
+
+#: Mailman/Cgi/admin.py:985
+msgid ""
+"<b>hide</b> -- Is the member's address concealed on\n"
+" the list of subscribers?"
+msgstr ""
+"<b>oculto</b> -- ¿Aparece la dirección del subscriptor\n"
+" escondida en la lista de suscriptores?"
+
+#: Mailman/Cgi/admin.py:987
+msgid ""
+"<b>nomail</b> -- Is delivery to the member disabled? If so, an\n"
+" abbreviation will be given describing the reason for the disabled\n"
+" delivery:\n"
+" <ul><li><b>U</b> -- Delivery was disabled by the user via their\n"
+" personal options page.\n"
+" <li><b>A</b> -- Delivery was disabled by the list\n"
+" administrators.\n"
+" <li><b>B</b> -- Delivery was disabled by the system due to\n"
+" excessive bouncing from the member's address.\n"
+" <li><b>?</b> -- The reason for disabled delivery isn't "
+"known.\n"
+" This is the case for all memberships which were "
+"disabled\n"
+" in older versions of Mailman.\n"
+" </ul>"
+msgstr ""
+"<b>sincorreo</b> -- ¿Está inhabilitada la entrega de correo al subscriptor?\n"
+" Si es así, se indicará un código con el motivo de la desctivación de "
+"la\n"
+" recepción de correo:\n"
+" <ul><li><b>U</b> -- La recepción de correo la desactivó el "
+"usuario a través\n"
+" de su página personal.\n"
+" <li><b>A</b> -- La recepción de correo la desactivó uno de "
+"los\n"
+" administradores de la lista.\n"
+" <li><b>B</b> -- La recepción de correo la desactivó el "
+"sistema debido\n"
+" los mensajes dirijidos a la dirección del "
+"subscriptor\n"
+" están produciendo muchos rebotes.\n"
+" <li><b>?</b> -- No se sabe el motivo de la desactivación de "
+"la entrega.\n"
+" Este es el motivo para todas aquellas "
+"desactivaciones\n"
+" hechas en versiones anteriores de Mailman.\n"
+" </ul>"
+
+#: Mailman/Cgi/admin.py:1002
+msgid ""
+"<b>ack</b> -- Does the member get acknowledgements of their\n"
+" posts?"
+msgstr ""
+"<b>conf</b> -- ¿Obtiene el subscriptor confirmación\n"
+" de sus envíos?"
+
+#: Mailman/Cgi/admin.py:1005
+msgid ""
+"<b>not metoo</b> -- Does the member want to avoid copies of their\n"
+" own postings?"
+msgstr ""
+"<b>a mi no</b> -- ¿Recibirá el suscriptor copia de sus propios\n"
+" mensajes?"
+
+#: Mailman/Cgi/admin.py:1008
+msgid ""
+"<b>nodupes</b> -- Does the member want to avoid duplicates of the\n"
+" same message?"
+msgstr ""
+"<b>nodupes</b> -- ¿Desea el suscriptor recibir duplicados de los\n"
+" mensajes?"
+
+#: Mailman/Cgi/admin.py:1011
+msgid ""
+"<b>digest</b> -- Does the member get messages in digests?\n"
+" (otherwise, individual messages)"
+msgstr ""
+"<b>agrupado</b> -- ¿Recibe el subscriptor los mensajes\n"
+" agrupados? (en caso contrario, recibe los mensajes a\n"
+" medida que llegan)"
+
+#: Mailman/Cgi/admin.py:1014
+msgid ""
+"<b>plain</b> -- If getting digests, does the member get plain\n"
+" text digests? (otherwise, MIME)"
+msgstr ""
+"<b>texto</b> -- Los mensajes recopilados, ¿se reciben como solo texto? (en "
+"caso contrario, se reciben en MIME)"
+
+#: Mailman/Cgi/admin.py:1016
+msgid "<b>language</b> -- Language preferred by the user"
+msgstr "<b>idioma</b> -- Idioma preferido por el usuario"
+
+#: Mailman/Cgi/admin.py:1030
+msgid "Click here to hide the legend for this table."
+msgstr "Déle con el ratón aquí para esconder la leyenda de esta tabla."
+
+#: Mailman/Cgi/admin.py:1034
+msgid "Click here to include the legend for this table."
+msgstr "Déle con el ratón aquí para incluir la leyenda de esta tabla"
+
+#: Mailman/Cgi/admin.py:1041
+msgid ""
+"<p><em>To view more members, click on the appropriate\n"
+" range listed below:</em>"
+msgstr ""
+"<p><em>Para ver más subscriptores, déle con el ratón\n"
+" al rango apropiado de entre los que se listan abajo:</em>"
+
+#: Mailman/Cgi/admin.py:1050
+msgid "from %(start)s to %(end)s"
+msgstr "de %(start)s a %(end)s"
+
+#: Mailman/Cgi/admin.py:1063
+msgid "Subscribe these users now or invite them?"
+msgstr "&iquest;Suscribir a este nuevo grupo o invitarlos?"
+
+#: Mailman/Cgi/admin.py:1065
+msgid "Invite"
+msgstr "Invitar"
+
+#: Mailman/Cgi/admin.py:1065 Mailman/Cgi/listinfo.py:175
+msgid "Subscribe"
+msgstr "Subscribir"
+
+#: Mailman/Cgi/admin.py:1071
+msgid "Send welcome messages to new subscribees?"
+msgstr "¿Mandar el mensaje de bienvenida cuando se subscriba la gente?"
+
+#: Mailman/Cgi/admin.py:1073 Mailman/Cgi/admin.py:1082
+#: Mailman/Cgi/admin.py:1115 Mailman/Cgi/admin.py:1123
+#: Mailman/Cgi/confirm.py:271 Mailman/Cgi/create.py:327
+#: Mailman/Cgi/create.py:355 Mailman/Cgi/create.py:395
+#: Mailman/Cgi/rmlist.py:228 Mailman/Gui/Archive.py:33
+#: Mailman/Gui/Autoresponse.py:54 Mailman/Gui/Autoresponse.py:62
+#: Mailman/Gui/Autoresponse.py:71 Mailman/Gui/Bounce.py:77
+#: Mailman/Gui/Bounce.py:108 Mailman/Gui/Bounce.py:134
+#: Mailman/Gui/Bounce.py:143 Mailman/Gui/ContentFilter.py:70
+#: Mailman/Gui/ContentFilter.py:103 Mailman/Gui/Digest.py:46
+#: Mailman/Gui/Digest.py:62 Mailman/Gui/Digest.py:84 Mailman/Gui/Digest.py:89
+#: Mailman/Gui/General.py:148 Mailman/Gui/General.py:154
+#: Mailman/Gui/General.py:232 Mailman/Gui/General.py:259
+#: Mailman/Gui/General.py:286 Mailman/Gui/General.py:297
+#: Mailman/Gui/General.py:300 Mailman/Gui/General.py:310
+#: Mailman/Gui/General.py:315 Mailman/Gui/General.py:325
+#: Mailman/Gui/General.py:345 Mailman/Gui/General.py:373
+#: Mailman/Gui/General.py:396 Mailman/Gui/NonDigest.py:44
+#: Mailman/Gui/NonDigest.py:52 Mailman/Gui/Privacy.py:101
+#: Mailman/Gui/Privacy.py:107 Mailman/Gui/Privacy.py:140
+#: Mailman/Gui/Privacy.py:188 Mailman/Gui/Privacy.py:296
+#: Mailman/Gui/Privacy.py:309 Mailman/Gui/Usenet.py:50
+#: Mailman/Gui/Usenet.py:54 Mailman/Gui/Usenet.py:91 Mailman/Gui/Usenet.py:103
+msgid "No"
+msgstr "No"
+
+#: Mailman/Cgi/admin.py:1073 Mailman/Cgi/admin.py:1082
+#: Mailman/Cgi/admin.py:1115 Mailman/Cgi/admin.py:1123
+#: Mailman/Cgi/confirm.py:271 Mailman/Cgi/create.py:327
+#: Mailman/Cgi/create.py:355 Mailman/Cgi/create.py:395
+#: Mailman/Cgi/rmlist.py:228 Mailman/Gui/Archive.py:33
+#: Mailman/Gui/Autoresponse.py:54 Mailman/Gui/Autoresponse.py:62
+#: Mailman/Gui/Bounce.py:77 Mailman/Gui/Bounce.py:108
+#: Mailman/Gui/Bounce.py:134 Mailman/Gui/Bounce.py:143
+#: Mailman/Gui/ContentFilter.py:70 Mailman/Gui/ContentFilter.py:103
+#: Mailman/Gui/Digest.py:46 Mailman/Gui/Digest.py:62 Mailman/Gui/Digest.py:84
+#: Mailman/Gui/Digest.py:89 Mailman/Gui/General.py:148
+#: Mailman/Gui/General.py:154 Mailman/Gui/General.py:232
+#: Mailman/Gui/General.py:259 Mailman/Gui/General.py:286
+#: Mailman/Gui/General.py:297 Mailman/Gui/General.py:300
+#: Mailman/Gui/General.py:310 Mailman/Gui/General.py:315
+#: Mailman/Gui/General.py:325 Mailman/Gui/General.py:345
+#: Mailman/Gui/General.py:373 Mailman/Gui/General.py:396
+#: Mailman/Gui/NonDigest.py:44 Mailman/Gui/NonDigest.py:52
+#: Mailman/Gui/Privacy.py:101 Mailman/Gui/Privacy.py:107
+#: Mailman/Gui/Privacy.py:140 Mailman/Gui/Privacy.py:188
+#: Mailman/Gui/Privacy.py:296 Mailman/Gui/Privacy.py:309
+#: Mailman/Gui/Usenet.py:50 Mailman/Gui/Usenet.py:54 Mailman/Gui/Usenet.py:91
+#: Mailman/Gui/Usenet.py:103
+msgid "Yes"
+msgstr "Si"
+
+#: Mailman/Cgi/admin.py:1080
+msgid "Send notifications of new subscriptions to the list owner?"
+msgstr "¿Mandar notificaciones al propietario de la lista?"
+
+#: Mailman/Cgi/admin.py:1088 Mailman/Cgi/admin.py:1129
+msgid "Enter one address per line below..."
+msgstr "Introduzca a continuación cada dirección en una línea distinta..."
+
+#: Mailman/Cgi/admin.py:1093 Mailman/Cgi/admin.py:1134
+msgid "...or specify a file to upload:"
+msgstr "... o especifique que fichero cargar"
+
+#: Mailman/Cgi/admin.py:1098
+msgid ""
+"Below, enter additional text to be added to the\n"
+" top of your invitation or the subscription notification. Include at "
+"least\n"
+" one blank line at the end..."
+msgstr ""
+"Introduzca abajo el texto adicional a agregar al principio\n"
+" de la invitación de subscripción. Incluya al menos\n"
+" una línea en blanco al final..."
+
+#: Mailman/Cgi/admin.py:1113
+msgid "Send unsubscription acknowledgement to the user?"
+msgstr "¿Mandar la confirmación de anulación de la subscripción al usuario?"
+
+#: Mailman/Cgi/admin.py:1121
+msgid "Send notifications to the list owner?"
+msgstr "¿Mandar notificaciones al propietario de la lista?"
+
+#: Mailman/Cgi/admin.py:1143
+msgid "Change list ownership passwords"
+msgstr "Cambiar la clave del propietario de la lista"
+
+#: Mailman/Cgi/admin.py:1146
+msgid ""
+"The <em>list administrators</em> are the people who have ultimate control "
+"over\n"
+"all parameters of this mailing list. They are able to change any list\n"
+"configuration variable available through these administration web pages.\n"
+"\n"
+"<p>The <em>list moderators</em> have more limited permissions; they are not\n"
+"able to change any list configuration variable, but they are allowed to "
+"tend\n"
+"to pending administration requests, including approving or rejecting held\n"
+"subscription requests, and disposing of held postings. Of course, the\n"
+"<em>list administrators</em> can also tend to pending requests.\n"
+"\n"
+"<p>In order to split the list ownership duties into administrators and\n"
+"moderators, you must set a separate moderator password in the fields below,\n"
+"and also provide the email addresses of the list moderators in the\n"
+"<a href=\"%(adminurl)s/general\">general options section</a>."
+msgstr ""
+"Los <em>Administradores de la lista</em> son las personas que tienen la\n"
+"última palabra sobre todos los parámetros de esta lista de\n"
+"distribución. Son capaces de cambiar cualquier variable de\n"
+"configuración disponible a través de estas páginas\n"
+"web de administración.\n"
+"\n"
+"<p>Los <em>Moderadores de la lista</em> tienen menos permisos, no son\n"
+"capaces de cambiar cualquier variable de configuración, pero se les\n"
+"permite que decidan sobre las peticiones administrativas pendientes,\n"
+"incluyendo aprobar o denegar las peticiones de subscripción\n"
+"pendientes y decidir que hacer con los envios a la lista retenidos. Por\n"
+"supuesto, los <em>administradores de la lista</em> también pueden\n"
+"ocuparse de las peticiones pendientes.\n"
+"\n"
+"<p>Para poder dividir las tareas de administración entre los\n"
+"administradores y los moderadores, tiene que ponerle una clave distinta a\n"
+"los moderadores en el campo que está más abajo e indicar\n"
+"las direcciones de correo electrónicas en la sección de arriba."
+
+#: Mailman/Cgi/admin.py:1165
+msgid "Enter new administrator password:"
+msgstr "Indique la clave nueva del administrador:"
+
+#: Mailman/Cgi/admin.py:1167
+msgid "Confirm administrator password:"
+msgstr "Confirme la clave del administrador:"
+
+#: Mailman/Cgi/admin.py:1172
+msgid "Enter new moderator password:"
+msgstr "Indique la clave nueva del moderador:"
+
+#: Mailman/Cgi/admin.py:1174
+msgid "Confirm moderator password:"
+msgstr "Confirme la clave del moderador:"
+
+#: Mailman/Cgi/admin.py:1184
+msgid "Submit Your Changes"
+msgstr "Enviar los cambios"
+
+#: Mailman/Cgi/admin.py:1207
+msgid "Moderator passwords did not match"
+msgstr "Las claves del Moderador no coinciden"
+
+#: Mailman/Cgi/admin.py:1217
+msgid "Administrator passwords did not match"
+msgstr "Las claves del Administrador no coinciden"
+
+#: Mailman/Cgi/admin.py:1265
+msgid "Already a member"
+msgstr "Ya está subscrito"
+
+#: Mailman/Cgi/admin.py:1268
+msgid "&lt;blank line&gt;"
+msgstr "&lt;línea en blanco&gt;"
+
+#: Mailman/Cgi/admin.py:1269 Mailman/Cgi/admin.py:1272
+msgid "Bad/Invalid email address"
+msgstr "Dirección de correo electrónico incorrecta/inválida"
+
+#: Mailman/Cgi/admin.py:1275
+msgid "Hostile address (illegal characters)"
+msgstr "Dirección hostil (caracteres no válidos)"
+
+#: Mailman/Cgi/admin.py:1281
+msgid "Successfully invited:"
+msgstr "Invitados satisfactoriamente:"
+
+#: Mailman/Cgi/admin.py:1283
+msgid "Successfully subscribed:"
+msgstr "Subscritos satisfactoriamente:"
+
+#: Mailman/Cgi/admin.py:1288
+msgid "Error inviting:"
+msgstr "Error invitando a subscribirse:"
+
+#: Mailman/Cgi/admin.py:1290
+msgid "Error subscribing:"
+msgstr "Error dando de alta la subscripción:"
+
+#: Mailman/Cgi/admin.py:1319
+msgid "Successfully Unsubscribed:"
+msgstr "Ha anulado su subscripción satisfactoriamente:"
+
+#: Mailman/Cgi/admin.py:1324
+msgid "Cannot unsubscribe non-members:"
+msgstr ""
+"No puedo anular la subscripción de direcciones que no estén registradas:"
+
+#: Mailman/Cgi/admin.py:1336
+msgid "Bad moderation flag value"
+msgstr "Valor incorrecto del flag de moderación"
+
+#: Mailman/Cgi/admin.py:1357
+msgid "Not subscribed"
+msgstr "No está subscrito"
+
+#: Mailman/Cgi/admin.py:1360
+msgid "Ignoring changes to deleted member: %(user)s"
+msgstr "Ignorando los cambios del usuario borrado: %(user)s"
+
+#: Mailman/Cgi/admin.py:1400
+msgid "Successfully Removed:"
+msgstr "Ha sido borrado satisfactoriamente"
+
+#: Mailman/Cgi/admin.py:1404
+msgid "Error Unsubscribing:"
+msgstr "Error dando de baja la subscripción:"
+
+#: Mailman/Cgi/admindb.py:159 Mailman/Cgi/admindb.py:167
+msgid "%(realname)s Administrative Database"
+msgstr "Base de datos Administrativa %(realname)s"
+
+#: Mailman/Cgi/admindb.py:162
+msgid "%(realname)s Administrative Database Results"
+msgstr "Resultados de la base de datos administrativa de %(realname)s"
+
+#: Mailman/Cgi/admindb.py:170
+msgid "There are no pending requests."
+msgstr "No hay peticiones pendientes."
+
+#: Mailman/Cgi/admindb.py:173
+msgid "Click here to reload this page."
+msgstr "Déle con el ratón aquí para recargar la página."
+
+#: Mailman/Cgi/admindb.py:184
+msgid "Detailed instructions for the administrative database"
+msgstr "Instrucciones detalladas de la base de datos administrativa"
+
+#: Mailman/Cgi/admindb.py:188
+msgid "Administrative requests for mailing list:"
+msgstr "Peticiones administrativas para la lista de distribución:"
+
+#: Mailman/Cgi/admindb.py:191 Mailman/Cgi/admindb.py:234
+msgid "Submit All Data"
+msgstr "Enviar todos los datos"
+
+#: Mailman/Cgi/admindb.py:204
+msgid "all of %(esender)s's held messages."
+msgstr "todos los mensajes retenidos de %(esender)s."
+
+#: Mailman/Cgi/admindb.py:209
+msgid "a single held message."
+msgstr "un único mensaje retenido."
+
+#: Mailman/Cgi/admindb.py:214
+msgid "all held messages."
+msgstr "todos los mensajes retenidos."
+
+#: Mailman/Cgi/admindb.py:249
+msgid "Mailman Administrative Database Error"
+msgstr "Error de base de datos administrativa de Mailman"
+
+#: Mailman/Cgi/admindb.py:254
+msgid "list of available mailing lists."
+msgstr "lista de listas de distribución que están disponibles."
+
+#: Mailman/Cgi/admindb.py:255
+msgid "You must specify a list name. Here is the %(link)s"
+msgstr "Tienes que especificar un nombre de lista. Aquí está el %(link)s"
+
+#: Mailman/Cgi/admindb.py:268
+msgid "Subscription Requests"
+msgstr "Peticiones de Subscripción"
+
+#: Mailman/Cgi/admindb.py:270
+msgid "Address/name"
+msgstr "Dirección/nombre"
+
+#: Mailman/Cgi/admindb.py:271 Mailman/Cgi/admindb.py:320
+msgid "Your decision"
+msgstr "Su decisión"
+
+#: Mailman/Cgi/admindb.py:272 Mailman/Cgi/admindb.py:321
+msgid "Reason for refusal"
+msgstr "Motivo del rechazo"
+
+#: Mailman/Cgi/admindb.py:289 Mailman/Cgi/admindb.py:346
+#: Mailman/Cgi/admindb.py:389 Mailman/Cgi/admindb.py:609
+msgid "Defer"
+msgstr "Diferir"
+
+#: Mailman/Cgi/admindb.py:290 Mailman/Cgi/admindb.py:347
+#: Mailman/Cgi/admindb.py:609
+msgid "Approve"
+msgstr "Aprobar"
+
+#: Mailman/Cgi/admindb.py:291 Mailman/Cgi/admindb.py:348
+#: Mailman/Cgi/admindb.py:389 Mailman/Cgi/admindb.py:609
+#: Mailman/Gui/ContentFilter.py:37 Mailman/Gui/Privacy.py:207
+#: Mailman/Gui/Privacy.py:281
+msgid "Reject"
+msgstr "Rechazar"
+
+#: Mailman/Cgi/admindb.py:292 Mailman/Cgi/admindb.py:349
+#: Mailman/Cgi/admindb.py:389 Mailman/Cgi/admindb.py:609
+#: Mailman/Gui/ContentFilter.py:37 Mailman/Gui/Privacy.py:207
+#: Mailman/Gui/Privacy.py:281
+msgid "Discard"
+msgstr "Descartar"
+
+#: Mailman/Cgi/admindb.py:300
+msgid "Permanently ban from this list"
+msgstr "Vetar permanentemente de esta lista"
+
+#: Mailman/Cgi/admindb.py:319
+msgid "User address/name"
+msgstr "Dirección/nombre"
+
+#: Mailman/Cgi/admindb.py:359
+msgid "Unsubscription Requests"
+msgstr "Solicitudes de desubscripción"
+
+#: Mailman/Cgi/admindb.py:382 Mailman/Cgi/admindb.py:593
+msgid "From:"
+msgstr "de:"
+
+#: Mailman/Cgi/admindb.py:385
+msgid "Action to take on all these held messages:"
+msgstr "Acción a tomar acerca de todos estos mensajes retenidos"
+
+#: Mailman/Cgi/admindb.py:389 Mailman/Gui/Privacy.py:281
+msgid "Accept"
+msgstr "Aceptar"
+
+#: Mailman/Cgi/admindb.py:397
+msgid "Preserve messages for the site administrator"
+msgstr "Preservar los mensaje para el administrador del gestor de listas"
+
+#: Mailman/Cgi/admindb.py:403
+msgid "Forward messages (individually) to:"
+msgstr "Reenviar mensajes (individualmente) a"
+
+#: Mailman/Cgi/admindb.py:421
+msgid "Clear this member's <em>moderate</em> flag"
+msgstr "Borrar el banderín de moderación de este subscriptor"
+
+#: Mailman/Cgi/admindb.py:431
+msgid "Add <b>%(esender)s</b> to a sender filter"
+msgstr "añadir <b>%(esender)s</b> al filtro de remitentes"
+
+#: Mailman/Cgi/admindb.py:436
+msgid "Accepts"
+msgstr "Aceptar"
+
+#: Mailman/Cgi/admindb.py:436
+msgid "Discards"
+msgstr "Descartar"
+
+#: Mailman/Cgi/admindb.py:436
+msgid "Holds"
+msgstr "Retener"
+
+#: Mailman/Cgi/admindb.py:436
+msgid "Rejects"
+msgstr "Rechazar"
+
+#: Mailman/Cgi/admindb.py:445
+msgid ""
+"Ban <b>%(esender)s</b> from ever subscribing to this\n"
+" mailing list"
+msgstr ""
+"Vetar a <b>%(esender)s</b> de volver a subscribirse a esta\n"
+" lista de distribución"
+
+#: Mailman/Cgi/admindb.py:450
+msgid ""
+"Click on the message number to view the individual\n"
+" message, or you can "
+msgstr ""
+"Pulsar sobre el número\n"
+" de mensajes para ver el mensaje\n"
+" indivudualmente, o puede"
+
+#: Mailman/Cgi/admindb.py:452
+msgid "view all messages from %(esender)s"
+msgstr "ver todos los mensajes de %(esender)s"
+
+#: Mailman/Cgi/admindb.py:472 Mailman/Cgi/admindb.py:596
+msgid "Subject:"
+msgstr "Asunto:"
+
+#: Mailman/Cgi/admindb.py:475
+msgid " bytes"
+msgstr " bytes"
+
+#: Mailman/Cgi/admindb.py:475
+msgid "Size:"
+msgstr "tamaño:"
+
+#: Mailman/Cgi/admindb.py:479 Mailman/Handlers/Decorate.py:50
+#: Mailman/Handlers/Scrubber.py:226 Mailman/Handlers/Scrubber.py:227
+msgid "not available"
+msgstr "no disponible"
+
+#: Mailman/Cgi/admindb.py:480 Mailman/Cgi/admindb.py:598
+msgid "Reason:"
+msgstr "Motivo:"
+
+#: Mailman/Cgi/admindb.py:484 Mailman/Cgi/admindb.py:602
+msgid "Received:"
+msgstr "Recibido:"
+
+#: Mailman/Cgi/admindb.py:542
+msgid "Posting Held for Approval"
+msgstr "El envío se ha retenido en espera de su aprobación"
+
+#: Mailman/Cgi/admindb.py:544
+msgid " (%(count)d of %(total)d)"
+msgstr " (%(count)d de %(total)d"
+
+#: Mailman/Cgi/admindb.py:555
+msgid "<em>Message with id #%(id)d was lost."
+msgstr "<em>Se ha perdido el mensaje con el identificador #%(id)d"
+
+#: Mailman/Cgi/admindb.py:564
+msgid "<em>Message with id #%(id)d is corrupted."
+msgstr "<em>El mensaje con el id #%(id)d esta corrupto."
+
+#: Mailman/Cgi/admindb.py:615
+msgid "Action:"
+msgstr "Acción: "
+
+#: Mailman/Cgi/admindb.py:619
+msgid "Preserve message for site administrator"
+msgstr "Preservar el mensaje para el administrador del gestor de listas"
+
+#: Mailman/Cgi/admindb.py:623
+msgid "Additionally, forward this message to: "
+msgstr "Adicionalmente, puede reenviar este mensaje a: "
+
+#: Mailman/Cgi/admindb.py:627
+msgid "[No explanation given]"
+msgstr "[No se ha dado explicación alguna]"
+
+#: Mailman/Cgi/admindb.py:629
+msgid "If you reject this post,<br>please explain (optional):"
+msgstr "Si rechaza este mensaje, <br>por favor, explique la causa (opcional):"
+
+#: Mailman/Cgi/admindb.py:635
+msgid "Message Headers:"
+msgstr "Cabeceras del mensaje:"
+
+#: Mailman/Cgi/admindb.py:640
+msgid "Message Excerpt:"
+msgstr "Extracto del Mensaje"
+
+#: Mailman/Cgi/admindb.py:673 Mailman/Deliverer.py:124
+msgid "No reason given"
+msgstr "No se ha dado ninguna razón"
+
+#: Mailman/Cgi/admindb.py:734 Mailman/ListAdmin.py:308
+#: Mailman/ListAdmin.py:429
+msgid "[No reason given]"
+msgstr "[No se ha dado ninguna razón]"
+
+#: Mailman/Cgi/admindb.py:763
+msgid "Database Updated..."
+msgstr "La base de datos ha sido actualizada..."
+
+#: Mailman/Cgi/admindb.py:766
+msgid " is already a member"
+msgstr " ya es un subscriptor"
+
+#: Mailman/Cgi/confirm.py:69
+msgid "Confirmation string was empty."
+msgstr "La cadena de confirmación está vacia"
+
+#: Mailman/Cgi/confirm.py:89
+msgid ""
+"<b>Invalid confirmation string:</b>\n"
+" %(safecookie)s.\n"
+"\n"
+" <p>Note that confirmation strings expire approximately\n"
+" %(days)s days after the initial subscription request. If your\n"
+" confirmation has expired, please try to re-submit your subscription.\n"
+" Otherwise, <a href=\"%(confirmurl)s\">re-enter</a> your confirmation\n"
+" string."
+msgstr ""
+"<b>Cadena de confirmación incorrecta:</b>\n"
+" %(safecookie)s.\n"
+"\n"
+" Resulta que las cadenas expiran aproximadamente %(days)s días\n"
+" después de la solicitud inicial. Si su periodo de confirmación ha "
+"expirado\n"
+" por favor, trate de subscribirse de nuevo. Si no ha expirado,\n"
+" <a href=\"%(confirmurl)s\">introduzca</a> su cadena de confirmación."
+
+#: Mailman/Cgi/confirm.py:122
+msgid ""
+"The address requesting unsubscription is not\n"
+" a member of the mailing list. Perhaps you have already "
+"been\n"
+" unsubscribed, e.g. by the list administrator?"
+msgstr ""
+"La dirección que pide darse de baja no está subscrito a la lista de\n"
+" distribución. Quizás haya sido dado de baja ya (ejemplo: por\n"
+" el administrador de la lista)"
+
+#: Mailman/Cgi/confirm.py:138
+msgid ""
+"The address requesting to be changed has\n"
+" been subsequently unsubscribed. This request has been\n"
+" cancelled."
+msgstr ""
+"La dirección que solicitaba el cambio se ha\n"
+" dado de baja con posteriridad. Esta solicitud ha sido\n"
+" cancelada"
+
+#: Mailman/Cgi/confirm.py:157
+msgid "System error, bad content: %(content)s"
+msgstr "Error del sistema, contenido corrupto: %(content)s"
+
+#: Mailman/Cgi/confirm.py:167
+msgid "Bad confirmation string"
+msgstr "Cadena de confirmación incorrecta"
+
+#: Mailman/Cgi/confirm.py:175
+msgid "Enter confirmation cookie"
+msgstr "Introduzca su cadena de confirmación"
+
+#: Mailman/Cgi/confirm.py:188
+msgid ""
+"Please enter the confirmation string\n"
+" (i.e. <em>cookie</em>) that you received in your email message, in the "
+"box\n"
+" below. Then hit the <em>Submit</em> button to proceed to the next\n"
+" confirmation step."
+msgstr ""
+"Por favor, indique la cadena de confirmación\n"
+" (<em>cookie</em>) que recibió en el mensaje de correo\n"
+" electrónico, en la caja de abajo. Pulse a continuación\n"
+" el botón <em>Enviar</em> para continuar con el siguiente paso\n"
+" de confirmación"
+
+#: Mailman/Cgi/confirm.py:193
+msgid "Confirmation string:"
+msgstr "Cadena de confirmación:"
+
+#: Mailman/Cgi/confirm.py:195
+msgid "Submit"
+msgstr "Confirmar los cambios"
+
+#: Mailman/Cgi/confirm.py:210
+msgid "Confirm subscription request"
+msgstr "Confirmar la solicitud de subscripción"
+
+#: Mailman/Cgi/confirm.py:227
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" subscription request to the mailing list <em>%(listname)s</em>. Your\n"
+" subscription settings are shown below; make any necessary changes and "
+"hit\n"
+" <em>Subscribe</em> to complete the confirmation process. Once you've\n"
+" confirmed your subscription request, you will be shown your account\n"
+" options page which you can use to further customize your membership\n"
+" options.\n"
+"\n"
+" <p>Note: your password will be emailed to you once your subscription is\n"
+" confirmed. You can change it by visiting your personal options page.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this subscription\n"
+" request."
+msgstr ""
+"Hace falta confirmación para completar la petición de\n"
+" subscripción a la lista de distribución\n"
+" <em>%(listname)s</em>. Sus preferencias de subscripción se\n"
+" muestran abajo, realice cualquier cambio que estime oportuno y\n"
+" pulse <em>Subscribir</em> para completar el proceso de\n"
+" confirmación. Una vez que haya confirmado la petición\n"
+" de subscripción, se le mostrarán la página\n"
+" con sus preferencias de subscripción que podrá\n"
+" utilizar de aquí en adelante para ajustar sus preferencias\n"
+" de subscripción.\n"
+"\n"
+" <p>O pulse <em>Cancelar y descartar</em> para cancelar esta\n"
+" petición de subscripción"
+
+#: Mailman/Cgi/confirm.py:242
+msgid ""
+"Your confirmation is required in order to continue with\n"
+" the subscription request to the mailing list <em>%(listname)s</em>.\n"
+" Your subscription settings are shown below; make any necessary "
+"changes\n"
+" and hit <em>Subscribe to list ...</em> to complete the confirmation\n"
+" process. Once you've confirmed your subscription request, the\n"
+" moderator must approve or reject your membership request. You will\n"
+" receive notice of their decision.\n"
+"\n"
+" <p>Note: your password will be emailed to you once your "
+"subscription\n"
+" is confirmed. You can change it by visiting your personal options\n"
+" page.\n"
+"\n"
+" <p>Or, if you've changed your mind and do not want to subscribe to\n"
+" this mailing list, you can hit <em>Cancel my subscription\n"
+" request</em>."
+msgstr ""
+"Hace falta confirmación para continuar con la solicitud de\n"
+" subscripción a la lista de distribución\n"
+" <em>%(listname)s</em>. A continuación se muestran sus preferencias\n"
+" de subscripción, realice cualquier cambio que estime oportuno y\n"
+" pulse <em>Subscribir</em> para completar el proceso de\n"
+" confirmación. Una vez que haya confirmado la solicitud, el moderador\n"
+" tiene que darle el visto bueno. Recibirá noticias de la decisión tomada.\n"
+"\n"
+" Nota: se le mandará su clave por correo electrónico una vez se confirme\n"
+" su subscripción. Puede cambiarla a partir de su página de opciones personal.\n"
+"\n"
+" <p>Si ha cambiado de parecer y no quiere subscribirse a esta lista de\n"
+" distribución, puede pulsar <em>Cancelar mi solicitud de subscripción</em>."
+
+#: Mailman/Cgi/confirm.py:260
+msgid "Your email address:"
+msgstr "Su dirección de correo electrónico:"
+
+#: Mailman/Cgi/confirm.py:261
+msgid "Your real name:"
+msgstr "Su nombre y apellidos:"
+
+#: Mailman/Cgi/confirm.py:270
+msgid "Receive digests?"
+msgstr "¿Recibir digests?"
+
+#: Mailman/Cgi/confirm.py:279
+msgid "Preferred language:"
+msgstr "Idioma preferido:"
+
+#: Mailman/Cgi/confirm.py:284
+msgid "Cancel my subscription request"
+msgstr "Cancelar mi solicitud de subscripción"
+
+#: Mailman/Cgi/confirm.py:285
+msgid "Subscribe to list %(listname)s"
+msgstr "Subscribirse a la lista %(listname)s"
+
+#: Mailman/Cgi/confirm.py:295
+msgid "You have canceled your subscription request."
+msgstr "Ha cancelado su solicitud de subscripción."
+
+#: Mailman/Cgi/confirm.py:329
+msgid "Awaiting moderator approval"
+msgstr "Esperando el visto bueno del moderador"
+
+#: Mailman/Cgi/confirm.py:332
+msgid ""
+" You have successfully confirmed your subscription request to "
+"the\n"
+" mailing list %(listname)s, however final approval is required "
+"from\n"
+" the list moderator before you will be subscribed. Your request\n"
+" has been forwarded to the list moderator, and you will be "
+"notified\n"
+" of the moderator's decision."
+msgstr ""
+" Ha confirmado satisfactoriamente la solicitud de\n"
+" subscripción a la lista de distribución,\n"
+" sin embargo hace falta el visto bueno por parte del moderador\n"
+" de la lista. Su solicitud ha sido mandada al moderador de la\n"
+" lista. Usted será informado de la decisión del\n"
+" moderador."
+
+#: Mailman/Cgi/confirm.py:339 Mailman/Cgi/confirm.py:394
+#: Mailman/Cgi/confirm.py:482 Mailman/Cgi/confirm.py:705
+msgid ""
+"Invalid confirmation string. It is\n"
+" possible that you are attempting to confirm a request for an\n"
+" address that has already been unsubscribed."
+msgstr ""
+"Cadena de confirmación inválida. Es posible que esté\n"
+" intentando confirmar una solicitud de una dirección que\n"
+" ya ha sido dado de baja."
+
+#: Mailman/Cgi/confirm.py:343
+msgid "You are already a member of this mailing list!"
+msgstr "¡Ya está subscrito a esta lista de distribución!"
+
+#: Mailman/Cgi/confirm.py:350
+msgid "Subscription request confirmed"
+msgstr "Petición de subscripción confirmada"
+
+#: Mailman/Cgi/confirm.py:354
+msgid ""
+" You have successfully confirmed your subscription request for\n"
+" \"%(addr)s\" to the %(listname)s mailing list. A separate\n"
+" confirmation message will be sent to your email address, along\n"
+" with your password, and other useful information and links.\n"
+"\n"
+" <p>You can now\n"
+" <a href=\"%(optionsurl)s\">proceed to your membership login\n"
+" page</a>."
+msgstr ""
+" Ha confirmado satisfactoriamente la solicitud de\n"
+" subscripción de \"%(addr)s\" a la lista de distribución\n"
+" %(listname)s. Se le mandarán separadamente un mensaje a su\n"
+" dirección de correo electrónico, junto con su clave y\n"
+" otra información de interés. Se recomienda que guarde\n"
+" ese mensaje como referencia.\n"
+"\n"
+" <p>Ahora puede <a href=\"%(optionsurl)s\">acceder a la página "
+"de\n"
+" entrada de su subscripción</a>."
+
+#: Mailman/Cgi/confirm.py:372
+msgid "You have canceled your unsubscription request."
+msgstr "Ha cancelado su solicitud de desubscripción."
+
+#: Mailman/Cgi/confirm.py:400
+msgid "Unsubscription request confirmed"
+msgstr "Petición de desubscripción confirmada"
+
+#: Mailman/Cgi/confirm.py:404
+msgid ""
+" You have successfully unsubscribed from the %(listname)s "
+"mailing\n"
+" list. You can now <a href=\"%(listinfourl)s\">visit the list's "
+"main\n"
+" information page</a>."
+msgstr ""
+"Ha sido dado de baja satisfactoriamente de la lista de distribución\n"
+" %(listname)s. Ahora puede <a href=\"%(listinfourl)s\">visitar\n"
+" la página de información general de la lista</a>."
+
+#: Mailman/Cgi/confirm.py:415
+msgid "Confirm unsubscription request"
+msgstr "Confirmar la solicitud de desubscripción"
+
+#: Mailman/Cgi/confirm.py:430 Mailman/Cgi/confirm.py:519
+msgid "<em>Not available</em>"
+msgstr "<em>No disponible</em>"
+
+#: Mailman/Cgi/confirm.py:433
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" unsubscription request from the mailing list <em>%(listname)s</em>. "
+"You\n"
+" are currently subscribed with\n"
+"\n"
+" <ul><li><b>Real name:</b> %(fullname)s\n"
+" <li><b>Email address:</b> %(addr)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Unsubscribe</em> button below to complete the confirmation\n"
+" process.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this unsubscription\n"
+" request."
+msgstr ""
+"Hace falta su confirmación en aras de completar la solicitud de\n"
+" desubscripción de la lista de distribución\n"
+" <em>%(listname)s</em>. Actualmente está subscrito como\n"
+" <ul><li><b>Nombre y Apellidos:</b> %(fullname)s\n"
+" <li><b>Dirección de correo electrónico:</b> %(addr)s\n"
+" </ul>\n"
+"\n"
+" Pulse el botón <em>Desubscribir</em> de abajo para completar el\n"
+" proceso de confirmación.\n"
+"\n"
+" <p>O pulse <em>Cancelar y descartar</em> para cancelar esta solicitud\n"
+" de baja."
+
+#: Mailman/Cgi/confirm.py:449 Mailman/Cgi/options.py:660
+#: Mailman/Cgi/options.py:801 Mailman/Cgi/options.py:811
+msgid "Unsubscribe"
+msgstr "Desubscribir"
+
+#: Mailman/Cgi/confirm.py:450 Mailman/Cgi/confirm.py:548
+msgid "Cancel and discard"
+msgstr "Cancelar y descartar"
+
+#: Mailman/Cgi/confirm.py:460
+msgid "You have canceled your change of address request."
+msgstr "Ha cancelado la solicitud de cambio de dirección"
+
+#: Mailman/Cgi/confirm.py:488
+msgid "Change of address request confirmed"
+msgstr "Solicitud de cambio de dirección confirmada"
+
+#: Mailman/Cgi/confirm.py:492
+msgid ""
+" You have successfully changed your address on the %(listname)s\n"
+" mailing list from <b>%(oldaddr)s</b> to <b>%(newaddr)s</b>. "
+"You\n"
+" can now <a href=\"%(optionsurl)s\">proceed to your membership\n"
+" login page</a>."
+msgstr ""
+" Ha cambiado satisfactoriamente su dirección en la lista\n"
+" de distribución %(listname)s de <b>%(oldaddr)s</b> a\n"
+" <b>%(newaddr)s</b>. Ahora puede <a href=\"%(optionsurl)s\">\n"
+" acceder a su página de entrada como subscriptor</a>."
+
+#: Mailman/Cgi/confirm.py:504
+msgid "Confirm change of address request"
+msgstr "Confirmar la solicitud al cambio de dirección"
+
+#: Mailman/Cgi/confirm.py:523
+msgid "globally"
+msgstr "globalmente"
+
+#: Mailman/Cgi/confirm.py:526
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" change of address request for the mailing list <em>%(listname)s</em>. "
+"You\n"
+" are currently subscribed with\n"
+"\n"
+" <ul><li><b>Real name:</b> %(fullname)s\n"
+" <li><b>Old email address:</b> %(oldaddr)s\n"
+" </ul>\n"
+"\n"
+" and you have requested to %(globallys)s change your email address to\n"
+"\n"
+" <ul><li><b>New email address:</b> %(newaddr)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Change address</em> button below to complete the "
+"confirmation\n"
+" process.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this change of address\n"
+" request."
+msgstr ""
+"Hace falta su confirmación en aras de completar la solicitud de\n"
+" cambio de dirección de la lista de distribución\n"
+" <em>%(listname)s</em>. Actualmente está subscrito como\n"
+" <ul><li><b>Nombre y Apellidos:</b> %(fullname)s\n"
+" <li><b>Dirección de correo electrónico antigua:</b> %(addr)s\n"
+" </ul>\n"
+"\n"
+" has solicitado cambiar %(globallys)s su dirección de correo\n"
+" electrónico a \n"
+" <ul><li><b>Nueva dirección de correo electrónico:</b> %(newaddr)s\n"
+" </ul>\n"
+"\n"
+" Pulse el botón <em>Cambiar la dirección</em> de abajo para\n"
+" completar el proceso de confirmación\n"
+" O pulse en <em>Cancelar y descartar</em> para cancelar esta solicitud "
+"de\n"
+" cambio de dirección."
+
+#: Mailman/Cgi/confirm.py:547
+msgid "Change address"
+msgstr "Cambiar la dirección"
+
+#: Mailman/Cgi/confirm.py:557 Mailman/Cgi/confirm.py:670
+msgid "Continue awaiting approval"
+msgstr "Seguir esperando aprobación"
+
+#: Mailman/Cgi/confirm.py:564
+msgid ""
+"Okay, the list moderator will still have the\n"
+" opportunity to approve or reject this message."
+msgstr ""
+"De acuerdo, el moderador de la lista aún\n"
+" tiene la oportunidad de aprobar o rechazar\n"
+" este mensaje."
+
+#: Mailman/Cgi/confirm.py:590
+msgid "Sender discarded message via web."
+msgstr "El remitente descartó el mensaje via web."
+
+#: Mailman/Cgi/confirm.py:592
+msgid ""
+"The held message with the Subject:\n"
+" header <em>%(subject)s</em> could not be found. The most "
+"likely\n"
+" reason for this is that the list moderator has already approved "
+"or\n"
+" rejected the message. You were not able to cancel it in\n"
+" time."
+msgstr ""
+"El mensaje retenido con el asunto:\n"
+" <em>%(subject)s</em> no se ha podido encontrar. \n"
+" El motivo más probable para que suceda esto es que el\n"
+" moderador haya aprobado o rechazado ya el mensaje. No fuiste\n"
+" capaz de cancelarlo a tiempo."
+
+#: Mailman/Cgi/confirm.py:600
+msgid "Posted message canceled"
+msgstr "Mensaje enviado cancelado"
+
+#: Mailman/Cgi/confirm.py:603
+msgid ""
+" You have successfully canceled the posting of your message with\n"
+" the Subject: header <em>%(subject)s</em> to the mailing list\n"
+" %(listname)s."
+msgstr ""
+" Ha cancelado satisfactoriamente el envío de su mensaje\n"
+" con asunto: <em>%(subject)s</em> a la lista de\n"
+" distribución%(listname)s."
+
+#: Mailman/Cgi/confirm.py:614
+msgid "Cancel held message posting"
+msgstr "Cancelar el envío del mensaje retenido"
+
+#: Mailman/Cgi/confirm.py:639
+msgid ""
+"The held message you were referred to has\n"
+" already been handled by the list administrator."
+msgstr ""
+"El mensaje retenido al que se estaba refiriendo ya ha sido\n"
+" tratado por el administrador de la lista."
+
+#: Mailman/Cgi/confirm.py:653
+msgid ""
+"Your confirmation is required in order to cancel the\n"
+" posting of your message to the mailing list <em>%(listname)s</em>:\n"
+"\n"
+" <ul><li><b>Sender:</b> %(sender)s\n"
+" <li><b>Subject:</b> %(subject)s\n"
+" <li><b>Reason:</b> %(reason)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Cancel posting</em> button to discard the posting.\n"
+"\n"
+" <p>Or hit the <em>Continue awaiting approval</em> button to continue to\n"
+" allow the list moderator to approve or reject the message."
+msgstr ""
+"Hace falta su confirmación para cancelar el envío de su\n"
+" mensaje a la lista de distrubución <em>%(listname)s</em>:.\n"
+"\n"
+" cambio de dirección de la lista de distribución\n"
+" <em>%(listname)s</em>:\n"
+"\n"
+" <ul><li><b>Remitente:</b> %(sender)s\n"
+" <li><b>Asunto:</b> %(subject)s\n"
+" <li><b>Motivo:</b> %(reason)s\n"
+" </ul>\n"
+"\n"
+" Pulse el botón <em>Cancelar en envío</em> para descartar\n"
+" el envío\n"
+" O pulse en el botón <em>Seguir en espera de aprobación</em>\n"
+" para seguir permitiendo que el moderador apruebe o rechace el mensaje."
+
+#: Mailman/Cgi/confirm.py:669
+msgid "Cancel posting"
+msgstr "Cancelar el envío"
+
+#: Mailman/Cgi/confirm.py:681
+msgid ""
+"You have canceled the re-enabling of your membership. If\n"
+" we continue to receive bounces from your address, it could be deleted "
+"from\n"
+" this mailing list."
+msgstr ""
+"Ha cancelado la rehabilitación de su subscripción. Si\n"
+" seguimos recibiendo rebotes de su dirección, se borrará\n"
+"de\n"
+" esta lista de distribución."
+
+#: Mailman/Cgi/confirm.py:711
+msgid "Membership re-enabled."
+msgstr "Subscripción reactivada."
+
+#: Mailman/Cgi/confirm.py:715
+msgid ""
+" You have successfully re-enabled your membership in the\n"
+" %(listname)s mailing list. You can now <a\n"
+" href=\"%(optionsurl)s\">visit your member options page</a>.\n"
+" "
+msgstr ""
+" Ha reactivado satisfactoriamente su subscripción de la lista de "
+"distribución\n"
+" %(listname)s. Ahora puede <a href=\"%(optionsourl)s\">visitar\n"
+" la página con sus preferencias de subscripción</a>.\n"
+" "
+
+#: Mailman/Cgi/confirm.py:727
+msgid "Re-enable mailing list membership"
+msgstr "Reactivar la subscripción a la lista de distribución"
+
+#: Mailman/Cgi/confirm.py:744
+msgid ""
+"We're sorry, but you have already been unsubscribed\n"
+" from this mailing list. To re-subscribe, please visit the\n"
+" <a href=\"%(listinfourl)s\">list information page</a>."
+msgstr ""
+"Lo sentimos, pero ya ha sido dado de baja de esta lista de distribución.\n"
+" Para volver a subscribirse, por favor, visite la\n"
+" <a href=\"%(listinfourl)s\">página de información general\n"
+" de la lista</a>."
+
+#: Mailman/Cgi/confirm.py:758
+msgid "<em>not available</em>"
+msgstr "<em>No disponible</em>"
+
+#: Mailman/Cgi/confirm.py:762
+msgid ""
+"Your membership in the %(realname)s mailing list is\n"
+" currently disabled due to excessive bounces. Your confirmation is\n"
+" required in order to re-enable delivery to your address. We have the\n"
+" following information on file:\n"
+"\n"
+" <ul><li><b>Member address:</b> %(member)s\n"
+" <li><b>Member name:</b> %(username)s\n"
+" <li><b>Last bounce received on:</b> %(date)s\n"
+" <li><b>Approximate number of days before you are permanently "
+"removed\n"
+" from this list:</b> %(daysleft)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Re-enable membership</em> button to resume receiving "
+"postings\n"
+" from the mailing list. Or hit the <em>Cancel</em> button to defer\n"
+" re-enabling your membership.\n"
+" "
+msgstr ""
+"Su subscripción de la lista de distribución %(realname)s está\n"
+" actualmente inhabilitada debido a demasiados rebotes. Hace falta su "
+"consentimiento\n"
+" para reactivar el envío a su dirección. Tenemos la siguiente\n"
+" información en un fichero:\n"
+"\n"
+" <ul><li><b>Dirección del subscriptor:</b> %(member)s\n"
+" <li><b>Nombre del subscriptor:</b> %(username)s\n"
+" <li><b>Último rebote recibido:</b> %(date)s\n"
+" <li><b>Número aproximado de días antes de\n"
+"que se le de de baja de esta lista:</b> %(daysleft)s\n"
+" </ul>\n"
+"\n"
+" Pinche sobre <em>Reactivar subscripción</em> para volver a recibir "
+"envíos\n"
+" de la lista de distribución. O pinche sobre <em>Cancelar</em> para "
+"postergar la\n"
+" reactivación de la subscripción.\n"
+" "
+
+#: Mailman/Cgi/confirm.py:782
+msgid "Re-enable membership"
+msgstr "Reactivar subscripción"
+
+#: Mailman/Cgi/confirm.py:783
+msgid "Cancel"
+msgstr "Cancelar"
+
+#: Mailman/Cgi/create.py:48 Mailman/Cgi/rmlist.py:48
+msgid "Bad URL specification"
+msgstr "Especificación de URL incorrecta"
+
+#: Mailman/Cgi/create.py:63 Mailman/Cgi/rmlist.py:176
+msgid "Return to the "
+msgstr "Volver a la "
+
+#: Mailman/Cgi/create.py:65 Mailman/Cgi/rmlist.py:178
+msgid "general list overview"
+msgstr "página principal con el ídice de las listas"
+
+#: Mailman/Cgi/create.py:66 Mailman/Cgi/rmlist.py:179
+msgid "<br>Return to the "
+msgstr "<br>Regresar a la "
+
+#: Mailman/Cgi/create.py:68 Mailman/Cgi/rmlist.py:181
+msgid "administrative list overview"
+msgstr "lista general administrativa"
+
+#: Mailman/Cgi/create.py:101
+msgid "List name must not include \"@\": %(listname)s"
+msgstr "El nombre de la lista no puede contener \"@\": %(listname)s"
+
+#: Mailman/Cgi/create.py:107 Mailman/Cgi/create.py:185 bin/newlist:134
+#: bin/newlist:168
+msgid "List already exists: %(listname)s"
+msgstr "La lista ya existe: %(listname)s"
+
+#: Mailman/Cgi/create.py:111
+msgid "You forgot to enter the list name"
+msgstr "Olvidó especificar el nombre de la lista"
+
+#: Mailman/Cgi/create.py:115
+msgid "You forgot to specify the list owner"
+msgstr "Olvidó especificar el propietario de la lista"
+
+#: Mailman/Cgi/create.py:122
+msgid ""
+"Leave the initial password (and confirmation) fields\n"
+" blank if you want Mailman to autogenerate the list\n"
+" passwords."
+msgstr ""
+"Deje el campo perteneciente a la clave inicial en blanco (el de confirmación "
+"también) si quiere que Mailman se las genere automáticamente."
+
+#: Mailman/Cgi/create.py:130
+msgid "Initial list passwords do not match"
+msgstr "Las claves iniciales para la lista no coinciden"
+
+#: Mailman/Cgi/create.py:139
+msgid "The list password cannot be empty<!-- ignore -->"
+msgstr "La clave de la lista no puede ser nula<!-- ignore -->"
+
+#: Mailman/Cgi/create.py:151
+msgid "You are not authorized to create new mailing lists"
+msgstr "No está autorizado para crear listas de distribución nuevas"
+
+#: Mailman/Cgi/create.py:181 bin/newlist:166
+msgid "Bad owner email address: %(s)s"
+msgstr "Dirección de correo electrónico del propietario incorrecta: %(s)s"
+
+#: Mailman/Cgi/create.py:189 bin/newlist:164
+msgid "Illegal list name: %(s)s"
+msgstr "Nombre de lista ilegal: %(opt)s"
+
+#: Mailman/Cgi/create.py:194
+msgid ""
+"Some unknown error occurred while creating the list.\n"
+" Please contact the site administrator for assistance."
+msgstr ""
+"Han ocurrido algunos errores desconocidos a la hora de crear la lista.\n"
+" Por favor, póngase en contacto con el administrador\n"
+" de la lista para obtener ayuda."
+
+#: Mailman/Cgi/create.py:233 bin/newlist:210
+msgid "Your new mailing list: %(listname)s"
+msgstr "Su nuebva lista de distribución: %(listname)s"
+
+#: Mailman/Cgi/create.py:242
+msgid "Mailing list creation results"
+msgstr "Resultados de la creación de las listas de distribución"
+
+#: Mailman/Cgi/create.py:248
+msgid ""
+"You have successfully created the mailing list\n"
+" <b>%(listname)s</b> and notification has been sent to the list owner\n"
+" <b>%(owner)s</b>. You can now:"
+msgstr ""
+"Ha creado satisfactoriamente la lista de distribución\n"
+" <b>%(listname)s</b>, se han mandado las instrucciones al propietario "
+"de la lista\n"
+" <b>%(owner)s</b>. Ahora puede:"
+
+#: Mailman/Cgi/create.py:252
+msgid "Visit the list's info page"
+msgstr "Visite la página de información de la lista"
+
+#: Mailman/Cgi/create.py:253
+msgid "Visit the list's admin page"
+msgstr "Visitar la página de administración de la lista"
+
+#: Mailman/Cgi/create.py:254
+msgid "Create another list"
+msgstr "Crear otra lista"
+
+#: Mailman/Cgi/create.py:272
+msgid "Create a %(hostname)s Mailing List"
+msgstr "Crear un lista de distribución de %(hostname)s"
+
+#: Mailman/Cgi/create.py:281 Mailman/Cgi/rmlist.py:199
+#: Mailman/Gui/Bounce.py:175 Mailman/htmlformat.py:339
+msgid "Error: "
+msgstr "Error: "
+
+#: Mailman/Cgi/create.py:283
+msgid ""
+"You can create a new mailing list by entering the\n"
+" relevant information into the form below. The name of the mailing list\n"
+" will be used as the primary address for posting messages to the list, "
+"so\n"
+" it should be lowercased. You will not be able to change this once the\n"
+" list is created.\n"
+"\n"
+" <p>You also need to enter the email address of the initial list owner.\n"
+" Once the list is created, the list owner will be given notification, "
+"along\n"
+" with the initial list password. The list owner will then be able to\n"
+" modify the password and add or remove additional list owners.\n"
+"\n"
+" <p>If you want Mailman to automatically generate the initial list admin\n"
+" password, click on `Yes' in the autogenerate field below, and leave the\n"
+" initial list password fields empty.\n"
+"\n"
+" <p>You must have the proper authorization to create new mailing lists.\n"
+" Each site should have a <em>list creator's</em> password, which you can\n"
+" enter in the field at the bottom. Note that the site administrator's\n"
+" password can also be used for authentication.\n"
+" "
+msgstr ""
+"Puede crear una lista de distribución nueva rellenando la\n"
+" información relevante del formulario siguiente. El nombre de la\n"
+" lista se usará como la dirección principal a la hora de mandar\n"
+" mensajes a la lista, de manera que debería estar en minúsculas.\n"
+" No podrá cambiarlo una vez que se cree la lista.\n"
+"\n"
+" <p> También necesita indicar la dirección del propietario de\n"
+" la lista. Una vez que se cree la lista, se le mandará al propietario\n"
+" un mensaje explicatorio en el que se incluye la clave de la lista. A "
+"partir\n"
+" de entonces, el propietario podrá tanto cambiar la clave de la lista\n"
+" como agregar o eliminar propietarios de lista adicionales.\n"
+"\n"
+" <p>Si quiere que Mailman genere automáticamente la clave inicial de la\n"
+" lista, dele con el ratón a `Si' en el campo de autogenerar que se\n"
+" muestra más abajo y deje vacio el campo donde se puede introducir la\n"
+" clave inicial.\n"
+"\n"
+" <p>Para crear listas de distribuciones nuevas hay que tener la\n"
+" autorización adecuada. Cada sitio web debería tener una clave\n"
+" de <em>creadores de listas</em> que se puede usar en el campo del "
+"final.\n"
+" Por último solo reseñar que también se puede usar la\n"
+" clave de administración del servidor.\n"
+" "
+
+#: Mailman/Cgi/create.py:309
+msgid "List Identity"
+msgstr "Identificación de la Lista"
+
+#: Mailman/Cgi/create.py:312
+msgid "Name of list:"
+msgstr "Nombre de la lista:"
+
+#: Mailman/Cgi/create.py:317
+msgid "Initial list owner address:"
+msgstr "Dirección del propietario inicial de la lista:"
+
+#: Mailman/Cgi/create.py:326
+msgid "Auto-generate initial list password?"
+msgstr "¿Generar automáticamente la clave inicial de la lista?"
+
+#: Mailman/Cgi/create.py:333
+msgid "Initial list password:"
+msgstr "Clave inicial de la lista:"
+
+#: Mailman/Cgi/create.py:338
+msgid "Confirm initial password:"
+msgstr "Confirmar la clave inicial:"
+
+#: Mailman/Cgi/create.py:348
+msgid "List Characteristics"
+msgstr "Características de la Lista."
+
+#: Mailman/Cgi/create.py:352
+msgid ""
+"Should new members be quarantined before they\n"
+" are allowed to post unmoderated to this list? Answer <em>Yes</em> to "
+"hold\n"
+" new member postings for moderator approval by default."
+msgstr ""
+"&iquest;Se debe poner a los nuevos miembros en cuarentena antes de que \n"
+" se les permita enviar emnsajes a la lista sin moderar? Responda <em>Sí</"
+"em> para retener\n"
+" los mensajes de nuevos miembros para wue sean aprobados por el "
+"moderador, por defecto."
+
+#: Mailman/Cgi/create.py:383
+msgid ""
+"Initial list of supported languages. <p>Note that if you do not\n"
+" select at least one initial language, the list will use the server\n"
+" default language of %(deflang)s"
+msgstr ""
+"Lista inicial de Idiomas soportados. <p>Dese cuenta de que si no elige al\n"
+" menos un lenguaje inicial, la lista usará %(deflang)s, el\n"
+" idioma por defecto del servidor"
+
+#: Mailman/Cgi/create.py:394
+msgid "Send \"list created\" email to list owner?"
+msgstr ""
+"¿Enviar mensaje de correo indicando la creación de la lista al propietario "
+"de la lista?"
+
+#: Mailman/Cgi/create.py:403
+msgid "List creator's (authentication) password:"
+msgstr "Clave de creador de lista (verificación):"
+
+#: Mailman/Cgi/create.py:408
+msgid "Create List"
+msgstr "Crear una Lista"
+
+#: Mailman/Cgi/create.py:409
+msgid "Clear Form"
+msgstr "Empezar de nuevo"
+
+#: Mailman/Cgi/edithtml.py:43
+msgid "General list information page"
+msgstr "Página de información general de la lista"
+
+#: Mailman/Cgi/edithtml.py:44
+msgid "Subscribe results page"
+msgstr "Página de resultados de suscripción"
+
+#: Mailman/Cgi/edithtml.py:45
+msgid "User specific options page"
+msgstr "Página de opciones específicas del usuario"
+
+#: Mailman/Cgi/edithtml.py:57
+msgid "List name is required."
+msgstr "Nombre de la máquina que prefiere la lista."
+
+#: Mailman/Cgi/edithtml.py:97
+msgid "%(realname)s -- Edit html for %(template_info)s"
+msgstr "%(realname)s -- Editar el código html para %(template_info)s"
+
+#: Mailman/Cgi/edithtml.py:103
+msgid "Edit HTML : Error"
+msgstr "Editar HTML : Error"
+
+#: Mailman/Cgi/edithtml.py:104
+msgid "%(safetemplatename)s: Invalid template"
+msgstr "%(safetemplatename)s: Plantilla inválida"
+
+#: Mailman/Cgi/edithtml.py:109 Mailman/Cgi/edithtml.py:110
+msgid "%(realname)s -- HTML Page Editing"
+msgstr "%(realname)s -- Edición del código HTML de las Páginas"
+
+#: Mailman/Cgi/edithtml.py:111
+msgid "Select page to edit:"
+msgstr "Seleccione la página a editar:"
+
+#: Mailman/Cgi/edithtml.py:137
+msgid "View or edit the list configuration information."
+msgstr "Ver o editar la información de configuración de la lista."
+
+#: Mailman/Cgi/edithtml.py:145
+msgid "When you are done making changes..."
+msgstr "Cuando haya terminado de hacer los cambios..."
+
+#: Mailman/Cgi/edithtml.py:146
+msgid "Submit Changes"
+msgstr "Confirmar los cambios"
+
+#: Mailman/Cgi/edithtml.py:153
+msgid "Can't have empty html page."
+msgstr "No se puede tener una páagina html vacía."
+
+#: Mailman/Cgi/edithtml.py:154
+msgid "HTML Unchanged."
+msgstr "El código HTML no se ha cambiado"
+
+#: Mailman/Cgi/edithtml.py:169
+msgid "HTML successfully updated."
+msgstr "Se ha cambiado el código HTML satisfactoriamente"
+
+#: Mailman/Cgi/listinfo.py:71
+msgid "%(hostname)s Mailing Lists"
+msgstr "Listas de distribución de %(hostname)s"
+
+#: Mailman/Cgi/listinfo.py:103
+msgid ""
+"<p>There currently are no publicly-advertised\n"
+" %(mailmanlink)s mailing lists on %(hostname)s."
+msgstr ""
+"<p>No hay actualmente listas de distribución de %(mailmanlink)s\n"
+" anunciadas públicamente en %(hostname)s. "
+
+#: Mailman/Cgi/listinfo.py:107
+msgid ""
+"<p>Below is a listing of all the public mailing lists on\n"
+" %(hostname)s. Click on a list name to get more information "
+"about\n"
+" the list, or to subscribe, unsubscribe, and change the "
+"preferences\n"
+" on your subscription."
+msgstr ""
+"<p>A continuación se muestran todas las listas de \n"
+" distribución públicas de %(hostname)s. Déle \n"
+" con el ratón al nombre de una determinada lista para obtener \n"
+" más \n"
+" información sobre dicha lista, para \n"
+" subscribirse a ella, borrarse, \n"
+" o cambiar las preferencias de su \n"
+" subscripción."
+
+#: Mailman/Cgi/listinfo.py:113
+msgid "right"
+msgstr "correcto"
+
+#: Mailman/Cgi/listinfo.py:116
+msgid ""
+" To visit the general information page for an unadvertised list,\n"
+" open a URL similar to this one, but with a '/' and the %(adj)s\n"
+" list name appended.\n"
+" <p>List administrators, you can visit "
+msgstr ""
+" Para visitar la página de una lista que no\n"
+" se anuncia, abra una URL parecida a ésta, pero con un\n"
+" \"/\" seguido por el nombre %(adj)s de la lista.\n"
+" <p>Los administradores de listas pueden visitar "
+
+#: Mailman/Cgi/listinfo.py:121
+msgid "the list admin overview page"
+msgstr "la página general de administración de listas"
+
+#: Mailman/Cgi/listinfo.py:122
+msgid ""
+" to find the management interface for your list.\n"
+" <p>Send questions or comments to "
+msgstr ""
+"para acceder al interfaz de gestión de su lista.\n"
+" <p>Envíe sus preguntas o comentarios a "
+
+#: Mailman/Cgi/listinfo.py:187
+msgid "Edit Options"
+msgstr "Editar opciones"
+
+#: Mailman/Cgi/listinfo.py:194 Mailman/Cgi/options.py:767
+#: Mailman/Cgi/roster.py:111
+msgid "View this page in"
+msgstr "Ver esta página en "
+
+#: Mailman/Cgi/options.py:51 Mailman/Cgi/options.py:68
+msgid "CGI script error"
+msgstr "Error del guión CGI"
+
+#: Mailman/Cgi/options.py:54
+msgid "Invalid options to CGI script."
+msgstr "Le ha pasado argumentos incorrectos al programa CGI"
+
+#: Mailman/Cgi/options.py:96
+msgid "No address given"
+msgstr "No se ha indicado una dirección"
+
+#: Mailman/Cgi/options.py:108 Mailman/Cgi/options.py:155
+#: Mailman/Cgi/options.py:177
+msgid "No such member: %(safeuser)s."
+msgstr "No existe tal subscriptor: %(safeuser)s."
+
+#: Mailman/Cgi/options.py:150 Mailman/Cgi/options.py:160
+msgid "The confirmation email has been sent."
+msgstr "Se ha enviado el mensaje de confirmación."
+
+#: Mailman/Cgi/options.py:171 Mailman/Cgi/options.py:183
+#: Mailman/Cgi/options.py:226
+msgid "A reminder of your password has been emailed to you."
+msgstr ""
+"Se le ha mandado un recordatorio de su clave por correo electrónico.<p>"
+
+#: Mailman/Cgi/options.py:200
+msgid "Authentication failed."
+msgstr "La autentificación ha sido infructuosa."
+
+#: Mailman/Cgi/options.py:232
+msgid "List subscriptions for %(user)s on %(hostname)s"
+msgstr "Subscripciones de %(user)s en %(hostname)s"
+
+#: Mailman/Cgi/options.py:235
+msgid ""
+"Click on a link to visit your options page for the\n"
+" requested mailing list."
+msgstr ""
+"Déle con el ratón a un enlace para visitar su página\n"
+" de opciones en la lista de distribución solicitada."
+
+#: Mailman/Cgi/options.py:284
+msgid "Addresses did not match!"
+msgstr "Las direcciones no coinciden!"
+
+#: Mailman/Cgi/options.py:289
+msgid "You are already using that email address"
+msgstr "Ya estás usando esa dirección de correo electrónico"
+
+#: Mailman/Cgi/options.py:301
+msgid ""
+"The new address you requested %(newaddr)s is already a member of the\n"
+"%(listname)s mailing list, however you have also requested a global change "
+"of\n"
+"address. Upon confirmation, any other mailing list containing the address\n"
+"%(user)s will be changed. "
+msgstr ""
+"La direccion nueva %(newaddr)s que ha solicitado ya está subscrita en\n"
+"la lista de distribución %(listname), sin embargo también ha pedido\n"
+"un cambio de dirección global. Una vez que confirme, también se\n"
+"cambiará cualquier otra lista de distribución que contenga la dirección\n"
+"%(user)s. "
+
+#: Mailman/Cgi/options.py:310
+msgid "The new address is already a member: %(newaddr)s"
+msgstr "La dirección nueva ya está dada de alta: %(newaddr)s"
+
+#: Mailman/Cgi/options.py:316
+msgid "Addresses may not be blank"
+msgstr "Las direcciones no deberín estar en blanco"
+
+#: Mailman/Cgi/options.py:328
+msgid "A confirmation message has been sent to %(newaddr)s. "
+msgstr "Se le ha enviado un mensaje de confirmación a %(newaddr)s"
+
+#: Mailman/Cgi/options.py:337
+msgid "Bad email address provided"
+msgstr "Ha proporcionado una dirección de correo incorrecta"
+
+#: Mailman/Cgi/options.py:339
+msgid "Illegal email address provided"
+msgstr "Se ha proporcionado una dirección de correo ilegal"
+
+#: Mailman/Cgi/options.py:341
+msgid "%(newaddr)s is already a member of the list."
+msgstr "%(newaddr)s ya está subscrito a la lista."
+
+#: Mailman/Cgi/options.py:350
+msgid "Member name successfully changed. "
+msgstr ""
+"Se ha cambiado el nombre y apellidos del subscriptor satisfactoriamente."
+
+#: Mailman/Cgi/options.py:361
+msgid "Passwords may not be blank"
+msgstr "Las claves nodeberín estar en blanco"
+
+#: Mailman/Cgi/options.py:366
+msgid "Passwords did not match!"
+msgstr "Las claves no coinciden!"
+
+#: Mailman/Cgi/options.py:381 Mailman/Commands/cmd_password.py:79
+#: Mailman/Commands/cmd_password.py:105
+msgid "Password successfully changed."
+msgstr "Se ha cambiado la clave satisfactoriamente."
+
+#: Mailman/Cgi/options.py:390
+msgid ""
+"You must confirm your unsubscription request by turning\n"
+" on the checkbox below the <em>Unsubscribe</em> button. You\n"
+" have not been unsubscribed!"
+msgstr ""
+"Tiene que confirmar su solicitud de baja activando la casilla de\n"
+" verificación que está debajo del botón\n"
+" <em>Desubscribir</em>. No ha sido dado de baja!."
+
+#: Mailman/Cgi/options.py:422
+msgid "Unsubscription results"
+msgstr "Resultados de la desubscripción"
+
+#: Mailman/Cgi/options.py:426
+msgid ""
+"Your unsubscription request has been received and\n"
+" forwarded on to the list moderators for approval. You will\n"
+" receive notification once the list moderators have made their\n"
+" decision."
+msgstr ""
+"Su solicitud de baja se ha recibido y mandada a los moderadores de las "
+"listas\n"
+" para su aprobación. Recibirá una notificació\n"
+" una vez que el moderador haya tomado una decisión"
+
+#: Mailman/Cgi/options.py:431
+msgid ""
+"You have been successfully unsubscribed from the\n"
+" mailing list %(fqdn_listname)s. If you were receiving digest\n"
+" deliveries you may get one more digest. If you have any "
+"questions\n"
+" about your unsubscription, please contact the list owners at\n"
+" %(owneraddr)s."
+msgstr ""
+"Se ha dado de baja satisfactoriamente de la lista de distribución\n"
+" %(fqdn_listname)s. Si estuviera recibiendo digests podría\n"
+" recibir un digest más. Si tiene alguna pregunta sobre su\n"
+" baja, por favor póngase en contacto con los propietarios de\n"
+" la lista en %(owneraddr)s."
+
+#: Mailman/Cgi/options.py:582
+msgid ""
+"The list administrator has disabled digest delivery for\n"
+" this list, so your delivery option has not been set. However "
+"your\n"
+" other options have been set successfully."
+msgstr ""
+"El administrador de la lista ha inhabilitado las recopilaciones para\n"
+"esta lista, sin embargo el resto de sus opciones han sido definidas con\n"
+"éxito."
+
+#: Mailman/Cgi/options.py:586
+msgid ""
+"The list administrator has disabled non-digest delivery\n"
+" for this list, so your delivery option has not been set. "
+"However\n"
+" your other options have been set successfully."
+msgstr ""
+"El administrador de la lista de distribución ha inhabilitado \n"
+"la entrega de los mensajes a medida que van llegando, por lo que \n"
+"la opción de entrega no se ha activado. Sin embargo, el resto \n"
+"de sus opciones se ha cambiado correctamente."
+
+#: Mailman/Cgi/options.py:590
+msgid "You have successfully set your options."
+msgstr "Ha definido sus opciones con éxito."
+
+#: Mailman/Cgi/options.py:593
+msgid "You may get one last digest."
+msgstr "Puede que obtenga una última recopilación."
+
+#: Mailman/Cgi/options.py:662
+msgid "<em>Yes, I really want to unsubscribe</em>"
+msgstr "<em>Si, realmente quiero darme de baja</em>"
+
+#: Mailman/Cgi/options.py:666
+msgid "Change My Password"
+msgstr "Cambiar mi contraseña"
+
+#: Mailman/Cgi/options.py:669
+msgid "List my other subscriptions"
+msgstr "Listar mis otras suscripciones"
+
+#: Mailman/Cgi/options.py:675
+msgid "Email My Password To Me"
+msgstr "Enviarme mi contraseña por email"
+
+#: Mailman/Cgi/options.py:677
+msgid "password"
+msgstr "contraseña"
+
+#: Mailman/Cgi/options.py:679
+msgid "Log out"
+msgstr "Salir"
+
+#: Mailman/Cgi/options.py:681
+msgid "Submit My Changes"
+msgstr "Confirmar mis cambios"
+
+#: Mailman/Cgi/options.py:693
+msgid "days"
+msgstr "días"
+
+#: Mailman/Cgi/options.py:695
+msgid "day"
+msgstr "día"
+
+#: Mailman/Cgi/options.py:696
+msgid "%(days)d %(units)s"
+msgstr "%(days)d %(units)s"
+
+#: Mailman/Cgi/options.py:702
+msgid "Change My Address and Name"
+msgstr "Cambar mi dirección y mi nombre"
+
+#: Mailman/Cgi/options.py:726
+msgid "<em>No topics defined</em>"
+msgstr "<em>No se han definido temas</em>"
+
+#: Mailman/Cgi/options.py:734
+msgid ""
+"\n"
+"You are subscribed to this list with the case-preserved address\n"
+"<em>%(cpuser)s</em>."
+msgstr ""
+"\n"
+"Está subscrito a la lista con la dirección <em>%s</em> respetando mayúsculas "
+"y minúsculas."
+
+#: Mailman/Cgi/options.py:748
+msgid "%(realname)s list: member options login page"
+msgstr "Lista %(realname)s: página de entrada de preferencias de subscriptor"
+
+#: Mailman/Cgi/options.py:749
+msgid "email address and "
+msgstr "dirección de correo electrónico y su "
+
+#: Mailman/Cgi/options.py:751
+msgid "%(realname)s list: member options for user %(user)s"
+msgstr "Lista %(realname)s: Opciones de subscriptor para %(user)s"
+
+#: Mailman/Cgi/options.py:777
+msgid ""
+"In order to change your membership option, you must\n"
+" first log in by giving your %(extra)smembership password in the section\n"
+" below. If you don't remember your membership password, you can have it\n"
+" emailed to you by clicking on the button below. If you just want to\n"
+" unsubscribe from this list, click on the <em>Unsubscribe</em> button and "
+"a\n"
+" confirmation message will be sent to you.\n"
+"\n"
+" <p><strong><em>Important:</em></strong> From this point on, you must "
+"have\n"
+" cookies enabled in your browser, otherwise none of your changes will "
+"take\n"
+" effect.\n"
+" "
+msgstr ""
+"Para poder cambiar sus opciones de subscripción, primero tiene que\n"
+" entrar suministrando su %(extra)s clave de subscripción en la sección\n"
+" inferior. Si no recuerda su clave de subscripción, puede hacer que\n"
+" se le envíe por correo electrónico dándole con el\n"
+" ratón al botón que está más abajo. Si solo\n"
+" quiere anular su subscripción de esta lista, déle con el\n"
+" ratón al botón <em>Desubscribir</em>, se le mandará\n"
+" um mensaje de confirmación.\n"
+"\n"
+" <p><strong><em>Importante:</em></strong> A partir de este instante, "
+"debe\n"
+" tener habilitado en su navegador los cookies, de otra manera ninguno de\n"
+" sus cambios llegarán a surtir efecto.\n"
+"\n"
+" Las sesiones con cookies se usan en la interfaz de derechos de\n"
+" subscripción de Mailman, de manera que no necesita estar\n"
+" continuamente autentificándose cuando realice cualquier\n"
+" operación. La cookie caducará automáticamente\n"
+" cuando salga del navegador o cuando lo indique explícitamente al\n"
+" pulsar el enlace <em>Desconexión</em> (que verá una vez\n"
+" entre satisfactoriamente)."
+
+# In this entry insert a space at the end of string, it will be stripped.
+#: Mailman/Cgi/options.py:791
+msgid "Email address:"
+msgstr "Dirección de correo-e: "
+
+#: Mailman/Cgi/options.py:795
+msgid "Password:"
+msgstr "Clave:"
+
+#: Mailman/Cgi/options.py:797
+msgid "Log in"
+msgstr "Entrar"
+
+#: Mailman/Cgi/options.py:805
+msgid ""
+"By clicking on the <em>Unsubscribe</em> button, a\n"
+" confirmation message will be emailed to you. This message will have a\n"
+" link that you should click on to complete the removal process (you can\n"
+" also confirm by email; see the instructions in the confirmation\n"
+" message)."
+msgstr ""
+"Dándole con el ratón al botón <em>Desubscribir</em>,\n"
+" hará que se le mande un mensaje de confirmación. Este\n"
+" mensaje contendrá un enlace que debería pinchar para\n"
+" completar el proceso de desubscripción (también puede\n"
+" realizar la confirmación por correo electrónico, lea\n"
+" las instrucciones en el mensaje de confirmación)."
+
+#: Mailman/Cgi/options.py:813
+msgid "Password reminder"
+msgstr "Recordatorio de la clave"
+
+#: Mailman/Cgi/options.py:817
+msgid ""
+"By clicking on the <em>Remind</em> button, your\n"
+" password will be emailed to you."
+msgstr ""
+"Al pulsar con el ratón el botón <em>Recordar</em>,\n"
+" se le mandará la clave por correo electrónico."
+
+#: Mailman/Cgi/options.py:820
+msgid "Remind"
+msgstr "Recordar"
+
+#: Mailman/Cgi/options.py:920
+msgid "<missing>"
+msgstr "<perdido>"
+
+#: Mailman/Cgi/options.py:931
+msgid "Requested topic is not valid: %(topicname)s"
+msgstr "El tema solicitado no es válido: %(topicname)s"
+
+#: Mailman/Cgi/options.py:936
+msgid "Topic filter details"
+msgstr "Detalles del filtrado de tópicos"
+
+#: Mailman/Cgi/options.py:939
+msgid "Name:"
+msgstr "Nombre:"
+
+#: Mailman/Cgi/options.py:941
+msgid "Pattern (as regexp):"
+msgstr "Patrón (como una expresión regular):"
+
+#: Mailman/Cgi/private.py:61
+msgid "Private Archive Error"
+msgstr "Error en el Archivo Privado"
+
+#: Mailman/Cgi/private.py:62
+msgid "You must specify a list."
+msgstr "Debe especificar una lista."
+
+#: Mailman/Cgi/private.py:99
+msgid "Private Archive Error - %(msg)s"
+msgstr "Error en el Archivo Privado - %(msg)s"
+
+#: Mailman/Cgi/private.py:154
+msgid "Private archive file not found"
+msgstr "Fichero de archivo privado no encontrado"
+
+#: Mailman/Cgi/rmlist.py:81
+msgid "You're being a sneaky list owner!"
+msgstr "Estás siendo un propietario de lista escurridizo!"
+
+#: Mailman/Cgi/rmlist.py:119
+msgid "You are not authorized to delete this mailing list"
+msgstr "No está autorizado para borrar esta lista"
+
+#: Mailman/Cgi/rmlist.py:160
+msgid "Mailing list deletion results"
+msgstr "Resultados del borrado de listas de distribución"
+
+#: Mailman/Cgi/rmlist.py:167
+msgid ""
+"You have successfully deleted the mailing list\n"
+" <b>%(listname)s</b>."
+msgstr ""
+"Ha borrado satisfactoriamente la lista de distribución\n"
+" <b>%(listname)s</b>."
+
+#: Mailman/Cgi/rmlist.py:171
+msgid ""
+"There were some problems deleting the mailing list\n"
+" <b>%(listname)s</b>. Contact your site administrator at %(sitelist)"
+"s\n"
+" for details."
+msgstr ""
+"Hay algún problema a la hora de borrar la lista de distribución\n"
+" <b>%(listname)s</b>. Contacte con su administrador de listas en %(sitelist)s\n"
+" para mayor detalle."
+
+#: Mailman/Cgi/rmlist.py:188
+msgid "Permanently remove mailing list <em>%(realname)s</em>"
+msgstr "Borrar permanentemente la lista de distribución <em>%(realname)s</em>"
+
+#: Mailman/Cgi/rmlist.py:202
+msgid ""
+"This page allows you as the list owner, to permanent\n"
+" remove this mailing list from the system. <strong>This action is not\n"
+" undoable</strong> so you should undertake it only if you are absolutely\n"
+" sure this mailing list has served its purpose and is no longer "
+"necessary.\n"
+"\n"
+" <p>Note that no warning will be sent to your list members and after "
+"this\n"
+" action, any subsequent messages sent to the mailing list, or any of its\n"
+" administrative addreses will bounce.\n"
+"\n"
+" <p>You also have the option of removing the archives for this mailing "
+"list\n"
+" at this time. It is almost always recommended that you do\n"
+" <strong>not</strong> remove the archives, since they serve as the\n"
+" historical record of your mailing list.\n"
+"\n"
+" <p>For your safety, you will be asked to reconfirm the list password.\n"
+" "
+msgstr ""
+"Esta página le permite como propietario de la lista, borrar\n"
+" permanentemente esta lista del sistema. <strong>Esta acción\n"
+" es irreversible</strong> por lo que solo debería proceder si\n"
+" está absolutamente seguro de que esta lista ha servido a sus\n"
+" propósitos y de que no la necesita más.\n"
+"\n"
+" <p>Observe de que no se enviará ningún aviso a los\n"
+" subscriptores de su lista y que cualquier mensaje posterior enviado\n"
+" a la lista o a cualquiera de sus direcciones administrativas\n"
+" rebotará.\n"
+"\n"
+" <p>También tiene la posibilidad de borrar el archivo de esta\n"
+" lista de distribución en este preciso instante. Casi siempre\n"
+" <strong>nunca</strong> se recomienda que se haga, porque sirve como\n"
+" un registro histórico de la lista de distribución.\n"
+"\n"
+" <p>Por cuestiones de seguridad, se le preguntará que verifique\n"
+" la clave de la lista.\n"
+" "
+
+#: Mailman/Cgi/rmlist.py:223
+msgid "List password:"
+msgstr "Clave de la lista:"
+
+#: Mailman/Cgi/rmlist.py:227
+msgid "Also delete archives?"
+msgstr "¿Borrar también los archivos?"
+
+#: Mailman/Cgi/rmlist.py:235
+msgid "<b>Cancel</b> and return to list administration"
+msgstr "<b>Cancelar</b> y volver a la administración de las listas"
+
+#: Mailman/Cgi/rmlist.py:238
+msgid "Delete this list"
+msgstr "Borrar esta lista"
+
+#: Mailman/Cgi/roster.py:48 Mailman/Cgi/subscribe.py:50
+msgid "Invalid options to CGI script"
+msgstr "Argumentos incorrectos al guión CGI"
+
+#: Mailman/Cgi/roster.py:99
+msgid "%(realname)s roster authentication failed."
+msgstr ""
+"La autentificación a la lista de subscriptores de %(realname)s ha sido "
+"infructuosa"
+
+#: Mailman/Cgi/roster.py:127 Mailman/Cgi/roster.py:128
+#: Mailman/Cgi/subscribe.py:49 Mailman/Cgi/subscribe.py:60
+msgid "Error"
+msgstr "Error"
+
+#: Mailman/Cgi/subscribe.py:109
+msgid "You must supply a valid email address."
+msgstr "Debe proporcionar una dirección de correo electrónico válida."
+
+#: Mailman/Cgi/subscribe.py:122
+msgid "You may not subscribe a list to itself!"
+msgstr "¡No debe suscribir una lista a sí misma!"
+
+#: Mailman/Cgi/subscribe.py:131
+msgid "If you supply a password, you must confirm it."
+msgstr "Si suministra una clave, tiene que confirmarla."
+
+#: Mailman/Cgi/subscribe.py:133
+msgid "Your passwords did not match."
+msgstr "Sus claves no coinciden."
+
+#: Mailman/Cgi/subscribe.py:167
+msgid ""
+"Your subscription request has been received, and will soon be acted upon.\n"
+"Depending on the configuration of this mailing list, your subscription "
+"request\n"
+"may have to be first confirmed by you via email, or approved by the list\n"
+"moderator. If confirmation is required, you will soon get a confirmation\n"
+"email which contains further instructions."
+msgstr ""
+"Su solicitud de subscripción se ha recibido y pronto será\n"
+"atendida. Dependiendo de la configuración de esta lista de\n"
+"distribución, su solicitud de subscripción tendría\n"
+"primero que ser confirmada por usted o aprobada por el moderador de la\n"
+"lista. Si hace falta confirmación, pronto recibirá un correo\n"
+"electrónico de cofirmación con las instrucciones a seguir."
+
+#: Mailman/Cgi/subscribe.py:181
+msgid ""
+"The email address you supplied is banned from this\n"
+" mailing list. If you think this restriction is erroneous, please\n"
+" contact the list owners at %(listowner)s."
+msgstr ""
+"La dirección de correo electrónico que está suministrando se ha vetado\n"
+"en esta lista de distribución. Si piensa que esta restricción está\n"
+"equivocada, por favor, póngase en contacto con el propietario de la\n"
+"lista en la dirección %(listowner)s."
+
+#: Mailman/Cgi/subscribe.py:185
+msgid ""
+"The email address you supplied is not valid. (E.g. it must contain an\n"
+"`@'.)"
+msgstr ""
+"La dirección de correo electrónico que ha suministrado no es \n"
+"válida. (Tiene que tener una `@'.)"
+
+#: Mailman/Cgi/subscribe.py:189
+msgid ""
+"Your subscription is not allowed because the email address you gave is\n"
+"insecure."
+msgstr ""
+"No se ha permitido su suscripción porque la dirección de correo electrónico\n"
+"que ha dado es insegura."
+
+#: Mailman/Cgi/subscribe.py:197
+msgid ""
+"Confirmation from your email address is required, to prevent anyone from\n"
+"subscribing you without permission. Instructions are being sent to you at\n"
+"%(email)s. Please note your subscription will not start until you confirm\n"
+"your subscription."
+msgstr ""
+"Se requiere un mensaje de confirmación desde tu dirección de correo "
+"electrónico,\n"
+"para evitar que otros te suscriban sin tu consentimiento. Se han enviado\n"
+"instrucciones a %(email)s. Observe que alta en la lista no se completará "
+"hasta que\n"
+"no confirmes tu subscripción"
+
+#: Mailman/Cgi/subscribe.py:209
+msgid ""
+"Your subscription request was deferred because %(x)s. Your request has "
+"been\n"
+"forwarded to the list moderator. You will receive email informing you of "
+"the\n"
+"moderator's decision when they get to your request."
+msgstr ""
+"La suscripción se ha <em>retenido</em> porque %(x)s. Su petición debe ser "
+"aprobada\n"
+"por el administrador de la lista. Recibirá confirmación por email de la "
+"decisión\n"
+"del moderador cuando procese su petición."
+
+#: Mailman/Cgi/subscribe.py:216 Mailman/Commands/cmd_confirm.py:60
+msgid "You are already subscribed."
+msgstr "Ya está subscrito."
+
+#: Mailman/Cgi/subscribe.py:230
+msgid "Mailman privacy alert"
+msgstr "Alerta de privacidad de Mailman"
+
+#: Mailman/Cgi/subscribe.py:231
+msgid ""
+"An attempt was made to subscribe your address to the mailing list\n"
+"%(listaddr)s. You are already subscribed to this mailing list.\n"
+"\n"
+"Note that the list membership is not public, so it is possible that a bad\n"
+"person was trying to probe the list for its membership. This would be a\n"
+"privacy violation if we let them do this, but we didn't.\n"
+"\n"
+"If you submitted the subscription request and forgot that you were already\n"
+"subscribed to the list, then you can ignore this message. If you suspect "
+"that\n"
+"an attempt is being made to covertly discover whether you are a member of "
+"this\n"
+"list, and you are worried about your privacy, then feel free to send a "
+"message\n"
+"to the list administrator at %(listowner)s.\n"
+msgstr ""
+"Se ha intentado subscribir su dirección de correo electrónico\n"
+"a la lista de distribución %(listaddr)s. Usted ya está\n"
+"subscrito a esta lista de distribución.\n"
+"\n"
+"Dese cuenta de que la subscripción a la lista de distribución\n"
+"no es libre, por lo tanto, puede ser que alguien con malas intenciones\n"
+"esté probando la lista para ver si puede descubrir a sus subscriptores.\n"
+"Esto puede llegar a resultar en una violación de la privacidad si lo\n"
+"dejamos hacer esto, pero resulta que no es así.\n"
+"\n"
+"Si realmente mandó la solicitud de subscripción y olvidó\n"
+"que ya estaba subscrito a la lista, entonces puede olvidar este mensaje. Si\n"
+"sospecha que alguien realmente ha tratado de descubrir disimuladamente si\n"
+"usted es un subscriptor de esta lista, y le preocupa su privacidad, "
+"entonces\n"
+"si lo considera oportuno mande un mensaje al administrador de la lista a\n"
+"%(listowner)s.\n"
+
+#: Mailman/Cgi/subscribe.py:250
+msgid "This list does not support digest delivery."
+msgstr "Esta lista no soporta entregas en recopilaciones (digest)"
+
+#: Mailman/Cgi/subscribe.py:252
+msgid "This list only supports digest delivery."
+msgstr ""
+"Esta lista solo admite distribuir los mensajes en \n"
+"recopilaciones (digest)"
+
+#: Mailman/Cgi/subscribe.py:259
+msgid "You have been successfully subscribed to the %(realname)s mailing list."
+msgstr ""
+"Se ha subscrito satisfactoriamente a la lista de distribución\n"
+"%(realname)s."
+
+#: Mailman/Commands/cmd_confirm.py:17
+msgid ""
+"\n"
+" confirm <confirmation-string>\n"
+" Confirm an action. The confirmation-string is required and should "
+"be\n"
+" supplied with in mailback confirmation notice.\n"
+msgstr ""
+"\n"
+" confirm <confirmation-string>\n"
+" Confirmar una acción. La cadena de confirmación-es obligartoria y "
+"se debe\n"
+" enviar en el mensaje de respuesta que confirma la acción .\n"
+
+#: Mailman/Commands/cmd_confirm.py:40 Mailman/Commands/cmd_lists.py:40
+#: Mailman/Commands/cmd_set.py:133 Mailman/Commands/cmd_subscribe.py:69
+#: Mailman/Commands/cmd_unsubscribe.py:52 Mailman/Commands/cmd_who.py:65
+msgid "Usage:"
+msgstr "Sintaxis:"
+
+#: Mailman/Commands/cmd_confirm.py:49
+msgid ""
+"Invalid confirmation string. Note that confirmation strings expire\n"
+"approximately %(days)s days after the initial subscription request. If "
+"your\n"
+"confirmation has expired, please try to re-submit your original request or\n"
+"message."
+msgstr ""
+"Cadena de confirmación incorrecta!\n"
+"Resulta que las cadenas expiran aproximadamente %(days)s días\n"
+"después de la solicitud inicial. Si su periodo de confirmación ha expirado\n"
+"por favor, trate de subscribirse de nuevo."
+
+#: Mailman/Commands/cmd_confirm.py:55
+msgid "Your request has been forwarded to the list moderator for approval."
+msgstr ""
+"Su solicitud ha sido dirijida al moderador de la lista para que la apruebe."
+
+#: Mailman/Commands/cmd_confirm.py:63
+msgid ""
+"You are not current a member. Have you already unsubscribed or changed\n"
+"your email address?"
+msgstr ""
+"No es usted un subscriptor. ¿Ha cancelado su suscripción o modificado la \n"
+"dirección de envío?"
+
+#: Mailman/Commands/cmd_confirm.py:73
+msgid "Confirmation succeeded"
+msgstr "Confirmación realizada"
+
+#: Mailman/Commands/cmd_echo.py:17
+msgid ""
+"\n"
+" echo [args]\n"
+" Simply echo an acknowledgement. Args are echoed back unchanged.\n"
+msgstr ""
+"\n"
+" echo [argumentos]\n"
+" Simplemente devuelve un acuse de recibo. Los argumentos se "
+"devuelven sin modificar.\n"
+
+#: Mailman/Commands/cmd_end.py:17
+msgid ""
+"\n"
+" end\n"
+" Stop processing commands. Use this if your mail program "
+"automatically\n"
+" adds a signature file.\n"
+msgstr ""
+"\n"
+" end\n"
+" Termina el proceso de comandos. Utilice este comando si su programa "
+"de correo añade automáticamente\n"
+" un fichero de firma.\n"
+
+#: Mailman/Commands/cmd_help.py:17
+msgid ""
+"\n"
+" help\n"
+" Print this help message.\n"
+msgstr ""
+"\n"
+" help\n"
+" Envía este mensaje de ayuda.\n"
+
+#: Mailman/Commands/cmd_help.py:47
+msgid "You can access your personal options via the following url:"
+msgstr "Puede acceder a sus preferencias personales a traves de la siguiente URL:"
+
+#: Mailman/Commands/cmd_info.py:17
+msgid ""
+"\n"
+" info\n"
+" Get information about this mailing list.\n"
+msgstr ""
+"\n"
+" info\n"
+" Obtiene información acerca de esta lista.\n"
+
+#: Mailman/Commands/cmd_info.py:39 Mailman/Commands/cmd_lists.py:62
+msgid "n/a"
+msgstr "n/d"
+
+#: Mailman/Commands/cmd_info.py:44
+msgid "List name: %(listname)s"
+msgstr "Nombre de la lista: %(listname)s"
+
+#: Mailman/Commands/cmd_info.py:45
+msgid "Description: %(description)s"
+msgstr "Descripción: %(description)s"
+
+#: Mailman/Commands/cmd_info.py:46
+msgid "Postings to: %(postaddr)s"
+msgstr "Enviar los mensajes a: %(postaddr)s"
+
+#: Mailman/Commands/cmd_info.py:47
+msgid "List Helpbot: %(requestaddr)s"
+msgstr "Robot de ayuda de la lista: %(requestaddr)s"
+
+#: Mailman/Commands/cmd_info.py:48
+msgid "List Owners: %(owneraddr)s"
+msgstr "Propietarios: %(owneraddr)s"
+
+#: Mailman/Commands/cmd_info.py:49
+msgid "More information: %(listurl)s"
+msgstr "Más información en: %(listurl)s"
+
+#: Mailman/Commands/cmd_join.py:17
+msgid "The `join' command is synonymous with `subscribe'.\n"
+msgstr "El comando `join' es un sinónimo de `subscribe'.\n"
+
+#: Mailman/Commands/cmd_leave.py:17
+msgid "The `leave' command is synonymous with `unsubscribe'.\n"
+msgstr "El comando `leave' es un sinónimo de `unsubscribe'.\n"
+
+#: Mailman/Commands/cmd_lists.py:17
+msgid ""
+"\n"
+" lists\n"
+" See a list of the public mailing lists on this GNU Mailman server.\n"
+msgstr ""
+"\n"
+" lists\n"
+" Ver un listado de las listas de correo públicas ofertadas en este "
+"servidor GNU Mailman.\n"
+
+#: Mailman/Commands/cmd_lists.py:44
+msgid "Public mailing lists at %(hostname)s:"
+msgstr "Listas de distribución públicas gestionadas por mailman@%(hostname)s"
+
+#: Mailman/Commands/cmd_lists.py:66
+msgid "%(i)3d. List name: %(realname)s"
+msgstr "%(i)3d. Nombre de la lista: %(realname)s"
+
+#: Mailman/Commands/cmd_lists.py:67
+msgid " Description: %(description)s"
+msgstr " Descripción: %(description)s"
+
+#: Mailman/Commands/cmd_lists.py:68
+msgid " Requests to: %(requestaddr)s"
+msgstr " Enviar solicitudes a: %(requestaddr)s"
+
+#: Mailman/Commands/cmd_password.py:17
+msgid ""
+"\n"
+" password [<oldpassword> <newpassword>] [address=<address>]\n"
+" Retrieve or change your password. With no arguments, this returns\n"
+" your current password. With arguments <oldpassword> and "
+"<newpassword>\n"
+" you can change your password.\n"
+"\n"
+" If you're posting from an address other than your membership "
+"address,\n"
+" specify your membership address with `address=<address>' (no "
+"brackets\n"
+" around the email address, and no quotes!). Note that in this case "
+"the\n"
+" response is always sent to the subscribed address.\n"
+msgstr ""
+"\n"
+" password [<clave antigua> <nueva clave>] [address=<adirección>]\n"
+" Obtiene o cambia su clave. Si se utiliza sin argumentos, este "
+"comando le envía\n"
+" su clave actual. Si se utiliza enviando <clave antigua> y <nueva "
+"clave>\n"
+" puede cambiar su clave.\n"
+"\n"
+" Si envía usted el mensaje desde una dirección distinta a aquella con "
+"la que está suscrito a la lista\n"
+" indique dicha dirección con `address=<dirección>' (¡no utilice "
+"ángulos (<>)\n"
+" a los lados de la dirección, ni comillas!). Tenga en cuenta que, en "
+"este caso,\n"
+" la respuesta siempre se enviará a la dirección suscrita.\n"
+
+#: Mailman/Commands/cmd_password.py:51 Mailman/Commands/cmd_password.py:64
+msgid "Your password is: %(password)s"
+msgstr "Clave nueva de %(listname)s: %(notifypassword)s"
+
+#: Mailman/Commands/cmd_password.py:55 Mailman/Commands/cmd_password.py:68
+#: Mailman/Commands/cmd_password.py:91 Mailman/Commands/cmd_password.py:117
+#: Mailman/Commands/cmd_set.py:149 Mailman/Commands/cmd_set.py:219
+msgid "You are not a member of the %(listname)s mailing list"
+msgstr "Se ha dado de baja de la lista de distribución %(realname)s"
+
+#: Mailman/Commands/cmd_password.py:81 Mailman/Commands/cmd_password.py:107
+msgid ""
+"You did not give the correct old password, so your password has not been\n"
+"changed. Use the no argument version of the password command to retrieve "
+"your\n"
+"current password, then try again."
+msgstr ""
+"Usted no ha indicado la clave antigua correcta, por tanto, su clave ni se "
+"ha\n"
+"changed. Use the no argument version of the password command to retrieve "
+"your\n"
+"cambiado. Utilize el comando 'password' sin argumentos para que se le envíe "
+"su\n"
+"clave actual y, cuando la reciba, inténtelo de nuevo."
+
+#: Mailman/Commands/cmd_password.py:85 Mailman/Commands/cmd_password.py:111
+msgid ""
+"\n"
+"Usage:"
+msgstr ""
+"\n"
+"Sintaxis:"
+
+#: Mailman/Commands/cmd_remove.py:17
+msgid "The `remove' command is synonymous with `unsubscribe'.\n"
+msgstr "El comando `remove' es sinónimo de `unsubscribe'.\n"
+
+#: Mailman/Commands/cmd_set.py:26
+msgid ""
+"\n"
+" set ...\n"
+" Set or view your membership options.\n"
+"\n"
+" Use `set help' (without the quotes) to get a more detailed list of "
+"the\n"
+" options you can change.\n"
+"\n"
+" Use `set show' (without the quotes) to view your current option\n"
+" settings.\n"
+msgstr ""
+"\n"
+" set ...\n"
+" Cambia o muestra las opciones de su suscripción.\n"
+"\n"
+" Utilice `set help' (sin las comillas) para obtener una lista "
+"detallada de las\n"
+" opciones que puede cambiar.\n"
+"\n"
+" Utilice `set show' (sin las comillas) para ver los valores actuales "
+"de sus\n"
+" opciones.\n"
+
+#: Mailman/Commands/cmd_set.py:37
+msgid ""
+"\n"
+" set help\n"
+" Show this detailed help.\n"
+"\n"
+" set show [address=<address>]\n"
+" View your current option settings. If you're posting from an "
+"address\n"
+" other than your membership address, specify your membership address\n"
+" with `address=<address>' (no brackets around the email address, and "
+"no\n"
+" quotes!).\n"
+"\n"
+" set authenticate <password> [address=<address>]\n"
+" To set any of your options, you must include this command first, "
+"along\n"
+" with your membership password. If you're posting from an address\n"
+" other than your membership address, specify your membership address\n"
+" with `address=<address>' (no brackets around the email address, and "
+"no\n"
+" quotes!).\n"
+"\n"
+" set ack on\n"
+" set ack off\n"
+" When the `ack' option is turned on, you will receive an\n"
+" acknowledgement message whenever you post a message to the list.\n"
+"\n"
+" set digest plain\n"
+" set digest mime\n"
+" set digest off\n"
+" When the `digest' option is turned off, you will receive postings\n"
+" immediately when they are posted. Use `set digest plain' if "
+"instead\n"
+" you want to receive postings bundled into a plain text digest\n"
+" (i.e. RFC 1153 digest). Use `set digest mime' if instead you want "
+"to\n"
+" receive postings bundled together into a MIME digest.\n"
+"\n"
+" set delivery on\n"
+" set delivery off\n"
+" Turn delivery on or off. This does not unsubscribe you, but "
+"instead\n"
+" tells Mailman not to deliver messages to you for now. This is "
+"useful\n"
+" if you're going on vacation. Be sure to use `set delivery on' when\n"
+" you return from vacation!\n"
+"\n"
+" set myposts on\n"
+" set myposts off\n"
+" Use `set myposts off' to not receive copies of messages you post to\n"
+" the list. This has no effect if you're receiving digests.\n"
+"\n"
+" set hide on\n"
+" set hide off\n"
+" Use `set hide on' to conceal your email address when people request\n"
+" the membership list.\n"
+"\n"
+" set duplicates on\n"
+" set duplicates off\n"
+" Use `set duplicates off' if you want Mailman to not send you "
+"messages\n"
+" if your address is explicitly mentioned in the To: or Cc: fields of\n"
+" the message. This can reduce the number of duplicate postings you\n"
+" will receive.\n"
+"\n"
+" set reminders on\n"
+" set reminders off\n"
+" Use `set reminders off' if you want to disable the monthly password\n"
+" reminder for this mailing list.\n"
+msgstr ""
+"\n"
+" set help\n"
+" Muestra esta ayuda detallada.\n"
+"\n"
+" set show [address=<adirección>]\n"
+" Muestra los valores de sus opciones de suscripción. Si envía el "
+"mensaje desde una dirección de correo\n"
+" diferente de aquella con la que está suscrito, especifique dicha "
+"dirección de suscripción\n"
+" con `address=<dirección>' (¡no ponga los angulos (<>) a los lados de "
+"la dirección, ni utilice\n"
+" comillas!).\n"
+"\n"
+" set authenticate <password> [address=<dirección>]\n"
+" Para cambiar cualquiera de sus opciones, debe incluir antes este "
+"comando junto\n"
+" con su clave de suscriptor. Si envía el mensaje desde una dirección "
+"de correo\n"
+" diferente de aquella con la que está suscrito, especifique dicha "
+"dirección de suscripción\n"
+" con `address=<dirección>' (¡no ponga los angulos (<>) a los lados de "
+"la dirección, ni utilice\n"
+" comillas!).\n"
+"\n"
+" set ack on\n"
+" set ack off\n"
+" Cuando la opción `ack' se activa (on), recibirá un mensaje\n"
+" de confirmación siempre que envíe un mensaje a la lista.\n"
+"\n"
+" set digest plain\n"
+" set digest mime\n"
+" set digest off\n"
+" Cuando la opción `digest' está desactivada (off), recibirá los "
+"mensajes a de la lista\n"
+" cuando son enviados. Utilice `set digest plain' si, por el "
+"contrario,\n"
+" desea recibir los mensajes de la lista agrupados en un único mensaje "
+"de texto plano\n"
+" (es decir. un digest según el RFC 1153). Utilice `set digest mime' ."
+"si, por el contrario,\n"
+" desea recibir los mensajes de la lista agrupados en un único mensaje "
+"en formato MIME.\n"
+"\n"
+" set delivery on\n"
+" set delivery off\n"
+" Activa o desactiva la entrega de mensajes. Esto no da de baja su "
+"suscripción, por el contrario,\n"
+" le indica a Mailman que, por ahora, no le envíe mensajes. Esto es "
+"útil, por ejemplo,\n"
+" si se marcha de vacaciones. ¡Acuérdese de utilizar `set delivery "
+"on' cuando\n"
+" vuelva de sus vacaciones!\n"
+"\n"
+" set myposts on\n"
+" set myposts off\n"
+" Utilice `set myposts off' cuando no desee recibir los mensajes que "
+"usted mismo envía\n"
+" a la ista Esta opción no produce resultados si recibe los mensjaes "
+"reunidos en un 'digest'.\n"
+" set hide on\n"
+" set hide off\n"
+" Utilice `set hide on' para ocultar su direccion electronica cuando "
+"alguien solicite un listado\n"
+" de miembros de la lista de distribucion.\n"
+"\n"
+" set duplicates on\n"
+" set duplicates off\n"
+" Utilice `set duplicates off' si no desea usted que Mailman le envíe "
+"mensajes\n"
+" si su dirección está indicada de forma explícita en los campos To: o "
+"Cc: de los mismos.\n"
+" Esto puede reducir el número de mensajes duplicados que reciba de la "
+"lista.\n"
+"\n"
+" set reminders on\n"
+" set reminders off\n"
+" Utilice `set reminders off' si quiere que Mailman deje de enviarle "
+"los recordatorios mensuales\n"
+" de su clave para esta lista de distribución.\n"
+
+#: Mailman/Commands/cmd_set.py:122
+msgid "Bad set command: %(subcmd)s"
+msgstr "Orden set incorrecta: %()subcmds"
+
+#: Mailman/Commands/cmd_set.py:151
+msgid "Your current option settings:"
+msgstr "Valores actuales de sus opciones:"
+
+#: Mailman/Commands/cmd_set.py:153 Mailman/Commands/cmd_set.py:191
+#: Mailman/Commands/cmd_set.py:194 Mailman/Commands/cmd_set.py:198
+#: Mailman/Commands/cmd_set.py:202
+msgid "off"
+msgstr "Desactivar"
+
+#: Mailman/Commands/cmd_set.py:153 Mailman/Commands/cmd_set.py:191
+#: Mailman/Commands/cmd_set.py:194 Mailman/Commands/cmd_set.py:198
+#: Mailman/Commands/cmd_set.py:202
+msgid "on"
+msgstr "Activar"
+
+#: Mailman/Commands/cmd_set.py:154
+msgid " ack %(onoff)s"
+msgstr " ack %(onoff)s"
+
+#: Mailman/Commands/cmd_set.py:160
+msgid " digest plain"
+msgstr " Recopilatorios en texto plano"
+
+#: Mailman/Commands/cmd_set.py:162
+msgid " digest mime"
+msgstr " Recopilatorios en formato MIME"
+
+#: Mailman/Commands/cmd_set.py:164
+msgid " digest off"
+msgstr " Inhabilitar recopilatorios"
+
+#: Mailman/Commands/cmd_set.py:169
+msgid "delivery on"
+msgstr "delivery on (recibe correo)"
+
+#: Mailman/Commands/cmd_set.py:171 Mailman/Commands/cmd_set.py:174
+#: Mailman/Commands/cmd_set.py:177 Mailman/Commands/cmd_set.py:181
+msgid "delivery off"
+msgstr "delivery off (no recibe correo)"
+
+#: Mailman/Commands/cmd_set.py:172
+msgid "by you"
+msgstr "indicado por usted"
+
+#: Mailman/Commands/cmd_set.py:175
+msgid "by the admin"
+msgstr "indicado por el administrador de la lista"
+
+#: Mailman/Commands/cmd_set.py:178
+msgid "due to bounces"
+msgstr "debido a rebotes"
+
+#: Mailman/Commands/cmd_set.py:186
+msgid " %(status)s (%(how)s on %(date)s)"
+msgstr " %(status)s (%(how)s el %(date)s)"
+
+#: Mailman/Commands/cmd_set.py:192
+msgid " myposts %(onoff)s"
+msgstr " myposts %(onoff)s (sus propios mensajes)"
+
+#: Mailman/Commands/cmd_set.py:195
+msgid " hide %(onoff)s"
+msgstr " hide %(onoff)s (dirección oculta)"
+
+#: Mailman/Commands/cmd_set.py:199
+msgid " duplicates %(onoff)s"
+msgstr " duplicates %(onoff)s (mensajes duplicados)"
+
+#: Mailman/Commands/cmd_set.py:203
+msgid " reminders %(onoff)s"
+msgstr " reminders %(onoff)s (recordatorios mensuales)"
+
+#: Mailman/Commands/cmd_set.py:224
+msgid "You did not give the correct password"
+msgstr "La clave que ha enviado no es la correcta"
+
+#: Mailman/Commands/cmd_set.py:236 Mailman/Commands/cmd_set.py:283
+msgid "Bad argument: %(arg)s"
+msgstr "Argumentos incorrectos: %(args)s"
+
+#: Mailman/Commands/cmd_set.py:241 Mailman/Commands/cmd_set.py:261
+msgid "Not authenticated"
+msgstr "No esta usted autentificado"
+
+#: Mailman/Commands/cmd_set.py:254
+msgid "ack option set"
+msgstr "La lista le notifica la recepcion de sus mensajes (ack set)"
+
+#: Mailman/Commands/cmd_set.py:286
+msgid "digest option set"
+msgstr "Recibe los mensajes recopilados en uno (digest)"
+
+#: Mailman/Commands/cmd_set.py:298
+msgid "delivery option set"
+msgstr "Recibe los mensajes de la lista (delivery on)"
+
+#: Mailman/Commands/cmd_set.py:310
+msgid "myposts option set"
+msgstr "Recibe sus propios mensajes (myposts)"
+
+#: Mailman/Commands/cmd_set.py:321
+msgid "hide option set"
+msgstr "Su direccion no se muestra en la lista de miembros (hide on)"
+
+#: Mailman/Commands/cmd_set.py:333
+msgid "duplicates option set"
+msgstr "No se le envian mensajes duplicados (duplicates)"
+
+#: Mailman/Commands/cmd_set.py:345
+msgid "reminder option set"
+msgstr "Se le envian recordatorios de su clave (reminder)"
+
+#: Mailman/Commands/cmd_stop.py:17
+msgid "stop is synonymous with the end command.\n"
+msgstr "El comando 'stop' es sinonimo del comando 'end'.\n"
+
+#: Mailman/Commands/cmd_subscribe.py:17
+msgid ""
+"\n"
+" subscribe [password] [digest|nodigest] [address=<address>]\n"
+" Subscribe to this mailing list. Your password must be given to\n"
+" unsubscribe or change your options, but if you omit the password, "
+"one\n"
+" will be generated for you. You may be periodically reminded of "
+"your\n"
+" password.\n"
+"\n"
+" The next argument may be either: `nodigest' or `digest' (no "
+"quotes!).\n"
+" If you wish to subscribe an address other than the address you sent\n"
+" this request from, you may specify `address=<address>' (no brackets\n"
+" around the email address, and no quotes!)\n"
+msgstr ""
+"\n"
+" subscribe [clave] [digest|nodigest] [address=<dirección>]\n"
+" Subscribirse a esta lista de distribución. La clave es "
+"imprescindible para\n"
+" darse de baja o cambiar sus opciones, pero, si omite la clave, el "
+"sistema\n"
+" le generará una automáticamente. Es posible que reciba un "
+"recordatorio de\n"
+" psu clave, que podrá desactivar si lo desea\n"
+"\n"
+" TEl siguiente argumento puede ser `nodigest' or`digest' (n¡sin "
+"comillas).\n"
+" ISi desea suscribirse con una dirección electrónica distinta a la "
+"que ha utilizado paran tenviar esta solicitud ypuede indicarlo "
+"con`address=<adirección' (n¡sin ángulos (<>)n aa los lados de la "
+"dirección aoiqcomillas)\n"
+
+#: Mailman/Commands/cmd_subscribe.py:62
+msgid "Bad digest specifier: %(arg)s"
+msgstr "Especificación de recoplicación (digest) incorrecta: %(arg)s"
+
+#: Mailman/Commands/cmd_subscribe.py:84
+msgid "No valid address found to subscribe"
+msgstr "No se ha encontrado una dirección válida para subscribir"
+
+#: Mailman/Commands/cmd_subscribe.py:102
+msgid ""
+"The email address you supplied is banned from this mailing list.\n"
+"If you think this restriction is erroneous, please contact the list\n"
+"owners at %(listowner)s."
+msgstr ""
+"La dirección de correo electrónico que está suministrando se ha vetado\n"
+"en esta lista de distribución. Si piensa que esta restricción está\n"
+"equivocada, por favor, póngase en contacto con el propietario de la\n"
+"lista en %(listowner)s."
+
+#: Mailman/Commands/cmd_subscribe.py:108
+msgid ""
+"Mailman won't accept the given email address as a valid address.\n"
+"(E.g. it must have an @ in it.)"
+msgstr ""
+"Mailman no aceptará la dirección dada como una dirección de\n"
+"correo electrónica válida.\n"
+"(Por ej. tiene que tener una @ en ella)"
+
+#: Mailman/Commands/cmd_subscribe.py:113
+msgid ""
+"Your subscription is not allowed because\n"
+"the email address you gave is insecure."
+msgstr ""
+"Su subscripción no se ha permitido porque la dirección suministrada es "
+"insegura."
+
+#: Mailman/Commands/cmd_subscribe.py:118
+msgid "You are already subscribed!"
+msgstr "Ya estás subscrito!"
+
+#: Mailman/Commands/cmd_subscribe.py:122
+msgid "No one can subscribe to the digest of this list!"
+msgstr "Nadie puede recibir digests en esta lista."
+
+#: Mailman/Commands/cmd_subscribe.py:125
+msgid "This list only supports digest subscriptions!"
+msgstr "Esta lista solo admite subscripciones tipo digest"
+
+#: Mailman/Commands/cmd_subscribe.py:131
+msgid ""
+"Your subscription request has been forwarded to the list administrator\n"
+"at %(listowner)s for review."
+msgstr ""
+"Su solicitud de subscripción ha sido reenviada a la dirección\n"
+"%(adminemail)s del administrador de la lista para que le de el visto bueno."
+
+#: Mailman/Commands/cmd_subscribe.py:136
+msgid "Subscription request succeeded."
+msgstr "Petición de subscripción confirmada."
+
+#: Mailman/Commands/cmd_unsubscribe.py:17
+msgid ""
+"\n"
+" unsubscribe [password] [address=<address>]\n"
+" Unsubscribe from the mailing list. If given, your password must "
+"match\n"
+" your current password. If omitted, a confirmation email will be "
+"sent\n"
+" to the unsubscribing address. If you wish to unsubscribe an address\n"
+" other than the address you sent this request from, you may specify\n"
+" `address=<address>' (no brackets around the email address, and no\n"
+" quotes!)\n"
+msgstr ""
+"\n"
+" unsubscribe [clave] [address=<dirección>]\n"
+" Da de baja su subscripción de la lista de distribución. Si se "
+"indica, la clave debe\n"
+" coincidir con su clave en la lista. Si se omite, se le enviará un "
+"mensaje de confirmación\n"
+" a la dirección que se está dando de baja. Si desea dar de baja una "
+"dirección\n"
+" difernete de la que está utilizando para enviar la solicitud, puede "
+"indicarlo con\n"
+" `address=<dirección>' (¡sin ángulos a los lados de la dirección, y "
+"sin comillas!)\n"
+
+#: Mailman/Commands/cmd_unsubscribe.py:62
+msgid "%(address)s is not a member of the %(listname)s mailing list"
+msgstr "La dirección %(address)s no está subscrita a la lista %(listname)s."
+
+#: Mailman/Commands/cmd_unsubscribe.py:69
+msgid ""
+"Your unsubscription request has been forwarded to the list administrator "
+"for\n"
+"approval."
+msgstr ""
+"La solicitud de su subscripción ha sido reenviada al administrador de la\n"
+"lista para que le de el visto bueno."
+
+#: Mailman/Commands/cmd_unsubscribe.py:84
+msgid "You gave the wrong password"
+msgstr "Suministró una clave incorrecta"
+
+#: Mailman/Commands/cmd_unsubscribe.py:87
+msgid "Unsubscription request succeeded."
+msgstr "Se le ha dado de baja de la lista"
+
+#: Mailman/Commands/cmd_who.py:29
+msgid ""
+"\n"
+" who\n"
+" See everyone who is on this mailing list.\n"
+msgstr ""
+"\n"
+" who\n"
+" Obtiene el listado de suscriptores de la lista.\n"
+
+#: Mailman/Commands/cmd_who.py:34
+msgid ""
+"\n"
+" who password [address=<address>]\n"
+" See everyone who is on this mailing list. The roster is limited to\n"
+" list members only, and you must supply your membership password to\n"
+" retrieve it. If you're posting from an address other than your\n"
+" membership address, specify your membership address with\n"
+" `address=<address>' (no brackets around the email address, and no\n"
+" quotes!)\n"
+msgstr ""
+"\n"
+" who clave [address=<dirección>]\n"
+" Obtiene el slistado de suscriptores de la lista. Dicho listado está "
+"reservado a\n"
+" los suscriptores, por lo cual es necesario que indique su clave de "
+"suscriptor\n"
+" para poderlo recibir. Si está enviando la petición desde una "
+"dirección distinta de\n"
+" aquella con la que está suscrito, indique dicha dirección de "
+"suscripción con\n"
+" `address=<dirección>' (¡sin ángulos a los lados de la dirección, y "
+"sin comillas!)\n"
+
+#: Mailman/Commands/cmd_who.py:44
+msgid ""
+"\n"
+" who password\n"
+" See everyone who is on this mailing list. The roster is limited to\n"
+" list administrators and moderators only; you must supply the list\n"
+" admin or moderator password to retrieve the roster.\n"
+msgstr ""
+"\n"
+" who password\n"
+" Obtiene el listado de suscriptores de la lista. Dicho listado está\n"
+" reservado alos administradores y moderadores de la misma; \n"
+" debe enviar la clave administrador o moderador para obtener el\n"
+"...........listado.\n"
+
+#: Mailman/Commands/cmd_who.py:110
+msgid "You are not allowed to retrieve the list membership."
+msgstr "Usted no puede obtener el listado de suscriptores de la lista."
+
+#: Mailman/Commands/cmd_who.py:116
+msgid "This list has no members."
+msgstr "La lista no tiene suscriptores."
+
+#: Mailman/Commands/cmd_who.py:129
+msgid "Non-digest (regular) members:"
+msgstr "Subscriptores que reciben correo a medida que llega:"
+
+#: Mailman/Commands/cmd_who.py:132
+msgid "Digest members:"
+msgstr "Subscriptores con el correo diferido (modo digest):"
+
+#: Mailman/Defaults.py:1204
+msgid "Traditional Chinese"
+msgstr "Chino tradicional"
+
+#: Mailman/Defaults.py:1205
+msgid "Czech"
+msgstr "Checoslovaco"
+
+#: Mailman/Defaults.py:1206
+msgid "German"
+msgstr "Alemán"
+
+#: Mailman/Defaults.py:1207
+msgid "English (USA)"
+msgstr "Inglés (EEUU)"
+
+#: Mailman/Defaults.py:1208
+msgid "Spanish (Spain)"
+msgstr "Español (España)"
+
+#: Mailman/Defaults.py:1209
+msgid "Estonian"
+msgstr "Estonio"
+
+#: Mailman/Defaults.py:1210
+msgid "Finnish"
+msgstr "Finés"
+
+#: Mailman/Defaults.py:1211
+msgid "French"
+msgstr "Francés"
+
+#: Mailman/Defaults.py:1212
+msgid "Simplified Chinese"
+msgstr "Chino simplificado"
+
+#: Mailman/Defaults.py:1213
+msgid "Hungarian"
+msgstr "Húngaro"
+
+#: Mailman/Defaults.py:1214
+msgid "Italian"
+msgstr "Italiano"
+
+#: Mailman/Defaults.py:1215
+msgid "Japanese"
+msgstr "Japonés"
+
+#: Mailman/Defaults.py:1216
+msgid "Korean"
+msgstr "Koreano"
+
+#: Mailman/Defaults.py:1217
+msgid "Dutch"
+msgstr "Danés"
+
+#: Mailman/Defaults.py:1218
+msgid "Norwegian"
+msgstr "Noruego"
+
+#: Mailman/Defaults.py:1219
+msgid "Portuguese (Brazil)"
+msgstr "Portugués (Basil)"
+
+#: Mailman/Defaults.py:1220
+msgid "Russian"
+msgstr "Ruso"
+
+#: Mailman/Defaults.py:1221
+msgid "Swedish"
+msgstr "Sueco"
+
+#: Mailman/Deliverer.py:43
+msgid ""
+"Note: Since this is a list of mailing lists, administrative\n"
+"notices like the password reminder will be sent to\n"
+"your membership administrative address, %(addr)s."
+msgstr ""
+"Nota: Debido a que se trata de una lista de distribución que manda a otras\n"
+"listas de distribución, las notificaciones tales como el recordatorio de\n"
+"las claves se mandarán a la dirección administrativa de su dirección,\n"
+" %(addr)s."
+
+#: Mailman/Deliverer.py:62
+msgid " (Digest mode)"
+msgstr " (Modo Resumen)"
+
+#: Mailman/Deliverer.py:68
+msgid "Welcome to the \"%(realname)s\" mailing list%(digmode)s"
+msgstr "Bienvenido a la lista de distribución %(realname)s%(digmode)s"
+
+#: Mailman/Deliverer.py:77
+msgid "You have been unsubscribed from the %(realname)s mailing list"
+msgstr "Se ha dado de baja de la lista de distribución %(realname)s"
+
+#: Mailman/Deliverer.py:104
+msgid "%(listfullname)s mailing list reminder"
+msgstr "Recordatorio de la lista de distribución %(listfullname)s"
+
+#: Mailman/Errors.py:114
+msgid "For some unknown reason"
+msgstr "Debido a algún motivo desconocido"
+
+#: Mailman/Errors.py:120 Mailman/Errors.py:143
+msgid "Your message was rejected"
+msgstr "Su mensaje ha sido rechado"
+
+#: Mailman/Gui/Archive.py:25
+msgid "Archiving Options"
+msgstr "Opciones de Almacenaje"
+
+#: Mailman/Gui/Archive.py:31
+msgid "List traffic archival policies."
+msgstr "Política de almacenaje del tráfico de la lista."
+
+#: Mailman/Gui/Archive.py:34
+msgid "Archive messages?"
+msgstr "¿Almacenar los mensajes?"
+
+#: Mailman/Gui/Archive.py:36
+msgid "private"
+msgstr "privado"
+
+#: Mailman/Gui/Archive.py:36
+msgid "public"
+msgstr "publico"
+
+#: Mailman/Gui/Archive.py:37
+msgid "Is archive file source for public or private archival?"
+msgstr "¿El fichero es la fuente para el archivo público o privado?"
+
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Monthly"
+msgstr "Mensual"
+
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Quarterly"
+msgstr "Trimestral"
+
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Yearly"
+msgstr "Anual"
+
+#: Mailman/Gui/Archive.py:41 Mailman/Gui/Digest.py:79
+msgid "Daily"
+msgstr "Diario"
+
+#: Mailman/Gui/Archive.py:41 Mailman/Gui/Digest.py:79
+msgid "Weekly"
+msgstr "Semanal"
+
+#: Mailman/Gui/Archive.py:43
+msgid "How often should a new archive volume be started?"
+msgstr "¿Cada cuanto tiempo debería empezarse un nuevo volumen de archivo?"
+
+#: Mailman/Gui/Autoresponse.py:31
+msgid "Auto-responder"
+msgstr "Contestador automático"
+
+#: Mailman/Gui/Autoresponse.py:39
+msgid ""
+"Auto-responder characteristics.<p>\n"
+"\n"
+"In the text fields below, string interpolation is performed with\n"
+"the following key/value substitutions:\n"
+"<p><ul>\n"
+" <li><b>listname</b> - <em>gets the name of the mailing list</em>\n"
+" <li><b>listurl</b> - <em>gets the list's listinfo URL</em>\n"
+" <li><b>requestemail</b> - <em>gets the list's -request address</em>\n"
+" <li><b>owneremail</b> - <em>gets the list's -owner address</em>\n"
+"</ul>\n"
+"\n"
+"<p>For each text field, you can either enter the text directly into the "
+"text\n"
+"box, or you can specify a file on your local system to upload as the text."
+msgstr ""
+"Carácterísticas del contestador automático.<p>\n"
+"\n"
+"En cada uno de los campos que están abajo. Python realiza \n"
+"interpolación de %(string)s con las siguientes correspondencias clave/"
+"valor:\n"
+"<p><ul>\n"
+" <li><b>listname</b> - <em>corresponde al nombre de la lista de "
+"distribución</em>\n"
+" <li><b>listurl</b> - <em>corresponde a la URL de la página de "
+"información de la lista</em>\n"
+" <li><b>requestemail</b> - <em>corresponde a la dirección -request de la "
+"lista</em>\n"
+" <li><b>owneremail</b> - <em>corresponde a la dirección -admin de la "
+"lista</em>\n"
+" <li><b>owneremail</b> - <em>corresponde a la dirección -owner de la "
+"lista</em>\n"
+"</ul>\n"
+"\n"
+"<p>Para cada campo de texto, puede escribir directamente el texto dentro del "
+"recuadro, o puede\n"
+"especificar un fichero en su sistema local con el texto a incluir."
+
+#: Mailman/Gui/Autoresponse.py:55
+msgid ""
+"Should Mailman send an auto-response to mailing list\n"
+" posters?"
+msgstr ""
+"¿Debería mandar Mailman una respuesta automática a los subscriptores de la \n"
+" lista de distribución?"
+
+#: Mailman/Gui/Autoresponse.py:60
+msgid "Auto-response text to send to mailing list posters."
+msgstr ""
+"Texto de auto-respuesta a mandar a los remitentes de la lista de "
+"distribución."
+
+#: Mailman/Gui/Autoresponse.py:63
+msgid ""
+"Should Mailman send an auto-response to emails sent to the\n"
+" -owner address?"
+msgstr ""
+"¿Debería enviar Mailman una respuesta automática a los\n"
+" mensajes de correo que vayan dirigidos a la dirección -owner?"
+
+#: Mailman/Gui/Autoresponse.py:68
+msgid "Auto-response text to send to -owner emails."
+msgstr "Texto de contestación automática a mandar a los mensajes que vayan dirigidos al -owner"
+
+#: Mailman/Gui/Autoresponse.py:71
+msgid "Yes, w/discard"
+msgstr "Si, con descarte"
+
+#: Mailman/Gui/Autoresponse.py:71
+msgid "Yes, w/forward"
+msgstr "Si, con redirección"
+
+#: Mailman/Gui/Autoresponse.py:72
+msgid ""
+"Should Mailman send an auto-response to emails sent to the\n"
+" -request address? If you choose yes, decide whether you want\n"
+" Mailman to discard the original email, or forward it on to the\n"
+" system as a normal mail command."
+msgstr ""
+"¿Debería mandar Mailman una contestación\n"
+" automática a los mensajes que se envíen a la\n"
+" dirección -request?. Si elige que si, decida si quiere que\n"
+" Mailman descarte el mensaje original, o por el contrario que "
+"lo\n"
+" mande al sistema como un mensaje normal con ordenes."
+
+#: Mailman/Gui/Autoresponse.py:79
+msgid "Auto-response text to send to -request emails."
+msgstr ""
+"Texto a mandar en la respuesta automática a los mensajes que envíen \n"
+"a la dirección -request"
+
+#: Mailman/Gui/Autoresponse.py:82
+msgid ""
+"Number of days between auto-responses to either the mailing\n"
+" list or -request/-owner address from the same poster. Set to\n"
+" zero (or negative) for no grace period (i.e. auto-respond to\n"
+" every message)."
+msgstr ""
+"Número de días entre las respuestas automáticas que vayan a la lista\n"
+" de distribución o a la dirección -admin/-owner desde el\n"
+" mismo remitente. Póngalo a cero (o negativo) para que no\n"
+" exista ningún periodo de gracia (es decir, contestar\n"
+" automáticamente a cada mensaje)."
+
+#: Mailman/Gui/Bounce.py:26
+msgid "Bounce processing"
+msgstr "Gestión de rebotes"
+
+#: Mailman/Gui/Bounce.py:32
+msgid ""
+"These policies control the automatic bounce processing system\n"
+" in Mailman. Here's an overview of how it works.\n"
+"\n"
+" <p>When a bounce is received, Mailman tries to extract two "
+"pieces\n"
+" of information from the message: the address of the member the\n"
+" message was intended for, and the severity of the problem "
+"causing\n"
+" the bounce. The severity can be either <em>hard</em> or\n"
+" <em>soft</em> meaning either a fatal error occurred, or a\n"
+" transient error occurred. When in doubt, a hard severity is "
+"used.\n"
+"\n"
+" <p>If no member address can be extracted from the bounce, then "
+"the\n"
+" bounce is usually discarded. Otherwise, each member is assigned "
+"a\n"
+" <em>bounce score</em> and every time we encounter a bounce from\n"
+" this member we increment the score. Hard bounces increment by "
+"1\n"
+" while soft bounces increment by 0.5. We only increment the "
+"bounce\n"
+" score once per day, so even if we receive ten hard bounces from "
+"a\n"
+" member per day, their score will increase by only 1 for that "
+"day.\n"
+"\n"
+" <p>When a member's bounce score is greater than the\n"
+" <a href=\"?VARHELP=bounce/bounce_score_threshold\">bounce score\n"
+" threshold</a>, the subscription is disabled. Once disabled, "
+"the\n"
+" member will not receive any postings from the list until their\n"
+" membership is explicitly re-enabled (either by the list\n"
+" administrator or the user). However, they will receive "
+"occasional\n"
+" reminders that their membership has been disabled, and these\n"
+" reminders will include information about how to re-enable their\n"
+" membership.\n"
+"\n"
+" <p>You can control both the\n"
+" <a href=\"?VARHELP=bounce/bounce_you_are_disabled_warnings"
+"\">number\n"
+" of reminders</a> the member will receive and the\n"
+" <a href=\"?VARHELP=bounce/"
+"bounce_you_are_disabled_warnings_interval\"\n"
+" >frequency</a> with which these reminders are sent.\n"
+"\n"
+" <p>There is one other important configuration variable; after a\n"
+" certain period of time -- during which no bounces from the "
+"member\n"
+" are received -- the bounce information is\n"
+" <a href=\"?VARHELP=bounce/bounce_info_stale_after\">considered\n"
+" stale</a> and discarded. Thus by adjusting this value, and the\n"
+" score threshold, you can control how quickly bouncing members "
+"are\n"
+" disabled. You should tune both of these to the frequency and\n"
+" traffic volume of your list."
+msgstr ""
+"Estas políticas controlan el sistema de rebotes automáticos en\n"
+" Mailman. A continuación se resume como funciona.\n"
+"\n"
+" <p>Cuando se recibe un mensaje rebotado, Mailman trata de "
+"extraer\n"
+" la siguiente información del mensaje: la dirección\n"
+" del subscriptor al que iba dirigido el mensaje y la gravedad "
+"del\n"
+" problema que causó el rebote. La gravedad puede ser <em>\n"
+" grave</em> o <em>leve</em> dependiendo si ha ocurrido un error\n"
+" fatal o si ha ocurrido un error transitorio. Si existe alguna "
+"duda\n"
+" se supone un error grave.\n"
+"\n"
+" <p>Si no se puede deducir la dirección del subscriptor del\n"
+" mensaje rebotado, entonces el rebote se descarta. Si no se "
+"descarta,,\n"
+" a cada subscriptor se le asigna un <em>contador de rebotes</em> "
+"y\n"
+" cada vez que se encuetre un rebote perteneciente a este "
+"subscriptor\n"
+" se incrementará el contador. Los rebotes graves incrementan en\n"
+" 1 mientras que los leves incrementan en 0.5. El contador solo "
+"se\n"
+" incrementa una vez al día, de manera que incluso cuando\n"
+" reciba mos cientos de mensajes rebotados del subscriptor en un "
+"día,\n"
+" su contador solo se incrementará en 1 ese día.\n"
+"\n"
+" <p>Cuando el contador de rebotes de un subscriptor supere el\n"
+" <a href=\"?VARHELP=bounce/bounce_score_threshold\">umbral de "
+"mensajes\n"
+" rebotados</a> se inhabilitará su subscripción. Una vez\n"
+" que se inhabilite, el subscriptor no recibirá más mensajes\n"
+" de la lista hasta que su subscripción sea explícitamente\n"
+" habilitada de nuevo (ya sea por el administrador o por el mismo "
+"subscriptor).\n"
+" Sin embargo, de vez en cuando recibirán notificaciones "
+"indicándoles\n"
+" que su subscripción ha sido inhabilitada. Las notificaciones\n"
+" incluyen información sobre como volver a habilitar su "
+"subscripción\n"
+"\n"
+" <p>Puede controlar tanto el\n"
+" <a href=\"?VARHELP=bounce/bounce_you_are_disabled_warnings"
+"\">número\n"
+" de recordatorios</a> que recibirá el subscriptor como la\n"
+" <a href=\"?VARHELP=bounce/"
+"bounce_you_are_disabled_warnings_interval\">\n"
+" frecuencia</a> a la que se enviarán las notificaciones.\n"
+"\n"
+" <p>Hay otra variable de configuración importante que controla "
+"que\n"
+" transcurrido un determinado periodo de tiempo -- durante el cual "
+"no se reciben\n"
+" rebotes del subscriptor -- la información de rebote\n"
+" <a href=\"?VARHELP=bounce/bounce_info_stale_after\">\n"
+" se considera caduca</a> y se descarta. De esta manera, ajustando "
+"este valor\n"
+" y el umbral de mensajes rebotados, se puede controlar la "
+"velocidad a la que\n"
+" se inhalitan a los subcriptores con problemas de recepción. Se\n"
+" deberían ajustar a la frecuencia y al volumen de la lista en\n"
+" cuestión."
+
+#: Mailman/Gui/Bounce.py:75
+msgid "Bounce detection sensitivity"
+msgstr "Sensibilidad para la detección de rebotes"
+
+#: Mailman/Gui/Bounce.py:78
+msgid "Should Mailman perform automatic bounce processing?"
+msgstr ""
+"Debería realizar Mailman una <em>sincronización</em> con los grupos de "
+"noticias"
+
+#: Mailman/Gui/Bounce.py:79
+msgid ""
+"By setting this value to <em>No</em>, you disable all\n"
+" automatic bounce processing for this list, however bounce\n"
+" messages will still be discarded so that the list "
+"administrator\n"
+" isn't inundated with them."
+msgstr ""
+"Poniendo este valor a <em>No</em>, inhabilitará todo el procesamiento\n"
+" automático de los mensajes rebotados de esta lista, sin\n"
+" embargo los mensajes rebotados se tirarán, de manera que\n"
+" no inuden el buzón del administrador de la lista."
+
+#: Mailman/Gui/Bounce.py:85
+msgid ""
+"The maximum member bounce score before the member's\n"
+" subscription is disabled. This value can be a floating point\n"
+" number."
+msgstr ""
+"El valor de los mensajes rebotados de los subscriptores, a partir del cual "
+"se\n"
+" inhabilita la subscripción. Este valor puede ser un\n"
+" número en punto flotante."
+
+#: Mailman/Gui/Bounce.py:90
+msgid ""
+"The number of days after which a member's bounce information\n"
+" is discarded, if no new bounces have been received in the\n"
+" interim. This value must be an integer."
+msgstr ""
+"Número máximo de mensajes que su lista puede\n"
+" aceptar en una hora. (Si, la detección de rebotes\n"
+" encuentra esta información útil)"
+
+#: Mailman/Gui/Bounce.py:95
+msgid ""
+"How many <em>Your Membership Is Disabled</em> warnings a\n"
+" disabled member should get before their address is removed "
+"from\n"
+" the mailing list. Set to 0 to immediately remove an address "
+"from\n"
+" the list once their bounce score exceeds the threshold. This\n"
+" value must be an integer."
+msgstr ""
+"Cuantos avisos <em>Su subscripción se ha inhabilitado</em> debe recibir\n"
+" un subscriptor inhabilitado antes de que se borre su dirección\n"
+" de la lista de distribución. Poniendolo a 0, se borrará\n"
+" automáticamente una vez que el número de mensajes\n"
+" rebotados exceda del umbral establecido. Este valor tiene que "
+"ser\n"
+" un número entero."
+
+#: Mailman/Gui/Bounce.py:102
+msgid ""
+"The number of days between sending the <em>Your Membership\n"
+" Is Disabled</em> warnings. This value must be an integer."
+msgstr ""
+"El número de días entre avisos <em>su subscripción se\n"
+" ha inhabilitado</em>. Este valor tiene que ser un entero."
+
+#: Mailman/Gui/Bounce.py:105 Mailman/Gui/General.py:257
+msgid "Notifications"
+msgstr "Notificaciones"
+
+#: Mailman/Gui/Bounce.py:109
+msgid ""
+"Should Mailman send you, the list owner, any bounce messages\n"
+" that failed to be detected by the bounce processor? <em>Yes</"
+"em>\n"
+" is recommended."
+msgstr ""
+"&iquest;Debería Mailman enviarle a usted, propietario de la lista, los "
+"mensajes rebotados\n"
+" que el sistema de procesamiento de rebotes no haya podido "
+"detectar?\n"
+"la opción recomendada es <em>Sí</em>"
+
+#: Mailman/Gui/Bounce.py:112
+msgid ""
+"While Mailman's bounce detector is fairly robust, it's\n"
+" impossible to detect every bounce format in the world. You\n"
+" should keep this variable set to <em>Yes</em> for two reasons: "
+"1)\n"
+" If this really is a permanent bounce from one of your members,\n"
+" you should probably manually remove them from your list, and "
+"2)\n"
+" you might want to send the message on to the Mailman "
+"developers\n"
+" so that this new format can be added to its known set.\n"
+"\n"
+" <p>If you really can't be bothered, then set this variable to\n"
+" <em>No</em> and all non-detected bounces will be discarded\n"
+" without further processing.\n"
+"\n"
+" <p><b>Note:</b> This setting will also affect all messages "
+"sent\n"
+" to your list's -admin address. This address is deprecated and\n"
+" should never be used, but some people may still send mail to "
+"this\n"
+" address. If this happens, and this variable is set to\n"
+" <em>No</em> those messages too will get discarded. You may "
+"want\n"
+" to set up an\n"
+" <a href=\"?VARHELP=autoreply/autoresponse_admin_text"
+"\">autoresponse\n"
+" message</a> for email to the -owner and -admin address."
+msgstr ""
+"Aunque el detector de mensjaes rebotados de Mailman es bastante robusto, es\n"
+" imposible detectar todos los formatos de mensajes rebotados que "
+"existen.\n"
+" debería mantener esta opción en <em>Sí</em> por dos razones: "
+"1)\n"
+" Si es realimente un rebote permanente de uno de sus "
+"sucriptores,\n"
+" probablemente debería eliminarlo de la lista manualmente, y 2)\n"
+" podría enviar el mensaje a los desarrolladores deMailman\n"
+" para añadir este nuevo formato a los formatos conocidos.\n"
+"\n"
+" <p>Si, realmente, no desea ser molestado, configure esta "
+"variable a\n"
+" <em>No</em> y todos los mensajes rebotados que no se detecten "
+"serán\n"
+" eliminados sin más por el sistema.\n"
+"\n"
+" <p><b>Nota:</b> Este valor afecta también a los mensajes\n"
+" enviados a la dirección -admin de su lista. Esta dirección "
+"está en vías de desaparición\n"
+" y no debería utilizarse nunca,, pero puede haber personas que "
+"aún envíen mensajes a\n"
+" esta dirección. Si ocurriese esto con esta opción cifigurada "
+"a\n"
+" <em>No</em> dichos mensajes serán descartados. Si lo desea, "
+"puede configurar\n"
+" un\n"
+" <a href=\"?VARHELP=autoreply/autoresponse_admin_text"
+"\">contestador automático\n"
+" </a> para los mensajes dirigidos a las direcciones -owner and -"
+"admin."
+
+#: Mailman/Gui/Bounce.py:135
+msgid ""
+"Should Mailman notify you, the list owner, when bounces\n"
+" cause a member's subscription to be disabled?"
+msgstr ""
+"&iquest;Debería Mailman enviarle a usted, propietario de la lista, una "
+"notificación cuando\n"
+" se desactiva una suscripción a causa de los rebotes?"
+
+#: Mailman/Gui/Bounce.py:137
+msgid ""
+"By setting this value to <em>No</em>, you turn off\n"
+" notification messages that are normally sent to the list "
+"owners\n"
+" when a member's delivery is disabled due to excessive bounces.\n"
+" An attempt to notify the member will always be made."
+msgstr ""
+"Al configurar esta opción a <em>No</em>, desactivará usted\n"
+" el envío de mensajes que se hace nromalmente a los propietarios "
+"de listas\n"
+" cuando se desactiva la dirección de un suscriptor debido a un "
+"exceso de rebotes.\n"
+" DE cualquier forma, siempre se intará notificar al suscriptor."
+
+#: Mailman/Gui/Bounce.py:144
+msgid ""
+"Should Mailman notify you, the list owner, when bounces\n"
+" cause a member to be unsubscribed?"
+msgstr ""
+"¿Debería Mailman notificarle a usted, propietario de la lista, cuando los "
+"rebotes\n"
+" hacen que se dé de baja a un suscriptor?"
+
+#: Mailman/Gui/Bounce.py:146
+msgid ""
+"By setting this value to <em>No</em>, you turn off\n"
+" notification messages that are normally sent to the list "
+"owners\n"
+" when a member is unsubscribed due to excessive bounces. An\n"
+" attempt to notify the member will always be made."
+msgstr ""
+"By setting this value to <em>No</em>, you turn off\n"
+" notification messages that are normally sent to the list "
+"owners\n"
+" when a member is unsubscribed due to excessive bounces. An\n"
+" attempt to notify the member will always be made."
+
+#: Mailman/Gui/Bounce.py:173
+msgid ""
+"Bad value for <a href=\"?VARHELP=bounce/%(property)s\"\n"
+" >%(property)s</a>: %(val)s"
+msgstr ""
+"Valor incorrecto para <a href=\"?VARHELP=bounce/%(property)s\"\n"
+" >%(property)s</a>: %(val)s"
+
+#: Mailman/Gui/ContentFilter.py:30
+msgid "Content&nbsp;filtering"
+msgstr "Filtrado&nbsp;de&nbsp;contenido"
+
+#: Mailman/Gui/ContentFilter.py:37
+msgid "Forward to List Owner"
+msgstr "Reenviar al propietario de la lista"
+
+#: Mailman/Gui/ContentFilter.py:39
+msgid "Preserve"
+msgstr "Preservar"
+
+#: Mailman/Gui/ContentFilter.py:42
+msgid ""
+"Policies concerning the content of list traffic.\n"
+"\n"
+" <p>Content filtering works like this: when a message is\n"
+" received by the list and you have enabled content filtering, "
+"the\n"
+" individual attachments are first compared to the\n"
+" <a href=\"?VARHELP=contentfilter/filter_mime_types\">filter\n"
+" types</a>. If the attachment type matches an entry in the "
+"filter\n"
+" types, it is discarded.\n"
+"\n"
+" <p>Then, if there are <a\n"
+" href=\"?VARHELP=contentfilter/pass_mime_types\">pass types</a>\n"
+" defined, any attachment type that does <em>not</em> match a\n"
+" pass type is also discarded. If there are no pass types "
+"defined,\n"
+" this check is skipped.\n"
+"\n"
+" <p>After this initial filtering, any <tt>multipart</tt>\n"
+" attachments that are empty are removed. If the outer message "
+"is\n"
+" left empty after this filtering, then the whole message is\n"
+" discarded. Then, each <tt>multipart/alternative</tt> section "
+"will\n"
+" be replaced by just the first alternative that is non-empty "
+"after\n"
+" filtering.\n"
+"\n"
+" <p>Finally, any <tt>text/html</tt> parts that are left in the\n"
+" message may be converted to <tt>text/plain</tt> if\n"
+" <a href=\"?VARHELP=contentfilter/convert_html_to_plaintext\"\n"
+" >convert_html_to_plaintext</a> is enabled and the site is\n"
+" configured to allow these conversions."
+msgstr ""
+"Política concerniente al contenido del tráfico de la lista.\n"
+"\n"
+" <p>El filtrado del contenido funciona de esta manera: cuando la lista\n"
+" recibe un mensaje y ha habilitado el filtrado del contenido, en primer lugar\n"
+" se comparan los adjuntos individuales con <a href=\"?VARHELP=contentfilter/filter_mime_types\">\n"
+" tipos filtrados</a>. Si el tipo del adjunto coincide con alguno de los tipos filtrados,\n"
+" se descarta.\n"
+"\n"
+" <p>A continuación, si hay definidos <a href=\\\"?VARHELP=contentfilter/pass_mime_types\\\">\n"
+" tipos permitidos</a>, cualquier tipo del adjunto que <em>no</em> coincida con los tipos permitidos también\n"
+" se descartan. Si no hay definidos tipos permitidos se omite esta comprobación.\n"
+"\n"
+" <p>Después de este filtrado inicial, cualquier adjunto <tt>multipart</tt> que quede vacío\n"
+" se borra. Si el mensaje saliente queda vacio después de este filtrado, entonces se\n"
+" descarta el mensaje entero. A continuación, cada sección <tt>multipart/alternative</tt>\n"
+" se reemplaza con el primer alternativo que no esté vacio después del filtrado.\n"
+"\n"
+" <p>Finalmente, cualquier parte <tt>text/html</tt> que quede en el mensaje se convierte a\n"
+" <tt>text/plain</tt> si <a href=\"?VARHELP=contentfilter/convert_html_to_plaintext\">\n"
+" convert_html_to_plaintext</a> está habilitado y el servidor está configurado para permitir\n"
+" estas conversiones."
+
+#: Mailman/Gui/ContentFilter.py:71
+msgid ""
+"Should Mailman filter the content of list traffic according\n"
+" to the settings below?"
+msgstr ""
+"¿Debería Mailman filtrar los contenidos de los mensajes dirigidos a la "
+"lista\n"
+" en función de los siguientes parámetros?"
+
+#: Mailman/Gui/ContentFilter.py:75
+msgid ""
+"Remove message attachments that have a matching content\n"
+" type."
+msgstr ""
+"Eliminar los adjuntos de los mensajes que tengan un tipo de \n"
+"contenido coincidente."
+
+#: Mailman/Gui/ContentFilter.py:78
+msgid ""
+"Use this option to remove each message attachment that\n"
+" matches one of these content types. Each line should contain "
+"a\n"
+" string naming a MIME <tt>type/subtype</tt>,\n"
+" e.g. <tt>image/gif</tt>. Leave off the subtype to remove all\n"
+" parts with a matching major content type, e.g. <tt>image</tt>.\n"
+"\n"
+" <p>Blank lines are ignored.\n"
+"\n"
+" <p>See also <a href=\"?VARHELP=contentfilter/pass_mime_types\"\n"
+" >pass_mime_types</a> for a content type whitelist."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:90
+msgid ""
+"Remove message attachments that don't have a matching\n"
+" content type. Leave this field blank to skip this filter\n"
+" test."
+msgstr ""
+"Quitar los adjuntos del mensaje que no tengan un tipo de contenido coincidente.\n"
+" Deje este campo en blanco para omitir esta comprobación del filtro."
+
+#: Mailman/Gui/ContentFilter.py:94
+msgid ""
+"Use this option to remove each message attachment that does\n"
+" not have a matching content type. Requirements and formats "
+"are\n"
+" exactly like <a href=\"?VARHELP=contentfilter/filter_mime_types"
+"\"\n"
+" >filter_mime_types</a>.\n"
+"\n"
+" <p><b>Note:</b> if you add entries to this list but don't add\n"
+" <tt>multipart</tt> to this list, any messages with attachments\n"
+" will be rejected by the pass filter."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:104
+msgid ""
+"Should Mailman convert <tt>text/html</tt> parts to plain\n"
+" text? This conversion happens after MIME attachments have "
+"been\n"
+" stripped."
+msgstr ""
+"¿Debe Mailman convertir las partes de tipo <tt>text/html</tt> a\n"
+" texto simple? Esta conversión se hace después de after "
+"eliminar los\n"
+" anejos MIME."
+
+#: Mailman/Gui/ContentFilter.py:110
+msgid ""
+"Action to take when a message matches the content filtering\n"
+" rules."
+msgstr ""
+"Acción a tomar cuando un mensaje coincida con las reglas de \n"
+"filtrado por contenido"
+
+#: Mailman/Gui/ContentFilter.py:113
+msgid ""
+"One of these actions is take when the message matches one of\n"
+" the content filtering rules, meaning, the top-level\n"
+" content type matches one of the <a\n"
+" href=\"?VARHELP=contentfilter/filter_mime_types\"\n"
+" >filter_mime_types</a>, or the top-level content type does\n"
+" <strong>not</strong> match one of the\n"
+" <a href=\"?VARHELP=contentfilter/pass_mime_types\"\n"
+" >pass_mime_types</a>, or if after filtering the subparts of "
+"the\n"
+" message, the message ends up empty.\n"
+"\n"
+" <p>Note this action is not taken if after filtering the "
+"message\n"
+" still contains content. In that case the message is always\n"
+" forwarded on to the list membership.\n"
+"\n"
+" <p>When messages are discarded, a log entry is written\n"
+" containing the Message-ID of the discarded message. When\n"
+" messages are rejected or forwarded to the list owner, a reason\n"
+" for the rejection is included in the bounce message to the\n"
+" original author. When messages are preserved, they are saved "
+"in\n"
+" a special queue directory on disk for the site administrator "
+"to\n"
+" view (and possibly rescue) but otherwise discarded. This last\n"
+" option is only available if enabled by the site\n"
+" administrator."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:154
+msgid "Bad MIME type ignored: %(spectype)s"
+msgstr "Tipo MIME incorrecto ignorado: %(spectype)s"
+
+#: Mailman/Gui/Digest.py:36
+msgid "Digest options"
+msgstr "Opciones de recopilaciones"
+
+#: Mailman/Gui/Digest.py:44
+msgid "Batched-delivery digest characteristics."
+msgstr "Características de la entrega de los mensajes en uno solo (digest)."
+
+#: Mailman/Gui/Digest.py:47
+msgid "Can list members choose to receive list traffic bunched in digests?"
+msgstr ""
+"¿Pueden elegir los subscriptores recibir el tráfico de la lista agupado en "
+"un solo mensaje? (digest)"
+
+#: Mailman/Gui/Digest.py:51
+msgid "Digest"
+msgstr "Agrupado"
+
+#: Mailman/Gui/Digest.py:51
+msgid "Regular"
+msgstr "Regular"
+
+#: Mailman/Gui/Digest.py:52
+msgid "Which delivery mode is the default for new users?"
+msgstr "¿Que tipo de entrega van a tener los nuevos usuarios por defecto?"
+
+#: Mailman/Gui/Digest.py:55
+msgid "MIME"
+msgstr "MIME"
+
+#: Mailman/Gui/Digest.py:55
+msgid "Plain"
+msgstr "Plano"
+
+#: Mailman/Gui/Digest.py:56
+msgid "When receiving digests, which format is default?"
+msgstr ""
+"Cuando se reciban los mensajes agrupados en uno solo, ¿que formato se "
+"utilizará por defecto?"
+
+#: Mailman/Gui/Digest.py:59
+msgid "How big in Kb should a digest be before it gets sent out?"
+msgstr ""
+"¿Que tamaño en Kb debería alcanzar un digest antes de que se llegue a mandar?"
+
+#: Mailman/Gui/Digest.py:63
+msgid ""
+"Should a digest be dispatched daily when the size threshold isn't reached?"
+msgstr ""
+"¿Se debe entregar el digest diariamente si el umbral establecido en el "
+"tamaño no se ha alcanzado?"
+
+#: Mailman/Gui/Digest.py:67
+msgid "Header added to every digest"
+msgstr "Cabecera a añadir a cada digest"
+
+#: Mailman/Gui/Digest.py:68
+msgid ""
+"Text attached (as an initial message, before the table of contents) to the "
+"top of digests. "
+msgstr ""
+"Texto a añadir (como un mensaje inicial, antes de la tabla de contenido) al "
+"principio de los digests. "
+
+#: Mailman/Gui/Digest.py:73
+msgid "Footer added to every digest"
+msgstr "Pié de página a añadir a cada digest"
+
+#: Mailman/Gui/Digest.py:74
+msgid "Text attached (as a final message) to the bottom of digests. "
+msgstr ""
+"Texto a añadir (como un mensaje de despedida) al final de cada digest.<p>"
+
+#: Mailman/Gui/Digest.py:80
+msgid "How often should a new digest volume be started?"
+msgstr ""
+"¿Cada cuanto tiempo debería empezar un volumen nuevo de mensajes "
+"recopilatorios?"
+
+#: Mailman/Gui/Digest.py:81
+msgid ""
+"When a new digest volume is started, the volume number is\n"
+" incremented and the issue number is reset to 1."
+msgstr ""
+"Cuando se empieza de nuevo un volumen recopilatorio, el\n"
+" número de volumen se incrementa y el número\n"
+" de envíno se pone a 1."
+
+#: Mailman/Gui/Digest.py:85
+msgid "Should Mailman start a new digest volume?"
+msgstr "¿Debería empezar Mailman un volumen nuevo de recopilatorios"
+
+#: Mailman/Gui/Digest.py:86
+msgid ""
+"Setting this option instructs Mailman to start a new volume\n"
+" with the next digest sent out."
+msgstr ""
+"Activando esta opción le dirá a Mailman que empiece\n"
+" un volumen nuevo cuando se mande el siguiente mensaje "
+"recopilatorio."
+
+#: Mailman/Gui/Digest.py:90
+msgid ""
+"Should Mailman send the next digest right now, if it is not\n"
+" empty?"
+msgstr ""
+"¿Debería mandar Mailman el próximo digest justo ahora, siempre y "
+"cuando no esté vacío?"
+
+#: Mailman/Gui/Digest.py:145
+msgid ""
+"The next digest will be sent as volume\n"
+" %(volume)s, number %(number)s"
+msgstr ""
+"La próxima recopilación digest se enviará como volumen\n"
+" %(volume)s, número %(number)s"
+
+#: Mailman/Gui/Digest.py:150
+msgid "A digest has been sent."
+msgstr "Se ha enviado una recopilación."
+
+#: Mailman/Gui/Digest.py:152
+msgid "There was no digest to send."
+msgstr "No había recopilación que enviar."
+
+#: Mailman/Gui/GUIBase.py:149
+msgid "Invalid value for variable: %(property)s"
+msgstr "Valor incorrecto para la variable: %(property)s"
+
+#: Mailman/Gui/GUIBase.py:153
+msgid "Bad email address for option %(property)s: %(val)s"
+msgstr "Dirección de correo-e incorrecta de la opción %(property)s: %(val)s"
+
+#: Mailman/Gui/GUIBase.py:179
+msgid ""
+"The following illegal substitution variables were\n"
+" found in the <code>%(property)s</code> string:\n"
+" <code>%(bad)s</code>\n"
+" <p>Your list may not operate properly until you correct "
+"this\n"
+" problem."
+msgstr ""
+"Se han encotrado las siguientes variables de sustitución incorrectas\n"
+" en la cadena <code>%(property)s</code> :\n"
+" <code>%(bad)s</code>\n"
+" <p>Su lista podría no funcionar correctamente hasta que\n"
+" corrija el problema."
+
+#: Mailman/Gui/GUIBase.py:193
+msgid ""
+"Your <code>%(property)s</code> string appeared to\n"
+" have some correctable problems in its new value.\n"
+" The fixed value will be used instead. Please\n"
+" double check that this is what you intended.\n"
+" "
+msgstr ""
+"La cadena <code>%(property)s</code> parecía tener\n"
+" un nuevo valor con problemas que se han podido "
+"corregir.\n"
+" Se utilizará el valor corregido. Por favor,\n"
+" verifique que el resultado es lo que pretendía\n"
+" usted conseguir."
+
+#: Mailman/Gui/General.py:32
+msgid "General Options"
+msgstr "Opciones Generales"
+
+#: Mailman/Gui/General.py:46
+msgid "Conceal the member's address"
+msgstr "Ocultar la dirección del suscriptor"
+
+#: Mailman/Gui/General.py:47
+msgid "Acknowledge the member's posting"
+msgstr "Confirmar los envíos a la lista del suscriptor"
+
+#: Mailman/Gui/General.py:48
+msgid "Do not send a copy of a member's own post"
+msgstr "No enviarle copia de los mensajes que envíe a la lista"
+
+#: Mailman/Gui/General.py:50
+msgid "Filter out duplicate messages to list members (if possible)"
+msgstr "Filtrar mensajes duplicados a los suscriptores (si es posible)"
+
+#: Mailman/Gui/General.py:57
+msgid ""
+"Fundamental list characteristics, including descriptive\n"
+" info and basic behaviors."
+msgstr ""
+"Características fundamentales de la lista, incluyendo información "
+"descriptiva y básica"
+
+#: Mailman/Gui/General.py:60
+msgid "General list personality"
+msgstr "Personalidad general de la lista"
+
+#: Mailman/Gui/General.py:63
+msgid "The public name of this list (make case-changes only)."
+msgstr "El nombre público de esta lista (solo cambios convincentes)"
+
+#: Mailman/Gui/General.py:64
+msgid ""
+"The capitalization of this name can be changed to make it\n"
+" presentable in polite company as a proper noun, or to make an\n"
+" acronym part all upper case, etc. However, the name will be\n"
+" advertised as the email address (e.g., in subscribe "
+"confirmation\n"
+" notices), so it should <em>not</em> be otherwise altered. "
+"(Email\n"
+" addresses are not case sensitive, but they are sensitive to\n"
+" almost everything else :-)"
+msgstr ""
+"La capitalización de este nombre se puede cambiar\n"
+" para hacerlo presentable de acuerdo con la política de la\n"
+" compañía tal como un nombre propio, o para hacer un\n"
+" acrónimo en mayúsculas, etc. Sin embargo, el nombre\n"
+" se publicará como una dirección de correo\n"
+" electrónico (ej: en las notificaciones para confirmar la\n"
+" subscripción), por lo tanto, <em>no</em> se debería\n"
+" alterar. (En las direcciones de correo electrónico no se\n"
+" distinguen mayúsculas de minúsculas, pero si se\n"
+" distinguen para cualquier otro propósito :-)"
+
+#: Mailman/Gui/General.py:73
+msgid ""
+"The list administrator email addresses. Multiple\n"
+" administrator addresses, each on separate line is okay."
+msgstr ""
+"La direcciónes de los administradores de la\n"
+" lista - son válidas varias direcciones\n"
+" (cada una en una única línea)"
+
+#: Mailman/Gui/General.py:76
+msgid ""
+"There are two ownership roles associated with each mailing\n"
+" list. The <em>list administrators</em> are the people who "
+"have\n"
+" ultimate control over all parameters of this mailing list. "
+"They\n"
+" are able to change any list configuration variable available\n"
+" through these administration web pages.\n"
+"\n"
+" <p>The <em>list moderators</em> have more limited permissions;\n"
+" they are not able to change any list configuration variable, "
+"but\n"
+" they are allowed to tend to pending administration requests,\n"
+" including approving or rejecting held subscription requests, "
+"and\n"
+" disposing of held postings. Of course, the <em>list\n"
+" administrators</em> can also tend to pending requests.\n"
+"\n"
+" <p>In order to split the list ownership duties into\n"
+" administrators and moderators, you must\n"
+" <a href=\"passwords\">set a separate moderator password</a>,\n"
+" and also provide the <a href=\"?VARHELP=general/moderator"
+"\">email\n"
+" addresses of the list moderators</a>. Note that the field you\n"
+" are changing here specifies the list administrators."
+msgstr ""
+"Hay dos roles asociados a cada lista de distribución. Los\n"
+" <em>administradores de la lista</em> son las personas que\n"
+" tienen la última palabra sobre todas las opciones de\n"
+" configuración de la lista de distribución. Son\n"
+" capaces de cambiar cualquier parámetro de\n"
+" configuración disponible a través de las\n"
+" páginas web de administración.\n"
+"\n"
+" <p>Los <em>Moderadores de la lista</em> tienen menos permisos,\n"
+" no son capaces de cambiar cualquier variable de\n"
+" configuración, pero se les permite que decidan sobre las\n"
+" peticiones administrativas pendientes, incluyendo aprobar o\n"
+" denegar las peticiones de subscripción pendientes y\n"
+" decidir que hacer con los envios a la lista retenidos. Por\n"
+" supuesto, los <em>administradores de la lista</em>\n"
+" también pueden ocuparse de las peticiones pendientes.\n"
+"\n"
+" <p>Para poder dividir las tareas de administración entre\n"
+" los administradores y los moderadores, tiene que\n"
+" <a href=\"passwords\">ponerle una clave distinta</a>\n"
+" a los moderadores en la sección inferior,\n"
+" además de indicar en esta sección las\n"
+" <a href=\"?VARHELP=general/moderator\">direcciones\n"
+" de correo electrónico de los moderadores.</a>\n"
+" Observe que los campos que se cambian aquí indican\n"
+" a los administradores de la lista."
+
+#: Mailman/Gui/General.py:97
+msgid ""
+"The list moderator email addresses. Multiple\n"
+" moderator addresses, each on separate line is okay."
+msgstr ""
+"Las direcciones de correo electrónico de los moderadores de la lista\n"
+" Son válidas varias direcciones de moderador, cada una en\n"
+" una línea distinta."
+
+#: Mailman/Gui/General.py:100
+msgid ""
+"There are two ownership roles associated with each mailing\n"
+" list. The <em>list administrators</em> are the people who "
+"have\n"
+" ultimate control over all parameters of this mailing list. "
+"They\n"
+" are able to change any list configuration variable available\n"
+" through these administration web pages.\n"
+"\n"
+" <p>The <em>list moderators</em> have more limited permissions;\n"
+" they are not able to change any list configuration variable, "
+"but\n"
+" they are allowed to tend to pending administration requests,\n"
+" including approving or rejecting held subscription requests, "
+"and\n"
+" disposing of held postings. Of course, the <em>list\n"
+" administrators</em> can also tend to pending requests.\n"
+"\n"
+" <p>In order to split the list ownership duties into\n"
+" administrators and moderators, you must\n"
+" <a href=\"passwords\">set a separate moderator password</a>,\n"
+" and also provide the email addresses of the list moderators in\n"
+" this section. Note that the field you are changing here\n"
+" specifies the list moderators."
+msgstr ""
+"Hay dos roles asociados a cada lista de distribución: los\n"
+" <em>administradores de la lista</em>, son las personas que\n"
+" tienen la última palabra sobre todas las opciones de\n"
+" configuración de la lista de distribución. Son\n"
+" capaces de cambiar cualquier parámetro de\n"
+" configuración disponible a través de las\n"
+" páginas web de administración.\n"
+"\n"
+" <p>Los <em>Moderadores de la lista</em> tienen menos permisos,\n"
+" no son capaces de cambiar cualquier variable de\n"
+" configuración, pero se les permite que decidan sobre las\n"
+" peticiones administrativas pendientes, incluyendo aprobar o\n"
+" denegar las peticiones de subscripción pendientes y\n"
+" decidir que hacer con los envios a la lista retenidos. Por\n"
+" supuesto, los <em>administradores de la lista</em>\n"
+" también pueden ocuparse de las peticiones pendientes.\n"
+"\n"
+" <p>Para poder dividir las tareas de administración entre\n"
+" los administradores y los moderadores, tiene que\n"
+" <a href=\"passwords\">ponerle una clave distinta a los "
+"moderadores</a>\n"
+" en la sección inferior, además de indicar en esta sección las\n"
+" direcciones de correo electrónico de los moderadores. Observe "
+"que los\n"
+" campos que se cambian indican a los administradores de la lista."
+
+#: Mailman/Gui/General.py:121
+msgid "A terse phrase identifying this list."
+msgstr "Una frase breve que identifique a esta lista"
+
+#: Mailman/Gui/General.py:123
+msgid ""
+"This description is used when the mailing list is listed with\n"
+" other mailing lists, or in headers, and so forth. It "
+"should\n"
+" be as succinct as you can get it, while still identifying "
+"what\n"
+" the list is."
+msgstr ""
+"Esta descripción se utiliza cuando la lista de distribución se\n"
+" muestra junto con otras listas, o en las cabeceras y "
+"similares.\n"
+" Debería ser todo lo concisa que pueda, mientras que pueda\n"
+" identificar de que va la lista."
+
+#: Mailman/Gui/General.py:129
+msgid ""
+"An introductory description - a few paragraphs - about the\n"
+" list. It will be included, as html, at the top of the "
+"listinfo\n"
+" page. Carriage returns will end a paragraph - see the details\n"
+" for more info."
+msgstr ""
+"Una introducción - unos cuantos párrafos - sobre\n"
+" la lista. Se incluirá como código html al principio\n"
+" de la página de información de la lista. Los retornos\n"
+" de carro finalizarán un párrafo - vea los detalles\n"
+" para más información"
+
+#: Mailman/Gui/General.py:133
+msgid ""
+"The text will be treated as html <em>except</em> that\n"
+" newlines will be translated to &lt;br&gt; - so you can use "
+"links,\n"
+" preformatted text, etc, but don't put in carriage returns "
+"except\n"
+" where you mean to separate paragraphs. And review your changes "
+"-\n"
+" bad html (like some unterminated HTML constructs) can prevent\n"
+" display of the entire listinfo page."
+msgstr ""
+"El texto se tratará como código html <em>\n"
+" excepto</em> los retornos de carro que se traducirán a\n"
+" &lt;br&gt; - de manera que puede utilizar enlaces, texto\n"
+" preformateado, etc, pero no ponga retornos de carro más\n"
+" que para separar los párrafos. Revise sus cambios, porque\n"
+" errores en el código html pueden evitar que la página\n"
+" de información de la lista se visualize completamente."
+
+#: Mailman/Gui/General.py:141
+msgid "Prefix for subject line of list postings."
+msgstr "Prefijo para la línea subject de los envíos de la lista"
+
+#: Mailman/Gui/General.py:142
+msgid ""
+"This text will be prepended to subject lines of messages\n"
+" posted to the list, to distinguish mailing list messages in in\n"
+" mailbox summaries. Brevity is premium here, it's ok to "
+"shorten\n"
+" long mailing list names to something more concise, as long as "
+"it\n"
+" still identifies the mailing list."
+msgstr ""
+"Este texto se antepondrá a las líneas de subject de los mensajes\n"
+" enviados a la lista, para distinguir los mensajes de la lista "
+"en\n"
+" los sumarios del buzón. Aquí la brevedad tiene\n"
+" premio, es correcto abreviar los nombre de las listas de\n"
+" distribución a algo más conciso, de manera que\n"
+" aún identifique a la lista de distribución"
+
+#: Mailman/Gui/General.py:149
+msgid ""
+"Hide the sender of a message, replacing it with the list\n"
+" address (Removes From, Sender and Reply-To fields)"
+msgstr ""
+"Esconder al remitente de un mensaje, reemplazándolo por la dirección de la "
+"lista (esto elimina los campos From, Sender y Reply-to)"
+
+#: Mailman/Gui/General.py:152
+msgid "<tt>Reply-To:</tt> header munging"
+msgstr "Cabecera explícita <tt>Reply-To:</tt>"
+
+#: Mailman/Gui/General.py:155
+msgid ""
+"Should any existing <tt>Reply-To:</tt> header found in the\n"
+" original message be stripped? If so, this will be done\n"
+" regardless of whether an explict <tt>Reply-To:</tt> header is\n"
+" added by Mailman or not."
+msgstr ""
+"¿Se debe eliminar cualquier cabecera <tt>Reply-To:</tt> que se encuentre\n"
+" en el mensaje original? En caso afirmativo, se hará sin tener "
+"en\n"
+" cuenta si Mailman añade un cabecera <tt>Reply-To:</tt>\n"
+" o no."
+
+#: Mailman/Gui/General.py:161
+msgid "Explicit address"
+msgstr "Dirección explícita"
+
+#: Mailman/Gui/General.py:161
+msgid "Poster"
+msgstr "Remitente"
+
+#: Mailman/Gui/General.py:161
+msgid "This list"
+msgstr "Esta lista"
+
+#: Mailman/Gui/General.py:162
+msgid ""
+"Where are replies to list messages directed?\n"
+" <tt>Poster</tt> is <em>strongly</em> recommended for most "
+"mailing\n"
+" lists."
+msgstr ""
+"¿Donde se envían las respuestas\n"
+" a los mensajes enviados a la lista? El <tt>remitente original</tt> se "
+"recomienda <em> enérgicamente</em>."
+
+#: Mailman/Gui/General.py:167
+msgid ""
+"This option controls what Mailman does to the\n"
+" <tt>Reply-To:</tt> header in messages flowing through this\n"
+" mailing list. When set to <em>Poster</em>, no <tt>Reply-To:</"
+"tt>\n"
+" header is added by Mailman, although if one is present in the\n"
+" original message, it is not stripped. Setting this value to\n"
+" either <em>This list</em> or <em>Explicit address</em> causes\n"
+" Mailman to insert a specific <tt>Reply-To:</tt> header in all\n"
+" messages, overriding the header in the original message if\n"
+" necessary (<em>Explicit address</em> inserts the value of <a\n"
+" href=\"?VARHELP=general/reply_to_address\">reply_to_address</"
+"a>).\n"
+" \n"
+" <p>There are many reasons not to introduce or override the\n"
+" <tt>Reply-To:</tt> header. One is that some posters depend on\n"
+" their own <tt>Reply-To:</tt> settings to convey their valid\n"
+" return address. Another is that modifying <tt>Reply-To:</tt>\n"
+" makes it much more difficult to send private replies. See <a\n"
+" href=\"http://www.unicom.com/pw/reply-to-harmful.html\">`Reply-"
+"To'\n"
+" Munging Considered Harmful</a> for a general discussion of "
+"this\n"
+" issue. See <a\n"
+" href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml"
+"\">Reply-To\n"
+" Munging Considered Useful</a> for a dissenting opinion.\n"
+"\n"
+" <p>Some mailing lists have restricted posting privileges, with "
+"a\n"
+" parallel list devoted to discussions. Examples are `patches' "
+"or\n"
+" `checkin' lists, where software changes are posted by a "
+"revision\n"
+" control system, but discussion about the changes occurs on a\n"
+" developers mailing list. To support these types of mailing\n"
+" lists, select <tt>Explicit address</tt> and set the\n"
+" <tt>Reply-To:</tt> address below to point to the parallel\n"
+" list."
+msgstr ""
+"Esta opción controla que es lo que hace Mailman con la cabecera\n"
+" <tt>Reply-To:</tt> de los mensajes que pasan por esta lista de\n"
+" distribución. Cuando esté puesto al valor <em>Remitente</em>\n"
+" Mailman no añadirá ninguna cabecera <tt>Reply-To:</tt>,\n"
+" aunque si el mensaje original ya contiene una, ésta no se\n"
+" quitará Poniendo este valor a <em>Esta lista</em> o a\n"
+" <em>Dirección explícita</em> hace que Mailman inserte una\n"
+" cabecera específica en todos los mensajes, sobreescribiendo la\n"
+" cabecera del mensaje original si fuese necesario "
+"(<em>Dirección\n"
+" explícita</em> inserta el valor \n"
+" <a href=\"?VARHELP=general/reply_to_address\">reply_to_address</"
+"a>)\n"
+" \n"
+" <p>Hay muchas razones para no presentar o sobresescribir la "
+"cabecera <tt>Reply-To:</tt>. Una de ellas es porque algunos "
+"envíos a la lista\n"
+" dependen de su propia configuración <tt>Reply-To:</tt> para\n"
+" conseguir que las respuestas lleguen. Otra razón se debe a que\n"
+" modificando la cabecera <tt>Reply-To:</tt> hace que sea más "
+"dificil\n"
+" mandar respuestas privadas. Véase \n"
+" <a href=\"http://www.unicom.com/pw/reply-to-harmful.html"
+"\">`Reply-To' Munging\n"
+" Considered Harmful </a> para una discusión general sobre este "
+"tema\n"
+" \n"
+" <p>Algunas listas de distribución tienen restringida la "
+"capacidad de\n"
+" mandar mensajes, \n"
+" con una lista paralela dedicada a discusiones. Como ejemplo\n"
+" están las listas `patches' o `checkin', donde los cambios al "
+"software\n"
+" se envían por un sistema de control de versiones, pero las "
+"discusiones\n"
+" sobre los cambios ocurren en una lista de distribución de "
+"desarrolladores.\n"
+" Para poder tratar estos tipos de listas de distribución, "
+"seleccione\n"
+" <tt>Direccioón explícita</tt> e indique la dirección\n"
+" <tt>Reply-To:</tt> debajo para apuntar a la lista paralela"
+
+#: Mailman/Gui/General.py:199
+msgid "Explicit <tt>Reply-To:</tt> header."
+msgstr "Cabecera explícita <tt>Reply-To:</tt>"
+
+#: Mailman/Gui/General.py:201
+msgid ""
+"This is the address set in the <tt>Reply-To:</tt> header\n"
+" when the <a\n"
+" href=\"?VARHELP=general/reply_goes_to_list"
+"\">reply_goes_to_list</a>\n"
+" option is set to <em>Explicit address</em>.\n"
+"\n"
+" <p>There are many reasons not to introduce or override the\n"
+" <tt>Reply-To:</tt> header. One is that some posters depend on\n"
+" their own <tt>Reply-To:</tt> settings to convey their valid\n"
+" return address. Another is that modifying <tt>Reply-To:</tt>\n"
+" makes it much more difficult to send private replies. See <a\n"
+" href=\"http://www.unicom.com/pw/reply-to-harmful.html\">`Reply-"
+"To'\n"
+" Munging Considered Harmful</a> for a general discussion of "
+"this\n"
+" issue. See <a\n"
+" href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml"
+"\">Reply-To\n"
+" Munging Considered Useful</a> for a dissenting opinion.\n"
+"\n"
+" <p>Some mailing lists have restricted posting privileges, with "
+"a\n"
+" parallel list devoted to discussions. Examples are `patches' "
+"or\n"
+" `checkin' lists, where software changes are posted by a "
+"revision\n"
+" control system, but discussion about the changes occurs on a\n"
+" developers mailing list. To support these types of mailing\n"
+" lists, specify the explicit <tt>Reply-To:</tt> address here. "
+"You\n"
+" must also specify <tt>Explicit address</tt> in the\n"
+" <tt>reply_goes_to_list</tt>\n"
+" variable.\n"
+"\n"
+" <p>Note that if the original message contains a\n"
+" <tt>Reply-To:</tt> header, it will not be changed."
+msgstr ""
+" Esta es la opción que se pone en la cabecera <tt>Reply-To:</tt>\n"
+" cuando la opción\n"
+" <a href=\"?VARHELP=general/reply_goes_to_list\">\n"
+" reply_goes_to_list</a> está puesta a <em>Dirección "
+"explícita</em>. \n"
+"\n"
+" <p>Hay muchas razones para no presentar o sobresescribir la\n"
+" cabecera <tt>Reply-To:</tt>. Una de ellas es porque algunos\n"
+" envíos a la lista\n"
+" dependen de su propia configuración\n"
+" <tt>Reply-To:</tt> para\n"
+" conseguir que las respuestas lleguen. Otra razón se\n"
+" debe a que modificando la cabecera <tt>Reply-To:</tt> hace\n"
+" que sea más dificil mandar respuestas privadas.\n"
+" Véase \n"
+" <a href=\"http://www.unicom.com/pw/reply-to-harmful.html\">\n"
+" `Reply-To' Munging Considered Harmful </a> para una\n"
+" discusión general sobre este tema. Vea\n"
+" href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml"
+"\">Reply-To\n"
+" Munging Considered Useful</a> para ver una opinión disidente.\n"
+"\n"
+" <p>Algunas listas de distribución tienen restringida\n"
+" la capacidad de mandar mensajes, con una lista paralela\n"
+" dedicada a discusiones. Como ejemplo están las listas\n"
+" `patches' o `checkin', donde los cambios al software\n"
+" se envían por un sistema de control de versiones,\n"
+" pero las discusiones sobre los cambios ocurren en una lista\n"
+" de distribución de desarrolladores. Para poder tratar\n"
+" estos tipos de listas de distribución, especificar\n"
+" la direccioón explícita <tt>Reply-To:</tt>\n"
+" aquí. También tiene que indicar\n"
+" <tt>Dirección explícita</tt>\n"
+" en la opción <tt>reply_goes_to_list</tt>\n"
+"\n"
+" <p>Observe que si el mensaje original contiene ya una\n"
+" cabecera <tt>Reply-To:</tt>,\n"
+" dicha cabecera no se reemplazará"
+
+#: Mailman/Gui/General.py:230
+msgid "Umbrella list settings"
+msgstr "Configuración de lista en cascada"
+
+#: Mailman/Gui/General.py:233
+msgid ""
+"Send password reminders to, eg, \"-owner\" address instead of\n"
+" directly to user."
+msgstr ""
+"Mandar el recordatorio de las claves a la dirección \"-owner\"\n"
+" en vez de mandarlo al usuario directamente"
+
+#: Mailman/Gui/General.py:236
+msgid ""
+"Set this to yes when this list is intended to cascade only\n"
+" to other mailing lists. When set, meta notices like\n"
+" confirmations and password reminders will be directed to an\n"
+" address derived from the member's address - it will have the\n"
+" value of \"umbrella_member_suffix\" appended to the member's\n"
+" account name."
+msgstr ""
+"Póngala afirmativamente cuando esta lista esté\n"
+" destinada a mandar mensajes a otras listas en cascada. Cuando\n"
+" esta opción esté activa, las notificaciones tal\n"
+" como las confirmaciones y el recordatorio de las claves, se\n"
+" dirigirán a una dirección derivada de la\n"
+" dirección que está subscrita a esta lista y que\n"
+" tendrá el valor de \"umbrella_member_suffix\"\n"
+" añadido al nombre de usuario. El nombre de usuario se\n"
+" deduce de la dirección subscrita a la lista y corresponde\n"
+" al identificador que está delante de la arroba."
+
+#: Mailman/Gui/General.py:244
+msgid ""
+"Suffix for use when this list is an umbrella for other\n"
+" lists, according to setting of previous \"umbrella_list\"\n"
+" setting."
+msgstr ""
+"Sufijo a usar cuando esta lista mande a otras listas, de\n"
+" acuerdo con la configuración puesta en la\n"
+" opción anterior \"umbrella_list\""
+
+#: Mailman/Gui/General.py:248
+msgid ""
+"When \"umbrella_list\" is set to indicate that this list has\n"
+" other mailing lists as members, then administrative notices "
+"like\n"
+" confirmations and password reminders need to not be sent to "
+"the\n"
+" member list addresses, but rather to the owner of those member\n"
+" lists. In that case, the value of this setting is appended to\n"
+" the member's account name for such notices. `-owner' is the\n"
+" typical choice. This setting has no effect when \"umbrella_list"
+"\"\n"
+" is \"No\"."
+msgstr ""
+"Cuando \"umbrella_list\" está activa es para indicar que\n"
+" esta lista tiene a otras listas como subscriptores, entonces "
+"las\n"
+" notificaciones administrativas como las confirmaciones y las "
+"claves\n"
+" no se necesitan mandar a los subscriptores de las lista, sino "
+"al\n"
+" propietario de esas listas. En ese caso, el valor de esta\n"
+" opción se añade al nombre de usuario del miembro para\n"
+" tales notificaciones. '-owner' es la elección típica.\n"
+" Esta opción no tiene efecto si \"umbrella_list\" es No."
+
+#: Mailman/Gui/General.py:260
+msgid "Send monthly password reminders?"
+msgstr "¿Enviar mensualmente los recordatorios de las claves?"
+
+#: Mailman/Gui/General.py:262
+msgid ""
+"Turn this on if you want password reminders to be sent once\n"
+" per month to your members. Note that members may disable "
+"their\n"
+" own individual password reminders."
+msgstr ""
+"Habilítelo si desea que los recordatorios de las claves se manden\n"
+" a sus subscriptores una vez al mes. Tenga en cuenta que sus\n"
+" subscriptores podrín desactivar el recordatoria de las\n"
+" claves a nivel individual."
+
+#: Mailman/Gui/General.py:267
+msgid ""
+"List-specific text prepended to new-subscriber welcome\n"
+" message"
+msgstr ""
+"Texto específico a la lista que se pondrá al\n"
+" principio del mensaje de bienvenida mandado a\n"
+" los nuevos subscriptores"
+
+#: Mailman/Gui/General.py:270
+msgid ""
+"This value, if any, will be added to the front of the\n"
+" new-subscriber welcome message. The rest of the welcome "
+"message\n"
+" already describes the important addresses and URLs for the\n"
+" mailing list, so you don't need to include any of that kind of\n"
+" stuff here. This should just contain mission-specific kinds "
+"of\n"
+" things, like etiquette policies or team orientation, or that "
+"kind\n"
+" of thing.\n"
+"\n"
+" <p>Note that this text will be wrapped, according to the\n"
+" following rules:\n"
+" <ul><li>Each paragraph is filled so that no line is longer "
+"than\n"
+" 70 characters.\n"
+" <li>Any line that begins with whitespace is not filled.\n"
+" <li>A blank line separates paragraphs.\n"
+" </ul>"
+msgstr ""
+"Este mensaje, si existe alguno, se añadirá\n"
+" al principio del mensaje de bienvenida de los nuevos "
+"subscriptores.\n"
+" El resto del mensaje de bienvenida ya describe las direcciones "
+"y URL\n"
+" relevantes de la lista de distribución, de manera que no\n"
+" necesita incluir ese tipo de información aquí. Aquí\n"
+" solo se debería incluir información especifica al objetivo\n"
+" de la lista, como la politica de la lista u orientación a los\n"
+" usuarios, o cualquier otra cosa similar.\n"
+"\n"
+" <p>Tenga en cuenta que este texto se desdoblará entre líneas\n"
+" de acuerdo con las siguientes reglas:\n"
+" <ul><li>Cada párrafo se completa de manera que no ocupe más\n"
+" de 70 caracteres.\n"
+" <li>Cualquier línea que empiece con un espacio en blanco "
+"no\n"
+" se completa.\n"
+" <li>Una línea en blanco separa párrafos.\n"
+" </ul>"
+
+#: Mailman/Gui/General.py:287
+msgid "Send welcome message to newly subscribed members?"
+msgstr "¿Mandar el mensaje de bienvenida cuando se subscriba la gente?"
+
+#: Mailman/Gui/General.py:288
+msgid ""
+"Turn this off only if you plan on subscribing people manually\n"
+" and don't want them to know that you did so. This option is "
+"most\n"
+" useful for transparently migrating lists from some other "
+"mailing\n"
+" list manager to Mailman."
+msgstr ""
+"Desactivarlo solo si tiene previsto subscribir a gente manualmente\n"
+" y no quiere que ellos lo sepan. Esta opción es sobre todo\n"
+" útil para migrar de forma transparente listas de otros\n"
+" gestores de listas de distribución a Mailman"
+
+#: Mailman/Gui/General.py:294
+msgid ""
+"Text sent to people leaving the list. If empty, no special\n"
+" text will be added to the unsubscribe message."
+msgstr ""
+"Texto a enviar a la gente que abandone la lista. Si está\n"
+" vacio, no se añadirá ningún texto\n"
+" en especial al mensaje de desubscripción."
+
+#: Mailman/Gui/General.py:298
+msgid "Send goodbye message to members when they are unsubscribed?"
+msgstr "¿Mando el mensaje de despedida a quién anule su subscripción?"
+
+#: Mailman/Gui/General.py:301
+msgid ""
+"Should the list moderators get immediate notice of new\n"
+" requests, as well as daily notices about collected ones?"
+msgstr ""
+"¿Se debe notificar las nuevas peticiones inmediatamente a los\n"
+" moderadores? ¿Así como enviarle un recordatorio\n"
+" diario con las pendientes?"
+
+#: Mailman/Gui/General.py:304
+msgid ""
+"List moderators (and list administrators) are sent daily\n"
+" reminders of requests pending approval, like subscriptions to "
+"a\n"
+" moderated list, or postings that are being held for one reason "
+"or\n"
+" another. Setting this option causes notices to be sent\n"
+" immediately on the arrival of new requests as well."
+msgstr ""
+"A los moderadores (y a los administradores de la lista) se les manda\n"
+" diariamente un recordatorio de las peticiones pendientes de\n"
+" aprobación, como por ejemplo las subscripciones a una\n"
+" lista cerrada así como el envío de mensajes\n"
+" que se retienen por una razón u otra. Activando esta\n"
+" opción causa que las notificaciones se envíen\n"
+" inmediatamente cuando llegen nuevas peticiones."
+
+#: Mailman/Gui/General.py:311
+msgid ""
+"Should administrator get notices of subscribes and\n"
+" unsubscribes?"
+msgstr ""
+"¿Le deben llegar al administrador las notificaciones de "
+"subscripción/desubscripción?"
+
+#: Mailman/Gui/General.py:316
+msgid "Send mail to poster when their posting is held for approval?"
+msgstr ""
+"¿Enviar un mensaje al remitente cuando su mensaje se retiene en espera de "
+"aprobación?"
+
+#: Mailman/Gui/General.py:318
+msgid ""
+"Approval notices are sent when mail triggers certain of the\n"
+" limits <em>except</em> routine list moderation and spam "
+"filters,\n"
+" for which notices are <em>not</em> sent. This option "
+"overrides\n"
+" ever sending the notice."
+msgstr ""
+"Los mensajes a aprobar se envían cuando el correo activa cualquier\n"
+" condición que exceda los límites, <em>excepto</em>\n"
+" los filtros rutinarios para la moderación de la lista y el\n"
+" correo basura (spam), para los que dichas notificaciones\n"
+" <em>no</em> se envían. Esta opción anula el\n"
+" envío de cualquier notificación"
+
+#: Mailman/Gui/General.py:323
+msgid "Additional settings"
+msgstr "Configuraciones adicionales"
+
+#: Mailman/Gui/General.py:326
+msgid "Emergency moderation of all list traffic."
+msgstr "Moderación de emergencia de todo el tráfico de la lista:"
+
+#: Mailman/Gui/General.py:327
+msgid ""
+"When this option is enabled, all list traffic is emergency\n"
+" moderated, i.e. held for moderation. Turn this option on when\n"
+" your list is experiencing a flamewar and you want a cooling "
+"off\n"
+" period."
+msgstr ""
+"Cuando esta opción está habilitada, se moderará todo el tráfico de la lista,\n"
+" por ej. retenidos para moderar. Habilite esta opción cuando se esté usando\n"
+" la lista para ofensas personales y quiera dar un periodo de calma."
+
+#: Mailman/Gui/General.py:339
+msgid ""
+"Default options for new members joining this list.<input\n"
+" type=\"hidden\" name=\"new_member_options\" value=\"ignore\">"
+msgstr ""
+"Opciones por defecto para los nuevos suscriptores de la lista.<input\n"
+" type=\"hidden\" name=\"new_member_options\" value=\"ignore\">"
+
+#: Mailman/Gui/General.py:342
+msgid ""
+"When a new member is subscribed to this list, their initial\n"
+" set of options is taken from the this variable's setting."
+msgstr ""
+"Cuando se suscribe un nuevo miembro a la lista, los valores\n"
+" iniciales de sus opciones se tomarán del contenido de esta "
+"variable."
+
+#: Mailman/Gui/General.py:346
+msgid ""
+"(Administrivia filter) Check postings and intercept ones\n"
+" that seem to be administrative requests?"
+msgstr ""
+"(Filtro administrativo) ¿Comprobar los envíos e\n"
+" interceptar los que parezcan ser peticiones administrativas?"
+
+#: Mailman/Gui/General.py:349
+msgid ""
+"Administrivia tests will check postings to see whether it's\n"
+" really meant as an administrative request (like subscribe,\n"
+" unsubscribe, etc), and will add it to the the administrative\n"
+" requests queue, notifying the administrator of the new "
+"request,\n"
+" in the process."
+msgstr ""
+"Los tests administrativos comprobarán los envíos para ver si\n"
+" realmente son peticiones administrativas (como subscribe,\n"
+" unsubscribe, etc), y los añadirá a la cola de\n"
+" peticiones administrativas, notificando de paso al "
+"administrador,\n"
+" de la nueva petición"
+
+#: Mailman/Gui/General.py:356
+msgid ""
+"Maximum length in kilobytes (KB) of a message body. Use 0\n"
+" for no limit."
+msgstr ""
+"Longitud máxima del cuerpo del mensaje (KB).\n"
+" Ponga 0 para no establecer límites."
+
+#: Mailman/Gui/General.py:360
+msgid "Host name this list prefers for email."
+msgstr "Nombre de la máquina que prefiere la lista."
+
+#: Mailman/Gui/General.py:362
+msgid ""
+"The \"host_name\" is the preferred name for email to\n"
+" mailman-related addresses on this host, and generally should "
+"be\n"
+" the mail host's exchanger address, if any. This setting can "
+"be\n"
+" useful for selecting among alternative names of a host that "
+"has\n"
+" multiple addresses."
+msgstr ""
+"El \"host_name\" es el nombre de máquina preferido\n"
+" para direcciones relacionadas con Mailman en este sistema,\n"
+" generalmente debería ser la dirección del sistema\n"
+" para cuestiones de correo electrónico Esta opción\n"
+" puede ser útil para seleccionar entre distintos nombres\n"
+" alternativos de una máquina que tiene varias direcciones."
+
+#: Mailman/Gui/General.py:374
+msgid ""
+"Should messages from this mailing list include the\n"
+" <a href=\"http://www.faqs.org/rfcs/rfc2369.html\">RFC 2369</"
+"a>\n"
+" (i.e. <tt>List-*</tt>) headers? <em>Yes</em> is highly\n"
+" recommended."
+msgstr ""
+"¿Deberían incluir los mensajes de esta lista las cabeceras\n"
+" <tt>List-*</tt>\n"
+" según recomienda el\n"
+" <a href=\"http://www.faqs.org/rfc/rfc2369.html\">\n"
+" RFC 2369</a>? Se recomienda que\n"
+" ponga <em>Si</em>."
+
+#: Mailman/Gui/General.py:379
+msgid ""
+"RFC 2369 defines a set of List-* headers that are\n"
+" normally added to every message sent to the list "
+"membership.\n"
+" These greatly aid end-users who are using standards "
+"compliant\n"
+" mail readers. They should normally always be enabled.\n"
+"\n"
+" <p>However, not all mail readers are standards compliant "
+"yet,\n"
+" and if you have a large number of members who are using\n"
+" non-compliant mail readers, they may be annoyed at these\n"
+" headers. You should first try to educate your members as "
+"to\n"
+" why these headers exist, and how to hide them in their "
+"mail\n"
+" clients. As a last resort you can disable these headers, "
+"but\n"
+" this is not recommended (and in fact, your ability to "
+"disable\n"
+" these headers may eventually go away)."
+msgstr ""
+"El RFC 2369 define una serie de cabeceras List--* headers that are\n"
+" normally added to every message sent to the list "
+"membership.\n"
+" These greatly aid end-users who are using standards "
+"compliant\n"
+" mail readers. They should normally always be enabled.\n"
+"\n"
+" <p>However, not all mail readers are standards compliant "
+"yet,\n"
+" and if you have a large number of members who are using\n"
+" non-compliant mail readers, they may be annoyed at these\n"
+" headers. You should first try to educate your members as "
+"to\n"
+" why these headers exist, and how to hide them in their "
+"mail\n"
+" clients. As a last resort you can disable these headers, "
+"but\n"
+" this is not recommended (and in fact, your ability to "
+"disable\n"
+" these headers may eventually go away)."
+
+#: Mailman/Gui/General.py:397
+msgid "Should postings include the <tt>List-Post:</tt> header?"
+msgstr ""
+"¿Se debe incluir la cabecera <tt>List-Post:</tt> en los mensajes enviados a "
+"la lista?"
+
+#: Mailman/Gui/General.py:398
+msgid ""
+"The <tt>List-Post:</tt> header is one of the headers\n"
+" recommended by\n"
+" <a href=\"http://www.faqs.org/rfcs/rfc2369.html\">RFC 2369</"
+"a>.\n"
+" However for some <em>announce-only</em> mailing lists, only a\n"
+" very select group of people are allowed to post to the list; "
+"the\n"
+" general membership is usually not allowed to post. For lists "
+"of\n"
+" this nature, the <tt>List-Post:</tt> header is misleading.\n"
+" Select <em>No</em> to disable the inclusion of this header. "
+"(This\n"
+" does not affect the inclusion of the other <tt>List-*:</tt>\n"
+" headers.)"
+msgstr ""
+"La cabecera <tt>List-Post:</tt> es una de las cabeceras\n"
+" recomendadas en el\n"
+" <a href=\"http://www.faqs.org/rfc/rfc2369.html\">RFC 2369</a>.\n"
+" Sin embargo, en algunas listas de distribución destinadas <em>únicamente a difusión</em>,\n"
+" sólo puede enviar mensajes un grupo muy reducido de personas; mientras\n"
+" que a los suscriptores normales no se les permite enviar a la lista. En este tipo de\n"
+" listas, la cabecera <tt>List-Post:</tt> es confusa.\n"
+" Seleccione <em>No</em> para que no se incluya esta cabecera. (Esto\n"
+" no afecta otras cabeceras <tt>List-*:</tt> que se puedan incluir.)"
+
+#: Mailman/Gui/General.py:416
+msgid ""
+"<b>real_name</b> attribute not\n"
+" changed! It must differ from the list's name by case\n"
+" only."
+msgstr ""
+"¡El atributo <b>real_name</b> no se ha cambiado! Tiene que diferenciarse \n"
+"del nombre de la lista solo en cambios a mayúsculas o minúsculas."
+
+#: Mailman/Gui/General.py:437
+msgid ""
+"You cannot add a Reply-To: to an explicit\n"
+" address if that address is blank. Resetting these values."
+msgstr ""
+"No puede añadir una cabecera Reply-To: con dirección explícita\n"
+" si tal dirección está vacía. Se volverá a los valores iniciales."
+
+#: Mailman/Gui/Language.py:34
+msgid "Language&nbsp;options"
+msgstr "Opciones de idiomas"
+
+#: Mailman/Gui/Language.py:66
+msgid "Natural language (internationalization) options."
+msgstr "Opciones de idioma nativo (internacionalización)"
+
+#: Mailman/Gui/Language.py:71
+msgid "Default language for this list."
+msgstr "El idioma predeterminado de esta lista"
+
+#: Mailman/Gui/Language.py:72
+msgid ""
+"This is the default natural language for this mailing list.\n"
+" If <a href=\"?VARHELP=language/available_languages\">more than "
+"one\n"
+" language</a> is supported then users will be able to select "
+"their\n"
+" own preferences for when they interact with the list. All "
+"other\n"
+" interactions will be conducted in the default language. This\n"
+" applies to both web-based and email-based messages, but not to\n"
+" email posted by list members."
+msgstr ""
+"El idioma a usar en esta lista de distribución. Si se soporta\n"
+" <a href=\\\"?VARHELP=language/available_languages\\\">más de "
+"un\n"
+" idioma</a> entonces los usuarios podrás establecer sus propias\n"
+" preferencias a la hora de interactuar con la lista. Cualquier "
+"otra\n"
+" interacción se producirá en el idioma predeterminado.\n"
+" Esto se aplica tanto a los mensajes visualizados via web como "
+"a\n"
+" los mensajes enviados por correo electrónico, pero no a los\n"
+" mensajes enviados por los subscriptores."
+
+#: Mailman/Gui/Language.py:82
+msgid "Languages supported by this list."
+msgstr "Los idiomas que puede usar en esta lista"
+
+#: Mailman/Gui/Language.py:84
+msgid ""
+"These are all the natural languages supported by this list.\n"
+" Note that the\n"
+" <a href=\"?VARHELP=language/preferred_language\">default\n"
+" language</a> must be included."
+msgstr ""
+"Estos son los idiomas que se pueden usar con esta lista.\n"
+" Observe que tiene que estar incluido\n"
+" <a href=\\\"?VARHELP=language/preferred_language\\\">\n"
+" el idioma predeterminado</a>."
+
+#: Mailman/Gui/Language.py:90
+msgid "Always"
+msgstr "Siempre"
+
+#: Mailman/Gui/Language.py:90
+msgid "As needed"
+msgstr "Cuando haga falta"
+
+#: Mailman/Gui/Language.py:90
+msgid "Never"
+msgstr "Nunca"
+
+#: Mailman/Gui/Language.py:91
+msgid ""
+"Encode the\n"
+" <a href=\"?VARHELP=general/subject_prefix\">subject\n"
+" prefix</a> even when it consists of only ASCII characters?"
+msgstr ""
+"¿Codificar el\n"
+" <a href=\"?VARHELP=general/subject_prefix\">prefijo del asunto\n"
+" </a> incluso cuando únicamente contenga caracteres ASCII?"
+
+#: Mailman/Gui/Language.py:95
+msgid ""
+"If your mailing list's default language uses a non-ASCII\n"
+" character set and the prefix contains non-ASCII characters, "
+"the\n"
+" prefix will always be encoded according to the relevant\n"
+" standards. However, if your prefix contains only ASCII\n"
+" characters, you may want to set this option to <em>Never</em> "
+"to\n"
+" disable prefix encoding. This can make the subject headers\n"
+" slightly more readable for users with mail readers that don't\n"
+" properly handle non-ASCII encodings.\n"
+"\n"
+" <p>Note however, that if your mailing list receives both "
+"encoded\n"
+" and unencoded subject headers, you might want to choose <em>As\n"
+" needed</em>. Using this setting, Mailman will not encode "
+"ASCII\n"
+" prefixes when the rest of the header contains only ASCII\n"
+" characters, but if the original header contains non-ASCII\n"
+" characters, it will encode the prefix. This avoids an "
+"ambiguity\n"
+" in the standards which could cause some mail readers to "
+"display\n"
+" extra, or missing spaces between the prefix and the original\n"
+" header."
+msgstr ""
+
+#: Mailman/Gui/Membership.py:26
+msgid "Membership&nbsp;Management"
+msgstr "Administración de los subscriptores"
+
+#: Mailman/Gui/Membership.py:30
+msgid "Membership&nbsp;List"
+msgstr "Lista de subscriptores"
+
+#: Mailman/Gui/Membership.py:31
+msgid "Mass&nbsp;Subscription"
+msgstr "Subscripciones en masa"
+
+#: Mailman/Gui/Membership.py:32
+msgid "Mass&nbsp;Removal"
+msgstr "Bajas masivas"
+
+#: Mailman/Gui/NonDigest.py:34
+msgid "Non-digest&nbsp;options"
+msgstr "Opciones de entrega regular"
+
+#: Mailman/Gui/NonDigest.py:42
+msgid "Policies concerning immediately delivered list traffic."
+msgstr ""
+"Política referente a la entrega del tráfico de la lista a medida que llega"
+
+#: Mailman/Gui/NonDigest.py:45
+msgid ""
+"Can subscribers choose to receive mail immediately, rather\n"
+" than in batched digests?"
+msgstr ""
+"¿Pueden los subscriptores elegir entre recibir el correo\n"
+" inmediatamente o recibirlo agrupado en un solo mensaje "
+"(digests)?"
+
+#: Mailman/Gui/NonDigest.py:52
+msgid "Full Personalization"
+msgstr "Personalización completa"
+
+#: Mailman/Gui/NonDigest.py:54
+msgid ""
+"Should Mailman personalize each non-digest delivery?\n"
+" This is often useful for announce-only lists, but <a\n"
+" href=\"?VARHELP=nondigest/personalize\">read the details</"
+"a>\n"
+" section for a discussion of important performance\n"
+" issues."
+msgstr ""
+"¿Debe personalizar Mailman cada envío regular?. A menudo es\n"
+" útil para listas destinadas al envían información.\n"
+" Pinche en los <a href=\"?VARHELP=nondigest/personalize"
+"\">detalles</a> para\n"
+" leer una discusión de temas que afectan al rendimiento."
+
+#: Mailman/Gui/NonDigest.py:60
+msgid ""
+"Normally, Mailman sends the regular delivery messages to\n"
+" the mail server in batches. This is much more efficent\n"
+" because it reduces the amount of traffic between Mailman "
+"and\n"
+" the mail server.\n"
+"\n"
+" <p>However, some lists can benefit from a more "
+"personalized\n"
+" approach. In this case, Mailman crafts a new message for\n"
+" each member on the regular delivery list. Turning this\n"
+" feature on may degrade the performance of your site, so "
+"you\n"
+" need to carefully consider whether the trade-off is worth "
+"it,\n"
+" or whether there are other ways to accomplish what you "
+"want.\n"
+" You should also carefully monitor your system load to make\n"
+" sure it is acceptable.\n"
+"\n"
+" <p>Select <em>No</em> to disable personalization and send\n"
+" messages to the members in batches. Select <em>Yes</em> "
+"to\n"
+" personalize deliveries and allow additional substitution\n"
+" variables in message headers and footers (see below). In\n"
+" addition, by selecting <em>Full Personalization</em>, the\n"
+" <code>To</code> header of posted messages will be modified "
+"to\n"
+" include the member's address instead of the list's posting\n"
+" address.\n"
+"\n"
+" <p>When personalization is enabled, a few more expansion\n"
+" variables that can be included in the <a\n"
+" href=\"?VARHELP=nondigest/msg_header\">message header</a> "
+"and\n"
+" <a href=\"?VARHELP=nondigest/msg_footer\">message footer</"
+"a>.\n"
+"\n"
+" <p>These additional substitution variables will be "
+"available\n"
+" for your headers and footers, when this feature is "
+"enabled:\n"
+"\n"
+" <ul><li><b>user_address</b> - The address of the user,\n"
+" coerced to lower case.\n"
+" <li><b>user_delivered_to</b> - The case-preserved "
+"address\n"
+" that the user is subscribed with.\n"
+" <li><b>user_password</b> - The user's password.\n"
+" <li><b>user_name</b> - The user's full name.\n"
+" <li><b>user_optionsurl</b> - The url to the user's "
+"option\n"
+" page.\n"
+" </ul>\n"
+" "
+msgstr ""
+"Normalmente Mailman manda los evnvíos regulares al servidor de correo en lotes.\n"
+" Esto es más eficiente porque reduce la cantidad de tráfico\n"
+" entre Mailman y el servidor de correo.\n"
+"\n"
+" <p>Sin embargo, algunas listas pueden beneficiarse de la personalización\n"
+" de una o más características. En este caso Mailman construye\n"
+" un mensaje nuevo para cada subscriptor regular. Activando esta caracteristica,\n"
+" puede degradar el rendimiento de tu sitio web, de manera que necesita evaluar\n"
+" los pros y los contras o si existen formas alternativas de hacer lo que quiere.\n"
+" Se debería monitorizar el rendimiento del sistema para asegurarse de que\n"
+" es aceptable.\n"
+"\n"
+" <p>Seleccione <em>No</em> para inhabilitar la personalización y mandar los mensajes\n"
+" de los subscriptores en lotes. Seleccione <em>Si</em> para personalizar las\n"
+" entregas y permitir cualquier personalización adicional ya sea en la cabecera\n"
+" o en la parte inferior del los mensajes (vea más abajo). Además, seleccionando\n"
+" <em>Personalización completa</em>, la cabecera <code>To</code> de los mensajes\n"
+" enviados se modificarán para reflejar a los subscriptores en vez de la dirección\n"
+" de envío de la lista.\n"
+"\n"
+" Cuando la personalización de las listas está habilitada, se pueden incluir algunas\n"
+" variables de expansión adicionales en la <a href=\"?VARHELP=nondigest/msg_header\">\n"
+" cabecera de los mensajes</a> y en la <a href=\"?VARHELP=nondigest/msg_footer\"> parte\n"
+" final del mensaje</a>.\n"
+"\n"
+" <p>Las siguientes variables de substitución adicionales estarán disponibles para las cabeceras\n"
+" y la parte final del mensaje siempre que esta característica esté habilitada:\n"
+"\n"
+" <ul><li><b>user_address</b> - La dirección del subscriptor en minúsculas.\n"
+" <li><b>user_delivered_to</b> - La dirección del subscriptor respetando\n"
+" mayúsculas y minúsculas.\n"
+" <li><b>user_password</b> - La clave del subscriptor\n"
+" <li><b>user_name</b> - El nombre y los apellidos del subscriptor.\n"
+" <li><b>user_optionsurl</b> - La URL de la página de preferencias del subscriptor.\n"
+" </ul>\n"
+" "
+
+#: Mailman/Gui/NonDigest.py:108
+msgid "Header added to mail sent to regular list members"
+msgstr ""
+"Cabecera a añadir al correo enviado a los subscriptores regulares de la lista"
+
+#: Mailman/Gui/NonDigest.py:109
+msgid ""
+"Text prepended to the top of every immediately-delivery\n"
+" message. "
+msgstr ""
+"Texto a añadir en la parte superior de cada uno de los mensajes que se "
+"entrega a medida que llegan. "
+
+#: Mailman/Gui/NonDigest.py:114
+msgid "Footer added to mail sent to regular list members"
+msgstr ""
+"Pié de página a añadir al correo enviado a los subscriptores regulares de la "
+"lista"
+
+#: Mailman/Gui/NonDigest.py:115
+msgid ""
+"Text appended to the bottom of every immediately-delivery\n"
+" message. "
+msgstr ""
+"Texto a añadir al final de cada mensaje que se entrega\n"
+" inmediatamente."
+
+#: Mailman/Gui/Passwords.py:27
+msgid "Passwords"
+msgstr "Claves:"
+
+#: Mailman/Gui/Privacy.py:28
+msgid "Privacy options"
+msgstr "Opciones de Privacidad"
+
+#: Mailman/Gui/Privacy.py:32
+msgid "Subscription&nbsp;rules"
+msgstr "Reglas para la subscripción"
+
+#: Mailman/Gui/Privacy.py:33
+msgid "Sender&nbsp;filters"
+msgstr "Filtrado del remitente"
+
+#: Mailman/Gui/Privacy.py:34
+msgid "Recipient&nbsp;filters"
+msgstr "Filtros para los destinatarios"
+
+#: Mailman/Gui/Privacy.py:35
+msgid "Spam&nbsp;filters"
+msgstr "Filtrado del correo basura"
+
+#: Mailman/Gui/Privacy.py:49 Mailman/Gui/Usenet.py:61
+msgid "None"
+msgstr "ninguno"
+
+#: Mailman/Gui/Privacy.py:50 Mailman/Gui/Privacy.py:73
+msgid "Confirm"
+msgstr "confirmar"
+
+#: Mailman/Gui/Privacy.py:51 Mailman/Gui/Privacy.py:74
+msgid "Require approval"
+msgstr "precisa de aprobación"
+
+#: Mailman/Gui/Privacy.py:52 Mailman/Gui/Privacy.py:75
+msgid "Confirm and approve"
+msgstr "confirmación y approbación"
+
+#: Mailman/Gui/Privacy.py:54 Mailman/Gui/Privacy.py:77
+msgid "What steps are required for subscription?<br>"
+msgstr "¿Que pasos hacen falta para la subcripción?<br>"
+
+#: Mailman/Gui/Privacy.py:55
+msgid ""
+"None - no verification steps (<em>Not\n"
+" Recommended </em>)<br>\n"
+" Confirm (*) - email confirmation step required "
+"<br>\n"
+" Require approval - require list administrator\n"
+" Approval for subscriptions <br>\n"
+" Confirm and approve - both confirm and approve\n"
+" \n"
+" <p>(*) when someone requests a subscription,\n"
+" Mailman sends them a notice with a unique\n"
+" subscription request number that they must reply "
+"to\n"
+" in order to subscribe.<br>\n"
+"\n"
+" This prevents mischievous (or malicious) people\n"
+" from creating subscriptions for others without\n"
+" their consent."
+msgstr ""
+"Ninguno - Sin proceso de verificación\n"
+" (<em>No se recomienda</em>)<br>Confirmación\n"
+" (*) - Se precisa de una etapa de\n"
+" confirmación por correo electrónico\n"
+"<br>\n"
+" Precisa aprobación - Requiere que el\n"
+" administrador de la lista apruebe las\n"
+" subscripciones <br>Confirmación y\n"
+" aprobación - tanto Confirmación\n"
+" como Aprobación\n"
+" \n"
+" <p> (*) Cuando alguien solicita una\n"
+" subscripción, mailman le envía una\n"
+" notificación con un unico identificador\n"
+" asociada a dicha petición que se debe\n"
+" responder para poder ser subscrito. <br>\n"
+"\n"
+" Esto previene que los maliciosos subscriban a\n"
+" terceras personas sin su consentimiento."
+
+#: Mailman/Gui/Privacy.py:78
+msgid ""
+"Confirm (*) - email confirmation required <br>\n"
+" Require approval - require list administrator\n"
+" approval for subscriptions <br>\n"
+" Confirm and approve - both confirm and approve\n"
+" \n"
+" <p>(*) when someone requests a subscription,\n"
+" Mailman sends them a notice with a unique\n"
+" subscription request number that they must reply "
+"to\n"
+" in order to subscribe.<br> This prevents\n"
+" mischievous (or malicious) people from creating\n"
+" subscriptions for others without their consent."
+msgstr ""
+"Confirmación (*) - Se precisa de una etapa de confirmación por\n"
+" correo electrónico <br> Precisa\n"
+" aprobación - Requiere que el administrador de\n"
+" la lista apruebe las subscripciones "
+"<br>Confirmación\n"
+" y aprobación - tanto Confirmación como\n"
+" Aprobación\n"
+"\n"
+" <p> (*) Cuando alguien solicita una\n"
+" subscripción, mailman le envía una\n"
+" notificación con un unico identificador asociada\n"
+" a dicha petición que se debe responder para poder\n"
+" ser subscrito. <br> Esto previene que los "
+"maliciosos\n"
+" subscriban a terceras personas sin su "
+"consentimiento."
+
+#: Mailman/Gui/Privacy.py:94
+msgid ""
+"This section allows you to configure subscription and\n"
+" membership exposure policy. You can also control whether this\n"
+" list is public or not. See also the\n"
+" <a href=\"%(admin)s/archive\">Archival Options</a> section for\n"
+" separate archive-related privacy settings."
+msgstr ""
+"Esta sección le permite configurar la política de subscripción y \n"
+" exposición de sus subscriptores. También puede\n"
+" controlar si esta lista es pública. Vea\n"
+" <a href=\"%(admin)s/archive\">Opciones de Almacenaje</a>\n"
+" para la configuración de privacidad relacionada con\n"
+" los mensajes archivados."
+
+#: Mailman/Gui/Privacy.py:100
+msgid "Subscribing"
+msgstr "Subscripción"
+
+#: Mailman/Gui/Privacy.py:102
+msgid ""
+"Advertise this list when people ask what lists are on this\n"
+" machine?"
+msgstr ""
+"¿Anunciar esta lista cuando la gente pida que listas están en esta máquina?"
+
+#: Mailman/Gui/Privacy.py:108
+msgid ""
+"Is the list moderator's approval required for unsubscription\n"
+" requests? (<em>No</em> is recommended)"
+msgstr ""
+"¿Se requiere el visto bueno del moderador para las solicitudes\n"
+"de desubscripción? (Se recomienda <em>No</em>)"
+
+#: Mailman/Gui/Privacy.py:111
+msgid ""
+"When members want to leave a list, they will make an\n"
+" unsubscription request, either via the web or via email.\n"
+" Normally it is best for you to allow open unsubscriptions so "
+"that\n"
+" users can easily remove themselves from mailing lists (they "
+"get\n"
+" really upset if they can't get off lists!).\n"
+"\n"
+" <p>For some lists though, you may want to impose moderator\n"
+" approval before an unsubscription request is processed. "
+"Examples\n"
+" of such lists include a corporate mailing list that all "
+"employees\n"
+" are required to be members of."
+msgstr ""
+"Cuando los subscriptors quieren abandonar la lista, harán una solicitud de\n"
+" desubscripción ya sea por web o por correo electrónico.\n"
+" Normalmente, lo mejor para ti es permitir que cualquiera pueda "
+"anular\n"
+" su subscripción de manera que los subscriptores puedan "
+"abandonar\n"
+" la lista fácilmente (¡llegan a cabrearse bastante cuando no "
+"pueden\n"
+" abandonar la lista!).\n"
+"\n"
+" <p>Aún así para algunas listas, puede que quiera imponer el\n"
+" visto bueno del moderador antes de que se procese una solicitud "
+"de\n"
+" desubscripción. Ejemplo de una lista así puede ser aquella\n"
+" donde están subscritos todos los empleados de una empresa "
+"corporativa."
+
+#: Mailman/Gui/Privacy.py:122
+msgid "Ban list"
+msgstr "Lista negra"
+
+#: Mailman/Gui/Privacy.py:124
+msgid ""
+"List of addresses which are banned from membership in this\n"
+" mailing list."
+msgstr ""
+"Lista de direcciones que tienen vetada la suscripción\n"
+" a esta lista de distribución."
+
+#: Mailman/Gui/Privacy.py:127
+msgid ""
+"Addresses in this list are banned outright from subscribing\n"
+" to this mailing list, with no further moderation required. "
+"Add\n"
+" addresses one per line; start the line with a ^ character to\n"
+" designate a regular expression match."
+msgstr ""
+"Las direcciones de esta lista tienen totalmente vetada la suscripción\n"
+" a la lista de distribución, sin más proceso de moderación.\n"
+" Incluya una dirección por línea; comenzando con un ^ para\n"
+" utilizar una expresión regular."
+
+#: Mailman/Gui/Privacy.py:132
+msgid "Membership exposure"
+msgstr "Exposición de los miembros"
+
+#: Mailman/Gui/Privacy.py:134
+msgid "Anyone"
+msgstr "Cualquiera"
+
+#: Mailman/Gui/Privacy.py:134
+msgid "List admin only"
+msgstr "Solo los administradores de la lista"
+
+#: Mailman/Gui/Privacy.py:134
+msgid "List members"
+msgstr "Componentes de la lista"
+
+#: Mailman/Gui/Privacy.py:135
+msgid "Who can view subscription list?"
+msgstr "¿Quien puede ver la lista de subcriptores?"
+
+#: Mailman/Gui/Privacy.py:137
+msgid ""
+"When set, the list of subscribers is protected by member or\n"
+" admin password authentication."
+msgstr ""
+"Cuando esté activo, la lista de subcriptores se protege\n"
+" pidiendo la clave del administrador o de un subscriptor."
+
+#: Mailman/Gui/Privacy.py:141
+msgid ""
+"Show member addresses so they're not directly recognizable\n"
+" as email addresses?"
+msgstr ""
+"¿Mostrar las direcciones de los subscriptores de manera\n"
+" que no sean directamente reconocibles como direcciones\n"
+" de correo electrónico?"
+
+#: Mailman/Gui/Privacy.py:143
+msgid ""
+"Setting this option causes member email addresses to be\n"
+" transformed when they are presented on list web pages (both in\n"
+" text and as links), so they're not trivially recognizable as\n"
+" email addresses. The intention is to prevent the addresses\n"
+" from being snarfed up by automated web scanners for use by\n"
+" spammers."
+msgstr ""
+"Al activar esta opción hace que las direcciones de correo\n"
+" electrónico se transformen cuando se presenten en las\n"
+" páginas web (ya sea como texto o como enlaces), de\n"
+" manera que no sean fácilmente reconocibles como \n"
+" direcciones de correo electrónico. La intención\n"
+" es prevenir que las direcciones sean detectadas por los\n"
+" programas automáticos existente en la web y que son\n"
+" utilizados por los que envían correo basura (spammers)"
+
+#: Mailman/Gui/Privacy.py:153
+msgid ""
+"When a message is posted to the list, a series of\n"
+" moderation steps are take to decide whether the a moderator "
+"must\n"
+" first approve the message or not. This section contains the\n"
+" controls for moderation of both member and non-member postings.\n"
+"\n"
+" <p>Member postings are held for moderation if their\n"
+" <b>moderation flag</b> is turned on. You can control whether\n"
+" member postings are moderated by default or not.\n"
+"\n"
+" <p>Non-member postings can be automatically\n"
+" <a href=\"?VARHELP=privacy/sender/accept_these_nonmembers\"\n"
+" >accepted</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/hold_these_nonmembers\">held "
+"for\n"
+" moderation</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/reject_these_nonmembers\"\n"
+" >rejected</a> (bounced), or\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >discarded</a>,\n"
+" either individually or as a group. Any\n"
+" posting from a non-member who is not explicitly accepted,\n"
+" rejected, or discarded, will have their posting filtered by the\n"
+" <a href=\"?VARHELP=privacy/sender/generic_nonmember_action"
+"\">general\n"
+" non-member rules</a>.\n"
+"\n"
+" <p>In the text boxes below, add one address per line; start the\n"
+" line with a ^ character to designate a <a href=\n"
+" \"http://www.python.org/doc/current/lib/module-re.html\"\n"
+" >Python regular expression</a>. When entering backslashes, do "
+"so\n"
+" as if you were using Python raw strings (i.e. you generally "
+"just\n"
+" use a single backslash).\n"
+"\n"
+" <p>Note that non-regexp matches are always done first."
+msgstr ""
+"Cuando se envía un mensaje a la lista, se realizan una serie\n"
+" de pasos para decidir si se deben aprobar por el moderador.\n"
+" Esta sección contiene las directrices de moderación de los "
+"mensajes,\n"
+" provengan o no de suscriptores.\n"
+"\n"
+" <p>Los mensajes de los susbcriptores se retienen para moderarlos "
+"si su\n"
+" <b>marca de moderación</b> está activa. Predeterminadamente, "
+"puedes\n"
+" controlar si los mensajes de los suscriptores se moderan o no.\n"
+"\n"
+" <p>Los mensajes de no-susbcriptores se pueden\n"
+" <a href=\"?VARHELP=privacy/sender/accept_these_nonmembers"
+"\">aceptar</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/hold_these_nonmembers"
+"\">retener\n"
+" para su moderación</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/reject_these_nonmembers"
+"\">rechazar</a> (rebotar), o\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers"
+"\">descartar</a> automáticamente,\n"
+" tanto individualmente o en grupo. Cualquier\n"
+" mensaje de un no-suscriptor que no se acepte,\n"
+" rechace o descarte automáticamente, se filtrará por las\n"
+" <a href=\"?VARHELP=privacy/sender/generic_nonmember_action"
+"\">reglas\n"
+" generales para los no-suscriptores</a>.\n"
+"\n"
+" <p>En la caja de texto de más abajo, agrega una dirección en "
+"cada línea, empieza la línea\n"
+" con el carácter ^ para designar una \n"
+" <a href=\"http://www.python.org/doc/current/lib/module-re.html"
+"\">\n"
+" expresión regular de Python</a>. Cuando metas barras inclinadas "
+"de izquierda a derecha (\"\\\"),\n"
+" hazlo como si estuvieras usando cadenas de Python en bruto "
+"(normalmente solo usarás una sola\n"
+" barra inclinada).\n"
+"\n"
+" Observe que las comparaciones que no sean expresiones regulares "
+"se realizan antes."
+
+#: Mailman/Gui/Privacy.py:186
+msgid "Member filters"
+msgstr "Filtros para los subscriptores"
+
+#: Mailman/Gui/Privacy.py:189
+msgid "By default, should new list member postings be moderated?"
+msgstr ""
+"Si no se indica otra cosa, ¿Deben ser moderados los envíos de\n"
+"los subscriptores nuevos?"
+
+#: Mailman/Gui/Privacy.py:191
+msgid ""
+"Each list member has a <em>moderation flag</em> which says\n"
+" whether messages from the list member can be posted directly "
+"to\n"
+" the list, or must first be approved by the list moderator. "
+"When\n"
+" the moderation flag is turned on, list member postings must be\n"
+" approved first. You, the list administrator can decide whether "
+"a\n"
+" specific individual's postings will be moderated or not.\n"
+"\n"
+" <p>When a new member is subscribed, their initial moderation "
+"flag\n"
+" takes its value from this option. Turn this option off to "
+"accept\n"
+" member postings by default. Turn this option on to, by "
+"default,\n"
+" moderate member postings first. You can always manually set "
+"an\n"
+" individual member's moderation bit by using the\n"
+" <a href=\"%(adminurl)s/members\">membership management\n"
+" screens</a>."
+msgstr ""
+"Cada suscriptor tiene una <em>marca de moderación</em> que indica\n"
+" si sus mensajes se pueden enviar directamente a la lista, o si "
+"se deben\n"
+" aprobar previamente por el moderador de la lista. Cuando la "
+"marca de\n"
+" moderación está activada, los mensajes del suscriptor\n"
+" se deben aprobar. Usted, como administrador de la lista, puede "
+"decidir si\n"
+" los mensajes de cada persona concreta se deben modera.\n"
+"\n"
+" <p>Cuando haya un suscriptor nuevo, su marca de moderación "
+"inicial\n"
+" toma su valor de esta opción. Desactive esta opción para\n"
+" aceptar mensajes del suscriptor por defecto. Active esta opción "
+"para,\n"
+" moderar los mensajes de los suscriptores por defecto. Usted "
+"siempre puede\n"
+" establecer manualmente la marca de moderación de cada "
+"suscriptor\n"
+" usando las secciones de <a href=\"%(adminurl)s/members"
+"\">administración de\n"
+" los subscriptores</a>."
+
+#: Mailman/Gui/Privacy.py:207 Mailman/Gui/Privacy.py:281
+msgid "Hold"
+msgstr "Retener"
+
+#: Mailman/Gui/Privacy.py:208
+msgid ""
+"Action to take when a moderated member posts to the\n"
+" list."
+msgstr ""
+"Acción a realizar cuando un suscriptor moderado envíe\n"
+" un mensaje a la lista."
+
+#: Mailman/Gui/Privacy.py:210
+msgid ""
+"<ul><li><b>Hold</b> -- this holds the message for approval\n"
+" by the list moderators.\n"
+"\n"
+" <p><li><b>Reject</b> -- this automatically rejects the message "
+"by\n"
+" sending a bounce notice to the post's author. The text of the\n"
+" bounce notice can be <a\n"
+" href=\"?VARHELP=privacy/sender/member_moderation_notice\"\n"
+" >configured by you</a>.\n"
+"\n"
+" <p><li><b>Discard</b> -- this simply discards the message, "
+"with\n"
+" no notice sent to the post's author.\n"
+" </ul>"
+msgstr ""
+"<ul><li><b>Hold</b> -- bloquea el mensaje para que sea aprobado\n"
+" por los moderadores de la lista.\n"
+"\n"
+" <p><li><b>Reject</b> -- rechaza el mensaje automáticamente,\n"
+" notificando de la acción al autor del mismo. Usted puede \n"
+" <a href=\"?VARHELP=privacy/sender/member_moderation_notice\"\n"
+" >configurar</a> dicho mensaje.\n"
+"\n"
+" <p><li><b>Discard</b> -- simplemente descarta el mensaje,\n"
+" sin enviar notificación al autor.\n"
+" </ul>"
+
+#: Mailman/Gui/Privacy.py:224
+msgid ""
+"Text to include in any\n"
+" <a href=\"?VARHELP/privacy/sender/member_moderation_action\"\n"
+" >rejection notice</a> to\n"
+" be sent to moderated members who post to this list."
+msgstr ""
+"Texto que se incluirá en las\n"
+" <a href=\"?VARHELP/privacy/sender/member_moderation_action\"\n"
+" >notificaciones de rechazo</a> que se envían\n"
+" como respuesta a mensajes de miembros moderados de la lista."
+
+#: Mailman/Gui/Privacy.py:229
+msgid "Non-member filters"
+msgstr "Filtros para direcciones no subscritas"
+
+#: Mailman/Gui/Privacy.py:232
+msgid ""
+"List of non-member addresses whose postings should be\n"
+" automatically accepted."
+msgstr ""
+"Lista de direcciones no subscritas cuyos envíos deben\n"
+" ser aceptados automaticamente."
+
+#: Mailman/Gui/Privacy.py:235
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" accepted with no further moderation applied. Add member\n"
+" addresses one per line; start the line with a ^ character to\n"
+" designate a regular expression match."
+msgstr ""
+"Los envíos procedentes de cualquiera de estas direcciones\n"
+" no subscritas se aceptarán sin ningún tipo de\n"
+" moderación. Ponga cada dirección en una línea\n"
+" distinta, comience la línea con un carácter ^ para\n"
+" indicar una expresión regular."
+
+#: Mailman/Gui/Privacy.py:241
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" immediately held for moderation."
+msgstr ""
+"Lista de direcciones no subscritas cuyos envíos\n"
+" se retendrán inmediatamente para su\n"
+" revisión"
+
+#: Mailman/Gui/Privacy.py:244
+msgid ""
+"Postings from any of these non-members will be immediately\n"
+" and automatically held for moderation by the list moderators.\n"
+" The sender will receive a notification message which will "
+"allow\n"
+" them to cancel their held message. Add member addresses one "
+"per\n"
+" line; start the line with a ^ character to designate a regular\n"
+" expression match."
+msgstr ""
+"Los mensajes de cualquiera de estos no-suscriptores se retendrán\n"
+" automáticamente para que sean moderados por los moderadores de "
+"la lista.\n"
+" El remitente recibirá un mensaje de notificación que le "
+"permitirá\n"
+" cancelar el mensaje. Añade las direcciones cada una en una "
+"línea. Empieza\n"
+" la línea con un carácter ^ para indicar que se trata de una "
+"expresión regular."
+
+#: Mailman/Gui/Privacy.py:252
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" automatically rejected."
+msgstr ""
+"Lista de direcciones no subscritas cuyos envíos\n"
+" se rechazarán automáticamente"
+
+#: Mailman/Gui/Privacy.py:255
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" rejected. In other words, their messages will be bounced back "
+"to\n"
+" the sender with a notification of automatic rejection. This\n"
+" option is not appropriate for known spam senders; their "
+"messages\n"
+" should be\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >automatically discarded</a>.\n"
+"\n"
+" <p>Add member addresses one per line; start the line with a ^\n"
+" character to designate a regular expression match."
+msgstr ""
+"Los mensajes de todos estos no-suscriptores se rechazarán\n"
+" automáticamente. En otras palabras, dichos mensajes se "
+"devolverá\n"
+" al remitente con una notificación de rechazo automático. Esta\n"
+" opción no es apropiada para emisores conocidos de spam cuyos\n"
+" mensajes deberín ser\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" automáticamente descartados</a>. Añade las direcciones cada una "
+"en\n"
+" una línea. Empieza la línea con un carácter ^ para indicar que "
+"se\n"
+" trata de una expresión regular."
+
+#: Mailman/Gui/Privacy.py:267
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" automatically discarded."
+msgstr ""
+"Lista de direcciones no subscritas cuyos envíos\n"
+" se descartarán automáticamente"
+
+#: Mailman/Gui/Privacy.py:270
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" discarded. That is, the message will be thrown away with no\n"
+" further processing or notification. The sender will not "
+"receive\n"
+" a notification or a bounce, however the list moderators can\n"
+" optionally <a href=\"?VARHELP=privacy/sender/"
+"forward_auto_discards\"\n"
+" >receive copies of auto-discarded messages.</a>.\n"
+"\n"
+" <p>Add member addresses one per line; start the line with a ^\n"
+" character to designate a regular expression match."
+msgstr ""
+"Los mensajes de todos estos no-suscriptores serán automáticamente\n"
+" descartados. O sea, el mensaje será eliminado sin más preguntas "
+"ni\n"
+" notificaciones. El remitente no recibirá ninguna notificación "
+"ni ningún \n"
+" mensaje rebotado, aunque los moderadores de la lista pueden, si "
+"así lo desean\n"
+" <a href=\"?VARHELP=privacy/sender/forward_auto_discards\"\n"
+" recibir copias de los mensajes descartados automáticamente</a>."
+
+#: Mailman/Gui/Privacy.py:282
+msgid ""
+"Action to take for postings from non-members for which no\n"
+" explicit action is defined."
+msgstr ""
+"Acción a tomar para los envíos procedentes de\n"
+" aquellos no subscritos a la lista para los que\n"
+" no se ha definido ninguna acción."
+
+#: Mailman/Gui/Privacy.py:285
+msgid ""
+"When a post from a non-member is received, the message's\n"
+" sender is matched against the list of explicitly\n"
+" <a href=\"?VARHELP=privacy/sender/accept_these_nonmembers\"\n"
+" >accepted</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/hold_these_nonmembers\">held</"
+"a>,\n"
+" <a href=\"?VARHELP=privacy/sender/reject_these_nonmembers\"\n"
+" >rejected</a> (bounced), and\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >discarded</a> addresses. If no match is found, then this "
+"action\n"
+" is taken."
+msgstr ""
+"Cuando se recibe un mensaje de un no-suscriptor, se comprueba si\n"
+" el remitente se encuentra en el listado de direcciones "
+"explícitamente\n"
+" <a href=\"?VARHELP=privacy/sender/accept_these_nonmembers"
+"\">aceptadas</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/hold_these_nonmembers"
+"\">retenidas</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/reject_these_nonmembers"
+"\">rechazadas</a> (rebotadas), o\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers"
+"\">descartadas</a>.\n"
+" Si no se encuentra en ninguno de estos listados, se realiza "
+"esta acción."
+
+#: Mailman/Gui/Privacy.py:297
+msgid ""
+"Should messages from non-members, which are automatically\n"
+" discarded, be forwarded to the list moderator?"
+msgstr ""
+"¿deberían reenviarse al moderador de la lista los mensajes de los\n"
+" no-subscriptores que sean automáticamente descartados?"
+
+#: Mailman/Gui/Privacy.py:303
+msgid ""
+"This section allows you to configure various filters based on\n"
+" the recipient of the message."
+msgstr ""
+"Esta sección le permite configurar varios filtros basados en el\n"
+" destinatario del mensaje."
+
+#: Mailman/Gui/Privacy.py:306
+msgid "Recipient filters"
+msgstr "Filtros para los destinatarios"
+
+#: Mailman/Gui/Privacy.py:310
+msgid ""
+"Must posts have list named in destination (to, cc) field\n"
+" (or be among the acceptable alias names, specified below)?"
+msgstr ""
+"Los envíos a la lista, ¿Deben tener el nombre\n"
+" de la lista en la dirección de destino (to, cc)? (o\n"
+" que esté entre los nombre de alias aceptables\n"
+" especificados abajo)"
+
+#: Mailman/Gui/Privacy.py:313
+msgid ""
+"Many (in fact, most) spams do not explicitly name their\n"
+" myriad destinations in the explicit destination addresses - in\n"
+" fact often the To: field has a totally bogus address for\n"
+" obfuscation. The constraint applies only to the stuff in the\n"
+" address before the '@' sign, but still catches all such spams.\n"
+"\n"
+" <p>The cost is that the list will not accept unhindered any\n"
+" postings relayed from other addresses, unless\n"
+"\n"
+" <ol>\n"
+" <li>The relaying address has the same name, or\n"
+"\n"
+" <li>The relaying address name is included on the options "
+"that\n"
+" specifies acceptable aliases for the list.\n"
+"\n"
+" </ol>"
+msgstr ""
+"Muchos (de hecho, la mayoría) del correo basura no nombran explícitamente su "
+"miriada de destinos - de hecho, normalmente el campo To: tiene una dirección "
+"falsa para producir confusión. La restricción se aplica solo a la parte de "
+"la dirección que está delante de la '@', pero aún así detecta dichos correos "
+"basura.<p>El costo resultante es debido a que la lista no aceptará sin "
+"estorbar mensajes mandadas a otra dirección, a menos <ol><li> La dirección "
+"tenga el mismo nombre, o<li> La dirección esté entre los alias aceptables "
+"para la lista</ol>"
+
+#: Mailman/Gui/Privacy.py:331
+msgid ""
+"Alias names (regexps) which qualify as explicit to or cc\n"
+" destination names for this list."
+msgstr ""
+"Alias (expresiones regulares) que cualifiquen\n"
+" como destino explícito"
+
+#: Mailman/Gui/Privacy.py:334
+msgid ""
+"Alternate addresses that are acceptable when\n"
+" `require_explicit_destination' is enabled. This option takes "
+"a\n"
+" list of regular expressions, one per line, which is matched\n"
+" against every recipient address in the message. The matching "
+"is\n"
+" performed with Python's re.match() function, meaning they are\n"
+" anchored to the start of the string.\n"
+" \n"
+" <p>For backwards compatibility with Mailman 1.1, if the regexp\n"
+" does not contain an `@', then the pattern is matched against "
+"just\n"
+" the local part of the recipient address. If that match fails, "
+"or\n"
+" if the pattern does contain an `@', then the pattern is "
+"matched\n"
+" against the entire recipient address.\n"
+" \n"
+" <p>Matching against the local part is deprecated; in a future\n"
+" release, the pattern will always be matched against the entire\n"
+" recipient address."
+msgstr ""
+"Direcciones alternativas que son aceptables\n"
+" cuando se habilita `require_explicit_destination'. Esta\n"
+" opción acepta una serie de expresiones regulares, cada una\n"
+" en un línea distinta que se comparan con cada uno de los\n"
+" destinatarios del mensaje. La comparación se realiza con la\n"
+" función de Python re.match(), lo que significa que se comienza\n"
+" desde el principio de la cadena.\n"
+" \n"
+" <p>Para que exista compatibilidad\n"
+" con Mailman 1.1, si la expresión regular no contiene una '@'\n"
+" entonces el patrón se compara justo con la parte local de la\n"
+" dirección del destinatario. Si la comparación falla o\n"
+" el patrón no contiene una '@' entonces el patrón se\n"
+" compara con la dirección completa del destinatario.\n"
+" \n"
+" <p>Las\n"
+" comparaciones contra la parte local están obsoletas,\n"
+" en versiones futuras, el patrón siempre se comparará\n"
+" contra la dirección completa del destinatario."
+
+#: Mailman/Gui/Privacy.py:352
+msgid "Ceiling on acceptable number of recipients for a posting."
+msgstr "Número máximo aceptable de destinatarios en una entrega"
+
+#: Mailman/Gui/Privacy.py:354
+msgid ""
+"If a posting has this number, or more, of recipients, it is\n"
+" held for admin approval. Use 0 for no ceiling."
+msgstr ""
+"Si un envío a la lista tiene al menos esta cantidad de destinatarios, se "
+"retendrá para su aprobación por parte del administrador de la lista. Ponga "
+"un 0 si no quiere que tenga límite"
+
+#: Mailman/Gui/Privacy.py:359
+msgid ""
+"This section allows you to configure various anti-spam\n"
+" filters posting filters, which can help reduce the amount of "
+"spam\n"
+" your list members end up receiving.\n"
+" "
+msgstr ""
+"Esta sección le permite configurar varios filtros anti-spam,\n"
+" que le pueden ayudar a reducir la cantidad de spam que acaban\n"
+" recibiendo los suscriptores."
+
+#: Mailman/Gui/Privacy.py:364
+msgid "Anti-Spam filters"
+msgstr "Filtros AntiSpam"
+
+#: Mailman/Gui/Privacy.py:367
+msgid "Hold posts with header value matching a specified regexp."
+msgstr ""
+"Retener envíos con un valor de cabecera que coincide con una expresión "
+"regular arbitraria."
+
+#: Mailman/Gui/Privacy.py:368
+msgid ""
+"Use this option to prohibit posts according to specific\n"
+" header values. The target value is a regular-expression for\n"
+" matching against the specified header. The match is done\n"
+" disregarding letter case. Lines beginning with '#' are "
+"ignored\n"
+" as comments.\n"
+"\n"
+" <p>For example:<pre>to: .*@public.com </pre> says to hold all\n"
+" postings with a <em>To:</em> mail header containing '@public."
+"com'\n"
+" anywhere among the addresses.\n"
+"\n"
+" <p>Note that leading whitespace is trimmed from the regexp. "
+"This\n"
+" can be circumvented in a number of ways, e.g. by escaping or\n"
+" bracketing it."
+msgstr ""
+"Use esta opción para prohibir envíos acorde a los valores de\n"
+" determinadas cabeceras. El valor es una expresión regular\n"
+" que se compara contra las cabeceras indicadas. La comparación\n"
+" se realiza sin tener en cuenta mayúsculas y minúsculas.\n"
+" Las líneas que empiezan con # se ignoran al considerarse\n"
+" comentarios.<p> Por ejemplo: <pre>to: .*@public.com </pre> indica\n"
+" que retenga todos los envíos cuyo campo <em>to</em> en la\n"
+" cabecera contenga '@public.com' en cualquier posición.<p>Observe\n"
+" que los espacios en blanco se quitan de la expresión regular.\n"
+" Esto se puede evitar de distintas maneras, escapándo los\n"
+" espacios o poniendolos entreparéntesis."
+
+#: Mailman/Gui/Topics.py:28
+msgid "Topics"
+msgstr "Temas"
+
+#: Mailman/Gui/Topics.py:36
+msgid "List topic keywords"
+msgstr "Palabras clave de los temas de la lista"
+
+#: Mailman/Gui/Topics.py:38
+msgid "Disabled"
+msgstr "inhabilidata"
+
+#: Mailman/Gui/Topics.py:38
+msgid "Enabled"
+msgstr "Habilidata"
+
+#: Mailman/Gui/Topics.py:39
+msgid "Should the topic filter be enabled or disabled?"
+msgstr "¿Debe activarse o desactivarse el filtrado de temas?"
+
+#: Mailman/Gui/Topics.py:41
+msgid ""
+"The topic filter categorizes each incoming email message\n"
+" according to <a\n"
+" href=\"http://www.python.org/doc/current/lib/module-re.html"
+"\">regular\n"
+" expression filters</a> you specify below. If the message's\n"
+" <code>Subject:</code> or <code>Keywords:</code> header contains "
+"a\n"
+" match against a topic filter, the message is logically placed\n"
+" into a topic <em>bucket</em>. Each user can then choose to "
+"only\n"
+" receive messages from the mailing list for a particular topic\n"
+" bucket (or buckets). Any message not categorized in a topic\n"
+" bucket registered with the user is not delivered to the list.\n"
+"\n"
+" <p>Note that this feature only works with regular delivery, "
+"not\n"
+" digest delivery.\n"
+"\n"
+" <p>The body of the message can also be optionally scanned for\n"
+" <code>Subject:</code> and <code>Keywords:</code> headers, as\n"
+" specified by the <a\n"
+" href=\"?VARHELP=topics/topics_bodylines_limit"
+"\">topics_bodylines_limit</a>\n"
+" configuration variable."
+msgstr ""
+"El filtro según el tema, clasifica cada mensaje recibido\n"
+" según: los <a href=\"http://www.python.org/doc/current/lib/"
+"module-re.html\">\n"
+" filtros de expresiones regulares</a> que especifique abajo. Si "
+"las cabeceras\n"
+" <code>Subject:</code> (asunto) o <code>Keywords</code> "
+"(palabras clave)\n"
+" coinciden con uno de los filtros por temas, el mensaje se "
+"coloca en orden lógico\n"
+" en el <em>cajón</em> del tema. Cada uno de los usuarios puede "
+"así elegir recibir\n"
+" únicamente mensajes de la lista de distribución que "
+"correspondan a uno o más temas.\n"
+" Los mensajes que no se encuentren en los cajones de temas "
+"elegidos por el usuario\n"
+" no se entregarán a la lista.\n"
+"\n"
+" <p>Tenga en cuenta que esta función solo funciona en la entrega "
+"regular,\n"
+" y no en la entrega por recopilaciones (digest).\n"
+"\n"
+" <p>Opcionalmente también se puede procesar parte del cuerpo del "
+"mensaje en busca de\n"
+" cabeceras <code>Subject:</code> y <code>Keyword:</code>, como "
+"se especifica en la\n"
+" variable de configuración\n"
+" <a href=\"?VARHELP=topics/topics_bodylines_limit"
+"\">topics_bodylines_limit</a>."
+
+#: Mailman/Gui/Topics.py:62
+msgid "How many body lines should the topic matcher scan?"
+msgstr ""
+"Cuántas líneas del cuerpo del mensaje debe escanear el buscador de temas."
+
+#: Mailman/Gui/Topics.py:64
+msgid ""
+"The topic matcher will scan this many lines of the message\n"
+" body looking for topic keyword matches. Body scanning stops "
+"when\n"
+" either this many lines have been looked at, or a non-header-"
+"like\n"
+" body line is encountered. By setting this value to zero, no "
+"body\n"
+" lines will be scanned (i.e. only the <code>Keywords:</code> "
+"and\n"
+" <code>Subject:</code> headers will be scanned). By setting "
+"this\n"
+" value to a negative number, then all body lines will be "
+"scanned\n"
+" until a non-header-like line is encountered.\n"
+" "
+msgstr ""
+"El buscador de temas escaneará esta cantidad de líneas del cuerpo\n"
+" del mensaje en busca de palabras clave de los temas. El escaneo "
+"del cuerpo\n"
+" se detiene cuando se ha mirado en todas estas líneas o cuando "
+"se\n"
+" encuentra una línea en el cuerpo del mensaje que no parece una "
+"cabecera.\n"
+" Poniendo este valor a cero, no se escaneará ninguna línea\n"
+" del cuerpo (es decir, solamente se escanearán las cabeceras\n"
+" <code>Keywords:</code> y <code>Subject:</code>). Si se pone un "
+"número\n"
+" negativo, se escanearán todas las líneas del cuerpo\n"
+" hasta que se encuentre una línea que no parezca una cabecera.\n"
+" "
+
+#: Mailman/Gui/Topics.py:75
+msgid "Topic keywords, one per line, to match against each message."
+msgstr "Palabras claves de temas, una por línea, a buscar en los mensajes."
+
+#: Mailman/Gui/Topics.py:77
+msgid ""
+"Each topic keyword is actually a regular expression, which is\n"
+" matched against certain parts of a mail message, specifically "
+"the\n"
+" <code>Keywords:</code> and <code>Subject:</code> message "
+"headers.\n"
+" Note that the first few lines of the body of the message can "
+"also\n"
+" contain a <code>Keywords:</code> and <code>Subject:</code>\n"
+" \"header\" on which matching is also performed."
+msgstr ""
+"Cada palabra clave de temas es en realidad una expresión regular,\n"
+" que se compara contra ciertas partes del mensaje de correo, "
+"concretamente\n"
+" las cabeceras <code>Keywords:</code> y <code>Subject:</code>.\n"
+" Hay que tener en cuenta que las primeras líneas del cuerpo del "
+"mensaje\n"
+" pueden contener también unas \"cabeceras\" \n"
+" <code>Keywords:</code> y <code>Subject:</code> sobre las que\n"
+" también se lleva a cabo la búsqueda."
+
+#: Mailman/Gui/Topics.py:116
+msgid ""
+"Topic specifications require both a name and\n"
+" a pattern. Incomplete topics will be ignored."
+msgstr ""
+"Las especificaciones para temas deben incluir tanto un nombre como\n"
+" un patrón. Se ignorarán las definiciones incompletas."
+
+#: Mailman/Gui/Topics.py:124
+msgid ""
+"The topic pattern `%(pattern)s' is not a\n"
+" legal regular expression. It will be discarded."
+msgstr ""
+"El patrón de tema `%(pattern)s' no es una\n"
+" expresión regular correcta. Se descartará.."
+
+#: Mailman/Gui/Usenet.py:25
+msgid "Mail&lt;-&gt;News&nbsp;gateways"
+msgstr "Pasarela de Correo-e&lt;-&gt;Noticias"
+
+#: Mailman/Gui/Usenet.py:35
+msgid "Mail-to-News and News-to-Mail gateway services."
+msgstr "Servicios de pasarela de Correo a Noticias y de Noticas a Correo "
+
+#: Mailman/Gui/Usenet.py:37
+msgid "News server settings"
+msgstr "Configuración del servidor de noticias"
+
+#: Mailman/Gui/Usenet.py:40
+msgid ""
+"The Internet address of the machine your News server is\n"
+" running on."
+msgstr ""
+"La dirección Internet de la máquina en la que\n"
+" se está ejecutando su servidor de noticias."
+
+#: Mailman/Gui/Usenet.py:42
+msgid ""
+"The News server is not part of Mailman proper. You have to\n"
+" already have access to a NNTP server, and that NNTP server has "
+"to\n"
+" recognize the machine this mailing list runs on as a machine\n"
+" capable of reading and posting news."
+msgstr ""
+"El servidor de Noticias no es una parte integrante de Mailman. Tienes que\n"
+" tener acceso al servidor NNTP, y hace falta que ese servidor\n"
+" NNTP reconozca la máquina donde reside este servidor\n"
+" de listas de distribución como una máquina\n"
+" capaz de leer y enviar noticias."
+
+#: Mailman/Gui/Usenet.py:48
+msgid "The name of the Usenet group to gateway to and/or from."
+msgstr "El nombre del grupo de Usenet (noticias) al que mandar y/o recibir."
+
+#: Mailman/Gui/Usenet.py:51
+msgid ""
+"Should new posts to the mailing list be sent to the\n"
+" newsgroup?"
+msgstr ""
+"¿Mandar los envíos nuevos a la lista de\n"
+" distribución al grupo de noticias?"
+
+#: Mailman/Gui/Usenet.py:55
+msgid ""
+"Should new posts to the newsgroup be sent to the mailing\n"
+" list?"
+msgstr ""
+"¿Mandar los envíos nuevos al grupo de noticias\n"
+" a la lista de distribución?"
+
+#: Mailman/Gui/Usenet.py:58
+msgid "Forwarding options"
+msgstr "Opciones de reenvío"
+
+#: Mailman/Gui/Usenet.py:61
+msgid "Moderated"
+msgstr "Moderado"
+
+#: Mailman/Gui/Usenet.py:61
+msgid "Open list, moderated group"
+msgstr "Lista abierta, grupo moderado"
+
+#: Mailman/Gui/Usenet.py:64
+msgid "The moderation policy of the newsgroup."
+msgstr "Política de moderación del grupo de noticias"
+
+#: Mailman/Gui/Usenet.py:66
+msgid ""
+"This setting determines the moderation policy of the\n"
+" newsgroup and its interaction with the moderation policy of "
+"the\n"
+" mailing list. This only applies to the newsgroup that you are\n"
+" gatewaying <em>to</em>, so if you are only gatewaying from\n"
+" Usenet, or the newsgroup you are gatewaying to is not "
+"moderated,\n"
+" set this option to <em>None</em>.\n"
+"\n"
+" <p>If the newsgroup is moderated, you can set this mailing "
+"list\n"
+" up to be the moderation address for the newsgroup. By "
+"selecting\n"
+" <em>Moderated</em>, an additional posting hold will be placed "
+"in\n"
+" the approval process. All messages posted to the mailing list\n"
+" will have to be approved before being sent on to the "
+"newsgroup,\n"
+" or to the mailing list membership.\n"
+"\n"
+" <p><em>Note that if the message has an <tt>Approved</tt> "
+"header\n"
+" with the list's administrative password in it, this hold test\n"
+" will be bypassed, allowing privileged posters to send messages\n"
+" directly to the list and the newsgroup.</em>\n"
+"\n"
+" <p>Finally, if the newsgroup is moderated, but you want to "
+"have\n"
+" an open posting policy anyway, you should select <em>Open "
+"list,\n"
+" moderated group</em>. The effect of this is to use the normal\n"
+" Mailman moderation facilities, but to add an <tt>Approved</tt>\n"
+" header to all messages that are gatewayed to Usenet."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:92
+msgid "Prefix <tt>Subject:</tt> headers on postings gated to news?"
+msgstr "¿Prefijar las cabeceras <tt>Subject:</tt> en los envíos a las news?"
+
+#: Mailman/Gui/Usenet.py:93
+msgid ""
+"Mailman prefixes <tt>Subject:</tt> headers with\n"
+" <a href=\"?VARHELP=general/subject_prefix\">text you can\n"
+" customize</a> and normally, this prefix shows up in messages\n"
+" gatewayed to Usenet. You can set this option to <em>No</em> "
+"to\n"
+" disable the prefix on gated messages. Of course, if you turn "
+"off\n"
+" normal <tt>Subject:</tt> prefixes, they won't be prefixed for\n"
+" gated messages either."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:101
+msgid "Mass catch up"
+msgstr "Sincronización masiva"
+
+#: Mailman/Gui/Usenet.py:104
+msgid "Should Mailman perform a <em>catchup</em> on the newsgroup?"
+msgstr ""
+"Debería realizar Mailman una <em>sincronización</em> con los grupos de "
+"noticias"
+
+#: Mailman/Gui/Usenet.py:105
+msgid ""
+"When you tell Mailman to perform a catchup on the newsgroup,\n"
+" this means that you want to start gating messages to the "
+"mailing\n"
+" list with the next new message found. All earlier messages on\n"
+" the newsgroup will be ignored. This is as if you were reading\n"
+" the newsgroup yourself, and you marked all current messages as\n"
+" <em>read</em>. By catching up, your mailing list members will\n"
+" not see any of the earlier messages."
+msgstr ""
+"Cuando le diga a Mailman que realice una sincronización con los\n"
+" grupos de noticias, esto significa que que quiere empezar a\n"
+" transferir mensajes a la lista de distribución a partir\n"
+" del primer mensaje nuevo encontrado. Todos los mensajes "
+"previos\n"
+" del grupo de noticias se ignorarán. Esto es lo mismo que\n"
+" su usted estuviera leyendo el grupo de noticia y marcase como\n"
+" <em>leidos</em> todos todos los mensajes hasta la fecha. Al\n"
+" ponerse al día, los subscriptores de la lista de\n"
+" distribución no verán ninguno de los mensajes\n"
+" anteriores."
+
+#: Mailman/Gui/Usenet.py:119
+msgid "Mass catchup completed"
+msgstr "Sincronización terminada"
+
+#: Mailman/Gui/Usenet.py:131
+msgid ""
+"You cannot enable gatewaying unless both the\n"
+" <a href=\"?VARHELP=gateway/nntp_host\">news server field</a> "
+"and\n"
+" the <a href=\"?VARHELP=gateway/linked_newsgroup\">linked\n"
+" newsgroup</a> fields are filled in."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:47
+msgid "%(listinfo_link)s list run by %(owner_link)s"
+msgstr "%(listinfo_link)s la administra %(owner_link)s"
+
+#: Mailman/HTMLFormatter.py:55
+msgid "%(realname)s administrative interface"
+msgstr "Interfaz administrativa de %(realname)s"
+
+#: Mailman/HTMLFormatter.py:56
+msgid " (requires authorization)"
+msgstr " (requiere autorización)"
+
+#: Mailman/HTMLFormatter.py:59
+msgid "Overview of all %(hostname)s mailing lists"
+msgstr "Panorámica de todas las listas de distribución de %(hostname)s"
+
+#: Mailman/HTMLFormatter.py:80
+msgid "<em>(1 private member not shown)</em>"
+msgstr "<em>(No se muestra un subscriptor oculto)</em>"
+
+#: Mailman/HTMLFormatter.py:82
+msgid "<em>(%(num_concealed)d private members not shown)</em>"
+msgstr ""
+"<em>(No se muestran %(num_concealed)d miembro%(plu)s oculto%(plu)s)</em>"
+
+#: Mailman/HTMLFormatter.py:137
+msgid "; it was disabled by you"
+msgstr "; fué inhabilitada por ti"
+
+#: Mailman/HTMLFormatter.py:139
+msgid "; it was disabled by the list administrator"
+msgstr "; fué inhabilitada por el administrador de su lista"
+
+#: Mailman/HTMLFormatter.py:143
+msgid ""
+"; it was disabled due to excessive bounces. The\n"
+" last bounce was received on %(date)s"
+msgstr ""
+"; fué inhabilitada por demasiados mensajes rebotados. El\n"
+" último mensaje rebotado se recibió el %(date)s"
+
+#: Mailman/HTMLFormatter.py:146
+msgid "; it was disabled for unknown reasons"
+msgstr "; fué inhabilitado por algún motivo desconocido"
+
+#: Mailman/HTMLFormatter.py:148
+msgid "Note: your list delivery is currently disabled%(reason)s."
+msgstr "Nota: Actualmente tiene inhabilitada la entrega de correo %(reason)s."
+
+#: Mailman/HTMLFormatter.py:151
+msgid "Mail delivery"
+msgstr "Entrega de correo"
+
+#: Mailman/HTMLFormatter.py:153 Mailman/HTMLFormatter.py:298
+msgid "the list administrator"
+msgstr "el administrador de su lista"
+
+#: Mailman/HTMLFormatter.py:154
+msgid ""
+"<p>%(note)s\n"
+"\n"
+" <p>You may have disabled list delivery intentionally,\n"
+" or it may have been triggered by bounces from your email\n"
+" address. In either case, to re-enable delivery, change the\n"
+" %(link)s option below. Contact %(mailto)s if you have any\n"
+" questions or need assistance."
+msgstr ""
+"<p>%(note)s\n"
+"\n"
+" <p>Puede que haya inhabilitado la recepción de los\n"
+" mensajes deliveradamente, o puede que se haya activado debido\n"
+" a los rebotes que está produciendo su dirección\n"
+" de correo electrónico. En cualquier caso, para habilitar\n"
+" de nuevo la recepción de los mensajes de la lista cambie\n"
+" la opción %(link)s de abajo. Contacte con %(mailto)s si\n"
+" tiene alguna pregunta o si necesita ayuda."
+
+#: Mailman/HTMLFormatter.py:166
+msgid ""
+"<p>We have received some recent bounces from your\n"
+" address. Your current <em>bounce score</em> is %(score)s out of "
+"a\n"
+" maximum of %(total)s. Please double check that your subscribed\n"
+" address is correct and that there are no problems with delivery "
+"to\n"
+" this address. Your bounce score will be automatically reset if\n"
+" the problems are corrected soon."
+msgstr ""
+"<p>Hemos recibido mensajes rebotados producidos por tu dirección de correo "
+"electrónico.\n"
+" El conteo de tus <em>mensajes rebotados</em> sobrepasa %(score)s "
+"de un máximo de %(total)s.\n"
+" Por favor, compruebe que la dirección con la que está subscrito "
+"es correcta y que no tiene\n"
+" problemas en la entrega. El conteo de mensajes rebotados se "
+"pondrá a cero automáticamente si\n"
+" los problemas se corrigen pronto."
+
+#: Mailman/HTMLFormatter.py:178
+msgid ""
+"(Note - you are subscribing to a list of mailing lists, so the %(type)s "
+"notice will be sent to the admin address for your membership, %(addr)s.)<p>"
+msgstr ""
+"Atención - está subscrito a una lista que manda a otras listas de "
+"distribución, por lo que la notificación de %s se mandará a la dirección "
+"administrativa de su dirección, %s.)<p>"
+
+#: Mailman/HTMLFormatter.py:188
+msgid ""
+"You will be sent email requesting confirmation, to\n"
+" prevent others from gratuitously subscribing you."
+msgstr ""
+"Se le mandará un mensaje de correo electrónico pidiendole una\n"
+" confirmación, para prevenir que otras personas le\n"
+" subscriban sin que usted lo sepa."
+
+#: Mailman/HTMLFormatter.py:191
+msgid ""
+"This is a closed list, which means your subscription\n"
+" will be held for approval. You will be notified of the list\n"
+" moderator's decision by email."
+msgstr ""
+"Esta es una lista cerrada, lo que significa que su\n"
+" subscripción se retendrá para que el\n"
+" administrador de su visto bueno. Se le\n"
+" notificará de la decisión del administrador\n"
+" via correo electrónico."
+
+#: Mailman/HTMLFormatter.py:194 Mailman/HTMLFormatter.py:201
+msgid "also "
+msgstr "también "
+
+#: Mailman/HTMLFormatter.py:196
+msgid ""
+"You will be sent email requesting confirmation, to\n"
+" prevent others from gratuitously subscribing you. Once\n"
+" confirmation is received, your request will be held for "
+"approval\n"
+" by the list moderator. You will be notified of the moderator's\n"
+" decision by email."
+msgstr ""
+"Se le mandará un mensaje de correo electrónico pidiendole\n"
+" una confirmación, esto previene que otras personas le\n"
+" subscriban sin que usted lo sepa. Una vez que se reciba\n"
+" su confirmación, su petición se mandará al administrador\n"
+" de la lista para que la apruebe. Se le notificará de la\n"
+" decisión del administrador por correo electrónico."
+
+#: Mailman/HTMLFormatter.py:205
+msgid ""
+"This is %(also)sa private list, which means that the\n"
+" list of members is not available to non-members."
+msgstr ""
+"Esta lista %(also)s es privada, lo que significa que los\n"
+" subscriptores de la lista no están disponibles a los que\n"
+" no estén subscritos. "
+
+#: Mailman/HTMLFormatter.py:208
+msgid ""
+"This is %(also)sa hidden list, which means that the\n"
+" list of members is available only to the list administrator."
+msgstr ""
+"Esta lista %(also)s es oculta, lo que singinifica que\n"
+" los subscriptores de la lista solo están disponibles\n"
+" para el administrador de la lista."
+
+#: Mailman/HTMLFormatter.py:211
+msgid ""
+"This is %(also)sa public list, which means that the\n"
+" list of members list is available to everyone."
+msgstr ""
+"Esta lista %(also)s es pública, lo que significa que\n"
+" los subscriptores de la lista están disponibles para cualquiera"
+
+#: Mailman/HTMLFormatter.py:214
+msgid ""
+" (but we obscure the addresses so they are not\n"
+" easily recognizable by spammers)."
+msgstr ""
+" (pero modificaremos las direcciones de correo\n"
+" electrónico de manera que no sean fácilmente\n"
+" reconocibles por los spammers)."
+
+#: Mailman/HTMLFormatter.py:219
+msgid ""
+"<p>(Note that this is an umbrella list, intended to\n"
+" have only other mailing lists as members. Among other things,\n"
+" this means that your confirmation request will be sent to the\n"
+" `%(sfx)s' account for your address.)"
+msgstr ""
+"<p>(Advierta que esta lista manda a otras listas de\n"
+" distribución, cuyo fin es tener únicamente como\n"
+" subscriptores a otras listas de distribución. Entre\n"
+" otras cosas, esto significa que sus confirmaciones\n"
+" se mandarán a la parte de usuario de su dirección\n"
+" más '%(sfx)s'.)"
+
+#: Mailman/HTMLFormatter.py:248
+msgid "<b><i>either</i></b> "
+msgstr "&nbsp;"
+
+#: Mailman/HTMLFormatter.py:253
+msgid ""
+"To unsubscribe from %(realname)s, get a password reminder,\n"
+" or change your subscription options %(either)senter your "
+"subscription\n"
+" email address:\n"
+" <p><center> "
+msgstr ""
+"Para anular su subscripción de %(realname)s, consiga un recordatorio\n"
+" de su clave o cambie sus opciones de subscripción %(either)s\n"
+" indique su dirección de correo electrónico con el que está "
+"subscrito:\n"
+" <p><center> "
+
+#: Mailman/HTMLFormatter.py:260
+msgid "Unsubscribe or edit options"
+msgstr "Anular su subscripción o editar sus preferencias"
+
+#: Mailman/HTMLFormatter.py:264
+msgid ""
+"<p>... <b><i>or</i></b> select your entry from\n"
+" the subscribers list (see above)."
+msgstr ""
+"<p>... <b><i>o</i></b> seleccionese de entre los\n"
+" subscriptores (vea arriba)."
+
+#: Mailman/HTMLFormatter.py:266
+msgid ""
+" If you leave the field blank, you will be prompted for\n"
+" your email address"
+msgstr ""
+"Si dejas el campo en blanco, se te preguntará tu\n"
+" dirección de correo electrónico"
+
+#: Mailman/HTMLFormatter.py:274
+msgid ""
+"(<i>%(which)s is only available to the list\n"
+" members.</i>)"
+msgstr ""
+"(<i>La %(which)s solo está disponible para\n"
+" los subscriptores de la lista.</i>)"
+
+#: Mailman/HTMLFormatter.py:278
+msgid ""
+"(<i>%(which)s is only available to the list\n"
+" administrator.</i>)"
+msgstr ""
+"(<i>La %(which)s solo está disponible para\n"
+" los adminitradores de la lista.</i>)"
+
+#: Mailman/HTMLFormatter.py:288
+msgid "Click here for the list of "
+msgstr " Dele con el ratón aquí para ver la lista de subcriptores de "
+
+#: Mailman/HTMLFormatter.py:290
+msgid " subscribers: "
+msgstr ": "
+
+#: Mailman/HTMLFormatter.py:292
+msgid "Visit Subscriber list"
+msgstr "Visitar la lista de subscriptores"
+
+#: Mailman/HTMLFormatter.py:295
+msgid "members"
+msgstr "Subscriptores de la lista"
+
+# In this entry insert a space at the end of string, it will be stripped.
+#: Mailman/HTMLFormatter.py:296
+msgid "Address:"
+msgstr "Dirección de correo-e "
+
+# In this entry insert a space at the end of string, it will be stripped.
+#: Mailman/HTMLFormatter.py:299
+msgid "Admin address:"
+msgstr "Dirección de correo-e "
+
+#: Mailman/HTMLFormatter.py:302
+msgid "The subscribers list"
+msgstr "La lista de subscriptores"
+
+#: Mailman/HTMLFormatter.py:304
+msgid " <p>Enter your "
+msgstr " <p>Introduzca su "
+
+#: Mailman/HTMLFormatter.py:306
+msgid " and password to visit the subscribers list: <p><center> "
+msgstr " y la clave para visitar la lista de subscriptores<p><center> "
+
+#: Mailman/HTMLFormatter.py:311
+msgid "Password: "
+msgstr " Clave: "
+
+#: Mailman/HTMLFormatter.py:315
+msgid "Visit Subscriber List"
+msgstr "Visitar la lista de subscriptores"
+
+#: Mailman/HTMLFormatter.py:345
+msgid "Once a month, your password will be emailed to you as a reminder."
+msgstr ""
+"Cada més, se le enviará su clave por correo electrónico para recordarsela."
+
+#: Mailman/HTMLFormatter.py:391
+msgid "The current archive"
+msgstr "El archivo actual"
+
+#: Mailman/Handlers/Acknowledge.py:59
+msgid "%(realname)s post acknowledgement"
+msgstr "Confirmación de envío a lista de distribución %(realname)s"
+
+#: Mailman/Handlers/CalcRecips.py:68
+msgid ""
+"Your urgent message to the %(realname)s mailing list was not authorized for\n"
+"delivery. The original message as received by Mailman is attached.\n"
+msgstr ""
+"El mensaje urgente que envió a la lista de correo %(realname)s no se ha "
+"autorizado para su\n"
+"distribución. Se adjunta el mensaje original tal y como lo ha recibido "
+"Mailman.\n"
+
+#: Mailman/Handlers/Emergency.py:29
+msgid "Emergency hold on all list traffic is in effect"
+msgstr "Está activo el bloqueo de emergencia de todo el tráfico de la lista"
+
+#: Mailman/Handlers/Emergency.py:30 Mailman/Handlers/Hold.py:58
+msgid "Your message was deemed inappropriate by the moderator."
+msgstr "Su mensaje se ha considerado inapropiado por el moderador."
+
+#: Mailman/Handlers/Hold.py:53
+msgid "Sender is explicitly forbidden"
+msgstr "El remitente está explícitamente vetado"
+
+#: Mailman/Handlers/Hold.py:54
+msgid "You are forbidden from posting messages to this list."
+msgstr "Tiene prohibido mandar mensajes a esta lista."
+
+#: Mailman/Handlers/Hold.py:57
+msgid "Post to moderated list"
+msgstr "Envío a una lista moderada"
+
+#: Mailman/Handlers/Hold.py:61
+msgid "Post by non-member to a members-only list"
+msgstr ""
+"Mensaje dirijido a una lista privada procedente de una dirección que no "
+"pertenece a la lista"
+
+#: Mailman/Handlers/Hold.py:62
+msgid "Non-members are not allowed to post messages to this list."
+msgstr ""
+"A los que no estén subscritos no se les permite mandar mensajes a esta lista."
+
+#: Mailman/Handlers/Hold.py:65
+msgid "Posting to a restricted list by sender requires approval"
+msgstr "El envío del remitente a una lista restringida precisa de aprobación"
+
+#: Mailman/Handlers/Hold.py:66
+msgid "This list is restricted; your message was not approved."
+msgstr "Esta lista es restringida, su mensaje no se aprobó"
+
+#: Mailman/Handlers/Hold.py:69
+msgid "Too many recipients to the message"
+msgstr "Demasiados destinatarios en el mensaje"
+
+#: Mailman/Handlers/Hold.py:70
+msgid "Please trim the recipient list; it is too long."
+msgstr "Por favor, acorte la lista de destinatarios, es demasiado larga"
+
+#: Mailman/Handlers/Hold.py:73
+msgid "Message has implicit destination"
+msgstr "El mensaje no va dirijido explícitamente a la lista"
+
+#: Mailman/Handlers/Hold.py:74
+msgid ""
+"Blind carbon copies or other implicit destinations are\n"
+"not allowed. Try reposting your message by explicitly including the list\n"
+"address in the To: or Cc: fields."
+msgstr ""
+"Las copias de carbón ocultas u otros destinos implícitos no se \n"
+"permiten. Intente reenviar su mensaje explícitamente incluyendo la \n"
+"dirección de la lista en el campo To: o Cc:."
+
+#: Mailman/Handlers/Hold.py:79
+msgid "Message may contain administrivia"
+msgstr "El mensaje puede contener solicitudes administrativas"
+
+#: Mailman/Handlers/Hold.py:84
+msgid ""
+"Please do *not* post administrative requests to the mailing\n"
+"list. If you wish to subscribe, visit %(listurl)s or send a message with "
+"the\n"
+"word `help' in it to the request address, %(request)s, for further\n"
+"instructions."
+msgstr ""
+"¡Por favor *no* envíe peticiones administrativas a la lista! Si desea "
+"suscribirse, visite %(listurl)s o envie un mensaje con la palabra 'help' a "
+"la dirección, %(request)s , para obtener instrucciones"
+
+#: Mailman/Handlers/Hold.py:90
+msgid "Message has a suspicious header"
+msgstr "Su mensaje tiene una cabecera sospechosa."
+
+#: Mailman/Handlers/Hold.py:91
+msgid "Your message had a suspicious header."
+msgstr "Su mensaje tiene una cabecera sospechosa."
+
+#: Mailman/Handlers/Hold.py:101
+msgid ""
+"Message body is too big: %(size)d bytes with a limit of\n"
+"%(limit)d KB"
+msgstr ""
+"El cuerpo del mensaje es demasiado grande: %(size)d bytes con un \n"
+"límite de %(limit)d KB"
+
+#: Mailman/Handlers/Hold.py:106
+msgid ""
+"Your message was too big; please trim it to less than\n"
+"%(kb)d KB in size."
+msgstr ""
+"Su mensaje es demasiado grande, por favor reduzcalo para que tenga \n"
+"un tamaño inferior a %(kb)d KB."
+
+#: Mailman/Handlers/Hold.py:110
+msgid "Posting to a moderated newsgroup"
+msgstr "Envío a un grupo de noticias moderado"
+
+#: Mailman/Handlers/Hold.py:233
+msgid "Your message to %(listname)s awaits moderator approval"
+msgstr "El mensaje enviado a %(listname)s espera la aprobacion del moderador"
+
+#: Mailman/Handlers/Hold.py:253
+msgid "%(listname)s post from %(sender)s requires approval"
+msgstr "El envio a %(listname)s de %(sender)s precisa de aprobacion"
+
+#: Mailman/Handlers/Hold.py:260
+msgid ""
+"If you reply to this message, keeping the Subject: header intact, Mailman "
+"will\n"
+"discard the held message. Do this if the message is spam. If you reply to\n"
+"this message and include an Approved: header with the list password in it, "
+"the\n"
+"message will be approved for posting to the list. The Approved: header can\n"
+"also appear in the first line of the body of the reply."
+msgstr ""
+"Si responde a este mensaje manteniendo la cabecera Subject: (Asunto) "
+"intacta,\n"
+"Mailman descartará el mensaje retenido. Haga esto si el mensaje es spam.\n"
+"Si responde a este mensaje incluyendo una cabecera Approved: con la "
+"contraseña\n"
+"de la lista en ella, se aprobará el mensaje para que se entregue a la "
+"lista.\n"
+"La cabecera Approved: puede aparecer también en la primera línea\n"
+"del cuerpo de la respuesta."
+
+#: Mailman/Handlers/MimeDel.py:56
+msgid "The message's content type was explicitly disallowed"
+msgstr "El tipo de contenido del mensaje ha sido inhabilitado explícitamente"
+
+#: Mailman/Handlers/MimeDel.py:61
+msgid "The message's content type was not explicitly allowed"
+msgstr "El tipo de contenido del mensaje no se ha permitido explícitamente"
+
+#: Mailman/Handlers/MimeDel.py:73
+msgid "After content filtering, the message was empty"
+msgstr "Después del filtrado del contenido, el mensaje quedó vacío"
+
+#: Mailman/Handlers/MimeDel.py:208
+msgid ""
+"The attached message matched the %(listname)s mailing list's content "
+"filtering\n"
+"rules and was prevented from being forwarded on to the list membership. "
+"You\n"
+"are receiving the only remaining copy of the discarded message.\n"
+"\n"
+msgstr ""
+
+#: Mailman/Handlers/MimeDel.py:214
+msgid "Content filtered message notification"
+msgstr "Notificación de mensaje filtrado por contenido"
+
+#: Mailman/Handlers/Moderate.py:138
+msgid ""
+"You are not allowed to post to this mailing list, and your message has been\n"
+"automatically rejected. If you think that your messages are being rejected "
+"in\n"
+"error, contact the mailing list owner at %(listowner)s."
+msgstr ""
+"No está autorizado a enviar mensajes a esta lista de correo\n"
+"y su mensaje ha sido rechazado automáticamente,\n"
+"Si piensa que sus mensajes están siendo rechazados por error,\n"
+" contacte con el propietaro de la lista en %(listowner)s."
+
+#: Mailman/Handlers/Moderate.py:153
+msgid "Auto-discard notification"
+msgstr "Notificación de descarte automático"
+
+#: Mailman/Handlers/Moderate.py:156
+msgid "The attached message has been automatically discarded."
+msgstr "El siguiente mensaje ha sido rechazado automáticamente."
+
+#: Mailman/Handlers/Replybot.py:74
+msgid "Auto-response for your message to "
+msgstr "Respuesta automatica al mensaje dirijido a "
+
+#: Mailman/Handlers/Replybot.py:75
+msgid "the \"%(realname)s\" mailing list"
+msgstr "la lista de distribución \"%(realname)s\""
+
+#: Mailman/Handlers/Replybot.py:107
+msgid "The Mailman Replybot"
+msgstr "El contestador automatico de Mailman"
+
+#: Mailman/Handlers/Scrubber.py:148
+msgid "HTML attachment scrubbed and removed"
+msgstr "Eliminado el documento HTML adjunto"
+
+#: Mailman/Handlers/Scrubber.py:162 Mailman/Handlers/Scrubber.py:188
+msgid ""
+"An HTML attachment was scrubbed...\n"
+"URL: %(url)s\n"
+msgstr ""
+"Se ha borrado un adjunto en formato HTML...\n"
+"URL: %(url)s\n"
+
+#: Mailman/Handlers/Scrubber.py:201
+msgid "no subject"
+msgstr "sin asunto"
+
+#: Mailman/Handlers/Scrubber.py:202
+msgid "no date"
+msgstr "sin fecha"
+
+#: Mailman/Handlers/Scrubber.py:203
+msgid "unknown sender"
+msgstr "remitente desconocido"
+
+#: Mailman/Handlers/Scrubber.py:205
+msgid ""
+"An embedded message was scrubbed...\n"
+"From: %(who)s\n"
+"Subject: %(subject)s\n"
+"Date: %(date)s\n"
+"Size: %(size)s\n"
+"Url: %(url)s\n"
+msgstr ""
+"Se ha borrado un mensaje inmerso...\n"
+"De : %(who)s\n"
+"Asunto: %(subject)s\n"
+"Fecha : %(date)s\n"
+"Tamaño: %(size)s\n"
+"Url : %(url)s\n"
+
+#: Mailman/Handlers/Scrubber.py:228
+msgid ""
+"A non-text attachment was scrubbed...\n"
+"Name: %(filename)s\n"
+"Type: %(ctype)s\n"
+"Size: %(size)d bytes\n"
+"Desc: %(desc)s\n"
+"Url : %(url)s\n"
+msgstr ""
+"Se ha borrado un mensaje que no está en formato texto plano...\n"
+"Nombre : %(filename)s\n"
+"Tipo : %(ctype)s\n"
+"Tamaño : %(size)d bytes\n"
+"Descripción: %(desc)s\n"
+"Url : %(url)s\n"
+
+#: Mailman/Handlers/Scrubber.py:258
+msgid "Skipped content of type %(partctype)s"
+msgstr "Saltado el tipo de contenido %(partctype)s"
+
+#: Mailman/Handlers/Scrubber.py:275
+msgid "-------------- next part --------------\n"
+msgstr "------------ próxima parte ------------\n"
+
+#: Mailman/Handlers/ToDigest.py:141
+msgid "%(realname)s Digest, Vol %(volume)d, Issue %(issue)d"
+msgstr "Resumen de %(realname)s, Vol %(volume)d, Envío %(issue)d"
+
+#: Mailman/Handlers/ToDigest.py:181
+msgid "digest header"
+msgstr "Cabecera digest"
+
+#: Mailman/Handlers/ToDigest.py:184
+msgid "Digest Header"
+msgstr "Cabecera del resumen (digest)"
+
+#: Mailman/Handlers/ToDigest.py:197
+msgid "Today's Topics:\n"
+msgstr "Asuntos del día:\n"
+
+#: Mailman/Handlers/ToDigest.py:267
+msgid "Today's Topics (%(msgcount)d messages)"
+msgstr "Today's Topics (%(msgcount)d mensajes)"
+
+#: Mailman/Handlers/ToDigest.py:292
+msgid "digest footer"
+msgstr "pié de página del digest"
+
+#: Mailman/Handlers/ToDigest.py:295
+msgid "Digest Footer"
+msgstr "Pié de página del digest"
+
+#: Mailman/Handlers/ToDigest.py:309
+msgid "End of "
+msgstr "Fin de "
+
+#: Mailman/ListAdmin.py:307
+msgid "Posting of your message titled \"%(subject)s\""
+msgstr "El mensaje enviado tenía como asunto \"%(subject)s\""
+
+#: Mailman/ListAdmin.py:346
+msgid "Forward of moderated message"
+msgstr "Reenvío de mensaje moderado"
+
+#: Mailman/ListAdmin.py:405
+msgid "New subscription request to list %(realname)s from %(addr)s"
+msgstr "Peticion de subscripcion a la lista %(realname)s de %(addr)s"
+
+#: Mailman/ListAdmin.py:428
+msgid "Subscription request"
+msgstr "Solicitud de subscripción"
+
+#: Mailman/ListAdmin.py:458
+msgid "New unsubscription request from %(realname)s by %(addr)s"
+msgstr "Solicitud de baja a la lista %(realname)s de %(addr)s"
+
+#: Mailman/ListAdmin.py:481
+msgid "Unsubscription request"
+msgstr "Solicitud de desubscripción"
+
+#: Mailman/ListAdmin.py:512
+msgid "Original Message"
+msgstr "Mensaje original"
+
+#: Mailman/ListAdmin.py:515
+msgid "Request to mailing list %(realname)s rejected"
+msgstr "La peticion a la lista de distribucion %(realname)s ha sido rechazada"
+
+#: Mailman/MTA/Manual.py:57
+msgid ""
+"The mailing list `%(listname)s' has been created via the through-the-web\n"
+"interface. In order to complete the activation of this mailing list, the\n"
+"proper /etc/aliases (or equivalent) file must be updated. The program\n"
+"`newaliases' may also have to be run.\n"
+"\n"
+"Here are the entries for the /etc/aliases file:\n"
+msgstr ""
+"La lista de distribución `%(listname)s' se ha creado a través del\n"
+"interfaz web. Para poder completar la activación de esta lista de\n"
+"distribución, se tiene que actualizar el fichero /etc/aliases (o \n"
+"equivalente). También se debería ejecutar el programa `newaliases'\n"
+
+#: Mailman/MTA/Manual.py:67
+msgid ""
+"\n"
+"To finish creating your mailing list, you must edit your /etc/aliases (or\n"
+"equivalent) file by adding the following lines, and possibly running the\n"
+"`newaliases' program:\n"
+"\n"
+"## %(listname)s mailing list"
+msgstr ""
+"\n"
+"Para terminar de crear su lista de distribución,\n"
+"tiene que editar el fichero /etc/aliases (o equivalente)\n"
+"añadiendo las siguientes líneas y ejecutando posiblemente el\n"
+"programa `newaliases':\n"
+"\n"
+"## Lista de distribución %(listname)s"
+
+#: Mailman/MTA/Manual.py:88
+msgid "Mailing list creation request for list %(listname)s"
+msgstr "Solicitud de creación de la lista de distribución %(listname)s"
+
+#: Mailman/MTA/Manual.py:103
+msgid ""
+"The mailing list `%(listname)s' has been removed via the through-the-web\n"
+"interface. In order to complete the de-activation of this mailing list, "
+"the\n"
+"appropriate /etc/aliases (or equivalent) file must be updated. The program\n"
+"`newaliases' may also have to be run.\n"
+"\n"
+"Here are the entries in the /etc/aliases file that should be removed:\n"
+msgstr ""
+"La lista de distribución `%(listname)s' se ha borrado a través del interfaz "
+"web. Para poder\n"
+"completar la desactivación de esta lista de distribución, se tiene que\n"
+"actualizar el fichero /etc/aliases (o equivalente). También debería "
+"ejecutar\n"
+"la orden 'newaliases'\n"
+
+#: Mailman/MTA/Manual.py:113
+msgid ""
+"\n"
+"To finish removing your mailing list, you must edit your /etc/aliases (or\n"
+"equivalent) file by removing the following lines, and possibly running the\n"
+"`newaliases' program:\n"
+"\n"
+"## %(listname)s mailing list"
+msgstr ""
+"\n"
+"Para terminar de borrar su lista de distribución, tiene que editar el "
+"fichero\n"
+"/etc/aliases (o equivalente) y quitar las líneas siguientes, también puede\n"
+"que tenga que ejecutar el programa 'newaliases':\n"
+"\n"
+"## Lista de distribución %(listname)s"
+
+#: Mailman/MTA/Manual.py:132
+msgid "Mailing list removal request for list %(listname)s"
+msgstr "Solicitud de eliminación de la lista de distribución %(listname)s"
+
+#: Mailman/MTA/Postfix.py:300
+msgid "checking permissions on %(file)s"
+msgstr "comprobando los permisos de %(file)s"
+
+#: Mailman/MTA/Postfix.py:310
+msgid "%(file)s permissions must be 066x (got %(octmode)s)"
+msgstr "Los permisos de %(file)s deberían ser 066x (y son %(octmode)s)"
+
+#: Mailman/MTA/Postfix.py:312 Mailman/MTA/Postfix.py:339 bin/check_perms:100
+#: bin/check_perms:122 bin/check_perms:132 bin/check_perms:143
+#: bin/check_perms:162 bin/check_perms:180 bin/check_perms:200
+#: bin/check_perms:224 bin/check_perms:244 bin/check_perms:258
+#: bin/check_perms:278 bin/check_perms:315
+msgid "(fixing)"
+msgstr "(corrigiendo)"
+
+#: Mailman/MTA/Postfix.py:328
+msgid "checking ownership of %(dbfile)s"
+msgstr "Comprobando la propiedad de %(dbfile)s"
+
+#: Mailman/MTA/Postfix.py:336
+msgid "%(dbfile)s owned by %(owner)s (must be owned by %(user)s"
+msgstr "el propietario de%(dbfile)s es %(owner)s (tiene que pertenecer a %(user)s"
+
+#: Mailman/MailList.py:697
+msgid "You have been invited to join the %(listname)s mailing list"
+msgstr "Se le invita a subscribirse a la lista de distribución %(listname)s"
+
+#: Mailman/MailList.py:801 Mailman/MailList.py:1157
+msgid " from %(remote)s"
+msgstr " de %(remote)s"
+
+#: Mailman/MailList.py:835
+msgid "subscriptions to %(realname)s require moderator approval"
+msgstr ""
+"las subscripciones a %(realname)s necesitan el visto bueno del administrador"
+
+#: Mailman/MailList.py:894 bin/add_members:281
+msgid "%(realname)s subscription notification"
+msgstr "Notificación de subscripción a %(realname)s"
+
+#: Mailman/MailList.py:909
+msgid "unsubscriptions require moderator approval"
+msgstr "las bajas a %(realname)s necesitan el visto bueno del moderador"
+
+#: Mailman/MailList.py:928
+msgid "%(realname)s unsubscribe notification"
+msgstr "Notificación de desubscripción a %(realname)s"
+
+#: Mailman/MailList.py:1072
+msgid "subscriptions to %(name)s require administrator approval"
+msgstr ""
+"La subscripción a %(name)s requiere aprobación por\n"
+"parte del administrador"
+
+#: Mailman/MailList.py:1326
+msgid "Last autoresponse notification for today"
+msgstr "Última notificación de autorespuesta de hoy"
+
+#: Mailman/Queue/BounceRunner.py:179
+msgid ""
+"The attached message was received as a bounce, but either the bounce format\n"
+"was not recognized, or no member addresses could be extracted from it. "
+"This\n"
+"mailing list has been configured to send all unrecognized bounce messages "
+"to\n"
+"the list administrator(s).\n"
+"\n"
+"For more information see:\n"
+"%(adminurl)s\n"
+"\n"
+msgstr ""
+
+#: Mailman/Queue/BounceRunner.py:189
+msgid "Uncaught bounce notification"
+msgstr "Notificación de rebote no captado"
+
+#: Mailman/Queue/CommandRunner.py:74
+msgid "Ignoring non-text/plain MIME parts"
+msgstr "Ignorando partes MIME que no son text/plain"
+
+#: Mailman/Queue/CommandRunner.py:129
+msgid ""
+"The results of your email command are provided below.\n"
+"Attached is your original message.\n"
+msgstr ""
+"Los resultados del comando que ha enviado por correo electrónico\n"
+"más abajo. También se ha incluido su mensaje original.\n"
+
+#: Mailman/Queue/CommandRunner.py:134
+msgid "- Results:"
+msgstr "- Resultados:"
+
+#: Mailman/Queue/CommandRunner.py:140
+msgid ""
+"\n"
+"- Unprocessed:"
+msgstr ""
+"\n"
+"- Sin procesar:"
+
+#: Mailman/Queue/CommandRunner.py:143
+msgid ""
+"\n"
+"- Ignored:"
+msgstr ""
+"\n"
+"- Ignorados:"
+
+#: Mailman/Queue/CommandRunner.py:145
+msgid ""
+"\n"
+"- Done.\n"
+"\n"
+msgstr ""
+"\n"
+"- Proceso terminado.\n"
+"\n"
+
+#: Mailman/Queue/CommandRunner.py:163
+msgid "The results of your email commands"
+msgstr "Resultados de los comandos enviados por correo electronico"
+
+#: Mailman/htmlformat.py:627
+msgid "Delivered by Mailman<br>version %(version)s"
+msgstr "Entregado via Mailman<br>versión %(version)s"
+
+#: Mailman/htmlformat.py:628
+msgid "Python Powered"
+msgstr "Hecho en Python"
+
+#: Mailman/htmlformat.py:629
+msgid "Gnu's Not Unix"
+msgstr "Gnu No es Unix"
+
+#: Mailman/i18n.py:86
+msgid "Mon"
+msgstr "Lun"
+
+#: Mailman/i18n.py:86
+msgid "Thu"
+msgstr "Jue"
+
+#: Mailman/i18n.py:86
+msgid "Tue"
+msgstr "Mar"
+
+#: Mailman/i18n.py:86
+msgid "Wed"
+msgstr "Mie"
+
+#: Mailman/i18n.py:87
+msgid "Fri"
+msgstr "Vie"
+
+#: Mailman/i18n.py:87
+msgid "Sat"
+msgstr "Sab"
+
+#: Mailman/i18n.py:87
+msgid "Sun"
+msgstr "Dom"
+
+#: Mailman/i18n.py:91
+msgid "Apr"
+msgstr "Abr"
+
+#: Mailman/i18n.py:91
+msgid "Feb"
+msgstr "Feb"
+
+#: Mailman/i18n.py:91
+msgid "Jan"
+msgstr "Ene"
+
+#: Mailman/i18n.py:91
+msgid "Jun"
+msgstr "Jun"
+
+#: Mailman/i18n.py:91
+msgid "Mar"
+msgstr "Mar"
+
+#: Mailman/i18n.py:92
+msgid "Aug"
+msgstr "Ago"
+
+#: Mailman/i18n.py:92
+msgid "Dec"
+msgstr "Dic"
+
+#: Mailman/i18n.py:92
+msgid "Jul"
+msgstr "Jul"
+
+#: Mailman/i18n.py:92
+msgid "Nov"
+msgstr "Nov"
+
+#: Mailman/i18n.py:92
+msgid "Oct"
+msgstr "Oct"
+
+#: Mailman/i18n.py:92
+msgid "Sep"
+msgstr "Sep"
+
+#: Mailman/i18n.py:95
+msgid "Server Local Time"
+msgstr "Hora local del servidor"
+
+#: Mailman/i18n.py:128
+msgid ""
+"%(wday)s %(mon)s %(day)2i %(hh)02i:%(mm)02i:%(ss)02i %(tzname)s %(year)04i"
+msgstr "%(wday)s %(mon)s %(day)2i %(hh)02i:%(mm)02i:%(ss)02i %(tzname)s %(year)04i"
+
+#: bin/add_members:26
+msgid ""
+"Add members to a list from the command line.\n"
+"\n"
+"Usage:\n"
+" add_members [options] listname\n"
+"\n"
+"Options:\n"
+"\n"
+" --regular-members-file=file\n"
+" -r file\n"
+" A file containing addresses of the members to be added, one\n"
+" address per line. This list of people become non-digest\n"
+" members. If file is `-', read addresses from stdin. Note that\n"
+" -n/--non-digest-members-file are deprecated synonyms for this "
+"option.\n"
+"\n"
+" --digest-members-file=file\n"
+" -d=file\n"
+" Similar to above, but these people become digest members.\n"
+"\n"
+" --changes-msg=<y|n>\n"
+" -c <y|n> \n"
+"\tSet whether or not to send the list members the `there's going to be\n"
+"\tbig changes to your list' message. defaults to no.\n"
+"\n"
+" --welcome-msg=<y|n>\n"
+" -w <y|n>\n"
+" Set whether or not to send the list members a welcome message,\n"
+" overriding whatever the list's `send_welcome_msg' setting is.\n"
+"\n"
+" --admin-notify=<y|n>\n"
+" -a <y|n>\n"
+" Set whether or not to send the list administrators a notification "
+"on\n"
+" the success/failure of these subscriptions, overriding whatever the\n"
+" list's `admin_notify_mchanges' setting is.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname\n"
+" The name of the Mailman list you are adding members to. It must\n"
+" already exist.\n"
+"\n"
+"You must supply at least one of -r and -d options. At most one of the\n"
+"files can be `-'.\n"
+msgstr ""
+"Agregar subscriptores a una lista desde el intérprete de ordenes.\n"
+"\n"
+"Sintaxis:\n"
+" add_members [opciones] lista\n"
+"\n"
+"Opciones:\n"
+" --regular-members-file=fichero\n"
+" -r fichero\n"
+" Representa un fichero con los subscriptores a agregar, cada uno\n"
+" en una línea distinta. Este conjunto de personas serán subscriptores\n"
+" regulares. Si fichero es '-' se leen las direcciones desde la entrada\n"
+" estándar. Observe que -n/--non-members-file es un sinónimo deprecado\n"
+" de esta opción.\n"
+"\n"
+" --digest-members-file=fichero\n"
+" -d=fichero\n"
+" Igual que arriba, pero la lista será dada de alta como subscriptores\n"
+" digest o modo agrupado\n"
+"\n"
+" --changes-msg=<y|n>\n"
+" -c <y|n> \n"
+"\tIndicar si se va a mandar o no el mensaje indicando que se van a producir\n"
+"\tgrandes cambios en su lista de distribución. Por defecto no.\n"
+"\n"
+" --welcome-msg=<y|n>\n"
+" -w <y|n>\n"
+" Indicar si se va a mandar a los subscriptores un mensaje de bienvenida,\n"
+" ignorando la configuración que tenga de la directiva `send_welcome_msg'.\n"
+"\n"
+" --admin-notify=<y|n>\n"
+" -a <y|n>\n"
+" Indicar si se va a mandar al administrador un aviso sobre el éxito/fallo\n"
+" de las subscripciones, ignorando la configuración que tenga de la directiva\n"
+" `admin_notify_mchanges'.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Imprime este mensaje y termina.\n"
+"\n"
+" lista\n"
+" El nombre de la lista de Mailman a la que se agregan los subscriptores. Tiene\n"
+" que existir.\n"
+"\n"
+"Se tiene que suministrar como mínimo o la opción -r o la -d. Solo uno de los\n"
+"ficheros puede ser `-'.\n"
+
+#: bin/add_members:134
+msgid "Big change in %(listname)s@%(listhost)s mailing list"
+msgstr "Cambio drástico en la lista de distribución %(listname)s@%(listhost)s"
+
+#: bin/add_members:167
+msgid "Already a member: %(member)s"
+msgstr "Ya está subscrito: %(member)s"
+
+#: bin/add_members:170
+msgid "Bad/Invalid email address: blank line"
+msgstr "Dirección de correo electrónico incorrecta/inválida: línea en blanco"
+
+#: bin/add_members:172
+msgid "Bad/Invalid email address: %(member)s"
+msgstr "Dirección de correo electrónico incorrecta/inválida: %(member)s"
+
+#: bin/add_members:174
+msgid "Hostile address (illegal characters): %(member)s"
+msgstr "Dirección hostil (caracteres no válidos): %(member)s"
+
+#: bin/add_members:176
+msgid "Subscribed: %(member)s"
+msgstr "Subscrito: %(member)s"
+
+#: bin/add_members:223
+msgid "Bad argument to -c/--changes-msg: %(arg)s"
+msgstr "Argumento incorrecto a -c/--changes-msg:: %(arg)s"
+
+#: bin/add_members:230
+msgid "Bad argument to -w/--welcome-msg: %(arg)s"
+msgstr "Argumento incorrecto a -w/--welcome-msg: %(arg)s"
+
+#: bin/add_members:237
+msgid "Bad argument to -a/--admin-notify: %(arg)s"
+msgstr "Argumento incorrecto a -a/--admin-notify: %(arg)s"
+
+#: bin/add_members:243
+msgid "Cannot read both digest and normal members from standard input."
+msgstr ""
+"No puedo leer a los subscriptores regulares y a los no regulares desde la "
+"entrada estándar."
+
+#: bin/add_members:249 bin/config_list:105 bin/find_member:97 bin/inject:90
+#: bin/list_admins:89 bin/list_members:187 bin/sync_members:222
+#: cron/bumpdigests:86
+msgid "No such list: %(listname)s"
+msgstr "No existe tal lista: %(listname)s"
+
+#: bin/add_members:269 bin/change_pw:158 bin/check_db:114 bin/sync_members:244
+#: cron/bumpdigests:78
+msgid "Nothing to do."
+msgstr "No hace falta hacer nada."
+
+#: bin/arch:19
+msgid ""
+"Rebuild a list's archive.\n"
+"\n"
+"Use this command to rebuild the archives for a mailing list. You may want "
+"to\n"
+"do this if you edit some messages in an archive, or remove some messages "
+"from\n"
+"an archive.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] <listname> [<mbox>]\n"
+"\n"
+"Where options are:\n"
+" -h / --help\n"
+" Print this help message and exit.\n"
+"\n"
+" -q / --quiet\n"
+" Make the archiver output less verbose.\n"
+"\n"
+" --wipe\n"
+" First wipe out the original archive before regenerating. You "
+"usually\n"
+" want to specify this argument unless you're generating the archive "
+"in\n"
+" chunks.\n"
+"\n"
+" -s N\n"
+" --start=N\n"
+" Start indexing at article N, where article 0 is the first in the "
+"mbox.\n"
+" Defaults to 0.\n"
+"\n"
+" -e M\n"
+" --end=M\n"
+" End indexing at article M. This script is not very efficient with\n"
+" respect to memory management, and for large archives, it may not be\n"
+" possible to index the mbox entirely. For that reason, you can "
+"specify\n"
+" the start and end article numbers.\n"
+"\n"
+"Where <mbox> is the path to a list's complete mbox archive. Usually this "
+"will\n"
+"be some path in the archives/private directory. For example:\n"
+"\n"
+"%% bin/arch mylist archives/private/mylist.mbox/mylist.mbox\n"
+"\n"
+"<mbox> is optional. If it is missing, it is calculated.\n"
+msgstr ""
+"Reconstruir el archivo de una lista.\n"
+"\n"
+"Usa esta orden para reconstruir el archivo de una lista de distribución.\n"
+"Puede que quieras hacer esto si editas algunos mensajes del archivo o si\n"
+"eliminas algunos ficheros del archivo.\n"
+"\n"
+"Sintaxis: %(PROGRAM)s [options] <lista> [<mbox>]\n"
+"\n"
+"Las opciones pueden ser:\n"
+" -h / --help\n"
+" Muestra este mensaje de ayuda y termina.\n"
+"\n"
+" -q / --quiet\n"
+" Hacer que la salida del archivador sea menos verbosa.\n"
+"\n"
+" --wipe\n"
+" Borrar en primer lugar el archivo original antes de la regeneración.\n"
+" Normalmente querrás usar esta opción a menos que estés generando el\n"
+" archivo a cachos..\n"
+"\n"
+" -s N\n"
+" --start=N\n"
+" Comienza a reconstruir por el mensaje N, el mensaje 0 es el primero \n"
+" del archivo.Por omisión es 0.\n"
+"\n"
+" -e M\n"
+" --end=M\n"
+" Termina la reconstrucción en el mensaje M. Este programa no es muy\n"
+" eficiente gestionando la memoria y, con archivos grandes, a lo mejor\n"
+" no es posible regenerarlo completo. Por esto, se permite indicar el \n"
+" numero de mensaje inicial y final.\n"
+"\n"
+"Donde buzón es el camino al archivo privado completo de la lista. Normalmente\n"
+"será alguna ruta en el directorio archives/private. Por ejemplo:\n"
+"\n"
+"bin/arch milista archives/private/mylist.mbox/milista.mbox\n"
+"\n"
+"<mbox> es opcional. Si no existe, se calcula.\n"
+
+#: bin/arch:125
+msgid "listname is required"
+msgstr "Hace falta un nombre de lista"
+
+#: bin/arch:143 bin/change_pw:106 bin/config_list:239
+msgid ""
+"No such list \"%(listname)s\"\n"
+"%(e)s"
+msgstr ""
+"No existe la lista \"%(listname)s\"\n"
+"%(e)s"
+
+#: bin/arch:170
+msgid "Cannot open mbox file %(mbox)s: %(msg)s"
+msgstr "No se ha podido abrir el fichero mbox %(mbox)s: %(msg)s"
+
+#: bin/b4b5-archfix:19
+msgid ""
+"Fix the MM2.1b4 archives.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] file ...\n"
+"\n"
+"Where options are:\n"
+" -h / --help\n"
+" Print this help message and exit.\n"
+"\n"
+"Only use this to `fix' some archive database files that may have gotten\n"
+"written in Mailman 2.1b4 with some bogus data. Use like this from your\n"
+"$PREFIX directory\n"
+"\n"
+"%% %(PROGRAM)s `grep -l _mlist archives/private/*/database/*-article`\n"
+"\n"
+"(note the backquotes are required)\n"
+"\n"
+"You will need to run `bin/check_perms -f' after running this script.\n"
+msgstr ""
+
+#: bin/change_pw:19
+msgid ""
+"Change a list's password.\n"
+"\n"
+"Prior to Mailman 2.1, list passwords were kept in crypt'd format -- "
+"usually.\n"
+"Some Python installations didn't have the crypt module available, so they'd\n"
+"fall back to md5. Then suddenly the Python installation might grow a crypt\n"
+"module and all list passwords would be broken.\n"
+"\n"
+"In Mailman 2.1, all list and site passwords are stored in SHA1 hexdigest\n"
+"form. This breaks list passwords for all existing pre-Mailman 2.1 lists, "
+"and\n"
+"since those passwords aren't stored anywhere in plain text, they cannot be\n"
+"retrieved and updated.\n"
+"\n"
+"Thus, this script generates new passwords for a list, and optionally sends "
+"it\n"
+"to all the owners of the list.\n"
+"\n"
+"Usage: change_pw [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" --all / -a\n"
+" Change the password for all lists.\n"
+"\n"
+" --domain=domain\n"
+" -d domain\n"
+" Change the password for all lists in the virtual domain `domain'. "
+"It\n"
+" is okay to give multiple -d options.\n"
+"\n"
+" --listname=listname\n"
+" -l listname\n"
+" Change the password only for the named list. It is okay to give\n"
+" multiple -l options.\n"
+"\n"
+" --password=newpassword\n"
+" -p newpassword\n"
+" Use the supplied plain text password `newpassword' as the new "
+"password\n"
+" for any lists that are being changed (as specified by the -a, -d, "
+"and\n"
+" -l options). If not given, lists will be assigned a randomly\n"
+" generated new password.\n"
+"\n"
+" --quiet / -q\n"
+" Don't notify list owners of the new password. You'll have to have\n"
+" some other way of letting the list owners know the new password\n"
+" (presumably out-of-band).\n"
+"\n"
+" --help / -h\n"
+" Print this help message and exit.\n"
+msgstr ""
+"Cambiar la clave de la lista.\n"
+"\n"
+"Antes de Mailman 2.1, las claves de las listas se mantenían normalmente en "
+"formato\n"
+"crypt. Algunas instalaciones Python no tenían disponible dicho módulo, por "
+"lo que\n"
+"usaban md5. Entonces de repente las instalaciones Python adquirieron el "
+"módulo crypt\n"
+"y todas las claves empezaron a fallar.\n"
+"\n"
+"En Mailman 2.1 las claves de las listas y de la sede se almacenan en formato "
+"SHA1.\n"
+"Esto hace que fallen las claves de todas las listas que existían antes de "
+"Mailman 2.1\n"
+"y debido a que aquellas claves no se almacenaban como texto plano en ninguna "
+"parte,\n"
+"no se podían recuperar y actualizar.\n"
+"\n"
+"Así pues, este guión genera la clave de una lista y opcionalmente la manda a "
+"todos los\n"
+"propietarios de la lista.\n"
+"\n"
+"Sintaxis: change_pw [OPCIONES]\n"
+"\n"
+"Opciones:\n"
+" --all / -a\n"
+" Cambiar la clave de todas las listas.\n"
+"\n"
+" --domain=dominio\n"
+" -d dominio\n"
+" Cambiar la clave de todas las listas en el dominio virtual "
+"`dominio'. Vale dar múltiples opciones -d.\n"
+"\n"
+" --listname=lista\n"
+" -l lista\n"
+" Cambiar la clave solo para las listas especificadas.\n"
+" Vale dar varias opciones -l\n"
+"\n"
+" --password=ClaveNueva\n"
+" -p ClaveNueva\n"
+" Usar la clave especificada en `ClaveNueva' como la clave nueva de "
+"las listas\n"
+" que se vayan a cambiar (indicadas mediante las opciones -a, -d, y -"
+"l).\n"
+" Si no se especifica, a las listas se les asignará una clave nueva "
+"aleatoria\n"
+"\n"
+" --quiet / -q\n"
+" No notificar a los propietarios la clave nueva. Tendráas que "
+"disponer de\n"
+" otro medio para hacer que los propietarios sepan la clave nueva\n"
+" (presumiblemente fuera de línea).\n"
+"\n"
+" --help / -h\n"
+" Imprimir este mensaje y salir.\n"
+
+#: bin/change_pw:144
+msgid "Bad arguments: %(strargs)s"
+msgstr "Argumento incorrecto: %(strargs)s"
+
+#: bin/change_pw:148
+msgid "Empty list passwords are not allowed"
+msgstr "No se permiten claves vacias"
+
+#: bin/change_pw:179
+msgid "New %(listname)s password: %(notifypassword)s"
+msgstr "Clave nueva de %(listname)s: %(notifypassword)s"
+
+#: bin/change_pw:188
+msgid "Your new %(listname)s list password"
+msgstr "Su clave nueva de la lista %(listname)s"
+
+#: bin/change_pw:189
+msgid ""
+"The site administrator at %(hostname)s has changed the password for your\n"
+"mailing list %(listname)s. It is now\n"
+"\n"
+" %(notifypassword)s\n"
+"\n"
+"Please be sure to use this for all future list administration. You may "
+"want\n"
+"to log in now to your list and change the password to something more to "
+"your\n"
+"liking. Visit your list admin page at\n"
+"\n"
+" %(adminurl)s\n"
+msgstr ""
+"El administrador del servidor de listas %(hostname)s ha cambiado la clave "
+"de\n"
+"su lista de distribución %(listname)s. Ahora es\n"
+"\n"
+" %(notifypassword)s\n"
+"\n"
+"Por favor, asegurese de usarla para todas las tareas de administración\n"
+"fututas. Si desea entrar ahora en las páginas de administración de su lista\n"
+"y cambiar la clave a cualquier otra más oportuna. Visite las páginas de\n"
+"administración en\n"
+"\n"
+" %(adminurl)s\n"
+
+#: bin/check_db:19
+msgid ""
+"Check a list's config database file for integrity.\n"
+"\n"
+"All of the following files are checked:\n"
+"\n"
+" config.pck\n"
+" config.pck.last\n"
+" config.db\n"
+" config.db.last\n"
+" config.safety\n"
+"\n"
+"It's okay if any of these are missing. config.pck and config.pck.last are\n"
+"pickled versions of the config database file for 2.1a3 and beyond. config."
+"db\n"
+"and config.db.last are used in all earlier versions, and these are Python\n"
+"marshals. config.safety is a pickle written by 2.1a3 and beyond when the\n"
+"primary config.pck file could not be read.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname [listname ...]]\n"
+"\n"
+"Options:\n"
+"\n"
+" --all / -a\n"
+" Check the databases for all lists. Otherwise only the lists named "
+"on\n"
+" the command line are checked.\n"
+"\n"
+" --verbose / -v\n"
+" Verbose output. The state of every tested file is printed.\n"
+" Otherwise only corrupt files are displayed.\n"
+"\n"
+" --help / -h\n"
+" Print this text and exit.\n"
+msgstr ""
+"Comprobar la integridad del fichero de configuración de una lista.\n"
+"\n"
+"Se compreban los ficheros siguientes:\n"
+"\n"
+" config.pck\n"
+" config.pck.last\n"
+" config.db\n"
+" config.db.last\n"
+" config.safety\n"
+"\n"
+"No pasa nada si falta algunos de estos ficheros. config.pck y config.pck."
+"last son\n"
+"versiones pickledadas del fichero de configuración de 2.1a3 y posteriores.\n"
+"config.db y config.db.last se usan en todas las versiones anteriores y son "
+"ficheros\n"
+"marshals de Python. config.safety es un pickle escrito para 2.1a3 y "
+"posteriores usado\n"
+"cuando no se podía leer el fichero config.pck principal.\n"
+"\n"
+"Sintaxis: %(PROGRAM)s [opciones] [lista [lista ...]]\n"
+"\n"
+"Opciones:\n"
+"\n"
+" --all / -a\n"
+" Comprobar los ficheros de todas las listas. En otro caso solo se "
+"comprobarán\n"
+" las listas nombradas en la línea de ordenes\n"
+"\n"
+" --verbose / -v\n"
+" Salida prolija. Se imprime el estado de cada uno de los ficheros "
+"testeados.\n"
+" En otro caso solo se mostrarán los ficheros corruptos.\n"
+"\n"
+" --help / -h\n"
+" Imprimir este mensaje y salir.\n"
+
+#: bin/check_db:119
+msgid "No list named:"
+msgstr "No hay ninguna lista llamada:"
+
+#: bin/check_db:128
+msgid "List:"
+msgstr "Lista:"
+
+#: bin/check_db:148
+msgid " %(file)s: okay"
+msgstr " %(file)s: Correcto"
+
+#: bin/check_perms:19
+msgid ""
+"Check the permissions for the Mailman installation.\n"
+"\n"
+"Usage: %(PROGRAM)s [-f] [-v] [-h]\n"
+"\n"
+"With no arguments, just check and report all the files that have bogus\n"
+"permissions or group ownership. With -f (and run as root), fix all the\n"
+"permission problems found. With -v be verbose.\n"
+"\n"
+msgstr ""
+"Comprobar los permisos de la instalación de Mailman.\n"
+"\n"
+"Sintaxis: %(PROGRAM)s [-f] [-v] [-h]\n"
+"\n"
+"Sin argumentos, solo comprueba y hace un informe de los ficheros que tienen "
+"los\n"
+"permisos mal ajustados. Con la opción -f (y ejecutado como root), corrige "
+"todos\n"
+"los problemas relacionados con los permisos que encuentre. Con -v la "
+"salidapuede\n"
+" ser verbosa.\n"
+"\n"
+
+#: bin/check_perms:85
+msgid " checking gid and mode for %(path)s"
+msgstr " comprobando gid y modo de %(path)s"
+
+#: bin/check_perms:97
+msgid "%(path)s bad group (has: %(groupname)s, expected %(MAILMAN_GROUP)s)"
+msgstr "%(path) tiene un grupo incorrecto (tiene: %(groupname)s, se esperaba que tuviera %(MAILMAN_GROUP)s)"
+
+#: bin/check_perms:120
+msgid "directory permissions must be %(octperms)s: %(path)s"
+msgstr "los permisos del directorio tienen que ser %(octperms)s: %(path)s"
+
+#: bin/check_perms:129
+msgid "source perms must be %(octperms)s: %(path)s"
+msgstr "los permisos tienen que ser %(octperms)s: %(path)s"
+
+#: bin/check_perms:140
+msgid "article db files must be %(octperms)s: %(path)s"
+msgstr "los permisos de los ficheros db tienen que ser %(octperms)s: %(path)s"
+
+#: bin/check_perms:152
+msgid "checking mode for %(prefix)s"
+msgstr "comprobando el modo para %(prefix)s"
+
+#: bin/check_perms:160
+msgid "directory must be at least 02775: %(d)s"
+msgstr "El directorio tiene que estar como mínimo a 02775: %(d)s"
+
+#: bin/check_perms:173
+msgid "checking perms on %(private)s"
+msgstr "Comprobando los permisos en %(private)s"
+
+#: bin/check_perms:178
+msgid "%(private)s must not be other-readable"
+msgstr "%(private) no puede se legible por terceros"
+
+#: bin/check_perms:198
+msgid "mbox file must be at least 0660:"
+msgstr "El fichero mbox tiene que estar como mínimo a 0660"
+
+#: bin/check_perms:222
+msgid "%(dbdir)s \"other\" perms must be 000"
+msgstr "Los permisos de %(dbdir)s para \"el resto\" tienen que ser 000"
+
+#: bin/check_perms:233
+msgid "checking cgi-bin permissions"
+msgstr "comprobando los permisos de los cgi-bin"
+
+#: bin/check_perms:238
+msgid " checking set-gid for %(path)s"
+msgstr " comprobando el set-gid de %(path)s"
+
+#: bin/check_perms:242
+msgid "%(path)s must be set-gid"
+msgstr "%(path)s tiene que ser sert-gid"
+
+#: bin/check_perms:252
+msgid "checking set-gid for %(wrapper)s"
+msgstr "comprobando el set-gid de %(wrapper)s"
+
+#: bin/check_perms:256
+msgid "%(wrapper)s must be set-gid"
+msgstr "%(wrapper)s tiene que se set-gid"
+
+#: bin/check_perms:266
+msgid "checking permissions on %(pwfile)s"
+msgstr "comprobando los permisos de %(pwfile)s"
+
+#: bin/check_perms:275
+msgid "%(pwfile)s permissions must be exactly 0640 (got %(octmode)s)"
+msgstr ""
+"Los permisos de %(pwfile)s tienen que ser exactamente 06740 (tiene %(octmode)"
+"s)"
+
+#: bin/check_perms:299
+msgid "checking permissions on list data"
+msgstr "comprobando los permisos sobre los datos de la lista"
+
+#: bin/check_perms:305
+msgid " checking permissions on: %(path)s"
+msgstr " comprobando los permisos de %(path)s"
+
+#: bin/check_perms:313
+msgid "file permissions must be at least 660: %(path)s"
+msgstr "Los permisos del fichero tienen que estar como mínimo a 660: %(path)s"
+
+#: bin/check_perms:359
+msgid "No problems found"
+msgstr "No se han encontrado problemas"
+
+#: bin/check_perms:361
+msgid "Problems found:"
+msgstr "Se han encontrado problemas:"
+
+#: bin/check_perms:362
+msgid "Re-run as %(MAILMAN_USER)s (or root) with -f flag to fix"
+msgstr "Para arreglarlo vuelva a ejecutar como %(MAILMAN_USER)s (o como root) con la opción -f"
+
+#: bin/cleanarch:19
+msgid ""
+"Clean up an .mbox archive file.\n"
+"\n"
+"The archiver looks for Unix-From lines separating messages in an mbox "
+"archive\n"
+"file. For compatibility, it specifically looks for lines that start with\n"
+"\"From \" -- i.e. the letters capital-F, lowercase-r, o, m, space, ignoring\n"
+"everything else on the line.\n"
+"\n"
+"Normally, any lines that start \"From \" in the body of a message should be\n"
+"escaped such that a > character is actually the first on a line. It is\n"
+"possible though that body lines are not actually escaped. This script\n"
+"attempts to fix these by doing a stricter test of the Unix-From lines. Any\n"
+"lines that start \"From \" but do not pass this stricter test are escaped "
+"with a\n"
+"> character.\n"
+"\n"
+"Usage: cleanarch [options] < inputfile > outputfile\n"
+"Options:\n"
+" -s n\n"
+" --status=n\n"
+" Print a # character every n lines processed\n"
+"\n"
+" -q / --quiet\n"
+" Don't print changed line information to standard error.\n"
+"\n"
+" -n / --dry-run\n"
+" Don't actually output anything.\n"
+"\n"
+" -h / --help\n"
+" Print this message and exit\n"
+msgstr ""
+"Limpiar un archivo .mbox\n"
+"\n"
+"El archivador busca lineas From de Unix separando mensajes en un fichero "
+"mbox.\n"
+"Debido a la compatibilidad, busca específicamente líneas que empiezan con "
+"\"From\"\n"
+"-- Por ej. las letras F en mayúsculas, r minúsculas, o, m, espacio en "
+"blanco,\n"
+"ignorando cualquier cosa más en la misma línea.\n"
+"\n"
+"Normalmente, cualquiera de las líneas que empiecen con \"From\" en el cuerpo "
+"del\n"
+"mensaje deberían estar escapadas debido a que un carácter > es lo primero "
+"que\n"
+"aparece en la línea. Es posible de que las líneas no se encuentren "
+"escapadas.\n"
+"Este guión intenta corregir esto haciendo una comprobación estricta de las "
+"líneas\n"
+"From al estilo Unix. Cualquier línea que empiece con \"From\" pero que no "
+"pase este\n"
+"test estricto se escapan con un carácter >\n"
+"\n"
+"Sintaxis: cleanarch [opciones] < fichero_Entrada > fichero_Salida\n"
+"Opciones:\n"
+" -s n\n"
+" --status\n"
+" Imprime un carácter # por cada n lineas procesadas.\n"
+"\n"
+" -q / --quiet\n"
+" No imprimir la información de línea modificada al error estándar.\n"
+"\n"
+" -n / --dry-run\n"
+" No imprimir nada por la salida estándar.\n"
+"\n"
+" -h / --help\n"
+" Imprimir este mensaje y salir.\n"
+
+#: bin/cleanarch:82
+msgid "Unix-From line changed: %(lineno)d"
+msgstr "Línea From estilo Unix cambiada: %(lineno)d"
+
+#: bin/cleanarch:110
+msgid "Bad status number: %(arg)s"
+msgstr "Número de status incorrecto: %(arg)s"
+
+#: bin/cleanarch:160
+msgid "%(messages)d messages found"
+msgstr "encontrados %(messages)d mensajes"
+
+#: bin/clone_member:19
+msgid ""
+"Clone a member address.\n"
+"\n"
+"Cloning a member address means that a new member will be added who has all "
+"the\n"
+"same options and passwords as the original member address. Note that this\n"
+"operation is fairly trusting of the user who runs it -- it does no\n"
+"verification to the new address, it does not send out a welcome message, "
+"etc.\n"
+"\n"
+"The existing member's subscription is usually not modified in any way. If "
+"you\n"
+"want to remove the old address, use the -r flag. If you also want to "
+"change\n"
+"any list admin addresses, use the -a flag.\n"
+"\n"
+"Usage:\n"
+" clone_member [options] fromoldaddr tonewaddr\n"
+"\n"
+"Where:\n"
+"\n"
+" --listname=listname\n"
+" -l listname\n"
+" Check and modify only the named mailing lists. If -l is not given,\n"
+" then all mailing lists are scanned from the address. Multiple -l\n"
+" options can be supplied.\n"
+"\n"
+" --remove\n"
+" -r\n"
+" Remove the old address from the mailing list after it's been "
+"cloned.\n"
+"\n"
+" --admin\n"
+" -a\n"
+" Scan the list admin addresses for the old address, and clone or "
+"change\n"
+" them too.\n"
+"\n"
+" --quiet\n"
+" -q\n"
+" Do the modifications quietly.\n"
+"\n"
+" --nomodify\n"
+" -n\n"
+" Print what would be done, but don't actually do it. Inhibits the\n"
+" --quiet flag.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" fromoldaddr (`from old address') is the old address of the user. "
+"tonewaddr\n"
+" (`to new address') is the new address of the user.\n"
+"\n"
+msgstr ""
+"Clona la dirección de un subscriptor.\n"
+"\n"
+"Clonar la dirección de un subscriptor significa que se subscribirá un "
+"usuario\n"
+" nuevo con las mismas opciones y claves que el subscriptor original. Dese "
+"cuenta\n"
+"que esta operación confía plenamente en el usuario que la ejecuta -- no se "
+"realizan\n"
+"verificaciones de la dirección nueva ni se manda un mensaje de bienvenida, "
+"etc.\n"
+"\n"
+"Las subscripciones existentes no se alteran en absoluto. Si quiere borrar "
+"la\n"
+"dirección antigua, utiliza la opción -r. Si también quiere cambiar alguna "
+"dirección\n"
+"de administrador, use la opción -a.\n"
+"\n"
+"Sintaxis:\n"
+" clone_member [opciones] DesdeLaDirección AlaDirección\n"
+"\n"
+"Donde:\n"
+"\n"
+" --listname=lista\n"
+" -l lista\n"
+" Comprueba y modifica únicamente las listas de distribución "
+"especificadas.\n"
+". Si no se incluye -l, entonces se busca la dirección en todas las "
+"listas de\n"
+" distribución. Se pueden especificar múltiples opciones -l.\n"
+"\n"
+" --remove\n"
+" -r\n"
+" Borrar la dirección antigua de la lista de distribución una vez que "
+"se haya\n"
+" clonado.\n"
+"\n"
+" --admin\n"
+" -a\n"
+" Incluye las direcciones de los administradores en la búsqueda de "
+"las\n"
+" direcciones antiguas y las clona o cambia también.\n"
+"\n"
+" --quiet\n"
+" -q\n"
+" Realiza las modificaciones silenciosamente.\n"
+"\n"
+" --nomodify\n"
+" -n\n"
+" Dice lo que se tendría que hacer, pero no lo hace. Inhabilita la "
+"opción\n"
+" --quiet.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Imprime este mensaje y sale.\n"
+"\n"
+" DesdeLaDirección es la dirección antigua del usuario. AlaDirección es la "
+"nueva dirección del usuario.\n"
+"\n"
+
+#: bin/clone_member:94
+msgid "processing mailing list:"
+msgstr "procesando la lista de distribución:"
+
+#: bin/clone_member:101
+msgid " scanning list owners:"
+msgstr " examinando a los administradores de la lista:"
+
+#: bin/clone_member:119
+msgid " new list owners:"
+msgstr " administradores de la lista nueva:"
+
+#: bin/clone_member:121
+msgid "(no change)"
+msgstr "(sin cambios)"
+
+#: bin/clone_member:130
+msgid " address not found:"
+msgstr " la dirección no se ha encontrado:"
+
+#: bin/clone_member:139
+msgid " clone address added:"
+msgstr " dirección clonada añadida:"
+
+#: bin/clone_member:142
+msgid " clone address is already a member:"
+msgstr " la dirección a clonar ya está subscrita."
+
+#: bin/clone_member:145
+msgid " original address removed:"
+msgstr " la dirección original se ha borrado:"
+
+#: bin/clone_member:196
+msgid "Not a valid email address: %(toaddr)s"
+msgstr "No es una dirección válida: %(toaddr)s"
+
+#: bin/clone_member:209
+msgid ""
+"Error opening list \"%(listname)s\", skipping.\n"
+"%(e)s"
+msgstr ""
+"Error abriendo la lista \"%(listname)s\", omitiendola.\n"
+"%(e)s"
+
+#: bin/config_list:19
+msgid ""
+"Configure a list from a text file description.\n"
+"\n"
+"Usage: config_list [options] listname\n"
+"\n"
+"Options:\n"
+" --inputfile filename\n"
+" -i filename\n"
+" Configure the list by assigning each module-global variable in the\n"
+" file to an attribute on the list object, then saving the list. The\n"
+" named file is loaded with execfile() and must be legal Python code.\n"
+" Any variable that isn't already an attribute of the list object is\n"
+" ignored (a warning message is printed). See also the -c option.\n"
+"\n"
+" A special variable named `mlist' is put into the globals during the\n"
+" execfile, which is bound to the actual MailList object. This lets "
+"you\n"
+" do all manner of bizarre thing to the list object, but BEWARE! "
+"Using\n"
+" this can severely (and possibly irreparably) damage your mailing "
+"list!\n"
+"\n"
+" --outputfile filename\n"
+" -o filename\n"
+" Instead of configuring the list, print out a list's configuration\n"
+" variables in a format suitable for input using this script. In "
+"this\n"
+" way, you can easily capture the configuration settings for a\n"
+" particular list and imprint those settings on another list. "
+"filename\n"
+" is the file to output the settings to. If filename is `-', "
+"standard\n"
+" out is used.\n"
+"\n"
+" --checkonly\n"
+" -c\n"
+" With this option, the modified list is not actually changed. Only\n"
+" useful with -i.\n"
+"\n"
+" --verbose\n"
+" -v\n"
+" Print the name of each attribute as it is being changed. Only "
+"useful\n"
+" with -i.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+"The options -o and -i are mutually exclusive.\n"
+"\n"
+msgstr ""
+"Configura una lista a partir de las descripciones contenidas en un fichero "
+"de texto.\n"
+"\n"
+"Sintaxis: config_list [opciones] lista\n"
+"\n"
+"Opciones:\n"
+" --inputfile fichero\n"
+" -i fichero\n"
+" Configura la lista asignando cada variable de modulo-global "
+"contenida\n"
+" en el fichero a un atributo del objeto lista, guardando los cambios "
+"a \n"
+" continuación. El fichero especificado se carga con execfile() y "
+"tiene\n"
+" que contener código Python válido.\n"
+" Cualquier variable que no sea un atributo válido de una lista se "
+"ignarará\n"
+" (imprimiendo un mensaje de aviso). Vea también la opción -c.\n"
+"\n"
+" Una variable especial llamada `mlist' se pone en el ámbito global "
+"durante\n"
+" la ejecución de execfile, que se asocia a la lista actual. Esto le "
+"permite\n"
+" hacer todo tipo de cosas raras a la lista, but ¡TENGA CUIDADO! Usar "
+"esto puede hacer dañar seriamente (y posiblemente irreversiblemente) "
+"su lista de\n"
+" distribución.\n"
+"\n"
+" --outputfile fichero\n"
+" -o fichero\n"
+" En vez de configurar la lista, imprime las variables de "
+"configuración de la\n"
+" lista en un formato adecuado para usarlo como entrada a este guión. "
+"De esta\n"
+" manera, puede guardar las opciones de configuración de una lista y "
+"usarlas\n"
+" para configurar otra lista. La opciones de configuración se guardan "
+"en\n"
+" `fichero'. Si fichero es `-', la salida del programa se manda a la "
+"salida\n"
+" estándar.\n"
+"\n"
+" --checkonly\n"
+" -c\n"
+" Con esta opción, la lista modificada no se cambia. Solo es útil con "
+"-i.\n"
+"\n"
+" --verbose\n"
+" -v\n"
+" Imprime el nombre de cada atributo que se cambia. Solo es útil con -"
+"i\n"
+"\n"
+" --help\n"
+" -h\n"
+" Imprime este mensaje y sale.\n"
+"\n"
+"Las opciones -o y -i son mútuamente exclusivas.\n"
+"\n"
+
+#: bin/config_list:109
+msgid ""
+"## \"%(listname)s\" mailing list configuration settings -*- python -*-\n"
+"## captured on %(when)s\n"
+msgstr ""
+"## valores de configuración de la lista de distribución \"%(listname)s\"\n"
+"## -*- python -*-\n"
+"## capturados el %(when)s\n"
+
+#: bin/config_list:131
+msgid "options"
+msgstr "Opciones"
+
+#: bin/config_list:188
+msgid "legal values are:"
+msgstr "los valores correctos son:"
+
+#: bin/config_list:252
+msgid "attribute \"%(k)s\" ignored"
+msgstr "se ha ignorado el atributo \"%(k)s\""
+
+#: bin/config_list:255
+msgid "attribute \"%(k)s\" changed"
+msgstr "atributo \"%(k)s\" cambiado"
+
+#: bin/config_list:261
+msgid "Non-standard property restored: %(k)s"
+msgstr "Propiedad no estándar restaurada: %(k)s"
+
+#: bin/config_list:269
+msgid "Invalid value for property: %(k)s"
+msgstr "Valor inválido de la propiedad: %(k)s"
+
+#: bin/config_list:271
+msgid "Bad email address for option %(k)s: %(v)s"
+msgstr "Dirección de correo-e incorrecta en la opción %(k)s: %(v)s"
+
+#: bin/config_list:319
+msgid "Only one of -i or -o is allowed"
+msgstr "Solo se permite poner o la opción -i o la -o"
+
+#: bin/config_list:321
+msgid "One of -i or -o is required"
+msgstr "Se necesita la opción -i o la opción -o"
+
+#: bin/config_list:325
+msgid "List name is required"
+msgstr "Hace falta el nombre de la lista"
+
+#: bin/convert.py:19
+msgid ""
+"Convert a list's interpolation strings from %-strings to $-strings.\n"
+"\n"
+"This script is intended to be run as a bin/withlist script, i.e.\n"
+"\n"
+"% bin/withlist -l -r convert <mylist>\n"
+msgstr ""
+"Cambia el formato de las cadenas de interpolado de una lista de la forma\n"
+"%-cadena a la forma $-cadena.\n"
+"\n"
+"Este guión está pensado para ejecutarse desde bin/withlist, esto es:\n"
+"\n"
+"% bin/withlist -l -r convert <lista>\n"
+
+#: bin/convert.py:38 bin/fix_url.py:85
+msgid "Saving list"
+msgstr "Guardando la lista"
+
+#: bin/convert.py:44 bin/fix_url.py:51
+msgid "%%%"
+msgstr "%%%"
+
+#: bin/dumpdb:19
+msgid ""
+"Dump the contents of any Mailman `database' file.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] filename\n"
+"\n"
+"Options:\n"
+"\n"
+" --marshal/-m\n"
+" Assume the file contains a Python marshal, overridding any "
+"automatic\n"
+" guessing.\n"
+"\n"
+" --pickle/-p\n"
+" Assume the file contains a Python pickle, overridding any automatic\n"
+" guessing.\n"
+"\n"
+" --noprint/-n\n"
+" Don't attempt to pretty print the object. This is useful if "
+"there's\n"
+" some problem with the object and you just want to get an unpickled\n"
+" representation. Useful with `python -i bin/dumpdb <file>'. In "
+"that\n"
+" case, the root of the tree will be left in a global called \"msg\".\n"
+"\n"
+" --help/-h\n"
+" Print this help message and exit\n"
+"\n"
+"If the filename ends with `.db', then it is assumed that the file contains "
+"a\n"
+"Python marshal. If the file ends with `.pck' then it is assumed to contain "
+"a\n"
+"Python pickle. In either case, if you want to override the default "
+"assumption\n"
+"-- or if the file ends in neither suffix -- use the -p or -m flags.\n"
+msgstr ""
+"Vuelca el contenido de cualquier fichero de base de datos de Mailman.\n"
+"\n"
+"Sintaxis: %(PROGRAM)s [opciones] fichero\n"
+"\n"
+"Opciones:\n"
+"\n"
+" --marshal/-m\n"
+" Supone que el fichero está en formato marshal de Python, anulando \n"
+" cualquier averiguación automática\n"
+"\n"
+" --pickle/-p\n"
+" Supone que el fichero está en formato pickle de Python , anulando\n"
+" cualquier averiguación automática\n"
+"\n"
+" --noprint/-n\n"
+" No trata de imprimir con formato el objeto. Esta opción es útil si\n"
+" hay algún tipo de problema con el objeto y solo quiere obtener una\n"
+" representación sin más. ütil con `python -i bin/dumpdb <fichero>`.\n"
+" En este caso, la raiz del árbol se dejará en una variable global\n"
+" llamada \"msg\".\n"
+"\n"
+" --help/-h\n"
+" Imprime este mensaje de ayuda y termina\n"
+"\n"
+"Si el nombre del fichero termina con `.db', entonces se supone que el\n"
+"fichero está en formato marshal de Python. Si el nombre del fichero termina\n"
+"en `.pck' entonces se supone que el fichero está en formato pickle de Python.\n"
+"En cualquier caso, si se quiere anular la suposición por defecto \\(o si el \n"
+"nombre de fichero no termina conningún sufijo), hay que utilizar la opción \n"
+"-p o -m.\n"
+
+#: bin/dumpdb:101
+msgid "No filename given."
+msgstr "No se ha proporcionado ningún nombre de fichero"
+
+#: bin/dumpdb:104
+msgid "Bad arguments: %(pargs)s"
+msgstr "Argumentos incorrectos: %(pargs)s"
+
+#: bin/dumpdb:114
+msgid "Please specify either -p or -m."
+msgstr "Por favor, especifique -p o -m."
+
+#: bin/find_member:19
+msgid ""
+"Find all lists that a member's address is on.\n"
+"\n"
+"Usage:\n"
+" find_member [options] regex [regex [...]]\n"
+"\n"
+"Where:\n"
+" --listname=listname\n"
+" -l listname\n"
+" Include only the named list in the search.\n"
+"\n"
+" --exclude=listname\n"
+" -x listname\n"
+" Exclude the named list from the search.\n"
+"\n"
+" --owners\n"
+" -w\n"
+" Search list owners as well as members.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" regex\n"
+" A Python regular expression to match against.\n"
+"\n"
+"The interaction between -l and -x is as follows. If any -l option is given\n"
+"then only the named list will be included in the search. If any -x option "
+"is\n"
+"given but no -l option is given, then all lists will be search except those\n"
+"specifically excluded.\n"
+"\n"
+"Regular expression syntax is Perl5-like, using the Python re module. "
+"Complete\n"
+"specifications are at:\n"
+"\n"
+"http://www.python.org/doc/current/lib/module-re.html\n"
+"\n"
+"Address matches are case-insensitive, but case-preserved addresses are\n"
+"displayed.\n"
+"\n"
+msgstr ""
+"Encuentra todas las listas que contengan la dirección de un subscriptor\n"
+"\n"
+"Sintaxis:\n"
+" find_member [opciones] expreg [expreg expreg [...]]\n"
+"\n"
+"Donde:\n"
+" --listname=lista\n"
+" -l lista\n"
+" Busca solo en las listas indicadas.\n"
+"\n"
+" --exclude=lista\n"
+" -x lista\n"
+" Excluye de la búsqueda las listas indicadas.\n"
+"\n"
+" --owners\n"
+" -w\n"
+" Incluye en la búsqueda las direcciones de los propietarios.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Imprime este mensaje de ayuda y termina.\n"
+"\n"
+" expreg\n"
+" Una expresión regular de Python con la que comparar.\n"
+"\n"
+"La relación entre -l y -x funciona como sigue. Si se especifica alguna "
+"opción -l\n"
+"entonces se incluirán en la búsqueda únicamente las listas indicadas. Si se "
+"indica\n"
+"alguna opción -x pero no se indica ninguna opción -l, entonces se buscarán "
+"en\n"
+"todas las listas excepto en aquellas que se hayan excluido específicamente\n"
+"\n"
+"La sintaxis de la expresión regular es al estilo Perl5, usando el modulo "
+"Python re. Las especificaciones completas están en:\n"
+"\n"
+"http://www.python.org/doc/current/lib/module-re.html\n"
+"\n"
+"Al buscar las direcciones no se distinguen mayúsculas de minúsculas, sin "
+"embargo, \n"
+"se muestran las direcciones tal y como se encuentran.\n"
+"\n"
+
+#: bin/find_member:159
+msgid "Search regular expression required"
+msgstr "Hace falta una expresión regular de búsqueda"
+
+#: bin/find_member:164
+msgid "No lists to search"
+msgstr "No hay listas donde buscar"
+
+#: bin/find_member:173
+msgid "found in:"
+msgstr "encontrado en:"
+
+#: bin/find_member:179
+msgid "(as owner)"
+msgstr "(como administrador)"
+
+#: bin/fix_url.py:19
+msgid ""
+"Reset a list's web_page_url attribute to the default setting.\n"
+"\n"
+"This script is intended to be run as a bin/withlist script, i.e.\n"
+"\n"
+"% bin/withlist -l -r fix_url listname [options]\n"
+"\n"
+"Options:\n"
+" -u urlhost\n"
+" --urlhost=urlhost\n"
+" Look up urlhost in the virtual host table and set the web_page_url "
+"and\n"
+" host_name attributes of the list to the values found. This\n"
+" essentially moves the list from one virtual domain to another.\n"
+"\n"
+" Without this option, the default web_page_url and host_name values "
+"are\n"
+" used.\n"
+"\n"
+" -v / --verbose\n"
+" Print what the script is doing.\n"
+"\n"
+"If run standalone, it prints this help text and exits.\n"
+msgstr ""
+
+#: bin/fix_url.py:80
+msgid "Setting web_page_url to: %(web_page_url)s"
+msgstr "Asignando el valor %(web_page_url)s a web_page_url"
+
+#: bin/fix_url.py:83
+msgid "Setting host_name to: %(mailhost)s"
+msgstr "Asinando el valor %(mailhost)s a host_name"
+
+#: bin/genaliases:19
+msgid ""
+"Regenerate Postfix's data/aliases and data/aliases.db files from scratch.\n"
+"\n"
+"Usage:\n"
+"\n"
+" genaliases [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+msgstr ""
+"Regenerar los datos/aliases de Postfix y los ficheros de datos/aliases.db\n"
+"desde el principio.\n"
+"\n"
+"Sintaxis:\n"
+"\n"
+" genaliases [opciones]\n"
+"\n"
+"Opciones:\n"
+"\n"
+" -h/--help\n"
+" Imprime este mensaje y termina.\n"
+
+#: bin/inject:19
+msgid ""
+"Inject a message from a file into Mailman's incoming queue.\n"
+"\n"
+"Usage: inject [options] [filename]\n"
+"\n"
+"Options:\n"
+"\n"
+" -h / --help\n"
+" Print this text and exit.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" The name of the list to inject this message to. Required.\n"
+"\n"
+" -q queuename\n"
+" --queue=queuename\n"
+" The name of the queue to inject the message to. The queuename must "
+"be\n"
+" one of the directories inside the qfiles directory. If omitted, "
+"the\n"
+" incoming queue is used.\n"
+"\n"
+"filename is the name of the plaintext message file to inject. If omitted,\n"
+"standard input is used.\n"
+msgstr ""
+"Inyectar un mensaje procedente de un fichero en la cola de entrada de "
+"Mailman .\n"
+"\n"
+"Sintaxis: inject [opciones] [fichero]\n"
+"\n"
+"Opciones:\n"
+"\n"
+" -h / --help\n"
+" Imprimir este mensaje y salir.\n"
+"\n"
+" -l lista\n"
+" --listname=lista\n"
+" El nombre de la lista al que inyectar el mensaje. Obligatorio\n"
+"\n"
+" -q nombredelacola\n"
+" --queue=nombredelacola\n"
+" El nombre de la cola a la que inyectar el mensaje. nombredelacola\n"
+" tiene que estar en uno de los directorios interiores del directorio\n"
+" qfiles. Si no se pone se usa el nombre de la cola incoming\n"
+"\n"
+"fichero es el nombre del fichero con texto plano a inyectar.\n"
+"Si no se pone, se usa la entrada estándar.\n"
+
+#: bin/inject:83
+msgid "Bad queue directory: %(qdir)s"
+msgstr "El directorio que representa la cola es incorrecto: %(qdir)s"
+
+#: bin/inject:88
+msgid "A list name is required"
+msgstr "Hace falta un nombre de lista"
+
+#: bin/list_admins:19
+msgid ""
+"List all the owners of a mailing list.\n"
+"\n"
+"Usage: %(program)s [options] listname ...\n"
+"\n"
+"Where:\n"
+"\n"
+" --all-vhost=vhost\n"
+" -v=vhost\n"
+" List the owners of all the mailing lists for the given virtual "
+"host.\n"
+"\n"
+" --all\n"
+" -a\n"
+" List the owners of all the mailing lists on this system.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+"`listname' is the name of the mailing list to print the owners of. You can\n"
+"have more than one named list on the command line.\n"
+msgstr ""
+"Lista todos los propietarios de una lista de distribución.\n"
+"\n"
+"Sintaxis: %(program)s [opciones] lista ...\n"
+"\n"
+"Donde:\n"
+"\n"
+" --all-vhost=hostv\n"
+" -v=hostv\n"
+" Listar los propietarios de todas las listas de distribuciónes del "
+"dominio\n"
+" virtual dado.\n"
+" --all\n"
+" -a\n"
+" Listar los propietarios de todas las listas de distribución en este "
+"sistema.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Imprime este mensaje de ayuda y termina.\n"
+"\n"
+"`lista' es el nombre de la lista cuyos propietarios se van a imprimir. Se "
+"pueden\n"
+"indicar más de una lista en la línea de ordenes.\n"
+
+#: bin/list_admins:96
+msgid "List: %(listname)s, \tOwners: %(owners)s"
+msgstr "Lista: %(listname)s, \tPropietario: %(owners)s"
+
+#: bin/list_lists:19
+msgid ""
+"List all mailing lists.\n"
+"\n"
+"Usage: %(program)s [options]\n"
+"\n"
+"Where:\n"
+"\n"
+" -a / --advertised\n"
+" List only those mailing lists that are publically advertised\n"
+"\n"
+" --virtual-host-overview=domain\n"
+" -V domain\n"
+" List only those mailing lists that are homed to the given virtual\n"
+" domain. This only works if the VIRTUAL_HOST_OVERVIEW variable is\n"
+" set.\n"
+"\n"
+" -b / --bare\n"
+" Displays only the list name, with no description.\n"
+"\n"
+" -h / --help\n"
+" Print this text and exit.\n"
+"\n"
+msgstr ""
+"Lista todas las listas de distribución.\n"
+"\n"
+"Sintaxis: %(program)s [opciones]\n"
+"\n"
+"Donde:\n"
+"\n"
+" --advertised\n"
+" -a\n"
+" Lista únicamente aquellas listas que están visibles públicamente\n"
+"\n"
+" --virtual-host-overview=dominio\n"
+" -V dominio\n"
+" Lista únicamente aquellas listas que están ligadas al dominio virtual\n"
+" especificado. Esto funciona únicamente si la variable VIRTUAL_HOST_OVERVIEW\n"
+" está activa.\n"
+"\n"
+" -b / --bare\n"
+" Solo muestra el nombre de la lista, sin la descripción.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Imprime este mensaje y termina.\n"
+
+#: bin/list_lists:105
+msgid "No matching mailing lists found"
+msgstr "No se ha encontrado ninguna lista de correo que coincida"
+
+#: bin/list_lists:109
+msgid "matching mailing lists found:"
+msgstr "Las siguientes listas de distribución coinciden:"
+
+#: bin/list_members:19
+msgid ""
+"List all the members of a mailing list.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] listname\n"
+"\n"
+"Where:\n"
+"\n"
+" --output file\n"
+" -o file\n"
+" Write output to specified file instead of standard out.\n"
+"\n"
+" --regular / -r\n"
+" Print just the regular (non-digest) members.\n"
+"\n"
+" --digest[=kind] / -d [kind]\n"
+" Print just the digest members. Optional argument can be \"mime\" "
+"or\n"
+" \"plain\" which prints just the digest members receiving that kind "
+"of\n"
+" digest.\n"
+"\n"
+" --nomail[=why] / -n [why]\n"
+" Print the members that have delivery disabled. Optional argument "
+"can\n"
+" be \"byadmin\", \"byuser\", \"bybounce\", or \"unknown\" which "
+"prints just the\n"
+" users who have delivery disabled for that reason. It can also be\n"
+" \"enabled\" which prints just those member for whom delivery is\n"
+" enabled.\n"
+"\n"
+" --fullnames / -f\n"
+" Include the full names in the output.\n"
+"\n"
+" --preserve\n"
+" -p\n"
+" Output member addresses case preserved the way they were added to "
+"the\n"
+" list. Otherwise, addresses are printed in all lowercase.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname is the name of the mailing list to use.\n"
+"\n"
+"Note that if neither -r or -d is supplied, both regular members are printed\n"
+"first, followed by digest members, but no indication is given as to address\n"
+"status.\n"
+msgstr ""
+"Lista todos los subscriptores de una lista de distribución.\n"
+"\n"
+"Sintaxis: %(PROGRAM)s [opciones] lista\n"
+"\n"
+"Donde\n"
+"\n"
+" --output fichero\n"
+" -o fichero\n"
+" Escribe la salida al fichero especificado en vez de la salida estándar.\n"
+"\n"
+" --regular / -r\n"
+" Solo imprime los subscriptores regulares (no-digest).\n"
+"\n"
+" --digest[=tipo] / -d [tipo]\n"
+" Solo imprime los subscriptores digest. El argumento opcional puede ser\n"
+" \"mime\" o \"plain\" que imprime solo a los subscriptores con la entrega\n"
+" diferida de ese tipo.\n"
+"\n"
+" --nomail[=why] / -n [why]\n"
+" Muestra los subscriptores que tienen la recepción del correo inhabilitada.\n"
+" Un argumento opcional puede se \"byadmin\", \"byuser\", \"bybounce\" o \"unknown\"\n"
+" que selecciona a aquellos subscriptores que tiene la recepción inactiva por\n"
+" dicha razón. También puede ser \"enabled\" que solo imprime a aquellos\n"
+" subscriptores que tienen la recepción habilitada.\n"
+"\n"
+" --fullnames / -f\n"
+" Incluye el nombre y los apellidos en la salida.\n"
+"\n"
+" --preserve\n"
+" -p\n"
+" Saca las direcciones tal como fueron apuntadas a la lista.\n"
+" Por defecto las saca en minúsculas.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Imprime este mensaje y termina.\n"
+"\n"
+" lista es el nombre de la lista de distribución a usar.\n"
+"\n"
+"Hay que tener en cuenta que si no se indica ni -r ni -d, se imprimirán los\n"
+"subscriptores regulares seguidos por los subscriptores digest sin indicación\n"
+"alguna de qué direcciones son regulares o digest\n"
+"\n"
+
+#: bin/list_members:150
+msgid "Bad --nomail option: %(why)s"
+msgstr "Error en opción --nomail: %(why)s"
+
+#: bin/list_members:161
+msgid "Bad --digest option: %(kind)s"
+msgstr "Error en opción --digest: %(kind)s"
+
+#: bin/list_members:179
+msgid "Could not open file for writing:"
+msgstr "No he podido abrir el fichero en modo escritura."
+
+#: bin/list_owners:19
+msgid ""
+"List the owners of a mailing list, or all mailing lists.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname ...]\n"
+"Options:\n"
+"\n"
+" -w / --with-listnames\n"
+" Group the owners by list names and include the list names in the\n"
+" output. Otherwise, the owners will be sorted and uniquified based "
+"on\n"
+" the email address.\n"
+"\n"
+" -m / --moderators\n"
+" Include the list moderators in the output.\n"
+"\n"
+" -h / --help\n"
+" Print this help message and exit.\n"
+"\n"
+" listname\n"
+" Print the owners of the specified lists. More than one can appear\n"
+" after the options. If there are no listnames provided, the owners "
+"of\n"
+" all the lists will be displayed.\n"
+msgstr ""
+
+#: bin/mailmanctl:19
+msgid ""
+"Primary start-up and shutdown script for Mailman's qrunner daemon.\n"
+"\n"
+"This script starts, stops, and restarts the main Mailman queue runners, "
+"making\n"
+"sure that the various long-running qrunners are still alive and kicking. "
+"It\n"
+"does this by forking and exec'ing the qrunners and waiting on their pids.\n"
+"When it detects a subprocess has exited, it may restart it.\n"
+"\n"
+"The qrunners respond to SIGINT, SIGTERM, and SIGHUP. SIGINT and SIGTERM "
+"both\n"
+"cause the qrunners to exit cleanly, but the master will only restart "
+"qrunners\n"
+"that have exited due to a SIGINT. SIGHUP causes the master and the "
+"qrunners\n"
+"to close their log files, and reopen then upon the next printed message.\n"
+"\n"
+"The master also responds to SIGINT, SIGTERM, and SIGHUP, which it simply\n"
+"passes on to the qrunners (note that the master will close and reopen its "
+"own\n"
+"log files on receipt of a SIGHUP). The master also leaves its own process "
+"id\n"
+"in the file data/master-qrunner.pid but you normally don't need to use this\n"
+"pid directly. The `start', `stop', `restart', and `reopen' commands handle\n"
+"everything for you.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [ start | stop | restart | reopen ]\n"
+"\n"
+"Options:\n"
+"\n"
+" -n/--no-restart\n"
+" Don't restart the qrunners when they exit because of an error or a\n"
+" SIGINT. They are never restarted if they exit in response to a\n"
+" SIGTERM. Use this only for debugging. Only useful if the `start'\n"
+" command is given.\n"
+"\n"
+" -u/--run-as-user\n"
+" Normally, this script will refuse to run if the user id and group "
+"id\n"
+" are not set to the `mailman' user and group (as defined when you\n"
+" configured Mailman). If run as root, this script will change to "
+"this\n"
+" user and group before the check is made.\n"
+"\n"
+" This can be inconvenient for testing and debugging purposes, so the -"
+"u\n"
+" flag means that the step that sets and checks the uid/gid is "
+"skipped,\n"
+" and the program is run as the current user and group. This flag is\n"
+" not recommended for normal production environments.\n"
+"\n"
+" Note though, that if you run with -u and are not in the mailman "
+"group,\n"
+" you may have permission problems, such as begin unable to delete a\n"
+" list's archives through the web. Tough luck!\n"
+"\n"
+" -s/--stale-lock-cleanup\n"
+" If mailmanctl finds an existing master lock, it will normally exit\n"
+" with an error message. With this option, mailmanctl will perform "
+"an\n"
+" extra level of checking. If a process matching the host/pid "
+"described\n"
+" in the lock file is running, mailmanctl will still exit, but if no\n"
+" matching process is found, mailmanctl will remove the apparently "
+"stale\n"
+" lock and make another attempt to claim the master lock.\n"
+"\n"
+" -q/--quiet\n"
+" Don't print status messages. Error messages are still printed to\n"
+" standard error.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+"\n"
+"Commands:\n"
+"\n"
+" start - Start the master daemon and all qrunners. Prints a message "
+"and\n"
+" exits if the master daemon is already running.\n"
+"\n"
+" stop - Stops the master daemon and all qrunners. After stopping, no\n"
+" more messages will be processed.\n"
+"\n"
+" restart - Restarts the qrunners, but not the master process. Use this\n"
+" whenever you upgrade or update Mailman so that the qrunners "
+"will\n"
+" use the newly installed code.\n"
+"\n"
+" reopen - This will close all log files, causing them to be re-opened "
+"the\n"
+" next time a message is written to them\n"
+msgstr ""
+"Guión básico de arranque y parada del demonio de Mailman qrunner.\n"
+"\n"
+"Este guión arranca, para y rearranca el encargado de procesar la cola,\n"
+"asegurandose de que distintos procesos de larga duración sigan vivitos\n"
+"y coleando.\n"
+"Esto se hace mediante un fork y ejecutando el subproceso qrunner y esperando\n"
+"según su pid. Cuando detecte que un subproceso ha terminado, podría rearrancarlo.\n"
+"\n"
+"The sub-qrunners responden a SIGINT, SIGTERM, and SIGHUP. Tanto SIGINT como SIGTERM\n"
+"causan que los sub-qrunners salgan limpiamente, mientras que el maestro solo\n"
+"rearrancará aquellos sub-qrunners que hayan salido a causa de un SIGINT. SIGINT hace\n"
+"que tanto el qrunner maestro y los sub-qrunners cierren sus ficheros de trazas y los\n"
+"reabran cuando se imprima el mensaje siguiente.\n"
+"\n"
+"El qrunner maestro también responde a SIGINT, SIGTERM y SIGHUP que él solo pasa\n"
+"a los sub-qrunners (observe que el maestro cerrará y reabrirá sus propios ficheros\n"
+"de trazas a la llegada de un SIGHUP). El qrunner maestro también dejará su propio\n"
+"proceso id en el fichero data/master-qrunner.pid pero normalmente no necesitarás\n"
+"usar este pid directamente. Las ordenes `start', `stop', `restart' y `open' lo harán\n"
+"todo por tí.\n"
+"\n"
+"Sintaxis: %(PROGRAM)s [opciones] [ start | stop | restart | reopen ]\n"
+"Opciones:\n"
+"\n"
+" -n/--no-restart\n"
+" No rearranques los sub-qrunners cuando salgan debido a un error o a una\n"
+" señal SIGINT (nunca se rearrancan si salen debido a la respuesta a una\n"
+" señal SIGTERM). Usalo solo para depuración. Solo es útil si se proporciona\n"
+" la orden `start'.\n"
+"\n"
+" -u/--run-as-user\n"
+" Normalmente, este guión se resistirá a arrancar si el id de usuario \n"
+" y el id del grupo no corresponden a los del usuario y grupo de `mailman'\n"
+" (tal y como se definió cuando se configuró Mailman). Si se ejecuta como\n"
+" root, este guión cambiará su id al del usuario y el del grupo antes de que\n"
+" se haga la comprobación-\n"
+"\n"
+" Puede que esto no sea conveniente para tareas de testeo y depurado, de\n"
+" manera que la opción -u significa que el paso que establece y comprueba\n"
+" el uid/gid se salta y el programa se ejcuta como el usuario y grupo\n"
+" actuales. Esta opción no se recomienda para entornos de producción normales.\n"
+"\n"
+" Observe sin embargo, que si lo ejecuta con la opción -u y no está en el\n"
+" grupo 'mailman' podría tener problemas de permisos, tal como ser incapaz de\n"
+" borrar el archivo de una determinada lista a través del interfaz web. ¡Que\n"
+" la suerte te acompañe!\n"
+"\n"
+" -s/--stale-lock-cleanup\n"
+" Si mailmanctl encuentra un bloqueo del qrunner maestro, saldrá con un\n"
+" mensaje de error. Con esta opción, mailmanctl realizará un nivel extra\n"
+" de chequeo. Si un proceso que coincide con el host/pid descrito en el\n"
+" fichero de bloqueo se está ejecutando, mailmanctl borrará el bloqueo\n"
+" que aparenta ser corrupto y hará otro intento de obtener por el bloqueo\n"
+" maestro.\n"
+"\n"
+" -q/--quiet\n"
+"\n"
+" No imprimir mensajes de estado. Aún así, los mensajes de error\n"
+" se siguen imprimiendo en el error estándar.\n"
+"\n"
+" -h/--help\n"
+" Imprimir este mensaje y salir.\n"
+"\n"
+"Ordenes::\n"
+"\n"
+" start - Arranca el demonio maestro y todos los qrunners.\n"
+" Imprime un mensaje y sale si el demonio maestro ya\n"
+" está ejecutándose.\n"
+"\n"
+" stop - Para el demonio maestro, y todos los qrunners.\n"
+" Después de parar, no se procesarán más mensajes.\n"
+"\n"
+" restart - Rearranca los qrunners, pero no el demonio maestro.\n"
+" Usa esta opción siempre que actualices Mailman para\n"
+" hacer que los qrunners usen el código instalado nuevo.\n"
+"\n"
+" reopen - Esto hará que se cierren todos los ficheros de trazas,\n"
+" causando que se reabran la próxima vez que se les escriba\n"
+" un mensaje.\n"
+
+#: bin/mailmanctl:149
+msgid "PID unreadable in: %(pidfile)s"
+msgstr "PID ilegible en: %(pidfile)s"
+
+#: bin/mailmanctl:151
+msgid "Is qrunner even running?"
+msgstr "¿Está el qrunner corriendo acaso?"
+
+#: bin/mailmanctl:157
+msgid "No child with pid: %(pid)s"
+msgstr "Ningún hijo con pid %(pid)s"
+
+#: bin/mailmanctl:159
+msgid "Stale pid file removed."
+msgstr "Fichero pid corrupto borrado."
+
+#: bin/mailmanctl:217
+msgid ""
+"The master qrunner lock could not be acquired because it appears as if "
+"another\n"
+"master qrunner is already running.\n"
+msgstr ""
+"El bloqueo maestro de qrunner no se ha podido adquirir porque parece ser que "
+"hay\n"
+"otro qrunner maestro ejecutándose.\n"
+
+#: bin/mailmanctl:223
+msgid ""
+"The master qrunner lock could not be acquired. It appears as though there "
+"is\n"
+"a stale master qrunner lock. Try re-running mailmanctl with the -s flag.\n"
+msgstr ""
+"No se pudo conseguir el bloqueo del qrunner maestro, porque parece como si\n"
+"ya hubiera otro qrunner maestro ejecutándose.\n"
+
+#: bin/mailmanctl:229
+msgid ""
+"The master qrunner lock could not be acquired, because it appears as if "
+"some\n"
+"process on some other host may have acquired it. We can't test for stale\n"
+"locks across host boundaries, so you'll have to do this manually. Or, if "
+"you\n"
+"know the lock is stale, re-run mailmanctl with the -s flag.\n"
+"\n"
+"Lock file: %(LOCKFILE)s\n"
+"Lock host: %(status)s\n"
+"\n"
+"Exiting."
+msgstr ""
+"No se pudo conseguir el bloqueo del qrunner maestro, porque parece como si\n"
+"lo hubiera obtenido algún proceso en otro servidor. No podemos comprobar\n"
+"si hay bloqueos olvidados en otros servidores, así que tendrá que hacerlo "
+"usted\n"
+"manualmente. O, si sabe que el bloqueo está olvidado, volver a ejecutar "
+"mailmanctl\n"
+"con la opción -s.\n"
+"\n"
+"Fichero de bloqueo: %(LOCKFILE)s\n"
+"Servidor de bloqueo: %(status)s\n"
+"\n"
+"Saliendo."
+
+#: bin/mailmanctl:282
+msgid "Run this program as root or as the %(name)s user, or use -u."
+msgstr ""
+"Ejecute este programa como root, como el usuario %(name)s o use la opción -u."
+
+#: bin/mailmanctl:313
+msgid "No command given."
+msgstr "No se ha dado ninguna orden"
+
+#: bin/mailmanctl:316
+msgid "Bad command: %(command)s"
+msgstr "Orden incorrecta: %(command)s"
+
+#: bin/mailmanctl:321
+msgid "Warning! You may encounter permission problems."
+msgstr "¡Atención! podría encontrar problemas de permisos."
+
+#: bin/mailmanctl:330
+msgid "Shutting down Mailman's master qrunner"
+msgstr "Deteniendo el qrunner maestro de Mailman."
+
+#: bin/mailmanctl:337
+msgid "Restarting Mailman's master qrunner"
+msgstr "Reiniciando el qrunner maestro de Mailman"
+
+#: bin/mailmanctl:341
+msgid "Re-opening all log files"
+msgstr "Volviendo a abrir todos los cuadernos de bitácora"
+
+#: bin/mailmanctl:375
+msgid "Starting Mailman's master qrunner."
+msgstr "Arrancando el qrunner maestro de Mailman"
+
+#: bin/mmsitepass:19
+msgid ""
+"Set the site password, prompting from the terminal.\n"
+"\n"
+"The site password can be used in most if not all places that the list\n"
+"administrator's password can be used, which in turn can be used in most "
+"places\n"
+"that a list users password can be used.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [password]\n"
+"\n"
+"Options:\n"
+"\n"
+" -c/--listcreator\n"
+" Set the list creator password instead of the site password. The "
+"list\n"
+" creator is authorized to create and remove lists, but does not have\n"
+" the total power of the site administrator.\n"
+"\n"
+" -h/--help\n"
+" Print this help message and exit.\n"
+"\n"
+"If password is not given on the command line, it will be prompted for.\n"
+msgstr ""
+"Establecer la contraseña del servidor, preguntando desde la terminal.\n"
+"\n"
+"La contraseña del servidor se puede usar en la mayoría (si no en todos) de "
+"los\n"
+"sitios en los que se puede usar la contraseña de administrador de la lista,\n"
+"que a su vez puede usarse en la mayoría de los sitios en los que se puede\n"
+"usar una contraseña de suscriptor.\n"
+"\n"
+"Sintaxis %(PROGRAM)s [opciones] [contraseña]\n"
+"\n"
+"Opciones:\n"
+"\n"
+" -c/--listcreator\n"
+" Establecer la contraseña del creador de la lista en vez de la del\n"
+"servidor. El creador de la lista está autorizado a crear y eliminar listas,\n"
+"pero no tiene el poder total del administrador del servidor.\n"
+"\n"
+" -h/--help\n"
+" Mostrar este mensaje de ayuda y salir.\n"
+"\n"
+"Si no se indica la contraseña en la línea de órdenes, se preguntará por "
+"ella.\n"
+
+#: bin/mmsitepass:73
+msgid "site"
+msgstr "sede"
+
+#: bin/mmsitepass:80
+msgid "list creator"
+msgstr "creador de la lista"
+
+#: bin/mmsitepass:86
+msgid "New %(pwdesc)s password: "
+msgstr "Clave nueva de %(pwdesc)s"
+
+#: bin/mmsitepass:87
+msgid "Again to confirm password: "
+msgstr "Otra vez para confirmar la clave."
+
+#: bin/mmsitepass:89
+msgid "Passwords do not match; no changes made."
+msgstr "Las claves no coinciden, no se ha realizado ningún cambio."
+
+#: bin/mmsitepass:92
+msgid "Interrupted..."
+msgstr "Interrumpido..."
+
+#: bin/mmsitepass:98
+msgid "Password changed."
+msgstr "Clave cambiada."
+
+#: bin/mmsitepass:100
+msgid "Password change failed."
+msgstr "El cambio de clave falló."
+
+#: bin/newlist:19
+msgid ""
+"Create a new, unpopulated mailing list.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname [listadmin-addr [admin-password]]]\n"
+"\n"
+"Options:\n"
+"\n"
+" -l language\n"
+" --language language\n"
+" Make the list's preferred language `language', which must be a two\n"
+" letter language code.\n"
+"\n"
+" -q/--quiet\n"
+" Normally the administrator is notified by email (after a prompt) "
+"that\n"
+" their list has been created. This option suppresses the prompt and\n"
+" notification.\n"
+"\n"
+" -h/--help\n"
+" Print this help text and exit.\n"
+"\n"
+"You can specify as many of the arguments as you want on the command line:\n"
+"you will be prompted for the missing ones.\n"
+"\n"
+"Every Mailman list has two parameters which define the default host name "
+"for\n"
+"outgoing email, and the default URL for all web interfaces. When you\n"
+"configured Mailman, certain defaults were calculated, but if you are "
+"running\n"
+"multiple virtual Mailman sites, then the defaults may not be appropriate "
+"for\n"
+"the list you are creating.\n"
+"\n"
+"You can specify the domain to create your new list in by spelling the "
+"listname\n"
+"like so:\n"
+"\n"
+" mylist@www.mydom.ain\n"
+"\n"
+"where `www.mydom.ain' should be the base hostname for the URL to this "
+"virtual\n"
+"hosts's lists. E.g. with is setting people will view the general list\n"
+"overviews at http://www.mydom.ain/mailman/listinfo. Also, www.mydom.ain\n"
+"should be a key in the VIRTUAL_HOSTS mapping in mm_cfg.py/Defaults.py. It\n"
+"will be looked up to give the email hostname. If this can't be found, then\n"
+"www.mydom.ain will be used for both the web interface and the email\n"
+"interface.\n"
+"\n"
+"If you spell the list name as just `mylist', then the email hostname will "
+"be\n"
+"taken from DEFAULT_EMAIL_HOST and the url will be taken from DEFAULT_URL "
+"(as\n"
+"defined in your Defaults.py file or overridden by settings in mm_cfg.py).\n"
+"\n"
+"Note that listnames are forced to lowercase.\n"
+msgstr ""
+"Crear una lista de distribución nueva, sin suscriptores.\n"
+"\n"
+"Sintaxis: %(PROGRAM)s [opciones] [lista [dir-administrador [clave-administrador]]]\n"
+"\n"
+"Opciones:\n"
+" -l idioma\n"
+" --language idioma\n"
+" Hacer que el idioma por defecto de la lista sea 'idioma', que debe ser un\n"
+" código de dos letras.\n"
+"\n"
+" -q/--quiet\n"
+" Normalmente se notifica por correo electrónico (después de preguntar)\n"
+"al administrador que la lista ha sido creada. Esta opción suprime la pregunta y la notificación.\n"
+"\n"
+" -h/--help\n"
+" Mostrar este texto de ayuda y salir.\n"
+"\n"
+"Puede especificar cuantos argumentos quiera en la línea de órdenes:\n"
+"se le preguntará por los que falten.\n"
+"\n"
+"Cualquier lista de Mailman tiene dos parámetros que definen el nombre del\n"
+"servidor de correo saliente predeterminado y el URL por defecto para\n"
+"los interfaces web. Cuando usted configuró Mailman, se calcularon algunos\n"
+"de los datos predeterminados, pero si usted está ejecutando varios\n"
+"sitios virtuales de Mailman, entonces los datos por defecto pueden que no\n"
+"valgan para la lista que está creando.\n"
+"\n"
+"Puede indicar el dominio en el que crear su nueva lista escribiendo el\n"
+"nombre de lista de esta manera:\n"
+"\n"
+" milista@www.midom.inio\n"
+"\n"
+"donde `www.midom.inio' debería ser el nombre del servidor base para el URL de las listas\n"
+"en este servidor virtual. Por ejemplo con esta preferencia la gente verá la descripción\n"
+"general de las listas en http://www.midom.inio/mailman/listinfo. Además, www.midom.inio\n"
+"debería ser una clave en la asignación VIRTUAL_HOSTS en mm_cfg.py/Defaults.py.\n"
+"Se consultará para proporcionar la dirección del servidor de correo electrónico.\n"
+"Si no se puede encontrar ésta, entonces se usará www.midom.inio tanto para el\n"
+"interfaz web como para el interfaz por correo electrónico.\n"
+"\n"
+"Si escribe el nombre de la lista simplemente como `milista', el nombre del servidor de correo\n"
+"electrónico se tomará de DEFAULT_EMAIL_HOST y se tomará el URL de DEFAULT_URL (como\n"
+"se definiera en su fichero Defaults.py o ignorado por las preferencias en mm_cfg.py).\n"
+"\n"
+"Observe que los nombres de las listas se convierten a minúsculas.\n"
+
+#: bin/newlist:118
+msgid "Unknown language: %(lang)s"
+msgstr "Idioma desconocido: %(lang)s"
+
+#: bin/newlist:123
+msgid "Enter the name of the list: "
+msgstr "Introduzca el nombre de la lista: "
+
+#: bin/newlist:140
+msgid "Enter the email of the person running the list: "
+msgstr "Indique la dirección de correo de la persona que gestionará la lista: "
+
+#: bin/newlist:145
+msgid "Initial %(listname)s password: "
+msgstr "Clave inicial de %(listname)s: "
+
+#: bin/newlist:149
+msgid "The list password cannot be empty"
+msgstr "La clave de la lista no puede estar vacia"
+
+#: bin/newlist:190
+msgid "Hit enter to notify %(listname)s owner..."
+msgstr ""
+"Presione el retorno de carro para notificar al propietario de la lista %"
+"(listname)s..."
+
+#: bin/qrunner:19
+msgid ""
+"Run one or more qrunners, once or repeatedly.\n"
+"\n"
+"Each named runner class is run in round-robin fashion. In other words, the\n"
+"first named runner is run to consume all the files currently in its\n"
+"directory. When that qrunner is done, the next one is run to consume all "
+"the\n"
+"files in /its/ directory, and so on. The number of total iterations can be\n"
+"given on the command line.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" -r runner[:slice:range]\n"
+" --runner=runner[:slice:range]\n"
+" Run the named qrunner, which must be one of the strings returned by\n"
+" the -l option. Optional slice:range if given, is used to assign\n"
+" multiple qrunner processes to a queue. range is the total number "
+"of\n"
+" qrunners for this queue while slice is the number of this qrunner "
+"from\n"
+" [0..range).\n"
+"\n"
+" If using the slice:range form, you better make sure that each "
+"qrunner\n"
+" for the queue is given the same range value. If slice:runner is "
+"not\n"
+" given, then 1:1 is used.\n"
+"\n"
+" Multiple -r options may be given, in which case each qrunner will "
+"run\n"
+" once in round-robin fashion. The special runner `All' is shorthand\n"
+" for a qrunner for each listed by the -l option.\n"
+"\n"
+" --once\n"
+" -o\n"
+" Run each named qrunner exactly once through its main loop. "
+"Otherwise,\n"
+" each qrunner runs indefinitely, until the process receives a "
+"SIGTERM\n"
+" or SIGINT.\n"
+"\n"
+" -l/--list\n"
+" Shows the available qrunner names and exit.\n"
+"\n"
+" -v/--verbose\n"
+" Spit out more debugging information to the logs/qrunner log file.\n"
+"\n"
+" -s/--subproc\n"
+" This should only be used when running qrunner as a subprocess of "
+"the\n"
+" mailmanctl startup script. It changes some of the exit-on-error\n"
+" behavior to work better with that framework.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+"\n"
+"runner is required unless -l or -h is given, and it must be one of the "
+"names\n"
+"displayed by the -l switch.\n"
+msgstr ""
+"Ejecuta uno o más qrunners, una sola vez o repetidamente.\n"
+"\n"
+"Cada clase runner nombrada se ejecuta de un modo round-robin.\n"
+"En otras palabras, el primer runner nombrado se ejecuta para consumir\n"
+"todos los ficheros que haya en su directorio en ese momento.\n"
+"Cuando ese qrunner ha acabado, se ejecuta el siguiente para consumir\n"
+"todos los ficheros en /su/ directorio, y así sucesivamente. El número total\n"
+"de iteraciones se puede proporcionar en la línea de órdenes.\n"
+"\n"
+"Sintaxis: %(PROGRAM)s [opciones]\n"
+"\n"
+"Opciones:\n"
+"\n"
+" -r runner[:slice:range]\n"
+" --runner=runner[:slice:range]\n"
+" Ejecutar el runner nombrado, que debe ser uno de las cadenas "
+"devueltas por\n"
+" la opción -l. Si se proporciona el opcional rodaja:rango, se usa "
+"para\n"
+" asignar multiples procesos qrunner a una cola. rango es el número "
+"total de\n"
+" qrunners para esta cola, mientras que rodaja es el número de este "
+"qrunner\n"
+" de [o...rango].\n"
+"\n"
+" Si usa la forma rodaja:rango, más vale que se asegure de que a cada "
+"qrunner\n"
+" para la cola se le da el mismo valor de rango. Si no se proporciona "
+"rodaja:runner,\n"
+" se usa 1:1.\n"
+"\n"
+" Se pueden proporcionar múltiples opciones -r, en cuyo caso cada "
+"qrunner se\n"
+" ejecutará una vez de un modo round-robin. El runner especial `All' "
+"es un\n"
+" atajo para un qrunner para cada uno de los listados por la opción -"
+"l.\n"
+"\n"
+" --once\n"
+" -o\n"
+" Ejecutar cada qrunner nombrado exactamente una sola vez a través de "
+"su bucle\n"
+" principal. De lo contrario, cada qrunner se ejecuta indefinidamente, "
+"hasta que el\n"
+" proceso recibe un SIGTERM o SIGINT.\n"
+"\n"
+" -l/--list\n"
+" Mostrar los nombres de los qrunners disponibles y salir.\n"
+"\n"
+" -v/--verbose\n"
+" Apuntar más información de depuración a los cuadernos de bitácora.\n"
+"\n"
+" -h/--help\n"
+" Mostrar este mensaje y salir.\n"
+"\n"
+"se precisa runner salvo que se indique -l o -h, y debe ser uno de los "
+"nombres\n"
+"mostrados por la opción -l.\n"
+
+#: bin/qrunner:176
+msgid "%(name)s runs the %(runnername)s qrunner"
+msgstr "%(name)s ejecuta el qrunner %(runnername)s"
+
+#: bin/qrunner:177
+msgid "All runs all the above qrunners"
+msgstr "Todo ejecuta todos los qrunners indicados arriba"
+
+#: bin/qrunner:213
+msgid "No runner name given."
+msgstr "No se ha proporcionado ningún nombre de runner"
+
+#: bin/remove_members:19
+msgid ""
+"Remove members from a list.\n"
+"\n"
+"Usage:\n"
+" remove_members [options] [listname] [addr1 ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" --file=file\n"
+" -f file\n"
+" Remove member addresses found in the given file. If file is\n"
+" `-', read stdin.\n"
+"\n"
+" --all\n"
+" -a\n"
+" Remove all members of the mailing list.\n"
+" (mutually exclusive with --fromall)\n"
+"\n"
+" --fromall\n"
+" Removes the given addresses from all the lists on this system\n"
+" regardless of virtual domains if you have any. This option cannot "
+"be\n"
+" used -a/--all. Also, you should not specify a listname when using "
+"this\n"
+" option.\n"
+"\n"
+" --nouserack\n"
+" -n\n"
+" Don't send the user acknowledgements.\n"
+"\n"
+" --noadminack\n"
+" -N\n"
+" Don't send the admin acknowledgements.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname is the name of the mailing list to use.\n"
+"\n"
+" addr1 ... are additional addresses to remove.\n"
+"\n"
+msgstr ""
+"Elimina los subscriptores de una lista.\n"
+"\n"
+"Sintaxis:\n"
+" remove_members [opciones] nombre-de-la-lista [dirección1 ...]\n"
+"\n"
+"Opciones:\n"
+"\n"
+" --file=fichero\n"
+" -f fichero\n"
+" Elimina las direcciones de suscriptores contenidas en el fichero \n"
+" indicado. Si el fichero es `-', se lee de la entrada estándar.\n"
+"\n"
+" --all\n"
+" -a\n"
+" Elimina todos los suscriptores de la lista de distribución.\n"
+" (incompatible con --fromall)\n"
+"\n"
+" --fromall\n"
+" Se eliminan las direcciones dadas de todas las listas de este sistema,\n"
+" sin tener en cuenta ningún dominio virtual que pueda tener, en caso\n"
+" de tener alguno. Esta opción no se puede usar con -a/--all. Además, \n"
+" no debería indicar ninguna lista cuando se use esta opción.\n"
+"\n"
+" --nouserack\n"
+" -n\n"
+" No se mandan mensajes informativos a los usuarios.\n"
+"\n"
+" --noadminack\n"
+" -N\n"
+" No se mandan mensajes informativos al administrador.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Mostrar este mensaje de ayuda y salir.\n"
+"\n"
+" nombre-de-la-lista es el nombre de la lista de distribución a usar.\n"
+"\n"
+" dirección1 ... son las direcciones adicionales a eliminar.\n"
+
+#: bin/remove_members:147
+msgid "Could not open file for reading: %(filename)s."
+msgstr "No se ha podido abrir leer el fichero: %(filename)s."
+
+#: bin/remove_members:154
+msgid "Error opening list %(listname)s... skipping."
+msgstr "Error abriendo la lista \"%(listname)s\", omitiéndola."
+
+#: bin/remove_members:164
+msgid "No such member: %(addr)s"
+msgstr "No existe tal subscriptor: %(addr)s."
+
+#: bin/remove_members:171
+msgid "User `%(addr)s' removed from list: %(listname)s."
+msgstr "El susbcriptor `%(addr)s' se ha dado de baja de la lista %(listname)s."
+
+#: bin/rmlist:19
+msgid ""
+"Remove the components of a mailing list with impunity - beware!\n"
+"\n"
+"This removes (almost) all traces of a mailing list. By default, the lists\n"
+"archives are not removed, which is very handy for retiring old lists.\n"
+"\n"
+"Usage:\n"
+" rmlist [-a] [-h] listname\n"
+"\n"
+"Where:\n"
+" --archives\n"
+" -a\n"
+" Remove the list's archives too, or if the list has already been\n"
+" deleted, remove any residual archives.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+msgstr ""
+"Elimina los componentes de una lista de distribución con impunidad - "
+"¡atención!\n"
+"\n"
+"Esto elimina (casi) todo rastro de una lista de distribución. Por defecto, "
+"los\n"
+"archivos de las listas no son eliminados, lo que es muy práctico para "
+"jubilar\n"
+"listas viejas.\n"
+"\n"
+"Sintaxis:\n"
+" rmlist [-a] [-h] nombre-de-la-lista\n"
+"\n"
+"Donde:\n"
+" --archives\n"
+" -a\n"
+" elimina también los archivos de la lista\n"
+"\n"
+" --help\n"
+" -h\n"
+" mostrar este mensaje de ayuda y salir\n"
+
+#: bin/rmlist:66 bin/rmlist:69
+msgid "Removing %(msg)s"
+msgstr "Borrando %(msg)s"
+
+#: bin/rmlist:72
+msgid "%(listname)s %(msg)s not found as %(dir)s"
+msgstr "%(msg)s de %(listname)s no se ha encontrado como %(dir)s"
+
+#: bin/rmlist:96
+msgid "No such list (or list already deleted): %(listname)s"
+msgstr "No existe tal lista (o se ha borrado ya): %(listname)s"
+
+#: bin/rmlist:98
+msgid "No such list: %(listname)s. Removing its residual archives."
+msgstr "No existe tal lista: %(listname)s. Borrando sus ficheros residuales."
+
+#: bin/rmlist:102
+msgid "Not removing archives. Reinvoke with -a to remove them."
+msgstr "No se está borrando el almacenaje. Reinvoqueme con -a para borrarlos."
+
+#: bin/rmlist:116
+msgid "list info"
+msgstr "información de la lista"
+
+#: bin/rmlist:122 bin/rmlist:124
+msgid "private archives"
+msgstr "ficheros privados"
+
+#: bin/rmlist:126 bin/rmlist:128
+msgid "public archives"
+msgstr "archivos públicos"
+
+#: bin/sync_members:19
+msgid ""
+"Synchronize a mailing list's membership with a flat file.\n"
+"\n"
+"This script is useful if you have a Mailman mailing list and a sendmail\n"
+":include: style list of addresses (also as is used in Majordomo). For "
+"every\n"
+"address in the file that does not appear in the mailing list, the address "
+"is\n"
+"added. For every address in the mailing list that does not appear in the\n"
+"file, the address is removed. Other options control what happens when an\n"
+"address is added or removed.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] -f file listname\n"
+"\n"
+"Where `options' are:\n"
+"\n"
+" --no-change\n"
+" -n\n"
+" Don't actually make the changes. Instead, print out what would be\n"
+" done to the list.\n"
+"\n"
+" --welcome-msg[=<yes|no>]\n"
+" -w[=<yes|no>]\n"
+" Sets whether or not to send the newly added members a welcome\n"
+" message, overriding whatever the list's `send_welcome_msg' setting\n"
+" is. With -w=yes or -w, the welcome message is sent. With -w=no, "
+"no\n"
+" message is sent.\n"
+"\n"
+" --goodbye-msg[=<yes|no>]\n"
+" -g[=<yes|no>]\n"
+" Sets whether or not to send the goodbye message to removed members,\n"
+" overriding whatever the list's `send_goodbye_msg' setting is. With\n"
+" -g=yes or -g, the goodbye message is sent. With -g=no, no message "
+"is\n"
+" sent.\n"
+"\n"
+" --digest[=<yes|no>]\n"
+" -d[=<yes|no>]\n"
+" Selects whether to make newly added members receive messages in\n"
+" digests. With -d=yes or -d, they become digest members. With -"
+"d=no\n"
+" (or if no -d option given) they are added as regular members.\n"
+"\n"
+" --notifyadmin[=<yes|no>]\n"
+" -a[=<yes|no>]\n"
+" Specifies whether the admin should be notified for each "
+"subscription\n"
+" or unsubscription. If you're adding a lot of addresses, you\n"
+" definitely want to turn this off! With -a=yes or -a, the admin is\n"
+" notified. With -a=no, the admin is not notified. With no -a "
+"option,\n"
+" the default for the list is used.\n"
+"\n"
+" --file <filename | ->\n"
+" -f <filename | ->\n"
+" This option is required. It specifies the flat file to synchronize\n"
+" against. Email addresses must appear one per line. If filename is\n"
+" `-' then stdin is used.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this message.\n"
+"\n"
+" listname\n"
+" Required. This specifies the list to synchronize.\n"
+msgstr ""
+"Sincroniza los miembros de una lista de distribución con un fichero de texto.\n"
+"\n"
+"Este script es útil si tiene una lista de distribución de Mailman y una lista\n"
+"de direcciones del tipo include de sendmail: (como se usan también en\n"
+"Majordomo)\n"
+"Se añaden las direcciones del fichero que no esté subscritas en la lista. Se borran \n"
+"las direcciones subscritas a la lista que no estén en el fichero.\n"
+"Otras opciones controlan que pasa cuando se añade o elimina una dirección.\n"
+"\n"
+"Sintaxis: %(PROGRAM)s [opciones] -f nombre-de-fichero lista\n"
+"\n"
+"Donde `opciones' son:\n"
+"\n"
+" --no-change\n"
+" -n\n"
+" No hacer los cambios en realidad. En su lugar, mostrar que se le\n"
+" habría hecho a la lista.\n"
+"\n"
+" --welcome-msg[=<yes|no>]\n"
+" -w[=<yes|no>]\n"
+" Establece si enviar o no a los nuevos suscriptores un mensaje de\n"
+" bienvenida, ignorando lo que diga la preferencia `send_welcome_msg'\n"
+" de la lista. Con -w=yes o -w, se envía el mensaje de bienvenida.\n"
+" Con -w=no, no se envía ningún mensaje.\n"
+"\n"
+" --goodbye-msg[=<yes|no>]\n"
+" -g[=<yes|no>]\n"
+" Controla si se mandan mensajes informativos cuando se borren direcciones\n"
+" de la lista, ignorando cualquier valor que tenga el parámetro `send_goodbye_msg'\n"
+" de la lista. Con -g=no no se manda ningún mensaje.\n"
+"\n"
+" --digest[=<yes|no>]\n"
+" -d[=<yes|no>]\n"
+" Controla si los subscriptores nuevos tendrán la entrega en modo digest. Con -d o\n"
+" -d=yes se darán de alta como subscriptores con la entrega diferida en recopilaciones.\n"
+" Con -d=no se darán de alta como subscriptores regulares.\n"
+"\n"
+" --notifyadmin[=<yes|no>]\n"
+" --a[=<yes|no>]\n"
+" Especifica si el administrador debería ser notificado de cada\n"
+" suBscripción o desuBscripción. Si está añadiendo un montón de \n"
+" direcciones, ¡seguro que quiere inhabilitarlo!\n"
+" Con -a=yes o -a, se avisa al administrador. Con a=no, el administrador no recibe avisos.\n"
+" Sin la opción -a, se usa el valor que tenga configurada la lista..\n"
+"\n"
+" --file <nombre-de-fichero | ->\n"
+" -f <nombre-de-fichero | ->\n"
+" Esta opción es obligatoria. Especifica el fichero de texto con el que\n"
+" sincronizarse.\n"
+" Las direcciones de correo electrónico deben aparecer cada una en una línea distinta.\n"
+" Si el nombre de fichero es `-' se leen las direcciones de la entrada estándar.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Mostrar este mensaje.\n"
+"\n"
+" lista\n"
+" Necesario. Indica la lista a sincronizar.\n"
+
+#: bin/sync_members:115
+msgid "Bad choice: %(yesno)s"
+msgstr "Mala elección: %(yesno)s"
+
+#: bin/sync_members:138
+msgid "Dry run mode"
+msgstr "Ejecución en modo prueba"
+
+#: bin/sync_members:159
+msgid "Only one -f switch allowed"
+msgstr "Solo se permite una opción -f"
+
+#: bin/sync_members:163
+msgid "No argument to -f given"
+msgstr "No se ha proporcionado ningún argumento a -f"
+
+#: bin/sync_members:172
+msgid "Illegal option: %(opt)s"
+msgstr "Opción ilegal: %(opt)s"
+
+#: bin/sync_members:178
+msgid "No listname given"
+msgstr "No se ha proporcionado ningún nombre de lista"
+
+#: bin/sync_members:182
+msgid "Must have a listname and a filename"
+msgstr "Tiene que haber un nombre de lista y un nombre de fichero"
+
+#: bin/sync_members:191
+msgid "Cannot read address file: %(filename)s: %(msg)s"
+msgstr "No puedo leer el fichero de direcciones: %(filename)s: %(msg)s"
+
+#: bin/sync_members:203
+msgid "Ignore : %(addr)30s"
+msgstr "Ignorar : %(addr)30s"
+
+#: bin/sync_members:212
+msgid "Invalid : %(addr)30s"
+msgstr "Inválida: %(addr)30s"
+
+#: bin/sync_members:215
+msgid "You must fix the preceding invalid addresses first."
+msgstr "Primero tienes que corregir la dirección inválida precedente."
+
+#: bin/sync_members:259
+msgid "Added : %(s)s"
+msgstr "Añadida: %(s)s"
+
+#: bin/sync_members:278
+msgid "Removed: %(s)s"
+msgstr "Borrado: %(s)s"
+
+#: bin/transcheck:18
+msgid ""
+"\n"
+"Check a given Mailman translation, making sure that variables and\n"
+"tags referenced in translation are the same variables and tags in\n"
+"the original templates and catalog.\n"
+"\n"
+"Usage:\n"
+"\n"
+"cd $MAILMAN_DIR\n"
+"%(program)s [-q] <lang>\n"
+"\n"
+"Where <lang> is your country code (e.g. 'it' for Italy) and -q is\n"
+"to ask for a brief summary.\n"
+msgstr ""
+
+#: bin/transcheck:57
+msgid "check a translation comparing with the original string"
+msgstr "Compara una traducción con la cadena original"
+
+#: bin/transcheck:64
+msgid "scan a string from the original file"
+msgstr "busca una cadena del fichero original"
+
+#: bin/transcheck:72
+msgid "scan a translated string"
+msgstr "busca una cadena traducida"
+
+#: bin/transcheck:83
+msgid "check for differences between checked in and checked out"
+msgstr "comprobando diferencias entre lo que se ha descargado y lo que se va a subir"
+
+#: bin/transcheck:116
+msgid "parse a .po file extracting msgids and msgstrs"
+msgstr "Recorre un fichero .po extrayendo msgids y msgstrs"
+
+#: bin/transcheck:135
+msgid ""
+"States table for the finite-states-machine parser:\n"
+" 0 idle\n"
+" 1 filename-or-comment\n"
+" 2 msgid\n"
+" 3 msgstr\n"
+" 4 end\n"
+" "
+msgstr ""
+"Estados de la máquina de estados finitos del Parser:\n"
+" 0 inactivo\n"
+" 1 fichero o comentario\n"
+" 2 msgid\n"
+" 3 msgstr\n"
+" 4 fin\n"
+" "
+
+#: bin/transcheck:272
+msgid ""
+"check a translated template against the original one\n"
+" search also <MM-*> tags if html is not zero"
+msgstr ""
+"Comprueba una plantilla traducida con la original,\n"
+" también busca etiquetas <MM-*> si el código\n"
+" html es distint0 de cero"
+
+#: bin/transcheck:319
+msgid "scan the po file comparing msgids with msgstrs"
+msgstr "recorre el fichero po comparando msgids con msgstrs"
+
+#: bin/unshunt:19
+msgid ""
+"Move a message from the shunt queue to the original queue.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [directory]\n"
+"\n"
+"Where:\n"
+"\n"
+" -h / --help\n"
+" Print help and exit.\n"
+"\n"
+"Optional `directory' specifies a directory to dequeue from other than\n"
+"qfiles/shunt.\n"
+msgstr ""
+"Mueve un mensaje de la cola 'shunt' a la cola original.\n"
+"\n"
+"Sintaxis: %(PROGRAM)s [opciones] [directorio]\n"
+"\n"
+"Donde:\n"
+"\n"
+" -h / --help\n"
+" Muestra la ayuda y termina.\n"
+"\n"
+"El `directorio' opcional indica un directorio oara desencolar distinto de\n"
+"qfiles/shunt.\n"
+
+#: bin/unshunt:81
+msgid ""
+"Cannot unshunt message %(filebase)s, skipping:\n"
+"%(e)s"
+msgstr ""
+"No puedo quitar el mensaje %(filebase)s, lo omito:\n"
+"%(e)s"
+
+#: bin/update:19
+msgid ""
+"Perform all necessary upgrades.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -f/--force\n"
+" Force running the upgrade procedures. Normally, if the version "
+"number\n"
+" of the installed Mailman matches the current version number (or a\n"
+" `downgrade' is detected), nothing will be done.\n"
+"\n"
+" -h/--help\n"
+" Print this text and exit.\n"
+"\n"
+"Use this script to help you update to the latest release of Mailman from\n"
+"some previous version. It knows about versions back to 1.0b4 (?).\n"
+msgstr ""
+"Lleva a cabo todas las actualizaciones que sean necesarias.\n"
+"\n"
+"Sintaxis: %(PROGRAM)s [opciones]\n"
+"\n"
+"Opciones:\n"
+" -f/--force\n"
+" Forzar que se ejecuten los procedimientos de actualización. "
+"Normalmente, si el\n"
+" número de versión del Mailman instalado coincide con el número de "
+"versión\n"
+" actual (o se detecta un `retroactualizar'), no se hará nada.\n"
+"\n"
+" -h/--help\n"
+" Mostrar este texto y salir.\n"
+"\n"
+"Use este guión para ayudarle a actualizar a la Última versión de Mailman "
+"desde una\n"
+"versión anterior. Sabe de versiones viejas, hasta la 1.0b4 (?).\n"
+
+#: bin/update:102
+msgid "Fixing language templates: %(listname)s"
+msgstr "Corrigiendo la plantilla de los lenguajes: %(listname)s"
+
+#: bin/update:191 bin/update:466
+msgid "WARNING: could not acquire lock for list: %(listname)s"
+msgstr "ADVERTENCIA: no se pudo adquirir el bloqueo de la lista: %(listname)s"
+
+#: bin/update:210
+msgid "Resetting %(n)s BYBOUNCEs disabled addrs with no bounce info"
+msgstr "Poniendo a cero %(n)s BYBOUNCEs direcciones inhabilitadas sin información de rebote"
+
+#: bin/update:216
+msgid "Updating the held requests database."
+msgstr "Actualizando la base de datos de peticiones pendientes"
+
+#: bin/update:238
+msgid ""
+"For some reason, %(mbox_dir)s exists as a file. This won't work with\n"
+"b6, so I'm renaming it to %(mbox_dir)s.tmp and proceeding."
+msgstr ""
+"Por cualquier razón, %(mbox_dir) existe como fichero. Esto no funcionará\n"
+"con b6, por lo que lo estoy renombrando a %(mobox_dir)s.tmp y procediendo."
+
+#: bin/update:250
+msgid ""
+"\n"
+"%(listname)s has both public and private mbox archives. Since this list\n"
+"currently uses private archiving, I'm installing the private mbox archive\n"
+"-- %(o_pri_mbox_file)s -- as the active archive, and renaming\n"
+" %(o_pub_mbox_file)s\n"
+"to\n"
+" %(o_pub_mbox_file)s.preb6\n"
+"\n"
+"You can integrate that into the archives if you want by using the 'arch'\n"
+"script.\n"
+msgstr ""
+"\n"
+"%(listname)s tiene ficheros mbox públicos y privados. Ya que esta lista\n"
+"utiliza actualmente almacenaje privado, estoy instalando el fichero mbox "
+"privado\n"
+"-- %(o_pri_mbox_file)s -- como fichero activo y renombrando\n"
+" %(o_pub_mbox_file)s\n"
+"a\n"
+" %(o_pub_mbox_file)s.preb6\n"
+"se puede integrar dentro del almacenaje si así lo desea usando el guión\n"
+"'arch'.\n"
+
+#: bin/update:265
+msgid ""
+"%s has both public and private mbox archives. Since this list\n"
+"currently uses public archiving, I'm installing the public mbox file\n"
+"archive file (%s) as the active one, and renaming\n"
+" %s\n"
+" to\n"
+" %s.preb6\n"
+"\n"
+"You can integrate that into the archives if you want by using the 'arch'\n"
+"script.\n"
+msgstr ""
+"%s tiene ficheros mbox públicos y privados. Ya que esta lista\n"
+"utiliza actualmente almacenaje público, estoy instalando el fichero mbox "
+"público\n"
+"(%s) como fichero activo y renombrando\n"
+" %s\n"
+" a\n"
+" %s.preb6\n"
+"\n"
+"se puede integrar dentro del almacenaje si así lo desea usando el guión\n"
+"'arch'.\n"
+
+#: bin/update:282
+msgid "- updating old private mbox file"
+msgstr "- actualizando el antiguo fichero mbox privado"
+
+#: bin/update:290
+msgid ""
+" unknown file in the way, moving\n"
+" %(o_pri_mbox_file)s\n"
+" to\n"
+" %(newname)s"
+msgstr ""
+" fichero desconocido en el camino, moviendo\n"
+" %(o_pri_mbox_file)s\n"
+" a\n"
+" %(newname)s"
+
+#: bin/update:297 bin/update:320
+msgid ""
+" looks like you have a really recent CVS installation...\n"
+" you're either one brave soul, or you already ran me"
+msgstr ""
+" parece como si tuviera una instalación CVS realmente reciente...\n"
+" o eres un corazón indomable, o ya me ejecutaste"
+
+#: bin/update:306
+msgid "- updating old public mbox file"
+msgstr "- actualizando el antiguo fichero mbox público"
+
+#: bin/update:314
+msgid ""
+" unknown file in the way, moving\n"
+" %(o_pub_mbox_file)s\n"
+" to\n"
+" %(newname)s"
+msgstr ""
+" fichero desconocido en el camino, moviendo\n"
+" %(o_pub_mbox_file)s\n"
+" a\n"
+" %(newname)s"
+
+#: bin/update:345
+msgid "- This list looks like it might have <= b4 list templates around"
+msgstr "- Esta lista parece que pueda tener plantillas alrededor <= b4 "
+
+#: bin/update:352
+msgid "- moved %(o_tmpl)s to %(n_tmpl)s"
+msgstr "- movido %(o_tmpl)s a %(n_tmpl)s"
+
+#: bin/update:354
+msgid "- both %(o_tmpl)s and %(n_tmpl)s exist, leaving untouched"
+msgstr "- tanto %(o_tmpl)s como %(n_tmpl)s existen, dejándolo intacto"
+
+#: bin/update:384
+msgid "removing directory %(src)s and everything underneath"
+msgstr "eliminando el directorio %(src)s y todo lo que hay en su interior"
+
+#: bin/update:387
+msgid "removing %(src)s"
+msgstr "borrando %(src)s"
+
+#: bin/update:391
+msgid "Warning: couldn't remove %(src)s -- %(rest)s"
+msgstr "Advertencia: no pude borrar %(src)s -- %(rest)s"
+
+#: bin/update:396
+msgid "couldn't remove old file %(pyc)s -- %(rest)s"
+msgstr "no pude borrar el fichero antiguo %(pyc)s -- %(rest)s"
+
+#: bin/update:400
+msgid "updating old qfiles"
+msgstr "actualizando los qfiles antiguos"
+
+#: bin/update:422
+msgid "getting rid of old source files"
+msgstr "Desembarazarse de los ficheros fuentes viejos"
+
+#: bin/update:432
+msgid "no lists == nothing to do, exiting"
+msgstr "sin listas == nada que hacer"
+
+#: bin/update:439
+msgid ""
+"fixing all the perms on your old html archives to work with b6\n"
+"If your archives are big, this could take a minute or two..."
+msgstr ""
+"corrigiendo todos los permisos de tus archivos html antiguos para que\n"
+"trabajen con b6. Si tus archivos son grandes, pordría tardar uno\n"
+"o dos minutos..."
+
+#: bin/update:444
+msgid "done"
+msgstr "hecho"
+
+#: bin/update:446
+msgid "Updating mailing list: %(listname)s"
+msgstr "actualizando la lista de distribución"
+
+#: bin/update:449
+msgid "Updating Usenet watermarks"
+msgstr "Actualizando las marcas de Usenet"
+
+#: bin/update:454
+msgid "- nothing to update here"
+msgstr "- no hay nada que actualizar aquí"
+
+#: bin/update:477
+msgid "- usenet watermarks updated and gate_watermarks removed"
+msgstr "- actualizadas las marcas de usenet y las gate_marcas quitadas"
+
+#: bin/update:487
+msgid "Updating old pending_subscriptions.db database"
+msgstr "Actualizando la base de datos de peticiones pendientes antigua"
+
+#: bin/update:504
+msgid ""
+"\n"
+"\n"
+"NOTE NOTE NOTE NOTE NOTE\n"
+"\n"
+" You are upgrading an existing Mailman installation, but I can't tell "
+"what\n"
+" version you were previously running.\n"
+"\n"
+" If you are upgrading from Mailman 1.0b9 or earlier you will need to\n"
+" manually update your mailing lists. For each mailing list you need to\n"
+" copy the file templates/options.html lists/<listname>/options.html.\n"
+"\n"
+" However, if you have edited this file via the Web interface, you will "
+"have\n"
+" to merge your changes into this file, otherwise you will lose your\n"
+" changes.\n"
+"\n"
+"NOTE NOTE NOTE NOTE NOTE\n"
+"\n"
+msgstr ""
+"\n"
+"\n"
+"NOTA NOTA NOTA NOTA NOTA\n"
+"\n"
+" Estás actualizando una instalación de Mailman existente, pero no puedo\n"
+" decirte que versión estabas ejecutando anteriormente.\n"
+"\n"
+" Si estuvieras actualzando un Mailman 1.b09 o anterior, necesitarás\n"
+" actualizar manualmente tus listas de distribución. Para cada lista de\n"
+" distribución necesitas copiar el fichero templates/options.html\n"
+" lists/<listname>/options.html.\n"
+"\n"
+" Sin embargo, si hubieses editado este fichero a través del interfaz\n"
+" web, tendrás qye mezclar tus cambios entro de este fichero, de otra\n"
+" manera perderés tus cambios.\n"
+"\n"
+"NOTA NOTA NOTA NOTA NOTA\n"
+"\n"
+
+#: bin/update:561
+msgid "No updates are necessary."
+msgstr "No hacen falta actualizaciones."
+
+#: bin/update:564
+msgid ""
+"Downgrade detected, from version %(hexlversion)s to version %(hextversion)s\n"
+"This is probably not safe.\n"
+"Exiting."
+msgstr ""
+"Retroceso detectado, de la versión %(hexlversion)s a la versión %"
+"(hextversion)s\n"
+"Lo más probable que esto no sea seguro.\n"
+"Saliendo."
+
+#: bin/update:569
+msgid "Upgrading from version %(hexlversion)s to %(hextversion)s"
+msgstr "Actualizando de la versión %(hexlversion)s a la %(hextversion)s"
+
+#: bin/update:578
+msgid ""
+"\n"
+"ERROR:\n"
+"\n"
+"The locks for some lists could not be acquired. This means that either\n"
+"Mailman was still active when you upgraded, or there were stale locks in "
+"the\n"
+"%(lockdir)s directory.\n"
+"\n"
+"You must put Mailman into a quiescent state and remove all stale locks, "
+"then\n"
+"re-run \"make update\" manually. See the INSTALL and UPGRADE files for "
+"details.\n"
+msgstr ""
+"\n"
+"ERROR:\n"
+"\n"
+"No se pudo obtener el bloqueo de algunas listas. Esto significa que o "
+"Mailman\n"
+"estaba activo cuando actualizaste o había bloqueos corruptos en el "
+"directorio\n"
+"%(lockdir)s.\n"
+"\n"
+"Tienes que poner a Mailman en un estado inactivo y borrar todos los "
+"bloqueos\n"
+"corruptos, entonces volver a ejecutar manualmente \"make update\". Vea los\n"
+"ficheros INSTALL y UPGRADE para más detalles.\n"
+
+#: bin/version:19
+msgid "Print the Mailman version.\n"
+msgstr "Imprimir la versión de Mailman.\n"
+
+#: bin/version:26
+msgid "Using Mailman version:"
+msgstr "Utilizando la versión de Mailman:"
+
+#: bin/withlist:19
+msgid ""
+"General framework for interacting with a mailing list object.\n"
+"\n"
+"There are two ways to use this script: interactively or programmatically.\n"
+"Using it interactively allows you to play with, examine and modify a "
+"MailList\n"
+"object from Python's interactive interpreter. When running interactively, "
+"a\n"
+"MailList object called `m' will be available in the global namespace. It "
+"also\n"
+"loads the class MailList into the global namespace.\n"
+"\n"
+"Programmatically, you can write a function to operate on a MailList object,\n"
+"and this script will take care of the housekeeping (see below for "
+"examples).\n"
+"In that case, the general usage syntax is:\n"
+"\n"
+"%% bin/withlist [options] listname [args ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" -l / --lock\n"
+" Lock the list when opening. Normally the list is opened unlocked\n"
+" (e.g. for read-only operations). You can always lock the file "
+"after\n"
+" the fact by typing `m.Lock()'\n"
+"\n"
+" Note that if you use this option, you should explicitly call m.Save"
+"()\n"
+" before exiting, since the interpreter's clean up procedure will not\n"
+" automatically save changes to the MailList object (but it will "
+"unlock\n"
+" the list).\n"
+"\n"
+" -i / --interactive\n"
+" Leaves you at an interactive prompt after all other processing is\n"
+" complete. This is the default unless the -r option is given.\n"
+"\n"
+" --run [module.]callable\n"
+" -r [module.]callable\n"
+" This can be used to run a script with the opened MailList object.\n"
+" This works by attempting to import `module' (which must already be\n"
+" accessible on your sys.path), and then calling `callable' from the\n"
+" module. callable can be a class or function; it is called with the\n"
+" MailList object as the first argument. If additional args are "
+"given\n"
+" on the command line, they are passed as subsequent positional args "
+"to\n"
+" the callable.\n"
+"\n"
+" Note that `module.' is optional; if it is omitted then a module "
+"with\n"
+" the name `callable' will be imported.\n"
+"\n"
+" The global variable `r' will be set to the results of this call.\n"
+"\n"
+" --all / -a\n"
+" This option only works with the -r option. Use this if you want to\n"
+" execute the script on all mailing lists. When you use -a you "
+"should\n"
+" not include a listname argument on the command line. The variable "
+"`r'\n"
+" will be a list of all the results.\n"
+"\n"
+" --quiet / -q\n"
+" Suppress all status messages.\n"
+"\n"
+" --help / -h\n"
+" Print this message and exit\n"
+"\n"
+"\n"
+"Here's an example of how to use the -r option. Say you have a file in the\n"
+"Mailman installation directory called `listaddr.py', with the following\n"
+"two functions:\n"
+"\n"
+"def listaddr(mlist):\n"
+" print mlist.GetListEmail()\n"
+"\n"
+"def requestaddr(mlist):\n"
+" print mlist.GetRequestEmail()\n"
+"\n"
+"Now, from the command line you can print the list's posting address by "
+"running\n"
+"the following from the command line:\n"
+"\n"
+"%% bin/withlist -r listaddr mylist\n"
+"Loading list: mylist (unlocked)\n"
+"Importing listaddr ...\n"
+"Running listaddr.listaddr() ...\n"
+"mylist@myhost.com\n"
+"\n"
+"And you can print the list's request address by running:\n"
+"\n"
+"%% bin/withlist -r listaddr.requestaddr mylist\n"
+"Loading list: mylist (unlocked)\n"
+"Importing listaddr ...\n"
+"Running listaddr.requestaddr() ...\n"
+"mylist-request@myhost.com\n"
+"\n"
+"As another example, say you wanted to change the password for a particular\n"
+"user on a particular list. You could put the following function in a file\n"
+"called `changepw.py':\n"
+"\n"
+"from Mailman.Errors import NotAMember\n"
+"\n"
+"def changepw(mlist, addr, newpasswd):\n"
+" try:\n"
+" mlist.setMemberPassword(addr, newpasswd)\n"
+" mlist.Save()\n"
+" except NotAMember:\n"
+" print 'No address matched:', addr\n"
+"\n"
+"and run this from the command line:\n"
+"%% bin/withlist -l -r changepw mylist somebody@somewhere.org foobar\n"
+msgstr ""
+"Marco general para interactuar con un objecto que representa a una lista de\n"
+"distribución.\n"
+"\n"
+"Hay dos maneras para usar este script: interactiva o desde un programa.\n"
+"El uso interactivo le permite jugar, examinar y modificar un objeto "
+"MailList\n"
+"desde el intérprete interactivo de Python. Para hacer esto, ejecute el "
+"script\n"
+"así:\n"
+"\n"
+"%% python -i bin/withlist [opciones] nombre-de-la-lista [args ...]\n"
+"\n"
+"Esto cargará el objeto lista indicado por nombre-de-la-lista (obligatorio)\n"
+"en un objeto llamado `m' en el espacio de nombres global. También carga la\n"
+"clase MailList en el espacio de nombres global.\n"
+"\n"
+"Desde un programa, puede escribir una función para operar con un objeto\n"
+"MailList, y este script se encargará de mantenerlo (mire los ejemplos que\n"
+"están más abajo).\n"
+"En este caso, la sintaxis general de uso es:\n"
+"\n"
+"%% bin/withlist [opciones] nombre-de-la-lista [args ...]\n"
+"\n"
+"Opciones:\n"
+"\n"
+" -l\n"
+" --lock\n"
+" Bloquear la lista al abrila. Normalmente la lista se abre "
+"desbloqueada\n"
+" (por ejemplo para operaciones de solo lectura). Siempre puede \n"
+" bloquear el fichero después de abrilo tecleando `m.Lock()'\n"
+"\n"
+" Tenga en cuenta que si usa esta opción, debe llamar explícitamente "
+"a\n"
+" m.Save() antes de salir, ya que el procedimiento de limpieza del\n"
+" intérprete no guardará automáticamente los cambios del objeto "
+"MailList\n"
+" (pero desbloqueará la lista).\n"
+"\n"
+" --run [module.]callable\n"
+" -r [module.]callable\n"
+" Esto puede usarse para ejecutar un guión con el objeto MailList \n"
+" abierto. Esto funciona intentado importar `module' (que ya debe "
+"estar\n"
+" accesible en su sys.path), y llamando `callable' desde el módulo \n"
+" seguidamente. callable puede ser una clase o una función; se llama\n"
+" con el objeto MailList como primer argumento.\n"
+" Si se proporcionan argumentos adicionales en la línea de órdenes,\n"
+" se pasan como argumentos posicionales subsiguientes al callable.\n"
+"\n"
+" Tenga en cuenta que `module' es opcional; si se omite, se importará\n"
+" un módulo con el nombre `callable'.\n"
+"\n"
+" La variable global `r' se establecerá según los resultados de esta\n"
+" llamada.\n"
+"\n"
+" --quiet\n"
+" -q\n"
+" Suprimir todos los mensajes de estado.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Mostrar este mensaje y salir.\n"
+"\n"
+"\n"
+"Aquí hay un ejemplo de como usar la opción -r. Supongamos que tiene un "
+"fichero\n"
+"en el directorio de instalación de Mailman llamado `listaddr.py', con las "
+"dos \n"
+"funciones siguientes:\n"
+"\n"
+"def listaddr(mlist):\n"
+" print mlist.GetListEmail()\n"
+"\n"
+"def requestaddr(mlist):\n"
+" print mlist.GetRequestEmail()\n"
+"\n"
+"Ahora, desde la línea de órdenes puede mostrar las direcciones de envío de\n"
+"la lista ejecutando lo siguiente desde la línea de órdenes:\n"
+"\n"
+"%% bin/withlist -r listaddr mylist\n"
+"Loading list: mylist (unlocked)\n"
+"Importing listaddr ...\n"
+"Running listaddr.listaddr() ...\n"
+"mylist@myhost.com\n"
+"\n"
+"Y puede mostrar la dirección de solicitud de la lista ejecutando:\n"
+"\n"
+"%% bin/withlist -r listaddr.requestaddr mylist\n"
+"Loading list: mylist (unlocked)\n"
+"Importing listaddr ...\n"
+"Running listaddr.requestaddr() ...\n"
+"mylist-request@myhost.com\n"
+"\n"
+"Para ver otro ejemplo, supongamos que usted quiere cambiar la contraseña de "
+"un\n"
+"usuario concreto de una lista dada. Podría poner la siguiente función en un\n"
+"fichero llamado `changepw.py':\n"
+"\n"
+"from Mailman.Errors import NotAMember\n"
+"\n"
+"def changepw(mlist, addr, newpasswd):\n"
+" try:\n"
+" mlist.setMemberPassword(addr, newpasswd)\n"
+" mlist.Save()\n"
+" except NotAMember:\n"
+" print 'No se ha encontrado la dirección:', addr\n"
+"\n"
+"y ejecutar esto desde la línea de órdenes:\n"
+"%% bin/withlist -l -r changepw mylist somebody@somewhere.org foobar\n"
+
+#: bin/withlist:151
+msgid ""
+"Unlock a locked list, but do not implicitly Save() it.\n"
+"\n"
+" This does not get run if the interpreter exits because of a signal, or "
+"if\n"
+" os._exit() is called. It will get called if an exception occurs "
+"though.\n"
+" "
+msgstr ""
+"Desbloquear una lista bloqueda, pero no guardarla [Save()] implícitamente.\n"
+"\n"
+" Esto no consigue ejecutarse si el intérprete sale debido a una señal,\n"
+" o si se llama a os._exit(). Se le llamará si ocurre una excepción "
+"mientras\n"
+" tanto.\n"
+" "
+
+#: bin/withlist:162
+msgid "Unlocking (but not saving) list: %(listname)s"
+msgstr "Desbloqueando (pero sin guardar) la lista: %(listname)s"
+
+#: bin/withlist:166
+msgid "Finalizing"
+msgstr "Terminando"
+
+#: bin/withlist:175
+msgid "Loading list %(listname)s"
+msgstr "Cargando la lista %(listname)s"
+
+#: bin/withlist:177
+msgid "(locked)"
+msgstr "(bloqueado)"
+
+#: bin/withlist:179
+msgid "(unlocked)"
+msgstr "(desbloqueado)"
+
+#: bin/withlist:184
+msgid "Unknown list: %(listname)s"
+msgstr "Lista desconocida: %(listname)s"
+
+#: bin/withlist:223
+msgid "No list name supplied."
+msgstr "No se ha proporcionado ningún nombre de lista."
+
+#: bin/withlist:226
+msgid "--all requires --run"
+msgstr "--all requiere --run"
+
+#: bin/withlist:246
+msgid "Importing %(module)s..."
+msgstr "Importando %(module)s..."
+
+#: bin/withlist:249
+msgid "Running %(module)s.%(callable)s()..."
+msgstr "Ejecutando %(module)s.%(callable)s()..."
+
+#: bin/withlist:270
+msgid "The variable `m' is the %(listname)s MailList instance"
+msgstr "La variable 'm' es la instancia Lista de distribución %(listname)s"
+
+#: cron/bumpdigests:19
+msgid ""
+"Increment the digest volume number and reset the digest number to one.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" --help/-h\n"
+" Print this message and exit.\n"
+"\n"
+"The lists named on the command line are bumped. If no list names are "
+"given,\n"
+"all lists are bumped.\n"
+msgstr ""
+"Incrementar el número de volúmen de recopilación y reiniciar el número de "
+"recopilación a uno.\n"
+"\n"
+"Sintaxis: %(PROGRAM)s [opciones] [nombre-de-la-lista ...]\n"
+"\n"
+"Opciones:\n"
+"\n"
+" --help/-h\n"
+" Mostrar este mensaje y salir.\n"
+"\n"
+"Se aplica a las listas nombradas en la línea de órdenes. Si no se "
+"proporciona \n"
+"el nombre de ninguna lista, se aplica a todas.\n"
+
+#: cron/checkdbs:19
+msgid ""
+"Invoked by cron, this checks for pending moderation requests and mails the\n"
+"list moderators if necessary.\n"
+msgstr ""
+"Invocado por cron, esto comprueba si hay solicitudes de moderación "
+"pendientes \n"
+"y envía un mensaje a los moderadores de la lista si es necesario.\n"
+
+#: cron/checkdbs:81
+msgid "%(count)d %(realname)s moderator request(s) waiting"
+msgstr "%(count)d solicitudes de %(realname)s a la espera del moderador"
+
+#: cron/checkdbs:100
+msgid "Pending subscriptions:"
+msgstr "Subscripciones pendientes:"
+
+#: cron/checkdbs:109
+msgid ""
+"\n"
+"Pending posts:"
+msgstr ""
+"\n"
+"Envíos pendientes:"
+
+#: cron/checkdbs:114
+msgid ""
+"From: %(sender)s on %(date)s\n"
+"Subject: %(subject)s\n"
+"Cause: %(reason)s"
+msgstr ""
+"De: %(sender)s el %(date)s\n"
+"Asunto: %(subject)s\n"
+"Motivo: %(reason)s"
+
+#: cron/disabled:19
+msgid ""
+"Process disabled members, recommended once per day.\n"
+"\n"
+"This script cruises through every mailing list looking for members whose\n"
+"delivery is disabled. If they have been disabled due to bounces, they will\n"
+"receive another notification, or they may be removed if they've received "
+"the\n"
+"maximum number of notifications.\n"
+"\n"
+"Use the --byadmin, --byuser, and --unknown flags to also send notifications "
+"to\n"
+"members whose accounts have been disabled for those reasons. Use --all to\n"
+"send the notification to all disabled members.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -h / --help\n"
+" Print this message and exit.\n"
+"\n"
+" -o / --byadmin\n"
+" Also send notifications to any member disabled by the list\n"
+" owner/administrator.\n"
+"\n"
+" -m / --byuser\n"
+" Also send notifications to any member disabled by themselves.\n"
+"\n"
+" -u / --unknown\n"
+" Also send notifications to any member disabled for unknown reasons\n"
+" (usually a legacy disabled address).\n"
+"\n"
+" -b / --notbybounce\n"
+" Don't send notifications to members disabled because of bounces "
+"(the\n"
+" default is to notify bounce disabled members).\n"
+"\n"
+" -a / --all\n"
+" Send notifications to all disabled members.\n"
+"\n"
+" -f / --force\n"
+" Send notifications to disabled members even if they're not due a "
+"new\n"
+" notification yet.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" Process only the given list, otherwise do all lists.\n"
+msgstr ""
+
+#: cron/disabled:143
+msgid "[disabled by periodic sweep and cull, no message available]"
+msgstr ""
+"[inhabilitado debido a una limpieza periodica, no existe ningún mensaje "
+"disponible]"
+
+#: cron/gate_news:19
+msgid ""
+"Poll the NNTP servers for messages to be gatewayed to mailing lists.\n"
+"\n"
+"Usage: gate_news [options]\n"
+"\n"
+"Where options are\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this text and exit.\n"
+"\n"
+msgstr ""
+"Consultar a los servidores NNTP si hay mensajes que redireccionar a las "
+"listas de distribución.\n"
+"\n"
+"Sintaxis: gate_news [opciones]\n"
+"\n"
+"Donde las opciones son:\n"
+"\n"
+" --help\n"
+" -h\n"
+" Mostrar este texto y salir.\n"
+"\n"
+
+#: cron/mailpasswds:19
+msgid ""
+"Send password reminders for all lists to all users.\n"
+"\n"
+"This program scans all mailing lists and collects users and their "
+"passwords,\n"
+"grouped by the list's host_name if mm_cfg.VIRTUAL_HOST_OVERVIEW is true. "
+"Then\n"
+"one email message is sent to each unique user (per-virtual host) containing\n"
+"the list passwords and options url for the user. The password reminder "
+"comes\n"
+"from the mm_cfg.MAILMAN_SITE_LIST, which must exist.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -l listname\n"
+" --listname=listname\n"
+" Send password reminders for the named list only. If omitted,\n"
+" reminders are sent for all lists. Multiple -l/--listname options "
+"are\n"
+" allowed.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+msgstr ""
+"Enviar recordatorios de contraseña de todas las listas a todos los usuarios.\n"
+"\n"
+"Este programa recorre todas las listas de distribución y recopila los\n"
+"nombres de usuario y sus contraseñas, agrupados por el host_name\n"
+"de la lista si mm_cfg.VIRTUAL_HOST_OVERVIEW es cierto.\n"
+"Entonces se envía un mensaje de correo electrónico a cada usuario por separado\n"
+"(por host virtual) conteniendo las contraseñas de las listas y el URL de\n"
+"opciones para el usuario. El recordatorio de contraseña proviene de la variable\n"
+"mm_cfg.MAILMAN_SITE_LIST, que debe existir.\n"
+"\n"
+"Sintaxis: %(PROGRAM)s [opciones]\n"
+"\n"
+"Opciones:\n"
+" -l lista\n"
+" --listname lista\n"
+" Mandar el recordatorio solo para las listas indicadas. Si se omite, se\n"
+" manda el recordatorio a todas las listas. Se permiten varias opciones\n"
+" -l/--listname.\n"
+"\n"
+" -h/--help\n"
+" Mostrar este mensaje y salir.\n"
+
+#: cron/mailpasswds:111
+msgid "Site list is missing: %(sitelistname)s"
+msgstr "El sitio de La lista no se encuentra: %(sitelistname)s"
+
+#: cron/mailpasswds:179
+msgid "Password // URL"
+msgstr "Clave // URL"
+
+#: cron/mailpasswds:199
+msgid "%(host)s mailing list memberships reminder"
+msgstr "Recordatorios de lista de distribución de %(host)s"
+
+#: cron/nightly_gzip:19
+msgid ""
+"Re-generate the Pipermail gzip'd archive flat files.\n"
+"\n"
+"This script should be run nightly from cron. When run from the command "
+"line,\n"
+"the following usage is understood:\n"
+"\n"
+"Usage: %(program)s [-v] [-h] [listnames]\n"
+"\n"
+"Where:\n"
+" --verbose\n"
+" -v\n"
+" print each file as it's being gzip'd\n"
+"\n"
+" --help\n"
+" -h\n"
+" print this message and exit\n"
+"\n"
+" listnames\n"
+" Optionally, only compress the .txt files for the named lists. "
+"Without \n"
+" this, all archivable lists are processed.\n"
+"\n"
+msgstr ""
+"Regenerar los ficheros de archivo de Pipermail comprimidos con gzip.\n"
+"\n"
+"Este script debería ejecutarse cada noche desde cron. Cuando se\n"
+"ejecuta desde la línea de órdenes, la sintaxis es la siguiente:\n"
+"\n"
+"Sintaxis: %(program)s [-v] [-h] [nombres-de-las-listas]\n"
+"\n"
+"Donde:\n"
+" --verbose\n"
+" -v\n"
+" muestra cada fichero mientras se comprime\n"
+"\n"
+" --help\n"
+" -h\n"
+" mostrar este mensaje y salir\n"
+"\n"
+" nombres-de-las-listas\n"
+" Opcionalmente, comprime solamente los ficheros .txt de las listas "
+"indicadas.\n"
+" Sin esta opción, se procesan todas las listas archivables.\n"
+
+#: cron/senddigests:19
+msgid ""
+"Dispatch digests for lists w/pending messages and digest_send_periodic set.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -h / --help\n"
+" Print this message and exit.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" Send the digest for the given list only, otherwise the digests for "
+"all\n"
+" lists are sent out.\n"
+msgstr ""
+"Mada los recopilatorios de las listas con mensajes pendientes y activa digest_send_periodic\n"
+"\n"
+"Sintaxis: %(PROGRAM)s [opciones]\n"
+"\n"
+"Opciones:\n"
+"\n"
+" -h / --help\n"
+" Mostrar este mensaje y salir.\n"
+"\n"
+" -l lista\n"
+" --listname=lista\n"
+" Se manda el recopilatorio de esta lista, si no se indica se mandan los recopilatorios\n"
+" de todas las listas.\n"
+"\n"
+"Se aplica a las listas nombradas en la línea de órdenes. Si no se proporciona \n"
+"el nombre de ninguna lista, se aplica a todas.\n"
+
+#~ msgid "A confirmation email has been sent separately."
+#~ msgstr "Se ha enviado un mensaje de confirmación por conducto diferente."
+
+#~ msgid "A removal confirmation message has been sent."
+#~ msgstr ""
+#~ "Se ha enviado un mensaje de confirmación para la anulación de la "
+#~ "subscripción"
+
+#~ msgid "Removed: <%(addr)30s> %(name)s"
+#~ msgstr "Borrada: %(addr)30s %(name)s"
+
+#~ msgid "non-digest header"
+#~ msgstr "cabecera modo no agrupado"
+
+#~ msgid "non-digest footer"
+#~ msgstr "pié de página no-digest"
+
+#~ msgid ""
+#~ "Reset a list's web_page_url attribute to the default setting.\n"
+#~ "\n"
+#~ "This script is intended to be run as a bin/withlist script, i.e.\n"
+#~ "\n"
+#~ "% bin/withlist -l -r fix_url <mylist>\n"
+#~ msgstr ""
+#~ "Devuelve al valor por defecto el atributo web_page_url de una lista.\n"
+#~ "\n"
+#~ "Este proceso está diseñado para ejecutarse desde bin/withlist, esto es\n"
+#~ "\n"
+#~ "% bin/withlist -l -r fix_url <lista>\n"
+
+#~ msgid "Bad owner email address: %(owner_mail)s"
+#~ msgstr ""
+#~ "La Dirección del administrador de la lista es incorrecta: %(owner_mail)s"
+
+#~ msgid ""
+#~ "Dispatch digests for lists w/pending messages and digest_send_periodic "
+#~ "set.\n"
+#~ "\n"
+#~ "Typically it's invoked via cron.\n"
+#~ msgstr ""
+#~ "Enviar recopilaciones a las listas con mensajes pendientes y "
+#~ "digest_send_periodic activado. \n"
+#~ "\n"
+#~ "Normalmente se invoca vía cron.\n"
+
+#~ msgid "Policies concerning concerning the content of list traffic."
+#~ msgstr ""
+#~ "Políticas que afectan la dsitribución de mensajes según los contenidos."
+
+#~ msgid ""
+#~ "Use this option to remove each message section with a\n"
+#~ " matching MIME type. Each line should contain a string "
+#~ "naming a\n"
+#~ " MIME <tt>type/subtype</tt>, e.g. <tt>image/gif</tt>. Leave "
+#~ "off\n"
+#~ " the subtype to remove all parts with a matching MIME major "
+#~ "type,\n"
+#~ " e.g. <tt>image</tt>. Blank lines are ignored.\n"
+#~ "\n"
+#~ " <p>After stripping message parts, any <tt>multipart</tt>\n"
+#~ " attachment that is empty as a result is removed all "
+#~ "together. If\n"
+#~ " the outer part's MIME type matches one of the strip types, "
+#~ "or if\n"
+#~ " all of the outer part's subparts are stripped, then the "
+#~ "whole\n"
+#~ " message is discarded. Finally, each\n"
+#~ " <tt>multipart/alternative</tt> section will be replaced by "
+#~ "just\n"
+#~ " the first alternative that is non-empty after the specified "
+#~ "types\n"
+#~ " have been removed."
+#~ msgstr ""
+#~ "Utilice esta opción para eliminar las secciones de mensajes de un tipo "
+#~ "MIME\n"
+#~ " determinado. Cada línea debe contener una cadena que "
+#~ "describe un\n"
+#~ " formato MIME <tt>tipo/subtipo</tt>, p.ej.:. <tt>image/gif</"
+#~ "tt>. No indique\n"
+#~ " el subtipo para eliminar todas las partes que correspondan a "
+#~ "un cierto tipo MIME,\n"
+#~ " p.ej. <tt>image</tt>. La líneas vacías no se tienen en "
+#~ "cuenta.\n"
+#~ "\n"
+#~ " <p>Una vez eliminadas las partes, cualquer anejo "
+#~ "<tt>multipart</tt>\n"
+#~ " que haya quedado vacía, es eliminado completamente. Si\n"
+#~ " el tipo MIME de la parte exterior coincide con uno de los "
+#~ "tipos a eliminar, o si\n"
+#~ " si todas las subpartes de la parte externa son eliminadas, "
+#~ "se descarta el mensaje\n"
+#~ " en su totalidad. Para terminar, cada sección de tipo\n"
+#~ " <tt>multipart/alternative</tt> simplemente se sustituye con\n"
+#~ " con la primera alternativa que no esté vacía una vez que se "
+#~ "han\n"
+#~ " eliminado los tipos especificados."
+
+#, fuzzy
+#~ msgid ""
+#~ "To finish creating your mailing list, you must edit your\n"
+#~ "/etc/aliases (or equivalent) file by adding the following lines:\n"
+#~ "\n"
+#~ "## %(listname)s mailing list\n"
+#~ "## created: %(date)s %(user)s\n"
+#~ "%(list)s \"|%(wrapper)s post %(listname)s\"\n"
+#~ "%(admin)s \"|%(wrapper)s mailowner %(listname)s\"\n"
+#~ "%(request)s \"|%(wrapper)s mailcmd %(listname)s\"\n"
+#~ "%(owner)s %(listname)s-admin\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Para terminar de crear su lista de distribución,\n"
+#~ "tiene que editar el fichero /etc/aliases (o equivalente)\n"
+#~ "añadiendo las siguientes líneas y ejecutando posiblemente el\n"
+#~ "programa `newaliases':\n"
+#~ "\n"
+#~ "## Lista de distribución %(listname)s"
+
+#, fuzzy
+#~ msgid ""
+#~ "To finish removing your mailing list, you must edit your\n"
+#~ "/etc/aliases (or equivalent) file by removing the following lines:\n"
+#~ "\n"
+#~ "%(list)s \"|%(wrapper)s post %(listname)s\"\n"
+#~ "%(admin)s \"|%(wrapper)s mailowner %(listname)s\"\n"
+#~ "%(request)s \"|%(wrapper)s mailcmd %(listname)s\"\n"
+#~ "%(owner)s %(listname)s-admin\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Para terminar de borrar su lista de distribución, tiene que editar el "
+#~ "fichero\n"
+#~ "/etc/aliases (o equivalente) y quitar las líneas siguientes, también "
+#~ "puede\n"
+#~ "que tenga que ejecutar el programa 'newaliases':\n"
+#~ "\n"
+#~ "## Lista de distribución %(listname)s"
+
+#~ msgid ""
+#~ "To finish creating your mailing list, execute the following\n"
+#~ "commands with the proper permission:\n"
+#~ "\n"
+#~ "echo '|preline %(wrapper)s post %(listname)s' >~alias/.qmail-%(listname)"
+#~ "s\n"
+#~ "echo '|preline %(wrapper)s mailowner %(listname)s' >~alias/.qmail-%"
+#~ "(listname)s-admin\n"
+#~ "echo '|preline %(wrapper)s mailcmd %(listname)s' >~alias/.qmail-%"
+#~ "(listname)s-request\n"
+#~ "echo '&%(listname)s-admin' >~alias/.qmail-owner-%(listname)s\n"
+#~ "echo '&%(listname)s-admin' >~alias/.qmail-%(listname)s-owner\n"
+#~ "\n"
+#~ "chmod 644 ~alias/.qmail-%(listname)s ~alias/.qmail-%(listname)s-admin\n"
+#~ "chmod 644 ~alias/.qmail-%(listname)s-request ~alias/.qmail-%(listname)s-"
+#~ "owner\n"
+#~ "chmod 644 ~alias/.qmail-owner-%(listname)s\n"
+#~ msgstr ""
+#~ "Para terminar de crear su lista de distribución, ejecute las ordenes\n"
+#~ "siguientes con los permisos adecuados:\n"
+#~ "\n"
+#~ "echo '|preline %(wrapper)s post %(listname)s' >~alias/.qmail-%(listname)"
+#~ "s\n"
+#~ "echo '|preline %(wrapper)s mailowner %(listname)s' >~alias/.qmail-%"
+#~ "(listname)s-admin\n"
+#~ "echo '|preline %(wrapper)s mailcmd %(listname)s' >~alias/.qmail-%"
+#~ "(listname)s-request\n"
+#~ "echo '&%(listname)s-admin' >~alias/.qmail-owner-%(listname)s\n"
+#~ "echo '&%(listname)s-admin' >~alias/.qmail-%(listname)s-owner\n"
+#~ "\n"
+#~ "chmod 644 ~alias/.qmail-%(listname)s ~alias/.qmail-%(listname)s-admin\n"
+#~ "chmod 644 ~alias/.qmail-%(listname)s-request ~alias/.qmail-%(listname)s-"
+#~ "owner\n"
+#~ "chmod 644 ~alias/.qmail-owner-%(listname)s\n"
+
+#~ msgid ""
+#~ "To finish removing your mailing list, you must remove the\n"
+#~ "all the entires for the %(listname)s aliases."
+#~ msgstr ""
+#~ "Para terminar de borrar su lista de distribución, tiene que quitar todos\n"
+#~ "los aliases que haya de %(listname)s."
+
+#~ msgid "Return the hostname, pid, and tempfile"
+#~ msgstr "Devuelve el nombre del host, pid y fichero temporal"
+
+#~ msgid "Post by a moderated member"
+#~ msgstr "Envío procedente de un subscriptor moderado"
+
+#~ msgid ""
+#~ "pygettext -- Python equivalent of xgettext(1)\n"
+#~ "\n"
+#~ "Many systems (Solaris, Linux, Gnu) provide extensive tools that ease the\n"
+#~ "internationalization of C programs. Most of these tools are independent "
+#~ "of\n"
+#~ "the programming language and can be used from within Python programs. "
+#~ "Martin\n"
+#~ "von Loewis' work[1] helps considerably in this regard.\n"
+#~ "\n"
+#~ "There's one problem though; xgettext is the program that scans source "
+#~ "code\n"
+#~ "looking for message strings, but it groks only C (or C++). Python "
+#~ "introduces\n"
+#~ "a few wrinkles, such as dual quoting characters, triple quoted strings, "
+#~ "and\n"
+#~ "raw strings. xgettext understands none of this.\n"
+#~ "\n"
+#~ "Enter pygettext, which uses Python's standard tokenize module to scan "
+#~ "Python\n"
+#~ "source code, generating .pot files identical to what GNU xgettext[2] "
+#~ "generates\n"
+#~ "for C and C++ code. From there, the standard GNU tools can be used.\n"
+#~ "\n"
+#~ "A word about marking Python strings as candidates for translation. GNU\n"
+#~ "xgettext recognizes the following keywords: gettext, dgettext, dcgettext, "
+#~ "and\n"
+#~ "gettext_noop. But those can be a lot of text to include all over your "
+#~ "code.\n"
+#~ "C and C++ have a trick: they use the C preprocessor. Most "
+#~ "internationalized C\n"
+#~ "source includes a #define for gettext() to _() so that what has to be "
+#~ "written\n"
+#~ "in the source is much less. Thus these are both translatable strings:\n"
+#~ "\n"
+#~ " gettext(\"Translatable String\")\n"
+#~ " _(\"Translatable String\")\n"
+#~ "\n"
+#~ "Python of course has no preprocessor so this doesn't work so well. "
+#~ "Thus,\n"
+#~ "pygettext searches only for _() by default, but see the -k/--keyword "
+#~ "flag\n"
+#~ "below for how to augment this.\n"
+#~ "\n"
+#~ " [1] http://www.python.org/workshops/1997-10/proceedings/loewis.html\n"
+#~ " [2] http://www.gnu.org/software/gettext/gettext.html\n"
+#~ "\n"
+#~ "NOTE: pygettext attempts to be option and feature compatible with GNU "
+#~ "xgettext\n"
+#~ "where ever possible. However some options are still missing or are not "
+#~ "fully\n"
+#~ "implemented. Also, xgettext's use of command line switches with option\n"
+#~ "arguments is broken, and in these cases, pygettext just defines "
+#~ "additional\n"
+#~ "switches.\n"
+#~ "\n"
+#~ "Usage: pygettext [options] inputfile ...\n"
+#~ "\n"
+#~ "Options:\n"
+#~ "\n"
+#~ " -a\n"
+#~ " --extract-all\n"
+#~ " Extract all strings.\n"
+#~ "\n"
+#~ " -d name\n"
+#~ " --default-domain=name\n"
+#~ " Rename the default output file from messages.pot to name.pot.\n"
+#~ "\n"
+#~ " -E\n"
+#~ " --escape\n"
+#~ " Replace non-ASCII characters with octal escape sequences.\n"
+#~ "\n"
+#~ " -D\n"
+#~ " --docstrings\n"
+#~ " Extract module, class, method, and function docstrings. These do "
+#~ "not\n"
+#~ " need to be wrapped in _() markers, and in fact cannot be for "
+#~ "Python to\n"
+#~ " consider them docstrings. (See also the -X option).\n"
+#~ "\n"
+#~ " -h\n"
+#~ " --help\n"
+#~ " Print this help message and exit.\n"
+#~ "\n"
+#~ " -k word\n"
+#~ " --keyword=word\n"
+#~ " Keywords to look for in addition to the default set, which are:\n"
+#~ " %(DEFAULTKEYWORDS)s\n"
+#~ "\n"
+#~ " You can have multiple -k flags on the command line.\n"
+#~ "\n"
+#~ " -K\n"
+#~ " --no-default-keywords\n"
+#~ " Disable the default set of keywords (see above). Any keywords\n"
+#~ " explicitly added with the -k/--keyword option are still "
+#~ "recognized.\n"
+#~ "\n"
+#~ " --no-location\n"
+#~ " Do not write filename/lineno location comments.\n"
+#~ "\n"
+#~ " -n\n"
+#~ " --add-location\n"
+#~ " Write filename/lineno location comments indicating where each\n"
+#~ " extracted string is found in the source. These lines appear "
+#~ "before\n"
+#~ " each msgid. The style of comments is controlled by the -S/--"
+#~ "style\n"
+#~ " option. This is the default.\n"
+#~ "\n"
+#~ " -o filename\n"
+#~ " --output=filename\n"
+#~ " Rename the default output file from messages.pot to filename. "
+#~ "If\n"
+#~ " filename is `-' then the output is sent to standard out.\n"
+#~ "\n"
+#~ " -p dir\n"
+#~ " --output-dir=dir\n"
+#~ " Output files will be placed in directory dir.\n"
+#~ "\n"
+#~ " -S stylename\n"
+#~ " --style stylename\n"
+#~ " Specify which style to use for location comments. Two styles "
+#~ "are\n"
+#~ " supported:\n"
+#~ "\n"
+#~ " Solaris # File: filename, line: line-number\n"
+#~ " GNU #: filename:line\n"
+#~ "\n"
+#~ " The style name is case insensitive. GNU style is the default.\n"
+#~ "\n"
+#~ " -v\n"
+#~ " --verbose\n"
+#~ " Print the names of the files being processed.\n"
+#~ "\n"
+#~ " -V\n"
+#~ " --version\n"
+#~ " Print the version of pygettext and exit.\n"
+#~ "\n"
+#~ " -w columns\n"
+#~ " --width=columns\n"
+#~ " Set width of output to columns.\n"
+#~ "\n"
+#~ " -x filename\n"
+#~ " --exclude-file=filename\n"
+#~ " Specify a file that contains a list of strings that are not be\n"
+#~ " extracted from the input files. Each string to be excluded must\n"
+#~ " appear on a line by itself in the file.\n"
+#~ "\n"
+#~ " -X filename\n"
+#~ " --no-docstrings=filename\n"
+#~ " Specify a file that contains a list of files (one per line) that\n"
+#~ " should not have their docstrings extracted. This is only useful "
+#~ "in\n"
+#~ " conjunction with the -D option above.\n"
+#~ "\n"
+#~ "If `inputfile' is -, standard input is read.\n"
+#~ msgstr ""
+#~ "pygettext -- Equivalente de xgettext(1) en Python\n"
+#~ "\n"
+#~ "Muchos sistemas (Solaris, Linux, Gnu) proporcionan amplias herramientas\n"
+#~ "que facilitan la internacionalización de programas escritos en C. La "
+#~ "mayoría\n"
+#~ "de estas herramientas son independientes del lenguaje de programación\n"
+#~ "y pueden usarse desde programas escritos en Python. El trabajo de\n"
+#~ "Martin von Loewis' work[1] ayuda considerablemente en este aspecto.\n"
+#~ "\n"
+#~ "Sin embargo hay un problema; xgettext el el programa que rastrea el "
+#~ "código\n"
+#~ "fuente en busca de cadenas de mensaje, pero solo funciona con C (o C++).\n"
+#~ "Python introduce algunas peculiaridades, como comillas dobles, triples y\n"
+#~ "cadenas crudas. xgettext no entiende nada de esto.\n"
+#~ "\n"
+#~ "Introduzca pygettext, que usa el modulo de tokenización estándar de "
+#~ "Python\n"
+#~ "para rastrear el código fuente en Python, generando ficheros .pot "
+#~ "idénticos\n"
+#~ "a los que GNU xgettext[2] hace para código C y C++. A partir de aquí,\n"
+#~ "se pueden usar las herramientas estándares de GNU.\n"
+#~ "\n"
+#~ "Una nota acerca del etiquetado de cadenas de Python como candidatas a "
+#~ "ser\n"
+#~ "traducidas. GNU xgettext reconoce las siguientes palabras clave: "
+#~ "gettext,\n"
+#~ "dgettext, dcgettext, y gettext_noop. Pero estas palabras ueden suponer un "
+#~ "montón\n"
+#~ "de texto a incluir por todo el código.\n"
+#~ "C y C++ tienen un truco: usan el preprocesador de C. La mayoría del "
+#~ "código en C\n"
+#~ "internacionalizado incluye un #define para gettext() a _() de modo que "
+#~ "tenga que\n"
+#~ "escribirse mucho menos en el código fuente. Así que en este ejemplo las "
+#~ "dos cadenas\n"
+#~ "son traducibles:\n"
+#~ "\n"
+#~ " gettext(\"Cadena traducible\")\n"
+#~ " _(\"Cadena traducible\")\n"
+#~ "\n"
+#~ "Por supuesto Python no tiene preprocesador, así que esto no funciona tan\n"
+#~ "bien. Así pues, pygettext busca solamente _() por defecto, pero mire la\n"
+#~ "opción -k/--keyword más abajo para ver como aumentar esto.\n"
+#~ "\n"
+#~ " [1] http://www.python.org/workshops/1997-10/proceedings/loewis.html\n"
+#~ " [2] http://www.gnu.org/software/gettext/gettext.html\n"
+#~ "\n"
+#~ "NOTA: pygettext intenta ser compatible en opciones y características con\n"
+#~ "GNU xgettext siempre que sea posible. Sin embargo todavía faltan algunas\n"
+#~ "opciones o no están completamente implementadas. Además, el uso de\n"
+#~ "interrupciones de la línea de órdenes de xgettext con argumentos de "
+#~ "opción\n"
+#~ "está roto, y en estos casos, pygettext simplemente define interrupciones\n"
+#~ "adicionales.\n"
+#~ "\n"
+#~ "Sintaxis: pygettext [opciones] fichero-de-entrada ...\n"
+#~ "\n"
+#~ "Opciones:\n"
+#~ "\n"
+#~ " -a\n"
+#~ " --extract-all\n"
+#~ " Extrae todas las cadenas.\n"
+#~ "\n"
+#~ " -d name\n"
+#~ " --default-domain=nombre\n"
+#~ " Renombra el fichero de salida predeterminado de messages.pot a "
+#~ "nombre.pot.\n"
+#~ "\n"
+#~ " -E\n"
+#~ " --escape\n"
+#~ " Reemplaza los caracteres no ASCII por secuencias de escape "
+#~ "octales.\n"
+#~ "\n"
+#~ " -D\n"
+#~ " --docstrings\n"
+#~ " Extrae las cadenas de documento de módulo, clase, método y "
+#~ "función.\n"
+#~ " Éstas no necesitan estar rodeadas de etiquetas _(), y de hecho "
+#~ "Python\n"
+#~ " no puede considerarlas cadenas de documento. (Vea tambiénn la "
+#~ "opción -X).\n"
+#~ "\n"
+#~ " -h\n"
+#~ " --help\n"
+#~ " Mostrar este mensaje de ayuda y salir.\n"
+#~ "\n"
+#~ " -k palabra\n"
+#~ " --keyword=palabra\n"
+#~ " Palabras clave a buscar además de las del conjunto por defecto, "
+#~ "que son:\n"
+#~ " %(DEFAULTKEYWORDS)s\n"
+#~ "\n"
+#~ " Puede tener múltiples ocpiones -k en la línea de órdenes.\n"
+#~ "\n"
+#~ " -K\n"
+#~ " --no-default-keywords\n"
+#~ " Inhabilitar el juego de palabras clave por defecto (vea arriba). "
+#~ "Seguirán\n"
+#~ " reconociéndose no obstante cualquier palabra clave añadida "
+#~ "explícitamente\n"
+#~ " con la opción -k/--keyword.\n"
+#~ "\n"
+#~ " --no-location\n"
+#~ " No escribir los comentarios de ubicación nombre de fichero/número "
+#~ "de línea.\n"
+#~ "\n"
+#~ " -n\n"
+#~ " --add-location\n"
+#~ " Escribir comentarios de ubicación nombre de fichero/número de "
+#~ "línea indicando\n"
+#~ " donde en el código fuente se encuentra cada una de las cadenas "
+#~ "extraídas.\n"
+#~ " Estas líneas aparecen antes de cada msgid. El estilo de los "
+#~ "comentarios se\n"
+#~ " controla con la opción -S/--style. Esto es lo predeterminado.\n"
+#~ "\n"
+#~ " -o nombre-de-fichero\n"
+#~ " --output=nombre-de-fichero\n"
+#~ " Renombrar el nombre del fichero de salida por defecto de "
+#~ "messages.pot a\n"
+#~ " nombre-de-fichero. Si nombre-de-fichero es `-' se envía la "
+#~ "salida a la salida\n"
+#~ " estándar.\n"
+#~ "\n"
+#~ " -p dir\n"
+#~ " --output-dir=dir\n"
+#~ " Los ficheros de salida se colocarán en el directorio dir.\n"
+#~ "\n"
+#~ " -S nombre-de-estilo\n"
+#~ " --style nombre-de-estilo\n"
+#~ " Especificar que estilo usar para los comentarios de ubicación. "
+#~ "Hay dos\n"
+#~ " estilos disponibles:\n"
+#~ "\n"
+#~ " Solaris # Fichero:nombre de fichero, línea: número de línea\n"
+#~ " GNU #: nombre de fichero:línea\n"
+#~ "\n"
+#~ " El nombre de estilo no diferencia entre mayúsculas y minúsculas.\n"
+#~ " El estilo predeterminado es el GNU.\n"
+#~ "\n"
+#~ " -v\n"
+#~ " --verbose\n"
+#~ " Muestra los nombres de los ficheros que están siendo procesados.\n"
+#~ "\n"
+#~ " -V\n"
+#~ " --version\n"
+#~ " Mostrar la versión de pygettext y salir.\n"
+#~ "\n"
+#~ " -w columnas\n"
+#~ " --width=columnas\n"
+#~ " Establecer la anchura de la salida a columnas.\n"
+#~ "\n"
+#~ " -x nombre-de-fichero\n"
+#~ " --exclude-file=nombre-de-fichero\n"
+#~ " Especificar un fichero que contiene una lista de cadenas de "
+#~ "caracteres\n"
+#~ " que no se deben extraer de los ficheros de entrada. Cada cadena "
+#~ "a\n"
+#~ " excluir debe ocupar ella sola una línea entera en el fichero.\n"
+#~ "\n"
+#~ " -X nombre-de-fichero\n"
+#~ " --no-docstrings=nombre-de-fichero\n"
+#~ " Especificar un fichero que contiene una lista de ficheros (uno "
+#~ "por línea) del\n"
+#~ " que no se deben extraer sus cadenas de documento. Esto solamente "
+#~ "es Útil\n"
+#~ " en unión con la opción -D indicada arriba.\n"
+#~ "\n"
+#~ "Si `fichero-de-entrada' es -, se lee la entrada estándar.\n"
+
+#~ msgid ""
+#~ "# SOME DESCRIPTIVE TITLE.\n"
+#~ "# Copyright (C) YEAR ORGANIZATION\n"
+#~ "# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.\n"
+#~ "#\n"
+#~ "msgid \"\"\n"
+#~ "msgstr \"\"\n"
+#~ "\"Project-Id-Version: PACKAGE VERSION\\n\"\n"
+#~ "\"POT-Creation-Date: %(time)s\\n\"\n"
+#~ "\"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n\"\n"
+#~ "\"Last-Translator: FULL NAME <EMAIL@ADDRESS>\\n\"\n"
+#~ "\"Language-Team: LANGUAGE <LL@li.org>\\n\"\n"
+#~ "\"MIME-Version: 1.0\\n\"\n"
+#~ "\"Content-Type: text/plain; charset=CHARSET\\n\"\n"
+#~ "\"Content-Transfer-Encoding: ENCODING\\n\"\n"
+#~ "\"Generated-By: pygettext.py %(version)s\\n\"\n"
+#~ "\n"
+#~ msgstr ""
+#~ "# ALGUNOS TÍTULOS DESCRIPTIVOS.\n"
+#~ "# Copyright (C) AÑO ORGANIZACIÓN\n"
+#~ "# AUTOR PRINCIPAL <DIRECCION@DECORREO>, AÑO.\n"
+#~ "#\n"
+#~ "msgid \"\"\n"
+#~ "msgstr \"\"\n"
+#~ "\"Project-Id-Version: PAQUETE VERSIÓN\\n\"\n"
+#~ "\"POT-Creation-Date: %(time)s\\n\"\n"
+#~ "\"PO-Revision-Date: DD-MM-YY HO:MI+ZONA\\n\"\n"
+#~ "\"Last-Translator: NOMBRE Y APELLIDOS <DIRECCIÓN@DECORREO>\\n\"\n"
+#~ "\"Language-Team: IDIOMA <LL@li.org>\\n\"\n"
+#~ "\"MIME-Version: 1.0\\n\"\n"
+#~ "\"Content-Type: text/plain; charset=iso-8859-1\\n\"\n"
+#~ "\"Content-Transfer-Encoding: codificación\\n\"\n"
+#~ "\"Generated-By: pygettext.py %(version)s\\n\"\n"
+#~ "\n"
+
+#~ msgid "# File: %(filename)s, line: %(lineno)d"
+#~ msgstr "Fichero: %(filename)s, linea: %(lineno)d"
+
+#~ msgid " %(filename)s:%(lineno)d"
+#~ msgstr " %(filename)s:%(lineno)d"
+
+#~ msgid "Invalid value for --style: %s"
+#~ msgstr "Valor inválido para --style: %s"
+
+#~ msgid "pygettext.py (xgettext for Python) %s"
+#~ msgstr "pygettext.py (xgettext para Python) %s"
+
+#~ msgid "--width argument must be an integer: %s"
+#~ msgstr "El argumento --width tiene que ser un entero: %s"
+
+#~ msgid "Can't read --exclude-file: %s"
+#~ msgstr "No puedo leer --exclude-file: %s"
+
+#~ msgid "Reading standard input"
+#~ msgstr "Leyendo la entrada estándar"
+
+#~ msgid "Working on %s"
+#~ msgstr "Trabajando sobre %s"
+
+#~ msgid "a unicode string"
+#~ msgstr "una cadena unicode"
diff --git a/messages/es/README.es b/messages/es/README.es
new file mode 100644
index 00000000..066e7d7d
--- /dev/null
+++ b/messages/es/README.es
@@ -0,0 +1,82 @@
+Pasos a dar para soportar un nuevo idioma
+-----------------------------------------
+Supongamos que vamos a soportar el idioma idioma Portugués (pt)
+- Traducir las plantillas de $prefix/templates/en/*, aunque le resulte más útil traducir $prefix/templates/es/* dada la similitud de los idiomas.
+- Seleccionar los ficheros que tienen cadenas a traducir, es decir, aquellos que tienen _("...") en el código fuente.
+ $ find $prefix -exec grep -l "_(" {} \; > $prefix/messages/pygettext.files
+- Quitar todos los ficheros de pygettext.files que no correspondan, *.pyc *.py~...
+- Generar el catálogo, para ello se debe ejecutar:
+ $ cd $prefix/messages
+ $ $prefix/bin/pygettext.py -v `cat pygettext.files`
+ $ mkdir -p pt/LC_MESSAGES
+ #
+ # No sería mala idea (en este caso) traducir README.es a README.pt :-)
+ #
+ $ mv messages.pot pt/LC_MESSAGES/catalog.pt
+- traducir catalog.pt
+- Generar mailman.mo:
+ $ cd $prefix/messages/pt/LC_MESSAGES
+ $ msgfmt -o mailman.mo catalog.pt
+- Insertar en Defaults.py una línea en la variable LC_DESCRIPTIONS:
+LC_DESCRIPTIONS = { 'es': [_("Spanish (Spain)"), 'iso-8859-1'],
+ 'pt': [_("Portuguese"), 'iso-8859-1'], <----
+ 'en': [_("English (USA)"), 'us-ascii']
+ }
+- Almacenar las plantillas del nuevo idioma en $prefix/templates/pt
+- A partir de ahora podemos añadir a una lista el nuevo idioma:
+ $ $prefix/bin/addlang -l <lista> pt
+
+
+Pasos para sincronizar el catálogo
+----------------------------------
+- Generar el nuevo catálogo tal y como se describe antes y compararlo con el
+que ya tenemos. Para compararlo tendremos que ejecutar:
+ $ cd $prefix/messages
+ $ $prefix/bin/pygettext.py -v `cat pygettext.files`
+ $ mv messages.pot pt/LC_MESSAGES
+ $ cd pt/LC_MESSAGES
+ # Hay otra utilidad relacionada que hace los mismo: 'msgmerge'
+ $ tupdate messages.pot catalog.pt > tmp
+# Los mensajes antiguos quedan comentados al final del fichero tmp
+# Los mensajes nuevos quedan sin traducir.
+ $ vi tmp
+# Traducir los mensajes nuevos
+ $ mv tmp catalog.pt; rm messages.pot
+ $ msgfmt -o mailman.mo catalog.pt
+
+Para donar la traducción de un nuevo idioma
+-------------------------------------------
+ Apreciamos la donación de cualquier traducción al proyecto mailman,
+ de manera que cualquiera pueda beneficiarse de tu esfuerzo. Por
+ supuesto, cualquier labor realizada será reconocida públicamente,
+ dentro de la documentación de Mailman. Esto es lo que hay que hacer
+ para donar cualquier traducción, ya sea la primera vez que se haga o
+ cualquier actualización posterior.
+
+ Lo mejor que se puede hacer es mandar un fichero en formato 'tar' a
+ <barry@zope.com> que se pueda desempaquetar en la parte superior
+ donde empieza la jerarquía de directorios del CVS.
+
+ Tu fichero 'tar' debería tener dos directorios, donde están contenidos
+ los ficheros pertenecientes a la traducción del lenguaje 'xx':
+
+ templates/xx
+ messages/xx
+
+ En templates/xx deberían estar las plantillas, todos los ficheros .txt y
+ .html traducidas en tu idioma, a partir de las plantillas en Inglés (que
+ siempre son las copias primarias).
+
+ En messages/xx solo debería haber un único directorio llamado
+ LC_MESSAGES y dentro de él un fichero llamado mailman.po, que es el
+ catálogo perteneciente a tu idioma. No envíes el fichero mailman.mo
+ porque de eso me encargo yo.
+
+ Prácticamente eso es todo. Si necesitas incluir un fichero README, por
+ favor nómbralo como README.xx y mételo en el directorio messages/xx.
+ README.xx debería estar en tu idioma.
+
+ Puedes mandarme el fichero 'tar' por correo electrónico. Si es la
+ primera vez que mandas la traducción, por favor, dime que debo poner en
+ la invocación de add_language() dentro del fichero Defaults.py para
+ incorporar tu idioma.
diff --git a/messages/et/LC_MESSAGES/mailman.mo b/messages/et/LC_MESSAGES/mailman.mo
new file mode 100644
index 00000000..9a6084cf
--- /dev/null
+++ b/messages/et/LC_MESSAGES/mailman.mo
Binary files differ
diff --git a/messages/et/LC_MESSAGES/mailman.po b/messages/et/LC_MESSAGES/mailman.po
new file mode 100644
index 00000000..4bfe984a
--- /dev/null
+++ b/messages/et/LC_MESSAGES/mailman.po
@@ -0,0 +1,8701 @@
+# translation of mailman.po to Estonian
+# Anti Veeranna <duke@linux.ee>, 2002
+msgid ""
+msgstr ""
+"Project-Id-Version: mailman\n"
+"POT-Creation-Date: Tue Dec 24 13:41:28 2002\n"
+"PO-Revision-Date: 2002-12-29 23:16+0200\n"
+"Last-Translator: Anti Veeranna <duke@linux.ee>\n"
+"Language-Team: Estonian <et@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-15\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.0\n"
+
+#: Mailman/Archiver/HyperArch.py:112
+msgid "size not available"
+msgstr "suurus pole teada"
+
+#: Mailman/Archiver/HyperArch.py:118
+msgid " %(size)i bytes "
+msgstr " %(size)i baiti "
+
+#: Mailman/Archiver/HyperArch.py:249 Mailman/Archiver/HyperArch.py:405
+#: Mailman/Archiver/HyperArch.py:963 Mailman/Archiver/HyperArch.py:1127
+msgid " at "
+msgstr " at"
+
+#: Mailman/Archiver/HyperArch.py:434
+msgid "Previous message:"
+msgstr "Eelmine kiri:"
+
+#: Mailman/Archiver/HyperArch.py:456
+msgid "Next message:"
+msgstr "Järgmine kiri:"
+
+#: Mailman/Archiver/HyperArch.py:609 Mailman/Archiver/HyperArch.py:645
+msgid "thread"
+msgstr "lõim"
+
+#: Mailman/Archiver/HyperArch.py:610 Mailman/Archiver/HyperArch.py:646
+msgid "subject"
+msgstr "teema"
+
+#: Mailman/Archiver/HyperArch.py:611 Mailman/Archiver/HyperArch.py:647
+msgid "author"
+msgstr "autor"
+
+#: Mailman/Archiver/HyperArch.py:612 Mailman/Archiver/HyperArch.py:648
+msgid "date"
+msgstr "kuupäev"
+
+#: Mailman/Archiver/HyperArch.py:684
+msgid "<P>Currently, there are no archives. </P>"
+msgstr "<P>Arhiivid on hetkel tühjad. </P>"
+
+#: Mailman/Archiver/HyperArch.py:721
+msgid "Gzip'd Text%(sz)s"
+msgstr "gzip pakitud tekst%(sz)s"
+
+#: Mailman/Archiver/HyperArch.py:726
+msgid "Text%(sz)s"
+msgstr "Tekst%(sz)s"
+
+#: Mailman/Archiver/HyperArch.py:816
+msgid "figuring article archives\n"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "April"
+msgstr "Aprill"
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "February"
+msgstr "Veebruar"
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "January"
+msgstr "Jaanuar"
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "March"
+msgstr "Märts"
+
+#: Mailman/Archiver/HyperArch.py:827
+msgid "August"
+msgstr "August"
+
+#: Mailman/Archiver/HyperArch.py:827
+msgid "July"
+msgstr "Juuli"
+
+#: Mailman/Archiver/HyperArch.py:827
+msgid "June"
+msgstr "Juuni"
+
+#: Mailman/Archiver/HyperArch.py:827 Mailman/i18n.py:91
+msgid "May"
+msgstr "Mai"
+
+#: Mailman/Archiver/HyperArch.py:828
+msgid "December"
+msgstr "Detsember"
+
+#: Mailman/Archiver/HyperArch.py:828
+msgid "November"
+msgstr "November"
+
+#: Mailman/Archiver/HyperArch.py:828
+msgid "October"
+msgstr "Oktoober"
+
+#: Mailman/Archiver/HyperArch.py:828
+msgid "September"
+msgstr "September"
+
+#: Mailman/Archiver/HyperArch.py:836
+msgid "First"
+msgstr "Esimene"
+
+#: Mailman/Archiver/HyperArch.py:836
+msgid "Fourth"
+msgstr "Neljas"
+
+#: Mailman/Archiver/HyperArch.py:836
+msgid "Second"
+msgstr "Teine"
+
+#: Mailman/Archiver/HyperArch.py:836
+msgid "Third"
+msgstr "Kolmas"
+
+#: Mailman/Archiver/HyperArch.py:838
+msgid "%(ord)s quarter %(year)i"
+msgstr "%(year)i %(ord)s kvartal"
+
+#: Mailman/Archiver/HyperArch.py:845
+msgid "%(month)s %(year)i"
+msgstr "%(month)s %(year)i"
+
+#: Mailman/Archiver/HyperArch.py:850
+msgid "The Week Of Monday %(day)i %(month)s %(year)i"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:854
+msgid "%(day)i %(month)s %(year)i"
+msgstr "%(day)i %(month)s %(year)i"
+
+#: Mailman/Archiver/HyperArch.py:951
+msgid "Computing threaded index\n"
+msgstr "Tekitan lõimede indeksit\n"
+
+#: Mailman/Archiver/HyperArch.py:1206
+msgid "Updating HTML for article %(seq)s"
+msgstr "Uuendan kirja %(seq)s HTMLi"
+
+#: Mailman/Archiver/HyperArch.py:1213
+msgid "article file %(filename)s is missing!"
+msgstr "artiklifail %(filename)s on puudu!"
+
+#: Mailman/Archiver/pipermail.py:168 Mailman/Archiver/pipermail.py:169
+msgid "No subject"
+msgstr "teemat pole"
+
+#: Mailman/Archiver/pipermail.py:269
+msgid "Creating archive directory "
+msgstr "Arhiivikataloogi loomine "
+
+#: Mailman/Archiver/pipermail.py:281
+msgid "Reloading pickled archive state"
+msgstr "Arhiivi salvestatud staatuse laadimine "
+
+#: Mailman/Archiver/pipermail.py:308
+msgid "Pickling archive state into "
+msgstr "Arhiivi staatuse salvestamine "
+
+#: Mailman/Archiver/pipermail.py:419
+msgid "Updating index files for archive [%(archive)s]"
+msgstr "Arhiivi [%(archive)s] indeksfailide uuendamine"
+
+#: Mailman/Archiver/pipermail.py:452
+msgid " Thread"
+msgstr " Lõim"
+
+#: Mailman/Archiver/pipermail.py:557
+msgid "#%(counter)05d %(msgid)s"
+msgstr "#%(counter)05d %(msgid)s"
+
+#: Mailman/Bouncer.py:44
+msgid "due to excessive bounces"
+msgstr "kirjad tulevad tagasi"
+
+#: Mailman/Bouncer.py:45
+msgid "by yourself"
+msgstr "tellija lõpetas tellimuse"
+
+#: Mailman/Bouncer.py:46
+msgid "by the list administrator"
+msgstr "listi halduri peatas tellimuse"
+
+#: Mailman/Bouncer.py:47 Mailman/Bouncer.py:232
+#: Mailman/Commands/cmd_set.py:182
+msgid "for unknown reasons"
+msgstr "pole teada"
+
+#: Mailman/Bouncer.py:179
+msgid "disabled"
+msgstr "keelatud"
+
+#: Mailman/Bouncer.py:184
+msgid "Bounce action notification"
+msgstr "Tagastamisest teatamine"
+
+#: Mailman/Bouncer.py:239
+msgid " The last bounce received from you was dated %(date)s"
+msgstr " Viimane tagastatud kiri oli kuupäevaga %(date)s"
+
+#: Mailman/Bouncer.py:264 Mailman/Deliverer.py:126
+#: Mailman/Handlers/Acknowledge.py:44 Mailman/Handlers/CookHeaders.py:236
+#: Mailman/Handlers/Hold.py:214 Mailman/Handlers/Hold.py:249
+#: Mailman/Handlers/ToDigest.py:211 Mailman/ListAdmin.py:235
+msgid "(no subject)"
+msgstr "(teemat pole)"
+
+#: Mailman/Bouncer.py:266
+msgid "[No bounce details are available]"
+msgstr "[Puudub lähem info tagastamise kohta]"
+
+#: Mailman/Cgi/Auth.py:46
+msgid "Moderator"
+msgstr "Moderaator"
+
+#: Mailman/Cgi/Auth.py:48
+msgid "Administrator"
+msgstr "Haldur"
+
+#: Mailman/Cgi/admin.py:70 Mailman/Cgi/admindb.py:89 Mailman/Cgi/confirm.py:55
+#: Mailman/Cgi/edithtml.py:67 Mailman/Cgi/listinfo.py:51
+#: Mailman/Cgi/options.py:71 Mailman/Cgi/private.py:98
+#: Mailman/Cgi/rmlist.py:64 Mailman/Cgi/roster.py:57
+#: Mailman/Cgi/subscribe.py:61
+msgid "No such list <em>%(safelistname)s</em>"
+msgstr "Sellist listi pole: <em>%(safelistname)s</em>"
+
+#: Mailman/Cgi/admin.py:85 Mailman/Cgi/admindb.py:105
+#: Mailman/Cgi/edithtml.py:85 Mailman/Cgi/private.py:123
+msgid "Authorization failed."
+msgstr "Autoriseerimine ebaõnnestus."
+
+#: Mailman/Cgi/admin.py:175
+msgid ""
+"You have turned off delivery of both digest and\n"
+" non-digest messages. This is an incompatible state of\n"
+" affairs. You must turn on either digest delivery or\n"
+" non-digest delivery or your mailing list will basically be\n"
+" unusable."
+msgstr ""
+"Lülitasid väja nii referaatide kui ka\n"
+" üksikkirjade saatmise, see aga tähendab, et teie list\n"
+" on praktiliselt kasutu. Kui te oma listi siiski "
+"kasutada soovite,\n"
+" siis on soovitav üks nendest valikutest sisse lülitada. "
+
+#: Mailman/Cgi/admin.py:179 Mailman/Cgi/admin.py:185 Mailman/Cgi/admin.py:190
+#: Mailman/Cgi/admin.py:1361 Mailman/Gui/GUIBase.py:184
+msgid "Warning: "
+msgstr "Hoiatus: "
+
+#: Mailman/Cgi/admin.py:183
+msgid ""
+"You have digest members, but digests are turned\n"
+" off. Those people will not receive mail."
+msgstr ""
+"Selle listi liikmete seas on referaatide tellijaid kuid referaatide\n"
+" saatmine on keelatud ja seetõttu need liikmed listist meili ei saa. "
+
+#: Mailman/Cgi/admin.py:188
+msgid ""
+"You have regular list members but non-digestified mail is\n"
+" turned off. They will receive mail until you fix this\n"
+" problem."
+msgstr ""
+"Selle listi liikmete seas on üksikkirjade tellijaid kuid üksikkirjade\n"
+" saatmine on keelatud ja seetõttu need liikmed listist meili ei "
+"saa. "
+
+#: Mailman/Cgi/admin.py:212
+msgid "%(hostname)s mailing lists - Admin Links"
+msgstr "Listid serveris %(hostname)s - Administreerimine"
+
+#: Mailman/Cgi/admin.py:241 Mailman/Cgi/listinfo.py:97
+msgid "Welcome!"
+msgstr "Tere tulemast!"
+
+#: Mailman/Cgi/admin.py:244 Mailman/Cgi/listinfo.py:100
+msgid "Mailman"
+msgstr "Mailman"
+
+#: Mailman/Cgi/admin.py:248
+msgid ""
+"<p>There currently are no publicly-advertised %(mailmanlink)s\n"
+" mailing lists on %(hostname)s."
+msgstr ""
+"<p>Serveris %(hostname)s ei ole ühtegi avalikku %(mailmanlink)s\n"
+" listi."
+
+#: Mailman/Cgi/admin.py:254
+msgid ""
+"<p>Below is the collection of publicly-advertised\n"
+" %(mailmanlink)s mailing lists on %(hostname)s. Click on a list\n"
+" name to visit the configuration pages for that list."
+msgstr ""
+"<p>Siin on nimekiri kõigist avalikest\n"
+" %(mailmanlink)s listidest serveris %(hostname)s. Kliki "
+"listi\n"
+" nimel listi seadistamise lehe avamiseks."
+
+#: Mailman/Cgi/admin.py:261
+msgid "right "
+msgstr "right "
+
+#: Mailman/Cgi/admin.py:263
+msgid ""
+"To visit the administrators configuration page for an\n"
+" unadvertised list, open a URL similar to this one, but with a '/' "
+"and\n"
+" the %(extra)slist name appended. If you have the proper authority,\n"
+" you can also <a href=\"%(creatorurl)s\">create a new mailing list</"
+"a>.\n"
+"\n"
+" <p>General list information can be found at "
+msgstr ""
+"Privaatse listi seadistamislehe vaatamiseks \n"
+" lisage URLi lõppu '/' ja %(extra)s listi nimi. Kui sul on piisavalt "
+"õigusi,\n"
+" siis on sul siitkaudu <a href=\"%(creatorurl)s\">võimalik ka uus "
+"list luua</a>.\n"
+"\n"
+"\t<p>Üldinfot leiab "
+
+#: Mailman/Cgi/admin.py:270
+msgid "the mailing list overview page"
+msgstr "listi infoleht"
+
+#: Mailman/Cgi/admin.py:272
+msgid "<p>(Send questions and comments to "
+msgstr "<p>(Küsimused ja kommentaarid saada "
+
+#: Mailman/Cgi/admin.py:282 Mailman/Cgi/listinfo.py:132 cron/mailpasswds:179
+msgid "List"
+msgstr "List"
+
+#: Mailman/Cgi/admin.py:283 Mailman/Cgi/admin.py:549
+#: Mailman/Cgi/listinfo.py:133
+msgid "Description"
+msgstr "Kirjeldus"
+
+#: Mailman/Cgi/admin.py:289 Mailman/Cgi/listinfo.py:139 bin/list_lists:116
+msgid "[no description available]"
+msgstr "[kirjeldus puudub]"
+
+#: Mailman/Cgi/admin.py:322
+msgid "No valid variable name found."
+msgstr "See termin on mulle tundmatu."
+
+#: Mailman/Cgi/admin.py:332
+msgid ""
+"%(realname)s Mailing list Configuration Help\n"
+" <br><em>%(varname)s</em> Option"
+msgstr ""
+"%(realname)s listi seadistamise abiinfo\n"
+" <br>Termin: <em>%(varname)s</em> "
+
+#: Mailman/Cgi/admin.py:339
+msgid "Mailman %(varname)s List Option Help"
+msgstr "Mailmani listi seadistuse %(varname)s abiinfo"
+
+#: Mailman/Cgi/admin.py:357
+msgid ""
+"<em><strong>Warning:</strong> changing this option here\n"
+" could cause other screens to be out-of-sync. Be sure to reload any "
+"other\n"
+" pages that are displaying this option for this mailing list. You can "
+"also\n"
+" "
+msgstr ""
+
+#: Mailman/Cgi/admin.py:368
+msgid "return to the %(categoryname)s options page."
+msgstr "tagasi %(categoryname)s kategooria seadistuste juurde"
+
+#: Mailman/Cgi/admin.py:383
+msgid "%(realname)s Administration (%(label)s)"
+msgstr "%(realname)s administreerimine (%(label)s)"
+
+#: Mailman/Cgi/admin.py:384
+msgid "%(realname)s mailing list administration<br>%(label)s Section"
+msgstr "%(realname)s listi seadistamine.<br>Kategooria: %(label)s"
+
+#: Mailman/Cgi/admin.py:400
+msgid "Configuration Categories"
+msgstr "Kategooriad"
+
+#: Mailman/Cgi/admin.py:401
+msgid "Other Administrative Activities"
+msgstr "Administratiivtegevused"
+
+#: Mailman/Cgi/admin.py:405
+msgid "Tend to pending moderator requests"
+msgstr "Ootel modereerimisnõueded"
+
+#: Mailman/Cgi/admin.py:407
+msgid "Go to the general list information page"
+msgstr "Listi infoleht"
+
+#: Mailman/Cgi/admin.py:409
+msgid "Edit the public HTML pages"
+msgstr "Avalike lehtede HTMLi muutmine"
+
+#: Mailman/Cgi/admin.py:411
+msgid "Go to list archives"
+msgstr "Arhiivid"
+
+#: Mailman/Cgi/admin.py:417
+msgid "Delete this mailing list"
+msgstr "Kustuta see list"
+
+#: Mailman/Cgi/admin.py:418
+msgid " (requires confirmation)<br>&nbsp;<br>"
+msgstr " (vajab kinnitust)<br>&nbsp;<br>"
+
+#: Mailman/Cgi/admin.py:424
+msgid "Logout"
+msgstr "Logi välja"
+
+#: Mailman/Cgi/admin.py:468
+msgid "Emergency moderation of all list traffic is enabled"
+msgstr "Kõik listi saadetud kirjad peetakse ülevaatuseks kinni."
+
+#: Mailman/Cgi/admin.py:479
+msgid ""
+"Make your changes in the following section, then submit them\n"
+" using the <em>Submit Your Changes</em> button below."
+msgstr ""
+"Tee selles vormis soovitud muudatused ja salvesta nad klikkides allpool "
+"asuvat\n"
+" <em>Salvesta</em> nuppu."
+
+#: Mailman/Cgi/admin.py:497
+msgid "Additional Member Tasks"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:503
+msgid ""
+"<li>Set everyone's moderation bit, including\n"
+" those members not currently visible"
+msgstr "<li>Kehtesteda kõigile kasutajatele 'mod' lipuke."
+
+#: Mailman/Cgi/admin.py:507
+msgid "Off"
+msgstr "ei"
+
+#: Mailman/Cgi/admin.py:507
+msgid "On"
+msgstr "jah"
+
+#: Mailman/Cgi/admin.py:509
+msgid "Set"
+msgstr "Salvesta"
+
+#: Mailman/Cgi/admin.py:550
+msgid "Value"
+msgstr "Väärtus"
+
+#: Mailman/Cgi/admin.py:604
+msgid ""
+"Badly formed options entry:\n"
+" %(record)s"
+msgstr ""
+"Seadistus on vigaselt vormistatud:\n"
+" %(record)s"
+
+#: Mailman/Cgi/admin.py:662
+msgid "<em>Enter the text below, or...</em><br>"
+msgstr "<em>Sisesta tekst või </em><br>"
+
+#: Mailman/Cgi/admin.py:664
+msgid "<br><em>...specify a file to upload</em><br>"
+msgstr "<br><em>...vali soovitud teksti sisaldav fail</em><br>"
+
+#: Mailman/Cgi/admin.py:690 Mailman/Cgi/admin.py:693
+msgid "Topic %(i)d"
+msgstr "Teema %(i)d"
+
+#: Mailman/Cgi/admin.py:694
+msgid "Delete"
+msgstr "Kustuta"
+
+#: Mailman/Cgi/admin.py:695
+msgid "Topic name:"
+msgstr "Teema nimetus:"
+
+#: Mailman/Cgi/admin.py:697
+msgid "Regexp:"
+msgstr "Regulaaravaldis:"
+
+#: Mailman/Cgi/admin.py:700 Mailman/Cgi/options.py:943
+msgid "Description:"
+msgstr "Kirjeldus:"
+
+#: Mailman/Cgi/admin.py:704
+msgid "Add new item..."
+msgstr "Lisa uus element..."
+
+#: Mailman/Cgi/admin.py:706
+msgid "...before this one."
+msgstr "...selle ette."
+
+#: Mailman/Cgi/admin.py:707
+msgid "...after this one."
+msgstr "...selle järele."
+
+#: Mailman/Cgi/admin.py:742
+msgid "<br>(Edit <b>%(varname)s</b>)"
+msgstr "<br>(Redigeeri <b>%(varname)s</b></b>)"
+
+#: Mailman/Cgi/admin.py:744
+msgid "<br>(Details for <b>%(varname)s</b>)"
+msgstr "<br>(<b>%(varname)s</b> info</b>)"
+
+#: Mailman/Cgi/admin.py:751
+msgid ""
+"<br><em><strong>Note:</strong>\n"
+" setting this value performs an immediate action but does not modify\n"
+" permanent state.</em>"
+msgstr ""
+"<br><em><strong>NB:</strong>\n"
+" Sellele seadistusele vastav tegevus sooritatakse kohe, kuid "
+"permanentset\n"
+" staatust ei muudeta.</em>"
+
+#: Mailman/Cgi/admin.py:765
+msgid "Mass Subscriptions"
+msgstr "Aadresside lisamine"
+
+#: Mailman/Cgi/admin.py:772
+msgid "Mass Removals"
+msgstr "Aadresside eemaldamine"
+
+#: Mailman/Cgi/admin.py:779
+msgid "Membership List"
+msgstr "Tellijate nimestik"
+
+#: Mailman/Cgi/admin.py:786
+msgid "(help)"
+msgstr "(abi)"
+
+#: Mailman/Cgi/admin.py:787
+msgid "Find member %(link)s:"
+msgstr "Otsi aadressi %(link)s:"
+
+#: Mailman/Cgi/admin.py:790
+msgid "Search..."
+msgstr "Otsi..."
+
+#: Mailman/Cgi/admin.py:805
+msgid "Bad regular expression: "
+msgstr "Vigane regulaaravaldis: "
+
+#: Mailman/Cgi/admin.py:861
+msgid "%(allcnt)s members total, %(membercnt)s shown"
+msgstr "Kokku %(allcnt)s tellijat, näidatakse %(membercnt)s"
+
+#: Mailman/Cgi/admin.py:864
+msgid "%(allcnt)s members total"
+msgstr "Kokku %(allcnt)s tellijat"
+
+#: Mailman/Cgi/admin.py:887
+msgid "unsub"
+msgstr "kustuta"
+
+#: Mailman/Cgi/admin.py:888
+msgid "member address<br>member name"
+msgstr "meiliaadress<br>nimi"
+
+#: Mailman/Cgi/admin.py:889
+msgid "hide"
+msgstr "peida"
+
+#: Mailman/Cgi/admin.py:889
+msgid "mod"
+msgstr "mod"
+
+#: Mailman/Cgi/admin.py:890
+msgid "nomail<br>[reason]"
+msgstr "peatatud<br>[põhjus]"
+
+#: Mailman/Cgi/admin.py:891
+msgid "ack"
+msgstr "kinnitus"
+
+#: Mailman/Cgi/admin.py:891
+msgid "not metoo"
+msgstr "v.a. autor"
+
+#: Mailman/Cgi/admin.py:892
+msgid "nodupes"
+msgstr "väldi koopiat"
+
+#: Mailman/Cgi/admin.py:893
+msgid "digest"
+msgstr "referaat"
+
+#: Mailman/Cgi/admin.py:893
+msgid "plain"
+msgstr "lihttekst"
+
+#: Mailman/Cgi/admin.py:894
+msgid "language"
+msgstr "keel"
+
+#: Mailman/Cgi/admin.py:905
+msgid "?"
+msgstr "?"
+
+#: Mailman/Cgi/admin.py:906
+msgid "U"
+msgstr "K"
+
+#: Mailman/Cgi/admin.py:907
+msgid "A"
+msgstr "A"
+
+#: Mailman/Cgi/admin.py:908
+msgid "B"
+msgstr "T"
+
+#: Mailman/Cgi/admin.py:979
+msgid "<b>unsub</b> -- Click on this to unsubscribe the member."
+msgstr "<b>kustuta</b> -- Kui tahad aadressi kustutada, siis märgista see."
+
+#: Mailman/Cgi/admin.py:981
+msgid ""
+"<b>mod</b> -- The user's personal moderation flag. If this is\n"
+" set, postings from them will be moderated, otherwise they will be\n"
+" approved."
+msgstr ""
+"<b>mod</b> -- Modereerimine. Kui see kast on märgitud, siis peetakse sellelt "
+"aadressilt tulnud kirjad ülevaatuseks kinni. Kui see pole märgitud, siis "
+"lubatakse kirjad listi. "
+
+#: Mailman/Cgi/admin.py:985
+msgid ""
+"<b>hide</b> -- Is the member's address concealed on\n"
+" the list of subscribers?"
+msgstr "<b>peida</b> -- Ära näita seda aadressi tellijate nimestikus."
+
+#: Mailman/Cgi/admin.py:987
+msgid ""
+"<b>nomail</b> -- Is delivery to the member disabled? If so, an\n"
+" abbreviation will be given describing the reason for the disabled\n"
+" delivery:\n"
+" <ul><li><b>U</b> -- Delivery was disabled by the user via their\n"
+" personal options page.\n"
+" <li><b>A</b> -- Delivery was disabled by the list\n"
+" administrators.\n"
+" <li><b>B</b> -- Delivery was disabled by the system due to\n"
+" excessive bouncing from the member's address.\n"
+" <li><b>?</b> -- The reason for disabled delivery isn't "
+"known.\n"
+" This is the case for all memberships which were "
+"disabled\n"
+" in older versions of Mailman.\n"
+" </ul>"
+msgstr ""
+"<b>peatatud</b> -- Tellimus on peatatud, põhjust näitab\n"
+" vastav lühend:\n"
+" <ul><li><b>K</b> -- Tellija soovil.\n"
+" <li><b>A</b> -- Listi halduri otsus.\n"
+" <li><b>T</b> -- Saadetud kirjad tagastatakse.\n"
+" <li><b>?</b> -- Põhjus pole teada. Seda näidatakse kõigi "
+"Mailmani varasemates versioonides tehtud tellimuste peatamiste põhjusena.\n"
+" </ul>"
+
+#: Mailman/Cgi/admin.py:1002
+msgid ""
+"<b>ack</b> -- Does the member get acknowledgements of their\n"
+" posts?"
+msgstr "<b>kinnitus</b> -- Saata tellijale kinnitus tema kirja listi edastamise kohta"
+
+#: Mailman/Cgi/admin.py:1005
+msgid ""
+"<b>not metoo</b> -- Does the member want to avoid copies of their\n"
+" own postings?"
+msgstr "<b>v.a. autor</b> -- Edasta kiri kõigile listi tellijatele v.a. autor ise?"
+
+#: Mailman/Cgi/admin.py:1008
+msgid ""
+"<b>nodupes</b> -- Does the member want to avoid duplicates of the\n"
+" same message?"
+msgstr ""
+"<b>väldi koopiat</b> -- Tellijale ei saadeta kirja, kui tema aadress oli "
+"mõne sissetuleva kirja päises."
+
+#: Mailman/Cgi/admin.py:1011
+msgid ""
+"<b>digest</b> -- Does the member get messages in digests?\n"
+" (otherwise, individual messages)"
+msgstr ""
+"<b>referaat</b> -- Saata sellele aadressile referaate.\n"
+" (kui see pole märgistatud, siis saadetakse üksikkirju)"
+
+#: Mailman/Cgi/admin.py:1014
+msgid ""
+"<b>plain</b> -- If getting digests, does the member get plain\n"
+" text digests? (otherwise, MIME)"
+msgstr ""
+"<b>lihttekst</b> -- Referaadid on vormistatud lihttekstina\n"
+" (kui see pole märgistatud, siis kasutatakse MIMEt)"
+
+#: Mailman/Cgi/admin.py:1016
+msgid "<b>language</b> -- Language preferred by the user"
+msgstr "<b>keel</b> -- Eelistatud keel"
+
+#: Mailman/Cgi/admin.py:1030
+msgid "Click here to hide the legend for this table."
+msgstr "Kliki siia selle tabeli abiinfo peitmiseks."
+
+#: Mailman/Cgi/admin.py:1034
+msgid "Click here to include the legend for this table."
+msgstr "Kliki siia selle tabeli abiinfo nägemiseks."
+
+#: Mailman/Cgi/admin.py:1041
+msgid ""
+"<p><em>To view more members, click on the appropriate\n"
+" range listed below:</em>"
+msgstr ""
+"<p><em>Nimestiku teiste osade nägemiseks klikkige allpool olevatele\n"
+" numbritega linkidele:</em>"
+
+#: Mailman/Cgi/admin.py:1050
+msgid "from %(start)s to %(end)s"
+msgstr "%(start)s - %(end)s"
+
+#: Mailman/Cgi/admin.py:1063
+msgid "Subscribe these users now or invite them?"
+msgstr "Lisada aadressid kohe tellijate nimestikku või saata kõigepealt kutsed?"
+
+#: Mailman/Cgi/admin.py:1065
+msgid "Invite"
+msgstr "Saata kutsed"
+
+#: Mailman/Cgi/admin.py:1065 Mailman/Cgi/listinfo.py:175
+msgid "Subscribe"
+msgstr "Lisada kohe"
+
+#: Mailman/Cgi/admin.py:1071
+msgid "Send welcome messages to new subscribees?"
+msgstr "Saata uutele tellijatele tervitus?"
+
+#: Mailman/Cgi/admin.py:1073 Mailman/Cgi/admin.py:1082
+#: Mailman/Cgi/admin.py:1115 Mailman/Cgi/admin.py:1123
+#: Mailman/Cgi/confirm.py:271 Mailman/Cgi/create.py:327
+#: Mailman/Cgi/create.py:355 Mailman/Cgi/create.py:395
+#: Mailman/Cgi/rmlist.py:228 Mailman/Gui/Archive.py:33
+#: Mailman/Gui/Autoresponse.py:54 Mailman/Gui/Autoresponse.py:62
+#: Mailman/Gui/Autoresponse.py:71 Mailman/Gui/Bounce.py:77
+#: Mailman/Gui/Bounce.py:108 Mailman/Gui/Bounce.py:134
+#: Mailman/Gui/Bounce.py:143 Mailman/Gui/ContentFilter.py:70
+#: Mailman/Gui/ContentFilter.py:103 Mailman/Gui/Digest.py:46
+#: Mailman/Gui/Digest.py:62 Mailman/Gui/Digest.py:84 Mailman/Gui/Digest.py:89
+#: Mailman/Gui/General.py:148 Mailman/Gui/General.py:154
+#: Mailman/Gui/General.py:232 Mailman/Gui/General.py:259
+#: Mailman/Gui/General.py:286 Mailman/Gui/General.py:297
+#: Mailman/Gui/General.py:300 Mailman/Gui/General.py:310
+#: Mailman/Gui/General.py:315 Mailman/Gui/General.py:325
+#: Mailman/Gui/General.py:345 Mailman/Gui/General.py:373
+#: Mailman/Gui/General.py:396 Mailman/Gui/NonDigest.py:44
+#: Mailman/Gui/NonDigest.py:52 Mailman/Gui/Privacy.py:101
+#: Mailman/Gui/Privacy.py:107 Mailman/Gui/Privacy.py:140
+#: Mailman/Gui/Privacy.py:188 Mailman/Gui/Privacy.py:296
+#: Mailman/Gui/Privacy.py:309 Mailman/Gui/Usenet.py:50
+#: Mailman/Gui/Usenet.py:54 Mailman/Gui/Usenet.py:91 Mailman/Gui/Usenet.py:103
+msgid "No"
+msgstr "Ei"
+
+#: Mailman/Cgi/admin.py:1073 Mailman/Cgi/admin.py:1082
+#: Mailman/Cgi/admin.py:1115 Mailman/Cgi/admin.py:1123
+#: Mailman/Cgi/confirm.py:271 Mailman/Cgi/create.py:327
+#: Mailman/Cgi/create.py:355 Mailman/Cgi/create.py:395
+#: Mailman/Cgi/rmlist.py:228 Mailman/Gui/Archive.py:33
+#: Mailman/Gui/Autoresponse.py:54 Mailman/Gui/Autoresponse.py:62
+#: Mailman/Gui/Bounce.py:77 Mailman/Gui/Bounce.py:108
+#: Mailman/Gui/Bounce.py:134 Mailman/Gui/Bounce.py:143
+#: Mailman/Gui/ContentFilter.py:70 Mailman/Gui/ContentFilter.py:103
+#: Mailman/Gui/Digest.py:46 Mailman/Gui/Digest.py:62 Mailman/Gui/Digest.py:84
+#: Mailman/Gui/Digest.py:89 Mailman/Gui/General.py:148
+#: Mailman/Gui/General.py:154 Mailman/Gui/General.py:232
+#: Mailman/Gui/General.py:259 Mailman/Gui/General.py:286
+#: Mailman/Gui/General.py:297 Mailman/Gui/General.py:300
+#: Mailman/Gui/General.py:310 Mailman/Gui/General.py:315
+#: Mailman/Gui/General.py:325 Mailman/Gui/General.py:345
+#: Mailman/Gui/General.py:373 Mailman/Gui/General.py:396
+#: Mailman/Gui/NonDigest.py:44 Mailman/Gui/NonDigest.py:52
+#: Mailman/Gui/Privacy.py:101 Mailman/Gui/Privacy.py:107
+#: Mailman/Gui/Privacy.py:140 Mailman/Gui/Privacy.py:188
+#: Mailman/Gui/Privacy.py:296 Mailman/Gui/Privacy.py:309
+#: Mailman/Gui/Usenet.py:50 Mailman/Gui/Usenet.py:54 Mailman/Gui/Usenet.py:91
+#: Mailman/Gui/Usenet.py:103
+msgid "Yes"
+msgstr "Jah"
+
+#: Mailman/Cgi/admin.py:1080
+msgid "Send notifications of new subscriptions to the list owner?"
+msgstr "Teavita listi haldurit uutest tellijatest?"
+
+#: Mailman/Cgi/admin.py:1088 Mailman/Cgi/admin.py:1129
+msgid "Enter one address per line below..."
+msgstr "Iga aadress eraldi reale..."
+
+#: Mailman/Cgi/admin.py:1093 Mailman/Cgi/admin.py:1134
+msgid "...or specify a file to upload:"
+msgstr "...või vali aadresse sisaldav fail:"
+
+#: Mailman/Cgi/admin.py:1098
+msgid ""
+"Below, enter additional text to be added to the\n"
+" top of your invitation or the subscription notification. Include at "
+"least\n"
+" one blank line at the end..."
+msgstr ""
+"Kui soovite kutse või tervituse algusse mingit teksti lisada,\n"
+"siis kirjutage see siia. Lõppu jätke vähemalt üks tühi rida. "
+
+#: Mailman/Cgi/admin.py:1113
+msgid "Send unsubscription acknowledgement to the user?"
+msgstr "Saada lahkujatele kinnitus tellimuse lõpetamise kohta?"
+
+#: Mailman/Cgi/admin.py:1121
+msgid "Send notifications to the list owner?"
+msgstr "Teavitada listi haldurit aadresside eemaldamisest"
+
+#: Mailman/Cgi/admin.py:1143
+msgid "Change list ownership passwords"
+msgstr "Muuda listi halduriparooli"
+
+#: Mailman/Cgi/admin.py:1146
+msgid ""
+"The <em>list administrators</em> are the people who have ultimate control "
+"over\n"
+"all parameters of this mailing list. They are able to change any list\n"
+"configuration variable available through these administration web pages.\n"
+"\n"
+"<p>The <em>list moderators</em> have more limited permissions; they are not\n"
+"able to change any list configuration variable, but they are allowed to "
+"tend\n"
+"to pending administration requests, including approving or rejecting held\n"
+"subscription requests, and disposing of held postings. Of course, the\n"
+"<em>list administrators</em> can also tend to pending requests.\n"
+"\n"
+"<p>In order to split the list ownership duties into administrators and\n"
+"moderators, you must set a separate moderator password in the fields below,\n"
+"and also provide the email addresses of the list moderators in the\n"
+"<a href=\"%(adminurl)s/general\">general options section</a>."
+msgstr ""
+"<em>Listi haldurid</em> on isikud, kel on täielik kontroll listi "
+"seadistuste\n"
+"üle. Nad saavad seadistust muuta nende veebilehtede kaudu.\n"
+"\n"
+"<p><em>Listi moderaatoritel</em> on vähem õigusi; nad ei saa listi "
+"seadistusi\n"
+"muuta, kuid neil on õigused administratiivtaotluste läbivaatamiseks ja\n"
+"otsuste langetamiseks, näiteks kinnipeetud tellimissoovide aktsepteerimiseks "
+"või nendest\n"
+"keeldumiseks ning kinnipeetud kirjade järjekorrast eemaldamiseks. "
+"Iseenesestmõisteavaltt saavad\n"
+"neid toiminguid teostada ka <em>listi haldurid</em>.\n"
+"\n"
+"<p>Listi haldamisega seotud ülesannete jaotamiseks listi haldurite ja "
+"moderaarite vahel\n"
+"sisestage allpool asuvatesse tekstiväljadesse moderaatori parool ning\n"
+"sisestage moderaatorite meiliaadressid\n"
+"<a href=\"%(adminurl)s/general\">listi üldseadistuste lehel</a>."
+
+#: Mailman/Cgi/admin.py:1165
+msgid "Enter new administrator password:"
+msgstr "Sisesta uus halduri parool:"
+
+#: Mailman/Cgi/admin.py:1167
+msgid "Confirm administrator password:"
+msgstr "Kinnita halduri parooli:"
+
+#: Mailman/Cgi/admin.py:1172
+msgid "Enter new moderator password:"
+msgstr "Sisesta uus moderaatori parool:"
+
+#: Mailman/Cgi/admin.py:1174
+msgid "Confirm moderator password:"
+msgstr "Kinnita moderaatori parooli:"
+
+#: Mailman/Cgi/admin.py:1184
+msgid "Submit Your Changes"
+msgstr "Salvesta"
+
+#: Mailman/Cgi/admin.py:1207
+msgid "Moderator passwords did not match"
+msgstr "Moderaatori paroolid erinesid"
+
+#: Mailman/Cgi/admin.py:1217
+msgid "Administrator passwords did not match"
+msgstr "Halduri paroolid erinesid"
+
+#: Mailman/Cgi/admin.py:1265
+msgid "Already a member"
+msgstr "On juba tellija"
+
+#: Mailman/Cgi/admin.py:1268
+msgid "&lt;blank line&gt;"
+msgstr "&lt;tühi rida&gt;"
+
+#: Mailman/Cgi/admin.py:1269 Mailman/Cgi/admin.py:1272
+msgid "Bad/Invalid email address"
+msgstr "Vigane meiliaadress"
+
+#: Mailman/Cgi/admin.py:1275
+msgid "Hostile address (illegal characters)"
+msgstr "Keelatud märke sisaldav meiliaadress"
+
+#: Mailman/Cgi/admin.py:1281
+msgid "Successfully invited:"
+msgstr "Kutsed saadeti:"
+
+#: Mailman/Cgi/admin.py:1283
+msgid "Successfully subscribed:"
+msgstr "Lisati aadressid:"
+
+#: Mailman/Cgi/admin.py:1288
+msgid "Error inviting:"
+msgstr "Viga kutsete saatmisel:"
+
+#: Mailman/Cgi/admin.py:1290
+msgid "Error subscribing:"
+msgstr "Viga aadresside lisamisel:"
+
+#: Mailman/Cgi/admin.py:1319
+msgid "Successfully Unsubscribed:"
+msgstr "Tellimus lõpetati:"
+
+#: Mailman/Cgi/admin.py:1324
+msgid "Cannot unsubscribe non-members:"
+msgstr "Aadresse, mis ei ole listi tellijate nimekirjas, ei saa ka eemaldada:"
+
+#: Mailman/Cgi/admin.py:1336
+msgid "Bad moderation flag value"
+msgstr "Vigane modereerimislipu väärtus"
+
+#: Mailman/Cgi/admin.py:1357
+msgid "Not subscribed"
+msgstr "ei liidetud"
+
+#: Mailman/Cgi/admin.py:1360
+msgid "Ignoring changes to deleted member: %(user)s"
+msgstr "kustutatud liikmele %(user)s rakendatud muudatusi ignoreeriti"
+
+#: Mailman/Cgi/admin.py:1400
+msgid "Successfully Removed:"
+msgstr "Edukalt eemaldatud:"
+
+#: Mailman/Cgi/admin.py:1404
+msgid "Error Unsubscribing:"
+msgstr "Viga eemaldamisel:"
+
+#: Mailman/Cgi/admindb.py:159 Mailman/Cgi/admindb.py:167
+msgid "%(realname)s Administrative Database"
+msgstr "%(realname)s administratiivtaotluste andmebaas"
+
+#: Mailman/Cgi/admindb.py:162
+msgid "%(realname)s Administrative Database Results"
+msgstr "%(realname)s administratiivtaotluste andmebaas"
+
+#: Mailman/Cgi/admindb.py:170
+msgid "There are no pending requests."
+msgstr "Hetkel pole ühtegi taotlust."
+
+#: Mailman/Cgi/admindb.py:173
+msgid "Click here to reload this page."
+msgstr "Kliki siia selle lehe uuesti laadimiseks"
+
+#: Mailman/Cgi/admindb.py:184
+msgid "Detailed instructions for the administrative database"
+msgstr "administratiivtaotluste andmebaasi abiinfo"
+
+#: Mailman/Cgi/admindb.py:188
+msgid "Administrative requests for mailing list:"
+msgstr "Administratiivtaotlused listile:"
+
+#: Mailman/Cgi/admindb.py:191 Mailman/Cgi/admindb.py:234
+msgid "Submit All Data"
+msgstr "Salvesta kõik valikud"
+
+#: Mailman/Cgi/admindb.py:204
+msgid "all of %(esender)s's held messages."
+msgstr "kõik %(esender)s kinnipeetud listikirjad."
+
+#: Mailman/Cgi/admindb.py:209
+msgid "a single held message."
+msgstr "kinnipeetud kiri."
+
+#: Mailman/Cgi/admindb.py:214
+msgid "all held messages."
+msgstr "kõik kinnipeetud kirjad."
+
+#: Mailman/Cgi/admindb.py:249
+msgid "Mailman Administrative Database Error"
+msgstr "Mailmani administratiivtaotluste andmebaasi viga"
+
+#: Mailman/Cgi/admindb.py:254
+msgid "list of available mailing lists."
+msgstr "listide nimekiri."
+
+#: Mailman/Cgi/admindb.py:255
+msgid "You must specify a list name. Here is the %(link)s"
+msgstr "Peate valima listi nime. Siin on %(link)s"
+
+#: Mailman/Cgi/admindb.py:268
+msgid "Subscription Requests"
+msgstr "Tellimissoovid"
+
+#: Mailman/Cgi/admindb.py:270
+msgid "Address/name"
+msgstr "Aadress/nimi"
+
+#: Mailman/Cgi/admindb.py:271 Mailman/Cgi/admindb.py:320
+msgid "Your decision"
+msgstr "Otsus"
+
+#: Mailman/Cgi/admindb.py:272 Mailman/Cgi/admindb.py:321
+msgid "Reason for refusal"
+msgstr "Keeldumise põhjus"
+
+#: Mailman/Cgi/admindb.py:289 Mailman/Cgi/admindb.py:346
+#: Mailman/Cgi/admindb.py:389 Mailman/Cgi/admindb.py:612
+msgid "Defer"
+msgstr "Otsustan hiljem"
+
+#: Mailman/Cgi/admindb.py:290 Mailman/Cgi/admindb.py:347
+#: Mailman/Cgi/admindb.py:612
+msgid "Approve"
+msgstr "Nõustun"
+
+#: Mailman/Cgi/admindb.py:291 Mailman/Cgi/admindb.py:348
+#: Mailman/Cgi/admindb.py:389 Mailman/Cgi/admindb.py:612
+#: Mailman/Gui/ContentFilter.py:37 Mailman/Gui/Privacy.py:207
+#: Mailman/Gui/Privacy.py:281
+msgid "Reject"
+msgstr "Keeldun"
+
+#: Mailman/Cgi/admindb.py:292 Mailman/Cgi/admindb.py:349
+#: Mailman/Cgi/admindb.py:389 Mailman/Cgi/admindb.py:612
+#: Mailman/Gui/ContentFilter.py:37 Mailman/Gui/Privacy.py:207
+#: Mailman/Gui/Privacy.py:281
+msgid "Discard"
+msgstr "Tühistan"
+
+#: Mailman/Cgi/admindb.py:300
+msgid "Permanently ban from this list"
+msgstr "Blokeerida see aadress alatiseks listist"
+
+#: Mailman/Cgi/admindb.py:319
+msgid "User address/name"
+msgstr "Kasutaja aadress/nimi"
+
+#: Mailman/Cgi/admindb.py:359
+msgid "Unsubscription Requests"
+msgstr "Tellimuse lõetamise soovid"
+
+#: Mailman/Cgi/admindb.py:382 Mailman/Cgi/admindb.py:596
+msgid "From:"
+msgstr "Kellelt:"
+
+#: Mailman/Cgi/admindb.py:385
+msgid "Action to take on all these held messages:"
+msgstr "Mida kõigi nende kinni peetud kirjadega teha?"
+
+#: Mailman/Cgi/admindb.py:389 Mailman/Gui/Privacy.py:281
+msgid "Accept"
+msgstr "Nõustun"
+
+#: Mailman/Cgi/admindb.py:397
+msgid "Preserve messages for the site administrator"
+msgstr "Konserveeri teated listserveri halduri jaoks."
+
+#: Mailman/Cgi/admindb.py:403
+msgid "Forward messages (individually) to:"
+msgstr "Edasta kirjad aadressile:"
+
+#: Mailman/Cgi/admindb.py:421
+msgid "Clear this member's <em>moderate</em> flag"
+msgstr "Eemalda selle liikme <em>modereerimis</em> lipp"
+
+#: Mailman/Cgi/admindb.py:425
+msgid "<em>The sender is now a member of this list</em>"
+msgstr "<em>Saatja on nüüd selle listi tellija</em>"
+
+#: Mailman/Cgi/admindb.py:434
+msgid "Add <b>%(esender)s</b> to a sender filter"
+msgstr "Lisa <b>%(esender)s</b> saatjate filtrisse"
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Accepts"
+msgstr "Lubab listi"
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Discards"
+msgstr "Kustutab"
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Holds"
+msgstr "Peab kinni"
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Rejects"
+msgstr "Keeldub"
+
+#: Mailman/Cgi/admindb.py:448
+msgid ""
+"Ban <b>%(esender)s</b> from ever subscribing to this\n"
+" mailing list"
+msgstr ""
+"Ära luba liikmel aadressiga <b>%(esender)s</b> seda listi\n"
+" enam tellida"
+
+#: Mailman/Cgi/admindb.py:453
+msgid ""
+"Click on the message number to view the individual\n"
+" message, or you can "
+msgstr "Klikkige kirja numbril kirja sisuga tutvumiseks, või"
+
+#: Mailman/Cgi/admindb.py:455
+msgid "view all messages from %(esender)s"
+msgstr "vaadake kõiki kirju aadressilt %(esender)s"
+
+#: Mailman/Cgi/admindb.py:475 Mailman/Cgi/admindb.py:599
+msgid "Subject:"
+msgstr "Teema:"
+
+#: Mailman/Cgi/admindb.py:478
+msgid " bytes"
+msgstr " baiti"
+
+#: Mailman/Cgi/admindb.py:478
+msgid "Size:"
+msgstr "Suurus:"
+
+#: Mailman/Cgi/admindb.py:482 Mailman/Handlers/Decorate.py:50
+#: Mailman/Handlers/Scrubber.py:226 Mailman/Handlers/Scrubber.py:227
+msgid "not available"
+msgstr "pole teada"
+
+#: Mailman/Cgi/admindb.py:483 Mailman/Cgi/admindb.py:601
+msgid "Reason:"
+msgstr "Põhjus:"
+
+#: Mailman/Cgi/admindb.py:487 Mailman/Cgi/admindb.py:605
+msgid "Received:"
+msgstr "Received:"
+
+#: Mailman/Cgi/admindb.py:545
+msgid "Posting Held for Approval"
+msgstr "Kiri on läbivaatuseks kinni peetud"
+
+#: Mailman/Cgi/admindb.py:547
+msgid " (%(count)d of %(total)d)"
+msgstr " (%(count)d / %(total)d)"
+
+#: Mailman/Cgi/admindb.py:558
+msgid "<em>Message with id #%(id)d was lost."
+msgstr "<em>Kiri numbriga #%(id)d on kustunud."
+
+#: Mailman/Cgi/admindb.py:567
+msgid "<em>Message with id #%(id)d is corrupted."
+msgstr "<em>Kiri numbriga #%(id)d on vigane."
+
+#: Mailman/Cgi/admindb.py:618
+msgid "Action:"
+msgstr "Tegevus:"
+
+#: Mailman/Cgi/admindb.py:622
+msgid "Preserve message for site administrator"
+msgstr "JKonserveeri teade listserveri halduri jaoks"
+
+#: Mailman/Cgi/admindb.py:626
+msgid "Additionally, forward this message to: "
+msgstr "ja saada ka aadressile: "
+
+#: Mailman/Cgi/admindb.py:630
+msgid "[No explanation given]"
+msgstr "[Põhjendus puudub]"
+
+#: Mailman/Cgi/admindb.py:632
+msgid "If you reject this post,<br>please explain (optional):"
+msgstr ""
+"Kui lükkate selle kirja tagasi,<br>siis kirjutage põhjus siia (võib ka mitte "
+"põhjendada): "
+
+#: Mailman/Cgi/admindb.py:638
+msgid "Message Headers:"
+msgstr "Kirja päised:"
+
+#: Mailman/Cgi/admindb.py:643
+msgid "Message Excerpt:"
+msgstr "Väljavõte kirjast:"
+
+#: Mailman/Cgi/admindb.py:676 Mailman/Deliverer.py:124
+msgid "No reason given"
+msgstr "Põhjus puudub"
+
+#: Mailman/Cgi/admindb.py:737 Mailman/ListAdmin.py:308
+#: Mailman/ListAdmin.py:429
+msgid "[No reason given]"
+msgstr "[Põhjus puudub]"
+
+#: Mailman/Cgi/admindb.py:766
+msgid "Database Updated..."
+msgstr "Andmebaas uuendatud..."
+
+#: Mailman/Cgi/admindb.py:769
+msgid " is already a member"
+msgstr " on juba liige"
+
+#: Mailman/Cgi/confirm.py:69
+msgid "Confirmation string was empty."
+msgstr "Kinnitusstring oli tühi."
+
+#: Mailman/Cgi/confirm.py:89
+msgid ""
+"<b>Invalid confirmation string:</b>\n"
+" %(safecookie)s.\n"
+"\n"
+" <p>Note that confirmation strings expire approximately\n"
+" %(days)s days after the initial subscription request. If your\n"
+" confirmation has expired, please try to re-submit your subscription.\n"
+" Otherwise, <a href=\"%(confirmurl)s\">re-enter</a> your confirmation\n"
+" string."
+msgstr ""
+"<b>Vigane kinnituskood:<b>:</b>\n"
+" %(safecookie)s.\n"
+"\n"
+" <p>Pea meeles, et kinnituskoodid aeguvad umbes\n"
+" %(days)s päeva jooksul peale tellimuse esitamist. Kui sinu\n"
+" kinnituskood on aegunud, siis proovi oma tellimus uuesti saata.\n"
+" Vastasel korral, <a href=\"%(confirmurl)s\">sisestage</a> oma "
+"kinnituskood\n"
+" uuesti."
+
+#: Mailman/Cgi/confirm.py:122
+msgid ""
+"The address requesting unsubscription is not\n"
+" a member of the mailing list. Perhaps you have already "
+"been\n"
+" unsubscribed, e.g. by the list administrator?"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:138
+msgid ""
+"The address requesting to be changed has\n"
+" been subsequently unsubscribed. This request has been\n"
+" cancelled."
+msgstr ""
+"Soovisite tellimuse aadressi muuta, kuid vana aadress\n"
+"on juba tellijate nimekirjast eemaldatud. Aadressi vahetuse\n"
+"soov on seetõttu tühistatud. "
+
+#: Mailman/Cgi/confirm.py:157
+msgid "System error, bad content: %(content)s"
+msgstr "Viga programmis, vigased andmed: %(content)s"
+
+#: Mailman/Cgi/confirm.py:167
+msgid "Bad confirmation string"
+msgstr "Vigane kinnituskood"
+
+#: Mailman/Cgi/confirm.py:175
+msgid "Enter confirmation cookie"
+msgstr "Sisesta kinnituskood"
+
+#: Mailman/Cgi/confirm.py:188
+msgid ""
+"Please enter the confirmation string\n"
+" (i.e. <em>cookie</em>) that you received in your email message, in the "
+"box\n"
+" below. Then hit the <em>Submit</em> button to proceed to the next\n"
+" confirmation step."
+msgstr ""
+"Sisesta kinnituskood\n"
+" (s.t. <em>kood</em>) mille meiliga said, allpool olevasse tekstikasti\n"
+"ja kliki <em>Saada</em> nuppu."
+
+#: Mailman/Cgi/confirm.py:193
+msgid "Confirmation string:"
+msgstr "Kinnituskood:"
+
+#: Mailman/Cgi/confirm.py:195
+msgid "Submit"
+msgstr "Saada"
+
+#: Mailman/Cgi/confirm.py:210
+msgid "Confirm subscription request"
+msgstr "Kinnita tellimust"
+
+#: Mailman/Cgi/confirm.py:227
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" subscription request to the mailing list <em>%(listname)s</em>. Your\n"
+" subscription settings are shown below; make any necessary changes and "
+"hit\n"
+" <em>Subscribe</em> to complete the confirmation process. Once you've\n"
+" confirmed your subscription request, you will be shown your account\n"
+" options page which you can use to further customize your membership\n"
+" options.\n"
+"\n"
+" <p>Note: your password will be emailed to you once your subscription is\n"
+" confirmed. You can change it by visiting your personal options page.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this subscription\n"
+" request."
+msgstr ""
+"Enne, kui sinu <em>%(listname)s</em> listi tellimus jõustub, pead\n"
+" oma tellimusti kinnitama. Sinu tellimuse andmed on näha allpool,\n"
+" vajadusel saad neid ka muuta. Kui andmed on õiged, kliki\n"
+" <em>Telli</em>. Peale tellimuse kinnitamist näidatakse sulle\n"
+"sinu personaalset seadistuste lehte, mille kaudu saad oma tellimuse\n"
+"omadusi muuta.\n"
+"\n"
+" <p>NB: Sinu parool saadetakse sulle meiliga kohe peale tellimuse "
+"kinnitamist. Parooli saad muuta oma personaalsete seadistuste lehe kaudu.\n"
+"\n"
+" <p>Kliki <em>Katkesta</em> nupule tellimuse tühistamiseks."
+
+#: Mailman/Cgi/confirm.py:242
+msgid ""
+"Your confirmation is required in order to continue with\n"
+" the subscription request to the mailing list <em>%(listname)s</em>.\n"
+" Your subscription settings are shown below; make any necessary "
+"changes\n"
+" and hit <em>Subscribe to list ...</em> to complete the confirmation\n"
+" process. Once you've confirmed your subscription request, the\n"
+" moderator must approve or reject your membership request. You will\n"
+" receive notice of their decision.\n"
+"\n"
+" <p>Note: your password will be emailed to you once your "
+"subscription\n"
+" is confirmed. You can change it by visiting your personal options\n"
+" page.\n"
+"\n"
+" <p>Or, if you've changed your mind and do not want to subscribe to\n"
+" this mailing list, you can hit <em>Cancel my subscription\n"
+" request</em>."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:260
+msgid "Your email address:"
+msgstr "Sinu meiliaadress:"
+
+#: Mailman/Cgi/confirm.py:261
+msgid "Your real name:"
+msgstr "Sinu pärisnimi:"
+
+#: Mailman/Cgi/confirm.py:270
+msgid "Receive digests?"
+msgstr "Kas soovid referaate?"
+
+#: Mailman/Cgi/confirm.py:279
+msgid "Preferred language:"
+msgstr "Eelistatud keel:"
+
+#: Mailman/Cgi/confirm.py:284
+msgid "Cancel my subscription request"
+msgstr "Katkesta minu tellimuse soov"
+
+#: Mailman/Cgi/confirm.py:285
+msgid "Subscribe to list %(listname)s"
+msgstr "Telli list %(listname)s"
+
+#: Mailman/Cgi/confirm.py:295
+msgid "You have canceled your subscription request."
+msgstr "Tühistasid oma tellimuse."
+
+#: Mailman/Cgi/confirm.py:329
+msgid "Awaiting moderator approval"
+msgstr "Ootab moderaatori otsust"
+
+#: Mailman/Cgi/confirm.py:332
+msgid ""
+" You have successfully confirmed your subscription request to "
+"the\n"
+" mailing list %(listname)s, however final approval is required "
+"from\n"
+" the list moderator before you will be subscribed. Your request\n"
+" has been forwarded to the list moderator, and you will be "
+"notified\n"
+" of the moderator's decision."
+msgstr ""
+" Kinnitasite oma %(listname)s listi tellimust, kuid enne "
+"tellimuse\n"
+"jõustmist vaatab selle listi moderaator sinu soovi veelkord üle\n"
+"Moderaatori otsusest teavitatakse sind meili teel. "
+
+#: Mailman/Cgi/confirm.py:339 Mailman/Cgi/confirm.py:394
+#: Mailman/Cgi/confirm.py:482 Mailman/Cgi/confirm.py:705
+msgid ""
+"Invalid confirmation string. It is\n"
+" possible that you are attempting to confirm a request for an\n"
+" address that has already been unsubscribed."
+msgstr ""
+"Vigane kinnituskood. Selle üks võimalikke põhjuseid on katse \n"
+" kinnitada tellimust, mis on juba lõpetatud. "
+
+#: Mailman/Cgi/confirm.py:343
+msgid "You are already a member of this mailing list!"
+msgstr "See list on sul juba tellitud."
+
+#: Mailman/Cgi/confirm.py:350
+msgid "Subscription request confirmed"
+msgstr "Tellimus kinnitati"
+
+#: Mailman/Cgi/confirm.py:354
+msgid ""
+" You have successfully confirmed your subscription request for\n"
+" \"%(addr)s\" to the %(listname)s mailing list. A separate\n"
+" confirmation message will be sent to your email address, along\n"
+" with your password, and other useful information and links.\n"
+"\n"
+" <p>You can now\n"
+" <a href=\"%(optionsurl)s\">proceed to your membership login\n"
+" page</a>."
+msgstr ""
+" Kinnitasid oma %(listname)s listi tellimust aadressile\n"
+" \"%(addr)s\". Selle aadressile saadetakse kohe ka vastav\n"
+" meil, mis sisaldab sinu parooli ning abiinfot listi kasutamise\n"
+" kohta.\n"
+" <p>Personaalsete seadistuste muutmiseks <a href=\"%"
+"(optionsurl)s\">logi sisse</a>."
+
+#: Mailman/Cgi/confirm.py:372
+msgid "You have canceled your unsubscription request."
+msgstr "Sa tühistasid oma tellimuse lõpetamise nõude."
+
+#: Mailman/Cgi/confirm.py:400
+msgid "Unsubscription request confirmed"
+msgstr "Tellimuse lõpetamine on kinnitatud"
+
+#: Mailman/Cgi/confirm.py:404
+msgid ""
+" You have successfully unsubscribed from the %(listname)s "
+"mailing\n"
+" list. You can now <a href=\"%(listinfourl)s\">visit the list's "
+"main\n"
+" information page</a>."
+msgstr ""
+"Sinu %(listname)s tellimus on lõpetatud.\n"
+"<a href=\"%(listinfourl)s\">Listi üldinfo leht.</a>"
+
+#: Mailman/Cgi/confirm.py:415
+msgid "Confirm unsubscription request"
+msgstr "Kinnita tellimuse lõpetamist"
+
+#: Mailman/Cgi/confirm.py:430 Mailman/Cgi/confirm.py:519
+msgid "<em>Not available</em>"
+msgstr "<em>pole teada</em>"
+
+#: Mailman/Cgi/confirm.py:433
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" unsubscription request from the mailing list <em>%(listname)s</em>. "
+"You\n"
+" are currently subscribed with\n"
+"\n"
+" <ul><li><b>Real name:</b> %(fullname)s\n"
+" <li><b>Email address:</b> %(addr)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Unsubscribe</em> button below to complete the confirmation\n"
+" process.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this unsubscription\n"
+" request."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:449 Mailman/Cgi/options.py:660
+#: Mailman/Cgi/options.py:801 Mailman/Cgi/options.py:811
+msgid "Unsubscribe"
+msgstr "Lõpeta tellimus"
+
+#: Mailman/Cgi/confirm.py:450 Mailman/Cgi/confirm.py:548
+msgid "Cancel and discard"
+msgstr "Tühista"
+
+#: Mailman/Cgi/confirm.py:460
+msgid "You have canceled your change of address request."
+msgstr "Sa katkestasid oma aadressivahetuse nõude."
+
+#: Mailman/Cgi/confirm.py:488
+msgid "Change of address request confirmed"
+msgstr "Aadressi vahetus on kinnitatud."
+
+#: Mailman/Cgi/confirm.py:492
+msgid ""
+" You have successfully changed your address on the %(listname)s\n"
+" mailing list from <b>%(oldaddr)s</b> to <b>%(newaddr)s</b>. "
+"You\n"
+" can now <a href=\"%(optionsurl)s\">proceed to your membership\n"
+" login page</a>."
+msgstr ""
+"Sinu aadress listis %(listname)s on edukalt vahetatud. Vana aadress oli <b>%"
+"(oldaddr)s</b>, uus aadress on <b>%(newaddr)s</b>. Nüüd on sul võimalik <a "
+"href=\"%(optionsurl)s\">muuta oma tellimuse profiili</a>."
+
+#: Mailman/Cgi/confirm.py:504
+msgid "Confirm change of address request"
+msgstr "Kinnita aadressi vahetust"
+
+#: Mailman/Cgi/confirm.py:523
+msgid "globally"
+msgstr "globaalselt"
+
+#: Mailman/Cgi/confirm.py:526
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" change of address request for the mailing list <em>%(listname)s</em>. "
+"You\n"
+" are currently subscribed with\n"
+"\n"
+" <ul><li><b>Real name:</b> %(fullname)s\n"
+" <li><b>Old email address:</b> %(oldaddr)s\n"
+" </ul>\n"
+"\n"
+" and you have requested to %(globallys)s change your email address to\n"
+"\n"
+" <ul><li><b>New email address:</b> %(newaddr)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Change address</em> button below to complete the "
+"confirmation\n"
+" process.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this change of address\n"
+" request."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:547
+msgid "Change address"
+msgstr "Vaheta aadressi"
+
+#: Mailman/Cgi/confirm.py:557 Mailman/Cgi/confirm.py:670
+msgid "Continue awaiting approval"
+msgstr "Jätka ootamist."
+
+#: Mailman/Cgi/confirm.py:564
+msgid ""
+"Okay, the list moderator will still have the\n"
+" opportunity to approve or reject this message."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:590
+msgid "Sender discarded message via web."
+msgstr "Saatja tühistas kirja."
+
+#: Mailman/Cgi/confirm.py:592
+msgid ""
+"The held message with the Subject:\n"
+" header <em>%(subject)s</em> could not be found. The most "
+"likely\n"
+" reason for this is that the list moderator has already approved "
+"or\n"
+" rejected the message. You were not able to cancel it in\n"
+" time."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:600
+msgid "Posted message canceled"
+msgstr "Saadetud kiri tühistati"
+
+#: Mailman/Cgi/confirm.py:603
+msgid ""
+" You have successfully canceled the posting of your message with\n"
+" the Subject: header <em>%(subject)s</em> to the mailing list\n"
+" %(listname)s."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:614
+msgid "Cancel held message posting"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:639
+msgid ""
+"The held message you were referred to has\n"
+" already been handled by the list administrator."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:653
+msgid ""
+"Your confirmation is required in order to cancel the\n"
+" posting of your message to the mailing list <em>%(listname)s</em>:\n"
+"\n"
+" <ul><li><b>Sender:</b> %(sender)s\n"
+" <li><b>Subject:</b> %(subject)s\n"
+" <li><b>Reason:</b> %(reason)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Cancel posting</em> button to discard the posting.\n"
+"\n"
+" <p>Or hit the <em>Continue awaiting approval</em> button to continue to\n"
+" allow the list moderator to approve or reject the message."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:669
+msgid "Cancel posting"
+msgstr "Loobu postitusest"
+
+#: Mailman/Cgi/confirm.py:681
+msgid ""
+"You have canceled the re-enabling of your membership. If\n"
+" we continue to receive bounces from your address, it could be deleted "
+"from\n"
+" this mailing list."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:711
+msgid "Membership re-enabled."
+msgstr "Tellimus on taastatud."
+
+#: Mailman/Cgi/confirm.py:715
+msgid ""
+" You have successfully re-enabled your membership in the\n"
+" %(listname)s mailing list. You can now <a\n"
+" href=\"%(optionsurl)s\">visit your member options page</a>.\n"
+" "
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:727
+msgid "Re-enable mailing list membership"
+msgstr "Taasta listi tellimus"
+
+#: Mailman/Cgi/confirm.py:744
+msgid ""
+"We're sorry, but you have already been unsubscribed\n"
+" from this mailing list. To re-subscribe, please visit the\n"
+" <a href=\"%(listinfourl)s\">list information page</a>."
+msgstr ""
+"Sorry, aga sinu listi tellimus on juba lõpetatud. Uue\n"
+" tellimuse saate teha <a href=\"%(listinfourl)s\">list infolehe</a> kaudu."
+
+#: Mailman/Cgi/confirm.py:758
+msgid "<em>not available</em>"
+msgstr "<em> pole teada</em>"
+
+#: Mailman/Cgi/confirm.py:762
+msgid ""
+"Your membership in the %(realname)s mailing list is\n"
+" currently disabled due to excessive bounces. Your confirmation is\n"
+" required in order to re-enable delivery to your address. We have the\n"
+" following information on file:\n"
+"\n"
+" <ul><li><b>Member address:</b> %(member)s\n"
+" <li><b>Member name:</b> %(username)s\n"
+" <li><b>Last bounce received on:</b> %(date)s\n"
+" <li><b>Approximate number of days before you are permanently "
+"removed\n"
+" from this list:</b> %(daysleft)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Re-enable membership</em> button to resume receiving "
+"postings\n"
+" from the mailing list. Or hit the <em>Cancel</em> button to defer\n"
+" re-enabling your membership.\n"
+" "
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:782
+msgid "Re-enable membership"
+msgstr "Taasta tellimus"
+
+#: Mailman/Cgi/confirm.py:783
+msgid "Cancel"
+msgstr "Tühista"
+
+#: Mailman/Cgi/create.py:48 Mailman/Cgi/rmlist.py:48
+msgid "Bad URL specification"
+msgstr "Vigane URL"
+
+#: Mailman/Cgi/create.py:63 Mailman/Cgi/rmlist.py:176
+msgid "Return to the "
+msgstr "Tagasi "
+
+#: Mailman/Cgi/create.py:65 Mailman/Cgi/rmlist.py:178
+msgid "general list overview"
+msgstr "listi üldinfo lehele"
+
+#: Mailman/Cgi/create.py:66 Mailman/Cgi/rmlist.py:179
+msgid "<br>Return to the "
+msgstr "<br>Tagasi "
+
+#: Mailman/Cgi/create.py:68 Mailman/Cgi/rmlist.py:181
+msgid "administrative list overview"
+msgstr "listi administratiivlehele."
+
+#: Mailman/Cgi/create.py:101
+msgid "List name must not include \"@\": %(listname)s"
+msgstr "Listi nimi ei tohi sisaldada \"@\"-i: %(listname)s"
+
+#: Mailman/Cgi/create.py:107 Mailman/Cgi/create.py:185 bin/newlist:134
+#: bin/newlist:168
+msgid "List already exists: %(listname)s"
+msgstr "Sellise nimega list on juba olemas: %(listname)s"
+
+#: Mailman/Cgi/create.py:111
+msgid "You forgot to enter the list name"
+msgstr "Sa ei sisestanud listi nime"
+
+#: Mailman/Cgi/create.py:115
+msgid "You forgot to specify the list owner"
+msgstr "Sa ei sisestanud listi omanikku"
+
+#: Mailman/Cgi/create.py:122
+msgid ""
+"Leave the initial password (and confirmation) fields\n"
+" blank if you want Mailman to autogenerate the list\n"
+" passwords."
+msgstr ""
+"Jäta parooli (ja parooli kinnitamise) tekstikastid tühjaks, kui\n"
+" soovid, et Mailman genereeriks parooli ise. "
+
+#: Mailman/Cgi/create.py:130
+msgid "Initial list passwords do not match"
+msgstr "Paroolid ei ole ühesugused"
+
+#: Mailman/Cgi/create.py:139
+msgid "The list password cannot be empty<!-- ignore -->"
+msgstr "Listi parool ei tohi olla tühi<!-- ignore -->"
+
+#: Mailman/Cgi/create.py:151
+msgid "You are not authorized to create new mailing lists"
+msgstr "Sul puuduvad õigused uute listide loomiseks."
+
+#: Mailman/Cgi/create.py:181 bin/newlist:166
+msgid "Bad owner email address: %(s)s"
+msgstr "Halduri aadress on vigane: %(s)s"
+
+#: Mailman/Cgi/create.py:189 bin/newlist:164
+msgid "Illegal list name: %(s)s"
+msgstr "Listi nimes on viga: %(s)s"
+
+#: Mailman/Cgi/create.py:194
+msgid ""
+"Some unknown error occurred while creating the list.\n"
+" Please contact the site administrator for assistance."
+msgstr ""
+"Listi loomisel tekkis viga, mille põhjusest ma aru ei saa.\n"
+" Palun võtke ühendust listserveri halduriga."
+
+#: Mailman/Cgi/create.py:233 bin/newlist:210
+msgid "Your new mailing list: %(listname)s"
+msgstr "Sinu uus list: %(listname)s"
+
+#: Mailman/Cgi/create.py:242
+msgid "Mailing list creation results"
+msgstr "List on loodud."
+
+#: Mailman/Cgi/create.py:248
+msgid ""
+"You have successfully created the mailing list\n"
+" <b>%(listname)s</b> and notification has been sent to the list owner\n"
+" <b>%(owner)s</b>. You can now:"
+msgstr ""
+"Uus list nimega <b>%(listname)s</b> on loodud ja\n"
+" listi haldurit <b>%(owner)s</b> teavitati sellest.\n"
+" Edasised võimalikud tegevused:"
+
+#: Mailman/Cgi/create.py:252
+msgid "Visit the list's info page"
+msgstr "Listi infoleht"
+
+#: Mailman/Cgi/create.py:253
+msgid "Visit the list's admin page"
+msgstr "Listi administreerimisleht"
+
+#: Mailman/Cgi/create.py:254
+msgid "Create another list"
+msgstr "Uue listi loomine"
+
+#: Mailman/Cgi/create.py:272
+msgid "Create a %(hostname)s Mailing List"
+msgstr "Loo uus list serverisse %(hostname)s"
+
+#: Mailman/Cgi/create.py:281 Mailman/Cgi/rmlist.py:199
+#: Mailman/Gui/Bounce.py:175 Mailman/htmlformat.py:339
+msgid "Error: "
+msgstr "Viga: "
+
+#: Mailman/Cgi/create.py:283
+msgid ""
+"You can create a new mailing list by entering the\n"
+" relevant information into the form below. The name of the mailing list\n"
+" will be used as the primary address for posting messages to the list, "
+"so\n"
+" it should be lowercased. You will not be able to change this once the\n"
+" list is created.\n"
+"\n"
+" <p>You also need to enter the email address of the initial list owner.\n"
+" Once the list is created, the list owner will be given notification, "
+"along\n"
+" with the initial list password. The list owner will then be able to\n"
+" modify the password and add or remove additional list owners.\n"
+"\n"
+" <p>If you want Mailman to automatically generate the initial list admin\n"
+" password, click on `Yes' in the autogenerate field below, and leave the\n"
+" initial list password fields empty.\n"
+"\n"
+" <p>You must have the proper authorization to create new mailing lists.\n"
+" Each site should have a <em>list creator's</em> password, which you can\n"
+" enter in the field at the bottom. Note that the site administrator's\n"
+" password can also be used for authentication.\n"
+" "
+msgstr ""
+
+#: Mailman/Cgi/create.py:309
+msgid "List Identity"
+msgstr "Listi info"
+
+#: Mailman/Cgi/create.py:312
+msgid "Name of list:"
+msgstr "Listi nimi: "
+
+#: Mailman/Cgi/create.py:317
+msgid "Initial list owner address:"
+msgstr "Esialgne halduri aadress:"
+
+#: Mailman/Cgi/create.py:326
+msgid "Auto-generate initial list password?"
+msgstr "Genereerida parool automaatselt?"
+
+#: Mailman/Cgi/create.py:333
+msgid "Initial list password:"
+msgstr "Parool:"
+
+#: Mailman/Cgi/create.py:338
+msgid "Confirm initial password:"
+msgstr "Korda parooli:"
+
+#: Mailman/Cgi/create.py:348
+msgid "List Characteristics"
+msgstr "Listi seadistused"
+
+#: Mailman/Cgi/create.py:352
+msgid ""
+"Should new members be quarantined before they\n"
+" are allowed to post unmoderated to this list? Answer <em>Yes</em> to "
+"hold\n"
+" new member postings for moderator approval by default."
+msgstr ""
+
+#: Mailman/Cgi/create.py:383
+msgid ""
+"Initial list of supported languages. <p>Note that if you do not\n"
+" select at least one initial language, the list will use the server\n"
+" default language of %(deflang)s"
+msgstr ""
+
+#: Mailman/Cgi/create.py:394
+msgid "Send \"list created\" email to list owner?"
+msgstr "Saata listi haldurile \"list on loodud\" teade?"
+
+#: Mailman/Cgi/create.py:403
+msgid "List creator's (authentication) password:"
+msgstr "Listi looja (autoriseerimis) parool:"
+
+#: Mailman/Cgi/create.py:408
+msgid "Create List"
+msgstr "Loo list"
+
+#: Mailman/Cgi/create.py:409
+msgid "Clear Form"
+msgstr "Tühjenda vorm"
+
+#: Mailman/Cgi/edithtml.py:43
+msgid "General list information page"
+msgstr "Listi üldinfo leht"
+
+#: Mailman/Cgi/edithtml.py:44
+msgid "Subscribe results page"
+msgstr "Tellimuse ülevaate leht"
+
+#: Mailman/Cgi/edithtml.py:45
+msgid "User specific options page"
+msgstr "Tellija seadistuste leht"
+
+#: Mailman/Cgi/edithtml.py:57
+msgid "List name is required."
+msgstr "Listi nimi on puudu. "
+
+#: Mailman/Cgi/edithtml.py:97
+msgid "%(realname)s -- Edit html for %(template_info)s"
+msgstr "%(realname)s - Muuda %(template_info)s HTMLi"
+
+#: Mailman/Cgi/edithtml.py:103
+msgid "Edit HTML : Error"
+msgstr "HTMLi muutmine : Viga"
+
+#: Mailman/Cgi/edithtml.py:104
+msgid "%(safetemplatename)s: Invalid template"
+msgstr "%(safetemplatename)s: Vigane template"
+
+#: Mailman/Cgi/edithtml.py:109 Mailman/Cgi/edithtml.py:110
+msgid "%(realname)s -- HTML Page Editing"
+msgstr "%(realname)s -- HTMLi muutmine"
+
+#: Mailman/Cgi/edithtml.py:111
+msgid "Select page to edit:"
+msgstr "Vali leht muutmiseks:"
+
+#: Mailman/Cgi/edithtml.py:137
+msgid "View or edit the list configuration information."
+msgstr "Vaata või muuda listi seadistusi."
+
+#: Mailman/Cgi/edithtml.py:145
+msgid "When you are done making changes..."
+msgstr "Kui olete redigeerimise lõpetanud..."
+
+#: Mailman/Cgi/edithtml.py:146
+msgid "Submit Changes"
+msgstr "Salvesta"
+
+#: Mailman/Cgi/edithtml.py:153
+msgid "Can't have empty html page."
+msgstr "Tühi HTML leht pole lubatud."
+
+#: Mailman/Cgi/edithtml.py:154
+msgid "HTML Unchanged."
+msgstr "HTML muutmata."
+
+#: Mailman/Cgi/edithtml.py:169
+msgid "HTML successfully updated."
+msgstr "HTML salvestatud."
+
+#: Mailman/Cgi/listinfo.py:71
+msgid "%(hostname)s Mailing Lists"
+msgstr "Listid serveris %(hostname)s"
+
+#: Mailman/Cgi/listinfo.py:103
+msgid ""
+"<p>There currently are no publicly-advertised\n"
+" %(mailmanlink)s mailing lists on %(hostname)s."
+msgstr ""
+"<p>Serveris %(hostname)s ei ole ühtegi avalikku\n"
+" %(mailmanlink)s listi."
+
+#: Mailman/Cgi/listinfo.py:107
+msgid ""
+"<p>Below is a listing of all the public mailing lists on\n"
+" %(hostname)s. Click on a list name to get more information "
+"about\n"
+" the list, or to subscribe, unsubscribe, and change the "
+"preferences\n"
+" on your subscription."
+msgstr ""
+"<p>Allpool on kõigi serveris %(hostname)s asuvate listide nimekiri\n"
+". Kliki listi nimele listi kohta lähema info saamiseks, listi "
+"tellimiseks,\n"
+" tellimuse katkestamiseks või tellimuse omaduste muutmiseks."
+
+#: Mailman/Cgi/listinfo.py:113
+msgid "right"
+msgstr "right"
+
+#: Mailman/Cgi/listinfo.py:116
+msgid ""
+" To visit the general information page for an unadvertised list,\n"
+" open a URL similar to this one, but with a '/' and the %(adj)s\n"
+" list name appended.\n"
+" <p>List administrators, you can visit "
+msgstr ""
+"Nimekirjast puuduva listi üldinfo lehe vaatamiseks, lisage URLi lõppu '/' ja "
+"%(adj)s listi nimi. <p>Listihaldurid pääsevad "
+
+#: Mailman/Cgi/listinfo.py:121
+msgid "the list admin overview page"
+msgstr "selle lingi kaudu "
+
+#: Mailman/Cgi/listinfo.py:122
+msgid ""
+" to find the management interface for your list.\n"
+" <p>Send questions or comments to "
+msgstr ""
+"oma listi seadistama.\n"
+"<p>Küsimuste ja kommentaaridega pöörduge"
+
+#: Mailman/Cgi/listinfo.py:187
+msgid "Edit Options"
+msgstr "Muuda seadeid"
+
+#: Mailman/Cgi/listinfo.py:194 Mailman/Cgi/options.py:767
+#: Mailman/Cgi/roster.py:111
+msgid "View this page in"
+msgstr "Vali keel"
+
+#: Mailman/Cgi/options.py:51 Mailman/Cgi/options.py:68
+msgid "CGI script error"
+msgstr "CGI skripti viga"
+
+#: Mailman/Cgi/options.py:54
+msgid "Invalid options to CGI script."
+msgstr "CGI skriptile anti vigased argumendid."
+
+#: Mailman/Cgi/options.py:96
+msgid "No address given"
+msgstr "Aadress puudub"
+
+#: Mailman/Cgi/options.py:108 Mailman/Cgi/options.py:155
+#: Mailman/Cgi/options.py:177
+msgid "No such member: %(safeuser)s."
+msgstr "Sellist liiget pole: %(safeuser)s."
+
+#: Mailman/Cgi/options.py:150 Mailman/Cgi/options.py:160
+msgid "The confirmation email has been sent."
+msgstr "Kinnitusmeil on saadetud."
+
+#: Mailman/Cgi/options.py:171 Mailman/Cgi/options.py:183
+#: Mailman/Cgi/options.py:226
+msgid "A reminder of your password has been emailed to you."
+msgstr "Sinu parool saadeti sulle meiliga."
+
+#: Mailman/Cgi/options.py:200
+msgid "Authentication failed."
+msgstr "Autoriseerimine ebaõnnestus."
+
+#: Mailman/Cgi/options.py:232
+msgid "List subscriptions for %(user)s on %(hostname)s"
+msgstr "%(user)s listide tellimused serveris %(hostname)s"
+
+#: Mailman/Cgi/options.py:235
+msgid ""
+"Click on a link to visit your options page for the\n"
+" requested mailing list."
+msgstr ""
+
+#: Mailman/Cgi/options.py:284
+msgid "Addresses did not match!"
+msgstr "Aadressid ei olnud ühesugused!"
+
+#: Mailman/Cgi/options.py:289
+msgid "You are already using that email address"
+msgstr "Sa ju kasutad juba seda aadressi"
+
+#: Mailman/Cgi/options.py:301
+msgid ""
+"The new address you requested %(newaddr)s is already a member of the\n"
+"%(listname)s mailing list, however you have also requested a global change "
+"of\n"
+"address. Upon confirmation, any other mailing list containing the address\n"
+"%(user)s will be changed. "
+msgstr ""
+
+#: Mailman/Cgi/options.py:310
+msgid "The new address is already a member: %(newaddr)s"
+msgstr "%(newaddr)s on juba selle listi tellja."
+
+#: Mailman/Cgi/options.py:316
+msgid "Addresses may not be blank"
+msgstr "Aadressid ei tohi olla tühjad"
+
+#: Mailman/Cgi/options.py:328
+msgid "A confirmation message has been sent to %(newaddr)s. "
+msgstr "Kinnitus saadeti aadressile %(newaddr)s."
+
+#: Mailman/Cgi/options.py:337
+msgid "Bad email address provided"
+msgstr "Vigane meiliaadress"
+
+#: Mailman/Cgi/options.py:339
+msgid "Illegal email address provided"
+msgstr "Vigane meiliaadress"
+
+#: Mailman/Cgi/options.py:341
+msgid "%(newaddr)s is already a member of the list."
+msgstr "%(newaddr)s on juba tellijate nimekirjas."
+
+#: Mailman/Cgi/options.py:350
+msgid "Member name successfully changed. "
+msgstr "Tellija nimi on vahetatud. "
+
+#: Mailman/Cgi/options.py:361
+msgid "Passwords may not be blank"
+msgstr "Paroolid ei tohi olla tühjad"
+
+#: Mailman/Cgi/options.py:366
+msgid "Passwords did not match!"
+msgstr "Paroolid ei olnud ühesugused!"
+
+#: Mailman/Cgi/options.py:381 Mailman/Commands/cmd_password.py:79
+#: Mailman/Commands/cmd_password.py:105
+msgid "Password successfully changed."
+msgstr "Parool on edukalt vahetatud."
+
+#: Mailman/Cgi/options.py:390
+msgid ""
+"You must confirm your unsubscription request by turning\n"
+" on the checkbox below the <em>Unsubscribe</em> button. You\n"
+" have not been unsubscribed!"
+msgstr ""
+
+#: Mailman/Cgi/options.py:422
+msgid "Unsubscription results"
+msgstr "Tellimuse lõpetamine"
+
+#: Mailman/Cgi/options.py:426
+msgid ""
+"Your unsubscription request has been received and\n"
+" forwarded on to the list moderators for approval. You will\n"
+" receive notification once the list moderators have made their\n"
+" decision."
+msgstr ""
+
+#: Mailman/Cgi/options.py:431
+msgid ""
+"You have been successfully unsubscribed from the\n"
+" mailing list %(fqdn_listname)s. If you were receiving digest\n"
+" deliveries you may get one more digest. If you have any "
+"questions\n"
+" about your unsubscription, please contact the list owners at\n"
+" %(owneraddr)s."
+msgstr ""
+
+#: Mailman/Cgi/options.py:582
+msgid ""
+"The list administrator has disabled digest delivery for\n"
+" this list, so your delivery option has not been set. However "
+"your\n"
+" other options have been set successfully."
+msgstr ""
+
+#: Mailman/Cgi/options.py:586
+msgid ""
+"The list administrator has disabled non-digest delivery\n"
+" for this list, so your delivery option has not been set. "
+"However\n"
+" your other options have been set successfully."
+msgstr ""
+
+#: Mailman/Cgi/options.py:590
+msgid "You have successfully set your options."
+msgstr "Sinu seadistused on salvestatud."
+
+#: Mailman/Cgi/options.py:593
+msgid "You may get one last digest."
+msgstr "Võimalik, et saate veel ühe viimase referaadi."
+
+#: Mailman/Cgi/options.py:662
+msgid "<em>Yes, I really want to unsubscribe</em>"
+msgstr "<em>Jah, ma tahan tellimust katkestada</em>"
+
+#: Mailman/Cgi/options.py:666
+msgid "Change My Password"
+msgstr "Vaheta parooli"
+
+#: Mailman/Cgi/options.py:669
+msgid "List my other subscriptions"
+msgstr "Näita mulle mu teisi tellimusi"
+
+#: Mailman/Cgi/options.py:675
+msgid "Email My Password To Me"
+msgstr "Meili mulle mu parool"
+
+#: Mailman/Cgi/options.py:677
+msgid "password"
+msgstr "parool"
+
+#: Mailman/Cgi/options.py:679
+msgid "Log out"
+msgstr "Logi välja"
+
+#: Mailman/Cgi/options.py:681
+msgid "Submit My Changes"
+msgstr "Salvesta"
+
+#: Mailman/Cgi/options.py:693
+msgid "days"
+msgstr "päeva"
+
+#: Mailman/Cgi/options.py:695
+msgid "day"
+msgstr "päev"
+
+#: Mailman/Cgi/options.py:696
+msgid "%(days)d %(units)s"
+msgstr "%(days)d %(units)s"
+
+#: Mailman/Cgi/options.py:702
+msgid "Change My Address and Name"
+msgstr "Muuda minu aadressi ja nime"
+
+#: Mailman/Cgi/options.py:726
+msgid "<em>No topics defined</em>"
+msgstr "<em>Ühtegi teemat pole määratud</em>"
+
+#: Mailman/Cgi/options.py:734
+msgid ""
+"\n"
+"You are subscribed to this list with the case-preserved address\n"
+"<em>%(cpuser)s</em>."
+msgstr ""
+"\n"
+"See list on teil tellitud järgmise tõstutundliku (??) aadressiga\n"
+"<em>%(cpuser)s</em>."
+
+#: Mailman/Cgi/options.py:748
+msgid "%(realname)s list: member options login page"
+msgstr "List %(realname)s: Logi sisse"
+
+#: Mailman/Cgi/options.py:749
+msgid "email address and "
+msgstr "meiliaadress ja "
+
+#: Mailman/Cgi/options.py:751
+msgid "%(realname)s list: member options for user %(user)s"
+msgstr ""
+
+#: Mailman/Cgi/options.py:777
+msgid ""
+"In order to change your membership option, you must\n"
+" first log in by giving your %(extra)smembership password in the section\n"
+" below. If you don't remember your membership password, you can have it\n"
+" emailed to you by clicking on the button below. If you just want to\n"
+" unsubscribe from this list, click on the <em>Unsubscribe</em> button and "
+"a\n"
+" confirmation message will be sent to you.\n"
+"\n"
+" <p><strong><em>Important:</em></strong> From this point on, you must "
+"have\n"
+" cookies enabled in your browser, otherwise none of your changes will "
+"take\n"
+" effect.\n"
+" "
+msgstr ""
+
+#: Mailman/Cgi/options.py:791
+msgid "Email address:"
+msgstr "E-posti aadress:"
+
+#: Mailman/Cgi/options.py:795
+msgid "Password:"
+msgstr "Parool:"
+
+#: Mailman/Cgi/options.py:797
+msgid "Log in"
+msgstr "Logi sisse"
+
+#: Mailman/Cgi/options.py:805
+msgid ""
+"By clicking on the <em>Unsubscribe</em> button, a\n"
+" confirmation message will be emailed to you. This message will have a\n"
+" link that you should click on to complete the removal process (you can\n"
+" also confirm by email; see the instructions in the confirmation\n"
+" message)."
+msgstr ""
+
+#: Mailman/Cgi/options.py:813
+msgid "Password reminder"
+msgstr "Parooli meeldetuletus"
+
+#: Mailman/Cgi/options.py:817
+msgid ""
+"By clicking on the <em>Remind</em> button, your\n"
+" password will be emailed to you."
+msgstr ""
+"Klikk nupule <em>Tuleta meelde</em> saadab sulle\n"
+"sinu parooli meiliga."
+
+#: Mailman/Cgi/options.py:820
+msgid "Remind"
+msgstr "Tuleta meelde"
+
+#: Mailman/Cgi/options.py:920
+msgid "<missing>"
+msgstr "<puudub>"
+
+#: Mailman/Cgi/options.py:931
+msgid "Requested topic is not valid: %(topicname)s"
+msgstr "Soovitud teema on vigane: %(topicname)s"
+
+#: Mailman/Cgi/options.py:936
+msgid "Topic filter details"
+msgstr "Teemafiltri info"
+
+#: Mailman/Cgi/options.py:939
+msgid "Name:"
+msgstr "Nimi:"
+
+#: Mailman/Cgi/options.py:941
+msgid "Pattern (as regexp):"
+msgstr "Mall (regulaaravaldis):"
+
+#: Mailman/Cgi/private.py:61
+msgid "Private Archive Error"
+msgstr "Privaatarhiivi viga"
+
+#: Mailman/Cgi/private.py:62
+msgid "You must specify a list."
+msgstr "Peate valima listi."
+
+#: Mailman/Cgi/private.py:99
+msgid "Private Archive Error - %(msg)s"
+msgstr "Privaatarhiivi viga - %(msg)s"
+
+#: Mailman/Cgi/private.py:154
+msgid "Private archive file not found"
+msgstr "Privaatarhiivi faili ei leitud"
+
+#: Mailman/Cgi/rmlist.py:81
+msgid "You're being a sneaky list owner!"
+msgstr "Kanavaras!"
+
+#: Mailman/Cgi/rmlist.py:119
+msgid "You are not authorized to delete this mailing list"
+msgstr "Teil puuduvad õigused selle listi kustutamiseks"
+
+#: Mailman/Cgi/rmlist.py:160
+msgid "Mailing list deletion results"
+msgstr "Meililisti kustutamise tulemused"
+
+#: Mailman/Cgi/rmlist.py:167
+msgid ""
+"You have successfully deleted the mailing list\n"
+" <b>%(listname)s</b>."
+msgstr ""
+"Kustutasite listi\n"
+" <b>%(listname)s</b>."
+
+#: Mailman/Cgi/rmlist.py:171
+msgid ""
+"There were some problems deleting the mailing list\n"
+" <b>%(listname)s</b>. Contact your site administrator at %(sitelist)"
+"s\n"
+" for details."
+msgstr ""
+"Listi <b>%(listname)s</b> kustutamisel oli probleeme. "
+"Palun võta ühendust listserveri halduriga aadressil %(sitelist)s"
+
+#: Mailman/Cgi/rmlist.py:188
+msgid "Permanently remove mailing list <em>%(realname)s</em>"
+msgstr "Kustutada list nimega <em>%(realname)s</em>"
+
+#: Mailman/Cgi/rmlist.py:202
+msgid ""
+"This page allows you as the list owner, to permanent\n"
+" remove this mailing list from the system. <strong>This action is not\n"
+" undoable</strong> so you should undertake it only if you are absolutely\n"
+" sure this mailing list has served its purpose and is no longer "
+"necessary.\n"
+"\n"
+" <p>Note that no warning will be sent to your list members and after "
+"this\n"
+" action, any subsequent messages sent to the mailing list, or any of its\n"
+" administrative addreses will bounce.\n"
+"\n"
+" <p>You also have the option of removing the archives for this mailing "
+"list\n"
+" at this time. It is almost always recommended that you do\n"
+" <strong>not</strong> remove the archives, since they serve as the\n"
+" historical record of your mailing list.\n"
+"\n"
+" <p>For your safety, you will be asked to reconfirm the list password.\n"
+" "
+msgstr ""
+
+#: Mailman/Cgi/rmlist.py:223
+msgid "List password:"
+msgstr "Listi parool:"
+
+#: Mailman/Cgi/rmlist.py:227
+msgid "Also delete archives?"
+msgstr "Kustutada arhiivid ka?"
+
+#: Mailman/Cgi/rmlist.py:235
+msgid "<b>Cancel</b> and return to list administration"
+msgstr ""
+
+#: Mailman/Cgi/rmlist.py:238
+msgid "Delete this list"
+msgstr "Kustuta see list"
+
+#: Mailman/Cgi/roster.py:48 Mailman/Cgi/subscribe.py:50
+msgid "Invalid options to CGI script"
+msgstr "CGI skriptile anti vigased argumendid"
+
+#: Mailman/Cgi/roster.py:99
+msgid "%(realname)s roster authentication failed."
+msgstr "%(realname)s sisse logimine ebaõnnestus."
+
+#: Mailman/Cgi/roster.py:127 Mailman/Cgi/roster.py:128
+#: Mailman/Cgi/subscribe.py:49 Mailman/Cgi/subscribe.py:60
+msgid "Error"
+msgstr "Viga"
+
+#: Mailman/Cgi/subscribe.py:109
+msgid "You must supply a valid email address."
+msgstr "Peate sisestama korrektse e-posti aadressi."
+
+#: Mailman/Cgi/subscribe.py:122
+msgid "You may not subscribe a list to itself!"
+msgstr "Listi enda aadressi ei tohi listi tellijate nimekirja panna!"
+
+#: Mailman/Cgi/subscribe.py:131
+msgid "If you supply a password, you must confirm it."
+msgstr "Kui sisestate parooli, peate seda ka kinnituseks sisestama 2 korda."
+
+#: Mailman/Cgi/subscribe.py:133
+msgid "Your passwords did not match."
+msgstr "Paroolid ei olnud ühesugused."
+
+#: Mailman/Cgi/subscribe.py:167
+msgid ""
+"Your subscription request has been received, and will soon be acted upon.\n"
+"Depending on the configuration of this mailing list, your subscription "
+"request\n"
+"may have to be first confirmed by you via email, or approved by the list\n"
+"moderator. If confirmation is required, you will soon get a confirmation\n"
+"email which contains further instructions."
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:181
+msgid ""
+"The email address you supplied is banned from this\n"
+" mailing list. If you think this restriction is erroneous, please\n"
+" contact the list owners at %(listowner)s."
+msgstr ""
+"Sisestatud meiliaadress on selle listi mustas nimekirjas. Kui sul on põhjust "
+"arvata, et see on eksitus, siis palun võta ühendust listi halduriga "
+"aadressil %(listowner)s."
+
+#: Mailman/Cgi/subscribe.py:185
+msgid ""
+"The email address you supplied is not valid. (E.g. it must contain an\n"
+"`@'.)"
+msgstr ""
+"Sisestatud e-posti aadress ol vigane. (Näiteks ei sisaldanud\n"
+"`@'-i.)"
+
+#: Mailman/Cgi/subscribe.py:189
+msgid ""
+"Your subscription is not allowed because the email address you gave is\n"
+"insecure."
+msgstr ""
+"Sinu tellimus tühistati, sest sinu poolt sisestatud aadress ei vasta "
+"reeglitele."
+
+#: Mailman/Cgi/subscribe.py:197
+msgid ""
+"Confirmation from your email address is required, to prevent anyone from\n"
+"subscribing you without permission. Instructions are being sent to you at\n"
+"%(email)s. Please note your subscription will not start until you confirm\n"
+"your subscription."
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:209
+msgid ""
+"Your subscription request was deferred because %(x)s. Your request has "
+"been\n"
+"forwarded to the list moderator. You will receive email informing you of "
+"the\n"
+"moderator's decision when they get to your request."
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:216 Mailman/Commands/cmd_confirm.py:60
+msgid "You are already subscribed."
+msgstr "Sa oled selle listi juba tellinud."
+
+#: Mailman/Cgi/subscribe.py:230
+msgid "Mailman privacy alert"
+msgstr "Mailman privaatsushäire"
+
+#: Mailman/Cgi/subscribe.py:231
+msgid ""
+"An attempt was made to subscribe your address to the mailing list\n"
+"%(listaddr)s. You are already subscribed to this mailing list.\n"
+"\n"
+"Note that the list membership is not public, so it is possible that a bad\n"
+"person was trying to probe the list for its membership. This would be a\n"
+"privacy violation if we let them do this, but we didn't.\n"
+"\n"
+"If you submitted the subscription request and forgot that you were already\n"
+"subscribed to the list, then you can ignore this message. If you suspect "
+"that\n"
+"an attempt is being made to covertly discover whether you are a member of "
+"this\n"
+"list, and you are worried about your privacy, then feel free to send a "
+"message\n"
+"to the list administrator at %(listowner)s.\n"
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:250
+msgid "This list does not support digest delivery."
+msgstr "See list ei toeta referaatide saatmist."
+
+#: Mailman/Cgi/subscribe.py:252
+msgid "This list only supports digest delivery."
+msgstr "See list toetab ainult referaatide saatmist."
+
+#: Mailman/Cgi/subscribe.py:259
+msgid "You have been successfully subscribed to the %(realname)s mailing list."
+msgstr "Te olete liidetud listi %(realname)s tellijate nimekirjaga."
+
+#: Mailman/Commands/cmd_confirm.py:17
+msgid ""
+"\n"
+" confirm <confirmation-string>\n"
+" Confirm an action. The confirmation-string is required and should "
+"be\n"
+" supplied with in mailback confirmation notice.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_confirm.py:40 Mailman/Commands/cmd_lists.py:40
+#: Mailman/Commands/cmd_set.py:133 Mailman/Commands/cmd_subscribe.py:69
+#: Mailman/Commands/cmd_unsubscribe.py:52 Mailman/Commands/cmd_who.py:65
+msgid "Usage:"
+msgstr "Kasutamine:"
+
+#: Mailman/Commands/cmd_confirm.py:49
+msgid ""
+"Invalid confirmation string. Note that confirmation strings expire\n"
+"approximately %(days)s days after the initial subscription request. If "
+"your\n"
+"confirmation has expired, please try to re-submit your original request or\n"
+"message."
+msgstr ""
+
+#: Mailman/Commands/cmd_confirm.py:55
+msgid "Your request has been forwarded to the list moderator for approval."
+msgstr "Teie nõue edastati listi moderaatorile tutvumiseks."
+
+#: Mailman/Commands/cmd_confirm.py:63
+msgid ""
+"You are not current a member. Have you already unsubscribed or changed\n"
+"your email address?"
+msgstr ""
+"Sa ei ole hetkel selle listi liige. Võib-olla lõpetasid juba oma tellimuse "
+"või\n"
+"muutsid tellimuse aadressi?"
+
+#: Mailman/Commands/cmd_confirm.py:73
+msgid "Confirmation succeeded"
+msgstr "Kinnitust aktsepteeriti."
+
+#: Mailman/Commands/cmd_echo.py:17
+msgid ""
+"\n"
+" echo [args]\n"
+" Simply echo an acknowledgement. Args are echoed back unchanged.\n"
+msgstr ""
+"\n"
+" echo [args]\n"
+" Simply echo an acknowledgement. Args are echoed back unchanged.\n"
+
+#: Mailman/Commands/cmd_end.py:17
+msgid ""
+"\n"
+" end\n"
+" Stop processing commands. Use this if your mail program "
+"automatically\n"
+" adds a signature file.\n"
+msgstr ""
+"\n"
+" end\n"
+" Peata korralduste töötlemine. Kasuta seda, kui sinu meiliprogramm "
+"lisab signatuuri automaatselt\n"
+
+#: Mailman/Commands/cmd_help.py:17
+msgid ""
+"\n"
+" help\n"
+" Print this help message.\n"
+msgstr ""
+"\n"
+" help\n"
+" Tekst, mida loete.\n"
+
+#: Mailman/Commands/cmd_help.py:47
+msgid "You can access your personal options via the following url:"
+msgstr "Tellimuse profiili saab muuta järgneva lingi kaudu:"
+
+#: Mailman/Commands/cmd_info.py:17
+msgid ""
+"\n"
+" info\n"
+" Get information about this mailing list.\n"
+msgstr ""
+"\n"
+" info\n"
+" Lähem info selle listi kohta.\n"
+
+#: Mailman/Commands/cmd_info.py:39 Mailman/Commands/cmd_lists.py:62
+msgid "n/a"
+msgstr "n/a"
+
+#: Mailman/Commands/cmd_info.py:44
+msgid "List name: %(listname)s"
+msgstr "Listi nimi: %(listname)s"
+
+#: Mailman/Commands/cmd_info.py:45
+msgid "Description: %(description)s"
+msgstr "Kirjeldus: %(description)s"
+
+#: Mailman/Commands/cmd_info.py:46
+msgid "Postings to: %(postaddr)s"
+msgstr "Postitamisaadress: %(postaddr)s"
+
+#: Mailman/Commands/cmd_info.py:47
+msgid "List Helpbot: %(requestaddr)s"
+msgstr "Listi abiinfo: %(requestaddr)s"
+
+#: Mailman/Commands/cmd_info.py:48
+msgid "List Owners: %(owneraddr)s"
+msgstr "Listi haldurid: %(owneraddr)s"
+
+#: Mailman/Commands/cmd_info.py:49
+msgid "More information: %(listurl)s"
+msgstr "Lähem info: %(listurl)s"
+
+#: Mailman/Commands/cmd_join.py:17
+msgid "The `join' command is synonymous with `subscribe'.\n"
+msgstr "Korraldus `join' on `subscribe' sünonuum.\n"
+
+#: Mailman/Commands/cmd_leave.py:17
+msgid "The `leave' command is synonymous with `unsubscribe'.\n"
+msgstr "Korraldus `leave' on `unsubscribe' sünonüüm.\n"
+
+#: Mailman/Commands/cmd_lists.py:17
+msgid ""
+"\n"
+" lists\n"
+" See a list of the public mailing lists on this GNU Mailman server.\n"
+msgstr ""
+"\n"
+" lists\n"
+" Selle GNU Mailman listserver poolt teenindavate listide nimekiri.\n"
+
+#: Mailman/Commands/cmd_lists.py:44
+msgid "Public mailing lists at %(hostname)s:"
+msgstr "Avalikud meililistid serveris %(hostname)s:"
+
+#: Mailman/Commands/cmd_lists.py:66
+msgid "%(i)3d. List name: %(realname)s"
+msgstr "%(i)3d. Listi nimi: %(realname)s"
+
+#: Mailman/Commands/cmd_lists.py:67
+msgid " Description: %(description)s"
+msgstr " Kirjeldus: %(description)s"
+
+#: Mailman/Commands/cmd_lists.py:68
+msgid " Requests to: %(requestaddr)s"
+msgstr " Päringud aadressile: %(requestaddr)s"
+
+#: Mailman/Commands/cmd_password.py:17
+msgid ""
+"\n"
+" password [<oldpassword> <newpassword>] [address=<address>]\n"
+" Retrieve or change your password. With no arguments, this returns\n"
+" your current password. With arguments <oldpassword> and "
+"<newpassword>\n"
+" you can change your password.\n"
+"\n"
+" If you're posting from an address other than your membership "
+"address,\n"
+" specify your membership address with `address=<address>' (no "
+"brackets\n"
+" around the email address, and no quotes!). Note that in this case "
+"the\n"
+" response is always sent to the subscribed address.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_password.py:51 Mailman/Commands/cmd_password.py:64
+msgid "Your password is: %(password)s"
+msgstr "Sinu parool on: %(password)s"
+
+#: Mailman/Commands/cmd_password.py:55 Mailman/Commands/cmd_password.py:68
+#: Mailman/Commands/cmd_password.py:91 Mailman/Commands/cmd_password.py:117
+#: Mailman/Commands/cmd_set.py:149 Mailman/Commands/cmd_set.py:219
+msgid "You are not a member of the %(listname)s mailing list"
+msgstr "Sa ei ole listi %(listname)s tellijate nimekirjas"
+
+#: Mailman/Commands/cmd_password.py:81 Mailman/Commands/cmd_password.py:107
+msgid ""
+"You did not give the correct old password, so your password has not been\n"
+"changed. Use the no argument version of the password command to retrieve "
+"your\n"
+"current password, then try again."
+msgstr ""
+
+#: Mailman/Commands/cmd_password.py:85 Mailman/Commands/cmd_password.py:111
+msgid ""
+"\n"
+"Usage:"
+msgstr ""
+"\n"
+"Kasutamine:"
+
+#: Mailman/Commands/cmd_remove.py:17
+msgid "The `remove' command is synonymous with `unsubscribe'.\n"
+msgstr "Korraldus `remove' on `unsubscribe' sünonüüm.\n"
+
+#: Mailman/Commands/cmd_set.py:26
+msgid ""
+"\n"
+" set ...\n"
+" Set or view your membership options.\n"
+"\n"
+" Use `set help' (without the quotes) to get a more detailed list of "
+"the\n"
+" options you can change.\n"
+"\n"
+" Use `set show' (without the quotes) to view your current option\n"
+" settings.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:37
+msgid ""
+"\n"
+" set help\n"
+" Show this detailed help.\n"
+"\n"
+" set show [address=<address>]\n"
+" View your current option settings. If you're posting from an "
+"address\n"
+" other than your membership address, specify your membership address\n"
+" with `address=<address>' (no brackets around the email address, and "
+"no\n"
+" quotes!).\n"
+"\n"
+" set authenticate <password> [address=<address>]\n"
+" To set any of your options, you must include this command first, "
+"along\n"
+" with your membership password. If you're posting from an address\n"
+" other than your membership address, specify your membership address\n"
+" with `address=<address>' (no brackets around the email address, and "
+"no\n"
+" quotes!).\n"
+"\n"
+" set ack on\n"
+" set ack off\n"
+" When the `ack' option is turned on, you will receive an\n"
+" acknowledgement message whenever you post a message to the list.\n"
+"\n"
+" set digest plain\n"
+" set digest mime\n"
+" set digest off\n"
+" When the `digest' option is turned off, you will receive postings\n"
+" immediately when they are posted. Use `set digest plain' if "
+"instead\n"
+" you want to receive postings bundled into a plain text digest\n"
+" (i.e. RFC 1153 digest). Use `set digest mime' if instead you want "
+"to\n"
+" receive postings bundled together into a MIME digest.\n"
+"\n"
+" set delivery on\n"
+" set delivery off\n"
+" Turn delivery on or off. This does not unsubscribe you, but "
+"instead\n"
+" tells Mailman not to deliver messages to you for now. This is "
+"useful\n"
+" if you're going on vacation. Be sure to use `set delivery on' when\n"
+" you return from vacation!\n"
+"\n"
+" set myposts on\n"
+" set myposts off\n"
+" Use `set myposts off' to not receive copies of messages you post to\n"
+" the list. This has no effect if you're receiving digests.\n"
+"\n"
+" set hide on\n"
+" set hide off\n"
+" Use `set hide on' to conceal your email address when people request\n"
+" the membership list.\n"
+"\n"
+" set duplicates on\n"
+" set duplicates off\n"
+" Use `set duplicates off' if you want Mailman to not send you "
+"messages\n"
+" if your address is explicitly mentioned in the To: or Cc: fields of\n"
+" the message. This can reduce the number of duplicate postings you\n"
+" will receive.\n"
+"\n"
+" set reminders on\n"
+" set reminders off\n"
+" Use `set reminders off' if you want to disable the monthly password\n"
+" reminder for this mailing list.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:122
+msgid "Bad set command: %(subcmd)s"
+msgstr "Vigane seadistuskorraldus: %(subcmd)s"
+
+#: Mailman/Commands/cmd_set.py:151
+msgid "Your current option settings:"
+msgstr "Sinu kehtivad seadistused:"
+
+#: Mailman/Commands/cmd_set.py:153 Mailman/Commands/cmd_set.py:191
+#: Mailman/Commands/cmd_set.py:194 Mailman/Commands/cmd_set.py:198
+#: Mailman/Commands/cmd_set.py:202
+msgid "off"
+msgstr "ei"
+
+#: Mailman/Commands/cmd_set.py:153 Mailman/Commands/cmd_set.py:191
+#: Mailman/Commands/cmd_set.py:194 Mailman/Commands/cmd_set.py:198
+#: Mailman/Commands/cmd_set.py:202
+msgid "on"
+msgstr "jah"
+
+#: Mailman/Commands/cmd_set.py:154
+msgid " ack %(onoff)s"
+msgstr " ack %(onoff)s"
+
+#: Mailman/Commands/cmd_set.py:160
+msgid " digest plain"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:162
+msgid " digest mime"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:164
+msgid " digest off"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:169
+msgid "delivery on"
+msgstr "tellimus aktiivne"
+
+#: Mailman/Commands/cmd_set.py:171 Mailman/Commands/cmd_set.py:174
+#: Mailman/Commands/cmd_set.py:177 Mailman/Commands/cmd_set.py:181
+msgid "delivery off"
+msgstr "tellimus peatatud"
+
+#: Mailman/Commands/cmd_set.py:172
+msgid "by you"
+msgstr "sinu poolt"
+
+#: Mailman/Commands/cmd_set.py:175
+msgid "by the admin"
+msgstr "halduri poolt"
+
+#: Mailman/Commands/cmd_set.py:178
+msgid "due to bounces"
+msgstr "tagastatud kirjade tõttu"
+
+#: Mailman/Commands/cmd_set.py:186
+msgid " %(status)s (%(how)s on %(date)s)"
+msgstr " %(status)s (%(how)s on %(date)s)"
+
+#: Mailman/Commands/cmd_set.py:192
+msgid " myposts %(onoff)s"
+msgstr " minu kirjad %(onoff)s"
+
+#: Mailman/Commands/cmd_set.py:195
+msgid " hide %(onoff)s"
+msgstr " peida %(onoff)s"
+
+#: Mailman/Commands/cmd_set.py:199
+msgid " duplicates %(onoff)s"
+msgstr " duplikaadid %(onoff)s"
+
+#: Mailman/Commands/cmd_set.py:203
+msgid " reminders %(onoff)s"
+msgstr " meeldetuletused %(onoff)s"
+
+#: Mailman/Commands/cmd_set.py:224
+msgid "You did not give the correct password"
+msgstr "Te ei sisestanud korrektset parooli"
+
+#: Mailman/Commands/cmd_set.py:236 Mailman/Commands/cmd_set.py:283
+msgid "Bad argument: %(arg)s"
+msgstr "Vigane argument: %(arg)s"
+
+#: Mailman/Commands/cmd_set.py:241 Mailman/Commands/cmd_set.py:261
+msgid "Not authenticated"
+msgstr "Autoriseerimata"
+
+#: Mailman/Commands/cmd_set.py:254
+msgid "ack option set"
+msgstr "ack seadistus kehtestatud"
+
+#: Mailman/Commands/cmd_set.py:286
+msgid "digest option set"
+msgstr "digest seadistus kehtestatud"
+
+#: Mailman/Commands/cmd_set.py:298
+msgid "delivery option set"
+msgstr "delivery seadistus kehtestatud"
+
+#: Mailman/Commands/cmd_set.py:310
+msgid "myposts option set"
+msgstr "myposts seadistus kehtestatud"
+
+#: Mailman/Commands/cmd_set.py:321
+msgid "hide option set"
+msgstr "hide seadisus kehtestatud"
+
+#: Mailman/Commands/cmd_set.py:333
+msgid "duplicates option set"
+msgstr "duplicates seadistus kehtestatud"
+
+#: Mailman/Commands/cmd_set.py:345
+msgid "reminder option set"
+msgstr "reminder seadistus kehtestatud"
+
+#: Mailman/Commands/cmd_stop.py:17
+msgid "stop is synonymous with the end command.\n"
+msgstr "stop on end korralduse sünonüüm.\n"
+
+#: Mailman/Commands/cmd_subscribe.py:17
+msgid ""
+"\n"
+" subscribe [password] [digest|nodigest] [address=<address>]\n"
+" Subscribe to this mailing list. Your password must be given to\n"
+" unsubscribe or change your options, but if you omit the password, "
+"one\n"
+" will be generated for you. You may be periodically reminded of "
+"your\n"
+" password.\n"
+"\n"
+" The next argument may be either: `nodigest' or `digest' (no "
+"quotes!).\n"
+" If you wish to subscribe an address other than the address you sent\n"
+" this request from, you may specify `address=<address>' (no brackets\n"
+" around the email address, and no quotes!)\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:62
+msgid "Bad digest specifier: %(arg)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:84
+msgid "No valid address found to subscribe"
+msgstr "Ei leidnud ühtegi korrektset aadressi tellimuse jaoks"
+
+#: Mailman/Commands/cmd_subscribe.py:102
+msgid ""
+"The email address you supplied is banned from this mailing list.\n"
+"If you think this restriction is erroneous, please contact the list\n"
+"owners at %(listowner)s."
+msgstr ""
+"See meiliaadress on listi mustas nimekirjas. Kui sul on põhjust arvata, et "
+"see on eksitus, siis võta palun ühendust listi halduriga aadressil %"
+"(listowner)s."
+
+#: Mailman/Commands/cmd_subscribe.py:108
+msgid ""
+"Mailman won't accept the given email address as a valid address.\n"
+"(E.g. it must have an @ in it.)"
+msgstr ""
+"Mailman ei aktsepteeri sellist aadressi.\n"
+"(Näiteks puudub selles @)"
+
+#: Mailman/Commands/cmd_subscribe.py:113
+msgid ""
+"Your subscription is not allowed because\n"
+"the email address you gave is insecure."
+msgstr ""
+"Sinu tellimus tühistati, sest aadress ei vasta\n"
+"reeglitele."
+
+#: Mailman/Commands/cmd_subscribe.py:118
+msgid "You are already subscribed!"
+msgstr "Sul on see list juba tellitud!"
+
+#: Mailman/Commands/cmd_subscribe.py:122
+msgid "No one can subscribe to the digest of this list!"
+msgstr "Selle listi referaati ei saa tellida!"
+
+#: Mailman/Commands/cmd_subscribe.py:125
+msgid "This list only supports digest subscriptions!"
+msgstr "See list toetab ainult referaatide tellimist!"
+
+#: Mailman/Commands/cmd_subscribe.py:131
+msgid ""
+"Your subscription request has been forwarded to the list administrator\n"
+"at %(listowner)s for review."
+msgstr ""
+"Teie soov listiga liituda edastati listi haldurile aadressil\n"
+"%(listowner)s üle vaatamiseks."
+
+#: Mailman/Commands/cmd_subscribe.py:136
+msgid "Subscription request succeeded."
+msgstr "Tellimissoov aktsepteeriti."
+
+#: Mailman/Commands/cmd_unsubscribe.py:17
+msgid ""
+"\n"
+" unsubscribe [password] [address=<address>]\n"
+" Unsubscribe from the mailing list. If given, your password must "
+"match\n"
+" your current password. If omitted, a confirmation email will be "
+"sent\n"
+" to the unsubscribing address. If you wish to unsubscribe an address\n"
+" other than the address you sent this request from, you may specify\n"
+" `address=<address>' (no brackets around the email address, and no\n"
+" quotes!)\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_unsubscribe.py:62
+msgid "%(address)s is not a member of the %(listname)s mailing list"
+msgstr "%(address)s ei ole listi %(listname)s listi liige"
+
+#: Mailman/Commands/cmd_unsubscribe.py:69
+msgid ""
+"Your unsubscription request has been forwarded to the list administrator "
+"for\n"
+"approval."
+msgstr ""
+"Teie soov tellimust katkestada edastatati listi haldurile\n"
+"üle vaatamiseks."
+
+#: Mailman/Commands/cmd_unsubscribe.py:84
+msgid "You gave the wrong password"
+msgstr "Andsite vale parooli"
+
+#: Mailman/Commands/cmd_unsubscribe.py:87
+msgid "Unsubscription request succeeded."
+msgstr "Tellimue katkestamise soovi aktsepteeriti."
+
+#: Mailman/Commands/cmd_who.py:29
+msgid ""
+"\n"
+" who\n"
+" See everyone who is on this mailing list.\n"
+msgstr ""
+"\n"
+" who\n"
+" Listi tellijate nimekiri.\n"
+
+#: Mailman/Commands/cmd_who.py:34
+msgid ""
+"\n"
+" who password [address=<address>]\n"
+" See everyone who is on this mailing list. The roster is limited to\n"
+" list members only, and you must supply your membership password to\n"
+" retrieve it. If you're posting from an address other than your\n"
+" membership address, specify your membership address with\n"
+" `address=<address>' (no brackets around the email address, and no\n"
+" quotes!)\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_who.py:44
+msgid ""
+"\n"
+" who password\n"
+" See everyone who is on this mailing list. The roster is limited to\n"
+" list administrators and moderators only; you must supply the list\n"
+" admin or moderator password to retrieve the roster.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_who.py:110
+msgid "You are not allowed to retrieve the list membership."
+msgstr "Teil ei ole õigusi selle listi tellijate nimekirja vaatamiseks."
+
+#: Mailman/Commands/cmd_who.py:116
+msgid "This list has no members."
+msgstr "Sellel listil pole tellijaid."
+
+#: Mailman/Commands/cmd_who.py:129
+msgid "Non-digest (regular) members:"
+msgstr "Üksikkirjade tellijad:"
+
+#: Mailman/Commands/cmd_who.py:132
+msgid "Digest members:"
+msgstr "Referaatide tellijad:"
+
+#: Mailman/Defaults.py:1204
+msgid "Traditional Chinese"
+msgstr "Tradititsionaalne hiina"
+
+#: Mailman/Defaults.py:1205
+msgid "Czech"
+msgstr "T&scaron;ehhi"
+
+#: Mailman/Defaults.py:1206
+msgid "German"
+msgstr "Saksa"
+
+#: Mailman/Defaults.py:1207
+msgid "English (USA)"
+msgstr "Inglise (USA)"
+
+#: Mailman/Defaults.py:1208
+msgid "Spanish (Spain)"
+msgstr "Hispaania"
+
+#: Mailman/Defaults.py:1209
+msgid "Estonian"
+msgstr "Eesti"
+
+#: Mailman/Defaults.py:1210
+msgid "Finnish"
+msgstr "Soome"
+
+#: Mailman/Defaults.py:1211
+msgid "French"
+msgstr "Prantsuse"
+
+#: Mailman/Defaults.py:1212
+msgid "Simplified Chinese"
+msgstr "Lihtsustatud hiina"
+
+#: Mailman/Defaults.py:1213
+msgid "Hungarian"
+msgstr "Ungari"
+
+#: Mailman/Defaults.py:1214
+msgid "Italian"
+msgstr "Itaalia"
+
+#: Mailman/Defaults.py:1215
+msgid "Japanese"
+msgstr "Jaapani"
+
+#: Mailman/Defaults.py:1216
+msgid "Korean"
+msgstr "Korea"
+
+#: Mailman/Defaults.py:1217
+msgid "Lithuanian"
+msgstr "Leedu"
+
+#: Mailman/Defaults.py:1218
+msgid "Dutch"
+msgstr "Taani"
+
+#: Mailman/Defaults.py:1219
+msgid "Norwegian"
+msgstr "Norra"
+
+#: Mailman/Defaults.py:1220
+msgid "Portuguese (Brazil)"
+msgstr "Portugali (Brasiilia)"
+
+#: Mailman/Defaults.py:1221
+msgid "Russian"
+msgstr "Vene"
+
+#: Mailman/Defaults.py:1222
+msgid "Swedish"
+msgstr "Rootsi"
+
+#: Mailman/Deliverer.py:43
+msgid ""
+"Note: Since this is a list of mailing lists, administrative\n"
+"notices like the password reminder will be sent to\n"
+"your membership administrative address, %(addr)s."
+msgstr ""
+
+#: Mailman/Deliverer.py:62
+msgid " (Digest mode)"
+msgstr " (Referaadid)"
+
+#: Mailman/Deliverer.py:68
+msgid "Welcome to the \"%(realname)s\" mailing list%(digmode)s"
+msgstr "Tere tulemast listi \"%(realname)s\" %(digmode)s"
+
+#: Mailman/Deliverer.py:77
+msgid "You have been unsubscribed from the %(realname)s mailing list"
+msgstr "%(realname)s listi tellimus on lõppenud."
+
+#: Mailman/Deliverer.py:104
+msgid "%(listfullname)s mailing list reminder"
+msgstr "%(listfullname)s listi meeldetuletus"
+
+#: Mailman/Errors.py:114
+msgid "For some unknown reason"
+msgstr "Tundmatu põhjus"
+
+#: Mailman/Errors.py:120 Mailman/Errors.py:143
+msgid "Your message was rejected"
+msgstr "Sinu kirja ei lubatud listi"
+
+#: Mailman/Gui/Archive.py:25
+msgid "Archiving Options"
+msgstr "Arhiivid"
+
+#: Mailman/Gui/Archive.py:31
+msgid "List traffic archival policies."
+msgstr "Listi kirjade arhvieerimine."
+
+#: Mailman/Gui/Archive.py:34
+msgid "Archive messages?"
+msgstr "Arhiveerida kirjad?"
+
+#: Mailman/Gui/Archive.py:36
+msgid "private"
+msgstr "privaatne"
+
+#: Mailman/Gui/Archive.py:36
+msgid "public"
+msgstr "avalik"
+
+#: Mailman/Gui/Archive.py:37
+msgid "Is archive file source for public or private archival?"
+msgstr "Kas arhiiv on privaatne või avalik?"
+
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Monthly"
+msgstr "kord kuus"
+
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Quarterly"
+msgstr "kord kvartalis"
+
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Yearly"
+msgstr "kord aastas"
+
+#: Mailman/Gui/Archive.py:41 Mailman/Gui/Digest.py:79
+msgid "Daily"
+msgstr "iga päev"
+
+#: Mailman/Gui/Archive.py:41 Mailman/Gui/Digest.py:79
+msgid "Weekly"
+msgstr "iga nädal"
+
+#: Mailman/Gui/Archive.py:43
+msgid "How often should a new archive volume be started?"
+msgstr "Kui tihti uut arhiivi alustatakse?"
+
+#: Mailman/Gui/Autoresponse.py:31
+msgid "Auto-responder"
+msgstr "Automaatvastaja"
+
+#: Mailman/Gui/Autoresponse.py:39
+msgid ""
+"Auto-responder characteristics.<p>\n"
+"\n"
+"In the text fields below, string interpolation is performed with\n"
+"the following key/value substitutions:\n"
+"<p><ul>\n"
+" <li><b>listname</b> - <em>gets the name of the mailing list</em>\n"
+" <li><b>listurl</b> - <em>gets the list's listinfo URL</em>\n"
+" <li><b>requestemail</b> - <em>gets the list's -request address</em>\n"
+" <li><b>owneremail</b> - <em>gets the list's -owner address</em>\n"
+"</ul>\n"
+"\n"
+"<p>For each text field, you can either enter the text directly into the "
+"text\n"
+"box, or you can specify a file on your local system to upload as the text."
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:55
+msgid ""
+"Should Mailman send an auto-response to mailing list\n"
+" posters?"
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:60
+msgid "Auto-response text to send to mailing list posters."
+msgstr "Automaatse vastuse tekst."
+
+#: Mailman/Gui/Autoresponse.py:63
+msgid ""
+"Should Mailman send an auto-response to emails sent to the\n"
+" -owner address?"
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:68
+msgid "Auto-response text to send to -owner emails."
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:71
+msgid "Yes, w/discard"
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:71
+msgid "Yes, w/forward"
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:72
+msgid ""
+"Should Mailman send an auto-response to emails sent to the\n"
+" -request address? If you choose yes, decide whether you want\n"
+" Mailman to discard the original email, or forward it on to the\n"
+" system as a normal mail command."
+msgstr ""
+"Kas Mailman peaks saatma automaatse vastuse kirjadele, mis saadetakse\n"
+" -request aadressile? Kui valid \"jah\", siis pead ka otsustama, kas\n"
+" kiri visatake minema või üritatakse sellest täitmiseks käske leida."
+
+#: Mailman/Gui/Autoresponse.py:79
+msgid "Auto-response text to send to -request emails."
+msgstr "Automaatse vastuse tekst -request aadressile saadetud kirjadele."
+
+#: Mailman/Gui/Autoresponse.py:82
+msgid ""
+"Number of days between auto-responses to either the mailing\n"
+" list or -request/-owner address from the same poster. Set to\n"
+" zero (or negative) for no grace period (i.e. auto-respond to\n"
+" every message)."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:26
+msgid "Bounce processing"
+msgstr "Tagastuste töötlemine"
+
+#: Mailman/Gui/Bounce.py:32
+msgid ""
+"These policies control the automatic bounce processing system\n"
+" in Mailman. Here's an overview of how it works.\n"
+"\n"
+" <p>When a bounce is received, Mailman tries to extract two "
+"pieces\n"
+" of information from the message: the address of the member the\n"
+" message was intended for, and the severity of the problem "
+"causing\n"
+" the bounce. The severity can be either <em>hard</em> or\n"
+" <em>soft</em> meaning either a fatal error occurred, or a\n"
+" transient error occurred. When in doubt, a hard severity is "
+"used.\n"
+"\n"
+" <p>If no member address can be extracted from the bounce, then "
+"the\n"
+" bounce is usually discarded. Otherwise, each member is assigned "
+"a\n"
+" <em>bounce score</em> and every time we encounter a bounce from\n"
+" this member we increment the score. Hard bounces increment by "
+"1\n"
+" while soft bounces increment by 0.5. We only increment the "
+"bounce\n"
+" score once per day, so even if we receive ten hard bounces from "
+"a\n"
+" member per day, their score will increase by only 1 for that "
+"day.\n"
+"\n"
+" <p>When a member's bounce score is greater than the\n"
+" <a href=\"?VARHELP=bounce/bounce_score_threshold\">bounce score\n"
+" threshold</a>, the subscription is disabled. Once disabled, "
+"the\n"
+" member will not receive any postings from the list until their\n"
+" membership is explicitly re-enabled (either by the list\n"
+" administrator or the user). However, they will receive "
+"occasional\n"
+" reminders that their membership has been disabled, and these\n"
+" reminders will include information about how to re-enable their\n"
+" membership.\n"
+"\n"
+" <p>You can control both the\n"
+" <a href=\"?VARHELP=bounce/bounce_you_are_disabled_warnings"
+"\">number\n"
+" of reminders</a> the member will receive and the\n"
+" <a href=\"?VARHELP=bounce/"
+"bounce_you_are_disabled_warnings_interval\"\n"
+" >frequency</a> with which these reminders are sent.\n"
+"\n"
+" <p>There is one other important configuration variable; after a\n"
+" certain period of time -- during which no bounces from the "
+"member\n"
+" are received -- the bounce information is\n"
+" <a href=\"?VARHELP=bounce/bounce_info_stale_after\">considered\n"
+" stale</a> and discarded. Thus by adjusting this value, and the\n"
+" score threshold, you can control how quickly bouncing members "
+"are\n"
+" disabled. You should tune both of these to the frequency and\n"
+" traffic volume of your list."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:75
+msgid "Bounce detection sensitivity"
+msgstr "Tagastuste leidmise tundlikkus"
+
+#: Mailman/Gui/Bounce.py:78
+msgid "Should Mailman perform automatic bounce processing?"
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:79
+msgid ""
+"By setting this value to <em>No</em>, you disable all\n"
+" automatic bounce processing for this list, however bounce\n"
+" messages will still be discarded so that the list "
+"administrator\n"
+" isn't inundated with them."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:85
+msgid ""
+"The maximum member bounce score before the member's\n"
+" subscription is disabled. This value can be a floating point\n"
+" number."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:90
+msgid ""
+"The number of days after which a member's bounce information\n"
+" is discarded, if no new bounces have been received in the\n"
+" interim. This value must be an integer."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:95
+msgid ""
+"How many <em>Your Membership Is Disabled</em> warnings a\n"
+" disabled member should get before their address is removed "
+"from\n"
+" the mailing list. Set to 0 to immediately remove an address "
+"from\n"
+" the list once their bounce score exceeds the threshold. This\n"
+" value must be an integer."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:102
+msgid ""
+"The number of days between sending the <em>Your Membership\n"
+" Is Disabled</em> warnings. This value must be an integer."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:105 Mailman/Gui/General.py:257
+msgid "Notifications"
+msgstr "Märguanded"
+
+#: Mailman/Gui/Bounce.py:109
+msgid ""
+"Should Mailman send you, the list owner, any bounce messages\n"
+" that failed to be detected by the bounce processor? <em>Yes</"
+"em>\n"
+" is recommended."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:112
+msgid ""
+"While Mailman's bounce detector is fairly robust, it's\n"
+" impossible to detect every bounce format in the world. You\n"
+" should keep this variable set to <em>Yes</em> for two reasons: "
+"1)\n"
+" If this really is a permanent bounce from one of your members,\n"
+" you should probably manually remove them from your list, and "
+"2)\n"
+" you might want to send the message on to the Mailman "
+"developers\n"
+" so that this new format can be added to its known set.\n"
+"\n"
+" <p>If you really can't be bothered, then set this variable to\n"
+" <em>No</em> and all non-detected bounces will be discarded\n"
+" without further processing.\n"
+"\n"
+" <p><b>Note:</b> This setting will also affect all messages "
+"sent\n"
+" to your list's -admin address. This address is deprecated and\n"
+" should never be used, but some people may still send mail to "
+"this\n"
+" address. If this happens, and this variable is set to\n"
+" <em>No</em> those messages too will get discarded. You may "
+"want\n"
+" to set up an\n"
+" <a href=\"?VARHELP=autoreply/autoresponse_admin_text"
+"\">autoresponse\n"
+" message</a> for email to the -owner and -admin address."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:135
+msgid ""
+"Should Mailman notify you, the list owner, when bounces\n"
+" cause a member's subscription to be disabled?"
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:137
+msgid ""
+"By setting this value to <em>No</em>, you turn off\n"
+" notification messages that are normally sent to the list "
+"owners\n"
+" when a member's delivery is disabled due to excessive bounces.\n"
+" An attempt to notify the member will always be made."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:144
+msgid ""
+"Should Mailman notify you, the list owner, when bounces\n"
+" cause a member to be unsubscribed?"
+msgstr ""
+"Kas Mailman peaks sind kui listi haldurit teavitama, kui\n"
+"mõni tellimus lõpetatakse tagastatud kirjade tõttu?"
+
+#: Mailman/Gui/Bounce.py:146
+msgid ""
+"By setting this value to <em>No</em>, you turn off\n"
+" notification messages that are normally sent to the list "
+"owners\n"
+" when a member is unsubscribed due to excessive bounces. An\n"
+" attempt to notify the member will always be made."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:173
+msgid ""
+"Bad value for <a href=\"?VARHELP=bounce/%(property)s\"\n"
+" >%(property)s</a>: %(val)s"
+msgstr ""
+"Vigane väärtus <a href=\"?VARHELP=bounce/%(property)s\"\n"
+" >%(property)s</a>: %(val)s"
+
+#: Mailman/Gui/ContentFilter.py:30
+msgid "Content&nbsp;filtering"
+msgstr "Sisufiltrid"
+
+#: Mailman/Gui/ContentFilter.py:37
+msgid "Forward to List Owner"
+msgstr "Edasta haldurile"
+
+#: Mailman/Gui/ContentFilter.py:39
+msgid "Preserve"
+msgstr "Konserveeri"
+
+#: Mailman/Gui/ContentFilter.py:42
+msgid ""
+"Policies concerning the content of list traffic.\n"
+"\n"
+" <p>Content filtering works like this: when a message is\n"
+" received by the list and you have enabled content filtering, "
+"the\n"
+" individual attachments are first compared to the\n"
+" <a href=\"?VARHELP=contentfilter/filter_mime_types\">filter\n"
+" types</a>. If the attachment type matches an entry in the "
+"filter\n"
+" types, it is discarded.\n"
+"\n"
+" <p>Then, if there are <a\n"
+" href=\"?VARHELP=contentfilter/pass_mime_types\">pass types</a>\n"
+" defined, any attachment type that does <em>not</em> match a\n"
+" pass type is also discarded. If there are no pass types "
+"defined,\n"
+" this check is skipped.\n"
+"\n"
+" <p>After this initial filtering, any <tt>multipart</tt>\n"
+" attachments that are empty are removed. If the outer message "
+"is\n"
+" left empty after this filtering, then the whole message is\n"
+" discarded. Then, each <tt>multipart/alternative</tt> section "
+"will\n"
+" be replaced by just the first alternative that is non-empty "
+"after\n"
+" filtering.\n"
+"\n"
+" <p>Finally, any <tt>text/html</tt> parts that are left in the\n"
+" message may be converted to <tt>text/plain</tt> if\n"
+" <a href=\"?VARHELP=contentfilter/convert_html_to_plaintext\"\n"
+" >convert_html_to_plaintext</a> is enabled and the site is\n"
+" configured to allow these conversions."
+msgstr ""
+"Sisufiltrid.\n"
+"\n"
+"<p>Sisufiltrid töötavad nii: kui listi saabub uus kiri ja listi sisufiltrid "
+"on aktiveeritud, siis võrreldakse kirjas olevate manuste tüüpe kõigepealt <a "
+"href=\"?VARHELP=contentfilter/filter_mime_types\">keelatud tüübid</a> "
+"nimestikus olevatega. Kõik keelatud tüübiga manused visatakse minema. "
+"<p>Edasi, kui on defineeritud <a href=\"?VARHELP=contentfilter/"
+"pass_mime_types\">lubatud tüübid</a>, siis visatakse minema kõik manused, "
+"mille tüüp <em>ei</em> ole selles nimestikus. Kui lubatud tüüpe pole "
+"defineeritud, jäetakse see kontroll vahele.\n"
+". <p> <p>After this initial filtering, any <tt>multipart</tt>\n"
+" attachments that are empty are removed. If the outer message "
+"is\n"
+" left empty after this filtering, then the whole message is\n"
+" discarded. Then, each <tt>multipart/alternative</tt> section "
+"will\n"
+" be replaced by just the first alternative that is non-empty "
+"after\n"
+" filtering.\n"
+"\n"
+" <p>Finally, any <tt>text/html</tt> parts that are left in the\n"
+" message may be converted to <tt>text/plain</tt> if\n"
+" <a href=\"?VARHELP=contentfilter/convert_html_to_plaintext\"\n"
+" >convert_html_to_plaintext</a> is enabled and the site is\n"
+" configured to allow these conversions."
+
+#: Mailman/Gui/ContentFilter.py:71
+msgid ""
+"Should Mailman filter the content of list traffic according\n"
+" to the settings below?"
+msgstr "Aktiveerida allpool defineeritud filtrid?"
+
+#: Mailman/Gui/ContentFilter.py:75
+msgid ""
+"Remove message attachments that have a matching content\n"
+" type."
+msgstr "Visata minema manused, mille tüüp on selles nimekirjas"
+
+#: Mailman/Gui/ContentFilter.py:78
+msgid ""
+"Use this option to remove each message attachment that\n"
+" matches one of these content types. Each line should contain "
+"a\n"
+" string naming a MIME <tt>type/subtype</tt>,\n"
+" e.g. <tt>image/gif</tt>. Leave off the subtype to remove all\n"
+" parts with a matching major content type, e.g. <tt>image</tt>.\n"
+"\n"
+" <p>Blank lines are ignored.\n"
+"\n"
+" <p>See also <a href=\"?VARHELP=contentfilter/pass_mime_types\"\n"
+" >pass_mime_types</a> for a content type whitelist."
+msgstr ""
+"Kasuta seda seadistust, et eemaldada manused tüübi alusel. Igal real peaks "
+"olema üks MIME tüüp kujul <tt>tüüp/alamtüüp</tt> näiteks <tt>image/gif</tt>. "
+"Alamtüübi võib ka ära jätta ja siis eemaldatakse kõik selletüübilised "
+"manused, näiteks <tt>image</tt>. <p>Tühje ridu ignoreeritakse.\n"
+"<p>Vaata ka <a href=\"?VARHELP=contentfilter/pass_mime_types\">lubatud "
+"tüüpide nimekirja abiinfot</a>."
+
+#: Mailman/Gui/ContentFilter.py:90
+msgid ""
+"Remove message attachments that don't have a matching\n"
+" content type. Leave this field blank to skip this filter\n"
+" test."
+msgstr ""
+"Kustuta manused, mille tüüp ei ole selles nimekirjas. Kui jätad selle välja "
+"tühjaks, siis jäetakse see kontroll vahele."
+
+#: Mailman/Gui/ContentFilter.py:94
+msgid ""
+"Use this option to remove each message attachment that does\n"
+" not have a matching content type. Requirements and formats "
+"are\n"
+" exactly like <a href=\"?VARHELP=contentfilter/filter_mime_types"
+"\"\n"
+" >filter_mime_types</a>.\n"
+"\n"
+" <p><b>Note:</b> if you add entries to this list but don't add\n"
+" <tt>multipart</tt> to this list, any messages with attachments\n"
+" will be rejected by the pass filter."
+msgstr ""
+"Selle seadistuse abil saad kustutada manuseid, mille tüüp ei ole lubatud "
+"tüüpide nimestikus. Formaat on sama, mis <a href=\"?VARHELP=contentfilter/"
+"filter_mime_types\">keelatud tüüpide nimekirjal</a>. <p><b>Märkus</b>: kui "
+"jätad sellest nimestikust välja <tt>multipart</tt> tüübi, siis "
+"filtreeritakse välja kõik manustega kirjad."
+
+#: Mailman/Gui/ContentFilter.py:104
+msgid ""
+"Should Mailman convert <tt>text/html</tt> parts to plain\n"
+" text? This conversion happens after MIME attachments have "
+"been\n"
+" stripped."
+msgstr "Teisendada HTML tekstiks? Seda tehakse peale kaasatud failide eemaldamist."
+
+#: Mailman/Gui/ContentFilter.py:110
+msgid ""
+"Action to take when a message matches the content filtering\n"
+" rules."
+msgstr "Mida teha kirjadega, mis filtritesse kinni jäävad?"
+
+#: Mailman/Gui/ContentFilter.py:113
+msgid ""
+"One of these actions is take when the message matches one of\n"
+" the content filtering rules, meaning, the top-level\n"
+" content type matches one of the <a\n"
+" href=\"?VARHELP=contentfilter/filter_mime_types\"\n"
+" >filter_mime_types</a>, or the top-level content type does\n"
+" <strong>not</strong> match one of the\n"
+" <a href=\"?VARHELP=contentfilter/pass_mime_types\"\n"
+" >pass_mime_types</a>, or if after filtering the subparts of "
+"the\n"
+" message, the message ends up empty.\n"
+"\n"
+" <p>Note this action is not taken if after filtering the "
+"message\n"
+" still contains content. In that case the message is always\n"
+" forwarded on to the list membership.\n"
+"\n"
+" <p>When messages are discarded, a log entry is written\n"
+" containing the Message-ID of the discarded message. When\n"
+" messages are rejected or forwarded to the list owner, a reason\n"
+" for the rejection is included in the bounce message to the\n"
+" original author. When messages are preserved, they are saved "
+"in\n"
+" a special queue directory on disk for the site administrator "
+"to\n"
+" view (and possibly rescue) but otherwise discarded. This last\n"
+" option is only available if enabled by the site\n"
+" administrator."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:154
+msgid "Bad MIME type ignored: %(spectype)s"
+msgstr "Vigast MIME tüüpi ignoreeriti: %(spectype)s"
+
+#: Mailman/Gui/Digest.py:36
+msgid "Digest options"
+msgstr "Referaadid"
+
+#: Mailman/Gui/Digest.py:44
+msgid "Batched-delivery digest characteristics."
+msgstr ""
+
+#: Mailman/Gui/Digest.py:47
+msgid "Can list members choose to receive list traffic bunched in digests?"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:51
+msgid "Digest"
+msgstr "Referaat"
+
+#: Mailman/Gui/Digest.py:51
+msgid "Regular"
+msgstr "Üksikkirjad"
+
+#: Mailman/Gui/Digest.py:52
+msgid "Which delivery mode is the default for new users?"
+msgstr ""
+"Millist kirjade kättetoimetamisviisi kasutatakse vaikimisi uute tellijate "
+"jaoks?"
+
+#: Mailman/Gui/Digest.py:55
+msgid "MIME"
+msgstr "MIME"
+
+#: Mailman/Gui/Digest.py:55
+msgid "Plain"
+msgstr "Plain"
+
+#: Mailman/Gui/Digest.py:56
+msgid "When receiving digests, which format is default?"
+msgstr "Millist referaatide formaati kasutada?"
+
+#: Mailman/Gui/Digest.py:59
+msgid "How big in Kb should a digest be before it gets sent out?"
+msgstr "Kui suur (Kb) peaks referaat olema, et see laiali saadetaks?"
+
+#: Mailman/Gui/Digest.py:63
+msgid "Should a digest be dispatched daily when the size threshold isn't reached?"
+msgstr ""
+"Saata referaat välja päeva lõpus, ka siis, kui see pole määratud mahtu "
+"saavutanud?"
+
+#: Mailman/Gui/Digest.py:67
+msgid "Header added to every digest"
+msgstr "Referaadi päis"
+
+#: Mailman/Gui/Digest.py:68
+msgid ""
+"Text attached (as an initial message, before the table of contents) to the "
+"top of digests. "
+msgstr "Referaadi algusse (enne sisukorda) lisatav tekst."
+
+#: Mailman/Gui/Digest.py:73
+msgid "Footer added to every digest"
+msgstr "Referaadi jalus"
+
+#: Mailman/Gui/Digest.py:74
+msgid "Text attached (as a final message) to the bottom of digests. "
+msgstr "Referaadi lõppu lisatav tekst."
+
+#: Mailman/Gui/Digest.py:80
+msgid "How often should a new digest volume be started?"
+msgstr "Kui tihti uut referaatide köidet alustatakse?"
+
+#: Mailman/Gui/Digest.py:81
+msgid ""
+"When a new digest volume is started, the volume number is\n"
+" incremented and the issue number is reset to 1."
+msgstr ""
+"Uue referaatide köite alustamisel suureneb köite number ühe võrra ja "
+"referaatide nummerdamine algab uuesti 1-st."
+
+#: Mailman/Gui/Digest.py:85
+msgid "Should Mailman start a new digest volume?"
+msgstr "Alustada uut referaatide köidet?"
+
+#: Mailman/Gui/Digest.py:86
+msgid ""
+"Setting this option instructs Mailman to start a new volume\n"
+" with the next digest sent out."
+msgstr ""
+"Selle seade kehtestamisel alustab Mailman järgmise välja saadetava "
+"referaadiga uut köidet."
+
+#: Mailman/Gui/Digest.py:90
+msgid ""
+"Should Mailman send the next digest right now, if it is not\n"
+" empty?"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:145
+msgid ""
+"The next digest will be sent as volume\n"
+" %(volume)s, number %(number)s"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:150
+msgid "A digest has been sent."
+msgstr "Referaat on välja saadetud."
+
+#: Mailman/Gui/Digest.py:152
+msgid "There was no digest to send."
+msgstr "Referaati polnud võimalik saata."
+
+#: Mailman/Gui/GUIBase.py:149
+msgid "Invalid value for variable: %(property)s"
+msgstr "Vigane väärtus muutujale: %(property)s"
+
+#: Mailman/Gui/GUIBase.py:153
+msgid "Bad email address for option %(property)s: %(val)s"
+msgstr "Vigane meiliaadress seades %(property)s: %(val)s"
+
+#: Mailman/Gui/GUIBase.py:179
+msgid ""
+"The following illegal substitution variables were\n"
+" found in the <code>%(property)s</code> string:\n"
+" <code>%(bad)s</code>\n"
+" <p>Your list may not operate properly until you correct "
+"this\n"
+" problem."
+msgstr ""
+
+#: Mailman/Gui/GUIBase.py:193
+msgid ""
+"Your <code>%(property)s</code> string appeared to\n"
+" have some correctable problems in its new value.\n"
+" The fixed value will be used instead. Please\n"
+" double check that this is what you intended.\n"
+" "
+msgstr ""
+
+#: Mailman/Gui/General.py:32
+msgid "General Options"
+msgstr "Üldseaded"
+
+#: Mailman/Gui/General.py:46
+msgid "Conceal the member's address"
+msgstr "Peida liikme aadress"
+
+#: Mailman/Gui/General.py:47
+msgid "Acknowledge the member's posting"
+msgstr "Saada liikmele kinnitus tema kirja listi saatmise kohta"
+
+#: Mailman/Gui/General.py:48
+msgid "Do not send a copy of a member's own post"
+msgstr "Ära saada liikmele koopiaid tema enda kirjadest"
+
+#: Mailman/Gui/General.py:50
+msgid "Filter out duplicate messages to list members (if possible)"
+msgstr "Filtreeri listi liikmete duplikaatkirju (kui võimalik)"
+
+#: Mailman/Gui/General.py:57
+msgid ""
+"Fundamental list characteristics, including descriptive\n"
+" info and basic behaviors."
+msgstr "Üldseadistused ja kirjeldused."
+
+#: Mailman/Gui/General.py:60
+msgid "General list personality"
+msgstr "General list personality"
+
+#: Mailman/Gui/General.py:63
+msgid "The public name of this list (make case-changes only)."
+msgstr "Listi nimi (muuta tohib ainult suuri tähti väikesteks ja vastupidi)"
+
+#: Mailman/Gui/General.py:64
+msgid ""
+"The capitalization of this name can be changed to make it\n"
+" presentable in polite company as a proper noun, or to make an\n"
+" acronym part all upper case, etc. However, the name will be\n"
+" advertised as the email address (e.g., in subscribe "
+"confirmation\n"
+" notices), so it should <em>not</em> be otherwise altered. "
+"(Email\n"
+" addresses are not case sensitive, but they are sensitive to\n"
+" almost everything else :-)"
+msgstr ""
+
+#: Mailman/Gui/General.py:73
+msgid ""
+"The list administrator email addresses. Multiple\n"
+" administrator addresses, each on separate line is okay."
+msgstr ""
+"Halduri meiliaadress. Kui aadresse on mitu\n"
+" siis kirjuta need eraldi ridadele. "
+
+#: Mailman/Gui/General.py:76
+msgid ""
+"There are two ownership roles associated with each mailing\n"
+" list. The <em>list administrators</em> are the people who "
+"have\n"
+" ultimate control over all parameters of this mailing list. "
+"They\n"
+" are able to change any list configuration variable available\n"
+" through these administration web pages.\n"
+"\n"
+" <p>The <em>list moderators</em> have more limited permissions;\n"
+" they are not able to change any list configuration variable, "
+"but\n"
+" they are allowed to tend to pending administration requests,\n"
+" including approving or rejecting held subscription requests, "
+"and\n"
+" disposing of held postings. Of course, the <em>list\n"
+" administrators</em> can also tend to pending requests.\n"
+"\n"
+" <p>In order to split the list ownership duties into\n"
+" administrators and moderators, you must\n"
+" <a href=\"passwords\">set a separate moderator password</a>,\n"
+" and also provide the <a href=\"?VARHELP=general/moderator"
+"\">email\n"
+" addresses of the list moderators</a>. Note that the field you\n"
+" are changing here specifies the list administrators."
+msgstr ""
+"<em>Listi haldurid</em> on isikud, kel on täielik kontroll listi "
+"seadistuste\n"
+"üle. Nad saavad seadistust muuta nende veebilehtede kaudu.\n"
+"\n"
+"<p><em>Listi moderaatoritel</em> on vähem õigusi; nad ei saa listi "
+"seadistusi\n"
+"muuta, kuid neil on õigused administratiivtaotluste läbivaatamiseks ja\n"
+"otsuste langetamiseks, näiteks kinnipeetud tellimissoovide aktsepteerimiseks "
+"või nendest\n"
+"keeldumiseks ning kinnipeetud kirjade järjekorrast eemaldamiseks. "
+"Iseenesestmõistetavalt saavad\n"
+"neid toiminguid teostada ka <em>listi haldurid</em>.\n"
+"\n"
+"<p>Listi haldamisega seotud ülesannete jaotamiseks listi haldurite ja "
+"moderaarite vahel\n"
+"pead sisestama <a href=\"passwords\">moderaatoriparooli</a>,\n"
+"ja <a href=\"?VARHELP=general/moderator\">moderaatorite meiliaadressid</a>."
+"Sellesse välja sisestage listi haldurite aadressid."
+
+#: Mailman/Gui/General.py:97
+msgid ""
+"The list moderator email addresses. Multiple\n"
+" moderator addresses, each on separate line is okay."
+msgstr ""
+"Moderaatori meiliaadress. Kui aadresse on mitu\n"
+" siis kirjuta need eraldi ridadele. "
+
+#: Mailman/Gui/General.py:100
+msgid ""
+"There are two ownership roles associated with each mailing\n"
+" list. The <em>list administrators</em> are the people who "
+"have\n"
+" ultimate control over all parameters of this mailing list. "
+"They\n"
+" are able to change any list configuration variable available\n"
+" through these administration web pages.\n"
+"\n"
+" <p>The <em>list moderators</em> have more limited permissions;\n"
+" they are not able to change any list configuration variable, "
+"but\n"
+" they are allowed to tend to pending administration requests,\n"
+" including approving or rejecting held subscription requests, "
+"and\n"
+" disposing of held postings. Of course, the <em>list\n"
+" administrators</em> can also tend to pending requests.\n"
+"\n"
+" <p>In order to split the list ownership duties into\n"
+" administrators and moderators, you must\n"
+" <a href=\"passwords\">set a separate moderator password</a>,\n"
+" and also provide the email addresses of the list moderators in\n"
+" this section. Note that the field you are changing here\n"
+" specifies the list moderators."
+msgstr ""
+
+#: Mailman/Gui/General.py:121
+msgid "A terse phrase identifying this list."
+msgstr "Lühike listi tutvustav fraas."
+
+#: Mailman/Gui/General.py:123
+msgid ""
+"This description is used when the mailing list is listed with\n"
+" other mailing lists, or in headers, and so forth. It "
+"should\n"
+" be as succinct as you can get it, while still identifying "
+"what\n"
+" the list is."
+msgstr ""
+
+#: Mailman/Gui/General.py:129
+msgid ""
+"An introductory description - a few paragraphs - about the\n"
+" list. It will be included, as html, at the top of the "
+"listinfo\n"
+" page. Carriage returns will end a paragraph - see the details\n"
+" for more info."
+msgstr ""
+
+#: Mailman/Gui/General.py:133
+msgid ""
+"The text will be treated as html <em>except</em> that\n"
+" newlines will be translated to &lt;br&gt; - so you can use "
+"links,\n"
+" preformatted text, etc, but don't put in carriage returns "
+"except\n"
+" where you mean to separate paragraphs. And review your changes "
+"-\n"
+" bad html (like some unterminated HTML constructs) can prevent\n"
+" display of the entire listinfo page."
+msgstr ""
+
+#: Mailman/Gui/General.py:141
+msgid "Prefix for subject line of list postings."
+msgstr "Listi kirjade teemale lisatav prefiks."
+
+#: Mailman/Gui/General.py:142
+msgid ""
+"This text will be prepended to subject lines of messages\n"
+" posted to the list, to distinguish mailing list messages in in\n"
+" mailbox summaries. Brevity is premium here, it's ok to "
+"shorten\n"
+" long mailing list names to something more concise, as long as "
+"it\n"
+" still identifies the mailing list."
+msgstr ""
+
+#: Mailman/Gui/General.py:149
+msgid ""
+"Hide the sender of a message, replacing it with the list\n"
+" address (Removes From, Sender and Reply-To fields)"
+msgstr ""
+"Asendada saatja aadress listi omaga (From, Sender ja Reply-To päised "
+"eemaldatakse)"
+
+#: Mailman/Gui/General.py:152
+msgid "<tt>Reply-To:</tt> header munging"
+msgstr "<tt>Reply-To:</tt> päise töötlemine"
+
+#: Mailman/Gui/General.py:155
+msgid ""
+"Should any existing <tt>Reply-To:</tt> header found in the\n"
+" original message be stripped? If so, this will be done\n"
+" regardless of whether an explict <tt>Reply-To:</tt> header is\n"
+" added by Mailman or not."
+msgstr ""
+
+#: Mailman/Gui/General.py:161
+msgid "Explicit address"
+msgstr "Määratud aadressile"
+
+#: Mailman/Gui/General.py:161
+msgid "Poster"
+msgstr "Saatja"
+
+#: Mailman/Gui/General.py:161
+msgid "This list"
+msgstr "Listi"
+
+#: Mailman/Gui/General.py:162
+msgid ""
+"Where are replies to list messages directed?\n"
+" <tt>Poster</tt> is <em>strongly</em> recommended for most "
+"mailing\n"
+" lists."
+msgstr ""
+"Kuhu suunata vastused listikirjadele?\n"
+" <tt>Saatja</tt> on soovitav valik enamike listide jaoks."
+
+#: Mailman/Gui/General.py:167
+msgid ""
+"This option controls what Mailman does to the\n"
+" <tt>Reply-To:</tt> header in messages flowing through this\n"
+" mailing list. When set to <em>Poster</em>, no <tt>Reply-To:</"
+"tt>\n"
+" header is added by Mailman, although if one is present in the\n"
+" original message, it is not stripped. Setting this value to\n"
+" either <em>This list</em> or <em>Explicit address</em> causes\n"
+" Mailman to insert a specific <tt>Reply-To:</tt> header in all\n"
+" messages, overriding the header in the original message if\n"
+" necessary (<em>Explicit address</em> inserts the value of <a\n"
+" href=\"?VARHELP=general/reply_to_address\">reply_to_address</"
+"a>).\n"
+" \n"
+" <p>There are many reasons not to introduce or override the\n"
+" <tt>Reply-To:</tt> header. One is that some posters depend on\n"
+" their own <tt>Reply-To:</tt> settings to convey their valid\n"
+" return address. Another is that modifying <tt>Reply-To:</tt>\n"
+" makes it much more difficult to send private replies. See <a\n"
+" href=\"http://www.unicom.com/pw/reply-to-harmful.html\">`Reply-"
+"To'\n"
+" Munging Considered Harmful</a> for a general discussion of "
+"this\n"
+" issue. See <a\n"
+" href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml"
+"\">Reply-To\n"
+" Munging Considered Useful</a> for a dissenting opinion.\n"
+"\n"
+" <p>Some mailing lists have restricted posting privileges, with "
+"a\n"
+" parallel list devoted to discussions. Examples are `patches' "
+"or\n"
+" `checkin' lists, where software changes are posted by a "
+"revision\n"
+" control system, but discussion about the changes occurs on a\n"
+" developers mailing list. To support these types of mailing\n"
+" lists, select <tt>Explicit address</tt> and set the\n"
+" <tt>Reply-To:</tt> address below to point to the parallel\n"
+" list."
+msgstr ""
+
+#: Mailman/Gui/General.py:199
+msgid "Explicit <tt>Reply-To:</tt> header."
+msgstr "Kirjadele määratav <tt>Reply-To</tt> päis"
+
+#: Mailman/Gui/General.py:201
+msgid ""
+"This is the address set in the <tt>Reply-To:</tt> header\n"
+" when the <a\n"
+" href=\"?VARHELP=general/reply_goes_to_list"
+"\">reply_goes_to_list</a>\n"
+" option is set to <em>Explicit address</em>.\n"
+"\n"
+" <p>There are many reasons not to introduce or override the\n"
+" <tt>Reply-To:</tt> header. One is that some posters depend on\n"
+" their own <tt>Reply-To:</tt> settings to convey their valid\n"
+" return address. Another is that modifying <tt>Reply-To:</tt>\n"
+" makes it much more difficult to send private replies. See <a\n"
+" href=\"http://www.unicom.com/pw/reply-to-harmful.html\">`Reply-"
+"To'\n"
+" Munging Considered Harmful</a> for a general discussion of "
+"this\n"
+" issue. See <a\n"
+" href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml"
+"\">Reply-To\n"
+" Munging Considered Useful</a> for a dissenting opinion.\n"
+"\n"
+" <p>Some mailing lists have restricted posting privileges, with "
+"a\n"
+" parallel list devoted to discussions. Examples are `patches' "
+"or\n"
+" `checkin' lists, where software changes are posted by a "
+"revision\n"
+" control system, but discussion about the changes occurs on a\n"
+" developers mailing list. To support these types of mailing\n"
+" lists, specify the explicit <tt>Reply-To:</tt> address here. "
+"You\n"
+" must also specify <tt>Explicit address</tt> in the\n"
+" <tt>reply_goes_to_list</tt>\n"
+" variable.\n"
+"\n"
+" <p>Note that if the original message contains a\n"
+" <tt>Reply-To:</tt> header, it will not be changed."
+msgstr ""
+
+#: Mailman/Gui/General.py:230
+msgid "Umbrella list settings"
+msgstr ""
+
+#: Mailman/Gui/General.py:233
+msgid ""
+"Send password reminders to, eg, \"-owner\" address instead of\n"
+" directly to user."
+msgstr ""
+
+#: Mailman/Gui/General.py:236
+msgid ""
+"Set this to yes when this list is intended to cascade only\n"
+" to other mailing lists. When set, meta notices like\n"
+" confirmations and password reminders will be directed to an\n"
+" address derived from the member's address - it will have the\n"
+" value of \"umbrella_member_suffix\" appended to the member's\n"
+" account name."
+msgstr ""
+
+#: Mailman/Gui/General.py:244
+msgid ""
+"Suffix for use when this list is an umbrella for other\n"
+" lists, according to setting of previous \"umbrella_list\"\n"
+" setting."
+msgstr ""
+
+#: Mailman/Gui/General.py:248
+msgid ""
+"When \"umbrella_list\" is set to indicate that this list has\n"
+" other mailing lists as members, then administrative notices "
+"like\n"
+" confirmations and password reminders need to not be sent to "
+"the\n"
+" member list addresses, but rather to the owner of those member\n"
+" lists. In that case, the value of this setting is appended to\n"
+" the member's account name for such notices. `-owner' is the\n"
+" typical choice. This setting has no effect when \"umbrella_list"
+"\"\n"
+" is \"No\"."
+msgstr ""
+
+#: Mailman/Gui/General.py:260
+msgid "Send monthly password reminders?"
+msgstr "Saata iga kuu alguses parooli meeldetuletus?"
+
+#: Mailman/Gui/General.py:262
+msgid ""
+"Turn this on if you want password reminders to be sent once\n"
+" per month to your members. Note that members may disable "
+"their\n"
+" own individual password reminders."
+msgstr ""
+"Lülita see sisse, kui tahad, et listi tellijatele saadetaks kord kuus "
+"parooli meeldetuletus. Tellijatel on võimalik seda valikut ka ise muuta."
+
+#: Mailman/Gui/General.py:267
+msgid ""
+"List-specific text prepended to new-subscriber welcome\n"
+" message"
+msgstr "Tekst, mis lisatakse uuele tellijale saadetava tervitusele."
+
+#: Mailman/Gui/General.py:270
+msgid ""
+"This value, if any, will be added to the front of the\n"
+" new-subscriber welcome message. The rest of the welcome "
+"message\n"
+" already describes the important addresses and URLs for the\n"
+" mailing list, so you don't need to include any of that kind of\n"
+" stuff here. This should just contain mission-specific kinds "
+"of\n"
+" things, like etiquette policies or team orientation, or that "
+"kind\n"
+" of thing.\n"
+"\n"
+" <p>Note that this text will be wrapped, according to the\n"
+" following rules:\n"
+" <ul><li>Each paragraph is filled so that no line is longer "
+"than\n"
+" 70 characters.\n"
+" <li>Any line that begins with whitespace is not filled.\n"
+" <li>A blank line separates paragraphs.\n"
+" </ul>"
+msgstr ""
+"Siia kirjutatud tekst lisatakse uuele tellijale saadetava tervituse algusse. "
+"Tervituse tekstis on juba kirjeldatud olulised meiliaadressid ja URLid, nii "
+"et siia ei pea seda infot kirjutama. Siin võib tutvustada näiteks listi "
+"reegleid või muud taolist. <p>Oluline on teada, et siia kirjutatud tekst "
+"vormindatakse ümber vastavalt järgmistele reeglitele:\n"
+"<ul><li>Tekst lõigu sees paigutatakse ümber nii, et read oleksid võimalikult "
+"ühtlaselt täidetud, aga mitte pikemad kui 70 märki.<li>Tühiku(te) või "
+"tabulaatoritega algavaid read jäetakse selliseks nagu nad on. <li>Tühi rida "
+"eraldab lõike. </ul> "
+
+#: Mailman/Gui/General.py:287
+msgid "Send welcome message to newly subscribed members?"
+msgstr "Saata uutele tellijatele tervitus?"
+
+#: Mailman/Gui/General.py:288
+msgid ""
+"Turn this off only if you plan on subscribing people manually\n"
+" and don't want them to know that you did so. This option is "
+"most\n"
+" useful for transparently migrating lists from some other "
+"mailing\n"
+" list manager to Mailman."
+msgstr ""
+"Lülita see välja ainult siis, kui soovid uusi tellijaid ise lisada ja ei "
+"taha, et neid sellest teavitataks. See valik on kasulik peamiselt listide "
+"teistest listserveritest Mailmani migreermisel. "
+
+#: Mailman/Gui/General.py:294
+msgid ""
+"Text sent to people leaving the list. If empty, no special\n"
+" text will be added to the unsubscribe message."
+msgstr "Tekst, mis lisatakse tellimuse lõpetamisest teatavale kirjale."
+
+#: Mailman/Gui/General.py:298
+msgid "Send goodbye message to members when they are unsubscribed?"
+msgstr "Saata tellimuse lõpetajatele hüvastijätukiri?"
+
+#: Mailman/Gui/General.py:301
+msgid ""
+"Should the list moderators get immediate notice of new\n"
+" requests, as well as daily notices about collected ones?"
+msgstr "Teavitada moderaatoreid uutest nõuetest kohe kui neid tekib"
+
+#: Mailman/Gui/General.py:304
+msgid ""
+"List moderators (and list administrators) are sent daily\n"
+" reminders of requests pending approval, like subscriptions to "
+"a\n"
+" moderated list, or postings that are being held for one reason "
+"or\n"
+" another. Setting this option causes notices to be sent\n"
+" immediately on the arrival of new requests as well."
+msgstr ""
+"Listi moderaatoritele (ja halduritele) saadetakse iga päev meeldetuletusi "
+"ootel olevatest modereerimisnõuetest - task"
+
+#: Mailman/Gui/General.py:311
+msgid ""
+"Should administrator get notices of subscribes and\n"
+" unsubscribes?"
+msgstr "Teavitada haldurit uutest tellijatest ja tellimuste lõpetamistest?"
+
+#: Mailman/Gui/General.py:316
+msgid "Send mail to poster when their posting is held for approval?"
+msgstr "Teavitada postitajat, kui nende saadetud kiri ülevaatuseks kinni peetakse?"
+
+#: Mailman/Gui/General.py:318
+msgid ""
+"Approval notices are sent when mail triggers certain of the\n"
+" limits <em>except</em> routine list moderation and spam "
+"filters,\n"
+" for which notices are <em>not</em> sent. This option "
+"overrides\n"
+" ever sending the notice."
+msgstr ""
+
+#: Mailman/Gui/General.py:323
+msgid "Additional settings"
+msgstr "Teised seaded"
+
+#: Mailman/Gui/General.py:326
+msgid "Emergency moderation of all list traffic."
+msgstr "Kõik listi saadetud kirjad peetakse ülevaatuseks kinni."
+
+#: Mailman/Gui/General.py:327
+msgid ""
+"When this option is enabled, all list traffic is emergency\n"
+" moderated, i.e. held for moderation. Turn this option on when\n"
+" your list is experiencing a flamewar and you want a cooling "
+"off\n"
+" period."
+msgstr ""
+
+#: Mailman/Gui/General.py:339
+msgid ""
+"Default options for new members joining this list.<input\n"
+" type=\"hidden\" name=\"new_member_options\" value=\"ignore\">"
+msgstr ""
+"Vaikeseadistused uutele tellijatele <input\n"
+" type=\"hidden\" name=\"new_member_options\" value=\"ignore\">"
+
+#: Mailman/Gui/General.py:342
+msgid ""
+"When a new member is subscribed to this list, their initial\n"
+" set of options is taken from the this variable's setting."
+msgstr ""
+
+#: Mailman/Gui/General.py:346
+msgid ""
+"(Administrivia filter) Check postings and intercept ones\n"
+" that seem to be administrative requests?"
+msgstr ""
+
+#: Mailman/Gui/General.py:349
+msgid ""
+"Administrivia tests will check postings to see whether it's\n"
+" really meant as an administrative request (like subscribe,\n"
+" unsubscribe, etc), and will add it to the the administrative\n"
+" requests queue, notifying the administrator of the new "
+"request,\n"
+" in the process."
+msgstr ""
+
+#: Mailman/Gui/General.py:356
+msgid ""
+"Maximum length in kilobytes (KB) of a message body. Use 0\n"
+" for no limit."
+msgstr "Listikirja maksimaalne lubatud pikkus (KB). 0 tähendab, et limiiti pole."
+
+#: Mailman/Gui/General.py:360
+msgid "Host name this list prefers for email."
+msgstr "Hosti nimi, mida see list kasutab."
+
+#: Mailman/Gui/General.py:362
+msgid ""
+"The \"host_name\" is the preferred name for email to\n"
+" mailman-related addresses on this host, and generally should "
+"be\n"
+" the mail host's exchanger address, if any. This setting can "
+"be\n"
+" useful for selecting among alternative names of a host that "
+"has\n"
+" multiple addresses."
+msgstr ""
+
+#: Mailman/Gui/General.py:374
+msgid ""
+"Should messages from this mailing list include the\n"
+" <a href=\"http://www.faqs.org/rfcs/rfc2369.html\">RFC 2369</"
+"a>\n"
+" (i.e. <tt>List-*</tt>) headers? <em>Yes</em> is highly\n"
+" recommended."
+msgstr ""
+"Lisada selle listi kirjadele \n"
+" <a href=\"http://www.faqs.org/rfcs/rfc2369.html\">RFC 2369</"
+"a>\n"
+" (s.t. <tt>List-*</tt>) päised? <em>Jah</em> on soovitav."
+
+#: Mailman/Gui/General.py:379
+msgid ""
+"RFC 2369 defines a set of List-* headers that are\n"
+" normally added to every message sent to the list "
+"membership.\n"
+" These greatly aid end-users who are using standards "
+"compliant\n"
+" mail readers. They should normally always be enabled.\n"
+"\n"
+" <p>However, not all mail readers are standards compliant "
+"yet,\n"
+" and if you have a large number of members who are using\n"
+" non-compliant mail readers, they may be annoyed at these\n"
+" headers. You should first try to educate your members as "
+"to\n"
+" why these headers exist, and how to hide them in their "
+"mail\n"
+" clients. As a last resort you can disable these headers, "
+"but\n"
+" this is not recommended (and in fact, your ability to "
+"disable\n"
+" these headers may eventually go away)."
+msgstr ""
+
+#: Mailman/Gui/General.py:397
+msgid "Should postings include the <tt>List-Post:</tt> header?"
+msgstr ""
+
+#: Mailman/Gui/General.py:398
+msgid ""
+"The <tt>List-Post:</tt> header is one of the headers\n"
+" recommended by\n"
+" <a href=\"http://www.faqs.org/rfcs/rfc2369.html\">RFC 2369</"
+"a>.\n"
+" However for some <em>announce-only</em> mailing lists, only a\n"
+" very select group of people are allowed to post to the list; "
+"the\n"
+" general membership is usually not allowed to post. For lists "
+"of\n"
+" this nature, the <tt>List-Post:</tt> header is misleading.\n"
+" Select <em>No</em> to disable the inclusion of this header. "
+"(This\n"
+" does not affect the inclusion of the other <tt>List-*:</tt>\n"
+" headers.)"
+msgstr ""
+
+#: Mailman/Gui/General.py:416
+msgid ""
+"<b>real_name</b> attribute not\n"
+" changed! It must differ from the list's name by case\n"
+" only."
+msgstr ""
+
+#: Mailman/Gui/General.py:437
+msgid ""
+"You cannot add a Reply-To: to an explicit\n"
+" address if that address is blank. Resetting these values."
+msgstr ""
+
+#: Mailman/Gui/Language.py:34
+msgid "Language&nbsp;options"
+msgstr "Keeled"
+
+#: Mailman/Gui/Language.py:66
+msgid "Natural language (internationalization) options."
+msgstr ""
+
+#: Mailman/Gui/Language.py:71
+msgid "Default language for this list."
+msgstr "Vaikimisi kasutatakse keelt:"
+
+#: Mailman/Gui/Language.py:72
+msgid ""
+"This is the default natural language for this mailing list.\n"
+" If <a href=\"?VARHELP=language/available_languages\">more than "
+"one\n"
+" language</a> is supported then users will be able to select "
+"their\n"
+" own preferences for when they interact with the list. All "
+"other\n"
+" interactions will be conducted in the default language. This\n"
+" applies to both web-based and email-based messages, but not to\n"
+" email posted by list members."
+msgstr ""
+
+#: Mailman/Gui/Language.py:82
+msgid "Languages supported by this list."
+msgstr "Keeled, mida selle listi juures on võimalik kasutada"
+
+#: Mailman/Gui/Language.py:84
+msgid ""
+"These are all the natural languages supported by this list.\n"
+" Note that the\n"
+" <a href=\"?VARHELP=language/preferred_language\">default\n"
+" language</a> must be included."
+msgstr ""
+
+#: Mailman/Gui/Language.py:90
+msgid "Always"
+msgstr "Alati"
+
+#: Mailman/Gui/Language.py:90
+msgid "As needed"
+msgstr "Vajadusel"
+
+#: Mailman/Gui/Language.py:90
+msgid "Never"
+msgstr "Ei"
+
+#: Mailman/Gui/Language.py:91
+msgid ""
+"Encode the\n"
+" <a href=\"?VARHELP=general/subject_prefix\">subject\n"
+" prefix</a> even when it consists of only ASCII characters?"
+msgstr ""
+"Kodeerida\n"
+" <a href=\"?VARHELP=general/subject_prefix\">teema\n"
+" prefiks</a> ka siis, kui see sisaldab ainult ASCII märke?"
+
+#: Mailman/Gui/Language.py:95
+msgid ""
+"If your mailing list's default language uses a non-ASCII\n"
+" character set and the prefix contains non-ASCII characters, "
+"the\n"
+" prefix will always be encoded according to the relevant\n"
+" standards. However, if your prefix contains only ASCII\n"
+" characters, you may want to set this option to <em>Never</em> "
+"to\n"
+" disable prefix encoding. This can make the subject headers\n"
+" slightly more readable for users with mail readers that don't\n"
+" properly handle non-ASCII encodings.\n"
+"\n"
+" <p>Note however, that if your mailing list receives both "
+"encoded\n"
+" and unencoded subject headers, you might want to choose <em>As\n"
+" needed</em>. Using this setting, Mailman will not encode "
+"ASCII\n"
+" prefixes when the rest of the header contains only ASCII\n"
+" characters, but if the original header contains non-ASCII\n"
+" characters, it will encode the prefix. This avoids an "
+"ambiguity\n"
+" in the standards which could cause some mail readers to "
+"display\n"
+" extra, or missing spaces between the prefix and the original\n"
+" header."
+msgstr ""
+
+#: Mailman/Gui/Membership.py:26
+msgid "Membership&nbsp;Management"
+msgstr "Tellijad"
+
+#: Mailman/Gui/Membership.py:30
+msgid "Membership&nbsp;List"
+msgstr "Tellijate&nbsp;nimestik"
+
+#: Mailman/Gui/Membership.py:31
+msgid "Mass&nbsp;Subscription"
+msgstr "Aadresside lisamine"
+
+#: Mailman/Gui/Membership.py:32
+msgid "Mass&nbsp;Removal"
+msgstr "Aadresside eemaldamine"
+
+#: Mailman/Gui/NonDigest.py:34
+msgid "Non-digest&nbsp;options"
+msgstr "Üksikkirjad"
+
+#: Mailman/Gui/NonDigest.py:42
+msgid "Policies concerning immediately delivered list traffic."
+msgstr ""
+
+#: Mailman/Gui/NonDigest.py:45
+msgid ""
+"Can subscribers choose to receive mail immediately, rather\n"
+" than in batched digests?"
+msgstr ""
+
+#: Mailman/Gui/NonDigest.py:52
+msgid "Full Personalization"
+msgstr ""
+
+#: Mailman/Gui/NonDigest.py:54
+msgid ""
+"Should Mailman personalize each non-digest delivery?\n"
+" This is often useful for announce-only lists, but <a\n"
+" href=\"?VARHELP=nondigest/personalize\">read the details</"
+"a>\n"
+" section for a discussion of important performance\n"
+" issues."
+msgstr ""
+
+#: Mailman/Gui/NonDigest.py:60
+msgid ""
+"Normally, Mailman sends the regular delivery messages to\n"
+" the mail server in batches. This is much more efficent\n"
+" because it reduces the amount of traffic between Mailman "
+"and\n"
+" the mail server.\n"
+"\n"
+" <p>However, some lists can benefit from a more "
+"personalized\n"
+" approach. In this case, Mailman crafts a new message for\n"
+" each member on the regular delivery list. Turning this\n"
+" feature on may degrade the performance of your site, so "
+"you\n"
+" need to carefully consider whether the trade-off is worth "
+"it,\n"
+" or whether there are other ways to accomplish what you "
+"want.\n"
+" You should also carefully monitor your system load to make\n"
+" sure it is acceptable.\n"
+"\n"
+" <p>Select <em>No</em> to disable personalization and send\n"
+" messages to the members in batches. Select <em>Yes</em> "
+"to\n"
+" personalize deliveries and allow additional substitution\n"
+" variables in message headers and footers (see below). In\n"
+" addition, by selecting <em>Full Personalization</em>, the\n"
+" <code>To</code> header of posted messages will be modified "
+"to\n"
+" include the member's address instead of the list's posting\n"
+" address.\n"
+"\n"
+" <p>When personalization is enabled, a few more expansion\n"
+" variables that can be included in the <a\n"
+" href=\"?VARHELP=nondigest/msg_header\">message header</a> "
+"and\n"
+" <a href=\"?VARHELP=nondigest/msg_footer\">message footer</"
+"a>.\n"
+"\n"
+" <p>These additional substitution variables will be "
+"available\n"
+" for your headers and footers, when this feature is "
+"enabled:\n"
+"\n"
+" <ul><li><b>user_address</b> - The address of the user,\n"
+" coerced to lower case.\n"
+" <li><b>user_delivered_to</b> - The case-preserved "
+"address\n"
+" that the user is subscribed with.\n"
+" <li><b>user_password</b> - The user's password.\n"
+" <li><b>user_name</b> - The user's full name.\n"
+" <li><b>user_optionsurl</b> - The url to the user's "
+"option\n"
+" page.\n"
+" </ul>\n"
+" "
+msgstr ""
+
+#: Mailman/Gui/NonDigest.py:108
+msgid "Header added to mail sent to regular list members"
+msgstr "Kirjade päis"
+
+#: Mailman/Gui/NonDigest.py:109
+msgid ""
+"Text prepended to the top of every immediately-delivery\n"
+" message. "
+msgstr "Tekst, mis lisatakse iga kirja algusse."
+
+#: Mailman/Gui/NonDigest.py:114
+msgid "Footer added to mail sent to regular list members"
+msgstr "Kirjade jalus"
+
+#: Mailman/Gui/NonDigest.py:115
+msgid ""
+"Text appended to the bottom of every immediately-delivery\n"
+" message. "
+msgstr "Tekst, mis lisatakse iga kirja lõppu. "
+
+#: Mailman/Gui/Passwords.py:27
+msgid "Passwords"
+msgstr "Paroolid"
+
+#: Mailman/Gui/Privacy.py:28
+msgid "Privacy options"
+msgstr "Privaatsus"
+
+#: Mailman/Gui/Privacy.py:32
+msgid "Subscription&nbsp;rules"
+msgstr "Tellimisreeglid"
+
+#: Mailman/Gui/Privacy.py:33
+msgid "Sender&nbsp;filters"
+msgstr "Saatja&nbsp;filtrid"
+
+#: Mailman/Gui/Privacy.py:34
+msgid "Recipient&nbsp;filters"
+msgstr "Saaja&nbsp;filtrid"
+
+#: Mailman/Gui/Privacy.py:35
+msgid "Spam&nbsp;filters"
+msgstr "Spammifiltrid"
+
+#: Mailman/Gui/Privacy.py:49 Mailman/Gui/Usenet.py:61
+msgid "None"
+msgstr "Puudub"
+
+#: Mailman/Gui/Privacy.py:50 Mailman/Gui/Privacy.py:73
+msgid "Confirm"
+msgstr "Kinnita"
+
+#: Mailman/Gui/Privacy.py:51 Mailman/Gui/Privacy.py:74
+msgid "Require approval"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:52 Mailman/Gui/Privacy.py:75
+msgid "Confirm and approve"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:54 Mailman/Gui/Privacy.py:77
+msgid "What steps are required for subscription?<br>"
+msgstr "Mida peab liitumiseks tegema?<br>"
+
+#: Mailman/Gui/Privacy.py:55
+msgid ""
+"None - no verification steps (<em>Not\n"
+" Recommended </em>)<br>\n"
+" Confirm (*) - email confirmation step required "
+"<br>\n"
+" Require approval - require list administrator\n"
+" Approval for subscriptions <br>\n"
+" Confirm and approve - both confirm and approve\n"
+" \n"
+" <p>(*) when someone requests a subscription,\n"
+" Mailman sends them a notice with a unique\n"
+" subscription request number that they must reply "
+"to\n"
+" in order to subscribe.<br>\n"
+"\n"
+" This prevents mischievous (or malicious) people\n"
+" from creating subscriptions for others without\n"
+" their consent."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:78
+msgid ""
+"Confirm (*) - email confirmation required <br>\n"
+" Require approval - require list administrator\n"
+" approval for subscriptions <br>\n"
+" Confirm and approve - both confirm and approve\n"
+" \n"
+" <p>(*) when someone requests a subscription,\n"
+" Mailman sends them a notice with a unique\n"
+" subscription request number that they must reply "
+"to\n"
+" in order to subscribe.<br> This prevents\n"
+" mischievous (or malicious) people from creating\n"
+" subscriptions for others without their consent."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:94
+msgid ""
+"This section allows you to configure subscription and\n"
+" membership exposure policy. You can also control whether this\n"
+" list is public or not. See also the\n"
+" <a href=\"%(admin)s/archive\">Archival Options</a> section for\n"
+" separate archive-related privacy settings."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:100
+msgid "Subscribing"
+msgstr "Tellimine"
+
+#: Mailman/Gui/Privacy.py:102
+msgid ""
+"Advertise this list when people ask what lists are on this\n"
+" machine?"
+msgstr "Näidata seda listi avalike listide nimekirjas?"
+
+#: Mailman/Gui/Privacy.py:108
+msgid ""
+"Is the list moderator's approval required for unsubscription\n"
+" requests? (<em>No</em> is recommended)"
+msgstr ""
+"Kas tellimuse lõpetamiseks on vaja moderaatori nõusolekut?\n"
+" (<em>Ei</em on soovitav)"
+
+#: Mailman/Gui/Privacy.py:111
+msgid ""
+"When members want to leave a list, they will make an\n"
+" unsubscription request, either via the web or via email.\n"
+" Normally it is best for you to allow open unsubscriptions so "
+"that\n"
+" users can easily remove themselves from mailing lists (they "
+"get\n"
+" really upset if they can't get off lists!).\n"
+"\n"
+" <p>For some lists though, you may want to impose moderator\n"
+" approval before an unsubscription request is processed. "
+"Examples\n"
+" of such lists include a corporate mailing list that all "
+"employees\n"
+" are required to be members of."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:122
+msgid "Ban list"
+msgstr "Must nimekiri"
+
+#: Mailman/Gui/Privacy.py:124
+msgid ""
+"List of addresses which are banned from membership in this\n"
+" mailing list."
+msgstr "Aadressid, millele on selle listi tellimine keelatud."
+
+#: Mailman/Gui/Privacy.py:127
+msgid ""
+"Addresses in this list are banned outright from subscribing\n"
+" to this mailing list, with no further moderation required. "
+"Add\n"
+" addresses one per line; start the line with a ^ character to\n"
+" designate a regular expression match."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:132
+msgid "Membership exposure"
+msgstr "Tellijate nimekiri"
+
+#: Mailman/Gui/Privacy.py:134
+msgid "Anyone"
+msgstr "Kõik "
+
+#: Mailman/Gui/Privacy.py:134
+msgid "List admin only"
+msgstr "Ainult listi haldur"
+
+#: Mailman/Gui/Privacy.py:134
+msgid "List members"
+msgstr "Listi liikmed"
+
+#: Mailman/Gui/Privacy.py:135
+msgid "Who can view subscription list?"
+msgstr "Kes saavad tellijate nimekirja näha?"
+
+#: Mailman/Gui/Privacy.py:137
+msgid ""
+"When set, the list of subscribers is protected by member or\n"
+" admin password authentication."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:141
+msgid ""
+"Show member addresses so they're not directly recognizable\n"
+" as email addresses?"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:143
+msgid ""
+"Setting this option causes member email addresses to be\n"
+" transformed when they are presented on list web pages (both in\n"
+" text and as links), so they're not trivially recognizable as\n"
+" email addresses. The intention is to prevent the addresses\n"
+" from being snarfed up by automated web scanners for use by\n"
+" spammers."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:153
+msgid ""
+"When a message is posted to the list, a series of\n"
+" moderation steps are take to decide whether the a moderator "
+"must\n"
+" first approve the message or not. This section contains the\n"
+" controls for moderation of both member and non-member postings.\n"
+"\n"
+" <p>Member postings are held for moderation if their\n"
+" <b>moderation flag</b> is turned on. You can control whether\n"
+" member postings are moderated by default or not.\n"
+"\n"
+" <p>Non-member postings can be automatically\n"
+" <a href=\"?VARHELP=privacy/sender/accept_these_nonmembers\"\n"
+" >accepted</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/hold_these_nonmembers\">held "
+"for\n"
+" moderation</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/reject_these_nonmembers\"\n"
+" >rejected</a> (bounced), or\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >discarded</a>,\n"
+" either individually or as a group. Any\n"
+" posting from a non-member who is not explicitly accepted,\n"
+" rejected, or discarded, will have their posting filtered by the\n"
+" <a href=\"?VARHELP=privacy/sender/generic_nonmember_action"
+"\">general\n"
+" non-member rules</a>.\n"
+"\n"
+" <p>In the text boxes below, add one address per line; start the\n"
+" line with a ^ character to designate a <a href=\n"
+" \"http://www.python.org/doc/current/lib/module-re.html\"\n"
+" >Python regular expression</a>. When entering backslashes, do "
+"so\n"
+" as if you were using Python raw strings (i.e. you generally "
+"just\n"
+" use a single backslash).\n"
+"\n"
+" <p>Note that non-regexp matches are always done first."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:186
+msgid "Member filters"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:189
+msgid "By default, should new list member postings be moderated?"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:191
+msgid ""
+"Each list member has a <em>moderation flag</em> which says\n"
+" whether messages from the list member can be posted directly "
+"to\n"
+" the list, or must first be approved by the list moderator. "
+"When\n"
+" the moderation flag is turned on, list member postings must be\n"
+" approved first. You, the list administrator can decide whether "
+"a\n"
+" specific individual's postings will be moderated or not.\n"
+"\n"
+" <p>When a new member is subscribed, their initial moderation "
+"flag\n"
+" takes its value from this option. Turn this option off to "
+"accept\n"
+" member postings by default. Turn this option on to, by "
+"default,\n"
+" moderate member postings first. You can always manually set "
+"an\n"
+" individual member's moderation bit by using the\n"
+" <a href=\"%(adminurl)s/members\">membership management\n"
+" screens</a>."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:207 Mailman/Gui/Privacy.py:281
+msgid "Hold"
+msgstr "Pea kinni"
+
+#: Mailman/Gui/Privacy.py:208
+msgid ""
+"Action to take when a moderated member posts to the\n"
+" list."
+msgstr "Mida teha modereeritud liikme poolt listi saadetud kirjadega?"
+
+#: Mailman/Gui/Privacy.py:210
+msgid ""
+"<ul><li><b>Hold</b> -- this holds the message for approval\n"
+" by the list moderators.\n"
+"\n"
+" <p><li><b>Reject</b> -- this automatically rejects the message "
+"by\n"
+" sending a bounce notice to the post's author. The text of the\n"
+" bounce notice can be <a\n"
+" href=\"?VARHELP=privacy/sender/member_moderation_notice\"\n"
+" >configured by you</a>.\n"
+"\n"
+" <p><li><b>Discard</b> -- this simply discards the message, "
+"with\n"
+" no notice sent to the post's author.\n"
+" </ul>"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:224
+msgid ""
+"Text to include in any\n"
+" <a href=\"?VARHELP/privacy/sender/member_moderation_action\"\n"
+" >rejection notice</a> to\n"
+" be sent to moderated members who post to this list."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:229
+msgid "Non-member filters"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:232
+msgid ""
+"List of non-member addresses whose postings should be\n"
+" automatically accepted."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:235
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" accepted with no further moderation applied. Add member\n"
+" addresses one per line; start the line with a ^ character to\n"
+" designate a regular expression match."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:241
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" immediately held for moderation."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:244
+msgid ""
+"Postings from any of these non-members will be immediately\n"
+" and automatically held for moderation by the list moderators.\n"
+" The sender will receive a notification message which will "
+"allow\n"
+" them to cancel their held message. Add member addresses one "
+"per\n"
+" line; start the line with a ^ character to designate a regular\n"
+" expression match."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:252
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" automatically rejected."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:255
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" rejected. In other words, their messages will be bounced back "
+"to\n"
+" the sender with a notification of automatic rejection. This\n"
+" option is not appropriate for known spam senders; their "
+"messages\n"
+" should be\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >automatically discarded</a>.\n"
+"\n"
+" <p>Add member addresses one per line; start the line with a ^\n"
+" character to designate a regular expression match."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:267
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" automatically discarded."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:270
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" discarded. That is, the message will be thrown away with no\n"
+" further processing or notification. The sender will not "
+"receive\n"
+" a notification or a bounce, however the list moderators can\n"
+" optionally <a href=\"?VARHELP=privacy/sender/"
+"forward_auto_discards\"\n"
+" >receive copies of auto-discarded messages.</a>.\n"
+"\n"
+" <p>Add member addresses one per line; start the line with a ^\n"
+" character to designate a regular expression match."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:282
+msgid ""
+"Action to take for postings from non-members for which no\n"
+" explicit action is defined."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:285
+msgid ""
+"When a post from a non-member is received, the message's\n"
+" sender is matched against the list of explicitly\n"
+" <a href=\"?VARHELP=privacy/sender/accept_these_nonmembers\"\n"
+" >accepted</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/hold_these_nonmembers\">held</"
+"a>,\n"
+" <a href=\"?VARHELP=privacy/sender/reject_these_nonmembers\"\n"
+" >rejected</a> (bounced), and\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >discarded</a> addresses. If no match is found, then this "
+"action\n"
+" is taken."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:297
+msgid ""
+"Should messages from non-members, which are automatically\n"
+" discarded, be forwarded to the list moderator?"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:303
+msgid ""
+"This section allows you to configure various filters based on\n"
+" the recipient of the message."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:306
+msgid "Recipient filters"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:310
+msgid ""
+"Must posts have list named in destination (to, cc) field\n"
+" (or be among the acceptable alias names, specified below)?"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:313
+msgid ""
+"Many (in fact, most) spams do not explicitly name their\n"
+" myriad destinations in the explicit destination addresses - in\n"
+" fact often the To: field has a totally bogus address for\n"
+" obfuscation. The constraint applies only to the stuff in the\n"
+" address before the '@' sign, but still catches all such spams.\n"
+"\n"
+" <p>The cost is that the list will not accept unhindered any\n"
+" postings relayed from other addresses, unless\n"
+"\n"
+" <ol>\n"
+" <li>The relaying address has the same name, or\n"
+"\n"
+" <li>The relaying address name is included on the options "
+"that\n"
+" specifies acceptable aliases for the list.\n"
+"\n"
+" </ol>"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:331
+msgid ""
+"Alias names (regexps) which qualify as explicit to or cc\n"
+" destination names for this list."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:334
+msgid ""
+"Alternate addresses that are acceptable when\n"
+" `require_explicit_destination' is enabled. This option takes "
+"a\n"
+" list of regular expressions, one per line, which is matched\n"
+" against every recipient address in the message. The matching "
+"is\n"
+" performed with Python's re.match() function, meaning they are\n"
+" anchored to the start of the string.\n"
+" \n"
+" <p>For backwards compatibility with Mailman 1.1, if the regexp\n"
+" does not contain an `@', then the pattern is matched against "
+"just\n"
+" the local part of the recipient address. If that match fails, "
+"or\n"
+" if the pattern does contain an `@', then the pattern is "
+"matched\n"
+" against the entire recipient address.\n"
+" \n"
+" <p>Matching against the local part is deprecated; in a future\n"
+" release, the pattern will always be matched against the entire\n"
+" recipient address."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:352
+msgid "Ceiling on acceptable number of recipients for a posting."
+msgstr "Max.lubatud adressaatide arv kirjal."
+
+#: Mailman/Gui/Privacy.py:354
+msgid ""
+"If a posting has this number, or more, of recipients, it is\n"
+" held for admin approval. Use 0 for no ceiling."
+msgstr ""
+"Kui listi saadetud meilil on nii palju või rohkem adressaate, siis\n"
+" peetakse meil ülevaatuseks kinni. Kui sisestad 0, siis seda\n"
+" kontrolli ei tehta."
+
+#: Mailman/Gui/Privacy.py:359
+msgid ""
+"This section allows you to configure various anti-spam\n"
+" filters posting filters, which can help reduce the amount of "
+"spam\n"
+" your list members end up receiving.\n"
+" "
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:364
+msgid "Anti-Spam filters"
+msgstr "Spammifiltrid"
+
+#: Mailman/Gui/Privacy.py:367
+msgid "Hold posts with header value matching a specified regexp."
+msgstr "Pea kinni kirjad, mille päised vastavad regulaaravaldisele."
+
+#: Mailman/Gui/Privacy.py:368
+msgid ""
+"Use this option to prohibit posts according to specific\n"
+" header values. The target value is a regular-expression for\n"
+" matching against the specified header. The match is done\n"
+" disregarding letter case. Lines beginning with '#' are "
+"ignored\n"
+" as comments.\n"
+"\n"
+" <p>For example:<pre>to: .*@public.com </pre> says to hold all\n"
+" postings with a <em>To:</em> mail header containing '@public."
+"com'\n"
+" anywhere among the addresses.\n"
+"\n"
+" <p>Note that leading whitespace is trimmed from the regexp. "
+"This\n"
+" can be circumvented in a number of ways, e.g. by escaping or\n"
+" bracketing it."
+msgstr ""
+
+#: Mailman/Gui/Topics.py:28
+msgid "Topics"
+msgstr "Teemad"
+
+#: Mailman/Gui/Topics.py:36
+msgid "List topic keywords"
+msgstr "Teema võtmesõnade nimekiri"
+
+#: Mailman/Gui/Topics.py:38
+msgid "Disabled"
+msgstr "Ei"
+
+#: Mailman/Gui/Topics.py:38
+msgid "Enabled"
+msgstr "Jah"
+
+#: Mailman/Gui/Topics.py:39
+msgid "Should the topic filter be enabled or disabled?"
+msgstr "Kas teemafilter on kasutusel?"
+
+#: Mailman/Gui/Topics.py:41
+msgid ""
+"The topic filter categorizes each incoming email message\n"
+" according to <a\n"
+" href=\"http://www.python.org/doc/current/lib/module-re.html"
+"\">regular\n"
+" expression filters</a> you specify below. If the message's\n"
+" <code>Subject:</code> or <code>Keywords:</code> header contains "
+"a\n"
+" match against a topic filter, the message is logically placed\n"
+" into a topic <em>bucket</em>. Each user can then choose to "
+"only\n"
+" receive messages from the mailing list for a particular topic\n"
+" bucket (or buckets). Any message not categorized in a topic\n"
+" bucket registered with the user is not delivered to the list.\n"
+"\n"
+" <p>Note that this feature only works with regular delivery, "
+"not\n"
+" digest delivery.\n"
+"\n"
+" <p>The body of the message can also be optionally scanned for\n"
+" <code>Subject:</code> and <code>Keywords:</code> headers, as\n"
+" specified by the <a\n"
+" href=\"?VARHELP=topics/topics_bodylines_limit"
+"\">topics_bodylines_limit</a>\n"
+" configuration variable."
+msgstr ""
+
+#: Mailman/Gui/Topics.py:62
+msgid "How many body lines should the topic matcher scan?"
+msgstr ""
+
+#: Mailman/Gui/Topics.py:64
+msgid ""
+"The topic matcher will scan this many lines of the message\n"
+" body looking for topic keyword matches. Body scanning stops "
+"when\n"
+" either this many lines have been looked at, or a non-header-"
+"like\n"
+" body line is encountered. By setting this value to zero, no "
+"body\n"
+" lines will be scanned (i.e. only the <code>Keywords:</code> "
+"and\n"
+" <code>Subject:</code> headers will be scanned). By setting "
+"this\n"
+" value to a negative number, then all body lines will be "
+"scanned\n"
+" until a non-header-like line is encountered.\n"
+" "
+msgstr ""
+
+#: Mailman/Gui/Topics.py:75
+msgid "Topic keywords, one per line, to match against each message."
+msgstr ""
+
+#: Mailman/Gui/Topics.py:77
+msgid ""
+"Each topic keyword is actually a regular expression, which is\n"
+" matched against certain parts of a mail message, specifically "
+"the\n"
+" <code>Keywords:</code> and <code>Subject:</code> message "
+"headers.\n"
+" Note that the first few lines of the body of the message can "
+"also\n"
+" contain a <code>Keywords:</code> and <code>Subject:</code>\n"
+" \"header\" on which matching is also performed."
+msgstr ""
+
+#: Mailman/Gui/Topics.py:116
+msgid ""
+"Topic specifications require both a name and\n"
+" a pattern. Incomplete topics will be ignored."
+msgstr ""
+
+#: Mailman/Gui/Topics.py:124
+msgid ""
+"The topic pattern `%(pattern)s' is not a\n"
+" legal regular expression. It will be discarded."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:25
+msgid "Mail&lt;-&gt;News&nbsp;gateways"
+msgstr "Useneti uudisegrupi lüüs"
+
+#: Mailman/Gui/Usenet.py:35
+msgid "Mail-to-News and News-to-Mail gateway services."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:37
+msgid "News server settings"
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:40
+msgid ""
+"The Internet address of the machine your News server is\n"
+" running on."
+msgstr "Newsiserveri hosti nimi"
+
+#: Mailman/Gui/Usenet.py:42
+msgid ""
+"The News server is not part of Mailman proper. You have to\n"
+" already have access to a NNTP server, and that NNTP server has "
+"to\n"
+" recognize the machine this mailing list runs on as a machine\n"
+" capable of reading and posting news."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:48
+msgid "The name of the Usenet group to gateway to and/or from."
+msgstr "Listiga seotud uudisegrupi nimi."
+
+#: Mailman/Gui/Usenet.py:51
+msgid ""
+"Should new posts to the mailing list be sent to the\n"
+" newsgroup?"
+msgstr "Edastada listi saadetud kirjad ka uudisegruppi?"
+
+#: Mailman/Gui/Usenet.py:55
+msgid ""
+"Should new posts to the newsgroup be sent to the mailing\n"
+" list?"
+msgstr "Edastada uudisegruppi postitatud kirjad listi?"
+
+#: Mailman/Gui/Usenet.py:58
+msgid "Forwarding options"
+msgstr "Edastamisseaded"
+
+#: Mailman/Gui/Usenet.py:61
+msgid "Moderated"
+msgstr "Modereeritav"
+
+#: Mailman/Gui/Usenet.py:61
+msgid "Open list, moderated group"
+msgstr "Avatud list, modereeritav grupp"
+
+#: Mailman/Gui/Usenet.py:64
+msgid "The moderation policy of the newsgroup."
+msgstr "Uudisegrupi modereeritavus"
+
+#: Mailman/Gui/Usenet.py:66
+msgid ""
+"This setting determines the moderation policy of the\n"
+" newsgroup and its interaction with the moderation policy of "
+"the\n"
+" mailing list. This only applies to the newsgroup that you are\n"
+" gatewaying <em>to</em>, so if you are only gatewaying from\n"
+" Usenet, or the newsgroup you are gatewaying to is not "
+"moderated,\n"
+" set this option to <em>None</em>.\n"
+"\n"
+" <p>If the newsgroup is moderated, you can set this mailing "
+"list\n"
+" up to be the moderation address for the newsgroup. By "
+"selecting\n"
+" <em>Moderated</em>, an additional posting hold will be placed "
+"in\n"
+" the approval process. All messages posted to the mailing list\n"
+" will have to be approved before being sent on to the "
+"newsgroup,\n"
+" or to the mailing list membership.\n"
+"\n"
+" <p><em>Note that if the message has an <tt>Approved</tt> "
+"header\n"
+" with the list's administrative password in it, this hold test\n"
+" will be bypassed, allowing privileged posters to send messages\n"
+" directly to the list and the newsgroup.</em>\n"
+"\n"
+" <p>Finally, if the newsgroup is moderated, but you want to "
+"have\n"
+" an open posting policy anyway, you should select <em>Open "
+"list,\n"
+" moderated group</em>. The effect of this is to use the normal\n"
+" Mailman moderation facilities, but to add an <tt>Approved</tt>\n"
+" header to all messages that are gatewayed to Usenet."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:92
+msgid "Prefix <tt>Subject:</tt> headers on postings gated to news?"
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:93
+msgid ""
+"Mailman prefixes <tt>Subject:</tt> headers with\n"
+" <a href=\"?VARHELP=general/subject_prefix\">text you can\n"
+" customize</a> and normally, this prefix shows up in messages\n"
+" gatewayed to Usenet. You can set this option to <em>No</em> "
+"to\n"
+" disable the prefix on gated messages. Of course, if you turn "
+"off\n"
+" normal <tt>Subject:</tt> prefixes, they won't be prefixed for\n"
+" gated messages either."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:101
+msgid "Mass catch up"
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:104
+msgid "Should Mailman perform a <em>catchup</em> on the newsgroup?"
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:105
+msgid ""
+"When you tell Mailman to perform a catchup on the newsgroup,\n"
+" this means that you want to start gating messages to the "
+"mailing\n"
+" list with the next new message found. All earlier messages on\n"
+" the newsgroup will be ignored. This is as if you were reading\n"
+" the newsgroup yourself, and you marked all current messages as\n"
+" <em>read</em>. By catching up, your mailing list members will\n"
+" not see any of the earlier messages."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:119
+msgid "Mass catchup completed"
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:131
+msgid ""
+"You cannot enable gatewaying unless both the\n"
+" <a href=\"?VARHELP=gateway/nntp_host\">news server field</a> "
+"and\n"
+" the <a href=\"?VARHELP=gateway/linked_newsgroup\">linked\n"
+" newsgroup</a> fields are filled in."
+msgstr ""
+"Lüüsi ei saa kasutada enne, kui <a href=\"?VARHELP=gateway/nntp_host"
+"\">serveri nimi</a> ja <a href=\"?VARHELP=gateway/linked_newsgroup"
+"\">uudisegrupi nimi</a> väljad on täidetud."
+
+#: Mailman/HTMLFormatter.py:47
+msgid "%(listinfo_link)s list run by %(owner_link)s"
+msgstr "Listi %(listinfo_link)s haldur on %(owner_link)s"
+
+#: Mailman/HTMLFormatter.py:55
+msgid "%(realname)s administrative interface"
+msgstr "%(realname)s administreerimine"
+
+#: Mailman/HTMLFormatter.py:56
+msgid " (requires authorization)"
+msgstr " (vajab autoriseerimist)"
+
+#: Mailman/HTMLFormatter.py:59
+msgid "Overview of all %(hostname)s mailing lists"
+msgstr "Kõigi %(hostname)s meililistide nimekiri."
+
+#: Mailman/HTMLFormatter.py:80
+msgid "<em>(1 private member not shown)</em>"
+msgstr "<em> (1 liige soovib jääda anonüümseks)</em>"
+
+#: Mailman/HTMLFormatter.py:82
+msgid "<em>(%(num_concealed)d private members not shown)</em>"
+msgstr "<em>(%(num_concealed)d liiget soovivad jääda anonüümseks)</em>"
+
+#: Mailman/HTMLFormatter.py:137
+msgid "; it was disabled by you"
+msgstr "; tellimuse peatasid sina"
+
+#: Mailman/HTMLFormatter.py:139
+msgid "; it was disabled by the list administrator"
+msgstr "; tellimuse peatas listi haldur"
+
+#: Mailman/HTMLFormatter.py:143
+msgid ""
+"; it was disabled due to excessive bounces. The\n"
+" last bounce was received on %(date)s"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:146
+msgid "; it was disabled for unknown reasons"
+msgstr "; tellimus peatati, täpsem põhjus teadmata."
+
+#: Mailman/HTMLFormatter.py:148
+msgid "Note: your list delivery is currently disabled%(reason)s."
+msgstr "NB: sinu tellimus on peatatud %(reason)s"
+
+#: Mailman/HTMLFormatter.py:151
+msgid "Mail delivery"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:153 Mailman/HTMLFormatter.py:298
+msgid "the list administrator"
+msgstr "listi haldur"
+
+#: Mailman/HTMLFormatter.py:154
+msgid ""
+"<p>%(note)s\n"
+"\n"
+" <p>You may have disabled list delivery intentionally,\n"
+" or it may have been triggered by bounces from your email\n"
+" address. In either case, to re-enable delivery, change the\n"
+" %(link)s option below. Contact %(mailto)s if you have any\n"
+" questions or need assistance."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:166
+msgid ""
+"<p>We have received some recent bounces from your\n"
+" address. Your current <em>bounce score</em> is %(score)s out of "
+"a\n"
+" maximum of %(total)s. Please double check that your subscribed\n"
+" address is correct and that there are no problems with delivery "
+"to\n"
+" this address. Your bounce score will be automatically reset if\n"
+" the problems are corrected soon."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:178
+msgid ""
+"(Note - you are subscribing to a list of mailing lists, so the %(type)s "
+"notice will be sent to the admin address for your membership, %(addr)s.)<p>"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:188
+msgid ""
+"You will be sent email requesting confirmation, to\n"
+" prevent others from gratuitously subscribing you."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:191
+msgid ""
+"This is a closed list, which means your subscription\n"
+" will be held for approval. You will be notified of the list\n"
+" moderator's decision by email."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:194 Mailman/HTMLFormatter.py:201
+msgid "also "
+msgstr "ka "
+
+#: Mailman/HTMLFormatter.py:196
+msgid ""
+"You will be sent email requesting confirmation, to\n"
+" prevent others from gratuitously subscribing you. Once\n"
+" confirmation is received, your request will be held for "
+"approval\n"
+" by the list moderator. You will be notified of the moderator's\n"
+" decision by email."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:205
+msgid ""
+"This is %(also)sa private list, which means that the\n"
+" list of members is not available to non-members."
+msgstr ""
+"See on %(also)s privaatne list, s.t. listi tellijate nimekirja\n"
+" näevad ainult listi liikmed ise."
+
+#: Mailman/HTMLFormatter.py:208
+msgid ""
+"This is %(also)sa hidden list, which means that the\n"
+" list of members is available only to the list administrator."
+msgstr ""
+"See on %(also)s peidetud listi, s.t. ainult listi haldur\n"
+" saab listi tellijate nimekirja vaadata."
+
+#: Mailman/HTMLFormatter.py:211
+msgid ""
+"This is %(also)sa public list, which means that the\n"
+" list of members list is available to everyone."
+msgstr ""
+"See on %(also)ska avalik nimekiri, s.t. kõik soovijad saavad\n"
+" tellijate nimekirja vaadata. "
+
+#: Mailman/HTMLFormatter.py:214
+msgid ""
+" (but we obscure the addresses so they are not\n"
+" easily recognizable by spammers)."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:219
+msgid ""
+"<p>(Note that this is an umbrella list, intended to\n"
+" have only other mailing lists as members. Among other things,\n"
+" this means that your confirmation request will be sent to the\n"
+" `%(sfx)s' account for your address.)"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:248
+msgid "<b><i>either</i></b> "
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:253
+msgid ""
+"To unsubscribe from %(realname)s, get a password reminder,\n"
+" or change your subscription options %(either)senter your "
+"subscription\n"
+" email address:\n"
+" <p><center> "
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:260
+msgid "Unsubscribe or edit options"
+msgstr "Lõpeta tellimus või muuda seadeid"
+
+#: Mailman/HTMLFormatter.py:264
+msgid ""
+"<p>... <b><i>or</i></b> select your entry from\n"
+" the subscribers list (see above)."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:266
+msgid ""
+" If you leave the field blank, you will be prompted for\n"
+" your email address"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:274
+msgid ""
+"(<i>%(which)s is only available to the list\n"
+" members.</i>)"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:278
+msgid ""
+"(<i>%(which)s is only available to the list\n"
+" administrator.</i>)"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:288
+msgid "Click here for the list of "
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:290
+msgid " subscribers: "
+msgstr " tellijaid:"
+
+#: Mailman/HTMLFormatter.py:292
+msgid "Visit Subscriber list"
+msgstr "Näita tellijate nimekirja"
+
+#: Mailman/HTMLFormatter.py:295
+msgid "members"
+msgstr "liikmed"
+
+#: Mailman/HTMLFormatter.py:296
+msgid "Address:"
+msgstr "Aadress:"
+
+#: Mailman/HTMLFormatter.py:299
+msgid "Admin address:"
+msgstr "Halduri aadress:"
+
+#: Mailman/HTMLFormatter.py:302
+msgid "The subscribers list"
+msgstr "Tellijate nimekiri"
+
+#: Mailman/HTMLFormatter.py:304
+msgid " <p>Enter your "
+msgstr "<p>Sisesta oma"
+
+#: Mailman/HTMLFormatter.py:306
+msgid " and password to visit the subscribers list: <p><center> "
+msgstr "ja parool tellijate nimekirja vaatamiseks: <p><center> "
+
+#: Mailman/HTMLFormatter.py:311
+msgid "Password: "
+msgstr "Parool: "
+
+#: Mailman/HTMLFormatter.py:315
+msgid "Visit Subscriber List"
+msgstr "Näita tellijate nimekirja"
+
+#: Mailman/HTMLFormatter.py:345
+msgid "Once a month, your password will be emailed to you as a reminder."
+msgstr "Kord kuus meilitakse sulle sinu parool."
+
+#: Mailman/HTMLFormatter.py:391
+msgid "The current archive"
+msgstr ""
+
+#: Mailman/Handlers/Acknowledge.py:59
+msgid "%(realname)s post acknowledgement"
+msgstr ""
+
+#: Mailman/Handlers/CalcRecips.py:68
+msgid ""
+"Your urgent message to the %(realname)s mailing list was not authorized for\n"
+"delivery. The original message as received by Mailman is attached.\n"
+msgstr ""
+
+#: Mailman/Handlers/Emergency.py:29
+msgid "Emergency hold on all list traffic is in effect"
+msgstr "Kõik listi saadetud kirjad peetakse kinni."
+
+#: Mailman/Handlers/Emergency.py:30 Mailman/Handlers/Hold.py:58
+msgid "Your message was deemed inappropriate by the moderator."
+msgstr "Moderaator otsustas, et sinu saadetud kiri ei sobi sellesse listi."
+
+#: Mailman/Handlers/Hold.py:53
+msgid "Sender is explicitly forbidden"
+msgstr "Saatja on mustas nimekirjas"
+
+#: Mailman/Handlers/Hold.py:54
+msgid "You are forbidden from posting messages to this list."
+msgstr "Sa oled selle listi mustas nimekirjas (postitamine keelatud)."
+
+#: Mailman/Handlers/Hold.py:57
+msgid "Post to moderated list"
+msgstr "Postitus modereeritud listi"
+
+#: Mailman/Handlers/Hold.py:61
+msgid "Post by non-member to a members-only list"
+msgstr "Postitus aadressilt, mida ei ole listi tellijate nimekirjas"
+
+#: Mailman/Handlers/Hold.py:62
+msgid "Non-members are not allowed to post messages to this list."
+msgstr "Sellesse listi saavad postitada ainult listi tellijad."
+
+#: Mailman/Handlers/Hold.py:65
+msgid "Posting to a restricted list by sender requires approval"
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:66
+msgid "This list is restricted; your message was not approved."
+msgstr "See on suletud list. Sinu kirja ei lubatud listi."
+
+#: Mailman/Handlers/Hold.py:69
+msgid "Too many recipients to the message"
+msgstr "Kirjal on liiga palju adressaate."
+
+#: Mailman/Handlers/Hold.py:70
+msgid "Please trim the recipient list; it is too long."
+msgstr "Palun lühenda adressaatide nimekirja: see on liiga pikk."
+
+#: Mailman/Handlers/Hold.py:73
+msgid "Message has implicit destination"
+msgstr "Meilil puudub sihtaadress"
+
+#: Mailman/Handlers/Hold.py:74
+msgid ""
+"Blind carbon copies or other implicit destinations are\n"
+"not allowed. Try reposting your message by explicitly including the list\n"
+"address in the To: or Cc: fields."
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:79
+msgid "Message may contain administrivia"
+msgstr "Meil sisaldab administratiivkorraldusi."
+
+#: Mailman/Handlers/Hold.py:84
+msgid ""
+"Please do *not* post administrative requests to the mailing\n"
+"list. If you wish to subscribe, visit %(listurl)s or send a message with "
+"the\n"
+"word `help' in it to the request address, %(request)s, for further\n"
+"instructions."
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:90
+msgid "Message has a suspicious header"
+msgstr "Meilil on kahtlased päised."
+
+#: Mailman/Handlers/Hold.py:91
+msgid "Your message had a suspicious header."
+msgstr "Sinu kirjal on kahtlane päis."
+
+#: Mailman/Handlers/Hold.py:101
+msgid ""
+"Message body is too big: %(size)d bytes with a limit of\n"
+"%(limit)d KB"
+msgstr "Kiri on liiga suur: %(size)d baiti, lubatud on %(limit)d KB"
+
+#: Mailman/Handlers/Hold.py:106
+msgid ""
+"Your message was too big; please trim it to less than\n"
+"%(kb)d KB in size."
+msgstr ""
+"Teie kiri oli liiga suur; palun lühendage seda nii, et see oleks väiksem\n"
+"kui %(kb)d KB."
+
+#: Mailman/Handlers/Hold.py:110
+msgid "Posting to a moderated newsgroup"
+msgstr "Postitus modereeritud uudisegruppi"
+
+#: Mailman/Handlers/Hold.py:233
+msgid "Your message to %(listname)s awaits moderator approval"
+msgstr "Teiei kiri listi %(listname)s ootab moderaatori otsust."
+
+#: Mailman/Handlers/Hold.py:253
+msgid "%(listname)s post from %(sender)s requires approval"
+msgstr "Kiri listi %(listname)s aadressilt %(sender)s vajab sinu kinnitust."
+
+#: Mailman/Handlers/Hold.py:260
+msgid ""
+"If you reply to this message, keeping the Subject: header intact, Mailman "
+"will\n"
+"discard the held message. Do this if the message is spam. If you reply to\n"
+"this message and include an Approved: header with the list password in it, "
+"the\n"
+"message will be approved for posting to the list. The Approved: header can\n"
+"also appear in the first line of the body of the reply."
+msgstr ""
+
+#: Mailman/Handlers/MimeDel.py:56
+msgid "The message's content type was explicitly disallowed"
+msgstr ""
+
+#: Mailman/Handlers/MimeDel.py:61
+msgid "The message's content type was not explicitly allowed"
+msgstr ""
+
+#: Mailman/Handlers/MimeDel.py:73
+msgid "After content filtering, the message was empty"
+msgstr "Peale filtreerimist oli kirja sisu tühi."
+
+#: Mailman/Handlers/MimeDel.py:208
+msgid ""
+"The attached message matched the %(listname)s mailing list's content "
+"filtering\n"
+"rules and was prevented from being forwarded on to the list membership. "
+"You\n"
+"are receiving the only remaining copy of the discarded message.\n"
+"\n"
+msgstr ""
+
+#: Mailman/Handlers/MimeDel.py:214
+msgid "Content filtered message notification"
+msgstr ""
+
+#: Mailman/Handlers/Moderate.py:138
+msgid ""
+"You are not allowed to post to this mailing list, and your message has been\n"
+"automatically rejected. If you think that your messages are being rejected "
+"in\n"
+"error, contact the mailing list owner at %(listowner)s."
+msgstr ""
+
+#: Mailman/Handlers/Moderate.py:153
+msgid "Auto-discard notification"
+msgstr "Automaatsest katkestamisest teatamine"
+
+#: Mailman/Handlers/Moderate.py:156
+msgid "The attached message has been automatically discarded."
+msgstr ""
+
+#: Mailman/Handlers/Replybot.py:74
+msgid "Auto-response for your message to "
+msgstr "Automaatne vastus teie kirjale "
+
+#: Mailman/Handlers/Replybot.py:75
+msgid "the \"%(realname)s\" mailing list"
+msgstr "listi \"%(realname)s\"."
+
+#: Mailman/Handlers/Replybot.py:107
+msgid "The Mailman Replybot"
+msgstr "Mailmani automaatvastaja"
+
+#: Mailman/Handlers/Scrubber.py:148
+msgid "HTML attachment scrubbed and removed"
+msgstr "HTML manus eemaldati."
+
+#: Mailman/Handlers/Scrubber.py:162 Mailman/Handlers/Scrubber.py:188
+msgid ""
+"An HTML attachment was scrubbed...\n"
+"URL: %(url)s\n"
+msgstr ""
+"HTML manus eemaldati...\n"
+"URL: %(url)s\n"
+
+#: Mailman/Handlers/Scrubber.py:201
+msgid "no subject"
+msgstr "subjekt puudub"
+
+#: Mailman/Handlers/Scrubber.py:202
+msgid "no date"
+msgstr "kuupäev puudub"
+
+#: Mailman/Handlers/Scrubber.py:203
+msgid "unknown sender"
+msgstr "saatja puudub"
+
+#: Mailman/Handlers/Scrubber.py:205
+msgid ""
+"An embedded message was scrubbed...\n"
+"From: %(who)s\n"
+"Subject: %(subject)s\n"
+"Date: %(date)s\n"
+"Size: %(size)s\n"
+"Url: %(url)s\n"
+msgstr ""
+"Üks kirja osadest eemaldati...\n"
+"Kellelt: %(who)s\n"
+"Teema: %(subject)s\n"
+"Kuupäev: %(date)s\n"
+"Suurus: %(size)s\n"
+"Link: %(url)s\n"
+
+#: Mailman/Handlers/Scrubber.py:228
+msgid ""
+"A non-text attachment was scrubbed...\n"
+"Name: %(filename)s\n"
+"Type: %(ctype)s\n"
+"Size: %(size)d bytes\n"
+"Desc: %(desc)s\n"
+"Url : %(url)s\n"
+msgstr ""
+"Kirjaga kaasas olnud manus eemaldati...\n"
+"Nimi: %(filename)s\n"
+"Tüüp: %(ctype)s\n"
+"Suurus: %(size)d bytes\n"
+"Kirjeldus: %(desc)s\n"
+"Link : %(url)s\n"
+
+#: Mailman/Handlers/Scrubber.py:258
+msgid "Skipped content of type %(partctype)s"
+msgstr ""
+
+#: Mailman/Handlers/Scrubber.py:275
+msgid "-------------- next part --------------\n"
+msgstr "-------------- next part --------------\n"
+
+#: Mailman/Handlers/ToDigest.py:141
+msgid "%(realname)s Digest, Vol %(volume)d, Issue %(issue)d"
+msgstr "%(realname)s referaat, Vol %(volume)d, number %(issue)d"
+
+#: Mailman/Handlers/ToDigest.py:181
+msgid "digest header"
+msgstr "referaadi päis"
+
+#: Mailman/Handlers/ToDigest.py:184
+msgid "Digest Header"
+msgstr "Referaadi päis"
+
+#: Mailman/Handlers/ToDigest.py:197
+msgid "Today's Topics:\n"
+msgstr "Tänased teemad:\n"
+
+#: Mailman/Handlers/ToDigest.py:267
+msgid "Today's Topics (%(msgcount)d messages)"
+msgstr "Tänased teemad (%(msgcount)d kirja)"
+
+#: Mailman/Handlers/ToDigest.py:292
+msgid "digest footer"
+msgstr "referaadi jalus"
+
+#: Mailman/Handlers/ToDigest.py:295
+msgid "Digest Footer"
+msgstr "Referaadi jalus"
+
+#: Mailman/Handlers/ToDigest.py:309
+msgid "End of "
+msgstr "Lõpp"
+
+#: Mailman/ListAdmin.py:307
+msgid "Posting of your message titled \"%(subject)s\""
+msgstr ""
+
+#: Mailman/ListAdmin.py:346
+msgid "Forward of moderated message"
+msgstr ""
+
+#: Mailman/ListAdmin.py:405
+msgid "New subscription request to list %(realname)s from %(addr)s"
+msgstr ""
+
+#: Mailman/ListAdmin.py:428
+msgid "Subscription request"
+msgstr "Tellimissoov"
+
+#: Mailman/ListAdmin.py:458
+msgid "New unsubscription request from %(realname)s by %(addr)s"
+msgstr ""
+
+#: Mailman/ListAdmin.py:481
+msgid "Unsubscription request"
+msgstr "Tellimuse lõpetamise soov"
+
+#: Mailman/ListAdmin.py:512
+msgid "Original Message"
+msgstr "Esialgne kiri"
+
+#: Mailman/ListAdmin.py:515
+msgid "Request to mailing list %(realname)s rejected"
+msgstr ""
+
+#: Mailman/MTA/Manual.py:57
+msgid ""
+"The mailing list `%(listname)s' has been created via the through-the-web\n"
+"interface. In order to complete the activation of this mailing list, the\n"
+"proper /etc/aliases (or equivalent) file must be updated. The program\n"
+"`newaliases' may also have to be run.\n"
+"\n"
+"Here are the entries for the /etc/aliases file:\n"
+msgstr ""
+
+#: Mailman/MTA/Manual.py:67
+msgid ""
+"\n"
+"To finish creating your mailing list, you must edit your /etc/aliases (or\n"
+"equivalent) file by adding the following lines, and possibly running the\n"
+"`newaliases' program:\n"
+"\n"
+"## %(listname)s mailing list"
+msgstr ""
+"\n"
+"Selleks, et uus list tööle hakkaks, pead lisama/etc/aliases (või analoogse "
+"otstarbega) faili lisama järgmised read ja seejärel käivitama 'newaliases' "
+"nimelise programmi:\n"
+"\n"
+"## %(listname)s list"
+
+#: Mailman/MTA/Manual.py:88
+msgid "Mailing list creation request for list %(listname)s"
+msgstr "Listi %(listname)s loomise soov."
+
+#: Mailman/MTA/Manual.py:103
+msgid ""
+"The mailing list `%(listname)s' has been removed via the through-the-web\n"
+"interface. In order to complete the de-activation of this mailing list, "
+"the\n"
+"appropriate /etc/aliases (or equivalent) file must be updated. The program\n"
+"`newaliases' may also have to be run.\n"
+"\n"
+"Here are the entries in the /etc/aliases file that should be removed:\n"
+msgstr ""
+
+#: Mailman/MTA/Manual.py:113
+msgid ""
+"\n"
+"To finish removing your mailing list, you must edit your /etc/aliases (or\n"
+"equivalent) file by removing the following lines, and possibly running the\n"
+"`newaliases' program:\n"
+"\n"
+"## %(listname)s mailing list"
+msgstr ""
+"\n"
+"Selleks, et list täielikult eemaldada , pead /etc/aliases\n"
+"(või analoogse otstarbega) failist eemaldama allpool toodud read ning "
+"seejärel käivitama 'newaliases' nimelise programmi.\n"
+"\n"
+"## %(listname)s list"
+
+#: Mailman/MTA/Manual.py:132
+msgid "Mailing list removal request for list %(listname)s"
+msgstr "Listi %(listname)s eemaldamise soov"
+
+#: Mailman/MTA/Postfix.py:300
+msgid "checking permissions on %(file)s"
+msgstr "kontrollin %(file)s loabitte"
+
+#: Mailman/MTA/Postfix.py:310
+msgid "%(file)s permissions must be 066x (got %(octmode)s)"
+msgstr "faili %(file)s loabitid peavad olema 066x (aga on %(octmode)s)"
+
+#: Mailman/MTA/Postfix.py:312 Mailman/MTA/Postfix.py:339 bin/check_perms:100
+#: bin/check_perms:122 bin/check_perms:132 bin/check_perms:143
+#: bin/check_perms:162 bin/check_perms:180 bin/check_perms:200
+#: bin/check_perms:224 bin/check_perms:244 bin/check_perms:258
+#: bin/check_perms:278 bin/check_perms:315
+msgid "(fixing)"
+msgstr "(parandan)"
+
+#: Mailman/MTA/Postfix.py:328
+msgid "checking ownership of %(dbfile)s"
+msgstr "kontrollin %(dbfile)s loabitte"
+
+#: Mailman/MTA/Postfix.py:336
+msgid "%(dbfile)s owned by %(owner)s (must be owned by %(user)s"
+msgstr "Faili %(dbfile)s omanik on %(owner)s (aga peab olema %(user)s)"
+
+#: Mailman/MailList.py:697
+msgid "You have been invited to join the %(listname)s mailing list"
+msgstr "Teid kutsutakse liituma listiga %(listname)s"
+
+#: Mailman/MailList.py:801 Mailman/MailList.py:1157
+msgid " from %(remote)s"
+msgstr "%(remote)s"
+
+#: Mailman/MailList.py:835
+msgid "subscriptions to %(realname)s require moderator approval"
+msgstr "Listi %(realname)s tellimiseks on vaja moderaatori nõusolekut."
+
+#: Mailman/MailList.py:894 bin/add_members:281
+msgid "%(realname)s subscription notification"
+msgstr ""
+
+#: Mailman/MailList.py:909
+msgid "unsubscriptions require moderator approval"
+msgstr "tellimuse lõpetamiseks on vaja halduri nõusolekut."
+
+#: Mailman/MailList.py:928
+msgid "%(realname)s unsubscribe notification"
+msgstr ""
+
+#: Mailman/MailList.py:1072
+msgid "subscriptions to %(name)s require administrator approval"
+msgstr "Listi %(name)s tellimiseks on vaja listi halduri nõusolekut."
+
+#: Mailman/MailList.py:1326
+msgid "Last autoresponse notification for today"
+msgstr ""
+
+#: Mailman/Queue/BounceRunner.py:179
+msgid ""
+"The attached message was received as a bounce, but either the bounce format\n"
+"was not recognized, or no member addresses could be extracted from it. "
+"This\n"
+"mailing list has been configured to send all unrecognized bounce messages "
+"to\n"
+"the list administrator(s).\n"
+"\n"
+"For more information see:\n"
+"%(adminurl)s\n"
+"\n"
+msgstr ""
+
+#: Mailman/Queue/BounceRunner.py:189
+msgid "Uncaught bounce notification"
+msgstr ""
+
+#: Mailman/Queue/CommandRunner.py:74
+msgid "Ignoring non-text/plain MIME parts"
+msgstr ""
+
+#: Mailman/Queue/CommandRunner.py:129
+msgid ""
+"The results of your email command are provided below.\n"
+"Attached is your original message.\n"
+msgstr ""
+
+#: Mailman/Queue/CommandRunner.py:134
+msgid "- Results:"
+msgstr "- Tulemused:"
+
+#: Mailman/Queue/CommandRunner.py:140
+msgid ""
+"\n"
+"- Unprocessed:"
+msgstr ""
+"\n"
+"- Töötlemata:"
+
+#: Mailman/Queue/CommandRunner.py:143
+msgid ""
+"\n"
+"- Ignored:"
+msgstr ""
+"\n"
+"- Ignoreeriti:"
+
+#: Mailman/Queue/CommandRunner.py:145
+msgid ""
+"\n"
+"- Done.\n"
+"\n"
+msgstr ""
+"\n"
+"- Tehtud.\n"
+"\n"
+
+#: Mailman/Queue/CommandRunner.py:163
+msgid "The results of your email commands"
+msgstr ""
+
+#: Mailman/htmlformat.py:627
+msgid "Delivered by Mailman<br>version %(version)s"
+msgstr "Kirja toimetas kätte Mailman<br> versioon %(version)s"
+
+#: Mailman/htmlformat.py:628
+msgid "Python Powered"
+msgstr "Python Powered"
+
+#: Mailman/htmlformat.py:629
+msgid "Gnu's Not Unix"
+msgstr "Gnu's Not Unix (Gnu ei ole Unix)"
+
+#: Mailman/i18n.py:86
+msgid "Mon"
+msgstr "E"
+
+#: Mailman/i18n.py:86
+msgid "Thu"
+msgstr "N"
+
+#: Mailman/i18n.py:86
+msgid "Tue"
+msgstr "T"
+
+#: Mailman/i18n.py:86
+msgid "Wed"
+msgstr "K"
+
+#: Mailman/i18n.py:87
+msgid "Fri"
+msgstr "R"
+
+#: Mailman/i18n.py:87
+msgid "Sat"
+msgstr "L"
+
+#: Mailman/i18n.py:87
+msgid "Sun"
+msgstr "P"
+
+#: Mailman/i18n.py:91
+msgid "Apr"
+msgstr "Aprill"
+
+#: Mailman/i18n.py:91
+msgid "Feb"
+msgstr "Veebruar"
+
+#: Mailman/i18n.py:91
+msgid "Jan"
+msgstr "Jaanuar"
+
+#: Mailman/i18n.py:91
+msgid "Jun"
+msgstr "Juuni"
+
+#: Mailman/i18n.py:91
+msgid "Mar"
+msgstr "Märts"
+
+#: Mailman/i18n.py:92
+msgid "Aug"
+msgstr "August"
+
+#: Mailman/i18n.py:92
+msgid "Dec"
+msgstr "Detsember"
+
+#: Mailman/i18n.py:92
+msgid "Jul"
+msgstr "Juuli"
+
+#: Mailman/i18n.py:92
+msgid "Nov"
+msgstr "November"
+
+#: Mailman/i18n.py:92
+msgid "Oct"
+msgstr "Oktoober"
+
+#: Mailman/i18n.py:92
+msgid "Sep"
+msgstr "September"
+
+#: Mailman/i18n.py:95
+msgid "Server Local Time"
+msgstr "Serveri kuupäev"
+
+#: Mailman/i18n.py:128
+msgid "%(wday)s %(mon)s %(day)2i %(hh)02i:%(mm)02i:%(ss)02i %(tzname)s %(year)04i"
+msgstr "%(wday)s %(mon)s %(day)2i %(hh)02i:%(mm)02i:%(ss)02i %(tzname)s %(year)04i"
+
+#: bin/add_members:26
+msgid ""
+"Add members to a list from the command line.\n"
+"\n"
+"Usage:\n"
+" add_members [options] listname\n"
+"\n"
+"Options:\n"
+"\n"
+" --regular-members-file=file\n"
+" -r file\n"
+" A file containing addresses of the members to be added, one\n"
+" address per line. This list of people become non-digest\n"
+" members. If file is `-', read addresses from stdin. Note that\n"
+" -n/--non-digest-members-file are deprecated synonyms for this "
+"option.\n"
+"\n"
+" --digest-members-file=file\n"
+" -d=file\n"
+" Similar to above, but these people become digest members.\n"
+"\n"
+" --changes-msg=<y|n>\n"
+" -c <y|n> \n"
+"\tSet whether or not to send the list members the `there's going to be\n"
+"\tbig changes to your list' message. defaults to no.\n"
+"\n"
+" --welcome-msg=<y|n>\n"
+" -w <y|n>\n"
+" Set whether or not to send the list members a welcome message,\n"
+" overriding whatever the list's `send_welcome_msg' setting is.\n"
+"\n"
+" --admin-notify=<y|n>\n"
+" -a <y|n>\n"
+" Set whether or not to send the list administrators a notification "
+"on\n"
+" the success/failure of these subscriptions, overriding whatever the\n"
+" list's `admin_notify_mchanges' setting is.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname\n"
+" The name of the Mailman list you are adding members to. It must\n"
+" already exist.\n"
+"\n"
+"You must supply at least one of -r and -d options. At most one of the\n"
+"files can be `-'.\n"
+msgstr ""
+
+#: bin/add_members:134
+msgid "Big change in %(listname)s@%(listhost)s mailing list"
+msgstr ""
+
+#: bin/add_members:167
+msgid "Already a member: %(member)s"
+msgstr "%(member)s on juba tellija"
+
+#: bin/add_members:170
+msgid "Bad/Invalid email address: blank line"
+msgstr "Vigane meiliaadress: tühi rida"
+
+#: bin/add_members:172
+msgid "Bad/Invalid email address: %(member)s"
+msgstr "Vigane meiliaadress: %(member)s"
+
+#: bin/add_members:174
+msgid "Hostile address (illegal characters): %(member)s"
+msgstr "Aadress sisaldab keelatud märke: %(member)s"
+
+#: bin/add_members:176
+msgid "Subscribed: %(member)s"
+msgstr "Liidetud: %(member)s"
+
+#: bin/add_members:223
+msgid "Bad argument to -c/--changes-msg: %(arg)s"
+msgstr "Vigane -c/--changes-msg argument: %(arg)s"
+
+#: bin/add_members:230
+msgid "Bad argument to -w/--welcome-msg: %(arg)s"
+msgstr "Vigane -w/--welcome-msg argument: %(arg)s"
+
+#: bin/add_members:237
+msgid "Bad argument to -a/--admin-notify: %(arg)s"
+msgstr "Vigane -a/--admin-notify argument: %(arg)s"
+
+#: bin/add_members:243
+msgid "Cannot read both digest and normal members from standard input."
+msgstr ""
+
+#: bin/add_members:249 bin/config_list:105 bin/find_member:97 bin/inject:90
+#: bin/list_admins:89 bin/list_members:187 bin/sync_members:222
+#: cron/bumpdigests:86
+msgid "No such list: %(listname)s"
+msgstr "Selle nimega listi pole: %(listname)s"
+
+#: bin/add_members:269 bin/change_pw:158 bin/check_db:114 bin/sync_members:244
+#: cron/bumpdigests:78
+msgid "Nothing to do."
+msgstr "Ei oska midagi teha."
+
+#: bin/arch:19
+msgid ""
+"Rebuild a list's archive.\n"
+"\n"
+"Use this command to rebuild the archives for a mailing list. You may want "
+"to\n"
+"do this if you edit some messages in an archive, or remove some messages "
+"from\n"
+"an archive.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] <listname> [<mbox>]\n"
+"\n"
+"Where options are:\n"
+" -h / --help\n"
+" Print this help message and exit.\n"
+"\n"
+" -q / --quiet\n"
+" Make the archiver output less verbose.\n"
+"\n"
+" --wipe\n"
+" First wipe out the original archive before regenerating. You "
+"usually\n"
+" want to specify this argument unless you're generating the archive "
+"in\n"
+" chunks.\n"
+"\n"
+" -s N\n"
+" --start=N\n"
+" Start indexing at article N, where article 0 is the first in the "
+"mbox.\n"
+" Defaults to 0.\n"
+"\n"
+" -e M\n"
+" --end=M\n"
+" End indexing at article M. This script is not very efficient with\n"
+" respect to memory management, and for large archives, it may not be\n"
+" possible to index the mbox entirely. For that reason, you can "
+"specify\n"
+" the start and end article numbers.\n"
+"\n"
+"Where <mbox> is the path to a list's complete mbox archive. Usually this "
+"will\n"
+"be some path in the archives/private directory. For example:\n"
+"\n"
+"%% bin/arch mylist archives/private/mylist.mbox/mylist.mbox\n"
+"\n"
+"<mbox> is optional. If it is missing, it is calculated.\n"
+msgstr ""
+
+#: bin/arch:125
+msgid "listname is required"
+msgstr "listi nimi on puudu"
+
+#: bin/arch:143 bin/change_pw:106 bin/config_list:242
+msgid ""
+"No such list \"%(listname)s\"\n"
+"%(e)s"
+msgstr ""
+"Listi \"%(listname)s\" pole\n"
+"%(e)s"
+
+#: bin/arch:170
+msgid "Cannot open mbox file %(mbox)s: %(msg)s"
+msgstr "Ei saanud avada mbox faili %(mbox)s: %(msg)s"
+
+#: bin/b4b5-archfix:19
+msgid ""
+"Fix the MM2.1b4 archives.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] file ...\n"
+"\n"
+"Where options are:\n"
+" -h / --help\n"
+" Print this help message and exit.\n"
+"\n"
+"Only use this to `fix' some archive database files that may have gotten\n"
+"written in Mailman 2.1b4 with some bogus data. Use like this from your\n"
+"$PREFIX directory\n"
+"\n"
+"%% %(PROGRAM)s `grep -l _mlist archives/private/*/database/*-article`\n"
+"\n"
+"(note the backquotes are required)\n"
+"\n"
+"You will need to run `bin/check_perms -f' after running this script.\n"
+msgstr ""
+
+#: bin/change_pw:19
+msgid ""
+"Change a list's password.\n"
+"\n"
+"Prior to Mailman 2.1, list passwords were kept in crypt'd format -- "
+"usually.\n"
+"Some Python installations didn't have the crypt module available, so they'd\n"
+"fall back to md5. Then suddenly the Python installation might grow a crypt\n"
+"module and all list passwords would be broken.\n"
+"\n"
+"In Mailman 2.1, all list and site passwords are stored in SHA1 hexdigest\n"
+"form. This breaks list passwords for all existing pre-Mailman 2.1 lists, "
+"and\n"
+"since those passwords aren't stored anywhere in plain text, they cannot be\n"
+"retrieved and updated.\n"
+"\n"
+"Thus, this script generates new passwords for a list, and optionally sends "
+"it\n"
+"to all the owners of the list.\n"
+"\n"
+"Usage: change_pw [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" --all / -a\n"
+" Change the password for all lists.\n"
+"\n"
+" --domain=domain\n"
+" -d domain\n"
+" Change the password for all lists in the virtual domain `domain'. "
+"It\n"
+" is okay to give multiple -d options.\n"
+"\n"
+" --listname=listname\n"
+" -l listname\n"
+" Change the password only for the named list. It is okay to give\n"
+" multiple -l options.\n"
+"\n"
+" --password=newpassword\n"
+" -p newpassword\n"
+" Use the supplied plain text password `newpassword' as the new "
+"password\n"
+" for any lists that are being changed (as specified by the -a, -d, "
+"and\n"
+" -l options). If not given, lists will be assigned a randomly\n"
+" generated new password.\n"
+"\n"
+" --quiet / -q\n"
+" Don't notify list owners of the new password. You'll have to have\n"
+" some other way of letting the list owners know the new password\n"
+" (presumably out-of-band).\n"
+"\n"
+" --help / -h\n"
+" Print this help message and exit.\n"
+msgstr ""
+
+#: bin/change_pw:144
+msgid "Bad arguments: %(strargs)s"
+msgstr "Vigased argumendid: %(strargs)s"
+
+#: bin/change_pw:148
+msgid "Empty list passwords are not allowed"
+msgstr "Listi parool ei tohi olla tühi"
+
+#: bin/change_pw:179
+msgid "New %(listname)s password: %(notifypassword)s"
+msgstr "Listi %(listname)s uus parool: %(notifypassword)s"
+
+#: bin/change_pw:188
+msgid "Your new %(listname)s list password"
+msgstr "Listi %(listname)s uus parool"
+
+#: bin/change_pw:189
+msgid ""
+"The site administrator at %(hostname)s has changed the password for your\n"
+"mailing list %(listname)s. It is now\n"
+"\n"
+" %(notifypassword)s\n"
+"\n"
+"Please be sure to use this for all future list administration. You may "
+"want\n"
+"to log in now to your list and change the password to something more to "
+"your\n"
+"liking. Visit your list admin page at\n"
+"\n"
+" %(adminurl)s\n"
+msgstr ""
+"Listserveri %(hostname)s haldur muutis sinu halduses\n"
+"oleva listi %(listname)s parooli. Uus parool on\n"
+"\n"
+" %(notifypassword)s\n"
+"\n"
+"Nüüdsest peale kasuta listi haldamiseks seda parooli. Kui "
+"soovid parooli muuta, siis saad seda teha aadressil\n"
+"\n"
+" %(adminurl)s\n"
+
+#: bin/check_db:19
+msgid ""
+"Check a list's config database file for integrity.\n"
+"\n"
+"All of the following files are checked:\n"
+"\n"
+" config.pck\n"
+" config.pck.last\n"
+" config.db\n"
+" config.db.last\n"
+" config.safety\n"
+"\n"
+"It's okay if any of these are missing. config.pck and config.pck.last are\n"
+"pickled versions of the config database file for 2.1a3 and beyond. config."
+"db\n"
+"and config.db.last are used in all earlier versions, and these are Python\n"
+"marshals. config.safety is a pickle written by 2.1a3 and beyond when the\n"
+"primary config.pck file could not be read.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname [listname ...]]\n"
+"\n"
+"Options:\n"
+"\n"
+" --all / -a\n"
+" Check the databases for all lists. Otherwise only the lists named "
+"on\n"
+" the command line are checked.\n"
+"\n"
+" --verbose / -v\n"
+" Verbose output. The state of every tested file is printed.\n"
+" Otherwise only corrupt files are displayed.\n"
+"\n"
+" --help / -h\n"
+" Print this text and exit.\n"
+msgstr ""
+
+#: bin/check_db:119
+msgid "No list named:"
+msgstr "Sellise nimega listi pole:"
+
+#: bin/check_db:128
+msgid "List:"
+msgstr "List:"
+
+#: bin/check_db:148
+msgid " %(file)s: okay"
+msgstr " %(file)s: OK"
+
+#: bin/check_perms:19
+msgid ""
+"Check the permissions for the Mailman installation.\n"
+"\n"
+"Usage: %(PROGRAM)s [-f] [-v] [-h]\n"
+"\n"
+"With no arguments, just check and report all the files that have bogus\n"
+"permissions or group ownership. With -f (and run as root), fix all the\n"
+"permission problems found. With -v be verbose.\n"
+"\n"
+msgstr ""
+
+#: bin/check_perms:85
+msgid " checking gid and mode for %(path)s"
+msgstr " kontrollin %(path)s loabitte ja grupikuuluvust"
+
+#: bin/check_perms:97
+msgid "%(path)s bad group (has: %(groupname)s, expected %(MAILMAN_GROUP)s)"
+msgstr ""
+"%(path)s kuulub valele grupile (on %(groupname)s, peab olema %(MAILMAN_GROUP)"
+"s)"
+
+#: bin/check_perms:120
+msgid "directory permissions must be %(octperms)s: %(path)s"
+msgstr "kataloogi loabitid peavad olema: %(octperms)s: %(path)s"
+
+#: bin/check_perms:129
+msgid "source perms must be %(octperms)s: %(path)s"
+msgstr "loabitid peavad olema: %(octperms)s: %(path)s"
+
+#: bin/check_perms:140
+msgid "article db files must be %(octperms)s: %(path)s"
+msgstr "andmebaasifailide loabitid peavad olema: %(octperms)s: %(path)s"
+
+#: bin/check_perms:152
+msgid "checking mode for %(prefix)s"
+msgstr " kontrollin %(prefix)s loabitte"
+
+#: bin/check_perms:160
+msgid "directory must be at least 02775: %(d)s"
+msgstr "kataloogi loabitid peavad olema vähemalt 02775: %(d)s"
+
+#: bin/check_perms:173
+msgid "checking perms on %(private)s"
+msgstr "kontrollin %(private)s loabitte"
+
+#: bin/check_perms:178
+msgid "%(private)s must not be other-readable"
+msgstr "%(private)s ei tohi olla kõigile loetav."
+
+#: bin/check_perms:198
+msgid "mbox file must be at least 0660:"
+msgstr "mbox faili loabitid peavad olema vähemalt 0660:"
+
+#: bin/check_perms:222
+msgid "%(dbdir)s \"other\" perms must be 000"
+msgstr "%(dbdir)s \"other\" perms must be 000"
+
+#: bin/check_perms:233
+msgid "checking cgi-bin permissions"
+msgstr "kontrollin cgi-bin loabitte"
+
+#: bin/check_perms:238
+msgid " checking set-gid for %(path)s"
+msgstr " kontrollin %(path)s grupikuuluvust."
+
+#: bin/check_perms:242
+msgid "%(path)s must be set-gid"
+msgstr "%(path)s peab olema set-gid"
+
+#: bin/check_perms:252
+msgid "checking set-gid for %(wrapper)s"
+msgstr "kontrollin %(wrapper)s set-gid'i"
+
+#: bin/check_perms:256
+msgid "%(wrapper)s must be set-gid"
+msgstr "%(wrapper)s peab olema set-gid"
+
+#: bin/check_perms:266
+msgid "checking permissions on %(pwfile)s"
+msgstr "kontrollin %(pwfile)s loabitte"
+
+#: bin/check_perms:275
+msgid "%(pwfile)s permissions must be exactly 0640 (got %(octmode)s)"
+msgstr "%(pwfile)s loabitid peavad olema 0640 (aga on %(octmode)s)"
+
+#: bin/check_perms:299
+msgid "checking permissions on list data"
+msgstr "kontrollin listi andmete loabitte"
+
+#: bin/check_perms:305
+msgid " checking permissions on: %(path)s"
+msgstr " kontrollin loabitte: %(path)s"
+
+#: bin/check_perms:313
+msgid "file permissions must be at least 660: %(path)s"
+msgstr "Faili loabitid peavad olema vähemalt 660: %(path)s"
+
+#: bin/check_perms:359
+msgid "No problems found"
+msgstr "Kõik paistab korras olevat."
+
+#: bin/check_perms:361
+msgid "Problems found:"
+msgstr "Leidsin järgmised probleemid:"
+
+#: bin/check_perms:362
+msgid "Re-run as %(MAILMAN_USER)s (or root) with -f flag to fix"
+msgstr ""
+
+#: bin/cleanarch:19
+msgid ""
+"Clean up an .mbox archive file.\n"
+"\n"
+"The archiver looks for Unix-From lines separating messages in an mbox "
+"archive\n"
+"file. For compatibility, it specifically looks for lines that start with\n"
+"\"From \" -- i.e. the letters capital-F, lowercase-r, o, m, space, ignoring\n"
+"everything else on the line.\n"
+"\n"
+"Normally, any lines that start \"From \" in the body of a message should be\n"
+"escaped such that a > character is actually the first on a line. It is\n"
+"possible though that body lines are not actually escaped. This script\n"
+"attempts to fix these by doing a stricter test of the Unix-From lines. Any\n"
+"lines that start \"From \" but do not pass this stricter test are escaped "
+"with a\n"
+"> character.\n"
+"\n"
+"Usage: cleanarch [options] < inputfile > outputfile\n"
+"Options:\n"
+" -s n\n"
+" --status=n\n"
+" Print a # character every n lines processed\n"
+"\n"
+" -q / --quiet\n"
+" Don't print changed line information to standard error.\n"
+"\n"
+" -n / --dry-run\n"
+" Don't actually output anything.\n"
+"\n"
+" -h / --help\n"
+" Print this message and exit\n"
+msgstr ""
+
+#: bin/cleanarch:82
+msgid "Unix-From line changed: %(lineno)d"
+msgstr "Unix-From rida muutus: %(lineno)d "
+
+#: bin/cleanarch:110
+msgid "Bad status number: %(arg)s"
+msgstr "Vigane staatus: %(arg)s"
+
+#: bin/cleanarch:160
+msgid "%(messages)d messages found"
+msgstr "Leiti %(messages)d meili"
+
+#: bin/clone_member:19
+msgid ""
+"Clone a member address.\n"
+"\n"
+"Cloning a member address means that a new member will be added who has all "
+"the\n"
+"same options and passwords as the original member address. Note that this\n"
+"operation is fairly trusting of the user who runs it -- it does no\n"
+"verification to the new address, it does not send out a welcome message, "
+"etc.\n"
+"\n"
+"The existing member's subscription is usually not modified in any way. If "
+"you\n"
+"want to remove the old address, use the -r flag. If you also want to "
+"change\n"
+"any list admin addresses, use the -a flag.\n"
+"\n"
+"Usage:\n"
+" clone_member [options] fromoldaddr tonewaddr\n"
+"\n"
+"Where:\n"
+"\n"
+" --listname=listname\n"
+" -l listname\n"
+" Check and modify only the named mailing lists. If -l is not given,\n"
+" then all mailing lists are scanned from the address. Multiple -l\n"
+" options can be supplied.\n"
+"\n"
+" --remove\n"
+" -r\n"
+" Remove the old address from the mailing list after it's been "
+"cloned.\n"
+"\n"
+" --admin\n"
+" -a\n"
+" Scan the list admin addresses for the old address, and clone or "
+"change\n"
+" them too.\n"
+"\n"
+" --quiet\n"
+" -q\n"
+" Do the modifications quietly.\n"
+"\n"
+" --nomodify\n"
+" -n\n"
+" Print what would be done, but don't actually do it. Inhibits the\n"
+" --quiet flag.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" fromoldaddr (`from old address') is the old address of the user. "
+"tonewaddr\n"
+" (`to new address') is the new address of the user.\n"
+"\n"
+msgstr ""
+
+#: bin/clone_member:94
+msgid "processing mailing list:"
+msgstr "töötlen listi:"
+
+#: bin/clone_member:101
+msgid " scanning list owners:"
+msgstr " skaneerin listi haldureid:"
+
+#: bin/clone_member:119
+msgid " new list owners:"
+msgstr " uued listi haldurid"
+
+#: bin/clone_member:121
+msgid "(no change)"
+msgstr ""
+
+#: bin/clone_member:130
+msgid " address not found:"
+msgstr " aadressi ei leitud."
+
+#: bin/clone_member:139
+msgid " clone address added:"
+msgstr ""
+
+#: bin/clone_member:142
+msgid " clone address is already a member:"
+msgstr ""
+
+#: bin/clone_member:145
+msgid " original address removed:"
+msgstr ""
+
+#: bin/clone_member:196
+msgid "Not a valid email address: %(toaddr)s"
+msgstr "Vigane meiliaadress: %(toaddr)s"
+
+#: bin/clone_member:209
+msgid ""
+"Error opening list \"%(listname)s\", skipping.\n"
+"%(e)s"
+msgstr ""
+"Viga listi \"%(listname)s\" avamisel, jätan vahele.\n"
+"%(e)s"
+
+#: bin/config_list:19
+msgid ""
+"Configure a list from a text file description.\n"
+"\n"
+"Usage: config_list [options] listname\n"
+"\n"
+"Options:\n"
+" --inputfile filename\n"
+" -i filename\n"
+" Configure the list by assigning each module-global variable in the\n"
+" file to an attribute on the list object, then saving the list. The\n"
+" named file is loaded with execfile() and must be legal Python code.\n"
+" Any variable that isn't already an attribute of the list object is\n"
+" ignored (a warning message is printed). See also the -c option.\n"
+"\n"
+" A special variable named `mlist' is put into the globals during the\n"
+" execfile, which is bound to the actual MailList object. This lets "
+"you\n"
+" do all manner of bizarre thing to the list object, but BEWARE! "
+"Using\n"
+" this can severely (and possibly irreparably) damage your mailing "
+"list!\n"
+"\n"
+" --outputfile filename\n"
+" -o filename\n"
+" Instead of configuring the list, print out a list's configuration\n"
+" variables in a format suitable for input using this script. In "
+"this\n"
+" way, you can easily capture the configuration settings for a\n"
+" particular list and imprint those settings on another list. "
+"filename\n"
+" is the file to output the settings to. If filename is `-', "
+"standard\n"
+" out is used.\n"
+"\n"
+" --checkonly\n"
+" -c\n"
+" With this option, the modified list is not actually changed. Only\n"
+" useful with -i.\n"
+"\n"
+" --verbose\n"
+" -v\n"
+" Print the name of each attribute as it is being changed. Only "
+"useful\n"
+" with -i.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+"The options -o and -i are mutually exclusive.\n"
+"\n"
+msgstr ""
+
+#: bin/config_list:109
+msgid ""
+"## \"%(listname)s\" mailing list configuration settings -*- python -*-\n"
+"## captured on %(when)s\n"
+msgstr ""
+
+#: bin/config_list:131
+msgid "options"
+msgstr "seadistused"
+
+#: bin/config_list:188
+msgid "legal values are:"
+msgstr "lubatud väärtused on:"
+
+#: bin/config_list:255
+msgid "attribute \"%(k)s\" ignored"
+msgstr "atribuuti \"%(k)s\" ignoreeriti"
+
+#: bin/config_list:258
+msgid "attribute \"%(k)s\" changed"
+msgstr "atribuutii \"%(k)s\" muudeti"
+
+#: bin/config_list:264
+msgid "Non-standard property restored: %(k)s"
+msgstr ""
+
+#: bin/config_list:272
+msgid "Invalid value for property: %(k)s"
+msgstr "Vigane väärtus: %(k)s"
+
+#: bin/config_list:274
+msgid "Bad email address for option %(k)s: %(v)s"
+msgstr "Vigane meiliaadress %(k)s: %(v)s"
+
+#: bin/config_list:322
+msgid "Only one of -i or -o is allowed"
+msgstr "Lubatud on ainult -i või -o. Mõlemat korraga ei saa."
+
+#: bin/config_list:324
+msgid "One of -i or -o is required"
+msgstr "Üks kahest: -i või -o peab olema antud."
+
+#: bin/config_list:328
+msgid "List name is required"
+msgstr "Listi nimi puudub"
+
+#: bin/convert.py:19
+msgid ""
+"Convert a list's interpolation strings from %-strings to $-strings.\n"
+"\n"
+"This script is intended to be run as a bin/withlist script, i.e.\n"
+"\n"
+"% bin/withlist -l -r convert <mylist>\n"
+msgstr ""
+
+#: bin/convert.py:38 bin/fix_url.py:85
+msgid "Saving list"
+msgstr "Salvestan listi"
+
+#: bin/convert.py:44 bin/fix_url.py:51
+msgid "%%%"
+msgstr "%%%"
+
+#: bin/dumpdb:19
+msgid ""
+"Dump the contents of any Mailman `database' file.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] filename\n"
+"\n"
+"Options:\n"
+"\n"
+" --marshal/-m\n"
+" Assume the file contains a Python marshal, overridding any "
+"automatic\n"
+" guessing.\n"
+"\n"
+" --pickle/-p\n"
+" Assume the file contains a Python pickle, overridding any automatic\n"
+" guessing.\n"
+"\n"
+" --noprint/-n\n"
+" Don't attempt to pretty print the object. This is useful if "
+"there's\n"
+" some problem with the object and you just want to get an unpickled\n"
+" representation. Useful with `python -i bin/dumpdb <file>'. In "
+"that\n"
+" case, the root of the tree will be left in a global called \"msg\".\n"
+"\n"
+" --help/-h\n"
+" Print this help message and exit\n"
+"\n"
+"If the filename ends with `.db', then it is assumed that the file contains "
+"a\n"
+"Python marshal. If the file ends with `.pck' then it is assumed to contain "
+"a\n"
+"Python pickle. In either case, if you want to override the default "
+"assumption\n"
+"-- or if the file ends in neither suffix -- use the -p or -m flags.\n"
+msgstr ""
+
+#: bin/dumpdb:101
+msgid "No filename given."
+msgstr "Faili nimi puudub."
+
+#: bin/dumpdb:104
+msgid "Bad arguments: %(pargs)s"
+msgstr "Vigased argumendid: %(pargs)s"
+
+#: bin/dumpdb:114
+msgid "Please specify either -p or -m."
+msgstr ""
+
+#: bin/find_member:19
+msgid ""
+"Find all lists that a member's address is on.\n"
+"\n"
+"Usage:\n"
+" find_member [options] regex [regex [...]]\n"
+"\n"
+"Where:\n"
+" --listname=listname\n"
+" -l listname\n"
+" Include only the named list in the search.\n"
+"\n"
+" --exclude=listname\n"
+" -x listname\n"
+" Exclude the named list from the search.\n"
+"\n"
+" --owners\n"
+" -w\n"
+" Search list owners as well as members.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" regex\n"
+" A Python regular expression to match against.\n"
+"\n"
+"The interaction between -l and -x is as follows. If any -l option is given\n"
+"then only the named list will be included in the search. If any -x option "
+"is\n"
+"given but no -l option is given, then all lists will be search except those\n"
+"specifically excluded.\n"
+"\n"
+"Regular expression syntax is Perl5-like, using the Python re module. "
+"Complete\n"
+"specifications are at:\n"
+"\n"
+"http://www.python.org/doc/current/lib/module-re.html\n"
+"\n"
+"Address matches are case-insensitive, but case-preserved addresses are\n"
+"displayed.\n"
+"\n"
+msgstr ""
+
+#: bin/find_member:159
+msgid "Search regular expression required"
+msgstr "Otsinguks on vajalik regulaaravaldis"
+
+#: bin/find_member:164
+msgid "No lists to search"
+msgstr "Ei leidnud ühtegi listi, millest otsida"
+
+#: bin/find_member:173
+msgid "found in:"
+msgstr "leiti listis: "
+
+#: bin/find_member:179
+msgid "(as owner)"
+msgstr "(omanik)"
+
+#: bin/fix_url.py:19
+msgid ""
+"Reset a list's web_page_url attribute to the default setting.\n"
+"\n"
+"This script is intended to be run as a bin/withlist script, i.e.\n"
+"\n"
+"% bin/withlist -l -r fix_url listname [options]\n"
+"\n"
+"Options:\n"
+" -u urlhost\n"
+" --urlhost=urlhost\n"
+" Look up urlhost in the virtual host table and set the web_page_url "
+"and\n"
+" host_name attributes of the list to the values found. This\n"
+" essentially moves the list from one virtual domain to another.\n"
+"\n"
+" Without this option, the default web_page_url and host_name values "
+"are\n"
+" used.\n"
+"\n"
+" -v / --verbose\n"
+" Print what the script is doing.\n"
+"\n"
+"If run standalone, it prints this help text and exits.\n"
+msgstr ""
+
+#: bin/fix_url.py:80
+msgid "Setting web_page_url to: %(web_page_url)s"
+msgstr "web_page_url uus väärtus on: %(web_page_url)s"
+
+#: bin/fix_url.py:83
+msgid "Setting host_name to: %(mailhost)s"
+msgstr "host_name uus väärtus on: %(mailhost)s"
+
+#: bin/genaliases:19
+msgid ""
+"Regenerate Postfix's data/aliases and data/aliases.db files from scratch.\n"
+"\n"
+"Usage:\n"
+"\n"
+" genaliases [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+msgstr ""
+
+#: bin/inject:19
+msgid ""
+"Inject a message from a file into Mailman's incoming queue.\n"
+"\n"
+"Usage: inject [options] [filename]\n"
+"\n"
+"Options:\n"
+"\n"
+" -h / --help\n"
+" Print this text and exit.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" The name of the list to inject this message to. Required.\n"
+"\n"
+" -q queuename\n"
+" --queue=queuename\n"
+" The name of the queue to inject the message to. The queuename must "
+"be\n"
+" one of the directories inside the qfiles directory. If omitted, "
+"the\n"
+" incoming queue is used.\n"
+"\n"
+"filename is the name of the plaintext message file to inject. If omitted,\n"
+"standard input is used.\n"
+msgstr ""
+
+#: bin/inject:83
+msgid "Bad queue directory: %(qdir)s"
+msgstr "Vigane järjekorra kataloog: %(qdir)s"
+
+#: bin/inject:88
+msgid "A list name is required"
+msgstr "Listi nimi on määramata"
+
+#: bin/list_admins:19
+msgid ""
+"List all the owners of a mailing list.\n"
+"\n"
+"Usage: %(program)s [options] listname ...\n"
+"\n"
+"Where:\n"
+"\n"
+" --all-vhost=vhost\n"
+" -v=vhost\n"
+" List the owners of all the mailing lists for the given virtual "
+"host.\n"
+"\n"
+" --all\n"
+" -a\n"
+" List the owners of all the mailing lists on this system.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+"`listname' is the name of the mailing list to print the owners of. You can\n"
+"have more than one named list on the command line.\n"
+msgstr ""
+
+#: bin/list_admins:96
+msgid "List: %(listname)s, \tOwners: %(owners)s"
+msgstr "List: %(listname)s, \thaldurid: %(owners)s"
+
+#: bin/list_lists:19
+msgid ""
+"List all mailing lists.\n"
+"\n"
+"Usage: %(program)s [options]\n"
+"\n"
+"Where:\n"
+"\n"
+" -a / --advertised\n"
+" List only those mailing lists that are publically advertised\n"
+"\n"
+" --virtual-host-overview=domain\n"
+" -V domain\n"
+" List only those mailing lists that are homed to the given virtual\n"
+" domain. This only works if the VIRTUAL_HOST_OVERVIEW variable is\n"
+" set.\n"
+"\n"
+" -b / --bare\n"
+" Displays only the list name, with no description.\n"
+"\n"
+" -h / --help\n"
+" Print this text and exit.\n"
+"\n"
+msgstr ""
+
+#: bin/list_lists:105
+msgid "No matching mailing lists found"
+msgstr "Ühtegi otsingutingimusele vastavat listi ei leitud."
+
+#: bin/list_lists:109
+msgid "matching mailing lists found:"
+msgstr "tingimustele vastasid listid:"
+
+#: bin/list_members:19
+msgid ""
+"List all the members of a mailing list.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] listname\n"
+"\n"
+"Where:\n"
+"\n"
+" --output file\n"
+" -o file\n"
+" Write output to specified file instead of standard out.\n"
+"\n"
+" --regular / -r\n"
+" Print just the regular (non-digest) members.\n"
+"\n"
+" --digest[=kind] / -d [kind]\n"
+" Print just the digest members. Optional argument can be \"mime\" "
+"or\n"
+" \"plain\" which prints just the digest members receiving that kind "
+"of\n"
+" digest.\n"
+"\n"
+" --nomail[=why] / -n [why]\n"
+" Print the members that have delivery disabled. Optional argument "
+"can\n"
+" be \"byadmin\", \"byuser\", \"bybounce\", or \"unknown\" which "
+"prints just the\n"
+" users who have delivery disabled for that reason. It can also be\n"
+" \"enabled\" which prints just those member for whom delivery is\n"
+" enabled.\n"
+"\n"
+" --fullnames / -f\n"
+" Include the full names in the output.\n"
+"\n"
+" --preserve\n"
+" -p\n"
+" Output member addresses case preserved the way they were added to "
+"the\n"
+" list. Otherwise, addresses are printed in all lowercase.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname is the name of the mailing list to use.\n"
+"\n"
+"Note that if neither -r or -d is supplied, both regular members are printed\n"
+"first, followed by digest members, but no indication is given as to address\n"
+"status.\n"
+msgstr ""
+"Listi tellijate nimestiku väljastamine.\n"
+"\n"
+"Kasutamine: %(PROGRAM)s: [võtmed] list\n"
+"\n"
+"Võtmed:\n"
+"\n"
+" --output fail\n"
+" -o fail\n"
+" Salvesta väljund faili\n"
+" \n"
+" --regular / -r\n"
+" Väljasta ainult üksikkirjade tellijate aadressid.\n"
+"\n"
+" --digest[=tüüp] / -d [tüüp]\n"
+" Väljasta ainult referaatide telijate aadressid. Kui määrad\n"
+" ka tüübi, peab see olemas kas \"mime\" või \"plain\" ja siis\n"
+" väljastatakse ainult selle tüübiga referaadi tellijate\n"
+" aadressid.\n"
+"\n"
+" --nomail[=põhjus] / -n [põhjus]\n"
+" Väljasta ainult aadressid, millele kirjade saatmine on\n"
+" peatatud. Kui põhjus on määratud, siis peab see olema\n"
+" üks järgnevatest: \"byadmin\", \"byuser\", \"bybounce\",\n"
+" \"unknown\" ja siis väljastatakse ainult need aadressid,\n"
+" mille tellimus on peatatud sellel põhjusel. Võib kasutada\n"
+" ka väärtust \"enabled\", mis põhjustab ainult aktiivsete\n"
+" tellijate nimestiku väljastamise.\n"
+"\n"
+" --fullnames / -f\n"
+" Väljasta ka tellijate nimed\n"
+"\n"
+" --preserve\n"
+" -p\n"
+" Väljasta aadressid sellisel kujul (suur- ja väiketähti arvestades)\n"
+" nagu nad lisati. Selle võtme puudumisel teisendatakse aadressid\n"
+" väiketähtedeks.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Näita seda teksti.\n"
+"\n"
+" list on listi nimi, mille tellijate nimestik väljastada.\n"
+"\n"
+"NB! Kui jätad ära -r ja -d võtmed, siis väljastatakse kõigi tellijate\n"
+"nimestik - alguses üksikkirjade ja seejärel referaatide tellijad, kuid\n"
+"sellest nimestikus ei ole tellimuse tüübi indikaatorit - s.t. neil\n"
+"pole võimalik vahet teha.\n"
+
+#: bin/list_members:150
+msgid "Bad --nomail option: %(why)s"
+msgstr "Vigane --nomail võti: %(why)s"
+
+#: bin/list_members:161
+msgid "Bad --digest option: %(kind)s"
+msgstr "Vigane --digest võti: %(kind)s"
+
+#: bin/list_members:179
+msgid "Could not open file for writing:"
+msgstr "Faili avamine kirjutamiseks ebaõnnestus:"
+
+#: bin/list_owners:19
+msgid ""
+"List the owners of a mailing list, or all mailing lists.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname ...]\n"
+"Options:\n"
+"\n"
+" -w / --with-listnames\n"
+" Group the owners by list names and include the list names in the\n"
+" output. Otherwise, the owners will be sorted and uniquified based "
+"on\n"
+" the email address.\n"
+"\n"
+" -m / --moderators\n"
+" Include the list moderators in the output.\n"
+"\n"
+" -h / --help\n"
+" Print this help message and exit.\n"
+"\n"
+" listname\n"
+" Print the owners of the specified lists. More than one can appear\n"
+" after the options. If there are no listnames provided, the owners "
+"of\n"
+" all the lists will be displayed.\n"
+msgstr ""
+
+#: bin/mailmanctl:19
+msgid ""
+"Primary start-up and shutdown script for Mailman's qrunner daemon.\n"
+"\n"
+"This script starts, stops, and restarts the main Mailman queue runners, "
+"making\n"
+"sure that the various long-running qrunners are still alive and kicking. "
+"It\n"
+"does this by forking and exec'ing the qrunners and waiting on their pids.\n"
+"When it detects a subprocess has exited, it may restart it.\n"
+"\n"
+"The qrunners respond to SIGINT, SIGTERM, and SIGHUP. SIGINT and SIGTERM "
+"both\n"
+"cause the qrunners to exit cleanly, but the master will only restart "
+"qrunners\n"
+"that have exited due to a SIGINT. SIGHUP causes the master and the "
+"qrunners\n"
+"to close their log files, and reopen then upon the next printed message.\n"
+"\n"
+"The master also responds to SIGINT, SIGTERM, and SIGHUP, which it simply\n"
+"passes on to the qrunners (note that the master will close and reopen its "
+"own\n"
+"log files on receipt of a SIGHUP). The master also leaves its own process "
+"id\n"
+"in the file data/master-qrunner.pid but you normally don't need to use this\n"
+"pid directly. The `start', `stop', `restart', and `reopen' commands handle\n"
+"everything for you.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [ start | stop | restart | reopen ]\n"
+"\n"
+"Options:\n"
+"\n"
+" -n/--no-restart\n"
+" Don't restart the qrunners when they exit because of an error or a\n"
+" SIGINT. They are never restarted if they exit in response to a\n"
+" SIGTERM. Use this only for debugging. Only useful if the `start'\n"
+" command is given.\n"
+"\n"
+" -u/--run-as-user\n"
+" Normally, this script will refuse to run if the user id and group "
+"id\n"
+" are not set to the `mailman' user and group (as defined when you\n"
+" configured Mailman). If run as root, this script will change to "
+"this\n"
+" user and group before the check is made.\n"
+"\n"
+" This can be inconvenient for testing and debugging purposes, so the -"
+"u\n"
+" flag means that the step that sets and checks the uid/gid is "
+"skipped,\n"
+" and the program is run as the current user and group. This flag is\n"
+" not recommended for normal production environments.\n"
+"\n"
+" Note though, that if you run with -u and are not in the mailman "
+"group,\n"
+" you may have permission problems, such as begin unable to delete a\n"
+" list's archives through the web. Tough luck!\n"
+"\n"
+" -s/--stale-lock-cleanup\n"
+" If mailmanctl finds an existing master lock, it will normally exit\n"
+" with an error message. With this option, mailmanctl will perform "
+"an\n"
+" extra level of checking. If a process matching the host/pid "
+"described\n"
+" in the lock file is running, mailmanctl will still exit, but if no\n"
+" matching process is found, mailmanctl will remove the apparently "
+"stale\n"
+" lock and make another attempt to claim the master lock.\n"
+"\n"
+" -q/--quiet\n"
+" Don't print status messages. Error messages are still printed to\n"
+" standard error.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+"\n"
+"Commands:\n"
+"\n"
+" start - Start the master daemon and all qrunners. Prints a message "
+"and\n"
+" exits if the master daemon is already running.\n"
+"\n"
+" stop - Stops the master daemon and all qrunners. After stopping, no\n"
+" more messages will be processed.\n"
+"\n"
+" restart - Restarts the qrunners, but not the master process. Use this\n"
+" whenever you upgrade or update Mailman so that the qrunners "
+"will\n"
+" use the newly installed code.\n"
+"\n"
+" reopen - This will close all log files, causing them to be re-opened "
+"the\n"
+" next time a message is written to them\n"
+msgstr ""
+
+#: bin/mailmanctl:149
+msgid "PID unreadable in: %(pidfile)s"
+msgstr "PID on loetamatu: %(pidfile)s"
+
+#: bin/mailmanctl:151
+msgid "Is qrunner even running?"
+msgstr "Kas qrunner käib üldse?"
+
+#: bin/mailmanctl:157
+msgid "No child with pid: %(pid)s"
+msgstr "Sellise PIDiga protsessi pole: %(pid)s"
+
+#: bin/mailmanctl:159
+msgid "Stale pid file removed."
+msgstr "Hapuks läinud PID fail kustutati."
+
+#: bin/mailmanctl:217
+msgid ""
+"The master qrunner lock could not be acquired because it appears as if "
+"another\n"
+"master qrunner is already running.\n"
+msgstr ""
+
+#: bin/mailmanctl:223
+msgid ""
+"The master qrunner lock could not be acquired. It appears as though there "
+"is\n"
+"a stale master qrunner lock. Try re-running mailmanctl with the -s flag.\n"
+msgstr ""
+
+#: bin/mailmanctl:229
+msgid ""
+"The master qrunner lock could not be acquired, because it appears as if "
+"some\n"
+"process on some other host may have acquired it. We can't test for stale\n"
+"locks across host boundaries, so you'll have to do this manually. Or, if "
+"you\n"
+"know the lock is stale, re-run mailmanctl with the -s flag.\n"
+"\n"
+"Lock file: %(LOCKFILE)s\n"
+"Lock host: %(status)s\n"
+"\n"
+"Exiting."
+msgstr ""
+
+#: bin/mailmanctl:282
+msgid "Run this program as root or as the %(name)s user, or use -u."
+msgstr ""
+"Seda programmi peab käivitama ruudu või %(name)s kasutaja alt. Võib ka "
+"kasutada -u võtit."
+
+#: bin/mailmanctl:313
+msgid "No command given."
+msgstr "Sa ei andnud ühtegi käsku."
+
+#: bin/mailmanctl:316
+msgid "Bad command: %(command)s"
+msgstr "Vigane korraldus: %(command)s"
+
+#: bin/mailmanctl:321
+msgid "Warning! You may encounter permission problems."
+msgstr "Hoiatus! Loabittide praegused väärtused on problemaatilised."
+
+#: bin/mailmanctl:330
+msgid "Shutting down Mailman's master qrunner"
+msgstr "Peatan Mailmani qrunneri"
+
+#: bin/mailmanctl:337
+msgid "Restarting Mailman's master qrunner"
+msgstr "Restardin Mailmani qrunneri"
+
+#: bin/mailmanctl:341
+msgid "Re-opening all log files"
+msgstr "Kõik logifailid avati uuesti."
+
+#: bin/mailmanctl:375
+msgid "Starting Mailman's master qrunner."
+msgstr "Käivitan Mailmani qrunneri."
+
+#: bin/mmsitepass:19
+msgid ""
+"Set the site password, prompting from the terminal.\n"
+"\n"
+"The site password can be used in most if not all places that the list\n"
+"administrator's password can be used, which in turn can be used in most "
+"places\n"
+"that a list users password can be used.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [password]\n"
+"\n"
+"Options:\n"
+"\n"
+" -c/--listcreator\n"
+" Set the list creator password instead of the site password. The "
+"list\n"
+" creator is authorized to create and remove lists, but does not have\n"
+" the total power of the site administrator.\n"
+"\n"
+" -h/--help\n"
+" Print this help message and exit.\n"
+"\n"
+"If password is not given on the command line, it will be prompted for.\n"
+msgstr ""
+
+#: bin/mmsitepass:73
+msgid "site"
+msgstr "sait"
+
+#: bin/mmsitepass:80
+msgid "list creator"
+msgstr "listi looja"
+
+#: bin/mmsitepass:86
+msgid "New %(pwdesc)s password: "
+msgstr "Uus %(pwdesc)s parool: "
+
+#: bin/mmsitepass:87
+msgid "Again to confirm password: "
+msgstr "Korda parooli: "
+
+#: bin/mmsitepass:89
+msgid "Passwords do not match; no changes made."
+msgstr "Paroolid erinesid; muudatusi ei salvestatud."
+
+#: bin/mmsitepass:92
+msgid "Interrupted..."
+msgstr "Katkestatud..."
+
+#: bin/mmsitepass:98
+msgid "Password changed."
+msgstr "Parool on vahetatud."
+
+#: bin/mmsitepass:100
+msgid "Password change failed."
+msgstr "Paroolivahetus ebaõnnestus."
+
+#: bin/newlist:19
+msgid ""
+"Create a new, unpopulated mailing list.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname [listadmin-addr [admin-password]]]\n"
+"\n"
+"Options:\n"
+"\n"
+" -l language\n"
+" --language language\n"
+" Make the list's preferred language `language', which must be a two\n"
+" letter language code.\n"
+"\n"
+" -q/--quiet\n"
+" Normally the administrator is notified by email (after a prompt) "
+"that\n"
+" their list has been created. This option suppresses the prompt and\n"
+" notification.\n"
+"\n"
+" -h/--help\n"
+" Print this help text and exit.\n"
+"\n"
+"You can specify as many of the arguments as you want on the command line:\n"
+"you will be prompted for the missing ones.\n"
+"\n"
+"Every Mailman list has two parameters which define the default host name "
+"for\n"
+"outgoing email, and the default URL for all web interfaces. When you\n"
+"configured Mailman, certain defaults were calculated, but if you are "
+"running\n"
+"multiple virtual Mailman sites, then the defaults may not be appropriate "
+"for\n"
+"the list you are creating.\n"
+"\n"
+"You can specify the domain to create your new list in by spelling the "
+"listname\n"
+"like so:\n"
+"\n"
+" mylist@www.mydom.ain\n"
+"\n"
+"where `www.mydom.ain' should be the base hostname for the URL to this "
+"virtual\n"
+"hosts's lists. E.g. with is setting people will view the general list\n"
+"overviews at http://www.mydom.ain/mailman/listinfo. Also, www.mydom.ain\n"
+"should be a key in the VIRTUAL_HOSTS mapping in mm_cfg.py/Defaults.py. It\n"
+"will be looked up to give the email hostname. If this can't be found, then\n"
+"www.mydom.ain will be used for both the web interface and the email\n"
+"interface.\n"
+"\n"
+"If you spell the list name as just `mylist', then the email hostname will "
+"be\n"
+"taken from DEFAULT_EMAIL_HOST and the url will be taken from DEFAULT_URL "
+"(as\n"
+"defined in your Defaults.py file or overridden by settings in mm_cfg.py).\n"
+"\n"
+"Note that listnames are forced to lowercase.\n"
+msgstr ""
+
+#: bin/newlist:118
+msgid "Unknown language: %(lang)s"
+msgstr "Tundmatu keel: %(lang)s"
+
+#: bin/newlist:123
+msgid "Enter the name of the list: "
+msgstr "Listi nimi:"
+
+#: bin/newlist:140
+msgid "Enter the email of the person running the list: "
+msgstr "Listihalduri meiliaadress:"
+
+#: bin/newlist:145
+msgid "Initial %(listname)s password: "
+msgstr "%(listname)s listi parool:"
+
+#: bin/newlist:149
+msgid "The list password cannot be empty"
+msgstr "Listi parool ei tohi olla tühi"
+
+#: bin/newlist:190
+msgid "Hit enter to notify %(listname)s owner..."
+msgstr "Vajuta Enterit %(listname)s halduri teavitamiseks..."
+
+#: bin/qrunner:19
+msgid ""
+"Run one or more qrunners, once or repeatedly.\n"
+"\n"
+"Each named runner class is run in round-robin fashion. In other words, the\n"
+"first named runner is run to consume all the files currently in its\n"
+"directory. When that qrunner is done, the next one is run to consume all "
+"the\n"
+"files in /its/ directory, and so on. The number of total iterations can be\n"
+"given on the command line.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" -r runner[:slice:range]\n"
+" --runner=runner[:slice:range]\n"
+" Run the named qrunner, which must be one of the strings returned by\n"
+" the -l option. Optional slice:range if given, is used to assign\n"
+" multiple qrunner processes to a queue. range is the total number "
+"of\n"
+" qrunners for this queue while slice is the number of this qrunner "
+"from\n"
+" [0..range).\n"
+"\n"
+" If using the slice:range form, you better make sure that each "
+"qrunner\n"
+" for the queue is given the same range value. If slice:runner is "
+"not\n"
+" given, then 1:1 is used.\n"
+"\n"
+" Multiple -r options may be given, in which case each qrunner will "
+"run\n"
+" once in round-robin fashion. The special runner `All' is shorthand\n"
+" for a qrunner for each listed by the -l option.\n"
+"\n"
+" --once\n"
+" -o\n"
+" Run each named qrunner exactly once through its main loop. "
+"Otherwise,\n"
+" each qrunner runs indefinitely, until the process receives a "
+"SIGTERM\n"
+" or SIGINT.\n"
+"\n"
+" -l/--list\n"
+" Shows the available qrunner names and exit.\n"
+"\n"
+" -v/--verbose\n"
+" Spit out more debugging information to the logs/qrunner log file.\n"
+"\n"
+" -s/--subproc\n"
+" This should only be used when running qrunner as a subprocess of "
+"the\n"
+" mailmanctl startup script. It changes some of the exit-on-error\n"
+" behavior to work better with that framework.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+"\n"
+"runner is required unless -l or -h is given, and it must be one of the "
+"names\n"
+"displayed by the -l switch.\n"
+msgstr ""
+
+#: bin/qrunner:176
+msgid "%(name)s runs the %(runnername)s qrunner"
+msgstr ""
+
+#: bin/qrunner:177
+msgid "All runs all the above qrunners"
+msgstr ""
+
+#: bin/qrunner:213
+msgid "No runner name given."
+msgstr ""
+
+#: bin/remove_members:19
+msgid ""
+"Remove members from a list.\n"
+"\n"
+"Usage:\n"
+" remove_members [options] [listname] [addr1 ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" --file=file\n"
+" -f file\n"
+" Remove member addresses found in the given file. If file is\n"
+" `-', read stdin.\n"
+"\n"
+" --all\n"
+" -a\n"
+" Remove all members of the mailing list.\n"
+" (mutually exclusive with --fromall)\n"
+"\n"
+" --fromall\n"
+" Removes the given addresses from all the lists on this system\n"
+" regardless of virtual domains if you have any. This option cannot "
+"be\n"
+" used -a/--all. Also, you should not specify a listname when using "
+"this\n"
+" option.\n"
+"\n"
+" --nouserack\n"
+" -n\n"
+" Don't send the user acknowledgements.\n"
+"\n"
+" --noadminack\n"
+" -N\n"
+" Don't send the admin acknowledgements.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname is the name of the mailing list to use.\n"
+"\n"
+" addr1 ... are additional addresses to remove.\n"
+"\n"
+msgstr ""
+
+#: bin/remove_members:147
+msgid "Could not open file for reading: %(filename)s."
+msgstr "Faili avamine lugemiseks ebaõnnestus: %(filename)s."
+
+#: bin/remove_members:154
+msgid "Error opening list %(listname)s... skipping."
+msgstr "Viga listi %(listname)s töötlemisel .. jätan vahele."
+
+#: bin/remove_members:164
+msgid "No such member: %(addr)s"
+msgstr "Sellise aadressiga liiget pole: %(addr)s"
+
+#: bin/remove_members:171
+msgid "User `%(addr)s' removed from list: %(listname)s."
+msgstr "Aadress `%(addr)s' eemaldati listi %(listname)s tellijate nimekirjast."
+
+#: bin/rmlist:19
+msgid ""
+"Remove the components of a mailing list with impunity - beware!\n"
+"\n"
+"This removes (almost) all traces of a mailing list. By default, the lists\n"
+"archives are not removed, which is very handy for retiring old lists.\n"
+"\n"
+"Usage:\n"
+" rmlist [-a] [-h] listname\n"
+"\n"
+"Where:\n"
+" --archives\n"
+" -a\n"
+" Remove the list's archives too, or if the list has already been\n"
+" deleted, remove any residual archives.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+msgstr ""
+
+#: bin/rmlist:66 bin/rmlist:69
+msgid "Removing %(msg)s"
+msgstr "Eemaldan %(msg)s"
+
+#: bin/rmlist:72
+msgid "%(listname)s %(msg)s not found as %(dir)s"
+msgstr ""
+
+#: bin/rmlist:96
+msgid "No such list (or list already deleted): %(listname)s"
+msgstr "Selle nimega listi pole: %(listname)s"
+
+#: bin/rmlist:98
+msgid "No such list: %(listname)s. Removing its residual archives."
+msgstr "Selle nimega listi pole: %(listname)s. Kustutan arhiivid."
+
+#: bin/rmlist:102
+msgid "Not removing archives. Reinvoke with -a to remove them."
+msgstr "Jätan arhiivid alles. Kui soovid arhiive eemaldada, siis kasuta võtit -a"
+
+#: bin/rmlist:116
+msgid "list info"
+msgstr "listi info"
+
+#: bin/rmlist:122 bin/rmlist:124
+msgid "private archives"
+msgstr "privaatsed arhiivid"
+
+#: bin/rmlist:126 bin/rmlist:128
+msgid "public archives"
+msgstr "avalikud arhiivid"
+
+#: bin/sync_members:19
+msgid ""
+"Synchronize a mailing list's membership with a flat file.\n"
+"\n"
+"This script is useful if you have a Mailman mailing list and a sendmail\n"
+":include: style list of addresses (also as is used in Majordomo). For "
+"every\n"
+"address in the file that does not appear in the mailing list, the address "
+"is\n"
+"added. For every address in the mailing list that does not appear in the\n"
+"file, the address is removed. Other options control what happens when an\n"
+"address is added or removed.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] -f file listname\n"
+"\n"
+"Where `options' are:\n"
+"\n"
+" --no-change\n"
+" -n\n"
+" Don't actually make the changes. Instead, print out what would be\n"
+" done to the list.\n"
+"\n"
+" --welcome-msg[=<yes|no>]\n"
+" -w[=<yes|no>]\n"
+" Sets whether or not to send the newly added members a welcome\n"
+" message, overriding whatever the list's `send_welcome_msg' setting\n"
+" is. With -w=yes or -w, the welcome message is sent. With -w=no, "
+"no\n"
+" message is sent.\n"
+"\n"
+" --goodbye-msg[=<yes|no>]\n"
+" -g[=<yes|no>]\n"
+" Sets whether or not to send the goodbye message to removed members,\n"
+" overriding whatever the list's `send_goodbye_msg' setting is. With\n"
+" -g=yes or -g, the goodbye message is sent. With -g=no, no message "
+"is\n"
+" sent.\n"
+"\n"
+" --digest[=<yes|no>]\n"
+" -d[=<yes|no>]\n"
+" Selects whether to make newly added members receive messages in\n"
+" digests. With -d=yes or -d, they become digest members. With -"
+"d=no\n"
+" (or if no -d option given) they are added as regular members.\n"
+"\n"
+" --notifyadmin[=<yes|no>]\n"
+" -a[=<yes|no>]\n"
+" Specifies whether the admin should be notified for each "
+"subscription\n"
+" or unsubscription. If you're adding a lot of addresses, you\n"
+" definitely want to turn this off! With -a=yes or -a, the admin is\n"
+" notified. With -a=no, the admin is not notified. With no -a "
+"option,\n"
+" the default for the list is used.\n"
+"\n"
+" --file <filename | ->\n"
+" -f <filename | ->\n"
+" This option is required. It specifies the flat file to synchronize\n"
+" against. Email addresses must appear one per line. If filename is\n"
+" `-' then stdin is used.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this message.\n"
+"\n"
+" listname\n"
+" Required. This specifies the list to synchronize.\n"
+msgstr ""
+
+#: bin/sync_members:115
+msgid "Bad choice: %(yesno)s"
+msgstr "Vigane valik: %(yesno)s"
+
+#: bin/sync_members:138
+msgid "Dry run mode"
+msgstr "Testre¸iim"
+
+#: bin/sync_members:159
+msgid "Only one -f switch allowed"
+msgstr "Lubatud on ainult üks -f argument"
+
+#: bin/sync_members:163
+msgid "No argument to -f given"
+msgstr "-f on ilma argumendita"
+
+#: bin/sync_members:172
+msgid "Illegal option: %(opt)s"
+msgstr "Vigane seadistus: %(opt)s"
+
+#: bin/sync_members:178
+msgid "No listname given"
+msgstr "Listi nimi on puudu"
+
+#: bin/sync_members:182
+msgid "Must have a listname and a filename"
+msgstr "Listi ja faili peavad määratud olema"
+
+#: bin/sync_members:191
+msgid "Cannot read address file: %(filename)s: %(msg)s"
+msgstr "Aadressifaili %(filename)s lugemine ei õnnestu: %(msg)s"
+
+#: bin/sync_members:203
+msgid "Ignore : %(addr)30s"
+msgstr "Ignoreeri : %(addr)30s"
+
+#: bin/sync_members:212
+msgid "Invalid : %(addr)30s"
+msgstr "Vigased : %(addr)30s"
+
+#: bin/sync_members:215
+msgid "You must fix the preceding invalid addresses first."
+msgstr ""
+
+#: bin/sync_members:259
+msgid "Added : %(s)s"
+msgstr "Lisasin : %(s)s"
+
+#: bin/sync_members:278
+msgid "Removed: %(s)s"
+msgstr "Eemaldasin %(s)s"
+
+#: bin/transcheck:18
+msgid ""
+"\n"
+"Check a given Mailman translation, making sure that variables and\n"
+"tags referenced in translation are the same variables and tags in\n"
+"the original templates and catalog.\n"
+"\n"
+"Usage:\n"
+"\n"
+"cd $MAILMAN_DIR\n"
+"%(program)s [-q] <lang>\n"
+"\n"
+"Where <lang> is your country code (e.g. 'it' for Italy) and -q is\n"
+"to ask for a brief summary.\n"
+msgstr ""
+
+#: bin/transcheck:57
+msgid "check a translation comparing with the original string"
+msgstr "kontrolli tõlget võrreldes seda originaalstringiga"
+
+#: bin/transcheck:64
+msgid "scan a string from the original file"
+msgstr "skaneeri stringi originaalfailist"
+
+#: bin/transcheck:72
+msgid "scan a translated string"
+msgstr "skaneeri tõlgitud stringi"
+
+#: bin/transcheck:83
+msgid "check for differences between checked in and checked out"
+msgstr ""
+
+#: bin/transcheck:116
+msgid "parse a .po file extracting msgids and msgstrs"
+msgstr "eralda .po failist msgid'd ja msgstr'd"
+
+#: bin/transcheck:135
+msgid ""
+"States table for the finite-states-machine parser:\n"
+" 0 idle\n"
+" 1 filename-or-comment\n"
+" 2 msgid\n"
+" 3 msgstr\n"
+" 4 end\n"
+" "
+msgstr ""
+
+#: bin/transcheck:272
+msgid ""
+"check a translated template against the original one\n"
+" search also <MM-*> tags if html is not zero"
+msgstr ""
+
+#: bin/transcheck:319
+msgid "scan the po file comparing msgids with msgstrs"
+msgstr "skaneeri po faili võrreldes msgid'd ja msgstr'e"
+
+#: bin/unshunt:19
+msgid ""
+"Move a message from the shunt queue to the original queue.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [directory]\n"
+"\n"
+"Where:\n"
+"\n"
+" -h / --help\n"
+" Print help and exit.\n"
+"\n"
+"Optional `directory' specifies a directory to dequeue from other than\n"
+"qfiles/shunt.\n"
+msgstr ""
+
+#: bin/unshunt:81
+msgid ""
+"Cannot unshunt message %(filebase)s, skipping:\n"
+"%(e)s"
+msgstr ""
+
+#: bin/update:19
+msgid ""
+"Perform all necessary upgrades.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -f/--force\n"
+" Force running the upgrade procedures. Normally, if the version "
+"number\n"
+" of the installed Mailman matches the current version number (or a\n"
+" `downgrade' is detected), nothing will be done.\n"
+"\n"
+" -h/--help\n"
+" Print this text and exit.\n"
+"\n"
+"Use this script to help you update to the latest release of Mailman from\n"
+"some previous version. It knows about versions back to 1.0b4 (?).\n"
+msgstr ""
+
+#: bin/update:102
+msgid "Fixing language templates: %(listname)s"
+msgstr "Parandan keelte malle: %(listname)s"
+
+#: bin/update:191 bin/update:466
+msgid "WARNING: could not acquire lock for list: %(listname)s"
+msgstr "HOIATUS: listi %(listname)s lukustamine ebaõnnestus."
+
+#: bin/update:210
+msgid "Resetting %(n)s BYBOUNCEs disabled addrs with no bounce info"
+msgstr ""
+
+#: bin/update:216
+msgid "Updating the held requests database."
+msgstr ""
+
+#: bin/update:238
+msgid ""
+"For some reason, %(mbox_dir)s exists as a file. This won't work with\n"
+"b6, so I'm renaming it to %(mbox_dir)s.tmp and proceeding."
+msgstr ""
+
+#: bin/update:250
+msgid ""
+"\n"
+"%(listname)s has both public and private mbox archives. Since this list\n"
+"currently uses private archiving, I'm installing the private mbox archive\n"
+"-- %(o_pri_mbox_file)s -- as the active archive, and renaming\n"
+" %(o_pub_mbox_file)s\n"
+"to\n"
+" %(o_pub_mbox_file)s.preb6\n"
+"\n"
+"You can integrate that into the archives if you want by using the 'arch'\n"
+"script.\n"
+msgstr ""
+
+#: bin/update:265
+msgid ""
+"%s has both public and private mbox archives. Since this list\n"
+"currently uses public archiving, I'm installing the public mbox file\n"
+"archive file (%s) as the active one, and renaming\n"
+" %s\n"
+" to\n"
+" %s.preb6\n"
+"\n"
+"You can integrate that into the archives if you want by using the 'arch'\n"
+"script.\n"
+msgstr ""
+
+#: bin/update:282
+msgid "- updating old private mbox file"
+msgstr ""
+
+#: bin/update:290
+msgid ""
+" unknown file in the way, moving\n"
+" %(o_pri_mbox_file)s\n"
+" to\n"
+" %(newname)s"
+msgstr ""
+" tundmatu fail risti jalus, nimetan\n"
+" %(o_pri_mbox_file)s\n"
+" ümber "
+" %(newname)s"
+
+#: bin/update:297 bin/update:320
+msgid ""
+" looks like you have a really recent CVS installation...\n"
+" you're either one brave soul, or you already ran me"
+msgstr ""
+
+#: bin/update:306
+msgid "- updating old public mbox file"
+msgstr ""
+
+#: bin/update:314
+msgid ""
+" unknown file in the way, moving\n"
+" %(o_pub_mbox_file)s\n"
+" to\n"
+" %(newname)s"
+msgstr ""
+" tundmatu fail risti jalus, nimetan\n"
+" %(o_pub_mbox_file)s\n"
+" ümber\n"
+" %(newname)s"
+
+#: bin/update:345
+msgid "- This list looks like it might have <= b4 list templates around"
+msgstr ""
+
+#: bin/update:352
+msgid "- moved %(o_tmpl)s to %(n_tmpl)s"
+msgstr "- nimetasin %(o_tmpl)s ümber %(n_tmpl)s"
+
+#: bin/update:354
+msgid "- both %(o_tmpl)s and %(n_tmpl)s exist, leaving untouched"
+msgstr ""
+
+#: bin/update:384
+msgid "removing directory %(src)s and everything underneath"
+msgstr "kustutan kataloogi %(src)s koos sisuga."
+
+#: bin/update:387
+msgid "removing %(src)s"
+msgstr "kustutan %(src)s"
+
+#: bin/update:391
+msgid "Warning: couldn't remove %(src)s -- %(rest)s"
+msgstr "Hoiatus: %(src)s--%(rest)s kustutamine ebaõnnestus. "
+
+#: bin/update:396
+msgid "couldn't remove old file %(pyc)s -- %(rest)s"
+msgstr "%(pyc)s--%(rest)s kustutamine ebaõnnestus. "
+
+#: bin/update:400
+msgid "updating old qfiles"
+msgstr "uuendan vanu qfaile"
+
+#: bin/update:422
+msgid "getting rid of old source files"
+msgstr "kustutan vanad source failid"
+
+#: bin/update:432
+msgid "no lists == nothing to do, exiting"
+msgstr "liste pole == midagi pole vaja teha, lõpetan."
+
+#: bin/update:439
+msgid ""
+"fixing all the perms on your old html archives to work with b6\n"
+"If your archives are big, this could take a minute or two..."
+msgstr ""
+
+#: bin/update:444
+msgid "done"
+msgstr "tehtud"
+
+#: bin/update:446
+msgid "Updating mailing list: %(listname)s"
+msgstr "Listi %(listname)s uuendamine."
+
+#: bin/update:449
+msgid "Updating Usenet watermarks"
+msgstr ""
+
+#: bin/update:454
+msgid "- nothing to update here"
+msgstr "- siin pole midagi vaja uuendada."
+
+#: bin/update:477
+msgid "- usenet watermarks updated and gate_watermarks removed"
+msgstr ""
+
+#: bin/update:487
+msgid "Updating old pending_subscriptions.db database"
+msgstr ""
+
+#: bin/update:504
+msgid ""
+"\n"
+"\n"
+"NOTE NOTE NOTE NOTE NOTE\n"
+"\n"
+" You are upgrading an existing Mailman installation, but I can't tell "
+"what\n"
+" version you were previously running.\n"
+"\n"
+" If you are upgrading from Mailman 1.0b9 or earlier you will need to\n"
+" manually update your mailing lists. For each mailing list you need to\n"
+" copy the file templates/options.html lists/<listname>/options.html.\n"
+"\n"
+" However, if you have edited this file via the Web interface, you will "
+"have\n"
+" to merge your changes into this file, otherwise you will lose your\n"
+" changes.\n"
+"\n"
+"NOTE NOTE NOTE NOTE NOTE\n"
+"\n"
+msgstr ""
+
+#: bin/update:561
+msgid "No updates are necessary."
+msgstr ""
+
+#: bin/update:564
+msgid ""
+"Downgrade detected, from version %(hexlversion)s to version %(hextversion)s\n"
+"This is probably not safe.\n"
+"Exiting."
+msgstr ""
+
+#: bin/update:569
+msgid "Upgrading from version %(hexlversion)s to %(hextversion)s"
+msgstr "Versiooniuuendus: vana versioon %(hexlversion)s, uus versioon %(hextversion)s"
+
+#: bin/update:578
+msgid ""
+"\n"
+"ERROR:\n"
+"\n"
+"The locks for some lists could not be acquired. This means that either\n"
+"Mailman was still active when you upgraded, or there were stale locks in "
+"the\n"
+"%(lockdir)s directory.\n"
+"\n"
+"You must put Mailman into a quiescent state and remove all stale locks, "
+"then\n"
+"re-run \"make update\" manually. See the INSTALL and UPGRADE files for "
+"details.\n"
+msgstr ""
+
+#: bin/version:19
+msgid "Print the Mailman version.\n"
+msgstr "Näita Mailmani versiooni.\n"
+
+#: bin/version:26
+msgid "Using Mailman version:"
+msgstr "Mailman versioon:"
+
+#: bin/withlist:19
+msgid ""
+"General framework for interacting with a mailing list object.\n"
+"\n"
+"There are two ways to use this script: interactively or programmatically.\n"
+"Using it interactively allows you to play with, examine and modify a "
+"MailList\n"
+"object from Python's interactive interpreter. When running interactively, "
+"a\n"
+"MailList object called `m' will be available in the global namespace. It "
+"also\n"
+"loads the class MailList into the global namespace.\n"
+"\n"
+"Programmatically, you can write a function to operate on a MailList object,\n"
+"and this script will take care of the housekeeping (see below for "
+"examples).\n"
+"In that case, the general usage syntax is:\n"
+"\n"
+"%% bin/withlist [options] listname [args ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" -l / --lock\n"
+" Lock the list when opening. Normally the list is opened unlocked\n"
+" (e.g. for read-only operations). You can always lock the file "
+"after\n"
+" the fact by typing `m.Lock()'\n"
+"\n"
+" Note that if you use this option, you should explicitly call m.Save"
+"()\n"
+" before exiting, since the interpreter's clean up procedure will not\n"
+" automatically save changes to the MailList object (but it will "
+"unlock\n"
+" the list).\n"
+"\n"
+" -i / --interactive\n"
+" Leaves you at an interactive prompt after all other processing is\n"
+" complete. This is the default unless the -r option is given.\n"
+"\n"
+" --run [module.]callable\n"
+" -r [module.]callable\n"
+" This can be used to run a script with the opened MailList object.\n"
+" This works by attempting to import `module' (which must already be\n"
+" accessible on your sys.path), and then calling `callable' from the\n"
+" module. callable can be a class or function; it is called with the\n"
+" MailList object as the first argument. If additional args are "
+"given\n"
+" on the command line, they are passed as subsequent positional args "
+"to\n"
+" the callable.\n"
+"\n"
+" Note that `module.' is optional; if it is omitted then a module "
+"with\n"
+" the name `callable' will be imported.\n"
+"\n"
+" The global variable `r' will be set to the results of this call.\n"
+"\n"
+" --all / -a\n"
+" This option only works with the -r option. Use this if you want to\n"
+" execute the script on all mailing lists. When you use -a you "
+"should\n"
+" not include a listname argument on the command line. The variable "
+"`r'\n"
+" will be a list of all the results.\n"
+"\n"
+" --quiet / -q\n"
+" Suppress all status messages.\n"
+"\n"
+" --help / -h\n"
+" Print this message and exit\n"
+"\n"
+"\n"
+"Here's an example of how to use the -r option. Say you have a file in the\n"
+"Mailman installation directory called `listaddr.py', with the following\n"
+"two functions:\n"
+"\n"
+"def listaddr(mlist):\n"
+" print mlist.GetListEmail()\n"
+"\n"
+"def requestaddr(mlist):\n"
+" print mlist.GetRequestEmail()\n"
+"\n"
+"Now, from the command line you can print the list's posting address by "
+"running\n"
+"the following from the command line:\n"
+"\n"
+"%% bin/withlist -r listaddr mylist\n"
+"Loading list: mylist (unlocked)\n"
+"Importing listaddr ...\n"
+"Running listaddr.listaddr() ...\n"
+"mylist@myhost.com\n"
+"\n"
+"And you can print the list's request address by running:\n"
+"\n"
+"%% bin/withlist -r listaddr.requestaddr mylist\n"
+"Loading list: mylist (unlocked)\n"
+"Importing listaddr ...\n"
+"Running listaddr.requestaddr() ...\n"
+"mylist-request@myhost.com\n"
+"\n"
+"As another example, say you wanted to change the password for a particular\n"
+"user on a particular list. You could put the following function in a file\n"
+"called `changepw.py':\n"
+"\n"
+"from Mailman.Errors import NotAMember\n"
+"\n"
+"def changepw(mlist, addr, newpasswd):\n"
+" try:\n"
+" mlist.setMemberPassword(addr, newpasswd)\n"
+" mlist.Save()\n"
+" except NotAMember:\n"
+" print 'No address matched:', addr\n"
+"\n"
+"and run this from the command line:\n"
+"%% bin/withlist -l -r changepw mylist somebody@somewhere.org foobar\n"
+msgstr ""
+
+#: bin/withlist:151
+msgid ""
+"Unlock a locked list, but do not implicitly Save() it.\n"
+"\n"
+" This does not get run if the interpreter exits because of a signal, or "
+"if\n"
+" os._exit() is called. It will get called if an exception occurs "
+"though.\n"
+" "
+msgstr ""
+
+#: bin/withlist:162
+msgid "Unlocking (but not saving) list: %(listname)s"
+msgstr ""
+
+#: bin/withlist:166
+msgid "Finalizing"
+msgstr "Lõpetan"
+
+#: bin/withlist:175
+msgid "Loading list %(listname)s"
+msgstr "Laen listi %(listname)s"
+
+#: bin/withlist:177
+msgid "(locked)"
+msgstr "(lukus)"
+
+#: bin/withlist:179
+msgid "(unlocked)"
+msgstr "(lukustamata)"
+
+#: bin/withlist:184
+msgid "Unknown list: %(listname)s"
+msgstr "Tundmatu list: %(listname)s"
+
+#: bin/withlist:223
+msgid "No list name supplied."
+msgstr "Listi nimi on puudu"
+
+#: bin/withlist:226
+msgid "--all requires --run"
+msgstr "--all eeldab --run olemasolu"
+
+#: bin/withlist:246
+msgid "Importing %(module)s..."
+msgstr "Impordin %(module)s..."
+
+#: bin/withlist:249
+msgid "Running %(module)s.%(callable)s()..."
+msgstr "Töötlen %(module)s.%(callable)s()..."
+
+#: bin/withlist:270
+msgid "The variable `m' is the %(listname)s MailList instance"
+msgstr ""
+
+#: cron/bumpdigests:19
+msgid ""
+"Increment the digest volume number and reset the digest number to one.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" --help/-h\n"
+" Print this message and exit.\n"
+"\n"
+"The lists named on the command line are bumped. If no list names are "
+"given,\n"
+"all lists are bumped.\n"
+msgstr ""
+
+#: cron/checkdbs:19
+msgid ""
+"Invoked by cron, this checks for pending moderation requests and mails the\n"
+"list moderators if necessary.\n"
+msgstr ""
+
+#: cron/checkdbs:81
+msgid "%(count)d %(realname)s moderator request(s) waiting"
+msgstr "%(count)d %(realname)s modereerimisnõuet ootel."
+
+#: cron/checkdbs:100
+msgid "Pending subscriptions:"
+msgstr "Ootel liitumissoovid:"
+
+#: cron/checkdbs:109
+msgid ""
+"\n"
+"Pending posts:"
+msgstr ""
+"\n"
+"Ootel postitused:"
+
+#: cron/checkdbs:114
+msgid ""
+"From: %(sender)s on %(date)s\n"
+"Subject: %(subject)s\n"
+"Cause: %(reason)s"
+msgstr ""
+" Kellelt: %(sender)s %(date)s\n"
+" Teema: %(subject)s\n"
+" Põhjus: %(reason)s"
+
+#: cron/disabled:19
+msgid ""
+"Process disabled members, recommended once per day.\n"
+"\n"
+"This script cruises through every mailing list looking for members whose\n"
+"delivery is disabled. If they have been disabled due to bounces, they will\n"
+"receive another notification, or they may be removed if they've received "
+"the\n"
+"maximum number of notifications.\n"
+"\n"
+"Use the --byadmin, --byuser, and --unknown flags to also send notifications "
+"to\n"
+"members whose accounts have been disabled for those reasons. Use --all to\n"
+"send the notification to all disabled members.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -h / --help\n"
+" Print this message and exit.\n"
+"\n"
+" -o / --byadmin\n"
+" Also send notifications to any member disabled by the list\n"
+" owner/administrator.\n"
+"\n"
+" -m / --byuser\n"
+" Also send notifications to any member disabled by themselves.\n"
+"\n"
+" -u / --unknown\n"
+" Also send notifications to any member disabled for unknown reasons\n"
+" (usually a legacy disabled address).\n"
+"\n"
+" -b / --notbybounce\n"
+" Don't send notifications to members disabled because of bounces "
+"(the\n"
+" default is to notify bounce disabled members).\n"
+"\n"
+" -a / --all\n"
+" Send notifications to all disabled members.\n"
+"\n"
+" -f / --force\n"
+" Send notifications to disabled members even if they're not due a "
+"new\n"
+" notification yet.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" Process only the given list, otherwise do all lists.\n"
+msgstr ""
+
+#: cron/disabled:143
+msgid "[disabled by periodic sweep and cull, no message available]"
+msgstr ""
+
+#: cron/gate_news:19
+msgid ""
+"Poll the NNTP servers for messages to be gatewayed to mailing lists.\n"
+"\n"
+"Usage: gate_news [options]\n"
+"\n"
+"Where options are\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this text and exit.\n"
+"\n"
+msgstr ""
+
+#: cron/mailpasswds:19
+msgid ""
+"Send password reminders for all lists to all users.\n"
+"\n"
+"This program scans all mailing lists and collects users and their "
+"passwords,\n"
+"grouped by the list's host_name if mm_cfg.VIRTUAL_HOST_OVERVIEW is true. "
+"Then\n"
+"one email message is sent to each unique user (per-virtual host) containing\n"
+"the list passwords and options url for the user. The password reminder "
+"comes\n"
+"from the mm_cfg.MAILMAN_SITE_LIST, which must exist.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -l listname\n"
+" --listname=listname\n"
+" Send password reminders for the named list only. If omitted,\n"
+" reminders are sent for all lists. Multiple -l/--listname options "
+"are\n"
+" allowed.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+msgstr ""
+
+#: cron/mailpasswds:111
+msgid "Site list is missing: %(sitelistname)s"
+msgstr "Saidi list on puudu: %(sitelistname)s"
+
+#: cron/mailpasswds:179
+msgid "Password // URL"
+msgstr "Parool // URL"
+
+#: cron/mailpasswds:199
+msgid "%(host)s mailing list memberships reminder"
+msgstr "%(host)s listide tellimuste meeldetuletus"
+
+#: cron/nightly_gzip:19
+msgid ""
+"Re-generate the Pipermail gzip'd archive flat files.\n"
+"\n"
+"This script should be run nightly from cron. When run from the command "
+"line,\n"
+"the following usage is understood:\n"
+"\n"
+"Usage: %(program)s [-v] [-h] [listnames]\n"
+"\n"
+"Where:\n"
+" --verbose\n"
+" -v\n"
+" print each file as it's being gzip'd\n"
+"\n"
+" --help\n"
+" -h\n"
+" print this message and exit\n"
+"\n"
+" listnames\n"
+" Optionally, only compress the .txt files for the named lists. "
+"Without \n"
+" this, all archivable lists are processed.\n"
+"\n"
+msgstr ""
+
+#: cron/senddigests:19
+msgid ""
+"Dispatch digests for lists w/pending messages and digest_send_periodic set.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -h / --help\n"
+" Print this message and exit.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" Send the digest for the given list only, otherwise the digests for "
+"all\n"
+" lists are sent out.\n"
+msgstr ""
+
+#~ msgid "A confirmation email has been sent separately."
+#~ msgstr "Kinnitus saadeti eraldi meiliga."
+
+#~ msgid "Removed: <%(addr)30s> %(name)s"
+#~ msgstr "Eemaldasin: <%(addr)30s> %(name)s"
+
+#~ msgid "non-digest header"
+#~ msgstr "üksikkirja päis"
+
+#~ msgid "non-digest footer"
+#~ msgstr "üksikkirja jalus"
+
+#~ msgid " %(filename)s:%(lineno)d"
+#~ msgstr " %(filename)s:%(lineno)d"
+
+#~ msgid "# File: %(filename)s, line: %(lineno)d"
+#~ msgstr "# Fail: %(filename)s, rida: %(lineno)d"
+
+#~ msgid "--width argument must be an integer: %s"
+#~ msgstr "--width argument peab olema täisarv: %s"
+
+#~ msgid "Can't read --exclude-file: %s"
+#~ msgstr "Ei saa lugeda --exclude-file: %s"
+
+#~ msgid "Post by a moderated member"
+#~ msgstr "Modereeritava liikme postitus."
+
+#~ msgid "Reading standard input"
+#~ msgstr "Loen standardsisendit"
+
+#~ msgid ""
+#~ "To finish creating your mailing list, you must edit your\n"
+#~ "/etc/aliases (or equivalent) file by adding the following lines:\n"
+#~ "\n"
+#~ "## %(listname)s mailing list\n"
+#~ "## created: %(date)s %(user)s\n"
+#~ "%(list)s \"|%(wrapper)s post %(listname)s\"\n"
+#~ "%(admin)s \"|%(wrapper)s mailowner %(listname)s\"\n"
+#~ "%(request)s \"|%(wrapper)s mailcmd %(listname)s\"\n"
+#~ "%(owner)s %(listname)s-admin\n"
+#~ msgstr ""
+#~ "Selleks, et uus list tööle hakkaks, pead /etc/aliases\n"
+#~ "(või analoogse otstarbega) faili lisama järgmised read:\n"
+#~ "\n"
+#~ "## %(listname)s Meililist\n"
+#~ "## loodud: %(date)s %(user)s\n"
+#~ "%(list)s \"|%(wrapper)s post %(listname)s\"\n"
+#~ "%(admin)s \"|%(wrapper)s mailowner %(listname)s\"\n"
+#~ "%(request)s \"|%(wrapper)s mailcmd %(listname)s\"\n"
+#~ "%(owner)s %(listname)s-admin\n"
+
+#~ msgid "Working on %s"
+#~ msgstr "Töötlen %s"
+
+#~ msgid "a unicode string"
+#~ msgstr "Unicode string"
+
+#~ msgid "pygettext.py (xgettext for Python) %s"
+#~ msgstr "pygettext.py (xgettext for Python) %s "
+
diff --git a/messages/fi/LC_MESSAGES/mailman.mo b/messages/fi/LC_MESSAGES/mailman.mo
new file mode 100644
index 00000000..2638f5fc
--- /dev/null
+++ b/messages/fi/LC_MESSAGES/mailman.mo
Binary files differ
diff --git a/messages/fi/LC_MESSAGES/mailman.po b/messages/fi/LC_MESSAGES/mailman.po
new file mode 100644
index 00000000..e690cab2
--- /dev/null
+++ b/messages/fi/LC_MESSAGES/mailman.po
@@ -0,0 +1,9765 @@
+# Mailman suomennos
+# Copyright (C) 2002 MTT
+# FIRST AUTHOR <pekka.haavisto@mtt.fi>, 2002
+# Editoitu 4.12.2002 ER msgfmt 12.12.2002 ph
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 2.15\n"
+"POT-Creation-Date: Tue Dec 24 13:41:28 2002\n"
+"PO-Revision-Date: 2002-03-18 HO:MI+ZONE\n"
+"Last-Translator: Pekka Haavisto <pekka.haavisto@mtt.fi>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: ENCODING\n"
+"Generated-By: pygettext.py 1.4\n"
+
+#: Mailman/Archiver/HyperArch.py:112
+#, fuzzy
+msgid "size not available"
+msgstr "ei saatavilla"
+
+#: Mailman/Archiver/HyperArch.py:118
+msgid " %(size)i bytes "
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:249 Mailman/Archiver/HyperArch.py:405
+#: Mailman/Archiver/HyperArch.py:963 Mailman/Archiver/HyperArch.py:1127
+msgid " at "
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:434
+msgid "Previous message:"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:456
+#, fuzzy
+msgid "Next message:"
+msgstr "Arkistoi viestit?"
+
+#: Mailman/Archiver/HyperArch.py:609 Mailman/Archiver/HyperArch.py:645
+#, fuzzy
+msgid "thread"
+msgstr " Säie"
+
+#: Mailman/Archiver/HyperArch.py:610 Mailman/Archiver/HyperArch.py:646
+#, fuzzy
+msgid "subject"
+msgstr "ei aihetta"
+
+#: Mailman/Archiver/HyperArch.py:611 Mailman/Archiver/HyperArch.py:647
+msgid "author"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:612 Mailman/Archiver/HyperArch.py:648
+#, fuzzy
+msgid "date"
+msgstr "ei päivämäärää"
+
+#: Mailman/Archiver/HyperArch.py:684
+msgid "<P>Currently, there are no archives. </P>"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:721
+msgid "Gzip'd Text%(sz)s"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:726
+msgid "Text%(sz)s"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:816
+#, fuzzy
+msgid "figuring article archives\n"
+msgstr "yksityiset arkistot"
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "April"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "February"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "January"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "March"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:827
+msgid "August"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:827
+msgid "July"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:827
+msgid "June"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:827 Mailman/i18n.py:91
+#, fuzzy
+msgid "May"
+msgstr "päivä"
+
+#: Mailman/Archiver/HyperArch.py:828
+#, fuzzy
+msgid "December"
+msgstr "jäsenet"
+
+#: Mailman/Archiver/HyperArch.py:828
+#, fuzzy
+msgid "November"
+msgstr "jäsenet"
+
+#: Mailman/Archiver/HyperArch.py:828
+msgid "October"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:828
+#, fuzzy
+msgid "September"
+msgstr "jäsenet"
+
+#: Mailman/Archiver/HyperArch.py:836
+#, fuzzy
+msgid "First"
+msgstr "Lista"
+
+#: Mailman/Archiver/HyperArch.py:836
+msgid "Fourth"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:836
+msgid "Second"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:836
+#, fuzzy
+msgid "Third"
+msgstr "piilota"
+
+#: Mailman/Archiver/HyperArch.py:838
+msgid "%(ord)s quarter %(year)i"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:845
+msgid "%(month)s %(year)i"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:850
+msgid "The Week Of Monday %(day)i %(month)s %(year)i"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:854
+msgid "%(day)i %(month)s %(year)i"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:951
+msgid "Computing threaded index\n"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:1206
+#, fuzzy
+msgid "Updating HTML for article %(seq)s"
+msgstr "Päivittää indeksi-tiedostot arkistolle [%(archive)s]"
+
+#: Mailman/Archiver/HyperArch.py:1213
+msgid "article file %(filename)s is missing!"
+msgstr ""
+
+#: Mailman/Archiver/pipermail.py:168 Mailman/Archiver/pipermail.py:169
+msgid "No subject"
+msgstr "Ei aihetta"
+
+#: Mailman/Archiver/pipermail.py:269
+msgid "Creating archive directory "
+msgstr "Luodaan arkistohakemistoa"
+
+#: Mailman/Archiver/pipermail.py:281
+msgid "Reloading pickled archive state"
+msgstr "Uudelleenlataa tallennettua/säilöttyä arkistotilaa"
+
+#: Mailman/Archiver/pipermail.py:308
+msgid "Pickling archive state into "
+msgstr "Tallentaa/säilöö arkistotilan "
+
+#: Mailman/Archiver/pipermail.py:419
+msgid "Updating index files for archive [%(archive)s]"
+msgstr "Päivittää indeksi-tiedostot arkistolle [%(archive)s]"
+
+#: Mailman/Archiver/pipermail.py:452
+msgid " Thread"
+msgstr " Säie"
+
+#: Mailman/Archiver/pipermail.py:557
+msgid "#%(counter)05d %(msgid)s"
+msgstr "#%(counter)05d %(msgid)s"
+
+#: Mailman/Bouncer.py:44
+#, fuzzy
+msgid "due to excessive bounces"
+msgstr "; otettu pois käytöstä liiallisten palautusten vuoksi"
+
+#: Mailman/Bouncer.py:45
+msgid "by yourself"
+msgstr "itse"
+
+#: Mailman/Bouncer.py:46
+#, fuzzy
+msgid "by the list administrator"
+msgstr "listan ylläpitäjän toimesta"
+
+#: Mailman/Bouncer.py:47 Mailman/Bouncer.py:232
+#: Mailman/Commands/cmd_set.py:182
+msgid "for unknown reasons"
+msgstr "tuntemattomista syistä"
+
+#: Mailman/Bouncer.py:179
+msgid "disabled"
+msgstr "ei käytössä"
+
+#: Mailman/Bouncer.py:184
+msgid "Bounce action notification"
+msgstr "Häirintätoimenpideilmoitus palautuksesta"
+
+#: Mailman/Bouncer.py:239
+msgid " The last bounce received from you was dated %(date)s"
+msgstr " Viimeisin palautus osoitteestasi oli päivätty %(date)s"
+
+#: Mailman/Bouncer.py:264 Mailman/Deliverer.py:126
+#: Mailman/Handlers/Acknowledge.py:44 Mailman/Handlers/CookHeaders.py:236
+#: Mailman/Handlers/Hold.py:214 Mailman/Handlers/Hold.py:249
+#: Mailman/Handlers/ToDigest.py:211 Mailman/ListAdmin.py:235
+msgid "(no subject)"
+msgstr "(ei aihetta)"
+
+#: Mailman/Bouncer.py:266
+msgid "[No bounce details are available]"
+msgstr "[Palautetietoja ei ole saatavilla]"
+
+#: Mailman/Cgi/Auth.py:46
+msgid "Moderator"
+msgstr "Listan pääkäyttäjä"
+
+#: Mailman/Cgi/Auth.py:48
+msgid "Administrator"
+msgstr "Listan ylläpitäjä"
+
+#: Mailman/Cgi/admin.py:70 Mailman/Cgi/admindb.py:89 Mailman/Cgi/confirm.py:55
+#: Mailman/Cgi/edithtml.py:67 Mailman/Cgi/listinfo.py:51
+#: Mailman/Cgi/options.py:71 Mailman/Cgi/private.py:98
+#: Mailman/Cgi/rmlist.py:64 Mailman/Cgi/roster.py:57
+#: Mailman/Cgi/subscribe.py:61
+msgid "No such list <em>%(safelistname)s</em>"
+msgstr "Listaa <em>%(safelistname)s</em> ei ole olemassa."
+
+#: Mailman/Cgi/admin.py:85 Mailman/Cgi/admindb.py:105
+#: Mailman/Cgi/edithtml.py:85 Mailman/Cgi/private.py:123
+msgid "Authorization failed."
+msgstr "Sisäänkirjautuminen epäonnistui."
+
+#: Mailman/Cgi/admin.py:175
+msgid ""
+"You have turned off delivery of both digest and\n"
+" non-digest messages. This is an incompatible state of\n"
+" affairs. You must turn on either digest delivery or\n"
+" non-digest delivery or your mailing list will basically be\n"
+" unusable."
+msgstr ""
+"Olet poistanut käytöstä sekä koostettujen että\n"
+" tavallisten viestien lähetyksen\n"
+"\t\t Tämä on ristiriitainen tilanne. Käyttöön pitää ottaa joko\n"
+"\t\t koostettu lähetys tai tavallinen lähetys tai postituslistasi\n"
+"\t\t on käyttökelvoton."
+
+#: Mailman/Cgi/admin.py:179 Mailman/Cgi/admin.py:185 Mailman/Cgi/admin.py:190
+#: Mailman/Cgi/admin.py:1361 Mailman/Gui/GUIBase.py:184
+msgid "Warning: "
+msgstr "Varoitus: "
+
+#: Mailman/Cgi/admin.py:183
+msgid ""
+"You have digest members, but digests are turned\n"
+" off. Those people will not receive mail."
+msgstr ""
+" Sinulla on koostejäseniä, mutta koosteet\n"
+" ovat pois käytöstä. He eivät voi vastaanottaa viestejä."
+
+#: Mailman/Cgi/admin.py:188
+msgid ""
+"You have regular list members but non-digestified mail is\n"
+" turned off. They will receive mail until you fix this\n"
+" problem."
+msgstr ""
+"Sinulla on tavanomaisia jäseniä mutta tavalliset ei-koostetut\n"
+" viestit ovat pois käytöstä. He eivät voi vastaanottaa\n"
+" viestejä enenkuin korjaat tämän."
+
+#: Mailman/Cgi/admin.py:212
+msgid "%(hostname)s mailing lists - Admin Links"
+msgstr "%(hostname)s postituslistat - Ylläpitäjän linkit"
+
+#: Mailman/Cgi/admin.py:241 Mailman/Cgi/listinfo.py:97
+msgid "Welcome!"
+msgstr "Tervetuloa!"
+
+#: Mailman/Cgi/admin.py:244 Mailman/Cgi/listinfo.py:100
+msgid "Mailman"
+msgstr "Mailman"
+
+#: Mailman/Cgi/admin.py:248
+msgid ""
+"<p>There currently are no publicly-advertised %(mailmanlink)s\n"
+" mailing lists on %(hostname)s."
+msgstr ""
+"<p>Tällä hetkellä ei ole julkisesti näytettäviä\n"
+" %(mailmanlink)s postituslistoja palvelimella %(hostname)s."
+
+#: Mailman/Cgi/admin.py:254
+msgid ""
+"<p>Below is the collection of publicly-advertised\n"
+" %(mailmanlink)s mailing lists on %(hostname)s. Click on a list\n"
+" name to visit the configuration pages for that list."
+msgstr ""
+"<p> Alla on lista julkisesti näytettävistä\n"
+" %(mailmanlink)s postituslistoista palvelimella %(hostname)s.\n"
+" Klikkaa listan nimeä päästäksesi listan määrittelysivulle."
+
+#: Mailman/Cgi/admin.py:261
+msgid "right "
+msgstr "oikea "
+
+#: Mailman/Cgi/admin.py:263
+msgid ""
+"To visit the administrators configuration page for an\n"
+" unadvertised list, open a URL similar to this one, but with a '/' "
+"and\n"
+" the %(extra)slist name appended. If you have the proper authority,\n"
+" you can also <a href=\"%(creatorurl)s\">create a new mailing list</"
+"a>.\n"
+"\n"
+" <p>General list information can be found at "
+msgstr ""
+" Päästäksesi ei julkisesti näytettävän listan\n"
+"ylläpitäjien ylläpitosivulle, avaa samanlainen URL kuin tämä\n"
+" mutta lisää '/' ja %(extra)s listan nimi.\n"
+"Jos sinulla on tarvittavat oikeudet,\n"
+"voit myös <a href=\"%(creatorurl)s\"> luoda uuden postituslistan.\n"
+" \n"
+" <p> Yleisen listainformaation löydät "
+
+#: Mailman/Cgi/admin.py:270
+msgid "the mailing list overview page"
+msgstr "postituslistan esittelysivu"
+
+#: Mailman/Cgi/admin.py:272
+msgid "<p>(Send questions and comments to "
+msgstr "<p>(Lähetä kysymykset ja kommentit "
+
+#: Mailman/Cgi/admin.py:282 Mailman/Cgi/listinfo.py:132 cron/mailpasswds:179
+msgid "List"
+msgstr "Lista"
+
+#: Mailman/Cgi/admin.py:283 Mailman/Cgi/admin.py:549
+#: Mailman/Cgi/listinfo.py:133
+msgid "Description"
+msgstr "Kuvaus"
+
+#: Mailman/Cgi/admin.py:289 Mailman/Cgi/listinfo.py:139 bin/list_lists:116
+msgid "[no description available]"
+msgstr "[ei kuvausta saatavilla]"
+
+#: Mailman/Cgi/admin.py:322
+msgid "No valid variable name found."
+msgstr "Kelvollista muuttujanimeä ei löydy."
+
+#: Mailman/Cgi/admin.py:332
+msgid ""
+"%(realname)s Mailing list Configuration Help\n"
+" <br><em>%(varname)s</em> Option"
+msgstr ""
+"%(realname)s Postituslistan konfiguroinnin ohje\n"
+" <br><em>%(varname)s</em> Optio"
+
+#: Mailman/Cgi/admin.py:339
+msgid "Mailman %(varname)s List Option Help"
+msgstr "Mailman %(varname)s Listan Muokkaus Ohje"
+
+#: Mailman/Cgi/admin.py:357
+msgid ""
+"<em><strong>Warning:</strong> changing this option here\n"
+" could cause other screens to be out-of-sync. Be sure to reload any "
+"other\n"
+" pages that are displaying this option for this mailing list. You can "
+"also\n"
+" "
+msgstr ""
+"<em><strong>Varoitus:</strong> tämän valinnan muuttaminen\n"
+"voi aiheuttaa muiden näyttöjen yhteensopivuusongelman.\n"
+"Varmista, että päivität näytöt jotka näyttävät tämän postituslistan\n"
+" tämän valinnan. Voit myös\n"
+" "
+
+#: Mailman/Cgi/admin.py:368
+#, fuzzy
+msgid "return to the %(categoryname)s options page."
+msgstr "palaa %(category)s valintojen sivulle."
+
+#: Mailman/Cgi/admin.py:383
+msgid "%(realname)s Administration (%(label)s)"
+msgstr "%(realname)s Ylläpito (%(label)s)"
+
+#: Mailman/Cgi/admin.py:384
+msgid "%(realname)s mailing list administration<br>%(label)s Section"
+msgstr "%(realname)s postitusistan ylläpidon <br>%(label)s Kappale"
+
+#: Mailman/Cgi/admin.py:400
+msgid "Configuration Categories"
+msgstr "Konfigurointiluokat"
+
+#: Mailman/Cgi/admin.py:401
+msgid "Other Administrative Activities"
+msgstr "Muut Ylläpidon Toiminnot"
+
+#: Mailman/Cgi/admin.py:405
+msgid "Tend to pending moderator requests"
+msgstr "Hoida odottavat pyynnöt pääkäyttäjälle"
+
+#: Mailman/Cgi/admin.py:407
+msgid "Go to the general list information page"
+msgstr "Mene listan yleisesittelysivulle"
+
+#: Mailman/Cgi/admin.py:409
+msgid "Edit the public HTML pages"
+msgstr "Muokkaa julkisia HTML sivuja"
+
+#: Mailman/Cgi/admin.py:411
+msgid "Go to list archives"
+msgstr "Mene listan arkistoon"
+
+#: Mailman/Cgi/admin.py:417
+msgid "Delete this mailing list"
+msgstr "Poista tämä postituslista"
+
+#: Mailman/Cgi/admin.py:418
+msgid " (requires confirmation)<br>&nbsp;<br>"
+msgstr " (vaatii vahvistuksen)<br>&nbsp;<br>"
+
+#: Mailman/Cgi/admin.py:424
+msgid "Logout"
+msgstr "Poistu"
+
+#: Mailman/Cgi/admin.py:468
+#, fuzzy
+msgid "Emergency moderation of all list traffic is enabled"
+msgstr "Hätäylläpito kaikelle listaliikenteelle:"
+
+#: Mailman/Cgi/admin.py:479
+msgid ""
+"Make your changes in the following section, then submit them\n"
+" using the <em>Submit Your Changes</em> button below."
+msgstr ""
+"Tee muutoksesi seuraavassa kappaleessa ja lähetä\n"
+" ne painamalla allaolevaa <em>Lähetä muutokset</em> nappia."
+
+#: Mailman/Cgi/admin.py:497
+msgid "Additional Member Tasks"
+msgstr "Jäsenen lisätehtävät"
+
+#: Mailman/Cgi/admin.py:503
+msgid ""
+"<li>Set everyone's moderation bit, including\n"
+" those members not currently visible"
+msgstr ""
+"<li>Aseta kaikkien muutosoikeudet, myös\n"
+" niiden jäsenten, jotka eivät nyt ole näkyvissä"
+
+#: Mailman/Cgi/admin.py:507
+msgid "Off"
+msgstr "Pois"
+
+#: Mailman/Cgi/admin.py:507
+msgid "On"
+msgstr "Käytössä"
+
+#: Mailman/Cgi/admin.py:509
+msgid "Set"
+msgstr "Aseta"
+
+#: Mailman/Cgi/admin.py:550
+msgid "Value"
+msgstr "Arvo"
+
+#: Mailman/Cgi/admin.py:604
+msgid ""
+"Badly formed options entry:\n"
+" %(record)s"
+msgstr ""
+"Väärin muotoiltu arvo:\n"
+" %(record)s"
+
+#: Mailman/Cgi/admin.py:662
+msgid "<em>Enter the text below, or...</em><br>"
+msgstr "<em>Syötä teksti alapuolelle, tai...</em><br>"
+
+#: Mailman/Cgi/admin.py:664
+msgid "<br><em>...specify a file to upload</em><br>"
+msgstr "<br><em>...määrittele lähetettävä tiedosto</em><br>"
+
+#: Mailman/Cgi/admin.py:690 Mailman/Cgi/admin.py:693
+msgid "Topic %(i)d"
+msgstr "Aihe %(i)d"
+
+#: Mailman/Cgi/admin.py:694
+msgid "Delete"
+msgstr "Poista"
+
+#: Mailman/Cgi/admin.py:695
+msgid "Topic name:"
+msgstr "Aiheen nimi:"
+
+#: Mailman/Cgi/admin.py:697
+msgid "Regexp:"
+msgstr "Päättyy:"
+
+#: Mailman/Cgi/admin.py:700 Mailman/Cgi/options.py:943
+msgid "Description:"
+msgstr "Kuvaus:"
+
+#: Mailman/Cgi/admin.py:704
+msgid "Add new item..."
+msgstr "Lisää uusi aihe..."
+
+#: Mailman/Cgi/admin.py:706
+msgid "...before this one."
+msgstr "...ennen tätä."
+
+#: Mailman/Cgi/admin.py:707
+msgid "...after this one."
+msgstr "...tämän jälkeen."
+
+#: Mailman/Cgi/admin.py:742
+#, fuzzy
+msgid "<br>(Edit <b>%(varname)s</b>)"
+msgstr "<br>(Yksityiskohdat <b>%(varname)s</b>)"
+
+#: Mailman/Cgi/admin.py:744
+msgid "<br>(Details for <b>%(varname)s</b>)"
+msgstr "<br>(Yksityiskohdat <b>%(varname)s</b>)"
+
+#: Mailman/Cgi/admin.py:751
+msgid ""
+"<br><em><strong>Note:</strong>\n"
+" setting this value performs an immediate action but does not modify\n"
+" permanent state.</em>"
+msgstr ""
+"<br><em><strong>Huomaa:</strong>\n"
+" tämän arvon asettaminen suoritetaan heti, mutta se ei muokkaa\n"
+" sitä pysyvästi.</em>"
+
+#: Mailman/Cgi/admin.py:765
+msgid "Mass Subscriptions"
+msgstr "Joukkoliittymiset"
+
+#: Mailman/Cgi/admin.py:772
+msgid "Mass Removals"
+msgstr "Joukkopoistot"
+
+#: Mailman/Cgi/admin.py:779
+msgid "Membership List"
+msgstr "Jäsenien listaus"
+
+#: Mailman/Cgi/admin.py:786
+msgid "(help)"
+msgstr "(apua)"
+
+#: Mailman/Cgi/admin.py:787
+msgid "Find member %(link)s:"
+msgstr "Etsi jäsen %(link)s:"
+
+#: Mailman/Cgi/admin.py:790
+msgid "Search..."
+msgstr "Etsitään..."
+
+#: Mailman/Cgi/admin.py:805
+msgid "Bad regular expression: "
+msgstr "Väärä vakioilmaus: "
+
+#: Mailman/Cgi/admin.py:861
+msgid "%(allcnt)s members total, %(membercnt)s shown"
+msgstr "%(allcnt)s jäsentä yhteensä, %(membercnt)s näytetään"
+
+#: Mailman/Cgi/admin.py:864
+msgid "%(allcnt)s members total"
+msgstr "%(allcnt)s jäsentä yhteensä"
+
+#: Mailman/Cgi/admin.py:887
+msgid "unsub"
+msgstr "irtisano"
+
+#: Mailman/Cgi/admin.py:888
+msgid "member address<br>member name"
+msgstr "jäsenen osoite<br>jäsenen nimi"
+
+#: Mailman/Cgi/admin.py:889
+msgid "hide"
+msgstr "piilota"
+
+#: Mailman/Cgi/admin.py:889
+msgid "mod"
+msgstr "muokkaa"
+
+#: Mailman/Cgi/admin.py:890
+msgid "nomail<br>[reason]"
+msgstr "ei postia<br>[syy]"
+
+#: Mailman/Cgi/admin.py:891
+msgid "ack"
+msgstr "hyväksyntä"
+
+#: Mailman/Cgi/admin.py:891
+msgid "not metoo"
+msgstr "ei (metoo)"
+
+#: Mailman/Cgi/admin.py:892
+msgid "nodupes"
+msgstr "nodupes"
+
+#: Mailman/Cgi/admin.py:893
+msgid "digest"
+msgstr "kokoelma"
+
+#: Mailman/Cgi/admin.py:893
+msgid "plain"
+msgstr "tavallinen"
+
+#: Mailman/Cgi/admin.py:894
+msgid "language"
+msgstr "kieli"
+
+#: Mailman/Cgi/admin.py:905
+msgid "?"
+msgstr "?"
+
+#: Mailman/Cgi/admin.py:906
+msgid "U"
+msgstr "U"
+
+#: Mailman/Cgi/admin.py:907
+msgid "A"
+msgstr "A"
+
+#: Mailman/Cgi/admin.py:908
+msgid "B"
+msgstr "B"
+
+#: Mailman/Cgi/admin.py:979
+msgid "<b>unsub</b> -- Click on this to unsubscribe the member."
+msgstr "<b>irtisano</b> -- Klikkaa tästä irtisanoaksesi jäsenen."
+
+#: Mailman/Cgi/admin.py:981
+msgid ""
+"<b>mod</b> -- The user's personal moderation flag. If this is\n"
+" set, postings from them will be moderated, otherwise they will be\n"
+" approved."
+msgstr ""
+"<b>mod</b> -- Käyttäjän henkilökohtainen muutosoikeus. Jos tämä\n"
+" asetetaan, heidän lähetyksensä muokataan, muuten heidät on\n"
+" hyväksytty."
+
+#: Mailman/Cgi/admin.py:985
+msgid ""
+"<b>hide</b> -- Is the member's address concealed on\n"
+" the list of subscribers?"
+msgstr ""
+"<b>piilota</b> -- Onko jäsenen osoite piilotettuna\n"
+" tilaajien listaan?"
+
+#: Mailman/Cgi/admin.py:987
+msgid ""
+"<b>nomail</b> -- Is delivery to the member disabled? If so, an\n"
+" abbreviation will be given describing the reason for the disabled\n"
+" delivery:\n"
+" <ul><li><b>U</b> -- Delivery was disabled by the user via their\n"
+" personal options page.\n"
+" <li><b>A</b> -- Delivery was disabled by the list\n"
+" administrators.\n"
+" <li><b>B</b> -- Delivery was disabled by the system due to\n"
+" excessive bouncing from the member's address.\n"
+" <li><b>?</b> -- The reason for disabled delivery isn't "
+"known.\n"
+" This is the case for all memberships which were "
+"disabled\n"
+" in older versions of Mailman.\n"
+" </ul>"
+msgstr ""
+"<b>ei postia</b> -- Onko lähetys jäsenelle pois käytöstä? Jos on, "
+"lyhennelmä\n"
+" epäonnistumisen syystä lähetetään ylläpidolle\n"
+" <ul><li><b>U</b> -- Lähetys on pois käytöstä käyttäjän toimesta\n"
+" omien asetusten mukaan.\n"
+" <li><b>A</b> -- Lähetys on pois käytöstä ylläpidon toimesta\n"
+" <li><b>B</b> -- Lähetys on pois käytöstä liiallisten\n"
+" palautusten johdosta käyttäjän osoitteesta.\n"
+" <li><b>?</b> -- Lähetys on pois käytöstä tuntemattomasta "
+"syystä Tämä on tapahtunut kaikille vanhempien Mailman "
+"versioiden\n"
+" käyttäjille\n"
+" </ul>"
+
+#: Mailman/Cgi/admin.py:1002
+msgid ""
+"<b>ack</b> -- Does the member get acknowledgements of their\n"
+" posts?"
+msgstr ""
+"<b>Ilmoitukset</b> -- Saavatko jäsenet ilmoitukset\n"
+" lähetetyistä viesteistä?"
+
+#: Mailman/Cgi/admin.py:1005
+#, fuzzy
+msgid ""
+"<b>not metoo</b> -- Does the member want to avoid copies of their\n"
+" own postings?"
+msgstr ""
+"<b>ei metoo</b> -- Estetäänkö jäsenelle omien viestien\n"
+" saaminen?"
+
+#: Mailman/Cgi/admin.py:1008
+#, fuzzy
+msgid ""
+"<b>nodupes</b> -- Does the member want to avoid duplicates of the\n"
+" same message?"
+msgstr ""
+"<b>ei dupes</b> -- Estetäänkö jäsenelle omien viestien\n"
+" saaminen, jos ne ovat samoja?"
+
+#: Mailman/Cgi/admin.py:1011
+msgid ""
+"<b>digest</b> -- Does the member get messages in digests?\n"
+" (otherwise, individual messages)"
+msgstr ""
+"<b>kooste</b> -- Saako jäsen viestit koosteena?\n"
+" (muuten yksittäiset viestit)"
+
+#: Mailman/Cgi/admin.py:1014
+msgid ""
+"<b>plain</b> -- If getting digests, does the member get plain\n"
+" text digests? (otherwise, MIME)"
+msgstr ""
+"<b>tavallinen</b> -- Jos koosteena, saako jäsen koosteen\n"
+" tavallisena tekstinä? (muuten, MIME)"
+
+#: Mailman/Cgi/admin.py:1016
+msgid "<b>language</b> -- Language preferred by the user"
+msgstr "<b>kieli</b> -- Käyttäjän kielivalinta"
+
+#: Mailman/Cgi/admin.py:1030
+msgid "Click here to hide the legend for this table."
+msgstr "Napsauta tähän piilottaaksesi tämän taulun selosteen."
+
+#: Mailman/Cgi/admin.py:1034
+msgid "Click here to include the legend for this table."
+msgstr "Napsauta tähän nähdäksesi tämän taulun selosteen."
+
+#: Mailman/Cgi/admin.py:1041
+msgid ""
+"<p><em>To view more members, click on the appropriate\n"
+" range listed below:</em>"
+msgstr ""
+"<p><em>Nähdäksesi lisää jäseniä, klikkaa allaolevasta listasta\n"
+" sopivaa aluetta:</em>"
+
+#: Mailman/Cgi/admin.py:1050
+msgid "from %(start)s to %(end)s"
+msgstr "%(start)s sta %(end)s aan"
+
+#: Mailman/Cgi/admin.py:1063
+msgid "Subscribe these users now or invite them?"
+msgstr "Liitä nämä käyttäjät nyt tai kutsu heidät?"
+
+#: Mailman/Cgi/admin.py:1065
+msgid "Invite"
+msgstr "Kutsu"
+
+#: Mailman/Cgi/admin.py:1065 Mailman/Cgi/listinfo.py:175
+msgid "Subscribe"
+msgstr "Liity"
+
+#: Mailman/Cgi/admin.py:1071
+#, fuzzy
+msgid "Send welcome messages to new subscribees?"
+msgstr "Lähetä tervetuloaviestit uusille jäsenille?"
+
+#: Mailman/Cgi/admin.py:1073 Mailman/Cgi/admin.py:1082
+#: Mailman/Cgi/admin.py:1115 Mailman/Cgi/admin.py:1123
+#: Mailman/Cgi/confirm.py:271 Mailman/Cgi/create.py:327
+#: Mailman/Cgi/create.py:355 Mailman/Cgi/create.py:395
+#: Mailman/Cgi/rmlist.py:228 Mailman/Gui/Archive.py:33
+#: Mailman/Gui/Autoresponse.py:54 Mailman/Gui/Autoresponse.py:62
+#: Mailman/Gui/Autoresponse.py:71 Mailman/Gui/Bounce.py:77
+#: Mailman/Gui/Bounce.py:108 Mailman/Gui/Bounce.py:134
+#: Mailman/Gui/Bounce.py:143 Mailman/Gui/ContentFilter.py:70
+#: Mailman/Gui/ContentFilter.py:103 Mailman/Gui/Digest.py:46
+#: Mailman/Gui/Digest.py:62 Mailman/Gui/Digest.py:84 Mailman/Gui/Digest.py:89
+#: Mailman/Gui/General.py:148 Mailman/Gui/General.py:154
+#: Mailman/Gui/General.py:232 Mailman/Gui/General.py:259
+#: Mailman/Gui/General.py:286 Mailman/Gui/General.py:297
+#: Mailman/Gui/General.py:300 Mailman/Gui/General.py:310
+#: Mailman/Gui/General.py:315 Mailman/Gui/General.py:325
+#: Mailman/Gui/General.py:345 Mailman/Gui/General.py:373
+#: Mailman/Gui/General.py:396 Mailman/Gui/NonDigest.py:44
+#: Mailman/Gui/NonDigest.py:52 Mailman/Gui/Privacy.py:101
+#: Mailman/Gui/Privacy.py:107 Mailman/Gui/Privacy.py:140
+#: Mailman/Gui/Privacy.py:188 Mailman/Gui/Privacy.py:296
+#: Mailman/Gui/Privacy.py:309 Mailman/Gui/Usenet.py:50
+#: Mailman/Gui/Usenet.py:54 Mailman/Gui/Usenet.py:91 Mailman/Gui/Usenet.py:103
+msgid "No"
+msgstr "Ei"
+
+#: Mailman/Cgi/admin.py:1073 Mailman/Cgi/admin.py:1082
+#: Mailman/Cgi/admin.py:1115 Mailman/Cgi/admin.py:1123
+#: Mailman/Cgi/confirm.py:271 Mailman/Cgi/create.py:327
+#: Mailman/Cgi/create.py:355 Mailman/Cgi/create.py:395
+#: Mailman/Cgi/rmlist.py:228 Mailman/Gui/Archive.py:33
+#: Mailman/Gui/Autoresponse.py:54 Mailman/Gui/Autoresponse.py:62
+#: Mailman/Gui/Bounce.py:77 Mailman/Gui/Bounce.py:108
+#: Mailman/Gui/Bounce.py:134 Mailman/Gui/Bounce.py:143
+#: Mailman/Gui/ContentFilter.py:70 Mailman/Gui/ContentFilter.py:103
+#: Mailman/Gui/Digest.py:46 Mailman/Gui/Digest.py:62 Mailman/Gui/Digest.py:84
+#: Mailman/Gui/Digest.py:89 Mailman/Gui/General.py:148
+#: Mailman/Gui/General.py:154 Mailman/Gui/General.py:232
+#: Mailman/Gui/General.py:259 Mailman/Gui/General.py:286
+#: Mailman/Gui/General.py:297 Mailman/Gui/General.py:300
+#: Mailman/Gui/General.py:310 Mailman/Gui/General.py:315
+#: Mailman/Gui/General.py:325 Mailman/Gui/General.py:345
+#: Mailman/Gui/General.py:373 Mailman/Gui/General.py:396
+#: Mailman/Gui/NonDigest.py:44 Mailman/Gui/NonDigest.py:52
+#: Mailman/Gui/Privacy.py:101 Mailman/Gui/Privacy.py:107
+#: Mailman/Gui/Privacy.py:140 Mailman/Gui/Privacy.py:188
+#: Mailman/Gui/Privacy.py:296 Mailman/Gui/Privacy.py:309
+#: Mailman/Gui/Usenet.py:50 Mailman/Gui/Usenet.py:54 Mailman/Gui/Usenet.py:91
+#: Mailman/Gui/Usenet.py:103
+msgid "Yes"
+msgstr "Kyllä"
+
+#: Mailman/Cgi/admin.py:1080
+#, fuzzy
+msgid "Send notifications of new subscriptions to the list owner?"
+msgstr "Lähetä ilmoitus uusista liittyneistä listan omistajalle?"
+
+#: Mailman/Cgi/admin.py:1088 Mailman/Cgi/admin.py:1129
+msgid "Enter one address per line below..."
+msgstr "Syötä yksi osoite per rivi alapuolelle..."
+
+#: Mailman/Cgi/admin.py:1093 Mailman/Cgi/admin.py:1134
+msgid "...or specify a file to upload:"
+msgstr "... tai määrittele lähetettävä tiedosto:"
+
+#: Mailman/Cgi/admin.py:1098
+msgid ""
+"Below, enter additional text to be added to the\n"
+" top of your invitation or the subscription notification. Include at "
+"least\n"
+" one blank line at the end..."
+msgstr ""
+"Syötä lisätietoteksti alla olevaan kenttään. Teksti lisätään\n"
+"liittymisilmoituksen alkuun. Lisää vähintään yksi tyhjä rivi loppuun..."
+
+#: Mailman/Cgi/admin.py:1113
+msgid "Send unsubscription acknowledgement to the user?"
+msgstr "Lähetä irtisanomisilmoitus käyttäjälle?"
+
+#: Mailman/Cgi/admin.py:1121
+msgid "Send notifications to the list owner?"
+msgstr "Lähetä ilmoitukset listan omistajalle?"
+
+#: Mailman/Cgi/admin.py:1143
+msgid "Change list ownership passwords"
+msgstr "Vaihda listan omistussuhteen salasanat"
+
+#: Mailman/Cgi/admin.py:1146
+msgid ""
+"The <em>list administrators</em> are the people who have ultimate control "
+"over\n"
+"all parameters of this mailing list. They are able to change any list\n"
+"configuration variable available through these administration web pages.\n"
+"\n"
+"<p>The <em>list moderators</em> have more limited permissions; they are not\n"
+"able to change any list configuration variable, but they are allowed to "
+"tend\n"
+"to pending administration requests, including approving or rejecting held\n"
+"subscription requests, and disposing of held postings. Of course, the\n"
+"<em>list administrators</em> can also tend to pending requests.\n"
+"\n"
+"<p>In order to split the list ownership duties into administrators and\n"
+"moderators, you must set a separate moderator password in the fields below,\n"
+"and also provide the email addresses of the list moderators in the\n"
+"<a href=\"%(adminurl)s/general\">general options section</a>."
+msgstr ""
+"<em>Listan ylläpitäjät</em> ovat henkilöitä, joilla on ylin hallintaoikeus\n"
+"kaikkiin postituslistan määrityksiin. He voivat muuttaa kaikkia listan \n"
+"määrityksiä, jotka ovat määritettävissä näiden web-sivujen kautta.\n"
+"\n"
+"<p><em>Listan pääkäyttäjillä</em> on rajalliset oikeudet; he eivät\n"
+"voi muuttaa mitään listan määrityksiä, mutta voivat suorittaa\n"
+"avoinna olevat ylläpitopyynnöt, kuten hyväksyä tai hylätä\n"
+"liittymispyynnöt, ja jonossa olevien postien hävittämiset. Tietenkin myös\n"
+"<em>listan ylläpitäjät</em> voivat tehdä avoinna olevat ylläpitopyynnöt.\n"
+"\n"
+"<p>Jakaakseen listan omistajan vastuut ylläpitäjiin ja pääkäyttäjiin\n"
+"täytyy alla oleviin kenttiin määritellä eri salasanat\n"
+"ja syöttää listan pääkäyttäjien sähköpostiosoitteet \n"
+"<a href=\"%(adminurl)s/general\">yleisten valintojen osassa</a>."
+
+#: Mailman/Cgi/admin.py:1165
+msgid "Enter new administrator password:"
+msgstr "Anna uusi ylläpitäjän salasana:"
+
+#: Mailman/Cgi/admin.py:1167
+#, fuzzy
+msgid "Confirm administrator password:"
+msgstr "Vahvista ylläpitäjän salasana:"
+
+#: Mailman/Cgi/admin.py:1172
+msgid "Enter new moderator password:"
+msgstr "Anna uusi pääkäyttäjän salasana:"
+
+#: Mailman/Cgi/admin.py:1174
+msgid "Confirm moderator password:"
+msgstr "Vahvista pääkäyttäjän salasana:"
+
+#: Mailman/Cgi/admin.py:1184
+msgid "Submit Your Changes"
+msgstr "Lähetä muutoksesi"
+
+#: Mailman/Cgi/admin.py:1207
+msgid "Moderator passwords did not match"
+msgstr "Pääkäyttäjän salasanat eivät täsmänneet"
+
+#: Mailman/Cgi/admin.py:1217
+#, fuzzy
+msgid "Administrator passwords did not match"
+msgstr "Ylläpitäjän salasanat eivät täsmänneet"
+
+#: Mailman/Cgi/admin.py:1265
+msgid "Already a member"
+msgstr "Jo jäsen"
+
+#: Mailman/Cgi/admin.py:1268
+msgid "&lt;blank line&gt;"
+msgstr "&lt;tyhjä rivi&gt;"
+
+#: Mailman/Cgi/admin.py:1269 Mailman/Cgi/admin.py:1272
+msgid "Bad/Invalid email address"
+msgstr "Väärä/Virheellinen sähköpostiosoite"
+
+#: Mailman/Cgi/admin.py:1275
+msgid "Hostile address (illegal characters)"
+msgstr "Vahingollinen osoite (vääriä kirjaimia)"
+
+#: Mailman/Cgi/admin.py:1281
+#, fuzzy
+msgid "Successfully invited:"
+msgstr "Kutsuttu onnistuneesti:"
+
+#: Mailman/Cgi/admin.py:1283
+#, fuzzy
+msgid "Successfully subscribed:"
+msgstr "Onnistuneesti liitetty:"
+
+#: Mailman/Cgi/admin.py:1288
+#, fuzzy
+msgid "Error inviting:"
+msgstr "Virhe kutsuttaessa:"
+
+#: Mailman/Cgi/admin.py:1290
+#, fuzzy
+msgid "Error subscribing:"
+msgstr "Virhe liittäessä:"
+
+#: Mailman/Cgi/admin.py:1319
+msgid "Successfully Unsubscribed:"
+msgstr "Erotettu onnistuneesti:"
+
+#: Mailman/Cgi/admin.py:1324
+msgid "Cannot unsubscribe non-members:"
+msgstr "Ei voi erottaa ei-jäseniä:"
+
+#: Mailman/Cgi/admin.py:1336
+msgid "Bad moderation flag value"
+msgstr "Viallinen muutosasetuksen arvo"
+
+#: Mailman/Cgi/admin.py:1357
+msgid "Not subscribed"
+msgstr "Ei liitetty"
+
+#: Mailman/Cgi/admin.py:1360
+msgid "Ignoring changes to deleted member: %(user)s"
+msgstr "Ei käsitellä muutoksia poistetulle käyttäjälle: %(user)s"
+
+#: Mailman/Cgi/admin.py:1400
+msgid "Successfully Removed:"
+msgstr "Poistettu onnistuneesti:"
+
+#: Mailman/Cgi/admin.py:1404
+msgid "Error Unsubscribing:"
+msgstr "Virhe eroamisessa:"
+
+#: Mailman/Cgi/admindb.py:159 Mailman/Cgi/admindb.py:167
+msgid "%(realname)s Administrative Database"
+msgstr "%(realname)s Ylläpidon tietokanta"
+
+#: Mailman/Cgi/admindb.py:162
+msgid "%(realname)s Administrative Database Results"
+msgstr "%(realname)s Ylläpidon tietokannan tulokset"
+
+#: Mailman/Cgi/admindb.py:170
+msgid "There are no pending requests."
+msgstr "Ei odottavia pyyntöjä."
+
+#: Mailman/Cgi/admindb.py:173
+#, fuzzy
+msgid "Click here to reload this page."
+msgstr "Klikkaa tästä sivun uudelleenlataamiseksi."
+
+#: Mailman/Cgi/admindb.py:184
+msgid "Detailed instructions for the administrative database"
+msgstr "Yksityiskohtaiset ohjeet ylläpidon tietokantaan"
+
+#: Mailman/Cgi/admindb.py:188
+msgid "Administrative requests for mailing list:"
+msgstr "Ylläpidollinen pyyntö postituslistalle:"
+
+#: Mailman/Cgi/admindb.py:191 Mailman/Cgi/admindb.py:234
+msgid "Submit All Data"
+msgstr "Lähetä kaikki tiedot"
+
+#: Mailman/Cgi/admindb.py:204
+#, fuzzy
+msgid "all of %(esender)s's held messages."
+msgstr "kaikki %(esender)s n odottavat viestit."
+
+#: Mailman/Cgi/admindb.py:209
+msgid "a single held message."
+msgstr "yksi odottava viesti."
+
+#: Mailman/Cgi/admindb.py:214
+msgid "all held messages."
+msgstr "kaikki odottavat viestit."
+
+#: Mailman/Cgi/admindb.py:249
+msgid "Mailman Administrative Database Error"
+msgstr "Mailman ylläpidon tietokannan virhe"
+
+#: Mailman/Cgi/admindb.py:254
+msgid "list of available mailing lists."
+msgstr "lista käytössä olevista postituslistoista"
+
+#: Mailman/Cgi/admindb.py:255
+msgid "You must specify a list name. Here is the %(link)s"
+msgstr "Sinun täytyy määritellä listan nimi. Tässä on %(link)s"
+
+#: Mailman/Cgi/admindb.py:268
+msgid "Subscription Requests"
+msgstr "Liittymispyyntöjä"
+
+#: Mailman/Cgi/admindb.py:270
+#, fuzzy
+msgid "Address/name"
+msgstr "Osoite/nimi"
+
+#: Mailman/Cgi/admindb.py:271 Mailman/Cgi/admindb.py:320
+msgid "Your decision"
+msgstr "Valintasi"
+
+#: Mailman/Cgi/admindb.py:272 Mailman/Cgi/admindb.py:321
+msgid "Reason for refusal"
+msgstr "Hylkäämisen syy"
+
+#: Mailman/Cgi/admindb.py:289 Mailman/Cgi/admindb.py:346
+#: Mailman/Cgi/admindb.py:389 Mailman/Cgi/admindb.py:612
+msgid "Defer"
+msgstr "Lykkää"
+
+#: Mailman/Cgi/admindb.py:290 Mailman/Cgi/admindb.py:347
+#: Mailman/Cgi/admindb.py:612
+msgid "Approve"
+msgstr "Hyväksy"
+
+#: Mailman/Cgi/admindb.py:291 Mailman/Cgi/admindb.py:348
+#: Mailman/Cgi/admindb.py:389 Mailman/Cgi/admindb.py:612
+#: Mailman/Gui/ContentFilter.py:37 Mailman/Gui/Privacy.py:207
+#: Mailman/Gui/Privacy.py:281
+msgid "Reject"
+msgstr "Torju"
+
+#: Mailman/Cgi/admindb.py:292 Mailman/Cgi/admindb.py:349
+#: Mailman/Cgi/admindb.py:389 Mailman/Cgi/admindb.py:612
+#: Mailman/Gui/ContentFilter.py:37 Mailman/Gui/Privacy.py:207
+#: Mailman/Gui/Privacy.py:281
+msgid "Discard"
+msgstr "Hylkää"
+
+#: Mailman/Cgi/admindb.py:300
+msgid "Permanently ban from this list"
+msgstr "Estä pääsy pysyvästi tältä listalta"
+
+#: Mailman/Cgi/admindb.py:319
+msgid "User address/name"
+msgstr "Käyttäjän osoite/nimi"
+
+#: Mailman/Cgi/admindb.py:359
+msgid "Unsubscription Requests"
+msgstr "Eroamispyyntöjä"
+
+#: Mailman/Cgi/admindb.py:382 Mailman/Cgi/admindb.py:596
+msgid "From:"
+msgstr "Lähettäjä:"
+
+#: Mailman/Cgi/admindb.py:385
+msgid "Action to take on all these held messages:"
+msgstr "Toimenpide kaikkiin näihin odottaviin viesteihin:"
+
+#: Mailman/Cgi/admindb.py:389 Mailman/Gui/Privacy.py:281
+msgid "Accept"
+msgstr "Hyväksy"
+
+#: Mailman/Cgi/admindb.py:397
+msgid "Preserve messages for the site administrator"
+msgstr "Säilytä viestit järjestelmän ylläpitäjälle"
+
+#: Mailman/Cgi/admindb.py:403
+msgid "Forward messages (individually) to:"
+msgstr "Edelleenohjaa viestit (yksitellen) osoitteella:"
+
+#: Mailman/Cgi/admindb.py:421
+msgid "Clear this member's <em>moderate</em> flag"
+msgstr "Tyhjennä tämän jäsenen <em>ylläpito</em> asetus"
+
+#: Mailman/Cgi/admindb.py:425
+msgid "<em>The sender is now a member of this list</em>"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:434
+msgid "Add <b>%(esender)s</b> to a sender filter"
+msgstr "Lisää <b>%(esender)s</b> lähettäjän suodatukseen"
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Accepts"
+msgstr "Hyväksytyt"
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Discards"
+msgstr "Hylätyt"
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Holds"
+msgstr "Odottavat"
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Rejects"
+msgstr "Torjutut"
+
+#: Mailman/Cgi/admindb.py:448
+msgid ""
+"Ban <b>%(esender)s</b> from ever subscribing to this\n"
+" mailing list"
+msgstr ""
+"Estä <b>%(esender)s</b> koskaan liittymästä tähän\n"
+" postituslistaan"
+
+#: Mailman/Cgi/admindb.py:453
+msgid ""
+"Click on the message number to view the individual\n"
+" message, or you can "
+msgstr ""
+"Klikkaa viestin numeroa nähdäksesi yksittäinen\n"
+" viesti, tai voit "
+
+#: Mailman/Cgi/admindb.py:455
+msgid "view all messages from %(esender)s"
+msgstr "näytä kaikki %(esender)s viestit"
+
+#: Mailman/Cgi/admindb.py:475 Mailman/Cgi/admindb.py:599
+msgid "Subject:"
+msgstr "Aihe:"
+
+#: Mailman/Cgi/admindb.py:478
+msgid " bytes"
+msgstr " tavua"
+
+#: Mailman/Cgi/admindb.py:478
+msgid "Size:"
+msgstr "Koko:"
+
+#: Mailman/Cgi/admindb.py:482 Mailman/Handlers/Decorate.py:50
+#: Mailman/Handlers/Scrubber.py:226 Mailman/Handlers/Scrubber.py:227
+msgid "not available"
+msgstr "ei saatavilla"
+
+#: Mailman/Cgi/admindb.py:483 Mailman/Cgi/admindb.py:601
+msgid "Reason:"
+msgstr "Syy:"
+
+#: Mailman/Cgi/admindb.py:487 Mailman/Cgi/admindb.py:605
+#, fuzzy
+msgid "Received:"
+msgstr "Haluatko vastaanottaa koosteita?"
+
+#: Mailman/Cgi/admindb.py:545
+msgid "Posting Held for Approval"
+msgstr "Postitus odottaa hyväksyntää"
+
+#: Mailman/Cgi/admindb.py:547
+msgid " (%(count)d of %(total)d)"
+msgstr " (%(count)d / %(total)d)"
+
+#: Mailman/Cgi/admindb.py:558
+msgid "<em>Message with id #%(id)d was lost."
+msgstr "<em>Viesti tunnuksella #%(id) oli kadonnut."
+
+#: Mailman/Cgi/admindb.py:567
+msgid "<em>Message with id #%(id)d is corrupted."
+msgstr "<em>Viesti tunnuksella #%(id) on vioittunut."
+
+#: Mailman/Cgi/admindb.py:618
+msgid "Action:"
+msgstr "Toiminto:"
+
+#: Mailman/Cgi/admindb.py:622
+msgid "Preserve message for site administrator"
+msgstr "Säilytä viesti järjestelmän ylläpitäjälle"
+
+#: Mailman/Cgi/admindb.py:626
+msgid "Additionally, forward this message to: "
+msgstr "Lisäksi, edelleenohjaa tämä viesti:"
+
+#: Mailman/Cgi/admindb.py:630
+msgid "[No explanation given]"
+msgstr "[Selvitystä ei annettu]"
+
+#: Mailman/Cgi/admindb.py:632
+msgid "If you reject this post,<br>please explain (optional):"
+msgstr "Jos hylkäät tämän viestin, <br> selitä miksi (vapaaehtoinen):"
+
+#: Mailman/Cgi/admindb.py:638
+msgid "Message Headers:"
+msgstr "Viestin otsikot:"
+
+#: Mailman/Cgi/admindb.py:643
+msgid "Message Excerpt:"
+msgstr "Ote viestistä:"
+
+#: Mailman/Cgi/admindb.py:676 Mailman/Deliverer.py:124
+msgid "No reason given"
+msgstr "Syytä ei annettu"
+
+#: Mailman/Cgi/admindb.py:737 Mailman/ListAdmin.py:308
+#: Mailman/ListAdmin.py:429
+msgid "[No reason given]"
+msgstr "[Syytä ei annettu]"
+
+#: Mailman/Cgi/admindb.py:766
+msgid "Database Updated..."
+msgstr "Tietokanta päivitetty..."
+
+#: Mailman/Cgi/admindb.py:769
+msgid " is already a member"
+msgstr " on jo jäsen"
+
+#: Mailman/Cgi/confirm.py:69
+msgid "Confirmation string was empty."
+msgstr "Vahvistusmerkkijono oli tyhjä."
+
+#: Mailman/Cgi/confirm.py:89
+msgid ""
+"<b>Invalid confirmation string:</b>\n"
+" %(safecookie)s.\n"
+"\n"
+" <p>Note that confirmation strings expire approximately\n"
+" %(days)s days after the initial subscription request. If your\n"
+" confirmation has expired, please try to re-submit your subscription.\n"
+" Otherwise, <a href=\"%(confirmurl)s\">re-enter</a> your confirmation\n"
+" string."
+msgstr ""
+"<b>Väärä vahvistusmerkkijono:</b>\n"
+" %(safecookie)s.\n"
+"\n"
+" <p>Huomaa, että vahvistus vanhenee noin\n"
+" %(days)s päivän jälkeen yksittäisen liittymispyynnön jälkeen. Jos\n"
+" vahvistuksesi on vanhentunut, yritä lähettää liittymispyyntö uudelleen.\n"
+" Muutoin <a href=\"%(confirmurl)s\">kirjoita uudelleen</a> vahvistuksesi."
+
+#: Mailman/Cgi/confirm.py:122
+msgid ""
+"The address requesting unsubscription is not\n"
+" a member of the mailing list. Perhaps you have already "
+"been\n"
+" unsubscribed, e.g. by the list administrator?"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:138
+#, fuzzy
+msgid ""
+"The address requesting to be changed has\n"
+" been subsequently unsubscribed. This request has been\n"
+" cancelled."
+msgstr ""
+"Osoite, joka on pyytänyt muutosta, on\n"
+" seuraavaksi erotettu. Tämä pyyntö on peruttu"
+
+#: Mailman/Cgi/confirm.py:157
+msgid "System error, bad content: %(content)s"
+msgstr "Järjestelmävirhe, väärä sisältö: %(content)s"
+
+#: Mailman/Cgi/confirm.py:167
+msgid "Bad confirmation string"
+msgstr "Väärä vahvistusmerkkijono"
+
+#: Mailman/Cgi/confirm.py:175
+msgid "Enter confirmation cookie"
+msgstr "Syötä vahvistuseväste"
+
+#: Mailman/Cgi/confirm.py:188
+msgid ""
+"Please enter the confirmation string\n"
+" (i.e. <em>cookie</em>) that you received in your email message, in the "
+"box\n"
+" below. Then hit the <em>Submit</em> button to proceed to the next\n"
+" confirmation step."
+msgstr ""
+"Kirjoita vahvistusmerkkijono\n"
+" (i.e. <em>eväste</em>), jonka olet saanut sähköpostina, alla olevaan\n"
+" kenttään. Sen jälkeen klikkaa <em>Lähetä</em> näppäintä jatkaaksesi\n"
+" seuraavalle sivulle."
+
+#: Mailman/Cgi/confirm.py:193
+msgid "Confirmation string:"
+msgstr "Vahvistusmerkkijono:"
+
+#: Mailman/Cgi/confirm.py:195
+msgid "Submit"
+msgstr "Lähetä"
+
+#: Mailman/Cgi/confirm.py:210
+msgid "Confirm subscription request"
+msgstr "Vahvista liittymispyyntö"
+
+#: Mailman/Cgi/confirm.py:227
+#, fuzzy
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" subscription request to the mailing list <em>%(listname)s</em>. Your\n"
+" subscription settings are shown below; make any necessary changes and "
+"hit\n"
+" <em>Subscribe</em> to complete the confirmation process. Once you've\n"
+" confirmed your subscription request, you will be shown your account\n"
+" options page which you can use to further customize your membership\n"
+" options.\n"
+"\n"
+" <p>Note: your password will be emailed to you once your subscription is\n"
+" confirmed. You can change it by visiting your personal options page.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this subscription\n"
+" request."
+msgstr ""
+"Liittymispyynnön hyväksyminen postituslistalle\n"
+" <em>%(listname)s</em> vaatii vahvistuksesi. Liittymisasetuksesi\n"
+" ovat nähtävissä alla; tee tarvittavat muutokset ja paina\n"
+" <em>Liity</em> hyväksyäksesi vahvistuksen. Kun olet vahvistanut\n"
+" liittymispyyntösi, tunnuksesi valinnat näytetään sinulle\n"
+" valintasivulla, jota voit käyttää muokataksesi edelleen jäsenyytesi\n"
+" valintoja.\n"
+"\n"
+" Huomaa: Salasanasi lähetetään sinulle sähköpostilla hyväksyttyäsi\n"
+"vahvistuksen. Voit muuttaa sen omien asetusten muutossivulta.\n"
+" <p>Tai paina <em>Peruuta ja hylkää</em> peruuttaaksesi \n"
+"tämän liittymispyynnön."
+
+#: Mailman/Cgi/confirm.py:242
+#, fuzzy
+msgid ""
+"Your confirmation is required in order to continue with\n"
+" the subscription request to the mailing list <em>%(listname)s</em>.\n"
+" Your subscription settings are shown below; make any necessary "
+"changes\n"
+" and hit <em>Subscribe to list ...</em> to complete the confirmation\n"
+" process. Once you've confirmed your subscription request, the\n"
+" moderator must approve or reject your membership request. You will\n"
+" receive notice of their decision.\n"
+"\n"
+" <p>Note: your password will be emailed to you once your "
+"subscription\n"
+" is confirmed. You can change it by visiting your personal options\n"
+" page.\n"
+"\n"
+" <p>Or, if you've changed your mind and do not want to subscribe to\n"
+" this mailing list, you can hit <em>Cancel my subscription\n"
+" request</em>."
+msgstr ""
+"Sinulta vaaditaan vahvistus, jotta liittymispyyntöä \n"
+" <em>%(listname)s</em>-listalle voidaan jatkaa.\n"
+" Liittymisasetuksesi näkyy alapuolella; tee tarvittavat muutokset\n"
+" ja paina <em>Liitä</em> saadaksesi vahvistuksen loppuun. Kun\n"
+" olet vahvistanut liittymispyynnön, pääkäyttäjän tulee hyväksyä tai\n"
+" hylätä jäsenyyspyynnön. Saat ilmoituksen heidän\n"
+" päätöksistään.\n"
+"\n"
+" <p>Tai voit painaa <em>Peruuta</em> peruuttaaksesi\n"
+" tämän liittymispyynnön."
+
+#: Mailman/Cgi/confirm.py:260
+msgid "Your email address:"
+msgstr "Sähköpostiosoitteesi:"
+
+#: Mailman/Cgi/confirm.py:261
+msgid "Your real name:"
+msgstr "Koko nimesi:"
+
+#: Mailman/Cgi/confirm.py:270
+msgid "Receive digests?"
+msgstr "Haluatko vastaanottaa koosteita?"
+
+#: Mailman/Cgi/confirm.py:279
+msgid "Preferred language:"
+msgstr "Valitse kieli:"
+
+#: Mailman/Cgi/confirm.py:284
+#, fuzzy
+msgid "Cancel my subscription request"
+msgstr "Vahvista liittymispyyntö"
+
+#: Mailman/Cgi/confirm.py:285
+#, fuzzy
+msgid "Subscribe to list %(listname)s"
+msgstr "Ladataan listaa %(listname)s"
+
+#: Mailman/Cgi/confirm.py:295
+msgid "You have canceled your subscription request."
+msgstr "Peruutit liittymispyynnön."
+
+#: Mailman/Cgi/confirm.py:329
+msgid "Awaiting moderator approval"
+msgstr "Odotetaan pääkäyttäjän hyväksymistä"
+
+#: Mailman/Cgi/confirm.py:332
+msgid ""
+" You have successfully confirmed your subscription request to "
+"the\n"
+" mailing list %(listname)s, however final approval is required "
+"from\n"
+" the list moderator before you will be subscribed. Your request\n"
+" has been forwarded to the list moderator, and you will be "
+"notified\n"
+" of the moderator's decision."
+msgstr ""
+" Liittymispyyntösi listalle %(listname)s on onnistuneesti\n"
+" vastaanotettu. Listan pääkäyttäjän tulee kuitenkin vielä\n"
+"hyväksyä pyyntö ennenkuin sinut liitetään listalle.\n"
+"Pyyntösi on lähetetty listan pääkäyttäjälle, ja sinulle tullaan\n"
+"ilmoittamaan pääkäyttäjän päätös."
+
+#: Mailman/Cgi/confirm.py:339 Mailman/Cgi/confirm.py:394
+#: Mailman/Cgi/confirm.py:482 Mailman/Cgi/confirm.py:705
+msgid ""
+"Invalid confirmation string. It is\n"
+" possible that you are attempting to confirm a request for an\n"
+" address that has already been unsubscribed."
+msgstr ""
+"Väärä vahvistusmerkkijono. Yrität mahdollisesti\n"
+" vahvistaa sellaisen osoitteen pyyntöä,\n"
+" joka on jo poistettu listalta."
+
+#: Mailman/Cgi/confirm.py:343
+#, fuzzy
+msgid "You are already a member of this mailing list!"
+msgstr "Sinut on irtisanottu %(realname)s postituslistalta"
+
+#: Mailman/Cgi/confirm.py:350
+msgid "Subscription request confirmed"
+msgstr "Liittymispyyntö vahvistettu"
+
+#: Mailman/Cgi/confirm.py:354
+msgid ""
+" You have successfully confirmed your subscription request for\n"
+" \"%(addr)s\" to the %(listname)s mailing list. A separate\n"
+" confirmation message will be sent to your email address, along\n"
+" with your password, and other useful information and links.\n"
+"\n"
+" <p>You can now\n"
+" <a href=\"%(optionsurl)s\">proceed to your membership login\n"
+" page</a>."
+msgstr ""
+" Olet vahvistanut liittymispyynnön \"%(addr)s\"lle \n"
+" %(listname)s -postituslistalle onnistuneesti. \n"
+" Sähköpostiosoitteeseesi lähetetään erillinen vahvistusviesti,\n"
+" jossa on salasanasi ja muuta tarpeellista tietoja ja linkkejä.\n"
+"\n"
+" <p>Voit nyt\n"
+" <a href=\"%(optionsurl)s\">jatkaa sisäänkirjautumissivulle</a>."
+
+#: Mailman/Cgi/confirm.py:372
+msgid "You have canceled your unsubscription request."
+msgstr "Olet peruuttanut irtisanomispyyntösi."
+
+#: Mailman/Cgi/confirm.py:400
+msgid "Unsubscription request confirmed"
+msgstr "Irtisanomispyyntö vahvistettu"
+
+#: Mailman/Cgi/confirm.py:404
+msgid ""
+" You have successfully unsubscribed from the %(listname)s "
+"mailing\n"
+" list. You can now <a href=\"%(listinfourl)s\">visit the list's "
+"main\n"
+" information page</a>."
+msgstr ""
+" Olet irtisanoutunut onnistuneesti %(listname)s \n"
+" -postituslistalta. Voit nyt <a href=\"%(listinfourl)s\"> mennä\n"
+" listan tietosivulle</a>."
+
+#: Mailman/Cgi/confirm.py:415
+msgid "Confirm unsubscription request"
+msgstr "Vahvista irtisanoutumispyyntö"
+
+#: Mailman/Cgi/confirm.py:430 Mailman/Cgi/confirm.py:519
+msgid "<em>Not available</em>"
+msgstr "<em>Ei saatavilla</em>"
+
+#: Mailman/Cgi/confirm.py:433
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" unsubscription request from the mailing list <em>%(listname)s</em>. "
+"You\n"
+" are currently subscribed with\n"
+"\n"
+" <ul><li><b>Real name:</b> %(fullname)s\n"
+" <li><b>Email address:</b> %(addr)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Unsubscribe</em> button below to complete the confirmation\n"
+" process.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this unsubscription\n"
+" request."
+msgstr ""
+"Irtisanoutumisspyyntö <em>%(listname)s</em> -postituslistalta vaatii\n"
+" vahvistuksesi.\n"
+" Olet liittynyt seuraavilla tiedoilla\n"
+"\n"
+" <ul><li><b>Nimi:</b> %(fullname)s\n"
+" <li><b>Sähköpostiosoite:</b> %(addr)s\n"
+" </ul>\n"
+"\n"
+" Paina alla olevaa <em>Irtisano</em> painiketta\n"
+" hyväksyäksesi irtisanoutumisen.\n"
+"\n"
+" <p>Tai paina <em>Peruuta</em> peruuttaaksesi tämän\n"
+"irtisanoutumispyynnön."
+
+#: Mailman/Cgi/confirm.py:449 Mailman/Cgi/options.py:660
+#: Mailman/Cgi/options.py:801 Mailman/Cgi/options.py:811
+msgid "Unsubscribe"
+msgstr "Irtisano"
+
+#: Mailman/Cgi/confirm.py:450 Mailman/Cgi/confirm.py:548
+msgid "Cancel and discard"
+msgstr "Peruuta ja poista"
+
+#: Mailman/Cgi/confirm.py:460
+msgid "You have canceled your change of address request."
+msgstr "Olet peruuttanut osoitteenmuutospyynnön."
+
+#: Mailman/Cgi/confirm.py:488
+msgid "Change of address request confirmed"
+msgstr "Osoitteenmuutospyyntö vahvistettu"
+
+#: Mailman/Cgi/confirm.py:492
+#, fuzzy
+msgid ""
+" You have successfully changed your address on the %(listname)s\n"
+" mailing list from <b>%(oldaddr)s</b> to <b>%(newaddr)s</b>. "
+"You\n"
+" can now <a href=\"%(optionsurl)s\">proceed to your membership\n"
+" login page</a>."
+msgstr ""
+" Olet onnistuneesti muuttanut osoitteesi\n"
+" %(listname)s -postituslistalle \n"
+" <b>%(oldaddr)s (vanha)</b> <b>%(newaddr)s (uusi) </b>.\n"
+" Voit nyt <a href=\"%(optionsurl)s\">jatkaa jäsenen\n"
+" sisäänkirjautumissivulle</a>."
+
+#: Mailman/Cgi/confirm.py:504
+msgid "Confirm change of address request"
+msgstr "Vahvista osoitteenmuutospyyntö"
+
+#: Mailman/Cgi/confirm.py:523
+msgid "globally"
+msgstr "globaalisti"
+
+#: Mailman/Cgi/confirm.py:526
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" change of address request for the mailing list <em>%(listname)s</em>. "
+"You\n"
+" are currently subscribed with\n"
+"\n"
+" <ul><li><b>Real name:</b> %(fullname)s\n"
+" <li><b>Old email address:</b> %(oldaddr)s\n"
+" </ul>\n"
+"\n"
+" and you have requested to %(globallys)s change your email address to\n"
+"\n"
+" <ul><li><b>New email address:</b> %(newaddr)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Change address</em> button below to complete the "
+"confirmation\n"
+" process.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this change of address\n"
+" request."
+msgstr ""
+"Osoitteenmuutospyyntö <em>%(listname)s</em> -postituslistalle vaatii\n"
+" vahvistustasi.\n"
+" Olet liittynyt seuraavilla tiedoilla\n"
+"\n"
+" <ul><li><b>Nimi:</b> %(fullname)s\n"
+" <li><b>Vanha sähköpostiosoite:</b> %(oldaddr)s\n"
+" </ul>\n"
+"\n"
+" ja olet pyytänyt %(globallys)s muuttamaan sähköpostiosoitteeksesi\n"
+"\n"
+" <ul><li><b>Uusi sähköpostiosoite:</b> %(newaddr)s\n"
+" </ul>\n"
+"\n"
+" Paina <em>Muuta osoite</em> painiketta hyväksyäksesi muutoksen.\n"
+" \n"
+" <p>Tai paina <em>Peruuta</em> peruuttaaksesi osoitteenmuutospyynnön.\n"
+" "
+
+#: Mailman/Cgi/confirm.py:547
+msgid "Change address"
+msgstr "Muuta osoite"
+
+#: Mailman/Cgi/confirm.py:557 Mailman/Cgi/confirm.py:670
+msgid "Continue awaiting approval"
+msgstr "Jatka hyväksymisen odottamista"
+
+#: Mailman/Cgi/confirm.py:564
+msgid ""
+"Okay, the list moderator will still have the\n"
+" opportunity to approve or reject this message."
+msgstr ""
+"OK. Listan pääkäyttäjällä on kuitenkin vielä mahdollisuus\n"
+" hyväksyä tai hylätä tämä viesti."
+
+#: Mailman/Cgi/confirm.py:590
+msgid "Sender discarded message via web."
+msgstr "Lähettäjä hylkäsi viestin webin kautta."
+
+#: Mailman/Cgi/confirm.py:592
+msgid ""
+"The held message with the Subject:\n"
+" header <em>%(subject)s</em> could not be found. The most "
+"likely\n"
+" reason for this is that the list moderator has already approved "
+"or\n"
+" rejected the message. You were not able to cancel it in\n"
+" time."
+msgstr ""
+"Jonossa oleva viesti, jonka aihe on:\n"
+" Otsikkoa <em>%(subject)s</em> ei löydy. Todennäköisin\n"
+" syy on, että listan pääkäyttäjä on jo hyväksynyt tai "
+"hylännyt viestin. Viestiä ei voitu peruuttaa ajoissa."
+
+#: Mailman/Cgi/confirm.py:600
+msgid "Posted message canceled"
+msgstr "Lähetetty viesti peruutettu"
+
+#: Mailman/Cgi/confirm.py:603
+msgid ""
+" You have successfully canceled the posting of your message with\n"
+" the Subject: header <em>%(subject)s</em> to the mailing list\n"
+" %(listname)s."
+msgstr ""
+" Viestin, jonka aihe on <em>%(subject)s</em> \n"
+" %(listname)s -postituslistalle, lähetys on\n"
+" peruutettu."
+
+#: Mailman/Cgi/confirm.py:614
+msgid "Cancel held message posting"
+msgstr "Peruuta odottavan viestin lähetys"
+
+#: Mailman/Cgi/confirm.py:639
+msgid ""
+"The held message you were referred to has\n"
+" already been handled by the list administrator."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:653
+msgid ""
+"Your confirmation is required in order to cancel the\n"
+" posting of your message to the mailing list <em>%(listname)s</em>:\n"
+"\n"
+" <ul><li><b>Sender:</b> %(sender)s\n"
+" <li><b>Subject:</b> %(subject)s\n"
+" <li><b>Reason:</b> %(reason)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Cancel posting</em> button to discard the posting.\n"
+"\n"
+" <p>Or hit the <em>Continue awaiting approval</em> button to continue to\n"
+" allow the list moderator to approve or reject the message."
+msgstr ""
+"Viestin lähetyksen peruuttamiseksi <em>%(listname)s</em> -postituslistalle\n"
+" vaaditaan vahvistuksesi:\n"
+"\n"
+" <ul><li><b>Lähettäjä:</b> %(sender)s\n"
+" <li><b>Aihe:</b> %(subject)s\n"
+" <li><b>Syy:</b> %(reason)s\n"
+" </ul>\n"
+"\n"
+" Paina <em>Peruuta lähetys</em> painiketta peruuttaaksesi lähetyksen.\n"
+"\n"
+" <p>Tai paina <em>Jatka hyväksymisen odottamista</em> painiketta\n"
+" odottaaksesi listan pääkäyttäjän hyväksymistä tai hylkäystä."
+
+#: Mailman/Cgi/confirm.py:669
+msgid "Cancel posting"
+msgstr "Peruuta lähetys"
+
+#: Mailman/Cgi/confirm.py:681
+msgid ""
+"You have canceled the re-enabling of your membership. If\n"
+" we continue to receive bounces from your address, it could be deleted "
+"from\n"
+" this mailing list."
+msgstr ""
+"Olet peruuttanut jäsenyytesi uudelleenaktivoinnin.\n"
+" Jos edelleen saamme palautuksia osoitteestasi, se voidaan poistaa\n"
+" tältä listalta."
+
+#: Mailman/Cgi/confirm.py:711
+msgid "Membership re-enabled."
+msgstr "Jäsenyys uudelleenaktivoitu."
+
+#: Mailman/Cgi/confirm.py:715
+#, fuzzy
+msgid ""
+" You have successfully re-enabled your membership in the\n"
+" %(listname)s mailing list. You can now <a\n"
+" href=\"%(optionsurl)s\">visit your member options page</a>.\n"
+" "
+msgstr ""
+" Olet onnistuneesti uudelleenaktivoinut jäsenyytesi\n"
+" %(listname)s -postituslistalla. Nyt voit mennä\n"
+" <a href=\"%(optionsurl)s\">jäsenen asetussivulle</a>.\n"
+" "
+
+#: Mailman/Cgi/confirm.py:727
+msgid "Re-enable mailing list membership"
+msgstr "Uudelleenaktivoi postituslistan jäsenyys"
+
+#: Mailman/Cgi/confirm.py:744
+msgid ""
+"We're sorry, but you have already been unsubscribed\n"
+" from this mailing list. To re-subscribe, please visit the\n"
+" <a href=\"%(listinfourl)s\">list information page</a>."
+msgstr ""
+"Sinut on valitettavasti jo irtisanottu\n"
+" tältä postituslistalta. Liittyäksesi uudelleen, mene\n"
+" <a href=\"%(listinfourl)s\">listojen tietosivulle</a>."
+
+#: Mailman/Cgi/confirm.py:758
+msgid "<em>not available</em>"
+msgstr "<em>ei saatavilla</em>"
+
+#: Mailman/Cgi/confirm.py:762
+msgid ""
+"Your membership in the %(realname)s mailing list is\n"
+" currently disabled due to excessive bounces. Your confirmation is\n"
+" required in order to re-enable delivery to your address. We have the\n"
+" following information on file:\n"
+"\n"
+" <ul><li><b>Member address:</b> %(member)s\n"
+" <li><b>Member name:</b> %(username)s\n"
+" <li><b>Last bounce received on:</b> %(date)s\n"
+" <li><b>Approximate number of days before you are permanently "
+"removed\n"
+" from this list:</b> %(daysleft)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Re-enable membership</em> button to resume receiving "
+"postings\n"
+" from the mailing list. Or hit the <em>Cancel</em> button to defer\n"
+" re-enabling your membership.\n"
+" "
+msgstr ""
+"Jäsenyytesi %(realname)s postituslistalla on \n"
+" otettu pois käytöstä liiallisten palautusten vuoksi. Vahvistustasi\n"
+" vaaditaan mahdollistaaksesi viestien välityksen osoitteeseesi.\n"
+" Sinusta on seuraavat tiedot:\n"
+"\n"
+" <ul><li><b>Jäsenen osoite:</b> %(member)s\n"
+" <li><b>Jäsenen nimi:</b> %(username)s\n"
+" <li><b>Viimeinen palautus on saatu:</b> %(date)s\n"
+" <li><b>Arvioitu päivien lukumäärä ennenkuin sinut poistetaan\n"
+" tältä listalta pysyvästi:</b> %(daysleft)s\n"
+" </ul>\n"
+"\n"
+" Paina <em>Uudelleenaktivoi jäsenyys</em> painiketta jatkaaksesi\n"
+" viestien vastaanottamista tältä listalta. Tai paina <em>Peruuta</em>\n"
+" painiketta lykkääksesi jäsenyyden uudelleenaktivointia.\n"
+" "
+
+#: Mailman/Cgi/confirm.py:782
+msgid "Re-enable membership"
+msgstr "Uudelleenaktivoi jäsenyys"
+
+#: Mailman/Cgi/confirm.py:783
+msgid "Cancel"
+msgstr "Peruuta"
+
+#: Mailman/Cgi/create.py:48 Mailman/Cgi/rmlist.py:48
+msgid "Bad URL specification"
+msgstr "Väärä URL osoite"
+
+#: Mailman/Cgi/create.py:63 Mailman/Cgi/rmlist.py:176
+msgid "Return to the "
+msgstr "Palaa "
+
+#: Mailman/Cgi/create.py:65 Mailman/Cgi/rmlist.py:178
+msgid "general list overview"
+msgstr "yleistä tietoa listasta"
+
+#: Mailman/Cgi/create.py:66 Mailman/Cgi/rmlist.py:179
+msgid "<br>Return to the "
+msgstr "<br>Palaa "
+
+#: Mailman/Cgi/create.py:68 Mailman/Cgi/rmlist.py:181
+msgid "administrative list overview"
+msgstr "tietoa ylläpitolistasta"
+
+#: Mailman/Cgi/create.py:101
+msgid "List name must not include \"@\": %(listname)s"
+msgstr "Listan nimessä ei saa olla \"@\": %(listname)s"
+
+#: Mailman/Cgi/create.py:107 Mailman/Cgi/create.py:185 bin/newlist:134
+#: bin/newlist:168
+msgid "List already exists: %(listname)s"
+msgstr "Lista on jo olemassa: %(listname)s"
+
+#: Mailman/Cgi/create.py:111
+msgid "You forgot to enter the list name"
+msgstr "Unohdit kirjoittaa listan nimen"
+
+#: Mailman/Cgi/create.py:115
+msgid "You forgot to specify the list owner"
+msgstr "Unohdit määritellä listan omistajan"
+
+#: Mailman/Cgi/create.py:122
+msgid ""
+"Leave the initial password (and confirmation) fields\n"
+" blank if you want Mailman to autogenerate the list\n"
+" passwords."
+msgstr ""
+"Jätä listan alkuperäinen salasana (ja vahvistus) kentät\n"
+" tyhjiksi, jos haluat että Mailman luo listan salasanat\n"
+" automaattisesti."
+
+#: Mailman/Cgi/create.py:130
+msgid "Initial list passwords do not match"
+msgstr "Alkuperäiset listan salasanat eivät täsmää"
+
+#: Mailman/Cgi/create.py:139
+msgid "The list password cannot be empty<!-- ignore -->"
+msgstr "Listan salasana ei voi olla tyhjä<!-- ignore -->"
+
+#: Mailman/Cgi/create.py:151
+msgid "You are not authorized to create new mailing lists"
+msgstr "Sinulla ei ole oikeutta luoda uutta postituslistaa"
+
+#: Mailman/Cgi/create.py:181 bin/newlist:166
+#, fuzzy
+msgid "Bad owner email address: %(s)s"
+msgstr "Listan omistajan sähköpostiosoite on väärä: %(owner)s"
+
+#: Mailman/Cgi/create.py:189 bin/newlist:164
+#, fuzzy
+msgid "Illegal list name: %(s)s"
+msgstr "Listan nimessä ei saa olla \"@\": %(listname)s"
+
+#: Mailman/Cgi/create.py:194
+msgid ""
+"Some unknown error occurred while creating the list.\n"
+" Please contact the site administrator for assistance."
+msgstr ""
+"Listaa luotaessa tapahtui jokin tuntematon virhe.\n"
+" Ota yhteyttä järjestelmän ylläpitäjään."
+
+#: Mailman/Cgi/create.py:233 bin/newlist:210
+msgid "Your new mailing list: %(listname)s"
+msgstr "Uusi postituslistasi: %(listname)s"
+
+#: Mailman/Cgi/create.py:242
+msgid "Mailing list creation results"
+msgstr "Postituslistan luonnin tulokset"
+
+#: Mailman/Cgi/create.py:248
+msgid ""
+"You have successfully created the mailing list\n"
+" <b>%(listname)s</b> and notification has been sent to the list owner\n"
+" <b>%(owner)s</b>. You can now:"
+msgstr ""
+"Lista on luotu onnistuneesti\n"
+" <b>%(listname)s</b> ja siitä on lähetetty ilmoitus listan omistajalle\n"
+" <b>%(owner)s</b>. Voit nyt:"
+
+#: Mailman/Cgi/create.py:252
+msgid "Visit the list's info page"
+msgstr "Mennä listan tietosivulle"
+
+#: Mailman/Cgi/create.py:253
+msgid "Visit the list's admin page"
+msgstr "Mennä listan ylläpitosivulle"
+
+#: Mailman/Cgi/create.py:254
+msgid "Create another list"
+msgstr "Luoda toisen listan"
+
+#: Mailman/Cgi/create.py:272
+msgid "Create a %(hostname)s Mailing List"
+msgstr "Luoda %(hostname)s postituslista"
+
+#: Mailman/Cgi/create.py:281 Mailman/Cgi/rmlist.py:199
+#: Mailman/Gui/Bounce.py:175 Mailman/htmlformat.py:339
+msgid "Error: "
+msgstr "Virhe: "
+
+#: Mailman/Cgi/create.py:283
+msgid ""
+"You can create a new mailing list by entering the\n"
+" relevant information into the form below. The name of the mailing list\n"
+" will be used as the primary address for posting messages to the list, "
+"so\n"
+" it should be lowercased. You will not be able to change this once the\n"
+" list is created.\n"
+"\n"
+" <p>You also need to enter the email address of the initial list owner.\n"
+" Once the list is created, the list owner will be given notification, "
+"along\n"
+" with the initial list password. The list owner will then be able to\n"
+" modify the password and add or remove additional list owners.\n"
+"\n"
+" <p>If you want Mailman to automatically generate the initial list admin\n"
+" password, click on `Yes' in the autogenerate field below, and leave the\n"
+" initial list password fields empty.\n"
+"\n"
+" <p>You must have the proper authorization to create new mailing lists.\n"
+" Each site should have a <em>list creator's</em> password, which you can\n"
+" enter in the field at the bottom. Note that the site administrator's\n"
+" password can also be used for authentication.\n"
+" "
+msgstr ""
+"Voit luoda uuden postituslistan kirjoittamalla\n"
+" tarpeelliset tiedot alla olevaan lomakkeeseen. Postituslistan nimeä\n"
+" käytetään postituslistalle lähetettäville viestien ensisijaisena\n"
+" osoitteena, ja nimi tulee kirjoittaa pienillä kirjaimilla. Sitä ei\n"
+" voi muuttaa listan luomisen jälkeen.\n"
+"\n"
+" <p>Alkuperäisen listan omistajan sähköpostiosoite tulee myös "
+"kirjoittaa.\n"
+" Kun lista on luotu, listan omistaja saa ilmoituksen, jossa on myös\n"
+" listan alkuperäinen salasana. Listan omistaja voi muuttaa\n"
+" salasanaa ja lisätä tai poistaa listalle muita omistajia.\n"
+"\n"
+" <p>Jos haluat, että Mailman luo listan alkuperäisen ylläpitosalasanan,\n"
+" Klikkaa 'Kyllä' Luo automaattisesti -kenttään, ja jätä\n"
+" alkuperäinen listan salasana -kenttä tyhjäksi.\n"
+"\n"
+" <p>Sinulla tulee olla asianmukaiset valtuudet luoda postituslistoja.\n"
+" Jokaisella paikalla tulee olla <em>listan luojan</em> salasana, jonka\n"
+" voit syöttää allaolevaan kenttään. Huomaa, että ylläpitäjän salasanaa\n"
+" voidaan käyttää myös autentikointiin.\n"
+" "
+
+#: Mailman/Cgi/create.py:309
+msgid "List Identity"
+msgstr "Listan identiteetti"
+
+#: Mailman/Cgi/create.py:312
+msgid "Name of list:"
+msgstr "Listan nimi:"
+
+#: Mailman/Cgi/create.py:317
+msgid "Initial list owner address:"
+msgstr "Alkuperäisen listan omistajan osoite:"
+
+#: Mailman/Cgi/create.py:326
+msgid "Auto-generate initial list password?"
+msgstr "Luo automaattisesti alkuperäinen listan salasana?"
+
+#: Mailman/Cgi/create.py:333
+msgid "Initial list password:"
+msgstr "Listan alkuperäinen salasana:"
+
+#: Mailman/Cgi/create.py:338
+msgid "Confirm initial password:"
+msgstr "Vahvista alkuperäinen salasana:"
+
+#: Mailman/Cgi/create.py:348
+msgid "List Characteristics"
+msgstr "Listan ominaisuudet"
+
+#: Mailman/Cgi/create.py:352
+msgid ""
+"Should new members be quarantined before they\n"
+" are allowed to post unmoderated to this list? Answer <em>Yes</em> to "
+"hold\n"
+" new member postings for moderator approval by default."
+msgstr ""
+"Tuleeko uudet jäsenet eristää ennenkuin he voivat\n"
+"lähettää viestejä ilman ylläpidon tarkistusta tälle listalle?\n"
+"Vastaa <em>Kyllä</em> jos haluat pitää oletuksena ylläpidon tarkistuksen."
+
+#: Mailman/Cgi/create.py:383
+msgid ""
+"Initial list of supported languages. <p>Note that if you do not\n"
+" select at least one initial language, the list will use the server\n"
+" default language of %(deflang)s"
+msgstr ""
+"Alkuperäinen lista tuetuista kielistä. <p>Huomaa, että jos et valitse\n"
+" kieltä, listaa käytetään palvelimen\n"
+" oletuskielellä %(deflang)s"
+
+#: Mailman/Cgi/create.py:394
+msgid "Send \"list created\" email to list owner?"
+msgstr "Lähetä \"lista luotu\" sähköposti listan omistajalle?"
+
+#: Mailman/Cgi/create.py:403
+msgid "List creator's (authentication) password:"
+msgstr "Listan luojan (tarkistus) salasana:"
+
+#: Mailman/Cgi/create.py:408
+msgid "Create List"
+msgstr "Luo lista"
+
+#: Mailman/Cgi/create.py:409
+msgid "Clear Form"
+msgstr "Tyhjennä lomake"
+
+#: Mailman/Cgi/edithtml.py:43
+msgid "General list information page"
+msgstr "Yleinen listan tietosivu"
+
+#: Mailman/Cgi/edithtml.py:44
+msgid "Subscribe results page"
+msgstr "Liity tulokset -sivulle"
+
+#: Mailman/Cgi/edithtml.py:45
+msgid "User specific options page"
+msgstr "Käyttäjän määrittelysivu"
+
+#: Mailman/Cgi/edithtml.py:57
+msgid "List name is required."
+msgstr "Listan nimi vaaditaan."
+
+#: Mailman/Cgi/edithtml.py:97
+msgid "%(realname)s -- Edit html for %(template_info)s"
+msgstr "%(realname)s -- Muokkaa html-koodia %(template_info)s lle"
+
+#: Mailman/Cgi/edithtml.py:103
+msgid "Edit HTML : Error"
+msgstr "Muokkaa HTML : Virhe"
+
+#: Mailman/Cgi/edithtml.py:104
+msgid "%(safetemplatename)s: Invalid template"
+msgstr "%(safetemplatename)s: Viallinen mallipohja"
+
+#: Mailman/Cgi/edithtml.py:109 Mailman/Cgi/edithtml.py:110
+msgid "%(realname)s -- HTML Page Editing"
+msgstr "%(realname)s -- HTML sivun muokkaus"
+
+#: Mailman/Cgi/edithtml.py:111
+msgid "Select page to edit:"
+msgstr "Valitse muokattava sivu:"
+
+#: Mailman/Cgi/edithtml.py:137
+msgid "View or edit the list configuration information."
+msgstr "Näytä tai muokkaa listan määritystietoja."
+
+#: Mailman/Cgi/edithtml.py:145
+msgid "When you are done making changes..."
+msgstr "Kun olet tehnyt muutokset..."
+
+#: Mailman/Cgi/edithtml.py:146
+msgid "Submit Changes"
+msgstr "Lähetä muutokset"
+
+#: Mailman/Cgi/edithtml.py:153
+msgid "Can't have empty html page."
+msgstr "Hmtl-sivu ei voi olla tyhjä."
+
+#: Mailman/Cgi/edithtml.py:154
+msgid "HTML Unchanged."
+msgstr "HTML:ää ei muutettu."
+
+#: Mailman/Cgi/edithtml.py:169
+msgid "HTML successfully updated."
+msgstr "HMTL on muutettu onnistuneesti."
+
+#: Mailman/Cgi/listinfo.py:71
+msgid "%(hostname)s Mailing Lists"
+msgstr "%(hostname)s postituslistat"
+
+#: Mailman/Cgi/listinfo.py:103
+msgid ""
+"<p>There currently are no publicly-advertised\n"
+" %(mailmanlink)s mailing lists on %(hostname)s."
+msgstr ""
+"<p>Palvelimella %(hostname)s ei ole julkisia\n"
+" %(mailmanlink)s postituslistoja."
+
+#: Mailman/Cgi/listinfo.py:107
+msgid ""
+"<p>Below is a listing of all the public mailing lists on\n"
+" %(hostname)s. Click on a list name to get more information "
+"about\n"
+" the list, or to subscribe, unsubscribe, and change the "
+"preferences\n"
+" on your subscription."
+msgstr ""
+"<p>Alla on lista kaikista julkisista postituslistoista\n"
+" palvelimella %(hostname)s. Klikkaa listan nimeä saadaksesi\n"
+" lisätietoja listasta, liittyäksesi, erotaksesi, tai\n"
+" muuttaaksesi liittytymisasetuksiasi."
+
+#: Mailman/Cgi/listinfo.py:113
+msgid "right"
+msgstr "oikea"
+
+#: Mailman/Cgi/listinfo.py:116
+#, fuzzy
+msgid ""
+" To visit the general information page for an unadvertised list,\n"
+" open a URL similar to this one, but with a '/' and the %(adj)s\n"
+" list name appended.\n"
+" <p>List administrators, you can visit "
+msgstr ""
+" Vieraillaksesi piilotetun listan infosivulla,\n"
+" URL on samanlainen kuin tämä, mutta '/' ja\n"
+" %(adj)s listan nimellä lisättynä.\n"
+" <p>Listan ylläpitäjät, voitte vierailla "
+
+#: Mailman/Cgi/listinfo.py:121
+msgid "the list admin overview page"
+msgstr "listan ylläpidon yhteenvetosivu"
+
+#: Mailman/Cgi/listinfo.py:122
+msgid ""
+" to find the management interface for your list.\n"
+" <p>Send questions or comments to "
+msgstr ""
+" löytääksesi hallintaliittymän listallesi.\n"
+" <p>Lähetä kysymykset tai kommentit "
+
+#: Mailman/Cgi/listinfo.py:187
+msgid "Edit Options"
+msgstr "Muokkaa valintoja"
+
+#: Mailman/Cgi/listinfo.py:194 Mailman/Cgi/options.py:767
+#: Mailman/Cgi/roster.py:111
+msgid "View this page in"
+msgstr "Näytä tämä sivu"
+
+#: Mailman/Cgi/options.py:51 Mailman/Cgi/options.py:68
+msgid "CGI script error"
+msgstr "CGI ajon virhe"
+
+#: Mailman/Cgi/options.py:54
+msgid "Invalid options to CGI script."
+msgstr "Virheelliset CGI ajon valinnat"
+
+#: Mailman/Cgi/options.py:96
+#, fuzzy
+msgid "No address given"
+msgstr "Osoitetta ei annettu"
+
+#: Mailman/Cgi/options.py:108 Mailman/Cgi/options.py:155
+#: Mailman/Cgi/options.py:177
+msgid "No such member: %(safeuser)s."
+msgstr "Ei sellaista jäsentä: %(safeuser)s."
+
+#: Mailman/Cgi/options.py:150 Mailman/Cgi/options.py:160
+msgid "The confirmation email has been sent."
+msgstr "Vahvistussähköposti on lähetetty."
+
+#: Mailman/Cgi/options.py:171 Mailman/Cgi/options.py:183
+#: Mailman/Cgi/options.py:226
+msgid "A reminder of your password has been emailed to you."
+msgstr "Muistutus salasanastasi on lähetetty sähköpostiisi."
+
+#: Mailman/Cgi/options.py:200
+msgid "Authentication failed."
+msgstr "Tunnistautuminen epäonnistui."
+
+#: Mailman/Cgi/options.py:232
+msgid "List subscriptions for %(user)s on %(hostname)s"
+msgstr "%(user)s, listojen jäsenyydet palvelimella %(hostname)s"
+
+#: Mailman/Cgi/options.py:235
+msgid ""
+"Click on a link to visit your options page for the\n"
+" requested mailing list."
+msgstr ""
+"Napsauta linkkiä mennäksesi tämän postituslistan\n"
+" valintasivulle."
+
+#: Mailman/Cgi/options.py:284
+msgid "Addresses did not match!"
+msgstr "Osoitteet eivät täsmänneet!"
+
+#: Mailman/Cgi/options.py:289
+msgid "You are already using that email address"
+msgstr "Käytät jo sitä sähköpostiosoitetta"
+
+#: Mailman/Cgi/options.py:301
+#, fuzzy
+msgid ""
+"The new address you requested %(newaddr)s is already a member of the\n"
+"%(listname)s mailing list, however you have also requested a global change "
+"of\n"
+"address. Upon confirmation, any other mailing list containing the address\n"
+"%(user)s will be changed. "
+msgstr ""
+"Uusi pyytämäsi osoite %(newaddr)s on jo jäsenenä %(listname)s\n"
+"postituslistalla.\n"
+"Olet myös pyytänyt globaalia muutosta osoitteelle. Varmistuksen jälkeen "
+"myös\n"
+"kaikki muut listat suorittavat kyseiselle osoitteelle osoitteenmuutoksen."
+
+#: Mailman/Cgi/options.py:310
+#, fuzzy
+msgid "The new address is already a member: %(newaddr)s"
+msgstr "%(newaddr)s on jo listan jäsen."
+
+#: Mailman/Cgi/options.py:316
+msgid "Addresses may not be blank"
+msgstr "Osoitteet eivät voi olla tyhjiä"
+
+#: Mailman/Cgi/options.py:328
+#, fuzzy
+msgid "A confirmation message has been sent to %(newaddr)s. "
+msgstr "Vahvistusviesti on lähetetty osoitteeseen %(newaddr)s"
+
+#: Mailman/Cgi/options.py:337
+msgid "Bad email address provided"
+msgstr "Väärä sähköpostiosoite annettu"
+
+#: Mailman/Cgi/options.py:339
+msgid "Illegal email address provided"
+msgstr "Virheellinen sähköpostiosoite"
+
+#: Mailman/Cgi/options.py:341
+msgid "%(newaddr)s is already a member of the list."
+msgstr "%(newaddr)s on jo listan jäsen."
+
+#: Mailman/Cgi/options.py:350
+#, fuzzy
+msgid "Member name successfully changed. "
+msgstr "Jäsenen nimi on muutettu."
+
+#: Mailman/Cgi/options.py:361
+msgid "Passwords may not be blank"
+msgstr "Salasanat eivät voi olla tyhjiä"
+
+#: Mailman/Cgi/options.py:366
+msgid "Passwords did not match!"
+msgstr "Salasanat eivät täsmää!"
+
+#: Mailman/Cgi/options.py:381 Mailman/Commands/cmd_password.py:79
+#: Mailman/Commands/cmd_password.py:105
+msgid "Password successfully changed."
+msgstr "Salasana muutettu."
+
+#: Mailman/Cgi/options.py:390
+msgid ""
+"You must confirm your unsubscription request by turning\n"
+" on the checkbox below the <em>Unsubscribe</em> button. You\n"
+" have not been unsubscribed!"
+msgstr ""
+"Sinun täytyy vahvistaa irtisanoutumisesi aktivoimalla\n"
+" alla oleva <em>Irtisano</em> näppäin.\n"
+" Sinua ei ole irtisanottu!"
+
+#: Mailman/Cgi/options.py:422
+msgid "Unsubscription results"
+msgstr "Irtisanomisen tulokset"
+
+#: Mailman/Cgi/options.py:426
+msgid ""
+"Your unsubscription request has been received and\n"
+" forwarded on to the list moderators for approval. You will\n"
+" receive notification once the list moderators have made their\n"
+" decision."
+msgstr ""
+"Irtisanoutumispyyntösi on on saatu ja lähetetty listan\n"
+" pääkäyttäjälle hyväksyttäväksi. Saat ilmoituksen, kun\n"
+" listan pääkäyttäjien päätöksestä.\n"
+" "
+
+#: Mailman/Cgi/options.py:431
+msgid ""
+"You have been successfully unsubscribed from the\n"
+" mailing list %(fqdn_listname)s. If you were receiving digest\n"
+" deliveries you may get one more digest. If you have any "
+"questions\n"
+" about your unsubscription, please contact the list owners at\n"
+" %(owneraddr)s."
+msgstr ""
+"Sinut on irtisanottu onnistuneesti\n"
+" %(fqdn_listname)s postituslistalta. Jos sait lukemisto-\n"
+" tyyppisiä postituksia, saatat saada vielä yhden lisää.\n"
+" Jos sinulla on irtisanomistasi koskevia kysymyksiä, ota\n"
+" yhteyttä listan omistajaan %(owneraddr)s."
+
+#: Mailman/Cgi/options.py:582
+msgid ""
+"The list administrator has disabled digest delivery for\n"
+" this list, so your delivery option has not been set. However "
+"your\n"
+" other options have been set successfully."
+msgstr ""
+"Listan ylläpitäjä on ottanyt lukemistot pois käytöstä\n"
+" tältä listalta, joten jakelumäärityksiä ole asetettu. Sen \n"
+" sijaan muut määritykset on asetettu."
+
+#: Mailman/Cgi/options.py:586
+msgid ""
+"The list administrator has disabled non-digest delivery\n"
+" for this list, so your delivery option has not been set. "
+"However\n"
+" your other options have been set successfully."
+msgstr ""
+"Listan ylläpitäjä on ottanut pois käytöstä lukemistottomat lähetykset\n"
+" tältä listalta, joten lähetysmääritystäsi ei ole asetettu. \n"
+" Sen sijaan muut määritykset on asetettu."
+
+#: Mailman/Cgi/options.py:590
+msgid "You have successfully set your options."
+msgstr "Valintasi on asetettu onnistuneesti."
+
+#: Mailman/Cgi/options.py:593
+msgid "You may get one last digest."
+msgstr "Saatat saada vielä viimeisen lukemiston."
+
+#: Mailman/Cgi/options.py:662
+msgid "<em>Yes, I really want to unsubscribe</em>"
+msgstr "<em>Kyllä, haluan varmasti irtisanoutua</em>"
+
+#: Mailman/Cgi/options.py:666
+msgid "Change My Password"
+msgstr "Muuta salasanani"
+
+#: Mailman/Cgi/options.py:669
+msgid "List my other subscriptions"
+msgstr "Näytä muut liitymistietoni"
+
+#: Mailman/Cgi/options.py:675
+msgid "Email My Password To Me"
+msgstr "Lähetä salasanani sähköpostina minulle"
+
+#: Mailman/Cgi/options.py:677
+msgid "password"
+msgstr "salasana"
+
+#: Mailman/Cgi/options.py:679
+msgid "Log out"
+msgstr "Kirjaudu ulos"
+
+#: Mailman/Cgi/options.py:681
+msgid "Submit My Changes"
+msgstr "Lähetä muutokseni"
+
+#: Mailman/Cgi/options.py:693
+msgid "days"
+msgstr "päivää"
+
+#: Mailman/Cgi/options.py:695
+msgid "day"
+msgstr "päivä"
+
+#: Mailman/Cgi/options.py:696
+msgid "%(days)d %(units)s"
+msgstr "%(days)d %(units)s"
+
+#: Mailman/Cgi/options.py:702
+msgid "Change My Address and Name"
+msgstr "Muuta osoitteeni ja nimeni"
+
+#: Mailman/Cgi/options.py:726
+msgid "<em>No topics defined</em>"
+msgstr "<em>Aihetta ei ole määritelty</em>"
+
+#: Mailman/Cgi/options.py:734
+msgid ""
+"\n"
+"You are subscribed to this list with the case-preserved address\n"
+"<em>%(cpuser)s</em>."
+msgstr ""
+"\n"
+"Olet liittynyt tälle listalle aihekohtaisella osoitteella\n"
+"<em>%(cpuser)s</em>."
+
+#: Mailman/Cgi/options.py:748
+msgid "%(realname)s list: member options login page"
+msgstr "%(realname)s listan: jäsenen sisäänkirjautumissivu"
+
+#: Mailman/Cgi/options.py:749
+msgid "email address and "
+msgstr "sähköpostiosoite ja"
+
+#: Mailman/Cgi/options.py:751
+msgid "%(realname)s list: member options for user %(user)s"
+msgstr "%(realname)s lista: jäsenen %(user)s valinnat"
+
+#: Mailman/Cgi/options.py:777
+#, fuzzy
+msgid ""
+"In order to change your membership option, you must\n"
+" first log in by giving your %(extra)smembership password in the section\n"
+" below. If you don't remember your membership password, you can have it\n"
+" emailed to you by clicking on the button below. If you just want to\n"
+" unsubscribe from this list, click on the <em>Unsubscribe</em> button and "
+"a\n"
+" confirmation message will be sent to you.\n"
+"\n"
+" <p><strong><em>Important:</em></strong> From this point on, you must "
+"have\n"
+" cookies enabled in your browser, otherwise none of your changes will "
+"take\n"
+" effect.\n"
+" "
+msgstr ""
+"Muuttaaksesi jäsenyytesi valintoja, sinun täytyy ensin\n"
+" kirjautua antamalla %(extra)s jäsenyyden salasana alla oleviin\n"
+" kohtiin. Jos et muista salasanaasi, saat sen sähköpostina\n"
+" osoitteeseesi klikkaamalla alla olevaa painiketta. Jos haluat vain\n"
+" irtisanoutua tältä listalta, paina <em>Irtisano</em> painiketta ja\n"
+" sinulle lähetetään vahvistusviesti.\n"
+"\n"
+" <p><strong><em>Tärkeää:</em></strong> Tästä eteenpäin selaimessasi\n"
+" täytyy olla evästeet sallittu, muuten mikään muutoksista ei tule \n"
+" voimaan.\n"
+"\n"
+" <p>Mailmanin jäsenyyden valinnoissa käytetään istunnon evästeitä, \n"
+" joten sinun ei tarvitse vahvistaa jokaista toimintoa erikseen.\n"
+" Eväste vanhenee automaattisesti selaimesta poistuttaessa, tai voit\n"
+" erikseen vanhentaa evästeen painamalla <em>Kirjaudu ulos</em>linkkiä\n"
+" (jonka näet onnistuneen sisäänkirjautumisen jälkeen).\n"
+" "
+
+#: Mailman/Cgi/options.py:791
+msgid "Email address:"
+msgstr "Sähköpostiosoite:"
+
+#: Mailman/Cgi/options.py:795
+msgid "Password:"
+msgstr "Salasana:"
+
+#: Mailman/Cgi/options.py:797
+msgid "Log in"
+msgstr "Kirjaudu sisään"
+
+#: Mailman/Cgi/options.py:805
+msgid ""
+"By clicking on the <em>Unsubscribe</em> button, a\n"
+" confirmation message will be emailed to you. This message will have a\n"
+" link that you should click on to complete the removal process (you can\n"
+" also confirm by email; see the instructions in the confirmation\n"
+" message)."
+msgstr ""
+"Klikkaamalla <em>Irtisano</em> painiketta, sinulle\n"
+" lähetetään sähköpostina vahvistusviesti. Viestissä on linkki\n"
+" jota klikkamalla suoritat poiston loppuun (voit myös\n"
+" vahvistaa sähköpostina; katso ohjeet vahvistusviestistä.\n"
+" "
+
+#: Mailman/Cgi/options.py:813
+msgid "Password reminder"
+msgstr "Salasanan muistuttaja"
+
+#: Mailman/Cgi/options.py:817
+msgid ""
+"By clicking on the <em>Remind</em> button, your\n"
+" password will be emailed to you."
+msgstr ""
+"Klikkaamalla <em>Muistuta</em> painiketta,\n"
+" salasanasi lähetetään sinulle sähköpostina."
+
+#: Mailman/Cgi/options.py:820
+msgid "Remind"
+msgstr "Muistuta"
+
+#: Mailman/Cgi/options.py:920
+msgid "<missing>"
+msgstr "<puuttuu>"
+
+#: Mailman/Cgi/options.py:931
+msgid "Requested topic is not valid: %(topicname)s"
+msgstr "Pyydetty aihe ei kelpaa: %(topicname)s"
+
+#: Mailman/Cgi/options.py:936
+msgid "Topic filter details"
+msgstr "Aiheen suodattimen tarkemmat tiedot"
+
+#: Mailman/Cgi/options.py:939
+msgid "Name:"
+msgstr "Nimi:"
+
+#: Mailman/Cgi/options.py:941
+msgid "Pattern (as regexp):"
+msgstr "Malli (kuten regexp):"
+
+#: Mailman/Cgi/private.py:61
+msgid "Private Archive Error"
+msgstr "Yksityinen arkistointivirhe"
+
+#: Mailman/Cgi/private.py:62
+msgid "You must specify a list."
+msgstr "Lista täytyy määritellä."
+
+#: Mailman/Cgi/private.py:99
+msgid "Private Archive Error - %(msg)s"
+msgstr "Yksityinen arkistointivirhe - %(msg)s"
+
+#: Mailman/Cgi/private.py:154
+msgid "Private archive file not found"
+msgstr "Yksityistä arkistointitiedostoa ei löydy"
+
+#: Mailman/Cgi/rmlist.py:81
+msgid "You're being a sneaky list owner!"
+msgstr "Olet listan salainen omistaja!"
+
+#: Mailman/Cgi/rmlist.py:119
+msgid "You are not authorized to delete this mailing list"
+msgstr "Sinulla ei ole oikeutta tuhota tätä postituslistaa"
+
+#: Mailman/Cgi/rmlist.py:160
+msgid "Mailing list deletion results"
+msgstr "Postituslistan tuhoamisen tulokset"
+
+#: Mailman/Cgi/rmlist.py:167
+msgid ""
+"You have successfully deleted the mailing list\n"
+" <b>%(listname)s</b>."
+msgstr ""
+"Olet tuhonnut postituslistan\n"
+" <b>%(listname)s</b> onnistuneesti."
+
+#: Mailman/Cgi/rmlist.py:171
+msgid ""
+"There were some problems deleting the mailing list\n"
+" <b>%(listname)s</b>. Contact your site administrator at %(sitelist)"
+"s\n"
+" for details."
+msgstr ""
+
+#: Mailman/Cgi/rmlist.py:188
+msgid "Permanently remove mailing list <em>%(realname)s</em>"
+msgstr "Pysyvä <em>%(realname)s</em> postituslistan poistaminen"
+
+#: Mailman/Cgi/rmlist.py:202
+msgid ""
+"This page allows you as the list owner, to permanent\n"
+" remove this mailing list from the system. <strong>This action is not\n"
+" undoable</strong> so you should undertake it only if you are absolutely\n"
+" sure this mailing list has served its purpose and is no longer "
+"necessary.\n"
+"\n"
+" <p>Note that no warning will be sent to your list members and after "
+"this\n"
+" action, any subsequent messages sent to the mailing list, or any of its\n"
+" administrative addreses will bounce.\n"
+"\n"
+" <p>You also have the option of removing the archives for this mailing "
+"list\n"
+" at this time. It is almost always recommended that you do\n"
+" <strong>not</strong> remove the archives, since they serve as the\n"
+" historical record of your mailing list.\n"
+"\n"
+" <p>For your safety, you will be asked to reconfirm the list password.\n"
+" "
+msgstr ""
+"Listan omistajana voit tällä sivulla poistaa tämän\n"
+" postituslistan järjestelmästä. <strong>Tätä toimenpidettä ei\n"
+" voi peruuttaa</strong> joten harkitse tarkkaan, onko tämä lista\n"
+" tehnyt tehtävänsä eikä sitä enää tarvita.\n"
+"\n"
+" <p>Huomioi, että listan jäsenille ei lähetetä varoitusta ja tämän\n"
+" toiminnon jälkeen listalle tai ylläpito-osoitteisiin lähetettävät\n"
+" viestit palautuvat takaisin.\n"
+"\n"
+" <p>Voit samalla myös poistaa tämän listan arkistot.\n"
+" Yleensä <strong>ei</strong> ole suositeltavaa poistaa\n"
+" arkistoja, koska ne sisältävät listan\n"
+" historiatietoja.\n"
+"\n"
+" <p>Varmuudeksi sinulta pyydettään listan salasanan uudelleenvahvistus.\n"
+" "
+
+#: Mailman/Cgi/rmlist.py:223
+msgid "List password:"
+msgstr "Listan salasana"
+
+#: Mailman/Cgi/rmlist.py:227
+msgid "Also delete archives?"
+msgstr "Poistetaanko myös arkistot?"
+
+#: Mailman/Cgi/rmlist.py:235
+msgid "<b>Cancel</b> and return to list administration"
+msgstr "<b>Peruuta</b> ja palaa listan ylläpitoon"
+
+#: Mailman/Cgi/rmlist.py:238
+msgid "Delete this list"
+msgstr "Poista tämä lista"
+
+#: Mailman/Cgi/roster.py:48 Mailman/Cgi/subscribe.py:50
+msgid "Invalid options to CGI script"
+msgstr "CGI-koodissa on väärä välinta"
+
+#: Mailman/Cgi/roster.py:99
+msgid "%(realname)s roster authentication failed."
+msgstr "%(realname)s luettelon todennus epäonnistui"
+
+#: Mailman/Cgi/roster.py:127 Mailman/Cgi/roster.py:128
+#: Mailman/Cgi/subscribe.py:49 Mailman/Cgi/subscribe.py:60
+msgid "Error"
+msgstr "Virhe"
+
+#: Mailman/Cgi/subscribe.py:109
+msgid "You must supply a valid email address."
+msgstr "Sinun täytyy antaa kunnollinen sähköpostiosoite."
+
+#: Mailman/Cgi/subscribe.py:122
+msgid "You may not subscribe a list to itself!"
+msgstr "Et voi liittää listaa itseensä!"
+
+#: Mailman/Cgi/subscribe.py:131
+msgid "If you supply a password, you must confirm it."
+msgstr "Jos annat salasanan, sinun täytyy vahvistaa se."
+
+#: Mailman/Cgi/subscribe.py:133
+msgid "Your passwords did not match."
+msgstr "Salasanasi eivät täsmää."
+
+#: Mailman/Cgi/subscribe.py:167
+msgid ""
+"Your subscription request has been received, and will soon be acted upon.\n"
+"Depending on the configuration of this mailing list, your subscription "
+"request\n"
+"may have to be first confirmed by you via email, or approved by the list\n"
+"moderator. If confirmation is required, you will soon get a confirmation\n"
+"email which contains further instructions."
+msgstr ""
+"Liittymispyyntösi on vastaanotettu ja sitä käsitellään pian.\n"
+"Tämän listan määrityksistä riippuen, liittymispyyntösi\n"
+"täytyy ehkä ensin vahvistaa sähköpostina tai listan pääkäyttäjän\n"
+"tulee se hyväksyä. Jos vahvistusta vaaditaan, saat pian sähköpostin\n"
+"jossa on tarkemmat ohjeet."
+
+#: Mailman/Cgi/subscribe.py:181
+msgid ""
+"The email address you supplied is banned from this\n"
+" mailing list. If you think this restriction is erroneous, please\n"
+" contact the list owners at %(listowner)s."
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:185
+msgid ""
+"The email address you supplied is not valid. (E.g. it must contain an\n"
+"`@'.)"
+msgstr ""
+"Antamasi sähköpostiosoite ei ole kelvollinen. (Esimerkiksi sen täytyy\n"
+"sisältää '"
+
+#: Mailman/Cgi/subscribe.py:189
+msgid ""
+"Your subscription is not allowed because the email address you gave is\n"
+"insecure."
+msgstr ""
+"Liittymisesi ei ole sallittu, koska antamasi sähköpostiosoite\n"
+"turvaton."
+
+#: Mailman/Cgi/subscribe.py:197
+msgid ""
+"Confirmation from your email address is required, to prevent anyone from\n"
+"subscribing you without permission. Instructions are being sent to you at\n"
+"%(email)s. Please note your subscription will not start until you confirm\n"
+"your subscription."
+msgstr ""
+"Listalle vaaditaan vahvistus, jotta voidaan estää ketä tahansa\n"
+"liittämästä sinua listalle ilman lupaa. Ohjeet lähetettään sinulla\n"
+"sähköpostiosoitteeseesi %(email)s. Liittymisesi ei ole voimassa ennenkuin\n"
+"vahvistat liittymisesi."
+
+#: Mailman/Cgi/subscribe.py:209
+msgid ""
+"Your subscription request was deferred because %(x)s. Your request has "
+"been\n"
+"forwarded to the list moderator. You will receive email informing you of "
+"the\n"
+"moderator's decision when they get to your request."
+msgstr ""
+"Liittymispyyntösi on viivästetty %(x)s n vuoksi. Pyyntösi on lähetetty\n"
+"edelleen listan pääkäyttäjälle. Saat sähköpostina tiedoa pääkäyttäjien \n"
+"päätöksestä, kun he saavat pyyntösi."
+
+#: Mailman/Cgi/subscribe.py:216 Mailman/Commands/cmd_confirm.py:60
+msgid "You are already subscribed."
+msgstr "Olet jo liittynyt."
+
+#: Mailman/Cgi/subscribe.py:230
+msgid "Mailman privacy alert"
+msgstr "Mailmanin yksitysyysvaroitus"
+
+#: Mailman/Cgi/subscribe.py:231
+msgid ""
+"An attempt was made to subscribe your address to the mailing list\n"
+"%(listaddr)s. You are already subscribed to this mailing list.\n"
+"\n"
+"Note that the list membership is not public, so it is possible that a bad\n"
+"person was trying to probe the list for its membership. This would be a\n"
+"privacy violation if we let them do this, but we didn't.\n"
+"\n"
+"If you submitted the subscription request and forgot that you were already\n"
+"subscribed to the list, then you can ignore this message. If you suspect "
+"that\n"
+"an attempt is being made to covertly discover whether you are a member of "
+"this\n"
+"list, and you are worried about your privacy, then feel free to send a "
+"message\n"
+"to the list administrator at %(listowner)s.\n"
+msgstr ""
+"Osoitettasi on yritetty liittää %(listaddr)s postituslistalle.\n"
+"Olet jo liittynyt tälle listalle.\n"
+"\n"
+"Huomioi, että listan jäsenyys ei ole julkista, joten on mahdollista,\n"
+"että epäsuotuisa ihminen yrittää tutkia listan jäsenyyksiä. Tämä olisi\n"
+"yksityisyyden loukkaus, jos sallisimme tehdä sellaista, mutta emme salli.\n"
+"\n"
+"Jos itse lähetit liittymispyynnön ja unohdit, että olit jo\n"
+"liittynyt listalle, voit jättää tämän viestin huomioitta. Jos epäilet, \n"
+"että joku yrittää salaa ottaa selville, oletko tämän listan jäsen\n"
+"ja olet huolestunut yksityisyydestäsi, voit vapaasti\n"
+"lähettää viestin listan ylläpitäjälle %(listowner)s.\n"
+
+#: Mailman/Cgi/subscribe.py:250
+msgid "This list does not support digest delivery."
+msgstr "Tämä lista ei tue lukemiston lähettämistä."
+
+#: Mailman/Cgi/subscribe.py:252
+msgid "This list only supports digest delivery."
+msgstr "Tämä lista tukee vain lukemistolähetyksiä. "
+
+#: Mailman/Cgi/subscribe.py:259
+msgid "You have been successfully subscribed to the %(realname)s mailing list."
+msgstr "Sinut on onnistuneesti liitetty %(realname)s postituslistalle."
+
+#: Mailman/Commands/cmd_confirm.py:17
+msgid ""
+"\n"
+" confirm <confirmation-string>\n"
+" Confirm an action. The confirmation-string is required and should "
+"be\n"
+" supplied with in mailback confirmation notice.\n"
+msgstr ""
+"\n"
+" varmista <confirmation-string>\n"
+" Varmista toiminto. Varmistusmerkkijono vaaditaan ja se on lähetetty\n"
+" sähköpostihuomautuksessa.\n"
+
+#: Mailman/Commands/cmd_confirm.py:40 Mailman/Commands/cmd_lists.py:40
+#: Mailman/Commands/cmd_set.py:133 Mailman/Commands/cmd_subscribe.py:69
+#: Mailman/Commands/cmd_unsubscribe.py:52 Mailman/Commands/cmd_who.py:65
+msgid "Usage:"
+msgstr "Käyttö:"
+
+#: Mailman/Commands/cmd_confirm.py:49
+msgid ""
+"Invalid confirmation string. Note that confirmation strings expire\n"
+"approximately %(days)s days after the initial subscription request. If "
+"your\n"
+"confirmation has expired, please try to re-submit your original request or\n"
+"message."
+msgstr ""
+
+#: Mailman/Commands/cmd_confirm.py:55
+msgid "Your request has been forwarded to the list moderator for approval."
+msgstr "Pyyntösi on lähetetty listan ylläpitäjälle hyväksyttäväksi."
+
+#: Mailman/Commands/cmd_confirm.py:63
+msgid ""
+"You are not current a member. Have you already unsubscribed or changed\n"
+"your email address?"
+msgstr ""
+"Et ole tällä hetkellä jäsen. Oletko jo irtisanoutunut ja muuttanut\n"
+"sähköpostiosoitteesi?"
+
+#: Mailman/Commands/cmd_confirm.py:73
+#, fuzzy
+msgid "Confirmation succeeded"
+msgstr "Vahvistusmerkkijono:"
+
+#: Mailman/Commands/cmd_echo.py:17
+msgid ""
+"\n"
+" echo [args]\n"
+" Simply echo an acknowledgement. Args are echoed back unchanged.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_end.py:17
+msgid ""
+"\n"
+" end\n"
+" Stop processing commands. Use this if your mail program "
+"automatically\n"
+" adds a signature file.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_help.py:17
+msgid ""
+"\n"
+" help\n"
+" Print this help message.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_help.py:47
+msgid "You can access your personal options via the following url:"
+msgstr "Pääset muuttamaan henkilökohtaisia asetuksiasi seuraavasta linkistä:"
+
+#: Mailman/Commands/cmd_info.py:17
+msgid ""
+"\n"
+" info\n"
+" Get information about this mailing list.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_info.py:39 Mailman/Commands/cmd_lists.py:62
+msgid "n/a"
+msgstr ""
+
+#: Mailman/Commands/cmd_info.py:44
+#, fuzzy
+msgid "List name: %(listname)s"
+msgstr "Listan nimessä ei saa olla \"@\": %(listname)s"
+
+#: Mailman/Commands/cmd_info.py:45
+msgid "Description: %(description)s"
+msgstr "Kuvaus:"
+
+#: Mailman/Commands/cmd_info.py:46
+msgid "Postings to: %(postaddr)s"
+msgstr "Lähetyksiä osoitteelle: %(postaddr)s"
+
+#: Mailman/Commands/cmd_info.py:47
+msgid "List Helpbot: %(requestaddr)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_info.py:48
+msgid "List Owners: %(owneraddr)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_info.py:49
+msgid "More information: %(listurl)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_join.py:17
+msgid "The `join' command is synonymous with `subscribe'.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_leave.py:17
+msgid "The `leave' command is synonymous with `unsubscribe'.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_lists.py:17
+msgid ""
+"\n"
+" lists\n"
+" See a list of the public mailing lists on this GNU Mailman server.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_lists.py:44
+#, fuzzy
+msgid "Public mailing lists at %(hostname)s:"
+msgstr "Uusi postituslista: %(listname)s"
+
+#: Mailman/Commands/cmd_lists.py:66
+msgid "%(i)3d. List name: %(realname)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_lists.py:67
+msgid " Description: %(description)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_lists.py:68
+msgid " Requests to: %(requestaddr)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_password.py:17
+msgid ""
+"\n"
+" password [<oldpassword> <newpassword>] [address=<address>]\n"
+" Retrieve or change your password. With no arguments, this returns\n"
+" your current password. With arguments <oldpassword> and "
+"<newpassword>\n"
+" you can change your password.\n"
+"\n"
+" If you're posting from an address other than your membership "
+"address,\n"
+" specify your membership address with `address=<address>' (no "
+"brackets\n"
+" around the email address, and no quotes!). Note that in this case "
+"the\n"
+" response is always sent to the subscribed address.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_password.py:51 Mailman/Commands/cmd_password.py:64
+msgid "Your password is: %(password)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_password.py:55 Mailman/Commands/cmd_password.py:68
+#: Mailman/Commands/cmd_password.py:91 Mailman/Commands/cmd_password.py:117
+#: Mailman/Commands/cmd_set.py:149 Mailman/Commands/cmd_set.py:219
+#, fuzzy
+msgid "You are not a member of the %(listname)s mailing list"
+msgstr "Sinut on irtisanottu %(realname)s postituslistalta"
+
+#: Mailman/Commands/cmd_password.py:81 Mailman/Commands/cmd_password.py:107
+msgid ""
+"You did not give the correct old password, so your password has not been\n"
+"changed. Use the no argument version of the password command to retrieve "
+"your\n"
+"current password, then try again."
+msgstr ""
+
+#: Mailman/Commands/cmd_password.py:85 Mailman/Commands/cmd_password.py:111
+msgid ""
+"\n"
+"Usage:"
+msgstr ""
+
+#: Mailman/Commands/cmd_remove.py:17
+msgid "The `remove' command is synonymous with `unsubscribe'.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:26
+msgid ""
+"\n"
+" set ...\n"
+" Set or view your membership options.\n"
+"\n"
+" Use `set help' (without the quotes) to get a more detailed list of "
+"the\n"
+" options you can change.\n"
+"\n"
+" Use `set show' (without the quotes) to view your current option\n"
+" settings.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:37
+msgid ""
+"\n"
+" set help\n"
+" Show this detailed help.\n"
+"\n"
+" set show [address=<address>]\n"
+" View your current option settings. If you're posting from an "
+"address\n"
+" other than your membership address, specify your membership address\n"
+" with `address=<address>' (no brackets around the email address, and "
+"no\n"
+" quotes!).\n"
+"\n"
+" set authenticate <password> [address=<address>]\n"
+" To set any of your options, you must include this command first, "
+"along\n"
+" with your membership password. If you're posting from an address\n"
+" other than your membership address, specify your membership address\n"
+" with `address=<address>' (no brackets around the email address, and "
+"no\n"
+" quotes!).\n"
+"\n"
+" set ack on\n"
+" set ack off\n"
+" When the `ack' option is turned on, you will receive an\n"
+" acknowledgement message whenever you post a message to the list.\n"
+"\n"
+" set digest plain\n"
+" set digest mime\n"
+" set digest off\n"
+" When the `digest' option is turned off, you will receive postings\n"
+" immediately when they are posted. Use `set digest plain' if "
+"instead\n"
+" you want to receive postings bundled into a plain text digest\n"
+" (i.e. RFC 1153 digest). Use `set digest mime' if instead you want "
+"to\n"
+" receive postings bundled together into a MIME digest.\n"
+"\n"
+" set delivery on\n"
+" set delivery off\n"
+" Turn delivery on or off. This does not unsubscribe you, but "
+"instead\n"
+" tells Mailman not to deliver messages to you for now. This is "
+"useful\n"
+" if you're going on vacation. Be sure to use `set delivery on' when\n"
+" you return from vacation!\n"
+"\n"
+" set myposts on\n"
+" set myposts off\n"
+" Use `set myposts off' to not receive copies of messages you post to\n"
+" the list. This has no effect if you're receiving digests.\n"
+"\n"
+" set hide on\n"
+" set hide off\n"
+" Use `set hide on' to conceal your email address when people request\n"
+" the membership list.\n"
+"\n"
+" set duplicates on\n"
+" set duplicates off\n"
+" Use `set duplicates off' if you want Mailman to not send you "
+"messages\n"
+" if your address is explicitly mentioned in the To: or Cc: fields of\n"
+" the message. This can reduce the number of duplicate postings you\n"
+" will receive.\n"
+"\n"
+" set reminders on\n"
+" set reminders off\n"
+" Use `set reminders off' if you want to disable the monthly password\n"
+" reminder for this mailing list.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:122
+msgid "Bad set command: %(subcmd)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:151
+msgid "Your current option settings:"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:153 Mailman/Commands/cmd_set.py:191
+#: Mailman/Commands/cmd_set.py:194 Mailman/Commands/cmd_set.py:198
+#: Mailman/Commands/cmd_set.py:202
+msgid "off"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:153 Mailman/Commands/cmd_set.py:191
+#: Mailman/Commands/cmd_set.py:194 Mailman/Commands/cmd_set.py:198
+#: Mailman/Commands/cmd_set.py:202
+#, fuzzy
+msgid "on"
+msgstr "Ei mitään"
+
+#: Mailman/Commands/cmd_set.py:154
+msgid " ack %(onoff)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:160
+#, fuzzy
+msgid " digest plain"
+msgstr "Lukemiston valinnat"
+
+#: Mailman/Commands/cmd_set.py:162
+#, fuzzy
+msgid " digest mime"
+msgstr " (Lukemisto-muoto)"
+
+#: Mailman/Commands/cmd_set.py:164
+#, fuzzy
+msgid " digest off"
+msgstr "kokoelma"
+
+#: Mailman/Commands/cmd_set.py:169
+#, fuzzy
+msgid "delivery on"
+msgstr "Viestin toimitus"
+
+#: Mailman/Commands/cmd_set.py:171 Mailman/Commands/cmd_set.py:174
+#: Mailman/Commands/cmd_set.py:177 Mailman/Commands/cmd_set.py:181
+#, fuzzy
+msgid "delivery off"
+msgstr "Viestin toimitus"
+
+#: Mailman/Commands/cmd_set.py:172
+msgid "by you"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:175
+msgid "by the admin"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:178
+msgid "due to bounces"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:186
+msgid " %(status)s (%(how)s on %(date)s)"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:192
+msgid " myposts %(onoff)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:195
+msgid " hide %(onoff)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:199
+msgid " duplicates %(onoff)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:203
+msgid " reminders %(onoff)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:224
+msgid "You did not give the correct password"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:236 Mailman/Commands/cmd_set.py:283
+msgid "Bad argument: %(arg)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:241 Mailman/Commands/cmd_set.py:261
+#, fuzzy
+msgid "Not authenticated"
+msgstr "Tunnistus epäonnistui."
+
+#: Mailman/Commands/cmd_set.py:254
+#, fuzzy
+msgid "ack option set"
+msgstr "Yksityisyysasetukset"
+
+#: Mailman/Commands/cmd_set.py:286
+#, fuzzy
+msgid "digest option set"
+msgstr "Lukemiston valinnat"
+
+#: Mailman/Commands/cmd_set.py:298
+#, fuzzy
+msgid "delivery option set"
+msgstr "Yksityisyysasetukset"
+
+#: Mailman/Commands/cmd_set.py:310
+#, fuzzy
+msgid "myposts option set"
+msgstr "Lukemiston valinnat"
+
+#: Mailman/Commands/cmd_set.py:321
+#, fuzzy
+msgid "hide option set"
+msgstr "Lukemiston valinnat"
+
+#: Mailman/Commands/cmd_set.py:333
+#, fuzzy
+msgid "duplicates option set"
+msgstr "Lukemiston valinnat"
+
+#: Mailman/Commands/cmd_set.py:345
+#, fuzzy
+msgid "reminder option set"
+msgstr "Yleiset valinnat"
+
+#: Mailman/Commands/cmd_stop.py:17
+msgid "stop is synonymous with the end command.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:17
+msgid ""
+"\n"
+" subscribe [password] [digest|nodigest] [address=<address>]\n"
+" Subscribe to this mailing list. Your password must be given to\n"
+" unsubscribe or change your options, but if you omit the password, "
+"one\n"
+" will be generated for you. You may be periodically reminded of "
+"your\n"
+" password.\n"
+"\n"
+" The next argument may be either: `nodigest' or `digest' (no "
+"quotes!).\n"
+" If you wish to subscribe an address other than the address you sent\n"
+" this request from, you may specify `address=<address>' (no brackets\n"
+" around the email address, and no quotes!)\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:62
+msgid "Bad digest specifier: %(arg)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:84
+msgid "No valid address found to subscribe"
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:102
+msgid ""
+"The email address you supplied is banned from this mailing list.\n"
+"If you think this restriction is erroneous, please contact the list\n"
+"owners at %(listowner)s."
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:108
+msgid ""
+"Mailman won't accept the given email address as a valid address.\n"
+"(E.g. it must have an @ in it.)"
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:113
+msgid ""
+"Your subscription is not allowed because\n"
+"the email address you gave is insecure."
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:118
+msgid "You are already subscribed!"
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:122
+msgid "No one can subscribe to the digest of this list!"
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:125
+msgid "This list only supports digest subscriptions!"
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:131
+msgid ""
+"Your subscription request has been forwarded to the list administrator\n"
+"at %(listowner)s for review."
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:136
+#, fuzzy
+msgid "Subscription request succeeded."
+msgstr "Liittymispyyntö vahvistettu"
+
+#: Mailman/Commands/cmd_unsubscribe.py:17
+msgid ""
+"\n"
+" unsubscribe [password] [address=<address>]\n"
+" Unsubscribe from the mailing list. If given, your password must "
+"match\n"
+" your current password. If omitted, a confirmation email will be "
+"sent\n"
+" to the unsubscribing address. If you wish to unsubscribe an address\n"
+" other than the address you sent this request from, you may specify\n"
+" `address=<address>' (no brackets around the email address, and no\n"
+" quotes!)\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_unsubscribe.py:62
+#, fuzzy
+msgid "%(address)s is not a member of the %(listname)s mailing list"
+msgstr "Sinut on irtisanottu %(realname)s postituslistalta"
+
+#: Mailman/Commands/cmd_unsubscribe.py:69
+msgid ""
+"Your unsubscription request has been forwarded to the list administrator "
+"for\n"
+"approval."
+msgstr ""
+
+#: Mailman/Commands/cmd_unsubscribe.py:84
+msgid "You gave the wrong password"
+msgstr ""
+
+#: Mailman/Commands/cmd_unsubscribe.py:87
+#, fuzzy
+msgid "Unsubscription request succeeded."
+msgstr "Irtisanomispyyntö vahvistettu"
+
+#: Mailman/Commands/cmd_who.py:29
+msgid ""
+"\n"
+" who\n"
+" See everyone who is on this mailing list.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_who.py:34
+msgid ""
+"\n"
+" who password [address=<address>]\n"
+" See everyone who is on this mailing list. The roster is limited to\n"
+" list members only, and you must supply your membership password to\n"
+" retrieve it. If you're posting from an address other than your\n"
+" membership address, specify your membership address with\n"
+" `address=<address>' (no brackets around the email address, and no\n"
+" quotes!)\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_who.py:44
+msgid ""
+"\n"
+" who password\n"
+" See everyone who is on this mailing list. The roster is limited to\n"
+" list administrators and moderators only; you must supply the list\n"
+" admin or moderator password to retrieve the roster.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_who.py:110
+#, fuzzy
+msgid "You are not allowed to retrieve the list membership."
+msgstr "Sinulla ei ole oikeutta luoda uutta postituslistaa"
+
+#: Mailman/Commands/cmd_who.py:116
+msgid "This list has no members."
+msgstr ""
+
+#: Mailman/Commands/cmd_who.py:129
+#, fuzzy
+msgid "Non-digest (regular) members:"
+msgstr "ei-lukemisto otsikko"
+
+#: Mailman/Commands/cmd_who.py:132
+#, fuzzy
+msgid "Digest members:"
+msgstr "Listan jäsenet"
+
+#: Mailman/Defaults.py:1204
+msgid "Traditional Chinese"
+msgstr "Perinteinen kiina"
+
+#: Mailman/Defaults.py:1205
+msgid "Czech"
+msgstr "Tsekki"
+
+#: Mailman/Defaults.py:1206
+msgid "German"
+msgstr "Saksa"
+
+#: Mailman/Defaults.py:1207
+msgid "English (USA)"
+msgstr "Englanti (amerikan-)"
+
+#: Mailman/Defaults.py:1208
+#, fuzzy
+msgid "Spanish (Spain)"
+msgstr "Espanja (Espanja)"
+
+#: Mailman/Defaults.py:1209
+msgid "Estonian"
+msgstr ""
+
+#: Mailman/Defaults.py:1210
+msgid "Finnish"
+msgstr ""
+
+#: Mailman/Defaults.py:1211
+msgid "French"
+msgstr "Ranska"
+
+#: Mailman/Defaults.py:1212
+msgid "Simplified Chinese"
+msgstr "Yksinkertaistettu kiina"
+
+#: Mailman/Defaults.py:1213
+msgid "Hungarian"
+msgstr "Unkari"
+
+#: Mailman/Defaults.py:1214
+msgid "Italian"
+msgstr "Italia"
+
+#: Mailman/Defaults.py:1215
+msgid "Japanese"
+msgstr "Japani"
+
+#: Mailman/Defaults.py:1216
+#, fuzzy
+msgid "Korean"
+msgstr "Norja"
+
+#: Mailman/Defaults.py:1217
+msgid "Lithuanian"
+msgstr ""
+
+#: Mailman/Defaults.py:1218
+msgid "Dutch"
+msgstr ""
+
+#: Mailman/Defaults.py:1219
+msgid "Norwegian"
+msgstr "Norja"
+
+#: Mailman/Defaults.py:1220
+msgid "Portuguese (Brazil)"
+msgstr ""
+
+#: Mailman/Defaults.py:1221
+msgid "Russian"
+msgstr "Venäjä"
+
+#: Mailman/Defaults.py:1222
+msgid "Swedish"
+msgstr ""
+
+#: Mailman/Deliverer.py:43
+msgid ""
+"Note: Since this is a list of mailing lists, administrative\n"
+"notices like the password reminder will be sent to\n"
+"your membership administrative address, %(addr)s."
+msgstr ""
+"Huomaa: Koska tämä on lista postituslistoista, ylläpidolliset\n"
+"ilmoitukset, kuten salasanan muistutukset, lähetetään\n"
+"ylläpito-osoitteeseesi %(addr)s."
+
+#: Mailman/Deliverer.py:62
+msgid " (Digest mode)"
+msgstr " (Lukemisto-muoto)"
+
+#: Mailman/Deliverer.py:68
+msgid "Welcome to the \"%(realname)s\" mailing list%(digmode)s"
+msgstr "Tervetuloa \"%(realname)s\" postituslistalle %(digmode)s"
+
+#: Mailman/Deliverer.py:77
+msgid "You have been unsubscribed from the %(realname)s mailing list"
+msgstr "Sinut on irtisanottu %(realname)s postituslistalta"
+
+#: Mailman/Deliverer.py:104
+msgid "%(listfullname)s mailing list reminder"
+msgstr "%(listfullname)s postituslistan muistuttaja"
+
+#: Mailman/Errors.py:114
+msgid "For some unknown reason"
+msgstr "Jostakin tuntemattomasta syystä"
+
+#: Mailman/Errors.py:120 Mailman/Errors.py:143
+msgid "Your message was rejected"
+msgstr "Viestisi on hylätty"
+
+#: Mailman/Gui/Archive.py:25
+msgid "Archiving Options"
+msgstr "Arkistointivalinnat"
+
+#: Mailman/Gui/Archive.py:31
+msgid "List traffic archival policies."
+msgstr "Listaa liikennöinnin arkistotavat."
+
+#: Mailman/Gui/Archive.py:34
+msgid "Archive messages?"
+msgstr "Arkistoi viestit?"
+
+#: Mailman/Gui/Archive.py:36
+msgid "private"
+msgstr "yksityinen"
+
+#: Mailman/Gui/Archive.py:36
+msgid "public"
+msgstr "julkinen"
+
+#: Mailman/Gui/Archive.py:37
+msgid "Is archive file source for public or private archival?"
+msgstr "Onko arkistointitiedot julkista vai yksityistä arkistointia varten?"
+
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Monthly"
+msgstr "Kuukausittainen"
+
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Quarterly"
+msgstr "Neljännesvuosittain"
+
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Yearly"
+msgstr "Vuosittain"
+
+#: Mailman/Gui/Archive.py:41 Mailman/Gui/Digest.py:79
+msgid "Daily"
+msgstr "Päivittäin"
+
+#: Mailman/Gui/Archive.py:41 Mailman/Gui/Digest.py:79
+msgid "Weekly"
+msgstr "Viikottain"
+
+#: Mailman/Gui/Archive.py:43
+msgid "How often should a new archive volume be started?"
+msgstr "Kuinka usein uusi arkistointikirja aloitetaan?"
+
+#: Mailman/Gui/Autoresponse.py:31
+msgid "Auto-responder"
+msgstr "Automaattivastaus"
+
+#: Mailman/Gui/Autoresponse.py:39
+#, fuzzy
+msgid ""
+"Auto-responder characteristics.<p>\n"
+"\n"
+"In the text fields below, string interpolation is performed with\n"
+"the following key/value substitutions:\n"
+"<p><ul>\n"
+" <li><b>listname</b> - <em>gets the name of the mailing list</em>\n"
+" <li><b>listurl</b> - <em>gets the list's listinfo URL</em>\n"
+" <li><b>requestemail</b> - <em>gets the list's -request address</em>\n"
+" <li><b>owneremail</b> - <em>gets the list's -owner address</em>\n"
+"</ul>\n"
+"\n"
+"<p>For each text field, you can either enter the text directly into the "
+"text\n"
+"box, or you can specify a file on your local system to upload as the text."
+msgstr ""
+"Automaattivastauksen ominaisuudet.<p>\n"
+"\n"
+"Alla oleville tekstikentille, Python %(string)s lisää \n"
+"seuraavat avaimet/arvot:\n"
+"<p><ul>\n"
+" <li><b>%(listname)s</b> - <em>saa postituslistan nimen</em>\n"
+" <li><b>%(listurl)s</b> - <em>saa listan tietojen URL-osoitten</em>\n"
+" <li><b>%(requestemail)s</b> - <em>saa listan pyyntöosoitteen</em>\n"
+" <li><b>%(adminemail)s</b> - <em>saa listan ylläpito-osoitteen</em>\n"
+" <li><b>%(owneremail)s</b> - <em>saa listan omistajan osoitteen</em>\n"
+"</ul>\n"
+"\n"
+"<p>Jokaiseen tekstikenttään voit kirjoittaa tekstin suoraan tai\n"
+"voit määritellä tiedoston paikallisesta järjestelmästä ladattavaksi."
+
+#: Mailman/Gui/Autoresponse.py:55
+msgid ""
+"Should Mailman send an auto-response to mailing list\n"
+" posters?"
+msgstr ""
+"Pitäisikö Mailmanin lähettää automaattivastaus postituslistan\n"
+" lähettäjille?"
+
+#: Mailman/Gui/Autoresponse.py:60
+msgid "Auto-response text to send to mailing list posters."
+msgstr "Postituslistan lähettäjille lähetettävä automaattivastauksen teksti."
+
+#: Mailman/Gui/Autoresponse.py:63
+#, fuzzy
+msgid ""
+"Should Mailman send an auto-response to emails sent to the\n"
+" -owner address?"
+msgstr ""
+"Pitäisikö Mailmanin lähettää automaattivastaus sähköposteihin, jotka \n"
+" lähetetään ylläpidon ja omistajan osoitteisiin?"
+
+#: Mailman/Gui/Autoresponse.py:68
+#, fuzzy
+msgid "Auto-response text to send to -owner emails."
+msgstr ""
+"Ylläpidon ja omistajan sähköpostiosoitteisiin lähetettävän "
+"automaattivastauksen teksti."
+
+#: Mailman/Gui/Autoresponse.py:71
+msgid "Yes, w/discard"
+msgstr "Kyllä, w/hylkää"
+
+#: Mailman/Gui/Autoresponse.py:71
+msgid "Yes, w/forward"
+msgstr "Kyllä, w/jatka"
+
+#: Mailman/Gui/Autoresponse.py:72
+msgid ""
+"Should Mailman send an auto-response to emails sent to the\n"
+" -request address? If you choose yes, decide whether you want\n"
+" Mailman to discard the original email, or forward it on to the\n"
+" system as a normal mail command."
+msgstr ""
+"Pitäisikö Mailmanin lähettää automaattivastaus sähköposteille, jotka \n"
+" pyytäjän osoitteeseen? Jos valitse kyllä, päätä haluatko\n"
+" Mailmanin jättävän pois alkuperäisen viestin vai lähettävän "
+"sen\n"
+" edelleen järjestelmälle normaalina sähköpostikomentona."
+
+#: Mailman/Gui/Autoresponse.py:79
+msgid "Auto-response text to send to -request emails."
+msgstr "Pyytäjän sähköpostiin lähetettävän automaattivastauksen teksti. "
+
+#: Mailman/Gui/Autoresponse.py:82
+#, fuzzy
+msgid ""
+"Number of days between auto-responses to either the mailing\n"
+" list or -request/-owner address from the same poster. Set to\n"
+" zero (or negative) for no grace period (i.e. auto-respond to\n"
+" every message)."
+msgstr ""
+"Automaattivastauksien välisten päivien määrä joko postituslistalle\n"
+" tai ylläpito/omistajan osoitteisiin samalta lähettäjältä.\n"
+" Jos määritellän nollaksi (tai negatiiviseksi luvuksi) "
+"lisäaikaa \n"
+" ei anneta (esim. automaattivastaus jokaiselle viestille)."
+
+#: Mailman/Gui/Bounce.py:26
+#, fuzzy
+msgid "Bounce processing"
+msgstr "Peruuta lähetys"
+
+#: Mailman/Gui/Bounce.py:32
+msgid ""
+"These policies control the automatic bounce processing system\n"
+" in Mailman. Here's an overview of how it works.\n"
+"\n"
+" <p>When a bounce is received, Mailman tries to extract two "
+"pieces\n"
+" of information from the message: the address of the member the\n"
+" message was intended for, and the severity of the problem "
+"causing\n"
+" the bounce. The severity can be either <em>hard</em> or\n"
+" <em>soft</em> meaning either a fatal error occurred, or a\n"
+" transient error occurred. When in doubt, a hard severity is "
+"used.\n"
+"\n"
+" <p>If no member address can be extracted from the bounce, then "
+"the\n"
+" bounce is usually discarded. Otherwise, each member is assigned "
+"a\n"
+" <em>bounce score</em> and every time we encounter a bounce from\n"
+" this member we increment the score. Hard bounces increment by "
+"1\n"
+" while soft bounces increment by 0.5. We only increment the "
+"bounce\n"
+" score once per day, so even if we receive ten hard bounces from "
+"a\n"
+" member per day, their score will increase by only 1 for that "
+"day.\n"
+"\n"
+" <p>When a member's bounce score is greater than the\n"
+" <a href=\"?VARHELP=bounce/bounce_score_threshold\">bounce score\n"
+" threshold</a>, the subscription is disabled. Once disabled, "
+"the\n"
+" member will not receive any postings from the list until their\n"
+" membership is explicitly re-enabled (either by the list\n"
+" administrator or the user). However, they will receive "
+"occasional\n"
+" reminders that their membership has been disabled, and these\n"
+" reminders will include information about how to re-enable their\n"
+" membership.\n"
+"\n"
+" <p>You can control both the\n"
+" <a href=\"?VARHELP=bounce/bounce_you_are_disabled_warnings"
+"\">number\n"
+" of reminders</a> the member will receive and the\n"
+" <a href=\"?VARHELP=bounce/"
+"bounce_you_are_disabled_warnings_interval\"\n"
+" >frequency</a> with which these reminders are sent.\n"
+"\n"
+" <p>There is one other important configuration variable; after a\n"
+" certain period of time -- during which no bounces from the "
+"member\n"
+" are received -- the bounce information is\n"
+" <a href=\"?VARHELP=bounce/bounce_info_stale_after\">considered\n"
+" stale</a> and discarded. Thus by adjusting this value, and the\n"
+" score threshold, you can control how quickly bouncing members "
+"are\n"
+" disabled. You should tune both of these to the frequency and\n"
+" traffic volume of your list."
+msgstr ""
+"Näitä sääntöjä valvoo Mailmanin automaattinen viestinpalautus-\n"
+" järjestelmä. Tässä yleiskatsaus sen toiminnasta.\n"
+"\n"
+" <p>Kun viesti palautuu, Mailman yrittää erottaa kaksi asiaa\n"
+" viestistä: sen listan jäsenen nimen,\n"
+" jolle viesti oli tarkoitettu, ja ongelman vakavuusasteen\n"
+" Vakavuusaste voi olla joko <em>vakava</em> tai\n"
+" <em>vähäinen</em> joka tarkoittaa joko kohtalokasta, tai \n"
+" hetkellistä virhettä. Jos vakavuusaste on epäselvä, käytetään "
+"vakavaa.\n"
+"\n"
+" <p>Jos palautuneesta viestistä ei voida erottaa listan jäsenen "
+"nimeä, palautettu viesti\n"
+" tavallisesti hylätään. Muussa tapauksessa jokainen jäsen saa \n"
+" <em>palautettujen viestien määrän</em> ja joka kerta kun saamme "
+"palautetun viestin\n"
+" tältä jäseneltä, lisäämme määrää. Vakavat palautukset määrää 1:"
+"llä\n"
+" vähäiset virheet kasvattavat määrää 0.5:llä. Lisämme "
+"palautettujen viestien määrää\n"
+" kerran päivässä, eli jos esimerkiksi saamme kymmenen palautettua "
+"viestiä\n"
+" jäseneltä päivässä, määrä kasvaa vain 1:llä sen päivän osalta.\n"
+"\n"
+" <p>Jos jäsenen palautettujen viestien lukumäärä on suurempi "
+"kuin\n"
+" <a href=\"?VARHELP=bounce/bounce_score_threshold\">\n"
+" määräraja</a>, jäsenyyns lukitaan. Jäsenyyden lukitsemisen "
+"jälkeen\n"
+" jäsen ei saa mitään listalle lähetettyjä viestejä ennenkuin \n"
+" heidän jäsenyys on nimenomaan aktivoitu uudelleen (joko listan \n"
+" ylläpitäjän tai käyttäjän toimesta). He saavat kuitenkin "
+"ajoittain\n"
+" muistutuksia, että heidän jäsenyys on lukittuna. Nämä\n"
+" muistutukset sisältävät myös tiedon siitä, miten jäsenyys\n"
+" voidaan aktivoida.\n"
+"\n"
+" <p>Voit ohjata sekä\n"
+" <a href=\"?VARHELP=bounce/bounce_you_are_disabled_warnings"
+"\">muistutuksien\n"
+" määrää</a> jotka käyttäjä saa että\n"
+" <a href=\"?VARHELP=bounce/"
+"bounce_you_are_disabled_warnings_interval\"\n"
+" >aikavälin</a> kuinka usein käyttäjälle lähetetään "
+"muistutuksia.\n"
+"\n"
+" <p>Lisäksi on yksi toinen tärkeä määritysmuuttuja; tietyn\n"
+" ajan kuluttua -- kun palautettuja viestejä ei ole saatu\n"
+" -- palautettujen viestien tiedot\n"
+" <a href=\"?VARHELP=bounce/bounce_info_stale_after\">katsotaan\n"
+" vanhentuneiksi</a> ja ne nollataan. Joten muokkaamalla tätä, "
+"ja\n"
+" määrärajaa, voit määritellä kuinka nopeasti palautettuja "
+"viestejä lähettävät jäsenet\n"
+" lukitaan. Sinun tulee säätää nämä arvot suhteessa\n"
+" kyseessä olevan listan liikenteeseeen."
+
+#: Mailman/Gui/Bounce.py:75
+#, fuzzy
+msgid "Bounce detection sensitivity"
+msgstr "Palautettujen viestien havaitseminen"
+
+#: Mailman/Gui/Bounce.py:78
+msgid "Should Mailman perform automatic bounce processing?"
+msgstr ""
+"Pitäisikö Mailmanin suorittaa automaattinen palautettujen viestien tarkastus"
+
+#: Mailman/Gui/Bounce.py:79
+msgid ""
+"By setting this value to <em>No</em>, you disable all\n"
+" automatic bounce processing for this list, however bounce\n"
+" messages will still be discarded so that the list "
+"administrator\n"
+" isn't inundated with them."
+msgstr ""
+"Asettamalla tämä arvo <em>Ei</em>, otat pois käytöstä\n"
+" kaikki tällä listalla olevat automaattiset palautettujen, "
+"however bounce\n"
+" viestien tarkistukset, kuitenkin palautetut viestit hylätään "
+"yhä niin, että \n"
+" listan ylläpitäjä ei huku niihin."
+
+#: Mailman/Gui/Bounce.py:85
+msgid ""
+"The maximum member bounce score before the member's\n"
+" subscription is disabled. This value can be a floating point\n"
+" number."
+msgstr ""
+"Palautettujen viestien enimmäismäärä ennekuin jäsenyys\n"
+" lukitaan. Arvo voi olla\n"
+" liukuluku."
+
+#: Mailman/Gui/Bounce.py:90
+msgid ""
+"The number of days after which a member's bounce information\n"
+" is discarded, if no new bounces have been received in the\n"
+" interim. This value must be an integer."
+msgstr ""
+"Päivien lukumäärä, jonka jälkeen jäsenen palautettujen viestien tiedot\n"
+" nollataan, jos uusia palautettuja viestejä ei ole saatu sillä\n"
+" välin. Tämän arvon täytyy olla kokonaisluku."
+
+#: Mailman/Gui/Bounce.py:95
+msgid ""
+"How many <em>Your Membership Is Disabled</em> warnings a\n"
+" disabled member should get before their address is removed "
+"from\n"
+" the mailing list. Set to 0 to immediately remove an address "
+"from\n"
+" the list once their bounce score exceeds the threshold. This\n"
+" value must be an integer."
+msgstr ""
+"Kuinka monta <em>Jäsenyytesi on lukittu</em> varoitusta\n"
+" jäsen saa ennenkuin osoite poistetaan\n"
+" postituslistalta. Aseta arvoksi 0, jos haluat että osoite "
+"poistetaan\n"
+" listalta heti, kun palautettujen viestien määräraja tulee "
+"täyteen.\n"
+" Tämä arvo tulee olla kokonaisluku."
+
+#: Mailman/Gui/Bounce.py:102
+msgid ""
+"The number of days between sending the <em>Your Membership\n"
+" Is Disabled</em> warnings. This value must be an integer."
+msgstr ""
+"Aikaväli (päivinä), jolloin <em>Jäsenyytesi on \n"
+" lukittu</em> varoitukset lähtetään. Tämä arvo tulee "
+"ollakokonaisluku."
+
+#: Mailman/Gui/Bounce.py:105 Mailman/Gui/General.py:257
+msgid "Notifications"
+msgstr "Ilmoitukset"
+
+#: Mailman/Gui/Bounce.py:109
+msgid ""
+"Should Mailman send you, the list owner, any bounce messages\n"
+" that failed to be detected by the bounce processor? <em>Yes</"
+"em>\n"
+" is recommended."
+msgstr ""
+"Pitäisikö Mailmanin lähettää sinulle, listan omistajana, yhtään palautettua\n"
+" viestiä, joita ei ole havaittu palautettujen viestien "
+"tunnistuksessa? <em>Kyllä</em>\n"
+" on suositeltavaa."
+
+#: Mailman/Gui/Bounce.py:112
+msgid ""
+"While Mailman's bounce detector is fairly robust, it's\n"
+" impossible to detect every bounce format in the world. You\n"
+" should keep this variable set to <em>Yes</em> for two reasons: "
+"1)\n"
+" If this really is a permanent bounce from one of your members,\n"
+" you should probably manually remove them from your list, and "
+"2)\n"
+" you might want to send the message on to the Mailman "
+"developers\n"
+" so that this new format can be added to its known set.\n"
+"\n"
+" <p>If you really can't be bothered, then set this variable to\n"
+" <em>No</em> and all non-detected bounces will be discarded\n"
+" without further processing.\n"
+"\n"
+" <p><b>Note:</b> This setting will also affect all messages "
+"sent\n"
+" to your list's -admin address. This address is deprecated and\n"
+" should never be used, but some people may still send mail to "
+"this\n"
+" address. If this happens, and this variable is set to\n"
+" <em>No</em> those messages too will get discarded. You may "
+"want\n"
+" to set up an\n"
+" <a href=\"?VARHELP=autoreply/autoresponse_admin_text"
+"\">autoresponse\n"
+" message</a> for email to the -owner and -admin address."
+msgstr ""
+"Vaikka Mailmanin palautettujen viestien havainnointi on varsin järeä,\n"
+" on mahdoton huomata kaikkia palautettujen viestien muotoja "
+"maailmassa.\n"
+" Sinun tulee asettaa tämän muuttujan arvoksi <em>Kyllä</em> "
+"kahdesta syystä: 1)\n"
+" Jos tämä tosiaan on pysyvä palautuva viesti jäseneltäsi,\n"
+" sinun täytyy luultavasti käsin poistaa ne listaltasi, ja 2)\n"
+" haluat ehkä lähettää viestin Mailmanin kehittäjille \n"
+" jotta uusi muoto voidaan lisätä tunnetuksi ominaisuudeksi.\n"
+"\n"
+" <p>Jos et viitsi vaivautua, aseta sitten tämän arvoksi\n"
+" <em>Ei</em> ja kaikki havaitsemattomat palautetut viestit\n"
+" jätetään huomiotta.\n"
+"\n"
+" <p><b>Huomaa:</b> Tämä arvo vaikuttaa myös kaikkiin viesteihin, "
+"jotka \n"
+" lähetetään listan ylläpito-osoitteeseen. Tämän osoitteen "
+"käytöä\n"
+" ei hyväksytä, mutta jotkut vielä lähettävät viestejä tähän\n"
+" osoitteeseen. Jos tällaista tapahtuu ja tämän muuttujan "
+"arvoksi \n"
+" on asetettu <em>Ei</em> myöskään näitä viestejä ei huomioida. "
+"Haluat ehkä \n"
+" asettaa <a href=\"?VARHELP=autoreply/autoresponse_admin_text"
+"\">\n"
+" automaattivastauksen</a> kaikille niille sähköposteille, \n"
+" jotka lähetetään omistaja tai ylläpitäjän osoitteisiin."
+
+#: Mailman/Gui/Bounce.py:135
+msgid ""
+"Should Mailman notify you, the list owner, when bounces\n"
+" cause a member's subscription to be disabled?"
+msgstr ""
+"Pitäisikö Mailmanin ilmoittaa sinulle, listan omistajana, kun palautettu\n"
+" viesti aiheuttaa jäsenen tunnuksen lukittumisen?"
+
+#: Mailman/Gui/Bounce.py:137
+msgid ""
+"By setting this value to <em>No</em>, you turn off\n"
+" notification messages that are normally sent to the list "
+"owners\n"
+" when a member's delivery is disabled due to excessive bounces.\n"
+" An attempt to notify the member will always be made."
+msgstr ""
+"Asettamalla tämän arvoksi <em>Ei</em>, poistat käytöstä ilmoitusviestit,\n"
+" jotka normaalisti lähetetään listan omistajalle, kun jäsenen\n"
+" postilähetykset on peruttu liiallisten palautettujen viestien\n"
+" vuoksi. Aina yritetään ilmoittaa jäsenelle."
+
+#: Mailman/Gui/Bounce.py:144
+msgid ""
+"Should Mailman notify you, the list owner, when bounces\n"
+" cause a member to be unsubscribed?"
+msgstr ""
+"Pitäisikö Mailmanin ilmoittaa sinulle, listan omistajalle, kun\n"
+" palautetut viestit johtavat jäsenen irtisanomiseen?"
+
+#: Mailman/Gui/Bounce.py:146
+msgid ""
+"By setting this value to <em>No</em>, you turn off\n"
+" notification messages that are normally sent to the list "
+"owners\n"
+" when a member is unsubscribed due to excessive bounces. An\n"
+" attempt to notify the member will always be made."
+msgstr ""
+"Asettamalla tämän arvoksi <em>Ei</em>, otat pois päältä\n"
+" ilmoitusviestit, jotka normaalisti lähetetään listan "
+"omistajalle\n"
+" kun jäsen irtisanotaan liiallisten palautettujen viestien \n"
+" vuoksi. Jäsenelle yritetään aina ilmoittaa."
+
+#: Mailman/Gui/Bounce.py:173
+msgid ""
+"Bad value for <a href=\"?VARHELP=bounce/%(property)s\"\n"
+" >%(property)s</a>: %(val)s"
+msgstr ""
+"Väärä arvo <a href=\"?VARHELP=bounce/%(property)s\"\n"
+" >%(property)s</a>: %(val)s"
+
+#: Mailman/Gui/ContentFilter.py:30
+#, fuzzy
+msgid "Content&nbsp;filtering"
+msgstr "Läheetäjän&nbsp;suodattimet"
+
+#: Mailman/Gui/ContentFilter.py:37
+msgid "Forward to List Owner"
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:39
+msgid "Preserve"
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:42
+msgid ""
+"Policies concerning the content of list traffic.\n"
+"\n"
+" <p>Content filtering works like this: when a message is\n"
+" received by the list and you have enabled content filtering, "
+"the\n"
+" individual attachments are first compared to the\n"
+" <a href=\"?VARHELP=contentfilter/filter_mime_types\">filter\n"
+" types</a>. If the attachment type matches an entry in the "
+"filter\n"
+" types, it is discarded.\n"
+"\n"
+" <p>Then, if there are <a\n"
+" href=\"?VARHELP=contentfilter/pass_mime_types\">pass types</a>\n"
+" defined, any attachment type that does <em>not</em> match a\n"
+" pass type is also discarded. If there are no pass types "
+"defined,\n"
+" this check is skipped.\n"
+"\n"
+" <p>After this initial filtering, any <tt>multipart</tt>\n"
+" attachments that are empty are removed. If the outer message "
+"is\n"
+" left empty after this filtering, then the whole message is\n"
+" discarded. Then, each <tt>multipart/alternative</tt> section "
+"will\n"
+" be replaced by just the first alternative that is non-empty "
+"after\n"
+" filtering.\n"
+"\n"
+" <p>Finally, any <tt>text/html</tt> parts that are left in the\n"
+" message may be converted to <tt>text/plain</tt> if\n"
+" <a href=\"?VARHELP=contentfilter/convert_html_to_plaintext\"\n"
+" >convert_html_to_plaintext</a> is enabled and the site is\n"
+" configured to allow these conversions."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:71
+msgid ""
+"Should Mailman filter the content of list traffic according\n"
+" to the settings below?"
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:75
+msgid ""
+"Remove message attachments that have a matching content\n"
+" type."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:78
+msgid ""
+"Use this option to remove each message attachment that\n"
+" matches one of these content types. Each line should contain "
+"a\n"
+" string naming a MIME <tt>type/subtype</tt>,\n"
+" e.g. <tt>image/gif</tt>. Leave off the subtype to remove all\n"
+" parts with a matching major content type, e.g. <tt>image</tt>.\n"
+"\n"
+" <p>Blank lines are ignored.\n"
+"\n"
+" <p>See also <a href=\"?VARHELP=contentfilter/pass_mime_types\"\n"
+" >pass_mime_types</a> for a content type whitelist."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:90
+msgid ""
+"Remove message attachments that don't have a matching\n"
+" content type. Leave this field blank to skip this filter\n"
+" test."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:94
+msgid ""
+"Use this option to remove each message attachment that does\n"
+" not have a matching content type. Requirements and formats "
+"are\n"
+" exactly like <a href=\"?VARHELP=contentfilter/filter_mime_types"
+"\"\n"
+" >filter_mime_types</a>.\n"
+"\n"
+" <p><b>Note:</b> if you add entries to this list but don't add\n"
+" <tt>multipart</tt> to this list, any messages with attachments\n"
+" will be rejected by the pass filter."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:104
+msgid ""
+"Should Mailman convert <tt>text/html</tt> parts to plain\n"
+" text? This conversion happens after MIME attachments have "
+"been\n"
+" stripped."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:110
+#, fuzzy
+msgid ""
+"Action to take when a message matches the content filtering\n"
+" rules."
+msgstr ""
+"Toiminta, joka tehdään kun muokattu jäsen lähettää\n"
+"\t viestiä listalle."
+
+#: Mailman/Gui/ContentFilter.py:113
+msgid ""
+"One of these actions is take when the message matches one of\n"
+" the content filtering rules, meaning, the top-level\n"
+" content type matches one of the <a\n"
+" href=\"?VARHELP=contentfilter/filter_mime_types\"\n"
+" >filter_mime_types</a>, or the top-level content type does\n"
+" <strong>not</strong> match one of the\n"
+" <a href=\"?VARHELP=contentfilter/pass_mime_types\"\n"
+" >pass_mime_types</a>, or if after filtering the subparts of "
+"the\n"
+" message, the message ends up empty.\n"
+"\n"
+" <p>Note this action is not taken if after filtering the "
+"message\n"
+" still contains content. In that case the message is always\n"
+" forwarded on to the list membership.\n"
+"\n"
+" <p>When messages are discarded, a log entry is written\n"
+" containing the Message-ID of the discarded message. When\n"
+" messages are rejected or forwarded to the list owner, a reason\n"
+" for the rejection is included in the bounce message to the\n"
+" original author. When messages are preserved, they are saved "
+"in\n"
+" a special queue directory on disk for the site administrator "
+"to\n"
+" view (and possibly rescue) but otherwise discarded. This last\n"
+" option is only available if enabled by the site\n"
+" administrator."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:154
+msgid "Bad MIME type ignored: %(spectype)s"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:36
+msgid "Digest options"
+msgstr "Lukemiston valinnat"
+
+#: Mailman/Gui/Digest.py:44
+msgid "Batched-delivery digest characteristics."
+msgstr "Joukkolähetys lukemiston ominaisuudet."
+
+#: Mailman/Gui/Digest.py:47
+msgid "Can list members choose to receive list traffic bunched in digests?"
+msgstr ""
+"Voiko listan jäsen valita saako listan viestejä paketoituina lukemistoina"
+
+#: Mailman/Gui/Digest.py:51
+msgid "Digest"
+msgstr "Lukemisto"
+
+#: Mailman/Gui/Digest.py:51
+msgid "Regular"
+msgstr "Tavallinen"
+
+#: Mailman/Gui/Digest.py:52
+msgid "Which delivery mode is the default for new users?"
+msgstr "Millainen toimitusmuoto on oletuksena käyttäjille?"
+
+#: Mailman/Gui/Digest.py:55
+msgid "MIME"
+msgstr "MIME"
+
+#: Mailman/Gui/Digest.py:55
+msgid "Plain"
+msgstr "Tavallinen"
+
+#: Mailman/Gui/Digest.py:56
+msgid "When receiving digests, which format is default?"
+msgstr "Kun vastaanotetaan lukemistoja, mikä on oletusmuoto?"
+
+#: Mailman/Gui/Digest.py:59
+msgid "How big in Kb should a digest be before it gets sent out?"
+msgstr "Kuinka suuri lukemisto pitäisi (Kb) olla ennenkuin se lähetetään?"
+
+#: Mailman/Gui/Digest.py:63
+msgid ""
+"Should a digest be dispatched daily when the size threshold isn't reached?"
+msgstr "Pitäisikö lukemisto lähettää päivittäin, vaikka kokorajoitus ei täyty?"
+
+#: Mailman/Gui/Digest.py:67
+msgid "Header added to every digest"
+msgstr "Otsikko lisätään jokaiseen lukemistoon"
+
+#: Mailman/Gui/Digest.py:68
+msgid ""
+"Text attached (as an initial message, before the table of contents) to the "
+"top of digests. "
+msgstr ""
+"Teksti, joka liitetään (erillisenä viestinä ennen sisällysluetteloa) to the "
+"lukemiston alkuun. "
+
+#: Mailman/Gui/Digest.py:73
+msgid "Footer added to every digest"
+msgstr "Alatunniste, joka lisätään joka lukemistoon"
+
+#: Mailman/Gui/Digest.py:74
+msgid "Text attached (as a final message) to the bottom of digests. "
+msgstr "Teksti, joka liitetään (viimeiseksi viestiksi) lukemiston loppuun. "
+
+#: Mailman/Gui/Digest.py:80
+msgid "How often should a new digest volume be started?"
+msgstr "Kuinka usein uusi lukemistonide aloitetaan?"
+
+#: Mailman/Gui/Digest.py:81
+msgid ""
+"When a new digest volume is started, the volume number is\n"
+" incremented and the issue number is reset to 1."
+msgstr ""
+"Kun uusi lukemistonide aloitetaan, nidenumeroa kasvatetaan\n"
+" ja jakelun numero aloitetaan 1:stä."
+
+#: Mailman/Gui/Digest.py:85
+msgid "Should Mailman start a new digest volume?"
+msgstr "Pitäisikö Mailmanin aloittaa uusi lukemistonide?"
+
+#: Mailman/Gui/Digest.py:86
+msgid ""
+"Setting this option instructs Mailman to start a new volume\n"
+" with the next digest sent out."
+msgstr ""
+"Asettamalla tämä arvo Mailman aloittaa uuden niteen\n"
+" seuraavalla lähetettävällä lukemistolla."
+
+#: Mailman/Gui/Digest.py:90
+msgid ""
+"Should Mailman send the next digest right now, if it is not\n"
+" empty?"
+msgstr ""
+"Pitäisikö Mailmanin lähettää seuraava lukemisto heti,\n"
+" jos se ei ole tyhjä?"
+
+#: Mailman/Gui/Digest.py:145
+msgid ""
+"The next digest will be sent as volume\n"
+" %(volume)s, number %(number)s"
+msgstr ""
+"Seuraava lukemisto lähetetään niteenä\n"
+" %(volume)s, numerona %(number)s"
+
+#: Mailman/Gui/Digest.py:150
+#, fuzzy
+msgid "A digest has been sent."
+msgstr "Lukemisto on lähetetty."
+
+#: Mailman/Gui/Digest.py:152
+#, fuzzy
+msgid "There was no digest to send."
+msgstr "Ei odottavia pyyntöjä."
+
+#: Mailman/Gui/GUIBase.py:149
+msgid "Invalid value for variable: %(property)s"
+msgstr "Muuttujalla %(property)s on väärä arvo."
+
+#: Mailman/Gui/GUIBase.py:153
+msgid "Bad email address for option %(property)s: %(val)s"
+msgstr "Virheellinen sähköpostiosoite valinnalle %(property)s: %(val)s"
+
+#: Mailman/Gui/GUIBase.py:179
+msgid ""
+"The following illegal substitution variables were\n"
+" found in the <code>%(property)s</code> string:\n"
+" <code>%(bad)s</code>\n"
+" <p>Your list may not operate properly until you correct "
+"this\n"
+" problem."
+msgstr ""
+"Seuraavat väärät korvausarvot\n"
+" <code>%(property)s</code> merkkijonossa:\n"
+" <code>%(bad)s</code>\n"
+" <p>Listasi ei ehkä toimi, ennenkuin korjaat tämän\n"
+" ongelman."
+
+#: Mailman/Gui/GUIBase.py:193
+msgid ""
+"Your <code>%(property)s</code> string appeared to\n"
+" have some correctable problems in its new value.\n"
+" The fixed value will be used instead. Please\n"
+" double check that this is what you intended.\n"
+" "
+msgstr ""
+"<code>%(property)s</code> merkkijonosi uudessa arvossa on\n"
+" korjattavaa.\n"
+" Korjattua arvoa käytetään sen sijaan. Tarkista, \n"
+" että arvot ovat niinkuin haluat.\n"
+" "
+
+#: Mailman/Gui/General.py:32
+msgid "General Options"
+msgstr "Yleiset valinnat"
+
+#: Mailman/Gui/General.py:46
+msgid "Conceal the member's address"
+msgstr "Piilota jäsenne osoite"
+
+#: Mailman/Gui/General.py:47
+msgid "Acknowledge the member's posting"
+msgstr "Ilmoita jäsenen viestit vastaanotetuiksi"
+
+#: Mailman/Gui/General.py:48
+msgid "Do not send a copy of a member's own post"
+msgstr "Älä lähetä kopiota jäsenen omasta lähetyksestä"
+
+#: Mailman/Gui/General.py:50
+msgid "Filter out duplicate messages to list members (if possible)"
+msgstr "Suodata pois tuplaviestit listan jäsenille (jos mahdollista)"
+
+#: Mailman/Gui/General.py:57
+msgid ""
+"Fundamental list characteristics, including descriptive\n"
+" info and basic behaviors."
+msgstr ""
+"Olennaiset listan ominaisuudet, myös kuvaustiedot\n"
+" peruskäyttäytyminen."
+
+#: Mailman/Gui/General.py:60
+msgid "General list personality"
+msgstr "Yleiset listan personallisuudet"
+
+#: Mailman/Gui/General.py:63
+msgid "The public name of this list (make case-changes only)."
+msgstr "Listan julkinen nimi (muuta vain isoja ja pieniä kirjaimia.)"
+
+#: Mailman/Gui/General.py:64
+msgid ""
+"The capitalization of this name can be changed to make it\n"
+" presentable in polite company as a proper noun, or to make an\n"
+" acronym part all upper case, etc. However, the name will be\n"
+" advertised as the email address (e.g., in subscribe "
+"confirmation\n"
+" notices), so it should <em>not</em> be otherwise altered. "
+"(Email\n"
+" addresses are not case sensitive, but they are sensitive to\n"
+" almost everything else :-)"
+msgstr ""
+"Tämän nimen kirjoittaminen isoilla kirjaimilla voi muuttaa sanan\n"
+" kunnolliseksi nimisanaksi, tai tekee \n"
+" kirjainsana-osan isoilla kirjaimilla, jne. Kuitenkin,\n"
+" nimi tullaan ilmoittamaan sähköpostimuodossa (esim. liittymis- "
+"vahvistusilmoituksissa,\n"
+" sitä <em>ei</em> pitäisi muuten muuttaa. (Sähköpostiosoitteet\n"
+" eivät ole riippuvaisia isoista ja pienistä kirjaimista, mutta\n"
+" ne ovat tarkkoja lähes kaikesta muusta :-)"
+
+#: Mailman/Gui/General.py:73
+msgid ""
+"The list administrator email addresses. Multiple\n"
+" administrator addresses, each on separate line is okay."
+msgstr ""
+"Listan ylläpitäjän sähköpostiosoite. Jos ylläpitäjien\n"
+" osoitteita on useita, jokainen kirjoitetaan eri riville."
+
+#: Mailman/Gui/General.py:76
+#, fuzzy
+msgid ""
+"There are two ownership roles associated with each mailing\n"
+" list. The <em>list administrators</em> are the people who "
+"have\n"
+" ultimate control over all parameters of this mailing list. "
+"They\n"
+" are able to change any list configuration variable available\n"
+" through these administration web pages.\n"
+"\n"
+" <p>The <em>list moderators</em> have more limited permissions;\n"
+" they are not able to change any list configuration variable, "
+"but\n"
+" they are allowed to tend to pending administration requests,\n"
+" including approving or rejecting held subscription requests, "
+"and\n"
+" disposing of held postings. Of course, the <em>list\n"
+" administrators</em> can also tend to pending requests.\n"
+"\n"
+" <p>In order to split the list ownership duties into\n"
+" administrators and moderators, you must\n"
+" <a href=\"passwords\">set a separate moderator password</a>,\n"
+" and also provide the <a href=\"?VARHELP=general/moderator"
+"\">email\n"
+" addresses of the list moderators</a>. Note that the field you\n"
+" are changing here specifies the list administrators."
+msgstr ""
+"Jokaisella sähköpostilistalla on kahdelaisia omistajuussuhteita.\n"
+" <em>Listan ylläpitäjät</em> ovat henkilöitä, joilla on\n"
+" hallintaoikeus kaikkiin listan parametreihin. He\n"
+" voivat muuttaa mitä tahansa listan määritysmuuttujaa,\n"
+" jota voidaan muokata näiden www-sivujen kautta.\n"
+"\n"
+" <p><em>Listan pääkäyttäjillä</em> on rajoitetummat oikeudet;\n"
+" he eivät voi muuttaa mitä tahansa listan muuttujaa, mutta\n"
+" he voivat huolehtia avoinna olevista ylläpitopyynnöistä,\n"
+" myös liittymispyyntöjen hyväksymisistä tai hylkäämisistä, ja\n"
+" odottavien lähetysten hävittämisestä. Tietysti <em>listan\n"
+" ylläpitäjä</em> voi myös hoitaa odottavat pyynnöt.\n"
+"\n"
+" <p>Jakaaksesi listan omistajasuhteen ylläpitäjiin ja\n"
+" pääkäyttäjiin, sinun täytyy <a href=\"passwords\">\n"
+" asettaa erillinen pääkäyttäjän salasana</a>,\n"
+" ja antaa myös <a href=\"?VARHELP=general/moderator"
+"\">pääkäyttäjien\n"
+" sähköpostiosoitteet</a>. Huomaa, että kenttä, jota\n"
+" muut täällä, määrittelee listan ylläpitäjät."
+
+#: Mailman/Gui/General.py:97
+msgid ""
+"The list moderator email addresses. Multiple\n"
+" moderator addresses, each on separate line is okay."
+msgstr ""
+"Listan pääkäyttäjän sähköpostiosoite. Jos pääkäyttäjiä\n"
+" on useita, kirjoita osoitteet eri riveille."
+
+#: Mailman/Gui/General.py:100
+msgid ""
+"There are two ownership roles associated with each mailing\n"
+" list. The <em>list administrators</em> are the people who "
+"have\n"
+" ultimate control over all parameters of this mailing list. "
+"They\n"
+" are able to change any list configuration variable available\n"
+" through these administration web pages.\n"
+"\n"
+" <p>The <em>list moderators</em> have more limited permissions;\n"
+" they are not able to change any list configuration variable, "
+"but\n"
+" they are allowed to tend to pending administration requests,\n"
+" including approving or rejecting held subscription requests, "
+"and\n"
+" disposing of held postings. Of course, the <em>list\n"
+" administrators</em> can also tend to pending requests.\n"
+"\n"
+" <p>In order to split the list ownership duties into\n"
+" administrators and moderators, you must\n"
+" <a href=\"passwords\">set a separate moderator password</a>,\n"
+" and also provide the email addresses of the list moderators in\n"
+" this section. Note that the field you are changing here\n"
+" specifies the list moderators."
+msgstr ""
+"Jokaisella postituslistalla on kahdenlaisia omistajuussuhdetta.\n"
+" <em>Listan ylläpitäjät</em> ovat henkilöitä, joilla on\n"
+" hallintaoikeus kaikkiin listan parametreihin. He\n"
+" voivat muuttaa mitä tahansa listan määritysmuuttujaa, jota\n"
+" pääsee muokkaamaan näiden www-sivujen kautta.\n"
+"\n"
+" <p><em>Listan pääkäyttäjällä</em> on rajoitetumman oikeudet;\n"
+" he eivät voi muuttaa kaikkia listan määritysmuuttujia, mutta\n"
+" he voivat huolehtia avoinna olevista ylläpitopyynnöistä,\n"
+" myös liittymispyyntöjen hyväksymisistä tai hylkäämisistä, ja\n"
+" odottavien lähetysten hävittämisestä. Tietysti <em>listan\n"
+" ylläpitäjä</em> voi myös hoitaa odottavat pyynnöt.\n"
+"\n"
+" <p>Jakaaksesi listan omistajasuhteen ylläpitäjiin ja\n"
+" pääkäyttäjiin, sinun täytyy <a href=\"passwords\">\n"
+" asettaa erillinen pääkäyttäjän salasana</a>,\n"
+" ja antaa myös <a href=\"?VARHELP=general/moderator"
+"\">pääkäyttäjien\n"
+" sähköpostiosoitteet</a>. Huomaa, että kenttä, jota\n"
+" muutat täällä, määrittelee listan pääkäyttäjät."
+
+#: Mailman/Gui/General.py:121
+msgid "A terse phrase identifying this list."
+msgstr "Listan ytimekäs kuvaus."
+
+#: Mailman/Gui/General.py:123
+msgid ""
+"This description is used when the mailing list is listed with\n"
+" other mailing lists, or in headers, and so forth. It "
+"should\n"
+" be as succinct as you can get it, while still identifying "
+"what\n"
+" the list is."
+msgstr ""
+"Tätä kuvausta käytetään, kun postituslista listataan muiden postitus-\n"
+" listojen kanssa, tai otsikkotiedoissa, ja niin edelleen. Sen "
+"pitäisi\n"
+" olla niin ytimes kuin mahdollista, mutta sen silti pitäisi "
+"yksilöidä\n"
+" listan tarkoitus."
+
+#: Mailman/Gui/General.py:129
+msgid ""
+"An introductory description - a few paragraphs - about the\n"
+" list. It will be included, as html, at the top of the "
+"listinfo\n"
+" page. Carriage returns will end a paragraph - see the details\n"
+" for more info."
+msgstr ""
+"Listan johdantokuvaus - muutama kappale.\n"
+" Se sisällytetään html-sivuna, listan tietosivun. alkuun.\n"
+" Rivinvaihdot lopettavat kappaleen - katso lisätietoa\n"
+" yksityiskohdista."
+
+#: Mailman/Gui/General.py:133
+msgid ""
+"The text will be treated as html <em>except</em> that\n"
+" newlines will be translated to &lt;br&gt; - so you can use "
+"links,\n"
+" preformatted text, etc, but don't put in carriage returns "
+"except\n"
+" where you mean to separate paragraphs. And review your changes "
+"-\n"
+" bad html (like some unterminated HTML constructs) can prevent\n"
+" display of the entire listinfo page."
+msgstr ""
+"Tekstiä käsitellään html:nä <em>paitsi</em> että\n"
+" uudet rivit käännetään &lt;br&gt; - joten voit käyttää "
+"linkkejä,\n"
+" muotoiltua tekstiä, jne, mutta älä käytä rivinvaihtoa, ellet\n"
+" tarkoita erillisiä kappaleita. Ja tarkista muutokset -\n"
+" väärät html-koodit (kuten jotkut päättymättömät HTML-tagit)\n"
+" voivat estää koko listan tietosivun tulostumisen."
+
+#: Mailman/Gui/General.py:141
+msgid "Prefix for subject line of list postings."
+msgstr "Listan postituksissa käytetty aihe-kentän etuliite."
+
+#: Mailman/Gui/General.py:142
+msgid ""
+"This text will be prepended to subject lines of messages\n"
+" posted to the list, to distinguish mailing list messages in in\n"
+" mailbox summaries. Brevity is premium here, it's ok to "
+"shorten\n"
+" long mailing list names to something more concise, as long as "
+"it\n"
+" still identifies the mailing list."
+msgstr ""
+"Tämä teksti laitetaan listalle lähetettävän viestin aihe-kentän \n"
+" alkuun, jotta postituslistan viestit voidaan erottaa\n"
+" postilaatikon koosteisiin. Lyhyys on erityisen tärkeää tässä, "
+"on hyväksyttävää lyhentää\n"
+" pitkiä postituslistan nimiä joksikin suppeammaksi, kunhan se\n"
+" edelleen yksilöi postituslistan."
+
+#: Mailman/Gui/General.py:149
+#, fuzzy
+msgid ""
+"Hide the sender of a message, replacing it with the list\n"
+" address (Removes From, Sender and Reply-To fields)"
+msgstr ""
+"Piilota viestin lähettäjä, laittamalla tilalle listan\n"
+" osoite (Removes From, Sender ja Reply-To kentissä)"
+
+#: Mailman/Gui/General.py:152
+msgid "<tt>Reply-To:</tt> header munging"
+msgstr "<tt>Vastaus-kenttä:</tt> otsikon munging"
+
+#: Mailman/Gui/General.py:155
+#, fuzzy
+msgid ""
+"Should any existing <tt>Reply-To:</tt> header found in the\n"
+" original message be stripped? If so, this will be done\n"
+" regardless of whether an explict <tt>Reply-To:</tt> header is\n"
+" added by Mailman or not."
+msgstr ""
+"Pitäisikö olemassa olevia <tt>Vastaus:</tt> -kentässä oleviä otsikoita\n"
+" lyhentää? Jos kyllä, niin tämä tehdään huolimatta\n"
+" siitä, että explict <tt>Vastaus:</tt> otsikko on\n"
+" Mailmanin lisäämä."
+
+#: Mailman/Gui/General.py:161
+msgid "Explicit address"
+msgstr "Selkeä osoite"
+
+#: Mailman/Gui/General.py:161
+msgid "Poster"
+msgstr "Lähettäjä"
+
+#: Mailman/Gui/General.py:161
+msgid "This list"
+msgstr "Tämä lista"
+
+#: Mailman/Gui/General.py:162
+msgid ""
+"Where are replies to list messages directed?\n"
+" <tt>Poster</tt> is <em>strongly</em> recommended for most "
+"mailing\n"
+" lists."
+msgstr ""
+"Kenelle ohjataan vastaukset listan viesteihin?\n"
+" <tt>Lähettäjälle</tt> on <em>erittäin</em> suosisteltavaa "
+"useimmille\n"
+" postituslistoille."
+
+#: Mailman/Gui/General.py:167
+msgid ""
+"This option controls what Mailman does to the\n"
+" <tt>Reply-To:</tt> header in messages flowing through this\n"
+" mailing list. When set to <em>Poster</em>, no <tt>Reply-To:</"
+"tt>\n"
+" header is added by Mailman, although if one is present in the\n"
+" original message, it is not stripped. Setting this value to\n"
+" either <em>This list</em> or <em>Explicit address</em> causes\n"
+" Mailman to insert a specific <tt>Reply-To:</tt> header in all\n"
+" messages, overriding the header in the original message if\n"
+" necessary (<em>Explicit address</em> inserts the value of <a\n"
+" href=\"?VARHELP=general/reply_to_address\">reply_to_address</"
+"a>).\n"
+" \n"
+" <p>There are many reasons not to introduce or override the\n"
+" <tt>Reply-To:</tt> header. One is that some posters depend on\n"
+" their own <tt>Reply-To:</tt> settings to convey their valid\n"
+" return address. Another is that modifying <tt>Reply-To:</tt>\n"
+" makes it much more difficult to send private replies. See <a\n"
+" href=\"http://www.unicom.com/pw/reply-to-harmful.html\">`Reply-"
+"To'\n"
+" Munging Considered Harmful</a> for a general discussion of "
+"this\n"
+" issue. See <a\n"
+" href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml"
+"\">Reply-To\n"
+" Munging Considered Useful</a> for a dissenting opinion.\n"
+"\n"
+" <p>Some mailing lists have restricted posting privileges, with "
+"a\n"
+" parallel list devoted to discussions. Examples are `patches' "
+"or\n"
+" `checkin' lists, where software changes are posted by a "
+"revision\n"
+" control system, but discussion about the changes occurs on a\n"
+" developers mailing list. To support these types of mailing\n"
+" lists, select <tt>Explicit address</tt> and set the\n"
+" <tt>Reply-To:</tt> address below to point to the parallel\n"
+" list."
+msgstr ""
+"Tämä vaihtoehto ohjaa, mitä Mailman tekee\n"
+" listalle lähetettävien viestien <tt>Vastaus:</tt> \n"
+" otsikoille. Kun se asetetaan <em>Lähettäjälle</em>, Mailman ei "
+"lisää <tt>Vastaus:</tt>\n"
+" -kenttään otsikkoa, siitä huolimatta alkuperäisessä viestissä\n"
+" olevaa tietoa ei muuteta. Asettamalla tämä arvo\n"
+" joko <em>Tälle listalle</em> tai <em>Tiettyyn osoitteeseen</"
+"em>\n"
+" aiheuttaa sen, että Mailman lisää tietyn <tt>Vastaus:</tt> "
+"otsikon \n"
+" kaikkiin viesteihin ja kirjoittaa tarvittaessa yli "
+"olemassaolevan\n"
+" kentän arvon (<em>Tiettyyn osoitteeseen</em> lisää arvon<a\n"
+" href=\"?VARHELP=general/reply_to_address\">reply_to_address</"
+"a>).\n"
+" \n"
+" <p>On monia syitä olla ylikirjoittamatta\n"
+" <tt>Vastaus:</tt> otsikoita. Jotkus lähettäjät luottavat\n"
+" omiin <tt>Vastaus:</tt> asetuksiinsa välittääkseen omat\n"
+" vastausosoitteensa. Toisekseen muokkaamalla <tt>Vastaus:</tt>\n"
+" arvoa vaikeutetaan yksityisten vastausten lähettämistä. Katso "
+"<a\n"
+" href=\"http://www.unicom.com/pw/reply-to-harmful.html"
+"\">Vastaus'\n"
+" Munging pidetään haitallisena</a> tämän aiheen yleistä "
+"keskustelua\n"
+" Katso <a\n"
+" href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml\">Vastaus\n"
+" Munging pidetään käyttökelpoisena</a> vastakkaisesta "
+"mielipiteestä.\n"
+"\n"
+" <p>Joillakin postituslistoille on rajoitetut postitusoikeudet, "
+"kun\n"
+" jotkut listat ovat omistettu keskustelulle. Esimerkkeinä ovat "
+"'Korjaukset' tai\n"
+" 'Tarkistukset', jossa ohjelman muutokset lähetetään "
+"tarkistettavaksi\n"
+" ohjaavalle järjestelmälle, mutta keskustelu muutoksista "
+"käydään\n"
+" kehittäjien postituslistalla. Tukeaksesi tällaisia "
+"postituslistoja\n"
+" valitse <tt>Tiettyyn osoitteeseen</tt> ja aseta\n"
+" alla oleva <tt>Vastaus:</tt> osoite osoittamaan\n"
+" list rinnakkaiselle listalle."
+
+#: Mailman/Gui/General.py:199
+msgid "Explicit <tt>Reply-To:</tt> header."
+msgstr "Selkeä <tt>Vastaus:</tt> otsikko."
+
+#: Mailman/Gui/General.py:201
+msgid ""
+"This is the address set in the <tt>Reply-To:</tt> header\n"
+" when the <a\n"
+" href=\"?VARHELP=general/reply_goes_to_list"
+"\">reply_goes_to_list</a>\n"
+" option is set to <em>Explicit address</em>.\n"
+"\n"
+" <p>There are many reasons not to introduce or override the\n"
+" <tt>Reply-To:</tt> header. One is that some posters depend on\n"
+" their own <tt>Reply-To:</tt> settings to convey their valid\n"
+" return address. Another is that modifying <tt>Reply-To:</tt>\n"
+" makes it much more difficult to send private replies. See <a\n"
+" href=\"http://www.unicom.com/pw/reply-to-harmful.html\">`Reply-"
+"To'\n"
+" Munging Considered Harmful</a> for a general discussion of "
+"this\n"
+" issue. See <a\n"
+" href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml"
+"\">Reply-To\n"
+" Munging Considered Useful</a> for a dissenting opinion.\n"
+"\n"
+" <p>Some mailing lists have restricted posting privileges, with "
+"a\n"
+" parallel list devoted to discussions. Examples are `patches' "
+"or\n"
+" `checkin' lists, where software changes are posted by a "
+"revision\n"
+" control system, but discussion about the changes occurs on a\n"
+" developers mailing list. To support these types of mailing\n"
+" lists, specify the explicit <tt>Reply-To:</tt> address here. "
+"You\n"
+" must also specify <tt>Explicit address</tt> in the\n"
+" <tt>reply_goes_to_list</tt>\n"
+" variable.\n"
+"\n"
+" <p>Note that if the original message contains a\n"
+" <tt>Reply-To:</tt> header, it will not be changed."
+msgstr ""
+"Tämä on osoite, joka on asetettu <tt>Vastaus:</tt> kenttään\n"
+" kun <a\n"
+" href=\"?VARHELP=general/reply_goes_to_list"
+"\">reply_goes_to_list</a>\n"
+" valinta on asetettu <em>Tiettyyn osoitteeseen</em>.\n"
+"\n"
+" <p>On monia syitä olla ottamatta käyttöön tai kumota\n"
+" <tt>Vastaus:</tt> kenttä. Ensiksikin jotkut lähettäjät\n"
+" luottavat omiin <tt>Vastaus:</tt> asetuksiinsa vastauksen\n"
+" lähetyksessä. Toisekseen muokkaamalla <tt>Vastaus:</tt>\n"
+" kenttää vaikeutetaan yksityisten vastausten lähettämistä.\n"
+" Katso <a href=\"http://www.unicom.com/pw/reply-to-harmful.html"
+"\">'Vastaus'\n"
+" Munging pidetään haitallisena</a> keskustelua tästä\n"
+" asiasta. Katso <a\n"
+" href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml\">Vastaus\n"
+" Munging pidetään hyödyllisenä</a> vastakkaisesta "
+"mielipiteestä.\n"
+"\n"
+" <p>Joillakin postituslistoilla on rajoitetut lähetysoikeudet, "
+"kun taas\n"
+" jotkut ovat tarkoitettu keskusteluille. Esimerkkejä ovat "
+"'Korjaus' tai\n"
+" 'Tarkistus' listat, joissa tarkistusjärjestelmä ilmoittaa "
+"ohjelmisto-\n"
+" muutoksista, mutta keskustelu muutoksista palautuu\n"
+" kehittäjien postituslistalle. Jotta tämän tyyppiset postitus-\n"
+" listat toimivat, määrittele tietty <tt>Vastaus:</tt> osoite "
+"tähän. Sinun\n"
+" täytyy myös määritellä <tt>Tietty osoite</tt> \n"
+" <tt>reply_goes_to_list</tt>\n"
+" muuttujaan.\n"
+"\n"
+" <p>Huomaa, että jos alkuperäinen viesti sisältää\n"
+" <tt>Vastaus:</tt> määrittelyn, sitä ei muuteta."
+
+#: Mailman/Gui/General.py:230
+msgid "Umbrella list settings"
+msgstr "Sateenvarjolistan asetukset"
+
+#: Mailman/Gui/General.py:233
+#, fuzzy
+msgid ""
+"Send password reminders to, eg, \"-owner\" address instead of\n"
+" directly to user."
+msgstr ""
+"Lähetä salasanan muistutukset, eg, \"-owner\" osoitteeseen\n"
+" suoraan käyttäjälle lähetettävän sijaan."
+
+#: Mailman/Gui/General.py:236
+msgid ""
+"Set this to yes when this list is intended to cascade only\n"
+" to other mailing lists. When set, meta notices like\n"
+" confirmations and password reminders will be directed to an\n"
+" address derived from the member's address - it will have the\n"
+" value of \"umbrella_member_suffix\" appended to the member's\n"
+" account name."
+msgstr ""
+"Aseta tämän arvoksi Kyllä jos tämän listan tarkoitus on lähettää\n"
+" muille postituslistoille. Kun arvo asetetaan, meta "
+"ilmoitukset\n"
+" kuten vahvistukset ja salasanamuistutukset ohjataan\n"
+" osoitteeseen, joka saadaan jäsenen osoitteesta - sillä on \n"
+" arvona \"umbrella_member_suffix\" lisättynä jäsenen\n"
+" tilinnimellä."
+
+#: Mailman/Gui/General.py:244
+msgid ""
+"Suffix for use when this list is an umbrella for other\n"
+" lists, according to setting of previous \"umbrella_list\"\n"
+" setting."
+msgstr ""
+"Jälkiliite, jota käytetään kun tämä lista on sateenvarjolista muille\n"
+" listoile, aiemman asetuksen \"umbrella_list\"\n"
+" mukaan."
+
+#: Mailman/Gui/General.py:248
+msgid ""
+"When \"umbrella_list\" is set to indicate that this list has\n"
+" other mailing lists as members, then administrative notices "
+"like\n"
+" confirmations and password reminders need to not be sent to "
+"the\n"
+" member list addresses, but rather to the owner of those member\n"
+" lists. In that case, the value of this setting is appended to\n"
+" the member's account name for such notices. `-owner' is the\n"
+" typical choice. This setting has no effect when \"umbrella_list"
+"\"\n"
+" is \"No\"."
+msgstr ""
+"Kun \"umbrella_list\" määritellään osoittaakseen, että tällä listalla on "
+"muita\n"
+" postituslistoja jäsenenään, ylläpitoilmoitukset kuten\n"
+" vahvistuksia ja salasanamuistutuksia ei tarvitse lähettää "
+"listan\n"
+" jäsenten osoitteisiin, vaan mieluummin näiden jäsenlistojen\n"
+" omistajille. Siinä tapauksessa, tämän asetuksen arvo on \n"
+" lisätty jäsenen tilin nimeen näitä ilmoituksia varten. -owner'\n"
+" on tyypillinen valinta. Tällä asetuksellaei ole vaikutusta, "
+"kun \"umbrella_list\"\n"
+" on \"Ei\"."
+
+#: Mailman/Gui/General.py:260
+msgid "Send monthly password reminders?"
+msgstr "Lähetä kuukausittain salasanamuistutuksia"
+
+#: Mailman/Gui/General.py:262
+msgid ""
+"Turn this on if you want password reminders to be sent once\n"
+" per month to your members. Note that members may disable "
+"their\n"
+" own individual password reminders."
+msgstr ""
+"Aseta tämä arvo, jos haluat, että salasanamuistutukset lähetetään\n"
+" kerran kuussa jäsenillesi. Huomaa, että jäsenet voivat ottaa\n"
+" pois käytöstä omat henkilökohtaiset salasanamuistutuksensa."
+
+#: Mailman/Gui/General.py:267
+msgid ""
+"List-specific text prepended to new-subscriber welcome\n"
+" message"
+msgstr ""
+"Listakohtainen teksti, joka lisätään uuden liittyjän tervetulo-\n"
+" viestiin"
+
+#: Mailman/Gui/General.py:270
+msgid ""
+"This value, if any, will be added to the front of the\n"
+" new-subscriber welcome message. The rest of the welcome "
+"message\n"
+" already describes the important addresses and URLs for the\n"
+" mailing list, so you don't need to include any of that kind of\n"
+" stuff here. This should just contain mission-specific kinds "
+"of\n"
+" things, like etiquette policies or team orientation, or that "
+"kind\n"
+" of thing.\n"
+"\n"
+" <p>Note that this text will be wrapped, according to the\n"
+" following rules:\n"
+" <ul><li>Each paragraph is filled so that no line is longer "
+"than\n"
+" 70 characters.\n"
+" <li>Any line that begins with whitespace is not filled.\n"
+" <li>A blank line separates paragraphs.\n"
+" </ul>"
+msgstr ""
+"Tämä arvo, jos mikä, lisätään uuden liittyjän tervetuloviestin\n"
+" alkuun. Loppuosa tervetuloviestistä kuvaa jo\n"
+" postituslistan tärkeät osoitteet ja www-osoitteet\n"
+" joten mitään sellaista tietoa ei tarvitse lisätä\n"
+" tähän. Tässä pitäisi olla vain tehtäväkohtaisia asioita\n"
+" kuten käyttäytymissääntöjä ja ryhmän tavoitteita, tai muita\n"
+" sellaisia asioita.\n"
+"\n"
+" <p>Huomaa, että tämä teksti rivitetään, seuraavien \n"
+" sääntöjen mukaan:\n"
+" <ul><li>Jokainen kappale täytetään niin, että mikään rivi ei "
+"ole pitempi kuin\n"
+" 70 merkkiä.\n"
+" <li>Rivi, joka alkaa whitespace, ei täytetä.\n"
+" <li>Tyhjä rivi erottaa kappaleet toisistaan.\n"
+" </ul>"
+
+#: Mailman/Gui/General.py:287
+msgid "Send welcome message to newly subscribed members?"
+msgstr "Lähetä tervetuloviesti uusille jäsenille?"
+
+#: Mailman/Gui/General.py:288
+msgid ""
+"Turn this off only if you plan on subscribing people manually\n"
+" and don't want them to know that you did so. This option is "
+"most\n"
+" useful for transparently migrating lists from some other "
+"mailing\n"
+" list manager to Mailman."
+msgstr ""
+"Ota tämä arvo pois käytöstä vain, jos aiot liittää henkilöt käsin\n"
+" etkä halua heidän tietävän, että teit niin. Tämä arvo on "
+"käyttökelpoisin,\n"
+" kun halutaan siirtää huomaamattomasti listoja toisesta "
+"postitusohjelmasta\n"
+" Mailmaniin."
+
+#: Mailman/Gui/General.py:294
+msgid ""
+"Text sent to people leaving the list. If empty, no special\n"
+" text will be added to the unsubscribe message."
+msgstr ""
+"Teksti, joka lähetetään henkilöille, jotka lähtevät listalta. Jos tyhjä,\n"
+" mitään erityistä tekstiä ei lisätä irtisanomisviestiin."
+
+#: Mailman/Gui/General.py:298
+msgid "Send goodbye message to members when they are unsubscribed?"
+msgstr "Lähetä hyvästelyviesti jäsenille irtisanoutuessa?"
+
+#: Mailman/Gui/General.py:301
+msgid ""
+"Should the list moderators get immediate notice of new\n"
+" requests, as well as daily notices about collected ones?"
+msgstr ""
+"Pitäisikö listan pääkäyttäjän saada heti ilmoitus uusista pyynnöistä\n"
+" vai kerran päivässä ilmoitus kaikista kerääntyneistä pyynnöistä?"
+
+#: Mailman/Gui/General.py:304
+msgid ""
+"List moderators (and list administrators) are sent daily\n"
+" reminders of requests pending approval, like subscriptions to "
+"a\n"
+" moderated list, or postings that are being held for one reason "
+"or\n"
+" another. Setting this option causes notices to be sent\n"
+" immediately on the arrival of new requests as well."
+msgstr ""
+"Listan pääkäyttäjille (ja listan ylläpitäjille) lähetetään päivittäin\n"
+" muistutuksia odottavista pyynnöistä, kuten liittymisistä "
+"muokatulle\n"
+" listalle, tai lähetyksistä, joita säilytetään tai\n"
+" toisesta. Tämän arvon asettaminen aiheuttaa ilmoitusten\n"
+" lähettämisen heti niiden saapumisen jälkeen."
+
+#: Mailman/Gui/General.py:311
+msgid ""
+"Should administrator get notices of subscribes and\n"
+" unsubscribes?"
+msgstr ""
+"Pitäisikö ylläpitäjän saada ilmoitukset liittymisistä ja\n"
+" irtisanomisista?"
+
+#: Mailman/Gui/General.py:316
+msgid "Send mail to poster when their posting is held for approval?"
+msgstr "Lähetä viesti lähettäjälle, jos hänen viestinsä odottaa hyväksymistä?"
+
+#: Mailman/Gui/General.py:318
+msgid ""
+"Approval notices are sent when mail triggers certain of the\n"
+" limits <em>except</em> routine list moderation and spam "
+"filters,\n"
+" for which notices are <em>not</em> sent. This option "
+"overrides\n"
+" ever sending the notice."
+msgstr ""
+"Hyväksymisilmoitukset lähetetään, kun sähköpostin tietty raja ylitetään\n"
+" <em>paitsi</em> tavanomainen listan muokkaus and roska- postin "
+"suodattimet,\n"
+" joiden ilmoituksia <em>ei</em> lähetetä. Tämä valinta kumoaa\n"
+" ever(koskaan) ilmoituksen lähettämisen."
+
+#: Mailman/Gui/General.py:323
+msgid "Additional settings"
+msgstr "Lisäasetukset"
+
+#: Mailman/Gui/General.py:326
+#, fuzzy
+msgid "Emergency moderation of all list traffic."
+msgstr "Hätäylläpito kaikelle listaliikenteelle:"
+
+#: Mailman/Gui/General.py:327
+msgid ""
+"When this option is enabled, all list traffic is emergency\n"
+" moderated, i.e. held for moderation. Turn this option on when\n"
+" your list is experiencing a flamewar and you want a cooling "
+"off\n"
+" period."
+msgstr ""
+
+#: Mailman/Gui/General.py:339
+msgid ""
+"Default options for new members joining this list.<input\n"
+" type=\"hidden\" name=\"new_member_options\" value=\"ignore\">"
+msgstr ""
+"Tälle listalle liittyvien uusien jäsenten oletusasetukset.<input\n"
+" type=\"hidden\" name=\"new_member_options\" value=\"ignore\">"
+
+#: Mailman/Gui/General.py:342
+msgid ""
+"When a new member is subscribed to this list, their initial\n"
+" set of options is taken from the this variable's setting."
+msgstr ""
+"Kun uusi jäsen on liitetty tälle listalle, hänen\n"
+" alkuperäiset asetukset on otettu tämän muuttujan arvoista."
+
+#: Mailman/Gui/General.py:346
+msgid ""
+"(Administrivia filter) Check postings and intercept ones\n"
+" that seem to be administrative requests?"
+msgstr ""
+"(Ylläpidolliset suodatukset) Tarkista postitukset ja keskeytykset\n"
+" jotka vaikuttavat ylläpitopyynnöiltä?"
+
+#: Mailman/Gui/General.py:349
+msgid ""
+"Administrivia tests will check postings to see whether it's\n"
+" really meant as an administrative request (like subscribe,\n"
+" unsubscribe, etc), and will add it to the the administrative\n"
+" requests queue, notifying the administrator of the new "
+"request,\n"
+" in the process."
+msgstr ""
+"Administrivia tests tarkistavat lähetykset onko niiden\n"
+" tarkoitus todella olla ylläpitopyyntöjä (kuten liittyminen,\n"
+" irtisanominen, jne), and lisää sen ylläpitopyyntöjen\n"
+" jonoon, ilmoittaa ylläpitäjälle tulleesta uudesta\n"
+" ylläpitopyynnöstä."
+
+#: Mailman/Gui/General.py:356
+msgid ""
+"Maximum length in kilobytes (KB) of a message body. Use 0\n"
+" for no limit."
+msgstr ""
+"Viestin tekstiosan enimmäispituus kilobitteinä.\n"
+" Aseta arvoksi 0, jos et halua rajoittaa pituutta."
+
+#: Mailman/Gui/General.py:360
+msgid "Host name this list prefers for email."
+msgstr "Palvelimen nimi, jota tämän lista haluaa käyttää sähköposteissaan."
+
+#: Mailman/Gui/General.py:362
+msgid ""
+"The \"host_name\" is the preferred name for email to\n"
+" mailman-related addresses on this host, and generally should "
+"be\n"
+" the mail host's exchanger address, if any. This setting can "
+"be\n"
+" useful for selecting among alternative names of a host that "
+"has\n"
+" multiple addresses."
+msgstr ""
+"\"host_name\" on mailmaniin liittyvien osoitteisiin lähetettyjen \n"
+" sähköpostien nimi tällä palvelimella, ja yleensä pitäisi olla\n"
+" postin palvelimen exchanger osoite, jos mitään. Tämä asetus "
+"voi olla\n"
+" käyttökelpoinen, kun valitaan palvelimen vaihtoehtoisten nimien "
+"kesken, joilla\n"
+" on useita osoitteita."
+
+#: Mailman/Gui/General.py:374
+#, fuzzy
+msgid ""
+"Should messages from this mailing list include the\n"
+" <a href=\"http://www.faqs.org/rfcs/rfc2369.html\">RFC 2369</"
+"a>\n"
+" (i.e. <tt>List-*</tt>) headers? <em>Yes</em> is highly\n"
+" recommended."
+msgstr ""
+"Pitäisikö tältä postituslistalta lähetettäviin viesteihin sisällyttää\n"
+" <a href=\"http://www.faqs.org/rfc/rfc2369.html\">RFC 2369</"
+"a>\n"
+" (esim. <tt>Lista-*</tt>) otsikot? <em>Kyllä</em> on\n"
+" suositeltavaa."
+
+#: Mailman/Gui/General.py:379
+msgid ""
+"RFC 2369 defines a set of List-* headers that are\n"
+" normally added to every message sent to the list "
+"membership.\n"
+" These greatly aid end-users who are using standards "
+"compliant\n"
+" mail readers. They should normally always be enabled.\n"
+"\n"
+" <p>However, not all mail readers are standards compliant "
+"yet,\n"
+" and if you have a large number of members who are using\n"
+" non-compliant mail readers, they may be annoyed at these\n"
+" headers. You should first try to educate your members as "
+"to\n"
+" why these headers exist, and how to hide them in their "
+"mail\n"
+" clients. As a last resort you can disable these headers, "
+"but\n"
+" this is not recommended (and in fact, your ability to "
+"disable\n"
+" these headers may eventually go away)."
+msgstr ""
+"RFC 2369 määrittelee joukon Lista-* otsikoita, jotka normaalisti\n"
+" lisätään jokaiseen listan jäsenistölle lähetettävään "
+"viestiin.\n"
+" Nämä auttavat paljon loppukäyttäjää, jotka käyttävät "
+"standardoituja\n"
+" postiohjelmia. Nämä pitäisi normaalisti aina olla "
+"käytössä.\n"
+"\n"
+" <p>Vielä kuitenkaan kaikki postiohjelmat eivät ole "
+"standardin mukaisia,\n"
+" ja jos sinulla on paljon jäseniä, jotka eivät käytä\n"
+" standardoituja postiohjelmia, heille on ehkä harmia\n"
+" näistä otsikoista. Sinun tulee ensin opastaa jäseniäsi "
+"miksi\n"
+" nämä otsikot ovat olemassa ja kuinka ne voi posti- "
+"ohjelmassa\n"
+" piilottaa. Viimeisenä keinona voit ottaa nämä otsikot, "
+"pois käytöstä,\n"
+" tätä ei suositella (ja todellisuudessa mahdollisuus ottaa "
+"nämä\n"
+" otsikot pois käytöstä tullaan lopulta poistamaan)."
+
+#: Mailman/Gui/General.py:397
+msgid "Should postings include the <tt>List-Post:</tt> header?"
+msgstr ""
+
+#: Mailman/Gui/General.py:398
+msgid ""
+"The <tt>List-Post:</tt> header is one of the headers\n"
+" recommended by\n"
+" <a href=\"http://www.faqs.org/rfcs/rfc2369.html\">RFC 2369</"
+"a>.\n"
+" However for some <em>announce-only</em> mailing lists, only a\n"
+" very select group of people are allowed to post to the list; "
+"the\n"
+" general membership is usually not allowed to post. For lists "
+"of\n"
+" this nature, the <tt>List-Post:</tt> header is misleading.\n"
+" Select <em>No</em> to disable the inclusion of this header. "
+"(This\n"
+" does not affect the inclusion of the other <tt>List-*:</tt>\n"
+" headers.)"
+msgstr ""
+
+#: Mailman/Gui/General.py:416
+#, fuzzy
+msgid ""
+"<b>real_name</b> attribute not\n"
+" changed! It must differ from the list's name by case\n"
+" only."
+msgstr ""
+"<p><b>real_name</b> attribuuttia ei muutettu!\n"
+" Sen täytyy erota listan nimestä vain kirjasinkoossa.\n"
+" <p>"
+
+#: Mailman/Gui/General.py:437
+msgid ""
+"You cannot add a Reply-To: to an explicit\n"
+" address if that address is blank. Resetting these values."
+msgstr ""
+
+#: Mailman/Gui/Language.py:34
+msgid "Language&nbsp;options"
+msgstr "Kieli&nbsp;valinnat"
+
+#: Mailman/Gui/Language.py:66
+msgid "Natural language (internationalization) options."
+msgstr "Luontaisen kielen (kansainvälistyminen) valinnat."
+
+#: Mailman/Gui/Language.py:71
+msgid "Default language for this list."
+msgstr "Oletuskieli tälle listalle."
+
+#: Mailman/Gui/Language.py:72
+msgid ""
+"This is the default natural language for this mailing list.\n"
+" If <a href=\"?VARHELP=language/available_languages\">more than "
+"one\n"
+" language</a> is supported then users will be able to select "
+"their\n"
+" own preferences for when they interact with the list. All "
+"other\n"
+" interactions will be conducted in the default language. This\n"
+" applies to both web-based and email-based messages, but not to\n"
+" email posted by list members."
+msgstr ""
+"Tämä on oletuskieli tälle listalle.\n"
+" Jos <a href=\"?VARHELP=language/available_languages\">enemmän "
+"kuin yksi\n"
+" kieli</a> on tuettu, niin käyttäjät voivat valita omat "
+"mieltymyksensä\n"
+" kun he ovat vuorovaikutuksessa listan kanssa. Kaikki muut\n"
+" toimenpiteet tehdään oletuskielellä. Tämä pätee\n"
+" sekä web- ja sähköpostipohjaisten viestien kanssa, mutta\n"
+" sähköposteihin, jotka postitetaan listalle."
+
+#: Mailman/Gui/Language.py:82
+msgid "Languages supported by this list."
+msgstr "Tälle listalle tuetut kielet."
+
+#: Mailman/Gui/Language.py:84
+msgid ""
+"These are all the natural languages supported by this list.\n"
+" Note that the\n"
+" <a href=\"?VARHELP=language/preferred_language\">default\n"
+" language</a> must be included."
+msgstr ""
+"Nämä ovat kaikki tämän listan tuetut kielet.\n"
+" Huomaa, että\n"
+" <a href=\"?VARHELP=language/preferred_language\">oletus-\n"
+" kieli</a> täytyy olla myös mukana."
+
+#: Mailman/Gui/Language.py:90
+#, fuzzy
+msgid "Always"
+msgstr "päivää"
+
+#: Mailman/Gui/Language.py:90
+msgid "As needed"
+msgstr ""
+
+#: Mailman/Gui/Language.py:90
+#, fuzzy
+msgid "Never"
+msgstr "Hylkää"
+
+#: Mailman/Gui/Language.py:91
+msgid ""
+"Encode the\n"
+" <a href=\"?VARHELP=general/subject_prefix\">subject\n"
+" prefix</a> even when it consists of only ASCII characters?"
+msgstr ""
+
+#: Mailman/Gui/Language.py:95
+msgid ""
+"If your mailing list's default language uses a non-ASCII\n"
+" character set and the prefix contains non-ASCII characters, "
+"the\n"
+" prefix will always be encoded according to the relevant\n"
+" standards. However, if your prefix contains only ASCII\n"
+" characters, you may want to set this option to <em>Never</em> "
+"to\n"
+" disable prefix encoding. This can make the subject headers\n"
+" slightly more readable for users with mail readers that don't\n"
+" properly handle non-ASCII encodings.\n"
+"\n"
+" <p>Note however, that if your mailing list receives both "
+"encoded\n"
+" and unencoded subject headers, you might want to choose <em>As\n"
+" needed</em>. Using this setting, Mailman will not encode "
+"ASCII\n"
+" prefixes when the rest of the header contains only ASCII\n"
+" characters, but if the original header contains non-ASCII\n"
+" characters, it will encode the prefix. This avoids an "
+"ambiguity\n"
+" in the standards which could cause some mail readers to "
+"display\n"
+" extra, or missing spaces between the prefix and the original\n"
+" header."
+msgstr ""
+
+#: Mailman/Gui/Membership.py:26
+msgid "Membership&nbsp;Management"
+msgstr "Jäsenien&nbsp;hallinta"
+
+#: Mailman/Gui/Membership.py:30
+msgid "Membership&nbsp;List"
+msgstr "Jäsen&nbsp;lista"
+
+#: Mailman/Gui/Membership.py:31
+msgid "Mass&nbsp;Subscription"
+msgstr "Joukko&nbsp;liittäminen"
+
+#: Mailman/Gui/Membership.py:32
+msgid "Mass&nbsp;Removal"
+msgstr "Joukko&nbsp;poisto"
+
+#: Mailman/Gui/NonDigest.py:34
+msgid "Non-digest&nbsp;options"
+msgstr "Ei-lukemisto&nbsp;valinnat"
+
+#: Mailman/Gui/NonDigest.py:42
+msgid "Policies concerning immediately delivered list traffic."
+msgstr "Heti toimitettavien lähetysten toimintatavat."
+
+#: Mailman/Gui/NonDigest.py:45
+msgid ""
+"Can subscribers choose to receive mail immediately, rather\n"
+" than in batched digests?"
+msgstr ""
+"Voivat liittyjät päättää saako viestit heti vai mieluummin\n"
+" joukkolukemistoina?"
+
+#: Mailman/Gui/NonDigest.py:52
+msgid "Full Personalization"
+msgstr ""
+
+#: Mailman/Gui/NonDigest.py:54
+msgid ""
+"Should Mailman personalize each non-digest delivery?\n"
+" This is often useful for announce-only lists, but <a\n"
+" href=\"?VARHELP=nondigest/personalize\">read the details</"
+"a>\n"
+" section for a discussion of important performance\n"
+" issues."
+msgstr ""
+"Pitäisikö Mailmanin personoida jokainen ei-lukemisto lähetys?\n"
+" Tämä on usein käyttökelpoinen tiedotus-tyyppiselle listalle/"
+"n <a href=\"?VARHELP=nondigest/personalize\">lue "
+"lisätietoja</a>\n"
+" kappale tärkeitä suoritusasioita \n"
+" keskustelussa."
+
+#: Mailman/Gui/NonDigest.py:60
+#, fuzzy
+msgid ""
+"Normally, Mailman sends the regular delivery messages to\n"
+" the mail server in batches. This is much more efficent\n"
+" because it reduces the amount of traffic between Mailman "
+"and\n"
+" the mail server.\n"
+"\n"
+" <p>However, some lists can benefit from a more "
+"personalized\n"
+" approach. In this case, Mailman crafts a new message for\n"
+" each member on the regular delivery list. Turning this\n"
+" feature on may degrade the performance of your site, so "
+"you\n"
+" need to carefully consider whether the trade-off is worth "
+"it,\n"
+" or whether there are other ways to accomplish what you "
+"want.\n"
+" You should also carefully monitor your system load to make\n"
+" sure it is acceptable.\n"
+"\n"
+" <p>Select <em>No</em> to disable personalization and send\n"
+" messages to the members in batches. Select <em>Yes</em> "
+"to\n"
+" personalize deliveries and allow additional substitution\n"
+" variables in message headers and footers (see below). In\n"
+" addition, by selecting <em>Full Personalization</em>, the\n"
+" <code>To</code> header of posted messages will be modified "
+"to\n"
+" include the member's address instead of the list's posting\n"
+" address.\n"
+"\n"
+" <p>When personalization is enabled, a few more expansion\n"
+" variables that can be included in the <a\n"
+" href=\"?VARHELP=nondigest/msg_header\">message header</a> "
+"and\n"
+" <a href=\"?VARHELP=nondigest/msg_footer\">message footer</"
+"a>.\n"
+"\n"
+" <p>These additional substitution variables will be "
+"available\n"
+" for your headers and footers, when this feature is "
+"enabled:\n"
+"\n"
+" <ul><li><b>user_address</b> - The address of the user,\n"
+" coerced to lower case.\n"
+" <li><b>user_delivered_to</b> - The case-preserved "
+"address\n"
+" that the user is subscribed with.\n"
+" <li><b>user_password</b> - The user's password.\n"
+" <li><b>user_name</b> - The user's full name.\n"
+" <li><b>user_optionsurl</b> - The url to the user's "
+"option\n"
+" page.\n"
+" </ul>\n"
+" "
+msgstr ""
+"Yleensä Mailman lähettää normaalit viestit postipalvelimelle\n"
+" joukkona. Tämä on paljon tehokkaampaa,\n"
+" koska se vähentää liikennettä Mailmanin ja posti- "
+"palvelimen\n"
+" välillä.\n"
+"\n"
+" <p>Jotkut listat kuitenkin hyötyvät henkilö- "
+"kohtaisemmasta\n"
+" lähestymistavasta. Tässä tapauksessa Mailman tekee\n"
+" uuden viestin jokaiselle jäsenelle tavallisella\n"
+" listalla. Asettamalla tämän arvon suorituskyky saattaa "
+"laskea, joten sinun\n"
+" tarkkaan harkita, onko se sen arvoista tai\n"
+" onko muita tapoja saavuttaa haluttu tulos.\n"
+" Sinun tulee huolellisesti tarkkailla järjestelmän "
+"kuormitusta\n"
+" varmistaaksesi, että se on hyväksyttävissä.\n"
+"\n"
+" <p>Kun personoidut listat ovat päällä, tapahtuu kaksi "
+"asiaa.\n"
+" Ensinnäkin lähetetyn viestin <code>Vastaanottaja:</code> "
+"kenttä muokataan\n"
+" niin, että jokaisen yksittäisen käyttäjän osoite\n"
+" merkitään erikseen. Joten näyttää siltä kuin viesti olisi "
+"osoitettu\n"
+" erityiselle vastaanottajalle listan sijasta.\n"
+"\n"
+" <p>Toiseksi on olemassa muutama lisämuuttuja, jotka voidaan "
+"lisätä\n"
+" <a href=\"?VARHELP=nondigest/msg_header\">viestin\n"
+" otsikkoon</a> ja\n"
+" <a href=\"?VARHELP=nondigest/msg_footer\">viestin "
+"alatunnisteeseen</a>.\n"
+"\n"
+" <p>Nämä otsikon ja alatunnisteen lisämuuttujat on "
+"saatavissa\n"
+" jos tämä otetaan käyttöön:\n"
+"\n"
+" <ul><li><b>user_address</b> - Käyttäjän osoite,\n"
+" kirjoitettuna pienillä kirjaimilla.\n"
+" <li><b>user_delivered_to</b> - Halutulla kirjainkoolla "
+"kirjoitettu osoite,\n"
+" jolla käyttäjä on liittynyt.\n"
+" <li><b>user_password</b> - Käyttäjän salasana.\n"
+" <li><b>user_name</b> - Käyttäjän täydellinen nimi.\n"
+" <li><b>user_optionsurl</b> - Osoite käyttäjän valinnat\n"
+" sivulle.\n"
+" </ul>\n"
+" "
+
+#: Mailman/Gui/NonDigest.py:108
+msgid "Header added to mail sent to regular list members"
+msgstr ""
+"Ylätunniste, joka lisätään tavallisille jäsenille lähetettäviin viesteihin"
+
+#: Mailman/Gui/NonDigest.py:109
+msgid ""
+"Text prepended to the top of every immediately-delivery\n"
+" message. "
+msgstr ""
+"Teksti, joka laitetaan jokaisen heti toimitettavan viestin\n"
+" alkuun. "
+
+#: Mailman/Gui/NonDigest.py:114
+msgid "Footer added to mail sent to regular list members"
+msgstr ""
+"Alatunniste, joka lisätään tavalliselle jäsenille lähetettäviin viesteihin"
+
+#: Mailman/Gui/NonDigest.py:115
+msgid ""
+"Text appended to the bottom of every immediately-delivery\n"
+" message. "
+msgstr ""
+"Teksti, joka lisätään jokaisen heti toimitettavan viestin\n"
+" loppuun. "
+
+#: Mailman/Gui/Passwords.py:27
+msgid "Passwords"
+msgstr "Salasanat"
+
+#: Mailman/Gui/Privacy.py:28
+msgid "Privacy options"
+msgstr "Yksityisyysasetukset"
+
+#: Mailman/Gui/Privacy.py:32
+msgid "Subscription&nbsp;rules"
+msgstr "Liittymis&nbsp;säännöt"
+
+#: Mailman/Gui/Privacy.py:33
+msgid "Sender&nbsp;filters"
+msgstr "Läheetäjän&nbsp;suodattimet"
+
+#: Mailman/Gui/Privacy.py:34
+#, fuzzy
+msgid "Recipient&nbsp;filters"
+msgstr "Läheetäjän&nbsp;suodattimet"
+
+#: Mailman/Gui/Privacy.py:35
+msgid "Spam&nbsp;filters"
+msgstr "Roskapostin&nbsp;suodattimet"
+
+#: Mailman/Gui/Privacy.py:49 Mailman/Gui/Usenet.py:61
+msgid "None"
+msgstr "Ei mitään"
+
+#: Mailman/Gui/Privacy.py:50 Mailman/Gui/Privacy.py:73
+msgid "Confirm"
+msgstr "Vahvista"
+
+#: Mailman/Gui/Privacy.py:51 Mailman/Gui/Privacy.py:74
+msgid "Require approval"
+msgstr "Vaadi hyväksyntä"
+
+#: Mailman/Gui/Privacy.py:52 Mailman/Gui/Privacy.py:75
+msgid "Confirm and approve"
+msgstr "Vahvista ja hyväksy"
+
+#: Mailman/Gui/Privacy.py:54 Mailman/Gui/Privacy.py:77
+msgid "What steps are required for subscription?<br>"
+msgstr "Mitä toimenpiteitä liittymiseen vaaditaan?<br>"
+
+#: Mailman/Gui/Privacy.py:55
+msgid ""
+"None - no verification steps (<em>Not\n"
+" Recommended </em>)<br>\n"
+" Confirm (*) - email confirmation step required "
+"<br>\n"
+" Require approval - require list administrator\n"
+" Approval for subscriptions <br>\n"
+" Confirm and approve - both confirm and approve\n"
+" \n"
+" <p>(*) when someone requests a subscription,\n"
+" Mailman sends them a notice with a unique\n"
+" subscription request number that they must reply "
+"to\n"
+" in order to subscribe.<br>\n"
+"\n"
+" This prevents mischievous (or malicious) people\n"
+" from creating subscriptions for others without\n"
+" their consent."
+msgstr ""
+"Ei mitään - ei vahvistustoimenpiteitä (<em>Ei\n"
+" suositella </em>)<br>\n"
+" Vahvista (*) - sähköpostivarmistus vaaditaan "
+"<br>\n"
+" Vaatii hyväksynnän - vaatii listan ylläpitäjän\n"
+" hyväksynnän liittymiselle <br>\n"
+" Vahvista ja hyväksy - sekä vahvista että hyväksy\n"
+" \n"
+" <p>(*) kun joku pyytää liittymistä,\n"
+" Mailman lähettää heille ilmoituksen, jossa on\n"
+" yksilöllinen liittymispyynnön numero, johon "
+"heidän täytyy\n"
+" vastata liittyäkseen.<br>\n"
+"\n"
+" Tämä estää ilkikuriset (tai pahantahtoiset)\n"
+" liittymiset toisten puolesta ilman heidän\n"
+" suostumustaan."
+
+#: Mailman/Gui/Privacy.py:78
+msgid ""
+"Confirm (*) - email confirmation required <br>\n"
+" Require approval - require list administrator\n"
+" approval for subscriptions <br>\n"
+" Confirm and approve - both confirm and approve\n"
+" \n"
+" <p>(*) when someone requests a subscription,\n"
+" Mailman sends them a notice with a unique\n"
+" subscription request number that they must reply "
+"to\n"
+" in order to subscribe.<br> This prevents\n"
+" mischievous (or malicious) people from creating\n"
+" subscriptions for others without their consent."
+msgstr ""
+"Vahvista (*) - vahvistussähköposti vaaditaan <br>\n"
+" Vaaditaan hyväksyntä - vaatii listan ylläpitäjän\n"
+" hyväksynnän liittymiselle <br>\n"
+" Vahvista ja hyväksy - sekä vahvista että hyväksy\n"
+" \n"
+" <p>(*) kun joku tekee liittymispyynnön,\n"
+" Mailman lähettää ilmoitusviestin, jossa on \n"
+" yksilöllinen liittymispyynnön numero, johon "
+"heidän täytyy\n"
+" vastata liittyäkseen.<br> Tämä estää\n"
+" ilkikuriset (tai pahantahtoiset) liittymiset\n"
+" toisten puolesta ilman heidän suostumustaan."
+
+#: Mailman/Gui/Privacy.py:94
+msgid ""
+"This section allows you to configure subscription and\n"
+" membership exposure policy. You can also control whether this\n"
+" list is public or not. See also the\n"
+" <a href=\"%(admin)s/archive\">Archival Options</a> section for\n"
+" separate archive-related privacy settings."
+msgstr ""
+"Tämä kappale antaa sinun määritellä liittymis- ja\n"
+" jäsentietojen turvamääritykset. Voit myös määritellä onko\n"
+" tämä lista julkinen vai ei. Katso myös\n"
+" <a href=\"%(admin)s/archive\">Arkistointimääritykset</a> "
+"kappaletta \n"
+" erillisten arkistointiin liittyviin turva-asetusten tekemiseksi."
+
+#: Mailman/Gui/Privacy.py:100
+msgid "Subscribing"
+msgstr "Liittyminen"
+
+#: Mailman/Gui/Privacy.py:102
+msgid ""
+"Advertise this list when people ask what lists are on this\n"
+" machine?"
+msgstr ""
+"Ilmoita tämä lista, kun ihmiset kysyvät mitä listoja tässä\n"
+" koneessa on?"
+
+#: Mailman/Gui/Privacy.py:108
+msgid ""
+"Is the list moderator's approval required for unsubscription\n"
+" requests? (<em>No</em> is recommended)"
+msgstr ""
+"Tarvitaanko listan pääkäyttäjän hyväksyntä irtisanoutumis-\n"
+" pyyntöön? (<em>Ei</em> on suositeltava)"
+
+#: Mailman/Gui/Privacy.py:111
+msgid ""
+"When members want to leave a list, they will make an\n"
+" unsubscription request, either via the web or via email.\n"
+" Normally it is best for you to allow open unsubscriptions so "
+"that\n"
+" users can easily remove themselves from mailing lists (they "
+"get\n"
+" really upset if they can't get off lists!).\n"
+"\n"
+" <p>For some lists though, you may want to impose moderator\n"
+" approval before an unsubscription request is processed. "
+"Examples\n"
+" of such lists include a corporate mailing list that all "
+"employees\n"
+" are required to be members of."
+msgstr ""
+"Kun jäsenet haluavat jättää listan, he tekevät irtisanoutumis-\n"
+" pyynnön, joko www-sivuilla tai sähköpostina.\n"
+" Yleensä on parasta antaa vapaa irtisanoutumisoikeus, jotta\n"
+" käyttäjät voivat helposti poistaa itsensä postituslistoilta (he "
+"voivat\n"
+" pahastua, jos he eivät pääse eroon listoilta!).\n"
+"\n"
+" <p>Joillekin listoille haluat ehkä kuitenkin määrätä "
+"pääkäyttäjän\n"
+" hyväksynnän ennenkuin irtisanoutumispyyntö käsitellään. "
+"Esimerkkejä\n"
+" tällaisista listoista ovat yrityksen postituslistat, joille "
+"kaikkien\n"
+" työntekijöiden edellytetään olevan liittyneenä."
+
+#: Mailman/Gui/Privacy.py:122
+msgid "Ban list"
+msgstr "Kieltolista"
+
+#: Mailman/Gui/Privacy.py:124
+msgid ""
+"List of addresses which are banned from membership in this\n"
+" mailing list."
+msgstr ""
+"Niiden osoitteiden lista, jolta on kielletty tämän listan\n"
+" jäsenyys."
+
+#: Mailman/Gui/Privacy.py:127
+msgid ""
+"Addresses in this list are banned outright from subscribing\n"
+" to this mailing list, with no further moderation required. "
+"Add\n"
+" addresses one per line; start the line with a ^ character to\n"
+" designate a regular expression match."
+msgstr ""
+"Osoitteet, joilta on evätty suora liittymislupa liittyä tälle \n"
+" lisämuutoksia ei tarvita. Lisää\n"
+" osoitteet yksi riville; aloita rivi ^ merkillä\n"
+" merkiksi tavallisesta ilmausparista."
+
+#: Mailman/Gui/Privacy.py:132
+msgid "Membership exposure"
+msgstr "Jäsenyyden vahinkoalttius"
+
+#: Mailman/Gui/Privacy.py:134
+msgid "Anyone"
+msgstr "Kuka tahansa"
+
+#: Mailman/Gui/Privacy.py:134
+msgid "List admin only"
+msgstr "Vain listan ylläpitäjä"
+
+#: Mailman/Gui/Privacy.py:134
+msgid "List members"
+msgstr "Listan jäsenet"
+
+#: Mailman/Gui/Privacy.py:135
+msgid "Who can view subscription list?"
+msgstr "Kuka voi nähdä liittymislistan?"
+
+#: Mailman/Gui/Privacy.py:137
+msgid ""
+"When set, the list of subscribers is protected by member or\n"
+" admin password authentication."
+msgstr ""
+"Kun arvo asetetaan, listalle liittyneet suojataan jäsenen tai\n"
+" ylläpitäjän salasanoilla."
+
+#: Mailman/Gui/Privacy.py:141
+#, fuzzy
+msgid ""
+"Show member addresses so they're not directly recognizable\n"
+" as email addresses?"
+msgstr ""
+"Näytä jäsenten osoitteet niin, että ne eivät ole suoraan\n"
+" tunnistettavissa sähköpostiosoitteiksi?"
+
+#: Mailman/Gui/Privacy.py:143
+msgid ""
+"Setting this option causes member email addresses to be\n"
+" transformed when they are presented on list web pages (both in\n"
+" text and as links), so they're not trivially recognizable as\n"
+" email addresses. The intention is to prevent the addresses\n"
+" from being snarfed up by automated web scanners for use by\n"
+" spammers."
+msgstr ""
+"Asettamalla tämä valinta jäsenen sähköpostiosoite muokataan, \n"
+" kun ne esitetään listana www-sivulla (sekä tekstissä\n"
+" että linkissä) niin, että ne eivät ole yksinkertaisesti \n"
+" tunnistettavissa sähköpostiosoitteiksi. Tarkoitus on estää\n"
+" roskapostin lähettäjien automaattista web-skannausta\n"
+" käyttämästä osoitteita hyväksi."
+
+#: Mailman/Gui/Privacy.py:153
+msgid ""
+"When a message is posted to the list, a series of\n"
+" moderation steps are take to decide whether the a moderator "
+"must\n"
+" first approve the message or not. This section contains the\n"
+" controls for moderation of both member and non-member postings.\n"
+"\n"
+" <p>Member postings are held for moderation if their\n"
+" <b>moderation flag</b> is turned on. You can control whether\n"
+" member postings are moderated by default or not.\n"
+"\n"
+" <p>Non-member postings can be automatically\n"
+" <a href=\"?VARHELP=privacy/sender/accept_these_nonmembers\"\n"
+" >accepted</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/hold_these_nonmembers\">held "
+"for\n"
+" moderation</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/reject_these_nonmembers\"\n"
+" >rejected</a> (bounced), or\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >discarded</a>,\n"
+" either individually or as a group. Any\n"
+" posting from a non-member who is not explicitly accepted,\n"
+" rejected, or discarded, will have their posting filtered by the\n"
+" <a href=\"?VARHELP=privacy/sender/generic_nonmember_action"
+"\">general\n"
+" non-member rules</a>.\n"
+"\n"
+" <p>In the text boxes below, add one address per line; start the\n"
+" line with a ^ character to designate a <a href=\n"
+" \"http://www.python.org/doc/current/lib/module-re.html\"\n"
+" >Python regular expression</a>. When entering backslashes, do "
+"so\n"
+" as if you were using Python raw strings (i.e. you generally "
+"just\n"
+" use a single backslash).\n"
+"\n"
+" <p>Note that non-regexp matches are always done first."
+msgstr ""
+"Kun viesti lähetetään listalle, suoritetaan\n"
+" joukko testejä, joilla päätellään pitääkö pääkäyttäjän ensin\n"
+" hyväksyä viesti vai ei. Tämä kappale sisältää sekä\n"
+" jäsenten että ei-jäsenten lähetysten hallinnan.\n"
+"\n"
+" <p>Jäsenten postitukset odottavat hyväksyntää, jos \n"
+" <b>hyväksyntätunnus</b> on päällä. Voit hallita onko\n"
+" jäsenen postitukset hyväksyttävissä oletusarvoisesti vai ei.\n"
+"\n"
+" <p>Ei-jäsenten postituksen voidaan automaattisesti\n"
+" <a href=\"?VARHELP=privacy/sender/accept_these_nonmembers\"\n"
+" >hyväksyä</a>,\n"
+"<a href=\"?VARHELP=privacy/sender/hold_these_nonmembers\"> odottaa\n"
+" hyväksyntää</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/reject_these_nonmembers\"\n"
+" >hylätä</a> (palautetaan), tai\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >hylätä</a>,\n"
+" joko yksittäin tai ryhmänä. Mikä tahansa\n"
+" ei-jäseneltä tuleva viesti, jota ei erityisesti ole hyväksytty,\n"
+" palautettu, or hylätty, suodatetaan \n"
+" <a href=\"?VARHELP=privacy/sender/generic_nonmember_action"
+"\">yleisten\n"
+" ei-jäsenten sääntöjen mukaan</a>.\n"
+"\n"
+" <p>Alla olevissa tekstilaatikoissa, lisää yksi osoite riville;\n"
+" aloita rivi ^ merkillä, joka määrittelee <a href=\n"
+" \"http://www.python.org/doc/current/lib/module-re.html\"\n"
+" >Pythonin yleisen ilmaisun</a>. Jos kirjoitat takakeno- "
+"viivoja\n"
+" merkitse ne kuin käyttäisit Pythonin raakamerkkijonoa (esim. jos "
+"yleensä\n"
+" käytät yhtä takakenoviivaa).\n"
+"\n"
+" <p>Huomaa, että ei-tyypilliset ilmaisut tehdään aina ensin."
+
+#: Mailman/Gui/Privacy.py:186
+#, fuzzy
+msgid "Member filters"
+msgstr "Jäsenien suodatukset"
+
+#: Mailman/Gui/Privacy.py:189
+msgid "By default, should new list member postings be moderated?"
+msgstr "Pitäisikö oletusarvoisesti uuden listan jäsenen lähetetykset hyväksyä?"
+
+#: Mailman/Gui/Privacy.py:191
+msgid ""
+"Each list member has a <em>moderation flag</em> which says\n"
+" whether messages from the list member can be posted directly "
+"to\n"
+" the list, or must first be approved by the list moderator. "
+"When\n"
+" the moderation flag is turned on, list member postings must be\n"
+" approved first. You, the list administrator can decide whether "
+"a\n"
+" specific individual's postings will be moderated or not.\n"
+"\n"
+" <p>When a new member is subscribed, their initial moderation "
+"flag\n"
+" takes its value from this option. Turn this option off to "
+"accept\n"
+" member postings by default. Turn this option on to, by "
+"default,\n"
+" moderate member postings first. You can always manually set "
+"an\n"
+" individual member's moderation bit by using the\n"
+" <a href=\"%(adminurl)s/members\">membership management\n"
+" screens</a>."
+msgstr ""
+"Jokaisella listan jäsenellä on <em>muokkauslippu</em> joka kertoo,\n"
+" voiko listan jäseneltä tulevat viestit lähettää suoraan "
+"listalle\n"
+" vai täytyykö listan pääkäyttäjän ensin hyväksyä ne. Kun\n"
+" muokkauslippu on asetettu, listan jäsenen viestit täytyy\n"
+" hyväksyä ensin. Sinä listan ylläpitäjänä voit päättää "
+"hyväksytetäänkö\n"
+" tietyn henkilön lähetykset vai ei.\n"
+"\n"
+" <p>Kun uusi jäsen liitetään, hänen muokkauslippunsa saa\n"
+" arvonsa tästä valinnasta. Asetan tämän arvoksi pois päältä "
+"hyväksyäksesi\n"
+" oletusarvoisesti jäsenen lähetykset. Aseta arvoksi päälle, jos "
+"oletusarvoisesti,\n"
+" haluat lähetykset hyväksyttäväksi ensin. Voit aina käsin "
+"asettaa\n"
+" jäsenen muokkauslipun käyttämällä\n"
+" <a href=\"%(adminurl)s/members\">jäsenen ylläpito\n"
+" näyttöä</a>."
+
+#: Mailman/Gui/Privacy.py:207 Mailman/Gui/Privacy.py:281
+msgid "Hold"
+msgstr "Pidätä"
+
+#: Mailman/Gui/Privacy.py:208
+msgid ""
+"Action to take when a moderated member posts to the\n"
+" list."
+msgstr ""
+"Toiminta, joka tehdään kun muokattu jäsen lähettää\n"
+"\t viestiä listalle."
+
+#: Mailman/Gui/Privacy.py:210
+msgid ""
+"<ul><li><b>Hold</b> -- this holds the message for approval\n"
+" by the list moderators.\n"
+"\n"
+" <p><li><b>Reject</b> -- this automatically rejects the message "
+"by\n"
+" sending a bounce notice to the post's author. The text of the\n"
+" bounce notice can be <a\n"
+" href=\"?VARHELP=privacy/sender/member_moderation_notice\"\n"
+" >configured by you</a>.\n"
+"\n"
+" <p><li><b>Discard</b> -- this simply discards the message, "
+"with\n"
+" no notice sent to the post's author.\n"
+" </ul>"
+msgstr ""
+"<ul><li><b>Pidätä</b> -- tämä pidättää viestin odottamaan\n"
+" listan pääkäyttäjän hyväksyntää.\n"
+"\n"
+" <p><li><b>Palauta</b> -- tämä palauttaa viestin automaattisesti "
+"lähettämällä\n"
+" palautusilmoituksen viestin tekijälle. Palautusilmoituksen\n"
+" tekstiä voidaan <a\n"
+" href=\"?VARHELP=privacy/sender/member_moderation_notice\"\n"
+" >muokata</a>.\n"
+"\n"
+" <p><li><b>Hylkää</b> -- tämä yksinkertaisesti hylkää, viestin\n"
+" lähettämättä ilmoitusta viestin tekijälle.\n"
+" </ul>"
+
+#: Mailman/Gui/Privacy.py:224
+msgid ""
+"Text to include in any\n"
+" <a href=\"?VARHELP/privacy/sender/member_moderation_action\"\n"
+" >rejection notice</a> to\n"
+" be sent to moderated members who post to this list."
+msgstr ""
+"Teksti, joka lisätään mihin tahansa\n"
+" <a href=\"?VARHELP/privacy/sender/member_moderation_action\"\n"
+" >hylkäysilmoitukseen</a> to\n"
+" lähetettäväksi jäsenelle, joka postittaa tälle listalle."
+
+#: Mailman/Gui/Privacy.py:229
+msgid "Non-member filters"
+msgstr "Ei-jäsenten suodattimet"
+
+#: Mailman/Gui/Privacy.py:232
+msgid ""
+"List of non-member addresses whose postings should be\n"
+" automatically accepted."
+msgstr ""
+"Lista ei-jäsenten osoitteista, joiden lähetykset pitäisi\n"
+" hyväksyä automaattisesti."
+
+#: Mailman/Gui/Privacy.py:235
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" accepted with no further moderation applied. Add member\n"
+" addresses one per line; start the line with a ^ character to\n"
+" designate a regular expression match."
+msgstr ""
+"Lähetykset miltä tahansa näiltä ei-jäseniniltä hyväksytään\n"
+" automaattisesti ilman erillistä hyväksyntää. Lisää jäsenen\n"
+" osoitteet yksi riville; aloita rivi ^ merkillä\n"
+" ilmoituksena tavallisesta ilmaisusta."
+
+#: Mailman/Gui/Privacy.py:241
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" immediately held for moderation."
+msgstr ""
+"Lista ei-jäsenten osoitteista, joiden lähetykset pidätetään\n"
+" heti hyväksyntää varten."
+
+#: Mailman/Gui/Privacy.py:244
+msgid ""
+"Postings from any of these non-members will be immediately\n"
+" and automatically held for moderation by the list moderators.\n"
+" The sender will receive a notification message which will "
+"allow\n"
+" them to cancel their held message. Add member addresses one "
+"per\n"
+" line; start the line with a ^ character to designate a regular\n"
+" expression match."
+msgstr ""
+"Lähetykset miltä tahansa näiltä ei-jäseniltä pidätetään heti\n"
+" ja automaattisesti listan pääkäyttäjän hyväksyntää varten.\n"
+" Lähettäjä saa ilmoitusviestin, joka sallii heidän\n"
+" peruuttavan pidätetyt viestinsä. Lisää jäsenen osoitteet yksi\n"
+" riville; aloite ^ merkillä, joka ilmaiseen tavallisen\n"
+" ilmaisun."
+
+#: Mailman/Gui/Privacy.py:252
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" automatically rejected."
+msgstr ""
+"Lista ei-jäsenten osoitteista, joiden lähetykset\n"
+" hylätään automaattisesti."
+
+#: Mailman/Gui/Privacy.py:255
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" rejected. In other words, their messages will be bounced back "
+"to\n"
+" the sender with a notification of automatic rejection. This\n"
+" option is not appropriate for known spam senders; their "
+"messages\n"
+" should be\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >automatically discarded</a>.\n"
+"\n"
+" <p>Add member addresses one per line; start the line with a ^\n"
+" character to designate a regular expression match."
+msgstr ""
+"Lähetykset miltä tahansa näiltä ei-jäseniltä hylätään automaattisesti.\n"
+" Toisin sanoen, heidän viestit palautetaan takaisin "
+"lähettäjälle\n"
+" automaattisella palautusviesti-ilmoituksella. Tämä\n"
+" valinta ei sovellu tunnetuille roskapostin lähettäjille; heidän "
+"viestinsä\n"
+" pitäisi\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >automaattisesti hylätä</a>.\n"
+"\n"
+" <p>Lisää jäsenen osoitteet yksi riville; aloita rivi ^\n"
+" merkillä, joka ilmoittaa tavallisen ilmaisun."
+
+#: Mailman/Gui/Privacy.py:267
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" automatically discarded."
+msgstr ""
+"Lista ei-jäsenten osoitteista, joiden lähetykset\n"
+" automaattisesti hylätään."
+
+#: Mailman/Gui/Privacy.py:270
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" discarded. That is, the message will be thrown away with no\n"
+" further processing or notification. The sender will not "
+"receive\n"
+" a notification or a bounce, however the list moderators can\n"
+" optionally <a href=\"?VARHELP=privacy/sender/"
+"forward_auto_discards\"\n"
+" >receive copies of auto-discarded messages.</a>.\n"
+"\n"
+" <p>Add member addresses one per line; start the line with a ^\n"
+" character to designate a regular expression match."
+msgstr ""
+"Lähetykset miltä tahansa näiltä ei-jäseniltä hylätään \n"
+" automaattisesti. Viesti heitetään pois ilman erillistä\n"
+" käsittelyä tai ilmoitusta. Lähettäjä ei saa ilmoitusta\n"
+" tai palautusta, kuitenkin listan pääkäyttäjä voi\n"
+" vaihtoehtoisesti <a href=\"?VARHELP=privacy/sender/"
+"forward_auto_discards\"\n"
+" >saada kopiot automaattisesti hylätyistä viesteistä.</a>.\n"
+"\n"
+" <p>Lisää jäsenen osoitteet yksi riville; aloita rivi ^\n"
+" merkillä, joka osoittee normaalin ilmaisun."
+
+#: Mailman/Gui/Privacy.py:282
+msgid ""
+"Action to take for postings from non-members for which no\n"
+" explicit action is defined."
+msgstr ""
+"Toiminto, joka tehdään ei-jäsenten lähetyksille, joille ei\n"
+" nimenomaista toimintaa ole määritelty."
+
+#: Mailman/Gui/Privacy.py:285
+msgid ""
+"When a post from a non-member is received, the message's\n"
+" sender is matched against the list of explicitly\n"
+" <a href=\"?VARHELP=privacy/sender/accept_these_nonmembers\"\n"
+" >accepted</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/hold_these_nonmembers\">held</"
+"a>,\n"
+" <a href=\"?VARHELP=privacy/sender/reject_these_nonmembers\"\n"
+" >rejected</a> (bounced), and\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >discarded</a> addresses. If no match is found, then this "
+"action\n"
+" is taken."
+msgstr ""
+"Kun lähetys ei-jäsenelta saadaan, viestin lähettäjän\n"
+" tiedot tarkistetaan nimenomaisesti\n"
+" <a href=\"?VARHELP=privacy/sender/accept_these_nonmembers\"\n"
+" >hyväksyttyjen</a> listasta,\n"
+" <a href=\"?VARHELP=privacy/sender/hold_these_nonmembers"
+"\">pidätetään</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/reject_these_nonmembers\"\n"
+" >hylätään</a> (palautetaan), ja\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >hylätään</a> osoitteet. Jos vastaavuutta ei löydy, tämä "
+"toiminto\n"
+" suoritetaan."
+
+#: Mailman/Gui/Privacy.py:297
+msgid ""
+"Should messages from non-members, which are automatically\n"
+" discarded, be forwarded to the list moderator?"
+msgstr ""
+"Pitäisikö viestit ei-jäseniltä, jotka ovat automaattisesti\n"
+" hylättä, lähettää edelleen listan pääkäyttäjälle?"
+
+#: Mailman/Gui/Privacy.py:303
+msgid ""
+"This section allows you to configure various filters based on\n"
+" the recipient of the message."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:306
+#, fuzzy
+msgid "Recipient filters"
+msgstr "Jäsenien suodatukset"
+
+#: Mailman/Gui/Privacy.py:310
+msgid ""
+"Must posts have list named in destination (to, cc) field\n"
+" (or be among the acceptable alias names, specified below)?"
+msgstr ""
+"Täytyykö lähetyksillä olla lista nimettynä kohteeseen (to, cc) kenttään\n"
+" (tai olla hyväksyttyjen alias-nimen joukossa, määritelty "
+"alapuolella)?"
+
+#: Mailman/Gui/Privacy.py:313
+msgid ""
+"Many (in fact, most) spams do not explicitly name their\n"
+" myriad destinations in the explicit destination addresses - in\n"
+" fact often the To: field has a totally bogus address for\n"
+" obfuscation. The constraint applies only to the stuff in the\n"
+" address before the '@' sign, but still catches all such spams.\n"
+"\n"
+" <p>The cost is that the list will not accept unhindered any\n"
+" postings relayed from other addresses, unless\n"
+"\n"
+" <ol>\n"
+" <li>The relaying address has the same name, or\n"
+"\n"
+" <li>The relaying address name is included on the options "
+"that\n"
+" specifies acceptable aliases for the list.\n"
+"\n"
+" </ol>"
+msgstr ""
+"Monet (tosiasiassa useimmat) roskapostit eivät nimenomaisesti nimeä\n"
+" lukuisia kohteita nimenomaisissa kohdeosoitteissa - Tosi-\n"
+" asiassa usein To: kenttässä on täysin väärä osoite asioiden\n"
+" monimutkaistamiseksi. Rajoitus koskee vain osoitteen tietoa\n"
+" ennen '@' merkkiä, mutta edelleen saa kiinni sellaisen "
+"roskapostin.\n"
+"\n"
+" <p>Tämän seurauksena lista ei hyväksy suoraan mitään\n"
+" lähetyksiä jotka on lähetetty muista osoitteista, ellei\n"
+"\n"
+" <ol>\n"
+" <li>Lähettävällä osoitteella on sama nimi, tai\n"
+"\n"
+" <li>lähettävän osoitteen nimi on sisällytetty valintoihin,"
+"jotka\n"
+" määritellään hyväksyttyjen alias-nimiin listalle.\n"
+"\n"
+" </ol>"
+
+#: Mailman/Gui/Privacy.py:331
+msgid ""
+"Alias names (regexps) which qualify as explicit to or cc\n"
+" destination names for this list."
+msgstr ""
+"Alias-nimet (regexps) jotka määrittelee nimenomaan to tai cc\n"
+" kohdenimet listalle."
+
+#: Mailman/Gui/Privacy.py:334
+msgid ""
+"Alternate addresses that are acceptable when\n"
+" `require_explicit_destination' is enabled. This option takes "
+"a\n"
+" list of regular expressions, one per line, which is matched\n"
+" against every recipient address in the message. The matching "
+"is\n"
+" performed with Python's re.match() function, meaning they are\n"
+" anchored to the start of the string.\n"
+" \n"
+" <p>For backwards compatibility with Mailman 1.1, if the regexp\n"
+" does not contain an `@', then the pattern is matched against "
+"just\n"
+" the local part of the recipient address. If that match fails, "
+"or\n"
+" if the pattern does contain an `@', then the pattern is "
+"matched\n"
+" against the entire recipient address.\n"
+" \n"
+" <p>Matching against the local part is deprecated; in a future\n"
+" release, the pattern will always be matched against the entire\n"
+" recipient address."
+msgstr ""
+"Vaihtoehtoiset nimet ovat hyväksyttyjä, kun\n"
+" equire_explicit_destination' on päällä. Tämä valinta tekee\n"
+" tavallisten ilmaisujen listan, yksi riville, jolta "
+"tarkistetaan\n"
+" kaikkien viestin vastaanottajien osoitteet. Tarkistus tehdään\n"
+" Pythonin re.match() function -komennolla, joka tarkoittaa\n"
+" että ne on kytketty merkkijonon alkuun.\n"
+" \n"
+" <p>Yhteensopivuutta Mailman 1.1 varten, jos regexp\n"
+" ei sisällä paikallista\n"
+" osaa vasten. Jos tämä sovittaminen epäonnistuu, tai\n"
+" jos mallissa ei ole sovitetaan\n"
+" koko vastaanottajan osoitetta vasten.\n"
+" \n"
+" <p>Sovittaminen paikallista osaa vasten ei suositella; \n"
+" seuraavassa versiossa, malli sovitetaan koko vastaanottajan\n"
+" osoitetta vasten."
+
+#: Mailman/Gui/Privacy.py:352
+msgid "Ceiling on acceptable number of recipients for a posting."
+msgstr "Lähetyksen vastaanottajien enimmäismäärä"
+
+#: Mailman/Gui/Privacy.py:354
+msgid ""
+"If a posting has this number, or more, of recipients, it is\n"
+" held for admin approval. Use 0 for no ceiling."
+msgstr ""
+"Jos lähetyksellä on tämä määrä, tai enemmän, vastaanottajia, se jätetään\n"
+" odottamaan ylläpidon hyväksyntää. Syötä 0, jos et halua rajaa."
+
+#: Mailman/Gui/Privacy.py:359
+msgid ""
+"This section allows you to configure various anti-spam\n"
+" filters posting filters, which can help reduce the amount of "
+"spam\n"
+" your list members end up receiving.\n"
+" "
+msgstr ""
+"Tämä kappale sallii sinun määritellä erilaisia roskapostin\n"
+" vastaisia suodattimia, joka voi helpottaa vähentämään "
+"roskapostin\n"
+" määrää, jotka listasi jäsenet tulisivat saamaan.\n"
+" "
+
+#: Mailman/Gui/Privacy.py:364
+msgid "Anti-Spam filters"
+msgstr "Roskapostin vastaiset suodattimet"
+
+#: Mailman/Gui/Privacy.py:367
+msgid "Hold posts with header value matching a specified regexp."
+msgstr "Pidätä lähetykset, joiden otsikko täsmää regexp-arvon kanssa."
+
+#: Mailman/Gui/Privacy.py:368
+#, fuzzy
+msgid ""
+"Use this option to prohibit posts according to specific\n"
+" header values. The target value is a regular-expression for\n"
+" matching against the specified header. The match is done\n"
+" disregarding letter case. Lines beginning with '#' are "
+"ignored\n"
+" as comments.\n"
+"\n"
+" <p>For example:<pre>to: .*@public.com </pre> says to hold all\n"
+" postings with a <em>To:</em> mail header containing '@public."
+"com'\n"
+" anywhere among the addresses.\n"
+"\n"
+" <p>Note that leading whitespace is trimmed from the regexp. "
+"This\n"
+" can be circumvented in a number of ways, e.g. by escaping or\n"
+" bracketing it."
+msgstr ""
+"Käytä tätä valintaa kieltääksesi lähetykset määritellyn otsikon\n"
+" arvojen mukaan. Kohdearvo on säännöllisen ilmentymän\n"
+" sovittaminen määriteltyä otsikkoa vastaan. Sovittaminen\n"
+" ei huomioi kirjaimen kokoa. Rivit, jotka alkavat '#', "
+"jätetään\n"
+" huomioimatta kommentteina.\n"
+"\n"
+" <p>Esimerkiksi:<pre>to: .*@public.com </pre> pidättää,\n"
+" kaikki postitukset, joiden <em>To:</em> kenttä "
+"sisältää'@public.com'\n"
+" missä tahansa kohtaa osoitetta.\n"
+"\n"
+" <p>Huomaa, että etu leading whitespace karsitaan pois regexp:"
+"istä. Tämä\n"
+" voidaan kiertää monilla keinoilla, esim. esc-merkillä tai\n"
+" sulkumerkeillä.\n"
+" \n"
+" <p> Katso myös <em>forbidden_posters</em> valinta "
+"vastaavanlaisista\n"
+" mekanismeista."
+
+#: Mailman/Gui/Topics.py:28
+msgid "Topics"
+msgstr "Aiheet"
+
+#: Mailman/Gui/Topics.py:36
+msgid "List topic keywords"
+msgstr "Lista aiheen avainsanoista"
+
+#: Mailman/Gui/Topics.py:38
+msgid "Disabled"
+msgstr "Pois käytöstä"
+
+#: Mailman/Gui/Topics.py:38
+msgid "Enabled"
+msgstr "Käytössä"
+
+#: Mailman/Gui/Topics.py:39
+msgid "Should the topic filter be enabled or disabled?"
+msgstr "Pitäisikö aiheen suodatin olla päällä vai pois päältä?"
+
+#: Mailman/Gui/Topics.py:41
+msgid ""
+"The topic filter categorizes each incoming email message\n"
+" according to <a\n"
+" href=\"http://www.python.org/doc/current/lib/module-re.html"
+"\">regular\n"
+" expression filters</a> you specify below. If the message's\n"
+" <code>Subject:</code> or <code>Keywords:</code> header contains "
+"a\n"
+" match against a topic filter, the message is logically placed\n"
+" into a topic <em>bucket</em>. Each user can then choose to "
+"only\n"
+" receive messages from the mailing list for a particular topic\n"
+" bucket (or buckets). Any message not categorized in a topic\n"
+" bucket registered with the user is not delivered to the list.\n"
+"\n"
+" <p>Note that this feature only works with regular delivery, "
+"not\n"
+" digest delivery.\n"
+"\n"
+" <p>The body of the message can also be optionally scanned for\n"
+" <code>Subject:</code> and <code>Keywords:</code> headers, as\n"
+" specified by the <a\n"
+" href=\"?VARHELP=topics/topics_bodylines_limit"
+"\">topics_bodylines_limit</a>\n"
+" configuration variable."
+msgstr ""
+"Aiheen suodattimet luokittelee jokaisen tulevan sähköpostin\n"
+" <a\n"
+" href=\"http://www.python.org/doc/current/lib/module-re.html"
+"\">tavallisen\n"
+" ilmaisun suodattimen</a> mukaan kuten määrittelet alla. Jos\n"
+" viestin <code>Aihe:</code> tai <code>Avainsanat:</code> kentät "
+"täsmäävät\n"
+" aiheen suodattimiin, viesti sijoitetaan loogisesti\n"
+" aiheeseen <em>sankoon</em>. Jokainen käyttäjä voi sitten "
+"valita\n"
+" saada viestejä listalta vain tietystä aihealueesta\n"
+" (tai aihealueista). Viesti, jota ei ole luokiteltu mihinkään\n"
+" rekisteröityyn aihealueeseen käyttäjällä ei jaella listalle.\n"
+"\n"
+" <p>Huomaa, että tämä piirre toimii vain tavallisilla "
+"jakeluilla, \n"
+" ei lukemistoilla.\n"
+"\n"
+" <p>Viestiosa voidaan vaihtoehtoisesti myös selata\n"
+" <code>Aihe:</code> ja <code>Avainsanat:</code> kentillä,\n"
+" kuten määritelty <a\n"
+" href=\"?VARHELP=topics/topics_bodylines_limit"
+"\">topics_bodylines_limit</a>\n"
+" määritysmuuttujassa."
+
+#: Mailman/Gui/Topics.py:62
+msgid "How many body lines should the topic matcher scan?"
+msgstr "Kuinka monta riviä pitäisi aiheen etsijän lukea?"
+
+#: Mailman/Gui/Topics.py:64
+msgid ""
+"The topic matcher will scan this many lines of the message\n"
+" body looking for topic keyword matches. Body scanning stops "
+"when\n"
+" either this many lines have been looked at, or a non-header-"
+"like\n"
+" body line is encountered. By setting this value to zero, no "
+"body\n"
+" lines will be scanned (i.e. only the <code>Keywords:</code> "
+"and\n"
+" <code>Subject:</code> headers will be scanned). By setting "
+"this\n"
+" value to a negative number, then all body lines will be "
+"scanned\n"
+" until a non-header-like line is encountered.\n"
+" "
+msgstr ""
+"Aiheen etsijä lukee tämän verran viestiosan rivejä, etsien\n"
+" sopivaa aiheen avainsanaa. Viestiosan lukeminen loppuu kun\n"
+" joko näin monta riviä on etsitty tai, non-header-like\n"
+" rivi kohdataan. Asettamalla tämän arvoksi 0, viestiosan "
+"rivejä\n"
+" ei lueta (t.s. vain <code>Avainsanat:</code> ja\n"
+" <code>Aihe:</code> kentät luetaan). Asettamalla tämän\n"
+" arvoksi negatiivinen luku, kaikki viestiosan rivit luetaan\n"
+" kunnes kohdataan non-header-like rivi.\n"
+" "
+
+#: Mailman/Gui/Topics.py:75
+msgid "Topic keywords, one per line, to match against each message."
+msgstr "Aiheen avainsanat, yksi riville, jotka sovitetaan jokaiselle viestille"
+
+#: Mailman/Gui/Topics.py:77
+msgid ""
+"Each topic keyword is actually a regular expression, which is\n"
+" matched against certain parts of a mail message, specifically "
+"the\n"
+" <code>Keywords:</code> and <code>Subject:</code> message "
+"headers.\n"
+" Note that the first few lines of the body of the message can "
+"also\n"
+" contain a <code>Keywords:</code> and <code>Subject:</code>\n"
+" \"header\" on which matching is also performed."
+msgstr ""
+"Jokainen aiheen avainsanan on oikeastaan tavallinen ilmaisu, jota\n"
+" verrataan tiettyjä viestin osia vastaanm, erityisesti, \n"
+" viestin otsikkotietojen <code>Avainsanat:</code> ja <code>Aihe:"
+"</code>.\n"
+" Note että muutamat ensimmäiset viestiosan rivit voivatmyös\n"
+" sisältää <code>Avainsanat:</code> ja <code>Aihe:</code>\n"
+" \"header\" joissa lukeminen myös suoritetaan."
+
+#: Mailman/Gui/Topics.py:116
+msgid ""
+"Topic specifications require both a name and\n"
+" a pattern. Incomplete topics will be ignored."
+msgstr ""
+"Aiheen määrittelyt vaativat sekä nimen että\n"
+" mallin. Epätäydellisiä aiheita ei huomioida."
+
+#: Mailman/Gui/Topics.py:124
+msgid ""
+"The topic pattern `%(pattern)s' is not a\n"
+" legal regular expression. It will be discarded."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:25
+msgid "Mail&lt;-&gt;News&nbsp;gateways"
+msgstr "Mail&lt;-&gt;News&nbsp;gateways"
+
+#: Mailman/Gui/Usenet.py:35
+msgid "Mail-to-News and News-to-Mail gateway services."
+msgstr "Mail-to-News ja News-to-Mail yhdyskäytävä palvelut"
+
+#: Mailman/Gui/Usenet.py:37
+msgid "News server settings"
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:40
+msgid ""
+"The Internet address of the machine your News server is\n"
+" running on."
+msgstr ""
+"Internet-osoite koneelle, jossa News-palvelin\n"
+" on käynnissä."
+
+#: Mailman/Gui/Usenet.py:42
+msgid ""
+"The News server is not part of Mailman proper. You have to\n"
+" already have access to a NNTP server, and that NNTP server has "
+"to\n"
+" recognize the machine this mailing list runs on as a machine\n"
+" capable of reading and posting news."
+msgstr ""
+"Uutispalvelin ei ole osa Mailmanin ominaisuuksia. Sinulla täytyy\n"
+" olla jo oikeus NNTP-palvelimelle, ja että NNTP-palvelimen "
+"täytyy\n"
+" tunnistaa tätä postituslistaa käyttävä kone sellaiseksi joka\n"
+" pystyy lukemaan ja lähettämäään uutisia."
+
+#: Mailman/Gui/Usenet.py:48
+msgid "The name of the Usenet group to gateway to and/or from."
+msgstr "Usenet-ryhmän nimi reitittimeen ja/tai reitittimestä."
+
+#: Mailman/Gui/Usenet.py:51
+msgid ""
+"Should new posts to the mailing list be sent to the\n"
+" newsgroup?"
+msgstr ""
+"Pitäisikö postituslistalle tulevat uudet lähetykset lähettää\n"
+" uutisryhmään?"
+
+#: Mailman/Gui/Usenet.py:55
+msgid ""
+"Should new posts to the newsgroup be sent to the mailing\n"
+" list?"
+msgstr ""
+"Pitäisikö uudet lähetykset uutisryhmään lähettää\n"
+" postituslistalle?"
+
+#: Mailman/Gui/Usenet.py:58
+#, fuzzy
+msgid "Forwarding options"
+msgstr "Arkistointivalinnat"
+
+#: Mailman/Gui/Usenet.py:61
+#, fuzzy
+msgid "Moderated"
+msgstr "Listan pääkäyttäjä"
+
+#: Mailman/Gui/Usenet.py:61
+msgid "Open list, moderated group"
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:64
+msgid "The moderation policy of the newsgroup."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:66
+msgid ""
+"This setting determines the moderation policy of the\n"
+" newsgroup and its interaction with the moderation policy of "
+"the\n"
+" mailing list. This only applies to the newsgroup that you are\n"
+" gatewaying <em>to</em>, so if you are only gatewaying from\n"
+" Usenet, or the newsgroup you are gatewaying to is not "
+"moderated,\n"
+" set this option to <em>None</em>.\n"
+"\n"
+" <p>If the newsgroup is moderated, you can set this mailing "
+"list\n"
+" up to be the moderation address for the newsgroup. By "
+"selecting\n"
+" <em>Moderated</em>, an additional posting hold will be placed "
+"in\n"
+" the approval process. All messages posted to the mailing list\n"
+" will have to be approved before being sent on to the "
+"newsgroup,\n"
+" or to the mailing list membership.\n"
+"\n"
+" <p><em>Note that if the message has an <tt>Approved</tt> "
+"header\n"
+" with the list's administrative password in it, this hold test\n"
+" will be bypassed, allowing privileged posters to send messages\n"
+" directly to the list and the newsgroup.</em>\n"
+"\n"
+" <p>Finally, if the newsgroup is moderated, but you want to "
+"have\n"
+" an open posting policy anyway, you should select <em>Open "
+"list,\n"
+" moderated group</em>. The effect of this is to use the normal\n"
+" Mailman moderation facilities, but to add an <tt>Approved</tt>\n"
+" header to all messages that are gatewayed to Usenet."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:92
+msgid "Prefix <tt>Subject:</tt> headers on postings gated to news?"
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:93
+msgid ""
+"Mailman prefixes <tt>Subject:</tt> headers with\n"
+" <a href=\"?VARHELP=general/subject_prefix\">text you can\n"
+" customize</a> and normally, this prefix shows up in messages\n"
+" gatewayed to Usenet. You can set this option to <em>No</em> "
+"to\n"
+" disable the prefix on gated messages. Of course, if you turn "
+"off\n"
+" normal <tt>Subject:</tt> prefixes, they won't be prefixed for\n"
+" gated messages either."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:101
+#, fuzzy
+msgid "Mass catch up"
+msgstr "Joukkoajantasaistaminen tehty"
+
+#: Mailman/Gui/Usenet.py:104
+msgid "Should Mailman perform a <em>catchup</em> on the newsgroup?"
+msgstr "Pitäisikö Mailmanin tehdä <em>ajantasaistaminen</em> uutisryhmässä?"
+
+#: Mailman/Gui/Usenet.py:105
+msgid ""
+"When you tell Mailman to perform a catchup on the newsgroup,\n"
+" this means that you want to start gating messages to the "
+"mailing\n"
+" list with the next new message found. All earlier messages on\n"
+" the newsgroup will be ignored. This is as if you were reading\n"
+" the newsgroup yourself, and you marked all current messages as\n"
+" <em>read</em>. By catching up, your mailing list members will\n"
+" not see any of the earlier messages."
+msgstr ""
+"Kun pyydät Mailmania tekemään uutisryhmän ajantasaistamisen,\n"
+" tämä tarkoittaa, että haluat aloittaa viestin kokoamisen "
+"postituslistaan\n"
+" seuraavasta uudesta viestistä alkaen. Mitään uutisryhmän\n"
+" aikaisempia viestejä ei huomioida. Näin tapahtuu, jos olet "
+"itse\n"
+" ollut lukemassa uutisryhmän viestejä, ja merkinnyt kaikki "
+"nykyiset\n"
+" viestit <em>luetuiksi</em>. Ajantasaistamisessa , "
+"postituslistasi jäsenet eivät\n"
+" näe mitään näitä aiempia viestejä."
+
+#: Mailman/Gui/Usenet.py:119
+msgid "Mass catchup completed"
+msgstr "Joukkoajantasaistaminen tehty"
+
+#: Mailman/Gui/Usenet.py:131
+msgid ""
+"You cannot enable gatewaying unless both the\n"
+" <a href=\"?VARHELP=gateway/nntp_host\">news server field</a> "
+"and\n"
+" the <a href=\"?VARHELP=gateway/linked_newsgroup\">linked\n"
+" newsgroup</a> fields are filled in."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:47
+msgid "%(listinfo_link)s list run by %(owner_link)s"
+msgstr "%(listinfo_link)s lista %(owner_link)s ylläpitäjänä"
+
+#: Mailman/HTMLFormatter.py:55
+msgid "%(realname)s administrative interface"
+msgstr "%(realname)s ylläpito käyttöliittymä"
+
+#: Mailman/HTMLFormatter.py:56
+msgid " (requires authorization)"
+msgstr " (vaatii valtuutuksen)"
+
+#: Mailman/HTMLFormatter.py:59
+msgid "Overview of all %(hostname)s mailing lists"
+msgstr "Yleiskuva kaikista %(hostname)s postituslistoista"
+
+#: Mailman/HTMLFormatter.py:80
+msgid "<em>(1 private member not shown)</em>"
+msgstr "<em>(1 yksityistä jäsentä ei näytetä)</em>"
+
+#: Mailman/HTMLFormatter.py:82
+msgid "<em>(%(num_concealed)d private members not shown)</em>"
+msgstr "<em>(%(num_concealed)d yksityistä jäsentä ei näytetä)</em>"
+
+#: Mailman/HTMLFormatter.py:137
+msgid "; it was disabled by you"
+msgstr "; olet ottanut sen pois käytöstä"
+
+#: Mailman/HTMLFormatter.py:139
+msgid "; it was disabled by the list administrator"
+msgstr "; listan ylläpitäjä on ottanut sen pois käytöstä"
+
+#: Mailman/HTMLFormatter.py:143
+#, fuzzy
+msgid ""
+"; it was disabled due to excessive bounces. The\n"
+" last bounce was received on %(date)s"
+msgstr "; otettu pois käytöstä liiallisten palautusten vuoksi"
+
+#: Mailman/HTMLFormatter.py:146
+msgid "; it was disabled for unknown reasons"
+msgstr "; se on otettu pois käytöstä tuntemattomasta syystä"
+
+#: Mailman/HTMLFormatter.py:148
+#, fuzzy
+msgid "Note: your list delivery is currently disabled%(reason)s."
+msgstr "Huomaa: listalle jakosi on otettu pois käytöstä %(reason)s vuoksi."
+
+#: Mailman/HTMLFormatter.py:151
+msgid "Mail delivery"
+msgstr "Viestin toimitus"
+
+#: Mailman/HTMLFormatter.py:153 Mailman/HTMLFormatter.py:298
+msgid "the list administrator"
+msgstr "listan ylläpitäjä"
+
+#: Mailman/HTMLFormatter.py:154
+msgid ""
+"<p>%(note)s\n"
+"\n"
+" <p>You may have disabled list delivery intentionally,\n"
+" or it may have been triggered by bounces from your email\n"
+" address. In either case, to re-enable delivery, change the\n"
+" %(link)s option below. Contact %(mailto)s if you have any\n"
+" questions or need assistance."
+msgstr ""
+"<p>%(note)s\n"
+"\n"
+" <p>Olet ehkä ottanut listalle lähetykset pois käytösä ,\n"
+" tarkoituksella tai se on tehty osoitteeseesi liiallisten "
+"palautettujen\n"
+" viestien vuoksi. Kummassakin tapauksessa, mahdollistaaksesi "
+"lähtykset,\n"
+" muuta %(link)s valinta alla. Ota yhteys %(mailto)s jos sinulla\n"
+" kysyttävää tai tarvitset apua."
+
+#: Mailman/HTMLFormatter.py:166
+msgid ""
+"<p>We have received some recent bounces from your\n"
+" address. Your current <em>bounce score</em> is %(score)s out of "
+"a\n"
+" maximum of %(total)s. Please double check that your subscribed\n"
+" address is correct and that there are no problems with delivery "
+"to\n"
+" this address. Your bounce score will be automatically reset if\n"
+" the problems are corrected soon."
+msgstr ""
+"<p>Olemma saaneet lähiaikoina joitakin palautettuja viestejä\n"
+" osoitteestasi. Nykyinen <em>palautettujen viestien määrä</em> "
+"on %(score)s \n"
+" maksimista %(total)s. Ole hyvä ja tarkista, että\n"
+" osoite on oikein ja että tähän osoitteeseen lähetyksessä ei ole\n"
+" ongelmia. Palautusarvosi nollataan automaattisesti, jos\n"
+" ongelmat korjataan pian."
+
+#: Mailman/HTMLFormatter.py:178
+msgid ""
+"(Note - you are subscribing to a list of mailing lists, so the %(type)s "
+"notice will be sent to the admin address for your membership, %(addr)s.)<p>"
+msgstr ""
+"(Huomaa - olet liittymässä postituslistojen listalle, joten %(type)s "
+"ilmoitus jäsenyydestäsi lähetettään ylläpitäjän osoitteeseen, %(addr)s.)<p>"
+
+#: Mailman/HTMLFormatter.py:188
+msgid ""
+"You will be sent email requesting confirmation, to\n"
+" prevent others from gratuitously subscribing you."
+msgstr ""
+"Sinulle lähetetään viesti, joka vaatii vahvistuksen, näin\n"
+" estetään muita tarpeettomasti liittämästä sinua listalle."
+
+#: Mailman/HTMLFormatter.py:191
+msgid ""
+"This is a closed list, which means your subscription\n"
+" will be held for approval. You will be notified of the list\n"
+" moderator's decision by email."
+msgstr ""
+"Tämä on suljettu lista, joka tarkoittaa, että liittymisesi\n"
+" odottaa hyväksymistä. Sinulle ilmoitetaan listan pää-\n"
+" käyttäjän päätös sähköpostitse."
+
+#: Mailman/HTMLFormatter.py:194 Mailman/HTMLFormatter.py:201
+msgid "also "
+msgstr "myös"
+
+#: Mailman/HTMLFormatter.py:196
+msgid ""
+"You will be sent email requesting confirmation, to\n"
+" prevent others from gratuitously subscribing you. Once\n"
+" confirmation is received, your request will be held for "
+"approval\n"
+" by the list moderator. You will be notified of the moderator's\n"
+" decision by email."
+msgstr ""
+"Sinulle lähetetään sähköpostina vahvistuspyyntö, jotta voidaan\n"
+" estää muita tarpeettomasti sinun liittämisesi. Kun\n"
+" saat vahvistuksen, vastauksesi jää odottamaan listan "
+"pääkäyttäjän\n"
+" hyväksymistä. Sinulle ilmoitetaan pääkäyttäjän päätös\n"
+" sähköpostitse."
+
+#: Mailman/HTMLFormatter.py:205
+msgid ""
+"This is %(also)sa private list, which means that the\n"
+" list of members is not available to non-members."
+msgstr ""
+"Tämä on %(also)sa yksityinen lista, joka tarkoittaa, että\n"
+" listan jäsenet eivät ole tarjolla ei-jäsenille."
+
+#: Mailman/HTMLFormatter.py:208
+msgid ""
+"This is %(also)sa hidden list, which means that the\n"
+" list of members is available only to the list administrator."
+msgstr ""
+"Tämä on %(also)sa piilotettu, joka tarkoittaa, että\n"
+" listan jäsenet ovat tarjolla vain listan ylläpitäjälle."
+
+#: Mailman/HTMLFormatter.py:211
+msgid ""
+"This is %(also)sa public list, which means that the\n"
+" list of members list is available to everyone."
+msgstr ""
+"Tämä on %(also)sa julkinen lista, joka tarkoittaa, että\n"
+" listan jäsenet ovat kaikkien saatavilla."
+
+#: Mailman/HTMLFormatter.py:214
+msgid ""
+" (but we obscure the addresses so they are not\n"
+" easily recognizable by spammers)."
+msgstr ""
+" (mutta peitämme osoitteet, niin että ne eivät ole helposti\n"
+" yleisten roskapostilähettäjien tunnistettavissa)."
+
+#: Mailman/HTMLFormatter.py:219
+msgid ""
+"<p>(Note that this is an umbrella list, intended to\n"
+" have only other mailing lists as members. Among other things,\n"
+" this means that your confirmation request will be sent to the\n"
+" `%(sfx)s' account for your address.)"
+msgstr ""
+"<p>(Huomaa, että tämä on sateenvarjolista, jolle\n"
+" on liitettynä vain muita postituslistoja. Tämä mm. tarkoittaa\n"
+" sitä, että vahvistuspyyntöstä lähetetään\n"
+" %(sfx)s' osoitteeseesi.)"
+
+#: Mailman/HTMLFormatter.py:248
+msgid "<b><i>either</i></b> "
+msgstr "<b><i>jompikumpi</i></b> "
+
+#: Mailman/HTMLFormatter.py:253
+msgid ""
+"To unsubscribe from %(realname)s, get a password reminder,\n"
+" or change your subscription options %(either)senter your "
+"subscription\n"
+" email address:\n"
+" <p><center> "
+msgstr ""
+"Irtisanoaksesi %(realname)s, ota salasanan muistuttaja,\n"
+" tai vaihda liittymisasetuksissasi %(either)s ja syötä liittymis-\n"
+" sähköpostiosoite:\n"
+" <p><center> "
+
+#: Mailman/HTMLFormatter.py:260
+msgid "Unsubscribe or edit options"
+msgstr "Irtisanomis tai muokkausvalinnat"
+
+#: Mailman/HTMLFormatter.py:264
+msgid ""
+"<p>... <b><i>or</i></b> select your entry from\n"
+" the subscribers list (see above)."
+msgstr ""
+"<p>... <b><i>tai</i></b> valitse tietosi\n"
+" liittyneiden listalta (katso alla)."
+
+#: Mailman/HTMLFormatter.py:266
+msgid ""
+" If you leave the field blank, you will be prompted for\n"
+" your email address"
+msgstr ""
+" Jos jätät kentä tyhjäksi, sinulta kysytään\n"
+" sähköpostiosoitteesi"
+
+#: Mailman/HTMLFormatter.py:274
+#, fuzzy
+msgid ""
+"(<i>%(which)s is only available to the list\n"
+" members.</i>)"
+msgstr ""
+"(<i>%(which)s on vain listan jäsenten\n"
+" saatavilla.</i>)"
+
+#: Mailman/HTMLFormatter.py:278
+#, fuzzy
+msgid ""
+"(<i>%(which)s is only available to the list\n"
+" administrator.</i>)"
+msgstr ""
+"(<i>%(which)s on vain listan ylläpitäjän\n"
+" saatavilla.</i>)"
+
+#: Mailman/HTMLFormatter.py:288
+msgid "Click here for the list of "
+msgstr "Klikkaa täältä listan "
+
+#: Mailman/HTMLFormatter.py:290
+msgid " subscribers: "
+msgstr " liittyneet: "
+
+#: Mailman/HTMLFormatter.py:292
+msgid "Visit Subscriber list"
+msgstr "Vieraile liittyjän listalla"
+
+#: Mailman/HTMLFormatter.py:295
+msgid "members"
+msgstr "jäsenet"
+
+#: Mailman/HTMLFormatter.py:296
+msgid "Address:"
+msgstr "Osoite:"
+
+#: Mailman/HTMLFormatter.py:299
+msgid "Admin address:"
+msgstr "Ylläpitäjän osoite:"
+
+#: Mailman/HTMLFormatter.py:302
+#, fuzzy
+msgid "The subscribers list"
+msgstr "liittyjän lista"
+
+#: Mailman/HTMLFormatter.py:304
+msgid " <p>Enter your "
+msgstr " <p>Syötä "
+
+#: Mailman/HTMLFormatter.py:306
+msgid " and password to visit the subscribers list: <p><center> "
+msgstr " ja salasana mennäksesi liittyjän listalla: <p><center> "
+
+#: Mailman/HTMLFormatter.py:311
+msgid "Password: "
+msgstr "Salasana: "
+
+#: Mailman/HTMLFormatter.py:315
+msgid "Visit Subscriber List"
+msgstr "Vieraile liittyjän listalla"
+
+#: Mailman/HTMLFormatter.py:345
+msgid "Once a month, your password will be emailed to you as a reminder."
+msgstr "Kerran kussa, salasananmuistuttaja lähettää sinulle salasanasi"
+
+#: Mailman/HTMLFormatter.py:391
+#, fuzzy
+msgid "The current archive"
+msgstr "nykyinen arkistointi"
+
+#: Mailman/Handlers/Acknowledge.py:59
+msgid "%(realname)s post acknowledgement"
+msgstr "%(realname)s postitiedot"
+
+#: Mailman/Handlers/CalcRecips.py:68
+msgid ""
+"Your urgent message to the %(realname)s mailing list was not authorized for\n"
+"delivery. The original message as received by Mailman is attached.\n"
+msgstr ""
+"Kiireellinen viestisi %(realname)s postituslitalle ei ole sallittu.\n"
+"Alkuperäinen viesti, kuten Mailman on sen saanut, on liitteenä.\n"
+
+#: Mailman/Handlers/Emergency.py:29
+msgid "Emergency hold on all list traffic is in effect"
+msgstr "Hätäpysäytys kaikilla listoilla on tehokas"
+
+#: Mailman/Handlers/Emergency.py:30 Mailman/Handlers/Hold.py:58
+msgid "Your message was deemed inappropriate by the moderator."
+msgstr "Listan pääkäyttäjä piti viestiäsi sopimamttomana."
+
+#: Mailman/Handlers/Hold.py:53
+msgid "Sender is explicitly forbidden"
+msgstr "Lähettäjä on nimenomaan kielletty"
+
+#: Mailman/Handlers/Hold.py:54
+msgid "You are forbidden from posting messages to this list."
+msgstr "Sinulta on kielletty viestien lähetys tälle listalle."
+
+#: Mailman/Handlers/Hold.py:57
+msgid "Post to moderated list"
+msgstr "Lähetä ylläpidettävälle listalle"
+
+#: Mailman/Handlers/Hold.py:61
+msgid "Post by non-member to a members-only list"
+msgstr "Lähetystä ei-jäseniltä vain jäsenille tarkoitetulle listalle"
+
+#: Mailman/Handlers/Hold.py:62
+msgid "Non-members are not allowed to post messages to this list."
+msgstr "Ei-jäsenet eivat saa lähettää viestejä tälle lsitalle."
+
+#: Mailman/Handlers/Hold.py:65
+msgid "Posting to a restricted list by sender requires approval"
+msgstr "Lähetys rajoitetulle listalle vaatii hyväksynnän"
+
+#: Mailman/Handlers/Hold.py:66
+msgid "This list is restricted; your message was not approved."
+msgstr "Tämä listan on rajoitettu; viestiäsi ei hyväksytty."
+
+#: Mailman/Handlers/Hold.py:69
+msgid "Too many recipients to the message"
+msgstr "Liian monta vastaanottajaa viestille"
+
+#: Mailman/Handlers/Hold.py:70
+msgid "Please trim the recipient list; it is too long."
+msgstr "Muokkaa vastaanottajalistaa; se on liian pitkä."
+
+#: Mailman/Handlers/Hold.py:73
+msgid "Message has implicit destination"
+msgstr "Viestillä on epäsuora kohde"
+
+#: Mailman/Handlers/Hold.py:74
+msgid ""
+"Blind carbon copies or other implicit destinations are\n"
+"not allowed. Try reposting your message by explicitly including the list\n"
+"address in the To: or Cc: fields."
+msgstr ""
+"Piilotettu tiedoksi kenttä (BCC) tai muut epäsuorat kohteet\n"
+"eivät ole sallittuja. Yritä lähettää viesti uudelleen laittamalla\n"
+"listan osoite Vastaanottaja: tai Tiedoksi: kenttiin."
+
+#: Mailman/Handlers/Hold.py:79
+msgid "Message may contain administrivia"
+msgstr "Viesti voi sisältää yläpitoa"
+
+#: Mailman/Handlers/Hold.py:84
+msgid ""
+"Please do *not* post administrative requests to the mailing\n"
+"list. If you wish to subscribe, visit %(listurl)s or send a message with "
+"the\n"
+"word `help' in it to the request address, %(request)s, for further\n"
+"instructions."
+msgstr ""
+"*Älä* lähetä ylläpitopyyntöjä postituslistalle.\n"
+"Jos haluat liittyä, mene %(listurl)s tai lähetä sähköpostiviesti komennolla\n"
+"'help' pyyntöosoiteeseen, %(request)s, lisäohjeita\n"
+"saadaksesi."
+
+#: Mailman/Handlers/Hold.py:90
+msgid "Message has a suspicious header"
+msgstr "Viestillä on epäilyttävä otsikko"
+
+#: Mailman/Handlers/Hold.py:91
+msgid "Your message had a suspicious header."
+msgstr "Viestilläsi on epäilyttävä otsikko."
+
+#: Mailman/Handlers/Hold.py:101
+msgid ""
+"Message body is too big: %(size)d bytes with a limit of\n"
+"%(limit)d KB"
+msgstr ""
+"Viestin runko on liian iso: %(size)d tavua rajoitetusta\n"
+"%(limit)d KB:sta"
+
+#: Mailman/Handlers/Hold.py:106
+msgid ""
+"Your message was too big; please trim it to less than\n"
+"%(kb)d KB in size."
+msgstr ""
+"Viestisi oli liian pitkä; muokkaa sitä pienemmäksi kuin\n"
+"%(kb)d KB."
+
+#: Mailman/Handlers/Hold.py:110
+#, fuzzy
+msgid "Posting to a moderated newsgroup"
+msgstr "Lähetä ylläpidettävälle listalle"
+
+#: Mailman/Handlers/Hold.py:233
+msgid "Your message to %(listname)s awaits moderator approval"
+msgstr "Viestisi %(listname)s odottaa pääkäyttäjän hyväksyntää"
+
+#: Mailman/Handlers/Hold.py:253
+msgid "%(listname)s post from %(sender)s requires approval"
+msgstr "%(listname)s postitukset %(sender)s vaatii hyväksynnän"
+
+#: Mailman/Handlers/Hold.py:260
+msgid ""
+"If you reply to this message, keeping the Subject: header intact, Mailman "
+"will\n"
+"discard the held message. Do this if the message is spam. If you reply to\n"
+"this message and include an Approved: header with the list password in it, "
+"the\n"
+"message will be approved for posting to the list. The Approved: header can\n"
+"also appear in the first line of the body of the reply."
+msgstr ""
+"Jos vastaat tähän viestiin, pitämällä Aihe: otsikko koskemattomana, Mailman "
+"hylkää\n"
+"odottavan viestin. Tee tämä, jos viestin on roskapostia. Jos vastaat\n"
+"tähän viestiin ja liität mukaan Approved: otsikon, jossa on listan salasana, "
+"viesti\n"
+"hyväksytään listalle lähetettäväksi. Approved: otsikko voi\n"
+"myös olla vastauksen runko-osan ensimmäisellä rivillä."
+
+#: Mailman/Handlers/MimeDel.py:56
+msgid "The message's content type was explicitly disallowed"
+msgstr ""
+
+#: Mailman/Handlers/MimeDel.py:61
+msgid "The message's content type was not explicitly allowed"
+msgstr ""
+
+#: Mailman/Handlers/MimeDel.py:73
+msgid "After content filtering, the message was empty"
+msgstr ""
+
+#: Mailman/Handlers/MimeDel.py:208
+msgid ""
+"The attached message matched the %(listname)s mailing list's content "
+"filtering\n"
+"rules and was prevented from being forwarded on to the list membership. "
+"You\n"
+"are receiving the only remaining copy of the discarded message.\n"
+"\n"
+msgstr ""
+
+#: Mailman/Handlers/MimeDel.py:214
+msgid "Content filtered message notification"
+msgstr ""
+
+#: Mailman/Handlers/Moderate.py:138
+msgid ""
+"You are not allowed to post to this mailing list, and your message has been\n"
+"automatically rejected. If you think that your messages are being rejected "
+"in\n"
+"error, contact the mailing list owner at %(listowner)s."
+msgstr ""
+"Sinulle ei ole lupa lähettää viestejä tälle postituslistalle, ja viestisi\n"
+"hylätään automaattisesti. Jos luulet, että viestisi on hylätty virheen\n"
+"vuoksi, ota yhteyttä listan omistajaan %(listowner)s."
+
+#: Mailman/Handlers/Moderate.py:153
+msgid "Auto-discard notification"
+msgstr "Automaatti-hylkäyksen ilmoitus"
+
+#: Mailman/Handlers/Moderate.py:156
+msgid "The attached message has been automatically discarded."
+msgstr "Oheinen viesti on automaattisesti hylätty."
+
+#: Mailman/Handlers/Replybot.py:74
+msgid "Auto-response for your message to "
+msgstr "Automaatti-vastaus viestiisi"
+
+#: Mailman/Handlers/Replybot.py:75
+msgid "the \"%(realname)s\" mailing list"
+msgstr "\"%(realname)s\" postituslista"
+
+#: Mailman/Handlers/Replybot.py:107
+msgid "The Mailman Replybot"
+msgstr "Mailmanin vastaus"
+
+#: Mailman/Handlers/Scrubber.py:148
+msgid "HTML attachment scrubbed and removed"
+msgstr "HTML liitetiedosto poistettu"
+
+#: Mailman/Handlers/Scrubber.py:162 Mailman/Handlers/Scrubber.py:188
+msgid ""
+"An HTML attachment was scrubbed...\n"
+"URL: %(url)s\n"
+msgstr ""
+"HTML liite on poistettu...\n"
+"URL: %(url)s\n"
+
+#: Mailman/Handlers/Scrubber.py:201
+msgid "no subject"
+msgstr "ei aihetta"
+
+#: Mailman/Handlers/Scrubber.py:202
+msgid "no date"
+msgstr "ei päivämäärää"
+
+#: Mailman/Handlers/Scrubber.py:203
+msgid "unknown sender"
+msgstr "tuntematon lähettäjä"
+
+#: Mailman/Handlers/Scrubber.py:205
+msgid ""
+"An embedded message was scrubbed...\n"
+"From: %(who)s\n"
+"Subject: %(subject)s\n"
+"Date: %(date)s\n"
+"Size: %(size)s\n"
+"Url: %(url)s\n"
+msgstr ""
+"Sisällytetty viesti on poistettu...\n"
+"Keneltä: %(who)s\n"
+"Aihe: %(subject)s\n"
+"Päivämäärä: %(date)s\n"
+"Koko: %(size)s\n"
+"Url: %(url)s\n"
+
+#: Mailman/Handlers/Scrubber.py:228
+msgid ""
+"A non-text attachment was scrubbed...\n"
+"Name: %(filename)s\n"
+"Type: %(ctype)s\n"
+"Size: %(size)d bytes\n"
+"Desc: %(desc)s\n"
+"Url : %(url)s\n"
+msgstr ""
+"Ei-tekstimuotoinen liite on poistettu...\n"
+"Nimi: %(filename)s\n"
+"Tyyppi: %(ctype)s\n"
+"Koko: %(size)d bytes\n"
+"Kuvaus: %(desc)s\n"
+"Url : %(url)s\n"
+
+#: Mailman/Handlers/Scrubber.py:258
+msgid "Skipped content of type %(partctype)s"
+msgstr ""
+
+#: Mailman/Handlers/Scrubber.py:275
+msgid "-------------- next part --------------\n"
+msgstr ""
+
+#: Mailman/Handlers/ToDigest.py:141
+msgid "%(realname)s Digest, Vol %(volume)d, Issue %(issue)d"
+msgstr "%(realname)s Lukemisto, Vol %(volume)d, Aihe %(issue)d"
+
+#: Mailman/Handlers/ToDigest.py:181
+msgid "digest header"
+msgstr "lukemiston otsikko"
+
+#: Mailman/Handlers/ToDigest.py:184
+msgid "Digest Header"
+msgstr "Lukemiston otsikko"
+
+#: Mailman/Handlers/ToDigest.py:197
+msgid "Today's Topics:\n"
+msgstr "Tämänpäivän Aiheet:\n"
+
+#: Mailman/Handlers/ToDigest.py:267
+msgid "Today's Topics (%(msgcount)d messages)"
+msgstr "Tämänpäivän Aiheet (%(msgcount)d viestiä)"
+
+#: Mailman/Handlers/ToDigest.py:292
+msgid "digest footer"
+msgstr "lukemiston alatunniste"
+
+#: Mailman/Handlers/ToDigest.py:295
+msgid "Digest Footer"
+msgstr "Lukemiston alatunniste"
+
+#: Mailman/Handlers/ToDigest.py:309
+msgid "End of "
+msgstr "Loppu "
+
+#: Mailman/ListAdmin.py:307
+msgid "Posting of your message titled \"%(subject)s\""
+msgstr "Viestisi, jonka otsikko on \"%(subject)s\""
+
+#: Mailman/ListAdmin.py:346
+msgid "Forward of moderated message"
+msgstr "Ylläpidetyn viestin edelleenlähetys"
+
+#: Mailman/ListAdmin.py:405
+msgid "New subscription request to list %(realname)s from %(addr)s"
+msgstr "Uusi liittymispyyntö listalle %(realname)s %(addr)s lta"
+
+#: Mailman/ListAdmin.py:428
+msgid "Subscription request"
+msgstr "Liittymispyyntö"
+
+#: Mailman/ListAdmin.py:458
+msgid "New unsubscription request from %(realname)s by %(addr)s"
+msgstr "Uusi irtisanomispyyntö listalle %(realname)s %(addr)s lta"
+
+#: Mailman/ListAdmin.py:481
+msgid "Unsubscription request"
+msgstr "Irtisanoutumispyyntö"
+
+#: Mailman/ListAdmin.py:512
+msgid "Original Message"
+msgstr "Alkuperäinen viesti"
+
+#: Mailman/ListAdmin.py:515
+msgid "Request to mailing list %(realname)s rejected"
+msgstr "Pyyntö listalle %(realname)s on hylätty"
+
+#: Mailman/MTA/Manual.py:57
+msgid ""
+"The mailing list `%(listname)s' has been created via the through-the-web\n"
+"interface. In order to complete the activation of this mailing list, the\n"
+"proper /etc/aliases (or equivalent) file must be updated. The program\n"
+"`newaliases' may also have to be run.\n"
+"\n"
+"Here are the entries for the /etc/aliases file:\n"
+msgstr ""
+
+#: Mailman/MTA/Manual.py:67
+msgid ""
+"\n"
+"To finish creating your mailing list, you must edit your /etc/aliases (or\n"
+"equivalent) file by adding the following lines, and possibly running the\n"
+"`newaliases' program:\n"
+"\n"
+"## %(listname)s mailing list"
+msgstr ""
+
+#: Mailman/MTA/Manual.py:88
+msgid "Mailing list creation request for list %(listname)s"
+msgstr ""
+
+#: Mailman/MTA/Manual.py:103
+msgid ""
+"The mailing list `%(listname)s' has been removed via the through-the-web\n"
+"interface. In order to complete the de-activation of this mailing list, "
+"the\n"
+"appropriate /etc/aliases (or equivalent) file must be updated. The program\n"
+"`newaliases' may also have to be run.\n"
+"\n"
+"Here are the entries in the /etc/aliases file that should be removed:\n"
+msgstr ""
+
+#: Mailman/MTA/Manual.py:113
+msgid ""
+"\n"
+"To finish removing your mailing list, you must edit your /etc/aliases (or\n"
+"equivalent) file by removing the following lines, and possibly running the\n"
+"`newaliases' program:\n"
+"\n"
+"## %(listname)s mailing list"
+msgstr ""
+
+#: Mailman/MTA/Manual.py:132
+msgid "Mailing list removal request for list %(listname)s"
+msgstr ""
+
+#: Mailman/MTA/Postfix.py:300
+msgid "checking permissions on %(file)s"
+msgstr ""
+
+#: Mailman/MTA/Postfix.py:310
+msgid "%(file)s permissions must be 066x (got %(octmode)s)"
+msgstr ""
+
+#: Mailman/MTA/Postfix.py:312 Mailman/MTA/Postfix.py:339 bin/check_perms:100
+#: bin/check_perms:122 bin/check_perms:132 bin/check_perms:143
+#: bin/check_perms:162 bin/check_perms:180 bin/check_perms:200
+#: bin/check_perms:224 bin/check_perms:244 bin/check_perms:258
+#: bin/check_perms:278 bin/check_perms:315
+msgid "(fixing)"
+msgstr ""
+
+#: Mailman/MTA/Postfix.py:328
+msgid "checking ownership of %(dbfile)s"
+msgstr ""
+
+#: Mailman/MTA/Postfix.py:336
+msgid "%(dbfile)s owned by %(owner)s (must be owned by %(user)s"
+msgstr ""
+
+#: Mailman/MailList.py:697
+#, fuzzy
+msgid "You have been invited to join the %(listname)s mailing list"
+msgstr "Sinut on irtisanottu %(realname)s postituslistalta"
+
+#: Mailman/MailList.py:801 Mailman/MailList.py:1157
+msgid " from %(remote)s"
+msgstr ""
+
+#: Mailman/MailList.py:835
+msgid "subscriptions to %(realname)s require moderator approval"
+msgstr ""
+
+#: Mailman/MailList.py:894 bin/add_members:281
+msgid "%(realname)s subscription notification"
+msgstr ""
+
+#: Mailman/MailList.py:909
+msgid "unsubscriptions require moderator approval"
+msgstr ""
+
+#: Mailman/MailList.py:928
+msgid "%(realname)s unsubscribe notification"
+msgstr ""
+
+#: Mailman/MailList.py:1072
+msgid "subscriptions to %(name)s require administrator approval"
+msgstr ""
+
+#: Mailman/MailList.py:1326
+msgid "Last autoresponse notification for today"
+msgstr ""
+
+#: Mailman/Queue/BounceRunner.py:179
+msgid ""
+"The attached message was received as a bounce, but either the bounce format\n"
+"was not recognized, or no member addresses could be extracted from it. "
+"This\n"
+"mailing list has been configured to send all unrecognized bounce messages "
+"to\n"
+"the list administrator(s).\n"
+"\n"
+"For more information see:\n"
+"%(adminurl)s\n"
+"\n"
+msgstr ""
+
+#: Mailman/Queue/BounceRunner.py:189
+#, fuzzy
+msgid "Uncaught bounce notification"
+msgstr "Häirintätoimenpideilmoitus palautuksesta"
+
+#: Mailman/Queue/CommandRunner.py:74
+msgid "Ignoring non-text/plain MIME parts"
+msgstr ""
+
+#: Mailman/Queue/CommandRunner.py:129
+msgid ""
+"The results of your email command are provided below.\n"
+"Attached is your original message.\n"
+msgstr ""
+
+#: Mailman/Queue/CommandRunner.py:134
+msgid "- Results:"
+msgstr ""
+
+#: Mailman/Queue/CommandRunner.py:140
+msgid ""
+"\n"
+"- Unprocessed:"
+msgstr ""
+
+#: Mailman/Queue/CommandRunner.py:143
+msgid ""
+"\n"
+"- Ignored:"
+msgstr ""
+
+#: Mailman/Queue/CommandRunner.py:145
+msgid ""
+"\n"
+"- Done.\n"
+"\n"
+msgstr ""
+
+#: Mailman/Queue/CommandRunner.py:163
+msgid "The results of your email commands"
+msgstr "Sähköpostikomentojesi tulokset"
+
+#: Mailman/htmlformat.py:627
+msgid "Delivered by Mailman<br>version %(version)s"
+msgstr ""
+
+#: Mailman/htmlformat.py:628
+msgid "Python Powered"
+msgstr ""
+
+#: Mailman/htmlformat.py:629
+msgid "Gnu's Not Unix"
+msgstr ""
+
+#: Mailman/i18n.py:86
+#, fuzzy
+msgid "Mon"
+msgstr "Ei mitään"
+
+#: Mailman/i18n.py:86
+msgid "Thu"
+msgstr ""
+
+#: Mailman/i18n.py:86
+msgid "Tue"
+msgstr ""
+
+#: Mailman/i18n.py:86
+msgid "Wed"
+msgstr ""
+
+#: Mailman/i18n.py:87
+msgid "Fri"
+msgstr ""
+
+#: Mailman/i18n.py:87
+#, fuzzy
+msgid "Sat"
+msgstr "Aseta"
+
+#: Mailman/i18n.py:87
+msgid "Sun"
+msgstr ""
+
+#: Mailman/i18n.py:91
+#, fuzzy
+msgid "Apr"
+msgstr "Hyväksy"
+
+#: Mailman/i18n.py:91
+msgid "Feb"
+msgstr ""
+
+#: Mailman/i18n.py:91
+msgid "Jan"
+msgstr ""
+
+#: Mailman/i18n.py:91
+msgid "Jun"
+msgstr ""
+
+#: Mailman/i18n.py:91
+msgid "Mar"
+msgstr ""
+
+#: Mailman/i18n.py:92
+msgid "Aug"
+msgstr ""
+
+#: Mailman/i18n.py:92
+msgid "Dec"
+msgstr ""
+
+#: Mailman/i18n.py:92
+msgid "Jul"
+msgstr ""
+
+#: Mailman/i18n.py:92
+#, fuzzy
+msgid "Nov"
+msgstr "Ei"
+
+#: Mailman/i18n.py:92
+msgid "Oct"
+msgstr ""
+
+#: Mailman/i18n.py:92
+#, fuzzy
+msgid "Sep"
+msgstr "Aseta"
+
+#: Mailman/i18n.py:95
+msgid "Server Local Time"
+msgstr ""
+
+#: Mailman/i18n.py:128
+msgid ""
+"%(wday)s %(mon)s %(day)2i %(hh)02i:%(mm)02i:%(ss)02i %(tzname)s %(year)04i"
+msgstr ""
+
+#: bin/add_members:26
+msgid ""
+"Add members to a list from the command line.\n"
+"\n"
+"Usage:\n"
+" add_members [options] listname\n"
+"\n"
+"Options:\n"
+"\n"
+" --regular-members-file=file\n"
+" -r file\n"
+" A file containing addresses of the members to be added, one\n"
+" address per line. This list of people become non-digest\n"
+" members. If file is `-', read addresses from stdin. Note that\n"
+" -n/--non-digest-members-file are deprecated synonyms for this "
+"option.\n"
+"\n"
+" --digest-members-file=file\n"
+" -d=file\n"
+" Similar to above, but these people become digest members.\n"
+"\n"
+" --changes-msg=<y|n>\n"
+" -c <y|n> \n"
+"\tSet whether or not to send the list members the `there's going to be\n"
+"\tbig changes to your list' message. defaults to no.\n"
+"\n"
+" --welcome-msg=<y|n>\n"
+" -w <y|n>\n"
+" Set whether or not to send the list members a welcome message,\n"
+" overriding whatever the list's `send_welcome_msg' setting is.\n"
+"\n"
+" --admin-notify=<y|n>\n"
+" -a <y|n>\n"
+" Set whether or not to send the list administrators a notification "
+"on\n"
+" the success/failure of these subscriptions, overriding whatever the\n"
+" list's `admin_notify_mchanges' setting is.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname\n"
+" The name of the Mailman list you are adding members to. It must\n"
+" already exist.\n"
+"\n"
+"You must supply at least one of -r and -d options. At most one of the\n"
+"files can be `-'.\n"
+msgstr ""
+
+#: bin/add_members:134
+msgid "Big change in %(listname)s@%(listhost)s mailing list"
+msgstr ""
+
+#: bin/add_members:167
+msgid "Already a member: %(member)s"
+msgstr ""
+
+#: bin/add_members:170
+msgid "Bad/Invalid email address: blank line"
+msgstr ""
+
+#: bin/add_members:172
+msgid "Bad/Invalid email address: %(member)s"
+msgstr ""
+
+#: bin/add_members:174
+msgid "Hostile address (illegal characters): %(member)s"
+msgstr ""
+
+#: bin/add_members:176
+msgid "Subscribed: %(member)s"
+msgstr ""
+
+#: bin/add_members:223
+msgid "Bad argument to -c/--changes-msg: %(arg)s"
+msgstr ""
+
+#: bin/add_members:230
+msgid "Bad argument to -w/--welcome-msg: %(arg)s"
+msgstr ""
+
+#: bin/add_members:237
+msgid "Bad argument to -a/--admin-notify: %(arg)s"
+msgstr ""
+
+#: bin/add_members:243
+msgid "Cannot read both digest and normal members from standard input."
+msgstr ""
+
+#: bin/add_members:249 bin/config_list:105 bin/find_member:97 bin/inject:90
+#: bin/list_admins:89 bin/list_members:187 bin/sync_members:222
+#: cron/bumpdigests:86
+msgid "No such list: %(listname)s"
+msgstr ""
+
+#: bin/add_members:269 bin/change_pw:158 bin/check_db:114 bin/sync_members:244
+#: cron/bumpdigests:78
+msgid "Nothing to do."
+msgstr "Ei mitään tehtävää."
+
+#: bin/arch:19
+msgid ""
+"Rebuild a list's archive.\n"
+"\n"
+"Use this command to rebuild the archives for a mailing list. You may want "
+"to\n"
+"do this if you edit some messages in an archive, or remove some messages "
+"from\n"
+"an archive.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] <listname> [<mbox>]\n"
+"\n"
+"Where options are:\n"
+" -h / --help\n"
+" Print this help message and exit.\n"
+"\n"
+" -q / --quiet\n"
+" Make the archiver output less verbose.\n"
+"\n"
+" --wipe\n"
+" First wipe out the original archive before regenerating. You "
+"usually\n"
+" want to specify this argument unless you're generating the archive "
+"in\n"
+" chunks.\n"
+"\n"
+" -s N\n"
+" --start=N\n"
+" Start indexing at article N, where article 0 is the first in the "
+"mbox.\n"
+" Defaults to 0.\n"
+"\n"
+" -e M\n"
+" --end=M\n"
+" End indexing at article M. This script is not very efficient with\n"
+" respect to memory management, and for large archives, it may not be\n"
+" possible to index the mbox entirely. For that reason, you can "
+"specify\n"
+" the start and end article numbers.\n"
+"\n"
+"Where <mbox> is the path to a list's complete mbox archive. Usually this "
+"will\n"
+"be some path in the archives/private directory. For example:\n"
+"\n"
+"%% bin/arch mylist archives/private/mylist.mbox/mylist.mbox\n"
+"\n"
+"<mbox> is optional. If it is missing, it is calculated.\n"
+msgstr ""
+
+#: bin/arch:125
+msgid "listname is required"
+msgstr ""
+
+#: bin/arch:143 bin/change_pw:106 bin/config_list:242
+msgid ""
+"No such list \"%(listname)s\"\n"
+"%(e)s"
+msgstr ""
+
+#: bin/arch:170
+msgid "Cannot open mbox file %(mbox)s: %(msg)s"
+msgstr ""
+
+#: bin/b4b5-archfix:19
+msgid ""
+"Fix the MM2.1b4 archives.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] file ...\n"
+"\n"
+"Where options are:\n"
+" -h / --help\n"
+" Print this help message and exit.\n"
+"\n"
+"Only use this to `fix' some archive database files that may have gotten\n"
+"written in Mailman 2.1b4 with some bogus data. Use like this from your\n"
+"$PREFIX directory\n"
+"\n"
+"%% %(PROGRAM)s `grep -l _mlist archives/private/*/database/*-article`\n"
+"\n"
+"(note the backquotes are required)\n"
+"\n"
+"You will need to run `bin/check_perms -f' after running this script.\n"
+msgstr ""
+
+#: bin/change_pw:19
+msgid ""
+"Change a list's password.\n"
+"\n"
+"Prior to Mailman 2.1, list passwords were kept in crypt'd format -- "
+"usually.\n"
+"Some Python installations didn't have the crypt module available, so they'd\n"
+"fall back to md5. Then suddenly the Python installation might grow a crypt\n"
+"module and all list passwords would be broken.\n"
+"\n"
+"In Mailman 2.1, all list and site passwords are stored in SHA1 hexdigest\n"
+"form. This breaks list passwords for all existing pre-Mailman 2.1 lists, "
+"and\n"
+"since those passwords aren't stored anywhere in plain text, they cannot be\n"
+"retrieved and updated.\n"
+"\n"
+"Thus, this script generates new passwords for a list, and optionally sends "
+"it\n"
+"to all the owners of the list.\n"
+"\n"
+"Usage: change_pw [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" --all / -a\n"
+" Change the password for all lists.\n"
+"\n"
+" --domain=domain\n"
+" -d domain\n"
+" Change the password for all lists in the virtual domain `domain'. "
+"It\n"
+" is okay to give multiple -d options.\n"
+"\n"
+" --listname=listname\n"
+" -l listname\n"
+" Change the password only for the named list. It is okay to give\n"
+" multiple -l options.\n"
+"\n"
+" --password=newpassword\n"
+" -p newpassword\n"
+" Use the supplied plain text password `newpassword' as the new "
+"password\n"
+" for any lists that are being changed (as specified by the -a, -d, "
+"and\n"
+" -l options). If not given, lists will be assigned a randomly\n"
+" generated new password.\n"
+"\n"
+" --quiet / -q\n"
+" Don't notify list owners of the new password. You'll have to have\n"
+" some other way of letting the list owners know the new password\n"
+" (presumably out-of-band).\n"
+"\n"
+" --help / -h\n"
+" Print this help message and exit.\n"
+msgstr ""
+
+#: bin/change_pw:144
+msgid "Bad arguments: %(strargs)s"
+msgstr ""
+
+#: bin/change_pw:148
+msgid "Empty list passwords are not allowed"
+msgstr "Tyhjät listan salasanat eivät ole sallittu"
+
+#: bin/change_pw:179
+msgid "New %(listname)s password: %(notifypassword)s"
+msgstr ""
+
+#: bin/change_pw:188
+msgid "Your new %(listname)s list password"
+msgstr ""
+
+#: bin/change_pw:189
+msgid ""
+"The site administrator at %(hostname)s has changed the password for your\n"
+"mailing list %(listname)s. It is now\n"
+"\n"
+" %(notifypassword)s\n"
+"\n"
+"Please be sure to use this for all future list administration. You may "
+"want\n"
+"to log in now to your list and change the password to something more to "
+"your\n"
+"liking. Visit your list admin page at\n"
+"\n"
+" %(adminurl)s\n"
+msgstr ""
+
+#: bin/check_db:19
+msgid ""
+"Check a list's config database file for integrity.\n"
+"\n"
+"All of the following files are checked:\n"
+"\n"
+" config.pck\n"
+" config.pck.last\n"
+" config.db\n"
+" config.db.last\n"
+" config.safety\n"
+"\n"
+"It's okay if any of these are missing. config.pck and config.pck.last are\n"
+"pickled versions of the config database file for 2.1a3 and beyond. config."
+"db\n"
+"and config.db.last are used in all earlier versions, and these are Python\n"
+"marshals. config.safety is a pickle written by 2.1a3 and beyond when the\n"
+"primary config.pck file could not be read.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname [listname ...]]\n"
+"\n"
+"Options:\n"
+"\n"
+" --all / -a\n"
+" Check the databases for all lists. Otherwise only the lists named "
+"on\n"
+" the command line are checked.\n"
+"\n"
+" --verbose / -v\n"
+" Verbose output. The state of every tested file is printed.\n"
+" Otherwise only corrupt files are displayed.\n"
+"\n"
+" --help / -h\n"
+" Print this text and exit.\n"
+msgstr ""
+
+#: bin/check_db:119
+msgid "No list named:"
+msgstr "Ei listaa nimeltä:"
+
+#: bin/check_db:128
+msgid "List:"
+msgstr "Lista:"
+
+#: bin/check_db:148
+msgid " %(file)s: okay"
+msgstr ""
+
+#: bin/check_perms:19
+msgid ""
+"Check the permissions for the Mailman installation.\n"
+"\n"
+"Usage: %(PROGRAM)s [-f] [-v] [-h]\n"
+"\n"
+"With no arguments, just check and report all the files that have bogus\n"
+"permissions or group ownership. With -f (and run as root), fix all the\n"
+"permission problems found. With -v be verbose.\n"
+"\n"
+msgstr ""
+
+#: bin/check_perms:85
+msgid " checking gid and mode for %(path)s"
+msgstr ""
+
+#: bin/check_perms:97
+msgid "%(path)s bad group (has: %(groupname)s, expected %(MAILMAN_GROUP)s)"
+msgstr ""
+
+#: bin/check_perms:120
+msgid "directory permissions must be %(octperms)s: %(path)s"
+msgstr ""
+
+#: bin/check_perms:129
+msgid "source perms must be %(octperms)s: %(path)s"
+msgstr ""
+
+#: bin/check_perms:140
+msgid "article db files must be %(octperms)s: %(path)s"
+msgstr ""
+
+#: bin/check_perms:152
+msgid "checking mode for %(prefix)s"
+msgstr ""
+
+#: bin/check_perms:160
+msgid "directory must be at least 02775: %(d)s"
+msgstr ""
+
+#: bin/check_perms:173
+msgid "checking perms on %(private)s"
+msgstr ""
+
+#: bin/check_perms:178
+msgid "%(private)s must not be other-readable"
+msgstr ""
+
+#: bin/check_perms:198
+msgid "mbox file must be at least 0660:"
+msgstr ""
+
+#: bin/check_perms:222
+msgid "%(dbdir)s \"other\" perms must be 000"
+msgstr ""
+
+#: bin/check_perms:233
+msgid "checking cgi-bin permissions"
+msgstr ""
+
+#: bin/check_perms:238
+msgid " checking set-gid for %(path)s"
+msgstr ""
+
+#: bin/check_perms:242
+msgid "%(path)s must be set-gid"
+msgstr ""
+
+#: bin/check_perms:252
+msgid "checking set-gid for %(wrapper)s"
+msgstr ""
+
+#: bin/check_perms:256
+msgid "%(wrapper)s must be set-gid"
+msgstr ""
+
+#: bin/check_perms:266
+msgid "checking permissions on %(pwfile)s"
+msgstr ""
+
+#: bin/check_perms:275
+msgid "%(pwfile)s permissions must be exactly 0640 (got %(octmode)s)"
+msgstr ""
+
+#: bin/check_perms:299
+msgid "checking permissions on list data"
+msgstr ""
+
+#: bin/check_perms:305
+msgid " checking permissions on: %(path)s"
+msgstr ""
+
+#: bin/check_perms:313
+msgid "file permissions must be at least 660: %(path)s"
+msgstr ""
+
+#: bin/check_perms:359
+msgid "No problems found"
+msgstr "Virheitä ei löydetty"
+
+#: bin/check_perms:361
+msgid "Problems found:"
+msgstr "Löydetyt virheet:"
+
+#: bin/check_perms:362
+msgid "Re-run as %(MAILMAN_USER)s (or root) with -f flag to fix"
+msgstr ""
+
+#: bin/cleanarch:19
+msgid ""
+"Clean up an .mbox archive file.\n"
+"\n"
+"The archiver looks for Unix-From lines separating messages in an mbox "
+"archive\n"
+"file. For compatibility, it specifically looks for lines that start with\n"
+"\"From \" -- i.e. the letters capital-F, lowercase-r, o, m, space, ignoring\n"
+"everything else on the line.\n"
+"\n"
+"Normally, any lines that start \"From \" in the body of a message should be\n"
+"escaped such that a > character is actually the first on a line. It is\n"
+"possible though that body lines are not actually escaped. This script\n"
+"attempts to fix these by doing a stricter test of the Unix-From lines. Any\n"
+"lines that start \"From \" but do not pass this stricter test are escaped "
+"with a\n"
+"> character.\n"
+"\n"
+"Usage: cleanarch [options] < inputfile > outputfile\n"
+"Options:\n"
+" -s n\n"
+" --status=n\n"
+" Print a # character every n lines processed\n"
+"\n"
+" -q / --quiet\n"
+" Don't print changed line information to standard error.\n"
+"\n"
+" -n / --dry-run\n"
+" Don't actually output anything.\n"
+"\n"
+" -h / --help\n"
+" Print this message and exit\n"
+msgstr ""
+
+#: bin/cleanarch:82
+msgid "Unix-From line changed: %(lineno)d"
+msgstr ""
+
+#: bin/cleanarch:110
+msgid "Bad status number: %(arg)s"
+msgstr ""
+
+#: bin/cleanarch:160
+msgid "%(messages)d messages found"
+msgstr ""
+
+#: bin/clone_member:19
+msgid ""
+"Clone a member address.\n"
+"\n"
+"Cloning a member address means that a new member will be added who has all "
+"the\n"
+"same options and passwords as the original member address. Note that this\n"
+"operation is fairly trusting of the user who runs it -- it does no\n"
+"verification to the new address, it does not send out a welcome message, "
+"etc.\n"
+"\n"
+"The existing member's subscription is usually not modified in any way. If "
+"you\n"
+"want to remove the old address, use the -r flag. If you also want to "
+"change\n"
+"any list admin addresses, use the -a flag.\n"
+"\n"
+"Usage:\n"
+" clone_member [options] fromoldaddr tonewaddr\n"
+"\n"
+"Where:\n"
+"\n"
+" --listname=listname\n"
+" -l listname\n"
+" Check and modify only the named mailing lists. If -l is not given,\n"
+" then all mailing lists are scanned from the address. Multiple -l\n"
+" options can be supplied.\n"
+"\n"
+" --remove\n"
+" -r\n"
+" Remove the old address from the mailing list after it's been "
+"cloned.\n"
+"\n"
+" --admin\n"
+" -a\n"
+" Scan the list admin addresses for the old address, and clone or "
+"change\n"
+" them too.\n"
+"\n"
+" --quiet\n"
+" -q\n"
+" Do the modifications quietly.\n"
+"\n"
+" --nomodify\n"
+" -n\n"
+" Print what would be done, but don't actually do it. Inhibits the\n"
+" --quiet flag.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" fromoldaddr (`from old address') is the old address of the user. "
+"tonewaddr\n"
+" (`to new address') is the new address of the user.\n"
+"\n"
+msgstr ""
+
+#: bin/clone_member:94
+msgid "processing mailing list:"
+msgstr ""
+
+#: bin/clone_member:101
+msgid " scanning list owners:"
+msgstr ""
+
+#: bin/clone_member:119
+msgid " new list owners:"
+msgstr ""
+
+#: bin/clone_member:121
+msgid "(no change)"
+msgstr ""
+
+#: bin/clone_member:130
+msgid " address not found:"
+msgstr ""
+
+#: bin/clone_member:139
+msgid " clone address added:"
+msgstr ""
+
+#: bin/clone_member:142
+msgid " clone address is already a member:"
+msgstr ""
+
+#: bin/clone_member:145
+msgid " original address removed:"
+msgstr ""
+
+#: bin/clone_member:196
+msgid "Not a valid email address: %(toaddr)s"
+msgstr ""
+
+#: bin/clone_member:209
+msgid ""
+"Error opening list \"%(listname)s\", skipping.\n"
+"%(e)s"
+msgstr ""
+
+#: bin/config_list:19
+msgid ""
+"Configure a list from a text file description.\n"
+"\n"
+"Usage: config_list [options] listname\n"
+"\n"
+"Options:\n"
+" --inputfile filename\n"
+" -i filename\n"
+" Configure the list by assigning each module-global variable in the\n"
+" file to an attribute on the list object, then saving the list. The\n"
+" named file is loaded with execfile() and must be legal Python code.\n"
+" Any variable that isn't already an attribute of the list object is\n"
+" ignored (a warning message is printed). See also the -c option.\n"
+"\n"
+" A special variable named `mlist' is put into the globals during the\n"
+" execfile, which is bound to the actual MailList object. This lets "
+"you\n"
+" do all manner of bizarre thing to the list object, but BEWARE! "
+"Using\n"
+" this can severely (and possibly irreparably) damage your mailing "
+"list!\n"
+"\n"
+" --outputfile filename\n"
+" -o filename\n"
+" Instead of configuring the list, print out a list's configuration\n"
+" variables in a format suitable for input using this script. In "
+"this\n"
+" way, you can easily capture the configuration settings for a\n"
+" particular list and imprint those settings on another list. "
+"filename\n"
+" is the file to output the settings to. If filename is `-', "
+"standard\n"
+" out is used.\n"
+"\n"
+" --checkonly\n"
+" -c\n"
+" With this option, the modified list is not actually changed. Only\n"
+" useful with -i.\n"
+"\n"
+" --verbose\n"
+" -v\n"
+" Print the name of each attribute as it is being changed. Only "
+"useful\n"
+" with -i.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+"The options -o and -i are mutually exclusive.\n"
+"\n"
+msgstr ""
+
+#: bin/config_list:109
+msgid ""
+"## \"%(listname)s\" mailing list configuration settings -*- python -*-\n"
+"## captured on %(when)s\n"
+msgstr ""
+
+#: bin/config_list:131
+msgid "options"
+msgstr ""
+
+#: bin/config_list:188
+msgid "legal values are:"
+msgstr ""
+
+#: bin/config_list:255
+msgid "attribute \"%(k)s\" ignored"
+msgstr ""
+
+#: bin/config_list:258
+msgid "attribute \"%(k)s\" changed"
+msgstr ""
+
+#: bin/config_list:264
+msgid "Non-standard property restored: %(k)s"
+msgstr ""
+
+#: bin/config_list:272
+#, fuzzy
+msgid "Invalid value for property: %(k)s"
+msgstr "Muuttujalla %(property)s on väärä arvo."
+
+#: bin/config_list:274
+#, fuzzy
+msgid "Bad email address for option %(k)s: %(v)s"
+msgstr "Virheellinen sähköpostiosoite valinnalle %(property)s: %(val)s"
+
+#: bin/config_list:322
+msgid "Only one of -i or -o is allowed"
+msgstr ""
+
+#: bin/config_list:324
+msgid "One of -i or -o is required"
+msgstr ""
+
+#: bin/config_list:328
+msgid "List name is required"
+msgstr "Listan nimi vaaditaan"
+
+#: bin/convert.py:19
+msgid ""
+"Convert a list's interpolation strings from %-strings to $-strings.\n"
+"\n"
+"This script is intended to be run as a bin/withlist script, i.e.\n"
+"\n"
+"% bin/withlist -l -r convert <mylist>\n"
+msgstr ""
+
+#: bin/convert.py:38 bin/fix_url.py:85
+msgid "Saving list"
+msgstr "Tallennetaan lista"
+
+#: bin/convert.py:44 bin/fix_url.py:51
+msgid "%%%"
+msgstr ""
+
+#: bin/dumpdb:19
+msgid ""
+"Dump the contents of any Mailman `database' file.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] filename\n"
+"\n"
+"Options:\n"
+"\n"
+" --marshal/-m\n"
+" Assume the file contains a Python marshal, overridding any "
+"automatic\n"
+" guessing.\n"
+"\n"
+" --pickle/-p\n"
+" Assume the file contains a Python pickle, overridding any automatic\n"
+" guessing.\n"
+"\n"
+" --noprint/-n\n"
+" Don't attempt to pretty print the object. This is useful if "
+"there's\n"
+" some problem with the object and you just want to get an unpickled\n"
+" representation. Useful with `python -i bin/dumpdb <file>'. In "
+"that\n"
+" case, the root of the tree will be left in a global called \"msg\".\n"
+"\n"
+" --help/-h\n"
+" Print this help message and exit\n"
+"\n"
+"If the filename ends with `.db', then it is assumed that the file contains "
+"a\n"
+"Python marshal. If the file ends with `.pck' then it is assumed to contain "
+"a\n"
+"Python pickle. In either case, if you want to override the default "
+"assumption\n"
+"-- or if the file ends in neither suffix -- use the -p or -m flags.\n"
+msgstr ""
+
+#: bin/dumpdb:101
+msgid "No filename given."
+msgstr "Tiedostonimeä ei annettu."
+
+#: bin/dumpdb:104
+msgid "Bad arguments: %(pargs)s"
+msgstr ""
+
+#: bin/dumpdb:114
+msgid "Please specify either -p or -m."
+msgstr ""
+
+#: bin/find_member:19
+msgid ""
+"Find all lists that a member's address is on.\n"
+"\n"
+"Usage:\n"
+" find_member [options] regex [regex [...]]\n"
+"\n"
+"Where:\n"
+" --listname=listname\n"
+" -l listname\n"
+" Include only the named list in the search.\n"
+"\n"
+" --exclude=listname\n"
+" -x listname\n"
+" Exclude the named list from the search.\n"
+"\n"
+" --owners\n"
+" -w\n"
+" Search list owners as well as members.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" regex\n"
+" A Python regular expression to match against.\n"
+"\n"
+"The interaction between -l and -x is as follows. If any -l option is given\n"
+"then only the named list will be included in the search. If any -x option "
+"is\n"
+"given but no -l option is given, then all lists will be search except those\n"
+"specifically excluded.\n"
+"\n"
+"Regular expression syntax is Perl5-like, using the Python re module. "
+"Complete\n"
+"specifications are at:\n"
+"\n"
+"http://www.python.org/doc/current/lib/module-re.html\n"
+"\n"
+"Address matches are case-insensitive, but case-preserved addresses are\n"
+"displayed.\n"
+"\n"
+msgstr ""
+
+#: bin/find_member:159
+msgid "Search regular expression required"
+msgstr ""
+
+#: bin/find_member:164
+msgid "No lists to search"
+msgstr "Ei listoja joilta etsiä"
+
+#: bin/find_member:173
+msgid "found in:"
+msgstr "löydetty paikasta:"
+
+#: bin/find_member:179
+msgid "(as owner)"
+msgstr "(omistajana)"
+
+#: bin/fix_url.py:19
+msgid ""
+"Reset a list's web_page_url attribute to the default setting.\n"
+"\n"
+"This script is intended to be run as a bin/withlist script, i.e.\n"
+"\n"
+"% bin/withlist -l -r fix_url listname [options]\n"
+"\n"
+"Options:\n"
+" -u urlhost\n"
+" --urlhost=urlhost\n"
+" Look up urlhost in the virtual host table and set the web_page_url "
+"and\n"
+" host_name attributes of the list to the values found. This\n"
+" essentially moves the list from one virtual domain to another.\n"
+"\n"
+" Without this option, the default web_page_url and host_name values "
+"are\n"
+" used.\n"
+"\n"
+" -v / --verbose\n"
+" Print what the script is doing.\n"
+"\n"
+"If run standalone, it prints this help text and exits.\n"
+msgstr ""
+
+#: bin/fix_url.py:80
+msgid "Setting web_page_url to: %(web_page_url)s"
+msgstr ""
+
+#: bin/fix_url.py:83
+msgid "Setting host_name to: %(mailhost)s"
+msgstr ""
+
+#: bin/genaliases:19
+msgid ""
+"Regenerate Postfix's data/aliases and data/aliases.db files from scratch.\n"
+"\n"
+"Usage:\n"
+"\n"
+" genaliases [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+msgstr ""
+
+#: bin/inject:19
+msgid ""
+"Inject a message from a file into Mailman's incoming queue.\n"
+"\n"
+"Usage: inject [options] [filename]\n"
+"\n"
+"Options:\n"
+"\n"
+" -h / --help\n"
+" Print this text and exit.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" The name of the list to inject this message to. Required.\n"
+"\n"
+" -q queuename\n"
+" --queue=queuename\n"
+" The name of the queue to inject the message to. The queuename must "
+"be\n"
+" one of the directories inside the qfiles directory. If omitted, "
+"the\n"
+" incoming queue is used.\n"
+"\n"
+"filename is the name of the plaintext message file to inject. If omitted,\n"
+"standard input is used.\n"
+msgstr ""
+
+#: bin/inject:83
+msgid "Bad queue directory: %(qdir)s"
+msgstr "Virheellinen jonokansio %(qdir)s"
+
+#: bin/inject:88
+#, fuzzy
+msgid "A list name is required"
+msgstr "Listan nimi vaaditaan."
+
+#: bin/list_admins:19
+msgid ""
+"List all the owners of a mailing list.\n"
+"\n"
+"Usage: %(program)s [options] listname ...\n"
+"\n"
+"Where:\n"
+"\n"
+" --all-vhost=vhost\n"
+" -v=vhost\n"
+" List the owners of all the mailing lists for the given virtual "
+"host.\n"
+"\n"
+" --all\n"
+" -a\n"
+" List the owners of all the mailing lists on this system.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+"`listname' is the name of the mailing list to print the owners of. You can\n"
+"have more than one named list on the command line.\n"
+msgstr ""
+
+#: bin/list_admins:96
+msgid "List: %(listname)s, \tOwners: %(owners)s"
+msgstr ""
+
+#: bin/list_lists:19
+msgid ""
+"List all mailing lists.\n"
+"\n"
+"Usage: %(program)s [options]\n"
+"\n"
+"Where:\n"
+"\n"
+" -a / --advertised\n"
+" List only those mailing lists that are publically advertised\n"
+"\n"
+" --virtual-host-overview=domain\n"
+" -V domain\n"
+" List only those mailing lists that are homed to the given virtual\n"
+" domain. This only works if the VIRTUAL_HOST_OVERVIEW variable is\n"
+" set.\n"
+"\n"
+" -b / --bare\n"
+" Displays only the list name, with no description.\n"
+"\n"
+" -h / --help\n"
+" Print this text and exit.\n"
+"\n"
+msgstr ""
+
+#: bin/list_lists:105
+msgid "No matching mailing lists found"
+msgstr "Vastaavia postituslistoja ei löydetty"
+
+#: bin/list_lists:109
+msgid "matching mailing lists found:"
+msgstr "vastaavia postituslistoja löydetty:"
+
+#: bin/list_members:19
+msgid ""
+"List all the members of a mailing list.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] listname\n"
+"\n"
+"Where:\n"
+"\n"
+" --output file\n"
+" -o file\n"
+" Write output to specified file instead of standard out.\n"
+"\n"
+" --regular / -r\n"
+" Print just the regular (non-digest) members.\n"
+"\n"
+" --digest[=kind] / -d [kind]\n"
+" Print just the digest members. Optional argument can be \"mime\" "
+"or\n"
+" \"plain\" which prints just the digest members receiving that kind "
+"of\n"
+" digest.\n"
+"\n"
+" --nomail[=why] / -n [why]\n"
+" Print the members that have delivery disabled. Optional argument "
+"can\n"
+" be \"byadmin\", \"byuser\", \"bybounce\", or \"unknown\" which "
+"prints just the\n"
+" users who have delivery disabled for that reason. It can also be\n"
+" \"enabled\" which prints just those member for whom delivery is\n"
+" enabled.\n"
+"\n"
+" --fullnames / -f\n"
+" Include the full names in the output.\n"
+"\n"
+" --preserve\n"
+" -p\n"
+" Output member addresses case preserved the way they were added to "
+"the\n"
+" list. Otherwise, addresses are printed in all lowercase.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname is the name of the mailing list to use.\n"
+"\n"
+"Note that if neither -r or -d is supplied, both regular members are printed\n"
+"first, followed by digest members, but no indication is given as to address\n"
+"status.\n"
+msgstr ""
+
+#: bin/list_members:150
+msgid "Bad --nomail option: %(why)s"
+msgstr ""
+
+#: bin/list_members:161
+msgid "Bad --digest option: %(kind)s"
+msgstr ""
+
+#: bin/list_members:179
+msgid "Could not open file for writing:"
+msgstr "Ei voi avata tiedostoa kirjoitusta varten:"
+
+#: bin/list_owners:19
+msgid ""
+"List the owners of a mailing list, or all mailing lists.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname ...]\n"
+"Options:\n"
+"\n"
+" -w / --with-listnames\n"
+" Group the owners by list names and include the list names in the\n"
+" output. Otherwise, the owners will be sorted and uniquified based "
+"on\n"
+" the email address.\n"
+"\n"
+" -m / --moderators\n"
+" Include the list moderators in the output.\n"
+"\n"
+" -h / --help\n"
+" Print this help message and exit.\n"
+"\n"
+" listname\n"
+" Print the owners of the specified lists. More than one can appear\n"
+" after the options. If there are no listnames provided, the owners "
+"of\n"
+" all the lists will be displayed.\n"
+msgstr ""
+
+#: bin/mailmanctl:19
+msgid ""
+"Primary start-up and shutdown script for Mailman's qrunner daemon.\n"
+"\n"
+"This script starts, stops, and restarts the main Mailman queue runners, "
+"making\n"
+"sure that the various long-running qrunners are still alive and kicking. "
+"It\n"
+"does this by forking and exec'ing the qrunners and waiting on their pids.\n"
+"When it detects a subprocess has exited, it may restart it.\n"
+"\n"
+"The qrunners respond to SIGINT, SIGTERM, and SIGHUP. SIGINT and SIGTERM "
+"both\n"
+"cause the qrunners to exit cleanly, but the master will only restart "
+"qrunners\n"
+"that have exited due to a SIGINT. SIGHUP causes the master and the "
+"qrunners\n"
+"to close their log files, and reopen then upon the next printed message.\n"
+"\n"
+"The master also responds to SIGINT, SIGTERM, and SIGHUP, which it simply\n"
+"passes on to the qrunners (note that the master will close and reopen its "
+"own\n"
+"log files on receipt of a SIGHUP). The master also leaves its own process "
+"id\n"
+"in the file data/master-qrunner.pid but you normally don't need to use this\n"
+"pid directly. The `start', `stop', `restart', and `reopen' commands handle\n"
+"everything for you.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [ start | stop | restart | reopen ]\n"
+"\n"
+"Options:\n"
+"\n"
+" -n/--no-restart\n"
+" Don't restart the qrunners when they exit because of an error or a\n"
+" SIGINT. They are never restarted if they exit in response to a\n"
+" SIGTERM. Use this only for debugging. Only useful if the `start'\n"
+" command is given.\n"
+"\n"
+" -u/--run-as-user\n"
+" Normally, this script will refuse to run if the user id and group "
+"id\n"
+" are not set to the `mailman' user and group (as defined when you\n"
+" configured Mailman). If run as root, this script will change to "
+"this\n"
+" user and group before the check is made.\n"
+"\n"
+" This can be inconvenient for testing and debugging purposes, so the -"
+"u\n"
+" flag means that the step that sets and checks the uid/gid is "
+"skipped,\n"
+" and the program is run as the current user and group. This flag is\n"
+" not recommended for normal production environments.\n"
+"\n"
+" Note though, that if you run with -u and are not in the mailman "
+"group,\n"
+" you may have permission problems, such as begin unable to delete a\n"
+" list's archives through the web. Tough luck!\n"
+"\n"
+" -s/--stale-lock-cleanup\n"
+" If mailmanctl finds an existing master lock, it will normally exit\n"
+" with an error message. With this option, mailmanctl will perform "
+"an\n"
+" extra level of checking. If a process matching the host/pid "
+"described\n"
+" in the lock file is running, mailmanctl will still exit, but if no\n"
+" matching process is found, mailmanctl will remove the apparently "
+"stale\n"
+" lock and make another attempt to claim the master lock.\n"
+"\n"
+" -q/--quiet\n"
+" Don't print status messages. Error messages are still printed to\n"
+" standard error.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+"\n"
+"Commands:\n"
+"\n"
+" start - Start the master daemon and all qrunners. Prints a message "
+"and\n"
+" exits if the master daemon is already running.\n"
+"\n"
+" stop - Stops the master daemon and all qrunners. After stopping, no\n"
+" more messages will be processed.\n"
+"\n"
+" restart - Restarts the qrunners, but not the master process. Use this\n"
+" whenever you upgrade or update Mailman so that the qrunners "
+"will\n"
+" use the newly installed code.\n"
+"\n"
+" reopen - This will close all log files, causing them to be re-opened "
+"the\n"
+" next time a message is written to them\n"
+msgstr ""
+
+#: bin/mailmanctl:149
+msgid "PID unreadable in: %(pidfile)s"
+msgstr ""
+
+#: bin/mailmanctl:151
+msgid "Is qrunner even running?"
+msgstr ""
+
+#: bin/mailmanctl:157
+msgid "No child with pid: %(pid)s"
+msgstr ""
+
+#: bin/mailmanctl:159
+msgid "Stale pid file removed."
+msgstr ""
+
+#: bin/mailmanctl:217
+msgid ""
+"The master qrunner lock could not be acquired because it appears as if "
+"another\n"
+"master qrunner is already running.\n"
+msgstr ""
+
+#: bin/mailmanctl:223
+msgid ""
+"The master qrunner lock could not be acquired. It appears as though there "
+"is\n"
+"a stale master qrunner lock. Try re-running mailmanctl with the -s flag.\n"
+msgstr ""
+
+#: bin/mailmanctl:229
+msgid ""
+"The master qrunner lock could not be acquired, because it appears as if "
+"some\n"
+"process on some other host may have acquired it. We can't test for stale\n"
+"locks across host boundaries, so you'll have to do this manually. Or, if "
+"you\n"
+"know the lock is stale, re-run mailmanctl with the -s flag.\n"
+"\n"
+"Lock file: %(LOCKFILE)s\n"
+"Lock host: %(status)s\n"
+"\n"
+"Exiting."
+msgstr ""
+
+#: bin/mailmanctl:282
+msgid "Run this program as root or as the %(name)s user, or use -u."
+msgstr ""
+
+#: bin/mailmanctl:313
+#, fuzzy
+msgid "No command given."
+msgstr "Syytä ei annettu"
+
+#: bin/mailmanctl:316
+msgid "Bad command: %(command)s"
+msgstr "Virheellinen käsky: %(command)s"
+
+#: bin/mailmanctl:321
+msgid "Warning! You may encounter permission problems."
+msgstr ""
+
+#: bin/mailmanctl:330
+msgid "Shutting down Mailman's master qrunner"
+msgstr ""
+
+#: bin/mailmanctl:337
+msgid "Restarting Mailman's master qrunner"
+msgstr ""
+
+#: bin/mailmanctl:341
+msgid "Re-opening all log files"
+msgstr "Uudelleenavataan kaikki lokitiedostot"
+
+#: bin/mailmanctl:375
+msgid "Starting Mailman's master qrunner."
+msgstr "Käynnistetään Mailman ylläpito grunner."
+
+#: bin/mmsitepass:19
+msgid ""
+"Set the site password, prompting from the terminal.\n"
+"\n"
+"The site password can be used in most if not all places that the list\n"
+"administrator's password can be used, which in turn can be used in most "
+"places\n"
+"that a list users password can be used.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [password]\n"
+"\n"
+"Options:\n"
+"\n"
+" -c/--listcreator\n"
+" Set the list creator password instead of the site password. The "
+"list\n"
+" creator is authorized to create and remove lists, but does not have\n"
+" the total power of the site administrator.\n"
+"\n"
+" -h/--help\n"
+" Print this help message and exit.\n"
+"\n"
+"If password is not given on the command line, it will be prompted for.\n"
+msgstr ""
+
+#: bin/mmsitepass:73
+msgid "site"
+msgstr "paikka"
+
+#: bin/mmsitepass:80
+msgid "list creator"
+msgstr "listan luoja"
+
+#: bin/mmsitepass:86
+msgid "New %(pwdesc)s password: "
+msgstr ""
+
+#: bin/mmsitepass:87
+msgid "Again to confirm password: "
+msgstr "Uudestaan salasanan varmistamiseksi:"
+
+#: bin/mmsitepass:89
+msgid "Passwords do not match; no changes made."
+msgstr "Salasanat eivät täsmää; muutoksia ei tehty."
+
+#: bin/mmsitepass:92
+msgid "Interrupted..."
+msgstr "Keskeytetty..."
+
+#: bin/mmsitepass:98
+msgid "Password changed."
+msgstr "Salasana vaihdettu."
+
+#: bin/mmsitepass:100
+msgid "Password change failed."
+msgstr "Salasanan vaihto epäonnistui."
+
+#: bin/newlist:19
+msgid ""
+"Create a new, unpopulated mailing list.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname [listadmin-addr [admin-password]]]\n"
+"\n"
+"Options:\n"
+"\n"
+" -l language\n"
+" --language language\n"
+" Make the list's preferred language `language', which must be a two\n"
+" letter language code.\n"
+"\n"
+" -q/--quiet\n"
+" Normally the administrator is notified by email (after a prompt) "
+"that\n"
+" their list has been created. This option suppresses the prompt and\n"
+" notification.\n"
+"\n"
+" -h/--help\n"
+" Print this help text and exit.\n"
+"\n"
+"You can specify as many of the arguments as you want on the command line:\n"
+"you will be prompted for the missing ones.\n"
+"\n"
+"Every Mailman list has two parameters which define the default host name "
+"for\n"
+"outgoing email, and the default URL for all web interfaces. When you\n"
+"configured Mailman, certain defaults were calculated, but if you are "
+"running\n"
+"multiple virtual Mailman sites, then the defaults may not be appropriate "
+"for\n"
+"the list you are creating.\n"
+"\n"
+"You can specify the domain to create your new list in by spelling the "
+"listname\n"
+"like so:\n"
+"\n"
+" mylist@www.mydom.ain\n"
+"\n"
+"where `www.mydom.ain' should be the base hostname for the URL to this "
+"virtual\n"
+"hosts's lists. E.g. with is setting people will view the general list\n"
+"overviews at http://www.mydom.ain/mailman/listinfo. Also, www.mydom.ain\n"
+"should be a key in the VIRTUAL_HOSTS mapping in mm_cfg.py/Defaults.py. It\n"
+"will be looked up to give the email hostname. If this can't be found, then\n"
+"www.mydom.ain will be used for both the web interface and the email\n"
+"interface.\n"
+"\n"
+"If you spell the list name as just `mylist', then the email hostname will "
+"be\n"
+"taken from DEFAULT_EMAIL_HOST and the url will be taken from DEFAULT_URL "
+"(as\n"
+"defined in your Defaults.py file or overridden by settings in mm_cfg.py).\n"
+"\n"
+"Note that listnames are forced to lowercase.\n"
+msgstr ""
+
+#: bin/newlist:118
+msgid "Unknown language: %(lang)s"
+msgstr "Tuntematon kieli: %(lang)s"
+
+#: bin/newlist:123
+msgid "Enter the name of the list: "
+msgstr "Anna listan nimi: "
+
+#: bin/newlist:140
+msgid "Enter the email of the person running the list: "
+msgstr ""
+
+#: bin/newlist:145
+msgid "Initial %(listname)s password: "
+msgstr ""
+
+#: bin/newlist:149
+msgid "The list password cannot be empty"
+msgstr "Listan salasana ei voi olla tyhjä"
+
+#: bin/newlist:190
+msgid "Hit enter to notify %(listname)s owner..."
+msgstr ""
+
+#: bin/qrunner:19
+msgid ""
+"Run one or more qrunners, once or repeatedly.\n"
+"\n"
+"Each named runner class is run in round-robin fashion. In other words, the\n"
+"first named runner is run to consume all the files currently in its\n"
+"directory. When that qrunner is done, the next one is run to consume all "
+"the\n"
+"files in /its/ directory, and so on. The number of total iterations can be\n"
+"given on the command line.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" -r runner[:slice:range]\n"
+" --runner=runner[:slice:range]\n"
+" Run the named qrunner, which must be one of the strings returned by\n"
+" the -l option. Optional slice:range if given, is used to assign\n"
+" multiple qrunner processes to a queue. range is the total number "
+"of\n"
+" qrunners for this queue while slice is the number of this qrunner "
+"from\n"
+" [0..range).\n"
+"\n"
+" If using the slice:range form, you better make sure that each "
+"qrunner\n"
+" for the queue is given the same range value. If slice:runner is "
+"not\n"
+" given, then 1:1 is used.\n"
+"\n"
+" Multiple -r options may be given, in which case each qrunner will "
+"run\n"
+" once in round-robin fashion. The special runner `All' is shorthand\n"
+" for a qrunner for each listed by the -l option.\n"
+"\n"
+" --once\n"
+" -o\n"
+" Run each named qrunner exactly once through its main loop. "
+"Otherwise,\n"
+" each qrunner runs indefinitely, until the process receives a "
+"SIGTERM\n"
+" or SIGINT.\n"
+"\n"
+" -l/--list\n"
+" Shows the available qrunner names and exit.\n"
+"\n"
+" -v/--verbose\n"
+" Spit out more debugging information to the logs/qrunner log file.\n"
+"\n"
+" -s/--subproc\n"
+" This should only be used when running qrunner as a subprocess of "
+"the\n"
+" mailmanctl startup script. It changes some of the exit-on-error\n"
+" behavior to work better with that framework.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+"\n"
+"runner is required unless -l or -h is given, and it must be one of the "
+"names\n"
+"displayed by the -l switch.\n"
+msgstr ""
+
+#: bin/qrunner:176
+msgid "%(name)s runs the %(runnername)s qrunner"
+msgstr ""
+
+#: bin/qrunner:177
+msgid "All runs all the above qrunners"
+msgstr ""
+
+#: bin/qrunner:213
+msgid "No runner name given."
+msgstr "Ajajan nimeä ei annettu."
+
+#: bin/remove_members:19
+msgid ""
+"Remove members from a list.\n"
+"\n"
+"Usage:\n"
+" remove_members [options] [listname] [addr1 ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" --file=file\n"
+" -f file\n"
+" Remove member addresses found in the given file. If file is\n"
+" `-', read stdin.\n"
+"\n"
+" --all\n"
+" -a\n"
+" Remove all members of the mailing list.\n"
+" (mutually exclusive with --fromall)\n"
+"\n"
+" --fromall\n"
+" Removes the given addresses from all the lists on this system\n"
+" regardless of virtual domains if you have any. This option cannot "
+"be\n"
+" used -a/--all. Also, you should not specify a listname when using "
+"this\n"
+" option.\n"
+"\n"
+" --nouserack\n"
+" -n\n"
+" Don't send the user acknowledgements.\n"
+"\n"
+" --noadminack\n"
+" -N\n"
+" Don't send the admin acknowledgements.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname is the name of the mailing list to use.\n"
+"\n"
+" addr1 ... are additional addresses to remove.\n"
+"\n"
+msgstr ""
+
+#: bin/remove_members:147
+msgid "Could not open file for reading: %(filename)s."
+msgstr ""
+
+#: bin/remove_members:154
+#, fuzzy
+msgid "Error opening list %(listname)s... skipping."
+msgstr "Virhe avattaessa postituslistaa %(listname)s...ohitetaan."
+
+#: bin/remove_members:164
+#, fuzzy
+msgid "No such member: %(addr)s"
+msgstr "Ei nimettyä jäsentä: %(safeuser)s."
+
+#: bin/remove_members:171
+msgid "User `%(addr)s' removed from list: %(listname)s."
+msgstr ""
+
+#: bin/rmlist:19
+msgid ""
+"Remove the components of a mailing list with impunity - beware!\n"
+"\n"
+"This removes (almost) all traces of a mailing list. By default, the lists\n"
+"archives are not removed, which is very handy for retiring old lists.\n"
+"\n"
+"Usage:\n"
+" rmlist [-a] [-h] listname\n"
+"\n"
+"Where:\n"
+" --archives\n"
+" -a\n"
+" Remove the list's archives too, or if the list has already been\n"
+" deleted, remove any residual archives.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+msgstr ""
+
+#: bin/rmlist:66 bin/rmlist:69
+msgid "Removing %(msg)s"
+msgstr ""
+
+#: bin/rmlist:72
+msgid "%(listname)s %(msg)s not found as %(dir)s"
+msgstr ""
+
+#: bin/rmlist:96
+#, fuzzy
+msgid "No such list (or list already deleted): %(listname)s"
+msgstr "Lista on jo olemassa: %(listname)s"
+
+#: bin/rmlist:98
+msgid "No such list: %(listname)s. Removing its residual archives."
+msgstr ""
+
+#: bin/rmlist:102
+msgid "Not removing archives. Reinvoke with -a to remove them."
+msgstr ""
+
+#: bin/rmlist:116
+msgid "list info"
+msgstr "lista info"
+
+#: bin/rmlist:122 bin/rmlist:124
+msgid "private archives"
+msgstr "yksityiset arkistot"
+
+#: bin/rmlist:126 bin/rmlist:128
+msgid "public archives"
+msgstr "julkiset arkistot"
+
+#: bin/sync_members:19
+msgid ""
+"Synchronize a mailing list's membership with a flat file.\n"
+"\n"
+"This script is useful if you have a Mailman mailing list and a sendmail\n"
+":include: style list of addresses (also as is used in Majordomo). For "
+"every\n"
+"address in the file that does not appear in the mailing list, the address "
+"is\n"
+"added. For every address in the mailing list that does not appear in the\n"
+"file, the address is removed. Other options control what happens when an\n"
+"address is added or removed.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] -f file listname\n"
+"\n"
+"Where `options' are:\n"
+"\n"
+" --no-change\n"
+" -n\n"
+" Don't actually make the changes. Instead, print out what would be\n"
+" done to the list.\n"
+"\n"
+" --welcome-msg[=<yes|no>]\n"
+" -w[=<yes|no>]\n"
+" Sets whether or not to send the newly added members a welcome\n"
+" message, overriding whatever the list's `send_welcome_msg' setting\n"
+" is. With -w=yes or -w, the welcome message is sent. With -w=no, "
+"no\n"
+" message is sent.\n"
+"\n"
+" --goodbye-msg[=<yes|no>]\n"
+" -g[=<yes|no>]\n"
+" Sets whether or not to send the goodbye message to removed members,\n"
+" overriding whatever the list's `send_goodbye_msg' setting is. With\n"
+" -g=yes or -g, the goodbye message is sent. With -g=no, no message "
+"is\n"
+" sent.\n"
+"\n"
+" --digest[=<yes|no>]\n"
+" -d[=<yes|no>]\n"
+" Selects whether to make newly added members receive messages in\n"
+" digests. With -d=yes or -d, they become digest members. With -"
+"d=no\n"
+" (or if no -d option given) they are added as regular members.\n"
+"\n"
+" --notifyadmin[=<yes|no>]\n"
+" -a[=<yes|no>]\n"
+" Specifies whether the admin should be notified for each "
+"subscription\n"
+" or unsubscription. If you're adding a lot of addresses, you\n"
+" definitely want to turn this off! With -a=yes or -a, the admin is\n"
+" notified. With -a=no, the admin is not notified. With no -a "
+"option,\n"
+" the default for the list is used.\n"
+"\n"
+" --file <filename | ->\n"
+" -f <filename | ->\n"
+" This option is required. It specifies the flat file to synchronize\n"
+" against. Email addresses must appear one per line. If filename is\n"
+" `-' then stdin is used.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this message.\n"
+"\n"
+" listname\n"
+" Required. This specifies the list to synchronize.\n"
+msgstr ""
+
+#: bin/sync_members:115
+msgid "Bad choice: %(yesno)s"
+msgstr ""
+
+#: bin/sync_members:138
+msgid "Dry run mode"
+msgstr ""
+
+#: bin/sync_members:159
+msgid "Only one -f switch allowed"
+msgstr ""
+
+#: bin/sync_members:163
+msgid "No argument to -f given"
+msgstr ""
+
+#: bin/sync_members:172
+msgid "Illegal option: %(opt)s"
+msgstr ""
+
+#: bin/sync_members:178
+msgid "No listname given"
+msgstr "Listanimeä ei annettu"
+
+#: bin/sync_members:182
+msgid "Must have a listname and a filename"
+msgstr ""
+
+#: bin/sync_members:191
+msgid "Cannot read address file: %(filename)s: %(msg)s"
+msgstr ""
+
+#: bin/sync_members:203
+msgid "Ignore : %(addr)30s"
+msgstr ""
+
+#: bin/sync_members:212
+#, fuzzy
+msgid "Invalid : %(addr)30s"
+msgstr "Virheellinen sähköpostiosoite"
+
+#: bin/sync_members:215
+msgid "You must fix the preceding invalid addresses first."
+msgstr ""
+
+#: bin/sync_members:259
+msgid "Added : %(s)s"
+msgstr ""
+
+#: bin/sync_members:278
+msgid "Removed: %(s)s"
+msgstr ""
+
+#: bin/transcheck:18
+msgid ""
+"\n"
+"Check a given Mailman translation, making sure that variables and\n"
+"tags referenced in translation are the same variables and tags in\n"
+"the original templates and catalog.\n"
+"\n"
+"Usage:\n"
+"\n"
+"cd $MAILMAN_DIR\n"
+"%(program)s [-q] <lang>\n"
+"\n"
+"Where <lang> is your country code (e.g. 'it' for Italy) and -q is\n"
+"to ask for a brief summary.\n"
+msgstr ""
+
+#: bin/transcheck:57
+msgid "check a translation comparing with the original string"
+msgstr ""
+
+#: bin/transcheck:64
+msgid "scan a string from the original file"
+msgstr ""
+
+#: bin/transcheck:72
+msgid "scan a translated string"
+msgstr ""
+
+#: bin/transcheck:83
+msgid "check for differences between checked in and checked out"
+msgstr ""
+
+#: bin/transcheck:116
+msgid "parse a .po file extracting msgids and msgstrs"
+msgstr ""
+
+#: bin/transcheck:135
+msgid ""
+"States table for the finite-states-machine parser:\n"
+" 0 idle\n"
+" 1 filename-or-comment\n"
+" 2 msgid\n"
+" 3 msgstr\n"
+" 4 end\n"
+" "
+msgstr ""
+
+#: bin/transcheck:272
+msgid ""
+"check a translated template against the original one\n"
+" search also <MM-*> tags if html is not zero"
+msgstr ""
+
+#: bin/transcheck:319
+msgid "scan the po file comparing msgids with msgstrs"
+msgstr ""
+
+#: bin/unshunt:19
+msgid ""
+"Move a message from the shunt queue to the original queue.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [directory]\n"
+"\n"
+"Where:\n"
+"\n"
+" -h / --help\n"
+" Print help and exit.\n"
+"\n"
+"Optional `directory' specifies a directory to dequeue from other than\n"
+"qfiles/shunt.\n"
+msgstr ""
+
+#: bin/unshunt:81
+msgid ""
+"Cannot unshunt message %(filebase)s, skipping:\n"
+"%(e)s"
+msgstr ""
+
+#: bin/update:19
+msgid ""
+"Perform all necessary upgrades.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -f/--force\n"
+" Force running the upgrade procedures. Normally, if the version "
+"number\n"
+" of the installed Mailman matches the current version number (or a\n"
+" `downgrade' is detected), nothing will be done.\n"
+"\n"
+" -h/--help\n"
+" Print this text and exit.\n"
+"\n"
+"Use this script to help you update to the latest release of Mailman from\n"
+"some previous version. It knows about versions back to 1.0b4 (?).\n"
+msgstr ""
+
+#: bin/update:102
+msgid "Fixing language templates: %(listname)s"
+msgstr ""
+
+#: bin/update:191 bin/update:466
+msgid "WARNING: could not acquire lock for list: %(listname)s"
+msgstr ""
+
+#: bin/update:210
+msgid "Resetting %(n)s BYBOUNCEs disabled addrs with no bounce info"
+msgstr ""
+
+#: bin/update:216
+msgid "Updating the held requests database."
+msgstr ""
+
+#: bin/update:238
+msgid ""
+"For some reason, %(mbox_dir)s exists as a file. This won't work with\n"
+"b6, so I'm renaming it to %(mbox_dir)s.tmp and proceeding."
+msgstr ""
+
+#: bin/update:250
+msgid ""
+"\n"
+"%(listname)s has both public and private mbox archives. Since this list\n"
+"currently uses private archiving, I'm installing the private mbox archive\n"
+"-- %(o_pri_mbox_file)s -- as the active archive, and renaming\n"
+" %(o_pub_mbox_file)s\n"
+"to\n"
+" %(o_pub_mbox_file)s.preb6\n"
+"\n"
+"You can integrate that into the archives if you want by using the 'arch'\n"
+"script.\n"
+msgstr ""
+
+#: bin/update:265
+msgid ""
+"%s has both public and private mbox archives. Since this list\n"
+"currently uses public archiving, I'm installing the public mbox file\n"
+"archive file (%s) as the active one, and renaming\n"
+" %s\n"
+" to\n"
+" %s.preb6\n"
+"\n"
+"You can integrate that into the archives if you want by using the 'arch'\n"
+"script.\n"
+msgstr ""
+
+#: bin/update:282
+msgid "- updating old private mbox file"
+msgstr ""
+
+#: bin/update:290
+msgid ""
+" unknown file in the way, moving\n"
+" %(o_pri_mbox_file)s\n"
+" to\n"
+" %(newname)s"
+msgstr ""
+
+#: bin/update:297 bin/update:320
+msgid ""
+" looks like you have a really recent CVS installation...\n"
+" you're either one brave soul, or you already ran me"
+msgstr ""
+
+#: bin/update:306
+msgid "- updating old public mbox file"
+msgstr ""
+
+#: bin/update:314
+msgid ""
+" unknown file in the way, moving\n"
+" %(o_pub_mbox_file)s\n"
+" to\n"
+" %(newname)s"
+msgstr ""
+
+#: bin/update:345
+msgid "- This list looks like it might have <= b4 list templates around"
+msgstr ""
+
+#: bin/update:352
+msgid "- moved %(o_tmpl)s to %(n_tmpl)s"
+msgstr ""
+
+#: bin/update:354
+msgid "- both %(o_tmpl)s and %(n_tmpl)s exist, leaving untouched"
+msgstr ""
+
+#: bin/update:384
+msgid "removing directory %(src)s and everything underneath"
+msgstr ""
+
+#: bin/update:387
+msgid "removing %(src)s"
+msgstr ""
+
+#: bin/update:391
+msgid "Warning: couldn't remove %(src)s -- %(rest)s"
+msgstr ""
+
+#: bin/update:396
+msgid "couldn't remove old file %(pyc)s -- %(rest)s"
+msgstr ""
+
+#: bin/update:400
+msgid "updating old qfiles"
+msgstr "päivitetään vanhoja q-tiedostoja"
+
+#: bin/update:422
+msgid "getting rid of old source files"
+msgstr "poistetaan vanhoja lähdetiedostoja"
+
+#: bin/update:432
+msgid "no lists == nothing to do, exiting"
+msgstr "ei listoja == ei tehtäviä, poistutaan"
+
+#: bin/update:439
+msgid ""
+"fixing all the perms on your old html archives to work with b6\n"
+"If your archives are big, this could take a minute or two..."
+msgstr ""
+
+#: bin/update:444
+msgid "done"
+msgstr "valmis"
+
+#: bin/update:446
+msgid "Updating mailing list: %(listname)s"
+msgstr "Päivitetään postituslistoja: %(listname)s"
+
+#: bin/update:449
+msgid "Updating Usenet watermarks"
+msgstr "Päivitetään Usenetin vesileimoja"
+
+#: bin/update:454
+msgid "- nothing to update here"
+msgstr "- ei mitään päivitettävää täällä"
+
+#: bin/update:477
+msgid "- usenet watermarks updated and gate_watermarks removed"
+msgstr ""
+
+#: bin/update:487
+msgid "Updating old pending_subscriptions.db database"
+msgstr ""
+
+#: bin/update:504
+msgid ""
+"\n"
+"\n"
+"NOTE NOTE NOTE NOTE NOTE\n"
+"\n"
+" You are upgrading an existing Mailman installation, but I can't tell "
+"what\n"
+" version you were previously running.\n"
+"\n"
+" If you are upgrading from Mailman 1.0b9 or earlier you will need to\n"
+" manually update your mailing lists. For each mailing list you need to\n"
+" copy the file templates/options.html lists/<listname>/options.html.\n"
+"\n"
+" However, if you have edited this file via the Web interface, you will "
+"have\n"
+" to merge your changes into this file, otherwise you will lose your\n"
+" changes.\n"
+"\n"
+"NOTE NOTE NOTE NOTE NOTE\n"
+"\n"
+msgstr ""
+
+#: bin/update:561
+msgid "No updates are necessary."
+msgstr "Päivitys ei ole tarpeen."
+
+#: bin/update:564
+msgid ""
+"Downgrade detected, from version %(hexlversion)s to version %(hextversion)s\n"
+"This is probably not safe.\n"
+"Exiting."
+msgstr ""
+
+#: bin/update:569
+msgid "Upgrading from version %(hexlversion)s to %(hextversion)s"
+msgstr "Päivitetään versiosta %(hexlversion)s versioon %(hextversion)s"
+
+#: bin/update:578
+msgid ""
+"\n"
+"ERROR:\n"
+"\n"
+"The locks for some lists could not be acquired. This means that either\n"
+"Mailman was still active when you upgraded, or there were stale locks in "
+"the\n"
+"%(lockdir)s directory.\n"
+"\n"
+"You must put Mailman into a quiescent state and remove all stale locks, "
+"then\n"
+"re-run \"make update\" manually. See the INSTALL and UPGRADE files for "
+"details.\n"
+msgstr ""
+
+#: bin/version:19
+msgid "Print the Mailman version.\n"
+msgstr "Tulosta Mailman versio.\n"
+
+#: bin/version:26
+msgid "Using Mailman version:"
+msgstr "Käytetään Mailman versiota:"
+
+#: bin/withlist:19
+msgid ""
+"General framework for interacting with a mailing list object.\n"
+"\n"
+"There are two ways to use this script: interactively or programmatically.\n"
+"Using it interactively allows you to play with, examine and modify a "
+"MailList\n"
+"object from Python's interactive interpreter. When running interactively, "
+"a\n"
+"MailList object called `m' will be available in the global namespace. It "
+"also\n"
+"loads the class MailList into the global namespace.\n"
+"\n"
+"Programmatically, you can write a function to operate on a MailList object,\n"
+"and this script will take care of the housekeeping (see below for "
+"examples).\n"
+"In that case, the general usage syntax is:\n"
+"\n"
+"%% bin/withlist [options] listname [args ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" -l / --lock\n"
+" Lock the list when opening. Normally the list is opened unlocked\n"
+" (e.g. for read-only operations). You can always lock the file "
+"after\n"
+" the fact by typing `m.Lock()'\n"
+"\n"
+" Note that if you use this option, you should explicitly call m.Save"
+"()\n"
+" before exiting, since the interpreter's clean up procedure will not\n"
+" automatically save changes to the MailList object (but it will "
+"unlock\n"
+" the list).\n"
+"\n"
+" -i / --interactive\n"
+" Leaves you at an interactive prompt after all other processing is\n"
+" complete. This is the default unless the -r option is given.\n"
+"\n"
+" --run [module.]callable\n"
+" -r [module.]callable\n"
+" This can be used to run a script with the opened MailList object.\n"
+" This works by attempting to import `module' (which must already be\n"
+" accessible on your sys.path), and then calling `callable' from the\n"
+" module. callable can be a class or function; it is called with the\n"
+" MailList object as the first argument. If additional args are "
+"given\n"
+" on the command line, they are passed as subsequent positional args "
+"to\n"
+" the callable.\n"
+"\n"
+" Note that `module.' is optional; if it is omitted then a module "
+"with\n"
+" the name `callable' will be imported.\n"
+"\n"
+" The global variable `r' will be set to the results of this call.\n"
+"\n"
+" --all / -a\n"
+" This option only works with the -r option. Use this if you want to\n"
+" execute the script on all mailing lists. When you use -a you "
+"should\n"
+" not include a listname argument on the command line. The variable "
+"`r'\n"
+" will be a list of all the results.\n"
+"\n"
+" --quiet / -q\n"
+" Suppress all status messages.\n"
+"\n"
+" --help / -h\n"
+" Print this message and exit\n"
+"\n"
+"\n"
+"Here's an example of how to use the -r option. Say you have a file in the\n"
+"Mailman installation directory called `listaddr.py', with the following\n"
+"two functions:\n"
+"\n"
+"def listaddr(mlist):\n"
+" print mlist.GetListEmail()\n"
+"\n"
+"def requestaddr(mlist):\n"
+" print mlist.GetRequestEmail()\n"
+"\n"
+"Now, from the command line you can print the list's posting address by "
+"running\n"
+"the following from the command line:\n"
+"\n"
+"%% bin/withlist -r listaddr mylist\n"
+"Loading list: mylist (unlocked)\n"
+"Importing listaddr ...\n"
+"Running listaddr.listaddr() ...\n"
+"mylist@myhost.com\n"
+"\n"
+"And you can print the list's request address by running:\n"
+"\n"
+"%% bin/withlist -r listaddr.requestaddr mylist\n"
+"Loading list: mylist (unlocked)\n"
+"Importing listaddr ...\n"
+"Running listaddr.requestaddr() ...\n"
+"mylist-request@myhost.com\n"
+"\n"
+"As another example, say you wanted to change the password for a particular\n"
+"user on a particular list. You could put the following function in a file\n"
+"called `changepw.py':\n"
+"\n"
+"from Mailman.Errors import NotAMember\n"
+"\n"
+"def changepw(mlist, addr, newpasswd):\n"
+" try:\n"
+" mlist.setMemberPassword(addr, newpasswd)\n"
+" mlist.Save()\n"
+" except NotAMember:\n"
+" print 'No address matched:', addr\n"
+"\n"
+"and run this from the command line:\n"
+"%% bin/withlist -l -r changepw mylist somebody@somewhere.org foobar\n"
+msgstr ""
+
+#: bin/withlist:151
+msgid ""
+"Unlock a locked list, but do not implicitly Save() it.\n"
+"\n"
+" This does not get run if the interpreter exits because of a signal, or "
+"if\n"
+" os._exit() is called. It will get called if an exception occurs "
+"though.\n"
+" "
+msgstr ""
+
+#: bin/withlist:162
+msgid "Unlocking (but not saving) list: %(listname)s"
+msgstr "Avataan (mutta ei talleteta) listaa: %(listname)s"
+
+#: bin/withlist:166
+msgid "Finalizing"
+msgstr "Viimeistellään"
+
+#: bin/withlist:175
+msgid "Loading list %(listname)s"
+msgstr "Ladataan listaa %(listname)s"
+
+#: bin/withlist:177
+msgid "(locked)"
+msgstr "(lukittu)"
+
+#: bin/withlist:179
+msgid "(unlocked)"
+msgstr "(ei lukittu)"
+
+#: bin/withlist:184
+#, fuzzy
+msgid "Unknown list: %(listname)s"
+msgstr "Uusi postituslista: %(listname)s"
+
+#: bin/withlist:223
+msgid "No list name supplied."
+msgstr "Listan nimeä ei ole annettu."
+
+#: bin/withlist:226
+msgid "--all requires --run"
+msgstr ""
+
+#: bin/withlist:246
+msgid "Importing %(module)s..."
+msgstr ""
+
+#: bin/withlist:249
+msgid "Running %(module)s.%(callable)s()..."
+msgstr ""
+
+#: bin/withlist:270
+msgid "The variable `m' is the %(listname)s MailList instance"
+msgstr ""
+
+#: cron/bumpdigests:19
+msgid ""
+"Increment the digest volume number and reset the digest number to one.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" --help/-h\n"
+" Print this message and exit.\n"
+"\n"
+"The lists named on the command line are bumped. If no list names are "
+"given,\n"
+"all lists are bumped.\n"
+msgstr ""
+
+#: cron/checkdbs:19
+msgid ""
+"Invoked by cron, this checks for pending moderation requests and mails the\n"
+"list moderators if necessary.\n"
+msgstr ""
+
+#: cron/checkdbs:81
+msgid "%(count)d %(realname)s moderator request(s) waiting"
+msgstr ""
+
+#: cron/checkdbs:100
+msgid "Pending subscriptions:"
+msgstr "Odottavat jäsenyydet"
+
+#: cron/checkdbs:109
+#, fuzzy
+msgid ""
+"\n"
+"Pending posts:"
+msgstr "Odottavat viestit:"
+
+#: cron/checkdbs:114
+msgid ""
+"From: %(sender)s on %(date)s\n"
+"Subject: %(subject)s\n"
+"Cause: %(reason)s"
+msgstr ""
+
+#: cron/disabled:19
+msgid ""
+"Process disabled members, recommended once per day.\n"
+"\n"
+"This script cruises through every mailing list looking for members whose\n"
+"delivery is disabled. If they have been disabled due to bounces, they will\n"
+"receive another notification, or they may be removed if they've received "
+"the\n"
+"maximum number of notifications.\n"
+"\n"
+"Use the --byadmin, --byuser, and --unknown flags to also send notifications "
+"to\n"
+"members whose accounts have been disabled for those reasons. Use --all to\n"
+"send the notification to all disabled members.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -h / --help\n"
+" Print this message and exit.\n"
+"\n"
+" -o / --byadmin\n"
+" Also send notifications to any member disabled by the list\n"
+" owner/administrator.\n"
+"\n"
+" -m / --byuser\n"
+" Also send notifications to any member disabled by themselves.\n"
+"\n"
+" -u / --unknown\n"
+" Also send notifications to any member disabled for unknown reasons\n"
+" (usually a legacy disabled address).\n"
+"\n"
+" -b / --notbybounce\n"
+" Don't send notifications to members disabled because of bounces "
+"(the\n"
+" default is to notify bounce disabled members).\n"
+"\n"
+" -a / --all\n"
+" Send notifications to all disabled members.\n"
+"\n"
+" -f / --force\n"
+" Send notifications to disabled members even if they're not due a "
+"new\n"
+" notification yet.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" Process only the given list, otherwise do all lists.\n"
+msgstr ""
+
+#: cron/disabled:143
+msgid "[disabled by periodic sweep and cull, no message available]"
+msgstr ""
+
+#: cron/gate_news:19
+msgid ""
+"Poll the NNTP servers for messages to be gatewayed to mailing lists.\n"
+"\n"
+"Usage: gate_news [options]\n"
+"\n"
+"Where options are\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this text and exit.\n"
+"\n"
+msgstr ""
+
+#: cron/mailpasswds:19
+msgid ""
+"Send password reminders for all lists to all users.\n"
+"\n"
+"This program scans all mailing lists and collects users and their "
+"passwords,\n"
+"grouped by the list's host_name if mm_cfg.VIRTUAL_HOST_OVERVIEW is true. "
+"Then\n"
+"one email message is sent to each unique user (per-virtual host) containing\n"
+"the list passwords and options url for the user. The password reminder "
+"comes\n"
+"from the mm_cfg.MAILMAN_SITE_LIST, which must exist.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -l listname\n"
+" --listname=listname\n"
+" Send password reminders for the named list only. If omitted,\n"
+" reminders are sent for all lists. Multiple -l/--listname options "
+"are\n"
+" allowed.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+msgstr ""
+
+#: cron/mailpasswds:111
+msgid "Site list is missing: %(sitelistname)s"
+msgstr ""
+
+#: cron/mailpasswds:179
+msgid "Password // URL"
+msgstr ""
+
+#: cron/mailpasswds:199
+msgid "%(host)s mailing list memberships reminder"
+msgstr ""
+
+#: cron/nightly_gzip:19
+msgid ""
+"Re-generate the Pipermail gzip'd archive flat files.\n"
+"\n"
+"This script should be run nightly from cron. When run from the command "
+"line,\n"
+"the following usage is understood:\n"
+"\n"
+"Usage: %(program)s [-v] [-h] [listnames]\n"
+"\n"
+"Where:\n"
+" --verbose\n"
+" -v\n"
+" print each file as it's being gzip'd\n"
+"\n"
+" --help\n"
+" -h\n"
+" print this message and exit\n"
+"\n"
+" listnames\n"
+" Optionally, only compress the .txt files for the named lists. "
+"Without \n"
+" this, all archivable lists are processed.\n"
+"\n"
+msgstr ""
+
+#: cron/senddigests:19
+msgid ""
+"Dispatch digests for lists w/pending messages and digest_send_periodic set.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -h / --help\n"
+" Print this message and exit.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" Send the digest for the given list only, otherwise the digests for "
+"all\n"
+" lists are sent out.\n"
+msgstr ""
+
+#, fuzzy
+#~ msgid "A confirmation email has been sent separately."
+#~ msgstr "Vahvistus sähköposti on lähetetty."
+
+#, fuzzy
+#~ msgid "Policies concerning concerning the content of list traffic."
+#~ msgstr "Heti toimitettavien lähetysten toimintatavat."
+
+#~ msgid "non-digest header"
+#~ msgstr "ei-lukemisto otsikko"
+
+#~ msgid "non-digest footer"
+#~ msgstr "ei-lukemisto alatunniste"
+
+#~ msgid "Get plain text digests (RFC 1153) rather than MIME digests"
+#~ msgstr ""
+#~ "Vastaanota raakatekstin lukemistoja (RFC 1153) mieluummin kuin MIME "
+#~ "lukemistoja"
+
+#~ msgid "Post by a moderated member"
+#~ msgstr "Lähetykset hyväksytyiltä jäseniltä"
+
+#~ msgid ""
+#~ "<li>Find members by\n"
+#~ " <a href=\"http://www.python.org/doc/current/lib/re-syntax."
+#~ "html\"\n"
+#~ " >Python regular expression</a> (<em>regexp</em>)<br>"
+#~ msgstr ""
+#~ "<li>Etsi jäsenet \n"
+#~ " <a href=\"http://www.python.org/doc/current/lib/re-syntax."
+#~ "html\"\n"
+#~ " >Python regular expression</a> (<em>regexp</em>)<br>"
+
+#~ msgid "nomail"
+#~ msgstr "ei viestejä"
+
+#~ msgid "<b>nomail</b> -- Is delivery to the member disabled?"
+#~ msgstr ""
+#~ "<b>ei viestejä</b> -- \n"
+#~ "Onko viestien lähetys jäsenelle otettu pois päältä?"
+
+#~ msgid " no "
+#~ msgstr " ei "
+
+#~ msgid " yes "
+#~ msgstr " kyllä "
+
+#~ msgid "Send notifications to the list owner? "
+#~ msgstr "Lähetä ilmoitukset listan omistajalle? "
+
+#~ msgid "Successfully Subscribed:"
+#~ msgstr "Liitetty onnistuneesti:"
+
+#~ msgid "Error Subscribing:"
+#~ msgstr "Liittäminen epäonnistunut:"
+
+#~ msgid "Password (confirm):"
+#~ msgstr "Salasana (vahvistus):"
+
+#~ msgid ""
+#~ " The passwords you entered in the confirmation screen did "
+#~ "not\n"
+#~ " match, so your original subscription password will be "
+#~ "used\n"
+#~ " instead. Your password will have been generated by "
+#~ "Mailman if\n"
+#~ " you left the password fields blank. In any event, your\n"
+#~ " membership password will be sent to you in a separate\n"
+#~ " acknowledgement email.<p>"
+#~ msgstr ""
+#~ " Vahvistusnäytölle syöttämäsi salasanat eivät täsmää,\n"
+#~ " sen sijaan käytetään liittymisen alkuperäistä salasanaa.\n"
+#~ " Mailman luo sinulle, jos salasana-kentät jätetään\n"
+#~ " tyhjiksi. Joka tapauksessa jäsenyyden salasana\n"
+#~ " lähetetään sinulle erillisessä viestissä.\n"
+#~ "<p>"
+
+#~ msgid "via the member options page"
+#~ msgstr "jäsenen valintasivun kautta"
diff --git a/messages/fi/README.fi b/messages/fi/README.fi
new file mode 100644
index 00000000..796275f0
--- /dev/null
+++ b/messages/fi/README.fi
@@ -0,0 +1,13 @@
+
+28.6.2002
+
+Mailman ohjelmiston suomentaminen
+
+Kehittämisehdotuksia ja kommentteja voit
+lähettää osoitteella:
+
+pekka.haavisto@mtt.fi
+tai
+helpdesk@mtt.fi
+
+Terv. Pekka \ No newline at end of file
diff --git a/messages/fr/LC_MESSAGES/mailman.mo b/messages/fr/LC_MESSAGES/mailman.mo
new file mode 100644
index 00000000..f61f40bd
--- /dev/null
+++ b/messages/fr/LC_MESSAGES/mailman.mo
Binary files differ
diff --git a/messages/fr/LC_MESSAGES/mailman.po b/messages/fr/LC_MESSAGES/mailman.po
new file mode 100644
index 00000000..be70f85f
--- /dev/null
+++ b/messages/fr/LC_MESSAGES/mailman.po
@@ -0,0 +1,11371 @@
+# Catalogues Mailman en Français.
+# Copyright (C) 2001 Free Software Foundation, Inc.
+# Ousmane Wilane <wilane@cyg.sn>, 2002.
+# Pascal George <george@lyon.inserm.fr>, 2002.
+msgid ""
+msgstr ""
+"Project-Id-Version: Mailman 2.1b6\n"
+"POT-Creation-Date: Tue Dec 24 13:41:28 2002\n"
+"PO-Revision-Date: 2002-12-24 10:48-0500\n"
+"Last-Translator: Pascal George <george@lyon.inserm.fr>\n"
+"Language-Team: fr <traduc@traduc.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-15\n"
+"Content-Transfer-Encoding: quoted-printable\n"
+"Generated-By: pygettext.py 1.3\n"
+
+#: Mailman/Archiver/HyperArch.py:112
+msgid "size not available"
+msgstr "taille non disponible"
+
+#: Mailman/Archiver/HyperArch.py:118
+msgid " %(size)i bytes "
+msgstr " %(size)i octets "
+
+#: Mailman/Archiver/HyperArch.py:249 Mailman/Archiver/HyperArch.py:405
+#: Mailman/Archiver/HyperArch.py:963 Mailman/Archiver/HyperArch.py:1127
+msgid " at "
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:434
+msgid "Previous message:"
+msgstr "Message précédent:"
+
+#: Mailman/Archiver/HyperArch.py:456
+msgid "Next message:"
+msgstr "Message suivant:"
+
+#: Mailman/Archiver/HyperArch.py:609 Mailman/Archiver/HyperArch.py:645
+msgid "thread"
+msgstr "\tThread"
+
+#: Mailman/Archiver/HyperArch.py:610 Mailman/Archiver/HyperArch.py:646
+msgid "subject"
+msgstr "objet"
+
+#: Mailman/Archiver/HyperArch.py:611 Mailman/Archiver/HyperArch.py:647
+msgid "author"
+msgstr "auteur"
+
+#: Mailman/Archiver/HyperArch.py:612 Mailman/Archiver/HyperArch.py:648
+msgid "date"
+msgstr "date"
+
+#: Mailman/Archiver/HyperArch.py:684
+msgid "<P>Currently, there are no archives. </P>"
+msgstr "<P>Actuellement, pas d'archives. </P>"
+
+#: Mailman/Archiver/HyperArch.py:721
+msgid "Gzip'd Text%(sz)s"
+msgstr "Text%(sz)s Gzipés"
+
+#: Mailman/Archiver/HyperArch.py:726
+msgid "Text%(sz)s"
+msgstr "Text%(sz)s"
+
+#: Mailman/Archiver/HyperArch.py:816
+msgid "figuring article archives\n"
+msgstr "chiffrage des articles d'archives\n"
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "April"
+msgstr "Avril"
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "February"
+msgstr "Février"
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "January"
+msgstr "Janvier"
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "March"
+msgstr "Mars"
+
+#: Mailman/Archiver/HyperArch.py:827
+msgid "August"
+msgstr "Aôut"
+
+#: Mailman/Archiver/HyperArch.py:827
+msgid "July"
+msgstr "Juillet"
+
+#: Mailman/Archiver/HyperArch.py:827
+msgid "June"
+msgstr "Juin"
+
+#: Mailman/Archiver/HyperArch.py:827 Mailman/i18n.py:91
+msgid "May"
+msgstr "Mai"
+
+#: Mailman/Archiver/HyperArch.py:828
+msgid "December"
+msgstr "Décembre"
+
+#: Mailman/Archiver/HyperArch.py:828
+msgid "November"
+msgstr "Novembre"
+
+#: Mailman/Archiver/HyperArch.py:828
+msgid "October"
+msgstr "Octobre"
+
+#: Mailman/Archiver/HyperArch.py:828
+msgid "September"
+msgstr "September"
+
+#: Mailman/Archiver/HyperArch.py:836
+msgid "First"
+msgstr "Premier"
+
+#: Mailman/Archiver/HyperArch.py:836
+msgid "Fourth"
+msgstr "Quatrième"
+
+#: Mailman/Archiver/HyperArch.py:836
+msgid "Second"
+msgstr "Second"
+
+#: Mailman/Archiver/HyperArch.py:836
+msgid "Third"
+msgstr "Troisième"
+
+#: Mailman/Archiver/HyperArch.py:838
+msgid "%(ord)s quarter %(year)i"
+msgstr "%(ord)s trimestre %(year)i"
+
+#: Mailman/Archiver/HyperArch.py:845
+msgid "%(month)s %(year)i"
+msgstr "%(month)s %(year)i"
+
+#: Mailman/Archiver/HyperArch.py:850
+msgid "The Week Of Monday %(day)i %(month)s %(year)i"
+msgstr "La semaine du lundi %(day)i %(month)s %(year)i"
+
+#: Mailman/Archiver/HyperArch.py:854
+msgid "%(day)i %(month)s %(year)i"
+msgstr "%(day)i %(month)s %(year)i"
+
+#: Mailman/Archiver/HyperArch.py:951
+msgid "Computing threaded index\n"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:1206
+msgid "Updating HTML for article %(seq)s"
+msgstr "Mise à jour des fichiers HTML pour l'article %(seq)s"
+
+#: Mailman/Archiver/HyperArch.py:1213
+msgid "article file %(filename)s is missing!"
+msgstr "le fichier article %(filename)s est manquant!"
+
+#: Mailman/Archiver/pipermail.py:168 Mailman/Archiver/pipermail.py:169
+msgid "No subject"
+msgstr "Sans objet"
+
+#: Mailman/Archiver/pipermail.py:269
+msgid "Creating archive directory "
+msgstr "Création du répertoire des archives "
+
+#: Mailman/Archiver/pipermail.py:281
+msgid "Reloading pickled archive state"
+msgstr "Chargement de l'état pickle des archives"
+
+#: Mailman/Archiver/pipermail.py:308
+msgid "Pickling archive state into "
+msgstr "Pickle de l'état des archives vers "
+
+#: Mailman/Archiver/pipermail.py:419
+msgid "Updating index files for archive [%(archive)s]"
+msgstr "Mise à jour des fichiers d'index pour les archives [%(archive)s]"
+
+#: Mailman/Archiver/pipermail.py:452
+msgid " Thread"
+msgstr "\tThread"
+
+#: Mailman/Archiver/pipermail.py:557
+msgid "#%(counter)05d %(msgid)s"
+msgstr "#%(counter)05d %(msgid)s"
+
+#: Mailman/Bouncer.py:44
+msgid "due to excessive bounces"
+msgstr "suite à des rebonds excessifs"
+
+#: Mailman/Bouncer.py:45
+msgid "by yourself"
+msgstr "par vous"
+
+#: Mailman/Bouncer.py:46
+msgid "by the list administrator"
+msgstr "par l'administrateur de la liste"
+
+#: Mailman/Bouncer.py:47 Mailman/Bouncer.py:232
+#: Mailman/Commands/cmd_set.py:182
+msgid "for unknown reasons"
+msgstr "pour des raisons inconnues"
+
+#: Mailman/Bouncer.py:179
+msgid "disabled"
+msgstr "désactivé"
+
+#: Mailman/Bouncer.py:184
+msgid "Bounce action notification"
+msgstr "Avis de mesure de rebond"
+
+#: Mailman/Bouncer.py:239
+msgid " The last bounce received from you was dated %(date)s"
+msgstr " Le dernier rebond en provenance de votre adresse date du %(date)s"
+
+#: Mailman/Bouncer.py:264 Mailman/Deliverer.py:126
+#: Mailman/Handlers/Acknowledge.py:44 Mailman/Handlers/CookHeaders.py:236
+#: Mailman/Handlers/Hold.py:214 Mailman/Handlers/Hold.py:249
+#: Mailman/Handlers/ToDigest.py:211 Mailman/ListAdmin.py:235
+msgid "(no subject)"
+msgstr "(sans objet)"
+
+#: Mailman/Bouncer.py:266
+msgid "[No bounce details are available]"
+msgstr "[Aucune information de rebond]."
+
+#: Mailman/Cgi/Auth.py:46
+msgid "Moderator"
+msgstr "Modérateur"
+
+#: Mailman/Cgi/Auth.py:48
+msgid "Administrator"
+msgstr "Administrateur"
+
+#: Mailman/Cgi/admin.py:70 Mailman/Cgi/admindb.py:89 Mailman/Cgi/confirm.py:55
+#: Mailman/Cgi/edithtml.py:67 Mailman/Cgi/listinfo.py:51
+#: Mailman/Cgi/options.py:71 Mailman/Cgi/private.py:98
+#: Mailman/Cgi/rmlist.py:64 Mailman/Cgi/roster.py:57
+#: Mailman/Cgi/subscribe.py:61
+msgid "No such list <em>%(safelistname)s</em>"
+msgstr "Liste <em>%(safelistname)s</em> inexistante"
+
+#: Mailman/Cgi/admin.py:85 Mailman/Cgi/admindb.py:105
+#: Mailman/Cgi/edithtml.py:85 Mailman/Cgi/private.py:123
+msgid "Authorization failed."
+msgstr "Echec de l'autorisation."
+
+#: Mailman/Cgi/admin.py:175
+msgid ""
+"You have turned off delivery of both digest and\n"
+" non-digest messages. This is an incompatible state of\n"
+" affairs. You must turn on either digest delivery or\n"
+" non-digest delivery or your mailing list will basically be\n"
+" unusable."
+msgstr ""
+"Vous avez désactivé à la fois la remise groupée et la remise individuelle. "
+"C'est\n"
+"un paramètrage incompatible. Vous devez activer l'un des deux modes, faute "
+"de quoi\n"
+"votre liste de diffusion sera inutilisable."
+
+#: Mailman/Cgi/admin.py:179 Mailman/Cgi/admin.py:185 Mailman/Cgi/admin.py:190
+#: Mailman/Cgi/admin.py:1361 Mailman/Gui/GUIBase.py:184
+msgid "Warning: "
+msgstr "Attention: "
+
+#: Mailman/Cgi/admin.py:183
+msgid ""
+"You have digest members, but digests are turned\n"
+" off. Those people will not receive mail."
+msgstr ""
+"Vous avez des abonnés en mode de remise groupé alors que cette option est "
+"désactivée. Ces abonnés ne recevront pas de courriels."
+
+#: Mailman/Cgi/admin.py:188
+msgid ""
+"You have regular list members but non-digestified mail is\n"
+" turned off. They will receive mail until you fix this\n"
+" problem."
+msgstr ""
+"Vous avez des abonnés normaux mais les soumissions non-groupées sont\n"
+"désactivées. Ils recevront les courriels jusqu'à ce ce que vous resolviez le "
+"problème."
+
+#: Mailman/Cgi/admin.py:212
+msgid "%(hostname)s mailing lists - Admin Links"
+msgstr "Listes de diffusion de %(hostname)s - Liens de l'Admin"
+
+#: Mailman/Cgi/admin.py:241 Mailman/Cgi/listinfo.py:97
+msgid "Welcome!"
+msgstr "Bienvenue!"
+
+#: Mailman/Cgi/admin.py:244 Mailman/Cgi/listinfo.py:100
+msgid "Mailman"
+msgstr "Mailman"
+
+#: Mailman/Cgi/admin.py:248
+msgid ""
+"<p>There currently are no publicly-advertised %(mailmanlink)s\n"
+" mailing lists on %(hostname)s."
+msgstr ""
+"<p>Il n'y a actuellement pas de liste de diffusion %(mailmanlink)s\n"
+"\tpubliques sur %(hostname)s"
+
+#: Mailman/Cgi/admin.py:254
+msgid ""
+"<p>Below is the collection of publicly-advertised\n"
+" %(mailmanlink)s mailing lists on %(hostname)s. Click on a list\n"
+" name to visit the configuration pages for that list."
+msgstr ""
+"<p>Ci-dessous le catalogue de listes de diffusion\n"
+"\t%(mailmanlink)s sur %(hostname)s. Cliquez sur\n"
+"\tle nom d'une liste pour afficher la page de configuration\n"
+"\tde la liste en question."
+
+#: Mailman/Cgi/admin.py:261
+msgid "right "
+msgstr "droite "
+
+#: Mailman/Cgi/admin.py:263
+msgid ""
+"To visit the administrators configuration page for an\n"
+" unadvertised list, open a URL similar to this one, but with a '/' "
+"and\n"
+" the %(extra)slist name appended. If you have the proper authority,\n"
+" you can also <a href=\"%(creatorurl)s\">create a new mailing list</"
+"a>.\n"
+"\n"
+" <p>General list information can be found at "
+msgstr ""
+"Pour visiter la page de configuration des administrateurs pour une liste\n"
+"non annoncée, ouvrez une URL semblable à celle-ci mais avec un '/' et le \n"
+"le nom %(extra)s de la liste à la fin. Si vous disposez des autorisations "
+"nécessaires\n"
+"vous pourrez également <a href=\"%(creatorurl)s\">créer une nouvelle liste.</"
+"a>\n"
+"\n"
+"\t<p>Les informations générales sur les listes sont disponible à "
+
+#: Mailman/Cgi/admin.py:270
+msgid "the mailing list overview page"
+msgstr "Panorama de la liste de diffusion"
+
+#: Mailman/Cgi/admin.py:272
+msgid "<p>(Send questions and comments to "
+msgstr "<p>(Envoyez questions et commentaires à "
+
+#: Mailman/Cgi/admin.py:282 Mailman/Cgi/listinfo.py:132 cron/mailpasswds:179
+msgid "List"
+msgstr "Liste"
+
+#: Mailman/Cgi/admin.py:283 Mailman/Cgi/admin.py:549
+#: Mailman/Cgi/listinfo.py:133
+msgid "Description"
+msgstr "Description"
+
+#: Mailman/Cgi/admin.py:289 Mailman/Cgi/listinfo.py:139 bin/list_lists:116
+msgid "[no description available]"
+msgstr "[pas de description disponible]"
+
+#: Mailman/Cgi/admin.py:322
+msgid "No valid variable name found."
+msgstr "Aucun nom de variable valide trouvé."
+
+#: Mailman/Cgi/admin.py:332
+msgid ""
+"%(realname)s Mailing list Configuration Help\n"
+" <br><em>%(varname)s</em> Option"
+msgstr ""
+"Aide à la configuration de la liste %(realname)s\n"
+"\t<br>Option <em>%(varname)s</em>"
+
+#: Mailman/Cgi/admin.py:339
+msgid "Mailman %(varname)s List Option Help"
+msgstr "Aide Mailman sur l'option de liste %(varname)s"
+
+#: Mailman/Cgi/admin.py:357
+msgid ""
+"<em><strong>Warning:</strong> changing this option here\n"
+" could cause other screens to be out-of-sync. Be sure to reload any "
+"other\n"
+" pages that are displaying this option for this mailing list. You can "
+"also\n"
+" "
+msgstr ""
+"<em><strong>Attention:</strong> Modifier cette option ici peut entrainer un\n"
+"défaut de synchronisation sur les autres fenêtres. Veuillez recharger toute\n"
+"page affichant cette option pour cette liste de diffusion. Vous pourrez "
+"également\n"
+"\n"
+" "
+
+#: Mailman/Cgi/admin.py:368
+msgid "return to the %(categoryname)s options page."
+msgstr "Retourner à la page des options de type %(categoryname)s."
+
+#: Mailman/Cgi/admin.py:383
+msgid "%(realname)s Administration (%(label)s)"
+msgstr "Administration %(realname)s (%(label)s)"
+
+#: Mailman/Cgi/admin.py:384
+msgid "%(realname)s mailing list administration<br>%(label)s Section"
+msgstr "Administration de la liste %(realname)s<br>Section %(label)s"
+
+#: Mailman/Cgi/admin.py:400
+msgid "Configuration Categories"
+msgstr "Catégories de configuration"
+
+#: Mailman/Cgi/admin.py:401
+msgid "Other Administrative Activities"
+msgstr "Les autres tâches administratives"
+
+#: Mailman/Cgi/admin.py:405
+msgid "Tend to pending moderator requests"
+msgstr "Basculer vers les requêtes en attente de modération"
+
+#: Mailman/Cgi/admin.py:407
+msgid "Go to the general list information page"
+msgstr "Allez à la page des informations générales de la liste"
+
+#: Mailman/Cgi/admin.py:409
+msgid "Edit the public HTML pages"
+msgstr "Modifier les pages HTML publiques"
+
+#: Mailman/Cgi/admin.py:411
+msgid "Go to list archives"
+msgstr "Visitez les archives de la liste"
+
+#: Mailman/Cgi/admin.py:417
+msgid "Delete this mailing list"
+msgstr "Supprimer cette liste de diffusion"
+
+#: Mailman/Cgi/admin.py:418
+msgid " (requires confirmation)<br>&nbsp;<br>"
+msgstr " (confirmation requise)<br>&nbsp;<br>"
+
+#: Mailman/Cgi/admin.py:424
+msgid "Logout"
+msgstr "Déconnecter"
+
+#: Mailman/Cgi/admin.py:468
+msgid "Emergency moderation of all list traffic is enabled"
+msgstr "Modération d'urgence sur tout le trafic de la liste:"
+
+#: Mailman/Cgi/admin.py:479
+msgid ""
+"Make your changes in the following section, then submit them\n"
+" using the <em>Submit Your Changes</em> button below."
+msgstr ""
+"Effectuez vos modifications dans la section suivante, ensuite\n"
+"soumettez-les en utilisant le bouton <em>Soumettre vos\n"
+"modifications</em> ci-dessous."
+
+#: Mailman/Cgi/admin.py:497
+msgid "Additional Member Tasks"
+msgstr "Tâches supplémentaires d'abonné"
+
+#: Mailman/Cgi/admin.py:503
+msgid ""
+"<li>Set everyone's moderation bit, including\n"
+" those members not currently visible"
+msgstr ""
+"<li>Activer le bit de modération pour tous, y compris ceux\n"
+" qui ne sont actuellement pas visibles"
+
+#: Mailman/Cgi/admin.py:507
+msgid "Off"
+msgstr "Off"
+
+#: Mailman/Cgi/admin.py:507
+msgid "On"
+msgstr "On"
+
+#: Mailman/Cgi/admin.py:509
+msgid "Set"
+msgstr "Activer"
+
+#: Mailman/Cgi/admin.py:550
+msgid "Value"
+msgstr "Valeur"
+
+#: Mailman/Cgi/admin.py:604
+msgid ""
+"Badly formed options entry:\n"
+" %(record)s"
+msgstr ""
+"Options mal formatées:\n"
+"%(record)s"
+
+#: Mailman/Cgi/admin.py:662
+msgid "<em>Enter the text below, or...</em><br>"
+msgstr "<em>Entrer le texte ci-dessous, ou ...</em><br>"
+
+#: Mailman/Cgi/admin.py:664
+msgid "<br><em>...specify a file to upload</em><br>"
+msgstr "<br><em>...spécifiez une fichier à mettre à jour</em><br>"
+
+#: Mailman/Cgi/admin.py:690 Mailman/Cgi/admin.py:693
+msgid "Topic %(i)d"
+msgstr "Thème %(i)d"
+
+#: Mailman/Cgi/admin.py:694
+msgid "Delete"
+msgstr "Supprimer"
+
+#: Mailman/Cgi/admin.py:695
+msgid "Topic name:"
+msgstr "Nom du thème:"
+
+#: Mailman/Cgi/admin.py:697
+msgid "Regexp:"
+msgstr "Expression regulière:"
+
+#: Mailman/Cgi/admin.py:700 Mailman/Cgi/options.py:943
+msgid "Description:"
+msgstr "Description"
+
+#: Mailman/Cgi/admin.py:704
+msgid "Add new item..."
+msgstr "Ajouter une nouvelle entrée..."
+
+#: Mailman/Cgi/admin.py:706
+msgid "...before this one."
+msgstr "...avant celle-ci."
+
+#: Mailman/Cgi/admin.py:707
+msgid "...after this one."
+msgstr "...après celle-ci."
+
+#: Mailman/Cgi/admin.py:742
+msgid "<br>(Edit <b>%(varname)s</b>)"
+msgstr "<br>(Détails de <b>%(varname)s</b>)"
+
+#: Mailman/Cgi/admin.py:744
+msgid "<br>(Details for <b>%(varname)s</b>)"
+msgstr "<br>(Détails de <b>%(varname)s</b>)"
+
+#: Mailman/Cgi/admin.py:751
+msgid ""
+"<br><em><strong>Note:</strong>\n"
+" setting this value performs an immediate action but does not modify\n"
+" permanent state.</em>"
+msgstr ""
+"<br><em><strong>Note:</strong>\n"
+"\tl'activation de cette valeur prend effet immédiatement sans\n"
+"\tmodifier les états permanents.</em>"
+
+#: Mailman/Cgi/admin.py:765
+msgid "Mass Subscriptions"
+msgstr "Abonnement en masse"
+
+#: Mailman/Cgi/admin.py:772
+msgid "Mass Removals"
+msgstr "Suppression en masse"
+
+#: Mailman/Cgi/admin.py:779
+msgid "Membership List"
+msgstr "Liste des abonnements"
+
+#: Mailman/Cgi/admin.py:786
+msgid "(help)"
+msgstr "(aide)"
+
+#: Mailman/Cgi/admin.py:787
+msgid "Find member %(link)s:"
+msgstr "Rechercher l'abonné: %(link)s:"
+
+#: Mailman/Cgi/admin.py:790
+msgid "Search..."
+msgstr "Recherche..."
+
+#: Mailman/Cgi/admin.py:805
+msgid "Bad regular expression: "
+msgstr "Expression régulière invalide: "
+
+#: Mailman/Cgi/admin.py:861
+msgid "%(allcnt)s members total, %(membercnt)s shown"
+msgstr "Total des abonnés %(allcnt)s, %(membercnt)s affichés"
+
+#: Mailman/Cgi/admin.py:864
+msgid "%(allcnt)s members total"
+msgstr "total des abonnés %(allcnt)s"
+
+#: Mailman/Cgi/admin.py:887
+msgid "unsub"
+msgstr "résil"
+
+#: Mailman/Cgi/admin.py:888
+msgid "member address<br>member name"
+msgstr "Adresse de l'abonné<br>Nom de l'abonné"
+
+#: Mailman/Cgi/admin.py:889
+msgid "hide"
+msgstr "cacher"
+
+#: Mailman/Cgi/admin.py:889
+msgid "mod"
+msgstr "mod"
+
+#: Mailman/Cgi/admin.py:890
+msgid "nomail<br>[reason]"
+msgstr "noncourriel<br>[raison]"
+
+#: Mailman/Cgi/admin.py:891
+msgid "ack"
+msgstr "acc"
+
+#: Mailman/Cgi/admin.py:891
+msgid "not metoo"
+msgstr "pasmoi"
+
+#: Mailman/Cgi/admin.py:892
+msgid "nodupes"
+msgstr "sansdoublons"
+
+#: Mailman/Cgi/admin.py:893
+msgid "digest"
+msgstr "groupé"
+
+#: Mailman/Cgi/admin.py:893
+msgid "plain"
+msgstr "brut"
+
+#: Mailman/Cgi/admin.py:894
+msgid "language"
+msgstr "langue"
+
+#: Mailman/Cgi/admin.py:905
+msgid "?"
+msgstr "?"
+
+#: Mailman/Cgi/admin.py:906
+msgid "U"
+msgstr "U"
+
+#: Mailman/Cgi/admin.py:907
+msgid "A"
+msgstr "A"
+
+#: Mailman/Cgi/admin.py:908
+msgid "B"
+msgstr "R"
+
+#: Mailman/Cgi/admin.py:979
+msgid "<b>unsub</b> -- Click on this to unsubscribe the member."
+msgstr "<b>résil</b> -- Cliquez pour résilier son abonnement."
+
+#: Mailman/Cgi/admin.py:981
+msgid ""
+"<b>mod</b> -- The user's personal moderation flag. If this is\n"
+" set, postings from them will be moderated, otherwise they will be\n"
+" approved."
+msgstr ""
+"<b>mod</b> -- Le bit de modération individuel de l'utilisateur. \n"
+" Si celui-ci est actif, les envois de l'utilisateur \n"
+" seront modérés, sinon, ils seront approuvés."
+
+#: Mailman/Cgi/admin.py:985
+msgid ""
+"<b>hide</b> -- Is the member's address concealed on\n"
+" the list of subscribers?"
+msgstr ""
+"<b>cacher</b> -- L'adresse de l'abonné est-elle supprimée\n"
+"\tde la liste des abonnés?"
+
+#: Mailman/Cgi/admin.py:987
+msgid ""
+"<b>nomail</b> -- Is delivery to the member disabled? If so, an\n"
+" abbreviation will be given describing the reason for the disabled\n"
+" delivery:\n"
+" <ul><li><b>U</b> -- Delivery was disabled by the user via their\n"
+" personal options page.\n"
+" <li><b>A</b> -- Delivery was disabled by the list\n"
+" administrators.\n"
+" <li><b>B</b> -- Delivery was disabled by the system due to\n"
+" excessive bouncing from the member's address.\n"
+" <li><b>?</b> -- The reason for disabled delivery isn't "
+"known.\n"
+" This is the case for all memberships which were "
+"disabled\n"
+" in older versions of Mailman.\n"
+" </ul>"
+msgstr ""
+"<b>noncourriel</b> -- Les envois à l'abonné sont désactivés ?\n"
+"Si oui, une abréviation sera fournie pour en indiquer la raison:\n"
+" <ul><li><b>U</b> -- La remise a été désactivée par l'abonné à\n"
+" partir de la page d'option personnelle.\n"
+" <li><b>A</b> -- La remise a été désactivée par les\n"
+" administrateurs de la liste.\n"
+" <li><b>R</b> -- La remise a été désactivée par le système\n"
+" suite à des rebonds excessifs en provenance de l'adresse\n"
+" de l'abonné.\n"
+" <li><b>?</b> -- Le motif de la désactivation est inconnu.\n"
+" C'est le cas de toutes les désactivations opérées dans\n"
+" des versions précédentes de Mailman.\n"
+" </ul>"
+
+#: Mailman/Cgi/admin.py:1002
+msgid ""
+"<b>ack</b> -- Does the member get acknowledgements of their\n"
+" posts?"
+msgstr ""
+"<b>acc</b> -- Les abonnés recoivent un accusé de réception de leurs envois?"
+
+#: Mailman/Cgi/admin.py:1005
+msgid ""
+"<b>not metoo</b> -- Does the member want to avoid copies of their\n"
+" own postings?"
+msgstr ""
+"<b>pasmoi</b> -- Les abonnés veulent-ils éviter de recevoir des copies\n"
+"de leurs propres envois ?"
+
+#: Mailman/Cgi/admin.py:1008
+msgid ""
+"<b>nodupes</b> -- Does the member want to avoid duplicates of the\n"
+" same message?"
+msgstr "<b>pasmoi</b> -- Les abonnés éludent-ils les doublons?"
+
+#: Mailman/Cgi/admin.py:1011
+msgid ""
+"<b>digest</b> -- Does the member get messages in digests?\n"
+" (otherwise, individual messages)"
+msgstr ""
+"<b>groupée</b> -- Est ce que les abonnés recoivent les messages\n"
+"sous forme groupée?\n"
+"\t(envois individuels sinon)"
+
+#: Mailman/Cgi/admin.py:1014
+msgid ""
+"<b>plain</b> -- If getting digests, does the member get plain\n"
+" text digests? (otherwise, MIME)"
+msgstr ""
+"<b>brut</b> -- Lors de l'envoi groupé, l'abonné\n"
+"doit-il recevoir du texte brut? (MIME sinon)"
+
+#: Mailman/Cgi/admin.py:1016
+msgid "<b>language</b> -- Language preferred by the user"
+msgstr "<b>Langue</b> -- Langue préféré par l'utilisateur"
+
+#: Mailman/Cgi/admin.py:1030
+msgid "Click here to hide the legend for this table."
+msgstr "Cliquez ici pour cacher la légende de cette table."
+
+#: Mailman/Cgi/admin.py:1034
+msgid "Click here to include the legend for this table."
+msgstr "Cliquer ici pour inclure la légende de cette table."
+
+#: Mailman/Cgi/admin.py:1041
+msgid ""
+"<p><em>To view more members, click on the appropriate\n"
+" range listed below:</em>"
+msgstr ""
+"<p><em>Pour voir d'avantage d'abonnés, cliquer sur l'un des intervalles ci-"
+"dessous:<em>"
+
+#: Mailman/Cgi/admin.py:1050
+msgid "from %(start)s to %(end)s"
+msgstr "De %(start)s à %(end)s"
+
+#: Mailman/Cgi/admin.py:1063
+msgid "Subscribe these users now or invite them?"
+msgstr "Abonner ces utilisateurs maintenant ou les inviter?"
+
+#: Mailman/Cgi/admin.py:1065
+msgid "Invite"
+msgstr "Inviter"
+
+#: Mailman/Cgi/admin.py:1065 Mailman/Cgi/listinfo.py:175
+msgid "Subscribe"
+msgstr "Abonner"
+
+#: Mailman/Cgi/admin.py:1071
+msgid "Send welcome messages to new subscribees?"
+msgstr "Envoyer un message de bienvenue aux nouveaux abonnés?"
+
+#: Mailman/Cgi/admin.py:1073 Mailman/Cgi/admin.py:1082
+#: Mailman/Cgi/admin.py:1115 Mailman/Cgi/admin.py:1123
+#: Mailman/Cgi/confirm.py:271 Mailman/Cgi/create.py:327
+#: Mailman/Cgi/create.py:355 Mailman/Cgi/create.py:395
+#: Mailman/Cgi/rmlist.py:228 Mailman/Gui/Archive.py:33
+#: Mailman/Gui/Autoresponse.py:54 Mailman/Gui/Autoresponse.py:62
+#: Mailman/Gui/Autoresponse.py:71 Mailman/Gui/Bounce.py:77
+#: Mailman/Gui/Bounce.py:108 Mailman/Gui/Bounce.py:134
+#: Mailman/Gui/Bounce.py:143 Mailman/Gui/ContentFilter.py:70
+#: Mailman/Gui/ContentFilter.py:103 Mailman/Gui/Digest.py:46
+#: Mailman/Gui/Digest.py:62 Mailman/Gui/Digest.py:84 Mailman/Gui/Digest.py:89
+#: Mailman/Gui/General.py:148 Mailman/Gui/General.py:154
+#: Mailman/Gui/General.py:232 Mailman/Gui/General.py:259
+#: Mailman/Gui/General.py:286 Mailman/Gui/General.py:297
+#: Mailman/Gui/General.py:300 Mailman/Gui/General.py:310
+#: Mailman/Gui/General.py:315 Mailman/Gui/General.py:325
+#: Mailman/Gui/General.py:345 Mailman/Gui/General.py:373
+#: Mailman/Gui/General.py:396 Mailman/Gui/NonDigest.py:44
+#: Mailman/Gui/NonDigest.py:52 Mailman/Gui/Privacy.py:101
+#: Mailman/Gui/Privacy.py:107 Mailman/Gui/Privacy.py:140
+#: Mailman/Gui/Privacy.py:188 Mailman/Gui/Privacy.py:296
+#: Mailman/Gui/Privacy.py:309 Mailman/Gui/Usenet.py:50
+#: Mailman/Gui/Usenet.py:54 Mailman/Gui/Usenet.py:91 Mailman/Gui/Usenet.py:103
+msgid "No"
+msgstr "Non"
+
+#: Mailman/Cgi/admin.py:1073 Mailman/Cgi/admin.py:1082
+#: Mailman/Cgi/admin.py:1115 Mailman/Cgi/admin.py:1123
+#: Mailman/Cgi/confirm.py:271 Mailman/Cgi/create.py:327
+#: Mailman/Cgi/create.py:355 Mailman/Cgi/create.py:395
+#: Mailman/Cgi/rmlist.py:228 Mailman/Gui/Archive.py:33
+#: Mailman/Gui/Autoresponse.py:54 Mailman/Gui/Autoresponse.py:62
+#: Mailman/Gui/Bounce.py:77 Mailman/Gui/Bounce.py:108
+#: Mailman/Gui/Bounce.py:134 Mailman/Gui/Bounce.py:143
+#: Mailman/Gui/ContentFilter.py:70 Mailman/Gui/ContentFilter.py:103
+#: Mailman/Gui/Digest.py:46 Mailman/Gui/Digest.py:62 Mailman/Gui/Digest.py:84
+#: Mailman/Gui/Digest.py:89 Mailman/Gui/General.py:148
+#: Mailman/Gui/General.py:154 Mailman/Gui/General.py:232
+#: Mailman/Gui/General.py:259 Mailman/Gui/General.py:286
+#: Mailman/Gui/General.py:297 Mailman/Gui/General.py:300
+#: Mailman/Gui/General.py:310 Mailman/Gui/General.py:315
+#: Mailman/Gui/General.py:325 Mailman/Gui/General.py:345
+#: Mailman/Gui/General.py:373 Mailman/Gui/General.py:396
+#: Mailman/Gui/NonDigest.py:44 Mailman/Gui/NonDigest.py:52
+#: Mailman/Gui/Privacy.py:101 Mailman/Gui/Privacy.py:107
+#: Mailman/Gui/Privacy.py:140 Mailman/Gui/Privacy.py:188
+#: Mailman/Gui/Privacy.py:296 Mailman/Gui/Privacy.py:309
+#: Mailman/Gui/Usenet.py:50 Mailman/Gui/Usenet.py:54 Mailman/Gui/Usenet.py:91
+#: Mailman/Gui/Usenet.py:103
+msgid "Yes"
+msgstr "Oui"
+
+#: Mailman/Cgi/admin.py:1080
+msgid "Send notifications of new subscriptions to the list owner?"
+msgstr "Envoyer un avis de nouvel abonnement au propriétaire de la liste?"
+
+#: Mailman/Cgi/admin.py:1088 Mailman/Cgi/admin.py:1129
+msgid "Enter one address per line below..."
+msgstr "Entrer une adresse par ligne ci-dessous..."
+
+#: Mailman/Cgi/admin.py:1093 Mailman/Cgi/admin.py:1134
+msgid "...or specify a file to upload:"
+msgstr "...ou spécifier un fichier à charger"
+
+#: Mailman/Cgi/admin.py:1098
+msgid ""
+"Below, enter additional text to be added to the\n"
+" top of your invitation or the subscription notification. Include at "
+"least\n"
+" one blank line at the end..."
+msgstr ""
+"Veuillez indiquer ci-dessous un texte supplémentaire à ajouter en tête\n"
+"de votre avis d'invitation ou d'abonnement. Ajouter au moins une ligne\n"
+"vide à la fin..."
+
+#: Mailman/Cgi/admin.py:1113
+msgid "Send unsubscription acknowledgement to the user?"
+msgstr "Envoyer un accusé de réception de résiliation à l'utilisateur?"
+
+#: Mailman/Cgi/admin.py:1121
+msgid "Send notifications to the list owner?"
+msgstr "Envoyer les avis au propriétaire de la liste?"
+
+#: Mailman/Cgi/admin.py:1143
+msgid "Change list ownership passwords"
+msgstr "Modifier le mot de passe des propriétaires de la liste"
+
+#: Mailman/Cgi/admin.py:1146
+msgid ""
+"The <em>list administrators</em> are the people who have ultimate control "
+"over\n"
+"all parameters of this mailing list. They are able to change any list\n"
+"configuration variable available through these administration web pages.\n"
+"\n"
+"<p>The <em>list moderators</em> have more limited permissions; they are not\n"
+"able to change any list configuration variable, but they are allowed to "
+"tend\n"
+"to pending administration requests, including approving or rejecting held\n"
+"subscription requests, and disposing of held postings. Of course, the\n"
+"<em>list administrators</em> can also tend to pending requests.\n"
+"\n"
+"<p>In order to split the list ownership duties into administrators and\n"
+"moderators, you must set a separate moderator password in the fields below,\n"
+"and also provide the email addresses of the list moderators in the\n"
+"<a href=\"%(adminurl)s/general\">general options section</a>."
+msgstr ""
+"Les <em>Administrateurs de listes</em> sont ceux qui disposent\n"
+"d'un contrôle total sur tous les paramètres de cette liste. Ils\n"
+"peuvent modifier toute variable de liste configurable à travers ces\n"
+"pages web d'administration.\n"
+"\n"
+"<p>Les <em>Modérateurs de listes</em> ont moins de privilèges; ils ne\n"
+"peuvent pas modifier une variable de configuration de liste, mais\n"
+"peuvent néanmoins basculer vers les requêtes administratives, pour\n"
+"approuver ou rejeter les requêtes d'abonnement, se débarrasser des\n"
+"soumissions en attente. <em>Les administrateurs</em> de listes\n"
+"peuvent évidemment basculer vers les requêtes en attente. \n"
+"\n"
+"<p>Pour séparer les tâches relatives à la gestion d'une liste en\n"
+"tâches administratives et tâches de modération, Vous devriez fournir\n"
+"un mot de passe de modération séparé dans le champ ci-dessous, et\n"
+"fournir la liste des adresses courriel des modérateurs dans la\n"
+"<a href=\"%(adminurl)s/general\">section options générales</a>."
+
+#: Mailman/Cgi/admin.py:1165
+msgid "Enter new administrator password:"
+msgstr "Entrer le nouveau mot de passe administrateur:"
+
+#: Mailman/Cgi/admin.py:1167
+msgid "Confirm administrator password:"
+msgstr "Confirmer le mot de passe administrateur:"
+
+#: Mailman/Cgi/admin.py:1172
+msgid "Enter new moderator password:"
+msgstr "Entrer le nouveau mot de passe de modération:"
+
+#: Mailman/Cgi/admin.py:1174
+msgid "Confirm moderator password:"
+msgstr "Confirmer le nouveau mot de passe de modération:"
+
+#: Mailman/Cgi/admin.py:1184
+msgid "Submit Your Changes"
+msgstr "Soumettre vos modifications"
+
+#: Mailman/Cgi/admin.py:1207
+msgid "Moderator passwords did not match"
+msgstr "Les mots de passe de modération ne correspondent pas"
+
+#: Mailman/Cgi/admin.py:1217
+msgid "Administrator passwords did not match"
+msgstr "Les mots de passe administrateur ne correspondent pas"
+
+#: Mailman/Cgi/admin.py:1265
+msgid "Already a member"
+msgstr "Déjà abonné"
+
+#: Mailman/Cgi/admin.py:1268
+msgid "&lt;blank line&gt;"
+msgstr "&lt;ligne vide&gt;"
+
+#: Mailman/Cgi/admin.py:1269 Mailman/Cgi/admin.py:1272
+msgid "Bad/Invalid email address"
+msgstr "Adresse courriel Mauvaise/Invalide"
+
+#: Mailman/Cgi/admin.py:1275
+msgid "Hostile address (illegal characters)"
+msgstr "Adresse hostile (caractères illégaux)"
+
+#: Mailman/Cgi/admin.py:1281
+msgid "Successfully invited:"
+msgstr "Invité avec succès:"
+
+#: Mailman/Cgi/admin.py:1283
+msgid "Successfully subscribed:"
+msgstr "Abonnement réussi"
+
+#: Mailman/Cgi/admin.py:1288
+msgid "Error inviting:"
+msgstr "Erreur lors de l'invitation:"
+
+#: Mailman/Cgi/admin.py:1290
+msgid "Error subscribing:"
+msgstr "Erreur lors de l'abonnement:"
+
+#: Mailman/Cgi/admin.py:1319
+msgid "Successfully Unsubscribed:"
+msgstr "Résiliation réussie"
+
+#: Mailman/Cgi/admin.py:1324
+msgid "Cannot unsubscribe non-members:"
+msgstr "Ne peut résilier l'abonnement de non-abonnés"
+
+#: Mailman/Cgi/admin.py:1336
+msgid "Bad moderation flag value"
+msgstr "Valeur du bit de modération incorrecte"
+
+#: Mailman/Cgi/admin.py:1357
+msgid "Not subscribed"
+msgstr "Pas abonné"
+
+#: Mailman/Cgi/admin.py:1360
+msgid "Ignoring changes to deleted member: %(user)s"
+msgstr ""
+"Les modifications apportées à l'abonné supprimé sont ignorées: %(user)s"
+
+#: Mailman/Cgi/admin.py:1400
+msgid "Successfully Removed:"
+msgstr "Abonnement résilié avec succès:"
+
+#: Mailman/Cgi/admin.py:1404
+msgid "Error Unsubscribing:"
+msgstr "Erreur lors de la résiliation:"
+
+#: Mailman/Cgi/admindb.py:159 Mailman/Cgi/admindb.py:167
+msgid "%(realname)s Administrative Database"
+msgstr "Base de données administrative de %(realname)s"
+
+#: Mailman/Cgi/admindb.py:162
+msgid "%(realname)s Administrative Database Results"
+msgstr "Résultats de la base de données administrative de %(realname)s"
+
+#: Mailman/Cgi/admindb.py:170
+msgid "There are no pending requests."
+msgstr "Pas de requêtes en instance."
+
+#: Mailman/Cgi/admindb.py:173
+msgid "Click here to reload this page."
+msgstr "Cliquez ici pour recharger cette page."
+
+#: Mailman/Cgi/admindb.py:184
+msgid "Detailed instructions for the administrative database"
+msgstr "Instructions détaillées pour la Base de données administrative"
+
+#: Mailman/Cgi/admindb.py:188
+msgid "Administrative requests for mailing list:"
+msgstr "Requêtes administratives pour la liste de diffusion:"
+
+#: Mailman/Cgi/admindb.py:191 Mailman/Cgi/admindb.py:234
+msgid "Submit All Data"
+msgstr "Soumettre toutes les données"
+
+#: Mailman/Cgi/admindb.py:204
+msgid "all of %(esender)s's held messages."
+msgstr "tous les messages de %(esender)s en attente."
+
+#: Mailman/Cgi/admindb.py:209
+msgid "a single held message."
+msgstr "un seul message en attente"
+
+#: Mailman/Cgi/admindb.py:214
+msgid "all held messages."
+msgstr "tous les messages en attente."
+
+#: Mailman/Cgi/admindb.py:249
+msgid "Mailman Administrative Database Error"
+msgstr "Erreur sur la base de données administrative de Mailman"
+
+#: Mailman/Cgi/admindb.py:254
+msgid "list of available mailing lists."
+msgstr "Catalogue des listes de diffusion disponibles"
+
+#: Mailman/Cgi/admindb.py:255
+msgid "You must specify a list name. Here is the %(link)s"
+msgstr "Vous devez donner le nom d'une liste. Voici les %(link)s"
+
+#: Mailman/Cgi/admindb.py:268
+msgid "Subscription Requests"
+msgstr "Requêtes d'abonnement"
+
+#: Mailman/Cgi/admindb.py:270
+msgid "Address/name"
+msgstr "Adresse/nom"
+
+#: Mailman/Cgi/admindb.py:271 Mailman/Cgi/admindb.py:320
+msgid "Your decision"
+msgstr "Votre décision"
+
+#: Mailman/Cgi/admindb.py:272 Mailman/Cgi/admindb.py:321
+msgid "Reason for refusal"
+msgstr "Motifs du refus"
+
+#: Mailman/Cgi/admindb.py:289 Mailman/Cgi/admindb.py:346
+#: Mailman/Cgi/admindb.py:389 Mailman/Cgi/admindb.py:612
+msgid "Defer"
+msgstr "Repousser"
+
+#: Mailman/Cgi/admindb.py:290 Mailman/Cgi/admindb.py:347
+#: Mailman/Cgi/admindb.py:612
+msgid "Approve"
+msgstr "Approuver"
+
+#: Mailman/Cgi/admindb.py:291 Mailman/Cgi/admindb.py:348
+#: Mailman/Cgi/admindb.py:389 Mailman/Cgi/admindb.py:612
+#: Mailman/Gui/ContentFilter.py:37 Mailman/Gui/Privacy.py:207
+#: Mailman/Gui/Privacy.py:281
+msgid "Reject"
+msgstr "Rejeter"
+
+#: Mailman/Cgi/admindb.py:292 Mailman/Cgi/admindb.py:349
+#: Mailman/Cgi/admindb.py:389 Mailman/Cgi/admindb.py:612
+#: Mailman/Gui/ContentFilter.py:37 Mailman/Gui/Privacy.py:207
+#: Mailman/Gui/Privacy.py:281
+msgid "Discard"
+msgstr "Ignorer"
+
+#: Mailman/Cgi/admindb.py:300
+msgid "Permanently ban from this list"
+msgstr "Définitivement banni de cette liste"
+
+#: Mailman/Cgi/admindb.py:319
+msgid "User address/name"
+msgstr "Adresse/nom de l'abonné"
+
+#: Mailman/Cgi/admindb.py:359
+msgid "Unsubscription Requests"
+msgstr "Requêtes de résiliation d'abonnement"
+
+#: Mailman/Cgi/admindb.py:382 Mailman/Cgi/admindb.py:596
+msgid "From:"
+msgstr "De:"
+
+#: Mailman/Cgi/admindb.py:385
+msgid "Action to take on all these held messages:"
+msgstr "Mesure à prendre pour tous ces messages en attente:"
+
+#: Mailman/Cgi/admindb.py:389 Mailman/Gui/Privacy.py:281
+msgid "Accept"
+msgstr "Accepter"
+
+#: Mailman/Cgi/admindb.py:397
+msgid "Preserve messages for the site administrator"
+msgstr "Conserver une copie de ce message pour l'administrateur du site"
+
+#: Mailman/Cgi/admindb.py:403
+msgid "Forward messages (individually) to:"
+msgstr "Faire suivre les messages (individuellement) à:"
+
+#: Mailman/Cgi/admindb.py:421
+msgid "Clear this member's <em>moderate</em> flag"
+msgstr "Annuler le bit de <em>modération</em> de cet abonné"
+
+#: Mailman/Cgi/admindb.py:425
+msgid "<em>The sender is now a member of this list</em>"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:434
+msgid "Add <b>%(esender)s</b> to a sender filter"
+msgstr "Ajouter <b>%(esender)s</b> à un filtre expéditeur"
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Accepts"
+msgstr "Approbations"
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Discards"
+msgstr "Ignorances"
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Holds"
+msgstr "Attentes"
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Rejects"
+msgstr "Rejets"
+
+#: Mailman/Cgi/admindb.py:448
+msgid ""
+"Ban <b>%(esender)s</b> from ever subscribing to this\n"
+" mailing list"
+msgstr ""
+"Ajouter <b>%(esender)s</b> aux utilisateurs qui ne pourront jamais\n"
+"s'abonner à cette liste. "
+
+#: Mailman/Cgi/admindb.py:453
+msgid ""
+"Click on the message number to view the individual\n"
+" message, or you can "
+msgstr ""
+"Cliquez sur le numéro du message pour voir le message\n"
+" individuel, à moins que"
+
+#: Mailman/Cgi/admindb.py:455
+msgid "view all messages from %(esender)s"
+msgstr "visualisez tous les messages de %(esender)s"
+
+#: Mailman/Cgi/admindb.py:475 Mailman/Cgi/admindb.py:599
+msgid "Subject:"
+msgstr "Objet:"
+
+#: Mailman/Cgi/admindb.py:478
+msgid " bytes"
+msgstr " octets"
+
+#: Mailman/Cgi/admindb.py:478
+msgid "Size:"
+msgstr "Taille:"
+
+#: Mailman/Cgi/admindb.py:482 Mailman/Handlers/Decorate.py:50
+#: Mailman/Handlers/Scrubber.py:226 Mailman/Handlers/Scrubber.py:227
+msgid "not available"
+msgstr "non disponible"
+
+#: Mailman/Cgi/admindb.py:483 Mailman/Cgi/admindb.py:601
+msgid "Reason:"
+msgstr "Motif:"
+
+#: Mailman/Cgi/admindb.py:487 Mailman/Cgi/admindb.py:605
+msgid "Received:"
+msgstr "Reçus:"
+
+#: Mailman/Cgi/admindb.py:545
+msgid "Posting Held for Approval"
+msgstr "Envoi mis en attente d'approbation"
+
+#: Mailman/Cgi/admindb.py:547
+msgid " (%(count)d of %(total)d)"
+msgstr " (%(count)d de %(total)d)"
+
+#: Mailman/Cgi/admindb.py:558
+msgid "<em>Message with id #%(id)d was lost."
+msgstr "<em>Message avec l'id #%(id)d perdu."
+
+#: Mailman/Cgi/admindb.py:567
+msgid "<em>Message with id #%(id)d is corrupted."
+msgstr "<em>Le message avec comme id #%(id)d est altéré."
+
+#: Mailman/Cgi/admindb.py:618
+msgid "Action:"
+msgstr "Action:"
+
+#: Mailman/Cgi/admindb.py:622
+msgid "Preserve message for site administrator"
+msgstr "Conserver les messages pour l'administrateur du site"
+
+#: Mailman/Cgi/admindb.py:626
+msgid "Additionally, forward this message to: "
+msgstr "De plus, faire suivre ce message à:"
+
+#: Mailman/Cgi/admindb.py:630
+msgid "[No explanation given]"
+msgstr "[Aucun motif fourni]"
+
+#: Mailman/Cgi/admindb.py:632
+msgid "If you reject this post,<br>please explain (optional):"
+msgstr "Si vous rejettez cet envoi, <b>veuillez vous expliquer (facultatif):"
+
+#: Mailman/Cgi/admindb.py:638
+msgid "Message Headers:"
+msgstr "En-tête de message:"
+
+#: Mailman/Cgi/admindb.py:643
+msgid "Message Excerpt:"
+msgstr "Extrait du message:"
+
+#: Mailman/Cgi/admindb.py:676 Mailman/Deliverer.py:124
+msgid "No reason given"
+msgstr "Sans motif"
+
+#: Mailman/Cgi/admindb.py:737 Mailman/ListAdmin.py:308
+#: Mailman/ListAdmin.py:429
+msgid "[No reason given]"
+msgstr "[aucun motif fourni]"
+
+#: Mailman/Cgi/admindb.py:766
+msgid "Database Updated..."
+msgstr "Base de données mise à jour..."
+
+#: Mailman/Cgi/admindb.py:769
+msgid " is already a member"
+msgstr " est déjà abonné"
+
+#: Mailman/Cgi/confirm.py:69
+msgid "Confirmation string was empty."
+msgstr "La chaîne de confirmation était vide."
+
+#: Mailman/Cgi/confirm.py:89
+msgid ""
+"<b>Invalid confirmation string:</b>\n"
+" %(safecookie)s.\n"
+"\n"
+" <p>Note that confirmation strings expire approximately\n"
+" %(days)s days after the initial subscription request. If your\n"
+" confirmation has expired, please try to re-submit your subscription.\n"
+" Otherwise, <a href=\"%(confirmurl)s\">re-enter</a> your confirmation\n"
+" string."
+msgstr ""
+"<b>Chaîne de confirmation non valide:</b>\n"
+" %(safecookie)s.\n"
+"\n"
+" <p>Notez que la chaîne de confirmation expire au bout de %(days)s\n"
+" jours à partir de l'émission de la requête initiale\n"
+" d'abonnement. Si votre confirmation a expirée, veuillez demander un\n"
+" nouvel abonnement.\n"
+" Si tel n'est pas le cas, <a href=\"%(confirmurl)s\">fournissez</a>\n"
+" votre chaîne de confirmation de nouveau."
+
+#: Mailman/Cgi/confirm.py:122
+msgid ""
+"The address requesting unsubscription is not\n"
+" a member of the mailing list. Perhaps you have already "
+"been\n"
+" unsubscribed, e.g. by the list administrator?"
+msgstr ""
+"L'adresse demandant une désinscription n'est pas \n"
+"celle d'un membre de la liste. Peut-être avez-vous déjà été \n"
+"désinscrit, e.g par l'administrateur de liste ?"
+
+#: Mailman/Cgi/confirm.py:138
+msgid ""
+"The address requesting to be changed has\n"
+" been subsequently unsubscribed. This request has been\n"
+" cancelled."
+msgstr ""
+"L'adresse qui demande à être modifiée a été supprimée entre\n"
+"temps. Cette requête a été annulée"
+
+#: Mailman/Cgi/confirm.py:157
+msgid "System error, bad content: %(content)s"
+msgstr "Erreur système, mauvais contenu: %(content)s"
+
+#: Mailman/Cgi/confirm.py:167
+msgid "Bad confirmation string"
+msgstr "Mauvaise chaîne de confirmation"
+
+#: Mailman/Cgi/confirm.py:175
+msgid "Enter confirmation cookie"
+msgstr "Entrez le cookie de confirmation"
+
+#: Mailman/Cgi/confirm.py:188
+msgid ""
+"Please enter the confirmation string\n"
+" (i.e. <em>cookie</em>) that you received in your email message, in the "
+"box\n"
+" below. Then hit the <em>Submit</em> button to proceed to the next\n"
+" confirmation step."
+msgstr ""
+"Veuillez entrer la chaîne de confirmation (i.e. <em>le cookie</em>) que\n"
+"vous avez reçue dans votre message dans la zone de texte ci-dessous,\n"
+"puis cliquez sur le bouton <em>Soumettre</em> pour aller à la fenêtre\n"
+"de confirmation suivante."
+
+#: Mailman/Cgi/confirm.py:193
+msgid "Confirmation string:"
+msgstr "Chaîne de confirmation:"
+
+#: Mailman/Cgi/confirm.py:195
+msgid "Submit"
+msgstr "Soumettre"
+
+#: Mailman/Cgi/confirm.py:210
+msgid "Confirm subscription request"
+msgstr "Confirmez la requête d'abonnement"
+
+#: Mailman/Cgi/confirm.py:227
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" subscription request to the mailing list <em>%(listname)s</em>. Your\n"
+" subscription settings are shown below; make any necessary changes and "
+"hit\n"
+" <em>Subscribe</em> to complete the confirmation process. Once you've\n"
+" confirmed your subscription request, you will be shown your account\n"
+" options page which you can use to further customize your membership\n"
+" options.\n"
+"\n"
+" <p>Note: your password will be emailed to you once your subscription is\n"
+" confirmed. You can change it by visiting your personal options page.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this subscription\n"
+" request."
+msgstr ""
+"Votre confirmation est nécessaire pour achever le processus\n"
+"d'abonnement à la liste <em>%(listname)s</em>. Vos paramètres\n"
+"d'abonnements sont affichés ci-dessous; opérez les modifications\n"
+"désirées et cliquez \n"
+"sur <em>Abonner</em> pour achever le processus de confirmation. Une\n"
+"fois votre requête d'abonnement confirmée, la page des options de\n"
+"votre compte vous sera affichée, vous pourrez alors l'utiliser pour\n"
+"une personnalisation avancée de vos options d'abonnement.\n"
+"\n"
+"<p>Note: Votre mot de passe vous sera envoyé par courriel une fois que\n"
+"votre abonnement aura été confirmé. Vous pourrez le changer en vous\n"
+"rendant sur votre page d'options personnelles.\n"
+"\n"
+"<p>Ou cliquez sur <em>Annuler et ignorer</em> pour annuler cette\n"
+"requête de confirmation."
+
+#: Mailman/Cgi/confirm.py:242
+msgid ""
+"Your confirmation is required in order to continue with\n"
+" the subscription request to the mailing list <em>%(listname)s</em>.\n"
+" Your subscription settings are shown below; make any necessary "
+"changes\n"
+" and hit <em>Subscribe to list ...</em> to complete the confirmation\n"
+" process. Once you've confirmed your subscription request, the\n"
+" moderator must approve or reject your membership request. You will\n"
+" receive notice of their decision.\n"
+"\n"
+" <p>Note: your password will be emailed to you once your "
+"subscription\n"
+" is confirmed. You can change it by visiting your personal options\n"
+" page.\n"
+"\n"
+" <p>Or, if you've changed your mind and do not want to subscribe to\n"
+" this mailing list, you can hit <em>Cancel my subscription\n"
+" request</em>."
+msgstr ""
+"Votre confirmation est nécessaire pour achever le processus\n"
+"d'abonnement à la liste <em>%(listname)s</em>. Vos paramètres\n"
+"d'abonnements sont affichés ci-dessous; opérez les modifications\n"
+"désirées et cliquez sur <em>Abonner</em> pour achever le processus de\n"
+"confirmation. Une fois votre requête d'abonnement confirmée, les\n"
+"modérateurs devront approuver ou rejeter votre requête. Vous recevrez\n"
+"un avis vous faisant part de leur décision.\n"
+"\n"
+"<p>Note: Votre mot de passe vous sera envoyé par courriel une fois\n"
+"votre abonnement confirmé. Vous pourrez le modifier en vous rendant sur\n"
+"votre page d'options personnelles.\n"
+"\n"
+"<p>Ou cliquez sur <em>Annuler et ignorer</em> pour annuler cette\n"
+"requête d'abonnement."
+
+#: Mailman/Cgi/confirm.py:260
+msgid "Your email address:"
+msgstr "Votre adresse courriel:"
+
+#: Mailman/Cgi/confirm.py:261
+msgid "Your real name:"
+msgstr "Votre nom complet:"
+
+#: Mailman/Cgi/confirm.py:270
+msgid "Receive digests?"
+msgstr "Recevoir les messages groupés?"
+
+#: Mailman/Cgi/confirm.py:279
+msgid "Preferred language:"
+msgstr "Langue préférée:"
+
+#: Mailman/Cgi/confirm.py:284
+msgid "Cancel my subscription request"
+msgstr "Confirmer la requête d'abonnement"
+
+#: Mailman/Cgi/confirm.py:285
+msgid "Subscribe to list %(listname)s"
+msgstr "Abonnement à la liste: %(listname)s"
+
+#: Mailman/Cgi/confirm.py:295
+msgid "You have canceled your subscription request."
+msgstr "Vous avez annulé votre demande d'abonnement."
+
+#: Mailman/Cgi/confirm.py:329
+msgid "Awaiting moderator approval"
+msgstr "En attente d'approbation par le modérateur"
+
+#: Mailman/Cgi/confirm.py:332
+msgid ""
+" You have successfully confirmed your subscription request to "
+"the\n"
+" mailing list %(listname)s, however final approval is required "
+"from\n"
+" the list moderator before you will be subscribed. Your request\n"
+" has been forwarded to the list moderator, and you will be "
+"notified\n"
+" of the moderator's decision."
+msgstr ""
+"\tVous avez confirmé votre abonnement à la liste %(listname)s avec\n"
+"\tsuccès, toutefois, une approbation finale par le modérateur de\n"
+"\tla liste est requise avant que le processus de votre abonnement ne\n"
+"\ts'achève. Votre requête a été envoyée au modérateur de la liste\n"
+"\tet il vous sera fait part de sa décision."
+
+#: Mailman/Cgi/confirm.py:339 Mailman/Cgi/confirm.py:394
+#: Mailman/Cgi/confirm.py:482 Mailman/Cgi/confirm.py:705
+msgid ""
+"Invalid confirmation string. It is\n"
+" possible that you are attempting to confirm a request for an\n"
+" address that has already been unsubscribed."
+msgstr ""
+"Chaîne de confirmation invalide. Il est possible\n"
+"\t\tque vous tentiez de confirmer une requête pour une adresse\n"
+"\t\tdéjà désabonnée."
+
+#: Mailman/Cgi/confirm.py:343
+msgid "You are already a member of this mailing list!"
+msgstr "Vous déjà membre de cette liste !"
+
+#: Mailman/Cgi/confirm.py:350
+msgid "Subscription request confirmed"
+msgstr "Requête d'abonnement confirmée"
+
+#: Mailman/Cgi/confirm.py:354
+msgid ""
+" You have successfully confirmed your subscription request for\n"
+" \"%(addr)s\" to the %(listname)s mailing list. A separate\n"
+" confirmation message will be sent to your email address, along\n"
+" with your password, and other useful information and links.\n"
+"\n"
+" <p>You can now\n"
+" <a href=\"%(optionsurl)s\">proceed to your membership login\n"
+" page</a>."
+msgstr ""
+" Votre requête d'abonnement à la liste %(listname)s a été\n"
+" confirmée avec succès pour l'adresse \"%(addr)s\". Un message de\n"
+" confirmation séparé sera envoyé à votre adresse courriel avec\n"
+" votre mot de passe et d'autres informations et liens utiles.\n"
+"\n"
+" <p>Vous pouvez maintenant \n"
+" <a href=\"%(optionsurl)s\">vous rendre sur votre page de login\n"
+" d'abonné</a>."
+
+#: Mailman/Cgi/confirm.py:372
+msgid "You have canceled your unsubscription request."
+msgstr "Vos requête de résiliation a été annulée."
+
+#: Mailman/Cgi/confirm.py:400
+msgid "Unsubscription request confirmed"
+msgstr "Requête de résiliation confirmée"
+
+#: Mailman/Cgi/confirm.py:404
+msgid ""
+" You have successfully unsubscribed from the %(listname)s "
+"mailing\n"
+" list. You can now <a href=\"%(listinfourl)s\">visit the list's "
+"main\n"
+" information page</a>."
+msgstr ""
+"Votre abonnement à la liste %(listname)s a été résilié avec\n"
+"succès. Vous pourrez à présent <a href=\"%(listinfourl)s\">visiter la\n"
+"page principal d'informations de la liste</a>."
+
+#: Mailman/Cgi/confirm.py:415
+msgid "Confirm unsubscription request"
+msgstr "Confirmez la requête de résiliation"
+
+#: Mailman/Cgi/confirm.py:430 Mailman/Cgi/confirm.py:519
+msgid "<em>Not available</em>"
+msgstr "<em>Non disponible</em>"
+
+#: Mailman/Cgi/confirm.py:433
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" unsubscription request from the mailing list <em>%(listname)s</em>. "
+"You\n"
+" are currently subscribed with\n"
+"\n"
+" <ul><li><b>Real name:</b> %(fullname)s\n"
+" <li><b>Email address:</b> %(addr)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Unsubscribe</em> button below to complete the confirmation\n"
+" process.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this unsubscription\n"
+" request."
+msgstr ""
+"Votre confirmation est nécessaire en vue de compléter votre requête de\n"
+"résiliation de votre abonnement à la liste <em>%(listname)s</em>. Vous\n"
+"êtes actuellement abonné avec comme\n"
+"\n"
+"<ul><li><b>Nom Complet:</b> %(fullname)s\n"
+" <li><b>Adresse Courriel:</b> %(addr)s\n"
+"</ul>\n"
+"\n"
+"Cliquez sur le bouton <em>Résilier</em> ci-dessous pour achever le\n"
+"processus de confirmation.\n"
+"\n"
+"<p>Ou cliquez sur <em>Annuler et ignorer</em> pour annuler cette\n"
+"requête de résiliation."
+
+#: Mailman/Cgi/confirm.py:449 Mailman/Cgi/options.py:660
+#: Mailman/Cgi/options.py:801 Mailman/Cgi/options.py:811
+msgid "Unsubscribe"
+msgstr "Résilier"
+
+#: Mailman/Cgi/confirm.py:450 Mailman/Cgi/confirm.py:548
+msgid "Cancel and discard"
+msgstr "Annuler et ignorer"
+
+#: Mailman/Cgi/confirm.py:460
+msgid "You have canceled your change of address request."
+msgstr "Vous avez annulé votre requête de changement d'adresse"
+
+#: Mailman/Cgi/confirm.py:488
+msgid "Change of address request confirmed"
+msgstr "Requête de changement d'adresse confirmée"
+
+#: Mailman/Cgi/confirm.py:492
+msgid ""
+" You have successfully changed your address on the %(listname)s\n"
+" mailing list from <b>%(oldaddr)s</b> to <b>%(newaddr)s</b>. "
+"You\n"
+" can now <a href=\"%(optionsurl)s\">proceed to your membership\n"
+" login page</a>."
+msgstr ""
+"Vous avez changé l'adresse de votre abonnement à la liste %(listname)s\n"
+"de <b>%(oldaddr)s</b> à <b>%(newaddr)s</b>.\n"
+"Vous pourrez maintenant <a href=\"%(optionsurl)s\">vous rendre à votre\n"
+"page de login d'abonné</a>."
+
+#: Mailman/Cgi/confirm.py:504
+msgid "Confirm change of address request"
+msgstr "Confirmez la requête de changement d'adresse"
+
+#: Mailman/Cgi/confirm.py:523
+msgid "globally"
+msgstr "globalement"
+
+#: Mailman/Cgi/confirm.py:526
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" change of address request for the mailing list <em>%(listname)s</em>. "
+"You\n"
+" are currently subscribed with\n"
+"\n"
+" <ul><li><b>Real name:</b> %(fullname)s\n"
+" <li><b>Old email address:</b> %(oldaddr)s\n"
+" </ul>\n"
+"\n"
+" and you have requested to %(globallys)s change your email address to\n"
+"\n"
+" <ul><li><b>New email address:</b> %(newaddr)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Change address</em> button below to complete the "
+"confirmation\n"
+" process.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this change of address\n"
+" request."
+msgstr ""
+"Votre confirmation est nécessaire pour achever le processus de\n"
+"changement d'adresse pour la liste <em>%(listname)s</em>.\n"
+"Vous êtes actuellement abonné avec comme\n"
+"\n"
+"<ul><li><b>Nom Complet:</b> %(fullname)s\n"
+" <li><b>Adresse Courriel:</b> %(oldaddr)s\n"
+"</ul>\n"
+"\n"
+"et vous avez demandé un %(globallys)s de votre adresse courriel\n"
+"vers \n"
+"<ul><li><b>Nouvelle Adresse Courriel:</b> %(newaddr)s </ul>\n"
+"\n"
+"Cliquez sur le bouton <em>Changer l'adresse</em> ci-dessous pour\n"
+"achever le processus de confirmation.\n"
+"\n"
+"<p>Ou cliquez sur <em>Annuler et ignorer</em> pour annuler cette\n"
+"requête de changement d'adresse."
+
+#: Mailman/Cgi/confirm.py:547
+msgid "Change address"
+msgstr "Changez l'adresse"
+
+#: Mailman/Cgi/confirm.py:557 Mailman/Cgi/confirm.py:670
+msgid "Continue awaiting approval"
+msgstr "Laissez en attente d'approbation"
+
+#: Mailman/Cgi/confirm.py:564
+msgid ""
+"Okay, the list moderator will still have the\n"
+" opportunity to approve or reject this message."
+msgstr ""
+"Bien, le modérateur de la liste aura encore la latitude d'approuver\n"
+"ou de rejeter ce message."
+
+#: Mailman/Cgi/confirm.py:590
+msgid "Sender discarded message via web."
+msgstr "L'expéditeur a ignoré le message via l'interface web."
+
+#: Mailman/Cgi/confirm.py:592
+msgid ""
+"The held message with the Subject:\n"
+" header <em>%(subject)s</em> could not be found. The most "
+"likely\n"
+" reason for this is that the list moderator has already approved "
+"or\n"
+" rejected the message. You were not able to cancel it in\n"
+" time."
+msgstr ""
+"Le message en attente avec comme objet:\n"
+"En-tête <em>%(subject)s</em> est introuvable. La raison la plus\n"
+"probable expliquant cette situation est que le modérateur a déjà\n"
+"approuvé ou rejeté le message. Vous n'avez pas été en mesure de\n"
+"l'annuler à temps."
+
+#: Mailman/Cgi/confirm.py:600
+msgid "Posted message canceled"
+msgstr "Annulation du message soumis"
+
+#: Mailman/Cgi/confirm.py:603
+msgid ""
+" You have successfully canceled the posting of your message with\n"
+" the Subject: header <em>%(subject)s</em> to the mailing list\n"
+" %(listname)s."
+msgstr ""
+"Vous avez annulé l'envoi du message avec comme objet:\n"
+"En-tête <em>%(subject)s</em> à la liste %(listname)s"
+
+#: Mailman/Cgi/confirm.py:614
+msgid "Cancel held message posting"
+msgstr "Annulez l'envoi de messages en attente"
+
+#: Mailman/Cgi/confirm.py:639
+msgid ""
+"The held message you were referred to has\n"
+" already been handled by the list administrator."
+msgstr ""
+"Le message en attente auquel vous faites référence\n"
+" a déjà été traité par l'administrateur de liste."
+
+#: Mailman/Cgi/confirm.py:653
+msgid ""
+"Your confirmation is required in order to cancel the\n"
+" posting of your message to the mailing list <em>%(listname)s</em>:\n"
+"\n"
+" <ul><li><b>Sender:</b> %(sender)s\n"
+" <li><b>Subject:</b> %(subject)s\n"
+" <li><b>Reason:</b> %(reason)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Cancel posting</em> button to discard the posting.\n"
+"\n"
+" <p>Or hit the <em>Continue awaiting approval</em> button to continue to\n"
+" allow the list moderator to approve or reject the message."
+msgstr ""
+"Votre confirmation est nécessaire pour annuler l'envoi de votre\n"
+"message à la liste <em>%(listname)s</em>:\n"
+"\n"
+"<ul><li><b>Expéditeur:</b> %(sender)s\n"
+" <li><b>Objet:</b> %(subject)s\n"
+" <li><b>Motif:</b> %(reason)s\n"
+"</ul>\n"
+"\n"
+"Cliquez sur le bouton <em>Annuler et ignorer</em> pour ignorer la\n"
+"soumission.\n"
+"\n"
+"<p>Ou cliquez sur le bouton <em>Laisser en attente\n"
+"d'approbation</em> pour attendre la décision du modérateur quant à\n"
+"l'approbation ou le rejet du message."
+
+#: Mailman/Cgi/confirm.py:669
+msgid "Cancel posting"
+msgstr "Annulez l'envoi"
+
+#: Mailman/Cgi/confirm.py:681
+msgid ""
+"You have canceled the re-enabling of your membership. If\n"
+" we continue to receive bounces from your address, it could be deleted "
+"from\n"
+" this mailing list."
+msgstr ""
+"Vous avez annulé la ré-activation de votre abonnement. Si votre\n"
+"adresse continue à rebondir, elle pourrait être supprimée de cette\n"
+"liste de diffusion."
+
+#: Mailman/Cgi/confirm.py:711
+msgid "Membership re-enabled."
+msgstr "Ré-activation de l'abonnement."
+
+#: Mailman/Cgi/confirm.py:715
+msgid ""
+" You have successfully re-enabled your membership in the\n"
+" %(listname)s mailing list. You can now <a\n"
+" href=\"%(optionsurl)s\">visit your member options page</a>.\n"
+" "
+msgstr ""
+"Votre abonnement à la liste %(listname)s a été réactivé avec\n"
+"succès. Vous pourrez à présent <a href=\"%(optionsurl)s\">visiter \n"
+"votre page d'options d'abonné</a>."
+
+#: Mailman/Cgi/confirm.py:727
+msgid "Re-enable mailing list membership"
+msgstr "Ré-activez l'abonnement à la liste"
+
+#: Mailman/Cgi/confirm.py:744
+msgid ""
+"We're sorry, but you have already been unsubscribed\n"
+" from this mailing list. To re-subscribe, please visit the\n"
+" <a href=\"%(listinfourl)s\">list information page</a>."
+msgstr ""
+"Désolé mais votre abonnement à la liste a été\n"
+"résilié. Pour vous réabonner, veuillez visiter la <a\n"
+"href=\"%(listinfourl)s\">la page d'informations de la liste</a>."
+
+#: Mailman/Cgi/confirm.py:758
+msgid "<em>not available</em>"
+msgstr "<em>non disponible</em>"
+
+#: Mailman/Cgi/confirm.py:762
+msgid ""
+"Your membership in the %(realname)s mailing list is\n"
+" currently disabled due to excessive bounces. Your confirmation is\n"
+" required in order to re-enable delivery to your address. We have the\n"
+" following information on file:\n"
+"\n"
+" <ul><li><b>Member address:</b> %(member)s\n"
+" <li><b>Member name:</b> %(username)s\n"
+" <li><b>Last bounce received on:</b> %(date)s\n"
+" <li><b>Approximate number of days before you are permanently "
+"removed\n"
+" from this list:</b> %(daysleft)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Re-enable membership</em> button to resume receiving "
+"postings\n"
+" from the mailing list. Or hit the <em>Cancel</em> button to defer\n"
+" re-enabling your membership.\n"
+" "
+msgstr ""
+"Votre abonnement à la liste %(realname)s est actuellement désactivé\n"
+"suite à des rebonds excessifs. Nous vous demandons confirmation pour\n"
+"le réactiver. Nous disposons des informations suivantes sur fichier:\n"
+"\n"
+" <ul><li><b>Adresse d'abonné:</b> %(member)s\n"
+" <li><b>Nom d'abonné:</b> %(username)s\n"
+" <li><b>Date de réception du dernier rebond</b>: %(date)s\n"
+" <li><b>Nombre approximatif de jours restant avant la\n"
+"suppression définitive de votre abonnement à la liste:</b> %(daysleft)s\n"
+" </ul>\n"
+"\n"
+" Cliquez sur le bouton <em>Réactivez l'abonnement</em> pour\n"
+"continuer à recevoir les envois postés sur la liste. Cliquez sur\n"
+"le bouton <em>Annuler</em> pour différer la ré-activation de votre\n"
+"abonnement.\n"
+" "
+
+#: Mailman/Cgi/confirm.py:782
+msgid "Re-enable membership"
+msgstr "Réactivez l'abonnement"
+
+#: Mailman/Cgi/confirm.py:783
+msgid "Cancel"
+msgstr "Annuler"
+
+#: Mailman/Cgi/create.py:48 Mailman/Cgi/rmlist.py:48
+msgid "Bad URL specification"
+msgstr "Spécification erronée d'URL"
+
+#: Mailman/Cgi/create.py:63 Mailman/Cgi/rmlist.py:176
+msgid "Return to the "
+msgstr "Retourner au"
+
+#: Mailman/Cgi/create.py:65 Mailman/Cgi/rmlist.py:178
+msgid "general list overview"
+msgstr "panorama de la liste"
+
+#: Mailman/Cgi/create.py:66 Mailman/Cgi/rmlist.py:179
+msgid "<br>Return to the "
+msgstr "<br>Revenir à "
+
+#: Mailman/Cgi/create.py:68 Mailman/Cgi/rmlist.py:181
+msgid "administrative list overview"
+msgstr "Panorama administratif de la liste"
+
+#: Mailman/Cgi/create.py:101
+msgid "List name must not include \"@\": %(listname)s"
+msgstr "Le nom d'une liste ne peut contenir le caractère \"@\": %(listname)s"
+
+#: Mailman/Cgi/create.py:107 Mailman/Cgi/create.py:185 bin/newlist:134
+#: bin/newlist:168
+msgid "List already exists: %(listname)s"
+msgstr "La liste %(listname)s existe déjà"
+
+#: Mailman/Cgi/create.py:111
+msgid "You forgot to enter the list name"
+msgstr "Vous avez oublié de préciser le nom de la liste"
+
+#: Mailman/Cgi/create.py:115
+msgid "You forgot to specify the list owner"
+msgstr "Vous avez oublié de préciser le propriétaire de la liste"
+
+#: Mailman/Cgi/create.py:122
+msgid ""
+"Leave the initial password (and confirmation) fields\n"
+" blank if you want Mailman to autogenerate the list\n"
+" passwords."
+msgstr ""
+"Laisser les champs mot de passe initial (et confirmation) vides\n"
+"si vous voulez que Mailman génère automatiquement les mots de passe\n"
+"pour vous."
+
+#: Mailman/Cgi/create.py:130
+msgid "Initial list passwords do not match"
+msgstr "Les mots de passe ne correspondent pas"
+
+#: Mailman/Cgi/create.py:139
+msgid "The list password cannot be empty<!-- ignore -->"
+msgstr "Le mot de passe de la liste ne peut être vide<!-- ignore -->"
+
+#: Mailman/Cgi/create.py:151
+msgid "You are not authorized to create new mailing lists"
+msgstr "Vous n'êtes pas autorisé à créer de nouvelles listes"
+
+#: Mailman/Cgi/create.py:181 bin/newlist:166
+msgid "Bad owner email address: %(s)s"
+msgstr "Mauvaise adresse courriel du propriétaire: %(s)s"
+
+#: Mailman/Cgi/create.py:189 bin/newlist:164
+msgid "Illegal list name: %(s)s"
+msgstr "Option invalide: %(s)s"
+
+#: Mailman/Cgi/create.py:194
+msgid ""
+"Some unknown error occurred while creating the list.\n"
+" Please contact the site administrator for assistance."
+msgstr ""
+"Quelques erreurs inconnues ce sont produites lors de la création de la "
+"liste\n"
+"\tPour assistance veuillez contactez l'administrateur du site."
+
+#: Mailman/Cgi/create.py:233 bin/newlist:210
+msgid "Your new mailing list: %(listname)s"
+msgstr "Votre nouvelle liste de diffusion: %(listname)s"
+
+#: Mailman/Cgi/create.py:242
+msgid "Mailing list creation results"
+msgstr "Resultats de la création de la liste de diffusion"
+
+#: Mailman/Cgi/create.py:248
+msgid ""
+"You have successfully created the mailing list\n"
+" <b>%(listname)s</b> and notification has been sent to the list owner\n"
+" <b>%(owner)s</b>. You can now:"
+msgstr ""
+"Vous avez créer la liste de diffusion <b>%(listname)s</b> avec succès\n"
+" et un avis a été envoyé au propriétaire de la liste\n"
+" <b>%(owner)s</b>. Vous pouvez à présent:"
+
+#: Mailman/Cgi/create.py:252
+msgid "Visit the list's info page"
+msgstr "Visitez la page info de la liste"
+
+#: Mailman/Cgi/create.py:253
+msgid "Visit the list's admin page"
+msgstr "Visitez la page admin de la liste"
+
+#: Mailman/Cgi/create.py:254
+msgid "Create another list"
+msgstr "Créer une autre liste"
+
+#: Mailman/Cgi/create.py:272
+msgid "Create a %(hostname)s Mailing List"
+msgstr "Créer une liste de diffusion sur %(hostname)s"
+
+#: Mailman/Cgi/create.py:281 Mailman/Cgi/rmlist.py:199
+#: Mailman/Gui/Bounce.py:175 Mailman/htmlformat.py:339
+msgid "Error: "
+msgstr "Erreur: "
+
+#: Mailman/Cgi/create.py:283
+msgid ""
+"You can create a new mailing list by entering the\n"
+" relevant information into the form below. The name of the mailing list\n"
+" will be used as the primary address for posting messages to the list, "
+"so\n"
+" it should be lowercased. You will not be able to change this once the\n"
+" list is created.\n"
+"\n"
+" <p>You also need to enter the email address of the initial list owner.\n"
+" Once the list is created, the list owner will be given notification, "
+"along\n"
+" with the initial list password. The list owner will then be able to\n"
+" modify the password and add or remove additional list owners.\n"
+"\n"
+" <p>If you want Mailman to automatically generate the initial list admin\n"
+" password, click on `Yes' in the autogenerate field below, and leave the\n"
+" initial list password fields empty.\n"
+"\n"
+" <p>You must have the proper authorization to create new mailing lists.\n"
+" Each site should have a <em>list creator's</em> password, which you can\n"
+" enter in the field at the bottom. Note that the site administrator's\n"
+" password can also be used for authentication.\n"
+" "
+msgstr ""
+"Vous pourrez créer une nouvelle liste de diffusion en fournissant les\n"
+"\tinformations idoines dans le formulaire ci-dessous. Le nom de la\n"
+"\tliste de diffusion sera utilisé comme adresse de base pour\n"
+"\tl'envoi de messages à la liste, il devrait donc être en\n"
+"\tminiscule. Vous ne serez plus en mesure de le modifier une fois la\n"
+"\tliste crée.\n"
+"\n"
+"\t<p>Vous devrez également fournir l'adresse courriel du propriétaire\n"
+"\tinitial de la liste. Une fois la liste crée, un avis sera envoyé au\n"
+"\tpropriétaire de la liste avec le mot de passe initial. Le\n"
+"\tpropriétaire pourra alors changer le mot de passe, ajouter ou\n"
+"\tsupprimer d'autres propriétaires.\n"
+"\n"
+"\t<p>Si vous voulez que Mailman génère automatiquemement le mot de\n"
+"\tpasse de l'administrateur de la liste, clicker sur 'Oui' dans le champ\n"
+"\tautogénérer ci-dessous, et laissez le champ mot de passe initial\n"
+"\tvide.\n"
+"\n"
+"\tVous devrez disposer des autorisations correctes pour créer une\n"
+"\tnouvelle liste. Chaque site doit disposer d'un mot de passe pour\n"
+"\t<em>créateur de listes</em>, que vous devez fournir dans le champ\n"
+"\tau bas de la page. Remarquez que le mot de passe de l'administrateur\n"
+"\tdu site peut être utilisé pour l'authentification.\n"
+"\t"
+
+#: Mailman/Cgi/create.py:309
+msgid "List Identity"
+msgstr "Identité de liste"
+
+#: Mailman/Cgi/create.py:312
+msgid "Name of list:"
+msgstr "Nom de la liste"
+
+#: Mailman/Cgi/create.py:317
+msgid "Initial list owner address:"
+msgstr "Adresse du propriétaire initiale de la liste:"
+
+#: Mailman/Cgi/create.py:326
+msgid "Auto-generate initial list password?"
+msgstr "Génération automatique des mots de passe initiaux de la liste?"
+
+#: Mailman/Cgi/create.py:333
+msgid "Initial list password:"
+msgstr "Mot de passe initial de la liste:"
+
+#: Mailman/Cgi/create.py:338
+msgid "Confirm initial password:"
+msgstr "Confirme le mot de passe initial:"
+
+#: Mailman/Cgi/create.py:348
+msgid "List Characteristics"
+msgstr "Caractéristiques de la liste"
+
+#: Mailman/Cgi/create.py:352
+msgid ""
+"Should new members be quarantined before they\n"
+" are allowed to post unmoderated to this list? Answer <em>Yes</em> to "
+"hold\n"
+" new member postings for moderator approval by default."
+msgstr ""
+"Les nouveaux abonnés doivent être mis en quarantaine avant\n"
+"d'être autorisés à poster sur la liste? Répondez\n"
+"<em>Oui</em> pour mettre, par défaut, les messages des nouveaux\n"
+"abonnés en attente de l'approbation du modérateur."
+
+#: Mailman/Cgi/create.py:383
+msgid ""
+"Initial list of supported languages. <p>Note that if you do not\n"
+" select at least one initial language, the list will use the server\n"
+" default language of %(deflang)s"
+msgstr ""
+"Liste initiale des langues gérées. <p>Notez que si vous ne choisissez\n"
+"pas au moins une langue, la liste utilisera la langue définit par\n"
+"défaut pour le serveur qui est %(deflang)s"
+
+#: Mailman/Cgi/create.py:394
+msgid "Send \"list created\" email to list owner?"
+msgstr "Envoyez un message \"liste crée\" au propriétaire de la liste?"
+
+#: Mailman/Cgi/create.py:403
+msgid "List creator's (authentication) password:"
+msgstr "Le mot de passe du créateur de la liste (authentification):"
+
+#: Mailman/Cgi/create.py:408
+msgid "Create List"
+msgstr "Créer la liste"
+
+#: Mailman/Cgi/create.py:409
+msgid "Clear Form"
+msgstr "Effacer le formulaire"
+
+#: Mailman/Cgi/edithtml.py:43
+msgid "General list information page"
+msgstr "Page d'informations générales de la liste"
+
+#: Mailman/Cgi/edithtml.py:44
+msgid "Subscribe results page"
+msgstr "Page des résulats de l'abonnement"
+
+#: Mailman/Cgi/edithtml.py:45
+msgid "User specific options page"
+msgstr "Page des options utilisateur spécifiques "
+
+#: Mailman/Cgi/edithtml.py:57
+msgid "List name is required."
+msgstr "Le nom de la liste est requis."
+
+#: Mailman/Cgi/edithtml.py:97
+msgid "%(realname)s -- Edit html for %(template_info)s"
+msgstr "%(realname)s -- Modifier html pour %(template_info)s"
+
+#: Mailman/Cgi/edithtml.py:103
+msgid "Edit HTML : Error"
+msgstr "Modifier HTML: Erreur"
+
+#: Mailman/Cgi/edithtml.py:104
+msgid "%(safetemplatename)s: Invalid template"
+msgstr "%(safetemplatename)s: template invalide"
+
+#: Mailman/Cgi/edithtml.py:109 Mailman/Cgi/edithtml.py:110
+msgid "%(realname)s -- HTML Page Editing"
+msgstr "%(realname)s -- Modification de Page HTML"
+
+#: Mailman/Cgi/edithtml.py:111
+msgid "Select page to edit:"
+msgstr "Sélectionner la page à modifier:"
+
+#: Mailman/Cgi/edithtml.py:137
+msgid "View or edit the list configuration information."
+msgstr "Voir ou modifier les informations de configuration de la liste."
+
+#: Mailman/Cgi/edithtml.py:145
+msgid "When you are done making changes..."
+msgstr "Quand vous aurez fini de faire les modifications..."
+
+#: Mailman/Cgi/edithtml.py:146
+msgid "Submit Changes"
+msgstr "Valider les modifications"
+
+#: Mailman/Cgi/edithtml.py:153
+msgid "Can't have empty html page."
+msgstr "Impossible d'avoir une page html vide"
+
+#: Mailman/Cgi/edithtml.py:154
+msgid "HTML Unchanged."
+msgstr "HTML inchangé"
+
+#: Mailman/Cgi/edithtml.py:169
+msgid "HTML successfully updated."
+msgstr "HTML mis à jour avec succès."
+
+#: Mailman/Cgi/listinfo.py:71
+msgid "%(hostname)s Mailing Lists"
+msgstr "Listes de diffusion sur %(hostname)s"
+
+#: Mailman/Cgi/listinfo.py:103
+msgid ""
+"<p>There currently are no publicly-advertised\n"
+" %(mailmanlink)s mailing lists on %(hostname)s."
+msgstr ""
+"<p>Il n'y a actuellement pas de listes de diffusion %(mailmanlink)s\n"
+"publiques sur %(hostname)s."
+
+#: Mailman/Cgi/listinfo.py:107
+msgid ""
+"<p>Below is a listing of all the public mailing lists on\n"
+" %(hostname)s. Click on a list name to get more information "
+"about\n"
+" the list, or to subscribe, unsubscribe, and change the "
+"preferences\n"
+" on your subscription."
+msgstr ""
+"<p>Ci-dessous un listing de toutes les listes de diffusion publiques sur\n"
+"%(hostname)s. Cliquer sur le nom d'une liste pour obtenir plus\n"
+"d'informations à propos de celle-ci, vous y abonner, résilier votre\n"
+"abonnement ou changer les préférences de votre abonnement."
+
+#: Mailman/Cgi/listinfo.py:113
+msgid "right"
+msgstr "droite"
+
+#: Mailman/Cgi/listinfo.py:116
+msgid ""
+" To visit the general information page for an unadvertised list,\n"
+" open a URL similar to this one, but with a '/' and the %(adj)s\n"
+" list name appended.\n"
+" <p>List administrators, you can visit "
+msgstr ""
+"Pour visiter la page info d'une liste non publiée,\n"
+"ouvrir une URL semblable à celle-ci, mais avec un '/' et le %(adj)s du nom "
+"de la liste ajoutée.\n"
+"<p>Administrateurs de liste, vous pouvez visiter "
+
+#: Mailman/Cgi/listinfo.py:121
+msgid "the list admin overview page"
+msgstr "Panorama de la page d'administration de la liste"
+
+#: Mailman/Cgi/listinfo.py:122
+msgid ""
+" to find the management interface for your list.\n"
+" <p>Send questions or comments to "
+msgstr ""
+"Pour trouver l'interface de gestion de votre liste.\n"
+"\t<p>Envoyez vos questions et commentaires à "
+
+#: Mailman/Cgi/listinfo.py:187
+msgid "Edit Options"
+msgstr "Modifier les Options"
+
+#: Mailman/Cgi/listinfo.py:194 Mailman/Cgi/options.py:767
+#: Mailman/Cgi/roster.py:111
+msgid "View this page in"
+msgstr "Visualisez cette page en"
+
+#: Mailman/Cgi/options.py:51 Mailman/Cgi/options.py:68
+msgid "CGI script error"
+msgstr "Erreur de script CGI"
+
+#: Mailman/Cgi/options.py:54
+msgid "Invalid options to CGI script."
+msgstr "Options non valide pour un script CGI."
+
+#: Mailman/Cgi/options.py:96
+msgid "No address given"
+msgstr "Aucune adresse fournie"
+
+#: Mailman/Cgi/options.py:108 Mailman/Cgi/options.py:155
+#: Mailman/Cgi/options.py:177
+msgid "No such member: %(safeuser)s."
+msgstr "Abonné inconnu: %(safeuser)s."
+
+#: Mailman/Cgi/options.py:150 Mailman/Cgi/options.py:160
+msgid "The confirmation email has been sent."
+msgstr "Le courriel de confirmation a été envoyé."
+
+#: Mailman/Cgi/options.py:171 Mailman/Cgi/options.py:183
+#: Mailman/Cgi/options.py:226
+msgid "A reminder of your password has been emailed to you."
+msgstr "Un rappel de votre mot de passe vous a été envoyé."
+
+#: Mailman/Cgi/options.py:200
+msgid "Authentication failed."
+msgstr "Echec de l'authentification."
+
+#: Mailman/Cgi/options.py:232
+msgid "List subscriptions for %(user)s on %(hostname)s"
+msgstr "Les abonnements de %(user)s sur %(hostname)s"
+
+#: Mailman/Cgi/options.py:235
+msgid ""
+"Click on a link to visit your options page for the\n"
+" requested mailing list."
+msgstr ""
+"Cliquez sur un lien pour afficher la page de vos options pour la liste "
+"demandée."
+
+#: Mailman/Cgi/options.py:284
+msgid "Addresses did not match!"
+msgstr "Les adresses ne correspondent pas!"
+
+#: Mailman/Cgi/options.py:289
+msgid "You are already using that email address"
+msgstr "Vous utilisez déjà cette adresse courriel."
+
+#: Mailman/Cgi/options.py:301
+msgid ""
+"The new address you requested %(newaddr)s is already a member of the\n"
+"%(listname)s mailing list, however you have also requested a global change "
+"of\n"
+"address. Upon confirmation, any other mailing list containing the address\n"
+"%(user)s will be changed. "
+msgstr ""
+"La nouvelle adresse %(newaddr)s que vous avez demandée est déjà abonnée\n"
+"à la liste de diffusion %(listname)s, vous avez toutefois demander\n"
+"une modification globale de votre adresse. Lorsque la confirmation\n"
+"sera reçue, toutes les listes de diffusion contenant l'adresse %(user)s\n"
+"seront modifiées."
+
+#: Mailman/Cgi/options.py:310
+msgid "The new address is already a member: %(newaddr)s"
+msgstr "La nouvelle adresse est déjà abonnée: %(newaddr)s"
+
+#: Mailman/Cgi/options.py:316
+msgid "Addresses may not be blank"
+msgstr "Les adresses ne doivent pas être vides"
+
+#: Mailman/Cgi/options.py:328
+msgid "A confirmation message has been sent to %(newaddr)s. "
+msgstr "Un message de confirmation a été envoyé à %(newaddr)s. "
+
+#: Mailman/Cgi/options.py:337
+msgid "Bad email address provided"
+msgstr "Mauvaise adresse courriel fournie"
+
+#: Mailman/Cgi/options.py:339
+msgid "Illegal email address provided"
+msgstr "Adresse courriel fournie invalide"
+
+#: Mailman/Cgi/options.py:341
+msgid "%(newaddr)s is already a member of the list."
+msgstr "%(newaddr)s est déjà abonné à la liste."
+
+#: Mailman/Cgi/options.py:350
+msgid "Member name successfully changed. "
+msgstr "Nom de l'abonné modifié avec succès. "
+
+#: Mailman/Cgi/options.py:361
+msgid "Passwords may not be blank"
+msgstr "Les mots de passe ne peuvent pas être vides"
+
+#: Mailman/Cgi/options.py:366
+msgid "Passwords did not match!"
+msgstr "Les mots de passe ne correspondent pas!"
+
+#: Mailman/Cgi/options.py:381 Mailman/Commands/cmd_password.py:79
+#: Mailman/Commands/cmd_password.py:105
+msgid "Password successfully changed."
+msgstr "Mot de passe modifié avec succès."
+
+#: Mailman/Cgi/options.py:390
+msgid ""
+"You must confirm your unsubscription request by turning\n"
+" on the checkbox below the <em>Unsubscribe</em> button. You\n"
+" have not been unsubscribed!"
+msgstr ""
+"Vous devez confirmer votre demande de résiliation en cochant la case\n"
+"à cocher sous le bouton <em>Résilier</em>. Votre abonnement n'a pas\n"
+"été résilié!"
+
+#: Mailman/Cgi/options.py:422
+msgid "Unsubscription results"
+msgstr "Résultats de la résiliation"
+
+#: Mailman/Cgi/options.py:426
+msgid ""
+"Your unsubscription request has been received and\n"
+" forwarded on to the list moderators for approval. You will\n"
+" receive notification once the list moderators have made their\n"
+" decision."
+msgstr ""
+"Votre demande de résiliation a été reçu et transmise aux modérateurs\n"
+"de la liste pour approbation. Vous recevrez un avis dés que les\n"
+"modérateurs de la liste auront pris une décision."
+
+#: Mailman/Cgi/options.py:431
+msgid ""
+"You have been successfully unsubscribed from the\n"
+" mailing list %(fqdn_listname)s. If you were receiving digest\n"
+" deliveries you may get one more digest. If you have any "
+"questions\n"
+" about your unsubscription, please contact the list owners at\n"
+" %(owneraddr)s."
+msgstr ""
+"Votre abonnement à la liste %(fqdn_listname)s a été résilié. Si vous\n"
+"receviez des envois groupés, vous en recevrez encore un dernier.\n"
+"Si vous avez des questions concernant cette résiliation, veuillez contacter\n"
+"le gestionnaire de la liste à l'adresse %(owneraddr)s."
+
+#: Mailman/Cgi/options.py:582
+msgid ""
+"The list administrator has disabled digest delivery for\n"
+" this list, so your delivery option has not been set. However "
+"your\n"
+" other options have been set successfully."
+msgstr ""
+"L'administrateur de la liste a désactivé le mode groupé pour cette liste,\n"
+"vos options de livraison ne seront donc pas modifiées contrairement aux "
+"autres."
+
+#: Mailman/Cgi/options.py:586
+msgid ""
+"The list administrator has disabled non-digest delivery\n"
+" for this list, so your delivery option has not been set. "
+"However\n"
+" your other options have been set successfully."
+msgstr ""
+"L'administrateur de la liste a désactivé la remise en mode individuel\n"
+"pour cette liste, par suite toutes les options autre que celle-ci ont étés\n"
+"sauvegardées avec succès."
+
+#: Mailman/Cgi/options.py:590
+msgid "You have successfully set your options."
+msgstr "Vos options ont étés paramétrées avec succès."
+
+#: Mailman/Cgi/options.py:593
+msgid "You may get one last digest."
+msgstr "Vous recevrez un dernier lot."
+
+#: Mailman/Cgi/options.py:662
+msgid "<em>Yes, I really want to unsubscribe</em>"
+msgstr "<em>Oui, je veux vraiment résilier mon abonnement</em>"
+
+#: Mailman/Cgi/options.py:666
+msgid "Change My Password"
+msgstr "Modifier mon mot de passe"
+
+#: Mailman/Cgi/options.py:669
+msgid "List my other subscriptions"
+msgstr "Afficher mes autres abonnements"
+
+#: Mailman/Cgi/options.py:675
+msgid "Email My Password To Me"
+msgstr "Envoyez-moi mon mot de passe par courriel"
+
+#: Mailman/Cgi/options.py:677
+msgid "password"
+msgstr "mot de passe"
+
+#: Mailman/Cgi/options.py:679
+msgid "Log out"
+msgstr "Déconnecter"
+
+#: Mailman/Cgi/options.py:681
+msgid "Submit My Changes"
+msgstr "Valider mes modifications"
+
+#: Mailman/Cgi/options.py:693
+msgid "days"
+msgstr "jours"
+
+#: Mailman/Cgi/options.py:695
+msgid "day"
+msgstr "jour"
+
+#: Mailman/Cgi/options.py:696
+msgid "%(days)d %(units)s"
+msgstr "%(units)s %(days)d"
+
+#: Mailman/Cgi/options.py:702
+msgid "Change My Address and Name"
+msgstr "Modifier mon adresse et mon nom"
+
+#: Mailman/Cgi/options.py:726
+msgid "<em>No topics defined</em>"
+msgstr "<em>Aucun thème défini</em>"
+
+#: Mailman/Cgi/options.py:734
+msgid ""
+"\n"
+"You are subscribed to this list with the case-preserved address\n"
+"<em>%(cpuser)s</em>."
+msgstr ""
+"\n"
+"Vous êtes abonné à cette liste avec une adresse de type préservation de la\n"
+"casse <em>%(cpuser)s</em>."
+
+#: Mailman/Cgi/options.py:748
+msgid "%(realname)s list: member options login page"
+msgstr "Liste %(realname)s: Page de login d'abonné"
+
+#: Mailman/Cgi/options.py:749
+msgid "email address and "
+msgstr "adresse courriel et "
+
+#: Mailman/Cgi/options.py:751
+msgid "%(realname)s list: member options for user %(user)s"
+msgstr "Liste %(realname)s: options d'abonnés de l'utilisateur %(user)s"
+
+#: Mailman/Cgi/options.py:777
+msgid ""
+"In order to change your membership option, you must\n"
+" first log in by giving your %(extra)smembership password in the section\n"
+" below. If you don't remember your membership password, you can have it\n"
+" emailed to you by clicking on the button below. If you just want to\n"
+" unsubscribe from this list, click on the <em>Unsubscribe</em> button and "
+"a\n"
+" confirmation message will be sent to you.\n"
+"\n"
+" <p><strong><em>Important:</em></strong> From this point on, you must "
+"have\n"
+" cookies enabled in your browser, otherwise none of your changes will "
+"take\n"
+" effect.\n"
+" "
+msgstr ""
+"Pour modifier vos options d'abonné, vous devez d'abord vous connecter\n"
+"en fournissant votre mot de passe %(extra)s d'abonné dans la section\n"
+"ci-dessous. Si vous ne vous souvenez pas de votre mot de passe, il\n"
+"peut vous être envoyé en cliquant sur le bouton ci-dessous. Si vous\n"
+"désirez juste résilier votre abonnement à cette liste, cliquez sur le\n"
+"bouton <em>Résilier</em> ci-dessous et \n"
+"une demande de confirmation vous sera envoyé.\n"
+"<p><strong><em>Important:</em></strong> A partir de maintenant vous\n"
+"devez activer les cookies dans votre navigateur faute de quoi aucune\n"
+"de vos modifications ne prendra effet.\n"
+"\t"
+
+#: Mailman/Cgi/options.py:791
+msgid "Email address:"
+msgstr "Adresse courriel:"
+
+#: Mailman/Cgi/options.py:795
+msgid "Password:"
+msgstr "Mot de passe:"
+
+#: Mailman/Cgi/options.py:797
+msgid "Log in"
+msgstr "Connecter"
+
+#: Mailman/Cgi/options.py:805
+msgid ""
+"By clicking on the <em>Unsubscribe</em> button, a\n"
+" confirmation message will be emailed to you. This message will have a\n"
+" link that you should click on to complete the removal process (you can\n"
+" also confirm by email; see the instructions in the confirmation\n"
+" message)."
+msgstr ""
+"En cliquant sur le bouton <em>Résilier</em> une demande de confirmation\n"
+"vous sera envoyée. Ce message contiendra un lien sur lequel vous pourrez\n"
+"cliquer pour achever le processus de résiliation (vous pourrez également\n"
+"le faire par courriel; lisez les instructions dans ledit message)."
+
+#: Mailman/Cgi/options.py:813
+msgid "Password reminder"
+msgstr "Rappel de mot de passe"
+
+#: Mailman/Cgi/options.py:817
+msgid ""
+"By clicking on the <em>Remind</em> button, your\n"
+" password will be emailed to you."
+msgstr ""
+"En cliquant sur le bouton <em>Rappel</em>, votre mot de passe vous sera\n"
+"envoyé par courriel."
+
+#: Mailman/Cgi/options.py:820
+msgid "Remind"
+msgstr "Rappel"
+
+#: Mailman/Cgi/options.py:920
+msgid "<missing>"
+msgstr "<absent>"
+
+#: Mailman/Cgi/options.py:931
+msgid "Requested topic is not valid: %(topicname)s"
+msgstr "Le thème demandé n'est pas valide: %(topicname)s"
+
+#: Mailman/Cgi/options.py:936
+msgid "Topic filter details"
+msgstr "Détails du filtre de thème"
+
+#: Mailman/Cgi/options.py:939
+msgid "Name:"
+msgstr "Nom:"
+
+#: Mailman/Cgi/options.py:941
+msgid "Pattern (as regexp):"
+msgstr "modèle (sous forme d'expression regulière):"
+
+#: Mailman/Cgi/private.py:61
+msgid "Private Archive Error"
+msgstr "Erreur sur les archives privées"
+
+#: Mailman/Cgi/private.py:62
+msgid "You must specify a list."
+msgstr "vous devez spécifier une liste"
+
+#: Mailman/Cgi/private.py:99
+msgid "Private Archive Error - %(msg)s"
+msgstr "Erreur d'archive privée - %(msg)s"
+
+#: Mailman/Cgi/private.py:154
+msgid "Private archive file not found"
+msgstr "Fichier archive privé non trouvé"
+
+#: Mailman/Cgi/rmlist.py:81
+msgid "You're being a sneaky list owner!"
+msgstr "Vous avez été un propriétaire sournois de liste!"
+
+#: Mailman/Cgi/rmlist.py:119
+msgid "You are not authorized to delete this mailing list"
+msgstr "Vous n'êtes pas autorisé à supprimer cette liste"
+
+#: Mailman/Cgi/rmlist.py:160
+msgid "Mailing list deletion results"
+msgstr "Résulats de la suppression de la liste"
+
+#: Mailman/Cgi/rmlist.py:167
+msgid ""
+"You have successfully deleted the mailing list\n"
+" <b>%(listname)s</b>."
+msgstr ""
+"Vous avez supprimé la liste avec succès\n"
+"\t<b>%(listname)s</b>."
+
+#: Mailman/Cgi/rmlist.py:171
+msgid ""
+"There were some problems deleting the mailing list\n"
+" <b>%(listname)s</b>. Contact your site administrator at %(sitelist)"
+"s\n"
+" for details."
+msgstr ""
+"Il y a eu quelques problèmes lors de la suppression de la liste\n"
+"<b>%(listname)s</b>. Contacter votre administrateur de site à %(sitelist)s\n"
+"pour les détails."
+
+#: Mailman/Cgi/rmlist.py:188
+msgid "Permanently remove mailing list <em>%(realname)s</em>"
+msgstr "Supprimer définitivement la liste de diffusion <em>%(realname)s</em>"
+
+#: Mailman/Cgi/rmlist.py:202
+msgid ""
+"This page allows you as the list owner, to permanent\n"
+" remove this mailing list from the system. <strong>This action is not\n"
+" undoable</strong> so you should undertake it only if you are absolutely\n"
+" sure this mailing list has served its purpose and is no longer "
+"necessary.\n"
+"\n"
+" <p>Note that no warning will be sent to your list members and after "
+"this\n"
+" action, any subsequent messages sent to the mailing list, or any of its\n"
+" administrative addreses will bounce.\n"
+"\n"
+" <p>You also have the option of removing the archives for this mailing "
+"list\n"
+" at this time. It is almost always recommended that you do\n"
+" <strong>not</strong> remove the archives, since they serve as the\n"
+" historical record of your mailing list.\n"
+"\n"
+" <p>For your safety, you will be asked to reconfirm the list password.\n"
+" "
+msgstr ""
+"Cette page vous permet en tant que propriétaire de la liste, de supprimer\n"
+"définitivement cette liste du système. <strong>Cette action est "
+"irréversible\n"
+"</strong>, vous devrez donc prendre une telle décision seulement si vous\n"
+"êtes sûr que l'existence de la liste n'est plus nécéssaire\n"
+"\n"
+"<p>Notez qu'aucune notification ne sera envoyée à vos abonnés, et\n"
+"que toute soumissions subséquente sera non remisable.\n"
+"\n"
+"<p>Vous avez également la possibilité de supprimer les archives de cette\n"
+"liste en ce moment même. Il est presque toujours sage de <strong>ne pas\n"
+"</strong>supprimer les archives, puissent qu'elles servent de traces\n"
+"pour les envois sur votre liste.\n"
+"<p>Pour plus de sécurité, il vous sera demandé de reconfirmer le mot de\n"
+"passe de la liste.\n"
+"\t"
+
+#: Mailman/Cgi/rmlist.py:223
+msgid "List password:"
+msgstr "Mot de passe de la liste:"
+
+#: Mailman/Cgi/rmlist.py:227
+msgid "Also delete archives?"
+msgstr "Supprimer les archives également?"
+
+#: Mailman/Cgi/rmlist.py:235
+msgid "<b>Cancel</b> and return to list administration"
+msgstr "<b>Annuler</b> et revenir à l'administration de la liste"
+
+#: Mailman/Cgi/rmlist.py:238
+msgid "Delete this list"
+msgstr "Supprimer la liste"
+
+#: Mailman/Cgi/roster.py:48 Mailman/Cgi/subscribe.py:50
+msgid "Invalid options to CGI script"
+msgstr "Options invalides pour le script CGI"
+
+#: Mailman/Cgi/roster.py:99
+msgid "%(realname)s roster authentication failed."
+msgstr "Echec d'authentification du roster de %(realname)s."
+
+#: Mailman/Cgi/roster.py:127 Mailman/Cgi/roster.py:128
+#: Mailman/Cgi/subscribe.py:49 Mailman/Cgi/subscribe.py:60
+msgid "Error"
+msgstr "Erreur"
+
+#: Mailman/Cgi/subscribe.py:109
+msgid "You must supply a valid email address."
+msgstr "Vous devez fournir une adresse courriel valide."
+
+#: Mailman/Cgi/subscribe.py:122
+msgid "You may not subscribe a list to itself!"
+msgstr "Vous ne pouvez pas abonner la liste à elle-même!"
+
+#: Mailman/Cgi/subscribe.py:131
+msgid "If you supply a password, you must confirm it."
+msgstr "Si vous avez fourni un mot de passe, vous devez le confirmer."
+
+#: Mailman/Cgi/subscribe.py:133
+msgid "Your passwords did not match."
+msgstr "Vos mots de passe ne correspondent pas."
+
+#: Mailman/Cgi/subscribe.py:167
+msgid ""
+"Your subscription request has been received, and will soon be acted upon.\n"
+"Depending on the configuration of this mailing list, your subscription "
+"request\n"
+"may have to be first confirmed by you via email, or approved by the list\n"
+"moderator. If confirmation is required, you will soon get a confirmation\n"
+"email which contains further instructions."
+msgstr ""
+"Votre demande d'abonnement a été reçu et sera bientôt traitée.\n"
+"En fonction de la configuration de cette liste de diffusion, votre\n"
+"demande devrait d'abord être confirmée par courriel ou approuvée par\n"
+"le modérateur de la liste. Si une confirmation est nécessaire, vous\n"
+"recevrez sous peu un courriel de confirmation contenant des\n"
+"instructions supplémentaires."
+
+#: Mailman/Cgi/subscribe.py:181
+msgid ""
+"The email address you supplied is banned from this\n"
+" mailing list. If you think this restriction is erroneous, please\n"
+" contact the list owners at %(listowner)s."
+msgstr ""
+"L'adresse courriel fournit est bannie de cette liste. Si vous pensez\n"
+"que cette restriction est erronée, veillez entrer en contact avec le\n"
+"propriétaire de la liste à l'adresse %(listowner)s."
+
+#: Mailman/Cgi/subscribe.py:185
+msgid ""
+"The email address you supplied is not valid. (E.g. it must contain an\n"
+"`@'.)"
+msgstr ""
+"L'adresse courriel fournit n'est pas valide. (E.g. elle doit contenir\n"
+"un signe `@'.)"
+
+#: Mailman/Cgi/subscribe.py:189
+msgid ""
+"Your subscription is not allowed because the email address you gave is\n"
+"insecure."
+msgstr ""
+"Votre abonnement est impossible parce que l'adresse courriel fournie\n"
+"n'est pas sûre."
+
+#: Mailman/Cgi/subscribe.py:197
+msgid ""
+"Confirmation from your email address is required, to prevent anyone from\n"
+"subscribing you without permission. Instructions are being sent to you at\n"
+"%(email)s. Please note your subscription will not start until you confirm\n"
+"your subscription."
+msgstr ""
+"Une confirmation en provenance de votre adresse courriel est\n"
+"nécessaire, cela empêche de vous abonner sans votre autorisation. Des\n"
+"instructions vous sont envoyées à l'adresse %(email)s. Notez que votre\n"
+"abonnement ne débutera que si vous confirmez votre requête."
+
+#: Mailman/Cgi/subscribe.py:209
+msgid ""
+"Your subscription request was deferred because %(x)s. Your request has "
+"been\n"
+"forwarded to the list moderator. You will receive email informing you of "
+"the\n"
+"moderator's decision when they get to your request."
+msgstr ""
+"L'abonnement a été différé parce que %(x)s. Votre requête a été\n"
+"transmise au modérateur de la liste. Vous recevrez un courriel vous\n"
+"faisant part de la décision du modérateur lorsque votre requête sera\n"
+"traitée."
+
+#: Mailman/Cgi/subscribe.py:216 Mailman/Commands/cmd_confirm.py:60
+msgid "You are already subscribed."
+msgstr "Vous êtes déjà abonné."
+
+#: Mailman/Cgi/subscribe.py:230
+msgid "Mailman privacy alert"
+msgstr "Alerte de confidentialité Mailman"
+
+#: Mailman/Cgi/subscribe.py:231
+msgid ""
+"An attempt was made to subscribe your address to the mailing list\n"
+"%(listaddr)s. You are already subscribed to this mailing list.\n"
+"\n"
+"Note that the list membership is not public, so it is possible that a bad\n"
+"person was trying to probe the list for its membership. This would be a\n"
+"privacy violation if we let them do this, but we didn't.\n"
+"\n"
+"If you submitted the subscription request and forgot that you were already\n"
+"subscribed to the list, then you can ignore this message. If you suspect "
+"that\n"
+"an attempt is being made to covertly discover whether you are a member of "
+"this\n"
+"list, and you are worried about your privacy, then feel free to send a "
+"message\n"
+"to the list administrator at %(listowner)s.\n"
+msgstr ""
+"Votre adresse courriel a fait l'objet d'une demande d'abonnement à la\n"
+"liste %(listaddr)s. Vous êtes déjà membre de la liste.\n"
+"\n"
+"Vu que les abonnements à cette liste ne sont pas publiques, il est\n"
+"possible qu'un mauvais plaisant ait tenté de voir si vous êtes abonné ou\n"
+"pas. Les laisser entreprendre de telles actions serait une violation\n"
+"de confidentialité, ce qui nous amène à proscrire de tels actes.\n"
+"\n"
+"Si vous avez émis la demande en ayant oublié que vous étiez déjà\n"
+"abonné, vous pouvez tout simplement classer ce message sans suite. Si\n"
+"vous pensez que quelqu'un essaie de savoir si vous êtes abonné ou pas\n"
+"et que cela vous pose un problème de confidentialité, alors n'hésitez\n"
+"pas à envoyer un courriel à l'administrateur de la liste à l'adresse\n"
+"%(listowner)s.\n"
+
+#: Mailman/Cgi/subscribe.py:250
+msgid "This list does not support digest delivery."
+msgstr "Cette liste ne supporte pas remises groupées."
+
+#: Mailman/Cgi/subscribe.py:252
+msgid "This list only supports digest delivery."
+msgstr "Cette liste ne supporte que les remises groupées"
+
+#: Mailman/Cgi/subscribe.py:259
+msgid "You have been successfully subscribed to the %(realname)s mailing list."
+msgstr "Vous avez été abonné avec succès à la liste %(realname)s."
+
+#: Mailman/Commands/cmd_confirm.py:17
+msgid ""
+"\n"
+" confirm <confirmation-string>\n"
+" Confirm an action. The confirmation-string is required and should "
+"be\n"
+" supplied with in mailback confirmation notice.\n"
+msgstr ""
+"\n"
+" confirm <chaîne-de-confirmation>\n"
+" Confirmer une action. La chaîne-de-confirmation est requise et\n"
+" doit être fournie avec le courriel renvoyé suite à l'avis de\n"
+" confirmation.\n"
+
+#: Mailman/Commands/cmd_confirm.py:40 Mailman/Commands/cmd_lists.py:40
+#: Mailman/Commands/cmd_set.py:133 Mailman/Commands/cmd_subscribe.py:69
+#: Mailman/Commands/cmd_unsubscribe.py:52 Mailman/Commands/cmd_who.py:65
+msgid "Usage:"
+msgstr "Usage:"
+
+#: Mailman/Commands/cmd_confirm.py:49
+msgid ""
+"Invalid confirmation string. Note that confirmation strings expire\n"
+"approximately %(days)s days after the initial subscription request. If "
+"your\n"
+"confirmation has expired, please try to re-submit your original request or\n"
+"message."
+msgstr ""
+"Chaîne de confirmation non valide. Notez que la chaîne de confirmation\n"
+"expire au bout de %(days)s jours à partir de l'émission de la requête\n"
+"d'abonnement. Si votre requête d'abonnement a expirée, essayez de\n"
+"soumettre votre requête ou votre message initial de nouveau."
+
+#: Mailman/Commands/cmd_confirm.py:55
+msgid "Your request has been forwarded to the list moderator for approval."
+msgstr ""
+"Votre requête a été envoyée au modérateur de la liste pour\n"
+"approbation."
+
+#: Mailman/Commands/cmd_confirm.py:63
+msgid ""
+"You are not current a member. Have you already unsubscribed or changed\n"
+"your email address?"
+msgstr ""
+"Vous n'êtes actuellement pas abonné. Etes-vous déjà désabonné ou\n"
+"avez-vous changé d'adresse courriel?"
+
+#: Mailman/Commands/cmd_confirm.py:73
+msgid "Confirmation succeeded"
+msgstr "Confirmation réussie"
+
+#: Mailman/Commands/cmd_echo.py:17
+msgid ""
+"\n"
+" echo [args]\n"
+" Simply echo an acknowledgement. Args are echoed back unchanged.\n"
+msgstr ""
+"\n"
+" echo [args]\n"
+" Affiche tout simplement un accusé de reception. Les arguments\n"
+" sont affichés sans modifications.\n"
+
+#: Mailman/Commands/cmd_end.py:17
+msgid ""
+"\n"
+" end\n"
+" Stop processing commands. Use this if your mail program "
+"automatically\n"
+" adds a signature file.\n"
+msgstr ""
+"\n"
+" end\n"
+" Arrête le traitement des commandes. Utiliser ceci si votre\n"
+" logiciel de messagerie ajoute automatiquement un fichier\n"
+" signature.\n"
+
+#: Mailman/Commands/cmd_help.py:17
+msgid ""
+"\n"
+" help\n"
+" Print this help message.\n"
+msgstr ""
+"\n"
+" help\n"
+" Affiche ce message d'aide.\n"
+
+#: Mailman/Commands/cmd_help.py:47
+msgid "You can access your personal options via the following url:"
+msgstr "Vous pouvez accèder à vos options personnelles par l'url suivante:"
+
+#: Mailman/Commands/cmd_info.py:17
+msgid ""
+"\n"
+" info\n"
+" Get information about this mailing list.\n"
+msgstr ""
+"\n"
+" info\n"
+" Renvoie des informations à propos de cette liste de diffusion.\n"
+
+#: Mailman/Commands/cmd_info.py:39 Mailman/Commands/cmd_lists.py:62
+msgid "n/a"
+msgstr "n/a"
+
+#: Mailman/Commands/cmd_info.py:44
+msgid "List name: %(listname)s"
+msgstr "Nom de la liste: %(listname)s"
+
+#: Mailman/Commands/cmd_info.py:45
+msgid "Description: %(description)s"
+msgstr "Description: %(description)s"
+
+#: Mailman/Commands/cmd_info.py:46
+msgid "Postings to: %(postaddr)s"
+msgstr "Soumissions à: %(postaddr)s"
+
+#: Mailman/Commands/cmd_info.py:47
+msgid "List Helpbot: %(requestaddr)s"
+msgstr "Robot d'aide de la liste: %(requestaddr)s"
+
+#: Mailman/Commands/cmd_info.py:48
+msgid "List Owners: %(owneraddr)s"
+msgstr "Propriétaires de la liste: %(owneraddr)s"
+
+#: Mailman/Commands/cmd_info.py:49
+msgid "More information: %(listurl)s"
+msgstr "Plus d'informations: %(listurl)s"
+
+#: Mailman/Commands/cmd_join.py:17
+msgid "The `join' command is synonymous with `subscribe'.\n"
+msgstr "La commande `join' est synonyme de `subscribe'.\n"
+
+#: Mailman/Commands/cmd_leave.py:17
+msgid "The `leave' command is synonymous with `unsubscribe'.\n"
+msgstr "La commande `leave'est synonyme de `unsubscribe'.\n"
+
+#: Mailman/Commands/cmd_lists.py:17
+msgid ""
+"\n"
+" lists\n"
+" See a list of the public mailing lists on this GNU Mailman server.\n"
+msgstr ""
+"\n"
+" lists\n"
+" Renvoie la liste des listes de diffusion publiques sur ce\n"
+" serveur GNU Mailman.\n"
+
+#: Mailman/Commands/cmd_lists.py:44
+msgid "Public mailing lists at %(hostname)s:"
+msgstr "Listes de diffusion publiques sur %(hostname)s:"
+
+#: Mailman/Commands/cmd_lists.py:66
+msgid "%(i)3d. List name: %(realname)s"
+msgstr "%(i)3d. Nom de la liste: %(realname)s"
+
+#: Mailman/Commands/cmd_lists.py:67
+msgid " Description: %(description)s"
+msgstr " Description: %(description)s"
+
+#: Mailman/Commands/cmd_lists.py:68
+msgid " Requests to: %(requestaddr)s"
+msgstr " Requêtes à: %(requestaddr)s"
+
+#: Mailman/Commands/cmd_password.py:17
+msgid ""
+"\n"
+" password [<oldpassword> <newpassword>] [address=<address>]\n"
+" Retrieve or change your password. With no arguments, this returns\n"
+" your current password. With arguments <oldpassword> and "
+"<newpassword>\n"
+" you can change your password.\n"
+"\n"
+" If you're posting from an address other than your membership "
+"address,\n"
+" specify your membership address with `address=<address>' (no "
+"brackets\n"
+" around the email address, and no quotes!). Note that in this case "
+"the\n"
+" response is always sent to the subscribed address.\n"
+msgstr ""
+"\n"
+" password [<ancien_passe> <nouveau_passe>] [address=<adresse>]\n"
+" Récupérer ou changer votre mot de passe. Sans arguments, cette\n"
+" commande renvoie votre mot de passe actuel. Avec\n"
+" <ancien_passe> et <nouveau_passe> comme arguments, elle change\n"
+" votre mot de passe.\n"
+"\n"
+" Si vous envoyez un message à partir d'une adresse différente\n"
+" de votre adresse d'abonnement, spécifier votre adresse avec\n"
+" `address=<adresse>' (sans les signes < et >\n"
+" autour de l'adresse et sans guillemets!). Notez que dans ce\n"
+" cas, la réponse est toujours envoyée à l'adresse abonnée.\n"
+"\n"
+
+#: Mailman/Commands/cmd_password.py:51 Mailman/Commands/cmd_password.py:64
+msgid "Your password is: %(password)s"
+msgstr "Votre mot de passe est: %(password)s"
+
+#: Mailman/Commands/cmd_password.py:55 Mailman/Commands/cmd_password.py:68
+#: Mailman/Commands/cmd_password.py:91 Mailman/Commands/cmd_password.py:117
+#: Mailman/Commands/cmd_set.py:149 Mailman/Commands/cmd_set.py:219
+msgid "You are not a member of the %(listname)s mailing list"
+msgstr "Vous n'êtes pas abonné à la liste %(listname)s"
+
+#: Mailman/Commands/cmd_password.py:81 Mailman/Commands/cmd_password.py:107
+msgid ""
+"You did not give the correct old password, so your password has not been\n"
+"changed. Use the no argument version of the password command to retrieve "
+"your\n"
+"current password, then try again."
+msgstr ""
+"L'ancien mot de passe fourni n'est pas correcte, votre mot de\n"
+"passe n'a pas été modifié. Utiliser la version sans argument de la\n"
+"commande password pour récupérer votre mot de passe actuel, puis\n"
+"réessayez de nouveau."
+
+#: Mailman/Commands/cmd_password.py:85 Mailman/Commands/cmd_password.py:111
+msgid ""
+"\n"
+"Usage:"
+msgstr ""
+"\n"
+"Usage:"
+
+#: Mailman/Commands/cmd_remove.py:17
+msgid "The `remove' command is synonymous with `unsubscribe'.\n"
+msgstr "La commande `remove' est synonyme de `unsubscribe'.\n"
+
+#: Mailman/Commands/cmd_set.py:26
+msgid ""
+"\n"
+" set ...\n"
+" Set or view your membership options.\n"
+"\n"
+" Use `set help' (without the quotes) to get a more detailed list of "
+"the\n"
+" options you can change.\n"
+"\n"
+" Use `set show' (without the quotes) to view your current option\n"
+" settings.\n"
+msgstr ""
+"\n"
+" set ...\n"
+" Modifier ou visualiser vos options d'abonné.\n"
+"\n"
+" Utilisez `set help' (sans les guillemets) pour avoir une liste\n"
+" plus détaillée des options que vous pouvez modifier.\n"
+"\n"
+" Utilisez `set show' (sans les guillemets) pour voir vos\n"
+" options actuelles.\n"
+
+#: Mailman/Commands/cmd_set.py:37
+msgid ""
+"\n"
+" set help\n"
+" Show this detailed help.\n"
+"\n"
+" set show [address=<address>]\n"
+" View your current option settings. If you're posting from an "
+"address\n"
+" other than your membership address, specify your membership address\n"
+" with `address=<address>' (no brackets around the email address, and "
+"no\n"
+" quotes!).\n"
+"\n"
+" set authenticate <password> [address=<address>]\n"
+" To set any of your options, you must include this command first, "
+"along\n"
+" with your membership password. If you're posting from an address\n"
+" other than your membership address, specify your membership address\n"
+" with `address=<address>' (no brackets around the email address, and "
+"no\n"
+" quotes!).\n"
+"\n"
+" set ack on\n"
+" set ack off\n"
+" When the `ack' option is turned on, you will receive an\n"
+" acknowledgement message whenever you post a message to the list.\n"
+"\n"
+" set digest plain\n"
+" set digest mime\n"
+" set digest off\n"
+" When the `digest' option is turned off, you will receive postings\n"
+" immediately when they are posted. Use `set digest plain' if "
+"instead\n"
+" you want to receive postings bundled into a plain text digest\n"
+" (i.e. RFC 1153 digest). Use `set digest mime' if instead you want "
+"to\n"
+" receive postings bundled together into a MIME digest.\n"
+"\n"
+" set delivery on\n"
+" set delivery off\n"
+" Turn delivery on or off. This does not unsubscribe you, but "
+"instead\n"
+" tells Mailman not to deliver messages to you for now. This is "
+"useful\n"
+" if you're going on vacation. Be sure to use `set delivery on' when\n"
+" you return from vacation!\n"
+"\n"
+" set myposts on\n"
+" set myposts off\n"
+" Use `set myposts off' to not receive copies of messages you post to\n"
+" the list. This has no effect if you're receiving digests.\n"
+"\n"
+" set hide on\n"
+" set hide off\n"
+" Use `set hide on' to conceal your email address when people request\n"
+" the membership list.\n"
+"\n"
+" set duplicates on\n"
+" set duplicates off\n"
+" Use `set duplicates off' if you want Mailman to not send you "
+"messages\n"
+" if your address is explicitly mentioned in the To: or Cc: fields of\n"
+" the message. This can reduce the number of duplicate postings you\n"
+" will receive.\n"
+"\n"
+" set reminders on\n"
+" set reminders off\n"
+" Use `set reminders off' if you want to disable the monthly password\n"
+" reminder for this mailing list.\n"
+msgstr ""
+"\n"
+" set help\n"
+" Affiche cette aide détaillée.\n"
+"\n"
+" set show [address=<adresse>]\n"
+" Affiche vos options actuelles. Si vous envoyez le message à\n"
+" partir d'une adresse différente de votre adresse d'abonné,\n"
+" spécifiez votre adresse d'abonné avec `address=<adresse>'\n"
+" (sans les signes < et > autour du mail et sans les\n"
+" guillemets!).\n"
+" set authenticate <mot_passe> [address=<adresse>]\n"
+" Pour changer la valeur d'une option, vous devez d'abord\n"
+" inclure cette commande avec votre mot de passe d'abonné. Si\n"
+" vous envoyez le message à partir d'une adresse différente de\n"
+" votre adresse d'abonné, spécifiez votre adresse d'abonné avec\n"
+" `address=<address>' (sans les signes < et > autour du mail et\n"
+" sans les guillemets!).\n"
+"\n"
+" set ack on\n"
+" set ack off\n"
+" Lorsque l'option ack est active, vous recevrez un accusé de\n"
+" réception de chaque message que vous enverrez à la liste.\n"
+"\n"
+" set digest plain\n"
+" set digest mime\n"
+" set digest off\n"
+" Lorsque l'option `digest' est désactivée, vous recevrez les\n"
+" messages dés qu'ils sont envoyés sur la liste. Utilisez `set\n"
+" digest plain' si vous souhaitez que les message soient\n"
+" empaqueté en un groupe en texte brut (i.e. RFC 1153\n"
+" digest). Utilisez `set digest mime' si vous souhaitez plutôt\n"
+" que le groupement soit MIME.\n"
+"\n"
+" set delivery on\n"
+" set delivery off\n"
+" Activer ou désactiver la remise. Ceci ne résilie pas votre\n"
+" abonnement, mais dit tout simplement à Mailman de ne pas vous\n"
+" remettre les messages pour le moment. Ceci est\n"
+" particulièrement utile si vous partez en vacance. N'oubliez\n"
+" pas de réactiver la remise avec `set delivery on' quand vous\n"
+" serez de retour!\n"
+"\n"
+" set myposts on\n"
+" set myposts off\n"
+" Utilisez `set myposts on' pour recevoir une copie des\n"
+" messages que vous envoyez à la liste. Ceci est sans effet si\n"
+" vous recevez les messages groupés.\n"
+"\n"
+" set hide on\n"
+" set hide off\n"
+" Utilisez `set hide on' pour éviter que votre adresse ne soit\n"
+" renvoyée lorsque la liste des abonnés est demandée.\n"
+"\n"
+" set duplicates on\n"
+" set duplicates off\n"
+" Utilisez `set duplicates off' pour éviter que Mailman vous\n"
+" envoie les messages pour lesquelles votre adresse est\n"
+" explicitée dans les champs To: ou Cc:. Ceci réduit le nombre de\n"
+" doublons que vous recevez.\n"
+"\n"
+" set reminders on\n"
+" set reminders off\n"
+" Utilisez `set reminders off' si vous souhaitez désactiver le\n"
+" rappel mensuel de mot de passe pour cette liste.\n"
+
+#: Mailman/Commands/cmd_set.py:122
+msgid "Bad set command: %(subcmd)s"
+msgstr "Mauvaise commande set: %(subcmd)s"
+
+#: Mailman/Commands/cmd_set.py:151
+msgid "Your current option settings:"
+msgstr "Vos options actuelles:"
+
+#: Mailman/Commands/cmd_set.py:153 Mailman/Commands/cmd_set.py:191
+#: Mailman/Commands/cmd_set.py:194 Mailman/Commands/cmd_set.py:198
+#: Mailman/Commands/cmd_set.py:202
+msgid "off"
+msgstr "off"
+
+#: Mailman/Commands/cmd_set.py:153 Mailman/Commands/cmd_set.py:191
+#: Mailman/Commands/cmd_set.py:194 Mailman/Commands/cmd_set.py:198
+#: Mailman/Commands/cmd_set.py:202
+msgid "on"
+msgstr "on"
+
+#: Mailman/Commands/cmd_set.py:154
+msgid " ack %(onoff)s"
+msgstr " ack (accusé de reception) %(onoff)s"
+
+#: Mailman/Commands/cmd_set.py:160
+msgid " digest plain"
+msgstr "remise groupée texte brut"
+
+#: Mailman/Commands/cmd_set.py:162
+msgid " digest mime"
+msgstr " remise groupée mime"
+
+#: Mailman/Commands/cmd_set.py:164
+msgid " digest off"
+msgstr " remise groupée off"
+
+#: Mailman/Commands/cmd_set.py:169
+msgid "delivery on"
+msgstr "delivery (remise) active"
+
+#: Mailman/Commands/cmd_set.py:171 Mailman/Commands/cmd_set.py:174
+#: Mailman/Commands/cmd_set.py:177 Mailman/Commands/cmd_set.py:181
+msgid "delivery off"
+msgstr "delivery (remise) non active"
+
+#: Mailman/Commands/cmd_set.py:172
+msgid "by you"
+msgstr "par vous"
+
+#: Mailman/Commands/cmd_set.py:175
+msgid "by the admin"
+msgstr "par l'admin"
+
+#: Mailman/Commands/cmd_set.py:178
+msgid "due to bounces"
+msgstr "suite à des rebonds"
+
+#: Mailman/Commands/cmd_set.py:186
+msgid " %(status)s (%(how)s on %(date)s)"
+msgstr " %(status)s (%(how)s le %(date)s)"
+
+#: Mailman/Commands/cmd_set.py:192
+msgid " myposts %(onoff)s"
+msgstr " myposts (mes messages) %(onoff)s"
+
+#: Mailman/Commands/cmd_set.py:195
+msgid " hide %(onoff)s"
+msgstr " hide (cacher mon adresse) %(onoff)s"
+
+#: Mailman/Commands/cmd_set.py:199
+msgid " duplicates %(onoff)s"
+msgstr " duplicates (pas de doublons) %(onoff)s"
+
+#: Mailman/Commands/cmd_set.py:203
+msgid " reminders %(onoff)s"
+msgstr " reminders (rappels mensuel de mot de passe) %(onoff)s"
+
+#: Mailman/Commands/cmd_set.py:224
+msgid "You did not give the correct password"
+msgstr "Le mot de passe fourni n'est pas correct"
+
+#: Mailman/Commands/cmd_set.py:236 Mailman/Commands/cmd_set.py:283
+msgid "Bad argument: %(arg)s"
+msgstr "Mauvais argument: %(arg)s"
+
+#: Mailman/Commands/cmd_set.py:241 Mailman/Commands/cmd_set.py:261
+msgid "Not authenticated"
+msgstr "Pas authentifié"
+
+#: Mailman/Commands/cmd_set.py:254
+msgid "ack option set"
+msgstr "option ack active"
+
+#: Mailman/Commands/cmd_set.py:286
+msgid "digest option set"
+msgstr "option digest (remise groupée) active"
+
+#: Mailman/Commands/cmd_set.py:298
+msgid "delivery option set"
+msgstr "option de remise active"
+
+#: Mailman/Commands/cmd_set.py:310
+msgid "myposts option set"
+msgstr "option myposts active"
+
+#: Mailman/Commands/cmd_set.py:321
+msgid "hide option set"
+msgstr "option hide active"
+
+#: Mailman/Commands/cmd_set.py:333
+msgid "duplicates option set"
+msgstr "option duplicates (doublons) active"
+
+#: Mailman/Commands/cmd_set.py:345
+msgid "reminder option set"
+msgstr "option reminder (rappel) active"
+
+#: Mailman/Commands/cmd_stop.py:17
+msgid "stop is synonymous with the end command.\n"
+msgstr "stop est synonyme de la commande end.\n"
+
+#: Mailman/Commands/cmd_subscribe.py:17
+msgid ""
+"\n"
+" subscribe [password] [digest|nodigest] [address=<address>]\n"
+" Subscribe to this mailing list. Your password must be given to\n"
+" unsubscribe or change your options, but if you omit the password, "
+"one\n"
+" will be generated for you. You may be periodically reminded of "
+"your\n"
+" password.\n"
+"\n"
+" The next argument may be either: `nodigest' or `digest' (no "
+"quotes!).\n"
+" If you wish to subscribe an address other than the address you sent\n"
+" this request from, you may specify `address=<address>' (no brackets\n"
+" around the email address, and no quotes!)\n"
+msgstr ""
+"\n"
+" subscribe [passe] [digest|nodigest] [address=<adresse>]\n"
+" S'abonner à cette liste de diffusion. Votre mot de passe doit\n"
+" être fourni pour résilier votre abonnement à cette liste ou\n"
+" pour modifier vos options, si vous l'omettez, le système vous\n"
+" en générera un. Votre mot de passe pourra vous être rappelé\n"
+" périodiquement .\n"
+"\n"
+" Le prochain argument peut être l'une des options `nodigest' ou\n"
+" `digest' (sans guillemets!).\n"
+" Si vous souhaitez abonner une adresse autre que celle à partir\n"
+" de laquelle vous envoyez cette requête, précisez-le avec\n"
+" `address=<adresse>' (sans les signes < et > autour de\n"
+" l'adresse et sans guillemets!)\n"
+
+#: Mailman/Commands/cmd_subscribe.py:62
+msgid "Bad digest specifier: %(arg)s"
+msgstr "Mauvaise spécification de remise: %(arg)s"
+
+#: Mailman/Commands/cmd_subscribe.py:84
+msgid "No valid address found to subscribe"
+msgstr "Aucune adresse valide n'a été trouvée pour être abonné"
+
+#: Mailman/Commands/cmd_subscribe.py:102
+msgid ""
+"The email address you supplied is banned from this mailing list.\n"
+"If you think this restriction is erroneous, please contact the list\n"
+"owners at %(listowner)s."
+msgstr ""
+"L'adresse spécifiée est bannie de cette liste. Si vous pensez que\n"
+"cette mesure est erronée, veuillez contacter le propriétaire de la\n"
+"liste à l'adresse %(listowner)s."
+
+#: Mailman/Commands/cmd_subscribe.py:108
+msgid ""
+"Mailman won't accept the given email address as a valid address.\n"
+"(E.g. it must have an @ in it.)"
+msgstr ""
+"Mailman n'acceptera pas l'adresse fournie comme étant valide.\n"
+"(e.g. elle doit contenir un @.)"
+
+#: Mailman/Commands/cmd_subscribe.py:113
+msgid ""
+"Your subscription is not allowed because\n"
+"the email address you gave is insecure."
+msgstr ""
+"Votre abonnement n'est pas autorisé du au fait que votre adresse courriel "
+"n'est pas sûre."
+
+#: Mailman/Commands/cmd_subscribe.py:118
+msgid "You are already subscribed!"
+msgstr "Vous êtes déjà abonné!"
+
+#: Mailman/Commands/cmd_subscribe.py:122
+msgid "No one can subscribe to the digest of this list!"
+msgstr "Personne ne peut s'abonner au mode groupé de cette liste!"
+
+#: Mailman/Commands/cmd_subscribe.py:125
+msgid "This list only supports digest subscriptions!"
+msgstr "Cette liste ne supporte que les abonnements de type remise groupée!"
+
+#: Mailman/Commands/cmd_subscribe.py:131
+msgid ""
+"Your subscription request has been forwarded to the list administrator\n"
+"at %(listowner)s for review."
+msgstr ""
+"Votre requête d'abonnement à été envoyé à l'administrateur de la liste\n"
+"à l'adresse %(listowner)s pour examen."
+
+#: Mailman/Commands/cmd_subscribe.py:136
+msgid "Subscription request succeeded."
+msgstr "Requête d'abonnement réussie."
+
+#: Mailman/Commands/cmd_unsubscribe.py:17
+msgid ""
+"\n"
+" unsubscribe [password] [address=<address>]\n"
+" Unsubscribe from the mailing list. If given, your password must "
+"match\n"
+" your current password. If omitted, a confirmation email will be "
+"sent\n"
+" to the unsubscribing address. If you wish to unsubscribe an address\n"
+" other than the address you sent this request from, you may specify\n"
+" `address=<address>' (no brackets around the email address, and no\n"
+" quotes!)\n"
+msgstr ""
+"\n"
+" unsubscribe [passe] [address=<adresse>]\n"
+" Résilier son abonnement à la liste de diffusion. Lorsqu'il\n"
+" est fourni, votre mot de passe doit correspondre à votre mot\n"
+" de passe actuel. Lorsqu'il est omis, un courriel de\n"
+" confirmation sera envoyé à l'adresse à supprimer. Si vous\n"
+" souhaitez résilier l'abonnement d'une adresse différente de\n"
+" l'adresse à partir de laquelle vous envoyez ce message, vous\n"
+" pouvez le spécifier avec address=<address>' (sans les signes <\n"
+" et > autour de l'adresse et sans guillemets!)\n"
+
+#: Mailman/Commands/cmd_unsubscribe.py:62
+msgid "%(address)s is not a member of the %(listname)s mailing list"
+msgstr "%(address)s n'est pas abonné à la liste %(listname)s"
+
+#: Mailman/Commands/cmd_unsubscribe.py:69
+msgid ""
+"Your unsubscription request has been forwarded to the list administrator "
+"for\n"
+"approval."
+msgstr ""
+"Votre requête de résiliation d'abonnement a été envoyée à\n"
+"l'administrateur de la liste pour approbation."
+
+#: Mailman/Commands/cmd_unsubscribe.py:84
+msgid "You gave the wrong password"
+msgstr "Le mot de passe fourni n'est pas correct"
+
+#: Mailman/Commands/cmd_unsubscribe.py:87
+msgid "Unsubscription request succeeded."
+msgstr "Requête de résiliation réussie."
+
+#: Mailman/Commands/cmd_who.py:29
+msgid ""
+"\n"
+" who\n"
+" See everyone who is on this mailing list.\n"
+msgstr ""
+"\n"
+" who\n"
+" Afficher la liste des abonnés de la liste.\n"
+
+#: Mailman/Commands/cmd_who.py:34
+msgid ""
+"\n"
+" who password [address=<address>]\n"
+" See everyone who is on this mailing list. The roster is limited to\n"
+" list members only, and you must supply your membership password to\n"
+" retrieve it. If you're posting from an address other than your\n"
+" membership address, specify your membership address with\n"
+" `address=<address>' (no brackets around the email address, and no\n"
+" quotes!)\n"
+msgstr ""
+"\n"
+" who passe [address=<adresse>]\n"
+" Lister les abonnés de la liste. L'afficheur se limite à\n"
+" l'affichage des abonnés, et vous devez fournir votre mot de\n"
+" passe d'abonné pour avoir cette liste. Si vous envoyez ce\n"
+" message à partir d'une adresse différente de votre adresse\n"
+" d'abonnement, vous pouvez le spécifier avec\n"
+" `address=<adresse>' (sans les signes < et > autour de l'adresse\n"
+" et sans guillemets!)\n"
+
+#: Mailman/Commands/cmd_who.py:44
+msgid ""
+"\n"
+" who password\n"
+" See everyone who is on this mailing list. The roster is limited to\n"
+" list administrators and moderators only; you must supply the list\n"
+" admin or moderator password to retrieve the roster.\n"
+msgstr ""
+"\n"
+" who passe\n"
+" Afficher la liste des abonnés. L'afficheur se limite à\n"
+" renvoyer uniquement la liste des administrateurs et des\n"
+" modérateurs; vous devez fournir le mot de passe de l'admin ou\n"
+" celui du modérateur pour récupérer la liste.\n"
+
+#: Mailman/Commands/cmd_who.py:110
+msgid "You are not allowed to retrieve the list membership."
+msgstr "Vous n'êtes pas autorisé à voir la liste des abonnés."
+
+#: Mailman/Commands/cmd_who.py:116
+msgid "This list has no members."
+msgstr "Cette liste n'a pas d'abonné."
+
+#: Mailman/Commands/cmd_who.py:129
+msgid "Non-digest (regular) members:"
+msgstr "Abonnés en mode non-groupé (normaux):"
+
+#: Mailman/Commands/cmd_who.py:132
+msgid "Digest members:"
+msgstr "Abonnés en remise groupée:"
+
+#: Mailman/Defaults.py:1204
+msgid "Traditional Chinese"
+msgstr "Chinois Traditionnel"
+
+#: Mailman/Defaults.py:1205
+msgid "Czech"
+msgstr "Tchèque"
+
+#: Mailman/Defaults.py:1206
+msgid "German"
+msgstr "Allemand"
+
+#: Mailman/Defaults.py:1207
+msgid "English (USA)"
+msgstr "Anglais (USA)"
+
+#: Mailman/Defaults.py:1208
+msgid "Spanish (Spain)"
+msgstr "Espagnol (Espagne)"
+
+#: Mailman/Defaults.py:1209
+msgid "Estonian"
+msgstr "Estonien"
+
+#: Mailman/Defaults.py:1210
+msgid "Finnish"
+msgstr "Finlandais"
+
+#: Mailman/Defaults.py:1211
+msgid "French"
+msgstr "Français"
+
+#: Mailman/Defaults.py:1212
+msgid "Simplified Chinese"
+msgstr "Chinois Simplifié"
+
+#: Mailman/Defaults.py:1213
+msgid "Hungarian"
+msgstr "Hongrois"
+
+#: Mailman/Defaults.py:1214
+msgid "Italian"
+msgstr "Italien"
+
+#: Mailman/Defaults.py:1215
+msgid "Japanese"
+msgstr "Japonais"
+
+#: Mailman/Defaults.py:1216
+msgid "Korean"
+msgstr "Coréen"
+
+#: Mailman/Defaults.py:1217
+msgid "Lithuanian"
+msgstr ""
+
+#: Mailman/Defaults.py:1218
+msgid "Dutch"
+msgstr "Hollandais"
+
+#: Mailman/Defaults.py:1219
+msgid "Norwegian"
+msgstr "Norvégien"
+
+#: Mailman/Defaults.py:1220
+msgid "Portuguese (Brazil)"
+msgstr " Portugais (Brésil)"
+
+#: Mailman/Defaults.py:1221
+msgid "Russian"
+msgstr "Russe"
+
+#: Mailman/Defaults.py:1222
+msgid "Swedish"
+msgstr "Suédois"
+
+#: Mailman/Deliverer.py:43
+msgid ""
+"Note: Since this is a list of mailing lists, administrative\n"
+"notices like the password reminder will be sent to\n"
+"your membership administrative address, %(addr)s."
+msgstr ""
+"Note: Puisque ceci est une liste de listes de diffusions, les avis\n"
+"administratifs tels que les rappels de mot de passe seront envoyés à votre\n"
+"adresse administrative d'abonnement, %(addr)s."
+
+#: Mailman/Deliverer.py:62
+msgid " (Digest mode)"
+msgstr " (Mode Groupé)"
+
+#: Mailman/Deliverer.py:68
+msgid "Welcome to the \"%(realname)s\" mailing list%(digmode)s"
+msgstr "Bienvenue sur la liste %(digmode)s \"%(realname)s\" "
+
+#: Mailman/Deliverer.py:77
+msgid "You have been unsubscribed from the %(realname)s mailing list"
+msgstr "Votre abonnement à la liste %(realname)s a été résilié"
+
+#: Mailman/Deliverer.py:104
+msgid "%(listfullname)s mailing list reminder"
+msgstr "Rappel de la liste de diffusion %(listfullname)s"
+
+#: Mailman/Errors.py:114
+msgid "For some unknown reason"
+msgstr "Pour des raisons inconnues"
+
+#: Mailman/Errors.py:120 Mailman/Errors.py:143
+msgid "Your message was rejected"
+msgstr "Votre message a été rejeté"
+
+#: Mailman/Gui/Archive.py:25
+msgid "Archiving Options"
+msgstr "Options d'Archivage"
+
+#: Mailman/Gui/Archive.py:31
+msgid "List traffic archival policies."
+msgstr "Règles d'archivage du trafic sur la liste."
+
+#: Mailman/Gui/Archive.py:34
+msgid "Archive messages?"
+msgstr "Messages archivés?"
+
+#: Mailman/Gui/Archive.py:36
+msgid "private"
+msgstr "privé"
+
+#: Mailman/Gui/Archive.py:36
+msgid "public"
+msgstr "public"
+
+#: Mailman/Gui/Archive.py:37
+msgid "Is archive file source for public or private archival?"
+msgstr ""
+"Le fichier source des archives est destiné à un archivage public ou\n"
+"bien privé?"
+
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Monthly"
+msgstr "Mensuel"
+
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Quarterly"
+msgstr "Trimestriel"
+
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Yearly"
+msgstr "Annuel"
+
+#: Mailman/Gui/Archive.py:41 Mailman/Gui/Digest.py:79
+msgid "Daily"
+msgstr "Quotidien"
+
+#: Mailman/Gui/Archive.py:41 Mailman/Gui/Digest.py:79
+msgid "Weekly"
+msgstr "Hebdomadaire"
+
+#: Mailman/Gui/Archive.py:43
+msgid "How often should a new archive volume be started?"
+msgstr ""
+"Avec quelle périodicité de nouveaux volumes d'archives doivent-ils être crées"
+
+#: Mailman/Gui/Autoresponse.py:31
+msgid "Auto-responder"
+msgstr "Répondeur automatique"
+
+#: Mailman/Gui/Autoresponse.py:39
+msgid ""
+"Auto-responder characteristics.<p>\n"
+"\n"
+"In the text fields below, string interpolation is performed with\n"
+"the following key/value substitutions:\n"
+"<p><ul>\n"
+" <li><b>listname</b> - <em>gets the name of the mailing list</em>\n"
+" <li><b>listurl</b> - <em>gets the list's listinfo URL</em>\n"
+" <li><b>requestemail</b> - <em>gets the list's -request address</em>\n"
+" <li><b>owneremail</b> - <em>gets the list's -owner address</em>\n"
+"</ul>\n"
+"\n"
+"<p>For each text field, you can either enter the text directly into the "
+"text\n"
+"box, or you can specify a file on your local system to upload as the text."
+msgstr ""
+"Caractéristique du répondeur automatique.<p>\n"
+"\n"
+"Dans les zones de texte ci-dessous, des interpolations de chaînes sont "
+"opérées\n"
+"avec les substitutions clé/valeur suivantes:\n"
+"<p><ul>\n"
+"\t<li><b>listname</b> - <em>donne le nom de la liste</em>\n"
+"\t<li><b>listurl</b> - <em>donne l'URL de la page info de la liste</em>\n"
+"\t<li><b>requestemail</b> - <em>donne l'adresse -request de la liste</em>\n"
+"\t<li><b>owneremail</b> - <em>donne l'adresse -owner de la liste</em>\n"
+"</ul>\n"
+"\n"
+"<p>Pour chaque zone de texte, vous pourrez ou saisir le texte\n"
+"directement dans la zone de texte, ou spécifier un fichier à\n"
+"charger en provenance de votre système de fichier local\n"
+"contenant le texte correspondant."
+
+#: Mailman/Gui/Autoresponse.py:55
+msgid ""
+"Should Mailman send an auto-response to mailing list\n"
+" posters?"
+msgstr ""
+"Mailman doit-il envoyer une réponse automatique aux expéditeurs des "
+"soumissions sur la liste?"
+
+#: Mailman/Gui/Autoresponse.py:60
+msgid "Auto-response text to send to mailing list posters."
+msgstr "Texte d'autoréponse envoyé aux expéditeurs de la liste."
+
+#: Mailman/Gui/Autoresponse.py:63
+msgid ""
+"Should Mailman send an auto-response to emails sent to the\n"
+" -owner address?"
+msgstr ""
+"Mailman devra-il envoyer une réponse automatique aux courriels envoyés\n"
+"\tà l'adresse -owner?"
+
+#: Mailman/Gui/Autoresponse.py:68
+msgid "Auto-response text to send to -owner emails."
+msgstr "Texte du répondeur automatique à envoyer aux adresses -owner."
+
+#: Mailman/Gui/Autoresponse.py:71
+msgid "Yes, w/discard"
+msgstr "Oui, puis ignorer"
+
+#: Mailman/Gui/Autoresponse.py:71
+msgid "Yes, w/forward"
+msgstr "Oui, puis faire suivre"
+
+#: Mailman/Gui/Autoresponse.py:72
+msgid ""
+"Should Mailman send an auto-response to emails sent to the\n"
+" -request address? If you choose yes, decide whether you want\n"
+" Mailman to discard the original email, or forward it on to the\n"
+" system as a normal mail command."
+msgstr ""
+"Mailman doit-il envoyé une réponse automatique suite au messages envoyés à "
+"l'adresse -request?\n"
+"Si vous répondez oui, vous devez spécifier si Mailman doit ignorer le "
+"message original ou si il doit\n"
+"le faire parvenir au système comme une commande de courriel classique."
+
+#: Mailman/Gui/Autoresponse.py:79
+msgid "Auto-response text to send to -request emails."
+msgstr "Texte de répondeur automatique à envoyé à l'adresse -request"
+
+#: Mailman/Gui/Autoresponse.py:82
+msgid ""
+"Number of days between auto-responses to either the mailing\n"
+" list or -request/-owner address from the same poster. Set to\n"
+" zero (or negative) for no grace period (i.e. auto-respond to\n"
+" every message)."
+msgstr ""
+"Nombre de jours séparant les réponses automatiques vers la liste ou\n"
+"vers les adresses -request/-owner déclenchées par le même\n"
+"expéditeur. Portez la valeur à zéro (ou à une valeur négative) pour\n"
+"annuler les périodes de grâce (i.e. une réponse automatique à tous les\n"
+"messages)."
+
+#: Mailman/Gui/Bounce.py:26
+msgid "Bounce processing"
+msgstr "Traitement de rebonds"
+
+#: Mailman/Gui/Bounce.py:32
+msgid ""
+"These policies control the automatic bounce processing system\n"
+" in Mailman. Here's an overview of how it works.\n"
+"\n"
+" <p>When a bounce is received, Mailman tries to extract two "
+"pieces\n"
+" of information from the message: the address of the member the\n"
+" message was intended for, and the severity of the problem "
+"causing\n"
+" the bounce. The severity can be either <em>hard</em> or\n"
+" <em>soft</em> meaning either a fatal error occurred, or a\n"
+" transient error occurred. When in doubt, a hard severity is "
+"used.\n"
+"\n"
+" <p>If no member address can be extracted from the bounce, then "
+"the\n"
+" bounce is usually discarded. Otherwise, each member is assigned "
+"a\n"
+" <em>bounce score</em> and every time we encounter a bounce from\n"
+" this member we increment the score. Hard bounces increment by "
+"1\n"
+" while soft bounces increment by 0.5. We only increment the "
+"bounce\n"
+" score once per day, so even if we receive ten hard bounces from "
+"a\n"
+" member per day, their score will increase by only 1 for that "
+"day.\n"
+"\n"
+" <p>When a member's bounce score is greater than the\n"
+" <a href=\"?VARHELP=bounce/bounce_score_threshold\">bounce score\n"
+" threshold</a>, the subscription is disabled. Once disabled, "
+"the\n"
+" member will not receive any postings from the list until their\n"
+" membership is explicitly re-enabled (either by the list\n"
+" administrator or the user). However, they will receive "
+"occasional\n"
+" reminders that their membership has been disabled, and these\n"
+" reminders will include information about how to re-enable their\n"
+" membership.\n"
+"\n"
+" <p>You can control both the\n"
+" <a href=\"?VARHELP=bounce/bounce_you_are_disabled_warnings"
+"\">number\n"
+" of reminders</a> the member will receive and the\n"
+" <a href=\"?VARHELP=bounce/"
+"bounce_you_are_disabled_warnings_interval\"\n"
+" >frequency</a> with which these reminders are sent.\n"
+"\n"
+" <p>There is one other important configuration variable; after a\n"
+" certain period of time -- during which no bounces from the "
+"member\n"
+" are received -- the bounce information is\n"
+" <a href=\"?VARHELP=bounce/bounce_info_stale_after\">considered\n"
+" stale</a> and discarded. Thus by adjusting this value, and the\n"
+" score threshold, you can control how quickly bouncing members "
+"are\n"
+" disabled. You should tune both of these to the frequency and\n"
+" traffic volume of your list."
+msgstr ""
+"Ces règles contrôlent le système de gestion automatique des rebonds\n"
+"sous Mailman. Nous allons décrire sommairement son fonctionnement.\n"
+"\n"
+"<p>Lorsqu'un rebond est reçu, Mailman essaie d'extraire deux\n"
+"informations du message: l'adresse de l'abonné à qui le message était\n"
+"destiné et la sévérité du problème ayant causé le rebond. La sévérité\n"
+"peut être <em>forte</em> ou <em>légère</em> signifiant qu'une erreur\n"
+"fatale est survenue ou que l'erreur est passagère. En cas de doute, la\n"
+"sévérité est supposée forte.\n"
+"\n"
+"<p>Si une adresse d'abonné ne peut être extraite du rebond, alors il\n"
+"est généralement ignoré, sinon, chaque abonné dispose d'un <em>score\n"
+"de rebond</em> qui est incrémenté chaque fois que son adresse en fait\n"
+"l'objet. Les rebonds forts font l'objet d'une incrémentation\n"
+"de 1 contre 0,5 pour les rebonds légers. Le score de rebond n'est\n"
+"incrémenté qu'une fois par jour, ainsi, même si dix rebonds forts sont\n"
+"reçus pour un abonné, son compteur n'est incrémenté de 1 pour la\n"
+"journée.\n"
+"\n"
+"<p>Lorsque le score de rebond d'un abonné est supérieur à <a\n"
+"href=\"?VARHELP=bounce/bounce_score_threshold\">la limite du record de\n"
+"rebonds</a>, son abonnement est désactivé. Une fois désactivé, l'abonné\n"
+"ne recevra plus d'envois en provenance de la liste jusqu'à ce\n"
+"que son abonnement soit explicitement réactivé (soit par\n"
+"l'administrateur de la liste, soit par l'abonné). Il recevra toutefois\n"
+"des rappels occasionnels lui faisant part de l'état de son abonnement,\n"
+"rappels qui contiendront des informations concernant les mesures à\n"
+"prendre pour réactiver son abonnement.\n"
+"\n"
+"<p>Vous avez un contrôle total sur <a\n"
+"href=\"?VARHELP=bounce/bounce_you_are_disabled_warnings\">le nombre de\n"
+"rappels</a> reçu par l'abonné et sur <a\n"
+"href=\"?VARHELP=bounce/bounce_you_are_disabled_warnings_interval"
+"\">périodicité</a>\n"
+"avec laquelle ces rappels sont envoyés.\n"
+"\n"
+"<p>Il y a une autre variable de configuration importante; après une\n"
+"certaine période -- durant laquelle aucun rebond provenant de l'abonné\n"
+"n'est reçu -- les informations de rebond sont <a\n"
+"href=\"?VARHELP=bounce/bounce_info_stale_after\">considérées comme\n"
+"caduques</a> et ignorées. Ainsi, si vous ajustez ce paramètre et la\n"
+"limite du score, vous pourrez contrôler la rapidité avec laquelle les\n"
+"abonnés à rebond sont désactivés. Ces deux paramètres doivent être\n"
+"adaptés à la taille et au volume du trafic de votre liste."
+
+#: Mailman/Gui/Bounce.py:75
+msgid "Bounce detection sensitivity"
+msgstr "Sensibilité de la détection de rebond"
+
+#: Mailman/Gui/Bounce.py:78
+msgid "Should Mailman perform automatic bounce processing?"
+msgstr "Mailman doit-il traiter automatiquement les rebonds?"
+
+#: Mailman/Gui/Bounce.py:79
+msgid ""
+"By setting this value to <em>No</em>, you disable all\n"
+" automatic bounce processing for this list, however bounce\n"
+" messages will still be discarded so that the list "
+"administrator\n"
+" isn't inundated with them."
+msgstr ""
+"Si vous choisissez <em>Non</em> pour cette valeur, vous désactivez la\n"
+"gestion automatique des rebonds pour cette liste, les messages qui\n"
+"rebondissent seront toutefois ignorés évitant ainsi que\n"
+"l'administrateur en soit inondé."
+
+#: Mailman/Gui/Bounce.py:85
+msgid ""
+"The maximum member bounce score before the member's\n"
+" subscription is disabled. This value can be a floating point\n"
+" number."
+msgstr ""
+"La limite du record de rebond avant que l'abonnement ne soit\n"
+"désactivé. Cette valeur peut être un nombre à virgule flottante."
+
+#: Mailman/Gui/Bounce.py:90
+msgid ""
+"The number of days after which a member's bounce information\n"
+" is discarded, if no new bounces have been received in the\n"
+" interim. This value must be an integer."
+msgstr ""
+"Le nombre de jours au-delà desquels les informations de rebond d'un\n"
+"abonné deviennent caduques si de nouveaux rebonds ne proviennent pas\n"
+"de son adresse entre temps. Cette valeur doit être un entier."
+
+#: Mailman/Gui/Bounce.py:95
+msgid ""
+"How many <em>Your Membership Is Disabled</em> warnings a\n"
+" disabled member should get before their address is removed "
+"from\n"
+" the mailing list. Set to 0 to immediately remove an address "
+"from\n"
+" the list once their bounce score exceeds the threshold. This\n"
+" value must be an integer."
+msgstr ""
+"Combien de messages d'avertissement de type <em>Votre abonnement est\n"
+"désactivé</em> un abonné dont le compte a été désactivé doit-il\n"
+"recevoir avant que son adresse ne soit supprimée de la liste. Spécifier\n"
+"0 pour supprimer immédiatement l'adresse dès que la limite du score\n"
+"de rebond est atteinte. Cette valeur doit être un entier."
+
+#: Mailman/Gui/Bounce.py:102
+msgid ""
+"The number of days between sending the <em>Your Membership\n"
+" Is Disabled</em> warnings. This value must be an integer."
+msgstr ""
+"Le nombre de jours entre les messages de type <em>Votre abonnement est\n"
+"désactivé</em>. Cette valeur doit être un entier."
+
+#: Mailman/Gui/Bounce.py:105 Mailman/Gui/General.py:257
+msgid "Notifications"
+msgstr "Avis"
+
+#: Mailman/Gui/Bounce.py:109
+msgid ""
+"Should Mailman send you, the list owner, any bounce messages\n"
+" that failed to be detected by the bounce processor? <em>Yes</"
+"em>\n"
+" is recommended."
+msgstr ""
+"Est ce que Mailman doit vous envoyer, en tant que propriétaire de la\n"
+"liste, tous les rebonds que le gestionnaire de rebonds n'a pas pu\n"
+"détecter? <em>Oui</em> recommandé."
+
+#: Mailman/Gui/Bounce.py:112
+msgid ""
+"While Mailman's bounce detector is fairly robust, it's\n"
+" impossible to detect every bounce format in the world. You\n"
+" should keep this variable set to <em>Yes</em> for two reasons: "
+"1)\n"
+" If this really is a permanent bounce from one of your members,\n"
+" you should probably manually remove them from your list, and "
+"2)\n"
+" you might want to send the message on to the Mailman "
+"developers\n"
+" so that this new format can be added to its known set.\n"
+"\n"
+" <p>If you really can't be bothered, then set this variable to\n"
+" <em>No</em> and all non-detected bounces will be discarded\n"
+" without further processing.\n"
+"\n"
+" <p><b>Note:</b> This setting will also affect all messages "
+"sent\n"
+" to your list's -admin address. This address is deprecated and\n"
+" should never be used, but some people may still send mail to "
+"this\n"
+" address. If this happens, and this variable is set to\n"
+" <em>No</em> those messages too will get discarded. You may "
+"want\n"
+" to set up an\n"
+" <a href=\"?VARHELP=autoreply/autoresponse_admin_text"
+"\">autoresponse\n"
+" message</a> for email to the -owner and -admin address."
+msgstr ""
+"Bien que le gestionnaire de rebonds de Mailman soit assez robuste, il\n"
+"est impossible de détecter tous les formats possibles de rebonds. Vous\n"
+"devrez porter cette variable à <em>Oui</em> pour deux raisons:\n"
+"1)\n"
+"S'il s'agit de rebonds définitifs en provenance de l'adresse de l'un\n"
+"de vos abonnés, vous devriez certainement le supprimer manuellement de\n"
+"la liste, et,\n"
+"2)\n"
+"Vous serez aimable d'envoyer ce message sur la liste des développeurs\n"
+"de Mailman pour que ce nouveau format soit incorporé à l'ensemble des\n"
+"formats connus.\n"
+"\n"
+"<p>Si vous n'avez pas envie d'être dérangé, portez cette variable à\n"
+"<em>Non</em> de sorte que tous les rebonds non décelés soient ignorés\n"
+"sans autre forme de procès.\n"
+"\n"
+"<p><b>Note:</b> Ce paramètrage affectera également tous les messages\n"
+"envoyés à l'adresse -admin de votre liste. Cette adresse est obsolète\n"
+"est ne devrait plus être utilisée, mais certaines personnes vont y\n"
+"envoyer des messages. Si cela arrive et que la valeur de cette\n"
+"variable est <em>Non</em>, alors ces messages aussi seront\n"
+"ignorés. Vous pourrez configurer <a\n"
+"href=\"?VARHELP=autoreplyåutoresponse_admin_text\">un message\n"
+"d'auto réponse</a> pour les messages destinés aux adresses -owner et\n"
+"-admin."
+
+#: Mailman/Gui/Bounce.py:135
+msgid ""
+"Should Mailman notify you, the list owner, when bounces\n"
+" cause a member's subscription to be disabled?"
+msgstr ""
+"Mailman doit-il vous prévenir, en tant que propriétaire de la liste,\n"
+"lorsque des rebonds entraînent la désactivation d'un abonnement?"
+
+#: Mailman/Gui/Bounce.py:137
+msgid ""
+"By setting this value to <em>No</em>, you turn off\n"
+" notification messages that are normally sent to the list "
+"owners\n"
+" when a member's delivery is disabled due to excessive bounces.\n"
+" An attempt to notify the member will always be made."
+msgstr ""
+"En portant cette valeur à <em>Non</em>, vous désactivez les avis\n"
+"envoyés normalement aux propriétaires de la liste lorsque la remise\n"
+"est désactivée pour un abonné suite à des rebonds excessifs. Mailman\n"
+"tentera également de tenir l'abonné informé."
+
+#: Mailman/Gui/Bounce.py:144
+msgid ""
+"Should Mailman notify you, the list owner, when bounces\n"
+" cause a member to be unsubscribed?"
+msgstr ""
+"Mailman doit-il vous informer, en tant que propriétaire de la liste,\n"
+"lorsque des rebonds entraînent la suppression d'un abonnement?"
+
+#: Mailman/Gui/Bounce.py:146
+msgid ""
+"By setting this value to <em>No</em>, you turn off\n"
+" notification messages that are normally sent to the list "
+"owners\n"
+" when a member is unsubscribed due to excessive bounces. An\n"
+" attempt to notify the member will always be made."
+msgstr ""
+"En portant cette valeur à <em>Non</em>, vous désactivez l'envoi d'avis\n"
+"normalement destinés aux propriétaires de la liste lorsqu'un abonnement\n"
+"est supprimé suite à des rebonds excessifs. Mailman tentera de tenir\n"
+"l'abonné informé."
+
+#: Mailman/Gui/Bounce.py:173
+msgid ""
+"Bad value for <a href=\"?VARHELP=bounce/%(property)s\"\n"
+" >%(property)s</a>: %(val)s"
+msgstr ""
+"Valeur erronée de <a\n"
+"href=\"?VARHELP=bounce/%(property)s\">%(property)s</a>: %(val)s"
+
+#: Mailman/Gui/ContentFilter.py:30
+msgid "Content&nbsp;filtering"
+msgstr "Filtres&nbsp;de&nbsp;contenu"
+
+#: Mailman/Gui/ContentFilter.py:37
+msgid "Forward to List Owner"
+msgstr "Faire suivre au propriétaire de la liste"
+
+#: Mailman/Gui/ContentFilter.py:39
+msgid "Preserve"
+msgstr "Préserver"
+
+#: Mailman/Gui/ContentFilter.py:42
+msgid ""
+"Policies concerning the content of list traffic.\n"
+"\n"
+" <p>Content filtering works like this: when a message is\n"
+" received by the list and you have enabled content filtering, "
+"the\n"
+" individual attachments are first compared to the\n"
+" <a href=\"?VARHELP=contentfilter/filter_mime_types\">filter\n"
+" types</a>. If the attachment type matches an entry in the "
+"filter\n"
+" types, it is discarded.\n"
+"\n"
+" <p>Then, if there are <a\n"
+" href=\"?VARHELP=contentfilter/pass_mime_types\">pass types</a>\n"
+" defined, any attachment type that does <em>not</em> match a\n"
+" pass type is also discarded. If there are no pass types "
+"defined,\n"
+" this check is skipped.\n"
+"\n"
+" <p>After this initial filtering, any <tt>multipart</tt>\n"
+" attachments that are empty are removed. If the outer message "
+"is\n"
+" left empty after this filtering, then the whole message is\n"
+" discarded. Then, each <tt>multipart/alternative</tt> section "
+"will\n"
+" be replaced by just the first alternative that is non-empty "
+"after\n"
+" filtering.\n"
+"\n"
+" <p>Finally, any <tt>text/html</tt> parts that are left in the\n"
+" message may be converted to <tt>text/plain</tt> if\n"
+" <a href=\"?VARHELP=contentfilter/convert_html_to_plaintext\"\n"
+" >convert_html_to_plaintext</a> is enabled and the site is\n"
+" configured to allow these conversions."
+msgstr ""
+"Règles concernant le contenu du trafic de la liste.\n"
+"<p>Le filtrage du contenu fonctionne de la manière suivante :\n"
+"lorsqu'un message est reçu sur la liste et que le filtrage de contenu est "
+"actif, les\n"
+"sections individuelles sont d'abord comparées aux\n"
+" <a href=\"?VARHELP=contentfilter/filter_mime_types\">types de filtres</a>.\n"
+"Si le type de section correspond à une valeur du filtre, elle est "
+"supprimée.\n"
+"\n"
+"<p>Ensuite, si il y a des\n"
+"<a href=\"?VARHELP=contentfilter/pass_mime_types\">types acceptés</a>\n"
+"définis, tout type de section qui ne correspond <em>pas</em>\n"
+"à un type accepté est aussi supprimé. Si il n'y a pas de types accepté\n"
+"définis, ce contrôle n'est pas effectué.\n"
+"<p>Après ce filtrage initial, toute section <tt>multipart</tt>\n"
+"vide est supprimée. Si le message sortant est vide après \n"
+"cette étape de filtrage, alors le message en entier est supprimé.\n"
+"Puis chaque section <tt>multipart/alternative</tt>\n"
+"sera remplacée par la première section alternative\n"
+"non vide après filtrage.\n"
+"\n"
+"Enfin, toute partie <tt>text/html</tt> laissée dans le message\n"
+"est convertie en <tt>text/plain</tt> si\n"
+"<a href=\"?VARHELP=contentfilter/convert_html_to_plaintext\"\n"
+">convertir_html_en_textebrut</a> est actif et que le site est\n"
+"configuré pour autoriser ces conversions."
+
+#: Mailman/Gui/ContentFilter.py:71
+msgid ""
+"Should Mailman filter the content of list traffic according\n"
+" to the settings below?"
+msgstr ""
+"Mailman doit-il filtrer le contenu du trafic de la liste conformément\n"
+"aux paramètres ci-dessous?"
+
+#: Mailman/Gui/ContentFilter.py:75
+msgid ""
+"Remove message attachments that have a matching content\n"
+" type."
+msgstr "Supprimer les sections des messages ayant un type MIME correspondant."
+
+#: Mailman/Gui/ContentFilter.py:78
+msgid ""
+"Use this option to remove each message attachment that\n"
+" matches one of these content types. Each line should contain "
+"a\n"
+" string naming a MIME <tt>type/subtype</tt>,\n"
+" e.g. <tt>image/gif</tt>. Leave off the subtype to remove all\n"
+" parts with a matching major content type, e.g. <tt>image</tt>.\n"
+"\n"
+" <p>Blank lines are ignored.\n"
+"\n"
+" <p>See also <a href=\"?VARHELP=contentfilter/pass_mime_types\"\n"
+" >pass_mime_types</a> for a content type whitelist."
+msgstr ""
+"Utiliser cette option pour supprimer toute section attachée\n"
+"qui correspond à un de type de contenu. Chaque ligne devrait\n"
+"contenir une chaîne désignant un <tt>type/sous-type</tt> MIME,\n"
+"e.g <tt>image/gif</tt>. Laisser le sous-type vide pour supprimer\n"
+"toutes les sections contenant un type majeur, e.g <tt>image</tt>.\n"
+"\n"
+"<p>Les lignes vides sont ignorées.\n"
+".\n"
+"<p>Voir aussi <a href=\"?VARHELP=contentfilter/pass_mime_types\"\n"
+">types_mime_acceptés</a> pour la liste des types de contenu."
+
+#: Mailman/Gui/ContentFilter.py:90
+msgid ""
+"Remove message attachments that don't have a matching\n"
+" content type. Leave this field blank to skip this filter\n"
+" test."
+msgstr ""
+"Supprimer les sections du message qui ne correspondent pas\n"
+"à un type de contenu. Laisser le champs vide pour passer ce test."
+
+#: Mailman/Gui/ContentFilter.py:94
+msgid ""
+"Use this option to remove each message attachment that does\n"
+" not have a matching content type. Requirements and formats "
+"are\n"
+" exactly like <a href=\"?VARHELP=contentfilter/filter_mime_types"
+"\"\n"
+" >filter_mime_types</a>.\n"
+"\n"
+" <p><b>Note:</b> if you add entries to this list but don't add\n"
+" <tt>multipart</tt> to this list, any messages with attachments\n"
+" will be rejected by the pass filter."
+msgstr ""
+"Utiliser cette option pour supprimer toute section attachée\n"
+"qui ne correspond pas à un type de contenu. Format et éléments requis\n"
+"sont exactement les mêmes que pour <a href=\"?VARHELP=contentfilter/"
+"filter_mime_types\"\n"
+">types_filtres_mime</a>.\n"
+"\n"
+"<p><b>Note: </b>si vous ajoutez des valeurs à cette liste sans ajouter\n"
+"<tt>multipart</tt>, tout message avec attachements sera rejeté par le filtre."
+
+#: Mailman/Gui/ContentFilter.py:104
+msgid ""
+"Should Mailman convert <tt>text/html</tt> parts to plain\n"
+" text? This conversion happens after MIME attachments have "
+"been\n"
+" stripped."
+msgstr ""
+"Mailman doit-il convertir les parties <tt>text/html</tt> en texte\n"
+"brut? Cette conversion survient après la suppression des fichiers\n"
+"attachés MIME."
+
+#: Mailman/Gui/ContentFilter.py:110
+msgid ""
+"Action to take when a message matches the content filtering\n"
+" rules."
+msgstr ""
+"Mesure à prendre lorsqu'un message correspond à une règle de filtrage de\n"
+"contenu"
+
+#: Mailman/Gui/ContentFilter.py:113
+msgid ""
+"One of these actions is take when the message matches one of\n"
+" the content filtering rules, meaning, the top-level\n"
+" content type matches one of the <a\n"
+" href=\"?VARHELP=contentfilter/filter_mime_types\"\n"
+" >filter_mime_types</a>, or the top-level content type does\n"
+" <strong>not</strong> match one of the\n"
+" <a href=\"?VARHELP=contentfilter/pass_mime_types\"\n"
+" >pass_mime_types</a>, or if after filtering the subparts of "
+"the\n"
+" message, the message ends up empty.\n"
+"\n"
+" <p>Note this action is not taken if after filtering the "
+"message\n"
+" still contains content. In that case the message is always\n"
+" forwarded on to the list membership.\n"
+"\n"
+" <p>When messages are discarded, a log entry is written\n"
+" containing the Message-ID of the discarded message. When\n"
+" messages are rejected or forwarded to the list owner, a reason\n"
+" for the rejection is included in the bounce message to the\n"
+" original author. When messages are preserved, they are saved "
+"in\n"
+" a special queue directory on disk for the site administrator "
+"to\n"
+" view (and possibly rescue) but otherwise discarded. This last\n"
+" option is only available if enabled by the site\n"
+" administrator."
+msgstr ""
+"Une de ces mesures est prise lorsque le message correspond à une\n"
+"des règles de filtrage de contenu, c'est à dire\n"
+"que le type de contenu correspond à\n"
+"<a href=\"?VARHELP=contentfilter/filter_mime_types\"\n"
+">types_filtres_mime</a>, ou ne correspond <strong>pas</strong> à<a href=\"?"
+"VARHELP=contentfilter/pass_mime_types\"\n"
+">types_mime_acceptés</a>, ou alors si après filtrage des sections\n"
+"du message, ce dernier est vide.\n"
+"\n"
+"<p>Lorsque les messages sont supprimés, une entrée log est crée,\n"
+"contenant l'ID des messages supprimés. Lorsque les messages\n"
+"sont rejetés ou remis au propriétaire de liste, une raison\n"
+"du rejet est incluse dans le message de retour à l'expéditeur.\n"
+"Lorsque les messages sont préservés, ils sont sauvés dans\n"
+"un dossier file d'attente du disque pour que l'administrateur\n"
+"puisse les voir (et les récupérer éventuellement) ou les supprimer.\n"
+"Cette dernière option n'est disponible qu'après activation\n"
+"par l'administrateur du site."
+
+#: Mailman/Gui/ContentFilter.py:154
+msgid "Bad MIME type ignored: %(spectype)s"
+msgstr "Mauvais type MIME ignoré: %(spectype)s"
+
+#: Mailman/Gui/Digest.py:36
+msgid "Digest options"
+msgstr "Options de remise groupée"
+
+#: Mailman/Gui/Digest.py:44
+msgid "Batched-delivery digest characteristics."
+msgstr "Caractéristiques de la livraison par lot des envois groupés."
+
+#: Mailman/Gui/Digest.py:47
+msgid "Can list members choose to receive list traffic bunched in digests?"
+msgstr ""
+"Les abonnés aux listes peuvent-ils choisir de recevoir le trafic de la liste "
+"en mode groupé?"
+
+#: Mailman/Gui/Digest.py:51
+msgid "Digest"
+msgstr "Remise groupée"
+
+#: Mailman/Gui/Digest.py:51
+msgid "Regular"
+msgstr "Régulier"
+
+#: Mailman/Gui/Digest.py:52
+msgid "Which delivery mode is the default for new users?"
+msgstr "Quel est le mode de remise par défaut pour les nouveaux utilisateurs?"
+
+#: Mailman/Gui/Digest.py:55
+msgid "MIME"
+msgstr "MIME"
+
+#: Mailman/Gui/Digest.py:55
+msgid "Plain"
+msgstr "Brut"
+
+#: Mailman/Gui/Digest.py:56
+msgid "When receiving digests, which format is default?"
+msgstr "Lors de la réception des lots, quel est le format par défaut?"
+
+#: Mailman/Gui/Digest.py:59
+msgid "How big in Kb should a digest be before it gets sent out?"
+msgstr "Quel doit être la taille minimale en kb d'un lot avant d'être envoyé"
+
+#: Mailman/Gui/Digest.py:63
+msgid ""
+"Should a digest be dispatched daily when the size threshold isn't reached?"
+msgstr ""
+"Les messages groupés doivent-ils être envoyés si la taille seuil n'est pas "
+"atteinte?"
+
+#: Mailman/Gui/Digest.py:67
+msgid "Header added to every digest"
+msgstr "En-tête ajouté à chaque lot"
+
+#: Mailman/Gui/Digest.py:68
+msgid ""
+"Text attached (as an initial message, before the table of contents) to the "
+"top of digests. "
+msgstr ""
+"Texte attaché (comme message initial, avant la table des matières) en tête "
+"des resumés"
+
+#: Mailman/Gui/Digest.py:73
+msgid "Footer added to every digest"
+msgstr "Pied de page ajouté à chaque groupe de messages"
+
+#: Mailman/Gui/Digest.py:74
+msgid "Text attached (as a final message) to the bottom of digests. "
+msgstr "Texte attaché (comme message final) au bas de chaque lot."
+
+#: Mailman/Gui/Digest.py:80
+msgid "How often should a new digest volume be started?"
+msgstr ""
+"Avec quelle périodicité un nouveau volume de résumé doit-il être entamé?"
+
+#: Mailman/Gui/Digest.py:81
+msgid ""
+"When a new digest volume is started, the volume number is\n"
+" incremented and the issue number is reset to 1."
+msgstr ""
+"Lorsqu'un nouveau volume de resumé est crée, le numéros du volume est\n"
+"\tincrementé alors que celui de la parution est ramené à 1"
+
+#: Mailman/Gui/Digest.py:85
+msgid "Should Mailman start a new digest volume?"
+msgstr "Mailman peut-il entamer un nouveau volume digest?"
+
+#: Mailman/Gui/Digest.py:86
+msgid ""
+"Setting this option instructs Mailman to start a new volume\n"
+" with the next digest sent out."
+msgstr ""
+"Cette valeur ordonne à Mailman d'entamer un nouveau volume et d'envoyer\n"
+"le lot suivant."
+
+#: Mailman/Gui/Digest.py:90
+msgid ""
+"Should Mailman send the next digest right now, if it is not\n"
+" empty?"
+msgstr ""
+"Mailman peut-il envoyer le prochain lot maintenant, s'il n'est pas vide."
+
+#: Mailman/Gui/Digest.py:145
+msgid ""
+"The next digest will be sent as volume\n"
+" %(volume)s, number %(number)s"
+msgstr ""
+"Le prochain digest sera envoyé comme volume\n"
+" %(volume)s, numéros %(number)s"
+
+#: Mailman/Gui/Digest.py:150
+msgid "A digest has been sent."
+msgstr "Un digest a été envoyé."
+
+#: Mailman/Gui/Digest.py:152
+msgid "There was no digest to send."
+msgstr "Pas de digest à envoyer."
+
+#: Mailman/Gui/GUIBase.py:149
+msgid "Invalid value for variable: %(property)s"
+msgstr "Valeur inavalide pour la variable: %(property)s"
+
+#: Mailman/Gui/GUIBase.py:153
+msgid "Bad email address for option %(property)s: %(val)s"
+msgstr "Adresse courriel invalide pour l'option %(property)s: %(val)s"
+
+#: Mailman/Gui/GUIBase.py:179
+msgid ""
+"The following illegal substitution variables were\n"
+" found in the <code>%(property)s</code> string:\n"
+" <code>%(bad)s</code>\n"
+" <p>Your list may not operate properly until you correct "
+"this\n"
+" problem."
+msgstr ""
+"Les substitutions illégales suivantes ont étés trouvées\n"
+"dans la chaîne <code>%(property)s</code>: <code>%(bad)s</code>\n"
+"<p>Votre liste pourrait connaître des dysfonctionnements jusqu'à ce\n"
+"que vous ayez corrigé ce problème."
+
+#: Mailman/Gui/GUIBase.py:193
+msgid ""
+"Your <code>%(property)s</code> string appeared to\n"
+" have some correctable problems in its new value.\n"
+" The fixed value will be used instead. Please\n"
+" double check that this is what you intended.\n"
+" "
+msgstr ""
+"Votre chaîne <code>%(property)s</code> semble avoir une nouvelle\n"
+"valeur erronée. Une valeur corrigée sera utilisée. Veuillez vérifier\n"
+"que c'est ce que vous désiriez.\n"
+" "
+
+#: Mailman/Gui/General.py:32
+msgid "General Options"
+msgstr "Options générales"
+
+#: Mailman/Gui/General.py:46
+msgid "Conceal the member's address"
+msgstr "Dissimuler l'adresse de l'abonné"
+
+#: Mailman/Gui/General.py:47
+msgid "Acknowledge the member's posting"
+msgstr "Accuser réception de l'envoi de l'abonné"
+
+#: Mailman/Gui/General.py:48
+msgid "Do not send a copy of a member's own post"
+msgstr "Ne pas envoyer de copie des propres messages de l'abonné"
+
+#: Mailman/Gui/General.py:50
+msgid "Filter out duplicate messages to list members (if possible)"
+msgstr ""
+"Filtrer les doublons dans les messages envoyés aux abonnés (si\n"
+"possible)"
+
+#: Mailman/Gui/General.py:57
+msgid ""
+"Fundamental list characteristics, including descriptive\n"
+" info and basic behaviors."
+msgstr ""
+"Caractéristiques fondamentales de la liste, avec des infos\n"
+"descriptives et le fonctionnement de base."
+
+#: Mailman/Gui/General.py:60
+msgid "General list personality"
+msgstr "Personnalité de liste générique"
+
+#: Mailman/Gui/General.py:63
+msgid "The public name of this list (make case-changes only)."
+msgstr ""
+"Le nom publique de la liste (ne faites des modifications que sur la casse)."
+
+#: Mailman/Gui/General.py:64
+msgid ""
+"The capitalization of this name can be changed to make it\n"
+" presentable in polite company as a proper noun, or to make an\n"
+" acronym part all upper case, etc. However, the name will be\n"
+" advertised as the email address (e.g., in subscribe "
+"confirmation\n"
+" notices), so it should <em>not</em> be otherwise altered. "
+"(Email\n"
+" addresses are not case sensitive, but they are sensitive to\n"
+" almost everything else :-)"
+msgstr ""
+"La casse du nom peut être changée pour le rendre plus présentable\n"
+"ou en faire un acronyme classique. Toutefois, ce nom sera publié comme étant "
+"l'adresse\n"
+"courriel (dans les requêtes de confirmation d'abonnement par exemple), aussi "
+"<em>ne doit-il\n"
+"pas</em> être altéré (les adresses courriels sont insensible à la casse, "
+"mais elles le sont\n"
+"à presque n'importe quoi d'autre :-)"
+
+#: Mailman/Gui/General.py:73
+msgid ""
+"The list administrator email addresses. Multiple\n"
+" administrator addresses, each on separate line is okay."
+msgstr ""
+"L'adresse courriel de l'administrateur de la liste -- il est possible\n"
+"d'avoir plusieurs adresses d'administrateurs, une par ligne."
+
+#: Mailman/Gui/General.py:76
+msgid ""
+"There are two ownership roles associated with each mailing\n"
+" list. The <em>list administrators</em> are the people who "
+"have\n"
+" ultimate control over all parameters of this mailing list. "
+"They\n"
+" are able to change any list configuration variable available\n"
+" through these administration web pages.\n"
+"\n"
+" <p>The <em>list moderators</em> have more limited permissions;\n"
+" they are not able to change any list configuration variable, "
+"but\n"
+" they are allowed to tend to pending administration requests,\n"
+" including approving or rejecting held subscription requests, "
+"and\n"
+" disposing of held postings. Of course, the <em>list\n"
+" administrators</em> can also tend to pending requests.\n"
+"\n"
+" <p>In order to split the list ownership duties into\n"
+" administrators and moderators, you must\n"
+" <a href=\"passwords\">set a separate moderator password</a>,\n"
+" and also provide the <a href=\"?VARHELP=general/moderator"
+"\">email\n"
+" addresses of the list moderators</a>. Note that the field you\n"
+" are changing here specifies the list administrators."
+msgstr ""
+"Il y a deux types de responsables pour une liste de diffusion. Les\n"
+"<em>Administrateurs de listes</em> sont ceux qui disposent d'un\n"
+"contrôle total sur tous les paramètres de cette liste. Ils peuvent\n"
+"Modifier toute variable de liste configurable à travers ces pages web\n"
+"d'administration.\n"
+"\n"
+"<p>Les <em>Modérateurs de listes</em> ont moins de privilèges; ils ne\n"
+"peuvent pas modifier une variable de configuration de liste, mais\n"
+"peuvent néanmoins basculer vers les requêtes administratives, pour\n"
+"approuver ou rejeter les requêtes d'abonnement, se débarrasser des\n"
+"envois en attente. <em>Les administrateurs</em> de listes\n"
+"peuvent évidemment aussi basculer vers les requêtes en attente.\n"
+"\n"
+"<p>Pour séparer les tâches relatives à la gestion d'une liste en\n"
+"tâches administratives et tâches de modération, Vous devriez <a\n"
+"href=\"passwords\">fournir un mot de passe de modération\n"
+"séparé</a> dans le champ ci-dessous, et fournir la <a\n"
+"href=\"?VARHELP=general/moderator\">liste des adresses courriels des\n"
+"modérateurs</a>. Notez que le champ que vous êtes en train de modifier\n"
+"ici contient les administrateurs de la liste."
+
+#: Mailman/Gui/General.py:97
+msgid ""
+"The list moderator email addresses. Multiple\n"
+" moderator addresses, each on separate line is okay."
+msgstr ""
+"L'adresse courriel du modérateur de la liste -- il est possible\n"
+"d'avoir plusieurs adresses de modérateurs, une par ligne."
+
+#: Mailman/Gui/General.py:100
+msgid ""
+"There are two ownership roles associated with each mailing\n"
+" list. The <em>list administrators</em> are the people who "
+"have\n"
+" ultimate control over all parameters of this mailing list. "
+"They\n"
+" are able to change any list configuration variable available\n"
+" through these administration web pages.\n"
+"\n"
+" <p>The <em>list moderators</em> have more limited permissions;\n"
+" they are not able to change any list configuration variable, "
+"but\n"
+" they are allowed to tend to pending administration requests,\n"
+" including approving or rejecting held subscription requests, "
+"and\n"
+" disposing of held postings. Of course, the <em>list\n"
+" administrators</em> can also tend to pending requests.\n"
+"\n"
+" <p>In order to split the list ownership duties into\n"
+" administrators and moderators, you must\n"
+" <a href=\"passwords\">set a separate moderator password</a>,\n"
+" and also provide the email addresses of the list moderators in\n"
+" this section. Note that the field you are changing here\n"
+" specifies the list moderators."
+msgstr ""
+"Il y a deux types de responsables pour une liste de diffusion. Les\n"
+"<em>Administrateurs de listes</em> sont ceux qui disposent d'un\n"
+"contrôle total sur tous les paramètres de cette liste. Ils peuvent\n"
+"Modifier toute variable de liste configurable à travers ces pages web\n"
+"d'administration.\n"
+"\n"
+"<p>Les <em>Modérateurs de listes</em> ont moins de privilèges; ils ne\n"
+"peuvent pas modifier une variable de configuration de liste, mais\n"
+"peuvent néanmoins basculer vers les requêtes administratives, pour\n"
+"approuver ou rejeter les requêtes d'abonnement, se débarrasser des\n"
+"envois en attente. <em>Les administrateurs</em> de listes\n"
+"peuvent évidemment aussi basculer vers les requêtes en attente.\n"
+"\n"
+"<p>Pour séparer les tâches relatives à la gestion d'une liste en\n"
+"tâches administratives et tâches de modération, Vous devriez <a\n"
+"href=\"passwords\">fournir un mot de passe de modération\n"
+"séparé</a> et fournir la liste des adresses courriels des modérateurs\n"
+"dans cette section. Notez que le champ que vous êtes en train de\n"
+"modifier ici contient les modérateurs de la liste."
+
+#: Mailman/Gui/General.py:121
+msgid "A terse phrase identifying this list."
+msgstr "Une phrase courte identifiant cette liste."
+
+#: Mailman/Gui/General.py:123
+msgid ""
+"This description is used when the mailing list is listed with\n"
+" other mailing lists, or in headers, and so forth. It "
+"should\n"
+" be as succinct as you can get it, while still identifying "
+"what\n"
+" the list is."
+msgstr ""
+"Cette description est utilisée lorsque la liste de diffusion est affichée\n"
+"avec d'autres listes, ou dans les en-tête et autres. Elle doit être aussi\n"
+"concise que possible tout en restant explicite."
+
+#: Mailman/Gui/General.py:129
+msgid ""
+"An introductory description - a few paragraphs - about the\n"
+" list. It will be included, as html, at the top of the "
+"listinfo\n"
+" page. Carriage returns will end a paragraph - see the details\n"
+" for more info."
+msgstr ""
+"Une description introductive - quelques paragraphes - à propos de la liste.\n"
+"Elle sera insérée, au format html, en tête de la page info liste.\n"
+"Les retours charriots marquent la fin des paragraphes - voir détails pour "
+"plus d'informations."
+
+#: Mailman/Gui/General.py:133
+msgid ""
+"The text will be treated as html <em>except</em> that\n"
+" newlines will be translated to &lt;br&gt; - so you can use "
+"links,\n"
+" preformatted text, etc, but don't put in carriage returns "
+"except\n"
+" where you mean to separate paragraphs. And review your changes "
+"-\n"
+" bad html (like some unterminated HTML constructs) can prevent\n"
+" display of the entire listinfo page."
+msgstr ""
+"Le texte sera considéré comme de l'html <em>sauf</em> que les retours\n"
+"à la ligne seront convertis en &lt;br&gt; - vous pouvez donc utiliser\n"
+"des liens, du texte préformatté, etc. Eviter toutefois d'utiliser les\n"
+"retours charriots si vous ne désirez pas créer de nouveaux paragraphes.\n"
+"Vérifier vos modifications - un mauvais code html (comme certaines\n"
+"construction HTML inachevées) peut conduire à une impossibilité d'affichage\n"
+"de la page info liste"
+
+#: Mailman/Gui/General.py:141
+msgid "Prefix for subject line of list postings."
+msgstr "Préfixe de la ligne \"objets\" des messages postés sur la liste."
+
+#: Mailman/Gui/General.py:142
+msgid ""
+"This text will be prepended to subject lines of messages\n"
+" posted to the list, to distinguish mailing list messages in in\n"
+" mailbox summaries. Brevity is premium here, it's ok to "
+"shorten\n"
+" long mailing list names to something more concise, as long as "
+"it\n"
+" still identifies the mailing list."
+msgstr ""
+"Ce texte sera ajouté aux objets des messages\n"
+"\t\tsoumis à la liste pour faciliter la distinction\n"
+"\t\tdes messages issus des listes de diffusion dans les\n"
+"\t\tboîtes de reception. La concision est essentielle ici,\n"
+"\t\til est possible de raccourcir les noms des listes particulièrement\n"
+"\t\tlongs tant que le resultat demeure explicite."
+
+#: Mailman/Gui/General.py:149
+msgid ""
+"Hide the sender of a message, replacing it with the list\n"
+" address (Removes From, Sender and Reply-To fields)"
+msgstr ""
+"Cacher l'expéditeur du message, en le remplaçant par l'adresse de la liste\n"
+"\t(supprimer les champs From, Sender et Reply-To)"
+
+#: Mailman/Gui/General.py:152
+msgid "<tt>Reply-To:</tt> header munging"
+msgstr "Altération d'en-tête <tt>Répondre-à:</tt>"
+
+#: Mailman/Gui/General.py:155
+msgid ""
+"Should any existing <tt>Reply-To:</tt> header found in the\n"
+" original message be stripped? If so, this will be done\n"
+" regardless of whether an explict <tt>Reply-To:</tt> header is\n"
+" added by Mailman or not."
+msgstr ""
+"Les en-têtes <tt>Reply-To:</tt> du message original doivent\n"
+"être supprimés? Si oui, cela s'appliquera également aux en-têtes\n"
+"<tt>Reply-To:</tt> ajoutés par Mailman."
+
+#: Mailman/Gui/General.py:161
+msgid "Explicit address"
+msgstr "Adresse explicite"
+
+#: Mailman/Gui/General.py:161
+msgid "Poster"
+msgstr "Expéditeur"
+
+#: Mailman/Gui/General.py:161
+msgid "This list"
+msgstr "Cette liste"
+
+#: Mailman/Gui/General.py:162
+msgid ""
+"Where are replies to list messages directed?\n"
+" <tt>Poster</tt> is <em>strongly</em> recommended for most "
+"mailing\n"
+" lists."
+msgstr ""
+"Destination des réponses aux messages adressés à la liste?\n"
+"<tt>Expéditeur</tt> est <strong>fortement</strong> recommandé pour la\n"
+"plupart des listes de diffusion."
+
+#: Mailman/Gui/General.py:167
+msgid ""
+"This option controls what Mailman does to the\n"
+" <tt>Reply-To:</tt> header in messages flowing through this\n"
+" mailing list. When set to <em>Poster</em>, no <tt>Reply-To:</"
+"tt>\n"
+" header is added by Mailman, although if one is present in the\n"
+" original message, it is not stripped. Setting this value to\n"
+" either <em>This list</em> or <em>Explicit address</em> causes\n"
+" Mailman to insert a specific <tt>Reply-To:</tt> header in all\n"
+" messages, overriding the header in the original message if\n"
+" necessary (<em>Explicit address</em> inserts the value of <a\n"
+" href=\"?VARHELP=general/reply_to_address\">reply_to_address</"
+"a>).\n"
+" \n"
+" <p>There are many reasons not to introduce or override the\n"
+" <tt>Reply-To:</tt> header. One is that some posters depend on\n"
+" their own <tt>Reply-To:</tt> settings to convey their valid\n"
+" return address. Another is that modifying <tt>Reply-To:</tt>\n"
+" makes it much more difficult to send private replies. See <a\n"
+" href=\"http://www.unicom.com/pw/reply-to-harmful.html\">`Reply-"
+"To'\n"
+" Munging Considered Harmful</a> for a general discussion of "
+"this\n"
+" issue. See <a\n"
+" href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml"
+"\">Reply-To\n"
+" Munging Considered Useful</a> for a dissenting opinion.\n"
+"\n"
+" <p>Some mailing lists have restricted posting privileges, with "
+"a\n"
+" parallel list devoted to discussions. Examples are `patches' "
+"or\n"
+" `checkin' lists, where software changes are posted by a "
+"revision\n"
+" control system, but discussion about the changes occurs on a\n"
+" developers mailing list. To support these types of mailing\n"
+" lists, select <tt>Explicit address</tt> and set the\n"
+" <tt>Reply-To:</tt> address below to point to the parallel\n"
+" list."
+msgstr ""
+"Cette option contrôle ce que Mailman fait des\n"
+"\t\ten-têtes <tt>Reply-to:</tt> des messages qui arrivent sur cette liste.\n"
+"\t\tQuand il a la valeur <em>expéditeur</em>, Mailman n'ajoute pas \n"
+"\t\td'en-tête <tt>Reply-to(/tt), et s'il y en a un dans le message original, "
+"il \n"
+"\t\tn'est pas supprimé. Mettre cette valeur à <em>Cette liste</em> ou a \n"
+"\t\t<em>adresse explicite</em> oblige Mailman à insérer un en-tête <em>Reply-"
+"to</em> spécifique\n"
+"\t\tà tous les messages, annulant ainsi l'en-tête du message original si "
+"nécessaire\n"
+"\t\t(l'option <em>adresse explicite</em> insert la valeur de <a href=\"?"
+"VARHELP=general/reply_to_address\">adresse-\n"
+"\t\trépondre-à</a>).\n"
+"\n"
+"\t\t<p>Il y a nombre de raisons qui militent pour la non-annulation de l'en-"
+"tête <tt>Reply-To</tt>.\n"
+"\t\tParmi ces raisons on peut citer le fait que pas mal d'expéditeurs "
+"dépendent de leurs <tt>Reply-to</tt>\n"
+"\t\tpour réacheminer leurs messages. Une autre raison est le fait que la "
+"modification du <tt>Reply-to</tt>\n"
+"\t\trend plus difficle les réponses privées. Lisez <a href=\"http://www."
+"unicom.com/pw/reply-to-harmful.html\">\n"
+"\t\t`Reply-To` Munging Considered Harmful</a> pour une discussion générale "
+"sur le problème. Lisez <a \n"
+"\t\thref=\"http://www.metasystema.org/essays/reply-to-useful.mhtml\">Reply-"
+"To Munging Considered USeful</a>\n"
+"\t\tpour un panorama.\n"
+"\n"
+"\t\t<p>Certaines liste de diffusion ont des possibilités "
+"d'envoisrestreintes,\n"
+"\t\ten parallèle avec une liste dédiée aux débats. Parmi ces listes ont peut "
+"citer les listes\n"
+"\t\t'patches' et 'checkin', où les modifications des logiciels sont soumise "
+"par des systèmes de contrôleurs\n"
+"\t\tde revisions alors que les discussions concernant ces mêmes "
+"modifications se déroulent sur la liste\n"
+"\t\tdes développeurs. Pour la gestion de ce type de listes, sélectionner "
+"<tt>adresse explicite</tt> et mettre\n"
+"\t\tla valeur de l'adresse <tt>Reply-To:</tt> à celle de la liste parallèle."
+
+#: Mailman/Gui/General.py:199
+msgid "Explicit <tt>Reply-To:</tt> header."
+msgstr "En-tête <tt>Répondre-à:</tt> explicite."
+
+#: Mailman/Gui/General.py:201
+msgid ""
+"This is the address set in the <tt>Reply-To:</tt> header\n"
+" when the <a\n"
+" href=\"?VARHELP=general/reply_goes_to_list"
+"\">reply_goes_to_list</a>\n"
+" option is set to <em>Explicit address</em>.\n"
+"\n"
+" <p>There are many reasons not to introduce or override the\n"
+" <tt>Reply-To:</tt> header. One is that some posters depend on\n"
+" their own <tt>Reply-To:</tt> settings to convey their valid\n"
+" return address. Another is that modifying <tt>Reply-To:</tt>\n"
+" makes it much more difficult to send private replies. See <a\n"
+" href=\"http://www.unicom.com/pw/reply-to-harmful.html\">`Reply-"
+"To'\n"
+" Munging Considered Harmful</a> for a general discussion of "
+"this\n"
+" issue. See <a\n"
+" href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml"
+"\">Reply-To\n"
+" Munging Considered Useful</a> for a dissenting opinion.\n"
+"\n"
+" <p>Some mailing lists have restricted posting privileges, with "
+"a\n"
+" parallel list devoted to discussions. Examples are `patches' "
+"or\n"
+" `checkin' lists, where software changes are posted by a "
+"revision\n"
+" control system, but discussion about the changes occurs on a\n"
+" developers mailing list. To support these types of mailing\n"
+" lists, specify the explicit <tt>Reply-To:</tt> address here. "
+"You\n"
+" must also specify <tt>Explicit address</tt> in the\n"
+" <tt>reply_goes_to_list</tt>\n"
+" variable.\n"
+"\n"
+" <p>Note that if the original message contains a\n"
+" <tt>Reply-To:</tt> header, it will not be changed."
+msgstr ""
+"Cette adresse est celle du champs <tt>Reply-To:</tt> de l'en-tête\n"
+"\tlorsque la variable<a href=\"?VARHELP=general/reply_goes_to_list\">\n"
+"\treply_goes_to_list</a> a la valeur <em>adresse explicite</em>\n"
+"\n"
+"\t\t<p>Il y a nombre de raisons qui militent pour la non-annulation ou "
+"l'introduction d'un en-tête <tt>Reply-to</tt>.\n"
+"\t\tParmi ces raisons on peut citer le fait que pas mal de d'expéditeurs "
+"dépendent de leurs <tt>Reply-to</tt>\n"
+"\t\tpour réacheminer leurs messages. Une autre raison est le fait que la "
+"modification du <tt>Reply-To</tt>\n"
+"\t\trend plus difficile les réponses privées. Lisez <a href=\"http://www."
+"unicom.com/pw/reply-to-harmful.html\">\n"
+"\t\t`Reply-To` Munging Considered Harmful</a> pour une discussion générale "
+"sur le problème. Lisez <a \n"
+"\t\thref=\"http://www.metasystema.org/essays/reply-to-useful.mhtml\">Reply-"
+"To Munging Considered USeful</a>\n"
+"\t\tpour un panorama.\n"
+"\n"
+"\t\t<p>Certaines liste de diffusion ont des possibilités "
+"d'envoisrestreintes,\n"
+"\t\ten parallèle avec une liste dédiée aux débats. Parmi ces listes ont peut "
+"citer les listes\n"
+"\t\t'patches' et 'checkin', où les modifications des logiciels sont soumise "
+"par des systèmes de contrôleurs\n"
+"\t\tde revisions alors que les discussions concernant ces mêmes "
+"modifications se déroulent sur la liste\n"
+"\t\tdes développeurs. Pour la gestion de ce type de listes, sélectionner "
+"<tt>adresse explicite</tt> et mettre\n"
+"\t\tla valeur de l'adresse <tt>Reply-To:</tt> à celle de la liste parallèle."
+"à certains,\n"
+"\t\tavec une liste parallèle pour la discussion. Parmi ces listes on peut "
+"citer les listes\n"
+"\t\t'patches' et 'checkin', où les modifications des logiciels sont soumis "
+"par des systèmes de contrôleurs\n"
+"\t\tde revisions alors que les discussions concernant ces mêmes "
+"modifications se déroulent sur la liste\n"
+"\t\tdes développeurs. Pour la gestion de ce type de listes, spécifiez ici "
+"l'adresse explicite du <tt>Reply-To:</tt>.\n"
+"\t\tVous devrez également spécifier l'adresse <tt>adresse explicite</tt> "
+"dans la variable <tt>reply_goes_to_list</tt>.\n"
+"\t<p>Notez que si le message original contient un en-tête <tt>Reply-To:</"
+"tt>, il ne sera pas modifé."
+
+#: Mailman/Gui/General.py:230
+msgid "Umbrella list settings"
+msgstr "Paramètres de liste cascadées"
+
+#: Mailman/Gui/General.py:233
+msgid ""
+"Send password reminders to, eg, \"-owner\" address instead of\n"
+" directly to user."
+msgstr ""
+"Envoyer un rappel des mots de passe, e.g. à l'adresse \"-owner\" au lieu\n"
+"\t\tde l'envoyer directement à l'utilisateur."
+
+#: Mailman/Gui/General.py:236
+msgid ""
+"Set this to yes when this list is intended to cascade only\n"
+" to other mailing lists. When set, meta notices like\n"
+" confirmations and password reminders will be directed to an\n"
+" address derived from the member's address - it will have the\n"
+" value of \"umbrella_member_suffix\" appended to the member's\n"
+" account name."
+msgstr ""
+"Donnez à celui-ci la valeur oui lorsque cette liste à pour unique but\n"
+"de relayer vers d'autres listes. Lorsqu'elle est activée, les metas avis\n"
+"tels que les confirmations et les rappels de mot de passe seront dirigés "
+"vers\n"
+"des adresees dérivées de celle des abonnées - Elle aura la valeure de\n"
+"\"suffixe_abonné_enveloppe\" ajoutée au nom de l'abonné."
+
+#: Mailman/Gui/General.py:244
+msgid ""
+"Suffix for use when this list is an umbrella for other\n"
+" lists, according to setting of previous \"umbrella_list\"\n"
+" setting."
+msgstr ""
+"Suffixe utilisé lorsque cette liste est une enveloppe pour d'autres listes, "
+"selon le paramètrage de \"liste_enveloppe\" ci-dessus."
+
+#: Mailman/Gui/General.py:248
+msgid ""
+"When \"umbrella_list\" is set to indicate that this list has\n"
+" other mailing lists as members, then administrative notices "
+"like\n"
+" confirmations and password reminders need to not be sent to "
+"the\n"
+" member list addresses, but rather to the owner of those member\n"
+" lists. In that case, the value of this setting is appended to\n"
+" the member's account name for such notices. `-owner' is the\n"
+" typical choice. This setting has no effect when \"umbrella_list"
+"\"\n"
+" is \"No\"."
+msgstr ""
+"Lorsque \"liste_enveloppe\" est activé pour indiquer que d'autres listes "
+"sont\n"
+"\tabonnées à cette liste, les notices administratives telles que\n"
+"\tles confirmations et les rappels de mot de passe ne doivent pas être\n"
+"\t envoyés aux adresses des abonnées mais plutôt aux propriétaires des "
+"listes. Dans ce cas, la valeur de ce paramètre\n"
+"\test ajoutée au nom de compte des abonnés associés à de telles notices.\n"
+"\t'-owner' est le choix typique. Le paramètrage est sans effet lorsque\n"
+"\t\"liste_enveloppe\" a la valeur \"No\"."
+
+#: Mailman/Gui/General.py:260
+msgid "Send monthly password reminders?"
+msgstr "Envoyer les rappels mensuels de mot de passe?"
+
+#: Mailman/Gui/General.py:262
+msgid ""
+"Turn this on if you want password reminders to be sent once\n"
+" per month to your members. Note that members may disable "
+"their\n"
+" own individual password reminders."
+msgstr ""
+"Activez ceci si vous voulez que les rappels de mot de passe soient\n"
+"envoyés mensuellement à vos abonnés. Il est possible que des abonnés\n"
+"désactivent cette option de leur propre chef."
+
+#: Mailman/Gui/General.py:267
+msgid ""
+"List-specific text prepended to new-subscriber welcome\n"
+" message"
+msgstr ""
+"Texte spécifique à une liste, ajouté au début du message de bienvenue "
+"adressé aux nouveaux abonnés"
+
+#: Mailman/Gui/General.py:270
+msgid ""
+"This value, if any, will be added to the front of the\n"
+" new-subscriber welcome message. The rest of the welcome "
+"message\n"
+" already describes the important addresses and URLs for the\n"
+" mailing list, so you don't need to include any of that kind of\n"
+" stuff here. This should just contain mission-specific kinds "
+"of\n"
+" things, like etiquette policies or team orientation, or that "
+"kind\n"
+" of thing.\n"
+"\n"
+" <p>Note that this text will be wrapped, according to the\n"
+" following rules:\n"
+" <ul><li>Each paragraph is filled so that no line is longer "
+"than\n"
+" 70 characters.\n"
+" <li>Any line that begins with whitespace is not filled.\n"
+" <li>A blank line separates paragraphs.\n"
+" </ul>"
+msgstr ""
+"Cette valeur, si elle existe, sera ajoutée au debut du message de bienvenue "
+"adressé\n"
+"au nouveaux abonnés. Le reste dudit message décrit les adresses et URLs\n"
+"importantes relatives à la liste de diffusion, par suite,\n"
+"vous n'aurez pas besoin d'ajouter de telles informations ici.\n"
+"Ceci devrait contenir des informations relatives aux objectifs\n"
+"de la liste, tels que les règles éthiques, les orientations de l'équipe, "
+"etc.\n"
+"<p>Notez que ce texte sera formatté en utilisant les règles suivantes:\n"
+"<ul><li>Chaque paragraphe est composé de lignes d'au plus 70 caractères.\n"
+"<li>Toute ligne commençant par un caractère d'espacement ne sera\n"
+"pas remplie.\n"
+"<li>Les paragraphes sont séparés par une ligne vide.\n"
+"</ul>"
+
+#: Mailman/Gui/General.py:287
+msgid "Send welcome message to newly subscribed members?"
+msgstr "Envoyer un message de bienvenue aux nouveaux abonnés?"
+
+#: Mailman/Gui/General.py:288
+msgid ""
+"Turn this off only if you plan on subscribing people manually\n"
+" and don't want them to know that you did so. This option is "
+"most\n"
+" useful for transparently migrating lists from some other "
+"mailing\n"
+" list manager to Mailman."
+msgstr ""
+"Désactiver ceci seulement si vous prévoyez d'abonner manuellement les gens\n"
+"\tà leur insu. Ceci est utile pour les listes qui effectuent une\n"
+"\tmigration transparente vers Mailman à partir d'autres gestionnaires\n"
+"\tde liste."
+
+#: Mailman/Gui/General.py:294
+msgid ""
+"Text sent to people leaving the list. If empty, no special\n"
+" text will be added to the unsubscribe message."
+msgstr ""
+"Le texte envoyé aux personnes quittant la liste. Si ce texte est vide,\n"
+"aucun message spécial ne sera ajouté au texte de résiliation."
+
+#: Mailman/Gui/General.py:298
+msgid "Send goodbye message to members when they are unsubscribed?"
+msgstr ""
+"Envoyer un message d'au-revoir lorsque les gens résilient leur\n"
+"abonnement?"
+
+#: Mailman/Gui/General.py:301
+msgid ""
+"Should the list moderators get immediate notice of new\n"
+" requests, as well as daily notices about collected ones?"
+msgstr ""
+"Les modérateurs de la liste devraient recevoir un avis\n"
+"immédiatement après chaque nouvelle requête ainsi qu'un avis quotidien\n"
+"des requêtes collectées?"
+
+#: Mailman/Gui/General.py:304
+msgid ""
+"List moderators (and list administrators) are sent daily\n"
+" reminders of requests pending approval, like subscriptions to "
+"a\n"
+" moderated list, or postings that are being held for one reason "
+"or\n"
+" another. Setting this option causes notices to be sent\n"
+" immediately on the arrival of new requests as well."
+msgstr ""
+"Les modérateurs (et les administrateurs) de listes reçoivent\n"
+"quotidiennement le rappel des requêtes d'approbation en attente,\n"
+"telles que les abonnements aux listes modérées ou les\n"
+"envois mis en attente pour diverses raisons. Activer cette\n"
+"option entraîne, en plus, l'envoi d'avis chaque fois qu'une nouvelle\n"
+"requête entre dans la file d'attente."
+
+#: Mailman/Gui/General.py:311
+msgid ""
+"Should administrator get notices of subscribes and\n"
+" unsubscribes?"
+msgstr ""
+"L'administrateur doit-il être informé des abonnements et des\n"
+"résiliations?"
+
+#: Mailman/Gui/General.py:316
+msgid "Send mail to poster when their posting is held for approval?"
+msgstr ""
+"Envoyer un courriel aux expéditeurs lorsque leurs messages sont\n"
+"mis en attente pour approbation?"
+
+#: Mailman/Gui/General.py:318
+msgid ""
+"Approval notices are sent when mail triggers certain of the\n"
+" limits <em>except</em> routine list moderation and spam "
+"filters,\n"
+" for which notices are <em>not</em> sent. This option "
+"overrides\n"
+" ever sending the notice."
+msgstr ""
+"Des demandes d'approbation sont envoyées lorsque les courriels déclenchent "
+"certaines limites\n"
+"<em>sauf</em> pour les modération de liste et les filtres de spam, pour "
+"lesquels <em>aucun</em> avis\n"
+"n'est envoyé, cette option rend caduque les autres options d'envoi d'avis"
+
+#: Mailman/Gui/General.py:323
+msgid "Additional settings"
+msgstr "Paramètres supplémentaires"
+
+#: Mailman/Gui/General.py:326
+msgid "Emergency moderation of all list traffic."
+msgstr "Modération d'urgence sur tout le trafic."
+
+#: Mailman/Gui/General.py:327
+msgid ""
+"When this option is enabled, all list traffic is emergency\n"
+" moderated, i.e. held for moderation. Turn this option on when\n"
+" your list is experiencing a flamewar and you want a cooling "
+"off\n"
+" period."
+msgstr ""
+"Lorsque cette option est activée, tout le trafic de la liste\n"
+"est modéré en urgence, i.e mis en attente de modération. A utiliser\n"
+"lorsque les débats sur votre liste s'enflamment !"
+
+#: Mailman/Gui/General.py:339
+msgid ""
+"Default options for new members joining this list.<input\n"
+" type=\"hidden\" name=\"new_member_options\" value=\"ignore\">"
+msgstr ""
+"Options par défaut des nouveaux abonnés à la liste. <input\n"
+"type=\"hidden\" name=\"new_member_options\" value=\"ignore\">"
+
+#: Mailman/Gui/General.py:342
+msgid ""
+"When a new member is subscribed to this list, their initial\n"
+" set of options is taken from the this variable's setting."
+msgstr ""
+"Lorsque cette liste accueille un nouvel abonné, ses paramètres initiaux\n"
+"seront extraits de la valeur de cette variable."
+
+#: Mailman/Gui/General.py:346
+msgid ""
+"(Administrivia filter) Check postings and intercept ones\n"
+" that seem to be administrative requests?"
+msgstr ""
+"(Filtre administratif) Vérifie les envois et intercepte ceux\n"
+"qui ressemblent à des requêtes administratives?"
+
+#: Mailman/Gui/General.py:349
+msgid ""
+"Administrivia tests will check postings to see whether it's\n"
+" really meant as an administrative request (like subscribe,\n"
+" unsubscribe, etc), and will add it to the the administrative\n"
+" requests queue, notifying the administrator of the new "
+"request,\n"
+" in the process."
+msgstr ""
+"Les test administratives vont vérifier les envois pour voir s'il s'agit\n"
+"de requêtes administratives (telles que les abonnements, les résiliations\n"
+", etc) et les ajouter à la file d'attente des requêtes puis aviser\n"
+"l'administrateur de l'arrivée de nouvelles requêtes à traiter."
+
+#: Mailman/Gui/General.py:356
+msgid ""
+"Maximum length in kilobytes (KB) of a message body. Use 0\n"
+" for no limit."
+msgstr ""
+"Taille maximale en kilo-octets (ko) du corps d'un message. Spécifiez 0\n"
+"pour illimitée."
+
+#: Mailman/Gui/General.py:360
+msgid "Host name this list prefers for email."
+msgstr "Le nom d'hôte préféré par cette liste de diffusion pour le courriel."
+
+#: Mailman/Gui/General.py:362
+msgid ""
+"The \"host_name\" is the preferred name for email to\n"
+" mailman-related addresses on this host, and generally should "
+"be\n"
+" the mail host's exchanger address, if any. This setting can "
+"be\n"
+" useful for selecting among alternative names of a host that "
+"has\n"
+" multiple addresses."
+msgstr ""
+"Le \"host_name\" est le nom préféré pour les courriels relatifs à mailman "
+"sur cet hôte\n"
+"Il devra en général être l'adresse du serveur de messagerie, s'il en est. Ce "
+"paramètre peut être\n"
+"utilisé pour choisir l'un des noms d'un hôte disposant de plusieurs adresses."
+
+#: Mailman/Gui/General.py:374
+msgid ""
+"Should messages from this mailing list include the\n"
+" <a href=\"http://www.faqs.org/rfcs/rfc2369.html\">RFC 2369</"
+"a>\n"
+" (i.e. <tt>List-*</tt>) headers? <em>Yes</em> is highly\n"
+" recommended."
+msgstr ""
+"Les messages transmis par cette liste doivent-ils contenir <a\n"
+"href=\"http://www.faqs.org/rfc/rfc2369.html\">Les en-têtes RFC 2369</a>\n"
+"(i.e. les en-têtes <tt>List-*</tt>?) <em>Oui</em> est fortement\n"
+"recommandé."
+
+#: Mailman/Gui/General.py:379
+msgid ""
+"RFC 2369 defines a set of List-* headers that are\n"
+" normally added to every message sent to the list "
+"membership.\n"
+" These greatly aid end-users who are using standards "
+"compliant\n"
+" mail readers. They should normally always be enabled.\n"
+"\n"
+" <p>However, not all mail readers are standards compliant "
+"yet,\n"
+" and if you have a large number of members who are using\n"
+" non-compliant mail readers, they may be annoyed at these\n"
+" headers. You should first try to educate your members as "
+"to\n"
+" why these headers exist, and how to hide them in their "
+"mail\n"
+" clients. As a last resort you can disable these headers, "
+"but\n"
+" this is not recommended (and in fact, your ability to "
+"disable\n"
+" these headers may eventually go away)."
+msgstr ""
+"La RFC 2369 définit un ensemble d'en-têtes List-* normalement ajoutés\n"
+"à chaque message transmis par la liste à ses abonnés. Cela rend un\n"
+"service considérable aux utilisateurs finaux qui utilisent des\n"
+"lecteurs de courriels respectant les standards. Ces en-têtes doivent\n"
+"être, en principe, toujours activés.\n"
+"\n"
+"<p>Tous les lecteurs de courriels ne respectent hélas pas les\n"
+"standards, ainsi, si vous avez un grand nombre d'abonnés utilisant de\n"
+"tels lecteurs, il pourraient être ennuyés pas ces en-têtes. Vous\n"
+"devrez commencer par sensibiliser vos abonnés, en leurs expliquant le\n"
+"pourquoi de ces en-têtes et des méthodes éventuelles pour ne pas les\n"
+"faire apparaître avec leurs lecteurs de courriels. Comme dernier\n"
+"recours, vous pourrez désactiver ces en-têtes, mais retenez que cela\n"
+"n'est pas recommandé (qui plus est, cette possibilité pourrait vous être "
+"ôtée\n"
+"un jour ou l'autre)."
+
+#: Mailman/Gui/General.py:397
+msgid "Should postings include the <tt>List-Post:</tt> header?"
+msgstr ""
+"Les envois doivent-ils contenir les en-têtes\n"
+"<tt>List-Post:</tt>?"
+
+#: Mailman/Gui/General.py:398
+msgid ""
+"The <tt>List-Post:</tt> header is one of the headers\n"
+" recommended by\n"
+" <a href=\"http://www.faqs.org/rfcs/rfc2369.html\">RFC 2369</"
+"a>.\n"
+" However for some <em>announce-only</em> mailing lists, only a\n"
+" very select group of people are allowed to post to the list; "
+"the\n"
+" general membership is usually not allowed to post. For lists "
+"of\n"
+" this nature, the <tt>List-Post:</tt> header is misleading.\n"
+" Select <em>No</em> to disable the inclusion of this header. "
+"(This\n"
+" does not affect the inclusion of the other <tt>List-*:</tt>\n"
+" headers.)"
+msgstr ""
+"L'en-tête <tt>List-Post:</tt> fait partie des en-têtes recommandés\n"
+"par la <a href=\"http://www.faqs.org/rfc/rfc2369.html\">RFC\n"
+"2369</a>. Toutefois, pour certaines listes spécialisées pour\n"
+"<em>l'annonce</em> uniquement, seul un nombre restreint d'individus\n"
+"est autorisé à poster sur la liste; les abonnés ordinaires ne sont en\n"
+"général pas autorisés à poster sur la liste. Pour les listes comme\n"
+"celle-là, les en-têtes <tt>List-Post:</tt> peuvent induire les abonnés\n"
+"en erreur. Choisissez <em>Non</em> pour désactiver l'inclusion de cette\n"
+"en-tête. (Cela n'affectera pas l'inclusion des autres en-têtes\n"
+"<tt>List-*:</tt>.)"
+
+#: Mailman/Gui/General.py:416
+msgid ""
+"<b>real_name</b> attribute not\n"
+" changed! It must differ from the list's name by case\n"
+" only."
+msgstr ""
+"<b>nom_réel</b> attribut non modifé!\n"
+"\tIl ne peut être différent du nom de la liste que par la casse."
+
+#: Mailman/Gui/General.py:437
+msgid ""
+"You cannot add a Reply-To: to an explicit\n"
+" address if that address is blank. Resetting these values."
+msgstr ""
+"Vous ne pouvez pas ajouter un Reply-To: à une adresse explicite si\n"
+"celle-ci est vide. Retour aux valeurs initiales."
+
+#: Mailman/Gui/Language.py:34
+msgid "Language&nbsp;options"
+msgstr "Options&nbsp;de&nbsp;langue"
+
+#: Mailman/Gui/Language.py:66
+msgid "Natural language (internationalization) options."
+msgstr "Options de langue naturelle (internationalisation)"
+
+#: Mailman/Gui/Language.py:71
+msgid "Default language for this list."
+msgstr "Langue par défaut pour cette liste."
+
+#: Mailman/Gui/Language.py:72
+msgid ""
+"This is the default natural language for this mailing list.\n"
+" If <a href=\"?VARHELP=language/available_languages\">more than "
+"one\n"
+" language</a> is supported then users will be able to select "
+"their\n"
+" own preferences for when they interact with the list. All "
+"other\n"
+" interactions will be conducted in the default language. This\n"
+" applies to both web-based and email-based messages, but not to\n"
+" email posted by list members."
+msgstr ""
+"Ceci est la langue naturelle par défaut de cette liste de diffusion.\n"
+"Si <a href=\"?VARHELP=language/available_languages\">plusieurs\n"
+"langues</a> sont gérées, alors les utilisateurs pourront choisir leur\n"
+"langue préférée pour les interactions avec la liste. Toutes les\n"
+"autres interaction se feront dans la langue par défaut. Cela\n"
+"s'applique aussi bien aux interfaces web que courriel mais\n"
+"pas aux messages soumis par les abonnés."
+
+#: Mailman/Gui/Language.py:82
+msgid "Languages supported by this list."
+msgstr "Langues gérées par cette liste."
+
+#: Mailman/Gui/Language.py:84
+msgid ""
+"These are all the natural languages supported by this list.\n"
+" Note that the\n"
+" <a href=\"?VARHELP=language/preferred_language\">default\n"
+" language</a> must be included."
+msgstr ""
+"Ceci est la liste de toute les langues gérées par cette liste. Notez\n"
+"que la <a href=\"?VARHELP=language/preferred_language\">langue par\n"
+"défaut</a> doit être présente."
+
+#: Mailman/Gui/Language.py:90
+msgid "Always"
+msgstr "Toujours"
+
+#: Mailman/Gui/Language.py:90
+msgid "As needed"
+msgstr "Au besoin"
+
+#: Mailman/Gui/Language.py:90
+msgid "Never"
+msgstr "Jamais"
+
+#: Mailman/Gui/Language.py:91
+msgid ""
+"Encode the\n"
+" <a href=\"?VARHELP=general/subject_prefix\">subject\n"
+" prefix</a> even when it consists of only ASCII characters?"
+msgstr ""
+"Encoder le <a href=\"?VARHELP=general/subject_prefix\">préfixe de\n"
+"l'objet</a> même si les caractères sont tous ASCII?"
+
+#: Mailman/Gui/Language.py:95
+msgid ""
+"If your mailing list's default language uses a non-ASCII\n"
+" character set and the prefix contains non-ASCII characters, "
+"the\n"
+" prefix will always be encoded according to the relevant\n"
+" standards. However, if your prefix contains only ASCII\n"
+" characters, you may want to set this option to <em>Never</em> "
+"to\n"
+" disable prefix encoding. This can make the subject headers\n"
+" slightly more readable for users with mail readers that don't\n"
+" properly handle non-ASCII encodings.\n"
+"\n"
+" <p>Note however, that if your mailing list receives both "
+"encoded\n"
+" and unencoded subject headers, you might want to choose <em>As\n"
+" needed</em>. Using this setting, Mailman will not encode "
+"ASCII\n"
+" prefixes when the rest of the header contains only ASCII\n"
+" characters, but if the original header contains non-ASCII\n"
+" characters, it will encode the prefix. This avoids an "
+"ambiguity\n"
+" in the standards which could cause some mail readers to "
+"display\n"
+" extra, or missing spaces between the prefix and the original\n"
+" header."
+msgstr ""
+"Si la langue par défaut de votre liste de diffusion utilise des\n"
+"caractères non ASCII, le préfixe sera toujours encodé en conformité\n"
+"avec le standard approprié. Toutefois, si votre préfixe ne contient\n"
+"que des caractères ASCII, vous devrez choisir <em>Jamais</em> pour\n"
+"désactiver l'encodage du préfixe. Ceci peut rendre l'en-tête objet un\n"
+"peu plus lisible pour les utilisateurs dont le lecteur de courriel ne\n"
+"gère pas correctement les encodages non ASCII.\n"
+"\n"
+"<p>Notez toutefois que si votre liste reçoit aussi bien des en-têtes\n"
+"objet encodés que non-encodés, vous devrez sélectionner <em>Au\n"
+"besoin</em>. Avec ce paramètrage, Mailman n'encodera pas les préfixes\n"
+"lorsque le reste des en-têtes ne contiennent que des caractères ASCII\n"
+"et il l'encodera lorsque les en-têtes originaux contiennent des\n"
+"caractères non ASCII. Ceci résout une ambiguïté dans les standards qui\n"
+"pourrait faire que certains lecteurs de courriel affiche des extra\n"
+"espaces entre le préfixe et l'en-tête original."
+
+#: Mailman/Gui/Membership.py:26
+msgid "Membership&nbsp;Management"
+msgstr "Gestion&nbsp;des&nbsp;abonnements"
+
+#: Mailman/Gui/Membership.py:30
+msgid "Membership&nbsp;List"
+msgstr "Liste&nbsp;des&nbsp;abonnements"
+
+#: Mailman/Gui/Membership.py:31
+msgid "Mass&nbsp;Subscription"
+msgstr "Abonnement&nbsp;en&nbsp;bloc"
+
+#: Mailman/Gui/Membership.py:32
+msgid "Mass&nbsp;Removal"
+msgstr "Suppression&nbsp;en&nbsp;masse"
+
+#: Mailman/Gui/NonDigest.py:34
+msgid "Non-digest&nbsp;options"
+msgstr "Options&nbsp;de&nbsp;remises&nbsp;Non-groupées"
+
+#: Mailman/Gui/NonDigest.py:42
+msgid "Policies concerning immediately delivered list traffic."
+msgstr "Règles concernant le trafic de liste immédiatement délivré."
+
+#: Mailman/Gui/NonDigest.py:45
+msgid ""
+"Can subscribers choose to receive mail immediately, rather\n"
+" than in batched digests?"
+msgstr ""
+"Est ce que les abonnés ont le droit de choisir de recevoir les courriel\n"
+"\timmédiatement au lieu de les avoir par lots?"
+
+#: Mailman/Gui/NonDigest.py:52
+msgid "Full Personalization"
+msgstr "Personnalisation complète"
+
+#: Mailman/Gui/NonDigest.py:54
+msgid ""
+"Should Mailman personalize each non-digest delivery?\n"
+" This is often useful for announce-only lists, but <a\n"
+" href=\"?VARHELP=nondigest/personalize\">read the details</"
+"a>\n"
+" section for a discussion of important performance\n"
+" issues."
+msgstr ""
+"Mailman doit-il personnaliser chaque message normal remis? Ceci est\n"
+"généralement utile pour les listes d'annonces, <a\n"
+"href=\"?VARHELP=nondigest/personalize\">lisez</a> les commentaires liés\n"
+"aux problèmes de performances."
+
+#: Mailman/Gui/NonDigest.py:60
+msgid ""
+"Normally, Mailman sends the regular delivery messages to\n"
+" the mail server in batches. This is much more efficent\n"
+" because it reduces the amount of traffic between Mailman "
+"and\n"
+" the mail server.\n"
+"\n"
+" <p>However, some lists can benefit from a more "
+"personalized\n"
+" approach. In this case, Mailman crafts a new message for\n"
+" each member on the regular delivery list. Turning this\n"
+" feature on may degrade the performance of your site, so "
+"you\n"
+" need to carefully consider whether the trade-off is worth "
+"it,\n"
+" or whether there are other ways to accomplish what you "
+"want.\n"
+" You should also carefully monitor your system load to make\n"
+" sure it is acceptable.\n"
+"\n"
+" <p>Select <em>No</em> to disable personalization and send\n"
+" messages to the members in batches. Select <em>Yes</em> "
+"to\n"
+" personalize deliveries and allow additional substitution\n"
+" variables in message headers and footers (see below). In\n"
+" addition, by selecting <em>Full Personalization</em>, the\n"
+" <code>To</code> header of posted messages will be modified "
+"to\n"
+" include the member's address instead of the list's posting\n"
+" address.\n"
+"\n"
+" <p>When personalization is enabled, a few more expansion\n"
+" variables that can be included in the <a\n"
+" href=\"?VARHELP=nondigest/msg_header\">message header</a> "
+"and\n"
+" <a href=\"?VARHELP=nondigest/msg_footer\">message footer</"
+"a>.\n"
+"\n"
+" <p>These additional substitution variables will be "
+"available\n"
+" for your headers and footers, when this feature is "
+"enabled:\n"
+"\n"
+" <ul><li><b>user_address</b> - The address of the user,\n"
+" coerced to lower case.\n"
+" <li><b>user_delivered_to</b> - The case-preserved "
+"address\n"
+" that the user is subscribed with.\n"
+" <li><b>user_password</b> - The user's password.\n"
+" <li><b>user_name</b> - The user's full name.\n"
+" <li><b>user_optionsurl</b> - The url to the user's "
+"option\n"
+" page.\n"
+" </ul>\n"
+" "
+msgstr ""
+"En principe, Mailman envoie les messages normaux par batch vers le\n"
+"serveur de messagerie. C'est le fonctionnement le plus optimal dans la "
+"mesure où le\n"
+"trafic entre Mailman et le serveur de messagerie s'en trouve réduit.\n"
+"\n"
+"<p>Certaines listes pourraient gagner à considérer une approche\n"
+"beaucoup plus spécifique. Dans ce cas, Mailman génère un nouveau\n"
+"message pour chaque abonné avec l'option de remise normale. Activer\n"
+"cette option pourrait réduire les performances sur votre site, vous\n"
+"devez donc voir si ce compromis en vaut la peine ou si d'autres\n"
+"solutions plus appropriées sont préférables. Vous devriez également\n"
+"évaluer la charge de votre système pour voir si cette elle est\n"
+"acceptable.\n"
+"\n"
+"<p>Lorsque les listes personnalisées sont activées, deux choses se\n"
+"produisent.\n"
+"Premièrement, l'en-tête <code>A:</code> du message envoyé est modifié\n"
+"en fonction de chaque utilisateur. i.e. que le message apparaît comme\n"
+"étant destiné à l'abonné en lieu et place de la liste.\n"
+"\n"
+"<p>Deuxièmement, quelques autres variables de remplacement pouvant\n"
+"être ajoutées au <a href=\"?VARHELP=nondigest/msg_header\">sommet du\n"
+"message</a> et au <a href=\"?VARHELP=nondigest/msg_footer\">pied de\n"
+"page du message sont disponibles.\n"
+"\n"
+"<p>Ces variables complémentaires de substitution seront disponibles\n"
+"pour le sommet et le bas de page de votre message lorsque cette option\n"
+"est active:\n"
+"\n"
+"<ul><li><b>user_address</b> - L'adresse de l'utilisateur en minuscule.\n"
+" <li><b>user_delivered_to</b> - L'adresse d'abonnement de\n"
+"l'utilisateur avec la casse préservée.\n"
+" <li><b>user_optionsurl</b> - L'url de la page info de\n"
+"l'utilisateur.\n"
+" "
+
+#: Mailman/Gui/NonDigest.py:108
+msgid "Header added to mail sent to regular list members"
+msgstr "En-tête ajouté aux messages envoyés aux abonnés réguliers"
+
+#: Mailman/Gui/NonDigest.py:109
+msgid ""
+"Text prepended to the top of every immediately-delivery\n"
+" message. "
+msgstr "Texte ajouté au debut de tout message à émission immédiate."
+
+#: Mailman/Gui/NonDigest.py:114
+msgid "Footer added to mail sent to regular list members"
+msgstr ""
+"Les pieds de page sont ajoutés aux messages envoyés par les membres "
+"réguliers de la liste."
+
+#: Mailman/Gui/NonDigest.py:115
+msgid ""
+"Text appended to the bottom of every immediately-delivery\n"
+" message. "
+msgstr "Texte ajouté au bas de chaque message à remise immédiate."
+
+#: Mailman/Gui/Passwords.py:27
+msgid "Passwords"
+msgstr "Mots de passe"
+
+#: Mailman/Gui/Privacy.py:28
+msgid "Privacy options"
+msgstr "Options de confidentialité"
+
+#: Mailman/Gui/Privacy.py:32
+msgid "Subscription&nbsp;rules"
+msgstr "Règles&nbsp;d'abonnement"
+
+#: Mailman/Gui/Privacy.py:33
+msgid "Sender&nbsp;filters"
+msgstr "Filtres&nbsp;expéditeur"
+
+#: Mailman/Gui/Privacy.py:34
+msgid "Recipient&nbsp;filters"
+msgstr "Filtres&nbsp;destinataire"
+
+#: Mailman/Gui/Privacy.py:35
+msgid "Spam&nbsp;filters"
+msgstr "Filtres&nbsp;spam"
+
+#: Mailman/Gui/Privacy.py:49 Mailman/Gui/Usenet.py:61
+msgid "None"
+msgstr "Aucun"
+
+#: Mailman/Gui/Privacy.py:50 Mailman/Gui/Privacy.py:73
+msgid "Confirm"
+msgstr "Confirmer"
+
+#: Mailman/Gui/Privacy.py:51 Mailman/Gui/Privacy.py:74
+msgid "Require approval"
+msgstr "Nécessite une approbation"
+
+#: Mailman/Gui/Privacy.py:52 Mailman/Gui/Privacy.py:75
+msgid "Confirm and approve"
+msgstr "Confirmer et approuver"
+
+#: Mailman/Gui/Privacy.py:54 Mailman/Gui/Privacy.py:77
+msgid "What steps are required for subscription?<br>"
+msgstr "Quelles sont les étapes requises pour un abonnement?<br>"
+
+#: Mailman/Gui/Privacy.py:55
+msgid ""
+"None - no verification steps (<em>Not\n"
+" Recommended </em>)<br>\n"
+" Confirm (*) - email confirmation step required "
+"<br>\n"
+" Require approval - require list administrator\n"
+" Approval for subscriptions <br>\n"
+" Confirm and approve - both confirm and approve\n"
+" \n"
+" <p>(*) when someone requests a subscription,\n"
+" Mailman sends them a notice with a unique\n"
+" subscription request number that they must reply "
+"to\n"
+" in order to subscribe.<br>\n"
+"\n"
+" This prevents mischievous (or malicious) people\n"
+" from creating subscriptions for others without\n"
+" their consent."
+msgstr ""
+"Aucune - pas de vérification (<em>Non recommandé</em>)<br>\n"
+"\t\t\tConfirmer(*) - confirmation courriel requise<br>\n"
+"\t\t\tNécessite l'approbation - nécessite l'approbation de\n"
+"\t\t\tl'administrateur de la liste pour l'abonnement<br>\n"
+"\t\t\tConfirmer et approuver - confirmation et approbation\n"
+"\t\t\t\n"
+"\t\t\t<p>(*) lorsqu'un abonnement est demandé, Mailman envoie\n"
+"\t\t\ten retour un avis avec un numéro unique de demande\n"
+"\t\t\td'abonnement, message pour lequel une réponse est attendue pour\n"
+"\t\t\tque l'abonnement soit validée.<br> \n"
+"\n"
+" Ceci empêche les\n"
+"\t\t\tpersonnes malveillantes d'abonner des personnes\n"
+"\t\t\tà leur insu."
+
+#: Mailman/Gui/Privacy.py:78
+msgid ""
+"Confirm (*) - email confirmation required <br>\n"
+" Require approval - require list administrator\n"
+" approval for subscriptions <br>\n"
+" Confirm and approve - both confirm and approve\n"
+" \n"
+" <p>(*) when someone requests a subscription,\n"
+" Mailman sends them a notice with a unique\n"
+" subscription request number that they must reply "
+"to\n"
+" in order to subscribe.<br> This prevents\n"
+" mischievous (or malicious) people from creating\n"
+" subscriptions for others without their consent."
+msgstr ""
+"Confirmer(*) - confirmation courriel requise<br>\n"
+"\t\t\tNécessite l'approbation - nécessite l'approbation de\n"
+"\t\t\tl'administrateur de la liste pour l'abonnement<br>\n"
+"\t\t\tConfirmer et approuver - confirmation et approbation\n"
+"\t\t\t\n"
+"\t\t\t<p>(*) lorsqu'un abonnement est demandé, Mailman envoie\n"
+"\t\t\ten retour un avis avec un numéro unique de demande\n"
+"\t\t\td'abonnement, message pour lequel une réponse est attendue\n"
+"\t\t\tpour que l'inscription soit validée.<br> Ceci empêche les\n"
+"\t\t\tpersonnes malveillantes d'abonner des personnes\n"
+"\t\t\tà leur insu."
+
+#: Mailman/Gui/Privacy.py:94
+msgid ""
+"This section allows you to configure subscription and\n"
+" membership exposure policy. You can also control whether this\n"
+" list is public or not. See also the\n"
+" <a href=\"%(admin)s/archive\">Archival Options</a> section for\n"
+" separate archive-related privacy settings."
+msgstr ""
+"Cette section vous permet de configurer les règles d'abonnement et\n"
+"d'exposition des abonnés. Vous pourrez également contrôler le\n"
+"caractère publique ou non de cette liste. Voyez également la section\n"
+"<a href=\"%(admin)s/archive\">Options d'Archivage</a> pour d'autres\n"
+"options de confidentialité relatives à l'archivage."
+
+#: Mailman/Gui/Privacy.py:100
+msgid "Subscribing"
+msgstr "Abonnement en cours"
+
+#: Mailman/Gui/Privacy.py:102
+msgid ""
+"Advertise this list when people ask what lists are on this\n"
+" machine?"
+msgstr ""
+"Afficher cette liste lorqu'on demande les listes hébérgées par cette machine?"
+
+#: Mailman/Gui/Privacy.py:108
+msgid ""
+"Is the list moderator's approval required for unsubscription\n"
+" requests? (<em>No</em> is recommended)"
+msgstr ""
+"L'approbation du modérateur de la liste est nécessaire pour les\n"
+"demande de résiliation? (<em>Non</em> est recommandé)"
+
+#: Mailman/Gui/Privacy.py:111
+msgid ""
+"When members want to leave a list, they will make an\n"
+" unsubscription request, either via the web or via email.\n"
+" Normally it is best for you to allow open unsubscriptions so "
+"that\n"
+" users can easily remove themselves from mailing lists (they "
+"get\n"
+" really upset if they can't get off lists!).\n"
+"\n"
+" <p>For some lists though, you may want to impose moderator\n"
+" approval before an unsubscription request is processed. "
+"Examples\n"
+" of such lists include a corporate mailing list that all "
+"employees\n"
+" are required to be members of."
+msgstr ""
+"Lorsque les abonnés veulent quitter une liste, ils font une demande\n"
+"de résiliation par courriel, soit par l'interface web, soir par\n"
+"l'interface courriel. En principe, il est préférable pour votre\n"
+"confort de permettre les demandes automatiques de résiliation, ainsi\n"
+"les utilisateurs peuvent quitter votre liste sans difficultés\n"
+"(ils sont vraiment contrariés lorsqu'ils ne peuvent pas\n"
+"quitter une liste!).\n"
+"\n"
+"<p>Pour certaines listes vous pourrez désirer l'approbation\n"
+"d'un modérateur avant qu'une demande de résiliation ne soit traitée. \n"
+"Parmi de telles listes on peut citer les listes d'entreprises dans\n"
+"lesquelles tous les employés doivent être abonnés."
+
+#: Mailman/Gui/Privacy.py:122
+msgid "Ban list"
+msgstr "Liste des proscrits"
+
+#: Mailman/Gui/Privacy.py:124
+msgid ""
+"List of addresses which are banned from membership in this\n"
+" mailing list."
+msgstr "Liste des adresses dont l'abonnement est banni de cette liste."
+
+#: Mailman/Gui/Privacy.py:127
+msgid ""
+"Addresses in this list are banned outright from subscribing\n"
+" to this mailing list, with no further moderation required. "
+"Add\n"
+" addresses one per line; start the line with a ^ character to\n"
+" designate a regular expression match."
+msgstr ""
+"Les adresses contenues dans cette liste sont interdites d'abonnement\n"
+"sans autre forme de procès. Ajouter les adresses, une par ligne;\n"
+"commencez la ligne avec le caractère ^ pour désigner une comparaison\n"
+"avec une expression régulière."
+
+#: Mailman/Gui/Privacy.py:132
+msgid "Membership exposure"
+msgstr "Exposition de l'abonnement"
+
+#: Mailman/Gui/Privacy.py:134
+msgid "Anyone"
+msgstr "Quiconque"
+
+#: Mailman/Gui/Privacy.py:134
+msgid "List admin only"
+msgstr "Uniquement pour l'admin de la liste"
+
+#: Mailman/Gui/Privacy.py:134
+msgid "List members"
+msgstr "Abonnés de la liste"
+
+#: Mailman/Gui/Privacy.py:135
+msgid "Who can view subscription list?"
+msgstr "Qui peut voir la liste des abonnés?"
+
+#: Mailman/Gui/Privacy.py:137
+msgid ""
+"When set, the list of subscribers is protected by member or\n"
+" admin password authentication."
+msgstr ""
+"Lorsqu'il est défini, l'affichage de la liste des abonnés\n"
+"\t\trequiert la fourniture du mot de passe administrateur\n"
+"\t\tou abonné."
+
+#: Mailman/Gui/Privacy.py:141
+msgid ""
+"Show member addresses so they're not directly recognizable\n"
+" as email addresses?"
+msgstr ""
+"Afficher les adresses des abonnés de façon à ce qu'elles n'apparaissent pas "
+"comme des adresses courriels?"
+
+#: Mailman/Gui/Privacy.py:143
+msgid ""
+"Setting this option causes member email addresses to be\n"
+" transformed when they are presented on list web pages (both in\n"
+" text and as links), so they're not trivially recognizable as\n"
+" email addresses. The intention is to prevent the addresses\n"
+" from being snarfed up by automated web scanners for use by\n"
+" spammers."
+msgstr ""
+"L'activation de cette option à pour effet de transformer\n"
+"\tles adresses des abonnées avant leur affichage\n"
+"\tdans les pages web (aussi bien comme texte que comme liens),\n"
+"\tainsi, elles ne seront pas reconnues de façon triviale comme des\n"
+"\tadresses courriels valides. Le but de la manoeuvre est\n"
+"\td'empêcher que les scanners web automatiques s'en emparent\n"
+" pour l'usage des spammers."
+
+#: Mailman/Gui/Privacy.py:153
+msgid ""
+"When a message is posted to the list, a series of\n"
+" moderation steps are take to decide whether the a moderator "
+"must\n"
+" first approve the message or not. This section contains the\n"
+" controls for moderation of both member and non-member postings.\n"
+"\n"
+" <p>Member postings are held for moderation if their\n"
+" <b>moderation flag</b> is turned on. You can control whether\n"
+" member postings are moderated by default or not.\n"
+"\n"
+" <p>Non-member postings can be automatically\n"
+" <a href=\"?VARHELP=privacy/sender/accept_these_nonmembers\"\n"
+" >accepted</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/hold_these_nonmembers\">held "
+"for\n"
+" moderation</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/reject_these_nonmembers\"\n"
+" >rejected</a> (bounced), or\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >discarded</a>,\n"
+" either individually or as a group. Any\n"
+" posting from a non-member who is not explicitly accepted,\n"
+" rejected, or discarded, will have their posting filtered by the\n"
+" <a href=\"?VARHELP=privacy/sender/generic_nonmember_action"
+"\">general\n"
+" non-member rules</a>.\n"
+"\n"
+" <p>In the text boxes below, add one address per line; start the\n"
+" line with a ^ character to designate a <a href=\n"
+" \"http://www.python.org/doc/current/lib/module-re.html\"\n"
+" >Python regular expression</a>. When entering backslashes, do "
+"so\n"
+" as if you were using Python raw strings (i.e. you generally "
+"just\n"
+" use a single backslash).\n"
+"\n"
+" <p>Note that non-regexp matches are always done first."
+msgstr ""
+"Lorsqu'un message est posté sur la liste, un ensemble de règles est utilisé\n"
+"pour décider si le message doit d'abord être approuvé par le\n"
+"modérateur ou non. Cette section contient les contrôles pour la\n"
+"modération des messages reçus des abonnés et des non-abonnés.\n"
+"\n"
+"<p>Les envois des abonnés sont mis en attente de modération si\n"
+"leurs <b>bit de modération</b> est activé. Vous pouvez décider du sort\n"
+"réservé par défaut aux envois des abonnés.\n"
+"\n"
+"<p>Les envois des non-abonnés peuvent être automatiquement <a\n"
+"href=\"?VARHELP=privacy/sender/accept_these_nonmembers\">acceptés</a>,\n"
+"ou <a\n"
+"href=\"?VARHELP=privacy/sender/reject_these_nonmembers\">rejetés</a>,\n"
+"(rebonds) ou <a\n"
+"href=\"?VARHELP=privacy/sender/discard_these_nonmembers\">ignorés</a>\n"
+"soit individuellement, soit par groupe. Tout message en provenance d'un\n"
+"non-abonné non explicitement accepté, rejeté ou ignoré devra subir\n"
+"les filtres définis par les <a\n"
+"href=\"?VARHELP=privacy/sender/generic_nonmember_action\">règles\n"
+"générales des non-abonnés</a>.\n"
+"\n"
+"<p>Dans la zone de texte ci-dessous, ajouter une adresse par ligne;\n"
+"commencez la ligne avec le caractère ^ pour designer une <a\n"
+"href=\"http://www.python.org/doc/current/lib/module-re.html\">expression\n"
+"régulière Python</a>. Si vous utilisez des backslashe, faites-le comme\n"
+"si vous utilisiez des chaînes Python brutes (i.e. en utilisant un seul\n"
+"backslash).\n"
+"\n"
+"<p>Notez que les comparaison non-regexp sont prioritaires."
+
+#: Mailman/Gui/Privacy.py:186
+msgid "Member filters"
+msgstr "Filtres d'abonné"
+
+#: Mailman/Gui/Privacy.py:189
+msgid "By default, should new list member postings be moderated?"
+msgstr ""
+"Les envois des nouveaux abonnés doivent être modérés par\n"
+"défaut?"
+
+#: Mailman/Gui/Privacy.py:191
+msgid ""
+"Each list member has a <em>moderation flag</em> which says\n"
+" whether messages from the list member can be posted directly "
+"to\n"
+" the list, or must first be approved by the list moderator. "
+"When\n"
+" the moderation flag is turned on, list member postings must be\n"
+" approved first. You, the list administrator can decide whether "
+"a\n"
+" specific individual's postings will be moderated or not.\n"
+"\n"
+" <p>When a new member is subscribed, their initial moderation "
+"flag\n"
+" takes its value from this option. Turn this option off to "
+"accept\n"
+" member postings by default. Turn this option on to, by "
+"default,\n"
+" moderate member postings first. You can always manually set "
+"an\n"
+" individual member's moderation bit by using the\n"
+" <a href=\"%(adminurl)s/members\">membership management\n"
+" screens</a>."
+msgstr ""
+"Chaque abonné possède un <em>bit de modération</em> qui précise si les\n"
+"messages soumis par l'abonné doivent être directement remis à la liste\n"
+"ou si ils doivent être soumis à l'approbation d'un modérateur de\n"
+"liste. Lorsque ce bit est activé, les soumissions de l'abonné doivent\n"
+"être approuvées avant d'être distribuées. En tant qu'administrateur,\n"
+"vous pouvez décider du sort des messages d'un abonné.\n"
+"\n"
+"<p>Pour un nouvel abonné, le bit de modération correspond à la valeur\n"
+"que vous précisez ici. Désactivez cette option pour permettre les\n"
+"envois sans modération par défaut. Activez cette option pour que\n"
+"le comportement par défaut soit la modération des messages. Vous\n"
+"pourrez toujours changer le bit de modération d'un abonné en utilisant\n"
+"la fenêtre de <a href=\"%(adminurl)s/members\">gestion des\n"
+"abonnements</a>."
+
+#: Mailman/Gui/Privacy.py:207 Mailman/Gui/Privacy.py:281
+msgid "Hold"
+msgstr "En attente"
+
+#: Mailman/Gui/Privacy.py:208
+msgid ""
+"Action to take when a moderated member posts to the\n"
+" list."
+msgstr ""
+"Mesure à prendre lorsqu'un abonné sous modération envoit un message à\n"
+"liste."
+
+#: Mailman/Gui/Privacy.py:210
+msgid ""
+"<ul><li><b>Hold</b> -- this holds the message for approval\n"
+" by the list moderators.\n"
+"\n"
+" <p><li><b>Reject</b> -- this automatically rejects the message "
+"by\n"
+" sending a bounce notice to the post's author. The text of the\n"
+" bounce notice can be <a\n"
+" href=\"?VARHELP=privacy/sender/member_moderation_notice\"\n"
+" >configured by you</a>.\n"
+"\n"
+" <p><li><b>Discard</b> -- this simply discards the message, "
+"with\n"
+" no notice sent to the post's author.\n"
+" </ul>"
+msgstr ""
+"<ul><li><b>En attente</b> -- Le message est mis en attente\n"
+" d'approbation par le modérateur de la liste.\n"
+"\n"
+" <p><li><b>Rejeter</b> -- Rejetter automatiquement le\n"
+" message en envoyant un avis de rebond à l'auteur de la\n"
+" soumission. <a\n"
+" href=\"?VARHELP=privacy/sender/member_moderation_notice\">Vous\n"
+" pouvez configurer</a> le texte de l'avis de rebond.\n"
+"\n"
+" <p><li><b>Ignorer</b> -- Ignorer tout simplement le\n"
+" message sans rien envoyer en retour à son auteur.\n"
+"\n"
+" </ul>"
+
+#: Mailman/Gui/Privacy.py:224
+msgid ""
+"Text to include in any\n"
+" <a href=\"?VARHELP/privacy/sender/member_moderation_action\"\n"
+" >rejection notice</a> to\n"
+" be sent to moderated members who post to this list."
+msgstr ""
+"Texte à inclure dans les <a\n"
+"href=\"?VARHELP/privacy/sender/member_moderation_action\">avis de\n"
+"rejet</a> à envoyer aux abonnés sous modération ayant soumis un\n"
+"message à la liste."
+
+#: Mailman/Gui/Privacy.py:229
+msgid "Non-member filters"
+msgstr "Filtres de non-abonné"
+
+#: Mailman/Gui/Privacy.py:232
+msgid ""
+"List of non-member addresses whose postings should be\n"
+" automatically accepted."
+msgstr ""
+"Liste des adresses des non-abonnés dont les envois doivent\n"
+"automatiquement être acceptés."
+
+#: Mailman/Gui/Privacy.py:235
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" accepted with no further moderation applied. Add member\n"
+" addresses one per line; start the line with a ^ character to\n"
+" designate a regular expression match."
+msgstr ""
+"Tous les envois provenant de ces non-abonnés seront automatiquement\n"
+"acceptés sans autre forme de procès. Ajouter les adresses des abonnés,\n"
+"une par ligne; commencez la ligne avec le caractère ^ pour désigner\n"
+"une expression régulière."
+
+#: Mailman/Gui/Privacy.py:241
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" immediately held for moderation."
+msgstr ""
+"Liste des adresses des non-abonnés dont les envois doivent\n"
+"automatiquement être mis en attente de modération."
+
+#: Mailman/Gui/Privacy.py:244
+msgid ""
+"Postings from any of these non-members will be immediately\n"
+" and automatically held for moderation by the list moderators.\n"
+" The sender will receive a notification message which will "
+"allow\n"
+" them to cancel their held message. Add member addresses one "
+"per\n"
+" line; start the line with a ^ character to designate a regular\n"
+" expression match."
+msgstr ""
+"Tous les envois provenance de ces non-abonnés seront immédiatement\n"
+"mis en attente de modération par les modérateurs de la liste. L'\n"
+"expéditeur recevra un message lui permettant d'annuler le message\n"
+"mis en attente. Ajouter les adresses des abonnés, une par ligne;\n"
+"commencez la ligne avec le caractère ^ pour désigner une expression\n"
+"régulière."
+
+#: Mailman/Gui/Privacy.py:252
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" automatically rejected."
+msgstr ""
+"Liste des adresses des non-abonnés dont les envois seront\n"
+"automatiquement rejetés."
+
+#: Mailman/Gui/Privacy.py:255
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" rejected. In other words, their messages will be bounced back "
+"to\n"
+" the sender with a notification of automatic rejection. This\n"
+" option is not appropriate for known spam senders; their "
+"messages\n"
+" should be\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >automatically discarded</a>.\n"
+"\n"
+" <p>Add member addresses one per line; start the line with a ^\n"
+" character to designate a regular expression match."
+msgstr ""
+"Tous les envois provenant de ces non-abonnés seront automatiquement\n"
+"rejetés. Autrement dit, les messages seront automatiquement\n"
+"retournés avec un avis de rejet automatique. Cette option n'est pas\n"
+"appropriée pour les spammers connus; leurs messages doivent être <a\n"
+"href=\"?VARHELP=privacy/sender/discard_these_nonmembers\">automatiquement\n"
+"ignorées</a>.\n"
+"\n"
+"<p>Ajouter les adresses des abonnés, une par ligne;\n"
+"commencez la ligne avec le caractère ^ pour désigner une expression\n"
+"régulière."
+
+#: Mailman/Gui/Privacy.py:267
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" automatically discarded."
+msgstr ""
+"Liste des adresses des non-abonnés dont les envois doivent être\n"
+"automatiquement ignorés."
+
+#: Mailman/Gui/Privacy.py:270
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" discarded. That is, the message will be thrown away with no\n"
+" further processing or notification. The sender will not "
+"receive\n"
+" a notification or a bounce, however the list moderators can\n"
+" optionally <a href=\"?VARHELP=privacy/sender/"
+"forward_auto_discards\"\n"
+" >receive copies of auto-discarded messages.</a>.\n"
+"\n"
+" <p>Add member addresses one per line; start the line with a ^\n"
+" character to designate a regular expression match."
+msgstr ""
+"Tous les messages provenant de ces non-abonnés seront automatiquement\n"
+"ignorés. Autrement dit, les messages seront jetés\n"
+"sans autre forme de procès. L'expéditeur ne recevra ni avis ni rebond,\n"
+"toutefois, l'administrateur pourra, s'il le désire, <a\n"
+"href=\"?VARHELP=privacy/sender/forward_auto_discards\">recevoir des\n"
+"copies de ces messages.</a><\n"
+"\n"
+"<p>Ajouter les adresses des abonnés, une par ligne; commencez la ligne\n"
+"avec le caractère ^ pour désigner une expression régulière."
+
+#: Mailman/Gui/Privacy.py:282
+msgid ""
+"Action to take for postings from non-members for which no\n"
+" explicit action is defined."
+msgstr ""
+"Action à entreprendre pour les envois des non-abonnés pour\n"
+"lesquels aucune règle ne s'applique."
+
+#: Mailman/Gui/Privacy.py:285
+msgid ""
+"When a post from a non-member is received, the message's\n"
+" sender is matched against the list of explicitly\n"
+" <a href=\"?VARHELP=privacy/sender/accept_these_nonmembers\"\n"
+" >accepted</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/hold_these_nonmembers\">held</"
+"a>,\n"
+" <a href=\"?VARHELP=privacy/sender/reject_these_nonmembers\"\n"
+" >rejected</a> (bounced), and\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >discarded</a> addresses. If no match is found, then this "
+"action\n"
+" is taken."
+msgstr ""
+"Lorsqu'un message est reçu d'un non-abonné, l'adresse de l'expéditeur\n"
+"est comparée aux adresses <a\n"
+"href=\"?VARHELP=privacy/sender/accept_these_nonmembers\">acceptées</a>,\n"
+"<a href=\"?VARHELP=privacy/sender/hold_these_nonmembers\">mise en\n"
+"attente</a> <a\n"
+"href=\"?VARHELP=privacy/sender/reject_these_nonmembers\">rejetées</a>\n"
+"(rebond), et <a\n"
+"href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+">ignorées</a>. Si aucune adresse ne correspond, cette mesure est\n"
+"prise."
+
+#: Mailman/Gui/Privacy.py:297
+msgid ""
+"Should messages from non-members, which are automatically\n"
+" discarded, be forwarded to the list moderator?"
+msgstr ""
+"Les messages des non-abonnés automatiquement ignorés doivent être\n"
+"transmis au modérateur de la liste?"
+
+#: Mailman/Gui/Privacy.py:303
+msgid ""
+"This section allows you to configure various filters based on\n"
+" the recipient of the message."
+msgstr ""
+"Cette section vous permet de configurer divers filtres basés\n"
+" sur le destinataire du message."
+
+#: Mailman/Gui/Privacy.py:306
+msgid "Recipient filters"
+msgstr "Filtres destinataire"
+
+#: Mailman/Gui/Privacy.py:310
+msgid ""
+"Must posts have list named in destination (to, cc) field\n"
+" (or be among the acceptable alias names, specified below)?"
+msgstr ""
+"Les envois ont le nom de la liste dans le champ\n"
+"destination (ou l'un des alias acceptables spécifiés ci-dessous)?"
+
+#: Mailman/Gui/Privacy.py:313
+msgid ""
+"Many (in fact, most) spams do not explicitly name their\n"
+" myriad destinations in the explicit destination addresses - in\n"
+" fact often the To: field has a totally bogus address for\n"
+" obfuscation. The constraint applies only to the stuff in the\n"
+" address before the '@' sign, but still catches all such spams.\n"
+"\n"
+" <p>The cost is that the list will not accept unhindered any\n"
+" postings relayed from other addresses, unless\n"
+"\n"
+" <ol>\n"
+" <li>The relaying address has the same name, or\n"
+"\n"
+" <li>The relaying address name is included on the options "
+"that\n"
+" specifies acceptable aliases for the list.\n"
+"\n"
+" </ol>"
+msgstr ""
+"Nombre (en fait, la plupart) de spams ne précisent pas nommément\n"
+"\t\tleur pléthore de destinations dans l'adresse de destination - en fait\n"
+"\t\tle champ A: contient souvent une adresse complétement falacieuse\n"
+"\t\tLa contrainte s'applique uniquement au texte précédent le @, mais il "
+"intercepte\n"
+"\t\ttoutefois tous ces types de spams.\n"
+"\n"
+"\t\t<p>Le coût associé est que la liste n'acceptera pas les soumissions "
+"relayées\n"
+"\t\tà partir d'autres adresse, sauf si\n"
+"\t\t<ol>\n"
+"\t\t<li>L'adresse de relais à le même nom, ou\n"
+"\t\t<li>Le nom de l'adresse de relais est l'une des adresses admises comme\n"
+"\t\talias valable pour la liste.\n"
+"\n"
+"\t\t</ol>"
+
+#: Mailman/Gui/Privacy.py:331
+msgid ""
+"Alias names (regexps) which qualify as explicit to or cc\n"
+" destination names for this list."
+msgstr ""
+"Les alias (expressions regulières) considérés comme destinataires\n"
+"\texplicites de type A ou CC pour la liste."
+
+#: Mailman/Gui/Privacy.py:334
+msgid ""
+"Alternate addresses that are acceptable when\n"
+" `require_explicit_destination' is enabled. This option takes "
+"a\n"
+" list of regular expressions, one per line, which is matched\n"
+" against every recipient address in the message. The matching "
+"is\n"
+" performed with Python's re.match() function, meaning they are\n"
+" anchored to the start of the string.\n"
+" \n"
+" <p>For backwards compatibility with Mailman 1.1, if the regexp\n"
+" does not contain an `@', then the pattern is matched against "
+"just\n"
+" the local part of the recipient address. If that match fails, "
+"or\n"
+" if the pattern does contain an `@', then the pattern is "
+"matched\n"
+" against the entire recipient address.\n"
+" \n"
+" <p>Matching against the local part is deprecated; in a future\n"
+" release, the pattern will always be matched against the entire\n"
+" recipient address."
+msgstr ""
+"Adresses acceptables lorsque l'option 'require_explicit_destination' est "
+"active\n"
+"Cette option prend une liste d'expressions regulières, une par ligne,\n"
+"comparées avec chaque adresse destinataire dans le message. La comparaison\n"
+"est effectuée avec la fonction Python re.match(), impliquant un attachement\n"
+"au debut de la chaîne.\n"
+"\n"
+"<p>Pour une compatibilité ascendante avec Mailman 1.1, si l'expression\n"
+"regulière ne contient pas un '@', alors le motif est comparé à la partie\n"
+"locale de l'adresse du destinataire. Si cette comparaison échoue ou si le\n"
+"motif contient un '@', alors le motif est comparé à la totalité de\n"
+"l'adresse du destinataire.\n"
+"\n"
+"La comparaison avec la partie locale est obsolète; pour les publications\n"
+"à venir, le motif sera toujours comparé à la totalité de l'adresse\n"
+"du destinataire."
+
+#: Mailman/Gui/Privacy.py:352
+msgid "Ceiling on acceptable number of recipients for a posting."
+msgstr "Reduction à un nombre acceptable de destinataires pour un envoi."
+
+#: Mailman/Gui/Privacy.py:354
+msgid ""
+"If a posting has this number, or more, of recipients, it is\n"
+" held for admin approval. Use 0 for no ceiling."
+msgstr ""
+"Si un envoi est destiné à au moins autant de destinataires,\n"
+"il est mis en attente d'approbation de l'administrateur.\n"
+"Utilisez 0 pour sans limite."
+
+#: Mailman/Gui/Privacy.py:359
+msgid ""
+"This section allows you to configure various anti-spam\n"
+" filters posting filters, which can help reduce the amount of "
+"spam\n"
+" your list members end up receiving.\n"
+" "
+msgstr ""
+"Cette section vous permet de configurer les divers filtres anti-spam,\n"
+"ce qui permet de réduire les spams que vos abonnés reçoivent."
+
+#: Mailman/Gui/Privacy.py:364
+msgid "Anti-Spam filters"
+msgstr "Filtres Anti-spam"
+
+#: Mailman/Gui/Privacy.py:367
+msgid "Hold posts with header value matching a specified regexp."
+msgstr ""
+"Retenez les envois ayant un en-tête comparable à une expression regulière "
+"déterminée"
+
+#: Mailman/Gui/Privacy.py:368
+msgid ""
+"Use this option to prohibit posts according to specific\n"
+" header values. The target value is a regular-expression for\n"
+" matching against the specified header. The match is done\n"
+" disregarding letter case. Lines beginning with '#' are "
+"ignored\n"
+" as comments.\n"
+"\n"
+" <p>For example:<pre>to: .*@public.com </pre> says to hold all\n"
+" postings with a <em>To:</em> mail header containing '@public."
+"com'\n"
+" anywhere among the addresses.\n"
+"\n"
+" <p>Note that leading whitespace is trimmed from the regexp. "
+"This\n"
+" can be circumvented in a number of ways, e.g. by escaping or\n"
+" bracketing it."
+msgstr ""
+"Utilisez cette option pour interdire les soumissions en fonction d'en-tête\n"
+"spécifiques. La cible est une expression regulière à comparer avec l'en-"
+"tête\n"
+"spécifié. La comparaison est faite en ignorant la casse des caractères.\n"
+"Les lignes commençant par '#' sont considérées comme des commentaires et\n"
+"ignorées.\n"
+"\n"
+"<p>par exemple:<pre>to: .*@public.com </pre> ordonne la mise en\n"
+"attente de tous les envois avec un champs <em>To:</em> contenant\n"
+"'@public.com' partout dans les adresses. \n"
+"\n"
+"<p>Notez que les espaces précédents l'expression regulière sont\n"
+"supprimés. Cela peut être évité de plusieurs façons, e.g. en\n"
+"utilisant des séquences d'échappement ou en les mettant entre\n"
+"guillemets."
+
+#: Mailman/Gui/Topics.py:28
+msgid "Topics"
+msgstr "Thèmes"
+
+#: Mailman/Gui/Topics.py:36
+msgid "List topic keywords"
+msgstr "Mot clés du thème de la liste"
+
+#: Mailman/Gui/Topics.py:38
+msgid "Disabled"
+msgstr "Désactivé"
+
+#: Mailman/Gui/Topics.py:38
+msgid "Enabled"
+msgstr "Activé"
+
+#: Mailman/Gui/Topics.py:39
+msgid "Should the topic filter be enabled or disabled?"
+msgstr "Le filtre de thème doit-il être activé ou désactivé?"
+
+#: Mailman/Gui/Topics.py:41
+msgid ""
+"The topic filter categorizes each incoming email message\n"
+" according to <a\n"
+" href=\"http://www.python.org/doc/current/lib/module-re.html"
+"\">regular\n"
+" expression filters</a> you specify below. If the message's\n"
+" <code>Subject:</code> or <code>Keywords:</code> header contains "
+"a\n"
+" match against a topic filter, the message is logically placed\n"
+" into a topic <em>bucket</em>. Each user can then choose to "
+"only\n"
+" receive messages from the mailing list for a particular topic\n"
+" bucket (or buckets). Any message not categorized in a topic\n"
+" bucket registered with the user is not delivered to the list.\n"
+"\n"
+" <p>Note that this feature only works with regular delivery, "
+"not\n"
+" digest delivery.\n"
+"\n"
+" <p>The body of the message can also be optionally scanned for\n"
+" <code>Subject:</code> and <code>Keywords:</code> headers, as\n"
+" specified by the <a\n"
+" href=\"?VARHELP=topics/topics_bodylines_limit"
+"\">topics_bodylines_limit</a>\n"
+" configuration variable."
+msgstr ""
+"Le filtre de thème place chaque courriel qui arrive dans une catégorie\n"
+"sur la base <a\n"
+"href=\"http://www.python.org/doc/current/lib/module-re.html\">\n"
+"des filtres d'expressions régulières</a> que vous avez définis ci-dessous.\n"
+"Si l'en-tête <code>Objet:</code> ou <code>Mots Clés:</code> correspond\n"
+"à un thème, alors le message est logiquement placé dans un\n"
+"<em>seau</em> de thème. Dés lors, chaque utilisateur peut choisir de ne\n"
+"recevoir de la liste que des messages d'un seau(x) de thème particulier.\n"
+"Tout message qui n'entre pas dans une catégorie de seau de thème déclaré\n"
+"par l'utilisateur ne sera pas remis à la liste.\n"
+"\n"
+"<p>Notez que cette fonctionnalité n'est active qu'en mode de remise\n"
+"normale et est sans effet pour les remises groupées.\n"
+"\n"
+"<p>Le corps du message pourrait accessoirement être analysé à la recherche\n"
+"d'en-têtes <code>Objet:</code> et <code>Mot Clé:</code> en conformité avec\n"
+"la variable de configuration\n"
+"<a href=\"?VARHELP=topics/topics_bodylines_limit\">\n"
+"topics_bodylines_limit</a>."
+
+#: Mailman/Gui/Topics.py:62
+msgid "How many body lines should the topic matcher scan?"
+msgstr ""
+"Combien de lignes le moteur de thème doit-il analyser dans le corps\n"
+"du message?"
+
+#: Mailman/Gui/Topics.py:64
+msgid ""
+"The topic matcher will scan this many lines of the message\n"
+" body looking for topic keyword matches. Body scanning stops "
+"when\n"
+" either this many lines have been looked at, or a non-header-"
+"like\n"
+" body line is encountered. By setting this value to zero, no "
+"body\n"
+" lines will be scanned (i.e. only the <code>Keywords:</code> "
+"and\n"
+" <code>Subject:</code> headers will be scanned). By setting "
+"this\n"
+" value to a negative number, then all body lines will be "
+"scanned\n"
+" until a non-header-like line is encountered.\n"
+" "
+msgstr ""
+"Le moteur de thème va analyser un nombre de lignes égal à celui-ci dans\n"
+"le corps du message à la recherche d'une correspondance du thème. Cette\n"
+"opération s'arrête lorsque\n"
+"le nombre de ligne cité est couvert à moins qu'une ligne qui ne\n"
+"ressemblerait pas à un corps de message ne soit rencontrée. Porter cette\n"
+"valeur à 0 signifie que le corps du message ne sera pas analysé (i.e. que\n"
+"seuls les en-têtes <code>Objet:</code> et <code>Mots Clés:</code> seront\n"
+"analysés). Si la valeur est négative alors toutes les lignes du corps\n"
+"seront analysées jusqu'à ce qu'une ligne ne ressemblant pas à un en-tête\n"
+"soit rencontrée\n"
+"\t\t"
+
+#: Mailman/Gui/Topics.py:75
+msgid "Topic keywords, one per line, to match against each message."
+msgstr "Les mots clés du thème, un par ligne, à comparer à chaque message"
+
+#: Mailman/Gui/Topics.py:77
+msgid ""
+"Each topic keyword is actually a regular expression, which is\n"
+" matched against certain parts of a mail message, specifically "
+"the\n"
+" <code>Keywords:</code> and <code>Subject:</code> message "
+"headers.\n"
+" Note that the first few lines of the body of the message can "
+"also\n"
+" contain a <code>Keywords:</code> and <code>Subject:</code>\n"
+" \"header\" on which matching is also performed."
+msgstr ""
+"Chaque mot clé pour un thème est actuellement une expression régulière\n"
+"comparée à certaines parties du courriel, les en-têtes <code>Mots Clés:\n"
+"</code> et <code>Objet:</code> en particulier. Notez que les premières\n"
+"lignes du corps du message peuvent contenir les \"en-têtes\"\n"
+"<code>Mots Clés:</code> et <code>Objet:</code> sur lesquelles la\n"
+"comparaison se fera."
+
+#: Mailman/Gui/Topics.py:116
+msgid ""
+"Topic specifications require both a name and\n"
+" a pattern. Incomplete topics will be ignored."
+msgstr ""
+"Les spécifications de thèmes nécessitent un nom et un modèle, les\n"
+"thèmes incomplets seront ignorés."
+
+#: Mailman/Gui/Topics.py:124
+msgid ""
+"The topic pattern `%(pattern)s' is not a\n"
+" legal regular expression. It will be discarded."
+msgstr ""
+"Le motif de thème `%(pattern)s' n'est pas une expression régulière\n"
+"valide. Il sera ignoré."
+
+#: Mailman/Gui/Usenet.py:25
+msgid "Mail&lt;-&gt;News&nbsp;gateways"
+msgstr "Passerelle&nbsp;Courriel&lt;-&gt;News"
+
+#: Mailman/Gui/Usenet.py:35
+msgid "Mail-to-News and News-to-Mail gateway services."
+msgstr "Services passerelles Courriel-vers-News News-vers-Courriel"
+
+#: Mailman/Gui/Usenet.py:37
+msgid "News server settings"
+msgstr "Réglages du serveur de News"
+
+#: Mailman/Gui/Usenet.py:40
+msgid ""
+"The Internet address of the machine your News server is\n"
+" running on."
+msgstr ""
+"L'adresse Internet de la machine sur laquelle votre serveur de News tourne."
+
+#: Mailman/Gui/Usenet.py:42
+msgid ""
+"The News server is not part of Mailman proper. You have to\n"
+" already have access to a NNTP server, and that NNTP server has "
+"to\n"
+" recognize the machine this mailing list runs on as a machine\n"
+" capable of reading and posting news."
+msgstr ""
+"Le serveur de News n'est pas une partie intégrante de Mailman. Vous devez\n"
+"déjà disposer d'un accès à un serveur NNTP qui reconnait la machine sur\n"
+"laquelle tourne cette liste de diffusion comme étant capable de lire et de\n"
+"publier des news."
+
+#: Mailman/Gui/Usenet.py:48
+msgid "The name of the Usenet group to gateway to and/or from."
+msgstr "Le nom du groupe Usenet pour lequel ce site sert de passerelle."
+
+#: Mailman/Gui/Usenet.py:51
+msgid ""
+"Should new posts to the mailing list be sent to the\n"
+" newsgroup?"
+msgstr ""
+"Les nouveaux envois à la liste de diffusion doivent être\n"
+"\tenvoyés au groupe de news?"
+
+#: Mailman/Gui/Usenet.py:55
+msgid ""
+"Should new posts to the newsgroup be sent to the mailing\n"
+" list?"
+msgstr ""
+"les nouveaux envois au groupe de news doivent être également envoyés à la "
+"liste?"
+
+#: Mailman/Gui/Usenet.py:58
+msgid "Forwarding options"
+msgstr "Options de \"forwarding\""
+
+#: Mailman/Gui/Usenet.py:61
+msgid "Moderated"
+msgstr "Modérateur"
+
+#: Mailman/Gui/Usenet.py:61
+msgid "Open list, moderated group"
+msgstr "Liste ouverte, groupe modéré"
+
+#: Mailman/Gui/Usenet.py:64
+msgid "The moderation policy of the newsgroup."
+msgstr "Les règles de modération du newsgroup"
+
+#: Mailman/Gui/Usenet.py:66
+msgid ""
+"This setting determines the moderation policy of the\n"
+" newsgroup and its interaction with the moderation policy of "
+"the\n"
+" mailing list. This only applies to the newsgroup that you are\n"
+" gatewaying <em>to</em>, so if you are only gatewaying from\n"
+" Usenet, or the newsgroup you are gatewaying to is not "
+"moderated,\n"
+" set this option to <em>None</em>.\n"
+"\n"
+" <p>If the newsgroup is moderated, you can set this mailing "
+"list\n"
+" up to be the moderation address for the newsgroup. By "
+"selecting\n"
+" <em>Moderated</em>, an additional posting hold will be placed "
+"in\n"
+" the approval process. All messages posted to the mailing list\n"
+" will have to be approved before being sent on to the "
+"newsgroup,\n"
+" or to the mailing list membership.\n"
+"\n"
+" <p><em>Note that if the message has an <tt>Approved</tt> "
+"header\n"
+" with the list's administrative password in it, this hold test\n"
+" will be bypassed, allowing privileged posters to send messages\n"
+" directly to the list and the newsgroup.</em>\n"
+"\n"
+" <p>Finally, if the newsgroup is moderated, but you want to "
+"have\n"
+" an open posting policy anyway, you should select <em>Open "
+"list,\n"
+" moderated group</em>. The effect of this is to use the normal\n"
+" Mailman moderation facilities, but to add an <tt>Approved</tt>\n"
+" header to all messages that are gatewayed to Usenet."
+msgstr ""
+"Ces réglages déterminent les règles de modération du\n"
+"newsgroup et les interactions avec les règles de modération de\n"
+"la liste de diffusion. Ceci ne s'applique qu'au newsgroup pour lequel\n"
+"ce site sert de passerelle, si vous ne faites que relayer Usenet,\n"
+"ou si le newsgroup considéré n'est pas modéré,\n"
+"mettre cette option à <em>Aucun</em>.\n"
+"\n"
+"<p>Si le newsgroup est modéré, vous pouvez faire en sorte que\n"
+"la liste de diffsion soit l'adresse de modération du newsgroup. En\n"
+"sélectionnant <em>Modéré</em>, une étape supplémentaire\n"
+"entre dans le processus d'approbation. Tous les messages postés\n"
+"sur la liste de diffusion nécessiteront une approbation\n"
+"avant diffusion au newsgroup, ou aux membres de la liste.\n"
+"\n"
+"<p><em>Notez que si ce message possède un en-tête <tt>Approuvé</tt>\n"
+"contenant le mot de passe administrateur, ce test ne s'appliquera pas,\n"
+"permettant ainsi aux expéditeurs dotés de privilèges d'envoyer\n"
+"des messages directement à la liste et au newsgroup</em>.\n"
+"\n"
+"<p>Enfin, si le newsgroup est modéré, mais que vous désirez\n"
+"quand même des règles de postage libres, vous devez sélectionner\n"
+"<em>Liste ouverte, groupe modéré</em>, ce qui a pour effet d'utiliser\n"
+"les règles habituelles de modération de Mailman, mais en ajoutant un en-"
+"tête\n"
+"<tt>Approuvé</tt> à tous les messages relayés vers Usenet."
+
+#: Mailman/Gui/Usenet.py:92
+msgid "Prefix <tt>Subject:</tt> headers on postings gated to news?"
+msgstr ""
+"Préfixer l'en-tête <tt>Objet:</tt> sur les envois transmis\n"
+"aux groupes de news?"
+
+#: Mailman/Gui/Usenet.py:93
+msgid ""
+"Mailman prefixes <tt>Subject:</tt> headers with\n"
+" <a href=\"?VARHELP=general/subject_prefix\">text you can\n"
+" customize</a> and normally, this prefix shows up in messages\n"
+" gatewayed to Usenet. You can set this option to <em>No</em> "
+"to\n"
+" disable the prefix on gated messages. Of course, if you turn "
+"off\n"
+" normal <tt>Subject:</tt> prefixes, they won't be prefixed for\n"
+" gated messages either."
+msgstr ""
+"Mailman préfixe les en-têtes <tt>Objet:</tt> avec <a\n"
+"href=\"?VARHELP=general/subject_prefix\">un texte que vous pouvez\n"
+"personnaliser</a> et en principe, ce préfixe apparaît dans les messages\n"
+"transmis aux groupes de news. Vous pouvez mettre ce paramètre à\n"
+"<em>Non</em> pour désactiver les préfixes sur les messages transmis. Si\n"
+"vous désactiver les préfixes <tt>Objet:</tt> normaux, la même règle\n"
+"va évidemment s'appliquer aux messages transmis."
+
+#: Mailman/Gui/Usenet.py:101
+msgid "Mass catch up"
+msgstr "Capture en masse"
+
+#: Mailman/Gui/Usenet.py:104
+msgid "Should Mailman perform a <em>catchup</em> on the newsgroup?"
+msgstr "Mailman doit-il effectuer une <em>capture</em> sur le groupe de news?"
+
+#: Mailman/Gui/Usenet.py:105
+msgid ""
+"When you tell Mailman to perform a catchup on the newsgroup,\n"
+" this means that you want to start gating messages to the "
+"mailing\n"
+" list with the next new message found. All earlier messages on\n"
+" the newsgroup will be ignored. This is as if you were reading\n"
+" the newsgroup yourself, and you marked all current messages as\n"
+" <em>read</em>. By catching up, your mailing list members will\n"
+" not see any of the earlier messages."
+msgstr ""
+"Lorsque vous dites à Mailman d'effectuer une capture sur le groupe de News\n"
+"cela signifie que vous lui demandez de servir de passerelle pour ledit "
+"groupe\n"
+"à compter du prochain message. Tous les messages précédents sur le groupe de "
+"News\n"
+"seront ignorés. C'est comme si vous lisiez le groupe de News vous même et\n"
+"marquiez tous les messages actuels comme étant <em>lus</em>. En capturant,\n"
+"vos abonnés ne verront pas les messages précédents."
+
+#: Mailman/Gui/Usenet.py:119
+msgid "Mass catchup completed"
+msgstr "Capture en masse achevée"
+
+#: Mailman/Gui/Usenet.py:131
+msgid ""
+"You cannot enable gatewaying unless both the\n"
+" <a href=\"?VARHELP=gateway/nntp_host\">news server field</a> "
+"and\n"
+" the <a href=\"?VARHELP=gateway/linked_newsgroup\">linked\n"
+" newsgroup</a> fields are filled in."
+msgstr ""
+"Vous ne pouvez activer la transmission vers les groupes de nouvelles\n"
+"tant que vous n'aurez pas renseigner et <a\n"
+"href=\"?VARHELP=gateway/nntp_host\">le champs serveur de news</a>\n"
+"et le champ <a href=\"?VARHELP=gateway/linked_newsgroup\">groupe de news "
+"lié</a>."
+
+#: Mailman/HTMLFormatter.py:47
+msgid "%(listinfo_link)s list run by %(owner_link)s"
+msgstr "Liste de diffusion %(listinfo_link)s gérée par %(owner_link)s"
+
+#: Mailman/HTMLFormatter.py:55
+msgid "%(realname)s administrative interface"
+msgstr "Interface administrative de %(realname)s"
+
+#: Mailman/HTMLFormatter.py:56
+msgid " (requires authorization)"
+msgstr " (autorisation requise)"
+
+#: Mailman/HTMLFormatter.py:59
+msgid "Overview of all %(hostname)s mailing lists"
+msgstr "Panorama de toutes les listes sur %(hostname)s"
+
+#: Mailman/HTMLFormatter.py:80
+msgid "<em>(1 private member not shown)</em>"
+msgstr "<em>(1 abonné privé non affiché)</em>"
+
+#: Mailman/HTMLFormatter.py:82
+msgid "<em>(%(num_concealed)d private members not shown)</em>"
+msgstr "<em>(%(num_concealed)d abonnés privés non affichés</em>"
+
+#: Mailman/HTMLFormatter.py:137
+msgid "; it was disabled by you"
+msgstr "; vous l'avez désactivé"
+
+#: Mailman/HTMLFormatter.py:139
+msgid "; it was disabled by the list administrator"
+msgstr "; il a été désactivé par l'administrateur de la liste"
+
+#: Mailman/HTMLFormatter.py:143
+msgid ""
+"; it was disabled due to excessive bounces. The\n"
+" last bounce was received on %(date)s"
+msgstr ""
+"; il a été désactivé suite à des rebonds excessifs. Le dernier à été\n"
+"reçu le %(date)s"
+
+#: Mailman/HTMLFormatter.py:146
+msgid "; it was disabled for unknown reasons"
+msgstr "; il a été désactivé pour des raisons inconnues"
+
+#: Mailman/HTMLFormatter.py:148
+msgid "Note: your list delivery is currently disabled%(reason)s."
+msgstr ""
+"Note: les remises sur votre liste sont actuellement désactivées %(reason)s."
+
+#: Mailman/HTMLFormatter.py:151
+msgid "Mail delivery"
+msgstr "Remise de courriels"
+
+#: Mailman/HTMLFormatter.py:153 Mailman/HTMLFormatter.py:298
+msgid "the list administrator"
+msgstr "l'administrateur de la liste"
+
+#: Mailman/HTMLFormatter.py:154
+msgid ""
+"<p>%(note)s\n"
+"\n"
+" <p>You may have disabled list delivery intentionally,\n"
+" or it may have been triggered by bounces from your email\n"
+" address. In either case, to re-enable delivery, change the\n"
+" %(link)s option below. Contact %(mailto)s if you have any\n"
+" questions or need assistance."
+msgstr ""
+"<p>%(note)s\n"
+"\n"
+"<p>Vous avez dû volontairement désactiver les remises de la\n"
+"liste à moins que cela n'ait été déclenché par des rebonds (bounces)\n"
+"de votre adresse courriel. Dans tous les cas, pour les réactiver,\n"
+"changer l'option %(link)s ci-dessous. Veuillez contacter\n"
+"%(mailto)s si vous avez des questions ou si vous avez besoin d'assistance."
+
+#: Mailman/HTMLFormatter.py:166
+msgid ""
+"<p>We have received some recent bounces from your\n"
+" address. Your current <em>bounce score</em> is %(score)s out of "
+"a\n"
+" maximum of %(total)s. Please double check that your subscribed\n"
+" address is correct and that there are no problems with delivery "
+"to\n"
+" this address. Your bounce score will be automatically reset if\n"
+" the problems are corrected soon."
+msgstr ""
+"Nous avons reçu des rebonds récents de votre adresse. Votre score\n"
+"actuel de rebond est de %(score)s sur un maximum de %(total)s. Veuillez\n"
+"re-vérifier que votre adresse d'abonnement est correcte et qu'il n'y a\n"
+"aucun problème de remise à cette adresse. Votre score sera\n"
+"re-initialisé si le problème est réglé dans les meilleurs délais."
+
+#: Mailman/HTMLFormatter.py:178
+msgid ""
+"(Note - you are subscribing to a list of mailing lists, so the %(type)s "
+"notice will be sent to the admin address for your membership, %(addr)s.)<p>"
+msgstr ""
+"(Note - Vous avez souscrit un abonnement à la liste de diffusion, un avis de "
+"type %(type)s sera envoyé à l'adresse de l'administrateur pour validation, %"
+"(addr)s.)<p>"
+
+#: Mailman/HTMLFormatter.py:188
+msgid ""
+"You will be sent email requesting confirmation, to\n"
+" prevent others from gratuitously subscribing you."
+msgstr ""
+"Un courriel vous parviendra vous demandant une confirmation, cela\n"
+" empêche que d'autres personnes vous abonnent impunément."
+
+#: Mailman/HTMLFormatter.py:191
+msgid ""
+"This is a closed list, which means your subscription\n"
+" will be held for approval. You will be notified of the list\n"
+" moderator's decision by email."
+msgstr ""
+"Ceci est une liste fermée, ce qui signifie que votre abonnement\n"
+" requiert une approbation pour être effective. Il vous sera fait part\n"
+" par courriel, de la décision du modérateur."
+
+#: Mailman/HTMLFormatter.py:194 Mailman/HTMLFormatter.py:201
+msgid "also "
+msgstr "aussi "
+
+#: Mailman/HTMLFormatter.py:196
+msgid ""
+"You will be sent email requesting confirmation, to\n"
+" prevent others from gratuitously subscribing you. Once\n"
+" confirmation is received, your request will be held for "
+"approval\n"
+" by the list moderator. You will be notified of the moderator's\n"
+" decision by email."
+msgstr ""
+"Vous recevrez un courriel de requête de confirmation, cela empêche que\n"
+"d'autres personnes vous abonnement impunément. Une fois la confirmation "
+"reçue,\n"
+"votre requête sera mise en attente de l'approbation du modérateur. La\n"
+"décision du modérateur vous sera annoncée par courriel."
+
+#: Mailman/HTMLFormatter.py:205
+msgid ""
+"This is %(also)sa private list, which means that the\n"
+" list of members is not available to non-members."
+msgstr ""
+"Ceci est %(also)s une liste privée, ce qui signifie que la liste des\n"
+" abonnés n'est pas visible aux non-abonnés."
+
+#: Mailman/HTMLFormatter.py:208
+msgid ""
+"This is %(also)sa hidden list, which means that the\n"
+" list of members is available only to the list administrator."
+msgstr ""
+"Ceci est %(also)s une liste cachée, ce qui signifie que la liste des\n"
+"abonnés n'est disponible que pour l'administrateur."
+
+#: Mailman/HTMLFormatter.py:211
+msgid ""
+"This is %(also)sa public list, which means that the\n"
+" list of members list is available to everyone."
+msgstr ""
+"Ceci est %(also)s une liste publique, ce qui signifie que la liste des "
+"membres est disponible pour tous."
+
+#: Mailman/HTMLFormatter.py:214
+msgid ""
+" (but we obscure the addresses so they are not\n"
+" easily recognizable by spammers)."
+msgstr ""
+" (mais nous brouillons les adresses pour qu'elles ne soient pas\n"
+" facilement reconnaissables par les spammers)."
+
+#: Mailman/HTMLFormatter.py:219
+msgid ""
+"<p>(Note that this is an umbrella list, intended to\n"
+" have only other mailing lists as members. Among other things,\n"
+" this means that your confirmation request will be sent to the\n"
+" `%(sfx)s' account for your address.)"
+msgstr ""
+"<p>(Notez que ceci est une liste enveloppe, destinée à n'avoir comme\n"
+"abonnés que des listes de diffusion. Entre autre conséquences, votre\n"
+"requête de confirmation sera envoyée au compte `%(sfx)s' de votre\n"
+"adresse.)"
+
+#: Mailman/HTMLFormatter.py:248
+msgid "<b><i>either</i></b> "
+msgstr "<b><i>ou</i></b>"
+
+#: Mailman/HTMLFormatter.py:253
+msgid ""
+"To unsubscribe from %(realname)s, get a password reminder,\n"
+" or change your subscription options %(either)senter your "
+"subscription\n"
+" email address:\n"
+" <p><center> "
+msgstr ""
+"Pour résilier votre abonnement de %(realname)s, recevoir\n"
+"un rappel de votre mot de passe ou modifier vos options d'abonnement,\n"
+"%(either)s entrez votre adresse courriel d'abonnement:\n"
+"<p><center>"
+
+#: Mailman/HTMLFormatter.py:260
+msgid "Unsubscribe or edit options"
+msgstr "Résilier votre abonnement ou modifier vos options"
+
+#: Mailman/HTMLFormatter.py:264
+msgid ""
+"<p>... <b><i>or</i></b> select your entry from\n"
+" the subscribers list (see above)."
+msgstr ""
+"<p>...<b><i>ou</i></b> sélectionnez votre adresse à partir de la liste\n"
+"des abonnés (voir plus loin)."
+
+#: Mailman/HTMLFormatter.py:266
+msgid ""
+" If you leave the field blank, you will be prompted for\n"
+" your email address"
+msgstr ""
+"Si vous laissez le champ vide, une invite vous demandera de fournir\n"
+"votre adresse courriel"
+
+#: Mailman/HTMLFormatter.py:274
+msgid ""
+"(<i>%(which)s is only available to the list\n"
+" members.</i>)"
+msgstr "(<i>Le %(which)s n'est disponible que pour les abonnés.</i>)"
+
+#: Mailman/HTMLFormatter.py:278
+msgid ""
+"(<i>%(which)s is only available to the list\n"
+" administrator.</i>)"
+msgstr ""
+"(<i>L'option %(which)s n'est diponible que pour\n"
+"l'administrateur de la liste.</i>)"
+
+#: Mailman/HTMLFormatter.py:288
+msgid "Click here for the list of "
+msgstr "Cliquer ici pour une liste des"
+
+#: Mailman/HTMLFormatter.py:290
+msgid " subscribers: "
+msgstr "abonnés: "
+
+#: Mailman/HTMLFormatter.py:292
+msgid "Visit Subscriber list"
+msgstr "Visiter la liste des abonnés"
+
+#: Mailman/HTMLFormatter.py:295
+msgid "members"
+msgstr "abonnés"
+
+#: Mailman/HTMLFormatter.py:296
+msgid "Address:"
+msgstr "Adresse:"
+
+#: Mailman/HTMLFormatter.py:299
+msgid "Admin address:"
+msgstr "Adresse de l'admin:"
+
+#: Mailman/HTMLFormatter.py:302
+msgid "The subscribers list"
+msgstr "liste des abonnés"
+
+#: Mailman/HTMLFormatter.py:304
+msgid " <p>Enter your "
+msgstr "<p>Entrez votre "
+
+#: Mailman/HTMLFormatter.py:306
+msgid " and password to visit the subscribers list: <p><center> "
+msgstr " et le mot de passe pour visiter la liste des abonnés: <p><center>"
+
+#: Mailman/HTMLFormatter.py:311
+msgid "Password: "
+msgstr "Mot de passe:"
+
+#: Mailman/HTMLFormatter.py:315
+msgid "Visit Subscriber List"
+msgstr "Visualisez la liste des abonnées"
+
+#: Mailman/HTMLFormatter.py:345
+msgid "Once a month, your password will be emailed to you as a reminder."
+msgstr "Votre recevrez un rappel mensuel de votre mot de passe par courriel."
+
+#: Mailman/HTMLFormatter.py:391
+msgid "The current archive"
+msgstr "archive en cours"
+
+#: Mailman/Handlers/Acknowledge.py:59
+msgid "%(realname)s post acknowledgement"
+msgstr "accusé de réception de l'envoi de %(realname)s"
+
+#: Mailman/Handlers/CalcRecips.py:68
+msgid ""
+"Your urgent message to the %(realname)s mailing list was not authorized for\n"
+"delivery. The original message as received by Mailman is attached.\n"
+msgstr ""
+"La remise de votre message urgent en direction de la liste\n"
+"%(realname)s n'est pas autorisée. Le message original reçu\n"
+"par Mailman est attaché à celui-ci.\n"
+"\n"
+
+#: Mailman/Handlers/Emergency.py:29
+msgid "Emergency hold on all list traffic is in effect"
+msgstr "La mise en attente d'urgence de tout le trafic de la liste est active"
+
+#: Mailman/Handlers/Emergency.py:30 Mailman/Handlers/Hold.py:58
+msgid "Your message was deemed inappropriate by the moderator."
+msgstr "Le modérateur à jugé votre message inapproprié."
+
+#: Mailman/Handlers/Hold.py:53
+msgid "Sender is explicitly forbidden"
+msgstr "Cet expéditeur est explicitement banni"
+
+#: Mailman/Handlers/Hold.py:54
+msgid "You are forbidden from posting messages to this list."
+msgstr "Vous êtes interdit d'envoi sur cette liste."
+
+#: Mailman/Handlers/Hold.py:57
+msgid "Post to moderated list"
+msgstr "Envoi sur une liste modérée"
+
+#: Mailman/Handlers/Hold.py:61
+msgid "Post by non-member to a members-only list"
+msgstr "Envoi par un non-abonné sur une liste reservée aux abonnés"
+
+#: Mailman/Handlers/Hold.py:62
+msgid "Non-members are not allowed to post messages to this list."
+msgstr ""
+"Les non-abonnés ne sont pas autorisés à soumettre des articles sur cette "
+"liste."
+
+#: Mailman/Handlers/Hold.py:65
+msgid "Posting to a restricted list by sender requires approval"
+msgstr "Un envoi sur une liste restreinte requiert une approbation"
+
+#: Mailman/Handlers/Hold.py:66
+msgid "This list is restricted; your message was not approved."
+msgstr "Cette liste est restreinte; votre message n'a pas été approuvé."
+
+#: Mailman/Handlers/Hold.py:69
+msgid "Too many recipients to the message"
+msgstr "Trop de destinataires pour le message"
+
+#: Mailman/Handlers/Hold.py:70
+msgid "Please trim the recipient list; it is too long."
+msgstr "Veuillez réduire la liste des destinataires; elle est trop longue."
+
+#: Mailman/Handlers/Hold.py:73
+msgid "Message has implicit destination"
+msgstr "Message avec destination implicite"
+
+#: Mailman/Handlers/Hold.py:74
+msgid ""
+"Blind carbon copies or other implicit destinations are\n"
+"not allowed. Try reposting your message by explicitly including the list\n"
+"address in the To: or Cc: fields."
+msgstr ""
+"Les copies Carbonnes Cachées (BCC) et les autres destinataires implicites ne "
+"sont\n"
+"pas autorisés. Essayez d'envoyer votre message à nouveau en spécifiant "
+"l'adresse\n"
+"de la liste dans l'un des champs To: ou Cc:"
+
+#: Mailman/Handlers/Hold.py:79
+msgid "Message may contain administrivia"
+msgstr "Le message contient peut être des requêtes administratives"
+
+#: Mailman/Handlers/Hold.py:84
+msgid ""
+"Please do *not* post administrative requests to the mailing\n"
+"list. If you wish to subscribe, visit %(listurl)s or send a message with "
+"the\n"
+"word `help' in it to the request address, %(request)s, for further\n"
+"instructions."
+msgstr ""
+"De grâce n'envoyez *pas* les requêtes administratives à la liste.\n"
+"Si vous désirez vous abonner, visitez %(listurl)s ou envoyez un message\n"
+"contenant le terme 'help' à l'adresse 'request', %(request)s pour des\n"
+"instructions complémentaires."
+
+#: Mailman/Handlers/Hold.py:90
+msgid "Message has a suspicious header"
+msgstr "Message avec en-tête douteux."
+
+#: Mailman/Handlers/Hold.py:91
+msgid "Your message had a suspicious header."
+msgstr "Votre message avait un en-tête douteux."
+
+#: Mailman/Handlers/Hold.py:101
+msgid ""
+"Message body is too big: %(size)d bytes with a limit of\n"
+"%(limit)d KB"
+msgstr ""
+"Le corps du message est trop gros: %(size)d octets avec une limite \n"
+"de %(limit)d kb"
+
+#: Mailman/Handlers/Hold.py:106
+msgid ""
+"Your message was too big; please trim it to less than\n"
+"%(kb)d KB in size."
+msgstr ""
+"Votre message est trop gros; veillez le réduire pour que sa taille soit\n"
+"au plus de %(kb)d kb."
+
+#: Mailman/Handlers/Hold.py:110
+msgid "Posting to a moderated newsgroup"
+msgstr "Envoi sur une liste modérée"
+
+#: Mailman/Handlers/Hold.py:233
+msgid "Your message to %(listname)s awaits moderator approval"
+msgstr "Votre message à la liste %(listname)s est en attente d'approbation"
+
+#: Mailman/Handlers/Hold.py:253
+msgid "%(listname)s post from %(sender)s requires approval"
+msgstr ""
+"Un envoi sur la liste %(listname)s à partir de %(sender)s requiert une "
+"approbation"
+
+#: Mailman/Handlers/Hold.py:260
+msgid ""
+"If you reply to this message, keeping the Subject: header intact, Mailman "
+"will\n"
+"discard the held message. Do this if the message is spam. If you reply to\n"
+"this message and include an Approved: header with the list password in it, "
+"the\n"
+"message will be approved for posting to the list. The Approved: header can\n"
+"also appear in the first line of the body of the reply."
+msgstr ""
+"Si vous répondez à ce message, en laissant l'en-tête Objet: intact,\n"
+"Mailman ignorera le message en attente. Procédez ainsi s'il s'agit\n"
+"d'un spam. Si vous répondez à ce message en y ajoutant un en-tête\n"
+"Approuvé: avec le mot de passe de la liste comme valeur, le message\n"
+"sera autorisé à aller vers la liste. L'en-tête Approuvé: peut\n"
+"également apparaître à la première ligne du corps du message de\n"
+"réponse"
+
+#: Mailman/Handlers/MimeDel.py:56
+msgid "The message's content type was explicitly disallowed"
+msgstr "Le type de contenu du message était explicitement refusé"
+
+#: Mailman/Handlers/MimeDel.py:61
+msgid "The message's content type was not explicitly allowed"
+msgstr "Le type de contenu du message n'était pas explicitement autorisé"
+
+#: Mailman/Handlers/MimeDel.py:73
+msgid "After content filtering, the message was empty"
+msgstr "Après filtrage du contenu, le message était vide"
+
+#: Mailman/Handlers/MimeDel.py:208
+msgid ""
+"The attached message matched the %(listname)s mailing list's content "
+"filtering\n"
+"rules and was prevented from being forwarded on to the list membership. "
+"You\n"
+"are receiving the only remaining copy of the discarded message.\n"
+"\n"
+msgstr ""
+"Les sections du message correspondent à une des règles de filtrage de "
+"contenu\n"
+"de la liste %(listname)s et le message n'a pas été envoyé aux membres de la "
+"liste.\n"
+"Vous ne recevez que la copie restante du message supprimé.\n"
+
+#: Mailman/Handlers/MimeDel.py:214
+msgid "Content filtered message notification"
+msgstr "Notification de filtrage de contenu du message"
+
+#: Mailman/Handlers/Moderate.py:138
+msgid ""
+"You are not allowed to post to this mailing list, and your message has been\n"
+"automatically rejected. If you think that your messages are being rejected "
+"in\n"
+"error, contact the mailing list owner at %(listowner)s."
+msgstr ""
+"Vous n'êtes pas autorisé à envoyer des messages sur cette liste, votre\n"
+"message a été automatiquement rejeté. Si vous pensez que votre\n"
+"message a été rejeté par erreur, veuillez contacter le gestionnaire de\n"
+"la liste à l'adresse %(listowner)s."
+
+#: Mailman/Handlers/Moderate.py:153
+msgid "Auto-discard notification"
+msgstr "Avis de rejet automatique"
+
+#: Mailman/Handlers/Moderate.py:156
+msgid "The attached message has been automatically discarded."
+msgstr "Le message attaché a été automatiquement ignoré."
+
+#: Mailman/Handlers/Replybot.py:74
+msgid "Auto-response for your message to "
+msgstr "Réponse automatique à votre message pour "
+
+#: Mailman/Handlers/Replybot.py:75
+msgid "the \"%(realname)s\" mailing list"
+msgstr "La liste de diffusion \"%(realname)s\""
+
+#: Mailman/Handlers/Replybot.py:107
+msgid "The Mailman Replybot"
+msgstr "Le robot de Réponse de Mailman"
+
+#: Mailman/Handlers/Scrubber.py:148
+msgid "HTML attachment scrubbed and removed"
+msgstr "La pièce HTML jointe a été nettoyée et enlevée"
+
+#: Mailman/Handlers/Scrubber.py:162 Mailman/Handlers/Scrubber.py:188
+msgid ""
+"An HTML attachment was scrubbed...\n"
+"URL: %(url)s\n"
+msgstr ""
+"Une pièce jointe HTML a été enlevée...\n"
+"URL: %(url)s\n"
+
+#: Mailman/Handlers/Scrubber.py:201
+msgid "no subject"
+msgstr "sans objet"
+
+#: Mailman/Handlers/Scrubber.py:202
+msgid "no date"
+msgstr "pas de date"
+
+#: Mailman/Handlers/Scrubber.py:203
+msgid "unknown sender"
+msgstr "expéditeur inconnu"
+
+#: Mailman/Handlers/Scrubber.py:205
+msgid ""
+"An embedded message was scrubbed...\n"
+"From: %(who)s\n"
+"Subject: %(subject)s\n"
+"Date: %(date)s\n"
+"Size: %(size)s\n"
+"Url: %(url)s\n"
+msgstr ""
+"Une pièce jointe a été nettoyée...\n"
+"De: %(who)s\n"
+"Objet: %(subject)s\n"
+"Date: %(date)s\n"
+"Taille: %(size)s\n"
+"Url: %(url)s\n"
+
+#: Mailman/Handlers/Scrubber.py:228
+msgid ""
+"A non-text attachment was scrubbed...\n"
+"Name: %(filename)s\n"
+"Type: %(ctype)s\n"
+"Size: %(size)d bytes\n"
+"Desc: %(desc)s\n"
+"Url : %(url)s\n"
+msgstr ""
+"Une pièce jointe non texte a été nettoyée...\n"
+"Nom: %(filename)s\n"
+"Type: %(ctype)s\n"
+"Taille: %(size)d octets\n"
+"Desc: %(desc)s\n"
+"Url: %(url)s\n"
+
+#: Mailman/Handlers/Scrubber.py:258
+msgid "Skipped content of type %(partctype)s"
+msgstr "contenu de type %(partctype)s sauté"
+
+#: Mailman/Handlers/Scrubber.py:275
+msgid "-------------- next part --------------\n"
+msgstr "-------------- section suivante --------------\n"
+
+#: Mailman/Handlers/ToDigest.py:141
+msgid "%(realname)s Digest, Vol %(volume)d, Issue %(issue)d"
+msgstr "Lot %(realname)s, Vol %(volume)d, Parution %(issue)d"
+
+#: Mailman/Handlers/ToDigest.py:181
+msgid "digest header"
+msgstr "en-tête des messages groupés"
+
+#: Mailman/Handlers/ToDigest.py:184
+msgid "Digest Header"
+msgstr "En-tête des messages groupés"
+
+#: Mailman/Handlers/ToDigest.py:197
+msgid "Today's Topics:\n"
+msgstr "Thèmes du jour:\n"
+
+#: Mailman/Handlers/ToDigest.py:267
+msgid "Today's Topics (%(msgcount)d messages)"
+msgstr "Thèmes du jour (%(msgcount)d messages)"
+
+#: Mailman/Handlers/ToDigest.py:292
+msgid "digest footer"
+msgstr "pied de page des remises groupées"
+
+#: Mailman/Handlers/ToDigest.py:295
+msgid "Digest Footer"
+msgstr "Pied de page des remises groupées"
+
+#: Mailman/Handlers/ToDigest.py:309
+msgid "End of "
+msgstr "Fin de "
+
+#: Mailman/ListAdmin.py:307
+msgid "Posting of your message titled \"%(subject)s\""
+msgstr "Envoi de votre message ayant comme objet \"%(subject)s\""
+
+#: Mailman/ListAdmin.py:346
+msgid "Forward of moderated message"
+msgstr "Faire suivre un message modéré"
+
+#: Mailman/ListAdmin.py:405
+msgid "New subscription request to list %(realname)s from %(addr)s"
+msgstr "Nouvelle demande d'abonnement à la liste %(realname)s de %(addr)s"
+
+#: Mailman/ListAdmin.py:428
+msgid "Subscription request"
+msgstr "Requête d'abonnement"
+
+#: Mailman/ListAdmin.py:458
+msgid "New unsubscription request from %(realname)s by %(addr)s"
+msgstr ""
+"Nouvelle demande de résiliation de l'abonnement à la liste\n"
+"%(realname)s par %(addr)s"
+
+#: Mailman/ListAdmin.py:481
+msgid "Unsubscription request"
+msgstr "Demande de résiliation d'abonnement"
+
+#: Mailman/ListAdmin.py:512
+msgid "Original Message"
+msgstr "Message d'origine"
+
+#: Mailman/ListAdmin.py:515
+msgid "Request to mailing list %(realname)s rejected"
+msgstr "Requête à l'endroit de la liste %(realname)s rejetée"
+
+#: Mailman/MTA/Manual.py:57
+msgid ""
+"The mailing list `%(listname)s' has been created via the through-the-web\n"
+"interface. In order to complete the activation of this mailing list, the\n"
+"proper /etc/aliases (or equivalent) file must be updated. The program\n"
+"`newaliases' may also have to be run.\n"
+"\n"
+"Here are the entries for the /etc/aliases file:\n"
+msgstr ""
+"La liste de diffusion `%(listname)s' a été crée en utilisant\n"
+"l'interface web.\n"
+"Pour achever l'activation de la liste de diffusion, les aliases\n"
+"/etc/aliases (ou équivalent) nécessaires doivent être crées\n"
+"Dans certains cas, le programme 'newaliases' devrait être exécuté.\n"
+"\n"
+"Voici la liste des entrées à inclure dans le fichier /etc/aliases:\n"
+
+#: Mailman/MTA/Manual.py:67
+msgid ""
+"\n"
+"To finish creating your mailing list, you must edit your /etc/aliases (or\n"
+"equivalent) file by adding the following lines, and possibly running the\n"
+"`newaliases' program:\n"
+"\n"
+"## %(listname)s mailing list"
+msgstr ""
+"\n"
+"Pour achever la création de votre liste de diffusion, vous devrez\n"
+"modifier votre fichier /etc/aliases (ou équivalent) en y ajoutant les\n"
+"lignes suivantes et peut être exécuter le programme 'newaliases':\n"
+"\n"
+"## Liste de diffusion %(listname)s"
+
+#: Mailman/MTA/Manual.py:88
+msgid "Mailing list creation request for list %(listname)s"
+msgstr "Requête de création de la liste %(listname)s"
+
+#: Mailman/MTA/Manual.py:103
+msgid ""
+"The mailing list `%(listname)s' has been removed via the through-the-web\n"
+"interface. In order to complete the de-activation of this mailing list, "
+"the\n"
+"appropriate /etc/aliases (or equivalent) file must be updated. The program\n"
+"`newaliases' may also have to be run.\n"
+"\n"
+"Here are the entries in the /etc/aliases file that should be removed:\n"
+msgstr ""
+"La liste de diffusion `%(listname)s' a été supprimée en utilisant\n"
+"l'interface web. Pour achever la désactivation de cette\n"
+"liste, les entrées correspondantes dans le fichier /etc/aliases (ou\n"
+"équivalent) doivent être supprimées. Il est possible que vous ayez\n"
+"également à exécuter le programme `newaliases'.\n"
+"\n"
+"Voici la liste des entrées à supprimer du fichier /etc/aliases:\n"
+
+#: Mailman/MTA/Manual.py:113
+msgid ""
+"\n"
+"To finish removing your mailing list, you must edit your /etc/aliases (or\n"
+"equivalent) file by removing the following lines, and possibly running the\n"
+"`newaliases' program:\n"
+"\n"
+"## %(listname)s mailing list"
+msgstr ""
+"\n"
+"Pour achever la suppression de votre liste de diffusion, vous devrez\n"
+"modifier votre fichier /etc/aliases (ou équivalent) en y supprimant les\n"
+"lignes suivantes et peut être exécuter le programme `newaliases':\n"
+"\n"
+"##Liste de diffusion %(listname)s"
+
+#: Mailman/MTA/Manual.py:132
+msgid "Mailing list removal request for list %(listname)s"
+msgstr "Requête de suppression de la liste de diffusion %(listname)s"
+
+#: Mailman/MTA/Postfix.py:300
+msgid "checking permissions on %(file)s"
+msgstr "Vérification des permissions sur %(file)s"
+
+#: Mailman/MTA/Postfix.py:310
+msgid "%(file)s permissions must be 066x (got %(octmode)s)"
+msgstr "les permissions de %(file)s doivent être 066x (reçu %(octmode)s)"
+
+#: Mailman/MTA/Postfix.py:312 Mailman/MTA/Postfix.py:339 bin/check_perms:100
+#: bin/check_perms:122 bin/check_perms:132 bin/check_perms:143
+#: bin/check_perms:162 bin/check_perms:180 bin/check_perms:200
+#: bin/check_perms:224 bin/check_perms:244 bin/check_perms:258
+#: bin/check_perms:278 bin/check_perms:315
+msgid "(fixing)"
+msgstr "(réparation)"
+
+#: Mailman/MTA/Postfix.py:328
+msgid "checking ownership of %(dbfile)s"
+msgstr "Vérification de la propriété de %(dbfile)s"
+
+#: Mailman/MTA/Postfix.py:336
+msgid "%(dbfile)s owned by %(owner)s (must be owned by %(user)s"
+msgstr "%(dbfile)s appartient à %(owner)s (doit appartenir à %(user)s"
+
+#: Mailman/MailList.py:697
+msgid "You have been invited to join the %(listname)s mailing list"
+msgstr "Vous êtes invité à vous abonner à la liste %(listname)s"
+
+#: Mailman/MailList.py:801 Mailman/MailList.py:1157
+msgid " from %(remote)s"
+msgstr " A partir de %(remote)s"
+
+#: Mailman/MailList.py:835
+msgid "subscriptions to %(realname)s require moderator approval"
+msgstr "les abonnements à %(realname)s nécessitent l'approbation du modérateur"
+
+#: Mailman/MailList.py:894 bin/add_members:281
+msgid "%(realname)s subscription notification"
+msgstr "notification d'abonnement de %(realname)s"
+
+#: Mailman/MailList.py:909
+msgid "unsubscriptions require moderator approval"
+msgstr "Les résiliations d'abonnements nécessitent l'approbation du modérateur"
+
+#: Mailman/MailList.py:928
+msgid "%(realname)s unsubscribe notification"
+msgstr "notification de résiliation de %(realname)s"
+
+#: Mailman/MailList.py:1072
+msgid "subscriptions to %(name)s require administrator approval"
+msgstr ""
+"L'abonnement à la liste %(name)s requiert une approbation de l'administrateur"
+
+#: Mailman/MailList.py:1326
+msgid "Last autoresponse notification for today"
+msgstr "Dernier avis d'envoi de réponse automatique pour la journée"
+
+#: Mailman/Queue/BounceRunner.py:179
+msgid ""
+"The attached message was received as a bounce, but either the bounce format\n"
+"was not recognized, or no member addresses could be extracted from it. "
+"This\n"
+"mailing list has been configured to send all unrecognized bounce messages "
+"to\n"
+"the list administrator(s).\n"
+"\n"
+"For more information see:\n"
+"%(adminurl)s\n"
+"\n"
+msgstr ""
+"Le document attaché a été reçu comme un rebond (bounce), mais soit le format "
+"du rebond\n"
+"n'est pas reconnu, soit l'adresse de l'abonné n'est pas récupérable.\n"
+"Cette liste de diffusion a été configurée pour envoyer tous les rebonds non "
+"reconnus\n"
+"à l'administrateur de liste.\n"
+"Pour plus d'information, voir : %(adminurl)s\n"
+"\n"
+
+#: Mailman/Queue/BounceRunner.py:189
+msgid "Uncaught bounce notification"
+msgstr "Avis de mesure de rebond"
+
+#: Mailman/Queue/CommandRunner.py:74
+msgid "Ignoring non-text/plain MIME parts"
+msgstr "Ignore les parties MIME non-text/plain"
+
+#: Mailman/Queue/CommandRunner.py:129
+msgid ""
+"The results of your email command are provided below.\n"
+"Attached is your original message.\n"
+msgstr ""
+"Les résultats de vos commandes courriels sont fournis\n"
+"ci-dessous. Ci-joint votre message original.\n"
+
+#: Mailman/Queue/CommandRunner.py:134
+msgid "- Results:"
+msgstr "- Résultats:"
+
+#: Mailman/Queue/CommandRunner.py:140
+msgid ""
+"\n"
+"- Unprocessed:"
+msgstr ""
+"\n"
+"- Non traité:"
+
+#: Mailman/Queue/CommandRunner.py:143
+msgid ""
+"\n"
+"- Ignored:"
+msgstr ""
+"\n"
+"- Ignoré:"
+
+#: Mailman/Queue/CommandRunner.py:145
+msgid ""
+"\n"
+"- Done.\n"
+"\n"
+msgstr ""
+"\n"
+"- Fait.\n"
+"\n"
+
+#: Mailman/Queue/CommandRunner.py:163
+msgid "The results of your email commands"
+msgstr "Les résultats de vos commandes courriel"
+
+#: Mailman/htmlformat.py:627
+msgid "Delivered by Mailman<br>version %(version)s"
+msgstr "Servi par Mailman <br>version %(version)s"
+
+#: Mailman/htmlformat.py:628
+msgid "Python Powered"
+msgstr "Python Powered"
+
+#: Mailman/htmlformat.py:629
+msgid "Gnu's Not Unix"
+msgstr "Gnus's Not Unix"
+
+#: Mailman/i18n.py:86
+msgid "Mon"
+msgstr "Lun"
+
+#: Mailman/i18n.py:86
+msgid "Thu"
+msgstr "Jeu"
+
+#: Mailman/i18n.py:86
+msgid "Tue"
+msgstr "Mar"
+
+#: Mailman/i18n.py:86
+msgid "Wed"
+msgstr "Mer"
+
+#: Mailman/i18n.py:87
+msgid "Fri"
+msgstr "Ven"
+
+#: Mailman/i18n.py:87
+msgid "Sat"
+msgstr "Sam"
+
+#: Mailman/i18n.py:87
+msgid "Sun"
+msgstr "Dim"
+
+#: Mailman/i18n.py:91
+msgid "Apr"
+msgstr "Avr"
+
+#: Mailman/i18n.py:91
+msgid "Feb"
+msgstr "Fév"
+
+#: Mailman/i18n.py:91
+msgid "Jan"
+msgstr "Jan"
+
+#: Mailman/i18n.py:91
+msgid "Jun"
+msgstr "Juin"
+
+#: Mailman/i18n.py:91
+msgid "Mar"
+msgstr "Mar"
+
+#: Mailman/i18n.py:92
+msgid "Aug"
+msgstr "Aou"
+
+#: Mailman/i18n.py:92
+msgid "Dec"
+msgstr "Déc"
+
+#: Mailman/i18n.py:92
+msgid "Jul"
+msgstr "Juil"
+
+#: Mailman/i18n.py:92
+msgid "Nov"
+msgstr "Nov"
+
+#: Mailman/i18n.py:92
+msgid "Oct"
+msgstr "Oct"
+
+#: Mailman/i18n.py:92
+msgid "Sep"
+msgstr "Sep"
+
+#: Mailman/i18n.py:95
+msgid "Server Local Time"
+msgstr "Serveur de temps local"
+
+#: Mailman/i18n.py:128
+msgid ""
+"%(wday)s %(mon)s %(day)2i %(hh)02i:%(mm)02i:%(ss)02i %(tzname)s %(year)04i"
+msgstr ""
+"%(wday)s %(day)2i %(mon)s %(hh)02i:%(mm)02i:%(ss)02i %(tzname)s %(year)04i"
+
+#: bin/add_members:26
+msgid ""
+"Add members to a list from the command line.\n"
+"\n"
+"Usage:\n"
+" add_members [options] listname\n"
+"\n"
+"Options:\n"
+"\n"
+" --regular-members-file=file\n"
+" -r file\n"
+" A file containing addresses of the members to be added, one\n"
+" address per line. This list of people become non-digest\n"
+" members. If file is `-', read addresses from stdin. Note that\n"
+" -n/--non-digest-members-file are deprecated synonyms for this "
+"option.\n"
+"\n"
+" --digest-members-file=file\n"
+" -d=file\n"
+" Similar to above, but these people become digest members.\n"
+"\n"
+" --changes-msg=<y|n>\n"
+" -c <y|n> \n"
+"\tSet whether or not to send the list members the `there's going to be\n"
+"\tbig changes to your list' message. defaults to no.\n"
+"\n"
+" --welcome-msg=<y|n>\n"
+" -w <y|n>\n"
+" Set whether or not to send the list members a welcome message,\n"
+" overriding whatever the list's `send_welcome_msg' setting is.\n"
+"\n"
+" --admin-notify=<y|n>\n"
+" -a <y|n>\n"
+" Set whether or not to send the list administrators a notification "
+"on\n"
+" the success/failure of these subscriptions, overriding whatever the\n"
+" list's `admin_notify_mchanges' setting is.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname\n"
+" The name of the Mailman list you are adding members to. It must\n"
+" already exist.\n"
+"\n"
+"You must supply at least one of -r and -d options. At most one of the\n"
+"files can be `-'.\n"
+msgstr ""
+"Ajouter des abonnés à la liste à partir de la ligne de commande.\n"
+"\n"
+"Usage:\n"
+" add_members [options] nom_de_liste\n"
+"\n"
+"Options:\n"
+"\n"
+" --regular-members-file=fichier\n"
+" -r file\n"
+" Un fichier contenant les adresses des abonnés à ajouter, une\n"
+" adresse par ligne. Ces personnes deviennent des\n"
+" abonnés normaux. Si le fichier est `-', les adresses sont lues\n"
+" à partir de stdin.\n"
+"\n"
+" --digest-members-file=Fichier\n"
+" -d=Fichier\n"
+" Identiques aux options précédentes sauf que ces abonnés\n"
+" deviennent des abonnés digest.\n"
+"\n"
+" --changes-msg=<y|n>\n"
+" -c <y|n> \n"
+" Permet de déclencher ou non l'envoi du message `des modifications\n"
+" substantielles se sont opérées sur votre liste'. Non par défaut.\n"
+"\n"
+" --welcome-msg=<y|n>\n"
+" -w <y|n>\n"
+" Permet de déclencher ou pas l'envoi du message de bienvenue,\n"
+" quel que soit la valeur du paramètre `send_welcome_msg' de \n"
+" la liste.\n"
+"\n"
+" --admin-notify=<y|n>\n"
+" -a <y|n>\n"
+" Permet de spécifier si un rapport de succès/échec des\n"
+" abonnements doit être envoyé à l'administrateur, quel que soit\n"
+" la valeure du paramètre `admin_notify_mchanges' de la liste.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Affiche ce message d'aide.\n"
+"\n"
+" nom_de_liste\n"
+" Le nom de la liste Mailman à laquelle les abonnés sont \n"
+" ajoutés. La liste doit déjà exister.\n"
+"\n"
+"Vous devez référencer au moins l'une des options -n ou -d. Un seul des\n"
+"fichiers peut être `-'.\n"
+
+#: bin/add_members:134
+msgid "Big change in %(listname)s@%(listhost)s mailing list"
+msgstr ""
+"Des changements importants sont survenus sur la liste de diffusion %"
+"(listname)s@%(listhost)s"
+
+#: bin/add_members:167
+msgid "Already a member: %(member)s"
+msgstr "Déjà abonné: %(member)s"
+
+#: bin/add_members:170
+msgid "Bad/Invalid email address: blank line"
+msgstr "Adresse courriel Mauvaise/Invalide: ligne vide"
+
+#: bin/add_members:172
+msgid "Bad/Invalid email address: %(member)s"
+msgstr "Adresse courriel Mauvaise/Invalide: %(member)s"
+
+#: bin/add_members:174
+msgid "Hostile address (illegal characters): %(member)s"
+msgstr "Adresse hostile (caractères illégaux): %(member)s"
+
+#: bin/add_members:176
+msgid "Subscribed: %(member)s"
+msgstr "Abonné: %(member)s"
+
+#: bin/add_members:223
+msgid "Bad argument to -c/--changes-msg: %(arg)s"
+msgstr "Mauvais argument fourni à -c/--changes-msg: %(arg)s"
+
+#: bin/add_members:230
+msgid "Bad argument to -w/--welcome-msg: %(arg)s"
+msgstr "Mauvais argument fourni à -w/--welcome-msg: %(arg)s"
+
+#: bin/add_members:237
+msgid "Bad argument to -a/--admin-notify: %(arg)s"
+msgstr "Mauvais argument fourni à -a/--admin-notify: %(arg)s"
+
+#: bin/add_members:243
+msgid "Cannot read both digest and normal members from standard input."
+msgstr ""
+"Ne peut à la fois lire, à partir de l'entrée standard, les abonnés\n"
+"normaux et les abonnés de type digest."
+
+#: bin/add_members:249 bin/config_list:105 bin/find_member:97 bin/inject:90
+#: bin/list_admins:89 bin/list_members:187 bin/sync_members:222
+#: cron/bumpdigests:86
+msgid "No such list: %(listname)s"
+msgstr "Liste introuvable: %(listname)s"
+
+#: bin/add_members:269 bin/change_pw:158 bin/check_db:114 bin/sync_members:244
+#: cron/bumpdigests:78
+msgid "Nothing to do."
+msgstr "Rien à faire."
+
+#: bin/arch:19
+msgid ""
+"Rebuild a list's archive.\n"
+"\n"
+"Use this command to rebuild the archives for a mailing list. You may want "
+"to\n"
+"do this if you edit some messages in an archive, or remove some messages "
+"from\n"
+"an archive.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] <listname> [<mbox>]\n"
+"\n"
+"Where options are:\n"
+" -h / --help\n"
+" Print this help message and exit.\n"
+"\n"
+" -q / --quiet\n"
+" Make the archiver output less verbose.\n"
+"\n"
+" --wipe\n"
+" First wipe out the original archive before regenerating. You "
+"usually\n"
+" want to specify this argument unless you're generating the archive "
+"in\n"
+" chunks.\n"
+"\n"
+" -s N\n"
+" --start=N\n"
+" Start indexing at article N, where article 0 is the first in the "
+"mbox.\n"
+" Defaults to 0.\n"
+"\n"
+" -e M\n"
+" --end=M\n"
+" End indexing at article M. This script is not very efficient with\n"
+" respect to memory management, and for large archives, it may not be\n"
+" possible to index the mbox entirely. For that reason, you can "
+"specify\n"
+" the start and end article numbers.\n"
+"\n"
+"Where <mbox> is the path to a list's complete mbox archive. Usually this "
+"will\n"
+"be some path in the archives/private directory. For example:\n"
+"\n"
+"%% bin/arch mylist archives/private/mylist.mbox/mylist.mbox\n"
+"\n"
+"<mbox> is optional. If it is missing, it is calculated.\n"
+msgstr ""
+"Reconstruit les archives d'une liste.\n"
+"\n"
+"Utilisez cette commande pour reconstruire les archives d'une liste de\n"
+"diffusion. Vous pouvez avoir envie d'y recourir lorsque vous modifiez\n"
+"certains messages dans les archives ou si vous en supprimer.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] <nom_de_liste> [<mbox>]\n"
+"\n"
+"Où les options sont:\n"
+" -h /--help\n"
+" Affiche ce message puis quitte.\n"
+"\n"
+" -s N\n"
+" --start=N\n"
+" Commence l'indexation à partir de l'article N, 0 étant le\n"
+" premier article dans mbox. 0 est la valeur par défaut.\n"
+"\n"
+" -e M\n"
+" --end=M\n"
+" Terminer l'indexation à l'article M. Ce script n'est pas\n"
+" particulièrement élaboré en termes de gestion de mémoire, et\n"
+" pour de grosses archives, il est possible que l'indexation de\n"
+" tout le fichier mbox ne soit pas possible. C'est pour cette raison,\n"
+" entre autres, que vous pouvez préciser le début et la fin des\n"
+" articles.\n"
+"\n"
+"Où <mbox> est le chemin vers le fichier mbox complet des archives. En\n"
+"général il s'agit d'un chemin sous archives/private. Par exemple:\n"
+"\n"
+"%% bin/arch maliste archives/private/maliste.mbox/maliste.mbox\n"
+"\n"
+"<mbox> est facultatif. S'il est omis, il sera calculé.\n"
+
+#: bin/arch:125
+msgid "listname is required"
+msgstr "Nom de liste requis"
+
+#: bin/arch:143 bin/change_pw:106 bin/config_list:242
+msgid ""
+"No such list \"%(listname)s\"\n"
+"%(e)s"
+msgstr ""
+"Liste \"%(listname)s\" introuvable\n"
+"%(e)s"
+
+#: bin/arch:170
+msgid "Cannot open mbox file %(mbox)s: %(msg)s"
+msgstr "Impossible d'ouvrir le fichier mbox %(mbox)s: %(msg)s"
+
+#: bin/b4b5-archfix:19
+msgid ""
+"Fix the MM2.1b4 archives.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] file ...\n"
+"\n"
+"Where options are:\n"
+" -h / --help\n"
+" Print this help message and exit.\n"
+"\n"
+"Only use this to `fix' some archive database files that may have gotten\n"
+"written in Mailman 2.1b4 with some bogus data. Use like this from your\n"
+"$PREFIX directory\n"
+"\n"
+"%% %(PROGRAM)s `grep -l _mlist archives/private/*/database/*-article`\n"
+"\n"
+"(note the backquotes are required)\n"
+"\n"
+"You will need to run `bin/check_perms -f' after running this script.\n"
+msgstr ""
+"Répare les archives de la version MM2.1b4.\n"
+"\n"
+"Usage : %(PROGRAM)s [options] fichier ...\n"
+"\n"
+"où les options sont :\n"
+" -h / --help\n"
+"\tImprimer ce message d'aide et quitter.\n"
+"\n"
+"N'utiliser que pour 'réparer' certaines archives crées par Mailman 2.1b4\n"
+"qui peuvent contenir des données corrompues. A utiliser comme suit, à partir "
+"du\n"
+"répertoire $PREFIX \n"
+"\n"
+"%% %(PROGRAM)s `grep -l _mlist archives/private/*/database/*-article`\n"
+"\n"
+"(notez que les guillemets sont requis)\n"
+"\n"
+"Vous aurez besoin d'éxecuter 'bin/check_perrms -f' après le script.\n"
+
+#: bin/change_pw:19
+msgid ""
+"Change a list's password.\n"
+"\n"
+"Prior to Mailman 2.1, list passwords were kept in crypt'd format -- "
+"usually.\n"
+"Some Python installations didn't have the crypt module available, so they'd\n"
+"fall back to md5. Then suddenly the Python installation might grow a crypt\n"
+"module and all list passwords would be broken.\n"
+"\n"
+"In Mailman 2.1, all list and site passwords are stored in SHA1 hexdigest\n"
+"form. This breaks list passwords for all existing pre-Mailman 2.1 lists, "
+"and\n"
+"since those passwords aren't stored anywhere in plain text, they cannot be\n"
+"retrieved and updated.\n"
+"\n"
+"Thus, this script generates new passwords for a list, and optionally sends "
+"it\n"
+"to all the owners of the list.\n"
+"\n"
+"Usage: change_pw [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" --all / -a\n"
+" Change the password for all lists.\n"
+"\n"
+" --domain=domain\n"
+" -d domain\n"
+" Change the password for all lists in the virtual domain `domain'. "
+"It\n"
+" is okay to give multiple -d options.\n"
+"\n"
+" --listname=listname\n"
+" -l listname\n"
+" Change the password only for the named list. It is okay to give\n"
+" multiple -l options.\n"
+"\n"
+" --password=newpassword\n"
+" -p newpassword\n"
+" Use the supplied plain text password `newpassword' as the new "
+"password\n"
+" for any lists that are being changed (as specified by the -a, -d, "
+"and\n"
+" -l options). If not given, lists will be assigned a randomly\n"
+" generated new password.\n"
+"\n"
+" --quiet / -q\n"
+" Don't notify list owners of the new password. You'll have to have\n"
+" some other way of letting the list owners know the new password\n"
+" (presumably out-of-band).\n"
+"\n"
+" --help / -h\n"
+" Print this help message and exit.\n"
+msgstr ""
+"Changer le mot de passe d'une liste.\n"
+"\n"
+"Avant la version 2.1 de Mailman, les mots de passe des listes étaient\n"
+"encryptés avec crypt -- Généralement\n"
+"Certaines installations de Python ne disposaient pas du module crypt,\n"
+"md5 est alors utilisé. Puis, subitement, ces installations évoluent\n"
+"et finissent par supporter crypt, du coup, la liste des mots de passe \n"
+"devient incohérente. \n"
+"\n"
+"Avec Mailman 2.1, tous les mots de passe des listes et du site sont\n"
+"stockés au format SHA1 hexdigest. Cela rompt la cohérence de tous les\n"
+"mots de passe des listes sous une version Mailman pré 2.1 puisque ces\n"
+"mot de passe ne sont stockés nulle part en texte clair, et ne peuvent\n"
+"donc être récupérés pour être mis à jour.\n"
+"\n"
+"Ainsi, ce script génère de nouveaux mots de passe pour la liste et les\n"
+"envoit accessoirement aux propriétaires des listes.\n"
+"\n"
+"Usage: change_pw [options]\n"
+"\n"
+" --all / -a\n"
+" Changer les mots de passe pour toute les listes.\n"
+"\n"
+" --domain=domaine\n"
+" -d domaine\n"
+" Changer les mots de passe pour toute les listes dans le\n"
+" domaine virtuel `domaine'.\n"
+" Il est possible de fournir plusieurs options -d.\n"
+"\n"
+" --listname=nom_de_liste\n"
+" -l nom_de_liste\n"
+" Changer les mots de passe seulement pour la liste nommée. Il\n"
+" est possible d'avoir plusieurs options -l.\n"
+"\n"
+" --password=nouveau_mot_de_passe\n"
+" -p nouveau_mot_de_passe\n"
+" Utiliser le mot de passe `nouveau_mot_de_passe' comme le\n"
+" nouveau de passe pour chaque liste changée (telle que\n"
+" spécifiées par les options -a, -d et -l). Lorsque cette option\n"
+" n'est pas fournie, un mot de passe aléatoire sera assigné à la\n"
+" liste.\n"
+"\n"
+" --quiet / -q\n"
+" N'envoie pas d'avis au propriétaire de la liste concernant le\n"
+" changement de mot de passe. Vous devrez avoir un autre moyen\n"
+" d'aviser le propriétaire de la liste (probablement de façon\n"
+" informelle).\n"
+"\n"
+" --help / -h\n"
+" Afficher ce message d'aide puis quitter.\n"
+
+#: bin/change_pw:144
+msgid "Bad arguments: %(strargs)s"
+msgstr "Mauvais arguments: %(strargs)s"
+
+#: bin/change_pw:148
+msgid "Empty list passwords are not allowed"
+msgstr "Les mot de passe vide pour la liste ne sont pas admis"
+
+#: bin/change_pw:179
+msgid "New %(listname)s password: %(notifypassword)s"
+msgstr "Nouveau mot de passe de %(listname)s: %(notifypassword)s"
+
+#: bin/change_pw:188
+msgid "Your new %(listname)s list password"
+msgstr "Votre nouveau mot de passe pour %(listname)s"
+
+#: bin/change_pw:189
+msgid ""
+"The site administrator at %(hostname)s has changed the password for your\n"
+"mailing list %(listname)s. It is now\n"
+"\n"
+" %(notifypassword)s\n"
+"\n"
+"Please be sure to use this for all future list administration. You may "
+"want\n"
+"to log in now to your list and change the password to something more to "
+"your\n"
+"liking. Visit your list admin page at\n"
+"\n"
+" %(adminurl)s\n"
+msgstr ""
+"L'administrateur du site %(hostname)s a changé votre mot de passe pour la\n"
+"liste %(listname)s. Le nouveau mot de passe est\n"
+"\n"
+"\t%(notifypassword)s\n"
+"\n"
+"De grâce veuillez utilisez celui-ci pour les tâches administratives à venir\n"
+"Vous pourrez vous connecter à votre liste maintenant et remplacer ce mot de\n"
+"passe avec un autre que vous préferez. visitez la page d'administration\n"
+"de votre liste à l'adresse\n"
+"\n"
+"\t%(adminurl)s\n"
+
+#: bin/check_db:19
+msgid ""
+"Check a list's config database file for integrity.\n"
+"\n"
+"All of the following files are checked:\n"
+"\n"
+" config.pck\n"
+" config.pck.last\n"
+" config.db\n"
+" config.db.last\n"
+" config.safety\n"
+"\n"
+"It's okay if any of these are missing. config.pck and config.pck.last are\n"
+"pickled versions of the config database file for 2.1a3 and beyond. config."
+"db\n"
+"and config.db.last are used in all earlier versions, and these are Python\n"
+"marshals. config.safety is a pickle written by 2.1a3 and beyond when the\n"
+"primary config.pck file could not be read.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname [listname ...]]\n"
+"\n"
+"Options:\n"
+"\n"
+" --all / -a\n"
+" Check the databases for all lists. Otherwise only the lists named "
+"on\n"
+" the command line are checked.\n"
+"\n"
+" --verbose / -v\n"
+" Verbose output. The state of every tested file is printed.\n"
+" Otherwise only corrupt files are displayed.\n"
+"\n"
+" --help / -h\n"
+" Print this text and exit.\n"
+msgstr ""
+"Vérifier l'intégrité la base de donnée de configuration d'une liste.\n"
+"\n"
+"Les fichiers suivants sont tous vérifiés:\n"
+"\n"
+" config.pck\n"
+" config.pck.last\n"
+" config.db\n"
+" config.db.last\n"
+" config.safety\n"
+"\n"
+"Il n y a pas de problème à ce qu'un de ces fichiers soit\n"
+"absent. config.pck et config.pck.last sont les versions `assaisonnées'\n"
+"(pickle) de la base de données de configuration pour les versions\n"
+"2.1a3 et ultérieure lorsque le fichier principal config.pck ne peut\n"
+"être lu.\n"
+"\n"
+"\"Usage: %(PROGRAM)s [options] [nomliste [nomliste ...]]\\n\"\n"
+"\n"
+"Options:\n"
+"\n"
+" --all / -a\n"
+" Vérifier toutes les bases de données pour toutes les listes. Si\n"
+" cette option n'est pas fournie, seule la liste spécifiée en\n"
+" ligne de commande est contrôlée.\n"
+"\n"
+" --verbose / -v\n"
+" Sortie verbeuse. L'état de chaque fichier testé est affiché. Si\n"
+" cette option n'est pas fournie, seul l'état des fichiers\n"
+" corrompus est affiché.\n"
+"\n"
+" --help / -h\n"
+" Afficher ce texte et sortir.\n"
+
+#: bin/check_db:119
+msgid "No list named:"
+msgstr "Aucune liste nommée:"
+
+#: bin/check_db:128
+msgid "List:"
+msgstr "Liste:"
+
+#: bin/check_db:148
+msgid " %(file)s: okay"
+msgstr " %(file)s: Ok"
+
+#: bin/check_perms:19
+msgid ""
+"Check the permissions for the Mailman installation.\n"
+"\n"
+"Usage: %(PROGRAM)s [-f] [-v] [-h]\n"
+"\n"
+"With no arguments, just check and report all the files that have bogus\n"
+"permissions or group ownership. With -f (and run as root), fix all the\n"
+"permission problems found. With -v be verbose.\n"
+"\n"
+msgstr ""
+"Vérifier les permissions pour l'installation de Mailman.\n"
+"\n"
+"Usage: %(PROGRAM)s [-f] [-v] [-h]\n"
+"\n"
+"Sans arguments, ce programme vérifie les permissions sur tous les\n"
+"fichiers et génère un rapport contenant les fichiers à permissions\n"
+"problématiques. Avec l'option -f (lorsqu'exécuté par root), le\n"
+"programme règle tous les problèmes de permission trouvés. Avec\n"
+"l'option -v, il devient bavard.\n"
+"\n"
+
+#: bin/check_perms:85
+msgid " checking gid and mode for %(path)s"
+msgstr " vérification du gid et du mode pour %(path)s"
+
+#: bin/check_perms:97
+msgid "%(path)s bad group (has: %(groupname)s, expected %(MAILMAN_GROUP)s)"
+msgstr ""
+"Mauvais gid pour %(path)s (Obtenu: %(groupname)s, Attendu %(MAILMAN_GROUP)s)"
+
+#: bin/check_perms:120
+msgid "directory permissions must be %(octperms)s: %(path)s"
+msgstr ""
+"Les permissions sur les répertoires doivent être de %(octperms)s: %(path)s"
+
+#: bin/check_perms:129
+msgid "source perms must be %(octperms)s: %(path)s"
+msgstr "Les permissions sur les sources doivent être de %(octperms)s: %(path)s"
+
+#: bin/check_perms:140
+msgid "article db files must be %(octperms)s: %(path)s"
+msgstr ""
+"Les permissions sur les fichiers db doivent être de %(octperms)s: %(path)s"
+
+#: bin/check_perms:152
+msgid "checking mode for %(prefix)s"
+msgstr "Vérification du mode pour %(prefix)s"
+
+#: bin/check_perms:160
+msgid "directory must be at least 02775: %(d)s"
+msgstr "Les répertoires doivent être au moins en 02775: %(d)s"
+
+#: bin/check_perms:173
+msgid "checking perms on %(private)s"
+msgstr "Vérification des permissions sur %(private)s"
+
+#: bin/check_perms:178
+msgid "%(private)s must not be other-readable"
+msgstr "%(private)s ne doit pas être lisible par \"other\""
+
+#: bin/check_perms:198
+msgid "mbox file must be at least 0660:"
+msgstr "Un fichier mbox doit avoir un jeu de permissions d'au moins 0660:"
+
+#: bin/check_perms:222
+msgid "%(dbdir)s \"other\" perms must be 000"
+msgstr "%(dbdir)s les permissions pour \"other\" doivent être de 000"
+
+#: bin/check_perms:233
+msgid "checking cgi-bin permissions"
+msgstr "Vérification des permissions du répertoire cgi-bin"
+
+#: bin/check_perms:238
+msgid " checking set-gid for %(path)s"
+msgstr "\tVérification du bit set-gid pour %(path)s"
+
+#: bin/check_perms:242
+msgid "%(path)s must be set-gid"
+msgstr "le bit set-gid doit être actif sur %(path)s"
+
+#: bin/check_perms:252
+msgid "checking set-gid for %(wrapper)s"
+msgstr "vérification du bit set-gid pour %(wrapper)s"
+
+#: bin/check_perms:256
+msgid "%(wrapper)s must be set-gid"
+msgstr "%(wrapper)s doit avoir le bit set-gid activé"
+
+#: bin/check_perms:266
+msgid "checking permissions on %(pwfile)s"
+msgstr "Vérification des permissions sur %(pwfile)s"
+
+#: bin/check_perms:275
+msgid "%(pwfile)s permissions must be exactly 0640 (got %(octmode)s)"
+msgstr ""
+"le fichier %(pwfile)s doit avoir un jeu de permissions de 0640 exactement "
+"(obtenu: %(octmode)s)"
+
+#: bin/check_perms:299
+msgid "checking permissions on list data"
+msgstr "Vérification des permissions sur les données de la liste"
+
+#: bin/check_perms:305
+msgid " checking permissions on: %(path)s"
+msgstr "\tVérification des permission sur: %(path)s"
+
+#: bin/check_perms:313
+msgid "file permissions must be at least 660: %(path)s"
+msgstr "Les permissions sur les fichiers doivent au moins être 660: %(path)s"
+
+#: bin/check_perms:359
+msgid "No problems found"
+msgstr "Aucun problème trouvé"
+
+#: bin/check_perms:361
+msgid "Problems found:"
+msgstr "Problèmes trouvés:"
+
+#: bin/check_perms:362
+msgid "Re-run as %(MAILMAN_USER)s (or root) with -f flag to fix"
+msgstr ""
+"Ré-éxecuter en tant que %(MAILMAN_USER)s (ou root) avec l'option -f pour "
+"réparer"
+
+#: bin/cleanarch:19
+msgid ""
+"Clean up an .mbox archive file.\n"
+"\n"
+"The archiver looks for Unix-From lines separating messages in an mbox "
+"archive\n"
+"file. For compatibility, it specifically looks for lines that start with\n"
+"\"From \" -- i.e. the letters capital-F, lowercase-r, o, m, space, ignoring\n"
+"everything else on the line.\n"
+"\n"
+"Normally, any lines that start \"From \" in the body of a message should be\n"
+"escaped such that a > character is actually the first on a line. It is\n"
+"possible though that body lines are not actually escaped. This script\n"
+"attempts to fix these by doing a stricter test of the Unix-From lines. Any\n"
+"lines that start \"From \" but do not pass this stricter test are escaped "
+"with a\n"
+"> character.\n"
+"\n"
+"Usage: cleanarch [options] < inputfile > outputfile\n"
+"Options:\n"
+" -s n\n"
+" --status=n\n"
+" Print a # character every n lines processed\n"
+"\n"
+" -q / --quiet\n"
+" Don't print changed line information to standard error.\n"
+"\n"
+" -n / --dry-run\n"
+" Don't actually output anything.\n"
+"\n"
+" -h / --help\n"
+" Print this message and exit\n"
+msgstr ""
+"Nettoie un fichier archive .mbox\n"
+"\n"
+"L'archiveur recherche des lignes Unix-From séparant les messages dans\n"
+"le fichier archive mbox. Pour la compatibilité, il recherche en\n"
+"particulier les lignes qui commencent par un \"From \" -- i.e. la lettre\n"
+"F-Majuscule, r-minuscule, o, m, espace et rien d'autre.\n"
+"\n"
+"En principe chaque ligne commençant par un \"From \" dans le corps du\n"
+"message devrait être échappée de sorte que le caractère > soit le début\n"
+"de la ligne. Il est toutefois possible que le corps du message ne soit\n"
+"pas échappé, ce script essaie de corriger cela en effectuant un test\n"
+"plus strict de lignes de type Unix-From. Toute ligne commençant par\n"
+"\"From \" qui ne passe pas ce test sera échappée par le caractère >.\n"
+"\n"
+"Usage: cleanarch [options] < fichierentree > fichiersortie\n"
+"Options:\n"
+" -s n\n"
+" --status=n\n"
+" Affiche le caractère # après le traitement de chaque n lignes\n"
+"\n"
+" -q / --quiet\n"
+" Ne pas afficher d'information sur la ligne modifiée sur la\n"
+"sortie standard.\n"
+"\n"
+" -n / --dry-run\n"
+" Ne rien afficher du tout.\n"
+"\n"
+" -h / --help\n"
+" Affiche ce message et quitter\n"
+
+#: bin/cleanarch:82
+msgid "Unix-From line changed: %(lineno)d"
+msgstr "Ligne Unix-From modifiée: %(lineno)d"
+
+#: bin/cleanarch:110
+msgid "Bad status number: %(arg)s"
+msgstr "Mauvais numéros de statut: %(arg)s"
+
+#: bin/cleanarch:160
+msgid "%(messages)d messages found"
+msgstr "%(messages)d messages trouvés"
+
+#: bin/clone_member:19
+msgid ""
+"Clone a member address.\n"
+"\n"
+"Cloning a member address means that a new member will be added who has all "
+"the\n"
+"same options and passwords as the original member address. Note that this\n"
+"operation is fairly trusting of the user who runs it -- it does no\n"
+"verification to the new address, it does not send out a welcome message, "
+"etc.\n"
+"\n"
+"The existing member's subscription is usually not modified in any way. If "
+"you\n"
+"want to remove the old address, use the -r flag. If you also want to "
+"change\n"
+"any list admin addresses, use the -a flag.\n"
+"\n"
+"Usage:\n"
+" clone_member [options] fromoldaddr tonewaddr\n"
+"\n"
+"Where:\n"
+"\n"
+" --listname=listname\n"
+" -l listname\n"
+" Check and modify only the named mailing lists. If -l is not given,\n"
+" then all mailing lists are scanned from the address. Multiple -l\n"
+" options can be supplied.\n"
+"\n"
+" --remove\n"
+" -r\n"
+" Remove the old address from the mailing list after it's been "
+"cloned.\n"
+"\n"
+" --admin\n"
+" -a\n"
+" Scan the list admin addresses for the old address, and clone or "
+"change\n"
+" them too.\n"
+"\n"
+" --quiet\n"
+" -q\n"
+" Do the modifications quietly.\n"
+"\n"
+" --nomodify\n"
+" -n\n"
+" Print what would be done, but don't actually do it. Inhibits the\n"
+" --quiet flag.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" fromoldaddr (`from old address') is the old address of the user. "
+"tonewaddr\n"
+" (`to new address') is the new address of the user.\n"
+"\n"
+msgstr ""
+"Cloner un abonné.\n"
+"\n"
+"Cloner l'adresse d'un abonné signifie que le nouvel abonné héritera de\n"
+"toutes les options de l'abonné cloné ainsi que de son mot de\n"
+"passe. Noter que ce programme fait confiance à l'utilisateur qui\n"
+"l'exécute -- il ne vérifie pas la nouvelle adresse, il n'envoie pas de\n"
+"message de bienvenue, etc.\n"
+"\n"
+"Les caractéristiques de l'abonné ne sont en général pas modifiées. Si\n"
+"vous voulez supprimer l'ancienne adresse, utilisez l'option -r. Si\n"
+"vous voulez changer une adresse d'administrateur de liste, utilisez\n"
+"l'option -a.\n"
+"\n"
+"Usage:\n"
+" clone_member [options] deancienneadddr versnouvelleaddr\n"
+"\n"
+"Où:\n"
+"\n"
+" --listname=nom_liste\n"
+" -l nom_liste\n"
+" Agir sur les seules listes nommées. Si -l n'est pas fournit,\n"
+" alors toutes les listes de diffusion sont scannées à la\n"
+" recherche de l'adresse. Il est admis d'avoir plusieurs -l.\n"
+"\n"
+" --remove\n"
+" -r\n"
+" Supprimer l'adresse de la liste après son clonage.\n"
+"\n"
+" --admin\n"
+" -a\n"
+" Scanner la liste à la recherche de l'ancienne adresse de\n"
+" l'administrateur et la remplacer ou la cloner.\n"
+"\n"
+" --quiet\n"
+" -q\n"
+" Faire les modifications sans tambour ni trompette.\n"
+"\n"
+" --nomodify\n"
+" -n\n"
+" Afficher ce qui devrait être fait, sans vraiment le\n"
+" faire. Ceci inhibe l'option -q\n"
+"\n"
+" --help\n"
+" -h\n"
+" Afficher ce message et sortir.\n"
+"\n"
+"deancienneaddr (`de ancienne adresse') est l'ancienne adresse\n"
+"utilisateur. versnouvelleaddr (`vers nouvelle adresse') est la nouvelle\n"
+"adresse de l'utilisateur.\n"
+
+#: bin/clone_member:94
+msgid "processing mailing list:"
+msgstr "Traitement de la liste:"
+
+#: bin/clone_member:101
+msgid " scanning list owners:"
+msgstr "\tBalayage des propriétaires de liste:"
+
+#: bin/clone_member:119
+msgid " new list owners:"
+msgstr "\tnouveaux propriétaires de liste:"
+
+#: bin/clone_member:121
+msgid "(no change)"
+msgstr "(pas de modifications)"
+
+#: bin/clone_member:130
+msgid " address not found:"
+msgstr "\tadresse non trouvée"
+
+#: bin/clone_member:139
+msgid " clone address added:"
+msgstr "\tadresse clone ajoutée:"
+
+#: bin/clone_member:142
+msgid " clone address is already a member:"
+msgstr "\tune adresse semblable est déjà abonnée:"
+
+#: bin/clone_member:145
+msgid " original address removed:"
+msgstr " Adresse d'origine supprimée:"
+
+#: bin/clone_member:196
+msgid "Not a valid email address: %(toaddr)s"
+msgstr "Adresse courriel invalide: %(toaddr)s"
+
+#: bin/clone_member:209
+msgid ""
+"Error opening list \"%(listname)s\", skipping.\n"
+"%(e)s"
+msgstr ""
+"Erreur lors de l'ouverture de la liste \"%(listname)s\", au suivant.\n"
+"%(e)s"
+
+#: bin/config_list:19
+msgid ""
+"Configure a list from a text file description.\n"
+"\n"
+"Usage: config_list [options] listname\n"
+"\n"
+"Options:\n"
+" --inputfile filename\n"
+" -i filename\n"
+" Configure the list by assigning each module-global variable in the\n"
+" file to an attribute on the list object, then saving the list. The\n"
+" named file is loaded with execfile() and must be legal Python code.\n"
+" Any variable that isn't already an attribute of the list object is\n"
+" ignored (a warning message is printed). See also the -c option.\n"
+"\n"
+" A special variable named `mlist' is put into the globals during the\n"
+" execfile, which is bound to the actual MailList object. This lets "
+"you\n"
+" do all manner of bizarre thing to the list object, but BEWARE! "
+"Using\n"
+" this can severely (and possibly irreparably) damage your mailing "
+"list!\n"
+"\n"
+" --outputfile filename\n"
+" -o filename\n"
+" Instead of configuring the list, print out a list's configuration\n"
+" variables in a format suitable for input using this script. In "
+"this\n"
+" way, you can easily capture the configuration settings for a\n"
+" particular list and imprint those settings on another list. "
+"filename\n"
+" is the file to output the settings to. If filename is `-', "
+"standard\n"
+" out is used.\n"
+"\n"
+" --checkonly\n"
+" -c\n"
+" With this option, the modified list is not actually changed. Only\n"
+" useful with -i.\n"
+"\n"
+" --verbose\n"
+" -v\n"
+" Print the name of each attribute as it is being changed. Only "
+"useful\n"
+" with -i.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+"The options -o and -i are mutually exclusive.\n"
+"\n"
+msgstr ""
+"Configurer une liste à partir des descriptions contenues dans un\n"
+"fichier texte.\n"
+"\n"
+"Usage: config_list [options] nom_liste\n"
+"\n"
+"Options:\n"
+" --inputfile nom_fichier\n"
+" -i nom_fichier\n"
+" Configurer la liste en attribuant à chaque objet de la liste\n"
+" une variable globale de module contenue dans le fichier, puis\n"
+" sauvegarder la liste. Le fichier nommé est chargé par\n"
+" l'entremise d'execfile() et doit être un code Python valide.\n"
+" Toute variable ne correspondant pas à un attribut de l'objet\n"
+" liste est ignorée (un message est affiché). Voyez également\n"
+" l'option -c.\n"
+"\n"
+" Une variable spéciale appelée `mlist' est insérée dans\n"
+" l'espace global durant l'appel execfile, cette variable est\n"
+" actuellement attachée à l'objet MailList courant. Ceci vous\n"
+" permet de faire toute sortes de choses bizarres à l'objet\n"
+" liste, mais prenez garde, cela pourrait profondément et (même\n"
+" irréversiblement) endommager votre liste! \n"
+"\n"
+" --outputfile nom_fichier\n"
+" -o nom_fichier\n"
+" Au lieu de configurer la liste, sortir les variables de\n"
+" configuration de liste sous un format utilisable par ce\n"
+" script. De cette façon, vous pourrez facilement recueillir la\n"
+" configuration d'une liste et l'attacher à une autre liste.\n"
+" nom_fichier est le fichier utilisé pour la sortie. Si `-' est\n"
+" fourni comme nom_fichier, alors la sortie standard est\n"
+" utilisée.\n"
+"\n"
+" --checkonly\n"
+" -c\n"
+" Avec cette option, la liste cible n'est pas vraiment modifiée,\n"
+" ceci est seulement utile avec -i.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Afficher ce message puis quitter.\n"
+"\n"
+"Les options -o et -i s'excluent mutuellement\n"
+
+#: bin/config_list:109
+msgid ""
+"## \"%(listname)s\" mailing list configuration settings -*- python -*-\n"
+"## captured on %(when)s\n"
+msgstr ""
+"## Paramètres de configuration de la liste \"%(listname)s\" -*- python -*-\n"
+"## Capturé le %(when)s\n"
+
+#: bin/config_list:131
+msgid "options"
+msgstr "options"
+
+#: bin/config_list:188
+msgid "legal values are:"
+msgstr "Les valeurs admises sont:"
+
+#: bin/config_list:255
+msgid "attribute \"%(k)s\" ignored"
+msgstr "propriété \"%(k)s\" ignorée"
+
+#: bin/config_list:258
+msgid "attribute \"%(k)s\" changed"
+msgstr "propriété \"%(k)s\" modifiée"
+
+#: bin/config_list:264
+msgid "Non-standard property restored: %(k)s"
+msgstr "Propriété non-standard réactivée: %(k)s"
+
+#: bin/config_list:272
+msgid "Invalid value for property: %(k)s"
+msgstr "Valeur invalide pour la propriété: %(k)s"
+
+#: bin/config_list:274
+msgid "Bad email address for option %(k)s: %(v)s"
+msgstr "Adresse courriel invalide pour l'option %(k)s: %(v)s"
+
+#: bin/config_list:322
+msgid "Only one of -i or -o is allowed"
+msgstr "Une seule des options -i ou -o est autorisée"
+
+#: bin/config_list:324
+msgid "One of -i or -o is required"
+msgstr "Une des options -i ou -o est requise"
+
+#: bin/config_list:328
+msgid "List name is required"
+msgstr "Le nom de la liste est requis"
+
+#: bin/convert.py:19
+msgid ""
+"Convert a list's interpolation strings from %-strings to $-strings.\n"
+"\n"
+"This script is intended to be run as a bin/withlist script, i.e.\n"
+"\n"
+"% bin/withlist -l -r convert <mylist>\n"
+msgstr ""
+"Transforme toutes les chaînes d'interpolation %-chaine en $-chaine.\n"
+"\n"
+"Ce script doit être exécuté comme un script bin/withlist, i.e.\n"
+"\n"
+"% bin/withlist -l -r convert <maliste>\n"
+
+#: bin/convert.py:38 bin/fix_url.py:85
+msgid "Saving list"
+msgstr "Sauvegarde de la liste"
+
+#: bin/convert.py:44 bin/fix_url.py:51
+msgid "%%%"
+msgstr "%%%"
+
+#: bin/dumpdb:19
+msgid ""
+"Dump the contents of any Mailman `database' file.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] filename\n"
+"\n"
+"Options:\n"
+"\n"
+" --marshal/-m\n"
+" Assume the file contains a Python marshal, overridding any "
+"automatic\n"
+" guessing.\n"
+"\n"
+" --pickle/-p\n"
+" Assume the file contains a Python pickle, overridding any automatic\n"
+" guessing.\n"
+"\n"
+" --noprint/-n\n"
+" Don't attempt to pretty print the object. This is useful if "
+"there's\n"
+" some problem with the object and you just want to get an unpickled\n"
+" representation. Useful with `python -i bin/dumpdb <file>'. In "
+"that\n"
+" case, the root of the tree will be left in a global called \"msg\".\n"
+"\n"
+" --help/-h\n"
+" Print this help message and exit\n"
+"\n"
+"If the filename ends with `.db', then it is assumed that the file contains "
+"a\n"
+"Python marshal. If the file ends with `.pck' then it is assumed to contain "
+"a\n"
+"Python pickle. In either case, if you want to override the default "
+"assumption\n"
+"-- or if the file ends in neither suffix -- use the -p or -m flags.\n"
+msgstr ""
+"Extrait le contenu de n'importe quel fichier `base de donnée' de\n"
+"Mailman.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] nom_fichier\n"
+"\n"
+" --marshal/-m\n"
+" Suppose que le fichier contient un marshal Python, annulant\n"
+" toute forme de détection automatique.\n"
+"\n"
+" --pickle/-p\n"
+" Suppose que le fichier contient un pickle Python, annulant\n"
+" ainsi toute forme de détection automatique.\n"
+"\n"
+" --noprint/-n\n"
+" Ne pas essayer d'afficher les objets sous un format\n"
+" élégant. Ceci est surtout utile lorsque vous avez des\n"
+" problèmes avec les objets et désirer juste en avoir une\n"
+" représentation non Picklé. Utile avec `python -i bin/dumpdb\n"
+" <file>'. Dans ce cas, la racine de l'arbre sera globale et\n"
+" sera apellée \"msg\".\n"
+"\n"
+"\n"
+" --help/-h\n"
+" Affiche ce message et quitte.\n"
+"\n"
+"Si le fichier se termine par `.db', alors le fichier est supposé\n"
+"contenir du marshal Python. S'il se termine par `.pck' alors il est\n"
+"supposé contenir du pickle Python. Dans tous les cas, si vous voulez\n"
+"annuler la détection automatique -- ou si le fichier n'a pas l'un de\n"
+"ces suffixes -- utilisez l'une des options -p ou -m.\n"
+
+#: bin/dumpdb:101
+msgid "No filename given."
+msgstr "Aucun nom de fichier fourni."
+
+#: bin/dumpdb:104
+msgid "Bad arguments: %(pargs)s"
+msgstr "Mauvais argument: %(pargs)s"
+
+#: bin/dumpdb:114
+msgid "Please specify either -p or -m."
+msgstr "Veuillez spécifier l'une des options -p ou -m."
+
+#: bin/find_member:19
+msgid ""
+"Find all lists that a member's address is on.\n"
+"\n"
+"Usage:\n"
+" find_member [options] regex [regex [...]]\n"
+"\n"
+"Where:\n"
+" --listname=listname\n"
+" -l listname\n"
+" Include only the named list in the search.\n"
+"\n"
+" --exclude=listname\n"
+" -x listname\n"
+" Exclude the named list from the search.\n"
+"\n"
+" --owners\n"
+" -w\n"
+" Search list owners as well as members.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" regex\n"
+" A Python regular expression to match against.\n"
+"\n"
+"The interaction between -l and -x is as follows. If any -l option is given\n"
+"then only the named list will be included in the search. If any -x option "
+"is\n"
+"given but no -l option is given, then all lists will be search except those\n"
+"specifically excluded.\n"
+"\n"
+"Regular expression syntax is Perl5-like, using the Python re module. "
+"Complete\n"
+"specifications are at:\n"
+"\n"
+"http://www.python.org/doc/current/lib/module-re.html\n"
+"\n"
+"Address matches are case-insensitive, but case-preserved addresses are\n"
+"displayed.\n"
+"\n"
+msgstr ""
+"Trouver toute les listes contenant l'adresse d'un abonné.\n"
+"\n"
+"Usage:\n"
+" find_member [options] regex [regex [...]]\n"
+"\n"
+"Où:\n"
+" --listname=nom_liste\n"
+" -l nom_liste\n"
+" Ne considérer que la liste fournie pour la recherche.\n"
+"\n"
+" --exclude=nom_liste\n"
+" -x nom_liste\n"
+" Ne pas considérer la liste nommée dans la recherche.\n"
+"\n"
+" --owners\n"
+" -w\n"
+" Considérer les propriétaires de listes comme candidats\n"
+" potentiels.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Afficher ce message d'aide et quitter.\n"
+"\n"
+" regex\n"
+" Une expression régulière Python pour la comparaison.\n"
+"\n"
+"L'interaction entre les options -l et -x se passe comme suit: Si une\n"
+"option -l est fournie, alors cette liste sera une cible de\n"
+"recherche. Si une option -x est fournie sans option -l, alors toute\n"
+"les listes sauf celles spécifiées avec une options -x seront\n"
+"utilisées. La syntaxe des expressions régulières est celle de Perl5\n"
+"avec l'utilisation du module re de Python. Les spécifications\n"
+"complètes sont disponible à\n"
+"http://www.python.org/doc/current/lib/module-re.html\n"
+"\n"
+"La comparaison des adresses se fait avec non respect de la casse tandis\n"
+"que les résultats trouvés seront affichés avec leurs casses\n"
+"originales.\n"
+"\n"
+
+#: bin/find_member:159
+msgid "Search regular expression required"
+msgstr "Recherche d'expression regulière requise"
+
+#: bin/find_member:164
+msgid "No lists to search"
+msgstr "Pas de liste disponible pour effectuer la recherche"
+
+#: bin/find_member:173
+msgid "found in:"
+msgstr "trouvé dans:"
+
+#: bin/find_member:179
+msgid "(as owner)"
+msgstr "(comme propriétaire)"
+
+#: bin/fix_url.py:19
+msgid ""
+"Reset a list's web_page_url attribute to the default setting.\n"
+"\n"
+"This script is intended to be run as a bin/withlist script, i.e.\n"
+"\n"
+"% bin/withlist -l -r fix_url listname [options]\n"
+"\n"
+"Options:\n"
+" -u urlhost\n"
+" --urlhost=urlhost\n"
+" Look up urlhost in the virtual host table and set the web_page_url "
+"and\n"
+" host_name attributes of the list to the values found. This\n"
+" essentially moves the list from one virtual domain to another.\n"
+"\n"
+" Without this option, the default web_page_url and host_name values "
+"are\n"
+" used.\n"
+"\n"
+" -v / --verbose\n"
+" Print what the script is doing.\n"
+"\n"
+"If run standalone, it prints this help text and exits.\n"
+msgstr ""
+"Remet les valeurs par défaut de url_page_web d'une liste.\n"
+"\n"
+"Ce script est destiné à être exécuté en tant que bin/withlist, i.e\n"
+"\n"
+"% bin/withlist -l -r fix_url nomdeliste [options]\n"
+"\n"
+"Options :\n"
+" -u url_hôte\n"
+" --urlhost=url_hôte\n"
+" Vérifie l'url_hôte dans la table des hôtes virtuels, renvoie les valeurs trouvées "
+"dans\n"
+" l'url_web_page et nom_hôte de la liste. Ceci permet essentiellement de passer\n"
+" d'un domaine virtuel à un autre.\n"
+"\n"
+" Sans cette option, les valeurs par défaut de url_page_web et nom_hôte "
+"sont\n"
+" utilisées.\n"
+"\n"
+" -v / --verbose\n"
+" Affiche ce que fait le script.\n"
+"\n"
+"Lancé sans option, le script affiche ce texte d'aide et quitte.\n"
+
+#: bin/fix_url.py:80
+msgid "Setting web_page_url to: %(web_page_url)s"
+msgstr "réglage de url_page_web à : %(web_page_url)s"
+
+#: bin/fix_url.py:83
+msgid "Setting host_name to: %(mailhost)s"
+msgstr "Réglage de nom_hôte à : %(mailhost)s"
+
+#: bin/genaliases:19
+msgid ""
+"Regenerate Postfix's data/aliases and data/aliases.db files from scratch.\n"
+"\n"
+"Usage:\n"
+"\n"
+" genaliases [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+msgstr ""
+"Régénérer les fichiers Postfix data/aliases et data/aliases.db à\n"
+"partir de rien.\n"
+"\n"
+"Usage:\n"
+"\n"
+" genaliases [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" -h/--help\n"
+" Afficher ce message et quitter.\n"
+
+#: bin/inject:19
+msgid ""
+"Inject a message from a file into Mailman's incoming queue.\n"
+"\n"
+"Usage: inject [options] [filename]\n"
+"\n"
+"Options:\n"
+"\n"
+" -h / --help\n"
+" Print this text and exit.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" The name of the list to inject this message to. Required.\n"
+"\n"
+" -q queuename\n"
+" --queue=queuename\n"
+" The name of the queue to inject the message to. The queuename must "
+"be\n"
+" one of the directories inside the qfiles directory. If omitted, "
+"the\n"
+" incoming queue is used.\n"
+"\n"
+"filename is the name of the plaintext message file to inject. If omitted,\n"
+"standard input is used.\n"
+msgstr ""
+"Injecter un message d'un fichier vers la file d'attente d'arrivée de\n"
+"Mailman.\n"
+"\n"
+"Usage: inject [options] [nomfichier]\n"
+"\n"
+"Options:\n"
+"\n"
+" -h / --help\n"
+" Affiche ce message et quitte.\n"
+"\n"
+" -l nomliste\n"
+" --listname=nomliste\n"
+" Le nom de la liste dans laquelle le message sera\n"
+" injecté. Obligatoire.\n"
+"\n"
+" -q nomfileattente\n"
+" --queue=nomfileattente\n"
+" Le nom de la file d'attente réceptrice du\n"
+" message. nomfileattente doit être un sous-répertoire du\n"
+" répertoire qfiles. Si vous l'omettez, la file d'attente\n"
+" d'arrivée sera utilisée.\n"
+"\n"
+"nomfichier est le nom du fichier contenant le message texte brut à\n"
+"injecter. L'entrée standard est utilisée si vous l'omettez.\n"
+
+#: bin/inject:83
+msgid "Bad queue directory: %(qdir)s"
+msgstr "Nom de répertoire file d'attente erroné: %(qdir)s"
+
+#: bin/inject:88
+msgid "A list name is required"
+msgstr "Un nom de liste est requis"
+
+#: bin/list_admins:19
+msgid ""
+"List all the owners of a mailing list.\n"
+"\n"
+"Usage: %(program)s [options] listname ...\n"
+"\n"
+"Where:\n"
+"\n"
+" --all-vhost=vhost\n"
+" -v=vhost\n"
+" List the owners of all the mailing lists for the given virtual "
+"host.\n"
+"\n"
+" --all\n"
+" -a\n"
+" List the owners of all the mailing lists on this system.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+"`listname' is the name of the mailing list to print the owners of. You can\n"
+"have more than one named list on the command line.\n"
+msgstr ""
+"Liste tous les propriétaires d'une liste de diffusion.\n"
+"\n"
+"Usage: %(program)s [options] nom_liste ...\n"
+"\n"
+"Où:\n"
+"\n"
+" -all-vhost=hôte_virtuel\n"
+" -v=hôte_virtuel\n"
+" Lister les propriétaires de toute les listes de diffusion pour\n"
+" l'hôte virtuel spécifié.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Affiche ce message et quitte.\n"
+"\n"
+"`nom_liste' est le nom de la liste de diffusion pour lequel les noms\n"
+"des propriétaires doivent être affichés. Vous pouvez spécifier plus\n"
+"d'une liste sur la ligne de commande.\n"
+
+#: bin/list_admins:96
+msgid "List: %(listname)s, \tOwners: %(owners)s"
+msgstr "Liste: %(listname)s, \tPropriétaire: %(owners)s"
+
+#: bin/list_lists:19
+msgid ""
+"List all mailing lists.\n"
+"\n"
+"Usage: %(program)s [options]\n"
+"\n"
+"Where:\n"
+"\n"
+" -a / --advertised\n"
+" List only those mailing lists that are publically advertised\n"
+"\n"
+" --virtual-host-overview=domain\n"
+" -V domain\n"
+" List only those mailing lists that are homed to the given virtual\n"
+" domain. This only works if the VIRTUAL_HOST_OVERVIEW variable is\n"
+" set.\n"
+"\n"
+" -b / --bare\n"
+" Displays only the list name, with no description.\n"
+"\n"
+" -h / --help\n"
+" Print this text and exit.\n"
+"\n"
+msgstr ""
+"Lister toutes les listes de diffusion.\n"
+"\n"
+"Usage: %(program)s [options]\n"
+"\n"
+" --advertised\n"
+" -a\n"
+" Afficher juste les listes de diffusion qui sont publiquement\n"
+" annoncées.\n"
+"\n"
+" --virtual-host-overview=domaine\n"
+" -V domaine\n"
+" Afficher juste les listes de diffusion qui sont gérées sous le\n"
+" domaine virtuel spécifié. Cela ne fonctionne que si la\n"
+" variable VIRTUAL_HOST_OVERVIEW est définie.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Afficher ce message puis quitter.\n"
+"\n"
+
+#: bin/list_lists:105
+msgid "No matching mailing lists found"
+msgstr "Pas de liste correspondante"
+
+#: bin/list_lists:109
+msgid "matching mailing lists found:"
+msgstr "listes correspondantes trouvées:"
+
+#: bin/list_members:19
+msgid ""
+"List all the members of a mailing list.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] listname\n"
+"\n"
+"Where:\n"
+"\n"
+" --output file\n"
+" -o file\n"
+" Write output to specified file instead of standard out.\n"
+"\n"
+" --regular / -r\n"
+" Print just the regular (non-digest) members.\n"
+"\n"
+" --digest[=kind] / -d [kind]\n"
+" Print just the digest members. Optional argument can be \"mime\" "
+"or\n"
+" \"plain\" which prints just the digest members receiving that kind "
+"of\n"
+" digest.\n"
+"\n"
+" --nomail[=why] / -n [why]\n"
+" Print the members that have delivery disabled. Optional argument "
+"can\n"
+" be \"byadmin\", \"byuser\", \"bybounce\", or \"unknown\" which "
+"prints just the\n"
+" users who have delivery disabled for that reason. It can also be\n"
+" \"enabled\" which prints just those member for whom delivery is\n"
+" enabled.\n"
+"\n"
+" --fullnames / -f\n"
+" Include the full names in the output.\n"
+"\n"
+" --preserve\n"
+" -p\n"
+" Output member addresses case preserved the way they were added to "
+"the\n"
+" list. Otherwise, addresses are printed in all lowercase.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname is the name of the mailing list to use.\n"
+"\n"
+"Note that if neither -r or -d is supplied, both regular members are printed\n"
+"first, followed by digest members, but no indication is given as to address\n"
+"status.\n"
+msgstr ""
+"Afficher tous les abonnés d'une liste.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] nom_liste\n"
+"\n"
+"Où:\n"
+"\n"
+" --output fichier\n"
+" -o fichier\n"
+" Diriger la sortie vers `fichier' en lieu et place de la sortie\n"
+" standard.\n"
+"\n"
+" --regular / -r\n"
+" Afficher juste les abonnés normaux (remise non-groupées).\n"
+"\n"
+" --digest[=genre] / -d [genre]\n"
+" Afficher juste les abonnés \"remise groupée\" (digest). Un argument facultatif peut\n"
+" être fourni et sera \"mime\" ou \"plain\" pour n'afficher que les\n"
+" abonnés recevant ce genre de digest.\n"
+"\n"
+" --nomail[=motif] /-n [motif]\n"
+" Affiche les abonnés pour lesquels la remise est désactivée. Un\n"
+" argument facultatif peut être fourni et sera \"byadmin\",\n"
+" \"byuser\", \"bybounce\" ou \"unknown\" et qui aura comme effet de\n"
+" n'afficher que les utilisateurs dont la remise est désactivée pour ce\n"
+" motif. Cet argument peut aussi être \"enabled\" pour afficher\n"
+" les abonnés pour lesquels la remise est active.\n"
+"\n"
+" --preserve\n"
+" -p\n"
+" Afficher les adresses des abonnés en conservant la casse\n"
+" initiale. Autrement, toutes les adresses sont affichées en\n"
+" minuscule.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Afficher ce message d'aide puis quitter.\n"
+"\n"
+" `nom_liste' est le nom de la liste de diffusion à utiliser.\n"
+"\n"
+"Notez que si vous ne spécifiez ni l'option -r ni l'option -d, tous les\n"
+"abonnés sont affichés, les abonnés normaux l'étant en premier, par\n"
+"contre, aucune information sur le statut de l'adresse ne sera donné.\n"
+"\n"
+
+#: bin/list_members:150
+msgid "Bad --nomail option: %(why)s"
+msgstr "Mauvaise option --noncourriel: %(why)s"
+
+#: bin/list_members:161
+msgid "Bad --digest option: %(kind)s"
+msgstr "Mauvaise option --digest: %(kind)s"
+
+#: bin/list_members:179
+msgid "Could not open file for writing:"
+msgstr "Impossible d'ouvrir le fichier en écriture:"
+
+#: bin/list_owners:19
+msgid ""
+"List the owners of a mailing list, or all mailing lists.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname ...]\n"
+"Options:\n"
+"\n"
+" -w / --with-listnames\n"
+" Group the owners by list names and include the list names in the\n"
+" output. Otherwise, the owners will be sorted and uniquified based "
+"on\n"
+" the email address.\n"
+"\n"
+" -m / --moderators\n"
+" Include the list moderators in the output.\n"
+"\n"
+" -h / --help\n"
+" Print this help message and exit.\n"
+"\n"
+" listname\n"
+" Print the owners of the specified lists. More than one can appear\n"
+" after the options. If there are no listnames provided, the owners "
+"of\n"
+" all the lists will be displayed.\n"
+msgstr ""
+"Afficher les propriétaires de listes, ou toutes les listes de diffusion\n"
+"Usage : %(PROGRAM)s [options] [nomdeliste ...]\n"
+"Options : \n"
+"\n"
+" -w / --with-listname\n"
+" Regrouper les propriétaires par nom de liste et inclure les noms de liste.\n"
+" Sinon les propriétaires sont triés par adresses courriels.\n"
+"\n"
+" -m / --moderators\n"
+" Inclure les modérateurs de liste dans le résultats.\n"
+"\n"
+" -h / --help\n"
+" Afficher cette aide et quitter.\n"
+"\n"
+" nomdeliste\n"
+" Afficher les propriétaires de la liste désignée. Plus d'un nom peut\n"
+" apparaître après les options. Sans nomdeliste spécifié, les propriétaires de\n"
+" toutes les listes sont affichés.\n"
+
+#: bin/mailmanctl:19
+msgid ""
+"Primary start-up and shutdown script for Mailman's qrunner daemon.\n"
+"\n"
+"This script starts, stops, and restarts the main Mailman queue runners, "
+"making\n"
+"sure that the various long-running qrunners are still alive and kicking. "
+"It\n"
+"does this by forking and exec'ing the qrunners and waiting on their pids.\n"
+"When it detects a subprocess has exited, it may restart it.\n"
+"\n"
+"The qrunners respond to SIGINT, SIGTERM, and SIGHUP. SIGINT and SIGTERM "
+"both\n"
+"cause the qrunners to exit cleanly, but the master will only restart "
+"qrunners\n"
+"that have exited due to a SIGINT. SIGHUP causes the master and the "
+"qrunners\n"
+"to close their log files, and reopen then upon the next printed message.\n"
+"\n"
+"The master also responds to SIGINT, SIGTERM, and SIGHUP, which it simply\n"
+"passes on to the qrunners (note that the master will close and reopen its "
+"own\n"
+"log files on receipt of a SIGHUP). The master also leaves its own process "
+"id\n"
+"in the file data/master-qrunner.pid but you normally don't need to use this\n"
+"pid directly. The `start', `stop', `restart', and `reopen' commands handle\n"
+"everything for you.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [ start | stop | restart | reopen ]\n"
+"\n"
+"Options:\n"
+"\n"
+" -n/--no-restart\n"
+" Don't restart the qrunners when they exit because of an error or a\n"
+" SIGINT. They are never restarted if they exit in response to a\n"
+" SIGTERM. Use this only for debugging. Only useful if the `start'\n"
+" command is given.\n"
+"\n"
+" -u/--run-as-user\n"
+" Normally, this script will refuse to run if the user id and group "
+"id\n"
+" are not set to the `mailman' user and group (as defined when you\n"
+" configured Mailman). If run as root, this script will change to "
+"this\n"
+" user and group before the check is made.\n"
+"\n"
+" This can be inconvenient for testing and debugging purposes, so the -"
+"u\n"
+" flag means that the step that sets and checks the uid/gid is "
+"skipped,\n"
+" and the program is run as the current user and group. This flag is\n"
+" not recommended for normal production environments.\n"
+"\n"
+" Note though, that if you run with -u and are not in the mailman "
+"group,\n"
+" you may have permission problems, such as begin unable to delete a\n"
+" list's archives through the web. Tough luck!\n"
+"\n"
+" -s/--stale-lock-cleanup\n"
+" If mailmanctl finds an existing master lock, it will normally exit\n"
+" with an error message. With this option, mailmanctl will perform "
+"an\n"
+" extra level of checking. If a process matching the host/pid "
+"described\n"
+" in the lock file is running, mailmanctl will still exit, but if no\n"
+" matching process is found, mailmanctl will remove the apparently "
+"stale\n"
+" lock and make another attempt to claim the master lock.\n"
+"\n"
+" -q/--quiet\n"
+" Don't print status messages. Error messages are still printed to\n"
+" standard error.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+"\n"
+"Commands:\n"
+"\n"
+" start - Start the master daemon and all qrunners. Prints a message "
+"and\n"
+" exits if the master daemon is already running.\n"
+"\n"
+" stop - Stops the master daemon and all qrunners. After stopping, no\n"
+" more messages will be processed.\n"
+"\n"
+" restart - Restarts the qrunners, but not the master process. Use this\n"
+" whenever you upgrade or update Mailman so that the qrunners "
+"will\n"
+" use the newly installed code.\n"
+"\n"
+" reopen - This will close all log files, causing them to be re-opened "
+"the\n"
+" next time a message is written to them\n"
+msgstr ""
+"Script principal de démarrage et d'arrêt du démon qrunner de Mailman.\n"
+"\n"
+"Ce script démarre, arrête et re-démarre le gestionnaire de file\n"
+"d'attente principal de Mailman en prenant soin de la bonne marche des processus\n"
+"qrunners fils qui tournent depuis un moment. Cette opération est\n"
+"assurée par un fork et un exec des qrunners fils avec l'attente de\n"
+"leurs pids. Lorsque la sortie d'un sous processus est détecté, il peut\n"
+"être re-démarré.\n"
+"\n"
+"Les processus fils réagissent à SIGINT, SIGTERM et SIGHUP. Aussi bien\n"
+"SIGINT que SIGTERM causent un arrêt correct des qrunners fils pendant\n"
+"que le processus père redémarre les fils qui ce sont arrêtés suite à la\n"
+"réception de SIGINT. SIGHUP est interprété par les qrunners père et\n"
+"fils comme un ordre de fermeture et réouverture des fichiers journaux.\n"
+"\n"
+"Le qrunner principal répond également aux signaux SIGINT, SIGTERM et\n"
+"SIGHUP en les transmettant à ses fils (notez que le qrunner principal\n"
+"fermera puis ré-ouvrira son fichier journal à la réception d'un\n"
+"SIGHUP). Le qrunner principal écrit son pid dans le fichier\n"
+"data/master-qrunner.pid, identifiant dont vous n'aurez pas à vous\n"
+"servir directement. Les paramètres `start', `stop', `restart' et\n"
+"`open' géreront tout pour vous.\n"
+"\n"
+" \n"
+"Usage: %(PROGRAM)s [options] [ start | stop | restart | reopen ]\n"
+"\n"
+"Options:\n"
+"\n"
+" -n/--no-restart\n"
+" Ne pas redémarrer les qrunners fils lors qu'ils se\n"
+" terminent à la suite d'une erreur ou d'un SIGINT. Utilisez\n"
+" cette option seulement pour déboguer. Cette commande n'a de sens\n"
+" qu'avec la commande `start'.\n"
+"\n"
+" -u/--run-as-user\n"
+" En principe, ce script refusera de s'exécuter si l'id\n"
+" utilisateur et l'id groupe ne sont pas les mêmes que les id\n"
+" utilisateur et groupe `mailman' (tels que spécifiés lors de la\n"
+" configuration de Mailman). Lorsqu'il est exécuté par root, le\n"
+" script changera d'identité avant d'effectuer les\n"
+" vérifications.\n"
+"\n"
+" Cela peut être ennuyeux lors des tests et du déboguage, ainsi,\n"
+" l'option -u signifie que la partie du programme censée faire la\n"
+" vérification uid/gid est ignorée et, il est exécuté sous les\n"
+" ids de l'appelant. Cette option n'est pas recommandée sur un\n"
+" système en production.\n"
+"\n"
+" -s/--stale-lock-cleanup\n"
+" Si mailmanctl rencontre un fichier verrou du qrunner\n"
+" principal, il sort avec un message d'erreur. Avec cette\n"
+" option, mailmanctl effectue un contrôle supplémentaire. Si\n"
+" mailmanctl trouve un processus correspondant à l'hôte/pid tel\n"
+" que spécifié dans le fichier verrou, il rendra la main, alors\n"
+" que si tel n'est pas le cas, il supprimera le fichier verrou\n"
+" et tentera de se ré-approprier le verrou principal.\n"
+"\n"
+" -q/--quiet\n"
+" Ne pas afficher un message de statut. Les messages d'erreurs\n"
+" sont quand même affichés sur la sortie standard.\n"
+"\n"
+" -h/--help\n"
+" Affiche ce message puis quitte.\n"
+"\n"
+"Commandes:\n"
+"\n"
+" start - Démarre le démon qrunner principal et tous ses\n"
+" fils. Affiche un message et quitte si le qrunner principal\n"
+" est déjà lancé.\n"
+"\n"
+" stop - Arrête le démon qrunner principal et tous les qrunners\n"
+" fils. Après cet arrêt, aucun message ne sera traité.\n"
+"\n"
+" restart - Re-démarre les qrunner fils et pas le principal.\n"
+" Ceci se révèle très utile lors du développement et sans\n"
+" cette commande, les qrunners fils ne rechargeront pas\n"
+" les modules qui ont changés entre temps.\n"
+"\n"
+" reopen - Ceci donne l'ordre de fermeture puis de réouverture de\n"
+" tous les fichiers journaux.\n"
+"\n"
+
+#: bin/mailmanctl:149
+msgid "PID unreadable in: %(pidfile)s"
+msgstr "PID illisible dans: %(pidfile)s"
+
+#: bin/mailmanctl:151
+msgid "Is qrunner even running?"
+msgstr "qrunner tourne-t-il?"
+
+#: bin/mailmanctl:157
+msgid "No child with pid: %(pid)s"
+msgstr "Pas de fils avec un pid: %(pid)s"
+
+#: bin/mailmanctl:159
+msgid "Stale pid file removed."
+msgstr "vieux fichier pid supprimé."
+
+#: bin/mailmanctl:217
+msgid ""
+"The master qrunner lock could not be acquired because it appears as if "
+"another\n"
+"master qrunner is already running.\n"
+msgstr ""
+"Impossible de disposer d'un verrou pour le qrunner principal. il\n"
+"semble qu'un autre processus qrunner principal est en cours\n"
+"d'exécution.\n"
+
+#: bin/mailmanctl:223
+msgid ""
+"The master qrunner lock could not be acquired. It appears as though there "
+"is\n"
+"a stale master qrunner lock. Try re-running mailmanctl with the -s flag.\n"
+msgstr ""
+"Le verrou du qrunner principal ne peut être obtenu. Il semble qu'il y\n"
+"ait un vieux fichier verrou du qrunner principal. Essayer de redémarrer\n"
+"mailmanctl avec l'option -s.\n"
+
+#: bin/mailmanctl:229
+msgid ""
+"The master qrunner lock could not be acquired, because it appears as if "
+"some\n"
+"process on some other host may have acquired it. We can't test for stale\n"
+"locks across host boundaries, so you'll have to do this manually. Or, if "
+"you\n"
+"know the lock is stale, re-run mailmanctl with the -s flag.\n"
+"\n"
+"Lock file: %(LOCKFILE)s\n"
+"Lock host: %(status)s\n"
+"\n"
+"Exiting."
+msgstr ""
+"Le qrunner principal ne peut obtenir de verrou parce que le système se\n"
+"comporte comme si d'autres processus sur d'autres hôtes s'en étaient\n"
+"emparés. Nous ne pouvons pas vérifier l'existence de vieux verrous à\n"
+"travers le réseau, vous devrez le faire manuellement. Ou bien, si vous\n"
+"êtes sûr que le verrou est obsolète alors, ré-exécutez mailmanctl avec\n"
+"l'option -s.\n"
+"\n"
+"Fichier verrou: %(LOCKFILE)s\n"
+"Hôte du verrou: %(status)s\n"
+"\n"
+"Sortie."
+
+#: bin/mailmanctl:282
+msgid "Run this program as root or as the %(name)s user, or use -u."
+msgstr ""
+"Exécutez ce programme en tant que root ou en tant qu'utilisateur\n"
+"%(name)s à moins d'utiliser l'option -u."
+
+#: bin/mailmanctl:313
+msgid "No command given."
+msgstr "Aucune commande fournie."
+
+#: bin/mailmanctl:316
+msgid "Bad command: %(command)s"
+msgstr "Mauvaise commande: %(command)s"
+
+#: bin/mailmanctl:321
+msgid "Warning! You may encounter permission problems."
+msgstr "Attention! Vous pouvez rencontrer des problèmes de permissions."
+
+#: bin/mailmanctl:330
+msgid "Shutting down Mailman's master qrunner"
+msgstr "Arrêt du qrunner principal de Mailman"
+
+#: bin/mailmanctl:337
+msgid "Restarting Mailman's master qrunner"
+msgstr "Redémarrage du qrunner principal de Mailman"
+
+#: bin/mailmanctl:341
+msgid "Re-opening all log files"
+msgstr "Réouverture de tous les fichiers journaux"
+
+#: bin/mailmanctl:375
+msgid "Starting Mailman's master qrunner."
+msgstr "Démarrage du qrunner principal de Mailman."
+
+#: bin/mmsitepass:19
+msgid ""
+"Set the site password, prompting from the terminal.\n"
+"\n"
+"The site password can be used in most if not all places that the list\n"
+"administrator's password can be used, which in turn can be used in most "
+"places\n"
+"that a list users password can be used.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [password]\n"
+"\n"
+"Options:\n"
+"\n"
+" -c/--listcreator\n"
+" Set the list creator password instead of the site password. The "
+"list\n"
+" creator is authorized to create and remove lists, but does not have\n"
+" the total power of the site administrator.\n"
+"\n"
+" -h/--help\n"
+" Print this help message and exit.\n"
+"\n"
+"If password is not given on the command line, it will be prompted for.\n"
+msgstr ""
+"Définit le mot de passe du site, en vous invitant à le saisir à partir\n"
+"du terminal.\n"
+"\n"
+"Le mot de passe du site peut être utilisé dans nombre des cas, sinon\n"
+"tous les cas, où le mot de passe de l'administrateur peut être utilisé,\n"
+"celui-ci, à son tour peut être utilisé dans nombre de cas où un mot de\n"
+"passe utilisateur peut être utilisé.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [mot_de_passe]\n"
+"\n"
+"Options:\n"
+"\n"
+" -c/--listcreator\n"
+" Définit le mot de passe des créateurs de listes au lieu de\n"
+" définir celui du site. Le créateur de listes est autorisé à\n"
+" créer et supprimer des listes, mais ne dispose néanmoins pas\n"
+" des pouvoirs de l'administrateur du site.\n"
+"\n"
+" -h/--help\n"
+" Affiche ce message d'aide puis quitte.\n"
+"\n"
+"Si le mot de passe n'est pas fourni dans la ligne de commande, il\n"
+"sera demandé.\n"
+
+#: bin/mmsitepass:73
+msgid "site"
+msgstr "site"
+
+#: bin/mmsitepass:80
+msgid "list creator"
+msgstr "créateur de la liste"
+
+#: bin/mmsitepass:86
+msgid "New %(pwdesc)s password: "
+msgstr "Nouveau mot de passe %(pwdesc)s:"
+
+#: bin/mmsitepass:87
+msgid "Again to confirm password: "
+msgstr "Confirmer le mot de passe:"
+
+#: bin/mmsitepass:89
+msgid "Passwords do not match; no changes made."
+msgstr "Les mots de passe ne correspondent pas; aucune modification effectuée."
+
+#: bin/mmsitepass:92
+msgid "Interrupted..."
+msgstr "Interrompu..."
+
+#: bin/mmsitepass:98
+msgid "Password changed."
+msgstr "Mot de passe modifié."
+
+#: bin/mmsitepass:100
+msgid "Password change failed."
+msgstr "Echec de modification du mot de passe."
+
+#: bin/newlist:19
+msgid ""
+"Create a new, unpopulated mailing list.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname [listadmin-addr [admin-password]]]\n"
+"\n"
+"Options:\n"
+"\n"
+" -l language\n"
+" --language language\n"
+" Make the list's preferred language `language', which must be a two\n"
+" letter language code.\n"
+"\n"
+" -q/--quiet\n"
+" Normally the administrator is notified by email (after a prompt) "
+"that\n"
+" their list has been created. This option suppresses the prompt and\n"
+" notification.\n"
+"\n"
+" -h/--help\n"
+" Print this help text and exit.\n"
+"\n"
+"You can specify as many of the arguments as you want on the command line:\n"
+"you will be prompted for the missing ones.\n"
+"\n"
+"Every Mailman list has two parameters which define the default host name "
+"for\n"
+"outgoing email, and the default URL for all web interfaces. When you\n"
+"configured Mailman, certain defaults were calculated, but if you are "
+"running\n"
+"multiple virtual Mailman sites, then the defaults may not be appropriate "
+"for\n"
+"the list you are creating.\n"
+"\n"
+"You can specify the domain to create your new list in by spelling the "
+"listname\n"
+"like so:\n"
+"\n"
+" mylist@www.mydom.ain\n"
+"\n"
+"where `www.mydom.ain' should be the base hostname for the URL to this "
+"virtual\n"
+"hosts's lists. E.g. with is setting people will view the general list\n"
+"overviews at http://www.mydom.ain/mailman/listinfo. Also, www.mydom.ain\n"
+"should be a key in the VIRTUAL_HOSTS mapping in mm_cfg.py/Defaults.py. It\n"
+"will be looked up to give the email hostname. If this can't be found, then\n"
+"www.mydom.ain will be used for both the web interface and the email\n"
+"interface.\n"
+"\n"
+"If you spell the list name as just `mylist', then the email hostname will "
+"be\n"
+"taken from DEFAULT_EMAIL_HOST and the url will be taken from DEFAULT_URL "
+"(as\n"
+"defined in your Defaults.py file or overridden by settings in mm_cfg.py).\n"
+"\n"
+"Note that listnames are forced to lowercase.\n"
+msgstr ""
+"Crée une nouvelle liste sans abonnés.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] \\ \n"
+" [nom_liste [addr_listeadmin [mot_de_passe-admin]]]\n"
+"\n"
+"Options:\n"
+"\n"
+" -l langue\n"
+" --language langue\n"
+" Faire de `langue' la langue préférée de cette liste, le paramètre\n"
+" être composé des deux lettres du code de la langue.\n"
+"\n"
+" -q/--quiet\n"
+" En principe l'administrateur reçoit un courriel (après\n"
+" demande de confirmation) que sa liste a été crée. Cette option\n"
+" supprime la demande de confirmation et l'avis.\n"
+"\n"
+"Vous pouvez spécifier autant d'arguments désirés sur la ligne de\n"
+"commande, les arguments omis seront demandés.\n"
+"\n"
+"Chaque liste Mailman dispose de deux paramètres définissant le nom\n"
+"d'hôte par défaut pour les messages sortants, et l'URL de base pour\n"
+"l'interface web. Lors de la configuration de Mailman, certaines\n"
+"valeurs par défaut ont été calculées et risquent de ne pas convenir\n"
+"pour la liste que vous créez si vous gérer un site Mailman avec\n"
+"plusieurs hôtes virtuels.\n"
+"\n"
+"Vous pourrez spécifier le domaine de la liste crée en fournissant un\n"
+"nom de liste de la forme:\n"
+"\n"
+" maliste@www.mondoma.ine\n"
+"\n"
+"Où `www.mondoma.ine' serait le nom d'hôte de base pour l'URL décrivant\n"
+"les listes de l'hôte virtuel en question. Avec cette configuration, le\n"
+"panorama de la liste sera accessible à l'adresse\n"
+"http://www.mondoma.ine/mailman/listinfo. De plus, www.mondoma.ine\n"
+"pourrait être une clé dans le mappage VIRTUAL_HOST dans\n"
+"mm_cfg.py/Defaults.py. Il sera analysé pour trouver le nom d'hôte pour\n"
+"la messagerie. Si cela est introuvable, www.mondoma.ine sera utilisé\n"
+"aussi bien pour le web que la messagerie.\n"
+" \n"
+"Si vous spécifiez le nom de la liste sous la forme `maliste', alors le\n"
+"nom d'hôte pour la messagerie sera extrait de DEFAULT_HOST_NAME et\n"
+"l'url sera extrait de DEFAULT_URL (comme spécifié dans votre fichier\n"
+"Defaults.py à moins que ces valeurs n'aient été redéfinit dans\n"
+"mm_cfg.py).\n"
+"\n"
+"Notez que les noms de liste sont ramenés en minuscule.\n"
+
+#: bin/newlist:118
+msgid "Unknown language: %(lang)s"
+msgstr "Langue inconnue: %(lang)s"
+
+#: bin/newlist:123
+msgid "Enter the name of the list: "
+msgstr "Donner le nom de la liste: "
+
+#: bin/newlist:140
+msgid "Enter the email of the person running the list: "
+msgstr "Entrez l'adresse courriel du gestionnaire de la liste: "
+
+#: bin/newlist:145
+msgid "Initial %(listname)s password: "
+msgstr "Mot de passe initial de la liste %(listname)s:"
+
+#: bin/newlist:149
+msgid "The list password cannot be empty"
+msgstr "Le mot de passe de la liste ne peut être vide"
+
+#: bin/newlist:190
+msgid "Hit enter to notify %(listname)s owner..."
+msgstr "Tapez sur Entrée pour aviser le propriétaire de %(listname)s..."
+
+#: bin/qrunner:19
+msgid ""
+"Run one or more qrunners, once or repeatedly.\n"
+"\n"
+"Each named runner class is run in round-robin fashion. In other words, the\n"
+"first named runner is run to consume all the files currently in its\n"
+"directory. When that qrunner is done, the next one is run to consume all "
+"the\n"
+"files in /its/ directory, and so on. The number of total iterations can be\n"
+"given on the command line.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" -r runner[:slice:range]\n"
+" --runner=runner[:slice:range]\n"
+" Run the named qrunner, which must be one of the strings returned by\n"
+" the -l option. Optional slice:range if given, is used to assign\n"
+" multiple qrunner processes to a queue. range is the total number "
+"of\n"
+" qrunners for this queue while slice is the number of this qrunner "
+"from\n"
+" [0..range).\n"
+"\n"
+" If using the slice:range form, you better make sure that each "
+"qrunner\n"
+" for the queue is given the same range value. If slice:runner is "
+"not\n"
+" given, then 1:1 is used.\n"
+"\n"
+" Multiple -r options may be given, in which case each qrunner will "
+"run\n"
+" once in round-robin fashion. The special runner `All' is shorthand\n"
+" for a qrunner for each listed by the -l option.\n"
+"\n"
+" --once\n"
+" -o\n"
+" Run each named qrunner exactly once through its main loop. "
+"Otherwise,\n"
+" each qrunner runs indefinitely, until the process receives a "
+"SIGTERM\n"
+" or SIGINT.\n"
+"\n"
+" -l/--list\n"
+" Shows the available qrunner names and exit.\n"
+"\n"
+" -v/--verbose\n"
+" Spit out more debugging information to the logs/qrunner log file.\n"
+"\n"
+" -s/--subproc\n"
+" This should only be used when running qrunner as a subprocess of "
+"the\n"
+" mailmanctl startup script. It changes some of the exit-on-error\n"
+" behavior to work better with that framework.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+"\n"
+"runner is required unless -l or -h is given, and it must be one of the "
+"names\n"
+"displayed by the -l switch.\n"
+msgstr ""
+"Exécute un ou plusieurs qrunners, en une seule fois ou de de façon\n"
+"répétitive. Chaque classe de gestionnaire nommée est exécutée en\n"
+"round-robin. En d'autres termes, le premier gestionnaire est exécuté\n"
+"pour traiter tous les fichiers qui sont actuellement dans /son/\n"
+"répertoire et ainsi de suite. Le nombre total d'itérations peut être\n"
+"fournit en ligne de commande.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" -r gestionnaire[:tranche:intervalle]\n"
+" --runner=gestionnaire[:tranche:intervalle]\n"
+" Exécute le gestionnaire nommé, qui doit être l'une des chaînes\n"
+" renvoyée par l'option -l. Si un tranche:intervalle facultatif\n"
+" est fourni, il est utilisé pour allouer une file à plusieurs\n"
+" processus qrunners. Intervalle est le nombre de qrunners pour\n"
+" cette file alors que la tranche est le numéros de ce qrunner\n"
+" entre [0..intervalle].\n"
+"\n"
+" Si la forme tranche:intervalle est utilisée, vous ferez mieux de\n"
+" vous assurez que chaque qrunner pour la file reçoit le même\n"
+" intervalle. Si tranche:gestionnaire n'est pas fourni, alors 1:1\n"
+" est utilisé.\n"
+"\n"
+" Plusieurs options -r peuvent être fournies. Le gestionnaire\n"
+" spécial All est un raccourci pour chaque qrunner listé par\n"
+" l'option -l.\n"
+"\n"
+" --once\n"
+" -o\n"
+" Exécutez une seule fois chaque qrunner nommé à travers sa\n"
+" boucle principale. Autrement, chaque qrunner va s'exécuter\n"
+" indéfiniment jusqu'à ce qu'il reçoive un SIGTERM ou un\n"
+" SIGINT.\n"
+"\n"
+" -l/--list\n"
+" Afficher les noms des qrunners disponibles puis quitter.\n"
+"\n"
+" -v/--verbose\n"
+" Déverser d'avantage d'informations de déboguage dans le\n"
+" fichier journal logs/qrunner.\n"
+"\n"
+" -s/--subproc\n"
+" Cette option ne doit être utilisée que lorsque le qrunner\n"
+" est executé comme sous processus du script de démarrage\n"
+" mailmanctl. Elle modifie le comportement de\n"
+" sortie-quand-erreur pour mieux s'accommoder avec ce\n"
+" dispositif.\n"
+"\n"
+" -h/--help\n"
+" Affiche ce message puis quitte.\n"
+"\n"
+"Le paramètre `gestionnaire' est obligatoire à moins que -l ou -h n'ait\n"
+"été fourni, et il doit être l'un des noms fourni par l'option -l.\n"
+
+#: bin/qrunner:176
+msgid "%(name)s runs the %(runnername)s qrunner"
+msgstr "-r %(name)s exécute le qrunner %(runnername)s"
+
+#: bin/qrunner:177
+msgid "All runs all the above qrunners"
+msgstr "All exécute tous les qrunners ci-dessus"
+
+#: bin/qrunner:213
+msgid "No runner name given."
+msgstr "Nom de runner non fourni."
+
+#: bin/remove_members:19
+msgid ""
+"Remove members from a list.\n"
+"\n"
+"Usage:\n"
+" remove_members [options] [listname] [addr1 ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" --file=file\n"
+" -f file\n"
+" Remove member addresses found in the given file. If file is\n"
+" `-', read stdin.\n"
+"\n"
+" --all\n"
+" -a\n"
+" Remove all members of the mailing list.\n"
+" (mutually exclusive with --fromall)\n"
+"\n"
+" --fromall\n"
+" Removes the given addresses from all the lists on this system\n"
+" regardless of virtual domains if you have any. This option cannot "
+"be\n"
+" used -a/--all. Also, you should not specify a listname when using "
+"this\n"
+" option.\n"
+"\n"
+" --nouserack\n"
+" -n\n"
+" Don't send the user acknowledgements.\n"
+"\n"
+" --noadminack\n"
+" -N\n"
+" Don't send the admin acknowledgements.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname is the name of the mailing list to use.\n"
+"\n"
+" addr1 ... are additional addresses to remove.\n"
+"\n"
+msgstr ""
+"Supprimer des abonnés de la liste\n"
+"\n"
+"Usage:\n"
+" remove_members [options] nomliste [addr1 ...]\n"
+"\n"
+" --file=fichier\n"
+" -f fichier\n"
+" Supprimer les abonnés correspondants aux adresses trouvées dans\n"
+" le fichier fourni. Si le fichier est `-', le programme lit\n"
+" stdin.\n"
+"\n"
+" --all\n"
+" -a\n"
+" Supprimer tous les abonnés de la liste\n"
+" (incompatible avec --fromall)\n"
+" --fromall\n"
+" Supprime l'adresse fournie de toutes les listes du système,\n"
+" sans tenir compte des domaines virtuels s'il en est. Cette\n"
+" option ne peut être utilisée avec -a/--all. Vous ne devez pas\n"
+" non plus spécifier le nom d'une liste lorsque vous utilisez\n"
+" cette option.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Affiche ce message d'aide puis quitte.\n"
+"\n"
+" nomliste est le nom de la liste à utiliser.\n"
+"\n"
+" addr1 ... sont les adresses additionnelles à supprimer.\n"
+
+#: bin/remove_members:147
+msgid "Could not open file for reading: %(filename)s."
+msgstr "Impossible d'ouvrir le fichier en lecture: %(filename)s"
+
+#: bin/remove_members:154
+msgid "Error opening list %(listname)s... skipping."
+msgstr "Erreur lors de l'ouverture de la liste \"%(listname)s\"... au suivant."
+
+#: bin/remove_members:164
+msgid "No such member: %(addr)s"
+msgstr "Abonné inconnu: %(addr)s."
+
+#: bin/remove_members:171
+msgid "User `%(addr)s' removed from list: %(listname)s."
+msgstr "Abonné `%(addr)s' supprimé de la liste: %(listname)s."
+
+#: bin/rmlist:19
+msgid ""
+"Remove the components of a mailing list with impunity - beware!\n"
+"\n"
+"This removes (almost) all traces of a mailing list. By default, the lists\n"
+"archives are not removed, which is very handy for retiring old lists.\n"
+"\n"
+"Usage:\n"
+" rmlist [-a] [-h] listname\n"
+"\n"
+"Where:\n"
+" --archives\n"
+" -a\n"
+" Remove the list's archives too, or if the list has already been\n"
+" deleted, remove any residual archives.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+msgstr ""
+"Supprimer les composantes d'une liste de diffusion impunément - Prenez\n"
+"garde!\n"
+"\n"
+"Ceci supprime (presque) toutes traces d'une liste de diffusion. Par\n"
+"défaut, les archives de la liste ne sont pas supprimées, ce qui est\n"
+"très utile lorsqu'on élimine une ancienne liste.\n"
+"\n"
+"Usage:\n"
+" rmlist [-a] [-h] nomliste\n"
+"\n"
+"Où:\n"
+" --archives\n"
+" -a\n"
+" Supprime aussi les archives de la liste, ou supprime les\n"
+" archives restantes si la liste a déjà été supprimée.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Affiche ce message d'aide puis quitte.\n"
+
+#: bin/rmlist:66 bin/rmlist:69
+msgid "Removing %(msg)s"
+msgstr "Suppression de %(msg)s"
+
+#: bin/rmlist:72
+msgid "%(listname)s %(msg)s not found as %(dir)s"
+msgstr "%(msg)s %(listname)s non trouvé en tant que %(dir)s"
+
+#: bin/rmlist:96
+msgid "No such list (or list already deleted): %(listname)s"
+msgstr "Liste introuvable (ou liste déjà supprimée): %(listname)s"
+
+#: bin/rmlist:98
+msgid "No such list: %(listname)s. Removing its residual archives."
+msgstr ""
+"Liste introuvable: %(listname)s. Suppression de ses archives\n"
+"résiduelles."
+
+#: bin/rmlist:102
+msgid "Not removing archives. Reinvoke with -a to remove them."
+msgstr ""
+"Archives non supprimées. Réinvoquez avec l'option -a pour les supprimer."
+
+#: bin/rmlist:116
+msgid "list info"
+msgstr "info liste"
+
+#: bin/rmlist:122 bin/rmlist:124
+msgid "private archives"
+msgstr "archives privées"
+
+#: bin/rmlist:126 bin/rmlist:128
+msgid "public archives"
+msgstr "archives publiques"
+
+#: bin/sync_members:19
+msgid ""
+"Synchronize a mailing list's membership with a flat file.\n"
+"\n"
+"This script is useful if you have a Mailman mailing list and a sendmail\n"
+":include: style list of addresses (also as is used in Majordomo). For "
+"every\n"
+"address in the file that does not appear in the mailing list, the address "
+"is\n"
+"added. For every address in the mailing list that does not appear in the\n"
+"file, the address is removed. Other options control what happens when an\n"
+"address is added or removed.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] -f file listname\n"
+"\n"
+"Where `options' are:\n"
+"\n"
+" --no-change\n"
+" -n\n"
+" Don't actually make the changes. Instead, print out what would be\n"
+" done to the list.\n"
+"\n"
+" --welcome-msg[=<yes|no>]\n"
+" -w[=<yes|no>]\n"
+" Sets whether or not to send the newly added members a welcome\n"
+" message, overriding whatever the list's `send_welcome_msg' setting\n"
+" is. With -w=yes or -w, the welcome message is sent. With -w=no, "
+"no\n"
+" message is sent.\n"
+"\n"
+" --goodbye-msg[=<yes|no>]\n"
+" -g[=<yes|no>]\n"
+" Sets whether or not to send the goodbye message to removed members,\n"
+" overriding whatever the list's `send_goodbye_msg' setting is. With\n"
+" -g=yes or -g, the goodbye message is sent. With -g=no, no message "
+"is\n"
+" sent.\n"
+"\n"
+" --digest[=<yes|no>]\n"
+" -d[=<yes|no>]\n"
+" Selects whether to make newly added members receive messages in\n"
+" digests. With -d=yes or -d, they become digest members. With -"
+"d=no\n"
+" (or if no -d option given) they are added as regular members.\n"
+"\n"
+" --notifyadmin[=<yes|no>]\n"
+" -a[=<yes|no>]\n"
+" Specifies whether the admin should be notified for each "
+"subscription\n"
+" or unsubscription. If you're adding a lot of addresses, you\n"
+" definitely want to turn this off! With -a=yes or -a, the admin is\n"
+" notified. With -a=no, the admin is not notified. With no -a "
+"option,\n"
+" the default for the list is used.\n"
+"\n"
+" --file <filename | ->\n"
+" -f <filename | ->\n"
+" This option is required. It specifies the flat file to synchronize\n"
+" against. Email addresses must appear one per line. If filename is\n"
+" `-' then stdin is used.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this message.\n"
+"\n"
+" listname\n"
+" Required. This specifies the list to synchronize.\n"
+msgstr ""
+"Synchronise les abonnés d'une liste avec un fichier brut.\n"
+"\n"
+"Ce script est utile pour ceux qui disposent d'une liste de diffusion\n"
+"Mailman et d'une liste d'adresses de type :include: de sendmail (\n"
+"utilisé aussi par Majordomo). Chaque adresse dans le fichier n'apparaissant\n"
+"pas dans la liste est ajoutée à la liste alors que les adresses ne\n"
+"figurant pas dans le fichier sont supprimées de la liste lorsqu'elles\n"
+"y sont abonnées. Les autres options déterminent ce qui se passe à la\n"
+"suite de l'ajout ou de la suppression d'une adresse.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] -f fichier nomliste\n"
+"\n"
+"Où les `options' sont:\n"
+"\n"
+" --no-change\n"
+" -n\n"
+" Ne pas effectuer de modifications, plutôt afficher la liste\n"
+" des opérations à effectuer sur la liste.\n"
+"\n"
+" --welcome-msg[=<yes|no>]\n"
+" -w[=<yes|no>]\n"
+" Détermine si les abonnés ajoutés doivent recevoir un message\n"
+" de bienvenue, annulant ainsi l'effet du paramètre\n"
+" `send_welcome_msg' de la liste. avec -w=yes ou -w, le message\n"
+" de bienvenue est envoyé. Avec -w=no, aucun message n'est\n"
+" envoyé.\n"
+"\n"
+" --goodbye-msg[=<yes|no>]\n"
+" -g[=<yes|no>]\n"
+" Détermine si un message d'au-revoir doit être envoyé aux\n"
+" abonnés supprimés, quel que soit la valeure du paramètre\n"
+" `send_goodbye_msg' de la liste. Avec -g=yes ou -g, le message\n"
+" d'au-revoir est envoyé. Avec -g=no, aucun message n'est envoyé.\n"
+"\n"
+" --digest=[<yes|no>]\n"
+" -d[=<yes|no>]\n"
+" Détermine si les nouveaux abonnés ajoutés recoivent des\n"
+" messages en mode groupé ou non. Avec -d=yes ou -d, ils\n"
+" deviennent des abonnés en mode groupé. Avec -d=no (ou \n"
+" sans -d), ils seront ajoutés avec une option de remise \n"
+" normale.\n"
+"\n"
+" --notifyadmin[=<yes|no>]\n"
+" -a[=<yes|no>]\n"
+" Détermine si l'admin doit être avisé suite à chaque abonnement\n"
+" et à chaque résiliation. Si vous ajouter un grand nombre, vous\n"
+" devrez peut être désactiver cette option! Avec -a=yes ou\n"
+" -a, l'admin reçoit un avis. Avec l'option -a=no, l'admin n'est\n"
+" pas avisé. En l'abscence de l'option -a, le comportement\n"
+" par défaut de la liste est utilisé.\n"
+"\n"
+" --file <nomfichier | ->\n"
+" -f <nomfichier | ->\n"
+" Cette option est requise. Elle définit le fichier brut sur\n"
+" laquelle la synchronisation aura lieu. Chaque ligne doit\n"
+" contenir une seule adresse courriel. Si nomfichier est `-',\n"
+" stdin est utilisée.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Affiche ce message.\n"
+"\n"
+" nomliste\n"
+" Requit. Il définit la liste à synchroniser.\n"
+
+#: bin/sync_members:115
+msgid "Bad choice: %(yesno)s"
+msgstr "Mauvais choix: %(yesno)s"
+
+#: bin/sync_members:138
+msgid "Dry run mode"
+msgstr "mode d'exécution brut"
+
+#: bin/sync_members:159
+msgid "Only one -f switch allowed"
+msgstr "Une seule option -f est autorisée"
+
+#: bin/sync_members:163
+msgid "No argument to -f given"
+msgstr "aucun argument n'a été fourni à -f"
+
+#: bin/sync_members:172
+msgid "Illegal option: %(opt)s"
+msgstr "Option invalide: %(opt)s"
+
+#: bin/sync_members:178
+msgid "No listname given"
+msgstr "Le nom de la liste n'a pas été fourni"
+
+#: bin/sync_members:182
+msgid "Must have a listname and a filename"
+msgstr "Nom de liste et nom de fichier nécessaires"
+
+#: bin/sync_members:191
+msgid "Cannot read address file: %(filename)s: %(msg)s"
+msgstr "Impossible de lire le fichier des adresses: %(filename)s: %(msg)s"
+
+#: bin/sync_members:203
+msgid "Ignore : %(addr)30s"
+msgstr "Ignorer : %(addr)30s"
+
+#: bin/sync_members:212
+msgid "Invalid : %(addr)30s"
+msgstr "Invalide : %(addr)30s"
+
+#: bin/sync_members:215
+msgid "You must fix the preceding invalid addresses first."
+msgstr ""
+"Vous devez d'abord régler le problème de l'adresse invalide précédente."
+
+#: bin/sync_members:259
+msgid "Added : %(s)s"
+msgstr "Ajouté : %(s)s"
+
+#: bin/sync_members:278
+msgid "Removed: %(s)s"
+msgstr "Suppression de %(s)s"
+
+#: bin/transcheck:18
+msgid ""
+"\n"
+"Check a given Mailman translation, making sure that variables and\n"
+"tags referenced in translation are the same variables and tags in\n"
+"the original templates and catalog.\n"
+"\n"
+"Usage:\n"
+"\n"
+"cd $MAILMAN_DIR\n"
+"%(program)s [-q] <lang>\n"
+"\n"
+"Where <lang> is your country code (e.g. 'it' for Italy) and -q is\n"
+"to ask for a brief summary.\n"
+msgstr ""
+"\n"
+"Vérifie la cohérence de Mailman en s'assurant que les variables et les\n"
+"balises référencées dans la traduction sont les mêmes variables et\n"
+"balises contenues dans les templates et le catalog originaux.\n"
+"\n"
+"Usage:\n"
+"\n"
+"cd $MAILMAN_DIR\n"
+"%(program)s [-q] <lang>\n"
+"\n"
+"Où <lang> est le code du pays (e.g. 'it' pour Italie) et le -q demande\n"
+"une résumé concis.\n"
+
+#: bin/transcheck:57
+msgid "check a translation comparing with the original string"
+msgstr "Vérifie une traduction en la comparant avec la chaîne originale"
+
+#: bin/transcheck:64
+msgid "scan a string from the original file"
+msgstr "Scan une chaîne à partir du fichier original"
+
+#: bin/transcheck:72
+msgid "scan a translated string"
+msgstr "Scan une chaîne traduite"
+
+#: bin/transcheck:83
+msgid "check for differences between checked in and checked out"
+msgstr ""
+"Compare les différences entre les versions `checked in' et `checked out'"
+
+#: bin/transcheck:116
+msgid "parse a .po file extracting msgids and msgstrs"
+msgstr "Analyse un fichier .po et extrait les msgids et les msgstrs"
+
+#: bin/transcheck:135
+msgid ""
+"States table for the finite-states-machine parser:\n"
+" 0 idle\n"
+" 1 filename-or-comment\n"
+" 2 msgid\n"
+" 3 msgstr\n"
+" 4 end\n"
+" "
+msgstr ""
+"La table des états pour l'analyseur de l'ensemble fini des états\n"
+"machines:\n"
+" 0 idle\n"
+" 1 filename-or-comment\n"
+" 2 msgid\n"
+" 3 msgstr\n"
+" 4 end\n"
+" "
+
+#: bin/transcheck:272
+msgid ""
+"check a translated template against the original one\n"
+" search also <MM-*> tags if html is not zero"
+msgstr ""
+"Compare une template traduite avec l'original et recherche les balises\n"
+"<MM-*> si html est non nul"
+
+#: bin/transcheck:319
+msgid "scan the po file comparing msgids with msgstrs"
+msgstr "Scan le fichier po en comparant msgids et msgstrs"
+
+#: bin/unshunt:19
+msgid ""
+"Move a message from the shunt queue to the original queue.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [directory]\n"
+"\n"
+"Where:\n"
+"\n"
+" -h / --help\n"
+" Print help and exit.\n"
+"\n"
+"Optional `directory' specifies a directory to dequeue from other than\n"
+"qfiles/shunt.\n"
+msgstr ""
+"Déplacer un message de la file de dérivation vers la file originale.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [répertoire]\n"
+"\n"
+"Où:\n"
+"\n"
+" -h /--help\n"
+" Affiche ce message d'aide et quitte.\n"
+"\n"
+"Le `répertoire' facultatif spécifie un répertoire, autre que\n"
+"qfiles/shunt, à partir duquel l'extraction sera faite.\n"
+
+#: bin/unshunt:81
+msgid ""
+"Cannot unshunt message %(filebase)s, skipping:\n"
+"%(e)s"
+msgstr ""
+"Impossible de \"déshunter\" le message %(filebase)s, sauter:\n"
+"%(e)s"
+
+#: bin/update:19
+msgid ""
+"Perform all necessary upgrades.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -f/--force\n"
+" Force running the upgrade procedures. Normally, if the version "
+"number\n"
+" of the installed Mailman matches the current version number (or a\n"
+" `downgrade' is detected), nothing will be done.\n"
+"\n"
+" -h/--help\n"
+" Print this text and exit.\n"
+"\n"
+"Use this script to help you update to the latest release of Mailman from\n"
+"some previous version. It knows about versions back to 1.0b4 (?).\n"
+msgstr ""
+"Effectuer toutes les mises à jour nécessaires.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" -f/--force\n"
+" Force la procédure de mise à jour. En principe si la version\n"
+" courante est identique à celle installée (ou si un `downgrade'\n"
+" est détecté), le programme ne fait rien.\n"
+"\n"
+" -h/--help\n"
+" Affiche ce texte puis quitte.\n"
+"\n"
+"Utilisez ce script pour mettre à jour votre installation de\n"
+"Mailman. Il reconnaît toutes les versions ultérieures à la version\n"
+"1.0b4 (?).\n"
+
+#: bin/update:102
+msgid "Fixing language templates: %(listname)s"
+msgstr "Réparation des templates de langue: %(listname)s"
+
+#: bin/update:191 bin/update:466
+msgid "WARNING: could not acquire lock for list: %(listname)s"
+msgstr ""
+"ATTENTION: impossible de disposer d'un verrou sur la liste: %(listname)s"
+
+#: bin/update:210
+msgid "Resetting %(n)s BYBOUNCEs disabled addrs with no bounce info"
+msgstr "Réinitialiser les addrs désactivées %(n)s BYBOUNCEs sans infos de rebonds"
+
+#: bin/update:216
+msgid "Updating the held requests database."
+msgstr "Mise à jour de la base de données des requêtes en attente."
+
+#: bin/update:238
+msgid ""
+"For some reason, %(mbox_dir)s exists as a file. This won't work with\n"
+"b6, so I'm renaming it to %(mbox_dir)s.tmp and proceeding."
+msgstr ""
+"Pour une raison ou une autre, %(mbox_dir)s existe comme fichier, cela ne\n"
+"fonctionnera pas avec b6, je suis donc en train de le renommer en\n"
+"%(mbox_dir)s.tmp pour pouvoir poursuivre."
+
+#: bin/update:250
+msgid ""
+"\n"
+"%(listname)s has both public and private mbox archives. Since this list\n"
+"currently uses private archiving, I'm installing the private mbox archive\n"
+"-- %(o_pri_mbox_file)s -- as the active archive, and renaming\n"
+" %(o_pub_mbox_file)s\n"
+"to\n"
+" %(o_pub_mbox_file)s.preb6\n"
+"\n"
+"You can integrate that into the archives if you want by using the 'arch'\n"
+"script.\n"
+msgstr ""
+"\n"
+"%(listname)s dispose à la fois d'archives privées et publiques. puisque\n"
+"qu'elle utilise actuellement un archivage privé, je vais installer les "
+"archives\n"
+"privées -- %(o_pri_mbox_file)s -- comme archive active et renommer\n"
+"%(o_pub_mbox_file)s en %(o_pub_mbox_file)s.preb6\n"
+"\n"
+"Vous pourrez, si vous le désirez, les intégrer aux archives en utilisant\n"
+"le script 'arch'.\n"
+
+#: bin/update:265
+msgid ""
+"%s has both public and private mbox archives. Since this list\n"
+"currently uses public archiving, I'm installing the public mbox file\n"
+"archive file (%s) as the active one, and renaming\n"
+" %s\n"
+" to\n"
+" %s.preb6\n"
+"\n"
+"You can integrate that into the archives if you want by using the 'arch'\n"
+"script.\n"
+msgstr ""
+"%s dispose d'archives publiques et privées. puisquue cette liste utilise\n"
+"actuellement l'archivage publique, je vais installer les fichiers "
+"d'archives\n"
+"publiques (%s) comme fichiers actifs et renommer\n"
+"\t%s\n"
+"\ten\n"
+"\t%s.preb6\n"
+"\n"
+"Vous pourrez, si vous le désirez, les intégrer dans les archives en\n"
+"utilisant le script arch.\n"
+
+#: bin/update:282
+msgid "- updating old private mbox file"
+msgstr "- mise à jour de l'ancien fichier mbox privé"
+
+#: bin/update:290
+msgid ""
+" unknown file in the way, moving\n"
+" %(o_pri_mbox_file)s\n"
+" to\n"
+" %(newname)s"
+msgstr ""
+"\tfichier inconnu rencontré, renommage\n"
+"\tde %(o_pri_mbox_file)s\n"
+"\ten\n"
+"\t%(newname)s"
+
+#: bin/update:297 bin/update:320
+msgid ""
+" looks like you have a really recent CVS installation...\n"
+" you're either one brave soul, or you already ran me"
+msgstr ""
+"On dirait que vous avez une installation CVS très récente...\n"
+"ou vous êtes une âme vaillante, ou vous m'avez déjà lancé"
+
+#: bin/update:306
+msgid "- updating old public mbox file"
+msgstr "- Mise à jour de l'ancien fichier mbox public"
+
+#: bin/update:314
+msgid ""
+" unknown file in the way, moving\n"
+" %(o_pub_mbox_file)s\n"
+" to\n"
+" %(newname)s"
+msgstr ""
+"Fichier inconnu rencontré, renommage de\n"
+"%(o_pub_mbox_file)s\n"
+"en\n"
+"%(newname)s"
+
+#: bin/update:345
+msgid "- This list looks like it might have <= b4 list templates around"
+msgstr ""
+"- Cette liste semble avoir des templates de liste <= b4 dans les parrages"
+
+#: bin/update:352
+msgid "- moved %(o_tmpl)s to %(n_tmpl)s"
+msgstr "- renommé %(o_tmpl)s en %(n_tmpl)s"
+
+#: bin/update:354
+msgid "- both %(o_tmpl)s and %(n_tmpl)s exist, leaving untouched"
+msgstr "- %(o_tmpl)s et %(n_tmpl)s existent tous deux, aucune modification"
+
+#: bin/update:384
+msgid "removing directory %(src)s and everything underneath"
+msgstr "Suppression du répertoire %(src)s et de tout ce qu'il contient"
+
+#: bin/update:387
+msgid "removing %(src)s"
+msgstr "Suppression de %(src)s"
+
+#: bin/update:391
+msgid "Warning: couldn't remove %(src)s -- %(rest)s"
+msgstr "Attention: impossible de supprimer %(src)s -- %(rest)s"
+
+#: bin/update:396
+msgid "couldn't remove old file %(pyc)s -- %(rest)s"
+msgstr "Impossible de supprimer l'ancien fichier %(pyc)s -- %(rest)s"
+
+#: bin/update:400
+msgid "updating old qfiles"
+msgstr "mise à jour des anciens fichiers qfiles"
+
+#: bin/update:422
+msgid "getting rid of old source files"
+msgstr "suppression des anciens fichiers sources"
+
+#: bin/update:432
+msgid "no lists == nothing to do, exiting"
+msgstr "pas de listes == rien à faire, sortie"
+
+#: bin/update:439
+msgid ""
+"fixing all the perms on your old html archives to work with b6\n"
+"If your archives are big, this could take a minute or two..."
+msgstr ""
+"correction des perm sur vos anciennes archives html pour qu'elles fonctionnent avec "
+"b6\n"
+"Si vos archives sont volumineuses, ceci pourrait prendre une minute ou deux..."
+
+#: bin/update:444
+msgid "done"
+msgstr "terminé"
+
+#: bin/update:446
+msgid "Updating mailing list: %(listname)s"
+msgstr "Mise à jour de la liste de diffusion: %(listname)s"
+
+#: bin/update:449
+msgid "Updating Usenet watermarks"
+msgstr "Mise à jour des filigranes Usenet"
+
+#: bin/update:454
+msgid "- nothing to update here"
+msgstr "- rien à mettre à jour ici"
+
+#: bin/update:477
+msgid "- usenet watermarks updated and gate_watermarks removed"
+msgstr "- filigranes usenet mises à jour et gate_filigrane supprimés"
+
+#: bin/update:487
+msgid "Updating old pending_subscriptions.db database"
+msgstr "Mise à jour de l'ancienne base de données pending_subscriptions.db"
+
+#: bin/update:504
+msgid ""
+"\n"
+"\n"
+"NOTE NOTE NOTE NOTE NOTE\n"
+"\n"
+" You are upgrading an existing Mailman installation, but I can't tell "
+"what\n"
+" version you were previously running.\n"
+"\n"
+" If you are upgrading from Mailman 1.0b9 or earlier you will need to\n"
+" manually update your mailing lists. For each mailing list you need to\n"
+" copy the file templates/options.html lists/<listname>/options.html.\n"
+"\n"
+" However, if you have edited this file via the Web interface, you will "
+"have\n"
+" to merge your changes into this file, otherwise you will lose your\n"
+" changes.\n"
+"\n"
+"NOTE NOTE NOTE NOTE NOTE\n"
+"\n"
+msgstr ""
+"\n"
+"\n"
+"NOTE NOTE NOTE NOTE NOTE\n"
+"\n"
+"Vous êtes en train d'effectuer une mise à jour d'une installation Mailman\n"
+"mais je ne connais pas la version que vous utilisiez.\n"
+"Si vous partez d'une version 1.0b9 ou antérieure, vous aller devoir\n"
+"mettre manuellement vos listes à jour. Pour chaque liste de diffusion, vous\n"
+"devrez copier le fichier templates/options.html lists/<nomListe>/options."
+"html.\n"
+"\n"
+"Si vous avez toutefois modifié ce fichier à travers l'interface web, vous\n"
+"allez devoir fusionner vos modifications dans ce fichier, faute de quoi vos "
+"modifications seront perdues.\n"
+"\n"
+"NOTE NOTE NOTE NOTE NOTE\n"
+"\n"
+
+#: bin/update:561
+msgid "No updates are necessary."
+msgstr "Pas de mise à jour nécessaire."
+
+#: bin/update:564
+msgid ""
+"Downgrade detected, from version %(hexlversion)s to version %(hextversion)s\n"
+"This is probably not safe.\n"
+"Exiting."
+msgstr ""
+"Dépréciation constatée, de la version %(hexlversion)s vers %(hextversion)s\n"
+"Ceci n'est certainement pas sûre.\n"
+"Je me barre!"
+
+#: bin/update:569
+msgid "Upgrading from version %(hexlversion)s to %(hextversion)s"
+msgstr "Mise à jour de la version %(hexlversion)s vers %(hextversion)s"
+
+#: bin/update:578
+msgid ""
+"\n"
+"ERROR:\n"
+"\n"
+"The locks for some lists could not be acquired. This means that either\n"
+"Mailman was still active when you upgraded, or there were stale locks in "
+"the\n"
+"%(lockdir)s directory.\n"
+"\n"
+"You must put Mailman into a quiescent state and remove all stale locks, "
+"then\n"
+"re-run \"make update\" manually. See the INSTALL and UPGRADE files for "
+"details.\n"
+msgstr ""
+"\n"
+"ERREUR:\n"
+"\n"
+"Impossible d'obtenir des verrous pour cette liste. De deux choses l'une:\n"
+"Ou Mailman était actif quand vous avez procédé à la mise à jour, ou bien il\n"
+"subsiste des vieux verrous dans le répertoire %(lockdir)s.\n"
+"\n"
+"Vous devrez mettre Mailman en veilleuse et supprimer tout les vieux "
+"verrous,\n"
+"puis ré-executez \"make update\" manuellement. Lisez les fichiers INSTALL\n"
+"et UPGRADE pour plus d'informations.\n"
+
+#: bin/version:19
+msgid "Print the Mailman version.\n"
+msgstr "Afficher la version de Mailman.\n"
+
+#: bin/version:26
+msgid "Using Mailman version:"
+msgstr "Utilisation de la version de Mailman:"
+
+#: bin/withlist:19
+msgid ""
+"General framework for interacting with a mailing list object.\n"
+"\n"
+"There are two ways to use this script: interactively or programmatically.\n"
+"Using it interactively allows you to play with, examine and modify a "
+"MailList\n"
+"object from Python's interactive interpreter. When running interactively, "
+"a\n"
+"MailList object called `m' will be available in the global namespace. It "
+"also\n"
+"loads the class MailList into the global namespace.\n"
+"\n"
+"Programmatically, you can write a function to operate on a MailList object,\n"
+"and this script will take care of the housekeeping (see below for "
+"examples).\n"
+"In that case, the general usage syntax is:\n"
+"\n"
+"%% bin/withlist [options] listname [args ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" -l / --lock\n"
+" Lock the list when opening. Normally the list is opened unlocked\n"
+" (e.g. for read-only operations). You can always lock the file "
+"after\n"
+" the fact by typing `m.Lock()'\n"
+"\n"
+" Note that if you use this option, you should explicitly call m.Save"
+"()\n"
+" before exiting, since the interpreter's clean up procedure will not\n"
+" automatically save changes to the MailList object (but it will "
+"unlock\n"
+" the list).\n"
+"\n"
+" -i / --interactive\n"
+" Leaves you at an interactive prompt after all other processing is\n"
+" complete. This is the default unless the -r option is given.\n"
+"\n"
+" --run [module.]callable\n"
+" -r [module.]callable\n"
+" This can be used to run a script with the opened MailList object.\n"
+" This works by attempting to import `module' (which must already be\n"
+" accessible on your sys.path), and then calling `callable' from the\n"
+" module. callable can be a class or function; it is called with the\n"
+" MailList object as the first argument. If additional args are "
+"given\n"
+" on the command line, they are passed as subsequent positional args "
+"to\n"
+" the callable.\n"
+"\n"
+" Note that `module.' is optional; if it is omitted then a module "
+"with\n"
+" the name `callable' will be imported.\n"
+"\n"
+" The global variable `r' will be set to the results of this call.\n"
+"\n"
+" --all / -a\n"
+" This option only works with the -r option. Use this if you want to\n"
+" execute the script on all mailing lists. When you use -a you "
+"should\n"
+" not include a listname argument on the command line. The variable "
+"`r'\n"
+" will be a list of all the results.\n"
+"\n"
+" --quiet / -q\n"
+" Suppress all status messages.\n"
+"\n"
+" --help / -h\n"
+" Print this message and exit\n"
+"\n"
+"\n"
+"Here's an example of how to use the -r option. Say you have a file in the\n"
+"Mailman installation directory called `listaddr.py', with the following\n"
+"two functions:\n"
+"\n"
+"def listaddr(mlist):\n"
+" print mlist.GetListEmail()\n"
+"\n"
+"def requestaddr(mlist):\n"
+" print mlist.GetRequestEmail()\n"
+"\n"
+"Now, from the command line you can print the list's posting address by "
+"running\n"
+"the following from the command line:\n"
+"\n"
+"%% bin/withlist -r listaddr mylist\n"
+"Loading list: mylist (unlocked)\n"
+"Importing listaddr ...\n"
+"Running listaddr.listaddr() ...\n"
+"mylist@myhost.com\n"
+"\n"
+"And you can print the list's request address by running:\n"
+"\n"
+"%% bin/withlist -r listaddr.requestaddr mylist\n"
+"Loading list: mylist (unlocked)\n"
+"Importing listaddr ...\n"
+"Running listaddr.requestaddr() ...\n"
+"mylist-request@myhost.com\n"
+"\n"
+"As another example, say you wanted to change the password for a particular\n"
+"user on a particular list. You could put the following function in a file\n"
+"called `changepw.py':\n"
+"\n"
+"from Mailman.Errors import NotAMember\n"
+"\n"
+"def changepw(mlist, addr, newpasswd):\n"
+" try:\n"
+" mlist.setMemberPassword(addr, newpasswd)\n"
+" mlist.Save()\n"
+" except NotAMember:\n"
+" print 'No address matched:', addr\n"
+"\n"
+"and run this from the command line:\n"
+"%% bin/withlist -l -r changepw mylist somebody@somewhere.org foobar\n"
+msgstr ""
+"Cadre générique pour travailler avec les objets liste de diffusion.\n"
+"\n"
+"Il y a deux façons d'utiliser ce script: Inter-activement ou par le biais\n"
+"de la programmation. De façon interactive vous pourrez explorer, afficher et\n"
+"modifier un objet MailList en utilisant une interface Python\n"
+"interactive. En mode interactif, un objet MailList nommé m est\n"
+"disponible dans l'espace de nommage global. La classe MailList est\n"
+"aussi chargée dans l'espace de nommage global. En mode\n"
+"programmation, vous pouvez écrire une fonction qui opère sur un objet\n"
+"MailList, ce script prendra alors soin des détails (voir plus loin\n"
+"pour des exemples).\n"
+"\n"
+"Dans ce cas, la syntaxe générique est:\n"
+"\n"
+"%% bin/withlist [options] nomliste [args ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" -l / --lock\n"
+" Verrouiller la liste à l'ouverture. En principe la liste est\n"
+" ouverte sans verrou (e.g. pour les opérations en lecture\n"
+" seule). Vous pourrez toujours verrouiller le fichier après coup\n"
+" en appelant `m.Lock()'\n"
+"\n"
+" Notez que si vous utilisez cette option, vous devrez faire\n"
+" explicitement appel à m.Save() avant de quitter puisque la\n"
+" procédure de nettoyage de l'interpréteur n'enregistre pas\n"
+" automatiquement les modifications de l'objet MailList (il\n"
+" déverrouillera par contre la liste).\n"
+"\n"
+" -i / --interactive\n"
+" Vous laisse devant un prompt interactif après que tous les\n"
+" autres traitements aient été effectués. Ceci est le comportement\n"
+" par défaut à moins que l'option -r n'ait été fournie.\n"
+"\n"
+" --run [module.]callable\n"
+" -r [module.]callable\n"
+" Ceci peut être utilisé pour exécuter un script avec un objet\n"
+" MailList ouvert. La démarche consiste à essayer d'importer\n"
+" `module' (qui doit être déjà disponible dans sys.path) puis à\n"
+" appeler `callable' à partir du module. callable peut être une\n"
+" classe ou une fonction; il est appelé avec l'objet MailList\n"
+" comme premier argument. Si d'autres arguments sont fournis sur\n"
+" la ligne de commande, ils sont passés comme paramètres\n"
+" additionnels à callable.\n"
+"\n"
+" Notez que `module.' est facultatif; quand il est omis, un\n"
+" module nommé `callable' sera importé.\n"
+"\n"
+" La variable globale `r' prendra la valeur de retour de\n"
+" cet appel.\n"
+"\n"
+" --all / -a\n"
+" Cette option fonctionne uniquement avec l'option -r. Utilisez\n"
+" la si vous voulez exécuter le script sur toutes les listes de\n"
+" diffusion. Lorsque vous utilisez cette option, vous ne devrez\n"
+" pas fournir un nom de liste en argument. La variable `r' sera\n"
+" une `liste' (Ndt: comme type de données) de tous les\n"
+" résultats.\n"
+"\n"
+" --quiet / -q\n"
+" Supprimer tous les messages informatifs.\n"
+"\n"
+" --help / -h\n"
+" Afficher ce message puis quitter\n"
+"\n"
+"\n"
+"Voici un exemple d'utilisation de l'option -r. Supposons que vous\n"
+"disposiez d'un fichier `addrliste.py' dans le répertoire principal\n"
+"d'installation de Mailman, avec les deux fonctions suivantes:\n"
+"\n"
+"def addrliste(mlist):\n"
+" print mlist.GetListEmail()\n"
+"\n"
+"def addrrequest(mlist):\n"
+" print mlist.GetRequestEmail()\n"
+"\n"
+"A présent, à partir de la ligne de commande, vous pouvez afficher\n"
+"l'adresse de soumission sur la liste en exécutant ce qui suit en ligne\n"
+"de commande:\n"
+"\n"
+"%% bin/withlist -r addrliste maliste\n"
+"Chargement de la liste: maliste (sans verrou)\n"
+"Importation de addrliste ...\n"
+"Exécution de addrliste.addrliste() ...\n"
+"maliste@monhote.com\n"
+"\n"
+"Et vous pourrez afficher l'adresse request de la liste en exécutant:\n"
+"\n"
+"%% bin/withlist -r addrliste.addrrequest maliste\n"
+"Chargement de la liste: maliste (sans verrou)\n"
+"Importation de addrliste ...\n"
+"Exécution de addrliste.addrrequest() ...\n"
+"maliste-request@monhote.com\n"
+"\n"
+"Prenons un autre exemple. Disons que vous souhaitez modifier le mot de\n"
+"passe d'un utilisateur particulier sur une liste particulière. Vous\n"
+"pourrez créer les fonctions suivantes dans un fichier appelé\n"
+"`changepass.py':\n"
+"\n"
+"from Mailman.Errors import NotAMember\n"
+"\n"
+"def changepasse(mlist, addr, nouvpasse):\n"
+" try:\n"
+" mlist.setMemberPassword(addr, nouvpasse)\n"
+" mlist.Save()\n"
+" except NotAMember:\n"
+" print \"Pas d'adresse correspondant à:\", addr\n"
+"\n"
+"puis exécuter ce qui suit sur la ligne de commande:\n"
+"%% bin/withlist -l -r changepasse maliste toto@qqpart.org foobar\n"
+
+#: bin/withlist:151
+msgid ""
+"Unlock a locked list, but do not implicitly Save() it.\n"
+"\n"
+" This does not get run if the interpreter exits because of a signal, or "
+"if\n"
+" os._exit() is called. It will get called if an exception occurs "
+"though.\n"
+" "
+msgstr ""
+"Déverrouille une liste verrouillée, sans appel implicite à Save().\n"
+"Ceci n'est pas exécuté lorsque l'interpreteur se termine suite à la\n"
+"reception d'un signal ou suite à l'appel de os._exit(). Il sera par\n"
+"contre executé lorsqu'une exception se produit.\n"
+"\t"
+
+#: bin/withlist:162
+msgid "Unlocking (but not saving) list: %(listname)s"
+msgstr "Déverrouillage (sans sauvegarde) de la liste: %(listname)s"
+
+#: bin/withlist:166
+msgid "Finalizing"
+msgstr "Finalisation"
+
+#: bin/withlist:175
+msgid "Loading list %(listname)s"
+msgstr "Chargement de la liste %(listname)s en cours"
+
+#: bin/withlist:177
+msgid "(locked)"
+msgstr "(verrouillé)"
+
+#: bin/withlist:179
+msgid "(unlocked)"
+msgstr "(déverrouillé)"
+
+#: bin/withlist:184
+msgid "Unknown list: %(listname)s"
+msgstr "Liste inconnue: %(listname)s"
+
+#: bin/withlist:223
+msgid "No list name supplied."
+msgstr "Nom de liste non fourni."
+
+#: bin/withlist:226
+msgid "--all requires --run"
+msgstr "--all va avec --run"
+
+#: bin/withlist:246
+msgid "Importing %(module)s..."
+msgstr "Importation de %(module)s..."
+
+#: bin/withlist:249
+msgid "Running %(module)s.%(callable)s()..."
+msgstr "Exécution de %(module)s.%(callable)s()..."
+
+#: bin/withlist:270
+msgid "The variable `m' is the %(listname)s MailList instance"
+msgstr ""
+"La variable `m' est une instance de la classe MailList de\n"
+"%(listname)s"
+
+#: cron/bumpdigests:19
+msgid ""
+"Increment the digest volume number and reset the digest number to one.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" --help/-h\n"
+" Print this message and exit.\n"
+"\n"
+"The lists named on the command line are bumped. If no list names are "
+"given,\n"
+"all lists are bumped.\n"
+msgstr ""
+"Incrémente le numéro de volume du digest et réinitialise le numéro du\n"
+"digest à un.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [nomliste ...]\n"
+"\n"
+" --help/-h\n"
+" Affiche ce message et quitte.\n"
+"\n"
+"Les noms de liste fournis en ligne de commande sont traités. Si\n"
+"aucun nom de liste n'est fourni, toute les listes sont traitées.\n"
+
+#: cron/checkdbs:19
+msgid ""
+"Invoked by cron, this checks for pending moderation requests and mails the\n"
+"list moderators if necessary.\n"
+msgstr ""
+"Invoqué par cron, ceci vérifie les requêtes de modération en attente\n"
+"et envoie au besoin un courriel au modérateur.\n"
+
+#: cron/checkdbs:81
+msgid "%(count)d %(realname)s moderator request(s) waiting"
+msgstr "%(count)d requête(s) pour le modérateur de %(realname)s en attente"
+
+#: cron/checkdbs:100
+msgid "Pending subscriptions:"
+msgstr "Abonnements en attente"
+
+#: cron/checkdbs:109
+msgid ""
+"\n"
+"Pending posts:"
+msgstr ""
+"\n"
+"Envois en attente:"
+
+#: cron/checkdbs:114
+msgid ""
+"From: %(sender)s on %(date)s\n"
+"Objet: %(subject)s\n"
+"Cause: %(reason)s"
+msgstr ""
+"De: %(sender)s le %(date)s\n"
+"Objet: %(subject)s\n"
+"Cause: %(reason)s"
+
+#: cron/disabled:19
+msgid ""
+"Process disabled members, recommended once per day.\n"
+"\n"
+"This script cruises through every mailing list looking for members whose\n"
+"delivery is disabled. If they have been disabled due to bounces, they will\n"
+"receive another notification, or they may be removed if they've received "
+"the\n"
+"maximum number of notifications.\n"
+"\n"
+"Use the --byadmin, --byuser, and --unknown flags to also send notifications "
+"to\n"
+"members whose accounts have been disabled for those reasons. Use --all to\n"
+"send the notification to all disabled members.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -h / --help\n"
+" Print this message and exit.\n"
+"\n"
+" -o / --byadmin\n"
+" Also send notifications to any member disabled by the list\n"
+" owner/administrator.\n"
+"\n"
+" -m / --byuser\n"
+" Also send notifications to any member disabled by themselves.\n"
+"\n"
+" -u / --unknown\n"
+" Also send notifications to any member disabled for unknown reasons\n"
+" (usually a legacy disabled address).\n"
+"\n"
+" -b / --notbybounce\n"
+" Don't send notifications to members disabled because of bounces "
+"(the\n"
+" default is to notify bounce disabled members).\n"
+"\n"
+" -a / --all\n"
+" Send notifications to all disabled members.\n"
+"\n"
+" -f / --force\n"
+" Send notifications to disabled members even if they're not due a "
+"new\n"
+" notification yet.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" Process only the given list, otherwise do all lists.\n"
+msgstr ""
+"Traiter les abonnements désactivés, recommandé au moins une fois par\n"
+"jour.\n"
+"\n"
+"Ce script scrute toutes les listes de diffusion à la recherche d'abonnés\n"
+"pour lesquels la remise est désactivée. Si ces abonnements ont été\n"
+"désactivés suite à des rebonds, ils recevront un autre avis ou seront\n"
+"supprimés s'ils ont déjà reçu le nombre maximal d'avis autorisé.\n"
+"\n"
+"Utilisez les paramètres --byadmin, --byuser, et --unknown pour envoyer\n"
+"un avis aux utilisateurs dont la remise a été désactivée pour ces\n"
+"motifs (par-admin, par-abonné, inconnue). Utilisez le paramètre --all\n"
+"pour envoyer un avis à tous les abonnés pour lesquels la remise a été\n"
+"désactivée.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -h / --help\n"
+" Affiche ce message puis quitte.\n"
+"\n"
+" -o / --byadmin\n"
+" Envoyer également un avis à tout abonné pour lequel la\n"
+" remise a été désactivée par l'administrateur/propriétaire\n"
+" de la liste.\n"
+"\n"
+" -m / --byuser\n"
+" Envoyer également un avis à tout utilisateur qui aurait\n"
+" désactivé la remise de lui-même.\n"
+"\n"
+" -u / --unknown \n"
+" Envoyer également un avis à tout utilisateur pour lequel\n"
+" remise est désactivée pour une raison inconnue (généralement\n"
+" une adresse héritée désactivée)\n"
+"\n"
+" -b / --notbybounce\n"
+" Ne pas envoyer d'avis aux utilisateurs dont la remise est\n"
+" désactivée suite à des rebonds (par défaut les abonnés de ce\n"
+" type reçoivent un avis).\n"
+"\n"
+" -a / --all\n"
+" Envoyer un avis à tous les utilisateurs pour lesquels la\n"
+" remise est désactivée.\n"
+"\n"
+" -f / --force\n"
+" Envoyer les avis aux abonnés désactivés même si le terme n'est\n"
+" pas échu.\n"
+"\n"
+" -l nomliste\n"
+" --listname=nomliste\n"
+" Traiter uniquement la liste nommée. Sinon traiter toute les\n"
+" listes.\n"
+
+#: cron/disabled:143
+msgid "[disabled by periodic sweep and cull, no message available]"
+msgstr ""
+"[désactivé pour raison d'entretien périodique, aucun message\n"
+"disponible]"
+
+#: cron/gate_news:19
+msgid ""
+"Poll the NNTP servers for messages to be gatewayed to mailing lists.\n"
+"\n"
+"Usage: gate_news [options]\n"
+"\n"
+"Where options are\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this text and exit.\n"
+"\n"
+msgstr ""
+"Interroge le serveur NNTP pour les messages à faire suivre dans la\n"
+"liste de diffusion.\n"
+"\n"
+"Usage: gate_news [options]\n"
+"\n"
+"Où les options sont:\n"
+"\n"
+" --help\n"
+" -h\n"
+" Affiche ce message puis quitte.\n"
+
+#: cron/mailpasswds:19
+msgid ""
+"Send password reminders for all lists to all users.\n"
+"\n"
+"This program scans all mailing lists and collects users and their "
+"passwords,\n"
+"grouped by the list's host_name if mm_cfg.VIRTUAL_HOST_OVERVIEW is true. "
+"Then\n"
+"one email message is sent to each unique user (per-virtual host) containing\n"
+"the list passwords and options url for the user. The password reminder "
+"comes\n"
+"from the mm_cfg.MAILMAN_SITE_LIST, which must exist.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -l listname\n"
+" --listname=listname\n"
+" Send password reminders for the named list only. If omitted,\n"
+" reminders are sent for all lists. Multiple -l/--listname options "
+"are\n"
+" allowed.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+msgstr ""
+"Envoyer les rappels des mots de passe à tous les abonnés de toutes les\n"
+"listes.\n"
+"\n"
+"Ce programme scanne toutes les listes et récupère les utilisateurs\n"
+"ainsi que leurs mots de passe groupés par les paramètre nom_hôte de\n"
+"la liste lorsque mm_cfg.VIRTUAL_HOST_OVERVIEW a la valeur vraie. Puis\n"
+"un courriel est envoyé à chaque utilisateur individuel (pour chaque\n"
+"hôte virtuel) contenant les mots de passe des listes et l'url des\n"
+"options pour l'utilisateur. Le rappel de mot de passe provient de\n"
+"mm_cfg.MAILMAN_SITE_LIST qui doit être défini.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -l nomliste\n"
+" --listname=nomliste\n"
+" Envoie un rappel uniquement pour la liste spécifiée. Si ce\n"
+" paramètre est omis, les rappels sont envoyés pour toutes les\n"
+" listes. Plusieurs options -l/--listname peuvent être fournies.\n"
+"\n"
+" -h/--help\n"
+" Affiche ce message et quitte.\n"
+
+#: cron/mailpasswds:111
+msgid "Site list is missing: %(sitelistname)s"
+msgstr "La liste du site est introuvable: %(sitelistname)s"
+
+#: cron/mailpasswds:179
+msgid "Password // URL"
+msgstr "Mot de passe // URL"
+
+#: cron/mailpasswds:199
+msgid "%(host)s mailing list memberships reminder"
+msgstr "Rappel pour les abonnements aux listes sur %(host)s"
+
+#: cron/nightly_gzip:19
+msgid ""
+"Re-generate the Pipermail gzip'd archive flat files.\n"
+"\n"
+"This script should be run nightly from cron. When run from the command "
+"line,\n"
+"the following usage is understood:\n"
+"\n"
+"Usage: %(program)s [-v] [-h] [listnames]\n"
+"\n"
+"Where:\n"
+" --verbose\n"
+" -v\n"
+" print each file as it's being gzip'd\n"
+"\n"
+" --help\n"
+" -h\n"
+" print this message and exit\n"
+"\n"
+" listnames\n"
+" Optionally, only compress the .txt files for the named lists. "
+"Without \n"
+" this, all archivable lists are processed.\n"
+"\n"
+msgstr ""
+"Régénérer les fichiers archives bruts gzipés de Pipermail.\n"
+"\n"
+"Ce script doit être exécuté durant la nuit par cron. Lorsqu'il est exécuté\n"
+"en ligne de commande, l'utilisation suivante est admise:\n"
+"\n"
+"Usage: %(program)s [-v] [-h] [nomsliste]\n"
+"\n"
+"Où:\n"
+" --verbose\n"
+" -v\n"
+" Affiche chaque fichier pendant qu'il est gzipé\n"
+"\n"
+" --help\n"
+" -h\n"
+" Affiche ce message et quitte\n"
+"\n"
+" nomsliste\n"
+" De façon optionnelle, compresser uniquement le fichier .txt\n"
+" pour les listes nommées. Sans cette option, toutes les listes\n"
+" archivables sont traitées.\n"
+"\n"
+
+#: cron/senddigests:19
+msgid ""
+"Dispatch digests for lists w/pending messages and digest_send_periodic set.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -h / --help\n"
+" Print this message and exit.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" Send the digest for the given list only, otherwise the digests for "
+"all\n"
+" lists are sent out.\n"
+msgstr ""
+"Incrémente le numéro de volume du digest et réinitialise le numéro du\n"
+"digest à un.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [nomliste ...]\n"
+"\n"
+" --help/-h\n"
+" Affiche ce message et quitte.\n"
+"\n"
+"Les noms de liste fournis en ligne de commande sont traités. Si\n"
+"aucune liste n'est nommée, toutes les listes sont traitées.\n"
+
+#~ msgid "Posts by member are currently quarantined for moderation"
+#~ msgstr ""
+#~ "Les envois des abonnés sont actuellement mis en quarantaine\n"
+#~ "pour modération."
+
+#~ msgid "A confirmation email has been sent separately."
+#~ msgstr "Un courriel de confirmation a été envoyé à part."
+
+#~ msgid "A removal confirmation message has been sent."
+#~ msgstr "Une demande de confirmation de suppression a été envoyée."
+
+#~ msgid "Removed: <%(addr)30s> %(name)s"
+#~ msgstr "Supprimé: <%(addr)30s> %(name)s"
+
+#~ msgid "non-digest header"
+#~ msgstr "En-tête de remise individuelle"
+
+#~ msgid "non-digest footer"
+#~ msgstr "Pied de page du mode non-groupé"
+
+#, fuzzy
+#~ msgid ""
+#~ "\n"
+#~ "Check a given Mailman translation, making sure that variables and \n"
+#~ "tags referenced in translation are the same variables and tags in \n"
+#~ "the original templates and catalog.\n"
+#~ "\n"
+#~ "Usage:\n"
+#~ "\n"
+#~ "cd $MAILMAN_DIR\n"
+#~ "%(program)s [-q] <lang>\n"
+#~ "\n"
+#~ "Where <lang> is your country code (e.g. 'it' for Italy) and -q is \n"
+#~ "to ask for a brief summary.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Vérifie la cohérence de Mailman en s'assurant que les variables et les\n"
+#~ "balises référencées dans la traduction sont les mêmes variables et\n"
+#~ "balises contenues dans les templates et le catalogue originaux.\n"
+#~ "\n"
+#~ "Usage:\n"
+#~ "\n"
+#~ "cd $MAILMAN_DIR\n"
+#~ "%(program)s [-q] <lang>\n"
+#~ "\n"
+#~ "Où <lang> est le code du pays (e.g. 'it' pour Italie) et le -q demande\n"
+#~ "une résumé concis.\n"
+
+#, fuzzy
+#~ msgid ""
+#~ "States table for the finite-states-machine parser:\n"
+#~ "\t\t\t0 idle\n"
+#~ "\t\t\t1 filename-or-comment\n"
+#~ "\t\t\t2 msgid\n"
+#~ "\t\t\t3 msgstr\n"
+#~ "\t\t\t4 end\n"
+#~ "\t\t"
+#~ msgstr ""
+#~ "La table des états pour l'analyseur de l'ensemble fini des états\n"
+#~ "machines:\n"
+#~ " 0 idle\n"
+#~ " 1 filename-or-comment\n"
+#~ " 2 msgid\n"
+#~ " 3 msgstr\n"
+#~ " 4 end\n"
+#~ " "
+
+#, fuzzy
+#~ msgid ""
+#~ "check a translated template against the original one\n"
+#~ "\t search also <MM-*> tags if html is not zero"
+#~ msgstr ""
+#~ "Compare une template traduite avec l'original et recherche les balises\n"
+#~ "<MM-*> si html est non nul"
+
+#~ msgid ""
+#~ "Reset a list's web_page_url attribute to the default setting.\n"
+#~ "\n"
+#~ "This script is intended to be run as a bin/withlist script, i.e.\n"
+#~ "\n"
+#~ "% bin/withlist -l -r fix_url <mylist>\n"
+#~ msgstr ""
+#~ "Re-initialise l'attribut url_page_web d'une liste à sa valeur par "
+#~ "défaut.\n"
+#~ "\n"
+#~ "Ce script doit être exécuté comme un script bin/withlist, i.e.\n"
+#~ "% bin/withlist -l -r fix_url <maliste>\n"
+
+#~ msgid "Bad owner email address: %(owner_mail)s"
+#~ msgstr "Adresse de propriétaire spécifiée invalide: %(owner_mail)s"
+
+#~ msgid ""
+#~ "Dispatch digests for lists w/pending messages and digest_send_periodic "
+#~ "set.\n"
+#~ "\n"
+#~ "Typically it's invoked via cron.\n"
+#~ msgstr ""
+#~ "Envoyer les digests pour les listes avec des messages en attente pour\n"
+#~ "lesquels la variable digest_send_periodic est définie.\n"
+#~ "\n"
+#~ "Il est généralement appelé par .\n"
+
+#~ msgid "Policies concerning concerning the content of list traffic."
+#~ msgstr "Règles concernant le contenu échangé sur la liste."
+
+#~ msgid ""
+#~ "Use this option to remove each message section with a\n"
+#~ " matching MIME type. Each line should contain a string "
+#~ "naming a\n"
+#~ " MIME <tt>type/subtype</tt>, e.g. <tt>image/gif</tt>. Leave "
+#~ "off\n"
+#~ " the subtype to remove all parts with a matching MIME major "
+#~ "type,\n"
+#~ " e.g. <tt>image</tt>. Blank lines are ignored.\n"
+#~ "\n"
+#~ " <p>After stripping message parts, any <tt>multipart</tt>\n"
+#~ " attachment that is empty as a result is removed all "
+#~ "together. If\n"
+#~ " the outer part's MIME type matches one of the strip types, "
+#~ "or if\n"
+#~ " all of the outer part's subparts are stripped, then the "
+#~ "whole\n"
+#~ " message is discarded. Finally, each\n"
+#~ " <tt>multipart/alternative</tt> section will be replaced by "
+#~ "just\n"
+#~ " the first alternative that is non-empty after the specified "
+#~ "types\n"
+#~ " have been removed."
+#~ msgstr ""
+#~ "Utilisez cette option pour supprimer toute section du message avec un\n"
+#~ "type MIME correspondant. Chaque ligne doit contenir une chaîne\n"
+#~ "spécifiant un <tt>type/soustype</tt> MIME,\n"
+#~ "e.g. <tt>image/gif</tt>. Ignorer les sous-types lorsque vous désirez\n"
+#~ "supprimer tous les MIME quelque soit le sous-type,\n"
+#~ "e.g. <tt>image</tt>. Les lignes vides sont ignorées.\n"
+#~ "\n"
+#~ "<p>Après le nettoyage du message, tous les attachements\n"
+#~ "<tt>multipart</tt> vides seront entièrement supprimés.\n"
+#~ "Si le type MIME principal correspond à l'un des types à supprimés ou\n"
+#~ "si toutes les sous-parties du message sont supprimées, le message est\n"
+#~ "ignoré. Enfin, chaque section <tt>multipart/alternative</tt> sera\n"
+#~ "remplacée par la première partie alternative non vide après que les types\n"
+#~ "spécifiés aient été supprimés."
+
+#~ msgid ""
+#~ "To finish creating your mailing list, you must edit your\n"
+#~ "/etc/aliases (or equivalent) file by adding the following lines:\n"
+#~ "\n"
+#~ "## %(listname)s mailing list\n"
+#~ "## created: %(date)s %(user)s\n"
+#~ "%(list)s \"|%(wrapper)s post %(listname)s\"\n"
+#~ "%(admin)s \"|%(wrapper)s mailowner %(listname)s\"\n"
+#~ "%(request)s \"|%(wrapper)s mailcmd %(listname)s\"\n"
+#~ "%(owner)s %(listname)s-admin\n"
+#~ msgstr ""
+#~ "Pour achever la création de votre liste de diffusion, vous devez\n"
+#~ "modifier votre fichier /etc/aliases (ou équivalent) en y ajoutant les\n"
+#~ "lignes suivantes:\n"
+#~ "\n"
+#~ "## Liste de diffusion %(listname)s<\n"
+#~ "## crée: %(date)s %(user)s\n"
+#~ "%(list)s \"|%(wrapper)s post %(listname)s\"\n"
+#~ "%(admin)s \"|%(wrapper)s mailowner %(listname)s\"\n"
+#~ "%(request)s \"|%(wrapper)s mailcmd %(listname)s\"\n"
+#~ "%(owner)s %(listname)s-admin\n"
+
+#~ msgid ""
+#~ "To finish removing your mailing list, you must edit your\n"
+#~ "/etc/aliases (or equivalent) file by removing the following lines:\n"
+#~ "\n"
+#~ "%(list)s \"|%(wrapper)s post %(listname)s\"\n"
+#~ "%(admin)s \"|%(wrapper)s mailowner %(listname)s\"\n"
+#~ "%(request)s \"|%(wrapper)s mailcmd %(listname)s\"\n"
+#~ "%(owner)s %(listname)s-admin\n"
+#~ msgstr ""
+#~ "Pour achever la suppression de votre liste de diffusion, vous devez\n"
+#~ "modifier votre fichier /etc/aliases (ou équivalent) en y supprimant les\n"
+#~ "lignes suivantes:\n"
+#~ "\n"
+#~ "%(list)s \"|%(wrapper)s post %(listname)s\"\n"
+#~ "%(admin)s \"|%(wrapper)s mailowner %(listname)s\"\n"
+#~ "%(request)s \"|%(wrapper)s mailcmd %(listname)s\"\n"
+#~ "%(owner)s %(listname)s-admin\n"
+
+#~ msgid ""
+#~ "To finish creating your mailing list, execute the following\n"
+#~ "commands with the proper permission:\n"
+#~ "\n"
+#~ "echo '|preline %(wrapper)s post %(listname)s' >~alias/.qmail-%(listname)"
+#~ "s\n"
+#~ "echo '|preline %(wrapper)s mailowner %(listname)s' >~alias/.qmail-%"
+#~ "(listname)s-admin\n"
+#~ "echo '|preline %(wrapper)s mailcmd %(listname)s' >~alias/.qmail-%"
+#~ "(listname)s-request\n"
+#~ "echo '&%(listname)s-admin' >~alias/.qmail-owner-%(listname)s\n"
+#~ "echo '&%(listname)s-admin' >~alias/.qmail-%(listname)s-owner\n"
+#~ "\n"
+#~ "chmod 644 ~alias/.qmail-%(listname)s ~alias/.qmail-%(listname)s-admin\n"
+#~ "chmod 644 ~alias/.qmail-%(listname)s-request ~alias/.qmail-%(listname)s-"
+#~ "owner\n"
+#~ "chmod 644 ~alias/.qmail-owner-%(listname)s\n"
+#~ msgstr ""
+#~ "Pour achever la création de votre liste, exécutez les commandes\n"
+#~ "suivantes avec les permissions appropriées:\n"
+#~ "\n"
+#~ "echo '|preline %(wrapper)s post %(listname)s'>ãlias/.qmail-%(listname)s\n"
+#~ "echo '|preline %(wrapper)s mailowner %(listname)s'\n"
+#~ ">ãlias/.qmail-%(listname)s-admin\n"
+#~ "echo '|preline %(wrapper)s mailcmd %(listname)s'\n"
+#~ ">ãlias/.qmail-%(listname)s-request\n"
+#~ "echo '&%(listname)s-admin'>ãlias/.qmail-owner-%(listname)s\n"
+#~ "echo '&%(listname)s-admin'>ãlias/.qmail-%(listname)s-owner\n"
+#~ "\n"
+#~ "chmod 644 ãlias/.qmail-%(listname)s ãlias/.qmail-%(listname)s-admin\n"
+#~ "chmod 644 ãlias/.qmail-%(listname)s-request \n"
+#~ "ãlias/.qmail-%(listname)s-owner\n"
+#~ "chmod 644 ãlias/.qmail-owner-%(listname)s\n"
+
+#~ msgid ""
+#~ "To finish removing your mailing list, you must remove the\n"
+#~ "all the entires for the %(listname)s aliases."
+#~ msgstr ""
+#~ "Pour achever la suppression de votre liste, vous devez supprimer\n"
+#~ "toutes les entrées des aliases de %(listname)s."
diff --git a/messages/fr/README.fr b/messages/fr/README.fr
new file mode 100644
index 00000000..b76ed048
--- /dev/null
+++ b/messages/fr/README.fr
@@ -0,0 +1,21 @@
+Francisation de Mailman.
+
+Je vous invite à relire les catalogues et les templates qui sont
+écrites pour la plupart par un Francophone dont la langue maternelle
+n'est pas le français, qui plus est n'est ni doué en grammaire ni
+érudit. Si vous ne relisez rien et que vous y trouvez des fautes, ne
+grognez surtout pas, suggérez gentillement vos corrections, et elles
+seront apportées illico.
+
+Questions, suggestions: wilane@yahoo.com
+
+Ousmane Wilane <wilane@yahoo.com>
+
+Note décembre 2002 : Le traducteur en cours est Pascal GEORGE. Pour tous commentaires
+veuillez contacter <george@lyon.inserm.fr>
+
+Local Variables:
+mode: indented-text
+indent-tabs-mode: nil
+End:
+
diff --git a/messages/hu/FAQ.hu b/messages/hu/FAQ.hu
new file mode 100644
index 00000000..fe0944fa
--- /dev/null
+++ b/messages/hu/FAQ.hu
@@ -0,0 +1,464 @@
+Mailman - The GNU Mailing List Management System
+Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+Megjegyzés: A Mailman GYIK (angolul a FAQ) már on-line is elérhetõ a
+ "FAQ Wizard" rendszer segítségével, a
+ http://www.python.org/cgi-bin/faqw-mm.py címen.
+
+GYAKRAN ISMÉTLÕDÕ KÉRDÉSEK
+
+K. Hogyan kell helyesen leírni a program nevét?
+
+V. A "Mailman" elsõ "M" betûjét nagybetûvel kell írni, míg a második
+ "m" kicsivel írandó. A "MailMan" írásforma helytelen (mg. felejtsük
+ el itt a szótagok kezdõbetûjének nagybetûs írásformáját).
+
+K. A kimenõ leveleket iszonyúan lassan továbbítja a program. Úgy tûnik,
+ hogy amikor az MTA valamely címzettnél DNS kérést végez, akkor a
+ qrunner nagyon lassan dolgozza fel a várakozási sort. Ötlet?
+
+V. Valóban az MTA DNS kérést végez a címzetteknél, amikor a leveleket
+ helyben továbbadja (pl. a Mailman az SMTPDirect.py-vel az MTA-nak).
+ Ez bizony hiba. Ki kell kapcsolnunk a gép folyamatos DNS kérését.
+
+ Exim esetén, ez a receiver_verify_hosts megfelelõ beállításával
+ történhet. Bõvebb információt a README.EXIM.hu-ban találhatunk.
+ Más MTA-k esetében (természetesen) más beállítást kell végrehajtani.
+ Elõször olvassuk el az MTA-hoz tartozó megfelelõ README állományt,
+ majd végsõ esetben az MTA dokumentációját.
+
+K. A lista tagok a Mailman List-* fejléceirõl kérdezgetnek. Mik
+ ezek valójában?
+
+V. Ezeket a fejlécek a Mailman minden egyes kimenõ levélhez hozzáadja,
+ a felhasználók kényelmében. A Mailman az RFC 2369-ben foglaltaknak
+ megfelelõen hozza létre ezeket a fejléceket. Az RFC 2369 ezeket
+ a fejléceket definiálja. Ha még mindig kíváncsiak a felhasználók,
+ akkor olvassuk el jó tanácsokért a README.USERAGENT.hu állományt.
+
+ Végsõ esetben a lista adminisztrációs oldalán az Általános
+ beállítások részben le lehet tiltani ezen fejlécek hozzáadását a
+ kimenõ levelekhez.
+
+K. Hogyan tudom a felhasználó címét megjeleníteni a minden levél
+ alján megtalálható láblécben?
+
+V. A Mailman 2.1-es verziótól támogatja a személyre szabott levél-
+ küldést, azonban alapesetben nincs engedélyezve, mivel túlzott
+ terhelést okozhat a rendszeren. Ha szeretnénk támogatni az
+ egyedi levelek küldését, akkor a ~mailman/Mailman/mm_cfg.py
+ állományban adjuk meg a következõ beállításokat:
+
+ VERP_PASSWORD_REMINDERS = 1
+ VERP_PERSONALIZED_DELIVERIES = 1
+ VERP_DELIVERY_INTERVAL = 1
+ VERP_CONFIRMATIONS = 1
+
+ A VERP (variable envelope return path = változtatható válaszcímû
+ levél) engedélyezése után a lista adminisztrációs oldalán a
+ Nem-Digest küldési beállítások részben ismertetett változók
+ segítségével a felhasználó feliratkozási címét, nevét, beállítási
+ oldalát és jelszavát is el lehet helyezni.
+
+K. A felhasználóim kerülni szeretnék a HTML formátumú leveleket és én
+ biztonsági okok miatt szeretném a MIME csatolt állományokat is a
+ levelekbõl eltávolítani. Hogyan tehetem ezt meg?
+
+V. A Mailman 2.1-ben lehetõség van a tartalomszûrésre, amellyel
+ korlátozni, vagy tiltani lehet hogy milyen típusú mellékletek,
+ levelek jelenhetnek meg a listán. Ehhez szükséges beállításokat a
+ lista adminisztrációs oldalán keresztül a Tartalom szûrés részben
+ lehet módosítani.
+
+ A 2.1 elõtti Mailman verziókhoz külsõ programokat, minnt pl. a
+ demime vagy stripmime kell használni. Ezekrõl bõvebb információt
+ a következõ oldalakon lehet találni:
+
+ (Stripmime) http://www.phred.org/~alex/stripmime.html
+
+ (Demime) http://scifi.squawk.com/demime.html
+
+K. Mi van akkor, ha "document contains no data" (üres dokumentum)
+ üzenetet kapok a webkiszolgálótól, vagy a levelek nem kerülnek fel-
+ dolgozásra, vagy "Premature end of script" (hibás szkript befejezés)
+ vagy "Mailman CGI error!!!" (Mailman CGI Hiba) üzenetet kapok.
+
+V. A leggyakoribb hibát az okozza, hogy a C wrapper program nem a web-
+ kiszolgáló által várt GID jogokkal lett lefordítva. Ugyanilyen
+ hibát okoz az is, ha a levelezõrendszer más GID-del hívná meg a
+ lefordított C levél wrappert.
+
+ A hiba elhárításához újra kell fordítani a Mailman-t a
+ --with-cgi-gid és --with-mail-gid kapcsolókkal. Az INSTALL állományban
+ errõl bõvebben lehet olvasni.
+
+ Ezek a hibaüzenetek nem a Mailman naplóállományaiban, hanem a
+ rendszerszintû naplóállományokban jelennek meg. A CGI wrappernél
+ felmerülõ hibák közvetlenül a web böngészõben jelennek meg, a
+ szükséges GID-del együtt. Ez nagymértékben tud segíteni a probléma
+ elhárításánál.
+
+ A syslog-ot be lehet állítani, hogy pl. a mail.error hibákat egy
+ megadott állományba naplózza; például Solaris rendszeren a
+
+ mail.debug /var/log/syslog
+
+ sor azt jelenti, hogy az üzenetek a /var/log/syslog állományba
+ kerülnek. (A rendszerhez tartozó syslog.conf állomány mondja meg
+ (ha van), hogy az üzenetek hova kerüljenek. A syslog man-jában
+ errõl bõvebb információ található.)
+
+ Ha a rendszerünk így van beállítva és a mailman/listinfo lap meg-
+ tekintésénél UID vagy GID hibával találkozunk, akkor a /var/log/syslog
+ állományban találhatjuk meg a kívánt és a mûködéshez szükséges
+ UID/GID értékeket.
+
+K. Miért 'fagynak' le a weboldalak?
+
+V. Az ok, hogy a CERN típusú webszerverek a Python folyamatokat futási
+ állapotban hagyhatják, ezzel lefagyaszthatják a CGI-ket. A
+ probléma kiküszöbölhetõ Apache használatával.
+
+ Elõfordulhat, hogy lejárt zárolások vannak jelen. A Mailman az adat-
+ bázisának biztonsága érdekében szigorúan veszi a zárolást, de
+ néha rendszerhibák következtében lejárt zárolások maradhatnak.
+ A $prefix/locks könyvtárban találhatóak a zároló állományok.
+ (Könnyen megállapítható. hogy lejárt-e valamelyik zárolás, ha a ps
+ paranccsal megnézzük, hogy az állományban található folyamatazonosítóhoz
+ (PID) tartozik-e futó folyamat. Amennyibben nem tartozik, akkor az az
+ állomány nyugodtan törölhetõ.)
+
+K. Mit kell idõnként megnéznem?
+
+V. A szkriptek többsége a ~mailman/logs/error állományba jegyzi be
+ hibaüzeneteit, így alkalmanként ebben kell keresnünk hibára utaló
+ üzenetet.
+
+ Az állományban *nem* találhatóak meg a szintaktikai hibára vonatkozó
+ üzenetek, mivel ezek az installálás során, a .py állományok
+ fordításánál azonnal megjelennek. Szintaktikai hibák elõfordulhatnak
+ a forrás nem megfelelõ módosításakor, vagy 'nem modul' típusú szkriptek
+ használatakor.
+
+ A `compile' vagy `compileall' Python modulokkal bármikor le lehet
+ bájtonként fordítani egy állományt, vagy egyszerûen a Python
+ értelmezõ segítségével azt betölteni és tesztelni.
+
+K. Miért nem mûködik az archívum?
+
+V. A listára érkezett már levél? Ez egy ismert hiba; az archívum addig
+ nem mûködik amíg legalább egy levél nem érkezett a listára.
+
+K. Rendben, az archívum mûködne, de mégsem tudom a nyilvános archívumot
+ elérni. Miért?
+
+V. Apache esetén gyõzõdjünk meg, hogy a FollowSymlinks a nyilvános
+ archívum útvonalára is meg van-e adva. Fontos tudni, hogy az archívum
+ mindig a privát könyvtárban található; nyilvános archívumnál
+ mindössze egy hivatkozás mutat a privát archívumra. Bõvebb
+ információ olvasható a következõ címen:
+
+ http://mail.python.org/pipermail/mailman-users/1998-November/000150.html
+
+K. Még mindig nem megy? QMail-t használ?
+
+V. Gyõzõdjünk meg róla, hogy a "mailman" wrapper program meghívásánál a
+ "preline" meg van adva:
+
+ |preline /home/mailman/mail/mailman post listname
+
+ A "preline" használatával egy Unix-típusú "From " fejléc jön létre a
+ levelekben, amelyek az archiváláshoz szükségesek. Az archívum mbox
+ állományában lévõ minden üzenetbe a következõ sort beszúrva
+
+ From somebody Mon Oct 9 12:27:34 MDT 2000
+
+ megoldódik a probléma. Futtassuk újra a "bin/arch listaneve" parancsot.
+ Az archívumnak most már létre kell jönnie. További információt a
+ README.QMAIL állományban lehet olvasni.
+
+K. Még mindig nem megy? GNU/Linux-ot használ?
+
+V. Olvassuk el a README.LINUX állományt.
+
+K. Az archívumból szeretnék pár levelet törölni. Hogyan tehetem ezt
+ meg?
+
+V. David Rocher megoldása:
+
+ * töröljük a $prefix/archives/private/<listaneve> könyvtárat
+ * szerkesztõvel módosítsuk a következõ állományt:
+ $prefix/archives/private/<listanave>.mbox/<listaneve>.mbox
+ * futtassuk a $prefix/bin/arch <listaneve> parancsot
+
+K. Igenre állítottam a "member_posting_only" (csak_tagok_küldhetnek)
+ beállítást, hogy csak a listatagok küldhessenek levelet a listára,
+ azonban úgy néz ki, hogy a listatagoktól érkezõ összes levél
+ engedélyezésre vár a megjelenéshez. Miért?
+
+V. Egyes rendszereken a levél feladója (pl. a Unix "From " sor) hibás
+ lehet. Ekkor a Mailman a feladót nem tudja listatagként azonosítani.
+ 1.0b12-es verzióig a Mailman alapesetben elõbb a levél feladóját
+ és nem a From: mezõben található feladót keresi meg, mivel az
+ elõbbit az SMTP program tölti ki, míg utóbbinak a felhasználó bármit
+ megadhat.
+
+ [ A levél feladójának megváltoztatásából adódó hibák gyakran elõ-
+ fordulnak, de a sendmail "owner-alias" szolgáltatásról illik itt
+ pár szót ejteni:
+
+ Ha egy levél érkezik a "foo" listára, és az "owner-foo" alias
+ is meg van adva, akkor a levél feladója egyszerûen "owner-foo"-
+ ként lesz azonosítva.
+
+ A Mailman 1.0rc2 verziójától fogva már megfelelõen kezeli ezt a
+ (nem változtatható) sendmail-es problémát. Régebbi verziók
+ esetében megoldást jelenthet az, ha az ajánlott "owner-LISTNAME"
+ sort kihagyjuk minden egyes Mailman listánál az alias állományból.
+
+ Azonban ilyen probléma esetén biztosabb megoldást jelent, ha a
+ From: fejlécet használjuk a levél feladójaként beállított helyett.
+ Ehhez az mm_cfg.py állományba kell a következõ sort elhelyezni:
+
+ USE_ENVELOPE_SENDER=0
+
+ Ha még (vitathatóbb) biztonságra akarunk törekedni akkor az
+ mm_cfg.py állományba a következõt írjuk be:
+
+ USE_ENVELOPE_SENDER=1
+
+ Azonban olvassuk el a Defaults.py-ben található leírást a
+ változóról. Alapesetben a 2.0-s Mailman a From: fejlécet használja
+ fel címazonosításhoz.
+
+K. Mennyire biztonságos a Mailman web azonosítási módszere?
+
+V. Ha a Mailmant SSL-re képes web kiszolgálóra telepítettük (pl.
+ a Mailman weblapokat "https://..." címeken érjük el), akkor annyira
+ biztonságos az azonosítás, amennyire az SSL kapcsolat.
+
+ Azonban a legtöbb Mailman telepítés hagyományos, titkosítás nélküli
+ kiszolgálókra történik. Ezzel legtöbbnyire nincs is gond, azonban
+ egy felkészült cracker azonosítás nélkül is képes *lehet* adatokhoz
+ hozzáférni a következõ módokon:
+
+ * Kapcsolat lehallgatással: A nem nyilvános Mailman lapokon használt
+ azonosításnál a jelszavak sima szöveges formátumban kerülnek
+ elküldésre. Ha ezt el akarjuk kerülni, akkor használjunk SSL-re
+ képes kiszolgálót.
+
+ * Érvényes süti ellopással: Sikeres bejelentkezés után a Mailman
+ egy sütit küld vissza a felhasználóhoz. A süti a további védett
+ oldalakon segít az azonosításban. A Mailman "kapcsolatig érvényes
+ sütiket" (session cookies) használ, amelyek a böngészõ bezárásával,
+ vagy kilépés gombra kattintva lejárnak.
+
+ A felhasználó sütijének megszerzésével (pl. a felhasználó
+ böngészõjének sütiket tartalmazó adatbázisának olvasásával, vagy
+ a kapcsolat lehallgatásával, vagy akár olyan hibás böngészõ
+ használatával, amely a felhasználó összes sütijét nyilvánossá teszi)
+ és a többi szükséges feltétel egyidejû teljesülésénél jogosulatlan
+ hozzáféréshez lehet jutni.
+
+ Fontos tudnunk, hogy ez a módszer könnyebben felhasználható, ha
+ a felhasználó proxi mögött helyezkedik el, mivel ekkor a süti
+ minden az adott proxin átmenõ kapcsolatra érvényes lesz, nem csak
+ arra melyet a felhasználó kezdeményezett.
+
+ * Hozzáférés a felhasználó termináljához: Ez is egy süti lopó
+ módszer. Azonban ezt a sütik rövid élettartama nehezíti meg.
+ Fogjuk fel annak, hogy a kényelemért meg kell elégednünk a
+ csökkentett biztonságért, különben minden pillanatban gépelhetjük
+ be a jelszavunkat.
+
+K. A listámról biztonsági másolatot (backup) akarok készíteni. Miket
+ kell lementenem?
+
+A. A válasz a FAQ wizard-ban a következõ címen található:
+ http://www.python.org/cgi-bin/faqw-mm.py?req=show&file=faq04.006.htp
+
+K. Hogyan tudom a listát átnevezni?
+
+V. A listák átnevezése jelenleg még elég bonyolult mûvelet, fõleg ha
+ azt szeretnénk, hogy a régi hivatkozások is éljenek. A jövõben ezen
+ majd változtatni fogunk. :(
+
+ A legnagyobb problémát az okozhatja, hogy a lista átnevezése közbeni
+ levélforgalmat hogyan lehet biztonságosan szüneteltetni. Teljesen
+ biztonságos módszer nincsen, de a következõkben leírtak betartásával
+ a hibalehetõséget nagy mértékben lehet csökkenteni:
+
+
+ - Átmenetileg állítsuk le a qrunnert. Ehhez a mailman crontab
+ bejegyzését kell módosítani. Adjuk ki a következõ parancsot és
+ tegyünk minden sor elé megjegyzés jelet ('#'). Mentsük el a
+ változásokat és lépjünk ki a szerkesztõbõl.
+
+ % crontab -u mailman -e
+
+ - Állítsuk le a levelezõszervert. A legtöbb esetben ez nem fog gondot
+ okozni, mivel a távoli MTAk addig próbálkoznak a levél kézbesítésével,
+ amíg a rendszer át nem veszi, s mi nem sok ideig fogjuk a rendszert
+ feltartani.
+
+ - Állítsuk le a webszervert is, ha lehetséges. Ez természetesen azt
+ jelenti, hogy nem lesz elérhetõ semelyik weboldalunk sem, ezt lehet
+ hogy mégsem szeretnénk. Következõ hasznos dolog lesz majd egy állandó
+ átirányítás alkalmazása a régi listáról. Ez azt jelenti, hogyha
+ bárki a régi lista oldalára látogat el, akkor az átirányítás az új
+ listára teszi át. Amíg a lista átnevezésével nem végeztünk addig ez
+ az átirányítás sem fog mûködni.
+
+ Tegyük fel, hogy az "elavult" listát kell átnevezzük "hasznos" listává.
+ Ekkor a következõ Apache parancsokat kell használnunk:
+
+ RedirectMatch permanent /mailman/(.*)/elavult(.*) http://www.dom.ain/mailman/$1/hasznos$2
+ RedirectMatch permanent /pipermail/elavult(.*) http://www.dom.ain/pipermail/hasznos$1
+
+ Ezeket a sorokat a httpd.conf állományba kell elhelyezni, majd
+ indítsuk újra az Apache-ot.
+
+ - Ezek után lépjünk be a telepített Mailman könyvtárába. Esetünkben
+ legyen ez a /usr/local/mailman könyvtár:
+
+ % cd /usr/local/mailman
+
+ menjünk a 'lists' könyvtárba:
+
+ % cd lists
+
+ Itt találunk egy 'elavult' könyvtárat. Nevezzük át 'hasznos'-sá:
+
+ % mv elavult hasznos
+
+ - Most menjünk a privát archívum könyvtárába:
+
+ % cd ../archives/private
+
+ Az elavult.mbox könyvtárát és a benne található állományokat kell
+ átneveznünk. Most még ne törõdjünk a nyilvános archívum idemutató
+ hivatkozásaival, késõbb azokról is gondoskodunk:
+
+ % mv elavult.mbox hasznos.mbox
+ % mv hasznos.mbox/elavult.mbox hasznos.mbox/hasznos.mbox
+
+ - Most már futtathatjuk a 'bin/move_list' programot az archívum elérési
+ útjainak frissítéséhez. FONTOS: ha Mailman 2.1-et használunk, akkor
+ hagyjuk ki ezt a lépést!
+
+ % cd ../..
+ % bin/move_list hasznos
+
+ - Hozzuk újra létre a nyilvános archívumot:
+
+ % bin/arch hasznos
+
+ - Ezek után néhány lista beállítást is meg kell változtatni, hogyha
+ szeretnénk a régi listára küldött leveleket az új listán látni. Menjünk
+ az új lista adminisztrációs oldalára:
+
+ o Általános beállítások rész
+
+ o A "real_name" résznél adjuk meg a lista új nevét, pl. "Hasznos"
+
+ o Adjuk meg a levél tárgysorába beszúrandó részt (prefix),
+ pl. "[Hasznos] " (igen, fontos a szóköz a végén).
+
+ o Ha szükséges változtassuk meg más beállításokat is, mint például
+ a lista rövid leírása, üdvözlõ szövege, stb.
+
+ o Mentsük el a változtatásokat.
+
+ o Privát beállítások rész
+
+ o Adjuk az acceptable_aliases részhez a régi lista címét.
+ Pl. "elavult@dom.ain" Ezzel (ha a késõbb leírt /etc/aliases
+ módosítást is elvégezzük) a régi listára küldött levelek nem
+ fognak szerkesztõi jóváhagyásra várni "a címzett nem egyértelmû"
+ hibával.
+
+ o Mentsük el a változtatásokat.
+
+ - Nos, most frissítsük az /etc/aliases állományunkat, hogy fogadja az
+ új lista leveleit és átküldje a régi címre küldött leveleket. A
+ következõkben tárgyaltak Sendmail típusú alias állományoknál mûködik,
+ eltérõ MTA esetén lehet, hogy módosítani kell rajtuk.
+
+ o Keressük meg a régi listához tartozó alias sorokat.
+
+ o Jelöljük ki és másoljuk át közvetlenül a régi alá ezeket a sorokat.
+
+ o Az átmásolt részben minden "elavult" részt írjuk át "hasznos"-sá.
+
+ o Most változtassuk meg a régi listához tartozó címeket, hogy azok
+ az új lista megfelelõ címeire mutassanak. Ha mindezt jól csináltuk,
+ akkor a következõhöz hasonlót kell kapnunk:
+
+ # A régi listát átirányítottuk az új címére
+ elavult: hasznos@dom.ain
+ elavult-request: hasznos-request@dom.ain
+ elavult-admin: hasznos-admin@dom.ain
+ elavult-owner: hasznos-owner@dom.ain
+
+ hasznos: "|/usr/local/mailman/mail/mailman post hasznos"
+ hasznos-admin: "|/usr/local/mailman/mail/mailman mailowner hasznos"
+ hasznos-request: "|/usr/local/mailman/mail/mailman mailcmd hasznos"
+ hasznos-owner: hasznos-admin
+
+ o Futassuk a 'newaliases' programot.
+
+ - Mielõtt mindent újraindítanánk nézzük meg, hogy van-e a qfiles/
+ könyvtárban a régi listára küldött, de még nem továbbított levél.
+ Ezt a következõképen tehetjük meg:
+
+ % cd /usr/local/mailman/qfiles
+ % grep elavult *.msg
+
+ Ha nincs találat, akkor ugorhatunk a következõ lépésre, egy gonddal
+ kevesebb.
+
+ Ha van találat, akkor izzadni fogunk egy kicsit. Figyelmeztetlek,
+ hogy a következõ lépések nem lettek megfelelõen tesztelve. :(
+
+ A régi listára küldött minden egyes .msg állománynál a hozzátartozó
+ .db állományt kell módosítani. Sajnos ez nem egy könnyû menet.
+ No lássuk...
+
+ Mentsük el a következõ Python kód részletet 'hackdb.py' névvel:
+
+ -------------------------hackdb.py
+ import sys
+ import marshal
+ fp = open(sys.argv[1])
+ d = marshal.load(fp)
+ fp.close()
+ d['listname'] = sys.argv[2]
+ fp = open(sys.argv[1], 'w')
+ marshal.dump(d, fp)
+ fp.close()
+ -------------------------
+
+ Adjuk ki azokon az állományokon a következõ parancsot, amelyekre
+ a grep találatot jelzett.
+
+ % python hackdb.py nagyonhosszuhexafilenev1.db hasznos
+
+ - Ezek után indítsuk el az MTA-t.
+
+ - Tegyük újra üzembe a qrunner-t.
+
+ % crontab -u mailman -e
+
+ Vegyük ki a megjegyzés jeleket azon sorok elõl, ahova mi tettük
+ azokat. Mentsük el a változtatásokat és lépjünk ki a szerkesztõbõl.
+
+ - Dõljünk hátra és örüljünk, mert sikerült az átnevezés. Ha 100.000 $-al
+ támogatod a Mailman fejlesztõgárdáját, akkor ígérjük, hogy hamarosan
+ sokkal könnyebb lesz a listák átnevezése. :)
+
+
+Local Variables:
+mode: text
+indent-tabs-mode: nil
+End:
diff --git a/messages/hu/INSTALL.hu b/messages/hu/INSTALL.hu
new file mode 100644
index 00000000..faf16184
--- /dev/null
+++ b/messages/hu/INSTALL.hu
@@ -0,0 +1,597 @@
+Mailman - The GNU Mailing List Management System
+Copyright (C) 1998,1999,2000,2001,2002 Free Software Foundation, Inc.
+59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+Ebben az állományban a GNU Mailman telepítéséhez találunk útmutatót,
+amely a GNU szabványos autoconf programjával történik. Legelõször a
+rendszeren kell bizonyos beállításokat (ezekrõl alább lehet olvasni)
+elvégezni, s csak ezek után kell a Mailman programot konfigurálni és
+telepíteni.
+
+FONTOS: A crontab beállításra fordítsunk különös figyelmet, ahogy az
+a lentebb le van írva, különben a Mailman nem fog megfelelõen mûködni.
+
+FRISSÍTÉS: A frissítés legtöbbször nem jelent mást, mint a régi
+verzióra egy új verzió másolását. Azonban frissítés elõtt ajánljuk el-
+olvasásra az UPGRADING állományban található fontos információkat.
+
+
+0. Telepítési igények
+
+ Rendelkeznünk kell egy levelezõszerverrel (MTA), ahová a leveleket
+ lehet küldeni, és egy webszerverrel, amely támogatja a CGI/1.1 API-t.
+ Webszervernek az Apache megfelelõ választás, míg MTA-nak a Postfix,
+ az Exim, a Sendmail és qmail közül bármelyik megfelel.
+
+ Ezenfelül egy ANSI C fordítóval is rendelkeznünk kell, amelynek
+ segítségével lehet a biztonsági követelményeknek megfelelõ wrapper
+ programokat elõállítani. GNU C fordítója, a gcc 2.8.1 vagy ennél
+ frissebb megfelel a célnak. A gcc beszerzésérõl bõvebben a
+ következõ oldalon olvashatunk:
+
+ http://www.gnu.org
+
+ A Python feldolgozó nyelvnek is telepítve kell lennie a rendszeren.
+ A megfelelõ mûködéshez jelenleg a Python 2.1.3-as vagy 2.2.1-es
+ verziója ajánlott. Bõvebb információt a Python forráskódjának, vagy
+ RPM csomagjának és lefordított bináris változatának beszerzésérõl a
+ következõ oldalon olvashatunk:
+
+ http://www.python.org
+
+ Ha a Python-t forráskódjából szeretnénk telepíteni, akkor az Unix-
+ típusú operációs rendszereknél elegendõ a hagyományos parancsokat,
+ "./configure; make install" kiadni. A "make test" futtatásánál jó
+ pár tesztelési lépést át lesz ugorva -- de ne aggódjunk, ezekre a
+ funkciókra valószínûleg nem is lesz szükségünk. A Mailman csak azokat
+ az alapvetõ funkciókat használja, amelyek minden gépen megtalálhatóak.
+
+ Ha találunk a levelezõszerverünkhöz (MTA) README.<MTA-nk> állományt,
+ akkor olvassuk el azt. A Mailman egyes MTA-kkal képes fejlettebb
+ együttmûködésre (pl. listák automatikus létrehozása, megszüntetése
+ webfelületrõl). Ilyen levelezõszerver az Exim vagy a Postfix. A
+ levelezõszerverhez szükséges beállításokról a megfelelõ README
+ állományokban lehet olvasni.
+
+
+1. A rendszer beállítása
+
+ A következõ lépésekhez root jogokkal kell rendelkeznünk.
+
+ A Mailman program telepítése elõtt a rendszerhez kell adni a
+ megfelelõ felhasználót és csoportot.
+
+ - Hozzunk létre egy új felhasználót `mailman' névvel. Ez legtöbbször
+ az /etc/passwd állományba kerül bejegyzésre. Ha a `mailman'
+ felhasználónév már foglalt, akkor bármilyen más egyedi nevet
+ választhatunk, ekkor olvassuk el a --with-username kapcsolónál
+ található megjegyzést.
+
+ - Hozzunk létre egy `mailman' nevû csoportot. Ez legtöbbször az
+ /etc/group állományba kerül bejegyzésre. A Mailman állományai a
+ `mailman' csoport tulajdonában kerülnek telepítésnél, set-group-id
+ bit jogokkal. Ezzel mind a webes, mind a levelezõprogramok együtt
+ tudnak mûködni. Ha a `mailman' csoportnév már foglalt, akkor
+ bármilyen más egyedi nevet megadhatunk. Ekkor olvassuk el alább
+ a --with-groupname kapcsolónál található megjegyzést.
+
+ - Hozzunk létre egy könyvtárat, ahová a programot telepíteni fogjuk
+ (ezt a továbbiakban $prefix-nek nevezzük). A Mailman összes
+ állománya a $prefix-ben megadott könyvtárba fog kerülni.
+ A "configure --help" paranccsal a különbözõ telepítési
+ kapcsolókról lehet többet megtudni.
+
+ A Mailman 2.1 alapértelmezett telepítési könyvtára az
+ /usr/local/mailman. Mailman 2.1alpha2-nél régebbi verzióknál ez
+ a /home/mailman könyvtár volt. Az alapértelmezett beállítást
+ a configure parancs --prefix kapcsolójával lehet megváltoztatni.
+ Ha Mailman 2.1-nél régebbi verziót szeretnénk frissíteni, akkor
+ külön meg kell adnunk a --prefix kapcsolót, hacsak nem akarjuk a
+ listákat magunktól áthelyezni (ez elõnyõs lehet, ha saját magunk
+ szeretnénk a frissítést elvégezni).
+
+ Néhány rendszeren az /usr/local könyvtárat tartalmazó partíción
+ tiltva van a SUID programok futtatása. A Mailman rendes mûködéséhez
+ 'set-gid'-es programokat használ, ezért az ilyet nem támogató
+ partíciókra nem célszerû telepíteni a programot.
+ Ha a rendszer ilyen partícióval rendelkezik, akkor a Mailman-t
+ olyan könyvtárba kell telepíteni, ahol engedélyezett a setgid
+ programok futása.
+
+ Gyõzõdjünk meg arról hogy a telepítés könyvtára a `mailman'
+ (vagy a --with-groupname-nél megadott) csoport tulajdonában
+ van és rendelkezik a setgid bit-tel (BSD rendszergazdák olvassák
+ el a README.BSD állományt bõvebb információért). A könyvtárat
+ ezenfelül mindenki számára elérhetõvé és futtathatóvá kell
+ tenni. Ezt pl. a következõ parancsokkal lehet biztosítani:
+
+ % cd $prefix
+ % chgrp mailman .
+ % chmod a+rx,g+ws .
+
+ Ezek után lehet a Mailman-t telepítésre felkészíteni, majd
+ telepíteni.
+
+
+2. configure futtatása
+
+ A --with-mail-gid ÉS --with-cgi-gid KAPCSOLÓKRA VALÓSZÍNÛLEG
+ SZÜKSÉGÜNK LESZ EZÉRT OLVASSUK EL A HOZZÁJUK TARTOZÓ LEÍRÁST!
+
+ A következõkben leírt parancsokhoz nem kell root jogokkal
+ rendelkeznünk. A saját bejelentkezési nevünk alatt, vagy azon névvel,
+ amellyel általában telepítjük a programokat is végrehajthatjuk a
+ következõ parancsokat. Nem szükséges mailman felhasználóként sem
+ a lépéseket követni, de akár mailman-ként is dolgozhatunk. Azonban
+ gyõzõdjünk meg róla, hogy az alkalmazott felhasználóinév tagja-e a
+ mailman csoportnak, mivel az elõzõ lépésben létrehozott könyvtárhoz
+ írási joggal rendelkezik a mailman csoport.
+
+ Fontos, hogy a telepítés könyvtárához legyen írási jogunk, valamint
+ setgid beállítási lehetõség (NFS és más köteteket be lehet
+ állítani úgy, hogy ne vegyék figyelembe a setgid beállításokat).
+
+ Ha már telepítettünk más GNU programot, akkor a configure szkript
+ ismerõs lehet. Általában a program forráskönyvtárában kell
+ lépni és a configure parancsot kiadni kapcsolók nélkül:
+
+ % cd mailman-<verzió>
+ % ./configure
+ % make install
+
+ A következõ kapcsolókkal lehet a Mailman telepítést befolyásolni.
+
+ --prefix=<dir>
+ Hagyományos GNU configure kapcsoló, amellyel megadható
+ a könyvtár neve, ahova a Mailmant telepítjük. Alapesetben
+ a $prefix értéke /usr/local/mailman. A könyvtárnak léteznie
+ kell és a fenn leírtaknak megfelelõen beállítva kell
+ lennie.
+
+ --exec-prefix=<dir>
+ Hagyományos GNU configure kapcsoló, amellyel a rendszerre
+ jellemzõ lefordított (bináris) állományok telepítési
+ helyét lehet megadni.
+
+ --with-var-prefix=<dir>
+ Változó állományok a <dir> könyvtárba kerüljenek és ne
+ a prefix-ben vagy exec_prefix-ben megadottba.
+
+ --with-python=</path/to/python>
+ Egyéni Python parancsfeldolgozó elérési útjának megadása
+ a wrapper programok számára. Alapesetben a burok $PATH
+ környezeti változójában legelõször megtalált parancsfel-
+ dolgozó ez. Jó tudni, hogy a szkriptek parancssorbóli
+ futtatásakor mindig a $PATH alapján legelõször megtalált
+ Pyton parancsértelmezõ kerül felhasználásra.
+
+ --with-username=<felhasználónév-vagy-uid>
+ Megadja, hogy milyen a `mailman'-tól eltérõ felhasználónév
+ legyen az alapértelmezett. Csak akkor használjuk, ha a
+ `mailman' felhasználónevet már más valaki használja (pl.
+ Mark Ailman bejelenetkezõ neve). Név helyett annak
+ azonosító számát (user id) is meg lehet adni. Fontos,
+ hogy a $prefix-ben megadott könyvtár az itt megnevezett
+ felhasználó tulajdonában legyen.
+
+ --with-groupname=<csoportnév-vagy-gid>
+ Megadja, hogy milyen a `mailman'-tól eltérõ csoportnév
+ legyen az alapértelmezett. Csak akkor használjuk, ha a
+ `mailman' csoportnév már foglalt. Név helyett annak
+ azonosító számát (group id) is meg lehet adni. Fontos,
+ hogy a $prefix-ben megadott könyvtár az itt megnevezett
+ csoport tulajdonában legyen.
+
+ --with-mail-gid=<csoport-vagy-csoportok>
+ Egyéni csoportot lehet megadni a szkriptek futtatásához
+ a mail wrappernél. <csoport-vagy-csoportok>-nak több
+ csoportazonosító számot vagy csoport nevet is meg lehet
+ adni. A felsoroltak közül a legelsõ, amelyik létezõ
+ csoportot ad meg kerül felhasználásra. Alapesetben a lista
+ értéke `mailman other mail daemon'.
+
+ Ez beállítás rendszerenként változik, így minden
+ rendszeren ellenõrizni kell, mivel a csoport azonosítója
+ biztonsági okok miatt rögzítve lesz a wrappper programban.
+ Sendmail-t használó rendszereken a sendmail.cf állomány
+ "DefaultUser" sora tartalmazza a kívánt azonosítót.
+ (Ha nincs megadva, csak megjegyzésként feltüntetve
+ /commented out/, akkor is valószínû a jó értéket mutatja...)
+
+ Az itt megadandó értékhez olvassuk el a saját MTA-nk
+ dokumentációját vagy konfigurációs állományát.
+
+ --with-cgi-gid=<csoport-vagy-csoportok>
+ Egyéni csoportot lehet megadni a szkriptek futtatásához
+ a CGI wrappernél. <csoport-vagy-csoportok>-nak több
+ csoportazonosító számot vagy csoport nevet is meg lehet
+ adni. A felsoroltak közül a legelsõ, amelyik létezõ
+ csoportot ad meg kerül felhasználásra. Alapesetben a lista
+ értéke `www www-data nobody'.
+
+ A megfelelõ érték web kiszolgálókként eltérõ lehet. Ezért
+ minden rendszeren ellenõrizni kell az értékét, mert a csoport
+ azonosítója biztonsági okok miatt rögzítve lesz a CGI
+ wrapper programban. Rossz érték esetén egyetlen Mailman
+ CGI szkript sem fog futni.
+
+ Apache használók a httpd.conf állomány `Group' részénél
+ találják meg a megfelelõ értéket.
+
+ --with-cgi-ext=<kiterjesztés>
+ A cgi-bin programok kiterjesztését lehet vele megadni.
+ A CGI programok a $PREFIX/cgi-bin könyvtárba kerülnek
+ a megadott kiterjesztéssel ellátva (néhány web
+ kiszolgálónál kötelezõ kiterjesztést is megadni).
+ A <kiterjesztés>-ben a pontot is meg kell adni.
+
+ --with-gcc=no
+ A fordításhoz ne gcc-t használjon, még ha az meg is található
+ a rendszeren. Ilyenkor a $PATH-ból elérhetõnek kell lennie
+ a `cc' fordítóprogramnak.
+
+
+3. Telepítés utáni ellenõrzés
+
+ A telepítés után ellenõrizni kell a jogokat és tulajdonosokat,
+ ehhez használjuk a check_perms programot:
+
+ - cd $prefix
+
+ - bin/check_perms
+
+ Ne próbáljuk meg a forrás könyvtárból a bin/check_perms programot
+ futtatni; az csak a telepített könyvtárban (lásd $prefix) fog
+ megfelelõen mûködni.
+
+ Ha a program hiba nélkül fut le, akkor nagy valószínûséggel jól
+ van beállítva a telepített Mailman :) Ha hibaüzenetet ír ki, akkor
+ a hibát lehet lépésrõl lépésre, újratelepítéssel, vagy a check_perms
+ program segítségével (ez a legjobb megoldás) kijavítani:
+
+ - Be kell lépni azon felhasználóként, akivel a telepítés történt
+ (és aki tulajdonosa a $prefix-ben található állományoknak), vagy
+ rootként; és a következõket kell végrehajtani:
+
+ - bin/check_perms -f parancs kiadása
+
+ - Majd ismételgessük az elõzõ lépéseket, amíg a hiba meg nem szûnik!
+
+
+4. Végsõ beállítások
+
+ Gratulálunk! Sikeresen telepítettük a Mailman programot. A mûködéséhez
+ már csak a web részt és levelezõrészt kell a Mailman-nel egybehangolni.
+
+ - Ha a levelezõrendszert és web kiszolgálót eltérõ gépeken szeretnénk
+ futtatni, a Mailman programot NFS-en megosztani, akkor fontos,
+ hogy a gépek rendszerórája egymással szinkronban legyen. A
+ Mailman/LockFile.py állományban a CLOCK_SLOP konstans állítgatásá-
+ val a különbözõ rendszerek közötti idõeltérést lehet ellensúlyozni.
+
+ - Állítsuk be a web kiszolgálót, hogy a $prefix/cgi-bin könyvtárban
+ található CGI-ket futtassa. Ezt valószínû root-ként kell megtenni.
+
+ A következõkhöz hasonló sort kell majd megadni (a $prefix helyére
+ a tényleges könyvtár nevet kell megadni teljes elérési úttal):
+
+ Exec /mailman/* $prefix/cgi-bin/*
+ vagy:
+ ScriptAlias /mailman/ $prefix/cgi-bin/
+
+ Részletekért olvassuk el a web kiszolgálónk dokumentációját.
+
+ - Fontos meggyõzõdnünk arról, hogy az a felhasználói azonosító,
+ amellyel a CGI fut *nem* tagja-e a `mailman' csoportnak, különben
+ a privát archívumot nem lehet majd elérni.
+
+ - A Mailman, Python és GNU logókat másoljuk a web kiszolgáló által
+ is elérhetõ könyvtárba. Pl. Apache-nál van egy `icons' könyvtár,
+ ahova érdemes a megosztott képeket másolni. A képeket a következõ
+ paranccsal tudjuk a megfelelõ könyvtárba másolni:
+
+ % cp $prefix/icons/*.{jpg,png} /apache/eleresi/utvonala/icons
+
+ Ezek után a $prefix/Mailman/mm_cfg.py állományban lehet megadni
+ a logók elérést. Valahogy így:
+
+ IMAGE_LOGOS = '/images/'
+
+ Az IMAGE_LOGOS alapértelmezett értéke '/icons/'. Bõvebben a
+ Defaults.py-ben lehet róla olvasni.
+
+ - A levelezõlisták nyilvános Pipermail archívumához a web
+ kiszolgálónak a következõt kell megadni:
+
+ Apache-nál például:
+
+ Alias /pipermail/ $varprefix/archives/public/
+
+ ahol $varprefix többnyire a $prefix, ha a configure-nak nem
+ lett külön megadva a --with-var-prefix kapcsoló.
+
+ Részletekért olvassuk el a web kiszolgálónk dokumentációját.
+ A kiszolgálót be kell állítani a szimbolikus kötések követésére
+ is különben a Pipermail archívumot nem lehet elérni. Apache
+ felhasználóknak a FollowSymLinks opciót kell megadniuk.
+
+ Ha a levelezõlistáink nyilvános archívumait különbözõ nemzeti
+ nyelveken is helyesen szeretnénk megjeleníteni, akkor fontos, hogy
+ kapcsoljuk ki a webszerverünk alapértelmezett karakterkódolását.
+ Apache esetén ehhez az "AddDefaultCharset off" sort kell elhelyezni
+ a konfigurációs állományában.
+
+ Ezek után indítsuk újra a web kiszolgálót.
+
+ - A crontab beállítása. A Mailman mûködéséhez számos folyamatot
+ kell a cron-nak futtatnia. Régebbi verziójú Mailman frissítésekor
+ ne felejtsük el az új crontab beállításokat elvégezni. Ha
+ egyidejûleg több Mailman-t szeretnénk a rendszerünkön futtatni,
+ akkor ügyeljünk a crontab helyes beállítására, mivel a hibás
+ crontab beállítások a párhuzamosan mûködõ Mailman-eknél hibához
+ vezethet.
+
+ Ha a crontab támogatja az -u kapcsolót, akkor a következõ lépéseket
+ root-ként hajtsuk végre. A $prefix/cron/crontab.in felvételéhez
+ a crontab-ba a következõ parancsokat kell végrehajtani:
+
+ % cd $prefix/cron
+ % crontab -u mailman crontab.in
+
+ Ha használtuk a --with-username kapcsolót, akkor a mailman
+ helyett az ott megadott értéket használjuk az -u kapcsolónál.
+ Ha crontab nem támogatja az -u kapcsolót, akkor használjuk a
+ következõ parancsokat:
+
+ % cd $prefix/cron
+ % su - mailman
+ % crontab crontab.in
+
+ - A Mailman qrunner démon futtatásához a következõ parancsot kell
+ kiadni a $prefix könyvtárban:
+
+ % bin/mailmanctl start
+
+ Ha azt szeretnénk, hogy minden rendszerindításkor elinduljon a
+ program, és az operációs rendszerünk támogatja a chkconfig
+ parancsot (pl. RedHat és Mandrake Linux), akkor rootként elég
+ a következõ parancsokat kiadni:
+
+ % cp scripts/mailman /etc/init.d/mailman
+ % chkconfig --add mailman
+
+ (Néhány rendszernél az /etc/init.d helyett /etc/rc.d/init.d -t
+ kell használni.)
+
+ Debian-t használók a chkconfig helyett a
+
+ % update-rc.d mailman defaults
+
+ parancsot használják.
+
+ Azon Unix rendszereknél, amelyek nem támogatják a chkconfig
+ programot másoljuk át a scripts/mailman állományt az init
+ könyvtárba:
+
+ % cp misc/mailman /etc/init.d
+
+ és hozzuk létre a szimbolikus kötéseket rootként a következõ
+ parancsokkal:
+
+ % cd /etc/rc.d/rc0.d
+ % ln -s ../init.d/mailman K12mailman
+ % cd ../rc1.d
+ % ln -s ../init.d/mailman K12mailman
+ % cd ../rc2.d
+ % ln -s ../init.d/mailman S98mailman
+ % cd ../rc3.d
+ % ln -s ../init.d/mailman S98mailman
+ % cd ../rc4.d
+ % ln -s ../init.d/mailman S98mailman
+ % cd ../rc5.d
+ % ln -s ../init.d/mailman S98mailman
+ % cd ../rc6.d
+ % ln -s ../init.d/mailman K12mailman
+
+ - Ellenõrizzük, hogy a Defaults.py állományban a DEFAULT_EMAIL_HOST
+ és DEFAULT_URL_HOST változók helyes értéket mutatnak. Ha nem,
+ akkor a helyes értékkel ezeket a változókat az mm_cfg.py állományba
+ helyezzük el. Megjegyezzük, hogyha ezen két változó valamelyikét
+ modósítjuk, akkor lehet hogy szükséges az mm_cfg.py állományba ezen
+ változók után még megadni a következõ parancsot is:
+
+ add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)
+
+ - Hozzuk létre a "központi" levelezõlistát. A jelszó emlékeztetõk
+ ennek a listának a címérõl fognak érkezni. A lista neve általában
+ "mailman", de igény szerint változtatható a MAILMAN_SITE_LIST
+ változó segítségével, amelyet az mm_cfg.py (lásd késõbb) állományban
+ kell megadni.
+
+ % bin/newlist mailman
+
+ Kövessük az utasításokat és bõvebb információkért olvassuk el a
+ README.hu állományt.
+
+ - Ezek után iratkozzunk fel erre a mailman levelezõlistára.
+
+
+5. Mailman finomhangolása
+
+ A következõ beállításokat a 2. fejezetben tárgyalt felhasználóként
+ hajtsuk végre.
+
+ - A $prefix/Mailman/Defaults.py számos beállítást tartalmaz. Ha
+ ezek valamelyikét meg akarjuk változtatni, akkor azt a
+ $prefix/Mailman/mm_cfg.py állományban kell megadni és SOHA SEM
+ a Defaults.py állományban. A Defaults.py-ben minden beállításról
+ bõvebb információ található. Egyes beállítások megváltoztatásának
+ nincs hatása már létrehozott listáknál, ha szeretnénk a már létezõ
+ listákra is alkalmazni a módosított beállításokat, akkor újra létre
+ kell hozni az adott listát. A listákat az adminisztrációs oldalon
+ keresztül, vagy parancssorban a bin/withlist vagy bin/config_list
+ parancs segítségével lehet beállítani.
+
+ A telepítés nem írja felül a létezõ mm_cfg.py állományt, így
+ abban nyugodtan el lehet helyezni a szükséges személyes beállításokat.
+
+ Fontos: Soha *ne* változtassuk meg a HOME_DIR vagy MAILMAN_DIR
+ változók értékét. Ezeket automatikusan a telepítõ állítja be.
+
+ Magyar nyelv ékezetes betûinek helyes megjelenítéséhez az alábbi
+ sorokat helyezzük el az mm_cfg.py állományban:
+
+ DEFAULT_CHARSET='iso-8859-2'
+ VERBATIM_ENCODING=['iso-8859-2']
+
+ - Ha azt szeretnénk, hogy a rendszer alapértelmezett nyelve a
+ magyar legyen, akkor adjuk az mm_cfg.py-hez a következõ sort:
+
+ DEFAULT_SERVER_LANGUAGE='hu'
+
+ - Rendszerszintû jelszó létrehozása a következõ paranccsal történik:
+
+ % $prefix/bin/mmsitepass <rendszerszintû-jelszó>
+
+ Ezt a jelszót meg lehet adni, mind felhasználó-, mind admin-
+ szintû beállítások megváltoztatásánál. A rendszer adminisztrátor
+ így képes a listák beállításának módosítására is.
+
+ Itt lehet megadni a rendszerhez használatos "lista létrehozó"
+ jelszót is (ezzel lehet majd a rendszerszintû jelszó mellett
+ listákat létrehozni és törölni web-felületrõl). A jelszó
+ beállításához a "mmsitepass"-t a -c kapcsolóval kell futtatni.
+
+
+6. Munka megkezdése
+
+ Lásd a README.hu állomány "ELSÕ SAJÁT LEVELEZÕLISTA LÉTREHOZÁSA"
+ szakaszát egy próba levelezõlista létrehozásához.
+
+
+7. Problémák
+
+ Ha hibát észlelünk a Mailman mûködése során, akkor elõször olvassuk
+ el a "Gyakori hibák" részt. Ha ott nem találunk megoldást, akkor
+ nézzük meg a FAQ.hu állományt és az Interneten az online FAQ Wizard-ot.
+ Ezek után ellenõrizzük a $prefix/logs/error állományban a Mailman
+ bejegyzéseket.
+
+ A naplóállományok helye rendszerenként változik. Lehet az a
+ /var/log/maillog, vagy a /var/log/syslog. Számos gépen a napló-
+ állományok az /adm/log/ könyvtárban és nem a /var/log könyvtárban
+ találhatóak.
+
+ Hiba esetén küldjük el a hiba leírását a mailman-users@python.org
+ címre. Mondjuk el, hogy mit csináltunk a hiba elõtt és hogy mit
+ tartalmaznak ezzel kapcsolatban a naplóállományok. Ezen túl adjuk
+ meg a gépünk paramétereit és a használt Python, Mailman verziószámát.
+
+8. Gyakori hibák
+
+ Hiba: Az összes Mailman oldalra a "404 File not found" üzenetet kapom.
+
+ Megoldás: Nincs megfelelõen beállítva a web kiszolgálója a Mailman
+ CGI parancsok futtatására. Gyõzõdjünk meg a következõkrõl:
+
+ 1) A web kiszolgáló be van állítva a $prefix/cgi-bin
+ futtatására
+ 2) A web kiszolgáló megfelelõen lett újraindítva.
+
+ Olvassuk el a web kiszolgálónk dokumentációját ezen
+ módosítások végrehajtásáról.
+
+
+ Hiba: Az összes Mailman oldal "Internal Server Error" jelez.
+
+ Megoldás: A legvalószínûbb, hogy a CGI szkripteknek rossz GID vagy
+ UID lett megadva. Nézzük meg a naplóállományokat. Ha a
+ következõ sorhoz hasonlót találunk benne:
+
+ Attempt to exec script with invalid gid 51, expected 99
+
+ akkor újra kell telepíteni a Mailmant és a $CGI-GID-nek 51-et
+ adjunk meg a telepítés részben ismertetettek szerint.
+
+
+ Hiba: A listára küldött levelem visszajön azzal az üzenettel, hogy
+ a lista nem található!
+
+ Megoldás: Valószínûleg nem lettek a szükséges bejegyzések a rendszer
+ alias adatbázisához adva a newlist parancs futtatása után. Ha
+ mégis hozzá lettek adva, akkor valószínû nem lett frissítve az
+ adatbázis, vagy nem lett futtatva a newaliases parancs. Ekkor
+ az 5. fejezetben tárgyaltak szerint járjunk el.
+
+
+ Hiba: A listára küldött levelem visszajön a következõ üzenettel:
+ "unknown mailer error".
+
+ Megoldás: A legvalószínûbb, hogy nem megfelelõ GID vagy UID lett megadva
+ a levelezõrésznek. Nézzük meg a naplóállományokat. Ha a
+ következõhöz hasonlót találunk benne:
+
+ Attempt to exec script with invalid gid 51, expected 99
+
+ akkor újra kell telepíteni a Mailmant és a $MAIL_GID-nek 51-et
+ adjunk meg, ahogy az a telepítési részben le van írva. Postfix
+ felhasználók olvassák el a következõ hibát is, amely náluk
+ fordul elõ leggyakrabban.
+
+
+ Hiba: MTA-nak Postfixet használok és a mail wrapper programok hibás
+ GID-et említenek a naplóállományokban.
+
+ Megoldás: A Postfix main.cf állományában az "alias_maps" változóknál
+ hozzunk létre egy új alias állomány bejegyzést. Ezt az új
+ állományt a Mailman könyvtárába, vagy olyan helyre ahol a
+ Mailman-nak írási joga is van helyezzük el;
+ *mailman felhasználóként* futtassuk a Postfix "postalias"
+ parancsát ezen az állományon.
+
+ % postalias <alias_fájl_neve>
+
+ Még mindig mailman felhasználóként adjuk ki a következõt:
+
+ % python -c'import os; print os.getgid()'
+
+ Ezzel megkapjuk azt a csoport azonosító számot, amelyet meg
+ kell adnunk a Mailman telepítésekor a mail wrapper programok
+ számára. Legyen ez mondjuk "joGID". Konfiguráljuk újra a
+ Mailman-t a következõ paranccsal:
+
+ % ./configure --with-mail-gid=joGID
+
+ Olvassuk el a README.POSTFIX.hu állományt a Postfix és
+ Mailman összekapcsolásához.
+
+
+ Hiba: A listára küldött levelem visszajön a következõ üzenettel:
+ "sh: mailman not available for sendmail programs"
+
+ Megoldás: A rendszer sendmail korlátozott shell-t használ (smrsh). Be
+ kell állítani az smrsh-t úgy, hogy egy szimbolikus hivatkozást
+ hozunk létre a mail wrapper-rõl (%prefix/mail/mailman) abba
+ a könyvtárba, amelyben az engedélyezett smrsh-k futhatnak.
+
+ Ezt a könyvtárat általában a /var/admin/sm.bin,
+ /usr/admin/sm.bin vagy /etc/smrsh helyen találhatjuk.
+
+ Debian Linux alatt a megadott /usr/lib/sm.bin könyvtár
+ nem mûködik, ezért hozzuk létre az /usr/admin/sm.bin
+ könyvtárat és ide hozzuk létre a szimbolikus hivatkozásokat.
+
+
+ Hiba: Összezavarodtam a configure futtatásánál. Hogyan tudom
+ törölni a felesleges fájlokat újratelepítéshez?
+
+ Megoldás: % make clean
+ % ./configure --with-jó-kapcsolók
+ % make install
+
+
+
+Local Variables:
+mode: indented-text
+indent-tabs-mode: nil
+End:
diff --git a/messages/hu/LC_MESSAGES/mailman.mo b/messages/hu/LC_MESSAGES/mailman.mo
new file mode 100644
index 00000000..087fdf6a
--- /dev/null
+++ b/messages/hu/LC_MESSAGES/mailman.mo
Binary files differ
diff --git a/messages/hu/LC_MESSAGES/mailman.po b/messages/hu/LC_MESSAGES/mailman.po
new file mode 100644
index 00000000..5a72453e
--- /dev/null
+++ b/messages/hu/LC_MESSAGES/mailman.po
@@ -0,0 +1,11063 @@
+# Hungarian Catalog for Mailman
+# Copyright (C) 2001-2002
+# Szilard Vizi <vizisz@freemail.hu>, 2001-2002
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Mailman\n"
+"POT-Creation-Date: Tue Dec 24 13:41:28 2002\n"
+"PO-Revision-Date: 2002-12-12 15:24+0100\n"
+"Last-Translator: Szilard Vizi <vizisz@freemail.hu>\n"
+"Language-Team: Hungarian <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-2\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: Mailman/Archiver/HyperArch.py:112
+msgid "size not available"
+msgstr "ismeretlen méret"
+
+#: Mailman/Archiver/HyperArch.py:118
+msgid " %(size)i bytes "
+msgstr " %(size)i byte "
+
+#: Mailman/Archiver/HyperArch.py:249 Mailman/Archiver/HyperArch.py:405
+#: Mailman/Archiver/HyperArch.py:963 Mailman/Archiver/HyperArch.py:1127
+msgid " at "
+msgstr " at "
+
+#: Mailman/Archiver/HyperArch.py:434
+msgid "Previous message:"
+msgstr "Elõzõ üzenet:"
+
+#: Mailman/Archiver/HyperArch.py:456
+msgid "Next message:"
+msgstr "Következõ üzenet:"
+
+#: Mailman/Archiver/HyperArch.py:609 Mailman/Archiver/HyperArch.py:645
+msgid "thread"
+msgstr "téma"
+
+#: Mailman/Archiver/HyperArch.py:610 Mailman/Archiver/HyperArch.py:646
+msgid "subject"
+msgstr "tárgy"
+
+#: Mailman/Archiver/HyperArch.py:611 Mailman/Archiver/HyperArch.py:647
+msgid "author"
+msgstr "szerzõ"
+
+#: Mailman/Archiver/HyperArch.py:612 Mailman/Archiver/HyperArch.py:648
+msgid "date"
+msgstr "dátum"
+
+#: Mailman/Archiver/HyperArch.py:684
+msgid "<P>Currently, there are no archives. </P>"
+msgstr "<P>Még nincs archívum. </P>"
+
+#: Mailman/Archiver/HyperArch.py:721
+msgid "Gzip'd Text%(sz)s"
+msgstr "Tömörített Szöveg%(sz)s"
+
+#: Mailman/Archiver/HyperArch.py:726
+msgid "Text%(sz)s"
+msgstr "Szöveg%(sz)s"
+
+#: Mailman/Archiver/HyperArch.py:816
+msgid "figuring article archives\n"
+msgstr "levelek archívumának elõkészítése\n"
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "April"
+msgstr "Április"
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "February"
+msgstr "Február"
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "January"
+msgstr "Január"
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "March"
+msgstr "Március"
+
+#: Mailman/Archiver/HyperArch.py:827
+msgid "August"
+msgstr "Augusztus"
+
+#: Mailman/Archiver/HyperArch.py:827
+msgid "July"
+msgstr "Július"
+
+#: Mailman/Archiver/HyperArch.py:827
+msgid "June"
+msgstr "Június"
+
+#: Mailman/Archiver/HyperArch.py:827 Mailman/i18n.py:91
+msgid "May"
+msgstr "Május"
+
+#: Mailman/Archiver/HyperArch.py:828
+msgid "December"
+msgstr "December"
+
+#: Mailman/Archiver/HyperArch.py:828
+msgid "November"
+msgstr "November"
+
+#: Mailman/Archiver/HyperArch.py:828
+msgid "October"
+msgstr "Október"
+
+#: Mailman/Archiver/HyperArch.py:828
+msgid "September"
+msgstr "Szeptember"
+
+#: Mailman/Archiver/HyperArch.py:836
+msgid "First"
+msgstr "elsõ"
+
+#: Mailman/Archiver/HyperArch.py:836
+msgid "Fourth"
+msgstr "negyedik"
+
+#: Mailman/Archiver/HyperArch.py:836
+msgid "Second"
+msgstr "második"
+
+#: Mailman/Archiver/HyperArch.py:836
+msgid "Third"
+msgstr "harmadik"
+
+#: Mailman/Archiver/HyperArch.py:838
+msgid "%(ord)s quarter %(year)i"
+msgstr "%(year)i %(ord)s negyedéve"
+
+#: Mailman/Archiver/HyperArch.py:845
+msgid "%(month)s %(year)i"
+msgstr "%(year)i %(month)s"
+
+#: Mailman/Archiver/HyperArch.py:850
+msgid "The Week Of Monday %(day)i %(month)s %(year)i"
+msgstr "%(year)i %(month)s %(day)i hétfõi nappal kezdõdõ hét"
+
+#: Mailman/Archiver/HyperArch.py:854
+msgid "%(day)i %(month)s %(year)i"
+msgstr "%(year)i %(month)s %(day)i"
+
+#: Mailman/Archiver/HyperArch.py:951
+msgid "Computing threaded index\n"
+msgstr "Téma index készítése\n"
+
+#: Mailman/Archiver/HyperArch.py:1206
+msgid "Updating HTML for article %(seq)s"
+msgstr "%(seq)s üzenet HTML-oldalának frissítése"
+
+#: Mailman/Archiver/HyperArch.py:1213
+msgid "article file %(filename)s is missing!"
+msgstr "%(filename)s üzenet állománya hiányzik!"
+
+#: Mailman/Archiver/pipermail.py:168 Mailman/Archiver/pipermail.py:169
+msgid "No subject"
+msgstr "Nincs tárgy megadva"
+
+#: Mailman/Archiver/pipermail.py:269
+msgid "Creating archive directory "
+msgstr "Archívum könyvtárának létrehozása"
+
+#: Mailman/Archiver/pipermail.py:281
+msgid "Reloading pickled archive state"
+msgstr "Archívum állapota újra betöltve"
+
+#: Mailman/Archiver/pipermail.py:308
+msgid "Pickling archive state into "
+msgstr "Az archívum állapotának mentése "
+
+#: Mailman/Archiver/pipermail.py:419
+msgid "Updating index files for archive [%(archive)s]"
+msgstr "[%(archive)s] archívum index állományainak frissítése"
+
+#: Mailman/Archiver/pipermail.py:452
+msgid " Thread"
+msgstr " Téma"
+
+#: Mailman/Archiver/pipermail.py:557
+msgid "#%(counter)05d %(msgid)s"
+msgstr "#%(counter)05d %(msgid)s"
+
+#: Mailman/Bouncer.py:44
+msgid "due to excessive bounces"
+msgstr "visszapattanás miatt"
+
+#: Mailman/Bouncer.py:45
+msgid "by yourself"
+msgstr "általad"
+
+#: Mailman/Bouncer.py:46
+msgid "by the list administrator"
+msgstr "a lista adminisztrátor által"
+
+#: Mailman/Bouncer.py:47 Mailman/Bouncer.py:232
+#: Mailman/Commands/cmd_set.py:182
+msgid "for unknown reasons"
+msgstr "ismeretlen indok miatt"
+
+#: Mailman/Bouncer.py:179
+msgid "disabled"
+msgstr "kikapcsolva"
+
+#: Mailman/Bouncer.py:184
+msgid "Bounce action notification"
+msgstr "Értesítés a visszapattanási beavatkozásról"
+
+#: Mailman/Bouncer.py:239
+msgid " The last bounce received from you was dated %(date)s"
+msgstr " Az utolsó visszapattanásod ideje: %(date)s"
+
+#: Mailman/Bouncer.py:264 Mailman/Deliverer.py:126
+#: Mailman/Handlers/Acknowledge.py:44 Mailman/Handlers/CookHeaders.py:236
+#: Mailman/Handlers/Hold.py:214 Mailman/Handlers/Hold.py:249
+#: Mailman/Handlers/ToDigest.py:211 Mailman/ListAdmin.py:235
+msgid "(no subject)"
+msgstr "(nincs tárgy)"
+
+#: Mailman/Bouncer.py:266
+msgid "[No bounce details are available]"
+msgstr "[Nem található visszapattanási megjegyzés]"
+
+#: Mailman/Cgi/Auth.py:46
+msgid "Moderator"
+msgstr "Szerkesztõ"
+
+#: Mailman/Cgi/Auth.py:48
+msgid "Administrator"
+msgstr "Adminisztrátor"
+
+#: Mailman/Cgi/admin.py:70 Mailman/Cgi/admindb.py:89 Mailman/Cgi/confirm.py:55
+#: Mailman/Cgi/edithtml.py:67 Mailman/Cgi/listinfo.py:51
+#: Mailman/Cgi/options.py:71 Mailman/Cgi/private.py:98
+#: Mailman/Cgi/rmlist.py:64 Mailman/Cgi/roster.py:57
+#: Mailman/Cgi/subscribe.py:61
+msgid "No such list <em>%(safelistname)s</em>"
+msgstr "Nincs <em>%(safelistname)s</em> nevû lista"
+
+#: Mailman/Cgi/admin.py:85 Mailman/Cgi/admindb.py:105
+#: Mailman/Cgi/edithtml.py:85 Mailman/Cgi/private.py:123
+msgid "Authorization failed."
+msgstr "Sikertelen azonosítás"
+
+#: Mailman/Cgi/admin.py:175
+msgid ""
+"You have turned off delivery of both digest and\n"
+" non-digest messages. This is an incompatible state of\n"
+" affairs. You must turn on either digest delivery or\n"
+" non-digest delivery or your mailing list will basically be\n"
+" unusable."
+msgstr ""
+"Mind a digest és nem-digest\n"
+"\t küldési módot kikapcsoltad. A lista így nem fog az elvárásoknak\n"
+"\t megfelelõen mûködni, ezért valamelyik küldési módot engedélyezned\n"
+"\t kell."
+
+#: Mailman/Cgi/admin.py:179 Mailman/Cgi/admin.py:185 Mailman/Cgi/admin.py:190
+#: Mailman/Cgi/admin.py:1361 Mailman/Gui/GUIBase.py:184
+msgid "Warning: "
+msgstr "Figyelmeztetés: "
+
+#: Mailman/Cgi/admin.py:183
+msgid ""
+"You have digest members, but digests are turned\n"
+" off. Those people will not receive mail."
+msgstr ""
+"Digest tagok vannak a listán,\n"
+"\t de a digest küldés ki lett kapcsolva. Ezek a tagok nem fognak\n"
+"\t levelet kapni."
+
+#: Mailman/Cgi/admin.py:188
+msgid ""
+"You have regular list members but non-digestified mail is\n"
+" turned off. They will receive mail until you fix this\n"
+" problem."
+msgstr ""
+"Rendes listatagok vannak\n"
+"\t jelen a listán, de nincs engedélyezve a nem-digest levelek\n"
+"\t küldése. A leveleket változatlan formában kapják addig, amíg\n"
+"\t a problémát el nem hárítod."
+
+#: Mailman/Cgi/admin.py:212
+msgid "%(hostname)s mailing lists - Admin Links"
+msgstr "%(hostname)s levelezõlisták - Adminisztrációs oldalak"
+
+#: Mailman/Cgi/admin.py:241 Mailman/Cgi/listinfo.py:97
+msgid "Welcome!"
+msgstr "Üdvözlet!"
+
+#: Mailman/Cgi/admin.py:244 Mailman/Cgi/listinfo.py:100
+msgid "Mailman"
+msgstr "Mailman"
+
+#: Mailman/Cgi/admin.py:248
+msgid ""
+"<p>There currently are no publicly-advertised %(mailmanlink)s\n"
+" mailing lists on %(hostname)s."
+msgstr ""
+"<p> Nem futnak nyilvános %(mailmanlink)s levelezõlisták a(z) %(hostname)s "
+"\t gépen."
+
+#: Mailman/Cgi/admin.py:254
+msgid ""
+"<p>Below is the collection of publicly-advertised\n"
+" %(mailmanlink)s mailing lists on %(hostname)s. Click on a list\n"
+" name to visit the configuration pages for that list."
+msgstr ""
+"<p>Alább a nyilvános %(mailmanlink)s levelezõlisták\n"
+"\t sora látható a(z) %(hostname)s gépen. Kattints a lista nevére a\n"
+"\t konfigurációs oldalának megtekintéséhez."
+
+#: Mailman/Cgi/admin.py:261
+msgid "right "
+msgstr "megfelelõ "
+
+#: Mailman/Cgi/admin.py:263
+msgid ""
+"To visit the administrators configuration page for an\n"
+" unadvertised list, open a URL similar to this one, but with a '/' "
+"and\n"
+" the %(extra)slist name appended. If you have the proper authority,\n"
+" you can also <a href=\"%(creatorurl)s\">create a new mailing list</"
+"a>.\n"
+"\n"
+" <p>General list information can be found at "
+msgstr ""
+" Rejtett listák adminisztrációs oldalának megtekintéséhez\n"
+"\ta fentihez hasonló címet kell megadni. A címet egy '/' jellel és a %(extra)"
+"slistanévvel egészítsd ki. Ha rendelkezel a megfelelõ jogosultsággal\n"
+"\t, akkor <a href=\"%(creatorurl)s\">új listát</a> is létrehozhatsz.\n"
+"\n"
+"<p>A levelezõlistákról részletes leírás található a "
+
+#: Mailman/Cgi/admin.py:270
+msgid "the mailing list overview page"
+msgstr "levelezõlisták információs oldalán"
+
+#: Mailman/Cgi/admin.py:272
+msgid "<p>(Send questions and comments to "
+msgstr "<p>(Kérdéseidet, észrevételeidet címezd ide "
+
+#: Mailman/Cgi/admin.py:282 Mailman/Cgi/listinfo.py:132 cron/mailpasswds:179
+msgid "List"
+msgstr "Lista"
+
+#: Mailman/Cgi/admin.py:283 Mailman/Cgi/admin.py:549
+#: Mailman/Cgi/listinfo.py:133
+msgid "Description"
+msgstr "Leírás"
+
+#: Mailman/Cgi/admin.py:289 Mailman/Cgi/listinfo.py:139 bin/list_lists:116
+msgid "[no description available]"
+msgstr "[nem található leírás]"
+
+#: Mailman/Cgi/admin.py:322
+msgid "No valid variable name found."
+msgstr "Nem található megadott névvel változó."
+
+#: Mailman/Cgi/admin.py:332
+msgid ""
+"%(realname)s Mailing list Configuration Help\n"
+" <br><em>%(varname)s</em> Option"
+msgstr "%(realname)s Levelezõlista beállítások súgó<br><em>%(varname)s</em>"
+
+#: Mailman/Cgi/admin.py:339
+msgid "Mailman %(varname)s List Option Help"
+msgstr "Mailman %(varname)s lista beállítások súgó"
+
+#: Mailman/Cgi/admin.py:357
+msgid ""
+"<em><strong>Warning:</strong> changing this option here\n"
+" could cause other screens to be out-of-sync. Be sure to reload any "
+"other\n"
+" pages that are displaying this option for this mailing list. You can "
+"also\n"
+" "
+msgstr ""
+"<em><strong>Fontos:</strong> a beállítások itteni megváltoztatása\n"
+" a többi oldalon nem biztos, hogy megjelenik. Ezeket az oldalakat\n"
+" frissíteni kell.\n"
+" Vissza a(z) "
+
+#: Mailman/Cgi/admin.py:368
+msgid "return to the %(categoryname)s options page."
+msgstr "%(categoryname)s beállítások oldalra."
+
+#: Mailman/Cgi/admin.py:383
+msgid "%(realname)s Administration (%(label)s)"
+msgstr "%(realname)s lista adminisztrációja (%(label)s)"
+
+#: Mailman/Cgi/admin.py:384
+msgid "%(realname)s mailing list administration<br>%(label)s Section"
+msgstr "%(realname)s levelezõlista adminisztráció<br>%(label)s oldala"
+
+#: Mailman/Cgi/admin.py:400
+msgid "Configuration Categories"
+msgstr "Beállítási kategóriák"
+
+#: Mailman/Cgi/admin.py:401
+msgid "Other Administrative Activities"
+msgstr "Egyéb adminisztrációs teendõk"
+
+#: Mailman/Cgi/admin.py:405
+msgid "Tend to pending moderator requests"
+msgstr "Szerkesztõi teendõk listája"
+
+#: Mailman/Cgi/admin.py:407
+msgid "Go to the general list information page"
+msgstr "A lista általános információs lapjának megtekintése"
+
+#: Mailman/Cgi/admin.py:409
+msgid "Edit the public HTML pages"
+msgstr "A lista nyilvános HTML oldalainak szerkesztése"
+
+#: Mailman/Cgi/admin.py:411
+msgid "Go to list archives"
+msgstr "Lista archívuma"
+
+#: Mailman/Cgi/admin.py:417
+msgid "Delete this mailing list"
+msgstr "Levelezõlista törlése"
+
+#: Mailman/Cgi/admin.py:418
+msgid " (requires confirmation)<br>&nbsp;<br>"
+msgstr " (azonosítás szükséges)<br>&nbsp;<br>"
+
+#: Mailman/Cgi/admin.py:424
+msgid "Logout"
+msgstr "Kilépés"
+
+#: Mailman/Cgi/admin.py:468
+msgid "Emergency moderation of all list traffic is enabled"
+msgstr "Az összes listaforgalom korlátozása vészhelyzet miatt bekapcsolva"
+
+#: Mailman/Cgi/admin.py:479
+msgid ""
+"Make your changes in the following section, then submit them\n"
+" using the <em>Submit Your Changes</em> button below."
+msgstr ""
+"Változtatások után kattints a lap alján található\n"
+" <em>Változtatások mentése</em> gombra, azok elmentéséhez."
+
+#: Mailman/Cgi/admin.py:497
+msgid "Additional Member Tasks"
+msgstr "Egyéb listatag kezelési funkciók"
+
+#: Mailman/Cgi/admin.py:503
+msgid ""
+"<li>Set everyone's moderation bit, including\n"
+" those members not currently visible"
+msgstr ""
+"<li>Állítsd be mindenkinek a moderálási jelzõjét, még azon\n"
+"\ttagokét is, akik nincsenek jelenleg felsorolva."
+
+#: Mailman/Cgi/admin.py:507
+msgid "Off"
+msgstr "Ki"
+
+#: Mailman/Cgi/admin.py:507
+msgid "On"
+msgstr "Be"
+
+#: Mailman/Cgi/admin.py:509
+msgid "Set"
+msgstr "Beállít"
+
+#: Mailman/Cgi/admin.py:550
+msgid "Value"
+msgstr "Érték"
+
+#: Mailman/Cgi/admin.py:604
+msgid ""
+"Badly formed options entry:\n"
+" %(record)s"
+msgstr ""
+"Rosszul megadott beállítások:\n"
+" %(record)s"
+
+#: Mailman/Cgi/admin.py:662
+msgid "<em>Enter the text below, or...</em><br>"
+msgstr "<em>Add meg a szöveget lejjebb, vagy...</em><br>"
+
+#: Mailman/Cgi/admin.py:664
+msgid "<br><em>...specify a file to upload</em><br>"
+msgstr "<br><em>...a feltöltendõ állományt</em><br>"
+
+#: Mailman/Cgi/admin.py:690 Mailman/Cgi/admin.py:693
+msgid "Topic %(i)d"
+msgstr "Téma %(i)d"
+
+#: Mailman/Cgi/admin.py:694
+msgid "Delete"
+msgstr "Törlés"
+
+#: Mailman/Cgi/admin.py:695
+msgid "Topic name:"
+msgstr "Téma neve:"
+
+#: Mailman/Cgi/admin.py:697
+msgid "Regexp:"
+msgstr "Keresési feltétel:"
+
+#: Mailman/Cgi/admin.py:700 Mailman/Cgi/options.py:943
+msgid "Description:"
+msgstr "Leírás"
+
+#: Mailman/Cgi/admin.py:704
+msgid "Add new item..."
+msgstr "Új téma hozzáadása..."
+
+#: Mailman/Cgi/admin.py:706
+msgid "...before this one."
+msgstr "...ez elé."
+
+#: Mailman/Cgi/admin.py:707
+msgid "...after this one."
+msgstr "...ez után."
+
+#: Mailman/Cgi/admin.py:742
+msgid "<br>(Edit <b>%(varname)s</b>)"
+msgstr "<br>(<b>%(varname)s</b> módósítása)"
+
+#: Mailman/Cgi/admin.py:744
+msgid "<br>(Details for <b>%(varname)s</b>)"
+msgstr "<br>(Bõvebben a(z) <b>%(varname)s</b> témáról)"
+
+#: Mailman/Cgi/admin.py:751
+msgid ""
+"<br><em><strong>Note:</strong>\n"
+" setting this value performs an immediate action but does not modify\n"
+" permanent state.</em>"
+msgstr ""
+"<div ALIGN=\"right\"><br><em><strong>Megjegyzés:</strong>\n"
+" ezzel a beállítással a kívánt változtatás azonnal végrehajtódik, de "
+"az állandó\n"
+" beállítások nem változnak meg.</em></div>"
+
+#: Mailman/Cgi/admin.py:765
+msgid "Mass Subscriptions"
+msgstr "Több tag felvétele"
+
+#: Mailman/Cgi/admin.py:772
+msgid "Mass Removals"
+msgstr "Több tag törlése"
+
+#: Mailman/Cgi/admin.py:779
+msgid "Membership List"
+msgstr "Tagok Listája"
+
+#: Mailman/Cgi/admin.py:786
+msgid "(help)"
+msgstr "(súgó)"
+
+#: Mailman/Cgi/admin.py:787
+msgid "Find member %(link)s:"
+msgstr "Felhasználó keresése %(link)s:"
+
+#: Mailman/Cgi/admin.py:790
+msgid "Search..."
+msgstr "Keresés..."
+
+#: Mailman/Cgi/admin.py:805
+msgid "Bad regular expression: "
+msgstr "Hibás keresési kifejezés: "
+
+#: Mailman/Cgi/admin.py:861
+msgid "%(allcnt)s members total, %(membercnt)s shown"
+msgstr "Összesen %(allcnt)s tag, %(membercnt)s kiírva"
+
+#: Mailman/Cgi/admin.py:864
+msgid "%(allcnt)s members total"
+msgstr "Összesen %(allcnt)s tag"
+
+#: Mailman/Cgi/admin.py:887
+msgid "unsub"
+msgstr "töröl"
+
+#: Mailman/Cgi/admin.py:888
+msgid "member address<br>member name"
+msgstr "listatag címe<br>listatag neve"
+
+#: Mailman/Cgi/admin.py:889
+msgid "hide"
+msgstr "elrejt"
+
+#: Mailman/Cgi/admin.py:889
+msgid "mod"
+msgstr "moderált"
+
+#: Mailman/Cgi/admin.py:890
+msgid "nomail<br>[reason]"
+msgstr "nincs levél<br>[indok]"
+
+#: Mailman/Cgi/admin.py:891
+msgid "ack"
+msgstr "nyugta"
+
+#: Mailman/Cgi/admin.py:891
+msgid "not metoo"
+msgstr "saját nem"
+
+#: Mailman/Cgi/admin.py:892
+msgid "nodupes"
+msgstr "többször ne"
+
+#: Mailman/Cgi/admin.py:893
+msgid "digest"
+msgstr "digest"
+
+#: Mailman/Cgi/admin.py:893
+msgid "plain"
+msgstr "sima"
+
+#: Mailman/Cgi/admin.py:894
+msgid "language"
+msgstr "nyelv"
+
+#: Mailman/Cgi/admin.py:905
+msgid "?"
+msgstr "?"
+
+#: Mailman/Cgi/admin.py:906
+msgid "U"
+msgstr "U"
+
+#: Mailman/Cgi/admin.py:907
+msgid "A"
+msgstr "A"
+
+#: Mailman/Cgi/admin.py:908
+msgid "B"
+msgstr "B"
+
+#: Mailman/Cgi/admin.py:979
+msgid "<b>unsub</b> -- Click on this to unsubscribe the member."
+msgstr "<b>töröl</b> -- Beállításával törölni lehet a tagot a listáról."
+
+#: Mailman/Cgi/admin.py:981
+msgid ""
+"<b>mod</b> -- The user's personal moderation flag. If this is\n"
+" set, postings from them will be moderated, otherwise they will be\n"
+" approved."
+msgstr ""
+"<b>moderált</b> -- A tag egyéni moderálási jelzõje. Ha be van kapcsolva,\n"
+"\takkor a tag minden beküldött üzenetét jóvá kell hagynia a szerkesztõnek,\n"
+"\tkülönben azonnal megjelenhet a listán."
+
+#: Mailman/Cgi/admin.py:985
+msgid ""
+"<b>hide</b> -- Is the member's address concealed on\n"
+" the list of subscribers?"
+msgstr "<b>elrejt</b> -- A felhasználó címe a tagok listáján ne jelenjen meg?"
+
+#: Mailman/Cgi/admin.py:987
+msgid ""
+"<b>nomail</b> -- Is delivery to the member disabled? If so, an\n"
+" abbreviation will be given describing the reason for the disabled\n"
+" delivery:\n"
+" <ul><li><b>U</b> -- Delivery was disabled by the user via their\n"
+" personal options page.\n"
+" <li><b>A</b> -- Delivery was disabled by the list\n"
+" administrators.\n"
+" <li><b>B</b> -- Delivery was disabled by the system due to\n"
+" excessive bouncing from the member's address.\n"
+" <li><b>?</b> -- The reason for disabled delivery isn't "
+"known.\n"
+" This is the case for all memberships which were "
+"disabled\n"
+" in older versions of Mailman.\n"
+" </ul>"
+msgstr ""
+"<b>nincs levél</b> -- Ne legyenek elküldve a tagnak a levelek? A\n"
+"levélküldés kikapcsolásának indokát a következõ rövidítések jelölik:\n"
+"<ul><li><b>U</b> -- A felhasználó a saját beállítási oldalán keresztül\n"
+"\tkapcsolta ki a levelek küldését.\n"
+" <li><b>A</b> -- A lista adminisztrátora kapcsolta ki a levelek\n"
+"\tküldését.\n"
+" <li><b>B</b> -- A levelek küldését a rendszer kapcsolta ki a\n"
+"\tfelhasználó hibás e-mail címe miatt.\n"
+" <li><b>?</b> -- A levélküldés kikapcsolásának indoka nem ismert.\n"
+"\tEz azon eseteknél fordul elõ, ahol régebbi verziójú Mailman-ben\n"
+"\tlett kikapcsolva a levélküldés.\n"
+"</ul>"
+
+#: Mailman/Cgi/admin.py:1002
+msgid ""
+"<b>ack</b> -- Does the member get acknowledgements of their\n"
+" posts?"
+msgstr "<b>nyugta</b> -- A listatag üzenetei megérkezésérõl értesítést kap?"
+
+#: Mailman/Cgi/admin.py:1005
+msgid ""
+"<b>not metoo</b> -- Does the member want to avoid copies of their\n"
+" own postings?"
+msgstr "<b>saját nem</b> -- A tag ne kapja meg saját elküldött leveleit?"
+
+#: Mailman/Cgi/admin.py:1008
+msgid ""
+"<b>nodupes</b> -- Does the member want to avoid duplicates of the\n"
+" same message?"
+msgstr ""
+"<b>többször ne</b> -- Szeretné elkerülni a tag, hogy ugyanazon üzenetet\n"
+"\ttöbbször megkapja?"
+
+#: Mailman/Cgi/admin.py:1011
+msgid ""
+"<b>digest</b> -- Does the member get messages in digests?\n"
+" (otherwise, individual messages)"
+msgstr ""
+"<b>digest</b> -- A tag a leveleket digestként kapja? (különben, egyesével)"
+
+#: Mailman/Cgi/admin.py:1014
+msgid ""
+"<b>plain</b> -- If getting digests, does the member get plain\n"
+" text digests? (otherwise, MIME)"
+msgstr ""
+"<b>sima</b> -- Digest leveleknél a listatag milyen formában kapja a "
+"leveleket, sima? (különben, MIME)"
+
+#: Mailman/Cgi/admin.py:1016
+msgid "<b>language</b> -- Language preferred by the user"
+msgstr "<b>nyelv</b> -- Felhasználó által beállított nyelv"
+
+#: Mailman/Cgi/admin.py:1030
+msgid "Click here to hide the legend for this table."
+msgstr "A táblázathoz tartozó magyarázatok elrejtése."
+
+#: Mailman/Cgi/admin.py:1034
+msgid "Click here to include the legend for this table."
+msgstr "A táblázathoz tartozó magyarázatok megjelenítése."
+
+#: Mailman/Cgi/admin.py:1041
+msgid ""
+"<p><em>To view more members, click on the appropriate\n"
+" range listed below:</em>"
+msgstr "<p><em>Többi tag megtekintéséhez kattints a megfelelõ részre lent</em>"
+
+#: Mailman/Cgi/admin.py:1050
+msgid "from %(start)s to %(end)s"
+msgstr "%(start)s-tõl a %(end)s-ig"
+
+#: Mailman/Cgi/admin.py:1063
+msgid "Subscribe these users now or invite them?"
+msgstr ""
+"Felírjam õket, vagy meghívási értesítõt küldjek ezeknek a felhasználóknak?"
+
+#: Mailman/Cgi/admin.py:1065
+msgid "Invite"
+msgstr "Meghív"
+
+#: Mailman/Cgi/admin.py:1065 Mailman/Cgi/listinfo.py:175
+msgid "Subscribe"
+msgstr "Feliratkozás"
+
+#: Mailman/Cgi/admin.py:1071
+msgid "Send welcome messages to new subscribees?"
+msgstr "Elküldésre kerüljön az új listatagoknak az üdvözlõ szöveg?"
+
+#: Mailman/Cgi/admin.py:1073 Mailman/Cgi/admin.py:1082
+#: Mailman/Cgi/admin.py:1115 Mailman/Cgi/admin.py:1123
+#: Mailman/Cgi/confirm.py:271 Mailman/Cgi/create.py:327
+#: Mailman/Cgi/create.py:355 Mailman/Cgi/create.py:395
+#: Mailman/Cgi/rmlist.py:228 Mailman/Gui/Archive.py:33
+#: Mailman/Gui/Autoresponse.py:54 Mailman/Gui/Autoresponse.py:62
+#: Mailman/Gui/Autoresponse.py:71 Mailman/Gui/Bounce.py:77
+#: Mailman/Gui/Bounce.py:108 Mailman/Gui/Bounce.py:134
+#: Mailman/Gui/Bounce.py:143 Mailman/Gui/ContentFilter.py:70
+#: Mailman/Gui/ContentFilter.py:103 Mailman/Gui/Digest.py:46
+#: Mailman/Gui/Digest.py:62 Mailman/Gui/Digest.py:84 Mailman/Gui/Digest.py:89
+#: Mailman/Gui/General.py:148 Mailman/Gui/General.py:154
+#: Mailman/Gui/General.py:232 Mailman/Gui/General.py:259
+#: Mailman/Gui/General.py:286 Mailman/Gui/General.py:297
+#: Mailman/Gui/General.py:300 Mailman/Gui/General.py:310
+#: Mailman/Gui/General.py:315 Mailman/Gui/General.py:325
+#: Mailman/Gui/General.py:345 Mailman/Gui/General.py:373
+#: Mailman/Gui/General.py:396 Mailman/Gui/NonDigest.py:44
+#: Mailman/Gui/NonDigest.py:52 Mailman/Gui/Privacy.py:101
+#: Mailman/Gui/Privacy.py:107 Mailman/Gui/Privacy.py:140
+#: Mailman/Gui/Privacy.py:188 Mailman/Gui/Privacy.py:296
+#: Mailman/Gui/Privacy.py:309 Mailman/Gui/Usenet.py:50
+#: Mailman/Gui/Usenet.py:54 Mailman/Gui/Usenet.py:91 Mailman/Gui/Usenet.py:103
+msgid "No"
+msgstr "Nem"
+
+#: Mailman/Cgi/admin.py:1073 Mailman/Cgi/admin.py:1082
+#: Mailman/Cgi/admin.py:1115 Mailman/Cgi/admin.py:1123
+#: Mailman/Cgi/confirm.py:271 Mailman/Cgi/create.py:327
+#: Mailman/Cgi/create.py:355 Mailman/Cgi/create.py:395
+#: Mailman/Cgi/rmlist.py:228 Mailman/Gui/Archive.py:33
+#: Mailman/Gui/Autoresponse.py:54 Mailman/Gui/Autoresponse.py:62
+#: Mailman/Gui/Bounce.py:77 Mailman/Gui/Bounce.py:108
+#: Mailman/Gui/Bounce.py:134 Mailman/Gui/Bounce.py:143
+#: Mailman/Gui/ContentFilter.py:70 Mailman/Gui/ContentFilter.py:103
+#: Mailman/Gui/Digest.py:46 Mailman/Gui/Digest.py:62 Mailman/Gui/Digest.py:84
+#: Mailman/Gui/Digest.py:89 Mailman/Gui/General.py:148
+#: Mailman/Gui/General.py:154 Mailman/Gui/General.py:232
+#: Mailman/Gui/General.py:259 Mailman/Gui/General.py:286
+#: Mailman/Gui/General.py:297 Mailman/Gui/General.py:300
+#: Mailman/Gui/General.py:310 Mailman/Gui/General.py:315
+#: Mailman/Gui/General.py:325 Mailman/Gui/General.py:345
+#: Mailman/Gui/General.py:373 Mailman/Gui/General.py:396
+#: Mailman/Gui/NonDigest.py:44 Mailman/Gui/NonDigest.py:52
+#: Mailman/Gui/Privacy.py:101 Mailman/Gui/Privacy.py:107
+#: Mailman/Gui/Privacy.py:140 Mailman/Gui/Privacy.py:188
+#: Mailman/Gui/Privacy.py:296 Mailman/Gui/Privacy.py:309
+#: Mailman/Gui/Usenet.py:50 Mailman/Gui/Usenet.py:54 Mailman/Gui/Usenet.py:91
+#: Mailman/Gui/Usenet.py:103
+msgid "Yes"
+msgstr "Igen"
+
+#: Mailman/Cgi/admin.py:1080
+msgid "Send notifications of new subscriptions to the list owner?"
+msgstr ""
+"Az új feliratkozásokról az értesítéseket elküldjem a lista tulajdonosnak?"
+
+#: Mailman/Cgi/admin.py:1088 Mailman/Cgi/admin.py:1129
+msgid "Enter one address per line below..."
+msgstr "Soronként egy címet adj meg..."
+
+#: Mailman/Cgi/admin.py:1093 Mailman/Cgi/admin.py:1134
+msgid "...or specify a file to upload:"
+msgstr "...vagy a feltöltendõ állományt:"
+
+#: Mailman/Cgi/admin.py:1098
+msgid ""
+"Below, enter additional text to be added to the\n"
+" top of your invitation or the subscription notification. Include at "
+"least\n"
+" one blank line at the end..."
+msgstr ""
+"A lent megadott szöveg a feliratkozási értesítés és a listához való\n"
+"csatlakozási felhívás elején fog megjelenni. Az egyéni szöveg végén\n"
+"legyen legalább egy üres sor."
+
+#: Mailman/Cgi/admin.py:1113
+msgid "Send unsubscription acknowledgement to the user?"
+msgstr "Értesítve legyenek a felhasználók a listáról való törlésükrõl?"
+
+#: Mailman/Cgi/admin.py:1121
+msgid "Send notifications to the list owner?"
+msgstr "Az értesítéseket elküldjem a lista tulajdonosnak?"
+
+#: Mailman/Cgi/admin.py:1143
+msgid "Change list ownership passwords"
+msgstr "Lista tulajdonosi jelszavak módosítása "
+
+#: Mailman/Cgi/admin.py:1146
+msgid ""
+"The <em>list administrators</em> are the people who have ultimate control "
+"over\n"
+"all parameters of this mailing list. They are able to change any list\n"
+"configuration variable available through these administration web pages.\n"
+"\n"
+"<p>The <em>list moderators</em> have more limited permissions; they are not\n"
+"able to change any list configuration variable, but they are allowed to "
+"tend\n"
+"to pending administration requests, including approving or rejecting held\n"
+"subscription requests, and disposing of held postings. Of course, the\n"
+"<em>list administrators</em> can also tend to pending requests.\n"
+"\n"
+"<p>In order to split the list ownership duties into administrators and\n"
+"moderators, you must set a separate moderator password in the fields below,\n"
+"and also provide the email addresses of the list moderators in the\n"
+"<a href=\"%(adminurl)s/general\">general options section</a>."
+msgstr ""
+"A <em>lista adminisztrátoroknak</em> a lista felett korlátlan\n"
+"hatalmuk van. A lista bármely beállítását megváltoztathatják az\n"
+"adminisztrációs oldalakon keresztül.\n"
+"\n"
+"<p>Ezzel szemben a <em>lista moderátorok</em>, vagyis a szerkesztõk\n"
+"korlátozott jogokkal rendelkeznek; a lista beállításait nem változtathatják\n"
+"meg, de a beavatkozásra váró teendõket, mint például a fel-,\n"
+"leiratkozásokat, vagy a visszatartott leveleket kezelhetik. Természetesen\n"
+"mindezeket a <em>lista adminisztrátorok</em> is elvégezhetik.\n"
+"\n"
+"<p>A lista adminisztrálásának és a levelek kezelésének elkülönítéséhez itt "
+"alul\n"
+"meg lehet adni egy adminisztrátori és egy szerkesztõi jelszót. A szerkesztõk "
+"e-mail\n"
+"címeit pedig\n"
+"az <a href=\"%(adminurl)s/general\">általános beállítások oldalon</a> lehet "
+"megadni."
+
+#: Mailman/Cgi/admin.py:1165
+msgid "Enter new administrator password:"
+msgstr "Új adminisztrátori jelszó"
+
+#: Mailman/Cgi/admin.py:1167
+msgid "Confirm administrator password:"
+msgstr "Adminisztrátori jelszó még egyszer:"
+
+#: Mailman/Cgi/admin.py:1172
+msgid "Enter new moderator password:"
+msgstr "Új szerkesztõi jelszó:"
+
+#: Mailman/Cgi/admin.py:1174
+msgid "Confirm moderator password:"
+msgstr "Szerkesztõi jelszó még egyszer:"
+
+#: Mailman/Cgi/admin.py:1184
+msgid "Submit Your Changes"
+msgstr "Változtatások mentése"
+
+#: Mailman/Cgi/admin.py:1207
+msgid "Moderator passwords did not match"
+msgstr "A szerkesztõi jelszavak nem egyeznek."
+
+#: Mailman/Cgi/admin.py:1217
+msgid "Administrator passwords did not match"
+msgstr "Az adminisztrátori jelszavak nem egyeznek."
+
+#: Mailman/Cgi/admin.py:1265
+msgid "Already a member"
+msgstr "Már tag"
+
+#: Mailman/Cgi/admin.py:1268
+msgid "&lt;blank line&gt;"
+msgstr "&lt;üres sor&gt;"
+
+#: Mailman/Cgi/admin.py:1269 Mailman/Cgi/admin.py:1272
+msgid "Bad/Invalid email address"
+msgstr "Hibás/érvénytelen e-mail cím"
+
+#: Mailman/Cgi/admin.py:1275
+msgid "Hostile address (illegal characters)"
+msgstr "Tiltott cím (illegális karakterek)"
+
+#: Mailman/Cgi/admin.py:1281
+msgid "Successfully invited:"
+msgstr "Sikeres meghívás:"
+
+#: Mailman/Cgi/admin.py:1283
+msgid "Successfully subscribed:"
+msgstr "Sikeresen felírva:"
+
+#: Mailman/Cgi/admin.py:1288
+msgid "Error inviting:"
+msgstr "Hiba a meghíváskor:"
+
+#: Mailman/Cgi/admin.py:1290
+msgid "Error subscribing:"
+msgstr "Hiba a feliratkozáskor:"
+
+#: Mailman/Cgi/admin.py:1319
+msgid "Successfully Unsubscribed:"
+msgstr "Sikeresen törölve:"
+
+#: Mailman/Cgi/admin.py:1324
+msgid "Cannot unsubscribe non-members:"
+msgstr "Nem lehet törölni azokat, akik nem listatagok:"
+
+#: Mailman/Cgi/admin.py:1336
+msgid "Bad moderation flag value"
+msgstr "Hibásan megadott moderálási beállítás"
+
+#: Mailman/Cgi/admin.py:1357
+msgid "Not subscribed"
+msgstr "Nincs feliratkozva"
+
+#: Mailman/Cgi/admin.py:1360
+msgid "Ignoring changes to deleted member: %(user)s"
+msgstr "Módosítások kihagyása a törölt tagon: %(user)s"
+
+#: Mailman/Cgi/admin.py:1400
+msgid "Successfully Removed:"
+msgstr "Sikeresen törölve:"
+
+#: Mailman/Cgi/admin.py:1404
+msgid "Error Unsubscribing:"
+msgstr "Hiba a törlésnél:"
+
+#: Mailman/Cgi/admindb.py:159 Mailman/Cgi/admindb.py:167
+msgid "%(realname)s Administrative Database"
+msgstr "%(realname)s adminisztráció adatbázisa"
+
+#: Mailman/Cgi/admindb.py:162
+msgid "%(realname)s Administrative Database Results"
+msgstr "%(realname)s Adminisztrációs adatbázis kimenet"
+
+#: Mailman/Cgi/admindb.py:170
+msgid "There are no pending requests."
+msgstr "Nincsen beavatkozásra váró teendõ."
+
+#: Mailman/Cgi/admindb.py:173
+msgid "Click here to reload this page."
+msgstr "Kattints ide az oldal frissítéséhez."
+
+#: Mailman/Cgi/admindb.py:184
+msgid "Detailed instructions for the administrative database"
+msgstr "Adminisztrációs adatbázis mûveletek részletes ismertetése"
+
+#: Mailman/Cgi/admindb.py:188
+msgid "Administrative requests for mailing list:"
+msgstr "Adminisztrációs teendõk a következõ levelezõlistán:"
+
+#: Mailman/Cgi/admindb.py:191 Mailman/Cgi/admindb.py:234
+msgid "Submit All Data"
+msgstr "Összes változtatás mentése"
+
+#: Mailman/Cgi/admindb.py:204
+msgid "all of %(esender)s's held messages."
+msgstr "%(esender)s összes jóváhagyásra váró üzenete"
+
+#: Mailman/Cgi/admindb.py:209
+msgid "a single held message."
+msgstr "egyetlen jóváhagyásra váró üzenet"
+
+#: Mailman/Cgi/admindb.py:214
+msgid "all held messages."
+msgstr "az összes jóváhagyásra váró üzenet "
+
+#: Mailman/Cgi/admindb.py:249
+msgid "Mailman Administrative Database Error"
+msgstr "Hiba a Mailman adminisztrációs adatbázisában"
+
+#: Mailman/Cgi/admindb.py:254
+msgid "list of available mailing lists."
+msgstr "elérhetõ levelezõlisták sora."
+
+#: Mailman/Cgi/admindb.py:255
+msgid "You must specify a list name. Here is the %(link)s"
+msgstr "Meg kell adnod a lista nevét. Itt az %(link)s"
+
+#: Mailman/Cgi/admindb.py:268
+msgid "Subscription Requests"
+msgstr "Feliratkozási kérelmek"
+
+#: Mailman/Cgi/admindb.py:270
+msgid "Address/name"
+msgstr "Cím/név"
+
+#: Mailman/Cgi/admindb.py:271 Mailman/Cgi/admindb.py:320
+msgid "Your decision"
+msgstr "Döntésed"
+
+#: Mailman/Cgi/admindb.py:272 Mailman/Cgi/admindb.py:321
+msgid "Reason for refusal"
+msgstr "Visszautasítás indoka"
+
+#: Mailman/Cgi/admindb.py:289 Mailman/Cgi/admindb.py:346
+#: Mailman/Cgi/admindb.py:389 Mailman/Cgi/admindb.py:612
+msgid "Defer"
+msgstr "Elhalaszt"
+
+#: Mailman/Cgi/admindb.py:290 Mailman/Cgi/admindb.py:347
+#: Mailman/Cgi/admindb.py:612
+msgid "Approve"
+msgstr "Jóváhagy"
+
+#: Mailman/Cgi/admindb.py:291 Mailman/Cgi/admindb.py:348
+#: Mailman/Cgi/admindb.py:389 Mailman/Cgi/admindb.py:612
+#: Mailman/Gui/ContentFilter.py:37 Mailman/Gui/Privacy.py:207
+#: Mailman/Gui/Privacy.py:281
+msgid "Reject"
+msgstr "Visszautasít"
+
+#: Mailman/Cgi/admindb.py:292 Mailman/Cgi/admindb.py:349
+#: Mailman/Cgi/admindb.py:389 Mailman/Cgi/admindb.py:612
+#: Mailman/Gui/ContentFilter.py:37 Mailman/Gui/Privacy.py:207
+#: Mailman/Gui/Privacy.py:281
+msgid "Discard"
+msgstr "Elvet"
+
+#: Mailman/Cgi/admindb.py:300
+msgid "Permanently ban from this list"
+msgstr "Végleges eltiltás ettõl a listától."
+
+#: Mailman/Cgi/admindb.py:319
+msgid "User address/name"
+msgstr "Listatag címe/neve"
+
+#: Mailman/Cgi/admindb.py:359
+msgid "Unsubscription Requests"
+msgstr "Leiratkozási kérelmek"
+
+#: Mailman/Cgi/admindb.py:382 Mailman/Cgi/admindb.py:596
+msgid "From:"
+msgstr "Feladó:"
+
+#: Mailman/Cgi/admindb.py:385
+msgid "Action to take on all these held messages:"
+msgstr "Teendõ az összes felsorolt függõ üzenettel:"
+
+#: Mailman/Cgi/admindb.py:389 Mailman/Gui/Privacy.py:281
+msgid "Accept"
+msgstr "Jóváhagy"
+
+#: Mailman/Cgi/admindb.py:397
+msgid "Preserve messages for the site administrator"
+msgstr "Levél megõrzése az adminisztrátor számára"
+
+#: Mailman/Cgi/admindb.py:403
+msgid "Forward messages (individually) to:"
+msgstr "Üzenetek (egyenkénti) továbbküldése ide:"
+
+#: Mailman/Cgi/admindb.py:421
+msgid "Clear this member's <em>moderate</em> flag"
+msgstr "A tag <em>moderált</em> jelzõjének törlése."
+
+#: Mailman/Cgi/admindb.py:425
+msgid "<em>The sender is now a member of this list</em>"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:434
+msgid "Add <b>%(esender)s</b> to a sender filter"
+msgstr "<b>%(esender)s</b> beküldõ hozzáadása a feladók szûréséhez"
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Accepts"
+msgstr "Engedélyezett"
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Discards"
+msgstr "Elvetett"
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Holds"
+msgstr "Függõ"
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Rejects"
+msgstr "Visszautasított"
+
+#: Mailman/Cgi/admindb.py:448
+msgid ""
+"Ban <b>%(esender)s</b> from ever subscribing to this\n"
+" mailing list"
+msgstr ""
+"A listára való feliratkozástól <b>%(esender)s</b> véglegesen el van tiltva."
+
+#: Mailman/Cgi/admindb.py:453
+msgid ""
+"Click on the message number to view the individual\n"
+" message, or you can "
+msgstr "Az üzenet megtekintéséhez kattints a sorszámára, vagy "
+
+#: Mailman/Cgi/admindb.py:455
+msgid "view all messages from %(esender)s"
+msgstr "nézd meg %(esender)s összes levelét."
+
+#: Mailman/Cgi/admindb.py:475 Mailman/Cgi/admindb.py:599
+msgid "Subject:"
+msgstr "Tárgy:"
+
+#: Mailman/Cgi/admindb.py:478
+msgid " bytes"
+msgstr " byte"
+
+#: Mailman/Cgi/admindb.py:478
+msgid "Size:"
+msgstr "Méret:"
+
+#: Mailman/Cgi/admindb.py:482 Mailman/Handlers/Decorate.py:50
+#: Mailman/Handlers/Scrubber.py:226 Mailman/Handlers/Scrubber.py:227
+msgid "not available"
+msgstr "nem elérhetõ"
+
+#: Mailman/Cgi/admindb.py:483 Mailman/Cgi/admindb.py:601
+msgid "Reason:"
+msgstr "Indok:"
+
+#: Mailman/Cgi/admindb.py:487 Mailman/Cgi/admindb.py:605
+msgid "Received:"
+msgstr "Beküldve:"
+
+#: Mailman/Cgi/admindb.py:545
+msgid "Posting Held for Approval"
+msgstr "Jóváhagyásra váró levelek"
+
+#: Mailman/Cgi/admindb.py:547
+msgid " (%(count)d of %(total)d)"
+msgstr " (%(count)d / %(total)d)"
+
+#: Mailman/Cgi/admindb.py:558
+msgid "<em>Message with id #%(id)d was lost."
+msgstr "<em>#%(id)d jelzésû levél elveszett."
+
+#: Mailman/Cgi/admindb.py:567
+msgid "<em>Message with id #%(id)d is corrupted."
+msgstr "<em>#%(id)d jelzésû levél sérült."
+
+#: Mailman/Cgi/admindb.py:618
+msgid "Action:"
+msgstr "Intézkedés:"
+
+#: Mailman/Cgi/admindb.py:622
+msgid "Preserve message for site administrator"
+msgstr "Levél megõrzése az adminisztrátor számára"
+
+#: Mailman/Cgi/admindb.py:626
+msgid "Additionally, forward this message to: "
+msgstr "Ezenfelül küld tovább ezt a levelet ide: "
+
+#: Mailman/Cgi/admindb.py:630
+msgid "[No explanation given]"
+msgstr "[Nincs megadva magyarázat]"
+
+#: Mailman/Cgi/admindb.py:632
+msgid "If you reject this post,<br>please explain (optional):"
+msgstr ""
+"Ha visszautasítod ezt a levelet,<br> akkor az indoklást itt add meg (nem "
+"kötelezõ):"
+
+#: Mailman/Cgi/admindb.py:638
+msgid "Message Headers:"
+msgstr "Levél fejlécek:"
+
+#: Mailman/Cgi/admindb.py:643
+msgid "Message Excerpt:"
+msgstr "Levél tartalma:"
+
+#: Mailman/Cgi/admindb.py:676 Mailman/Deliverer.py:124
+msgid "No reason given"
+msgstr "Nincs indok megadva"
+
+#: Mailman/Cgi/admindb.py:737 Mailman/ListAdmin.py:308
+#: Mailman/ListAdmin.py:429
+msgid "[No reason given]"
+msgstr "[Nincs indok megadva]"
+
+#: Mailman/Cgi/admindb.py:766
+msgid "Database Updated..."
+msgstr "Adatbázis frissítve..."
+
+#: Mailman/Cgi/admindb.py:769
+msgid " is already a member"
+msgstr " már tag"
+
+#: Mailman/Cgi/confirm.py:69
+msgid "Confirmation string was empty."
+msgstr "Üres megerõsítési azonosító."
+
+#: Mailman/Cgi/confirm.py:89
+msgid ""
+"<b>Invalid confirmation string:</b>\n"
+" %(safecookie)s.\n"
+"\n"
+" <p>Note that confirmation strings expire approximately\n"
+" %(days)s days after the initial subscription request. If your\n"
+" confirmation has expired, please try to re-submit your subscription.\n"
+" Otherwise, <a href=\"%(confirmurl)s\">re-enter</a> your confirmation\n"
+" string."
+msgstr ""
+"<b>Érvénytelen megerõsítési azonosító:</b>\n"
+" %(safecookie)s.\n"
+"\n"
+"<p>Fontos, hogy a megerõsítési azonosító annak kérelmezése után\n"
+"%(days)s nappal lejár. Ha a megerõsítési idõszak letelt, akkor\n"
+"újra meg kell próbálni a feliratkozást. Próbáld meg <a\n"
+"href=\"%(confirmurl)s\">újra</a> megadni a megerõsítési azonosítót."
+
+#: Mailman/Cgi/confirm.py:122
+msgid ""
+"The address requesting unsubscription is not\n"
+" a member of the mailing list. Perhaps you have already "
+"been\n"
+" unsubscribed, e.g. by the list administrator?"
+msgstr ""
+"A leiratkozási kérelem olyan címrõl jött, amely nem tagja a "
+"levelezõlistának.\n"
+"Talán már töröltek a listáról, pl. törölhetett a lista adminisztrátora."
+
+#: Mailman/Cgi/confirm.py:138
+msgid ""
+"The address requesting to be changed has\n"
+" been subsequently unsubscribed. This request has been\n"
+" cancelled."
+msgstr ""
+"A megváltoztatandó címet menetközben törölték a listáról.\n"
+"A módosítási kérelmet töröltük."
+
+#: Mailman/Cgi/confirm.py:157
+msgid "System error, bad content: %(content)s"
+msgstr "Általános hiba, hibás tartalom: %(content)s"
+
+#: Mailman/Cgi/confirm.py:167
+msgid "Bad confirmation string"
+msgstr "Hibás megerõsítési azonosító"
+
+#: Mailman/Cgi/confirm.py:175
+msgid "Enter confirmation cookie"
+msgstr "Hibás megerõsítési azonosító"
+
+#: Mailman/Cgi/confirm.py:188
+msgid ""
+"Please enter the confirmation string\n"
+" (i.e. <em>cookie</em>) that you received in your email message, in the "
+"box\n"
+" below. Then hit the <em>Submit</em> button to proceed to the next\n"
+" confirmation step."
+msgstr ""
+"Kérlek add meg az e-mailben elküldött megerõsítési azonosítót\n"
+" (pl. <em>cookie</em>) a szövegmezõben. Majd válaszd az <em>Elküld</em>\n"
+" gombot a megerõsítéshez."
+
+#: Mailman/Cgi/confirm.py:193
+msgid "Confirmation string:"
+msgstr "Megerõsítési azonosító"
+
+#: Mailman/Cgi/confirm.py:195
+msgid "Submit"
+msgstr "Elküld"
+
+#: Mailman/Cgi/confirm.py:210
+msgid "Confirm subscription request"
+msgstr "Feliratkozási kérelem megerõsítése"
+
+#: Mailman/Cgi/confirm.py:227
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" subscription request to the mailing list <em>%(listname)s</em>. Your\n"
+" subscription settings are shown below; make any necessary changes and "
+"hit\n"
+" <em>Subscribe</em> to complete the confirmation process. Once you've\n"
+" confirmed your subscription request, you will be shown your account\n"
+" options page which you can use to further customize your membership\n"
+" options.\n"
+"\n"
+" <p>Note: your password will be emailed to you once your subscription is\n"
+" confirmed. You can change it by visiting your personal options page.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this subscription\n"
+" request."
+msgstr ""
+"A(z) <em>%(listname)s</em> levelezõlistára történõ feliratkozásodat itt\n"
+" kell megerõsítened. Az oldalon a jelenlegi feliratkozási beállításaidat\n"
+" láthatod; változtass rajtuk igényeid szerint, majd válaszd az\n"
+" <em>Elküld</em> gombot a feliratkozás megerõsítéséhez. Megerõsítés\n"
+" után a listatagsági beállításaidat tartalmazó oldalra jutsz, ahol\n"
+" további beállításokat hajthatsz végre.\n"
+"\n"
+" <p>Megjegyzés: a jelszavadat csak a feliratkozásod megerõsítése után\n"
+" küldjük el e-mailben. Bármikor megváltoztathatod a saját "
+"beállításaidat\n"
+" tartalmazó oldalon.\n"
+"\n"
+" <p>Ha nem akarod a feliratkozást megerõsíteni, akkor válaszd a\n"
+" <em>Mégsem és elvet</em> gombot."
+
+#: Mailman/Cgi/confirm.py:242
+msgid ""
+"Your confirmation is required in order to continue with\n"
+" the subscription request to the mailing list <em>%(listname)s</em>.\n"
+" Your subscription settings are shown below; make any necessary "
+"changes\n"
+" and hit <em>Subscribe to list ...</em> to complete the confirmation\n"
+" process. Once you've confirmed your subscription request, the\n"
+" moderator must approve or reject your membership request. You will\n"
+" receive notice of their decision.\n"
+"\n"
+" <p>Note: your password will be emailed to you once your "
+"subscription\n"
+" is confirmed. You can change it by visiting your personal options\n"
+" page.\n"
+"\n"
+" <p>Or, if you've changed your mind and do not want to subscribe to\n"
+" this mailing list, you can hit <em>Cancel my subscription\n"
+" request</em>."
+msgstr ""
+"A(z) <em>%(listname)s</em> levelezõlistára történõ feliratkozásodat meg\n"
+" kell erõsítened. Az oldalon a jelenlegi feliratkozási beállításaidat\n"
+" láthatod; változtass rajtuk igényeid szerint, majd válaszd az\n"
+" <em>Feliratkozás a listára...</em> gombot a feliratkozás "
+"megerõsítéséhez. Megerõsítés\n"
+" után a lista adminisztrátorának döntésérõl e-mailben értesítünk, hogy \n"
+" feliratkozásod jóvá lett-e hagyva.\n"
+"\n"
+" <p>Megjegyzés: a jelszavadat csak a feliratkozásod megerõsítése után\n"
+" küldjük el e-mailben. Bármikor megváltoztathatod a saját "
+"beállításaidat\n"
+" tartalmazó oldalon.\n"
+"\n"
+" <p>Ha nem akarod a feliratkozást megerõsíteni, akkor válaszd a\n"
+" <em>Feliratkozásom elvetése</em> gombot."
+
+#: Mailman/Cgi/confirm.py:260
+msgid "Your email address:"
+msgstr "E-mail címed:"
+
+#: Mailman/Cgi/confirm.py:261
+msgid "Your real name:"
+msgstr "Teljes neved:"
+
+#: Mailman/Cgi/confirm.py:270
+msgid "Receive digests?"
+msgstr "Digest levelek?"
+
+#: Mailman/Cgi/confirm.py:279
+msgid "Preferred language:"
+msgstr "Választott nyelv:"
+
+#: Mailman/Cgi/confirm.py:284
+msgid "Cancel my subscription request"
+msgstr "Feliratkozási kérelmem elvetése"
+
+#: Mailman/Cgi/confirm.py:285
+msgid "Subscribe to list %(listname)s"
+msgstr "Feliratkozás a(z) %(listname)s listára"
+
+#: Mailman/Cgi/confirm.py:295
+msgid "You have canceled your subscription request."
+msgstr "Feliratkozási kérelmedet megszüntetted."
+
+#: Mailman/Cgi/confirm.py:329
+msgid "Awaiting moderator approval"
+msgstr "Jóváhagyásra váró levelek"
+
+#: Mailman/Cgi/confirm.py:332
+msgid ""
+" You have successfully confirmed your subscription request to "
+"the\n"
+" mailing list %(listname)s, however final approval is required "
+"from\n"
+" the list moderator before you will be subscribed. Your request\n"
+" has been forwarded to the list moderator, and you will be "
+"notified\n"
+" of the moderator's decision."
+msgstr ""
+"\tSikeresen megerõsítetted feliratkozási szándékodat a(z) %(listname)s\n"
+"\tlevelezõlistára, azonban feliratkozásod csak a lista szerkesztõjének\n"
+"\tjóváhagyása után válik teljessé. Feliratkozásod a lista szerkesztõjéhez\n"
+"\tlett továbbítva. A szerkesztõ döntésérõl e-mailben értesítünk."
+
+#: Mailman/Cgi/confirm.py:339 Mailman/Cgi/confirm.py:394
+#: Mailman/Cgi/confirm.py:482 Mailman/Cgi/confirm.py:705
+msgid ""
+"Invalid confirmation string. It is\n"
+" possible that you are attempting to confirm a request for an\n"
+" address that has already been unsubscribed."
+msgstr ""
+"Érvénytelen megerõsítési azonosító. Valószínû\n"
+"\t hogy a megerõsítésed egy már törölt címhez\n"
+"\t tartozott."
+
+#: Mailman/Cgi/confirm.py:343
+msgid "You are already a member of this mailing list!"
+msgstr "Már tagja vagy ennek a levelezõlistának!"
+
+#: Mailman/Cgi/confirm.py:350
+msgid "Subscription request confirmed"
+msgstr "Feliratkozási kérelem megerõsítve"
+
+#: Mailman/Cgi/confirm.py:354
+msgid ""
+" You have successfully confirmed your subscription request for\n"
+" \"%(addr)s\" to the %(listname)s mailing list. A separate\n"
+" confirmation message will be sent to your email address, along\n"
+" with your password, and other useful information and links.\n"
+"\n"
+" <p>You can now\n"
+" <a href=\"%(optionsurl)s\">proceed to your membership login\n"
+" page</a>."
+msgstr ""
+"\tA(z) %(listname)s levelezõlistára \"%(addr)s\" bejegyzéssel\n"
+"\tsikeresen feliratkoztál. Egy külön levélben értesítünk feliratkozásodról,\n"
+"\tvalamint a jelszavadról és más hasznos tudnivalókról, címekrõl.\n"
+"\t <p>Mostmár megtekintheted a\n"
+"\t <a href=\"%(optionsurl)s\">listatagsági oldaladat</a>."
+
+#: Mailman/Cgi/confirm.py:372
+msgid "You have canceled your unsubscription request."
+msgstr "Leiratkozási kérelmedet sikeresen megszüntetted."
+
+#: Mailman/Cgi/confirm.py:400
+msgid "Unsubscription request confirmed"
+msgstr "Leiratkozási kérelem megerõsítve"
+
+#: Mailman/Cgi/confirm.py:404
+msgid ""
+" You have successfully unsubscribed from the %(listname)s "
+"mailing\n"
+" list. You can now <a href=\"%(listinfourl)s\">visit the list's "
+"main\n"
+" information page</a>."
+msgstr ""
+"\t Sikeresen leiratkoztál a(z) %(listname)s levelezõlistáról.\n"
+"\t Tovább a <a href=\"%(listinfourl)s\">lista információs\n"
+"\t oldalára</a>."
+
+#: Mailman/Cgi/confirm.py:415
+msgid "Confirm unsubscription request"
+msgstr "Leiratkozási kérelem megerõsítése"
+
+#: Mailman/Cgi/confirm.py:430 Mailman/Cgi/confirm.py:519
+msgid "<em>Not available</em>"
+msgstr "<em>Nem elérhetõ</em>"
+
+#: Mailman/Cgi/confirm.py:433
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" unsubscription request from the mailing list <em>%(listname)s</em>. "
+"You\n"
+" are currently subscribed with\n"
+"\n"
+" <ul><li><b>Real name:</b> %(fullname)s\n"
+" <li><b>Email address:</b> %(addr)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Unsubscribe</em> button below to complete the confirmation\n"
+" process.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this unsubscription\n"
+" request."
+msgstr ""
+"A(z) <em>%(listname)s</em> levelezõlistáról való leiratkozásodhoz\n"
+"\tmeg kell erõsítened a leiratkozási kérelmet. A\n"
+"\tkövetkezõ adatokkal vagy nyilvántartva:\n"
+"\n"
+" <ul><li><b>Teljes név:</b> %(fullname)s\n"
+" <li><b>E-mail cím:</b> %(addr)s\n"
+" </ul>\n"
+"\n"
+" A leiratkozás megerõsítéséhez kattints a <em>Leiratkozás</em>\n"
+" gombra.\n"
+"\n"
+" <p>Ha nem akarod a leiratkozást megerõsíteni, akkor válaszd a\n"
+" <em>Mégsem és elvet</em> gombot."
+
+#: Mailman/Cgi/confirm.py:449 Mailman/Cgi/options.py:660
+#: Mailman/Cgi/options.py:801 Mailman/Cgi/options.py:811
+msgid "Unsubscribe"
+msgstr "Leiratkozás"
+
+#: Mailman/Cgi/confirm.py:450 Mailman/Cgi/confirm.py:548
+msgid "Cancel and discard"
+msgstr "Mégsem és elvet"
+
+#: Mailman/Cgi/confirm.py:460
+msgid "You have canceled your change of address request."
+msgstr "Törölted a feliratkozási címed megváltoztatásának kérelmét."
+
+#: Mailman/Cgi/confirm.py:488
+msgid "Change of address request confirmed"
+msgstr "Feliratkozási cím sikeresen megváltoztatva"
+
+#: Mailman/Cgi/confirm.py:492
+msgid ""
+" You have successfully changed your address on the %(listname)s\n"
+" mailing list from <b>%(oldaddr)s</b> to <b>%(newaddr)s</b>. "
+"You\n"
+" can now <a href=\"%(optionsurl)s\">proceed to your membership\n"
+" login page</a>."
+msgstr ""
+" Sikeresen megváltoztattad a(z) %(listname)s levelezõlistán\n"
+" nyilvántartott régi <b>%(oldaddr)s</b> e-mail címedet\n"
+" <b>%(newaddr)s</b> címre. Tovább a <a href=\"%(optionsurl)s"
+"\">listatagsági\n"
+" beállítások oldalra</a>."
+
+#: Mailman/Cgi/confirm.py:504
+msgid "Confirm change of address request"
+msgstr "A cím sikeresen megváltoztatva"
+
+#: Mailman/Cgi/confirm.py:523
+msgid "globally"
+msgstr "mindenhol"
+
+#: Mailman/Cgi/confirm.py:526
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" change of address request for the mailing list <em>%(listname)s</em>. "
+"You\n"
+" are currently subscribed with\n"
+"\n"
+" <ul><li><b>Real name:</b> %(fullname)s\n"
+" <li><b>Old email address:</b> %(oldaddr)s\n"
+" </ul>\n"
+"\n"
+" and you have requested to %(globallys)s change your email address to\n"
+"\n"
+" <ul><li><b>New email address:</b> %(newaddr)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Change address</em> button below to complete the "
+"confirmation\n"
+" process.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this change of address\n"
+" request."
+msgstr ""
+"A(z) <em>%(listname)s</em> levelezõlistán nyilvántartott e-mail címed\n"
+" megváltoztatásához meg kell erõsítened a kérelmet. Jelenleg a \n"
+" következõ adatokkal vagy feliratkozva:\n"
+"\n"
+" <ul><li><b>Teljes név:</b> %(fullname)s\n"
+" <li><b>Régi e-mail cím:</b> %(oldaddr)s\n"
+" </ul>\n"
+"\n"
+" A feliratkozási címedet %(globallys)s a következõ új címre akarod\n"
+" változtatni\n"
+"\n"
+" <ul><li><b>Új e-mail cím:</b> %(newaddr)s\n"
+" </ul>\n"
+"\n"
+" <p>Ha nem szeretnéd a címedet megváltoztatni, akkor kattints a \n"
+" <em>Mégsem és elvet</em> gombra."
+
+#: Mailman/Cgi/confirm.py:547
+msgid "Change address"
+msgstr "Cím megváltoztatása"
+
+#: Mailman/Cgi/confirm.py:557 Mailman/Cgi/confirm.py:670
+msgid "Continue awaiting approval"
+msgstr "Jóváhagyásra várakozás"
+
+#: Mailman/Cgi/confirm.py:564
+msgid ""
+"Okay, the list moderator will still have the\n"
+" opportunity to approve or reject this message."
+msgstr ""
+"Nos, a lista szerkesztõjének még jogában áll\n"
+"engedélyezni vagy törölni ezt az üzenetet."
+
+#: Mailman/Cgi/confirm.py:590
+msgid "Sender discarded message via web."
+msgstr "A feladó web-en keresztül törölte az üzenetet."
+
+#: Mailman/Cgi/confirm.py:592
+msgid ""
+"The held message with the Subject:\n"
+" header <em>%(subject)s</em> could not be found. The most "
+"likely\n"
+" reason for this is that the list moderator has already approved "
+"or\n"
+" rejected the message. You were not able to cancel it in\n"
+" time."
+msgstr ""
+"A(z) <em>%(subject)s</em> Subject: fejlécû üzenet nem található.\n"
+"Valószínû, hogy a lista szerkesztõje már vagy engedélyezte, vagy törölte\n"
+"a levelet. Mostmár nem törölheted a levelet."
+
+#: Mailman/Cgi/confirm.py:600
+msgid "Posted message canceled"
+msgstr "Beküldött levél törölve"
+
+#: Mailman/Cgi/confirm.py:603
+msgid ""
+" You have successfully canceled the posting of your message with\n"
+" the Subject: header <em>%(subject)s</em> to the mailing list\n"
+" %(listname)s."
+msgstr ""
+"\t Sikeresen törölted a(z) %(listname)s levelezõlistára küldött\n"
+"\t <em>%(subject)s</em> tárgyú levelet megjelenése elõtt."
+
+#: Mailman/Cgi/confirm.py:614
+msgid "Cancel held message posting"
+msgstr "Visszatartott levél küldésének törlése"
+
+#: Mailman/Cgi/confirm.py:639
+msgid ""
+"The held message you were referred to has\n"
+" already been handled by the list administrator."
+msgstr ""
+"Az általad keresett jóváhagyásra váró levélrõl a lista\n"
+"adminisztrátora már gondoskodott."
+
+#: Mailman/Cgi/confirm.py:653
+msgid ""
+"Your confirmation is required in order to cancel the\n"
+" posting of your message to the mailing list <em>%(listname)s</em>:\n"
+"\n"
+" <ul><li><b>Sender:</b> %(sender)s\n"
+" <li><b>Subject:</b> %(subject)s\n"
+" <li><b>Reason:</b> %(reason)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Cancel posting</em> button to discard the posting.\n"
+"\n"
+" <p>Or hit the <em>Continue awaiting approval</em> button to continue to\n"
+" allow the list moderator to approve or reject the message."
+msgstr ""
+"Megerõsítésed szükséges a(z) <em>%(listname)s</em> listára küldött\n"
+" leveled megjelenés elõtti törléséhez:\n"
+"\n"
+" <ul><li><b>Feladó:</b> %(sender)s\n"
+" <li><b>Tárgy:</b> %(subject)s\n"
+" <li><b>Indok:</b> %(reason)s\n"
+" </ul>\n"
+"\n"
+" Kattints a <em>Megjelenés letiltása</em> gombra, ha nem szeretnéd,\n"
+" hogy leveled megjelenjen.\n"
+"\n"
+" <p>Vagy válaszd a <em>Jóváhagyásra várakozás</em> gombot, hogy az\n"
+" üzenet megjelenésérõl vagy törlésérõl a lista szerkesztõje\n"
+" döntsön."
+
+#: Mailman/Cgi/confirm.py:669
+msgid "Cancel posting"
+msgstr "Megjelenés letiltása"
+
+#: Mailman/Cgi/confirm.py:681
+msgid ""
+"You have canceled the re-enabling of your membership. If\n"
+" we continue to receive bounces from your address, it could be deleted "
+"from\n"
+" this mailing list."
+msgstr ""
+"Megszüntetted a listatagságod visszaállítását. Ha a címedrõl\n"
+"továbbra is visszapattanak az üzenetek, akkor akár törlõdhet errõl a "
+"levelezõlistáról\n"
+"a feliratkozási címed."
+
+#: Mailman/Cgi/confirm.py:711
+msgid "Membership re-enabled."
+msgstr "Listatagság visszaállítva."
+
+#: Mailman/Cgi/confirm.py:715
+msgid ""
+" You have successfully re-enabled your membership in the\n"
+" %(listname)s mailing list. You can now <a\n"
+" href=\"%(optionsurl)s\">visit your member options page</a>.\n"
+" "
+msgstr ""
+"Sikeresen visszaállítottad a listatagságodat a(z) %(listname)s "
+"levelezõlistán.\n"
+"Mostmár <a href=\"%(optionsurl)s\">meglátogadhatod a tagsági oldaladat</a>."
+
+#: Mailman/Cgi/confirm.py:727
+msgid "Re-enable mailing list membership"
+msgstr "Levelezõlista-tagság visszaállítása"
+
+#: Mailman/Cgi/confirm.py:744
+msgid ""
+"We're sorry, but you have already been unsubscribed\n"
+" from this mailing list. To re-subscribe, please visit the\n"
+" <a href=\"%(listinfourl)s\">list information page</a>."
+msgstr ""
+"Sajnáljuk, de ennek a levelezõlistának már nem vagy tagja.\n"
+"Ha újra fel szeretnél iratkozni, akkor látogasd meg a <a\n"
+"href=\"%(listinfourl)s\">lista információs oldalát</a>."
+
+#: Mailman/Cgi/confirm.py:758
+msgid "<em>not available</em>"
+msgstr "<em>nem elérhetõ</em>"
+
+#: Mailman/Cgi/confirm.py:762
+msgid ""
+"Your membership in the %(realname)s mailing list is\n"
+" currently disabled due to excessive bounces. Your confirmation is\n"
+" required in order to re-enable delivery to your address. We have the\n"
+" following information on file:\n"
+"\n"
+" <ul><li><b>Member address:</b> %(member)s\n"
+" <li><b>Member name:</b> %(username)s\n"
+" <li><b>Last bounce received on:</b> %(date)s\n"
+" <li><b>Approximate number of days before you are permanently "
+"removed\n"
+" from this list:</b> %(daysleft)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Re-enable membership</em> button to resume receiving "
+"postings\n"
+" from the mailing list. Or hit the <em>Cancel</em> button to defer\n"
+" re-enabling your membership.\n"
+" "
+msgstr ""
+"Túl sok visszapattanás miatt a listatagságod a(z) %(realname)s\n"
+"levelezõlistán jelenleg ki van kapcsolva. Megerõsítésed szükséges\n"
+"a listatagságod visszaállításához. A következõ információkkal\n"
+"rendelkezünk:\n"
+"\n"
+" <ul><li><b>Listatag címe:</b> %(member)s\n"
+" <li><b>Listatag neve:</b> %(username)s\n"
+" <li><b>Utolsó visszapattanás dátuma:</b> %(date)s\n"
+" <li><b>A bescsült hátralévõ napok száma amíg még ezen lista tagja\n"
+" vagyt:</b> %(daysleft)s\n"
+" </ul>\n"
+"\n"
+"Kattintson a <em>Listatagság visszaállítása</em> gombra, hogy újból kapja a\n"
+"leveleket errõl a listáról. A <em>Mégsem</em> gombra kattintva "
+"elhalaszthatja\n"
+"a visszaállítási kérelmet."
+
+#: Mailman/Cgi/confirm.py:782
+msgid "Re-enable membership"
+msgstr "Listatagság visszaállítása"
+
+#: Mailman/Cgi/confirm.py:783
+msgid "Cancel"
+msgstr "Mégsem"
+
+#: Mailman/Cgi/create.py:48 Mailman/Cgi/rmlist.py:48
+msgid "Bad URL specification"
+msgstr "Hibás URL megadás"
+
+#: Mailman/Cgi/create.py:63 Mailman/Cgi/rmlist.py:176
+msgid "Return to the "
+msgstr "Vissza a "
+
+#: Mailman/Cgi/create.py:65 Mailman/Cgi/rmlist.py:178
+msgid "general list overview"
+msgstr "levelezõlisták információs oldalára."
+
+#: Mailman/Cgi/create.py:66 Mailman/Cgi/rmlist.py:179
+msgid "<br>Return to the "
+msgstr "<br>Vissza a "
+
+#: Mailman/Cgi/create.py:68 Mailman/Cgi/rmlist.py:181
+msgid "administrative list overview"
+msgstr "levelezõlisták adminisztrációs oldalára."
+
+#: Mailman/Cgi/create.py:101
+msgid "List name must not include \"@\": %(listname)s"
+msgstr "A lista nevében nem lehet \"@\" jel: %(listname)s"
+
+#: Mailman/Cgi/create.py:107 Mailman/Cgi/create.py:185 bin/newlist:134
+#: bin/newlist:168
+msgid "List already exists: %(listname)s"
+msgstr "A lista már létezik: %(listname)s"
+
+#: Mailman/Cgi/create.py:111
+msgid "You forgot to enter the list name"
+msgstr "Elfelejtettél listanevet megadni."
+
+#: Mailman/Cgi/create.py:115
+msgid "You forgot to specify the list owner"
+msgstr "Elfelejtettél lista gazdát megadni."
+
+#: Mailman/Cgi/create.py:122
+msgid ""
+"Leave the initial password (and confirmation) fields\n"
+" blank if you want Mailman to autogenerate the list\n"
+" passwords."
+msgstr ""
+"Hagyd üresen az induló jelszó (és megerõsítése) mezõket, ha szeretnéd. hogy "
+"a Mailman hozzon létre jelszót a listához."
+
+#: Mailman/Cgi/create.py:130
+msgid "Initial list passwords do not match"
+msgstr "Az induló jelszavak nem egyeznek."
+
+#: Mailman/Cgi/create.py:139
+msgid "The list password cannot be empty<!-- ignore -->"
+msgstr "Nem lehet üres a lista jelszava.<!-- ignore -->"
+
+#: Mailman/Cgi/create.py:151
+msgid "You are not authorized to create new mailing lists"
+msgstr "Jogosultság hiányában nem hozhatsz létre új levelezõlistákat."
+
+#: Mailman/Cgi/create.py:181 bin/newlist:166
+msgid "Bad owner email address: %(s)s"
+msgstr "Hibás tulajdonois e-mail cím: %(s)s"
+
+#: Mailman/Cgi/create.py:189 bin/newlist:164
+msgid "Illegal list name: %(s)s"
+msgstr "Érvénytelen listanév: %(s)s"
+
+#: Mailman/Cgi/create.py:194
+msgid ""
+"Some unknown error occurred while creating the list.\n"
+" Please contact the site administrator for assistance."
+msgstr ""
+"Ismeretlen hiba történt a lista létrehozásakor.\n"
+"\t\tFordulj a rendszer adminisztrátorához segítségért."
+
+#: Mailman/Cgi/create.py:233 bin/newlist:210
+msgid "Your new mailing list: %(listname)s"
+msgstr "Az új levelezõlistád: %(listname)s"
+
+#: Mailman/Cgi/create.py:242
+msgid "Mailing list creation results"
+msgstr "Levelezõlista létrehozás eredménye"
+
+#: Mailman/Cgi/create.py:248
+msgid ""
+"You have successfully created the mailing list\n"
+" <b>%(listname)s</b> and notification has been sent to the list owner\n"
+" <b>%(owner)s</b>. You can now:"
+msgstr ""
+"Sikeresen létrehoztad a(z) <b>%(listname)s</b> levelezõlistát.\n"
+"A lista gazdáját, <b>%(owner)s</b>-t értesítettük. Most már:"
+
+#: Mailman/Cgi/create.py:252
+msgid "Visit the list's info page"
+msgstr "Megtekintheted a lista információs oldalát"
+
+#: Mailman/Cgi/create.py:253
+msgid "Visit the list's admin page"
+msgstr "Megtekintheted a lista adminisztrátori oldalát"
+
+#: Mailman/Cgi/create.py:254
+msgid "Create another list"
+msgstr "Létrehozhatsz egy újabb listát"
+
+#: Mailman/Cgi/create.py:272
+msgid "Create a %(hostname)s Mailing List"
+msgstr "Új %(hostname)s levelezõlista létrehozása"
+
+#: Mailman/Cgi/create.py:281 Mailman/Cgi/rmlist.py:199
+#: Mailman/Gui/Bounce.py:175 Mailman/htmlformat.py:339
+msgid "Error: "
+msgstr "Hiba: "
+
+#: Mailman/Cgi/create.py:283
+msgid ""
+"You can create a new mailing list by entering the\n"
+" relevant information into the form below. The name of the mailing list\n"
+" will be used as the primary address for posting messages to the list, "
+"so\n"
+" it should be lowercased. You will not be able to change this once the\n"
+" list is created.\n"
+"\n"
+" <p>You also need to enter the email address of the initial list owner.\n"
+" Once the list is created, the list owner will be given notification, "
+"along\n"
+" with the initial list password. The list owner will then be able to\n"
+" modify the password and add or remove additional list owners.\n"
+"\n"
+" <p>If you want Mailman to automatically generate the initial list admin\n"
+" password, click on `Yes' in the autogenerate field below, and leave the\n"
+" initial list password fields empty.\n"
+"\n"
+" <p>You must have the proper authorization to create new mailing lists.\n"
+" Each site should have a <em>list creator's</em> password, which you can\n"
+" enter in the field at the bottom. Note that the site administrator's\n"
+" password can also be used for authentication.\n"
+" "
+msgstr ""
+"Az oldalon található ûrlap megfelelõ kitöltésével új levelezõlistát lehet "
+"létrehozni.\n"
+"A levelezõlista nevét, amelyre a levelek érkezni fognak, kisbetûkkel kell "
+"megadni.\n"
+"A lista létrehozása után ezt a nevet már nem lehet megváltoztatni.\n"
+"\n"
+"<p>Kötelezõen meg kell még adni a lista induló gazdájának az e-mail címét.\n"
+"A lista létrehozása után a gazda a listához beállításához szükséges jelszót\n"
+"e-mailben kapja meg. Ezek után a lista gazdája megváltoztathatja \n"
+"jelszavát és további lista tulajdonosokat adhat vagy törölhet a listáról.\n"
+"\n"
+"<p>A Mailman automatikusan létrehozhat egy induló lista adminisztrációs\n"
+"jelszót, ha azt lejjebb az automatikus jelszólétrehozás mezõben kérjük,\n"
+" és nem adunk meg kezdeti jelszót.\n"
+"\n"
+"<p>Új levelezõlista létrehozásához megfelelõ jogosultsággal kell "
+"rendelkezni.\n"
+" Minden egyes rendszeren <em>listalétrehozó</em> jelszóval kell "
+"rendelkezni,\n"
+"amelyet lent a megfelelõ mezõben kell megadni. Listalétrehozáshoz a "
+"rendszer\n"
+"adminisztrátori jelszava is megadható.\n"
+" "
+
+#: Mailman/Cgi/create.py:309
+msgid "List Identity"
+msgstr "Lista azonosítók"
+
+#: Mailman/Cgi/create.py:312
+msgid "Name of list:"
+msgstr "A lista neve:"
+
+#: Mailman/Cgi/create.py:317
+msgid "Initial list owner address:"
+msgstr "A lista elsõ gazdájának e-mail címe: "
+
+#: Mailman/Cgi/create.py:326
+msgid "Auto-generate initial list password?"
+msgstr "A lista induló jelszavának automatikus létrehozása?"
+
+#: Mailman/Cgi/create.py:333
+msgid "Initial list password:"
+msgstr "A lista induló jelszava: "
+
+#: Mailman/Cgi/create.py:338
+msgid "Confirm initial password:"
+msgstr "Az induló jelszó megerõsítése:"
+
+#: Mailman/Cgi/create.py:348
+msgid "List Characteristics"
+msgstr "Lista jellemzõk"
+
+#: Mailman/Cgi/create.py:352
+msgid ""
+"Should new members be quarantined before they\n"
+" are allowed to post unmoderated to this list? Answer <em>Yes</em> to "
+"hold\n"
+" new member postings for moderator approval by default."
+msgstr ""
+"Figyelje külön és korlátozza a Mailman az új listatagokat mielõtt "
+"engedélyeznénk\n"
+"nekik, hogy a listára külön jóváhagyás nélkül küldjenek leveleket? <em>Igen</"
+"em>-t\n"
+"választva az új tag beküldéseit mindig külön engedélyeznünk kell."
+
+#: Mailman/Cgi/create.py:383
+msgid ""
+"Initial list of supported languages. <p>Note that if you do not\n"
+" select at least one initial language, the list will use the server\n"
+" default language of %(deflang)s"
+msgstr ""
+"Listán beállítható nyelvek. <p>Fontos, hogy ha a listához egyetlen nyelvet \n"
+"sem rendelünk, akkor a lista a rendszer alapértelmezett nyelvét\n"
+"(<b>%(deflang)s</b>) fogja használni."
+
+#: Mailman/Cgi/create.py:394
+msgid "Send \"list created\" email to list owner?"
+msgstr "Elküldjem a lista tulajdonosnak a \"lista létrehozva\" értesítést?"
+
+#: Mailman/Cgi/create.py:403
+msgid "List creator's (authentication) password:"
+msgstr "Listalétrehozó (azonosítási) jelszó:"
+
+#: Mailman/Cgi/create.py:408
+msgid "Create List"
+msgstr "Lista létrehozása"
+
+#: Mailman/Cgi/create.py:409
+msgid "Clear Form"
+msgstr "Ûrlap törlése"
+
+#: Mailman/Cgi/edithtml.py:43
+msgid "General list information page"
+msgstr "Lista általános információs lapja"
+
+#: Mailman/Cgi/edithtml.py:44
+msgid "Subscribe results page"
+msgstr "Feliratkozási kimenetek"
+
+#: Mailman/Cgi/edithtml.py:45
+msgid "User specific options page"
+msgstr "Felhasználó beállítási oldala"
+
+#: Mailman/Cgi/edithtml.py:57
+msgid "List name is required."
+msgstr "Meg kell adni a lista nevét."
+
+#: Mailman/Cgi/edithtml.py:97
+msgid "%(realname)s -- Edit html for %(template_info)s"
+msgstr "%(realname)s -- %(template_info)s html szerkesztése"
+
+#: Mailman/Cgi/edithtml.py:103
+msgid "Edit HTML : Error"
+msgstr "HTML szerkesztése: Hiba"
+
+#: Mailman/Cgi/edithtml.py:104
+msgid "%(safetemplatename)s: Invalid template"
+msgstr "%(safetemplatename)s: Érvénytelen sablon"
+
+#: Mailman/Cgi/edithtml.py:109 Mailman/Cgi/edithtml.py:110
+msgid "%(realname)s -- HTML Page Editing"
+msgstr "%(realname)s -- HTML oldal szerkesztése"
+
+#: Mailman/Cgi/edithtml.py:111
+msgid "Select page to edit:"
+msgstr "Válaszd ki a szerkesztendõ lapot:"
+
+#: Mailman/Cgi/edithtml.py:137
+msgid "View or edit the list configuration information."
+msgstr "A lista beállítások kimenetének megtekintése vagy szerkesztése."
+
+#: Mailman/Cgi/edithtml.py:145
+msgid "When you are done making changes..."
+msgstr "Változtatások befejezése után kattints ide..."
+
+#: Mailman/Cgi/edithtml.py:146
+msgid "Submit Changes"
+msgstr "Változtatások mentése"
+
+#: Mailman/Cgi/edithtml.py:153
+msgid "Can't have empty html page."
+msgstr "Nem lehet üres html oldalt megadni."
+
+#: Mailman/Cgi/edithtml.py:154
+msgid "HTML Unchanged."
+msgstr "Nincs változtatás."
+
+#: Mailman/Cgi/edithtml.py:169
+msgid "HTML successfully updated."
+msgstr "HTML sikeresen frissítve."
+
+#: Mailman/Cgi/listinfo.py:71
+msgid "%(hostname)s Mailing Lists"
+msgstr "%(hostname)s Levelezõlisták"
+
+#: Mailman/Cgi/listinfo.py:103
+msgid ""
+"<p>There currently are no publicly-advertised\n"
+" %(mailmanlink)s mailing lists on %(hostname)s."
+msgstr ""
+"<p> Nem futnak nyilvános %(mailmanlink)s levelezõlisták a(z) %(hostname)s "
+"gépen."
+
+#: Mailman/Cgi/listinfo.py:107
+msgid ""
+"<p>Below is a listing of all the public mailing lists on\n"
+" %(hostname)s. Click on a list name to get more information "
+"about\n"
+" the list, or to subscribe, unsubscribe, and change the "
+"preferences\n"
+" on your subscription."
+msgstr ""
+"<p>Alább a(z) %(hostname)s gépen mûködõ nyilvános\n"
+"\t levelezõlisták sora látható. A listáról bõvebb információért,\n"
+"\t feliratkozáshoz, leiratkozáshoz, vagy a beállításaid módosításához\n"
+"\t kattints a lista nevére."
+
+#: Mailman/Cgi/listinfo.py:113
+msgid "right"
+msgstr "megfelelõ"
+
+#: Mailman/Cgi/listinfo.py:116
+msgid ""
+" To visit the general information page for an unadvertised list,\n"
+" open a URL similar to this one, but with a '/' and the %(adj)s\n"
+" list name appended.\n"
+" <p>List administrators, you can visit "
+msgstr ""
+" Rejtett listák információinak megtekintéséhez a\n"
+"fentihez hasonló címet kell megadni, de a '/' után add meg még\n"
+"a %(adj)s lista nevét.\n"
+"<p>Lista adminisztrátorok a "
+
+#: Mailman/Cgi/listinfo.py:121
+msgid "the list admin overview page"
+msgstr "listák adminisztrátori oldalán"
+
+#: Mailman/Cgi/listinfo.py:122
+msgid ""
+" to find the management interface for your list.\n"
+" <p>Send questions or comments to "
+msgstr " kezelhetik listáikat. <p>Kérdéseidet, észrevételeidet címezd ide "
+
+#: Mailman/Cgi/listinfo.py:187
+msgid "Edit Options"
+msgstr "Beállítások szerkesztése"
+
+#: Mailman/Cgi/listinfo.py:194 Mailman/Cgi/options.py:767
+#: Mailman/Cgi/roster.py:111
+msgid "View this page in"
+msgstr "Az oldal nyelve"
+
+#: Mailman/Cgi/options.py:51 Mailman/Cgi/options.py:68
+msgid "CGI script error"
+msgstr "CGI szkript hiba"
+
+#: Mailman/Cgi/options.py:54
+msgid "Invalid options to CGI script."
+msgstr "Érvénytelen CGI szkript kapcsoló"
+
+#: Mailman/Cgi/options.py:96
+msgid "No address given"
+msgstr "Nincs cím megadva"
+
+#: Mailman/Cgi/options.py:108 Mailman/Cgi/options.py:155
+#: Mailman/Cgi/options.py:177
+msgid "No such member: %(safeuser)s."
+msgstr "Nem található %(safeuser)s címmel tag."
+
+#: Mailman/Cgi/options.py:150 Mailman/Cgi/options.py:160
+msgid "The confirmation email has been sent."
+msgstr "A megerõsítésre felszólító levél el lett küldve."
+
+#: Mailman/Cgi/options.py:171 Mailman/Cgi/options.py:183
+#: Mailman/Cgi/options.py:226
+msgid "A reminder of your password has been emailed to you."
+msgstr "Az emlékeztetõ a jelszavadról e-mailben el lett küldve."
+
+#: Mailman/Cgi/options.py:200
+msgid "Authentication failed."
+msgstr "Sikertelen azonosítás"
+
+#: Mailman/Cgi/options.py:232
+msgid "List subscriptions for %(user)s on %(hostname)s"
+msgstr "%(user)s felhasználó listatagságai a(z) %(hostname)s gépen"
+
+#: Mailman/Cgi/options.py:235
+msgid ""
+"Click on a link to visit your options page for the\n"
+" requested mailing list."
+msgstr ""
+"A levelezõlistán lévõ beállításaid megtekintéséhez kattints\n"
+"\tide:"
+
+#: Mailman/Cgi/options.py:284
+msgid "Addresses did not match!"
+msgstr "A címek nem egyeznek!"
+
+#: Mailman/Cgi/options.py:289
+msgid "You are already using that email address"
+msgstr "Jelenleg is ezt az e-mail címet használod."
+
+#: Mailman/Cgi/options.py:301
+msgid ""
+"The new address you requested %(newaddr)s is already a member of the\n"
+"%(listname)s mailing list, however you have also requested a global change "
+"of\n"
+"address. Upon confirmation, any other mailing list containing the address\n"
+"%(user)s will be changed. "
+msgstr ""
+"Az új megadott %(newaddr)s címmel már található tag a(z) %(listname)s\n"
+"levelezõlistán, mivel azonban kérted hogy minden olyan listán, amelynek\n"
+"tagja vagy és ezen a rendszeren mûködik változzon meg a feliratkozási\n"
+"címed ezért azokon a listákon, ahol %(user)s címmel vagy nyílvántartva\n"
+"a változtatás a megerõsítési után sikeresen megtörténik majd."
+
+#: Mailman/Cgi/options.py:310
+msgid "The new address is already a member: %(newaddr)s"
+msgstr "A megadott címmel már van tag a listán: %(newaddr)s"
+
+#: Mailman/Cgi/options.py:316
+msgid "Addresses may not be blank"
+msgstr "Legalább egy címet meg kell adnod."
+
+#: Mailman/Cgi/options.py:328
+msgid "A confirmation message has been sent to %(newaddr)s. "
+msgstr "A megerõsítési értesítés a(z) %(newaddr)s címre el lett küldve."
+
+#: Mailman/Cgi/options.py:337
+msgid "Bad email address provided"
+msgstr "A megadott e-mail cím hibás."
+
+#: Mailman/Cgi/options.py:339
+msgid "Illegal email address provided"
+msgstr "A megadott e-mail cím érvénytelen."
+
+#: Mailman/Cgi/options.py:341
+msgid "%(newaddr)s is already a member of the list."
+msgstr "%(newaddr)s már tagja a listának."
+
+#: Mailman/Cgi/options.py:350
+msgid "Member name successfully changed. "
+msgstr "A listatag neve sikeresen megváltoztatva."
+
+#: Mailman/Cgi/options.py:361
+msgid "Passwords may not be blank"
+msgstr "Kötelezõ megadni jelszót"
+
+#: Mailman/Cgi/options.py:366
+msgid "Passwords did not match!"
+msgstr "A jelszavak nem egyeznek!"
+
+#: Mailman/Cgi/options.py:381 Mailman/Commands/cmd_password.py:79
+#: Mailman/Commands/cmd_password.py:105
+msgid "Password successfully changed."
+msgstr "Jelszó megváltoztatva."
+
+#: Mailman/Cgi/options.py:390
+msgid ""
+"You must confirm your unsubscription request by turning\n"
+" on the checkbox below the <em>Unsubscribe</em> button. You\n"
+" have not been unsubscribed!"
+msgstr ""
+"Meg kell erõsítened a leiratkozási szándékodat a <em>Leiratkozás</em>\n"
+" gomb alatti kapcsoló kipipálásával. Nem lettél törölve a listáról!"
+
+#: Mailman/Cgi/options.py:422
+msgid "Unsubscription results"
+msgstr "Törölve"
+
+#: Mailman/Cgi/options.py:426
+msgid ""
+"Your unsubscription request has been received and\n"
+" forwarded on to the list moderators for approval. You will\n"
+" receive notification once the list moderators have made their\n"
+" decision."
+msgstr ""
+"Leiratkozási kérelmedet megkaptuk és továbbítottuk a lista szerkesztõjéhez\n"
+"jóváhagyásra. A szerkesztõ döntésérõl e-mailben kapsz értesítést."
+
+#: Mailman/Cgi/options.py:431
+msgid ""
+"You have been successfully unsubscribed from the\n"
+" mailing list %(fqdn_listname)s. If you were receiving digest\n"
+" deliveries you may get one more digest. If you have any "
+"questions\n"
+" about your unsubscription, please contact the list owners at\n"
+" %(owneraddr)s."
+msgstr ""
+"Sikeresen leiratkoztál a(z) %(fqdn_listname)s levelezõlistáról.\n"
+"\tHa digest módban kaptad a leveleket, akkor egy utolsó \n"
+"\telküldésre kerül. Bármilyen kérdéssel a leiratkozással kapcsolatban\n"
+"\tnyugodtan a fordulj a lista tulajdonosához ezen a címen:\n"
+"\t%(owneraddr)s"
+
+#: Mailman/Cgi/options.py:582
+msgid ""
+"The list administrator has disabled digest delivery for\n"
+" this list, so your delivery option has not been set. However "
+"your\n"
+" other options have been set successfully."
+msgstr ""
+"A lista adminisztrátora letiltotta a levelek digest-típusú küldését\n"
+" , ezért ezt a küldési módot nem lehet megadni. Azonban a többi\n"
+" változtatás sikeresen el lett mentve."
+
+#: Mailman/Cgi/options.py:586
+msgid ""
+"The list administrator has disabled non-digest delivery\n"
+" for this list, so your delivery option has not been set. "
+"However\n"
+" your other options have been set successfully."
+msgstr ""
+"A lista adminisztrátora letiltotta a lista nem-digest típusú küldését\n"
+" , ezért ezt a küldési módot nem lehet megadni. Azonban a többi\n"
+" változtatás sikeresen el lett mentve."
+
+#: Mailman/Cgi/options.py:590
+msgid "You have successfully set your options."
+msgstr "A kívánt változtatások sikeresen el lettek mentve."
+
+#: Mailman/Cgi/options.py:593
+msgid "You may get one last digest."
+msgstr "Egy utolsó digestet még kapni fogsz."
+
+#: Mailman/Cgi/options.py:662
+msgid "<em>Yes, I really want to unsubscribe</em>"
+msgstr "<em>Igen, tényleg le akarok iratkozni</em>"
+
+#: Mailman/Cgi/options.py:666
+msgid "Change My Password"
+msgstr "Jelszavam megváltoztatása"
+
+#: Mailman/Cgi/options.py:669
+msgid "List my other subscriptions"
+msgstr "Mutasd a többi feliratkozásomat"
+
+#: Mailman/Cgi/options.py:675
+msgid "Email My Password To Me"
+msgstr "Küldd el e-mailben a jelszavamat"
+
+#: Mailman/Cgi/options.py:677
+msgid "password"
+msgstr "jelszó"
+
+#: Mailman/Cgi/options.py:679
+msgid "Log out"
+msgstr "Kilépés"
+
+#: Mailman/Cgi/options.py:681
+msgid "Submit My Changes"
+msgstr "Változtatásaim mentése"
+
+#: Mailman/Cgi/options.py:693
+msgid "days"
+msgstr "nap"
+
+#: Mailman/Cgi/options.py:695
+msgid "day"
+msgstr "nap"
+
+#: Mailman/Cgi/options.py:696
+msgid "%(days)d %(units)s"
+msgstr "%(days)d %(units)s"
+
+#: Mailman/Cgi/options.py:702
+msgid "Change My Address and Name"
+msgstr "Feliratkozási címem és nevem megváltoztatása"
+
+#: Mailman/Cgi/options.py:726
+msgid "<em>No topics defined</em>"
+msgstr "<em>Nincsen témaszûrés</em>"
+
+#: Mailman/Cgi/options.py:734
+msgid ""
+"\n"
+"You are subscribed to this list with the case-preserved address\n"
+"<em>%(cpuser)s</em>."
+msgstr ""
+"\n"
+"Feliratkozásod betûhelyesen a következõ <em>%(cpuser)s</em>."
+
+#: Mailman/Cgi/options.py:748
+msgid "%(realname)s list: member options login page"
+msgstr "%(realname)s lista: listatagsági oldal"
+
+#: Mailman/Cgi/options.py:749
+msgid "email address and "
+msgstr "e-mail címed és "
+
+#: Mailman/Cgi/options.py:751
+msgid "%(realname)s list: member options for user %(user)s"
+msgstr "%(realname)s lista: %(user)s tag beállításai"
+
+#: Mailman/Cgi/options.py:777
+msgid ""
+"In order to change your membership option, you must\n"
+" first log in by giving your %(extra)smembership password in the section\n"
+" below. If you don't remember your membership password, you can have it\n"
+" emailed to you by clicking on the button below. If you just want to\n"
+" unsubscribe from this list, click on the <em>Unsubscribe</em> button and "
+"a\n"
+" confirmation message will be sent to you.\n"
+"\n"
+" <p><strong><em>Important:</em></strong> From this point on, you must "
+"have\n"
+" cookies enabled in your browser, otherwise none of your changes will "
+"take\n"
+" effect.\n"
+" "
+msgstr ""
+"A listatagsági beállításaid megváltoztatásához elõször is be kell lépned\n"
+" a megfelelõ %(extra)sjelszavad megadásával. Ha\n"
+" nem emlékszel a jelszavadra, akkor azt e-mailben lekérheted a lenti "
+"gombra\n"
+" kattintva. Ha csak errõl a listáról akarsz leiratkozni, akkor kattints\n"
+" a <em>Leiratkozás</em> gombra, és e-mailben elküldésre kerül a "
+"leiratkozás\n"
+" megerõsítéséhez szükséges üzenet.\n"
+"\n"
+" <p><strong><em>Fontos:</em></strong> Ettõl az oldaltól engedélyezned "
+"kell\n"
+" a sütik fogadását a böngészõdben, különben semmilyen változtatás nem fog\n"
+" végrehajtódni.\n"
+" "
+
+# In this entry insert a space at the end of string, it will be stripped.
+#: Mailman/Cgi/options.py:791
+msgid "Email address:"
+msgstr "E-mail cím: "
+
+#: Mailman/Cgi/options.py:795
+msgid "Password:"
+msgstr "Jelszó: "
+
+#: Mailman/Cgi/options.py:797
+msgid "Log in"
+msgstr "Bejelentkezés"
+
+#: Mailman/Cgi/options.py:805
+msgid ""
+"By clicking on the <em>Unsubscribe</em> button, a\n"
+" confirmation message will be emailed to you. This message will have a\n"
+" link that you should click on to complete the removal process (you can\n"
+" also confirm by email; see the instructions in the confirmation\n"
+" message)."
+msgstr ""
+"A <em>Leiratkozás</em> gombra kattintva e-mailben a leiratkozás\n"
+" megerõsítéséhez szükséges üzenet kerül elküldésre. A leiratkozás\n"
+" végrehajtásához az üzenetben megadott web címre kell ellátogatni \n"
+" (vagy a megfelelõ e-mailt elküldeni; errõl a levélben lehet \n"
+" részletesen olvasni)."
+
+#: Mailman/Cgi/options.py:813
+msgid "Password reminder"
+msgstr "Jelszó emlékeztetõ"
+
+#: Mailman/Cgi/options.py:817
+msgid ""
+"By clicking on the <em>Remind</em> button, your\n"
+" password will be emailed to you."
+msgstr ""
+"Az <em>Emlékeztetõ</em> gombra kattintva e-mailben elküldésre kerül\n"
+" a jelszavad."
+
+#: Mailman/Cgi/options.py:820
+msgid "Remind"
+msgstr "Emlékeztetõ"
+
+#: Mailman/Cgi/options.py:920
+msgid "<missing>"
+msgstr "<hiányzik>"
+
+#: Mailman/Cgi/options.py:931
+msgid "Requested topic is not valid: %(topicname)s"
+msgstr "A kért témaszûrés nem megfelelõ: %(topicname)s"
+
+#: Mailman/Cgi/options.py:936
+msgid "Topic filter details"
+msgstr "Bõvebben a témák szûrésérõl"
+
+#: Mailman/Cgi/options.py:939
+msgid "Name:"
+msgstr "Neve:"
+
+#: Mailman/Cgi/options.py:941
+msgid "Pattern (as regexp):"
+msgstr "Szûrési feltétel (kifejezésként megadva)"
+
+#: Mailman/Cgi/private.py:61
+msgid "Private Archive Error"
+msgstr "Hiba a privát archívumban"
+
+#: Mailman/Cgi/private.py:62
+msgid "You must specify a list."
+msgstr "Egy listanevet is meg kell adnod."
+
+#: Mailman/Cgi/private.py:99
+msgid "Private Archive Error - %(msg)s"
+msgstr "Privát Archívum Hiba - %(msg)s"
+
+#: Mailman/Cgi/private.py:154
+msgid "Private archive file not found"
+msgstr "Nem található a privát archívum állománya"
+
+#: Mailman/Cgi/rmlist.py:81
+msgid "You're being a sneaky list owner!"
+msgstr "Na-na! Lista tulajoknak nem érhetõ el ez a funkció!"
+
+#: Mailman/Cgi/rmlist.py:119
+msgid "You are not authorized to delete this mailing list"
+msgstr "Nincs jogod a lista törléséhez."
+
+#: Mailman/Cgi/rmlist.py:160
+msgid "Mailing list deletion results"
+msgstr "Levelezõlista törlésének eredménye"
+
+#: Mailman/Cgi/rmlist.py:167
+msgid ""
+"You have successfully deleted the mailing list\n"
+" <b>%(listname)s</b>."
+msgstr ""
+"Sikeresen törölted a következõ levelezõlistát:\n"
+" <b>%(listname)s</b>"
+
+#: Mailman/Cgi/rmlist.py:171
+msgid ""
+"There were some problems deleting the mailing list\n"
+" <b>%(listname)s</b>. Contact your site administrator at %(sitelist)"
+"s\n"
+" for details."
+msgstr ""
+"Hiba történt a(z) <b>%(listname)s</b> levelezõlista törlésekor.\n"
+"Fordulj a rendszer adminisztrátorához a(z) %(sitelist)s címen további\n"
+"információkért."
+
+#: Mailman/Cgi/rmlist.py:188
+msgid "Permanently remove mailing list <em>%(realname)s</em>"
+msgstr "<em>%(realname)s</em> levelezõ lista végleges törlése"
+
+#: Mailman/Cgi/rmlist.py:202
+msgid ""
+"This page allows you as the list owner, to permanent\n"
+" remove this mailing list from the system. <strong>This action is not\n"
+" undoable</strong> so you should undertake it only if you are absolutely\n"
+" sure this mailing list has served its purpose and is no longer "
+"necessary.\n"
+"\n"
+" <p>Note that no warning will be sent to your list members and after "
+"this\n"
+" action, any subsequent messages sent to the mailing list, or any of its\n"
+" administrative addreses will bounce.\n"
+"\n"
+" <p>You also have the option of removing the archives for this mailing "
+"list\n"
+" at this time. It is almost always recommended that you do\n"
+" <strong>not</strong> remove the archives, since they serve as the\n"
+" historical record of your mailing list.\n"
+"\n"
+" <p>For your safety, you will be asked to reconfirm the list password.\n"
+" "
+msgstr ""
+"Ezen az oldalon keresztül mint a lista tulajdonosa képes vagy törölni\n"
+" a levelezõlistát a rendszerrõl. <strong>Ezt a mûveletet nem lehet\n"
+" visszavonni</strong>, ezért csak akkor hajtsd végre, hogy teljes\n"
+" mértékben biztos vagy abban, hogy a listára többé nincs szükség.\n"
+"\n"
+" <p>Fontos, hogy a listatagoknak kerül elküldésre értesítés a lista\n"
+" megszûnésérõl, ezért a lista minden címére küldött további levél\n"
+" vissza fog pattanni.\n"
+"\n"
+" <p>Egyúttal a lista archívumát is tudod most törölni. Az archívum \n"
+" törlését <strong>nem</strong> ajánljuk, mivel az archívum a lista\n"
+" történelmét tartalmazza\n"
+"\n"
+" <p>Elhatározásod megerõsítéséhez még egyszer meg kell adnod a lista\n"
+" jelszavát."
+
+#: Mailman/Cgi/rmlist.py:223
+msgid "List password:"
+msgstr "Lista jelszava:"
+
+#: Mailman/Cgi/rmlist.py:227
+msgid "Also delete archives?"
+msgstr "Töröljem az archívumot is?"
+
+#: Mailman/Cgi/rmlist.py:235
+msgid "<b>Cancel</b> and return to list administration"
+msgstr "<b>Felejtsd el</b>, vissza a lista adminisztrációs oldalára."
+
+#: Mailman/Cgi/rmlist.py:238
+msgid "Delete this list"
+msgstr "Lista törlése"
+
+#: Mailman/Cgi/roster.py:48 Mailman/Cgi/subscribe.py:50
+msgid "Invalid options to CGI script"
+msgstr "Érvénytelen CGI szkript kapcsoló"
+
+#: Mailman/Cgi/roster.py:99
+msgid "%(realname)s roster authentication failed."
+msgstr "%(realname)s listatag azonosításánál hiba történt."
+
+#: Mailman/Cgi/roster.py:127 Mailman/Cgi/roster.py:128
+#: Mailman/Cgi/subscribe.py:49 Mailman/Cgi/subscribe.py:60
+msgid "Error"
+msgstr "Hiba"
+
+#: Mailman/Cgi/subscribe.py:109
+msgid "You must supply a valid email address."
+msgstr "Érvényes e-mail címet kell megadnod."
+
+#: Mailman/Cgi/subscribe.py:122
+msgid "You may not subscribe a list to itself!"
+msgstr "Listát saját magára nem lehet felíratni!"
+
+#: Mailman/Cgi/subscribe.py:131
+msgid "If you supply a password, you must confirm it."
+msgstr "Ha megadtál jelszót, akkor azt meg kell erõsítened."
+
+#: Mailman/Cgi/subscribe.py:133
+msgid "Your passwords did not match."
+msgstr "A megadott jelszavak nem egyeznek."
+
+#: Mailman/Cgi/subscribe.py:167
+msgid ""
+"Your subscription request has been received, and will soon be acted upon.\n"
+"Depending on the configuration of this mailing list, your subscription "
+"request\n"
+"may have to be first confirmed by you via email, or approved by the list\n"
+"moderator. If confirmation is required, you will soon get a confirmation\n"
+"email which contains further instructions."
+msgstr ""
+"Feliratkozási kérelmedet vettük, hamarosan feldolgozzuk.\n"
+"A levelezõlista beállításaitól függõen a feliratkozási kérelmedet vagy\n"
+"neked kell elõször e-mailben vagy a lista szerkesztõjének kell jóváhagynia.\n"
+"Ha megerõsítésed szükséges a feliratkozáshoz, akkor errõl hamarosan\n"
+"e-mailben részletes leírást fogsz kapni."
+
+#: Mailman/Cgi/subscribe.py:181
+msgid ""
+"The email address you supplied is banned from this\n"
+" mailing list. If you think this restriction is erroneous, please\n"
+" contact the list owners at %(listowner)s."
+msgstr ""
+"Az általad megadott e-mail cím a listáról ki van tiltva.\n"
+"Ha úgy gondolod, hogy ez a korlátozás jogtalan, akkor\n"
+"kérlek írj a lista tulajdonosának a következõ címre: %(listowner)s"
+
+#: Mailman/Cgi/subscribe.py:185
+msgid ""
+"The email address you supplied is not valid. (E.g. it must contain an\n"
+"`@'.)"
+msgstr "A megadott e-mail cím nem érvényes. (Pl. tartalmaznia kell `@' jelet.)"
+
+#: Mailman/Cgi/subscribe.py:189
+msgid ""
+"Your subscription is not allowed because the email address you gave is\n"
+"insecure."
+msgstr "Feliratkozásod a nem megfelelõ e-mail címed miatt nem engedélyezett."
+
+#: Mailman/Cgi/subscribe.py:197
+msgid ""
+"Confirmation from your email address is required, to prevent anyone from\n"
+"subscribing you without permission. Instructions are being sent to you at\n"
+"%(email)s. Please note your subscription will not start until you confirm\n"
+"your subscription."
+msgstr ""
+"E-mail címedrõl megerõsítés szükséges még a feliratkozáshoz, nehogy mások\n"
+"tudtod nélkül felírathassanak. Útbaigazítást a(z) %(email)s címre küldtünk.\n"
+"Fontos, hogy feliratkozásod csakis a kérelem megerõsítése után lesz végleges."
+
+#: Mailman/Cgi/subscribe.py:209
+msgid ""
+"Your subscription request was deferred because %(x)s. Your request has "
+"been\n"
+"forwarded to the list moderator. You will receive email informing you of "
+"the\n"
+"moderator's decision when they get to your request."
+msgstr ""
+"Feliratkozásod el lett halasztva, %(x)s indok miatt. Kérésed a lista\n"
+"adminisztrátorához lett továbbítva. A szerkesztõ döntésérõl értesítve\n"
+"leszel."
+
+#: Mailman/Cgi/subscribe.py:216 Mailman/Commands/cmd_confirm.py:60
+msgid "You are already subscribed."
+msgstr "Már fel vagy iratkozva!"
+
+#: Mailman/Cgi/subscribe.py:230
+msgid "Mailman privacy alert"
+msgstr "Értesítés jogosulatlan taglista hozzáférési kísérletrõl"
+
+#: Mailman/Cgi/subscribe.py:231
+msgid ""
+"An attempt was made to subscribe your address to the mailing list\n"
+"%(listaddr)s. You are already subscribed to this mailing list.\n"
+"\n"
+"Note that the list membership is not public, so it is possible that a bad\n"
+"person was trying to probe the list for its membership. This would be a\n"
+"privacy violation if we let them do this, but we didn't.\n"
+"\n"
+"If you submitted the subscription request and forgot that you were already\n"
+"subscribed to the list, then you can ignore this message. If you suspect "
+"that\n"
+"an attempt is being made to covertly discover whether you are a member of "
+"this\n"
+"list, and you are worried about your privacy, then feel free to send a "
+"message\n"
+"to the list administrator at %(listowner)s.\n"
+msgstr ""
+"Az e-mail címeddel megpróbáltak felíratni a(z) %(listaddr)s\n"
+"levelezõlistára, amelynek már tagja vagy.\n"
+"\n"
+"A listatagok névsora nem nyilvános, ezért lehetséges hogy valaki ártó\n"
+"szándékkal próbálta a listatagok névsorát megszerezni. Ezt biztonsági\n"
+"okokból nem engedtük.\n"
+"\n"
+"Ha véletlenül próbáltál már újra feliratkozni olyan listára, amelynek\n"
+"tagja vagy, akkor nyugodtan töröld ezt a levelet. Azonban ha azt\n"
+"gyanítod, hogy valaki jogtalanul szeretné megtudni, hogy ennek a listának\n"
+"tagja vagy-e, akkor nyugodtan értesítsd a lista adminisztrátorát errõl,\n"
+"a következõ címen: %(listowner)s.\n"
+
+#: Mailman/Cgi/subscribe.py:250
+msgid "This list does not support digest delivery."
+msgstr "A listán nincs digest küldés."
+
+#: Mailman/Cgi/subscribe.py:252
+msgid "This list only supports digest delivery."
+msgstr "A listán csak a digest küldés mûködik."
+
+#: Mailman/Cgi/subscribe.py:259
+msgid "You have been successfully subscribed to the %(realname)s mailing list."
+msgstr "Feliratkozásod a(z) %(realname)s listára sikeresen megtörtént."
+
+#: Mailman/Commands/cmd_confirm.py:17
+msgid ""
+"\n"
+" confirm <confirmation-string>\n"
+" Confirm an action. The confirmation-string is required and should "
+"be\n"
+" supplied with in mailback confirmation notice.\n"
+msgstr ""
+"\n"
+" confirm <megerõsítési-azonosító>\n"
+" Valamilyen mûvelet megerõsítése. A megerõsítési-azonosítót mindig\n"
+" meg kell adni, értékét a kiküldõtt értesitõ üzenet tartalmazza.\n"
+
+#: Mailman/Commands/cmd_confirm.py:40 Mailman/Commands/cmd_lists.py:40
+#: Mailman/Commands/cmd_set.py:133 Mailman/Commands/cmd_subscribe.py:69
+#: Mailman/Commands/cmd_unsubscribe.py:52 Mailman/Commands/cmd_who.py:65
+msgid "Usage:"
+msgstr "Használat:"
+
+#: Mailman/Commands/cmd_confirm.py:49
+msgid ""
+"Invalid confirmation string. Note that confirmation strings expire\n"
+"approximately %(days)s days after the initial subscription request. If "
+"your\n"
+"confirmation has expired, please try to re-submit your original request or\n"
+"message."
+msgstr ""
+"Érvénytelen megerõsítési azonosító. Fontos, hogy a\n"
+"megerõsítési azonosító annak kérelmezése után %(days)s nappal lejár.\n"
+"Ha a megerõsítési idõszak letelt, akkor újra meg kell próbálni a "
+"feliratkozást."
+
+#: Mailman/Commands/cmd_confirm.py:55
+msgid "Your request has been forwarded to the list moderator for approval."
+msgstr "Kérésed a lista szerkesztõjéhez lett továbbítva jóváhagyásra."
+
+#: Mailman/Commands/cmd_confirm.py:63
+msgid ""
+"You are not current a member. Have you already unsubscribed or changed\n"
+"your email address?"
+msgstr ""
+"Jelenleg nem vagy listatag. Nem lehet, hogy már leiratkoztál vagy\n"
+"megváltoztattad az e-mail címedet?"
+
+#: Mailman/Commands/cmd_confirm.py:73
+msgid "Confirmation succeeded"
+msgstr "Sikeresen megerõsítve"
+
+#: Mailman/Commands/cmd_echo.py:17
+msgid ""
+"\n"
+" echo [args]\n"
+" Simply echo an acknowledgement. Args are echoed back unchanged.\n"
+msgstr ""
+"\n"
+" echo [paraméter]\n"
+" Egyszerûen visszaküldi a megérkezett parancsot. A paraméterben\n"
+" megadott szöveget változatlanul kiírja.\n"
+
+#: Mailman/Commands/cmd_end.py:17
+msgid ""
+"\n"
+" end\n"
+" Stop processing commands. Use this if your mail program "
+"automatically\n"
+" adds a signature file.\n"
+msgstr ""
+"\n"
+" end\n"
+" Leállítja a parancsok értelmezését. Hasznos, ha a levelezésedkor\n"
+" automatikusan más információt (pl. aláírást) is beszúr a levelezõ-\n"
+" programod.\n"
+
+#: Mailman/Commands/cmd_help.py:17
+msgid ""
+"\n"
+" help\n"
+" Print this help message.\n"
+msgstr ""
+"\n"
+" help\n"
+" Ezt az üzenetet küldi el.\n"
+
+#: Mailman/Commands/cmd_help.py:47
+msgid "You can access your personal options via the following url:"
+msgstr ""
+"A listatagsági beállításaidat a következõ címen is megtekintheted, "
+"módosíthatod:"
+
+#: Mailman/Commands/cmd_info.py:17
+msgid ""
+"\n"
+" info\n"
+" Get information about this mailing list.\n"
+msgstr ""
+"\n"
+" info\n"
+" A listáról rövid leírást ad.\n"
+
+#: Mailman/Commands/cmd_info.py:39 Mailman/Commands/cmd_lists.py:62
+msgid "n/a"
+msgstr "n/a"
+
+#: Mailman/Commands/cmd_info.py:44
+msgid "List name: %(listname)s"
+msgstr "Lista neve: %(listname)s"
+
+#: Mailman/Commands/cmd_info.py:45
+msgid "Description: %(description)s"
+msgstr "Leírás: %(description)s"
+
+#: Mailman/Commands/cmd_info.py:46
+msgid "Postings to: %(postaddr)s"
+msgstr "Lista címe: %(postaddr)s"
+
+#: Mailman/Commands/cmd_info.py:47
+msgid "List Helpbot: %(requestaddr)s"
+msgstr "Lista súgó: %(requestaddr)s"
+
+#: Mailman/Commands/cmd_info.py:48
+msgid "List Owners: %(owneraddr)s"
+msgstr "Lista tulajdonosok: %(owneraddr)s"
+
+#: Mailman/Commands/cmd_info.py:49
+msgid "More information: %(listurl)s"
+msgstr "További információk: %(listurl)s"
+
+#: Mailman/Commands/cmd_join.py:17
+msgid "The `join' command is synonymous with `subscribe'.\n"
+msgstr "A `join' helyett a `subscribe' parancs is használható.\n"
+
+#: Mailman/Commands/cmd_leave.py:17
+msgid "The `leave' command is synonymous with `unsubscribe'.\n"
+msgstr "A `leave' helyett az `unsubscribe' parancs is használható.\n"
+
+#: Mailman/Commands/cmd_lists.py:17
+msgid ""
+"\n"
+" lists\n"
+" See a list of the public mailing lists on this GNU Mailman server.\n"
+msgstr ""
+"\n"
+" lists\n"
+" Felsorolja ezen a GNU Mailman rendszeren mûködõ nyilvános\n"
+" levelezõlistákat.\n"
+
+#: Mailman/Commands/cmd_lists.py:44
+msgid "Public mailing lists at %(hostname)s:"
+msgstr "Nyilvános levelezõlisták a(z) %(hostname)s gépen:"
+
+#: Mailman/Commands/cmd_lists.py:66
+msgid "%(i)3d. List name: %(realname)s"
+msgstr "%(i)3d. Lista neve: %(realname)s"
+
+#: Mailman/Commands/cmd_lists.py:67
+msgid " Description: %(description)s"
+msgstr " Leírás: %(description)s"
+
+#: Mailman/Commands/cmd_lists.py:68
+msgid " Requests to: %(requestaddr)s"
+msgstr " Request címe: %(requestaddr)s"
+
+#: Mailman/Commands/cmd_password.py:17
+msgid ""
+"\n"
+" password [<oldpassword> <newpassword>] [address=<address>]\n"
+" Retrieve or change your password. With no arguments, this returns\n"
+" your current password. With arguments <oldpassword> and "
+"<newpassword>\n"
+" you can change your password.\n"
+"\n"
+" If you're posting from an address other than your membership "
+"address,\n"
+" specify your membership address with `address=<address>' (no "
+"brackets\n"
+" around the email address, and no quotes!). Note that in this case "
+"the\n"
+" response is always sent to the subscribed address.\n"
+msgstr ""
+"\n"
+" password [<régijelszó> <újjelszó>] [address=<cím>]\n"
+" Jelszavad lekérdezéséhez vagy megváltoztatásához használandó\n"
+" parancs. Ha nem adsz meg paramétereket, akkor lekérdezi az aktuális\n"
+" jelszavadat. <régijelszó> és <újjelszó> paraméterekkel a "
+"jelszavadat\n"
+" változtathatod meg.\n"
+" \n"
+" Ha nem a listán megadott e-mail címedrõl küldött levéllel szeretnéd\n"
+" a jelszavadat megváltoztatni, akkor külön meg kell még adnod az\n"
+" `address=<cím>' paramétert is (természetesen aposztrófok, zárójelek\n"
+" nélkül). Fontos tudnod, hogy ez esetben is a listán megadott "
+"címedre\n"
+" kerül elküldésre a parancs kimenete.\n"
+
+#: Mailman/Commands/cmd_password.py:51 Mailman/Commands/cmd_password.py:64
+msgid "Your password is: %(password)s"
+msgstr "Jelszavad a következõ: %(password)s"
+
+#: Mailman/Commands/cmd_password.py:55 Mailman/Commands/cmd_password.py:68
+#: Mailman/Commands/cmd_password.py:91 Mailman/Commands/cmd_password.py:117
+#: Mailman/Commands/cmd_set.py:149 Mailman/Commands/cmd_set.py:219
+msgid "You are not a member of the %(listname)s mailing list"
+msgstr "Nem vagy tagja a(z) %(listname)s levelezõlistának."
+
+#: Mailman/Commands/cmd_password.py:81 Mailman/Commands/cmd_password.py:107
+msgid ""
+"You did not give the correct old password, so your password has not been\n"
+"changed. Use the no argument version of the password command to retrieve "
+"your\n"
+"current password, then try again."
+msgstr ""
+"Régi jelszónak nem a megfelelõ jelszót adta meg, ezért nem sikerült meg-\n"
+"változtatni a jelszavadat. Jelenlegi jelszavad lekérdezéséhez paraméter\n"
+"nélkül használd a `password' parancsot, majd próbálkozz újra a jelszó\n"
+"módosítással."
+
+#: Mailman/Commands/cmd_password.py:85 Mailman/Commands/cmd_password.py:111
+msgid ""
+"\n"
+"Usage:"
+msgstr ""
+"\n"
+"Használat:"
+
+#: Mailman/Commands/cmd_remove.py:17
+msgid "The `remove' command is synonymous with `unsubscribe'.\n"
+msgstr "A `remove' helyett az `unsubscribe' parancs is használható.\n"
+
+#: Mailman/Commands/cmd_set.py:26
+msgid ""
+"\n"
+" set ...\n"
+" Set or view your membership options.\n"
+"\n"
+" Use `set help' (without the quotes) to get a more detailed list of "
+"the\n"
+" options you can change.\n"
+"\n"
+" Use `set show' (without the quotes) to view your current option\n"
+" settings.\n"
+msgstr ""
+"\n"
+" set ...\n"
+" Módosíthatod vagy megtekintheted a listatagsági beállításaidat.\n"
+"\n"
+" A `set help' paranccsal (aposztrófok nélkül) az alkalmazható\n"
+" parancsokról kapsz egy részletes ismertetõt.\n"
+"\n"
+" Jelenlegi beállításaidat megtekinthetd a `set show' paranccsal\n"
+" (aposztrófok nélkül).\n"
+
+#: Mailman/Commands/cmd_set.py:37
+msgid ""
+"\n"
+" set help\n"
+" Show this detailed help.\n"
+"\n"
+" set show [address=<address>]\n"
+" View your current option settings. If you're posting from an "
+"address\n"
+" other than your membership address, specify your membership address\n"
+" with `address=<address>' (no brackets around the email address, and "
+"no\n"
+" quotes!).\n"
+"\n"
+" set authenticate <password> [address=<address>]\n"
+" To set any of your options, you must include this command first, "
+"along\n"
+" with your membership password. If you're posting from an address\n"
+" other than your membership address, specify your membership address\n"
+" with `address=<address>' (no brackets around the email address, and "
+"no\n"
+" quotes!).\n"
+"\n"
+" set ack on\n"
+" set ack off\n"
+" When the `ack' option is turned on, you will receive an\n"
+" acknowledgement message whenever you post a message to the list.\n"
+"\n"
+" set digest plain\n"
+" set digest mime\n"
+" set digest off\n"
+" When the `digest' option is turned off, you will receive postings\n"
+" immediately when they are posted. Use `set digest plain' if "
+"instead\n"
+" you want to receive postings bundled into a plain text digest\n"
+" (i.e. RFC 1153 digest). Use `set digest mime' if instead you want "
+"to\n"
+" receive postings bundled together into a MIME digest.\n"
+"\n"
+" set delivery on\n"
+" set delivery off\n"
+" Turn delivery on or off. This does not unsubscribe you, but "
+"instead\n"
+" tells Mailman not to deliver messages to you for now. This is "
+"useful\n"
+" if you're going on vacation. Be sure to use `set delivery on' when\n"
+" you return from vacation!\n"
+"\n"
+" set myposts on\n"
+" set myposts off\n"
+" Use `set myposts off' to not receive copies of messages you post to\n"
+" the list. This has no effect if you're receiving digests.\n"
+"\n"
+" set hide on\n"
+" set hide off\n"
+" Use `set hide on' to conceal your email address when people request\n"
+" the membership list.\n"
+"\n"
+" set duplicates on\n"
+" set duplicates off\n"
+" Use `set duplicates off' if you want Mailman to not send you "
+"messages\n"
+" if your address is explicitly mentioned in the To: or Cc: fields of\n"
+" the message. This can reduce the number of duplicate postings you\n"
+" will receive.\n"
+"\n"
+" set reminders on\n"
+" set reminders off\n"
+" Use `set reminders off' if you want to disable the monthly password\n"
+" reminder for this mailing list.\n"
+msgstr ""
+"\n"
+" set help\n"
+" Elküldi ezt a részletes leírást a parancsokról.\n"
+"\n"
+" set show [address=<cím>]\n"
+" Megmutatja a jelenlegi beállításaidat. Ha a listán beállított "
+"címedtõl\n"
+" eltérõ címmel küldenéd a beállításokat lekérdezõ levelet, akkor add\n"
+" meg az `address=<cím>' paraméterben (zárójelek, aposztrófok nélkül)\n"
+" a listán megadott e-mail címedet.\n"
+"\n"
+" set authenticate <jelszó> [address=<cím>]\n"
+" Bármelyik beállításod megváltoztatásához legelõször ezt a parancsot\n"
+" kell megadnod a listán használt jelszavaddal. Ha a listán "
+"beállított\n"
+" címedtõl eltérõ címmel küldenéd a beállításokat módosító levelet,\n"
+" akkor add meg az `address=<cím>' paraméterben (zárójelek, "
+"aposztrófok\n"
+" nélkül) a listán megadott e-mail címedet.\n"
+"\n"
+" set ack on\n"
+" set ack off\n"
+" Az `ack' (nyugta) opcó beállításával minden egyes sikeresen a\n"
+" listára beküldött leveledrõl értesítést kapsz.\n"
+"\n"
+" set digest plain\n"
+" set digest mime\n"
+" set digest off\n"
+" A `digest' opció kikapcsolásával a leveleket beküldésük után\n"
+" azonnal megkapod. Ha a listára érkezõ leveleket egybefûzve,\n"
+" sima szöveges formátumban (RFC 1153 digest) szeretnéd megkapni,\n"
+" akkor használd a `set digest plain' parancsot. A `set digest mime'\n"
+" paranccsal a leveleket egybefûzve, de MIME formátumban\n"
+" kapod meg.\n"
+"\n"
+" set delivery on\n"
+" set delivery off\n"
+" Levélküldés be- vagy kikapcsolása. Kikapcsoláskor nem iratkozol le\n"
+" a listáról, de a Mailman nem továbbítja neked a listára érkezõ\n"
+" leveleket. A beállítást akkor érdemes használni, ha pl. "
+"szabadságra\n"
+" megyünk. Fontos, hogy ha újból szeretnénk a leveleket megkapni,\n"
+" el ne felejtsük megadni a `set delivery on' parancsot.\n"
+"\n"
+" set myposts on\n"
+" set myposts off\n"
+" A `set myposts off' paranccsal a listára küldött leveleink "
+"másolatát\n"
+" nem kapjuk meg. Ha digest formátumban kértük a leveleket, akkor a\n"
+" parancsnak nincsen hatása.\n"
+"\n"
+" set hide on\n"
+" set hide off\n"
+" A `set hide on' paranccsal a címünk nem fog megjelenni a listatagok\n"
+" névsorában.\n"
+"\n"
+" set duplicates on\n"
+" set duplicates off\n"
+" Ha a címünket külön még megadták a levél To: vagy Cc: fejlécének\n"
+" egyikében, akkor a `set duplicates off' parancs hatására a Mailman\n"
+" nem küldi el nekünk még egy példányban a levelet. Ezzel csökkenteni\n"
+" lehet azon levelek számát, ahol címzettként többször szerepelünk.\n"
+"\n"
+" set reminders on\n"
+" set reminders off\n"
+" A `set reminders off' parancs hatására nem kapunk a listáról "
+"havonta\n"
+" jelszóemlékeztetõ-értesítést.\n"
+
+#: Mailman/Commands/cmd_set.py:122
+msgid "Bad set command: %(subcmd)s"
+msgstr "Hibásan megadott set parancs: %(subcmd)s"
+
+#: Mailman/Commands/cmd_set.py:151
+msgid "Your current option settings:"
+msgstr "Jelenlegi beállításaid:"
+
+#: Mailman/Commands/cmd_set.py:153 Mailman/Commands/cmd_set.py:191
+#: Mailman/Commands/cmd_set.py:194 Mailman/Commands/cmd_set.py:198
+#: Mailman/Commands/cmd_set.py:202
+msgid "off"
+msgstr "kikapcsolva"
+
+#: Mailman/Commands/cmd_set.py:153 Mailman/Commands/cmd_set.py:191
+#: Mailman/Commands/cmd_set.py:194 Mailman/Commands/cmd_set.py:198
+#: Mailman/Commands/cmd_set.py:202
+msgid "on"
+msgstr "bekapcsolva"
+
+#: Mailman/Commands/cmd_set.py:154
+msgid " ack %(onoff)s"
+msgstr " ack %(onoff)s"
+
+#: Mailman/Commands/cmd_set.py:160
+msgid " digest plain"
+msgstr " sima digest"
+
+#: Mailman/Commands/cmd_set.py:162
+msgid " digest mime"
+msgstr " mime digest"
+
+#: Mailman/Commands/cmd_set.py:164
+msgid " digest off"
+msgstr " digest kikapcsolva"
+
+#: Mailman/Commands/cmd_set.py:169
+msgid "delivery on"
+msgstr "delivery bekapcsolva"
+
+#: Mailman/Commands/cmd_set.py:171 Mailman/Commands/cmd_set.py:174
+#: Mailman/Commands/cmd_set.py:177 Mailman/Commands/cmd_set.py:181
+msgid "delivery off"
+msgstr "delivery kikapcsolva"
+
+#: Mailman/Commands/cmd_set.py:172
+msgid "by you"
+msgstr "általad"
+
+#: Mailman/Commands/cmd_set.py:175
+msgid "by the admin"
+msgstr "a lista admin által"
+
+#: Mailman/Commands/cmd_set.py:178
+msgid "due to bounces"
+msgstr "visszapattanás miatt"
+
+#: Mailman/Commands/cmd_set.py:186
+msgid " %(status)s (%(how)s on %(date)s)"
+msgstr " %(status)s (%(how)s %(date)s napon)"
+
+#: Mailman/Commands/cmd_set.py:192
+msgid " myposts %(onoff)s"
+msgstr " myposts %(onoff)s"
+
+#: Mailman/Commands/cmd_set.py:195
+msgid " hide %(onoff)s"
+msgstr " hide %(onoff)s"
+
+#: Mailman/Commands/cmd_set.py:199
+msgid " duplicates %(onoff)s"
+msgstr " duplicates %(onoff)s"
+
+#: Mailman/Commands/cmd_set.py:203
+msgid " reminders %(onoff)s"
+msgstr " reminders %(onoff)s"
+
+#: Mailman/Commands/cmd_set.py:224
+msgid "You did not give the correct password"
+msgstr "Hibás jelszót adtál meg."
+
+#: Mailman/Commands/cmd_set.py:236 Mailman/Commands/cmd_set.py:283
+msgid "Bad argument: %(arg)s"
+msgstr "Hibás paraméterek: %(arg)s"
+
+#: Mailman/Commands/cmd_set.py:241 Mailman/Commands/cmd_set.py:261
+msgid "Not authenticated"
+msgstr "Sikertelen azonosítás"
+
+#: Mailman/Commands/cmd_set.py:254
+msgid "ack option set"
+msgstr "ack beállítás módosítva"
+
+#: Mailman/Commands/cmd_set.py:286
+msgid "digest option set"
+msgstr "digest beállítás módosítva"
+
+#: Mailman/Commands/cmd_set.py:298
+msgid "delivery option set"
+msgstr "delivery beállítás módosítva"
+
+#: Mailman/Commands/cmd_set.py:310
+msgid "myposts option set"
+msgstr "myposts beállítás módosítva"
+
+#: Mailman/Commands/cmd_set.py:321
+msgid "hide option set"
+msgstr "hide beállítás módosítva"
+
+#: Mailman/Commands/cmd_set.py:333
+msgid "duplicates option set"
+msgstr "duplicates beállítás módosítva"
+
+#: Mailman/Commands/cmd_set.py:345
+msgid "reminder option set"
+msgstr "reminder beállítás módosítva"
+
+#: Mailman/Commands/cmd_stop.py:17
+msgid "stop is synonymous with the end command.\n"
+msgstr "stop helyett az end parancs is használható.\n"
+
+#: Mailman/Commands/cmd_subscribe.py:17
+msgid ""
+"\n"
+" subscribe [password] [digest|nodigest] [address=<address>]\n"
+" Subscribe to this mailing list. Your password must be given to\n"
+" unsubscribe or change your options, but if you omit the password, "
+"one\n"
+" will be generated for you. You may be periodically reminded of "
+"your\n"
+" password.\n"
+"\n"
+" The next argument may be either: `nodigest' or `digest' (no "
+"quotes!).\n"
+" If you wish to subscribe an address other than the address you sent\n"
+" this request from, you may specify `address=<address>' (no brackets\n"
+" around the email address, and no quotes!)\n"
+msgstr ""
+"\n"
+" subscribe [jelszó] [digest|nodigest] [address=<cím>]\n"
+" Feliratkozás erre a levelezõlistára. Az megadott jelszót "
+"használhatod\n"
+" késõbb a leiratkozáshoz, vagy listatagsági beállításaid "
+"módosításához.\n"
+" Ha nem adsz meg jelszót, akkor a program automatikusan létrehoz\n"
+" neked egyet.\n"
+"\n"
+" A következõ paraméter érteke `nodigest' vagy `digest' (aposztrófok\n"
+" nélkül) lehet.\n"
+" Ha a jelenlegitõl eltérõ e-mail címmel szeretnél feliratkozni, "
+"akkor\n"
+" add meg az `address=<cím>' paramétert (aposztrófok és zárójelek\n"
+" nélkül).\n"
+
+#: Mailman/Commands/cmd_subscribe.py:62
+msgid "Bad digest specifier: %(arg)s"
+msgstr "Hibás digest kapcsoló: %(arg)s"
+
+#: Mailman/Commands/cmd_subscribe.py:84
+msgid "No valid address found to subscribe"
+msgstr "A feliratkozáshoz nem található érvényes e-mail cím"
+
+#: Mailman/Commands/cmd_subscribe.py:102
+msgid ""
+"The email address you supplied is banned from this mailing list.\n"
+"If you think this restriction is erroneous, please contact the list\n"
+"owners at %(listowner)s."
+msgstr ""
+"A megadott e-mail cím ki van tiltva errõl a levelezõlistáról.\n"
+"Ha úgy gondolod, hogy ez a korlátozás jogtalan, akkor kérlek\n"
+"írj a lista tulajdonosának a következõ címre: %(listowner)s"
+
+#: Mailman/Commands/cmd_subscribe.py:108
+msgid ""
+"Mailman won't accept the given email address as a valid address.\n"
+"(E.g. it must have an @ in it.)"
+msgstr ""
+"A Mailman szerint a megadott cím nem érvényes e-mail cím. (Van benne @ ???)"
+"<p>"
+
+#: Mailman/Commands/cmd_subscribe.py:113
+msgid ""
+"Your subscription is not allowed because\n"
+"the email address you gave is insecure."
+msgstr ""
+"Feliratkozásod a nem megfelelõ e-mail címed miatt nem engedélyezett.<p>"
+
+#: Mailman/Commands/cmd_subscribe.py:118
+msgid "You are already subscribed!"
+msgstr "Már fel vagy iratkozva!"
+
+#: Mailman/Commands/cmd_subscribe.py:122
+msgid "No one can subscribe to the digest of this list!"
+msgstr "Digest-típusú feliratkozás nem lehetséges ezen a listán!"
+
+#: Mailman/Commands/cmd_subscribe.py:125
+msgid "This list only supports digest subscriptions!"
+msgstr "A lista csak digest típusú feliratkozást fogad el!"
+
+#: Mailman/Commands/cmd_subscribe.py:131
+msgid ""
+"Your subscription request has been forwarded to the list administrator\n"
+"at %(listowner)s for review."
+msgstr ""
+"Feliratkozási kérelmed a lista adminisztrátorához, %(listowner)s\n"
+"címre lett továbbítva megerõsítéshez."
+
+#: Mailman/Commands/cmd_subscribe.py:136
+msgid "Subscription request succeeded."
+msgstr "Feliratkozási kérelem megerõsítve."
+
+#: Mailman/Commands/cmd_unsubscribe.py:17
+msgid ""
+"\n"
+" unsubscribe [password] [address=<address>]\n"
+" Unsubscribe from the mailing list. If given, your password must "
+"match\n"
+" your current password. If omitted, a confirmation email will be "
+"sent\n"
+" to the unsubscribing address. If you wish to unsubscribe an address\n"
+" other than the address you sent this request from, you may specify\n"
+" `address=<address>' (no brackets around the email address, and no\n"
+" quotes!)\n"
+msgstr ""
+"\n"
+" unsubscribe [jelszó] [address=<cím>]\n"
+" Leiratkozás a listáról. Ha jelszót is megadunk, akkor annak "
+"egyeznie\n"
+" kell az aktuális jelszóval a sikeres leiratkozáshoz. Ha nem adunk "
+"meg\n"
+" jelszót, akkor egy leiratkozást megerõsítõ e-mail küld el a program "
+"a\n"
+" listatagsági címre. Ha az éppen használt e-mail címtõl eltérõ "
+"címmel\n"
+" szeretnénk leiratkozni a listáról, akkor meg kell adni az\n"
+" `address=<cím>' paramétert is (természetesen aposztrófok és "
+"zárójelek\n"
+" nélkül).\n"
+
+#: Mailman/Commands/cmd_unsubscribe.py:62
+msgid "%(address)s is not a member of the %(listname)s mailing list"
+msgstr "%(address)s nem tagja a(z) %(listname)s levelezõlistának"
+
+#: Mailman/Commands/cmd_unsubscribe.py:69
+msgid ""
+"Your unsubscription request has been forwarded to the list administrator "
+"for\n"
+"approval."
+msgstr ""
+"Leiratkozási kérelmed a lista adminisztrátorához lett továbbítva,\n"
+"megerõsítéshez."
+
+#: Mailman/Commands/cmd_unsubscribe.py:84
+msgid "You gave the wrong password"
+msgstr "Hibás jelszót adtál meg."
+
+#: Mailman/Commands/cmd_unsubscribe.py:87
+msgid "Unsubscription request succeeded."
+msgstr "Leiratkozási kérelem megerõsítve."
+
+#: Mailman/Commands/cmd_who.py:29
+msgid ""
+"\n"
+" who\n"
+" See everyone who is on this mailing list.\n"
+msgstr ""
+"\n"
+" who\n"
+" A levelezõlista tagjainak névsorát adja meg.\n"
+
+#: Mailman/Commands/cmd_who.py:34
+msgid ""
+"\n"
+" who password [address=<address>]\n"
+" See everyone who is on this mailing list. The roster is limited to\n"
+" list members only, and you must supply your membership password to\n"
+" retrieve it. If you're posting from an address other than your\n"
+" membership address, specify your membership address with\n"
+" `address=<address>' (no brackets around the email address, and no\n"
+" quotes!)\n"
+msgstr ""
+"\n"
+" who jelszó [address=<cím>]\n"
+" Megmutatja a tagok névsorát ezen a levelezõlistán. A névsort csak\n"
+" a listatagok kérhetik le, ezért meg kell adnod a listán beállított\n"
+" jelszavadat. Ha nem a listán megadott címedtõl eltérõ címrõl "
+"szeretnéd\n"
+" lekérni a névsort, akkor külön meg kell adnod a listán használt e-"
+"mail\n"
+" címedet az `address=<cím>' paraméterrel (zárójelek és aposztrófok\n"
+" nélkül add meg a címet).\n"
+
+#: Mailman/Commands/cmd_who.py:44
+msgid ""
+"\n"
+" who password\n"
+" See everyone who is on this mailing list. The roster is limited to\n"
+" list administrators and moderators only; you must supply the list\n"
+" admin or moderator password to retrieve the roster.\n"
+msgstr ""
+"\n"
+" who jelszó\n"
+" Megmutatja a tagok névsorát ezen a levelezõlistán. A névsort csak\n"
+" a lista adminisztrátorok és szerkesztõk kérhetik le; ezért meg kell\n"
+" adnod vagy az adminisztrátori vagy a szerkesztõi jelszót.\n"
+
+#: Mailman/Commands/cmd_who.py:110
+msgid "You are not allowed to retrieve the list membership."
+msgstr "A tagok névsorát nem tekintheted meg."
+
+#: Mailman/Commands/cmd_who.py:116
+msgid "This list has no members."
+msgstr "A listára még senkise iratkozott fel."
+
+#: Mailman/Commands/cmd_who.py:129
+msgid "Non-digest (regular) members:"
+msgstr "Nem-digest (rendes) listatagok:"
+
+#: Mailman/Commands/cmd_who.py:132
+msgid "Digest members:"
+msgstr "Digest listatagok:"
+
+#: Mailman/Defaults.py:1204
+msgid "Traditional Chinese"
+msgstr "Hagyományos kínai"
+
+#: Mailman/Defaults.py:1205
+msgid "Czech"
+msgstr "Cseh"
+
+#: Mailman/Defaults.py:1206
+msgid "German"
+msgstr "Német"
+
+#: Mailman/Defaults.py:1207
+msgid "English (USA)"
+msgstr "Angol (USA)"
+
+#: Mailman/Defaults.py:1208
+msgid "Spanish (Spain)"
+msgstr "Spanyol"
+
+#: Mailman/Defaults.py:1209
+msgid "Estonian"
+msgstr "Észt"
+
+#: Mailman/Defaults.py:1210
+msgid "Finnish"
+msgstr "Finn"
+
+#: Mailman/Defaults.py:1211
+msgid "French"
+msgstr "Francia"
+
+#: Mailman/Defaults.py:1212
+msgid "Simplified Chinese"
+msgstr "Egyszerûsített kínai"
+
+#: Mailman/Defaults.py:1213
+msgid "Hungarian"
+msgstr "Magyar"
+
+#: Mailman/Defaults.py:1214
+msgid "Italian"
+msgstr "Olasz"
+
+#: Mailman/Defaults.py:1215
+msgid "Japanese"
+msgstr "Japán"
+
+#: Mailman/Defaults.py:1216
+msgid "Korean"
+msgstr "Koreai"
+
+#: Mailman/Defaults.py:1217
+msgid "Lithuanian"
+msgstr ""
+
+#: Mailman/Defaults.py:1218
+msgid "Dutch"
+msgstr "Holland"
+
+#: Mailman/Defaults.py:1219
+msgid "Norwegian"
+msgstr "Norvég"
+
+#: Mailman/Defaults.py:1220
+msgid "Portuguese (Brazil)"
+msgstr "Portugál (Brazil)"
+
+#: Mailman/Defaults.py:1221
+msgid "Russian"
+msgstr "Orosz"
+
+#: Mailman/Defaults.py:1222
+msgid "Swedish"
+msgstr "Svéd"
+
+#: Mailman/Deliverer.py:43
+msgid ""
+"Note: Since this is a list of mailing lists, administrative\n"
+"notices like the password reminder will be sent to\n"
+"your membership administrative address, %(addr)s."
+msgstr ""
+"Megjegyzés: Mivel a listán más levelezõlisták címei vannak, ezért\n"
+"az adminisztrációs üzenetek, mint például a jelszó\n"
+"emlékeztetõ a beállított adminisztrációs címre lesznek elküldve, %(addr)s."
+
+#: Mailman/Deliverer.py:62
+msgid " (Digest mode)"
+msgstr " (Digest mód)"
+
+#: Mailman/Deliverer.py:68
+msgid "Welcome to the \"%(realname)s\" mailing list%(digmode)s"
+msgstr "Üdvözlet a(z) \"%(realname)s\" levelezõlistán%(digmode)s"
+
+#: Mailman/Deliverer.py:77
+msgid "You have been unsubscribed from the %(realname)s mailing list"
+msgstr "Sikeresen leiratkoztál a(z) %(realname)s levelezõlistáról"
+
+#: Mailman/Deliverer.py:104
+msgid "%(listfullname)s mailing list reminder"
+msgstr "%(listfullname)s levelezõlista emlékeztetõ"
+
+#: Mailman/Errors.py:114
+msgid "For some unknown reason"
+msgstr "Ismeretlen indok miatt"
+
+#: Mailman/Errors.py:120 Mailman/Errors.py:143
+msgid "Your message was rejected"
+msgstr "Üzeneted vissza lett utasítva"
+
+#: Mailman/Gui/Archive.py:25
+msgid "Archiving Options"
+msgstr "Archiválási beállítások"
+
+#: Mailman/Gui/Archive.py:31
+msgid "List traffic archival policies."
+msgstr "Lista archívumának beállításai."
+
+#: Mailman/Gui/Archive.py:34
+msgid "Archive messages?"
+msgstr "Archiváljam az üzeneteket?"
+
+#: Mailman/Gui/Archive.py:36
+msgid "private"
+msgstr "privát"
+
+#: Mailman/Gui/Archive.py:36
+msgid "public"
+msgstr "nyilvános"
+
+#: Mailman/Gui/Archive.py:37
+msgid "Is archive file source for public or private archival?"
+msgstr "Az archívum forrásállománya nyilvános vagy privát archívumhoz kell?"
+
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Monthly"
+msgstr "Havonta"
+
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Quarterly"
+msgstr "Negyedévente"
+
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Yearly"
+msgstr "Évente"
+
+#: Mailman/Gui/Archive.py:41 Mailman/Gui/Digest.py:79
+msgid "Daily"
+msgstr "Naponta"
+
+#: Mailman/Gui/Archive.py:41 Mailman/Gui/Digest.py:79
+msgid "Weekly"
+msgstr "Hetente"
+
+#: Mailman/Gui/Archive.py:43
+msgid "How often should a new archive volume be started?"
+msgstr "Milyen gyakran kell új archívum kötetet kezdeni?"
+
+#: Mailman/Gui/Autoresponse.py:31
+msgid "Auto-responder"
+msgstr "Automatikus válaszok"
+
+#: Mailman/Gui/Autoresponse.py:39
+msgid ""
+"Auto-responder characteristics.<p>\n"
+"\n"
+"In the text fields below, string interpolation is performed with\n"
+"the following key/value substitutions:\n"
+"<p><ul>\n"
+" <li><b>listname</b> - <em>gets the name of the mailing list</em>\n"
+" <li><b>listurl</b> - <em>gets the list's listinfo URL</em>\n"
+" <li><b>requestemail</b> - <em>gets the list's -request address</em>\n"
+" <li><b>owneremail</b> - <em>gets the list's -owner address</em>\n"
+"</ul>\n"
+"\n"
+"<p>For each text field, you can either enter the text directly into the "
+"text\n"
+"box, or you can specify a file on your local system to upload as the text."
+msgstr ""
+"Automatikus válaszok beállításai.<p>\n"
+"\n"
+"A szövegmezõkben a következõkben ismertetett változó-érték\n"
+"helyettesítések fognak történni:\n"
+"<p><ul>\n"
+" <li><b>listname</b> - <em>a levelezõlista nevét adja meg</em>\n"
+" <li><b>listurl</b> - <em>a levelezõlista információs lapjának URL-jét "
+"adja meg</em>\n"
+" <li><b>requestemail</b> - <em>a levelezõlista -request címét adja meg</"
+"em>\n"
+" <li><b>owneremail</b> - <em>a levelezõlista -owner címét adja meg</em>\n"
+"</ul>\n"
+"\n"
+"<p>Mindegyik szövegdobozban megadhatod a kívánt szöveget, vagy akár az "
+"elõre\n"
+"elkészített szöveget létezõ állományból beolvastathatod."
+
+#: Mailman/Gui/Autoresponse.py:55
+msgid ""
+"Should Mailman send an auto-response to mailing list\n"
+" posters?"
+msgstr ""
+"Küldjön a Mailman automatikus választ a \n"
+" listára küldõknek?"
+
+#: Mailman/Gui/Autoresponse.py:60
+msgid "Auto-response text to send to mailing list posters."
+msgstr "Automatikus válasz szövege a listára küldõknek."
+
+#: Mailman/Gui/Autoresponse.py:63
+msgid ""
+"Should Mailman send an auto-response to emails sent to the\n"
+" -owner address?"
+msgstr ""
+"Küldjön a Mailman automatikus választ az -owner címekre érkezõ levelekre?"
+
+#: Mailman/Gui/Autoresponse.py:68
+msgid "Auto-response text to send to -owner emails."
+msgstr "Automatikus válasz szövege az -owner címekre érkezõ levelekre."
+
+#: Mailman/Gui/Autoresponse.py:71
+msgid "Yes, w/discard"
+msgstr "Igen, és elvet"
+
+#: Mailman/Gui/Autoresponse.py:71
+msgid "Yes, w/forward"
+msgstr "Igen, és továbbít"
+
+#: Mailman/Gui/Autoresponse.py:72
+msgid ""
+"Should Mailman send an auto-response to emails sent to the\n"
+" -request address? If you choose yes, decide whether you want\n"
+" Mailman to discard the original email, or forward it on to the\n"
+" system as a normal mail command."
+msgstr ""
+"Küldjön a Mailman automatikus választ a -request címre érkezõ levelekre? Ha "
+"igen, akkor beállítható, hogy az eredeti levelet a Mailman elvesse, vagy "
+"feldolgozásra továbbítsa, mint ahogy azt az e-mail parancsokat tartalmazó "
+"levéllel alapesetben teszi."
+
+#: Mailman/Gui/Autoresponse.py:79
+msgid "Auto-response text to send to -request emails."
+msgstr "Automatikus válasz szövege a -request címre érkezõ levelekre."
+
+#: Mailman/Gui/Autoresponse.py:82
+msgid ""
+"Number of days between auto-responses to either the mailing\n"
+" list or -request/-owner address from the same poster. Set to\n"
+" zero (or negative) for no grace period (i.e. auto-respond to\n"
+" every message)."
+msgstr ""
+"Napok száma az automatikus válaszadások ideje között annak a beküldõnek,\n"
+"aki a levelezõlistára vagy a -request/-owner címre küldött leveleket. "
+"Nullát \n"
+"(vagy negatív) értéket megadva nem vár (azonnal automatikusan válaszol "
+"minden elküldött levélre)."
+
+#: Mailman/Gui/Bounce.py:26
+msgid "Bounce processing"
+msgstr "Visszapattanások kezelése"
+
+#: Mailman/Gui/Bounce.py:32
+msgid ""
+"These policies control the automatic bounce processing system\n"
+" in Mailman. Here's an overview of how it works.\n"
+"\n"
+" <p>When a bounce is received, Mailman tries to extract two "
+"pieces\n"
+" of information from the message: the address of the member the\n"
+" message was intended for, and the severity of the problem "
+"causing\n"
+" the bounce. The severity can be either <em>hard</em> or\n"
+" <em>soft</em> meaning either a fatal error occurred, or a\n"
+" transient error occurred. When in doubt, a hard severity is "
+"used.\n"
+"\n"
+" <p>If no member address can be extracted from the bounce, then "
+"the\n"
+" bounce is usually discarded. Otherwise, each member is assigned "
+"a\n"
+" <em>bounce score</em> and every time we encounter a bounce from\n"
+" this member we increment the score. Hard bounces increment by "
+"1\n"
+" while soft bounces increment by 0.5. We only increment the "
+"bounce\n"
+" score once per day, so even if we receive ten hard bounces from "
+"a\n"
+" member per day, their score will increase by only 1 for that "
+"day.\n"
+"\n"
+" <p>When a member's bounce score is greater than the\n"
+" <a href=\"?VARHELP=bounce/bounce_score_threshold\">bounce score\n"
+" threshold</a>, the subscription is disabled. Once disabled, "
+"the\n"
+" member will not receive any postings from the list until their\n"
+" membership is explicitly re-enabled (either by the list\n"
+" administrator or the user). However, they will receive "
+"occasional\n"
+" reminders that their membership has been disabled, and these\n"
+" reminders will include information about how to re-enable their\n"
+" membership.\n"
+"\n"
+" <p>You can control both the\n"
+" <a href=\"?VARHELP=bounce/bounce_you_are_disabled_warnings"
+"\">number\n"
+" of reminders</a> the member will receive and the\n"
+" <a href=\"?VARHELP=bounce/"
+"bounce_you_are_disabled_warnings_interval\"\n"
+" >frequency</a> with which these reminders are sent.\n"
+"\n"
+" <p>There is one other important configuration variable; after a\n"
+" certain period of time -- during which no bounces from the "
+"member\n"
+" are received -- the bounce information is\n"
+" <a href=\"?VARHELP=bounce/bounce_info_stale_after\">considered\n"
+" stale</a> and discarded. Thus by adjusting this value, and the\n"
+" score threshold, you can control how quickly bouncing members "
+"are\n"
+" disabled. You should tune both of these to the frequency and\n"
+" traffic volume of your list."
+msgstr ""
+"A következõkben ismertetettek alapján mûködik a Mailman-ben a\n"
+"visszapattanások automatikus kezelése.\n"
+"\n"
+"<p>Minden egyes visszapattanásnál a Mailman a következõ két információt\n"
+"keresi meg az üzenetben: azon listatag címét, akinek az üzenet el lett "
+"küldve és\n"
+"a visszapattanást okozó hiba súlyosságát. A hiba lehet <em>súlyos</em> vagy\n"
+"<em>átmeneti</em>, attól függõen, hogy azt rendszer hiba vagy valamilyen\n"
+"átmeneti hiba okozta. Ha nem lehet kideríteni, akkor súlyos hibaként kezeli\n"
+"a program a visszapattanást.\n"
+"\n"
+"<p>Ha az üzenetben nem található listatag címe, akkor a levél figyelmen "
+"kívül\n"
+"lesz hagyva. Ha található listatag címe, akkor a taghoz rendelt "
+"<em>visszapattanási\n"
+"pontértéket</em> kell növelni. Minden súlyos visszapattanás 1 ponttal, "
+"minden\n"
+"átmeneti 0.5 ponttal növeli a pontszámot. Naponta csak egyszer növeljük a\n"
+"pontszámot, így még ha egy nap alatt tíz súlyos visszapattanást kapunk\n"
+"ugyanattól a listatagtól, a pontszáma akkor is csak 1-el fog nõni az adott "
+"napon.\n"
+"\n"
+"<p>Ha listatag visszapattanási pontszáma eléri a <a\n"
+"href=\"?VARHELP=bounce/bounce_score_threshold\">maximális visszapattanási "
+"pontértéket</a>,\n"
+"akkor a listatagságot kikapcsolja a program. Ezek után a tag a listáról "
+"addig nem kap\n"
+"újabb üzenetet, amíg listatagságát (õ vagy a lista adminisztrátora)\n"
+"vissza nem állítja. Azonban idõnként értesítést kap, hogy a tagsága ki van "
+"kapcsolva\n"
+"és hogy hogyan tudja azt visszaállítani.\n"
+"\n"
+"<p>Mind az <a href=\"?VARHELP=bounce/bounce_you_are_disabled_warnings"
+"\">értesítõk\n"
+"számát</a>, mind azok kiküldésének <a href=\"?VARHELP=bounce/"
+"bounce_you_are_disabled_warnings_interval\"\n"
+">gyakoriságát</a> be lehet állítani.\n"
+"<p>Egy másik fontos változóval be lehet állítani azon napok számát -- amely "
+"alatt újabb\n"
+"visszapattanás nem érkezik a tagtól --, ami után a visszapattanási értéket\n"
+"<a href=\"?VARHELP=bounce/bounce_info_stale_after\">lejártnak kell "
+"tekinteni</a> és\n"
+"törölni lehet. Ezzel és a visszapattanási pontértékkel lehet szabályozni, "
+"hogy\n"
+"a visszapattanást elõidézõ tagok milyen hamar legyenek kikapcsolva. A "
+"változók\n"
+"értékeit a lista forgalma és gyakorisága alapján érdemes megváltoztatni."
+
+#: Mailman/Gui/Bounce.py:75
+msgid "Bounce detection sensitivity"
+msgstr "Visszapattanási beállítások"
+
+#: Mailman/Gui/Bounce.py:78
+msgid "Should Mailman perform automatic bounce processing?"
+msgstr "Hajtson végre a Mailman automatikus visszapattanás kezelést?"
+
+#: Mailman/Gui/Bounce.py:79
+msgid ""
+"By setting this value to <em>No</em>, you disable all\n"
+" automatic bounce processing for this list, however bounce\n"
+" messages will still be discarded so that the list "
+"administrator\n"
+" isn't inundated with them."
+msgstr ""
+"A listához tartozó automatikus visszapattanás kezelést <em>Nem</em>-mel\n"
+"lehet kikapcsolni. A listán ekkor sem fognak a megjelenni a visszapattanási\n"
+" üzenetek, így a lista adminisztrátora továbbra is értesül ezekrõl."
+
+#: Mailman/Gui/Bounce.py:85
+msgid ""
+"The maximum member bounce score before the member's\n"
+" subscription is disabled. This value can be a floating point\n"
+" number."
+msgstr ""
+"Azon visszapattanási pontérték, amelyet elérve a listatagságot ki kell "
+"kapcsolni.\n"
+"Ez a pont érték nem egész szám is lehet."
+
+#: Mailman/Gui/Bounce.py:90
+msgid ""
+"The number of days after which a member's bounce information\n"
+" is discarded, if no new bounces have been received in the\n"
+" interim. This value must be an integer."
+msgstr ""
+"A napok száma, amely alatt ha újabb visszapattanás nem történik a\n"
+"listatag visszapattanási értékei törlõdnek. Az értéknek egész számnak\n"
+"kell lennie."
+
+#: Mailman/Gui/Bounce.py:95
+msgid ""
+"How many <em>Your Membership Is Disabled</em> warnings a\n"
+" disabled member should get before their address is removed "
+"from\n"
+" the mailing list. Set to 0 to immediately remove an address "
+"from\n"
+" the list once their bounce score exceeds the threshold. This\n"
+" value must be an integer."
+msgstr ""
+"A listatag hány <em>Listatagságod kikapcsolva</em> értesítést kapjon\n"
+"mielõtt címét töröljük a listáról? 0-t megadva a beállított visszapattanási\n"
+"pontértéket elérve azonnal törlõdik a listáról. Az értéknek egész számnak\n"
+"kell lennie."
+
+#: Mailman/Gui/Bounce.py:102
+msgid ""
+"The number of days between sending the <em>Your Membership\n"
+" Is Disabled</em> warnings. This value must be an integer."
+msgstr ""
+"Az elküldött, <em>Listatagságod kikapcsolva</em> üzenetek közötti\n"
+"napok száma. Az értéknek egész számnak kell lennie."
+
+#: Mailman/Gui/Bounce.py:105 Mailman/Gui/General.py:257
+msgid "Notifications"
+msgstr "Értesítések"
+
+#: Mailman/Gui/Bounce.py:109
+msgid ""
+"Should Mailman send you, the list owner, any bounce messages\n"
+" that failed to be detected by the bounce processor? <em>Yes</"
+"em>\n"
+" is recommended."
+msgstr ""
+"Értesítsen téged, a lista tulajdonosát, a Mailman minden olyan "
+"visszapattanásról,\n"
+"amelyet a visszapattanás-kezelõ nem tudott feldolgozni? Ajánlott az "
+"<em>Igen</em>\n"
+"beállítása."
+
+#: Mailman/Gui/Bounce.py:112
+msgid ""
+"While Mailman's bounce detector is fairly robust, it's\n"
+" impossible to detect every bounce format in the world. You\n"
+" should keep this variable set to <em>Yes</em> for two reasons: "
+"1)\n"
+" If this really is a permanent bounce from one of your members,\n"
+" you should probably manually remove them from your list, and "
+"2)\n"
+" you might want to send the message on to the Mailman "
+"developers\n"
+" so that this new format can be added to its known set.\n"
+"\n"
+" <p>If you really can't be bothered, then set this variable to\n"
+" <em>No</em> and all non-detected bounces will be discarded\n"
+" without further processing.\n"
+"\n"
+" <p><b>Note:</b> This setting will also affect all messages "
+"sent\n"
+" to your list's -admin address. This address is deprecated and\n"
+" should never be used, but some people may still send mail to "
+"this\n"
+" address. If this happens, and this variable is set to\n"
+" <em>No</em> those messages too will get discarded. You may "
+"want\n"
+" to set up an\n"
+" <a href=\"?VARHELP=autoreply/autoresponse_admin_text"
+"\">autoresponse\n"
+" message</a> for email to the -owner and -admin address."
+msgstr ""
+"A Mailman visszapattanás-kezelõje képes sok, de nem minden\n"
+"típusú visszapattanást feldolgozni. Két okból is célszerû ezt a beállítást\n"
+"<em>Igen</em>-re állítani: 1) Ha a listatag címérõl állandóan "
+"visszapattannak\n"
+"a levelek, akkor célszerû a címet neked törölni a listáról. 2) A még nem\n"
+"ismert formátumú visszapattanást esetleg így el tudod majd küldeni a \n"
+"Mailman fejlesztõinek, hogy azt beépíthessék a késõbbi verziókba.\n"
+"\n"
+"<p>Ha úgy gondolod, hogy visszapattanásokkal biztos nem fogsz találkozni,\n"
+"akkor állítsd be a <em>Nem</em>, így minden ismeretlen visszapattanás\n"
+"azonnal törlõdik.\n"
+"\n"
+"<p><b>Megjegyzés:</b> Az itt beállítottak érvényesek lesznek a lista -admin\n"
+"címére küldött levelekre is. Ennek a címnek a használata kerülendõ, mert "
+"csak\n"
+"azon felhasználók kedvéért maradt meg, akik még erre a címre küldenek\n"
+"üzeneteket. Ha erre a címre küldenek levelet és a változó értéke <em>Nem</"
+"em>,\n"
+"akkor ezek a levelek is azonnal törlõdnek. Célszerû ezért, mind az -owner,\n"
+"mind az -admin címre beállítani az <a\n"
+"\"href=\"?VARHELP=autoreply/autoresponse_admin_text\">automatikus "
+"válaszadást</a>."
+
+#: Mailman/Gui/Bounce.py:135
+msgid ""
+"Should Mailman notify you, the list owner, when bounces\n"
+" cause a member's subscription to be disabled?"
+msgstr ""
+"Értesítsen téged, a lista tulajdonosát, a Mailman ha az egyik\n"
+"listatag feliratkozása visszapattanások miatt kikapcsolásra kerül?"
+
+#: Mailman/Gui/Bounce.py:137
+msgid ""
+"By setting this value to <em>No</em>, you turn off\n"
+" notification messages that are normally sent to the list "
+"owners\n"
+" when a member's delivery is disabled due to excessive bounces.\n"
+" An attempt to notify the member will always be made."
+msgstr ""
+"<em>Nem</em>-et választva a lista tulajdonosa nem kap értesítést, ha a "
+"listatag feliratkozása\n"
+"túl sok visszapattanás miatt lett kikapcsolva. A felhasználót ettõl "
+"függetlenül\n"
+"a program mindig megpróbálja kikapcsolásáról értesíteni."
+
+#: Mailman/Gui/Bounce.py:144
+msgid ""
+"Should Mailman notify you, the list owner, when bounces\n"
+" cause a member to be unsubscribed?"
+msgstr ""
+"Értesítsen téged, a lista tulajdonosát, a Mailman , ha visszapattanások\n"
+"miatt törölve lett egy tag?"
+
+#: Mailman/Gui/Bounce.py:146
+msgid ""
+"By setting this value to <em>No</em>, you turn off\n"
+" notification messages that are normally sent to the list "
+"owners\n"
+" when a member is unsubscribed due to excessive bounces. An\n"
+" attempt to notify the member will always be made."
+msgstr ""
+"<em>Nem</em>-et választva a lista tulajdonosa nem kap értesítést, ha\n"
+"túl sok visszapattanás miatt lett törölve a listatag. A felhasználót ettõl "
+"függetlenül\n"
+"a program mindig megpróbálja kikapcsolásáról értesíteni."
+
+#: Mailman/Gui/Bounce.py:173
+msgid ""
+"Bad value for <a href=\"?VARHELP=bounce/%(property)s\"\n"
+" >%(property)s</a>: %(val)s"
+msgstr ""
+"Hibás érték a <a href=\"?VARHELP=bounce/%(property)s\"\n"
+" >%(property)s</a> változónál: %(val)s"
+
+#: Mailman/Gui/ContentFilter.py:30
+msgid "Content&nbsp;filtering"
+msgstr "Tartalom&nbsp;szûrés"
+
+#: Mailman/Gui/ContentFilter.py:37
+msgid "Forward to List Owner"
+msgstr "Lista tulajdonosnak elküld"
+
+#: Mailman/Gui/ContentFilter.py:39
+msgid "Preserve"
+msgstr "Megõríz"
+
+#: Mailman/Gui/ContentFilter.py:42
+msgid ""
+"Policies concerning the content of list traffic.\n"
+"\n"
+" <p>Content filtering works like this: when a message is\n"
+" received by the list and you have enabled content filtering, "
+"the\n"
+" individual attachments are first compared to the\n"
+" <a href=\"?VARHELP=contentfilter/filter_mime_types\">filter\n"
+" types</a>. If the attachment type matches an entry in the "
+"filter\n"
+" types, it is discarded.\n"
+"\n"
+" <p>Then, if there are <a\n"
+" href=\"?VARHELP=contentfilter/pass_mime_types\">pass types</a>\n"
+" defined, any attachment type that does <em>not</em> match a\n"
+" pass type is also discarded. If there are no pass types "
+"defined,\n"
+" this check is skipped.\n"
+"\n"
+" <p>After this initial filtering, any <tt>multipart</tt>\n"
+" attachments that are empty are removed. If the outer message "
+"is\n"
+" left empty after this filtering, then the whole message is\n"
+" discarded. Then, each <tt>multipart/alternative</tt> section "
+"will\n"
+" be replaced by just the first alternative that is non-empty "
+"after\n"
+" filtering.\n"
+"\n"
+" <p>Finally, any <tt>text/html</tt> parts that are left in the\n"
+" message may be converted to <tt>text/plain</tt> if\n"
+" <a href=\"?VARHELP=contentfilter/convert_html_to_plaintext\"\n"
+" >convert_html_to_plaintext</a> is enabled and the site is\n"
+" configured to allow these conversions."
+msgstr ""
+"Tudnivalók a lista tartalomszûrésérõl.\n"
+"\n"
+"<p>A tartalomszûrés a következõképpen történik: ha a lista tartalomszûrése\n"
+"be van kapcsolva, akkor a listára érkezõ levelekben található csatolt "
+"állományok\n"
+"típusát a <a href=\"?VARHELP=contentfilter/filter_mime_types\">megadott\n"
+"feltételek</a> alapján kiszûri a program. Ha az állomány típusa\n"
+"egyezik valamelyik megadott típussal, akkor a program törli a levélbõl azt "
+"az\n"
+"állományt.\n"
+"\n"
+"<p>Ezek után, ha adtunk meg <a\n"
+"href=\"?VARHELP=contentfilter/pass_mime_types\">tovább engedhetõ típusokat</"
+"a>,\n"
+"akkor a program törli azokat az állományokat is, amelyek típusa <em>nem</"
+"em>\n"
+"egyezik meg az itt felsorolt típusok egyikével sem. Ha nem adtunk meg itt "
+"semmit sem,\n"
+"akkor a program átugorja ezt az ellenõrzési lépést.\n"
+"\n"
+"<p>A szûrések után a program törli az összes üressé vált <tt>multipart</tt> "
+"mellékletet.\n"
+"Ha ezzel a levél üressé válik, akkor a program törli az egész levelet. Az "
+"üres\n"
+"<tt>multipart/alternative</tt> rész helyére a program az utána lévõ nem üres "
+"mellékletet\n"
+"fogja beszúrni, ha van olyan.\n"
+"\n"
+"<p>Végül, a levélben maradt minden <tt>text/html</tt> részt átalakít a "
+"program\n"
+"<tt>text/plain</tt> típusúra, ha engedélyezve van a\n"
+"<a href=\"?VARHELP=contentfilter/convert_html_to_plaintext\"\n"
+">html_konvertálása_sima_szöveggé</a> opció és a rendszeren be van állítva\n"
+"ez a konvertálási lehetõség."
+
+#: Mailman/Gui/ContentFilter.py:71
+msgid ""
+"Should Mailman filter the content of list traffic according\n"
+" to the settings below?"
+msgstr ""
+"Szûrje a Mailman a listára küldött leveleket\n"
+"a lent megadott feltételek szerint?"
+
+#: Mailman/Gui/ContentFilter.py:75
+msgid ""
+"Remove message attachments that have a matching content\n"
+" type."
+msgstr ""
+"Távolítsa el az üzenet azon részeit, amelynek típusa egyezik\n"
+"az itt megadottak valamelyikével."
+
+#: Mailman/Gui/ContentFilter.py:78
+msgid ""
+"Use this option to remove each message attachment that\n"
+" matches one of these content types. Each line should contain "
+"a\n"
+" string naming a MIME <tt>type/subtype</tt>,\n"
+" e.g. <tt>image/gif</tt>. Leave off the subtype to remove all\n"
+" parts with a matching major content type, e.g. <tt>image</tt>.\n"
+"\n"
+" <p>Blank lines are ignored.\n"
+"\n"
+" <p>See also <a href=\"?VARHELP=contentfilter/pass_mime_types\"\n"
+" >pass_mime_types</a> for a content type whitelist."
+msgstr ""
+"A beállítással el lehet távolítani azokat a csatolt állományokat a "
+"levélbõl,\n"
+"amelyek típusa megegyezik az itt megadott típusok valamelyikével.\n"
+"Soronként egy MIME <tt>típus/altípus</tt> hivatkozást, pl. <tt>image/gif</"
+"tt>\n"
+"kell megadni. Az altípus elhagyásával a fõ típusba, pl. <tt>image</tt> "
+"tartozó összes csatolt\n"
+"állományt eltávolítja a program.\n"
+"\n"
+"<p>A feltételként megadott üres sorokat figyelmen kívül hagyja a program.\n"
+"\n"
+"<p>A csatolt állományok kezeléséhez használhatjuk még a <a\n"
+"href=\"?VARHELP=contentfilter/pass_mime_types\">továbbítható_mime_típusok</"
+"a>\n"
+"beállítást."
+
+#: Mailman/Gui/ContentFilter.py:90
+msgid ""
+"Remove message attachments that don't have a matching\n"
+" content type. Leave this field blank to skip this filter\n"
+" test."
+msgstr ""
+"Eltávolítja azokat a csatolt állományokat a levélbõl, amelyek\n"
+"típusa nem egyezik a megadott típusok egyikével sem. Ha üresen\n"
+"hagyjuk ezt a mezõt, akkor a Mailman átugorja ezt az ellenõrzést."
+
+#: Mailman/Gui/ContentFilter.py:94
+msgid ""
+"Use this option to remove each message attachment that does\n"
+" not have a matching content type. Requirements and formats "
+"are\n"
+" exactly like <a href=\"?VARHELP=contentfilter/filter_mime_types"
+"\"\n"
+" >filter_mime_types</a>.\n"
+"\n"
+" <p><b>Note:</b> if you add entries to this list but don't add\n"
+" <tt>multipart</tt> to this list, any messages with attachments\n"
+" will be rejected by the pass filter."
+msgstr ""
+"A beállítással el lehet távolítani azokat a csatolt állományokat a "
+"levélbõl,\n"
+"amelyek típusa nem egyezik az itt megadott típusok valamelyikével.\n"
+"A feltételeket ugyanúgy kell megadni, mint ahogy a\n"
+"<a href=\"?VARHELP=contentfilter/filter_mime_types\">filter_mime_types</a>\n"
+"beállításnál le van írva.\n"
+"\n"
+"<p><b>Megjegyzés:</b> Ha adunk meg valamilyen feltételt, de a feltételek\n"
+"között nem soroljuk fel a <tt>multipart</tt> kifejezést, akkor a program\n"
+"az összes csatolt állománnyal rendelkezõ levél megjelenését automatikusan\n"
+"elveti ezen szûrési feltétel következtében."
+
+#: Mailman/Gui/ContentFilter.py:104
+msgid ""
+"Should Mailman convert <tt>text/html</tt> parts to plain\n"
+" text? This conversion happens after MIME attachments have "
+"been\n"
+" stripped."
+msgstr ""
+"Átalakítsa a Mailman a <tt>text/html</tt> részeket sima szöveggé?\n"
+"Az átalakítást a MIME csatolások törlése után hajtja végre a program."
+
+#: Mailman/Gui/ContentFilter.py:110
+msgid ""
+"Action to take when a message matches the content filtering\n"
+" rules."
+msgstr ""
+"Teendõ, amikor az üzenetre érvényesek a tartalom szûrésben\n"
+"megadott feltételek."
+
+#: Mailman/Gui/ContentFilter.py:113
+msgid ""
+"One of these actions is take when the message matches one of\n"
+" the content filtering rules, meaning, the top-level\n"
+" content type matches one of the <a\n"
+" href=\"?VARHELP=contentfilter/filter_mime_types\"\n"
+" >filter_mime_types</a>, or the top-level content type does\n"
+" <strong>not</strong> match one of the\n"
+" <a href=\"?VARHELP=contentfilter/pass_mime_types\"\n"
+" >pass_mime_types</a>, or if after filtering the subparts of "
+"the\n"
+" message, the message ends up empty.\n"
+"\n"
+" <p>Note this action is not taken if after filtering the "
+"message\n"
+" still contains content. In that case the message is always\n"
+" forwarded on to the list membership.\n"
+"\n"
+" <p>When messages are discarded, a log entry is written\n"
+" containing the Message-ID of the discarded message. When\n"
+" messages are rejected or forwarded to the list owner, a reason\n"
+" for the rejection is included in the bounce message to the\n"
+" original author. When messages are preserved, they are saved "
+"in\n"
+" a special queue directory on disk for the site administrator "
+"to\n"
+" view (and possibly rescue) but otherwise discarded. This last\n"
+" option is only available if enabled by the site\n"
+" administrator."
+msgstr ""
+"A megadott teendõ végrehajtódik, ha az üzenet tartalmaz olyan rész(eke)t,\n"
+"amely megfelel a <a href=\"?VARHELP=contentfilter/filter_mime_types\"\n"
+">szûrendõ részek</a>ben megadott feltételeknek, vagy egyetlen <a\n"
+"href=\"?VARHELP=contentfilter/pass_mime_types\">továbbengedhetõ\n"
+"rész</a>nek <em>sem</em> felel meg, vagy a szûrések következtében az\n"
+"üzenet üressé vált.\n"
+"\n"
+"<p>Érdemes tudni, hogy ha az üzenet a tartalomszûrés után nem vált\n"
+"üressé, akkor az itt beállított teendõ nem hajtódik végre. Az üzenet\n"
+"ekkor mindenképp továbbításra kerül a listára.\n"
+"\n"
+"<p>Az üzenet automatikus elvetésekor a program a naplóállományba\n"
+"rögzíti az elvetett üzenet Message-ID-jét. Ha az üzenetet visszautasították\n"
+"vagy a lista tulajdonosának továbbították, akkor az üzenet feladójának\n"
+"küldött értesítésben a visszautasítás indoka is feltüntetésre kerül.\n"
+"Az üzenetet meg is lehet õrízni a késõbbi megtekintésre (és lehetséges\n"
+"szerkesztésre) a merevlemezen egy speciális könyvtárban, ha ezt a\n"
+"a rendszer adminisztrátora engedélyezte."
+
+#: Mailman/Gui/ContentFilter.py:154
+msgid "Bad MIME type ignored: %(spectype)s"
+msgstr "Hibás MIME típus figyelmen kívül hagyva: %(spectype)s"
+
+#: Mailman/Gui/Digest.py:36
+msgid "Digest options"
+msgstr "Digest beállítások"
+
+#: Mailman/Gui/Digest.py:44
+msgid "Batched-delivery digest characteristics."
+msgstr "Egyben küldendõ digest levelek beállításai."
+
+#: Mailman/Gui/Digest.py:47
+msgid "Can list members choose to receive list traffic bunched in digests?"
+msgstr ""
+"A listatagok választhatnak, hogy a lista forgalmát egyben, digest formában "
+"kapják?"
+
+#: Mailman/Gui/Digest.py:51
+msgid "Digest"
+msgstr "Digest"
+
+#: Mailman/Gui/Digest.py:51
+msgid "Regular"
+msgstr "Rendes"
+
+#: Mailman/Gui/Digest.py:52
+msgid "Which delivery mode is the default for new users?"
+msgstr "Melyik küldési mód az alapértelmezett új felhasználóknál?"
+
+#: Mailman/Gui/Digest.py:55
+msgid "MIME"
+msgstr "MIME"
+
+#: Mailman/Gui/Digest.py:55
+msgid "Plain"
+msgstr "Sima"
+
+#: Mailman/Gui/Digest.py:56
+msgid "When receiving digests, which format is default?"
+msgstr "Digesetek küldésekor melyik formátum az alapértelmezett?"
+
+#: Mailman/Gui/Digest.py:59
+msgid "How big in Kb should a digest be before it gets sent out?"
+msgstr ""
+"A digest leveleknek elküldésükhöz legalább mekkora méretûnek kell lenniük "
+"(KB-ban)?"
+
+#: Mailman/Gui/Digest.py:63
+msgid ""
+"Should a digest be dispatched daily when the size threshold isn't reached?"
+msgstr ""
+"A digest levelek akkor is elküldésre kerüljenek, ha a napi minimum méretet "
+"nem érik el?"
+
+#: Mailman/Gui/Digest.py:67
+msgid "Header added to every digest"
+msgstr "Minden digesthez csatolandó fejléc"
+
+#: Mailman/Gui/Digest.py:68
+msgid ""
+"Text attached (as an initial message, before the table of contents) to the "
+"top of digests. "
+msgstr ""
+"Szöveg (bevezetõ részként, még a levelek felsorolása elõtt), amely minden "
+"digest elején megjelenik. "
+
+#: Mailman/Gui/Digest.py:73
+msgid "Footer added to every digest"
+msgstr "Lábléc minden digest végén"
+
+#: Mailman/Gui/Digest.py:74
+msgid "Text attached (as a final message) to the bottom of digests. "
+msgstr "A digestek végére (utolsó üzenetként) csatolandó szöveg. "
+
+#: Mailman/Gui/Digest.py:80
+msgid "How often should a new digest volume be started?"
+msgstr "Milyen gyakran kell új archívum kötetet kezdeni?"
+
+#: Mailman/Gui/Digest.py:81
+msgid ""
+"When a new digest volume is started, the volume number is\n"
+" incremented and the issue number is reset to 1."
+msgstr ""
+"Minden egyes új digest kötet kezdetekor a kötet szám\n"
+"eggyel növekszik és a levelek sorszáma 1-rõl indul."
+
+#: Mailman/Gui/Digest.py:85
+msgid "Should Mailman start a new digest volume?"
+msgstr "Új digestet kezdjen a Mailman?"
+
+#: Mailman/Gui/Digest.py:86
+msgid ""
+"Setting this option instructs Mailman to start a new volume\n"
+" with the next digest sent out."
+msgstr ""
+"Az opció megadásával új digest kötetet kezd a Mailman,\n"
+"\t az aktuálisat pedig elküldi a címzetteknek."
+
+#: Mailman/Gui/Digest.py:90
+msgid ""
+"Should Mailman send the next digest right now, if it is not\n"
+" empty?"
+msgstr ""
+"Elküldje most azonnal a következõ digest levelet a Mailman, ha\n"
+" \t az nem üres?"
+
+#: Mailman/Gui/Digest.py:145
+msgid ""
+"The next digest will be sent as volume\n"
+" %(volume)s, number %(number)s"
+msgstr ""
+"A következõ digest %(volume)s kötetszámmal és %(number)s\n"
+"sorszámmal kerül majd elküldésre."
+
+#: Mailman/Gui/Digest.py:150
+msgid "A digest has been sent."
+msgstr "A digest ki lett küldve."
+
+#: Mailman/Gui/Digest.py:152
+msgid "There was no digest to send."
+msgstr "Nem volt digest, amit ki lehetett küldeni."
+
+#: Mailman/Gui/GUIBase.py:149
+msgid "Invalid value for variable: %(property)s"
+msgstr "Érvénytelen érték a(z) %(property)s változónál."
+
+#: Mailman/Gui/GUIBase.py:153
+msgid "Bad email address for option %(property)s: %(val)s"
+msgstr "Rossz e-mail cím lett a %(property)s részben megadva: %(val)s"
+
+#: Mailman/Gui/GUIBase.py:179
+msgid ""
+"The following illegal substitution variables were\n"
+" found in the <code>%(property)s</code> string:\n"
+" <code>%(bad)s</code>\n"
+" <p>Your list may not operate properly until you correct "
+"this\n"
+" problem."
+msgstr ""
+"A következõ érvénytelen helyettesítõ változókat találtam\n"
+"a <code>%(property)s</code> szövegben:\n"
+"<code>%(bad)s</code>\n"
+" <p>A lista lehet hogy addig nem mûködik megfelelõen,\n"
+"amíg a hibát ki nem javítja."
+
+#: Mailman/Gui/GUIBase.py:193
+msgid ""
+"Your <code>%(property)s</code> string appeared to\n"
+" have some correctable problems in its new value.\n"
+" The fixed value will be used instead. Please\n"
+" double check that this is what you intended.\n"
+" "
+msgstr ""
+"A megadott <code>%(property)s</code> szövegben egy vagy\n"
+"több változó új értéke nem megfelelõ. A hibás változó értékek helyett\n"
+"a rögzített értékeket használja a program. Kérlek ellenõrizd, hogy ha\n"
+"tényleg ezt szeretnéd. "
+
+#: Mailman/Gui/General.py:32
+msgid "General Options"
+msgstr "Általános beállítások"
+
+#: Mailman/Gui/General.py:46
+msgid "Conceal the member's address"
+msgstr "A felhasználó címe elrejtve."
+
+#: Mailman/Gui/General.py:47
+msgid "Acknowledge the member's posting"
+msgstr "A felhasználó értesítést kap a beküldéseirõl."
+
+#: Mailman/Gui/General.py:48
+msgid "Do not send a copy of a member's own post"
+msgstr "A felhasználó a saját leveleit nem kapja meg."
+
+#: Mailman/Gui/General.py:50
+msgid "Filter out duplicate messages to list members (if possible)"
+msgstr ""
+"A listatagoknak küldött többszörözött levelek kiszûrése (ha lehetséges)."
+
+#: Mailman/Gui/General.py:57
+msgid ""
+"Fundamental list characteristics, including descriptive\n"
+" info and basic behaviors."
+msgstr ""
+"Fontos lista jellemzõk, mint például: a leírása és alapvetõ mûködése a "
+"listának."
+
+#: Mailman/Gui/General.py:60
+msgid "General list personality"
+msgstr "Általános lista jellemzõk"
+
+#: Mailman/Gui/General.py:63
+msgid "The public name of this list (make case-changes only)."
+msgstr "A lista hivatalos neve (kis-, nagybetûket változtass csak)."
+
+#: Mailman/Gui/General.py:64
+msgid ""
+"The capitalization of this name can be changed to make it\n"
+" presentable in polite company as a proper noun, or to make an\n"
+" acronym part all upper case, etc. However, the name will be\n"
+" advertised as the email address (e.g., in subscribe "
+"confirmation\n"
+" notices), so it should <em>not</em> be otherwise altered. "
+"(Email\n"
+" addresses are not case sensitive, but they are sensitive to\n"
+" almost everything else :-)"
+msgstr ""
+"A név nagybetûssé tételével a lista neve jobban megfelelhet az igényeknek. "
+"Azonban ez a név a mûködési címet is jelenti (pl. feliratkozási "
+"megerõsítésnél), így semmilyen más módon <em>nem szabad</em> megváltoztatni. "
+"(Az e-mail címeknél a kis- és nagybetû nem, de minden más eltérés számít :-)"
+
+#: Mailman/Gui/General.py:73
+msgid ""
+"The list administrator email addresses. Multiple\n"
+" administrator addresses, each on separate line is okay."
+msgstr ""
+"A listához tartozó adminisztrátorok e-mail címei. Több adminisztrátori cím "
+"esetén egy sorban csak egy legyen megadva."
+
+#: Mailman/Gui/General.py:76
+msgid ""
+"There are two ownership roles associated with each mailing\n"
+" list. The <em>list administrators</em> are the people who "
+"have\n"
+" ultimate control over all parameters of this mailing list. "
+"They\n"
+" are able to change any list configuration variable available\n"
+" through these administration web pages.\n"
+"\n"
+" <p>The <em>list moderators</em> have more limited permissions;\n"
+" they are not able to change any list configuration variable, "
+"but\n"
+" they are allowed to tend to pending administration requests,\n"
+" including approving or rejecting held subscription requests, "
+"and\n"
+" disposing of held postings. Of course, the <em>list\n"
+" administrators</em> can also tend to pending requests.\n"
+"\n"
+" <p>In order to split the list ownership duties into\n"
+" administrators and moderators, you must\n"
+" <a href=\"passwords\">set a separate moderator password</a>,\n"
+" and also provide the <a href=\"?VARHELP=general/moderator"
+"\">email\n"
+" addresses of the list moderators</a>. Note that the field you\n"
+" are changing here specifies the list administrators."
+msgstr ""
+"Minden levelezõlistának két különbözõ típusú gazdája lehet.\n"
+"A <em>lista adminisztrátoroknak</em> a lista felett korlátlan\n"
+"hatalmuk van. A lista bármely beállítását megváltoztathatják az\n"
+"adminisztrációs oldalakon keresztül.\n"
+"\n"
+"<p>Ezzel szemben a <em>lista moderátorok</em>, vagyis a szerkesztõk "
+"korlátozott jogokkal\n"
+"rendelkeznek;\n"
+"a lista beállításait nem változtathatják meg, de a beavatkozásra váró\n"
+"teendõket, mint például a fel-, leiratkozásokat, vagy a visszatartott "
+"leveleket\n"
+"kezelhetik. Természetesen mindezeket a <em>lista adminisztrátorok</em> is\n"
+"elvégezhetik.\n"
+"\n"
+"<p>A lista adminisztrálásának és szerkesztésének elkülönítéséhez a jelszavak "
+"beállítása oldalon meg kell\n"
+"adni egy <a href=\"passwords\">szerkesztõi jelszót</a>, és fel kell sorolni\n"
+"a <a href=\"?VARHELP=general/moderator\">szerkesztõk e-mail címeit</a>.\n"
+"A mezõben itt most a lista adminisztrátorokat kell felsorolni."
+
+#: Mailman/Gui/General.py:97
+msgid ""
+"The list moderator email addresses. Multiple\n"
+" moderator addresses, each on separate line is okay."
+msgstr ""
+"A listához tartozó szerkesztõk e-mail címei. Több szerkesztõi cím esetén egy "
+"sorban csak egy legyen megadva."
+
+#: Mailman/Gui/General.py:100
+msgid ""
+"There are two ownership roles associated with each mailing\n"
+" list. The <em>list administrators</em> are the people who "
+"have\n"
+" ultimate control over all parameters of this mailing list. "
+"They\n"
+" are able to change any list configuration variable available\n"
+" through these administration web pages.\n"
+"\n"
+" <p>The <em>list moderators</em> have more limited permissions;\n"
+" they are not able to change any list configuration variable, "
+"but\n"
+" they are allowed to tend to pending administration requests,\n"
+" including approving or rejecting held subscription requests, "
+"and\n"
+" disposing of held postings. Of course, the <em>list\n"
+" administrators</em> can also tend to pending requests.\n"
+"\n"
+" <p>In order to split the list ownership duties into\n"
+" administrators and moderators, you must\n"
+" <a href=\"passwords\">set a separate moderator password</a>,\n"
+" and also provide the email addresses of the list moderators in\n"
+" this section. Note that the field you are changing here\n"
+" specifies the list moderators."
+msgstr ""
+"Minden levelezõlistának két különbözõ típusú gazdája lehet.\n"
+"A <em>lista adminisztrátoroknak</em> a lista felett korlátlan\n"
+"hatalmuk van. A lista bármely beállítását megváltoztathatják az\n"
+"adminisztrációs oldalakon keresztül.\n"
+"\n"
+"<p>Ezzel szemben a <em>lista moderátorok</em>, vagyis a szerkesztõk "
+"korlátozott jogokkal\n"
+"rendelkeznek;\n"
+"a lista beállításait nem változtathatják meg, de a beavatkozásra váró\n"
+"teendõket, mint például a fel-, leiratkozásokat, vagy a visszatartott "
+"leveleket\n"
+"kezelhetik. Természetesen mindezeket a <em>lista adminisztrátorok</em> is\n"
+"elvégezhetik.\n"
+"\n"
+"<p>A lista adminisztrálásának és szerkesztésének elkülönítéséhez a jelszavak "
+"beállítása oldalon meg kell\n"
+"adni egy <a href=\"passwords\">szerkesztõi jelszót</a>, a szerkesztõk e-mail "
+"címeit pedig itt kell felsorolni.\n"
+"A mezõben itt most a szerkesztõket kell felsorolni."
+
+#: Mailman/Gui/General.py:121
+msgid "A terse phrase identifying this list."
+msgstr "Rövid kifejezés, amely a listára jellemzõ."
+
+#: Mailman/Gui/General.py:123
+msgid ""
+"This description is used when the mailing list is listed with\n"
+" other mailing lists, or in headers, and so forth. It "
+"should\n"
+" be as succinct as you can get it, while still identifying "
+"what\n"
+" the list is."
+msgstr ""
+"Az itt megadott leírás jelenik meg, ha a levelezõlistát más listákkal együtt "
+"sorolják fel, vagy a be kell szúrni a fejlécbe, esetleg egyéb helyre. "
+"Lehetõleg rövid és lényegre törõ, de a listára jellemzõ legyen."
+
+#: Mailman/Gui/General.py:129
+msgid ""
+"An introductory description - a few paragraphs - about the\n"
+" list. It will be included, as html, at the top of the "
+"listinfo\n"
+" page. Carriage returns will end a paragraph - see the details\n"
+" for more info."
+msgstr ""
+" Rövid leírás - pár bekezdés - a listáról, amely a lista információs lapján, "
+"html szövegként meg fog jelenni. A rövid leírás után új sorral fog a "
+"hagyományos szöveg kezdõdni. Többet a Bõvebben részben lehet olvasni."
+
+#: Mailman/Gui/General.py:133
+msgid ""
+"The text will be treated as html <em>except</em> that\n"
+" newlines will be translated to &lt;br&gt; - so you can use "
+"links,\n"
+" preformatted text, etc, but don't put in carriage returns "
+"except\n"
+" where you mean to separate paragraphs. And review your changes "
+"-\n"
+" bad html (like some unterminated HTML constructs) can prevent\n"
+" display of the entire listinfo page."
+msgstr ""
+"A megadott szöveg html forrásként kerül feldolgozásra, <em>kivétel</em> a "
+"sortörések, amelyeket &lt;br&gt;-ké alakít át a program. Így bármilyen "
+"szabványos HTML kódot (hivatkozások, formázott szövegek, stb.) meg lehet "
+"adni, azonban sortörést csak odategyél, ahol tényleg szeretnéd a "
+"bekezdéseket elválasztani egymástól. Ellenõrizd a forrás szöveget, mivel "
+"hibás html kód (pl. lezáratlan HTML parancs) az egész listainformációs-oldal "
+"helytelen megjelenítését eredményezheti."
+
+#: Mailman/Gui/General.py:141
+msgid "Prefix for subject line of list postings."
+msgstr "A listára küldött levelek tárgya elé beszúrandó szöveg."
+
+#: Mailman/Gui/General.py:142
+msgid ""
+"This text will be prepended to subject lines of messages\n"
+" posted to the list, to distinguish mailing list messages in in\n"
+" mailbox summaries. Brevity is premium here, it's ok to "
+"shorten\n"
+" long mailing list names to something more concise, as long as "
+"it\n"
+" still identifies the mailing list."
+msgstr ""
+"Az itt megadott szöveg minden, a listára érkezõ levél tárgyában megjelenik, "
+"ezzel egy postafiókban lévõ levelek közül a listáról érkezõk leveleket "
+"gyorsan azonosítani lehet. Rövidség fél siker, a hosszú szöveg itt inkább "
+"hátráltat. Továbbá hasznos, ha a szöveg a listát jellemzõ leírás."
+
+#: Mailman/Gui/General.py:149
+msgid ""
+"Hide the sender of a message, replacing it with the list\n"
+" address (Removes From, Sender and Reply-To fields)"
+msgstr ""
+"Az üzenet küldõjének elrejtése a lista címére való lecserélésével\n"
+"(From, Sender és Reply-To mezõk lecserélése)"
+
+#: Mailman/Gui/General.py:152
+msgid "<tt>Reply-To:</tt> header munging"
+msgstr "<tt>Reply-To:</tt> fejlécmódosítások"
+
+#: Mailman/Gui/General.py:155
+msgid ""
+"Should any existing <tt>Reply-To:</tt> header found in the\n"
+" original message be stripped? If so, this will be done\n"
+" regardless of whether an explict <tt>Reply-To:</tt> header is\n"
+" added by Mailman or not."
+msgstr ""
+"Törölje az eredeti levélben esetleg megtalálható <tt>Reply-To:</tt> "
+"fejléceket\n"
+"a program? Igen esetén minden megadott <tt>Reply-To:</tt> fejléc törölve "
+"lesz\n"
+"függetlenül attól, hogy azt a Mailman vagy más szúrta a levélbe."
+
+#: Mailman/Gui/General.py:161
+msgid "Explicit address"
+msgstr "Megadott cím"
+
+#: Mailman/Gui/General.py:161
+msgid "Poster"
+msgstr "Beküldõ"
+
+#: Mailman/Gui/General.py:161
+msgid "This list"
+msgstr "Lista címe"
+
+#: Mailman/Gui/General.py:162
+msgid ""
+"Where are replies to list messages directed?\n"
+" <tt>Poster</tt> is <em>strongly</em> recommended for most "
+"mailing\n"
+" lists."
+msgstr ""
+"A válasz a listáról érkezõ levelekre kinek legyen címezve? Legtöbb listánál "
+"a <tt>Beküldõ</tt> az <em>ajánlott</em>."
+
+#: Mailman/Gui/General.py:167
+msgid ""
+"This option controls what Mailman does to the\n"
+" <tt>Reply-To:</tt> header in messages flowing through this\n"
+" mailing list. When set to <em>Poster</em>, no <tt>Reply-To:</"
+"tt>\n"
+" header is added by Mailman, although if one is present in the\n"
+" original message, it is not stripped. Setting this value to\n"
+" either <em>This list</em> or <em>Explicit address</em> causes\n"
+" Mailman to insert a specific <tt>Reply-To:</tt> header in all\n"
+" messages, overriding the header in the original message if\n"
+" necessary (<em>Explicit address</em> inserts the value of <a\n"
+" href=\"?VARHELP=general/reply_to_address\">reply_to_address</"
+"a>).\n"
+" \n"
+" <p>There are many reasons not to introduce or override the\n"
+" <tt>Reply-To:</tt> header. One is that some posters depend on\n"
+" their own <tt>Reply-To:</tt> settings to convey their valid\n"
+" return address. Another is that modifying <tt>Reply-To:</tt>\n"
+" makes it much more difficult to send private replies. See <a\n"
+" href=\"http://www.unicom.com/pw/reply-to-harmful.html\">`Reply-"
+"To'\n"
+" Munging Considered Harmful</a> for a general discussion of "
+"this\n"
+" issue. See <a\n"
+" href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml"
+"\">Reply-To\n"
+" Munging Considered Useful</a> for a dissenting opinion.\n"
+"\n"
+" <p>Some mailing lists have restricted posting privileges, with "
+"a\n"
+" parallel list devoted to discussions. Examples are `patches' "
+"or\n"
+" `checkin' lists, where software changes are posted by a "
+"revision\n"
+" control system, but discussion about the changes occurs on a\n"
+" developers mailing list. To support these types of mailing\n"
+" lists, select <tt>Explicit address</tt> and set the\n"
+" <tt>Reply-To:</tt> address below to point to the parallel\n"
+" list."
+msgstr ""
+"A beállítással a levelezõlistára érkezõ levelek\n"
+"<tt>Reply-To:</tt> mezõjének tartalmát lehet megváltoztatni. <em>Beküldõ</"
+"em>re\n"
+"való állítással a Mailman a levél fejlécébe nem szúr be <tt>Reply-To</tt>\n"
+"mezõt, ha az eredeti levél tartalmaz már ilyet, ezzel annak értékét sem "
+"változtatja meg.\n"
+"A <em>Lista címe</em> vagy <em>Megadott cím</em> esetén a Mailman a "
+"szükséges\n"
+"<tt>Reply-To:</tt> mezõt beszúrja, ezzel felülírva esetleg a levélben már "
+"meglévõt\n"
+"(<em>Megadott cím</em> esetén a <a\n"
+"href=\"?VARHELP=general/reply_to_address\">válasz cím</a>ben beállított "
+"értéket\n"
+"szúrja be.)\n"
+" \n"
+"<p>Sok dolog indokolja, hogy a <tt>Reply-To:</tt> mezõt ne változtassuk "
+"meg.\n"
+"Magyarázat lehet erre az, hogy számos levelezõkliens a <tt>Reply-To:</tt>\n"
+"alapján küldi el a válaszokat. Másik indok lehet, hogy a <tt>Reply-To:</tt>\n"
+"megváltoztatásával nehezebb lesz magánba válaszolni a levélre. Errõl "
+"bõvebben\n"
+"a <a href=\"http://www.unicom.com/pw/reply-to-harmful.html\">\n"
+"`Reply-To' Munging Considered Harmful</a> oldalon lehet olvasni. Lásd még a "
+"<a\n"
+"href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml\">Reply-To\n"
+"Munging Considered Useful</a> oldalt, hogy esetleg mégis miért lehet hasznos "
+"ez a beállítás.\n"
+"\n"
+"<p>Néhány levelezõlistánál korlátozva van a levél beküldés lehetõsége, mert "
+"egy\n"
+"másik levelezõlistán történik a tényleges levelezés. Ilyen listák többnyire "
+"a `patches'\n"
+"vagy `checkin' listák, ahol bejelentések hangoznak el "
+"szoftverváltozásokról,\n"
+"míg a változások megvitatása a fejlesztõi listán történik. Ezen listákhoz "
+"külön\n"
+"kell megadni a <tt>Megadott cím</tt>-et, a <tt>Reply-To:</tt> mezõben pedig "
+"annak\n"
+"a másik listának a címét kell megadni, ahol a levelezés valójában folyik."
+
+#: Mailman/Gui/General.py:199
+msgid "Explicit <tt>Reply-To:</tt> header."
+msgstr "Külön megadott <tt>Reply-To:</tt> fejléc."
+
+#: Mailman/Gui/General.py:201
+msgid ""
+"This is the address set in the <tt>Reply-To:</tt> header\n"
+" when the <a\n"
+" href=\"?VARHELP=general/reply_goes_to_list"
+"\">reply_goes_to_list</a>\n"
+" option is set to <em>Explicit address</em>.\n"
+"\n"
+" <p>There are many reasons not to introduce or override the\n"
+" <tt>Reply-To:</tt> header. One is that some posters depend on\n"
+" their own <tt>Reply-To:</tt> settings to convey their valid\n"
+" return address. Another is that modifying <tt>Reply-To:</tt>\n"
+" makes it much more difficult to send private replies. See <a\n"
+" href=\"http://www.unicom.com/pw/reply-to-harmful.html\">`Reply-"
+"To'\n"
+" Munging Considered Harmful</a> for a general discussion of "
+"this\n"
+" issue. See <a\n"
+" href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml"
+"\">Reply-To\n"
+" Munging Considered Useful</a> for a dissenting opinion.\n"
+"\n"
+" <p>Some mailing lists have restricted posting privileges, with "
+"a\n"
+" parallel list devoted to discussions. Examples are `patches' "
+"or\n"
+" `checkin' lists, where software changes are posted by a "
+"revision\n"
+" control system, but discussion about the changes occurs on a\n"
+" developers mailing list. To support these types of mailing\n"
+" lists, specify the explicit <tt>Reply-To:</tt> address here. "
+"You\n"
+" must also specify <tt>Explicit address</tt> in the\n"
+" <tt>reply_goes_to_list</tt>\n"
+" variable.\n"
+"\n"
+" <p>Note that if the original message contains a\n"
+" <tt>Reply-To:</tt> header, it will not be changed."
+msgstr ""
+"Az itt megjelenõ cím kerül a <tt>Reply-To:</tt> mezõbe, amikor a\n"
+"<a href=\"?VARHELP=general/reply_goes_to_list\">válasz a listára</a>\n"
+"opció <em>Megadott cím</em>re van beállítva.\n"
+"\n"
+"<p>Sok dolog indokolja, hogy a <tt>Reply-To:</tt> mezõt ne változtassuk "
+"meg.\n"
+"Magyarázat lehet erre az, hogy számos levelezõkliens a <tt>Reply-To:</tt>\n"
+"alapján küldi el a válaszokat el. Másik indok lehet, hogy a <tt>Reply-To:</"
+"tt>\n"
+"megváltoztatásával nehezebb lesz magánba válaszolni a levélre. Errõl "
+"bõvebben\n"
+"a <a href=\"http://www.unicom.com/pw/reply-to-harmful.html\">\n"
+"`Reply-To' Munging Considered Harmful</a> oldalon lehet olvasni. Lásd még a "
+"<a\n"
+"href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml\">Reply-To\n"
+"Munging Considered Useful</a> oldalt, hogy esetleg mégis miért lehet hasznos "
+"ez a beállítás.\n"
+"\n"
+"<p>Néhány levelezõlistánál korlátozva van a levél beküldés lehetõsége, mert "
+"egy\n"
+"másik levelezõlistán történik a tényleges levelezés. Ilyen listák többnyire "
+"a `patches'\n"
+"vagy `checkin' listák, ahol bejelentések hangoznak el "
+"szoftverváltozásokról,\n"
+"míg a változások megvitatása a fejlesztõi listán történik. Ezen listákhoz "
+"külön\n"
+"meg kell adni a <tt>Reply-To:</tt> mezõt. Ezen felül a <tt>válasz_a_listára</"
+"tt>\n"
+"változónak is értéket kell adni a <tt>Megadott cím</tt>-nél.\n"
+"\n"
+"<p>Ha már van <tt>Reply-To:</tt> mezõ az eredeti levélben, akkor\n"
+"azt nem írja felül."
+
+#: Mailman/Gui/General.py:230
+msgid "Umbrella list settings"
+msgstr "Gyüjtõlisták beállításai"
+
+#: Mailman/Gui/General.py:233
+msgid ""
+"Send password reminders to, eg, \"-owner\" address instead of\n"
+" directly to user."
+msgstr ""
+"A jelszó emlékeztetõk nem közvetlenül a felhasználókhoz, hanem pl. az \"-"
+"owner\" címre legyenek elküldve."
+
+#: Mailman/Gui/General.py:236
+msgid ""
+"Set this to yes when this list is intended to cascade only\n"
+" to other mailing lists. When set, meta notices like\n"
+" confirmations and password reminders will be directed to an\n"
+" address derived from the member's address - it will have the\n"
+" value of \"umbrella_member_suffix\" appended to the member's\n"
+" account name."
+msgstr ""
+"<em>Igen</em>re kell állítani, amikor a lista más levelezõlisták "
+"gyûjtõlistája. Beállításával az adminisztrációs üzenetek, mint a "
+"megerõsítések, jelszó emlékeztetõk, nem közvetlenül a listatag e-mail címére "
+"lesznek elküldve, hanem a\n"
+"<a href=\"?VARHELP=general/umbrella_member_suffix\">gyûjtõ tag utórész</"
+"a>ben megadott értékkel bõvített e-mail címére."
+
+#: Mailman/Gui/General.py:244
+msgid ""
+"Suffix for use when this list is an umbrella for other\n"
+" lists, according to setting of previous \"umbrella_list\"\n"
+" setting."
+msgstr ""
+"Más listák gyûjtõlistája esetén használandó utórész, ha ez az elõzõ "
+"\"gyûjtõ_lista\" részben kérve lett."
+
+#: Mailman/Gui/General.py:248
+msgid ""
+"When \"umbrella_list\" is set to indicate that this list has\n"
+" other mailing lists as members, then administrative notices "
+"like\n"
+" confirmations and password reminders need to not be sent to "
+"the\n"
+" member list addresses, but rather to the owner of those member\n"
+" lists. In that case, the value of this setting is appended to\n"
+" the member's account name for such notices. `-owner' is the\n"
+" typical choice. This setting has no effect when \"umbrella_list"
+"\"\n"
+" is \"No\"."
+msgstr ""
+"\"Gyûjtõlista\" esetén, amikor csak más levelezõlisták a tagok, az "
+"adminisztrációs üzenetek, mint például megerõsítések, jelszó emlékeztetõ, "
+"nem a tagok címére lesznek elküldve, hanem a listák megfelelõ "
+"tulajdonosainak. Ebben az esetben a beállított érték a fenti üzenetekben a "
+"felhasználói név alatt fog megjelenni. Általában '-owner'-t adnak ide meg. A "
+"beállításnak nincs hatása, ha a\n"
+"<a href=\"?VARHELP=general/umbrella_list\">gyûjtõlista</a> <em>Nem</em>re "
+"van állítva."
+
+#: Mailman/Gui/General.py:260
+msgid "Send monthly password reminders?"
+msgstr "Havonta elküldésre kerüljön a jelszó emlékeztetõ?"
+
+#: Mailman/Gui/General.py:262
+msgid ""
+"Turn this on if you want password reminders to be sent once\n"
+" per month to your members. Note that members may disable "
+"their\n"
+" own individual password reminders."
+msgstr ""
+"Bekapcsolásával a tagok havonta megkapják a jelszó emlékeztetõ üzenetet.\n"
+"\t A listatagok saját jelszó emlékeztetõ értesítésüket\n"
+"\t ezen beállítástól függetlenül is szabályozhatják."
+
+#: Mailman/Gui/General.py:267
+msgid ""
+"List-specific text prepended to new-subscriber welcome\n"
+" message"
+msgstr ""
+"Az új tagoknak elküldendõ üdvözlõ szöveg elé beszúrandó, listára jellemzõ "
+"szöveg."
+
+#: Mailman/Gui/General.py:270
+msgid ""
+"This value, if any, will be added to the front of the\n"
+" new-subscriber welcome message. The rest of the welcome "
+"message\n"
+" already describes the important addresses and URLs for the\n"
+" mailing list, so you don't need to include any of that kind of\n"
+" stuff here. This should just contain mission-specific kinds "
+"of\n"
+" things, like etiquette policies or team orientation, or that "
+"kind\n"
+" of thing.\n"
+"\n"
+" <p>Note that this text will be wrapped, according to the\n"
+" following rules:\n"
+" <ul><li>Each paragraph is filled so that no line is longer "
+"than\n"
+" 70 characters.\n"
+" <li>Any line that begins with whitespace is not filled.\n"
+" <li>A blank line separates paragraphs.\n"
+" </ul>"
+msgstr ""
+"Az itt megadott szöveg, ha van, az új tagokat üdvözlõ szöveg elé fog "
+"kerülni. Az üdvözlõ szöveg a levelezõlistához kapcsolódó fontosabb címeket, "
+"URL-ket már tartalmazza, így azokat nem kell külön megadni. A szöveg ezért "
+"inkább csak egyéb fontos információt, mint például a listán való "
+"viselkedést, a lista érdeklõdési körét tartalmazza.\n"
+"\t<p>Fontos tudnod, hogy a szöveg az alábbi feltételek szerint fog\n"
+"\tmegjelenni:\n"
+"\t<ul><li>Minden bekezdés sorkizárt lesz, a sorok 70 karakter után "
+"megtörnek.\n"
+"\t <li>A szóközzel kezdõdõ sorokat nem lesznek sorkizártak.\n"
+"\t <li>Üres sor új bekezdést jelent.\n"
+"\t</ul>"
+
+#: Mailman/Gui/General.py:287
+msgid "Send welcome message to newly subscribed members?"
+msgstr "Feliratkozáskor elküldésre kerüljön az üdvözlõ szöveg?"
+
+#: Mailman/Gui/General.py:288
+msgid ""
+"Turn this off only if you plan on subscribing people manually\n"
+" and don't want them to know that you did so. This option is "
+"most\n"
+" useful for transparently migrating lists from some other "
+"mailing\n"
+" list manager to Mailman."
+msgstr ""
+"Kikapcsolásával a listatagokat tudtuk nélkül, manuálisan lehet a listára "
+"felvenni,\n"
+"miközben errõl õk nem kapnak értesítést. Használata elõnyös a Mailman-tõl\n"
+"eltérõ levelezõlista-kezelõ programból való listák átvételekor."
+
+#: Mailman/Gui/General.py:294
+msgid ""
+"Text sent to people leaving the list. If empty, no special\n"
+" text will be added to the unsubscribe message."
+msgstr ""
+"Üzenet a listáról leiratkozóknak. Ha üres, akkor csak a leiratkozási szöveg "
+"kerül elküldésre."
+
+#: Mailman/Gui/General.py:298
+msgid "Send goodbye message to members when they are unsubscribed?"
+msgstr "Távozáskor elküldésre kerüljön a leiratkozási szöveg?"
+
+#: Mailman/Gui/General.py:301
+msgid ""
+"Should the list moderators get immediate notice of new\n"
+" requests, as well as daily notices about collected ones?"
+msgstr ""
+"Az adminisztrátort azonnal értesítse az újabb teendõkrõl,\n"
+"valamint naponta értesítést küldjön a teendõkrõl?"
+
+#: Mailman/Gui/General.py:304
+msgid ""
+"List moderators (and list administrators) are sent daily\n"
+" reminders of requests pending approval, like subscriptions to "
+"a\n"
+" moderated list, or postings that are being held for one reason "
+"or\n"
+" another. Setting this option causes notices to be sent\n"
+" immediately on the arrival of new requests as well."
+msgstr ""
+"A lista adminisztrátoroknak minden nap emlékeztetõül elküldésre kerül a "
+"beavatkozásra váró teendõk listája, mint például moderált listára történõ "
+"feliratkozások vagy egy visszatartott levél engedélyezésének kezelése. Az "
+"opció beállításával az új kérelemmel egy idõben kerül elküldésre a "
+"beavatkozásra felkérõ levél."
+
+#: Mailman/Gui/General.py:311
+msgid ""
+"Should administrator get notices of subscribes and\n"
+" unsubscribes?"
+msgstr "Értesítést kapjon az adminisztrátor a fel- és leiratkozásokról?"
+
+#: Mailman/Gui/General.py:316
+msgid "Send mail to poster when their posting is held for approval?"
+msgstr ""
+"Értesítve legyen a feladó levele engedélyezésig történõ visszatartásáról?"
+
+#: Mailman/Gui/General.py:318
+msgid ""
+"Approval notices are sent when mail triggers certain of the\n"
+" limits <em>except</em> routine list moderation and spam "
+"filters,\n"
+" for which notices are <em>not</em> sent. This option "
+"overrides\n"
+" ever sending the notice."
+msgstr ""
+"A jóváhagyási értesítés elküldésre kerül, ha a levelet néhány korlátozás "
+"miatt engedélyeztetni kell, <em>kivétel</em> ha a korlátozások szerkesztõi "
+"vagy spam specifikusak, ekkor értesítés <em>nem</em> kerül elküldésre. Az "
+"itt beállított érték mindig érvényes lesz."
+
+#: Mailman/Gui/General.py:323
+msgid "Additional settings"
+msgstr "További beállítások"
+
+#: Mailman/Gui/General.py:326
+msgid "Emergency moderation of all list traffic."
+msgstr "Vészhelyzet! Az összes listaforgalom szerkesztése."
+
+#: Mailman/Gui/General.py:327
+msgid ""
+"When this option is enabled, all list traffic is emergency\n"
+" moderated, i.e. held for moderation. Turn this option on when\n"
+" your list is experiencing a flamewar and you want a cooling "
+"off\n"
+" period."
+msgstr ""
+"Az opció beállításával vészhelyzetben az összes listaforgalmat\n"
+"korlátozni lehet, pl. az üzenetek visszatartását. Akkor használjuk\n"
+"ezt a beállítást, ha a listánkon nagy mértékû ócsárolás (flamewar)\n"
+"tört ki és szeretnénk a kedélyeket lecsillapítani."
+
+#: Mailman/Gui/General.py:339
+msgid ""
+"Default options for new members joining this list.<input\n"
+" type=\"hidden\" name=\"new_member_options\" value=\"ignore\">"
+msgstr ""
+"A listára frissen feliratkozottak alapbeállításai.<input\n"
+" type=\"hidden\" name=\"new_member_options\" value=\"ignore\">"
+
+#: Mailman/Gui/General.py:342
+msgid ""
+"When a new member is subscribed to this list, their initial\n"
+" set of options is taken from the this variable's setting."
+msgstr ""
+"Az itt megadott beállításokkal fog rendelkezni minden frissen\n"
+"felvett listatag."
+
+#: Mailman/Gui/General.py:346
+msgid ""
+"(Administrivia filter) Check postings and intercept ones\n"
+" that seem to be administrative requests?"
+msgstr ""
+"(Adminisztrációs szûrõ) Figyelje és visszatartsa azokat a leveleket, amelyek "
+"adminisztrációs üzeneteket tartalmaznak?"
+
+#: Mailman/Gui/General.py:349
+msgid ""
+"Administrivia tests will check postings to see whether it's\n"
+" really meant as an administrative request (like subscribe,\n"
+" unsubscribe, etc), and will add it to the the administrative\n"
+" requests queue, notifying the administrator of the new "
+"request,\n"
+" in the process."
+msgstr ""
+"Az adminisztrációs szûrõ a különbözõ adminisztrációs kérelmeket (mint pl. "
+"subscribe, unsubscribe, stb.) figyeli. Az adminisztrációs teendõk listájába "
+"kerülnek a kérelmek.\n"
+"Az adminisztrátort automatikusan értesíti az újabb kérelemrõl."
+
+#: Mailman/Gui/General.py:356
+msgid ""
+"Maximum length in kilobytes (KB) of a message body. Use 0\n"
+" for no limit."
+msgstr ""
+"A levél törzsének maximális mérete kilóbájtban (KB). 0 esetén nincs méret "
+"korlátozás."
+
+#: Mailman/Gui/General.py:360
+msgid "Host name this list prefers for email."
+msgstr "A gazdagép neve, ahol a lista fut."
+
+#: Mailman/Gui/General.py:362
+msgid ""
+"The \"host_name\" is the preferred name for email to\n"
+" mailman-related addresses on this host, and generally should "
+"be\n"
+" the mail host's exchanger address, if any. This setting can "
+"be\n"
+" useful for selecting among alternative names of a host that "
+"has\n"
+" multiple addresses."
+msgstr ""
+"A \"host_name\" a gazdagépen elõforduló Mailman-hez kapcsolódó e-mailben "
+"szereplõ gépnév, amelyen keresztül a levelezés történik. Használata több "
+"címmel rendelkezõ gazdagépek esetén szükséges, amikor az eltérõ nevek közül "
+"kell a megfelelõt kijelölni."
+
+#: Mailman/Gui/General.py:374
+msgid ""
+"Should messages from this mailing list include the\n"
+" <a href=\"http://www.faqs.org/rfcs/rfc2369.html\">RFC 2369</"
+"a>\n"
+" (i.e. <tt>List-*</tt>) headers? <em>Yes</em> is highly\n"
+" recommended."
+msgstr ""
+"A levelezõlistáról érkezõ üzenetekben szerepeljenek-e az\n"
+" \t\t <a href=\"http://www.faqs.org/rfc/rfc2369.html\">RFC 2369</a>-"
+"ben meghatározott fejlécek (pl. <tt>List-*</tt>)?\n"
+" Erõsen ajánlott az <em>Igen</em> beállítás."
+
+#: Mailman/Gui/General.py:379
+msgid ""
+"RFC 2369 defines a set of List-* headers that are\n"
+" normally added to every message sent to the list "
+"membership.\n"
+" These greatly aid end-users who are using standards "
+"compliant\n"
+" mail readers. They should normally always be enabled.\n"
+"\n"
+" <p>However, not all mail readers are standards compliant "
+"yet,\n"
+" and if you have a large number of members who are using\n"
+" non-compliant mail readers, they may be annoyed at these\n"
+" headers. You should first try to educate your members as "
+"to\n"
+" why these headers exist, and how to hide them in their "
+"mail\n"
+" clients. As a last resort you can disable these headers, "
+"but\n"
+" this is not recommended (and in fact, your ability to "
+"disable\n"
+" these headers may eventually go away)."
+msgstr ""
+"Az RFC 2369-ben vannak meghatározva azok a List-* fejlécek, amelyeket\n"
+"be kell szúrni a levelezõlistatagoknak küldendõ levelekbe. A\n"
+"szabványos levelezõprogramokat használó felhasználók munkáját segítik\n"
+"ezek a fejlécek. Ezért alapesetben ezeket ajánlott fel kell tüntetni.\n"
+"\n"
+"<p>Azonban nem mindegyik levelezõprogram ismeri még ezt a szabványt, így\n"
+"azoknál a listatagoknál, akik ilyen a programokat használnak zavaró\n"
+"lehet e fejlécek használata. Legelõször ezeknek a tagoknak a fejlécek\n"
+"fontosságát kell elmagyarázni, és levelezõprogramjukat beállítani, hogy\n"
+"az a felesleges fejléceket elrejtse. Végsõ esetben kikapcsolhatod ezen "
+"fejlécek\n"
+"beszúrását, azonban ez nem ajánlott (és lehet, hogy a \n"
+"késõbbiekben már nem is lesz erre opció)."
+
+#: Mailman/Gui/General.py:397
+msgid "Should postings include the <tt>List-Post:</tt> header?"
+msgstr ""
+"A levelezõlistáról érkezõ üzenetekben szerepeljen a <tt>List-Post:</tt> "
+"fejléc?"
+
+#: Mailman/Gui/General.py:398
+msgid ""
+"The <tt>List-Post:</tt> header is one of the headers\n"
+" recommended by\n"
+" <a href=\"http://www.faqs.org/rfcs/rfc2369.html\">RFC 2369</"
+"a>.\n"
+" However for some <em>announce-only</em> mailing lists, only a\n"
+" very select group of people are allowed to post to the list; "
+"the\n"
+" general membership is usually not allowed to post. For lists "
+"of\n"
+" this nature, the <tt>List-Post:</tt> header is misleading.\n"
+" Select <em>No</em> to disable the inclusion of this header. "
+"(This\n"
+" does not affect the inclusion of the other <tt>List-*:</tt>\n"
+" headers.)"
+msgstr ""
+"A <tt>List-Post:</tt> fejléc egyike az\n"
+"<a href=\"http://www.faqs.org/rfc/rfc2369.html\">RFC 2369</a>-ben\n"
+"ajánlott fejléceknek. Néhány, csak bejelentéseket\n"
+"szolgáló (announce-only) listánál a tagok csak egy bizonyos csoportjának "
+"van, a\n"
+"többségnek pedig nincs joga üzenetet beküldeni. Ilyen esetekben a <tt>List-"
+"Post:</tt>\n"
+"fejléc zavaró lehet. <em>Nem</em>et választva a levelekbe nem kerül be ez\n"
+"a fejléc. (Ez a beállítás nincsen hatással a\n"
+"<a href=\"?VARHELP=general/include_rfc2369_headers\"><tt>List-*:</tt> "
+"fejlécek</a>\n"
+"beállítására.)"
+
+#: Mailman/Gui/General.py:416
+msgid ""
+"<b>real_name</b> attribute not\n"
+" changed! It must differ from the list's name by case\n"
+" only."
+msgstr ""
+"<p><b>real_name</b> jellemzõt nem\n"
+" változtattam meg! A lista nevétõl csak kis-, nagybetûvel "
+"térhet\n"
+" el az itt megadott név."
+
+#: Mailman/Gui/General.py:437
+msgid ""
+"You cannot add a Reply-To: to an explicit\n"
+" address if that address is blank. Resetting these values."
+msgstr ""
+"A Reply-To: mezõnek nem lett érték megadva, a válasz címnek nem lehet\n"
+"semmit beállítani. Ezeket a beállításokat töröltem."
+
+#: Mailman/Gui/Language.py:34
+msgid "Language&nbsp;options"
+msgstr "Nyelvi&nbsp;beállítások"
+
+#: Mailman/Gui/Language.py:66
+msgid "Natural language (internationalization) options."
+msgstr "Támogatott nyelvek beállítása."
+
+#: Mailman/Gui/Language.py:71
+msgid "Default language for this list."
+msgstr "A lista alapértelmezett nyelve."
+
+#: Mailman/Gui/Language.py:72
+msgid ""
+"This is the default natural language for this mailing list.\n"
+" If <a href=\"?VARHELP=language/available_languages\">more than "
+"one\n"
+" language</a> is supported then users will be able to select "
+"their\n"
+" own preferences for when they interact with the list. All "
+"other\n"
+" interactions will be conducted in the default language. This\n"
+" applies to both web-based and email-based messages, but not to\n"
+" email posted by list members."
+msgstr ""
+"Ez a lista alapértelmezett nyelve.\n"
+"Ha <a href=\"?VARHELP=language/available_languages\">több nyelv</a> van "
+"beállítva, akkor a felhasználó választhatja ki, hogy milyen\n"
+"nyelven szeretné a listát használni. Alapértelmezett nyelven\n"
+"jelenik meg minden más web-, vagy e-mail alapú üzenet. A \n"
+"felhasználó leveleinek nyelvére természetesen nincs hatással a \n"
+"beállítás."
+
+#: Mailman/Gui/Language.py:82
+msgid "Languages supported by this list."
+msgstr "Választható nyelvek a listán."
+
+#: Mailman/Gui/Language.py:84
+msgid ""
+"These are all the natural languages supported by this list.\n"
+" Note that the\n"
+" <a href=\"?VARHELP=language/preferred_language\">default\n"
+" language</a> must be included."
+msgstr ""
+"A listán beállított nyelvek sora. Fontos, hogy az\n"
+"<a href=\"?VARHELP=language/preferred_language\">alapértelmezett nyelv</a>\n"
+"a listában itt is megtalálható."
+
+#: Mailman/Gui/Language.py:90
+msgid "Always"
+msgstr "Mindig"
+
+#: Mailman/Gui/Language.py:90
+msgid "As needed"
+msgstr "Ha szükséges"
+
+#: Mailman/Gui/Language.py:90
+msgid "Never"
+msgstr "Ne"
+
+#: Mailman/Gui/Language.py:91
+msgid ""
+"Encode the\n"
+" <a href=\"?VARHELP=general/subject_prefix\">subject\n"
+" prefix</a> even when it consists of only ASCII characters?"
+msgstr ""
+"Kódoljuk a \n"
+"<a href=\"?VARHELP=general/subject_prefix\">tárgy elé\n"
+"beszúrandó szöveget</a> akkor is, ha az csak ASCII karaktereket tartalmaz?"
+
+#: Mailman/Gui/Language.py:95
+msgid ""
+"If your mailing list's default language uses a non-ASCII\n"
+" character set and the prefix contains non-ASCII characters, "
+"the\n"
+" prefix will always be encoded according to the relevant\n"
+" standards. However, if your prefix contains only ASCII\n"
+" characters, you may want to set this option to <em>Never</em> "
+"to\n"
+" disable prefix encoding. This can make the subject headers\n"
+" slightly more readable for users with mail readers that don't\n"
+" properly handle non-ASCII encodings.\n"
+"\n"
+" <p>Note however, that if your mailing list receives both "
+"encoded\n"
+" and unencoded subject headers, you might want to choose <em>As\n"
+" needed</em>. Using this setting, Mailman will not encode "
+"ASCII\n"
+" prefixes when the rest of the header contains only ASCII\n"
+" characters, but if the original header contains non-ASCII\n"
+" characters, it will encode the prefix. This avoids an "
+"ambiguity\n"
+" in the standards which could cause some mail readers to "
+"display\n"
+" extra, or missing spaces between the prefix and the original\n"
+" header."
+msgstr ""
+"Ha a levelezõlistánk alapértelmezettt nyelve nem-ASCII karaktereket is\n"
+"használ és a prefixben nem-ASCII karaktereket is megadtunk, akkor a\n"
+"prefix a szükséges kódolás szerint fog módosulni. Azonban, ha a prefix\n"
+"csak ASCII karaktereket tartalmaz, akkor ezt az opciót állítsuk\n"
+"<em>Ne</em>re. Ezzel elérjük, hogy azoknál a felhasználóknál a levél\n"
+"tárgya olvashatóbban jelenik meg, akiknek a levelezõprogramja nem\n"
+"támogatja megfelelõen a nem-ASCII kódólást.\n"
+"\n"
+"<p>Fontos tudni, hogy azon levelezõlistáknál ahova mind kódolt és\n"
+"kódolatlan tárgyú üzenetek érkeznek a <em>Ha szükséges</em> beállítást\n"
+"célszerû használni. Ilyenkor csak akkor kódolja a prefixet, ha a levél\n"
+"fejléce már eredetileg tartalmazott nem-ASCII karaktereket. Ezzel\n"
+"megelõzhetjük, hogy néhány levelezõprogramban a prefix és az eredeti\n"
+"szöveg között egy extra szóköz jelenjen meg, vagy azok összefolyjanak."
+
+#: Mailman/Gui/Membership.py:26
+msgid "Membership&nbsp;Management"
+msgstr "Listatagok&nbsp;kezelése"
+
+#: Mailman/Gui/Membership.py:30
+msgid "Membership&nbsp;List"
+msgstr "Tagok&nbsp;listája"
+
+#: Mailman/Gui/Membership.py:31
+msgid "Mass&nbsp;Subscription"
+msgstr "Több&nbsp;tag&nbsp;felvétele"
+
+#: Mailman/Gui/Membership.py:32
+msgid "Mass&nbsp;Removal"
+msgstr "Több&nbsp;tag&nbsp;törlése"
+
+#: Mailman/Gui/NonDigest.py:34
+msgid "Non-digest&nbsp;options"
+msgstr "Nem-digest&nbsp;küldési&nbsp;beállítások"
+
+#: Mailman/Gui/NonDigest.py:42
+msgid "Policies concerning immediately delivered list traffic."
+msgstr "Beállítások az azonnal kimenõ levelekre."
+
+#: Mailman/Gui/NonDigest.py:45
+msgid ""
+"Can subscribers choose to receive mail immediately, rather\n"
+" than in batched digests?"
+msgstr ""
+"Választhatnak feliratkozáskor a tagok, hogy a leveleket külön-külön azonnal "
+"vagy egyben kapják?"
+
+#: Mailman/Gui/NonDigest.py:52
+msgid "Full Personalization"
+msgstr "Teljesen egyedi levelek"
+
+#: Mailman/Gui/NonDigest.py:54
+msgid ""
+"Should Mailman personalize each non-digest delivery?\n"
+" This is often useful for announce-only lists, but <a\n"
+" href=\"?VARHELP=nondigest/personalize\">read the details</"
+"a>\n"
+" section for a discussion of important performance\n"
+" issues."
+msgstr ""
+"A nem-digest levelek egyénre szabottak legyenek?\n"
+"\t\t Olyan listáknál elönyös, ahol csak bejelentések \n"
+"\t\t (announce-only) fordulnak el, de elõbb olvassuk el\n"
+" <a href=\"?VARHELP=nondigest/personalize#personalize\">teljesítményt "
+"érintõ</a>\n"
+"magyarázatot."
+
+#: Mailman/Gui/NonDigest.py:60
+msgid ""
+"Normally, Mailman sends the regular delivery messages to\n"
+" the mail server in batches. This is much more efficent\n"
+" because it reduces the amount of traffic between Mailman "
+"and\n"
+" the mail server.\n"
+"\n"
+" <p>However, some lists can benefit from a more "
+"personalized\n"
+" approach. In this case, Mailman crafts a new message for\n"
+" each member on the regular delivery list. Turning this\n"
+" feature on may degrade the performance of your site, so "
+"you\n"
+" need to carefully consider whether the trade-off is worth "
+"it,\n"
+" or whether there are other ways to accomplish what you "
+"want.\n"
+" You should also carefully monitor your system load to make\n"
+" sure it is acceptable.\n"
+"\n"
+" <p>Select <em>No</em> to disable personalization and send\n"
+" messages to the members in batches. Select <em>Yes</em> "
+"to\n"
+" personalize deliveries and allow additional substitution\n"
+" variables in message headers and footers (see below). In\n"
+" addition, by selecting <em>Full Personalization</em>, the\n"
+" <code>To</code> header of posted messages will be modified "
+"to\n"
+" include the member's address instead of the list's posting\n"
+" address.\n"
+"\n"
+" <p>When personalization is enabled, a few more expansion\n"
+" variables that can be included in the <a\n"
+" href=\"?VARHELP=nondigest/msg_header\">message header</a> "
+"and\n"
+" <a href=\"?VARHELP=nondigest/msg_footer\">message footer</"
+"a>.\n"
+"\n"
+" <p>These additional substitution variables will be "
+"available\n"
+" for your headers and footers, when this feature is "
+"enabled:\n"
+"\n"
+" <ul><li><b>user_address</b> - The address of the user,\n"
+" coerced to lower case.\n"
+" <li><b>user_delivered_to</b> - The case-preserved "
+"address\n"
+" that the user is subscribed with.\n"
+" <li><b>user_password</b> - The user's password.\n"
+" <li><b>user_name</b> - The user's full name.\n"
+" <li><b>user_optionsurl</b> - The url to the user's "
+"option\n"
+" page.\n"
+" </ul>\n"
+" "
+msgstr ""
+"Alapesetben a Mailman a hagyományos levelek továbbításánál kötegelve\n"
+"küldi a levelezõszervernek a leveleket. Ez a módszer nagyon hatékony, mert\n"
+"csökkenti a Mailman és a levelezõszerver között az adatforgalmat.\n"
+"\n"
+"<p>Azonban néhány listánál elõnyösebb az egyéni formátumú levelek\n"
+"küldése. Ebben az esetben a Mailman minden egyes tagnak a küldendõ levél\n"
+"egy egyedi változatát kézbesíti. Az opció beállításával a rendszered\n"
+"terhelése megnövekszik, így jól meg kell fontolni, hogy megéri-e ez a\n"
+"plusz szolgáltatás a megnövekedett terhelést. Fontos, hogy a\n"
+"rendszered terhelésének (<em>system load</em>) figyelésével meg kell\n"
+"bizonyosodni arról, hogy a rendszer így is képes-e a kiszolgálásra.\n"
+"\n"
+"<p>Az egyéni levelek küldésének kikapcsolásához válaszd a <em>Nem</em>\n"
+"kapcsolót, ekkor a leveleket kötegelve továbbítja a tagoknak a Mailman.\n"
+"Az egyéni levelek küldését az <em>Igen</em> kapcsolóval lehet engedélyezni,\n"
+"amikor a késõbbiekben ismertetettek szerint a levél fejlécében és "
+"láblécében\n"
+"további változókat is meg lehet adni. A <em>Teljesen egyedi levelek</em>\n"
+"kapcsolóval a levél <code>To:</code> fejlécébe csak a felhasználó\n"
+"saját címe kerül, a lista címe helyett.. Ekkor úgy tûnik, mintha a levél "
+"közvetlenül a\n"
+"felhasználónak és nem a listának lett volna címezve.\n"
+"\n"
+"<p>Az egyedi levél küldésnél a <a href=\"?VARHELP=nondigest/msg_header"
+"\">levél\n"
+"fejlécében</a> és <a href=\"?VARHELP=nondigest/msg_footer\">levél\n"
+"láblécében</a> használni lehet majd az alábbi változókat is.\n"
+"\n"
+"<p>A következõ kiegészítõ változók használhatóak még, ha engedélyezve\n"
+"van a személyre szabott kézbesítés:\n"
+"\n"
+" <ul><li><b>user_address</b> - A felhasználó címe,\n"
+" kisbetûs formában.\n"
+" <li><b>user_delivered_to</b> - A felhasználó feliratkozáskor\n"
+" megadott e-mail címe.\n"
+" <li><b>user_password</b> - A felhasználó jelszava.\n"
+" <li><b>user_name</b> - A felhasználó teljese neve.\n"
+" <li><b>user_optionsurl</b> - A felhasználó listatagsági oldalának\n"
+" címe.\n"
+" </ul>\n"
+" "
+
+#: Mailman/Gui/NonDigest.py:108
+msgid "Header added to mail sent to regular list members"
+msgstr "Rendes listatagoknak küldött levelekhez csatolandó fejléc"
+
+#: Mailman/Gui/NonDigest.py:109
+msgid ""
+"Text prepended to the top of every immediately-delivery\n"
+" message. "
+msgstr "Szöveg, amely minden kimenõ levél elejére kerül. "
+
+#: Mailman/Gui/NonDigest.py:114
+msgid "Footer added to mail sent to regular list members"
+msgstr "Rendes tagoknak küldött levelekhez csatolandó lábléc"
+
+#: Mailman/Gui/NonDigest.py:115
+msgid ""
+"Text appended to the bottom of every immediately-delivery\n"
+" message. "
+msgstr "Minden azonnal kimenõ levél végéhez csatolandó szöveg. "
+
+#: Mailman/Gui/Passwords.py:27
+msgid "Passwords"
+msgstr "Jelszavak"
+
+#: Mailman/Gui/Privacy.py:28
+msgid "Privacy options"
+msgstr "Privát&nbsp;beállítások"
+
+#: Mailman/Gui/Privacy.py:32
+msgid "Subscription&nbsp;rules"
+msgstr "Feliratkozási&nbsp;szabályok"
+
+#: Mailman/Gui/Privacy.py:33
+msgid "Sender&nbsp;filters"
+msgstr "Feladók&nbsp;szûrése"
+
+#: Mailman/Gui/Privacy.py:34
+msgid "Recipient&nbsp;filters"
+msgstr "Címzettek&nbsp;szûrése"
+
+#: Mailman/Gui/Privacy.py:35
+msgid "Spam&nbsp;filters"
+msgstr "Spam&nbsp;szûrés"
+
+#: Mailman/Gui/Privacy.py:49 Mailman/Gui/Usenet.py:61
+msgid "None"
+msgstr "Semmi"
+
+#: Mailman/Gui/Privacy.py:50 Mailman/Gui/Privacy.py:73
+msgid "Confirm"
+msgstr "Megerõsít"
+
+#: Mailman/Gui/Privacy.py:51 Mailman/Gui/Privacy.py:74
+msgid "Require approval"
+msgstr "Engedélyezés"
+
+#: Mailman/Gui/Privacy.py:52 Mailman/Gui/Privacy.py:75
+msgid "Confirm and approve"
+msgstr "Megerõsítés és engedélyezés"
+
+#: Mailman/Gui/Privacy.py:54 Mailman/Gui/Privacy.py:77
+msgid "What steps are required for subscription?<br>"
+msgstr "Milyen lépések szükségesek a feliratkozáshoz?<br>"
+
+#: Mailman/Gui/Privacy.py:55
+msgid ""
+"None - no verification steps (<em>Not\n"
+" Recommended </em>)<br>\n"
+" Confirm (*) - email confirmation step required "
+"<br>\n"
+" Require approval - require list administrator\n"
+" Approval for subscriptions <br>\n"
+" Confirm and approve - both confirm and approve\n"
+" \n"
+" <p>(*) when someone requests a subscription,\n"
+" Mailman sends them a notice with a unique\n"
+" subscription request number that they must reply "
+"to\n"
+" in order to subscribe.<br>\n"
+"\n"
+" This prevents mischievous (or malicious) people\n"
+" from creating subscriptions for others without\n"
+" their consent."
+msgstr ""
+"Semmi - nincsen ellenõrzés (<em>Nem ajánlott</em>)<br>\n"
+"\t Megerõsítés (*) - e-mailben történõ megerõsítés szükséges <br>\n"
+"\t Engedélyezés - a lista adminisztrátorának engedélyezése\n"
+"\t szükséges a feliratkozáshoz <br>\n"
+"\t Megerõsítés és engedélyezés - megerõsítés és engedélyezés együtt "
+"szükségeltetik\n"
+"\t <p> (*) feliratkozási kérelemkor a Mailman egy egyedi feliratkozási "
+"számmal ellátott üzenetet küld a kérelmezõnek, amelyre annak a feliratkozás "
+"megerõsítéseként válaszolnia kell.<br> Ezzel elkerülhetõ mások jogosulatlan "
+"felirattatása."
+
+#: Mailman/Gui/Privacy.py:78
+msgid ""
+"Confirm (*) - email confirmation required <br>\n"
+" Require approval - require list administrator\n"
+" approval for subscriptions <br>\n"
+" Confirm and approve - both confirm and approve\n"
+" \n"
+" <p>(*) when someone requests a subscription,\n"
+" Mailman sends them a notice with a unique\n"
+" subscription request number that they must reply "
+"to\n"
+" in order to subscribe.<br> This prevents\n"
+" mischievous (or malicious) people from creating\n"
+" subscriptions for others without their consent."
+msgstr ""
+"Megerõsítés (*) - e-mailben történõ megerõsítés szükséges <br>Engedélyezés - "
+"a lista adminisztrátorának engedélyezése szükséges a feliratkozáshoz "
+"<br>Megerõsítés és engedélyezés - megerõsítés és engedélyezés együtt "
+"szükségeltetik<p> (*) feliratkozási kérelemkor a Mailman egy egyedi "
+"feliratkozási számmal ellátott üzenetet küld a kérelmezõnek, amelyre annak a "
+"feliratkozás megerõsítéseként válaszolnia kell.<br> Ezzel elkerülhetõ mások "
+"jogosulatlan felirattatása."
+
+#: Mailman/Gui/Privacy.py:94
+msgid ""
+"This section allows you to configure subscription and\n"
+" membership exposure policy. You can also control whether this\n"
+" list is public or not. See also the\n"
+" <a href=\"%(admin)s/archive\">Archival Options</a> section for\n"
+" separate archive-related privacy settings."
+msgstr ""
+"A feliratkozások kezelését és a tagok listájának elérését lehet "
+"szabályozni.\n"
+"A beállítással továbbá azt is szabályozni lehet, hogy a lista nyilvános\n"
+"vagy sem. Lásd még az <a\n"
+" href=\"%(admin)s/archive\">Archiválási beállítások részt</a> az "
+"archívum\n"
+" elérésének külön korlátozásához."
+
+#: Mailman/Gui/Privacy.py:100
+msgid "Subscribing"
+msgstr "Feliratkozás"
+
+#: Mailman/Gui/Privacy.py:102
+msgid ""
+"Advertise this list when people ask what lists are on this\n"
+" machine?"
+msgstr ""
+"Szerepeljen a lista neve, amikor valaki a gépen mûködõ listákról érdeklõdik?"
+
+#: Mailman/Gui/Privacy.py:108
+msgid ""
+"Is the list moderator's approval required for unsubscription\n"
+" requests? (<em>No</em> is recommended)"
+msgstr ""
+"Szükséges-e szerkesztõi jóváhagyás a listáról való leiratkozáshoz?\n"
+"\t (Ajánlott a <em>Nem</em> beállítása)"
+
+#: Mailman/Gui/Privacy.py:111
+msgid ""
+"When members want to leave a list, they will make an\n"
+" unsubscription request, either via the web or via email.\n"
+" Normally it is best for you to allow open unsubscriptions so "
+"that\n"
+" users can easily remove themselves from mailing lists (they "
+"get\n"
+" really upset if they can't get off lists!).\n"
+"\n"
+" <p>For some lists though, you may want to impose moderator\n"
+" approval before an unsubscription request is processed. "
+"Examples\n"
+" of such lists include a corporate mailing list that all "
+"employees\n"
+" are required to be members of."
+msgstr ""
+"Tagok saját magukat weben vagy e-mailen keresztül tudják a levelezõlistáról\n"
+"törölni. Általában az az elõnyös, ha a felhasználók könnyen tudnak a\n"
+"levelezõlistáról leiratkozni (különben nagyon felhúzzák magukat!), ehhez\n"
+"célszerû nyitottan hagyni a leiratkozást.\n"
+"\n"
+"<p>Azonban néhány listánál célszerû a leiratkozásokat csak a szerkesztõ\n"
+"jóváhagyásával engedélyezni. Ilyen lista lehet például egy vállalaton\n"
+"belüli lista, amelyre a cég összes alkalmazottjának fel kell iratkoznia."
+
+#: Mailman/Gui/Privacy.py:122
+msgid "Ban list"
+msgstr "Kitiltottak listája"
+
+#: Mailman/Gui/Privacy.py:124
+msgid ""
+"List of addresses which are banned from membership in this\n"
+" mailing list."
+msgstr ""
+"Azon címek listája, amelyek el vannak tiltva erre a listára való\n"
+"feliratkozástól."
+
+#: Mailman/Gui/Privacy.py:127
+msgid ""
+"Addresses in this list are banned outright from subscribing\n"
+" to this mailing list, with no further moderation required. "
+"Add\n"
+" addresses one per line; start the line with a ^ character to\n"
+" designate a regular expression match."
+msgstr ""
+"A felsorolt címekrõl történõ feliratkozások automatikusan\n"
+"el lesznek utasítva, mert tiltólistán vannak. Soronként egy címet adjunk "
+"meg;\n"
+"a reguláris keresési kifejezések jelölésére ^ jellel kezdjük a sorokat."
+
+#: Mailman/Gui/Privacy.py:132
+msgid "Membership exposure"
+msgstr "Tagok listájának megjelenítése"
+
+#: Mailman/Gui/Privacy.py:134
+msgid "Anyone"
+msgstr "Bárki"
+
+#: Mailman/Gui/Privacy.py:134
+msgid "List admin only"
+msgstr "Csak a lista admin"
+
+#: Mailman/Gui/Privacy.py:134
+msgid "List members"
+msgstr "Listatagok"
+
+#: Mailman/Gui/Privacy.py:135
+msgid "Who can view subscription list?"
+msgstr "Ki tekintheti meg a tagok listáját?"
+
+#: Mailman/Gui/Privacy.py:137
+msgid ""
+"When set, the list of subscribers is protected by member or\n"
+" admin password authentication."
+msgstr ""
+"Beállításával a tagok listáját csak maguk a tagok vagy az adminisztrátor "
+"tekintheti meg."
+
+#: Mailman/Gui/Privacy.py:141
+msgid ""
+"Show member addresses so they're not directly recognizable\n"
+" as email addresses?"
+msgstr "A tagok címeit ne szabványos e-mail címként jelenítse meg?"
+
+#: Mailman/Gui/Privacy.py:143
+msgid ""
+"Setting this option causes member email addresses to be\n"
+" transformed when they are presented on list web pages (both in\n"
+" text and as links), so they're not trivially recognizable as\n"
+" email addresses. The intention is to prevent the addresses\n"
+" from being snarfed up by automated web scanners for use by\n"
+" spammers."
+msgstr ""
+"A kapcsolóval a weblapokon (szövegként és hivatkozásként) megjelenõ e-mail "
+"címek nem szabványos, de értelmezhetõ címekké lesznek átalakítva. Így "
+"megelõzhetõ az e-mail címek automatikus azonosítása a spammerek által "
+"használt webkeresõ programok elõl."
+
+#: Mailman/Gui/Privacy.py:153
+msgid ""
+"When a message is posted to the list, a series of\n"
+" moderation steps are take to decide whether the a moderator "
+"must\n"
+" first approve the message or not. This section contains the\n"
+" controls for moderation of both member and non-member postings.\n"
+"\n"
+" <p>Member postings are held for moderation if their\n"
+" <b>moderation flag</b> is turned on. You can control whether\n"
+" member postings are moderated by default or not.\n"
+"\n"
+" <p>Non-member postings can be automatically\n"
+" <a href=\"?VARHELP=privacy/sender/accept_these_nonmembers\"\n"
+" >accepted</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/hold_these_nonmembers\">held "
+"for\n"
+" moderation</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/reject_these_nonmembers\"\n"
+" >rejected</a> (bounced), or\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >discarded</a>,\n"
+" either individually or as a group. Any\n"
+" posting from a non-member who is not explicitly accepted,\n"
+" rejected, or discarded, will have their posting filtered by the\n"
+" <a href=\"?VARHELP=privacy/sender/generic_nonmember_action"
+"\">general\n"
+" non-member rules</a>.\n"
+"\n"
+" <p>In the text boxes below, add one address per line; start the\n"
+" line with a ^ character to designate a <a href=\n"
+" \"http://www.python.org/doc/current/lib/module-re.html\"\n"
+" >Python regular expression</a>. When entering backslashes, do "
+"so\n"
+" as if you were using Python raw strings (i.e. you generally "
+"just\n"
+" use a single backslash).\n"
+"\n"
+" <p>Note that non-regexp matches are always done first."
+msgstr ""
+"A listára érkezõ levelekrõl számos lépésen keresztül dönti el a Mailman, "
+"hogy\n"
+"megjelenéséhez elõször is szerkesztõi engedély szükséges vagy sem. Az\n"
+"itt beállított értékek mind a listatagok, mind a külsõ beküldõk (nem "
+"listatagok) moderálásánál\n"
+"érvényesek lesznek.\n"
+"\n"
+"<p>A listatagok levele akkor kerül szerkesztõi jóváhagyásra, ha saját\n"
+"<b>moderált jelzõjük</b> be van kapcsolva. Megválaszthatod, hogy a tagok\n"
+"levelei alapesetben moderálással vagy anélkül jelenjenek meg.\n"
+"\n"
+"<p>Külsõ beküldõk leveleit automatikusan, egyenként vagy\n"
+"csoportba foglalva <a href=\"?VARHELP=privacy/sender/accept_these_nonmembers"
+"\"\n"
+">engedélyezheted</a>,\n"
+"<a href=\"?VARHELP=privacy/sender/hold_these_nonmembers\">jóváhagyásra\n"
+"küldheted</a>,\n"
+"<a href=\"?VARHELP=privacy/sender/reject_these_nonmembers"
+"\">visszautasíthatod</a>\n"
+"(értesítéssel), vagy <a href=\"?VARHELP=privacy/sender/"
+"discard_these_nonmembers\"\n"
+">elvetheted</a>. Azokra a külsõ beküldõkre, akikre nincsen érvényes "
+"beállítás az\n"
+"engedélyezett, jóváhagyásra váró, visszautasított vagy elvetett részben, az "
+"<a href=\"?VARHELP=privacy/sender/generic_nonmember_action\">általános "
+"külsõ\n"
+"beküldési szabályok</a> lesznek érvényesek.\n"
+"<p>A szövegdobozban soronként egy címet adjunk meg; a <a href=\n"
+" \"http://www.python.org/doc/current/lib/module-re.html\"\n"
+">Python reguláris kifejezések</a> jelölésére a sorokat ^ jellel kezdjük. "
+"Backslasht (\"\\\") mint egy hagyományos\n"
+"karaktert adhatunk meg, úgy ahogy a Pythonban karakternél szokásos (ez "
+"többnyire simán a karakter beírását jelenti).\n"
+"\n"
+"<p>Fontos, hogy elõször mindig a nem-reguláris kifejezéseket értékeli ki a "
+"program."
+
+#: Mailman/Gui/Privacy.py:186
+msgid "Member filters"
+msgstr "Feladók szûrése"
+
+#: Mailman/Gui/Privacy.py:189
+msgid "By default, should new list member postings be moderated?"
+msgstr "Kell alapesetben az új listatag leveleit moderálni?"
+
+#: Mailman/Gui/Privacy.py:191
+msgid ""
+"Each list member has a <em>moderation flag</em> which says\n"
+" whether messages from the list member can be posted directly "
+"to\n"
+" the list, or must first be approved by the list moderator. "
+"When\n"
+" the moderation flag is turned on, list member postings must be\n"
+" approved first. You, the list administrator can decide whether "
+"a\n"
+" specific individual's postings will be moderated or not.\n"
+"\n"
+" <p>When a new member is subscribed, their initial moderation "
+"flag\n"
+" takes its value from this option. Turn this option off to "
+"accept\n"
+" member postings by default. Turn this option on to, by "
+"default,\n"
+" moderate member postings first. You can always manually set "
+"an\n"
+" individual member's moderation bit by using the\n"
+" <a href=\"%(adminurl)s/members\">membership management\n"
+" screens</a>."
+msgstr ""
+"Mindenegyes listatagnál a <em>moderálási jelzõ</em> mondja meg, hogy a tag\n"
+"által küldött levelek a listán azonnal megjelenhetnek-e, vagy elõbb a \n"
+"szerkesztõ jóváhagyására van szükség. A moderálási jelzõ bekapcsolásával\n"
+"a listára érkezõ minden levelét a szerkesztõnek kell legelõször "
+"engedélyezni.\n"
+"Te, a lista adminisztrátora döntheted el, hogy kinek a leveleit célszerû\n"
+"megjelenéshez engedélyezni.\n"
+"\n"
+"<p>A frissen feliratkozott tagok moderálási jelzõje az itt megadott értéket\n"
+"veszi fel. A listatag beküldött levelei alapesetben a listán azonnal\n"
+"megjelennek, ha <em>Nem</em>re van állítva ez az érték. <em>Igen</em> esetén "
+"a\n"
+"levelek alapesetben elõször szerkesztõi jóváhagyásra kerülnek. "
+"Listatagoknál\n"
+"egyenként lehet állítani a moderálási jelzõt a <a href=\"%(adminurl)s/members"
+"\">\n"
+"listatagok kezelése</a> oldalon."
+
+#: Mailman/Gui/Privacy.py:207 Mailman/Gui/Privacy.py:281
+msgid "Hold"
+msgstr "Tart"
+
+#: Mailman/Gui/Privacy.py:208
+msgid ""
+"Action to take when a moderated member posts to the\n"
+" list."
+msgstr ""
+"Teendõ, amikor egy moderált (jóváhagyásra mindenképp váró) tag a listára\n"
+"küld levelet."
+
+#: Mailman/Gui/Privacy.py:210
+msgid ""
+"<ul><li><b>Hold</b> -- this holds the message for approval\n"
+" by the list moderators.\n"
+"\n"
+" <p><li><b>Reject</b> -- this automatically rejects the message "
+"by\n"
+" sending a bounce notice to the post's author. The text of the\n"
+" bounce notice can be <a\n"
+" href=\"?VARHELP=privacy/sender/member_moderation_notice\"\n"
+" >configured by you</a>.\n"
+"\n"
+" <p><li><b>Discard</b> -- this simply discards the message, "
+"with\n"
+" no notice sent to the post's author.\n"
+" </ul>"
+msgstr ""
+"<ul><li><b>Tart</b> -- a szerkesztõ döntéséig visszatartja a levelet.\n"
+"\n"
+"<p><li><b>Visszautasít</b> -- automatikusan visszautasítja a levél "
+"megjelenését,\n"
+"amelyrõl értesíti a feladót. Az értesítés szövegét <a\n"
+"href=\"?VARHELP=privacy/sender/member_moderation_notice\"\n"
+">magunk is beállíthatjuk</a>.\n"
+"\n"
+"<p><li><b>Elvet</b> -- elveti a levelet, és értesítést sem küld errõl a "
+"feladónak.\n"
+"</ul>"
+
+#: Mailman/Gui/Privacy.py:224
+msgid ""
+"Text to include in any\n"
+" <a href=\"?VARHELP/privacy/sender/member_moderation_action\"\n"
+" >rejection notice</a> to\n"
+" be sent to moderated members who post to this list."
+msgstr ""
+"Bármelyik <a href=\"?VARHELP=privacy/sender/member_moderation_action\"\n"
+">visszautasítási értesítés</a>ben szereplõ szöveg, amelyet azoknak a "
+"moderált\n"
+"(jóváhagyásra mindig váró) felhasználóknak kell kiküldeni, akik a listára "
+"levelet\n"
+"küldtek."
+
+#: Mailman/Gui/Privacy.py:229
+msgid "Non-member filters"
+msgstr "Szûrõk nem listatagokra"
+
+#: Mailman/Gui/Privacy.py:232
+msgid ""
+"List of non-member addresses whose postings should be\n"
+" automatically accepted."
+msgstr ""
+"Azon külsõ beküldõk listája, akiknek az üzenetei automatikusan\n"
+"\t megjelenhetnek."
+
+#: Mailman/Gui/Privacy.py:235
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" accepted with no further moderation applied. Add member\n"
+" addresses one per line; start the line with a ^ character to\n"
+" designate a regular expression match."
+msgstr ""
+"Az itt felsorolt külsõ beküldõk üzenetei további szerkesztõi\n"
+"\tjóváhagyás nélkül automatikusan megjelennek. Soronként egy címet adjunk "
+"meg;\n"
+"a reguláris keresési kifejezések jelölésére ^ jellel kezdjük a sorokat."
+
+#: Mailman/Gui/Privacy.py:241
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" immediately held for moderation."
+msgstr ""
+"Azon külsõ beküldõk listája, akiknek az üzenetei szerkesztõi\n"
+"\t jóváhagyásra kell hogy várjanak."
+
+#: Mailman/Gui/Privacy.py:244
+msgid ""
+"Postings from any of these non-members will be immediately\n"
+" and automatically held for moderation by the list moderators.\n"
+" The sender will receive a notification message which will "
+"allow\n"
+" them to cancel their held message. Add member addresses one "
+"per\n"
+" line; start the line with a ^ character to designate a regular\n"
+" expression match."
+msgstr ""
+"Az itt felsorolt külsõ beküldõk üzenetei a jóváhagyásra váró levelek\n"
+"sorába kerülnek, amelyekrõl a szerkesztõ késõbb dönt. A feladót\n"
+"figyelmeztetõ levél értesíti errõl, amellyel törölheti a visszatartott\n"
+"levelét. Soronként egy címet adjunk meg; a reguláris keresési\n"
+"kifejezések jelölésére ^ jellel kezdjük a sorokat."
+
+#: Mailman/Gui/Privacy.py:252
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" automatically rejected."
+msgstr ""
+"Azon külsõ beküldõk listája, akiknek az üzenetei automatikusan\n"
+"\t vissza lesznek utasítva."
+
+#: Mailman/Gui/Privacy.py:255
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" rejected. In other words, their messages will be bounced back "
+"to\n"
+" the sender with a notification of automatic rejection. This\n"
+" option is not appropriate for known spam senders; their "
+"messages\n"
+" should be\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >automatically discarded</a>.\n"
+"\n"
+" <p>Add member addresses one per line; start the line with a ^\n"
+" character to designate a regular expression match."
+msgstr ""
+"Az itt felsorolt külsõ beküldõk üzenetei automatikusan el lesznek\n"
+"utasítva. Másképp, a levelüket a Mailman egy automatikus elutasító "
+"szöveggel\n"
+"együtt visszaküldi. Az ismert spamerekhez ne ezt az opciót használjuk,\n"
+"hanem az <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+">automatikus elvetés</a> opciót.\n"
+"<p>Soronként egy címet adjunk meg; a reguláris keresési kifejezések "
+"jelölésére a\n"
+"^ jellel kezdjük a sorokat."
+
+#: Mailman/Gui/Privacy.py:267
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" automatically discarded."
+msgstr ""
+"Azon külsõ beküldõk listája, akiknek az üzenetei automatikusan törlésre\n"
+"\tkerülnek."
+
+#: Mailman/Gui/Privacy.py:270
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" discarded. That is, the message will be thrown away with no\n"
+" further processing or notification. The sender will not "
+"receive\n"
+" a notification or a bounce, however the list moderators can\n"
+" optionally <a href=\"?VARHELP=privacy/sender/"
+"forward_auto_discards\"\n"
+" >receive copies of auto-discarded messages.</a>.\n"
+"\n"
+" <p>Add member addresses one per line; start the line with a ^\n"
+" character to designate a regular expression match."
+msgstr ""
+"Az itt felsorolt külsõ beküldõk üzenetei automatikusan törlõdnek.\n"
+"Ezeket a leveleket a Mailman egybõl eldobja, bármilyen további feldolgozás\n"
+"nélkül. A feladót nem értesíti a levele elfogadásáról, elutasításáról, \n"
+"de a lista szerkesztõje a <a href=\"?VARHELP=privacy/sender/"
+"forward_auto_discards\"\n"
+">másolat az automatikusan törölt levelekrõl</a> opcióval kérhet egy\n"
+"példányt ezekrõl a levelekrõl.\n"
+"<p>Soronként egy címet adjunk meg; a reguláris keresési kifejezések "
+"jelölésére\n"
+"^ jellel kezdjük a sorokat."
+
+#: Mailman/Gui/Privacy.py:282
+msgid ""
+"Action to take for postings from non-members for which no\n"
+" explicit action is defined."
+msgstr ""
+"Teendõ azoknál a külsõ beküldõknél akikrõl még nem nyilatkoztunk eddig."
+
+#: Mailman/Gui/Privacy.py:285
+msgid ""
+"When a post from a non-member is received, the message's\n"
+" sender is matched against the list of explicitly\n"
+" <a href=\"?VARHELP=privacy/sender/accept_these_nonmembers\"\n"
+" >accepted</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/hold_these_nonmembers\">held</"
+"a>,\n"
+" <a href=\"?VARHELP=privacy/sender/reject_these_nonmembers\"\n"
+" >rejected</a> (bounced), and\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >discarded</a> addresses. If no match is found, then this "
+"action\n"
+" is taken."
+msgstr ""
+"Külsõ beküldõktõl érkezõ leveleket a levél feladója szerint\n"
+"<a href=\"?VARHELP=privacy/sender/accept_these_nonmembers\"\n"
+">engedélyezni</a>,\n"
+"<a href=\"?VARHELP=privacy/sender/hold_these_nonmembers\">tartani</a>,\n"
+"<a href=\"?VARHELP=privacy/sender/reject_these_nonmembers\">visszautasítani</"
+"a>\n"
+"(értesítéssel) és <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers"
+"\"\n"
+">elvetni</a> lehet. Ha a fentiek közül egyik helyen sincs a feladó\n"
+"felsorolva, akkor az itt megadott beállítás kerül érvényre."
+
+#: Mailman/Gui/Privacy.py:297
+msgid ""
+"Should messages from non-members, which are automatically\n"
+" discarded, be forwarded to the list moderator?"
+msgstr ""
+"Kapjon a lista szerkesztõje azokról a levelekrõl másolatot, amely\n"
+"külsõ beküldõtõl származik, és automatikusan törlésre kerül?"
+
+#: Mailman/Gui/Privacy.py:303
+msgid ""
+"This section allows you to configure various filters based on\n"
+" the recipient of the message."
+msgstr "Itt lehet beállítani az üzenetek szûrését a címzettek alapján."
+
+#: Mailman/Gui/Privacy.py:306
+msgid "Recipient filters"
+msgstr "Címzettek szûrése"
+
+#: Mailman/Gui/Privacy.py:310
+msgid ""
+"Must posts have list named in destination (to, cc) field\n"
+" (or be among the acceptable alias names, specified below)?"
+msgstr ""
+"Az üzenet címzettek részében (to, cc) kell a lista nevének lennie\n"
+"(vagy bármely más mezõben, ahogy az lejjebb a <a\n"
+"helyettesítõ nevek részben be van állítva)?"
+
+#: Mailman/Gui/Privacy.py:313
+msgid ""
+"Many (in fact, most) spams do not explicitly name their\n"
+" myriad destinations in the explicit destination addresses - in\n"
+" fact often the To: field has a totally bogus address for\n"
+" obfuscation. The constraint applies only to the stuff in the\n"
+" address before the '@' sign, but still catches all such spams.\n"
+"\n"
+" <p>The cost is that the list will not accept unhindered any\n"
+" postings relayed from other addresses, unless\n"
+"\n"
+" <ol>\n"
+" <li>The relaying address has the same name, or\n"
+"\n"
+" <li>The relaying address name is included on the options "
+"that\n"
+" specifies acceptable aliases for the list.\n"
+"\n"
+" </ol>"
+msgstr ""
+"Sok (valójában a legtöbb) spamnél a címzettek címét nem adják meg "
+"közvetlenül, hanem a To mezõben valamilyen értelmetlen címet tüntetnek fel. "
+"Az ellenõrzés csak a '@' jel elõtti részt vizsgálja, azonban így is képes "
+"kiszûrni a spamek nagy részét.<p> Ennek következtében a lista nem fogad "
+"levelet különös címekrõl, kivétel ha:\n"
+"<ol> <li>a továbbküldõ cím (relaying address) ugyanazzal a névvel nem "
+"rendelkezik, vagy\n"
+"<li>a továbbküldõ cím (relaying address) meg van adva a levelet küldhetõk "
+"listájában.</ol>"
+
+#: Mailman/Gui/Privacy.py:331
+msgid ""
+"Alias names (regexps) which qualify as explicit to or cc\n"
+" destination names for this list."
+msgstr ""
+"Helyettesítõ nevek (illeszkedõ kifejezéssel), ahogy a listát a to vagy cc "
+"mezõben meg lehet még adni."
+
+#: Mailman/Gui/Privacy.py:334
+msgid ""
+"Alternate addresses that are acceptable when\n"
+" `require_explicit_destination' is enabled. This option takes "
+"a\n"
+" list of regular expressions, one per line, which is matched\n"
+" against every recipient address in the message. The matching "
+"is\n"
+" performed with Python's re.match() function, meaning they are\n"
+" anchored to the start of the string.\n"
+" \n"
+" <p>For backwards compatibility with Mailman 1.1, if the regexp\n"
+" does not contain an `@', then the pattern is matched against "
+"just\n"
+" the local part of the recipient address. If that match fails, "
+"or\n"
+" if the pattern does contain an `@', then the pattern is "
+"matched\n"
+" against the entire recipient address.\n"
+" \n"
+" <p>Matching against the local part is deprecated; in a future\n"
+" release, the pattern will always be matched against the entire\n"
+" recipient address."
+msgstr ""
+"Egyéb címek, amelyként a listát el lehet érni, ha <em>Igen</em>re van "
+"állítva a <a\n"
+"href=\"?VARHELP=privacy/recipient/require_explicit_destination\"\n"
+">kötelezõen feltüntetett cím</a> opció.\n"
+"A beállításban számos, soronként egy, illeszkedõ kifejezést lehet megadni, "
+"amelyek\n"
+"a levelek címzettjét vizsgálják. A keresést a szövegkonstans elejétõl a\n"
+"Python re.match() függvénye végzi.\n"
+"\n"
+"<p>Mailman 1.1 kompatibilitásának biztosításához,\n"
+"ha az illeszkedõ kifejezés nem tartalmaz `@' jelet, akkor a keresés csak a "
+"címzett\n"
+"elsõ részében történik. Ha a keresés sikertelen, vagy a kifejezés tartalmaz\n"
+"`@' jelet, akkor a keresés a címzett egész részén történik.\n"
+"\n"
+"<p>Címzett elsõ részére való illeszkedés a következõ verziókban már nem\n"
+"fog mûködni, a keresés a teljes címzett részre fog történi."
+
+#: Mailman/Gui/Privacy.py:352
+msgid "Ceiling on acceptable number of recipients for a posting."
+msgstr ""
+"A levél egyszerre maximum a megadott számú felhasználóhoz lesz továbbítva."
+
+#: Mailman/Gui/Privacy.py:354
+msgid ""
+"If a posting has this number, or more, of recipients, it is\n"
+" held for admin approval. Use 0 for no ceiling."
+msgstr ""
+"Ha a levélnek legalább ennyi címzettje van, akkor adminisztrátori engedély "
+"szükséges. 0-t megadva bármennyi címzettje lehet."
+
+#: Mailman/Gui/Privacy.py:359
+msgid ""
+"This section allows you to configure various anti-spam\n"
+" filters posting filters, which can help reduce the amount of "
+"spam\n"
+" your list members end up receiving.\n"
+" "
+msgstr ""
+"Itt a különbözõ anti-spam szûrõket lehet beállítani, amellyel a listán\n"
+"esetleg megjelenõ spam mennyiségét lehet csökkenteni.\n"
+"\t "
+
+#: Mailman/Gui/Privacy.py:364
+msgid "Anti-Spam filters"
+msgstr "Anti-Spam szûrõk"
+
+#: Mailman/Gui/Privacy.py:367
+msgid "Hold posts with header value matching a specified regexp."
+msgstr "Egy megadott keresési feltételre illeszkedõ levelek visszatartása."
+
+#: Mailman/Gui/Privacy.py:368
+msgid ""
+"Use this option to prohibit posts according to specific\n"
+" header values. The target value is a regular-expression for\n"
+" matching against the specified header. The match is done\n"
+" disregarding letter case. Lines beginning with '#' are "
+"ignored\n"
+" as comments.\n"
+"\n"
+" <p>For example:<pre>to: .*@public.com </pre> says to hold all\n"
+" postings with a <em>To:</em> mail header containing '@public."
+"com'\n"
+" anywhere among the addresses.\n"
+"\n"
+" <p>Note that leading whitespace is trimmed from the regexp. "
+"This\n"
+" can be circumvented in a number of ways, e.g. by escaping or\n"
+" bracketing it."
+msgstr ""
+"A beállítással a levelek bizonyos tartalmú fejlécei alapján lehet\n"
+"azok fogadását korlátozni. A fejléc bármely részére illeszkedõ\n"
+"keresési kifejezéseket meg lehet adni. A keresés nem tesz\n"
+"különbséget kis- és nagybetûk között. A '#' jellel kezdõdõ sorokat "
+"megjegyzésekként\n"
+"kezeli a program.\n"
+"\n"
+"<p>Például:<pre>to: .*@public.com </pre> kifejezés az összes\n"
+"levelet, amelynek <em>to</em> mezõjében bárhol megtalálható a '@public.com'\n"
+"visszatartja.\n"
+"\n"
+"<p>A sorkezdõ szóközöket levágja a program. Ha mégis szükséges, akkor a\n"
+"szóközöket védõkarakterek (pl. zárójelek) között lehet megadni."
+
+#: Mailman/Gui/Topics.py:28
+msgid "Topics"
+msgstr "Témák"
+
+#: Mailman/Gui/Topics.py:36
+msgid "List topic keywords"
+msgstr "A lista fõ témái"
+
+#: Mailman/Gui/Topics.py:38
+msgid "Disabled"
+msgstr "Kikapcsolva"
+
+#: Mailman/Gui/Topics.py:38
+msgid "Enabled"
+msgstr "Bekapcsolva"
+
+#: Mailman/Gui/Topics.py:39
+msgid "Should the topic filter be enabled or disabled?"
+msgstr "A témák szûrése be- vagy kikapcsolt állapotban legyen?"
+
+#: Mailman/Gui/Topics.py:41
+msgid ""
+"The topic filter categorizes each incoming email message\n"
+" according to <a\n"
+" href=\"http://www.python.org/doc/current/lib/module-re.html"
+"\">regular\n"
+" expression filters</a> you specify below. If the message's\n"
+" <code>Subject:</code> or <code>Keywords:</code> header contains "
+"a\n"
+" match against a topic filter, the message is logically placed\n"
+" into a topic <em>bucket</em>. Each user can then choose to "
+"only\n"
+" receive messages from the mailing list for a particular topic\n"
+" bucket (or buckets). Any message not categorized in a topic\n"
+" bucket registered with the user is not delivered to the list.\n"
+"\n"
+" <p>Note that this feature only works with regular delivery, "
+"not\n"
+" digest delivery.\n"
+"\n"
+" <p>The body of the message can also be optionally scanned for\n"
+" <code>Subject:</code> and <code>Keywords:</code> headers, as\n"
+" specified by the <a\n"
+" href=\"?VARHELP=topics/topics_bodylines_limit"
+"\">topics_bodylines_limit</a>\n"
+" configuration variable."
+msgstr ""
+"A témaszûrõ minden egyes bejövõ levelet megvizsgál a késõbbiekben megadott "
+"<a\n"
+"href=\"http://www.python.org/doc/current/lib/module-re.html\">reguláris\n"
+"szûrõ kifejezések</a> alapján. Ha a levél <code>Subject:</code> vagy\n"
+"\t<code>Keywords:</code> fejléce egyezést mutat valamelyik szûrési\n"
+"\tfeltétellel, akkor az üzenet egy ún. téma <em>tárolóba</em> kerül.\n"
+"\tMinden egyes felhasználó dönthet, hogy csak a tároló(k)ból fogad-e\n"
+"\tlevelet vagy sem. Az a levél, amelyik semelyik tématárolóba\n"
+" sem kerül a felhasználónál nem jelenik meg.\n"
+"\t<p>Fontos tudni, hogy ez a szolgáltatás csak nem-digest típusú\n"
+"\tlevélküldésnél mûködik.\n"
+"\n"
+"\t<p>A levél törzsében is lehet keresni a <code>Subject:</code> és\n"
+"\t<code>Keyword:</code> mezõkre, ahogy az a <a\n"
+"\thref=\"?VARHELP=topics/topics_bodylines_limit\">témák_levéltörzs_sorában</"
+"a>\n"
+"\tbe van állítva."
+
+#: Mailman/Gui/Topics.py:62
+msgid "How many body lines should the topic matcher scan?"
+msgstr "A témaszûrõ a levél törzsének hány sorát vizsgálja?"
+
+#: Mailman/Gui/Topics.py:64
+msgid ""
+"The topic matcher will scan this many lines of the message\n"
+" body looking for topic keyword matches. Body scanning stops "
+"when\n"
+" either this many lines have been looked at, or a non-header-"
+"like\n"
+" body line is encountered. By setting this value to zero, no "
+"body\n"
+" lines will be scanned (i.e. only the <code>Keywords:</code> "
+"and\n"
+" <code>Subject:</code> headers will be scanned). By setting "
+"this\n"
+" value to a negative number, then all body lines will be "
+"scanned\n"
+" until a non-header-like line is encountered.\n"
+" "
+msgstr ""
+"A témaszûrõ a levél törzsének itt megadott számú sorában keres még\n"
+"\ta feltételekre. A törzs szûrése leáll, ha a megadott sorszámot\n"
+"\telérte vagy nem-fejléc típusú sorhoz ér. 0-t megadva a\n"
+"\tprogram nem keres a levél törzsében (csak a <code>Keywords:</code>\n"
+"\tés <code>Subject:</code> mezõkben fog keresni). Negatív értéket\n"
+"\tmegadva a levél törzsének összes sorában keres, amíg egy\n"
+"\tnem-fejléc típusú sorhoz nem ér.\n"
+"\t\t"
+
+#: Mailman/Gui/Topics.py:75
+msgid "Topic keywords, one per line, to match against each message."
+msgstr "Fõ témák, minden sorban csak egyet megadva, a levelek vizsgálatához."
+
+#: Mailman/Gui/Topics.py:77
+msgid ""
+"Each topic keyword is actually a regular expression, which is\n"
+" matched against certain parts of a mail message, specifically "
+"the\n"
+" <code>Keywords:</code> and <code>Subject:</code> message "
+"headers.\n"
+" Note that the first few lines of the body of the message can "
+"also\n"
+" contain a <code>Keywords:</code> and <code>Subject:</code>\n"
+" \"header\" on which matching is also performed."
+msgstr ""
+"Minden egyes fõ téma valójában egy reguláris keresési feltétel, amely\n"
+"\ta levél bizonyos részeit, pontosabban a <code>Keywords:</code>\n"
+"\tés <code>Subject:</code> levél fejléceket vizsgálja.\n"
+"\tJó tudni, hogy a levél törzsének elsõ pár sora is tartalmazhat\n"
+"\t<code>Keywords:</code> és <code>Subject:</code> \"fejléceket\",\n"
+"\tamelyekben szintén lehet kerestetni."
+
+#: Mailman/Gui/Topics.py:116
+msgid ""
+"Topic specifications require both a name and\n"
+" a pattern. Incomplete topics will be ignored."
+msgstr ""
+"A témáknak nevet és keresési feltételt is meg kell adni.\n"
+"Hiányosan megadott témákat a program figyelmen kívül hagy."
+
+#: Mailman/Gui/Topics.py:124
+msgid ""
+"The topic pattern `%(pattern)s' is not a\n"
+" legal regular expression. It will be discarded."
+msgstr ""
+"A(z) `%(pattern)s' témaszûrõ nem valós reguláris\n"
+"kifejezés. Figyelmen kívûl hagyva."
+
+#: Mailman/Gui/Usenet.py:25
+msgid "Mail&lt;-&gt;News&nbsp;gateways"
+msgstr "Mail&lt;-&gt;News&nbsp;átjárók"
+
+#: Mailman/Gui/Usenet.py:35
+msgid "Mail-to-News and News-to-Mail gateway services."
+msgstr "Mail-to-News és News-to-Mail átjáró funkciók."
+
+#: Mailman/Gui/Usenet.py:37
+msgid "News server settings"
+msgstr "News szerver beállítások"
+
+#: Mailman/Gui/Usenet.py:40
+msgid ""
+"The Internet address of the machine your News server is\n"
+" running on."
+msgstr "Az internet címe annak a gépnek, ahol a News szervered mûködik."
+
+#: Mailman/Gui/Usenet.py:42
+msgid ""
+"The News server is not part of Mailman proper. You have to\n"
+" already have access to a NNTP server, and that NNTP server has "
+"to\n"
+" recognize the machine this mailing list runs on as a machine\n"
+" capable of reading and posting news."
+msgstr ""
+"A Mailman nem tartalmaz megfelelõ News szervert. NNTP szerver eléréssel kell "
+"rendelkezned, és az NNTP szervernek tudnia kell róla, hogy az a gép, amelyen "
+"ezek a levelezõlisták futnak, képes hírek fogadására és küldésére."
+
+#: Mailman/Gui/Usenet.py:48
+msgid "The name of the Usenet group to gateway to and/or from."
+msgstr "A hírcsoport neve, ahova és/vagy ahonnan jönnek a levelek."
+
+#: Mailman/Gui/Usenet.py:51
+msgid ""
+"Should new posts to the mailing list be sent to the\n"
+" newsgroup?"
+msgstr "Levelezõlistára érkezõ üzenetek továbbítva legyenek a hírcsoportba?"
+
+#: Mailman/Gui/Usenet.py:55
+msgid ""
+"Should new posts to the newsgroup be sent to the mailing\n"
+" list?"
+msgstr ""
+"A hírcsoportba érkezõ új levelek a levelezõlistára is el legyenek küldve?"
+
+#: Mailman/Gui/Usenet.py:58
+msgid "Forwarding options"
+msgstr "Továbbküldési beállítások"
+
+#: Mailman/Gui/Usenet.py:61
+msgid "Moderated"
+msgstr "Szerkesztett"
+
+#: Mailman/Gui/Usenet.py:61
+msgid "Open list, moderated group"
+msgstr "Nyitott lista, szerkesztett csoport"
+
+#: Mailman/Gui/Usenet.py:64
+msgid "The moderation policy of the newsgroup."
+msgstr "A hírcsoport moderálási beállításai."
+
+#: Mailman/Gui/Usenet.py:66
+msgid ""
+"This setting determines the moderation policy of the\n"
+" newsgroup and its interaction with the moderation policy of "
+"the\n"
+" mailing list. This only applies to the newsgroup that you are\n"
+" gatewaying <em>to</em>, so if you are only gatewaying from\n"
+" Usenet, or the newsgroup you are gatewaying to is not "
+"moderated,\n"
+" set this option to <em>None</em>.\n"
+"\n"
+" <p>If the newsgroup is moderated, you can set this mailing "
+"list\n"
+" up to be the moderation address for the newsgroup. By "
+"selecting\n"
+" <em>Moderated</em>, an additional posting hold will be placed "
+"in\n"
+" the approval process. All messages posted to the mailing list\n"
+" will have to be approved before being sent on to the "
+"newsgroup,\n"
+" or to the mailing list membership.\n"
+"\n"
+" <p><em>Note that if the message has an <tt>Approved</tt> "
+"header\n"
+" with the list's administrative password in it, this hold test\n"
+" will be bypassed, allowing privileged posters to send messages\n"
+" directly to the list and the newsgroup.</em>\n"
+"\n"
+" <p>Finally, if the newsgroup is moderated, but you want to "
+"have\n"
+" an open posting policy anyway, you should select <em>Open "
+"list,\n"
+" moderated group</em>. The effect of this is to use the normal\n"
+" Mailman moderation facilities, but to add an <tt>Approved</tt>\n"
+" header to all messages that are gatewayed to Usenet."
+msgstr ""
+"Ezzel a beállítással lehet meghatározni a hicsoport moderálási\n"
+"tulajdonságait és annak kapcsolatát a levelezõlista moderálási\n"
+"tulajdonságaival. A beállítás csak arra a hircsoportra vonatkozik\n"
+"<em>ahova</em> küldöd az üzeneteket. Ha a Usenetrõl érkeznek az\n"
+"üzenetek, vagy a hírcsoport ahova küldésre kerülnek nem szerkesztett, akkor\n"
+"válaszd a <em>Semmi</em> beállítást.\n"
+"\n"
+"<p>Ha a hírcsoport szerkesztett, akkor beállíthatod a levelezõlistát\n"
+"úgy, hogy egyben a hírcsoport szerkesztõi címe is legyen. A\n"
+"<em>Szerkesztett</em> beállítással egy újabb jóváhagyás szükségeltetik\n"
+"az üzenetek megjelenéséhez. A levelezõlistára érkezõ összes levelet\n"
+"a hírcsoportban, vagy a levelezõlistán való megjelenése elõtt jóvá kell\n"
+"majd hagyni.\n"
+"\n"
+"<p><em>Fontos tudni, hogy ha a beérkezett üzenet tartalmaz egy\n"
+"<tt>Approve</tt> fejlécet a lista szerkesztõi/adminisztrátori jelszavával,\n"
+"akkor a levél minden további jóváhagyási procedúra nélkül megjelenik.\n"
+"Ennek segítségével a felhatalmazott felhasználók közvetlenül küldhetnek\n"
+"levelet mind a listára, mind a hírcsoportba.</em>\n"
+"\n"
+"<p>Végül pedig, ha a hírcsoport szerkesztett, de bárki számára nyitottá\n"
+"akarjuk tenni, akkor válasszuk a <em>Nyitott lista, szerkesztett\n"
+"csoport</em> beállítást. Ilyenkor a hagyományos Mailman jóváhagyási\n"
+"procedúra fog mûködni, a Usenetnek továbbított összes levélhez\n"
+"hozzá kell adnunk a <tt>Approved</tt> fejlécet."
+
+#: Mailman/Gui/Usenet.py:92
+msgid "Prefix <tt>Subject:</tt> headers on postings gated to news?"
+msgstr ""
+"Legyen a hírcsoportba küldött üzenetek <tt>Subject:</tt> fejlécében a "
+"listára beállított szöveg?"
+
+#: Mailman/Gui/Usenet.py:93
+msgid ""
+"Mailman prefixes <tt>Subject:</tt> headers with\n"
+" <a href=\"?VARHELP=general/subject_prefix\">text you can\n"
+" customize</a> and normally, this prefix shows up in messages\n"
+" gatewayed to Usenet. You can set this option to <em>No</em> "
+"to\n"
+" disable the prefix on gated messages. Of course, if you turn "
+"off\n"
+" normal <tt>Subject:</tt> prefixes, they won't be prefixed for\n"
+" gated messages either."
+msgstr ""
+"A Mailman a <tt>Subject:</tt> fejlécek elé az <a\n"
+"href=\"?VARHELP=general/subject_prefix\">általunk megadott szöveget</a>\n"
+"szúrja be, amely alapestben a Usenetre továbbított üzenetekben is\n"
+"megjelenik. Ha nem szeretnénk, hogy ezekben a továbbított üzenetekben\n"
+"is megjelenjen a szöveg, akkor válasszuk a <em>Nem</em> beállítást.\n"
+"Természetesen, ha kikapcsoljuk a hagyományos <tt>Subject:</tt> elé\n"
+"beszúrandó szöveget, akkor a továbbított üzenetekben sem fog az megjelenni."
+
+#: Mailman/Gui/Usenet.py:101
+msgid "Mass catch up"
+msgstr "Hírcsoport frissítés"
+
+#: Mailman/Gui/Usenet.py:104
+msgid "Should Mailman perform a <em>catchup</em> on the newsgroup?"
+msgstr "<em>Frissítsen</em> a Mailman a hírcsoporton?"
+
+#: Mailman/Gui/Usenet.py:105
+msgid ""
+"When you tell Mailman to perform a catchup on the newsgroup,\n"
+" this means that you want to start gating messages to the "
+"mailing\n"
+" list with the next new message found. All earlier messages on\n"
+" the newsgroup will be ignored. This is as if you were reading\n"
+" the newsgroup yourself, and you marked all current messages as\n"
+" <em>read</em>. By catching up, your mailing list members will\n"
+" not see any of the earlier messages."
+msgstr ""
+"A Mailman a hírcsoportról való frissítéskor a levelezõlistára\n"
+"\t csak az újabb üzeneteket tölti le. Minden régebbi levelet a \n"
+" hírcsoporton figyelmen kívül hagy. Ez nagyjából ugyanaz, mint\n"
+"\t amikor a hírcsoport olvasásakor az összes üzenetet <em>olvasottnak</"
+"em>\n"
+"\t jelölünk meg. Frissítésnél a listatagok a régebbi leveleket nem\n"
+"\t fogják látni."
+
+#: Mailman/Gui/Usenet.py:119
+msgid "Mass catchup completed"
+msgstr "A frissítés befejezõdött."
+
+#: Mailman/Gui/Usenet.py:131
+msgid ""
+"You cannot enable gatewaying unless both the\n"
+" <a href=\"?VARHELP=gateway/nntp_host\">news server field</a> "
+"and\n"
+" the <a href=\"?VARHELP=gateway/linked_newsgroup\">linked\n"
+" newsgroup</a> fields are filled in."
+msgstr ""
+"Addig nem tudod bekapcsolni a hírcsoportba való üzenet küldést, amíg\n"
+"ki nem töltöd a <a href=\"?VARHELP=gateway/nntp_host\">news server</a>\n"
+" és a <a href=\"?VARHELP=gateway/linked_newsgroup\">linked\n"
+"newsgroup</a> mezõket."
+
+#: Mailman/HTMLFormatter.py:47
+msgid "%(listinfo_link)s list run by %(owner_link)s"
+msgstr "%(listinfo_link)s listát mûködteti: %(owner_link)s"
+
+#: Mailman/HTMLFormatter.py:55
+msgid "%(realname)s administrative interface"
+msgstr "%(realname)s adminisztrációs felület"
+
+#: Mailman/HTMLFormatter.py:56
+msgid " (requires authorization)"
+msgstr " (azonosítás szükséges)"
+
+#: Mailman/HTMLFormatter.py:59
+msgid "Overview of all %(hostname)s mailing lists"
+msgstr "%(hostname)s levelezõlisták"
+
+#: Mailman/HTMLFormatter.py:80
+msgid "<em>(1 private member not shown)</em>"
+msgstr "<em>(1 privát tag nélkül)</em>"
+
+#: Mailman/HTMLFormatter.py:82
+msgid "<em>(%(num_concealed)d private members not shown)</em>"
+msgstr "<em>(%(num_concealed)d privát tag nélkül)</em>"
+
+#: Mailman/HTMLFormatter.py:137
+msgid "; it was disabled by you"
+msgstr "Kérésedre"
+
+#: Mailman/HTMLFormatter.py:139
+msgid "; it was disabled by the list administrator"
+msgstr "A lista adminisztrátor döntése alapján"
+
+#: Mailman/HTMLFormatter.py:143
+msgid ""
+"; it was disabled due to excessive bounces. The\n"
+" last bounce was received on %(date)s"
+msgstr ""
+"Túl sok visszapattanás miatt - az utolsó\n"
+"visszapattanás ideje: %(date)s -"
+
+#: Mailman/HTMLFormatter.py:146
+msgid "; it was disabled for unknown reasons"
+msgstr "Ismeretlen ok miatt"
+
+#: Mailman/HTMLFormatter.py:148
+msgid "Note: your list delivery is currently disabled%(reason)s."
+msgstr "Megjegyzés: %(reason)s a listáról jelenleg nem kapsz levelet."
+
+#: Mailman/HTMLFormatter.py:151
+msgid "Mail delivery"
+msgstr "Levélküldés"
+
+#: Mailman/HTMLFormatter.py:153 Mailman/HTMLFormatter.py:298
+msgid "the list administrator"
+msgstr "a lista adminisztrátor"
+
+#: Mailman/HTMLFormatter.py:154
+msgid ""
+"<p>%(note)s\n"
+"\n"
+" <p>You may have disabled list delivery intentionally,\n"
+" or it may have been triggered by bounces from your email\n"
+" address. In either case, to re-enable delivery, change the\n"
+" %(link)s option below. Contact %(mailto)s if you have any\n"
+" questions or need assistance."
+msgstr ""
+"<p>%(note)s\n"
+"\n"
+"\t <p>A levélküldést lehet, hogy véletlenül kapcsoltad ki,\n"
+"\t vagy címedrõl sokszor pattant vissza levél. Mindkét esetben\n"
+"\t a levelek újbóli fogadásához a %(link)s beállítást állítsd át.\n"
+"\t Ha segítségre van szükséged, vagy kérdésed van, akkor írj a(z)\n"
+"\t %(mailto)s címre."
+
+#: Mailman/HTMLFormatter.py:166
+msgid ""
+"<p>We have received some recent bounces from your\n"
+" address. Your current <em>bounce score</em> is %(score)s out of "
+"a\n"
+" maximum of %(total)s. Please double check that your subscribed\n"
+" address is correct and that there are no problems with delivery "
+"to\n"
+" this address. Your bounce score will be automatically reset if\n"
+" the problems are corrected soon."
+msgstr ""
+"<p>A címedrõl visszapattantak az üzenetek. Jelenleg %(score)s "
+"<em>visszapattanási\n"
+"pontod</em> van a maximálisan engedélyezett %(total)s pontból. Kérünk "
+"feltétlenül\n"
+"ellenõrizd, hogy a feliratkozási címed helyesen lett megadva és rendesen "
+"fogadja\n"
+"a leveleket. A visszapattanási pontjaid automatikusan törlõdnek, ha a\n"
+"probléma megszûnik."
+
+#: Mailman/HTMLFormatter.py:178
+msgid ""
+"(Note - you are subscribing to a list of mailing lists, so the %(type)s "
+"notice will be sent to the admin address for your membership, %(addr)s.)<p>"
+msgstr ""
+"(Megjegyzés - levelezõlistára iratkozol éppen fel, a(z) %(type)s üzenet a "
+"feliratkozásodról az admin címére lesz elküldve, %(addr)s.)<p>"
+
+#: Mailman/HTMLFormatter.py:188
+msgid ""
+"You will be sent email requesting confirmation, to\n"
+" prevent others from gratuitously subscribing you."
+msgstr ""
+"Feliratkozási kérelmedrõl értesítést fogsz kapni, nehogy mások a tudtod "
+"nélkül felírhassanak. "
+
+#: Mailman/HTMLFormatter.py:191
+msgid ""
+"This is a closed list, which means your subscription\n"
+" will be held for approval. You will be notified of the list\n"
+" moderator's decision by email."
+msgstr ""
+"Ez egy zártkörû lista, a feliratkozásod engedélyezésig függõben marad. A "
+"szerkesztõ döntésérõl e-mailben értesítést fogsz kapni. "
+
+#: Mailman/HTMLFormatter.py:194 Mailman/HTMLFormatter.py:201
+msgid "also "
+msgstr "továbbá "
+
+#: Mailman/HTMLFormatter.py:196
+msgid ""
+"You will be sent email requesting confirmation, to\n"
+" prevent others from gratuitously subscribing you. Once\n"
+" confirmation is received, your request will be held for "
+"approval\n"
+" by the list moderator. You will be notified of the moderator's\n"
+" decision by email."
+msgstr ""
+"Feliratkozási kérelmedrõl értesítést kapsz, nehogy mások tudtod nélkül "
+"felírhassanak. Megerõsítésed után feliratkozásod azonban csak a lista "
+"szerkesztõjének jóváhagyásával válik teljessé. A szerkesztõ döntésérõl e-"
+"mailben értesítünk. "
+
+#: Mailman/HTMLFormatter.py:205
+msgid ""
+"This is %(also)sa private list, which means that the\n"
+" list of members is not available to non-members."
+msgstr "A lista %(also)szártkörû, a tagok listája külsõsöknek nem elérhetõ. "
+
+#: Mailman/HTMLFormatter.py:208
+msgid ""
+"This is %(also)sa hidden list, which means that the\n"
+" list of members is available only to the list administrator."
+msgstr ""
+"A lista %(also)segy rejtett lista, a tagok listája csakis a lista "
+"adminisztrátora számára érhetõ el. "
+
+#: Mailman/HTMLFormatter.py:211
+msgid ""
+"This is %(also)sa public list, which means that the\n"
+" list of members list is available to everyone."
+msgstr ""
+"A lista %(also)segy nyilvános levelezõlista, amely azt jelenti, hogy a tagok "
+"listája bárki számára elérhetõ."
+
+#: Mailman/HTMLFormatter.py:214
+msgid ""
+" (but we obscure the addresses so they are not\n"
+" easily recognizable by spammers)."
+msgstr ""
+" (de a címek módosítva lettek úgy, hogy ne legyenek könnyû célpontok a "
+"spammereknek). "
+
+#: Mailman/HTMLFormatter.py:219
+msgid ""
+"<p>(Note that this is an umbrella list, intended to\n"
+" have only other mailing lists as members. Among other things,\n"
+" this means that your confirmation request will be sent to the\n"
+" `%(sfx)s' account for your address.)"
+msgstr ""
+"<p>(Figyelem ez a lista egy gyûjtõlista, tagjai csak más lista címek "
+"lehetnek. Ezek függvényében feliratkozási kérelmed a '%(sfx)s' címre kerül "
+"elküldésre.)"
+
+#: Mailman/HTMLFormatter.py:248
+msgid "<b><i>either</i></b> "
+msgstr "<b><i>vagy</i></b> "
+
+#: Mailman/HTMLFormatter.py:253
+msgid ""
+"To unsubscribe from %(realname)s, get a password reminder,\n"
+" or change your subscription options %(either)senter your "
+"subscription\n"
+" email address:\n"
+" <p><center> "
+msgstr ""
+"%(realname)s listáról való leiratkozáshoz, jelszó lekérdezéséhez,\n"
+"\tvagy a listatagsági beállításaid megváltoztatásához \n"
+"\tadd meg itt %(either)sa feliratkozási e-mail címedet:\n"
+"\t<p><center> "
+
+#: Mailman/HTMLFormatter.py:260
+msgid "Unsubscribe or edit options"
+msgstr "Leiratkozás vagy beállítások módosítása"
+
+#: Mailman/HTMLFormatter.py:264
+msgid ""
+"<p>... <b><i>or</i></b> select your entry from\n"
+" the subscribers list (see above)."
+msgstr ""
+"<p>... <b><i>vagy</i></b> válaszd ki a címedet a tagok listájából (lásd "
+"feljebb)."
+
+#: Mailman/HTMLFormatter.py:266
+msgid ""
+" If you leave the field blank, you will be prompted for\n"
+" your email address"
+msgstr ""
+" Ha üres a mezõ, akkor a program kérni fogja az e-mail\n"
+"\tcímedet"
+
+#: Mailman/HTMLFormatter.py:274
+msgid ""
+"(<i>%(which)s is only available to the list\n"
+" members.</i>)"
+msgstr "(<i>%(which)s csak a lista tagjai számára érhetõ el.</i>)"
+
+#: Mailman/HTMLFormatter.py:278
+msgid ""
+"(<i>%(which)s is only available to the list\n"
+" administrator.</i>)"
+msgstr "(<i>%(which)s csak a lista adminisztrátora számára érhetõ el.</i>)"
+
+#: Mailman/HTMLFormatter.py:288
+msgid "Click here for the list of "
+msgstr " "
+
+#: Mailman/HTMLFormatter.py:290
+msgid " subscribers: "
+msgstr " levelezõlista tagjainak megtekintéséhez kattints ide: "
+
+#: Mailman/HTMLFormatter.py:292
+msgid "Visit Subscriber list"
+msgstr "Mutasd a tagok listáját"
+
+#: Mailman/HTMLFormatter.py:295
+msgid "members"
+msgstr "listatag"
+
+# In this entry insert a space at the end of string, it will be stripped.
+#: Mailman/HTMLFormatter.py:296
+msgid "Address:"
+msgstr "Cím "
+
+# In this entry insert a space at the end of string, it will be stripped.
+#: Mailman/HTMLFormatter.py:299
+msgid "Admin address:"
+msgstr "Admin cím:"
+
+#: Mailman/HTMLFormatter.py:302
+msgid "The subscribers list"
+msgstr "A tagok listája"
+
+#: Mailman/HTMLFormatter.py:304
+msgid " <p>Enter your "
+msgstr " <p>A tagok listájának megtekintéséhez írd be a "
+
+#: Mailman/HTMLFormatter.py:306
+msgid " and password to visit the subscribers list: <p><center> "
+msgstr "edet és a jelszavadat: <p><center> "
+
+#: Mailman/HTMLFormatter.py:311
+msgid "Password: "
+msgstr " Jelszó "
+
+#: Mailman/HTMLFormatter.py:315
+msgid "Visit Subscriber List"
+msgstr "Mutasd a tagok listáját"
+
+#: Mailman/HTMLFormatter.py:345
+msgid "Once a month, your password will be emailed to you as a reminder."
+msgstr "Havonta egyszer a jelszavad emlékeztetõül e-mailben elküldésre kerül."
+
+#: Mailman/HTMLFormatter.py:391
+msgid "The current archive"
+msgstr "Az aktuális archívum"
+
+#: Mailman/Handlers/Acknowledge.py:59
+msgid "%(realname)s post acknowledgement"
+msgstr "%(realname)s levél nyugtázva"
+
+#: Mailman/Handlers/CalcRecips.py:68
+msgid ""
+"Your urgent message to the %(realname)s mailing list was not authorized for\n"
+"delivery. The original message as received by Mailman is attached.\n"
+msgstr ""
+"A(z) %(realname)s levelezõlistára küldött fontos üzeneted nem jelenhet meg\n"
+"a listán. Az eredeti üzenet alább olvasható.\n"
+
+#: Mailman/Handlers/Emergency.py:29
+msgid "Emergency hold on all list traffic is in effect"
+msgstr "Az összes lista forgalmának korlátozása életbe lépett."
+
+#: Mailman/Handlers/Emergency.py:30 Mailman/Handlers/Hold.py:58
+msgid "Your message was deemed inappropriate by the moderator."
+msgstr "A szerkesztõ nem engedélyezi leveled megjelenését."
+
+#: Mailman/Handlers/Hold.py:53
+msgid "Sender is explicitly forbidden"
+msgstr "A feladó el van tiltva."
+
+#: Mailman/Handlers/Hold.py:54
+msgid "You are forbidden from posting messages to this list."
+msgstr "El vagy tiltva a listára való levélküldéstõl."
+
+#: Mailman/Handlers/Hold.py:57
+msgid "Post to moderated list"
+msgstr "A levél moderált listára érkezett."
+
+#: Mailman/Handlers/Hold.py:61
+msgid "Post by non-member to a members-only list"
+msgstr "Nem listatag küldött levelet a csak tagoknak elérhetõ listára."
+
+#: Mailman/Handlers/Hold.py:62
+msgid "Non-members are not allowed to post messages to this list."
+msgstr "A listára csak a tagok küldhetnek levelet."
+
+#: Mailman/Handlers/Hold.py:65
+msgid "Posting to a restricted list by sender requires approval"
+msgstr "Zártkörû listára küldött levél megjelenését engedélyezni kell."
+
+#: Mailman/Handlers/Hold.py:66
+msgid "This list is restricted; your message was not approved."
+msgstr "A lista zártkörû; leveled nem jelenhet meg."
+
+#: Mailman/Handlers/Hold.py:69
+msgid "Too many recipients to the message"
+msgstr "A levélben túl sok címzett van megadva."
+
+#: Mailman/Handlers/Hold.py:70
+msgid "Please trim the recipient list; it is too long."
+msgstr "Kérlek, rövidíts a címzettek listáján; a lista túl hosszú."
+
+#: Mailman/Handlers/Hold.py:73
+msgid "Message has implicit destination"
+msgstr "A levél címzettje nem lett egyértelmûen megadva."
+
+# jcrey
+#: Mailman/Handlers/Hold.py:74
+msgid ""
+"Blind carbon copies or other implicit destinations are\n"
+"not allowed. Try reposting your message by explicitly including the list\n"
+"address in the To: or Cc: fields."
+msgstr ""
+"Rejtett (BCC) vagy máshogy megadott címzettek nem engedélyezettek.\n"
+"Leveledet a listára a To: vagy CC: mezõben megadott listanévvel\n"
+"küldd el újra."
+
+#: Mailman/Handlers/Hold.py:79
+msgid "Message may contain administrivia"
+msgstr "A levél valószínûleg adminisztrációs tartalmú."
+
+#: Mailman/Handlers/Hold.py:84
+msgid ""
+"Please do *not* post administrative requests to the mailing\n"
+"list. If you wish to subscribe, visit %(listurl)s or send a message with "
+"the\n"
+"word `help' in it to the request address, %(request)s, for further\n"
+"instructions."
+msgstr ""
+"Kérlek az adminisztratív tartalmú leveleket *ne* a listára \n"
+"küldjed. Feliratkozáshoz látogass el a %(listurl)s címre, vagy további\n"
+"további információért küldj egy `help' tartalmú levelet a request címre,\n"
+"%(request)s."
+
+#: Mailman/Handlers/Hold.py:90
+msgid "Message has a suspicious header"
+msgstr "A levél gyanús fejlécet tartalmaz."
+
+#: Mailman/Handlers/Hold.py:91
+msgid "Your message had a suspicious header."
+msgstr "Leveled gyanús fejlécet tartalmaz."
+
+#: Mailman/Handlers/Hold.py:101
+msgid ""
+"Message body is too big: %(size)d bytes with a limit of\n"
+"%(limit)d KB"
+msgstr ""
+"Túl nagy méretû levél: %(size)d bájt, engedélyezett méret\n"
+"%(limit)d KB"
+
+#: Mailman/Handlers/Hold.py:106
+msgid ""
+"Your message was too big; please trim it to less than\n"
+"%(kb)d KB in size."
+msgstr ""
+"A leveled túl nagy; minimum %(kb)d KB méretûre kell csökkenteni\n"
+"a listán való megjelenéshez."
+
+#: Mailman/Handlers/Hold.py:110
+msgid "Posting to a moderated newsgroup"
+msgstr "A levél moderált hírcsoportra érkezett."
+
+#: Mailman/Handlers/Hold.py:233
+msgid "Your message to %(listname)s awaits moderator approval"
+msgstr "A(z) %(listname)s listára küldött leveled szerkesztõi engedélyére vár"
+
+#: Mailman/Handlers/Hold.py:253
+msgid "%(listname)s post from %(sender)s requires approval"
+msgstr ""
+"A(z) %(listname)s listára %(sender)s feladótól jövõ levél engedélyezésre vár"
+
+#: Mailman/Handlers/Hold.py:260
+msgid ""
+"If you reply to this message, keeping the Subject: header intact, Mailman "
+"will\n"
+"discard the held message. Do this if the message is spam. If you reply to\n"
+"this message and include an Approved: header with the list password in it, "
+"the\n"
+"message will be approved for posting to the list. The Approved: header can\n"
+"also appear in the first line of the body of the reply."
+msgstr ""
+"Ha törölni szeretnéd a jóváhagyásra váró levelet, akkor a Subject: fejléc\n"
+"módosítása nélkül válaszolj erre a levélre. Levelet akkor törölj, ha spamet\n"
+"tartalmaz. Ha engedélyezed a levél megjelenését, akkor válaszolj erre a\n"
+"levélre úgy, hogy egy Approved: fejlécben megadod a lista jelszavát.\n"
+"Az Approved: fejléc a válaszlevél törzsében, az elsõ sorban is megadható."
+
+#: Mailman/Handlers/MimeDel.py:56
+msgid "The message's content type was explicitly disallowed"
+msgstr "Az üzenet tartalma olyan típusú, amely külön ki van tiltva."
+
+#: Mailman/Handlers/MimeDel.py:61
+msgid "The message's content type was not explicitly allowed"
+msgstr "Az üzenet tartalmaz olyan típusú, amely nincs külön engedélyezve."
+
+#: Mailman/Handlers/MimeDel.py:73
+msgid "After content filtering, the message was empty"
+msgstr "A tartalom szûrés miatt üres lett a levél."
+
+#: Mailman/Handlers/MimeDel.py:208
+msgid ""
+"The attached message matched the %(listname)s mailing list's content "
+"filtering\n"
+"rules and was prevented from being forwarded on to the list membership. "
+"You\n"
+"are receiving the only remaining copy of the discarded message.\n"
+"\n"
+msgstr ""
+"A küldött üzenet tartalmaz olyan részt, amely egyezik a(z) %(listname)s\n"
+"levelezõlistán beállított tartalomszûrési feltétellel és ezért nem jelenhet "
+"meg\n"
+"a levelezõlistán. A csatolt mellékletben megtalálod üzenetedet eredeti "
+"példányát.\n"
+"\n"
+
+#: Mailman/Handlers/MimeDel.py:214
+msgid "Content filtered message notification"
+msgstr "Értesítés a levél tartalomszûrésérõl"
+
+#: Mailman/Handlers/Moderate.py:138
+msgid ""
+"You are not allowed to post to this mailing list, and your message has been\n"
+"automatically rejected. If you think that your messages are being rejected "
+"in\n"
+"error, contact the mailing list owner at %(listowner)s."
+msgstr ""
+"Nem engedélyezték, hogy erre a levelezõlistára levelet küldjél, ezért a "
+"leveledet automatikusan elutasítottuk. Ha szerinted\n"
+"az elutasítás jogtalan volt, akkor lépj kapcsolatba a levelezõlista\n"
+"tulajdonosával a következõ címen: %(listowner)s"
+
+#: Mailman/Handlers/Moderate.py:153
+msgid "Auto-discard notification"
+msgstr "Értesítés automatikusan törlendõ levélrõl"
+
+#: Mailman/Handlers/Moderate.py:156
+msgid "The attached message has been automatically discarded."
+msgstr "A mellékletet automatikusan töröltem."
+
+#: Mailman/Handlers/Replybot.py:74
+msgid "Auto-response for your message to "
+msgstr "Automatikus válasz az üzenetedre a(z)"
+
+#: Mailman/Handlers/Replybot.py:75
+msgid "the \"%(realname)s\" mailing list"
+msgstr "\"%(realname)s\" levelezõlistáról"
+
+#: Mailman/Handlers/Replybot.py:107
+msgid "The Mailman Replybot"
+msgstr "A Mailman automatikus feladója"
+
+#: Mailman/Handlers/Scrubber.py:148
+msgid "HTML attachment scrubbed and removed"
+msgstr "A csatolt HTML állomány át lett konvertálva és törölve."
+
+#: Mailman/Handlers/Scrubber.py:162 Mailman/Handlers/Scrubber.py:188
+msgid ""
+"An HTML attachment was scrubbed...\n"
+"URL: %(url)s\n"
+msgstr ""
+"Egy csatolt HTML állomány át lett konvertálva...\n"
+"URL: %(url)s\n"
+
+#: Mailman/Handlers/Scrubber.py:201
+msgid "no subject"
+msgstr "nincs tárgy"
+
+#: Mailman/Handlers/Scrubber.py:202
+msgid "no date"
+msgstr "nincs dátum"
+
+#: Mailman/Handlers/Scrubber.py:203
+msgid "unknown sender"
+msgstr "ismeretlen beküldõ"
+
+#: Mailman/Handlers/Scrubber.py:205
+msgid ""
+"An embedded message was scrubbed...\n"
+"From: %(who)s\n"
+"Subject: %(subject)s\n"
+"Date: %(date)s\n"
+"Size: %(size)s\n"
+"Url: %(url)s\n"
+msgstr ""
+"Csatolt állományt eltávolítottam az üzenetbõl...\n"
+"Feladó: %(who)s\n"
+"Tárgy: %(subject)s\n"
+"Dátum: %(date)s\n"
+"Méret: %(size)s\n"
+"Url : %(url)s\n"
+
+#: Mailman/Handlers/Scrubber.py:228
+msgid ""
+"A non-text attachment was scrubbed...\n"
+"Name: %(filename)s\n"
+"Type: %(ctype)s\n"
+"Size: %(size)d bytes\n"
+"Desc: %(desc)s\n"
+"Url : %(url)s\n"
+msgstr ""
+"Egy nem text típusú csatolt állomány át lett konvertálva...\n"
+"Név: %(filename)s\n"
+"Típus: %(ctype)s\n"
+"Méret: %(size)d bytes\n"
+"Leírás: %(desc)s\n"
+"Url : %(url)s\n"
+
+#: Mailman/Handlers/Scrubber.py:258
+msgid "Skipped content of type %(partctype)s"
+msgstr "%(partctype)s típusú részek figyelmen kívül hagyva"
+
+#: Mailman/Handlers/Scrubber.py:275
+msgid "-------------- next part --------------\n"
+msgstr "--------- következõ rész ---------\n"
+
+#: Mailman/Handlers/ToDigest.py:141
+msgid "%(realname)s Digest, Vol %(volume)d, Issue %(issue)d"
+msgstr "%(realname)s digest, %(volume)d kötet, %(issue)d szám"
+
+#: Mailman/Handlers/ToDigest.py:181
+msgid "digest header"
+msgstr "digest fejléc"
+
+#: Mailman/Handlers/ToDigest.py:184
+msgid "Digest Header"
+msgstr "Digest fejléc"
+
+#: Mailman/Handlers/ToDigest.py:197
+msgid "Today's Topics:\n"
+msgstr "Mai témák:\n"
+
+#: Mailman/Handlers/ToDigest.py:267
+msgid "Today's Topics (%(msgcount)d messages)"
+msgstr "Mai témák (%(msgcount)d üzenet)"
+
+#: Mailman/Handlers/ToDigest.py:292
+msgid "digest footer"
+msgstr "digest lábléc"
+
+#: Mailman/Handlers/ToDigest.py:295
+msgid "Digest Footer"
+msgstr "Digest lábléc"
+
+#: Mailman/Handlers/ToDigest.py:309
+msgid "End of "
+msgstr "Vége: "
+
+#: Mailman/ListAdmin.py:307
+msgid "Posting of your message titled \"%(subject)s\""
+msgstr "A leveled tárgya: \"%(subject)s\""
+
+#: Mailman/ListAdmin.py:346
+msgid "Forward of moderated message"
+msgstr "Továbbküldött moderált levél"
+
+#: Mailman/ListAdmin.py:405
+msgid "New subscription request to list %(realname)s from %(addr)s"
+msgstr "%(realname)s listára %(addr)s feliratkozási kérelme"
+
+#: Mailman/ListAdmin.py:428
+msgid "Subscription request"
+msgstr "Feliratkozási kérelem"
+
+#: Mailman/ListAdmin.py:458
+msgid "New unsubscription request from %(realname)s by %(addr)s"
+msgstr "%(addr)s leiratkozási kérelme %(realname)s listáról"
+
+#: Mailman/ListAdmin.py:481
+msgid "Unsubscription request"
+msgstr "Leiratkozási kérelem"
+
+#: Mailman/ListAdmin.py:512
+msgid "Original Message"
+msgstr "Eredeti üzenet"
+
+#: Mailman/ListAdmin.py:515
+msgid "Request to mailing list %(realname)s rejected"
+msgstr ""
+"A(z) %(realname)s levelezõlistára való feliratkozásod vissza lett utasítva"
+
+#: Mailman/MTA/Manual.py:57
+msgid ""
+"The mailing list `%(listname)s' has been created via the through-the-web\n"
+"interface. In order to complete the activation of this mailing list, the\n"
+"proper /etc/aliases (or equivalent) file must be updated. The program\n"
+"`newaliases' may also have to be run.\n"
+"\n"
+"Here are the entries for the /etc/aliases file:\n"
+msgstr ""
+"A(z) `%(listname)s' levelezõlistát weboldalon keresztül hozták létre.\n"
+"A lista mûködéséhez az /etc/aliases (vagy hasonló) állományt módosítani \n"
+"kell. A `newaliases' programot is le kell futtatni.\n"
+"\n"
+"A következõ sorokat kell az /etc/aliases állományban elhelyezni:\n"
+
+#: Mailman/MTA/Manual.py:67
+msgid ""
+"\n"
+"To finish creating your mailing list, you must edit your /etc/aliases (or\n"
+"equivalent) file by adding the following lines, and possibly running the\n"
+"`newaliases' program:\n"
+"\n"
+"## %(listname)s mailing list"
+msgstr ""
+"\n"
+"A levelezõlista létrehozásának utolsó lépéséhez az /etc/aliases (vagy \n"
+"hasonló) állományba a következõ sorokat kell elhelyezni, és valószínûleg\n"
+"a `newaliases' programot utána futtatni:\n"
+"\n"
+"## %(listname)s levelezõlista"
+
+#: Mailman/MTA/Manual.py:88
+msgid "Mailing list creation request for list %(listname)s"
+msgstr "%(listname)s levelezõlista létrehozás kérelme"
+
+#: Mailman/MTA/Manual.py:103
+msgid ""
+"The mailing list `%(listname)s' has been removed via the through-the-web\n"
+"interface. In order to complete the de-activation of this mailing list, "
+"the\n"
+"appropriate /etc/aliases (or equivalent) file must be updated. The program\n"
+"`newaliases' may also have to be run.\n"
+"\n"
+"Here are the entries in the /etc/aliases file that should be removed:\n"
+msgstr ""
+"A(z) `%(listname)s' levelezõlista Web-en keresztül sikeresen törölve lett.\n"
+"A levelezõlista törlésének utolsó lépéseként az /etc/aliases (vagy hasonló)\n"
+"állományt frissíteni kell, majd a `newaliases' programot futtatni.\n"
+"\n"
+"A következõ sorokat kell az /etc/aliases állományból törölni:\n"
+
+#: Mailman/MTA/Manual.py:113
+msgid ""
+"\n"
+"To finish removing your mailing list, you must edit your /etc/aliases (or\n"
+"equivalent) file by removing the following lines, and possibly running the\n"
+"`newaliases' program:\n"
+"\n"
+"## %(listname)s mailing list"
+msgstr ""
+"\n"
+"A levelezõlista törlésének utolsó lépéseként az /etc/aliases (vagy \n"
+"hasonló) állományból kell a következõ sorokat törölni, és valószínûleg\n"
+"a `newaliases' programot futtatni:\n"
+"\n"
+"## %(listname)s levelezõlista"
+
+#: Mailman/MTA/Manual.py:132
+msgid "Mailing list removal request for list %(listname)s"
+msgstr "Kérelem a(z) %(listname)s levelezõlista törlésére"
+
+#: Mailman/MTA/Postfix.py:300
+msgid "checking permissions on %(file)s"
+msgstr "jogosultságok ellenõrzése a(z) %(file)s fájlon"
+
+#: Mailman/MTA/Postfix.py:310
+msgid "%(file)s permissions must be 066x (got %(octmode)s)"
+msgstr "%(file)s jogosultságának 066x-nak kell lennie (most %(octmode)s)"
+
+#: Mailman/MTA/Postfix.py:312 Mailman/MTA/Postfix.py:339 bin/check_perms:100
+#: bin/check_perms:122 bin/check_perms:132 bin/check_perms:143
+#: bin/check_perms:162 bin/check_perms:180 bin/check_perms:200
+#: bin/check_perms:224 bin/check_perms:244 bin/check_perms:258
+#: bin/check_perms:278 bin/check_perms:315
+msgid "(fixing)"
+msgstr "(kijavítva)"
+
+#: Mailman/MTA/Postfix.py:328
+msgid "checking ownership of %(dbfile)s"
+msgstr "tulajdonos ellenõrzése a %(dbfile)s fájlon"
+
+#: Mailman/MTA/Postfix.py:336
+msgid "%(dbfile)s owned by %(owner)s (must be owned by %(user)s"
+msgstr "%(dbfile)s tulajdonosa %(owner)s (%(user)s legyen a tulajdonos)"
+
+#: Mailman/MailList.py:697
+msgid "You have been invited to join the %(listname)s mailing list"
+msgstr "Megkértek, hogy csatlakozz a(z) %(listname)s levelezõlistához"
+
+#: Mailman/MailList.py:801 Mailman/MailList.py:1157
+msgid " from %(remote)s"
+msgstr " %(remote)s"
+
+#: Mailman/MailList.py:835
+msgid "subscriptions to %(realname)s require moderator approval"
+msgstr ""
+"feliratkozáshoz a(z) %(realname)s listára szerkesztõi jóváhagyás szükséges"
+
+#: Mailman/MailList.py:894 bin/add_members:281
+msgid "%(realname)s subscription notification"
+msgstr "Értesítés %(realname)s listára feliratkozásáról"
+
+#: Mailman/MailList.py:909
+msgid "unsubscriptions require moderator approval"
+msgstr "leiratkozáshoz szerkesztõi jóváhagyás szükséges"
+
+#: Mailman/MailList.py:928
+msgid "%(realname)s unsubscribe notification"
+msgstr "Értesítés %(realname)s listáról leiratkozásáról"
+
+#: Mailman/MailList.py:1072
+msgid "subscriptions to %(name)s require administrator approval"
+msgstr ""
+"feliratkozáshoz a(z) %(name)s listára adminisztrátori jóváhagyás szükséges"
+
+#: Mailman/MailList.py:1326
+msgid "Last autoresponse notification for today"
+msgstr "A mai napra az utolsó automatikus válasz"
+
+#: Mailman/Queue/BounceRunner.py:179
+msgid ""
+"The attached message was received as a bounce, but either the bounce format\n"
+"was not recognized, or no member addresses could be extracted from it. "
+"This\n"
+"mailing list has been configured to send all unrecognized bounce messages "
+"to\n"
+"the list administrator(s).\n"
+"\n"
+"For more information see:\n"
+"%(adminurl)s\n"
+"\n"
+msgstr ""
+"A csatolt üzenet visszapattanásból származik, de vagy ismeretlen a\n"
+"formátuma, vagy nem található benne ismert listtag cím.\n"
+"A levelezõlista beállítása szerint az összes ismeretlen visszapattanási\n"
+"üzenetet a lista adminisztrátorának továbbítja.\n"
+"\n"
+"További információért látogass el ide:\n"
+"%(adminurl)s\n"
+"\n"
+
+#: Mailman/Queue/BounceRunner.py:189
+msgid "Uncaught bounce notification"
+msgstr "Ismeretlen visszapattanási értesítés"
+
+#: Mailman/Queue/CommandRunner.py:74
+msgid "Ignoring non-text/plain MIME parts"
+msgstr "Nem-szöveges/sima MIME részek figyelmen kívül hagyva"
+
+#: Mailman/Queue/CommandRunner.py:129
+msgid ""
+"The results of your email command are provided below.\n"
+"Attached is your original message.\n"
+msgstr ""
+"Az e-mailben elküldött parancsaidra a válaszokat lejjebb\n"
+"olvashatod. Az eredeti leveledet csatoltuk ehhez a levélhez.\n"
+
+#: Mailman/Queue/CommandRunner.py:134
+msgid "- Results:"
+msgstr "- Eredmények:"
+
+#: Mailman/Queue/CommandRunner.py:140
+msgid ""
+"\n"
+"- Unprocessed:"
+msgstr ""
+"\n"
+"- Feldolgozatlanok:"
+
+#: Mailman/Queue/CommandRunner.py:143
+msgid ""
+"\n"
+"- Ignored:"
+msgstr ""
+"\n"
+"- Figyelmen kívûl hagyva:"
+
+#: Mailman/Queue/CommandRunner.py:145
+msgid ""
+"\n"
+"- Done.\n"
+"\n"
+msgstr ""
+"\n"
+"- Vége.\n"
+"\n"
+
+#: Mailman/Queue/CommandRunner.py:163
+msgid "The results of your email commands"
+msgstr "Az e-mail parancsok eredményei"
+
+#: Mailman/htmlformat.py:627
+msgid "Delivered by Mailman<br>version %(version)s"
+msgstr "Mailman listakezelõ <br> %(version)s verzió"
+
+#: Mailman/htmlformat.py:628
+msgid "Python Powered"
+msgstr "Python alapú"
+
+#: Mailman/htmlformat.py:629
+msgid "Gnu's Not Unix"
+msgstr "Gnu Nem Unix"
+
+#: Mailman/i18n.py:86
+msgid "Mon"
+msgstr "H"
+
+#: Mailman/i18n.py:86
+msgid "Thu"
+msgstr "Cs"
+
+#: Mailman/i18n.py:86
+msgid "Tue"
+msgstr "K"
+
+#: Mailman/i18n.py:86
+msgid "Wed"
+msgstr "Sze"
+
+#: Mailman/i18n.py:87
+msgid "Fri"
+msgstr "P"
+
+#: Mailman/i18n.py:87
+msgid "Sat"
+msgstr "Szo"
+
+#: Mailman/i18n.py:87
+msgid "Sun"
+msgstr "V"
+
+#: Mailman/i18n.py:91
+msgid "Apr"
+msgstr "Ápr"
+
+#: Mailman/i18n.py:91
+msgid "Feb"
+msgstr "Feb"
+
+#: Mailman/i18n.py:91
+msgid "Jan"
+msgstr "Jan"
+
+#: Mailman/i18n.py:91
+msgid "Jun"
+msgstr "Jún"
+
+#: Mailman/i18n.py:91
+msgid "Mar"
+msgstr "Már"
+
+#: Mailman/i18n.py:92
+msgid "Aug"
+msgstr "Aug"
+
+#: Mailman/i18n.py:92
+msgid "Dec"
+msgstr "Dec"
+
+#: Mailman/i18n.py:92
+msgid "Jul"
+msgstr "Júl"
+
+#: Mailman/i18n.py:92
+msgid "Nov"
+msgstr "Nov"
+
+#: Mailman/i18n.py:92
+msgid "Oct"
+msgstr "Okt"
+
+#: Mailman/i18n.py:92
+msgid "Sep"
+msgstr "Sze"
+
+#: Mailman/i18n.py:95
+msgid "Server Local Time"
+msgstr "Helyi idõ a rendszeren"
+
+#: Mailman/i18n.py:128
+msgid ""
+"%(wday)s %(mon)s %(day)2i %(hh)02i:%(mm)02i:%(ss)02i %(tzname)s %(year)04i"
+msgstr ""
+"%(year)04i. %(mon)s. %(day)2i., %(wday)s, %(hh)02i:%(mm)02i:%(ss)02i %"
+"(tzname)s"
+
+#: bin/add_members:26
+msgid ""
+"Add members to a list from the command line.\n"
+"\n"
+"Usage:\n"
+" add_members [options] listname\n"
+"\n"
+"Options:\n"
+"\n"
+" --regular-members-file=file\n"
+" -r file\n"
+" A file containing addresses of the members to be added, one\n"
+" address per line. This list of people become non-digest\n"
+" members. If file is `-', read addresses from stdin. Note that\n"
+" -n/--non-digest-members-file are deprecated synonyms for this "
+"option.\n"
+"\n"
+" --digest-members-file=file\n"
+" -d=file\n"
+" Similar to above, but these people become digest members.\n"
+"\n"
+" --changes-msg=<y|n>\n"
+" -c <y|n> \n"
+"\tSet whether or not to send the list members the `there's going to be\n"
+"\tbig changes to your list' message. defaults to no.\n"
+"\n"
+" --welcome-msg=<y|n>\n"
+" -w <y|n>\n"
+" Set whether or not to send the list members a welcome message,\n"
+" overriding whatever the list's `send_welcome_msg' setting is.\n"
+"\n"
+" --admin-notify=<y|n>\n"
+" -a <y|n>\n"
+" Set whether or not to send the list administrators a notification "
+"on\n"
+" the success/failure of these subscriptions, overriding whatever the\n"
+" list's `admin_notify_mchanges' setting is.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname\n"
+" The name of the Mailman list you are adding members to. It must\n"
+" already exist.\n"
+"\n"
+"You must supply at least one of -r and -d options. At most one of the\n"
+"files can be `-'.\n"
+msgstr ""
+"Tagok hozzáadása a listához parancssorból.\n"
+"\n"
+"Használat:\n"
+" add_members [kapcsolók] listanév\n"
+"\n"
+"Kapcsolók:\n"
+"\n"
+" --regular-members-file=állomány\n"
+" -r állomány\n"
+" Az állomány neve, amelynek minden egyes sorában a listához\n"
+" adandó tagok címei találhatóak. A felsorolt tagok nem-digest\n"
+" típusú tagok lesznek. Állománynévnek `-'-et megadva a \n"
+" címeket az stdin-rõl várja a program. Fontos, hogy ezentúl \n"
+" ezt és ne a -n/--non-digest-members-file kapcsolót használjuk,\n"
+" habár még az a kapcsoló is használható.\n"
+"\n"
+" --digest-members-file=állomány\n"
+" -d állomány\n"
+" Mint az elõzõ, de digest típusú tag-hozzáadás.\n"
+"\n"
+" --changes-msg=<y|n>\n"
+" -c <y|n> \n"
+" Elküldésre kerüljön a listatagoknak a `listán nagy változások\n"
+" történtek' üzenet? Alapértelmezésben nem kerül elküldésre.\n"
+"\n"
+" --welcome-msg=<y|n>\n"
+" -w <y|n>\n"
+" Elküldésre kerüljön a listatagoknak a lista üdvözlõ szövege,\n"
+" függetlenül attól, hogy mi van beállítva a `send_welcome_msg'\n"
+" beállításban?\n"
+"\n"
+" --admin-notify=<y|n>\n"
+" -a <y|n>\n"
+" Értesítve legyen a lista adminisztrátora a sikeres/hibás\n"
+" feliratkozásokról, függetlenül az `admin_notify_mchanges'-ben\n"
+" beállítottaktól?\n"
+"\n"
+" --help\n"
+" -h\n"
+" A súgó megjelenítése és kilépés.\n"
+"\n"
+" listanév\n"
+" A Mailman lista neve, amelyhez a tagokat hozzá kell adni.\n"
+" A listának léteznie kell.\n"
+"\n"
+"Parancssorban az -n vagy -d kapcsolók legalább egyikét meg kell adni.\n"
+"Legfeljebb az egyik állománynévnek adható meg `-'.\n"
+
+#: bin/add_members:134
+msgid "Big change in %(listname)s@%(listhost)s mailing list"
+msgstr "%(listname)s@%(listhost)s levelezõlista nagyot változott"
+
+#: bin/add_members:167
+msgid "Already a member: %(member)s"
+msgstr "Már tag: %(member)s"
+
+#: bin/add_members:170
+msgid "Bad/Invalid email address: blank line"
+msgstr "Hibás/érvénytelen e-mail cím: üres sor"
+
+#: bin/add_members:172
+msgid "Bad/Invalid email address: %(member)s"
+msgstr "Hibás/érvénytelen e-mail cím: %(member)s"
+
+#: bin/add_members:174
+msgid "Hostile address (illegal characters): %(member)s"
+msgstr "Tiltott cím (illegális karakterek): %(member)s"
+
+#: bin/add_members:176
+msgid "Subscribed: %(member)s"
+msgstr "Felírva: %(member)s"
+
+#: bin/add_members:223
+msgid "Bad argument to -c/--changes-msg: %(arg)s"
+msgstr "Hibás paraméter a -c/--changes-msg kapcsolónál: %(arg)s"
+
+#: bin/add_members:230
+msgid "Bad argument to -w/--welcome-msg: %(arg)s"
+msgstr "Hibás paraméter a -w/--welcome-msg kapcsolónál: %(arg)s"
+
+#: bin/add_members:237
+msgid "Bad argument to -a/--admin-notify: %(arg)s"
+msgstr "Hibás paraméter az -a/--admin-notify kapcsolónál: %(arg)s"
+
+#: bin/add_members:243
+msgid "Cannot read both digest and normal members from standard input."
+msgstr ""
+"A standard bemenetrõl nem lehet egyszerre hagyományos és digest tagokat "
+"megadni."
+
+#: bin/add_members:249 bin/config_list:105 bin/find_member:97 bin/inject:90
+#: bin/list_admins:89 bin/list_members:187 bin/sync_members:222
+#: cron/bumpdigests:86
+msgid "No such list: %(listname)s"
+msgstr "Nincs %(listname)s nevû lista"
+
+#: bin/add_members:269 bin/change_pw:158 bin/check_db:114 bin/sync_members:244
+#: cron/bumpdigests:78
+msgid "Nothing to do."
+msgstr "Nincs teendõ."
+
+#: bin/arch:19
+msgid ""
+"Rebuild a list's archive.\n"
+"\n"
+"Use this command to rebuild the archives for a mailing list. You may want "
+"to\n"
+"do this if you edit some messages in an archive, or remove some messages "
+"from\n"
+"an archive.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] <listname> [<mbox>]\n"
+"\n"
+"Where options are:\n"
+" -h / --help\n"
+" Print this help message and exit.\n"
+"\n"
+" -q / --quiet\n"
+" Make the archiver output less verbose.\n"
+"\n"
+" --wipe\n"
+" First wipe out the original archive before regenerating. You "
+"usually\n"
+" want to specify this argument unless you're generating the archive "
+"in\n"
+" chunks.\n"
+"\n"
+" -s N\n"
+" --start=N\n"
+" Start indexing at article N, where article 0 is the first in the "
+"mbox.\n"
+" Defaults to 0.\n"
+"\n"
+" -e M\n"
+" --end=M\n"
+" End indexing at article M. This script is not very efficient with\n"
+" respect to memory management, and for large archives, it may not be\n"
+" possible to index the mbox entirely. For that reason, you can "
+"specify\n"
+" the start and end article numbers.\n"
+"\n"
+"Where <mbox> is the path to a list's complete mbox archive. Usually this "
+"will\n"
+"be some path in the archives/private directory. For example:\n"
+"\n"
+"%% bin/arch mylist archives/private/mylist.mbox/mylist.mbox\n"
+"\n"
+"<mbox> is optional. If it is missing, it is calculated.\n"
+msgstr ""
+"A lista archívumának újrakészítése.\n"
+"\n"
+"A paranccsal a lista archivumát lehet újra létrehozni. Használata akkor\n"
+"elõnyös, ha az archívum valamelyik üzenetét módosítottuk, töröltük.\n"
+"\n"
+"Használat: %(PROGRAM)s [kapcsolók] <listanév> [<mbox>]\n"
+"\n"
+"Kapcsolók:\n"
+" -h / --help\n"
+" Megjeleníti ezt a súgót és kilép.\n"
+"\n"
+" -q / --quiet\n"
+" A program kevesebb üzenetet ír ki.\n"
+"\n"
+" --wipe\n"
+"\t Az új archívum elkészítése elõtt törli a régi archívumot.\n"
+"\t Ezt a kapcsolót többnyire érdemes megadni, kivétel ha az\n"
+"\t archívumot részekben hozzuk létre.\n"
+"\n"
+" -s N\n"
+" --start=N\n"
+" Az indexelést az N-edik sorszámú levéltõl kezdi. A mbox elsõ\n"
+" levelének a sorszáma 0. Alapesetben 0-tól kezdi az indexelést.\n"
+"\n"
+" -e M\n"
+" --end=M\n"
+" Az M sorszámú levélig végzi el az indexelést. A program mûködése\n"
+" során az összes memóriát lefoglalhatja, nagy méretû archívumoknál\n"
+" elõfordulhat, hogy nem tudja teljesen elvégezni az indexelést.\n"
+" Ilyenkor célszerû az indexelést adott sorszámú cikktõl-cikkig\n"
+" elvégezni.\n"
+"\n"
+"Ahol az <mbox> a lista archívumát tartalmazó mbox elérési útvonala.\n"
+"Általában ez az archives/private könyvtáron belülre mutat. Például:\n"
+"\n"
+"%% bin/arch listam archives/private/listam.mbox/listam.mbox\n"
+"\n"
+"<mbox> megadása nem kötelezõ. Ha nincs megadva, akkor a program meg-\n"
+"keresi a mbox állományt.\n"
+
+#: bin/arch:125
+msgid "listname is required"
+msgstr "listanevet is meg kell adni"
+
+#: bin/arch:143 bin/change_pw:106 bin/config_list:242
+msgid ""
+"No such list \"%(listname)s\"\n"
+"%(e)s"
+msgstr ""
+"Nincs \"%(listname)s\" nevû lista\n"
+"%(e)s"
+
+#: bin/arch:170
+msgid "Cannot open mbox file %(mbox)s: %(msg)s"
+msgstr "%(mbox)s mbox állomány nem nyitható meg: %(msg)s"
+
+#: bin/b4b5-archfix:19
+msgid ""
+"Fix the MM2.1b4 archives.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] file ...\n"
+"\n"
+"Where options are:\n"
+" -h / --help\n"
+" Print this help message and exit.\n"
+"\n"
+"Only use this to `fix' some archive database files that may have gotten\n"
+"written in Mailman 2.1b4 with some bogus data. Use like this from your\n"
+"$PREFIX directory\n"
+"\n"
+"%% %(PROGRAM)s `grep -l _mlist archives/private/*/database/*-article`\n"
+"\n"
+"(note the backquotes are required)\n"
+"\n"
+"You will need to run `bin/check_perms -f' after running this script.\n"
+msgstr ""
+"Kijavíja a MM2.1b4 archívumát.\n"
+"\n"
+"Használat: %(PROGRAM)s [kapcsolók] állomány ...\n"
+"\n"
+"Kapcsolók:\n"
+" -h / --help\n"
+" Megjeleníti ezt a súgót és kilép.\n"
+"\n"
+"Csak azoknál az állományoknál használjuk ezt a programot, amelyekbe a\n"
+"Mailman 2.1b4 verzió hibás adatokat írt. Használjuk a $PREFIX könyvtárban\n"
+"valahogy így\n"
+"\n"
+"%% %(PROGRAM)s `grep -l _listam archives/private/*/database/*-article`\n"
+"\n"
+"(fontos, hogy használjuk az aposztrófokat is)\n"
+"\n"
+"A program futtatása után el ne felejtsük futtatni a `bin/check_perms -f'\n"
+"programot is.\n"
+
+#: bin/change_pw:19
+msgid ""
+"Change a list's password.\n"
+"\n"
+"Prior to Mailman 2.1, list passwords were kept in crypt'd format -- "
+"usually.\n"
+"Some Python installations didn't have the crypt module available, so they'd\n"
+"fall back to md5. Then suddenly the Python installation might grow a crypt\n"
+"module and all list passwords would be broken.\n"
+"\n"
+"In Mailman 2.1, all list and site passwords are stored in SHA1 hexdigest\n"
+"form. This breaks list passwords for all existing pre-Mailman 2.1 lists, "
+"and\n"
+"since those passwords aren't stored anywhere in plain text, they cannot be\n"
+"retrieved and updated.\n"
+"\n"
+"Thus, this script generates new passwords for a list, and optionally sends "
+"it\n"
+"to all the owners of the list.\n"
+"\n"
+"Usage: change_pw [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" --all / -a\n"
+" Change the password for all lists.\n"
+"\n"
+" --domain=domain\n"
+" -d domain\n"
+" Change the password for all lists in the virtual domain `domain'. "
+"It\n"
+" is okay to give multiple -d options.\n"
+"\n"
+" --listname=listname\n"
+" -l listname\n"
+" Change the password only for the named list. It is okay to give\n"
+" multiple -l options.\n"
+"\n"
+" --password=newpassword\n"
+" -p newpassword\n"
+" Use the supplied plain text password `newpassword' as the new "
+"password\n"
+" for any lists that are being changed (as specified by the -a, -d, "
+"and\n"
+" -l options). If not given, lists will be assigned a randomly\n"
+" generated new password.\n"
+"\n"
+" --quiet / -q\n"
+" Don't notify list owners of the new password. You'll have to have\n"
+" some other way of letting the list owners know the new password\n"
+" (presumably out-of-band).\n"
+"\n"
+" --help / -h\n"
+" Print this help message and exit.\n"
+msgstr ""
+"Megváltoztatja a lista jelszavát.\n"
+"\n"
+"Mailman 2.1-nél régebbi verziók a jelszavakat titkosított formában "
+"tárolták.\n"
+"Néhány esetben a telepített Python nem tartalmazta a titkosító modult, így\n"
+"ekkor md5 kódolással tárolódtak a jelszavak. Aztán hirtelen megváltozott a\n"
+"Python titkosító modulja, aminek következtében az összes lista jelszó\n"
+"használhatatlan lett.\n"
+"\n"
+"Mailman 2.1-ben minden lista és rendszer szintû jelszó SHA1 hexdigest\n"
+"formában van jelen. Emiatt az összes Mailman 2.1 elõtti verzióban\n"
+"használt jelszó érvényét veszti, mivel azok sehonnan sem olvashatok ki\n"
+"és frissíthetõk az új verzióra.\n"
+"\n"
+"Ezért ez a program minden listához új jelszót hoz létre és kérésre\n"
+"elküldi a lista tulajdonosainak.\n"
+"\n"
+"Használat: change_pw [kapcsolók]\n"
+"\n"
+"Kapcsolók:\n"
+"\n"
+" --all / -a\n"
+"\t Az összes lista jelszavát megváltoztatja.\n"
+"\n"
+" --domain=tartomány\n"
+" -d tartomány\n"
+"\t A megadott virtuális tartományban található összes lista\n"
+"\t jelszavát megváltoztatja. Egyszerre több -d kapcsolót is\n"
+"\t meg lehet adni.\n"
+"\n"
+" --listname=listanév\n"
+" -l listanév\n"
+"\t Csak a megadott lista jelszavát változtatja meg. Egyszerre\n"
+"\t több -l kapcsolót is meg lehet adni.\n"
+"\n"
+" --password=újjelszó\n"
+" -p újjelszó\n"
+"\t Az `újjelszó'-ban megadott jelszót állítja be a parancssorban\n"
+"\t (-a, -d és -l kapcsolókkal) megadott listáknál. Ha nincs\n"
+"\t új jelszó megadva, akkor a program véletlenszerû jelszót\n"
+"\t hoz létre és állít be.\n"
+"\n"
+" --quiet / -q\n"
+"\t Nem értesíti a lista gazdáját a jelszóváltozásról. Ekkor más\n"
+"\t módon kell közölni a lista tulajdonosokkal az új jelszót.\n"
+"\n"
+" --help / -h\n"
+"\t Megjeleníti ezt a súgót és kilép.\n"
+
+#: bin/change_pw:144
+msgid "Bad arguments: %(strargs)s"
+msgstr "Hibás paraméterek: %(strargs)s"
+
+#: bin/change_pw:148
+msgid "Empty list passwords are not allowed"
+msgstr "Üres admin jelszót nem lehet megadni"
+
+#: bin/change_pw:179
+msgid "New %(listname)s password: %(notifypassword)s"
+msgstr "Az új %(listname)s induló jelszava: %(notifypassword)s"
+
+#: bin/change_pw:188
+msgid "Your new %(listname)s list password"
+msgstr "Az új %(listname)s lista induló jelszava: "
+
+#: bin/change_pw:189
+msgid ""
+"The site administrator at %(hostname)s has changed the password for your\n"
+"mailing list %(listname)s. It is now\n"
+"\n"
+" %(notifypassword)s\n"
+"\n"
+"Please be sure to use this for all future list administration. You may "
+"want\n"
+"to log in now to your list and change the password to something more to "
+"your\n"
+"liking. Visit your list admin page at\n"
+"\n"
+" %(adminurl)s\n"
+msgstr ""
+"A(z) %(hostname)s gép rendszer adminisztrátora a(z) %(listname)s\n"
+"levelezõlistád jelszavát megváltoztatta. Az új jelszavad:\n"
+"\n"
+" %(notifypassword)s\n"
+"\n"
+"Fontos, hogy ezentúl ezt a jelszót használd a lista adminisztrálásánál.\n"
+"A jelszót az adminisztrációs felületen keresztül számodra könnyebben\n"
+"kezelhetõre átállíthatod bármikor. Látogasd meg a listád adminisztrációs\n"
+"oldalát a következõ címen:\n"
+"\n"
+" %(adminurl)s\n"
+
+#: bin/check_db:19
+msgid ""
+"Check a list's config database file for integrity.\n"
+"\n"
+"All of the following files are checked:\n"
+"\n"
+" config.pck\n"
+" config.pck.last\n"
+" config.db\n"
+" config.db.last\n"
+" config.safety\n"
+"\n"
+"It's okay if any of these are missing. config.pck and config.pck.last are\n"
+"pickled versions of the config database file for 2.1a3 and beyond. config."
+"db\n"
+"and config.db.last are used in all earlier versions, and these are Python\n"
+"marshals. config.safety is a pickle written by 2.1a3 and beyond when the\n"
+"primary config.pck file could not be read.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname [listname ...]]\n"
+"\n"
+"Options:\n"
+"\n"
+" --all / -a\n"
+" Check the databases for all lists. Otherwise only the lists named "
+"on\n"
+" the command line are checked.\n"
+"\n"
+" --verbose / -v\n"
+" Verbose output. The state of every tested file is printed.\n"
+" Otherwise only corrupt files are displayed.\n"
+"\n"
+" --help / -h\n"
+" Print this text and exit.\n"
+msgstr ""
+"Ellenõrzi a levelezõlista adatbázisát.\n"
+"\n"
+"A következõ állományok épségét vizsgálja a program:\n"
+"\n"
+" config.pck\n"
+" config.pck.last\n"
+" config.db\n"
+" config.db.last\n"
+" config.safety\n"
+"\n"
+"Nem gond, ha a felsorolt állományok valamelyike hiányzik. 2.1a3 és újabb\n"
+"verzióknál a config.pck és config.pck.last állományok az adatbázis mentett\n"
+"változatai. A korábbi változatoknál található a config.db és config.db.last\n"
+"állományok, amelyek formátuma Python marshal. A 2.1a3-nál újabb verziók még\n"
+"config.safety néven is elmentik az adatbázist, ha az elsõdleges config.pck\n"
+"nem olvasható, akkor a program ezt használja fel.\n"
+"\n"
+"Használat: %(PROGRAM)s [kapcsolók] [listaneve [listaneve ...]]\n"
+"\n"
+"Kapcsolók:\n"
+"\n"
+" --all / -a\n"
+"\t Az összes adatbázis ellenõrzése. Különben csak a parancssorban\n"
+"\t megadott listák adatbázisát ellenõrzi.\n"
+"\n"
+" --verbose / -v\n"
+"\t Részletes kijelzés.\n"
+"\n"
+" --help / -h\n"
+"\t Megjeleníti ezt a súgót és kilép.\n"
+
+#: bin/check_db:119
+msgid "No list named:"
+msgstr "Nincs ilyen nevû lista:"
+
+#: bin/check_db:128
+msgid "List:"
+msgstr "Lista:"
+
+#: bin/check_db:148
+msgid " %(file)s: okay"
+msgstr " %(file)s: rendben"
+
+#: bin/check_perms:19
+msgid ""
+"Check the permissions for the Mailman installation.\n"
+"\n"
+"Usage: %(PROGRAM)s [-f] [-v] [-h]\n"
+"\n"
+"With no arguments, just check and report all the files that have bogus\n"
+"permissions or group ownership. With -f (and run as root), fix all the\n"
+"permission problems found. With -v be verbose.\n"
+"\n"
+msgstr ""
+"A jogosultságok ellenõrzése a telepített Mailman-en.\n"
+"\n"
+"Használat: %(PROGRAM)s [-f] [-v] [-h]\n"
+"\n"
+"Kapcsolók nélkül használva a program az ellenõrzés során megjeleníti az\n"
+"esetleges hibás jogosultságokat, tulajdonosokat. Az -f kapcsolóval (root-\n"
+"ként) futtatva az összes hibát kijavítja a program. A -v kapcsolóval a\n"
+"mûködésérõl részletes kijelzést ad.\n"
+"\n"
+
+#: bin/check_perms:85
+msgid " checking gid and mode for %(path)s"
+msgstr " gid és jogok ellenõrzése a következõn: %(path)s"
+
+#: bin/check_perms:97
+msgid "%(path)s bad group (has: %(groupname)s, expected %(MAILMAN_GROUP)s)"
+msgstr "%(path)s hibás giddel (most: %(groupname)s, várt: %(MAILMAN_GROUP)s)"
+
+#: bin/check_perms:120
+msgid "directory permissions must be %(octperms)s: %(path)s"
+msgstr "Könyvtár jogosultságnak %(octperms)s-nek kell lennie: %(path)s"
+
+#: bin/check_perms:129
+msgid "source perms must be %(octperms)s: %(path)s"
+msgstr "a forrás jogosultságának %(octperms)s-nek kell lennie: %(path)s"
+
+#: bin/check_perms:140
+msgid "article db files must be %(octperms)s: %(path)s"
+msgstr "article db jogosultságának %(octperms)s-nek kell lennie: %(path)s"
+
+#: bin/check_perms:152
+msgid "checking mode for %(prefix)s"
+msgstr "jogok ellenõrzése a következõn: %(prefix)s"
+
+#: bin/check_perms:160
+msgid "directory must be at least 02775: %(d)s"
+msgstr "a könyvtár jogosultságának 02775 -nek kell lennie: %(d)s"
+
+#: bin/check_perms:173
+msgid "checking perms on %(private)s"
+msgstr "jogosultságok ellenõrzése a következõn: %(private)s"
+
+#: bin/check_perms:178
+msgid "%(private)s must not be other-readable"
+msgstr "%(private)s nem lehet olvasható más számára"
+
+#: bin/check_perms:198
+msgid "mbox file must be at least 0660:"
+msgstr "A mbox-nak legalább 0660 jogosultsággal kell rendelkeznie:"
+
+#: bin/check_perms:222
+msgid "%(dbdir)s \"other\" perms must be 000"
+msgstr "%(dbdir)s \"többiek\" jogosultságának 000 -nak kell lennie"
+
+#: bin/check_perms:233
+msgid "checking cgi-bin permissions"
+msgstr "cgi-bin jogosultságainak ellenõrzése"
+
+#: bin/check_perms:238
+msgid " checking set-gid for %(path)s"
+msgstr " set-gid ellenõrzése a következõn: %(path)s"
+
+#: bin/check_perms:242
+msgid "%(path)s must be set-gid"
+msgstr "%(path)s set-gid-nek kell lennie"
+
+#: bin/check_perms:252
+msgid "checking set-gid for %(wrapper)s"
+msgstr "%(wrapper)s sit-gid állapotának ellenõrzése"
+
+#: bin/check_perms:256
+msgid "%(wrapper)s must be set-gid"
+msgstr "%(wrapper)s set-gid-esnek kell lennie"
+
+#: bin/check_perms:266
+msgid "checking permissions on %(pwfile)s"
+msgstr "%(pwfile)s jogosultságainak ellenõrzése"
+
+#: bin/check_perms:275
+msgid "%(pwfile)s permissions must be exactly 0640 (got %(octmode)s)"
+msgstr "%(pwfile)s jogosultságnak 0640-nek kell lennie (most %(octmode)s)"
+
+#: bin/check_perms:299
+msgid "checking permissions on list data"
+msgstr "jogosultságok ellenõrzése a lista adatain"
+
+#: bin/check_perms:305
+msgid " checking permissions on: %(path)s"
+msgstr " jogosultságok ellenõrzése: %(path)s"
+
+#: bin/check_perms:313
+msgid "file permissions must be at least 660: %(path)s"
+msgstr "állomány jogosultságnak legalább 660-nak kell lennie: %(path)s"
+
+#: bin/check_perms:359
+msgid "No problems found"
+msgstr "Minden rendben"
+
+#: bin/check_perms:361
+msgid "Problems found:"
+msgstr "Javításra szorul:"
+
+#: bin/check_perms:362
+msgid "Re-run as %(MAILMAN_USER)s (or root) with -f flag to fix"
+msgstr ""
+"A javításhoz -f kapcsolóval %(MAILMAN_USER)s (vagy root)-ként futtasd\n"
+"újra a programot"
+
+#: bin/cleanarch:19
+msgid ""
+"Clean up an .mbox archive file.\n"
+"\n"
+"The archiver looks for Unix-From lines separating messages in an mbox "
+"archive\n"
+"file. For compatibility, it specifically looks for lines that start with\n"
+"\"From \" -- i.e. the letters capital-F, lowercase-r, o, m, space, ignoring\n"
+"everything else on the line.\n"
+"\n"
+"Normally, any lines that start \"From \" in the body of a message should be\n"
+"escaped such that a > character is actually the first on a line. It is\n"
+"possible though that body lines are not actually escaped. This script\n"
+"attempts to fix these by doing a stricter test of the Unix-From lines. Any\n"
+"lines that start \"From \" but do not pass this stricter test are escaped "
+"with a\n"
+"> character.\n"
+"\n"
+"Usage: cleanarch [options] < inputfile > outputfile\n"
+"Options:\n"
+" -s n\n"
+" --status=n\n"
+" Print a # character every n lines processed\n"
+"\n"
+" -q / --quiet\n"
+" Don't print changed line information to standard error.\n"
+"\n"
+" -n / --dry-run\n"
+" Don't actually output anything.\n"
+"\n"
+" -h / --help\n"
+" Print this message and exit\n"
+msgstr ""
+"Az .mbox archivum állomány tisztítása.\n"
+"\n"
+"Az archiváló program a mbox archivum állományában a Unix-From kifejezés\n"
+"alapján különíti el a leveleket. Kompatibilitásból a \"From \" - tehát a\n"
+"nagy F, kis r, o, m és szóköz karaktereket keresi a sorok elején.\n"
+"\n"
+"Alapesetben minden olyan levél, amely a \"From \" kifejezéssel kezdõdik a\n"
+"törzsében > jellel kezdõdõ sorokat kell, hogy tartalmazzon. Elõfordulhat,\n"
+"hogy a törzsben a sorok nincsenek így megjelölve. Ez a program ezt a hibát\n"
+"javítja ki, a leveleket a Unix-From sorok alapján azonosítja. Minden olyan\n"
+"sor amely a \"From \" kifejezéssel kezdõdik, de a szûkebb feltételnek nem\n"
+"felel meg, > jellel meg lesz jelõlve.\n"
+"\n"
+"Használat: fixfrom [kapcsolók] < bemenetifájl > kimenetifájl\n"
+"Kapcsolók:\n"
+" -s n\n"
+" --status=n\n"
+" n darab sor feldolgozása után a képernyõre egy # karaktert ír ki.\n"
+"\n"
+" -q / --quiet\n"
+" A standard hibakimenetre nem írja ki a megváltoztatott sorok számát.\n"
+"\n"
+" -n / --dry-run\n"
+" Tényleges nem írja fájlba a kimenetet.\n"
+"\n"
+" -h / --help\n"
+" Megjeleníti ezt a súgót és kilép\n"
+
+#: bin/cleanarch:82
+msgid "Unix-From line changed: %(lineno)d"
+msgstr "Unix-From sor megváltoztatva: %(lineno)d"
+
+#: bin/cleanarch:110
+msgid "Bad status number: %(arg)s"
+msgstr "Hibás jelzõszám: %(arg)s"
+
+#: bin/cleanarch:160
+msgid "%(messages)d messages found"
+msgstr "%(messages)d üzenetet találtam"
+
+#: bin/clone_member:19
+msgid ""
+"Clone a member address.\n"
+"\n"
+"Cloning a member address means that a new member will be added who has all "
+"the\n"
+"same options and passwords as the original member address. Note that this\n"
+"operation is fairly trusting of the user who runs it -- it does no\n"
+"verification to the new address, it does not send out a welcome message, "
+"etc.\n"
+"\n"
+"The existing member's subscription is usually not modified in any way. If "
+"you\n"
+"want to remove the old address, use the -r flag. If you also want to "
+"change\n"
+"any list admin addresses, use the -a flag.\n"
+"\n"
+"Usage:\n"
+" clone_member [options] fromoldaddr tonewaddr\n"
+"\n"
+"Where:\n"
+"\n"
+" --listname=listname\n"
+" -l listname\n"
+" Check and modify only the named mailing lists. If -l is not given,\n"
+" then all mailing lists are scanned from the address. Multiple -l\n"
+" options can be supplied.\n"
+"\n"
+" --remove\n"
+" -r\n"
+" Remove the old address from the mailing list after it's been "
+"cloned.\n"
+"\n"
+" --admin\n"
+" -a\n"
+" Scan the list admin addresses for the old address, and clone or "
+"change\n"
+" them too.\n"
+"\n"
+" --quiet\n"
+" -q\n"
+" Do the modifications quietly.\n"
+"\n"
+" --nomodify\n"
+" -n\n"
+" Print what would be done, but don't actually do it. Inhibits the\n"
+" --quiet flag.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" fromoldaddr (`from old address') is the old address of the user. "
+"tonewaddr\n"
+" (`to new address') is the new address of the user.\n"
+"\n"
+msgstr ""
+"Tag másolása.\n"
+"\n"
+"Tag másolásánál a listához frissen hozzáadott tag ugyanazon a beállítások-\n"
+"kal fog rendelkezni, mint a másolásnál megadott eredeti tag. A program nem\n"
+"ellenõrzi az új cím helyességét, nem küld értesítést a feliratkozásról, \n"
+"mert nagymértékben bízik az õt futtató személy hozzáértésében.\n"
+"\n"
+"A megadott létezõ tag beállításait többnyire nem módosítja a program. Ha\n"
+"törölni szeretnéd a létezõ tagot, akkor használd az -r kapcsolót.\n"
+"Ha valamelyik lista adminisztrátor címét akarod megváltoztatni, akkor \n"
+"használd az -a kapcsolót.\n"
+"\n"
+"Használat:\n"
+" clone_member [kapcsolók] eredeticím újcím\n"
+"\n"
+"Kapcsolók:\n"
+"\n"
+" --listname=listaneve\n"
+" -l listaneve\n"
+"\t Csak a megadott listán belül keres és módosít. Ha nem lett -l\n"
+"\t kapcsoló megadva, akkor az összes listában keres az eredeti tag\n"
+"\t címére. Egyszerre több -l kapcsoló is megadható.\n"
+"\n"
+" --remove\n"
+" -r\n"
+"\t Eltávolítja az eredeti címet annak sikeres átmásolása után.\n"
+"\n"
+" --admin\n"
+" -a\n"
+"\t A lista adminisztrátorok között is keresi az eredeti címet és\n"
+"\t átmásolja vagy módosítja azt.\n"
+"\n"
+" --quiet\n"
+" -q\n"
+"\t Csendes üzemmód.\n"
+"\n"
+" --nomodify\n"
+" -n\n"
+"\t Kiírja, hogy milyen változtatásokat végezne, de azokat ténylegesen\n"
+"\t nem hajtja végre. Elnyomja a --quiet kapcsoló hatását.\n"
+"\n"
+" --help\n"
+" -h\n"
+"\t Kiírja ezt a súgót és kilép.\n"
+"\n"
+" eredeticím (`a tag eredeti címe') a felhasználó régi címe.\n"
+" újcím (`a tag másolása új címre') a felhasználó új címe.\n"
+"\n"
+
+#: bin/clone_member:94
+msgid "processing mailing list:"
+msgstr "feldolgozás alatt lévõ levelezõlista:"
+
+#: bin/clone_member:101
+msgid " scanning list owners:"
+msgstr " lista tulajdonosok keresése:"
+
+#: bin/clone_member:119
+msgid " new list owners:"
+msgstr " a lista új gazdái:"
+
+#: bin/clone_member:121
+msgid "(no change)"
+msgstr "(nincs változás)"
+
+#: bin/clone_member:130
+msgid " address not found:"
+msgstr " cím nem található:"
+
+#: bin/clone_member:139
+msgid " clone address added:"
+msgstr " cím másolata hozzáadva:"
+
+#: bin/clone_member:142
+msgid " clone address is already a member:"
+msgstr " a másolt címmel létezik már a tag:"
+
+#: bin/clone_member:145
+msgid " original address removed:"
+msgstr " eredeti cím törölve:"
+
+#: bin/clone_member:196
+msgid "Not a valid email address: %(toaddr)s"
+msgstr "Nem érvényes az e-mail cím: %(toaddr)s"
+
+#: bin/clone_member:209
+msgid ""
+"Error opening list \"%(listname)s\", skipping.\n"
+"%(e)s"
+msgstr ""
+"Hiba a(z) \"%(listname)s\" lista megnyitásakor, átugorva.\n"
+"%(e)s"
+
+#: bin/config_list:19
+msgid ""
+"Configure a list from a text file description.\n"
+"\n"
+"Usage: config_list [options] listname\n"
+"\n"
+"Options:\n"
+" --inputfile filename\n"
+" -i filename\n"
+" Configure the list by assigning each module-global variable in the\n"
+" file to an attribute on the list object, then saving the list. The\n"
+" named file is loaded with execfile() and must be legal Python code.\n"
+" Any variable that isn't already an attribute of the list object is\n"
+" ignored (a warning message is printed). See also the -c option.\n"
+"\n"
+" A special variable named `mlist' is put into the globals during the\n"
+" execfile, which is bound to the actual MailList object. This lets "
+"you\n"
+" do all manner of bizarre thing to the list object, but BEWARE! "
+"Using\n"
+" this can severely (and possibly irreparably) damage your mailing "
+"list!\n"
+"\n"
+" --outputfile filename\n"
+" -o filename\n"
+" Instead of configuring the list, print out a list's configuration\n"
+" variables in a format suitable for input using this script. In "
+"this\n"
+" way, you can easily capture the configuration settings for a\n"
+" particular list and imprint those settings on another list. "
+"filename\n"
+" is the file to output the settings to. If filename is `-', "
+"standard\n"
+" out is used.\n"
+"\n"
+" --checkonly\n"
+" -c\n"
+" With this option, the modified list is not actually changed. Only\n"
+" useful with -i.\n"
+"\n"
+" --verbose\n"
+" -v\n"
+" Print the name of each attribute as it is being changed. Only "
+"useful\n"
+" with -i.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+"The options -o and -i are mutually exclusive.\n"
+"\n"
+msgstr ""
+"Lista beállítása szöveges leíróállomány segítségével.\n"
+"\n"
+"Használat: config_list [kapcsolók] listaneve\n"
+"\n"
+"Kapcsolók:\n"
+" --inputfile állománynév\n"
+" -i állománynév\n"
+" A lista minden egyes változóját egy-egy objektumhoz rendeljük\n"
+"\t az állományban, majd mentjük a lista beállításokat. A megadott\n"
+"\t állománynak érvényes Python kód formátumúnak kell lennie, be-\n"
+"\t töltése exefile()-lal történik. Azok a változók, amelyek nem\n"
+"\t rendelhetõk objektumhoz figyelmen kívül lesznek hagyva (errõl\n"
+"\t figyelmeztetõüzenet értesít bennünket). Lásd még a -c kapcsolót.\n"
+"\n"
+"\t Az execfile global részében található `mlist' különleges\n"
+"\t változóval a MailList objektum beállításait lehet módosítani.\n"
+"\t Azonban ÓVATOSAN bánjunk ezzel az objektummal, mert használata\n"
+"\t számos (és valószínûleg javíthatatlan) károkat eredményezhet a\n"
+"\t levelezõlistában!\n"
+"\n"
+" --outputfile állománynév\n"
+" -o állománynév\n"
+" A lista beállításainak lementése megfelelõ formátumban, amellyel\n"
+"\t késõbb a listát újra be lehet állítani. Ezzel a kapcsolóval \n"
+"\t könnyedén lehet az adott lista beállításait menteni, és másik\n"
+"\t listára alkalmazni. A megadott állományba mentõdnek a beállítások.\n"
+"\t Ha állománynévnek `-' lett megadva, akkor a standard kimenetre\n"
+"\t írja ki a program a beállításokat.\n"
+"\n"
+" --checkonly\n"
+" -c\n"
+"\t A kapcsolóval a listán nem történik változás. Csak az -i kapcsoló-\n"
+"\t val együtt használható.\n"
+"\n"
+" --verbose\n"
+" -v\n"
+"\t Az éppen módosítandó változó nevét írja ki. Csak az -i kapcsoló-\n"
+"\t val együtt használható.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Kiírja ezt a súgót és kilép.\n"
+"\n"
+"Az -o és -i kapcsolók egyszerre nem használhatóak.\n"
+"\n"
+
+#: bin/config_list:109
+msgid ""
+"## \"%(listname)s\" mailing list configuration settings -*- python -*-\n"
+"## captured on %(when)s\n"
+msgstr ""
+"## \"%(listname)s\" levelezõlista konfigurációs beállításai\n"
+"## -*- python -*- elmentve %(when)s-n\n"
+
+#: bin/config_list:131
+msgid "options"
+msgstr "beállítások"
+
+#: bin/config_list:188
+msgid "legal values are:"
+msgstr "megadható értékek:"
+
+#: bin/config_list:255
+msgid "attribute \"%(k)s\" ignored"
+msgstr "\"%(k)s\" attribútum figyelmen kívül hagyva"
+
+#: bin/config_list:258
+msgid "attribute \"%(k)s\" changed"
+msgstr "\"%(k)s\" attribútum beállítva"
+
+#: bin/config_list:264
+msgid "Non-standard property restored: %(k)s"
+msgstr "Nem jól megadott változó visszaállítva: %(k)s"
+
+#: bin/config_list:272
+msgid "Invalid value for property: %(k)s"
+msgstr "Érvénytelen érték a(z) %(k)s változónál."
+
+#: bin/config_list:274
+msgid "Bad email address for option %(k)s: %(v)s"
+msgstr "Rossz e-mail cím lett a(z) %(k)s részben megadva: %(v)s"
+
+#: bin/config_list:322
+msgid "Only one of -i or -o is allowed"
+msgstr "Egyszerre csak az egyike használható -i vagy -o kapcsolóknak"
+
+#: bin/config_list:324
+msgid "One of -i or -o is required"
+msgstr "Az -i vagy -o kapcsolók egyikét meg kell adnod"
+
+#: bin/config_list:328
+msgid "List name is required"
+msgstr "Meg kell adni a lista nevét"
+
+#: bin/convert.py:19
+msgid ""
+"Convert a list's interpolation strings from %-strings to $-strings.\n"
+"\n"
+"This script is intended to be run as a bin/withlist script, i.e.\n"
+"\n"
+"% bin/withlist -l -r convert <mylist>\n"
+msgstr ""
+"A lista interpolációs %-karaktereit cseréli le a program $-karakterekre.\n"
+"\n"
+"Ezt a programot a bin/withlist keretprogramon keresztül célszerû\n"
+"futtatni.\n"
+"\n"
+"% bin/withlist -l -r convert <mylist>\n"
+
+#: bin/convert.py:38 bin/fix_url.py:85
+msgid "Saving list"
+msgstr "Lista mentése"
+
+#: bin/convert.py:44 bin/fix_url.py:51
+msgid "%%%"
+msgstr "%%%"
+
+#: bin/dumpdb:19
+msgid ""
+"Dump the contents of any Mailman `database' file.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] filename\n"
+"\n"
+"Options:\n"
+"\n"
+" --marshal/-m\n"
+" Assume the file contains a Python marshal, overridding any "
+"automatic\n"
+" guessing.\n"
+"\n"
+" --pickle/-p\n"
+" Assume the file contains a Python pickle, overridding any automatic\n"
+" guessing.\n"
+"\n"
+" --noprint/-n\n"
+" Don't attempt to pretty print the object. This is useful if "
+"there's\n"
+" some problem with the object and you just want to get an unpickled\n"
+" representation. Useful with `python -i bin/dumpdb <file>'. In "
+"that\n"
+" case, the root of the tree will be left in a global called \"msg\".\n"
+"\n"
+" --help/-h\n"
+" Print this help message and exit\n"
+"\n"
+"If the filename ends with `.db', then it is assumed that the file contains "
+"a\n"
+"Python marshal. If the file ends with `.pck' then it is assumed to contain "
+"a\n"
+"Python pickle. In either case, if you want to override the default "
+"assumption\n"
+"-- or if the file ends in neither suffix -- use the -p or -m flags.\n"
+msgstr ""
+"Lementi a Mailman adatbázis állományát.\n"
+"\n"
+"Használat: %(PROGRAM)s [kapcsolók] állománynév\n"
+"\n"
+"Kapcsolók:\n"
+"\n"
+" --marshal/-m\n"
+"\t Feltételezi, hogy az állomány Python marshal-t tartalmaz,\n"
+"\t ekkor nem próbálja meg saját maga ezt megállapítani.\n"
+"\n"
+" --pickle/-p\n"
+"\t Feltételezi, hogy az állomány Python pickle-t tartalmaz,\n"
+"\t ekkor nem próbálja meg saját maga ezt megállapítani.\n"
+"\n"
+" --noprint/-n\n"
+"\t Nem jeleníti meg kozmetikázva az állományt. Használjuk,\n"
+"\t akkor ha valamilyen probléma van az állománnyal és csak\n"
+"\t bele szeretnénk tekinteni. Használhatjuk még így is\n"
+"\t `python -i bin/dumpdb <file>'. Ez esetben az eredmény\n"
+"\t fõ része a \"msg\" nevû globális változóba kerül.\n"
+"\n"
+" --help/-h\n"
+"\t Kiírja ezt a súgót és kilép.\n"
+"\n"
+"Ha az állomány kiterjesztése `.db', akkor a program feltételezi, hogy az\n"
+"állomány Python marshal-t tartalmaz. Ha `.pck'-ra végzõdik, akkor a\n"
+"program Python pickle-ként kezeli az állományt. Bármelyik esetben, ha\n"
+"az alapértelmezett megnyitási módot felül akarjuk bírálni -- vagy nem a\n"
+"felsorolt kiterjesztésû az állomány -- használjuk a -p vagy -m kapcsolót.\n"
+
+#: bin/dumpdb:101
+msgid "No filename given."
+msgstr "Nem lett állománynév megadva"
+
+#: bin/dumpdb:104
+msgid "Bad arguments: %(pargs)s"
+msgstr "Hibás paraméterek: %(pargs)s"
+
+#: bin/dumpdb:114
+msgid "Please specify either -p or -m."
+msgstr "Kérlek vagy a -p vagy az -m kapcsolót add meg."
+
+#: bin/find_member:19
+msgid ""
+"Find all lists that a member's address is on.\n"
+"\n"
+"Usage:\n"
+" find_member [options] regex [regex [...]]\n"
+"\n"
+"Where:\n"
+" --listname=listname\n"
+" -l listname\n"
+" Include only the named list in the search.\n"
+"\n"
+" --exclude=listname\n"
+" -x listname\n"
+" Exclude the named list from the search.\n"
+"\n"
+" --owners\n"
+" -w\n"
+" Search list owners as well as members.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" regex\n"
+" A Python regular expression to match against.\n"
+"\n"
+"The interaction between -l and -x is as follows. If any -l option is given\n"
+"then only the named list will be included in the search. If any -x option "
+"is\n"
+"given but no -l option is given, then all lists will be search except those\n"
+"specifically excluded.\n"
+"\n"
+"Regular expression syntax is Perl5-like, using the Python re module. "
+"Complete\n"
+"specifications are at:\n"
+"\n"
+"http://www.python.org/doc/current/lib/module-re.html\n"
+"\n"
+"Address matches are case-insensitive, but case-preserved addresses are\n"
+"displayed.\n"
+"\n"
+msgstr ""
+"Kiírja azon listák nevét, amelynek a megadott címmel tagja a felhasználó.\n"
+"\n"
+"Használat:\n"
+" find_member [kapcsolók] kifejezés [kifejezés [...]]\n"
+"\n"
+"Kapcsolók:\n"
+" --listname=listaneve\n"
+" -l listaneve\n"
+"\t Csak a megadott listában keres.\n"
+"\n"
+" --exclude=listaneve\n"
+" -x listaneve\n"
+" A megadott listában nem keres.\n"
+"\n"
+" --owners\n"
+" -w\n"
+"\t A lista tulajdonosok között is keres.\n"
+"\n"
+" --help\n"
+" -h\n"
+"\t Kiírja ezt a súgót és kilép.\n"
+"\n"
+" kifejezés\n"
+"\t Ptyhon hagyományos kifejezés, amelyre keres a program.\n"
+"\n"
+"Az -l és -x kapcsolók között különbség a következõ: Ha csak -l kapcsoló\n"
+"van megadva, akkor csak a megadott nevû listában keres a program. Ha az\n"
+"-x kapcsolót -l kapcsoló nélkül használjuk, akkor az -x után megadott\n"
+"lista kivételével a rendszeren található összes listában keres a program.\n"
+"\n"
+"A hagyományos kifejezésinek Perl5-típusúnak kell lennie, a keresést a\n"
+"Python re modulja végzi. Részletes leírása a következõ címen található:\n"
+"http://www.python.org/doc/current/lib/module-re.html\n"
+"\n"
+"Keresésnél a kis- és nagybetûk nem számítanak, de a talált címek a\n"
+"feliratkozáskor megadott formában jelennek meg.\n"
+"\n"
+
+#: bin/find_member:159
+msgid "Search regular expression required"
+msgstr "A keresési kifejezést meg kell adni"
+
+#: bin/find_member:164
+msgid "No lists to search"
+msgstr "Nincs lista, amelyben keresni lehetne"
+
+#: bin/find_member:173
+msgid "found in:"
+msgstr "tagja a következõ listának:"
+
+#: bin/find_member:179
+msgid "(as owner)"
+msgstr "(a tulajdonos)"
+
+#: bin/fix_url.py:19
+msgid ""
+"Reset a list's web_page_url attribute to the default setting.\n"
+"\n"
+"This script is intended to be run as a bin/withlist script, i.e.\n"
+"\n"
+"% bin/withlist -l -r fix_url listname [options]\n"
+"\n"
+"Options:\n"
+" -u urlhost\n"
+" --urlhost=urlhost\n"
+" Look up urlhost in the virtual host table and set the web_page_url "
+"and\n"
+" host_name attributes of the list to the values found. This\n"
+" essentially moves the list from one virtual domain to another.\n"
+"\n"
+" Without this option, the default web_page_url and host_name values "
+"are\n"
+" used.\n"
+"\n"
+" -v / --verbose\n"
+" Print what the script is doing.\n"
+"\n"
+"If run standalone, it prints this help text and exits.\n"
+msgstr ""
+"Visszaállítja a lista web_page_url értékét az alapértelmezett\n"
+"értékre.\n"
+"\n"
+"Ezt a programot a bin/withlist keretprogrammal használjuk, pl.\n"
+"\n"
+"% bin/withlist -l -r fix_url listanév [kapcsolók]\n"
+"\n"
+"Kapcsolók:\n"
+" -u urlhost\n"
+" --urlhost=urlhost\n"
+" Az urlhost értékét a virtuális host táblából keresi ki és állítja "
+"be a\n"
+" web_page_url és host_name változóknak. Ezzel a listát egy másik\n"
+" virtuális tartományba mozgatjuk át.\n"
+"\n"
+" A kapcsoló nélkül az alapértelmezett web_page_url és host_name\n"
+" értékét fogja felhasználni a program.\n"
+"\n"
+" -v / --verbose\n"
+" Részletesen megjeleníti, hogy a program éppen mit csinál.\n"
+"\n"
+"Ha a programot önmagában futtatjuk, akkor megjeleníti ezt a súgót és kilép.\n"
+
+#: bin/fix_url.py:80
+msgid "Setting web_page_url to: %(web_page_url)s"
+msgstr "web_page_url értékének beállítása: %(web_page_url)s"
+
+#: bin/fix_url.py:83
+msgid "Setting host_name to: %(mailhost)s"
+msgstr "host_name értékének beállítása: %(mailhost)s"
+
+#: bin/genaliases:19
+msgid ""
+"Regenerate Postfix's data/aliases and data/aliases.db files from scratch.\n"
+"\n"
+"Usage:\n"
+"\n"
+" genaliases [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+msgstr ""
+"Újra létrehozza a Postfix data/aliases és data/aliases.db állományait.\n"
+"\n"
+"Használat:\n"
+" genaliases [kapcsolók]\n"
+"\n"
+"Kapcsolók:\n"
+"\n"
+" -h/--help\n"
+"\t Kiírja ezt a súgót és kilép.\n"
+
+#: bin/inject:19
+msgid ""
+"Inject a message from a file into Mailman's incoming queue.\n"
+"\n"
+"Usage: inject [options] [filename]\n"
+"\n"
+"Options:\n"
+"\n"
+" -h / --help\n"
+" Print this text and exit.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" The name of the list to inject this message to. Required.\n"
+"\n"
+" -q queuename\n"
+" --queue=queuename\n"
+" The name of the queue to inject the message to. The queuename must "
+"be\n"
+" one of the directories inside the qfiles directory. If omitted, "
+"the\n"
+" incoming queue is used.\n"
+"\n"
+"filename is the name of the plaintext message file to inject. If omitted,\n"
+"standard input is used.\n"
+msgstr ""
+"Üzenet beszúrása állományból a Mailman bejövõ feldolgozási sorába.\n"
+"\n"
+"Használat: inject [kapcsolók] [állománynév]\n"
+"\n"
+"Kapcsolók:\n"
+"\n"
+" -h / --help\n"
+" Megjeleníti ezt a súgót és kilép.\n"
+"\n"
+" -l listanév\n"
+" --listname=listanév\n"
+" A listaneve ahova a levelet szeretnénk beszúrni. Kötelezõ megadni.\n"
+"\n"
+" -q feldolgozási-sor név\n"
+" --queue=feldolgozási-sor név\n"
+" Annak a feldolgozási sornak a neve, ahova szeretnénk a levelet\n"
+" beszúrni. A névnek egyeznie kell a qfiles könyvtárban található\n"
+" könyvtár nevek egyikével. Ha nem lett megadva, akkor a bejövõ\n"
+" feldolgozási sort használja a program.\n"
+"\n"
+"Az `állománynév' annak a fájlnak a neve, amely sima szöveges formátumban\n"
+"tartalmazza a beszúrandó levelet. Ha nem lett megadva, akkor a hagyományos\n"
+"bemeneti forrást használja a program.\n"
+
+#: bin/inject:83
+msgid "Bad queue directory: %(qdir)s"
+msgstr "Hibás feldolgozási sor könyvtár: %(qdir)s"
+
+#: bin/inject:88
+msgid "A list name is required"
+msgstr "Egy listanevet is meg kell adni."
+
+#: bin/list_admins:19
+msgid ""
+"List all the owners of a mailing list.\n"
+"\n"
+"Usage: %(program)s [options] listname ...\n"
+"\n"
+"Where:\n"
+"\n"
+" --all-vhost=vhost\n"
+" -v=vhost\n"
+" List the owners of all the mailing lists for the given virtual "
+"host.\n"
+"\n"
+" --all\n"
+" -a\n"
+" List the owners of all the mailing lists on this system.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+"`listname' is the name of the mailing list to print the owners of. You can\n"
+"have more than one named list on the command line.\n"
+msgstr ""
+"Megjeleníti a lista összes tulajdonosát.\n"
+"\n"
+"Használat: %(program)s [kapcsolók] listaneve ...\n"
+"\n"
+"Kapcsolók:\n"
+"\n"
+" --all-vhost=vhost\n"
+" -v=vhost\n"
+"\t Az adott virtuális hostban található összes levelezõlista\n"
+"\t tulajdonosát kiírja.\n"
+"\n"
+" --all\n"
+" -a\n"
+"\t A gépen található összes levelezõlista tulajdonosát kiírja.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Kiírja ezt a súgót és kilép.\n"
+
+#: bin/list_admins:96
+msgid "List: %(listname)s, \tOwners: %(owners)s"
+msgstr "Lista: %(listname)s, \tTulajdonosok: %(owners)s"
+
+#: bin/list_lists:19
+msgid ""
+"List all mailing lists.\n"
+"\n"
+"Usage: %(program)s [options]\n"
+"\n"
+"Where:\n"
+"\n"
+" -a / --advertised\n"
+" List only those mailing lists that are publically advertised\n"
+"\n"
+" --virtual-host-overview=domain\n"
+" -V domain\n"
+" List only those mailing lists that are homed to the given virtual\n"
+" domain. This only works if the VIRTUAL_HOST_OVERVIEW variable is\n"
+" set.\n"
+"\n"
+" -b / --bare\n"
+" Displays only the list name, with no description.\n"
+"\n"
+" -h / --help\n"
+" Print this text and exit.\n"
+"\n"
+msgstr ""
+"Felsorolja a rendszeren található összes levelezõlistát.\n"
+"\n"
+"Használat: %(program)s [kapcsolók]\n"
+"\n"
+"Kapcsolók:\n"
+"\n"
+" -a / --advertised\n"
+"\t Csak azokat a levelezõlistákat jeleníti meg, amelyek nyilvánossak,\n"
+"\t nincsenek elrejtve.\n"
+"\n"
+" --virtual-host-overview=tartomany\n"
+" -V tartomany\n"
+"\t Csak a megadott virtuális tartományhoz tartozó levelezõlistákat\n"
+"\t jeleníti meg. Csak akkor mûködik, ha a VIRTUAL_HOST_OVERVIEW \n"
+"\t be van állítva.\n"
+"\n"
+" -b / --bare\n"
+"\t Csak a listák nevét jeleníti meg leírás nélkül.\n"
+"\n"
+" --help\n"
+" -h\n"
+"\t Kiírja ezt a súgót és kilép.\n"
+"\n"
+
+#: bin/list_lists:105
+msgid "No matching mailing lists found"
+msgstr "Nincs a feltételnek megfelelõ lista"
+
+#: bin/list_lists:109
+msgid "matching mailing lists found:"
+msgstr ", a feltételnek megfelelõ levelezõlista:"
+
+#: bin/list_members:19
+msgid ""
+"List all the members of a mailing list.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] listname\n"
+"\n"
+"Where:\n"
+"\n"
+" --output file\n"
+" -o file\n"
+" Write output to specified file instead of standard out.\n"
+"\n"
+" --regular / -r\n"
+" Print just the regular (non-digest) members.\n"
+"\n"
+" --digest[=kind] / -d [kind]\n"
+" Print just the digest members. Optional argument can be \"mime\" "
+"or\n"
+" \"plain\" which prints just the digest members receiving that kind "
+"of\n"
+" digest.\n"
+"\n"
+" --nomail[=why] / -n [why]\n"
+" Print the members that have delivery disabled. Optional argument "
+"can\n"
+" be \"byadmin\", \"byuser\", \"bybounce\", or \"unknown\" which "
+"prints just the\n"
+" users who have delivery disabled for that reason. It can also be\n"
+" \"enabled\" which prints just those member for whom delivery is\n"
+" enabled.\n"
+"\n"
+" --fullnames / -f\n"
+" Include the full names in the output.\n"
+"\n"
+" --preserve\n"
+" -p\n"
+" Output member addresses case preserved the way they were added to "
+"the\n"
+" list. Otherwise, addresses are printed in all lowercase.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname is the name of the mailing list to use.\n"
+"\n"
+"Note that if neither -r or -d is supplied, both regular members are printed\n"
+"first, followed by digest members, but no indication is given as to address\n"
+"status.\n"
+msgstr ""
+"Megjeleníti a levelezõlista összes tagjának címét.\n"
+"\n"
+"Használat: %(PROGRAM)s [kapcsolók] listanév\n"
+"\n"
+"Ahol:\n"
+"\n"
+" --output állomány\n"
+" -o állomány\n"
+" A megadott állományba és nem a standard kimenetre írja ki az "
+"eredményt.\n"
+"\n"
+" --regular / -r\n"
+" Csak a hagyományos (nem-digest) tagokat írja ki.\n"
+"\n"
+" --digest[=típus] / -d [típus]\n"
+" Csak a digest tagokat írja ki. Választható, hogy csak azokat a "
+"tagokat\n"
+" mutassa meg, akik \"mime\" vagy \"plain\" típusú digestre iratkoztak "
+"fel.\n"
+"\n"
+" --nomail[=miért] / -n [miért]\n"
+" Megmutatja azokat a tagokat akiknél a levélkézbesítés ki van "
+"kapcsolva.\n"
+" Választható kifejezések a \"byadmin\", \"byuser\", \"bybounce\" vagy\n"
+" \"unknown\", amelyek segítségével csak azokat a tagokat sorolja "
+"fel, \n"
+" akiknél a levélkézbesítést az \"admin\", a \"felhasználó\", a "
+"\"program\"\n"
+" vagy \"ismeretlen ok\" kapcsolta ki. Ha \"enabled\" kifejezést adjuk "
+"meg,\n"
+" akkor csak azon tagokat mutatja meg a program, akiknél a "
+"levélkézbesítés\n"
+" mûködik.\n"
+"\n"
+" --fullnames\n"
+" -f\n"
+"\tA kimenetben megjeleníti a teljes neveket is.\n"
+"\n"
+" --preserve\n"
+" -p\n"
+" A tagok címeit eredeti formájukban, ahogy a feliratkozáskor meg "
+"lettek\n"
+"\tadva írja ki. Különben csupa kisbetûvel jeleníti meg.\n"
+"\n"
+" --help\n"
+" -h\n"
+"\tKiírja ezt a súgót és kilép.\n"
+"\n"
+" listaneve a feldolgozandó levelezõlistának a neve\n"
+"\n"
+"Ha nem lett -r vagy -d kapcsoló megadva, akkor a lista elején a rendes "
+"tagok,\n"
+"majd a digest tagok címét írja ki a program, de azok státuszát nem jeleníti\n"
+"meg.\n"
+
+#: bin/list_members:150
+msgid "Bad --nomail option: %(why)s"
+msgstr "Hibás --nomail kapcsoló: %(why)s"
+
+#: bin/list_members:161
+msgid "Bad --digest option: %(kind)s"
+msgstr "Hibás --digest kapcsoló: %(kind)s"
+
+#: bin/list_members:179
+msgid "Could not open file for writing:"
+msgstr "Nem lehet írásra megnyitni az állományt:"
+
+#: bin/list_owners:19
+msgid ""
+"List the owners of a mailing list, or all mailing lists.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname ...]\n"
+"Options:\n"
+"\n"
+" -w / --with-listnames\n"
+" Group the owners by list names and include the list names in the\n"
+" output. Otherwise, the owners will be sorted and uniquified based "
+"on\n"
+" the email address.\n"
+"\n"
+" -m / --moderators\n"
+" Include the list moderators in the output.\n"
+"\n"
+" -h / --help\n"
+" Print this help message and exit.\n"
+"\n"
+" listname\n"
+" Print the owners of the specified lists. More than one can appear\n"
+" after the options. If there are no listnames provided, the owners "
+"of\n"
+" all the lists will be displayed.\n"
+msgstr ""
+"Megjeleníti az adott vagy az összes levelezõlista tulajdonosát,\n"
+"tulajdonosait.\n"
+"\n"
+"Használat: %(PROGRAM)s [kapcsolók] [listanév ...]\n"
+"\n"
+"Kapcsolók:\n"
+"\n"
+" -w / --with-listnames\n"
+"\t A tuljdonosokat listánként csoportosítva jeleníti meg a lista\n"
+"\t neve után. Alapesetben a tulajdonosokat email címük szerint\n"
+"\t ABC-sorrendben jeleníti meg.\n"
+"\n"
+" -m / --moderators\n"
+"\t Kiírja a lista szerkesztõk címeit is.\n"
+"\n"
+" -h / --help\n"
+"\t Megjeleníti ezt a súgót és kilép.\n"
+"\n"
+" listanév\n"
+"\t A megadott lista tulajdonosait jeleníti meg. A parancssorban\n"
+"\t egyszerre több listanevet is meg lehet adni. Ha nem adunk meg\n"
+"\t listanevet, akkor a rendszeren található összes lista tulajdonosát\n"
+"\t kiírja a program.\n"
+
+#: bin/mailmanctl:19
+msgid ""
+"Primary start-up and shutdown script for Mailman's qrunner daemon.\n"
+"\n"
+"This script starts, stops, and restarts the main Mailman queue runners, "
+"making\n"
+"sure that the various long-running qrunners are still alive and kicking. "
+"It\n"
+"does this by forking and exec'ing the qrunners and waiting on their pids.\n"
+"When it detects a subprocess has exited, it may restart it.\n"
+"\n"
+"The qrunners respond to SIGINT, SIGTERM, and SIGHUP. SIGINT and SIGTERM "
+"both\n"
+"cause the qrunners to exit cleanly, but the master will only restart "
+"qrunners\n"
+"that have exited due to a SIGINT. SIGHUP causes the master and the "
+"qrunners\n"
+"to close their log files, and reopen then upon the next printed message.\n"
+"\n"
+"The master also responds to SIGINT, SIGTERM, and SIGHUP, which it simply\n"
+"passes on to the qrunners (note that the master will close and reopen its "
+"own\n"
+"log files on receipt of a SIGHUP). The master also leaves its own process "
+"id\n"
+"in the file data/master-qrunner.pid but you normally don't need to use this\n"
+"pid directly. The `start', `stop', `restart', and `reopen' commands handle\n"
+"everything for you.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [ start | stop | restart | reopen ]\n"
+"\n"
+"Options:\n"
+"\n"
+" -n/--no-restart\n"
+" Don't restart the qrunners when they exit because of an error or a\n"
+" SIGINT. They are never restarted if they exit in response to a\n"
+" SIGTERM. Use this only for debugging. Only useful if the `start'\n"
+" command is given.\n"
+"\n"
+" -u/--run-as-user\n"
+" Normally, this script will refuse to run if the user id and group "
+"id\n"
+" are not set to the `mailman' user and group (as defined when you\n"
+" configured Mailman). If run as root, this script will change to "
+"this\n"
+" user and group before the check is made.\n"
+"\n"
+" This can be inconvenient for testing and debugging purposes, so the -"
+"u\n"
+" flag means that the step that sets and checks the uid/gid is "
+"skipped,\n"
+" and the program is run as the current user and group. This flag is\n"
+" not recommended for normal production environments.\n"
+"\n"
+" Note though, that if you run with -u and are not in the mailman "
+"group,\n"
+" you may have permission problems, such as begin unable to delete a\n"
+" list's archives through the web. Tough luck!\n"
+"\n"
+" -s/--stale-lock-cleanup\n"
+" If mailmanctl finds an existing master lock, it will normally exit\n"
+" with an error message. With this option, mailmanctl will perform "
+"an\n"
+" extra level of checking. If a process matching the host/pid "
+"described\n"
+" in the lock file is running, mailmanctl will still exit, but if no\n"
+" matching process is found, mailmanctl will remove the apparently "
+"stale\n"
+" lock and make another attempt to claim the master lock.\n"
+"\n"
+" -q/--quiet\n"
+" Don't print status messages. Error messages are still printed to\n"
+" standard error.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+"\n"
+"Commands:\n"
+"\n"
+" start - Start the master daemon and all qrunners. Prints a message "
+"and\n"
+" exits if the master daemon is already running.\n"
+"\n"
+" stop - Stops the master daemon and all qrunners. After stopping, no\n"
+" more messages will be processed.\n"
+"\n"
+" restart - Restarts the qrunners, but not the master process. Use this\n"
+" whenever you upgrade or update Mailman so that the qrunners "
+"will\n"
+" use the newly installed code.\n"
+"\n"
+" reopen - This will close all log files, causing them to be re-opened "
+"the\n"
+" next time a message is written to them\n"
+msgstr ""
+"A Mailman qrunner démonjának fõ indító és lezáró szkriptje.\n"
+"\n"
+"A program elindítja, leállítja, vagy újraindítja a Mailman qrunner modulját\n"
+"és meggyõzõdik, hogy a különbözõ folyamatosan mûködõ qrunner modulok\n"
+"futnak és rendesen mûködnek. Ezt a különbözõ qrunner programok sorozatos\n"
+"indításával (forking) és azok folyamatazonosítójának beolvasásával éri\n"
+"el. Ha észreveszi, hogy valamelyik alprogram nem fut, akkor azt újra-\n"
+"indítja.\n"
+"\n"
+"Az al-qrunner modulok a SIGINT, SIGTERM ÉS SIGHUP jelzéseket várják.\n"
+"SIGINT ÉS SIGTERM jelzésekre az al-qrunner modulok rendesen leállnak és\n"
+"kilépnek, a fõ qrunner csak azokat fogja újraindítani, amelyek leállását\n"
+"a SIGINT jelzés idézte elõ. SIGHUP jelzésnél mind a fõ, mind az al-qrunner\n"
+"modulok lezárják a naplóállományaikat, majd a következõ naplózásnál újra-\n"
+"nyitják azokat.\n"
+"\n"
+"A fõ qrunner program szintén a SIGINT, SIGTERM és SIGHUP jelzéseket "
+"figyeli,\n"
+"amelyeket az alprogramoknak továbbít (a fõ modul SIGHUP jelzésre lezárja\n"
+"a naplóállományait, s késõbb nyitja újra meg). A fõ qrunner folyamatazono-\n"
+"sítóját a data/master-qrunner.pid állományból lehet megtudni, de többnyire\n"
+"nincs közvetlenül szükség erre a pid-re. Használjuk inkább a `start, `stop'\n"
+"'restart' és 'reopen' parancsokat\n"
+"\n"
+"Használat: %(PROGRAM)s [kapcsolók] [ start | stop | restart | reopen ]\n"
+"\n"
+"Kapcsolók:\n"
+"\n"
+" -n/--no-restart\n"
+"\t Nem indítja újra a programokat, ha azok valamilyen hiba vagy SIGINT\n"
+"\t miatt álltak le. A programok nem indulnak újra, ha SIGTERM jelzésre\n"
+"\t álltak le. Csak hibakövetésnél használjuk. Használata csak a `start'\n"
+"\t parancsnál elõnyös.\n"
+"\n"
+" -u/--run-as-user\n"
+"\t A szkript alapvetõen csak `mailman' felhasználó és csoportnév\n"
+"\t (vagyis ahogy a Mailman telepítése során meg lett adva) alatt fut.\n"
+"\t Root-ként futtatva a program a megadott felhasználói és csoportnév-\n"
+"\t vel indul, mielõtt ellenõrzést végez.\n"
+"\n"
+"\t A kapcsoló használata nem elõnyös teszteléskor és hibakeresés-\n"
+"\t kor, mivel az -u kapcsolóval a szkript az uid/gid ellenõrzését és\n"
+"\t beállítását nem végzi el, hanem a megadott névvel és csoport\n"
+"\t alatt fog futni. A kapcsoló használata normál mûködésnél nem\n"
+"\t ajánlott.\n"
+"\n"
+" -s/--stale-lock-cleanup\n"
+"\t Ha a mailmanctl létezõ fõ qrunner zárolóállományt talál, akkor\n"
+"\t hibaüzenettel kilép. A kapcsolóval a mailmanctl ellenõrzi, hogy\n"
+"\t a létezõ zárolóállományhoz tartozik-e érvényes, éppen futó\n"
+"\t folyamat. Ha létezik, akkor a program kilép. Ha nem található\n"
+"\t érvényes folyamat, akkor a lejárt zárolást megszünteti és meg-\n"
+"\t próbálja újra zárolni a fõ qrunnert.\n"
+"\n"
+" -q/--quiet\n"
+"\t Nem írja ki az állapot üzeneteket. A hibaüzeneteket a standard\n"
+"\t hibakimeneten azonban ekkor is megjeleníti.\n"
+"\n"
+" -h/--help\n"
+" Kiírja ezt a súgót és kilép.\n"
+"\n"
+"Parancsok:\n"
+"\n"
+" start - Elindítja a fõ qrunner démont. Ha a fõ qrunner démon már\n"
+"\t fut, akkor egy üzenetet jelenít meg és kilép.\n"
+"\n"
+" stop - Leállítja a fõ qrunner démont és egyéb futó qrunner \n"
+"\t programokat. A programok leállítása után egyetelne egy\n"
+"\t sem kerül feldolgozásra.\n"
+"\n"
+" restart - SIGHUP jelzéssel újraindítja a fõ qrunner démont. Ekkor\n"
+"\t az összes futó qrunner program leáll, majd újraindul. A\n"
+"\t fõ qrunner program ugyanekkor az összes naplóállományt újra\n"
+"\t megnyitja.\n"
+"\n"
+" reopen - A naplóállományokat újra nyitja.\n"
+
+#: bin/mailmanctl:149
+msgid "PID unreadable in: %(pidfile)s"
+msgstr "Nem lehet kiolvasni a PID-et: %(pidfile)s"
+
+#: bin/mailmanctl:151
+msgid "Is qrunner even running?"
+msgstr "A qrunner még mindig fut?"
+
+#: bin/mailmanctl:157
+msgid "No child with pid: %(pid)s"
+msgstr "A következõ pid-del nem található alfolyamat: %(pid)s"
+
+#: bin/mailmanctl:159
+msgid "Stale pid file removed."
+msgstr "Lejárt pid-állomány törölve."
+
+#: bin/mailmanctl:217
+msgid ""
+"The master qrunner lock could not be acquired because it appears as if "
+"another\n"
+"master qrunner is already running.\n"
+msgstr ""
+"Nem lehet a fõ qrunner zárolását megszüntetni. Úgy tûnik, hogy fut egy \n"
+"másik qrunner.\n"
+
+#: bin/mailmanctl:223
+msgid ""
+"The master qrunner lock could not be acquired. It appears as though there "
+"is\n"
+"a stale master qrunner lock. Try re-running mailmanctl with the -s flag.\n"
+msgstr ""
+"Nem lehet a fõ qrunner zárolását megszüntetni. Úgy tûnik, hogy lejárt\n"
+"zárolás van jelen. Használjuk a mailmanctl -s kapcsolóját.\n"
+
+#: bin/mailmanctl:229
+msgid ""
+"The master qrunner lock could not be acquired, because it appears as if "
+"some\n"
+"process on some other host may have acquired it. We can't test for stale\n"
+"locks across host boundaries, so you'll have to do this manually. Or, if "
+"you\n"
+"know the lock is stale, re-run mailmanctl with the -s flag.\n"
+"\n"
+"Lock file: %(LOCKFILE)s\n"
+"Lock host: %(status)s\n"
+"\n"
+"Exiting."
+msgstr ""
+"Nem lehet a fõ qrunner zárolását megszüntetni, mert valószínûleg egy másik\n"
+"gép már foglalja. Más gépekrõl történõ zárolást nem tudjuk automatikusan\n"
+"megszüntetni, ezért ezt manuálisan kell végrehajtania. Vagy, ha biztosan\n"
+"tudja, hogy a zárolás lejárt, akkor futtassa újra a mailmanctl programot\n"
+"az -s kapcsolóval.\n"
+"\n"
+"Zárolóállomány: %(LOCKFILE)s\n"
+"Zároló gép : %(status)s\n"
+"\n"
+"Kilépek."
+
+#: bin/mailmanctl:282
+msgid "Run this program as root or as the %(name)s user, or use -u."
+msgstr ""
+"A programot root-ként vagy %(name)s felhasználóként futtasd, vagy\n"
+"használd az -u kapcsolót."
+
+#: bin/mailmanctl:313
+msgid "No command given."
+msgstr "Nincs parancs megadva"
+
+#: bin/mailmanctl:316
+msgid "Bad command: %(command)s"
+msgstr "Hibás parancs: %(command)s"
+
+#: bin/mailmanctl:321
+msgid "Warning! You may encounter permission problems."
+msgstr "Figyelmeztetés! Valószínûleg probléma lesz a jogosultságokkal."
+
+#: bin/mailmanctl:330
+msgid "Shutting down Mailman's master qrunner"
+msgstr "Folyamat befejezése: Mailman fõ qrunner"
+
+#: bin/mailmanctl:337
+msgid "Restarting Mailman's master qrunner"
+msgstr "Folyamat újraindítása: Mailman fõ qrunner"
+
+#: bin/mailmanctl:341
+msgid "Re-opening all log files"
+msgstr "Összes naplóállomány újranyitása."
+
+#: bin/mailmanctl:375
+msgid "Starting Mailman's master qrunner."
+msgstr "Folyamat indítása: Mailman fõ qrunner"
+
+#: bin/mmsitepass:19
+msgid ""
+"Set the site password, prompting from the terminal.\n"
+"\n"
+"The site password can be used in most if not all places that the list\n"
+"administrator's password can be used, which in turn can be used in most "
+"places\n"
+"that a list users password can be used.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [password]\n"
+"\n"
+"Options:\n"
+"\n"
+" -c/--listcreator\n"
+" Set the list creator password instead of the site password. The "
+"list\n"
+" creator is authorized to create and remove lists, but does not have\n"
+" the total power of the site administrator.\n"
+"\n"
+" -h/--help\n"
+" Print this help message and exit.\n"
+"\n"
+"If password is not given on the command line, it will be prompted for.\n"
+msgstr ""
+"Terminálon futtatva beállítja a rendszer szintû jelszót.\n"
+"\n"
+"A rendszer szintû jelszót mind azokon a helyeken lehet használni, ahova\n"
+"lista adminisztrációs jelszó szükséges. A listatag jelszava helyett pedig\n"
+"a lista adminisztrációs jelszót lehet használni.\n"
+"\n"
+"Használat: %(PROGRAM)s [kapcsolók] [jelszó]\n"
+"\n"
+"Kapcsolók:\n"
+"\n"
+" -c/--listcreator\n"
+"\t A rendszer szintû jelszó helyet a listalétrehozó jelszót állítja\n"
+"\t be. A listalétrehozó listákat hozhat létre és törölhet, de nem\n"
+"\t rendelkezik rendszer szintû adminisztrátori jogokkal.\n"
+"\n"
+" -h/--help\n"
+" Kiírja ezt a súgót és kilép.\n"
+"\n"
+"Ha a parancssorban nem lett jelszó megadva, akkor futtatáskor kér be\n"
+"egyet.\n"
+
+#: bin/mmsitepass:73
+msgid "site"
+msgstr "webhely"
+
+#: bin/mmsitepass:80
+msgid "list creator"
+msgstr "listalétrehozó"
+
+#: bin/mmsitepass:86
+msgid "New %(pwdesc)s password: "
+msgstr "Új %(pwdesc)s jelszó: "
+
+#: bin/mmsitepass:87
+msgid "Again to confirm password: "
+msgstr "Ismételd meg a jelszót:"
+
+#: bin/mmsitepass:89
+msgid "Passwords do not match; no changes made."
+msgstr "A jelszavak nem egyeznek; nincs változtatás."
+
+#: bin/mmsitepass:92
+msgid "Interrupted..."
+msgstr "Megszakítva..."
+
+#: bin/mmsitepass:98
+msgid "Password changed."
+msgstr "Jelszó megváltoztatva."
+
+#: bin/mmsitepass:100
+msgid "Password change failed."
+msgstr "Sikertelen jelszóváltoztatás."
+
+#: bin/newlist:19
+msgid ""
+"Create a new, unpopulated mailing list.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname [listadmin-addr [admin-password]]]\n"
+"\n"
+"Options:\n"
+"\n"
+" -l language\n"
+" --language language\n"
+" Make the list's preferred language `language', which must be a two\n"
+" letter language code.\n"
+"\n"
+" -q/--quiet\n"
+" Normally the administrator is notified by email (after a prompt) "
+"that\n"
+" their list has been created. This option suppresses the prompt and\n"
+" notification.\n"
+"\n"
+" -h/--help\n"
+" Print this help text and exit.\n"
+"\n"
+"You can specify as many of the arguments as you want on the command line:\n"
+"you will be prompted for the missing ones.\n"
+"\n"
+"Every Mailman list has two parameters which define the default host name "
+"for\n"
+"outgoing email, and the default URL for all web interfaces. When you\n"
+"configured Mailman, certain defaults were calculated, but if you are "
+"running\n"
+"multiple virtual Mailman sites, then the defaults may not be appropriate "
+"for\n"
+"the list you are creating.\n"
+"\n"
+"You can specify the domain to create your new list in by spelling the "
+"listname\n"
+"like so:\n"
+"\n"
+" mylist@www.mydom.ain\n"
+"\n"
+"where `www.mydom.ain' should be the base hostname for the URL to this "
+"virtual\n"
+"hosts's lists. E.g. with is setting people will view the general list\n"
+"overviews at http://www.mydom.ain/mailman/listinfo. Also, www.mydom.ain\n"
+"should be a key in the VIRTUAL_HOSTS mapping in mm_cfg.py/Defaults.py. It\n"
+"will be looked up to give the email hostname. If this can't be found, then\n"
+"www.mydom.ain will be used for both the web interface and the email\n"
+"interface.\n"
+"\n"
+"If you spell the list name as just `mylist', then the email hostname will "
+"be\n"
+"taken from DEFAULT_EMAIL_HOST and the url will be taken from DEFAULT_URL "
+"(as\n"
+"defined in your Defaults.py file or overridden by settings in mm_cfg.py).\n"
+"\n"
+"Note that listnames are forced to lowercase.\n"
+msgstr ""
+"Létrehoz egy új, tagok nélküli levelezõlistát.\n"
+"\n"
+"Használat: %(PROGRAM)s [kapcsolók] [listanév [admin-cím [admin-jelszó]]]\n"
+"\n"
+"Kapcsolók:\n"
+"\n"
+" -l language\n"
+" --language nyelv\n"
+" A lista alapértelmezett nyelvévé teszi a megadott nyelvet. A nyelvet "
+"a\n"
+" kétbetûs azonosítójával kell megadni.\n"
+" -q/--quiet\n"
+"\t Alapesetben az adminisztrátor e-mailben értesítést kap a lista \n"
+"\t sikeres létrehozásáról. A kapcsolóval nem történik ilyen értesítés.\n"
+"\n"
+" -h/--help\n"
+" Kiírja ezt a súgót és kilép.\n"
+"\n"
+"A parancssorban bármelyik értéket meg lehet adni, ha valamelyik hiányzik,\n"
+"akkor a program futtatásakor bekéri a hiányzó(ka)t.\n"
+"\n"
+"Minden Mailman levelezõlistát két paraméter határoz meg, a kimenõ\n"
+"levelekhez használandó hostnév, és az az alapértelmezett URL ahol a\n"
+"web felület el lehet érni. Ha virtuális hostok vannak a Mailman-t\n"
+"futtató gépen, akkor a program nem biztos, hogy automatikusan helyesen\n"
+"határozza meg az új listához tartozó ezen két paramétert.\n"
+"\n"
+"Az új lista létrehozásakor meg lehet adni a kívánt tartományt is, ha\n"
+"a lista nevét következõ módon adjuk meg:\n"
+"\n"
+" ujlista@www.sajatdom.ain\n"
+"\n"
+"Ekkor a listát a www.sajatdom.ain virtuális tartományból lehet majd\n"
+"elérni. Pl. a lista általános információs oldalát a felhasználók a\n"
+"http://www.sajatdom.ain/mailman/listinfo címen keresztül lehet elérni.\n"
+"Ezentúl a www.sajatdom.ain értéknek szerepelnie kell az VIRTUAL_HOSTS\n"
+"változóban is, amelyet az mm_cfg.py/Defaults.py állományban kell\n"
+"megadni.\n"
+"\n"
+"Ha csak az új lista nevét adjuk meg, akkor a levelezéshez használandó\n"
+"gépnevet a DEFAULT_EMAIL_HOST értékébõl, a webfelülethez használandó\n"
+"gépnevet a DEFAULT_URL változó értékébõl (ahogy azok a Defaults.py,\n"
+"vagy az ezt felülbíráló mm_cg.py állományban meg vannak adva) veszi\n"
+"a program.\n"
+"\n"
+"Fontos, hogy a lista neve mindenképp kisbetûs lesz.\n"
+
+#: bin/newlist:118
+msgid "Unknown language: %(lang)s"
+msgstr "Ismeretlen nyelv: %(lang)s"
+
+#: bin/newlist:123
+msgid "Enter the name of the list: "
+msgstr "Add meg a lista nevét: "
+
+#: bin/newlist:140
+msgid "Enter the email of the person running the list: "
+msgstr "Add meg a listát mûködtetõ e-mail címét: "
+
+#: bin/newlist:145
+msgid "Initial %(listname)s password: "
+msgstr "%(listname)s induló jelszava: "
+
+#: bin/newlist:149
+msgid "The list password cannot be empty"
+msgstr "Nem lehet üres a lista jelszava."
+
+#: bin/newlist:190
+msgid "Hit enter to notify %(listname)s owner..."
+msgstr "Nyomd meg az entert a(z) %(listname)s tulajdonosának értesítéséhez..."
+
+#: bin/qrunner:19
+msgid ""
+"Run one or more qrunners, once or repeatedly.\n"
+"\n"
+"Each named runner class is run in round-robin fashion. In other words, the\n"
+"first named runner is run to consume all the files currently in its\n"
+"directory. When that qrunner is done, the next one is run to consume all "
+"the\n"
+"files in /its/ directory, and so on. The number of total iterations can be\n"
+"given on the command line.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" -r runner[:slice:range]\n"
+" --runner=runner[:slice:range]\n"
+" Run the named qrunner, which must be one of the strings returned by\n"
+" the -l option. Optional slice:range if given, is used to assign\n"
+" multiple qrunner processes to a queue. range is the total number "
+"of\n"
+" qrunners for this queue while slice is the number of this qrunner "
+"from\n"
+" [0..range).\n"
+"\n"
+" If using the slice:range form, you better make sure that each "
+"qrunner\n"
+" for the queue is given the same range value. If slice:runner is "
+"not\n"
+" given, then 1:1 is used.\n"
+"\n"
+" Multiple -r options may be given, in which case each qrunner will "
+"run\n"
+" once in round-robin fashion. The special runner `All' is shorthand\n"
+" for a qrunner for each listed by the -l option.\n"
+"\n"
+" --once\n"
+" -o\n"
+" Run each named qrunner exactly once through its main loop. "
+"Otherwise,\n"
+" each qrunner runs indefinitely, until the process receives a "
+"SIGTERM\n"
+" or SIGINT.\n"
+"\n"
+" -l/--list\n"
+" Shows the available qrunner names and exit.\n"
+"\n"
+" -v/--verbose\n"
+" Spit out more debugging information to the logs/qrunner log file.\n"
+"\n"
+" -s/--subproc\n"
+" This should only be used when running qrunner as a subprocess of "
+"the\n"
+" mailmanctl startup script. It changes some of the exit-on-error\n"
+" behavior to work better with that framework.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+"\n"
+"runner is required unless -l or -h is given, and it must be one of the "
+"names\n"
+"displayed by the -l switch.\n"
+msgstr ""
+"Egy vagy több qrunner futtatása, egyszer vagy többször.\n"
+"\n"
+"Minden megnevezett qrunner round-robin módszerrel fut. Ez azt jelenti, hogy\n"
+"a legelöször megadott runner addig fut, amig a könyvtárában található "
+"összes\n"
+"állományán végig nem megy. Ha ez a qrunner befejezte a dolgát, akkor a \n"
+"következõ indul és fut amig a /saját/ könyvtárában az állományait fel nem\n"
+"dolgozza és így tovább. Az iterációs lépések számát a parancssorban lehet\n"
+"megadni.\n"
+"\n"
+"Használat: %(PROGRAM)s [kapcsolók]\n"
+"\n"
+"Kapcsolók:\n"
+"\n"
+" -r runner[:slice:range]\n"
+" --runner=runner[:slice:range]\n"
+"\t Futtatja az -l kapcsolóval felsorolt qrunnerek egyikét. A külön\n"
+"\t megadható slice:range -el lehet a feldolgozási sorba tenni a\n"
+"\t qrunner folyamatokat. range jelenti az aktuális feldolgozási sorban\n"
+"\t található qrunner folyamatokat, míg a slice jelenti a qrunner\n"
+"\t sorszámát - [0..range) tartományban - az aktuális feldolgozási\n"
+"\t sorban.\n"
+"\n"
+"\t slice:range használatánál fontos, hogy a feldolgozási sorban lévõ\n"
+"\t qrunnereknek ugyanaz a range legyen megadva. Ha a parancssorban\n"
+"\t nem lett slice:range megadva, akkor 1:1 lesz az értéke.\n"
+"\n"
+"\t Egyszerre több -r kapcsolót is meg lehet adni. Ekkor a felsorolt\n"
+"\t qrunnerek round-robin módszerrel fognak futni. Az 'All' qrunner\n"
+"\t az -l kapcsolóval felsorolt összes qrunnert jelenti.\n"
+"\n"
+" --once\n"
+" -o\n"
+"\t Csak egyszer futtatja végig a felsorolt qrunnereket. Különben a\n"
+"\t megadott qrunnerek meghatározatlan ideig futnak, amíg vagy SIGTERM\n"
+"\t vagy SIGINT jelzést nem kapnak.\n"
+"\n"
+" -l/--list\n"
+"\t Megjeleníti az elérhetõ qrunnerek nevét, majd kilép.\n"
+"\n"
+" -v/--verbose\n"
+"\t Bõvebb információt ír a logs/qrunner naplóállományba.\n"
+"\n"
+" -h/--help\n"
+"\t Megjeleníti ezt a súgót és kilép.\n"
+"\n"
+"Kötelezõ egy runner nevet megadni, kivéve ha -l vagy -h kapcsoló meg lett\n"
+"adva. A névnek az -l kapcsolóval felsoroltak közül kell lennie.\n"
+
+#: bin/qrunner:176
+msgid "%(name)s runs the %(runnername)s qrunner"
+msgstr "-r %(name)s a %(runnername)s qrunner-t futtatja"
+
+#: bin/qrunner:177
+msgid "All runs all the above qrunners"
+msgstr "A felsorolt qrunner modulok mind futnak"
+
+#: bin/qrunner:213
+msgid "No runner name given."
+msgstr "Nem lett runnernév megadva."
+
+#: bin/remove_members:19
+msgid ""
+"Remove members from a list.\n"
+"\n"
+"Usage:\n"
+" remove_members [options] [listname] [addr1 ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" --file=file\n"
+" -f file\n"
+" Remove member addresses found in the given file. If file is\n"
+" `-', read stdin.\n"
+"\n"
+" --all\n"
+" -a\n"
+" Remove all members of the mailing list.\n"
+" (mutually exclusive with --fromall)\n"
+"\n"
+" --fromall\n"
+" Removes the given addresses from all the lists on this system\n"
+" regardless of virtual domains if you have any. This option cannot "
+"be\n"
+" used -a/--all. Also, you should not specify a listname when using "
+"this\n"
+" option.\n"
+"\n"
+" --nouserack\n"
+" -n\n"
+" Don't send the user acknowledgements.\n"
+"\n"
+" --noadminack\n"
+" -N\n"
+" Don't send the admin acknowledgements.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname is the name of the mailing list to use.\n"
+"\n"
+" addr1 ... are additional addresses to remove.\n"
+"\n"
+msgstr ""
+"Törli a tagokat a listáról.\n"
+"\n"
+"Használat:\n"
+" remove_members [kapcsolók] [listanév] [cím1 ..]\n"
+"\n"
+"Kapcsolók:\n"
+"\n"
+" --file=állomány\n"
+" -f állomány\n"
+"\t Törli azokat a tagokat, akinek a címe az állományban fel van\n"
+"\t sorolva. Ha állománynak `-' lett megadva, akkor az stdin-rõl\n"
+"\t várja a címeket.\n"
+"\n"
+" --all\n"
+" -a\n"
+" Törli a levelezõlista összes tagját.\n"
+"\n"
+" --fromall\n"
+" A megadott címeket törli a rendszeren található összes, még a\n"
+" a virtuális tartományban lévõ listáról . Ezt a kapcsolót egyidejûleg\n"
+" nem lehet használni az -a/--all kapcsolóval. Használatakor ne\n"
+" adjunk meg listanevet.\n"
+"\n"
+" --nouserack\n"
+" -n\n"
+"\t A listatag nem kap értesítést törlésérõl.\n"
+"\n"
+" --noadminack\n"
+" -N\n"
+"\t A lista adminisztrátora nem kap értesítést a törlésrõl.\n"
+"\n"
+" --help\n"
+" -h\n"
+"\t Megjeleníti ezt a súgót és kilép.\n"
+"\n"
+" listanév a módosítandó lista neve.\n"
+"\n"
+" cím1 ... azoknak a címei akiket törölni kell.\n"
+"\n"
+
+#: bin/remove_members:147
+msgid "Could not open file for reading: %(filename)s."
+msgstr "%(filename)s állományt nem lehet olvasni."
+
+#: bin/remove_members:154
+msgid "Error opening list %(listname)s... skipping."
+msgstr "Hiba a(z) %(listname)s lista megnyitásakor... átugorva."
+
+#: bin/remove_members:164
+msgid "No such member: %(addr)s"
+msgstr "Nincs ilyen listatag: %(addr)s"
+
+#: bin/remove_members:171
+msgid "User `%(addr)s' removed from list: %(listname)s."
+msgstr "`%(addr)s' felhasználó címének törlése a(z) %(listname)s listáról."
+
+#: bin/rmlist:19
+msgid ""
+"Remove the components of a mailing list with impunity - beware!\n"
+"\n"
+"This removes (almost) all traces of a mailing list. By default, the lists\n"
+"archives are not removed, which is very handy for retiring old lists.\n"
+"\n"
+"Usage:\n"
+" rmlist [-a] [-h] listname\n"
+"\n"
+"Where:\n"
+" --archives\n"
+" -a\n"
+" Remove the list's archives too, or if the list has already been\n"
+" deleted, remove any residual archives.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+msgstr ""
+"A levelezõlista összes részét törli - vigyázat!\n"
+"\n"
+"A levelezõlista (majd) összes részét törli a parancs. Alapesetben a lista\n"
+"archívumát nem törli, amely hasznos lehet a lista megszûnésekor.\n"
+"\n"
+"Használat:\n"
+" rmlist [-a] [-h] listanév\n"
+"\n"
+"Ahol:\n"
+" --archives\n"
+" -a\n"
+"\t Törli a lista archívumát is.\n"
+"\n"
+" --help\n"
+" -h\n"
+"\t Megjeleníti ezt a súgót és kilép.\n"
+"\n"
+
+#: bin/rmlist:66 bin/rmlist:69
+msgid "Removing %(msg)s"
+msgstr "Eltávolítva %(msg)s"
+
+#: bin/rmlist:72
+msgid "%(listname)s %(msg)s not found as %(dir)s"
+msgstr "%(listname)s %(msg)s üzenetei nem találhatóak a %(dir)s könyvtárban"
+
+#: bin/rmlist:96
+msgid "No such list (or list already deleted): %(listname)s"
+msgstr "Nincs %(listname)s nevû lista (vagy már törölték)."
+
+#: bin/rmlist:98
+msgid "No such list: %(listname)s. Removing its residual archives."
+msgstr "Nincs %(listname)s nevû lista. Megmaradt archívuma törölve."
+
+#: bin/rmlist:102
+msgid "Not removing archives. Reinvoke with -a to remove them."
+msgstr ""
+"Archívum törlése nélkül. Törléséhez az -a kapcsolóval indítsd a programot."
+
+#: bin/rmlist:116
+msgid "list info"
+msgstr "lista információk"
+
+#: bin/rmlist:122 bin/rmlist:124
+msgid "private archives"
+msgstr "privát archívum"
+
+#: bin/rmlist:126 bin/rmlist:128
+msgid "public archives"
+msgstr "nyilvános archívum"
+
+#: bin/sync_members:19
+msgid ""
+"Synchronize a mailing list's membership with a flat file.\n"
+"\n"
+"This script is useful if you have a Mailman mailing list and a sendmail\n"
+":include: style list of addresses (also as is used in Majordomo). For "
+"every\n"
+"address in the file that does not appear in the mailing list, the address "
+"is\n"
+"added. For every address in the mailing list that does not appear in the\n"
+"file, the address is removed. Other options control what happens when an\n"
+"address is added or removed.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] -f file listname\n"
+"\n"
+"Where `options' are:\n"
+"\n"
+" --no-change\n"
+" -n\n"
+" Don't actually make the changes. Instead, print out what would be\n"
+" done to the list.\n"
+"\n"
+" --welcome-msg[=<yes|no>]\n"
+" -w[=<yes|no>]\n"
+" Sets whether or not to send the newly added members a welcome\n"
+" message, overriding whatever the list's `send_welcome_msg' setting\n"
+" is. With -w=yes or -w, the welcome message is sent. With -w=no, "
+"no\n"
+" message is sent.\n"
+"\n"
+" --goodbye-msg[=<yes|no>]\n"
+" -g[=<yes|no>]\n"
+" Sets whether or not to send the goodbye message to removed members,\n"
+" overriding whatever the list's `send_goodbye_msg' setting is. With\n"
+" -g=yes or -g, the goodbye message is sent. With -g=no, no message "
+"is\n"
+" sent.\n"
+"\n"
+" --digest[=<yes|no>]\n"
+" -d[=<yes|no>]\n"
+" Selects whether to make newly added members receive messages in\n"
+" digests. With -d=yes or -d, they become digest members. With -"
+"d=no\n"
+" (or if no -d option given) they are added as regular members.\n"
+"\n"
+" --notifyadmin[=<yes|no>]\n"
+" -a[=<yes|no>]\n"
+" Specifies whether the admin should be notified for each "
+"subscription\n"
+" or unsubscription. If you're adding a lot of addresses, you\n"
+" definitely want to turn this off! With -a=yes or -a, the admin is\n"
+" notified. With -a=no, the admin is not notified. With no -a "
+"option,\n"
+" the default for the list is used.\n"
+"\n"
+" --file <filename | ->\n"
+" -f <filename | ->\n"
+" This option is required. It specifies the flat file to synchronize\n"
+" against. Email addresses must appear one per line. If filename is\n"
+" `-' then stdin is used.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this message.\n"
+"\n"
+" listname\n"
+" Required. This specifies the list to synchronize.\n"
+msgstr ""
+"A levelezõlista tajainak sorát szinkornizálja egy sima szöveges "
+"állományhoz.\n"
+"\n"
+"A programot akkor célszerû használni, ha rendelkezünk az adott Mailman\n"
+"levelezõlistához egy sendmail :include: stílusú állománnyal, amelyben a \n"
+"a tagok címei találhatóak (ilyet használ a Majordomo is). Minden olyan\n"
+"címet, amely csak a szöveges állományban talál hozzáad a program a \n"
+"levelezõlistához, miközben törli azokat a címeket, amelyek nem találhatók\n"
+"a szöveges állományban. A kapcsolókkal lehet szabályozni, hogy mi történjen\n"
+"egy cím hozzáadásakor vagy törlésekor.\n"
+"\n"
+"Használat: %(PROGRAM)s [kapcsolók] -f állomány listanév\n"
+"\n"
+"Kapcsolók:\n"
+"\n"
+" --no-change\n"
+" -n\n"
+"\t Ne változtat semmit. Helyette kiírja, hogy milyen módosítások\n"
+"\t történtek volna.\n"
+"\n"
+" --welcome-msg[=<yes|no>]\n"
+" -w[=<yes|no>]\n"
+"\t Beállítja, hogy a listára frissen felírt tag megkapja-e az\n"
+"\t üdvözlõ szöveget függetlenül a `send_welcome_msg' változóban\n"
+"\t megadott értéktõl. Az üdvözlõ szöveget elküldi, ha -w=yes vagy\n"
+"\t -w kapcsoló meg lett adva. Nincs értesítés -w=no használatánál.\n"
+"\n"
+" --goodbye-msg[=<yes|no>]\n"
+" -g[=<yes>|<no>]\n"
+"\t Beállítja, hogy a listáról törlenõ tagok kapjanak-e búcsúzó\n"
+"\t szöveget függetlenül a `send_goodbye_msg' változóban megadott\n"
+"\t értéktõl. A -g=yes vagy -g kapcsolóval elküldésre kerül a búcsúzó\n"
+"\t szöveg. A szöveg nem kerül elküldésre -g=no kapcsolónál.\n"
+"\n"
+" --digest[=<yes|no>]\n"
+" -d[=<yes|no>]\n"
+"\t Beállítja, hogy a listára frissen felírt tag digest vagy rendes\n"
+"\t formában kapja a leveleket. -d=yes vagy -d kapcsolóval digest-et\n"
+"\t fog kapni. Sima formátumba kapja a leveleket, ha a -d=no (vagy\n"
+"\t egy -d kapcsoló egyáltalán nem) lett megadva, akkor a tag a\n"
+"\t leveleket hagyományos formában kapja.\n"
+"\n"
+" --notifyadmin[=<yes|no>]\n"
+" -a[=<yes|no>\n"
+"\t Beállítja, hogy az adminisztrátor értesítést kapjon mindenegyes\n"
+"\t feliratkozásról vagy leiratkozásról. Ha egyszerre sok címet\n"
+"\t módósítunk, akkor célszerû kikapcsolnunk az értesítést. Az\n"
+"\t adminisztrátor értesítést kap -a=yes vagy -a kapcsolónál. Ha\n"
+"\t nem adunk meg -a kapcsolót, akkor a listán megadott beállítást\n"
+"\t használja fel a program.\n"
+"\n"
+" --file <állománynév | ->\n"
+" -f <állománynév | ->\n"
+"\t Ezt a kapcsolót kötelezõ megadni, mivel az itt megjelölt sima\n"
+"\t szöveges állományhoz szinkronizálja a lista tagjait. Az állomány\n"
+" minden sorában egy e-mail címet kell megadni. Ha állománynévnek\n"
+"\t `-'-t adunk meg, akkor az stdin-rõl várja a címeket a program.\n"
+"\n"
+" --help\n"
+" -h\n"
+"\t Megjeleníti ezt a súgót és kilép.\n"
+"\n"
+" listanév\n"
+"\t Kötelezõ megadni. A megadott listán hajtja végre a módosításokat.\n"
+
+#: bin/sync_members:115
+msgid "Bad choice: %(yesno)s"
+msgstr "Rossz választás: %(yesno)s"
+
+#: bin/sync_members:138
+msgid "Dry run mode"
+msgstr "Teszt üzemmód"
+
+#: bin/sync_members:159
+msgid "Only one -f switch allowed"
+msgstr "Csak egyszer adható meg az -f kapcsoló"
+
+#: bin/sync_members:163
+msgid "No argument to -f given"
+msgstr "Nem lett az -f kapcsolóval érték megadva"
+
+#: bin/sync_members:172
+msgid "Illegal option: %(opt)s"
+msgstr "Érvénytelen kapcsoló: %(opt)s"
+
+#: bin/sync_members:178
+msgid "No listname given"
+msgstr "Nem lett listanév megadva"
+
+#: bin/sync_members:182
+msgid "Must have a listname and a filename"
+msgstr "Meg kell adni egy lista- és állománynevet"
+
+#: bin/sync_members:191
+msgid "Cannot read address file: %(filename)s: %(msg)s"
+msgstr "A címeket tartalmazó állomány nem olvasható: %(filename)s: %(msg)s "
+
+#: bin/sync_members:203
+msgid "Ignore : %(addr)30s"
+msgstr "Figyelmen kívül hagyva: %(addr)30s"
+
+#: bin/sync_members:212
+msgid "Invalid : %(addr)30s"
+msgstr "Érvénytelen: %(addr)30s"
+
+#: bin/sync_members:215
+msgid "You must fix the preceding invalid addresses first."
+msgstr "Elõször az érvénytelen címeket kell kijavítanod."
+
+#: bin/sync_members:259
+msgid "Added : %(s)s"
+msgstr "Hozzáadva: %(s)s)"
+
+#: bin/sync_members:278
+msgid "Removed: %(s)s"
+msgstr "Eltávolítva %(s)s"
+
+#: bin/transcheck:18
+msgid ""
+"\n"
+"Check a given Mailman translation, making sure that variables and\n"
+"tags referenced in translation are the same variables and tags in\n"
+"the original templates and catalog.\n"
+"\n"
+"Usage:\n"
+"\n"
+"cd $MAILMAN_DIR\n"
+"%(program)s [-q] <lang>\n"
+"\n"
+"Where <lang> is your country code (e.g. 'it' for Italy) and -q is\n"
+"to ask for a brief summary.\n"
+msgstr ""
+"\n"
+"Ellenõrzi, hogy adott Mailman fordításban ugyanazok a változók és\n"
+"jelõlések szerepelnek, mint az eredeti sablonokban és katalógusban.\n"
+"\n"
+"Használat:\n"
+"\n"
+"cd $MAILMAN_DIR\n"
+"%(program)s [-q] <nyelv>\n"
+"\n"
+"Ahol <nyelv> az ellenõrízni kívánt nyelv ország kódja (pl. Olaszország\n"
+"esetén 'it'). A -q kapcsolóval rövid összefoglalást kapunk az\n"
+"eredményrõl.\n"
+
+#: bin/transcheck:57
+msgid "check a translation comparing with the original string"
+msgstr "ellenõrzi a fordítást összehasonlítva az eredeti szöveggel"
+
+#: bin/transcheck:64
+msgid "scan a string from the original file"
+msgstr "szöveg keresése az eredeti állományban"
+
+#: bin/transcheck:72
+msgid "scan a translated string"
+msgstr "lefordított szöveg ellenõrzése"
+
+#: bin/transcheck:83
+msgid "check for differences between checked in and checked out"
+msgstr "az eredeti és lefordított részek között különbségek keresése"
+
+#: bin/transcheck:116
+msgid "parse a .po file extracting msgids and msgstrs"
+msgstr ".po állomány feldolgozása, msgid-k és msgstr-ek keresése"
+
+#: bin/transcheck:135
+msgid ""
+"States table for the finite-states-machine parser:\n"
+" 0 idle\n"
+" 1 filename-or-comment\n"
+" 2 msgid\n"
+" 3 msgstr\n"
+" 4 end\n"
+" "
+msgstr ""
+"A feldolgozó algoritmus állapot táblája:\n"
+" 0 idle\n"
+" 1 filename-or-comment\n"
+" 2 msgid\n"
+" 3 msgstr\n"
+" 4 end\n"
+" "
+
+#: bin/transcheck:272
+msgid ""
+"check a translated template against the original one\n"
+" search also <MM-*> tags if html is not zero"
+msgstr ""
+"megvizsgálja a lefordított sablont az eredeti sablon szerint\n"
+"\ttovábbá <MM-*> változókat keres a HTML állományokban"
+
+#: bin/transcheck:319
+msgid "scan the po file comparing msgids with msgstrs"
+msgstr "msgid-k és msgstr-ek összehasnoltása a po állományban"
+
+#: bin/unshunt:19
+msgid ""
+"Move a message from the shunt queue to the original queue.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [directory]\n"
+"\n"
+"Where:\n"
+"\n"
+" -h / --help\n"
+" Print help and exit.\n"
+"\n"
+"Optional `directory' specifies a directory to dequeue from other than\n"
+"qfiles/shunt.\n"
+msgstr ""
+"Levél áthelyezése a félretett feldolgozási sorból az eredeti\n"
+"feldolgozási sorba.\n"
+"\n"
+"Használat: %(PROGRAM)s [kapcsolók] [könyvtár]\n"
+"\n"
+"Ahol:\n"
+"\n"
+" -h / --help\n"
+" Megjeleníti ezt a súgót és kilép.\n"
+"\n"
+"A külön megadható `könyvtár' esetén nem a qfiles/shunt könyvtárból\n"
+"másolja át az állományokat.\n"
+
+#: bin/unshunt:81
+msgid ""
+"Cannot unshunt message %(filebase)s, skipping:\n"
+"%(e)s"
+msgstr ""
+"%(filebase)s üzenetet nem lehet áthelyezni, átugorva:\n"
+"%(e)s"
+
+#: bin/update:19
+msgid ""
+"Perform all necessary upgrades.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -f/--force\n"
+" Force running the upgrade procedures. Normally, if the version "
+"number\n"
+" of the installed Mailman matches the current version number (or a\n"
+" `downgrade' is detected), nothing will be done.\n"
+"\n"
+" -h/--help\n"
+" Print this text and exit.\n"
+"\n"
+"Use this script to help you update to the latest release of Mailman from\n"
+"some previous version. It knows about versions back to 1.0b4 (?).\n"
+msgstr ""
+"A program az összes szükséges frissítést végrehajtja.\n"
+"\n"
+"Használat: %(PROGRAM)s [kapcsolók]\n"
+"\n"
+"Kapcsolók:\n"
+" -f/--force\n"
+"\t Mindenkép végrehajtja a frissítési folyamatot. Alapvetõen, ha\n"
+"\t a telepített és a másik Mailman verziószáma egyezik (vagy egy\n"
+"\t esetleges `downgrade' merülne fel), akkor nem történik semmi.\n"
+"\n"
+" -h/--help\n"
+"\t Megjeleníti ezt a súgót és kilép.\n"
+"\n"
+"A program segítségével a régebbi verziójú Mailman-t lehet lecserélni\n"
+"a legfrisebbre. A program az 1.0b4 (?) verzióktól használható.\n"
+
+#: bin/update:102
+msgid "Fixing language templates: %(listname)s"
+msgstr "Nyelvi sablonok javítása: %(listname)s"
+
+#: bin/update:191 bin/update:466
+msgid "WARNING: could not acquire lock for list: %(listname)s"
+msgstr "FIGYELMEZTETÉS: nem lehet zárolni a %(listname)s listát"
+
+#: bin/update:210
+msgid "Resetting %(n)s BYBOUNCEs disabled addrs with no bounce info"
+msgstr "%(n)s ismeretlen BYBOUNCE által kikapcsolt állapot megszüntetve"
+
+#: bin/update:216
+msgid "Updating the held requests database."
+msgstr "A beavatkozási teendõk adatbázisának frissítése."
+
+#: bin/update:238
+msgid ""
+"For some reason, %(mbox_dir)s exists as a file. This won't work with\n"
+"b6, so I'm renaming it to %(mbox_dir)s.tmp and proceeding."
+msgstr ""
+"Valamiért a(z) %(mbox_dir)s egy könyvtár. A b6 ezzel nem mûködne\n"
+"ezért átnevezem %(mbox_dir)s.tmp-é, majd folytatom a frissítést."
+
+#: bin/update:250
+msgid ""
+"\n"
+"%(listname)s has both public and private mbox archives. Since this list\n"
+"currently uses private archiving, I'm installing the private mbox archive\n"
+"-- %(o_pri_mbox_file)s -- as the active archive, and renaming\n"
+" %(o_pub_mbox_file)s\n"
+"to\n"
+" %(o_pub_mbox_file)s.preb6\n"
+"\n"
+"You can integrate that into the archives if you want by using the 'arch'\n"
+"script.\n"
+msgstr ""
+"\n"
+"%(listname)s rendelkezik mind nyilvános, mind privát mbox archívummal. A "
+"lista\n"
+"jelenleg privát archiválásra van beállítva, ezért a privát mbox archívumot\n"
+"-- %(o_pri_mbox_file)s -- állítom be aktuális archívumnak és átnevezem a(z)\t"
+"%(o_pub_mbox_file)s\n"
+"archívumot\n"
+"\t%(o_pub_mbox_file)s.preb6\n"
+"archívummá. Az 'arch' programmal bármikor össze lehet fésülni ezt az "
+"állományt az aktuális archívummal.\n"
+
+#: bin/update:265
+msgid ""
+"%s has both public and private mbox archives. Since this list\n"
+"currently uses public archiving, I'm installing the public mbox file\n"
+"archive file (%s) as the active one, and renaming\n"
+" %s\n"
+" to\n"
+" %s.preb6\n"
+"\n"
+"You can integrate that into the archives if you want by using the 'arch'\n"
+"script.\n"
+msgstr ""
+"%s rendelkezik mind nyilvános, mind privát mbox archívummal. A lista\n"
+"jelenleg nyilvános archiválásra van beállítva, ezért a nyilvános mbox\n"
+"archívumot (%s) állítom be aktuális archívumnak és átnevezem a\n"
+"\t%s\n"
+" archívumot\n"
+"\t%s.preb6\n"
+"archívummá.\n"
+"Az 'arch' programmal bármikor össze lehet fésülni ezt az állományt az\n"
+"aktuális archívummal.\n"
+
+#: bin/update:282
+msgid "- updating old private mbox file"
+msgstr "- régi privát mbox állomány frissítése"
+
+#: bin/update:290
+msgid ""
+" unknown file in the way, moving\n"
+" %(o_pri_mbox_file)s\n"
+" to\n"
+" %(newname)s"
+msgstr ""
+" ismeretlen állomány a könyvtárba, áthelyezem a(z)\n"
+" %(o_pri_mbox_file)s\n"
+" állományt ide:\n"
+" %(newname)s"
+
+#: bin/update:297 bin/update:320
+msgid ""
+" looks like you have a really recent CVS installation...\n"
+" you're either one brave soul, or you already ran me"
+msgstr ""
+" úgy néz ki, hogy a legújabb CVS verziót használod...\n"
+" vagy nagyon bátor vagy, vagy már futattad ezt a parancsot."
+
+#: bin/update:306
+msgid "- updating old public mbox file"
+msgstr "- régi nyilvános mbox állomány frissítése"
+
+#: bin/update:314
+msgid ""
+" unknown file in the way, moving\n"
+" %(o_pub_mbox_file)s\n"
+" to\n"
+" %(newname)s"
+msgstr ""
+" ismeretlen állomány a könyvtárba, áthelyezem a(z)\n"
+" %(o_pub_mbox_file)s\n"
+" állományt ide:\n"
+" %(newname)s"
+
+#: bin/update:345
+msgid "- This list looks like it might have <= b4 list templates around"
+msgstr "- Úgy néz ki. hogy <= b4 lista sablonok vannak jelen."
+
+#: bin/update:352
+msgid "- moved %(o_tmpl)s to %(n_tmpl)s"
+msgstr "- %(o_tmpl)s áthelyezése a %(n_tmpl)s könyvtárba"
+
+#: bin/update:354
+msgid "- both %(o_tmpl)s and %(n_tmpl)s exist, leaving untouched"
+msgstr ""
+"- mind a %(o_tmpl)s és a %(n_tmpl)s állományok léteznek, nincsen változtatás"
+
+#: bin/update:384
+msgid "removing directory %(src)s and everything underneath"
+msgstr "%(src)s környvtár és alkönyvtárainak törlése"
+
+#: bin/update:387
+msgid "removing %(src)s"
+msgstr "%(src)s törlése"
+
+#: bin/update:391
+msgid "Warning: couldn't remove %(src)s -- %(rest)s"
+msgstr "Figyelmeztetés: %(src)s -t nem lehet törölni -- %(rest)s"
+
+#: bin/update:396
+msgid "couldn't remove old file %(pyc)s -- %(rest)s"
+msgstr "régi %(pyc)s állományt nem lehet törölni -- %(rest)s"
+
+#: bin/update:400
+msgid "updating old qfiles"
+msgstr "régi qfiles állományok frissítése"
+
+#: bin/update:422
+msgid "getting rid of old source files"
+msgstr "régi forrásfájlokat törlöm"
+
+#: bin/update:432
+msgid "no lists == nothing to do, exiting"
+msgstr "nincsen lista == nincs teendõ, kilépés"
+
+#: bin/update:439
+msgid ""
+"fixing all the perms on your old html archives to work with b6\n"
+"If your archives are big, this could take a minute or two..."
+msgstr ""
+"összes hibás jogosultásg kijavítása a html archívumban a b6-hoz\n"
+"Nagy méretû archívumnál ez eltarthat egy-két percig..."
+
+#: bin/update:444
+msgid "done"
+msgstr "kész"
+
+#: bin/update:446
+msgid "Updating mailing list: %(listname)s"
+msgstr "Levelezõlista frissítése: %(listname)s"
+
+#: bin/update:449
+msgid "Updating Usenet watermarks"
+msgstr "Hircsoport azonosító (watermarks) frissítése"
+
+#: bin/update:454
+msgid "- nothing to update here"
+msgstr "- nincs mit itt frissíteni"
+
+#: bin/update:477
+msgid "- usenet watermarks updated and gate_watermarks removed"
+msgstr "- hircsoport azonosító frissítve és gate_watermarks törölve"
+
+#: bin/update:487
+msgid "Updating old pending_subscriptions.db database"
+msgstr "A beavatkozási teendõk régi adatbázisának frissítése"
+
+#: bin/update:504
+msgid ""
+"\n"
+"\n"
+"NOTE NOTE NOTE NOTE NOTE\n"
+"\n"
+" You are upgrading an existing Mailman installation, but I can't tell "
+"what\n"
+" version you were previously running.\n"
+"\n"
+" If you are upgrading from Mailman 1.0b9 or earlier you will need to\n"
+" manually update your mailing lists. For each mailing list you need to\n"
+" copy the file templates/options.html lists/<listname>/options.html.\n"
+"\n"
+" However, if you have edited this file via the Web interface, you will "
+"have\n"
+" to merge your changes into this file, otherwise you will lose your\n"
+" changes.\n"
+"\n"
+"NOTE NOTE NOTE NOTE NOTE\n"
+"\n"
+msgstr ""
+"\n"
+"\n"
+"FONTOS FONTOS FONTOS FONTOS\n"
+"\n"
+"\n"
+" Létezõ, de ismeretlen verziójú telepített Mailman-t frissít.\n"
+"\n"
+" Mailman 1.0b9 vagy régebbi verziókról történõ frissítéskor manuálisan\n"
+" kell a levelezõlistákat frissíteni. Minden egyes levelezõlistánál a\n"
+" templates/options.html -t a lists/<listname>/options.html helyre kell\n"
+" másolni.\n"
+"\n"
+" Azonban, ha web felületen keresztül módosította ezt az állományt,\n"
+" akkor a módosításokat ezen az állományon is el kell végezni, különben\n"
+" azok nem jelennek meg.\n"
+"\n"
+"FONTOS FONTOS FONTOS FONTOS\n"
+"\n"
+
+#: bin/update:561
+msgid "No updates are necessary."
+msgstr "Nincs szükség frissítésre."
+
+#: bin/update:564
+msgid ""
+"Downgrade detected, from version %(hexlversion)s to version %(hextversion)s\n"
+"This is probably not safe.\n"
+"Exiting."
+msgstr ""
+"Régebbi verzióra %(hextversion)s akarja a frissebbet lecserélni %"
+"(hexlversion)s.\n"
+"Ez valószínûleg hibás mûködéshez vezetne.\n"
+"Kilépek."
+
+#: bin/update:569
+msgid "Upgrading from version %(hexlversion)s to %(hextversion)s"
+msgstr "Frissítés %(hexlversion)s verzióról %(hextversion)s verzióra"
+
+#: bin/update:578
+msgid ""
+"\n"
+"ERROR:\n"
+"\n"
+"The locks for some lists could not be acquired. This means that either\n"
+"Mailman was still active when you upgraded, or there were stale locks in "
+"the\n"
+"%(lockdir)s directory.\n"
+"\n"
+"You must put Mailman into a quiescent state and remove all stale locks, "
+"then\n"
+"re-run \"make update\" manually. See the INSTALL and UPGRADE files for "
+"details.\n"
+msgstr ""
+"\n"
+"HIBA:\n"
+"\n"
+"Valamelyik listánál nem lehetett a zárolást megszüntetni. Ez azt jelenti,\n"
+"hogy a Mailman a frissítés idõpontjában futott, vagy lejárt zárolás volt a"
+"(z)\n"
+"%(lockdir)s könyvtáron.\n"
+"\n"
+"Szüneteltesse a Mailman futását és távolítsa el az összes lejárt zárolást, "
+"majd adja ki a \"make update\" parancsolt. Bõvebben errõl az INSTALL és "
+"UPGRADE állományokban lehet olvasni.\n"
+
+#: bin/version:19
+msgid "Print the Mailman version.\n"
+msgstr "Kiírja a Mailman verziószámát.\n"
+
+#: bin/version:26
+msgid "Using Mailman version:"
+msgstr "Mailman verziószáma:"
+
+#: bin/withlist:19
+msgid ""
+"General framework for interacting with a mailing list object.\n"
+"\n"
+"There are two ways to use this script: interactively or programmatically.\n"
+"Using it interactively allows you to play with, examine and modify a "
+"MailList\n"
+"object from Python's interactive interpreter. When running interactively, "
+"a\n"
+"MailList object called `m' will be available in the global namespace. It "
+"also\n"
+"loads the class MailList into the global namespace.\n"
+"\n"
+"Programmatically, you can write a function to operate on a MailList object,\n"
+"and this script will take care of the housekeeping (see below for "
+"examples).\n"
+"In that case, the general usage syntax is:\n"
+"\n"
+"%% bin/withlist [options] listname [args ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" -l / --lock\n"
+" Lock the list when opening. Normally the list is opened unlocked\n"
+" (e.g. for read-only operations). You can always lock the file "
+"after\n"
+" the fact by typing `m.Lock()'\n"
+"\n"
+" Note that if you use this option, you should explicitly call m.Save"
+"()\n"
+" before exiting, since the interpreter's clean up procedure will not\n"
+" automatically save changes to the MailList object (but it will "
+"unlock\n"
+" the list).\n"
+"\n"
+" -i / --interactive\n"
+" Leaves you at an interactive prompt after all other processing is\n"
+" complete. This is the default unless the -r option is given.\n"
+"\n"
+" --run [module.]callable\n"
+" -r [module.]callable\n"
+" This can be used to run a script with the opened MailList object.\n"
+" This works by attempting to import `module' (which must already be\n"
+" accessible on your sys.path), and then calling `callable' from the\n"
+" module. callable can be a class or function; it is called with the\n"
+" MailList object as the first argument. If additional args are "
+"given\n"
+" on the command line, they are passed as subsequent positional args "
+"to\n"
+" the callable.\n"
+"\n"
+" Note that `module.' is optional; if it is omitted then a module "
+"with\n"
+" the name `callable' will be imported.\n"
+"\n"
+" The global variable `r' will be set to the results of this call.\n"
+"\n"
+" --all / -a\n"
+" This option only works with the -r option. Use this if you want to\n"
+" execute the script on all mailing lists. When you use -a you "
+"should\n"
+" not include a listname argument on the command line. The variable "
+"`r'\n"
+" will be a list of all the results.\n"
+"\n"
+" --quiet / -q\n"
+" Suppress all status messages.\n"
+"\n"
+" --help / -h\n"
+" Print this message and exit\n"
+"\n"
+"\n"
+"Here's an example of how to use the -r option. Say you have a file in the\n"
+"Mailman installation directory called `listaddr.py', with the following\n"
+"two functions:\n"
+"\n"
+"def listaddr(mlist):\n"
+" print mlist.GetListEmail()\n"
+"\n"
+"def requestaddr(mlist):\n"
+" print mlist.GetRequestEmail()\n"
+"\n"
+"Now, from the command line you can print the list's posting address by "
+"running\n"
+"the following from the command line:\n"
+"\n"
+"%% bin/withlist -r listaddr mylist\n"
+"Loading list: mylist (unlocked)\n"
+"Importing listaddr ...\n"
+"Running listaddr.listaddr() ...\n"
+"mylist@myhost.com\n"
+"\n"
+"And you can print the list's request address by running:\n"
+"\n"
+"%% bin/withlist -r listaddr.requestaddr mylist\n"
+"Loading list: mylist (unlocked)\n"
+"Importing listaddr ...\n"
+"Running listaddr.requestaddr() ...\n"
+"mylist-request@myhost.com\n"
+"\n"
+"As another example, say you wanted to change the password for a particular\n"
+"user on a particular list. You could put the following function in a file\n"
+"called `changepw.py':\n"
+"\n"
+"from Mailman.Errors import NotAMember\n"
+"\n"
+"def changepw(mlist, addr, newpasswd):\n"
+" try:\n"
+" mlist.setMemberPassword(addr, newpasswd)\n"
+" mlist.Save()\n"
+" except NotAMember:\n"
+" print 'No address matched:', addr\n"
+"\n"
+"and run this from the command line:\n"
+"%% bin/withlist -l -r changepw mylist somebody@somewhere.org foobar\n"
+msgstr ""
+"Általános kezelõprogram levelezõlista objektum kezeléséhez.\n"
+"\n"
+"Ezt a programot kétféleképpen használhatjuk: párbeszédes és programozói\n"
+"üzemmódban. Párbeszédes módban a Python interaktív parancs-értelmezõjével\n"
+"egy MailList objektumo módosíthatunk, vizsgálhatunk. Ekkor egy `m' "
+"elnevezésû\n"
+"MailList objektumon keresztül érjük el a globális változó-területet. A "
+"program a\n"
+"MailList osztályt is betölti a globális változó-területre.\n"
+"\n"
+"Programozói módban olyan függvényeket írhatunk, amelyeket egy MailList\n"
+"objektumot módosítanak, kezelnek. Ez a program segít az ilyen "
+"fejlesztésekben is\n"
+"(lejjebb láthatjuk a péládkat).\n"
+"Ez esetben az általános használati szintaxis a következõ:\n"
+"%% bin/withlist [kapcsolók] listanév [paraméterek ...]\n"
+"\n"
+"Kapcsolók:\n"
+"\n"
+"-l / --lock\n"
+" Megnyitáskor zárolja a listát. Legtöbbször a listát nem zárolva "
+"nyitja meg\n"
+" (pl. read-only mûveletekhez). Bármikor zárolhatjuk az állományt az "
+"`m.Lock()'\n"
+" paranccsal.\n"
+" Ha használjuk ezt a kapcsolót, akkor jó ha tudjuk, hogy el ne "
+"felejtsük külön\n"
+" meghívni kilépés elõtt az m.Save parancsot, mivel nem menti "
+"automatikusan\n"
+" kilépéskor a parancs-értelmezõ a változásokat a MailList objetumba "
+"(azonban.\n"
+" a lista zárolását megszünteti).\n"
+"\n"
+" -i / --interactive\n"
+" Az összes többi mûvelet befejezése után a felhasználónak beviteli "
+"mezõt (prompt)\n"
+" ad. Ez az alapértelmezett mûvelet, hacsak nem adtuk meg az -r "
+"kapcsolót.\n"
+"\n"
+" --run [modul.]hívandó\n"
+" -r [modul.]hívandó\n"
+" Ezzel a kapcsolóval lehet egy programkódot futtani a megnyitott "
+"MailList objektumon.\n"
+" A futtatásnál a program elõször megpróbálja behívni a `modul'-t "
+"(amelynek a sys.path-\n"
+" ból elérhetõnek kell lennie), majd a modulból meghívja a `hívandó' "
+"részt. A hívandó\n"
+" lehet osztály vagy függvény; ez lesz az elsõ paramétere a MailList "
+"objektumon történõ\n"
+" futtatáskor. Ha további paramétereket is megadunk a paraqncssorban, "
+"akkor azok a\n"
+" hívandó rész egymást követõ, további paraméterei lesznek.\n"
+"\n"
+" Megjegyzendõ, hogy a modul nevét nem kötelezõ megadni, ha hiányzik, "
+"akkor a\n"
+" `hívandó'-ban megadott névvel azonos nevû modult próbál meg a program "
+"a betölteni.\n"
+"\n"
+" Ennek a hívásnak az eredményét a globális `r' változó fogja "
+"tartalmazni.\n"
+"\n"
+" --all / -a\n"
+" Ez a kapcsoló csak az -r kapcsolóval együtt használható. "
+"Használatával az\n"
+" összes levelezõlistán lefuttatja a programkódot. Ha az -a kapcsolót "
+"használjuk,\n"
+" akkor a parancssorban ne adjunk meg listanevet. Az `r' változóban az "
+"összes\n"
+" eredmény listája megtalálható lesz.\n"
+"\n"
+" --quiet / -q\n"
+" Elnyomja az összes üzenetet.\n"
+"\n"
+" --help / -h\n"
+" Megjeleníti ezt a súgót és kilép.\n"
+"\n"
+"\n"
+"Egy kis példa, hogy hogyan használhatjuk az -r kapcsolót. Legyen mondjuk\n"
+"a telepített Mailman könyvtárában egy `listaddr.py' nevû állomány, amely a\n"
+"következõ két függvényt tartalmazza.\n"
+"\n"
+"def listaddr(mlist):\n"
+" print mlist.GetListEmail()\n"
+"\n"
+"def requestaddr(mlist):\n"
+" print mlist.GetRequestEmail()\n"
+"\n"
+"Nos, a következõ paranccsal ki tudjuk íratni a lista beküldési címét:\n"
+"\n"
+"%% bin/withlist -r listaddr mylist\n"
+"Loading list: mylist (unlocked)\n"
+"Importing listaddr ...\n"
+"Running listaddr.listaddr() ...\n"
+"mylist@myhost.com\n"
+"\n"
+"A lista -request címét pedig a következõ módon jeleníthetjük meg:\n"
+"\n"
+"%% bin/withlist -r listaddr.requestaddr mylist\n"
+"Loading list: mylist (unlocked)\n"
+"Importing listaddr ...\n"
+"Running listaddr.requestaddr() ...\n"
+"mylist-request@myhost.com\n"
+"\n"
+"Másik példaként változtassuk meg az egyik felhasználó jelszavát\n"
+"egy adott listán. A `changepw.py' állomány tartalmazza a következõ\n"
+"függvényt:\n"
+"\n"
+"from Mailman.Errors import NotAMember\n"
+"\n"
+"def changepw(mlist, addr, newpasswd):\n"
+" try:\n"
+" mlist.setMemberPassword(addr, newpasswd)\n"
+" mlist.Save()\n"
+" except NotAMember:\n"
+" print 'Nem található ilyen cím:', addr\n"
+"\n"
+"Ekkor a következõ paranccsal tudjuk a jelszót megváltoztatni:\n"
+"%% bin/withlist -l -r changepw mylist valaki@valahol.hu foobar\n"
+
+#: bin/withlist:151
+msgid ""
+"Unlock a locked list, but do not implicitly Save() it.\n"
+"\n"
+" This does not get run if the interpreter exits because of a signal, or "
+"if\n"
+" os._exit() is called. It will get called if an exception occurs "
+"though.\n"
+" "
+msgstr ""
+"Zárolt lista zárolásának megszüntetése Save() (mentés) nélkül.\n"
+"\n"
+" Ez a rész csak akkor fut le, ha a nyelvértelmezõ kilépésre utasító\n"
+"jelzést, vagy egy os._exit() utasítást kap. Ha ettõl eltérõ hiba lép\n"
+"fel, akkor lefut ez a rész.\n"
+" "
+
+#: bin/withlist:162
+msgid "Unlocking (but not saving) list: %(listname)s"
+msgstr "Zárolása megszüntetése (mentés nélkül) a(z) %(listname)s listán"
+
+#: bin/withlist:166
+msgid "Finalizing"
+msgstr "Véglegesítés"
+
+#: bin/withlist:175
+msgid "Loading list %(listname)s"
+msgstr "%(listname)s lista betöltése"
+
+#: bin/withlist:177
+msgid "(locked)"
+msgstr "(zárolva)"
+
+#: bin/withlist:179
+msgid "(unlocked)"
+msgstr "(zárolás megszüntetve)"
+
+#: bin/withlist:184
+msgid "Unknown list: %(listname)s"
+msgstr "Ismeretlen lista: %(listname)s"
+
+#: bin/withlist:223
+msgid "No list name supplied."
+msgstr "Nem lett listanév megadva."
+
+#: bin/withlist:226
+msgid "--all requires --run"
+msgstr "--all használatához --run is szükséges"
+
+#: bin/withlist:246
+msgid "Importing %(module)s..."
+msgstr "%(module)s beolvasása..."
+
+#: bin/withlist:249
+msgid "Running %(module)s.%(callable)s()..."
+msgstr "Folyamatban %(module)s.%(callable)s()..."
+
+#: bin/withlist:270
+msgid "The variable `m' is the %(listname)s MailList instance"
+msgstr "A(z) %(listname)s listára az `m' változó hivatkozik a MailListben"
+
+#: cron/bumpdigests:19
+msgid ""
+"Increment the digest volume number and reset the digest number to one.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" --help/-h\n"
+" Print this message and exit.\n"
+"\n"
+"The lists named on the command line are bumped. If no list names are "
+"given,\n"
+"all lists are bumped.\n"
+msgstr ""
+"A digest kötet számát egyel növeli és új digestet nyit meg.\n"
+"\n"
+"Használat: %(PROGRAM)s [kapcsolók] [listaneve ...]\n"
+"\n"
+"Kapcsolók:\n"
+"\n"
+" --help/-h\n"
+"\t Kiírja ezt a súgót és kilép.\n"
+"\n"
+"A parancssorban megadott lista digestjét dolgozza fel. Ha nem lett lista\n"
+"megadva, akkor az összes listán elvégzi a változtatásokat.\n"
+
+#: cron/checkdbs:19
+msgid ""
+"Invoked by cron, this checks for pending moderation requests and mails the\n"
+"list moderators if necessary.\n"
+msgstr ""
+"A cron futtatja ezt a programot, amely a szerkesztõi beavatkozásra váró \n"
+"levelek figyelését és a szerkesztõk értesítését végzi.\n"
+
+#: cron/checkdbs:81
+msgid "%(count)d %(realname)s moderator request(s) waiting"
+msgstr ""
+"%(count)d kérelem vár szerkesztõi jóváhagyásra a(z) %(realname)s listán"
+
+#: cron/checkdbs:100
+msgid "Pending subscriptions:"
+msgstr "Jóváhagyásra váró feliratkozások:"
+
+#: cron/checkdbs:109
+msgid ""
+"\n"
+"Pending posts:"
+msgstr ""
+"\n"
+"Jóváhagyásra váró levelek:"
+
+#: cron/checkdbs:114
+msgid ""
+"From: %(sender)s on %(date)s\n"
+"Subject: %(subject)s\n"
+"Cause: %(reason)s"
+msgstr ""
+"Feladó: %(sender)s %(date)s napon\n"
+"Tárgy: %(subject)s\n"
+"Indok: %(reason)s"
+
+#: cron/disabled:19
+msgid ""
+"Process disabled members, recommended once per day.\n"
+"\n"
+"This script cruises through every mailing list looking for members whose\n"
+"delivery is disabled. If they have been disabled due to bounces, they will\n"
+"receive another notification, or they may be removed if they've received "
+"the\n"
+"maximum number of notifications.\n"
+"\n"
+"Use the --byadmin, --byuser, and --unknown flags to also send notifications "
+"to\n"
+"members whose accounts have been disabled for those reasons. Use --all to\n"
+"send the notification to all disabled members.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -h / --help\n"
+" Print this message and exit.\n"
+"\n"
+" -o / --byadmin\n"
+" Also send notifications to any member disabled by the list\n"
+" owner/administrator.\n"
+"\n"
+" -m / --byuser\n"
+" Also send notifications to any member disabled by themselves.\n"
+"\n"
+" -u / --unknown\n"
+" Also send notifications to any member disabled for unknown reasons\n"
+" (usually a legacy disabled address).\n"
+"\n"
+" -b / --notbybounce\n"
+" Don't send notifications to members disabled because of bounces "
+"(the\n"
+" default is to notify bounce disabled members).\n"
+"\n"
+" -a / --all\n"
+" Send notifications to all disabled members.\n"
+"\n"
+" -f / --force\n"
+" Send notifications to disabled members even if they're not due a "
+"new\n"
+" notification yet.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" Process only the given list, otherwise do all lists.\n"
+msgstr ""
+"Kikapcsolt tagok kezelése, lehetõleg mindennap futtassuk le egyszer.\n"
+"\n"
+"A program megkeresi az összes listánkon azokat a felhasználókat, akiknél\n"
+"a levélkézbesítés ki lett kapcsolva. Ha a kikapcsolás visszapattanás miatt\n"
+"történt, akkor a listagnak egy újabb értesítést küld a program, vagy törli "
+"õt\n"
+"a listáról, ha már megkapta az összes értesítési üzenetet.\n"
+"\n"
+"A --byadmin, --byuser és --unknown kapcsolókkal azoknak a listatagoknak\n"
+"is el lehet küldeni az értesítést, akiknél vagy a lista adminisztrátora, "
+"vagy \n"
+"saját maguk vagy ismeretlen ok kapcsolta ki a levélkézbesítést. Az --all\n"
+"kapcsolóval minden kikapcsolt tagnak lehett értesítést küldeni.\n"
+"\n"
+"\n"
+"Használat: %(PROGRAM)s [kapcsolók]\n"
+"\n"
+"Kapcsolók:\n"
+" -h / --help\n"
+" Megjeleníti ezt a súgót és kilép.\n"
+"\n"
+" -o / --byadmin\n"
+" Azoknak a kikapcsolt tagoknak is elküldi az értesítést, akiknél\n"
+" a lista tulajdonosa/adminisztrátora tiltotta le a levélkézbesítést.\n"
+"\n"
+" -m / --byuser\n"
+" Azoknak a tagoknak is küld értesítést a program, akik saját maguk\n"
+" kapcolták ki a kézbesítést.\n"
+"\n"
+" -u / --unknown\n"
+" Azoknak a tagoknak is küld értesítést a program, akiknél a levél-\n"
+" kézbesítés ismeretlen indok miatt lett kikapcsolva.\n"
+"\n"
+" -b / --notbybounce\n"
+" Nem küld értesítést azoknak a tagoknak, akiknél visszapattanás\n"
+" miatt lett kikapcsolva a levélkézbesítés (alapesetben értesíti a \n"
+" visszapattanás miatt kikapcsolt listatagokat).\n"
+"\n"
+" -a / --all\n"
+" Minden kikapcsolt tagnak értesítést küld a program.\n"
+"\n"
+" -f / --force\n"
+" Értesítést küld a kikapcsolt tagoknak, mégha azok nincsenek túl\n"
+" egy új értesítésen.\n"
+"\n"
+" -l listanév\n"
+" --listname=listanév\n"
+" Csak a megadott listán keres kikapcsolt felhasználókat.\n"
+
+#: cron/disabled:143
+msgid "[disabled by periodic sweep and cull, no message available]"
+msgstr "[kikapcsolt az idõszakos ellenõrzés és kiválasztás, nincs üzenet]"
+
+#: cron/gate_news:19
+msgid ""
+"Poll the NNTP servers for messages to be gatewayed to mailing lists.\n"
+"\n"
+"Usage: gate_news [options]\n"
+"\n"
+"Where options are\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this text and exit.\n"
+"\n"
+msgstr ""
+"Letölti az NNTP szerverrõl a levelezõlistára szánt leveleket.\n"
+"\n"
+"Használat: gate_news [kapcsolók]\n"
+"\n"
+"Kapcsolók:\n"
+"\n"
+" --help\n"
+" -h\n"
+"\t Megjeleníti ezt a súgót és kilép.\n"
+"\n"
+
+#: cron/mailpasswds:19
+msgid ""
+"Send password reminders for all lists to all users.\n"
+"\n"
+"This program scans all mailing lists and collects users and their "
+"passwords,\n"
+"grouped by the list's host_name if mm_cfg.VIRTUAL_HOST_OVERVIEW is true. "
+"Then\n"
+"one email message is sent to each unique user (per-virtual host) containing\n"
+"the list passwords and options url for the user. The password reminder "
+"comes\n"
+"from the mm_cfg.MAILMAN_SITE_LIST, which must exist.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -l listname\n"
+" --listname=listname\n"
+" Send password reminders for the named list only. If omitted,\n"
+" reminders are sent for all lists. Multiple -l/--listname options "
+"are\n"
+" allowed.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+msgstr ""
+"Jelszó-emlékeztetõ elküldése a lista összes tagjának.\n"
+"\n"
+"A program, ha az mm_cfg.VIRTUAL_HOST_OVERVIEW értéke igaz, a rendszeren\n"
+"található összes levelezõlista tagnak egyedi levelet küld el az adott\n"
+"felhasználó jelszavával és a beállítási oldalának címével. A jelszó-\n"
+"emlékeztetõt a mm_cfg.MAILMAN_SITE_LIST-ben beállított értékkel küldi el.\n"
+"\n"
+"Használat: %(PROGRAM)s [kapcsolók]\n"
+"\n"
+"Kapcsolók:\n"
+" -l listanév\n"
+" --listname=listanév\n"
+" Csak a megadott lista tagjainak kerül elküldésre a jelszó "
+"emlékeztetõ\n"
+" szöveg. Ha nincsen listanév megadva, akkor az összes listán kiküldi\n"
+" az emlékeztetõ szöveget. Egyszerre több -l/--listname kapcsolót is "
+"meg\n"
+" lehet adni.\n"
+"\n"
+" -h/--help\n"
+"\tKiírja ezt a súgót és kilép.\n"
+
+#: cron/mailpasswds:111
+msgid "Site list is missing: %(sitelistname)s"
+msgstr "Hiányzik a rendszerszintû lista: %(sitelistname)s"
+
+#: cron/mailpasswds:179
+msgid "Password // URL"
+msgstr "Jelszó // URL"
+
+#: cron/mailpasswds:199
+msgid "%(host)s mailing list memberships reminder"
+msgstr "%(host)s levelezõlista emlékeztetõ"
+
+#: cron/nightly_gzip:19
+msgid ""
+"Re-generate the Pipermail gzip'd archive flat files.\n"
+"\n"
+"This script should be run nightly from cron. When run from the command "
+"line,\n"
+"the following usage is understood:\n"
+"\n"
+"Usage: %(program)s [-v] [-h] [listnames]\n"
+"\n"
+"Where:\n"
+" --verbose\n"
+" -v\n"
+" print each file as it's being gzip'd\n"
+"\n"
+" --help\n"
+" -h\n"
+" print this message and exit\n"
+"\n"
+" listnames\n"
+" Optionally, only compress the .txt files for the named lists. "
+"Without \n"
+" this, all archivable lists are processed.\n"
+"\n"
+msgstr ""
+"Újrakészíti a Pipermail gzip formátumú archívumát.\n"
+"\n"
+"A szkriptet éjszakánként cron-al célszerû futtatni. Parancssorból\n"
+"a következõ módon kell használni:\n"
+"\n"
+"Használat: %(program)s [-v] [-h] [listanevek]\n"
+"\n"
+"Ahol:\n"
+" --verbose\n"
+" -v\n"
+" Megjeleníti a feldolgozás alatt lévõ állomány nevét.\n"
+"\n"
+" --help\n"
+" -h\n"
+"\tMegjeleníti ezt a súgót és kilép.\n"
+"\n"
+" listanevek\n"
+"\tHa listanév meg lett adva, akkor a lista .txt állományait tömöríti.\n"
+"\tHa nem lett listanév megadva, akkor az összes archiválható listán\n"
+"\tvégig megy a program.\n"
+"\n"
+
+#: cron/senddigests:19
+msgid ""
+"Dispatch digests for lists w/pending messages and digest_send_periodic set.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -h / --help\n"
+" Print this message and exit.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" Send the digest for the given list only, otherwise the digests for "
+"all\n"
+" lists are sent out.\n"
+msgstr ""
+"Elküldi a lista digestjét a jóváhagyásra váró üzenetek nélkül és beállítja\n"
+"a digest_send_periodic értékét\n"
+"\n"
+"Használat: %(PROGRAM)s [kapcsolók]\n"
+"\n"
+"Kapcsolók:\n"
+"\n"
+" -h / --help\n"
+"\t Kiírja ezt a súgót és kilép.\n"
+" -l listanév\n"
+" --listname=listanév\n"
+" \t Csak a megadott lista digestjét küldi el. Ha nem lett lista\n"
+"\t megadva, akkor az összes lista digestjét elküldi.\n"
diff --git a/messages/hu/README.CONTRIB.hu b/messages/hu/README.CONTRIB.hu
new file mode 100644
index 00000000..e2339627
--- /dev/null
+++ b/messages/hu/README.CONTRIB.hu
@@ -0,0 +1,17 @@
+Mailman - The GNU Mailing List Management System
+Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+Titkosított levelezõlisták
+
+ Titkosított levelezõlisták létrehozásához olvassuk el Raphinou
+ <rb@raphinou.com> leírását a következõ címen:
+
+ http://www.raphinou.com/smailman
+
+
+
+Local Variables:
+mode: indented-text
+indent-tabs-mode: nil
+End:
diff --git a/messages/hu/README.EXIM.hu b/messages/hu/README.EXIM.hu
new file mode 100644
index 00000000..12e3e390
--- /dev/null
+++ b/messages/hu/README.EXIM.hu
@@ -0,0 +1,365 @@
+Az Exim és a Mailman együtt
+===========================
+
+[Ez a fájl Nigel Metheringhamz "HOGYANIS - Az Exim és a Mailman együtt"
+ dokumentációjának egy kivonata, amelyben a 2.0.x verziójú Mailman-ról
+ és a 3-as verziójú Exim-rõl lehet olvasni. A frissített dokumentációban
+ a 2.1-es Mailman és 4-es Exim összekapcsolásáról is lehet olvasni. Az
+ eredeti dokumentációt az alábbi címen lehet olvasni:
+ http://www.exim.org/howto/mailman.html ]
+
+
+Mailman beállítása
+------------------
+
+A Mailman-t nem kell a hagyományostól eltérõ módon beállítani, mint ahogy
+az a Mailman telepítési dokumentációjában le van írva. Mindössze a
+mailman uid/gid értékeit kell az Exim konfigurációjának megfelelõ helyein
+megadni.
+
+Exim beállítása
+---------------
+
+Az Exim beállításával a Mailman-ben létrehozott listák automatikusan,
+további bejegyzések nélkül megjelennek és használhatóak lesznek.
+
+Ennek a beállításnak a hátránya az, hogy gyenge teljesítménnyel mûködik
+olyan rendszereken, amelyek több különbözõ levelezõ tartomány listáit
+szolgálják ki. Igaz, hogy a Mailman képes kezelni virtuális tartományok
+kezelésére, de egyelõre nem képes kezelni ugyanaz a telepített Mailman
+azonos névvel, de eltérõ tartományban található listákat. Ez a jövõben
+változni fog. (Lejjebb különbözõ változatokról lehet olvasni, amelyekkel
+a virtuális tartományokat lehet megfelelõen kiszolgálni.)
+
+A késõbb bemutatott konfigurációs állomány részleteket azon már mûködõ Exim
+konfigurációs részbe kell elhelyezni, amely azon tartomány levelezéséért
+felelõs, ahol a lista mûködik. Ha ez a tartomány eltér az Eximben megadott
+tartományoktól, akkor a következõket kell tenni:
+
+ * adjuk hozzá a local_domains-hez a lista tartományát,
+ pl. sajat.listam.domain
+
+ * adjuk a "domains=sajat.listam.domain" beállítást a lista átirányító
+ (director) részéhez
+
+ * (ha szükséges) a többi átirányítónál vegyük fel ezt a tartományt a
+ figyelmen kívül hagyandó tartományok közé.
+
+[Megjegyzés: a leírásban található beállítások mind 3-as, mind 4-es Eximhez
+egyaránt használhatóak. 3-as Eximnél 'local_domains' beállításra van
+szükségünk, míg a 4-es verzióban többnyire a 'local_domains'-ben megadott
+tartománylistára. Ha nem így használjuk az Eximet, akkor valószínûleg
+alapos Exim beállítási ismeretekkel rendelkezünk, így nem lesz nehéz
+módosítani a késõbb ismertetett beállításokat. 4-es Eximben az átirányítók
+(directors) rész megszûnt, szerepét a routers rész vette át, így ha 4-es
+Eximet használunk, akkor mindenhol ahol a dokumentáció átirányítót említ
+mi routert értsünk.]
+
+Függetlenül attól, hogy melyik Exim verziót használjuk az Exim konfigurációs
+állományának általános beállítások részébe néhány változóz kell megadnunk.
+Továbbá egy új továbbító részt is létre kell majd hoznunk. 3-as Eximnél
+egy új átirányító, míg a 4-es verzióban egy új router tölti be majd
+ugyanazt a szerepet.
+
+Végül pedig érdemes tudni, hogy ezekkel a beállításokkal ugyanazon a
+gépen egymás mellett mûködhet a Mailman 2.0-ás és 2.1-es verziója is.
+Ekkor "mailman" helyett hivatkozhatunk "mm21" névvel a másik, újabb
+verzióra, pl. MM21_HOME, mm21_transport, stb.
+
+
+Általános beállítások
+~~~~~~~~~~~~~~~~~~~~~
+
+Elõször is ez Exim konfigurációs állományának elejéhez adjuk a következõ
+változókat. A változók segítségével egyszerûbben kezelhetõek a késõbb
+megadott átirányító és router beállítások. Természetesen a saját
+rendszerünk szerint módosítsuk a megadott értékeket.
+
+ # A telepített Mailman 'home' könyvtára
+ MAILMAN_HOME=/usr/local/mailman
+ MAILMAN_WRAP=MAILMAN_HOME/mail/mailman
+
+ # Mailman felhasználó és csoport azonosítója, egyeznie kell a Mailman
+ # bellításakor használt --with-mail-gid kapcsolónál megadott értékkel
+ MAILMAN_UID=mailman
+ MAILMAN_GID=mailman
+
+
+Transport rész Exim 3-hoz
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Az Exim konfigurációs állományának transports fejezetéhez adjuk a következõ
+sorokat, kb. az elsõ és második "end" tartalmú sor közé kell beszúrni a
+következõket:
+
+ mailman_transport:
+ driver = pipe
+ command = MAILMAN_WRAP \
+ '${if def:local_part_suffix \
+ {${sg{$local_part_suffix}{-(\\w+)(\\+.*)?}{\$1}}} \
+ {post}}' \
+ $local_part
+ current_directory = MAILMAN_HOME
+ home_directory = MAILMAN_HOME
+ user = MAILMAN_USER
+ group = MAILMAN_GROUP
+
+(Exim 3 alatt nem lett tesztelve ez az továbbító beállítás. Ezért a
+dokumentáció készítõje szívesen várja azok jelentkezését, észrevételét akik
+3-as verziójú Eximmel használja ezt a beállítást.)
+
+
+Átirányító rész Exim 3-hoz
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Ha 3-as Eximet használunk, akkor a konfigurációs állomány átirányító
+részéhez a következõket kell adni (az átirányítók a második és harmadik
+"end" tartalmú sor között találhatóak). Fontos, hogy itt számít a sorrend
+-- pl. ha ezt az irányítót az aliasállomány átirányítójára való hivatkozás
+elé tesszük, akkor a Mailman bejegyzései (aliases) a rendszer bejegyzéseknél
+magasabb érvényûek lesznek.
+
+ # A listához tartozó összes címet kezeli ez a rész.
+ # Automatikusan azonosítja a listákat a MAILMAN_HOME könyvtárban
+ # található lists/$local_part/config.pck állományok alapján.
+ mailman_director:
+ driver = smartuser
+ require_files = MAILMAN_HOME/lists/$local_part/config.pck
+ suffix_optional
+ suffix = -bounces : -bounces+* : \
+ -confirm+* : -join : -leave : \
+ -owner : -request : -admin
+ transport = mailman_transport
+
+
+Router rész Exim 4-hez
+~~~~~~~~~~~~~~~~~~~~~~
+
+4-es Eximben az átirányítók helyett routereket kell használni. Ezen túl a
+konfigurációs állomány felépítése is megváltozott -- ABC sorrendet használ,
+így itt a router rész a transport rész elé kerül. Tegyük a router beállítást
+a router részbe, amely a "begin routers" sor után kezdõdik. El ne felejtsük,
+hogy a megadott sorrend itt még inkább számít.
+
+ mailman_router:
+ driver = accept
+ require_files = MAILMAN_HOME/lists/$local_part/config.pck
+ local_part_suffix_optional
+ local_part_suffix = -bounces : -bounces+* : \
+ -confirm+* : -join : -leave : \
+ -owner : -request : -admin
+ transport = mailman_transport
+
+
+Transport rész Exim 4-hez
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
+A 4-es Eximhez használhatjuk a 3-as Eximben megadott transport bejegyzést,
+nyugodtan másoljuk be valahova a "begin transports" sor után a 3-as Eximnél
+ismertetett beállításokat.
+
+
+Megjegyzés
+~~~~~~~~~~
+
+Az Exim-et úgy kell beállítani, hogy a kézbesítés elfogadható mértékû
+legyen - pl. a max_recipients ne valami nagyon kis érték legyen, és a
+biztonsági beállítások is értelmes szintet eredményezzenek - pl. 127.0.0.1
+címrõl (evidensen) engedélyezett a relaying, de máshonnan nagyon nem.
+Párhuzamos küldési módot is be lehet állítani. A kézbesítések idõ-
+túllépésére figyelmeztetõ üzeneteket legalább a listákhoz kapcsolódó
+címeknél kapcsoljuk ki, ha nem szeretnénk nagyon sok ilyen üzenetet
+kapni, amikor a címzett gép nem érhetõ el.
+
+
+Problémák
+~~~~~~~~~
+
+ * A Mailman annyi MAIL FROM/RCPT TO hívást használ, amennyi szükséges.
+ Ennek következtében 10 vagy 100 üzenetnél is többet próbál meg egy
+ kapcsolat alatt elküldeni, amely több mint az Exim alapesetben
+ beállított engedélyezett küldése (smtp_accept_queue_per_connection).
+ Emiatt az Exim várakozólista módba kapcsol és nagy késésekkel
+ fogja az üzeneteket továbbítani.
+ A probléma elkerülésére adjunk az SMTP_MAX_SESSIONS_PER_CONNECTION
+ változónak (a ~mailman/Mailman/mm_cfg.py állományban) az Exim
+ smtp_accept_queue_per_connection értékénél kisebb értéket
+
+ * A Mailman-nak figyelmen kívül kellene hagynia az Exim kézbesítés
+ idõtúllépésébõl (delay) eredõ üzeneteit, annak ellenére, hogy az
+ Exim ezeket sohasem küldi el a listákra. A Mailman 2.1-ben a
+ visszapattanások kezelése és a VERP támogatása nagyban segítheti
+ a visszapattanások nyomonkövetését.
+
+ * A listák létezésénél ellenõrzi a beállítás, hogy található-e a
+ listához config.pck fájl. Ha töröljük a listát, akkor ügyeljünk
+ hogy töröljük a listához tartozó config.pck fájlt is.
+
+ * Ha hibás felhasználói azonosítóra hivatkozva nem történik kézbesítés,
+ akkor ellenõrizzük, hogy a MAILMAN_UID és MAILMAN_GID váltózóknak
+ helyesen adtuk-e meg a Mailman ezen értékeit. Figyeljünk arra
+ is, hogy a rendszerszintû aliases fájlban nem található a listához
+ közvetlenül kapcsolódó bejegyzés.
+
+
+Címzett azonosítása
+~~~~~~~~~~~~~~~~~~~
+
+Az Exim címzett azonosítás funkciója nagyon hasznos, mivel segítségével
+az SMTP kapcsolat ideje alatt el lehet vetni a nem ismert címzettû
+leveleket. Ez a funkció a saját tartományukba külsõ címekrõl érkezõ
+levelek esetén hasznos. A Mailman listák forgalmánál a levelek a saját
+szerverünkrõl indulnak és különbözõ külsõ, tõlünk független tartományokba
+kerülnek elküldésre. Minden egyes levél több címzettnek kerülhet továbbításra
+-- akár egyszerre 500-nak is, ha a Mailman alapértelmezett értékét használjuk
+és nem módosítottuk az SMTP_MAX_RCPTS értékét.
+
+A Mailman listák forgalmán címzett azonosítást végezve problémák
+merülhetnek fel. Általában az Exim a Mailman listákról érkezõ üzenetek
+minden címzettjét megpróbálja elérni. Ehhez mindössze pár keresést
+végez a DNSben minden egyes címzettnél, azonban ez a keresés a kézbesítést
+nagyon lelassíthatja. Ezért célszerû kikapcsolni a címzett azonosítást
+a Mailman forgalomra.
+
+3-as Exim alatt a következõt kell elhelyezni az általános beállítások
+részben:
+
+ receiver_verify_hosts = !127.0.0.1
+
+4-es Eximnél valószínûleg az alapértelmezett címzett azonosítási ACL
+kifejezésben (az "RCPT TO" ACL-ben) már engedélyezve van ez a funkció:
+
+ accept domains = +local_domains
+ endpass
+ message = unknown user
+ verify = recipient
+
+Ekkor csak a saját tartományba érkezõ levelekre végez címzett azonosítást
+az Exim. (Ez a megoldás nem teljesen azonos azoknál az üzeneteknél
+alkalmazott címzett azonosítási funkcióval, amelyek nem-127.0.0.1 hostokról
+érkeznek, de mûködik a Mailman esetében.)
+
+
+SMTP Callback
+~~~~~~~~~~~~~
+
+Az Exim SMTP callback képességével még hatékonyabban lehet azonosítani
+a hibás feladócímeket, mint a hagyományos feladó ellenõrzéssel. Sajnos
+nagyon sok szerver a visszapattanási üzenet fejlécében hibás feladót
+tüntet fel (annak ellenére, hogy csak egy üres feladó címet kéne
+használniuk ilyen esetekben).
+
+Azért, hogy a Mailman a visszapattanó címeket kezelni tudja szükséges
+a Mailman listákon fogadni az ilyen leveleket, még akkor is ha ezek
+nem alkalmasak visszapattanások azonosítására. Ezért többnyire
+célszerû kikapcsolni az SMTP callback ellenõrzést a visszapattanó
+levelekre.
+
+Exim 4 esetén ezt a következõ beállítással lehet elérni az "RCPT TO" ACL
+részben:
+
+ # Fogadjuk a visszapattanásokat a listán még akkor is ha a callback vagy
+ # más ellenõrzések nem jártak sikerrel
+ warn message = X-WhitelistedRCPT-nohdrfromcallback: Yes
+ condition = \
+ ${if and {{match{$local_part}{(.*)-bounces\+.*}}
+ {exists {MAILMAN_HOME/lists/$1/config.pck}}} \
+ {yes}{no}}
+ {yes}{no}}
+
+ accept condition = \
+ ${if and {{match{$local_part}{(.*)-bounces\+.*}}
+ {exists {MAILMAN_HOME/lists/$1/config.pck}}} \
+ {yes}{no}}
+ {yes}{no}}
+
+ # Most ellenõrizhetjük a feladó címét az SMTP callback funkcióval.
+ deny !verify = sender/callout=90s
+
+Ha a fejlécben található címekre is szeretnénk SMTP callback ellenõrzést
+végrehajtani, akkor a "DATA" ACL-t a következõképpen kell megadni:
+
+ deny !condition = $header_X-WhitelistedRCPT-nohdrfromcallback:
+ !verify = header_sender/callout=90s
+
+[Fontos, hogy a leírtakat nem tesztelték még teljesen a dokumentáció
+készítõi!]
+
+VERP használata Eximmel és Mailmannel
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+VERP esetén a listatagoknak a leveleket külön-külön küldjük el, a VERP
+beállításáról a ~mailman/Mailman/Defaults.py állományban lehet bõvebben
+olvasni. Röviden, a következõket kell feltüntetni a ~mailman/Mailman/mm_cfg.py
+állományban a VERP használatához:
+
+ VERP_PASSWORD_REMINDERS = 1
+ VERP_PERSONALIZED_DELIVERIES = 1
+ VERP_DELIVERY_INTERVAL = 1
+ VERP_CONFIRMATIONS = 1
+
+ (A fenn említett átirányítok képesek a VERP visszapattanások kezelésére is.)
+
+
+Virtuális tartományok
+~~~~~~~~~~~~~~~~~~~~~
+
+Virtuális tartományok kezelésére megoldás lehet az a módszer, hogy minden
+egyes virtuális tartományhoz külön-külön telepített Mailmant használunk.
+(Jelenleg csak ezzel a módszerrel lehet ugyanazon a rendszeren azonos névvel,
+de eltérõ tartományokban listákat üzemeltetni.)
+
+Ez esetben ne adjuk meg a MAILMAN_HOME és MAILMAN_WRAP változókat, töröljük
+azokat az általános beállítások részbõl. Módosítsuk a director (router)
+részeket valahogy így:
+
+ require_files = /virtual/${domain}/mailman/lists/${lc:$local_part}/config.pck
+
+a transports részeket pedig így:
+
+ command = /virtual/${domain}/mailman/mail/mailman \
+ ${if def:local_part_suffix \
+ {${sg{$local_part_suffix}{-(\\w+)(\\+.*)?}{\$1}}}
+ {post}} \
+ $local_part
+ current_directory = /virtual/${domain}/mailman
+ home_directory = /virtual/${domain}/mailman
+
+
+Lista ellenõrzése
+~~~~~~~~~~~~~~~~~
+
+A következõkben bemutatjuk, hogy hogyan lehet ellenõrizni egy mûködõ
+rendszeren, hogy az Eximnek megadott listák címei megfelelõen mûködnek.
+A példában az mems-exchange.org levelezõszerveren mûködõ
+quixote-users@mems-exchange.org listán mutatjuk be a szükséges parancsokat
+("% " jelzi a Unix shell promptját):
+
+ % exim -bt quixote-users
+ quixote-users@mems-exchange.org
+ router = mailman_main_router, transport = mailman_transport
+
+ % exim -bt quixote-users-request
+ quixote-users-request@mems-exchange.org
+ router = mailman_router, transport = mailman_transport
+
+ % exim -bt quixote-users-bounces
+ quixote-users-bounces@mems-exchange.org
+ router = mailman_router, transport = mailman_transport
+
+ % exim -bt quixote-users-bounces+luser=example.com
+ quixote-users-bounces+luser=example.com@mems-exchange.org
+ router = mailman_router, transport = mailman_transport
+
+Ha az "exim -bt" parancsok kimenete hasonlít valamennyire a fentiekhez,
+akkor az jó jel, mert azt jelenti hogy az Exim a megfelelõ Mailman
+bejegyzéshez továbbítja az eltérõ üzeneteket. Azonban messze nem jelenti
+azt, hogy az Exim és Mailman telepítés biztosan tökéletesen mûködik!
+
+
+A dokumentum készítõi
+~~~~~~~~~~~~~~~~~~~~~
+
+Eredeti szerzõje Nigel Metheringham <postmaster@exim.org>.
+Mailman 2.1-es és Exim 4-es verzióhoz adaptálta Merlin <marc_soft@merlins.org>.
+Ellenõrízte/formába öntötte/pontosította/egyszerûsítette Greg Ward <gward@python.net>.
diff --git a/messages/hu/README.LINUX.hu b/messages/hu/README.LINUX.hu
new file mode 100644
index 00000000..91d3650b
--- /dev/null
+++ b/messages/hu/README.LINUX.hu
@@ -0,0 +1,59 @@
+Mailman - The GNU Mailing List Management System
+Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+
+GNU/LINUX TUDNIVALÓK
+
+ GNU/Linux seems to be the most popular platform on which to run
+ Mailman. Here are some hints on getting Mailman to run on Linux:
+
+ Úgy tûnik, hogy a Mailman futtatásához leggyakrabban használt platform
+ a GNU/Linux. A következõkben néhány Linuxos jótanácsot lehet olvasni
+ a Mailman futtatásához:
+
+ Ha hibaüzenetet kapunk a kemény kötések (hard link) létrehozásakor,
+ vagy különleges biztonságos kernelt (securelinux/openwall/grsecurity)
+ használunk, akkor olvassuk el a contrib/README.check_perms_grsecurity
+ állományt.
+
+ Fontos tudni, hogy ugyanez az eset áll fenn, ha a Linux Mandrake-t
+ biztonságos módban (secure mode) használjuk.
+
+
+PYTHON CSOMAGOK
+
+ Note that if you installed Python from your Linux distribution's
+ package manager (e.g. .rpms for Redhat-derived systems or .deb for
+ Debian), you must install the `development' package of Python, or
+ you may not get everything you need.
+
+ Fontos tudni, hogy ha a Pythont az adott Linux disztribúció csomag-
+ kezelõjével (pl. Redhat típusú rendszereknél .rpm-bõl, Debian esetén
+ pedig .deb-bõl) telepítettük, akkor szükséges telepíteni a Python
+ `fejlesztõi' (development) csomagjait is. Különben nem minden fog
+ rendeltetésszerûen mûködni.
+
+ Például: Debian rendszeren Python 2.2 használatakor telepíteni kell
+ a python2.2-dev csomagot is. Redhat rendszeren pedig a python2-devel
+ csomagot.
+
+ Ha forrásból telepítjük a Pythont, akkor nem lesz ilyen problémánk.
+
+ Az ilyen problémára utal a következõ hibaüzenet telepítés során:
+
+ Traceback (most recent call last):
+ File "bin/update", line 44, in ?
+ import paths
+ ImportError: No module named paths
+ make: *** [update] Error 1
+
+ Ilyenkor telepítsük a Python fejlesztõi csomagot is és próbáljuk
+ meg újra a Mailman telepítését "configure ; make install" paranccsal.
+
+
+
+Local Variables:
+mode: text
+indent-tabs-mode: nil
+End:
diff --git a/messages/hu/README.MACOSX.hu b/messages/hu/README.MACOSX.hu
new file mode 100644
index 00000000..1bb9428a
--- /dev/null
+++ b/messages/hu/README.MACOSX.hu
@@ -0,0 +1,35 @@
+Mailman - The GNU Mailing List Management System
+Copyright (C) 2002 by the Free Software Foundation, Inc.
+59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+
+MacOSX TUDNIVALÓK
+
+ Mailman should run on MacOSX, although I have not personally had
+ time to try it yet. Here are some pointers we've collected on
+ getting Mailman to run on MacOSX.
+
+ A Mailman MacOSX rendszeren is fut, habár a fejlesztõk személyesen
+ nem próbálták ezt. A következõkben pár hasznos információt lehet
+ olvasni a Mailman futtatásáról MacOSX-en.
+
+ - Jaguar (MacOSX 10.2) a Python 2.2-es verzióját tartalmazza.
+ Habár ez nem a legutolsó stabil Python verzió a Mailman 2.1
+ mûködéséhez megfelel.
+
+ - David B. O'Donnell leírása Mailman 2.0.13 és Postfix használatáról
+ MacOSX kiszolgálón az alábbi címen olvasható:
+
+ http://www.afp548.com/Articles/mail/python-mailman.html
+
+ - Kathleen Webb tanácsai a Mailman futtatásáról Jaguar rendszeren
+ Sendmail-lel a következõ címen tekinthetõk meg:
+
+ http://mail.python.org/pipermail/mailman-users/2002-October/022947.html
+
+
+
+Local Variables:
+mode: text
+indent-tabs-mode: nil
+End:
diff --git a/messages/hu/README.NETSCAPE.hu b/messages/hu/README.NETSCAPE.hu
new file mode 100644
index 00000000..c87f7db2
--- /dev/null
+++ b/messages/hu/README.NETSCAPE.hu
@@ -0,0 +1,57 @@
+Mailman - The GNU Mailing List Management System
+Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+
+NETSCAPE PROBLÉMA
+
+ Azon felhasználóknál, akik member-only listára Netscape Communicatorral
+ próbálnak meg levelet küldeni, problémák merülhetnek fel. Meg-
+ figyelhetõ, hogy Linuxon a Communicator 4.x hibás Sender: fejlécet
+ szúr a küldendõ levelekbe -- pl. Sender: fejlécbe mindössze a
+ feladó e-mail címének felhasználói név része kerül. A Netscape
+ többi verziójánál is elõfordulhat ez a hiba.
+
+ Alapesetben a members-only listák elõször a From: fejléc alapján
+ próbálják meg azonosítani a beküldõt, ha ez sikertelen akkor a
+ Sender: résszel próbálkoznak. A Mailman-t adminisztrátora beállít-
+ hatja, hogy elõször mindig a Sender: fejlécet használja fel azono-
+ sításhoz. Ilyenkor, ha a Sender: rész hibásan van kitöltve, akkor
+ nem fog egyezni egyetlen listatag címével sem, a levél ezért a
+ jóváhagyásra váró levelek közé kerül.
+
+ A jövõben a Mailman fejlettebb algoritmussal próbálja majd azonosítani
+ a beküldõket, de addig M. A. Lemburg <mal@lemburg.com> tanácsa segít
+ a probléma megoldásában. Érdemes elküldeni ezt a részletet azon
+ felhasználóknak, akik levele ok nélkül kerül a jóváhagyásra váró
+ levelek közé.
+
+ A .netscape könyvtárban található két .js állományba (liprefs.js és
+ preferences.js) kell elhelyezni az alábbi sort:
+
+ user_pref("mail.suppress_sender_header", true);
+
+ A bináris állományban található megjegyzés szerint ezt a sort csak Unix
+ rendszereken kell beszúrni.
+
+ Mivel a Communicator minden kilépéskor újra létrehozza ezt az állományt,
+ ezért elõbb lépjünk ki a Communicatorból, és csak akkor módosítsuk az
+ állományokat ha már nem fut a program. A következõ indítás után már
+ nem fogja a Sender: fejlécet beszúrni, így minden újra jól fog mûködni.
+
+ Az ok amiért minden újra jól fog mûködni az, hogy a Mailman a From:
+ fejlécet fogja újra az azonosításhoz használni, ha nem talál Sender:
+ fejlécet, még akkor is ha a rendszeradminisztrátor elõször Sender: fejléc
+ ellenõrzést adott meg.
+
+
+MOZILLA
+
+ A Mozilla 0.9.x verzióknál ilyen probléma még nem merült fel.
+
+
+
+Local Variables:
+mode: indented-text
+indent-tabs-mode: nil
+End:
diff --git a/messages/hu/README.POSTFIX.hu b/messages/hu/README.POSTFIX.hu
new file mode 100644
index 00000000..6c6e0f52
--- /dev/null
+++ b/messages/hu/README.POSTFIX.hu
@@ -0,0 +1,212 @@
+Mailman - The GNU Mailing List Management System
+Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+
+ÁLTALÁNOS BEÁLLÍTÁSOK
+
+ A Mailmannek minden gond nélkül mûködnie kell egy általánosan
+ beállított Postfix-el. A dokumentáció írásakor a beállítások
+ Postfix 19991231 verziótól kezdve pl13 verzióig, és 200010228
+ verziótól pl08 verzióig lettek tesztelve.
+
+ Ajánlatos megadni a main.cf konfigurációs állományban az
+ "owner_request_specil = no" beállítást nehogy a Postfix az -owner
+ és -request címekre érkezõ leveleket külön kezelje (az ezekre
+ a címekre érkezõ leveleket is egyszerûen továbbítani kell a
+ Mailman wrapper programjának). Az alapértelmezett beállítás
+ valószínûleg "yes".
+
+ Ahhoz hogy esetlegesen használni tudjuk a Mailman VERP küldési
+ képességét ki kell kapcsolnunk az luser_relay (ez az alapértelmezett)
+ beállítást és módosítanunk kell a recipient_delimeter értékén.
+ Javasoljuk hogy kommentezzük ki a main.cf állományban az luser_relay
+ sort és adjuk meg a "recipient_delimiter = +" beállítást. Ezzel
+ beállítottuk a programban, hogy a cím a bõvített címzésben a + jelig
+ kell értelmezni. Ezekkel a beállítások a Defaults.py állományban
+ megadott alapértelmezett VERP_FORMAT és VERP_REGEXP értékekkel
+ megfelelõen mûködnek.
+
+ Végül ha Postfix-stílusú virtuális tartományokat használunk, akkor
+ olvassuk el az errõl szóló lejjebb található fejezetet.
+
+
+POSTFIX ÉS MAILMAN ÖSSZEKAPCSOLÁSA
+
+ A Postfixet össze lehet kapcsolni a Mailmannel úgy, hogy egy új
+ lista létrehozásakor, vagy törlésekor a Postfix alias adatbázisa
+ automatikusan frissüljön. Ehhez a következõk lépéseken kell
+ végigmennünk.
+
+ A leírás feltételezi, hogy a Mailmant az alapértelmezett telepítési
+ helyére telepítettük, ez a /usr/local/mailman. Ha nem így tettük,
+ akkor a lépéseknél megfelelõen módosítsuk az elérési útvonalakat
+ azokra amiket a konfigurálásakor a --prefix és --with-var-prefix
+ kapcsolóknál használtunk.
+
+ - Ha Postfix-stílusú virtuális tartományokat használunk és
+ szeretnénk, hogy a Mailman kezelje ezeket a tartományokat, akkor
+ elõször olvassuk el a virtuális tartományokról lejjebb található
+ fejezetet.
+
+ - A $prefix/Mailman/mm_cfg.py állományban adjuk meg a következõt:
+
+ MTA = 'Postfix'
+
+ Az MTA változó értékével arra a programmodulra hivatkozunk a
+ Mailman/MTA könyvtárban, amelyik az adott MTA-ra jellemzõ hívások
+ segítségével kezeli létrehozáskor vagy törléskor a listákat.
+
+ - Keressük meg a Defaults.py állományban a POSTFIX_ALIAS_CMD és
+ POSTFIX_MAP_CMD változókat. Gyõzõdjünk meg, hogy a változók a
+ postalias és postmap programok helyes teljes elérési útvonalát
+ tartalmazzák.
+
+ - Futtassuk a genaliases programot az aliases állomány létrehozásához:
+
+ % cd /usr/local/mailman
+ % bin/genaliases
+
+ Gyõzõdjünk meg, hogy a data/aliases és data/aliases.db tulajdonosa
+ a `mailman' és az állományok csoport tulajdonosa is a `mailman'.
+
+ % su
+ % chown mailman:mailman data/aliases*
+
+ - Módosítsuk a Postfix main.cf konfigurációs állományában az alias_maps
+ változót úgy, hogy a tartalmazza a következõ elérési útvonalat is:
+
+ /usr/local/mailman/data/aliases
+
+ (nincs a végén .db kiterjesztés) Az alias_database változóban ne
+ adjuk meg ezt az útvonalat, mert nem szeretnénk hogy módosítsa a
+ Postfix newaliases parancsa a Mailman aliases.db állományát. Mindössze
+ azt szeretnénk, hogy a Postfix figyelembe vegye az aliases.db
+ állományt, amikor a hely kézbesítési címeket keresi.
+
+ Célszerû egy hash: típusú adatbázisként megadni ezt az állományt.
+ Ezt megtehetjük például így:
+
+ alias_maps = hash:/etc/postfix/aliases,
+ hash:/usr/local/mailman/data/aliases
+
+ - A Mailman konfigurálásakor használjuk a --with-mail-gid=mailman
+ kapcsolót (mellesleg ez az alapértelmezett beállítás), mivel az
+ aliases.db állomány tulajdonosa a `mailman' felhasználó és a Postfix
+ a Mailman wrapper programját mailman uid és gid alatt próbálja meg
+ futtatni.
+
+ Ennyi! Egy kis gond: amikor létrehozunk, vagy törlünk egy listát, akkor
+ az aliases.db állomány azonnal frissül, viszont nem fut le automatikusan
+ a változtatások érvényesítéséhez a "postfix reload" parancs. Ez azért
+ van így, mert ehhez root jogokkal kell rendelkezni, vagy egy suid-root
+ programnak kell futnia, amelyek biztonsági kockázatot jelentenek.
+ A megoldás egyetlen hátrányát tehát az jelenti, hogy körülbelül csak
+ egy perc múlva veszi észre a Postfix a módosításokat és érvényesít a
+ változtatásokat. Ez a kis kényelmetlenség szerintünk elviselhetõ.
+
+
+VIRTUÁLIS TARTOMÁNYOK
+
+ A Postfix két típusú a "Postfix-típusú" és "Sendmail-típusú" virtuális
+ tartománykezelésre képes. Az utóbbinál minden bejegyzés (aliases)
+ minden tartományban látható, ekkor semmi különleges beállításra nincs
+ szükség a Mailmannél.
+
+ A Postfix-típusú virtuális tartományoknál már kicsit tükközni kell,
+ azonban itt sem lesz gond a Mailman beállításánál. Elõször is a
+ Postfix virtual_maps változóhoz kell egy újabb könyvtár elérési
+ utat adni:
+
+ virtual_maps = <your normal virtual files>,
+ hash:/usr/local/mailman/data/virtual-mailman
+
+ Esetünkben a Mailman alapértelmezett telepítési könyvtárát vettük fel
+ a változóba. Fontos, hogy kövessük a Postfix leírást arról, hogy
+ hogyan kell virtuális tartományokat beállítani; ezért már a Mailman
+ beállítása elõtt hozzuk létre a megfelelõen mûködõ virtuális
+ tartományokat.
+
+ Következõ lépésként az mm_cfg.py állományba állítsuk be a
+ POSTFIX_STYLE_VIRTUAL_DOMAINS változóba azon virtuális tartományokat,
+ amelyekre a Mailmannek figyelnie kell. Elõfordulhat, hogy nem itt nem
+ soroljuk fel a Postfix beállításunk által támogatott összes virtuális
+ tartományunkat. Az itt megadott értékeknek pontosan egyezniük kell a
+ levelezõlisták host_name változójában megadott értékekkel.
+
+ Nézzük meg egy példán keresztül:
+
+ Tegyük fel, hogy a Postfixben a dom1.ain, dom2.ain és dom3.ain
+ virtuális tartományokat szeretnénk kezelni. Ehhez mondjuk a main.cf
+ állományban a következõ beállítások vannak megadva:
+
+ myhostname = mail.dom1.ain
+ mydomain = dom1.ain
+ mydestination = $myhostname, localhost.$mydomain
+ virtual_maps = hash:/some/path/to/virtual-dom1,
+ hash:/some/path/to/virtual-dom2,
+ hash:/some/path/to/virtual-dom2
+
+ Példánkban a virtual-dom1 állományban a következõ sorokat adtuk meg:
+
+ dom1.ain IGNORE
+ @dom1.ain @mail.dom1.ain
+
+ Ezzel a Postfixet arra utasítottuk, hogy minden dom1.ain-re címzett
+ levelet tegyen ugyanabba a postafiókba, mint a mail.dom1.ain, az
+ alapértelmezett címre érkezõket.
+
+ Ez esetben a POSTFIX_STYLE_VIRTUAL_DOMAINS-ben nem szabad megadnunk
+ a dom1.ain-t, mivel különben a Mailman levelezõlisták bejegyzései a
+ dom1.ain tartományban a következõ lennének
+
+ mylist@dom1.ain mylist
+ mylist-request@dom1.ain mylist-request
+ # és így tovább ...
+
+ Az egyre pontosabb bejegyzések felülírják az elõttük található
+ általánosabb bejegyzéseket, ezzel megakadályozzák a dom1.ain
+ levelezõlisták megfelelõ mûködését.
+
+ Azonban az mm_cfg.py állományban megadjuk a dom2.ain és dom3.ain
+ értékeket:
+
+ POSTFIX_STYLE_VIRTUAL_DOMAINS = ['dom2.ain', 'dom3.ain']
+
+ Ezzel elértük, hogy minden olyan listának, amelyet a Mailman a fenti
+ két tartomány valamelyikében hoz létre a megfelelõ bejegyzései a
+ /usr/local/mailman/data/virtual-mailman állományban helyesen fognak
+ megjelenni.
+
+ Csak úgy mint a fent említett data/aliases* állományoknál, itt is
+ gyõzõdjünk meg arról, hogy a data/virtual-mailman és
+ data/virtual-mailman.db állományok felhasználó- és csoporttulajdonosa
+ `mailman' legyen. A megfelelõ mûködéshez tehát elõbb hozzuk létre
+ a virtuális tartományokat, futtassuk a bin/genaliases programot és
+ végül ellenõrizzük ezen állományokon a jogosultságokat. Ezen túl,
+ többet már nem kell velük foglalkoznunk.
+
+
+EGY MÁSIK MEGKÖZELÍTÉS
+
+ Fil <fil@rezo.net> máshogy, virtual maps és szabványos keresési
+ kifejezések használatával kezeli a virtuális tartományokat.
+ Leírása megtalálható:
+
+ (franciául) http://listes.rezo.net/comment.php
+ (angolul) http://listes.rezo.net/how.php
+
+ Egy jó (és egyszerûbb) módszer azon esetekben ha nem bánjuk, hogy
+ a tartomány részben egy újabb hostnév jelenik, ezzel növelve annak
+ a címnek a karakter hosszát, amelyen keresztül a felhasználók
+ elérik a listát. Pl. a listát a felhasználók sajatlista@lists.dom.ain
+ címmel érik el sajatlista@dom.ain cím helyett.
+
+ Ezt a megoldást a dokumentáció készítõje alaposan nem tesztelte.
+
+
+
+Local Variables:
+mode: text
+indent-tabs-mode: nil
+End:
diff --git a/messages/hu/README.SENDMAIL.hu b/messages/hu/README.SENDMAIL.hu
new file mode 100644
index 00000000..58c42b8a
--- /dev/null
+++ b/messages/hu/README.SENDMAIL.hu
@@ -0,0 +1,76 @@
+Mailman - The GNU Mailing List Management System
+Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+BIZTONSÁGI FIGYELMEZTETÉSEK
+
+ Semmiképp se csábítson a DELIVERY_MODULE változó `Sendmail'-re való
+ beállítása az mm_cfg.py állományban, ha a rendszered Sendmail-t
+ használ MTA-nak. A Sendmail.py modul neve becsapós, mert valójában
+ egy parancssori továbbítási metódust jelent szemben az (alapértelmezett)
+ SMTPDirect SMTP továbbítási metódusával. Sendmail.py használata
+ biztonsági kockázatot jelent, szerepe mindössze egy tartalék módszer.
+ Ha valamiért nem mûködik az SMTPDirect.py, akkor a biztonsági
+ kockázatok elkerülése érdekében inkább orvosuljuk a problémát és ne
+ használjuk a Sendmail.py-t, mert ezzel biztonsági rést nyithatunk a
+ rendszerünkön.
+
+
+SENDMAIL `smrsh' KOMPATIBILITÁS
+
+ A legtöbb újabb verziójú Sendmail egy úgynevezett korlátozott
+ végrehajtású eszközzel az "smrsh"-val rendelkezik. Ennek a
+ használatával lehet korlátozni, hogy a Sendmail milyen levélszûrõ
+ programokat hívhat meg mûködésekor. Külön meg kell adnunk a Mailman
+ wrapper programját, hogy használhassa az smrsh. Ha a levél nem jut
+ el a Mailman wrapper programjához, vagy egy "operating system error"
+ üzenetet látunk a mail naplóállományba, akkor a problémát ez okozza.
+
+ A probléma elhárításához tegyük a következõt:
+
+ - lépjünk be az /etc/smrsh (vagy hasonló a rendszerünktõl függõen
+ pl. lehet /var/smrsh vagy /usr/local/smrsh) könyvtárba
+
+ - hozzunk letre egy szimbolikus hivatkozást a Mailman wrapper
+ programjára
+
+ Például, ha a Mailman-t az alapértelmezett helyre telepítettük,
+ akkor a következõ parancsokat kell (valószínûleg root-ként)
+ használni:
+
+ % cd /etc/smrsh
+ % ln -s /usr/local/mailman/mail/mailman mailman
+
+
+SENDMAIL ÉS MAILMAN ÖSSZEKAPCSOLÁSA
+
+ David Champion készített egy leírást arról, hogy hogyan lehet a
+ Mailman-t és a Sendmail-t úgy összekapcsolni, hogy automatikusan
+ felismerje és használja a Sendmail a frissen létrehozott
+ levelezõlistákat anélkül, hogy minden egyes alkalommal kézzel
+ kéne módosítani a bejegyzéseket.
+
+ A contrib könyvtárból az alábbi négy állományra lesz szükség:
+
+ mm-handler.readme - részletes leírás a szükséges beállításokról
+ mm-handler - a levéltovábbító program (MDA)
+ mailman.mc - egy minta konfigurációs állomány
+ virtusertable - minta a kivételként kezelendõ címekkel (RFC 2142)
+
+
+TUDNIVALÓK A TELJESÍTMÉNYRÕL
+
+ Az egyik legbiztosabb módszer a Sendmail teljesítményének javítására
+ az ha kikapcsoljuk a címzettek folyamatos DNS-beli azonosítását.
+ Ha nem tesszük ezt meg, akkor a Mailman nagyon lassan fogja fel-
+ dolgozni a leveleket. A Mailman általában a localhost-on
+ (pl. 127.0.0.1) keresztûl kapcsolódik a Sendmail SMTP portjához,
+ ilyenkor célszerû a Sendmail úgy beállítani, hogy ne végezzen
+ folyamatosan DNS ellenõrzést a localhost csatlakozásoknál.
+
+
+
+Local Variables:
+mode: text
+indent-tabs-mode: nil
+End:
diff --git a/messages/hu/README.USERAGENT.hu b/messages/hu/README.USERAGENT.hu
new file mode 100644
index 00000000..d0e69aba
--- /dev/null
+++ b/messages/hu/README.USERAGENT.hu
@@ -0,0 +1,49 @@
+Mailman - The GNU Mailing List Management System
+Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+
+BEVEZETÉS
+
+ Az RFC 2369-ben foglaltak szerint minden listakezelõ-programnak
+ List-* fejléceket kell adniuk minden egyes kimenõ levélhez. Ezek
+ a fejlécek a levelezõprogramokat (MUA) készítik fel, hogy segítsék
+ a felhasználókat az olyan levelezõlistákkal kapcsolatos feladatokban,
+ mint információ lekérdezése vagy leiratkozás. A Mailman az RFC-ben
+ foglaltak alapján hozza létre ezeket a fejléceket.
+
+ Jelenleg nem mindegyik MUA képes az RFC 2369 fejlécek értelmezésére,
+ így ahelyett hogy azokat elrejtenék, megmutatják a felhasználóknak.
+ Sok listaüzemeltetõt kérdeznek felhasználói ezekrõl a fejlécekrõl.
+
+ A 2.0-ás Mailman-ben a forrás módosítása nélkül nem lehet a List-*
+ fejléceket eltüntetni, mivel ezek hosszútávon a felhasználók
+ kényelmét szolgálják. A fejléceket ne távolítsuk el, inkább a MUA
+ készítõjét kérjük meg a fejlécek támogatására. A változtatásig a
+ következõ tanácsokkal segíthetünk felhasználóinknak e fejlécek
+ eltüntetésében.
+
+EUDORA FELHASZNÁLÓKNÁL
+
+ Mike Noyes tanácsa szerint:
+
+ Az új lista fejléceket a következõ módon lehet elrejteni. Nyissuk meg
+ az Eudora.ini állományt, majd a következõ sort adjuk hozzá a [settings]
+ részhez:
+
+ TabooHeaders=List,X-UID,Received,Status,X-UIDL,Message,In-Reply, \
+ X-Priority,Mime-Version,Content,X-Persona,Resent-Message,References, \
+ Return,X400,X-400,Mail-System,Errors-To,X-List,Delivery,Disposition, \
+ X-Juno,Precedence,X-Attachments,X-MSMail,X-MimeOLE,X-Nav
+
+ megjegyzés: az alapértelmezés minden ami nem "List" tartalmú
+
+ Hivatkozás Eudora .ini Settings TabooHeaders
+ http://www.eudora.com/techsupport/ini.html
+
+
+
+Local Variables:
+mode: text
+indent-tabs-mode: nil
+End:
diff --git a/messages/hu/README.hu b/messages/hu/README.hu
new file mode 100644
index 00000000..b8dc073b
--- /dev/null
+++ b/messages/hu/README.hu
@@ -0,0 +1,267 @@
+Mailman - The GNU Mailing List Management System
+Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+BEVEZETÉS
+
+ A GNU Mailman egy levelezõlista-kezelõ program GNU Public License
+ (GPL) alatt. A projekt nevét, a "Mailman"-t kezdõ nagy `M'-el és
+ kis középsõ `m'-el kell helyesen írni.
+
+ A Mailman elsõsorban Python-t, egy ingyenes objektum-orientált nyelvet
+ használ. Biztonsági célból néhány helyen ANSI C kódot is tartalmaz.
+
+ A Mailman elsõ fejlesztõje John Viega volt. Ken Manheimer segítségével
+ (az 1.0b3 verzióig) folytatódott a fejlesztés. A késõbbiekben és
+ az 1.0-ás végleges verzióban már több programozó vett részt a
+ fejlesztésben. A vezetõ programozók közé Barry Warsaw, Ken Manheimer,
+ Scott Cotton, Harald Meland és John Viega tartozott. Az újabb verziók
+ fejlesztését Barry Warsaw vezeti; a fejlesztésben résztvevõk egy részének
+ névsorát az ACKNOWLEDGMENTS állományban lehet olvasni. A Mailman 2.0-ban
+ található Pipermail kódjának fejlesztésében nagy része volt Jeremy
+ Hylton-nak.
+
+ A Mailman honlapja
+
+ http://www.gnu.org/software/mailman
+
+ Tüköroldalak:
+
+ http://www.list.org
+ http://mailman.sf.net
+
+ A Mailman 2.1 mûködéséhez Python 2.1.3 vagy újabb szükséges, amelyet a
+ következõ címrõl lehet letölteni:
+
+ http://www.python.org
+
+ A megfelelõ mûködéshez ajnálott, hogy Python 2.1.3-et vagy Python 2.2.1-et
+ vagy annál frissebbet használjunk. A Mailman nem mûködik Python 2.0
+ vagy régebbi verziókkal.
+
+ Szükség van továbbá egy ANSI C fordítóra; a gcc (a GNU C fordítója)
+ megfelel a célnak. A Mailman jelenleg GNU/Linux és más Unix-típusú
+ operációs rendszereken (pl. Solaris, *BSD, MacOSX, stb.) képes futni.
+ Nem mûködik Windows rendszeren, azonban bármely platform web és levelezõ
+ programja képes a Mailman-nel együttmûködni.
+
+ Az INSTALL.hu állományban részletesen lehet olvasni a telepítésérõl.
+ Ha régebbi verziójú Mailman-t frissítünk, akkor a fontosabb tudnivalók
+ érdekében olvassuk el az UPGRADING.hu állományt is.
+
+
+TULAJDONSÁGOK
+
+ A NEWS állományban a 0.9-es verziótól fogva követhetõk nyomon a
+ változások. A TODO állományban a kívánság lista található (azon
+ újabb tulajdonságok, változtatások, amelyeket a felhasználók szívesen
+ használnának). A következõ címen mûködés közben látható a Mailman 2.1:
+
+ http://www.python.org/mailman-21/listinfo
+
+ A Mailman rendelkezik mindazokkal a szükséges tulajdonságokkal,
+ amelyekkel egy levelezõlista-kezelõ programnak manapság rendelkeznie kell
+ és még annál is többel:
+
+ - Web alapú lista adminisztrálás majdnem minden beállításhoz. Web alapú
+ feliratkozás és felhasználói beállítási lehetõség. Minden listához
+ külön megváltoztatható információs oldal.
+
+ - Biztonsági beállítások, mint moderálás, nyitott és zártkörû listák,
+ feliratkozási korlátozások, privát tagnévsor és a beküldések feladók
+ szerinti korlátozása.
+
+ - Beépített automatikus web alapú levél archiválás mind nyilvános, mind
+ privát archívumhoz, valamint külsõ archiváló használatának lehetõsége.
+
+ - Felhasználóként változtatható levélküldési mód, MIME formátumú vagy
+ RFC 1153 típusú sima szöveges digestek kézbesítése.
+
+ - Beépített levél/hírcsoport átjáró.
+
+ - Beépített automatikus válaszadás.
+
+ - Majordomo-stílusú e-mail parancsok.
+
+ - Beépített és bõvíthetõ visszapattanás kezelés.
+
+ - Beépített spamkezelés és MIME-típusú levelek szûrése.
+
+ - Bõvíthetõ levélkézbesítési mechanizmus.
+
+ - Virtuális tartományok támogatása.
+
+
+KÖVETELMÉNYEK
+
+ Bármilyen olyan levél továbbító programmal együtt lehet használni
+ a Mailman-t, amelyik támogatja a közvetlen SMTP kapcsolatot a 25-os
+ porton keresztül. Azonban néhány MTA-nál (pl. Exim és Postfix) a
+ Mailman képes levelezõlisták web felületrõl történõ létrehozására
+ vagy törlésére.
+
+ A Mailman bármilyen CGI/1.1-et támogató web kiszolgálón képes
+ mûködni. A létrehozott HTML oldalai egyszerûek, kevés grafikai
+ elemet tartalmaznak így szinte bármilyen web-böngészõn és internet
+ kapcsolaton futnia kell. Az oldalak megtekinthetõségét, kinézetét
+ idõnként IE 5.5, Windowsos Netscape 4.7x és Mozilla, valamint
+ Linuxos Netscape 4.7x és Mozilla böngészõkkel (esetenként Linuxos
+ Lynx-el és MacOS-os Netscape-el is) teszteljük.
+
+ Root-jogokkal kell rendelkeznünk azon a gépen, ahova a Mailman-t
+ telepíteni szeretnénk. A szükséges beállításokról az INSTALL.hu
+ állományban lehet olvasni.
+
+ A Mailman web és e-mail felülete minden web-böngészõvel és levelezõ-
+ programmal képes együtt mûködni, de ajánlott hogy a levelezõprogram
+ tudja kezelni a MIME-típusú leveleket. Nincs szükség Java, JavaScript
+ vagy egyéb plugin használatára.
+
+
+ELSÕ SAJÁT LEVELEZÕLISTA LÉTREHOZÁSA
+
+ A következõkben tárgyaltakhoz szükséges egy az INSTALL.hu alapján
+ telepített és beállított Mailman. Az elsõ saját levelezõlistánk
+ létrehozásához a következõt kell tenni:
+
+ - Elõször váltsunk abba a könyvtárba, ahova a Mailman telepítve lett
+ (alapesetben ez az /usr/local/mailman), majd állítsuk be a rendszer
+ adminisztrátori jelszót az alábbi paranccsal
+
+ (Megjegyzés: a kijelzett üzenetek eltérhetnek, ha a Mailman
+ alapértelmezett nyelve eltér a magyartól. A magyar nyelvi támogatás
+ beállításához parancssori programok esetén a LANG környezeti változót
+ kell 'hu'-ra állítani (pl. bash esetén ez az export LANG=hu paranccsal
+ tehetõ meg). A webfelület a $MAILMAN_HOME/Mailman/mm_cfg.py állományba
+ elhelyezett DEFAULT_SERVER_LANGUAGE=hu sorral mindenhol magyarul fog
+ megjelenni.)
+
+ % bin/mmsitepass
+ új webhely jelszó: [sajátjelszó]
+ Ismételd meg a jelszót: [sajátjelszó]
+ Jelszó megváltoztatva.
+
+ - Látogassunk el a következõ címre:
+
+ http://sajatgep.vhol/mailman/create
+
+ Töltsük ki az oldalon található ûrlapot az ott található magyarázatok
+ segítségével. A "Listalétrehozó jelszó" mezõbe a fent beállított
+ jelszót adjuk meg. "A lista elsõ gazdájának e-mail címe" mezõbe írjuk
+ be a saját e-mail címünket, majd válasszuk ki a lista tulajdonosának
+ értesítését.
+
+ - Kattintsunk a "Lista létrehozása" gombra.
+
+ - A postafiókunkban hamarosan találunk egy értesítést a Mailmantól az új
+ levelezõlista sikeres létrehozásáról.
+
+ - MEGJEGYZÉS: Exim vagy Postfix-tól eltérõ MTA-k használata esetén (pl.
+ Sendmail vagy qmail) szükség van még a levelezõlisták bejegyzéseinek
+ manuális hozzáadására a rendszer bizonyos állományaihoz. Kövessük a
+ kapott e-mailben leírtakat (fontos tudnunk milyen MTA található a
+ rendszerünkön, kérjük olvassa el az Ön MTA-jához tartozó README
+ állományt).
+
+ - Ezek után látogassunk el a lista adminisztrációs oldalára (ide vagy a
+ fõoldalról elindulva vagy a Mailmantól kapott levélben megadott cím
+ alapján juthatunk el). Az internet cím valahogy így fog kinézni:
+
+ http://sajatgep.vhol/mailman/listinfo/listank
+
+ Adjuk meg a listához használt jelszavunkat és kattintsunk a "Belépés..."
+ gombra.
+
+ - Kattintsunk a "Listatagok kezelése" majd a "Több tag felvétele"
+ hivatkozásra.
+
+ - Adjuk meg a saját e-mail címünket a nagy üres szövegmezõben, majd
+ kattintsunk a "Változtatások mentése" gombra.
+
+ - Ezek után a listank@sajatgep.vhol címre küldjünk egy próba levelet.
+ A Mailman a levelünket perceken belül továbbítani fogja címünkre.
+
+ Gratulálunk! Sikeresen létrehoztuk és teszteltük elsõ saját levelezõ-
+ listánkat. Probléma esetén olvassuk el az alább található EGYÉB
+ INFORMÁCIÓK részt.
+
+
+EGYÉB INFORMÁCIÓK
+
+ Az online dokumentáció elérhetõ a kicsomagolt Mailman könyvtárban a
+
+ file:admin/www/index.html
+
+ címen.
+
+ Chris Kolar lista-tulajdonosoknak készült használati útmutatója a
+ következõ címen található:
+
+ http://www.imsa.edu/~ckolar/mailman/
+
+ Ezen felül számos levelezõlista segíthet bármilyen, a Mailman-nal
+ kapcsolatos probléma megoldásában.
+
+ Mailman-Users
+ Mailman felhasználók nyitott listája, ahova a telepítéssel,
+ használattal és egyéb problémákkal, vagy kérdésekkel lehet
+ fordulni. A mély technikai témák nem ennek a listának a
+ területe.
+
+ http://mail.python.org/mailman/listinfo/mailman-users
+
+ Listowners
+ A levelezõlista segítséget nyújthat azoknak a lista
+ tulajdonosoknak és szerkesztõknek, akik nem rendelkeznek "shell
+ eléréssel" a Mailman programot futtató levelezõlista-szerverhez.
+ Nem területe a listának a mély technikai témák megvitatása.
+
+ http://listowner.org
+
+ Mailman-Announce
+ Egy csak-olvasható lista az újabb verziók megjelenésének és más
+ fontos hírek bejelentésére.
+
+ http://mail.python.org/mailman/listinfo/mailman-announce
+
+ Mailman-Developers
+ Nyitott lista mindazoknak, akik Mailman jövõbeni fejlõdésében,
+ fejlesztésében szeretnének részt venni. A listán mély technikai
+ témák kerülnek megvitatásra.
+
+ http://mail.python.org/mailman/listinfo/mailman-developers
+
+ Mailman-I18N
+ Nyitott lista a Mailman nyelvi támogatásának koordinálásra. A
+ 2.1-es Mailman teljesen több-nyelvû lesz.
+
+ http://mail.python.org/mailman/listinfo/mailman-i18n
+
+ Mailman-Checkins
+ Csak-olvasható lista, ahol a nyilvános anonymous CVS tár
+ változásai olvashatóak. A listára feliratkozva mindig nyomon
+ lehet követni a Mailman fejlesztését.
+
+ http://mail.python.org/mailman/listinfo/mailman-checkins
+
+ A Mailman projektet a SourceForge-on a következõ címen lehet elérni:
+
+ http://sf.net/projects/mailman
+
+ A SourceForge-on keresztül célszerû a különbözõ hibákat bejelenteni
+ (bugs report) és hibajavításokat közzétenni.
+
+
+KÖSZÖNETNYILVÁNÍTÁS
+
+ Szeretném megköszönni a segítségét Funk Gábornak, Fintha Attilának
+ és Komáromi Tamásnak, akik remek tanácsaikkal és észrevételeikkel
+ segítették a fordítás elkészültét.
+
+ Magyar fordítás: Vizi Szilárd és csapata.
+
+
+Local Variables:
+mode: indented-text
+indent-tabs-mode: nil
+End:
diff --git a/messages/hu/UPGRADING.hu b/messages/hu/UPGRADING.hu
new file mode 100644
index 00000000..e15bcb6a
--- /dev/null
+++ b/messages/hu/UPGRADING.hu
@@ -0,0 +1,245 @@
+Mailman - The GNU Mailing List Management System
+Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+
+FRISSÍTÉS KORÁBBI VERZIÓKRÓL
+
+ A legtöbb esetben a Mailman frissítése nem több mint egy újabb
+ verzió telepítése a meglévõ verzióra. Azonban néhány esetben
+ saját kezüleg kell gondoskodni a módosításokról.
+
+ What you need to do depends on the version you are using and the
+ version you are upgrading to. In all cases, you should first turn
+ off your mail and web access to your Mailman installation. You're
+ essentially upgrading a database, and it's usually a good idea to
+ make sure the database cannot be modified in the middle of the
+ upgrade.
+
+ A következõket ajánlom
+
+ - Kapcsoljuk ki a bejövõ leveleket fogadó levelezõ démont. A legtöbb
+ távoli smtp kiszolgáló várakozó listába teszi a leveleket, ha a
+ 25-ös port nem válaszol.
+
+ - Kapcsoljuk ki átmenetileg a Mailman webfelületét. Ez meg tehetjük,
+ úgy hogy a webkiszolgálót átmenetileg leállítjuk, vagy úgy hogy
+ a Mailman lapokhoz érkezõ kéréseket ideiglenesen átirányítjuk egy
+ "szolgáltatás nem érhetõ el" lapra. Ennek a beállításához kérjük
+ olvasd el a webszervered dokumentációját.
+
+ Mailman will NOT upgrade the template files for existing lists.
+ Chuq Von Rospach gives some useful advice in this message to the
+ users mailing list:
+
+ http://mail.python.org/pipermail/mailman-users/2000-September/006826.html
+
+ [Actually, the upgrade to MM2.1a2 /will/ shuffle template files,
+ deleting any that it detects are unchanged from the original
+ defaults (calculated via md5 checksums).]
+
+
+FRISSÍTÉS 2.0.x-RÕL 2.1-RE
+
+ A 2.1-es Mailman
+ In Mailman 2.1, the qrunner subsystem has been completely
+ rewritten. You no longer start qrunner from cron! Instead, there
+ is a bin/mailmanctl script which is used to start, stop, and
+ restart mail delivery. This script is appropriate to use as a
+ Unix init script. Be sure to update your crontab with the new
+ cron/crontab.in file.
+
+ NOTE: It is very important that if you are upgrading from a
+ pre-MM2.1alpha2 system to a post-MM2.1alpha2 system that you let
+ the old qrunner process clear any and all messages sitting in the
+ qfiles/ directory *BEFORE* you upgrade. Otherwise after the
+ upgrade, those messages will not get delivered, and I'm not
+ exactly sure yet how to upgrade those pending messages.
+
+ NOTE: When upgrading to Mailman 2.1beta1, you will need to
+ regenerate your aliases files. There have been many changes to
+ the alias names, the programs they map to, and the name of the
+ wrapper script. See README.<yourMTA> for details of making
+ Mailman work with your mail server.
+
+ To regenerate your aliases, use the bin/genaliases script.
+
+ Mailman 2.1 introduces multilingual (a.k.a. internationalization
+ or i18n) support. Previously only one language per list was
+ supported, and it was assumed that this language would be English.
+ The upgrade script for Mailman 2.1 creates a subdirectory `en'
+ inside each lists/<listname> directory. It then copies all the
+ .txt and .html files from lists/<listname> into
+ lists/<listname>/en.
+
+ If you have modified those templates to contain non-English text,
+ you will have to manually rename the en subdirectories to the
+ language code for the language of your templates. Mailman's
+ upgrade script should handle cleaning up any templates which are
+ duplicates of the defaults, but you'll want to double check this
+ manually.
+
+
+FRISSÍTÉS 2.0-RÓL 2.0.1-RE
+
+ Semmi mást nem kell csinálni, mint futtatni a "make install"
+ parancsot.
+
+
+UPGRADING FROM 2.0 beta to 2.0 final
+
+ You MUST re-run configure; running config.status is not sufficient
+ due to some recent changes in the autoconf scripts. You can do a
+ head of config.status if you don't remember the options you
+ originally ran configure with.
+
+ The cron jobs for Mailman 2.0 final have changed considerably,
+ including the frequency with which they run. You should reload
+ misc/crontab.in for the `mailman' user to get the right settings.
+ See the INSTALL file for details.
+
+ FAILURE TO DO THIS WILL RESULT IN A LESS THAN OPTIMALLY FUNCTIONAL
+ MAILMAN INSTALLATION.
+
+
+UPGRADING FROM 1.x to 2.x
+
+ In addition to the instructions above, I highly recommend that you
+ make sure your Mailman queue is cleared /before/ upgrading.
+
+ Mailman version 1.x had a cron script called run_queue which was
+ part of its bulk mailer. With Mailman 2.x there is no default
+ bulk mailer (it lets the MTA handle this), and it is currently
+ unknown what the effects of upgrading are on the run_queue script,
+ but I'll bet it's not good. :)
+
+ The way to make sure that your Mailman queue is empty is to look
+ in your $prefix/data directory. If you see any files that start
+ with "mm_q." you've still got messages waiting on the queue. You
+ can run $prefix/cron/run_queue by hand until the queue is cleared.
+ Multiple invocations of this script won't help though; they lock
+ each other out. Also, be warned that clearing the queue can take
+ a while and may cause a large load on your system (two reasons why
+ all this stuff has been redesigned in 2.x :).
+
+ You do not need to run "make update" if you are upgrading from
+ version 1.0 or 1.1 to version 2.0, since this is now run
+ automatically when you do a "make install". However you should
+ modify your crontab entries to execute cron/qrunner instead of
+ cron/run_queue. You can also safely remove the file
+ $prefix/cron/run_queue.
+
+ If you are upgrading from a pre-1.0 beta, you need to follow the
+ instructions below.
+
+
+UPGRADING FROM PRE-1.0 to 2.x
+
+ You need to do a few extra things to make sure that the file
+ system layout for the early 1.0 betas is upgraded to the 1.x
+ configuration. There are two ways to do this.
+
+ First, from the source directory, after you've done a "make
+ install" you can run "make update". "make update" creates a file
+ named "update.log" in the top level of the source distribution.
+ If the script that updates the Mailman filesystem encounters
+ something that is not resolvable, it will log info about this to
+ "update.log". This is worth checking after the upgrade completes.
+
+ You can also just change to the installation directory (i.e. $prefix)
+ and run bin/update. This is the same as above except that the
+ update.log file is not generated.
+
+ Check your crontab entry. Remove any runs of obsolete scripts, in
+ particular cron/upvolumes_yearly, cron/upvolumes_monthly, or
+ cron/archive.
+
+
+WHAT "MAKE UPDATE" DOES
+
+ Below is an annotated listing of the things that "make update"
+ does. Hopefully, this will help resolve any problems you are
+ having.
+
+ Note that it can't hurt to run "make update" each time you
+ upgrade, but if you're running version 1.0 or newer, it won't help
+ much either!
+
+ - To upgrade to 1.0b10, you will need to copy
+ templates/options.html to lists/<listname>/options.html for each
+ mailing list you have. However, if you have edited the
+ options.html file, say from the Web interface, you will have to
+ merge these changes in manually.
+
+ - The upgrade to 1.0b7 included the removal of
+ Mailman/smtplib.py{,c} since Mailman now uses the default Python
+ 1.5.2 version of smtplib.
+
+ - Archiving files are moved around as part of integrating
+ Pipermail into Mailman, as of 1.0b6. In particular,
+
+ 1) if a list has only a private mbox archive
+ $prefix/archives/private/<listname> is moved to
+ $prefix/archives/private/<listname>.mbox/<listname>
+
+ 2) if a list has only a public mbox archive
+ $prefix/archives/public/<listname> is moved to
+ $prefix/archives/private/<listname>.mbox/<listname>
+
+ and a symlink is made that points
+ $prefix/archives/public/<listname>.mbox to
+ $prefix/archives/private/<listname>.mbox/<listname>
+
+ 3) if a list has both private and public mbox archives,
+ make update picks one of the above 2 configurations based on
+ whether or not the list currently is archived publicly. It then
+ renames the other mbox to mbox.preb6.
+
+ 4) if a list used recent CVS sources, where archives were placed in
+ $prefix/public_html/archives, then these are moved to
+ $prefix/archives/private/<listname> and a symlink is made from
+ $prefix/archives/public/<listname> to that spot if the list's
+ archives are public. Also, a permissions-related security
+ problem is removed.
+
+ To integrate mbox archives of old lists, log in as user `mailman'
+ and run $prefix/bin/arch <listname> <path-to-mbox-archive>.
+
+ Also, by default, beta6 does both mbox and html based archiving,
+ but you can configure Mailman to do one, both, or neither.
+ Please see $prefix/Mailman/Defaults.py for details.
+
+ There was a short period of time when the CVS sources archiving
+ code was not organized into its own package. The pickled
+ articles in the archives that were placed into archives during
+ this period stored the path to the module HyperArch, but that
+ module has moved. You can quick fix this by running
+
+ ln -s $prefix/Mailman/Archiver/HyperArch.py \
+ $prefix/Mailman/HyperArch.py
+
+ - If upgrading from version 1.0b4 or earlier, "make update" moves
+ list-specific templates. For each list,
+ $prefix/templates/<listname>/* is moved to $prefix/lists/<listname>.
+ Please reference the generic templates in $prefix/templates to see
+ if any variables have changed (There shouldn't be many, only
+ options.html was updated from b5 to b6).
+
+ For really old versions of Mailman, you may not even have
+ <listname> subdirectories in $prefix/templates! In this case
+ you will need to manually copy some files into your new list
+ directories. Here's an example shell command that will do the
+ trick:
+
+ cp templates/{archives,handle_opts,listinfo,roster,subscribe}.html lists/<listname>
+
+ - Some modules that existed in previous versions, but that have
+ been replaced with newer (differently named) modules, are
+ removed.
+
+
+
+Local Variables:
+mode: indented-text
+indent-tabs-mode: nil
+End:
diff --git a/messages/it/LC_MESSAGES/mailman.mo b/messages/it/LC_MESSAGES/mailman.mo
new file mode 100644
index 00000000..e9d31835
--- /dev/null
+++ b/messages/it/LC_MESSAGES/mailman.mo
Binary files differ
diff --git a/messages/it/LC_MESSAGES/mailman.po b/messages/it/LC_MESSAGES/mailman.po
new file mode 100644
index 00000000..f1b3b120
--- /dev/null
+++ b/messages/it/LC_MESSAGES/mailman.po
@@ -0,0 +1,11800 @@
+# Mailman
+msgid ""
+msgstr ""
+"Project-Id-Version: Mailman 2.1\n"
+"POT-Creation-Date: Tue Dec 24 13:41:28 2002\n"
+"PO-Revision-Date: 2002-12-25 03:00GMT\n"
+"Last-Translator: Simone Piunno <pioppo@ferrara.linux.it>\n"
+"Language-Team: Italian <mailman-it@ferrara.linux.it>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 0.9.5\n"
+
+# /home/mailman/Mailman/MailCommandHandler.py:405
+#: Mailman/Archiver/HyperArch.py:112
+msgid "size not available"
+msgstr "dimensione non disponibile"
+
+#: Mailman/Archiver/HyperArch.py:118
+msgid " %(size)i bytes "
+msgstr " %(size)i byte "
+
+#: Mailman/Archiver/HyperArch.py:249 Mailman/Archiver/HyperArch.py:405
+#: Mailman/Archiver/HyperArch.py:963 Mailman/Archiver/HyperArch.py:1127
+msgid " at "
+msgstr " a "
+
+#: Mailman/Archiver/HyperArch.py:434
+msgid "Previous message:"
+msgstr "Messaggio precedente:"
+
+# /home/mailman/Mailman/Archiver/Archiver.py:134
+#: Mailman/Archiver/HyperArch.py:456
+msgid "Next message:"
+msgstr "Prossimo messaggio:"
+
+#: Mailman/Archiver/HyperArch.py:609 Mailman/Archiver/HyperArch.py:645
+msgid "thread"
+msgstr "thread"
+
+# /home/mailman/Mailman/Archiver/pipermail.py:95
+# /home/mailman/Mailman/Archiver/pipermail.py:96
+#: Mailman/Archiver/HyperArch.py:610 Mailman/Archiver/HyperArch.py:646
+msgid "subject"
+msgstr "soggetto"
+
+#: Mailman/Archiver/HyperArch.py:611 Mailman/Archiver/HyperArch.py:647
+msgid "author"
+msgstr "autore"
+
+#: Mailman/Archiver/HyperArch.py:612 Mailman/Archiver/HyperArch.py:648
+msgid "date"
+msgstr "data"
+
+#: Mailman/Archiver/HyperArch.py:684
+msgid "<P>Currently, there are no archives. </P>"
+msgstr "<P>Attualmente non ci sono archivi. </P>"
+
+#: Mailman/Archiver/HyperArch.py:721
+msgid "Gzip'd Text%(sz)s"
+msgstr "Testo zippato%(sz)s"
+
+#: Mailman/Archiver/HyperArch.py:726
+msgid "Text%(sz)s"
+msgstr "Testo%(sz)s"
+
+# /home/mailman/Mailman/Cgi/private.py:65
+# /home/mailman/Mailman/Cgi/private.py:77
+#: Mailman/Archiver/HyperArch.py:816
+msgid "figuring article archives\n"
+msgstr "cerco gli archivi per questo articolo\n"
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "April"
+msgstr "Aprile"
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "February"
+msgstr "Febbraio"
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "January"
+msgstr "Gennaio"
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "March"
+msgstr "Marzo"
+
+#: Mailman/Archiver/HyperArch.py:827
+msgid "August"
+msgstr "Agosto"
+
+#: Mailman/Archiver/HyperArch.py:827
+msgid "July"
+msgstr "Luglio"
+
+#: Mailman/Archiver/HyperArch.py:827
+msgid "June"
+msgstr "Giugno"
+
+#: Mailman/Archiver/HyperArch.py:827 Mailman/i18n.py:91
+msgid "May"
+msgstr "Maggio"
+
+# /home/mailman/Mailman/MailList.py:593
+#: Mailman/Archiver/HyperArch.py:828
+msgid "December"
+msgstr "Dicembre"
+
+# /home/mailman/Mailman/MailList.py:593
+#: Mailman/Archiver/HyperArch.py:828
+msgid "November"
+msgstr "Novembre"
+
+#: Mailman/Archiver/HyperArch.py:828
+msgid "October"
+msgstr "Ottobre"
+
+# /home/mailman/Mailman/MailList.py:593
+#: Mailman/Archiver/HyperArch.py:828
+msgid "September"
+msgstr "Settembre"
+
+# /home/mailman/Mailman/Cgi/admin.py:260
+# /home/mailman/Mailman/Cgi/listinfo.py:159
+# /home/mailman/Mailman/MailList.py:428
+#: Mailman/Archiver/HyperArch.py:836
+msgid "First"
+msgstr "Primo"
+
+#: Mailman/Archiver/HyperArch.py:836
+msgid "Fourth"
+msgstr "Quarto"
+
+#: Mailman/Archiver/HyperArch.py:836
+msgid "Second"
+msgstr "Secondo"
+
+# /home/mailman/Mailman/Cgi/admin.py:543
+#: Mailman/Archiver/HyperArch.py:836
+msgid "Third"
+msgstr "Terzo"
+
+#: Mailman/Archiver/HyperArch.py:838
+msgid "%(ord)s quarter %(year)i"
+msgstr "%(ord)s trimestre %(year)i"
+
+#: Mailman/Archiver/HyperArch.py:845
+msgid "%(month)s %(year)i"
+msgstr "%(month)s %(year)i"
+
+#: Mailman/Archiver/HyperArch.py:850
+msgid "The Week Of Monday %(day)i %(month)s %(year)i"
+msgstr "La settimana di Luned&igrave; %(day)i %(month)s %(year)i"
+
+#: Mailman/Archiver/HyperArch.py:854
+msgid "%(day)i %(month)s %(year)i"
+msgstr "%(day)i %(month)s %(year)i"
+
+#: Mailman/Archiver/HyperArch.py:951
+msgid "Computing threaded index\n"
+msgstr "Calcolo l'indice per thread\n"
+
+#: Mailman/Archiver/HyperArch.py:1206
+msgid "Updating HTML for article %(seq)s"
+msgstr "Aggiorno l'HTML per l'articolo %(seq)s"
+
+#: Mailman/Archiver/HyperArch.py:1213
+msgid "article file %(filename)s is missing!"
+msgstr "manca il file dell'articolo %(filename)s!"
+
+# /home/mailman/Mailman/Archiver/pipermail.py:95
+# /home/mailman/Mailman/Archiver/pipermail.py:96
+#: Mailman/Archiver/pipermail.py:168 Mailman/Archiver/pipermail.py:169
+msgid "No subject"
+msgstr "Senza oggetto"
+
+# /home/mailman/Mailman/Archiver/pipermail.py:170
+#: Mailman/Archiver/pipermail.py:269
+msgid "Creating archive directory "
+msgstr "Creo la directory per gli archivi "
+
+#: Mailman/Archiver/pipermail.py:281
+msgid "Reloading pickled archive state"
+msgstr "Ricarico lo stato dell'archivio"
+
+# /home/mailman/Mailman/Archiver/pipermail.py:204
+#: Mailman/Archiver/pipermail.py:308
+msgid "Pickling archive state into "
+msgstr "Salvo lo stato dell'archivio in "
+
+#: Mailman/Archiver/pipermail.py:419
+msgid "Updating index files for archive [%(archive)s]"
+msgstr "Aggiorno gli indici per l'archivio [%(archive)s]"
+
+#: Mailman/Archiver/pipermail.py:452
+msgid " Thread"
+msgstr " Argomento"
+
+#: Mailman/Archiver/pipermail.py:557
+msgid "#%(counter)05d %(msgid)s"
+msgstr "#%(counter)05d %(msgid)s"
+
+#: Mailman/Bouncer.py:44
+msgid "due to excessive bounces"
+msgstr "per troppi errori"
+
+#: Mailman/Bouncer.py:45
+msgid "by yourself"
+msgstr "per decisione tua"
+
+# /home/mailman/Mailman/HTMLFormatter.py:156
+#: Mailman/Bouncer.py:46
+msgid "by the list administrator"
+msgstr "dall'amministratore della lista"
+
+#: Mailman/Bouncer.py:47 Mailman/Bouncer.py:232
+#: Mailman/Commands/cmd_set.py:182
+msgid "for unknown reasons"
+msgstr "per qualche ragione ignota"
+
+#: Mailman/Bouncer.py:179
+msgid "disabled"
+msgstr "disabilitata"
+
+# /home/mailman/Mailman/Cgi/roster.py:72
+#: Mailman/Bouncer.py:184
+msgid "Bounce action notification"
+msgstr "Notifica errore"
+
+#: Mailman/Bouncer.py:239
+msgid " The last bounce received from you was dated %(date)s"
+msgstr " L'ultimo errore sul tuo indirizzo è datato %(date)s"
+
+# /home/mailman/Mailman/Archiver/pipermail.py:95
+# /home/mailman/Mailman/Archiver/pipermail.py:96
+#: Mailman/Bouncer.py:264 Mailman/Deliverer.py:126
+#: Mailman/Handlers/Acknowledge.py:44 Mailman/Handlers/CookHeaders.py:236
+#: Mailman/Handlers/Hold.py:214 Mailman/Handlers/Hold.py:249
+#: Mailman/Handlers/ToDigest.py:211 Mailman/ListAdmin.py:235
+msgid "(no subject)"
+msgstr "(senza oggetto)"
+
+# /home/mailman/Mailman/MailCommandHandler.py:426
+#: Mailman/Bouncer.py:266
+msgid "[No bounce details are available]"
+msgstr "[Non ci sono dettagli disponibili sugli errori]"
+
+#: Mailman/Cgi/Auth.py:46
+msgid "Moderator"
+msgstr "Moderatore"
+
+# /home/mailman/Mailman/HTMLFormatter.py:156
+#: Mailman/Cgi/Auth.py:48
+msgid "Administrator"
+msgstr "l'amministratore della lista"
+
+#: Mailman/Cgi/admin.py:70 Mailman/Cgi/admindb.py:89 Mailman/Cgi/confirm.py:55
+#: Mailman/Cgi/edithtml.py:67 Mailman/Cgi/listinfo.py:51
+#: Mailman/Cgi/options.py:71 Mailman/Cgi/private.py:98
+#: Mailman/Cgi/rmlist.py:64 Mailman/Cgi/roster.py:57
+#: Mailman/Cgi/subscribe.py:61
+msgid "No such list <em>%(safelistname)s</em>"
+msgstr "Non esiste la lista <em>%(safelistname)s</em>"
+
+#: Mailman/Cgi/admin.py:85 Mailman/Cgi/admindb.py:105
+#: Mailman/Cgi/edithtml.py:85 Mailman/Cgi/private.py:123
+msgid "Authorization failed."
+msgstr "Autenticazione fallita."
+
+#: Mailman/Cgi/admin.py:175
+msgid ""
+"You have turned off delivery of both digest and\n"
+" non-digest messages. This is an incompatible state of\n"
+" affairs. You must turn on either digest delivery or\n"
+" non-digest delivery or your mailing list will basically be\n"
+" unusable."
+msgstr ""
+"Hai disabilitato la distribuzione dei messaggi\n"
+" sia in modalit&agrave; digest che non. Questa &egrave; una\n"
+" situazione impossibile. Devi attivare almeno una\n"
+" modalit&agrave; di distribuzione o la tua lista sar&agrave;\n"
+" inutilizzabile."
+
+#: Mailman/Cgi/admin.py:179 Mailman/Cgi/admin.py:185 Mailman/Cgi/admin.py:190
+#: Mailman/Cgi/admin.py:1361 Mailman/Gui/GUIBase.py:184
+msgid "Warning: "
+msgstr "Attenzione: "
+
+#: Mailman/Cgi/admin.py:183
+msgid ""
+"You have digest members, but digests are turned\n"
+" off. Those people will not receive mail."
+msgstr ""
+"Hai degli iscritti in modalit&agrave; digest,\n"
+" ma il digest &egrave; disattivato. Quelle persone non\n"
+" riceveranno posta."
+
+#: Mailman/Cgi/admin.py:188
+msgid ""
+"You have regular list members but non-digestified mail is\n"
+" turned off. They will receive mail until you fix this\n"
+" problem."
+msgstr ""
+"Hai degli iscritti regolari ma le impostazioni della lista lo vietano.\n"
+" Essi riceveranno i messaggi normalmente finché non\n"
+" correggerai il problema."
+
+# /home/mailman/Mailman/Cgi/admin.py:197
+#: Mailman/Cgi/admin.py:212
+msgid "%(hostname)s mailing lists - Admin Links"
+msgstr "Liste di %(hostname)s - Amministrazione"
+
+# /home/mailman/Mailman/Cgi/admin.py:215
+# /home/mailman/Mailman/Cgi/listinfo.py:115
+#: Mailman/Cgi/admin.py:241 Mailman/Cgi/listinfo.py:97
+msgid "Welcome!"
+msgstr "Benvenuto!"
+
+#: Mailman/Cgi/admin.py:244 Mailman/Cgi/listinfo.py:100
+msgid "Mailman"
+msgstr "Mailman"
+
+#: Mailman/Cgi/admin.py:248
+msgid ""
+"<p>There currently are no publicly-advertised %(mailmanlink)s\n"
+" mailing lists on %(hostname)s."
+msgstr ""
+"<p>Attualmente non ci sono liste %(mailmanlink)s visibili al\n"
+" pubblico su %(hostname)s."
+
+#: Mailman/Cgi/admin.py:254
+msgid ""
+"<p>Below is the collection of publicly-advertised\n"
+" %(mailmanlink)s mailing lists on %(hostname)s. Click on a list\n"
+" name to visit the configuration pages for that list."
+msgstr ""
+"<p>Qui sotto c'&egrave; l'elenco delle liste %(mailmanlink)s visibili al "
+"pubblico\n"
+" su %(hostname)s. Clicca sul nome di\n"
+" una lista per visitare la relativa pagina di\n"
+" configurazione. "
+
+# /home/mailman/Mailman/Cgi/admin.py:242
+# /home/mailman/Mailman/Cgi/listinfo.py:143
+#: Mailman/Cgi/admin.py:261
+msgid "right "
+msgstr "destra "
+
+#: Mailman/Cgi/admin.py:263
+msgid ""
+"To visit the administrators configuration page for an\n"
+" unadvertised list, open a URL similar to this one, but with a '/' "
+"and\n"
+" the %(extra)slist name appended. If you have the proper authority,\n"
+" you can also <a href=\"%(creatorurl)s\">create a new mailing list</"
+"a>.\n"
+"\n"
+" <p>General list information can be found at "
+msgstr ""
+"Per visitare la pagina di configurazione per gli amministratori\n"
+" di una lista non pubblica, apri una URL simile a questa\n"
+" con una '/' e il %(extra)snome della lista aggiunti.\n"
+" Se hai gli opportuni permessi, puoi anche\n"
+" <a href=\"%(creatorurl)s\">creare una nuova lista</a>.\n"
+"\n"
+" <p>Informazioni generali sulle liste possono essere\n"
+" trovate alla "
+
+# /home/mailman/Mailman/Cgi/admin.py:247
+#: Mailman/Cgi/admin.py:270
+msgid "the mailing list overview page"
+msgstr "pagina di supervisione della lista"
+
+# /home/mailman/Mailman/Cgi/admin.py:249
+#: Mailman/Cgi/admin.py:272
+msgid "<p>(Send questions and comments to "
+msgstr "<p>(Manda domande o commenti a "
+
+# /home/mailman/Mailman/Cgi/admin.py:260
+# /home/mailman/Mailman/Cgi/listinfo.py:159
+# /home/mailman/Mailman/MailList.py:428
+#: Mailman/Cgi/admin.py:282 Mailman/Cgi/listinfo.py:132 cron/mailpasswds:179
+msgid "List"
+msgstr "Lista"
+
+# /home/mailman/Mailman/Cgi/admin.py:260
+# /home/mailman/Mailman/Cgi/admin.py:352
+# /home/mailman/Mailman/Cgi/listinfo.py:159
+#: Mailman/Cgi/admin.py:283 Mailman/Cgi/admin.py:549
+#: Mailman/Cgi/listinfo.py:133
+msgid "Description"
+msgstr "Descrizione"
+
+# /home/mailman/Mailman/MailCommandHandler.py:405
+#: Mailman/Cgi/admin.py:289 Mailman/Cgi/listinfo.py:139 bin/list_lists:116
+msgid "[no description available]"
+msgstr "[nessuna descrizione disponibile]"
+
+#: Mailman/Cgi/admin.py:322
+msgid "No valid variable name found."
+msgstr "Nessun nome di variabile valido trovato."
+
+# /home/mailman/Mailman/Cgi/admin.py:426
+#: Mailman/Cgi/admin.py:332
+msgid ""
+"%(realname)s Mailing list Configuration Help\n"
+" <br><em>%(varname)s</em> Option"
+msgstr ""
+"Aiuto per la configurazione della lista %(realname)s\n"
+" <br>Opzione <em>%(varname)s</em>"
+
+# /home/mailman/Mailman/Cgi/admin.py:431
+#: Mailman/Cgi/admin.py:339
+msgid "Mailman %(varname)s List Option Help"
+msgstr "Aiuto sulle Opzioni della lista %(varname)s"
+
+#: Mailman/Cgi/admin.py:357
+msgid ""
+"<em><strong>Warning:</strong> changing this option here\n"
+" could cause other screens to be out-of-sync. Be sure to reload any "
+"other\n"
+" pages that are displaying this option for this mailing list. You can "
+"also\n"
+" "
+msgstr ""
+"<em><strong>Attenzione:</strong> cambiare questa opzione\n"
+" pu&ograve; causare disallineamenti in altre schermate. Assicurati\n"
+" di ricaricare le pagine e di vuotare le cache. Puoi anche "
+
+#: Mailman/Cgi/admin.py:368
+msgid "return to the %(categoryname)s options page."
+msgstr "ritornare alla pagina di opzioni %(categoryname)s."
+
+#: Mailman/Cgi/admin.py:383
+msgid "%(realname)s Administration (%(label)s)"
+msgstr "Amministrazione di %(realname)s (%(label)s)"
+
+#: Mailman/Cgi/admin.py:384
+msgid "%(realname)s mailing list administration<br>%(label)s Section"
+msgstr "Amministrazione della lista %(realname)s<br>Sezione %(label)s"
+
+# /home/mailman/Mailman/Cgi/admin.py:281
+#: Mailman/Cgi/admin.py:400
+msgid "Configuration Categories"
+msgstr "Categorie di Configurazione"
+
+# /home/mailman/Mailman/Cgi/admin.py:282
+#: Mailman/Cgi/admin.py:401
+msgid "Other Administrative Activities"
+msgstr "Altre Attivit&agrave; Amministrative"
+
+#: Mailman/Cgi/admin.py:405
+msgid "Tend to pending moderator requests"
+msgstr "Controlla richieste amministrative pendenti"
+
+#: Mailman/Cgi/admin.py:407
+msgid "Go to the general list information page"
+msgstr "Vai alla pagina delle informazioni generali della lista"
+
+#: Mailman/Cgi/admin.py:409
+msgid "Edit the public HTML pages"
+msgstr "Modifica le pagine HTML pubbliche"
+
+#: Mailman/Cgi/admin.py:411
+msgid "Go to list archives"
+msgstr "Vai all'archivio della lista"
+
+# /home/mailman/Mailman/Deliverer.py:236
+#: Mailman/Cgi/admin.py:417
+msgid "Delete this mailing list"
+msgstr "Cancella questa lista"
+
+#: Mailman/Cgi/admin.py:418
+msgid " (requires confirmation)<br>&nbsp;<br>"
+msgstr " (richiede conferma)<br>&nbsp;<br>"
+
+#: Mailman/Cgi/admin.py:424
+msgid "Logout"
+msgstr "Chiudi"
+
+#: Mailman/Cgi/admin.py:468
+msgid "Emergency moderation of all list traffic is enabled"
+msgstr ""
+"La moderazione di emergenza per tutto il traffico della lista &egrave; "
+"abilitata"
+
+#: Mailman/Cgi/admin.py:479
+msgid ""
+"Make your changes in the following section, then submit them\n"
+" using the <em>Submit Your Changes</em> button below."
+msgstr ""
+"Fai le tue variazioni qui sotto e poi invia il tutto\n"
+" usando il pulsante <em>Applica le modifiche</em> in basso."
+
+#: Mailman/Cgi/admin.py:497
+msgid "Additional Member Tasks"
+msgstr "Altre azioni per gli iscritti"
+
+#: Mailman/Cgi/admin.py:503
+msgid ""
+"<li>Set everyone's moderation bit, including\n"
+" those members not currently visible"
+msgstr ""
+"<li>Attiva la moderazione per tutti gli iscritti, inclusi\n"
+" quelli attualmente non visualizzati"
+
+#: Mailman/Cgi/admin.py:507
+msgid "Off"
+msgstr "No"
+
+#: Mailman/Cgi/admin.py:507
+msgid "On"
+msgstr "S&igrave;"
+
+#: Mailman/Cgi/admin.py:509
+msgid "Set"
+msgstr "Attivo"
+
+# /home/mailman/Mailman/Cgi/admin.py:352
+#: Mailman/Cgi/admin.py:550
+msgid "Value"
+msgstr "Valore"
+
+# /home/mailman/Mailman/Cgi/admin.py:459
+#: Mailman/Cgi/admin.py:604
+msgid ""
+"Badly formed options entry:\n"
+" %(record)s"
+msgstr ""
+"Hai inserito le opzioni in modo inesatto:\n"
+" %(record)s"
+
+#: Mailman/Cgi/admin.py:662
+msgid "<em>Enter the text below, or...</em><br>"
+msgstr "<em>Inserisci il testo di seguito, o...</em><br>"
+
+#: Mailman/Cgi/admin.py:664
+msgid "<br><em>...specify a file to upload</em><br>"
+msgstr "<br><em>...specifica un file da inviare</em><br>"
+
+#: Mailman/Cgi/admin.py:690 Mailman/Cgi/admin.py:693
+msgid "Topic %(i)d"
+msgstr "Argomento %(i)d"
+
+#: Mailman/Cgi/admin.py:694
+msgid "Delete"
+msgstr "Cancella"
+
+#: Mailman/Cgi/admin.py:695
+msgid "Topic name:"
+msgstr "Nome argomento:"
+
+#: Mailman/Cgi/admin.py:697
+msgid "Regexp:"
+msgstr "Regexp:"
+
+# /home/mailman/Mailman/Cgi/admin.py:260
+# /home/mailman/Mailman/Cgi/admin.py:352
+# /home/mailman/Mailman/Cgi/listinfo.py:159
+#: Mailman/Cgi/admin.py:700 Mailman/Cgi/options.py:943
+msgid "Description:"
+msgstr "Descrizione:"
+
+#: Mailman/Cgi/admin.py:704
+msgid "Add new item..."
+msgstr "Aggiungi nuovo..."
+
+#: Mailman/Cgi/admin.py:706
+msgid "...before this one."
+msgstr "...prima di questo."
+
+#: Mailman/Cgi/admin.py:707
+msgid "...after this one."
+msgstr "...dopo di questo."
+
+#: Mailman/Cgi/admin.py:742
+msgid "<br>(Edit <b>%(varname)s</b>)"
+msgstr "<br>(Modifica <b>%(varname)s</b>)"
+
+#: Mailman/Cgi/admin.py:744
+msgid "<br>(Details for <b>%(varname)s</b>)"
+msgstr "<br>(Dettagli per <b>%(varname)s</b>)"
+
+#: Mailman/Cgi/admin.py:751
+msgid ""
+"<br><em><strong>Note:</strong>\n"
+" setting this value performs an immediate action but does not modify\n"
+" permanent state.</em>"
+msgstr ""
+"<br><em><strong>Nota:</strong>\n"
+" settare questo valore provoca un'azione immediata ma\n"
+" non modifica lo stato permanente.</em>"
+
+# /home/mailman/Mailman/Cgi/admindb.py:289
+#: Mailman/Cgi/admin.py:765
+msgid "Mass Subscriptions"
+msgstr "Iscrizione di massa"
+
+#: Mailman/Cgi/admin.py:772
+msgid "Mass Removals"
+msgstr "Rimozioni di massa"
+
+# /home/mailman/Mailman/Cgi/admin.py:529
+#: Mailman/Cgi/admin.py:779
+msgid "Membership List"
+msgstr "Elenco degli iscritti"
+
+#: Mailman/Cgi/admin.py:786
+msgid "(help)"
+msgstr "(aiuto)"
+
+#: Mailman/Cgi/admin.py:787
+msgid "Find member %(link)s:"
+msgstr "Trova iscritto %(link)s:"
+
+#: Mailman/Cgi/admin.py:790
+msgid "Search..."
+msgstr "Cerca..."
+
+#: Mailman/Cgi/admin.py:805
+msgid "Bad regular expression: "
+msgstr "Espressione regolare non valida: "
+
+#: Mailman/Cgi/admin.py:861
+msgid "%(allcnt)s members total, %(membercnt)s shown"
+msgstr "%(allcnt)s iscritti in totale, mostrati %(membercnt)s"
+
+#: Mailman/Cgi/admin.py:864
+msgid "%(allcnt)s members total"
+msgstr "%(allcnt)s iscritti in totale"
+
+#: Mailman/Cgi/admin.py:887
+msgid "unsub"
+msgstr "cancella"
+
+# /home/mailman/Mailman/Cgi/admin.py:542
+#: Mailman/Cgi/admin.py:888
+msgid "member address<br>member name"
+msgstr "indirizzo iscritto<br>nome iscritto"
+
+# /home/mailman/Mailman/Cgi/admin.py:543
+#: Mailman/Cgi/admin.py:889
+msgid "hide"
+msgstr "nascondi"
+
+#: Mailman/Cgi/admin.py:889
+msgid "mod"
+msgstr "moderato"
+
+#: Mailman/Cgi/admin.py:890
+msgid "nomail<br>[reason]"
+msgstr "nomail<br>[motivo]"
+
+# /home/mailman/Mailman/Cgi/admin.py:543
+#: Mailman/Cgi/admin.py:891
+msgid "ack"
+msgstr "conferma"
+
+# /home/mailman/Mailman/Cgi/admin.py:543
+#: Mailman/Cgi/admin.py:891
+msgid "not metoo"
+msgstr "non anche a me"
+
+#: Mailman/Cgi/admin.py:892
+msgid "nodupes"
+msgstr "no doppioni"
+
+# /home/mailman/Mailman/Digester.py:63
+#: Mailman/Cgi/admin.py:893
+msgid "digest"
+msgstr "digest"
+
+# /home/mailman/Mailman/Cgi/admin.py:544
+#: Mailman/Cgi/admin.py:893
+msgid "plain"
+msgstr "testo"
+
+# /home/mailman/Mailman/Cgi/admin.py:544
+#: Mailman/Cgi/admin.py:894
+msgid "language"
+msgstr "lingua"
+
+#: Mailman/Cgi/admin.py:905
+msgid "?"
+msgstr "?"
+
+#: Mailman/Cgi/admin.py:906
+msgid "U"
+msgstr "U"
+
+#: Mailman/Cgi/admin.py:907
+msgid "A"
+msgstr "A"
+
+#: Mailman/Cgi/admin.py:908
+msgid "B"
+msgstr "E"
+
+#: Mailman/Cgi/admin.py:979
+msgid "<b>unsub</b> -- Click on this to unsubscribe the member."
+msgstr "<b>cancella</b> -- clicca questo per cancellare l'iscritto"
+
+#: Mailman/Cgi/admin.py:981
+msgid ""
+"<b>mod</b> -- The user's personal moderation flag. If this is\n"
+" set, postings from them will be moderated, otherwise they will be\n"
+" approved."
+msgstr ""
+"<b>mod</b> -- Flag di moderazione per un utente. Se attivato,\n"
+" i messaggi provenienti da questo utente saranno sottoposti\n"
+" a moderazione, altrimenti saranno approvati."
+
+#: Mailman/Cgi/admin.py:985
+msgid ""
+"<b>hide</b> -- Is the member's address concealed on\n"
+" the list of subscribers?"
+msgstr ""
+"<b>nascondi</b> -- L'indirizzo &egrave; nascosto\n"
+" nella lista degli iscritti?"
+
+#: Mailman/Cgi/admin.py:987
+msgid ""
+"<b>nomail</b> -- Is delivery to the member disabled? If so, an\n"
+" abbreviation will be given describing the reason for the disabled\n"
+" delivery:\n"
+" <ul><li><b>U</b> -- Delivery was disabled by the user via their\n"
+" personal options page.\n"
+" <li><b>A</b> -- Delivery was disabled by the list\n"
+" administrators.\n"
+" <li><b>B</b> -- Delivery was disabled by the system due to\n"
+" excessive bouncing from the member's address.\n"
+" <li><b>?</b> -- The reason for disabled delivery isn't "
+"known.\n"
+" This is the case for all memberships which were "
+"disabled\n"
+" in older versions of Mailman.\n"
+" </ul>"
+msgstr ""
+"<b>no invii</b> -- Gli invii all'iscritto sono disabilitati? Se s&igrave;, "
+"viene\n"
+" data un'abbreviazione del motivo per cui l'invio &egrave stato\n"
+" disabilitato:\n"
+" <ul><li><b>U</b> -- L'invio &egrave; stato disabilitato "
+"dall'utente\n"
+" attraverso la pagina delle sue opzioni personali.\n"
+" <li><b>A</b> -- L'invio &egrave; stato disabilitato dagli \n"
+" amministratori della lista.\n"
+" <li><b>E</b> -- L'invio &egrave; stato disabilitato dal "
+"sistema\n"
+" a causa di un eccessivo numero di messaggi di errore \n"
+" sull'indirizzo dell'iscritto.\n"
+" <li><b>?</b> -- La ragione della disabilitazione &egrave; "
+"ignota.\n"
+" Questo succede quando gli iscritti sono stati "
+"disabilitati in\n"
+" una versione precedente di Mailman.\n"
+" </ul>"
+
+# /home/mailman/Mailman/Cgi/admin.py:617
+#: Mailman/Cgi/admin.py:1002
+msgid ""
+"<b>ack</b> -- Does the member get acknowledgements of their\n"
+" posts?"
+msgstr ""
+"<b>conferma</b> -- L'iscritto deve ricevere conferma dei messaggi che manda?"
+
+# /home/mailman/Mailman/Cgi/admin.py:619
+#: Mailman/Cgi/admin.py:1005
+msgid ""
+"<b>not metoo</b> -- Does the member want to avoid copies of their\n"
+" own postings?"
+msgstr ""
+"<b>non anche a me</b> -- L'iscritto deve NON ricevere una copia\n"
+" del messaggio che manda?"
+
+# /home/mailman/Mailman/Cgi/admin.py:619
+#: Mailman/Cgi/admin.py:1008
+msgid ""
+"<b>nodupes</b> -- Does the member want to avoid duplicates of the\n"
+" same message?"
+msgstr ""
+"<b>no doppioni</b> -- L'iscritto vuole evitare di ricevere duplicati\n"
+" dello stesso messaggio?"
+
+#: Mailman/Cgi/admin.py:1011
+msgid ""
+"<b>digest</b> -- Does the member get messages in digests?\n"
+" (otherwise, individual messages)"
+msgstr ""
+"<b>digest</b> -- L'iscritto riceve i messaggi in digest?\n"
+" (altrimenti, messaggi singoli)"
+
+#: Mailman/Cgi/admin.py:1014
+msgid ""
+"<b>plain</b> -- If getting digests, does the member get plain\n"
+" text digests? (otherwise, MIME)"
+msgstr ""
+"<b>testo</b> -- Quando in modo digest, l'iscritto deve ricevere\n"
+" dei digest in puro testo? (altrimenti MIME)"
+
+# /home/mailman/Mailman/Cgi/admin.py:628
+#: Mailman/Cgi/admin.py:1016
+msgid "<b>language</b> -- Language preferred by the user"
+msgstr "<b>lingua</b> -- Lingua preferita dall'utente"
+
+#: Mailman/Cgi/admin.py:1030
+msgid "Click here to hide the legend for this table."
+msgstr "Clicca qui per nascondere la legenda di questa tabella."
+
+#: Mailman/Cgi/admin.py:1034
+msgid "Click here to include the legend for this table."
+msgstr "Clicca qui per mostrare la legenda di questa tabella."
+
+#: Mailman/Cgi/admin.py:1041
+msgid ""
+"<p><em>To view more members, click on the appropriate\n"
+" range listed below:</em>"
+msgstr ""
+"<p><em>Per vedere altre sezioni, clicca sull'intervallo\n"
+" appropriato elencato pi&ugrave; in basso:</em>"
+
+# /home/mailman/Mailman/Cgi/admin.py:564
+#: Mailman/Cgi/admin.py:1050
+msgid "from %(start)s to %(end)s"
+msgstr "da %(start)s a %(end)s"
+
+#: Mailman/Cgi/admin.py:1063
+msgid "Subscribe these users now or invite them?"
+msgstr "Iscrivo questi utenti subito o mando loro un invito?"
+
+# /home/mailman/Mailman/Cgi/subscribe.py:127
+#: Mailman/Cgi/admin.py:1065
+msgid "Invite"
+msgstr "Invita"
+
+# /home/mailman/Mailman/Cgi/admindb.py:213
+#: Mailman/Cgi/admin.py:1065 Mailman/Cgi/listinfo.py:175
+msgid "Subscribe"
+msgstr "Iscrivi"
+
+# /home/mailman/Mailman/MailList.py:480
+#: Mailman/Cgi/admin.py:1071
+msgid "Send welcome messages to new subscribees?"
+msgstr "Invio un messaggio di benvenuto ai nuovi iscritti?"
+
+# /home/mailman/Mailman/Archiver/Archiver.py:133
+# /home/mailman/Mailman/Bouncer.py:64 /home/mailman/Mailman/Digester.py:58
+# /home/mailman/Mailman/Digester.py:74
+# /home/mailman/Mailman/GatewayManager.py:56
+# /home/mailman/Mailman/GatewayManager.py:59
+# /home/mailman/Mailman/MailList.py:441 /home/mailman/Mailman/MailList.py:452
+# /home/mailman/Mailman/MailList.py:476 /home/mailman/Mailman/MailList.py:479
+# /home/mailman/Mailman/MailList.py:487 /home/mailman/Mailman/MailList.py:497
+# /home/mailman/Mailman/MailList.py:500 /home/mailman/Mailman/MailList.py:585
+# /home/mailman/Mailman/MailList.py:599 /home/mailman/Mailman/MailList.py:611
+# /home/mailman/Mailman/MailList.py:614 /home/mailman/Mailman/MailList.py:642
+# /home/mailman/Mailman/MailList.py:699 /home/mailman/Mailman/MailList.py:707
+#: Mailman/Cgi/admin.py:1073 Mailman/Cgi/admin.py:1082
+#: Mailman/Cgi/admin.py:1115 Mailman/Cgi/admin.py:1123
+#: Mailman/Cgi/confirm.py:271 Mailman/Cgi/create.py:327
+#: Mailman/Cgi/create.py:355 Mailman/Cgi/create.py:395
+#: Mailman/Cgi/rmlist.py:228 Mailman/Gui/Archive.py:33
+#: Mailman/Gui/Autoresponse.py:54 Mailman/Gui/Autoresponse.py:62
+#: Mailman/Gui/Autoresponse.py:71 Mailman/Gui/Bounce.py:77
+#: Mailman/Gui/Bounce.py:108 Mailman/Gui/Bounce.py:134
+#: Mailman/Gui/Bounce.py:143 Mailman/Gui/ContentFilter.py:70
+#: Mailman/Gui/ContentFilter.py:103 Mailman/Gui/Digest.py:46
+#: Mailman/Gui/Digest.py:62 Mailman/Gui/Digest.py:84 Mailman/Gui/Digest.py:89
+#: Mailman/Gui/General.py:148 Mailman/Gui/General.py:154
+#: Mailman/Gui/General.py:232 Mailman/Gui/General.py:259
+#: Mailman/Gui/General.py:286 Mailman/Gui/General.py:297
+#: Mailman/Gui/General.py:300 Mailman/Gui/General.py:310
+#: Mailman/Gui/General.py:315 Mailman/Gui/General.py:325
+#: Mailman/Gui/General.py:345 Mailman/Gui/General.py:373
+#: Mailman/Gui/General.py:396 Mailman/Gui/NonDigest.py:44
+#: Mailman/Gui/NonDigest.py:52 Mailman/Gui/Privacy.py:101
+#: Mailman/Gui/Privacy.py:107 Mailman/Gui/Privacy.py:140
+#: Mailman/Gui/Privacy.py:188 Mailman/Gui/Privacy.py:296
+#: Mailman/Gui/Privacy.py:309 Mailman/Gui/Usenet.py:50
+#: Mailman/Gui/Usenet.py:54 Mailman/Gui/Usenet.py:91 Mailman/Gui/Usenet.py:103
+msgid "No"
+msgstr "No"
+
+# /home/mailman/Mailman/Archiver/Archiver.py:133
+# /home/mailman/Mailman/Bouncer.py:64 /home/mailman/Mailman/Digester.py:58
+# /home/mailman/Mailman/Digester.py:74
+# /home/mailman/Mailman/GatewayManager.py:56
+# /home/mailman/Mailman/GatewayManager.py:59
+# /home/mailman/Mailman/MailList.py:441 /home/mailman/Mailman/MailList.py:452
+# /home/mailman/Mailman/MailList.py:476 /home/mailman/Mailman/MailList.py:479
+# /home/mailman/Mailman/MailList.py:487 /home/mailman/Mailman/MailList.py:497
+# /home/mailman/Mailman/MailList.py:500 /home/mailman/Mailman/MailList.py:585
+# /home/mailman/Mailman/MailList.py:599 /home/mailman/Mailman/MailList.py:611
+# /home/mailman/Mailman/MailList.py:614 /home/mailman/Mailman/MailList.py:642
+# /home/mailman/Mailman/MailList.py:699 /home/mailman/Mailman/MailList.py:707
+#: Mailman/Cgi/admin.py:1073 Mailman/Cgi/admin.py:1082
+#: Mailman/Cgi/admin.py:1115 Mailman/Cgi/admin.py:1123
+#: Mailman/Cgi/confirm.py:271 Mailman/Cgi/create.py:327
+#: Mailman/Cgi/create.py:355 Mailman/Cgi/create.py:395
+#: Mailman/Cgi/rmlist.py:228 Mailman/Gui/Archive.py:33
+#: Mailman/Gui/Autoresponse.py:54 Mailman/Gui/Autoresponse.py:62
+#: Mailman/Gui/Bounce.py:77 Mailman/Gui/Bounce.py:108
+#: Mailman/Gui/Bounce.py:134 Mailman/Gui/Bounce.py:143
+#: Mailman/Gui/ContentFilter.py:70 Mailman/Gui/ContentFilter.py:103
+#: Mailman/Gui/Digest.py:46 Mailman/Gui/Digest.py:62 Mailman/Gui/Digest.py:84
+#: Mailman/Gui/Digest.py:89 Mailman/Gui/General.py:148
+#: Mailman/Gui/General.py:154 Mailman/Gui/General.py:232
+#: Mailman/Gui/General.py:259 Mailman/Gui/General.py:286
+#: Mailman/Gui/General.py:297 Mailman/Gui/General.py:300
+#: Mailman/Gui/General.py:310 Mailman/Gui/General.py:315
+#: Mailman/Gui/General.py:325 Mailman/Gui/General.py:345
+#: Mailman/Gui/General.py:373 Mailman/Gui/General.py:396
+#: Mailman/Gui/NonDigest.py:44 Mailman/Gui/NonDigest.py:52
+#: Mailman/Gui/Privacy.py:101 Mailman/Gui/Privacy.py:107
+#: Mailman/Gui/Privacy.py:140 Mailman/Gui/Privacy.py:188
+#: Mailman/Gui/Privacy.py:296 Mailman/Gui/Privacy.py:309
+#: Mailman/Gui/Usenet.py:50 Mailman/Gui/Usenet.py:54 Mailman/Gui/Usenet.py:91
+#: Mailman/Gui/Usenet.py:103
+msgid "Yes"
+msgstr "S&igrave;"
+
+#: Mailman/Cgi/admin.py:1080
+msgid "Send notifications of new subscriptions to the list owner?"
+msgstr "Invio una notifica dei nuovi iscritti al gestore della lista?"
+
+# /home/mailman/Mailman/Cgi/admin.py:650
+#: Mailman/Cgi/admin.py:1088 Mailman/Cgi/admin.py:1129
+msgid "Enter one address per line below..."
+msgstr "Inserisci un indirizzo per linea..."
+
+#: Mailman/Cgi/admin.py:1093 Mailman/Cgi/admin.py:1134
+msgid "...or specify a file to upload:"
+msgstr "...o specifica un file da inviare:"
+
+#: Mailman/Cgi/admin.py:1098
+msgid ""
+"Below, enter additional text to be added to the\n"
+" top of your invitation or the subscription notification. Include at "
+"least\n"
+" one blank line at the end..."
+msgstr ""
+"Inserisci un messaggio addizionale da aggiungere in testa\n"
+" ai tuoi inviti o nelle notifiche di iscrizione. Metti\n"
+" almeno una riga vuota al termine..."
+
+#: Mailman/Cgi/admin.py:1113
+msgid "Send unsubscription acknowledgement to the user?"
+msgstr "Invia conferma di cancellazione all'utente?"
+
+#: Mailman/Cgi/admin.py:1121
+msgid "Send notifications to the list owner?"
+msgstr "Invio una notifica al gestore della lista?"
+
+# /home/mailman/Mailman/Cgi/options.py:140
+#: Mailman/Cgi/admin.py:1143
+msgid "Change list ownership passwords"
+msgstr "Cambia la password del proprietario della lista"
+
+#: Mailman/Cgi/admin.py:1146
+msgid ""
+"The <em>list administrators</em> are the people who have ultimate control "
+"over\n"
+"all parameters of this mailing list. They are able to change any list\n"
+"configuration variable available through these administration web pages.\n"
+"\n"
+"<p>The <em>list moderators</em> have more limited permissions; they are not\n"
+"able to change any list configuration variable, but they are allowed to "
+"tend\n"
+"to pending administration requests, including approving or rejecting held\n"
+"subscription requests, and disposing of held postings. Of course, the\n"
+"<em>list administrators</em> can also tend to pending requests.\n"
+"\n"
+"<p>In order to split the list ownership duties into administrators and\n"
+"moderators, you must set a separate moderator password in the fields below,\n"
+"and also provide the email addresses of the list moderators in the\n"
+"<a href=\"%(adminurl)s/general\">general options section</a>."
+msgstr ""
+"Gli <em>amministratori di lista</em> sono le persone che hanno \n"
+"controllo completo su tutti i parametri di questa lista.\n"
+"Essi sono in grado di cambiare ogni variabile di configurazione che sia\n"
+"mostrata in queste pagine di amministrazione.\n"
+"\n"
+"<p>I <em>moderatori di lista</em> hanno capacit&agrave; molto\n"
+"pi&ugrave; limitate; essi non possono cambiare la configurazione\n"
+"della lista ma possono gestire le richieste amministrative pendenti,\n"
+"inclusi l'approvazione o il rifiuto delle richieste di iscrizione e\n"
+"la sorte dei messaggi trattenuti. Naturalmente questa operazione\n"
+"pu&ograve; essere svolta anche dagli <em>amministratori di lista</em>.\n"
+"\n"
+"<p>Per poter suddividere i compiti in modo adeguato, devi scegliere\n"
+"una password di moderatore separata e inserirla nel campo sottostante\n"
+"e inoltre devi fornire l'indirizzo email del moderatore nella \n"
+"<a href=\"%(adminurl)s/general\">sezione opzioni generali</a>."
+
+#: Mailman/Cgi/admin.py:1165
+msgid "Enter new administrator password:"
+msgstr "Inserisci la nuova password di amministratore:"
+
+#: Mailman/Cgi/admin.py:1167
+msgid "Confirm administrator password:"
+msgstr "Conferma la password di amministratore:"
+
+# /home/mailman/Mailman/Cgi/admin.py:669
+#: Mailman/Cgi/admin.py:1172
+msgid "Enter new moderator password:"
+msgstr "Inserisci la nuova password di moderatore:"
+
+# /home/mailman/Mailman/Cgi/admin.py:671
+#: Mailman/Cgi/admin.py:1174
+msgid "Confirm moderator password:"
+msgstr "Conferma la password di moderatore:"
+
+# /home/mailman/Mailman/Cgi/admin.py:681
+#: Mailman/Cgi/admin.py:1184
+msgid "Submit Your Changes"
+msgstr "Applica le modifiche"
+
+# /home/mailman/Mailman/Cgi/subscribe.py:144
+#: Mailman/Cgi/admin.py:1207
+msgid "Moderator passwords did not match"
+msgstr "Le password non sono identiche"
+
+# /home/mailman/Mailman/Cgi/subscribe.py:144
+#: Mailman/Cgi/admin.py:1217
+msgid "Administrator passwords did not match"
+msgstr "Le password di amministratore non sono identiche"
+
+# /home/mailman/Mailman/Cgi/admin.py:856
+#: Mailman/Cgi/admin.py:1265
+msgid "Already a member"
+msgstr "Gi&agrave; iscritto."
+
+#: Mailman/Cgi/admin.py:1268
+msgid "&lt;blank line&gt;"
+msgstr "&lt;riga vuota&gt;"
+
+# /home/mailman/Mailman/Cgi/admin.py:861
+#: Mailman/Cgi/admin.py:1269 Mailman/Cgi/admin.py:1272
+msgid "Bad/Invalid email address"
+msgstr "Indirizzo email errato/non valido"
+
+# /home/mailman/Mailman/Cgi/admin.py:864
+#: Mailman/Cgi/admin.py:1275
+msgid "Hostile address (illegal characters)"
+msgstr "Indirizzo errato (caratteri non permessi)"
+
+# /home/mailman/Mailman/Cgi/admin.py:866
+#: Mailman/Cgi/admin.py:1281
+msgid "Successfully invited:"
+msgstr "Invitati con successo:"
+
+# /home/mailman/Mailman/Cgi/admin.py:866
+#: Mailman/Cgi/admin.py:1283
+msgid "Successfully subscribed:"
+msgstr "Iscritti con successo:"
+
+#
+# /home/mailman/Mailman/Cgi/admin.py:928
+#: Mailman/Cgi/admin.py:1288
+msgid "Error inviting:"
+msgstr "Errore durante l'invio dell'invito:"
+
+#
+# /home/mailman/Mailman/Cgi/admin.py:928
+#: Mailman/Cgi/admin.py:1290
+msgid "Error subscribing:"
+msgstr "Errore durante l'iscrizione:"
+
+# /home/mailman/Mailman/Cgi/admin.py:866
+#: Mailman/Cgi/admin.py:1319
+msgid "Successfully Unsubscribed:"
+msgstr "Cancellati con successo:"
+
+# /home/mailman/Mailman/Cgi/admin.py:633
+#: Mailman/Cgi/admin.py:1324
+msgid "Cannot unsubscribe non-members:"
+msgstr "Non posso cancellare non iscritti:"
+
+#: Mailman/Cgi/admin.py:1336
+msgid "Bad moderation flag value"
+msgstr "Valore errato per il flag di moderazione"
+
+# /home/mailman/Mailman/Cgi/admin.py:894
+#: Mailman/Cgi/admin.py:1357
+msgid "Not subscribed"
+msgstr "Non iscritto"
+
+#: Mailman/Cgi/admin.py:1360
+msgid "Ignoring changes to deleted member: %(user)s"
+msgstr "Ignoro i cambiamenti per l'ex-iscritto: %(user)s"
+
+# /home/mailman/Mailman/Cgi/admin.py:866
+#: Mailman/Cgi/admin.py:1400
+msgid "Successfully Removed:"
+msgstr "Rimosso con successo:"
+
+#
+# /home/mailman/Mailman/Cgi/admin.py:928
+#: Mailman/Cgi/admin.py:1404
+msgid "Error Unsubscribing:"
+msgstr "Errore durante la cancellazione:"
+
+#: Mailman/Cgi/admindb.py:159 Mailman/Cgi/admindb.py:167
+msgid "%(realname)s Administrative Database"
+msgstr "Pannello di controllo di %(realname)s"
+
+#: Mailman/Cgi/admindb.py:162
+msgid "%(realname)s Administrative Database Results"
+msgstr "Risultati del pannello di controllo di %(realname)s"
+
+#: Mailman/Cgi/admindb.py:170
+msgid "There are no pending requests."
+msgstr "Non ci sono richieste in attesa."
+
+#: Mailman/Cgi/admindb.py:173
+msgid "Click here to reload this page."
+msgstr "Clicca qui per ricaricare la pagina."
+
+#: Mailman/Cgi/admindb.py:184
+msgid "Detailed instructions for the administrative database"
+msgstr "Istruzioni dettagliate per il database amministrativo"
+
+# /home/mailman/Mailman/Cgi/admindb.py:262
+#: Mailman/Cgi/admindb.py:188
+msgid "Administrative requests for mailing list:"
+msgstr "Richiesta amministrativa per la lista:"
+
+# /home/mailman/Mailman/Cgi/admindb.py:226
+# /home/mailman/Mailman/Cgi/admindb.py:302
+#: Mailman/Cgi/admindb.py:191 Mailman/Cgi/admindb.py:234
+msgid "Submit All Data"
+msgstr "Manda tutto"
+
+#: Mailman/Cgi/admindb.py:204
+msgid "all of %(esender)s's held messages."
+msgstr "tutti i messaggi di %(esender)s che sono stati trattenuti."
+
+#: Mailman/Cgi/admindb.py:209
+msgid "a single held message."
+msgstr "un singolo messaggio trattenuto."
+
+#: Mailman/Cgi/admindb.py:214
+msgid "all held messages."
+msgstr "tutti i messaggi trattenuti."
+
+# /home/mailman/Mailman/Cgi/admindb.py:44
+# /home/mailman/Mailman/Cgi/admindb.py:53
+#: Mailman/Cgi/admindb.py:249
+msgid "Mailman Administrative Database Error"
+msgstr "Errore nel database amministrativo di Mailman"
+
+# /home/mailman/Mailman/Cgi/listinfo.py:88
+#: Mailman/Cgi/admindb.py:254
+msgid "list of available mailing lists."
+msgstr "elenco delle liste disponibili."
+
+# /home/mailman/Mailman/Cgi/admindb.py:46
+# /home/mailman/Mailman/Cgi/admindb.py:54
+# /home/mailman/Mailman/Cgi/private.py:66
+# /home/mailman/Mailman/Cgi/private.py:78
+#: Mailman/Cgi/admindb.py:255
+msgid "You must specify a list name. Here is the %(link)s"
+msgstr "Devi indicare una lista. Qui c'&egrave; il %(link)s"
+
+# /home/mailman/Mailman/Cgi/admindb.py:289
+#: Mailman/Cgi/admindb.py:268
+msgid "Subscription Requests"
+msgstr "Richieste di iscrizione"
+
+# /home/mailman/Mailman/Cgi/admin.py:542
+#: Mailman/Cgi/admindb.py:270
+msgid "Address/name"
+msgstr "Indirizzo/nome"
+
+# /home/mailman/Mailman/Cgi/admindb.py:293
+#: Mailman/Cgi/admindb.py:271 Mailman/Cgi/admindb.py:320
+msgid "Your decision"
+msgstr "La tua decisione"
+
+#: Mailman/Cgi/admindb.py:272 Mailman/Cgi/admindb.py:321
+msgid "Reason for refusal"
+msgstr "Motivo del rifiuto"
+
+#: Mailman/Cgi/admindb.py:289 Mailman/Cgi/admindb.py:346
+#: Mailman/Cgi/admindb.py:389 Mailman/Cgi/admindb.py:612
+msgid "Defer"
+msgstr "Rimando la decisione"
+
+# /home/mailman/Mailman/Cgi/admindb.py:225
+#: Mailman/Cgi/admindb.py:290 Mailman/Cgi/admindb.py:347
+#: Mailman/Cgi/admindb.py:612
+msgid "Approve"
+msgstr "Approvo"
+
+# /home/mailman/Mailman/Cgi/admindb.py:225
+#: Mailman/Cgi/admindb.py:291 Mailman/Cgi/admindb.py:348
+#: Mailman/Cgi/admindb.py:389 Mailman/Cgi/admindb.py:612
+#: Mailman/Gui/ContentFilter.py:37 Mailman/Gui/Privacy.py:207
+#: Mailman/Gui/Privacy.py:281
+msgid "Reject"
+msgstr "Rigetta"
+
+#: Mailman/Cgi/admindb.py:292 Mailman/Cgi/admindb.py:349
+#: Mailman/Cgi/admindb.py:389 Mailman/Cgi/admindb.py:612
+#: Mailman/Gui/ContentFilter.py:37 Mailman/Gui/Privacy.py:207
+#: Mailman/Gui/Privacy.py:281
+msgid "Discard"
+msgstr "Scarta"
+
+# /home/mailman/Mailman/MailList.py:380
+#: Mailman/Cgi/admindb.py:300
+msgid "Permanently ban from this list"
+msgstr "Permanentemente interdetto da questa lista."
+
+# /home/mailman/Mailman/Cgi/admin.py:542
+#: Mailman/Cgi/admindb.py:319
+msgid "User address/name"
+msgstr "Indirizzo/nome utente"
+
+# /home/mailman/Mailman/Cgi/admindb.py:289
+#: Mailman/Cgi/admindb.py:359
+msgid "Unsubscription Requests"
+msgstr "Richieste di cancellazione"
+
+# /home/mailman/Mailman/Cgi/subscribe.py:129
+#: Mailman/Cgi/admindb.py:382 Mailman/Cgi/admindb.py:596
+msgid "From:"
+msgstr "Da:"
+
+#: Mailman/Cgi/admindb.py:385
+msgid "Action to take on all these held messages:"
+msgstr "Azione da intraprendere su tutti questi messaggi sospesi:"
+
+#: Mailman/Cgi/admindb.py:389 Mailman/Gui/Privacy.py:281
+msgid "Accept"
+msgstr "Accetto"
+
+#: Mailman/Cgi/admindb.py:397
+msgid "Preserve messages for the site administrator"
+msgstr "Conserva i messaggi per l'amministratore di Mailman"
+
+#: Mailman/Cgi/admindb.py:403
+msgid "Forward messages (individually) to:"
+msgstr "Inoltra i messaggi (uno per volta) a:"
+
+#: Mailman/Cgi/admindb.py:421
+msgid "Clear this member's <em>moderate</em> flag"
+msgstr "Togli l'opzione <em>moderato</em> a questo iscritto"
+
+#: Mailman/Cgi/admindb.py:425
+msgid "<em>The sender is now a member of this list</em>"
+msgstr "<em>Il mittente ora &egrave; un iscritto di questa lista</em>"
+
+#: Mailman/Cgi/admindb.py:434
+msgid "Add <b>%(esender)s</b> to a sender filter"
+msgstr "Aggiungi <b>%(esender)s</b> ad un filtro mittenti"
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Accepts"
+msgstr "Accetta"
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Discards"
+msgstr "Scarta"
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Holds"
+msgstr "Sospendi"
+
+# /home/mailman/Mailman/Cgi/admindb.py:225
+#: Mailman/Cgi/admindb.py:439
+msgid "Rejects"
+msgstr "Rigetta"
+
+#: Mailman/Cgi/admindb.py:448
+msgid ""
+"Ban <b>%(esender)s</b> from ever subscribing to this\n"
+" mailing list"
+msgstr "Vieta a <b>%(esender)s</b> di iscriversi a questa lista"
+
+#: Mailman/Cgi/admindb.py:453
+msgid ""
+"Click on the message number to view the individual\n"
+" message, or you can "
+msgstr ""
+"Clicca sul numero di un messaggio per vederlo,\n"
+" oppure puoi "
+
+#: Mailman/Cgi/admindb.py:455
+msgid "view all messages from %(esender)s"
+msgstr "vedere tutti i messaggi inviati da %(esender)s"
+
+# /home/mailman/Mailman/Archiver/pipermail.py:95
+# /home/mailman/Mailman/Archiver/pipermail.py:96
+#: Mailman/Cgi/admindb.py:475 Mailman/Cgi/admindb.py:599
+msgid "Subject:"
+msgstr "Oggetto:"
+
+# /home/mailman/Mailman/Cgi/admin.py:649
+#: Mailman/Cgi/admindb.py:478
+msgid " bytes"
+msgstr " bytes"
+
+#: Mailman/Cgi/admindb.py:478
+msgid "Size:"
+msgstr "Dimensione:"
+
+# /home/mailman/Mailman/MailCommandHandler.py:405
+#: Mailman/Cgi/admindb.py:482 Mailman/Handlers/Decorate.py:50
+#: Mailman/Handlers/Scrubber.py:226 Mailman/Handlers/Scrubber.py:227
+msgid "not available"
+msgstr "non disponibile"
+
+#: Mailman/Cgi/admindb.py:483 Mailman/Cgi/admindb.py:601
+msgid "Reason:"
+msgstr "Motivo:"
+
+#: Mailman/Cgi/admindb.py:487 Mailman/Cgi/admindb.py:605
+msgid "Received:"
+msgstr "Ricevuto:"
+
+#: Mailman/Cgi/admindb.py:545
+msgid "Posting Held for Approval"
+msgstr "Messaggio sospeso per approvazione"
+
+#: Mailman/Cgi/admindb.py:547
+msgid " (%(count)d of %(total)d)"
+msgstr " (%(count)d di %(total)d)"
+
+#: Mailman/Cgi/admindb.py:558
+msgid "<em>Message with id #%(id)d was lost."
+msgstr "<em>Il messaggio con id #%(id)d &egrave; andato perso."
+
+#: Mailman/Cgi/admindb.py:567
+msgid "<em>Message with id #%(id)d is corrupted."
+msgstr "<em>Il messaggio con identificativo #%(id)d &egrave; rovinato."
+
+# /home/mailman/Mailman/MailCommandHandler.py:405
+#: Mailman/Cgi/admindb.py:618
+msgid "Action:"
+msgstr "Azione:"
+
+#: Mailman/Cgi/admindb.py:622
+msgid "Preserve message for site administrator"
+msgstr "Conserva il messaggio per l'amministratore"
+
+#: Mailman/Cgi/admindb.py:626
+msgid "Additionally, forward this message to: "
+msgstr "In aggiunta, inoltra questo messaggio a: "
+
+#: Mailman/Cgi/admindb.py:630
+msgid "[No explanation given]"
+msgstr "[Non sono state fornite motivazioni]"
+
+#: Mailman/Cgi/admindb.py:632
+msgid "If you reject this post,<br>please explain (optional):"
+msgstr "Se rigetti questo messaggio,<br>spiega, se vuoi, il motivo:"
+
+#: Mailman/Cgi/admindb.py:638
+msgid "Message Headers:"
+msgstr "Intestazione del messaggio:"
+
+# /home/mailman/Mailman/Digester.py:176
+#: Mailman/Cgi/admindb.py:643
+msgid "Message Excerpt:"
+msgstr "Estratto del messaggio:"
+
+# /home/mailman/Mailman/ListAdmin.py:210
+#: Mailman/Cgi/admindb.py:676 Mailman/Deliverer.py:124
+msgid "No reason given"
+msgstr "Nessuna motivazione fornita"
+
+# /home/mailman/Mailman/ListAdmin.py:210
+#: Mailman/Cgi/admindb.py:737 Mailman/ListAdmin.py:308
+#: Mailman/ListAdmin.py:429
+msgid "[No reason given]"
+msgstr "[Nessuna motivazione fornita]"
+
+# /home/mailman/Mailman/Cgi/admindb.py:207
+#: Mailman/Cgi/admindb.py:766
+msgid "Database Updated..."
+msgstr "Database Aggiornato..."
+
+#: Mailman/Cgi/admindb.py:769
+msgid " is already a member"
+msgstr " &egrave; gi&agrave; iscritto"
+
+#: Mailman/Cgi/confirm.py:69
+msgid "Confirmation string was empty."
+msgstr "La stringa di conferma era vuota."
+
+#: Mailman/Cgi/confirm.py:89
+msgid ""
+"<b>Invalid confirmation string:</b>\n"
+" %(safecookie)s.\n"
+"\n"
+" <p>Note that confirmation strings expire approximately\n"
+" %(days)s days after the initial subscription request. If your\n"
+" confirmation has expired, please try to re-submit your subscription.\n"
+" Otherwise, <a href=\"%(confirmurl)s\">re-enter</a> your confirmation\n"
+" string."
+msgstr ""
+"<b>Stringa di conferma non valida:</b>\n"
+" %(safecookie)s.\n"
+"\n"
+" <p>Nota che le stringhe di convalida scadono\n"
+" approssimativamente dopo %(days)s dalla richiesta iniziale.\n"
+" Se la tua richiesta &egrave; scaduta per favore ripeti la\n"
+" procedura da capo. Altrimenti\n"
+" <a href=\"%(confirmurl)s\">reinserisci</a> la tua stringa\n"
+" di conferma."
+
+#: Mailman/Cgi/confirm.py:122
+msgid ""
+"The address requesting unsubscription is not\n"
+" a member of the mailing list. Perhaps you have already "
+"been\n"
+" unsubscribed, e.g. by the list administrator?"
+msgstr ""
+"L'indirizzo di cui chiedi la cancellazione non &egrave; "
+"presente tra gli iscritti alla lista. Forse sei "
+"gi&agrave; stato cancellato, ad esempio dall'amministratore? "
+
+#: Mailman/Cgi/confirm.py:138
+msgid ""
+"The address requesting to be changed has\n"
+" been subsequently unsubscribed. This request has been\n"
+" cancelled."
+msgstr ""
+"L'indirizzo per cui &egrave; stata chiesta modifica\n"
+" &egrave; stato cancellato dalla lista. Questa richiesta\n"
+" &egrave; stata ignorata."
+
+#: Mailman/Cgi/confirm.py:157
+msgid "System error, bad content: %(content)s"
+msgstr "Errore di sistema, contenuto non valido: %(content)s"
+
+#: Mailman/Cgi/confirm.py:167
+msgid "Bad confirmation string"
+msgstr "Stringa di conferma non valida"
+
+#: Mailman/Cgi/confirm.py:175
+msgid "Enter confirmation cookie"
+msgstr "Inserisci il cookie di conferma"
+
+#: Mailman/Cgi/confirm.py:188
+msgid ""
+"Please enter the confirmation string\n"
+" (i.e. <em>cookie</em>) that you received in your email message, in the "
+"box\n"
+" below. Then hit the <em>Submit</em> button to proceed to the next\n"
+" confirmation step."
+msgstr ""
+"Per favore inserisci nel riquadro sottostante la stringa di conferma\n"
+" (il <em>codice</em>) che hai ricevuto nell'email. Quindi premi\n"
+" il pulsante <em>Esegui</em> per procedere al prossimo passo."
+
+#: Mailman/Cgi/confirm.py:193
+msgid "Confirmation string:"
+msgstr "Stringa di convalida:"
+
+#: Mailman/Cgi/confirm.py:195
+msgid "Submit"
+msgstr "Esegui"
+
+# /home/mailman/Mailman/Cgi/admindb.py:289
+#: Mailman/Cgi/confirm.py:210
+msgid "Confirm subscription request"
+msgstr "Richieste di iscrizione"
+
+#: Mailman/Cgi/confirm.py:227
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" subscription request to the mailing list <em>%(listname)s</em>. Your\n"
+" subscription settings are shown below; make any necessary changes and "
+"hit\n"
+" <em>Subscribe</em> to complete the confirmation process. Once you've\n"
+" confirmed your subscription request, you will be shown your account\n"
+" options page which you can use to further customize your membership\n"
+" options.\n"
+"\n"
+" <p>Note: your password will be emailed to you once your subscription is\n"
+" confirmed. You can change it by visiting your personal options page.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this subscription\n"
+" request."
+msgstr ""
+"La tua conferma &egrave; richiesta per poter completare la procedura\n"
+" di iscrizione alla lista <em>%(listname)s</em>. I parametri\n"
+" della tua iscrizione sono mostrati qui in basso; esegui ogni\n"
+" modifica che ritieni necessaria e quindi premi <em>Iscrivimi</em>\n"
+" per completare la procedura. Una volta ricevuta la tua conferma,\n"
+" ti verr&agrave; mostrata la pagina delle opzioni per la tua\n"
+" iscrizione, dove potrai personalizzare il tuo profilo.\n"
+"\n"
+" <p>Nota: la tua password ti sar&agrave; inviata per email\n"
+" quando l'iscrizione sar&agrave; confermata. Puoi cambiarla\n"
+" visitando la pagina delle tue opzioni personali.\n"
+"\n"
+" <p>Oppure clicca <em>Cancella e scarta</em> per cancellare\n"
+" questa richiesta."
+
+#: Mailman/Cgi/confirm.py:242
+msgid ""
+"Your confirmation is required in order to continue with\n"
+" the subscription request to the mailing list <em>%(listname)s</em>.\n"
+" Your subscription settings are shown below; make any necessary "
+"changes\n"
+" and hit <em>Subscribe to list ...</em> to complete the confirmation\n"
+" process. Once you've confirmed your subscription request, the\n"
+" moderator must approve or reject your membership request. You will\n"
+" receive notice of their decision.\n"
+"\n"
+" <p>Note: your password will be emailed to you once your "
+"subscription\n"
+" is confirmed. You can change it by visiting your personal options\n"
+" page.\n"
+"\n"
+" <p>Or, if you've changed your mind and do not want to subscribe to\n"
+" this mailing list, you can hit <em>Cancel my subscription\n"
+" request</em>."
+msgstr ""
+"La tua conferma &egrave; richiesta per poter completare la procedura\n"
+" di iscrizione alla lista <em>%(listname)s</em>. I parametri\n"
+" della tua iscrizione sono mostrati qui in basso; esegui ogni\n"
+" modifica che ritieni necessaria e quindi premi <em>Iscrivimi</em>\n"
+" per completare la procedura. Una volta che avrai confermato la\n"
+" tua richiesta, il moderatore dovr&agrave; approvarla o respingerla.\n"
+" Riceverai una notifica della sua decisione.\n"
+"\n"
+" <p>Nota: la tua password ti sar&agrave; inviata per email\n"
+" quando l'iscrizione sar&agrave; confermata. Puoi cambiarla\n"
+" visitando la pagina delle tue opzioni personali.\n"
+"\n"
+" <p>Oppure clicca <em>Cancella la mia richiesta di iscrizione</em>\n"
+" per cancellare questa richiesta."
+
+# /home/mailman/Mailman/Cgi/subscribe.py:94
+#: Mailman/Cgi/confirm.py:260
+msgid "Your email address:"
+msgstr "Il tuo indirizzo email:"
+
+#: Mailman/Cgi/confirm.py:261
+msgid "Your real name:"
+msgstr "Il tuo vero nome:"
+
+#: Mailman/Cgi/confirm.py:270
+msgid "Receive digests?"
+msgstr "Vuoi ricevere in modo digest?"
+
+#: Mailman/Cgi/confirm.py:279
+msgid "Preferred language:"
+msgstr "Lingua preferita:"
+
+# /home/mailman/Mailman/Cgi/admindb.py:289
+#: Mailman/Cgi/confirm.py:284
+msgid "Cancel my subscription request"
+msgstr "Cancella la mia richiesta di iscrizione"
+
+#: Mailman/Cgi/confirm.py:285
+msgid "Subscribe to list %(listname)s"
+msgstr "Iscrivimi a %(listname)s"
+
+# /home/mailman/Mailman/Cgi/handle_opts.py:242
+#: Mailman/Cgi/confirm.py:295
+msgid "You have canceled your subscription request."
+msgstr "Hai cancellato la tua richiesta di iscrizione."
+
+#: Mailman/Cgi/confirm.py:329
+msgid "Awaiting moderator approval"
+msgstr "Messaggio sospeso per approvazione"
+
+#: Mailman/Cgi/confirm.py:332
+msgid ""
+" You have successfully confirmed your subscription request to "
+"the\n"
+" mailing list %(listname)s, however final approval is required "
+"from\n"
+" the list moderator before you will be subscribed. Your request\n"
+" has been forwarded to the list moderator, and you will be "
+"notified\n"
+" of the moderator's decision."
+msgstr ""
+" Hai confermato correttamente la tua iscrizione alla lista\n"
+" %(listname)s, ma &egrave; ancora richiesta l'approvazione\n"
+" finale del moderatore della lista. Sarai informato sulla\n"
+" decisione del moderatore."
+
+#: Mailman/Cgi/confirm.py:339 Mailman/Cgi/confirm.py:394
+#: Mailman/Cgi/confirm.py:482 Mailman/Cgi/confirm.py:705
+msgid ""
+"Invalid confirmation string. It is\n"
+" possible that you are attempting to confirm a request for an\n"
+" address that has already been unsubscribed."
+msgstr ""
+"Stringa di conferma non valida. &Egrave; possibile\n"
+" che tu stia provando a confermare la cancellazione per un\n"
+" indirizzo che &egrave; gi&agrave; stato cancellato."
+
+# /home/mailman/Mailman/Deliverer.py:242
+#: Mailman/Cgi/confirm.py:343
+msgid "You are already a member of this mailing list!"
+msgstr "Sei gi&agrave; un membro di questa lista!"
+
+# /home/mailman/Mailman/Cgi/admindb.py:289
+#: Mailman/Cgi/confirm.py:350
+msgid "Subscription request confirmed"
+msgstr "Richiesta di iscrizione confermata"
+
+#: Mailman/Cgi/confirm.py:354
+msgid ""
+" You have successfully confirmed your subscription request for\n"
+" \"%(addr)s\" to the %(listname)s mailing list. A separate\n"
+" confirmation message will be sent to your email address, along\n"
+" with your password, and other useful information and links.\n"
+"\n"
+" <p>You can now\n"
+" <a href=\"%(optionsurl)s\">proceed to your membership login\n"
+" page</a>."
+msgstr ""
+" Hai confermato correttamente la tua richiesta di iscrizione\n"
+" per l'indirizzo \"%(addr)s\" alla lista %(listname)s. Una\n"
+" conferma separata sar&agrave; inviata al tuo indirizzo\n"
+" email, insieme alla tua password, ad altri utili link e\n"
+" informazioni.\n"
+"\n"
+" <p>Ora puoi\n"
+" <a href=\"%(optionsurl)s\">procedere nella tua pagina di\n"
+" login</a>."
+
+# /home/mailman/Mailman/Cgi/handle_opts.py:242
+#: Mailman/Cgi/confirm.py:372
+msgid "You have canceled your unsubscription request."
+msgstr "Hai cancellato la tua richiesta di cancellazione."
+
+# /home/mailman/Mailman/Cgi/admindb.py:289
+#: Mailman/Cgi/confirm.py:400
+msgid "Unsubscription request confirmed"
+msgstr "Richiesta di cancellazione confermata"
+
+#: Mailman/Cgi/confirm.py:404
+msgid ""
+" You have successfully unsubscribed from the %(listname)s "
+"mailing\n"
+" list. You can now <a href=\"%(listinfourl)s\">visit the list's "
+"main\n"
+" information page</a>."
+msgstr ""
+" Ti sei cancellato con successo dalla lista %(listname)s.\n"
+" Ora puoi <a href=\"%(listinfourl)s\">visitare la pagina\n"
+" di informazioni principale</a>."
+
+# /home/mailman/Mailman/Cgi/admindb.py:289
+#: Mailman/Cgi/confirm.py:415
+msgid "Confirm unsubscription request"
+msgstr "Richiesta di conferma di cancellazione"
+
+#: Mailman/Cgi/confirm.py:430 Mailman/Cgi/confirm.py:519
+msgid "<em>Not available</em>"
+msgstr "<em>Non disponibile</em>"
+
+#: Mailman/Cgi/confirm.py:433
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" unsubscription request from the mailing list <em>%(listname)s</em>. "
+"You\n"
+" are currently subscribed with\n"
+"\n"
+" <ul><li><b>Real name:</b> %(fullname)s\n"
+" <li><b>Email address:</b> %(addr)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Unsubscribe</em> button below to complete the confirmation\n"
+" process.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this unsubscription\n"
+" request."
+msgstr ""
+"&Egrave; necessaria la tua conferma per completare la procedura\n"
+" di cancellazione dalla lista <em>%(listname)s</em>. Attualmente\n"
+" sei iscritto con\n"
+"\n"
+" <ul><li><b>Vero nome:</b> %(fullname)s\n"
+" <li><b>Indirizzo:</b> %(addr)s\n"
+" </ul>\n"
+"\n"
+" Premi il pulsante <em>Cancellami</em> qui in basso per completare\n"
+" la procedura.\n"
+"\n"
+" <p>Oppure premi <em>Cancella e scarta</em> per cancellare questa\n"
+" richiesta di cancellazione."
+
+# /home/mailman/Mailman/Cgi/admindb.py:213
+#: Mailman/Cgi/confirm.py:449 Mailman/Cgi/options.py:660
+#: Mailman/Cgi/options.py:801 Mailman/Cgi/options.py:811
+msgid "Unsubscribe"
+msgstr "Cancellami"
+
+#: Mailman/Cgi/confirm.py:450 Mailman/Cgi/confirm.py:548
+msgid "Cancel and discard"
+msgstr "Cancella e scarta"
+
+#: Mailman/Cgi/confirm.py:460
+msgid "You have canceled your change of address request."
+msgstr "Hai cancellato la tua richiesta di cambio indirizzo."
+
+# /home/mailman/Mailman/Cgi/options.py:140
+#: Mailman/Cgi/confirm.py:488
+msgid "Change of address request confirmed"
+msgstr "Richiesta di cambio indirizzo confermata"
+
+#: Mailman/Cgi/confirm.py:492
+msgid ""
+" You have successfully changed your address on the %(listname)s\n"
+" mailing list from <b>%(oldaddr)s</b> to <b>%(newaddr)s</b>. "
+"You\n"
+" can now <a href=\"%(optionsurl)s\">proceed to your membership\n"
+" login page</a>."
+msgstr ""
+" Hai cambiato con successo il tuo indirizzo nella lista\n"
+" %(listname)s da <b>%(oldaddr)s</b> a <b>%(newaddr)s</b>.\n"
+" Ora puoi <a href=\"%(optionsurl)s\">procedere nella\n"
+" pagina di login per le tue opzioni</a>."
+
+# /home/mailman/Mailman/Cgi/options.py:140
+#: Mailman/Cgi/confirm.py:504
+msgid "Confirm change of address request"
+msgstr "Richiesta di conferma per cambio indirizzo"
+
+#: Mailman/Cgi/confirm.py:523
+msgid "globally"
+msgstr "globalmente"
+
+#: Mailman/Cgi/confirm.py:526
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" change of address request for the mailing list <em>%(listname)s</em>. "
+"You\n"
+" are currently subscribed with\n"
+"\n"
+" <ul><li><b>Real name:</b> %(fullname)s\n"
+" <li><b>Old email address:</b> %(oldaddr)s\n"
+" </ul>\n"
+"\n"
+" and you have requested to %(globallys)s change your email address to\n"
+"\n"
+" <ul><li><b>New email address:</b> %(newaddr)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Change address</em> button below to complete the "
+"confirmation\n"
+" process.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this change of address\n"
+" request."
+msgstr ""
+"La tua conferma &egrave; richiesta per completare la procedura\n"
+" di cambio indirizzo sulla lista <em>%(listname)s</em>. Al momento "
+"sei iscritto con\n"
+"\n"
+" <ul><li><b>Vero nome:</b> %(fullname)s\n"
+" <li><b>Vecchio indirizzo:</b> %(oldaddr)s\n"
+" </ul>\n"
+"\n"
+" ed hai richiesto di cambiare %(globallys)s il tuo indirizzo\n"
+" in\n"
+"\n"
+" <ul><li><b>Nuovo indirizzo:</b> %(newaddr)s\n"
+" </ul>\n"
+"\n"
+" Premi il pulsante <em>Cambia indirizzo</em> qui in basso per\n"
+" completare la procedura."
+
+# /home/mailman/Mailman/Cgi/options.py:140
+#: Mailman/Cgi/confirm.py:547
+msgid "Change address"
+msgstr "Cambia indirizzo"
+
+#: Mailman/Cgi/confirm.py:557 Mailman/Cgi/confirm.py:670
+msgid "Continue awaiting approval"
+msgstr "Continua ad attendere approvazione"
+
+#: Mailman/Cgi/confirm.py:564
+msgid ""
+"Okay, the list moderator will still have the\n"
+" opportunity to approve or reject this message."
+msgstr ""
+"Ok, il moderatore della lista pu&ograve; ancora accettare o\n"
+"rifiutare questo messaggio."
+
+#: Mailman/Cgi/confirm.py:590
+msgid "Sender discarded message via web."
+msgstr "Il mittente ha scartato il messaggio via web."
+
+#: Mailman/Cgi/confirm.py:592
+msgid ""
+"The held message with the Subject:\n"
+" header <em>%(subject)s</em> could not be found. The most "
+"likely\n"
+" reason for this is that the list moderator has already approved "
+"or\n"
+" rejected the message. You were not able to cancel it in\n"
+" time."
+msgstr ""
+"Il messaggio trattenuto con oggetto\n"
+" <em>%(subject)s</em> non &egrave; stato rintracciato.\n"
+" Il motivo pi&ugrave; probabile &egrave; che il moderatore\n"
+" abbia gi&agrave; accettato o rifiutato la richiesta.\n"
+" Sei arrivato troppo tardi per cancellarlo."
+
+#: Mailman/Cgi/confirm.py:600
+msgid "Posted message canceled"
+msgstr "Il messaggio inviato &egrave; stato cancellato"
+
+#: Mailman/Cgi/confirm.py:603
+msgid ""
+" You have successfully canceled the posting of your message with\n"
+" the Subject: header <em>%(subject)s</em> to the mailing list\n"
+" %(listname)s."
+msgstr ""
+" Hai cancellato con successo l'invio del tuo messaggio con\n"
+" oggetto <em>%(subject)s</em> alla lista %(listname)s."
+
+#: Mailman/Cgi/confirm.py:614
+msgid "Cancel held message posting"
+msgstr "Cancella il messaggio trattenuto"
+
+#: Mailman/Cgi/confirm.py:639
+msgid ""
+"The held message you were referred to has\n"
+" already been handled by the list administrator."
+msgstr ""
+"Il messaggio sospeso a cui sei stato diretto &egrave; gi&agrave;\n"
+" stato gestito dall'amministratore della lista."
+
+#: Mailman/Cgi/confirm.py:653
+msgid ""
+"Your confirmation is required in order to cancel the\n"
+" posting of your message to the mailing list <em>%(listname)s</em>:\n"
+"\n"
+" <ul><li><b>Sender:</b> %(sender)s\n"
+" <li><b>Subject:</b> %(subject)s\n"
+" <li><b>Reason:</b> %(reason)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Cancel posting</em> button to discard the posting.\n"
+"\n"
+" <p>Or hit the <em>Continue awaiting approval</em> button to continue to\n"
+" allow the list moderator to approve or reject the message."
+msgstr ""
+"&Egrave; richiesta la tua conferma per cancellare il tuo messaggio\n"
+" diretto alla lista <em>%(listname)s</em>:\n"
+"\n"
+" <ul><li><b>Mittente:</b> %(sender)s\n"
+" <li><b>Oggetto:</b> %(subject)s\n"
+" <li><b>Ragione:</b> %(reason)s\n"
+" </ul>\n"
+"\n"
+" Premi il pulsante <em>Cancella l'invio</em> per scartare il messaggio.\n"
+"\n"
+" <p>Oppure premi <em>Continua ad attendere approvazione</em>\n"
+" per aspettare ancora la decisione del moderatore."
+
+#: Mailman/Cgi/confirm.py:669
+msgid "Cancel posting"
+msgstr "Cancella l'invio"
+
+#: Mailman/Cgi/confirm.py:681
+msgid ""
+"You have canceled the re-enabling of your membership. If\n"
+" we continue to receive bounces from your address, it could be deleted "
+"from\n"
+" this mailing list."
+msgstr ""
+"Hai cancellato la riabilitazione del tuo stato di iscrizione.\n"
+" Se continueremo a ricevere messaggi di errore dal tuo indirizzo,\n"
+" esso potr&agrave; essere cancellato dalla lista."
+
+# /home/mailman/Mailman/MailList.py:590
+#: Mailman/Cgi/confirm.py:711
+msgid "Membership re-enabled."
+msgstr "Iscrizione riabilitata."
+
+#: Mailman/Cgi/confirm.py:715
+msgid ""
+" You have successfully re-enabled your membership in the\n"
+" %(listname)s mailing list. You can now <a\n"
+" href=\"%(optionsurl)s\">visit your member options page</a>.\n"
+" "
+msgstr ""
+" Hai riabilitato correttamente la tua iscrizione alla lista \n"
+" %(listname)s. Ora puoi <a href=\"%(optionsurl)s\">visitare la \n"
+" pagina delle tue opzioni</a>.\n"
+" "
+
+#: Mailman/Cgi/confirm.py:727
+msgid "Re-enable mailing list membership"
+msgstr "Ri-abilita iscrizione alla lista"
+
+#: Mailman/Cgi/confirm.py:744
+msgid ""
+"We're sorry, but you have already been unsubscribed\n"
+" from this mailing list. To re-subscribe, please visit the\n"
+" <a href=\"%(listinfourl)s\">list information page</a>."
+msgstr ""
+"Ci dispiace ma ti sei già cancellato da questa lista. Per \n"
+" reiscriverti, per favore visita la \n"
+" <a href=\"%(listinfourl)s\">pagina di informazioni della \n"
+" lista</a>."
+
+#: Mailman/Cgi/confirm.py:758
+msgid "<em>not available</em>"
+msgstr "<em>non disponibile</em>"
+
+#: Mailman/Cgi/confirm.py:762
+msgid ""
+"Your membership in the %(realname)s mailing list is\n"
+" currently disabled due to excessive bounces. Your confirmation is\n"
+" required in order to re-enable delivery to your address. We have the\n"
+" following information on file:\n"
+"\n"
+" <ul><li><b>Member address:</b> %(member)s\n"
+" <li><b>Member name:</b> %(username)s\n"
+" <li><b>Last bounce received on:</b> %(date)s\n"
+" <li><b>Approximate number of days before you are permanently "
+"removed\n"
+" from this list:</b> %(daysleft)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Re-enable membership</em> button to resume receiving "
+"postings\n"
+" from the mailing list. Or hit the <em>Cancel</em> button to defer\n"
+" re-enabling your membership.\n"
+" "
+msgstr ""
+"Il tuo stato di iscrizione alla lista %(realname)s &egrave;\n"
+" attualmente disabilitato a causa di un eccessivo numero\n"
+" di errori nell'invio di messaggi al tuo indirizzo.\n"
+" &Egrave; richiesta la tua conferma per riabilitare la\n"
+" spedizione al tuo indirizzo. Abbiamo le seguenti\n"
+" informazioni:\n"
+"\n"
+" <ul><li><b>Indirizzo:</b> %(member)s\n"
+" <li><b>Nome:</b> %(username)s\n"
+" <li><b>Ultimo errore verificato il:</b> %(date)s\n"
+" <li><b>Numero approssimativo di giorni prima che \n"
+" tu sia permanentemente rimosso da questa\n"
+" lista:</b> %(daysleft)s\n"
+" </ul>\n"
+"\n"
+" Clicca il pulsante <em>Riabilita iscrizione</em> per\n"
+" ricominciare a ricevere i messaggi dalla lista.\n"
+" Oppure clicca <em>Cancella</em> per rimandare la\n"
+" decisione.\n"
+" "
+
+#: Mailman/Cgi/confirm.py:782
+msgid "Re-enable membership"
+msgstr "Riabilita iscrizione"
+
+#: Mailman/Cgi/confirm.py:783
+msgid "Cancel"
+msgstr "Cancella"
+
+#: Mailman/Cgi/create.py:48 Mailman/Cgi/rmlist.py:48
+msgid "Bad URL specification"
+msgstr "URL specificato non valido"
+
+#: Mailman/Cgi/create.py:63 Mailman/Cgi/rmlist.py:176
+msgid "Return to the "
+msgstr "Ritorna alla "
+
+# /home/mailman/Mailman/Cgi/admin.py:247
+#: Mailman/Cgi/create.py:65 Mailman/Cgi/rmlist.py:178
+msgid "general list overview"
+msgstr "pagina di supervisione della lista"
+
+#: Mailman/Cgi/create.py:66 Mailman/Cgi/rmlist.py:179
+msgid "<br>Return to the "
+msgstr "<br>Ritorna al "
+
+#: Mailman/Cgi/create.py:68 Mailman/Cgi/rmlist.py:181
+msgid "administrative list overview"
+msgstr "pannello di controllo"
+
+#: Mailman/Cgi/create.py:101
+msgid "List name must not include \"@\": %(listname)s"
+msgstr "Il nome della lista non deve contenere \"@\": %(listname)s"
+
+#: Mailman/Cgi/create.py:107 Mailman/Cgi/create.py:185 bin/newlist:134
+#: bin/newlist:168
+msgid "List already exists: %(listname)s"
+msgstr "Lista già esistente: %(listname)s"
+
+# /home/mailman/Mailman/Cgi/admindb.py:46
+# /home/mailman/Mailman/Cgi/admindb.py:54
+# /home/mailman/Mailman/Cgi/private.py:66
+# /home/mailman/Mailman/Cgi/private.py:78
+#: Mailman/Cgi/create.py:111
+msgid "You forgot to enter the list name"
+msgstr "Ti sei dimenticato di inserire il nome della lista"
+
+# /home/mailman/Mailman/Cgi/admindb.py:46
+# /home/mailman/Mailman/Cgi/admindb.py:54
+# /home/mailman/Mailman/Cgi/private.py:66
+# /home/mailman/Mailman/Cgi/private.py:78
+#: Mailman/Cgi/create.py:115
+msgid "You forgot to specify the list owner"
+msgstr "Ti sei dimenticato di specificare il proprietario della lista"
+
+#: Mailman/Cgi/create.py:122
+msgid ""
+"Leave the initial password (and confirmation) fields\n"
+" blank if you want Mailman to autogenerate the list\n"
+" passwords."
+msgstr ""
+"Lascia in bianco i campi di password iniziale e conferma\n"
+" se vuoi che Mailman generi in automatico la\n"
+" password di lista."
+
+#: Mailman/Cgi/create.py:130
+msgid "Initial list passwords do not match"
+msgstr "Le password non sono uguali"
+
+#: Mailman/Cgi/create.py:139
+msgid "The list password cannot be empty<!-- ignore -->"
+msgstr "La password di lista non deve essere vuota<!-- ignore -->"
+
+#: Mailman/Cgi/create.py:151
+msgid "You are not authorized to create new mailing lists"
+msgstr "Non sei autorizzato a creare nuove liste"
+
+# /home/mailman/Mailman/Cgi/admin.py:861
+#: Mailman/Cgi/create.py:181 bin/newlist:166
+msgid "Bad owner email address: %(s)s"
+msgstr "Indirizzo del proprietario non valido: %(s)s"
+
+#: Mailman/Cgi/create.py:189 bin/newlist:164
+msgid "Illegal list name: %(s)s"
+msgstr "Nome lista non valido: %(s)s"
+
+#: Mailman/Cgi/create.py:194
+msgid ""
+"Some unknown error occurred while creating the list.\n"
+" Please contact the site administrator for assistance."
+msgstr ""
+"Qualche errore ignoto si &egrave; verificato durante\n"
+" la creazione della lista. Per favore contatta\n"
+" l'amministratore di Mailman per assistenza."
+
+#: Mailman/Cgi/create.py:233 bin/newlist:210
+msgid "Your new mailing list: %(listname)s"
+msgstr "La tua nuova lista: %(listname)s"
+
+#: Mailman/Cgi/create.py:242
+msgid "Mailing list creation results"
+msgstr "Risultato della creazione della lista"
+
+#: Mailman/Cgi/create.py:248
+msgid ""
+"You have successfully created the mailing list\n"
+" <b>%(listname)s</b> and notification has been sent to the list owner\n"
+" <b>%(owner)s</b>. You can now:"
+msgstr ""
+"Hai creato correttamente la lista <b>%(listname)s</b>\n"
+" e la notifica &egrave; stata inviata al proprietario\n"
+" <b>%(owner)s</b>. Ora:"
+
+# /home/mailman/Mailman/Cgi/listinfo.py:148
+#: Mailman/Cgi/create.py:252
+msgid "Visit the list's info page"
+msgstr "Visita la pagina con informazioni sulla lista"
+
+# /home/mailman/Mailman/Cgi/listinfo.py:148
+#: Mailman/Cgi/create.py:253
+msgid "Visit the list's admin page"
+msgstr "Visita la pagina di amministrazione"
+
+#: Mailman/Cgi/create.py:254
+msgid "Create another list"
+msgstr "Crea una nuova lista"
+
+#: Mailman/Cgi/create.py:272
+msgid "Create a %(hostname)s Mailing List"
+msgstr "Crea una lista su %(hostname)s"
+
+# /home/mailman/Mailman/Cgi/handle_opts.py:63
+# /home/mailman/Mailman/Cgi/handle_opts.py:72
+# /home/mailman/Mailman/Cgi/handle_opts.py:80
+# /home/mailman/Mailman/Cgi/handle_opts.py:86
+# /home/mailman/Mailman/Cgi/options.py:52
+# /home/mailman/Mailman/Cgi/options.py:63
+# /home/mailman/Mailman/Cgi/options.py:69
+# /home/mailman/Mailman/Cgi/options.py:77
+# /home/mailman/Mailman/Cgi/roster.py:124
+# /home/mailman/Mailman/Cgi/roster.py:125
+# /home/mailman/Mailman/Cgi/subscribe.py:35
+# /home/mailman/Mailman/Cgi/subscribe.py:43
+# /home/mailman/Mailman/Cgi/subscribe.py:52
+# /home/mailman/Mailman/Cgi/subscribe.py:59
+# /home/mailman/Mailman/Cgi/subscribe.py:92
+# /home/mailman/Mailman/Cgi/subscribe.py:102
+#: Mailman/Cgi/create.py:281 Mailman/Cgi/rmlist.py:199
+#: Mailman/Gui/Bounce.py:175 Mailman/htmlformat.py:339
+msgid "Error: "
+msgstr "Errore: "
+
+#: Mailman/Cgi/create.py:283
+msgid ""
+"You can create a new mailing list by entering the\n"
+" relevant information into the form below. The name of the mailing list\n"
+" will be used as the primary address for posting messages to the list, "
+"so\n"
+" it should be lowercased. You will not be able to change this once the\n"
+" list is created.\n"
+"\n"
+" <p>You also need to enter the email address of the initial list owner.\n"
+" Once the list is created, the list owner will be given notification, "
+"along\n"
+" with the initial list password. The list owner will then be able to\n"
+" modify the password and add or remove additional list owners.\n"
+"\n"
+" <p>If you want Mailman to automatically generate the initial list admin\n"
+" password, click on `Yes' in the autogenerate field below, and leave the\n"
+" initial list password fields empty.\n"
+"\n"
+" <p>You must have the proper authorization to create new mailing lists.\n"
+" Each site should have a <em>list creator's</em> password, which you can\n"
+" enter in the field at the bottom. Note that the site administrator's\n"
+" password can also be used for authentication.\n"
+" "
+msgstr ""
+"Puoi creare una nuova lista inserendo le informazioni\n"
+" appropriate nel form sottostante. Il nome della lista sar&agrave;\n"
+" usato come indirizzo primario per l'invio di messaggi alla lista,\n"
+" quindi dovrebbe essere in minuscolo. Non lo potrai cambiare una\n"
+" volta che la lista sar&agrave; creata.\n"
+"\n"
+" <p>Devi anche inserire l'indirizzo email del proprietario iniziale.\n"
+" Quando la lista &egrave; stata creata, il proprietario ricever&agrave;\n"
+" una notifica insieme alla password iniziale. Il proprietario\n"
+" potr&agrave; quindi modificare la password e aggiungere o togliere\n"
+" indirizzi di altri proprietari.\n"
+"\n"
+" <p>Se vuoi che Mailman generi automaticamene la password iniziale per\n"
+" l'amministratore, clicca su 'Si' nel campo Auto-genera sottostante,\n"
+" e lascia in bianco i campi della password.\n"
+"\n"
+" <p>Devi avere i giusti diritti per creare nuove liste. Ogni server\n"
+" dovrebbe avere una password per il <em>creatore delle liste</em> che\n"
+" pu&ograve; essere inserita nel campo sottostante. Notare che anche\n"
+" la password dell'amministratore di Mailman va bene.\n"
+" "
+
+#: Mailman/Cgi/create.py:309
+msgid "List Identity"
+msgstr "Identit&agrave; della lista"
+
+#: Mailman/Cgi/create.py:312
+msgid "Name of list:"
+msgstr "Nome della lista:"
+
+#: Mailman/Cgi/create.py:317
+msgid "Initial list owner address:"
+msgstr "Indirizzo del proprietario iniziale:"
+
+#: Mailman/Cgi/create.py:326
+msgid "Auto-generate initial list password?"
+msgstr "Auto-genera la password iniziale?"
+
+# /home/mailman/Mailman/Cgi/admin.py:669
+#: Mailman/Cgi/create.py:333
+msgid "Initial list password:"
+msgstr "Password iniziale per la lista:"
+
+# /home/mailman/Mailman/Cgi/admin.py:671
+#: Mailman/Cgi/create.py:338
+msgid "Confirm initial password:"
+msgstr "Conferma la password:"
+
+# /home/mailman/Mailman/Digester.py:56
+#: Mailman/Cgi/create.py:348
+msgid "List Characteristics"
+msgstr "Caratteristiche della lista"
+
+#: Mailman/Cgi/create.py:352
+msgid ""
+"Should new members be quarantined before they\n"
+" are allowed to post unmoderated to this list? Answer <em>Yes</em> to "
+"hold\n"
+" new member postings for moderator approval by default."
+msgstr ""
+"I nuovi iscritti devono essere messi in quarantena\n"
+" prima che possano inviare messaggi non moderati a questa\n"
+" lista? Rispondi <em>Si</em> se vuoi che i messaggi inviati\n"
+" dai nuoi iscritti siano sospesi per default."
+
+#: Mailman/Cgi/create.py:383
+msgid ""
+"Initial list of supported languages. <p>Note that if you do not\n"
+" select at least one initial language, the list will use the server\n"
+" default language of %(deflang)s"
+msgstr ""
+"Elenco di lingue inizialmente supportate. <p>Nota che se non\n"
+" scegli almeno una lingua iniziale, la lista user&agrave;\n"
+" la lingua di default del server, ovvero %(deflang)s"
+
+#: Mailman/Cgi/create.py:394
+msgid "Send \"list created\" email to list owner?"
+msgstr "Manda una mail di \"lista creata\" al proprietario?"
+
+# /home/mailman/Mailman/Cgi/roster.py:72
+#: Mailman/Cgi/create.py:403
+msgid "List creator's (authentication) password:"
+msgstr "Password del creatore di liste:"
+
+#: Mailman/Cgi/create.py:408
+msgid "Create List"
+msgstr "Crea lista"
+
+#: Mailman/Cgi/create.py:409
+msgid "Clear Form"
+msgstr "Pulisci"
+
+# /home/mailman/Mailman/Cgi/edithtml.py:72
+#: Mailman/Cgi/edithtml.py:43
+msgid "General list information page"
+msgstr "Pagina di informazioni generali sulla lista"
+
+# /home/mailman/Mailman/Cgi/edithtml.py:73
+#: Mailman/Cgi/edithtml.py:44
+msgid "Subscribe results page"
+msgstr "Pagina dei risultati delle iscrizioni"
+
+# /home/mailman/Mailman/Cgi/edithtml.py:74
+#: Mailman/Cgi/edithtml.py:45
+msgid "User specific options page"
+msgstr "Pagina delle opzioni specifiche per gli utenti"
+
+# /home/mailman/Mailman/MailList.py:517
+#: Mailman/Cgi/edithtml.py:57
+msgid "List name is required."
+msgstr "Il nome della lista &egrave; obbligatorio."
+
+# /home/mailman/Mailman/Cgi/edithtml.py:86
+#: Mailman/Cgi/edithtml.py:97
+msgid "%(realname)s -- Edit html for %(template_info)s"
+msgstr "%(realname)s -- Variazione html per %(template_info)s"
+
+# /home/mailman/Mailman/Cgi/edithtml.py:90
+#: Mailman/Cgi/edithtml.py:103
+msgid "Edit HTML : Error"
+msgstr "Modifica HTML : Errore"
+
+# /home/mailman/Mailman/Cgi/edithtml.py:91
+#: Mailman/Cgi/edithtml.py:104
+msgid "%(safetemplatename)s: Invalid template"
+msgstr "%(safetemplatename)s: Template non valido"
+
+# /home/mailman/Mailman/Cgi/edithtml.py:96
+# /home/mailman/Mailman/Cgi/edithtml.py:97
+#: Mailman/Cgi/edithtml.py:109 Mailman/Cgi/edithtml.py:110
+msgid "%(realname)s -- HTML Page Editing"
+msgstr "%(realname)s -- Modifica di pagina HTML"
+
+# /home/mailman/Mailman/Cgi/edithtml.py:98
+#: Mailman/Cgi/edithtml.py:111
+msgid "Select page to edit:"
+msgstr "Seleziona la pagina da modificare:"
+
+# /home/mailman/Mailman/Cgi/edithtml.py:160
+#: Mailman/Cgi/edithtml.py:137
+msgid "View or edit the list configuration information."
+msgstr "Vedi o edita le informazioni della configurazione della lista."
+
+# /home/mailman/Mailman/Cgi/edithtml.py:173
+#: Mailman/Cgi/edithtml.py:145
+msgid "When you are done making changes..."
+msgstr "Quando hai finito di fare modifiche..."
+
+#: Mailman/Cgi/edithtml.py:146
+msgid "Submit Changes"
+msgstr "Esegui Variazioni"
+
+# /home/mailman/Mailman/Cgi/edithtml.py:186
+#: Mailman/Cgi/edithtml.py:153
+msgid "Can't have empty html page."
+msgstr "Non puoi avere una pagina html vuota."
+
+# /home/mailman/Mailman/Cgi/edithtml.py:187
+#: Mailman/Cgi/edithtml.py:154
+msgid "HTML Unchanged."
+msgstr "HTML invariato."
+
+# /home/mailman/Mailman/Cgi/edithtml.py:194
+#: Mailman/Cgi/edithtml.py:169
+msgid "HTML successfully updated."
+msgstr "HTML modificato con successo."
+
+#: Mailman/Cgi/listinfo.py:71
+msgid "%(hostname)s Mailing Lists"
+msgstr "Liste su %(hostname)s"
+
+#: Mailman/Cgi/listinfo.py:103
+msgid ""
+"<p>There currently are no publicly-advertised\n"
+" %(mailmanlink)s mailing lists on %(hostname)s."
+msgstr ""
+"<p> Attualmente non ci sono liste %(mailmanlink)s visibili al pubblico\n"
+" su %(hostname)s."
+
+#: Mailman/Cgi/listinfo.py:107
+msgid ""
+"<p>Below is a listing of all the public mailing lists on\n"
+" %(hostname)s. Click on a list name to get more information "
+"about\n"
+" the list, or to subscribe, unsubscribe, and change the "
+"preferences\n"
+" on your subscription."
+msgstr ""
+"<p>Qui sotto vedi un elenco di tutte le liste di\n"
+" %(hostname)s. Clicca sul nome di una lista per ricevere\n"
+" ulteriori informazioni o per iscriverti, cancellarti\n"
+" o cambiare le opzioni della tua iscrizione."
+
+# /home/mailman/Mailman/Cgi/admin.py:242
+# /home/mailman/Mailman/Cgi/listinfo.py:143
+#: Mailman/Cgi/listinfo.py:113
+msgid "right"
+msgstr "destra"
+
+#: Mailman/Cgi/listinfo.py:116
+msgid ""
+" To visit the general information page for an unadvertised list,\n"
+" open a URL similar to this one, but with a '/' and the %(adj)s\n"
+" list name appended.\n"
+" <p>List administrators, you can visit "
+msgstr ""
+" Per visitare la pagina di info di una lista non pubblica,\n"
+" apri una URL simile a questa ma seguita da un `/' e col\n"
+" %(adj)s nome della lista aggiunto.\n"
+" <p>Gli amministratori possono visitare "
+
+# /home/mailman/Mailman/Cgi/listinfo.py:148
+#: Mailman/Cgi/listinfo.py:121
+msgid "the list admin overview page"
+msgstr "la pagina di supervisione per gli amministratori"
+
+#: Mailman/Cgi/listinfo.py:122
+msgid ""
+" to find the management interface for your list.\n"
+" <p>Send questions or comments to "
+msgstr ""
+" per trovare l'interfaccia di gestione della tua lista.\n"
+" <p>Invia domande o commenti a "
+
+# /home/mailman/Mailman/HTMLFormatter.py:255
+#: Mailman/Cgi/listinfo.py:187
+msgid "Edit Options"
+msgstr "Modifica Opzioni"
+
+# /home/mailman/Mailman/Cgi/listinfo.py:199
+#: Mailman/Cgi/listinfo.py:194 Mailman/Cgi/options.py:767
+#: Mailman/Cgi/roster.py:111
+msgid "View this page in"
+msgstr "Vedi questa pagina in"
+
+#: Mailman/Cgi/options.py:51 Mailman/Cgi/options.py:68
+msgid "CGI script error"
+msgstr "Errore nello script CGI"
+
+# /home/mailman/Mailman/Cgi/archives.py:77
+# /home/mailman/Mailman/Cgi/edithtml.py:51
+# /home/mailman/Mailman/Cgi/handle_opts.py:64
+# /home/mailman/Mailman/Cgi/handle_opts.py:73
+# /home/mailman/Mailman/Cgi/options.py:53
+# /home/mailman/Mailman/Cgi/roster.py:103
+# /home/mailman/Mailman/Cgi/subscribe.py:44
+#: Mailman/Cgi/options.py:54
+msgid "Invalid options to CGI script."
+msgstr "Le opzioni mandate allo script CGI sono errate."
+
+# /home/mailman/Mailman/ListAdmin.py:210
+#: Mailman/Cgi/options.py:96
+msgid "No address given"
+msgstr "Nessun indirizzo fornito"
+
+#: Mailman/Cgi/options.py:108 Mailman/Cgi/options.py:155
+#: Mailman/Cgi/options.py:177
+msgid "No such member: %(safeuser)s."
+msgstr "Nessun iscritto: %(safeuser)s."
+
+#: Mailman/Cgi/options.py:150 Mailman/Cgi/options.py:160
+msgid "The confirmation email has been sent."
+msgstr "L'email di conferma &egrave; stata spedita."
+
+#: Mailman/Cgi/options.py:171 Mailman/Cgi/options.py:183
+#: Mailman/Cgi/options.py:226
+msgid "A reminder of your password has been emailed to you."
+msgstr "Un promemoria della tua password ti &egrave; stato inviato."
+
+#: Mailman/Cgi/options.py:200
+msgid "Authentication failed."
+msgstr "Autenticazione fallita."
+
+# /home/mailman/Mailman/Cgi/handle_opts.py:147
+#: Mailman/Cgi/options.py:232
+msgid "List subscriptions for %(user)s on %(hostname)s"
+msgstr "Lista delle iscrizioni per %(user)s su %(hostname)s"
+
+# /home/mailman/Mailman/Cgi/handle_opts.py:149
+#: Mailman/Cgi/options.py:235
+msgid ""
+"Click on a link to visit your options page for the\n"
+" requested mailing list."
+msgstr "Clicca su un link per visitare le tue opzioni per la lista"
+
+#: Mailman/Cgi/options.py:284
+msgid "Addresses did not match!"
+msgstr "Gli indirizzi non sono uguali|"
+
+# /home/mailman/Mailman/MailCommandHandler.py:351
+#: Mailman/Cgi/options.py:289
+msgid "You are already using that email address"
+msgstr "Stai già usando questo indirizzo"
+
+#: Mailman/Cgi/options.py:301
+msgid ""
+"The new address you requested %(newaddr)s is already a member of the\n"
+"%(listname)s mailing list, however you have also requested a global change "
+"of\n"
+"address. Upon confirmation, any other mailing list containing the address\n"
+"%(user)s will be changed. "
+msgstr ""
+"Il nuovo indirizzo che hai richiesto %(newaddr)s &egrave; gi&agrave;\n"
+"iscritto alla lista %(listname)s, in ogni caso hai richiesto anche un\n"
+"cambio globale di indirizzo. Se confermi, ogni altra lista contenente\n"
+"l'indirizzo %(user)s sar&agrave; cambiata."
+
+#: Mailman/Cgi/options.py:310
+msgid "The new address is already a member: %(newaddr)s"
+msgstr "Il nuovo indirizzo è già un iscritto: %(newaddr)s"
+
+#: Mailman/Cgi/options.py:316
+msgid "Addresses may not be blank"
+msgstr "Gli indirizzi non possono essere vuoti"
+
+#: Mailman/Cgi/options.py:328
+msgid "A confirmation message has been sent to %(newaddr)s. "
+msgstr "Una richiesta di conferma &egrave; stata spedita a %(newaddr)s"
+
+# /home/mailman/Mailman/Cgi/admin.py:861
+#: Mailman/Cgi/options.py:337
+msgid "Bad email address provided"
+msgstr "Indirizzo email errato/non valido"
+
+# /home/mailman/Mailman/Cgi/admin.py:861
+#: Mailman/Cgi/options.py:339
+msgid "Illegal email address provided"
+msgstr "Indirizzo email errato/non valido"
+
+# /home/mailman/Mailman/MailCommandHandler.py:297
+#: Mailman/Cgi/options.py:341
+msgid "%(newaddr)s is already a member of the list."
+msgstr "%(newaddr)s è già iscritto alla lista."
+
+# /home/mailman/Mailman/Cgi/edithtml.py:194
+#: Mailman/Cgi/options.py:350
+msgid "Member name successfully changed. "
+msgstr "Nome dell'iscritto modificato con successo."
+
+#: Mailman/Cgi/options.py:361
+msgid "Passwords may not be blank"
+msgstr "Le password non possono essere vuote"
+
+#: Mailman/Cgi/options.py:366
+msgid "Passwords did not match!"
+msgstr "Le password non sono uguali!"
+
+# /home/mailman/Mailman/Cgi/edithtml.py:194
+#: Mailman/Cgi/options.py:381 Mailman/Commands/cmd_password.py:79
+#: Mailman/Commands/cmd_password.py:105
+msgid "Password successfully changed."
+msgstr "Password modificata con successo."
+
+#: Mailman/Cgi/options.py:390
+msgid ""
+"You must confirm your unsubscription request by turning\n"
+" on the checkbox below the <em>Unsubscribe</em> button. You\n"
+" have not been unsubscribed!"
+msgstr ""
+"Devi confermare la tua richiesta di cancellazione spuntando il\n"
+" quadratino <em>Cancellami</em> qui sotto.\n"
+" Non sei stato cancellato!"
+
+# /home/mailman/Mailman/Cgi/admindb.py:289
+#: Mailman/Cgi/options.py:422
+msgid "Unsubscription results"
+msgstr "Risultati di cancellazione"
+
+#: Mailman/Cgi/options.py:426
+msgid ""
+"Your unsubscription request has been received and\n"
+" forwarded on to the list moderators for approval. You will\n"
+" receive notification once the list moderators have made their\n"
+" decision."
+msgstr ""
+"La tua richiesta di cancellazione &egrave; stata ricevuta\n"
+" e inoltrata ai moderatori della lista per approvazione.\n"
+" Riceverai una notifica quando i moderatori avranno \n"
+" preso una decisione."
+
+#: Mailman/Cgi/options.py:431
+msgid ""
+"You have been successfully unsubscribed from the\n"
+" mailing list %(fqdn_listname)s. If you were receiving digest\n"
+" deliveries you may get one more digest. If you have any "
+"questions\n"
+" about your unsubscription, please contact the list owners at\n"
+" %(owneraddr)s."
+msgstr ""
+"Sei stato cancellato correttamente dalla lista\n"
+" %(fqdn_listname)s. Se eri in modalit&agrave; digest\n"
+" potresti ricevere ancora un messaggio. Se hai qualche domanda\n"
+" a proposito della tua cancellazione, contatta i gestori della\n"
+" lista all'indirizzo %(owneraddr)s."
+
+#: Mailman/Cgi/options.py:582
+msgid ""
+"The list administrator has disabled digest delivery for\n"
+" this list, so your delivery option has not been set. However "
+"your\n"
+" other options have been set successfully."
+msgstr ""
+"L'amministratore ha disabilitato la distribuzione digest per questa\n"
+" lista, quindi le tue opzioni di distribuzione non sono\n"
+" state modificate. In ogni caso tutti gli altri parametri\n"
+" sono stati salvati correttamente."
+
+#: Mailman/Cgi/options.py:586
+msgid ""
+"The list administrator has disabled non-digest delivery\n"
+" for this list, so your delivery option has not been set. "
+"However\n"
+" your other options have been set successfully."
+msgstr ""
+"L'amministratore ha disabilitato la distribuzione non-digest\n"
+" per questa lista, quindi le tue opzioni di distribuzione\n"
+" non sono state modificate. In ogni caso gli altri parametri\n"
+" sono stati salvati correttamente."
+
+# /home/mailman/Mailman/Cgi/handle_opts.py:242
+#: Mailman/Cgi/options.py:590
+msgid "You have successfully set your options."
+msgstr "Le tue opzioni sono state modificate con successo."
+
+# /home/mailman/Mailman/Cgi/handle_opts.py:248
+#: Mailman/Cgi/options.py:593
+msgid "You may get one last digest."
+msgstr "Potresti ricevere un ultimo digest."
+
+#: Mailman/Cgi/options.py:662
+msgid "<em>Yes, I really want to unsubscribe</em>"
+msgstr "<em>S&igrave;, voglio veramente cancellarmi</em>"
+
+# /home/mailman/Mailman/Cgi/options.py:140
+#: Mailman/Cgi/options.py:666
+msgid "Change My Password"
+msgstr "Cambia la mia password"
+
+# /home/mailman/Mailman/Cgi/options.py:138
+#: Mailman/Cgi/options.py:669
+msgid "List my other subscriptions"
+msgstr "Elenco delle altre mie iscrizioni"
+
+# /home/mailman/Mailman/Cgi/options.py:146
+#: Mailman/Cgi/options.py:675
+msgid "Email My Password To Me"
+msgstr "Mandami la mia password via email"
+
+# /home/mailman/Mailman/Cgi/options.py:149
+#: Mailman/Cgi/options.py:677
+msgid "password"
+msgstr "password"
+
+#: Mailman/Cgi/options.py:679
+msgid "Log out"
+msgstr "Esci"
+
+#: Mailman/Cgi/options.py:681
+msgid "Submit My Changes"
+msgstr "Esegui le variazioni"
+
+#: Mailman/Cgi/options.py:693
+msgid "days"
+msgstr "giorni"
+
+#: Mailman/Cgi/options.py:695
+msgid "day"
+msgstr "giorno"
+
+#: Mailman/Cgi/options.py:696
+msgid "%(days)d %(units)s"
+msgstr "%(days)d %(units)s"
+
+#: Mailman/Cgi/options.py:702
+msgid "Change My Address and Name"
+msgstr "Cambia il mio nome e indirizzo"
+
+#: Mailman/Cgi/options.py:726
+msgid "<em>No topics defined</em>"
+msgstr "<em>Non sono stati definiti argomenti</em>"
+
+# /home/mailman/Mailman/Cgi/options.py:151
+#: Mailman/Cgi/options.py:734
+msgid ""
+"\n"
+"You are subscribed to this list with the case-preserved address\n"
+"<em>%(cpuser)s</em>."
+msgstr ""
+"\n"
+"Sei iscritto a questa lista con l'indirizzo\n"
+"(conservando maiuscole e minuscole)\n"
+"<em>%(cpuser)s</em>."
+
+#: Mailman/Cgi/options.py:748
+msgid "%(realname)s list: member options login page"
+msgstr "lista %(realname)s: login alla pagina di opzioni per gli iscritti"
+
+# /home/mailman/Mailman/Cgi/admin.py:861
+#: Mailman/Cgi/options.py:749
+msgid "email address and "
+msgstr "indirizzo email e"
+
+#: Mailman/Cgi/options.py:751
+msgid "%(realname)s list: member options for user %(user)s"
+msgstr "Lista %(realname)s: opzioni di iscrizione per %(user)s"
+
+#: Mailman/Cgi/options.py:777
+msgid ""
+"In order to change your membership option, you must\n"
+" first log in by giving your %(extra)smembership password in the section\n"
+" below. If you don't remember your membership password, you can have it\n"
+" emailed to you by clicking on the button below. If you just want to\n"
+" unsubscribe from this list, click on the <em>Unsubscribe</em> button and "
+"a\n"
+" confirmation message will be sent to you.\n"
+"\n"
+" <p><strong><em>Important:</em></strong> From this point on, you must "
+"have\n"
+" cookies enabled in your browser, otherwise none of your changes will "
+"take\n"
+" effect.\n"
+" "
+msgstr ""
+"Per poter cambiare le tue opzioni di iscrizione, devi\n"
+" prima di tutto identificarti tramite la tua %(extra)spassword\n"
+" nella sezione sottostante.\n"
+" Se non te la ricordi, puoi fartela inviare via mail cliccando il\n"
+" pulsante sottostante. Se vuoi soltanto cancellarti dalla lista\n"
+" allora clicca su <em>Cancellami</em> e ti verr&agrave; inviato\n"
+" un messaggio con la richiesta di conferma.\n"
+"\n"
+" <p><strong><em>Importante:</em></strong> da questo momento in\n"
+" avanti devi avere i cookie abilitati nel browser o non riuscirai\n"
+" a completare nessuna operazione.\n"
+" "
+
+# In this entry insert a space at the end of string, it will be stripped.
+# /home/mailman/Mailman/HTMLFormatter.py:287
+#: Mailman/Cgi/options.py:791
+msgid "Email address:"
+msgstr "Indirizzo email:"
+
+# /home/mailman/Mailman/HTMLFormatter.py:301
+#: Mailman/Cgi/options.py:795
+msgid "Password:"
+msgstr "Password:"
+
+#: Mailman/Cgi/options.py:797
+msgid "Log in"
+msgstr "Entra"
+
+#: Mailman/Cgi/options.py:805
+msgid ""
+"By clicking on the <em>Unsubscribe</em> button, a\n"
+" confirmation message will be emailed to you. This message will have a\n"
+" link that you should click on to complete the removal process (you can\n"
+" also confirm by email; see the instructions in the confirmation\n"
+" message)."
+msgstr ""
+"Cliccando sul pulsante <em>Cancellami</em> un messaggio\n"
+" di conferma ti sar&agrave; inviato. Questo messaggio\n"
+" contiene un link sul quale dovrai cliccare per completare\n"
+" la procedura di rimozione (puoi anche confermare via\n"
+" email; vedi le istruzioni nel messaggio)."
+
+# /home/mailman/Mailman/HTMLFormatter.py:301
+#: Mailman/Cgi/options.py:813
+msgid "Password reminder"
+msgstr "Promemoria password"
+
+#: Mailman/Cgi/options.py:817
+msgid ""
+"By clicking on the <em>Remind</em> button, your\n"
+" password will be emailed to you."
+msgstr ""
+"Cliccando sul pulsante <em>Promemoria</em>,\n"
+" ti sar&agrave; spedita la tua password."
+
+#: Mailman/Cgi/options.py:820
+msgid "Remind"
+msgstr "Promemoria"
+
+#: Mailman/Cgi/options.py:920
+msgid "<missing>"
+msgstr "<mancante>"
+
+#: Mailman/Cgi/options.py:931
+msgid "Requested topic is not valid: %(topicname)s"
+msgstr "L'argomento richiesto non &egrave; valido: %(topicname)s"
+
+#: Mailman/Cgi/options.py:936
+msgid "Topic filter details"
+msgstr "Dettagli sul filtro per argomenti"
+
+#: Mailman/Cgi/options.py:939
+msgid "Name:"
+msgstr "Nome:"
+
+#: Mailman/Cgi/options.py:941
+msgid "Pattern (as regexp):"
+msgstr "Pattern (come regexp):"
+
+# /home/mailman/Mailman/Cgi/private.py:65
+# /home/mailman/Mailman/Cgi/private.py:77
+#: Mailman/Cgi/private.py:61
+msgid "Private Archive Error"
+msgstr "Errore di archivio privato"
+
+# /home/mailman/Mailman/Cgi/admindb.py:46
+# /home/mailman/Mailman/Cgi/admindb.py:54
+# /home/mailman/Mailman/Cgi/private.py:66
+# /home/mailman/Mailman/Cgi/private.py:78
+#: Mailman/Cgi/private.py:62
+msgid "You must specify a list."
+msgstr "Devi indicare una lista."
+
+# /home/mailman/Mailman/Cgi/private.py:99
+#: Mailman/Cgi/private.py:99
+msgid "Private Archive Error - %(msg)s"
+msgstr "Errore di archivio privato - %(msg)s"
+
+# /home/mailman/Mailman/Cgi/private.py:154
+#: Mailman/Cgi/private.py:154
+msgid "Private archive file not found"
+msgstr "File di archivio privato non trovato"
+
+#: Mailman/Cgi/rmlist.py:81
+msgid "You're being a sneaky list owner!"
+msgstr "Non ti stai comportando molto bene come gestore di lista...."
+
+#: Mailman/Cgi/rmlist.py:119
+msgid "You are not authorized to delete this mailing list"
+msgstr "Non sei autorizzato a cancellare questa lista"
+
+# /home/mailman/Mailman/Cgi/admin.py:222
+# /home/mailman/Mailman/Cgi/admin.py:231
+# /home/mailman/Mailman/Cgi/listinfo.py:122
+# /home/mailman/Mailman/Cgi/listinfo.py:131
+#: Mailman/Cgi/rmlist.py:160
+msgid "Mailing list deletion results"
+msgstr "Risultati di cancellazione lista"
+
+#: Mailman/Cgi/rmlist.py:167
+msgid ""
+"You have successfully deleted the mailing list\n"
+" <b>%(listname)s</b>."
+msgstr ""
+"Hai cancellato correttamente la lista\n"
+" <b>%(listname)s</b>."
+
+#: Mailman/Cgi/rmlist.py:171
+msgid ""
+"There were some problems deleting the mailing list\n"
+" <b>%(listname)s</b>. Contact your site administrator at %(sitelist)"
+"s\n"
+" for details."
+msgstr ""
+"C'è stato un problema durante la cancellazione della lista\n"
+" <b>%(listname)s</b>. Contatta l'amministratore del\n"
+" server all'indirizzo %(sitelist)s per i dettagli"
+
+#: Mailman/Cgi/rmlist.py:188
+msgid "Permanently remove mailing list <em>%(realname)s</em>"
+msgstr "Rimuovi permanentemente la lista <em>%(realname)s</em>"
+
+#: Mailman/Cgi/rmlist.py:202
+msgid ""
+"This page allows you as the list owner, to permanent\n"
+" remove this mailing list from the system. <strong>This action is not\n"
+" undoable</strong> so you should undertake it only if you are absolutely\n"
+" sure this mailing list has served its purpose and is no longer "
+"necessary.\n"
+"\n"
+" <p>Note that no warning will be sent to your list members and after "
+"this\n"
+" action, any subsequent messages sent to the mailing list, or any of its\n"
+" administrative addreses will bounce.\n"
+"\n"
+" <p>You also have the option of removing the archives for this mailing "
+"list\n"
+" at this time. It is almost always recommended that you do\n"
+" <strong>not</strong> remove the archives, since they serve as the\n"
+" historical record of your mailing list.\n"
+"\n"
+" <p>For your safety, you will be asked to reconfirm the list password.\n"
+" "
+msgstr ""
+"Questa pagina ti permette, come gestore di lista, di\n"
+" rimuovere permanentemente la lista dal sistema. <strong>Non\n"
+" potrai tornare indietro</strong> quindi pensaci bene e\n"
+" procedi solo se sei assolutamente sicuro che questa lista\n"
+" ha terminato il suo lavoro e non sar&agrave; pi&ugrave;\n"
+" necessaria.\n"
+"\n"
+" <p>Nota che non sar&agrave; inviato nessun avviso agli iscritti\n"
+" della lista e dopo questa azione tutti i messaggi inviati alla\n"
+" lista e ai suoi indirizzi amministrativi saranno persi.\n"
+"\n"
+" <p>Hai anche l'opzione di rimuovere gli archivi della lista.\n"
+" &Egrave; quasi sempre raccomandabile che tu <strong>non</strong>\n"
+" rimuova poich&eacute; possono servire come documentazione\n"
+" storica della lista.\n"
+"\n"
+" <p>Per tua sicurezza, ti verr&agrave; chiesto di confermare la\n"
+" password della lista.\n"
+" "
+
+# /home/mailman/Mailman/Cgi/options.py:149
+#: Mailman/Cgi/rmlist.py:223
+msgid "List password:"
+msgstr "Password di lista:"
+
+#: Mailman/Cgi/rmlist.py:227
+msgid "Also delete archives?"
+msgstr "Cancello anche gli archivi?"
+
+#: Mailman/Cgi/rmlist.py:235
+msgid "<b>Cancel</b> and return to list administration"
+msgstr "<b>Ferma tutto</b> e ritorna all'amministrazione di lista"
+
+#: Mailman/Cgi/rmlist.py:238
+msgid "Delete this list"
+msgstr "Cancella questa lista"
+
+#: Mailman/Cgi/roster.py:48 Mailman/Cgi/subscribe.py:50
+msgid "Invalid options to CGI script"
+msgstr "Opzioni non valide allo script CGI"
+
+# /home/mailman/Mailman/Cgi/roster.py:72
+#: Mailman/Cgi/roster.py:99
+msgid "%(realname)s roster authentication failed."
+msgstr "Autenticazione fallita per %(realname)s roster."
+
+# /home/mailman/Mailman/Cgi/handle_opts.py:63
+# /home/mailman/Mailman/Cgi/handle_opts.py:72
+# /home/mailman/Mailman/Cgi/handle_opts.py:80
+# /home/mailman/Mailman/Cgi/handle_opts.py:86
+# /home/mailman/Mailman/Cgi/options.py:52
+# /home/mailman/Mailman/Cgi/options.py:63
+# /home/mailman/Mailman/Cgi/options.py:69
+# /home/mailman/Mailman/Cgi/options.py:77
+# /home/mailman/Mailman/Cgi/roster.py:124
+# /home/mailman/Mailman/Cgi/roster.py:125
+# /home/mailman/Mailman/Cgi/subscribe.py:35
+# /home/mailman/Mailman/Cgi/subscribe.py:43
+# /home/mailman/Mailman/Cgi/subscribe.py:52
+# /home/mailman/Mailman/Cgi/subscribe.py:59
+# /home/mailman/Mailman/Cgi/subscribe.py:92
+# /home/mailman/Mailman/Cgi/subscribe.py:102
+#: Mailman/Cgi/roster.py:127 Mailman/Cgi/roster.py:128
+#: Mailman/Cgi/subscribe.py:49 Mailman/Cgi/subscribe.py:60
+msgid "Error"
+msgstr "Errore"
+
+# /home/mailman/Mailman/Cgi/subscribe.py:115
+#: Mailman/Cgi/subscribe.py:109
+msgid "You must supply a valid email address."
+msgstr "Devi inserire un indirizzo di email valido."
+
+# /home/mailman/Mailman/Cgi/subscribe.py:132
+#: Mailman/Cgi/subscribe.py:122
+msgid "You may not subscribe a list to itself!"
+msgstr "Non puoi iscrivere una lista a se stessa!"
+
+# /home/mailman/Mailman/Cgi/subscribe.py:137
+#: Mailman/Cgi/subscribe.py:131
+msgid "If you supply a password, you must confirm it."
+msgstr "Se inserisci una password, devi confermarla."
+
+# /home/mailman/Mailman/Cgi/subscribe.py:144
+#: Mailman/Cgi/subscribe.py:133
+msgid "Your passwords did not match."
+msgstr "Le password non sono identiche."
+
+#: Mailman/Cgi/subscribe.py:167
+msgid ""
+"Your subscription request has been received, and will soon be acted upon.\n"
+"Depending on the configuration of this mailing list, your subscription "
+"request\n"
+"may have to be first confirmed by you via email, or approved by the list\n"
+"moderator. If confirmation is required, you will soon get a confirmation\n"
+"email which contains further instructions."
+msgstr ""
+"La tua richiesta di iscrizione &egrave; stata ricevuta e sar&agrave;\n"
+"elaborata quanto prima. A seconda della configurazione della lista,\n"
+"la tua richiesta potrebbe dover essere confermata tramite una tua\n"
+"mail oppure approvata dal moderatore della lista. Se &egrave; \n"
+"richiesta la conferma riceverai immediatamente un messaggio \n"
+"contenente istruzioni dettagliate."
+
+#: Mailman/Cgi/subscribe.py:181
+msgid ""
+"The email address you supplied is banned from this\n"
+" mailing list. If you think this restriction is erroneous, please\n"
+" contact the list owners at %(listowner)s."
+msgstr ""
+"All'indirizzo email che hai fornito &egrave; interdetta l'iscrizione\n"
+" a questa lista. Se pensi che ci sia un errore, contatta\n"
+" i gestori della lista all'indirizzo %(listowner)s."
+
+#: Mailman/Cgi/subscribe.py:185
+msgid ""
+"The email address you supplied is not valid. (E.g. it must contain an\n"
+"`@'.)"
+msgstr ""
+"L'indirizzo email che hai fornito non &egrave; valido. (Ad esempio\n"
+"deve contenere una `@'.)"
+
+#: Mailman/Cgi/subscribe.py:189
+msgid ""
+"Your subscription is not allowed because the email address you gave is\n"
+"insecure."
+msgstr ""
+"La tua iscrizione non &egrave; consentita perch&eacute; \n"
+"l'indirizzo email che hai presentato non &egrave; sicuro."
+
+#: Mailman/Cgi/subscribe.py:197
+msgid ""
+"Confirmation from your email address is required, to prevent anyone from\n"
+"subscribing you without permission. Instructions are being sent to you at\n"
+"%(email)s. Please note your subscription will not start until you confirm\n"
+"your subscription."
+msgstr ""
+"Una conferma dal tuo indirizzo di email &egrave; richiesta per evitare che \n"
+"terzi ti iscrivano senza il tuo permesso. Un messaggio contenente "
+"istruzioni \n"
+"sta per esserti inviato all'indirizzo %(email)s. Per favore, nota che la "
+"tua \n"
+"iscrizione non sar&agrave; convalidata finch&eacute; non risponderai alla \n"
+"richiesta di conferma."
+
+#: Mailman/Cgi/subscribe.py:209
+msgid ""
+"Your subscription request was deferred because %(x)s. Your request has "
+"been\n"
+"forwarded to the list moderator. You will receive email informing you of "
+"the\n"
+"moderator's decision when they get to your request."
+msgstr ""
+"La tua richiesta di iscrizione &egrave; stata <em>rimandata</em> \n"
+"perch&eacute; %(x)s. La tua richiesta &egrave; stata inoltrata \n"
+"al moderatore della lista. Riceverai un email che ti \n"
+"informer&agrave; della sua decisione."
+
+# /home/mailman/Mailman/MailCommandHandler.py:558
+# /home/mailman/Mailman/MailCommandHandler.py:606
+#: Mailman/Cgi/subscribe.py:216 Mailman/Commands/cmd_confirm.py:60
+msgid "You are already subscribed."
+msgstr "Sei già iscritto."
+
+#: Mailman/Cgi/subscribe.py:230
+msgid "Mailman privacy alert"
+msgstr "Avvertimento privacy di Mailman"
+
+#: Mailman/Cgi/subscribe.py:231
+msgid ""
+"An attempt was made to subscribe your address to the mailing list\n"
+"%(listaddr)s. You are already subscribed to this mailing list.\n"
+"\n"
+"Note that the list membership is not public, so it is possible that a bad\n"
+"person was trying to probe the list for its membership. This would be a\n"
+"privacy violation if we let them do this, but we didn't.\n"
+"\n"
+"If you submitted the subscription request and forgot that you were already\n"
+"subscribed to the list, then you can ignore this message. If you suspect "
+"that\n"
+"an attempt is being made to covertly discover whether you are a member of "
+"this\n"
+"list, and you are worried about your privacy, then feel free to send a "
+"message\n"
+"to the list administrator at %(listowner)s.\n"
+msgstr ""
+"Qualcuno ha provato ad iscrivere il tuo indirizzo alla lista \n"
+"%(listaddr)s. Tu sei già iscritto a questa lista.\n"
+"\n"
+"Nota che lo stato di iscrizione non è pubblico, quindi è possibile\n"
+"che un malintenzionato stesse cercando di capire chi è iscritto.\n"
+"Questa sarebbe una violazione della privacy, se l'avessimo permesso,\n"
+"ma non l'abbiamo fatto.\n"
+"\n"
+"Se ad effettuare la richiesta di iscrizione sei stato tu e ti eri\n"
+"dimenticato di essere già iscritto, puoi ignorare questo messaggio.\n"
+"Se sospetti che qualcuno stesse cercando di scoprire se sei uno\n"
+"degli iscritti, e sei preoccupato per la tua privacy, allora\n"
+"invia senza problemi una email all'amministratore della lista\n"
+"%(listowner)s.\n"
+
+# /home/mailman/Mailman/Cgi/subscribe.py:206
+# /home/mailman/Mailman/MailCommandHandler.py:562
+#: Mailman/Cgi/subscribe.py:250
+msgid "This list does not support digest delivery."
+msgstr "Questa lista non supporta il modo digest."
+
+# /home/mailman/Mailman/Cgi/subscribe.py:206
+# /home/mailman/Mailman/MailCommandHandler.py:562
+#: Mailman/Cgi/subscribe.py:252
+msgid "This list only supports digest delivery."
+msgstr "Questa lista supporta solamente il modo digest."
+
+# /home/mailman/Mailman/Cgi/subscribe.py:208
+#: Mailman/Cgi/subscribe.py:259
+msgid "You have been successfully subscribed to the %(realname)s mailing list."
+msgstr "Sei stato correttamente iscritto alla lista %(realname)s."
+
+#: Mailman/Commands/cmd_confirm.py:17
+msgid ""
+"\n"
+" confirm <confirmation-string>\n"
+" Confirm an action. The confirmation-string is required and should "
+"be\n"
+" supplied with in mailback confirmation notice.\n"
+msgstr ""
+"\n"
+" conferma <stringa-di-conferma>\n"
+" Conferma un'azione. La stringa-di-conferma è richiesta e\n"
+" dovrebbe essere quella fornita nel messaggio di richiesta\n"
+" conferma.\n"
+
+# /home/mailman/Mailman/MailCommandHandler.py:379
+#: Mailman/Commands/cmd_confirm.py:40 Mailman/Commands/cmd_lists.py:40
+#: Mailman/Commands/cmd_set.py:133 Mailman/Commands/cmd_subscribe.py:69
+#: Mailman/Commands/cmd_unsubscribe.py:52 Mailman/Commands/cmd_who.py:65
+msgid "Usage:"
+msgstr "Uso:"
+
+#: Mailman/Commands/cmd_confirm.py:49
+msgid ""
+"Invalid confirmation string. Note that confirmation strings expire\n"
+"approximately %(days)s days after the initial subscription request. If "
+"your\n"
+"confirmation has expired, please try to re-submit your original request or\n"
+"message."
+msgstr ""
+"Stringa di conferma non valida. Nota che le stringhe di convalida \n"
+"scadono approssimativamente dopo %(days)s giorni dalla richiesta iniziale.\n"
+"Se la tua richiesta è scaduta, per favore ripeti la procedura da capo."
+
+# /home/mailman/Mailman/MailCommandHandler.py:601
+#: Mailman/Commands/cmd_confirm.py:55
+msgid "Your request has been forwarded to the list moderator for approval."
+msgstr ""
+"La tua richiesta è stata inoltrata al moderatore\n"
+" della lista per approvazione."
+
+# /home/mailman/Mailman/MailCommandHandler.py:558
+# /home/mailman/Mailman/MailCommandHandler.py:606
+#: Mailman/Commands/cmd_confirm.py:63
+msgid ""
+"You are not current a member. Have you already unsubscribed or changed\n"
+"your email address?"
+msgstr ""
+"Non sei un iscritto. Ti sei già cancellato o hai cambiato il tuo indirizzo?"
+
+#: Mailman/Commands/cmd_confirm.py:73
+msgid "Confirmation succeeded"
+msgstr "Conferma convalidata"
+
+#: Mailman/Commands/cmd_echo.py:17
+msgid ""
+"\n"
+" echo [args]\n"
+" Simply echo an acknowledgement. Args are echoed back unchanged.\n"
+msgstr ""
+"\n"
+" echo [argomenti]\n"
+" Semplicemente ripeti una conferma. Gli argomenti vengono\n"
+" ripetuti identici.\n"
+
+#: Mailman/Commands/cmd_end.py:17
+msgid ""
+"\n"
+" end\n"
+" Stop processing commands. Use this if your mail program "
+"automatically\n"
+" adds a signature file.\n"
+msgstr ""
+"\n"
+" end\n"
+" Termina l'elaborazione dei comandi. Usa questo comando se\n"
+" il tuo programma di gestione della posta aggiunge automaticamente\n"
+" una firma.\n"
+
+#: Mailman/Commands/cmd_help.py:17
+msgid ""
+"\n"
+" help\n"
+" Print this help message.\n"
+msgstr ""
+"\n"
+" help\n"
+" Scrivi questo messaggio d'aiuto.\n"
+
+#: Mailman/Commands/cmd_help.py:47
+msgid "You can access your personal options via the following url:"
+msgstr "Puoi gestire le tue opzioni personali a questa url:"
+
+#: Mailman/Commands/cmd_info.py:17
+msgid ""
+"\n"
+" info\n"
+" Get information about this mailing list.\n"
+msgstr ""
+"\n"
+" info\n"
+" Ottieni informazioni riguardanti questa lista.\n"
+
+#: Mailman/Commands/cmd_info.py:39 Mailman/Commands/cmd_lists.py:62
+msgid "n/a"
+msgstr "n/a"
+
+#: Mailman/Commands/cmd_info.py:44
+msgid "List name: %(listname)s"
+msgstr "Nome lista: %(listname)s"
+
+#: Mailman/Commands/cmd_info.py:45
+msgid "Description: %(description)s"
+msgstr "Descrizione: %(description)s"
+
+#: Mailman/Commands/cmd_info.py:46
+msgid "Postings to: %(postaddr)s"
+msgstr "Messaggi a: %(postaddr)s"
+
+#: Mailman/Commands/cmd_info.py:47
+msgid "List Helpbot: %(requestaddr)s"
+msgstr "Comandi per la lista: %(requestaddr)s"
+
+#: Mailman/Commands/cmd_info.py:48
+msgid "List Owners: %(owneraddr)s"
+msgstr "Proprietari: %(owneraddr)s"
+
+#: Mailman/Commands/cmd_info.py:49
+msgid "More information: %(listurl)s"
+msgstr "Altre informazioni: %(listurl)s"
+
+#: Mailman/Commands/cmd_join.py:17
+msgid "The `join' command is synonymous with `subscribe'.\n"
+msgstr "Il comando `join' è sinonimo di `susbscribe'.\n"
+
+#: Mailman/Commands/cmd_leave.py:17
+msgid "The `leave' command is synonymous with `unsubscribe'.\n"
+msgstr "Il comando `leave' è sinonimo di `unsubscribe'.\n"
+
+#: Mailman/Commands/cmd_lists.py:17
+msgid ""
+"\n"
+" lists\n"
+" See a list of the public mailing lists on this GNU Mailman server.\n"
+msgstr ""
+"\n"
+" lists\n"
+" Ottieni un elenco delle liste pubbliche su questo server\n"
+" GNU Mailman.\n"
+
+# /home/mailman/Mailman/MailCommandHandler.py:383
+#: Mailman/Commands/cmd_lists.py:44
+msgid "Public mailing lists at %(hostname)s:"
+msgstr "Liste pubbliche su %(hostname)s:"
+
+#: Mailman/Commands/cmd_lists.py:66
+msgid "%(i)3d. List name: %(realname)s"
+msgstr "%(i)3d. Nome lista: %(realname)s"
+
+#: Mailman/Commands/cmd_lists.py:67
+msgid " Description: %(description)s"
+msgstr " Descrizione: %(description)s"
+
+#: Mailman/Commands/cmd_lists.py:68
+msgid " Requests to: %(requestaddr)s"
+msgstr " Richieste a: %(requestaddr)s"
+
+#: Mailman/Commands/cmd_password.py:17
+msgid ""
+"\n"
+" password [<oldpassword> <newpassword>] [address=<address>]\n"
+" Retrieve or change your password. With no arguments, this returns\n"
+" your current password. With arguments <oldpassword> and "
+"<newpassword>\n"
+" you can change your password.\n"
+"\n"
+" If you're posting from an address other than your membership "
+"address,\n"
+" specify your membership address with `address=<address>' (no "
+"brackets\n"
+" around the email address, and no quotes!). Note that in this case "
+"the\n"
+" response is always sent to the subscribed address.\n"
+msgstr ""
+"\n"
+" password [<vecchia> <nuova>] [address=<indirizzo>]\n"
+" Ottieni o cambi la tua password. Senza parametri, la risposta\n"
+" conterrà la tua password. Se dai i parametri <vecchia> e\n"
+" <nuova> puoi cambiare la tua password.\n"
+"\n"
+" Se stai inviando da un indirizzo che non è quello con il\n"
+" quale sei registrato su Mailman, puoi specificare il tuo\n"
+" indirizzo con `address=<indirizzo>' (senza le parentesi\n"
+" intorno all'indirizzo e senza le virgolette!) Nota che in\n"
+" questo caso la risposta viene inviata sempre all'indirizzo\n"
+" registrato.\n"
+
+#: Mailman/Commands/cmd_password.py:51 Mailman/Commands/cmd_password.py:64
+msgid "Your password is: %(password)s"
+msgstr "La tua password è: %(password)s"
+
+# /home/mailman/Mailman/Deliverer.py:242
+#: Mailman/Commands/cmd_password.py:55 Mailman/Commands/cmd_password.py:68
+#: Mailman/Commands/cmd_password.py:91 Mailman/Commands/cmd_password.py:117
+#: Mailman/Commands/cmd_set.py:149 Mailman/Commands/cmd_set.py:219
+msgid "You are not a member of the %(listname)s mailing list"
+msgstr "Non sei iscritto alla lista %(listname)s"
+
+#: Mailman/Commands/cmd_password.py:81 Mailman/Commands/cmd_password.py:107
+msgid ""
+"You did not give the correct old password, so your password has not been\n"
+"changed. Use the no argument version of the password command to retrieve "
+"your\n"
+"current password, then try again."
+msgstr ""
+"Non hai fornito la password vecchia corretta, quindi la tua password\n"
+"non è stata cambiata. Usa la versione senza parametri del comando\n"
+"password per ottenere la vecchia password, poi riprova."
+
+# /home/mailman/Mailman/MailCommandHandler.py:379
+#: Mailman/Commands/cmd_password.py:85 Mailman/Commands/cmd_password.py:111
+msgid ""
+"\n"
+"Usage:"
+msgstr ""
+"\n"
+"Uso:"
+
+#: Mailman/Commands/cmd_remove.py:17
+msgid "The `remove' command is synonymous with `unsubscribe'.\n"
+msgstr "Il comando `remove' è sinonimo di `unsubscribe'.\n"
+
+#: Mailman/Commands/cmd_set.py:26
+msgid ""
+"\n"
+" set ...\n"
+" Set or view your membership options.\n"
+"\n"
+" Use `set help' (without the quotes) to get a more detailed list of "
+"the\n"
+" options you can change.\n"
+"\n"
+" Use `set show' (without the quotes) to view your current option\n"
+" settings.\n"
+msgstr ""
+"\n"
+" set ...\n"
+" Imposta o vedi le tue opzioni.\n"
+"\n"
+" Usa `set help' (senza le virgolette) per avere una lista più\n"
+" dettagliata delle opzioni che puoi cambiare.\n"
+"\n"
+" Usa `set show' (senza le virgolette) per vedere l'impostazione\n"
+" attuale delle tue opzioni.\n"
+
+#: Mailman/Commands/cmd_set.py:37
+msgid ""
+"\n"
+" set help\n"
+" Show this detailed help.\n"
+"\n"
+" set show [address=<address>]\n"
+" View your current option settings. If you're posting from an "
+"address\n"
+" other than your membership address, specify your membership address\n"
+" with `address=<address>' (no brackets around the email address, and "
+"no\n"
+" quotes!).\n"
+"\n"
+" set authenticate <password> [address=<address>]\n"
+" To set any of your options, you must include this command first, "
+"along\n"
+" with your membership password. If you're posting from an address\n"
+" other than your membership address, specify your membership address\n"
+" with `address=<address>' (no brackets around the email address, and "
+"no\n"
+" quotes!).\n"
+"\n"
+" set ack on\n"
+" set ack off\n"
+" When the `ack' option is turned on, you will receive an\n"
+" acknowledgement message whenever you post a message to the list.\n"
+"\n"
+" set digest plain\n"
+" set digest mime\n"
+" set digest off\n"
+" When the `digest' option is turned off, you will receive postings\n"
+" immediately when they are posted. Use `set digest plain' if "
+"instead\n"
+" you want to receive postings bundled into a plain text digest\n"
+" (i.e. RFC 1153 digest). Use `set digest mime' if instead you want "
+"to\n"
+" receive postings bundled together into a MIME digest.\n"
+"\n"
+" set delivery on\n"
+" set delivery off\n"
+" Turn delivery on or off. This does not unsubscribe you, but "
+"instead\n"
+" tells Mailman not to deliver messages to you for now. This is "
+"useful\n"
+" if you're going on vacation. Be sure to use `set delivery on' when\n"
+" you return from vacation!\n"
+"\n"
+" set myposts on\n"
+" set myposts off\n"
+" Use `set myposts off' to not receive copies of messages you post to\n"
+" the list. This has no effect if you're receiving digests.\n"
+"\n"
+" set hide on\n"
+" set hide off\n"
+" Use `set hide on' to conceal your email address when people request\n"
+" the membership list.\n"
+"\n"
+" set duplicates on\n"
+" set duplicates off\n"
+" Use `set duplicates off' if you want Mailman to not send you "
+"messages\n"
+" if your address is explicitly mentioned in the To: or Cc: fields of\n"
+" the message. This can reduce the number of duplicate postings you\n"
+" will receive.\n"
+"\n"
+" set reminders on\n"
+" set reminders off\n"
+" Use `set reminders off' if you want to disable the monthly password\n"
+" reminder for this mailing list.\n"
+msgstr ""
+"\n"
+" set help\n"
+" Mostra questo aiuto dettagliato.\n"
+"\n"
+" set show [address=<indirizzo>]\n"
+" Visualizza l'attuale impostazione delle tue opzioni. Se stai\n"
+" scrivendo da un indirizzo che non è quello con cui sei registrato\n"
+" nella lista, specifica l'indirizzo con cui sei iscritto usando\n"
+" `address=<address>' (senza parentesi intorno all'indirizzo e senza\n"
+" virgolette!).\n"
+"\n"
+" set authenticate <password> [address=<indirizzo>]\n"
+" Per modificare una qualunque delle tue opzioni devi prima di\n"
+" tutto fornire questo comando, usando la tua password. Se stai\n"
+" scrivendo da un indirizzo che non è quello con cui sei registrato\n"
+" nella lista, specifica l'indirizzo con cui sei iscritto usando\n"
+" `address=<address>' (senza parentesi intorno all'indirizzo e senza\n"
+" virgolette!).\n"
+"\n"
+" set ack on\n"
+" set ack off\n"
+" Quando attivi l'opzione ack, ricevi un messaggio di conferma\n"
+" ogni volta che invii un messaggio alla lista.\n"
+"\n"
+" set digest plain\n"
+" set digest mime\n"
+" set digest off\n"
+" Quando disattivi l'opzione `digest', ricevi i messaggi\n"
+" immediatamente nonappena qualcuno scrive alla lista. Usa\n"
+" `set digest plain' se invece vuoi ricevere i messaggi accorpati\n"
+" in un unico messaggio di testo (digest RFC 1153). Usa\n"
+" `set digest mime' se vuoi ricevere i messaggi come allegati di\n"
+" un unico messaggio MIME.\n"
+"\n"
+" set delivery on\n"
+" set delivery off\n"
+" Abilita o disabilita l'invio dei messaggi al tuo indirizzoo.\n"
+" Questo non ti disiscrive dalla lista ma dice solo che Mailman\n"
+" per ora non ti deve mandare messaggi. E' utile quando vai in\n"
+" vacanza. Ricordati di usare `set delivery on' quando torni!\n"
+"\n"
+" set hide on\n"
+" set hide off\n"
+" Usa `set hide on' per nascondere il tuo indirizzo quando\n"
+" qualcuno chiede l'elenco degli iscritti.\n"
+"\n"
+" set duplicates on\n"
+" set duplicates off\n"
+" Usa `set duplicates off' se vuoi che Mailman non ti mandi\n"
+" i messaggi quando il tuo indirizzo era esplicitamente presente\n"
+" nei campi To: o Cc: del messaggio. Questo può ridurre il numero\n"
+" di duplicati che riceverai.\n"
+"\n"
+" set reminders on\n"
+" set reminders off\n"
+" Usa `set reminders off' se vuoi disabilitare l'invio mensile\n"
+" del promemoria contenente la tua password per questa lista.\n"
+
+#: Mailman/Commands/cmd_set.py:122
+msgid "Bad set command: %(subcmd)s"
+msgstr "Comando set errato: %(subcmd)s"
+
+#: Mailman/Commands/cmd_set.py:151
+msgid "Your current option settings:"
+msgstr "Le attuali impostazioni per le tue opzioni:"
+
+#: Mailman/Commands/cmd_set.py:153 Mailman/Commands/cmd_set.py:191
+#: Mailman/Commands/cmd_set.py:194 Mailman/Commands/cmd_set.py:198
+#: Mailman/Commands/cmd_set.py:202
+msgid "off"
+msgstr "off"
+
+# /home/mailman/Mailman/MailList.py:539
+#: Mailman/Commands/cmd_set.py:153 Mailman/Commands/cmd_set.py:191
+#: Mailman/Commands/cmd_set.py:194 Mailman/Commands/cmd_set.py:198
+#: Mailman/Commands/cmd_set.py:202
+msgid "on"
+msgstr "on"
+
+#: Mailman/Commands/cmd_set.py:154
+msgid " ack %(onoff)s"
+msgstr " ack %(onoff)s"
+
+# /home/mailman/Mailman/Cgi/admin.py:42
+#: Mailman/Commands/cmd_set.py:160
+msgid " digest plain"
+msgstr " digest normale"
+
+# /home/mailman/Mailman/Digester.py:63
+#: Mailman/Commands/cmd_set.py:162
+msgid " digest mime"
+msgstr " digest mime"
+
+#: Mailman/Commands/cmd_set.py:164
+msgid " digest off"
+msgstr " digest disabilitato"
+
+# /home/mailman/Mailman/HTMLFormatter.py:153
+#: Mailman/Commands/cmd_set.py:169
+msgid "delivery on"
+msgstr "delivery on"
+
+# /home/mailman/Mailman/HTMLFormatter.py:153
+#: Mailman/Commands/cmd_set.py:171 Mailman/Commands/cmd_set.py:174
+#: Mailman/Commands/cmd_set.py:177 Mailman/Commands/cmd_set.py:181
+msgid "delivery off"
+msgstr "delivery off"
+
+#: Mailman/Commands/cmd_set.py:172
+msgid "by you"
+msgstr "per decisione tua"
+
+# /home/mailman/Mailman/MailList.py:593
+#: Mailman/Commands/cmd_set.py:175
+msgid "by the admin"
+msgstr "per decisione dell'amministratore"
+
+#: Mailman/Commands/cmd_set.py:178
+msgid "due to bounces"
+msgstr "a causa degli errori"
+
+#: Mailman/Commands/cmd_set.py:186
+msgid " %(status)s (%(how)s on %(date)s)"
+msgstr " %(status)s (%(how)s il %(date)s)"
+
+#: Mailman/Commands/cmd_set.py:192
+msgid " myposts %(onoff)s"
+msgstr " myposts %(onoff)s"
+
+#: Mailman/Commands/cmd_set.py:195
+msgid " hide %(onoff)s"
+msgstr " hide %(onoff)s"
+
+#: Mailman/Commands/cmd_set.py:199
+msgid " duplicates %(onoff)s"
+msgstr " duplicates %(onoff)s"
+
+#: Mailman/Commands/cmd_set.py:203
+msgid " reminders %(onoff)s"
+msgstr " reminders %(onoff)s"
+
+# /home/mailman/Mailman/Cgi/handle_opts.py:235
+# /home/mailman/Mailman/MailCommandHandler.py:290
+# /home/mailman/Mailman/MailCommandHandler.py:344
+# /home/mailman/Mailman/MailCommandHandler.py:493
+#: Mailman/Commands/cmd_set.py:224
+msgid "You did not give the correct password"
+msgstr "La password fornita è sbagliata"
+
+#: Mailman/Commands/cmd_set.py:236 Mailman/Commands/cmd_set.py:283
+msgid "Bad argument: %(arg)s"
+msgstr "Parametro errato: %(arg)s"
+
+#: Mailman/Commands/cmd_set.py:241 Mailman/Commands/cmd_set.py:261
+msgid "Not authenticated"
+msgstr "Non autenticato"
+
+# /home/mailman/Mailman/Cgi/admin.py:40
+#: Mailman/Commands/cmd_set.py:254
+msgid "ack option set"
+msgstr "Impostata opzione ack"
+
+# /home/mailman/Mailman/Cgi/admin.py:42
+#: Mailman/Commands/cmd_set.py:286
+msgid "digest option set"
+msgstr "Impostata opzione digest"
+
+# /home/mailman/Mailman/Cgi/admin.py:40
+#: Mailman/Commands/cmd_set.py:298
+msgid "delivery option set"
+msgstr "Impostata opzione delivery"
+
+# /home/mailman/Mailman/Cgi/admin.py:42
+#: Mailman/Commands/cmd_set.py:310
+msgid "myposts option set"
+msgstr "Impostata opzione myposts"
+
+# /home/mailman/Mailman/Cgi/admin.py:42
+#: Mailman/Commands/cmd_set.py:321
+msgid "hide option set"
+msgstr "Impostata opzione hide"
+
+# /home/mailman/Mailman/Cgi/admin.py:42
+#: Mailman/Commands/cmd_set.py:333
+msgid "duplicates option set"
+msgstr "Impostata opzione duplicates"
+
+# /home/mailman/Mailman/Cgi/admin.py:38
+#: Mailman/Commands/cmd_set.py:345
+msgid "reminder option set"
+msgstr "Impostata opzione reminder"
+
+#: Mailman/Commands/cmd_stop.py:17
+msgid "stop is synonymous with the end command.\n"
+msgstr "il comando `stop' è sinonimo di `end'.\n"
+
+#: Mailman/Commands/cmd_subscribe.py:17
+msgid ""
+"\n"
+" subscribe [password] [digest|nodigest] [address=<address>]\n"
+" Subscribe to this mailing list. Your password must be given to\n"
+" unsubscribe or change your options, but if you omit the password, "
+"one\n"
+" will be generated for you. You may be periodically reminded of "
+"your\n"
+" password.\n"
+"\n"
+" The next argument may be either: `nodigest' or `digest' (no "
+"quotes!).\n"
+" If you wish to subscribe an address other than the address you sent\n"
+" this request from, you may specify `address=<address>' (no brackets\n"
+" around the email address, and no quotes!)\n"
+msgstr ""
+"\n"
+" subscribe [password] [digest|nodigest] [address=<indirizzo>]\n"
+" Ti iscrive a questa lista. Devi fornire una password che ti sarà\n"
+" chiesta quando vorrai disiscriverti o cambiare le tue opzioni, ma\n"
+" se ometti la password ne verrà generata una per te. Ti sarà\n"
+" inviato un promemoria periodico contenente la tua password.\n"
+"\n"
+" Il parametro successivo può essere `nodigest' o 'digest' (senza\n"
+" virgolette!).\n"
+" Se desideri iscrivere alla lista un indirizzo diverso da quello\n"
+" da cui stai stai spedendo in questo momento, puoi specificare\n"
+" `address=<indirizzo>' (senza parentesi intorno all'indirizzo e\n"
+" senza virgolette!)\n"
+
+# /home/mailman/Mailman/Cgi/admin.py:42
+#: Mailman/Commands/cmd_subscribe.py:62
+msgid "Bad digest specifier: %(arg)s"
+msgstr "Parametro digest errato: %(arg)s"
+
+#: Mailman/Commands/cmd_subscribe.py:84
+msgid "No valid address found to subscribe"
+msgstr "Non è stato trovato un indirizzo valido da iscrivere"
+
+#: Mailman/Commands/cmd_subscribe.py:102
+msgid ""
+"The email address you supplied is banned from this mailing list.\n"
+"If you think this restriction is erroneous, please contact the list\n"
+"owners at %(listowner)s."
+msgstr ""
+"All'indirizzo email che hai fornito è interdetta l'iscrizione a questa\n"
+"lista. Se pensi che ci sia un errore, per favore contatta i gestori\n"
+"della lista all'indirizzo %(listowner)s."
+
+# /home/mailman/Mailman/MailCommandHandler.py:547
+#: Mailman/Commands/cmd_subscribe.py:108
+msgid ""
+"Mailman won't accept the given email address as a valid address.\n"
+"(E.g. it must have an @ in it.)"
+msgstr ""
+"Mailman non considera valido l'indirizzo email dato.\n"
+"(Per esempio deve avere una @ al suo interno.)"
+
+# /home/mailman/Mailman/MailCommandHandler.py:555
+#: Mailman/Commands/cmd_subscribe.py:113
+msgid ""
+"Your subscription is not allowed because\n"
+"the email address you gave is insecure."
+msgstr ""
+"La tua iscrizione non è stata accettata perché\n"
+"l'indirizzo email che è stato fornito è insicuro."
+
+# /home/mailman/Mailman/MailCommandHandler.py:558
+# /home/mailman/Mailman/MailCommandHandler.py:606
+#: Mailman/Commands/cmd_subscribe.py:118
+msgid "You are already subscribed!"
+msgstr "Sei già iscritto!"
+
+# /home/mailman/Mailman/Cgi/subscribe.py:204
+# /home/mailman/Mailman/MailCommandHandler.py:560
+#: Mailman/Commands/cmd_subscribe.py:122
+msgid "No one can subscribe to the digest of this list!"
+msgstr "Nessuno pu&ograve; iscriversi al modo digest di questa lista!"
+
+# /home/mailman/Mailman/Cgi/subscribe.py:206
+# /home/mailman/Mailman/MailCommandHandler.py:562
+#: Mailman/Commands/cmd_subscribe.py:125
+msgid "This list only supports digest subscriptions!"
+msgstr "Questa lista supporta solamente il modo digest!"
+
+#: Mailman/Commands/cmd_subscribe.py:131
+msgid ""
+"Your subscription request has been forwarded to the list administrator\n"
+"at %(listowner)s for review."
+msgstr ""
+"La tua richiesta di iscrizione è stata inoltrata \n"
+"all'amministratore su %(listowner)s per essere esaminata."
+
+# /home/mailman/Mailman/Cgi/admindb.py:289
+#: Mailman/Commands/cmd_subscribe.py:136
+msgid "Subscription request succeeded."
+msgstr "Richiesta di iscrizione confermata"
+
+#: Mailman/Commands/cmd_unsubscribe.py:17
+msgid ""
+"\n"
+" unsubscribe [password] [address=<address>]\n"
+" Unsubscribe from the mailing list. If given, your password must "
+"match\n"
+" your current password. If omitted, a confirmation email will be "
+"sent\n"
+" to the unsubscribing address. If you wish to unsubscribe an address\n"
+" other than the address you sent this request from, you may specify\n"
+" `address=<address>' (no brackets around the email address, and no\n"
+" quotes!)\n"
+msgstr ""
+"\n"
+" unsubscribe [password] [address=<indirizzo>]\n"
+" Ti cancella dalla lista. Se specifichi una password deve essere\n"
+" quella valida. Se non la specifichi, una richiesta di conferma\n"
+" sarà inviata all'indirizzo che stai cercando di rimuovere dalla\n"
+" lista. Se vuoi rimuovere un indirizzo diverso da quello da cui\n"
+" stai spedendo in questo momento, puoi specificare il parametro\n"
+" `address=<indirizzo>' (senza parentesi intorno all'indirizzo e\n"
+" senza virgolette!)\n"
+
+# /home/mailman/Mailman/MailCommandHandler.py:297
+#: Mailman/Commands/cmd_unsubscribe.py:62
+msgid "%(address)s is not a member of the %(listname)s mailing list"
+msgstr "%(address)s non è un iscritto alla lista %(listname)s."
+
+#: Mailman/Commands/cmd_unsubscribe.py:69
+msgid ""
+"Your unsubscription request has been forwarded to the list administrator "
+"for\n"
+"approval."
+msgstr ""
+"La tua richiesta di iscrizione è stata inoltrata \n"
+"all'amministratore della lista per essere approvata."
+
+# /home/mailman/Mailman/Cgi/handle_opts.py:235
+# /home/mailman/Mailman/MailCommandHandler.py:290
+# /home/mailman/Mailman/MailCommandHandler.py:344
+# /home/mailman/Mailman/MailCommandHandler.py:493
+#: Mailman/Commands/cmd_unsubscribe.py:84
+msgid "You gave the wrong password"
+msgstr "La password fornita è sbagliata"
+
+# /home/mailman/Mailman/Cgi/admindb.py:289
+#: Mailman/Commands/cmd_unsubscribe.py:87
+msgid "Unsubscription request succeeded."
+msgstr "Richiesta di cancellazione confermata"
+
+#: Mailman/Commands/cmd_who.py:29
+msgid ""
+"\n"
+" who\n"
+" See everyone who is on this mailing list.\n"
+msgstr ""
+"\n"
+" who\n"
+" Ottieni un elenco degli iscritti a questa lista.\n"
+
+#: Mailman/Commands/cmd_who.py:34
+msgid ""
+"\n"
+" who password [address=<address>]\n"
+" See everyone who is on this mailing list. The roster is limited to\n"
+" list members only, and you must supply your membership password to\n"
+" retrieve it. If you're posting from an address other than your\n"
+" membership address, specify your membership address with\n"
+" `address=<address>' (no brackets around the email address, and no\n"
+" quotes!)\n"
+msgstr ""
+"\n"
+" who password [address=<indirizzo>]\n"
+" Ottieni un elenco degli iscritti a questa lista. L'elenco è\n"
+" disponibile solo per gli iscritti quindi devi specificare la\n"
+" tua password per dimostrare di essere autorizzato a riceverlo.\n"
+" Se stai scrivendo da un indirizzo diverso da quello con cui sei\n"
+" registrato nella lista puoi specificare `address=<indirizzo>'\n"
+" (senza parentesi intorno all'indirizzo e senza virgolette!).\n"
+
+#: Mailman/Commands/cmd_who.py:44
+msgid ""
+"\n"
+" who password\n"
+" See everyone who is on this mailing list. The roster is limited to\n"
+" list administrators and moderators only; you must supply the list\n"
+" admin or moderator password to retrieve the roster.\n"
+msgstr ""
+"\n"
+" who password\n"
+" Ottieni un elenco degli iscritti alla lista. L'elenco è\n"
+" disponibile solo per gli amministratori e i moderatori quindi\n"
+" devi fornire la relativa password per dimostrare di essere\n"
+" autorizzato.\n"
+
+#: Mailman/Commands/cmd_who.py:110
+msgid "You are not allowed to retrieve the list membership."
+msgstr "Non sei autorizzato a vedere l'elenco degli iscritti."
+
+#: Mailman/Commands/cmd_who.py:116
+msgid "This list has no members."
+msgstr "La lista non ha iscritti."
+
+#: Mailman/Commands/cmd_who.py:129
+msgid "Non-digest (regular) members:"
+msgstr "Iscritti in modalità Non-Digest:"
+
+#: Mailman/Commands/cmd_who.py:132
+msgid "Digest members:"
+msgstr "Iscritti digest:"
+
+#: Mailman/Defaults.py:1204
+msgid "Traditional Chinese"
+msgstr "Cinese Tradizionale"
+
+#: Mailman/Defaults.py:1205
+msgid "Czech"
+msgstr "Ceco"
+
+#: Mailman/Defaults.py:1206
+msgid "German"
+msgstr "Tedesco"
+
+# /home/mailman/Mailman/Utils.py:778
+#: Mailman/Defaults.py:1207
+msgid "English (USA)"
+msgstr "Inglese (USA)"
+
+# /home/mailman/Mailman/Utils.py:777
+#: Mailman/Defaults.py:1208
+msgid "Spanish (Spain)"
+msgstr "Spagnolo (Spagna)"
+
+#: Mailman/Defaults.py:1209
+msgid "Estonian"
+msgstr "Estone"
+
+#: Mailman/Defaults.py:1210
+msgid "Finnish"
+msgstr "Finlandese"
+
+#: Mailman/Defaults.py:1211
+msgid "French"
+msgstr "Francese"
+
+#: Mailman/Defaults.py:1212
+msgid "Simplified Chinese"
+msgstr "Cinese Semplificato"
+
+#: Mailman/Defaults.py:1213
+msgid "Hungarian"
+msgstr "Ungherese"
+
+# /home/mailman/Mailman/Utils.py:780
+#: Mailman/Defaults.py:1214
+msgid "Italian"
+msgstr "Italiano"
+
+#: Mailman/Defaults.py:1215
+msgid "Japanese"
+msgstr "Giapponese"
+
+#: Mailman/Defaults.py:1216
+msgid "Korean"
+msgstr "Coreano"
+
+#: Mailman/Defaults.py:1217
+msgid "Lithuanian"
+msgstr "Lituano"
+
+#: Mailman/Defaults.py:1218
+msgid "Dutch"
+msgstr "Olandese"
+
+#: Mailman/Defaults.py:1219
+msgid "Norwegian"
+msgstr "Norvegese"
+
+#: Mailman/Defaults.py:1220
+msgid "Portuguese (Brazil)"
+msgstr "Portoghese (Brasile)"
+
+#: Mailman/Defaults.py:1221
+msgid "Russian"
+msgstr "Russo"
+
+#: Mailman/Defaults.py:1222
+msgid "Swedish"
+msgstr "Svedese"
+
+# /home/mailman/Mailman/Deliverer.py:208
+#: Mailman/Deliverer.py:43
+msgid ""
+"Note: Since this is a list of mailing lists, administrative\n"
+"notices like the password reminder will be sent to\n"
+"your membership administrative address, %(addr)s."
+msgstr ""
+"Nota: Siccome questa &egrave; una lista di liste, le notizie\n"
+"amministrative come i promemoria delle password verranno inviati\n"
+"al tuo indirizzo amministrativo, %(addr)s."
+
+# /home/mailman/Mailman/Digester.py:63
+#: Mailman/Deliverer.py:62
+msgid " (Digest mode)"
+msgstr " (modalit&agrave; digest)"
+
+# /home/mailman/Mailman/Deliverer.py:236
+#: Mailman/Deliverer.py:68
+msgid "Welcome to the \"%(realname)s\" mailing list%(digmode)s"
+msgstr "Benvenuto nella lista \"%(realname)s\"%(digmode)s"
+
+# /home/mailman/Mailman/Deliverer.py:242
+#: Mailman/Deliverer.py:77
+msgid "You have been unsubscribed from the %(realname)s mailing list"
+msgstr "Sei stato cancellato dalla lista %(realname)s"
+
+#: Mailman/Deliverer.py:104
+msgid "%(listfullname)s mailing list reminder"
+msgstr "promemoria della mailing list %(listfullname)s"
+
+#: Mailman/Errors.py:114
+msgid "For some unknown reason"
+msgstr "Per qualche ragione ignota"
+
+#: Mailman/Errors.py:120 Mailman/Errors.py:143
+msgid "Your message was rejected"
+msgstr "Il tuo messaggio è stato rigettato"
+
+# /home/mailman/Mailman/Cgi/admin.py:44
+#: Mailman/Gui/Archive.py:25
+msgid "Archiving Options"
+msgstr "Opzioni di archiviazione"
+
+# /home/mailman/Mailman/Archiver/Archiver.py:131
+#: Mailman/Gui/Archive.py:31
+msgid "List traffic archival policies."
+msgstr "Politiche di archiviazione del traffico della lista."
+
+# /home/mailman/Mailman/Archiver/Archiver.py:134
+#: Mailman/Gui/Archive.py:34
+msgid "Archive messages?"
+msgstr "Archivia i messaggi?"
+
+# /home/mailman/Mailman/Archiver/Archiver.py:136
+#: Mailman/Gui/Archive.py:36
+msgid "private"
+msgstr "Privato"
+
+# /home/mailman/Mailman/Archiver/Archiver.py:136
+#: Mailman/Gui/Archive.py:36
+msgid "public"
+msgstr "Pubblico"
+
+# /home/mailman/Mailman/Archiver/Archiver.py:137
+#: Mailman/Gui/Archive.py:37
+msgid "Is archive file source for public or private archival?"
+msgstr "Il file dell'archivio serve per archiviazione pubblica o privata?"
+
+# /home/mailman/Mailman/Archiver/Archiver.py:144
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Monthly"
+msgstr "Mensilmente"
+
+# /home/mailman/Mailman/Archiver/Archiver.py:144
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Quarterly"
+msgstr "Trimestralmente"
+
+# /home/mailman/Mailman/Archiver/Archiver.py:144
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Yearly"
+msgstr "Annualmente"
+
+# /home/mailman/Mailman/Archiver/Archiver.py:144
+#: Mailman/Gui/Archive.py:41 Mailman/Gui/Digest.py:79
+msgid "Daily"
+msgstr "Giornalmente"
+
+# /home/mailman/Mailman/Archiver/Archiver.py:144
+#: Mailman/Gui/Archive.py:41 Mailman/Gui/Digest.py:79
+msgid "Weekly"
+msgstr "Settimanalmente"
+
+# /home/mailman/Mailman/Archiver/Archiver.py:145
+#: Mailman/Gui/Archive.py:43
+msgid "How often should a new archive volume be started?"
+msgstr "Ogni quanto deve cominciare un nuovo volume degli archivi?"
+
+#: Mailman/Gui/Autoresponse.py:31
+msgid "Auto-responder"
+msgstr "Auto-risponditore"
+
+#: Mailman/Gui/Autoresponse.py:39
+msgid ""
+"Auto-responder characteristics.<p>\n"
+"\n"
+"In the text fields below, string interpolation is performed with\n"
+"the following key/value substitutions:\n"
+"<p><ul>\n"
+" <li><b>listname</b> - <em>gets the name of the mailing list</em>\n"
+" <li><b>listurl</b> - <em>gets the list's listinfo URL</em>\n"
+" <li><b>requestemail</b> - <em>gets the list's -request address</em>\n"
+" <li><b>owneremail</b> - <em>gets the list's -owner address</em>\n"
+"</ul>\n"
+"\n"
+"<p>For each text field, you can either enter the text directly into the "
+"text\n"
+"box, or you can specify a file on your local system to upload as the text."
+msgstr ""
+"Caratteristiche dell'auto-risponditore.<p>\n"
+"\n"
+"Nel campo testuale sottostante verr&agrave; eseguita interpolazione\n"
+"delle stringhe con le seguenti sostituzioni chiave/valore:\n"
+"<p><ul>\n"
+" <li><b>listname</b> - <em>il nome della lista</em>\n"
+" <li><b>listurl</b> - <em>l'URL della pagina listinfo</em>\n"
+" <li><b>requestemail</b> - <em>l'indirizzo -request della lista</em>\n"
+" <li><b>owneremail</b> - <em>l'indirizzo -owner della lista</em>\n"
+"</ul>\n"
+"\n"
+"<p>Per ogni campo testuale, puoi inserire il testo direttamente nel\n"
+"riquadro oppure specificare un file da caricare dal tuo computer."
+
+#: Mailman/Gui/Autoresponse.py:55
+msgid ""
+"Should Mailman send an auto-response to mailing list\n"
+" posters?"
+msgstr "Mailman deve inviare una risposta automatica a chi scrive alla lista?"
+
+#: Mailman/Gui/Autoresponse.py:60
+msgid "Auto-response text to send to mailing list posters."
+msgstr "Testo da inviare nelle risposte automatiche."
+
+#: Mailman/Gui/Autoresponse.py:63
+msgid ""
+"Should Mailman send an auto-response to emails sent to the\n"
+" -owner address?"
+msgstr ""
+"Mailman deve inviare una risposta automatica a chi scrive\n"
+" all'indirizzo -owner della lista?"
+
+#: Mailman/Gui/Autoresponse.py:68
+msgid "Auto-response text to send to -owner emails."
+msgstr "Testo da inviare nelle risposte automatiche di -owner."
+
+#: Mailman/Gui/Autoresponse.py:71
+msgid "Yes, w/discard"
+msgstr "S&igrave;, e scarta"
+
+#: Mailman/Gui/Autoresponse.py:71
+msgid "Yes, w/forward"
+msgstr "S&igrave;, e inoltra"
+
+#: Mailman/Gui/Autoresponse.py:72
+msgid ""
+"Should Mailman send an auto-response to emails sent to the\n"
+" -request address? If you choose yes, decide whether you want\n"
+" Mailman to discard the original email, or forward it on to the\n"
+" system as a normal mail command."
+msgstr ""
+"Mailman deve inviare una risposta automatica a chi scrive all'indirizzo\n"
+" -request della lista? In caso affermativo, decidi\n"
+" anche se vuoi che il messaggio originale sia scartato\n"
+" o elaborato normalmente."
+
+#: Mailman/Gui/Autoresponse.py:79
+msgid "Auto-response text to send to -request emails."
+msgstr "Testo da inviare nelle risposte automatiche di -request."
+
+#: Mailman/Gui/Autoresponse.py:82
+msgid ""
+"Number of days between auto-responses to either the mailing\n"
+" list or -request/-owner address from the same poster. Set to\n"
+" zero (or negative) for no grace period (i.e. auto-respond to\n"
+" every message)."
+msgstr ""
+"Numero di giorni che devono passare prima che lo stesso mittente\n"
+" possa ricevere un'altra risposta automatica dalla lista o\n"
+" dagli indirizzi -request/-owner. Metti a zero (o\n"
+" negativo) per nessun limite (ovvero per rispondere\n"
+" sempre a tutti i messaggi)."
+
+#: Mailman/Gui/Bounce.py:26
+msgid "Bounce processing"
+msgstr "Gestione degli errori di invio"
+
+#: Mailman/Gui/Bounce.py:32
+msgid ""
+"These policies control the automatic bounce processing system\n"
+" in Mailman. Here's an overview of how it works.\n"
+"\n"
+" <p>When a bounce is received, Mailman tries to extract two "
+"pieces\n"
+" of information from the message: the address of the member the\n"
+" message was intended for, and the severity of the problem "
+"causing\n"
+" the bounce. The severity can be either <em>hard</em> or\n"
+" <em>soft</em> meaning either a fatal error occurred, or a\n"
+" transient error occurred. When in doubt, a hard severity is "
+"used.\n"
+"\n"
+" <p>If no member address can be extracted from the bounce, then "
+"the\n"
+" bounce is usually discarded. Otherwise, each member is assigned "
+"a\n"
+" <em>bounce score</em> and every time we encounter a bounce from\n"
+" this member we increment the score. Hard bounces increment by "
+"1\n"
+" while soft bounces increment by 0.5. We only increment the "
+"bounce\n"
+" score once per day, so even if we receive ten hard bounces from "
+"a\n"
+" member per day, their score will increase by only 1 for that "
+"day.\n"
+"\n"
+" <p>When a member's bounce score is greater than the\n"
+" <a href=\"?VARHELP=bounce/bounce_score_threshold\">bounce score\n"
+" threshold</a>, the subscription is disabled. Once disabled, "
+"the\n"
+" member will not receive any postings from the list until their\n"
+" membership is explicitly re-enabled (either by the list\n"
+" administrator or the user). However, they will receive "
+"occasional\n"
+" reminders that their membership has been disabled, and these\n"
+" reminders will include information about how to re-enable their\n"
+" membership.\n"
+"\n"
+" <p>You can control both the\n"
+" <a href=\"?VARHELP=bounce/bounce_you_are_disabled_warnings"
+"\">number\n"
+" of reminders</a> the member will receive and the\n"
+" <a href=\"?VARHELP=bounce/"
+"bounce_you_are_disabled_warnings_interval\"\n"
+" >frequency</a> with which these reminders are sent.\n"
+"\n"
+" <p>There is one other important configuration variable; after a\n"
+" certain period of time -- during which no bounces from the "
+"member\n"
+" are received -- the bounce information is\n"
+" <a href=\"?VARHELP=bounce/bounce_info_stale_after\">considered\n"
+" stale</a> and discarded. Thus by adjusting this value, and the\n"
+" score threshold, you can control how quickly bouncing members "
+"are\n"
+" disabled. You should tune both of these to the frequency and\n"
+" traffic volume of your list."
+msgstr ""
+"Queste regole controllano il sistema di gestione automatica \n"
+" delle email di errore in Mailman. Ecco una spiegazione\n"
+" di come funziona.\n"
+"\n"
+" <p>Quando viene ricevuta una email di errore, Mailman\n"
+" prova ad estrarre due informazioni dal messaggio:\n"
+" l'indirizzo dell'iscritto a cui il messaggio era\n"
+" stato spedito e la gravit&agrave; del problema che\n"
+" ha causato l'errore. Tale gravit&agrave; pu&ograve;\n"
+" essere <em>hard</em> o <em>soft</em> a seconda se\n"
+" si trattava di un errore fatale o temporaneo. In\n"
+" caso di dubbi viene assegnato livello hard.\n"
+"\n"
+" <p>Se non pu&ograve; essere estratto l'indirizzo di un\n"
+" iscritto dal messaggio, allora sarà scartato. Altrimenti\n"
+" ad ogni iscritto viene assegnato un <em>punteggio \n"
+" errori</em> che viene incrementato ad ogni nuovo errore\n"
+" incontrato. Gli errori classificati hard incrementano\n"
+" il punteggio di una unit&agrave; mentre i soft soltanto\n"
+" di 0.5. Il punteggio viene incrementato soltanto una\n"
+" volta al giorno quindi errori multipli nello stesso\n"
+" giorno contano sempre come uno solo.\n"
+"\n"
+" <p>Quando il punteggio di un iscritto &egrave; pi&ugrave;\n"
+" grande della \n"
+" <a href=\"?VARHELP=bounce/bounce_score_threshold\">soglia\n"
+" punteggio errori</a>, l'iscritto viene disabilitato.\n"
+" Una volta disabilitato, l'iscritto non ricever&agrave;\n"
+" pi&ugrave; messaggi dalla lista fino a che non sar&agrave;\n"
+" riabilitato esplicitamente (dall'amministratore o \n"
+" dall'utente stesso). In ogni caso potr&agrave; ricevere\n"
+" promemoria occasionali per ricordargli che la sua \n"
+" iscrizione &egrave; stata disabilitata, e questi \n"
+" promemoria conterranno istruzioni su come procedere per\n"
+" la riabilitazione.\n"
+"\n"
+" <p>Puoi controllare sia il <a\n"
+"href=\"?VARHELP=bounce/bounce_you_are_disabled_warnings\">numero\n"
+" di promemoria</a> che saranno spediti sia la <a\n"
+"href=\"?VARHELP=bounce/bounce_you_are_disabled_warnings_interval\"\n"
+" >frequenza</a> con la quale saranno spediti.\n"
+"\n"
+" <p>C'&egrave; un'altra importante variabile di\n"
+" configurazione; dopo un certo periodo di tempo,\n"
+" durante il quale non sono ricevuti errori \n"
+" dall'iscritto, le informazioni sugli errori sono\n"
+" <a href=\"?VARHELP=bounce/bounce_info_stale_after\"\n"
+" >considerate scadute</a> e scartate. Aggiustando\n"
+" questo valore, e la soglia del punteggio, puoi \n"
+" controllare quanto velocemente gli iscritti con\n"
+" errori vengono disabilitati. Dovresti regolare\n"
+" entrambe queste variabili sul volume di traffico\n"
+" della tua lista."
+
+# /home/mailman/Mailman/Cgi/admin.py:43
+#: Mailman/Gui/Bounce.py:75
+msgid "Bounce detection sensitivity"
+msgstr "Soglie nella gestione degli errori di invio"
+
+#: Mailman/Gui/Bounce.py:78
+msgid "Should Mailman perform automatic bounce processing?"
+msgstr ""
+"Le notifiche di errore sugli invii devono essere elaborate automaticamente?"
+
+#: Mailman/Gui/Bounce.py:79
+msgid ""
+"By setting this value to <em>No</em>, you disable all\n"
+" automatic bounce processing for this list, however bounce\n"
+" messages will still be discarded so that the list "
+"administrator\n"
+" isn't inundated with them."
+msgstr ""
+"Mettendo questo valore a <em>No</em>, disabiliti\n"
+" l'elaborazione automatica delle email di errore \n"
+" per questa lista, in ogni caso i messaggi di errore\n"
+" saranno scartati in modo che l'amministratore non\n"
+" ne sia sommerso."
+
+#: Mailman/Gui/Bounce.py:85
+msgid ""
+"The maximum member bounce score before the member's\n"
+" subscription is disabled. This value can be a floating point\n"
+" number."
+msgstr ""
+"Il valore massimo del punteggio errori, sopra il quale \n"
+" un iscritto viene disabilitato. Pu&ograve;\n"
+" essere un numero con la virgola."
+
+#: Mailman/Gui/Bounce.py:90
+msgid ""
+"The number of days after which a member's bounce information\n"
+" is discarded, if no new bounces have been received in the\n"
+" interim. This value must be an integer."
+msgstr ""
+"Il numero di giorni dopo i quali le informazioni sugli \n"
+" errori di invio ad un iscritto vengono dimenticate se\n"
+" nessun altro errore si &egrave; verificato nel frattempo.\n"
+" Deve essere intero."
+
+#: Mailman/Gui/Bounce.py:95
+msgid ""
+"How many <em>Your Membership Is Disabled</em> warnings a\n"
+" disabled member should get before their address is removed "
+"from\n"
+" the mailing list. Set to 0 to immediately remove an address "
+"from\n"
+" the list once their bounce score exceeds the threshold. This\n"
+" value must be an integer."
+msgstr ""
+"Quanti avvertimenti <em>La tua iscrizione &egrave; disabilitata</em>\n"
+" vengono inviati ad un iscritto prima che il suo \n"
+" indirizzo sia cancellato dalla lista.\n"
+" Usa 0 se vuoi che la cancellazione sia immediata \n"
+" quando il punteggio errori supera la soglia.\n"
+" Deve essere un numero intero."
+
+#: Mailman/Gui/Bounce.py:102
+msgid ""
+"The number of days between sending the <em>Your Membership\n"
+" Is Disabled</em> warnings. This value must be an integer."
+msgstr ""
+"Numero di giorni che intercorrono tra gli invii \n"
+" dell'avvertimento <em>La tua iscrizione &egrave;\n"
+" disabilitata</em>. Deve essere intero."
+
+# /home/mailman/Mailman/Cgi/admin.py:43
+#: Mailman/Gui/Bounce.py:105 Mailman/Gui/General.py:257
+msgid "Notifications"
+msgstr "Notifiche"
+
+#: Mailman/Gui/Bounce.py:109
+msgid ""
+"Should Mailman send you, the list owner, any bounce messages\n"
+" that failed to be detected by the bounce processor? <em>Yes</"
+"em>\n"
+" is recommended."
+msgstr ""
+"Mailman dovrebbe inviare a te, gestore della lista, ogni \n"
+" messaggio d'errore che non &egrave; stato possibile\n"
+" intercettare nell'apposito modulo software?\n"
+" <em>Si</em> &egrave; la scelta raccomandata."
+
+#: Mailman/Gui/Bounce.py:112
+msgid ""
+"While Mailman's bounce detector is fairly robust, it's\n"
+" impossible to detect every bounce format in the world. You\n"
+" should keep this variable set to <em>Yes</em> for two reasons: "
+"1)\n"
+" If this really is a permanent bounce from one of your members,\n"
+" you should probably manually remove them from your list, and "
+"2)\n"
+" you might want to send the message on to the Mailman "
+"developers\n"
+" so that this new format can be added to its known set.\n"
+"\n"
+" <p>If you really can't be bothered, then set this variable to\n"
+" <em>No</em> and all non-detected bounces will be discarded\n"
+" without further processing.\n"
+"\n"
+" <p><b>Note:</b> This setting will also affect all messages "
+"sent\n"
+" to your list's -admin address. This address is deprecated and\n"
+" should never be used, but some people may still send mail to "
+"this\n"
+" address. If this happens, and this variable is set to\n"
+" <em>No</em> those messages too will get discarded. You may "
+"want\n"
+" to set up an\n"
+" <a href=\"?VARHELP=autoreply/autoresponse_admin_text"
+"\">autoresponse\n"
+" message</a> for email to the -owner and -admin address."
+msgstr ""
+"Anche se l'inteprete dei messaggi di errore ricevuti da\n"
+" Mailman &egrave; abbastanza robusto, &egrave; impossibile\n"
+" interpretare correttamente ogni formato di messaggio d'errore\n"
+" al mondo. Dovresti tenere questa variabile a <em>Si</em> per\n"
+" due ragioni:\n"
+"1)\n"
+" Se si tratta veramente di un errore permanente nell'indirizzo\n"
+" di uno dei tuoi iscritti, dovresti probabilmente rimuoverlo \n"
+" manualmente dalla lista e\n"
+"2)\n"
+" potresti voler inoltrare il messaggio agli sviluppatori di\n"
+" Mailman, in modo che questo nuovo formato possa essere "
+"aggiunto\n"
+" all'insieme di quelli riconosciuti.\n"
+"\n"
+" <p>Se davvero non te ne frega niente, allora metti questa\n"
+" variabile a <em>No</em> e tutti gli errori non gestiti saranno\n"
+" scartati silenziosamente.\n"
+"\n"
+" <p><b>Nota:</b> Questa variabile ha effetto anche su tutti i\n"
+" messaggi inviati all'indirizzo -admin della lista. Questo\n"
+" indirizzo &egrave; attualmente deprecato e non dovrebbe mai\n"
+" essere utilizzato, ma qualcuno potrebbe sempre inviare un\n"
+" messaggio a questo indirizzo. Se questo accade e questa\n"
+" variabile ha valre <em>No</em> questo messaggio sar&agrave;\n"
+" scartato come se fosse un messaggio di errore.\n"
+" Potresti settare una <a href=\"?VARHELP=autoreply/"
+"autoresponse_admin_text\">risposta\n"
+" automatica</a> per i messaggi inviati agli indirizzi -owner e\n"
+" -admin."
+
+#: Mailman/Gui/Bounce.py:135
+msgid ""
+"Should Mailman notify you, the list owner, when bounces\n"
+" cause a member's subscription to be disabled?"
+msgstr ""
+"Mailman dovrebbe avvisarti quando gli errori causano\n"
+" la disabilitazione di un iscritto?"
+
+#: Mailman/Gui/Bounce.py:137
+msgid ""
+"By setting this value to <em>No</em>, you turn off\n"
+" notification messages that are normally sent to the list "
+"owners\n"
+" when a member's delivery is disabled due to excessive bounces.\n"
+" An attempt to notify the member will always be made."
+msgstr ""
+"Settando questo valore a <em>No</em>, disabiliti i messaggi\n"
+" di notifica che vengono normalmente inviati ai gestori\n"
+" della lista quando uno degli iscritti viene disabilitato\n"
+" a causa di un eccessivo numero di invii falliti.\n"
+" Un tentativo per avvisare l'iscritto viene sempre fatto."
+
+#: Mailman/Gui/Bounce.py:144
+msgid ""
+"Should Mailman notify you, the list owner, when bounces\n"
+" cause a member to be unsubscribed?"
+msgstr ""
+"Mailman dovrebbe avvisarti quando gli invii falliti\n"
+" provocano la cancellazione di un iscritto dalla lista?"
+
+#: Mailman/Gui/Bounce.py:146
+msgid ""
+"By setting this value to <em>No</em>, you turn off\n"
+" notification messages that are normally sent to the list "
+"owners\n"
+" when a member is unsubscribed due to excessive bounces. An\n"
+" attempt to notify the member will always be made."
+msgstr ""
+"Settando questo valore a <em>No</em>, disabiliti i\n"
+" messaggi di notifica che vengono normalmente inviati ai\n"
+" gestori della lista quando un iscritto viene rimosso a\n"
+" causa di un eccessivo numero di invii falliti verso il\n"
+" suo indirizzo. Un tentativo per avvisare l'iscritto\n"
+" viene sempre fatto."
+
+#: Mailman/Gui/Bounce.py:173
+msgid ""
+"Bad value for <a href=\"?VARHELP=bounce/%(property)s\"\n"
+" >%(property)s</a>: %(val)s"
+msgstr ""
+"Valore errato per <a href=\"?VARHELP=bounce/%(property)s\"\n"
+" >%(property)s</a>: %(val)s"
+
+#: Mailman/Gui/ContentFilter.py:30
+msgid "Content&nbsp;filtering"
+msgstr "Filtri&nbsp;sul&nbsp;contenuto"
+
+#: Mailman/Gui/ContentFilter.py:37
+msgid "Forward to List Owner"
+msgstr "Inoltra al proprietario della lista"
+
+#: Mailman/Gui/ContentFilter.py:39
+msgid "Preserve"
+msgstr "Conserva"
+
+#: Mailman/Gui/ContentFilter.py:42
+msgid ""
+"Policies concerning the content of list traffic.\n"
+"\n"
+" <p>Content filtering works like this: when a message is\n"
+" received by the list and you have enabled content filtering, "
+"the\n"
+" individual attachments are first compared to the\n"
+" <a href=\"?VARHELP=contentfilter/filter_mime_types\">filter\n"
+" types</a>. If the attachment type matches an entry in the "
+"filter\n"
+" types, it is discarded.\n"
+"\n"
+" <p>Then, if there are <a\n"
+" href=\"?VARHELP=contentfilter/pass_mime_types\">pass types</a>\n"
+" defined, any attachment type that does <em>not</em> match a\n"
+" pass type is also discarded. If there are no pass types "
+"defined,\n"
+" this check is skipped.\n"
+"\n"
+" <p>After this initial filtering, any <tt>multipart</tt>\n"
+" attachments that are empty are removed. If the outer message "
+"is\n"
+" left empty after this filtering, then the whole message is\n"
+" discarded. Then, each <tt>multipart/alternative</tt> section "
+"will\n"
+" be replaced by just the first alternative that is non-empty "
+"after\n"
+" filtering.\n"
+"\n"
+" <p>Finally, any <tt>text/html</tt> parts that are left in the\n"
+" message may be converted to <tt>text/plain</tt> if\n"
+" <a href=\"?VARHELP=contentfilter/convert_html_to_plaintext\"\n"
+" >convert_html_to_plaintext</a> is enabled and the site is\n"
+" configured to allow these conversions."
+msgstr ""
+"Politiche riguardanti il contenuto dei messaggi.\n"
+"\n"
+" <p>Il filtraggio sul contenuto funziona in questo modo:\n"
+" quando un messaggio viene ricevuto dalla lista e tu hai\n"
+" abilitato questa opzione, i singoli allegati\n"
+" vengono prima di tutto confrontati con i\n"
+" <a href=\"?VARHELP=contentfilter/filter_mime_types\">filtri\n"
+" sul tipo</a>. Se il tipo dell'allegato corrisponde ad uno\n"
+" dei valori impostati, l'allegato viene scartato.\n"
+"\n"
+" <p>In seguito, se ci sono <a\n"
+" href=\"?VARHELP=contentfilter/pass_mime_types\">tipi\n"
+" permessi</a> definiti, ogni allegato che <em>non</em>\n"
+" corrisponde a nessun tipo permesso viene scartato.\n"
+" Se non sono stati impostati tipi permessi, questo test\n"
+" viene saltato.\n"
+"\n"
+" <p>Dopo questo filtraggio iniziale, ogni allegato\n"
+" <tt>multipart</tt> che &egrave; rimasto vuoto viene\n"
+" scartato. Se l'intero messaggio rimane vuoto allora\n"
+" sar&agrave; scartato interamente. In seguito, ogni\n"
+" sezione <tt>multipart/alternative</tt> viene rimpiazzata\n"
+" dalla prima alternativa non vuota.\n"
+"\n"
+" <p>Infine, ogni parte <tt>text/html</tt> che &egrave; rimasta\n"
+" pu&ograve; essere convertita in <tt>text/plain</tt> se <a\n"
+" href=\"?VARHELP=contentfilter/convert_html_to_plaintext\"\n"
+" >convert_html_to_plaintext</a> &egrave; abilitato e il sito\n"
+" &egrave; configurato per eseguire la conversione richiesta."
+
+#: Mailman/Gui/ContentFilter.py:71
+msgid ""
+"Should Mailman filter the content of list traffic according\n"
+" to the settings below?"
+msgstr ""
+"Mailman deve filtrare il traffico della lista secondo le\n"
+" regole che seguono?"
+
+#: Mailman/Gui/ContentFilter.py:75
+msgid ""
+"Remove message attachments that have a matching content\n"
+" type."
+msgstr ""
+"Rimuovi le sezioni del messaggio che corrispondono ad un certo\n"
+" tipo di contenuto."
+
+#: Mailman/Gui/ContentFilter.py:78
+msgid ""
+"Use this option to remove each message attachment that\n"
+" matches one of these content types. Each line should contain "
+"a\n"
+" string naming a MIME <tt>type/subtype</tt>,\n"
+" e.g. <tt>image/gif</tt>. Leave off the subtype to remove all\n"
+" parts with a matching major content type, e.g. <tt>image</tt>.\n"
+"\n"
+" <p>Blank lines are ignored.\n"
+"\n"
+" <p>See also <a href=\"?VARHELP=contentfilter/pass_mime_types\"\n"
+" >pass_mime_types</a> for a content type whitelist."
+msgstr ""
+"Usa questa opzione per rimuovere ogni allegato che\n"
+" corrisponde ad almeno uno di questi tipi di contenuto.\n"
+" Ogni riga dovrebbe contenere una stringa nella forma\n"
+" <tt>tipo/sottotipo</tt>, ad esempio <tt>image/gif</tt>.\n"
+" Non specificare il sottotipo se vuoi rimuovere tutti gli\n"
+" allegati di un tipo maggiore, ad es. tutte le <tt>image</tt>.\n"
+"\n"
+" <p>Le righe vuote sono ignorate.\n"
+"\n"
+" <p>Vedi anche <a href=\"?VARHELP=contentfilter/pass_mime_types"
+"\"\n"
+" >pass_mime_types</a> per una lista bianca dei tipi di "
+"contenuto\n"
+" permessi."
+
+#: Mailman/Gui/ContentFilter.py:90
+msgid ""
+"Remove message attachments that don't have a matching\n"
+" content type. Leave this field blank to skip this filter\n"
+" test."
+msgstr ""
+"Rimuovi gli allegati che non hanno un tipo di contenuto\n"
+" corrispondente. Lascia in bianco questo campo per\n"
+" disabilitare questo filtro."
+
+#: Mailman/Gui/ContentFilter.py:94
+msgid ""
+"Use this option to remove each message attachment that does\n"
+" not have a matching content type. Requirements and formats "
+"are\n"
+" exactly like <a href=\"?VARHELP=contentfilter/filter_mime_types"
+"\"\n"
+" >filter_mime_types</a>.\n"
+"\n"
+" <p><b>Note:</b> if you add entries to this list but don't add\n"
+" <tt>multipart</tt> to this list, any messages with attachments\n"
+" will be rejected by the pass filter."
+msgstr ""
+"Usa questa opzione per rimuovere ogni allegato che non ha\n"
+" un tipo di contenuto corrispondente. Requisiti e\n"
+" formati sono gli stessi di <a \n"
+" href=\"?VARHELP=contentfilter/filter_mime_types\"\n"
+" >filter_mime_types</a>.\n"
+"\n"
+" <p><b>Nota:</b> se aggiungi valori in questo\n"
+" elenco ma non inserisci <tt>multipart</tt>, ogni\n"
+" messaggio con allegati sar&agrave; rigettato dal\n"
+" filtro."
+
+#: Mailman/Gui/ContentFilter.py:104
+msgid ""
+"Should Mailman convert <tt>text/html</tt> parts to plain\n"
+" text? This conversion happens after MIME attachments have "
+"been\n"
+" stripped."
+msgstr ""
+"Mailman deve convertire in testo semplice le parti <tt>text/html</tt>?\n"
+" Questa conversione viene eseguita dopo che gli altri\n"
+" allegati MIME sono stati rimossi."
+
+#: Mailman/Gui/ContentFilter.py:110
+msgid ""
+"Action to take when a message matches the content filtering\n"
+" rules."
+msgstr ""
+"Azione da intraprendere quando un la regola di filtro sul\n"
+" contenuto &egrave; applicabile ad un messaggio. "
+
+#: Mailman/Gui/ContentFilter.py:113
+msgid ""
+"One of these actions is take when the message matches one of\n"
+" the content filtering rules, meaning, the top-level\n"
+" content type matches one of the <a\n"
+" href=\"?VARHELP=contentfilter/filter_mime_types\"\n"
+" >filter_mime_types</a>, or the top-level content type does\n"
+" <strong>not</strong> match one of the\n"
+" <a href=\"?VARHELP=contentfilter/pass_mime_types\"\n"
+" >pass_mime_types</a>, or if after filtering the subparts of "
+"the\n"
+" message, the message ends up empty.\n"
+"\n"
+" <p>Note this action is not taken if after filtering the "
+"message\n"
+" still contains content. In that case the message is always\n"
+" forwarded on to the list membership.\n"
+"\n"
+" <p>When messages are discarded, a log entry is written\n"
+" containing the Message-ID of the discarded message. When\n"
+" messages are rejected or forwarded to the list owner, a reason\n"
+" for the rejection is included in the bounce message to the\n"
+" original author. When messages are preserved, they are saved "
+"in\n"
+" a special queue directory on disk for the site administrator "
+"to\n"
+" view (and possibly rescue) but otherwise discarded. This last\n"
+" option is only available if enabled by the site\n"
+" administrator."
+msgstr ""
+"Viene intrapresa una di queste azioni quando una delle regole di\n"
+" filtro &egrave; applicabile al messaggio, ovvero il\n"
+" tipo di contenuto principale corrisponde ad uno dei\n"
+" valori indicati in <a\n"
+" href=\"?VARHELP=contentfilter/filter_mime_types\"\n"
+" >filter_mime_types</a>, oppure tale tipo di contenuto\n"
+" principale <strong>non</strong> corrisponde a nessuno\n"
+" dei valori indicati in <a \n"
+" href=\"?VARHELP=contentfilter/pass_mime_types\"\n"
+" >pass_mime_types</a>, o ancora se dopo il filtraggio\n"
+" degli allegati il messaggio rimane vuoto.\n"
+"\n"
+" <p>Nota che quest'azione non viene intrapresa se\n"
+" dopo il filtraggio degli allegati il messaggio contiene\n"
+" ancora qualcosa. In questo caso il messaggio viene\n"
+" sempre inoltrato agli iscritti della lista.\n"
+"\n"
+" <p>Quando i messaggi vengono scartati, una riga di log\n"
+" contenente il Message-ID del messaggio scartato viene\n"
+" scritta nel file di log. Quando i messaggi vengono\n"
+" rigettati o inoltrati al proprietario della lista,\n"
+" viene inserito il motivo che ha provocanto l'azione\n"
+" nella notifica di errore che viene inviata indietro\n"
+" al mittente. Quando dei messaggi viene conservata una\n"
+" copia, vengono salvati in una speciale directory coda\n"
+" sul disco, cos&igrave; che l'amministratore del server\n"
+" possa vederlo (e possibilmente recuperarlo), ma non\n"
+" viene fatto altro. Questa ultima opzione &egrave;\n"
+" disponibile solo se abilitata dall'amministratore."
+
+#: Mailman/Gui/ContentFilter.py:154
+msgid "Bad MIME type ignored: %(spectype)s"
+msgstr "Tipo MIME non valido ignorato: %(spectype)s"
+
+# /home/mailman/Mailman/Cgi/admin.py:42
+#: Mailman/Gui/Digest.py:36
+msgid "Digest options"
+msgstr "Opzioni digest"
+
+# /home/mailman/Mailman/Digester.py:56
+#: Mailman/Gui/Digest.py:44
+msgid "Batched-delivery digest characteristics."
+msgstr "Caratteristiche degli invii digest."
+
+# /home/mailman/Mailman/Digester.py:59
+#: Mailman/Gui/Digest.py:47
+msgid "Can list members choose to receive list traffic bunched in digests?"
+msgstr ""
+"Gli iscritti possono scegliere di ricevere i messaggi raggruppati in digest "
+"giornalieri?"
+
+# /home/mailman/Mailman/Digester.py:63
+#: Mailman/Gui/Digest.py:51
+msgid "Digest"
+msgstr "Digest"
+
+# /home/mailman/Mailman/Digester.py:63
+#: Mailman/Gui/Digest.py:51
+msgid "Regular"
+msgstr "Normale"
+
+# /home/mailman/Mailman/Digester.py:64
+#: Mailman/Gui/Digest.py:52
+msgid "Which delivery mode is the default for new users?"
+msgstr ""
+"Qual &egrave; la modalit&agrave; di invio predefinita per i nuovi iscritti?"
+
+#: Mailman/Gui/Digest.py:55
+msgid "MIME"
+msgstr "MIME"
+
+# /home/mailman/Mailman/Digester.py:67
+#: Mailman/Gui/Digest.py:55
+msgid "Plain"
+msgstr "Testo"
+
+# /home/mailman/Mailman/Digester.py:68
+#: Mailman/Gui/Digest.py:56
+msgid "When receiving digests, which format is default?"
+msgstr "Quando invio i digest, qual &egrave; il modo predefinito?"
+
+# /home/mailman/Mailman/Digester.py:71
+#: Mailman/Gui/Digest.py:59
+msgid "How big in Kb should a digest be before it gets sent out?"
+msgstr "Quanti Kb dovrebbe essere grande un digest prima di essere inviato?"
+
+#: Mailman/Gui/Digest.py:63
+msgid ""
+"Should a digest be dispatched daily when the size threshold isn't reached?"
+msgstr ""
+"I digest devono essere inviati giornalmente anche se non raggiungono la "
+"dimensione minima?"
+
+# /home/mailman/Mailman/Digester.py:79
+#: Mailman/Gui/Digest.py:67
+msgid "Header added to every digest"
+msgstr "Intestazione aggiunta ad ogni digest"
+
+#: Mailman/Gui/Digest.py:68
+msgid ""
+"Text attached (as an initial message, before the table of contents) to the "
+"top of digests. "
+msgstr ""
+"Testo inserito (come introduzione, prima del sommario) in cima ai digest."
+
+# /home/mailman/Mailman/Digester.py:85
+#: Mailman/Gui/Digest.py:73
+msgid "Footer added to every digest"
+msgstr "Testo aggiunto in fondo ad ogni digest"
+
+#: Mailman/Gui/Digest.py:74
+msgid "Text attached (as a final message) to the bottom of digests. "
+msgstr "Testo aggiunto (come messaggio finale) in fondo ai digest. "
+
+# /home/mailman/Mailman/Archiver/Archiver.py:145
+#: Mailman/Gui/Digest.py:80
+msgid "How often should a new digest volume be started?"
+msgstr "Ogni quanto deve cominciare un nuovo volume degli archivi?"
+
+#: Mailman/Gui/Digest.py:81
+msgid ""
+"When a new digest volume is started, the volume number is\n"
+" incremented and the issue number is reset to 1."
+msgstr ""
+"Quando viene cominciato un nuovo volume dei digest, il\n"
+" il numero del volume viene incrementato e il\n"
+" contatore dei messaggi ricomincia da 1."
+
+#: Mailman/Gui/Digest.py:85
+msgid "Should Mailman start a new digest volume?"
+msgstr "Mailman deve iniziare un nuovo volume digest?"
+
+#: Mailman/Gui/Digest.py:86
+msgid ""
+"Setting this option instructs Mailman to start a new volume\n"
+" with the next digest sent out."
+msgstr ""
+"Con questa opzione puoi chiedere a Mailman di iniziare un\n"
+" nuovo volume a partire dal prossimo digest."
+
+#: Mailman/Gui/Digest.py:90
+msgid ""
+"Should Mailman send the next digest right now, if it is not\n"
+" empty?"
+msgstr ""
+"Mailman deve inviare il prossimo digest adesso se non &egrave;\n"
+" vuoto?"
+
+#: Mailman/Gui/Digest.py:145
+msgid ""
+"The next digest will be sent as volume\n"
+" %(volume)s, number %(number)s"
+msgstr ""
+"Il prossimo digest sar&agrave; inviato come\n"
+" volume %(volume)s, numero %(number)s"
+
+#: Mailman/Gui/Digest.py:150
+msgid "A digest has been sent."
+msgstr "Un digest &egrave; stato spedito."
+
+#: Mailman/Gui/Digest.py:152
+msgid "There was no digest to send."
+msgstr "Non c'erano digest in attesa."
+
+#: Mailman/Gui/GUIBase.py:149
+msgid "Invalid value for variable: %(property)s"
+msgstr "Valore non valido per la variabile %(property)s"
+
+#: Mailman/Gui/GUIBase.py:153
+msgid "Bad email address for option %(property)s: %(val)s"
+msgstr "Indirizzo errato per l'opzione %(property)s: %(val)s"
+
+#: Mailman/Gui/GUIBase.py:179
+msgid ""
+"The following illegal substitution variables were\n"
+" found in the <code>%(property)s</code> string:\n"
+" <code>%(bad)s</code>\n"
+" <p>Your list may not operate properly until you correct "
+"this\n"
+" problem."
+msgstr ""
+"Sono state trovate le seguenti sostituzioni di\n"
+" variabile non permesse nella stringa <code>%(property)s</"
+"code>:\n"
+" <code>%(bad)s</code>\n"
+" <p>La tua lista potrebbe non funzionare correttamente\n"
+" finch&egrave; non risolvi il problema."
+
+#: Mailman/Gui/GUIBase.py:193
+msgid ""
+"Your <code>%(property)s</code> string appeared to\n"
+" have some correctable problems in its new value.\n"
+" The fixed value will be used instead. Please\n"
+" double check that this is what you intended.\n"
+" "
+msgstr ""
+"La tua stringa <code>%(property)s</code> sembrava\n"
+" avere qualche problema correggibile nel suo\n"
+" nuovo valore. User&ograve; il valore corretto.\n"
+" Per favore controlla che questo sia quello che\n"
+" intendevi fare."
+
+# /home/mailman/Mailman/Cgi/admin.py:38
+#: Mailman/Gui/General.py:32
+msgid "General Options"
+msgstr "Opzioni Generali"
+
+#: Mailman/Gui/General.py:46
+msgid "Conceal the member's address"
+msgstr "Nascondi l'indirizzo dell'iscritto"
+
+#: Mailman/Gui/General.py:47
+msgid "Acknowledge the member's posting"
+msgstr "Dai conferma di aver ricevuto il messaggo dall'iscritto"
+
+#: Mailman/Gui/General.py:48
+msgid "Do not send a copy of a member's own post"
+msgstr "Non inviare una copia del messaggio a chi l'ha scritto"
+
+#: Mailman/Gui/General.py:50
+msgid "Filter out duplicate messages to list members (if possible)"
+msgstr "Elimina doppioni nei messaggi inviati agli iscritti (se possibile)"
+
+#: Mailman/Gui/General.py:57
+msgid ""
+"Fundamental list characteristics, including descriptive\n"
+" info and basic behaviors."
+msgstr ""
+"Caratteristiche fondamentali della lista, incluse le informazioni\n"
+" descrittive e i comportamenti di base."
+
+# /home/mailman/Mailman/Cgi/admin.py:247
+#: Mailman/Gui/General.py:60
+msgid "General list personality"
+msgstr "Personalit&agrave; generale della lista"
+
+# /home/mailman/Mailman/MailList.py:363
+#: Mailman/Gui/General.py:63
+msgid "The public name of this list (make case-changes only)."
+msgstr ""
+"Il nome pubblico di questa lista (effettuare soltanto cambi maiuscole/"
+"minuscole)."
+
+#: Mailman/Gui/General.py:64
+msgid ""
+"The capitalization of this name can be changed to make it\n"
+" presentable in polite company as a proper noun, or to make an\n"
+" acronym part all upper case, etc. However, the name will be\n"
+" advertised as the email address (e.g., in subscribe "
+"confirmation\n"
+" notices), so it should <em>not</em> be otherwise altered. "
+"(Email\n"
+" addresses are not case sensitive, but they are sensitive to\n"
+" almost everything else :-)"
+msgstr ""
+"La scrittura in maiuscolo di questo nome pu&ograve; essere\n"
+" cambiata per renderlo presentabile come marchio o nome\n"
+" proprio, o per realizzare un acronimo in maiuscolo,\n"
+" etc. In ogni caso, il nome sar&agrave; pubblicato\n"
+" come indirizzo email (ad esempio, nelle notifiche\n"
+" di conferma iscrizione), quindi <em>non</em>\n"
+" dovrebbe essere alterato in altri modi. (Gli\n"
+" indirizzi email non sono sensibili alla variazione\n"
+" maiuscole/minuscole, ma sono sensibili a\n"
+" pressoch&eacute; tutto il resto :-)"
+
+#: Mailman/Gui/General.py:73
+msgid ""
+"The list administrator email addresses. Multiple\n"
+" administrator addresses, each on separate line is okay."
+msgstr ""
+"L'email dell'amministratore della lista. &Egrave; possibile\n"
+" specificare pi&ugrave; indirizzi su linee separate."
+
+#: Mailman/Gui/General.py:76
+msgid ""
+"There are two ownership roles associated with each mailing\n"
+" list. The <em>list administrators</em> are the people who "
+"have\n"
+" ultimate control over all parameters of this mailing list. "
+"They\n"
+" are able to change any list configuration variable available\n"
+" through these administration web pages.\n"
+"\n"
+" <p>The <em>list moderators</em> have more limited permissions;\n"
+" they are not able to change any list configuration variable, "
+"but\n"
+" they are allowed to tend to pending administration requests,\n"
+" including approving or rejecting held subscription requests, "
+"and\n"
+" disposing of held postings. Of course, the <em>list\n"
+" administrators</em> can also tend to pending requests.\n"
+"\n"
+" <p>In order to split the list ownership duties into\n"
+" administrators and moderators, you must\n"
+" <a href=\"passwords\">set a separate moderator password</a>,\n"
+" and also provide the <a href=\"?VARHELP=general/moderator"
+"\">email\n"
+" addresses of the list moderators</a>. Note that the field you\n"
+" are changing here specifies the list administrators."
+msgstr ""
+"Ci sono due ruoli di gestione associati ad ogni lista.\n"
+" Gli <em>amministratori di lista</em> sono le\n"
+" persone che hanno il controllo su tutti i parametri\n"
+" della lista. Essi possono cambiare tutte le\n"
+" variabili di configurazione che sono visualizzate\n"
+" nelle pagine web di amministrazione.\n"
+"\n"
+" <p>I <em>moderatori di lista</em> hanno permessi\n"
+" pi&ugrave; limitati; essi non possono cambiare i\n"
+" parametri della lista ma possono elaborare le\n"
+" richieste amministrative pendenti, incluso\n"
+" l'approvazione o il rifiuto delle domande di\n"
+" iscrizione e le decisioni sui messaggi trattenuti.\n"
+" Naturalmente queste sono cose che anche gli\n"
+" amministratori possono fare.\n"
+"\n"
+" <p>Allo scopo di dividere i compiti di moderatori\n"
+" e amministratori, puoi\n"
+" <a href=\"passwords\">decidere una password\n"
+" di moderatore</a> e devi inoltre fornire\n"
+" <a href=\"?VARHELP=general/moderator\">l'indirizzo\n"
+" email dei moderatori</a>. Nota che il campo che stai\n"
+" cambiando qui &egrave; quello degli amministratori."
+
+#: Mailman/Gui/General.py:97
+msgid ""
+"The list moderator email addresses. Multiple\n"
+" moderator addresses, each on separate line is okay."
+msgstr ""
+"L'email del moderatore della lista. &Egrave; possibile\n"
+" specificare pi&ugrave; indirizzi su linee separate."
+
+#: Mailman/Gui/General.py:100
+msgid ""
+"There are two ownership roles associated with each mailing\n"
+" list. The <em>list administrators</em> are the people who "
+"have\n"
+" ultimate control over all parameters of this mailing list. "
+"They\n"
+" are able to change any list configuration variable available\n"
+" through these administration web pages.\n"
+"\n"
+" <p>The <em>list moderators</em> have more limited permissions;\n"
+" they are not able to change any list configuration variable, "
+"but\n"
+" they are allowed to tend to pending administration requests,\n"
+" including approving or rejecting held subscription requests, "
+"and\n"
+" disposing of held postings. Of course, the <em>list\n"
+" administrators</em> can also tend to pending requests.\n"
+"\n"
+" <p>In order to split the list ownership duties into\n"
+" administrators and moderators, you must\n"
+" <a href=\"passwords\">set a separate moderator password</a>,\n"
+" and also provide the email addresses of the list moderators in\n"
+" this section. Note that the field you are changing here\n"
+" specifies the list moderators."
+msgstr ""
+"Ci sono due ruoli di gestione associati ad ogni lista\n"
+" Gli <em>amministratori di lista</em> sono le\n"
+" persone che hanno il controllo su tutti i parametri\n"
+" della lista. Essi possono cambiare tutte le\n"
+" variabili di configurazione che sono visualizzate\n"
+" nelle pagine web di amministrazione.\n"
+"\n"
+" <p>I <em>moderatori di lista</em> hanno permessi\n"
+" pi&ugrave; limitati; essi non possono cambiare i\n"
+" parametri della lista ma possono elaborare le\n"
+" richieste amministrative pendenti, incluso\n"
+" l'approvazione o il rifiuto delle domande di\n"
+" iscrizione e le decisioni sui messaggi trattenuti.\n"
+" Naturalmente queste sono cose che anche gli\n"
+" amministratori possono fare.\n"
+"\n"
+" <p>Allo scopo di dividere i compiti di moderatori\n"
+" e amministratori, puoi decidere una\n"
+" <a href=\"passwords\">password di moderatore</a>\n"
+" e devi inoltre fornire l'indirizzo email dei moderatori\n"
+" in questa sezione. Nota che il campo che stai cambiando\n"
+" qui &egrave; quello dei moderatori."
+
+# /home/mailman/Mailman/MailList.py:384
+#: Mailman/Gui/General.py:121
+msgid "A terse phrase identifying this list."
+msgstr "Una frase concisa che identifica questa lista."
+
+#: Mailman/Gui/General.py:123
+msgid ""
+"This description is used when the mailing list is listed with\n"
+" other mailing lists, or in headers, and so forth. It "
+"should\n"
+" be as succinct as you can get it, while still identifying "
+"what\n"
+" the list is."
+msgstr ""
+"Questa descrizione &egrave; usata quando la lista &egrave;\n"
+" elencata con altre liste, o nelle intestazioni\n"
+" e cos&igrave; via. Dovrebbe essere la descrizione\n"
+" pi&ugrave; breve possibile che identifichi questa lista."
+
+#: Mailman/Gui/General.py:129
+msgid ""
+"An introductory description - a few paragraphs - about the\n"
+" list. It will be included, as html, at the top of the "
+"listinfo\n"
+" page. Carriage returns will end a paragraph - see the details\n"
+" for more info."
+msgstr ""
+"Una descrizione introduttiva - pochi paragrafi - alla lista.\n"
+" Sar&agrave; inclusa, come html, in cima alla\n"
+" pagina listinfo. I ritorni a capo delimitano\n"
+" i paragrafi - vedi i dettagli per maggiori informazioni."
+
+#: Mailman/Gui/General.py:133
+msgid ""
+"The text will be treated as html <em>except</em> that\n"
+" newlines will be translated to &lt;br&gt; - so you can use "
+"links,\n"
+" preformatted text, etc, but don't put in carriage returns "
+"except\n"
+" where you mean to separate paragraphs. And review your changes "
+"-\n"
+" bad html (like some unterminated HTML constructs) can prevent\n"
+" display of the entire listinfo page."
+msgstr ""
+"Il testo sar&agrave; trattato come html <em>eccetto</em>\n"
+" che per i ritorni a capo che saranno tradotti\n"
+" in &lt;br&gt; - in questo modo puoi usare link,\n"
+" testo preformattato, etc. ma non inserire ritorni\n"
+" a capo tranne dove vuoi separare i paragrafi.\n"
+" Controlla la sintassi delle tue variazioni: un errore\n"
+" nel codice HTML (come ad esempio un costrutto non terminato)\n"
+" pu&ograve; inficiare la visualizzazione dell'intera\n"
+" pagina listinfo."
+
+# /home/mailman/Mailman/MailList.py:405
+#: Mailman/Gui/General.py:141
+msgid "Prefix for subject line of list postings."
+msgstr "Prefisso per la linea dell'oggetto nei messaggi alla lista."
+
+#: Mailman/Gui/General.py:142
+msgid ""
+"This text will be prepended to subject lines of messages\n"
+" posted to the list, to distinguish mailing list messages in in\n"
+" mailbox summaries. Brevity is premium here, it's ok to "
+"shorten\n"
+" long mailing list names to something more concise, as long as "
+"it\n"
+" still identifies the mailing list."
+msgstr ""
+"Questo testo verr&agrave; preposto all'oggetto dei messaggi\n"
+" inviati alla lista, al fine di distinguere i\n"
+" messaggi della mailing list nella mailbox.\n"
+" La concisione &egrave; fondamentale qui,\n"
+" &egrave; corretto accorciare i nomi lunghi\n"
+" delle liste con qualcosa di pi&ugrave; breve,\n"
+" che comunque le identifichi."
+
+#: Mailman/Gui/General.py:149
+msgid ""
+"Hide the sender of a message, replacing it with the list\n"
+" address (Removes From, Sender and Reply-To fields)"
+msgstr ""
+"Nascondi il mittente di un messaggio, sostituendolo con\n"
+" l'indirizzo della lista (Elimina i campi From,\n"
+" Sender e Reply-To)"
+
+#: Mailman/Gui/General.py:152
+msgid "<tt>Reply-To:</tt> header munging"
+msgstr "Intestazione <tt>Reply-To:</tt> esplicita"
+
+#: Mailman/Gui/General.py:155
+msgid ""
+"Should any existing <tt>Reply-To:</tt> header found in the\n"
+" original message be stripped? If so, this will be done\n"
+" regardless of whether an explict <tt>Reply-To:</tt> header is\n"
+" added by Mailman or not."
+msgstr ""
+"Devo togliere ogni campo preesistente <tt>Reply-To:</tt>\n"
+" nel messaggio originale? Se s&igrave; questo verr&agrave; "
+"fatto\n"
+" sempre, anche se poi Mailman non ne aggiunger&agrave; uno suo."
+
+#: Mailman/Gui/General.py:161
+msgid "Explicit address"
+msgstr "Indirizzo esplicito"
+
+# /home/mailman/Mailman/MailList.py:428
+#: Mailman/Gui/General.py:161
+msgid "Poster"
+msgstr "Mittente"
+
+#: Mailman/Gui/General.py:161
+msgid "This list"
+msgstr "Questa lista"
+
+#: Mailman/Gui/General.py:162
+msgid ""
+"Where are replies to list messages directed?\n"
+" <tt>Poster</tt> is <em>strongly</em> recommended for most "
+"mailing\n"
+" lists."
+msgstr ""
+"Dove sono dirette le risposte ai messaggi provenienti dalla lista?\n"
+" <tt>Mittente</tt> &egrave; <em>fortemente</em>\n"
+" raccomandato per molte liste."
+
+#: Mailman/Gui/General.py:167
+msgid ""
+"This option controls what Mailman does to the\n"
+" <tt>Reply-To:</tt> header in messages flowing through this\n"
+" mailing list. When set to <em>Poster</em>, no <tt>Reply-To:</"
+"tt>\n"
+" header is added by Mailman, although if one is present in the\n"
+" original message, it is not stripped. Setting this value to\n"
+" either <em>This list</em> or <em>Explicit address</em> causes\n"
+" Mailman to insert a specific <tt>Reply-To:</tt> header in all\n"
+" messages, overriding the header in the original message if\n"
+" necessary (<em>Explicit address</em> inserts the value of <a\n"
+" href=\"?VARHELP=general/reply_to_address\">reply_to_address</"
+"a>).\n"
+" \n"
+" <p>There are many reasons not to introduce or override the\n"
+" <tt>Reply-To:</tt> header. One is that some posters depend on\n"
+" their own <tt>Reply-To:</tt> settings to convey their valid\n"
+" return address. Another is that modifying <tt>Reply-To:</tt>\n"
+" makes it much more difficult to send private replies. See <a\n"
+" href=\"http://www.unicom.com/pw/reply-to-harmful.html\">`Reply-"
+"To'\n"
+" Munging Considered Harmful</a> for a general discussion of "
+"this\n"
+" issue. See <a\n"
+" href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml"
+"\">Reply-To\n"
+" Munging Considered Useful</a> for a dissenting opinion.\n"
+"\n"
+" <p>Some mailing lists have restricted posting privileges, with "
+"a\n"
+" parallel list devoted to discussions. Examples are `patches' "
+"or\n"
+" `checkin' lists, where software changes are posted by a "
+"revision\n"
+" control system, but discussion about the changes occurs on a\n"
+" developers mailing list. To support these types of mailing\n"
+" lists, select <tt>Explicit address</tt> and set the\n"
+" <tt>Reply-To:</tt> address below to point to the parallel\n"
+" list."
+msgstr ""
+"Questa opzione decide cosa fa Mailman con il campo\n"
+" <tt>Reply-To:</tt> nei messaggi che passano sulla lista.\n"
+" Se scegli <em>Mittente</em>, allora Mailman non\n"
+" aggiunger&agrave; nessun <tt>Reply-To:</tt> e non\n"
+" toglier&agrave; i valori eventualmente presenti.\n"
+" Se scegli <em>Questa lista</em> o <em>Indirizzo\n"
+" esplicito</em> allora Mailman inserir&agrave; uno\n"
+" specifico <tt>Reply-To:</tt> in tutti i messaggi\n"
+" sovrascrivendo il valore eventualmente presente nel\n"
+" messaggio originale (<em>Indirizzo esplicito</em>\n"
+" inserisce il valore del campo\n"
+" <a href=\"?VARHELP=general/reply_to_address\">\n"
+" reply_to_address</a>).\n"
+" \n"
+" <p>Ci sono molti motivi per i quali non &egrave;\n"
+" bene sovrascrivere il campo <tt>Reply-To:</tt>.\n"
+" Uno &egrave; che per qualche persona la validit&agrave;\n"
+" del <tt>Reply-To:</tt> impostato da loro &egrave;\n"
+" fondamentale per poter ricevere le risposte.\n"
+" Un altro &egrave; che modificando il <tt>Reply-To:</tt>\n"
+" diventa pi&ugrave; difficile inviare risposte private.\n"
+" Vedi\n"
+" <a href=\"http://www.unicom.com/pw/reply-to-harmful.html\">\n"
+" `Reply-To' Munging Considered Harmful</a> per una discussione\n"
+" generale su questo argomento. Vedi\n"
+" <a href=\"http://www.metasystema.org/essays/reply-to-useful."
+"mhtml\">\n"
+" Reply-To Munging Considered Useful</a> per un'opinione\n"
+" diversa.\n"
+"\n"
+" <p>Alcune liste hanno l'invio di messaggi ristretto\n"
+" a poche persone, con una lista parallela dedicata alla\n"
+" discussione. Ad esempio una lista con annunci di `patch'\n"
+" o `checkin' nelle quali le comunicazioni vengono inviate\n"
+" automaticamente da un sistema di controllo delle revisioni\n"
+" ma la discussione avviene sulla lista degli sviluppatori.\n"
+" Per supportare questo tipo di liste, seleziona\n"
+" <tt>Indirizzo esplicito</tt> and scegli il <tt>Reply-To:</tt>\n"
+" sottostante in modo che punti alla lista parallela."
+
+#: Mailman/Gui/General.py:199
+msgid "Explicit <tt>Reply-To:</tt> header."
+msgstr "Intestazione <tt>Reply-To:</tt> esplicita."
+
+#: Mailman/Gui/General.py:201
+msgid ""
+"This is the address set in the <tt>Reply-To:</tt> header\n"
+" when the <a\n"
+" href=\"?VARHELP=general/reply_goes_to_list"
+"\">reply_goes_to_list</a>\n"
+" option is set to <em>Explicit address</em>.\n"
+"\n"
+" <p>There are many reasons not to introduce or override the\n"
+" <tt>Reply-To:</tt> header. One is that some posters depend on\n"
+" their own <tt>Reply-To:</tt> settings to convey their valid\n"
+" return address. Another is that modifying <tt>Reply-To:</tt>\n"
+" makes it much more difficult to send private replies. See <a\n"
+" href=\"http://www.unicom.com/pw/reply-to-harmful.html\">`Reply-"
+"To'\n"
+" Munging Considered Harmful</a> for a general discussion of "
+"this\n"
+" issue. See <a\n"
+" href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml"
+"\">Reply-To\n"
+" Munging Considered Useful</a> for a dissenting opinion.\n"
+"\n"
+" <p>Some mailing lists have restricted posting privileges, with "
+"a\n"
+" parallel list devoted to discussions. Examples are `patches' "
+"or\n"
+" `checkin' lists, where software changes are posted by a "
+"revision\n"
+" control system, but discussion about the changes occurs on a\n"
+" developers mailing list. To support these types of mailing\n"
+" lists, specify the explicit <tt>Reply-To:</tt> address here. "
+"You\n"
+" must also specify <tt>Explicit address</tt> in the\n"
+" <tt>reply_goes_to_list</tt>\n"
+" variable.\n"
+"\n"
+" <p>Note that if the original message contains a\n"
+" <tt>Reply-To:</tt> header, it will not be changed."
+msgstr ""
+"Questo &egrave; il valore che assume il campo\n"
+" <tt>Reply-To:</tt> dei messaggi che passano sulla lista\n"
+" quando l'opzione\n"
+" <a href=\"?VARHELP=general/reply_goes_to_list"
+"\">reply_goes_to_list</a>\n"
+" &egrave; settata a <em>Indirizzo esplicito</em>.\n"
+"\n"
+" <p>Ci sono molti motivi per i quali non &egrave;\n"
+" bene sovrascrivere il campo <tt>Reply-To:</tt>.\n"
+" Uno &egrave; che per qualche persona la validit&agrave;\n"
+" del <tt>Reply-To:</tt> impostato da loro &egrave;\n"
+" fondamentale per poter ricevere le risposte.\n"
+" Un altro &egrave; che modificando il <tt>Reply-To:</tt>\n"
+" diventa pi&ugrave; difficile inviare risposte private.\n"
+" Vedi\n"
+" <a href=\"http://www.unicom.com/pw/reply-to-harmful.html\">\n"
+" `Reply-To' Munging Considered Harmful</a> per una discussione\n"
+" generale su questo argomento. Vedi\n"
+" <a href=\"http://www.metasystema.org/essays/reply-to-useful."
+"mhtml\">\n"
+" Reply-To Munging Considered Useful</a> per una opinione\n"
+" diversa.\n"
+"\n"
+" <p>Alcune liste hanno l'invio di messaggi ristretto\n"
+" a poche persone, con una lista parallela dedicata alla\n"
+" discussione. Ad esempio una lista con annunci di `patches'\n"
+" or `checkin' nelle quali le comunicazioni vengono inviate\n"
+" automaticamente da un sistema di controllo delle revisioni\n"
+" ma la discussione avviene sulla lista degli sviluppatori.\n"
+"\n"
+" Per supportare questo tipo di liste, compila qui il\n"
+" <tt>Reply-To:</tt> che vuoi usare e scegli\n"
+" <tt>Indirizzo esplicito</tt> nella variabile\n"
+" <tt>risposte vanno alla lista</tt>\n"
+"\n"
+" <p>Nota che se il messaggio originale conteneva\n"
+" un <tt>Reply-To:</tt>, esso non sar&agrave; cambiato."
+
+#: Mailman/Gui/General.py:230
+msgid "Umbrella list settings"
+msgstr "Impostazioni per liste ombrello"
+
+#: Mailman/Gui/General.py:233
+msgid ""
+"Send password reminders to, eg, \"-owner\" address instead of\n"
+" directly to user."
+msgstr ""
+"Invia i promemoria all'indirizzo \"-owner\" invece che\n"
+" direttamente all'utente."
+
+#: Mailman/Gui/General.py:236
+msgid ""
+"Set this to yes when this list is intended to cascade only\n"
+" to other mailing lists. When set, meta notices like\n"
+" confirmations and password reminders will be directed to an\n"
+" address derived from the member's address - it will have the\n"
+" value of \"umbrella_member_suffix\" appended to the member's\n"
+" account name."
+msgstr ""
+"Setta questo valore su s&igrave; quando questa lista &egrave;\n"
+" usata solo per distribuire ad altre liste. Quando\n"
+" settato, le notifiche come le conferme e i promemoria\n"
+" verranno diretti ad un indirizzo derivato dall'indirizzo\n"
+" dell'iscritto - esso avr&agrave; il valore di\n"
+" \"umbrella_member_suffix\" aggiunto a destra."
+
+#: Mailman/Gui/General.py:244
+msgid ""
+"Suffix for use when this list is an umbrella for other\n"
+" lists, according to setting of previous \"umbrella_list\"\n"
+" setting."
+msgstr ""
+"Suffisso da usare quando questa lista &egrave; un ombrello\n"
+" per altre liste, in accordo con l'impostazione\n"
+" del precedente parametro \"umbrella_list\"."
+
+#: Mailman/Gui/General.py:248
+msgid ""
+"When \"umbrella_list\" is set to indicate that this list has\n"
+" other mailing lists as members, then administrative notices "
+"like\n"
+" confirmations and password reminders need to not be sent to "
+"the\n"
+" member list addresses, but rather to the owner of those member\n"
+" lists. In that case, the value of this setting is appended to\n"
+" the member's account name for such notices. `-owner' is the\n"
+" typical choice. This setting has no effect when \"umbrella_list"
+"\"\n"
+" is \"No\"."
+msgstr ""
+"Quando abiliti \"umbrella_list\" per indicare che questa\n"
+" lista ha come iscritti altre liste, le notifiche \n"
+" amministrative come le conferme e i promemoria\n"
+" delle password non verranno inviate agli iscritti delle\n"
+" liste membro ma invece ai rispettivi amministratori.\n"
+" In questo caso, il valore di questa impostazione\n"
+" verr&agrave; aggiunto al nome della lista membro.\n"
+" `-owner' &egrave; la scelta tipica.\n"
+" Questo valore non ha effetto quando \"umbrella_list\"\n"
+" &egrave; su \"No\"."
+
+# /home/mailman/Mailman/MailCommandHandler.py:277
+#: Mailman/Gui/General.py:260
+msgid "Send monthly password reminders?"
+msgstr "Invio mensilmente un promemoria con le password?"
+
+#: Mailman/Gui/General.py:262
+msgid ""
+"Turn this on if you want password reminders to be sent once\n"
+" per month to your members. Note that members may disable "
+"their\n"
+" own individual password reminders."
+msgstr ""
+"Abilita questa opzione se vuoi che vengano inviati promemoria\n"
+" mensili per ricordare la password ai tuoi iscritti.\n"
+" Nota che essi possono disabilitare individualmente l'invio."
+
+# /home/mailman/Mailman/MailList.py:414
+#: Mailman/Gui/General.py:267
+msgid ""
+"List-specific text prepended to new-subscriber welcome\n"
+" message"
+msgstr ""
+"Testo, specifico di questa lista, che verr&agrave; \n"
+" inserito in testa ai messaggi di benvenuto\n"
+" inviati ai nuovi iscritti"
+
+#: Mailman/Gui/General.py:270
+msgid ""
+"This value, if any, will be added to the front of the\n"
+" new-subscriber welcome message. The rest of the welcome "
+"message\n"
+" already describes the important addresses and URLs for the\n"
+" mailing list, so you don't need to include any of that kind of\n"
+" stuff here. This should just contain mission-specific kinds "
+"of\n"
+" things, like etiquette policies or team orientation, or that "
+"kind\n"
+" of thing.\n"
+"\n"
+" <p>Note that this text will be wrapped, according to the\n"
+" following rules:\n"
+" <ul><li>Each paragraph is filled so that no line is longer "
+"than\n"
+" 70 characters.\n"
+" <li>Any line that begins with whitespace is not filled.\n"
+" <li>A blank line separates paragraphs.\n"
+" </ul>"
+msgstr ""
+"Questo valore, se presente, sar&agrave; aggiunto in testa\n"
+" al messaggio di benvenuto ai nuovi utenti. Il resto\n"
+" del messaggio contiene gi&agrave; gli indirizzi e\n"
+" gli URL necessari per accedere ai servizi della lista,\n"
+" quindi questo tipo di informazioni pu&ograve; essere\n"
+" omesso. Questo testo dovrebbe contenere solo le\n"
+" informazioni relative allo scopo della lista e alle sue\n"
+" regole, o cose di questo genere.\n"
+" <p>Nota che il testo verr&agrave; gestito in base\n"
+" alle seguenti regole:\n"
+" <ul><li>Ogni paragrafo viene formattato in modo che\n"
+" le righe siano lunghe al massimo 70 caratteri.\n"
+" <li>Ogni riga che comincia con spazi bianchi\n"
+" non sar&agrave; formattata.\n"
+" <li>Una riga vuota separa i paragrafi.\n"
+" </ul>"
+
+# /home/mailman/Mailman/MailList.py:480
+#: Mailman/Gui/General.py:287
+msgid "Send welcome message to newly subscribed members?"
+msgstr "Devo inviare un messaggio di benvenuto ai nuovi iscritti?"
+
+#: Mailman/Gui/General.py:288
+msgid ""
+"Turn this off only if you plan on subscribing people manually\n"
+" and don't want them to know that you did so. This option is "
+"most\n"
+" useful for transparently migrating lists from some other "
+"mailing\n"
+" list manager to Mailman."
+msgstr ""
+"Disattivalo solo se hai in progetto di iscrivere le persone \n"
+" manualmente e non vuoi che loro sappiano che l'hai fatto.\n"
+" Questa opzione &egrave; molto utile per trasferire\n"
+" facilmente le liste da un altro list manager a Mailman."
+
+#: Mailman/Gui/General.py:294
+msgid ""
+"Text sent to people leaving the list. If empty, no special\n"
+" text will be added to the unsubscribe message."
+msgstr ""
+"Testo inviato alle persone che abbandonano la lista. Se\n"
+" vuoto, non verr&agrave; aggiunto nessun messaggio\n"
+" alla notifica di rimozione."
+
+# /home/mailman/Mailman/MailList.py:480
+#: Mailman/Gui/General.py:298
+msgid "Send goodbye message to members when they are unsubscribed?"
+msgstr ""
+"Devo inviare un messaggio di saluto agli iscritti quando si cancellano?"
+
+#: Mailman/Gui/General.py:301
+msgid ""
+"Should the list moderators get immediate notice of new\n"
+" requests, as well as daily notices about collected ones?"
+msgstr ""
+"L'amministratore deve ricevere immediata notifica di ogni\n"
+" nuova richiesta, oltre alle notifiche con\n"
+" riassunto giornaliero?"
+
+#: Mailman/Gui/General.py:304
+msgid ""
+"List moderators (and list administrators) are sent daily\n"
+" reminders of requests pending approval, like subscriptions to "
+"a\n"
+" moderated list, or postings that are being held for one reason "
+"or\n"
+" another. Setting this option causes notices to be sent\n"
+" immediately on the arrival of new requests as well."
+msgstr ""
+"Agli amministratori (e ai moderatori) di lista &egrave; inviato\n"
+" giornalmente un promemoria con l'elenco delle\n"
+" richieste amministrative in attesa di approvazione.\n"
+" Ad esempio iscrizioni ad una lista moderata o\n"
+" messaggi che sono stati trattenuti per una\n"
+" qualche ragione. Attivando questa opzione si\n"
+" avr&agrave; l'invio immediato delle notifiche."
+
+# /home/mailman/Mailman/MailList.py:498
+#: Mailman/Gui/General.py:311
+msgid ""
+"Should administrator get notices of subscribes and\n"
+" unsubscribes?"
+msgstr ""
+"L'amministratore deve ricevere notizia delle iscrizioni\n"
+" e cancellazioni?"
+
+# /home/mailman/Mailman/MailList.py:501
+#: Mailman/Gui/General.py:316
+msgid "Send mail to poster when their posting is held for approval?"
+msgstr ""
+"Devo inviare un messaggio al mittente quando il suo messaggio viene "
+"trattenuto per approvazione?"
+
+#: Mailman/Gui/General.py:318
+msgid ""
+"Approval notices are sent when mail triggers certain of the\n"
+" limits <em>except</em> routine list moderation and spam "
+"filters,\n"
+" for which notices are <em>not</em> sent. This option "
+"overrides\n"
+" ever sending the notice."
+msgstr ""
+"Notifiche della richiesta di approvazione vengono inviate quando\n"
+" un messaggio attiva certi limiti <em>eccetto</em>\n"
+" il caso di lista moderata o di filtraggio anti-spam,\n"
+" nel qual caso le notifiche <em>non</em> sono inviate.\n"
+" Questa opzione modifica il comportamento mandando la\n"
+" notifica sempre."
+
+#: Mailman/Gui/General.py:323
+msgid "Additional settings"
+msgstr "Parametri Addizionali"
+
+#: Mailman/Gui/General.py:326
+msgid "Emergency moderation of all list traffic."
+msgstr "Moderazione di emergenza per tutto il traffico della lista."
+
+#: Mailman/Gui/General.py:327
+msgid ""
+"When this option is enabled, all list traffic is emergency\n"
+" moderated, i.e. held for moderation. Turn this option on when\n"
+" your list is experiencing a flamewar and you want a cooling "
+"off\n"
+" period."
+msgstr ""
+"Quando questa opzione viene abilitata, tutto il traffico\n"
+" della lista viene moderato, ovvero sospeso in attesa\n"
+" di decisione. Abilita questa opzione quando la lista\n"
+" sta subendo una flamewar e vuoi raffreddare gli animi."
+
+#: Mailman/Gui/General.py:339
+msgid ""
+"Default options for new members joining this list.<input\n"
+" type=\"hidden\" name=\"new_member_options\" value=\"ignore\">"
+msgstr ""
+"Opzioni di default per i nuovi iscritti a questa lista.<input\n"
+" type=\"hidden\" name=\"new_member_options\" value=\"ignore\">"
+
+#: Mailman/Gui/General.py:342
+msgid ""
+"When a new member is subscribed to this list, their initial\n"
+" set of options is taken from the this variable's setting."
+msgstr ""
+"Quando un nuovo utente si iscrive alla lista, le sue opzioni\n"
+" iniziali vengono prese da questa variabile."
+
+#: Mailman/Gui/General.py:346
+msgid ""
+"(Administrivia filter) Check postings and intercept ones\n"
+" that seem to be administrative requests?"
+msgstr ""
+"(filtro amministrativo) Controllo i messaggi e intercetto\n"
+" quelli che sembrano essere richieste amministrative?"
+
+#: Mailman/Gui/General.py:349
+msgid ""
+"Administrivia tests will check postings to see whether it's\n"
+" really meant as an administrative request (like subscribe,\n"
+" unsubscribe, etc), and will add it to the the administrative\n"
+" requests queue, notifying the administrator of the new "
+"request,\n"
+" in the process."
+msgstr ""
+"Questa opzione abilita Alcuni test che controlleranno i messaggi\n"
+" per verificare se siano delle richieste amministrative\n"
+" (subscribe, unsubscribe, eccetera.); in caso affermativo,\n"
+" questi messaggi vengono aggiunti alla coda delle richieste\n"
+" amministrative e viene informanto l'amministratore della\n"
+" lista."
+
+# /home/mailman/Mailman/MailList.py:509
+#: Mailman/Gui/General.py:356
+msgid ""
+"Maximum length in kilobytes (KB) of a message body. Use 0\n"
+" for no limit."
+msgstr ""
+"Massima lunghezza in kilobytes (KB) del testo di un messaggio.\n"
+" Usa 0 per non mettere limiti."
+
+# /home/mailman/Mailman/MailList.py:517
+#: Mailman/Gui/General.py:360
+msgid "Host name this list prefers for email."
+msgstr "Nome di host che questa lista preferisce."
+
+#: Mailman/Gui/General.py:362
+msgid ""
+"The \"host_name\" is the preferred name for email to\n"
+" mailman-related addresses on this host, and generally should "
+"be\n"
+" the mail host's exchanger address, if any. This setting can "
+"be\n"
+" useful for selecting among alternative names of a host that "
+"has\n"
+" multiple addresses."
+msgstr ""
+"host_name &egrave; il nome usato per i messaggi relativi\n"
+" a Mailman su questo host e generalmente dovrebbe\n"
+" essere l'indirizzo della macchina che esegue lo\n"
+" smistamento della posta, se ce n'&egrave; una.\n"
+" Questo parametro pu&ograve; essere utile per scegliere\n"
+" il nome tra varie alternative su host che hanno\n"
+" indirizzi multipli."
+
+#: Mailman/Gui/General.py:374
+msgid ""
+"Should messages from this mailing list include the\n"
+" <a href=\"http://www.faqs.org/rfcs/rfc2369.html\">RFC 2369</"
+"a>\n"
+" (i.e. <tt>List-*</tt>) headers? <em>Yes</em> is highly\n"
+" recommended."
+msgstr ""
+"I messaggi di questa lista devono includere i campi\n"
+" <a href=\"http://www.faqs.org/rfcs/rfc2369.html\">RFC2369</"
+"a>\n"
+" (ad esempio <tt>List-*</tt>)? &Egrave; altamente \n"
+" raccomandato rispondere s&igrave;."
+
+#: Mailman/Gui/General.py:379
+msgid ""
+"RFC 2369 defines a set of List-* headers that are\n"
+" normally added to every message sent to the list "
+"membership.\n"
+" These greatly aid end-users who are using standards "
+"compliant\n"
+" mail readers. They should normally always be enabled.\n"
+"\n"
+" <p>However, not all mail readers are standards compliant "
+"yet,\n"
+" and if you have a large number of members who are using\n"
+" non-compliant mail readers, they may be annoyed at these\n"
+" headers. You should first try to educate your members as "
+"to\n"
+" why these headers exist, and how to hide them in their "
+"mail\n"
+" clients. As a last resort you can disable these headers, "
+"but\n"
+" this is not recommended (and in fact, your ability to "
+"disable\n"
+" these headers may eventually go away)."
+msgstr ""
+"RFC 2369 definisce un insieme di campi List-* che sono\n"
+" normalmente aggiunte ad ogni messaggio inviato agli\n"
+" iscritti della lista.\n"
+" Questo aiuta parecchio gli utenti che utilizzano "
+"programmi\n"
+" di posta aderenti agli standard. Questa opzione\n"
+" dovrebbe essere di norma abilitata.\n"
+" <p>Purtroppo, non tutti i programmi di posta sono "
+"aderenti\n"
+" agli standard e se la maggior parte dei tuoi utenti hanno\n"
+" programmi non conformi, essi potrebbero essere "
+"infastiditi \n"
+" da questi campi. Prima di tutto dovresti provare ad\n"
+" educare i tuoi utenti sul motivo per cui questi campi\n"
+" esistono e su come nasconderle nel loro programma. Come\n"
+" ultima scelta puoi disabilitare i campi, anche se\n"
+" questa soluzione &egrave; non raccomandata (e in futuro "
+"la\n"
+" possibilit&agrave; di rimuovere i campi potrebbe\n"
+" essere rimossa)."
+
+#: Mailman/Gui/General.py:397
+msgid "Should postings include the <tt>List-Post:</tt> header?"
+msgstr "I messaggi devono contenere un campo <tt>List-Post:</tt>?"
+
+#: Mailman/Gui/General.py:398
+msgid ""
+"The <tt>List-Post:</tt> header is one of the headers\n"
+" recommended by\n"
+" <a href=\"http://www.faqs.org/rfcs/rfc2369.html\">RFC 2369</"
+"a>.\n"
+" However for some <em>announce-only</em> mailing lists, only a\n"
+" very select group of people are allowed to post to the list; "
+"the\n"
+" general membership is usually not allowed to post. For lists "
+"of\n"
+" this nature, the <tt>List-Post:</tt> header is misleading.\n"
+" Select <em>No</em> to disable the inclusion of this header. "
+"(This\n"
+" does not affect the inclusion of the other <tt>List-*:</tt>\n"
+" headers.)"
+msgstr ""
+"Il campo <tt>List-Post:</tt> &egrave; una di quelle raccomandate da\n"
+" <a href=\"http://www.faqs.org/rfcs/rfc2369.html\">RFC 2369</"
+"a>.\n"
+" In ogni caso, per le liste <em>solo-annunci</em>, solamente un\n"
+" piccolo gruppo di persone &egrave; abilitato a inviare "
+"messaggi\n"
+" alla lista; agli altri &egrave; vietato. Per le liste di\n"
+" questo tipo, il campo <tt>List-Post:</tt> &egrave;\n"
+" fuorviante. (Questo non influenza l'inclusione degli altri\n"
+" campi <tt>List-*:</tt>.)"
+
+#: Mailman/Gui/General.py:416
+msgid ""
+"<b>real_name</b> attribute not\n"
+" changed! It must differ from the list's name by case\n"
+" only."
+msgstr ""
+"<p>Attributo <b>real_name</b> non\n"
+" cambiato! Pu&ograve; differire dal nome della lista\n"
+" solo per minuscole/maiuscole."
+
+#: Mailman/Gui/General.py:437
+msgid ""
+"You cannot add a Reply-To: to an explicit\n"
+" address if that address is blank. Resetting these values."
+msgstr ""
+"Non puoi aggiungere un Reply-To: verso un esplicito indirizzo\n"
+" se l'indirizzo non è specificato. Azzero questo valore."
+
+#: Mailman/Gui/Language.py:34
+msgid "Language&nbsp;options"
+msgstr "Opzioni&nbsp;di&nbsp;lingua"
+
+#: Mailman/Gui/Language.py:66
+msgid "Natural language (internationalization) options."
+msgstr "Opzioni di lingua naturale (internazionalizzazione)."
+
+# /home/mailman/Mailman/MailList.py:380
+#: Mailman/Gui/Language.py:71
+msgid "Default language for this list."
+msgstr "Lingua predefinita per questa lista."
+
+#: Mailman/Gui/Language.py:72
+msgid ""
+"This is the default natural language for this mailing list.\n"
+" If <a href=\"?VARHELP=language/available_languages\">more than "
+"one\n"
+" language</a> is supported then users will be able to select "
+"their\n"
+" own preferences for when they interact with the list. All "
+"other\n"
+" interactions will be conducted in the default language. This\n"
+" applies to both web-based and email-based messages, but not to\n"
+" email posted by list members."
+msgstr ""
+"Questa &egrave; la lingua naturale predefinita per questa lista.\n"
+" Se <a href=\"?VARHELP=language/available_languages"
+"\">pi&ugrave;\n"
+" di una lingua</a> &egrave; supportata, allora gli utenti\n"
+" potranno scegliere la loro personale preferenza per quando\n"
+" interagiscono con la lista. Tutte le altre interazioni\n"
+" saranno condotte con la lingua di default. Questo si applica\n"
+" sia ai messaggi dell'interfaccia web che a quelli via mail,\n"
+" ma non ai messaggi inviati dagli iscritti."
+
+# /home/mailman/Mailman/MailList.py:380
+#: Mailman/Gui/Language.py:82
+msgid "Languages supported by this list."
+msgstr "Lingue supportate da questa lista."
+
+#: Mailman/Gui/Language.py:84
+msgid ""
+"These are all the natural languages supported by this list.\n"
+" Note that the\n"
+" <a href=\"?VARHELP=language/preferred_language\">default\n"
+" language</a> must be included."
+msgstr ""
+"Queste sono tutte le lingue naturali supportate da questa lista.\n"
+" Nota che la\n"
+" <a href=\"?VARHELP=language/preferred_language\">lingua\n"
+" di default</a> deve essere inclusa."
+
+#: Mailman/Gui/Language.py:90
+msgid "Always"
+msgstr "Sempre"
+
+#: Mailman/Gui/Language.py:90
+msgid "As needed"
+msgstr "Quando serve"
+
+#: Mailman/Gui/Language.py:90
+msgid "Never"
+msgstr "Mai"
+
+#: Mailman/Gui/Language.py:91
+msgid ""
+"Encode the\n"
+" <a href=\"?VARHELP=general/subject_prefix\">subject\n"
+" prefix</a> even when it consists of only ASCII characters?"
+msgstr ""
+"Codifica il\n"
+" <a href=\"?VARHELP=general/subject_prefix\">prefisso del\n"
+" soggetto</a> anche quando consiste di soli caratteri ASCII? "
+
+#: Mailman/Gui/Language.py:95
+msgid ""
+"If your mailing list's default language uses a non-ASCII\n"
+" character set and the prefix contains non-ASCII characters, "
+"the\n"
+" prefix will always be encoded according to the relevant\n"
+" standards. However, if your prefix contains only ASCII\n"
+" characters, you may want to set this option to <em>Never</em> "
+"to\n"
+" disable prefix encoding. This can make the subject headers\n"
+" slightly more readable for users with mail readers that don't\n"
+" properly handle non-ASCII encodings.\n"
+"\n"
+" <p>Note however, that if your mailing list receives both "
+"encoded\n"
+" and unencoded subject headers, you might want to choose <em>As\n"
+" needed</em>. Using this setting, Mailman will not encode "
+"ASCII\n"
+" prefixes when the rest of the header contains only ASCII\n"
+" characters, but if the original header contains non-ASCII\n"
+" characters, it will encode the prefix. This avoids an "
+"ambiguity\n"
+" in the standards which could cause some mail readers to "
+"display\n"
+" extra, or missing spaces between the prefix and the original\n"
+" header."
+msgstr ""
+"Se la lingua di default della tua lista usa non set di\n"
+" caratteri non-ASCII e il prefisso contiene caratteri\n"
+" non ASCII, allora il prefisso sarà sempre codificato\n"
+" secondo gli standard rilevanti. Al contrario, se il\n"
+" prefisso contiene solo caratteri ASCII, potresti voler\n"
+" cambiare questa opzione a <em>Mai</em> per disabilitare\n"
+" la codifica del prefisso. Questo pu&ograve; rendere il\n"
+" soggetto pi&ugrave; per gli utenti che usano programmi\n"
+" di gestione della posta che non gestiscono le codifiche\n"
+" non-ASCII.\n"
+"\n"
+" <p>Nota per&ograve;, che se la tua lista riceve soggetti\n"
+" sia codificati che non, potresti voler scegliere\n"
+" <em>Quando serve</em>. Usando questa modalit&agrave;,\n"
+" Mailman non codificher&agrave; i prefissi ASCII quando\n"
+" il resto dell'oggetto contiene solo caratteri ASCII,\n"
+" ma lo codificher&agrave; in caso contrario. Questo\n"
+" risolve un'ambiguit&agrave; nello standard che pu&ograve;\n"
+" confondere alcuni programmi di posta e far visualizzare\n"
+" uno spazio extra o uno spazio mancante tra prefisso e\n"
+" soggetto originale"
+
+# /home/mailman/Mailman/Cgi/admin.py:39
+# /home/mailman/Mailman/Cgi/admin.py:524
+#: Mailman/Gui/Membership.py:26
+msgid "Membership&nbsp;Management"
+msgstr "Gestione&nbsp;Iscritti"
+
+# /home/mailman/Mailman/Cgi/admin.py:529
+#: Mailman/Gui/Membership.py:30
+msgid "Membership&nbsp;List"
+msgstr "Elenco&nbsp;degli&nbsp;iscritti"
+
+# /home/mailman/Mailman/Cgi/admindb.py:289
+#: Mailman/Gui/Membership.py:31
+msgid "Mass&nbsp;Subscription"
+msgstr "Iscrizione&nbsp;di&nbsp;massa"
+
+#: Mailman/Gui/Membership.py:32
+msgid "Mass&nbsp;Removal"
+msgstr "Rimozione&nbsp;di&nbsp;massa"
+
+# /home/mailman/Mailman/Cgi/admin.py:42
+#: Mailman/Gui/NonDigest.py:34
+msgid "Non-digest&nbsp;options"
+msgstr "Opzioni&nbsp;non&nbsp;digest"
+
+# /home/mailman/Mailman/MailList.py:705
+#: Mailman/Gui/NonDigest.py:42
+msgid "Policies concerning immediately delivered list traffic."
+msgstr "Politiche riguardanti l'invio immediato dei messaggi della lista."
+
+#: Mailman/Gui/NonDigest.py:45
+msgid ""
+"Can subscribers choose to receive mail immediately, rather\n"
+" than in batched digests?"
+msgstr ""
+"Gli iscritti possono scegliere di ricevere i messaggi immediatamente\n"
+" invece che in digest giornalieri?"
+
+#: Mailman/Gui/NonDigest.py:52
+msgid "Full Personalization"
+msgstr "Personalizzazione completa"
+
+#: Mailman/Gui/NonDigest.py:54
+msgid ""
+"Should Mailman personalize each non-digest delivery?\n"
+" This is often useful for announce-only lists, but <a\n"
+" href=\"?VARHELP=nondigest/personalize\">read the details</"
+"a>\n"
+" section for a discussion of important performance\n"
+" issues."
+msgstr ""
+"Mailman deve personalizzare ogni invio non digest?\n"
+" Questo &egrave; spesso utile per liste di soli\n"
+" annunci, ma <a\n"
+" href=\"?VARHELP=nondigest/personalize\">leggi la\n"
+" sezione dettagli</a> per una discussione di\n"
+" importanti effetti sulle prestazioni."
+
+#: Mailman/Gui/NonDigest.py:60
+msgid ""
+"Normally, Mailman sends the regular delivery messages to\n"
+" the mail server in batches. This is much more efficent\n"
+" because it reduces the amount of traffic between Mailman "
+"and\n"
+" the mail server.\n"
+"\n"
+" <p>However, some lists can benefit from a more "
+"personalized\n"
+" approach. In this case, Mailman crafts a new message for\n"
+" each member on the regular delivery list. Turning this\n"
+" feature on may degrade the performance of your site, so "
+"you\n"
+" need to carefully consider whether the trade-off is worth "
+"it,\n"
+" or whether there are other ways to accomplish what you "
+"want.\n"
+" You should also carefully monitor your system load to make\n"
+" sure it is acceptable.\n"
+"\n"
+" <p>Select <em>No</em> to disable personalization and send\n"
+" messages to the members in batches. Select <em>Yes</em> "
+"to\n"
+" personalize deliveries and allow additional substitution\n"
+" variables in message headers and footers (see below). In\n"
+" addition, by selecting <em>Full Personalization</em>, the\n"
+" <code>To</code> header of posted messages will be modified "
+"to\n"
+" include the member's address instead of the list's posting\n"
+" address.\n"
+"\n"
+" <p>When personalization is enabled, a few more expansion\n"
+" variables that can be included in the <a\n"
+" href=\"?VARHELP=nondigest/msg_header\">message header</a> "
+"and\n"
+" <a href=\"?VARHELP=nondigest/msg_footer\">message footer</"
+"a>.\n"
+"\n"
+" <p>These additional substitution variables will be "
+"available\n"
+" for your headers and footers, when this feature is "
+"enabled:\n"
+"\n"
+" <ul><li><b>user_address</b> - The address of the user,\n"
+" coerced to lower case.\n"
+" <li><b>user_delivered_to</b> - The case-preserved "
+"address\n"
+" that the user is subscribed with.\n"
+" <li><b>user_password</b> - The user's password.\n"
+" <li><b>user_name</b> - The user's full name.\n"
+" <li><b>user_optionsurl</b> - The url to the user's "
+"option\n"
+" page.\n"
+" </ul>\n"
+" "
+msgstr ""
+"Normalmente, Mailman invia al mail server i messaggi regolari\n"
+" raggruppati in pacchetti. Questo &egrave; molto\n"
+" pi&ugrave; efficiente perch&eacute; riduce la\n"
+" quantit&agrave; di traffico tra Mailman e il\n"
+" server di posta.\n"
+"\n"
+" <p>Tuttavia, qualche lista potrebbe trovare\n"
+" pi&ugrave; efficiente un approccio pi&ugrave;\n"
+" personalizzato. In questo caso Mailman prepara\n"
+" un messaggio diverso per ogni iscritto non digest\n"
+" della lista.\n"
+" Attivare questa opzione potrebbe degradare le\n"
+" prestazioni del tuo sito, quindi devi pensarci\n"
+" attentamente e valutare se esistono altri modi\n"
+" per ottenere quello che vuoi.\n"
+" Devi anche tenere attentamente sotto controllo\n"
+" il carico di sistema per assicurarti che sia\n"
+" accettabile.\n"
+"\n"
+" <p>Scegli <em>No</em> per disabilitare la\n"
+" personalizzazione ed inviare i messaggi a blocchi.\n"
+" Scegli <em>S&igrave;</em> per personalizzare gli\n"
+" invii e permettere sostituzioni di variabile addizionali\n"
+" nella apertura e nella chiusura del messaggio (vedi\n"
+" sotto).\n"
+" In aggiunta, scegliendo <em>Personalizzazione\n"
+" completa</em>, il campo <code>To</code> dei messaggi\n"
+" sar&agrave; modificato in modo da includere l'indirizzo\n"
+" dell'iscritto invece di quello che era indicato nel\n"
+" messaggio originale.\n"
+"\n"
+" <p>Quando vengono abilitate liste personalizzate,\n"
+" qualche nuova variabile diventa utilizzabile nella <a\n"
+" href=\"?VARHELP=nondigest/msg_header\">apertura\n"
+" del messaggio</a> e nella <a\n"
+" href=\"?VARHELP=nondigest/msg_footer\">chiusura\n"
+" del messaggio</a>.\n"
+"\n"
+" <p>Queste sostituzioni saranno disponibili in\n"
+" apertura e chiusura quando questa opzione sar&agrave;\n"
+" abilitata:\n"
+"\n"
+" <ul><li><b>user_address</b> - Indirizzo dell'utente,\n"
+" forzato a tutte minuscole.\n"
+" <li><b>user_delivered_to</b> - Indirizzo con il\n"
+" quale l'utente si &egrave; iscritto, con\n"
+" maiuscole e minuscole originali.\n"
+" <li><b>user_password</b> - Password dell'utente.\n"
+" <li><b>user_name</b> - Nome dell'utente.\n"
+" <li><b>user_optionsurl</b> - URL per la pagina\n"
+" delle opzioni per utenti.\n"
+" </ul>\n"
+" "
+
+# /home/mailman/Mailman/MailList.py:712
+#: Mailman/Gui/NonDigest.py:108
+msgid "Header added to mail sent to regular list members"
+msgstr "Intestazione aggiunta ai messaggi inviati agli iscritti regolari"
+
+#: Mailman/Gui/NonDigest.py:109
+msgid ""
+"Text prepended to the top of every immediately-delivery\n"
+" message. "
+msgstr ""
+"Testo posizionato all'inizio dei messaggi inviati\n"
+" immediatamente."
+
+# /home/mailman/Mailman/MailList.py:718
+#: Mailman/Gui/NonDigest.py:114
+msgid "Footer added to mail sent to regular list members"
+msgstr "Testo aggiunto in coda ai messaggi inviati agli iscritti regolari"
+
+#: Mailman/Gui/NonDigest.py:115
+msgid ""
+"Text appended to the bottom of every immediately-delivery\n"
+" message. "
+msgstr "Testo aggiunto in fondo ai messaggi inviati immediatamente. "
+
+# /home/mailman/Mailman/HTMLFormatter.py:301
+#: Mailman/Gui/Passwords.py:27
+msgid "Passwords"
+msgstr "Password"
+
+# /home/mailman/Mailman/Cgi/admin.py:40
+#: Mailman/Gui/Privacy.py:28
+msgid "Privacy options"
+msgstr "Opzioni per la privacy"
+
+# /home/mailman/Mailman/Cgi/admindb.py:289
+#: Mailman/Gui/Privacy.py:32
+msgid "Subscription&nbsp;rules"
+msgstr "Regole&nbsp;di&nbsp;iscrizione"
+
+#: Mailman/Gui/Privacy.py:33
+msgid "Sender&nbsp;filters"
+msgstr "Filtri&nbsp;sul&nbsp;mittente"
+
+#: Mailman/Gui/Privacy.py:34
+msgid "Recipient&nbsp;filters"
+msgstr "Filtri&nbsp;sul&nbsp;destinatario"
+
+#: Mailman/Gui/Privacy.py:35
+msgid "Spam&nbsp;filters"
+msgstr "Filtri&nbsp;per&nbsp;lo&nbsp;spam"
+
+# /home/mailman/Mailman/MailList.py:539
+#: Mailman/Gui/Privacy.py:49 Mailman/Gui/Usenet.py:61
+msgid "None"
+msgstr "Nessuno"
+
+# /home/mailman/Mailman/MailList.py:539 /home/mailman/Mailman/MailList.py:559
+#: Mailman/Gui/Privacy.py:50 Mailman/Gui/Privacy.py:73
+msgid "Confirm"
+msgstr "Conferma"
+
+# /home/mailman/Mailman/MailList.py:539 /home/mailman/Mailman/MailList.py:559
+#: Mailman/Gui/Privacy.py:51 Mailman/Gui/Privacy.py:74
+msgid "Require approval"
+msgstr "Richiede approvazione"
+
+# /home/mailman/Mailman/MailList.py:540 /home/mailman/Mailman/MailList.py:560
+#: Mailman/Gui/Privacy.py:52 Mailman/Gui/Privacy.py:75
+msgid "Confirm and approve"
+msgstr "Conferma e approvazione"
+
+# /home/mailman/Mailman/MailList.py:541 /home/mailman/Mailman/MailList.py:561
+#: Mailman/Gui/Privacy.py:54 Mailman/Gui/Privacy.py:77
+msgid "What steps are required for subscription?<br>"
+msgstr "Quali passi sono necessari per iscriversi?<br>"
+
+#: Mailman/Gui/Privacy.py:55
+msgid ""
+"None - no verification steps (<em>Not\n"
+" Recommended </em>)<br>\n"
+" Confirm (*) - email confirmation step required "
+"<br>\n"
+" Require approval - require list administrator\n"
+" Approval for subscriptions <br>\n"
+" Confirm and approve - both confirm and approve\n"
+" \n"
+" <p>(*) when someone requests a subscription,\n"
+" Mailman sends them a notice with a unique\n"
+" subscription request number that they must reply "
+"to\n"
+" in order to subscribe.<br>\n"
+"\n"
+" This prevents mischievous (or malicious) people\n"
+" from creating subscriptions for others without\n"
+" their consent."
+msgstr ""
+"Nessuno - nessun tipo di verifica (<em>Non Raccomandato </em>)<br>\n"
+" Conferma (*) - richiesta conferma tramite "
+"email<br>\n"
+" Richiede approvazione - richiede\n"
+" l'approvazione dell'amministratore della\n"
+" lista<br>\n"
+" Conferma e approvazione - sia conferma che\n"
+" approvazione<p>\n"
+"\n"
+" (*) quando qualcuno richiede l'iscrizione,\n"
+" Mailman invia al richiedente una notifica con\n"
+" un numero identificatore univoco che\n"
+" dovr&agrave; essere rispedito indietro per\n"
+" completare la procedura.<br>\n"
+"\n"
+" Ci&ograve; impedisce che qualcuno erroneamente\n"
+" (o apposta) iscriva terzi senza il loro consenso."
+
+#: Mailman/Gui/Privacy.py:78
+msgid ""
+"Confirm (*) - email confirmation required <br>\n"
+" Require approval - require list administrator\n"
+" approval for subscriptions <br>\n"
+" Confirm and approve - both confirm and approve\n"
+" \n"
+" <p>(*) when someone requests a subscription,\n"
+" Mailman sends them a notice with a unique\n"
+" subscription request number that they must reply "
+"to\n"
+" in order to subscribe.<br> This prevents\n"
+" mischievous (or malicious) people from creating\n"
+" subscriptions for others without their consent."
+msgstr ""
+"conferma (*) - &egrave; richiesta una conferma via email <br>\n"
+" Richiede approvazione - le iscrizioni devono\n"
+" essere approvate dall'amministratore<br>\n"
+" Conferma e approvazione - sia la conferma che\n"
+" che l'approvazione sono richiesti\n"
+"\n"
+" (*) quando qualcuno richiede "
+"l'iscrizione, Mailman invia al richiedente una "
+"notifica con\n"
+" un numero identificatore univoco che\n"
+" dovr&agrave; essere rispedito indietro per\n"
+" completare la procedura.<br>\n"
+"\n"
+" Ci&ograve; impedisce che qualcuno erroneamente\n"
+" (o apposta) iscriva terzi senza il loro consenso."
+
+#: Mailman/Gui/Privacy.py:94
+msgid ""
+"This section allows you to configure subscription and\n"
+" membership exposure policy. You can also control whether this\n"
+" list is public or not. See also the\n"
+" <a href=\"%(admin)s/archive\">Archival Options</a> section for\n"
+" separate archive-related privacy settings."
+msgstr ""
+"Questa sezione ti permette di configurare le regole di iscrizione\n"
+" ed esposizione degli iscritti. Puoi anche controllare\n"
+" se la lista &egrave; pubblica o no. Vedi anche la sezione\n"
+" <a href=\"%(admin)s/archive\">Opzioni d'archiviazione</a> per \n"
+" altre opzioni di privacy sugli archivi."
+
+# /home/mailman/Mailman/MailList.py:583
+#: Mailman/Gui/Privacy.py:100
+msgid "Subscribing"
+msgstr "Iscrizione"
+
+# /home/mailman/Mailman/MailList.py:586
+#: Mailman/Gui/Privacy.py:102
+msgid ""
+"Advertise this list when people ask what lists are on this\n"
+" machine?"
+msgstr ""
+"Questa lista deve essere elencata quando qualcuno chiede quali liste\n"
+" sono presenti su questa macchina?"
+
+#: Mailman/Gui/Privacy.py:108
+msgid ""
+"Is the list moderator's approval required for unsubscription\n"
+" requests? (<em>No</em> is recommended)"
+msgstr ""
+"&Egrave; richiesta l'approvazione del moderatore della lista\n"
+" per potersi cancellare (raccomandato <em>No</em>)"
+
+#: Mailman/Gui/Privacy.py:111
+msgid ""
+"When members want to leave a list, they will make an\n"
+" unsubscription request, either via the web or via email.\n"
+" Normally it is best for you to allow open unsubscriptions so "
+"that\n"
+" users can easily remove themselves from mailing lists (they "
+"get\n"
+" really upset if they can't get off lists!).\n"
+"\n"
+" <p>For some lists though, you may want to impose moderator\n"
+" approval before an unsubscription request is processed. "
+"Examples\n"
+" of such lists include a corporate mailing list that all "
+"employees\n"
+" are required to be members of."
+msgstr ""
+"Quando gli iscritti vogliono lasciare la lista, invieranno una\n"
+" richiesta di cancellazione via email o via web.\n"
+" Normalmente &egrave; meglio lasciare che la cancellazione\n"
+" sia libera in modo che le cose siano semplici per gli \n"
+" utenti (si arrabbiano parecchio se non possono cancellarsi!).\n"
+" <p>Per alcune liste per&ograve; potresti voler imporre la\n"
+" decisione del moderatore anche sulle cancellazioni.\n"
+" Esempi di tali liste includono liste aziendali cui\n"
+" devono essere iscritti tutti gli impiegati."
+
+# /home/mailman/Mailman/MailCommandHandler.py:379
+#: Mailman/Gui/Privacy.py:122
+msgid "Ban list"
+msgstr "Elenco delle interdizioni"
+
+#: Mailman/Gui/Privacy.py:124
+msgid ""
+"List of addresses which are banned from membership in this\n"
+" mailing list."
+msgstr ""
+"Elenco di indirizzi cui &egrave; interdetta l'iscrizione a questa\n"
+" lista."
+
+#: Mailman/Gui/Privacy.py:127
+msgid ""
+"Addresses in this list are banned outright from subscribing\n"
+" to this mailing list, with no further moderation required. "
+"Add\n"
+" addresses one per line; start the line with a ^ character to\n"
+" designate a regular expression match."
+msgstr ""
+"Gli indirizzi in questa lista sno interdetti dall'iscriversi a "
+"questa lista, senza ulteriore intervento del moderatore.\n"
+" Aggiungi indirizzi uno per riga; inizia la riga con un\n"
+" carattere ^ per indicare una espressione regolare."
+
+# /home/mailman/Mailman/MailList.py:590
+#: Mailman/Gui/Privacy.py:132
+msgid "Membership exposure"
+msgstr "Esposizione degli iscritti"
+
+# /home/mailman/Mailman/MailList.py:593
+#: Mailman/Gui/Privacy.py:134
+msgid "Anyone"
+msgstr "Chiunque"
+
+# /home/mailman/Mailman/MailList.py:593
+#: Mailman/Gui/Privacy.py:134
+msgid "List admin only"
+msgstr "Solo l'amministratore della lista"
+
+# /home/mailman/Mailman/MailList.py:593
+#: Mailman/Gui/Privacy.py:134
+msgid "List members"
+msgstr "Iscritti della lista"
+
+# /home/mailman/Mailman/MailList.py:594
+#: Mailman/Gui/Privacy.py:135
+msgid "Who can view subscription list?"
+msgstr "Chi pu&ograve; vedere l'elenco degli iscritti alla lista?"
+
+#: Mailman/Gui/Privacy.py:137
+msgid ""
+"When set, the list of subscribers is protected by member or\n"
+" admin password authentication."
+msgstr ""
+"Quando abilitato, la lista degli iscritti &egrave; protetta\n"
+" dall'autenticazione via password di un iscritto\n"
+" o dell'amministratore."
+
+# /home/mailman/Mailman/MailList.py:600
+#: Mailman/Gui/Privacy.py:141
+msgid ""
+"Show member addresses so they're not directly recognizable\n"
+" as email addresses?"
+msgstr ""
+"Mostro gli indirizzi degli iscritti in modo che non siano\n"
+" direttamente riconoscibili come indirizzi di email?"
+
+#: Mailman/Gui/Privacy.py:143
+msgid ""
+"Setting this option causes member email addresses to be\n"
+" transformed when they are presented on list web pages (both in\n"
+" text and as links), so they're not trivially recognizable as\n"
+" email addresses. The intention is to prevent the addresses\n"
+" from being snarfed up by automated web scanners for use by\n"
+" spammers."
+msgstr ""
+"L'attivazione di questa opzione causa la trasformazione degli\n"
+" indirizzi email degli iscritti quando sono esposti nelle\n"
+" pagine web della lista (sia nel testo che nei link),\n"
+" cos&igrave; non saranno facilmente riconosciuti come\n"
+" indirizzi email. L'intenzione &egrave; di evitare che\n"
+" gli indirizzi vengano rubati dai web-scanner automatici\n"
+" usati dagli spammer."
+
+#: Mailman/Gui/Privacy.py:153
+msgid ""
+"When a message is posted to the list, a series of\n"
+" moderation steps are take to decide whether the a moderator "
+"must\n"
+" first approve the message or not. This section contains the\n"
+" controls for moderation of both member and non-member postings.\n"
+"\n"
+" <p>Member postings are held for moderation if their\n"
+" <b>moderation flag</b> is turned on. You can control whether\n"
+" member postings are moderated by default or not.\n"
+"\n"
+" <p>Non-member postings can be automatically\n"
+" <a href=\"?VARHELP=privacy/sender/accept_these_nonmembers\"\n"
+" >accepted</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/hold_these_nonmembers\">held "
+"for\n"
+" moderation</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/reject_these_nonmembers\"\n"
+" >rejected</a> (bounced), or\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >discarded</a>,\n"
+" either individually or as a group. Any\n"
+" posting from a non-member who is not explicitly accepted,\n"
+" rejected, or discarded, will have their posting filtered by the\n"
+" <a href=\"?VARHELP=privacy/sender/generic_nonmember_action"
+"\">general\n"
+" non-member rules</a>.\n"
+"\n"
+" <p>In the text boxes below, add one address per line; start the\n"
+" line with a ^ character to designate a <a href=\n"
+" \"http://www.python.org/doc/current/lib/module-re.html\"\n"
+" >Python regular expression</a>. When entering backslashes, do "
+"so\n"
+" as if you were using Python raw strings (i.e. you generally "
+"just\n"
+" use a single backslash).\n"
+"\n"
+" <p>Note that non-regexp matches are always done first."
+msgstr ""
+"Quando un messaggio viene spedito alla lista, vengono seguiti\n"
+" una serie di passi di moderazione per decidere se il\n"
+" moderatore deve approvare o meno il messaggio. Questa \n"
+" sezione contiene i controlli per la moderazione dei messaggi\n"
+" provenienti da iscritti e da non-iscritti.\n"
+"\n"
+" <p>I messaggi provenienti dagli iscritti vengono sospesi in\n"
+" attesa di essere vagliati dal moderatore se il <b>flag di\n"
+" moderazione</b> &egrave; settato per l'iscritto. \n"
+" Puoi decidere il valore di default di tale flag.\n"
+"\n"
+" <p>I messaggi provenienti dai non iscritti possono essere\n"
+" automaticamente \n"
+" <a href=\"?VARHELP=privacy/sender/accept_these_nonmembers\"\n"
+" >accettati</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/hold_these_nonmembers\"\n"
+" >sospesi per moderazione</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/reject_these_nonmember\"\n"
+" >rigettati</a> (rinviati al mittente con errore), oppure\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >scartati</a>, sia individualmente o come gruppo.\n"
+" Ogni messaggio proveniente da un non iscritto i cui \n"
+" messaggi non siano esplicitamente accettati, rigettati o \n"
+" scartati, sar&agrave; filtrato dalle\n"
+" <a \"href=\"?VARHELP=privacy/sender/generic_nonmember_action\"\n"
+" >regole generali per non iscritti</a>.\n"
+"\n"
+" <p>Nei campi sottostanti aggiungi un indirizzo per riga; \n"
+" inizia la riga con un carattere ^ per indicare una\n"
+" <a href=\"http://www.python.org/doc/current/lib/module-re.htm"
+"\"\n"
+" >Espressione regolare Python</a>. Quando inserisci "
+"backslash,\n"
+" fallo come se stessi inserendo stringhe grezze Python (ad \n"
+" esempio generalmente usa un solo backslash).\n"
+"\n"
+" <p>Nota che in ogni caso viene sempre fatta prima una ricerca\n"
+" senza espressioni regolari."
+
+# /home/mailman/Mailman/Cgi/admin.py:529
+#: Mailman/Gui/Privacy.py:186
+msgid "Member filters"
+msgstr "Filtri per iscritti"
+
+#: Mailman/Gui/Privacy.py:189
+msgid "By default, should new list member postings be moderated?"
+msgstr ""
+"I messaggi inviati dai nuovi iscritti devono essere moderati per default?"
+
+#: Mailman/Gui/Privacy.py:191
+msgid ""
+"Each list member has a <em>moderation flag</em> which says\n"
+" whether messages from the list member can be posted directly "
+"to\n"
+" the list, or must first be approved by the list moderator. "
+"When\n"
+" the moderation flag is turned on, list member postings must be\n"
+" approved first. You, the list administrator can decide whether "
+"a\n"
+" specific individual's postings will be moderated or not.\n"
+"\n"
+" <p>When a new member is subscribed, their initial moderation "
+"flag\n"
+" takes its value from this option. Turn this option off to "
+"accept\n"
+" member postings by default. Turn this option on to, by "
+"default,\n"
+" moderate member postings first. You can always manually set "
+"an\n"
+" individual member's moderation bit by using the\n"
+" <a href=\"%(adminurl)s/members\">membership management\n"
+" screens</a>."
+msgstr ""
+"Ogni iscritto ha un <em>flag di moderazione</em> che dice se\n"
+" i messaggi inviati da questo iscritto devono essere "
+"pubblicati\n"
+" immediatamente sulla lista o se devono prima essere approvati\n"
+" dal moderatore.\n"
+" Quando il flag &egrave; attivato, i messaggi inviati da "
+"questo\n"
+" iscritto dovranno essere approvati. Tu, amministratore della\n"
+" lista, puoi decidere se moderare i messaggi di ogni iscritto.\n"
+"\n"
+" <p>Quando un nuovo utente si iscrive alla lista, il suo flag\n"
+" di moderazione prende il valore da questa opzione. Disattiva\n"
+" questa opzione se vuoi che i messaggi siano pubblicati\n"
+" automaticamente per default. Attiva questa opzione se vuoi\n"
+" che i messaggi siano approvati per default. Puoi sempre\n"
+" modificare manualmente il flag di un singolo iscritto usando\n"
+" il <a href=\"%(adminurl)s/members\">pannello di gestione "
+"degli\n"
+" iscritti</a>."
+
+#: Mailman/Gui/Privacy.py:207 Mailman/Gui/Privacy.py:281
+msgid "Hold"
+msgstr "Sospendi"
+
+#: Mailman/Gui/Privacy.py:208
+msgid ""
+"Action to take when a moderated member posts to the\n"
+" list."
+msgstr ""
+"Azione da intraprendere quando un iscritto moderato\n"
+" scrive alla lista."
+
+#: Mailman/Gui/Privacy.py:210
+msgid ""
+"<ul><li><b>Hold</b> -- this holds the message for approval\n"
+" by the list moderators.\n"
+"\n"
+" <p><li><b>Reject</b> -- this automatically rejects the message "
+"by\n"
+" sending a bounce notice to the post's author. The text of the\n"
+" bounce notice can be <a\n"
+" href=\"?VARHELP=privacy/sender/member_moderation_notice\"\n"
+" >configured by you</a>.\n"
+"\n"
+" <p><li><b>Discard</b> -- this simply discards the message, "
+"with\n"
+" no notice sent to the post's author.\n"
+" </ul>"
+msgstr ""
+"<ul><li><b>Sospendi</b> -- trattiene il messaggio in attesa\n"
+" dell'approvazione da parte dei moderatori della lista.\n"
+"\n"
+" <p><li><b>Rigetta</b> -- rigetta automaticamente il messaggio\n"
+" inviando una notifica all'autore dello stesso. Il testo della\n"
+" notifica pu&ograve; essere <a\n"
+" href=\"?VARHELP=privacy/sender/member_moderation_notice\"\n"
+" >configurato da te</a>.\n"
+"\n"
+" <p><li><b>Scarta</b> -- semplicemente scarta il messaggio,\n"
+" senza inviare alcuna notifica.\n"
+" </ul>"
+
+#: Mailman/Gui/Privacy.py:224
+msgid ""
+"Text to include in any\n"
+" <a href=\"?VARHELP/privacy/sender/member_moderation_action\"\n"
+" >rejection notice</a> to\n"
+" be sent to moderated members who post to this list."
+msgstr ""
+"Testo da includere in ogni\n"
+" <a href=\"?VARHELP/privacy/sender/member_moderation_action\"\n"
+" >notifica di rifiuto</a> che viene inviata agli iscritti\n"
+" moderati che avevano provato a scrivere alla lista."
+
+# /home/mailman/Mailman/Cgi/private.py:155
+#: Mailman/Gui/Privacy.py:229
+msgid "Non-member filters"
+msgstr "Filtri per non iscritti"
+
+#: Mailman/Gui/Privacy.py:232
+msgid ""
+"List of non-member addresses whose postings should be\n"
+" automatically accepted."
+msgstr ""
+"Elenco di indirizzi di non iscritti i cui messaggi devono essere\n"
+" sempre accettati automaticamente."
+
+#: Mailman/Gui/Privacy.py:235
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" accepted with no further moderation applied. Add member\n"
+" addresses one per line; start the line with a ^ character to\n"
+" designate a regular expression match."
+msgstr ""
+"I messaggi inviati da questi non iscritti saranno sempre accettati\n"
+" automaticamente senza bisogno di interpellare il moderatore.\n"
+" Aggiungi gli indirizzi uno per riga; inizia le righe con un\n"
+" carattere ^ per indicare una espressione regolare."
+
+#: Mailman/Gui/Privacy.py:241
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" immediately held for moderation."
+msgstr ""
+"Elenco di indirizzi di non iscritti i cui messaggi saranno \n"
+" immediatamente trattenuti per moderazione."
+
+#: Mailman/Gui/Privacy.py:244
+msgid ""
+"Postings from any of these non-members will be immediately\n"
+" and automatically held for moderation by the list moderators.\n"
+" The sender will receive a notification message which will "
+"allow\n"
+" them to cancel their held message. Add member addresses one "
+"per\n"
+" line; start the line with a ^ character to designate a regular\n"
+" expression match."
+msgstr ""
+"I messaggi provenienti da questi non iscritti saranno \n"
+" immediatamente ed automaticamente sospesi in attesa della\n"
+" decisione dei moderatori della lista. Il mittente \n"
+" ricever&agrave; una notifica che gli permetter&agrave; di\n"
+" cancellare l'invio del messaggio sospeso. \n"
+" Aggiungi gli indirizzi uno per riga; inizia le righe con un\n"
+" carattere ^ per indicare una espressione regolare."
+
+#: Mailman/Gui/Privacy.py:252
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" automatically rejected."
+msgstr ""
+"Elenco di non iscritti i cui messaggi saranno automaticamente\n"
+" rifiutati."
+
+#: Mailman/Gui/Privacy.py:255
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" rejected. In other words, their messages will be bounced back "
+"to\n"
+" the sender with a notification of automatic rejection. This\n"
+" option is not appropriate for known spam senders; their "
+"messages\n"
+" should be\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >automatically discarded</a>.\n"
+"\n"
+" <p>Add member addresses one per line; start the line with a ^\n"
+" character to designate a regular expression match."
+msgstr ""
+"I messaggi provenienti da questi non iscritti saranno \n"
+" automaticamente rifiutati. In altre parole saranno\n"
+" rispediti al mittente con una notifica di rifiuto.\n"
+" Questa opzione non &egrave; adatta per spammer noti e\n"
+" per questi ultimi sarebbe meglio <a \n"
+" href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >scartare automaticamente</a> i messaggi.\n"
+"\n"
+" <p>Aggiungi gli indirizzi uno per riga; inizia la riga\n"
+" con un carattere ^ per indicare una espressione regolare."
+
+#: Mailman/Gui/Privacy.py:267
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" automatically discarded."
+msgstr ""
+"Elenco di indirizzi di non iscritti i cui messaggi saranno\n"
+" sempre scartati automaticamente."
+
+#: Mailman/Gui/Privacy.py:270
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" discarded. That is, the message will be thrown away with no\n"
+" further processing or notification. The sender will not "
+"receive\n"
+" a notification or a bounce, however the list moderators can\n"
+" optionally <a href=\"?VARHELP=privacy/sender/"
+"forward_auto_discards\"\n"
+" >receive copies of auto-discarded messages.</a>.\n"
+"\n"
+" <p>Add member addresses one per line; start the line with a ^\n"
+" character to designate a regular expression match."
+msgstr ""
+"I messaggi provenienti da questi non iscritti saranno \n"
+" automaticamente scartati. Questo significa che il messaggio\n"
+" sar&agrave; ignorato senza alcuna elaborazione n&eacute;\n"
+" notifica. Il mittente non ricever&agrave; alcuna risposta o\n"
+" errore, in ogni caso i moderatori della lista possono \n"
+" opzionalmente <a \n"
+" href=\"?VARHELP=privacy/sender/forward_auto_discards"
+"\">ricevere\n"
+" copie dei messaggi auto-scartati</a>.\n"
+"\n"
+" <p>Aggiungi gli indirizzi uno per riga; inizia la riga con un\n"
+" carattere ^ per indicare una espressione regolare."
+
+#: Mailman/Gui/Privacy.py:282
+msgid ""
+"Action to take for postings from non-members for which no\n"
+" explicit action is defined."
+msgstr ""
+"Azione per i messaggi dei non iscritti per i quali non &egrave;\n"
+" stata definita esplicitamente un'azione."
+
+#: Mailman/Gui/Privacy.py:285
+msgid ""
+"When a post from a non-member is received, the message's\n"
+" sender is matched against the list of explicitly\n"
+" <a href=\"?VARHELP=privacy/sender/accept_these_nonmembers\"\n"
+" >accepted</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/hold_these_nonmembers\">held</"
+"a>,\n"
+" <a href=\"?VARHELP=privacy/sender/reject_these_nonmembers\"\n"
+" >rejected</a> (bounced), and\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >discarded</a> addresses. If no match is found, then this "
+"action\n"
+" is taken."
+msgstr ""
+"Quando viene ricevuto un messaggio da un non iscritto, il\n"
+" mittente viene confrontato con elenchi di indirizzi\n"
+" esplicitamente\n"
+" <a href=\"?VARHELP=privacy/sender/accept_these_nonmembers\"\n"
+" >accettati</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/hold_these_nonmembers\"\n"
+" >sospesi</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/reject_these_nonmembers\"\n"
+" >rifiutati</a>, e \n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >scartati</a>. \n"
+" Se l'indirizzo non corrisponde con nessun elenco, allora\n"
+" viene presa questa azione."
+
+#: Mailman/Gui/Privacy.py:297
+msgid ""
+"Should messages from non-members, which are automatically\n"
+" discarded, be forwarded to the list moderator?"
+msgstr ""
+"I messaggi spediti da non iscritti, che sono automaticamente\n"
+"scartati, devono essere inoltrati in copia al moderatore della\n"
+"lista?"
+
+#: Mailman/Gui/Privacy.py:303
+msgid ""
+"This section allows you to configure various filters based on\n"
+" the recipient of the message."
+msgstr ""
+"Questa sezione ti permette di impostare vari filtri basati\n"
+" sul destinatario del messaggio."
+
+# /home/mailman/Mailman/Cgi/admin.py:529
+#: Mailman/Gui/Privacy.py:306
+msgid "Recipient filters"
+msgstr "Filtri sul destinatario"
+
+#: Mailman/Gui/Privacy.py:310
+msgid ""
+"Must posts have list named in destination (to, cc) field\n"
+" (or be among the acceptable alias names, specified below)?"
+msgstr ""
+"I messaggi devono avere l'indirizzo della lista (o i suoi\n"
+" alias accettabili specificati pi&ugrave; in basso)\n"
+" nei campi destinazione (to, cc)?"
+
+#: Mailman/Gui/Privacy.py:313
+msgid ""
+"Many (in fact, most) spams do not explicitly name their\n"
+" myriad destinations in the explicit destination addresses - in\n"
+" fact often the To: field has a totally bogus address for\n"
+" obfuscation. The constraint applies only to the stuff in the\n"
+" address before the '@' sign, but still catches all such spams.\n"
+"\n"
+" <p>The cost is that the list will not accept unhindered any\n"
+" postings relayed from other addresses, unless\n"
+"\n"
+" <ol>\n"
+" <li>The relaying address has the same name, or\n"
+"\n"
+" <li>The relaying address name is included on the options "
+"that\n"
+" specifies acceptable aliases for the list.\n"
+"\n"
+" </ol>"
+msgstr ""
+"Parecchi (in effetti, la maggioranza) spam non nominano\n"
+" esplicitamente le loro miriadi di destinazioni\n"
+" nel campo apposito - infatti, spesso nel campo\n"
+" &egrave; presente un indirizzo completamente falso.\n"
+" Questo vincolo si applica soltanto alla parte a\n"
+" sinistra della `@' ma &egrave; sufficiente per\n"
+" rigettare la maggior parte dei messaggi di spam.\n"
+"\n"
+" <p>Il contro &egrave; che la lista non accetter&agrave;\n"
+" messaggi inoltrati da terze persone, a meno che\n"
+"\n"
+" <ol>\n"
+" <li>l'indirizzo inoltrante abbia lo stesso nome, o\n"
+"\n"
+" <li>l'indirizzo inoltrante sia incluso nell'opzione\n"
+" che elenca gli alias accettabili per la lista.\n"
+"\n"
+" </ol>"
+
+#: Mailman/Gui/Privacy.py:331
+msgid ""
+"Alias names (regexps) which qualify as explicit to or cc\n"
+" destination names for this list."
+msgstr ""
+"Altri nomi (espressioni regolari) che sono considerati validi\n"
+" quando utilizzati come destinatari espliciti\n"
+" (to o cc) per inviare messaggi a questa lista."
+
+#: Mailman/Gui/Privacy.py:334
+msgid ""
+"Alternate addresses that are acceptable when\n"
+" `require_explicit_destination' is enabled. This option takes "
+"a\n"
+" list of regular expressions, one per line, which is matched\n"
+" against every recipient address in the message. The matching "
+"is\n"
+" performed with Python's re.match() function, meaning they are\n"
+" anchored to the start of the string.\n"
+" \n"
+" <p>For backwards compatibility with Mailman 1.1, if the regexp\n"
+" does not contain an `@', then the pattern is matched against "
+"just\n"
+" the local part of the recipient address. If that match fails, "
+"or\n"
+" if the pattern does contain an `@', then the pattern is "
+"matched\n"
+" against the entire recipient address.\n"
+" \n"
+" <p>Matching against the local part is deprecated; in a future\n"
+" release, the pattern will always be matched against the entire\n"
+" recipient address."
+msgstr ""
+"Indirizzi alternativi che sono accettabili quando\n"
+" &egrave; abilitato `require_explicit_destination'.\n"
+" Questa opzione prende una lista di espressioni regolari,\n"
+" una per riga, e la confronta con ogni destinatario del\n"
+" messaggio. Il confronto avviene tramite la funzione\n"
+" Python re.match(), il che significa che le espressioni\n"
+" regolari sono sempre ancorate all'inizio della stringa.\n"
+"\n"
+" <p>Per compatibilit&agrave; all'indietro con Mailman 1.1,\n"
+" se l'espressione regolare non contiene `@' allora il pattern\n"
+" &egrave; confrontato soltanto con la parte locale\n"
+" dell'indirizzo (quella a sx della `@'). Se il confronto\n"
+" fallisce o il pattern contiene una `@', allora il pattern\n"
+" viene confrontato con l'intero indirizzo email.\n"
+"\n"
+" <p>Il confronto con la parte locale &egrave; deprecato;\n"
+" in una versione futura il confronto verr&agrave; eseguito\n"
+" sempre sull'indirizzo intero."
+
+# /home/mailman/Mailman/MailList.py:669
+#: Mailman/Gui/Privacy.py:352
+msgid "Ceiling on acceptable number of recipients for a posting."
+msgstr "Massimo numero di destinatari ammessi in un messaggio."
+
+#: Mailman/Gui/Privacy.py:354
+msgid ""
+"If a posting has this number, or more, of recipients, it is\n"
+" held for admin approval. Use 0 for no ceiling."
+msgstr ""
+"Se un messaggio ha questo numero, o pi&ugrave;, di destinatari,\n"
+" sar&agrave; trattenuto per l'approvazione\n"
+" dell'amministratore. Usa 0 per non mettere un\n"
+" tetto massimo."
+
+#: Mailman/Gui/Privacy.py:359
+msgid ""
+"This section allows you to configure various anti-spam\n"
+" filters posting filters, which can help reduce the amount of "
+"spam\n"
+" your list members end up receiving.\n"
+" "
+msgstr ""
+"Questa sezione ti permette di configurare vari filtri\n"
+" anti spam, che ti possono aiutare a ridurre lo spam\n"
+" ricevuto dagli iscritti della tua lista.\n"
+" "
+
+# /home/mailman/Mailman/Cgi/private.py:155
+#: Mailman/Gui/Privacy.py:364
+msgid "Anti-Spam filters"
+msgstr "Filtri anti-spam"
+
+# /home/mailman/Mailman/MailList.py:683
+#: Mailman/Gui/Privacy.py:367
+msgid "Hold posts with header value matching a specified regexp."
+msgstr ""
+"Intercetta i messaggi i cui campi corrispondono con le espressioni regolari "
+"specificate."
+
+#: Mailman/Gui/Privacy.py:368
+msgid ""
+"Use this option to prohibit posts according to specific\n"
+" header values. The target value is a regular-expression for\n"
+" matching against the specified header. The match is done\n"
+" disregarding letter case. Lines beginning with '#' are "
+"ignored\n"
+" as comments.\n"
+"\n"
+" <p>For example:<pre>to: .*@public.com </pre> says to hold all\n"
+" postings with a <em>To:</em> mail header containing '@public."
+"com'\n"
+" anywhere among the addresses.\n"
+"\n"
+" <p>Note that leading whitespace is trimmed from the regexp. "
+"This\n"
+" can be circumvented in a number of ways, e.g. by escaping or\n"
+" bracketing it."
+msgstr ""
+"Usa questa opzione per proibire la spedizione di messaggi\n"
+" contenenti specifici valori nell'intestazione.\n"
+" Quello che devi fornire &egrave; un'espressione\n"
+" regolare che sar&agrave; confrontata con il relativo\n"
+" campo. Il confronto &egrave; eseguito senza\n"
+" tenere in conto maiuscole e minuscole. Le linee che\n"
+" iniziano con `#' saranno ignorate come commenti.\n"
+"\n"
+" <p>Per esempio:<pre>to: .*@public.com </pre> dice di\n"
+" bloccare tutti i messaggi con il campoe <em>To:</em>\n"
+" contenente `@public.com' ovunque nell'indirizzo.\n"
+"\n"
+" <p>Nota che gli spazi iniziali vengono scartati\n"
+" dall'espressione regolare. Questo pu&ograve; essere\n"
+" aggirato in molti modi, ad esempio con l'escape o\n"
+" mettendoli tra quadre."
+
+# /home/mailman/Mailman/Cgi/private.py:155
+#: Mailman/Gui/Topics.py:28
+msgid "Topics"
+msgstr "Argomenti"
+
+#: Mailman/Gui/Topics.py:36
+msgid "List topic keywords"
+msgstr "Parole chiave per gli argomenti della lista"
+
+#: Mailman/Gui/Topics.py:38
+msgid "Disabled"
+msgstr "Disabilitato"
+
+#: Mailman/Gui/Topics.py:38
+msgid "Enabled"
+msgstr "Abilitato"
+
+#: Mailman/Gui/Topics.py:39
+msgid "Should the topic filter be enabled or disabled?"
+msgstr "Devo abilitare il filtro sugli argomenti?"
+
+#: Mailman/Gui/Topics.py:41
+msgid ""
+"The topic filter categorizes each incoming email message\n"
+" according to <a\n"
+" href=\"http://www.python.org/doc/current/lib/module-re.html"
+"\">regular\n"
+" expression filters</a> you specify below. If the message's\n"
+" <code>Subject:</code> or <code>Keywords:</code> header contains "
+"a\n"
+" match against a topic filter, the message is logically placed\n"
+" into a topic <em>bucket</em>. Each user can then choose to "
+"only\n"
+" receive messages from the mailing list for a particular topic\n"
+" bucket (or buckets). Any message not categorized in a topic\n"
+" bucket registered with the user is not delivered to the list.\n"
+"\n"
+" <p>Note that this feature only works with regular delivery, "
+"not\n"
+" digest delivery.\n"
+"\n"
+" <p>The body of the message can also be optionally scanned for\n"
+" <code>Subject:</code> and <code>Keywords:</code> headers, as\n"
+" specified by the <a\n"
+" href=\"?VARHELP=topics/topics_bodylines_limit"
+"\">topics_bodylines_limit</a>\n"
+" configuration variable."
+msgstr ""
+"Il filtro per argomenti categorizza ogni messaggio entrante\n"
+" in base a\n"
+"<a href=\"http://www.python.org/doc/current/lib/module-re.html\">\n"
+" espressioni regolari</a> che puoi specificare pi&ugrave;\n"
+" in basso. Se le righe <code>Subject:</code> oppure\n"
+" <code>Keywords:</code> nel messaggio contengono parole\n"
+" che corrispondono ad una delle espressioni regolari,\n"
+" allora il messaggio viene piazzato logicamente in un\n"
+" <em>raccogliore</em> per quell'argomento. Ogni utente\n"
+" pu&ograve; quindi scegliere di ricevere solo i messaggi\n"
+" che appartengono a particolari raccoglitori. I messaggi\n"
+" che non possono essere categorizzati secondo nessun\n"
+" argomento registrato, non saranno inviati alla lista\n"
+"\n"
+" <p>Nota che questa funzione &egrave; disponibile solo\n"
+" per la modalit&agrave; non digest.\n"
+"\n"
+" <p>Anche il corpo del messaggio pu&ograve; opzionalmente\n"
+" essere analizzato alla ricerca di righe contenenti i\n"
+" marcatori <code>Subject:</code> e <code>Keyword:</code>\n"
+" come specificato nell'opzione\n"
+"<a href=\"?VARHELP=topics/topics_bodylines_limit\">topics_bodylines_limit</"
+"a>."
+
+#: Mailman/Gui/Topics.py:62
+msgid "How many body lines should the topic matcher scan?"
+msgstr ""
+"Quante righe del corpo del messaggio devono essere\n"
+"analizzate dal classificatore di argomenti?"
+
+#: Mailman/Gui/Topics.py:64
+msgid ""
+"The topic matcher will scan this many lines of the message\n"
+" body looking for topic keyword matches. Body scanning stops "
+"when\n"
+" either this many lines have been looked at, or a non-header-"
+"like\n"
+" body line is encountered. By setting this value to zero, no "
+"body\n"
+" lines will be scanned (i.e. only the <code>Keywords:</code> "
+"and\n"
+" <code>Subject:</code> headers will be scanned). By setting "
+"this\n"
+" value to a negative number, then all body lines will be "
+"scanned\n"
+" until a non-header-like line is encountered.\n"
+" "
+msgstr ""
+"Il classificatore di argomenti analizzer&agrave; questo numero\n"
+" di righe nel corpo del messaggio cercando le parole\n"
+" che corrispondono agli argomenti registrati.\n"
+" L'analisi termina quando &egrave; stato analizzato\n"
+" il numero di righe richiesto oppure quando viene\n"
+" incontrata una riga che non assomiglia ad una\n"
+" intestazione.\n"
+" Scegliendo il valore zero non verr&agrave; eseguita\n"
+" l'analisi del corpo del messaggio (ovvero saranno\n"
+" cercate le parole chiave soltanto nelle righe\n"
+" <code>Subject:</code> e <code>Keywords:</code>\n"
+" dell'intestazione). Scegliendo un numero negativo\n"
+" il corpo del messaggio sar&agrave; analizzato fino\n"
+" alla prima riga che non assomiglia ad una intestazione.\n"
+" "
+
+#: Mailman/Gui/Topics.py:75
+msgid "Topic keywords, one per line, to match against each message."
+msgstr "Parole chiave, una per riga, da cercare nei messaggi."
+
+#: Mailman/Gui/Topics.py:77
+msgid ""
+"Each topic keyword is actually a regular expression, which is\n"
+" matched against certain parts of a mail message, specifically "
+"the\n"
+" <code>Keywords:</code> and <code>Subject:</code> message "
+"headers.\n"
+" Note that the first few lines of the body of the message can "
+"also\n"
+" contain a <code>Keywords:</code> and <code>Subject:</code>\n"
+" \"header\" on which matching is also performed."
+msgstr ""
+"Ogni parola chiave di argomento &egrave; in realt&agrave; una\n"
+" espressione regolare che viene confrontata con certe\n"
+" parti del messaggio, tipicamente i campi\n"
+" <code>Keywords:</code> e <code>Subject:</code>.\n"
+" Nota che anche le prime righe del testo del messaggio\n"
+" possono contenere intestazioni dello stesso tipo\n"
+" e il confronto pu&ograve; essere eseguito anche\n"
+" su queste."
+
+#: Mailman/Gui/Topics.py:116
+msgid ""
+"Topic specifications require both a name and\n"
+" a pattern. Incomplete topics will be ignored."
+msgstr ""
+"Le specifiche di argomento richiedono sia un nome che\n"
+" un profilo di riconoscimento. Gli argomenti\n"
+" incompleti saranno ignorati."
+
+#: Mailman/Gui/Topics.py:124
+msgid ""
+"The topic pattern `%(pattern)s' is not a\n"
+" legal regular expression. It will be discarded."
+msgstr ""
+"Il modello di argomento `%(pattern)s' non è una espressione\n"
+" regolare valida. Sarà eliminata."
+
+# /home/mailman/Mailman/Cgi/admin.py:45
+#: Mailman/Gui/Usenet.py:25
+msgid "Mail&lt;-&gt;News&nbsp;gateways"
+msgstr "Gateway&nbsp;Mail&lt;-&gt;News"
+
+# /home/mailman/Mailman/GatewayManager.py:46
+#: Mailman/Gui/Usenet.py:35
+msgid "Mail-to-News and News-to-Mail gateway services."
+msgstr "Servizio conversione Mail-to-News e News-to-Mail."
+
+#: Mailman/Gui/Usenet.py:37
+msgid "News server settings"
+msgstr "Configurazione del news server"
+
+# /home/mailman/Mailman/GatewayManager.py:48
+#: Mailman/Gui/Usenet.py:40
+msgid ""
+"The Internet address of the machine your News server is\n"
+" running on."
+msgstr ""
+"L'indirizzo internet della macchina sulla quale gira il\n"
+" tuo news server."
+
+#: Mailman/Gui/Usenet.py:42
+msgid ""
+"The News server is not part of Mailman proper. You have to\n"
+" already have access to a NNTP server, and that NNTP server has "
+"to\n"
+" recognize the machine this mailing list runs on as a machine\n"
+" capable of reading and posting news."
+msgstr ""
+"Il server news non &egrave; parte di Mailman. Devi gi&agrave;\n"
+" avere accesso a un server NNTP e questo server deve\n"
+" abilitarci alla lettura e all'invio."
+
+# /home/mailman/Mailman/GatewayManager.py:55
+#: Mailman/Gui/Usenet.py:48
+msgid "The name of the Usenet group to gateway to and/or from."
+msgstr ""
+"Il nome del gruppo Usenet verso il quale eseguire la conversione da e per."
+
+#: Mailman/Gui/Usenet.py:51
+msgid ""
+"Should new posts to the mailing list be sent to the\n"
+" newsgroup?"
+msgstr ""
+"I nuovi messaggi mandati alla lista dovrebbero essere inoltrati al newsgroup?"
+
+#: Mailman/Gui/Usenet.py:55
+msgid ""
+"Should new posts to the newsgroup be sent to the mailing\n"
+" list?"
+msgstr ""
+"I nuovi messaggi inviati al newsgroup dovrebbero essere inoltrati alla lista?"
+
+# /home/mailman/Mailman/Cgi/admin.py:44
+#: Mailman/Gui/Usenet.py:58
+msgid "Forwarding options"
+msgstr "Opzioni di inoltro"
+
+#: Mailman/Gui/Usenet.py:61
+msgid "Moderated"
+msgstr "Moderato"
+
+#: Mailman/Gui/Usenet.py:61
+msgid "Open list, moderated group"
+msgstr "Lista aperta, gruppo moderato"
+
+#: Mailman/Gui/Usenet.py:64
+msgid "The moderation policy of the newsgroup."
+msgstr "La stessa poltica del gruppo"
+
+#: Mailman/Gui/Usenet.py:66
+msgid ""
+"This setting determines the moderation policy of the\n"
+" newsgroup and its interaction with the moderation policy of "
+"the\n"
+" mailing list. This only applies to the newsgroup that you are\n"
+" gatewaying <em>to</em>, so if you are only gatewaying from\n"
+" Usenet, or the newsgroup you are gatewaying to is not "
+"moderated,\n"
+" set this option to <em>None</em>.\n"
+"\n"
+" <p>If the newsgroup is moderated, you can set this mailing "
+"list\n"
+" up to be the moderation address for the newsgroup. By "
+"selecting\n"
+" <em>Moderated</em>, an additional posting hold will be placed "
+"in\n"
+" the approval process. All messages posted to the mailing list\n"
+" will have to be approved before being sent on to the "
+"newsgroup,\n"
+" or to the mailing list membership.\n"
+"\n"
+" <p><em>Note that if the message has an <tt>Approved</tt> "
+"header\n"
+" with the list's administrative password in it, this hold test\n"
+" will be bypassed, allowing privileged posters to send messages\n"
+" directly to the list and the newsgroup.</em>\n"
+"\n"
+" <p>Finally, if the newsgroup is moderated, but you want to "
+"have\n"
+" an open posting policy anyway, you should select <em>Open "
+"list,\n"
+" moderated group</em>. The effect of this is to use the normal\n"
+" Mailman moderation facilities, but to add an <tt>Approved</tt>\n"
+" header to all messages that are gatewayed to Usenet."
+msgstr ""
+"Questa impostazione determina la politica di moderazione del gruppo\n"
+" e le sue interazioni con la politica di moderazione della\n"
+" lista. Questo si applica soltanto per i gruppi verso i\n"
+" quali stai inoltrando i messaggi della lista, quindi metti\n"
+" questa opzione a <em>Nessuno</em> se stai inoltrando solo\n"
+" da Usenet verso la lista o se il gruppo interessato non\n"
+" &egrave; moderato.\n"
+"\n"
+" <p>Se il gruppo &egrave; moderato, puoi usare questa\n"
+" lista come indirizzo di moderazione per il gruppo.\n"
+" Scegliendo <em>Moderato</em>, sar&agrave; aggiunto uno\n"
+" stato di sospensione addizionale al processo di approvazione\n"
+" dei messaggi. Tutti i messaggi inviati alla lista dovranno\n"
+" essere approvati prima di essere spediti al gruppo o agli\n"
+" iscritti della lista.\n"
+"\n"
+" <p><em>Nota che se il messaggio ha un campo <tt>Approved</tt>\n"
+" contenente la password di amministrazione della lista, questo\n"
+" controllo sar&agrave; saltato, permettendo in questo modo ad\n"
+" alcune persone privilegiate di inviare messaggi direttamente\n"
+" alla lista e al gruppo.</em>\n"
+"\n"
+" <p>Infine, se il gruppo &egrave; moderato ma vuoi avere una\n"
+" politica di invio aperto in ogni caso, puoi selezionare\n"
+" <em>Lista aperta, gruppo moderato</em>. L'effetto di\n"
+" questa scelta &egrave; che tutti i messaggi inoltrati a\n"
+" Usenet conterranno un campo <tt>Approved</tt>."
+
+#: Mailman/Gui/Usenet.py:92
+msgid "Prefix <tt>Subject:</tt> headers on postings gated to news?"
+msgstr ""
+"Metto il prefisso nel <tt>Subject:</tt> dei messaggi inoltrati ai newsgroup?"
+
+#: Mailman/Gui/Usenet.py:93
+msgid ""
+"Mailman prefixes <tt>Subject:</tt> headers with\n"
+" <a href=\"?VARHELP=general/subject_prefix\">text you can\n"
+" customize</a> and normally, this prefix shows up in messages\n"
+" gatewayed to Usenet. You can set this option to <em>No</em> "
+"to\n"
+" disable the prefix on gated messages. Of course, if you turn "
+"off\n"
+" normal <tt>Subject:</tt> prefixes, they won't be prefixed for\n"
+" gated messages either."
+msgstr ""
+"Mailman aggiunge all'oggetto dei messaggi un testo\n"
+" specificato <a href=\"?VARHELP=general/subject_prefix\">nella\n"
+" configurazione</a> e normalmente questo testo viene aggiunto\n"
+" anche ai messaggi inviati ai newsgroup; puoi selezionare\n"
+" <em>No</em> per non aggiungere il testo all'oggetto dei\n"
+" messaggi che vengono inviati sui newsgroup. Ovviamente,\n"
+" se non &egrave; stato specificato alcun testo da aggiungere\n"
+" all'oggetto dei messaggi, l'oggetto dei messaggi inviati ai\n"
+" newsgroup non viene modificato."
+
+#: Mailman/Gui/Usenet.py:101
+msgid "Mass catch up"
+msgstr "Messa in pari di massa"
+
+#: Mailman/Gui/Usenet.py:104
+msgid "Should Mailman perform a <em>catchup</em> on the newsgroup?"
+msgstr "Devo <em>mettermi in pari</em> con il newsgroup?"
+
+#: Mailman/Gui/Usenet.py:105
+msgid ""
+"When you tell Mailman to perform a catchup on the newsgroup,\n"
+" this means that you want to start gating messages to the "
+"mailing\n"
+" list with the next new message found. All earlier messages on\n"
+" the newsgroup will be ignored. This is as if you were reading\n"
+" the newsgroup yourself, and you marked all current messages as\n"
+" <em>read</em>. By catching up, your mailing list members will\n"
+" not see any of the earlier messages."
+msgstr ""
+"Quando dici a Mailman di mettersi in pari con il newsgroup,\n"
+" questo significa che vuoi che il trasferimento di messaggi "
+"alla\n"
+" lista inizi con il prossimo messaggio trovato. Tutti i \n"
+" messaggi precedenti sul newsgroup saranno ignorati. E' come\n"
+" se tu stessi leggendo il gruppo e marcassi tutti i messaggi\n"
+" come <em>letti</em>. Mettendoti in pari gli iscritti della "
+"lista\n"
+" non vedranno nessun messaggio vecchio."
+
+#: Mailman/Gui/Usenet.py:119
+msgid "Mass catchup completed"
+msgstr "Messa in pari completata"
+
+#: Mailman/Gui/Usenet.py:131
+msgid ""
+"You cannot enable gatewaying unless both the\n"
+" <a href=\"?VARHELP=gateway/nntp_host\">news server field</a> "
+"and\n"
+" the <a href=\"?VARHELP=gateway/linked_newsgroup\">linked\n"
+" newsgroup</a> fields are filled in."
+msgstr ""
+"Non puoi abilitare l'inoltro dei messaggi se non\n"
+" hai impostato sia il <a href=\"?VARHELP=gateway/nntp_host"
+"\">campo\n"
+" news server</a> che il <a href=\"?VARHELP=gateway/"
+"linked_newsgroup\">nome\n"
+" del gruppo linkato</a>."
+
+#: Mailman/HTMLFormatter.py:47
+msgid "%(listinfo_link)s list run by %(owner_link)s"
+msgstr "Lista %(listinfo_link)s gestita da %(owner_link)s"
+
+#: Mailman/HTMLFormatter.py:55
+msgid "%(realname)s administrative interface"
+msgstr "Pannello di controllo di %(realname)s"
+
+#: Mailman/HTMLFormatter.py:56
+msgid " (requires authorization)"
+msgstr " (richiede autorizzazione)"
+
+#: Mailman/HTMLFormatter.py:59
+msgid "Overview of all %(hostname)s mailing lists"
+msgstr "Elenco delle liste disponibili su %(hostname)s"
+
+# /home/mailman/Mailman/HTMLFormatter.py:93
+#: Mailman/HTMLFormatter.py:80
+msgid "<em>(1 private member not shown)</em>"
+msgstr "<em>(non &egrave; mostrato 1 iscritto nascosto)</em>"
+
+# /home/mailman/Mailman/HTMLFormatter.py:93
+#: Mailman/HTMLFormatter.py:82
+msgid "<em>(%(num_concealed)d private members not shown)</em>"
+msgstr "<em>(non sono mostrati %(num_concealed)d iscritti nascosti)</em>"
+
+#: Mailman/HTMLFormatter.py:137
+msgid "; it was disabled by you"
+msgstr "; l'hai disabilitato tu"
+
+# /home/mailman/Mailman/HTMLFormatter.py:156
+#: Mailman/HTMLFormatter.py:139
+msgid "; it was disabled by the list administrator"
+msgstr "; &egrave; stato disabilitato dall'amministratore della lista"
+
+#: Mailman/HTMLFormatter.py:143
+msgid ""
+"; it was disabled due to excessive bounces. The\n"
+" last bounce was received on %(date)s"
+msgstr ""
+"; &egrave; stato disabilitato a causa di troppi\n"
+" errori di invio. L'ultimo errore &egrave; stato\n"
+" ricevuto il %(date)s"
+
+#: Mailman/HTMLFormatter.py:146
+msgid "; it was disabled for unknown reasons"
+msgstr "; &egrave; stato disabilitato per qualche ragione ignota"
+
+# /home/mailman/Mailman/HTMLFormatter.py:145
+#: Mailman/HTMLFormatter.py:148
+msgid "Note: your list delivery is currently disabled%(reason)s."
+msgstr ""
+"Nota: l'invio dei messaggi della lista al tuo indirizzo &egrave; attualmente "
+"disabilitato%(reason)s."
+
+# /home/mailman/Mailman/HTMLFormatter.py:153
+#: Mailman/HTMLFormatter.py:151
+msgid "Mail delivery"
+msgstr "Consegna della posta"
+
+# /home/mailman/Mailman/HTMLFormatter.py:156
+#: Mailman/HTMLFormatter.py:153 Mailman/HTMLFormatter.py:298
+msgid "the list administrator"
+msgstr "l'amministratore della lista"
+
+#: Mailman/HTMLFormatter.py:154
+msgid ""
+"<p>%(note)s\n"
+"\n"
+" <p>You may have disabled list delivery intentionally,\n"
+" or it may have been triggered by bounces from your email\n"
+" address. In either case, to re-enable delivery, change the\n"
+" %(link)s option below. Contact %(mailto)s if you have any\n"
+" questions or need assistance."
+msgstr ""
+"<p>%(note)s\n"
+"\n"
+" <p>Potresti aver disabilitato l'invio intenzionalmente\n"
+" o potrebbe essere successo in automatico a causa di messaggi\n"
+" di errore che sono tornati indietro dal tuo indirizzo. In\n"
+" entrambi i casi, per riabilitare l'invio, cambia l'opzione\n"
+" %(link)s qui sotto. Contatta %(mailto)s se hai domande\n"
+" o necessiti aiuto."
+
+#: Mailman/HTMLFormatter.py:166
+msgid ""
+"<p>We have received some recent bounces from your\n"
+" address. Your current <em>bounce score</em> is %(score)s out of "
+"a\n"
+" maximum of %(total)s. Please double check that your subscribed\n"
+" address is correct and that there are no problems with delivery "
+"to\n"
+" this address. Your bounce score will be automatically reset if\n"
+" the problems are corrected soon."
+msgstr ""
+"<p>Recentemente abbiamo ricevuto qualche errore di trasmissione\n"
+" verso il tuo indirizzo email. Attualmente il tuo "
+"<em>punteggio\n"
+" errori</em> vale %(score)s su un massimo di %(total)s. Per\n"
+" favore controlla che l'indirizzo con il quale sei iscritto "
+"alla\n"
+" lista sia corretto e funzionante. Il tuo punteggio errori \n"
+" sar&agrave; automaticamente azzerato se ii problemi saranno\n"
+" corretti velocemente."
+
+#: Mailman/HTMLFormatter.py:178
+msgid ""
+"(Note - you are subscribing to a list of mailing lists, so the %(type)s "
+"notice will be sent to the admin address for your membership, %(addr)s.)<p>"
+msgstr ""
+"(Nota - ti stai iscrivendo ad una lista di liste, quindi la notifica %(type)"
+"s verr&agrave; inviata all'indirizzo del tuo amministratore, %(addr)s.)<p>"
+
+#: Mailman/HTMLFormatter.py:188
+msgid ""
+"You will be sent email requesting confirmation, to\n"
+" prevent others from gratuitously subscribing you."
+msgstr ""
+"Ti verr&agrave; inviato un messaggio con richiesta di conferma, per evitare "
+"che terzi possano iscriverti senza il tuo consenso."
+
+#: Mailman/HTMLFormatter.py:191
+msgid ""
+"This is a closed list, which means your subscription\n"
+" will be held for approval. You will be notified of the list\n"
+" moderator's decision by email."
+msgstr ""
+"Questa &egrave; una lista chiusa, quindi la tua iscrizione &egrave; stata "
+"sospesa in attesa di autorizzazione. Sarai avvertito della decisione del "
+"moderatore tramite email."
+
+# /home/mailman/Mailman/HTMLFormatter.py:184
+# /home/mailman/Mailman/HTMLFormatter.py:192
+#: Mailman/HTMLFormatter.py:194 Mailman/HTMLFormatter.py:201
+msgid "also "
+msgstr "anche "
+
+#: Mailman/HTMLFormatter.py:196
+msgid ""
+"You will be sent email requesting confirmation, to\n"
+" prevent others from gratuitously subscribing you. Once\n"
+" confirmation is received, your request will be held for "
+"approval\n"
+" by the list moderator. You will be notified of the moderator's\n"
+" decision by email."
+msgstr ""
+"Ti verr&agrave; inviata una richiesta di conferma via email, per evitare che "
+"terzi possano iscriverti senza il tuo permesso. Una volta ricevuta la "
+"conferma, la tua richiesta sar&agrave; vagliata dal moderatore della lista. "
+"La decisione finale ti sar&agrave; notificata via email."
+
+#: Mailman/HTMLFormatter.py:205
+msgid ""
+"This is %(also)sa private list, which means that the\n"
+" list of members is not available to non-members."
+msgstr ""
+"Questa &egrave; %(also)suna lista privata, quindi l'elenco degli\n"
+"iscritti non &egrave; disponibile ai non iscritti."
+
+#: Mailman/HTMLFormatter.py:208
+msgid ""
+"This is %(also)sa hidden list, which means that the\n"
+" list of members is available only to the list administrator."
+msgstr ""
+"Questa &egrave; %(also)suna lista protetta, questo significa che\n"
+"l'elenco degli iscritti &egrave; visibile solo all'amministratore della "
+"lista."
+
+#: Mailman/HTMLFormatter.py:211
+msgid ""
+"This is %(also)sa public list, which means that the\n"
+" list of members list is available to everyone."
+msgstr ""
+"Questa &egrave; %(also)suna lista pubblica, questo significa che la\n"
+"lista degli iscritti &egrave; aperta a chiunque"
+
+#: Mailman/HTMLFormatter.py:214
+msgid ""
+" (but we obscure the addresses so they are not\n"
+" easily recognizable by spammers)."
+msgstr ""
+" (ma noi oscuriamo gli indirizzi affinch&eacute; non siano facilmente "
+"identificabili dagli spammer). "
+
+#: Mailman/HTMLFormatter.py:219
+msgid ""
+"<p>(Note that this is an umbrella list, intended to\n"
+" have only other mailing lists as members. Among other things,\n"
+" this means that your confirmation request will be sent to the\n"
+" `%(sfx)s' account for your address.)"
+msgstr ""
+"<p>(Nota che questa &egrave; una lista ombrello, intesa ad avere come "
+"iscritti solo altre liste. Tra le altre cose, questo significa che la tua "
+"richiesta di conferma per il tuo indirizzo sar&agrave; inviata a '%(sfx)s'.)"
+
+#: Mailman/HTMLFormatter.py:248
+msgid "<b><i>either</i></b> "
+msgstr "<b><i>o</i></b> "
+
+#: Mailman/HTMLFormatter.py:253
+msgid ""
+"To unsubscribe from %(realname)s, get a password reminder,\n"
+" or change your subscription options %(either)senter your "
+"subscription\n"
+" email address:\n"
+" <p><center> "
+msgstr ""
+"Per cambiare le impostazioni della tua iscrizione (cose\n"
+" come digest e modalit&agrave; di invio, promemoria\n"
+" della password, cancellazione da %(realname)s)\n"
+" %(either)s inserisci l'indirizzo email con il quale\n"
+" sei iscritto: <p><center> "
+
+# /home/mailman/Mailman/Cgi/admindb.py:289
+#: Mailman/HTMLFormatter.py:260
+msgid "Unsubscribe or edit options"
+msgstr "Cancellati o modifica opzioni"
+
+#: Mailman/HTMLFormatter.py:264
+msgid ""
+"<p>... <b><i>or</i></b> select your entry from\n"
+" the subscribers list (see above)."
+msgstr ""
+"<p>... <p><i>oppure</i></b> scegli la tua riga dall'elenco degli iscritti "
+"(vedi sopra)."
+
+#: Mailman/HTMLFormatter.py:266
+msgid ""
+" If you leave the field blank, you will be prompted for\n"
+" your email address"
+msgstr ""
+" Se lasci in bianco il riquadro, ti sar&agrave; chiesto\n"
+" il tuo indirizzo email"
+
+# /home/mailman/Mailman/HTMLFormatter.py:266
+#: Mailman/HTMLFormatter.py:274
+msgid ""
+"(<i>%(which)s is only available to the list\n"
+" members.</i>)"
+msgstr ""
+"(<i>%(which)s &egrave; disponibile solo\n"
+" agli iscritti della lista.</i>)"
+
+# /home/mailman/Mailman/HTMLFormatter.py:269
+#: Mailman/HTMLFormatter.py:278
+msgid ""
+"(<i>%(which)s is only available to the list\n"
+" administrator.</i>)"
+msgstr ""
+"(<i>%(which)s &egrave; disponibile solo\n"
+" all'amministratore della lista.</i>)"
+
+# /home/mailman/Mailman/HTMLFormatter.py:279
+#: Mailman/HTMLFormatter.py:288
+msgid "Click here for the list of "
+msgstr "Clicca qui per la lista degli iscritti a "
+
+# /home/mailman/Mailman/HTMLFormatter.py:281
+#: Mailman/HTMLFormatter.py:290
+msgid " subscribers: "
+msgstr ": "
+
+# /home/mailman/Mailman/HTMLFormatter.py:305
+#: Mailman/HTMLFormatter.py:292
+msgid "Visit Subscriber list"
+msgstr "Visita la Lista degli Iscritti"
+
+# /home/mailman/Mailman/MailList.py:593
+#: Mailman/HTMLFormatter.py:295
+msgid "members"
+msgstr "iscritti"
+
+# In this entry insert a space at the end of string, it will be stripped.
+# /home/mailman/Mailman/HTMLFormatter.py:287
+#: Mailman/HTMLFormatter.py:296
+msgid "Address:"
+msgstr "Indirizzo:"
+
+# In this entry insert a space at the end of string, it will be stripped.
+# /home/mailman/Mailman/HTMLFormatter.py:287
+#: Mailman/HTMLFormatter.py:299
+msgid "Admin address:"
+msgstr "Indirizzo:"
+
+# /home/mailman/Mailman/HTMLFormatter.py:292
+#: Mailman/HTMLFormatter.py:302
+msgid "The subscribers list"
+msgstr "La lista degli iscritti"
+
+# /home/mailman/Mailman/HTMLFormatter.py:294
+#: Mailman/HTMLFormatter.py:304
+msgid " <p>Enter your "
+msgstr " <p>Inserisci il tuo "
+
+# /home/mailman/Mailman/HTMLFormatter.py:296
+#: Mailman/HTMLFormatter.py:306
+msgid " and password to visit the subscribers list: <p><center> "
+msgstr " e la password per visitare la lista degli iscritti: <p><center> "
+
+# /home/mailman/Mailman/HTMLFormatter.py:301
+#: Mailman/HTMLFormatter.py:311
+msgid "Password: "
+msgstr "Password: "
+
+# /home/mailman/Mailman/HTMLFormatter.py:305
+#: Mailman/HTMLFormatter.py:315
+msgid "Visit Subscriber List"
+msgstr "Visita la Lista degli Iscritti"
+
+# /home/mailman/Mailman/HTMLFormatter.py:334
+#: Mailman/HTMLFormatter.py:345
+msgid "Once a month, your password will be emailed to you as a reminder."
+msgstr ""
+"Una volta al mese, la tua password ti verr&agrave; spedita come promemoria."
+
+# /home/mailman/Mailman/HTMLFormatter.py:373
+#: Mailman/HTMLFormatter.py:391
+msgid "The current archive"
+msgstr "L'archivio corrente"
+
+#: Mailman/Handlers/Acknowledge.py:59
+msgid "%(realname)s post acknowledgement"
+msgstr "validazione del messaggio di %(realname)s"
+
+#: Mailman/Handlers/CalcRecips.py:68
+msgid ""
+"Your urgent message to the %(realname)s mailing list was not authorized for\n"
+"delivery. The original message as received by Mailman is attached.\n"
+msgstr ""
+"Il tuo messaggio urgente alla lista %(realname)s non e' stato\n"
+"approvato. In allegato trovi il messaggio originale, come\n"
+"ricevuto da Mailman.\n"
+
+#: Mailman/Handlers/Emergency.py:29
+msgid "Emergency hold on all list traffic is in effect"
+msgstr "Sospensione di emergenza per tutti i messaggi attivata"
+
+#: Mailman/Handlers/Emergency.py:30 Mailman/Handlers/Hold.py:58
+msgid "Your message was deemed inappropriate by the moderator."
+msgstr ""
+"Il tuo messaggio &egrave; stato giudicato inappropriato dal moderatore."
+
+#: Mailman/Handlers/Hold.py:53
+msgid "Sender is explicitly forbidden"
+msgstr "Mittente esplititamente proibito"
+
+#: Mailman/Handlers/Hold.py:54
+msgid "You are forbidden from posting messages to this list."
+msgstr "Ti è proibito inviare messaggi a questa lista."
+
+#: Mailman/Handlers/Hold.py:57
+msgid "Post to moderated list"
+msgstr "Messaggio inviato ad una lista moderata"
+
+#: Mailman/Handlers/Hold.py:61
+msgid "Post by non-member to a members-only list"
+msgstr "Messaggio inviato da un non iscritto ad una lista chiusa"
+
+#: Mailman/Handlers/Hold.py:62
+msgid "Non-members are not allowed to post messages to this list."
+msgstr "Ai non iscritti non è permesso inviare messaggi a questa lista."
+
+#: Mailman/Handlers/Hold.py:65
+msgid "Posting to a restricted list by sender requires approval"
+msgstr "Un messaggio diretto ad una lista chiusa richiede approvazione"
+
+#: Mailman/Handlers/Hold.py:66
+msgid "This list is restricted; your message was not approved."
+msgstr "Questa lista è ristretta; il tuo messaggio non è stato approvato."
+
+#: Mailman/Handlers/Hold.py:69
+msgid "Too many recipients to the message"
+msgstr "Troppi destinatari nel messaggio"
+
+#: Mailman/Handlers/Hold.py:70
+msgid "Please trim the recipient list; it is too long."
+msgstr "Per piacere accorcia la lista dei destinatari; è troppo lunga."
+
+#: Mailman/Handlers/Hold.py:73
+msgid "Message has implicit destination"
+msgstr "Il messaggio ha destinazione implicita"
+
+#: Mailman/Handlers/Hold.py:74
+msgid ""
+"Blind carbon copies or other implicit destinations are\n"
+"not allowed. Try reposting your message by explicitly including the list\n"
+"address in the To: or Cc: fields."
+msgstr ""
+"Copie carbone nascoste (BCC) e altri destinatari impliciti non sono\n"
+"permessi. Prova a rimandare il tuo messaggio mettendo la lista degli\n"
+"indirizzi nei campi To: o Cc:"
+
+#: Mailman/Handlers/Hold.py:79
+msgid "Message may contain administrivia"
+msgstr "Il messaggio potrebbe contenere richieste amministrative"
+
+#: Mailman/Handlers/Hold.py:84
+msgid ""
+"Please do *not* post administrative requests to the mailing\n"
+"list. If you wish to subscribe, visit %(listurl)s or send a message with "
+"the\n"
+"word `help' in it to the request address, %(request)s, for further\n"
+"instructions."
+msgstr ""
+"Per piacere *non* mandare richieste amministrative alla lista.\n"
+"Se desideri iscriverti, visita %(listurl)s o invia un messaggio con la\n"
+"parola `help' all'indirizzo %(request)s."
+
+#: Mailman/Handlers/Hold.py:90
+msgid "Message has a suspicious header"
+msgstr "Il messaggio ha un campo sospetto."
+
+#: Mailman/Handlers/Hold.py:91
+msgid "Your message had a suspicious header."
+msgstr "Il tuo messaggio ha un campo sospetto."
+
+#: Mailman/Handlers/Hold.py:101
+msgid ""
+"Message body is too big: %(size)d bytes with a limit of\n"
+"%(limit)d KB"
+msgstr ""
+"Il testo del messaggio è troppo grande: %(size)d bytes\n"
+" con un limite di %(limit)d KB"
+
+#: Mailman/Handlers/Hold.py:106
+msgid ""
+"Your message was too big; please trim it to less than\n"
+"%(kb)d KB in size."
+msgstr ""
+"Il tuo messaggio era troppo grande; per favore riducilo\n"
+"in modo che diventi meno di %(kb)d KB."
+
+#: Mailman/Handlers/Hold.py:110
+msgid "Posting to a moderated newsgroup"
+msgstr "Messaggio inviato ad un gruppo moderato"
+
+#: Mailman/Handlers/Hold.py:233
+msgid "Your message to %(listname)s awaits moderator approval"
+msgstr "Il tuo messaggio a %(listname)s attende l'approvazione del moderatore"
+
+#: Mailman/Handlers/Hold.py:253
+msgid "%(listname)s post from %(sender)s requires approval"
+msgstr "Messaggio a %(listname)s da %(sender)s richiede approvazione"
+
+#: Mailman/Handlers/Hold.py:260
+msgid ""
+"If you reply to this message, keeping the Subject: header intact, Mailman "
+"will\n"
+"discard the held message. Do this if the message is spam. If you reply to\n"
+"this message and include an Approved: header with the list password in it, "
+"the\n"
+"message will be approved for posting to the list. The Approved: header can\n"
+"also appear in the first line of the body of the reply."
+msgstr ""
+"Se rispondi a questo messaggio lasciando intatto l'oggetto,\n"
+"Mailman scarterà il messaggio sospeso. Fai questo se il\n"
+"messaggio era spam. Se rispondi a questo messaggio inserendo \n"
+"un campo Approved: contenente la password di lista,\n"
+"allora sarà approvato l'inoltro alla lista del messaggio sospeso.\n"
+"La riga Approved: può anche apparire sulla prima riga del\n"
+"testo della tua risposta."
+
+#: Mailman/Handlers/MimeDel.py:56
+msgid "The message's content type was explicitly disallowed"
+msgstr "Il tipo del contenuto del messaggio era esplicitamente proibito"
+
+#: Mailman/Handlers/MimeDel.py:61
+msgid "The message's content type was not explicitly allowed"
+msgstr "Il tipo del contenuto del messaggio non era esplicitamente permesso"
+
+#: Mailman/Handlers/MimeDel.py:73
+msgid "After content filtering, the message was empty"
+msgstr "Dopo il filtraggio del contenuto il messaggio è rimasto vuoto"
+
+#: Mailman/Handlers/MimeDel.py:208
+msgid ""
+"The attached message matched the %(listname)s mailing list's content "
+"filtering\n"
+"rules and was prevented from being forwarded on to the list membership. "
+"You\n"
+"are receiving the only remaining copy of the discarded message.\n"
+"\n"
+msgstr ""
+"Per il messaggio allegato applicano le regole di filtraggio\n"
+"della lista %(listname)s e gli è quindi stato impedito di\n"
+"raggiungere gli iscritti alla lista. Stai ricevendo l'unica\n"
+"copia rimasta di questo messaggio scartato.\n"
+"\n"
+
+#: Mailman/Handlers/MimeDel.py:214
+msgid "Content filtered message notification"
+msgstr "Notifica di messaggio filtrato sul contenuto"
+
+#: Mailman/Handlers/Moderate.py:138
+msgid ""
+"You are not allowed to post to this mailing list, and your message has been\n"
+"automatically rejected. If you think that your messages are being rejected "
+"in\n"
+"error, contact the mailing list owner at %(listowner)s."
+msgstr ""
+"Non sei autorizzato a spedire messaggi a questa lista e il tuo\n"
+"messaggio è stato automaticamente rifiutato. Se pensi che ci\n"
+"sia stato un errore, contatta il gestore della lista\n"
+"all'indirizzo %(listowner)s."
+
+#: Mailman/Handlers/Moderate.py:153
+msgid "Auto-discard notification"
+msgstr "Notifica di scarto automatico"
+
+#: Mailman/Handlers/Moderate.py:156
+msgid "The attached message has been automatically discarded."
+msgstr "Il messaggio allegato è stato scartato automaticamente."
+
+# /home/mailman/Mailman/ListAdmin.py:146
+#: Mailman/Handlers/Replybot.py:74
+msgid "Auto-response for your message to "
+msgstr "Auto-risposta al tuo messaggio diretto a "
+
+# /home/mailman/Mailman/Deliverer.py:236
+#: Mailman/Handlers/Replybot.py:75
+msgid "the \"%(realname)s\" mailing list"
+msgstr "la lista \"%(realname)s\""
+
+#: Mailman/Handlers/Replybot.py:107
+msgid "The Mailman Replybot"
+msgstr "Il Replybot di Mailman"
+
+#: Mailman/Handlers/Scrubber.py:148
+msgid "HTML attachment scrubbed and removed"
+msgstr "Allegato HTML pulito e rimosso"
+
+#: Mailman/Handlers/Scrubber.py:162 Mailman/Handlers/Scrubber.py:188
+msgid ""
+"An HTML attachment was scrubbed...\n"
+"URL: %(url)s\n"
+msgstr ""
+"Un allegato HTML è stato rimosso...\n"
+"URL: %(url)s\n"
+
+# /home/mailman/Mailman/Archiver/pipermail.py:95
+# /home/mailman/Mailman/Archiver/pipermail.py:96
+#: Mailman/Handlers/Scrubber.py:201
+msgid "no subject"
+msgstr "senza oggetto"
+
+#: Mailman/Handlers/Scrubber.py:202
+msgid "no date"
+msgstr "data assente"
+
+#: Mailman/Handlers/Scrubber.py:203
+msgid "unknown sender"
+msgstr "mittente sconosciuto"
+
+#: Mailman/Handlers/Scrubber.py:205
+msgid ""
+"An embedded message was scrubbed...\n"
+"From: %(who)s\n"
+"Subject: %(subject)s\n"
+"Date: %(date)s\n"
+"Size: %(size)s\n"
+"Url: %(url)s\n"
+msgstr ""
+"Un messaggio incapsulato è stato rimosso...\n"
+"Da: %(who)s\n"
+"Oggetto : %(subject)s\n"
+"Data: %(date)s\n"
+"Dimensione: %(size)s\n"
+"Url: %(url)s\n"
+
+#: Mailman/Handlers/Scrubber.py:228
+msgid ""
+"A non-text attachment was scrubbed...\n"
+"Name: %(filename)s\n"
+"Type: %(ctype)s\n"
+"Size: %(size)d bytes\n"
+"Desc: %(desc)s\n"
+"Url : %(url)s\n"
+msgstr ""
+"Un allegato non testuale è stato rimosso....\n"
+"Nome: %(filename)s\n"
+"Tipo: %(ctype)s\n"
+"Dimensione: %(size)d bytes\n"
+"Descrizione: %(desc)s\n"
+"Url: %(url)s\n"
+
+#: Mailman/Handlers/Scrubber.py:258
+msgid "Skipped content of type %(partctype)s"
+msgstr "Rimosso contenuto di tipo %(partctype)s"
+
+#: Mailman/Handlers/Scrubber.py:275
+msgid "-------------- next part --------------\n"
+msgstr "-------------- parte successiva --------------\n"
+
+#: Mailman/Handlers/ToDigest.py:141
+msgid "%(realname)s Digest, Vol %(volume)d, Issue %(issue)d"
+msgstr "Digest di %(realname)s, Volume %(volume)d, Numero %(issue)d"
+
+# /home/mailman/Mailman/MailCommandHandler.py:457
+#: Mailman/Handlers/ToDigest.py:181
+msgid "digest header"
+msgstr "intestazione digest"
+
+# /home/mailman/Mailman/MailCommandHandler.py:457
+#: Mailman/Handlers/ToDigest.py:184
+msgid "Digest Header"
+msgstr "Intestazione Digest"
+
+#: Mailman/Handlers/ToDigest.py:197
+msgid "Today's Topics:\n"
+msgstr "Argomenti del Giorno:\n"
+
+#: Mailman/Handlers/ToDigest.py:267
+msgid "Today's Topics (%(msgcount)d messages)"
+msgstr "Argomenti di oggi (%(msgcount)d messaggi)"
+
+# /home/mailman/Mailman/Digester.py:63
+#: Mailman/Handlers/ToDigest.py:292
+msgid "digest footer"
+msgstr "chiusura del digest"
+
+# /home/mailman/Mailman/Digester.py:63
+#: Mailman/Handlers/ToDigest.py:295
+msgid "Digest Footer"
+msgstr "Chiusura del digest"
+
+# /home/mailman/Mailman/MailCommandHandler.py:175
+#: Mailman/Handlers/ToDigest.py:309
+msgid "End of "
+msgstr "Fine di "
+
+# /home/mailman/Mailman/ListAdmin.py:146
+#: Mailman/ListAdmin.py:307
+msgid "Posting of your message titled \"%(subject)s\""
+msgstr "Invio del tuo messaggio intitolato \"%(subject)s\""
+
+#: Mailman/ListAdmin.py:346
+msgid "Forward of moderated message"
+msgstr "Inoltro del messaggio moderato"
+
+# /home/mailman/Mailman/ListAdmin.py:57
+#: Mailman/ListAdmin.py:405
+msgid "New subscription request to list %(realname)s from %(addr)s"
+msgstr "Nuova richiesta di iscrizione a %(realname)s da parte di %(addr)s"
+
+# /home/mailman/Mailman/Cgi/admindb.py:289
+#: Mailman/ListAdmin.py:428
+msgid "Subscription request"
+msgstr "Richieste di iscrizione"
+
+# /home/mailman/Mailman/ListAdmin.py:57
+#: Mailman/ListAdmin.py:458
+msgid "New unsubscription request from %(realname)s by %(addr)s"
+msgstr "Nuova richiesta di cancellazione da %(realname)s da parte di %(addr)s"
+
+# /home/mailman/Mailman/Cgi/admindb.py:289
+#: Mailman/ListAdmin.py:481
+msgid "Unsubscription request"
+msgstr "Richiesta di cancellazione"
+
+# /home/mailman/Mailman/ListAdmin.py:217
+#: Mailman/ListAdmin.py:512
+msgid "Original Message"
+msgstr "Messaggio originale"
+
+# /home/mailman/Mailman/Deliverer.py:255
+#: Mailman/ListAdmin.py:515
+msgid "Request to mailing list %(realname)s rejected"
+msgstr "Richiesta alla lista %(realname)s rifiutata"
+
+#: Mailman/MTA/Manual.py:57
+msgid ""
+"The mailing list `%(listname)s' has been created via the through-the-web\n"
+"interface. In order to complete the activation of this mailing list, the\n"
+"proper /etc/aliases (or equivalent) file must be updated. The program\n"
+"`newaliases' may also have to be run.\n"
+"\n"
+"Here are the entries for the /etc/aliases file:\n"
+msgstr ""
+"La lista %(listname)s' è stata creata attraverso l'interfaccia\n"
+"web. Per completare l'attivazione della lista devi aggiornare\n"
+"l'opportuno file /etc/aliases (o equivalente). Potresti anche\n"
+"aver bisogno di eseguire il programma `newaliases'.\n"
+"\n"
+"Di seguito puoi vedere le righe per il file /etc/aliases:\n"
+
+#: Mailman/MTA/Manual.py:67
+msgid ""
+"\n"
+"To finish creating your mailing list, you must edit your /etc/aliases (or\n"
+"equivalent) file by adding the following lines, and possibly running the\n"
+"`newaliases' program:\n"
+"\n"
+"## %(listname)s mailing list"
+msgstr ""
+"\n"
+"Per terminare la creazione della tua lista, devi editare il tuo\n"
+"file /etc/aliases (o equivalente) aggiungendo le seguenti righe\n"
+"e possibilmente eseguendo il comando `newaliases':\n"
+"\n"
+"## lista %(listname)s"
+
+# /home/mailman/Mailman/Cgi/admindb.py:262
+#: Mailman/MTA/Manual.py:88
+msgid "Mailing list creation request for list %(listname)s"
+msgstr "Richiesta di creazione della lista %(listname)s"
+
+#: Mailman/MTA/Manual.py:103
+msgid ""
+"The mailing list `%(listname)s' has been removed via the through-the-web\n"
+"interface. In order to complete the de-activation of this mailing list, "
+"the\n"
+"appropriate /etc/aliases (or equivalent) file must be updated. The program\n"
+"`newaliases' may also have to be run.\n"
+"\n"
+"Here are the entries in the /etc/aliases file that should be removed:\n"
+msgstr ""
+"La lista `%(listname)s' è stata rimossa attraverso l'interfaccia web.\n"
+"Per completare la disattivazione di questa lista, devi aggiornare\n"
+"l'appropriato file /etc/aliases (o equivalente). Potrebbe anche\n"
+"essere necessario eseguire newaliases.\n"
+"\n"
+
+#: Mailman/MTA/Manual.py:113
+msgid ""
+"\n"
+"To finish removing your mailing list, you must edit your /etc/aliases (or\n"
+"equivalent) file by removing the following lines, and possibly running the\n"
+"`newaliases' program:\n"
+"\n"
+"## %(listname)s mailing list"
+msgstr ""
+"\n"
+"Per completare la rimozione della lista, devi editare il file /etc/aliases\n"
+"(o equivalente) rimuovendo le seguenti righe e probabilmente eseguire il\n"
+"comando newaliases:\n"
+"\n"
+"## %(listname)s mailing list"
+
+#: Mailman/MTA/Manual.py:132
+msgid "Mailing list removal request for list %(listname)s"
+msgstr "Richiesta di rimozione della lista %(listname)s"
+
+#: Mailman/MTA/Postfix.py:300
+msgid "checking permissions on %(file)s"
+msgstr "controllo dei permessi su %(file)s"
+
+#: Mailman/MTA/Postfix.py:310
+msgid "%(file)s permissions must be 066x (got %(octmode)s)"
+msgstr "i permessi per %(file)s devono essere 066x (invece di %(octmode)s)"
+
+#: Mailman/MTA/Postfix.py:312 Mailman/MTA/Postfix.py:339 bin/check_perms:100
+#: bin/check_perms:122 bin/check_perms:132 bin/check_perms:143
+#: bin/check_perms:162 bin/check_perms:180 bin/check_perms:200
+#: bin/check_perms:224 bin/check_perms:244 bin/check_perms:258
+#: bin/check_perms:278 bin/check_perms:315
+msgid "(fixing)"
+msgstr "(corretto)"
+
+#: Mailman/MTA/Postfix.py:328
+msgid "checking ownership of %(dbfile)s"
+msgstr "controllo del proprietario di %(dbfile)s"
+
+#: Mailman/MTA/Postfix.py:336
+msgid "%(dbfile)s owned by %(owner)s (must be owned by %(user)s"
+msgstr "%(dbfile)s appartiene a %(owner)s (deve appartenere a %(user)s"
+
+# /home/mailman/Mailman/Deliverer.py:242
+#: Mailman/MailList.py:697
+msgid "You have been invited to join the %(listname)s mailing list"
+msgstr "Sei stato invitato ad iscriverti alla lista %(listname)s"
+
+# /home/mailman/Mailman/Cgi/subscribe.py:129
+#: Mailman/MailList.py:801 Mailman/MailList.py:1157
+msgid " from %(remote)s"
+msgstr " da %(remote)s"
+
+#: Mailman/MailList.py:835
+msgid "subscriptions to %(realname)s require moderator approval"
+msgstr "le iscrizioni a %(realname)s richiedono l'approvazione del moderatore"
+
+# /home/mailman/Mailman/Cgi/roster.py:72
+#: Mailman/MailList.py:894 bin/add_members:281
+msgid "%(realname)s subscription notification"
+msgstr "Notifica di iscrizione a %(realname)s"
+
+#: Mailman/MailList.py:909
+msgid "unsubscriptions require moderator approval"
+msgstr "le cancellazioni richiedono l'approvazione del moderatore"
+
+# /home/mailman/Mailman/Cgi/roster.py:72
+#: Mailman/MailList.py:928
+msgid "%(realname)s unsubscribe notification"
+msgstr "notifica di cancellazione da %(realname)s"
+
+#: Mailman/MailList.py:1072
+msgid "subscriptions to %(name)s require administrator approval"
+msgstr "le iscrizioni a %(name)s richiedono l'approvazione dell'amministratore"
+
+#: Mailman/MailList.py:1326
+msgid "Last autoresponse notification for today"
+msgstr "Ultima notifica automatica per oggi."
+
+#: Mailman/Queue/BounceRunner.py:179
+msgid ""
+"The attached message was received as a bounce, but either the bounce format\n"
+"was not recognized, or no member addresses could be extracted from it. "
+"This\n"
+"mailing list has been configured to send all unrecognized bounce messages "
+"to\n"
+"the list administrator(s).\n"
+"\n"
+"For more information see:\n"
+"%(adminurl)s\n"
+"\n"
+msgstr ""
+"Il messaggio allegato è stato ricevuto come una notifica di\n"
+"errore ma o il formato della notifica non è stato riconosciuto\n"
+"oppure non è stato possibile estrarre l'indirizzo dell'iscritto.\n"
+"Questa lista è stata configurata per inviare all'amministrtatore\n"
+"tutte le notifiche di errore non riconosciute.\n"
+"\n"
+"Per maggiori informazioni vedi:\n"
+"%(adminurl)s\n"
+"\n"
+
+# /home/mailman/Mailman/Cgi/roster.py:72
+#: Mailman/Queue/BounceRunner.py:189
+msgid "Uncaught bounce notification"
+msgstr "Notifica errore non riconosciuta"
+
+#: Mailman/Queue/CommandRunner.py:74
+msgid "Ignoring non-text/plain MIME parts"
+msgstr "Ignoro le parti MIME non text/plain"
+
+#: Mailman/Queue/CommandRunner.py:129
+msgid ""
+"The results of your email command are provided below.\n"
+"Attached is your original message.\n"
+msgstr ""
+"I risultati dei comandi che erano nel tuo messaggio sono\n"
+"mostrati qui sotto. Allegato trovi il tuo messaggio originale.\n"
+
+#: Mailman/Queue/CommandRunner.py:134
+msgid "- Results:"
+msgstr "- Risultati:"
+
+#: Mailman/Queue/CommandRunner.py:140
+msgid ""
+"\n"
+"- Unprocessed:"
+msgstr ""
+"\n"
+"- Non elaborati:"
+
+#: Mailman/Queue/CommandRunner.py:143
+msgid ""
+"\n"
+"- Ignored:"
+msgstr ""
+"\n"
+"- Ignorati:"
+
+#: Mailman/Queue/CommandRunner.py:145
+msgid ""
+"\n"
+"- Done.\n"
+"\n"
+msgstr ""
+"\n"
+"- Finito.\n"
+"\n"
+
+#: Mailman/Queue/CommandRunner.py:163
+msgid "The results of your email commands"
+msgstr "Risultati dei comandi nel tuo messaggio"
+
+#: Mailman/htmlformat.py:627
+msgid "Delivered by Mailman<br>version %(version)s"
+msgstr "Consegnato da Mailman<br>versione %(version)s"
+
+#: Mailman/htmlformat.py:628
+msgid "Python Powered"
+msgstr "Python Powered"
+
+#: Mailman/htmlformat.py:629
+msgid "Gnu's Not Unix"
+msgstr "Gnu's Not Unix"
+
+# /home/mailman/Mailman/MailList.py:539
+#: Mailman/i18n.py:86
+msgid "Mon"
+msgstr "Lun"
+
+#: Mailman/i18n.py:86
+msgid "Thu"
+msgstr "Gio"
+
+#: Mailman/i18n.py:86
+msgid "Tue"
+msgstr "Mar"
+
+#: Mailman/i18n.py:86
+msgid "Wed"
+msgstr "Mer"
+
+#: Mailman/i18n.py:87
+msgid "Fri"
+msgstr "Ven"
+
+#: Mailman/i18n.py:87
+msgid "Sat"
+msgstr "Sab"
+
+#: Mailman/i18n.py:87
+msgid "Sun"
+msgstr "Dom"
+
+# /home/mailman/Mailman/Cgi/admindb.py:225
+#: Mailman/i18n.py:91
+msgid "Apr"
+msgstr "Apr"
+
+#: Mailman/i18n.py:91
+msgid "Feb"
+msgstr "Feb"
+
+#: Mailman/i18n.py:91
+msgid "Jan"
+msgstr "Gen"
+
+#: Mailman/i18n.py:91
+msgid "Jun"
+msgstr "Giu"
+
+#: Mailman/i18n.py:91
+msgid "Mar"
+msgstr "Mar"
+
+#: Mailman/i18n.py:92
+msgid "Aug"
+msgstr "Ago"
+
+#: Mailman/i18n.py:92
+msgid "Dec"
+msgstr "Dic"
+
+#: Mailman/i18n.py:92
+msgid "Jul"
+msgstr "Lug"
+
+# /home/mailman/Mailman/Archiver/Archiver.py:133
+# /home/mailman/Mailman/Bouncer.py:64 /home/mailman/Mailman/Digester.py:58
+# /home/mailman/Mailman/Digester.py:74
+# /home/mailman/Mailman/GatewayManager.py:56
+# /home/mailman/Mailman/GatewayManager.py:59
+# /home/mailman/Mailman/MailList.py:441 /home/mailman/Mailman/MailList.py:452
+# /home/mailman/Mailman/MailList.py:476 /home/mailman/Mailman/MailList.py:479
+# /home/mailman/Mailman/MailList.py:487 /home/mailman/Mailman/MailList.py:497
+# /home/mailman/Mailman/MailList.py:500 /home/mailman/Mailman/MailList.py:585
+# /home/mailman/Mailman/MailList.py:599 /home/mailman/Mailman/MailList.py:611
+# /home/mailman/Mailman/MailList.py:614 /home/mailman/Mailman/MailList.py:642
+# /home/mailman/Mailman/MailList.py:699 /home/mailman/Mailman/MailList.py:707
+#: Mailman/i18n.py:92
+msgid "Nov"
+msgstr "Nov"
+
+#: Mailman/i18n.py:92
+msgid "Oct"
+msgstr "Ott"
+
+#: Mailman/i18n.py:92
+msgid "Sep"
+msgstr "Set"
+
+#: Mailman/i18n.py:95
+msgid "Server Local Time"
+msgstr "Ora locale del server"
+
+#: Mailman/i18n.py:128
+msgid ""
+"%(wday)s %(mon)s %(day)2i %(hh)02i:%(mm)02i:%(ss)02i %(tzname)s %(year)04i"
+msgstr ""
+"%(wday)s %(day)2i %(mon)s %(year)04i %(hh)02i:%(mm)02i:%(ss)02i %(tzname)s"
+
+#: bin/add_members:26
+msgid ""
+"Add members to a list from the command line.\n"
+"\n"
+"Usage:\n"
+" add_members [options] listname\n"
+"\n"
+"Options:\n"
+"\n"
+" --regular-members-file=file\n"
+" -r file\n"
+" A file containing addresses of the members to be added, one\n"
+" address per line. This list of people become non-digest\n"
+" members. If file is `-', read addresses from stdin. Note that\n"
+" -n/--non-digest-members-file are deprecated synonyms for this "
+"option.\n"
+"\n"
+" --digest-members-file=file\n"
+" -d=file\n"
+" Similar to above, but these people become digest members.\n"
+"\n"
+" --changes-msg=<y|n>\n"
+" -c <y|n> \n"
+"\tSet whether or not to send the list members the `there's going to be\n"
+"\tbig changes to your list' message. defaults to no.\n"
+"\n"
+" --welcome-msg=<y|n>\n"
+" -w <y|n>\n"
+" Set whether or not to send the list members a welcome message,\n"
+" overriding whatever the list's `send_welcome_msg' setting is.\n"
+"\n"
+" --admin-notify=<y|n>\n"
+" -a <y|n>\n"
+" Set whether or not to send the list administrators a notification "
+"on\n"
+" the success/failure of these subscriptions, overriding whatever the\n"
+" list's `admin_notify_mchanges' setting is.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname\n"
+" The name of the Mailman list you are adding members to. It must\n"
+" already exist.\n"
+"\n"
+"You must supply at least one of -r and -d options. At most one of the\n"
+"files can be `-'.\n"
+msgstr ""
+"Aggiunta di iscritti dalla linea di comando.\n"
+"\n"
+"Uso:\n"
+" add_members [opzioni] nomelista\n"
+"\n"
+"Opzioni:\n"
+"\n"
+" --regular-members-file=file\n"
+" -r file\n"
+" Un file contenente gli indirizzi da aggiungere, uno per ogni\n"
+" riga. Le persone contenute in questo elenco diverranno\n"
+" iscritti non digest.\n"
+" Se file è `-', allora gli indirizzi saranno letti da stdin.\n"
+" -n/--non-digest-members-file sono sinonimi deprecati per\n"
+" questa opzione.\n"
+"\n"
+" --digest-members-file=file\n"
+" -d=file\n"
+" Come sopra, tranne che queste persone diverranno iscritti digest.\n"
+"\n"
+" --changes-msg=<y|n>\n"
+" -c <y|n> \n"
+" Decide se mandare o meno agli iscritti della lista un messaggio "
+"`stanno\n"
+" per essere eseguiti grossi cambiamenti alla lista'. Default ano.\n"
+"\n"
+" --welcome-msg=<y|n>\n"
+" -w <y|n>\n"
+" Decide se inviare o meno alla lista un messaggio di benvenuto,\n"
+" indipendentemente dal valore del parametro `send_welcome_msg'\n"
+" nella configurazione della lista.\n"
+"\n"
+" --admin-notify=<y|n>\n"
+" -a <y|n>\n"
+" Decide se l'amministratore della lista deve o meno ricevere una\n"
+" notifica sul successo/fallimento di queste iscrizioni,\n"
+" indipendentemente dal valore del parametro `admin_notify_changes'\n"
+" nella configurazione della lista.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Scrive questo messaggio di aiuto ed esce.\n"
+"\n"
+" nomelista\n"
+" Il nome della lista alla quale vuoi aggiungere nuovi iscritti. Deve\n"
+" riferirsi ad una lista già esistente.\n"
+"\n"
+"Devi specificare almeno uno tra i parametri -n e -d. Non più di uno dei\n"
+"files può essere `-'.\n"
+
+#: bin/add_members:134
+msgid "Big change in %(listname)s@%(listhost)s mailing list"
+msgstr "Grossa variazione nella lista %(listname)s@%(listhost)s"
+
+# /home/mailman/Mailman/Cgi/admin.py:856
+#: bin/add_members:167
+msgid "Already a member: %(member)s"
+msgstr "Già iscritto: %(member)s"
+
+# /home/mailman/Mailman/Cgi/admin.py:861
+#: bin/add_members:170
+msgid "Bad/Invalid email address: blank line"
+msgstr "Indirizzo email errato/non valido: riga vuota"
+
+# /home/mailman/Mailman/Cgi/admin.py:861
+#: bin/add_members:172
+msgid "Bad/Invalid email address: %(member)s"
+msgstr "Indirizzo email errato/non valido: %(member)s"
+
+# /home/mailman/Mailman/Cgi/admin.py:864
+#: bin/add_members:174
+msgid "Hostile address (illegal characters): %(member)s"
+msgstr "Indirizzo con caratteri non permessi: %(member)s"
+
+# /home/mailman/Mailman/Cgi/admin.py:633
+#: bin/add_members:176
+msgid "Subscribed: %(member)s"
+msgstr "Iscritto: %(member)s"
+
+#: bin/add_members:223
+msgid "Bad argument to -c/--changes-msg: %(arg)s"
+msgstr "Argomento errato per il parametro -c/--changes-msg: %(arg)s"
+
+#: bin/add_members:230
+msgid "Bad argument to -w/--welcome-msg: %(arg)s"
+msgstr "Argomento errato per il parametro -w/--welcome-msg: %(arg)s"
+
+#: bin/add_members:237
+msgid "Bad argument to -a/--admin-notify: %(arg)s"
+msgstr "Argomento errato per il parametro -a/--admin-notify: %(arg)s"
+
+#: bin/add_members:243
+msgid "Cannot read both digest and normal members from standard input."
+msgstr ""
+"Non posso leggere sia gli iscritti digest che quelli normali dallo standard "
+"input."
+
+#: bin/add_members:249 bin/config_list:105 bin/find_member:97 bin/inject:90
+#: bin/list_admins:89 bin/list_members:187 bin/sync_members:222
+#: cron/bumpdigests:86
+msgid "No such list: %(listname)s"
+msgstr "Non esiste la lista: %(listname)s"
+
+#: bin/add_members:269 bin/change_pw:158 bin/check_db:114 bin/sync_members:244
+#: cron/bumpdigests:78
+msgid "Nothing to do."
+msgstr "Non ho niente da fare."
+
+#: bin/arch:19
+msgid ""
+"Rebuild a list's archive.\n"
+"\n"
+"Use this command to rebuild the archives for a mailing list. You may want "
+"to\n"
+"do this if you edit some messages in an archive, or remove some messages "
+"from\n"
+"an archive.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] <listname> [<mbox>]\n"
+"\n"
+"Where options are:\n"
+" -h / --help\n"
+" Print this help message and exit.\n"
+"\n"
+" -q / --quiet\n"
+" Make the archiver output less verbose.\n"
+"\n"
+" --wipe\n"
+" First wipe out the original archive before regenerating. You "
+"usually\n"
+" want to specify this argument unless you're generating the archive "
+"in\n"
+" chunks.\n"
+"\n"
+" -s N\n"
+" --start=N\n"
+" Start indexing at article N, where article 0 is the first in the "
+"mbox.\n"
+" Defaults to 0.\n"
+"\n"
+" -e M\n"
+" --end=M\n"
+" End indexing at article M. This script is not very efficient with\n"
+" respect to memory management, and for large archives, it may not be\n"
+" possible to index the mbox entirely. For that reason, you can "
+"specify\n"
+" the start and end article numbers.\n"
+"\n"
+"Where <mbox> is the path to a list's complete mbox archive. Usually this "
+"will\n"
+"be some path in the archives/private directory. For example:\n"
+"\n"
+"%% bin/arch mylist archives/private/mylist.mbox/mylist.mbox\n"
+"\n"
+"<mbox> is optional. If it is missing, it is calculated.\n"
+msgstr ""
+"Ricostruisce l'archivio della lista.\n"
+"\n"
+"Usa questo comando per ricostruire l'archivio della lista.\n"
+"Puoi voler fare questo se hai modificato o rimosso qualche messaggio\n"
+"nell'archivio.\n"
+"\n"
+"Uso: %(PROGRAM)s [opzioni] <nomelista> [<mbox>]\n"
+"\n"
+"Dove le opzioni sono: \n"
+" -h / --help\n"
+" Scrive questo messaggio ed esce.\n"
+"\n"
+" -q / --quiet\n"
+" Rendi meno prolisso l'output\n"
+"\n"
+" --wipe\n"
+" Prima di iniziare la rigenerazione cancella il vecchio archivio.\n"
+" Normalmente si usa questa opzione, tranne quando rigeneri\n"
+" l'archivio per blocchi.\n"
+"\n"
+" -s N\n"
+" --start=N\n"
+" Inizia ad indicizzare partendo dall'N-esimo messaggio, dove 0\n"
+" è il primo nel file mbox. Se non specificato inizia da 0.\n"
+"\n"
+" -e M\n"
+" --end M\n"
+" Termina l'indicizzazione all'N-esimo messaggio. Questo script\n"
+" non è molto efficiente per quanto riguarda l'uso della memoria\n"
+" e per gli archivi molto larghi potrebbe non essere possibile\n"
+" indicizzare il file mbox interamente. Per questa ragione puoi\n"
+" specificare i punti di partenza e termine.\n"
+"\n"
+"Dove <mbox> è il percorso completo per l'archivio della lista in\n"
+"formato mbox. Normalmente si troverà nella directory archives/private.\n"
+"Per esempio:\n"
+"\n"
+"%% bin/arch mylist archives/private/mylist.mbox/mylist.mbox\n"
+"\n"
+"<mbox> è opzionale. Se non viene specificato, sarà calcolato.\n"
+
+# /home/mailman/Mailman/MailList.py:517
+#: bin/arch:125
+msgid "listname is required"
+msgstr "il nome della lista è obbligatorio"
+
+#: bin/arch:143 bin/change_pw:106 bin/config_list:242
+msgid ""
+"No such list \"%(listname)s\"\n"
+"%(e)s"
+msgstr ""
+"Non esiste la lista \"%(listname)s\"\n"
+"%(e)s"
+
+#: bin/arch:170
+msgid "Cannot open mbox file %(mbox)s: %(msg)s"
+msgstr "Non riesco ad aprire il file mbox %(mbox)s: %(msg)s"
+
+#: bin/b4b5-archfix:19
+msgid ""
+"Fix the MM2.1b4 archives.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] file ...\n"
+"\n"
+"Where options are:\n"
+" -h / --help\n"
+" Print this help message and exit.\n"
+"\n"
+"Only use this to `fix' some archive database files that may have gotten\n"
+"written in Mailman 2.1b4 with some bogus data. Use like this from your\n"
+"$PREFIX directory\n"
+"\n"
+"%% %(PROGRAM)s `grep -l _mlist archives/private/*/database/*-article`\n"
+"\n"
+"(note the backquotes are required)\n"
+"\n"
+"You will need to run `bin/check_perms -f' after running this script.\n"
+msgstr ""
+"Aggiusta gli archivi creati da MM2.1b4.\n"
+"\n"
+"Uso: %(PROGRAM)s [opzioni] file ...\n"
+"\n"
+"Dove le opzioni sono:\n"
+" -h / --help\n"
+" Scrive questo messaggio ed esce.\n"
+"\n"
+"Usa questo programma solo per `aggiustare' qualche database dell'archivio\n"
+"che potrebbe essere stato scritto da Mailman 2.1b4 con dati inutili al suo\n"
+"interno. Usalo in questo modo dalla tua directory $PREFIX\n"
+"\n"
+"%% %(PROGRAM)s `grep -l _mlist archives/private/*/database/*-article`\n"
+"\n"
+"(nota che le virgolette rovesciate sono necessarie)\n"
+"\n"
+"Ad operazione completata dovrai eseguire `bin/check_perms -f'.\n"
+
+#: bin/change_pw:19
+msgid ""
+"Change a list's password.\n"
+"\n"
+"Prior to Mailman 2.1, list passwords were kept in crypt'd format -- "
+"usually.\n"
+"Some Python installations didn't have the crypt module available, so they'd\n"
+"fall back to md5. Then suddenly the Python installation might grow a crypt\n"
+"module and all list passwords would be broken.\n"
+"\n"
+"In Mailman 2.1, all list and site passwords are stored in SHA1 hexdigest\n"
+"form. This breaks list passwords for all existing pre-Mailman 2.1 lists, "
+"and\n"
+"since those passwords aren't stored anywhere in plain text, they cannot be\n"
+"retrieved and updated.\n"
+"\n"
+"Thus, this script generates new passwords for a list, and optionally sends "
+"it\n"
+"to all the owners of the list.\n"
+"\n"
+"Usage: change_pw [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" --all / -a\n"
+" Change the password for all lists.\n"
+"\n"
+" --domain=domain\n"
+" -d domain\n"
+" Change the password for all lists in the virtual domain `domain'. "
+"It\n"
+" is okay to give multiple -d options.\n"
+"\n"
+" --listname=listname\n"
+" -l listname\n"
+" Change the password only for the named list. It is okay to give\n"
+" multiple -l options.\n"
+"\n"
+" --password=newpassword\n"
+" -p newpassword\n"
+" Use the supplied plain text password `newpassword' as the new "
+"password\n"
+" for any lists that are being changed (as specified by the -a, -d, "
+"and\n"
+" -l options). If not given, lists will be assigned a randomly\n"
+" generated new password.\n"
+"\n"
+" --quiet / -q\n"
+" Don't notify list owners of the new password. You'll have to have\n"
+" some other way of letting the list owners know the new password\n"
+" (presumably out-of-band).\n"
+"\n"
+" --help / -h\n"
+" Print this help message and exit.\n"
+msgstr ""
+"Cambia la password di una lista.\n"
+"\n"
+"Prima di Mailman 2.1, le password di lista erano conservate in formato\n"
+"cifrato -- normalmente.\n"
+"Qualche installazione di Python non aveva il modulo crypt disponibile,\n"
+"così utilizzavano md5. Se ad un certo punto un upgrade di Python\n"
+"ottenesse il modulo crypt, tutte le password sarebbero inutilizzabili.\n"
+"\n"
+"A partire da Mailman 2.1, tutte le password di lista e di server vengono\n"
+"conservate in formato digest SHA1 esadecimale. Questo rompe la\n"
+"compatibilità con le password di tutte le liste create con una versione\n"
+"di Mailman precedente alla 2.1 e siccome queste password non sono scritte\n"
+"in chiaro da nessuna parte, non possono essere ricostruite ed aggiornate.\n"
+"\n"
+"Quindi, questo script genera password nuove per una lista e opzionalmente le "
+"invia a tutti i proprietari della lista.\n"
+"\n"
+"Uso: change_pw [opzioni]\n"
+"\n"
+"Opzioni:\n"
+"\n"
+" --all / -a\n"
+" Cambia la password per tutte le liste.\n"
+"\n"
+" --domain=dominio\n"
+" -d dominio\n"
+" Cambia la password per tutte le liste nel dominio virtuale "
+"'dominio'.\n"
+" E' possibile fornire multiple opzioni -d.\n"
+"\n"
+" --listname=nomelista\n"
+" -l nomelista\n"
+" Cambia la password soltanto per la lista indicata. E' possibile\n"
+" indicare multiple opzioni -l.\n"
+"\n"
+" --password=nuovapassword\n"
+" -p nuovapassword\n"
+" Usa la password fornita in chiaro come nuova password per le\n"
+" liste che saranno modificate (come specificato dalle opzioni\n"
+" -a, -d e -l). Se non viene fornita alle liste saranno assegnate\n"
+" nuove password generate casualmente.\n"
+"\n"
+" --quiet / -q\n"
+" Non notificare la nuova password ai proprietari della lista.\n"
+" Dovrai trovare qualche altro modo per fargli conoscere la nuova\n"
+" password (ad esempio usando un altro mezzo).\n"
+"\n"
+" --help / -h\n"
+" Mostra questo messaggio d'aiuto ed esce.\n"
+
+#: bin/change_pw:144
+msgid "Bad arguments: %(strargs)s"
+msgstr "Argomenti errati: %(strargs)s"
+
+#: bin/change_pw:148
+msgid "Empty list passwords are not allowed"
+msgstr "Non sono consentite password nulle per la lista"
+
+#: bin/change_pw:179
+msgid "New %(listname)s password: %(notifypassword)s"
+msgstr "Nuova password per la lista %(listname)s: %(notifypassword)s"
+
+#: bin/change_pw:188
+msgid "Your new %(listname)s list password"
+msgstr "La tua nuova password per la lista %(listname)s"
+
+#: bin/change_pw:189
+msgid ""
+"The site administrator at %(hostname)s has changed the password for your\n"
+"mailing list %(listname)s. It is now\n"
+"\n"
+" %(notifypassword)s\n"
+"\n"
+"Please be sure to use this for all future list administration. You may "
+"want\n"
+"to log in now to your list and change the password to something more to "
+"your\n"
+"liking. Visit your list admin page at\n"
+"\n"
+" %(adminurl)s\n"
+msgstr ""
+"L'amministratore del server %(hostname)s ha cambiato la password\n"
+"per la tua lista %(listname)s. Ora è\n"
+"\n"
+" %(notifypassword)s\n"
+"\n"
+"Per favore da questo momento utilizza questa per tutte le attività\n"
+"di ammministrazione. Se vuoi puoi entrare nel pannello di controllo\n"
+"e cambiarla in qualcosa che ricordi meglio. Visita la pagina di\n"
+"amministrazione della lista all'indirizzo\n"
+"\n"
+" %(adminurl)s\n"
+
+#: bin/check_db:19
+msgid ""
+"Check a list's config database file for integrity.\n"
+"\n"
+"All of the following files are checked:\n"
+"\n"
+" config.pck\n"
+" config.pck.last\n"
+" config.db\n"
+" config.db.last\n"
+" config.safety\n"
+"\n"
+"It's okay if any of these are missing. config.pck and config.pck.last are\n"
+"pickled versions of the config database file for 2.1a3 and beyond. config."
+"db\n"
+"and config.db.last are used in all earlier versions, and these are Python\n"
+"marshals. config.safety is a pickle written by 2.1a3 and beyond when the\n"
+"primary config.pck file could not be read.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname [listname ...]]\n"
+"\n"
+"Options:\n"
+"\n"
+" --all / -a\n"
+" Check the databases for all lists. Otherwise only the lists named "
+"on\n"
+" the command line are checked.\n"
+"\n"
+" --verbose / -v\n"
+" Verbose output. The state of every tested file is printed.\n"
+" Otherwise only corrupt files are displayed.\n"
+"\n"
+" --help / -h\n"
+" Print this text and exit.\n"
+msgstr ""
+"Controlla l'integrità del database di configurazione di una lista.\n"
+"\n"
+"Vengono controllati tutti i seguenti file:\n"
+"\n"
+" config.pck\n"
+" config.pck.last\n"
+" config.db\n"
+" config.db.last\n"
+" config.safety\n"
+"\n"
+"Non viene considerato errore se uno qualunque di questi\n"
+"non è presente. config.pck e config.pck.last sono \n"
+"versioni \"pickled\" del formato di file 2.1a3 e successivo.\n"
+"config.db e config.db.last sono usati in tutte le versioni\n"
+"precedenti e sono Python marshals.\n"
+"config.safety è un \"pickle\" utilizzato dalla 2.1a3 e \n"
+"successive quando il config.pck non può essere letto.\n"
+"\n"
+"Uso: %(PROGRAM)s [opzioni] [nomelista [nomelista ...]]\n"
+"\n"
+"Opzioni:\n"
+"\n"
+" --all / -a\n"
+" Controlla il database di tutte le liste. Altrimenti solo\n"
+" quelle indicate sulla riga di comando.\n"
+"\n"
+" --verbose / -v\n"
+" Output dettagliato. Viene stampato lo stato di ogni file\n"
+" testato. Altrimenti vengono mostrati solo i file danneggiati.\n"
+"\n"
+" --help / -h\n"
+" Scrive questo messaggio d'aiuto ed esce.\n"
+
+#: bin/check_db:119
+msgid "No list named:"
+msgstr "Non ci sono liste di nome:"
+
+# /home/mailman/Mailman/Cgi/admin.py:260
+# /home/mailman/Mailman/Cgi/listinfo.py:159
+# /home/mailman/Mailman/MailList.py:428
+#: bin/check_db:128
+msgid "List:"
+msgstr "Lista:"
+
+#: bin/check_db:148
+msgid " %(file)s: okay"
+msgstr " %(file)s: ok"
+
+#: bin/check_perms:19
+msgid ""
+"Check the permissions for the Mailman installation.\n"
+"\n"
+"Usage: %(PROGRAM)s [-f] [-v] [-h]\n"
+"\n"
+"With no arguments, just check and report all the files that have bogus\n"
+"permissions or group ownership. With -f (and run as root), fix all the\n"
+"permission problems found. With -v be verbose.\n"
+"\n"
+msgstr ""
+"Controlla i permessi per l'installazione di Mailman.\n"
+"\n"
+"Uso: %(PROGRAM)s [-f] [-v] [-h]\n"
+"\n"
+"Senza argomenti, controlla e segnala i file che hanno permessi non\n"
+"corretti o appartengono al gruppo errato. Con -f (eseguendo come root),\n"
+"corregge tutti i problemi sui permessi. Con -v esegue un report\n"
+"maggiormente dettagliato.\n"
+"\n"
+
+#: bin/check_perms:85
+msgid " checking gid and mode for %(path)s"
+msgstr " controllo di gid e modo per %(path)s"
+
+#: bin/check_perms:97
+msgid "%(path)s bad group (has: %(groupname)s, expected %(MAILMAN_GROUP)s)"
+msgstr ""
+"gruppo errato per %(path)s (ha %(groupname)s invece di %(MAILMAN_GROUP)s)"
+
+#: bin/check_perms:120
+msgid "directory permissions must be %(octperms)s: %(path)s"
+msgstr "i permessi sulla directory devono essere %(octperms)s: %(path)s"
+
+#: bin/check_perms:129
+msgid "source perms must be %(octperms)s: %(path)s"
+msgstr "i permessi sui sorgenti devono essere %(octperms)s: %(path)s"
+
+#: bin/check_perms:140
+msgid "article db files must be %(octperms)s: %(path)s"
+msgstr "i permessi sul db dei messaggi devono essere %(octperms)s: %(path)s"
+
+#: bin/check_perms:152
+msgid "checking mode for %(prefix)s"
+msgstr "controllo di modo per %(prefix)s"
+
+#: bin/check_perms:160
+msgid "directory must be at least 02775: %(d)s"
+msgstr "questa directory deve essere almeno 02775: %(d)s"
+
+#: bin/check_perms:173
+msgid "checking perms on %(private)s"
+msgstr "controllo permessi su %(private)s"
+
+#: bin/check_perms:178
+msgid "%(private)s must not be other-readable"
+msgstr "%(private)s non deve poter essere letta da tutti"
+
+#: bin/check_perms:198
+msgid "mbox file must be at least 0660:"
+msgstr "il file mbox deve essere almeno 0660:"
+
+#: bin/check_perms:222
+msgid "%(dbdir)s \"other\" perms must be 000"
+msgstr "%(dbdir)s deve avere 0 nei permessi per i non iscritti del gruppo"
+
+#: bin/check_perms:233
+msgid "checking cgi-bin permissions"
+msgstr "controllo dei permessi su cgi-bin"
+
+#: bin/check_perms:238
+msgid " checking set-gid for %(path)s"
+msgstr " controllo del flag set-gid per %(path)s"
+
+#: bin/check_perms:242
+msgid "%(path)s must be set-gid"
+msgstr "%(path)s deve essere set-gid"
+
+#: bin/check_perms:252
+msgid "checking set-gid for %(wrapper)s"
+msgstr "controllo del flag set-gid per %(wrapper)s"
+
+#: bin/check_perms:256
+msgid "%(wrapper)s must be set-gid"
+msgstr "%(wrapper)s deve essere set-gid"
+
+#: bin/check_perms:266
+msgid "checking permissions on %(pwfile)s"
+msgstr "controllo dei permessi su %(pwfile)s"
+
+#: bin/check_perms:275
+msgid "%(pwfile)s permissions must be exactly 0640 (got %(octmode)s)"
+msgstr ""
+"i permessi su %(pwfile)s devono essere esattamente 0640 (invece di %(octmode)"
+"s)"
+
+#: bin/check_perms:299
+msgid "checking permissions on list data"
+msgstr "controllo dei permessi sui dati di lista"
+
+#: bin/check_perms:305
+msgid " checking permissions on: %(path)s"
+msgstr " controllo dei permessi su: %(path)s"
+
+#: bin/check_perms:313
+msgid "file permissions must be at least 660: %(path)s"
+msgstr "i permessi di questo file devono essere almeno 660: %(path)s"
+
+#: bin/check_perms:359
+msgid "No problems found"
+msgstr "Nessun problema trovato"
+
+#: bin/check_perms:361
+msgid "Problems found:"
+msgstr "Problemi riscontrati:"
+
+#: bin/check_perms:362
+msgid "Re-run as %(MAILMAN_USER)s (or root) with -f flag to fix"
+msgstr ""
+"Per correggere gli errori rilancia il comando come\n"
+"%(MAILMAN_USER)s (o root) con il flag -f"
+
+#: bin/cleanarch:19
+msgid ""
+"Clean up an .mbox archive file.\n"
+"\n"
+"The archiver looks for Unix-From lines separating messages in an mbox "
+"archive\n"
+"file. For compatibility, it specifically looks for lines that start with\n"
+"\"From \" -- i.e. the letters capital-F, lowercase-r, o, m, space, ignoring\n"
+"everything else on the line.\n"
+"\n"
+"Normally, any lines that start \"From \" in the body of a message should be\n"
+"escaped such that a > character is actually the first on a line. It is\n"
+"possible though that body lines are not actually escaped. This script\n"
+"attempts to fix these by doing a stricter test of the Unix-From lines. Any\n"
+"lines that start \"From \" but do not pass this stricter test are escaped "
+"with a\n"
+"> character.\n"
+"\n"
+"Usage: cleanarch [options] < inputfile > outputfile\n"
+"Options:\n"
+" -s n\n"
+" --status=n\n"
+" Print a # character every n lines processed\n"
+"\n"
+" -q / --quiet\n"
+" Don't print changed line information to standard error.\n"
+"\n"
+" -n / --dry-run\n"
+" Don't actually output anything.\n"
+"\n"
+" -h / --help\n"
+" Print this message and exit\n"
+msgstr ""
+"Pulisce un file archivio .mbox.\n"
+"\n"
+"L'archiviatore cerca le righe Unix-From che separano i messaggi in un \n"
+"file mbox. Per compatibilità, cerca specificamente le righe che iniziano\n"
+"con \"From \" -- ovvero le lettere F-maiuscola, r-minuscola, o-minuscola,\n"
+"m-minuscola e lo spazio, ignorando qualunque altra cosa sulla riga.\n"
+"\n"
+"Normalmente, ogni riga che inizia con \"From \" nel testo del messaggio\n"
+"dovrebbe essere neutralizzata inserendo un carattere > all'inizio della\n"
+"riga. E' possibile che per qualche motivo alcune righe di questo tipo\n"
+"non siano state neutralizzate. Questo script cerca di risolvere questo\n"
+"problema eseguendo un test più complesso sulle righe Unix-From.\n"
+"Ogni riga che inizia con \"From \" ma non passa il test approfondito viene\n"
+"neutralizzata con un carattere >.\n"
+"\n"
+"Uso: cleanarch [opzioni] < fileinput > fileoutput\n"
+"Opzioni:\n"
+" -s n\n"
+" --status=n\n"
+" Stampa un carattere # per ogni linea esaminata.\n"
+"\n"
+" -q / --quiet\n"
+" Non stampare a video le informazioni sulle righe cambiate.\n"
+"\n"
+" -n / --dry-run\n"
+" Non produrre alcun output.\n"
+"\n"
+" -h / --help\n"
+" Scrivi questo messaggio d'aiuto ed esci.\n"
+
+#: bin/cleanarch:82
+msgid "Unix-From line changed: %(lineno)d"
+msgstr "Linea From Unix cambiata: %(lineno)d"
+
+#: bin/cleanarch:110
+msgid "Bad status number: %(arg)s"
+msgstr "Numero di stato errato: %(arg)s"
+
+#: bin/cleanarch:160
+msgid "%(messages)d messages found"
+msgstr "trovati %(messages)d messaggi"
+
+#: bin/clone_member:19
+msgid ""
+"Clone a member address.\n"
+"\n"
+"Cloning a member address means that a new member will be added who has all "
+"the\n"
+"same options and passwords as the original member address. Note that this\n"
+"operation is fairly trusting of the user who runs it -- it does no\n"
+"verification to the new address, it does not send out a welcome message, "
+"etc.\n"
+"\n"
+"The existing member's subscription is usually not modified in any way. If "
+"you\n"
+"want to remove the old address, use the -r flag. If you also want to "
+"change\n"
+"any list admin addresses, use the -a flag.\n"
+"\n"
+"Usage:\n"
+" clone_member [options] fromoldaddr tonewaddr\n"
+"\n"
+"Where:\n"
+"\n"
+" --listname=listname\n"
+" -l listname\n"
+" Check and modify only the named mailing lists. If -l is not given,\n"
+" then all mailing lists are scanned from the address. Multiple -l\n"
+" options can be supplied.\n"
+"\n"
+" --remove\n"
+" -r\n"
+" Remove the old address from the mailing list after it's been "
+"cloned.\n"
+"\n"
+" --admin\n"
+" -a\n"
+" Scan the list admin addresses for the old address, and clone or "
+"change\n"
+" them too.\n"
+"\n"
+" --quiet\n"
+" -q\n"
+" Do the modifications quietly.\n"
+"\n"
+" --nomodify\n"
+" -n\n"
+" Print what would be done, but don't actually do it. Inhibits the\n"
+" --quiet flag.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" fromoldaddr (`from old address') is the old address of the user. "
+"tonewaddr\n"
+" (`to new address') is the new address of the user.\n"
+"\n"
+msgstr ""
+"Clona un iscritto.\n"
+"\n"
+"Clonare un iscritto significa che viene aggiunto un nuovo iscritto che\n"
+"ha le stesse opzioni e la stessa password dell'iscritto originale.\n"
+"Nota che questa operazione si fida dell'utente che la\n"
+"esegue -- non viene eseguita alcuna verifica sul nuovo indirizzo,\n"
+"non invia un messaggio di benvenuto etc.\n"
+"\n"
+"L'iscrizione dell'iscritto preesistente non viene modificata in alcun\n"
+"modo. Se vuoi rimuovere il vecchio indirizzo, usa il flag -r. Se\n"
+"vuoi anche cambiare gli indirizzi di qualche amministratore della\n"
+"lista, usa il flag -a.\n"
+"\n"
+"Uso:\n"
+" clone_member [opzioni] davecchioindirizzo anuovoindirizzo\n"
+"\n"
+"Opzioni:\n"
+"\n"
+" --listname=nomelista\n"
+" -l nomelista\n"
+" Controlla e modifica soltanto le liste indicate. Se non viene\n"
+" fornito il flag -l allora l'operazione sarà eseguita su tutte\n"
+" le lista. Possono essere fornite multiple opzioni -l.\n"
+"\n"
+" --remove\n"
+" -r\n"
+" Rimuovi il vecchio indirizzo dopo che è stato clonato.\n"
+"\n"
+" --admin\n"
+" -a\n"
+" Scandisce gli indirizzi degli amministratori della lista\n"
+" e se tra questi compare il vecchio indirizzo, clona anche\n"
+" questo.\n"
+"\n"
+" --quiet\n"
+" -q\n"
+" Esegui la procedura silenziosamente.\n"
+"\n"
+" --nomodify\n"
+" -n\n"
+" Scrivo quello che farei ma senza farlo davvero.\n"
+" Inibisce il flag --quiet.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Scrive questo messaggio d'aiuto.\n"
+"\n"
+"davecchioindirizzo ('da vecchio indirizzo') rappresenta il vecchio\n"
+"indirizzo dell'utente. anuovoindirizzo ('a nuovo indirizzo')\n"
+"rappresenta il nuovo indirizzo che sarà aggiunto alla lista\n"
+"\n"
+
+#: bin/clone_member:94
+msgid "processing mailing list:"
+msgstr "elaborazione della lista:"
+
+# /home/mailman/Mailman/Cgi/admin.py:222
+# /home/mailman/Mailman/Cgi/admin.py:231
+# /home/mailman/Mailman/Cgi/listinfo.py:122
+# /home/mailman/Mailman/Cgi/listinfo.py:131
+#: bin/clone_member:101
+msgid " scanning list owners:"
+msgstr " scansione dei proprietari della lista:"
+
+#: bin/clone_member:119
+msgid " new list owners:"
+msgstr " nuovi proprietari di lista:"
+
+#: bin/clone_member:121
+msgid "(no change)"
+msgstr "(non cambiato)"
+
+#: bin/clone_member:130
+msgid " address not found:"
+msgstr " indirizzo non trovato:"
+
+#: bin/clone_member:139
+msgid " clone address added:"
+msgstr " indirizzo di clone aggiunto:"
+
+#: bin/clone_member:142
+msgid " clone address is already a member:"
+msgstr " l'indirizzo di clone è già un iscritto:"
+
+#: bin/clone_member:145
+msgid " original address removed:"
+msgstr " indirizzo originale rimosso:"
+
+# /home/mailman/Mailman/Cgi/admin.py:861
+#: bin/clone_member:196
+msgid "Not a valid email address: %(toaddr)s"
+msgstr "Indirizzo email errato/non valido: %(toaddr)s"
+
+#: bin/clone_member:209
+msgid ""
+"Error opening list \"%(listname)s\", skipping.\n"
+"%(e)s"
+msgstr ""
+"Errore nell'apertura della lista \"%(listname)s\", la salto.\n"
+"%(e)s"
+
+#: bin/config_list:19
+msgid ""
+"Configure a list from a text file description.\n"
+"\n"
+"Usage: config_list [options] listname\n"
+"\n"
+"Options:\n"
+" --inputfile filename\n"
+" -i filename\n"
+" Configure the list by assigning each module-global variable in the\n"
+" file to an attribute on the list object, then saving the list. The\n"
+" named file is loaded with execfile() and must be legal Python code.\n"
+" Any variable that isn't already an attribute of the list object is\n"
+" ignored (a warning message is printed). See also the -c option.\n"
+"\n"
+" A special variable named `mlist' is put into the globals during the\n"
+" execfile, which is bound to the actual MailList object. This lets "
+"you\n"
+" do all manner of bizarre thing to the list object, but BEWARE! "
+"Using\n"
+" this can severely (and possibly irreparably) damage your mailing "
+"list!\n"
+"\n"
+" --outputfile filename\n"
+" -o filename\n"
+" Instead of configuring the list, print out a list's configuration\n"
+" variables in a format suitable for input using this script. In "
+"this\n"
+" way, you can easily capture the configuration settings for a\n"
+" particular list and imprint those settings on another list. "
+"filename\n"
+" is the file to output the settings to. If filename is `-', "
+"standard\n"
+" out is used.\n"
+"\n"
+" --checkonly\n"
+" -c\n"
+" With this option, the modified list is not actually changed. Only\n"
+" useful with -i.\n"
+"\n"
+" --verbose\n"
+" -v\n"
+" Print the name of each attribute as it is being changed. Only "
+"useful\n"
+" with -i.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+"The options -o and -i are mutually exclusive.\n"
+"\n"
+msgstr ""
+"Configura una lista da una descrizione in un file di testo.\n"
+"\n"
+"Usage: config_list [opzioni] nomelista\n"
+"\n"
+"Opzioni:\n"
+" --inputfile nomefile\n"
+" -i nomefile\n"
+" Configura la lista assegnando ogni variabile globale di un modulo\n"
+" nel file ad un attributo dell'oggetto lista, quindi salva la\n"
+" lista. Il file indicato viene caricato con execfile() e deve\n"
+" contenere codice Python valido.\n"
+" Ogni variabile che non è già un attributo dell'oggetto lista\n"
+" viene ignorata (compare un messaggio di errore). Vedi anche\n"
+" l'opzione -c.\n"
+"\n"
+" Una variabile speciale di nome `mlist' viene messa nei globali\n"
+" durante l'execfile e rappresenta l'oggetto MailList.\n"
+" Questo ti permette di fare cose bizzarre con l'oggetto lista\n"
+" ma STAI ATTENTO! Usare questa possibilità potrebbe danneggiare\n"
+" (anche irreparabilmente) la tua lista!\n"
+"\n"
+" --outputfile nomefile\n"
+" -o nomefile\n"
+" Invece di configurare la lista, visualizza le variabili di\n"
+" configurazione in un formato che può essere usato come input\n"
+" per questo script. In questo modo diventa particolarmente\n"
+" semplice catturare la configurazione di una lista ed assegnarla\n"
+" ad un'altra. nomefile è il file sul quale i settaggi saranno\n"
+" scritti. Se nomefile è `-', allora sarà usato lo stdout.\n"
+"\n"
+" --checkonly\n"
+" -c\n"
+" Con questa opzione, l'impostazione della lista non viene\n"
+" veramente cambiata. E' utile soltanto insieme a -i\n"
+"\n"
+" --verbose\n"
+" -v\n"
+" Scrive il nome di ogni attributo mentre viene cambiato.\n"
+" E' utile soltanto insieme a -i\n"
+"\n"
+" --help\n"
+" -h\n"
+" Scrive questo messaggio d'aiuto ed esce.\n"
+"\n"
+"Le opzioni -o e -i sono mutuamente esclusive.\n"
+"\n"
+
+#: bin/config_list:109
+msgid ""
+"## \"%(listname)s\" mailing list configuration settings -*- python -*-\n"
+"## captured on %(when)s\n"
+msgstr ""
+"## configurazione della lista \"%(listname)s\" -*- python -*-\n"
+"## catturata il %(when)s\n"
+
+# /home/mailman/Mailman/Cgi/admin.py:43
+#: bin/config_list:131
+msgid "options"
+msgstr "opzioni"
+
+#: bin/config_list:188
+msgid "legal values are:"
+msgstr "i valori permessi sono:"
+
+#: bin/config_list:255
+msgid "attribute \"%(k)s\" ignored"
+msgstr "l'attributo \"%(k)s\" è stato ignorato"
+
+#: bin/config_list:258
+msgid "attribute \"%(k)s\" changed"
+msgstr "l'attributo \"%(k)s\" è stato cambiato"
+
+#: bin/config_list:264
+msgid "Non-standard property restored: %(k)s"
+msgstr "Parametro non-standard recuperato: %(k)s"
+
+#: bin/config_list:272
+msgid "Invalid value for property: %(k)s"
+msgstr "Valore non valido per la variabile %(k)s"
+
+#: bin/config_list:274
+msgid "Bad email address for option %(k)s: %(v)s"
+msgstr "Indirizzo errato per l'opzione %(k)s: %(v)s"
+
+#: bin/config_list:322
+msgid "Only one of -i or -o is allowed"
+msgstr "E' permesso solo uno tra -i e -o"
+
+#: bin/config_list:324
+msgid "One of -i or -o is required"
+msgstr "E' necessario specificare almeno uno tra -i e -o"
+
+# /home/mailman/Mailman/MailList.py:517
+#: bin/config_list:328
+msgid "List name is required"
+msgstr "Il nome della lista &egrave; obbligatorio."
+
+#: bin/convert.py:19
+msgid ""
+"Convert a list's interpolation strings from %-strings to $-strings.\n"
+"\n"
+"This script is intended to be run as a bin/withlist script, i.e.\n"
+"\n"
+"% bin/withlist -l -r convert <mylist>\n"
+msgstr ""
+"Converte le stringhe interpolate da forma %-stringa a forma $-stringa.\n"
+"\n"
+"Questo script è fatto per essere usato tramite bin/withlist, cioè:\n"
+"\n"
+"% bin/withlist -l -r convert <mialista>\n"
+
+# /home/mailman/Mailman/MailCommandHandler.py:379
+#: bin/convert.py:38 bin/fix_url.py:85
+msgid "Saving list"
+msgstr "Salvo la lista"
+
+#: bin/convert.py:44 bin/fix_url.py:51
+msgid "%%%"
+msgstr "%%%"
+
+#: bin/dumpdb:19
+msgid ""
+"Dump the contents of any Mailman `database' file.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] filename\n"
+"\n"
+"Options:\n"
+"\n"
+" --marshal/-m\n"
+" Assume the file contains a Python marshal, overridding any "
+"automatic\n"
+" guessing.\n"
+"\n"
+" --pickle/-p\n"
+" Assume the file contains a Python pickle, overridding any automatic\n"
+" guessing.\n"
+"\n"
+" --noprint/-n\n"
+" Don't attempt to pretty print the object. This is useful if "
+"there's\n"
+" some problem with the object and you just want to get an unpickled\n"
+" representation. Useful with `python -i bin/dumpdb <file>'. In "
+"that\n"
+" case, the root of the tree will be left in a global called \"msg\".\n"
+"\n"
+" --help/-h\n"
+" Print this help message and exit\n"
+"\n"
+"If the filename ends with `.db', then it is assumed that the file contains "
+"a\n"
+"Python marshal. If the file ends with `.pck' then it is assumed to contain "
+"a\n"
+"Python pickle. In either case, if you want to override the default "
+"assumption\n"
+"-- or if the file ends in neither suffix -- use the -p or -m flags.\n"
+msgstr ""
+"Esegue il dump dei contenuti di un qualunque database Mailman.\n"
+"\n"
+"Uso: %(PROGRAM)s [opzioni] nomefile\n"
+"\n"
+"Opzioni:\n"
+"\n"
+" --marshal/-m\n"
+" Assume che il file contenga un Python marshal, saltanto ogni\n"
+" tentativo di indovinare il formato automaticamente.\n"
+"\n"
+" --pickle/-p\n"
+" Assume che il file contenga un Python pickle, saltando ogni\n"
+" tentativo di indovinare il formato automaticamente.\n"
+"\n"
+" --noprint/-n\n"
+" Non provare a stampare il contenuto dell'oggetto. Questo è\n"
+" utile se ci sono problemi con l'oggetto e tu vuoi soltanto\n"
+" ottenere una rappresentazione non serializzata. Utile con\n"
+" `python -i bin/dumpdb <file>'. In questo caso, la radice\n"
+" dell'albero sarà memorizzata in una variabile globale di nome\n"
+" \"msg\".\n"
+"\n"
+" --help/-h\n"
+" Scrive questo messaggio d'aiuto ed esce.\n"
+"\n"
+"Se nomefile finisce con `.db', allora si assume che il file contenga\n"
+"un Python marshal. Se nomefile finisce con `.pck' allora si assume\n"
+"che contenga un Python pickle. In ogni caso, se vuoi saltare queste\n"
+"assunzioni di default -- o se nomefile non ha suffisso riconosciuto --,\n"
+"usa le opzioni -p o -m.\n"
+
+# /home/mailman/Mailman/ListAdmin.py:210
+#: bin/dumpdb:101
+msgid "No filename given."
+msgstr "Non è stato fornito un nome di file."
+
+#: bin/dumpdb:104
+msgid "Bad arguments: %(pargs)s"
+msgstr "Argomenti errati: %(pargs)s"
+
+#: bin/dumpdb:114
+msgid "Please specify either -p or -m."
+msgstr "Per favore specifica -p oppure -m."
+
+#: bin/find_member:19
+msgid ""
+"Find all lists that a member's address is on.\n"
+"\n"
+"Usage:\n"
+" find_member [options] regex [regex [...]]\n"
+"\n"
+"Where:\n"
+" --listname=listname\n"
+" -l listname\n"
+" Include only the named list in the search.\n"
+"\n"
+" --exclude=listname\n"
+" -x listname\n"
+" Exclude the named list from the search.\n"
+"\n"
+" --owners\n"
+" -w\n"
+" Search list owners as well as members.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" regex\n"
+" A Python regular expression to match against.\n"
+"\n"
+"The interaction between -l and -x is as follows. If any -l option is given\n"
+"then only the named list will be included in the search. If any -x option "
+"is\n"
+"given but no -l option is given, then all lists will be search except those\n"
+"specifically excluded.\n"
+"\n"
+"Regular expression syntax is Perl5-like, using the Python re module. "
+"Complete\n"
+"specifications are at:\n"
+"\n"
+"http://www.python.org/doc/current/lib/module-re.html\n"
+"\n"
+"Address matches are case-insensitive, but case-preserved addresses are\n"
+"displayed.\n"
+"\n"
+msgstr ""
+"Trova tutte le liste nelle quali si trova un certo indirizzo.\n"
+"\n"
+"Uso:\n"
+" find_member [opzioni] regex [regex [...]]\n"
+"\n"
+"Dove:\n"
+" --listname=nomelista\n"
+" -l nomelista\n"
+" Includi nella ricerca solo la lista indicata.\n"
+"\n"
+" --exclude=nomelista\n"
+" -x nomelista\n"
+" Escludi dalla ricerca la lista indicata.\n"
+"\n"
+" --owners\n"
+" -w\n"
+" Cerca anche tra i proprietari di lista (non solo tra iscritti).\n"
+"\n"
+" --help\n"
+" -h\n"
+" Scrive questo messaggio d'aiuto ed esce.\n"
+"\n"
+" regex\n"
+" Una espressione regolare Python da usare come filtro.\n"
+"\n"
+"Le interazioni tra -l e -x avvengono nel modo seguente:\n"
+"se è presente almeno una opzione -l allora vengono incluse nella\n"
+"ricerca solo le liste indicate; se è presente almeno una opzione\n"
+"-x ma non sono presenti opzioni -l, allora vengono cercate tutte\n"
+"le liste tranne quelle esplicitamente escluse.\n"
+"\n"
+"La sintassi delle espressioni regolari è simile a quella di Perl5,\n"
+"usando il modulo Python re. La specifica completa si può trovare\n"
+"all'indirizzo:\n"
+"\n"
+"http://www.python.org/doc/current/lib/module-re.html\n"
+"\n"
+"La ricerca degli indirizzi è non sensibile a maiuscole/minuscole\n"
+"ma vengono mostrati gli indirizzi senza alterazioni.\n"
+"\n"
+
+#: bin/find_member:159
+msgid "Search regular expression required"
+msgstr "L'espressione regolare su cui eseguire la ricerca è richiesta"
+
+#: bin/find_member:164
+msgid "No lists to search"
+msgstr "Non ho liste su cui cercare."
+
+#: bin/find_member:173
+msgid "found in:"
+msgstr "trovato in:"
+
+#: bin/find_member:179
+msgid "(as owner)"
+msgstr "(come proprietario)"
+
+#: bin/fix_url.py:19
+msgid ""
+"Reset a list's web_page_url attribute to the default setting.\n"
+"\n"
+"This script is intended to be run as a bin/withlist script, i.e.\n"
+"\n"
+"% bin/withlist -l -r fix_url listname [options]\n"
+"\n"
+"Options:\n"
+" -u urlhost\n"
+" --urlhost=urlhost\n"
+" Look up urlhost in the virtual host table and set the web_page_url "
+"and\n"
+" host_name attributes of the list to the values found. This\n"
+" essentially moves the list from one virtual domain to another.\n"
+"\n"
+" Without this option, the default web_page_url and host_name values "
+"are\n"
+" used.\n"
+"\n"
+" -v / --verbose\n"
+" Print what the script is doing.\n"
+"\n"
+"If run standalone, it prints this help text and exits.\n"
+msgstr ""
+"Riporta l'attributo web_page_url di una lista al valore di default.\n"
+"\n"
+"Questo script è scritto per essere eseguito tramite bin/withlist,\n"
+"cioè:\n"
+"\n"
+"% bin/withlist -l -r fix_url nomelista [opzioni]\n"
+"\n"
+"Opzioni:\n"
+" -u urlhost\n"
+" --urlhost=urlhost\n"
+" Cerca urlhost nella tabella degli host virtuali e imposta\n"
+" il valore degli attributi web_page_url e host_name per la\n"
+" lista ai valori trovati. Praticamente muove la lista da\n"
+" un dominio virtuale ad un altro.\n"
+"\n"
+" Senza questa opzione vengono usati i valori di default per\n"
+" web_page_url e host_name.\n"
+"\n"
+" -v / --verbose\n"
+" Scrive quello che sta facendo.\n"
+"\n"
+"Se eseguito da solo (senza withlist), scrive questo messaggio ed esce.\n"
+
+#: bin/fix_url.py:80
+msgid "Setting web_page_url to: %(web_page_url)s"
+msgstr "Imposto web_page_url a: %(web_page_url)s"
+
+#: bin/fix_url.py:83
+msgid "Setting host_name to: %(mailhost)s"
+msgstr "Imposto host_nama a: %(mailhost)s"
+
+#: bin/genaliases:19
+msgid ""
+"Regenerate Postfix's data/aliases and data/aliases.db files from scratch.\n"
+"\n"
+"Usage:\n"
+"\n"
+" genaliases [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+msgstr ""
+"Rigenera i file data/aliases e data/aliases.db (usati da Postfix).\n"
+"\n"
+"Uso:\n"
+"\n"
+" genaliases [opzioni]\n"
+"\n"
+"Opzioni:\n"
+"\n"
+" -h/--help\n"
+" Scrive questo messaggio di aiuto ed esce.\n"
+
+#: bin/inject:19
+msgid ""
+"Inject a message from a file into Mailman's incoming queue.\n"
+"\n"
+"Usage: inject [options] [filename]\n"
+"\n"
+"Options:\n"
+"\n"
+" -h / --help\n"
+" Print this text and exit.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" The name of the list to inject this message to. Required.\n"
+"\n"
+" -q queuename\n"
+" --queue=queuename\n"
+" The name of the queue to inject the message to. The queuename must "
+"be\n"
+" one of the directories inside the qfiles directory. If omitted, "
+"the\n"
+" incoming queue is used.\n"
+"\n"
+"filename is the name of the plaintext message file to inject. If omitted,\n"
+"standard input is used.\n"
+msgstr ""
+"Inietta un messaggio nella coda di ricezione di Mailman.\n"
+"\n"
+"Uso: inject [opzioni] [nomefile]\n"
+"\n"
+"Opzioni:\n"
+"\n"
+" -h / --help\n"
+" Scrive questo messaggio d'aiuto ed esce.\n"
+"\n"
+" -l nomelista\n"
+" --listname=nomelista\n"
+" Il nome della lista nella quale iniettare questo messaggio. "
+"Richiesto.\n"
+"\n"
+" -q nomecoda\n"
+" --queue=nomecoda\n"
+" Il nome della coda nella quale iniettare il messaggio. Il nome "
+"della\n"
+" coda deve essere il nome di una delle sottodirectory nella "
+"directory\n"
+" qfiles. Se omesso verrà usata la coda incoming.\n"
+"\n"
+"nomefile è il nome del file di testo che contiene il messaggio da "
+"iniettare.\n"
+"Se omesso, verrà usato lo standard input.\n"
+
+#: bin/inject:83
+msgid "Bad queue directory: %(qdir)s"
+msgstr "Directory di coda errata: %(qdir)s"
+
+# /home/mailman/Mailman/MailList.py:517
+#: bin/inject:88
+msgid "A list name is required"
+msgstr "Il nome della lista è obbligatorio"
+
+#: bin/list_admins:19
+msgid ""
+"List all the owners of a mailing list.\n"
+"\n"
+"Usage: %(program)s [options] listname ...\n"
+"\n"
+"Where:\n"
+"\n"
+" --all-vhost=vhost\n"
+" -v=vhost\n"
+" List the owners of all the mailing lists for the given virtual "
+"host.\n"
+"\n"
+" --all\n"
+" -a\n"
+" List the owners of all the mailing lists on this system.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+"`listname' is the name of the mailing list to print the owners of. You can\n"
+"have more than one named list on the command line.\n"
+msgstr ""
+"Elenca tutti i proprietari di una lista.\n"
+"\n"
+"Uso: %(program)s [opzioni] nomelista ...\n"
+"\n"
+"Dove:\n"
+"\n"
+" --all-vhost=vhost\n"
+" -v=vhost\n"
+" Elenca i proprietari di tutte le liste di un certo virtualhost.\n"
+"\n"
+" --all\n"
+" -a\n"
+" Elenca i proprietari di tutte le liste sul sistema.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Scrive questo messaggio d'aiuto ed esce.\n"
+"\n"
+"`nomelista' è il nome della lista di cui si vuole l'elenco dei\n"
+"proprietari. Puoi mettere sulla linea di comando i nomi di più liste.\n"
+
+#: bin/list_admins:96
+msgid "List: %(listname)s, \tOwners: %(owners)s"
+msgstr "Lista: %(listname)s, \tProprietari: %(owners)s"
+
+#: bin/list_lists:19
+msgid ""
+"List all mailing lists.\n"
+"\n"
+"Usage: %(program)s [options]\n"
+"\n"
+"Where:\n"
+"\n"
+" -a / --advertised\n"
+" List only those mailing lists that are publically advertised\n"
+"\n"
+" --virtual-host-overview=domain\n"
+" -V domain\n"
+" List only those mailing lists that are homed to the given virtual\n"
+" domain. This only works if the VIRTUAL_HOST_OVERVIEW variable is\n"
+" set.\n"
+"\n"
+" -b / --bare\n"
+" Displays only the list name, with no description.\n"
+"\n"
+" -h / --help\n"
+" Print this text and exit.\n"
+"\n"
+msgstr ""
+"Elenca tutte le liste.\n"
+"\n"
+"Uso: %(program)s [opzioni]\n"
+"\n"
+"Dove:\n"
+"\n"
+" -a / --advertised\n"
+" Elenca solo le liste che sono pubbliche\n"
+"\n"
+" --virtual-host-overview=dominio\n"
+" -V dominio\n"
+" Elenca solo le liste che sono ospitate su un dato dominio virtuale.\n"
+" Questo funziona soltanto se la variabile VIRTUAL_HOST_OVERVIEW è\n"
+" settata.\n"
+"\n"
+" -b / --bare\n"
+" Mostra solo il nome della lista, senza descrizione.\n"
+"\n"
+" -h / --help\n"
+" Scrive questo messaggio d'aiuto ed esce.\n"
+"\n"
+
+# /home/mailman/Mailman/Cgi/admin.py:222
+# /home/mailman/Mailman/Cgi/admin.py:231
+# /home/mailman/Mailman/Cgi/listinfo.py:122
+# /home/mailman/Mailman/Cgi/listinfo.py:131
+#: bin/list_lists:105
+msgid "No matching mailing lists found"
+msgstr "Non sono state trovate liste corrispondenti."
+
+# /home/mailman/Mailman/Cgi/admin.py:222
+# /home/mailman/Mailman/Cgi/admin.py:231
+# /home/mailman/Mailman/Cgi/listinfo.py:122
+# /home/mailman/Mailman/Cgi/listinfo.py:131
+#: bin/list_lists:109
+msgid "matching mailing lists found:"
+msgstr "liste corrispondenti trovate:"
+
+#: bin/list_members:19
+msgid ""
+"List all the members of a mailing list.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] listname\n"
+"\n"
+"Where:\n"
+"\n"
+" --output file\n"
+" -o file\n"
+" Write output to specified file instead of standard out.\n"
+"\n"
+" --regular / -r\n"
+" Print just the regular (non-digest) members.\n"
+"\n"
+" --digest[=kind] / -d [kind]\n"
+" Print just the digest members. Optional argument can be \"mime\" "
+"or\n"
+" \"plain\" which prints just the digest members receiving that kind "
+"of\n"
+" digest.\n"
+"\n"
+" --nomail[=why] / -n [why]\n"
+" Print the members that have delivery disabled. Optional argument "
+"can\n"
+" be \"byadmin\", \"byuser\", \"bybounce\", or \"unknown\" which "
+"prints just the\n"
+" users who have delivery disabled for that reason. It can also be\n"
+" \"enabled\" which prints just those member for whom delivery is\n"
+" enabled.\n"
+"\n"
+" --fullnames / -f\n"
+" Include the full names in the output.\n"
+"\n"
+" --preserve\n"
+" -p\n"
+" Output member addresses case preserved the way they were added to "
+"the\n"
+" list. Otherwise, addresses are printed in all lowercase.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname is the name of the mailing list to use.\n"
+"\n"
+"Note that if neither -r or -d is supplied, both regular members are printed\n"
+"first, followed by digest members, but no indication is given as to address\n"
+"status.\n"
+msgstr ""
+"Elenca tutti gli iscritti di una lista.\n"
+"\n"
+"Uso: %(PROGRAM)s [opzioni] nomelista\n"
+"\n"
+"Dove:\n"
+"\n"
+" --output file\n"
+" -o file\n"
+" Scrive il risultato sul file specificato invece che su standard "
+"out.\n"
+"\n"
+" --regular / -r\n"
+" Riporta solo gli iscritti regolari (non digest).\n"
+"\n"
+" --digest[=tipo] / -d [tipo]\n"
+" Riporta solo gli iscritti digest. L'argomento opzionale può\n"
+" essere \"mime\" oppure \"plain\", nel qual caso scrive solo\n"
+" gli iscritti per li corrispondente tipo di digest.\n"
+"\n"
+" --nomail[=motivo] / -n [motivo]\n"
+" Riporta gli iscritti che hanno l'invio al loro indirizzo\n"
+" disattivato. L'argomento opzionale può valere \"byadmin\",\n"
+" \"byuser\", \"bybounce\", oppure \"unknown\", nel qual caso\n"
+" vengono elencati soltanto gli iscritti che hanno l'invio\n"
+" disabilitato per il motivo indicato. Il motivo può anche\n"
+" essere \"enabled\", in questo caso vengono elencati gli\n"
+" iscritti che hanno l'invio attivato.\n"
+"\n"
+" --fullnames / -f Includi il percorso completo nell'output.\n"
+"\n"
+" --preserve / -p\n"
+" Riporta gli indirizzi inalterati, con le maiuscole e le minuscole\n"
+" originali di quando furono inseriti. Altrimenti, gli indirizzi\n"
+" vengono riportati in minuscolo.\n"
+"\n"
+" --help / -h\n"
+" Scrive questo messaggio d'aiuto ed esce.\n"
+"\n"
+" nomelista è il nome della lista da usare.\n"
+"\n"
+"Nota che se non fornisci né -r né -d, saranno riportati prima gli iscritti\n"
+"regolari e poi quelli digest ma senza indicare la divisione tra i due\n"
+"gruppi.\n"
+
+#: bin/list_members:150
+msgid "Bad --nomail option: %(why)s"
+msgstr "Opzione --nomail errata: %(why)s"
+
+# /home/mailman/Mailman/Cgi/admin.py:42
+#: bin/list_members:161
+msgid "Bad --digest option: %(kind)s"
+msgstr "Opzione --digest errata: %(kind)s"
+
+#: bin/list_members:179
+msgid "Could not open file for writing:"
+msgstr "Non riesce ad aprire il file in scrittura:"
+
+#: bin/list_owners:19
+msgid ""
+"List the owners of a mailing list, or all mailing lists.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname ...]\n"
+"Options:\n"
+"\n"
+" -w / --with-listnames\n"
+" Group the owners by list names and include the list names in the\n"
+" output. Otherwise, the owners will be sorted and uniquified based "
+"on\n"
+" the email address.\n"
+"\n"
+" -m / --moderators\n"
+" Include the list moderators in the output.\n"
+"\n"
+" -h / --help\n"
+" Print this help message and exit.\n"
+"\n"
+" listname\n"
+" Print the owners of the specified lists. More than one can appear\n"
+" after the options. If there are no listnames provided, the owners "
+"of\n"
+" all the lists will be displayed.\n"
+msgstr ""
+"Elenca i gestori di una lista, o di tutte le liste.\n"
+"\n"
+"Uso: %(PROGRAM)s [opzioni] [nomelista ...]\n"
+"Opzioni:\n"
+"\n"
+" -w / --with-listnames\n"
+" Raggruppa i gestori per lista ed include i nomi delle liste\n"
+" nell'output. In caso contrario i gestori vengono ordinati\n"
+" alfabeticamente per indirizzo e mostrati una sola volta\n"
+"\n"
+" -m / --moderators\n"
+" Include anche i moderatori nell'output.\n"
+"\n"
+" -h / --help\n"
+" Scrive questo messaggio d'aiuto ed esce.\n"
+"\n"
+" nomelista\n"
+" Visualizza i gestori per le liste specificate. E' possibile\n"
+" indicare più di una lista dopo le opzioni. Se non viene indicata\n"
+" alcuna lista, allora saranno mostrate tutte.\n"
+
+#: bin/mailmanctl:19
+msgid ""
+"Primary start-up and shutdown script for Mailman's qrunner daemon.\n"
+"\n"
+"This script starts, stops, and restarts the main Mailman queue runners, "
+"making\n"
+"sure that the various long-running qrunners are still alive and kicking. "
+"It\n"
+"does this by forking and exec'ing the qrunners and waiting on their pids.\n"
+"When it detects a subprocess has exited, it may restart it.\n"
+"\n"
+"The qrunners respond to SIGINT, SIGTERM, and SIGHUP. SIGINT and SIGTERM "
+"both\n"
+"cause the qrunners to exit cleanly, but the master will only restart "
+"qrunners\n"
+"that have exited due to a SIGINT. SIGHUP causes the master and the "
+"qrunners\n"
+"to close their log files, and reopen then upon the next printed message.\n"
+"\n"
+"The master also responds to SIGINT, SIGTERM, and SIGHUP, which it simply\n"
+"passes on to the qrunners (note that the master will close and reopen its "
+"own\n"
+"log files on receipt of a SIGHUP). The master also leaves its own process "
+"id\n"
+"in the file data/master-qrunner.pid but you normally don't need to use this\n"
+"pid directly. The `start', `stop', `restart', and `reopen' commands handle\n"
+"everything for you.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [ start | stop | restart | reopen ]\n"
+"\n"
+"Options:\n"
+"\n"
+" -n/--no-restart\n"
+" Don't restart the qrunners when they exit because of an error or a\n"
+" SIGINT. They are never restarted if they exit in response to a\n"
+" SIGTERM. Use this only for debugging. Only useful if the `start'\n"
+" command is given.\n"
+"\n"
+" -u/--run-as-user\n"
+" Normally, this script will refuse to run if the user id and group "
+"id\n"
+" are not set to the `mailman' user and group (as defined when you\n"
+" configured Mailman). If run as root, this script will change to "
+"this\n"
+" user and group before the check is made.\n"
+"\n"
+" This can be inconvenient for testing and debugging purposes, so the -"
+"u\n"
+" flag means that the step that sets and checks the uid/gid is "
+"skipped,\n"
+" and the program is run as the current user and group. This flag is\n"
+" not recommended for normal production environments.\n"
+"\n"
+" Note though, that if you run with -u and are not in the mailman "
+"group,\n"
+" you may have permission problems, such as begin unable to delete a\n"
+" list's archives through the web. Tough luck!\n"
+"\n"
+" -s/--stale-lock-cleanup\n"
+" If mailmanctl finds an existing master lock, it will normally exit\n"
+" with an error message. With this option, mailmanctl will perform "
+"an\n"
+" extra level of checking. If a process matching the host/pid "
+"described\n"
+" in the lock file is running, mailmanctl will still exit, but if no\n"
+" matching process is found, mailmanctl will remove the apparently "
+"stale\n"
+" lock and make another attempt to claim the master lock.\n"
+"\n"
+" -q/--quiet\n"
+" Don't print status messages. Error messages are still printed to\n"
+" standard error.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+"\n"
+"Commands:\n"
+"\n"
+" start - Start the master daemon and all qrunners. Prints a message "
+"and\n"
+" exits if the master daemon is already running.\n"
+"\n"
+" stop - Stops the master daemon and all qrunners. After stopping, no\n"
+" more messages will be processed.\n"
+"\n"
+" restart - Restarts the qrunners, but not the master process. Use this\n"
+" whenever you upgrade or update Mailman so that the qrunners "
+"will\n"
+" use the newly installed code.\n"
+"\n"
+" reopen - This will close all log files, causing them to be re-opened "
+"the\n"
+" next time a message is written to them\n"
+msgstr ""
+"Script principale per la partenza e l'arresto del demone qrunner di "
+"Mailman.\n"
+"\n"
+"Questo script avvia, ferma e riavvia i gestori di coda principali di\n"
+"Mailman, assicurandosi che i vari gestori siano ancora vivi e\n"
+"funzionanti.\n"
+"Questo viene fatto forkando i singoli qrunner ed eseguendo wait sul\n"
+"loro pid. Quando si accorge che un sottoprocesso è uscito, lo rilancia.\n"
+"\n"
+"I gestori rispondono ai segnali SIGINT, SIGTERM e SIGHUP.\n"
+"SIGINT e SIGTERM provocano la terminazione corretta dei gestori\n"
+"ma il master rilancia soltanto i gestori terminati da SIGINT.\n"
+"SIGHUP provoca la chiusura dei file di log sia del master che dei \n"
+"gestori. I file saranno riaperti automaticamente non appena ci\n"
+"sarà qualcosa da scrivere.\n"
+"\n"
+"Anche il master risponde ai segnali SIGINT, SIGTERM e SIGHUP,\n"
+"che propaga semplicemente a tutti i sottoprocessi (nota che il master\n"
+"chiude e riapre i suoi log alla ricezione di SIGHUP). Il master \n"
+"inoltre lascia il suo pid nel file data/master-qrunner.pid ma \n"
+"normalmente non hai bisogno di usare questo pid direttamente.\n"
+"I comandi `start', `stop' e `restart' fanno tutto quanto per te. \n"
+"\n"
+"Uso: %(PROGRAM)s [opzioni] [ start | stop | restart | reopen ]\n"
+"\n"
+"Opzioni:\n"
+"\n"
+" -n/--no-restart\n"
+" Non riavviare i sottoprocessi quando escono a causa di un \n"
+" errore o per un SIGINT (non vengono comunque mai riavviati\n"
+" se escono per un SIGTERM).\n"
+" Usa questa opzione solo per debugging. E' utile solo in\n"
+" combinazione con `start'.\n"
+"\n"
+" -u/--run-as-user\n"
+" Normalmente, questo script si rifiuta di partire se l'utente\n"
+" e il gruppo non sono uguali a quelli di `mailman' (definiti\n"
+" nella configurazione di Mailman). Se lo lanci come root,\n"
+" lo script cambierà l'identità su questo utente prima che i\n"
+" check siano eseguiti.\n"
+"\n"
+" Questo potrebbe essere scomodo per il testing e debugging,\n"
+" quindi -u significa che il passo in cui uid/gid vengono\n"
+" modificati e controllati sarà saltato. Questa opzione non\n"
+" è raccomandata per i normali ambienti di produzione.\n"
+"\n"
+" Nota inoltre che se usi -u con un utente che non è nel gruppo\n"
+" mailman potresti avere problemi di permessi, ad esempio\n"
+" potresti non riuscire a cancellare gli archivi della lista via web.\n"
+" Buona fortuna!\n"
+"\n"
+" -s/--stale-lock-cleanup\n"
+" Se mailmanctl trova un lock per il master qrunner, normalmente\n"
+" esce con un messaggio di errore. Con questa opzione mailmanctl\n"
+" esegue un controllo ulteriore e, se un processo sullo stesso \n"
+" host e con lo stesso pid descritti nel file di lock, è ancora\n"
+" in esecuzione allora mailmanctl uscirà ugualmente altrimenti\n"
+" se non viene trovato alcun processo corrispondente mailmanctl\n"
+" rimuoverà il lock apparentemente abbandonato ed eseguirà un\n"
+" altro tentativo di acquisire il lock del master.\n"
+"\n"
+" -q/--quiet\n"
+" Non mostrare i messaggi di stato. I messaggi di errore sono\n"
+" ugualmente mostrati sullo standard error.\n"
+"\n"
+" -h/--help\n"
+" Scrivi questo messaggio ed esci.\n"
+"\n"
+"Comandi:\n"
+"\n"
+" start - Fa partire il demone qrunner principale. Scrive un messaggio\n"
+" ed esce se il qrunner principale è già in funzione.\n"
+"\n"
+" stop - Arresta il qrunner principale e tutti i suoi sottoposti.\n"
+" Dopo l'arresto i messaggi non saranno più elaborati.\n"
+"\n"
+" restart - Fa ripartire i sotto-processi ma non il master. Questo è \n"
+" molto utile per lo sviluppo perché senza un restart completo\n"
+" i sottoprocessi non caricheranno i moduli cambiati.\n"
+"\n"
+" reopen - Semplicemente farà riaprire tutti i file di log.\n"
+
+#: bin/mailmanctl:149
+msgid "PID unreadable in: %(pidfile)s"
+msgstr "Non capisco il PID in: %(pidfile)s"
+
+#: bin/mailmanctl:151
+msgid "Is qrunner even running?"
+msgstr "qrunner sta girando?"
+
+#: bin/mailmanctl:157
+msgid "No child with pid: %(pid)s"
+msgstr "Non ci sono figli con questo pid: %(pid)s"
+
+#: bin/mailmanctl:159
+msgid "Stale pid file removed."
+msgstr "pid file abbandonato rimosso."
+
+#: bin/mailmanctl:217
+msgid ""
+"The master qrunner lock could not be acquired because it appears as if "
+"another\n"
+"master qrunner is already running.\n"
+msgstr ""
+"Non riesco ad acquisire il lock per il qrunner principale perchè\n"
+"sembra che ci sia un altro qrunner in esecuzione.\n"
+
+#: bin/mailmanctl:223
+msgid ""
+"The master qrunner lock could not be acquired. It appears as though there "
+"is\n"
+"a stale master qrunner lock. Try re-running mailmanctl with the -s flag.\n"
+msgstr ""
+"Non riesco ad acquisire il lock per il qrunner principale. Sembra che\n"
+"si tratti di un lock abbandonato. Prova a rilanciaare mailmanctl con\n"
+"l'opzione -s.\n"
+
+#: bin/mailmanctl:229
+msgid ""
+"The master qrunner lock could not be acquired, because it appears as if "
+"some\n"
+"process on some other host may have acquired it. We can't test for stale\n"
+"locks across host boundaries, so you'll have to do this manually. Or, if "
+"you\n"
+"know the lock is stale, re-run mailmanctl with the -s flag.\n"
+"\n"
+"Lock file: %(LOCKFILE)s\n"
+"Lock host: %(status)s\n"
+"\n"
+"Exiting."
+msgstr ""
+"Non riesco ad acquisire il lock del qrunner principale, sembra che\n"
+"sia stato acquisito da qualche processo su qualche altro host. Non\n"
+"possiamo verificare l'integrità dei lock tra un host e l'altro,\n"
+"quindi dovrai farlo tu manualmente. O, se sai che il lock è\n"
+"abbandonato, rilancia mailmanctl con l'opzione -s.\n"
+"\n"
+"Lock file: %(LOCKFILE)s\n"
+"Lock host: %(status)s\n"
+"\n"
+"Esco."
+
+#: bin/mailmanctl:282
+msgid "Run this program as root or as the %(name)s user, or use -u."
+msgstr ""
+"Esegui questo programma come root o come l'utente %(name)s, oppure usa -u."
+
+# /home/mailman/Mailman/ListAdmin.py:210
+#: bin/mailmanctl:313
+msgid "No command given."
+msgstr "Nessuna motivazione fornita."
+
+#: bin/mailmanctl:316
+msgid "Bad command: %(command)s"
+msgstr "Comando errato: %(command)s"
+
+#: bin/mailmanctl:321
+msgid "Warning! You may encounter permission problems."
+msgstr "Attenzione! Potresti incontrare problemi con i permessi."
+
+#: bin/mailmanctl:330
+msgid "Shutting down Mailman's master qrunner"
+msgstr "Spengo il master qrunner di Mailman"
+
+#: bin/mailmanctl:337
+msgid "Restarting Mailman's master qrunner"
+msgstr "Faccio ripartire il master qrunner di Mailman"
+
+#: bin/mailmanctl:341
+msgid "Re-opening all log files"
+msgstr "Riapro tutti i file di log"
+
+#: bin/mailmanctl:375
+msgid "Starting Mailman's master qrunner."
+msgstr "Lancio il master qrunner di Mailman"
+
+#: bin/mmsitepass:19
+msgid ""
+"Set the site password, prompting from the terminal.\n"
+"\n"
+"The site password can be used in most if not all places that the list\n"
+"administrator's password can be used, which in turn can be used in most "
+"places\n"
+"that a list users password can be used.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [password]\n"
+"\n"
+"Options:\n"
+"\n"
+" -c/--listcreator\n"
+" Set the list creator password instead of the site password. The "
+"list\n"
+" creator is authorized to create and remove lists, but does not have\n"
+" the total power of the site administrator.\n"
+"\n"
+" -h/--help\n"
+" Print this help message and exit.\n"
+"\n"
+"If password is not given on the command line, it will be prompted for.\n"
+msgstr ""
+"Imposta la password di server, chiedendola interattivamente.\n"
+"\n"
+"La password di server può essere utilizzata in molti se non tutti i\n"
+"posti in cui può essere usata la password di amministratore della\n"
+"lista, che a sua volta può essere usata in molti posti nei quali è\n"
+"richiesta la password di un utente.\n"
+"\n"
+"Uso: %(PROGRAM)s [opzioni] [password]\n"
+"\n"
+"Opzioni:\n"
+"\n"
+" -c/--listcreator\n"
+" Imposta la password del creatore di liste invece di quella\n"
+" globale per il server. Il creatore di liste è autorizzato\n"
+" a creare e rimuovere le liste ma non ha il controllo completo\n"
+" sul sistema come l'amministratore del server.\n"
+"\n"
+" -h/--help\n"
+" Scrive questo messaggio d'aiuto ed esce.\n"
+"\n"
+"Se la password non viene fornita sulla riga di comando, verrà chiesta.\n"
+
+# /home/mailman/Mailman/Cgi/subscribe.py:127
+#: bin/mmsitepass:73
+msgid "site"
+msgstr "server"
+
+#: bin/mmsitepass:80
+msgid "list creator"
+msgstr "creatore di liste"
+
+#: bin/mmsitepass:86
+msgid "New %(pwdesc)s password: "
+msgstr "Nuova password per %(pwdesc)s:"
+
+# /home/mailman/Mailman/Cgi/admin.py:671
+#: bin/mmsitepass:87
+msgid "Again to confirm password: "
+msgstr "Conferma la nuova password: "
+
+#: bin/mmsitepass:89
+msgid "Passwords do not match; no changes made."
+msgstr "Le password non sono uguali; nessuna modifica effettuata."
+
+#: bin/mmsitepass:92
+msgid "Interrupted..."
+msgstr "Interrotto..."
+
+# /home/mailman/Mailman/Cgi/handle_opts.py:187
+#: bin/mmsitepass:98
+msgid "Password changed."
+msgstr "La password è stata cambiata."
+
+#: bin/mmsitepass:100
+msgid "Password change failed."
+msgstr "Cambio di password fallito."
+
+#: bin/newlist:19
+msgid ""
+"Create a new, unpopulated mailing list.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname [listadmin-addr [admin-password]]]\n"
+"\n"
+"Options:\n"
+"\n"
+" -l language\n"
+" --language language\n"
+" Make the list's preferred language `language', which must be a two\n"
+" letter language code.\n"
+"\n"
+" -q/--quiet\n"
+" Normally the administrator is notified by email (after a prompt) "
+"that\n"
+" their list has been created. This option suppresses the prompt and\n"
+" notification.\n"
+"\n"
+" -h/--help\n"
+" Print this help text and exit.\n"
+"\n"
+"You can specify as many of the arguments as you want on the command line:\n"
+"you will be prompted for the missing ones.\n"
+"\n"
+"Every Mailman list has two parameters which define the default host name "
+"for\n"
+"outgoing email, and the default URL for all web interfaces. When you\n"
+"configured Mailman, certain defaults were calculated, but if you are "
+"running\n"
+"multiple virtual Mailman sites, then the defaults may not be appropriate "
+"for\n"
+"the list you are creating.\n"
+"\n"
+"You can specify the domain to create your new list in by spelling the "
+"listname\n"
+"like so:\n"
+"\n"
+" mylist@www.mydom.ain\n"
+"\n"
+"where `www.mydom.ain' should be the base hostname for the URL to this "
+"virtual\n"
+"hosts's lists. E.g. with is setting people will view the general list\n"
+"overviews at http://www.mydom.ain/mailman/listinfo. Also, www.mydom.ain\n"
+"should be a key in the VIRTUAL_HOSTS mapping in mm_cfg.py/Defaults.py. It\n"
+"will be looked up to give the email hostname. If this can't be found, then\n"
+"www.mydom.ain will be used for both the web interface and the email\n"
+"interface.\n"
+"\n"
+"If you spell the list name as just `mylist', then the email hostname will "
+"be\n"
+"taken from DEFAULT_EMAIL_HOST and the url will be taken from DEFAULT_URL "
+"(as\n"
+"defined in your Defaults.py file or overridden by settings in mm_cfg.py).\n"
+"\n"
+"Note that listnames are forced to lowercase.\n"
+msgstr ""
+"Crea una nuova lista vuota.\n"
+"\n"
+"Uso: %(PROGRAM)s [opzioni] [nomelista [indir-ammin [pass-ammin]]]\n"
+"\n"
+"Opzioni:\n"
+"\n"
+" -l lingua\n"
+" --language lingua\n"
+" Sceglie la lingua preferita per la lista, che deve essere\n"
+" espressa come abbreviazione a due lettere.\n"
+"\n"
+" -q\n"
+" --quiet\n"
+" Normalmente l'amministratore riceve via email una notifica\n"
+" della creazione della lista. Questa opzione sopprime la\n"
+" richiesta e la notifica.\n"
+"\n"
+" -h/--help\n"
+" Scrive questo messaggio d'aiuto ed esce.\n"
+"\n"
+"Puoi specificare quanti argomenti vuoi sulla linea di comando:\n"
+"quelli mancanti ti verranno chiesti interattivamente.\n"
+"\n"
+"Ogni lista Mailman ha due parametri che definiscono il nome di host\n"
+"da usare normalmente per i messaggi uscenti e l'URL di base in cui\n"
+"si trova l'interfaccia web.\n"
+"Quando hai configurato Mailman, sono stati calcolati i valori\n"
+"predefiniti per questi due parametri ma se stai gestendo Mailman\n"
+"su domini virtuali multipli, allora i valori predefiniti potrebbero\n"
+"non essere appropriati per la lista che stai creando.\n"
+"\n"
+"Puoi specificare il dominio sul quale creare la lista scrivendo il\n"
+"nomelista in questo modo:\n"
+"\n"
+" mialista@miodominio.com\n"
+"\n"
+"Dove `miodominio.com' sarà usato per l'URL di questa lista. \n"
+"Ad esempio con questo valore la pagina di informazioni generali\n"
+"sulla lista dovrebbe essere mostrata all'indirizzo \n"
+"http://www.miodominio.com/mailman/listinfo.\n"
+"Inoltre www.miodominio.com dovrebbe essere una chiave nella mappa\n"
+"VIRTUAL_HOSTS nel file mm_cfg.py/Defaults.py. Tale mappa sarà\n"
+"utilizzata per stabilire l'hostname degli indirizzi email. Se\n"
+"non dovesse essere trovata la chiave nella mappa, allora \n"
+"www.miodominio.com sarà usato anche per gli indirizzi email.\n"
+"\n"
+"Se scrivi il nome della lista come soltanto `mialista' allora\n"
+"l'hostname per gli indirizzi email sarà preso da DEFAULT_EMAIL_HOST\n"
+"e l'URL da DEFAULT_URL (come definiti in Defaults.py o ridefiniti\n"
+"in mm_cfg.py).\n"
+"\n"
+"Nota che i nomi di lista vengono forzati a tutte minuscole.\n"
+
+#: bin/newlist:118
+msgid "Unknown language: %(lang)s"
+msgstr "Lingua sconosciuta: %(lang)s"
+
+# /home/mailman/Mailman/MailCommandHandler.py:297
+#: bin/newlist:123
+msgid "Enter the name of the list: "
+msgstr "Inserisci il nome della lista: "
+
+#: bin/newlist:140
+msgid "Enter the email of the person running the list: "
+msgstr "Inserisci l'email della persona che l'amministra: "
+
+#: bin/newlist:145
+msgid "Initial %(listname)s password: "
+msgstr "Password iniziale per %(listname)s: "
+
+#: bin/newlist:149
+msgid "The list password cannot be empty"
+msgstr "La password di lista non deve essere vuota"
+
+#: bin/newlist:190
+msgid "Hit enter to notify %(listname)s owner..."
+msgstr "Premi invio per notificare il proprietario di %(listname)s..."
+
+#: bin/qrunner:19
+msgid ""
+"Run one or more qrunners, once or repeatedly.\n"
+"\n"
+"Each named runner class is run in round-robin fashion. In other words, the\n"
+"first named runner is run to consume all the files currently in its\n"
+"directory. When that qrunner is done, the next one is run to consume all "
+"the\n"
+"files in /its/ directory, and so on. The number of total iterations can be\n"
+"given on the command line.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" -r runner[:slice:range]\n"
+" --runner=runner[:slice:range]\n"
+" Run the named qrunner, which must be one of the strings returned by\n"
+" the -l option. Optional slice:range if given, is used to assign\n"
+" multiple qrunner processes to a queue. range is the total number "
+"of\n"
+" qrunners for this queue while slice is the number of this qrunner "
+"from\n"
+" [0..range).\n"
+"\n"
+" If using the slice:range form, you better make sure that each "
+"qrunner\n"
+" for the queue is given the same range value. If slice:runner is "
+"not\n"
+" given, then 1:1 is used.\n"
+"\n"
+" Multiple -r options may be given, in which case each qrunner will "
+"run\n"
+" once in round-robin fashion. The special runner `All' is shorthand\n"
+" for a qrunner for each listed by the -l option.\n"
+"\n"
+" --once\n"
+" -o\n"
+" Run each named qrunner exactly once through its main loop. "
+"Otherwise,\n"
+" each qrunner runs indefinitely, until the process receives a "
+"SIGTERM\n"
+" or SIGINT.\n"
+"\n"
+" -l/--list\n"
+" Shows the available qrunner names and exit.\n"
+"\n"
+" -v/--verbose\n"
+" Spit out more debugging information to the logs/qrunner log file.\n"
+"\n"
+" -s/--subproc\n"
+" This should only be used when running qrunner as a subprocess of "
+"the\n"
+" mailmanctl startup script. It changes some of the exit-on-error\n"
+" behavior to work better with that framework.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+"\n"
+"runner is required unless -l or -h is given, and it must be one of the "
+"names\n"
+"displayed by the -l switch.\n"
+msgstr ""
+"Esegue uno o più qrunners, una volta o ripetutamente.\n"
+"\n"
+"Ogni data classe di runner viene eseguita in round-robin. In altre parole\n"
+"il primo dato runner viene eseguito per consumare tutti i file attualmente\n"
+"nella sua directory. Quando questo ha finito il prossimo viene eseguito\n"
+"per consumare tutti i file nella sua directory, e così via.\n"
+"Il numero totale di iterazioni può essere specificato sulla riga di "
+"comando.\n"
+"\n"
+"Uso: %(PROGRAM)s [opzioni]\n"
+"\n"
+"Opzioni:\n"
+"\n"
+" -r runner[:slice:range]\n"
+" --runner=runner[:slice:range]\n"
+" Esegue il runner specificato, che deve essere una delle stringhe \n"
+" restituite dall'opzione -l. Se vengono forniti anche slice:range\n"
+" allora saranno usati per assegnare processi multipli ad una coda.\n"
+" range è il numero totale di qrunner su questa coda mentre slice\n"
+" assegna a questo qrunner un numero nell'intervallo [0..range).\n"
+"\n"
+" Se usi la forma slice:range, faresti bene ad assicurarti che ad\n"
+" ogni qrunner sulla stessa coda sia dato lo stesso valore di range.\n"
+" Se non indichi slice:range allora viene usato 1:1.\n"
+"\n"
+" Puoi dare multiple opzioni -r, in questo caso ogni runner sarà "
+"eseguito\n"
+" una volta in round-robin. Lo speciale runner 'All' è un modo per "
+"dire \n"
+" che si vuole un qrunner di ogni tipo elencato dall'opzione -l.\n"
+"\n"
+" --once\n"
+" -o\n"
+" Esegue ogni runner esattamente una volta nel suo loop principale.\n"
+" Altrimenti ogni runner gira indefinitamente, fino a quando riceve\n"
+" un SIGTERM o SIGINT.\n"
+"\n"
+" -l/--list\n"
+" Mostra i nomi dei possibili runner ed esce.\n"
+"\n"
+" -v/--verbose\n"
+" Produce più informazioni di debug nel file logs/qrunner.\n"
+"\n"
+" -s/--subproc\n"
+" Questa opzione dovrebbe essere usata solo quando qrunner è lanciato "
+"come\n"
+" sottoprocesso dello script mailmanctl. Cambia alcuni comportamenti "
+"di\n"
+" uscita su errore per lavorare meglio in quel contesto.\n"
+"\n"
+" -h/--help\n"
+" Scrivi questo messaggio d'aiuto ed esci.\n"
+"\n"
+"runner è richiesto a meno che siano presenti le opzioni -l o -h, e deve "
+"essere uno\n"
+"dei nomi mostrati dallo switch -l.\n"
+
+#: bin/qrunner:176
+msgid "%(name)s runs the %(runnername)s qrunner"
+msgstr "%(name)s esegue il qrunner %(runnername)s"
+
+#: bin/qrunner:177
+msgid "All runs all the above qrunners"
+msgstr "All esegue tutti i qrunner qui sopra"
+
+# /home/mailman/Mailman/ListAdmin.py:210
+#: bin/qrunner:213
+msgid "No runner name given."
+msgstr "Non è stato fornito un nome di qrunner."
+
+#: bin/remove_members:19
+msgid ""
+"Remove members from a list.\n"
+"\n"
+"Usage:\n"
+" remove_members [options] [listname] [addr1 ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" --file=file\n"
+" -f file\n"
+" Remove member addresses found in the given file. If file is\n"
+" `-', read stdin.\n"
+"\n"
+" --all\n"
+" -a\n"
+" Remove all members of the mailing list.\n"
+" (mutually exclusive with --fromall)\n"
+"\n"
+" --fromall\n"
+" Removes the given addresses from all the lists on this system\n"
+" regardless of virtual domains if you have any. This option cannot "
+"be\n"
+" used -a/--all. Also, you should not specify a listname when using "
+"this\n"
+" option.\n"
+"\n"
+" --nouserack\n"
+" -n\n"
+" Don't send the user acknowledgements.\n"
+"\n"
+" --noadminack\n"
+" -N\n"
+" Don't send the admin acknowledgements.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname is the name of the mailing list to use.\n"
+"\n"
+" addr1 ... are additional addresses to remove.\n"
+"\n"
+msgstr ""
+"Rimuove iscritti da una lista.\n"
+"\n"
+"Uso:\n"
+" remove_members [opzioni] nomelista [indir1 ...]\n"
+"\n"
+"Opzioni:\n"
+"\n"
+" --file=file\n"
+" -f file\n"
+" Rimuove gli indirizzi degli iscritti elencati nel file specificato.\n"
+" Se file è `-', leggi gli indirizzi da stdin.\n"
+"\n"
+" --all\n"
+" -a\n"
+" Rimuove tutti gli iscritti dalla lista.\n"
+" (mutuamente esclusivo con --fromall)\n"
+"\n"
+" --fromall\n"
+" Rimuove gli indirizzi indicati da tutte le liste, senza tenere\n"
+" conto degli eventuali domini virtuali. Questa opzione non può\n"
+" essere usata con -a/--all. Inoltre, non dovresti specificare il\n"
+" nome di una listae quando usi questa opzione.\n"
+"\n"
+" --nouserack\n"
+" -n\n"
+" Non inviare conferma all'utente.\n"
+"\n"
+" --noadminack\n"
+" -N\n"
+" Non inviare conferma all'amministratore.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Scrive questo messaggio d'aiuto ed esce.\n"
+"\n"
+" nomelista è il nome della lista da utilizzare.\n"
+"\n"
+" indir1 ... sono indirizzi addizionali da rimuovere.\n"
+"\n"
+
+#: bin/remove_members:147
+msgid "Could not open file for reading: %(filename)s."
+msgstr "Non riesco ad aprire in lettura il file: %(filename)s."
+
+#: bin/remove_members:154
+msgid "Error opening list %(listname)s... skipping."
+msgstr "Errore nell'apertura della lista %(listname)s... la salto."
+
+#: bin/remove_members:164
+msgid "No such member: %(addr)s"
+msgstr "Nessun iscritto: %(addr)s."
+
+#: bin/remove_members:171
+msgid "User `%(addr)s' removed from list: %(listname)s."
+msgstr "Utente `%(addr)s' rimosso dalla lista: %(listname)s"
+
+#: bin/rmlist:19
+msgid ""
+"Remove the components of a mailing list with impunity - beware!\n"
+"\n"
+"This removes (almost) all traces of a mailing list. By default, the lists\n"
+"archives are not removed, which is very handy for retiring old lists.\n"
+"\n"
+"Usage:\n"
+" rmlist [-a] [-h] listname\n"
+"\n"
+"Where:\n"
+" --archives\n"
+" -a\n"
+" Remove the list's archives too, or if the list has already been\n"
+" deleted, remove any residual archives.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+msgstr ""
+"Rimuove gli iscritti di una lista con impunità - stai attento!\n"
+"\n"
+"Questo rimuove (quasi) tutte le tracce di una lista. Per default, gli\n"
+"archivi della lista non vengono rimossi, il che è molto utile per\n"
+"chiudere vecchie liste senza cancellare la storia.\n"
+"\n"
+"Uso:\n"
+" rmlist [-a] [-h] nomelista\n"
+"\n"
+"Where:\n"
+" --archives\n"
+" -a\n"
+" rimuove anche gli archivi, o rimuove ogni loro traccia residua\n"
+" se la lista era già stata cancellata in precedenza.\n"
+"\n"
+" --help\n"
+" -h\n"
+" scrive questo messaggio d'aiuto ed esce.\n"
+"\n"
+
+#: bin/rmlist:66 bin/rmlist:69
+msgid "Removing %(msg)s"
+msgstr "Rimozione di %(msg)s"
+
+#: bin/rmlist:72
+msgid "%(listname)s %(msg)s not found as %(dir)s"
+msgstr "non trovato %(listname)s %(msg)s in %(dir)s"
+
+#: bin/rmlist:96
+msgid "No such list (or list already deleted): %(listname)s"
+msgstr "Non esiste (o è stata cancellata) la lista: %(listname)s"
+
+#: bin/rmlist:98
+msgid "No such list: %(listname)s. Removing its residual archives."
+msgstr "Non esiste la lista: %(listname)s. Rimuovo i suoi archivi residui."
+
+#: bin/rmlist:102
+msgid "Not removing archives. Reinvoke with -a to remove them."
+msgstr "Non rimuovo gli archivi. Rilanciami con -a per rimuoverli."
+
+# /home/mailman/Mailman/MailList.py:593
+#: bin/rmlist:116
+msgid "list info"
+msgstr "informazioni sulla lista"
+
+# /home/mailman/Mailman/Cgi/private.py:65
+# /home/mailman/Mailman/Cgi/private.py:77
+#: bin/rmlist:122 bin/rmlist:124
+msgid "private archives"
+msgstr "archivi privati"
+
+#: bin/rmlist:126 bin/rmlist:128
+msgid "public archives"
+msgstr "archivi pubblici"
+
+#: bin/sync_members:19
+msgid ""
+"Synchronize a mailing list's membership with a flat file.\n"
+"\n"
+"This script is useful if you have a Mailman mailing list and a sendmail\n"
+":include: style list of addresses (also as is used in Majordomo). For "
+"every\n"
+"address in the file that does not appear in the mailing list, the address "
+"is\n"
+"added. For every address in the mailing list that does not appear in the\n"
+"file, the address is removed. Other options control what happens when an\n"
+"address is added or removed.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] -f file listname\n"
+"\n"
+"Where `options' are:\n"
+"\n"
+" --no-change\n"
+" -n\n"
+" Don't actually make the changes. Instead, print out what would be\n"
+" done to the list.\n"
+"\n"
+" --welcome-msg[=<yes|no>]\n"
+" -w[=<yes|no>]\n"
+" Sets whether or not to send the newly added members a welcome\n"
+" message, overriding whatever the list's `send_welcome_msg' setting\n"
+" is. With -w=yes or -w, the welcome message is sent. With -w=no, "
+"no\n"
+" message is sent.\n"
+"\n"
+" --goodbye-msg[=<yes|no>]\n"
+" -g[=<yes|no>]\n"
+" Sets whether or not to send the goodbye message to removed members,\n"
+" overriding whatever the list's `send_goodbye_msg' setting is. With\n"
+" -g=yes or -g, the goodbye message is sent. With -g=no, no message "
+"is\n"
+" sent.\n"
+"\n"
+" --digest[=<yes|no>]\n"
+" -d[=<yes|no>]\n"
+" Selects whether to make newly added members receive messages in\n"
+" digests. With -d=yes or -d, they become digest members. With -"
+"d=no\n"
+" (or if no -d option given) they are added as regular members.\n"
+"\n"
+" --notifyadmin[=<yes|no>]\n"
+" -a[=<yes|no>]\n"
+" Specifies whether the admin should be notified for each "
+"subscription\n"
+" or unsubscription. If you're adding a lot of addresses, you\n"
+" definitely want to turn this off! With -a=yes or -a, the admin is\n"
+" notified. With -a=no, the admin is not notified. With no -a "
+"option,\n"
+" the default for the list is used.\n"
+"\n"
+" --file <filename | ->\n"
+" -f <filename | ->\n"
+" This option is required. It specifies the flat file to synchronize\n"
+" against. Email addresses must appear one per line. If filename is\n"
+" `-' then stdin is used.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this message.\n"
+"\n"
+" listname\n"
+" Required. This specifies the list to synchronize.\n"
+msgstr ""
+"Sincronizza gli iscritti di una lista con un file di testo.\n"
+"\n"
+"Questo script è utile se hai una lista Mailman e un elenco di indirizzi\n"
+"nello stile :include: di sendmail (utilizzato anche da Majordomo). \n"
+"Ogni indirizzo nel file che non compare nella lista, viene aggiunto.\n"
+"Ogni indirizzo nella lista che non compare nel file, viene rimosso.\n"
+"Le altre opzioni decidono cosa succede agli indirizzi che vengono\n"
+"aggiunti o rimossi.\n"
+"\n"
+"Uso: %(PROGRAM)s [opzioni] -f file nomelista\n"
+"\n"
+"Dove le `opzioni' sono:\n"
+"\n"
+" --no-change\n"
+" -n\n"
+" Non eseguire veramente i cambiamenti, scrivi solo quello che\n"
+" verrebbe fatto con la lista.\n"
+"\n"
+" --welcome-msg[=<yes|no>]\n"
+" -w[=<yes|no>]\n"
+" Decide se agli iscritti aggiunti sarà inviato o meno un messaggio\n"
+" di benvenuto, saltando il valore dell'impostazione\n"
+" `send_welcome_msg'. Con -w=yes o -w, il messaggio viene\n"
+" inviato. Con -w=no, nessun messaggio viene inviato.\n"
+"\n"
+" --goodbye-msg[=<yes|no>]\n"
+" -g[=<yes|no>]\n"
+" Decide se agli iscritti che lasciano la lista sarà inviato o meno\n"
+" un messaggio di saluto, saltando il valore dell'impostazione\n"
+" `send_goodbye_msg'. Con -w=yes o -w, il messaggio viene\n"
+" inviato. Con -w=no, nessun messaggio viene inviato.\n"
+"\n"
+" --digest[=<yes|no>]\n"
+" -d[=<yes|no>]\n"
+" Seleziona se i nuovi utenti aggiunti saranno in modalità digest\n"
+" o meno. Con -d=yes oppure -d, saranno iscritti digest. Con -d=no\n"
+" (o se non viene specificata l'opzione -d) saranno\n"
+" iscritti regolari.\n"
+"\n"
+" --notifyadmin[=<yes|no>]\n"
+" --a[=<yes|no>]\n"
+" Specifica se l'amministratore deve essere notificato di ogni\n"
+" iscrizione o cancellazione. Se stai aggiungendo molti indirizzi\n"
+" sicuramente ti conviene mettere NO in questa opzione!\n"
+" Con -a=yes oppure -a, verranno spedite le notifiche. Con -a=no,\n"
+" non verranno spedite. Se non viene specificata l'opzione -a,\n"
+" sarà usato il default della lista.\n"
+"\n"
+" --file <nomefile | ->\n"
+" -f <nomefile | ->\n"
+" Questa opzione è obbligatoria. Specifica quale file deve essere\n"
+" usato per la sincronizzazione. Gli indirizzi devono apparire uno\n"
+" per riga. Se nomefile è `-' allora sarà letto lo stdin.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Scrive questo messaggio d'aiuto.\n"
+"\n"
+" nomelista\n"
+" Obbligatorio. Indica quale lista va sincronizzata.\n"
+
+#: bin/sync_members:115
+msgid "Bad choice: %(yesno)s"
+msgstr "Scelta errata: %(yesno)s"
+
+#: bin/sync_members:138
+msgid "Dry run mode"
+msgstr "Esecuzione simulata"
+
+#: bin/sync_members:159
+msgid "Only one -f switch allowed"
+msgstr "E' permesso l'uso di una sola opzione -f"
+
+# /home/mailman/Mailman/ListAdmin.py:210
+#: bin/sync_members:163
+msgid "No argument to -f given"
+msgstr "Non è stata specificata l'opzione -f"
+
+#: bin/sync_members:172
+msgid "Illegal option: %(opt)s"
+msgstr "Opzione non permessa: %(opt)s"
+
+# /home/mailman/Mailman/ListAdmin.py:210
+#: bin/sync_members:178
+msgid "No listname given"
+msgstr "Non è stata specificata la lista da sincronizzare"
+
+#: bin/sync_members:182
+msgid "Must have a listname and a filename"
+msgstr "Devo avere un nomelista e un nomefile"
+
+#: bin/sync_members:191
+msgid "Cannot read address file: %(filename)s: %(msg)s"
+msgstr "Non posso leggere il file con gli indirizzi: %(filename)s: %(msg)s"
+
+#: bin/sync_members:203
+msgid "Ignore : %(addr)30s"
+msgstr "Ignoro : %(addr)30s"
+
+# /home/mailman/Mailman/Cgi/admin.py:861
+#: bin/sync_members:212
+msgid "Invalid : %(addr)30s"
+msgstr "Non valido : %(addr)30s"
+
+#: bin/sync_members:215
+msgid "You must fix the preceding invalid addresses first."
+msgstr "Devi prima sistemare i precedenti indirizzi non validi."
+
+#: bin/sync_members:259
+msgid "Added : %(s)s"
+msgstr "Aggiunto : %(s)s"
+
+#: bin/sync_members:278
+msgid "Removed: %(s)s"
+msgstr "Rimosso: %(s)s"
+
+#: bin/transcheck:18
+msgid ""
+"\n"
+"Check a given Mailman translation, making sure that variables and\n"
+"tags referenced in translation are the same variables and tags in\n"
+"the original templates and catalog.\n"
+"\n"
+"Usage:\n"
+"\n"
+"cd $MAILMAN_DIR\n"
+"%(program)s [-q] <lang>\n"
+"\n"
+"Where <lang> is your country code (e.g. 'it' for Italy) and -q is\n"
+"to ask for a brief summary.\n"
+msgstr ""
+"\n"
+"Controlla una data traduzione di Mailman, assicurandosi che le \n"
+"variabili e i tag refereziati nelle traduzioni siano gli stessi \n"
+"che sono presenti nei file originali dei template e del catalogo. \n"
+"\n"
+"Uso:\n"
+"\n"
+"cd $MAILMAN_DIR\n"
+"%(program)s [-q] <lingua>\n"
+"\n"
+"Dove <lingua> è il codice del tuo paese (es. 'it' per Italia) e -q \n"
+"chiede di ricevere soltanto un rapporto abbreviato.\n"
+
+#: bin/transcheck:57
+msgid "check a translation comparing with the original string"
+msgstr "controlla una traduzione comparandola con le stringhe originali"
+
+#: bin/transcheck:64
+msgid "scan a string from the original file"
+msgstr "scandisce una stringa del file originale"
+
+#: bin/transcheck:72
+msgid "scan a translated string"
+msgstr "scandisce una stringa tradotta"
+
+#: bin/transcheck:83
+msgid "check for differences between checked in and checked out"
+msgstr "controllo differenze tra messi e tolti"
+
+#: bin/transcheck:116
+msgid "parse a .po file extracting msgids and msgstrs"
+msgstr "esamina un file .po estraendo msgid e msgstr"
+
+#: bin/transcheck:135
+msgid ""
+"States table for the finite-states-machine parser:\n"
+" 0 idle\n"
+" 1 filename-or-comment\n"
+" 2 msgid\n"
+" 3 msgstr\n"
+" 4 end\n"
+" "
+msgstr ""
+"Tavola degli stati per l'automa a stati finiti del parser:\n"
+" 0 idle\n"
+" 1 filename-or-comment\n"
+" 2 msgid\n"
+" 3 msgstr\n"
+" 4 end\n"
+" "
+
+#: bin/transcheck:272
+msgid ""
+"check a translated template against the original one\n"
+" search also <MM-*> tags if html is not zero"
+msgstr ""
+"controlla la traduzione di un template confrontandola\n"
+" con l'originale. Cerca anche i tag <MM-*> se html\n"
+" è non nullo"
+
+#: bin/transcheck:319
+msgid "scan the po file comparing msgids with msgstrs"
+msgstr "esamina il file .po comparando msgid e msgstr"
+
+#: bin/unshunt:19
+msgid ""
+"Move a message from the shunt queue to the original queue.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [directory]\n"
+"\n"
+"Where:\n"
+"\n"
+" -h / --help\n"
+" Print help and exit.\n"
+"\n"
+"Optional `directory' specifies a directory to dequeue from other than\n"
+"qfiles/shunt.\n"
+msgstr ""
+"Sposta un messaggio dalla coda shunt alla coda originale.\n"
+"\n"
+"Uso: %(PROGRAM)s [opzioni] [directory]\n"
+"\n"
+"Dove:\n"
+"\n"
+" -h / --help\n"
+" Scrive questo messaggio d'aiuto ed esce.\n"
+"\n"
+"Opzionalmente `directory' indica una directory da cui prelevare i\n"
+"messaggi invece che da qfiles/shunt.\n"
+
+#: bin/unshunt:81
+msgid ""
+"Cannot unshunt message %(filebase)s, skipping:\n"
+"%(e)s"
+msgstr ""
+"Non riesco a rimettere dentro il messaggio %(filebase)s, lo salto:\n"
+"%(e)s"
+
+#: bin/update:19
+msgid ""
+"Perform all necessary upgrades.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -f/--force\n"
+" Force running the upgrade procedures. Normally, if the version "
+"number\n"
+" of the installed Mailman matches the current version number (or a\n"
+" `downgrade' is detected), nothing will be done.\n"
+"\n"
+" -h/--help\n"
+" Print this text and exit.\n"
+"\n"
+"Use this script to help you update to the latest release of Mailman from\n"
+"some previous version. It knows about versions back to 1.0b4 (?).\n"
+msgstr ""
+"Esegue tutti gli aggiornamenti necessari.\n"
+"\n"
+"Uso: %(PROGRAM)s [opzioni]\n"
+"\n"
+"Opzioni:\n"
+" -f/--force\n"
+" Forza l'esecuzione delle procedure di aggiornamento. Normalmente\n"
+" se il numero di versione del Mailman installato coincide con la\n"
+" versione attuale (o se si tratta di un downgrade), non viene\n"
+" fatto niente.\n"
+"\n"
+" -h/--help\n"
+" Scrive questo messaggio d'aiuto ed esce.\n"
+"\n"
+"Usa questo script per facilitarti la vita nell'aggiornamento\n"
+"all'ultima versione di Mailman da una versione precedente.\n"
+"Conosce le specificità di tutte le versione dalla 1.0b4 in avanti (?).\n"
+
+#: bin/update:102
+msgid "Fixing language templates: %(listname)s"
+msgstr "Correzione dei template di lingua: %(listname)s"
+
+#: bin/update:191 bin/update:466
+msgid "WARNING: could not acquire lock for list: %(listname)s"
+msgstr "ATTENZIONE: non riesco ad acquisire il lock per la lista: %(listname)s"
+
+#: bin/update:210
+msgid "Resetting %(n)s BYBOUNCEs disabled addrs with no bounce info"
+msgstr ""
+"Riabilito %(n)s indirizzi che erano stati disabilitati per errori di "
+"spedizione ma per i quali non abbiamo altre informazioni"
+
+#: bin/update:216
+msgid "Updating the held requests database."
+msgstr "Aggiornamento del database dei messaggi sospesi."
+
+#: bin/update:238
+msgid ""
+"For some reason, %(mbox_dir)s exists as a file. This won't work with\n"
+"b6, so I'm renaming it to %(mbox_dir)s.tmp and proceeding."
+msgstr ""
+"Per qualche ragione, %(mbox_dir)s esiste ed è un file. Questo non\n"
+"funziona con b6, quindi la rinomino in %(mbox_dir)s.tmp e procedo."
+
+#: bin/update:250
+msgid ""
+"\n"
+"%(listname)s has both public and private mbox archives. Since this list\n"
+"currently uses private archiving, I'm installing the private mbox archive\n"
+"-- %(o_pri_mbox_file)s -- as the active archive, and renaming\n"
+" %(o_pub_mbox_file)s\n"
+"to\n"
+" %(o_pub_mbox_file)s.preb6\n"
+"\n"
+"You can integrate that into the archives if you want by using the 'arch'\n"
+"script.\n"
+msgstr ""
+"\n"
+"%(listname)s ha archivi sia pubblici che privati. Siccome questa lista\n"
+"attualmente usa archivi privati, sto per installare l'archivio mbox\n"
+"privato -- %(o_pri_mbox_file)s -- come archivio attivo e rinominerò\n"
+" %(o_pub_mbox_file)s\n"
+"in\n"
+" %(o_pub_mbox_file)s.preb6\n"
+"\n"
+"Se vuoi puoi integrare questo negli archivi usando lo script 'arch'.\n"
+
+#: bin/update:265
+msgid ""
+"%s has both public and private mbox archives. Since this list\n"
+"currently uses public archiving, I'm installing the public mbox file\n"
+"archive file (%s) as the active one, and renaming\n"
+" %s\n"
+" to\n"
+" %s.preb6\n"
+"\n"
+"You can integrate that into the archives if you want by using the 'arch'\n"
+"script.\n"
+msgstr ""
+"%s ha archivi mbox sia pubblici che privati. Siccome questa lista\n"
+"attualmente sta usando archivi pubblici, sto per installare il file\n"
+"di archivio mbox pubblico (%s) come archivio attivo, e rinominerò\n"
+" %s\n"
+" in\n"
+" %s.preb6\n"
+"\n"
+"Se vuoi puoi integrarlo negli archivi usando lo script 'arch'.\n"
+
+#: bin/update:282
+msgid "- updating old private mbox file"
+msgstr "- aggiornamento del vecchio file mbox privato"
+
+#: bin/update:290
+msgid ""
+" unknown file in the way, moving\n"
+" %(o_pri_mbox_file)s\n"
+" to\n"
+" %(newname)s"
+msgstr ""
+" trovato file ignoto, sposto\n"
+" %(o_pri_mbox_file)s\n"
+" in\n"
+" %(newname)s"
+
+#: bin/update:297 bin/update:320
+msgid ""
+" looks like you have a really recent CVS installation...\n"
+" you're either one brave soul, or you already ran me"
+msgstr ""
+" sembra che tu abbia una installazione presa di recente dal CVS...\n"
+" o sei un'anima coraggiosa, o mi hai già eseguito."
+
+#: bin/update:306
+msgid "- updating old public mbox file"
+msgstr "- aggiorno il vecchio file mbox pubblico"
+
+#: bin/update:314
+msgid ""
+" unknown file in the way, moving\n"
+" %(o_pub_mbox_file)s\n"
+" to\n"
+" %(newname)s"
+msgstr ""
+" trovato file ignoto, sposto\n"
+" %(o_pub_mbox_file)s\n"
+" in\n"
+" %(newname)s"
+
+#: bin/update:345
+msgid "- This list looks like it might have <= b4 list templates around"
+msgstr "- Sembra che questa lista abbia dei template antecedenti a b4"
+
+#: bin/update:352
+msgid "- moved %(o_tmpl)s to %(n_tmpl)s"
+msgstr "- spostato %(o_tmpl)s in %(n_tmpl)s"
+
+#: bin/update:354
+msgid "- both %(o_tmpl)s and %(n_tmpl)s exist, leaving untouched"
+msgstr "- esistono sia %(o_tmpl)s che %(n_tmpl)s, non tocco niente"
+
+#: bin/update:384
+msgid "removing directory %(src)s and everything underneath"
+msgstr "rimuovo la directory %(src)s e tutto quello che contiene"
+
+#: bin/update:387
+msgid "removing %(src)s"
+msgstr "rimozione di %(src)s"
+
+#: bin/update:391
+msgid "Warning: couldn't remove %(src)s -- %(rest)s"
+msgstr "Attenzione: non riesco a rimuovere %(src)s -- %(rest)s"
+
+#: bin/update:396
+msgid "couldn't remove old file %(pyc)s -- %(rest)s"
+msgstr "non riesco a rimuovere il vecchio file %(pyc)s -- %(rest)s"
+
+#: bin/update:400
+msgid "updating old qfiles"
+msgstr "aggiornamento dei vecchi qfile"
+
+#: bin/update:422
+msgid "getting rid of old source files"
+msgstr "elimino i vecchi file sorgente"
+
+#: bin/update:432
+msgid "no lists == nothing to do, exiting"
+msgstr "nessuna lista == niente da fare, esco"
+
+#: bin/update:439
+msgid ""
+"fixing all the perms on your old html archives to work with b6\n"
+"If your archives are big, this could take a minute or two..."
+msgstr ""
+"sto correggendo i permessi sui tuoi vecchi archivi html in modo\n"
+"che possano funzionare con b6. Se i tuoi archivi sono grandi,\n"
+"potrebbero essere necessari vari minuti..."
+
+# /home/mailman/Mailman/MailList.py:539
+#: bin/update:444
+msgid "done"
+msgstr "fatto"
+
+#: bin/update:446
+msgid "Updating mailing list: %(listname)s"
+msgstr "Aggiorno la lista: %(listname)s"
+
+#: bin/update:449
+msgid "Updating Usenet watermarks"
+msgstr "Aggiorno i marcatori di Usenet"
+
+#: bin/update:454
+msgid "- nothing to update here"
+msgstr "- niente da aggiornare qui"
+
+#: bin/update:477
+msgid "- usenet watermarks updated and gate_watermarks removed"
+msgstr "- i marcatori usenet sono stati aggiornati e gate_watermarks rimosso"
+
+#: bin/update:487
+msgid "Updating old pending_subscriptions.db database"
+msgstr "Aggiornamento del vecchio database pending_subscriptions.db"
+
+#: bin/update:504
+msgid ""
+"\n"
+"\n"
+"NOTE NOTE NOTE NOTE NOTE\n"
+"\n"
+" You are upgrading an existing Mailman installation, but I can't tell "
+"what\n"
+" version you were previously running.\n"
+"\n"
+" If you are upgrading from Mailman 1.0b9 or earlier you will need to\n"
+" manually update your mailing lists. For each mailing list you need to\n"
+" copy the file templates/options.html lists/<listname>/options.html.\n"
+"\n"
+" However, if you have edited this file via the Web interface, you will "
+"have\n"
+" to merge your changes into this file, otherwise you will lose your\n"
+" changes.\n"
+"\n"
+"NOTE NOTE NOTE NOTE NOTE\n"
+"\n"
+msgstr ""
+"\n"
+"\n"
+"NOTA NOTA NOTA NOTA NOTA\n"
+"\n"
+" Stai aggiornando una installazione Mailman esistente, ma non posso\n"
+" dire quale versione fosse presente prima.\n"
+"\n"
+" Se stai aggiornando da Mailman 1.0b9 o precedente, allora dovrai\n"
+" aggiornare manualmente le tue liste. Per ogni lista devi copiare\n"
+" il file templates/options.html in lists/<listname>/options.html.\n"
+"\n"
+" In ogni caso, se hai editato questo file attraverso l'interfaccia\n"
+" web dovrai inserire i tuoi cambiamenti nel nuovo file, oppure li\n"
+" perderai.\n"
+"\n"
+"NOTA NOTA NOTA NOTA NOTA\n"
+"\n"
+
+#: bin/update:561
+msgid "No updates are necessary."
+msgstr "Non sono necessarie modifiche."
+
+#: bin/update:564
+msgid ""
+"Downgrade detected, from version %(hexlversion)s to version %(hextversion)s\n"
+"This is probably not safe.\n"
+"Exiting."
+msgstr ""
+"Rilevato un downgrade, dalla versione %(hexlversion)s alla versione\n"
+"%(hextversion)s. Probabilmente non è sicuro eseguire questa manovra.\n"
+"Esco."
+
+#: bin/update:569
+msgid "Upgrading from version %(hexlversion)s to %(hextversion)s"
+msgstr "Aggiornamento dalla versione %(hexlversion)s alla %(hextversion)s"
+
+#: bin/update:578
+msgid ""
+"\n"
+"ERROR:\n"
+"\n"
+"The locks for some lists could not be acquired. This means that either\n"
+"Mailman was still active when you upgraded, or there were stale locks in "
+"the\n"
+"%(lockdir)s directory.\n"
+"\n"
+"You must put Mailman into a quiescent state and remove all stale locks, "
+"then\n"
+"re-run \"make update\" manually. See the INSTALL and UPGRADE files for "
+"details.\n"
+msgstr ""
+"\n"
+"ERRORE:\n"
+"\n"
+"I lock di qualche lista non possono essere acquisiti. Questo significa\n"
+"o che Mailman era attivo durante l'installazione, o che c'erano dei\n"
+"lock abbandonati nella directory %(lockdir)s.\n"
+"\n"
+"Devi mettere Mailman in uno stato quiescente e quindi rimuovere tutti i\n"
+"lock, poi rilanciare \"make update\" manualmente. Vedi i file INSTALL e\n"
+"UPGRADE per i dettagli.\n"
+
+#: bin/version:19
+msgid "Print the Mailman version.\n"
+msgstr "Scrive la versione di Mailman.\n"
+
+#: bin/version:26
+msgid "Using Mailman version:"
+msgstr "Mailman versione:"
+
+#: bin/withlist:19
+msgid ""
+"General framework for interacting with a mailing list object.\n"
+"\n"
+"There are two ways to use this script: interactively or programmatically.\n"
+"Using it interactively allows you to play with, examine and modify a "
+"MailList\n"
+"object from Python's interactive interpreter. When running interactively, "
+"a\n"
+"MailList object called `m' will be available in the global namespace. It "
+"also\n"
+"loads the class MailList into the global namespace.\n"
+"\n"
+"Programmatically, you can write a function to operate on a MailList object,\n"
+"and this script will take care of the housekeeping (see below for "
+"examples).\n"
+"In that case, the general usage syntax is:\n"
+"\n"
+"%% bin/withlist [options] listname [args ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" -l / --lock\n"
+" Lock the list when opening. Normally the list is opened unlocked\n"
+" (e.g. for read-only operations). You can always lock the file "
+"after\n"
+" the fact by typing `m.Lock()'\n"
+"\n"
+" Note that if you use this option, you should explicitly call m.Save"
+"()\n"
+" before exiting, since the interpreter's clean up procedure will not\n"
+" automatically save changes to the MailList object (but it will "
+"unlock\n"
+" the list).\n"
+"\n"
+" -i / --interactive\n"
+" Leaves you at an interactive prompt after all other processing is\n"
+" complete. This is the default unless the -r option is given.\n"
+"\n"
+" --run [module.]callable\n"
+" -r [module.]callable\n"
+" This can be used to run a script with the opened MailList object.\n"
+" This works by attempting to import `module' (which must already be\n"
+" accessible on your sys.path), and then calling `callable' from the\n"
+" module. callable can be a class or function; it is called with the\n"
+" MailList object as the first argument. If additional args are "
+"given\n"
+" on the command line, they are passed as subsequent positional args "
+"to\n"
+" the callable.\n"
+"\n"
+" Note that `module.' is optional; if it is omitted then a module "
+"with\n"
+" the name `callable' will be imported.\n"
+"\n"
+" The global variable `r' will be set to the results of this call.\n"
+"\n"
+" --all / -a\n"
+" This option only works with the -r option. Use this if you want to\n"
+" execute the script on all mailing lists. When you use -a you "
+"should\n"
+" not include a listname argument on the command line. The variable "
+"`r'\n"
+" will be a list of all the results.\n"
+"\n"
+" --quiet / -q\n"
+" Suppress all status messages.\n"
+"\n"
+" --help / -h\n"
+" Print this message and exit\n"
+"\n"
+"\n"
+"Here's an example of how to use the -r option. Say you have a file in the\n"
+"Mailman installation directory called `listaddr.py', with the following\n"
+"two functions:\n"
+"\n"
+"def listaddr(mlist):\n"
+" print mlist.GetListEmail()\n"
+"\n"
+"def requestaddr(mlist):\n"
+" print mlist.GetRequestEmail()\n"
+"\n"
+"Now, from the command line you can print the list's posting address by "
+"running\n"
+"the following from the command line:\n"
+"\n"
+"%% bin/withlist -r listaddr mylist\n"
+"Loading list: mylist (unlocked)\n"
+"Importing listaddr ...\n"
+"Running listaddr.listaddr() ...\n"
+"mylist@myhost.com\n"
+"\n"
+"And you can print the list's request address by running:\n"
+"\n"
+"%% bin/withlist -r listaddr.requestaddr mylist\n"
+"Loading list: mylist (unlocked)\n"
+"Importing listaddr ...\n"
+"Running listaddr.requestaddr() ...\n"
+"mylist-request@myhost.com\n"
+"\n"
+"As another example, say you wanted to change the password for a particular\n"
+"user on a particular list. You could put the following function in a file\n"
+"called `changepw.py':\n"
+"\n"
+"from Mailman.Errors import NotAMember\n"
+"\n"
+"def changepw(mlist, addr, newpasswd):\n"
+" try:\n"
+" mlist.setMemberPassword(addr, newpasswd)\n"
+" mlist.Save()\n"
+" except NotAMember:\n"
+" print 'No address matched:', addr\n"
+"\n"
+"and run this from the command line:\n"
+"%% bin/withlist -l -r changepw mylist somebody@somewhere.org foobar\n"
+msgstr ""
+"Strumento generale per l'interazione con l'oggetto mailing list.\n"
+"\n"
+"Ci sono due modi per usare questo script: interattivamente o da programma.\n"
+"Interattivamente ti permette di giocare, esaminare e modificare un oggetto\n"
+"MailList usando l'interprete interattivo Python's. Quando lanciato\n"
+"interattivamente, è disponibile un oggetto MailList chiamato `m' nel\n"
+"namespace globale. Viene anche caricata la classe MailList nel namespace\n"
+"globale.\n"
+"\n"
+"In un programma, puoi scrivere una funzione che opera su un oggetto\n"
+"MailList, e questo script si prenderà cura di mettere tutto a posto\n"
+"(vedi più in basso per alcuni esempi).\n"
+"Per fare questo esegui lo script come segue:\n"
+"\n"
+"%% bin/withlist [opzioni] nomelista [argomenti ...]\n"
+"\n"
+"Opzioni:\n"
+"\n"
+" -l\n"
+" --lock\n"
+" Alla partenza mette un lock sulla lista. Normalmente la lista\n"
+" viene aperta senza lock (ok per operazioni di sola lettura).\n"
+" Puoi sempre acquisire il lock ad operazioni iniziate, scrivendo\n"
+" `m.Lock()'\n"
+"\n"
+" Nota che se usi questa opzione dovrai esplicitamente chiamare\n"
+" m.Save() prima di uscire, poiché la procedura di chiusura\n"
+" dell'interprete non salverà automaticamente i cambiamenti\n"
+" effettuati sull'oggetto lista (ma toglierà il lock).\n"
+"\n"
+" -i / --interactive\n"
+" Ti lascia un prompt interattivo dopo che tutte le altre\n"
+" operazioni sono state completate. Questo è il default se non\n"
+" viene fornita l'opzione -r.\n"
+"\n"
+" --run [modulo.]chiamabile\n"
+" -r [modulo.]chiamabile\n"
+" Questo può essere usato per lanciare uno script che usa l'oggetto\n"
+" MailList aperto. Quello che succede è che viene tentato l'import\n"
+" di `modulo' (che deve già essere accessibile nel sys.path) e quindi\n"
+" viene chiamato `chiamabile' dal modulo. `chiamabile' può essere\n"
+" una classe o una funzione; viene chiamata con l'oggetto MailList\n"
+" come primo argomento. Se sono forniti argomenti addizionali\n"
+" sulla riga di comando, saranno passati come argomenti posizionali\n"
+" successivi in `chiamabile'.\n"
+"\n"
+" Nota che `modulo' è opzionale; se è omesso allora sarà importato\n"
+" un modulo di nome `chiamabile'.\n"
+"\n"
+" La variabile globale `r' assumerà il valore del risultato della\n"
+" chiamata.\n"
+"\n"
+" --all / -a\n"
+" Questa opzione funziona solo insieme alla -r. Usala se vuoi\n"
+" eseguire lo script su tutte le liste. Se usi -a non dovresti\n"
+" indicare il nome di una lista tra gli argomenti del comando.\n"
+" La variabile `r' conterrà un elenco dei risultati.\n"
+"\n"
+" --quiet / -q\n"
+" Sopprimi tutti i messaggi di stato.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Scrive questo messaggio d'aiuto ed esce.\n"
+"\n"
+"\n"
+"Ecco un esempio di come utilizzare l'opzione -r. Supponiamo ci sia un\n"
+"file nella directory in cui è stato installato Mailman, e che si chiami\n"
+"`listaddr.py', contenente lo seguenti due funzioni:\n"
+"\n"
+"def listaddr(mlist):\n"
+" print mlist.GetListEmail()\n"
+"\n"
+"def requestaddr(mlist):\n"
+" print mlist.GetRequestEmail()\n"
+"\n"
+"Ora, dalla linea di comando, puoi ottenere l'indirizzo di ricezione\n"
+"messaggi della lista scrivendo questo comando:\n"
+"\n"
+"%% bin/withlist -r listaddr mialista\n"
+"Loading list: mialista (unlocked)\n"
+"Importing listaddr ...\n"
+"Running listaddr.listaddr() ...\n"
+"mialista@miodominio.com\n"
+"\n"
+"E puoi ottenere l'indirizzo di lista dedicato alle richieste di\n"
+"iscrizione in questo modo:\n"
+"\n"
+"%% bin/withlist -r listaddr.requestaddr mialista\n"
+"Loading list: mialista (unlocked)\n"
+"Importing listaddr ...\n"
+"Running listaddr.requestaddr() ...\n"
+"mylist-request@myhost.com\n"
+"\n"
+"Un altro esempio, diciamo che vuoi cambiare la password per un utente\n"
+"particolare su una particolare lista. Potresti mettere la seguente\n"
+"funzione in un file chiamato `changepw.py':\n"
+"\n"
+"from Mailman.Errors import NotAMember\n"
+"\n"
+"def changepw(mlist, addr, newpasswd):\n"
+" try:\n"
+" mlist.setMemberPassword(addr, newpasswd)\n"
+" mlist.Save()\n"
+" except NotAMember:\n"
+" print 'No address matched:', addr\n"
+"\n"
+"e lanciarlo in questo modo dalla linea di comando:\n"
+"%% bin/withlist -l -r changepw mialista qualcuno@qualcheparte.org pippo\n"
+
+#: bin/withlist:151
+msgid ""
+"Unlock a locked list, but do not implicitly Save() it.\n"
+"\n"
+" This does not get run if the interpreter exits because of a signal, or "
+"if\n"
+" os._exit() is called. It will get called if an exception occurs "
+"though.\n"
+" "
+msgstr ""
+"Sblocca una lista sottoposta a lock, ma non chiama Save() implicitamente.\n"
+"\n"
+" Questo non viene eseguito se l'inteprete esce a causa di un segnale\n"
+" o per una chiamata a os._exit(). Però viene eseguito se accade\n"
+" un'eccezione.\n"
+" "
+
+#: bin/withlist:162
+msgid "Unlocking (but not saving) list: %(listname)s"
+msgstr "Sblocco (ma non salvo) la lista: %(listname)s"
+
+#: bin/withlist:166
+msgid "Finalizing"
+msgstr "Chiusura"
+
+#: bin/withlist:175
+msgid "Loading list %(listname)s"
+msgstr "Carico la lista %(listname)s"
+
+#: bin/withlist:177
+msgid "(locked)"
+msgstr "(bloccata)"
+
+#: bin/withlist:179
+msgid "(unlocked)"
+msgstr "(sbloccata)"
+
+#: bin/withlist:184
+msgid "Unknown list: %(listname)s"
+msgstr "Lista ignota: %(listname)s"
+
+# /home/mailman/Mailman/MailList.py:517
+#: bin/withlist:223
+msgid "No list name supplied."
+msgstr "Il nome della lista è obbligatorio."
+
+#: bin/withlist:226
+msgid "--all requires --run"
+msgstr "--all richiede --run"
+
+#: bin/withlist:246
+msgid "Importing %(module)s..."
+msgstr "Importo %(module)s..."
+
+#: bin/withlist:249
+msgid "Running %(module)s.%(callable)s()..."
+msgstr "Eseguo %(module)s.%(callable)s()..."
+
+#: bin/withlist:270
+msgid "The variable `m' is the %(listname)s MailList instance"
+msgstr ""
+"La variabile `m' è l'istanza dell'oggetto MailList per la lista %(listname)s"
+
+#: cron/bumpdigests:19
+msgid ""
+"Increment the digest volume number and reset the digest number to one.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" --help/-h\n"
+" Print this message and exit.\n"
+"\n"
+"The lists named on the command line are bumped. If no list names are "
+"given,\n"
+"all lists are bumped.\n"
+msgstr ""
+"Incrementa il numero di volume dei digest e riporta a uno il contatore\n"
+"dei digest\n"
+"\n"
+"Uso: %(PROGRAM)s [opzioni] [nomelista ...]\n"
+"\n"
+"Opzioni:\n"
+"\n"
+" --help/-h\n"
+" Scrive questo messaggio d'aiuto ed esce.\n"
+"\n"
+"La procedura viene eseguita per le liste elencate sulla riga di comando\n"
+"oppure per tutte se non è stata specificata nessuna lista.\n"
+
+#: cron/checkdbs:19
+msgid ""
+"Invoked by cron, this checks for pending moderation requests and mails the\n"
+"list moderators if necessary.\n"
+msgstr ""
+"Invocato da cron, controlla se esistono richieste di moderazione pendenti\n"
+"e se necessario le inoltra ai moderatori della lista.\n"
+
+#: cron/checkdbs:81
+msgid "%(count)d %(realname)s moderator request(s) waiting"
+msgstr "ci sono %(count)d richieste in attesa del moderatore di %(realname)s"
+
+# /home/mailman/Mailman/Cgi/options.py:138
+#: cron/checkdbs:100
+msgid "Pending subscriptions:"
+msgstr "Iscrizioni pendenti:"
+
+#: cron/checkdbs:109
+msgid ""
+"\n"
+"Pending posts:"
+msgstr ""
+"\n"
+"Messaggi pendenti:"
+
+#: cron/checkdbs:114
+msgid ""
+"From: %(sender)s on %(date)s\n"
+"Subject: %(subject)s\n"
+"Cause: %(reason)s"
+msgstr ""
+" Da: %(sender)s il %(date)s\n"
+" Oggetto: %(subject)s\n"
+" Causa: %(reason)s"
+
+#: cron/disabled:19
+msgid ""
+"Process disabled members, recommended once per day.\n"
+"\n"
+"This script cruises through every mailing list looking for members whose\n"
+"delivery is disabled. If they have been disabled due to bounces, they will\n"
+"receive another notification, or they may be removed if they've received "
+"the\n"
+"maximum number of notifications.\n"
+"\n"
+"Use the --byadmin, --byuser, and --unknown flags to also send notifications "
+"to\n"
+"members whose accounts have been disabled for those reasons. Use --all to\n"
+"send the notification to all disabled members.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -h / --help\n"
+" Print this message and exit.\n"
+"\n"
+" -o / --byadmin\n"
+" Also send notifications to any member disabled by the list\n"
+" owner/administrator.\n"
+"\n"
+" -m / --byuser\n"
+" Also send notifications to any member disabled by themselves.\n"
+"\n"
+" -u / --unknown\n"
+" Also send notifications to any member disabled for unknown reasons\n"
+" (usually a legacy disabled address).\n"
+"\n"
+" -b / --notbybounce\n"
+" Don't send notifications to members disabled because of bounces "
+"(the\n"
+" default is to notify bounce disabled members).\n"
+"\n"
+" -a / --all\n"
+" Send notifications to all disabled members.\n"
+"\n"
+" -f / --force\n"
+" Send notifications to disabled members even if they're not due a "
+"new\n"
+" notification yet.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" Process only the given list, otherwise do all lists.\n"
+msgstr ""
+"Esamina gli iscritti disabilitati, raccomandato una volta al giorno.\n"
+"\n"
+"Questo script fa un giro di tutte le liste cercando quegli iscritti\n"
+"per i quali l'invio dei messaggi è disabilitato. Se sono stati\n"
+"disabilitati per eccesso di errori, allora riceveranno un'altra notifica\n"
+"o saranno rimossi se hanno ricevuto già il massimo numero di notifiche.\n"
+"\n"
+"Usa le opzioni --byadmin, --byuser, and --unknown per inviare le\n"
+"notifiche anche agli iscritti che sono stati disabilitati per altri\n"
+"motivi. Usa --all per mandare la notifica a tutti gli utenti\n"
+"disabilitati.\n"
+"\n"
+"Uso: %(PROGRAM)s [opzioni]\n"
+"\n"
+"Opzioni:\n"
+" -h / --help\n"
+" Scrive questo messaggio d'aiuto ed esce.\n"
+"\n"
+" -o / --byadmin\n"
+" Invia notifiche anche agli utenti disabilitati manualmente\n"
+" dall'amministratore della lista.\n"
+"\n"
+" -m / --byuser\n"
+" Invia notitiche anche agli utenti che si sono disabilitati da soli.\n"
+"\n"
+" -u / --unknown\n"
+" Invia notifiche anche agli utenti per i quali il motivo della\n"
+" disabilitazione non è noto (tipicamente indirizzi che sono stati\n"
+" disabilitati tanto tempo fa da una vecchia versione di Mailman).\n"
+"\n"
+" -b / --notbybounce\n"
+" Non inviare notifiche agli utenti disasbilitati per eccesso di\n"
+" errori di invio (sono notificati per default).\n"
+"\n"
+" -a / --all\n"
+" Invia notifiche a tutti gli utenti disabilitati.\n"
+"\n"
+" -f / --force\n"
+" Invia notifiche agli iscritti disabilitati anche se se non\n"
+" è ancora passato abbastanza tempo dalla loro ultima notifica.\n"
+"\n"
+" -l nomelista\n"
+" --listname=nomelista\n"
+" Esamina solo la lista indicata, altrimenti tutte.\n"
+
+#: cron/disabled:143
+msgid "[disabled by periodic sweep and cull, no message available]"
+msgstr "[disabilitato dal controllo periodico, nessun messaggio disponibile]"
+
+#: cron/gate_news:19
+msgid ""
+"Poll the NNTP servers for messages to be gatewayed to mailing lists.\n"
+"\n"
+"Usage: gate_news [options]\n"
+"\n"
+"Where options are\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this text and exit.\n"
+"\n"
+msgstr ""
+"Controlla i server NNTP per vedere se ci sono messaggi da inoltrare\n"
+"alle liste.\n"
+"\n"
+"Uso: gate_news [opzioni]\n"
+"\n"
+"Dove le opzioni sono\n"
+"\n"
+" --help\n"
+" -h\n"
+" Scrive questo messaggio d'aiuto ed esce.\n"
+"\n"
+
+#: cron/mailpasswds:19
+msgid ""
+"Send password reminders for all lists to all users.\n"
+"\n"
+"This program scans all mailing lists and collects users and their "
+"passwords,\n"
+"grouped by the list's host_name if mm_cfg.VIRTUAL_HOST_OVERVIEW is true. "
+"Then\n"
+"one email message is sent to each unique user (per-virtual host) containing\n"
+"the list passwords and options url for the user. The password reminder "
+"comes\n"
+"from the mm_cfg.MAILMAN_SITE_LIST, which must exist.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -l listname\n"
+" --listname=listname\n"
+" Send password reminders for the named list only. If omitted,\n"
+" reminders are sent for all lists. Multiple -l/--listname options "
+"are\n"
+" allowed.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+msgstr ""
+"Invia i promemoria della password a tutti gli utenti di tutte le liste.\n"
+"\n"
+"Questo script spazzola tutte le liste e raccoglie gli indirizzi\n"
+"degli utenti e le loro password, raggruppati per nome del virtual\n"
+"associato alla lista se mm_cfg.VIRTUAL_HOST_OVERVIEW è vero.\n"
+"Quindi, un messaggio viene inviato ad ogni singolo utente (per\n"
+"ogni virtual host) contenente le password e l'url delle opzioni\n"
+"per l'utente. Il promemoria viene inviato come proveniente da\n"
+"mm_cfg.MAILMAN_SITE_LIST, che deve esistere.\n"
+"\n"
+"Uso: %(PROGRAM)s [opzioni]\n"
+"\n"
+"Opzioni:\n"
+" -l nomelista\n"
+" --listname=nomelista\n"
+" Invia il promemoria della password soltanto alla lista indicata.\n"
+" Se omesso, il promemoria viene inviato a tutte le liste. Sono\n"
+" permesse multiple opzioni -l/--listname.\n"
+"\n"
+" -h/--help\n"
+" Scrive questo messaggio d'aiuto ed esce.\n"
+
+#: cron/mailpasswds:111
+msgid "Site list is missing: %(sitelistname)s"
+msgstr "Lista di sito mancante: %(sitelistname)s"
+
+# /home/mailman/Mailman/HTMLFormatter.py:301
+#: cron/mailpasswds:179
+msgid "Password // URL"
+msgstr "Password // URL"
+
+#: cron/mailpasswds:199
+msgid "%(host)s mailing list memberships reminder"
+msgstr "promemoria per gli iscritti della lista %(host)s"
+
+#: cron/nightly_gzip:19
+msgid ""
+"Re-generate the Pipermail gzip'd archive flat files.\n"
+"\n"
+"This script should be run nightly from cron. When run from the command "
+"line,\n"
+"the following usage is understood:\n"
+"\n"
+"Usage: %(program)s [-v] [-h] [listnames]\n"
+"\n"
+"Where:\n"
+" --verbose\n"
+" -v\n"
+" print each file as it's being gzip'd\n"
+"\n"
+" --help\n"
+" -h\n"
+" print this message and exit\n"
+"\n"
+" listnames\n"
+" Optionally, only compress the .txt files for the named lists. "
+"Without \n"
+" this, all archivable lists are processed.\n"
+"\n"
+msgstr ""
+"Rigenera l'archivio gzippato dei file di testo di Pipermail\n"
+"\n"
+"Questo script dovrebbe essere lanciato di notte da cron. Quando viene\n"
+"eseguito dalla riga di comando, viene utilizzata questa sintassi:\n"
+"\n"
+"Uso: %(program)s [-v] [-h] [nomiliste]\n"
+"\n"
+"Dove:\n"
+" --verbose\n"
+" -v\n"
+" scrive il nome di ogni file che viene gzippato.\n"
+"\n"
+" --help\n"
+" -h\n"
+" scrive questo messaggio d'aiuto ed esce.\n"
+"\n"
+" nomiliste\n"
+" Opzionalmente, comprime solo i file .txt per le liste indicate.\n"
+" Se non viene indicato nulla, vengono elaborate tutte le liste\n"
+" archiviate.\n"
+"\n"
+
+#: cron/senddigests:19
+msgid ""
+"Dispatch digests for lists w/pending messages and digest_send_periodic set.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -h / --help\n"
+" Print this message and exit.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" Send the digest for the given list only, otherwise the digests for "
+"all\n"
+" lists are sent out.\n"
+msgstr ""
+"Invia i digest per le liste che hanno messaggi pendenti e\n"
+"digest_send_periodic abilitato.\n"
+"\n"
+"Uso: %(PROGRAM)s [opzioni]\n"
+"\n"
+"Opzioni:\n"
+"\n"
+" --help/-h\n"
+" Scrive questo messaggio d'aiuto ed esce.\n"
+"\n"
+" -l nomelista\n"
+" --listname=nomelista\n"
+" Invia il digest soltanto per la lista indicata, altrimenti viene\n"
+" inviato per tutte.\n"
diff --git a/messages/it/README.it b/messages/it/README.it
new file mode 100644
index 00000000..5e7c149f
--- /dev/null
+++ b/messages/it/README.it
@@ -0,0 +1,30 @@
+
+Traduzione italiana di Mailman.
+
+La traduzione italiana di Mailman è realizzata da un gruppo di
+persone coordinate tramite la lista mailman-it@ferrara.linux.it
+
+Per contribuire, segnalare imprecisioni e difetti di traduzione o
+fare domande di ogni genere puoi scriverci a quell'indirizzo,
+oppure puoi iscriverti alla lista e seguire lo sviluppo dei lavori
+all'indirizzo:
+
+http://mailman.ferrara.linux.it/listinfo/mailman-it
+
+Hanno contribuito alla traduzione:
+
+ - Alessio Bragadini
+ - Francesco Lentini
+ - Cristiano Musacci
+ - Simone Piunno
+ - Luigi Rosa
+
+Hanno controllato la correttezza della traduzione:
+
+ - Michele Bariani
+ - Fabio Coatti
+ - Stefano Guandalini
+ - Luca Maranzano
+ - Fabio Stumbo
+ - Luca Villani
+ - Enea Zaffanella
diff --git a/messages/ja/INSTALL b/messages/ja/INSTALL
new file mode 100644
index 00000000..61c50f92
--- /dev/null
+++ b/messages/ja/INSTALL
@@ -0,0 +1,576 @@
+Mailman - The GNU Mailing List Management System
+Copyright (C) 1998,1999,2000,2001,2002 Free Software Foundation, Inc.
+59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+¤³¤ì¤Ï Mailman 2.1 ¤Î INSTALL ¤òµÆÃÏ¡÷¹âÃÎÂ礬ÏÂÌõ¤·¤¿¤â¤Î¤Ç¤¹¡¥
+¸íÌõ¤¬¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¤Î¤Ç¡¤É¬¤º¸¶ËܡʱÑʸ¡Ë¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡¥
+
+¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï Mailman ¤Î¥¤¥ó¥¹¥È¡¼¥ëÊýË¡¤¬ºÜ¤Ã¤Æ¤¤¤Þ¤¹¡¥
+Mailman ¤Ïɸ½à¤Î GNU autoconf ¥½¥Õ¥È¥¦¥§¥¢¤ò»È¤Ã¤ÆÀßÄꤵ¤ì¤Þ¤¹¡¥
+¤Þ¤ººÇ½é¤Ë¡¤°Ê²¼¤Î¥»¥¯¥·¥ç¥ó¤Ç³µÀ⤵¤ì¤Æ¤¤¤ë¤è¤¦¤Ë¥·¥¹¥Æ¥à¤ò
+¥»¥Ã¥È¥¢¥Ã¥×¤·¤Æ¤¯¤À¤µ¤¤¡¥¤½¤Î¸å¡¤Mailman¥½¥Õ¥È¥¦¥§¥¢¤ò configure
+¤·, ¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤¯¤À¤µ¤¤.
+
+¥Ð¡¼¥¸¥ç¥ó¥¢¥Ã¥×
+Mailman ¤ò¥Ð¡¼¥¸¥ç¥ó¥¢¥Ã¥×¤¹¤ë¤Î¤Ï¡¤´û¸¤Î¥Ð¡¼¥¸¥ç¥ó¤ò¾å½ñ¤­¤·¤Æ
+¿·¤·¤¤ ¥Ð¡¼¥¸¥ç¥ó¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤Î¤ÈƱ¤¸¤¯¤é¤¤´Êñ¤Ç¤¹¡¥¤·¤«¤·¡¤
+¥Ð¡¼¥¸¥ç¥ó¥¢¥Ã¥×¤ÎÁ°¤Ë UPGRADING ¥Õ¥¡¥¤¥ë¤Ë½ñ¤¤¤Æ¤¢¤ë¥Î¡¼¥È¤ò
+ÆÉ¤ó¤Ç¤¯¤À¤µ¤¤¡¥ ½ÅÍפʾðÊ󤬤¢¤ê¤Þ¤¹¡¥
+
+0. ¥¤¥ó¥¹¥È¡¼¥ë¤ÎɬÍ×»ö¹à
+
+ ¤Þ¤º, ¤¢¤Ê¤¿¤¬¥á¡¼¥ë¤òÁ÷¤ë¤È¤­¤Ë»È¤¨¤ë, ¥á¡¼¥ë¥µ¡¼¥Ð(MTA)¤È,
+ CGI/1.1 ¤Î API ¤ò¥µ¥Ý¡¼¥È¤¹¤ë¥¦¥§¥Ö¥µ¡¼¥Ð¤¬É¬ÍפǤ¹. Apache ¤¬
+ ¥¦¥§¥Ö¥µ¡¼¥Ð¤È¤·¤Æ¤ÏŬÅö¤Ç¤¹. ¤Þ¤¿, MTA ¤È¤·¤Æ¤Ï, Postfix,
+ Exim, Sendmail, qmail ¤Ê¤É¤Ï¤É¤ì¤â»È¤¨¤Þ¤¹.
+
+ ¥»¥­¥å¥ê¥Æ¥£¸þ¾å¤Î¤¿¤á¤ËÍѤ¤¤é¤ì¤Æ¤¤¤ë wrapper ¥×¥í¥°¥é¥à¤ò
+ ¹½ÃÛ¤¹¤ë¤¿¤á¤Ë¤Ï ANSI C ¥³¥ó¥Ñ¥¤¥é¡¼¤¬É¬ÍפǤ¹. GNU ¤Î C
+ ¥³¥ó¥Ñ¥¤¥é gcc 2.8.1 °Ê¹ß¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤¦¤Þ¤¯¤¤¤­¤Þ¤¹¡¥Gcc
+ ¤ò¼è¤Ã¤ÆÍè¤ë¤Ë¤Ï, °Ê²¼¤Î URL ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤.
+
+ http://www.gnu.org/
+
+ ¥·¥¹¥Æ¥à¤Ë¤Ï Python ¥¤¥ó¥¿¥×¥ê¥¿¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤Ê¤±¤ì
+ ¤Ð¤Ê¤ê¤Þ¤»¤ó¡¥ ¸½»þÅÀ¤Ç¡¤Python 2.1.3 ¤Þ¤¿¤Ï 2.2.1 ¤ò¿ä¾©¤·¤Þ
+ ¤¹. Python ¤Î¥½¡¼¥¹¤Þ¤¿¤Ï RPM, ¥³¥ó¥Ñ¥¤¥ëºÑ¤ß¥Ð¥¤¥Ê¥ê¤ò¼èÆÀ¤¹
+ ¤ë¤Ë¤Ï Python ¤ÎWeb¥µ¥¤¥È¤ò¤´Í÷¤¯¤À¤µ¤¤.
+
+ http://www.python.org/
+
+ ¤â¤·, Python ¤ò¥½¡¼¥¹¤«¤é¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤Î¤Ç¤¢¤ì¤Ð, UNIX Ū
+ OS ¤Ëɸ½à¤Î "./configure ; make install" ¤Ç¤¤¤±¤ë¤Ç¤·¤ç¤¦.
+ "make test" ¤ò¼Â¹Ô¤¹¤ë¤ÈÂô»³¤Î¥Æ¥¹¥È¤¬¥¹¥­¥Ã¥×¤µ¤ì¤ë¤«¤â¤·¤ì
+ ¤Þ¤»¤ó --- µ¤¤Ë¤¹¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó. ¿ʬɬÍפʤ¤¤Ç¤·¤ç¤¦.
+ Mailman ¤ÏËØ¤ó¤É¤Î¥·¥¹¥Æ¥à¤Ç¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤ë, ´ðËÜŪ¤Êµ¡Ç½¤À
+ ¤±¤ò»È¤¦¤è¤¦¤Ë¤·¤Æ¤¤¤Þ¤¹.
+
+ ¤â¤·, ¤¢¤Ê¤¿¤¬»È¤ª¤¦¤È¤¹¤ë¥á¡¼¥ë¥µ¡¼¥Ð(MTA)¤Ë¤Ä¤¤¤Æ
+ README.<yourMTA> ¤¬¤¢¤Ã¤¿¤é, º£ÆÉ¤ó¤Ç¤¯¤À¤µ¤¤. MTA ¤Ë¤è¤Ã¤Æ¤Ï
+ ºÇ¿·¤Îµ¡Ç½(Î㤨¤Ð¥¦¥§¥Ö·Ðͳ¤Ç¥ê¥¹¥È¤òºîÀ®¡¦ºï½ü)¤ò¥·¡¼¥à¥ì¥¹
+ ¤ËÅý¹ç¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹. Î㤨¤Ð Exim ¤È Postfix ¤Ç¤¹. ÆÃÄê¤Î
+ MTA ¤Ë¤Ä¤¤¤Æ¤ÎÀßÄê»ØÆî¤¬¤½¤ì¤é¤Î README ¥Õ¥¡¥¤¥ë¤ËÆþ¤Ã¤Æ¤¤¤Þ¤¹.
+
+
+1. ¥·¥¹¥Æ¥à¥»¥Ã¥È¥¢¥Ã¥×
+
+ ¤³¤Î¥»¥¯¥·¥ç¥ó¤Î¥¹¥Æ¥Ã¥×¤ò¼Â¹Ô¤¹¤ë¤Ë¤Ï root ¤Ë¤Ê¤ëɬÍפ¬¤¢¤ê¤Þ¤¹.
+
+ Mailman ¥½¥Õ¥È¥¦¥§¥¢¤Î¥¤¥ó¥¹¥È¡¼¥ë¤ÎÁ°¤Ë¡¤ÆÃÄê¤Î¥æ¡¼¥¶¤È¥°¥ë¡¼
+ ¥×¤òÄɲÃÅÐÏ¿¤¹¤ë¤³¤È¤Ç¥·¥¹¥Æ¥à¤Î½àÈ÷¤ò¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹.
+
+ - ¿·¤·¤¤¥æ¡¼¥¶ 'mailman' ¤òÅÐÏ¿¤·¤Æ¤¯¤À¤µ¤¤¡¥ÉáÄ̤³¤ì¤Ï
+ /etc/passwd ¥Õ¥¡¥¤¥ë¤ËÄɲ䵤ì¤Þ¤¹¡¥(ÌõÃí:ľÀÜ /etc/passwd
+ ¤òÊÔ½¸¤¹¤ë¤Î¤Ç̵¤¯¡¤adduser/useradd/vipw ¤Ê¤É¤Î¥³¥Þ¥ó¥É¤ò»È¤¤
+ ¤Þ¤¹¡¥) ¤â¤·, mailman¤¬(¾¤ÎÌÜŪ¤Ç)¤¹¤Ç¤Ë»È¤ï¤ì¤Æ¤¤¤¿¤é¡¤Â¾¤Î
+ ̾Á°¤òÁª¤ó¤Ç¡¤²¼¤Î --with-ownername ¥Õ¥é¥°¤Ç»ØÄꤷ¤Þ¤¹.
+
+ - ¿·¤·¤¤¥°¥ë¡¼¥× 'mailman' ¤òÅÐÏ¿¤·¤Þ¤¹¡¥ÉáÄ̤³¤ì¤Ï /etc/group
+ ¥Õ¥¡¥¤¥ë¤Ë Äɲ䵤ì¤Þ¤¹¡¥Mailman ¤Î¥Õ¥¡¥¤¥ë¤Ï 'mailman' ¥°¥ë¡¼
+ ¥×¤Ç¥¤¥ó¥¹¥È¡¼¥ë ¤µ¤ì set-group-id ¥Ó¥Ã¥È¤¬Î©¤Æ¤é¤ì¤Þ¤¹¡¥¤³¤Î
+ ¤³¤È¤Ë¤è¤Ã¤Æ¡¤Web¥Ù¡¼¥¹¤È¥á¡¼¥ë¥Ù¡¼¥¹¤ÎξÊý¤Î¥×¥í¥°¥é¥à¤¬Àµ¤·
+ ¤¤½ñ¤­¤³¤ßµö²Ä¤ò»ý¤Ä¤è¤¦¤Ë¤Ç¤­¤Þ¤¹¡¥(ÌõÃí:¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ¤Ï
+ ¥æ¡¼¥¶¤ÎÅÐÏ¿¤Ë¡Ö´û¤ËÅÐÏ¿¤µ¤ì¤¿¥°¥ë¡¼¥×¡×¤¬É¬Íפʤ³¤È¤¬¤¢¤ê¤Þ
+ ¤¹¡¥¤Þ¤¿¡¤Ê̤Υ·¥¹¥Æ¥à¤Ç¤Ï¡¤¥³¥Þ¥ó¥É¤Ç¥æ¡¼¥¶ÅÐÏ¿¤¹¤ë»þ¤ËƱ»þ
+ ¤Ë¥°¥ë¡¼¥×ÅÐÏ¿¤â¤Ç¤­¤Þ¤¹) ¤â¤·¡¤mailman ¤¬´û¤Ë»È¤ï¤ì¤Æ¤¤¤¿¤é¡¤
+ Ê̤Î̾Á°¤òÁª¤ó¤Ç¡¤²¼¤Î --with-owergroup ¤Ç»ØÄꤷ¤Þ¤¹¡¥
+
+ - ¥¤¥ó¥¹¥È¡¼¥ë¤Î¥Ç¥£¥ì¥¯¥È¥ê¤òºîÀ®¤·¤Þ¤¹ (°Ê²¼¤Îʸ½ñ¤Ç¤Ï
+ $prefix ¤È¸Æ¤Ö). Á´¤Æ¤Î Mailman ¥Õ¥¡¥¤¥ë¤Ï¤³¤Î $prefix ¤Î²¼
+ ¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Þ¤¹. "configure --help" ¤ò¼Â¹Ô¤¹¤ë¤È, ÆÉ¤ß
+ ¼è¤êÀìÍÑ¤ÈÆÉ¤ß½ñ¤­²Äǽ¤Ê¥Õ¥¡¥¤¥ë¤È¤Ëʬ¤±¤Æ¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ëÊý
+ Ë¡¤¬½Ð¤Æ¤­¤Þ¤¹.
+
+ Mailman 2.1 ¤Î¥Ç¥Õ¥©¥ë¥È¤Î¥¤¥ó¥¹¥È¡¼¥ë¥Ç¥£¥ì¥¯¥È¥ê¤Ï
+ /usr/local/mailman ¤Ç¤¹. Mailman 2.1apha °ÊÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï
+ /home/mailman ¤Ç¤·¤¿. ¥Ç¥Õ¥©¥ë¥È¤òÊѹ¹¤¹¤ë¤Ë¤Ï configure ¤Ç
+ --prefix ¥ª¥×¥·¥ç¥ó¤ò»È¤¤¤Þ¤¹ (²¼¤ò»²¾È). Mailman 2.1 °ÊÁ°¤Î
+ ¥Ð¡¼¥¸¥ç¥ó¤«¤é¹¹¿·¤¹¤ë¤Ë¤Ï, ¥¤¥ó¥¹¥È¡¼¥ë¥Ç¥£¥ì¥¯¥È¥ê¤òÊѹ¹¤¹
+ ¤ë¤Î¤Ç̵¤¤¸Â¤ê, --prefix ¤òÀßÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹.
+
+ ¤¢¤Ê¤¿¤Î¥µ¥¤¥È¤Ç /usr/local ¤Ë nosuid ¥ª¥×¥·¥ç¥ó¤¬ÉÕ¤¤¤Æ¥Þ¥¦
+ ¥ó¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¤«Ãí°Õ¤·¤Æ¤¯¤À¤µ¤¤. ¤³¤ì¤¬¤¢¤ë¤È, Mailman ¤Î
+ ¥¤¥ó¥¹¥È¡¼¥ë¤Ë¼ºÇÔ¤·¤Þ¤¹. ¤È¤¤¤¦¤Î¤Ï, ¥»¥­¥å¥ê¥Æ¥£¾å¤ÎÍýͳ¤Ç
+ set-gid ¥×¥í¥°¥é¥à¤ÎÍøÍѤòÁ°Äó¤È¤·¤Æ¤¤¤ë¤«¤é¤Ç¤¹. ¤â¤·, ¤³¤Î
+ ¤è¤¦¤ÊÌäÂ꤬¤¢¤Ã¤¿¤é, ñ½ã¤Ë setgid ¥×¥í¥°¥é¥à¤òÃÖ¤±¤ë¤è¤¦¤Ê
+ ¾ì½ê¤Ë Mailman ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤¯¤À¤µ¤¤.
+
+ ¥¤¥ó¥¹¥È¡¼¥ë¤Î¥Ç¥£¥ì¥¯¥È¥ê¤¬ `mailman' ¥°¥ë¡¼¥×¤ËÀßÄꤵ¤ì¤Æ
+ ¤¤¤ë¤³¤È¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤ (¤¢¤ë¤¤¤Ï --with-groupname ¤Ç»ØÄê
+ ¤·¤è¤¦¤È¤·¤Æ¤¤¤ë¥°¥ë¡¼¥×). ¤½¤·¤Æ, setgid ¥Ó¥Ã¥È¤¬¥»¥Ã¥È¤µ¤ì
+ ¤Æ¤¤¤ë¤³¤È¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤. (¤â¤·, BSD ¥·¥¹¥Æ¥à¤ò»È¤¦¤Ê¤é
+ README.BSD ¤âÆÉ¤ó¤Ç¤¯¤À¤µ¤¤) ¤Þ¤¿, ¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤¬Á´¤Æ¤Î
+ ¥æ¡¼¥¶¤ËÆÉ¤ß¼è¤ê¤È¼Â¹Ô(°Üư)²Äǽ¤Ç¤¢¤ë¤³¤È¤òÊݾڤ·¤¿¤¤¤È»×¤¦
+ ¤Ç¤·¤ç¤¦. °Ê²¼¤Î¥·¥§¥ë¥³¥Þ¥ó¥É¤Ç¤³¤ì¤é¤Î¤³¤È¤¬ÀßÄê¤Ç¤­¤Þ¤¹:
+
+ % cd $prefix
+ % chgrp mailman .
+ % chmod a+rx,g+ws .
+
+ ¤³¤ì¤Ç, Mailman ¥½¥Õ¥È¥¦¥§¥¢¤ò configure ¤·¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë
+ ½àÈ÷¤¬¤Ç¤­¤Þ¤·¤¿.
+
+2. configure ¤òÁö¤é¤»¤ë
+
+ ²¼¤Ë¤¢¤ë¡¤--with-mail-gid ¤È --with-cgi-gid ¤Î¥ª¥×¥·¥ç¥ó¤ËÆÃ¤Ë
+ Ãí°Õ. ¿ʬ¤³¤ì¤¬É¬Íפˤʤê¤Þ¤¹.
+
+ ¤³¤Î¥»¥¯¥·¥ç¥ó¤Ë½ñ¤¤¤Æ¤¢¤ë¼ê½ç¤ò¼Â¹Ô¤¹¤ë´Ö¤Ï, ¤¢¤Ê¤¿¤Ï root ¤Ë
+ ¤Ê¤ë¤Ù¤­¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó. ¼«Ê¬¼«¿È¤Î¥í¥°¥¤¥ó̾¤«, ¾¤Î¥½¥Õ¥È¤ò
+ ¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤È¤­¤Ë»È¤¦¥¢¥«¥¦¥ó¥È¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤. ¤Þ¤¿,
+ mailman ¥æ¡¼¥¶¤Ë¤Ê¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¤¬, ¤½¤¦¤·¤Æ¤â¹½¤¤¤Þ¤»¤ó.
+ ⤷, Á°¤Î¼ê½ç¤ÇºîÀ®¤·¤¿ $prefix ¥Ç¥£¥ì¥¯¥È¥ê¤Î½ñ¤­¹þ¤ßµö²Ä¤ò
+ ÆÀ¤ë¤¿¤á¤Ë¤Ï, ¤½¤Î¥¢¥«¥¦¥ó¥È¤¬ mailman ¥°¥ë¡¼¥×¤Ë½ê°¤·¤Æ¤¤¤ë
+ ɬÍפ¬¤¢¤ê¤Þ¤¹.
+
+ ¥¿¡¼¥²¥Ã¥È¤Î¥¤¥ó¥¹¥È¡¼¥ë¥Ç¥£¥ì¥¯¥È¥ê¤Ë½ñ¤­¹þ¤ß¸¢¸Â¤¬¤¢¤ë¤³¤È¤È,
+ ¤½¤³¤Ë setgid ¥Õ¥¡¥¤¥ë¤òºîÀ®¤Ç¤­¤ë¤³¤È¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤.
+ (NFS ¤ä¾¤Î¥Þ¥¦¥ó¥ÈÊý¼°¤Ç setgid ¤ò¶Ø»ß¤·¤Æ¤¤¤ë¾ì¹ç¤¬¤¢¤ê¤Þ¤¹)
+
+ ¤â¤·, ¾¤Î GNU ¥½¥Õ¥È¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿¤³¤È¤¬¤¢¤ë¤Ê¤é, configure
+ ¥¹¥¯¥ê¥×¥È¤Ë¤Ï¤ª¤Ê¤¸¤ß¤Ç¤·¤ç¤¦. Mailman ¤Î tarball ¤ò³«¤¤¤¿
+ ¥Ç¥£¥ì¥¯¥È¥ê¤Ë cd ¤·¤Æ, configure ¤ò°ú¿ô¤òÉÕ¤±¤º¤Ë¼Â¹Ô¤·¤Æ
+ ¤¯¤À¤µ¤¤.
+
+ % cd mailman-<version>
+ % ./configure
+ % make install
+
+ °Ê²¼¤Î¥ª¥×¥·¥ç¥ó¤Ç Mailman ¤ò¥«¥¹¥¿¥Þ¥¤¥º¤Ç¤­¤Þ¤¹.
+
+ --prefix=<dir>
+ ɸ½àŪ¤Ê GNU configure ¤Î¥ª¥×¥·¥ç¥ó¤Ç Mailman ¤¬¥¤¥ó¥¹
+ ¥È¡¼¥ë¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤ë¥Ù¡¼¥¹¤Î¥Ç¥£¥ì¥¯¥È¥ê¤òÊѹ¹¤·¤Þ¤¹¡¥
+ ¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï $prefix ¤Ï /usr/local/mailman ¤Ç¤¹¡¥¤³¤Î
+ ¥Ç¥£¥ì¥¯¥È¥ê¤Ï¤½¤Î»þÅÀ¤Ç¸ºß¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¤¾å¤Î
+ ¥»¥¯¥·¥ç¥ó£±¤ÇÀâÌÀ¤·¤¿¤è¤¦¤Ë¥»¥Ã¥È¥¢¥Ã¥×¤µ¤ì¤Æ¤¤¤Ê¤±¤ì
+ ¤Ð¤Ê¤ê¤Þ¤»¤ó¡¥
+
+ --exec-prefix=<dir>
+ ɸ½àŪ¤Ê GNU configure ¤Î¥ª¥×¥·¥ç¥ó¤Ç¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë
+ °Í¸¤·¤¿¥Ð¥¤¥Ê¥ê¤Î¥¤¥ó¥¹¥È¡¼¥ë¥Ç¥£¥ì¥¯¥È¥ê¤ò»ØÄê¤Ç¤­¤Þ¤¹¡¥
+
+ --with-var-prefix=<dir>
+ ¸ò´¹²Äǽ¤Ê¥Ç¡¼¥¿¤ò prefix ¤ä exec-prefix ¤ÎÂå¤ï¤ê¤Ë
+ <dir> ¤Î²¼¤ËÊݸ¤·¤Þ¤¹.
+
+ --with-python=</path/to/python>
+ wrapper ¥×¥í¥°¥é¥à¤Ç»ÈÍѤ¹¤ë Python ¥¤¥ó¥¿¥×¥ê¥¿¤òÊѹ¹
+ ¤·¤Æ»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡¥¥Ç¥Õ¥©¥ë¥È¤Ï¥·¥§¥ë¤Î $PATH
+ ¤ÎÃæ¤ÇºÇ½é¤Ë¸«¤Ä¤«¤Ã¤¿¤â¤Î¤ò»È¤¤¤Þ¤¹¡¥¥³¥Þ¥ó¥É¥é¥¤¥ó¤«
+ ¤é¥¹¥¯¥ê¥×¥È¤ò¼Â¹Ô¤¹¤ëºÝ¤Ë¤Ï¡¤ $PATH ¤ÎÃæ¤ÇºÇ½é¤Ë¸«¤Ä¤«¤Ã
+ ¤¿ Python ¤Î¥¤¥ó¥¿¥×¥ê¥¿¤¬¾ï¤Ë»È¤ï¤ì¤Þ¤¹¡¥
+
+ --with-username=<username-or-uid>
+ `mailman' ¤Ç¤Ê¤¤¥æ¡¼¥¶Ì¾¤ò¥Ç¥Õ¥©¥ë¥È¤Ë»È¤¦¾ì¹ç¤Ë»ØÄê
+ ¤¹¤ë. `mailman' ¤È¤¤¤¦¥æ¡¼¥¶Ì¾¤¬´û¤ËÊ̿ͤˤè¤Ã¤Æ»ÈÍѤµ
+ ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Î¤ß»È¤Ã¤Æ¤¯¤À¤µ¤¤. ¤³¤Î¥¹¥¤¥Ã¥Á¤ÏÀ°¿ô¤Î
+ ¥æ¡¼¥¶ID ¤Þ¤¿¤Ï¥æ¡¼¥¶Ì¾¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹. $prefix
+ ¥Ç¥£¥ì¥¯¥È¥ê¤¬¤³¤Î¥æ¡¼¥¶¤Î½êÍ­¤Ç¤¢¤ë¤³¤È¤ò³Îǧ¤·¤Æ¤¯¤À
+ ¤µ¤¤.
+
+ --with-groupname=<groupname-or-gid>
+ `mailman' ¤Ç¤Ê¤¤¥°¥ë¡¼¥×̾¤ò¥Ç¥Õ¥©¥ë¥È¤Ë»È¤¦¾ì¹ç¤Ë»ØÄê
+ ¤·¤Þ¤¹. `mailman' ¤È¤¤¤¦¥°¥ë¡¼¥×̾¤¬´û¤Ë»È¤ï¤ì¤Æ¤¤¤ë
+ ¾ì¹ç¤Ë¸Â¤Ã¤Æ»È¤Ã¤Æ¤¯¤À¤µ¤¤. ¤³¤Î¥¹¥¤¥Ã¥Á¤ÏÀ°¿ô¤Î¥°¥ë¡¼
+ ¥×ID ¤Þ¤¿¤Ï¥°¥ë¡¼¥×̾¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹. $prefix
+ ¥Ç¥£¥ì¥¯¥È¥ê¤¬¤³¤Î¥°¥ë¡¼¥×¤Î½êÍ­¤Ç¤¢¤ë¤³¤È¤ò³Îǧ¤·¤Æ¤¯
+ ¤À¤µ¤¤.
+
+ --with-mail-gid=<group-or-groups>
+ mail wrapper ¤ò²ð¤·¤Æ¥¹¥¯¥ê¥×¥È¤ò¼Â¹Ô¤¹¤ëºÝ¤Î¥°¥ë¡¼¥×¤ò
+ »ØÄꤷ¤Þ¤¹¡¥<group-or-groups> ¤Ï¡¤£±¸Ä¤Þ¤¿¤ÏÊ£¿ô¤ÎÀ°¿ô
+ ¤Î¥°¥ë¡¼¥×ID ¤Ç¤â¡¤¥°¥ë¡¼¥×¤Î̾Á°¤Ç¤¢¤Ã¤Æ¤â²Ä¤Ç¤¹¡¥¥ê¥¹
+ ¥È¤ÎºÇ½é¤ÎÃͤǼºݤ˸ºß ¤¹¤ë¥°¥ë¡¼¥×¤ÎÃͤ¬»ÈÍѤµ¤ì¤Þ¤¹¡¥
+ ¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¤¤³¤ì¤Ï `mailman other mail daemon' ¤Î
+ ¥ê¥¹¥È¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡¥
+
+ ¤³¤ì¤Ï¹âÅ٤˥·¥¹¥Æ¥à°Í¸¤Ç¤¢¤ê¡¤Àµ¤·¤¤ÃͤòÃΤäƤª¤¯É¬
+ Íפ¬¤¢¤ê¤Þ¤¹¡¥¤È¤¤¤¦¤Î¤Ï¡¤¥°¥ë¡¼¥×ID¤¬mail wrapper ¥×¥í
+ ¥°¥é¥à¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Æ¥»¥­¥å¥ê¥Æ¥£¤ò¹â¤á¤ë¤«¤é¤Ç¤¹¡¥
+ Sendmail ¤ò»È¤Ã¤Æ¤¤¤ë¥·¥¹¥Æ¥à¤Ç¤Ï¡¤ sendmail.cf ¤Ë
+ "DefaultUser" ¤ò»È¤Ã¤Æ sendmail ¥×¥í¥»¥¹¤Î gid ¤¬ ÀßÄê
+ ¤µ¤ì¤Æ¤¤¤Þ¤¹¡¥(¤â¤·¡¤¥³¥á¥ó¥È¥¢¥¦¥È¤µ¤ì¤Æ¤¤¤¿¤é¡¤¤½¤ì¤Ç
+ ¤â¥Ç¥Õ¥©¥ë¥È¤ò¼¨¤·¤Æ¤¤¤ë¤«¤â¤·¤ì¤Þ¤»¤ó)
+
+ ¤³¤Î¥¹¥¤¥Ã¥Á¤ÎÀµ¤·¤¤ÃͤòÃΤ뤿¤á¤Ë, »ÈÍѤ·¤Æ¤¤¤ë MTA ¤Î
+ ÀâÌÀ¤äÀßÄê¥Õ¥¡¥¤¥ë¤ò¥Á¥§¥Ã¥¯¤·¤Æ¤¯¤À¤µ¤¤.
+
+ --with-cgi-gid=<group-or-groups>
+ CGI wrapper ¤ò²ð¤·¤Æ¥¹¥¯¥ê¥×¥È¤ò¼Â¹Ô¤¹¤ëºÝ¤Î¥°¥ë¡¼¥×¤ò
+ »ØÄꤷ¤Þ¤¹¡¥ <group-or-groups>¤Ï¡¤£±¸Ä¤Þ¤¿¤ÏÊ£¿ô¤ÎÀ°¿ô
+ ¤Î¥°¥ë¡¼¥×ID ¤Ç¤â¡¤¥°¥ë¡¼¥×¤Î̾Á°¤Ç¤¢¤Ã¤Æ¤â²Ä¤Ç¤¹¡¥¥ê¥¹
+ ¥È¤ÎºÇ½é¤ÎÃͤǼºݤ˸ºß ¤¹¤ë¥°¥ë¡¼¥×¤ÎÃͤ¬»ÈÍѤµ¤ì¤Þ¤¹¡¥
+ ¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¤¤³¤ì¤Ï `www www-data nobody' ¤Î ¥ê¥¹¥È
+ ¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡¥
+
+ ¤³¤ÎÃÍ¤Ï Web ¥µ¡¼¥Ð¤ÎÀßÄê¤Ë°Í¸¤·¤Þ¤¹¡¥Àµ¤·¤¤ÃͤòÃΤÃ
+ ¤Æ¤ª¤¯É¬Íפ¬¤¢¤ê¤Þ¤¹¡¥ ¤È¤¤¤¦¤Î¤Ï¡¤¥°¥ë¡¼¥×ID¤¬CGI wrapper
+ ¥×¥í¥°¥é¥à¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Æ¥»¥­¥å¥ê¥Æ¥£¤ò¹â¤á¤ë¤«¤é¤Ç
+ ¤¹¡¥¤³¤ì¤¬°ã¤Ã¤Æ¤¤¤ë¤È Mailman CGI ¥¹¥¯¥ê¥×¥È¤Ï ư¤­¤Þ
+ ¤»¤ó¡¥
+
+ ¤â¤· Apache ¤ò»È¤Ã¤Æ¤¤¤ì¤Ð¡¤httpd.conf ¤Ë½ñ¤«¤ì¤Æ¤¤¤ë
+ `Group' ¥ª¥×¥·¥ç¥ó ¤ÎÃͤò¥Á¥§¥Ã¥¯¤·¤Æ¤¯¤À¤µ¤¤¡¥
+
+ --with-cgi-ext=<extension>
+ cgi ¥×¥í¥°¥é¥à¤Î³ÈÄ¥»Ò¤ò»ØÄꤷ¤Þ¤¹¡¥$PREFIX/cgi-bin ¤Ë
+ ÃÖ¤«¤ì¤¿ CGI wrapper ¤Ï¤³¤Î³ÈÄ¥»Ò¤ò»ý¤Á¤Þ¤¹¡¥(Web¥µ¡¼¥Ð
+ ¤Ë¤è¤Ã¤Æ¤Ï ³ÈÄ¥»Ò¤¬É¬ÍפǤ¹) <extension> ¤Ë¤Ï . (dot)
+ ¤òÆþ¤ì¤Æ¤ª¤¯¤³¤È¡¥
+
+ --with-gcc=no
+ gcc ¤¬¸«¤Ä¤«¤Ã¤Æ¤â»È¤¤¤Þ¤»¤ó¡¥`cc' ¤¬ $PATH ¤Ë̵¤¤¤È¤¤
+ ¤±¤Þ¤»¤ó¡¥
+
+3. ¥¤¥ó¥¹¥È¡¼¥ë¤Î¥Á¥§¥Ã¥¯
+
+ "make install" ¤ò¼Â¹Ô¤·¤¿¸å, Àµ¤·¤¤¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤È¥°¥ë¡¼¥×½ê
+ Í­¸¢¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¤³¤È¤ò check_perms ¥¹¥¯¥ê¥×¥È¤Ç³Î¤«¤á¤Æ¤¯
+ ¤À¤µ¤¤.
+
+ - cd ¤Ç $prefix ¤Ø°Üư
+
+ - bin/check_perms ¤ò¼Â¹Ô
+
+ ¥½¡¼¥¹¥Ç¥£¥ì¥¯¥È¥ê¤Ç bin/check_perms ¤ò¼Â¹Ô¤·¤è¤¦¤È¤·¤Ê¤¤¤Ç¤¯
+ ¤À¤µ¤¤. ¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿ (¤Ä¤Þ¤ê, $prefix) ¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Î¤ß
+ ¼Â¹Ô²Äǽ¤Ç¤¹.
+
+ ¤³¤ì¤¬ÌäÂê¤òÊó¹ð¤·¤Ê¤±¤ì¤Ð, ¤¢¤Ê¤¿¤Î¥¤¥ó¥¹¥È¡¼¥ë¤ÏÀµ¤·¤¯ÀßÄꤵ
+ ¤ì¤Æ¤¤¤¿²ÄǽÀ­¤¬¹â¤¤ <wink> ¤Ç¤¹. ¤â¤·, ÌäÂêÅÀ¤¬Êó¹ð¤µ¤ì¤¿¤é,
+ ¼ê¤Ç½¤Àµ¤¹¤ë¤«, ¤â¤¦°ìÅÙ¥¤¥ó¥¹¥È¡¼¥ë¤ò¤ä¤ê¤Ê¤ª¤¹¤«, check_perms
+ ¤ò»È¤Ã¤Æ(¿ʬ, °ìÈÖ´Êñ)½¤Àµ¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹.
+
+ - ¥¤¥ó¥¹¥È¡¼¥ë¤ò¹Ô¤Ã¤¿¥æ¡¼¥¶ ($prefix ¤Î¥Õ¥¡¥¤¥ë¤Î½êÍ­¸¢¤ò»ý¤Ä
+ ¥æ¡¼¥¶) ¤Ë¤Ê¤ë¤«, root ¤Ë¤Ê¤ê¤Þ¤¹.
+
+ - bin/check_perms -f ¤ò¼Â¹Ô¤¹¤ë.
+
+ - ¥¨¥é¡¼¤ÎÊó¹ð¤¬¤Ê¤¯¤Ê¤ë¤Þ¤Ç, ¾å¤Î¼ê½ç¤ò·«¤êÊÖ¤¹!
+
+4. ºÇ½ª¥·¥¹¥Æ¥à¥»¥Ã¥È¥¢¥Ã¥×
+
+ ¤ª¤á¤Ç¤È¤¦¡ªMailman ¥½¥Õ¥È¥¦¥§¥¢¤Î¥¤¥ó¥¹¥È¡¼¥ë¤¬´°Î»¤·¤Þ¤·¤¿¡¥
+ ¤·¤«¤·¡¤¼ÂºÝ¤ËÁ´¤Æ¤ò¤¦¤Þ¤¯Æ°¤«¤¹¤Ë¤Ï¡¤Mailman ¤ò Web¥µ¡¼¥Ð¤È
+ Mail¥·¥¹¥Æ¥à¤Î ξÊý¤ËÀܳ¤·¤Ê¤¤¤È¤¤¤±¤Þ¤»¤ó¡¥
+
+ - ¤â¤·¡¤MTA¤ÈWeb¥µ¡¼¥Ð¤òÊ̤Υޥ·¥ó¤Çư¤«¤·¤Æ¡¤Mailman ¤ò NFS
+ ·Ðͳ¤Ç ¶¦Í­¤·¤¿¤¤¤È¹Í¤¨¤Æ¤¤¤¿¤é¡¤¤½¤Î£²¤Ä¤Î¥Þ¥·¥ó¤Î»þ·×¤¬Æ±´ü
+ ¤·¤Æ¤¤¤ë¤³¤È¤ò ³Î¤«¤á¤Æ¤¯¤À¤µ¤¤¡¥¤³¤Î¼ê¤Î´Ä¶­¤Ç¤Ï¡¤
+ Mailman/LockFile.py ¤ËÄêµÁ¤µ¤ì¤¿ CLOCK_SLOP ¤È¤¤¤¦Äê¿ô¤ò»È¤Ã¤Æ¡¤
+ »þ·×¤Î¤º¤ì¤òÊä½þ¤·¤¿¥Õ¥¡¥¤¥ë¥í¥Ã¥¯µ¡¹½ ¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡¥
+
+ - Web¥µ¡¼¥Ð¤ÎÀßÄê¤Ç $prefix/cgi-bin ¤Ë CGI ¥¹¥¯¥ê¥×¥È¤Î¼Â¹Ôµö²Ä¤ò
+ Í¿¤¨¤Æ¤¯¤À¤µ¤¤¡¥¤³¤ì¤ò¤ä¤ë¤Ë¤Ï root ¤Ë¤Ê¤ëɬÍפ¬¤¢¤ë¤Ç¤·¤ç¤¦¡¥
+
+ ÀßÄê¥Õ¥¡¥¤¥ë (httpd.conf) ¤Ë½ñ¤­²Ã¤¨¤ë¹Ô¤Ï°Ê²¼¤Î¤è¤¦¤Ê¤â¤Î¤Ë¤Ê
+ ¤ë¤Ï¤º¤Ç¤¹¡¥ (¤â¤Á¤í¤ó¡¤$prefix ¤Î¤È¤³¤í¤Ï¼ÂºÝ¤ÎÀäÂХѥ¹¥Ç¥£¥ì
+ ¥¯¥È¥ê¤Ë¤·¤Æ¤¯¤À¤µ¤¤)
+
+ Exec /mailman/* $prefix/cgi-bin/*
+ Ëô¤Ï¡¤
+ ScriptAlias /mailman/ $prefix/cgi-bin/
+
+ ¾Ü¤·¤¯¤Ï¡¤¼«Ê¬¤¬»È¤Ã¤Æ¤¤¤ë Web¥µ¡¼¥Ð¤ÎÀâÌÀ½ñ¤òÆÉ¤ó¤Ç¤¯¤À¤µ¤¤¡¥
+
+ - CGI¥¹¥¯¥ê¥×¥È¤ò¼Â¹Ô¤¹¤ë ¥æ¡¼¥¶ID¤¬ `mailman' ¥°¥ë¡¼¥×¤ËÆþ¤Ã¤Æ
+ ¤¤*¤Ê¤¤*¤³¤È¤ò¤è¤¯³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡¥¤Ç¤Ê¤¤¤È¡¤Èó¸ø³«¤ÎÊݸ½ñ
+ ¸Ë(private archive) ¤¬Ã¯¤Ë¤Ç¤â¸«¤é¤ì¤Æ¤·¤Þ¤¤¤Þ¤¹¡¥
+
+ - Mailman, Python, GNU ¤Î¥í¥´¤òWeb¥µ¡¼¥Ð¤Î¥¢¥¯¥»¥¹²Äǽ¤Ê¤È¤³¤í¤Ë
+ ¥³¥Ô¡¼¤·¤Æ¤¯¤À¤µ¤¤¡¥Î㤨¤Ð Apache¤Î¾ì¹ç¡¤²èÁü¥Õ¥¡¥¤¥ë¤òÆþ¤ì¤Æ
+ ¤ª¤¯¤Î¤Ë 'icons' ¥Ç¥£¥ì¥¯¥È¥ê¤¬ÍѰդµ¤ì¤Æ¤¤¤ë¤Ï¤º¤Ç¤¹¡¥Îã:
+
+ % $prefix/icons/*.{jpg,png} /path/to/apache/icons
+
+ $prefix/Mailman/mm_cfg.py ¤Ë¥í¥´¤Î¥Ù¡¼¥¹¥Ç¥£¥ì¥¯¥È¥ê¤ò½ñ¤¤¤¿
+ ¹Ô¤òÄɲ䷤Ƥ¯¤À¤µ¤¤¡¥Î㤨¤Ð¡§
+
+ IMAGE_LOGOS = '/images/'
+
+ IMAGE_LOGOS ¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï '/icons/' ¤Ç¤¹¡¥Defaults.py.in ¤Ë
+ ½ñ¤«¤ì¤¿¥³¥á¥ó¥È¤òÆÉ¤ó¤Ç¤¯¤À¤µ¤¤¡¥
+
+ - Pipermail ¤Î¸ø³«¥á¡¼¥ê¥ó¥°¥ê¥¹¥ÈÊݸ½ñ¸Ë¤ò»²¾È¤Ç¤­¤ë¤è¤¦¤Ë
+ Web ¥µ¡¼¥Ð¤ò ÀßÄꤷ¤Æ¤¯¤À¤µ¤¤¡¥
+
+ Î㤨¤Ð Apache ¤Î¾ì¹ç¡§
+
+ Alias /pipermail/ $varprefix/archives/public/
+
+ ¤³¤³¤Ç, $varprefix ¤ÏÄ̾ï¤Ï $prefix ¤ÈƱ¤¸¤Ç, --with-var-prefix
+ ¥ª¥×¥·¥ç¥ó¤òÉÕ¤±¤Æ configure ¤·¤¿¾ì¹ç¤Ë¤Ï¤½¤ÎÃͤȤʤê¤Þ¤¹.
+
+ ¾Ü¤·¤¯¤Ï¡¤¤´ÍøÍѤΠWeb ¥µ¡¼¥Ð¤ÎÀâÌÀ½ñ¤òÄ´¤Ù¤Æ¤¯¤À¤µ¤¤¡¥ ¤Þ¤¿¡¤
+ ¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ç¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤ò¤¿¤É¤ë¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë
+ Web ¥µ¡¼¥Ð¤òÀßÄꤷ¤Æ¤¯¤À¤µ¤¤¡¥¤Ç¤Ê¤¤¤È¡¤Pipermail ¤Î½ñ¸Ë¤Ë¥¢¥¯
+ ¥»¥¹¤Ç¤­¤Þ¤»¤ó¡¥Apache ¤Î¥æ¡¼¥¶¤Ï FollowSymLinks ¥ª¥×¥·¥ç¥ó¤ò
+ Ä´¤Ù¤Æ¤¯¤À¤µ¤¤¡¥
+
+ ¤Þ¤¿, ¤â¤·¸ø³«Êݸ½ñ¸Ë¤ò¹ñºÝ²½¤·¤¿¤¤¤Î¤Ç¤¢¤ì¤Ð, Pipermail
+ ¥Ç¥£¥ì¥¯¥È¥ê¤Î¥Ç¥Õ¥©¥ë¥Èʸ»ú½¸¹ç¤Î»Ø¼¨¤ò¥ª¥Õ¤Ë¤·¤¿Êý¤¬¤è¤¤¤«¤â
+ ¤·¤ì¤Þ¤»¤ó. ¤Ç¤Ê¤¤¤È, ¿¸À¸ì¤ÎÊݸ½ñ¸Ë¤ÏÀµ¤·¤¯¸«¤ë¤³¤È¤¬¤Ç¤­¤Ê
+ ¤¤¤Ç¤·¤ç¤¦. Apache ¤Îɸ½à¤Î¥¤¥ó¥¹¥È¡¼¥ë¤Ë¤Ä¤¤¤Æ¤ÎÀßÄêÎã¤Ï:
+
+ <Directory "/usr/local/mailman/archives/public/">
+ AddDefaultCharset Off
+ </Directory>
+
+ ¤³¤³¤Ç, Web¥µ¡¼¥Ð¤òºÆµ¯Æ°¤·¤Æ¤¯¤À¤µ¤¤¡¥
+
+ - crontab ¤ÎÀßÄê¤ò¤·¤Þ¤¹¡¥Mailman ¤ÏÂô»³¤Î cron ¥¸¥ç¥Ö¤ò»È¤Ã¤Æ¡¤
+ ´ðËÜŪ¤Êµ¡Ç½¤ò¼Â¸½¤·¤Æ¤¤¤Þ¤¹. °ÊÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤«¤é¹¹¿·¤·¤Æ¤¤¤ë
+ ¾ì¹ç¤Ë¤Ï, ¿·¤·¤¤ crontab ¤òÆþ¤ì¤ëɬÍפ¬½Ð¤Æ¤­¤Þ¤¹. ¤·¤«¤·, ¥µ¥¤
+ ¥È¤ÇÊ£¿ô¤Î Mailman ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¤ÏÃí°Õ¤·¤Æ¤¯¤À
+ ¤µ¤¤. crontab ¤òÊѹ¹¤¹¤ë¤ÈÊ¿¹Ô¤·¤¿ Mailman ¤ò²õ¤¹¤«¤â¤·¤ì¤Þ¤»¤ó.
+
+ ¤¢¤Ê¤¿¤Î»È¤¦ crontab ¤Ç -u ¥ª¥×¥·¥ç¥ó¤ò»È¤¨¤ë¤Ê¤é, ¼¡¤ÎÎã¤Î¤è¤¦¤Ë
+ root ¤Ë¤Ê¤Ã¤Æ¼Â¹Ô¤·¤Þ¤¹. ¼¡¤Î¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤Æ
+ $prefix/cron/crontab.in ¤ò crontab ¤ËÅÐÏ¿¤·¤Æ¤¯¤À¤µ¤¤.
+
+ # cd $prefix/cron
+ # crontab -u mailman crontab.in
+
+ ¤â¤·, --with-username ¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ¤¤¤¿¤é, -u ¤Î°ú¿ô¤Ë¤Ï,
+ mailman ¤ÎÂå¤ï¤ê¤Ë¤½¤Î¥æ¡¼¥¶Ì¾¤ò»È¤¤¤Þ¤¹. ¤â¤·, crontab ¤¬
+ -u ¥ª¥×¥·¥ç¥ó¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤±¤ì¤Ð, ¼¡¤Î¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤.
+
+ # cd $prefix/cron
+ # su - mailman
+ % crontab crontab.in
+
+ - Mailman ¤Î qrunner ¥Ç¡¼¥â¥ó¤ò $prefix ¥Ç¥£¥ì¥¯¥È¥ê¤Ç¼¡¤Î¤è¤¦¤Ë
+ ¥³¥Þ¥ó¥É¼Â¹Ô¤·¤Æµ¯Æ°¤·¤Þ¤¹.
+
+ % bin/mailmanctl start
+
+ ¥·¥¹¥Æ¥à¤ò¥ê¥Ö¡¼¥È¤¹¤ë¤¿¤Ó¤Ë Mailman ¤òµ¯Æ°¤·¤¿¤±¤ì¤Ð, ¤½¤·¤Æ,
+ OS ¤¬ chkconfig ¥³¥Þ¥ó¥É¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ì¤Ð (Î㤨¤Ð Red Hat
+ ¤ä Mandrake ¤Î Linux) ¼¡¤Î¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤. (Mailman ¤Î
+ ¥¤¥ó¥¹¥È¡¼¥ë¥Ç¥£¥ì¥¯¥È¥ê¤«¤é, root ¤Ë¤Ê¤Ã¤Æ)
+
+ # cp scripts/mailman /etc/init.d/mailman
+ # chkconfig --add mailman
+
+ (/etc/init.d ¤Ï¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ¤Ï /etc/rc.d/init.d ¤«¤â¤·¤ì¤Þ¤»¤ó)
+
+ Debian ¤Ç¤Ï, chkconfig ¤ÎÂå¤ï¤ê¤Ë¼¡¤Î¤è¤¦¤Ë¤·¤Þ¤¹.
+
+ # update-rc.d mailman defaults
+
+ chkconfig ¤ò¥µ¥Ý¡¼¥È¤·¤Ê¤¤ UNIX ¤Ç¤Ï, scripts/mailman ¤ò¥³¥Ô¡¼¤·¤Æ
+
+ # cp scripts/mailman /etc/init.d/mailman
+
+ ¼¡¤Î¤è¤¦¤Ë¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤òÄ¥¤ê¤Þ¤¹.
+
+ # cd /etc/rc.d/rc0.d
+ # ln -s ../init.d/mailman K12mailman
+ # cd ../rc1.d
+ # ln -s ../init.d/mailman K12mailman
+ # cd ../rc2.d
+ # ln -s ../init.d/mailman S98mailman
+ # cd ../rc3.d
+ # ln -s ../init.d/mailman S98mailman
+ # cd ../rc4.d
+ # ln -s ../init.d/mailman S98mailman
+ # cd ../rc5.d
+ # ln -s ../init.d/mailman S98mailman
+ # cd ../rc6.d
+ # ln -s ../init.d/mailman K12mailman
+
+ - Defaults.py ¤ÎÃæ¤Î DEFAULT_EMAIL_HOST ¤È DEFAULTS_URL_HOST ¤ò
+ ¥Á¥§¥Ã¥¯¤·¤Æ¤¯¤À¤µ¤¤. Êѹ¹¤¬É¬Íפʾì¹ç¤Ï mm_cfg.py ¤Ë½ñ¤­¤Þ¤¹.
+ ¤Þ¤¿, ¤É¤Á¤é¤«¤ÎÃͤòÊѹ¹¤·¤¿¤È¤­¤Ë¤Ï, mm_cfg.py ¤ÎÊѹ¹¤Î¸å¤Ë,
+ ¼¡¤Î¤è¤¦¤ËÄɲ䷤Ƥ¯¤À¤µ¤¤.
+
+ add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)
+
+ - "¥µ¥¤¥ÈÁ´ÂΤÎ" ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤òºîÀ®¤·¤Þ¤¹. ¤³¤ì¤Ï, ¥Ñ¥¹¥ï¡¼¥É
+ ¤Î³Ð¤¨¤òÁ÷¿®¤¹¤ë¤È¤­¤ÎÁ÷¿®¼Ô¤ËÀßÄꤵ¤ì¤Þ¤¹. Ä̾ï, ¤³¤ì¤Ï mailman
+ ¤È¤¤¤¦Ì¾Á°¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ë¤·¤Þ¤¹¤¬, ¤â¤·Êѹ¹¤¬É¬Íפʤé,
+ mm_cfg.py ¤Ë MAILMAN_SITE_LIST ¤òÀßÄꤷ¤Þ¤¹.(²¼¤ò»²¾È)
+
+ % bin/newlist mailman
+
+ ÆþÎÏÍ×µá¤Ë½¾¤Ã¤ÆÉ¬Í×»ö¹à¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤. README ¤Ë¤â¾ðÊó¤¬
+ ¤¢¤ê¤Þ¤¹.
+
+ - ¤¢¤Ê¤¿¤Ï mailman ¥ê¥¹¥È¤ËÆþ²ñ¤·¤Æ¤¯¤À¤µ¤¤.
+
+5. Mailman ¤Î¥«¥¹¥¿¥Þ¥¤¥º
+
+ °Ê²¼¤Îºî¶È¤Ï¾å¤ÎÂè2Àá¤Ç Mailman ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿¤È¤­¤Î¥æ¡¼¥¶¤Ç
+ ¤ª¤³¤Ê¤¦É¬Íפ¬¤¢¤ê¤Þ¤¹.
+
+ - $prefix/Mailman/Defaults.py ¤Ë¤Ï, ¥¤¥ó¥¹¥È¡¼¥ë¤Î¤È¤­¤Î¥Ç¥Õ¥©¥ë¥È
+ ¤¬, Âô»³µ­½Ò¤µ¤ì¤Æ¤¤¤Þ¤¹. ¤â¤·, ¤½¤Î¤¦¤Á¤Î¤É¤ì¤«¤¬´Ö°ã¤Ã¤Æ¤¤¤ì¤Ð
+¡¡¡¡¡¡$prefix/Mailman/mm_cfg.py ¤Ç¾å½ñ¤­¤·¤Æ¤¯¤À¤µ¤¤. Defaults.py ¤ò
+ Êѹ¹¤·¤Ê¤¤¤è¤¦¤Ë! Defaults.py ¤Ë½ñ¤¤¤Æ¤¢¤ë¥³¥á¥ó¥È¤Ë¾Ü¤·¤¯½ñ¤«¤ì
+ ¤Æ¤¤¤Þ¤¹. ¥ê¥¹¥È¤¬ºîÀ®¤µ¤ì¤Æ¤·¤Þ¤¦¤È, ¤½¤ì¤é¤ÎÊѹ¹¤Ï¸ú²Ì¤¬Ìµ¤¯
+ ¤Ê¤ê¤Þ¤¹. ¤½¤Î»þÅÀ¤«¤é¤Ï, ¥ê¥¹¥È¤ÎÀßÄêÊѹ¹¤Ï¥¦¥§¥Ö¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹
+ ¤ò»È¤¦¤«, bin/withlist ¤Þ¤¿¤Ï bin/config_list ¤Î¥³¥Þ¥ó¥É¹Ô
+ ¥¹¥¯¥ê¥×¥È¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤.
+
+ ¥¤¥ó¥¹¥È¡¼¥ë¤Î²áÄø¤Ç¤Ï´û¸¤Î mm_cfg.py ¤ò¾å½ñ¤­¤·¤Þ¤»¤ó.
+ ¤³¤Î¤¿¤á, ¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï¼«Í³¤ËÊѹ¹¤ò²Ã¤¨¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹.
+
+ Ãí°Õ: HOME_DIR ¤È MAILMAN_DIR ¤òÊѹ¹¤·¤Ê¤¤¤³¤È. ¤³¤ì¤é¤Ï,
+ configure ¥¹¥¯¥ê¥×¥È¤Ç¼«Æ°Åª¤ËÀßÄꤵ¤ì¤Þ¤¹.
+
+ - ¼¡¤Î¥³¥Þ¥ó¥É¤Ç¥µ¥¤¥È¥Ñ¥¹¥ï¡¼¥É¤òÀßÄꤹ¤ë.
+
+ % $prefix/bin/mmsitepass <your-site-password>
+
+ ¤³¤Î¥Ñ¥¹¥ï¡¼¥É¤Ï¸Ä¿Í¥æ¡¼¥¶¤ä¥ê¥¹¥È´ÉÍý¼Ô¤Î¥Ñ¥¹¥ï¡¼¥É¤¬É¬ÍפÊ
+ ¤È¤­¤Ë¤Ï¤¤¤Ä¤Ç¤â»È¤¨¤Þ¤¹. ¤Ä¤Þ¤ê, ¥µ¥¤¥È´ÉÍý¼Ô¤Ë¤ÏɬÍפ¬¤¢¤ì
+ ¤Ð, ¤³¤ì¤é¤Î¤³¤È¤òÄ´À°¤¹¤ëǽÎϤ¬Í¿¤¨¤é¤ì¤Þ¤¹.
+
+ ¤Þ¤¿, "¥ê¥¹¥ÈºîÀ®" ¤ÎÌò³ä¤ò»ý¤¿¤»¤¿¥µ¥¤¥ÈÁ´ÂÎÍѤΥѥ¹¥ï¡¼¥É
+ ¤òºîÀ®¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹. (¤³¤ì¤Ï, ¥µ¥¤¥È´ÉÍý¼Ô°Ê³°¤Î¤À¤ì¤«¤Ë
+ ¥¦¥§¥Ö·Ðͳ¤Ç¥ê¥¹¥È¤òºîÀ®¤·¤¿¤êºï½ü¤·¤¿¤ê¤µ¤»¤¿¤¤¤È¤­¤Ë»È¤¤
+ ¤Þ¤¹.) -c ¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤È¤³¤ì¤¬¤Ç¤­¤Þ¤¹.
+
+6. ¤µ¤¢, »Ï¤á¤è¤¦
+
+ README ¥Õ¥¡¥¤¥ë¤Ë¤Ï "½é¤á¤Æ¥ê¥¹¥È¤òºîÀ®¤¹¤ë" ¤È¤¤¤¦¤È¤³¤í¤Ë,
+ ºÇ½é¤Î¥Æ¥¹¥È¥ê¥¹¥È¤òºîÀ®¤¹¤ëÊýË¡¤¬½ñ¤¤¤Æ¤¢¤ê¤Þ¤¹.
+
+7. ¥È¥é¥Ö¥ë¤ÈÂкö
+
+ ¤â¤·¡¤Mailman ¤Î¼Â¹Ô¤ÇÌäÂ꤬ȯÀ¸¤·¤¿¤é¡¤¤Þ¤º°Ê²¼¤Î¡Ö°ìÈÌŪ¤Ê
+ ÌäÂê¡×¤Î¥»¥¯¥·¥ç¥ó¤ò¥Á¥§¥Ã¥¯¤·¤Þ¤·¤ç¤¦¡¥¤â¤·¡¤ÌäÂ꤬¤½¤³¤Ë´Þ
+ ¤Þ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¤FAQ ¥Õ¥¡¥¤¥ë¤È¥ª¥ó¥é¥¤¥ó¤Î FAQ Wizard ¤ò
+ ¥Á¥§¥Ã¥¯¤·¤Æ¤¯¤À¤µ¤¤¡¥¤½¤ì¤«¤é¡¤¥·¥¹¥Æ¥à¤Î syslog ¤È,
+ $prefix/logs/error ¥Õ¥¡¥¤¥ë¤Ë¥¨¥é¡¼¤¬Æþ¤Ã¤Æ¤¤¤Ê¤¤¤«¤â¥Á¥§¥Ã¥¯
+ ¤·¤Þ¤·¤ç¤¦¡¥
+
+ ¤¢¤Ê¤¿¤Î¥Þ¥·¥ó¤Ç¤Î syslog ¤Î½êºß¤Ï¥Þ¥·¥ó¤Ë¤è¤Ã¤ÆÊѤï¤ê¤Þ¤¹¡¥
+ /var/log/maillog ¤Ë¤¢¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡¥/var/log/sylog ¤Î²ÄǽÀ­
+ ¤â¤¢¤ê¤Þ¤¹¡¥Â¿¤¯¤Î¥Þ¥·¥ó¤Ç¤Ï /var/log ¤ÎÂå¤ï¤ê¤Ë /adm/log ¤Ë
+ syslog ¥Õ¥¡¥¤¥ë¤¬½»¤ßÃ夤¤Æ¤¤¤Þ¤¹¡¥
+
+ ¤â¤·¡¤¥¨¥é¡¼¤ËÁø¶ø¤·¤¿¤é¡¤¥¨¥é¡¼¥ì¥Ý¡¼¥È¤ò mailman-users@python.org
+ ¤ËÁ÷¤Ã¤Æ¤¯¤À¤µ¤¤¡¥¤½¤ÎÃæ¤Ë¤Ï ÌäÂê¤òµ¯¤³¤·¤¿¤È¤­¡¤¤¢¤Ê¤¿¤¬²¿¤ò
+ ¤ä¤Ã¤¿¤«ÀâÌÀ¤òÆþ¤ì¤Æ¤¯¤À¤µ¤¤¡¥¤Þ¤¿¡¤syslog ¤«¤é´Ø·¸¤¹¤ë¹Ô¤ò
+ ¥³¥Ô¡¼¤·¤Æ¤¯¤À¤µ¤¤¡¥ ¤Þ¤¿¡¤¤¢¤Ê¤¿¤Î¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤È
+ Python¤Î¥Ð¡¼¥¸¥ç¥ó¤Î¾ðÊó¤â Æþ¤ì¤Æ¤¯¤À¤µ¤¤¡¥
+ (ÌõÃí¡§¤â¤Á¤í¤ó±Ñ¸ì¤Ç¤¹¡¥)
+
+8. °ìÈÌŪ¤ÊÌäÂê
+
+ ÌäÂê: Mailman ¤Î Web¥Ú¡¼¥¸¤¬Á´¤Æ 404 File not found ¥¨¥é¡¼¤Ë
+ ¤Ê¤ê¤Þ¤¹¡¥
+
+ ²ò·èË¡: Web ¥µ¡¼¥Ð¤ÎÀßÄê¤Ç Mailman ¤Î CGI ¥³¥Þ¥ó¥É¤òÀµ¤·¤¯°·¤¨
+ ¤ë¤è¤¦¤ËÀßÄê¤Ç¤­¤Æ¤¤¤Þ¤»¤ó¡¥°Ê²¼¤ò³Îǧ¡§
+
+ 1) Web¥µ¡¼¥Ð¤Ç $prefix/cgi-bin ¤ËÀµ¤·¤¯µö²Ä(permission)
+ ¤òÀßÄꤹ¤ë¡¥
+ 2) Web¥µ¡¼¥Ð¤òÀµ¤·¤¯ºÆµ¯Æ°¤¹¤ë¡¥
+
+ Web¥µ¡¼¥Ð¤Î¥É¥­¥å¥á¥ó¥È¤ò¤è¤¯ÆÉ¤ó¤Ç¤É¤¦¤·¤¿¤é¤è¤¤¤«Ä´¤Ù
+ ¤Æ¤¯¤À¤µ¤¤¡¥
+
+ ÌäÂê: Mailman ¤Î Web¥Ú¡¼¥¸¤¬Á´¤Æ "Internal Server Error" ¤Ë
+ ¤Ê¤ê¤Þ¤¹¡¥
+
+ ²ò·èË¡: ´Ö°ã¤Ã¤¿ GID ¤Þ¤¿¤Ï UID¤ò»È¤Ã¤Æ CGI¥¹¥¯¥ê¥×¥È¤ò¼Â¹Ô¤·
+ ¤è¤¦¤È¤·¤Æ¤¤¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡¥syslog ¤ò¥Á¥§¥Ã¥¯¤·¤Æ
+ ¤¯¤À¤µ¤¤¡¥Î㤨¤Ð¡¤°Ê²¼¤Î¤è¤¦¤Ê¹Ô¤¬¤¢¤Ã¤¿¤é¡¤
+
+ Attempt to exec script with invalid gid 51, expected 99
+
+ Mailman ¤òºÆ¥¤¥ó¥¹¥È¡¼¥ë¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡¥¥¤¥ó¥¹
+ ¥È¡¼¥ë¤Î¥»¥¯¥·¥ç¥ó¤Ç½ñ¤«¤ì¤¿¤è¤¦¤Ë¤·¤Æ $CGI_CGI ¤ò 51
+ ¤Ë»ØÄꤷ¤Æ¤¯¤À¤µ¤¤¡¥
+
+ (ÌõÃí: ¥í¥°¤Ï Web ¥µ¡¼¥Ð¤Î error_log ¤Ë½Ð¤Æ¤¤¤ë¤«¤â¤·
+ ¤ì¤Þ¤»¤ó¡¥ ºÆ¥¤¥ó¥¹¥È¡¼¥ë¤Ï
+ ./configure --with-cgi-gid=51 ...
+ ¤È make install ¤Ç¤Ç¤­¤ë¤Ï¤º¤Ç¤¹¡¥Â¾¤ËÌäÂ̵꤬¤±¤ì¤Ð
+ ¤Ç¤¹¤¬¡¥)
+
+ ÌäÂê: ¥á¡¼¥ë¤ò¥ê¥¹¥È¤ËÁ÷¤Ã¤¿¤é¡¤¥ê¥¹¥È¤¬¸«¤Ä¤«¤é¤Ê¤¤¤È¤¤¤¦
+ ¥á¡¼¥ë¤ò¼õ¤±¼è¤ê¤Þ¤·¤¿¡¥
+
+ ²ò·èË¡: ¿ʬ¡¤¥·¥¹¥Æ¥à¤Î alias ¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËɬÍ×¤Ê alias ¤ò
+ Äɲ䷤Ƥ¤¤Ê¤«¤Ã¤¿¤Î¤Ç¤·¤ç¤¦¡¥alias ¤Ï newlist ¥³¥Þ¥ó¥É
+ ¤ò¼Â¹Ô¤·¤¿¤È¤­¤Ë½Ð¤Æ¤­¤Þ¤¹¡¥¤â¤·¼ÂºÝ¤ËÄɲ䷤Ƥ¤¤¿¤é¡¤
+ newaliases ¤ò¼Â¹Ô¤·¤Æ alias ¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò¹¹¿·¤·¤Æ¤¤¤Ê
+ ¤«¤Ã¤¿ ¤Î¤«¤â¤·¤ì¤Þ¤»¤ó¡¥¾å¤Î¥»¥¯¥·¥ç¥ó5¤ò¤â¤¦°ìÅÙÆÉ¤ó¤Ç
+ ¤¯¤À¤µ¤¤¡¥
+
+ ÌäÂê: ¥ê¥¹¥È¤Ë¥á¡¼¥ë¤òÁ÷¤Ã¤¿¤é¡¤"unknown mailer error" ¤¬
+ µ¢¤Ã¤Æ¤­¤Þ¤·¤¿¡¥
+
+ ²ò·èË¡: ¥á¡¼¥ë¥·¥¹¥Æ¥à¤Ç´Ö°ã¤Ã¤¿ GID ¤Þ¤¿¤Ï UID¤ò»È¤Ã¤Æ¤¤¤ë
+ ²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡¥syslog ¤ò¥Á¥§¥Ã¥¯¤·¤Æ¤¯¤À¤µ¤¤¡¥¼¡¤Î
+ ¤è¤¦¤Ê ¹Ô¤¬¤¢¤Ã¤¿¤é¡¤
+
+ Attempt to exec script with invalid gid 51, expected 99
+
+ Mailman ¤òºÆ¥¤¥ó¥¹¥È¡¼¥ë¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡¥
+ ¥¤¥ó¥¹¥È¡¼¥ë¤Î¥»¥¯¥·¥ç¥ó¤Ç½ñ¤«¤ì¤¿¤è¤¦¤Ë¤·¤Æ $MAIL_GID
+ ¤ò 51¤Ë»ØÄꤷ¤Æ¤¯¤À¤µ¤¤¡¥Postfix ¤Ë¤Ä¤¤¤Æ¤Ï¼¡¤ÎÌäÂê¤â
+ ¸«¤Æ¤¯¤À¤µ¤¤¡¤¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¤³¤Î¤è¤¦¤ÊÌäÂ꤬ȯÀ¸¤·¤Þ¤¹¡¥
+
+ (ÌõÃí:¥¨¥é¡¼¥á¡¼¥ë¤ÎÃæ¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡¥
+ ./configure --with-mail-gid=51 ... make install ¤Ç
+ ½¤Àµ¤·¤Þ¤¹)
+
+
+ ÌäÂê: »ä¤Ï Postfix ¤ò MTA ¤Ë»È¤Ã¤Æ¤¤¤Þ¤¹¡¥¤½¤·¤Æ¡¤ mail wrapper
+ ¥×¥í¥°¥é¥à¤Ï GID¤¬°ã¤Ã¤Æ¤¤¤ë¤ÈÉÔÊ¿¤ò log ¤Ë»Ä¤·¤Þ¤¹¡¥
+
+ ²ò·èË¡: Postfix ¤Î main.cf ÀßÄê¥Õ¥¡¥¤¥ëÆâ¤Ë¡¤ "alias_maps" ¤È
+ ¤¤¤¦Ì¾Á°¤Ç¡¤ Postfix ÍѤËÊ̤Πaliases ¥Õ¥¡¥¤¥ë¤òºî¤Ã¤Æ
+ ¤¯¤À¤µ¤¤¡¥ ¥Õ¥¡¥¤¥ë¤Ï mailman ¤Î¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¤Î
+ ¤É¤³¤«¤¢¤ë¤¤¤Ï¤É¤³¤Ç¤â mailman ¤¬½ñ¤­¤³¤á¤ë¤È¤³¤í¤ËÃÖ
+ ¤¤¤Æ¤¯¤À¤µ¤¤¡¥ mailman ¥æ¡¼¥¶¤Ë¤Ê¤Ã¤Æ Postfix ¤Î
+ "postalias" ¥³¥Þ¥ó¥É ¤ò alias file ¤Ë¤Ä¤¤¤Æ¼Â¹Ô¤·¤Þ¤¹¡¥
+
+ % postalias <the alias file>
+
+ ¤µ¤é¤Ë¡¤mailman ¥æ¡¼¥¶¤Ç¡¤
+
+ % python -c'import os; print os.getgid()'
+
+ ¤ò¼Â¹Ô¤·¤Þ¤¹¡¥¤³¤ì¤Ç mailman ¥×¥í¥°¥é¥à ¤¬ mail wrapper
+ ¼Â¹Ô¤ÎºÝ¤Ë »È¤¦¤Ù¤­ ¥°¥ë¡¼¥× ID ¤¬½ÐÎϤµ¤ì¤Þ¤¹¡¥ ¤³¤ì¤ò
+ "thegid" ¤È¤·¤Þ¤·¤ç¤¦¡¥¼¡¤Î¤è¤¦¤Ë¤·¤Æ mailman ¤òºÆ¹½ÃÛ
+ ¤·¤Æ¤¯¤À¤µ¤¤¡¥
+
+ % ./configure --with-mail-gid=thegid
+
+ Postfix ¤È Mailman ¤òÏ¢·È¤·¤Æ»È¤¦·ï¤Ë¤Ä¤¤¤Æ¤Ï,
+ README.POSTFIX ¤â¸«¤Æ¤¯¤À¤µ¤¤.
+
+
+ ÌäÂê: ¥ê¥¹¥È¤Ë¥á¡¼¥ë¤òÁ÷¤ë¤È¡¤
+ "sh: wrapper not available for sendmail programs"
+ ¤È¤¤¤¦¥á¡¼¥ë¤¬µ¢¤Ã¤Æ¤­¤Þ¤¹¡¥
+
+ ²ò·èË¡: ¤¢¤Ê¤¿¤Î¥·¥¹¥Æ¥à¤Ç¤Ï sendmail restricted shell (smrsh)¤¬
+ »È¤ï¤ì¤Æ ¤¤¤Þ¤¹¡¥¥á¡¼¥ë wrapper ($prefix/mail/wrapper)
+ ¤«¤é smrsh ¤Ç¼Â¹Ô¤¬µö²Ä¤µ¤ì¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ø¥·¥ó¥Ü
+ ¥ê¥Ã¥¯¥ê¥ó¥¯¤ò Ä¥¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡¥
+
+ °ìÈÌŪ¤Ë¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ï /var/admin/sm.bin,
+ /usr/admin/sm.bin Ëô¤Ï /etc/smrsh ¤Ê¤É¤ËÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡¥
+
+ Debian linux ¤Ç¤Ï¥·¥¹¥Æ¥à¤Ï /usr/lib/sm.bin ¤òºîÀ®¤·¤Þ¤¹
+ ¤¬¡¤¤³¤ì¤Ï´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹¡¥/usr/admin/sm.bin ¤ò ºî¤Ã¤Æ¤½
+ ¤³¤Ø¥ê¥ó¥¯¤òºîÀ®¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡¥
+ Ãí¡§newaliases ¤¬ÅǤ­½Ð¤¹¤É¤Î alias ¤â wrapper ¤Ø¤Î
+ °ÂÁ´¤Ê¥ê¥ó¥¯¤ò»Ø¤¹É¬Íפ¬¤¢¤ê¤Þ¤¹¡¥
+
+ ÌäÂê: configure ¤ò¸Æ¤Ó½Ð¤¹¤È¤­¤Ë»¶¤é¤«¤·¤Æ¤·¤Þ¤¤¤Þ¤·¤¿¡¥
+ Áݽü¤ò¤·¤ÆºÆ¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤Ë¤Ï¤É¤¦¤·¤¿¤é¤¤¤¤¤Ç¤¹¤«?
+
+ ²ò·èË¡ % make clean
+ % ./configure --with-the-right-options
+ % make install
+
+
diff --git a/messages/ja/LC_MESSAGES/mailman.mo b/messages/ja/LC_MESSAGES/mailman.mo
new file mode 100644
index 00000000..90ab69d3
--- /dev/null
+++ b/messages/ja/LC_MESSAGES/mailman.mo
Binary files differ
diff --git a/messages/ja/LC_MESSAGES/mailman.po b/messages/ja/LC_MESSAGES/mailman.po
new file mode 100644
index 00000000..60e80ddd
--- /dev/null
+++ b/messages/ja/LC_MESSAGES/mailman.po
@@ -0,0 +1,10724 @@
+# Mailman Japanese Translation
+# Copyright (C) 2002
+# Tokio Kikuchi <tkikuchi@is.kochi-u.ac.jp>, 2002
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: Tue Dec 24 13:41:28 2002\n"
+"PO-Revision-Date: 2002-12-27 10:00+0900\n"
+"Last-Translator: Tokio Kikuchi <tkikuchi@is.kochi-u.ac.jp>\n"
+"Language-Team: Japanese <mmjp-users@mm.tkikuchi.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=EUC-JP\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.3\n"
+
+#: Mailman/Archiver/HyperArch.py:112
+msgid "size not available"
+msgstr "¥µ¥¤¥º¾ðÊó¤Ê¤·"
+
+#: Mailman/Archiver/HyperArch.py:118
+msgid " %(size)i bytes "
+msgstr " %(size)i ¥Ð¥¤¥È "
+
+#: Mailman/Archiver/HyperArch.py:249 Mailman/Archiver/HyperArch.py:405
+#: Mailman/Archiver/HyperArch.py:963 Mailman/Archiver/HyperArch.py:1127
+msgid " at "
+msgstr " ¡÷ "
+
+#: Mailman/Archiver/HyperArch.py:434
+msgid "Previous message:"
+msgstr "Á°¤Îµ­»ö"
+
+#: Mailman/Archiver/HyperArch.py:456
+msgid "Next message:"
+msgstr "¼¡¤Îµ­»ö"
+
+#: Mailman/Archiver/HyperArch.py:609 Mailman/Archiver/HyperArch.py:645
+msgid "thread"
+msgstr "¥¹¥ì¥Ã¥É"
+
+#: Mailman/Archiver/HyperArch.py:610 Mailman/Archiver/HyperArch.py:646
+msgid "subject"
+msgstr "·ï̾"
+
+#: Mailman/Archiver/HyperArch.py:611 Mailman/Archiver/HyperArch.py:647
+msgid "author"
+msgstr "ȯ¿®¼Ô"
+
+#: Mailman/Archiver/HyperArch.py:612 Mailman/Archiver/HyperArch.py:648
+msgid "date"
+msgstr "ÆüÉÕ"
+
+#: Mailman/Archiver/HyperArch.py:684
+msgid "<P>Currently, there are no archives. </P>"
+msgstr "<p>º£¤Î¤È¤³¤íÊݸµ­»ö¤Ï¤¢¤ê¤Þ¤»¤ó."
+
+#: Mailman/Archiver/HyperArch.py:721
+msgid "Gzip'd Text%(sz)s"
+msgstr "Gzip°µ½Ì¥Æ¥­¥¹¥È %(sz)s"
+
+#: Mailman/Archiver/HyperArch.py:726
+msgid "Text%(sz)s"
+msgstr "¥Æ¥­¥¹¥È %(sz)s"
+
+#: Mailman/Archiver/HyperArch.py:816
+msgid "figuring article archives\n"
+msgstr "Êݸ½ñ¸ËºîÀ®½àÈ÷Ãæ\n"
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "April"
+msgstr "4·î"
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "February"
+msgstr "2·î"
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "January"
+msgstr "1·î"
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "March"
+msgstr "3·î"
+
+#: Mailman/Archiver/HyperArch.py:827
+msgid "August"
+msgstr "8·î"
+
+#: Mailman/Archiver/HyperArch.py:827
+msgid "July"
+msgstr "7·î"
+
+#: Mailman/Archiver/HyperArch.py:827
+msgid "June"
+msgstr "6·î"
+
+#: Mailman/Archiver/HyperArch.py:827 Mailman/i18n.py:91
+msgid "May"
+msgstr "5·î"
+
+#: Mailman/Archiver/HyperArch.py:828
+msgid "December"
+msgstr "12·î"
+
+#: Mailman/Archiver/HyperArch.py:828
+msgid "November"
+msgstr "11·î"
+
+#: Mailman/Archiver/HyperArch.py:828
+msgid "October"
+msgstr "10·î"
+
+#: Mailman/Archiver/HyperArch.py:828
+msgid "September"
+msgstr "9·î"
+
+#: Mailman/Archiver/HyperArch.py:836
+msgid "First"
+msgstr "Âè1"
+
+#: Mailman/Archiver/HyperArch.py:836
+msgid "Fourth"
+msgstr "Âè4"
+
+#: Mailman/Archiver/HyperArch.py:836
+msgid "Second"
+msgstr "Âè2"
+
+#: Mailman/Archiver/HyperArch.py:836
+msgid "Third"
+msgstr "Âè3"
+
+#: Mailman/Archiver/HyperArch.py:838
+msgid "%(ord)s quarter %(year)i"
+msgstr "%(year)iǯ%(ord)s»ÍȾ´ü"
+
+#: Mailman/Archiver/HyperArch.py:845
+msgid "%(month)s %(year)i"
+msgstr "%(year)iǯ%(month)s"
+
+#: Mailman/Archiver/HyperArch.py:850
+msgid "The Week Of Monday %(day)i %(month)s %(year)i"
+msgstr "%(year)iǯ%(month)s%(day)iÆü(·îÍËÆü)¤Î½µ"
+
+#: Mailman/Archiver/HyperArch.py:854
+msgid "%(day)i %(month)s %(year)i"
+msgstr "%(year)iǯ%(month)s%(day)iÆü"
+
+#: Mailman/Archiver/HyperArch.py:951
+msgid "Computing threaded index\n"
+msgstr "¥¹¥ì¥Ã¥ÉÌܼ¡ºîÀ®Ãæ\n"
+
+#: Mailman/Archiver/HyperArch.py:1206
+msgid "Updating HTML for article %(seq)s"
+msgstr "µ­»ö %(seq)s ÈÖ¤ÎHTML¤ò¹¹¿·Ãæ"
+
+#: Mailman/Archiver/HyperArch.py:1213
+msgid "article file %(filename)s is missing!"
+msgstr "µ­»ö¥Õ¥¡¥¤¥ë %(filename)s ¤¬¹ÔÊýÉÔÌÀ!"
+
+#: Mailman/Archiver/pipermail.py:168 Mailman/Archiver/pipermail.py:169
+msgid "No subject"
+msgstr "̵Âê"
+
+#: Mailman/Archiver/pipermail.py:269
+msgid "Creating archive directory "
+msgstr "Êݸ½ñ¸Ë¥Ç¥£¥ì¥¯¥È¥ê¤òºîÀ®Ãæ"
+
+#: Mailman/Archiver/pipermail.py:281
+msgid "Reloading pickled archive state"
+msgstr "Êݸ½ñ¸Ë¤Î¾õÂÖ¾ðÊó¤òºÆÆÉ¤ß¹þ¤ßÃæ"
+
+#: Mailman/Archiver/pipermail.py:308
+msgid "Pickling archive state into "
+msgstr "Êݸ½ñ¸Ë¤Î¾ðÊó¤ò½ñ¤­¹þ¤ßÃæ: "
+
+#: Mailman/Archiver/pipermail.py:419
+msgid "Updating index files for archive [%(archive)s]"
+msgstr "Êݸ½ñ¸Ë [%(archive)s] ¤ÎÌܼ¡¥Õ¥¡¥¤¥ë¤ò¹¹¿·¤·¤Æ¤¤¤Þ¤¹"
+
+#: Mailman/Archiver/pipermail.py:452
+msgid " Thread"
+msgstr " ¥¹¥ì¥Ã¥É"
+
+#: Mailman/Archiver/pipermail.py:557
+msgid "#%(counter)05d %(msgid)s"
+msgstr ""
+
+#: Mailman/Bouncer.py:44
+msgid "due to excessive bounces"
+msgstr "¥¨¥é¡¼¥á¡¼¥ë²á¾ê¤Ë¤è¤ê"
+
+#: Mailman/Bouncer.py:45
+msgid "by yourself"
+msgstr "¤¢¤Ê¤¿¼«¿È¤Ë¤è¤ê"
+
+#: Mailman/Bouncer.py:46
+msgid "by the list administrator"
+msgstr "¥ê¥¹¥È´ÉÍý¼Ô¤Ë¤è¤ê"
+
+#: Mailman/Bouncer.py:47 Mailman/Bouncer.py:232
+#: Mailman/Commands/cmd_set.py:182
+msgid "for unknown reasons"
+msgstr "̤ÃΤÎÍýͳ¤Ë¤è¤ê"
+
+#: Mailman/Bouncer.py:179
+msgid "disabled"
+msgstr "ÇÛÁ÷Ää»ß"
+
+#: Mailman/Bouncer.py:184
+msgid "Bounce action notification"
+msgstr "ÇÛÁ÷¥¨¥é¡¼½èÍýÄÌÃÎ"
+
+#: Mailman/Bouncer.py:239
+msgid " The last bounce received from you was dated %(date)s"
+msgstr "ºÇ¸å¤Î¥¨¥é¡¼¥á¡¼¥ë¼õ¿®ÆüÉÕ¤Ï %(date)s ¤Ç¤¹"
+
+#: Mailman/Bouncer.py:264 Mailman/Deliverer.py:126
+#: Mailman/Handlers/Acknowledge.py:44 Mailman/Handlers/CookHeaders.py:236
+#: Mailman/Handlers/Hold.py:214 Mailman/Handlers/Hold.py:249
+#: Mailman/Handlers/ToDigest.py:211 Mailman/ListAdmin.py:235
+msgid "(no subject)"
+msgstr "(̵Âê)"
+
+#: Mailman/Bouncer.py:266
+msgid "[No bounce details are available]"
+msgstr "[¾¤Ë¾Ü¤·¤¤ÇÛÁ÷¥¨¥é¡¼¾ðÊó¤Ï¤¢¤ê¤Þ¤»¤ó.]"
+
+#: Mailman/Cgi/Auth.py:46
+msgid "Moderator"
+msgstr "»Ê²ñ¼Ô"
+
+#: Mailman/Cgi/Auth.py:48
+msgid "Administrator"
+msgstr "´ÉÍý¼Ô"
+
+#: Mailman/Cgi/admin.py:70 Mailman/Cgi/admindb.py:89 Mailman/Cgi/confirm.py:55
+#: Mailman/Cgi/edithtml.py:67 Mailman/Cgi/listinfo.py:51
+#: Mailman/Cgi/options.py:71 Mailman/Cgi/private.py:98
+#: Mailman/Cgi/rmlist.py:64 Mailman/Cgi/roster.py:57
+#: Mailman/Cgi/subscribe.py:61
+msgid "No such list <em>%(safelistname)s</em>"
+msgstr "<em>%(safelistname)s</em>¤È¤¤¤¦¥ê¥¹¥È¤Ï¤¢¤ê¤Þ¤»¤ó"
+
+#: Mailman/Cgi/admin.py:85 Mailman/Cgi/admindb.py:105
+#: Mailman/Cgi/edithtml.py:85 Mailman/Cgi/private.py:123
+msgid "Authorization failed."
+msgstr "ǧ¾Ú¼ºÇÔ"
+
+#: Mailman/Cgi/admin.py:175
+msgid ""
+"You have turned off delivery of both digest and\n"
+" non-digest messages. This is an incompatible state of\n"
+" affairs. You must turn on either digest delivery or\n"
+" non-digest delivery or your mailing list will basically be\n"
+" unusable."
+msgstr ""
+"¤¢¤Ê¤¿¤Ï, ¤Þ¤È¤áÆÉ¤ßµ¡Ç½¤È¸ÄÊÌÇÛÁ÷\n"
+"µ¡Ç½¤ÎξÊý¤È¤â¥ª¥Õ¤Ë¤·¤Þ¤·¤¿. ¤³¤ì¤ÏξΩ¤Ç¤­¤Þ¤»¤ó. \n"
+"¤Þ¤È¤áÆÉ¤ßµ¡Ç½¤«¸ÄÊÌÇÛÁ÷µ¡Ç½¤Î¤É¤Á¤é¤«¤ò¥ª¥ó¤Ë¤·¤Æ¤ª¤«¤Ê¤¤¤È\n"
+"¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ï´ðËÜŪ¤ËÍøÍѤǤ­¤Ê¤¯¤Ê¤ê¤Þ¤¹. "
+
+#: Mailman/Cgi/admin.py:179 Mailman/Cgi/admin.py:185 Mailman/Cgi/admin.py:190
+#: Mailman/Cgi/admin.py:1361 Mailman/Gui/GUIBase.py:184
+msgid "Warning: "
+msgstr "·Ù¹ð: "
+
+#: Mailman/Cgi/admin.py:183
+msgid ""
+"You have digest members, but digests are turned\n"
+" off. Those people will not receive mail."
+msgstr ""
+"¤¢¤Ê¤¿¤Ï¡Ö¤Þ¤È¤áÆÉ¤ß¡×¤ò OFF ¤Ë¤·¤Þ¤·¤¿¤¬, ¤Þ¤È¤áÆÉ¤ß²ñ°÷¤¬\n"
+"»Ä¤Ã¤Æ¤¤¤Þ¤¹. Èà¤é¤Ï¥á¡¼¥ë¤ò¼õ¤±¼è¤ì¤Þ¤»¤ó."
+
+#: Mailman/Cgi/admin.py:188
+msgid ""
+"You have regular list members but non-digestified mail is\n"
+" turned off. They will receive mail until you fix this\n"
+" problem."
+msgstr ""
+"¤¢¤Ê¤¿¤Ï¸ÄÊÌÇÛÁ÷¤ò OFF ¤Ë¤·¤Þ¤·¤¿¤¬, ÉáÄÌÇÛÁ÷²ñ°÷¤¬»Ä¤Ã¤Æ¤¤¤Þ¤¹.\n"
+"¤³¤ÎÌäÂê¤ò¤¢¤Ê¤¿¤¬½¤Àµ¤·¤Ê¤¤¸Â¤ê, ÉáÄÌÇÛÁ÷¤Ç¥á¡¼¥ë¤ò¼õ¤±¼è¤ê¤Ä¤Å¤±¤Þ¤¹."
+
+#: Mailman/Cgi/admin.py:212
+msgid "%(hostname)s mailing lists - Admin Links"
+msgstr "%(hostname)s ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È - ´ÉÍý¥ê¥ó¥¯"
+
+#: Mailman/Cgi/admin.py:241 Mailman/Cgi/listinfo.py:97
+msgid "Welcome!"
+msgstr "¤è¤¦¤³¤½!"
+
+#: Mailman/Cgi/admin.py:244 Mailman/Cgi/listinfo.py:100
+msgid "Mailman"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:248
+msgid ""
+"<p>There currently are no publicly-advertised %(mailmanlink)s\n"
+" mailing lists on %(hostname)s."
+msgstr ""
+"<p>¸½ºß %(hostname)s ¤Ç¸ø¤Ë¹­¹ð¤µ¤ì¤¿ %(mailmanlink)s \n"
+"¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ï¤¢¤ê¤Þ¤»¤ó. "
+
+#: Mailman/Cgi/admin.py:254
+msgid ""
+"<p>Below is the collection of publicly-advertised\n"
+" %(mailmanlink)s mailing lists on %(hostname)s. Click on a list\n"
+" name to visit the configuration pages for that list."
+msgstr ""
+"<p>²¼¤Ë¤¢¤²¤¿¤Î¤Ï, %(hostname)s ¤Ç¸ø³«¤µ¤ì¤Æ¤¤¤ë \n"
+"%(mailmanlink)s ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ç¤¹.¥ê¥¹¥È¤Î̾Á°¤ò¥¯¥ê¥Ã¥¯¤·¤Æ, "
+"¤½¤Î¥ê¥¹¥È¤Î\n"
+"ÀßÄê¥Ú¡¼¥¸¤Ø¤ª¿Ê¤ß¤¯¤À¤µ¤¤."
+
+#: Mailman/Cgi/admin.py:261
+msgid "right "
+msgstr "Àµ¤·¤¤ "
+
+#: Mailman/Cgi/admin.py:263
+msgid ""
+"To visit the administrators configuration page for an\n"
+" unadvertised list, open a URL similar to this one, but with a '/' "
+"and\n"
+" the %(extra)slist name appended. If you have the proper authority,\n"
+" you can also <a href=\"%(creatorurl)s\">create a new mailing "
+"list</a>.\n"
+"\n"
+" <p>General list information can be found at "
+msgstr ""
+"¤³¤³¤Ë½Ð¤Æ¤¤¤Ê¤¤¥ê¥¹¥È¤Î´ÉÍýÀßÄê¥Ú¡¼¥¸¤Ø¹Ô¤¯¤Ë¤Ï\n"
+"¤³¤ì¤ÈƱ¤¸¤è¤¦¤Ê URL ¤Ç / ¤È %(extra)s ¥ê¥¹¥È̾¤òÉÕ¤±¤Æ\n"
+"¥¢¥¯¥»¥¹¤·¤Æ¤¯¤À¤µ¤¤.\n"
+"¤Þ¤¿, ¸¢¸Â¤ò»ý¤Ã¤Æ¤¤¤ì¤Ð<a href=\"%(creatorurl)s\">¿·¤·¤¤¥á¡¼¥ê¥ó¥°\n"
+"¥ê¥¹¥È¤òºîÀ®¤¹¤ë</a>¤³¤È¤â¤Ç¤­¤Þ¤¹.\n"
+"\n"
+"<p>°ìÈ̸þ¤±¤Î¥ê¥¹¥È°ÆÆâ¤Ï¼¡¤Ë¤¢¤ê¤Þ¤¹"
+
+#: Mailman/Cgi/admin.py:270
+msgid "the mailing list overview page"
+msgstr "¥á¡¼¥ê¥ó¥°¥ê¥¹¥È°ìÍ÷¥Ú¡¼¥¸"
+
+#: Mailman/Cgi/admin.py:272
+msgid "<p>(Send questions and comments to "
+msgstr "<p>(¼ÁÌ䡦¥³¥á¥ó¥È¤Î°¸Àè¤Ï: "
+
+#: Mailman/Cgi/admin.py:282 Mailman/Cgi/listinfo.py:132 cron/mailpasswds:179
+msgid "List"
+msgstr "¥ê¥¹¥È"
+
+#: Mailman/Cgi/admin.py:283 Mailman/Cgi/admin.py:549
+#: Mailman/Cgi/listinfo.py:133
+msgid "Description"
+msgstr "ÀâÌÀ"
+
+#: Mailman/Cgi/admin.py:289 Mailman/Cgi/listinfo.py:139 bin/list_lists:116
+msgid "[no description available]"
+msgstr "[ÀâÌÀ̵¤·]"
+
+#: Mailman/Cgi/admin.py:322
+msgid "No valid variable name found."
+msgstr "Í­¸ú¤Ê̾Á°¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó."
+
+#: Mailman/Cgi/admin.py:332
+msgid ""
+"%(realname)s Mailing list Configuration Help\n"
+" <br><em>%(varname)s</em> Option"
+msgstr ""
+"%(realname)s ¥á¡¼¥ê¥ó¥°¥ê¥¹¥ÈÀßÄê¥Ø¥ë¥×\n"
+" <br><em>%(varname)s</em> ¥ª¥×¥·¥ç¥ó"
+
+#: Mailman/Cgi/admin.py:339
+msgid "Mailman %(varname)s List Option Help"
+msgstr "Mailman %(varname)s ¥ê¥¹¥È¥ª¥×¥·¥ç¥ó¡¦¥Ø¥ë¥×"
+
+#: Mailman/Cgi/admin.py:357
+msgid ""
+"<em><strong>Warning:</strong> changing this option here\n"
+" could cause other screens to be out-of-sync. Be sure to reload any "
+"other\n"
+" pages that are displaying this option for this mailing list. You can "
+"also\n"
+" "
+msgstr ""
+"·Ù¹ð: ¤³¤³¤Ç¥ª¥×¥·¥ç¥ó¤òÊѹ¹¤¹¤ë¤È, ¾¤Î²èÌÌ¤ÇÆ±´ü¤¬¤È¤ì¤Ê¤¯¤Ê¤ê¤Þ¤¹.\n"
+" ¤³¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Î¥ª¥×¥·¥ç¥ó¤òÊѹ¹¤¹¤ë¤¿¤á¾¤Î¥Ú¡¼¥¸¤Ø¹Ô¤Ã¤¿»þ¤Ë¤Ï\n"
+" ¡ÖºÆÆÉ¤ß¹þ¤ß¡×¤ò¤·¤Æ¤¯¤À¤µ¤¤. ¤¢¤ë¤¤¤Ï"
+
+#: Mailman/Cgi/admin.py:368
+msgid "return to the %(categoryname)s options page."
+msgstr "%(categoryname)s ¥ª¥×¥·¥ç¥ó¥Ú¡¼¥¸¤ØÌá¤ë"
+
+#: Mailman/Cgi/admin.py:383
+msgid "%(realname)s Administration (%(label)s)"
+msgstr "%(realname)s ´ÉÍý (%(label)s)"
+
+#: Mailman/Cgi/admin.py:384
+msgid "%(realname)s mailing list administration<br>%(label)s Section"
+msgstr "%(realname)s ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È´ÉÍý<br>%(label)s ¤ÎÉô"
+
+#: Mailman/Cgi/admin.py:400
+msgid "Configuration Categories"
+msgstr "ÀßÄêʬÎà"
+
+#: Mailman/Cgi/admin.py:401
+msgid "Other Administrative Activities"
+msgstr "¾¤Î´ÉÍý¹àÌÜ"
+
+#: Mailman/Cgi/admin.py:405
+msgid "Tend to pending moderator requests"
+msgstr "ÊÝÎ±Ãæ¤Î»Ê²ñÍ×µá¤ò½èÍý¤¹¤ë"
+
+#: Mailman/Cgi/admin.py:407
+msgid "Go to the general list information page"
+msgstr "°ìÈ̸þ¤±¤Î¥ê¥¹¥È°ÆÆâ¥Ú¡¼¥¸¤Ø"
+
+#: Mailman/Cgi/admin.py:409
+msgid "Edit the public HTML pages"
+msgstr "¸ø³« HTML ¥Ú¡¼¥¸¤òÊÔ½¸¤¹¤ë"
+
+#: Mailman/Cgi/admin.py:411
+msgid "Go to list archives"
+msgstr "¥ê¥¹¥È¤ÎÊݸ½ñ¸Ë¤Ø¹Ô¤¯"
+
+#: Mailman/Cgi/admin.py:417
+msgid "Delete this mailing list"
+msgstr "¤³¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ò¾Ãµî¤¹¤ë"
+
+#: Mailman/Cgi/admin.py:418
+msgid " (requires confirmation)<br>&nbsp;<br>"
+msgstr " (³Îǧ¤¬É¬ÍפǤ¹)<br>&nbsp;<br>"
+
+#: Mailman/Cgi/admin.py:424
+msgid "Logout"
+msgstr "¥í¥°¥¢¥¦¥È"
+
+#: Mailman/Cgi/admin.py:468
+msgid "Emergency moderation of all list traffic is enabled"
+msgstr "¶ÛµÞÇÛÁ÷ÊÝ᤬ÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹"
+
+#: Mailman/Cgi/admin.py:479
+msgid ""
+"Make your changes in the following section, then submit them\n"
+" using the <em>Submit Your Changes</em> button below."
+msgstr ""
+"°Ê²¼¤Î¹àÌܤòÊѹ¹¤·¤Æ, <em>Êѹ¹¤òÁ÷¿®¤¹¤ë</em>¤Î¥Ü¥¿¥ó¤ò\n"
+" ¥¯¥ê¥Ã¥¯¤·¤ÆÁ÷¿®¤·¤Æ¤¯¤À¤µ¤¤."
+
+#: Mailman/Cgi/admin.py:497
+msgid "Additional Member Tasks"
+msgstr "¤½¤Î¾¤Î²ñ°÷¤Ë´Ø¤¹¤ëÁàºî"
+
+#: Mailman/Cgi/admin.py:503
+msgid ""
+"<li>Set everyone's moderation bit, including\n"
+" those members not currently visible"
+msgstr ""
+"<li>Á´°÷¤Îȯ¸ÀÀ©¸Â(¥â¥Ç¥ì¡¼¥·¥ç¥ó)¡¦¥Ó¥Ã¥È¤ò¥»¥Ã¥È¤¹¤ë.\n"
+"(±£¤ì²ñ°÷¤ò´Þ¤à)"
+
+#: Mailman/Cgi/admin.py:507
+msgid "Off"
+msgstr "¥ª¥Õ"
+
+#: Mailman/Cgi/admin.py:507
+msgid "On"
+msgstr "¥ª¥ó"
+
+#: Mailman/Cgi/admin.py:509
+msgid "Set"
+msgstr "¥»¥Ã¥È"
+
+#: Mailman/Cgi/admin.py:550
+msgid "Value"
+msgstr "ÃÍ"
+
+#: Mailman/Cgi/admin.py:604
+msgid ""
+"Badly formed options entry:\n"
+" %(record)s"
+msgstr ""
+"¥ª¥×¥·¥ç¥ó¤Î¹àÌܤ¬ÉÔÀ°¹ç:\n"
+" %(record)s"
+
+#: Mailman/Cgi/admin.py:662
+msgid "<em>Enter the text below, or...</em><br>"
+msgstr "<em>²¼¤Ëʸ¤òÆþÎϤ¹¤ë¤« ...</em><br>"
+
+#: Mailman/Cgi/admin.py:664
+msgid "<br><em>...specify a file to upload</em><br>"
+msgstr "<br><em>... ¥¢¥Ã¥×¥í¡¼¥É¤¹¤ë¥Õ¥¡¥¤¥ë¤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤.</em><br>"
+
+#: Mailman/Cgi/admin.py:690 Mailman/Cgi/admin.py:693
+msgid "Topic %(i)d"
+msgstr "ÏÃÂê %(i)d"
+
+#: Mailman/Cgi/admin.py:694
+msgid "Delete"
+msgstr "ºï½ü"
+
+#: Mailman/Cgi/admin.py:695
+msgid "Topic name:"
+msgstr "ÏÃÂê̾:"
+
+#: Mailman/Cgi/admin.py:697
+msgid "Regexp:"
+msgstr "Àµµ¬É½¸½:"
+
+#: Mailman/Cgi/admin.py:700 Mailman/Cgi/options.py:943
+msgid "Description:"
+msgstr "ÀâÌÀ:"
+
+#: Mailman/Cgi/admin.py:704
+msgid "Add new item..."
+msgstr "¿·¤·¤¤¹àÌܤòÄɲÃ..."
+
+#: Mailman/Cgi/admin.py:706
+msgid "...before this one."
+msgstr "...¤³¤ÎÁ°¤Ë."
+
+#: Mailman/Cgi/admin.py:707
+msgid "...after this one."
+msgstr "...¤³¤Î¸å¤Ë."
+
+#: Mailman/Cgi/admin.py:742
+msgid "<br>(Edit <b>%(varname)s</b>)"
+msgstr "<br>(<b>%(varname)s</b>¤òÊÔ½¸)"
+
+#: Mailman/Cgi/admin.py:744
+msgid "<br>(Details for <b>%(varname)s</b>)"
+msgstr "<br>(<b>%(varname)s</b>¤Î¾ÜºÙ)"
+
+#: Mailman/Cgi/admin.py:751
+msgid ""
+"<br><em><strong>Note:</strong>\n"
+" setting this value performs an immediate action but does not modify\n"
+" permanent state.</em>"
+msgstr ""
+"<br><em><strong>Ãí°Õ:</strong>\n"
+"¤³¤ÎÃͤòÀßÄꤹ¤ë¤Èľ¤Á¤Ë¼Â¹Ô¤µ¤ì¤Þ¤¹¤¬, ¹±µ×Ū¤Ê¾õÂÖ¤ò\n"
+"Êѹ¹¤¹¤ë¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó.</em></div>"
+
+#: Mailman/Cgi/admin.py:765
+msgid "Mass Subscriptions"
+msgstr "¤Þ¤È¤á¤ÆÆþ²ñÅÐÏ¿"
+
+#: Mailman/Cgi/admin.py:772
+msgid "Mass Removals"
+msgstr "¤Þ¤È¤á¤ÆÂà²ñ½èÍý"
+
+#: Mailman/Cgi/admin.py:779
+msgid "Membership List"
+msgstr "²ñ°÷¥ê¥¹¥È"
+
+#: Mailman/Cgi/admin.py:786
+msgid "(help)"
+msgstr "(¥Ø¥ë¥×)"
+
+#: Mailman/Cgi/admin.py:787
+msgid "Find member %(link)s:"
+msgstr "²ñ°÷¸¡º÷ %(link)s:"
+
+#: Mailman/Cgi/admin.py:790
+msgid "Search..."
+msgstr "¸¡º÷..."
+
+#: Mailman/Cgi/admin.py:805
+msgid "Bad regular expression: "
+msgstr "Àµµ¬É½¸½¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹: "
+
+#: Mailman/Cgi/admin.py:861
+msgid "%(allcnt)s members total, %(membercnt)s shown"
+msgstr "²ñ°÷¹ç·× %(allcnt)s ̾, ¤¦¤Á %(membercnt)s ̾ ¤òɽ¼¨¤·¤Þ¤¹"
+
+#: Mailman/Cgi/admin.py:864
+msgid "%(allcnt)s members total"
+msgstr "¹ç·× %(allcnt)s ̾"
+
+#: Mailman/Cgi/admin.py:887
+msgid "unsub"
+msgstr "Âà²ñ"
+
+#: Mailman/Cgi/admin.py:888
+msgid "member address<br>member name"
+msgstr "²ñ°÷¥¢¥É¥ì¥¹<br>²ñ°÷̾"
+
+#: Mailman/Cgi/admin.py:889
+msgid "hide"
+msgstr "±£¤ì²ñ°÷"
+
+#: Mailman/Cgi/admin.py:889
+msgid "mod"
+msgstr "ȯ¸ÀÀ©¸Â"
+
+#: Mailman/Cgi/admin.py:890
+msgid "nomail<br>[reason]"
+msgstr "ÇÛÁ÷Ää»ß<br>[Íýͳ]"
+
+#: Mailman/Cgi/admin.py:891
+msgid "ack"
+msgstr "¼õÎÎ"
+
+#: Mailman/Cgi/admin.py:891
+msgid "not metoo"
+msgstr "¹µ¤¨Ìµ"
+
+#: Mailman/Cgi/admin.py:892
+msgid "nodupes"
+msgstr "¥À¥Ö¥ê̵"
+
+#: Mailman/Cgi/admin.py:893
+msgid "digest"
+msgstr "¤Þ¤È¤áÆÉ¤ß"
+
+#: Mailman/Cgi/admin.py:893
+msgid "plain"
+msgstr "ʿʸ"
+
+#: Mailman/Cgi/admin.py:894
+msgid "language"
+msgstr "¸À¸ì"
+
+#: Mailman/Cgi/admin.py:905
+msgid "?"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:906
+msgid "U"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:907
+msgid "A"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:908
+msgid "B"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:979
+msgid "<b>unsub</b> -- Click on this to unsubscribe the member."
+msgstr "<b>Âà²ñ</b> -- ²ñ°÷¤òÂà²ñ¤µ¤»¤ë¤Ë¤Ï, ¤³¤³¤ò¥¯¥ê¥Ã¥¯."
+
+#: Mailman/Cgi/admin.py:981
+msgid ""
+"<b>mod</b> -- The user's personal moderation flag. If this is\n"
+" set, postings from them will be moderated, otherwise they will be\n"
+" approved."
+msgstr ""
+"<b>À©¸Â</b> -- ²ñ°÷¤ò¸Ä¿Í¥ì¥Ù¥ë¤Çȯ¸ÀÀ©¸Â(¥â¥Ç¥ì¡¼¥·¥ç¥ó)¤¹¤ë¤¿¤á¤Î¥Õ¥é¥°\n"
+"¤â¤·¡¢¤³¤ì¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤È¡¢¤³¤Î²ñ°÷¤«¤é¤ÎÅê¹Æ¤Ï»Ê²ñ¼Ô¤Î¾µÇ§¤¬É¬ÍפË\n"
+"¤Ê¤ê¡¢¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¤È¼«Í³¤ËÅê¹Æ¤Ç¤­¤Þ¤¹."
+
+#: Mailman/Cgi/admin.py:985
+msgid ""
+"<b>hide</b> -- Is the member's address concealed on\n"
+" the list of subscribers?"
+msgstr ""
+"<b>±£¤ì²ñ°÷</b> -- ¤³¤Î¥á¥ó¥Ð¡¼¤Î¥¢¥É¥ì¥¹¤Ï\n"
+" ²ñ°÷̾Êí¤Ç¤Ï±£¤·¤Þ¤¹¤«?"
+
+#: Mailman/Cgi/admin.py:987
+msgid ""
+"<b>nomail</b> -- Is delivery to the member disabled? If so, an\n"
+" abbreviation will be given describing the reason for the disabled\n"
+" delivery:\n"
+" <ul><li><b>U</b> -- Delivery was disabled by the user via their\n"
+" personal options page.\n"
+" <li><b>A</b> -- Delivery was disabled by the list\n"
+" administrators.\n"
+" <li><b>B</b> -- Delivery was disabled by the system due to\n"
+" excessive bouncing from the member's address.\n"
+" <li><b>?</b> -- The reason for disabled delivery isn't "
+"known.\n"
+" This is the case for all memberships which were "
+"disabled\n"
+" in older versions of Mailman.\n"
+" </ul>"
+msgstr ""
+"<b>ÇÛÁ÷Ää»ß</b> -- ¤³¤Î²ñ°÷¤Ø¤ÎÇÛÁ÷¤ÏÄä»ß¤µ¤ì¤Æ¤¤¤Þ¤¹¤«? ¤â¤·, ¤½¤¦¤Ê¤é\n"
+" °Ê²¼¤Îά¹æ¤ÇÇÛÁ÷¤òÄä»ß¤·¤¿Íýͳ¤¬¼¨¤µ¤ì¤Þ¤¹:\n"
+" <ul><li><b>U</b> -- ¥æ¡¼¥¶¤¬¸Ä¿Í¤Î¥ª¥×¥·¥ç¥ó¥Ú¡¼¥¸¤ÇÇÛÁ÷¤òÄä»ß¤·¤¿.\n"
+" <li><b>A</b> -- ¥ê¥¹¥È´ÉÍý¼Ô¤¬ÇÛÁ÷¤òÄä»ß¤·¤¿.\n"
+" <li><b>B</b> -- ¥¨¥é¡¼¥á¡¼¥ë²á¾ê¤Ë¤è¤ê¥·¥¹¥Æ¥à¤¬¼«Æ°Åª¤ËÇÛÁ÷¤òÄä»ß¤·¤¿.\n"
+" <li><b>?</b> -- ÇÛÁ÷Ää»ß¤ÎÍýͳÉÔÌÀ. Mailman "
+"¤Î¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤«¤é°ú¤­·Ñ¤¬¤ì¤Æ\n"
+" ÇÛÁ÷Ää»ß¤È¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ï¤³¤ì¤Ë¤Ê¤ê¤Þ¤¹.\n"
+" </ul>"
+
+#: Mailman/Cgi/admin.py:1002
+msgid ""
+"<b>ack</b> -- Does the member get acknowledgements of their\n"
+" posts?"
+msgstr "<b>¼õÎÎ</b> -- ¤³¤Î²ñ°÷¤«¤é¤ÎÅê¹Æ¤Ë¤Ï¼õÎΥ᡼¥ë¤ò½Ð¤·¤Þ¤¹¤«?"
+
+#: Mailman/Cgi/admin.py:1005
+msgid ""
+"<b>not metoo</b> -- Does the member want to avoid copies of their\n"
+" own postings?"
+msgstr "<b>¹µ¤¨Ìµ</b> -- ¤³¤Î²ñ°÷¤«¤é¤ÎÅê¹Æ¤ÏËܿͤˤÏÇÛÁ÷¤·¤Ê¤¤¤è¤¦¤Ë¤·¤Þ¤¹¤«?"
+
+#: Mailman/Cgi/admin.py:1008
+msgid ""
+"<b>nodupes</b> -- Does the member want to avoid duplicates of the\n"
+" same message?"
+msgstr ""
+"<b>¥À¥Ö¤ê̵¤·</b> -- ¤³¤Î²ñ°÷¤Ë¤ÏƱ¤¸¥á¡¼¥ë¤òÆó½Å¤ËÇÛÁ÷\n"
+"¤·¤Ê¤¤¤è¤¦¤Ë¤·¤Þ¤¹¤«?"
+
+#: Mailman/Cgi/admin.py:1011
+msgid ""
+"<b>digest</b> -- Does the member get messages in digests?\n"
+" (otherwise, individual messages)"
+msgstr ""
+"<b>¤Þ¤È¤áÆÉ¤ß</b> -- ¤³¤Î²ñ°÷¤Ø¤Ï¡Ö¤Þ¤È¤áÆÉ¤ß¡×¤ÇÇÛÁ÷¤·¤Þ¤¹¤«?\n"
+" (¤Ç¤Ê¤±¤ì¤Ð, ÉáÄ̤θġ¹ÇÛÁ÷¤È¤Ê¤ê¤Þ¤¹)"
+
+#: Mailman/Cgi/admin.py:1014
+msgid ""
+"<b>plain</b> -- If getting digests, does the member get plain\n"
+" text digests? (otherwise, MIME)"
+msgstr ""
+"<b>ʿʸ</b> -- ¡Ö¤Þ¤È¤áÆÉ¤ß¡×¤Î¾ì¹ç, ¤³¤Î²ñ°÷¤Ø¤Ïʿʸ¤ÇÇÛÁ÷¤·¤Þ¤¹¤«?\n"
+" (¤Ç¤Ê¤±¤ì¤Ð, MIME źÉÕ¤ò»È¤¤¤Þ¤¹)"
+
+#: Mailman/Cgi/admin.py:1016
+msgid "<b>language</b> -- Language preferred by the user"
+msgstr "<b>¸À¸ì</b> -- ¥æ¡¼¥¶¤¬Áª¤ó¤À¸À¸ì"
+
+#: Mailman/Cgi/admin.py:1030
+msgid "Click here to hide the legend for this table."
+msgstr "¤³¤Îɽ¤ÎÀâÌÀ¤ò±£¤¹¤Ë¤Ï, ¤³¤³¤ò¥¯¥ê¥Ã¥¯."
+
+#: Mailman/Cgi/admin.py:1034
+msgid "Click here to include the legend for this table."
+msgstr "¤³¤Îɽ¤ÎÀâÌÀ¤òɽ¼¨¤¹¤ë¤Ë¤Ï, ¤³¤³¤ò¥¯¥ê¥Ã¥¯."
+
+#: Mailman/Cgi/admin.py:1041
+msgid ""
+"<p><em>To view more members, click on the appropriate\n"
+" range listed below:</em>"
+msgstr ""
+"<p>¾¤Î²ñ°÷¤ò¸«¤ë¤Ë¤Ï, ²¼¤Î¥ê¥¹¥È¤ÎŬÅö¤ÊÈϰϤò¥¯¥ê¥Ã¥¯¤·¤Æ¤¯¤À¤µ¤¤:</em>"
+
+#: Mailman/Cgi/admin.py:1050
+msgid "from %(start)s to %(end)s"
+msgstr "%(start)s ¤«¤é %(end)s ¤Þ¤Ç"
+
+#: Mailman/Cgi/admin.py:1063
+msgid "Subscribe these users now or invite them?"
+msgstr "¤³¤ì¤é¤Î¥æ¡¼¥¶¤òľ¤Á¤ËÅÐÏ¿¤·¤Þ¤¹¤«?¤½¤ì¤È¤â¾·ÂÔ¤·¤Þ¤¹¤«?"
+
+#: Mailman/Cgi/admin.py:1065
+msgid "Invite"
+msgstr "¾·ÂÔ"
+
+#: Mailman/Cgi/admin.py:1065 Mailman/Cgi/listinfo.py:175
+msgid "Subscribe"
+msgstr "Æþ²ñ¤ò¿½¤·¹þ¤à"
+
+#: Mailman/Cgi/admin.py:1071
+msgid "Send welcome messages to new subscribees?"
+msgstr "¿·Æþ²ñ°÷¤Ë´¿·Þ¥á¡¼¥ë¤ò½Ð¤·¤Þ¤¹¤«?"
+
+#: Mailman/Cgi/admin.py:1073 Mailman/Cgi/admin.py:1082
+#: Mailman/Cgi/admin.py:1115 Mailman/Cgi/admin.py:1123
+#: Mailman/Cgi/confirm.py:271 Mailman/Cgi/create.py:327
+#: Mailman/Cgi/create.py:355 Mailman/Cgi/create.py:395
+#: Mailman/Cgi/rmlist.py:228 Mailman/Gui/Archive.py:33
+#: Mailman/Gui/Autoresponse.py:54 Mailman/Gui/Autoresponse.py:62
+#: Mailman/Gui/Autoresponse.py:71 Mailman/Gui/Bounce.py:77
+#: Mailman/Gui/Bounce.py:108 Mailman/Gui/Bounce.py:134
+#: Mailman/Gui/Bounce.py:143 Mailman/Gui/ContentFilter.py:70
+#: Mailman/Gui/ContentFilter.py:103 Mailman/Gui/Digest.py:46
+#: Mailman/Gui/Digest.py:62 Mailman/Gui/Digest.py:84 Mailman/Gui/Digest.py:89
+#: Mailman/Gui/General.py:148 Mailman/Gui/General.py:154
+#: Mailman/Gui/General.py:232 Mailman/Gui/General.py:259
+#: Mailman/Gui/General.py:286 Mailman/Gui/General.py:297
+#: Mailman/Gui/General.py:300 Mailman/Gui/General.py:310
+#: Mailman/Gui/General.py:315 Mailman/Gui/General.py:325
+#: Mailman/Gui/General.py:345 Mailman/Gui/General.py:373
+#: Mailman/Gui/General.py:396 Mailman/Gui/NonDigest.py:44
+#: Mailman/Gui/NonDigest.py:52 Mailman/Gui/Privacy.py:101
+#: Mailman/Gui/Privacy.py:107 Mailman/Gui/Privacy.py:140
+#: Mailman/Gui/Privacy.py:188 Mailman/Gui/Privacy.py:296
+#: Mailman/Gui/Privacy.py:309 Mailman/Gui/Usenet.py:50
+#: Mailman/Gui/Usenet.py:54 Mailman/Gui/Usenet.py:91 Mailman/Gui/Usenet.py:103
+msgid "No"
+msgstr "¤¤¤¤¤¨"
+
+#: Mailman/Cgi/admin.py:1073 Mailman/Cgi/admin.py:1082
+#: Mailman/Cgi/admin.py:1115 Mailman/Cgi/admin.py:1123
+#: Mailman/Cgi/confirm.py:271 Mailman/Cgi/create.py:327
+#: Mailman/Cgi/create.py:355 Mailman/Cgi/create.py:395
+#: Mailman/Cgi/rmlist.py:228 Mailman/Gui/Archive.py:33
+#: Mailman/Gui/Autoresponse.py:54 Mailman/Gui/Autoresponse.py:62
+#: Mailman/Gui/Bounce.py:77 Mailman/Gui/Bounce.py:108
+#: Mailman/Gui/Bounce.py:134 Mailman/Gui/Bounce.py:143
+#: Mailman/Gui/ContentFilter.py:70 Mailman/Gui/ContentFilter.py:103
+#: Mailman/Gui/Digest.py:46 Mailman/Gui/Digest.py:62 Mailman/Gui/Digest.py:84
+#: Mailman/Gui/Digest.py:89 Mailman/Gui/General.py:148
+#: Mailman/Gui/General.py:154 Mailman/Gui/General.py:232
+#: Mailman/Gui/General.py:259 Mailman/Gui/General.py:286
+#: Mailman/Gui/General.py:297 Mailman/Gui/General.py:300
+#: Mailman/Gui/General.py:310 Mailman/Gui/General.py:315
+#: Mailman/Gui/General.py:325 Mailman/Gui/General.py:345
+#: Mailman/Gui/General.py:373 Mailman/Gui/General.py:396
+#: Mailman/Gui/NonDigest.py:44 Mailman/Gui/NonDigest.py:52
+#: Mailman/Gui/Privacy.py:101 Mailman/Gui/Privacy.py:107
+#: Mailman/Gui/Privacy.py:140 Mailman/Gui/Privacy.py:188
+#: Mailman/Gui/Privacy.py:296 Mailman/Gui/Privacy.py:309
+#: Mailman/Gui/Usenet.py:50 Mailman/Gui/Usenet.py:54 Mailman/Gui/Usenet.py:91
+#: Mailman/Gui/Usenet.py:103
+msgid "Yes"
+msgstr "¤Ï¤¤"
+
+#: Mailman/Cgi/admin.py:1080
+msgid "Send notifications of new subscriptions to the list owner?"
+msgstr "¥ê¥¹¥È´ÉÍý¼Ô¤Ë¿·µ¬Æþ²ñ¤òÄÌÃΤ·¤Þ¤¹¤«?"
+
+#: Mailman/Cgi/admin.py:1088 Mailman/Cgi/admin.py:1129
+msgid "Enter one address per line below..."
+msgstr "°ì¹Ô¤Ë¤Ò¤È¤Ä¤º¤Ä¥¢¥É¥ì¥¹¤òµ­Æþ..."
+
+#: Mailman/Cgi/admin.py:1093 Mailman/Cgi/admin.py:1134
+msgid "...or specify a file to upload:"
+msgstr "...Ëô¤Ï¥¢¥Ã¥×¥í¡¼¥É¤¹¤ë¥Õ¥¡¥¤¥ë¤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤:"
+
+#: Mailman/Cgi/admin.py:1098
+msgid ""
+"Below, enter additional text to be added to the\n"
+" top of your invitation or the subscription notification. Include at "
+"least\n"
+" one blank line at the end..."
+msgstr ""
+"°Ê²¼¤Ë, ¾·ÂÔ¤Þ¤¿¤ÏÆþ²ñ¤Î¤ªÃΤ餻¤ÎºÇ½é¤ËÉÕ¤±¤ë\n"
+"ʸ¤òÆþ¤ì¤Æ¤¯¤À¤µ¤¤. ¤Ê¤ª, ºÇ¸å¤Î¹Ô¤Î¼¡¤Ë¤Ï, £±¹Ô\n"
+"¶õ¤±¤Æ¤ª¤¤¤Æ¤¯¤À¤µ¤¤."
+
+#: Mailman/Cgi/admin.py:1113
+msgid "Send unsubscription acknowledgement to the user?"
+msgstr "Âà²ñ¼ê³¤­´°Î»¤ÎÃΤ餻¥æ¡¼¥¶¤ËÁ÷¤ê¤Þ¤¹¤«?"
+
+#: Mailman/Cgi/admin.py:1121
+msgid "Send notifications to the list owner?"
+msgstr "¥ê¥¹¥È´ÉÍý¼Ô¤ËÄÌÃΤ·¤Þ¤¹¤«?"
+
+#: Mailman/Cgi/admin.py:1143
+msgid "Change list ownership passwords"
+msgstr "¥ê¥¹¥È´ÉÍý¼Ô¥Ñ¥¹¥ï¡¼¥ÉÊѹ¹"
+
+#: Mailman/Cgi/admin.py:1146
+msgid ""
+"The <em>list administrators</em> are the people who have ultimate control "
+"over\n"
+"all parameters of this mailing list. They are able to change any list\n"
+"configuration variable available through these administration web pages.\n"
+"\n"
+"<p>The <em>list moderators</em> have more limited permissions; they are not\n"
+"able to change any list configuration variable, but they are allowed to "
+"tend\n"
+"to pending administration requests, including approving or rejecting held\n"
+"subscription requests, and disposing of held postings. Of course, the\n"
+"<em>list administrators</em> can also tend to pending requests.\n"
+"\n"
+"<p>In order to split the list ownership duties into administrators and\n"
+"moderators, you must set a separate moderator password in the fields below,\n"
+"and also provide the email addresses of the list moderators in the\n"
+"<a href=\"%(adminurl)s/general\">general options section</a>."
+msgstr ""
+"<em>¥ê¥¹¥È´ÉÍý¼Ô</em>¤Ï, ¤³¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ÎÁ´¤Æ¤Î¥Ñ¥é¥á¡¼¥¿\n"
+"¤òµæ¶ËŪ¤Ë¥³¥ó¥È¥í¡¼¥ë¤¹¤ë¿Í¤¿¤Á¤Ç¤¹. ´ÉÍý¼Ô¤Ï´ÉÍýWeb¥Ú¡¼¥¸¤òÄ̤¸¤Æ\n"
+"¥ê¥¹¥ÈÀßÄêÊÑ¿ô¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹.\n"
+"\n"
+"<p><em>¥ê¥¹¥È»Ê²ñ¼Ô</em>¤Ï, ¤è¤êÀ©¸Â¤µ¤ì¤¿¸¢¸Â¤ò»ý¤Á¤Þ¤¹. ¤Ä¤Þ¤ê,\n"
+"»Ê²ñ¼Ô¤Ï¥ê¥¹¥ÈÀßÄêÊÑ¿ô¤òÊѹ¹¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¤¬, ´ÉÍý¿½ÀÁ¤ò\n"
+"½èÍý¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤¹. ¤³¤ì¤Ë¤ÏÆþ²ñ¿½ÀÁ¤ò¾µÇ§¤·¤¿¤êµÑ²¼¤·¤¿¤ê,\n"
+"ÊÝα¤Ë¤Ê¤Ã¤¿Åê¹Æ¤ò½èÍý¤¹¤ë¤³¤È¤¬´Þ¤Þ¤ì¤Þ¤¹. ¤â¤Á¤í¤ó, \n"
+"<em>¥ê¥¹¥È´ÉÍý¼Ô</em>¤â¿½ÀÁ¤ò½èÍý¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹. \n"
+"\n"
+"<p>¥ê¥¹¥È½êÍ­¼Ô¤Î»Å»ö¤ò´ÉÍý¼Ô¤È»Ê²ñ¼Ô¤Ëʬ¤±¤ë¤Ë¤Ï,\n"
+"²¼¤Îµ­ÆþÍó¤ËÊ̤λʲñ¼Ô¥Ñ¥¹¥ï¡¼¥É¤òÀßÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó.\n"
+"¤½¤·¤Æ¤Þ¤¿, <a href=\"%(adminurl)s/general\">°ìÈÌ¥ª¥×¥·¥ç¥ó¤ÎÉô</a>\n"
+"¤Ë»Ê²ñ¼Ô¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤òµ­Æþ¤·¤Æ¤¯¤À¤µ¤¤."
+
+#: Mailman/Cgi/admin.py:1165
+msgid "Enter new administrator password:"
+msgstr "¿·¤·¤¤´ÉÍý¼Ô¥Ñ¥¹¥ï¡¼¥É¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤"
+
+#: Mailman/Cgi/admin.py:1167
+msgid "Confirm administrator password:"
+msgstr "´ÉÍý¼Ô¥Ñ¥¹¥ï¡¼¥É¤Î³Îǧ:"
+
+#: Mailman/Cgi/admin.py:1172
+msgid "Enter new moderator password:"
+msgstr "¿·¤·¤¤»Ê²ñ¼Ô¥Ñ¥¹¥ï¡¼¥É¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤:"
+
+#: Mailman/Cgi/admin.py:1174
+msgid "Confirm moderator password:"
+msgstr "»Ê²ñ¼Ô¥Ñ¥¹¥ï¡¼¥É¤Î³Îǧ:"
+
+#: Mailman/Cgi/admin.py:1184
+msgid "Submit Your Changes"
+msgstr "Êѹ¹¤òÁ÷¿®¤¹¤ë"
+
+#: Mailman/Cgi/admin.py:1207
+msgid "Moderator passwords did not match"
+msgstr "»Ê²ñ¼Ô¤Î¥Ñ¥¹¥ï¡¼¥É¤¬°ìÃפ·¤Þ¤»¤ó.<br>"
+
+#: Mailman/Cgi/admin.py:1217
+msgid "Administrator passwords did not match"
+msgstr "´ÉÍý¼Ô¤Î¥Ñ¥¹¥ï¡¼¥É¤¬°ìÃפ·¤Þ¤»¤ó"
+
+#: Mailman/Cgi/admin.py:1265
+msgid "Already a member"
+msgstr "´û¤Ë²ñ°÷¤Ç¤¹"
+
+#: Mailman/Cgi/admin.py:1268
+msgid "&lt;blank line&gt;"
+msgstr "&lt;¶õÇò¹Ô&gt;"
+
+#: Mailman/Cgi/admin.py:1269 Mailman/Cgi/admin.py:1272
+msgid "Bad/Invalid email address"
+msgstr "ÉÔÀµ¤Ê¥á¡¼¥ë¥¢¥É¥ì¥¹"
+
+#: Mailman/Cgi/admin.py:1275
+msgid "Hostile address (illegal characters)"
+msgstr "Èóͧ¹¥Åª¥¢¥É¥ì¥¹ (ÉÔÀµ¤Êʸ»ú)"
+
+#: Mailman/Cgi/admin.py:1281
+msgid "Successfully invited:"
+msgstr "¾·ÂԼ곤­´°Î»:"
+
+#: Mailman/Cgi/admin.py:1283
+msgid "Successfully subscribed:"
+msgstr "Æþ²ñ¼ê³¤­´°Î»"
+
+#: Mailman/Cgi/admin.py:1288
+msgid "Error inviting:"
+msgstr "¾·ÂԼ곤­¤Î¥¨¥é¡¼:"
+
+#: Mailman/Cgi/admin.py:1290
+msgid "Error subscribing:"
+msgstr "Æþ²ñ¼ê³¤­¤Î¥¨¥é¡¼:"
+
+#: Mailman/Cgi/admin.py:1319
+msgid "Successfully Unsubscribed:"
+msgstr "Âà²ñ¼ê³¤­´°Î»"
+
+#: Mailman/Cgi/admin.py:1324
+msgid "Cannot unsubscribe non-members:"
+msgstr "Èó²ñ°÷¤ÏÂà²ñ¤Ç¤­¤Þ¤»¤ó:"
+
+#: Mailman/Cgi/admin.py:1336
+msgid "Bad moderation flag value"
+msgstr "ȯ¸ÀÀ©¸Â¥Õ¥é¥°¤Ë¸í¤ê¤¬¤¢¤ê¤Þ¤¹"
+
+#: Mailman/Cgi/admin.py:1357
+msgid "Not subscribed"
+msgstr "Æþ²ñ¤·¤Æ¤¤¤Þ¤»¤ó"
+
+#: Mailman/Cgi/admin.py:1360
+msgid "Ignoring changes to deleted member: %(user)s"
+msgstr "ºï½ü¤µ¤ì¤¿²ñ°÷¤ÎÊѹ¹¤ò̵»ë: %(user)s"
+
+#: Mailman/Cgi/admin.py:1400
+msgid "Successfully Removed:"
+msgstr "Âà²ñ¼ê³¤­´°Î»:"
+
+#: Mailman/Cgi/admin.py:1404
+msgid "Error Unsubscribing:"
+msgstr "Âà²ñ¼ê³¤­¤Î¥¨¥é¡¼:"
+
+#: Mailman/Cgi/admindb.py:159 Mailman/Cgi/admindb.py:167
+msgid "%(realname)s Administrative Database"
+msgstr "%(realname)s ´ÉÍý¥Ç¡¼¥¿¥Ù¡¼¥¹"
+
+#: Mailman/Cgi/admindb.py:162
+msgid "%(realname)s Administrative Database Results"
+msgstr "%(realname)s ´ÉÍý¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î·ë²Ì"
+
+#: Mailman/Cgi/admindb.py:170
+msgid "There are no pending requests."
+msgstr "ÊÝÎ±Ãæ¤Î¿½ÀÁ¤Ï¤¢¤ê¤Þ¤»¤ó."
+
+#: Mailman/Cgi/admindb.py:173
+msgid "Click here to reload this page."
+msgstr "¤³¤Î¥Ú¡¼¥¸¤òºÆÉ½¼¨¤¹¤ë¤Ë¤Ï, ¤³¤³¤ò¥¯¥ê¥Ã¥¯."
+
+#: Mailman/Cgi/admindb.py:184
+msgid "Detailed instructions for the administrative database"
+msgstr "´ÉÍý¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¾Ü¤·¤¤ÍøÍÑË¡"
+
+#: Mailman/Cgi/admindb.py:188
+msgid "Administrative requests for mailing list:"
+msgstr "¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ËÂФ¹¤ë´ÉÍý¿½ÀÁ"
+
+#: Mailman/Cgi/admindb.py:191 Mailman/Cgi/admindb.py:234
+msgid "Submit All Data"
+msgstr "Á´¥Ç¡¼¥¿¤òÁ÷¿®"
+
+#: Mailman/Cgi/admindb.py:204
+msgid "all of %(esender)s's held messages."
+msgstr "%(esender)s ¤ÎÁ´¤Æ¤ÎÊÝα¥á¡¼¥ë"
+
+#: Mailman/Cgi/admindb.py:209
+msgid "a single held message."
+msgstr "1¸Ä¤ÎÊÝα¥á¡¼¥ë."
+
+#: Mailman/Cgi/admindb.py:214
+msgid "all held messages."
+msgstr "Á´¤Æ¤ÎÊÝα¥á¡¼¥ë."
+
+#: Mailman/Cgi/admindb.py:249
+msgid "Mailman Administrative Database Error"
+msgstr "Mailman ´ÉÍý¥Ç¡¼¥¿¥Ù¡¼¥¹¥¨¥é¡¼"
+
+#: Mailman/Cgi/admindb.py:254
+msgid "list of available mailing lists."
+msgstr "¤³¤³¤Ë¤¢¤ë¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Î°ìÍ÷"
+
+#: Mailman/Cgi/admindb.py:255
+msgid "You must specify a list name. Here is the %(link)s"
+msgstr "¥ê¥¹¥È̾¤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤. ¤³¤³¤Ë %(link)s ¤¬¤¢¤ê¤Þ¤¹."
+
+#: Mailman/Cgi/admindb.py:268
+msgid "Subscription Requests"
+msgstr "Æþ²ñ¿½ÀÁ"
+
+#: Mailman/Cgi/admindb.py:270
+msgid "Address/name"
+msgstr "¥¢¥É¥ì¥¹/̾Á°"
+
+#: Mailman/Cgi/admindb.py:271 Mailman/Cgi/admindb.py:320
+msgid "Your decision"
+msgstr "·èºÑ"
+
+#: Mailman/Cgi/admindb.py:272 Mailman/Cgi/admindb.py:321
+msgid "Reason for refusal"
+msgstr "µñÈݤÎÍýͳ"
+
+#: Mailman/Cgi/admindb.py:289 Mailman/Cgi/admindb.py:346
+#: Mailman/Cgi/admindb.py:389 Mailman/Cgi/admindb.py:612
+msgid "Defer"
+msgstr "ÊÝα"
+
+#: Mailman/Cgi/admindb.py:290 Mailman/Cgi/admindb.py:347
+#: Mailman/Cgi/admindb.py:612
+msgid "Approve"
+msgstr "¾µÇ§"
+
+#: Mailman/Cgi/admindb.py:291 Mailman/Cgi/admindb.py:348
+#: Mailman/Cgi/admindb.py:389 Mailman/Cgi/admindb.py:612
+#: Mailman/Gui/ContentFilter.py:37 Mailman/Gui/Privacy.py:207
+#: Mailman/Gui/Privacy.py:281
+msgid "Reject"
+msgstr "µñÈÝ"
+
+#: Mailman/Cgi/admindb.py:292 Mailman/Cgi/admindb.py:349
+#: Mailman/Cgi/admindb.py:389 Mailman/Cgi/admindb.py:612
+#: Mailman/Gui/ContentFilter.py:37 Mailman/Gui/Privacy.py:207
+#: Mailman/Gui/Privacy.py:281
+msgid "Discard"
+msgstr "ÇË´þ"
+
+#: Mailman/Cgi/admindb.py:300
+msgid "Permanently ban from this list"
+msgstr "¤³¤Î¥ê¥¹¥È¤«¤é±Êµ×ÇÓ½ü"
+
+#: Mailman/Cgi/admindb.py:319
+msgid "User address/name"
+msgstr "²ñ°÷¥¢¥É¥ì¥¹/²ñ°÷̾"
+
+#: Mailman/Cgi/admindb.py:359
+msgid "Unsubscription Requests"
+msgstr "Âà²ñ¿½ÀÁ"
+
+#: Mailman/Cgi/admindb.py:382 Mailman/Cgi/admindb.py:596
+msgid "From:"
+msgstr "ȯ¿®¼Ô:"
+
+#: Mailman/Cgi/admindb.py:385
+msgid "Action to take on all these held messages:"
+msgstr "¤³¤ì¤éÁ´¤Æ¤ÎÊÝα¥á¥Ã¥»¡¼¥¸¤ËÂФ¹¤ë½èÍý:"
+
+#: Mailman/Cgi/admindb.py:389 Mailman/Gui/Privacy.py:281
+msgid "Accept"
+msgstr "¾µÇ§"
+
+#: Mailman/Cgi/admindb.py:397
+msgid "Preserve messages for the site administrator"
+msgstr "¥µ¥¤¥È´ÉÍý¼Ô¤Î¤¿¤á¤Ë¥á¥Ã¥»¡¼¥¸¤òÊݸ¤¹¤ë"
+
+#: Mailman/Cgi/admindb.py:403
+msgid "Forward messages (individually) to:"
+msgstr "¥á¡¼¥ë¤ò(¸ÄÊ̤Ë)¼¡¤Î¥¢¥É¥ì¥¹¤ËžÁ÷¤¹¤ë:"
+
+#: Mailman/Cgi/admindb.py:421
+msgid "Clear this member's <em>moderate</em> flag"
+msgstr "¤³¤Î²ñ°÷¤Î<em>ȯ¸ÀÀ©¸Â</em>¥Õ¥é¥°¤ò¥¯¥ê¥¢¡¼¤¹¤ë"
+
+#: Mailman/Cgi/admindb.py:425
+msgid "<em>The sender is now a member of this list</em>"
+msgstr "<em>Á÷¿®¼Ô¤Ï¤³¤Î¥ê¥¹¥È¤Î²ñ°÷¤È¤Ê¤ê¤Þ¤·¤¿.</em>"
+
+#: Mailman/Cgi/admindb.py:434
+msgid "Add <b>%(esender)s</b> to a sender filter"
+msgstr "<b>%(esender)s</b>¤òÁ÷¿®¼Ô¥Õ¥£¥ë¥¿¡¼¤ËÄɲ乤ë"
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Accepts"
+msgstr "¾µÇ§"
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Discards"
+msgstr "ÇË´þ"
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Holds"
+msgstr "ÊÝα"
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Rejects"
+msgstr "µñÈÝ"
+
+#: Mailman/Cgi/admindb.py:448
+msgid ""
+"Ban <b>%(esender)s</b> from ever subscribing to this\n"
+" mailing list"
+msgstr ""
+"<b>%(esender)s</b>¤ò¤³¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤«¤é\n"
+"±Êµ×¤ËÆþ²ñ¤òÇÓ½ü¤·¤Þ¤¹"
+
+#: Mailman/Cgi/admindb.py:453
+msgid ""
+"Click on the message number to view the individual\n"
+" message, or you can "
+msgstr "¥á¡¼¥ëÈÖ¹æ¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¸Ä¡¹¤Î¥á¡¼¥ë¤ò¸«¤ë¤«, "
+
+#: Mailman/Cgi/admindb.py:455
+msgid "view all messages from %(esender)s"
+msgstr "%(esender)s ¤«¤é¤ÎÁ´¤Æ¤Î¥á¡¼¥ë¤ò¸«¤ë"
+
+#: Mailman/Cgi/admindb.py:475 Mailman/Cgi/admindb.py:599
+msgid "Subject:"
+msgstr "·ï̾:"
+
+#: Mailman/Cgi/admindb.py:478
+msgid " bytes"
+msgstr " ¥Ð¥¤¥È"
+
+#: Mailman/Cgi/admindb.py:478
+msgid "Size:"
+msgstr "¥µ¥¤¥º:"
+
+#: Mailman/Cgi/admindb.py:482 Mailman/Handlers/Decorate.py:50
+#: Mailman/Handlers/Scrubber.py:226 Mailman/Handlers/Scrubber.py:227
+msgid "not available"
+msgstr "̵¤·"
+
+#: Mailman/Cgi/admindb.py:483 Mailman/Cgi/admindb.py:601
+msgid "Reason:"
+msgstr "Íýͳ:"
+
+#: Mailman/Cgi/admindb.py:487 Mailman/Cgi/admindb.py:605
+msgid "Received:"
+msgstr "¼õ¿®:"
+
+#: Mailman/Cgi/admindb.py:545
+msgid "Posting Held for Approval"
+msgstr "Åê¹Æ¤Ï¾µÇ§¤Î¤¿¤áÊÝα"
+
+#: Mailman/Cgi/admindb.py:547
+msgid " (%(count)d of %(total)d)"
+msgstr " (%(total)d ¤Î %(count)d)"
+
+#: Mailman/Cgi/admindb.py:558
+msgid "<em>Message with id #%(id)d was lost."
+msgstr "<em>ID #%(id)d ¤Î¥á¥Ã¥»¡¼¥¸¤Ïʶ¼º¤·¤Æ¤¤¤Þ¤¹."
+
+#: Mailman/Cgi/admindb.py:567
+msgid "<em>Message with id #%(id)d is corrupted."
+msgstr "<em>ID #%(id)d ¤Î¥á¥Ã¥»¡¼¥¸¤Ï²õ¤ì¤Æ¤¤¤Þ¤¹."
+
+#: Mailman/Cgi/admindb.py:618
+msgid "Action:"
+msgstr "½èÃÖ:"
+
+#: Mailman/Cgi/admindb.py:622
+msgid "Preserve message for site administrator"
+msgstr "¥µ¥¤¥È´ÉÍý¼Ô¤Î¤¿¤á¤Ë¥á¥Ã¥»¡¼¥¸¤òÊݸ¤¹¤ë"
+
+#: Mailman/Cgi/admindb.py:626
+msgid "Additionally, forward this message to: "
+msgstr "¤µ¤é¤Ë, ¤³¤Î¥á¡¼¥ë¤òžÁ÷:"
+
+#: Mailman/Cgi/admindb.py:630
+msgid "[No explanation given]"
+msgstr "[Íýͳ¤Ï¼¨¤µ¤ì¤Æ¤¤¤Þ¤»¤ó]"
+
+#: Mailman/Cgi/admindb.py:632
+msgid "If you reject this post,<br>please explain (optional):"
+msgstr "¤³¤ÎÅê¹Æ¤òµñÈݤ¹¤ë¾ì¹ç,<br>¤½¤ÎÍýͳ (¥ª¥×¥·¥ç¥Ê¥ë):"
+
+#: Mailman/Cgi/admindb.py:638
+msgid "Message Headers:"
+msgstr "¥á¥Ã¥»¡¼¥¸¥Ø¥Ã¥À:"
+
+#: Mailman/Cgi/admindb.py:643
+msgid "Message Excerpt:"
+msgstr "¥á¥Ã¥»¡¼¥¸¤ÎÈ´½ñ¤­:"
+
+#: Mailman/Cgi/admindb.py:676 Mailman/Deliverer.py:124
+msgid "No reason given"
+msgstr "Íýͳ¤Ï¼¨¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
+
+#: Mailman/Cgi/admindb.py:737 Mailman/ListAdmin.py:308
+#: Mailman/ListAdmin.py:429
+msgid "[No reason given]"
+msgstr "[Íýͳ¤Ï¼¨¤µ¤ì¤Æ¤¤¤Þ¤»¤ó]"
+
+#: Mailman/Cgi/admindb.py:766
+msgid "Database Updated..."
+msgstr "¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¹¹¿·¤ò´°Î»¤·¤Þ¤·¤¿"
+
+#: Mailman/Cgi/admindb.py:769
+msgid " is already a member"
+msgstr " ¤Ï´û¤Ë²ñ°÷¤Ç¤¹"
+
+#: Mailman/Cgi/confirm.py:69
+msgid "Confirmation string was empty."
+msgstr "³Îǧʸ»úÎ󤬶õ¤Ç¤¹"
+
+#: Mailman/Cgi/confirm.py:89
+msgid ""
+"<b>Invalid confirmation string:</b>\n"
+" %(safecookie)s.\n"
+"\n"
+" <p>Note that confirmation strings expire approximately\n"
+" %(days)s days after the initial subscription request. If your\n"
+" confirmation has expired, please try to re-submit your subscription.\n"
+" Otherwise, <a href=\"%(confirmurl)s\">re-enter</a> your confirmation\n"
+" string."
+msgstr ""
+"<b>³Îǧʸ»úÎ󤬰㤤¤Þ¤¹:</b>\n"
+" %(safecookie)s.\n"
+"\n"
+"<p>³Îǧʸ»úÎó¤ÏºÇ½é¤ÎÆþ²ñ¿½ÀÁ¤«¤é¤ª¤è¤½ %(days)sÆü¤Ç\n"
+"´ü¸Â¤¬ÀÚ¤ì¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤. ¤â¤·³Îǧ¤¬´ü¸ÂÀÚ¤ì¤Ç¤¢¤ì¤Ð, ¤â¤¦°ìÅÙ\n"
+"Æþ²ñ¿½ÀÁ¤«¤é¤ä¤êľ¤·¤Æ¤¯¤À¤µ¤¤.\n"
+"¤¢¤ë¤¤¤Ï, ³Îǧʸ»úÎó¤ò<a "
+"href=\"%(confirmurl)s\">¤³¤³¤ÇºÆÆþÎÏ</a>¤·¤Æ¤¯¤À¤µ¤¤."
+
+#: Mailman/Cgi/confirm.py:122
+msgid ""
+"The address requesting unsubscription is not\n"
+" a member of the mailing list. Perhaps you have already "
+"been\n"
+" unsubscribed, e.g. by the list administrator?"
+msgstr ""
+"Âà²ñ¿½ÀÁ¤Î¤¢¤Ã¤¿¥¢¥É¥ì¥¹¤Ï²ñ°÷̾Êí¤Ë¤¢¤ê¤Þ¤»¤ó.\n"
+"¿ʬ, ¤¢¤Ê¤¿¤Ï´û¤Ë(´ÉÍý¼Ô¤Ë¤è¤Ã¤Æ?)Âà²ñ¤·¤Æ¤¤¤ë¤Î¤Ç¤·¤ç¤¦."
+
+#: Mailman/Cgi/confirm.py:138
+msgid ""
+"The address requesting to be changed has\n"
+" been subsequently unsubscribed. This request has been\n"
+" cancelled."
+msgstr ""
+"Êѹ¹¿½ÀÁ¤Î¤¢¤Ã¤¿¥¢¥É¥ì¥¹¤ÏÂà²ñ¤·¤Æ¤¤¤Þ¤¹.\n"
+"¤³¤Î¿½ÀÁ¤Ï¥­¥ã¥ó¥»¥ë¤µ¤ì¤Þ¤¹"
+
+#: Mailman/Cgi/confirm.py:157
+msgid "System error, bad content: %(content)s"
+msgstr "¥·¥¹¥Æ¥à¥¨¥é¡¼, ÆâÍÆ¤¬ÉÔÀµ: %(content)s"
+
+#: Mailman/Cgi/confirm.py:167
+msgid "Bad confirmation string"
+msgstr "³Îǧʸ»úÎ󤬰㤤¤Þ¤¹"
+
+#: Mailman/Cgi/confirm.py:175
+msgid "Enter confirmation cookie"
+msgstr "³Îǧ¥¯¥Ã¥­¡¼(ʸ»úÎó)¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤"
+
+#: Mailman/Cgi/confirm.py:188
+msgid ""
+"Please enter the confirmation string\n"
+" (i.e. <em>cookie</em>) that you received in your email message, in the "
+"box\n"
+" below. Then hit the <em>Submit</em> button to proceed to the next\n"
+" confirmation step."
+msgstr ""
+"²¼¤ÎÆþÎÏÍó¤Ë, ¤¢¤Ê¤¿¤¬¥á¡¼¥ë¤Ç¼õ¤±¼è¤Ã¤¿³Îǧʸ»úÎó(¤Ä¤Þ¤ê<em>\n"
+"¥¯¥Ã¥­¡¼</em>)¤òÆþ¤ì¤Æ¤¯¤À¤µ¤¤. ¼¡¤Ë, <em>Á÷¿®</em>¥Ü¥¿¥ó¤ò²¡¤·¤Æ, \n"
+"¼¡¤Î³Îǧ¼ê³¤­¤Ë¿Ê¤ó¤Ç¤¯¤À¤µ¤¤."
+
+#: Mailman/Cgi/confirm.py:193
+msgid "Confirmation string:"
+msgstr "³Îǧʸ»úÎó:"
+
+#: Mailman/Cgi/confirm.py:195
+msgid "Submit"
+msgstr "Á÷¿®"
+
+#: Mailman/Cgi/confirm.py:210
+msgid "Confirm subscription request"
+msgstr "Æþ²ñ¿½ÀÁ¤ò³Îǧ"
+
+#: Mailman/Cgi/confirm.py:227
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" subscription request to the mailing list <em>%(listname)s</em>. Your\n"
+" subscription settings are shown below; make any necessary changes and "
+"hit\n"
+" <em>Subscribe</em> to complete the confirmation process. Once you've\n"
+" confirmed your subscription request, you will be shown your account\n"
+" options page which you can use to further customize your membership\n"
+" options.\n"
+"\n"
+" <p>Note: your password will be emailed to you once your subscription is\n"
+" confirmed. You can change it by visiting your personal options page.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this subscription\n"
+" request."
+msgstr ""
+"<em>%(listname)s</em> ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ø¤ÎÆþ²ñ¿½ÀÁ¤ò´°Î»\n"
+"¤µ¤»¤ë¤Ë¤Ï, ¤¢¤Ê¤¿¤Î³Îǧ¤¬É¬ÍפǤ¹. ¤¢¤Ê¤¿¤ÎÆþ²ñÀßÄ꤬°Ê²¼¤Ë¼¨¤µ¤ì¤Æ\n"
+"¤¤¤Þ¤¹. ɬÍפÊÊѹ¹¤ò¹Ô¤Ê¤Ã¤Æ<em>Æþ²ñ</em>¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤¹¤ë¤È\n"
+"Æþ²ñ¼ê³¤­¤ò´°Î»¤·¤Þ¤¹. Æþ²ñ¿½ÀÁ³Îǧ¤¬´°Î»¤¹¤ë¤È, ²ñ°÷¥ª¥×¥·¥ç¥ó¥Ú¡¼¥¸\n"
+"¤Ë¿Ê¤ß¤Þ¤¹. ¤½¤³¤Ç¤¢¤Ê¤¿¤Ï²ñ°÷¥ª¥×¥·¥ç¥ó¤ò¤µ¤é¤Ë¥«¥¹¥¿¥Þ¥¤¥º¤¹¤ë¤³¤È¤¬\n"
+"¤Ç¤­¤Þ¤¹.\n"
+"\n"
+"<p>Ãí°Õ: Æþ²ñ³Îǧ¤¹¤ë¤È¥Ñ¥¹¥ï¡¼¥É¤ò¥á¡¼¥ë¤Ç¤¢¤Ê¤¿¤ËÁ÷¤ê¤Þ¤¹.\n"
+"¥Ñ¥¹¥ï¡¼¥É¤Ï²ñ°÷¥ª¥×¥·¥ç¥ó¥Ú¡¼¥¸¤ÇÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹.\n"
+"\n"
+"<p>¤Þ¤¿¤Ï<em>¥­¥ã¥ó¥»¥ë¡¦ÇË´þ</em>¥Ü¥¿¥ó¤ò²¡¤·¤ÆÆþ²ñ¿½ÀÁ¤ò¼è¤ê¾Ã¤¹¤³¤È¤â\n"
+"¤Ç¤­¤Þ¤¹."
+
+#: Mailman/Cgi/confirm.py:242
+msgid ""
+"Your confirmation is required in order to continue with\n"
+" the subscription request to the mailing list <em>%(listname)s</em>.\n"
+" Your subscription settings are shown below; make any necessary "
+"changes\n"
+" and hit <em>Subscribe to list ...</em> to complete the confirmation\n"
+" process. Once you've confirmed your subscription request, the\n"
+" moderator must approve or reject your membership request. You will\n"
+" receive notice of their decision.\n"
+"\n"
+" <p>Note: your password will be emailed to you once your "
+"subscription\n"
+" is confirmed. You can change it by visiting your personal options\n"
+" page.\n"
+"\n"
+" <p>Or, if you've changed your mind and do not want to subscribe to\n"
+" this mailing list, you can hit <em>Cancel my subscription\n"
+" request</em>."
+msgstr ""
+"<em>%(listname)s</em> ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ø¤ÎÆþ²ñ¿½ÀÁ¤ò³¹Ô\n"
+"¤µ¤»¤ë¤Ë¤Ï, ¤¢¤Ê¤¿¤Î³Îǧ¤¬É¬ÍפǤ¹. ¤¢¤Ê¤¿¤ÎÆþ²ñÀßÄ꤬°Ê²¼¤Ë¼¨¤µ¤ì¤Æ\n"
+"¤¤¤Þ¤¹. ɬÍפÊÊѹ¹¤ò¹Ô¤Ê¤Ã¤Æ<em>Æþ²ñ</em>¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤¹¤ë¤È\n"
+"Æþ²ñ¿½ÀÁ¤ò´°Î»¤·¤Þ¤¹. Æþ²ñ¿½ÀÁ³Îǧ¤¬´°Î»¤¹¤ë¤È, »Ê²ñ¼Ô¤¬Æþ²ñ¿½ÀÁ¤Î\n"
+"²ÄÈݤò·èÄꤷ¤Þ¤¹. ¤½¤Î·ë²Ì¤Ï¥á¡¼¥ë¤ÇÄÌÃΤ¤¤¿¤·¤Þ¤¹.\n"
+"\n"
+"<p>Ãí°Õ: Æþ²ñ³Îǧ¤¹¤ë¤È¥Ñ¥¹¥ï¡¼¥É¤ò¥á¡¼¥ë¤Ç¤¢¤Ê¤¿¤ËÁ÷¤ê¤Þ¤¹.\n"
+"¥Ñ¥¹¥ï¡¼¥É¤Ï²ñ°÷¥ª¥×¥·¥ç¥ó¥Ú¡¼¥¸¤ÇÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹.\n"
+"\n"
+"<p>¤Þ¤¿¤Ï<em>Æþ²ñ¿½ÀÁ¤ò¥­¥ã¥ó¥»¥ë</em>¥Ü¥¿¥ó¤ò²¡¤·¤ÆÆþ²ñ¿½ÀÁ¤ò¼è¤ê¾Ã¤¹¤³¤È¤â"
+"\n"
+"¤Ç¤­¤Þ¤¹."
+
+#: Mailman/Cgi/confirm.py:260
+msgid "Your email address:"
+msgstr "¤¢¤Ê¤¿¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹:"
+
+#: Mailman/Cgi/confirm.py:261
+msgid "Your real name:"
+msgstr "¤¢¤Ê¤¿¤Î¼Â̾:"
+
+#: Mailman/Cgi/confirm.py:270
+msgid "Receive digests?"
+msgstr "¤Þ¤È¤áÆÉ¤ß¤Ë¤·¤Þ¤¹¤«?"
+
+#: Mailman/Cgi/confirm.py:279
+msgid "Preferred language:"
+msgstr "¸À¸ì¤ÎÁªÂò:"
+
+#: Mailman/Cgi/confirm.py:284
+msgid "Cancel my subscription request"
+msgstr "Æþ²ñ¿½ÀÁ¤ò¥­¥ã¥ó¥»¥ë"
+
+#: Mailman/Cgi/confirm.py:285
+msgid "Subscribe to list %(listname)s"
+msgstr "%(listname)s ¥ê¥¹¥È¤ËÆþ²ñ"
+
+#: Mailman/Cgi/confirm.py:295
+msgid "You have canceled your subscription request."
+msgstr "¤¢¤Ê¤¿¤ÏÆþ²ñ¿½ÀÁ¤ò¥­¥ã¥ó¥»¥ë¤·¤Þ¤·¤¿."
+
+#: Mailman/Cgi/confirm.py:329
+msgid "Awaiting moderator approval"
+msgstr "»Ê²ñ¼Ô¤Î¾µÇ§¤òÂԤäƤ¤¤Þ¤¹"
+
+#: Mailman/Cgi/confirm.py:332
+msgid ""
+" You have successfully confirmed your subscription request to "
+"the\n"
+" mailing list %(listname)s, however final approval is required "
+"from\n"
+" the list moderator before you will be subscribed. Your request\n"
+" has been forwarded to the list moderator, and you will be "
+"notified\n"
+" of the moderator's decision."
+msgstr ""
+"¤¢¤Ê¤¿¤Ï %(listname)s ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ø¤ÎÆþ²ñ¿½ÀÁ³Îǧ¼ê³¤­¤ò\n"
+"´°Î»¤·¤Þ¤·¤¿. ¤·¤«¤·, ¤¢¤Ê¤¿¤¬Æþ²ñ¤¹¤ë¤Ë¤Ï¥ê¥¹¥È¤Î»Ê²ñ¼Ô¤ÎºÇ½ª¾µÇ§¤¬\n"
+"ɬÍפǤ¹. ¤¢¤Ê¤¿¤Î¿½ÀÁ¤Ï»Ê²ñ¼Ô¤ØÅ¾Á÷¤µ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç, ·èÄê¤Ë¤Ä¤¤¤Æ\n"
+"ÄÌÃΤ¬¤¢¤ë¤Ç¤·¤ç¤¦."
+
+#: Mailman/Cgi/confirm.py:339 Mailman/Cgi/confirm.py:394
+#: Mailman/Cgi/confirm.py:482 Mailman/Cgi/confirm.py:705
+msgid ""
+"Invalid confirmation string. It is\n"
+" possible that you are attempting to confirm a request for an\n"
+" address that has already been unsubscribed."
+msgstr ""
+"³Îǧʸ»úÎ󤬰㤤¤Þ¤¹. ´û¤ËÂà²ñ¤·¤¿¥¢¥É¥ì¥¹¤Ë¤Ä¤¤¤Æ¿½ÀÁ³Îǧ¤ò\n"
+"¤·¤Æ¤¤¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹."
+
+#: Mailman/Cgi/confirm.py:343
+msgid "You are already a member of this mailing list!"
+msgstr "¤¢¤Ê¤¿¤Ï´û¤Ë¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Î²ñ°÷¤Ç¤¹!"
+
+#: Mailman/Cgi/confirm.py:350
+msgid "Subscription request confirmed"
+msgstr "Æþ²ñ¿½ÀÁ¤ò³Îǧ"
+
+#: Mailman/Cgi/confirm.py:354
+msgid ""
+" You have successfully confirmed your subscription request for\n"
+" \"%(addr)s\" to the %(listname)s mailing list. A separate\n"
+" confirmation message will be sent to your email address, along\n"
+" with your password, and other useful information and links.\n"
+"\n"
+" <p>You can now\n"
+" <a href=\"%(optionsurl)s\">proceed to your membership login\n"
+" page</a>."
+msgstr ""
+"¤¢¤Ê¤¿¤Î, %(listname)s¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ø '%(addr)s' ¤òÆþ²ñ¤µ¤»¤ë·ï¤Ë\n"
+"¤Ä¤¤¤Æ¤Î¿½ÀÁ¤Ï, ³Îǧ¤ò´°Î»¤·¤Þ¤·¤¿. ÊÌÊØ¤Ç, ¤¢¤Ê¤¿¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹°¸¤Ë, \n"
+"³Îǧ¤Î¥á¥Ã¥»¡¼¥¸¤È¥Ñ¥¹¥ï¡¼¥É, ¤½¤Î¾¤ÎÊØÍø¤Ê¾ðÊó¤¬ÆÏ¤±¤é¤ì¤Þ¤¹.\n"
+"\n"
+"<p>¤³¤³¤Ç, ¤µ¤é¤Ë <a href=\"%(optionsurl)s\">²ñ°÷¥í¥°¥¤¥ó¥Ú¡¼¥¸</a>¤Ø¿Ê¤à\n"
+"¤³¤È¤¬¤Ç¤­¤Þ¤¹."
+
+#: Mailman/Cgi/confirm.py:372
+msgid "You have canceled your unsubscription request."
+msgstr "Âà²ñ¼ê³¤­¿½ÀÁ¤ò¥­¥ã¥ó¥»¥ë¤·¤Þ¤·¤¿."
+
+#: Mailman/Cgi/confirm.py:400
+msgid "Unsubscription request confirmed"
+msgstr "Âà²ñ¿½ÀÁ¤ò³Îǧ¤·¤Þ¤·¤¿."
+
+#: Mailman/Cgi/confirm.py:404
+msgid ""
+" You have successfully unsubscribed from the %(listname)s "
+"mailing\n"
+" list. You can now <a href=\"%(listinfourl)s\">visit the list's "
+"main\n"
+" information page</a>."
+msgstr ""
+"¤¢¤Ê¤¿¤Ï %(listname)s ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤«¤é¤ÎÂà²ñ¼ê³¤­¤ò´°Î»\n"
+"¤·¤Þ¤·¤¿. °ú¤­Â³¤­<a href=\"%(listinfourl)s\">¥ê¥¹¥È¤Î°ÆÆâ¥Ú¡¼¥¸</a>\n"
+"¤Ø."
+
+#: Mailman/Cgi/confirm.py:415
+msgid "Confirm unsubscription request"
+msgstr "Âà²ñ¿½ÀÁ¤ò³Îǧ"
+
+#: Mailman/Cgi/confirm.py:430 Mailman/Cgi/confirm.py:519
+msgid "<em>Not available</em>"
+msgstr "<em>¤¢¤ê¤Þ¤»¤ó</em>"
+
+#: Mailman/Cgi/confirm.py:433
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" unsubscription request from the mailing list <em>%(listname)s</em>. "
+"You\n"
+" are currently subscribed with\n"
+"\n"
+" <ul><li><b>Real name:</b> %(fullname)s\n"
+" <li><b>Email address:</b> %(addr)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Unsubscribe</em> button below to complete the confirmation\n"
+" process.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this unsubscription\n"
+" request."
+msgstr ""
+"<em>%(listname)s</em>¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤«¤éÂà²ñ¤¹¤ë¤Ë¤Ï, Âà²ñ¿½ÀÁ¤ò\n"
+"¤¢¤Ê¤¿¤¬³Îǧ¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹. ¤¢¤Ê¤¿¤Ï¸½ºß°Ê²¼¤Î¤è¤¦¤ËÆþ²ñ¤·¤Æ¤¤¤Þ¤¹...\n"
+"<ul><li><b>¼Â̾:</b> %(fullname)s\n"
+" <li><b>¥á¡¼¥ë¥¢¥É¥ì¥¹:</b> %(addr)s\n"
+"</ul>\n"
+"²¼¤Î<em>Âà²ñ</em>¥Ü¥¿¥ó¤ò²¡¤·¤Æ³Îǧ½èÍý¤ò´°Î»¤·¤Æ¤¯¤À¤µ¤¤.\n"
+"<p>¤Þ¤¿¤Ï, <em>¥­¥ã¥ó¥»¥ë¡¦ÇË´þ</em>¥Ü¥¿¥ó¤ÇÂà²ñ¿½ÀÁ¤ò¼è¤ê¾Ã¤¹¤³¤È¤â\n"
+"¤Ç¤­¤Þ¤¹."
+
+#: Mailman/Cgi/confirm.py:449 Mailman/Cgi/options.py:660
+#: Mailman/Cgi/options.py:801 Mailman/Cgi/options.py:811
+msgid "Unsubscribe"
+msgstr "Âà²ñ"
+
+#: Mailman/Cgi/confirm.py:450 Mailman/Cgi/confirm.py:548
+msgid "Cancel and discard"
+msgstr "¥­¥ã¥ó¥»¥ë¡¦ÇË´þ"
+
+#: Mailman/Cgi/confirm.py:460
+msgid "You have canceled your change of address request."
+msgstr "¤¢¤Ê¤¿¤Ï¥¢¥É¥ì¥¹Êѹ¹¤Î¿½ÀÁ¤ò¼è¤ê¾Ã¤·¤Þ¤·¤¿."
+
+#: Mailman/Cgi/confirm.py:488
+msgid "Change of address request confirmed"
+msgstr "¥¢¥É¥ì¥¹Êѹ¹¿½ÀÁ¤ò³Îǧ¤·¤Þ¤·¤¿"
+
+#: Mailman/Cgi/confirm.py:492
+msgid ""
+" You have successfully changed your address on the %(listname)s\n"
+" mailing list from <b>%(oldaddr)s</b> to <b>%(newaddr)s</b>. "
+"You\n"
+" can now <a href=\"%(optionsurl)s\">proceed to your membership\n"
+" login page</a>."
+msgstr ""
+"¤¢¤Ê¤¿¤Ï %(listname)s ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ç¤Î¼õ¿®¥¢¥É¥ì¥¹¤ò\n"
+"<b>%(oldaddr)s</b> ¤«¤é <b>%(newaddr)s</b> ¤ËÊѹ¹´°Î»¤·¤Þ¤·¤¿.\n"
+"°ú¤­Â³¤­ <a href=\"%(optionsurl)s\">²ñ°÷¥í¥°¥¤¥ó¥Ú¡¼¥¸</a>¤Ø¤É¤¦¤¾."
+
+#: Mailman/Cgi/confirm.py:504
+msgid "Confirm change of address request"
+msgstr "¥¢¥É¥ì¥¹Êѹ¹¿½ÀÁ¤ò³Îǧ¤·¤Þ¤·¤¿"
+
+#: Mailman/Cgi/confirm.py:523
+msgid "globally"
+msgstr "Á´Éô"
+
+#: Mailman/Cgi/confirm.py:526
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" change of address request for the mailing list <em>%(listname)s</em>. "
+"You\n"
+" are currently subscribed with\n"
+"\n"
+" <ul><li><b>Real name:</b> %(fullname)s\n"
+" <li><b>Old email address:</b> %(oldaddr)s\n"
+" </ul>\n"
+"\n"
+" and you have requested to %(globallys)s change your email address to\n"
+"\n"
+" <ul><li><b>New email address:</b> %(newaddr)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Change address</em> button below to complete the "
+"confirmation\n"
+" process.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this change of address\n"
+" request."
+msgstr ""
+"<em>%(listname)s</em>¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ç¤Î¤¢¤Ê¤¿¤ÎÇÛÁ÷¥á¡¼¥ë¥¢¥É¥ì¥¹\n"
+"Êѹ¹¤ò´°Î»¤¹¤ë¤Ë¤Ï, ¤¢¤Ê¤¿¼«¿È¤Ë¤è¤ë³Îǧ¤¬É¬ÍפǤ¹. ¸½ºß, ¤¢¤Ê¤¿¤Ï\n"
+"<ul><li><b>¼Â̾:</b> %(fullname)s\n"
+" <li><b>µì¥á¡¼¥ë¥¢¥É¥ì¥¹:</b> %(oldaddr)s\n"
+"</ul>\n"
+"¤ÇÆþ²ñ¤·¤Æ¤¤¤Þ¤¹. ¤½¤·¤Æ, ¤¢¤Ê¤¿¤Ï¥á¡¼¥ë¥¢¥É¥ì¥¹¤ò\n"
+"<ul><li><b>¿·¥á¡¼¥ë¥¢¥É¥ì¥¹:</b> %(newaddr)s\n"
+"¤Ë %(globallys)s Êѹ¹¤¹¤ë¤è¤¦¤Ë¿½ÀÁ¤·¤Þ¤·¤¿.\n"
+"³Îǧ¼ê³¤­¤ò´°Î»¤¹¤ë¤Ë¤Ï, ²¼¤Î<em>¥¢¥É¥ì¥¹Êѹ¹</em>¥Ü¥¿¥ó¤ò²¡¤·¤Æ¤¯¤À¤µ¤¤.\n"
+"<p>¤¢¤ë¤¤¤Ï, <em>¥­¥ã¥ó¥»¥ë¡¦ÇË´þ</em>¥Ü¥¿¥ó¤ò²¡¤·¤Æ¥¢¥É¥ì¥¹Êѹ¹¿½ÀÁ¤ò\n"
+"¼è¤ê¾Ã¤¹¤³¤È¤â¤Ç¤­¤Þ¤¹."
+
+#: Mailman/Cgi/confirm.py:547
+msgid "Change address"
+msgstr "¥¢¥É¥ì¥¹Êѹ¹"
+
+#: Mailman/Cgi/confirm.py:557 Mailman/Cgi/confirm.py:670
+msgid "Continue awaiting approval"
+msgstr "¾µÇ§ÂÔ¤Á¤ò³¹Ô"
+
+#: Mailman/Cgi/confirm.py:564
+msgid ""
+"Okay, the list moderator will still have the\n"
+" opportunity to approve or reject this message."
+msgstr ""
+"λ²ò. ¥ê¥¹¥È»Ê²ñ¼Ô¤Ë¤Ï, ¤³¤Î¥á¡¼¥ë¤ò¾µÇ§¤¹¤ë¤«µñÈݤ¹¤ë¤«\n"
+"¤ò·èÄꤹ¤ë¥Á¥ã¥ó¥¹¤¬¤Þ¤À¤¢¤ê¤Þ¤¹."
+
+#: Mailman/Cgi/confirm.py:590
+msgid "Sender discarded message via web."
+msgstr "Á÷¿®¼Ô¤¬ Web ¤Ç¥á¡¼¥ë¤òÇË´þ¤·¤Þ¤·¤¿."
+
+#: Mailman/Cgi/confirm.py:592
+msgid ""
+"The held message with the Subject:\n"
+" header <em>%(subject)s</em> could not be found. The most "
+"likely\n"
+" reason for this is that the list moderator has already approved "
+"or\n"
+" rejected the message. You were not able to cancel it in\n"
+" time."
+msgstr ""
+"·ï̾: ¤¬ <em>%(subject)s</em>¤Ç¤¢¤ë¤è¤¦¤ÊÊÝα¥á¡¼¥ë¤Ï¸«¤Ä¤«¤ê¤Þ¤»¤ó\n"
+"¤Ç¤·¤¿. ¤â¤·¤«¤·¤¿¤é, ¥ê¥¹¥È¤Î»Ê²ñ¼Ô¤¬´û¤Ë¾µÇ§¤Þ¤¿¤ÏµñÈݤ·¤¿¤Î¤«¤â\n"
+"¤·¤ì¤Þ¤»¤ó. ¼è¤ê¾Ã¤¹¤Î¤¬´Ö¤Ë¹ç¤ï¤Ê¤«¤Ã¤¿¤È¤¤¤¦¤³¤È¤Ç¤¹."
+
+#: Mailman/Cgi/confirm.py:600
+msgid "Posted message canceled"
+msgstr "Åê¹Æ¥á¡¼¥ë¤Ï¼è¤ê¾Ã¤µ¤ì¤Þ¤·¤¿."
+
+#: Mailman/Cgi/confirm.py:603
+msgid ""
+" You have successfully canceled the posting of your message with\n"
+" the Subject: header <em>%(subject)s</em> to the mailing list\n"
+" %(listname)s."
+msgstr ""
+"·ï̾: ¤¬ <em>%(subject)s</em>¤Ç¤¢¤ë, %(listname)s ¥á¡¼¥ê¥ó¥°\n"
+"¥ê¥¹¥È¤Ø¤ÎÅê¹Æ¥á¥Ã¥»¡¼¥¸¤Ï¼è¤ê¾Ã¤·¤ò´°Î»¤·¤Þ¤·¤¿."
+
+#: Mailman/Cgi/confirm.py:614
+msgid "Cancel held message posting"
+msgstr "ÊÝÎ±Ãæ¤ÎÅê¹Æ¥á¥Ã¥»¡¼¥¸¤ò¥­¥ã¥ó¥»¥ë."
+
+#: Mailman/Cgi/confirm.py:639
+msgid ""
+"The held message you were referred to has\n"
+" already been handled by the list administrator."
+msgstr "ÊÝα¤Ë¤Ê¤Ã¤Æ¤¤¤¿¤¢¤Ê¤¿¤Î¥á¡¼¥ë¤Ï, ¤¹¤Ç¤Ë¥ê¥¹¥È´ÉÍý¼Ô¤¬½èÍý¤·¤Þ¤·¤¿."
+
+#: Mailman/Cgi/confirm.py:653
+msgid ""
+"Your confirmation is required in order to cancel the\n"
+" posting of your message to the mailing list <em>%(listname)s</em>:\n"
+"\n"
+" <ul><li><b>Sender:</b> %(sender)s\n"
+" <li><b>Subject:</b> %(subject)s\n"
+" <li><b>Reason:</b> %(reason)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Cancel posting</em> button to discard the posting.\n"
+"\n"
+" <p>Or hit the <em>Continue awaiting approval</em> button to continue to\n"
+" allow the list moderator to approve or reject the message."
+msgstr ""
+"¤¢¤Ê¤¿¤¬ <em>%(listname)s</em> ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ØÅê¹Æ¤·¤¿\n"
+"°Ê²¼¤Î¥á¡¼¥ë¤ò¼è¤ê¾Ã¤¹¤Ë¤Ï, ¤¢¤Ê¤¿¤Î³Îǧ¤¬É¬ÍפǤ¹. <ul><li><b>Á÷¿®¼Ô:</b> "
+"%(sender)s\n"
+" <li><b>·ï̾:</b> %(subject)s\n"
+" <li><b>Íýͳ:</b> %(reason)s\n"
+"</ul>\n"
+"<em>Åê¹Æ¼è¤ê¾Ã¤·</em>¥Ü¥¿¥ó¤ò²¡¤·¤ÆÅê¹Æ¥á¡¼¥ë¤òÇË´þ¤·¤Æ¤¯¤À¤µ¤¤.\n"
+"<p>¤¢¤ë¤¤¤Ï, <em>¾µÇ§ÂÔ¤Á¤ò³¹Ô</em>¥Ü¥¿¥ó¤ò²¡¤¹¤È, °ú¤­Â³¤­, \n"
+"¥á¡¼¥ë¤ò¾µÇ§¤¹¤ë¤«µñÈݤ¹¤ë¤«¤ÎȽÃǤò, »Ê²ñ¼Ô¤Ë¤æ¤À¤Í¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹."
+
+#: Mailman/Cgi/confirm.py:669
+msgid "Cancel posting"
+msgstr "Åê¹Æ¼è¤ê¾Ã¤·"
+
+#: Mailman/Cgi/confirm.py:681
+msgid ""
+"You have canceled the re-enabling of your membership. If\n"
+" we continue to receive bounces from your address, it could be deleted "
+"from\n"
+" this mailing list."
+msgstr ""
+"¤¢¤Ê¤¿¤Ï²ñ°÷Éüµ¢¤ò¥­¥ã¥ó¥»¥ë¤·¤Þ¤·¤¿. ¤â¤·, ¤¢¤Ê¤¿¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹\n"
+" ¤«¤é, °ú¤­Â³¤­¥¨¥é¡¼¥á¡¼¥ë¤ò¼õ¤±¼è¤ë¤è¤¦¤Ê¤é¤Ð¡¢¤¢¤Ê¤¿¤Ï¤³¤Î\n"
+" ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤«¤éÂà²ñ¤µ¤»¤é¤ì¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹."
+
+#: Mailman/Cgi/confirm.py:711
+msgid "Membership re-enabled."
+msgstr "²ñ°÷¤ËÉüµ¢."
+
+#: Mailman/Cgi/confirm.py:715
+msgid ""
+" You have successfully re-enabled your membership in the\n"
+" %(listname)s mailing list. You can now <a\n"
+" href=\"%(optionsurl)s\">visit your member options page</a>.\n"
+" "
+msgstr ""
+"¤¢¤Ê¤¿¤Ï %(listname)s ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Î²ñ°÷¤ËÉüµ¢¤·¤Þ¤·¤¿.\n"
+"°ú¤­Â³¤­<a href=\"%(optionsurl)s\">²ñ°÷¥ª¥×¥·¥ç¥ó¥Ú¡¼¥¸</a>\n"
+"¤Ø¤É¤¦¤¾."
+
+#: Mailman/Cgi/confirm.py:727
+msgid "Re-enable mailing list membership"
+msgstr "¥á¡¼¥ê¥ó¥°¥ê¥¹¥È²ñ°÷Éüµ¢"
+
+#: Mailman/Cgi/confirm.py:744
+msgid ""
+"We're sorry, but you have already been unsubscribed\n"
+" from this mailing list. To re-subscribe, please visit the\n"
+" <a href=\"%(listinfourl)s\">list information page</a>."
+msgstr ""
+"»Äǰ¤Ç¤¹¤¬, ¤¢¤Ê¤¿¤Ï¤³¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤«¤é´û¤ËÂà²ñ¤·¤Æ¤¤¤Þ¤¹.\n"
+"ºÆÅÙÆþ²ñ¤¹¤ë¤Ë¤Ï, <a href=\"%(listinfourl)s\">¥ê¥¹¥È¤Î°ÆÆâ¥Ú¡¼¥¸</a>\n"
+"¤Ø¤É¤¦¤¾."
+
+#: Mailman/Cgi/confirm.py:758
+msgid "<em>not available</em>"
+msgstr "<em>¤¢¤ê¤Þ¤»¤ó</em>"
+
+#: Mailman/Cgi/confirm.py:762
+msgid ""
+"Your membership in the %(realname)s mailing list is\n"
+" currently disabled due to excessive bounces. Your confirmation is\n"
+" required in order to re-enable delivery to your address. We have the\n"
+" following information on file:\n"
+"\n"
+" <ul><li><b>Member address:</b> %(member)s\n"
+" <li><b>Member name:</b> %(username)s\n"
+" <li><b>Last bounce received on:</b> %(date)s\n"
+" <li><b>Approximate number of days before you are permanently "
+"removed\n"
+" from this list:</b> %(daysleft)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Re-enable membership</em> button to resume receiving "
+"postings\n"
+" from the mailing list. Or hit the <em>Cancel</em> button to defer\n"
+" re-enabling your membership.\n"
+" "
+msgstr ""
+"%(realname)s ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ë¤ª¤±¤ë¤¢¤Ê¤¿¤Î²ñ°÷¸¢¤Ï, ¥¨¥é¡¼¥á¡¼¥ë\n"
+" ¿ȯ¤Î¤¿¤á¸½ºßÄä»ß¤µ¤»¤é¤ì¤Æ¤¤¤Þ¤¹. ¤¢¤Ê¤¿¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤Ø¤ÎÇÛÁ÷\n"
+" ¤òÉü³è¤µ¤»¤ë¤Ë¤Ï³Îǧ¤¬É¬ÍפǤ¹. ¸½ºß, °Ê²¼¤Î¾ðÊ󤬥ե¡¥¤¥ë¤µ¤ì¤Æ¤¤¤Þ¤¹:\n"
+"\n"
+"<ul><li><b>¥á¡¼¥ë¥¢¥É¥ì¥¹:</b> %(member)s\n"
+" <li><b>²ñ°÷̾:</b> %(username)s\n"
+" <li><b>ºÇ¿·¤Î¥¨¥é¡¼È¯À¸Æü:</b> %(date)s\n"
+" <li><b>ºï½ü(¶¯À©Âà²ñ)¤Þ¤Ç¤Î¤ª¤è¤½¤ÎÆü¿ô:</b> %(daysleft)s\n"
+"</ul>\n"
+"\n"
+" <em>²ñ°÷Éüµ¢</em>¥Ü¥¿¥ó¤ò²¡¤·¤Æ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Î¥á¡¼¥ë¼õ¿®¤ò\n"
+" ºÆ³«¤¹¤ë¤«, <em>¥­¥ã¥ó¥»¥ë</em>¥Ü¥¿¥ó¤ò²¡¤·¤Æ²ñ°÷¸¢Éü³è¤ò±ä´ü\n"
+" ¤¹¤ë¤«¤·¤Æ¤¯¤À¤µ¤¤."
+
+#: Mailman/Cgi/confirm.py:782
+msgid "Re-enable membership"
+msgstr "²ñ°÷Éüµ¢"
+
+#: Mailman/Cgi/confirm.py:783
+msgid "Cancel"
+msgstr "¥­¥ã¥ó¥»¥ë"
+
+#: Mailman/Cgi/create.py:48 Mailman/Cgi/rmlist.py:48
+msgid "Bad URL specification"
+msgstr "URL¤Îµ­½Ò¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹."
+
+#: Mailman/Cgi/create.py:63 Mailman/Cgi/rmlist.py:176
+msgid "Return to the "
+msgstr "Ìá¤ë:"
+
+#: Mailman/Cgi/create.py:65 Mailman/Cgi/rmlist.py:178
+msgid "general list overview"
+msgstr "¥á¡¼¥ê¥ó¥°¥ê¥¹¥È°ìÍ÷¥Ú¡¼¥¸"
+
+#: Mailman/Cgi/create.py:66 Mailman/Cgi/rmlist.py:179
+msgid "<br>Return to the "
+msgstr "<br>Ìá¤ë:"
+
+#: Mailman/Cgi/create.py:68 Mailman/Cgi/rmlist.py:181
+msgid "administrative list overview"
+msgstr "´ÉÍý¥ê¥¹¥È°ìÍ÷"
+
+#: Mailman/Cgi/create.py:101
+msgid "List name must not include \"@\": %(listname)s"
+msgstr "¥ê¥¹¥È̾¤Ë¤Ï @ ¤òÆþ¤ì¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó: %(listname)s"
+
+#: Mailman/Cgi/create.py:107 Mailman/Cgi/create.py:185 bin/newlist:134
+#: bin/newlist:168
+msgid "List already exists: %(listname)s"
+msgstr "¥ê¥¹¥È¤¬´û¤Ë¤¢¤ê¤Þ¤¹: %(listname)s"
+
+#: Mailman/Cgi/create.py:111
+msgid "You forgot to enter the list name"
+msgstr "¥ê¥¹¥È̾¤ò˺¤ì¤Æ¤¤¤Þ¤¹."
+
+#: Mailman/Cgi/create.py:115
+msgid "You forgot to specify the list owner"
+msgstr "¥ê¥¹¥È´ÉÍý¼Ô¤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤."
+
+#: Mailman/Cgi/create.py:122
+msgid ""
+"Leave the initial password (and confirmation) fields\n"
+" blank if you want Mailman to autogenerate the list\n"
+" passwords."
+msgstr ""
+"Mailman ¤¬¼«Æ°Åª¤Ë¥ê¥¹¥È¥Ñ¥¹¥ï¡¼¥É¤òºîÀ®¤¹¤ë¤Î¤¬¤è¤±¤ì¤Ð\n"
+"½é´ü¥Ñ¥¹¥ï¡¼¥É(¤È³Îǧ)¤ÎÍó¤ò¶õÇò¤Ë¤·¤Æ¤ª¤¤¤Æ¤¯¤À¤µ¤¤."
+
+#: Mailman/Cgi/create.py:130
+msgid "Initial list passwords do not match"
+msgstr "½é´ü¥Ñ¥¹¥ï¡¼¥É¤¬°ìÃפ·¤Þ¤»¤ó"
+
+#: Mailman/Cgi/create.py:139
+msgid "The list password cannot be empty<!-- ignore -->"
+msgstr "¥ê¥¹¥È¤Î¥Ñ¥¹¥ï¡¼¥É¤ò¶õÇò¤Ë¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó"
+
+#: Mailman/Cgi/create.py:151
+msgid "You are not authorized to create new mailing lists"
+msgstr "¤¢¤Ê¤¿¤Ï¿·¤·¤¤¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤òºîÀ®¤¹¤ë¸¢¸Â¤¬¤¢¤ê¤Þ¤»¤ó"
+
+#: Mailman/Cgi/create.py:181 bin/newlist:166
+msgid "Bad owner email address: %(s)s"
+msgstr "ÉÔÀµ¤Ê´ÉÍý¼Ô¥á¡¼¥ë¥¢¥É¥ì¥¹: %(s)s"
+
+#: Mailman/Cgi/create.py:189 bin/newlist:164
+msgid "Illegal list name: %(s)s"
+msgstr "ÉÔÀµ¤Ê¥ê¥¹¥È̾: %(s)s"
+
+#: Mailman/Cgi/create.py:194
+msgid ""
+"Some unknown error occurred while creating the list.\n"
+" Please contact the site administrator for assistance."
+msgstr ""
+"¥ê¥¹¥ÈºîÀ®Ãæ¤ËÍýͳÉÔÌÀ¤Î¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿.\n"
+"¥µ¥¤¥È´ÉÍý¼Ô¤ËÏ¢Íí¤·¤Æ¸«¤Æ¤â¤é¤Ã¤Æ¤¯¤À¤µ¤¤."
+
+#: Mailman/Cgi/create.py:233 bin/newlist:210
+msgid "Your new mailing list: %(listname)s"
+msgstr "¤¢¤Ê¤¿¤Î¿·¤·¤¤¥á¡¼¥ê¥ó¥°¥ê¥¹¥È: %(listname)s"
+
+#: Mailman/Cgi/create.py:242
+msgid "Mailing list creation results"
+msgstr "¥á¡¼¥ê¥ó¥°¥ê¥¹¥ÈºîÀ®·ë²Ì"
+
+#: Mailman/Cgi/create.py:248
+msgid ""
+"You have successfully created the mailing list\n"
+" <b>%(listname)s</b> and notification has been sent to the list owner\n"
+" <b>%(owner)s</b>. You can now:"
+msgstr ""
+"¥á¡¼¥ê¥ó¥°¥ê¥¹¥È<b>%(listname)s</b>¤ÎºîÀ®¤¬´°Î»¤·¤Þ¤·¤¿.\n"
+"´ÉÍý¼Ô¤Î<b>%(owner)s</b>¤ØÄÌÃΤ¬È¯Á÷¤µ¤ì¤¿¤È¤³¤í¤Ç¤¹.\n"
+"°ú¤­Â³¤­ ..."
+
+#: Mailman/Cgi/create.py:252
+msgid "Visit the list's info page"
+msgstr "¥ê¥¹¥È¤Î°ÆÆâ¥Ú¡¼¥¸¤Ø¹Ô¤¯"
+
+#: Mailman/Cgi/create.py:253
+msgid "Visit the list's admin page"
+msgstr "¥ê¥¹¥È´ÉÍý¥Ú¡¼¥¸¤Ø¹Ô¤¯"
+
+#: Mailman/Cgi/create.py:254
+msgid "Create another list"
+msgstr "Ê̤Υꥹ¥È¤òºîÀ®¤¹¤ë"
+
+#: Mailman/Cgi/create.py:272
+msgid "Create a %(hostname)s Mailing List"
+msgstr "%(hostname)s ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤òºîÀ®"
+
+#: Mailman/Cgi/create.py:281 Mailman/Cgi/rmlist.py:199
+#: Mailman/Gui/Bounce.py:175 Mailman/htmlformat.py:339
+msgid "Error: "
+msgstr "¥¨¥é¡¼: "
+
+#: Mailman/Cgi/create.py:283
+msgid ""
+"You can create a new mailing list by entering the\n"
+" relevant information into the form below. The name of the mailing list\n"
+" will be used as the primary address for posting messages to the list, "
+"so\n"
+" it should be lowercased. You will not be able to change this once the\n"
+" list is created.\n"
+"\n"
+" <p>You also need to enter the email address of the initial list owner.\n"
+" Once the list is created, the list owner will be given notification, "
+"along\n"
+" with the initial list password. The list owner will then be able to\n"
+" modify the password and add or remove additional list owners.\n"
+"\n"
+" <p>If you want Mailman to automatically generate the initial list admin\n"
+" password, click on `Yes' in the autogenerate field below, and leave the\n"
+" initial list password fields empty.\n"
+"\n"
+" <p>You must have the proper authorization to create new mailing lists.\n"
+" Each site should have a <em>list creator's</em> password, which you can\n"
+" enter in the field at the bottom. Note that the site administrator's\n"
+" password can also be used for authentication.\n"
+" "
+msgstr ""
+"¤³¤³¤Ç¤Ï, ɬÍפʾðÊó¤ò°Ê²¼¤Î¥Õ¥©¡¼¥à¤Ëµ­Æþ¤¹¤ë¤³¤È¤Ç, ¿·¤·¤¤\n"
+"¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤òºîÀ®¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹. ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Î\n"
+"̾Á°¤Ï, ¥ê¥¹¥È¤Øµ­»ö¤òÅê¹Æ¤¹¤ëºÝ¤Î´ðËÜ¥¢¥É¥ì¥¹¤È¤·¤Æ»È¤ï¤ì¤Þ¤¹\n"
+"¤Î¤Ç, ±Ñ»Òʸ»ú¤Çµ­Æþ¤·¤Æ¤¯¤À¤µ¤¤. °ìÅÙºîÀ®¤¹¤ë¤È, ¤³¤ì¤òÊѹ¹¤¹¤ë\n"
+"¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó.\n"
+"<p>¤Þ¤¿, ºÇ½é¤Î¥ê¥¹¥È´ÉÍý¼Ô¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤¬É¬ÍפǤ¹.\n"
+"¥ê¥¹¥È¤¬ºîÀ®¤µ¤ì¤ë¤È, ¥ê¥¹¥È¤Î½é´ü¥Ñ¥¹¥ï¡¼¥É¤¬´ÉÍý¼Ô¤ËÁ÷¿®¤µ¤ì¤Þ¤¹.\n"
+"¥ê¥¹¥È´ÉÍý¼Ô¤Ï, ¥Ñ¥¹¥ï¡¼¥É¤òÊѹ¹¤·¤¿¤ê, ¥ê¥¹¥È´ÉÍý¼Ô¤òÄɲä·¤¿¤ê¤¹¤ë\n"
+"¤³¤È¤¬¤Ç¤­¤Þ¤¹.\n"
+"<p>¤â¤·, Mailman¤¬¼«Æ°Åª¤Ë½é´ü¥Ñ¥¹¥ï¡¼¥É¤òÀ¸À®¤¹¤ë¤Û¤¦¤¬¤è¤±¤ì¤Ð,\n"
+"²¼¤Î¼«Æ°À¸À®¤Î¤È¤³¤í¤ò¡Ö¤Ï¤¤¡×¤Ë¤·¤Æ, ¥Ñ¥¹¥ï¡¼¥ÉÆþÎÏÍó¤ò¶õÇò¤Ë\n"
+"¤·¤Æ¤ª¤¤¤Æ¤¯¤À¤µ¤¤.\n"
+"<p>¤¢¤Ê¤¿¤Ï, ¿·¤·¤¤¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤òºîÀ®¤¹¤ë¸¢¸Â¤ò»ý¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð\n"
+"¤Ê¤ê¤Þ¤»¤ó. ¥µ¥¤¥È¤Ë¤Ï<em>¥ê¥¹¥ÈºîÀ®¼Ô</em>¤Î¥Ñ¥¹¥ï¡¼¥É¤¬ÀßÄꤵ¤ì¤Æ\n"
+"¤¤¤Þ¤¹. ¤³¤ì¤ò°ìÈÖ²¼¤ÎÍó¤ËÆþÎϤ·¤Æ¤¯¤À¤µ¤¤. ¥µ¥¤¥È´ÉÍý¼Ô¤Î¥Ñ¥¹¥ï¡¼¥É\n"
+"¤Ç¤âǧ¾Ú¤¬²Äǽ¤Ç¤¹."
+
+#: Mailman/Cgi/create.py:309
+msgid "List Identity"
+msgstr "¥ê¥¹¥È¼±ÊÌ"
+
+#: Mailman/Cgi/create.py:312
+msgid "Name of list:"
+msgstr "¥ê¥¹¥È¤Î̾Á°:"
+
+#: Mailman/Cgi/create.py:317
+msgid "Initial list owner address:"
+msgstr "ºÇ½é¤Î¥ê¥¹¥È´ÉÍý¼Ô¥¢¥É¥ì¥¹:"
+
+#: Mailman/Cgi/create.py:326
+msgid "Auto-generate initial list password?"
+msgstr "½é´ü¥Ñ¥¹¥ï¡¼¥É¤ò¼«Æ°À¸À®¤·¤Þ¤¹¤«?"
+
+#: Mailman/Cgi/create.py:333
+msgid "Initial list password:"
+msgstr " ½é´ü¥ê¥¹¥È¥Ñ¥¹¥ï¡¼¥É:"
+
+#: Mailman/Cgi/create.py:338
+msgid "Confirm initial password:"
+msgstr "½é´ü¥Ñ¥¹¥ï¡¼¥É¤Î³Îǧ:"
+
+#: Mailman/Cgi/create.py:348
+msgid "List Characteristics"
+msgstr "¥ê¥¹¥È¤ÎÀ­³Ê"
+
+#: Mailman/Cgi/create.py:352
+msgid ""
+"Should new members be quarantined before they\n"
+" are allowed to post unmoderated to this list? Answer <em>Yes</em> to "
+"hold\n"
+" new member postings for moderator approval by default."
+msgstr ""
+"¿·¤·¤¤¥á¥ó¥Ð¡¼¤Ï¾µÇ§¥×¥í¥»¥¹Ìµ¤·¤ËÅê¹Æ¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¤Þ¤Ç\n"
+"³ÖÎ¥¤¹¤ë¤³¤È¤Ë¤·¤Þ¤¹¤«? ¿·¥á¥ó¥Ð¡¼¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç»Ê²ñ¼Ô¤Î¾µÇ§¤¬\n"
+"ɬÍפǤ¢¤ì¤Ð, <em>¤Ï¤¤</em>¤òÁª¤ó¤Ç¤¯¤À¤µ¤¤."
+
+#: Mailman/Cgi/create.py:383
+msgid ""
+"Initial list of supported languages. <p>Note that if you do not\n"
+" select at least one initial language, the list will use the server\n"
+" default language of %(deflang)s"
+msgstr ""
+"ºÇ½é¤Ë»ÈÍѤǤ­¤ë¸À¸ì. <p>ºÇ½é¤Ë»ÈÍѤǤ­¤ë¸À¸ì¤ò¾¯¤Ê¤¯¤È¤â¤Ò¤È¤Ä¤Ï\n"
+"Áª¤ó¤Ç¤ª¤«¤Ê¤¤¤È, ¥ê¥¹¥È¤Ï¥µ¡¼¥Ð¤Î¥Ç¥Õ¥©¥ë¥È¸À¸ì¤Ç¤¢¤ë %(deflang)s ¤ò\n"
+"»ÈÍѤ·¤Þ¤¹."
+
+#: Mailman/Cgi/create.py:394
+msgid "Send \"list created\" email to list owner?"
+msgstr "¡Ö¥ê¥¹¥ÈºîÀ®´°Î»¡×¤ò¥á¡¼¥ë¤Ç´ÉÍý¼Ô¤ËÃΤ餻¤Þ¤¹¤«?"
+
+#: Mailman/Cgi/create.py:403
+msgid "List creator's (authentication) password:"
+msgstr "¥ê¥¹¥ÈºîÀ®¼Ô¤Îǧ¾Ú¥Ñ¥¹¥ï¡¼¥É:"
+
+#: Mailman/Cgi/create.py:408
+msgid "Create List"
+msgstr "¥ê¥¹¥È¤òºîÀ®¤¹¤ë"
+
+#: Mailman/Cgi/create.py:409
+msgid "Clear Form"
+msgstr "µ­Æþ¤ò¥¯¥ê¥¢¡¼"
+
+#: Mailman/Cgi/edithtml.py:43
+msgid "General list information page"
+msgstr "°ìÈ̸þ¤±¥ê¥¹¥È°ÆÆâ¥Ú¡¼¥¸"
+
+#: Mailman/Cgi/edithtml.py:44
+msgid "Subscribe results page"
+msgstr "Æþ²ñ¤Î·ë²Ì¥Ú¡¼¥¸"
+
+#: Mailman/Cgi/edithtml.py:45
+msgid "User specific options page"
+msgstr "¥æ¡¼¥¶¸ÇÍ­¤Î¥ª¥×¥·¥ç¥ó¥Ú¡¼¥¸"
+
+#: Mailman/Cgi/edithtml.py:57
+msgid "List name is required."
+msgstr "¥ê¥¹¥È¤Î̾Á°¤¬É¬ÍפǤ¹."
+
+#: Mailman/Cgi/edithtml.py:97
+msgid "%(realname)s -- Edit html for %(template_info)s"
+msgstr "%(realname)s -- %(template_info)s ¤Î HTML ¤òÊÔ½¸"
+
+#: Mailman/Cgi/edithtml.py:103
+msgid "Edit HTML : Error"
+msgstr "HTML¤ÎÊÔ½¸ : ¥¨¥é¡¼"
+
+#: Mailman/Cgi/edithtml.py:104
+msgid "%(safetemplatename)s: Invalid template"
+msgstr "%(safetemplatename)s: ¿÷·¿(¥Æ¥ó¥×¥ì¡¼¥È)¤¬°ã¤¤¤Þ¤¹"
+
+#: Mailman/Cgi/edithtml.py:109 Mailman/Cgi/edithtml.py:110
+msgid "%(realname)s -- HTML Page Editing"
+msgstr "%(realname)s -- HTML ¥Ú¡¼¥¸¤ÎÊÔ½¸"
+
+#: Mailman/Cgi/edithtml.py:111
+msgid "Select page to edit:"
+msgstr "ÊÔ½¸¤¹¤ë¥Ú¡¼¥¸¤òÁª¤ó¤Ç¤¯¤À¤µ¤¤:"
+
+#: Mailman/Cgi/edithtml.py:137
+msgid "View or edit the list configuration information."
+msgstr "¥ê¥¹¥È¤ÎÀßÄê¾ðÊó¤ò¸«¤ë¡¦ÊÔ½¸¤¹¤ë"
+
+#: Mailman/Cgi/edithtml.py:145
+msgid "When you are done making changes..."
+msgstr "Êѹ¹¤¬¤Ç¤­¤¿¤é ..."
+
+#: Mailman/Cgi/edithtml.py:146
+msgid "Submit Changes"
+msgstr "Êѹ¹¤òÁ÷¿®"
+
+#: Mailman/Cgi/edithtml.py:153
+msgid "Can't have empty html page."
+msgstr "HTML ¥Ú¡¼¥¸¤ò¶õÇò¤Ë¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó."
+
+#: Mailman/Cgi/edithtml.py:154
+msgid "HTML Unchanged."
+msgstr "HTML ¤ÏÊѹ¹¤µ¤ì¤Þ¤»¤ó¤Ç¤·¤¿."
+
+#: Mailman/Cgi/edithtml.py:169
+msgid "HTML successfully updated."
+msgstr "HTML ¤ÎÊѹ¹¤¬´°Î»¤·¤Þ¤·¤¿."
+
+#: Mailman/Cgi/listinfo.py:71
+msgid "%(hostname)s Mailing Lists"
+msgstr "%(hostname)s ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È"
+
+#: Mailman/Cgi/listinfo.py:103
+msgid ""
+"<p>There currently are no publicly-advertised\n"
+" %(mailmanlink)s mailing lists on %(hostname)s."
+msgstr ""
+"<p>¸½ºß %(hostname)s ¤Ç¸ø¤Ë¹­¹ð¤µ¤ì¤¿ %(mailmanlink)s \n"
+"¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ï¤¢¤ê¤Þ¤»¤ó. "
+
+#: Mailman/Cgi/listinfo.py:107
+msgid ""
+"<p>Below is a listing of all the public mailing lists on\n"
+" %(hostname)s. Click on a list name to get more information "
+"about\n"
+" the list, or to subscribe, unsubscribe, and change the "
+"preferences\n"
+" on your subscription."
+msgstr ""
+"<p>¸½ºß %(hostname)s ¤Ç¸øÉ½¤µ¤ì¤Æ¤¤¤ë ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¹. \n"
+"¥ê¥¹¥È¤Î̾Á°¤ò¥¯¥ê¥Ã¥¯¤·¤Æ, ¤½¤Î°ÆÆâ¥Ú¡¼¥¸¤Ø¤ªÆþ¤ê¤¯¤À¤µ¤¤. "
+"¤½¤³¤Ë¤Ï¥ê¥¹¥È¤ÎÀâÌÀ¤ä, \n"
+"Æþ²ñ¡¦Âà²ñ¤ÎÊýË¡, ²ñ°÷¥ª¥×¥·¥ç¥ó¤ÎÊѹ¹ÊýË¡¤Ê¤É¤ÎÀâÌÀ¤¬¤¢¤ê¤Þ¤¹. "
+
+#: Mailman/Cgi/listinfo.py:113
+msgid "right"
+msgstr "Àµ¤·¤¤"
+
+#: Mailman/Cgi/listinfo.py:116
+msgid ""
+" To visit the general information page for an unadvertised list,\n"
+" open a URL similar to this one, but with a '/' and the %(adj)s\n"
+" list name appended.\n"
+" <p>List administrators, you can visit "
+msgstr ""
+" ¸øÉ½¤µ¤ì¤Æ¤¤¤Ê¤¤¥ê¥¹¥È¤Î°ÆÆâ¥Ú¡¼¥¸¤Ø¹Ô¤¯¤Ë¤Ï, ¤³¤ì¤ÈƱ¤¸¤è¤¦¤Ê URL ¤Ç, \n"
+"'/' ¤È %(adj)s ¥ê¥¹¥È¤Î̾Á°¤òÉÕ¤±²Ã¤¨¤Æ¥¢¥¯¥»¥¹¤·¤Æ¤¯¤À¤µ¤¤.\n"
+"<p>¥ê¥¹¥È´ÉÍý¼Ô¤ÎÊý¤Ï"
+
+#: Mailman/Cgi/listinfo.py:121
+msgid "the list admin overview page"
+msgstr "¥ê¥¹¥È´ÉÍý°ìÍ÷¥Ú¡¼¥¸"
+
+#: Mailman/Cgi/listinfo.py:122
+msgid ""
+" to find the management interface for your list.\n"
+" <p>Send questions or comments to "
+msgstr ""
+" ¤Ç´ÉÍýºî¶È¤ò¤ª¤³¤Ê¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹.\n"
+"<p>¼ÁÌ䥳¥á¥ó¥È¤Î°¸Àè¤Ï: "
+
+#: Mailman/Cgi/listinfo.py:187
+msgid "Edit Options"
+msgstr "¥ª¥×¥·¥ç¥ó¤òÊÔ½¸"
+
+#: Mailman/Cgi/listinfo.py:194 Mailman/Cgi/options.py:767
+#: Mailman/Cgi/roster.py:111
+msgid "View this page in"
+msgstr "¸À¸ì¤òÁªÂò"
+
+#: Mailman/Cgi/options.py:51 Mailman/Cgi/options.py:68
+msgid "CGI script error"
+msgstr "CGI ¥¹¥¯¥ê¥×¥È¥¨¥é¡¼"
+
+#: Mailman/Cgi/options.py:54
+msgid "Invalid options to CGI script."
+msgstr "CGI ¤Î¥ª¥×¥·¥ç¥ó¤¬ÉÔÀµ¤Ç¤¹."
+
+#: Mailman/Cgi/options.py:96
+msgid "No address given"
+msgstr "¥¢¥É¥ì¥¹¤¬ÆþÎϤµ¤ì¤Æ¤¤¤Þ¤»¤ó"
+
+#: Mailman/Cgi/options.py:108 Mailman/Cgi/options.py:155
+#: Mailman/Cgi/options.py:177
+msgid "No such member: %(safeuser)s."
+msgstr "¤½¤Î¤è¤¦¤Ê²ñ°÷¤Ï¤¤¤Þ¤»¤ó: %(safeuser)s."
+
+#: Mailman/Cgi/options.py:150 Mailman/Cgi/options.py:160
+msgid "The confirmation email has been sent."
+msgstr "³Îǧ¥á¡¼¥ë¤òÁ÷¿®¤·¤Þ¤·¤¿."
+
+#: Mailman/Cgi/options.py:171 Mailman/Cgi/options.py:183
+#: Mailman/Cgi/options.py:226
+msgid "A reminder of your password has been emailed to you."
+msgstr "¥Ñ¥¹¥ï¡¼¥ÉÄÌÃΤò¥á¡¼¥ë¤ÇÁ÷¿®¤·¤Þ¤·¤¿."
+
+#: Mailman/Cgi/options.py:200
+msgid "Authentication failed."
+msgstr "ǧ¾Ú¼ºÇÔ"
+
+#: Mailman/Cgi/options.py:232
+msgid "List subscriptions for %(user)s on %(hostname)s"
+msgstr "%(hostname)s ¤Ç¤Î %(user)s ¤µ¤ó¤Î¥ê¥¹¥È²ñ°÷ÅÐÏ¿¾õ¶·"
+
+#: Mailman/Cgi/options.py:235
+msgid ""
+"Click on a link to visit your options page for the\n"
+" requested mailing list."
+msgstr ""
+"¥ê¥ó¥¯¤ò¥¯¥ê¥Ã¥¯¤·¤Æ, "
+"¤½¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ç¤Î¤¢¤Ê¤¿¤Î¥ª¥×¥·¥ç¥ó¤ò¤´Í÷¤¯¤À¤µ¤¤."
+
+#: Mailman/Cgi/options.py:284
+msgid "Addresses did not match!"
+msgstr "¥¢¥É¥ì¥¹¤¬°ìÃפ·¤Þ¤»¤ó"
+
+#: Mailman/Cgi/options.py:289
+msgid "You are already using that email address"
+msgstr "¤¢¤Ê¤¿¤Ï´û¤Ë¤½¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤ò»È¤Ã¤Æ¤¤¤Þ¤¹."
+
+#: Mailman/Cgi/options.py:301
+msgid ""
+"The new address you requested %(newaddr)s is already a member of the\n"
+"%(listname)s mailing list, however you have also requested a global change "
+"of\n"
+"address. Upon confirmation, any other mailing list containing the address\n"
+"%(user)s will be changed. "
+msgstr ""
+"¿·¤·¤¤¥¢¥É¥ì¥¹¤È¤·¤Æ»ØÄꤷ¤¿ %(newaddr)s ¤Ï´û¤Ë %(listname)s ¤Î\n"
+"²ñ°÷¤È¤·¤ÆÅÐÏ¿¤µ¤ì¤Æ¤¤¤Þ¤¹. ¤·¤«¤·, Ʊ»þ¤Ë¡ÖÁ´ÉôÊѹ¹¡×¤ò»ØÄꤷ¤Þ¤·¤¿\n"
+"¤Î¤Ç, ³Îǧ¤·¤Æ¤¤¤¿¤À¤±¤ì¤Ð %(user)s ¤ÇÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¾¤Î¥ê¥¹¥ÈÁ´Éô¤Ë\n"
+"¤Ä¤¤¤ÆÊѹ¹¤¤¤¿¤·¤Þ¤¹."
+
+#: Mailman/Cgi/options.py:310
+msgid "The new address is already a member: %(newaddr)s"
+msgstr "¿·¥¢¥É¥ì¥¹¤Ï´û¤Ë²ñ°÷¤Ç¤¹: %(newaddr)s"
+
+#: Mailman/Cgi/options.py:316
+msgid "Addresses may not be blank"
+msgstr "¥¢¥É¥ì¥¹¤Ï¶õÇò¤Ë¤Ï¤Ç¤­¤Þ¤»¤ó"
+
+#: Mailman/Cgi/options.py:328
+msgid "A confirmation message has been sent to %(newaddr)s. "
+msgstr "%(newaddr)s °¸¤Æ¤Ë³Îǧ¥á¡¼¥ë¤òÁ÷¿®¤·¤Þ¤·¤¿."
+
+#: Mailman/Cgi/options.py:337
+msgid "Bad email address provided"
+msgstr "ÉÔÀµ¤Ê¥á¡¼¥ë¥¢¥É¥ì¥¹"
+
+#: Mailman/Cgi/options.py:339
+msgid "Illegal email address provided"
+msgstr "ÉÔË¡¤Ê¥á¡¼¥ë¥¢¥É¥ì¥¹"
+
+#: Mailman/Cgi/options.py:341
+msgid "%(newaddr)s is already a member of the list."
+msgstr "%(newaddr)s ¤Ï´û¤Ë¥ê¥¹¥È²ñ°÷¤Ç¤¹."
+
+#: Mailman/Cgi/options.py:350
+msgid "Member name successfully changed. "
+msgstr "²ñ°÷̾¤òÊѹ¹¤·¤Þ¤·¤¿."
+
+#: Mailman/Cgi/options.py:361
+msgid "Passwords may not be blank"
+msgstr "¥Ñ¥¹¥ï¡¼¥É¤Ï¶õÇò¤Ë¤Ï¤Ç¤­¤Þ¤»¤ó"
+
+#: Mailman/Cgi/options.py:366
+msgid "Passwords did not match!"
+msgstr "¥Ñ¥¹¥ï¡¼¥É¤¬°ìÃפ·¤Þ¤»¤ó"
+
+#: Mailman/Cgi/options.py:381 Mailman/Commands/cmd_password.py:79
+#: Mailman/Commands/cmd_password.py:105
+msgid "Password successfully changed."
+msgstr "¥Ñ¥¹¥ï¡¼¥É¤òÊѹ¹¤·¤Þ¤·¤¿."
+
+#: Mailman/Cgi/options.py:390
+msgid ""
+"You must confirm your unsubscription request by turning\n"
+" on the checkbox below the <em>Unsubscribe</em> button. You\n"
+" have not been unsubscribed!"
+msgstr ""
+"¤¢¤Ê¤¿¤Ï <em>Âà²ñ</em>¥Ü¥¿¥ó¤Î²¼¤Î¥Á¥§¥Ã¥¯¥Ü¥Ã¥¯¥¹¤òON¤Ë¤¹¤ë¤³¤È¤Ç,\n"
+"Âà²ñ¿½ÀÁ¤ò³Îǧ¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó. ¸½»þÅÀ¤Ç¤ÏÂà²ñ½èÍý¤Ï´°Î»¤·¤Æ¤¤¤Þ¤»¤ó!"
+
+#: Mailman/Cgi/options.py:422
+msgid "Unsubscription results"
+msgstr "Âà²ñ·ë²Ì"
+
+#: Mailman/Cgi/options.py:426
+msgid ""
+"Your unsubscription request has been received and\n"
+" forwarded on to the list moderators for approval. You will\n"
+" receive notification once the list moderators have made their\n"
+" decision."
+msgstr ""
+"¤¢¤Ê¤¿¤ÎÂà²ñ¿½ÀÁ¤Ï¼õÎΤµ¤ì, \n"
+"¥ê¥¹¥È´ÉÍý¼Ô¤ØÅ¾Á÷¤µ¤ì¤Æ¤¤¤Þ¤¹. \n"
+"¿½ÀÁ¤Ë¤Ä¤¤¤Æ¤Î·èÄ꤬¤Ê¤µ¤ì¤¿¤é, ¤½¤Î¤³¤È¤¬¥á¡¼¥ë¤ÇÄÌÃΤµ¤ì¤ë¤Ç¤·¤ç¤¦."
+
+#: Mailman/Cgi/options.py:431
+msgid ""
+"You have been successfully unsubscribed from the\n"
+" mailing list %(fqdn_listname)s. If you were receiving digest\n"
+" deliveries you may get one more digest. If you have any "
+"questions\n"
+" about your unsubscription, please contact the list owners at\n"
+" %(owneraddr)s."
+msgstr ""
+"¤¢¤Ê¤¿¤Ï %(fqdn_listname)s ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤«¤é¤ÎÂà²ñ½èÍý¤ò´°Î»¤·¤Þ¤·¤¿.\n"
+"¤â¤·, ¤Þ¤È¤áÆÉ¤ß¤ò¼õ¤±¼è¤Ã¤Æ¤¤¤ì¤Ð, ºÇ¸å¤Î¥á¡¼¥ë¤¬ÆÏ¤¯¤«¤â¤·¤ì¤Þ¤»¤ó.\n"
+"Âà²ñ¤Ë´Ø¤·¤Æ¼ÁÌ䤬¤¢¤ì¤Ð, ¥ê¥¹¥È´ÉÍý¼Ô¤Î %(owneraddr)s ¤Þ¤Ç¤ª´ê¤¤¤·¤Þ¤¹."
+
+#: Mailman/Cgi/options.py:582
+msgid ""
+"The list administrator has disabled digest delivery for\n"
+" this list, so your delivery option has not been set. However "
+"your\n"
+" other options have been set successfully."
+msgstr ""
+"¥ê¥¹¥È´ÉÍý¼Ô¤¬¡Ö¤Þ¤È¤áÆÉ¤ß¡×µ¡Ç½¤òÄä»ß¤·¤¿¤¿¤á, \n"
+" ÇÛÁ÷¥ª¥×¥·¥ç¥ó¤ÏÀßÄê¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿. ¤·¤«¤·, ¤½¤Î¾¤Î\n"
+" ¥ª¥×¥·¥ç¥ó¤ÏÀßÄêÊѹ¹¤¬´°Î»¤·¤Þ¤·¤¿."
+
+#: Mailman/Cgi/options.py:586
+msgid ""
+"The list administrator has disabled non-digest delivery\n"
+" for this list, so your delivery option has not been set. "
+"However\n"
+" your other options have been set successfully."
+msgstr ""
+"¥ê¥¹¥È´ÉÍý¼Ô¤¬¡Ö¸Ä¡¹ÇÛÁ÷¡×µ¡Ç½¤òÄä»ß¤·¤¿¤¿¤á, \n"
+" ÇÛÁ÷¥ª¥×¥·¥ç¥ó¤ÏÀßÄê¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿. ¤·¤«¤·, ¤½¤Î¾¤Î\n"
+" ¥ª¥×¥·¥ç¥ó¤ÏÀßÄêÊѹ¹¤¬´°Î»¤·¤Þ¤·¤¿."
+
+#: Mailman/Cgi/options.py:590
+msgid "You have successfully set your options."
+msgstr "¥ª¥×¥·¥ç¥ó¤ÎÀßÄêÊѹ¹¤¬´°Î»¤·¤Þ¤·¤¿."
+
+#: Mailman/Cgi/options.py:593
+msgid "You may get one last digest."
+msgstr "ºÇ¸å¤Î¡Ö¤Þ¤È¤áÆÉ¤ß¡×¤¬ÆÏ¤¯¤«¤â¤·¤ì¤Þ¤»¤ó."
+
+#: Mailman/Cgi/options.py:662
+msgid "<em>Yes, I really want to unsubscribe</em>"
+msgstr "<em>¤Ï¤¤, »ä¤ÏËÜÅö¤ËÂà²ñ¤·¤¿¤¤¤Ç¤¹</em>"
+
+#: Mailman/Cgi/options.py:666
+msgid "Change My Password"
+msgstr "¥Ñ¥¹¥ï¡¼¥ÉÊѹ¹"
+
+#: Mailman/Cgi/options.py:669
+msgid "List my other subscriptions"
+msgstr "¤½¤Î¾¤Î¥ê¥¹¥È¤Ø¤ÎÆþ²ñ¾õ¶·"
+
+#: Mailman/Cgi/options.py:675
+msgid "Email My Password To Me"
+msgstr "»ä¤Ë¥Ñ¥¹¥ï¡¼¥É¤ò¥á¡¼¥ë¤·¤Æ¤¯¤À¤µ¤¤"
+
+#: Mailman/Cgi/options.py:677
+msgid "password"
+msgstr "¥Ñ¥¹¥ï¡¼¥É"
+
+#: Mailman/Cgi/options.py:679
+msgid "Log out"
+msgstr "¥í¥°¥¢¥¦¥È"
+
+#: Mailman/Cgi/options.py:681
+msgid "Submit My Changes"
+msgstr "Êѹ¹¤òÁ÷¿®"
+
+#: Mailman/Cgi/options.py:693
+msgid "days"
+msgstr "Æü"
+
+#: Mailman/Cgi/options.py:695
+msgid "day"
+msgstr "Æü"
+
+#: Mailman/Cgi/options.py:696
+msgid "%(days)d %(units)s"
+msgstr ""
+
+#: Mailman/Cgi/options.py:702
+msgid "Change My Address and Name"
+msgstr "»ä¤Î¥¢¥É¥ì¥¹¤È̾Á°¤òÊѹ¹"
+
+#: Mailman/Cgi/options.py:726
+msgid "<em>No topics defined</em>"
+msgstr "<em>ÏÃÂ꤬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó</em>"
+
+#: Mailman/Cgi/options.py:734
+msgid ""
+"\n"
+"You are subscribed to this list with the case-preserved address\n"
+"<em>%(cpuser)s</em>."
+msgstr ""
+"\n"
+"¤¢¤Ê¤¿¤Ï<em>%(cpuser)s</em>(Âçʸ»ú¾®Ê¸»ú¤ò¶èÊÌ)¤È¤·¤Æ\n"
+"Æþ²ñ¤·¤Þ¤·¤¿."
+
+#: Mailman/Cgi/options.py:748
+msgid "%(realname)s list: member options login page"
+msgstr "%(realname)s ¥ê¥¹¥È: ²ñ°÷¥ª¥×¥·¥ç¥ó¥í¥°¥¤¥ó¥Ú¡¼¥¸"
+
+#: Mailman/Cgi/options.py:749
+msgid "email address and "
+msgstr "¥á¡¼¥ë¥¢¥É¥ì¥¹¤È"
+
+#: Mailman/Cgi/options.py:751
+msgid "%(realname)s list: member options for user %(user)s"
+msgstr "%(realname)s¥ê¥¹¥È: %(user)s ²ñ°÷¥ª¥×¥·¥ç¥ó"
+
+#: Mailman/Cgi/options.py:777
+msgid ""
+"In order to change your membership option, you must\n"
+" first log in by giving your %(extra)smembership password in the section\n"
+" below. If you don't remember your membership password, you can have it\n"
+" emailed to you by clicking on the button below. If you just want to\n"
+" unsubscribe from this list, click on the <em>Unsubscribe</em> button and "
+"a\n"
+" confirmation message will be sent to you.\n"
+"\n"
+" <p><strong><em>Important:</em></strong> From this point on, you must "
+"have\n"
+" cookies enabled in your browser, otherwise none of your changes will "
+"take\n"
+" effect.\n"
+" "
+msgstr ""
+"¤¢¤Ê¤¿¤Î²ñ°÷¥ª¥×¥·¥ç¥ó¤òÊѹ¹¤¹¤ë¤Ë¤Ï, ¤Þ¤º, ²¼¤Î¥Õ¥©¡¼¥à¤Ë\n"
+"%(extra)s²ñ°÷¥Ñ¥¹¥ï¡¼¥É¤òÆþ¤ì¤Æ¥í¥°¥¤¥ó¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó. ¤â¤·, "
+"²ñ°÷¥Ñ¥¹¥ï¡¼¥É\n"
+"¤ò˺¤ì¤Æ¤¤¤¿¤é, ²¼¤Î¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¥á¡¼¥ë¤Ç¼è¤ê´ó¤»¤ë¤³¤È¤¬\n"
+"¤Ç¤­¤Þ¤¹. ¤Þ¤¿, ñ¤Ë¤³¤Î¥ê¥¹¥È¤«¤éÂà²ñ¤·¤¿¤¤¤À¤±¤Ç¤¢¤ì¤Ð, <em>Âà²ñ</em>\n"
+"¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¤¯¤À¤µ¤¤. ³Îǧ¤Î¥á¡¼¥ë¤¬¤¢¤Ê¤¿°¸¤ËÁ÷¤é¤ì¤Þ¤¹. \n"
+"\n"
+"<p><strong><em>½ÅÍ×:</em></strong> ¤³¤Î»þÅÀ¤«¤éÀè¤Ï, ¥Ö¥é¥¦¥¶¤Î\n"
+"¥¯¥Ã¥­¡¼¤òÍ­¸ú¤Ë¤·¤Æ¤ª¤¤¤Æ¤¯¤À¤µ¤¤. ¤Ç¤Ê¤¤¤È, Êѹ¹¤¬Í­¸ú¤Ë¤Ê¤ê¤Þ¤»¤ó. \n"
+" "
+
+#: Mailman/Cgi/options.py:791
+msgid "Email address:"
+msgstr "¥á¡¼¥ë¥¢¥É¥ì¥¹:"
+
+#: Mailman/Cgi/options.py:795
+msgid "Password:"
+msgstr "¥Ñ¥¹¥ï¡¼¥É:"
+
+#: Mailman/Cgi/options.py:797
+msgid "Log in"
+msgstr "¥í¥°¥¤¥ó"
+
+#: Mailman/Cgi/options.py:805
+msgid ""
+"By clicking on the <em>Unsubscribe</em> button, a\n"
+" confirmation message will be emailed to you. This message will have a\n"
+" link that you should click on to complete the removal process (you can\n"
+" also confirm by email; see the instructions in the confirmation\n"
+" message)."
+msgstr ""
+"<em>Âà²ñ</em>¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤¹¤ë¤³¤È¤Ç, ³Îǧ¤Î¥á¡¼¥ë¤¬\n"
+"¤¢¤Ê¤¿°¸¤Æ¤ËÁ÷¿®¤µ¤ì¤Þ¤¹. ¤³¤Î¥á¡¼¥ë¤Ë¤Ï\n"
+"¥ê¥ó¥¯¤¬Æþ¤Ã¤Æ¤¤¤Æ, ¤½¤ì¤ò¥¯¥ê¥Ã¥¯¤¹¤ë¤ÈÂà²ñ½èÍý¤¬´°Î»¤·¤Þ¤¹. \n"
+"(¤Þ¤¿¤Ï, ¥á¡¼¥ë¤Ç³Îǧ¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹; ¾Ü¤·¤¯¤Ï, ¤½¤Î¥á¡¼¥ë¤Ë\n"
+"½ñ¤«¤ì¤¿»Ø¼¨¤òÆÉ¤ó¤Ç¤¯¤À¤µ¤¤). "
+
+#: Mailman/Cgi/options.py:813
+msgid "Password reminder"
+msgstr "¥Ñ¥¹¥ï¡¼¥ÉÄÌÃÎ"
+
+#: Mailman/Cgi/options.py:817
+msgid ""
+"By clicking on the <em>Remind</em> button, your\n"
+" password will be emailed to you."
+msgstr ""
+"<em>ÄÌÃÎ</em>¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤¹¤ë¤È, \n"
+"¤¢¤Ê¤¿¤Î¥Ñ¥¹¥ï¡¼¥É¤¬¥á¡¼¥ë¤ÇÁ÷¿®¤µ¤ì¤Þ¤¹."
+
+#: Mailman/Cgi/options.py:820
+msgid "Remind"
+msgstr "ÄÌÃÎ"
+
+#: Mailman/Cgi/options.py:920
+msgid "<missing>"
+msgstr "<¤¢¤ê¤Þ¤»¤ó>"
+
+#: Mailman/Cgi/options.py:931
+msgid "Requested topic is not valid: %(topicname)s"
+msgstr "Í׵ᤵ¤ì¤¿ÏÃÂ꤬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹: %(topicname)s"
+
+#: Mailman/Cgi/options.py:936
+msgid "Topic filter details"
+msgstr "ÏÃÂê¥Õ¥£¥ë¥¿¡¼¤Î¾ÜºÙ"
+
+#: Mailman/Cgi/options.py:939
+msgid "Name:"
+msgstr "̾¾Î:"
+
+#: Mailman/Cgi/options.py:941
+msgid "Pattern (as regexp):"
+msgstr "¥Ñ¥¿¡¼¥ó(Àµµ¬É½¸½):"
+
+#: Mailman/Cgi/private.py:61
+msgid "Private Archive Error"
+msgstr "¸ÂÄê¸ø³«Êݸ½ñ¸Ë¥¨¥é¡¼"
+
+#: Mailman/Cgi/private.py:62
+msgid "You must specify a list."
+msgstr "¥ê¥¹¥È¤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤."
+
+#: Mailman/Cgi/private.py:99
+msgid "Private Archive Error - %(msg)s"
+msgstr "¸ÂÄê¸ø³«Êݸ½ñ¸Ë¥¨¥é¡¼ - %(msg)s"
+
+#: Mailman/Cgi/private.py:154
+msgid "Private archive file not found"
+msgstr "¸ÂÄê¸ø³«Êݸ¥Õ¥¡¥¤¥ë¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó."
+
+#: Mailman/Cgi/rmlist.py:81
+msgid "You're being a sneaky list owner!"
+msgstr "¥ê¥¹¥È´ÉÍý¼Ô¤È¤·¤Æ¤½¤ì¤Ï¥Þ¥º¤¤¤ó¤¸¤ã¤Ê¤¤?!"
+
+#: Mailman/Cgi/rmlist.py:119
+msgid "You are not authorized to delete this mailing list"
+msgstr "¤³¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤òºï½ü¤¹¤ë¸¢¸Â¤Ï¤¢¤ê¤Þ¤»¤ó"
+
+#: Mailman/Cgi/rmlist.py:160
+msgid "Mailing list deletion results"
+msgstr "¥á¡¼¥ê¥ó¥°¥ê¥¹¥Èºï½ü¤Î·ë²Ì"
+
+#: Mailman/Cgi/rmlist.py:167
+msgid ""
+"You have successfully deleted the mailing list\n"
+" <b>%(listname)s</b>."
+msgstr "¥á¡¼¥ê¥ó¥°¥ê¥¹¥È <b>%(listname)s</b> ¤Îºï½ü¤¬´°Î»¤·¤Þ¤·¤¿."
+
+#: Mailman/Cgi/rmlist.py:171
+msgid ""
+"There were some problems deleting the mailing list\n"
+" <b>%(listname)s</b>. Contact your site administrator at "
+"%(sitelist)s\n"
+" for details."
+msgstr ""
+"<b>%(listname)s ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤òºï½ü¤¹¤ëºÝ¤ËÌäÂ꤬ȯÀ¸¤·¤Þ¤·¤¿.\n"
+"%(sitelist)s ¤Î¥µ¥¤¥È´ÉÍý¼Ô¤ËÏ¢Íí¤·¤Æ¤¯¤À¤µ¤¤."
+
+#: Mailman/Cgi/rmlist.py:188
+msgid "Permanently remove mailing list <em>%(realname)s</em>"
+msgstr "¹±µ×Ū¤Ë¥á¡¼¥ê¥ó¥°¥ê¥¹¥È <em>%(realname)s</em> ¤òºï½ü"
+
+#: Mailman/Cgi/rmlist.py:202
+msgid ""
+"This page allows you as the list owner, to permanent\n"
+" remove this mailing list from the system. <strong>This action is not\n"
+" undoable</strong> so you should undertake it only if you are absolutely\n"
+" sure this mailing list has served its purpose and is no longer "
+"necessary.\n"
+"\n"
+" <p>Note that no warning will be sent to your list members and after "
+"this\n"
+" action, any subsequent messages sent to the mailing list, or any of its\n"
+" administrative addreses will bounce.\n"
+"\n"
+" <p>You also have the option of removing the archives for this mailing "
+"list\n"
+" at this time. It is almost always recommended that you do\n"
+" <strong>not</strong> remove the archives, since they serve as the\n"
+" historical record of your mailing list.\n"
+"\n"
+" <p>For your safety, you will be asked to reconfirm the list password.\n"
+" "
+msgstr ""
+"¤³¤Î¥Ú¡¼¥¸¤Ç, ¥ê¥¹¥È´ÉÍý¼Ô¤Ç¤¢¤ë¤¢¤Ê¤¿¤Ï, ¤³¤Î¥·¥¹¥Æ¥à¤«¤é¹±µ×Ū¤Ë\n"
+"¤³¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤òºï½ü¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹. <strong>¤³¤Îºî¶È¤Ï\n"
+"¤ä¤ê¤Ê¤ª¤·¤¬¤Ç¤­¤Þ¤»¤ó</strong>. ½¾¤Ã¤Æ, ¤³¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ï\n"
+"¤½¤ÎÌÜŪ¤òãÀ®¤·¤Æ¤ª¤ê, ¤â¤¦É¬Íפ¬¤Ê¤¤¤³¤È¤òÀäÂгﮤ·¤Æ¤¤¤ë¾ì¹ç\n"
+"¤Ë¤Î¤ß, ÍøÍѤ¹¤ë¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤.\n"
+"<p>¤Þ¤¿, ¤³¤Îµ¡Ç½¤ò¼Â¹Ô¤·¤¿¸å¤Ë¤Ï, ¤¤¤«¤Ê¤ë·Ù¹ð¤â¥ê¥¹¥È²ñ°÷¤ËÁ÷¤é¤ì¤ë\n"
+"¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó. ¤Ä¤Þ¤ê, ¤³¤ì°Ê¹ß¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ë°¸¤Æ¤¿¥á¡¼¥ë¤ä, \n"
+"¥ê¥¹¥È¤Î´ÉÍý¾å¤Î¿½ÀÁ¥á¡¼¥ë¤Ê¤É¤ÏÁ´¤Æ¥¨¥é¡¼¤Ë¤Ê¤ê¤Þ¤¹.\n"
+"<p>¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ÎÊݸ½ñ¸Ë¤âƱ»þ¤Ëºï½ü¤¹¤ë¥ª¥×¥·¥ç¥ó¤¬¤¢¤ê¤Þ¤¹.\n"
+"¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ÎÎò»Ë¤òÊݸ¤¹¤ë¤Ë¤Ï, Êݸ½ñ¸Ë¤Ïºï½ü<strong>¤·¤Ê¤¤</strong>\n"
+"¤Û¤¦¤¬¤è¤¤¤Ç¤·¤ç¤¦.\n"
+"<p>¤Ê¤ª, °ÂÁ´¤Î¤¿¤á, ¥ê¥¹¥È¥Ñ¥¹¥ï¡¼¥É¤ò£²²óÆþÎϤ·¤Æ¤¤¤¿¤À¤­¤Þ¤¹."
+
+#: Mailman/Cgi/rmlist.py:223
+msgid "List password:"
+msgstr "¥ê¥¹¥È¤Î¥Ñ¥¹¥ï¡¼¥É"
+
+#: Mailman/Cgi/rmlist.py:227
+msgid "Also delete archives?"
+msgstr "Êݸ½ñ¸Ë¤âºï½ü¤·¤Þ¤¹¤«?"
+
+#: Mailman/Cgi/rmlist.py:235
+msgid "<b>Cancel</b> and return to list administration"
+msgstr "<b>¼è¤ê¾Ã¤·</b>¤Æ¥ê¥¹¥È´ÉÍý¤ØÌá¤ë"
+
+#: Mailman/Cgi/rmlist.py:238
+msgid "Delete this list"
+msgstr "¤³¤Î¥ê¥¹¥È¤òºï½ü"
+
+#: Mailman/Cgi/roster.py:48 Mailman/Cgi/subscribe.py:50
+msgid "Invalid options to CGI script"
+msgstr "CGI¥¹¥¯¥ê¥×¥È¤Î¥ª¥×¥·¥ç¥ó¤¬ÉÔÀµ¤Ç¤¹"
+
+#: Mailman/Cgi/roster.py:99
+msgid "%(realname)s roster authentication failed."
+msgstr "%(realname)s ²ñ°÷̾Êí ǧ¾Ú¤Ë¼ºÇÔ"
+
+#: Mailman/Cgi/roster.py:127 Mailman/Cgi/roster.py:128
+#: Mailman/Cgi/subscribe.py:49 Mailman/Cgi/subscribe.py:60
+msgid "Error"
+msgstr "¥¨¥é¡¼"
+
+#: Mailman/Cgi/subscribe.py:109
+msgid "You must supply a valid email address."
+msgstr "Í­¸ú¤Ê¥á¡¼¥ë¥¢¥É¥ì¥¹¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤."
+
+#: Mailman/Cgi/subscribe.py:122
+msgid "You may not subscribe a list to itself!"
+msgstr "¥ê¥¹¥È¤ò¥ê¥¹¥È¼«¿È¤ËÅÐÏ¿¤·¤Æ¤Ï¤¤¤±¤Þ¤»¤ó!"
+
+#: Mailman/Cgi/subscribe.py:131
+msgid "If you supply a password, you must confirm it."
+msgstr "¥Ñ¥¹¥ï¡¼¥ÉÆþÎϤξì¹ç, ³Îǧ¤¬É¬ÍפǤ¹."
+
+#: Mailman/Cgi/subscribe.py:133
+msgid "Your passwords did not match."
+msgstr "¥Ñ¥¹¥ï¡¼¥É¤¬°ìÃפ·¤Þ¤»¤ó."
+
+#: Mailman/Cgi/subscribe.py:167
+msgid ""
+"Your subscription request has been received, and will soon be acted upon.\n"
+"Depending on the configuration of this mailing list, your subscription "
+"request\n"
+"may have to be first confirmed by you via email, or approved by the list\n"
+"moderator. If confirmation is required, you will soon get a confirmation\n"
+"email which contains further instructions."
+msgstr ""
+"¤¢¤Ê¤¿¤ÎÆþ²ñ¿½ÀÁ¤ò¼õ¤±ÉÕ¤±¤Þ¤·¤¿¤Î¤Ç, ¤Þ¤â¤Ê¤¯½èÍý¤µ¤ì¤ë¤Ç¤·¤ç¤¦.\n"
+"¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ÎÀßÄê¤Ë¤è¤ê¤Þ¤¹¤¬, ¤¢¤Ê¤¿¤ÎÆþ²ñ¿½ÀÁ¤Ï,\n"
+"¤Þ¤º¥á¡¼¥ë¤Ç³Îǧ¤µ¤ì¤Þ¤ë¤« ¥ê¥¹¥È»Ê²ñ¼Ô¤Ë¤è¤Ã¤Æ¾µÇ§¤µ¤ì¤ë¤«¤·¤Þ¤¹.\n"
+"¤â¤·, ³Îǧ¤¬É¬ÍפǤ¢¤ì¤Ð, ¤¢¤Ê¤¿¤Î¤â¤È¤Ø¤½¤Î¸å¤Î»Ø¼¨¤ò½ñ¤¤¤¿\n"
+"³Îǧ¥á¡¼¥ë¤¬ÆÏ¤¯¤Ç¤·¤ç¤¦."
+
+#: Mailman/Cgi/subscribe.py:181
+msgid ""
+"The email address you supplied is banned from this\n"
+" mailing list. If you think this restriction is erroneous, please\n"
+" contact the list owners at %(listowner)s."
+msgstr ""
+"¤¢¤Ê¤¿¤¬Äó½Ð¤·¤¿¥á¡¼¥ë¥¢¥É¥ì¥¹¤Ï¤³¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤«¤é\n"
+" ÇÓ½ü¤µ¤ì¤Æ¤¤¤Þ¤¹. ¤â¤·, ¤³¤ÎÀ©¸Â¤¬¸í¤ê¤Ç¤¢¤ë¤È¹Í¤¨¤ë¤Ê¤é, \n"
+" ¥ê¥¹¥È´ÉÍý¼Ô¤Î %(listowner)s ¤ËÏ¢Íí¤·¤Æ¤¯¤À¤µ¤¤."
+
+#: Mailman/Cgi/subscribe.py:185
+msgid ""
+"The email address you supplied is not valid. (E.g. it must contain an\n"
+"`@'.)"
+msgstr "¤¢¤Ê¤¿¤¬ÆþÎϤ·¤¿¥á¡¼¥ë¥¢¥É¥ì¥¹¤Ï̵¸ú¤Ç¤¹. (`@' ¤¬Æþ¤Ã¤Æ¤¤¤Þ¤»¤ó.)"
+
+#: Mailman/Cgi/subscribe.py:189
+msgid ""
+"Your subscription is not allowed because the email address you gave is\n"
+"insecure."
+msgstr ""
+"¤¢¤Ê¤¿¤Îµ­Æþ¤·¤¿¥á¡¼¥ë¥¢¥É¥ì¥¹¤Ë¥»¥­¥å¥ê¥Æ¥£¾å¤ÎÌäÂ꤬¤¢¤ë¤¿¤á, "
+"Æþ²ñ¿½ÀÁ¤Ïµö²Ä¤µ¤ì¤Þ¤»¤ó."
+
+#: Mailman/Cgi/subscribe.py:197
+msgid ""
+"Confirmation from your email address is required, to prevent anyone from\n"
+"subscribing you without permission. Instructions are being sent to you at\n"
+"%(email)s. Please note your subscription will not start until you confirm\n"
+"your subscription."
+msgstr ""
+"¤¢¤Ê¤¿¤ÎÅŻҥ᡼¥ë¥¢¥É¥ì¥¹¤«¤é¤Î³Îǧ¤¬É¬ÍפǤ¹. "
+"¤³¤ì¤Ï¾¿Í¤¬¾¡¼ê¤ËÆþ²ñÅÐÏ¿¤·¤Æ¤·¤Þ¤¦¤Î¤òËɤ°¤¿¤á¤Ç¤¹. "
+"¤³¤ÎÀè¤Î»Ø¼¨¤Ë¤Ä¤¤¤Æ¤Ï¤¢¤Ê¤¿¤Î¥¢¥É¥ì¥¹ %(email)s "
+"¤ËÁ÷¿®¤·¤¿¥á¡¼¥ë¤Ë½¾¤Ã¤Æ¤¯¤À¤µ¤¤. "
+"¤¢¤Ê¤¿¤ÎÆþ²ñ³Îǧ¤¬Ìµ¤±¤ì¤ÐÆþ²ñ¼ê³¤­¤¬´°Î»¤·¤Ê¤¤¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤."
+
+#: Mailman/Cgi/subscribe.py:209
+msgid ""
+"Your subscription request was deferred because %(x)s. Your request has "
+"been\n"
+"forwarded to the list moderator. You will receive email informing you of "
+"the\n"
+"moderator's decision when they get to your request."
+msgstr ""
+"%(x)s ¤Î¤¿¤áÆþ²ñ¤ÏÊÝᤵ¤ì¤Þ¤·¤¿. "
+"¤¢¤Ê¤¿¤Î¿½ÀÁ¤Ï¥ê¥¹¥È´ÉÍý¼Ô¤ØÅ¾Á÷¤µ¤ì¤Æ¤¤¤Þ¤¹. "
+"¿½ÀÁ¤Ë¤Ä¤¤¤Æ¤Î·èÄ꤬¤Ê¤µ¤ì¤¿¤é, ¤½¤Î¤³¤È¤¬¥á¡¼¥ë¤ÇÄÌÃΤµ¤ì¤ë¤Ç¤·¤ç¤¦.<p>"
+
+#: Mailman/Cgi/subscribe.py:216 Mailman/Commands/cmd_confirm.py:60
+msgid "You are already subscribed."
+msgstr "¤¢¤Ê¤¿¤Ï´û¤ËÆþ²ñ¤·¤Æ¤¤¤Þ¤¹."
+
+#: Mailman/Cgi/subscribe.py:230
+msgid "Mailman privacy alert"
+msgstr "Mailman¤«¤é¤Î¥×¥é¥¤¥Ð¥·¡¼·Ù¹ð"
+
+#: Mailman/Cgi/subscribe.py:231
+msgid ""
+"An attempt was made to subscribe your address to the mailing list\n"
+"%(listaddr)s. You are already subscribed to this mailing list.\n"
+"\n"
+"Note that the list membership is not public, so it is possible that a bad\n"
+"person was trying to probe the list for its membership. This would be a\n"
+"privacy violation if we let them do this, but we didn't.\n"
+"\n"
+"If you submitted the subscription request and forgot that you were already\n"
+"subscribed to the list, then you can ignore this message. If you suspect "
+"that\n"
+"an attempt is being made to covertly discover whether you are a member of "
+"this\n"
+"list, and you are worried about your privacy, then feel free to send a "
+"message\n"
+"to the list administrator at %(listowner)s.\n"
+msgstr ""
+"%(listaddr)s ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ë¤¢¤Ê¤¿¤Î¥¢¥É¥ì¥¹¤òÅÐÏ¿¤·¤è¤¦¤È¤¹¤ë\n"
+"»î¤ß¤¬¤¢¤ê¤Þ¤·¤¿. ¤¢¤Ê¤¿¤Ï´û¤Ë¤³¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ËÆþ²ñ¤·¤Æ¤¤¤Þ¤¹.\n"
+"¤³¤Î¥ê¥¹¥È¤Î²ñ°÷¾ðÊó¤Ï¸ø³«¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¤Î¤Ç, ²ñ°÷¾ðÊó¤òÆÀ¤ë¤¿¤á¤Ë\n"
+"¤³¤Î¤è¤¦¤Ê»î¤ß¤¬¤¢¤Ã¤¿²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹. Æþ²ñºÑ¤ß¤Ç¤¢¤ë¤³¤È¤ò¥¦¥§¥Ö\n"
+"¥Ú¡¼¥¸¤Ëɽ¼¨¤¹¤ë¤È¥×¥é¥¤¥Ð¥·¡¼¤Î¿¯³²¤Ë¤Ê¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¤Î¤Ç, \n"
+"ɽ¼¨¤·¤Æ¤¤¤Þ¤»¤ó.\n"
+"\n"
+"¤â¤·, ¤¢¤Ê¤¿¤¬Æþ²ñºÑ¤ß¤Ç¤¢¤ë¤³¤È¤ò˺¤ì¤ÆÆþ²ñ¿½ÀÁ¤ò¤·¤¿¤Î¤Ç¤¢¤ì¤Ð,\n"
+"¤³¤Î¥á¡¼¥ë¤Ï̵»ë¤·¤Æ¤¯¤À¤µ¤¤. ¤â¤·, ¤¢¤Ê¤¿¤¬¤³¤Î¥ê¥¹¥È¤Î²ñ°÷¤Ç¤¢¤ë¤«¤É¤¦¤«,\n"
+"狼¤¬ÃΤ뤿¤á¤Ë¤³¤Î»î¤ß¤¬¤¢¤Ã¤¿¤Èµ¿¤¤¤ò»ý¤Á, ¥×¥é¥¤¥Ð¥·¡¼¤Ë¤Ä¤¤¤Æ\n"
+"¿´ÇÛ¤¬¤¢¤ì¤Ð, ¥ê¥¹¥È´ÉÍý¼Ô¤Î %(listowner)s °¸¤Æ¤Ë¥á¡¼¥ë¤òÁ÷¤Ã¤Æ\n"
+"ÁêÃ̤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤.\n"
+
+#: Mailman/Cgi/subscribe.py:250
+msgid "This list does not support digest delivery."
+msgstr "¤³¤Î¥ê¥¹¥È¤Ç¤Ï¡Ö¤Þ¤È¤áÆÉ¤ß¡×¤Ï¤Ç¤­¤Þ¤»¤ó."
+
+#: Mailman/Cgi/subscribe.py:252
+msgid "This list only supports digest delivery."
+msgstr "¤³¤Î¥ê¥¹¥È¤Ç¤Ï¡Ö¤Þ¤È¤áÆÉ¤ß¡×¤À¤±¤¬Í­¸ú¤Ç¤¹."
+
+#: Mailman/Cgi/subscribe.py:259
+msgid "You have been successfully subscribed to the %(realname)s mailing list."
+msgstr "%(realname)s ¤Ø¤ÎÆþ²ñ¼ê³¤­¤¬´°Î»¤·¤Þ¤·¤¿."
+
+#: Mailman/Commands/cmd_confirm.py:17
+msgid ""
+"\n"
+" confirm <confirmation-string>\n"
+" Confirm an action. The confirmation-string is required and should "
+"be\n"
+" supplied with in mailback confirmation notice.\n"
+msgstr ""
+"\n"
+" confirm <³Îǧʸ»úÎó>\n"
+" ¼Â¹Ô¤ò³Îǧ¤·¤Þ¤¹. ³Îǧʸ»úÎó¤Ïɬ¿Ü¤Ç, ³ÎǧÍ×µá¤Î¥á¡¼¥ë¤Ë\n"
+" ½ñ¤«¤ì¤Æ¤¤¤Þ¤¹.\n"
+
+#: Mailman/Commands/cmd_confirm.py:40 Mailman/Commands/cmd_lists.py:40
+#: Mailman/Commands/cmd_set.py:133 Mailman/Commands/cmd_subscribe.py:69
+#: Mailman/Commands/cmd_unsubscribe.py:52 Mailman/Commands/cmd_who.py:65
+msgid "Usage:"
+msgstr "»ÈÍÑË¡:"
+
+#: Mailman/Commands/cmd_confirm.py:49
+msgid ""
+"Invalid confirmation string. Note that confirmation strings expire\n"
+"approximately %(days)s days after the initial subscription request. If "
+"your\n"
+"confirmation has expired, please try to re-submit your original request or\n"
+"message."
+msgstr ""
+"³Îǧʸ»úÎó¤¬Ìµ¸ú¤Ç¤¹. Æþ²ñ³Îǧ¤Î¤¿¤á¤Îʸ»úÎó¤Ï\n"
+" ºÇ½é¤ÎÆþ²ñ¿½ÀÁ¤«¤é¤ª¤è¤½ %(days)s Æü¸å¤Ë´ü¸ÂÀÚ¤ì\n"
+" ¤Ë¤Ê¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤. ¤â¤·³Îǧ´ü¸Â¤¬Àڤ줿\n"
+" ¤Î¤Ç¤¢¤ì¤Ð, ¤â¤¦°ìÅÙÆþ²ñ¿½ÀÁ¤·¤Æ¤¯¤À¤µ¤¤."
+
+#: Mailman/Commands/cmd_confirm.py:55
+msgid "Your request has been forwarded to the list moderator for approval."
+msgstr ""
+"¤¢¤Ê¤¿¤Î¿½ÀÁ¤Ï¾µÇ§¤ò¼õ¤±¤ë¤¿¤á\n"
+" ¥ê¥¹¥È»Ê²ñ¼Ô¤ØÅ¾Á÷¤·¤Þ¤·¤¿."
+
+#: Mailman/Commands/cmd_confirm.py:63
+msgid ""
+"You are not current a member. Have you already unsubscribed or changed\n"
+"your email address?"
+msgstr ""
+"¤¢¤Ê¤¿¤Ï²ñ°÷¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó. Âà²ñ¤·¤¿¤«¡¢¥á¡¼¥ë¥¢¥É¥ì¥¹¤ò\n"
+"Êѹ¹¤·¤¿¤Î¤Ç¤Ï¤Ê¤¤¤Ç¤¹¤«?"
+
+#: Mailman/Commands/cmd_confirm.py:73
+msgid "Confirmation succeeded"
+msgstr "³Îǧ¤Ç¤­¤Þ¤·¤¿"
+
+#: Mailman/Commands/cmd_echo.py:17
+msgid ""
+"\n"
+" echo [args]\n"
+" Simply echo an acknowledgement. Args are echoed back unchanged.\n"
+msgstr ""
+"\n"
+" echo [°ú¿ô]\n"
+" ¼õÎγÎǧ¤ò¥¨¥³¡¼¥Ð¥Ã¥¯¤·¤Þ¤¹. °ú¿ô¤ËÆþ¤ì¤¿Ê¸»úÎó¤¬Ê֤äƤ­¤Þ¤¹.\n"
+
+#: Mailman/Commands/cmd_end.py:17
+msgid ""
+"\n"
+" end\n"
+" Stop processing commands. Use this if your mail program "
+"automatically\n"
+" adds a signature file.\n"
+msgstr ""
+"\n"
+" end\n"
+" ¥³¥Þ¥ó¥É½èÍý¤òÄä»ß¤·¤Þ¤¹. ¤â¤·, ¥á¡¼¥ë¥×¥í¥°¥é¥à¤¬¼«Æ°Åª¤Ë "
+"½ð̾¤òÄɲ乤ë¤Î¤Ê¤é, ¤³¤ì¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤.\n"
+
+#: Mailman/Commands/cmd_help.py:17
+msgid ""
+"\n"
+" help\n"
+" Print this help message.\n"
+msgstr ""
+"\n"
+" help\n"
+" ¤³¤Î¥Ø¥ë¥×¥á¡¼¥ë¤òÍ׵ᤷ¤Þ¤¹.\n"
+
+#: Mailman/Commands/cmd_help.py:47
+msgid "You can access your personal options via the following url:"
+msgstr "¤¢¤Ê¤¿¤Î¸Ä¿Í¥ª¥×¥·¥ç¥ó¥Ú¡¼¥¸¤Ø¤Ï°Ê²¼¤ÎURL¤«¤é¤É¤¦¤¾:"
+
+#: Mailman/Commands/cmd_info.py:17
+msgid ""
+"\n"
+" info\n"
+" Get information about this mailing list.\n"
+msgstr ""
+"\n"
+" info\n"
+" ¤³¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ë¤Ä¤¤¤Æ¤Î°ÆÆâ¤ò¼è¤ê½Ð¤·¤Þ¤¹.\n"
+
+#: Mailman/Commands/cmd_info.py:39 Mailman/Commands/cmd_lists.py:62
+msgid "n/a"
+msgstr "̵¤·"
+
+#: Mailman/Commands/cmd_info.py:44
+msgid "List name: %(listname)s"
+msgstr "¥ê¥¹¥È̾: %(listname)s"
+
+#: Mailman/Commands/cmd_info.py:45
+msgid "Description: %(description)s"
+msgstr "ÀâÌÀ: %(description)s"
+
+#: Mailman/Commands/cmd_info.py:46
+msgid "Postings to: %(postaddr)s"
+msgstr "Åê¹Æ°¸Àè: %(postaddr)s"
+
+#: Mailman/Commands/cmd_info.py:47
+msgid "List Helpbot: %(requestaddr)s"
+msgstr "¥ê¥¹¥È¥Ø¥ë¥×: %(requestaddr)s"
+
+#: Mailman/Commands/cmd_info.py:48
+msgid "List Owners: %(owneraddr)s"
+msgstr "¥ê¥¹¥È´ÉÍý¼Ô: %(owneraddr)s"
+
+#: Mailman/Commands/cmd_info.py:49
+msgid "More information: %(listurl)s"
+msgstr "¥Û¡¼¥à¥Ú¡¼¥¸: %(listurl)s"
+
+#: Mailman/Commands/cmd_join.py:17
+msgid "The `join' command is synonymous with `subscribe'.\n"
+msgstr "`join'¥³¥Þ¥ó¥É¤Ï`subscribe'¤ÈƱ¤¸¤Ç¤¹.\n"
+
+#: Mailman/Commands/cmd_leave.py:17
+msgid "The `leave' command is synonymous with `unsubscribe'.\n"
+msgstr "`leave'¥³¥Þ¥ó¥É¤Ï`unsubscribe'¤ÈƱ¤¸¤Ç¤¹.\n"
+
+#: Mailman/Commands/cmd_lists.py:17
+msgid ""
+"\n"
+" lists\n"
+" See a list of the public mailing lists on this GNU Mailman server.\n"
+msgstr ""
+"\n"
+" lists\n"
+" ¤³¤Î GNU Mailman ¥µ¡¼¥Ð¤Î¸ø³«¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Î°ìÍ÷¤ò¸«¤ë.\n"
+
+#: Mailman/Commands/cmd_lists.py:44
+msgid "Public mailing lists at %(hostname)s:"
+msgstr "%(hostname)s ¤Î¸ø³«¥á¡¼¥ê¥ó¥°¥ê¥¹¥È"
+
+#: Mailman/Commands/cmd_lists.py:66
+msgid "%(i)3d. List name: %(realname)s"
+msgstr "%(i)3d. ¥ê¥¹¥È̾: %(realname)s"
+
+#: Mailman/Commands/cmd_lists.py:67
+msgid " Description: %(description)s"
+msgstr " ÀâÌÀ: %(description)s"
+
+#: Mailman/Commands/cmd_lists.py:68
+msgid " Requests to: %(requestaddr)s"
+msgstr " ¿½ÀÁ°¸Àè: %(requestaddr)s"
+
+#: Mailman/Commands/cmd_password.py:17
+msgid ""
+"\n"
+" password [<oldpassword> <newpassword>] [address=<address>]\n"
+" Retrieve or change your password. With no arguments, this returns\n"
+" your current password. With arguments <oldpassword> and "
+"<newpassword>\n"
+" you can change your password.\n"
+"\n"
+" If you're posting from an address other than your membership "
+"address,\n"
+" specify your membership address with `address=<address>' (no "
+"brackets\n"
+" around the email address, and no quotes!). Note that in this case "
+"the\n"
+" response is always sent to the subscribed address.\n"
+msgstr ""
+"\n"
+" password [<µì¥Ñ¥¹¥ï¡¼¥É> <¿·¥Ñ¥¹¥ï¡¼¥É>] [address=<¥¢¥É¥ì¥¹>]\n"
+" ¥Ñ¥¹¥ï¡¼¥É¤ò¼è¤ê½Ð¤·¤¿¤êÊѹ¹¤·¤Þ¤¹. °ú¿ô¤¬Ìµ¤±¤ì¤Ð, ¤³¤Î\n"
+" ¥³¥Þ¥ó¥É¤Ç¸½ºß¤Î¥Ñ¥¹¥ï¡¼¥É¤¬¼è¤ê½Ð¤»¤Þ¤¹.\n"
+" <µì¥Ñ¥¹¥ï¡¼¥É>¤È<¿·¥Ñ¥¹¥ï¡¼¥É>¤Î°ú¿ô¤¬¤¢¤ë¤È¤­¤Ë¤Ï, ¥Ñ¥¹\n"
+" ¥ï¡¼¥É¤òÊѹ¹¤·¤Þ¤¹.\n"
+" ¤â¤·, ²ñ°÷ÅÐÏ¿¤µ¤ì¤¿¥¢¥É¥ì¥¹°Ê³°¤«¤é¥á¡¼¥ë¤·¤Æ¤¤¤ë¤È¤­¤Ë¤Ï,\n"
+" `address=<¥¢¥É¥ì¥¹>' (¤«¤®³ç¸Ì¤ä°úÍÑÉä¤ÏÉÕ¤±¤Ê¤¤¤Ç) ¤Ç\n"
+" ÅÐÏ¿¥¢¥É¥ì¥¹¤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤. ¤³¤Î¾ì¹ç¡¢ÊÖ¿®¤ÏÅÐÏ¿¤µ¤ì¤¿\n"
+" ¥¢¥É¥ì¥¹¤Ë°¸¤Æ¤é¤ì¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤.\n"
+
+#: Mailman/Commands/cmd_password.py:51 Mailman/Commands/cmd_password.py:64
+msgid "Your password is: %(password)s"
+msgstr "¤¢¤Ê¤¿¤Î¥Ñ¥¹¥ï¡¼¥É¤Ï: %(password)s"
+
+#: Mailman/Commands/cmd_password.py:55 Mailman/Commands/cmd_password.py:68
+#: Mailman/Commands/cmd_password.py:91 Mailman/Commands/cmd_password.py:117
+#: Mailman/Commands/cmd_set.py:149 Mailman/Commands/cmd_set.py:219
+msgid "You are not a member of the %(listname)s mailing list"
+msgstr "¤¢¤Ê¤¿¤Ï%(listname)s ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Î¥á¥ó¥Ð¡¼¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
+
+#: Mailman/Commands/cmd_password.py:81 Mailman/Commands/cmd_password.py:107
+msgid ""
+"You did not give the correct old password, so your password has not been\n"
+"changed. Use the no argument version of the password command to retrieve "
+"your\n"
+"current password, then try again."
+msgstr ""
+"Àµ¤·¤¤µì¥Ñ¥¹¥ï¡¼¥É¤Ç¤Ê¤«¤Ã¤¿¤¿¤á, ¥Ñ¥¹¥ï¡¼¥É¤ÎÊѹ¹¤Ï¤Ê¤µ¤ì¤Þ¤»¤ó¤Ç¤·¤¿.\n"
+"°ú¿ô¤Î̵¤¤ password ¥³¥Þ¥ó¥É¤ò»È¤Ã¤Æ, ¸½ºß¤Î¥Ñ¥¹¥ï¡¼¥É¤ò¼è¤ê½Ð¤·¤Æ¤«¤é,\n"
+"¤â¤¦°ìÅٻ¤Æ¤¯¤À¤µ¤¤."
+
+#: Mailman/Commands/cmd_password.py:85 Mailman/Commands/cmd_password.py:111
+msgid ""
+"\n"
+"Usage:"
+msgstr ""
+"\n"
+"»ÈÍÑË¡:"
+
+#: Mailman/Commands/cmd_remove.py:17
+msgid "The `remove' command is synonymous with `unsubscribe'.\n"
+msgstr "`remove'¥³¥Þ¥ó¥É¤Ï`unsubscribe'¤ÈƱ¤¸¤Ç¤¹.\n"
+
+#: Mailman/Commands/cmd_set.py:26
+msgid ""
+"\n"
+" set ...\n"
+" Set or view your membership options.\n"
+"\n"
+" Use `set help' (without the quotes) to get a more detailed list of "
+"the\n"
+" options you can change.\n"
+"\n"
+" Use `set show' (without the quotes) to view your current option\n"
+" settings.\n"
+msgstr ""
+"\n"
+" set ...\n"
+" ²ñ°÷¥ª¥×¥·¥ç¥ó¤òÀßÄꤷ¤¿¤ê, ³Îǧ¤·¤¿¤ê¤·¤Þ¤¹.\n"
+"\n"
+" `set help' (°úÍÑÉä¤ÏÉÕ¤±¤Ê¤¤) ¤ÇÊѹ¹²Äǽ¤Ê¥ª¥×¥·¥ç¥ó¤Î°ìÍ÷¤ò\n"
+" ¸«¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹.\n"
+"\n"
+" `set show' (°úÍÑÉä¤ÏÉÕ¤±¤Ê¤¤) ¤Ç¸½ºß¤Î¥ª¥×¥·¥ç¥ó¤ò¸«¤ë¤³¤È¤¬\n"
+" ¤Ç¤­¤Þ¤¹.\n"
+
+#: Mailman/Commands/cmd_set.py:37
+msgid ""
+"\n"
+" set help\n"
+" Show this detailed help.\n"
+"\n"
+" set show [address=<address>]\n"
+" View your current option settings. If you're posting from an "
+"address\n"
+" other than your membership address, specify your membership address\n"
+" with `address=<address>' (no brackets around the email address, and "
+"no\n"
+" quotes!).\n"
+"\n"
+" set authenticate <password> [address=<address>]\n"
+" To set any of your options, you must include this command first, "
+"along\n"
+" with your membership password. If you're posting from an address\n"
+" other than your membership address, specify your membership address\n"
+" with `address=<address>' (no brackets around the email address, and "
+"no\n"
+" quotes!).\n"
+"\n"
+" set ack on\n"
+" set ack off\n"
+" When the `ack' option is turned on, you will receive an\n"
+" acknowledgement message whenever you post a message to the list.\n"
+"\n"
+" set digest plain\n"
+" set digest mime\n"
+" set digest off\n"
+" When the `digest' option is turned off, you will receive postings\n"
+" immediately when they are posted. Use `set digest plain' if "
+"instead\n"
+" you want to receive postings bundled into a plain text digest\n"
+" (i.e. RFC 1153 digest). Use `set digest mime' if instead you want "
+"to\n"
+" receive postings bundled together into a MIME digest.\n"
+"\n"
+" set delivery on\n"
+" set delivery off\n"
+" Turn delivery on or off. This does not unsubscribe you, but "
+"instead\n"
+" tells Mailman not to deliver messages to you for now. This is "
+"useful\n"
+" if you're going on vacation. Be sure to use `set delivery on' when\n"
+" you return from vacation!\n"
+"\n"
+" set myposts on\n"
+" set myposts off\n"
+" Use `set myposts off' to not receive copies of messages you post to\n"
+" the list. This has no effect if you're receiving digests.\n"
+"\n"
+" set hide on\n"
+" set hide off\n"
+" Use `set hide on' to conceal your email address when people request\n"
+" the membership list.\n"
+"\n"
+" set duplicates on\n"
+" set duplicates off\n"
+" Use `set duplicates off' if you want Mailman to not send you "
+"messages\n"
+" if your address is explicitly mentioned in the To: or Cc: fields of\n"
+" the message. This can reduce the number of duplicate postings you\n"
+" will receive.\n"
+"\n"
+" set reminders on\n"
+" set reminders off\n"
+" Use `set reminders off' if you want to disable the monthly password\n"
+" reminder for this mailing list.\n"
+msgstr ""
+"\n"
+" set help\n"
+" ¤³¤Î¾Ü¤·¤¤ÀâÌÀ¤ò¼è¤ê½Ð¤¹.\n"
+"\n"
+" set show [address=<¥¢¥É¥ì¥¹>]\n"
+" ¸½ºß¤Î¥ª¥×¥·¥ç¥óÀßÄê¤ò¸«¤ë. ¤â¤·, ¤¢¤Ê¤¿¤¬²ñ°÷ÅÐÏ¿¥¢¥É¥ì¥¹°Ê³°\n"
+" ¤«¤é¥á¡¼¥ë¤ò½Ð¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï, ÅÐÏ¿¥¢¥É¥ì¥¹¤ò\n"
+" `address=<¥¢¥É¥ì¥¹>' ¤Î·Á¼°¤Ç»ØÄꤷ¤Æ¤¯¤À¤µ¤¤. (³ç¸Ì¤ä°úÍÑÉä¤ò\n"
+" ¥á¡¼¥ë¥¢¥É¥ì¥¹¤ËÉÕ¤±¤Ê¤¤¤è¤¦¤Ë)\n"
+"\n"
+" set authenticate <¥Ñ¥¹¥ï¡¼¥É> [address=<¥¢¥É¥ì¥¹>]\n"
+" ¥ª¥×¥·¥ç¥ó¤òÀßÄꤹ¤ë»þ¤Ë¤Ï, ¤Þ¤º¤³¤Î¥³¥Þ¥ó¥É¤òÆþ¤ì¤Æ¤ª¤¯É¬Íפ¬\n"
+" ¤¢¤ê¤Þ¤¹. <¥Ñ¥¹¥ï¡¼¥É>¤Ï¤¢¤Ê¤¿¤Î²ñ°÷¥Ñ¥¹¥ï¡¼¥É¤Ç¤¹. ²ñ°÷¤È¤·¤Æ\n"
+" ÅÐÏ¿¤·¤¿¥¢¥É¥ì¥¹°Ê³°¤«¤é¥á¡¼¥ë¤ò½Ð¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï, ÅÐÏ¿¥¢¥É¥ì¥¹\n"
+" ¤ò `address=<¥¢¥É¥ì¥¹>' ¤Î·Á¼°¤Ç»ØÄꤷ¤Æ¤¯¤À¤µ¤¤. (³ç¸Ì¤ä°úÍÑÉä\n"
+" ¤òÉÕ¤±¤Ê¤¤¤è¤¦¤Ë)\n"
+"\n"
+" set ack on\n"
+" set ack off\n"
+" `ack' ¥ª¥×¥·¥ç¥ó¤ò on ¤Ë¤¹¤ë¤È, ¤¢¤Ê¤¿¤¬¥ê¥¹¥È¤Ë¥á¡¼¥ë¤ò½Ð¤¹\n"
+" ÅÙ¤Ë, ¼õÎγÎǧ¤Î¥á¡¼¥ë¤ò¼õ¤±¼è¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹.\n"
+"\n"
+" set digest plain\n"
+" set digest mime\n"
+" set digest off\n"
+" `digest' ¥ª¥×¥·¥ç¥ó¤¬¥ª¥Õ¤Î»þ, Åê¹Æ¤µ¤ì¤¿¥á¡¼¥ë¤ò¤¹¤°¤Ë¼õ¤±¼è¤ê\n"
+" ¤Þ¤¹. ²¿Ä̤«¤¢¤ë¤¤¤Ï°ìÄê´ü´Ö¤Î¥á¡¼¥ë¤ò¤Þ¤È¤á¤ÆÆÉ¤ß¤¿¤¤¤È¤­, \n"
+" ¤³¤ì¤òʿʸ·Á¼°(RFC 1153 ¥À¥¤¥¸¥§¥¹¥È)¤Ç¼õ¤±¼è¤ê¤¿¤¤¾ì¹ç¤Ë¤Ï\n"
+" `set digest plain' ¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤. MIME·Á¼°¤Î¤Þ¤È¤áÆÉ¤ß¤ò\n"
+" ¼õ¤±¼è¤ê¤¿¤¤¾ì¹ç¤Ë¤Ï `set digest mime' ¤Ë¤·¤Æ¤¯¤À¤µ¤¤. \n"
+"\n"
+" set delivery on\n"
+" set delivery off\n"
+" ÇÛÁ÷¤ò on/off ¤·¤Þ¤¹. ¤³¤ì¤Ï, Âà²ñ¤¹¤ë¤Î¤È¤Ï°ã¤Ã¤Æ, »Ã¤¯¤Î´Ö\n"
+" Mailman ¤¬¥á¡¼¥ëÇÛÁ÷¤ò»ß¤á¤ë¤è¤¦¤Ë¤¹¤ë¤À¤±¤Ç¤¹. ¤³¤ì¤Ï, ¤¢¤Ê¤¿¤¬\n"
+" µÙ²Ë¤ò¤È¤ë¤È¤­¤Ê¤É¤ËÊØÍø¤Ç¤·¤ç¤¦. µÙ²Ë¤«¤éµ¢¤Ã¤¿¤é,\n"
+" `set delivery on' ¤Ë¤¹¤ë¤Î¤ò˺¤ì¤Ê¤¤¤è¤¦¤Ë!\n"
+"\n"
+" set myposts on\n"
+" set myposts off\n"
+" `set myposts off' ¤ò»È¤¦¤È¤¢¤Ê¤¿¤¬¤³¤Î¥ê¥¹¥È¤Ë½Ð¤·¤¿¥á¡¼¥ë\n"
+" ¤Î¹µ¤¨¤ò¼õ¤±¼è¤é¤Ê¤¤¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹. ¤â¤·, ¤Þ¤È¤áÆÉ¤ß¤ò¤·¤Æ\n"
+" ¤¤¤ë¾ì¹ç¤Ë¤Ï̵¸ú¤Ç¤¹.\n"
+"\n"
+" set hide on\n"
+" set hide off\n"
+" `set hide on' ¤ò»È¤¦¤È¤¢¤Ê¤¿¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤¬²ñ°÷̾Êí¤Ë¤Ï\n"
+" ½Ð¤Ê¤¤¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹.\n"
+"\n"
+" set duplicates on\n"
+" set duplicates off\n"
+" `set duplicates off' ¤Ë¤¹¤ë¤È, ¤â¤·¤¢¤Ê¤¿¤Î¥¢¥É¥ì¥¹¤¬ÌÀ¼¨Åª¤Ë\n"
+" To: ¤Þ¤¿¤Ï Cc: ¤Ë¤¢¤Ã¤¿¤é, Mailman ¤«¤é¤Ï¤¢¤Ê¤¿¤Ë¥á¡¼¥ë¤òÁ÷¤é\n"
+" ¤è¤¦¤Ë¤·¤Þ¤¹. ¤½¤¦¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¤¢¤Ê¤¿¤¬¥À¥Ö¤Ã¤Æ¼õ¤±¼è¤ë\n"
+" ¥á¡¼¥ë¤ò¸º¤é¤¹¤³¤È¤¬¤Ç¤­¤Þ¤¹.\n"
+"\n"
+" set reminders on\n"
+" set reminders off\n"
+" `set reminders off' ¤Ë¤¹¤ë¤³¤È¤Ç, ¤³¤Î¥ê¥¹¥È¤ÎËè·î¤Î¥Ñ¥¹¥ï¡¼¥É\n"
+" ÄÌÃΤò¼õ¤±¼è¤é¤Ê¤¤¤è¤¦¤Ë¤Ç¤­¤Þ¤¹.\n"
+
+#: Mailman/Commands/cmd_set.py:122
+msgid "Bad set command: %(subcmd)s"
+msgstr "set ¥³¥Þ¥ó¥É¤Ë´Ö°ã¤¤¤¬¤¢¤ê¤Þ¤¹: %(subcmd)s"
+
+#: Mailman/Commands/cmd_set.py:151
+msgid "Your current option settings:"
+msgstr "¤¢¤Ê¤¿¤Î¸½ºß¤Î¥ª¥×¥·¥ç¥óÀßÄê:"
+
+#: Mailman/Commands/cmd_set.py:153 Mailman/Commands/cmd_set.py:191
+#: Mailman/Commands/cmd_set.py:194 Mailman/Commands/cmd_set.py:198
+#: Mailman/Commands/cmd_set.py:202
+msgid "off"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:153 Mailman/Commands/cmd_set.py:191
+#: Mailman/Commands/cmd_set.py:194 Mailman/Commands/cmd_set.py:198
+#: Mailman/Commands/cmd_set.py:202
+msgid "on"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:154
+msgid " ack %(onoff)s"
+msgstr " ack (¼õÎÎ) %(onoff)s"
+
+#: Mailman/Commands/cmd_set.py:160
+msgid " digest plain"
+msgstr " digest plain (ʿʸ¤Ç¤Þ¤È¤áÆÉ¤ß)"
+
+#: Mailman/Commands/cmd_set.py:162
+msgid " digest mime"
+msgstr " digest mime (MIME¤Ç¤Þ¤È¤áÆÉ¤ß)"
+
+#: Mailman/Commands/cmd_set.py:164
+msgid " digest off"
+msgstr " digest (¤Þ¤È¤áÆÉ¤ß) off"
+
+#: Mailman/Commands/cmd_set.py:169
+msgid "delivery on"
+msgstr "delivery (ÇÛÁ÷) on"
+
+#: Mailman/Commands/cmd_set.py:171 Mailman/Commands/cmd_set.py:174
+#: Mailman/Commands/cmd_set.py:177 Mailman/Commands/cmd_set.py:181
+msgid "delivery off"
+msgstr "delivery (ÇÛÁ÷) off"
+
+#: Mailman/Commands/cmd_set.py:172
+msgid "by you"
+msgstr "¤¢¤Ê¤¿¤Ë¤è¤Ã¤Æ"
+
+#: Mailman/Commands/cmd_set.py:175
+msgid "by the admin"
+msgstr "¥ê¥¹¥È´ÉÍý¼Ô¤Ë¤è¤ê"
+
+#: Mailman/Commands/cmd_set.py:178
+msgid "due to bounces"
+msgstr "¥¨¥é¡¼¥á¡¼¥ë¤Ë¤è¤Ã¤Æ"
+
+#: Mailman/Commands/cmd_set.py:186
+msgid " %(status)s (%(how)s on %(date)s)"
+msgstr " %(status)s (%(date)s ¤Ë %(how)s)"
+
+#: Mailman/Commands/cmd_set.py:192
+msgid " myposts %(onoff)s"
+msgstr " myposts (¹µ¤¨) %(onoff)s"
+
+#: Mailman/Commands/cmd_set.py:195
+msgid " hide %(onoff)s"
+msgstr " hide (±£¤ì) %(onoff)s"
+
+#: Mailman/Commands/cmd_set.py:199
+msgid " duplicates %(onoff)s"
+msgstr " duplicates (¥À¥Ö¥ê) %(onoff)s"
+
+#: Mailman/Commands/cmd_set.py:203
+msgid " reminders %(onoff)s"
+msgstr " reminders (ÄÌÃÎ) %(onoff)s"
+
+#: Mailman/Commands/cmd_set.py:224
+msgid "You did not give the correct password"
+msgstr "¥Ñ¥¹¥ï¡¼¥É¤¬°ã¤¤¤Þ¤¹."
+
+#: Mailman/Commands/cmd_set.py:236 Mailman/Commands/cmd_set.py:283
+msgid "Bad argument: %(arg)s"
+msgstr "°ú¿ô¤¬°ã¤¤¤Þ¤¹: %(arg)s"
+
+#: Mailman/Commands/cmd_set.py:241 Mailman/Commands/cmd_set.py:261
+msgid "Not authenticated"
+msgstr "ǧ¾Ú¼ºÇÔ"
+
+#: Mailman/Commands/cmd_set.py:254
+msgid "ack option set"
+msgstr "ack (¼õÎÎ) ¥ª¥×¥·¥ç¥ó¤òÀßÄê"
+
+#: Mailman/Commands/cmd_set.py:286
+msgid "digest option set"
+msgstr "digest (¤Þ¤È¤áÆÉ¤ß)¥ª¥×¥·¥ç¥ó¤òÀßÄê"
+
+#: Mailman/Commands/cmd_set.py:298
+msgid "delivery option set"
+msgstr "delivery (ÇÛÁ÷)¥ª¥×¥·¥ç¥ó¤òÀßÄê"
+
+#: Mailman/Commands/cmd_set.py:310
+msgid "myposts option set"
+msgstr "myposts (¹µ¤¨)¥ª¥×¥·¥ç¥ó¤òÀßÄê"
+
+#: Mailman/Commands/cmd_set.py:321
+msgid "hide option set"
+msgstr "hide (±£¤ì)¥ª¥×¥·¥ç¥ó¤òÀßÄê"
+
+#: Mailman/Commands/cmd_set.py:333
+msgid "duplicates option set"
+msgstr "duplicates (¥À¥Ö¥ê)¥ª¥×¥·¥ç¥ó¤òÀßÄê"
+
+#: Mailman/Commands/cmd_set.py:345
+msgid "reminder option set"
+msgstr "reminder (¥Ñ¥¹¥ï¡¼¥ÉÄÌÃÎ)¥ª¥×¥·¥ç¥ó¤òÀßÄê"
+
+#: Mailman/Commands/cmd_stop.py:17
+msgid "stop is synonymous with the end command.\n"
+msgstr "stop ¤Ï end ¥³¥Þ¥ó¥É¤ÈƱ¤¸°ÕÌ£¤Ç¤¹.\n"
+
+#: Mailman/Commands/cmd_subscribe.py:17
+msgid ""
+"\n"
+" subscribe [password] [digest|nodigest] [address=<address>]\n"
+" Subscribe to this mailing list. Your password must be given to\n"
+" unsubscribe or change your options, but if you omit the password, "
+"one\n"
+" will be generated for you. You may be periodically reminded of "
+"your\n"
+" password.\n"
+"\n"
+" The next argument may be either: `nodigest' or `digest' (no "
+"quotes!).\n"
+" If you wish to subscribe an address other than the address you sent\n"
+" this request from, you may specify `address=<address>' (no brackets\n"
+" around the email address, and no quotes!)\n"
+msgstr ""
+"\n"
+" subscribe [¥Ñ¥¹¥ï¡¼¥É] [digest|nodigest] [address=<¥¢¥É¥ì¥¹>]\n"
+" ¤³¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ËÆþ²ñ¤¹¤ë. ¥Ñ¥¹¥ï¡¼¥É¤ÏÂà²ñ¤ä¥ª¥×¥·¥ç¥ó¤Î\n"
+" Êѹ¹¤ËɬÍפǤ¹¤¬, ¤â¤·¾Êά¤·¤¿¾ì¹ç¤Ë¤Ï¼«Æ°Åª¤ËÀ¸À®¤µ¤ì¤Þ¤¹.\n"
+" ¥Ñ¥¹¥ï¡¼¥É¤Ï˺¤ì¤Ê¤¤¤è¤¦¤ËÄê´üŪ¤ËÄÌÃΤ·¤Þ¤¹.\n"
+"\n"
+" The next argument may be either: `nodigest' or `digest' (no "
+"quotes!).\n"
+" If you wish to subscribe an address other than the address you sent\n"
+" this request from, you may specify `address=<address>' (no brackets\n"
+" around the email address, and no quotes!)\n"
+
+#: Mailman/Commands/cmd_subscribe.py:62
+msgid "Bad digest specifier: %(arg)s"
+msgstr "¡Ö¤Þ¤È¤áÆÉ¤ß¡×¤Î»Ø¼¨¤¬°ã¤¤¤Þ¤¹: %(arg)s"
+
+#: Mailman/Commands/cmd_subscribe.py:84
+msgid "No valid address found to subscribe"
+msgstr "ÅÐÏ¿¤¹¤Ù¤­Í­¸ú¤Ê¥¢¥É¥ì¥¹¤¬¤¢¤ê¤Þ¤»¤ó"
+
+#: Mailman/Commands/cmd_subscribe.py:102
+msgid ""
+"The email address you supplied is banned from this mailing list.\n"
+"If you think this restriction is erroneous, please contact the list\n"
+"owners at %(listowner)s."
+msgstr ""
+"¤¢¤Ê¤¿¤¬Äó½Ð¤·¤¿¥á¡¼¥ë¥¢¥É¥ì¥¹¤Ï¤³¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤«¤é\n"
+" ÇÓ½ü¤µ¤ì¤Æ¤¤¤Þ¤¹. ¤â¤·, ¤³¤ÎÀ©¸Â¤¬¸í¤ê¤Ç¤¢¤ë¤È¹Í¤¨¤ë¤Ê¤é, \n"
+" ¥ê¥¹¥È´ÉÍý¼Ô¤Î %(listowner)s ¤ËÏ¢Íí¤·¤Æ¤¯¤À¤µ¤¤."
+
+#: Mailman/Commands/cmd_subscribe.py:108
+msgid ""
+"Mailman won't accept the given email address as a valid address.\n"
+"(E.g. it must have an @ in it.)"
+msgstr ""
+"Mailman ¤ÏÍ¿¤¨¤é¤ì¤¿¥á¡¼¥ë¥¢¥É¥ì¥¹¤òÍ­¸ú¤Ê¤â¤Î¤Èǧ¤á¤Þ¤»¤ó.\n"
+"(@ ¤¬Æþ¤Ã¤Æ¤¤¤Þ¤¹¤«???)"
+
+#: Mailman/Commands/cmd_subscribe.py:113
+msgid ""
+"Your subscription is not allowed because\n"
+"the email address you gave is insecure."
+msgstr ""
+"¤¢¤Ê¤¿¤¬¿½ÀÁ¤·¤¿¥á¡¼¥ë¥¢¥É¥ì¥¹¤ËÌäÂ꤬\n"
+"¤¢¤ë¤¿¤á, Æþ²ñ¿½ÀÁ¤Ïµö²Ä¤Ç¤­¤Þ¤»¤ó."
+
+#: Mailman/Commands/cmd_subscribe.py:118
+msgid "You are already subscribed!"
+msgstr "¤¢¤Ê¤¿¤Ï´û¤ËÆþ²ñ¤·¤Æ¤¤¤Þ¤¹!"
+
+#: Mailman/Commands/cmd_subscribe.py:122
+msgid "No one can subscribe to the digest of this list!"
+msgstr "¤³¤Î¥ê¥¹¥È¤Ç¤Ï¡Ö¤Þ¤È¤áÆÉ¤ß¡×¤Ç¤ÎÆþ²ñ¤Ï¤Ç¤­¤Þ¤»¤ó!"
+
+#: Mailman/Commands/cmd_subscribe.py:125
+msgid "This list only supports digest subscriptions!"
+msgstr "¤³¤Î¥ê¥¹¥È¤Ç¤Ï¡Ö¤Þ¤È¤áÆÉ¤ß¡×¤À¤±¤¬Í­¸ú¤Ç¤¹!"
+
+#: Mailman/Commands/cmd_subscribe.py:131
+msgid ""
+"Your subscription request has been forwarded to the list administrator\n"
+"at %(listowner)s for review."
+msgstr ""
+"¤¢¤Ê¤¿¤ÎÆþ²ñ¿½ÀÁ¤Ï¿³ºº¤Î¤¿¤á, ¥ê¥¹¥È´ÉÍý¼Ô¤Î %(listowner)s ¤ØÅ¾Á÷¤µ¤ì¤Þ¤·¤¿."
+
+#: Mailman/Commands/cmd_subscribe.py:136
+msgid "Subscription request succeeded."
+msgstr "Æþ²ñ¿½ÀÁ¤¬´°Î»¤·¤Þ¤·¤¿"
+
+#: Mailman/Commands/cmd_unsubscribe.py:17
+msgid ""
+"\n"
+" unsubscribe [password] [address=<address>]\n"
+" Unsubscribe from the mailing list. If given, your password must "
+"match\n"
+" your current password. If omitted, a confirmation email will be "
+"sent\n"
+" to the unsubscribing address. If you wish to unsubscribe an address\n"
+" other than the address you sent this request from, you may specify\n"
+" `address=<address>' (no brackets around the email address, and no\n"
+" quotes!)\n"
+msgstr ""
+"\n"
+" unsubscribe [¥Ñ¥¹¥ï¡¼¥É] [address=<¥¢¥É¥ì¥¹>]\n"
+" ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤«¤éÂà²ñ¤·¤Þ¤¹. ¤â¤·¥Ñ¥¹¥ï¡¼¥É¤òÉÕ¤±¤ë¾ì¹ç,\n"
+" ÅÐÏ¿¤µ¤ì¤¿¥Ñ¥¹¥ï¡¼¥É¤Ë°ìÃפ·¤Ê¤¤¤È¤¤¤±¤Þ¤»¤ó. ¤â¤·, ¥Ñ¥¹\n"
+" ¥ï¡¼¥É¤ò¾Êά¤·¤¿¾ì¹ç¤Ë¤Ï, Âà²ñ¤·¤è¤¦¤È¤¹¤ë¥¢¥É¥ì¥¹¤Ë°¸¤Æ¤Æ\n"
+" ³Îǧ¥á¡¼¥ë¤òȯÁ÷¤·¤Þ¤¹. ¤â¤·, Âà²ñ¤·¤è¤¦¤È¤¹¤ë¥¢¥É¥ì¥¹°Ê³°\n"
+" ¤«¤é¿½ÀÁ¥á¡¼¥ë¤ò½Ð¤¹¤Î¤Ç¤¢¤ì¤Ð, `address=<¥¢¥É¥ì¥¹>' ¤ò\n"
+" »ØÄꤷ¤Æ¤¯¤À¤µ¤¤. (¤³¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤Ë¤Ï <> ¤ä \" ¤òÉÕ¤±¤Ê\n"
+" ¤¤¤Ç¤¯¤À¤µ¤¤!)\n"
+
+#: Mailman/Commands/cmd_unsubscribe.py:62
+msgid "%(address)s is not a member of the %(listname)s mailing list"
+msgstr "%(address)s ¤Ï %(listname)s ¤Î¥ê¥¹¥È²ñ°÷¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó."
+
+#: Mailman/Commands/cmd_unsubscribe.py:69
+msgid ""
+"Your unsubscription request has been forwarded to the list administrator "
+"for\n"
+"approval."
+msgstr "¤¢¤Ê¤¿¤ÎÂà²ñ¿½ÀÁ¤Ï¿³ºº¤Î¤¿¤á, ¥ê¥¹¥È´ÉÍý¼Ô¤ØÅ¾Á÷¤µ¤ì¤Þ¤·¤¿."
+
+#: Mailman/Commands/cmd_unsubscribe.py:84
+msgid "You gave the wrong password"
+msgstr "¥Ñ¥¹¥ï¡¼¥É¤¬°ã¤¤¤Þ¤¹."
+
+#: Mailman/Commands/cmd_unsubscribe.py:87
+msgid "Unsubscription request succeeded."
+msgstr "Âà²ñ¿½ÀÁ¤¬´°Î»¤·¤Þ¤·¤¿."
+
+#: Mailman/Commands/cmd_who.py:29
+msgid ""
+"\n"
+" who\n"
+" See everyone who is on this mailing list.\n"
+msgstr ""
+"\n"
+" who\n"
+" ¤³¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Î²ñ°÷̾Êí¤ò¸«¤ë.\n"
+
+#: Mailman/Commands/cmd_who.py:34
+msgid ""
+"\n"
+" who password [address=<address>]\n"
+" See everyone who is on this mailing list. The roster is limited to\n"
+" list members only, and you must supply your membership password to\n"
+" retrieve it. If you're posting from an address other than your\n"
+" membership address, specify your membership address with\n"
+" `address=<address>' (no brackets around the email address, and no\n"
+" quotes!)\n"
+msgstr ""
+"\n"
+" who ¥Ñ¥¹¥ï¡¼¥É [address=<¥¢¥É¥ì¥¹>]\n"
+" ¤³¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Î²ñ°÷̾Êí¤ò¸«¤ë. ̾Êí±ÜÍ÷¤Ï¥ê¥¹¥È²ñ°÷¤ËÀ©¸Â\n"
+" ¤µ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç, ¸«¤ë¤Ë¤Ï²ñ°÷¥Ñ¥¹¥ï¡¼¥É¤¬É¬ÍפǤ¹. ¤â¤·, ÅÐÏ¿\n"
+" ¥¢¥É¥ì¥¹°Ê³°¤«¤é¥á¡¼¥ë¤ò½Ð¤¹¤Î¤Ê¤é `address=<¥¢¥É¥ì¥¹>' ¤Ç²ñ°÷\n"
+" ¥¢¥É¥ì¥¹¤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤. (¤³¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤Ë¤Ï <> ¤ä \" ¤ò\n"
+" ÉÕ¤±¤Ê¤¤¤Ç¤¯¤À¤µ¤¤!)\n"
+
+#: Mailman/Commands/cmd_who.py:44
+msgid ""
+"\n"
+" who password\n"
+" See everyone who is on this mailing list. The roster is limited to\n"
+" list administrators and moderators only; you must supply the list\n"
+" admin or moderator password to retrieve the roster.\n"
+msgstr ""
+"\n"
+" who ¥Ñ¥¹¥ï¡¼¥É\n"
+" ¤³¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Î²ñ°÷̾Êí¤ò¸«¤ë. ̾Êí¤Ï¥ê¥¹¥È´ÉÍý¼Ô¤È\n"
+" »Ê²ñ¼Ô¤·¤«¸«¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó. ¥ê¥¹¥È´ÉÍý¼Ô¤Î¥Ñ¥¹¥ï¡¼¥É¤«\n"
+" ¤Þ¤¿¤Ï»Ê²ñ¼Ô¤Î¥Ñ¥¹¥ï¡¼¥É¤òÉÕ¤±¤Æ¤¯¤À¤µ¤¤.\n"
+
+#: Mailman/Commands/cmd_who.py:110
+msgid "You are not allowed to retrieve the list membership."
+msgstr "¤¢¤Ê¤¿¤Ï¤³¤Î¥ê¥¹¥È²ñ°÷¤Ë¤Ê¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó."
+
+#: Mailman/Commands/cmd_who.py:116
+msgid "This list has no members."
+msgstr "¤³¤Î¥ê¥¹¥È¤Ë¤Ï²ñ°÷¤¬¤¤¤Þ¤»¤ó."
+
+#: Mailman/Commands/cmd_who.py:129
+msgid "Non-digest (regular) members:"
+msgstr "ÉáÄÌÇÛÁ÷²ñ°÷:"
+
+#: Mailman/Commands/cmd_who.py:132
+msgid "Digest members:"
+msgstr "¤Þ¤È¤áÆÉ¤ß²ñ°÷:"
+
+#: Mailman/Defaults.py:1204
+msgid "Traditional Chinese"
+msgstr "Ãæ¹ñ¸ì(ÅÁÅýŪ)"
+
+#: Mailman/Defaults.py:1205
+msgid "Czech"
+msgstr "¥Á¥§¥³¸ì"
+
+#: Mailman/Defaults.py:1206
+msgid "German"
+msgstr "¥É¥¤¥Ä¸ì"
+
+# mm_cfg.py
+#: Mailman/Defaults.py:1207
+msgid "English (USA)"
+msgstr "±Ñ¸ì (ÊÆ¹ñ)"
+
+#: Mailman/Defaults.py:1208
+msgid "Spanish (Spain)"
+msgstr "¥¹¥Ú¥¤¥ó¸ì (¥¹¥Ú¥¤¥ó)"
+
+#: Mailman/Defaults.py:1209
+msgid "Estonian"
+msgstr "¥¨¥¹¥È¥Ë¥¢¸ì"
+
+#: Mailman/Defaults.py:1210
+msgid "Finnish"
+msgstr "¥Õ¥£¥ó¥é¥ó¥É¸ì"
+
+#: Mailman/Defaults.py:1211
+msgid "French"
+msgstr "¥Õ¥é¥ó¥¹¸ì"
+
+#: Mailman/Defaults.py:1212
+msgid "Simplified Chinese"
+msgstr "Ãæ¹ñ¸ì(´ÊÂλú)"
+
+#: Mailman/Defaults.py:1213
+msgid "Hungarian"
+msgstr "¥Ï¥ó¥¬¥ê¡¼¸ì"
+
+#: Mailman/Defaults.py:1214
+msgid "Italian"
+msgstr "¥¤¥¿¥ê¥¢¸ì"
+
+#: Mailman/Defaults.py:1215
+msgid "Japanese"
+msgstr "ÆüËܸì"
+
+#: Mailman/Defaults.py:1216
+msgid "Korean"
+msgstr "´Ú¹ñ¸ì"
+
+#: Mailman/Defaults.py:1217
+msgid "Lithuanian"
+msgstr "¥ê¥È¥¢¥Ë¥¢¸ì"
+
+#: Mailman/Defaults.py:1218
+msgid "Dutch"
+msgstr "¥ª¥é¥ó¥À¸ì"
+
+#: Mailman/Defaults.py:1219
+msgid "Norwegian"
+msgstr "¥Î¥ë¥¦¥§¡¼¸ì"
+
+#: Mailman/Defaults.py:1220
+msgid "Portuguese (Brazil)"
+msgstr "¥Ý¥ë¥È¥¬¥ë¸ì(¥Ö¥é¥¸¥ë)"
+
+#: Mailman/Defaults.py:1221
+msgid "Russian"
+msgstr "¥í¥·¥¢¸ì"
+
+#: Mailman/Defaults.py:1222
+msgid "Swedish"
+msgstr "¥¹¥¦¥§¡¼¥Ç¥ó¸ì"
+
+#: Mailman/Deliverer.py:43
+msgid ""
+"Note: Since this is a list of mailing lists, administrative\n"
+"notices like the password reminder will be sent to\n"
+"your membership administrative address, %(addr)s."
+msgstr ""
+"Ãí°Õ: ¤³¤ì¤Ï¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Î¥ê¥¹¥È¤Ç¤¹. ¥Ñ¥¹¥ï¡¼¥ÉÄÌÃΤʤɤÎ\n"
+"´ÉÍý¥á¡¼¥ë¤Ï²ñ°÷¤Î´ÉÍý¥¢¥É¥ì¥¹ %(addr)s ¤ØÁ÷¤é¤ì¤Þ¤¹."
+
+#: Mailman/Deliverer.py:62
+msgid " (Digest mode)"
+msgstr " (¤Þ¤È¤áÆÉ¤ß¥â¡¼¥É)"
+
+#: Mailman/Deliverer.py:68
+msgid "Welcome to the \"%(realname)s\" mailing list%(digmode)s"
+msgstr "\"%(realname)s\" ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È %(digmode)s ¤Ø¤è¤¦¤³¤½"
+
+#: Mailman/Deliverer.py:77
+msgid "You have been unsubscribed from the %(realname)s mailing list"
+msgstr "%(realname)s ¤«¤é¤ÎÂà²ñ¼ê³¤­¤¬´°Î»¤·¤Þ¤·¤¿."
+
+#: Mailman/Deliverer.py:104
+msgid "%(listfullname)s mailing list reminder"
+msgstr "%(listfullname)s ¥á¡¼¥ê¥ó¥°¥ê¥¹¥ÈÄÌÃÎ"
+
+#: Mailman/Errors.py:114
+msgid "For some unknown reason"
+msgstr "̤ÃΤÎÍýͳ¤Ë¤è¤ê"
+
+#: Mailman/Errors.py:120 Mailman/Errors.py:143
+msgid "Your message was rejected"
+msgstr "¤¢¤Ê¤¿¤Î¥á¡¼¥ë¤ÏµñÈݤµ¤ì¤Þ¤·¤¿"
+
+#: Mailman/Gui/Archive.py:25
+msgid "Archiving Options"
+msgstr "Êݸ½ñ¸Ë¥ª¥×¥·¥ç¥ó"
+
+#: Mailman/Gui/Archive.py:31
+msgid "List traffic archival policies."
+msgstr "Êݸ½ñ¸ËºîÀ®¤Î´ðËÜÊý¿Ë"
+
+#: Mailman/Gui/Archive.py:34
+msgid "Archive messages?"
+msgstr "Êݸ½ñ¸Ë¤òºîÀ®¤·¤Þ¤¹¤«?"
+
+#: Mailman/Gui/Archive.py:36
+msgid "private"
+msgstr "¸ÂÄê"
+
+#: Mailman/Gui/Archive.py:36
+msgid "public"
+msgstr "¸ø³«"
+
+#: Mailman/Gui/Archive.py:37
+msgid "Is archive file source for public or private archival?"
+msgstr "Êݸ½ñ¸Ë¤Ï¹­¤¯¸ø³«¤·¤Þ¤¹¤«, ¤½¤ì¤È¤â²ñ°÷¤Ë¸ÂÄꤷ¤Þ¤¹¤«?"
+
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Monthly"
+msgstr "Ëè·î"
+
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Quarterly"
+msgstr "4Ⱦ´üËè"
+
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Yearly"
+msgstr "Ëèǯ"
+
+#: Mailman/Gui/Archive.py:41 Mailman/Gui/Digest.py:79
+msgid "Daily"
+msgstr "ËèÆü"
+
+#: Mailman/Gui/Archive.py:41 Mailman/Gui/Digest.py:79
+msgid "Weekly"
+msgstr "Ëè½µ"
+
+#: Mailman/Gui/Archive.py:43
+msgid "How often should a new archive volume be started?"
+msgstr "Êݸ½ñ¸Ë¤Î¿·¤·¤¤´¬¤ò»Ï¤á¤ëÉÑÅ٤ϤɤΤ褦¤Ë¤·¤Þ¤¹¤«?"
+
+#: Mailman/Gui/Autoresponse.py:31
+msgid "Auto-responder"
+msgstr "¼«Æ°±þÅú"
+
+#: Mailman/Gui/Autoresponse.py:39
+msgid ""
+"Auto-responder characteristics.<p>\n"
+"\n"
+"In the text fields below, string interpolation is performed with\n"
+"the following key/value substitutions:\n"
+"<p><ul>\n"
+" <li><b>listname</b> - <em>gets the name of the mailing list</em>\n"
+" <li><b>listurl</b> - <em>gets the list's listinfo URL</em>\n"
+" <li><b>requestemail</b> - <em>gets the list's -request address</em>\n"
+" <li><b>owneremail</b> - <em>gets the list's -owner address</em>\n"
+"</ul>\n"
+"\n"
+"<p>For each text field, you can either enter the text directly into the "
+"text\n"
+"box, or you can specify a file on your local system to upload as the text."
+msgstr ""
+"¼«Æ°±þÅú¤ÎÀßÄê.<p>\n"
+"\n"
+"°Ê²¼¤Î¥Æ¥­¥¹¥È¥Õ¥£¡¼¥ë¥É¤Ç¤Ï, \n"
+"°Ê²¼¤Î¥­¡¼¥ï¡¼¥É ÃÖ¤­´¹¤¨¤¬¹Ô¤ï¤ì¤Þ¤¹:\n"
+"<p><ul>\n"
+" <li><b>listname</b> - <em>¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Î̾Á°¤¬Æþ¤ê¤Þ¤¹</em>\n"
+" <li><b>listurl</b> - <em>¥ê¥¹¥È¤Î listinfo URL ¤¬Æþ¤ê¤Þ¤¹</em>\n"
+" <li><b>requestemail</b> - <em>¥ê¥¹¥È¤Î -request "
+"¥á¡¼¥ë¥¢¥É¥ì¥¹¤¬Æþ¤ê¤Þ¤¹</em>\n"
+" <li><b>owneremail</b> - <em>¥ê¥¹¥È¤Î -owner ¥¢¥É¥ì¥¹¤¬Æþ¤ê¤Þ¤¹</em>\n"
+"</ul>\n"
+"<p>¤½¤ì¤¾¤ì¤Î¥Æ¥­¥¹¥È¥Õ¥£¡¼¥ë¥É¤Ë¤Ä¤¤¤Æ, ľÀܥƥ­¥¹¥È¥Ü¥Ã¥¯¥¹¤Ë\n"
+"½ñ¤­Æþ¤ì¤ë¤³¤È¤â ¤¢¤Ê¤¿¤Î¥í¡¼¥«¥ë¥·¥¹¥Æ¥à\n"
+"¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¤ò¥¢¥Ã¥×¥í¡¼¥É¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹. "
+
+#: Mailman/Gui/Autoresponse.py:55
+msgid ""
+"Should Mailman send an auto-response to mailing list\n"
+" posters?"
+msgstr "¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ø¤ÎÅê¹Æ¼Ô¤ËÂФ·¤Æ¼«Æ°±þÅú¤òÊÖ¤·¤Þ¤¹¤«?"
+
+#: Mailman/Gui/Autoresponse.py:60
+msgid "Auto-response text to send to mailing list posters."
+msgstr "¥á¡¼¥ê¥ó¥°¥ê¥¹¥ÈÅê¹Æ¼Ô¤Ø¤Î¼«Æ°±þÅú¤Îʸ"
+
+#: Mailman/Gui/Autoresponse.py:63
+msgid ""
+"Should Mailman send an auto-response to emails sent to the\n"
+" -owner address?"
+msgstr "-owner °¸¤Ë¥á¡¼¥ë¤¬Í褿¤é¼«Æ°±þÅú¤òÊÖ¤·¤Þ¤¹¤«?"
+
+#: Mailman/Gui/Autoresponse.py:68
+msgid "Auto-response text to send to -owner emails."
+msgstr "-owner °¸¤ËÍ褿¥á¡¼¥ë¤ËÂФ¹¤ë¼«Æ°±þÅú¤Îʸ"
+
+#: Mailman/Gui/Autoresponse.py:71
+msgid "Yes, w/discard"
+msgstr "¤Ï¤¤, ÇË´þ"
+
+#: Mailman/Gui/Autoresponse.py:71
+msgid "Yes, w/forward"
+msgstr "¤Ï¤¤, žÁ÷"
+
+#: Mailman/Gui/Autoresponse.py:72
+msgid ""
+"Should Mailman send an auto-response to emails sent to the\n"
+" -request address? If you choose yes, decide whether you want\n"
+" Mailman to discard the original email, or forward it on to the\n"
+" system as a normal mail command."
+msgstr ""
+"-request ¥¢¥É¥ì¥¹¤ËÍ褿¥á¡¼¥ë¤ËÂФ·¤Æ¼«Æ°±þÅú¤òÁ÷¤ê¤Þ¤¹¤«? ¤â¤·, ¤Ï¤¤ "
+"¤òÁª¤ó¤À¾ì¹ç, ¸µ¤Î¥á¡¼¥ë¤òÇË´þ¤¹¤ë¤«, ¤½¤ì¤È¤âÄ̾ï¤Î¥á¡¼¥ë¥³¥Þ¥ó¥É\n"
+"¤ÈƱÍͤ˥·¥¹¥Æ¥à¤ØÅ¾Á÷¤¹¤ë¤«¤òÁª¤ó¤Ç¤¯¤À¤µ¤¤."
+
+#: Mailman/Gui/Autoresponse.py:79
+msgid "Auto-response text to send to -request emails."
+msgstr "¿½ÀÁ(-request)¥á¡¼¥ë¤ËÂФ¹¤ë¼«Æ°±þÅú¤Îʸ"
+
+#: Mailman/Gui/Autoresponse.py:82
+msgid ""
+"Number of days between auto-responses to either the mailing\n"
+" list or -request/-owner address from the same poster. Set to\n"
+" zero (or negative) for no grace period (i.e. auto-respond to\n"
+" every message)."
+msgstr ""
+"Ʊ¤¸È¯¿®¼Ô¤«¤éÍ褿 ¥ê¥¹¥È ¤Þ¤¿¤Ï -request/-owner ¥á¡¼¥ë\n"
+"¥¢¥É¥ì¥¹ ¤ËÂФ·¼«Æ°±þÅú¤ò¹Ô¤¦´Ö³Ö¤ÎÆü¿ô. ¥¼¥í¤Þ¤¿¤ÏÉé¤Ë\n"
+"¤¹¤ë¤È¥á¡¼¥ë¤¬Íè¤ë¤¿¤Ó¤Ë ±þÅú¤¹¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹. "
+
+#: Mailman/Gui/Bounce.py:26
+msgid "Bounce processing"
+msgstr "ÇÛÁ÷¥¨¥é¡¼½èÍý"
+
+#: Mailman/Gui/Bounce.py:32
+msgid ""
+"These policies control the automatic bounce processing system\n"
+" in Mailman. Here's an overview of how it works.\n"
+"\n"
+" <p>When a bounce is received, Mailman tries to extract two "
+"pieces\n"
+" of information from the message: the address of the member the\n"
+" message was intended for, and the severity of the problem "
+"causing\n"
+" the bounce. The severity can be either <em>hard</em> or\n"
+" <em>soft</em> meaning either a fatal error occurred, or a\n"
+" transient error occurred. When in doubt, a hard severity is "
+"used.\n"
+"\n"
+" <p>If no member address can be extracted from the bounce, then "
+"the\n"
+" bounce is usually discarded. Otherwise, each member is assigned "
+"a\n"
+" <em>bounce score</em> and every time we encounter a bounce from\n"
+" this member we increment the score. Hard bounces increment by "
+"1\n"
+" while soft bounces increment by 0.5. We only increment the "
+"bounce\n"
+" score once per day, so even if we receive ten hard bounces from "
+"a\n"
+" member per day, their score will increase by only 1 for that "
+"day.\n"
+"\n"
+" <p>When a member's bounce score is greater than the\n"
+" <a href=\"?VARHELP=bounce/bounce_score_threshold\">bounce score\n"
+" threshold</a>, the subscription is disabled. Once disabled, "
+"the\n"
+" member will not receive any postings from the list until their\n"
+" membership is explicitly re-enabled (either by the list\n"
+" administrator or the user). However, they will receive "
+"occasional\n"
+" reminders that their membership has been disabled, and these\n"
+" reminders will include information about how to re-enable their\n"
+" membership.\n"
+"\n"
+" <p>You can control both the\n"
+" <a "
+"href=\"?VARHELP=bounce/bounce_you_are_disabled_warnings\">number\n"
+" of reminders</a> the member will receive and the\n"
+" <a "
+"href=\"?VARHELP=bounce/bounce_you_are_disabled_warnings_interval\"\n"
+" >frequency</a> with which these reminders are sent.\n"
+"\n"
+" <p>There is one other important configuration variable; after a\n"
+" certain period of time -- during which no bounces from the "
+"member\n"
+" are received -- the bounce information is\n"
+" <a href=\"?VARHELP=bounce/bounce_info_stale_after\">considered\n"
+" stale</a> and discarded. Thus by adjusting this value, and the\n"
+" score threshold, you can control how quickly bouncing members "
+"are\n"
+" disabled. You should tune both of these to the frequency and\n"
+" traffic volume of your list."
+msgstr ""
+"¤³¤Î¥Ý¥ê¥·¡¼¤ÇMailman¤Î¼«Æ°¥¨¥é¡¼¥á¡¼¥ë¼«Æ°½èÍý¥·¥¹¥Æ¥à¤òÀ©¸æ¤·¤Þ¤¹.\n"
+" ¤½¤Îưºî¸¶Íý¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹.\n"
+"\n"
+" <p>ÇÛÁ÷¥¨¥é¡¼ÄÌÃΤò¼õ¤±¼è¤ë¤È, Mailman ¤Ï¤½¤Î¥á¡¼¥ë¤«¤é2¤Ä¤Î¾ðÊó¤ò\n"
+" ¼è¤ê½Ð¤½¤¦¤È¤·¤Þ¤¹: ¤Ä¤Þ¤ê, ²ñ°÷¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤È, ¥¨¥é¡¼¤òµ¯¤³¤·¤¿\n"
+" ¸¶°ø¤Î¿¼¹ïÅ٤Ǥ¹. ¿¼¹ïÅÙ¤Ï<em>¶¯</em>¤Þ¤¿¤Ï<em>¼å</em>¤Ç¤¢¤ê, \n"
+" ¤½¤ì¤¾¤ìÃ×̿Ū¥¨¥é¡¼¤«°ì»þŪ¥¨¥é¡¼¤«¤ËÂбþ¤·¤Æ¤¤¤Þ¤¹. ¤â¤·µ¿Ì䤬\n"
+" ¤¢¤ë¤Ê¤é, ¶¯¤¤¿¼¹ïÅÙ¤¬Å¬ÍѤµ¤ì¤Þ¤¹.\n"
+"\n"
+" <p>¤â¤·, ²ñ°÷¥¢¥É¥ì¥¹¤¬¥¨¥é¡¼¥á¡¼¥ë¤«¤é¼è¤ê½Ð¤»¤Ê¤±¤ì¤Ð, ¤½¤Î\n"
+" ¥¨¥é¡¼¥á¡¼¥ë¤Ï̵»ë¤µ¤ì¤Þ¤¹. ¼è¤ê½Ð¤µ¤ì¤¿¥¢¥É¥ì¥¹¤Î²ñ°÷¤Ë¤Ï, \n"
+" <em>¥¨¥é¡¼ÅÀ</em>¤¬ÉÕ¤±¤é¤ì, ¥¨¥é¡¼¤¬À¸¤¸¤ë¤¿¤Ó¤Ë¤½¤ÎÆÀÅÀ¤ò\n"
+" ²Ã»»¤·¤Þ¤¹. ¶¯¤¤¥¨¥é¡¼¤Ç¤Ï1ÅÀ, ¼å¤¤¥¨¥é¡¼¤Ç¤Ï 0.5ÅÀ¤¬²Ã»»¤µ¤ì¤Þ¤¹.\n"
+" ¥¨¥é¡¼ÆÀÅÀ¤Ï1Æü¤Ë1²ó¤À¤±²Ã»»¤µ¤»¤Þ¤¹¤Î¤Ç, ²¾¤Ë¤¢¤ë²ñ°÷¤«¤é¤Î¶¯¤¤\n"
+" ¥¨¥é¡¼¤¬1Æü¤Ë10²ó¤¢¤Ã¤Æ¤â, ¤½¤ÎÆü¤Ë¤Ä¤¤¤Æ¤Ï1ÅÀ¤¬²Ã»»¤µ¤ì¤ë¤À¤±¤Ç¤¹.\n"
+"\n"
+" <p>¤¢¤ë²ñ°÷¤Ë¤Ä¤¤¤Æ¤Î¥¨¥é¡¼ÅÀ¤¬\n"
+" <a href=\"?VARHELP=bounce/bounce_score_threshold\">ºÇÂ票¥é¡¼ÅÀ</a>\n"
+" ¤ò±Û¤¨¤ë¤È, ²ñ°÷¸¢¤òÄä»ß¤·¤Þ¤¹. ²ñ°÷¸¢¤¬Ää»ß¤µ¤ì¤Æ¤¤¤ë¤È, ¤½¤Î²ñ°÷¤Ï\n"
+" (Ëܿͤޤ¿¤Ï´ÉÍý¼Ô¤Ë¤è¤Ã¤Æ)ÌÀ¼¨Åª¤Ë²ñ°÷¸¢¤òÉü³è¤µ¤»¤Ê¤±¤ì¤Ð, ¥ê¥¹¥È¤Ø¤Î\n"
+" Åê¹Æ¥á¡¼¥ë¤ò¼õ¤±¼è¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó. ¤·¤«¤·, ²ñ°÷¸¢¤¬Ää»ß¤µ¤»¤é¤ì¤Æ\n"
+" ¤¤¤ë¤³¤È¤Ë¤Ä¤¤¤Æ»þ¡¹ÄÌÃΤò¤·, ¤½¤ÎÄÌÃΤˤϲñ°÷Éüµ¢¤ÎÊýË¡¤¬½ñ¤«¤ì¤Æ¤¤¤Þ¤¹.\n"
+"\n"
+"<p>¤Þ¤¿, ¤½¤Î²ñ°÷¤Ë°¸¤Æ¤Æ½Ð¤¹\n"
+"<a href=\"?VARHELP=bounce/bounce_you_are_disabled_warnings\">\n"
+"ÄÌÃΤβó¿ô</a> ¤È \n"
+"<a href=\"?VARHELP=bounce/bounce_you_are_disabled_warnings_interval\">\n"
+"ÉÑÅÙ</a> ¤Î2¤Ä¤Î¥Ñ¥é¥á¡¼¥¿¤ÇÄÌÃΤòÀ©¸æ¤Ç¤­¤Þ¤¹.\n"
+"\n"
+"<p>¤µ¤é¤Ë¤â¤¦°ì¤Ä½ÅÍפÊÀßÄê¹àÌܤ¬¤¢¤ê¤Þ¤¹: ¤¢¤ëÄøÅ٤δü´Ö¤¬²á¤®¤¿¤é,\n"
+" -- ¤½¤Î´Ö¤Ë¤½¤Î²ñ°÷¤«¤é¤Î¥¨¥é¡¼¥á¡¼¥ë¤¬Íè¤Ê¤«¤Ã¤¿¤é -- ¥¨¥é¡¼¾ðÊó¤Ï,\n"
+"<a href=\"?VARHELP=bounce/bounce_info_stale_after\">¸Å¤¯¤Ê¤Ã¤¿</a>\n"
+"¤â¤Î¤È¤·¤ÆÇË´þ¤µ¤ì¤Þ¤¹. ¤·¤¿¤¬¤Ã¤Æ, ¤³¤ÎÃͤȥ¨¥é¡¼ÅÀ¤òÄ´À°¤¹¤ë¤³¤È\n"
+"¤Ç, ¥¨¥é¡¼¤òµ¯¤³¤¹²ñ°÷¤ò¤É¤Î¤¯¤é¤¤Á᤯Ää»ß¤µ¤»¤ë¤«¤òÀßÄê¤Ç¤­¤Þ¤¹.\n"
+"¥ê¥¹¥È¤Ëή¤ì¤ëÅê¹ÆÉÑÅ٤ˤè¤Ã¤Æ, ¤³¤ì¤é¤ÎÃͤòÄ´À°¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹."
+
+#: Mailman/Gui/Bounce.py:75
+msgid "Bounce detection sensitivity"
+msgstr "ÇÛÁ÷¥¨¥é¡¼¸¡ÃΤδ¶ÅÙ"
+
+#: Mailman/Gui/Bounce.py:78
+msgid "Should Mailman perform automatic bounce processing?"
+msgstr "Mailman ¤Ë¥¨¥é¡¼¥á¡¼¥ë¤Î¼«Æ°½èÍý¤ò¤ä¤é¤»¤Þ¤¹¤«?"
+
+#: Mailman/Gui/Bounce.py:79
+msgid ""
+"By setting this value to <em>No</em>, you disable all\n"
+" automatic bounce processing for this list, however bounce\n"
+" messages will still be discarded so that the list "
+"administrator\n"
+" isn't inundated with them."
+msgstr ""
+"¤³¤ÎÃͤò<em>¤¤¤¤¤¨</em>¤ËÀßÄꤹ¤ë¤È, ¤³¤Î¥ê¥¹¥È¤Ë¤Ä¤¤¤Æ¤Î¼«Æ°\n"
+"¥¨¥é¡¼½èÍý¤ò¹Ô¤ï¤Ê¤¤¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹. ¤·¤«¤·, ¥¨¥é¡¼¥á¡¼¥ë¤Ï°ÍÁ³¤È¤·¤Æ\n"
+"ÇË´þ¤µ¤ì¤ë¤Î¤Ç, ´ÉÍý¼Ô¤ÏÈѤ蘆¤ì¤Þ¤»¤ó."
+
+#: Mailman/Gui/Bounce.py:85
+msgid ""
+"The maximum member bounce score before the member's\n"
+" subscription is disabled. This value can be a floating point\n"
+" number."
+msgstr "²ñ°÷¸¢¤òÄä»ß¤¹¤ëºÇÂç¤Î¥¨¥é¡¼ÅÀ. ¤³¤ì¤ÏÉâÆ°¾®¿ô¤Ç¤â¤è¤¤."
+
+#: Mailman/Gui/Bounce.py:90
+msgid ""
+"The number of days after which a member's bounce information\n"
+" is discarded, if no new bounces have been received in the\n"
+" interim. This value must be an integer."
+msgstr ""
+"¤³¤ÎÆü¿ô¤Î´ÖÇÛÁ÷¥¨¥é¡¼¤¬Ìµ¤±¤ì¤Ð, ÇÛÁ÷¥¨¥é¡¼¾ðÊó¤òÇË´þ¤¹¤ë.\n"
+"À°¿ô¤Çµ­Æþ¤Î¤³¤È."
+
+#: Mailman/Gui/Bounce.py:95
+msgid ""
+"How many <em>Your Membership Is Disabled</em> warnings a\n"
+" disabled member should get before their address is removed "
+"from\n"
+" the mailing list. Set to 0 to immediately remove an address "
+"from\n"
+" the list once their bounce score exceeds the threshold. This\n"
+" value must be an integer."
+msgstr ""
+"<em>²ñ°÷¸¢Ää»ß</em>¤Î·Ù¹ð¥á¡¼¥ë¤ò²¿²óÁ÷¤Ã¤Æ¤«¤é, ¼ÂºÝ¤Ë\n"
+" ¤½¤Î²ñ°÷¤ò¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤«¤éºï½ü¤·¤Þ¤¹¤«? 0 ¤ËÀßÄꤹ¤ë¤È,\n"
+" ¥¨¥é¡¼ÅÀ¤¬ºÇÂçÃͤË㤷¤¿»þÅÀ¤Ç¨ºÂ¤ËÂà²ñ½èÍý¤·¤Þ¤¹.\n"
+" À°¿ô¤Çµ­Æþ¤Î¤³¤È."
+
+#: Mailman/Gui/Bounce.py:102
+msgid ""
+"The number of days between sending the <em>Your Membership\n"
+" Is Disabled</em> warnings. This value must be an integer."
+msgstr ""
+"<em>²ñ°÷¸¢Ää»ß</em>¤Î·Ù¹ð¥á¡¼¥ë¤ò²¿Æü´Ö³Ö¤ÇÁ÷¤ê¤Þ¤¹¤«?\n"
+" À°¿ô¤Çµ­Æþ¤Î¤³¤È."
+
+#: Mailman/Gui/Bounce.py:105 Mailman/Gui/General.py:257
+msgid "Notifications"
+msgstr "¤ªÃΤ餻"
+
+#: Mailman/Gui/Bounce.py:109
+msgid ""
+"Should Mailman send you, the list owner, any bounce messages\n"
+" that failed to be detected by the bounce processor? "
+"<em>Yes</em>\n"
+" is recommended."
+msgstr ""
+"ÇÛÁ÷¥¨¥é¡¼¼«Æ°¸¡½Ð¤Ç¸¡ÃΤǤ­¤Ê¤«¤Ã¤¿¥¨¥é¡¼¥á¡¼¥ë¤Ï, ¥ê¥¹¥È´ÉÍý¼Ô\n"
+"°¸¤Æ¤ËÁ÷¤ë¤è¤¦¤Ë¤·¤Þ¤¹¤«? <em>¤Ï¤¤</em>¤ò¿ä¾©¤·¤Þ¤¹."
+
+#: Mailman/Gui/Bounce.py:112
+msgid ""
+"While Mailman's bounce detector is fairly robust, it's\n"
+" impossible to detect every bounce format in the world. You\n"
+" should keep this variable set to <em>Yes</em> for two reasons: "
+"1)\n"
+" If this really is a permanent bounce from one of your members,\n"
+" you should probably manually remove them from your list, and "
+"2)\n"
+" you might want to send the message on to the Mailman "
+"developers\n"
+" so that this new format can be added to its known set.\n"
+"\n"
+" <p>If you really can't be bothered, then set this variable to\n"
+" <em>No</em> and all non-detected bounces will be discarded\n"
+" without further processing.\n"
+"\n"
+" <p><b>Note:</b> This setting will also affect all messages "
+"sent\n"
+" to your list's -admin address. This address is deprecated and\n"
+" should never be used, but some people may still send mail to "
+"this\n"
+" address. If this happens, and this variable is set to\n"
+" <em>No</em> those messages too will get discarded. You may "
+"want\n"
+" to set up an\n"
+" <a "
+"href=\"?VARHELP=autoreply/autoresponse_admin_text\">autoresponse\n"
+" message</a> for email to the -owner and -admin address."
+msgstr ""
+"Mailman ¤ÎÇÛÁ÷¥¨¥é¡¼¸¡½Ð¥·¥¹¥Æ¥à¤Ï·øÏ´¤Ë¤Ç¤­¤Æ¤¤¤Þ¤¹¤¬,\n"
+"À¤³¦Ãæ¤ÎÁ´¤Æ¤ÎÇÛÁ÷¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤ËÂбþ¤¹¤ë¤³¤È¤ÏÉÔ²Äǽ¤Ç¤¹.\n"
+"¤³¤ÎÊÑ¿ô¤ò<em>¤Ï¤¤</em>¤ËÀßÄꤹ¤ë¤³¤È¤Ç, 1) ¤â¤·, ËÜÅö¤Ë²ñ°÷\n"
+"¤Î¥á¡¼¥ë¥Ü¥Ã¥¯¥¹¤¬±Êµ×¤Ë¾Ã¤¨¤Æ¤¤¤ë¤Ê¤É¤ÎÍýͳ¤Ç¤¢¤ì¤Ð, ¼êư¤Ç\n"
+"Âà²ñ½èÍý¤ò¤¹¤ëɬÍפ¬¤¢¤ë. 2) Mailman ³«È¯¼Ô¤Ë¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸\n"
+"¤òÁ÷¤Ã¤Æ, ¤³¤Î¿·¤·¤¤·Á¼°¤ËÂбþ¤Ç¤­¤ë¤è¤¦¤Ë¤·¤¿¤¤¤È¹Í¤¨¤ë. \n"
+"¤Î£²¤Ä¤Î¤³¤È¤ËÂбþ¤Ç¤­¤Þ¤¹.\n"
+"<p>¤â¤·, ÈѤ蘆¤ì¤¿¤¯¤Ê¤¤¤Î¤Ç¤¢¤ì¤Ð, ¤³¤ÎÊÑ¿ô¤ò<em>¤¤¤¤¤¨</em>\n"
+"¤Ë¤·¤Æ¤ª¤¯¤³¤È¤Ç, ¸¡ÃΤǤ­¤Ê¤«¤Ã¤¿ÇÛÁ÷¥¨¥é¡¼ÄÌÃΤòÇË´þ¤·, °Ê¸å¤Î\n"
+"½èÍý¤Ï¹Ô¤ï¤ì¤Ê¤¤¤è¤¦¤Ë¤Ç¤­¤Þ¤¹.\n"
+"<p><b>Ãí°Õ:</b> ¤³¤ÎÀßÄê¤Ï, ¥ê¥¹¥È¤Î -admin ¥¢¥É¥ì¥¹¤Ø¤ÎÁ´¤Æ¤Î\n"
+"¥á¡¼¥ë¤Ë±Æ¶Á¤·¤Þ¤¹. ¤³¤Î¥¢¥É¥ì¥¹¤ò»È¤Ã¤Æ¥á¡¼¥ë¤ò½Ð¤µ¤Ê¤¤¤è¤¦¤Ë\n"
+"Ãí°Õ¤·¤Æ¤¯¤À¤µ¤¤. ¤â¤·, 狼¤¬¤³¤Î¥¢¥É¥ì¥¹°¸¤Æ¤Ë¥á¡¼¥ë¤ò½Ð¤¹¤È,\n"
+"(¤½¤·¤Æ, ¤³¤³¤Ç<em>¤¤¤¤¤¨</em>¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¤È)¤½¤Î¥á¡¼¥ë¤Ï\n"
+"ÇË´þ¤µ¤ì¤Æ¤·¤Þ¤¤¤Þ¤¹.\n"
+"<a href=\"?VARHELP=autoreply/autoresponse_admin_text\">¼«Æ°±þÅú\n"
+"</a>¤ò»È¤Ã¤Æ -owner ¤È -admin °¸¤Æ¤Î¥á¡¼¥ë¤ËÂбþ¤·¤¿¤Û¤¦¤¬¤è¤¤\n"
+"¤«¤â¤·¤ì¤Þ¤»¤ó."
+
+#: Mailman/Gui/Bounce.py:135
+msgid ""
+"Should Mailman notify you, the list owner, when bounces\n"
+" cause a member's subscription to be disabled?"
+msgstr ""
+"¥¨¥é¡¼ÄÌÃΤΤ¿¤áÇÛÁ÷Ää»ßÁ¼ÃÖ¤¬È¯À¸¤¹¤ë¾ì¹ç, ¤¢¤Ê¤¿(¥ê¥¹¥È´ÉÍý¼Ô)\n"
+"¤ËÄÌÃΤ·¤Þ¤¹¤«?"
+
+#: Mailman/Gui/Bounce.py:137
+msgid ""
+"By setting this value to <em>No</em>, you turn off\n"
+" notification messages that are normally sent to the list "
+"owners\n"
+" when a member's delivery is disabled due to excessive bounces.\n"
+" An attempt to notify the member will always be made."
+msgstr ""
+"¤³¤³¤ò <em>¤¤¤¤¤¨</em>¤Ë¤·¤Æ¤ª¤¯¤È, ÇÛÁ÷¥¨¥é¡¼¤Î¤¿¤á¤Ë\n"
+"²ñ°÷¤Ø¤ÎÇÛÁ÷¤¬Ää»ß¤·¤¿¤³¤È¤ò¥ê¥¹¥È´ÉÍý¿Í¤ËÄÌÃΤ·¤Þ¤»¤ó.\n"
+"²ñ°÷¤Ø¤ÎÄÌÃΤϾï¤Ë»î¤ß¤é¤ì¤Þ¤¹."
+
+#: Mailman/Gui/Bounce.py:144
+msgid ""
+"Should Mailman notify you, the list owner, when bounces\n"
+" cause a member to be unsubscribed?"
+msgstr ""
+"¥¨¥é¡¼ÄÌÃΤΤ¿¤áÂà²ñÁ¼ÃÖ¤¬È¯À¸¤¹¤ë¾ì¹ç, ¤¢¤Ê¤¿(¥ê¥¹¥È´ÉÍý¼Ô)\n"
+"¤ËÄÌÃΤ·¤Þ¤¹¤«?"
+
+#: Mailman/Gui/Bounce.py:146
+msgid ""
+"By setting this value to <em>No</em>, you turn off\n"
+" notification messages that are normally sent to the list "
+"owners\n"
+" when a member is unsubscribed due to excessive bounces. An\n"
+" attempt to notify the member will always be made."
+msgstr ""
+"¤³¤³¤ò <em>¤¤¤¤¤¨</em>¤Ë¤·¤Æ¤ª¤¯¤È, ÇÛÁ÷¥¨¥é¡¼¤Î¤¿¤á¤Ë\n"
+"²ñ°÷¤¬Âà²ñ¤µ¤»¤é¤ì¤¿¤³¤È¤ò¥ê¥¹¥È´ÉÍý¿Í¤ËÄÌÃΤ·¤Þ¤»¤ó.\n"
+"²ñ°÷¤Ø¤ÎÄÌÃΤϾï¤Ë»î¤ß¤é¤ì¤Þ¤¹."
+
+#: Mailman/Gui/Bounce.py:173
+msgid ""
+"Bad value for <a href=\"?VARHELP=bounce/%(property)s\"\n"
+" >%(property)s</a>: %(val)s"
+msgstr ""
+"Ãͤ¬ÉÔÀµ¤Ç¤¹. \n"
+"<a href=\"?VARHELP=bounce/%(property)s\">%(property)s\n"
+"</a>: %(val)s"
+
+#: Mailman/Gui/ContentFilter.py:30
+msgid "Content&nbsp;filtering"
+msgstr "ÆâÍÆ¥Õ¥£¥ë¥¿¡¼"
+
+#: Mailman/Gui/ContentFilter.py:37
+msgid "Forward to List Owner"
+msgstr "¥ê¥¹¥È´ÉÍý¼Ô¤ØÅ¾Á÷"
+
+#: Mailman/Gui/ContentFilter.py:39
+msgid "Preserve"
+msgstr "Êݸ"
+
+#: Mailman/Gui/ContentFilter.py:42
+msgid ""
+"Policies concerning the content of list traffic.\n"
+"\n"
+" <p>Content filtering works like this: when a message is\n"
+" received by the list and you have enabled content filtering, "
+"the\n"
+" individual attachments are first compared to the\n"
+" <a href=\"?VARHELP=contentfilter/filter_mime_types\">filter\n"
+" types</a>. If the attachment type matches an entry in the "
+"filter\n"
+" types, it is discarded.\n"
+"\n"
+" <p>Then, if there are <a\n"
+" href=\"?VARHELP=contentfilter/pass_mime_types\">pass types</a>\n"
+" defined, any attachment type that does <em>not</em> match a\n"
+" pass type is also discarded. If there are no pass types "
+"defined,\n"
+" this check is skipped.\n"
+"\n"
+" <p>After this initial filtering, any <tt>multipart</tt>\n"
+" attachments that are empty are removed. If the outer message "
+"is\n"
+" left empty after this filtering, then the whole message is\n"
+" discarded. Then, each <tt>multipart/alternative</tt> section "
+"will\n"
+" be replaced by just the first alternative that is non-empty "
+"after\n"
+" filtering.\n"
+"\n"
+" <p>Finally, any <tt>text/html</tt> parts that are left in the\n"
+" message may be converted to <tt>text/plain</tt> if\n"
+" <a href=\"?VARHELP=contentfilter/convert_html_to_plaintext\"\n"
+" >convert_html_to_plaintext</a> is enabled and the site is\n"
+" configured to allow these conversions."
+msgstr ""
+"¥ê¥¹¥È¤Ëή¤ì¤ë¥á¡¼¥ë¤ÎÆâÍÆ(Content-Type)¤Ë´Ø¤¹¤ë¥Ý¥ê¥·¡¼.\n"
+"\n"
+"<p>ÆâÍÆ¥Õ¥£¥ë¥¿¡¼¤Ï¼¡¤Î¤è¤¦¤Ëưºî¤·¤Þ¤¹: ¤â¤·, ÆâÍÆ¥Õ¥£¥ë¥¿¡¼¤òÍ­¸ú¤Ë\n"
+"¤·¤Æ¤¤¤Æ, ¥á¡¼¥ë¤¬¥ê¥¹¥È¤ËÅþÃ夹¤ë¤È, ¸Ä¡¹¤ÎźÉÕ¥Õ¥¡¥¤¥ë¤¬, ¤Þ¤º,\n"
+"<a href=\"?VARHELP=contentfilter/filter_mime_types\">¥Õ¥£¥ë¥¿¡¼\n"
+"¥¿¥¤¥×</a>¤ÈÈæ³Ó¤µ¤ì¤Þ¤¹. ¤â¤·, źÉդΥ¿¥¤¥×¤¬¥Õ¥£¥ë¥¿¡¼¤ÎÃæ¤Î\n"
+"¥¿¥¤¥×¤Ë°ìÃפ¹¤ì¤Ð¡¢¤½¤Î¥Õ¥¡¥¤¥ë¤ÏÇË´þ¤µ¤ì¤Þ¤¹\n"
+"\n"
+"<p>¼¡¤Ë, ¤â¤· <a\n"
+"href=\"?VARHELP=contentfilter/pass_mime_types\">Ä̲᥿¥¤¥×</a>\n"
+"¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Æ, ¤³¤Î¥¿¥¤¥×¤Ë°ìÃפ·¤Ê¤±¤ì¤Ð, ¤½¤ÎźÉÕ¥Õ¥¡¥¤¥ë¤Ï\n"
+"ÇË´þ¤µ¤ì¤Þ¤¹. ¤â¤·, Ä̲᥿¥¤¥×¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤³¤Î¥Á¥§¥Ã¥¯¤Ï\n"
+"¹Ô¤¤¤Þ¤»¤ó.\n"
+"<p>¤³¤Î½é´ü¥Õ¥£¥ë¥¿¡¼¤ò¤«¤±¤¿¸å, ¶õ¤Ë¤Ê¤Ã¤¿<tt>multipart</tt>¤Ç¤¢¤ë\n"
+"źÉÕ¥Õ¥¡¥¤¥ë¤¬¤¢¤ì¤Ð, ¤½¤ì¤òºï½ü¤·¤Þ¤¹. ¤â¤·, ¥Õ¥£¥ë¥¿¡¼¤Î¸å, °ìÈÖ³°Â¦\n"
+"¤Î¥á¥Ã¥»¡¼¥¸¤¬¶õ¤Ë¤Ê¤ì¤Ð, ¤½¤Î¥á¡¼¥ëÁ´ÂΤòÇË´þ¤·¤Þ¤¹\n"
+"¤½¤ì¤«¤é, ¤½¤ì¤¾¤ì¤Î<tt>multipart/alternative</tt>¤ÎÉôʬ¤Ï, ºÇ½é¤Î\n"
+"¶õÇò¤Ç¤Ê¤¤alternative(ÂåÂØÉô)¤ÇÃÖ¤­´¹¤¨¤Þ¤¹.\n"
+"\n"
+"<p>ºÇ¸å¤Ë, <a href=\"?VARHELP=contentfilter/convert_html_to_plaintext\">\n"
+"convert_html_to_plaintext</a>\n"
+"¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Æ, ¥µ¥¤¥ÈÁ´ÂΤÇÊÑ´¹¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ì¤Ð,\n"
+"»Ä¤Ã¤Æ¤¤¤ë<tt>text/html</tt>¤ÎÉôʬ¤Ï<tt>text/plain</tt>¤ËÊÑ´¹¤µ¤ì¤Þ¤¹."
+
+#: Mailman/Gui/ContentFilter.py:71
+msgid ""
+"Should Mailman filter the content of list traffic according\n"
+" to the settings below?"
+msgstr "°Ê²¼¤ÎÀßÄê¤Ë¤·¤¿¤¬¤Ã¤Æ¥á¡¼¥ë¤ÎÆâÍÆ¤Ë¤è¤ë¥Õ¥£¥ë¥¿¡¼¤ò¤ª¤³¤Ê¤¤¤Þ¤¹¤«?"
+
+#: Mailman/Gui/ContentFilter.py:75
+msgid ""
+"Remove message attachments that have a matching content\n"
+" type."
+msgstr "°Ê²¼¤Î MIME ¥¿¥¤¥×¤Ë¹ç¤¦¥á¡¼¥ë¤ÎźÉÕ¥Õ¥¡¥¤¥ë¤òºï½ü¤¹¤ë"
+
+#: Mailman/Gui/ContentFilter.py:78
+msgid ""
+"Use this option to remove each message attachment that\n"
+" matches one of these content types. Each line should contain "
+"a\n"
+" string naming a MIME <tt>type/subtype</tt>,\n"
+" e.g. <tt>image/gif</tt>. Leave off the subtype to remove all\n"
+" parts with a matching major content type, e.g. <tt>image</tt>.\n"
+"\n"
+" <p>Blank lines are ignored.\n"
+"\n"
+" <p>See also <a href=\"?VARHELP=contentfilter/pass_mime_types\"\n"
+" >pass_mime_types</a> for a content type whitelist."
+msgstr ""
+"¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ, ¤³¤ì¤é¤ÎMIME¥¿¥¤¥×¤Ë¹ç¤¦ÅºÉÕ¥Õ¥¡¥¤¥ë¤òºï½ü\n"
+"¤·¤Þ¤¹. ³Æ¹Ô¤Ë¤Ï MIME ¤Î<tt>type/subtype</tt> (Îã: <tt>image/gif</tt>)\n"
+"¤ò¤Ò¤È¤Ä¤º¤Ä½ñ¤­¤Þ¤¹. subtype ¤ò¾Êά¤¹¤ë¤È¤½¤Î type ¤Ë¹ç¤¦Á´¤Æ¤Î\n"
+"¥Õ¥¡¥¤¥ë¤òºï½ü¤·¤Þ¤¹(Îã: <tt>image</tt>). \n"
+"\n"
+"<p>¶õÇò¹Ô¤Ï̵»ë¤µ¤ì¤Þ¤¹.\n"
+"\n"
+"<p><a href=\"?VARHELP=contentfilter/pass_mime_types\">pass_mime_types</a>\n"
+"¤Î¥Û¥ï¥¤¥È¥ê¥¹¥È¤â¸«¤Æ¤¯¤À¤µ¤¤."
+
+#: Mailman/Gui/ContentFilter.py:90
+msgid ""
+"Remove message attachments that don't have a matching\n"
+" content type. Leave this field blank to skip this filter\n"
+" test."
+msgstr ""
+"¤³¤ÎÆâÍÆ(Content-Type)¤Ë¹ç¤ï¤Ê¤¤ÅºÉÕ¥Õ¥¡¥¤¥ë¤Ï¼è¤ê½ü¤­¤Þ¤¹.\n"
+"¤³¤Î¥Á¥§¥Ã¥¯¤ò¹Ô¤ï¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤Ë¤Ï, ¤³¤³¤ò¶õÇò¤Ë¤·¤Æ¤ª¤¤¤Æ¤¯¤À¤µ¤¤."
+
+#: Mailman/Gui/ContentFilter.py:94
+msgid ""
+"Use this option to remove each message attachment that does\n"
+" not have a matching content type. Requirements and formats "
+"are\n"
+" exactly like <a "
+"href=\"?VARHELP=contentfilter/filter_mime_types\"\n"
+" >filter_mime_types</a>.\n"
+"\n"
+" <p><b>Note:</b> if you add entries to this list but don't add\n"
+" <tt>multipart</tt> to this list, any messages with attachments\n"
+" will be rejected by the pass filter."
+msgstr ""
+"¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ, Content-Type¤¬°ìÃפ·¤Ê¤¤ÅºÉÕ¥Õ¥¡¥¤¥ë¤òºï½ü¤·¤Þ¤¹.\n"
+"ɬÍ×¾ò·ï¤È·Á¼°¤Ï<a href=\"?VARHELP=contentfilter/filter_mime_types\"\n"
+">filter_mime_types</a> ¤È¤Þ¤Ã¤¿¤¯°ì½ï¤Ç¤¹.\n"
+"\n"
+"<p><b>Ãí°Õ:</b>¤â¤·¤³¤Î¥ê¥¹¥È¤Ë²¿¤«¤òÆþ¤ì¤Æ, <tt>multipart</tt>¤òÆþ¤ì¤ë¤Î¤ò\n"
+"˺¤ì¤ë¤È, źÉդΤ¢¤ë¥á¡¼¥ë¤Ï¤³¤Î¥Õ¥£¥ë¥¿¡¼¤ÇÁ´ÉôµñÈݤµ¤ì¤Æ¤·¤Þ¤¤¤Þ¤¹."
+
+#: Mailman/Gui/ContentFilter.py:104
+msgid ""
+"Should Mailman convert <tt>text/html</tt> parts to plain\n"
+" text? This conversion happens after MIME attachments have "
+"been\n"
+" stripped."
+msgstr ""
+"<tt>text/html</tt>¤ÎÉôʬ¤òʿʸ(¥Æ¥­¥¹¥È·Á¼°)¤ËÊÑ´¹¤·¤Þ¤¹¤«?\n"
+"¤³¤ÎÊÑ´¹¤Ï MIME¤ÎźÉÕ¥Õ¥¡¥¤¥ë¤¬¼è¤ê½ü¤«¤ì¤¿¸å¤Ë¼Â¹Ô¤µ¤ì¤Þ¤¹."
+
+#: Mailman/Gui/ContentFilter.py:110
+msgid ""
+"Action to take when a message matches the content filtering\n"
+" rules."
+msgstr "¥á¡¼¥ë¤¬ÆâÍÆ¥Õ¥£¥ë¥¿¡¼µ¬Â§¤Ë¥Þ¥Ã¥Á¤·¤¿¤È¤­¤Îưºî."
+
+#: Mailman/Gui/ContentFilter.py:113
+msgid ""
+"One of these actions is take when the message matches one of\n"
+" the content filtering rules, meaning, the top-level\n"
+" content type matches one of the <a\n"
+" href=\"?VARHELP=contentfilter/filter_mime_types\"\n"
+" >filter_mime_types</a>, or the top-level content type does\n"
+" <strong>not</strong> match one of the\n"
+" <a href=\"?VARHELP=contentfilter/pass_mime_types\"\n"
+" >pass_mime_types</a>, or if after filtering the subparts of "
+"the\n"
+" message, the message ends up empty.\n"
+"\n"
+" <p>Note this action is not taken if after filtering the "
+"message\n"
+" still contains content. In that case the message is always\n"
+" forwarded on to the list membership.\n"
+"\n"
+" <p>When messages are discarded, a log entry is written\n"
+" containing the Message-ID of the discarded message. When\n"
+" messages are rejected or forwarded to the list owner, a reason\n"
+" for the rejection is included in the bounce message to the\n"
+" original author. When messages are preserved, they are saved "
+"in\n"
+" a special queue directory on disk for the site administrator "
+"to\n"
+" view (and possibly rescue) but otherwise discarded. This last\n"
+" option is only available if enabled by the site\n"
+" administrator."
+msgstr ""
+"¥á¡¼¥ë¤¬ÆâÍÆ¥Õ¥£¥ë¥¿¡¼¤Î¤É¤ì¤«¤Ë¥Þ¥Ã¥Á¤¹¤ë¤È, °Ê²¼¤Î¤¦¤Á°ì¤Ä¤Îưºî¤¬\n"
+"¼è¤é¤ì¤Þ¤¹. ¤Ä¤Þ¤ê, ºÇ¹â°Ì¤ÎContent-Type¤¬<a\n"
+" href=\"?VARHELP=contentfilter/filter_mime_types\"\n"
+" >¥Õ¥£¥ë¥¿¡¼¥¿¥¤¥×</a>¤Î¤É¤ì¤«¤Ë¥Þ¥Ã¥Á¤¹¤ë¤«, \n"
+"ºÇ¹â°Ì¤ÎContent-Type¤¬<a href=\"?VARHELP=contentfilter/pass_mime_types\"\n"
+">Ä̲᥿¥¤¥×</a>¤Ë¥Þ¥Ã¥Á<b>¤·¤Ê¤¤¤«</b>, ²¼°Ì¤Î¥Ñ¡¼¥È¤ò\n"
+"¥Õ¥£¥ë¥¿¡¼¤·¤¿¸å¤Ë¥á¡¼¥ë¤¬¶õ¤Ë¤Ê¤Ã¤¿¾ì¹ç¤Ç¤¹.\n"
+"\n"
+"<p>¤³¤Îưºî¤Ï¥á¡¼¥ë¤Î¥Õ¥£¥ë¥¿¡¼¤ò¹Ô¤Ã¤¿¸å¤Ç¤Þ¤ÀÃæ¿È¤¬\n"
+"»Ä¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¹Ô¤ï¤ì¤Ê¤¤¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤.\n"
+"¤½¤Î¾ì¹ç, ¥á¡¼¥ë¤Ï¥ê¥¹¥È²ñ°÷¤ËÇÛÁ÷¤µ¤ì¤Þ¤¹.\n"
+"\n"
+"<p>¥á¡¼¥ë¤òÇË´þ¤¹¤ë¾ì¹ç¤Ë¤Ï,¡¡ÇË´þ¤¹¤ë¥á¡¼¥ë¤Î Message-ID¤¬\n"
+"¥í¥°¤Ëµ­Ï¿¤µ¤ì¤Þ¤¹. ¥á¡¼¥ë¤òµñÈݤ¹¤ë¤«¥ê¥¹¥È´ÉÍý¼Ô¤ØÅ¾Á÷¤¹¤ë\n"
+"¾ì¹ç¤Ë¤Ï, ¸µ¤ÎÅê¹Æ¼Ô¤Ø¤Î¥¨¥é¡¼ÄÌÃΤ˵ñÈݤÎÍýͳ¤¬µ­ºÜ¤µ¤ì¤Þ¤¹.\n"
+"¥á¡¼¥ë¤òÊݸ¤¹¤ë¾ì¹ç, ¥µ¥¤¥È´ÉÍý¼Ô¤Î¤¿¤á¤Ë¥Ç¥£¥¹¥¯¾å¤ËÆÃ¤Ë\n"
+"ÂÔ¤Á¹ÔÎó¤òºî¤Ã¤Æ¤½¤³¤ËÊݸ¤·¤Þ¤¹. ´ÉÍý¼Ô¤Ï¸å¤ÇÄ´¤Ù¤Æµß¤¤½Ð¤·¤¿¤ê,\n"
+"ÇË´þ¤·¤¿¤ê¤Ç¤­¤Þ¤¹. ¤³¤ÎºÇ¸å¤Î¥ª¥×¥·¥ç¥ó¤Ï¥µ¥¤¥È´ÉÍý¼Ô¤¬Í­¸ú¤Ë\n"
+"¤·¤¿¾ì¹ç¤ËÍøÍѤǤ­¤Þ¤¹."
+
+#: Mailman/Gui/ContentFilter.py:154
+msgid "Bad MIME type ignored: %(spectype)s"
+msgstr "MIME¥¿¥¤¥×¤¬ÉÔÀµ¤Ç¤¹. ̵»ë¤·¤Þ¤¹: %(spectype)s"
+
+#: Mailman/Gui/Digest.py:36
+msgid "Digest options"
+msgstr "¡Ö¤Þ¤È¤áÆÉ¤ß¡×¥ª¥×¥·¥ç¥ó"
+
+#: Mailman/Gui/Digest.py:44
+msgid "Batched-delivery digest characteristics."
+msgstr "¤Þ¤È¤áÆÉ¤ß(¥À¥¤¥¸¥§¥¹¥È)²ñ°÷¤ÎÀßÄê"
+
+#: Mailman/Gui/Digest.py:47
+msgid "Can list members choose to receive list traffic bunched in digests?"
+msgstr "¥ê¥¹¥È²ñ°÷¤Ï¥À¥¤¥¸¥§¥¹¥È¤Ç¤Þ¤È¤áÆÉ¤ß¤¹¤ë¥ª¥×¥·¥ç¥ó¤òÁªÂò¤Ç¤­¤Þ¤¹¤«?"
+
+#: Mailman/Gui/Digest.py:51
+msgid "Digest"
+msgstr "¤Þ¤È¤áÆÉ¤ß"
+
+#: Mailman/Gui/Digest.py:51
+msgid "Regular"
+msgstr "ÉáÄÌÇÛÁ÷"
+
+#: Mailman/Gui/Digest.py:52
+msgid "Which delivery mode is the default for new users?"
+msgstr "¤É¤Á¤é¤ÎÇÛÁ÷¥â¡¼¥É¤¬¿·µ¬²ñ°÷¤Î¥Ç¥Õ¥©¥ë¥È¤Ç¤¹¤«?"
+
+#: Mailman/Gui/Digest.py:55
+msgid "MIME"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:55
+msgid "Plain"
+msgstr "ʿʸ"
+
+#: Mailman/Gui/Digest.py:56
+msgid "When receiving digests, which format is default?"
+msgstr "¤Þ¤È¤áÆÉ¤ß¤ÇÇÛÁ÷¤¹¤ë¤È¤­, ¤É¤Á¤é¤Î·Á¼°¤¬¥Ç¥Õ¥©¥ë¥È¤Ç¤¹¤«?"
+
+#: Mailman/Gui/Digest.py:59
+msgid "How big in Kb should a digest be before it gets sent out?"
+msgstr "Åê¹Æ¥á¡¼¥ë¤¬²¿Kb °Ê¾å¤Ë¤Ê¤Ã¤¿¤é¡Ö¤Þ¤È¤áÆÉ¤ß¡×¤òȯÁ÷¤·¤Þ¤¹¤«?"
+
+#: Mailman/Gui/Digest.py:63
+msgid ""
+"Should a digest be dispatched daily when the size threshold isn't reached?"
+msgstr "¾å¤ÎïçÃͤË㤹¤ëÁ°¤Ç¤â¡Ö¤Þ¤È¤áÆÉ¤ß¡×¤òËèÆüȯ¹Ô¤·¤Þ¤¹¤«?"
+
+#: Mailman/Gui/Digest.py:67
+msgid "Header added to every digest"
+msgstr "¡Ö¤Þ¤È¤áÆÉ¤ß¡×¤ËÉÕ¤±¤ë¥Ø¥Ã¥À"
+
+#: Mailman/Gui/Digest.py:68
+msgid ""
+"Text attached (as an initial message, before the table of contents) to the "
+"top of digests. "
+msgstr "¡Ö¤Þ¤È¤áÆÉ¤ß¡×¤ÎºÇ½é¤ËÉÕ¤±¤ëʸ (Ìܼ¡¤ÎÁ°¤ÎºÇ½é¤ÎËÜʸ)"
+
+#: Mailman/Gui/Digest.py:73
+msgid "Footer added to every digest"
+msgstr "¡Ö¤Þ¤È¤áÆÉ¤ß¡×¤ÎºÇ¸å¤ËÉÕ¤±¤ë¥Õ¥Ã¥¿"
+
+#: Mailman/Gui/Digest.py:74
+msgid "Text attached (as a final message) to the bottom of digests. "
+msgstr "¡Ö¤Þ¤È¤áÆÉ¤ß¡×¤Î°ìÈֺǸå¤ËÉÕ¤±²Ã¤¨¤é¤ì¤ëʸ"
+
+#: Mailman/Gui/Digest.py:80
+msgid "How often should a new digest volume be started?"
+msgstr "¡Ö¤Þ¤È¤áÆÉ¤ß¡×¤Î¿·¤·¤¤´¬¤ò»Ï¤á¤ëÉÑÅ٤ϤɤΤ褦¤Ë¤·¤Þ¤¹¤«?"
+
+#: Mailman/Gui/Digest.py:81
+msgid ""
+"When a new digest volume is started, the volume number is\n"
+" incremented and the issue number is reset to 1."
+msgstr ""
+"¡Ö¤Þ¤È¤áÆÉ¤ß¡×¤Î¿·¤·¤¤´¬¤¬»Ï¤Þ¤ë¤È, ´¬¿ô¤Ï¤Ò¤È¤ÄÁý¤¨, \n"
+" ¹æ¿ô¤¬ 1 ¤Ë¥ê¥»¥Ã¥È¤µ¤ì¤Þ¤¹."
+
+#: Mailman/Gui/Digest.py:85
+msgid "Should Mailman start a new digest volume?"
+msgstr "¡Ö¤Þ¤È¤áÆÉ¤ß¡×¤Î¿·¤·¤¤´¬¤ò¥¹¥¿¡¼¥È¤µ¤»¤Þ¤¹¤«?"
+
+#: Mailman/Gui/Digest.py:86
+msgid ""
+"Setting this option instructs Mailman to start a new volume\n"
+" with the next digest sent out."
+msgstr ""
+"¤³¤Î¥ª¥×¥·¥ç¥ó¤ò¥»¥Ã¥È¤¹¤ë¤È Mailman ¤Ï¼¡¤Î¡Ö¤Þ¤È¤áÆÉ¤ß¡×¤Î\n"
+"ȯÁ÷¤Î»þ¤«¤é¿·¤·¤¤´¬¤ò¥¹¥¿¡¼¥È¤·¤Þ¤¹."
+
+#: Mailman/Gui/Digest.py:90
+msgid ""
+"Should Mailman send the next digest right now, if it is not\n"
+" empty?"
+msgstr "¤â¤·, ¥á¡¼¥ë¤¬Î¯¤Þ¤Ã¤Æ¤¤¤¿¤é, º£, ľ¤Á¤Ë¡Ö¤Þ¤È¤áÆÉ¤ß¡×¤òȯÁ÷¤·¤Þ¤¹¤«?"
+
+#: Mailman/Gui/Digest.py:145
+msgid ""
+"The next digest will be sent as volume\n"
+" %(volume)s, number %(number)s"
+msgstr "¼¡¤Î¤Þ¤È¤áÆÉ¤ß¤ÏÂè %(volume)s ´¬, Âè %(number)s ¹æ¤Ç¤¹."
+
+#: Mailman/Gui/Digest.py:150
+msgid "A digest has been sent."
+msgstr "¤Þ¤È¤áÆÉ¤ß¤òȯÁ÷¤·¤Þ¤·¤¿."
+
+#: Mailman/Gui/Digest.py:152
+msgid "There was no digest to send."
+msgstr "ȯÁ÷¤¹¤Ù¤­, ¤Þ¤È¤áÆÉ¤ß¤¬¤¢¤ê¤Þ¤»¤ó."
+
+#: Mailman/Gui/GUIBase.py:149
+msgid "Invalid value for variable: %(property)s"
+msgstr "ÊÑ¿ô¤ÎÃͤ¬ÉÔÀµ: %(property)s"
+
+#: Mailman/Gui/GUIBase.py:153
+msgid "Bad email address for option %(property)s: %(val)s"
+msgstr "%(property)s ¤Î¥ª¥×¥·¥ç¥ó¤Ë¤Ä¤¤¤Æ¥á¡¼¥ë¥¢¥É¥ì¥¹¤¬ÉÔÀµ: %(val)s"
+
+#: Mailman/Gui/GUIBase.py:179
+msgid ""
+"The following illegal substitution variables were\n"
+" found in the <code>%(property)s</code> string:\n"
+" <code>%(bad)s</code>\n"
+" <p>Your list may not operate properly until you correct "
+"this\n"
+" problem."
+msgstr ""
+"<code>%(property)s</code>Æâ¤Î°Ê²¼¤ÎÃÖ¤­´¹¤¨ÊÑ¿ô¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹:\n"
+" <code>%(bad)s</code>\n"
+"<p>¸í¤ê¤ò½¤Àµ¤·¤Æ¤¯¤À¤µ¤¤. ¤Ç¤Ê¤¤¤ÈÀµ¾ï¤Êưºî¤¬¤Ç¤­¤Þ¤»¤ó."
+
+#: Mailman/Gui/GUIBase.py:193
+msgid ""
+"Your <code>%(property)s</code> string appeared to\n"
+" have some correctable problems in its new value.\n"
+" The fixed value will be used instead. Please\n"
+" double check that this is what you intended.\n"
+" "
+msgstr ""
+"<code>%(property)s</code>¤Î¿·¤·¤¤Ê¸¤Ë½¤Àµ²Äǽ¤ÊÌäÂ꤬¤¢¤ê¤Þ¤¹.\n"
+"½¤Àµ¤ò¹Ô¤Ã¤¿¾å¤ÇŬÍѤ·¤Þ¤¹¤¬, ¤½¤ì¤Ç¤è¤¤¤«, Æó½Å¤Ë¥Á¥§¥Ã¥¯\n"
+"¤·¤Æ¤¯¤À¤µ¤¤."
+
+#: Mailman/Gui/General.py:32
+msgid "General Options"
+msgstr "°ìÈÌ¥ª¥×¥·¥ç¥ó"
+
+#: Mailman/Gui/General.py:46
+msgid "Conceal the member's address"
+msgstr "²ñ°÷¥¢¥É¥ì¥¹¤ò±£¤·¤Þ¤¹"
+
+#: Mailman/Gui/General.py:47
+msgid "Acknowledge the member's posting"
+msgstr "²ñ°÷¤ÎÅê¹Æ¤ò¾µÇ§¤·¤Þ¤¹"
+
+#: Mailman/Gui/General.py:48
+msgid "Do not send a copy of a member's own post"
+msgstr "²ñ°÷¤«¤é¤ÎÅê¹Æ¤ÏËܿͤˤÏÁ÷¤ê¤Þ¤»¤ó"
+
+#: Mailman/Gui/General.py:50
+msgid "Filter out duplicate messages to list members (if possible)"
+msgstr "¥ê¥¹¥È²ñ°÷¤ËÆó½Å¤Ë¥á¡¼¥ë¤òÁ÷¤é¤Ê¤¤¤è¤¦¤Ë¤·¤Þ¤¹(²Äǽ¤Ê¤é)"
+
+#: Mailman/Gui/General.py:57
+msgid ""
+"Fundamental list characteristics, including descriptive\n"
+" info and basic behaviors."
+msgstr "´ðËÜŪ¤Ê¥ê¥¹¥È¤ÎÀ­³Ê, ÀâÌÀ¾ðÊó, ´ðËÜÆ°ºî"
+
+#: Mailman/Gui/General.py:60
+msgid "General list personality"
+msgstr "°ìÈÌŪ¤Ê¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ÎÀ­³Ê"
+
+#: Mailman/Gui/General.py:63
+msgid "The public name of this list (make case-changes only)."
+msgstr "¸øÉ½¤µ¤ì¤ë¤³¤Î¥ê¥¹¥È¤Î̾¾Î (Âçʸ»ú¤Ø¤ÎÊѹ¹¤À¤±²Äǽ)."
+
+#: Mailman/Gui/General.py:64
+msgid ""
+"The capitalization of this name can be changed to make it\n"
+" presentable in polite company as a proper noun, or to make an\n"
+" acronym part all upper case, etc. However, the name will be\n"
+" advertised as the email address (e.g., in subscribe "
+"confirmation\n"
+" notices), so it should <em>not</em> be otherwise altered. "
+"(Email\n"
+" addresses are not case sensitive, but they are sensitive to\n"
+" almost everything else :-)"
+msgstr ""
+"Âçʸ»ú¤ò»È¤¦¤È¸Çͭ̾»ì¤È¤·¤ÆÇ§¼±¤·¤Æ¤â¤é¤¨¤ë¤Î¤Ç,\n"
+" ÃúÇ«¤Ê²ñ¼Ò¤Ø»ý¤Ã¤Æ¤¤¤Ã¤Æ¤âÄÌÍѤ·¤Þ¤¹. \n"
+" ¤Þ¤¿, Ƭʸ»ú¤Îά¸ì¤òÂçʸ»ú¤Çɽ¸½¤·¤Æ¤â¤è¤¤¤Ç¤·¤ç¤¦. \n"
+" ¤·¤«¤·, ̾Á°¤Ï¥á¡¼¥ë¥¢¥É¥ì¥¹¤È¤·¤Æ¹­¹ð¤µ¤ì¤ë¤Î¤Ç\n"
+" (Î㤨¤Ð, Æþ²ñ³Îǧ¥á¡¼¥ë¤Ê¤É¤Ç)\n"
+" ¾¤Îʸ»ú¤ËÃÖ¤­´¹¤¨¤ë¤³¤È¤Ï<em>¤Ç¤­¤Ê¤Þ¤»¤ó</em>. \n"
+" (ÅŻҥ᡼¥ë¥¢¥É¥ì¥¹¤ÏÂ羮ʸ»ú¤Î¶èÊ̤ò¤·¤Þ¤»¤ó¤¬\n"
+" ¾¤Î¤Û¤È¤ó¤É¤Î¤³¤È¤Ï¶èÊ̤·¤Þ¤¹ :-)"
+
+#: Mailman/Gui/General.py:73
+msgid ""
+"The list administrator email addresses. Multiple\n"
+" administrator addresses, each on separate line is okay."
+msgstr ""
+"¥ê¥¹¥È´ÉÍý¼Ô¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹. Ê£¿ô¤Î´ÉÍý¼Ô¤ò\n"
+" ÊÌ¡¹¤Î¹Ô¤Ë¤Ê¤é¤Ù¤Æ¤â¤è¤¤."
+
+#: Mailman/Gui/General.py:76
+msgid ""
+"There are two ownership roles associated with each mailing\n"
+" list. The <em>list administrators</em> are the people who "
+"have\n"
+" ultimate control over all parameters of this mailing list. "
+"They\n"
+" are able to change any list configuration variable available\n"
+" through these administration web pages.\n"
+"\n"
+" <p>The <em>list moderators</em> have more limited permissions;\n"
+" they are not able to change any list configuration variable, "
+"but\n"
+" they are allowed to tend to pending administration requests,\n"
+" including approving or rejecting held subscription requests, "
+"and\n"
+" disposing of held postings. Of course, the <em>list\n"
+" administrators</em> can also tend to pending requests.\n"
+"\n"
+" <p>In order to split the list ownership duties into\n"
+" administrators and moderators, you must\n"
+" <a href=\"passwords\">set a separate moderator password</a>,\n"
+" and also provide the <a "
+"href=\"?VARHELP=general/moderator\">email\n"
+" addresses of the list moderators</a>. Note that the field you\n"
+" are changing here specifies the list administrators."
+msgstr ""
+"¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Î´ÉÍý¼Ô(½êÍ­¼Ô)¤Ë¤Ï£²¤Ä¤ÎÌò³ä¤¬¤¢¤ê¤Þ¤¹. \n"
+"<em>¥ê¥¹¥È´ÉÍý¼Ô</em>¤Ï¤³¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ÎÁ´¤Æ¤Î¥Ñ¥é¥á¡¼¥¿¤Ë\n"
+"¤Ä¤¤¤Æµæ¶Ë¤ÎÀ©¸æ¤ò¹Ô¤Ê¤¤¤Þ¤¹. ´ÉÍýWeb¥Ú¡¼¥¸¤òÄ̤¸¤ÆÊѹ¹¤Ç¤­¤ë\n"
+"Á´¤Æ¤ÎÀßÄêÊÑ¿ô¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹. \n"
+"\n"
+"<p>°ìÊý, <em>¥ê¥¹¥È»Ê²ñ¼Ô</em> ¤Î»Å»ö¤Ï, ¤è¤ê¸ÂÄꤵ¤ì¤Æ¤¤¤Þ¤¹. \n"
+"¥ê¥¹¥È¤ÎÀßÄêÊÑ¿ô¤òÊѹ¹¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¤¬, ÊÝÎ±Ãæ¤Î´ÉÍý¿½ÀÁ¤ò\n"
+"½èÍý¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹. ¤Ä¤Þ¤ê, ÊÝÎ±Ãæ¤ÎÆþ²ñ¿½ÀÁ¤ò¾µÇ§¤·¤¿¤êµñÈݤ¹¤ë¤³¤È, \n"
+"ÊÝÎ±Ãæ¤ÎÅê¹Æ¥á¡¼¥ë¤ò½èÍý¤¹¤ë¤³¤È¤Ê¤É¤Ç¤¹. ¤â¤Á¤í¤ó, <em>¥ê¥¹¥È´ÉÍý¼Ô</em>\n"
+"¤â, ¿½ÀÁ½èÍý¤ò¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹. \n"
+"\n"
+"<p>¥ê¥¹¥È½êÍ­¼Ô¤Î»Å»ö¤ò´ÉÍý¼Ô¤È»Ê²ñ¼Ô¤Ëʬ¤±¤ë¤Ë¤Ï, \n"
+"<a href=\"passwords\">Ê̤λʲñ¼Ô¥Ñ¥¹¥ï¡¼¥É¤òÀßÄê</a>\n"
+"¤·¤Æ¤¯¤À¤µ¤¤. ¤Þ¤¿, <a href=\"?VARHELP=general/moderator\">»Ê²ñ¼Ô¤Î\n"
+"¥á¡¼¥ë¥¢¥É¥ì¥¹¤ò</a>µ­Æþ¤·¤Æ¤¯¤À¤µ¤¤. ¤³¤³¤Ç, Êѹ¹¤·¤è¤¦¤È¤·¤Æ¤¤¤ë¤Î¤Ï\n"
+"¥ê¥¹¥È´ÉÍý¼Ô¤Ë¤Ä¤¤¤Æ¤Ç¤¹. "
+
+#: Mailman/Gui/General.py:97
+msgid ""
+"The list moderator email addresses. Multiple\n"
+" moderator addresses, each on separate line is okay."
+msgstr ""
+"¥ê¥¹¥È»Ê²ñ¼Ô¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹. Ê£¿ô¤Î»Ê²ñ¼Ô¤ò\n"
+" ÊÌ¡¹¤Î¹Ô¤Ë¤Ê¤é¤Ù¤Æ¤â¤è¤¤."
+
+#: Mailman/Gui/General.py:100
+msgid ""
+"There are two ownership roles associated with each mailing\n"
+" list. The <em>list administrators</em> are the people who "
+"have\n"
+" ultimate control over all parameters of this mailing list. "
+"They\n"
+" are able to change any list configuration variable available\n"
+" through these administration web pages.\n"
+"\n"
+" <p>The <em>list moderators</em> have more limited permissions;\n"
+" they are not able to change any list configuration variable, "
+"but\n"
+" they are allowed to tend to pending administration requests,\n"
+" including approving or rejecting held subscription requests, "
+"and\n"
+" disposing of held postings. Of course, the <em>list\n"
+" administrators</em> can also tend to pending requests.\n"
+"\n"
+" <p>In order to split the list ownership duties into\n"
+" administrators and moderators, you must\n"
+" <a href=\"passwords\">set a separate moderator password</a>,\n"
+" and also provide the email addresses of the list moderators in\n"
+" this section. Note that the field you are changing here\n"
+" specifies the list moderators."
+msgstr ""
+"¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Î´ÉÍý¼Ô(½êÍ­¼Ô)¤Ë¤Ï£²¤Ä¤ÎÌò³ä¤¬¤¢¤ê¤Þ¤¹. \n"
+"<em>¥ê¥¹¥È´ÉÍý¼Ô</em>¤Ï¤³¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ÎÁ´¤Æ¤Î¥Ñ¥é¥á¡¼¥¿¤Ë\n"
+"¤Ä¤¤¤Æµæ¶Ë¤ÎÀ©¸æ¤ò¹Ô¤Ê¤¤¤Þ¤¹. ´ÉÍýWeb¥Ú¡¼¥¸¤òÄ̤¸¤ÆÊѹ¹¤Ç¤­¤ë\n"
+"Á´¤Æ¤ÎÀßÄêÊÑ¿ô¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹. \n"
+"\n"
+"<p>°ìÊý, <em>¥ê¥¹¥È»Ê²ñ¼Ô</em> ¤Î»Å»ö¤Ï, ¤è¤ê¸ÂÄꤵ¤ì¤Æ¤¤¤Þ¤¹. \n"
+"¥ê¥¹¥È¤ÎÀßÄêÊÑ¿ô¤òÊѹ¹¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¤¬, ÊÝÎ±Ãæ¤Î´ÉÍý¿½ÀÁ¤ò\n"
+"½èÍý¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹. ¤Ä¤Þ¤ê, ÊÝÎ±Ãæ¤ÎÆþ²ñ¿½ÀÁ¤ò¾µÇ§¤·¤¿¤êµñÈݤ¹¤ë¤³¤È, \n"
+"ÊÝÎ±Ãæ¤ÎÅê¹Æ¥á¡¼¥ë¤ò½èÍý¤¹¤ë¤³¤È¤Ê¤É¤Ç¤¹. ¤â¤Á¤í¤ó, <em>¥ê¥¹¥È´ÉÍý¼Ô</em>\n"
+"¤â, ¿½ÀÁ½èÍý¤ò¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹. \n"
+"\n"
+"<p>¥ê¥¹¥È½êÍ­¼Ô¤Î»Å»ö¤ò´ÉÍý¼Ô¤È»Ê²ñ¼Ô¤Ëʬ¤±¤ë¤Ë¤Ï, \n"
+"<a href=\"passwords\">\n"
+"Ê̤λʲñ¼Ô¥Ñ¥¹¥ï¡¼¥É¤òÀßÄê</a>¤·¤Æ¤¯¤À¤µ¤¤. ¤Þ¤¿, "
+"¤³¤Î¥»¥¯¥·¥ç¥ó¤Ë¤Ï»Ê²ñ¼Ô¤Î\n"
+"¥á¡¼¥ë¥¢¥É¥ì¥¹¤òµ­Æþ¤·¤Æ¤¯¤À¤µ¤¤. ¤³¤³¤Ç, Êѹ¹¤·¤è¤¦¤È¤·¤Æ¤¤¤ë¤Î¤Ï\n"
+"¥ê¥¹¥È»Ê²ñ¼Ô¤Ë¤Ä¤¤¤Æ¤Ç¤¹. "
+
+#: Mailman/Gui/General.py:121
+msgid "A terse phrase identifying this list."
+msgstr "¥ê¥¹¥È¤òǧ¼±¤¹¤ëû¤¤¸ì¶ç."
+
+#: Mailman/Gui/General.py:123
+msgid ""
+"This description is used when the mailing list is listed with\n"
+" other mailing lists, or in headers, and so forth. It "
+"should\n"
+" be as succinct as you can get it, while still identifying "
+"what\n"
+" the list is."
+msgstr ""
+"¤³¤Î¸ì¶ç¤ò¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Î°ìÍ÷¤Ç¤ÎÀâÌÀ¤ä¥Ø¥Ã¥À¤ËÆþ¤ì¤ë»þ¤Ê¤É¤Ë»È¤¤¤Þ¤¹. \n"
+" ¤Ç¤­¤ë¤À¤±´Ê·é¤Ë, ¤·¤«¤â¥ê¥¹¥È¤¬²¿¤Ç¤¢¤ë¤«¤ï¤«¤ë¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤."
+
+#: Mailman/Gui/General.py:129
+msgid ""
+"An introductory description - a few paragraphs - about the\n"
+" list. It will be included, as html, at the top of the "
+"listinfo\n"
+" page. Carriage returns will end a paragraph - see the details\n"
+" for more info."
+msgstr ""
+"¥ê¥¹¥È¤ÎÆâÍÆ¡¦°ÆÆâ¤ò 2,3ÀáÄøÅÙ¤Îʸ¾Ï¤Çɽ¤¹. \n"
+" ¤³¤ì¤Ï HTML ¤Ç¥ê¥¹¥È°ÆÆâ¤Î¥Ú¡¼¥¸¤Ëɽ¼¨¤µ¤ì¤Þ¤¹. \n"
+" ²þ¹Ô¤ÏʸÀá¤Î½ª¤ï¤ê¤È¤Ê¤ê¤Þ¤¹. \n"
+" ¤µ¤é¤Ë¾ÜºÙ¤ò»²¾È¤Î¤³¤È. "
+
+#: Mailman/Gui/General.py:133
+msgid ""
+"The text will be treated as html <em>except</em> that\n"
+" newlines will be translated to &lt;br&gt; - so you can use "
+"links,\n"
+" preformatted text, etc, but don't put in carriage returns "
+"except\n"
+" where you mean to separate paragraphs. And review your changes "
+"-\n"
+" bad html (like some unterminated HTML constructs) can prevent\n"
+" display of the entire listinfo page."
+msgstr ""
+"ÆþÎÏʸ¤Ï²þ¹Ô¤ò &lt;br&gt; ¤ËÊѹ¹¤¹¤ë¤Î¤ò<em>½ü¤¤¤Æ</em>\n"
+" HTML¤È¤·¤Æ°·¤ï¤ì¤Þ¤¹. ¤½¤ì¤Ç, ¥ê¥ó¥¯¤äÀ°·ÁºÑ¤ßʸ½ñ¤Ê¤È¤ò\n"
+" »È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¤¬, ÃÊÍî¤òÉÕ¤±¤ë»þ°Ê³°¤Ï²þ¹Ô¤òÆþ¤ì¤Ê¤¤\n"
+" ¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤. ¤Þ¤¿, Êѹ¹ÅÀ¤ò¤è¤¯¥Á¥§¥Ã¥¯¤·¤Æ¤¯¤À¤µ¤¤\n"
+" HTML¤¬°­¤¤¤È(¥¿¥°¤¬ÊĤ¸¤Æ¤¤¤Ê¤¤¤Ê¤É)¥Ú¡¼¥¸Á´ÂΤ¬É½¼¨¤µ¤ì¤Ê¤¤\n"
+" ¤³¤È¤âµ¯¤³¤êÆÀ¤Þ¤¹."
+
+#: Mailman/Gui/General.py:141
+msgid "Prefix for subject line of list postings."
+msgstr "¥ê¥¹¥ÈÅê¹Æ¤Î·ï̾¤ËÉÕ¤±¤ëÁ°ÃÖ¤­"
+
+#: Mailman/Gui/General.py:142
+msgid ""
+"This text will be prepended to subject lines of messages\n"
+" posted to the list, to distinguish mailing list messages in in\n"
+" mailbox summaries. Brevity is premium here, it's ok to "
+"shorten\n"
+" long mailing list names to something more concise, as long as "
+"it\n"
+" still identifies the mailing list."
+msgstr ""
+"¤³¤Î¥Æ¥­¥¹¥È¤¬¥ê¥¹¥È¤ËÅê¹Æ¤µ¤ì¤¿¥á¡¼¥ë¤Î·ï̾¤Ë ÉÕ¤±¤é\n"
+"¤ì¤Þ¤¹. ¤³¤ì¤Ï¥á¡¼¥ë¥ê¡¼¥À¥½¥Õ¥È¤Ê¤É¤Ç¾¤Î¥á¡¼\n"
+"¥ë¤È¶èÊ̤¹¤ë¤Î¤Ë Í­¸ú¤Ç¤¹. ´Ê·é¤ò¤³¤³¤í¤¬¤±¤Þ¤·¤ç¤¦. \n"
+"¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Î̾¾Î¤¬Ä¹¤«¤Ã¤¿¤é, ¥á¡¼¥ê¥ó¥°¥ê\n"
+"¥¹¥È¤Ç¤¢¤ë¤³¤È¤¬¤ï¤«¤ëÈϰϤÇ, û¤¯´Ê·é¤Ë¤¹¤ë¤È¤è¤¤¤Ç¤·¤ç¤¦. "
+
+#: Mailman/Gui/General.py:149
+msgid ""
+"Hide the sender of a message, replacing it with the list\n"
+" address (Removes From, Sender and Reply-To fields)"
+msgstr ""
+"¥á¥Ã¥»¡¼¥¸¤ÎÁ÷¿®¼Ô¤ò±£¤·¤Æ, ¥ê¥¹¥È¤Î¥¢¥É¥ì¥¹¤ËÃÖ¤­¤«¤¨¤ë\n"
+"(From, Sender ¤È Reply-To ¤òºï½ü¤·¤Þ¤¹)"
+
+#: Mailman/Gui/General.py:152
+msgid "<tt>Reply-To:</tt> header munging"
+msgstr "<tt>Reply-To:</tt>¥Ø¥Ã¥À¤Î½ñ¤­´¹¤¨"
+
+#: Mailman/Gui/General.py:155
+msgid ""
+"Should any existing <tt>Reply-To:</tt> header found in the\n"
+" original message be stripped? If so, this will be done\n"
+" regardless of whether an explict <tt>Reply-To:</tt> header is\n"
+" added by Mailman or not."
+msgstr ""
+"¤â¤·, <tt>Reply-To:</tt>¥Ø¥Ã¥À¤¬¥á¡¼¥ë¤ËÉÕ¤±¤é¤ì¤Æ¤¤¤¿¤é,\n"
+"¤½¤ì¤ò¼è¤ê½ü¤­¤Þ¤¹¤«? ¤â¤·¤½¤¦¤Ê¤é, <tt>Reply-To:</tt>¥Ø¥Ã¥À\n"
+"¤¬ Mailman ¤Ë¤è¤Ã¤ÆÉÕ¤±¤é¤ì¤¿¤«, ¤Ï¤¸¤á¤«¤éÉÕ¤¤¤Æ¤¤¤¿¤«¤Ë\n"
+"¤«¤«¤ï¤é¤º¼è¤ê½ü¤«¤ì¤Þ¤¹."
+
+#: Mailman/Gui/General.py:161
+msgid "Explicit address"
+msgstr "Ê̤Υ¢¥É¥ì¥¹"
+
+#: Mailman/Gui/General.py:161
+msgid "Poster"
+msgstr "Åê¹Æ¼Ô"
+
+#: Mailman/Gui/General.py:161
+msgid "This list"
+msgstr "¤³¤Î¥ê¥¹¥È"
+
+#: Mailman/Gui/General.py:162
+msgid ""
+"Where are replies to list messages directed?\n"
+" <tt>Poster</tt> is <em>strongly</em> recommended for most "
+"mailing\n"
+" lists."
+msgstr ""
+"Åê¹Æ¤µ¤ì¤¿µ­»ö¤ËÊÖ¿®¤¹¤ë¤È, ¤É¤³¤Ø¹Ô¤¯¤è¤¦¤Ë¤·¤Þ¤¹¤«?\n"
+" ¿¤¯¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ë¤Ä¤¤¤Æ <tt>Åê¹Æ¼Ô</tt>\n"
+" ¤ò <em>¶¯¤¯</em> ¿ä¾©¤·¤Þ¤¹. "
+
+#: Mailman/Gui/General.py:167
+msgid ""
+"This option controls what Mailman does to the\n"
+" <tt>Reply-To:</tt> header in messages flowing through this\n"
+" mailing list. When set to <em>Poster</em>, no "
+"<tt>Reply-To:</tt>\n"
+" header is added by Mailman, although if one is present in the\n"
+" original message, it is not stripped. Setting this value to\n"
+" either <em>This list</em> or <em>Explicit address</em> causes\n"
+" Mailman to insert a specific <tt>Reply-To:</tt> header in all\n"
+" messages, overriding the header in the original message if\n"
+" necessary (<em>Explicit address</em> inserts the value of <a\n"
+" "
+"href=\"?VARHELP=general/reply_to_address\">reply_to_address</a>).\n"
+" \n"
+" <p>There are many reasons not to introduce or override the\n"
+" <tt>Reply-To:</tt> header. One is that some posters depend on\n"
+" their own <tt>Reply-To:</tt> settings to convey their valid\n"
+" return address. Another is that modifying <tt>Reply-To:</tt>\n"
+" makes it much more difficult to send private replies. See <a\n"
+" "
+"href=\"http://www.unicom.com/pw/reply-to-harmful.html\">`Reply-To'\n"
+" Munging Considered Harmful</a> for a general discussion of "
+"this\n"
+" issue. See <a\n"
+" "
+"href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml\">Reply-To\n"
+" Munging Considered Useful</a> for a dissenting opinion.\n"
+"\n"
+" <p>Some mailing lists have restricted posting privileges, with "
+"a\n"
+" parallel list devoted to discussions. Examples are `patches' "
+"or\n"
+" `checkin' lists, where software changes are posted by a "
+"revision\n"
+" control system, but discussion about the changes occurs on a\n"
+" developers mailing list. To support these types of mailing\n"
+" lists, select <tt>Explicit address</tt> and set the\n"
+" <tt>Reply-To:</tt> address below to point to the parallel\n"
+" list."
+msgstr ""
+"¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¤³¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤òή¤ì¤ë¥á¥Ã¥»¡¼¥¸¤Î\n"
+"<tt>Reply-To:</tt> ¤ò¤É¤Î¤è¤¦¤Ë°·¤¦¤«¤òÀ©¸æ¤·¤Þ¤¹. \n"
+"¤â¤·, <em>Åê¹Æ¼Ô</em>¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï "
+"<tt>Reply-To:</tt>¥Ø¥Ã¥À¤òÉÕ¤±²Ã¤¨¤ë\n"
+"¤³¤È¤Ï¤·¤Þ¤»¤ó. ¤â¤·¥ª¥ê¥¸¥Ê¥ë¤Î¥á¥Ã¥»¡¼¥¸¤ËÉÕ¤¤¤Æ¤¤¤¿¾ì¹ç¤Ë¤Ï, "
+"ºï½ü¤µ¤ì¤Þ¤»¤ó. ¤³¤ì¤ò,\n"
+"<em>¤³¤Î¥ê¥¹¥È</em>¤Þ¤¿¤Ï<em>Ê̤Υ¢¥É¥ì¥¹</em>¤ËÀßÄꤹ¤ë¤È, \n"
+"Mailman ¤Ï¤¹¤Ù¤Æ¤Î¥á¥Ã¥»¡¼¥¸¤ËÆÃÄꤵ¤ì¤¿<tt>Reply-To:</tt>¥Ø¥Ã¥À¤òÉÕ¤±¤Þ¤¹. "
+"\n"
+"¤³¤ì¤ÏɬÍפʤ饪¥ê¥¸¥Ê¥ë¥á¥Ã¥»¡¼¥¸¤Î¥Ø¥Ã¥À¤ò½ñ¤­´¹¤¨¤Þ¤¹. \n"
+"<em>Ê̤Υ¢¥É¥ì¥¹</em> ¤Ï\n"
+"<a href=\"?VARHELP=general/reply_to_address\">reply_to_address</a>¤Ç\n"
+"ÆþÎÏ¥¢¥É¥ì¥¹¤ËÀßÄꤷ¤Þ¤¹. \n"
+" \n"
+"<p><tt>Reply-To:</tt> ¤Î¤è¤¦¤Ê¥Ø¥Ã¥À¤ò\n"
+"¾¿Í¤Î¥á¥Ã¥»¡¼¥¸¤ËÉÕ¤±²Ã¤¨¤Ê¤¤¤È¤¤¤¦¤Î¤Ë¤Ï, ¿¤¯¤ÎÍýͳ¤¬¤¢¤ê¤Þ¤¹. \n"
+"¿Í¤Ë¤è¤Ã¤Æ¤Ï¼«Ê¬¼«¿È¤Ç<tt>Reply-To:</tt> ¤òÉÕ¤±¤ÆÊÖ»ö¤òÆÏ¤±¤Æ\n"
+"¤Û¤·¤¤¥á¡¼¥ë¥¢¥É¥ì¥¹¤òÀßÄꤷ¤Þ¤¹. \n"
+"Ê̤ÎÍýͳ¤È¤·¤Æ, <tt>Reply-To:</tt>¤òÊѹ¹¤¹¤ë¤È¸Ä¿ÍŪ¤ËÊÖ»ö¤ò\n"
+"Á÷¤ë¤³¤È¤¬Æñ¤·¤¯¤Ê¤ë¤È¤¤¤¦¤Î¤â¤¢¤ê¤Þ¤¹. \n"
+"<a href=\"http://www.unicom.com/pw/reply-to-harmful.html\">`Reply-To' "
+"Munging\n"
+"Considered Harmful</a> ¤Ë¤Ï, ¤³¤ì¤Ë¤Ä¤¤¤Æ¤Î°ìÈÌŪ¤ÊµÄÏÀ¤¬¤¢¤ê¤Þ¤¹. \n"
+"<a "
+"href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml\">Reply-To\n"
+"Munging Considered Useful</a> ¤ÎÈ¿Âаո«¤â»²¹Í¤Ë¤·¤Æ¤¯¤À¤µ¤¤. \n"
+" \n"
+"<p>¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ë¤è¤Ã¤Æ¤ÏÅê¹Æ¤ËÀ©¸Â¤ò¤Ä¤±¤Æ, Ê¿¹Ô¤·¤ÆÆ¤ÏÀ¤Î¤¿¤á¤Î\n"
+"¥ê¥¹¥È¤òºî¤Ã¤Æ¤¤¤ë¾ì¹ç¤â¤¢¤ê¤Þ¤¹. Îã¤È¤·¤Æ¤Ï `patches' ¤ä `checkin' ¥ê¥¹¥È\n"
+"¤¬¤¢¤ê¤Þ¤¹. ¤³¤Î¾ì¹ç¥½¥Õ¥È¥¦¥§¥¢¤ÎÊѹ¹¤¬ revision control system\n"
+"(²þÄûÈÇÀ©¸æµ¡¹½) ¤«¤éÅê¹Æ¤µ¤ì¤Þ¤¹. ¤·¤«¤·, Êѹ¹¤Ë¤Ä¤¤¤Æ¤ÎµÄÏÀ¤Ï\n"
+"Ê̤γ«È¯¼Ô¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ç¹Ô¤ï¤ì¤Þ¤¹. \n"
+"¤³¤Î¥¿¥¤¥×¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤¿¤á¤Ë¤Ï, <tt>Ê̤Υ¢¥É¥ì¥¹</tt>\n"
+"¤òÁª¤ó¤Ç, ²¼¤Î <tt>Reply-To:</tt> ¥¢¥É¥ì¥¹¤òÀßÄꤷ¤Æ¤¯¤À¤µ¤¤. "
+
+#: Mailman/Gui/General.py:199
+msgid "Explicit <tt>Reply-To:</tt> header."
+msgstr "Ê̤Î<tt>Reply-To:</tt>¥¢¥É¥ì¥¹"
+
+#: Mailman/Gui/General.py:201
+msgid ""
+"This is the address set in the <tt>Reply-To:</tt> header\n"
+" when the <a\n"
+" "
+"href=\"?VARHELP=general/reply_goes_to_list\">reply_goes_to_list</a>\n"
+" option is set to <em>Explicit address</em>.\n"
+"\n"
+" <p>There are many reasons not to introduce or override the\n"
+" <tt>Reply-To:</tt> header. One is that some posters depend on\n"
+" their own <tt>Reply-To:</tt> settings to convey their valid\n"
+" return address. Another is that modifying <tt>Reply-To:</tt>\n"
+" makes it much more difficult to send private replies. See <a\n"
+" "
+"href=\"http://www.unicom.com/pw/reply-to-harmful.html\">`Reply-To'\n"
+" Munging Considered Harmful</a> for a general discussion of "
+"this\n"
+" issue. See <a\n"
+" "
+"href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml\">Reply-To\n"
+" Munging Considered Useful</a> for a dissenting opinion.\n"
+"\n"
+" <p>Some mailing lists have restricted posting privileges, with "
+"a\n"
+" parallel list devoted to discussions. Examples are `patches' "
+"or\n"
+" `checkin' lists, where software changes are posted by a "
+"revision\n"
+" control system, but discussion about the changes occurs on a\n"
+" developers mailing list. To support these types of mailing\n"
+" lists, specify the explicit <tt>Reply-To:</tt> address here. "
+"You\n"
+" must also specify <tt>Explicit address</tt> in the\n"
+" <tt>reply_goes_to_list</tt>\n"
+" variable.\n"
+"\n"
+" <p>Note that if the original message contains a\n"
+" <tt>Reply-To:</tt> header, it will not be changed."
+msgstr ""
+"¤³¤Î¥¢¥É¥ì¥¹¤¬, <a "
+"href=\"?VARHELP=general/reply_goes_to_list\">reply_goes_to_list</a>\n"
+" ¤ò<em>Ê̤Υ¢¥É¥ì¥¹</em>¤ËÀßÄꤷ¤¿¤È¤­ <tt>Reply-To:</tt> "
+"¥Ø¥Ã¥À¤Ë»È¤ï¤ì¤Þ¤¹.\n"
+"<p><tt>Reply-To:</tt> ¤Î¤è¤¦¤Ê¥Ø¥Ã¥À¤ò\n"
+" ¾¿Í¤Î¥á¥Ã¥»¡¼¥¸¤ËÉÕ¤±²Ã¤¨¤Ê¤¤¤È¤¤¤¦¤Î¤Ë¤Ï, ¿¤¯¤ÎÍýͳ¤¬¤¢¤ê¤Þ¤¹. \n"
+" ¿Í¤Ë¤è¤Ã¤Æ¤Ï¼«Ê¬¼«¿È¤Ç<tt>Reply-To:</tt> ¤òÉÕ¤±¤ÆÊÖ»ö¤òÆÏ¤±¤Æ\n"
+" ¤Û¤·¤¤¥á¡¼¥ë¥¢¥É¥ì¥¹¤òÀßÄꤷ¤Þ¤¹. \n"
+" Ê̤ÎÍýͳ¤È¤·¤Æ, <tt>Reply-To:</tt>¤òÊѹ¹¤¹¤ë¤È¸Ä¿ÍŪ¤ËÊÖ»ö¤ò\n"
+" Á÷¤ë¤³¤È¤¬Æñ¤·¤¯¤Ê¤ë¤È¤¤¤¦¤Î¤â¤¢¤ê¤Þ¤¹. \n"
+" <a href=\"http://www.unicom.com/pw/reply-to-harmful.html\">`Reply-To' "
+"Munging\n"
+" Considered Harmful</a> ¤Ë¤Ï, ¤³¤ì¤Ë¤Ä¤¤¤Æ¤Î°ìÈÌŪ¤ÊµÄÏÀ¤¬¤¢¤ê¤Þ¤¹. \n"
+" <a "
+"href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml\">Reply-To\n"
+" Munging Considered Useful</a> ¤ÎÈ¿Âаո«¤â»²¹Í¤Ë¤·¤Æ¤¯¤À¤µ¤¤. \n"
+"\n"
+"<p>¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ë¤è¤Ã¤Æ¤ÏÅê¹Æ¤ËÀ©¸Â¤ò¤Ä¤±¤Æ, Ê¿¹Ô¤·¤ÆÆ¤ÏÀ¤Î¤¿¤á¤Î\n"
+" ¥ê¥¹¥È¤òºî¤Ã¤Æ¤¤¤ë¾ì¹ç¤â¤¢¤ê¤Þ¤¹. Îã¤È¤·¤Æ¤Ï `patches' ¤ä `checkin' "
+"¥ê¥¹¥È\n"
+" ¤¬¤¢¤ê¤Þ¤¹. ¤³¤Î¾ì¹ç¥½¥Õ¥È¥¦¥§¥¢¤ÎÊѹ¹¤¬ revision control system\n"
+" (²þÄûÈÇÀ©¸æµ¡¹½) ¤«¤éÅê¹Æ¤µ¤ì¤Þ¤¹. ¤·¤«¤·, Êѹ¹¤Ë¤Ä¤¤¤Æ¤ÎµÄÏÀ¤Ï\n"
+" Ê̤γ«È¯¼Ô¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ç¹Ô¤ï¤ì¤Þ¤¹. \n"
+" ¤³¤Î¥¿¥¤¥×¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤¿¤á¤Ë¤Ï, "
+"<tt>reply_goes_to_list</tt>¤Ç\n"
+" <tt>Ê̤Υ¢¥É¥ì¥¹</tt>¤òÁª¤ó¤Ç, ¤³¤³¤Ç <tt>Reply-To:</tt> "
+"¥¢¥É¥ì¥¹¤òÀßÄꤷ¤Æ¤¯¤À¤µ¤¤. \n"
+"\n"
+"<p>¤â¤·¥ª¥ê¥¸¥Ê¥ë¤Î¥á¡¼¥ë¤Ë<tt>Reply-To:</tt>¥Ø¥Ã¥À¤¬ÉÕ¤¤¤Æ¤¤¤ë¤È, "
+"¤½¤ì¤ÏÊѹ¹¤µ¤ì¤Þ¤»¤ó."
+
+#: Mailman/Gui/General.py:230
+msgid "Umbrella list settings"
+msgstr "»±¥ê¥¹¥È¤ÎÀßÄê"
+
+#: Mailman/Gui/General.py:233
+msgid ""
+"Send password reminders to, eg, \"-owner\" address instead of\n"
+" directly to user."
+msgstr ""
+"¥Ñ¥¹¥ï¡¼¥ÉÄÌÃΤʤɤò, Î㤨¤Ð '-owner' ¤Î¥¢¥É\n"
+" ¥ì¥¹¤ËÁ÷¤ê, ľÀܲñ°÷¤Ë¤ÏÁ÷¤ê¤Þ¤»¤ó."
+
+#: Mailman/Gui/General.py:236
+msgid ""
+"Set this to yes when this list is intended to cascade only\n"
+" to other mailing lists. When set, meta notices like\n"
+" confirmations and password reminders will be directed to an\n"
+" address derived from the member's address - it will have the\n"
+" value of \"umbrella_member_suffix\" appended to the member's\n"
+" account name."
+msgstr ""
+"¤³¤Î¥ª¥×¥·¥ç¥ó¤ò ¡Ö¤Ï¤¤¡× ¤Ë¤¹¤ë¤Î¤Ï, Î㤨¤Ð¾¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ë\n"
+" ÇÛÁ÷¤¹¤ë¤¿¤á¤Î¥ê¥¹¥È¤Ç¤¢¤ë¾ì¹ç¤Ç¤¹. ¤â¤·, ¡Ö¤Ï¤¤¡× ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È\n"
+" ³Îǧ¤ä¥Ñ¥¹¥ï¡¼¥ÉÄÌÃΤʤɤϲñ°÷¥¢¥É¥ì¥¹¤½¤Î¤â¤Î¤Ç¤Ê¤¯, ²¼¤Î¹àÌܤǻØÄꤵ¤ì¤ë\n"
+" ¥µ¥Õ¥£¥Ã¥¯¥¹¤òÉÕ¤±¤¿¥¢¥É¥ì¥¹¤ØÁ÷¤é¤ì¤Þ¤¹. \n"
+" (²ñ°÷¤¬ child@some.where.com ¤Ç ¥µ¥Õ¥£¥Ã¥¯¥¹¤¬ -owner ¤È¤¹¤ë¤È\n"
+" child-owner@some.where.com ¤ØÁ÷¤é¤ì¤Þ¤¹)"
+
+#: Mailman/Gui/General.py:244
+msgid ""
+"Suffix for use when this list is an umbrella for other\n"
+" lists, according to setting of previous \"umbrella_list\"\n"
+" setting."
+msgstr ""
+"¥ê¥¹¥È¤¬Â¾¤Î¥ê¥¹¥È¤Î»±¥ê¥¹¥È¤Ç¤¢¤ë¾ì¹ç¤Ë, ¤½¤Î¥µ¥Õ¥£¥Ã¥¯¥¹.\n"
+" ¾å¤Î¹àÌܤò Yes ¤Ë¤¹¤ë¤ÈÍ­¸ú¤È¤Ê¤ë."
+
+#: Mailman/Gui/General.py:248
+msgid ""
+"When \"umbrella_list\" is set to indicate that this list has\n"
+" other mailing lists as members, then administrative notices "
+"like\n"
+" confirmations and password reminders need to not be sent to "
+"the\n"
+" member list addresses, but rather to the owner of those member\n"
+" lists. In that case, the value of this setting is appended to\n"
+" the member's account name for such notices. `-owner' is the\n"
+" typical choice. This setting has no effect when "
+"\"umbrella_list\"\n"
+" is \"No\"."
+msgstr ""
+"¤³¤³¤Ç 'umbrella_list' ¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤³¤Î¥ê¥¹¥È¤¬Â¾¤Î\n"
+"¥ê¥¹¥È¤ò ²ñ°÷¤È¤¹¤ë¤è¤¦¤Ë¤·¤¿¤È¤­, ³Îǧ¤ä¥Ñ¥¹¥ï¡¼¥ÉÄÌÃΤÊ\n"
+"¤É´ÉÍý¾å¤ÎÄÌÃÎ ¤Ê¤É¤Ï, ²ñ°÷¤Î¤¤¤ë¥ê¥¹¥È¥¢¥É¥ì¥¹¤Ç¤Ê¤¯\n"
+"¤½¤Î¥ê¥¹¥È¤Î´ÉÍý¼Ô¤Ø ÄÌÃΤ¹¤ë¤Û¤¦¤¬¤è¤¤. ¤³¤Î\n"
+"¾ì¹ç¤³¤³¤Ë½ñ¤«¤ì¤¿¥µ¥Õ¥£¥Ã¥¯¥¹¤¬ ²ñ°÷¤Î¥¢¥É¥ì¥¹¤ËÉÕ¤±\n"
+"²Ã¤¨¤é¤ì¤ÆÁ÷¿®¤µ¤ì¤Þ¤¹. '-owner' ¤¬ÉáÄ̤ϻÈ\n"
+"¤ï¤ì¤Þ¤¹. ¤³¤ÎÀßÄê¤Ï, ¾å¤Î 'umbrella_list' ¤¬ ¡Ö¤¤¤¤¤¨¡× \n"
+"¤Î¾ì¹ç¤Ë¤Ï̵¸ú¤Ç¤¹."
+
+#: Mailman/Gui/General.py:260
+msgid "Send monthly password reminders?"
+msgstr "¥Ñ¥¹¥ï¡¼¥É¤Î¹µ¤¨¤òËè·îÁ÷¤ê¤Þ¤¹¤«?"
+
+#: Mailman/Gui/General.py:262
+msgid ""
+"Turn this on if you want password reminders to be sent once\n"
+" per month to your members. Note that members may disable "
+"their\n"
+" own individual password reminders."
+msgstr ""
+"²ñ°÷¤ËÂФ·¥Ñ¥¹¥ï¡¼¥É¤Î¹µ¤¨¤òËè·î£±²óÁ÷¤ë¾ì¹ç¤Ë¤Ï ON ¤Ë¤·¤Þ¤¹.\n"
+"¸Ä¡¹¤Î²ñ°÷¤Ï¤½¤ì¤¾¤ì¥Ñ¥¹¥ï¡¼¥É¹µ¤¨¤ÎÁ÷¿®¤ò»ß¤á¤Æ¤ª¤¯¤³¤È¤¬¤Ç¤­¤Þ¤¹."
+
+#: Mailman/Gui/General.py:267
+msgid ""
+"List-specific text prepended to new-subscriber welcome\n"
+" message"
+msgstr "¿·¤·¤¯Æþ²ñ¤·¤¿²ñ°÷¤ØÁ÷¤é¤ì¤ë¥á¥Ã¥»¡¼¥¸¤ÎÁ°ÃÖ¤­Ê¸"
+
+#: Mailman/Gui/General.py:270
+msgid ""
+"This value, if any, will be added to the front of the\n"
+" new-subscriber welcome message. The rest of the welcome "
+"message\n"
+" already describes the important addresses and URLs for the\n"
+" mailing list, so you don't need to include any of that kind of\n"
+" stuff here. This should just contain mission-specific kinds "
+"of\n"
+" things, like etiquette policies or team orientation, or that "
+"kind\n"
+" of thing.\n"
+"\n"
+" <p>Note that this text will be wrapped, according to the\n"
+" following rules:\n"
+" <ul><li>Each paragraph is filled so that no line is longer "
+"than\n"
+" 70 characters.\n"
+" <li>Any line that begins with whitespace is not filled.\n"
+" <li>A blank line separates paragraphs.\n"
+" </ul>"
+msgstr ""
+"¤³¤Îʸ¾Ï¤¬, ¿·¤·¤¯Æþ²ñ¤·¤¿²ñ°÷¤Ø¤Î´¿·Þʸ¤Î\n"
+" ¤Ï¤¸¤á¤Ë½ñ¤­¤³¤Þ¤ì¤Þ¤¹. ´¿·Þʸ¤Î»Ä¤ê¤ÎÉôʬ¤Ë¤Ï\n"
+" ¥ê¥¹¥È¤Ç½ÅÍפʥ᡼¥ë¥¢¥É¥ì¥¹¤ä URL ¤Ë¤Ä¤¤¤Æ¤ÎÀâÌÀ¤¬\n"
+" ¤¢¤é¤«¤¸¤áÆþ¤ì¤é¤ì¤Æ¤¤¤Þ¤¹. ¤Ç¤¹¤«¤é¤½¤¦¤¤¤Ã¤¿Îà¤Î\n"
+" ¤â¤Î¤òÆþ¤ì¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó. ¤³¤³¤Ë¤Ï¥ê¥¹¥È¤ÎÌÜŪ¤ä\n"
+" ¥¨¥Á¥±¥Ã¥È¤Î¥Ý¥ê¥·¡¼¤È¤¤¤Ã¤¿¸ÇÍ­¤ÎÌäÂê¤Ë\n"
+" ¤Ä¤¤¤Æ½ñ¤¤¤Æ¤¯¤À¤µ¤¤. <p>Ãí°Õ "
+"¤³¤Îʸ¾Ï¤Ï°Ê²¼¤Îµ¬Â§¤Ë½¾¤Ã¤Æ¹ÔËö¤ÎÀÞ¤êÊÖ¤·¤¬¤Ê¤µ¤ì¤Þ¤¹:\n"
+"<ul><li>£±¹Ô¤¬70ʸ»ú°ÊÆâ¤Ë¤Ê¤ë¤è¤¦¤Ë¹ÔµÍ¤á¤¬¤Ê¤µ¤ì¤Þ¤¹.\n"
+" <li>¶õÇòʸ»ú¤Ç»Ï¤Þ¤ë¹Ô¤Ï¹ÔµÍ¤á¤µ¤ì¤Þ¤»¤ó.\n"
+" <li>¶õÇò¹Ô¤ÏÃÊÍî¤Î¶èÀÚ¤ê¤Ë¤Ê¤ê¤Þ¤¹.\n"
+"</ul>"
+
+#: Mailman/Gui/General.py:287
+msgid "Send welcome message to newly subscribed members?"
+msgstr "¿·Æþ²ñ°÷¤Ë´¿·Þ¥á¡¼¥ë¤ò½Ð¤·¤Þ¤¹¤«?"
+
+#: Mailman/Gui/General.py:288
+msgid ""
+"Turn this off only if you plan on subscribing people manually\n"
+" and don't want them to know that you did so. This option is "
+"most\n"
+" useful for transparently migrating lists from some other "
+"mailing\n"
+" list manager to Mailman."
+msgstr ""
+"¤â¤·²ñ°÷¤ò´ÉÍý¼Ô¤¬¼êư¤ÇÅÐÏ¿¤·¤Æ¤½¤Î¤³¤È¤ò\n"
+"ÃΤ餻¤¿¤¯¤Ê¤«¤Ã¤¿¤é OFF ¤Ë¤·¤Æ¤¯¤À¤µ¤¤. ¾¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹\n"
+"¥È´ÉÍý¥×¥í¥°¥é¥à¤«¤é Mailman ¤Ë°Ü¹Ô¤¹¤ë»þ¤Ê¤É¤ËÍ­¸ú¤Ç¤·¤ç¤¦. "
+
+#: Mailman/Gui/General.py:294
+msgid ""
+"Text sent to people leaving the list. If empty, no special\n"
+" text will be added to the unsubscribe message."
+msgstr ""
+"¥ê¥¹¥È¤òÂà²ñ¤¹¤ë¿Í¤Ë¤¢¤Æ¤ëʸ. ¤â¤·¶õÇò¤Ç¤¢¤ì¤Ð\n"
+" Âà²ñ¼Ô¤Ø¤¢¤Æ¤¿¥á¡¼¥ë¤Ë¤Ï²¿¤âÉÕ¤±²Ã¤¨¤é¤ì¤Þ¤»¤ó. "
+
+#: Mailman/Gui/General.py:298
+msgid "Send goodbye message to members when they are unsubscribed?"
+msgstr "Âà²ñ¤¹¤ë²ñ°÷¤Ë¤ªÊ̤ì¤Î¥á¡¼¥ë¤ò½Ð¤·¤Þ¤¹¤«?"
+
+#: Mailman/Gui/General.py:301
+msgid ""
+"Should the list moderators get immediate notice of new\n"
+" requests, as well as daily notices about collected ones?"
+msgstr ""
+"¿·¤·¤¤¿½ÀÁ¤¬Í褿¤é, 1Æü1²ó¤Þ¤È¤á¤ÆÃΤ餻¤ë¤À¤±¤Ç¤Ê¤¯, "
+"¤¹¤°¤Ë´ÉÍý¼Ô¤ËÃΤ餻¤Þ¤¹¤«?"
+
+#: Mailman/Gui/General.py:304
+msgid ""
+"List moderators (and list administrators) are sent daily\n"
+" reminders of requests pending approval, like subscriptions to "
+"a\n"
+" moderated list, or postings that are being held for one reason "
+"or\n"
+" another. Setting this option causes notices to be sent\n"
+" immediately on the arrival of new requests as well."
+msgstr ""
+"»Ê²ñ¼Ô(¤È´ÉÍý¼Ô)¤ÏÊÝÎ±Ãæ¤Î´ÉÍý¿½ÀÁ¤Ë´Ø¤¹¤ëÄÌÃΤòËèÆü¼õ¤±¼è¤ê¤Þ¤¹. \n"
+" Î㤨¤ÐÈó¸ø³«¤Î¥ê¥¹¥È¤Ø¤Î²ÃÆþ¿½ÀÁ¤ä, ²¿¤é¤«¤ÎÍýͳ¤Ç\n"
+" ÊÝᤵ¤ì¤Æ¤¤¤ëÅê¹Æ¤Ê¤É¤Ç¤¹. ¤³¤Î¥ª¥×¥·¥ç¥ó¤òÀßÄꤹ¤ë¤È\n"
+" ¿·¤·¤¤¿½ÀÁ¤¬Íè¤ë¤¿¤Ó¤Ëľ¤Á¤ËÄÌÃΤµ¤ì¤Þ¤¹."
+
+#: Mailman/Gui/General.py:311
+msgid ""
+"Should administrator get notices of subscribes and\n"
+" unsubscribes?"
+msgstr "´ÉÍý¼Ô¤ÏÆþ²ñ/Âà²ñ¤Î·ë²Ì¤ò¼õ¤±¼è¤ê¤Þ¤¹¤«? "
+
+#: Mailman/Gui/General.py:316
+msgid "Send mail to poster when their posting is held for approval?"
+msgstr "Åê¹Æ¤¬¾µÇ§¤Î¤¿¤áÊÝᤵ¤ì¤¿¤éÅê¹Æ¼Ô¤Ë¥á¡¼¥ë¤·¤Þ¤¹¤«?"
+
+#: Mailman/Gui/General.py:318
+msgid ""
+"Approval notices are sent when mail triggers certain of the\n"
+" limits <em>except</em> routine list moderation and spam "
+"filters,\n"
+" for which notices are <em>not</em> sent. This option "
+"overrides\n"
+" ever sending the notice."
+msgstr ""
+"¥ê¥¹¥È¤Î»Ê²ñ(¥â¥Ç¥ì¡¼¥È)¤ÈSPAM¥Õ¥£¥ë¥¿¡¼<em>°Ê³°</em>¤Ç¤Ï, ÀßÄê¾ò·ï¤Ë\n"
+" ¤è¤Ã¤Æ¥á¡¼¥ë¤¬ÊÝα¤Ë¤Ê¤Ã¤¿¤³¤È¤òÃΤ餻¤Þ¤¹. ¤³¤Î¥ª¥×¥·¥ç¥ó¤Ç¤Ï\n"
+" ÄÌÃΤòÁ÷¤é¤Ê¤¤¤è¤¦¤Ë¾å½ñ¤­ÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹. "
+
+#: Mailman/Gui/General.py:323
+msgid "Additional settings"
+msgstr "ÄɲäÎÀßÄê"
+
+#: Mailman/Gui/General.py:326
+msgid "Emergency moderation of all list traffic."
+msgstr "¶ÛµÞ¤Î¤¿¤áÁ´¤Æ¤ÎÅê¹Æ¤òÊÝα¤·¤Þ¤¹."
+
+#: Mailman/Gui/General.py:327
+msgid ""
+"When this option is enabled, all list traffic is emergency\n"
+" moderated, i.e. held for moderation. Turn this option on when\n"
+" your list is experiencing a flamewar and you want a cooling "
+"off\n"
+" period."
+msgstr ""
+"¤³¤Î¥ª¥×¥·¥ç¥ó¤òÍ­¸ú¤Ë¤¹¤ë¤È, Á´¤Æ¤Î¥ê¥¹¥È¤Ø¤ÎÅê¹Æ¤ò¶ÛµÞÊÝα\n"
+"¤·¤Þ¤¹¡£¤Ä¤Þ¤ê¡¢»Ê²ñ¥×¥í¥»¥¹¤ËÆþ¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹. ¤³¤Î¥ª¥×¥·¥ç¥ó¤ò\n"
+"¥ª¥ó¤Ë¤¹¤ë¤³¤È¤Ç, Î㤨¤Ð¥Õ¥ì¡¼¥àÀïÁè¤òÀŤá¤ë¤¿¤á¤Ë¥¯¡¼¥ê¥ó¥°¥ª¥Õ\n"
+"´ü´Ö¤òÀߤ±¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹."
+
+#: Mailman/Gui/General.py:339
+msgid ""
+"Default options for new members joining this list.<input\n"
+" type=\"hidden\" name=\"new_member_options\" value=\"ignore\">"
+msgstr ""
+"¤³¤Î¥ê¥¹¥È¤Î¿·Æþ²ñ°÷¤ËŬÍѤµ¤ì¤ë¥Ç¥Õ¥©¥ë¥È¤Î¥ª¥×¥·¥ç¥ó.<input\n"
+" type=\"hidden\" name=\"new_member_options\" value=\"ignore\">"
+
+#: Mailman/Gui/General.py:342
+msgid ""
+"When a new member is subscribed to this list, their initial\n"
+" set of options is taken from the this variable's setting."
+msgstr ""
+"¿·¤·¤¤²ñ°÷¤¬¥ê¥¹¥È¤ËÆþ²ñ¤¹¤ë¤È, ¤³¤ÎÊÑ¿ôÀßÄ꤬ºÇ½é¤Î¥ª¥×¥·¥ç¥ó\n"
+"¤È¤·¤ÆÀßÄꤵ¤ì¤Þ¤¹."
+
+#: Mailman/Gui/General.py:346
+msgid ""
+"(Administrivia filter) Check postings and intercept ones\n"
+" that seem to be administrative requests?"
+msgstr ""
+"(´ÉÍý¥³¥Þ¥ó¥É¥Õ¥£¥ë¥¿¡¼) Åê¹Æ¤ò¥Á¥§¥Ã¥¯¤·¤Æ ´ÉÍý\n"
+"¥³¥Þ¥ó¥É¤È»×¤ï¤ì¤¿¤éÇÛÁ÷¤òÊÝα¤·¤Þ¤¹¤«?"
+
+#: Mailman/Gui/General.py:349
+msgid ""
+"Administrivia tests will check postings to see whether it's\n"
+" really meant as an administrative request (like subscribe,\n"
+" unsubscribe, etc), and will add it to the the administrative\n"
+" requests queue, notifying the administrator of the new "
+"request,\n"
+" in the process."
+msgstr ""
+"´ÉÍý¥³¥Þ¥ó¥É¸¡ºº¤Ç¤ÏÅê¹Æ¤ò¥Á¥§¥Ã¥¯¤·¤Æ, ¤½¤ì¤¬ËÜÅö¤Ï\n"
+" ´ÉÍý¾å¤Î¿½ÀÁ¤Ç¤¢¤ë¤«¤òÄ´¤Ù¤Þ¤¹. (Î㤨¤Ð \n"
+" subscribe, unsubscribe, Åù), ¤½¤·¤Æ´ÉÍýÂÔ¤Á¹ÔÎó¤Ë²Ã¤¨\n"
+" ´ÉÍý¼Ô¤Ë¿·¤·¤¤¿½ÀÁ¤¬Íè¤Æ¤¤¤ë¤³¤È¤ò\n"
+" ÃΤ餻¤Þ¤¹. "
+
+#: Mailman/Gui/General.py:356
+msgid ""
+"Maximum length in kilobytes (KB) of a message body. Use 0\n"
+" for no limit."
+msgstr ""
+"Åê¹Æ¥á¥Ã¥»¡¼¥¸ËÜʸ¤ÎºÇÂ祵¥¤¥º(KB). À©¸Â̵¤·¤Ï 0\n"
+" ¤Ë¤·¤Æ¤¯¤À¤µ¤¤. "
+
+#: Mailman/Gui/General.py:360
+msgid "Host name this list prefers for email."
+msgstr "¥á¡¼¥ëÁ÷¿®¤Î»þ»È¤¦¥Û¥¹¥È̾(¥É¥á¥¤¥ó̾)"
+
+#: Mailman/Gui/General.py:362
+msgid ""
+"The \"host_name\" is the preferred name for email to\n"
+" mailman-related addresses on this host, and generally should "
+"be\n"
+" the mail host's exchanger address, if any. This setting can "
+"be\n"
+" useful for selecting among alternative names of a host that "
+"has\n"
+" multiple addresses."
+msgstr ""
+"host_name ¤Ï¤³¤Î¥Û¥¹¥È¤ÇÅŻҥ᡼¥ë¤ä Mailman ¤Î¥¢¥É¥ì¥¹¤Ë\n"
+" »È¤¦»þ¤Î̾Á°¤Ç, °ìÈ̤ˤϤ½¤Î¥Û¥¹¥È¤Î ¥á¡¼¥ë¸ò´¹(MX) ¥¢¥É¥ì¥¹\n"
+" ¤Ç¤¹. ¥Û¥¹¥È¤¬Ê£¿ô¤Î¥¢¥É¥ì¥¹¤ò»ý¤Ã¤Æ¤¤¤ë¤è¤¦¤Ê¾ì¹ç\n"
+" ¤³¤³¤ÇÀßÄꤹ¤ë¤ÈÊØÍø¤Ç¤¹."
+
+#: Mailman/Gui/General.py:374
+msgid ""
+"Should messages from this mailing list include the\n"
+" <a href=\"http://www.faqs.org/rfcs/rfc2369.html\">RFC "
+"2369</a>\n"
+" (i.e. <tt>List-*</tt>) headers? <em>Yes</em> is highly\n"
+" recommended."
+msgstr ""
+"¤³¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤«¤é¤Î¥á¡¼¥ë¤Ë \n"
+"<a href=\"http://www.faqs.org/rfcs/rfc2369.html\">RFC 2369</a> ¥Ø¥Ã¥À\n"
+"(<tt>List-*</tt>) ¤òÉÕ¤±¤Þ¤¹¤«? <em>¤Ï¤¤</em>¤Ë¤¹¤ë¤³¤È¤ò¿ä¾©¤·¤Þ¤¹."
+
+#: Mailman/Gui/General.py:379
+msgid ""
+"RFC 2369 defines a set of List-* headers that are\n"
+" normally added to every message sent to the list "
+"membership.\n"
+" These greatly aid end-users who are using standards "
+"compliant\n"
+" mail readers. They should normally always be enabled.\n"
+"\n"
+" <p>However, not all mail readers are standards compliant "
+"yet,\n"
+" and if you have a large number of members who are using\n"
+" non-compliant mail readers, they may be annoyed at these\n"
+" headers. You should first try to educate your members as "
+"to\n"
+" why these headers exist, and how to hide them in their "
+"mail\n"
+" clients. As a last resort you can disable these headers, "
+"but\n"
+" this is not recommended (and in fact, your ability to "
+"disable\n"
+" these headers may eventually go away)."
+msgstr ""
+"RFC 2369 ¤Ç¤Ï ¥ê¥¹¥È²ñ°÷¤ËÁ÷¤é¤ì¤ë¥á¡¼¥ë¤ËÉÕ¤±¤é¤ì¤ë¤Ù¤­, °ìÏ¢¤Î\n"
+"List-* ¥Ø¥Ã¥À¤¬Äê¤á¤é¤ì¤Æ¤¤¤Þ¤¹. ¤³¤ì¤é¤Ï, ɸ½à¤Ë¹ç¤Ã¤¿¥á¡¼¥ë¥½¥Õ¥È\n"
+"¤ò»È¤Ã¤Æ¤¤¤ë¥æ¡¼¥¶¤Ë¤È¤Ã¤ÆÂçÊѽõ¤±¤Ë¤Ê¤ê¤Þ¤¹. ¤·¤¿¤¬¤Ã¤Æ, ¤³¤ì¤òÍ­¸ú\n"
+"¤Ë¤·¤Æ¤ª¤¯¤Ù¤­¤Ç¤¹.\n"
+"<p>¤·¤«¤·, Á´¤Æ¤Î¥á¡¼¥ë¥½¥Õ¥È¤¬É¸½à¤Ë¹ç¤Ã¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó.\n"
+"¤Þ¤¿, ¤â¤·¤¢¤Ê¤¿¤Î¥ê¥¹¥È²ñ°÷¤ÎÂç¿¿ô¤Ë»È¤ï¤ì¤Æ¤¤¤ë¥á¡¼¥ë¥½¥Õ¥È¤¬\n"
+"ɸ½à¤Ë¹ç¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð, ¤³¤ì¤é¤Î¥Ø¥Ã¥À¤ËÂФ¹¤ëÉÔËþ¤¬½Ð¤ë¤«¤âÃΤì¤Þ¤»¤ó.\n"
+"¤Þ¤º¤Ï, ¤½¤¦¤·¤¿²ñ°÷¤ò¶µ°é¤·¤Æ, ¤Ê¤¼¤³¤Î¥Ø¥Ã¥À¤¬¤¢¤ë¤Î¤«¤ò¶µ¤¨, \n"
+"¤É¤¦¤¹¤ì¤Ð¥á¡¼¥ë¥½¥Õ¥È¤ÎÀßÄê¤Ç¸«¤¨¤Ê¤¯¤Ç¤­¤ë¤«¤ò¶µ¤¨¤ë¤È¤è¤¤¤Ç¤·¤ç¤¦.\n"
+"ºÇ¸å¤ÎÁªÂò¤È¤·¤Æ, ¤³¤ì¤é¤Î¥Ø¥Ã¥À¤òÉÕ¤±¤Ê¤¤¤è¤¦¤ËÀßÄê¤Ç¤­¤Þ¤¹¤¬, ¤³¤ì¤Ï\n"
+"¿ä¾©¤Ç¤­¤Þ¤»¤ó. (º£¸å¤Î¥ê¥ê¡¼¥¹¤Ç¤Ï, ¤³¤Î¥Ø¥Ã¥À¤Ë´Ø¤¹¤ëÀßÄ꤬¤Ç¤­¤Ê¤¤¤è¤¦¤Ë\n"
+"¤¹¤ë¤«¤â¤·¤ì¤Þ¤»¤ó.)"
+
+#: Mailman/Gui/General.py:397
+msgid "Should postings include the <tt>List-Post:</tt> header?"
+msgstr "Åê¹Æµ­»ö¤Ë <tt>List-Post:</tt> ¥Ø¥Ã¥À¤òɬÍפȤ·¤Þ¤¹¤«?"
+
+#: Mailman/Gui/General.py:398
+msgid ""
+"The <tt>List-Post:</tt> header is one of the headers\n"
+" recommended by\n"
+" <a href=\"http://www.faqs.org/rfcs/rfc2369.html\">RFC "
+"2369</a>.\n"
+" However for some <em>announce-only</em> mailing lists, only a\n"
+" very select group of people are allowed to post to the list; "
+"the\n"
+" general membership is usually not allowed to post. For lists "
+"of\n"
+" this nature, the <tt>List-Post:</tt> header is misleading.\n"
+" Select <em>No</em> to disable the inclusion of this header. "
+"(This\n"
+" does not affect the inclusion of the other <tt>List-*:</tt>\n"
+" headers.)"
+msgstr ""
+"<tt>List-Post:</tt> ¥Ø¥Ã¥À¤Ï\n"
+"<a href=\"http://www.faqs.org/rfcs/rfc2369.html\">RFC 2369</a>¤ÇÉÕ¤±¤ë\n"
+"¤³¤È¤¬¿ä¾©¤µ¤ì¤Æ¤¤¤Þ¤¹. ¤·¤«¤·, <em>¤ªÃΤ餻¤Î¤ß</em>¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È\n"
+"¤Ç¤Ï¤Û¤ó¤Î°ìÉô¤Î¿Í¤À¤±¤¬Åê¹Æ¤¹¤ë¤³¤È¤¬µö¤µ¤ì¤Æ¤¤¤Þ¤¹. ¤Ä¤Þ¤ê°ìÈ̤Î\n"
+"²ñ°÷¤Ï, Åê¹Æ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó. ¤³¤Î¤¿¤á, <tt>List-Post:</tt>¥Ø¥Ã¥À\n"
+"¤Ï¸í²ò¤ò¤¢¤¿¤¨¤ë¤«¤â¤·¤ì¤Þ¤»¤ó. <em>¤¤¤¤¤¨</em>¤òÁª¤Ö¤³¤È¤Ç, ¤³¤Î¥Ø¥Ã¥À\n"
+"¤ò¤Ä¤±¤Ê¤¤¤è¤¦¤Ë¤·¤Þ¤¹. (¾¤Î <tt>List-*:</tt>¥Ø¥Ã¥À¤Ë¤Ï±Æ¶Á¤·¤Þ¤»¤ó.)"
+
+#: Mailman/Gui/General.py:416
+msgid ""
+"<b>real_name</b> attribute not\n"
+" changed! It must differ from the list's name by case\n"
+" only."
+msgstr ""
+"<b>real_name</b>°À­¤ÏÊѹ¹¤µ¤ì¤Þ¤»¤ó!\n"
+"¥ê¥¹¥È̾¤ÎÂçʸ»ú¾®Ê¸»ú¤ÎÊѹ¹¤À¤±¤¬µö¤µ¤ì¤Þ¤¹."
+
+#: Mailman/Gui/General.py:437
+msgid ""
+"You cannot add a Reply-To: to an explicit\n"
+" address if that address is blank. Resetting these values."
+msgstr ""
+"¾¤Î<tt>Reply-To:</tt>¤ò»ØÄꤹ¤ë¤È¤­¤Ë¤Ï, ¤½¤Î¥¢¥É¥ì¥¹¤ò¾Êά¤Ç¤­¤Þ¤»¤ó.\n"
+"¤³¤ì¤é¤ÎÃͤò¥ê¥»¥Ã¥È¤·¤Þ¤¹."
+
+#: Mailman/Gui/Language.py:34
+msgid "Language&nbsp;options"
+msgstr "¸À¸ì¥ª¥×¥·¥ç¥ó"
+
+#: Mailman/Gui/Language.py:66
+msgid "Natural language (internationalization) options."
+msgstr "¼«Á³¸À¸ì(¹ñºÝ²½)¥ª¥×¥·¥ç¥ó"
+
+#: Mailman/Gui/Language.py:71
+msgid "Default language for this list."
+msgstr "¤³¤Î¥ê¥¹¥È¤Îɸ½à¸À¸ì"
+
+#: Mailman/Gui/Language.py:72
+msgid ""
+"This is the default natural language for this mailing list.\n"
+" If <a href=\"?VARHELP=language/available_languages\">more than "
+"one\n"
+" language</a> is supported then users will be able to select "
+"their\n"
+" own preferences for when they interact with the list. All "
+"other\n"
+" interactions will be conducted in the default language. This\n"
+" applies to both web-based and email-based messages, but not to\n"
+" email posted by list members."
+msgstr ""
+"¤³¤ì¤Ï, ¤³¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Îɸ½à¤Î¼«Á³¸À¸ì¤Ç¤¹.\n"
+"¤â¤·, <a "
+"href=\"?VARHELP=language/available_languages\">¤Ò¤È¤Ä°Ê¾å¤Î¸À¸ì</a>\n"
+"¤ò»È¤¨¤ë¤è¤¦¤Ë¤¹¤ë¤Î¤Ç¤¢¤ì¤Ð, ¥ê¥¹¥È¤È¤ä¤ê¤È¤ê¤¹¤ë¤È¤­¤Ë»È¤¦, ¹¥¤ß¤Î¸À¸ì\n"
+"¤òÁª¤Ö¤³¤È¤¬¤Ç¤­¤Þ¤¹. ¤³¤ì¤Ï Web¤È¥á¡¼¥ë¤Î¤½¤ì¤¾¤ì¤Î¥á¥Ã¥»¡¼¥¸¤ËŬÍÑ\n"
+"¤µ¤ì¤Þ¤¹¤¬, ¥ê¥¹¥È¤Î²ñ°÷¤«¤éÅê¹Æ¤µ¤ì¤ë¥á¡¼¥ë¤Ë¤ÏŬÍѤµ¤ì¤Þ¤»¤ó."
+
+#: Mailman/Gui/Language.py:82
+msgid "Languages supported by this list."
+msgstr "¤³¤Î¥ê¥¹¥È¤Ç»È¤¨¤ë¸À¸ì"
+
+#: Mailman/Gui/Language.py:84
+msgid ""
+"These are all the natural languages supported by this list.\n"
+" Note that the\n"
+" <a href=\"?VARHELP=language/preferred_language\">default\n"
+" language</a> must be included."
+msgstr ""
+"¤³¤ì¤é¤Ï, ¤³¤Î¥ê¥¹¥È¤Ç»ÈÍѤǤ­¤ë¼«Á³¸À¸ì¤Î°ìÍ÷¤Ç¤¹.\n"
+"<a href=\"?VARHELP=language/preferred_language\">¥Ç¥Õ¥©¥ë¥È¤Î¸À¸ì</a>\n"
+"¤¬´Þ¤Þ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¤Î¤Ç, Ãí°Õ¤·¤Æ¤¯¤À¤µ¤¤."
+
+#: Mailman/Gui/Language.py:90
+msgid "Always"
+msgstr "¤¤¤Ä¤â"
+
+#: Mailman/Gui/Language.py:90
+msgid "As needed"
+msgstr "ɬÍפʤé"
+
+#: Mailman/Gui/Language.py:90
+msgid "Never"
+msgstr "¤·¤Ê¤¤"
+
+#: Mailman/Gui/Language.py:91
+msgid ""
+"Encode the\n"
+" <a href=\"?VARHELP=general/subject_prefix\">subject\n"
+" prefix</a> even when it consists of only ASCII characters?"
+msgstr ""
+"<a href=\"?VARHELP=general/subject_prefix\">subject prefix</a>\n"
+"¤¬ASCIIʸ»ú¤À¤±¤«¤é¤Ê¤ë¾ì¹ç¤Ç¤âÉ乿²½¤·¤Þ¤¹¤«?"
+
+#: Mailman/Gui/Language.py:95
+msgid ""
+"If your mailing list's default language uses a non-ASCII\n"
+" character set and the prefix contains non-ASCII characters, "
+"the\n"
+" prefix will always be encoded according to the relevant\n"
+" standards. However, if your prefix contains only ASCII\n"
+" characters, you may want to set this option to <em>Never</em> "
+"to\n"
+" disable prefix encoding. This can make the subject headers\n"
+" slightly more readable for users with mail readers that don't\n"
+" properly handle non-ASCII encodings.\n"
+"\n"
+" <p>Note however, that if your mailing list receives both "
+"encoded\n"
+" and unencoded subject headers, you might want to choose <em>As\n"
+" needed</em>. Using this setting, Mailman will not encode "
+"ASCII\n"
+" prefixes when the rest of the header contains only ASCII\n"
+" characters, but if the original header contains non-ASCII\n"
+" characters, it will encode the prefix. This avoids an "
+"ambiguity\n"
+" in the standards which could cause some mail readers to "
+"display\n"
+" extra, or missing spaces between the prefix and the original\n"
+" header."
+msgstr ""
+"¤â¤·, ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Îɸ½à¸À¸ì¤¬ASCII¤Ç¤Ê¤¤Ê¸»ú½¸¹ç¤ò»È¤Ã¤Æ¤¤¤Æ\n"
+"¥ê¥¹¥ÈÅê¹Æ¤Î·ï̾¤ËÉÕ¤±¤ëÁ°ÃÖ¤­¤ËASCII¤Ç¤Ê¤¤Ê¸»ú¤¬Æþ¤Ã¤Æ¤¤¤¿¤é,\n"
+"¤½¤ÎÁ°ÃÖ¤­¤Ïɸ½àŪ¤ÊÊýË¡¤ÇÉ乿²½¤µ¤ì¤Þ¤¹. ¤·¤«¤·, ¤â¤·Á°ÃÖ¤­¤ËASCIIʸ»ú\n"
+"¤·¤«»È¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð, <em>¤·¤Ê¤¤</em>¤òÁª¤ó¤ÇÉ乿²½¤ò¤·¤Ê¤¤¤è¤¦¤Ë¤Ç¤­¤Þ¤¹\n"
+"¤³¤Î¤³¤È¤Ç, ÈóASCIIÉ乿²½¤ËÂбþ¤·¤Æ¤¤¤Ê¤¤¥á¡¼¥ë¥½¥Õ¥È¤ò»È¤Ã¤Æ¤¤¤ë²ñ°÷\n"
+"¤Ë¤â, ¾¯¤·¤À¤±·ï̾¤¬ÆÉ¤ß¤ä¤¹¤¯¤Ê¤ê¤Þ¤¹.\n"
+"<p>¤·¤«¤·, ¤â¤·¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ÇÉ乿²½¤·¤¿¤ê¤·¤Ê¤«¤Ã¤¿¤êξÊý¤Î¥á¡¼¥ë\n"
+"¤ò¼õ¤±¼è¤ë¤Ê¤é, ¤³¤³¤Ç<em>ɬÍפ˱þ¤¸¤Æ</em>¤òÁª¤ó¤Ç¤ª¤¯¤È¤¤¤¤¤Ç¤·¤ç¤¦.\n"
+"¤³¤Î¾ì¹ç, ¤â¤··ï̾¥Ø¥Ã¥À¤Î»Ä¤ê¤ÎÉôʬ¤¬ASCIIʸ»ú¤À¤±¤Ê¤éÁ°ÃÖ¤­¤âÉ乿²½\n"
+"¤»¤º, ÈóASCIIʸ»ú¤ò´Þ¤ó¤Ç¤¤¤¿¤éÁ°ÃÖ¤­¤òÉ乿²½¤·¤Þ¤¹. ¤³¤¦¤¹¤ë¤³¤È¤Ç, \n"
+"¤¢¤ë¼ï¤Î¥á¡¼¥ë¥½¥Õ¥È¤ÇÁ°ÃÖ¤­¤È¸µ¤Î¥Ø¥Ã¥À¤Î´Ö¤Î¶õÇò¤¬Áý¤¨¤¿¤ê¾Ã¤¨¤¿¤ê¤¹¤ë\n"
+"ÌäÂê¤ò²óÈò¤Ç¤­¤Þ¤¹."
+
+#: Mailman/Gui/Membership.py:26
+msgid "Membership&nbsp;Management"
+msgstr "²ñ°÷´ÉÍý"
+
+#: Mailman/Gui/Membership.py:30
+msgid "Membership&nbsp;List"
+msgstr "²ñ°÷¥ê¥¹¥È"
+
+#: Mailman/Gui/Membership.py:31
+msgid "Mass&nbsp;Subscription"
+msgstr "¤Þ¤È¤á¤ÆÆþ²ñÅÐÏ¿"
+
+#: Mailman/Gui/Membership.py:32
+msgid "Mass&nbsp;Removal"
+msgstr "¤Þ¤È¤á¤ÆÂà²ñ½èÍý"
+
+#: Mailman/Gui/NonDigest.py:34
+msgid "Non-digest&nbsp;options"
+msgstr "ÉáÄÌÇÛÁ÷¥ª¥×¥·¥ç¥ó"
+
+#: Mailman/Gui/NonDigest.py:42
+msgid "Policies concerning immediately delivered list traffic."
+msgstr "ÉáÄÌÇÛÁ÷¤Ë´Ø¤¹¤ë´ðËÜÊý¿Ë"
+
+#: Mailman/Gui/NonDigest.py:45
+msgid ""
+"Can subscribers choose to receive mail immediately, rather\n"
+" than in batched digests?"
+msgstr ""
+"¤Þ¤È¤áÆÉ¤ß(¥À¥¤¥¸¥§¥¹¥È)¤Ç¤Ê¤·¤Ë¸ÄÊÌ(1Ä̤º¤Ä)ÇÛÁ÷¤Ë\n"
+" ¤¹¤ë¤³¤È¤ò¥æ¡¼¥¶¤ËÁªÂò¤µ¤»¤Þ¤¹¤«?"
+
+#: Mailman/Gui/NonDigest.py:52
+msgid "Full Personalization"
+msgstr "´°Á´¸ÄÊÌÇÛÁ÷"
+
+#: Mailman/Gui/NonDigest.py:54
+msgid ""
+"Should Mailman personalize each non-digest delivery?\n"
+" This is often useful for announce-only lists, but <a\n"
+" href=\"?VARHELP=nondigest/personalize\">read the "
+"details</a>\n"
+" section for a discussion of important performance\n"
+" issues."
+msgstr ""
+"ÉáÄÌÇÛÁ÷¤Ë¤Ä¤¤¤Æ, ÇÛÁ÷¤ò¸ÄÊ̲½¤·¤Þ¤¹¤«?\n"
+"¤³¤ì¤Ï, ¤ªÃΤ餻¤Î¤ß¤Î¥ê¥¹¥È¤Î¾ì¹ç¤ËÊØÍø¤Ê¤³¤È¤¬Â¿¤¤¤Ç¤¹.\n"
+"¤·¤«¤·, <a href=\"?VARHELP=nondigest/personalize\">¾ÜºÙ</a>\n"
+"¤âÆÉ¤ó¤Ç¤¯¤À¤µ¤¤. ¸úΨ¤ÎÅÀ¤Ç¤ÎµÄÏÀ¤¬¤¢¤ê¤Þ¤¹."
+
+#: Mailman/Gui/NonDigest.py:60
+msgid ""
+"Normally, Mailman sends the regular delivery messages to\n"
+" the mail server in batches. This is much more efficent\n"
+" because it reduces the amount of traffic between Mailman "
+"and\n"
+" the mail server.\n"
+"\n"
+" <p>However, some lists can benefit from a more "
+"personalized\n"
+" approach. In this case, Mailman crafts a new message for\n"
+" each member on the regular delivery list. Turning this\n"
+" feature on may degrade the performance of your site, so "
+"you\n"
+" need to carefully consider whether the trade-off is worth "
+"it,\n"
+" or whether there are other ways to accomplish what you "
+"want.\n"
+" You should also carefully monitor your system load to make\n"
+" sure it is acceptable.\n"
+"\n"
+" <p>Select <em>No</em> to disable personalization and send\n"
+" messages to the members in batches. Select <em>Yes</em> "
+"to\n"
+" personalize deliveries and allow additional substitution\n"
+" variables in message headers and footers (see below). In\n"
+" addition, by selecting <em>Full Personalization</em>, the\n"
+" <code>To</code> header of posted messages will be modified "
+"to\n"
+" include the member's address instead of the list's posting\n"
+" address.\n"
+"\n"
+" <p>When personalization is enabled, a few more expansion\n"
+" variables that can be included in the <a\n"
+" href=\"?VARHELP=nondigest/msg_header\">message header</a> "
+"and\n"
+" <a href=\"?VARHELP=nondigest/msg_footer\">message "
+"footer</a>.\n"
+"\n"
+" <p>These additional substitution variables will be "
+"available\n"
+" for your headers and footers, when this feature is "
+"enabled:\n"
+"\n"
+" <ul><li><b>user_address</b> - The address of the user,\n"
+" coerced to lower case.\n"
+" <li><b>user_delivered_to</b> - The case-preserved "
+"address\n"
+" that the user is subscribed with.\n"
+" <li><b>user_password</b> - The user's password.\n"
+" <li><b>user_name</b> - The user's full name.\n"
+" <li><b>user_optionsurl</b> - The url to the user's "
+"option\n"
+" page.\n"
+" </ul>\n"
+" "
+msgstr ""
+"Ä̾ï¤Ï, Mailman ¤ÏÉáÄÌÇÛÁ÷²ñ°÷¤Ø¤Î¥á¡¼¥ë¤ò¤Þ¤È¤á¤Æ¥á¡¼¥ë¥µ¡¼¥Ð¤Ë\n"
+"Á÷¿®¤·¤Þ¤¹. ¤³¤ì¤Ï Mailman ¤È¥á¡¼¥ë¥µ¡¼¥Ð¤Î´Ö¤ÎÄÌ¿®¤ò¸º¤é¤¹¤Î¤Ç, \n"
+"¸úΨ¤ÎÎɤ¤ÊýË¡¤Ç¤¹. \n"
+"<p>\n"
+"¤·¤«¤·, ¥ê¥¹¥È¤Ë¤è¤Ã¤Æ¤Ï, ¤è¤ê¸ÄÊ̲½¤µ¤ì¤¿ÊýË¡¤¬¤è¤¤¤³¤È¤â¤¢¤ê¤Þ¤¹.\n"
+"¤³¤Î¾ì¹ç, Mailman¤ÏÄ̾ï¤ÎÇÛÁ÷¥ê¥¹¥È¤Î¸Ä¡¹¤Î²ñ°÷¤½¤ì¤¾¤ì¤Ë, ¿·¤·¤¤\n"
+"¥á¡¼¥ëËÜʸ¤òºî¤ê¤Þ¤¹. ¤³¤Î¥ª¥×¥·¥ç¥ó¤ò¥ª¥ó¤Ë¤¹¤ë¤³¤È¤Ç, \n"
+"°ìÊý¤Ç, ¤³¤ì¤¬¤¢¤Ê¤¿¤Î¥µ¥¤¥È¤Î¸úΨ¤òÁ´ÂÎŪ¤ËÄã²¼¤µ¤»¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹.\n"
+"¤³¤Î¥È¥ì¡¼¥É¡¦¥ª¥Õ¤¬¤½¤ì¤À¤±¤Î²ÁÃͤ¬¤¢¤ë¤«¤É¤¦¤«, Ãí°Õ¤·¤Æ¸¡Æ¤¤·¤Æ\n"
+"¤¯¤À¤µ¤¤. ¤¢¤ë¤¤¤Ï, ¤ä¤í¤¦¤È¤·¤Æ¤¤¤ë¤³¤È¤ò¼Â¸½¤¹¤ë¤Î¤Ë, \n"
+"¾¤ÎÊýË¡¤¬Ìµ¤¤¤È¤â¸Â¤ê¤Þ¤»¤ó. ¤Þ¤¿, ¥·¥¹¥Æ¥à¤ÎÉé²Ù¤òÃí°Õ¿¼¤¯¥â¥Ë¥¿¡¼\n"
+"¤·¤Æ, µöÍÆ¤Ç¤­¤ë¤³¤È¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤.\n"
+"\n"
+"<p><em>¤¤¤¤¤¨</em>¤òÁª¤Ö¤È¸ÄÊÌÇÛÁ÷¤Ï¤»¤º, ¥á¡¼¥ë¤Ï¤Þ¤È¤á¤ÆÁ÷¿®¤µ¤ì¤Þ¤¹.\n"
+"<em>¤Ï¤¤</em>¤òÁª¤Ö¤È¸ÄÊÌÇÛÁ÷¤ò¹Ô¤¤, ¤¤¤¯¤Ä¤«¤ÎÃÖ¤­´¹¤¨ÊÑ¿ô¤¬¥Ø¥Ã¥À¤È\n"
+"¥Õ¥Ã¥¿¤Ë»È¤¨¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹(²¼¤ò»²¾È). ¤µ¤é¤Ë, <em>´°Á´¸ÄÊ̲½</em>¤ò\n"
+"Áª¤Ö¤È<code>To:</code>¥Ø¥Ã¥À¤¬¥ê¥¹¥È¤Î¥¢¥É¥ì¥¹¤Ç¤Ê¤¯, ¸Ä¡¹¤Î¥æ¡¼¥¶°¸¤Æ\n"
+"¤Ë¤Ê¤ê¤Þ¤¹.\n"
+"\n"
+"<p>¤Þ¤¿¸ÄÊÌÇÛÁ÷¤Ç¤Ï, ¤¤¤¯¤Ä¤«¤ÎÃÖ¤­´¹¤¨²Äǽ¤ÊÊÑ¿ô¤ò<a "
+"href=\"?VARHELP=nondigest/msg_header\">\n"
+"¥Ø¥Ã¥À</a>¤È<a href=\"?VARHELP=nondigest/msg_footer\">¥Õ¥Ã¥¿</a>¤ËÆþ¤ì¤ë\n"
+"¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹. \n"
+"\n"
+"<p>°Ê²¼¤ÎÊÑ¿ô¤¬¤³¤ì¤òÍ­¸ú¤Ë¤¹¤ë¤È¥Ø¥Ã¥À¤È¥Õ¥Ã¥¿¤ËÆþ¤ì¤é¤ì¤Þ¤¹:\n"
+"<ul><li><b>user_address</b> - ²ñ°÷¤Î¥¢¥É¥ì¥¹(¾®Ê¸»ú¤Ë¤Ê¤ë)\n"
+" <li><b>user_delivered_to</b> - ²ñ°÷¤¬ÅÐÏ¿¤·¤¿Â羮ʸ»ú¤ò»È¤Ã¤¿¥¢¥É¥ì¥¹\n"
+" <li><b>user_password</b> - ²ñ°÷¤Î¥Ñ¥¹¥ï¡¼¥É\n"
+" <li><b>user_name</b> - ²ñ°÷¤Î¥Õ¥ë¥Í¡¼¥à\n"
+" <li><b>user_optionsurl</b> - ²ñ°÷¥ª¥×¥·¥ç¥ó¥Ú¡¼¥¸¤Î URL\n"
+"</ul>\n"
+" "
+
+#: Mailman/Gui/NonDigest.py:108
+msgid "Header added to mail sent to regular list members"
+msgstr "ÉáÄÌÇÛÁ÷²ñ°÷¤Ø¤Î¥á¡¼¥ë¤ËÉÕ¤±¤ë¥Ø¥Ã¥À"
+
+#: Mailman/Gui/NonDigest.py:109
+msgid ""
+"Text prepended to the top of every immediately-delivery\n"
+" message. "
+msgstr "¸ÄÊÌÇÛÁ÷¤Î¥á¡¼¥ë¤ÎËÜʸ¤ÎºÇ½é¤Ë¤³¤Îʸ¤¬ÉÕ¤±²Ã¤¨ ¤é¤ì¤Þ¤¹. "
+
+#: Mailman/Gui/NonDigest.py:114
+msgid "Footer added to mail sent to regular list members"
+msgstr "ÉáÄÌÇÛÁ÷²ñ°÷¤Ø¤Î¥á¡¼¥ë¤ËÉղ䵤ì¤ë¥Õ¥Ã¥¿"
+
+#: Mailman/Gui/NonDigest.py:115
+msgid ""
+"Text appended to the bottom of every immediately-delivery\n"
+" message. "
+msgstr "¸ÄÊÌÇÛÁ÷¤Î¥á¡¼¥ë¤ÎËÜʸ¤ÎºÇ¸å¤Ë¤³¤Îʸ¤¬ÉÕ¤±²Ã¤¨¤é¤ì¤Þ¤¹. "
+
+#: Mailman/Gui/Passwords.py:27
+msgid "Passwords"
+msgstr "¥Ñ¥¹¥ï¡¼¥É"
+
+#: Mailman/Gui/Privacy.py:28
+msgid "Privacy options"
+msgstr "¥×¥é¥¤¥Ð¥·¡¼¡¦¥ª¥×¥·¥ç¥ó"
+
+#: Mailman/Gui/Privacy.py:32
+msgid "Subscription&nbsp;rules"
+msgstr "Æþ²ñµ¬Â§"
+
+#: Mailman/Gui/Privacy.py:33
+msgid "Sender&nbsp;filters"
+msgstr "Á÷¿®¼Ô¥Õ¥£¥ë¥¿¡¼"
+
+#: Mailman/Gui/Privacy.py:34
+msgid "Recipient&nbsp;filters"
+msgstr "¼õ¿®¼Ô¥Õ¥£¥ë¥¿¡¼"
+
+#: Mailman/Gui/Privacy.py:35
+msgid "Spam&nbsp;filters"
+msgstr "SPAM ¥Õ¥£¥ë¥¿¡¼"
+
+#: Mailman/Gui/Privacy.py:49 Mailman/Gui/Usenet.py:61
+msgid "None"
+msgstr "̵¤·"
+
+#: Mailman/Gui/Privacy.py:50 Mailman/Gui/Privacy.py:73
+msgid "Confirm"
+msgstr "³Îǧ"
+
+#: Mailman/Gui/Privacy.py:51 Mailman/Gui/Privacy.py:74
+msgid "Require approval"
+msgstr "¾µÇ§"
+
+#: Mailman/Gui/Privacy.py:52 Mailman/Gui/Privacy.py:75
+msgid "Confirm and approve"
+msgstr "³Îǧ¡Ü¾µÇ§"
+
+#: Mailman/Gui/Privacy.py:54 Mailman/Gui/Privacy.py:77
+msgid "What steps are required for subscription?<br>"
+msgstr "Æþ²ñ¤Ë¤Ï¤É¤Î¤è¤¦¤Ê¼ê½ç¤¬É¬ÍפǤ¹¤«?<br>"
+
+#: Mailman/Gui/Privacy.py:55
+msgid ""
+"None - no verification steps (<em>Not\n"
+" Recommended </em>)<br>\n"
+" Confirm (*) - email confirmation step required "
+"<br>\n"
+" Require approval - require list administrator\n"
+" Approval for subscriptions <br>\n"
+" Confirm and approve - both confirm and approve\n"
+" \n"
+" <p>(*) when someone requests a subscription,\n"
+" Mailman sends them a notice with a unique\n"
+" subscription request number that they must reply "
+"to\n"
+" in order to subscribe.<br>\n"
+"\n"
+" This prevents mischievous (or malicious) people\n"
+" from creating subscriptions for others without\n"
+" their consent."
+msgstr ""
+"̵¤· - ³Îǧ¼ê½ç̵¤· (<em> ¤ª´«¤á¤·¤Þ¤»¤ó </em>)<br>\n"
+"³Îǧ (*) - ¥á¡¼¥ë¤Ë¤è¤ëËܿͤγÎǧ¤¬É¬Í× <br>\n"
+"¾µÇ§ - ¥ê¥¹¥È´ÉÍý¼Ô¤Î¾µÇ§¤¬É¬Í× <br>\n"
+"³Îǧ+¾µÇ§ - ³Îǧ ¤È ¾µÇ§ ξÊýɬÍ×\n"
+"\n"
+"<p> (*) 狼¤¬Æþ²ñ¿½ÀÁ¤ò½Ð¤¹¤ÈMailman ¤ÏÆþ²ñ¿½ÀÁÈÖ¹æ¤òÉÕ¤±¤ÆÊÖ¿®¤·¤Þ¤¹. \n"
+" ¿½ÀÁ¼Ô¤Ï¤½¤ÎÈÖ¹æ¤ò»È¤Ã¤ÆÊÖ¿®¤·¤Ê¤¤¤È²ÃÆþ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó.<br> \n"
+" ¤³¤ì¤Ë¤è¤ê¾¿Í¤Îλ²ò¤òÆÀ¤º¤ËÆþ²ñ¤µ¤»¤ë¤È¤¤¤¦Í­³²¤Ê(¤¢¤ë¤¤¤Ï°­°Õ¤¢¤ë)\n"
+" ¹Ô°Ù¤òËɤ°¤³¤È¤¬¤Ç¤­¤Þ¤¹."
+
+#: Mailman/Gui/Privacy.py:78
+msgid ""
+"Confirm (*) - email confirmation required <br>\n"
+" Require approval - require list administrator\n"
+" approval for subscriptions <br>\n"
+" Confirm and approve - both confirm and approve\n"
+" \n"
+" <p>(*) when someone requests a subscription,\n"
+" Mailman sends them a notice with a unique\n"
+" subscription request number that they must reply "
+"to\n"
+" in order to subscribe.<br> This prevents\n"
+" mischievous (or malicious) people from creating\n"
+" subscriptions for others without their consent."
+msgstr ""
+"³Îǧ (*) - ¥á¡¼¥ë¤Ë¤è¤ëËܿͤγÎǧ¤¬É¬Í×<br>\n"
+"¾µÇ§ - ¥ê¥¹¥È´ÉÍý¼Ô¤Î¾µÇ§¤¬É¬Í×<br>\n"
+"³Îǧ+¾µÇ§ - ³Îǧ ¤È ¾µÇ§ ξÊýɬÍ×\n"
+"\n"
+"<p>(*) 狼¤¬Æþ²ñ¿½ÀÁ¤ò½Ð¤¹¤È Mailman ¤ÏÆþ²ñ¿½ÀÁÈÖ¹æ¤ò\n"
+" ÉÕ¤±¤ÆÊÖ¿®¤·¤Þ¤¹. ¿½ÀÁ¼Ô¤Ï¤½¤ÎÈÖ¹æ¤ò»È¤Ã¤ÆÊÖ¿®¤·¤Ê¤¤¤È\n"
+" ²ÃÆþ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó.<br>\n"
+" ¤³¤ì¤Ë¤è¤ê¾¿Í¤Îλ²ò¤òÆÀ¤º¤ËÆþ²ñ¤µ¤»¤ë¤È¤¤¤¦Í­³²¤Ê\n"
+" (¤¢¤ë¤¤¤Ï°­°Õ¤¢¤ë) ¹Ô°Ù¤òËɤ°¤³¤È¤¬¤Ç¤­¤Þ¤¹."
+
+#: Mailman/Gui/Privacy.py:94
+msgid ""
+"This section allows you to configure subscription and\n"
+" membership exposure policy. You can also control whether this\n"
+" list is public or not. See also the\n"
+" <a href=\"%(admin)s/archive\">Archival Options</a> section for\n"
+" separate archive-related privacy settings."
+msgstr ""
+"¤³¤Î¥»¥¯¥·¥ç¥ó¤Ç¤ÏÆþ²ñ¤È²ñ°÷¾ðÊó¤Î¸ø³«¤Ë´Ø¤¹¤ë¥Ý¥ê¥·¡¼¤òÀßÄê¤Ç¤­¤Þ¤¹.\n"
+"¤Þ¤¿, ¥ê¥¹¥È¤ò¸ø³«¤¹¤ë¤«¤É¤¦¤«¤âÀ©¸æ¤Ç¤­¤Þ¤¹.\n"
+"Êݸ½ñ¸Ë¤Î¥×¥é¥¤¥Ð¥·¡¼¤Ë¤Ä¤¤¤Æ¤Ï <a href=\"%(admin)s/archive\">\n"
+"Êݸ½ñ¸Ë¥ª¥×¥·¥ç¥ó¤ÎÉô</a> ¤òÀßÄꤷ¤Æ¤¯¤À¤µ¤¤.)"
+
+#: Mailman/Gui/Privacy.py:100
+msgid "Subscribing"
+msgstr "Æþ²ñ¿½ÀÁ"
+
+#: Mailman/Gui/Privacy.py:102
+msgid ""
+"Advertise this list when people ask what lists are on this\n"
+" machine?"
+msgstr ""
+"¤³¤Î¥Þ¥·¥ó¤Ç¤É¤ó¤Ê¥ê¥¹¥È¤¬¤¢¤ë¤«Ê¹¤«¤ì¤¿»þ¤Ë\n"
+"¹­¹ð¤·¤Þ¤¹¤«?"
+
+#: Mailman/Gui/Privacy.py:108
+msgid ""
+"Is the list moderator's approval required for unsubscription\n"
+" requests? (<em>No</em> is recommended)"
+msgstr "Âà²ñ¿½ÀÁ¤Ë¤Ï, ¥ê¥¹¥È»Ê²ñ¼Ô¤Î¾µÇ§¤¬É¬ÍפǤ¹¤«? (<em>¤¤¤¤¤¨</em>¤ò¿ä¾©)"
+
+#: Mailman/Gui/Privacy.py:111
+msgid ""
+"When members want to leave a list, they will make an\n"
+" unsubscription request, either via the web or via email.\n"
+" Normally it is best for you to allow open unsubscriptions so "
+"that\n"
+" users can easily remove themselves from mailing lists (they "
+"get\n"
+" really upset if they can't get off lists!).\n"
+"\n"
+" <p>For some lists though, you may want to impose moderator\n"
+" approval before an unsubscription request is processed. "
+"Examples\n"
+" of such lists include a corporate mailing list that all "
+"employees\n"
+" are required to be members of."
+msgstr ""
+"²ñ°÷¤Ï¥ê¥¹¥È¤òµî¤í¤¦¤È¤¹¤ë¤È¤­, Âà²ñ¿½ÀÁ¤ò¥¦¥§¥Ö¤«¥á¡¼¥ë¤Ç¹Ô¤Ê¤¤¤Þ¤¹.\n"
+"Ä̾ï¤Ï, Âà²ñ¤ò¥ª¡¼¥×¥ó¤Ë, ¤Ä¤Þ¤ê²ñ°÷¤¬´Êñ¤ËÂà²ñ¤Ç¤­¤ë¤è¤¦¤Ë¤·¤Æ¤ª¤¤¤¿\n"
+"¤Û¤¦¤¬¤è¤¤¤Ç¤·¤ç¤¦. (¥ê¥¹¥È¤«¤é´Êñ¤ËÂà²ñ¤Ç¤­¤Ê¤¤¤È¥æ¡¼¥¶¤ÏÅöÏǤ·¤Þ¤¹)\n"
+"\n"
+"<p>¤·¤«¤·, ¥ê¥¹¥È¤Ë¤è¤Ã¤Æ¤ÏÂà²ñ¿½ÀÁ¤ò½èÍý¤¹¤ëÁ°¤Ë»Ê²ñ¼Ô¤¬¾µÇ§¤¹¤ë¤è¤¦¤Ë\n"
+"¤·¤¿¤¤¾ì¹ç¤â¤¢¤ê¤Þ¤¹. Î㤨¤Ð, ²ñ¼Ò¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ÇÁ´¤Æ¤Î¼Ò°÷¤¬\n"
+"²ñ°÷¤Ç¤¢¤ë¤è¤¦¤Ê¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤¬¤³¤ì¤Ë¤¢¤¿¤ê¤Þ¤¹."
+
+#: Mailman/Gui/Privacy.py:122
+msgid "Ban list"
+msgstr "ÇÓ½ü¥ê¥¹¥È"
+
+#: Mailman/Gui/Privacy.py:124
+msgid ""
+"List of addresses which are banned from membership in this\n"
+" mailing list."
+msgstr "¤³¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤«¤éÆþ²ñ¤òÇÓ½ü¤µ¤ì¤ë¥¢¥É¥ì¥¹¤Î¥ê¥¹¥È."
+
+#: Mailman/Gui/Privacy.py:127
+msgid ""
+"Addresses in this list are banned outright from subscribing\n"
+" to this mailing list, with no further moderation required. "
+"Add\n"
+" addresses one per line; start the line with a ^ character to\n"
+" designate a regular expression match."
+msgstr ""
+"¤³¤ì¤é¤Î¥¢¥É¥ì¥¹¤«¤éÆþ²ñ¿½ÀÁ¤¬¤¢¤Ã¤¿¾ì¹ç¤Ë¤Ï, ¼«Æ°Åª¤ËµñÈݤµ¤ì\n"
+"»Ê²ñ¾µÇ§¥×¥í¥»¥¹¤Ë¤Ï¤«¤±¤Þ¤»¤ó. 1¹Ô¤Ë¤Ä¤­°ì¤Ä²ñ°÷¥¢¥É¥ì¥¹¤ò\n"
+"µ­Æþ¤·¤Æ¤¯¤À¤µ¤¤; Àµµ¬É½¸½¤ò»È¤¦¤Ë¤Ï¹Ô¤ÎºÇ½é¤ò ^ ¤Ç»Ï¤á¤Æ¤¯¤À¤µ¤¤."
+
+#: Mailman/Gui/Privacy.py:132
+msgid "Membership exposure"
+msgstr "²ñ°÷̾Êí¤Î¸ø³«"
+
+#: Mailman/Gui/Privacy.py:134
+msgid "Anyone"
+msgstr "ï¤Ç¤â"
+
+#: Mailman/Gui/Privacy.py:134
+msgid "List admin only"
+msgstr "¥ê¥¹¥È´ÉÍý¼Ô¤Î¤ß"
+
+#: Mailman/Gui/Privacy.py:134
+msgid "List members"
+msgstr "¥ê¥¹¥È²ñ°÷"
+
+#: Mailman/Gui/Privacy.py:135
+msgid "Who can view subscription list?"
+msgstr "郎²ñ°÷̾Êí¤ò¸«¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¤«?"
+
+#: Mailman/Gui/Privacy.py:137
+msgid ""
+"When set, the list of subscribers is protected by member or\n"
+" admin password authentication."
+msgstr ""
+"ÀßÄꤵ¤ì¤Æ¤¤¤ë¤È²ñ°÷̾Êí¤ò¸«¤ë¤Ë¤Ï ²ñ°÷¤Þ¤¿¤Ï´ÉÍý¼Ô¥Ñ¥¹¥ï¡¼¥É¤¬É¬Íפˤʤë. "
+
+#: Mailman/Gui/Privacy.py:141
+msgid ""
+"Show member addresses so they're not directly recognizable\n"
+" as email addresses?"
+msgstr ""
+"²ñ°÷¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤òɽ¼¨¤¹¤ë¤È¤­¤Ë, \n"
+" ¥¢¥É¥ì¥¹¤Ç¤¢¤ë¤Èµ¤ÉÕ¤«¤ì¤Ê¤¤¤è¤¦¤Ëɽ¼¨¤·¤Þ¤¹¤«?"
+
+#: Mailman/Gui/Privacy.py:143
+msgid ""
+"Setting this option causes member email addresses to be\n"
+" transformed when they are presented on list web pages (both in\n"
+" text and as links), so they're not trivially recognizable as\n"
+" email addresses. The intention is to prevent the addresses\n"
+" from being snarfed up by automated web scanners for use by\n"
+" spammers."
+msgstr ""
+"¤³¤Î¥ª¥×¥·¥ç¥ó¤òÀßÄꤹ¤ë¤È²ñ°÷¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹\n"
+"¤Ï (ʸ¤Ç¤â¥ê¥ó¥¯¤Ç¤â)´Êñ¤Ë¤Ï¥á¡¼¥ë¥¢¥É¥ì¥¹¤Ç¤¢¤ë ¤³¤È\n"
+"¤¬Ê¬¤«¤é¤Ê¤¤¤è¤¦¤ËÊÑ´¹¤µ¤ì¤Þ¤¹. ¤³¤ì¤Ï, SPAMmer ¤Ë\n"
+"¼«Æ° Web ¥¹¥­¥ã¥Ê¤ò »È¤Ã¤Æ¥á¡¼¥ë¥¢¥É¥ì¥¹¤ò\n"
+"¤«¤­½¸¤á¤é¤ì¤Ê¤¤¤è¤¦¤Ë ¤¹¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¹."
+
+#: Mailman/Gui/Privacy.py:153
+msgid ""
+"When a message is posted to the list, a series of\n"
+" moderation steps are take to decide whether the a moderator "
+"must\n"
+" first approve the message or not. This section contains the\n"
+" controls for moderation of both member and non-member postings.\n"
+"\n"
+" <p>Member postings are held for moderation if their\n"
+" <b>moderation flag</b> is turned on. You can control whether\n"
+" member postings are moderated by default or not.\n"
+"\n"
+" <p>Non-member postings can be automatically\n"
+" <a href=\"?VARHELP=privacy/sender/accept_these_nonmembers\"\n"
+" >accepted</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/hold_these_nonmembers\">held "
+"for\n"
+" moderation</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/reject_these_nonmembers\"\n"
+" >rejected</a> (bounced), or\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >discarded</a>,\n"
+" either individually or as a group. Any\n"
+" posting from a non-member who is not explicitly accepted,\n"
+" rejected, or discarded, will have their posting filtered by the\n"
+" <a "
+"href=\"?VARHELP=privacy/sender/generic_nonmember_action\">general\n"
+" non-member rules</a>.\n"
+"\n"
+" <p>In the text boxes below, add one address per line; start the\n"
+" line with a ^ character to designate a <a href=\n"
+" \"http://www.python.org/doc/current/lib/module-re.html\"\n"
+" >Python regular expression</a>. When entering backslashes, do "
+"so\n"
+" as if you were using Python raw strings (i.e. you generally "
+"just\n"
+" use a single backslash).\n"
+"\n"
+" <p>Note that non-regexp matches are always done first."
+msgstr ""
+"¥ê¥¹¥È¤Ë¥á¡¼¥ë¤¬Åê¹Æ¤µ¤ì¤ë¤È, °ìÏ¢¤Î»Ê²ñ¼ê³¤­¤ò·Ð¤Æ, »Ê²ñ¼Ô¤¬¤½¤Î¥á¡¼¥ë¤ò\n"
+"¾µÇ§¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤«¤É¤¦¤«¤ò·èÄꤷ¤Þ¤¹. ¤³¤Î¥»¥¯¥·¥ç¥ó¤Ç¤Ï, ²ñ°÷Èó²ñ°÷\n"
+"¤ÎξÊý¤ÎÅê¹Æ¤Ë¤Ä¤¤¤Æ¤Î»Ê²ñ¼ê³¤­¤òÀ©¸æ¤·¤Þ¤¹. \n"
+"\n"
+"<p>²ñ°÷¤ÎÅê¹Æ¤Ï <b>ȯ¸ÀÀ©¸Â¥Õ¥é¥°</b>¤¬¥ª¥ó¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È, »Ê²ñ¼Ô\n"
+"¤Î¾µÇ§¤¬½Ð¤ë¤Þ¤ÇÊÝᤵ¤ì¤Þ¤¹. "
+"´ÉÍý¼Ô¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç²ñ°÷Åê¹Æ¤ò»Ê²ñÉÕ¤­¤Ë¤¹¤ë¤«\n"
+"¤É¤¦¤«¤òÀ©¸æ¤Ç¤­¤Þ¤¹.\n"
+"\n"
+"<p>Èó²ñ°÷¤ÎÅê¹Æ¤Ï¼«Æ°Åª¤Ë\n"
+"<a "
+"href=\"?VARHELP=privacy/sender/accept_these_nonmembers\">¾µÇ§¤µ¤ì¤ë</a>¤«\n"
+"<a "
+"href=\"?VARHELP=privacy/sender/hold_these_nonmembers\">»Ê²ñ¼Ô¤Ë²ó¤µ¤ì¤ë</a>¤«"
+"\n"
+"<a "
+"href=\"?VARHELP=privacy/sender/reject_these_nonmembers\">µñÈݤµ¤ì¤ë</a>¤«\n"
+"<a "
+"href=\"?VARHELP=privacy/sender/discard_these_nonmembers\">ÇË´þ¤µ¤ì¤ë</a>¤«\n"
+"¤Î¤É¤ì¤«¤ò¸ÄÊ̤ޤ¿¤Ï¥°¥ë¡¼¥×Ê̤ËÁªÂò¤Ç¤­¤Þ¤¹.\n"
+"ÌÀ¼¨Åª¤Ë¾µÇ§¡¦µñÈݤޤ¿¤ÏÇË´þ¤ÎÀßÄ꤬¤Ê¤µ¤ì¤Æ¤¤¤Ê¤¤Èó²ñ°÷¤ÎÅê¹Æ¤Ï\n"
+"<a href=\"?VARHELP=privacy/sender/generic_nonmember_action\">°ìÈ̤ÎÈó²ñ°÷\n"
+"¤Îµ¬Â§</a>¤Ë½¾¤Ã¤Æ¤Õ¤ë¤¤¤Ë¤«¤±¤é¤ì¤Þ¤¹.\n"
+"<p>²¼¤Î¥Æ¥­¥¹¥È¥Ü¥Ã¥¯¥¹¤Ç, 1¹Ô¤Ë¤Ä¤­¤Ò¤È¤Ä¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤òÅÐÏ¿¤Ç¤­¤Þ¤¹;\n"
+"<a href=\"http://www.python.org/doc/current/lib/module-re.html\">Python¤Î\n"
+"Àµµ¬É½¸½</a>¤Ç¤¢¤ë¤³¤È¤òɽ¤¹¤Î¤Ë¹Ô¤ÎºÇ½é¤ò ^ ¤Ç»Ï¤á¤Æ¤¯¤À¤µ¤¤.\n"
+"¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¤òÆþ¤ì¤ë¤È¤­¤Ï Python ¤Î raw string ¤ò»È¤Ã¤Æ¤¤¤ë¤è¤¦¤Ë¤·¤Æ\n"
+"¤¯¤À¤µ¤¤. (¤Ä¤Þ¤ê, ñ¤Ë1¸Ä¤Î¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¤òÆþ¤ì¤ì¤Ð¤¤¤¤¤À¤±¤Ç¤¹)\n"
+"\n"
+"<p>Àµµ¬É½¸½¤Ç¤Ê¤¤¥Þ¥Ã¥Á¥ó¥°¤òÀè¤Ë¼Â¹Ô¤¹¤ë¤³¤È¤Ë¤âÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤."
+
+#: Mailman/Gui/Privacy.py:186
+msgid "Member filters"
+msgstr "²ñ°÷¥Õ¥£¥ë¥¿¡¼"
+
+#: Mailman/Gui/Privacy.py:189
+msgid "By default, should new list member postings be moderated?"
+msgstr "¥Ç¥Õ¥©¥ë¥È¤Ç, ¿·²ñ°÷¤«¤é¤ÎÅê¹Æ¤ÏÀ©¸Â¤·¤Þ¤¹¤«?"
+
+#: Mailman/Gui/Privacy.py:191
+msgid ""
+"Each list member has a <em>moderation flag</em> which says\n"
+" whether messages from the list member can be posted directly "
+"to\n"
+" the list, or must first be approved by the list moderator. "
+"When\n"
+" the moderation flag is turned on, list member postings must be\n"
+" approved first. You, the list administrator can decide whether "
+"a\n"
+" specific individual's postings will be moderated or not.\n"
+"\n"
+" <p>When a new member is subscribed, their initial moderation "
+"flag\n"
+" takes its value from this option. Turn this option off to "
+"accept\n"
+" member postings by default. Turn this option on to, by "
+"default,\n"
+" moderate member postings first. You can always manually set "
+"an\n"
+" individual member's moderation bit by using the\n"
+" <a href=\"%(adminurl)s/members\">membership management\n"
+" screens</a>."
+msgstr ""
+"¸Ä¡¹¤Î¥ê¥¹¥È²ñ°÷¤Ë¤Ï<em>ȯ¸ÀÀ©¸Â¥Õ¥é¥°</em>¤¬¤¢¤Ã¤Æ, ¤½¤Î²ñ°÷¤¬Ä¾Àܥꥹ¥È¤Ë\n"
+"Åê¹Æ¤Ç¤­¤ë¤«, ¤¢¤ë¤¤¤Ï»Ê²ñ¼Ô¤Î¾µÇ§¤òɬÍפȤ¹¤ë¤«¤ò·è¤á¤Æ¤¤¤Þ¤¹.\n"
+"¤â¤·, ȯ¸ÀÀ©¸Â¥Õ¥é¥°¤¬ ON ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¥ê¥¹¥È²ñ°÷¤«¤é¤ÎÅê¹Æ¤Ï, "
+"¾µÇ§¥×¥í¥»¥¹\n"
+"¤ò·Ð¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó. ¤¢¤Ê¤¿¤Ï¥ê¥¹¥È´ÉÍý¼Ô¤È¤·¤Æ, ÆÃÄê¤Î²ñ°÷¤«¤é¤ÎÅê¹Æ¤ò\n"
+"À©¸Â¤¹¤ë¤«¤É¤¦¤«¤Î·èÄ긢¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹.\n"
+"\n"
+"<p>ºÇ½é¤Ë¿·¤·¤¯²ñ°÷¤¬Æþ²ñ¤¹¤ë¤È, ¤½¤Î²ñ°÷¤ÎºÇ½é¤Îȯ¸ÀÀ©¸Â¥Õ¥é¥°¤¬, ¤³¤³¤Ç\n"
+"Äê¤á¤¿ÃͤËÀßÄꤵ¤ì¤Þ¤¹. ¥Ç¥Õ¥©¥ë¥È¤Ç²ñ°÷¤«¤é¤ÎÅê¹Æ¤ò¾µÇ§¤¹¤ë¾ì¹ç¤Ë¤Ï, "
+"¤³¤³¤Ç\n"
+"¥ª¥×¥·¥ç¥ó¤ò OFF (¤¤¤¤¤¨)¤Ë¤·¤Æ¤¯¤À¤µ¤¤. ¥Ç¥Õ¥©¥ë¥È¤Ç¾µÇ§¥×¥í¥»¥¹¤òµ¯Æ°¤¹¤ë\n"
+"¾ì¹ç¤Ë¤Ï¤³¤ì¤ò ON (¤Ï¤¤) ¤Ë¤·¤Æ¤¯¤À¤µ¤¤. ¸Ä¡¹¤Î²ñ°÷¤Îȯ¸ÀÀ©¸Â¥Õ¥é¥°¤Ï\n"
+"<a href=\"%(adminurl)s/members\">²ñ°÷´ÉÍý²èÌÌ</a>¤«¤é, ¤¤¤Ä¤Ç¤â¼êư¤ÇÀßÄê\n"
+"¤Ç¤­¤Þ¤¹."
+
+#: Mailman/Gui/Privacy.py:207 Mailman/Gui/Privacy.py:281
+msgid "Hold"
+msgstr "ÊÝα"
+
+#: Mailman/Gui/Privacy.py:208
+msgid ""
+"Action to take when a moderated member posts to the\n"
+" list."
+msgstr "À©¸ÂÉÕ¤­²ñ°÷¤«¤éÅê¹Æ¤¬¤¢¤Ã¤¿¤È¤­¤Îưºî."
+
+#: Mailman/Gui/Privacy.py:210
+msgid ""
+"<ul><li><b>Hold</b> -- this holds the message for approval\n"
+" by the list moderators.\n"
+"\n"
+" <p><li><b>Reject</b> -- this automatically rejects the message "
+"by\n"
+" sending a bounce notice to the post's author. The text of the\n"
+" bounce notice can be <a\n"
+" href=\"?VARHELP=privacy/sender/member_moderation_notice\"\n"
+" >configured by you</a>.\n"
+"\n"
+" <p><li><b>Discard</b> -- this simply discards the message, "
+"with\n"
+" no notice sent to the post's author.\n"
+" </ul>"
+msgstr ""
+"<ul><li><b>ÊÝα</b> -- ¥ê¥¹¥È»Ê²ñ¼Ô¤Î¾µÇ§¤ò¼õ¤±¤ë\n"
+" ¤¿¤á, ¥á¡¼¥ë¤òÊÝα¤·¤Þ¤¹.\n"
+"\n"
+"<p><li><b>µñÈÝ</b> -- ¼«Æ°Åª¤Ë¥á¡¼¥ë¤òµñÈݤ·¤Æ, ¤½¤Î¤³¤È¤ò\n"
+" Åê¹Æ¼Ô¤Ë¥á¡¼¥ë¤ÇÃΤ餻¤Þ¤¹. µñÈÝÄÌÃΤÎʸ¤Ï\n"
+" <a href=\"?VARHELP=privacy/sender/member_moderation_notice\">\n"
+" ÀßÄꤹ¤ë¤³¤È¤¬</a>¤Ç¤­¤Þ¤¹.\n"
+"\n"
+"<p><li><b>ÇË´þ</b> -- Åê¹Æ¼Ô¤ËÄÌÃΤ»¤º¤Ë¥á¡¼¥ë¤òÇË´þ¤·¤Þ¤¹.\n"
+"</ul>"
+
+#: Mailman/Gui/Privacy.py:224
+msgid ""
+"Text to include in any\n"
+" <a href=\"?VARHELP/privacy/sender/member_moderation_action\"\n"
+" >rejection notice</a> to\n"
+" be sent to moderated members who post to this list."
+msgstr ""
+"Åê¹ÆÀ©¸ÂÉÕ¤­²ñ°÷¤«¤é¤ÎÅê¹Æ¤ËÂФ·¤Æ\n"
+"<a href=\"?VARHELP/privacy/sender/member_moderation_action\"\n"
+">µñÈÝÄÌÃÎ</a> ¤Ë´Þ¤á¤ëʸ."
+
+#: Mailman/Gui/Privacy.py:229
+msgid "Non-member filters"
+msgstr "Èó²ñ°÷¥Õ¥£¥ë¥¿¡¼"
+
+#: Mailman/Gui/Privacy.py:232
+msgid ""
+"List of non-member addresses whose postings should be\n"
+" automatically accepted."
+msgstr "Èó²ñ°÷¤Ç¤Ï¤¢¤ë¤¬Åê¹Æ¤ò¼«Æ°Åª¤Ë¾µÇ§¤¹¤Ù¤­¥¢¥É¥ì¥¹¤Î¥ê¥¹¥È."
+
+#: Mailman/Gui/Privacy.py:235
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" accepted with no further moderation applied. Add member\n"
+" addresses one per line; start the line with a ^ character to\n"
+" designate a regular expression match."
+msgstr ""
+"¤³¤ì¤é¤ÎÈó²ñ°÷¤«¤é¤ÎÅê¹Æ¤¬¤¢¤Ã¤¿¾ì¹ç¤Ë¤Ï, ¼«Æ°Åª¤Ë¾µÇ§¤µ¤ì\n"
+"»Ê²ñ¥×¥í¥»¥¹¤ÏɬÍפȤ·¤Þ¤»¤ó. 1¹Ô¤Ë¤Ä¤­°ì¤Ä²ñ°÷¥¢¥É¥ì¥¹¤ò\n"
+"µ­Æþ¤·¤Æ¤¯¤À¤µ¤¤; Àµµ¬É½¸½¤ò»È¤¦¤Ë¤Ï¹Ô¤ÎºÇ½é¤ò ^ ¤Ç»Ï¤á¤Æ¤¯¤À¤µ¤¤."
+
+#: Mailman/Gui/Privacy.py:241
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" immediately held for moderation."
+msgstr "Åê¹Æ¤¬¤¢¤ë¤È»Ê²ñ¾µÇ§¤Î¤¿¤áľ¤Á¤ËÊÝᤵ¤ì¤ëÈó²ñ°÷¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹"
+
+#: Mailman/Gui/Privacy.py:244
+msgid ""
+"Postings from any of these non-members will be immediately\n"
+" and automatically held for moderation by the list moderators.\n"
+" The sender will receive a notification message which will "
+"allow\n"
+" them to cancel their held message. Add member addresses one "
+"per\n"
+" line; start the line with a ^ character to designate a regular\n"
+" expression match."
+msgstr ""
+"¤³¤ì¤é¤ÎÈó²ñ°÷¤«¤é¤ÎÅê¹Æ¤¬¤¢¤Ã¤¿¾ì¹ç¤Ë¤Ï, »Ê²ñ¼Ô¤Î¾µÇ§¤ò¼õ¤±¤ë¤¿¤á\n"
+"¼«Æ°Åª¤Ëľ¤Á¤ËÊÝᤵ¤ì¤Þ¤¹. ¥á¡¼¥ë¤ÎÅê¹Æ¼Ô¤Ë¤ÏÊÝα¤·¤¿¤³¤È¤¬ÄÌÃΤµ¤ì, \n"
+"¥á¡¼¥ë¤ò¼«Ê¬¤Ç¥­¥ã¥ó¥»¥ë¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹. 1¹Ô¤Ë¤Ä¤­°ì¤Ä²ñ°÷¥¢¥É¥ì¥¹¤ò\n"
+"µ­Æþ¤·¤Æ¤¯¤À¤µ¤¤; Àµµ¬É½¸½¤ò»È¤¦¤Ë¤Ï¹Ô¤ÎºÇ½é¤ò ^ ¤Ç»Ï¤á¤Æ¤¯¤À¤µ¤¤."
+
+#: Mailman/Gui/Privacy.py:252
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" automatically rejected."
+msgstr "Åê¹Æ¤¬¤¢¤ë¤È¼«Æ°Åª¤ËµñÈݤ¹¤ëÈó²ñ°÷¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹"
+
+#: Mailman/Gui/Privacy.py:255
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" rejected. In other words, their messages will be bounced back "
+"to\n"
+" the sender with a notification of automatic rejection. This\n"
+" option is not appropriate for known spam senders; their "
+"messages\n"
+" should be\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >automatically discarded</a>.\n"
+"\n"
+" <p>Add member addresses one per line; start the line with a ^\n"
+" character to designate a regular expression match."
+msgstr ""
+"¤³¤ì¤é¤ÎÈó²ñ°÷¤«¤é¤ÎÅê¹Æ¤¬¤¢¤Ã¤¿¾ì¹ç¤Ë¤Ï, ¼«Æ°Åª¤ËµñÈݤ·¤Þ¤¹.\n"
+"¤Ä¤Þ¤ê, ¼«Æ°µñÈݤ·¤¿¤³¤È¤ÎÄÌÃΤȰì½ï¤Ë¥á¡¼¥ë¤òÄ·¤ÍÊÖ¤·¤Þ¤¹.\n"
+"¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï´ûÃΤΠSPAMÁ÷¿®¼Ô¤Ë¤ÏŬÀڤǤϤ¢¤ê¤Þ¤»¤ó. ¤½¤Î¤è¤¦¤Ê¥á¡¼¥ë¤Ï\n"
+"<a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"> ¼«Æ°Åª¤Ë\n"
+"ÇË´þ</a>¤¹¤ë¤È¤è¤¤¤Ç¤·¤ç¤¦.\n"
+"\n"
+"<p>1¹Ô¤Ë¤Ä¤­°ì¤Ä¥¢¥É¥ì¥¹¤ò\n"
+"µ­Æþ¤·¤Æ¤¯¤À¤µ¤¤; Àµµ¬É½¸½¤ò»È¤¦¤Ë¤Ï¹Ô¤ÎºÇ½é¤ò ^ ¤Ç»Ï¤á¤Æ¤¯¤À¤µ¤¤."
+
+#: Mailman/Gui/Privacy.py:267
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" automatically discarded."
+msgstr "Åê¹Æ¤¬¤¢¤ë¤È¼«Æ°Åª¤ËÇË´þ¤¹¤ëÈó²ñ°÷¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹"
+
+#: Mailman/Gui/Privacy.py:270
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" discarded. That is, the message will be thrown away with no\n"
+" further processing or notification. The sender will not "
+"receive\n"
+" a notification or a bounce, however the list moderators can\n"
+" optionally <a "
+"href=\"?VARHELP=privacy/sender/forward_auto_discards\"\n"
+" >receive copies of auto-discarded messages.</a>.\n"
+"\n"
+" <p>Add member addresses one per line; start the line with a ^\n"
+" character to designate a regular expression match."
+msgstr ""
+"¤³¤ì¤é¤ÎÈó²ñ°÷¤«¤é¤ÎÅê¹Æ¤¬¤¢¤Ã¤¿¾ì¹ç¤Ë¤Ï, ¼«Æ°Åª¤ËÇË´þ¤·¤Þ¤¹.\n"
+"¤Ä¤Þ¤ê, ¥á¡¼¥ë¤Ï¼Î¤Æ¤é¤ì, ½èÍý¤äÄÌÃΤϤ¢¤ê¤Þ¤»¤ó. Á÷¿®¼Ô¤Ë¤ÏÄÌÃΤâ\n"
+"ÊÖÁ÷¤â¤¢¤ê¤Þ¤»¤ó¤¬, ¥ª¥×¥·¥ç¥ó¤ÎÀßÄê¤Ç¥ê¥¹¥È»Ê²ñ¼Ô¤Ï\n"
+"<a href=\"?VARHELP=privacy/sender/forward_auto_discards\">\n"
+"ÇË´þ¤·¤¿¥á¡¼¥ë¤Î¥³¥Ô¡¼¤ò¼õ¤±¼è¤ë</a>¤³¤È¤¬¤Ç¤­¤Þ¤¹.\n"
+"<p>1¹Ô¤Ë¤Ä¤­°ì¤Ä¥¢¥É¥ì¥¹¤ò\n"
+"µ­Æþ¤·¤Æ¤¯¤À¤µ¤¤; Àµµ¬É½¸½¤ò»È¤¦¤Ë¤Ï¹Ô¤ÎºÇ½é¤ò ^ ¤Ç»Ï¤á¤Æ¤¯¤À¤µ¤¤."
+
+#: Mailman/Gui/Privacy.py:282
+msgid ""
+"Action to take for postings from non-members for which no\n"
+" explicit action is defined."
+msgstr "ưºî¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤Èó²ñ°÷¤«¤é¤ÎÅê¹Æ¤¬¤¢¤Ã¤¿¾ì¹ç¤Îưºî."
+
+#: Mailman/Gui/Privacy.py:285
+msgid ""
+"When a post from a non-member is received, the message's\n"
+" sender is matched against the list of explicitly\n"
+" <a href=\"?VARHELP=privacy/sender/accept_these_nonmembers\"\n"
+" >accepted</a>,\n"
+" <a "
+"href=\"?VARHELP=privacy/sender/hold_these_nonmembers\">held</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/reject_these_nonmembers\"\n"
+" >rejected</a> (bounced), and\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >discarded</a> addresses. If no match is found, then this "
+"action\n"
+" is taken."
+msgstr ""
+"Èó²ñ°÷¤«¤é¤ÎÅê¹Æ¤ò¼õ¤±¼è¤Ã¤¿¤È¤­, ¥á¡¼¥ë¤ÎÁ÷¿®¼Ô¤¬\n"
+"<a href=\"?VARHELP=privacy/sender/accept_these_nonmembers\">¾µÇ§</a>\n"
+"¤Þ¤¿¤Ï, \n"
+"<a href=\"?VARHELP=privacy/sender/hold_these_nonmembers\">ÊÝα</a>¡¦\n"
+"<a "
+"href=\"?VARHELP=privacy/sender/reject_these_nonmembers\">µñÈÝ(ÊÖÁ÷)</a>¡¦\n"
+"<a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\">ÇË´þ</a>\n"
+"¤Î¥¢¥É¥ì¥¹¥ê¥¹¥È¤Ë¤¢¤ë¤«¤ò¥Á¥§¥Ã¥¯¤·¤Þ¤¹. ¤â¤·, ̵¤±¤ì¤Ð\n"
+"¤³¤Îưºî¤¬Å¬ÍѤµ¤ì¤Þ¤¹."
+
+#: Mailman/Gui/Privacy.py:297
+msgid ""
+"Should messages from non-members, which are automatically\n"
+" discarded, be forwarded to the list moderator?"
+msgstr "Èó²ñ°÷¤Ç¼«Æ°Åª¤ËÇË´þ¤¹¤ë¤È·è¤á¤¿¥á¡¼¥ë¤Ï¥ê¥¹¥È»Ê²ñ¼Ô¤ØÅ¾Á÷¤·¤Þ¤¹¤«?"
+
+#: Mailman/Gui/Privacy.py:303
+msgid ""
+"This section allows you to configure various filters based on\n"
+" the recipient of the message."
+msgstr ""
+"¤³¤Î¥»¥¯¥·¥ç¥ó¤Ç¤Ï¥á¡¼¥ë¤Î¼õ¿®¼Ô¤Ë´ð¤Å¤¯ÍÍ¡¹¤Î¥Õ¥£¥ë¥¿¡¼¤Î\n"
+"ÀßÄê¤ò¹Ô¤¤¤Þ¤¹."
+
+#: Mailman/Gui/Privacy.py:306
+msgid "Recipient filters"
+msgstr "¼õ¿®¼Ô¥Õ¥£¥ë¥¿¡¼"
+
+#: Mailman/Gui/Privacy.py:310
+msgid ""
+"Must posts have list named in destination (to, cc) field\n"
+" (or be among the acceptable alias names, specified below)?"
+msgstr ""
+"Åê¹Æ¤Ë¤Ï¥ê¥¹¥È̾¤¬¤¢¤ÆÀè(to, cc) ¤Ë´Þ¤Þ¤ì¤Æ¤¤\n"
+"¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤Ç¤·¤ç¤¦¤«? (¤Þ¤¿¤Ï°Ê²¼¤Ë»ØÄê\n"
+"¤¹¤ëÊÌ̾¤ÎÃæ¤ËÆþ¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê\n"
+"¤é¤Ê¤¤)?"
+
+#: Mailman/Gui/Privacy.py:313
+msgid ""
+"Many (in fact, most) spams do not explicitly name their\n"
+" myriad destinations in the explicit destination addresses - in\n"
+" fact often the To: field has a totally bogus address for\n"
+" obfuscation. The constraint applies only to the stuff in the\n"
+" address before the '@' sign, but still catches all such spams.\n"
+"\n"
+" <p>The cost is that the list will not accept unhindered any\n"
+" postings relayed from other addresses, unless\n"
+"\n"
+" <ol>\n"
+" <li>The relaying address has the same name, or\n"
+"\n"
+" <li>The relaying address name is included on the options "
+"that\n"
+" specifies acceptable aliases for the list.\n"
+"\n"
+" </ol>"
+msgstr ""
+"¿¤¯¤Î(¼ÂºÝ, ¤Û¤È¤ó¤É¤Î) SPAM ¤ÏÂô»³¤Î°¸Àè¤ò\n"
+"ÌÀ¼¨Åª¤Ë °¸À襢¥É¥ì¥¹¤Ë½ñ¤­Ï¢¤Í¤¿¤ê¤·¤Ê¤¤¤â¤Î¤Ç¤¹. \n"
+"¼ÂºÝ¤Ë To: ¤ËÆþ¤Ã¤Æ¤¤¤ë¤Î¤Ï, ¤Þ¤ë¤Ã¤­¤ê¤Ç¤¿¤é¤á¤Î\n"
+"¥¢¥É¥ì¥¹¤Ç¤¢¤ë¤³¤È¤¬¤è¤¯¤¢¤ê¤Þ¤¹. ¤³¤³¤Ç¤ÎÀ©¸ÂÊýË¡\n"
+"¤Ï '@' µ­¹æ¤ÎÁ°¤Ë¤¢¤ë̾Á°¤À¤±¤ò»È¤¤¤Þ¤¹¤¬, ¤³¤ì¤À¤±\n"
+"¤Ç¤â¤Û¤È¤ó¤É¤Î SPAM ¤òÊá¤é¤¨¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹.\n"
+"\n"
+"<p>Âå½þ¤È¤·¤Æ, ¾¤Î¥¢¥É¥ì¥¹¤«¤é¤½¤Î¤Þ¤ÞÃæ·ÑžÁ÷¤µ¤ì¤¿\n"
+"¥á¡¼¥ë¤ò¼õ¤±¤Ä¤±¤Æ¤¯¤ì¤Þ¤»¤ó. ⤷\n"
+"<ol>\n"
+" <li>Ãæ·Ñ¤Î¥¢¥É¥ì¥¹¤¬Æ±¤¸Ì¾Á°¤ò»ý¤Ã¤Æ¤¤¤ë¤«, Ëô¤Ï \n"
+" <li>Ãæ·Ñ¤Î¥¢¥É¥ì¥¹¤òÊÌ̾¥ê¥¹¥È¤ËÆþ¤ì¤Æ¤ª¤¯ \n"
+"</ol>\n"
+"¤È, ¼õ¤±ÉÕ¤±¤Æ¤¯¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹. "
+
+#: Mailman/Gui/Privacy.py:331
+msgid ""
+"Alias names (regexps) which qualify as explicit to or cc\n"
+" destination names for this list."
+msgstr ""
+"ÌÀ¼¨Åª¤Ê To: ¤Þ¤¿¤Ï Cc: ¤ËÆþ¤Ã¤Æ¤¤¤ë¤È ¤³¤Î¥ê¥¹\n"
+" ¥È¤Ø¤ÎÇÛÁ÷¤ò¹Ô¤¦¤è¤¦¤ÊÊÌ̾(Àµµ¬É½¸½)."
+
+#: Mailman/Gui/Privacy.py:334
+msgid ""
+"Alternate addresses that are acceptable when\n"
+" `require_explicit_destination' is enabled. This option takes "
+"a\n"
+" list of regular expressions, one per line, which is matched\n"
+" against every recipient address in the message. The matching "
+"is\n"
+" performed with Python's re.match() function, meaning they are\n"
+" anchored to the start of the string.\n"
+" \n"
+" <p>For backwards compatibility with Mailman 1.1, if the regexp\n"
+" does not contain an `@', then the pattern is matched against "
+"just\n"
+" the local part of the recipient address. If that match fails, "
+"or\n"
+" if the pattern does contain an `@', then the pattern is "
+"matched\n"
+" against the entire recipient address.\n"
+" \n"
+" <p>Matching against the local part is deprecated; in a future\n"
+" release, the pattern will always be matched against the entire\n"
+" recipient address."
+msgstr ""
+"`require_explicit_destination' ¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¤­\n"
+" Âå¤ï¤ê¤Î̾Á°¤È¤·¤Æ¼õÍý¤Ç¤­¤ë¥¢¥É¥ì¥¹. ¤³¤ì¤ÏÁ´¤Æ¤Î¼õ¿®¿Í\n"
+" ¥¢¥É¥ì¥¹¤Ë¥Þ¥Ã¥Á¤µ¤»¤ëÀµµ¬É½¸½¤Î¥ê¥¹¥È¤Ç 1¹Ô¤Ë1¤Ä¤º¤Ä½ñ\n"
+" ¤¯¤³¤È¤¬¤Ç¤­¤Þ¤¹. ¥Þ¥Ã¥Á¥ó¥°¤Ï Python ¤Î re.match() ¤ò\n"
+" »È¤¤¤Þ¤¹¤Î¤Ç, ʸ»úÎó¤ÎºÇ½é¤Ë¥¢¥ó¥«¡¼¤¬¤¢¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹. \n"
+"\n"
+"<p>Mailman 1.1 ¤È¤Î¸ß´¹À­¤Î¤¿¤á, Àµµ¬É½¸½¤¬ `@' ¤ò´Þ¤Þ¤Ê¤¤\n"
+" ¤È¤­, ¥Ñ¥¿¡¼¥ó¥Þ¥Ã¥Á¥ó¥°¤Ï¼õ¿®¥¢¥É¥ì¥¹¤Î¥í¡¼¥«¥ë¥Ñ¡¼¥È ¤Ë\n"
+" ¤Î¤ß¹Ô¤ï¤ì¤Þ¤¹. ¤â¤·¥Þ¥Ã¥Á¥ó¥°¤Ë¼ºÇÔ¤·¤¿¾ì¹ç ¤Þ¤¿¤Ï¥Ñ¥¿¡¼¥ó¤Ë\n"
+" `@' ¤¬´Þ¤Þ¤ì¤ë¾ì¹ç¤Ë¤Ï, ¼õ¿®¥¢¥É¥ì¥¹Á´ÂΤËÂФ·¤Æ¥Ñ¥¿¡¼¥ó¥Þ¥Ã\n"
+" ¥Á¥ó¥°¤ò¹Ô¤¤¤Þ¤¹. \n"
+"\n"
+"<p>¾­Íè¤Î¥ê¥ê¡¼¥¹¤Ë¤ª¤¤¤Æ¤Ï¥í¡¼¥«¥ë¥Ñ¡¼¥È¤Ø¤Î¥Þ¥Ã¥Á¥ó¥°¤Ï\n"
+" ¹Ô¤ï¤ì¤º, ¼õ¿®¥¢¥É¥ì¥¹Á´ÂΤËÂФ·¤Æ¹Ô¤ï¤ì¤ë¤è¤¦¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦. "
+
+#: Mailman/Gui/Privacy.py:352
+msgid "Ceiling on acceptable number of recipients for a posting."
+msgstr "Åê¹Æ¥á¡¼¥ë¤Ë´Þ¤Þ¤ì¤ë¼õ¿®¿Í¤Î¿ô¤Î¾å¸ÂÃÍ."
+
+#: Mailman/Gui/Privacy.py:354
+msgid ""
+"If a posting has this number, or more, of recipients, it is\n"
+" held for admin approval. Use 0 for no ceiling."
+msgstr ""
+"¤â¤·Åê¹Æ¤Î°¸À褬¤³¤Î¿ô¤ò±Û¤¨¤Æ¤¤¤¿¤é, ´ÉÍý¼Ô¤Î\n"
+" ¾µÇ§¤òµá¤á¤Þ¤¹. ¾å¸Â̵¤·¤Î¾ì¹ç 0¤ËÀßÄꤷ¤Æ¤¯¤À¤µ¤¤. "
+
+#: Mailman/Gui/Privacy.py:359
+msgid ""
+"This section allows you to configure various anti-spam\n"
+" filters posting filters, which can help reduce the amount of "
+"spam\n"
+" your list members end up receiving.\n"
+" "
+msgstr ""
+"¤³¤Î¥»¥¯¥·¥ç¥ó¤Ç¤Ï, ÍÍ¡¹¤ÊÂÐSPAM¥Õ¥£¥ë¥¿¡¼¤ÎÀßÄê¤ò¤ª¤³¤Ê¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹.\n"
+"¤³¤ì¤Ë¤è¤ê, ¥ê¥¹¥È²ñ°÷¤¬¼õ¤±¼è¤ë SPAM ¤ÎÎ̤ò¸º¤é¤¹¤³¤È¤¬²Äǽ¤Ç¤¹."
+
+#: Mailman/Gui/Privacy.py:364
+msgid "Anti-Spam filters"
+msgstr "ÂÐSPAM¥Õ¥£¥ë¥¿¡¼"
+
+#: Mailman/Gui/Privacy.py:367
+msgid "Hold posts with header value matching a specified regexp."
+msgstr "»ØÄꤷ¤¿Àµµ¬É½¸½¤Ë¥Þ¥Ã¥Á¤¹¤ë¥Ø¥Ã¥À¤ÎÅê¹Æ¤ÏÊÝα¤¹¤ë."
+
+#: Mailman/Gui/Privacy.py:368
+msgid ""
+"Use this option to prohibit posts according to specific\n"
+" header values. The target value is a regular-expression for\n"
+" matching against the specified header. The match is done\n"
+" disregarding letter case. Lines beginning with '#' are "
+"ignored\n"
+" as comments.\n"
+"\n"
+" <p>For example:<pre>to: .*@public.com </pre> says to hold all\n"
+" postings with a <em>To:</em> mail header containing "
+"'@public.com'\n"
+" anywhere among the addresses.\n"
+"\n"
+" <p>Note that leading whitespace is trimmed from the regexp. "
+"This\n"
+" can be circumvented in a number of ways, e.g. by escaping or\n"
+" bracketing it."
+msgstr ""
+"¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤È»ØÄꤵ¤ì¤¿¥Ø¥Ã¥À¤ÎÆâÍÆ¤Ç\n"
+"Åê¹Æ¤ò¶Ø»ß¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹.\n"
+" Âоݤˤʤë¤Î¤Ï¤½¤Î¥Ø¥Ã¥À¤ËÂФ¹¤ëÀµµ¬É½¸½¤Ç¤¹.\n"
+" ¥Þ¥Ã¥Á¥ó¥°¤ÏÂçʸ»ú¡¦¾®Ê¸»ú¤ò¶èÊ̤»¤º¤Ë¹Ô¤ï¤ì, \n"
+" '#' ¤Ç»Ï¤Þ¤ë¹Ô¤Ï¥³¥á¥ó¥È¤È¤ß¤Ê¤µ¤ì¤Þ¤¹. \n"
+" <p>Îã¡§<pre>to: .*@public.com </pre>\n"
+" ¤Ï <em>to</em>(°¸Àè) ¤Î¥á¡¼¥ë¥Ø¥Ã¥À¤Î¥¢¥É¥ì¥¹¤Ç\n"
+" Ãæ¤Ë '@public.com' ¤¬¤É¤³¤«¤ËÆþ¤Ã¤Æ¤¤¤ë¤È¤¤¤¦°ÕÌ£¤Ç¤¹.\n"
+" <p>Àè¹Ô¤·¤Æ¶õÇò¤¬¤¢¤ë¾ì¹ç¤Ë¤Ï, ¤½¤³¤ÏÀµµ¬É½¸½¤«¤é¤Ï¤º¤µ¤ì¤Þ¤¹. \n"
+" ¤·¤«¤·Î㤨¤Ð¥¨¥¹¥±¡¼¥×¤ä¥Ö¥é¥±¥Ã¥È¤òÍѤ¤¤Æ, ¿¤¯¤Î\n"
+" ÊýË¡¤Ç²óÈò¤Ç¤­¤Þ¤¹."
+
+#: Mailman/Gui/Topics.py:28
+msgid "Topics"
+msgstr "ÏÃÂê"
+
+#: Mailman/Gui/Topics.py:36
+msgid "List topic keywords"
+msgstr "¥ê¥¹¥È¤ÎÏÃÂꥭ¡¼¥ï¡¼¥É"
+
+#: Mailman/Gui/Topics.py:38
+msgid "Disabled"
+msgstr "»ÈÍѤ·¤Ê¤¤"
+
+#: Mailman/Gui/Topics.py:38
+msgid "Enabled"
+msgstr "»ÈÍѤ¹¤ë"
+
+#: Mailman/Gui/Topics.py:39
+msgid "Should the topic filter be enabled or disabled?"
+msgstr "ÏÃÂê¥Õ¥£¥ë¥¿¡¼¤ò»ÈÍѤ·¤Þ¤¹¤«, ¤·¤Þ¤»¤ó¤«?"
+
+#: Mailman/Gui/Topics.py:41
+msgid ""
+"The topic filter categorizes each incoming email message\n"
+" according to <a\n"
+" "
+"href=\"http://www.python.org/doc/current/lib/module-re.html\">regular\n"
+" expression filters</a> you specify below. If the message's\n"
+" <code>Subject:</code> or <code>Keywords:</code> header contains "
+"a\n"
+" match against a topic filter, the message is logically placed\n"
+" into a topic <em>bucket</em>. Each user can then choose to "
+"only\n"
+" receive messages from the mailing list for a particular topic\n"
+" bucket (or buckets). Any message not categorized in a topic\n"
+" bucket registered with the user is not delivered to the list.\n"
+"\n"
+" <p>Note that this feature only works with regular delivery, "
+"not\n"
+" digest delivery.\n"
+"\n"
+" <p>The body of the message can also be optionally scanned for\n"
+" <code>Subject:</code> and <code>Keywords:</code> headers, as\n"
+" specified by the <a\n"
+" "
+"href=\"?VARHELP=topics/topics_bodylines_limit\">topics_bodylines_limit</a>\n"
+" configuration variable."
+msgstr ""
+"ÏÃÂê¥Õ¥£¥ë¥¿¡¼¤Ï, ¤¢¤Ê¤¿¤¬°Ê²¼¤ËÄêµÁ¤¹¤ë\n"
+"<a href=\"http://www.python.org/doc/current/lib/module-re.html\">Àµµ¬É½¸½\n"
+"¥Õ¥£¥ë¥¿¡¼</a> ¤Ë¤è¤Ã¤Æ, Æþ¤Ã¤Æ¤¯¤ë¥á¡¼¥ë¥á¥Ã¥»¡¼¥¸¤òʬÎष¤Þ¤¹.\n"
+"¤â¤·, ¥á¡¼¥ë¤Ë <code>Subject:</code> ¤Þ¤¿¤Ï <code>Keywords:</code> ¥Ø¥Ã¥À¤¬\n"
+"¤¢¤Ã¤Æ, ÏÃÂê¥Õ¥£¥ë¥¿¡¼¤ËŬ¹ç¤·¤¿¤é, "
+"¤½¤Î¥á¡¼¥ë¤ÏÏÀÍýŪ¤ËÏÃÂê¤Î<em>¥Ð¥±¥Ä</em>\n"
+"¤ËÆþ¤ì¤é¤ì¤Þ¤¹. ¼¡¤Ë, ²ñ°÷¤Ï¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ØÅê¹Æ¤µ¤ì¤¿¥á¡¼¥ë¤Î¤¦¤Á¤«¤é, \n"
+"ÆÃÄê¤ÎÏÃÂê¤Î¥Ð¥±¥Ä¤«¤é¤Î¤ß¤ò¼õ¤±¼è¤ë¤è¤¦¤Ë, ÁªÂò¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹.\n"
+"<p>\n"
+"¤³¤ì¤Ï, ÉáÄÌÇÛÁ÷¤Ë¤Î¤ßŬÍѲÄǽ¤Ç, "
+"¤Þ¤È¤áÆÉ¤ß¤Ç¤Ï»È¤¨¤Ê¤¤¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ.\n"
+"<p>\n"
+"¥á¡¼¥ëËÜʸ¤Ë<code>Subject:</code> ¤È <code>Keyword:</code>¤òÆþ¤ì¤Æ\n"
+"¤ª¤¯¤è¤¦¤Ë¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹. ¤³¤Î¾ì¹ç, \n"
+"<a "
+"href=\"?VARHELP=topics/topics_bodylines_limit\">topics_bodylines_limit</a>\n"
+"¤ÎÀßÄêÊÑ¿ô¤Ç²¿¹ÔÌܤޤǥ¹¥­¥ã¥ó¤¹¤ë¤«ÀßÄê¤Ç¤­¤Þ¤¹."
+
+#: Mailman/Gui/Topics.py:62
+msgid "How many body lines should the topic matcher scan?"
+msgstr "¥á¡¼¥ëËÜʸ¤Î²¿¹ÔÌܤޤÇÏÃÂê¤ò¥¹¥­¥ã¥ó¤·¤Þ¤¹¤«?"
+
+#: Mailman/Gui/Topics.py:64
+msgid ""
+"The topic matcher will scan this many lines of the message\n"
+" body looking for topic keyword matches. Body scanning stops "
+"when\n"
+" either this many lines have been looked at, or a "
+"non-header-like\n"
+" body line is encountered. By setting this value to zero, no "
+"body\n"
+" lines will be scanned (i.e. only the <code>Keywords:</code> "
+"and\n"
+" <code>Subject:</code> headers will be scanned). By setting "
+"this\n"
+" value to a negative number, then all body lines will be "
+"scanned\n"
+" until a non-header-like line is encountered.\n"
+" "
+msgstr ""
+"ÏÃÂê¤Î¥¹¥­¥ã¥ó¤Ç¤Ï, ¤³¤Î¹Ô¿ô¤À¤±ËÜʸ¤ÎÃæ¤«¤éÏÃÂê¤Î¥­¡¼¥ï¡¼¥É¤ò\n"
+"õ¤·¤Þ¤¹. ËÜʸ¤Î¥¹¥­¥ã¥ó¤Ï¤³¤Î¹Ô¿ô¤À¤±¤¢¤ë¤¤¤Ï, ¥Ø¥Ã¥À¤Ç¤Ê¤µ¤½¤¦¤Ê¹Ô¤¬\n"
+"½Ð¤Æ¤­¤¿¤é¥¹¥È¥Ã¥×¤·¤Þ¤¹. ¤³¤ÎÃͤò¥¼¥í¤Ë¤·¤Æ¤ª¤¯¤È, ËÜʸ¤Î¥¹¥­¥ã¥ó¤Ï\n"
+"¤ª¤³¤Ê¤¤¤Þ¤»¤ó. (¤Ä¤Þ¤ê <code>Keywords:</code> ¤È <code>Subject:</code>\n"
+"¥Ø¥Ã¥À¤À¤±¤ò¸«¤Þ¤¹) ¤³¤ÎÃͤòÉé¤Ë¤·¤Æ¤ª¤¯¤È, ¥Ø¥Ã¥À¤Ç¤Ê¤µ¤½¤¦¤Ê¹Ô¤¬\n"
+"½Ð¤Æ¤¯¤ë¤Þ¤ÇËÜʸ¤ò¥¹¥­¥ã¥ó¤·¤Þ¤¹."
+
+#: Mailman/Gui/Topics.py:75
+msgid "Topic keywords, one per line, to match against each message."
+msgstr "¥á¡¼¥ë¤Ë¥Þ¥Ã¥Á¤µ¤»¤ëÏÃÂꥭ¡¼¥ï¡¼¥É, 1¹Ô¤Ë¤Ä¤­1¸Ä"
+
+#: Mailman/Gui/Topics.py:77
+msgid ""
+"Each topic keyword is actually a regular expression, which is\n"
+" matched against certain parts of a mail message, specifically "
+"the\n"
+" <code>Keywords:</code> and <code>Subject:</code> message "
+"headers.\n"
+" Note that the first few lines of the body of the message can "
+"also\n"
+" contain a <code>Keywords:</code> and <code>Subject:</code>\n"
+" \"header\" on which matching is also performed."
+msgstr ""
+"¤½¤ì¤¾¤ì¤ÎÏÃÂꥭ¡¼¥ï¡¼¥É¤Ï¼ÂºÝ¤Ë¤ÏÀµµ¬É½¸½¤Ç¤¹. ¤³¤ì¤Ï¥á¡¼¥ë¤Î\n"
+"ÆÃÄê¤ÎÉôʬ, ¤Ä¤Þ¤ê<code>Keywords:</code> ¤È <code>Subject:</code>\n"
+"¥Ø¥Ã¥À¤Ë, Ŭ¹ç¤¹¤ë¤«¤ò¸¡ºº¤¹¤ë¤Î¤Ë»È¤ï¤ì¤Þ¤¹. ¥á¡¼¥ëËÜʸ¤ÎºÇ½é¤Ë\n"
+"<code>Keywords:</code> ¤È <code>Subject:</code> \"¥Ø¥Ã¥À\" ¤¬¤¢¤Ã¤Æ¤â\n"
+"Ŭ¹ç¸¡ºº(¥Þ¥Ã¥Á¥ó¥°)¤¬¹Ô¤Ê¤ï¤ì¤Þ¤¹."
+
+#: Mailman/Gui/Topics.py:116
+msgid ""
+"Topic specifications require both a name and\n"
+" a pattern. Incomplete topics will be ignored."
+msgstr ""
+"ÏÃÂê¤Î»ØÄê¤Ë¤Ï¤½¤Î̾Á°¤È¥Ñ¥¿¡¼¥ó¤¬É¬ÍפǤ¹.\n"
+"ÉÔ´°Á´¤ÊÏÃÂê¤Ï̵»ë¤µ¤ì¤Þ¤¹."
+
+#: Mailman/Gui/Topics.py:124
+msgid ""
+"The topic pattern `%(pattern)s' is not a\n"
+" legal regular expression. It will be discarded."
+msgstr ""
+"¤³¤ÎÏÃÂê¥Ñ¥¿¡¼¥ó `%(pattern)s' ¤ÏÀµ¤·¤¤Àµµ¬É½¸½¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó.\n"
+"ÇË´þ¤·¤Þ¤¹."
+
+#: Mailman/Gui/Usenet.py:25
+msgid "Mail&lt;-&gt;News&nbsp;gateways"
+msgstr "¥á¡¼¥ë &lt;-&gt; ¥Ë¥å¡¼¥¹Áê¸ßÇÛÁ÷"
+
+#: Mailman/Gui/Usenet.py:35
+msgid "Mail-to-News and News-to-Mail gateway services."
+msgstr "¥á¡¼¥ë¡¦¥Ë¥å¡¼¥¹Áê¸ßÇÛÁ÷¥µ¡¼¥Ó¥¹¤ÎÀßÄê."
+
+#: Mailman/Gui/Usenet.py:37
+msgid "News server settings"
+msgstr "¥Ë¥å¡¼¥¹¥µ¡¼¥Ð¤ÎÀßÄê"
+
+#: Mailman/Gui/Usenet.py:40
+msgid ""
+"The Internet address of the machine your News server is\n"
+" running on."
+msgstr "¥Ë¥å¡¼¥¹¥µ¡¼¥Ð¤¬²Ôư¤·¤Æ¤¤¤ë¥Þ¥·¥ó¤Î¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥¢¥É¥ì¥¹."
+
+#: Mailman/Gui/Usenet.py:42
+msgid ""
+"The News server is not part of Mailman proper. You have to\n"
+" already have access to a NNTP server, and that NNTP server has "
+"to\n"
+" recognize the machine this mailing list runs on as a machine\n"
+" capable of reading and posting news."
+msgstr ""
+"¥Ë¥å¡¼¥¹¥µ¡¼¥Ð¤Ï Mailman ¤Îµ¡Ç½¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó. ¤¢¤Ê¤¿¤Ï´û¤Ë\n"
+" NNTP ¥µ¡¼¥Ð¤Ë¥¢¥¯¥»¥¹¸¢¤ò»ý¤Ã¤Æ¤¤¤ëɬÍפ¬¤¢¤ê, ¤½¤Î\n"
+" NNTP¥µ¡¼¥Ð¤Ï¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤¬²Ôư¤·¤Æ¤¤¤ë¥Þ¥·¥ó¤ò\n"
+"¡Ö¥Ë¥å¡¼¥¹¤òÆÉ¤ß½ñ¤­¤Ç¤­¤ë¥Û¥¹¥È¡×¤Èǧ¼±¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó. "
+
+#: Mailman/Gui/Usenet.py:48
+msgid "The name of the Usenet group to gateway to and/or from."
+msgstr "Áê¸ßÇÛÁ÷¤ò¹Ô¤¦ Usenet ¤Î¥Ë¥å¡¼¥¹¥°¥ë¡¼¥×̾"
+
+#: Mailman/Gui/Usenet.py:51
+msgid ""
+"Should new posts to the mailing list be sent to the\n"
+" newsgroup?"
+msgstr "¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ø¤ÎÅê¹Æ¤ò¥Ë¥å¡¼¥¹¥°¥ë¡¼¥×¤ËžÁ÷¤·¤Þ¤¹¤«?"
+
+#: Mailman/Gui/Usenet.py:55
+msgid ""
+"Should new posts to the newsgroup be sent to the mailing\n"
+" list?"
+msgstr "¥Ë¥å¡¼¥¹¥°¥ë¡¼¥×¤Ø¤ÎÅê¹Æ¤ò¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ËžÁ÷¤·¤Þ¤¹¤«?"
+
+#: Mailman/Gui/Usenet.py:58
+msgid "Forwarding options"
+msgstr "žÁ÷¥ª¥×¥·¥ç¥ó"
+
+#: Mailman/Gui/Usenet.py:61
+msgid "Moderated"
+msgstr "ȯ¸ÀÀ©¸ÂÉÕ¤­"
+
+#: Mailman/Gui/Usenet.py:61
+msgid "Open list, moderated group"
+msgstr "¥ê¥¹¥È¤Ï¸ø³«, ¥°¥ë¡¼¥×¤Ïȯ¸ÀÀ©¸ÂÉÕ¤­"
+
+#: Mailman/Gui/Usenet.py:64
+msgid "The moderation policy of the newsgroup."
+msgstr "¥Ë¥å¡¼¥¹¥°¥ë¡¼¥×¤Îȯ¸ÀÀ©¸Â¥Ý¥ê¥·¡¼"
+
+#: Mailman/Gui/Usenet.py:66
+msgid ""
+"This setting determines the moderation policy of the\n"
+" newsgroup and its interaction with the moderation policy of "
+"the\n"
+" mailing list. This only applies to the newsgroup that you are\n"
+" gatewaying <em>to</em>, so if you are only gatewaying from\n"
+" Usenet, or the newsgroup you are gatewaying to is not "
+"moderated,\n"
+" set this option to <em>None</em>.\n"
+"\n"
+" <p>If the newsgroup is moderated, you can set this mailing "
+"list\n"
+" up to be the moderation address for the newsgroup. By "
+"selecting\n"
+" <em>Moderated</em>, an additional posting hold will be placed "
+"in\n"
+" the approval process. All messages posted to the mailing list\n"
+" will have to be approved before being sent on to the "
+"newsgroup,\n"
+" or to the mailing list membership.\n"
+"\n"
+" <p><em>Note that if the message has an <tt>Approved</tt> "
+"header\n"
+" with the list's administrative password in it, this hold test\n"
+" will be bypassed, allowing privileged posters to send messages\n"
+" directly to the list and the newsgroup.</em>\n"
+"\n"
+" <p>Finally, if the newsgroup is moderated, but you want to "
+"have\n"
+" an open posting policy anyway, you should select <em>Open "
+"list,\n"
+" moderated group</em>. The effect of this is to use the normal\n"
+" Mailman moderation facilities, but to add an <tt>Approved</tt>\n"
+" header to all messages that are gatewayed to Usenet."
+msgstr ""
+"¤³¤³¤Ç¤Ï, ¥Ë¥å¡¼¥¹¥°¥ë¡¼¥×¤Îȯ¸ÀÀ©¸Â(¥â¥Ç¥ì¡¼¥·¥ç¥ó)¥Ý¥ê¥·¡¼¤È\n"
+"¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Îȯ¸ÀÀ©¸Â¥Ý¥ê¥·¡¼¤È¤ÎºîÍѤˤĤ¤¤ÆÀßÄꤷ¤Þ¤¹.\n"
+"¤³¤ì¤Ï, ¥Ë¥å¡¼¥¹¥°¥ë¡¼¥×<em>¤Ø</em>žÁ÷¤¹¤ë¾ì¹ç¤ËÅö¤Æ¤Ï¤Þ¤ê¤Þ¤¹¤Î¤Ç, \n"
+"¤â¤·, ¥Ë¥å¡¼¥¹¥°¥ë¡¼¥×¤«¤éžÁ÷¤¹¤ë¾ì¹ç¤äžÁ÷Àè¤Î¥Ë¥å¡¼¥¹¥°¥ë¡¼¥×\n"
+"¤¬À©¸ÂÉÕ¤­¤Ç¤Ê¤±¤ì¤Ð, ¥ª¥×¥·¥ç¥ó¤ò<em>̵¤·</em>¤ËÀßÄꤷ¤Æ¤¯¤À¤µ¤¤.\n"
+"\n"
+"<p>¤â¤·, ¥Ë¥å¡¼¥¹¥°¥ë¡¼¥×¤¬À©¸ÂÉÕ¤­¤Ê¤é¤³¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¥¢¥É¥ì¥¹\n"
+"¤ò¥Ë¥å¡¼¥¹¥°¥ë¡¼¥×¤Î»Ê²ñ¼Ô¥¢¥É¥ì¥¹¤ËÀßÄê¤Ç¤­¤Þ¤¹. <em>ȯ¸ÀÀ©¸ÂÉÕ¤­</em>\n"
+"¤òÁª¤Ö¤³¤È¤Ç, ¾µÇ§¥×¥í¥»¥¹¤ËÄɲäÎÅê¹ÆÊÝ᤬Æþ¤ê¤Þ¤¹. ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È\n"
+"¤ËÅê¹Æ¤µ¤ì¤¿¥á¡¼¥ë¤Ï¥Ë¥å¡¼¥¹¥°¥ë¡¼¥×¤ËžÁ÷¤µ¤ì¤ë¤«¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Î\n"
+"²ñ°÷¤ËÇÛÁ÷¤µ¤ì¤ëÁ°¤Ë¾µÇ§¤µ¤ì¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó.\n"
+"\n"
+"<p><em>¤â¤·¥á¡¼¥ë¤Ë<tt>Approved</tt>¥Ø¥Ã¥À¤È¥Ñ¥¹¥ï¡¼¥É¤¬ÉÕ¤¤¤Æ¤¤¤ì¤Ð\n"
+"¤³¤ÎÊÝα¥Á¥§¥Ã¥¯¤Ï¥Ñ¥¹¤·¤Þ¤¹. ¤³¤Î¤³¤È¤Ç, ¸¢¸Â¤Î¤¢¤ë¿Í¤ÏľÀܥꥹ¥È¤È\n"
+"¥Ë¥å¡¼¥¹¤ËÅê¹Æ¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹.</em>\n"
+"\n"
+"<p>ºÇ¸å¤Ë, ¤â¤·¥Ë¥å¡¼¥¹¥°¥ë¡¼¥×¤¬À©¸ÂÉÕ¤­¤Ç¤¢¤Ã¤Æ¤â, ¼«Í³¤ËÅê¹Æ¤µ¤»¤¿¤¤\n"
+"¾ì¹ç¤Ë¤Ï, <em>¥ê¥¹¥È¤Ï¸ø³«, ¥°¥ë¡¼¥×¤Ïȯ¸ÀÀ©¸ÂÉÕ¤­</em>¤òÁª¤ó¤Ç¤¯¤À¤µ¤¤.\n"
+"¤³¤ì¤òÁª¤Ö¤È, ÉáÄ̤ÎMailman¤Îȯ¸ÀÀ©¸Â¥×¥í¥»¥¹¤òÍѤ¤¤Æ, Á´¤Æ¤Î¥Ë¥å¡¼¥¹\n"
+"¤ØÅ¾Á÷¤¹¤ë¥á¥Ã¥»¡¼¥¸¤Ë<tt>Approved</tt>¥Ø¥Ã¥À¤òÉղä·¤Þ¤¹."
+
+#: Mailman/Gui/Usenet.py:92
+msgid "Prefix <tt>Subject:</tt> headers on postings gated to news?"
+msgstr "¥Ë¥å¡¼¥¹¤Ø¤ÎÅê¹Æµ­»ö¤Î<tt>Subject:</tt>(·ï̾)¤ËÁ°ÃÖ¤­¤òÉÕ¤±¤Þ¤¹¤«?"
+
+#: Mailman/Gui/Usenet.py:93
+msgid ""
+"Mailman prefixes <tt>Subject:</tt> headers with\n"
+" <a href=\"?VARHELP=general/subject_prefix\">text you can\n"
+" customize</a> and normally, this prefix shows up in messages\n"
+" gatewayed to Usenet. You can set this option to <em>No</em> "
+"to\n"
+" disable the prefix on gated messages. Of course, if you turn "
+"off\n"
+" normal <tt>Subject:</tt> prefixes, they won't be prefixed for\n"
+" gated messages either."
+msgstr ""
+"Mailman ¤Ï, <tt>Subject:</tt>¥Ø¥Ã¥À(·ï̾)¤Ë<a \n"
+"href=\"?VARHELP=general/subject_prefix\">´ÉÍý¼Ô¤¬ÀßÄê¤Ç¤­¤ëÁ°ÃÖ¤­</a>\n"
+"¤òÉÕ¤±¤Þ¤¹. ¤³¤ì¤Ï, Ä̾ï, Usenet ¥Ë¥å¡¼¥¹¤ËžÁ÷¤¹¤ë¥á¥Ã¥»¡¼¥¸¤Ë¤â¸½¤ì¤Þ¤¹.\n"
+"¤³¤Î¥ª¥×¥·¥ç¥ó¤ò<em>¤¤¤¤¤¨</em>¤Ë¤¹¤ë¤ÈžÁ÷¥á¥Ã¥»¡¼¥¸¤Ë¤ÏÁ°ÃÖ¤­¤ò¤Ä¤±¤Ê¤¤\n"
+"¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹. ¤â¤Á¤í¤ó, ÉáÄ̤Υ᡼¥ë¤Ë·ï̾¤ËÁ°ÃÖ¤­¤òÉÕ¤±¤Ê¤±¤ì¤Ð, \n"
+"¥Ë¥å¡¼¥¹¤Ë¤âÉÕ¤­¤Þ¤»¤ó."
+
+#: Mailman/Gui/Usenet.py:101
+msgid "Mass catch up"
+msgstr "¥­¥ã¥Ã¥Á¥¢¥Ã¥×"
+
+#: Mailman/Gui/Usenet.py:104
+msgid "Should Mailman perform a <em>catchup</em> on the newsgroup?"
+msgstr "¥Ë¥å¡¼¥¹¥°¥ë¡¼¥×¤ò <em>¥­¥ã¥Ã¥Á¥¢¥Ã¥×</em> ¤·¤Þ¤¹¤«?"
+
+#: Mailman/Gui/Usenet.py:105
+msgid ""
+"When you tell Mailman to perform a catchup on the newsgroup,\n"
+" this means that you want to start gating messages to the "
+"mailing\n"
+" list with the next new message found. All earlier messages on\n"
+" the newsgroup will be ignored. This is as if you were reading\n"
+" the newsgroup yourself, and you marked all current messages as\n"
+" <em>read</em>. By catching up, your mailing list members will\n"
+" not see any of the earlier messages."
+msgstr ""
+"¥­¥ã¥Ã¥Á¥¢¥Ã¥×¤¹¤ë(Äɤ¤ÉÕ¤¯)¤È¤¤¤¦¤³¤È¤Ï, ¼¡¤Î¿·¤·¤¤Åê¹Æ¤¬¤¢¤Ã¤¿»þÅÀ¤«¤é\n"
+" žÁ÷¤ò³«»Ï¤¹¤ë¤È¤¤¤¦¤³¤È¤Ç¤¹. ¤½¤ì°ÊÁ°¤Î¥Ë¥å¡¼¥¹¥°¥ë¡¼¥×¤Î\n"
+" µ­»ö¤Ï̵»ë¤µ¤ì¤Þ¤¹. ¤³¤ì¤Ï, ¤¢¤Ê¤¿¼«¿È¤¬¥Ë¥å¡¼¥¹¤òÆÉ¤ó¤Ç¤¤¤Æ, \n"
+" ¸½ºß¤Î µ­»ö¤òÁ´Éô¡Ö´ûÆÉ¡×¤Ë¤¹¤ë¤Î¤ÈƱ¤¸¤³¤È¤Ç¤¹. \n"
+" ¥­¥ã¥Ã¥Á¥¢¥Ã¥×¤¹¤ë¤È¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Î¥á¥ó¥Ð¡¼¤Ï°ÊÁ°¤Î¥á¥Ã¥»¡¼¥¸¤ò\n"
+" ¸«¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó."
+
+#: Mailman/Gui/Usenet.py:119
+msgid "Mass catchup completed"
+msgstr "¥­¥ã¥Ã¥Á¥¢¥Ã¥×´°Î»"
+
+#: Mailman/Gui/Usenet.py:131
+msgid ""
+"You cannot enable gatewaying unless both the\n"
+" <a href=\"?VARHELP=gateway/nntp_host\">news server field</a> "
+"and\n"
+" the <a href=\"?VARHELP=gateway/linked_newsgroup\">linked\n"
+" newsgroup</a> fields are filled in."
+msgstr ""
+"<a href=\"?VARHELP=gateway/nntp_host\">¥Ë¥å¡¼¥¹¥µ¡¼¥Ð</a>¤È\n"
+"<a href=\"?VARHELP=gateway/linked_newsgroup\">¥Ë¥å¡¼¥¹¥°¥ë¡¼¥×</a>¤ò\n"
+"»ØÄꤷ¤Ê¤¤¤È¥Ë¥å¡¼¥¹¡¦¥²¡¼¥È¥¦¥§¥¤¤ÏÍ­¸ú¤Ë¤Ê¤ê¤Þ¤»¤ó."
+
+#: Mailman/HTMLFormatter.py:47
+msgid "%(listinfo_link)s list run by %(owner_link)s"
+msgstr "%(listinfo_link)s ¥ê¥¹¥È´ÉÍý¿Í %(owner_link)s"
+
+#: Mailman/HTMLFormatter.py:55
+msgid "%(realname)s administrative interface"
+msgstr "%(realname)s ´ÉÍýÍÑ¥Ú¡¼¥¸"
+
+#: Mailman/HTMLFormatter.py:56
+msgid " (requires authorization)"
+msgstr " (¥Ñ¥¹¥ï¡¼¥É¤¬É¬ÍפǤ¹)"
+
+#: Mailman/HTMLFormatter.py:59
+msgid "Overview of all %(hostname)s mailing lists"
+msgstr "%(hostname)s ¤ÎÁ´¥á¡¼¥ê¥ó¥°¥ê¥¹¥È°ìÍ÷"
+
+#: Mailman/HTMLFormatter.py:80
+msgid "<em>(1 private member not shown)</em>"
+msgstr "<em>(1 ̾¤Î±£¤ì²ñ°÷ ¤Ïɽ¼¨¤µ¤ì¤Þ¤»¤ó)</em>"
+
+#: Mailman/HTMLFormatter.py:82
+msgid "<em>(%(num_concealed)d private members not shown)</em>"
+msgstr "<em>(%(num_concealed)d ̾¤Î±£¤ì²ñ°÷ ¤Ïɽ¼¨¤µ¤ì¤Þ¤»¤ó)</em>"
+
+#: Mailman/HTMLFormatter.py:137
+msgid "; it was disabled by you"
+msgstr "; ¤¢¤Ê¤¿¤¬ÇÛÁ÷Ää»ß¤·¤Þ¤·¤¿"
+
+#: Mailman/HTMLFormatter.py:139
+msgid "; it was disabled by the list administrator"
+msgstr "; ¥ê¥¹¥È´ÉÍý¼Ô¤Ë¤è¤Ã¤ÆÇÛÁ÷Ää»ß¤µ¤ì¤Æ¤¤¤Þ¤¹"
+
+#: Mailman/HTMLFormatter.py:143
+msgid ""
+"; it was disabled due to excessive bounces. The\n"
+" last bounce was received on %(date)s"
+msgstr ""
+"; ¥¨¥é¡¼¥á¡¼¥ë¿ȯ¤Ë¤è¤êÇÛÁ÷Ää»ß¤µ¤ì¤Æ¤¤¤Þ¤¹.\n"
+" ºÇ¸å¤Î¥¨¥é¡¼¤Ï %(date)s ¤Ë¼õ¿®"
+
+#: Mailman/HTMLFormatter.py:146
+msgid "; it was disabled for unknown reasons"
+msgstr "; ¸¶°øÉÔÌÀ¤ÎÍýͳ¤Ë¤è¤êÇÛÁ÷Ää»ß¤µ¤ì¤Æ¤¤¤Þ¤¹"
+
+#: Mailman/HTMLFormatter.py:148
+msgid "Note: your list delivery is currently disabled%(reason)s."
+msgstr "Ãí°Õ: ¤¢¤Ê¤¿¤Ø¤Î¥á¡¼¥ëÇÛÁ÷¤Ï°ì»þÄä»ß¤µ¤ì¤Æ¤¤¤Þ¤¹ %(reason)s."
+
+#: Mailman/HTMLFormatter.py:151
+msgid "Mail delivery"
+msgstr "¥á¡¼¥ëÇÛÁ÷"
+
+#: Mailman/HTMLFormatter.py:153 Mailman/HTMLFormatter.py:298
+msgid "the list administrator"
+msgstr "¥ê¥¹¥È´ÉÍý¼Ô"
+
+#: Mailman/HTMLFormatter.py:154
+msgid ""
+"<p>%(note)s\n"
+"\n"
+" <p>You may have disabled list delivery intentionally,\n"
+" or it may have been triggered by bounces from your email\n"
+" address. In either case, to re-enable delivery, change the\n"
+" %(link)s option below. Contact %(mailto)s if you have any\n"
+" questions or need assistance."
+msgstr ""
+"<p>%(note)s\n"
+"\n"
+"<p>¤¢¤Ê¤¿¤Ï¼«Ê¬¤ÇÇÛÁ÷¤ò»ß¤á¤¿¤Î¤«¤â¤·¤ì¤Þ¤»¤ó. ¤¢¤ë¤¤¤Ï, \n"
+"¤¢¤Ê¤¿¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤Ø¤ÎÇÛÁ÷¥¨¥é¡¼¤Ç¤³¤¦¤Ê¤Ã¤¿¤Î¤«¤â¤·¤ì¤Þ¤»¤ó. \n"
+"¤É¤Á¤é¤Ë¤·¤Æ¤â, ÇÛÁ÷¤òºÆ³«¤¹¤ë¤Ë¤Ï, ²¼¤Î %(link)s ¥ª¥×¥·¥ç¥ó¤ò\n"
+"Êѹ¹¤·¤Æ¤¯¤À¤µ¤¤. ¤â¤·, ¼ÁÌ䤬¤¢¤Ã¤¿¤ê½õ¤±¤¬É¬Íפʾì¹ç¤Ë¤Ï, \n"
+"%(mailto)s ¤ËÏ¢Íí¤·¤Æ¤¯¤À¤µ¤¤. "
+
+#: Mailman/HTMLFormatter.py:166
+msgid ""
+"<p>We have received some recent bounces from your\n"
+" address. Your current <em>bounce score</em> is %(score)s out of "
+"a\n"
+" maximum of %(total)s. Please double check that your subscribed\n"
+" address is correct and that there are no problems with delivery "
+"to\n"
+" this address. Your bounce score will be automatically reset if\n"
+" the problems are corrected soon."
+msgstr ""
+"<p>¤¢¤Ê¤¿¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤«¤é, ºÇ¶áÇÛÁ÷¥¨¥é¡¼ÄÌÃΤò¼õ¤±¤Æ¤¤¤Þ¤¹.\n"
+" ¤¢¤Ê¤¿¤Î¸½ºß¤Î <em>¥¨¥é¡¼ÅÀ</em>¤ÏºÇÂç %(total)s ¤ËÂФ·¤Æ,\n"
+" %(score)s ¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹. ÅÐÏ¿¥¢¥É¥ì¥¹¤¬Àµ¤·¤¤¤«½½Ê¬¥Á¥§¥Ã¥¯¤·¤Æ\n"
+" ¤³¤Î¥¢¥É¥ì¥¹¤Ø¤ÎÇÛÁ÷¤ËÌäÂ̵꤬¤¤¤è¤¦¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤. ¤¢¤Ê¤¿¤Î\n"
+" ¥¨¥é¡¼ÅÀ¤Ï, ÌäÂ꤬²ò·è¤¹¤ì¤Ð´Ö¤â¤Ê¤¯¥ê¥»¥Ã¥È¤µ¤ì¤Þ¤¹."
+
+#: Mailman/HTMLFormatter.py:178
+msgid ""
+"(Note - you are subscribing to a list of mailing lists, so the %(type)s "
+"notice will be sent to the admin address for your membership, %(addr)s.)<p>"
+msgstr ""
+"(Ãí°Õ - ¤¢¤Ê¤¿¤Ï¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Î¥ê¥¹¥È¤ËÆþ²ñÅÐÏ¿¤·¤è¤¦¤È¤·¤Æ¤¤¤Þ¤¹. "
+"¤³¤Î¤¿¤á %(type)s ¤Î¤ªÃΤ餻¤Ï´ÉÍý¼ÔÍѥ᡼¥ë¥¢¥É¥ì¥¹ %(addr)s "
+"¤ËÁ÷¿®¤µ¤ì¤Þ¤¹.)"
+
+#: Mailman/HTMLFormatter.py:188
+msgid ""
+"You will be sent email requesting confirmation, to\n"
+" prevent others from gratuitously subscribing you."
+msgstr ""
+"¾¿Í¤¬¤ª¤»¤Ã¤«¤¤¤ÇÆþ²ñ¼ê³¤­¤ò¤·¤Ê¤¤¤è¤¦¤Ë, "
+"¤¢¤Ê¤¿°¸¤Ë³Îǧ¤¹¤ë¤è¤¦¤Ë¥á¡¼¥ë¤¬È¯¿®¤µ¤ì¤Þ¤¹. "
+
+#: Mailman/HTMLFormatter.py:191
+msgid ""
+"This is a closed list, which means your subscription\n"
+" will be held for approval. You will be notified of the list\n"
+" moderator's decision by email."
+msgstr ""
+"¤³¤ì¤ÏÊĺ¿¥ê¥¹¥È¤Ç¤¹. ¤Ä¤Þ¤ê, "
+"¤¢¤Ê¤¿¤ÎÆþ²ñÅÐÏ¿¤Ï¾µÇ§¤ò¼õ¤±¤ë¤Þ¤ÇÊÝᤵ¤ì¤Þ¤¹. "
+"´ÉÍý¼Ô¤Î·èÄê¤Ï¥á¡¼¥ë¤Ç¤ªÃΤ餻¤·¤Þ¤¹."
+
+#: Mailman/HTMLFormatter.py:194 Mailman/HTMLFormatter.py:201
+msgid "also "
+msgstr "¤Þ¤¿"
+
+#: Mailman/HTMLFormatter.py:196
+msgid ""
+"You will be sent email requesting confirmation, to\n"
+" prevent others from gratuitously subscribing you. Once\n"
+" confirmation is received, your request will be held for "
+"approval\n"
+" by the list moderator. You will be notified of the moderator's\n"
+" decision by email."
+msgstr ""
+"¾¿Í¤¬¤ª¤»¤Ã¤«¤¤¤ÇÆþ²ñ¼ê³¤­¤ò¤·¤Ê¤¤¤è¤¦¤Ë, "
+"¤¢¤Ê¤¿°¸¤Ë³Îǧ¤¹¤ë¤è¤¦¤Ë¥á¡¼¥ë¤¬È¯¿®¤µ¤ì¤Þ¤¹. "
+"¤¢¤Ê¤¿¤Î³Îǧ¤¬´°Î»¤¹¤ë¤È¼¡¤Ë¥ê¥¹¥È´ÉÍý¼Ô¤Î¾µÇ§¤Î¤¿¤á°ìöÊÝᤵ¤ì¤Þ¤¹. "
+"´ÉÍý¼Ô¤Î·èÄê¤Ï¥á¡¼¥ë¤ÇÄÌÃΤµ¤ì¤ë¤Ç¤·¤ç¤¦."
+
+#: Mailman/HTMLFormatter.py:205
+msgid ""
+"This is %(also)sa private list, which means that the\n"
+" list of members is not available to non-members."
+msgstr ""
+"¤³¤ì¤Ï %(also)s ¸ÂÄê¸ø³«¥ê¥¹¥È¤Ç¤¹. "
+"¤Ä¤Þ¤ê²ñ°÷̾Êí¤Ï²ñ°÷³°¤Ë¤Ï¸ø³«¤·¤Æ¤¤¤Þ¤»¤ó."
+
+#: Mailman/HTMLFormatter.py:208
+msgid ""
+"This is %(also)sa hidden list, which means that the\n"
+" list of members is available only to the list administrator."
+msgstr ""
+"¤³¤ì¤Ï %(also)s ±£¤·¥ê¥¹¥È¤Ç¤¹. "
+"¤Ä¤Þ¤ê²ñ°÷̾Êí¤Ï¥ê¥¹¥È´ÉÍý¼Ô¤À¤±¤¬¸«¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹. "
+
+#: Mailman/HTMLFormatter.py:211
+msgid ""
+"This is %(also)sa public list, which means that the\n"
+" list of members list is available to everyone."
+msgstr ""
+"¤³¤ì¤Ï %(also)s ¸ø³«¥ê¥¹¥È¤Ç¤¹, ¤Ä¤Þ¤ê²ñ°÷̾Êí¤Ïï¤Ç¤â¸«¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹"
+
+#: Mailman/HTMLFormatter.py:214
+msgid ""
+" (but we obscure the addresses so they are not\n"
+" easily recognizable by spammers)."
+msgstr " (¤½¤ÎÂå¤ï¤ê SPAMmer ¤Ëʬ¤«¤ê¤Ë¤¯¤¤¤è¤¦¤Ë¥¢¥É¥ì¥¹¤ò½ñ¤­´¹¤¨¤Þ¤¹)."
+
+#: Mailman/HTMLFormatter.py:219
+msgid ""
+"<p>(Note that this is an umbrella list, intended to\n"
+" have only other mailing lists as members. Among other things,\n"
+" this means that your confirmation request will be sent to the\n"
+" `%(sfx)s' account for your address.)"
+msgstr ""
+"<p>¤³¤ì¤Ï»±¥ê¥¹¥È¤Ç¤¹. "
+"¤Ä¤Þ¤ê¾¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ò¥á¥ó¥Ð¡¼¤Ë»ý¤Ä¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹. "
+"¤Ê¤Ë¤è¤ê¤â¤Þ¤º, Æþ²ñ³Îǧ¤Î¥á¡¼¥ë¤Ï '%(sfx)s' "
+"¤ò¥µ¥Õ¥£¥Ã¥¯¥¹¤Ë¤·¤¿¥¢¥É¥ì¥¹°¸¤ËȯÁ÷¤µ¤ì¤Þ¤¹."
+
+#: Mailman/HTMLFormatter.py:248
+msgid "<b><i>either</i></b> "
+msgstr "<b><i>¤«...</i></b>"
+
+#: Mailman/HTMLFormatter.py:253
+msgid ""
+"To unsubscribe from %(realname)s, get a password reminder,\n"
+" or change your subscription options %(either)senter your "
+"subscription\n"
+" email address:\n"
+" <p><center> "
+msgstr ""
+"²ñ°÷¤ÎÀßÄê(¤Þ¤È¤áÆÉ¤ß¤ä¥Ñ¥¹¥ï¡¼¥ÉÄÌÃÎ %(realname)s "
+"¤«¤é¤ÎÂà²ñ¤Ê¤É)¤ÎÊѹ¹¤Ë¤Ï\n"
+"Æþ²ñ¤·¤Æ¤¤¤ëÅŻҥ᡼¥ë¥¢¥É¥ì¥¹¤òÆþ¤ì¤ë%(either)s:\n"
+"<p><center> "
+
+#: Mailman/HTMLFormatter.py:260
+msgid "Unsubscribe or edit options"
+msgstr "Âà²ñ¤Þ¤¿¤Ï¥ª¥×¥·¥ç¥ó¤ÎÊѹ¹"
+
+#: Mailman/HTMLFormatter.py:264
+msgid ""
+"<p>... <b><i>or</i></b> select your entry from\n"
+" the subscribers list (see above)."
+msgstr ""
+"<p>... <b><i>¤¢¤ë¤¤¤Ï</i></b> ²ñ°÷̾Êí¤«¤é¤¢¤Ê¤¿¤Î¹àÌܤòÁª¤ó¤Ç¤¯¤À¤µ¤¤ "
+"(¾å¤ò»²¾È)."
+
+#: Mailman/HTMLFormatter.py:266
+msgid ""
+" If you leave the field blank, you will be prompted for\n"
+" your email address"
+msgstr "¤³¤ÎÍó¤ò¶õÇò¤Ë¤·¤¿¾ì¹ç¤Ï, ¼¡¤Î²èÌ̤ǥ᡼¥ë¥¢¥É¥ì¥¹¤ÎÆþÎϤòÍ׵ᤷ¤Þ¤¹."
+
+#: Mailman/HTMLFormatter.py:274
+msgid ""
+"(<i>%(which)s is only available to the list\n"
+" members.</i>)"
+msgstr "(<i>%(which)s ¤Ï¥á¡¼¥ê¥ó¥°¥ê¥¹¥È²ñ°÷¤Î¤ß¤¬ÍøÍѤǤ­¤Þ¤¹.</i>)"
+
+#: Mailman/HTMLFormatter.py:278
+msgid ""
+"(<i>%(which)s is only available to the list\n"
+" administrator.</i>)"
+msgstr "(<i>%(which)s ¤Ï¥ê¥¹¥È´ÉÍý¼Ô¤À¤±¤¬¸«¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹.</i>"
+
+#: Mailman/HTMLFormatter.py:288
+msgid "Click here for the list of "
+msgstr "¤³¤³¤ò¥¯¥ê¥Ã¥¯¤·¤Æ"
+
+#: Mailman/HTMLFormatter.py:290
+msgid " subscribers: "
+msgstr "¤Î²ñ°÷̾Êí¤ò¸«¤ë:"
+
+#: Mailman/HTMLFormatter.py:292
+msgid "Visit Subscriber list"
+msgstr "²ñ°÷̾Êí¤ò¸«¤ë"
+
+#: Mailman/HTMLFormatter.py:295
+msgid "members"
+msgstr "²ñ°÷"
+
+#: Mailman/HTMLFormatter.py:296
+msgid "Address:"
+msgstr "¥¢¥É¥ì¥¹:"
+
+#: Mailman/HTMLFormatter.py:299
+msgid "Admin address:"
+msgstr "´ÉÍý¼Ô¥¢¥É¥ì¥¹:"
+
+#: Mailman/HTMLFormatter.py:302
+msgid "The subscribers list"
+msgstr "²ñ°÷̾Êí"
+
+#: Mailman/HTMLFormatter.py:304
+msgid " <p>Enter your "
+msgstr " <p>¤¢¤Ê¤¿¤Î"
+
+#: Mailman/HTMLFormatter.py:306
+msgid " and password to visit the subscribers list: <p><center> "
+msgstr "¤È¥Ñ¥¹¥ï¡¼¥É¤òÆþÎϤ·¤Æ²ñ°÷̾Êí¤Ø¿Ê¤ó¤Ç¤¯¤À¤µ¤¤: <p><center> "
+
+#: Mailman/HTMLFormatter.py:311
+msgid "Password: "
+msgstr "¥Ñ¥¹¥ï¡¼¥É: "
+
+#: Mailman/HTMLFormatter.py:315
+msgid "Visit Subscriber List"
+msgstr "²ñ°÷̾Êí¤Î¥Ú¡¼¥¸¤Ø"
+
+#: Mailman/HTMLFormatter.py:345
+msgid "Once a month, your password will be emailed to you as a reminder."
+msgstr "Ëè·î£±²ó¥Ñ¥¹¥ï¡¼¥É¤ò˺¤ì¤Ê¤¤¤è¤¦¤Ë¥á¡¼¥ë¤ÇÁ÷¿®¤·¤Þ¤¹."
+
+#: Mailman/HTMLFormatter.py:391
+msgid "The current archive"
+msgstr "¸½ºß¤ÎÊݸ½ñ¸Ë"
+
+#: Mailman/Handlers/Acknowledge.py:59
+msgid "%(realname)s post acknowledgement"
+msgstr "%(realname)s Åê¹Æ¼õ¤±ÉÕ¤±"
+
+#: Mailman/Handlers/CalcRecips.py:68
+msgid ""
+"Your urgent message to the %(realname)s mailing list was not authorized for\n"
+"delivery. The original message as received by Mailman is attached.\n"
+msgstr ""
+"¤¢¤Ê¤¿¤Î %(realname)s ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ø¤Î¶ÛµÞ¥á¡¼¥ë¤ÏÇÛÁ÷¤¬\n"
+"¾µÇ§¤µ¤ì¤Æ¤¤¤Þ¤»¤ó. Mailman ¤¬¼õ¤±¼è¤Ã¤¿¥ª¥ê¥¸¥Ê¥ë¥á¡¼¥ë¤òźÉÕ¤·¤Þ¤¹. \n"
+"\n"
+
+#: Mailman/Handlers/Emergency.py:29
+msgid "Emergency hold on all list traffic is in effect"
+msgstr "¶ÛµÞÇÛÁ÷ÊÝα¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹"
+
+#: Mailman/Handlers/Emergency.py:30 Mailman/Handlers/Hold.py:58
+msgid "Your message was deemed inappropriate by the moderator."
+msgstr "»Ê²ñ¼Ô¤Ï¤¢¤Ê¤¿¤Î¥á¥Ã¥»¡¼¥¸¤¬ÉÔŬÀڤǤ¢¤ë¤ÈȽÃǤ·¤Þ¤·¤¿."
+
+#: Mailman/Handlers/Hold.py:53
+msgid "Sender is explicitly forbidden"
+msgstr "Åê¹Æ¼Ô¤Ï¶Ø»ß¥ê¥¹¥È¤ËÆþ¤Ã¤Æ¤¤¤Þ¤¹"
+
+#: Mailman/Handlers/Hold.py:54
+msgid "You are forbidden from posting messages to this list."
+msgstr "¤¢¤Ê¤¿¤Ï¤³¤Î¥ê¥¹¥È¤Ø¤ÎÅê¹Æ¤ò¶Ø»ß¤µ¤ì¤Æ¤¤¤Þ¤¹."
+
+#: Mailman/Handlers/Hold.py:57
+msgid "Post to moderated list"
+msgstr "»Ê²ñÉÕ¤­¥ê¥¹¥È¤Ø¤ÎÅê¹Æ"
+
+#: Mailman/Handlers/Hold.py:61
+msgid "Post by non-member to a members-only list"
+msgstr "²ñ°÷¸ÂÄê¥ê¥¹¥È¤Ø¤ÎÈó²ñ°÷¤ÎÅê¹Æ"
+
+#: Mailman/Handlers/Hold.py:62
+msgid "Non-members are not allowed to post messages to this list."
+msgstr "²ñ°÷°Ê³°¤ÎÊý¤Ï¤³¤Î¥ê¥¹¥È¤ËÅê¹Æ¤Ç¤­¤Þ¤»¤ó"
+
+#: Mailman/Handlers/Hold.py:65
+msgid "Posting to a restricted list by sender requires approval"
+msgstr "À©¸ÂÉÕ¤­¥ê¥¹¥È¤Ø¤ÎÅê¹Æ¤Ï¾µÇ§¤¬É¬ÍפǤ¹"
+
+#: Mailman/Handlers/Hold.py:66
+msgid "This list is restricted; your message was not approved."
+msgstr ""
+"¤³¤Î¥ê¥¹¥È¤ÏÀ©¸Â¤µ¤ì¤Æ¤¤¤Þ¤¹; ¤¢¤Ê¤¿¤Î¥á¥Ã¥»¡¼¥¸¤Ï¾µÇ§¤µ¤ì¤Þ¤»¤ó¤Ç¤·¤¿."
+
+#: Mailman/Handlers/Hold.py:69
+msgid "Too many recipients to the message"
+msgstr "¼õ¿®¼Ô¤¬Â¿¤¹¤®¤Þ¤¹"
+
+#: Mailman/Handlers/Hold.py:70
+msgid "Please trim the recipient list; it is too long."
+msgstr "¼õ¿®¿Í¤Î¥ê¥¹¥È¤òÀÚ¤êµÍ¤á¤Æ¤¯¤À¤µ¤¤; Ť¹¤®¤Þ¤¹."
+
+#: Mailman/Handlers/Hold.py:73
+msgid "Message has implicit destination"
+msgstr "Åê¹Æ°¸À褬±£¤µ¤ì¤Æ¤¤¤Þ¤¹"
+
+#: Mailman/Handlers/Hold.py:74
+msgid ""
+"Blind carbon copies or other implicit destinations are\n"
+"not allowed. Try reposting your message by explicitly including the list\n"
+"address in the To: or Cc: fields."
+msgstr ""
+"Bcc:(±£¤·Æ±Êó)¤ä°¸Àè¤òÌÀ¼¨¤·¤Ê¤¤¥á¡¼¥ë¤Ï¶Ø»ß¤·¤Æ¤¤¤Þ¤¹\n"
+"To:(°¸Àè)Ëô¤ÏCc:(ƱÊó)¤Ë¥ê¥¹¥È¥¢¥É¥ì¥¹¤òÌÀ¼¨¤·¤ÆºÆÅê¹Æ¤·¤Æ¤¯¤À¤µ¤¤"
+
+#: Mailman/Handlers/Hold.py:79
+msgid "Message may contain administrivia"
+msgstr "´ÉÍý¥³¥Þ¥ó¥É¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹"
+
+#: Mailman/Handlers/Hold.py:84
+msgid ""
+"Please do *not* post administrative requests to the mailing\n"
+"list. If you wish to subscribe, visit %(listurl)s or send a message with "
+"the\n"
+"word `help' in it to the request address, %(request)s, for further\n"
+"instructions."
+msgstr ""
+"´ÉÍý¿½ÀÁ¥á¡¼¥ë¤ò¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ØÁ÷¤é¤Ê¤¤¤Ç²¼¤µ¤¤\n"
+"Æþ²ñ¤·¤¿¤¤¤Î¤Ç¤¢¤ì¤Ð %(listurl)s ¤Ø¹Ô¤¯¤«\n"
+"¿½ÀÁ¥¢¥É¥ì¥¹¤Ç¤¢¤ë %(request)s °¸¤Ë `help' ¤È½ñ¤¤¤¿\n"
+"¥á¡¼¥ë¤òÁ÷¤Ã¤Æ¥Þ¥Ë¥å¥¢¥ë¤ò¼è¤ê´ó¤»¤Æ¤¯¤À¤µ¤¤"
+
+#: Mailman/Handlers/Hold.py:90
+msgid "Message has a suspicious header"
+msgstr "¥á¡¼¥ë¤Ë¤ÏÉÔ¿³¤Ê¥Ø¥Ã¥À¤¬¤¢¤ê¤Þ¤¹."
+
+#: Mailman/Handlers/Hold.py:91
+msgid "Your message had a suspicious header."
+msgstr "¤¢¤Ê¤¿¤Î¥á¡¼¥ë¤Ë¤ÏÉÔ¿³¤Ê¥Ø¥Ã¥À¤¬¤¢¤ê¤Þ¤¹."
+
+#: Mailman/Handlers/Hold.py:101
+msgid ""
+"Message body is too big: %(size)d bytes with a limit of\n"
+"%(limit)d KB"
+msgstr ""
+"¥á¡¼¥ë¤ÎËÜʸ¤¬Ä¹¤¹¤®¤Þ¤¹: %(size)d ¥Ð¥¤¥È¤¢¤ê¤Þ¤¹¤¬¡¢\n"
+"À©¸Â¤Ï %(limit)d KB ¤Ç¤¹"
+
+#: Mailman/Handlers/Hold.py:106
+msgid ""
+"Your message was too big; please trim it to less than\n"
+"%(kb)d KB in size."
+msgstr ""
+"¤¢¤Ê¤¿¤Î¥á¡¼¥ë¤Ï¥µ¥¤¥º¤¬Â礭¤¹¤®¤Þ¤¹; ÀÚ¤êµÍ¤á¤Æ %(kb)d KB \n"
+"°Ê²¼¤Ë¤·¤Æ¤¯¤À¤µ¤¤."
+
+#: Mailman/Handlers/Hold.py:110
+msgid "Posting to a moderated newsgroup"
+msgstr "»Ê²ñÉÕ¤­¥Ë¥å¡¼¥¹¥°¥ë¡¼¥×¤Ø¤ÎÅê¹Æ"
+
+#: Mailman/Handlers/Hold.py:233
+msgid "Your message to %(listname)s awaits moderator approval"
+msgstr "%(listname)s ¤ØÅê¹Æ¤µ¤ì¤¿¥á¡¼¥ë¤Ï»Ê²ñ¼Ô¤Î¾µÇ§¤òÂԤäƤ¤¤Þ¤¹"
+
+#: Mailman/Handlers/Hold.py:253
+msgid "%(listname)s post from %(sender)s requires approval"
+msgstr "%(listname)s ¤Ø¤Î %(sender)s ¤ÎÅê¹Æ¤Ï¾µÇ§¤¬É¬ÍפǤ¹"
+
+#: Mailman/Handlers/Hold.py:260
+msgid ""
+"If you reply to this message, keeping the Subject: header intact, Mailman "
+"will\n"
+"discard the held message. Do this if the message is spam. If you reply to\n"
+"this message and include an Approved: header with the list password in it, "
+"the\n"
+"message will be approved for posting to the list. The Approved: header can\n"
+"also appear in the first line of the body of the reply."
+msgstr ""
+"¤â¤·¤¢¤Ê¤¿¤¬¤³¤Î¥á¡¼¥ë¤ËÊÖ¿®¤¹¤ëºÝ¤Ë, Subject: (·ï̾) ¥Ø¥Ã¥À\n"
+"¤Ë¼ê¤ò²Ã¤¨¤Ê¤¤¤è¤¦¤Ë¤¹¤ì¤Ð, Mailman ¤ÏÊÝᤵ¤ì¤Æ¤¤¤ë¥á¡¼¥ë¤ò\n"
+"ÇË´þ¤·¤Þ¤¹. ¤â¤·, ¥á¡¼¥ë¤¬ SPAM ¤Ç¤¢¤ì¤Ð¤½¤¦¤·¤Æ¤¯¤À¤µ¤¤. ¤â\n"
+"¤·, ¤³¤Î¥á¡¼¥ë¤ËÊÖ¿®¤¹¤ë¤Î¤Ë Approved:¥Ø¥Ã¥À¤È¥ê¥¹¥È¤Î¥Ñ¥¹¥ï¡¼\n"
+"¥É¤ò¥Ø¥Ã¥À¤È¥ê¥¹¥È¤Î¥Ñ¥¹¥ï¡¼¥É¤òÉÕ¤±¤ÆÁ÷¤ì¤Ð, ÊÝα¥á¡¼¥ë¤Ï¥ê\n"
+"¥¹¥È¤Ø¤ÎÇÛÉÕ¤ò¾µÇ§¤µ¤ì¤Þ¤¹. Approved: ¥Ø¥Ã¥À¤ÏÊÖ¿®¥á¡¼¥ë¤ÎËÜ\n"
+"ʸ¤ÎºÇ½é¤ËÆþ¤Ã¤Æ¤¤¤Æ¤â¤«¤Þ¤¤¤Þ¤»¤ó.\n"
+"\n"
+" (Ãí°Õ: ¤³¤Î¥á¥Ã¥»¡¼¥¸¤ÏźÉÕ¤µ¤ì¤Æ¤¤¤Þ¤¹. źÉե᡼¥ë¤Îº¹½Ð¿Í\n"
+"¤Ø¤ÎÊÖ¿®¤Ï, ¥á¡¼¥ë¥½¥Õ¥È¤Ë¤è¤Ã¤Æ¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó. ñ\n"
+"¤ËÊÖ¿®¤¹¤ë¤È°ã¤Ã¤¿·ï̾¡¿°¸Àè¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¤Î¤Ç, \n"
+"¤´Ãí°Õ¤¯¤À¤µ¤¤.)"
+
+#: Mailman/Handlers/MimeDel.py:56
+msgid "The message's content type was explicitly disallowed"
+msgstr "¤³¤Î¥á¡¼¥ë¤ÎÆâÍÆ·Á¼°(Content-Type)¤Ï¶Ø»ß¤µ¤ì¤Æ¤¤¤Þ¤¹"
+
+#: Mailman/Handlers/MimeDel.py:61
+msgid "The message's content type was not explicitly allowed"
+msgstr "¤³¤Î¥á¡¼¥ë¤ÎÆâÍÆ·Á¼°(Content-Type)¤Ïµö²Ä¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
+
+#: Mailman/Handlers/MimeDel.py:73
+msgid "After content filtering, the message was empty"
+msgstr "¥Õ¥£¥ë¥¿¡¼Å¬ÍѸå, ¥á¡¼¥ë¤¬¶õ¤Ë¤Ê¤ê¤Þ¤·¤¿"
+
+#: Mailman/Handlers/MimeDel.py:208
+msgid ""
+"The attached message matched the %(listname)s mailing list's content "
+"filtering\n"
+"rules and was prevented from being forwarded on to the list membership. "
+"You\n"
+"are receiving the only remaining copy of the discarded message.\n"
+"\n"
+msgstr ""
+"źÉդΥá¥Ã¥»¡¼¥¸¤Ï %(listname)s ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ÎÆâÍÆ¥Õ¥£¥ë¥¿¡¼\n"
+"µ¬Â§¤Ë¥Þ¥Ã¥Á¤·¤Æ²ñ°÷¤Ø¤ÎÇÛÁ÷¤¬¤Ç¤­¤Ê¤¯¤Ê¤ê¤Þ¤·¤¿. ¤¢¤Ê¤¿¤ÏÇË´þ¤µ¤ì¤¿\n"
+"¥á¡¼¥ë¤Î¤¦¤Á»Ä¤Ã¤¿Éôʬ¤ò¼õ¤±¤Æ¤¤¤Þ¤¹.\n"
+
+#: Mailman/Handlers/MimeDel.py:214
+msgid "Content filtered message notification"
+msgstr "ÆâÍÆ¥Õ¥£¥ë¥¿¡¼ÄÌÃÎ"
+
+#: Mailman/Handlers/Moderate.py:138
+msgid ""
+"You are not allowed to post to this mailing list, and your message has been\n"
+"automatically rejected. If you think that your messages are being rejected "
+"in\n"
+"error, contact the mailing list owner at %(listowner)s."
+msgstr ""
+"¤¢¤Ê¤¿¤Ï¤³¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ËÅê¹Æ¤¹¤ë¤³¤È¤¬µö¤µ¤ì¤Æ¤¤¤Þ¤»¤ó. ¤³¤Î¤¿¤á\n"
+"¤¢¤Ê¤¿¤ÎÅê¹Æ¤Ï¼«Æ°Åª¤ËµñÈݤµ¤ì¤Þ¤·¤¿. ¤â¤·, ¤³¤ÎµñÈݤ¬¥¨¥é¡¼¤Ç¤¢¤ë¤È\n"
+"¹Í¤¨¤ë¤Ê¤é, ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Î´ÉÍý¼Ô¤Ç¤¢¤ë %(listowner)s ¤ØÏ¢Íí\n"
+"¤·¤Æ¤¯¤À¤µ¤¤."
+
+#: Mailman/Handlers/Moderate.py:153
+msgid "Auto-discard notification"
+msgstr "¼«Æ°ÇË´þÄÌÃÎ"
+
+#: Mailman/Handlers/Moderate.py:156
+msgid "The attached message has been automatically discarded."
+msgstr "źÉÕ¤µ¤ì¤¿¥á¡¼¥ë¤Ï¼«Æ°Åª¤ËÇË´þ¤µ¤ì¤Þ¤·¤¿."
+
+#: Mailman/Handlers/Replybot.py:74
+msgid "Auto-response for your message to "
+msgstr "¤¢¤Ê¤¿¤¬"
+
+#: Mailman/Handlers/Replybot.py:75
+msgid "the \"%(realname)s\" mailing list"
+msgstr "%(realname)s ¤ØÁ÷¤Ã¤¿¥á¡¼¥ë¤Ø¤Î¼«Æ°±þÅú"
+
+#: Mailman/Handlers/Replybot.py:107
+msgid "The Mailman Replybot"
+msgstr "Mailman ¼«Æ°±þÅú"
+
+#: Mailman/Handlers/Scrubber.py:148
+msgid "HTML attachment scrubbed and removed"
+msgstr "HTML¤ÎźÉÕ¥Õ¥¡¥¤¥ë¤Ï¼è¤ê½ü¤«¤ì¤Æ¤¤¤Þ¤¹"
+
+#: Mailman/Handlers/Scrubber.py:162 Mailman/Handlers/Scrubber.py:188
+msgid ""
+"An HTML attachment was scrubbed...\n"
+"URL: %(url)s\n"
+msgstr ""
+"HTML¤ÎźÉÕ¥Õ¥¡¥¤¥ë¤ò¼è¤ê½ü¤­¤Þ¤·¤¿.\n"
+"URL: %(url)s\n"
+
+#: Mailman/Handlers/Scrubber.py:201
+msgid "no subject"
+msgstr "̵Âê"
+
+#: Mailman/Handlers/Scrubber.py:202
+msgid "no date"
+msgstr "ÆüÉÕ̵¤·"
+
+#: Mailman/Handlers/Scrubber.py:203
+msgid "unknown sender"
+msgstr "Á÷¿®¼ÔÉÔÌÀ"
+
+#: Mailman/Handlers/Scrubber.py:205
+msgid ""
+"An embedded message was scrubbed...\n"
+"From: %(who)s\n"
+"Subject: %(subject)s\n"
+"Date: %(date)s\n"
+"Size: %(size)s\n"
+"Url: %(url)s\n"
+msgstr ""
+"ÁȤ߹þ¤Þ¤ì¤¿¥á¡¼¥ë¤ò¼è¤ê½ü¤­¤Þ¤·¤¿...\n"
+"Á÷¿®¼Ô: %(who)s\n"
+"·ï̾: %(subject)s\n"
+"ÆüÉÕ: %(date)s\n"
+"¥µ¥¤¥º: %(size)s ¥Ð¥¤¥È\n"
+"URL: %(url)s\n"
+
+#: Mailman/Handlers/Scrubber.py:228
+msgid ""
+"A non-text attachment was scrubbed...\n"
+"Name: %(filename)s\n"
+"Type: %(ctype)s\n"
+"Size: %(size)d bytes\n"
+"Desc: %(desc)s\n"
+"Url : %(url)s\n"
+msgstr ""
+"ʿʸ¤Ç¤Ê¤¤ÅºÉÕ¥Õ¥¡¥¤¥ë¤ò¼è¤ê½ü¤­¤Þ¤·¤¿...\n"
+"¥Õ¥¡¥¤¥ë̾: %(filename)s\n"
+"·¿: %(ctype)s\n"
+"¥µ¥¤¥º: %(size)d ¥Ð¥¤¥È\n"
+"ÀâÌÀ: %(desc)s\n"
+"URL: %(url)s\n"
+
+#: Mailman/Handlers/Scrubber.py:258
+msgid "Skipped content of type %(partctype)s"
+msgstr "MIME ¥¿¥¤¥× %(partctype)s Èô¤Ð¤·¤Þ¤¹"
+
+#: Mailman/Handlers/Scrubber.py:275
+msgid "-------------- next part --------------\n"
+msgstr ""
+
+#: Mailman/Handlers/ToDigest.py:141
+msgid "%(realname)s Digest, Vol %(volume)d, Issue %(issue)d"
+msgstr "%(realname)s ¤Þ¤È¤áÆÉ¤ß, %(volume)d ´¬, %(issue)d ¹æ"
+
+#: Mailman/Handlers/ToDigest.py:181
+msgid "digest header"
+msgstr "¤Þ¤È¤áÆÉ¤ß¥Ø¥Ã¥À"
+
+#: Mailman/Handlers/ToDigest.py:184
+msgid "Digest Header"
+msgstr "¤Þ¤È¤áÆÉ¤ßÁ°½ñ¤­"
+
+#: Mailman/Handlers/ToDigest.py:197
+msgid "Today's Topics:\n"
+msgstr "ËÜÆü¤ÎÏÃÂê:\n"
+
+#: Mailman/Handlers/ToDigest.py:267
+msgid "Today's Topics (%(msgcount)d messages)"
+msgstr "ËÜÆü¤ÎÏÃÂê (%(msgcount)d ÄÌ)"
+
+#: Mailman/Handlers/ToDigest.py:292
+msgid "digest footer"
+msgstr "¤Þ¤È¤áÆÉ¤ß¥Õ¥Ã¥¿"
+
+#: Mailman/Handlers/ToDigest.py:295
+msgid "Digest Footer"
+msgstr "¤Þ¤È¤áÆÉ¤ß¸å½ñ¤­"
+
+#: Mailman/Handlers/ToDigest.py:309
+msgid "End of "
+msgstr "°Ê¾å: "
+
+#: Mailman/ListAdmin.py:307
+msgid "Posting of your message titled \"%(subject)s\""
+msgstr "¤¢¤Ê¤¿¤Î·ï̾ %(subject)s ¤ÎÅê¹Æ¥á¥Ã¥»¡¼¥¸"
+
+#: Mailman/ListAdmin.py:346
+msgid "Forward of moderated message"
+msgstr "ÊÝᤵ¤ì¤¿¥á¡¼¥ë¤ÎžÁ÷"
+
+#: Mailman/ListAdmin.py:405
+msgid "New subscription request to list %(realname)s from %(addr)s"
+msgstr "%(realname)s ¥ê¥¹¥È¤Ø %(addr)s ¤«¤é¿·µ¬Æþ²ñ¿½¤·¹þ¤ß"
+
+#: Mailman/ListAdmin.py:428
+msgid "Subscription request"
+msgstr "Æþ²ñ¿½ÀÁ"
+
+#: Mailman/ListAdmin.py:458
+msgid "New unsubscription request from %(realname)s by %(addr)s"
+msgstr "%(realname)s ¥ê¥¹¥È¤Ø %(addr)s ¤«¤é¿·µ¬Âà²ñ¿½¤·¹þ¤ß"
+
+#: Mailman/ListAdmin.py:481
+msgid "Unsubscription request"
+msgstr "Âà²ñ¿½ÀÁ"
+
+#: Mailman/ListAdmin.py:512
+msgid "Original Message"
+msgstr "¸µ¤Î¥á¥Ã¥»¡¼¥¸"
+
+#: Mailman/ListAdmin.py:515
+msgid "Request to mailing list %(realname)s rejected"
+msgstr "%(realname)s ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ø¤Î¿½ÀÁ¤ÏµÑ²¼¤µ¤ì¤Þ¤·¤¿"
+
+#: Mailman/MTA/Manual.py:57
+msgid ""
+"The mailing list `%(listname)s' has been created via the through-the-web\n"
+"interface. In order to complete the activation of this mailing list, the\n"
+"proper /etc/aliases (or equivalent) file must be updated. The program\n"
+"`newaliases' may also have to be run.\n"
+"\n"
+"Here are the entries for the /etc/aliases file:\n"
+msgstr ""
+"¥á¡¼¥ê¥ó¥°¥ê¥¹¥È `%(listname)s' ¤¬, Web ¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò»È¤Ã¤Æ\n"
+"ºîÀ®¤µ¤ì¤Þ¤·¤¿. ¤³¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ÎºîÀ®¤ò´°Î»¤µ¤»¤ë¤Ë¤Ï, \n"
+"/etc/aliases (¤Þ¤¿¤ÏƱÅù)¤ò¹¹¿·¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹. ¤Þ¤¿, `newaliases'\n"
+"¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤âɬÍפǤ·¤ç¤¦. \n"
+"\n"
+"°Ê²¼¤Ï, /etc/aliases ¤ËÆþ¤ì¤ë¤Ù¤­¹àÌܤǤ¹:\n"
+
+#: Mailman/MTA/Manual.py:67
+msgid ""
+"\n"
+"To finish creating your mailing list, you must edit your /etc/aliases (or\n"
+"equivalent) file by adding the following lines, and possibly running the\n"
+"`newaliases' program:\n"
+"\n"
+"## %(listname)s mailing list"
+msgstr ""
+"\n"
+"¤¢¤Ê¤¿¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥ÈºîÀ®¤ò´°Î»¤¹¤ë¤Ë¤Ï, /etc/aliases (¤Þ¤¿¤ÏƱÅù¤Î\n"
+"¥Õ¥¡¥¤¥ë) ¤Ë, ¼¡¤Î¹Ô¤òÉÕ¤±²Ã¤¨¤Æ¤ä¤é¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó. \n"
+"¤Þ¤¿, ¿ʬ, `newaliases' ¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤Ç¤·¤ç¤¦. \n"
+"\n"
+"## %(listname)s mailing list"
+
+#: Mailman/MTA/Manual.py:88
+msgid "Mailing list creation request for list %(listname)s"
+msgstr "%(listname)s ¥á¡¼¥ê¥ó¥°¥ê¥¹¥ÈºîÀ®¤Î¿½ÀÁ"
+
+#: Mailman/MTA/Manual.py:103
+msgid ""
+"The mailing list `%(listname)s' has been removed via the through-the-web\n"
+"interface. In order to complete the de-activation of this mailing list, "
+"the\n"
+"appropriate /etc/aliases (or equivalent) file must be updated. The program\n"
+"`newaliases' may also have to be run.\n"
+"\n"
+"Here are the entries in the /etc/aliases file that should be removed:\n"
+msgstr ""
+"¥á¡¼¥ê¥ó¥°¥ê¥¹¥È `%(listname)s' ¤¬, Web ¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò»È¤Ã¤Æ\n"
+"ºï½ü¤µ¤ì¤Þ¤·¤¿. ¤³¤Îºï½ü¤ò´°Î»¤µ¤»¤ë¤Ë¤Ï, \n"
+"/etc/aliases (¤Þ¤¿¤ÏƱÅù)¤ò¹¹¿·¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹. ¤Þ¤¿, `newaliases'\n"
+"¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤âɬÍפǤ·¤ç¤¦. \n"
+"\n"
+"°Ê²¼¤Ï, /etc/aliases ¤«¤éºï½ü¤¹¤Ù¤­¹àÌܤǤ¹:\n"
+
+#: Mailman/MTA/Manual.py:113
+msgid ""
+"\n"
+"To finish removing your mailing list, you must edit your /etc/aliases (or\n"
+"equivalent) file by removing the following lines, and possibly running the\n"
+"`newaliases' program:\n"
+"\n"
+"## %(listname)s mailing list"
+msgstr ""
+"\n"
+"¤¢¤Ê¤¿¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥Èºï½ü¤ò´°Î»¤¹¤ë¤Ë¤Ï, /etc/aliases (¤Þ¤¿¤ÏƱÅù¤Î\n"
+"¥Õ¥¡¥¤¥ë) ¤«¤é, ¼¡¤Î¹Ô¤òºï½ü¤·¤Æ¤ä¤é¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó. \n"
+"¤Þ¤¿, ¿ʬ, `newaliases' ¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤Ç¤·¤ç¤¦. \n"
+"\n"
+"## %(listname)s mailing list"
+
+#: Mailman/MTA/Manual.py:132
+msgid "Mailing list removal request for list %(listname)s"
+msgstr "%(listname)s ¥á¡¼¥ê¥ó¥°¥ê¥¹¥Èºï½ü¤Î¿½ÀÁ"
+
+#: Mailman/MTA/Postfix.py:300
+msgid "checking permissions on %(file)s"
+msgstr " %(file)s ¤Î¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤ò¥Á¥§¥Ã¥¯Ãæ"
+
+#: Mailman/MTA/Postfix.py:310
+msgid "%(file)s permissions must be 066x (got %(octmode)s)"
+msgstr ""
+"%(file)s ¤Î¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤Ï 066x ¤Ç¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó (%(octmode)s "
+"¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹"
+
+#: Mailman/MTA/Postfix.py:312 Mailman/MTA/Postfix.py:339 bin/check_perms:100
+#: bin/check_perms:122 bin/check_perms:132 bin/check_perms:143
+#: bin/check_perms:162 bin/check_perms:180 bin/check_perms:200
+#: bin/check_perms:224 bin/check_perms:244 bin/check_perms:258
+#: bin/check_perms:278 bin/check_perms:315
+msgid "(fixing)"
+msgstr "(½¤ÀµÃæ)"
+
+#: Mailman/MTA/Postfix.py:328
+msgid "checking ownership of %(dbfile)s"
+msgstr "%(dbfile)s ¤Î½êÍ­¼Ô¤ò¥Á¥§¥Ã¥¯Ãæ"
+
+#: Mailman/MTA/Postfix.py:336
+msgid "%(dbfile)s owned by %(owner)s (must be owned by %(user)s"
+msgstr "%(dbfile)s ¤Î½êÍ­¼Ô¤Ï %(owner)s ¤Ç¤¹. (%(user)s ¤Ç¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó)"
+
+#: Mailman/MailList.py:697
+msgid "You have been invited to join the %(listname)s mailing list"
+msgstr "¤¢¤Ê¤¿¤Ï%(listname)s ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ØÆþ²ñ¤ò¾·ÂÔ¤µ¤ì¤Æ¤¤¤Þ¤¹."
+
+#: Mailman/MailList.py:801 Mailman/MailList.py:1157
+msgid " from %(remote)s"
+msgstr " %(remote)s ¤«¤é"
+
+#: Mailman/MailList.py:835
+msgid "subscriptions to %(realname)s require moderator approval"
+msgstr "%(realname)s ¤Ø¤ÎÆþ²ñ¤Ë¤Ï´ÉÍý¼Ô¤Î¾µÇ§¤¬É¬ÍפǤ¹"
+
+#: Mailman/MailList.py:894 bin/add_members:281
+msgid "%(realname)s subscription notification"
+msgstr "%(realname)s Æþ²ñÄÌÃÎ"
+
+#: Mailman/MailList.py:909
+msgid "unsubscriptions require moderator approval"
+msgstr "Âà²ñ¤Ë¤Ï´ÉÍý¼Ô¤Î¾µÇ§¤¬É¬ÍפǤ¹"
+
+#: Mailman/MailList.py:928
+msgid "%(realname)s unsubscribe notification"
+msgstr "%(realname)s Âà²ñÄÌÃÎ"
+
+#: Mailman/MailList.py:1072
+msgid "subscriptions to %(name)s require administrator approval"
+msgstr "%(name)s ¤Ø¤ÎÆþ²ñ¤Ë¤Ï´ÉÍý¼Ô¤Î¾µÇ§¤¬É¬ÍפǤ¹"
+
+#: Mailman/MailList.py:1326
+msgid "Last autoresponse notification for today"
+msgstr "ËÜÆü¤ÎºÇ¿·¼«Æ°±þÅú"
+
+#: Mailman/Queue/BounceRunner.py:179
+msgid ""
+"The attached message was received as a bounce, but either the bounce format\n"
+"was not recognized, or no member addresses could be extracted from it. "
+"This\n"
+"mailing list has been configured to send all unrecognized bounce messages "
+"to\n"
+"the list administrator(s).\n"
+"\n"
+"For more information see:\n"
+"%(adminurl)s\n"
+"\n"
+msgstr ""
+"źÉդΥ᡼¥ë¤ÏÇÛÁ÷¥¨¥é¡¼¤È¤·¤Æ¼õ¤±¼è¤Ã¤¿¤â¤Î¤Ç¤¹¤¬, \n"
+"¥¨¥é¡¼·Á¼°¤¬Ç§¼±¤Ç¤­¤Ê¤¤¤«, ²ñ°÷¥¢¥É¥ì¥¹¤ò¼è¤ê½Ð¤»\n"
+"¤Ê¤«¤Ã¤¿¤â¤Î¤Ç¤¹. ¤³¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ç¤Ï, ǧ¼±\n"
+"¤Ç¤­¤Ê¤¤ÇÛÁ÷¥¨¥é¡¼¤ò¥ê¥¹¥È´ÉÍý¼Ô¤ËžÁ÷¤¹¤ë¤è¤¦¤Ë\n"
+"ÀßÄꤷ¤Æ¤¤¤Þ¤¹.\n"
+"\n"
+"¾Ü¤·¤¯¤Ï:\n"
+"%(adminurl)s\n"
+"¤ò¤´Í÷²¼¤µ¤¤.\n"
+"\n"
+
+#: Mailman/Queue/BounceRunner.py:189
+msgid "Uncaught bounce notification"
+msgstr "¼«Æ°ÇÛÁ÷¥¨¥é¡¼½èÍý¤ÎÎã³°ÄÌÃÎ"
+
+#: Mailman/Queue/CommandRunner.py:74
+msgid "Ignoring non-text/plain MIME parts"
+msgstr "text/plain¤Ç¤Ê¤¤MIME¥Ñ¡¼¥È¤ò̵»ë"
+
+#: Mailman/Queue/CommandRunner.py:129
+msgid ""
+"The results of your email command are provided below.\n"
+"Attached is your original message.\n"
+msgstr ""
+"¥á¡¼¥ë¥³¥Þ¥ó¥É¤Î·ë²Ì¤Ï°Ê²¼¤Î¤È¤ª¤ê¤Ç¤¹. ¤Þ¤¿, ¸µ¤Î¥á¡¼¥ë¤òÉÕ¤±¤Æ¤¤¤Þ¤¹.\n"
+
+#: Mailman/Queue/CommandRunner.py:134
+msgid "- Results:"
+msgstr "- ·ë²Ì:"
+
+#: Mailman/Queue/CommandRunner.py:140
+msgid ""
+"\n"
+"- Unprocessed:"
+msgstr ""
+"\n"
+"- ½èÍý¤Ç¤­¤º:"
+
+#: Mailman/Queue/CommandRunner.py:143
+msgid ""
+"\n"
+"- Ignored:"
+msgstr ""
+"\n"
+"- ̵»ë:"
+
+#: Mailman/Queue/CommandRunner.py:145
+msgid ""
+"\n"
+"- Done.\n"
+"\n"
+msgstr ""
+"\n"
+"- ´°Î».\n"
+"\n"
+
+#: Mailman/Queue/CommandRunner.py:163
+msgid "The results of your email commands"
+msgstr "¥á¡¼¥ë¥³¥Þ¥ó¥É¤Î·ë²Ì"
+
+#: Mailman/htmlformat.py:627
+msgid "Delivered by Mailman<br>version %(version)s"
+msgstr "Mailman Âè %(version)s ÈÇ<br> ¤¬¤ªÆÏ¤±¤·¤Þ¤¹"
+
+#: Mailman/htmlformat.py:628
+msgid "Python Powered"
+msgstr "Python ¤Ç¸µµ¤"
+
+#: Mailman/htmlformat.py:629
+msgid "Gnu's Not Unix"
+msgstr "¥Ì¡¼¤Ï Unix ¤ä¤¢¤é¤Ø¤ó"
+
+#: Mailman/i18n.py:86
+msgid "Mon"
+msgstr "·î"
+
+#: Mailman/i18n.py:86
+msgid "Thu"
+msgstr "ÌÚ"
+
+#: Mailman/i18n.py:86
+msgid "Tue"
+msgstr "²Ð"
+
+#: Mailman/i18n.py:86
+msgid "Wed"
+msgstr "¿å"
+
+#: Mailman/i18n.py:87
+msgid "Fri"
+msgstr "¶â"
+
+#: Mailman/i18n.py:87
+msgid "Sat"
+msgstr "ÅÚ"
+
+#: Mailman/i18n.py:87
+msgid "Sun"
+msgstr "Æü"
+
+#: Mailman/i18n.py:91
+msgid "Apr"
+msgstr "4·î"
+
+#: Mailman/i18n.py:91
+msgid "Feb"
+msgstr "2·î"
+
+#: Mailman/i18n.py:91
+msgid "Jan"
+msgstr "1·î"
+
+#: Mailman/i18n.py:91
+msgid "Jun"
+msgstr "6·î"
+
+#: Mailman/i18n.py:91
+msgid "Mar"
+msgstr "3·î"
+
+#: Mailman/i18n.py:92
+msgid "Aug"
+msgstr "8·î"
+
+#: Mailman/i18n.py:92
+msgid "Dec"
+msgstr "12·î"
+
+#: Mailman/i18n.py:92
+msgid "Jul"
+msgstr "7·î"
+
+#: Mailman/i18n.py:92
+msgid "Nov"
+msgstr "11·î"
+
+#: Mailman/i18n.py:92
+msgid "Oct"
+msgstr "10·î"
+
+#: Mailman/i18n.py:92
+msgid "Sep"
+msgstr "9·î"
+
+#: Mailman/i18n.py:95
+msgid "Server Local Time"
+msgstr "¥µ¡¼¥Ð¡¼¤ÎÃÏÊý»þ´Ö"
+
+#: Mailman/i18n.py:128
+msgid ""
+"%(wday)s %(mon)s %(day)2i %(hh)02i:%(mm)02i:%(ss)02i %(tzname)s %(year)04i"
+msgstr ""
+"%(year)04iǯ %(mon)s %(day)2iÆü (%(wday)s) %(hh)02i:%(mm)02i:%(ss)02i "
+"%(tzname)s"
+
+#: bin/add_members:26
+msgid ""
+"Add members to a list from the command line.\n"
+"\n"
+"Usage:\n"
+" add_members [options] listname\n"
+"\n"
+"Options:\n"
+"\n"
+" --regular-members-file=file\n"
+" -r file\n"
+" A file containing addresses of the members to be added, one\n"
+" address per line. This list of people become non-digest\n"
+" members. If file is `-', read addresses from stdin. Note that\n"
+" -n/--non-digest-members-file are deprecated synonyms for this "
+"option.\n"
+"\n"
+" --digest-members-file=file\n"
+" -d=file\n"
+" Similar to above, but these people become digest members.\n"
+"\n"
+" --changes-msg=<y|n>\n"
+" -c <y|n> \n"
+"\tSet whether or not to send the list members the `there's going to be\n"
+"\tbig changes to your list' message. defaults to no.\n"
+"\n"
+" --welcome-msg=<y|n>\n"
+" -w <y|n>\n"
+" Set whether or not to send the list members a welcome message,\n"
+" overriding whatever the list's `send_welcome_msg' setting is.\n"
+"\n"
+" --admin-notify=<y|n>\n"
+" -a <y|n>\n"
+" Set whether or not to send the list administrators a notification "
+"on\n"
+" the success/failure of these subscriptions, overriding whatever the\n"
+" list's `admin_notify_mchanges' setting is.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname\n"
+" The name of the Mailman list you are adding members to. It must\n"
+" already exist.\n"
+"\n"
+"You must supply at least one of -r and -d options. At most one of the\n"
+"files can be `-'.\n"
+msgstr ""
+"¥³¥Þ¥ó¥É¹Ô¤«¤é²ñ°÷ÅÐÏ¿¤¹¤ë.\n"
+"\n"
+"»ÈÍÑË¡:\n"
+" add_members [¥ª¥×¥·¥ç¥ó] ¥ê¥¹¥È̾\n"
+"\n"
+"¥ª¥×¥·¥ç¥ó:\n"
+"\n"
+" --regular-members-file=¥Õ¥¡¥¤¥ë\n"
+" -r ¥Õ¥¡¥¤¥ë\n"
+" ÅÐÏ¿¤¹¤ë²ñ°÷¤Î¥¢¥É¥ì¥¹¤¬Æþ¤Ã¤¿¥Õ¥¡¥¤¥ë. 1 ¹Ô¤Ë 1 ¥¢¥É¥ì¥¹.\n"
+" ¤³¤Î²ñ°÷¤ÏÄ̾ïÇÛÁ÷²ñ°÷¤Ë¤Ê¤ê¤Þ¤¹. ¤â¤·, ¥Õ¥¡¥¤¥ë¤¬ `-' ¤Ç¤¢¤ì\n"
+" ¤Ð, ¥á¡¼¥ë¥¢¥É¥ì¥¹¤òɸ½àÆþÎϤ«¤éÆÉ¤ß¹þ¤ß¤Þ¤¹.\n"
+" -n/--non-digest-members-file ¤ÏƱ¤¸°ÕÌ£¤Ç¤¹¤¬»È¤¨¤Ê¤¯¤Ê¤Ã¤¿\n"
+" ¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤\n"
+"\n"
+" --digest-members-file=¥Õ¥¡¥¤¥ë\n"
+" -d=¥Õ¥¡¥¤¥ë\n"
+" ¾å¤ÈƱÍÍ. ⤷, ¤³¤Î²ñ°÷¤Ï¤Þ¤È¤áÆÉ¤ß²ñ°÷¤Ë¤Ê¤ê¤Þ¤¹.\n"
+"\n"
+" --changes-msg=<y|n>\n"
+" -c <y|n> \n"
+" ¥ê¥¹¥È²ñ°÷¤Ë`¥ê¥¹¥È¤ËÂ礭¤ÊÊѲ½¤¬¤¢¤ê¤Þ¤¹'¤Î¥á¡¼¥ë¤òÁ÷¤ë¤«\n"
+" ¤É¤¦¤«. ¥Ç¥Õ¥©¥ë¥È¤Ï No ¤Ç¤¹.\n"
+"\n"
+" --welcome-msg=<y|n>\n"
+" -w <y|n>\n"
+" ¥ê¥¹¥È²ñ°÷¤Ë, ´¿·Þ¤Î¥á¡¼¥ë¤ò½Ð¤¹¤«¤É¤¦¤«. ¤³¤ì¤Ï `send_selcome_msg'\n"
+" ¤ÎÀßÄê¤ÎÇ¡²¿¤Ë·¸¤ï¤é¤ºÍ­¸ú¤Ë¤Ê¤ê¤Þ¤¹.\n"
+"\n"
+" --admin-notify=<y|n>\n"
+" -a <y|n>\n"
+" ¥ê¥¹¥È´ÉÍý¼Ô¤ËÅÐÏ¿¤ÎÀ®¸ù/¼ºÇÔ¤òÄÌÃΤ¹¤ë¤«¤É¤¦¤«.\n"
+" ¤³¤ì¤Ï `admin_notify_mchanges' ¤ÎÀßÄê¤è¤êÍ¥À褷¤Þ¤¹.\n"
+"\n"
+" --help\n"
+" -h\n"
+" ¤³¤Î¥Ø¥ë¥×¥á¥Ã¥»¡¼¥¸¤ò½ÐÎϤ·¤Æ½ªÎ»¤·¤Þ¤¹.\n"
+"\n"
+" listname\n"
+" ²ñ°÷ÅÐÏ¿¤·¤è¤¦¤È¤¹¤ë Mailman¥ê¥¹¥È̾. ´û¤ËºîÀ®¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð\n"
+" ¤Ê¤ê¤Þ¤»¤ó.\n"
+"\n"
+"¾¯¤Ê¤¯¤È¤â -n ¤È -d ¤Î¤É¤Á¤é¤«¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó.\n"
+"¤Þ¤¿, ¤½¤Î¤¦¤Á `-' ¤Ç¤â¤è¤¤¤Î¤Ï, °ì¤Ä¤À¤±¤Ç¤¹.\n"
+
+#: bin/add_members:134
+msgid "Big change in %(listname)s@%(listhost)s mailing list"
+msgstr "%(listname)s@%(listhost)s ¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ËÂ礭¤ÊÊѹ¹¤¬¤¢¤ê¤Þ¤·¤¿"
+
+#: bin/add_members:167
+msgid "Already a member: %(member)s"
+msgstr "´û¤Ë²ñ°÷¤Ç¤¹: %(member)s"
+
+#: bin/add_members:170
+msgid "Bad/Invalid email address: blank line"
+msgstr "ÉÔÀµ/̵¸ú¤Ê¥á¡¼¥ë¥¢¥É¥ì¥¹: ¶õÇò¹Ô"
+
+#: bin/add_members:172
+msgid "Bad/Invalid email address: %(member)s"
+msgstr "ÉÔÀµÌµ¸ú¤Ê¥á¡¼¥ë¥¢¥É¥ì¥¹: %(member)s"
+
+#: bin/add_members:174
+msgid "Hostile address (illegal characters): %(member)s"
+msgstr "Èóͧ¹¥Åª¥¢¥É¥ì¥¹ (ÉÔÀµ¤Êʸ»ú): %(member)s"
+
+#: bin/add_members:176
+msgid "Subscribed: %(member)s"
+msgstr "Æþ²ñ¤·¤Þ¤·¤¿: %(member)s"
+
+#: bin/add_members:223
+msgid "Bad argument to -c/--changes-msg: %(arg)s"
+msgstr "-c/--change-msg ¤Ø¤Î°ú¿ô¤¬°ã¤¤¤Þ¤¹: %(arg)s"
+
+#: bin/add_members:230
+msgid "Bad argument to -w/--welcome-msg: %(arg)s"
+msgstr "-w/--welcome-msg ¤Ø¤Î°ú¿ô¤¬°ã¤¤¤Þ¤¹: %(arg)s"
+
+#: bin/add_members:237
+msgid "Bad argument to -a/--admin-notify: %(arg)s"
+msgstr "-a/--admin-notify ¤Ø¤Î°ú¿ô¤¬°ã¤¤¤Þ¤¹: %(arg)s"
+
+#: bin/add_members:243
+msgid "Cannot read both digest and normal members from standard input."
+msgstr "¤Þ¤È¤áÆÉ¤ß¤ÈÉáÄ̤ÎξÊý¤Î²ñ°÷¤òɸ½àÆþÎϤ«¤éÆÉ¤ß¹þ¤à¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó."
+
+#: bin/add_members:249 bin/config_list:105 bin/find_member:97 bin/inject:90
+#: bin/list_admins:89 bin/list_members:187 bin/sync_members:222
+#: cron/bumpdigests:86
+msgid "No such list: %(listname)s"
+msgstr "%(listname)s ¤È¤¤¤¦¥ê¥¹¥È¤Ï¤¢¤ê¤Þ¤»¤ó"
+
+#: bin/add_members:269 bin/change_pw:158 bin/check_db:114 bin/sync_members:244
+#: cron/bumpdigests:78
+msgid "Nothing to do."
+msgstr "¤Ê¤Ë¤â¤¹¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó."
+
+#: bin/arch:19
+msgid ""
+"Rebuild a list's archive.\n"
+"\n"
+"Use this command to rebuild the archives for a mailing list. You may want "
+"to\n"
+"do this if you edit some messages in an archive, or remove some messages "
+"from\n"
+"an archive.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] <listname> [<mbox>]\n"
+"\n"
+"Where options are:\n"
+" -h / --help\n"
+" Print this help message and exit.\n"
+"\n"
+" -q / --quiet\n"
+" Make the archiver output less verbose.\n"
+"\n"
+" --wipe\n"
+" First wipe out the original archive before regenerating. You "
+"usually\n"
+" want to specify this argument unless you're generating the archive "
+"in\n"
+" chunks.\n"
+"\n"
+" -s N\n"
+" --start=N\n"
+" Start indexing at article N, where article 0 is the first in the "
+"mbox.\n"
+" Defaults to 0.\n"
+"\n"
+" -e M\n"
+" --end=M\n"
+" End indexing at article M. This script is not very efficient with\n"
+" respect to memory management, and for large archives, it may not be\n"
+" possible to index the mbox entirely. For that reason, you can "
+"specify\n"
+" the start and end article numbers.\n"
+"\n"
+"Where <mbox> is the path to a list's complete mbox archive. Usually this "
+"will\n"
+"be some path in the archives/private directory. For example:\n"
+"\n"
+"%% bin/arch mylist archives/private/mylist.mbox/mylist.mbox\n"
+"\n"
+"<mbox> is optional. If it is missing, it is calculated.\n"
+msgstr ""
+"¥ê¥¹¥È¤ÎÊݸ½ñ¸Ë¤òºÆ¹½ÃÛ¤¹¤ë.\n"
+"\n"
+"¤³¤Î¥³¥Þ¥ó¥É¤Ç¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ÎÊݸ½ñ¸Ë¤òºÆ¹½ÃÛ¤·¤Þ¤¹. Êݸ½ñ¸ËÆâ¤Î\n"
+"¥á¡¼¥ë¤òÊÔ½¸¤·¤¿¤êºï½ü¤·¤¿¤È¤­¤Ë, ¤³¤Î¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¤È¤è¤¤¤Ç¤·¤ç¤¦.\n"
+"\n"
+"»ÈÍÑË¡: %(PROGRAM)s [¥ª¥×¥·¥ç¥ó] <¥ê¥¹¥È̾> [<mbox ¥Õ¥¡¥¤¥ë>]\n"
+"\n"
+"¤³¤³¤Ç¥ª¥×¥·¥ç¥ó¤Ï:\n"
+" -h / --help\n"
+" ¤³¤Î¥Ø¥ë¥×¥á¥Ã¥»¡¼¥¸¤ò½ÐÎϤ·¤Æ½ªÎ»¤¹¤ë.\n"
+"\n"
+" -q / -quiet\n"
+" Êݸ½ñ¸ËºîÀ®»þ¤Î¥á¥Ã¥»¡¼¥¸¤òÍÞÀ©¤¹¤ë.\n"
+"\n"
+" --wipe\n"
+" ºÆ¹½ÃÛÁ°¤Ë¸µ¤ÎÊݸ½ñ¸Ë¤ò¾Ã¤·µî¤ë. Êݸ½ñ¸Ë¤òʬ³ä¤·¤ÆºÆ¹½ÃÛ¤¹¤ë\n"
+" ¾ì¹ç°Ê³°¤Ç¤Ï, ¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤¿¤Û¤¦¤¬¤è¤¤¤Ç¤·¤ç¤¦.\n"
+"\n"
+" -s N\n"
+" --start=N\n"
+" NÈÖÌܤε­»ö¤«¤éÌܼ¡¤òºîÀ®¤¹¤ë. ⤷, 0ÈÖÌܤ¬ mbox ¤ÎºÇ½é¤Îµ­»ö\n"
+" ¤Ç¤¢¤ê, »ØÄꤷ¤Ê¤¤¾ì¹ç¤Ï 0 ¤È¤Ê¤ë.\n"
+"\n"
+" -e M\n"
+" --end=M\n"
+" MÈÖÌܤε­»ö¤ÇÌܼ¡ºîÀ®¤ò½ª¤ë. ¤³¤Î¥¹¥¯¥ê¥×¥È¤Ïµ­²±Îΰè´ÉÍý¤¬¸úΨ\n"
+" Ū¤Ç¤Ï¤Ê¤¤¤Î¤Ç, Â礭¤ÊÊݸ½ñ¸Ë¤òºîÀ®¤·¤è¤¦¤È¤¹¤ë¤È, mbox ¥Õ¥¡¥¤¥ë\n"
+" Á´ÂΤ«¤é°ìÅÙ¤ËÌܼ¡¤òºîÀ®¤¹¤ë¤Î¤ÏÉÔ²Äǽ¤«¤â¤·¤ì¤Þ¤»¤ó. ¤³¤ÎÍýͳ¤Ç\n"
+" ºÇ½é¤ÈºÇ¸å¤Îµ­»öÈÖ¹æ¤ò»ØÄê¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹.\n"
+"\n"
+"⤷, <mbox ¥Õ¥¡¥¤¥ë̾> ¤Ï mbox ·Á¼°¤Ë¤Ê¤Ã¤¿¥ê¥¹¥È¤Î²áµîµ­»ö¤Ø¤Î¥Ñ¥¹¤Ç,\n"
+"¤³¤ì¤Ï, ¤¿¤¤¤Æ¤¤ archives/private ¥Ç¥£¥ì¥¯¥È¥ê¤Î²¼¤Ë¤¢¤ê¤Þ¤¹. Î㤨¤Ð: \n"
+"\n"
+"%% bin/arch mylist archives/private/mylist.mbox/mylist.mbox\n"
+"\n"
+"<mbox ¥Õ¥¡¥¤¥ë̾> ¤Ï¥ª¥×¥·¥ç¥ó¤Ç, ¤â¤·Ìµ¤±¤ì¤Ð, ¾åµ­¤ÎÎã¤Î¤è¤¦¤Ëɸ½à¤Î\n"
+"mbox ¥Õ¥¡¥¤¥ë¤Ø¤Î¥Ñ¥¹¤¬»È¤ï¤ì¤Þ¤¹.\n"
+
+#: bin/arch:125
+msgid "listname is required"
+msgstr "¥ê¥¹¥È̾¤¬É¬ÍפǤ¹."
+
+#: bin/arch:143 bin/change_pw:106 bin/config_list:242
+msgid ""
+"No such list \"%(listname)s\"\n"
+"%(e)s"
+msgstr "%(listname)s ¤È¤¤¤¦¥ê¥¹¥È¤Ï¤¢¤ê¤Þ¤»¤ó: %(e)s"
+
+#: bin/arch:170
+msgid "Cannot open mbox file %(mbox)s: %(msg)s"
+msgstr "mbox¥Õ¥¡¥¤¥ë %(mbox)s ¤ò³«¤±¤Þ¤»¤ó: %(msg)s"
+
+#: bin/b4b5-archfix:19
+msgid ""
+"Fix the MM2.1b4 archives.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] file ...\n"
+"\n"
+"Where options are:\n"
+" -h / --help\n"
+" Print this help message and exit.\n"
+"\n"
+"Only use this to `fix' some archive database files that may have gotten\n"
+"written in Mailman 2.1b4 with some bogus data. Use like this from your\n"
+"$PREFIX directory\n"
+"\n"
+"%% %(PROGRAM)s `grep -l _mlist archives/private/*/database/*-article`\n"
+"\n"
+"(note the backquotes are required)\n"
+"\n"
+"You will need to run `bin/check_perms -f' after running this script.\n"
+msgstr ""
+"MM2.1b4 ·Á¼°¤ÎÊݸ½ñ¸Ë¤ò½¤Àµ¤¹¤ë.\n"
+"\n"
+"»ÈÍÑË¡: %(PROGRAM)s [¥ª¥×¥·¥ç¥ó] ¥Õ¥¡¥¤¥ë ...\n"
+"\n"
+"⤷, ¥ª¥×¥·¥ç¥ó¤Ï:\n"
+" -h / --help\n"
+" ¤³¤Î¥Ø¥ë¥×¥á¥Ã¥»¡¼¥¸¤ò½ÐÎϤ·¤Æ½ªÎ»¤¹¤ë.\n"
+"\n"
+"Mailman 2.1b4 ¤ÇºîÀ®¤µ¤ì;·×¤Ê¥Ç¡¼¥¿¤¬½ñ¤­¹þ¤Þ¤ì¤¿Êݸ½ñ¸Ë¤ò½¤Àµ¤¹¤ë\n"
+"¤¿¤á¤Ë¤À¤±»È¤¤¤Þ¤¹. $PREFIX ¥Ç¥£¥ì¥¯¥È¥ê¤«¤é, ¼¡¤Î¤è¤¦¤Ë»È¤Ã¤Æ¤¯¤À¤µ¤¤.\n"
+"\n"
+"%% %(PROGRAM)s `grep -l _mlist archives/private/*/database/*-article`\n"
+"\n"
+"(¥Ð¥Ã¥¯¥¯¥©¡¼¥È¤¬É¬ÍפǤ¢¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤)\n"
+"\n"
+"¤³¤Î¥¹¥¯¥ê¥×¥È¤ò¼Â¹Ô¤·¤¿¸å¤Ç, bin/check_perms -f ¤ò¼Â¹Ô¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹.\n"
+
+#: bin/change_pw:19
+msgid ""
+"Change a list's password.\n"
+"\n"
+"Prior to Mailman 2.1, list passwords were kept in crypt'd format -- "
+"usually.\n"
+"Some Python installations didn't have the crypt module available, so they'd\n"
+"fall back to md5. Then suddenly the Python installation might grow a crypt\n"
+"module and all list passwords would be broken.\n"
+"\n"
+"In Mailman 2.1, all list and site passwords are stored in SHA1 hexdigest\n"
+"form. This breaks list passwords for all existing pre-Mailman 2.1 lists, "
+"and\n"
+"since those passwords aren't stored anywhere in plain text, they cannot be\n"
+"retrieved and updated.\n"
+"\n"
+"Thus, this script generates new passwords for a list, and optionally sends "
+"it\n"
+"to all the owners of the list.\n"
+"\n"
+"Usage: change_pw [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" --all / -a\n"
+" Change the password for all lists.\n"
+"\n"
+" --domain=domain\n"
+" -d domain\n"
+" Change the password for all lists in the virtual domain `domain'. "
+"It\n"
+" is okay to give multiple -d options.\n"
+"\n"
+" --listname=listname\n"
+" -l listname\n"
+" Change the password only for the named list. It is okay to give\n"
+" multiple -l options.\n"
+"\n"
+" --password=newpassword\n"
+" -p newpassword\n"
+" Use the supplied plain text password `newpassword' as the new "
+"password\n"
+" for any lists that are being changed (as specified by the -a, -d, "
+"and\n"
+" -l options). If not given, lists will be assigned a randomly\n"
+" generated new password.\n"
+"\n"
+" --quiet / -q\n"
+" Don't notify list owners of the new password. You'll have to have\n"
+" some other way of letting the list owners know the new password\n"
+" (presumably out-of-band).\n"
+"\n"
+" --help / -h\n"
+" Print this help message and exit.\n"
+msgstr ""
+"¥ê¥¹¥È¤Î¥Ñ¥¹¥ï¡¼¥É¤òÊѹ¹¤¹¤ë.\n"
+"\n"
+"Mailman 2.1 °ÊÁ°¤Ç¤Ï, ¥ê¥¹¥È¤Î¥Ñ¥¹¥ï¡¼¥É¤Ï--ÉáÄÌ--°Å¹æ²½¤µ¤ì¤Æ¤¤¤Þ¤·¤¿.\n"
+"Python ¤Î¼ÂÁõ¤Ë¤è¤Ã¤Æ¤Ï crypt ¥â¥¸¥å¡¼¥ë¤¬Ìµ¤¯¤Æ, MD5 ¤Ç°Å¹æ²½¤·¤Æ¤¤¤Þ\n"
+"¤·¤¿. ¤È¤³¤í¤¬, Python ¤ò¥Ð¡¼¥¸¥ç¥ó¥¢¥Ã¥×¤¹¤ë¤È crypt ¥â¥¸¥å¡¼¥ë¤¬¥¤¥ó\n"
+"¥¹¥È¡¼¥ë¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤ê, ¤½¤Î¤¿¤áÆÍÁ³¥Ñ¥¹¥ï¡¼¥É¤¬²õ¤ì¤Æ¤·¤Þ¤¦¤³¤È¤¬¤¢\n"
+"¤ê¤Þ¤¹.\n"
+"\n"
+"Mailman 2.1 ¤Ç¤Ï, Á´¤Æ¤Î¥µ¥¤¥È¥Ñ¥¹¥ï¡¼¥É¤Ï SHA1 16¿Ê¿ô¤Î·Á¼°¤ÇÊݸ¤µ¤ì\n"
+"¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿. ¤³¤Î¤¿¤á, Mailman 2.1 °ÊÁ°¤ÎÁ´¤Æ¤Î¥Ñ¥¹¥ï¡¼¥É¤Ï²õ¤ì\n"
+"¤Æ¤·¤Þ¤¤, ¤³¤ì¤é¤Î¥Ñ¥¹¥ï¡¼¥É¤Ïʿʸ¤Ç¤Ï¤É¤³¤Ë¤âÊݸ¤µ¤ì¤Æ¤¤¤Ê¤¤¤¿¤á, ¼è\n"
+"¤êÌ᤹¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó.\n"
+"\n"
+"¤³¤Î¤¿¤á, ¤³¤Î¥¹¥¯¥ê¥×¥È¤Ï¿·¤·¤¤¥ê¥¹¥È¥Ñ¥¹¥ï¡¼¥É¤òÀ¸À®¤·, ¥ª¥×¥·¥ç¥ó¤Ç\n"
+"Á´¤Æ¤Î¥ê¥¹¥È´ÉÍý¼Ô¤ËÁ÷¿®¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹.\n"
+"\n"
+"»ÈÍÑË¡: change_pw [¥ª¥×¥·¥ç¥ó]\n"
+"\n"
+"¥ª¥×¥·¥ç¥ó:\n"
+"\n"
+" --all / -a\n"
+" Á´Éô¤Î¥ê¥¹¥È¤Ë¤Ä¤¤¤Æ¥Ñ¥¹¥ï¡¼¥É¤òÊѹ¹¤¹¤ë.\n"
+"\n"
+" --domain=¥É¥á¥¤¥ó̾\n"
+" -d ¥É¥á¥¤¥ó̾\n"
+" ¡Ö¥É¥á¥¤¥ó̾¡×¤Î²¾Áۥɥᥤ¥ó¤Î¥ê¥¹¥ÈÁ´Éô¤Ë¤Ä¤¤¤Æ¥Ñ¥¹¥ï¡¼¥É¤òÊÑ\n"
+" ¹¹¤¹¤ë. Ê£¿ô¤Î -d ¥ª¥×¥·¥ç¥ó¤òÉÕ¤±¤ë¤³¤È¤â²Äǽ.\n"
+"\n"
+" --listname=¥ê¥¹¥È̾\n"
+" -l ¥ê¥¹¥È̾\n"
+" ÆÃÄê¤Î¥ê¥¹¥È¤Ë¤Ä¤¤¤Æ¤À¤±¥Ñ¥¹¥ï¡¼¥É¤òÊѹ¹¤¹¤ë. Ê£¿ô¤Î -l ¥ª¥×¥·¥ç\n"
+" ¥ó¤òÉÕ¤±¤ë¤³¤È¤â²Äǽ.\n"
+"\n"
+" --password=¿·¥Ñ¥¹¥ï¡¼¥É\n"
+" -p ¿·¥Ñ¥¹¥ï¡¼¥É\n"
+" ¤³¤Îʿʸ¤Ç½ñ¤¤¤¿¡Ö¿·¥Ñ¥¹¥ï¡¼¥É¡×¤òÊѹ¹¤¹¤ë¥ê¥¹¥È¤Î¿·¤·¤¤¥Ñ¥¹¥ï¡¼\n"
+" ¥É¤Ë¤¹¤ë. (-a, -d, -l ¤Î¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë) ¤â¤·Ìµ¤¤¾ì\n"
+" ¹ç¤Ë¤Ï, ¿·¤·¤¤¥Ñ¥¹¥ï¡¼¥É¤¬¥é¥ó¥À¥à¤ËÀ¸À®¤µ¤ì¤ë.\n"
+"\n"
+" --quiet / -q\n"
+" ¥ê¥¹¥È´ÉÍý¼Ô¤Ë¿·¤·¤¤¥Ñ¥¹¥ï¡¼¥É¤òÄÌÃΤ·¤Ê¤¤. ¥Ñ¥¹¥ï¡¼¥É¤¬¿·¤·¤¯\n"
+" ¤Ê¤Ã¤¿¤³¤È¤Ë¤Ä¤¤¤Æ¤Ï, Ê̤ÎÊýË¡¤ÇÅÁ¤¨¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó.\n"
+"\n"
+" --help / h\n"
+" ¤³¤Î¥Ø¥ë¥×¥á¥Ã¥»¡¼¥¸¤ò½ÐÎϤ·¤Æ½ªÎ»¤¹¤ë.\n"
+
+#: bin/change_pw:144
+msgid "Bad arguments: %(strargs)s"
+msgstr "°ú¿ô¤¬°ã¤¤¤Þ¤¹: %(strargs)s"
+
+#: bin/change_pw:148
+msgid "Empty list passwords are not allowed"
+msgstr "¥ê¥¹¥È¤Î¥Ñ¥¹¥ï¡¼¥É¤Ï¶õÇò¤Ë¤Ç¤­¤Þ¤»¤ó"
+
+#: bin/change_pw:179
+msgid "New %(listname)s password: %(notifypassword)s"
+msgstr "%(listname)s ¤Î¿·¥Ñ¥¹¥ï¡¼¥É: %(notifypassword)s"
+
+#: bin/change_pw:188
+msgid "Your new %(listname)s list password"
+msgstr "%(listname)s ¤Î¿·¤·¤¤¥ê¥¹¥È¥Ñ¥¹¥ï¡¼¥É"
+
+#: bin/change_pw:189
+msgid ""
+"The site administrator at %(hostname)s has changed the password for your\n"
+"mailing list %(listname)s. It is now\n"
+"\n"
+" %(notifypassword)s\n"
+"\n"
+"Please be sure to use this for all future list administration. You may "
+"want\n"
+"to log in now to your list and change the password to something more to "
+"your\n"
+"liking. Visit your list admin page at\n"
+"\n"
+" %(adminurl)s\n"
+msgstr ""
+"%(hostname)s ¤Î¥µ¥¤¥È´ÉÍý¼Ô¤¬, ¤¢¤Ê¤¿¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È %(listname)s\n"
+"¤Î´ÉÍý¥Ñ¥¹¥ï¡¼¥É¤òÊѹ¹¤·¤Þ¤·¤¿. ¸½ºß¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹.\n"
+"\n"
+" %(notifypassword)s\n"
+"\n"
+"°Ê¸å¤Î¥ê¥¹¥È´ÉÍý¤Ë¤Ï¤³¤Î¥Ñ¥¹¥ï¡¼¥É¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤. \n"
+"¤¿¤À¤Á¤ËÊ̤Υѥ¹¥ï¡¼¥É¤ËÊѹ¹¤·¤¿¤¤¤È»×¤ï¤ì¤ë¾ì¹ç¤Ï,\n"
+"°Ê²¼¤Î´ÉÍý¥Ú¡¼¥¸¤«¤éÊѹ¹¤·¤Æ¤¯¤À¤µ¤¤.\n"
+"\n"
+" %(adminurl)s\n"
+
+#: bin/check_db:19
+msgid ""
+"Check a list's config database file for integrity.\n"
+"\n"
+"All of the following files are checked:\n"
+"\n"
+" config.pck\n"
+" config.pck.last\n"
+" config.db\n"
+" config.db.last\n"
+" config.safety\n"
+"\n"
+"It's okay if any of these are missing. config.pck and config.pck.last are\n"
+"pickled versions of the config database file for 2.1a3 and beyond. "
+"config.db\n"
+"and config.db.last are used in all earlier versions, and these are Python\n"
+"marshals. config.safety is a pickle written by 2.1a3 and beyond when the\n"
+"primary config.pck file could not be read.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname [listname ...]]\n"
+"\n"
+"Options:\n"
+"\n"
+" --all / -a\n"
+" Check the databases for all lists. Otherwise only the lists named "
+"on\n"
+" the command line are checked.\n"
+"\n"
+" --verbose / -v\n"
+" Verbose output. The state of every tested file is printed.\n"
+" Otherwise only corrupt files are displayed.\n"
+"\n"
+" --help / -h\n"
+" Print this text and exit.\n"
+msgstr ""
+"¥ê¥¹¥È¤ÎÀßÄê¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò¥Á¥§¥Ã¥¯¤¹¤ë.\n"
+"\n"
+"°Ê²¼¤Î¥Õ¥¡¥¤¥ë¤ò¥Á¥§¥Ã¥¯¤¹¤ë:\n"
+"\n"
+" config.pck\n"
+" config.pck.last\n"
+" config.db\n"
+" config.db.last\n"
+" config.safety\n"
+"\n"
+"¤³¤ì¤é¤Î¤¦¤Á¤É¤ì¤«¤¬Ìµ¤¯¤Æ¤â¤«¤Þ¤¤¤Þ¤»¤ó. config.pck ¤È config.pck.last\n"
+"¤Ï, 2.1a3 °Ê¹ß¤ÎÀßÄê¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ç pickle ¥â¥¸¥å¡¼¥ë¤ò»ÈÍѤ·¤Æ¤¤¤Þ¤¹.\n"
+"config.db ¤È config.db.last ¤Ï¤½¤ì°ÊÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç»È¤ï¤ì¤Æ¤¤¤¿¤â¤Î\n"
+"¤Ç, Python marshal ¥â¥¸¥å¡¼¥ë¤ò»È¤Ã¤Æ¤¤¤Þ¤¹. config.safety ¤Ï, 2.13a\n"
+"°Ê¹ß¤Ç config.pck ¤¬ÆÉ¤á¤Ê¤¤¤È¤­¤ËºîÀ®¤µ¤ì¤ë pickle ¤Ç¤¹.\n"
+"\n"
+"»ÈÍÑË¡: %(PROGRAM)s [¥ª¥×¥·¥ç¥ó] [¥ê¥¹¥È̾ [¥ê¥¹¥È̾ ...]]\n"
+"\n"
+"¥ª¥×¥·¥ç¥ó:\n"
+"\n"
+" --all / -a\n"
+" Á´Éô¤Î¥ê¥¹¥È¤Ë¤Ä¤¤¤Æ¥Á¥§¥Ã¥¯¤¹¤ë. ¤Ç¤Ê¤±¤ì¤Ð¥ê¥¹¥È̾¤Î»ØÄê\n"
+" ¤µ¤ì¤¿¤â¤Î¤Ë¤Ä¤¤¤Æ¤Î¤ß¥Á¥§¥Ã¥¯¤¹¤ë\n"
+"\n"
+" --verbose / -v\n"
+" ½ÐÎϾðÊó¤ò¿¤¯½Ð¤¹. ¥Á¥§¥Ã¥¯¤¹¤ë¥Õ¥¡¥¤¥ë¤ÎÁ´¤Æ¤Ë¤Ä¤¤¤Æ, ¤½¤Î\n"
+" ¾õ¶·¤ò½ÐÎϤ¹¤ë. ¤Ç¤Ê¤±¤ì¤Ð, ²õ¤ì¤¿¥Õ¥¡¥¤¥ë¤À¤±¤òɽ¼¨¤¹¤ë.\n"
+"\n"
+" --help / -h\n"
+" ¤³¤Î¥Ø¥ë¥×¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¤Æ½ªÎ»¤¹¤ë.\n"
+
+#: bin/check_db:119
+msgid "No list named:"
+msgstr "¥ê¥¹¥È¤¬¤¢¤ê¤Þ¤»¤ó:"
+
+#: bin/check_db:128
+msgid "List:"
+msgstr "¥ê¥¹¥È:"
+
+#: bin/check_db:148
+msgid " %(file)s: okay"
+msgstr " %(file)s: ÎÉ"
+
+#: bin/check_perms:19
+msgid ""
+"Check the permissions for the Mailman installation.\n"
+"\n"
+"Usage: %(PROGRAM)s [-f] [-v] [-h]\n"
+"\n"
+"With no arguments, just check and report all the files that have bogus\n"
+"permissions or group ownership. With -f (and run as root), fix all the\n"
+"permission problems found. With -v be verbose.\n"
+"\n"
+msgstr ""
+"Mailman ¥¤¥ó¥¹¥È¡¼¥ë¤Î¤¿¤á¤Î¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤ò¥Á¥§¥Ã¥¯¤¹¤ë.\n"
+"\n"
+"»ÈÍÑË¡: %(PROGRAM)s [-f] [-v] [-h]\n"
+"\n"
+"°ú¿ô¤¬Ìµ¤¤¾ì¹ç¤Ë¤Ï, ¥Á¥§¥Ã¥¯¤·¤Æ¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤ä¥°¥ë¡¼¥×½êÍ­¸¢¤¬\n"
+"°ã¤Ã¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤òÊó¹ð¤·¤Þ¤¹. -f ¥ª¥×¥·¥ç¥ó¤òÉÕ¤±¤Æ(root¸¢¸Â¤Ç\n"
+"¼Â¹Ô¤·¤Æ)¤¤¤ë¾ì¹ç¤Ë¤Ï, Á´Éô¤Î¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤ÎÌäÂê¤ò½¤Àµ¤·¤Þ¤¹.\n"
+"-v ¥ª¥×¥·¥ç¥ó¤Ç¤è¤ê¿¤¯¤Î¾ðÊó¤ò½ÐÎϤ·¤Þ¤¹.\n"
+
+#: bin/check_perms:85
+msgid " checking gid and mode for %(path)s"
+msgstr " %(path)s ¤Î gid ¤È¥â¡¼¥É¤ò¥Á¥§¥Ã¥¯"
+
+#: bin/check_perms:97
+msgid "%(path)s bad group (has: %(groupname)s, expected %(MAILMAN_GROUP)s)"
+msgstr ""
+"%(path)s ¥°¥ë¡¼¥× (%(groupname)s ¤Ç¤¹¤¬ %(MAILMAN_GROUP)s ¤Ë¤·¤Æ¤¯¤À¤µ¤¤)"
+
+#: bin/check_perms:120
+msgid "directory permissions must be %(octperms)s: %(path)s"
+msgstr ""
+"%(path)s: ¥Ç¥£¥ì¥¯¥È¥ê¤Î¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤Ï %(octperms)s ¤Ç¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó"
+
+#: bin/check_perms:129
+msgid "source perms must be %(octperms)s: %(path)s"
+msgstr ""
+"%(path)s: ¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Î¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤Ï %(octperms)s ¤Ç¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó"
+
+#: bin/check_perms:140
+msgid "article db files must be %(octperms)s: %(path)s"
+msgstr ""
+"%(path)s: µ­»ö¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë¤Ï %(octperms)s ¤Ç¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó"
+
+#: bin/check_perms:152
+msgid "checking mode for %(prefix)s"
+msgstr "%(prefix)s ¤Î¥â¡¼¥É¤ò¥Á¥§¥Ã¥¯"
+
+#: bin/check_perms:160
+msgid "directory must be at least 02775: %(d)s"
+msgstr "%(d)s: ¥Ç¥£¥ì¥¯¥È¥ê¤ÏºÇÄã 02775 ¤Ç¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó"
+
+#: bin/check_perms:173
+msgid "checking perms on %(private)s"
+msgstr "%(private)s ¤Î¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤ò¥Á¥§¥Ã¥¯"
+
+#: bin/check_perms:178
+msgid "%(private)s must not be other-readable"
+msgstr "%(private)s ¤Ï other ¤¬ÆÉ¤ß¼è¤ê²Äǽ¤Ç¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó"
+
+#: bin/check_perms:198
+msgid "mbox file must be at least 0660:"
+msgstr "mbox ¥Õ¥¡¥¤¥ë¤ÏºÇÄã 0660 ¤Ç¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó"
+
+#: bin/check_perms:222
+msgid "%(dbdir)s \"other\" perms must be 000"
+msgstr "%(dbdir)s ¤Ï other ¤Ëµö²Ä¤òÍ¿¤¨¤Æ¤Ï¤¤¤±¤Þ¤»¤ó"
+
+#: bin/check_perms:233
+msgid "checking cgi-bin permissions"
+msgstr "cgi-bin ¤Î¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤ò¥Á¥§¥Ã¥¯"
+
+#: bin/check_perms:238
+msgid " checking set-gid for %(path)s"
+msgstr " %(path)s ¤Î set-gid ¤ò¥Á¥§¥Ã¥¯"
+
+#: bin/check_perms:242
+msgid "%(path)s must be set-gid"
+msgstr "%(path)s ¤Ï set-gid ¤µ¤ì¤Æ¤Ê¤¤¤È¤¤¤±¤Þ¤»¤ó"
+
+#: bin/check_perms:252
+msgid "checking set-gid for %(wrapper)s"
+msgstr "%(wrapper)s ¤Î set-gid ¤ò¥Á¥§¥Ã¥¯"
+
+#: bin/check_perms:256
+msgid "%(wrapper)s must be set-gid"
+msgstr "%(wrapper)s ¤Ï set-gid ¤µ¤ì¤Æ¤Ê¤¤¤È¤¤¤±¤Þ¤»¤ó"
+
+#: bin/check_perms:266
+msgid "checking permissions on %(pwfile)s"
+msgstr "%(pwfile)s ¤Î¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤ò¥Á¥§¥Ã¥¯"
+
+#: bin/check_perms:275
+msgid "%(pwfile)s permissions must be exactly 0640 (got %(octmode)s)"
+msgstr ""
+"%(pwfile)s ¤Î¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤¬ %(octmode)s ¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¤¬, 0640 "
+"¤Ç¤Ê¤¤¤È¤¤¤±¤Þ¤»¤ó"
+
+#: bin/check_perms:299
+msgid "checking permissions on list data"
+msgstr "¥ê¥¹¥È¥Ç¡¼¥¿¤Î¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤ò¥Á¥§¥Ã¥¯"
+
+#: bin/check_perms:305
+msgid " checking permissions on: %(path)s"
+msgstr " %(path)s ¤Î¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤ò¥Á¥§¥Ã¥¯"
+
+#: bin/check_perms:313
+msgid "file permissions must be at least 660: %(path)s"
+msgstr "%(path)s ¥Õ¥¡¥¤¥ë¤Î¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤ÏºÇÄã 660 ¤Ç¤Ê¤¤¤È¤¤¤±¤Þ¤»¤ó"
+
+#: bin/check_perms:359
+msgid "No problems found"
+msgstr "ÌäÂꤢ¤ê¤Þ¤»¤ó"
+
+#: bin/check_perms:361
+msgid "Problems found:"
+msgstr "ÌäÂ꤬¤¢¤ê¤Þ¤¹:"
+
+#: bin/check_perms:362
+msgid "Re-run as %(MAILMAN_USER)s (or root) with -f flag to fix"
+msgstr "½¤Àµ¤¹¤ë¤Ë¤Ï -f ¤ò¤Ä¤±¤Æ %(MAILMAN_USER)s ¤« root ¤Ç¼Â¹Ô¤·¤Æ¤¯¤À¤µ¤¤"
+
+#: bin/cleanarch:19
+msgid ""
+"Clean up an .mbox archive file.\n"
+"\n"
+"The archiver looks for Unix-From lines separating messages in an mbox "
+"archive\n"
+"file. For compatibility, it specifically looks for lines that start with\n"
+"\"From \" -- i.e. the letters capital-F, lowercase-r, o, m, space, ignoring\n"
+"everything else on the line.\n"
+"\n"
+"Normally, any lines that start \"From \" in the body of a message should be\n"
+"escaped such that a > character is actually the first on a line. It is\n"
+"possible though that body lines are not actually escaped. This script\n"
+"attempts to fix these by doing a stricter test of the Unix-From lines. Any\n"
+"lines that start \"From \" but do not pass this stricter test are escaped "
+"with a\n"
+"> character.\n"
+"\n"
+"Usage: cleanarch [options] < inputfile > outputfile\n"
+"Options:\n"
+" -s n\n"
+" --status=n\n"
+" Print a # character every n lines processed\n"
+"\n"
+" -q / --quiet\n"
+" Don't print changed line information to standard error.\n"
+"\n"
+" -n / --dry-run\n"
+" Don't actually output anything.\n"
+"\n"
+" -h / --help\n"
+" Print this message and exit\n"
+msgstr ""
+".mbox ¤Î²áµî¥á¡¼¥ë¥Õ¥¡¥¤¥ë¤ò¤­¤ì¤¤¤Ë¤¹¤ë.\n"
+"\n"
+"Êݸ½ñ¸Ë¤ÎºîÀ®¤Ë¤Ï, mbox ·Á¼°¤Î²áµî¥á¡¼¥ë¥Õ¥¡¥¤¥ë¤«¤é Unix-From ¹Ô¤ò\n"
+"õ¤·½Ð¤·¤Þ¤¹. ¸ß´¹À­¤Î¤¿¤á, ÆÃ¤Ë \"From \" ¤Ç»Ï¤Þ¤ë¹Ô -- ¤Ä¤Þ¤ê, \n"
+"Âçʸ»ú¤Î F ¤Ç»Ï¤Þ¤Ã¤Æ, ¾®Ê¸»ú¤Î r, o, m ¤È¶õÇò¤òõ¤·, ¤½¤Î¹Ô¤Î»Ä¤ê\n"
+"̵»ë¤·¤Þ¤¹.\n"
+"\n"
+"Ä̾ï, ¥á¡¼¥ëËÜÊ¸Ãæ¤Î \"From \" ¤Ç»Ï¤Þ¤ë¹Ô¤Ï > ¤Îʸ»ú¤Ç¥¨¥¹¥±¡¼¥×\n"
+"¤µ¤ì¤Æ¤¤¤ë¤Ï¤º¤Ç¤¹. ¤·¤«¤·, ¾ì¹ç¤Ë¤è¤Ã¤Æ¤ÏËÜʸ¤Î¹Ô¤¬¥¨¥¹¥±¡¼¥×¤µ¤ì¤Æ\n"
+"¤¤¤Ê¤¤¤«¤â¤·¤ì¤Þ¤»¤ó. ¤³¤Î¥¹¥¯¥ê¥×¥È¤Ï, Unix-From ¹Ô¤ò¸·Ì©¤Ë¸¡ºº¤¹¤ë\n"
+"¤³¤È¤Ë¤è¤ê, ¤³¤ì¤Î½¤Àµ¤ò»î¤ß¤ë¤â¤Î¤Ç¤¹. \"From \" ¤Ç»Ï¤Þ¤Ã¤Æ¤¤¤ë¤¬,\n"
+"¤³¤Î¸·Ì©¤Ê¸¡ºº¤ËÄ̤é¤Ê¤¤¹Ô¤Ï, > ¤Îʸ»ú¤ò»È¤Ã¤Æ¥¨¥¹¥±¡¼¥×¤·¤Þ¤¹.\n"
+"\n"
+"»ÈÍÑË¡: cleanarch [¥ª¥×¥·¥ç¥ó] < ÆþÎÏ¥Õ¥¡¥¤¥ë > ½ÐÎÏ¥Õ¥¡¥¤¥ë\n"
+"¥ª¥×¥·¥ç¥ó:\n"
+" -s n\n"
+" -status=n\n"
+" n ¹Ô½èÍý¤¹¤ë¤´¤È¤Ë # ¤ò1¤Ä¤º¤Ä½ÐÎϤ·¤Þ¤¹\n"
+"\n"
+" -q / --quiet\n"
+" Êѹ¹¤Î¤¢¤Ã¤¿¹Ô¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤òɸ½à¥¨¥é¡¼½ÐÎϤ˽Ф·¤Þ¤»¤ó.\n"
+"\n"
+" -n / --dry-run\n"
+" ¼ÂºÝ¤Ë¤Ï¤Ê¤Ë¤â½ÐÎϤ·¤Ê¤¤\n"
+"\n"
+" -h / --help\n"
+" ¤³¤Î¥Ø¥ë¥×¤ò½ÐÎϤ·¤Æ½ªÎ»¤¹¤ë\n"
+
+#: bin/cleanarch:82
+msgid "Unix-From line changed: %(lineno)d"
+msgstr "Unix-From ¹Ô¤òÊѹ¹: %(lineno)d"
+
+#: bin/cleanarch:110
+msgid "Bad status number: %(arg)s"
+msgstr "¥¹¥Æ¡¼¥¿¥¹¿ô¤¬ÉÔÀµ: %(arg)s"
+
+#: bin/cleanarch:160
+msgid "%(messages)d messages found"
+msgstr "%(messages)d ¸Ä¤Î¥á¡¼¥ë¤¬¸«¤Ä¤«¤ê¤Þ¤·¤¿"
+
+#: bin/clone_member:19
+msgid ""
+"Clone a member address.\n"
+"\n"
+"Cloning a member address means that a new member will be added who has all "
+"the\n"
+"same options and passwords as the original member address. Note that this\n"
+"operation is fairly trusting of the user who runs it -- it does no\n"
+"verification to the new address, it does not send out a welcome message, "
+"etc.\n"
+"\n"
+"The existing member's subscription is usually not modified in any way. If "
+"you\n"
+"want to remove the old address, use the -r flag. If you also want to "
+"change\n"
+"any list admin addresses, use the -a flag.\n"
+"\n"
+"Usage:\n"
+" clone_member [options] fromoldaddr tonewaddr\n"
+"\n"
+"Where:\n"
+"\n"
+" --listname=listname\n"
+" -l listname\n"
+" Check and modify only the named mailing lists. If -l is not given,\n"
+" then all mailing lists are scanned from the address. Multiple -l\n"
+" options can be supplied.\n"
+"\n"
+" --remove\n"
+" -r\n"
+" Remove the old address from the mailing list after it's been "
+"cloned.\n"
+"\n"
+" --admin\n"
+" -a\n"
+" Scan the list admin addresses for the old address, and clone or "
+"change\n"
+" them too.\n"
+"\n"
+" --quiet\n"
+" -q\n"
+" Do the modifications quietly.\n"
+"\n"
+" --nomodify\n"
+" -n\n"
+" Print what would be done, but don't actually do it. Inhibits the\n"
+" --quiet flag.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" fromoldaddr (`from old address') is the old address of the user. "
+"tonewaddr\n"
+" (`to new address') is the new address of the user.\n"
+"\n"
+msgstr ""
+"²ñ°÷¥¢¥É¥ì¥¹¤Î¥¯¥í¡¼¥óºîÀ®.\n"
+"\n"
+"²ñ°÷¥¢¥É¥ì¥¹¤Î¥¯¥í¡¼¥óºîÀ®¤È¤Ï, ¸µ¤Î²ñ°÷¥¢¥É¥ì¥¹¤ÈÁ´¤¯Æ±¤¸¥ª¥×¥·¥ç¥ó¤È\n"
+"¥Ñ¥¹¥ï¡¼¥É¤Ç¿·¤·¤¤²ñ°÷¤òÅÐÏ¿¤¹¤ë¤³¤È¤ò°ÕÌ£¤·¤Þ¤¹. Ãí°ÕÅÀ¤È¤·¤Æ¤Ï, ¤³¤Î\n"
+"Áàºî¤Ï¼Â¹Ô¼Ô¤ò¿®ÍѤ·¤Æ¤¤¤ë¤³¤È¤Ç¤¹. ¤Ä¤Þ¤ê, ¿·¤·¤¤¥¢¥É¥ì¥¹¤Î³Îǧ¤ä, \n"
+"¤è¤¦¤³¤½¥á¡¼¥ë¤Îȯ¿®¤Ê¤É¤ò¹Ô¤ï¤Ê¤¤¤È¤¤¤¦¤³¤È¤Ç¤¹.\n"
+"\n"
+"´û¸²ñ°÷¤ÎÅÐÏ¿¾õ¶·¤Ë¤ÏÊѹ¹¤Ï¤¢¤ê¤Þ¤»¤ó. ¤â¤·, ¸Å¤¤¥¢¥É¥ì¥¹¤òºï½ü¤·¤¿¤¤\n"
+"¤Î¤Ç¤¢¤ì¤Ð, -r ¥Õ¥é¥°¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤. ¤Þ¤¿, ¥ê¥¹¥È´ÉÍý¥¢¥É¥ì¥¹¤òÊѹ¹\n"
+"¤·¤¿¤¤¤Î¤Ç¤¢¤ì¤Ð, -a ¥Õ¥é¥°¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤.\n"
+"\n"
+"»ÈÍÑË¡:\n"
+" clone_member [¥ª¥×¥·¥ç¥ó] µì¥¢¥É¥ì¥¹ ¿·¥¢¥É¥ì¥¹\n"
+"\n"
+"⤷:\n"
+"\n"
+" --listname=¥ê¥¹¥È̾\n"
+" -l ¥ê¥¹¥È̾\n"
+" ¥ê¥¹¥È̾¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ë¤Ä¤¤¤Æ¤À¤±Êѹ¹¤¹¤ë. ¤â¤·, -l ¤¬\n"
+" ̵¤±¤ì¤Ð, Á´¤Æ¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤òÁöºº¤¹¤ë. -l ¥ª¥×¥·¥ç¥ó¤ò\n"
+" Ê£¿ô»ØÄꤹ¤ë¤³¤È¤â²Äǽ.\n"
+"\n"
+" --remove\n"
+" -r\n"
+" ¥¯¥í¡¼¥óºîÀ®¸å, µì¥¢¥É¥ì¥¹¤ò¥ê¥¹¥È¤«¤éºï½ü¤¹¤ë.\n"
+"\n"
+" --admin\n"
+" -a\n"
+" ¥ê¥¹¥È¤Î´ÉÍý¼Ô¥¢¥É¥ì¥¹¤«¤éµì¥¢¥É¥ì¥¹¤òõ¤·, ¤½¤ì¤â¥¯¥í¡¼¥ó\n"
+" ºîÀ®¤Þ¤¿¤ÏÊѹ¹¤¹¤ë.\n"
+"\n"
+" --quiet\n"
+" -q\n"
+" Êѹ¹¤òÀŤ«¤Ë¹Ô¤¦.\n"
+"\n"
+" --nomodify\n"
+" -n\n"
+" ¤É¤³¤òÊѹ¹¤¹¤ë¤«É½¼¨¤¹¤ë¤¬, ¼ÂºÝ¤Ë¤ÏÊѹ¹¤·¤Ê¤¤. --quiet¥Õ¥é¥°\n"
+" ¤È¤Ï¶¦ÍѤǤ­¤Ê¤¤.\n"
+"\n"
+" --help\n"
+" -h\n"
+" ¤³¤Î¥Ø¥ë¥×¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¤Æ½ªÎ»¤¹¤ë.\n"
+"\n"
+"µì¥¢¥É¥ì¥¹¤Ï¥æ¡¼¥¶¤ÎÊѹ¹Á°¤Î¥¢¥É¥ì¥¹¤Ç, ¿·¥¢¥É¥ì¥¹¤ÏÊѹ¹¸å¤Î¥¢¥É¥ì¥¹.\n"
+
+#: bin/clone_member:94
+msgid "processing mailing list:"
+msgstr "¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Î½èÍý¤ò¼Â¹ÔÃæ:"
+
+#: bin/clone_member:101
+msgid " scanning list owners:"
+msgstr " ¥ê¥¹¥È´ÉÍý¼Ô¤ò¥¹¥­¥ã¥óÃæ:"
+
+#: bin/clone_member:119
+msgid " new list owners:"
+msgstr " ¿·¥ê¥¹¥È´ÉÍý¼Ô:"
+
+#: bin/clone_member:121
+msgid "(no change)"
+msgstr "(Êѹ¹¤Ê¤·)"
+
+#: bin/clone_member:130
+msgid " address not found:"
+msgstr " ¥¢¥É¥ì¥¹¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó:"
+
+#: bin/clone_member:139
+msgid " clone address added:"
+msgstr " ¥¯¥í¡¼¥ó¥¢¥É¥ì¥¹¤òÄɲÃ:"
+
+#: bin/clone_member:142
+msgid " clone address is already a member:"
+msgstr " ¥¯¥í¡¼¥ó¥¢¥É¥ì¥¹¤Ï´û¤Ë²ñ°÷¤Ç¤¹"
+
+#: bin/clone_member:145
+msgid " original address removed:"
+msgstr " ¸µ¤Î¥¢¥É¥ì¥¹¤òºï½ü:"
+
+#: bin/clone_member:196
+msgid "Not a valid email address: %(toaddr)s"
+msgstr "ÉÔÀµ¤Ê¥á¡¼¥ë¥¢¥É¥ì¥¹: %(toaddr)s"
+
+#: bin/clone_member:209
+msgid ""
+"Error opening list \"%(listname)s\", skipping.\n"
+"%(e)s"
+msgstr "%(listname)s ¥ê¥¹¥È¤¬¥¨¥é¡¼¤Ç³«¤±¤Þ¤»¤ó, Èô¤Ð¤·¤Þ¤¹: %(e)s"
+
+#: bin/config_list:19
+msgid ""
+"Configure a list from a text file description.\n"
+"\n"
+"Usage: config_list [options] listname\n"
+"\n"
+"Options:\n"
+" --inputfile filename\n"
+" -i filename\n"
+" Configure the list by assigning each module-global variable in the\n"
+" file to an attribute on the list object, then saving the list. The\n"
+" named file is loaded with execfile() and must be legal Python code.\n"
+" Any variable that isn't already an attribute of the list object is\n"
+" ignored (a warning message is printed). See also the -c option.\n"
+"\n"
+" A special variable named `mlist' is put into the globals during the\n"
+" execfile, which is bound to the actual MailList object. This lets "
+"you\n"
+" do all manner of bizarre thing to the list object, but BEWARE! "
+"Using\n"
+" this can severely (and possibly irreparably) damage your mailing "
+"list!\n"
+"\n"
+" --outputfile filename\n"
+" -o filename\n"
+" Instead of configuring the list, print out a list's configuration\n"
+" variables in a format suitable for input using this script. In "
+"this\n"
+" way, you can easily capture the configuration settings for a\n"
+" particular list and imprint those settings on another list. "
+"filename\n"
+" is the file to output the settings to. If filename is `-', "
+"standard\n"
+" out is used.\n"
+"\n"
+" --checkonly\n"
+" -c\n"
+" With this option, the modified list is not actually changed. Only\n"
+" useful with -i.\n"
+"\n"
+" --verbose\n"
+" -v\n"
+" Print the name of each attribute as it is being changed. Only "
+"useful\n"
+" with -i.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+"The options -o and -i are mutually exclusive.\n"
+"\n"
+msgstr ""
+"¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤Îµ­½Ò¤«¤é¥ê¥¹¥È¤ÎÀßÄê¤ò¹Ô¤¦.\n"
+"\n"
+"»ÈÍÑË¡: config_list [¥ª¥×¥·¥ç¥ó] ¥ê¥¹¥È̾\n"
+"\n"
+"¥ª¥×¥·¥ç¥ó:\n"
+" --inputfile ¥Õ¥¡¥¤¥ë̾\n"
+" -i ¥Õ¥¡¥¤¥ë̾\n"
+" ¥ê¥¹¥È¥ª¥Ö¥¸¥§¥¯¥È¤Î°À­¤Ë¥â¥¸¥å¡¼¥ë¤ÎÂç°èÊÑ¿ô¤ò³ä¤êÅö¤Æ¤ë\n"
+" ¤³¤È¤Ç¥ê¥¹¥È¤ÎÀßÄê¤ò¹Ô¤¤, ¥ê¥¹¥È¤òÊݸ¤¹¤ë. ¥Õ¥¡¥¤¥ë̾¤Ç\n"
+" »ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤Ï execfile() ¤ò»È¤Ã¤ÆÆÉ¤ß¹þ¤à¤Î¤Ç, ÀµÅö¤Ê\n"
+" Python ¤Î¥³¡¼¥É¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤. ´û¤Ë¥ê¥¹¥È¤Î°À­¤È¤·¤Æ\n"
+" ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤ÊÑ¿ô¤Ï̵»ë¤µ¤ì¤ë. (·Ù¹ð¥á¥Ã¥»¡¼¥¸¤¬½Ð¤ë)\n"
+" -c ¥ª¥×¥·¥ç¥ó¤â»²¾È¤Î¤³¤È.\n"
+"\n"
+" ÆÃÊ̤ÎÊÑ¿ô̾ mlist ¤¬Âç°èÊÑ¿ô¤ËÉÕ¤±¤é¤ì¤ë¤Î¤Ç, ¼ÂºÝ¤Î MailList\n"
+" ¥ª¥Ö¥¸¥§¥¯¥È¤Î°À­¤È¤Ê¤ë. ¤³¤Î¤³¤È¤Ï¥ê¥¹¥È¥ª¥Ö¥¸¥§¥¯¥È¤Ë\n"
+" ´Ø¤·¤Æ²¿¤Ç¤â¤Ç¤­¤ë¤³¤È¤Ë¤Ê¤ë¤¬, Ãí°Õ¤·¤Ê¤µ¤¤! ¤³¤ì¤ò\n"
+" »È¤¦¤È¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ë½ÅÂç¤Ê»³²¤òÍ¿¤¨(½¤ÉüÉÔ²Äǽ¤Ë)¤ë²ÄǽÀ­\n"
+" ¤¬¤¢¤ë.\n"
+"\n"
+" --outputfile ¥Õ¥¡¥¤¥ë̾\n"
+" -o filename\n"
+" ¥ê¥¹¥È¤ÎÀßÄê¤ò¹Ô¤¦¤Î¤Ç¤Ê¤¯, ¤³¤Î¥¹¥¯¥ê¥×¥È¤ÎÆþÎϤ˹礦ÍͤË,\n"
+" ¸½ºß¤ÎÀßÄêÊÑ¿ô¤ò½ÐÎϤ¹¤ë. ¤³¤ì¤Ë¤è¤Ã¤Æ, ¤¢¤ëÆÃÄê¤Î¥ê¥¹¥È¤Î\n"
+" ÀßÄê¤ò¼è¤ê½Ð¤·¤Æ, Ê̤Υꥹ¥È¤ÎÀßÄê¤Ë°Ü¤·ÊѤ¨¤ë¤³¤È¤¬¤Ç¤­¤ë.\n"
+" ¥Õ¥¡¥¤¥ë̾¤Ï¤½¤ÎÀßÄê½ÐÎϤ¬½ñ¤­¹þ¤Þ¤ì¤ë¥Õ¥¡¥¤¥ë¤Î̾Á°¤Ç¤¢¤ë. \n"
+" ¤³¤ì¤ò - ¤Ë¤·¤Æ¤ª¤¯¤È, ɸ½à½ÐÎϤ˽ñ¤­½Ð¤¹.\n"
+"\n"
+" --checkonly\n"
+" -c\n"
+" ¤³¤Î¥ª¥×¥·¥ç¥ó¤Ç¤Ï, ¼ÂºÝ¤ÎÊѹ¹¤Ï¹Ô¤ï¤ì¤Ê¤¤. -i ¥ª¥×¥·¥ç¥ó¤ò\n"
+" »È¤Ã¤¿¤È¤­¤À¤±Í­¸ú.\n"
+"\n"
+" --verbose\n"
+" -v\n"
+" °À­¤ËÊѹ¹¤¬¤¢¤Ã¤¿¤È¤­¤½¤Î̾Á°¤¬É½¼¨¤µ¤ì¤ë. -i ¥ª¥×¥·¥ç¥ó¤ò\n"
+" »È¤Ã¤¿¤È¤­¤À¤±Í­¸ú.\n"
+"\n"
+" --help\n"
+" -h\n"
+" ¤³¤Î¥Ø¥ë¥×¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¤Æ½ªÎ»¤¹¤ë.\n"
+"\n"
+"-o ¥ª¥×¥·¥ç¥ó¤È -i ¥ª¥×¥·¥ç¥ó¤ÏƱ»þ¤Ë»È¤¦¤³¤È¤¬¤Ç¤­¤Ê¤¤.\n"
+"\n"
+
+#: bin/config_list:109
+msgid ""
+"## \"%(listname)s\" mailing list configuration settings -*- python -*-\n"
+"## captured on %(when)s\n"
+msgstr ""
+"## \"%(listname)s\" ¥á¡¼¥ê¥ó¥°¥ê¥¹¥ÈÀßÄê -*- python -*-\n"
+"## %(when)s ¤ËÆÉ¤ß½Ð¤·\n"
+
+#: bin/config_list:131
+msgid "options"
+msgstr "¥ª¥×¥·¥ç¥ó"
+
+#: bin/config_list:188
+msgid "legal values are:"
+msgstr "Í­¸ú¤ÊÃͤÏ:"
+
+#: bin/config_list:255
+msgid "attribute \"%(k)s\" ignored"
+msgstr "°À­ \"%(k)s\" ¤ò̵»ë"
+
+#: bin/config_list:258
+msgid "attribute \"%(k)s\" changed"
+msgstr "°À­ \"%(k)s\" ¤òÊѹ¹"
+
+#: bin/config_list:264
+msgid "Non-standard property restored: %(k)s"
+msgstr "ɸ½à¤Ç¤Ê¤¤Ãͤò½¤Éü: %(k)s"
+
+#: bin/config_list:272
+msgid "Invalid value for property: %(k)s"
+msgstr "¥×¥í¥Ñ¥Æ¥£¤ÎÃͤ¬ÉÔÀµ: %(k)s"
+
+#: bin/config_list:274
+msgid "Bad email address for option %(k)s: %(v)s"
+msgstr "%(k)s ¤Î¥ª¥×¥·¥ç¥ó¤Ë¤Ä¤¤¤Æ¥á¡¼¥ë¥¢¥É¥ì¥¹¤¬ÉÔÀµ: %(v)s"
+
+#: bin/config_list:322
+msgid "Only one of -i or -o is allowed"
+msgstr "-i ¤« -o ¤Î¤É¤Á¤é¤«¤À¤±¤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤"
+
+#: bin/config_list:324
+msgid "One of -i or -o is required"
+msgstr "-i ¤« -o ¤Î°ì¤Ä¤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤"
+
+#: bin/config_list:328
+msgid "List name is required"
+msgstr "¥ê¥¹¥È̾¤¬É¬ÍפǤ¹."
+
+#: bin/convert.py:19
+msgid ""
+"Convert a list's interpolation strings from %-strings to $-strings.\n"
+"\n"
+"This script is intended to be run as a bin/withlist script, i.e.\n"
+"\n"
+"% bin/withlist -l -r convert <mylist>\n"
+msgstr ""
+"¥ê¥¹¥È¤ÎÆâÁÞʸ»ú¤ò %-ʸ»ú ¤«¤é $-ʸ»ú¤ËÊѹ¹¤¹¤ë.\n"
+"\n"
+"¤³¤Î¥¹¥¯¥ê¥×¥È¤Ï bin/withlist ¤Î¥¹¥¯¥ê¥×¥È¤È¤·¤Æ¼Â¹Ô¤¹¤ë, ¤Ä¤Þ¤ê\n"
+"\n"
+"% bin/withlist -l -r convert <¥ê¥¹¥È̾>\n"
+
+#: bin/convert.py:38 bin/fix_url.py:85
+msgid "Saving list"
+msgstr "¥ê¥¹¥È¤òÊÝÂ¸Ãæ"
+
+#: bin/convert.py:44 bin/fix_url.py:51
+msgid "%%%"
+msgstr ""
+
+#: bin/dumpdb:19
+msgid ""
+"Dump the contents of any Mailman `database' file.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] filename\n"
+"\n"
+"Options:\n"
+"\n"
+" --marshal/-m\n"
+" Assume the file contains a Python marshal, overridding any "
+"automatic\n"
+" guessing.\n"
+"\n"
+" --pickle/-p\n"
+" Assume the file contains a Python pickle, overridding any automatic\n"
+" guessing.\n"
+"\n"
+" --noprint/-n\n"
+" Don't attempt to pretty print the object. This is useful if "
+"there's\n"
+" some problem with the object and you just want to get an unpickled\n"
+" representation. Useful with `python -i bin/dumpdb <file>'. In "
+"that\n"
+" case, the root of the tree will be left in a global called \"msg\".\n"
+"\n"
+" --help/-h\n"
+" Print this help message and exit\n"
+"\n"
+"If the filename ends with `.db', then it is assumed that the file contains "
+"a\n"
+"Python marshal. If the file ends with `.pck' then it is assumed to contain "
+"a\n"
+"Python pickle. In either case, if you want to override the default "
+"assumption\n"
+"-- or if the file ends in neither suffix -- use the -p or -m flags.\n"
+msgstr ""
+"Mailman ¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë¤ÎÆâÍÆ¤òɽ¼¨¤¹¤ë.\n"
+"\n"
+"»ÈÍÑË¡: %(PROGRAM)s [¥ª¥×¥·¥ç¥ó] ¥Õ¥¡¥¤¥ë̾\n"
+"\n"
+"¥ª¥×¥·¥ç¥ó:\n"
+"\n"
+" --marshal/-m\n"
+" ¥Õ¥¡¥¤¥ë¤Ï Python ¤Î marshal ·Á¼°¤È²¾Äꤹ¤ë. ¼«Æ°¿äÄê¤Ï̵¸ú¤Ë\n"
+" ¤Ê¤ë.\n"
+"\n"
+" --pickle/-p\n"
+" ¥Õ¥¡¥¤¥ë¤Ï Python ¤Î pickle ·Á¼°¤È²¾Äꤹ¤ë. ¼«Æ°¿äÄê¤Ï̵¸ú¤Ë\n"
+" ¤Ê¤ë.\n"
+"\n"
+" --noprint/-n\n"
+" ¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀ°·Áɽ¼¨¤ò¹Ô¤ï¤Ê¤¤. ¤³¤ì¤Ï¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤Ê¤ó¤é¤«¤Î\n"
+" ÌäÂ꤬¤¢¤Ã¤Æ, pickle ·Á¼°¤Î²òÆÉɽ¼¨¤À¤±¤ò¹Ô¤¤¤¿¤¤¾ì¹ç¤ËÍ­¸ú¤Ç¤¢¤ë.\n"
+" `python -i bin/dumpdb ¥Õ¥¡¥¤¥ë̾' ¤Î·Á¤Ç»È¤¦¤È¤è¤¤. ¤³¤Î¾ì¹ç,\n"
+" ¥°¥í¡¼¥Ð¥ëÊÑ¿ô \"msg\" ¤¬¥Ä¥ê¡¼¹½Â¤¤Î¥ë¡¼¥È¤È¤Ê¤ë.\n"
+"\n"
+" --help/-h\n"
+" ¤³¤Î¥Ø¥ë¥×¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¤Æ½ªÎ»¤¹¤ë.\n"
+"\n"
+"¥Õ¥¡¥¤¥ë̾¤¬ `.db' ¤Ç½ª¤ë¤È¤­, Python marshal ¤Ç¤¢¤ë¤È²¾Äꤷ, `.pck' ¤Ç\n"
+"½ª¤ë¤È¤­¤Ë¤Ï Python pickle ¤Ç¤¢¤ë¤È²¾Äꤹ¤ë. ¤É¤Á¤é¤Î¾ì¹ç¤â¤³¤Î²¾Äê¤ò\n"
+"̵¸ú¤Ë¤·¤¿¤¤¾ì¹ç¤ä, ¤É¤Á¤é¤Î³ÈÄ¥»Ò¤Ç¤â½ª¤Ã¤Æ¤¤¤Ê¤¤¤È¤­¤Ë¤Ï, -p ¤Þ¤¿¤Ï -m\n"
+"¥Õ¥é¥°¤ò»È¤¦¤³¤È.\n"
+
+#: bin/dumpdb:101
+msgid "No filename given."
+msgstr "¥Õ¥¡¥¤¥ë̾¤¬¤¢¤ê¤Þ¤»¤ó."
+
+#: bin/dumpdb:104
+msgid "Bad arguments: %(pargs)s"
+msgstr "°ú¿ô¤¬ÉÔÀµ: %(pargs)s"
+
+#: bin/dumpdb:114
+msgid "Please specify either -p or -m."
+msgstr "-p ¤« -m ¤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤"
+
+#: bin/find_member:19
+msgid ""
+"Find all lists that a member's address is on.\n"
+"\n"
+"Usage:\n"
+" find_member [options] regex [regex [...]]\n"
+"\n"
+"Where:\n"
+" --listname=listname\n"
+" -l listname\n"
+" Include only the named list in the search.\n"
+"\n"
+" --exclude=listname\n"
+" -x listname\n"
+" Exclude the named list from the search.\n"
+"\n"
+" --owners\n"
+" -w\n"
+" Search list owners as well as members.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" regex\n"
+" A Python regular expression to match against.\n"
+"\n"
+"The interaction between -l and -x is as follows. If any -l option is given\n"
+"then only the named list will be included in the search. If any -x option "
+"is\n"
+"given but no -l option is given, then all lists will be search except those\n"
+"specifically excluded.\n"
+"\n"
+"Regular expression syntax is Perl5-like, using the Python re module. "
+"Complete\n"
+"specifications are at:\n"
+"\n"
+"http://www.python.org/doc/current/lib/module-re.html\n"
+"\n"
+"Address matches are case-insensitive, but case-preserved addresses are\n"
+"displayed.\n"
+"\n"
+msgstr ""
+"²ñ°÷¤¬Â°¤¹¤ë¥ê¥¹¥È¤ò¸¡º÷¤¹¤ë.\n"
+"\n"
+"»ÈÍÑË¡:\n"
+" find_member [¥ª¥×¥·¥ç¥ó] Àµµ¬É½¸½ [Àµµ¬É½¸½ [...]]\n"
+"\n"
+"⤷:\n"
+" --listname=¥ê¥¹¥È̾\n"
+" -l ¥ê¥¹¥È̾\n"
+" »ØÄꤷ¤¿¥ê¥¹¥È¤«¤é¸¡º÷¤¹¤ë\n"
+"\n"
+" --exclude=¥ê¥¹¥È̾\n"
+" -x ¥ê¥¹¥È̾\n"
+" »ØÄꤷ¤¿¥ê¥¹¥È¤ò¸¡º÷Âоݤ«¤é¤Ï¤º¤¹\n"
+"\n"
+" --owners\n"
+" -w\n"
+" ²ñ°÷¤À¤±¤Ç¤Ê¤¯¥ê¥¹¥È´ÉÍý¼Ô¤â¸¡º÷¤¹¤ë\n"
+"\n"
+" --help\n"
+" -h\n"
+" ¤³¤Î¥Ø¥ë¥×¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¤Æ½ªÎ»¤¹¤ë\n"
+"\n"
+" Àµµ¬É½¸½\n"
+" Ŭ¹ç¤ò¸¡º÷¤¹¤ë Python ¤ÎÀµµ¬É½¸½\n"
+"\n"
+"-l ¤È -x ¥ª¥×¥·¥ç¥ó¤Î´Ø·¸¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ë. ¤â¤· -l ¥ª¥×¥·¥ç¥ó¤¬\n"
+"»ØÄꤵ¤ì¤Æ¤¤¤¿¤é, ¤½¤Î¥ê¥¹¥È¤À¤±¤ò¸¡º÷¤Ë´Þ¤á¤ë. ¤â¤· -x ¥ª¥×¥·¥ç¥ó\n"
+"¤¬¤¢¤Ã¤Æ -l ¥ª¥×¥·¥ç¥ó¤¬Ìµ¤¤¾ì¹ç¤Ï, »ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤Á´¤Æ¤Î¥ê¥¹¥È¤¬\n"
+"¸¡º÷ÂоݤȤʤë.\n"
+"\n"
+"Àµµ¬É½¸½¤Ï Perl5 ¤Ë»÷¤Æ¤¤¤ë¤¬, Python ¤Î re ¥â¥¸¥å¡¼¥ë¤ò»È¤¦. re\n"
+"¥â¥¸¥å¡¼¥ë¤Î»ÅÍͤϰʲ¼¤Î¥Ú¡¼¥¸¤Ë¤¢¤ë:\n"
+"\n"
+"http://www.python.org/doc/current/lib/module-re.html\n"
+"\n"
+"¥á¡¼¥ë¥¢¥É¥ì¥¹¤ÏÂçʸ»ú¾®Ê¸»ú¤Î¶èÊ̤ò¤»¤º¤Ë¸¡º÷¤¹¤ë¤¬, ·ë²Ì¤Îɽ¼¨¤Ï\n"
+"Âçʸ»ú¤ò´Þ¤ó¤À·Á¤Ç¹Ô¤ï¤ì¤ë.\n"
+"\n"
+
+#: bin/find_member:159
+msgid "Search regular expression required"
+msgstr "¸¡º÷¤Ë¤ÏÀµµ¬É½¸½¤¬É¬ÍפǤ¹"
+
+#: bin/find_member:164
+msgid "No lists to search"
+msgstr "¸¡º÷ÂоݤΥꥹ¥È¤¬¤¢¤ê¤Þ¤»¤ó"
+
+#: bin/find_member:173
+msgid "found in:"
+msgstr "°Ê²¼¤Î¥ê¥¹¥È¤Ë¤¤¤Þ¤¹:"
+
+#: bin/find_member:179
+msgid "(as owner)"
+msgstr "(´ÉÍý¼Ô)"
+
+#: bin/fix_url.py:19
+msgid ""
+"Reset a list's web_page_url attribute to the default setting.\n"
+"\n"
+"This script is intended to be run as a bin/withlist script, i.e.\n"
+"\n"
+"% bin/withlist -l -r fix_url listname [options]\n"
+"\n"
+"Options:\n"
+" -u urlhost\n"
+" --urlhost=urlhost\n"
+" Look up urlhost in the virtual host table and set the web_page_url "
+"and\n"
+" host_name attributes of the list to the values found. This\n"
+" essentially moves the list from one virtual domain to another.\n"
+"\n"
+" Without this option, the default web_page_url and host_name values "
+"are\n"
+" used.\n"
+"\n"
+" -v / --verbose\n"
+" Print what the script is doing.\n"
+"\n"
+"If run standalone, it prints this help text and exits.\n"
+msgstr ""
+"web_page_url °À­¤ò¥Ç¥Õ¥©¥ë¥È¤ËÀßÄꤹ¤ë\n"
+"\n"
+"¤³¤Î¥¹¥¯¥ê¥×¥È¤Ï bin/withlist ¤È¤È¤â¤Ë»ÈÍѤ·¤Þ¤¹. ¤Ä¤Þ¤ê\n"
+"\n"
+"% bin/withlist -l -r fix_url ¥ê¥¹¥È̾ [¥ª¥×¥·¥ç¥ó]\n"
+"\n"
+"¥ª¥×¥·¥ç¥ó:\n"
+" -u ¥Û¥¹¥È̾\n"
+" -urlhost=¥Û¥¹¥È̾\n"
+" ²¾ÁÛ¥Û¥¹¥Èɽ¤ò»²¾È¤·, ¥ê¥¹¥È¤Î web_page_url ¤È host_name °À­¤ò\n"
+" ɽ¤Ë½¾¤Ã¤Æ¥Û¥¹¥È̾¤Ç»ØÄꤷ¤¿ÃͤËÀßÄꤹ¤ë. ¤³¤ì¤Ï, ËܼÁŪ¤Ë¤Ï\n"
+" ¥ê¥¹¥È¤ò¤¢¤ë²¾Áۥɥᥤ¥ó¤«¤éÊ̤Υɥᥤ¥ó¤Ë°Ü¹Ô¤¹¤ë¤³¤È¤Ç¤¢¤ë.\n"
+"\n"
+" ¤³¤Î¥ª¥×¥·¥ç¥ó¤¬Ìµ¤¤¤È, ¥Ç¥Õ¥©¥ë¥È¤Î web_page_url ¤È host_name\n"
+" ¤¬»È¤ï¤ì¤ë.\n"
+"\n"
+" -v / --verbose\n"
+" ¥¹¥¯¥ê¥×¥È¤¬²¿¤ò¤·¤Æ¤¤¤ë¤«¤òɽ¼¨¤¹¤ë.\n"
+"\n"
+"¤â¤·Ã±ÆÈ¤Ç¼Â¹Ô¤¹¤ë¤È¥Ø¥ë¥×¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¤Æ½ªÎ»¤¹¤ë.\n"
+
+#: bin/fix_url.py:80
+msgid "Setting web_page_url to: %(web_page_url)s"
+msgstr "web_page_url ¤ò %(web_page_url)s ¤ËÀßÄê"
+
+#: bin/fix_url.py:83
+msgid "Setting host_name to: %(mailhost)s"
+msgstr "host_name ¤ò %(mailhost)s ¤ËÀßÄê"
+
+#: bin/genaliases:19
+msgid ""
+"Regenerate Postfix's data/aliases and data/aliases.db files from scratch.\n"
+"\n"
+"Usage:\n"
+"\n"
+" genaliases [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+msgstr ""
+"Postfix ÍѤΠdata/aliases ¤È data/aliases.db ¥Õ¥¡¥¤¥ë¤òºÆÀ¸À®¤¹¤ë.\n"
+"\n"
+"»ÈÍÑË¡:\n"
+"\n"
+" genaliases [¥ª¥×¥·¥ç¥ó]\n"
+"\n"
+"¥ª¥×¥·¥ç¥ó:\n"
+"\n"
+" -h / --help\n"
+" ¤³¤Î¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¤Æ½ªÎ»¤¹¤ë.\n"
+
+#: bin/inject:19
+msgid ""
+"Inject a message from a file into Mailman's incoming queue.\n"
+"\n"
+"Usage: inject [options] [filename]\n"
+"\n"
+"Options:\n"
+"\n"
+" -h / --help\n"
+" Print this text and exit.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" The name of the list to inject this message to. Required.\n"
+"\n"
+" -q queuename\n"
+" --queue=queuename\n"
+" The name of the queue to inject the message to. The queuename must "
+"be\n"
+" one of the directories inside the qfiles directory. If omitted, "
+"the\n"
+" incoming queue is used.\n"
+"\n"
+"filename is the name of the plaintext message file to inject. If omitted,\n"
+"standard input is used.\n"
+msgstr ""
+"Mailman ¤Î incoming ¥­¥å¡¼¤Ë¥Õ¥¡¥¤¥ë¤«¤é¥á¡¼¥ë¤òÆþ¤ì¤ë.\n"
+"\n"
+"»ÈÍÑË¡: inject [¥ª¥×¥·¥ç¥ó] [¥Õ¥¡¥¤¥ë̾]\n"
+"\n"
+"¥ª¥×¥·¥ç¥ó:\n"
+"\n"
+" -h / --help\n"
+" ¤³¤Î¥Æ¥­¥¹¥È¤òɽ¼¨¤·¤Æ½ªÎ»¤¹¤ë.\n"
+"\n"
+" -l ¥ê¥¹¥È̾\n"
+" --listname=¥ê¥¹¥È̾\n"
+" ¥á¡¼¥ë¤òÆþ¤ì¤ë¥ê¥¹¥È¤Î̾Á°. ɬ¿Ü.\n"
+"\n"
+" -q ¥­¥å¡¼Ì¾\n"
+" -queue=¥­¥å¡¼Ì¾\n"
+" ¥á¡¼¥ë¤òÆþ¤ì¤ë¥­¥å¡¼¤Î̾Á°. ¥­¥å¡¼Ì¾¤Ï qfiles ¥Ç¥£¥ì¥¯¥È¥ê¤Î\n"
+" ¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤Î̾Á°¤Ç¤¢¤ë. ¾Êά¤Î¾ì¹ç¤Ï, incoming ¥­¥å¡¼\n"
+" ¤¬»È¤ï¤ì¤ë. (¥­¥å¡¼¤ÏÂÔ¤Á¹ÔÎó¤ÈËÝÌõ¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë)\n"
+"\n"
+"¥Õ¥¡¥¤¥ë̾¤Ï¥­¥å¡¼¤ËÆþ¤ì¤ëʿʸ¤Î¥á¡¼¥ë¥Õ¥¡¥¤¥ë¤Î̾Á°¤Ç¤¢¤ë. ¾Êά¤¹¤ë¤È\n"
+"ɸ½àÆþÎϤ¬»È¤ï¤ì¤ë.\n"
+
+#: bin/inject:83
+msgid "Bad queue directory: %(qdir)s"
+msgstr "¥­¥å¡¼¥Ç¥£¥ì¥¯¥È¥ê¤¬°ã¤¦: %(qdir)s"
+
+#: bin/inject:88
+msgid "A list name is required"
+msgstr "¥ê¥¹¥È̾¤¬É¬ÍפǤ¹."
+
+#: bin/list_admins:19
+msgid ""
+"List all the owners of a mailing list.\n"
+"\n"
+"Usage: %(program)s [options] listname ...\n"
+"\n"
+"Where:\n"
+"\n"
+" --all-vhost=vhost\n"
+" -v=vhost\n"
+" List the owners of all the mailing lists for the given virtual "
+"host.\n"
+"\n"
+" --all\n"
+" -a\n"
+" List the owners of all the mailing lists on this system.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+"`listname' is the name of the mailing list to print the owners of. You can\n"
+"have more than one named list on the command line.\n"
+msgstr ""
+"¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Î´ÉÍý¼Ô¤òɽ¼¨¤¹¤ë\n"
+"\n"
+"»ÈÍÑË¡: %(program)s [¥ª¥×¥·¥ç¥ó] ¥ê¥¹¥È̾ ...\n"
+"\n"
+"⤷:\n"
+"\n"
+" --all-vhost=²¾ÁÛ¥Û¥¹¥È\n"
+" -v=²¾ÁÛ¥Û¥¹¥È\n"
+" ²¾ÁÛ¥Û¥¹¥È¤Ë°¤¹¤ëÁ´¤Æ¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Î´ÉÍý¼Ô¤òɽ¼¨¤¹¤ë.\n"
+"\n"
+" --all\n"
+" -a\n"
+" ¤³¤Î¥·¥¹¥Æ¥à¾å¤ÎÁ´¤Æ¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Î´ÉÍý¼Ô¤òɽ¼¨¤¹¤ë.\n"
+"\n"
+" --help\n"
+" -h\n"
+" ¤³¤Î¥Ø¥ë¥×¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¤Æ½ªÎ»¤¹¤ë.\n"
+"\n"
+"¥ê¥¹¥È̾¤Ï´ÉÍý¼Ô¤òɽ¼¨¤·¤è¤¦¤È¤¹¤ë¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Î̾Á°¤Ç¤¢¤ë. £²¤Ä\n"
+"°Ê¾å¤Î¥ê¥¹¥È̾¤ò¥³¥Þ¥ó¥É¹Ô¤Ç»ØÄꤹ¤ë¤³¤È¤â¤Ç¤­¤ë.\n"
+
+#: bin/list_admins:96
+msgid "List: %(listname)s, \tOwners: %(owners)s"
+msgstr "¥ê¥¹¥È: %(listname)s, \t´ÉÍý¼Ô: %(owners)s"
+
+#: bin/list_lists:19
+msgid ""
+"List all mailing lists.\n"
+"\n"
+"Usage: %(program)s [options]\n"
+"\n"
+"Where:\n"
+"\n"
+" -a / --advertised\n"
+" List only those mailing lists that are publically advertised\n"
+"\n"
+" --virtual-host-overview=domain\n"
+" -V domain\n"
+" List only those mailing lists that are homed to the given virtual\n"
+" domain. This only works if the VIRTUAL_HOST_OVERVIEW variable is\n"
+" set.\n"
+"\n"
+" -b / --bare\n"
+" Displays only the list name, with no description.\n"
+"\n"
+" -h / --help\n"
+" Print this text and exit.\n"
+"\n"
+msgstr ""
+"Á´¤Æ¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤òɽ¼¨¤¹¤ë.\n"
+"\n"
+"»ÈÍÑË¡: %(program)s [¥ª¥×¥·¥ç¥ó]\n"
+"\n"
+"⤷:\n"
+"\n"
+" -a / --advertised\n"
+" ¸ø³«¤µ¤ì¤¿¥ê¥¹¥È¤À¤±¤òɽ¼¨¤¹¤ë.\n"
+"\n"
+" --virtual-host-overview=¥É¥á¥¤¥ó\n"
+" -V ¥É¥á¥¤¥ó\n"
+" ¥É¥á¥¤¥ó¤Ç»ØÄꤷ¤¿²¾Áۥɥᥤ¥ó¤Ë°¤¹¤ë¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Î¤ß¤ò\n"
+" ɽ¼¨¤¹¤ë. ⤷, VIRTUAL_HOST_OVERVIEW ÊÑ¿ô¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ëɬÍ×\n"
+" ¤¬¤¢¤ë.\n"
+"\n"
+" -b / --bare\n"
+" ¥ê¥¹¥È¤Îû¤¤ÀâÌÀ¤¬Ìµ¤¤¥ê¥¹¥È¤Î¤ß¤òɽ¼¨¤¹¤ë.\n"
+"\n"
+" -h / --help\n"
+" ¤³¤Î¥Æ¥­¥¹¥È¤òɽ¼¨¤·¤Æ½ªÎ»¤¹¤ë.\n"
+"\n"
+
+#: bin/list_lists:105
+msgid "No matching mailing lists found"
+msgstr "Ŭ¹ç¤¹¤ë¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤¬¤¢¤ê¤Þ¤»¤ó"
+
+#: bin/list_lists:109
+msgid "matching mailing lists found:"
+msgstr "Ŭ¹ç¤¹¤ë¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤¬¤¢¤ê¤Þ¤·¤¿:"
+
+#: bin/list_members:19
+msgid ""
+"List all the members of a mailing list.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] listname\n"
+"\n"
+"Where:\n"
+"\n"
+" --output file\n"
+" -o file\n"
+" Write output to specified file instead of standard out.\n"
+"\n"
+" --regular / -r\n"
+" Print just the regular (non-digest) members.\n"
+"\n"
+" --digest[=kind] / -d [kind]\n"
+" Print just the digest members. Optional argument can be \"mime\" "
+"or\n"
+" \"plain\" which prints just the digest members receiving that kind "
+"of\n"
+" digest.\n"
+"\n"
+" --nomail[=why] / -n [why]\n"
+" Print the members that have delivery disabled. Optional argument "
+"can\n"
+" be \"byadmin\", \"byuser\", \"bybounce\", or \"unknown\" which "
+"prints just the\n"
+" users who have delivery disabled for that reason. It can also be\n"
+" \"enabled\" which prints just those member for whom delivery is\n"
+" enabled.\n"
+"\n"
+" --fullnames / -f\n"
+" Include the full names in the output.\n"
+"\n"
+" --preserve\n"
+" -p\n"
+" Output member addresses case preserved the way they were added to "
+"the\n"
+" list. Otherwise, addresses are printed in all lowercase.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname is the name of the mailing list to use.\n"
+"\n"
+"Note that if neither -r or -d is supplied, both regular members are printed\n"
+"first, followed by digest members, but no indication is given as to address\n"
+"status.\n"
+msgstr ""
+"¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Î²ñ°÷Á´°÷¤òɽ¼¨¤¹¤ë.\n"
+"\n"
+"»ÈÍÑË¡: %(PROGRAM)s [¥ª¥×¥·¥ç¥ó] ¥ê¥¹¥È̾\n"
+"\n"
+"⤷:\n"
+"\n"
+" --output ¥Õ¥¡¥¤¥ë\n"
+" -o ¥Õ¥¡¥¤¥ë\n"
+" ½ÐÎϤòɸ½à½ÐÎϤǤʤ¯, »ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤à.\n"
+"\n"
+" --regular / -r\n"
+" Ä̾ï²ñ°÷(¤Þ¤È¤áÆÉ¤ß¤Ç¤Ê¤¤)¤Î¤ß¤òɽ¼¨¤¹¤ë.\n"
+"\n"
+" --digest[=¼ïÎà] / -d [¼ïÎà]\n"
+" ¤Þ¤È¤áÆÉ¤ß²ñ°÷¤Î¤ß¤ò½ÐÎϤ¹¤ë. ¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤹ¤ë[¼ïÎà]¤Ï\n"
+" \"mime\" ¤Þ¤¿¤Ï \"plain\" ¤Î¤É¤Á¤é¤«¤Ç¡¢¤½¤Î·Á¼°¤Ç¤Î¤Þ¤È¤á\n"
+" ÆÉ¤ß¤ò»ØÄꤷ¤Æ¤¤¤ë²ñ°÷¤òɽ¼¨¤¹¤ë.\n"
+"\n"
+" --nomail[=Íýͳ] / -n [Íýͳ]\n"
+" ¥á¡¼¥ëÇÛÁ÷¤òÄä»ß¤·¤Æ¤¤¤ë²ñ°÷¤òɽ¼¨¤¹¤ë. ¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤹ¤ë\n"
+" [Íýͳ] ¤Ï \"byadmin\", \"byuser\", \"bybounce\", \"unknown\" ¤Î\n"
+" ¤É¤ì¤«¤Ç, ¤½¤ÎÍýͳ¤ÇÇÛÁ÷¤òÄä»ß¤·¤Æ¤¤¤ë²ñ°÷¤òɽ¼¨¤¹¤ë. ¤Þ¤¿\n"
+" \"enabaled\" ¤ò»ØÄꤹ¤ë¤È, ÇÛÁ÷¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë²ñ°÷¤òɽ¼¨\n"
+" ¤¹¤ë.\n"
+"\n"
+" --fullnames / -f\n"
+" ½ÐÎϤËËÜ̾¤ò´Þ¤á¤ë.\n"
+"\n"
+" --preserve / -p\n"
+" ¥á¡¼¥ë¥¢¥É¥ì¥¹¤òɽ¼¨¤¹¤ë¤È¤­¤Ë, ²ñ°÷¤¬ÆþÎϤ·¤¿¤È¤­¤ÎÂçʸ»ú/¾®Ê¸»ú\n"
+" ¤ò¤½¤Î¤Þ¤Þ»È¤¦. »ØÄꤷ¤Ê¤¤¤È¾®Ê¸»ú¤À¤±¤ËÊÑ´¹¤µ¤ì¤ë.\n"
+"\n"
+" --help / -h\n"
+" ¤³¤Î¥Ø¥ë¥×¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¤Æ½ªÎ»¤¹¤ë.\n"
+"\n"
+" ¥ê¥¹¥È̾¤Ï»ÈÍѤ¹¤ë¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Î̾Á°.\n"
+"\n"
+"-r ¤â -d ¤â»ØÄꤷ¤Ê¤¤¤È, ºÇ½é¤ËÄ̾ï²ñ°÷¤¬, ¼¡¤Ë¤Þ¤È¤áÆÉ¤ß²ñ°÷¤¬É½¼¨\n"
+"¤µ¤ì¤ë¤¬, ÇÛÁ÷¤Î¾õÂ֤ˤĤ¤¤Æ¤Ïɽ¼¨¤µ¤ì¤Ê¤¤.\n"
+
+#: bin/list_members:150
+msgid "Bad --nomail option: %(why)s"
+msgstr "--nomail ¥ª¥×¥·¥ç¥ó¤¬°ã¤¤¤Þ¤¹: %(why)s"
+
+#: bin/list_members:161
+msgid "Bad --digest option: %(kind)s"
+msgstr "--digest ¥ª¥×¥·¥ç¥ó¤¬°ã¤¤¤Þ¤¹: %(kind)s"
+
+#: bin/list_members:179
+msgid "Could not open file for writing:"
+msgstr "½ñ¤­¹þ¤à¥Õ¥¡¥¤¥ë¤¬³«¤±¤Þ¤»¤ó:"
+
+#: bin/list_owners:19
+msgid ""
+"List the owners of a mailing list, or all mailing lists.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname ...]\n"
+"Options:\n"
+"\n"
+" -w / --with-listnames\n"
+" Group the owners by list names and include the list names in the\n"
+" output. Otherwise, the owners will be sorted and uniquified based "
+"on\n"
+" the email address.\n"
+"\n"
+" -m / --moderators\n"
+" Include the list moderators in the output.\n"
+"\n"
+" -h / --help\n"
+" Print this help message and exit.\n"
+"\n"
+" listname\n"
+" Print the owners of the specified lists. More than one can appear\n"
+" after the options. If there are no listnames provided, the owners "
+"of\n"
+" all the lists will be displayed.\n"
+msgstr ""
+"Á´Éô¤Þ¤¿¤Ï°ìÉô¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Î´ÉÍý¼Ô¤òɽ¼¨¤¹¤ë.\n"
+"\n"
+"»ÈÍÑË¡: %(PROGRAM)s [¥ª¥×¥·¥ç¥ó] [¥ê¥¹¥È̾ ...]\n"
+"\n"
+" -w /--with-listnames\n"
+" ´ÉÍý¼Ô¤ò¥ê¥¹¥È̾¤Ç¥°¥ë¡¼¥×²½¤·, ¥ê¥¹¥È̾¤ò½ÐÎϤ˴ޤá¤ë.\n"
+" »ØÄꤷ¤Ê¤¤¤È´ÉÍý¼Ô¤Ï¥á¡¼¥ë¥¢¥É¥ì¥¹¤ò¸µ¤ËʤÙÂØ¤¨¤Èñ°ì²½¤¬\n"
+" ¹Ô¤ï¤ì¤ë.\n"
+"\n"
+" -m / --moderators\n"
+" ¥ê¥¹¥È¤Î»Ê²ñ¼Ô¤ò½ÐÎϤ˴ޤá¤ë.\n"
+"\n"
+" -h / --help\n"
+" ¤³¤Î¥Ø¥ë¥×¥á¥Ã¥»¡¼¥¸¤ò½ÐÎϤ·¤Æ½ªÎ»¤¹¤ë.\n"
+"\n"
+" ¥ê¥¹¥È̾\n"
+" »ØÄꤷ¤¿¥ê¥¹¥È¤Î´ÉÍý¼Ô¤ò½ÐÎϤ¹¤ë. £²¤Ä°Ê¾å¤Î¥ê¥¹¥È̾¤ò½ñ¤¯¤³¤È¤¬\n"
+" ¤Ç¤­¤ë. ¥ê¥¹¥È̾¤¬°ì¤Ä¤â̵¤¤¾ì¹ç¤Ë¤Ï, Á´Éô¤Î¥ê¥¹¥È¤Î´ÉÍý¼Ô¤òɽ¼¨\n"
+" ¤¹¤ë.\n"
+
+#: bin/mailmanctl:19
+msgid ""
+"Primary start-up and shutdown script for Mailman's qrunner daemon.\n"
+"\n"
+"This script starts, stops, and restarts the main Mailman queue runners, "
+"making\n"
+"sure that the various long-running qrunners are still alive and kicking. "
+"It\n"
+"does this by forking and exec'ing the qrunners and waiting on their pids.\n"
+"When it detects a subprocess has exited, it may restart it.\n"
+"\n"
+"The qrunners respond to SIGINT, SIGTERM, and SIGHUP. SIGINT and SIGTERM "
+"both\n"
+"cause the qrunners to exit cleanly, but the master will only restart "
+"qrunners\n"
+"that have exited due to a SIGINT. SIGHUP causes the master and the "
+"qrunners\n"
+"to close their log files, and reopen then upon the next printed message.\n"
+"\n"
+"The master also responds to SIGINT, SIGTERM, and SIGHUP, which it simply\n"
+"passes on to the qrunners (note that the master will close and reopen its "
+"own\n"
+"log files on receipt of a SIGHUP). The master also leaves its own process "
+"id\n"
+"in the file data/master-qrunner.pid but you normally don't need to use this\n"
+"pid directly. The `start', `stop', `restart', and `reopen' commands handle\n"
+"everything for you.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [ start | stop | restart | reopen ]\n"
+"\n"
+"Options:\n"
+"\n"
+" -n/--no-restart\n"
+" Don't restart the qrunners when they exit because of an error or a\n"
+" SIGINT. They are never restarted if they exit in response to a\n"
+" SIGTERM. Use this only for debugging. Only useful if the `start'\n"
+" command is given.\n"
+"\n"
+" -u/--run-as-user\n"
+" Normally, this script will refuse to run if the user id and group "
+"id\n"
+" are not set to the `mailman' user and group (as defined when you\n"
+" configured Mailman). If run as root, this script will change to "
+"this\n"
+" user and group before the check is made.\n"
+"\n"
+" This can be inconvenient for testing and debugging purposes, so the "
+"-u\n"
+" flag means that the step that sets and checks the uid/gid is "
+"skipped,\n"
+" and the program is run as the current user and group. This flag is\n"
+" not recommended for normal production environments.\n"
+"\n"
+" Note though, that if you run with -u and are not in the mailman "
+"group,\n"
+" you may have permission problems, such as begin unable to delete a\n"
+" list's archives through the web. Tough luck!\n"
+"\n"
+" -s/--stale-lock-cleanup\n"
+" If mailmanctl finds an existing master lock, it will normally exit\n"
+" with an error message. With this option, mailmanctl will perform "
+"an\n"
+" extra level of checking. If a process matching the host/pid "
+"described\n"
+" in the lock file is running, mailmanctl will still exit, but if no\n"
+" matching process is found, mailmanctl will remove the apparently "
+"stale\n"
+" lock and make another attempt to claim the master lock.\n"
+"\n"
+" -q/--quiet\n"
+" Don't print status messages. Error messages are still printed to\n"
+" standard error.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+"\n"
+"Commands:\n"
+"\n"
+" start - Start the master daemon and all qrunners. Prints a message "
+"and\n"
+" exits if the master daemon is already running.\n"
+"\n"
+" stop - Stops the master daemon and all qrunners. After stopping, no\n"
+" more messages will be processed.\n"
+"\n"
+" restart - Restarts the qrunners, but not the master process. Use this\n"
+" whenever you upgrade or update Mailman so that the qrunners "
+"will\n"
+" use the newly installed code.\n"
+"\n"
+" reopen - This will close all log files, causing them to be re-opened "
+"the\n"
+" next time a message is written to them\n"
+msgstr ""
+"Mailman ¤Î qrunner ¥Ç¡¼¥â¥ó¤ò¥¹¥¿¡¼¥È/Ää»ß¤¹¤ë¥¹¥¯¥ê¥×¥È.\n"
+"\n"
+"¤³¤Î¥¹¥¯¥ê¥×¥È¤Ï Mailman ¤Î¥­¥å¡¼¡¦¥é¥ó¥Ê¡¼ (ÂÔ¤Á¹ÔÎó½èÍý) ¥×¥í¥°¥é¥à¤ò\n"
+"µ¯Æ°¡¦Ää»ß¡¦ºÆµ¯Æ°¤¹¤ë¤â¤Î¤Ç, ¼ï¡¹¤ÎĹ´ü¤Ë¤ï¤¿¤Ã¤Æ¼Â¹Ô¤µ¤ì¤ë qrunner ¤¬\n"
+"ư¤¤¤Æ¤¤¤ë¤³¤È¤ò³Îǧ¤·, ɬÍפ˱þ¤¸¤ÆºÆµ¯Æ°¤¹¤ë. ¤³¤ì¤Ï qrunner ¤ò\n"
+"fork ¤È exec ¤·¤½¤Î pid ¤Ë¤Ä¤¤¤ÆÂÔµ¡¤¹¤ë¤³¤È¤Ç¹Ô¤ï¤ì¤ë. ¥µ¥Ö¥×¥í¥»¥¹¤¬\n"
+"½ªÎ»¤·¤¿¤³¤È¤ò¸¡ÃΤ¹¤ë¤È, ºÆµ¯Æ°¤ò»î¤ß¤ë.\n"
+"\n"
+"qrunner ¤Ï SIGINT, SIGTERM, SIGHUP ¤Ë±þÅú¤¹¤ë. SIGINT ¤È SIGTERM ¤Ï\n"
+"qrunner ¤¬¤­¤ì¤¤¤Ë½ªÎ»¤¹¤ë¤è¤¦¤Ë¤¹¤ë¤¬, ¥Þ¥¹¥¿¡¼¤Ï SIGINT ¤Ç½ªÎ»¤·¤¿\n"
+"¤È¤­¤À¤±ºÆµ¯Æ°¤ò¹Ô¤¦. SIGHUP ¤Ï¥Þ¥¹¥¿¡¼¤È qrunner ¤¬¥í¥°¥Õ¥¡¥¤¥ë¤òÊĤ¸\n"
+"¼¡¤Î¥á¥Ã¥»¡¼¥¸È¯À¸¤Î¤È¤­¤ËºÆ¤Ó³«¤¯¤è¤¦¤Ë¤¹¤ë.\n"
+"\n"
+"¥Þ¥¹¥¿¡¼¤â¤Þ¤¿ SIGINT, SIGTERM, SIGHUP ¤Ë±þÅú¤¹¤ë. ¤³¤Î¥·¥°¥Ê¥ë¤ÏÇÛ²¼¤Î\n"
+"qrunner ¤ËÅÁ¤¨¤é¤ì¤ë¤À¤±¤Ç¤¢¤ë. (¥Þ¥¹¥¿¡¼¤Ï SIGHUP ¤ò¼õ¿®¤¹¤ë¤È¼«Ê¬ÍѤÎ\n"
+"¥í¥°¥Õ¥¡¥¤¥ë¤òÊĤ¸¤ÆºÆÅÙ³«¤¯¤³¤È¤ËÃí°Õ) ¥Þ¥¹¥¿¡¼¤Ï¤Þ¤¿, ¼«Ê¬¤Î¥×¥í¥»¥¹\n"
+"ID ¤ò data/master-qrunner.pid ¥Õ¥¡¥¤¥ë¤Ë»Ä¤¹¤¬, Ä̾盧¤ì¤òľÀܻȤ¦É¬Í×\n"
+"¤Ï̵¤¤. `start', `stop', `restart', `reopen' ¤Î¥³¥Þ¥ó¥É¤Ç½½Ê¬ÍѤ¬Â­¤ê¤ë\n"
+"¤Ï¤º¤Ç¤¢¤ë.\n"
+"\n"
+"»ÈÍÑË¡: %(PROGRAM)s [¥ª¥×¥·¥ç¥ó] [ start | stop | restart | reopen ]\n"
+"\n"
+"¥ª¥×¥·¥ç¥ó:\n"
+"\n"
+" -n/--no-restart\n"
+" ¥¨¥é¡¼¤ä SIGINT ¤Ç½ªÎ»¤·¤¿¤È¤­¤Ë qrunner ¤òºÆµ¯Æ°¤·¤Ê¤¤.\n"
+" SIGTERM ¤Ç½ªÎ»¤·¤¿¤È¤­¤ÏºÆµ¯Æ°¤Ï¤µ¤ì¤Ê¤¤. ¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï\n"
+" ¥Ç¥Ð¥Ã¥°¤ËÍ­¸ú. `start' ¥³¥Þ¥ó¥É¤¬»È¤ï¤ì¤¿¤È¤­¤Î¤ßÍ­¸ú.\n"
+"\n"
+" -u/--run-as-user\n"
+" Ä̾ï, ¤³¤Î¥¹¥¯¥ê¥×¥È¤Ï¥æ¡¼¥¶ID¤È¥°¥ë¡¼¥×ID¤¬ mailman ¤Ë\n"
+" ¤Ê¤Ã¤Æ¤¤¤Ê¤¤¤Èµ¯Æ°¤Ç¤­¤Ê¤¤(Mailman¤Î configure ¤Î»þ¤ËÄêµÁ\n"
+" ¤µ¤ì¤ë). root ¤Çµ¯Æ°¤µ¤ì¤ë¤È, ¤³¤Î¥¹¥¯¥ê¥×¥È¤Ï¥Á¥§¥Ã¥¯¤¹¤ëÁ°¤Ë\n"
+" ¤³¤Î¥æ¡¼¥¶¤È¥°¥ë¡¼¥×¤ËÊѹ¹¤¹¤ë.\n"
+"\n"
+" ¤³¤Î¤³¤È¤Ï, ¥Æ¥¹¥È¤ä¥Ç¥Ð¥Ã¥°¤ÎºÝ¤ËÉÔÊØ¤Ë¤Ê¤ë¤³¤È¤¬¤¢¤ë.\n"
+" -u ¥Õ¥é¥°¤Ï uid/gid ¤Î¥Á¥§¥Ã¥¯¤òÈô¤Ð¤·¤Æ¥×¥í¥°¥é¥à¤ò¸½ºß¤Î\n"
+" ¥æ¡¼¥¶/¥°¥ë¡¼¥×¤Ç¼Â¹Ô¤¹¤ë. ¤³¤Î¥Õ¥é¥°¤ÏÄ̾ï¤Î¼Â¹Ô´Ä¶­¤Ë¤Ï\n"
+" ´«¤á¤é¤ì¤Ê¤¤.\n"
+"\n"
+" Ãí°Õ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤³¤È¤Ï, ¤â¤· -u ¥Õ¥é¥°¤ò»È¤¤, mailman\n"
+" ¤Ç¤Ê¤¤¥°¥ë¡¼¥×¤Ç¼Â¹Ô¤·¤¿¤é, ¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤ÎÌäÂ꤬ȯÀ¸¤¹¤ë\n"
+" ¤Ç¤¢¤í¤¦¤³¤È¤Ç¤¢¤ë. Î㤨¤Ð¥ê¥¹¥È¤ÎÊݸ¸Ë¤òWeb¤«¤éºï½ü¤Ç¤­¤Ê¤¤\n"
+" ¤³¤È¤Ê¤É¤¬¤¢¤ê¤¦¤ë. ¶¯±¿¤òµ§¤ë!\n"
+"\n"
+" -s/--stale-lock-cleanup\n"
+" ¤â¤·, mailmanctl ¤¬¥Þ¥¹¥¿¡¼¤Î¥í¥Ã¥¯¥Õ¥¡¥¤¥ë¤ò¸«¤Ä¤±¤¿¤é, Ä̾ï\n"
+" ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤ò½Ð¤·¤Æ½ªÎ»¤¹¤ë. ¤³¤Î¥ª¥×¥·¥ç¥ó¤òÉÕ¤±¤ë¤È, \n"
+" ¤µ¤é¤ËÊ̤ΥÁ¥§¥Ã¥¯¤ò¹Ô¤¦. ¤â¤·, ¥í¥Ã¥¯¥Õ¥¡¥¤¥ë¤Ë½ñ¤«¤ì¤¿\n"
+" host/pid ¤Ë¥Þ¥Ã¥Á¤¹¤ë¥×¥í¥»¥¹¤¬¤¢¤ë¤Ê¤é, mailmanctl ¤Ï½ªÎ»¤¹¤ë\n"
+" ¤¬, ³ºÅö¤¹¤ë¥×¥í¥»¥¹¤¬Ìµ¤¤¾ì¹ç¤Ë¤Ï, ¸Å¤¯¤Ê¤Ã¤¿¥í¥Ã¥¯¥Õ¥¡¥¤¥ë\n"
+" ¤òºï½ü¤·¤Æ, ¿·¤·¤¯¥Þ¥¹¥¿¡¼¥í¥Ã¥¯¤òºîÀ®¤·¤è¤¦¤È»î¤ß¤ë.\n"
+"\n"
+" -q/--quiet\n"
+" ¾õÂÖ¥á¥Ã¥»¡¼¥¸¤ò½ÐÎϤ·¤Ê¤¤. ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤Ïɸ½à¥¨¥é¡¼¤Ë½ÐÎÏ\n"
+" ¤µ¤ì¤ë.\n"
+"\n"
+" -h/--help\n"
+" ¤³¤Î¥á¥Ã¥»¡¼¥¸¤ò½ÐÎϤ·¤Æ½ªÎ»¤¹¤ë\n"
+"\n"
+"¥³¥Þ¥ó¥É:\n"
+"\n"
+" start - ¥Þ¥¹¥¿¡¼¤Î¥Ç¡¼¥â¥ó¤ÈÁ´Éô¤Î qrunner ¤òµ¯Æ°¤¹¤ë. ¤â¤·, ´û¤Ë\n"
+" ¥Þ¥¹¥¿¡¼¤¬µ¯Æ°¤µ¤ì¤Æ¤¤¤ì¤Ð, ¤½¤Î¤³¤È¤òÊó¹ð¤·½ªÎ»¤¹¤ë.\n"
+"\n"
+" stop - ¥Þ¥¹¥¿¡¼¥Ç¡¼¥â¥ó¤ÈÁ´Éô¤Î qrunner ¤òÄä»ß¤¹¤ë. Ää»ß¸å¤Ï¥á¡¼¥ë\n"
+" ¤Î½èÍý¤Ï¹Ô¤ï¤ì¤Ê¤¤.\n"
+"\n"
+" restart - qrunner ¤òºÆµ¯Æ°¤¹¤ë¤¬, ¥Þ¥¹¥¿¡¼¤Ï¤½¤Î¤Þ¤Þ¤Ë¤¹¤ë. ¤³¤Î\n"
+" ¥³¥Þ¥ó¥É¤Ï Mailman ¤ò¹¹¿·¤·¤¿¤ê¥Ð¡¼¥¸¥ç¥ó¥¢¥Ã¥×¤·¤¿¸å¤Ë¼Â¹Ô\n"
+" ¤¹¤ë. qrunner ¤Ï¿·¤·¤¤¥³¡¼¥É¤ò»È¤¦¤è¤¦¤Ë¤Ê¤ë.\n"
+"\n"
+" reopen - Á´Éô¤Î¥í¥°¥Õ¥¡¥¤¥ë¤òÊĤ¸¤Æ, ¼¡¤Î¥í¥°¥á¥Ã¥»¡¼¥¸¤¬È¯À¸¤¹¤ë\n"
+" ¤È¤­¤Ë, ºÆÅÙ¥ª¡¼¥×¥ó¤µ¤»¤ë.\n"
+
+#: bin/mailmanctl:149
+msgid "PID unreadable in: %(pidfile)s"
+msgstr "PID ¤ËÅþã¤Ç¤­¤Þ¤»¤ó: %(pidfile)s"
+
+#: bin/mailmanctl:151
+msgid "Is qrunner even running?"
+msgstr "qrunner ¤¬¤Þ¤ÀÁö¤Ã¤Æ¤Þ¤¹¤«?"
+
+#: bin/mailmanctl:157
+msgid "No child with pid: %(pid)s"
+msgstr "PID¤Î»Ò¥×¥í¥»¥¹¤¬¤¢¤ê¤Þ¤»¤ó: %(pid)s"
+
+#: bin/mailmanctl:159
+msgid "Stale pid file removed."
+msgstr "¸Å¤¤ PID ¥Õ¥¡¥¤¥ë¤òºï½ü¤·¤Þ¤·¤¿."
+
+#: bin/mailmanctl:217
+msgid ""
+"The master qrunner lock could not be acquired because it appears as if "
+"another\n"
+"master qrunner is already running.\n"
+msgstr ""
+"¾¤Î¥Þ¥¹¥¿¡¼¤¬Áö¤Ã¤Æ¤¤¤ë¤è¤¦¤Ç, ¥Þ¥¹¥¿¡¼ qrunner ¤Î¥í¥Ã¥¯¤¬\n"
+"ºîÀ®¤Ç¤­¤Þ¤»¤ó.\n"
+
+#: bin/mailmanctl:223
+msgid ""
+"The master qrunner lock could not be acquired. It appears as though there "
+"is\n"
+"a stale master qrunner lock. Try re-running mailmanctl with the -s flag.\n"
+msgstr ""
+"¥Þ¥¹¥¿¡¼¤Î qrunner ¥í¥Ã¥¯¤¬³ÍÆÀ¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿. ¿ʬ, »È¤ï¤ì¤Æ¤¤¤Ê¤¤\n"
+"¥í¥Ã¥¯¥Õ¥¡¥¤¥ë¤¬»Ä¤Ã¤Æ¤¤¤ë¤Î¤Ç¤·¤ç¤¦. -s ¥Õ¥é¥°¤ò»È¤Ã¤Æ mailmanctl ¤ò\n"
+"ºÆÅÙµ¯Æ°¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤.\n"
+
+#: bin/mailmanctl:229
+msgid ""
+"The master qrunner lock could not be acquired, because it appears as if "
+"some\n"
+"process on some other host may have acquired it. We can't test for stale\n"
+"locks across host boundaries, so you'll have to do this manually. Or, if "
+"you\n"
+"know the lock is stale, re-run mailmanctl with the -s flag.\n"
+"\n"
+"Lock file: %(LOCKFILE)s\n"
+"Lock host: %(status)s\n"
+"\n"
+"Exiting."
+msgstr ""
+"¥Þ¥¹¥¿¡¼¤Î qrunner ¥í¥Ã¥¯¤¬³ÍÆÀ¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿. ¿ʬ, ¾¤Î¥Û¥¹¥È¤Î\n"
+"¥×¥í¥»¥¹¤¬»ý¤Ã¤Æ¤¤¤ë¤Î¤Ç¤Ï¤Ê¤¤¤«¤È»×¤ï¤ì¤Þ¤¹. ¥Û¥¹¥È¤Î¶­³¦¤ò±Û¤¨¤Æ\n"
+"¥í¥Ã¥¯¤¬»È¤ï¤ì¤Æ¤¤¤Ê¤¤¤«¤É¤¦¤«¤òÄ´¤Ù¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¤Î¤Ç, ¼êư¤Ç\n"
+"¥Á¥§¥Ã¥¯¤·¤Æ¤¯¤À¤µ¤¤. ¤¢¤ë¤¤¤Ï, ¤¢¤Ê¤¿¤¬¥í¥Ã¥¯¥Õ¥¡¥¤¥ë¤¬¸Å¤¯¤Ê¤Ã¤Æ¤¤¤ë\n"
+"¤³¤È¤òÃΤäƤ¤¤ë¤Ê¤é, -s ¥Õ¥é¥°¤òÉÕ¤±¤Æ mailmanctl ¤òºÆµ¯Æ°¤·¤Æ¤¯¤À¤µ¤¤.\n"
+"\n"
+"¥í¥Ã¥¯¥Õ¥¡¥¤¥ë: %(LOCKFILE)s\n"
+"¥í¥Ã¥¯¥Û¥¹¥È: %(status)s\n"
+"\n"
+"½ªÎ»¤·¤Þ¤¹."
+
+#: bin/mailmanctl:282
+msgid "Run this program as root or as the %(name)s user, or use -u."
+msgstr ""
+"¤³¤Î¥×¥í¥°¥é¥à¤Ï root ¤« %(name)s ¥æ¡¼¥¶¤Ç¼Â¹Ô¤·¤Æ¤¯¤À¤µ¤¤.\n"
+"¤½¤¦¤Ç¤Ê¤±¤ì¤Ð -u ¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤."
+
+#: bin/mailmanctl:313
+msgid "No command given."
+msgstr "¥³¥Þ¥ó¥É¤¬¤¢¤ê¤Þ¤»¤ó."
+
+#: bin/mailmanctl:316
+msgid "Bad command: %(command)s"
+msgstr "¥³¥Þ¥ó¥É¤¬°ã¤¤¤Þ¤¹: %(command)s"
+
+#: bin/mailmanctl:321
+msgid "Warning! You may encounter permission problems."
+msgstr "·Ù¹ð! ¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤ÎÌäÂ꤬½Ð¤ë¤«¤â¤·¤ì¤Þ¤»¤ó."
+
+#: bin/mailmanctl:330
+msgid "Shutting down Mailman's master qrunner"
+msgstr "Mailman ¤Î¥Þ¥¹¥¿¡¼ qrunner ¤òÄä»ß¤·¤Þ¤¹"
+
+#: bin/mailmanctl:337
+msgid "Restarting Mailman's master qrunner"
+msgstr "Mailman ¤Î¥Þ¥¹¥¿¡¼ qrunner ¤òºÆµ¯Æ°¤·¤Þ¤¹"
+
+#: bin/mailmanctl:341
+msgid "Re-opening all log files"
+msgstr "¥í¥°¥Õ¥¡¥¤¥ë¤ò³«¤­¤Ê¤ª¤·¤Þ¤¹"
+
+#: bin/mailmanctl:375
+msgid "Starting Mailman's master qrunner."
+msgstr "Mailman ¤Î¥Þ¥¹¥¿¡¼ qrunner ¤òµ¯Æ°¤·¤Þ¤¹"
+
+#: bin/mmsitepass:19
+msgid ""
+"Set the site password, prompting from the terminal.\n"
+"\n"
+"The site password can be used in most if not all places that the list\n"
+"administrator's password can be used, which in turn can be used in most "
+"places\n"
+"that a list users password can be used.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [password]\n"
+"\n"
+"Options:\n"
+"\n"
+" -c/--listcreator\n"
+" Set the list creator password instead of the site password. The "
+"list\n"
+" creator is authorized to create and remove lists, but does not have\n"
+" the total power of the site administrator.\n"
+"\n"
+" -h/--help\n"
+" Print this help message and exit.\n"
+"\n"
+"If password is not given on the command line, it will be prompted for.\n"
+msgstr ""
+"üËö¤«¤éÆþÎϤ¹¤ë¤³¤È¤Ç, ¥µ¥¤¥È¤Î¥Ñ¥¹¥ï¡¼¥É¤òÀßÄꤹ¤ë\n"
+"\n"
+"¥µ¥¤¥È¥Ñ¥¹¥ï¡¼¥É¤Ï¥ê¥¹¥È¤Î´ÉÍý¼Ô¥Ñ¥¹¥ï¡¼¥É¤ä¥ê¥¹¥È²ñ°÷¤Î¥Ñ¥¹¥ï¡¼¥É¤Î\n"
+"Âå¤ï¤ê¤Ë, ¤Û¤È¤ó¤É¤Î¾ì½ê¤Ç»È¤¦¤³¤È¤¬¤Ç¤­¤ë.\n"
+"\n"
+"»ÈÍÑË¡: %(PROGRAM)s [¥ª¥×¥·¥ç¥ó] [¥Ñ¥¹¥ï¡¼¥É]\n"
+"\n"
+" -c/--listcreator\n"
+" ¥µ¥¤¥È¥Ñ¥¹¥ï¡¼¥É¤Ç¤Ê¤¯, ¥ê¥¹¥ÈºîÀ®¼Ô¤Î¥Ñ¥¹¥ï¡¼¥É¤òÀßÄꤹ¤ë.\n"
+" ¥ê¥¹¥ÈºîÀ®¼Ô¤Ï¥ê¥¹¥È¤òºîÀ®¤·¤¿¤êºï½ü¤¹¤ë¸¢¸Â¤ò»ý¤Ä¤¬, ¥µ¥¤¥È\n"
+" ´ÉÍý¼Ô¤Î»ý¤ÄÁ´Ç½ÎϤò»ý¤Ä¤ï¤±¤Ç¤Ï¤Ê¤¤.\n"
+"\n"
+" -h/--help\n"
+" ¤³¤Î¥Ø¥ë¥×¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¤Æ½ªÎ»¤¹¤ë.\n"
+"\n"
+"¥Ñ¥¹¥ï¡¼¥É¤¬¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ë̵¤¤¾ì¹ç¤Ë¤Ï, ÆþÎϤòÂ¥¤¹¥×¥í¥ó¥×¥È¤¬½Ð¤ë.\n"
+
+#: bin/mmsitepass:73
+msgid "site"
+msgstr "¥µ¥¤¥È"
+
+#: bin/mmsitepass:80
+msgid "list creator"
+msgstr "¥ê¥¹¥ÈºîÀ®¼Ô"
+
+#: bin/mmsitepass:86
+msgid "New %(pwdesc)s password: "
+msgstr "¿·¤·¤¤ %(pwdesc)s ¤Î¥Ñ¥¹¥ï¡¼¥É:"
+
+#: bin/mmsitepass:87
+msgid "Again to confirm password: "
+msgstr "¥Ñ¥¹¥ï¡¼¥É³Îǧ:"
+
+#: bin/mmsitepass:89
+msgid "Passwords do not match; no changes made."
+msgstr "¥Ñ¥¹¥ï¡¼¥É¤¬°ìÃפ·¤Þ¤»¤ó; Êѹ¹¤Ç¤­¤Þ¤»¤ó."
+
+#: bin/mmsitepass:92
+msgid "Interrupted..."
+msgstr "̾̂..."
+
+#: bin/mmsitepass:98
+msgid "Password changed."
+msgstr "¥Ñ¥¹¥ï¡¼¥É¤òÊѹ¹¤·¤Þ¤·¤¿."
+
+#: bin/mmsitepass:100
+msgid "Password change failed."
+msgstr "¥Ñ¥¹¥ï¡¼¥É¤ÎÊѹ¹¤Ë¼ºÇÔ."
+
+#: bin/newlist:19
+msgid ""
+"Create a new, unpopulated mailing list.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname [listadmin-addr [admin-password]]]\n"
+"\n"
+"Options:\n"
+"\n"
+" -l language\n"
+" --language language\n"
+" Make the list's preferred language `language', which must be a two\n"
+" letter language code.\n"
+"\n"
+" -q/--quiet\n"
+" Normally the administrator is notified by email (after a prompt) "
+"that\n"
+" their list has been created. This option suppresses the prompt and\n"
+" notification.\n"
+"\n"
+" -h/--help\n"
+" Print this help text and exit.\n"
+"\n"
+"You can specify as many of the arguments as you want on the command line:\n"
+"you will be prompted for the missing ones.\n"
+"\n"
+"Every Mailman list has two parameters which define the default host name "
+"for\n"
+"outgoing email, and the default URL for all web interfaces. When you\n"
+"configured Mailman, certain defaults were calculated, but if you are "
+"running\n"
+"multiple virtual Mailman sites, then the defaults may not be appropriate "
+"for\n"
+"the list you are creating.\n"
+"\n"
+"You can specify the domain to create your new list in by spelling the "
+"listname\n"
+"like so:\n"
+"\n"
+" mylist@www.mydom.ain\n"
+"\n"
+"where `www.mydom.ain' should be the base hostname for the URL to this "
+"virtual\n"
+"hosts's lists. E.g. with is setting people will view the general list\n"
+"overviews at http://www.mydom.ain/mailman/listinfo. Also, www.mydom.ain\n"
+"should be a key in the VIRTUAL_HOSTS mapping in mm_cfg.py/Defaults.py. It\n"
+"will be looked up to give the email hostname. If this can't be found, then\n"
+"www.mydom.ain will be used for both the web interface and the email\n"
+"interface.\n"
+"\n"
+"If you spell the list name as just `mylist', then the email hostname will "
+"be\n"
+"taken from DEFAULT_EMAIL_HOST and the url will be taken from DEFAULT_URL "
+"(as\n"
+"defined in your Defaults.py file or overridden by settings in mm_cfg.py).\n"
+"\n"
+"Note that listnames are forced to lowercase.\n"
+msgstr ""
+"¿·¤·¤¯²ñ°÷̤ÅÐÏ¿¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤òºîÀ®¤¹¤ë.\n"
+"\n"
+"»ÈÍÑË¡: %(PROGRAM)s [¥ª¥×¥·¥ç¥ó] [¥ê¥¹¥È̾ [´ÉÍý¼Ô¥¢¥É¥ì¥¹ [¥Ñ¥¹¥ï¡¼¥É]]]\n"
+"\n"
+"¥ª¥×¥·¥ç¥ó:\n"
+" -l ¸À¸ì\n"
+" --language ¸À¸ì\n"
+" ¥ê¥¹¥È¤Î¸À¸ì¤ò `¸À¸ì' ¤ËÀßÄꤹ¤ë. ¤³¤ì¤Ï2ʸ»ú¤Î¸À¸ì¥³¡¼¥É\n"
+" (¤È _ ¤Î¼¡¤Ë2ʸ»ú¤Î¹ñ¥³¡¼¥É) ¤Çɽ¤µ¤ì¤ë.\n"
+"\n"
+" -q/--quiet\n"
+" Ä̾ï´ÉÍý¼Ô¤Ë¤Ï(³Îǧ¤Î¸å)¥á¡¼¥ë¤Ç¥ê¥¹¥ÈºîÀ®¤òÄÌÃΤ¹¤ë. ¤³¤Î\n"
+" ¥ª¥×¥·¥ç¥ó¤òÉÕ¤±¤ë¤È³Îǧ¤È¥á¡¼¥ëÄÌÃΤò¹Ô¤ï¤Ê¤¤.\n"
+"\n"
+" -h/--help\n"
+" ¤³¤Î¥Ø¥ë¥×¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¤Æ½ªÎ»¤¹¤ë.\n"
+"\n"
+"¥³¥Þ¥ó¥É¹Ô¤Ë¤Ï¤¤¤¯¤Ä¤Ç¤â°ú¿ô¤òʤ٤뤳¤È¤¬¤Ç¤­¤ë. ¤â¤·Ìµ¤¤¤È, ¥×¥í¥ó¥×¥È\n"
+"¤¬½Ð¤ÆÆþÎϤòÍ׵᤹¤ë.\n"
+"\n"
+"Mailman ¤Î¥ê¥¹¥È¤Ï¤½¤ì¤¾¤ì2¤Ä¤Î¥Ñ¥é¥á¡¼¥¿, ¤Ä¤Þ¤ê¥á¡¼¥ë¤¬½Ð¤Æ¹Ô¤¯¤È¤­¤Î\n"
+"¥Û¥¹¥È̾¤È, ¥¦¥§¥Ö¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î URL ¤ò»ý¤Ã¤Æ¤¤¤ë. Mailman ¤Î½é´ü\n"
+"ÀßÄê¤ò¹Ô¤¦¤È¤­¤Ë, ¥Ç¥Õ¥©¥ë¥È¤¬ÀßÄꤵ¤ì¤ë. ¤·¤«¤·, Ê£¿ô¤Î²¾ÁÛ Mailman \n"
+"¥µ¥¤¥È¤ò»ý¤Ã¤Æ¤¤¤ë¤È¤­¤Ë¤Ï, ¤½¤Î¥Ç¥Õ¥©¥ë¥È¤ÏºîÀ®¤¹¤ë¥ê¥¹¥È¤Ë¹ç¤ï¤Ê¤¤\n"
+"¤«¤â¤·¤ì¤Ê¤¤.\n"
+"\n"
+"¥É¥á¥¤¥ó¤ò»ØÄꤹ¤ë¤¿¤á¤Ë, ¥ê¥¹¥È̾¤ò°Ê²¼¤Î¤è¤¦¤Ë½ñ¤¯¤³¤È¤¬¤Ç¤­¤ë:\n"
+"\n"
+" mylist@www.mydom.ain\n"
+"\n"
+"¤³¤³¤Ç, `www.mydom.ain' ¤Ï¤³¤Î²¾Áۥꥹ¥È¤Î´ðËÜ¥Û¥¹¥È̾¤Ç¤¢¤ë.\n"
+"¤Ä¤Þ¤ê, ¥ê¥¹¥È°ÆÆâ¤Î¥Ú¡¼¥¸¤Ï\n"
+" http://www.mydom.ain/mailman/listinfo\n"
+"¤Ç¸«¤ë¤³¤È¤¬¤Ç¤­¤ë¤â¤Î¤È¤¹¤ë. ¤Þ¤¿, www.mydom.ain ¤Ï mm_cfg.py/\n"
+"Defaults.py ¤ÎÃæ¤ÇÄêµÁ¤µ¤ì¤ë VIRTUAL_HOSTS ¤ò»²¾È¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë.\n"
+"¤³¤³¤«¤é¥á¡¼¥ë¤Î¥Û¥¹¥È̾¤ò¼è¤ê½Ð¤¹¤³¤È¤Ë¤Ê¤ë. ¤â¤·, ¤³¤ì¤¬¼è¤ê½Ð¤»\n"
+"¤Ê¤±¤ì¤Ð, www.mydom.ain ¤¬¥¦¥§¥Ö¤È¥á¡¼¥ë¤ÎξÊý¤Ë»È¤ï¤ì¤ë.\n"
+"\n"
+"¤â¤·, ¥ê¥¹¥È̾¤¬¤¿¤À¤Î `mylist' ¤À¤Ã¤¿¤é, ¥á¡¼¥ë¥Û¥¹¥È̾¤ÈURL¤Ï¤½¤ì¤¾¤ì\n"
+"Defaults.py ¤Þ¤¿¤Ï mm_cfg.py ¤Î DEFAULT_EMAIL_HOST ¤È DEFAULT_URL ¤¬\n"
+"»È¤ï¤ì¤ë.\n"
+"\n"
+"¥ê¥¹¥È̾¤Ï¾®Ê¸»ú¤ËÊÑ´¹¤µ¤ì¤ë.\n"
+
+#: bin/newlist:118
+msgid "Unknown language: %(lang)s"
+msgstr "̤ÃΤθÀ¸ì: %(lang)s"
+
+#: bin/newlist:123
+msgid "Enter the name of the list: "
+msgstr "¥ê¥¹¥È¤Î̾Á°¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤: "
+
+#: bin/newlist:140
+msgid "Enter the email of the person running the list: "
+msgstr "¥ê¥¹¥È´ÉÍý¼Ô¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤: "
+
+#: bin/newlist:145
+msgid "Initial %(listname)s password: "
+msgstr "%(listname)s ¤Î½é´ü¥Ñ¥¹¥ï¡¼¥É: "
+
+#: bin/newlist:149
+msgid "The list password cannot be empty"
+msgstr "¥ê¥¹¥È¤Î¥Ñ¥¹¥ï¡¼¥É¤ò¶õÇò¤Ë¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó"
+
+#: bin/newlist:190
+msgid "Hit enter to notify %(listname)s owner..."
+msgstr "Enter ¤ò²¡¤·¤Æ %(listname)s ¤Î´ÉÍý¼Ô¤Ë¥á¡¼¥ëÄÌÃΤ¹¤ë..."
+
+#: bin/qrunner:19
+msgid ""
+"Run one or more qrunners, once or repeatedly.\n"
+"\n"
+"Each named runner class is run in round-robin fashion. In other words, the\n"
+"first named runner is run to consume all the files currently in its\n"
+"directory. When that qrunner is done, the next one is run to consume all "
+"the\n"
+"files in /its/ directory, and so on. The number of total iterations can be\n"
+"given on the command line.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" -r runner[:slice:range]\n"
+" --runner=runner[:slice:range]\n"
+" Run the named qrunner, which must be one of the strings returned by\n"
+" the -l option. Optional slice:range if given, is used to assign\n"
+" multiple qrunner processes to a queue. range is the total number "
+"of\n"
+" qrunners for this queue while slice is the number of this qrunner "
+"from\n"
+" [0..range).\n"
+"\n"
+" If using the slice:range form, you better make sure that each "
+"qrunner\n"
+" for the queue is given the same range value. If slice:runner is "
+"not\n"
+" given, then 1:1 is used.\n"
+"\n"
+" Multiple -r options may be given, in which case each qrunner will "
+"run\n"
+" once in round-robin fashion. The special runner `All' is shorthand\n"
+" for a qrunner for each listed by the -l option.\n"
+"\n"
+" --once\n"
+" -o\n"
+" Run each named qrunner exactly once through its main loop. "
+"Otherwise,\n"
+" each qrunner runs indefinitely, until the process receives a "
+"SIGTERM\n"
+" or SIGINT.\n"
+"\n"
+" -l/--list\n"
+" Shows the available qrunner names and exit.\n"
+"\n"
+" -v/--verbose\n"
+" Spit out more debugging information to the logs/qrunner log file.\n"
+"\n"
+" -s/--subproc\n"
+" This should only be used when running qrunner as a subprocess of "
+"the\n"
+" mailmanctl startup script. It changes some of the exit-on-error\n"
+" behavior to work better with that framework.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+"\n"
+"runner is required unless -l or -h is given, and it must be one of the "
+"names\n"
+"displayed by the -l switch.\n"
+msgstr ""
+"¤Ò¤È¤Ä°Ê¾å¤Î qrunner ¤ò, °ìÅÙ¤«·«¤êÊÖ¤·¼Â¹Ô¤¹¤ë.\n"
+"\n"
+"¤½¤ì¤¾¤ì¤Î̾Á°¤ÎÍ¿¤¨¤é¤ì¤¿ runner ¤Î¥¯¥é¥¹¤¬¥é¥¦¥ó¥É¥í¥Ó¥ó¤Î¤è¤¦¤Ë¼Â¹Ô\n"
+"¤µ¤ì¤ë. ¸À¤¤´¹¤¨¤ë¤È, ºÇ½é¤Î̾Á°¤Î runner ¤¬¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë\n"
+"¤òÁ´Éô½èÍý¤¹¤ë. ¤½¤Î qrunner ¤¬½èÍý¤ò½ª¤ë¤È, ¼¡¤Î qrunner "
+"¤¬¼¡¤Î¥Ç¥£¥ì¥¯¥È¥ê\n"
+"¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¤ò½èÍý¤¹¤ë¤È¤¤¤¦¶ñ¹ç¤Ë, ¼¡¡¹¼Â¹Ô¤¹¤ë. ²¿²ó·«¤êÊÖ¤¹¤«¤Ï,\n"
+"¥³¥Þ¥ó¥É¹Ô¤Ç»ØÄê¤Ç¤­¤ë.\n"
+"\n"
+"»ÈÍÑË¡: %(PROGRAM)s [¥ª¥×¥·¥ç¥ó]\n"
+"\n"
+"¥ª¥×¥·¥ç¥ó:\n"
+"\n"
+" -r runner[:¥¹¥é¥¤¥¹:ÈϰÏ]\n"
+" --runner=runner[:¥¹¥é¥¤¥¹:ÈϰÏ]\n"
+" ̾Á°¤ÎÉÕ¤¤¤¿ qrunner ¤òµ¯Æ°¤¹¤ë. ¤³¤ì¤Ï -l ¥ª¥×¥·¥ç¥ó¤Ç³Îǧ¤Ç¤­¤ë\n"
+" ̾Á°¤Ç¤¢¤ë. ¥ª¥×¥·¥ç¥ó¤Î ¥¹¥é¥¤¥¹:ÈÏ°Ï ¤Ï°ì¤Ä¤Î¥­¥å¡¼(ÂÔ¤Á¹ÔÎó)¤Ë\n"
+" Ê£¿ô¤Î qrunner ¥×¥í¥»¥¹¤ò³ä¤êÅö¤Æ¤ë¾ì¹ç¤Ë»ÈÍѤ¹¤ë. ÈϰϤϤ³¤Î¥­¥å¡¼\n"
+" ¤Ë³ä¤êÅö¤Æ¤é¤ì¤ë qrunner ¤Î¹ç·×¿ô¤Ç, ¥¹¥é¥¤¥¹¤Ï [0..ÈϰÏ] ¤Î´Ö¤Î\n"
+" ¤³¤Î qrunner ¤ÎÈÖ¹æ¤Ç¤¢¤ë.\n"
+"\n"
+" ¤â¤·, ¥¹¥é¥¤¥¹:ÈϰϤò»È¤¦¾ì¹ç¤Ë¤Ï, µ¯Æ°¤µ¤ì¤ë¤½¤ì¤¾¤ì¤Î qrunner ¤¬\n"
+" Ʊ¤¸ÈϰÏÃͤò»ý¤Ã¤Æ¤¤¤ë¤è¤¦¤ËÃí°Õ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤. ¥¹¥é¥¤¥¹:ÈϰÏ\n"
+" ¤¬»ØÄꤵ¤ì¤Ê¤¤¤È¤­¤Ï 1:1 ¤¬»È¤ï¤ì¤ë.\n"
+"\n"
+" -r ¥ª¥×¥·¥ç¥ó¤òÊ£¿ôÉÕ¤±¤ë¤³¤È¤â¤Ç¤­¤ë. ¤³¤Î¾ì¹ç¤½¤ì¤¾¤ì¤Î qrunner \n"
+" ¤Ï¥é¥¦¥ó¥É¥í¥Ó¥ó¤Î·Á¤Ç¼Â¹Ô¤µ¤ì¤ë. `All' ¤È¤¤¤¦Ì¾Á°¤ÎÆÃÊÌ¤Ê runner \n"
+" ¤Ï, -l ¥ª¥×¥·¥ç¥ó¤Ç¥ê¥¹¥È¤µ¤ì¤ëÁ´Éô¤òµ¯Æ°¤¹¤ë¤È¤¤¤¦°ÕÌ£¤Ç¤¢¤ë.\n"
+"\n"
+" -once\n"
+" -o\n"
+" qrunner ¤ò1²ó¤À¤±¼Â¹Ô¤¹¤ë. ¤³¤ì¤¬Ìµ¤¤¤È, ¥×¥í¥»¥¹¤¬ SIGTERM ¤Þ¤¿¤Ï\n"
+" SIGINT ¤ò¼õ¿®¤¹¤ë¤Þ¤Ç̵¸Â²ó¼Â¹Ô¤µ¤ì¤ë.\n"
+"\n"
+" -l/--list\n"
+" ¸ºß¤¹¤ë qrunner ¤Î̾Á°¤òɽ¼¨¤·¤Æ½ªÎ»¤¹¤ë.\n"
+"\n"
+" -v/--verbose\n"
+" logs/qrunner ¥í¥°¥Õ¥¡¥¤¥ë¤Ë¥Ç¥Ð¥Ã¥°¾ðÊó¤ò½Ð¤¹.\n"
+"\n"
+" -s/--subproc\n"
+" mailmanctl ¤Î¥¹¥¿¡¼¥È¥¢¥Ã¥×¥¹¥¯¥ê¥×¥È¤«¤é qrunner ¤ò¼Â¹Ô¤¹¤ë¤È¤­¤Ë\n"
+" »È¤¦. ¥¨¥é¡¼¤Ç½ªÎ»¤¹¤ë¤È¤­¤Î¤Õ¤ë¤Þ¤¤¤ò¤³¤ÎÏÈÁȤߤ˹ç¤ï¤»¤ë.\n"
+"\n"
+" -h/--help\n"
+" ¤³¤Î¥á¥Ã¥»¡¼¥¸¤ò½ÐÎϤ·¤Æ½ªÎ»¤¹¤ë.\n"
+"\n"
+"-l ¤Þ¤¿¤Ï -h ¤¬Ìµ¤¤»þ, runner ¤Ïɬ¿Ü¤Ç¤¢¤ë. ¤Þ¤¿¤³¤ì¤Ï -l "
+"¥¹¥¤¥Ã¥Á¤Ç½Ð¤Æ¤¯¤ë\n"
+"̾Á°¤Î°ì¤Ä¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤.\n"
+
+#: bin/qrunner:176
+msgid "%(name)s runs the %(runnername)s qrunner"
+msgstr "%(name)s ¤Ï %(runnername)s qrunner ¤ò¼Â¹Ô"
+
+#: bin/qrunner:177
+msgid "All runs all the above qrunners"
+msgstr "All ¤Ï¾å¤ÎÁ´Éô¤Î qrunner ¤ò¼Â¹Ô¤¹¤ë"
+
+#: bin/qrunner:213
+msgid "No runner name given."
+msgstr "runner ̾¤¬¤¢¤ê¤Þ¤»¤ó."
+
+#: bin/remove_members:19
+msgid ""
+"Remove members from a list.\n"
+"\n"
+"Usage:\n"
+" remove_members [options] [listname] [addr1 ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" --file=file\n"
+" -f file\n"
+" Remove member addresses found in the given file. If file is\n"
+" `-', read stdin.\n"
+"\n"
+" --all\n"
+" -a\n"
+" Remove all members of the mailing list.\n"
+" (mutually exclusive with --fromall)\n"
+"\n"
+" --fromall\n"
+" Removes the given addresses from all the lists on this system\n"
+" regardless of virtual domains if you have any. This option cannot "
+"be\n"
+" used -a/--all. Also, you should not specify a listname when using "
+"this\n"
+" option.\n"
+"\n"
+" --nouserack\n"
+" -n\n"
+" Don't send the user acknowledgements.\n"
+"\n"
+" --noadminack\n"
+" -N\n"
+" Don't send the admin acknowledgements.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname is the name of the mailing list to use.\n"
+"\n"
+" addr1 ... are additional addresses to remove.\n"
+"\n"
+msgstr ""
+"¥ê¥¹¥È¤«¤é²ñ°÷¤òºï½ü¤¹¤ë.\n"
+"\n"
+"»ÈÍÑË¡:\n"
+" remove_members [¥ª¥×¥·¥ç¥ó] [¥ê¥¹¥È̾] [¥¢¥É¥ì¥¹1 ...]\n"
+"\n"
+"¥ª¥×¥·¥ç¥ó:\n"
+"\n"
+" --file=¥Õ¥¡¥¤¥ë\n"
+" -f ¥Õ¥¡¥¤¥ë\n"
+" ¥Õ¥¡¥¤¥ë¤Ë½ñ¤«¤ì¤¿²ñ°÷¥¢¥É¥ì¥¹¤òºï½ü¤¹¤ë. ¥Õ¥¡¥¤¥ë¤¬ `-' ¤Ç\n"
+" ¤¢¤ë¾ì¹ç¤Ï, ɸ½àÆþÎϤòÆÉ¤ß¼è¤ë.\n"
+"\n"
+" --all\n"
+" -a\n"
+" ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Î²ñ°÷¤òÁ´Éôºï½ü¤¹¤ë.\n"
+" (--fromall ¤È¤ÏƱ»þ¤Ë»ÈÍѤǤ­¤Ê¤¤.)\n"
+"\n"
+" --fromall\n"
+" ¥¢¥É¥ì¥¹¤Î²ñ°÷¤ò¤³¤Î¥·¥¹¥Æ¥à¤ÎÁ´¤Æ¤Î¥ê¥¹¥È¤«¤éºï½ü¤¹¤ë.\n"
+" ²¾Áۥɥᥤ¥ó¤âºï½üÂоݤȤʤë. ¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï -a/--all\n"
+" ¤ÈƱ»þ¤Ë¤Ï»È¤¨¤Ê¤¤. ¤Þ¤¿, ¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤¿¤È¤­¤Ï\n"
+" ¥ê¥¹¥È̾¤ò»ØÄꤷ¤Æ¤Ï¤¤¤±¤Ê¤¤.\n"
+"\n"
+" --nouserack\n"
+" -n\n"
+" ²ñ°÷¤Ë³Îǧ¥á¡¼¥ë¤òÁ÷¤é¤Ê¤¤.\n"
+"\n"
+" --noadminack\n"
+" -N\n"
+" ´ÉÍý¼Ô¤Ë³Îǧ¥á¡¼¥ë¤òÁ÷¤é¤Ê¤¤.\n"
+"\n"
+" --help\n"
+" -h\n"
+" ¤³¤Î¥Ø¥ë¥×¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¤Æ½ªÎ»¤¹¤ë\n"
+"\n"
+" ¥ê¥¹¥È̾¤Ï»ÈÍѤ¹¤ë¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Î̾Á°.\n"
+"\n"
+" ¥¢¥É¥ì¥¹1 ... ¤Ïºï½ü¤¹¤ë¥á¡¼¥ë¥¢¥É¥ì¥¹.\n"
+"\n"
+
+#: bin/remove_members:147
+msgid "Could not open file for reading: %(filename)s."
+msgstr "ÆÉ¤ß¹þ¤ß¥Õ¥¡¥¤¥ë¤¬³«¤±¤Þ¤»¤ó: %(filename)s"
+
+#: bin/remove_members:154
+msgid "Error opening list %(listname)s... skipping."
+msgstr "%(listname)s ¥ê¥¹¥È¤¬¥¨¥é¡¼¤Ç³«¤±¤Þ¤»¤ó, Èô¤Ð¤·¤Þ¤¹."
+
+#: bin/remove_members:164
+msgid "No such member: %(addr)s"
+msgstr "¤½¤Î¤è¤¦¤Ê²ñ°÷¤Ï¤¤¤Þ¤»¤ó: %(addr)s."
+
+#: bin/remove_members:171
+msgid "User `%(addr)s' removed from list: %(listname)s."
+msgstr "¥æ¡¼¥¶ `%(addr)s' ¤ò¥ê¥¹¥È¤«¤éºï½ü¤·¤Þ¤·¤¿: %(listname)s"
+
+#: bin/rmlist:19
+msgid ""
+"Remove the components of a mailing list with impunity - beware!\n"
+"\n"
+"This removes (almost) all traces of a mailing list. By default, the lists\n"
+"archives are not removed, which is very handy for retiring old lists.\n"
+"\n"
+"Usage:\n"
+" rmlist [-a] [-h] listname\n"
+"\n"
+"Where:\n"
+" --archives\n"
+" -a\n"
+" Remove the list's archives too, or if the list has already been\n"
+" deleted, remove any residual archives.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+msgstr ""
+"¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤òºï½ü¤¹¤ë (´°Á´¤Ë) - Ãí°Õ!\n"
+"\n"
+"¤³¤ì¤Ï¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Îº¯Àפò(¤Û¤Ü)Á´Éô¾Ãµî¤¹¤ë. ¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï,\n"
+"¥ê¥¹¥È¤ÎÊݸ½ñ¸Ë¤Ïºï½ü¤µ¤ì¤Ê¤¤. ¸Å¤¤¥ê¥¹¥È¤ò¥ê¥¿¥¤¥¢¤µ¤»¤ë¤Ë¤Ï½½Ê¬¤Ç¤¢¤ë.\n"
+"\n"
+"»ÈÍÑË¡:\n"
+" rmlist [-a] [-h] ¥ê¥¹¥È̾\n"
+"\n"
+"⤷:\n"
+" --archives\n"
+" -a\n"
+" ¥ê¥¹¥È¤ÎÊݸ½ñ¸Ë¤âºï½ü¤¹¤ë, ¤Þ¤¿¤Ï´û¤Ë¥ê¥¹¥È¤¬ºï½ü¤µ¤ì¤Æ¤¤¤ì¤Ð\n"
+" »Ä¤Ã¤Æ¤¤¤ëÊݸ½ñ¸Ë¤òºï½ü¤¹¤ë.\n"
+"\n"
+" --help\n"
+" -h\n"
+" ¤³¤Î¥Ø¥ë¥×¥á¥Ã¥»¡¼¥¸¤ò½ÐÎϤ·¤Æ½ªÎ»¤¹¤ë.\n"
+"\n"
+
+#: bin/rmlist:66 bin/rmlist:69
+msgid "Removing %(msg)s"
+msgstr "%(msg)s ¤òºï½üÃæ"
+
+#: bin/rmlist:72
+msgid "%(listname)s %(msg)s not found as %(dir)s"
+msgstr "%(listname)s %(msg)s ¤Ï %(dir)s ¤Ë¸«¤Ä¤«¤ê¤Þ¤»¤ó"
+
+#: bin/rmlist:96
+msgid "No such list (or list already deleted): %(listname)s"
+msgstr "%(listname)s ¤È¤¤¤¦¥ê¥¹¥È¤Ï¤¢¤ê¤Þ¤»¤ó (Ëô¤Ï, ´û¤Ëºï½ü¤µ¤ì¤Æ¤¤¤Þ¤¹)."
+
+#: bin/rmlist:98
+msgid "No such list: %(listname)s. Removing its residual archives."
+msgstr "%(listname)s ¤È¤¤¤¦¥ê¥¹¥È¤Ï¤¢¤ê¤Þ¤»¤ó. »Ä¤µ¤ì¤¿Êݸ½ñ¸Ë¤òºï½ü¤·¤Þ¤¹."
+
+#: bin/rmlist:102
+msgid "Not removing archives. Reinvoke with -a to remove them."
+msgstr "Êݸ½ñ¸Ë¤Ïºï½ü¤·¤Þ¤»¤ó. ºï½ü¤¹¤ë¤Ë¤Ï -a ¤ò¤Ä¤±¤Æ¤â¤¦°ìÅÙ"
+
+#: bin/rmlist:116
+msgid "list info"
+msgstr "¥ê¥¹¥È¤Î°ÆÆâ"
+
+#: bin/rmlist:122 bin/rmlist:124
+msgid "private archives"
+msgstr "¸ÂÄê¸ø³«Êݸ½ñ¸Ë"
+
+#: bin/rmlist:126 bin/rmlist:128
+msgid "public archives"
+msgstr "¸ø³«Êݸ½ñ¸Ë"
+
+#: bin/sync_members:19
+msgid ""
+"Synchronize a mailing list's membership with a flat file.\n"
+"\n"
+"This script is useful if you have a Mailman mailing list and a sendmail\n"
+":include: style list of addresses (also as is used in Majordomo). For "
+"every\n"
+"address in the file that does not appear in the mailing list, the address "
+"is\n"
+"added. For every address in the mailing list that does not appear in the\n"
+"file, the address is removed. Other options control what happens when an\n"
+"address is added or removed.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] -f file listname\n"
+"\n"
+"Where `options' are:\n"
+"\n"
+" --no-change\n"
+" -n\n"
+" Don't actually make the changes. Instead, print out what would be\n"
+" done to the list.\n"
+"\n"
+" --welcome-msg[=<yes|no>]\n"
+" -w[=<yes|no>]\n"
+" Sets whether or not to send the newly added members a welcome\n"
+" message, overriding whatever the list's `send_welcome_msg' setting\n"
+" is. With -w=yes or -w, the welcome message is sent. With -w=no, "
+"no\n"
+" message is sent.\n"
+"\n"
+" --goodbye-msg[=<yes|no>]\n"
+" -g[=<yes|no>]\n"
+" Sets whether or not to send the goodbye message to removed members,\n"
+" overriding whatever the list's `send_goodbye_msg' setting is. With\n"
+" -g=yes or -g, the goodbye message is sent. With -g=no, no message "
+"is\n"
+" sent.\n"
+"\n"
+" --digest[=<yes|no>]\n"
+" -d[=<yes|no>]\n"
+" Selects whether to make newly added members receive messages in\n"
+" digests. With -d=yes or -d, they become digest members. With "
+"-d=no\n"
+" (or if no -d option given) they are added as regular members.\n"
+"\n"
+" --notifyadmin[=<yes|no>]\n"
+" -a[=<yes|no>]\n"
+" Specifies whether the admin should be notified for each "
+"subscription\n"
+" or unsubscription. If you're adding a lot of addresses, you\n"
+" definitely want to turn this off! With -a=yes or -a, the admin is\n"
+" notified. With -a=no, the admin is not notified. With no -a "
+"option,\n"
+" the default for the list is used.\n"
+"\n"
+" --file <filename | ->\n"
+" -f <filename | ->\n"
+" This option is required. It specifies the flat file to synchronize\n"
+" against. Email addresses must appear one per line. If filename is\n"
+" `-' then stdin is used.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this message.\n"
+"\n"
+" listname\n"
+" Required. This specifies the list to synchronize.\n"
+msgstr ""
+"¥ê¥¹¥È¤Î²ñ°÷¤òʿʸ¤Î¥Õ¥¡¥¤¥ë¤ÈƱ´ü¤µ¤»¤ë.\n"
+"\n"
+"¤³¤Î¥¹¥¯¥ê¥×¥È¤Ï, sendmail ¤Î :include: ·Á¼°¤Î¥¢¥É¥ì¥¹¥ê¥¹¥È(¤³¤ì¤Ï\n"
+"Majordomo ¤Ç¤â»ÈÍѤµ¤ì¤Æ¤¤¤ë) ¤ò»È¤¤¤¿¤¤¾ì¹ç¤ËÍ­¸ú¤Ç¤¢¤ë. ¥á¡¼¥ê¥ó¥°\n"
+"¥ê¥¹¥È¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤Ê¤¤¥Õ¥¡¥¤¥ë¤Î¥¢¥É¥ì¥¹¤ÏÄɲ䵤ì, ¥Õ¥¡¥¤¥ë¤Ë\n"
+"Æþ¤Ã¤Æ¤¤¤Ê¤¤¥ê¥¹¥È²ñ°÷¤Ïºï½ü¤µ¤ì¤ë. ¾¤Î¥ª¥×¥·¥ç¥ó¤Ç¥¢¥É¥ì¥¹¤¬ÄɲÃ\n"
+"¤Þ¤¿¤Ïºï½ü¤µ¤ì¤ë¤È¤­¤Ë²¿¤¬µ¯¤³¤ë¤«¤òÀ©¸æ¤¹¤ë.\n"
+"\n"
+"»ÈÍÑË¡: %(PROGRAM)s [¥ª¥×¥·¥ç¥ó] -f ¥Õ¥¡¥¤¥ë ¥ê¥¹¥È̾\n"
+"\n"
+"¥ª¥×¥·¥ç¥ó:\n"
+"\n"
+" --no-change\n"
+" -n\n"
+" ¼ÂºÝ¤Ë¤ÏÊѹ¹¤ò¹Ô¤ï¤Ê¤¤. Âå¤ï¤ê¤Ë, ¤É¤Î¤è¤¦¤ÊÊѹ¹¤¬¤¢¤ë¤«¤ò\n"
+" ɽ¼¨¤¹¤ë.\n"
+"\n"
+" --welcome-msg[=<yes|no>]\n"
+" -w[=<yes|no>\n"
+" ¿·¤·¤¯ÅÐÏ¿¤µ¤ì¤¿²ñ°÷¤Ë´¿·Þ¥á¡¼¥ë¤ò½Ð¤¹¤«¤É¤¦¤«¤òÀßÄꤹ¤ë.\n"
+" ¤³¤ì¤Ï, ¥ê¥¹¥È¤Î `send_welcome_msg' ¤ÎÀßÄê¤ò¾å½ñ¤­¤¹¤ë.\n"
+" -w=yes ¤Þ¤¿¤Ï -w ¤Ç´¿·Þ¥á¡¼¥ë¤ò½Ð¤¹. -w=no ¤Ç¤Ï¥á¡¼¥ë¤Ï\n"
+" ½Ð¤µ¤Ê¤¤.\n"
+"\n"
+" --goodby-msg[=<yes|no>]\n"
+" -g[=<yes|no>\n"
+" ºï½ü¤µ¤ì¤¿²ñ°÷¤Ë¤ªÊ̤ì¤Î¥á¡¼¥ë¤ò½Ð¤¹¤«¤É¤¦¤«¤òÀßÄꤹ¤ë.\n"
+" ¤³¤ì¤Ï, ¥ê¥¹¥È¤Î `send_goodbye_msg' ¤ÎÀßÄê¤ò¾å½ñ¤­¤¹¤ë.\n"
+" -g=yes ¤Þ¤¿¤Ï -g ¤Ç¤ªÊ̤ì¥á¡¼¥ë¤ò½Ð¤¹. -g=no ¤Ç¥á¡¼¥ë¤Ï\n"
+" ½Ð¤µ¤Ê¤¤.\n"
+"\n"
+" --digest[=<yes|no>]\n"
+" -g[=<yes|no>]\n"
+" ¿·¤·¤¯ÅÐÏ¿¤µ¤ì¤¿²ñ°÷¤ò¤Þ¤È¤áÆÉ¤ß²ñ°÷¤È¤¹¤ë¤«¤É¤¦¤«¤ò·è¤á¤ë.\n"
+" -d=yes ¤Þ¤¿¤Ï -d ¤Ç¤Þ¤È¤áÆÉ¤ß²ñ°÷¤È¤Ê¤ë. -d=no ¤Ç(¤¢¤ë¤¤¤Ï\n"
+" -d ¥ª¥×¥·¥ç¥ó¤òÉÕ¤±¤Ê¤¤¤È) Ä̾ï²ñ°÷¤È¤Ê¤ë.\n"
+"\n"
+" --notifyadmin[=<yes|no>]\n"
+" -a[=<yes|no>]\n"
+" Æþ²ñ¡¦Âà²ñ¤Î·ë²Ì¤ò¤Ò¤È¤Ä¤º¤Ä´ÉÍý¼Ô¤ËÄÌÃΤ¹¤ë¤«¤É¤¦¤«¤ò·è¤á¤ë.\n"
+" ¤â¤·, Âô»³¤Î¥¢¥É¥ì¥¹¤òÅÐÏ¿¤·¤Æ¤¤¤ë¤Ê¤é, ÄÌÃΤ·¤Ê¤¤¤Û¤¦¤¬¤è¤¤!\n"
+" -a=yes ¤Þ¤¿¤Ï -a ¤Ç´ÉÍý¼Ô¤ËÄÌÃΤ¹¤ë. -a=no ¤ÇÄÌÃΤ·¤Ê¤¤.\n"
+" -a ¥ª¥×¥·¥ç¥ó¤¬Ìµ¤¤¾ì¹ç, ¥ê¥¹¥È¤Î¥Ç¥Õ¥©¥ë¥È¤ò»ÈÍѤ¹¤ë.\n"
+"\n"
+" --file <¥Õ¥¡¥¤¥ë̾ | ->\n"
+" -f <¥Õ¥¡¥¤¥ë̾ | ->\n"
+" ¤³¤Î¥ª¥×¥·¥ç¥ó¤Ïɬ¿Ü. Ʊ´ü¤¹¤ëÁê¼ê¤Îʿʸ¥Õ¥¡¥¤¥ë¤ò»ØÄꤹ¤ë.\n"
+" ¥á¡¼¥ë¥¢¥É¥ì¥¹¤Ï 1¹Ô¤Ë 1¤Ä¤º¤Ä¤È¤¹¤ë. ¥Õ¥¡¥¤¥ë̾¤¬ `-' ¤Î\n"
+" ¾ì¹ç¤Ë¤Ïɸ½àÆþÎϤ¬»È¤ï¤ì¤ë.\n"
+"\n"
+" --help\n"
+" -h\n"
+" ¤³¤Î¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤¹¤ë.\n"
+"\n"
+" ¥ê¥¹¥È̾\n"
+" ɬ¿Ü. Ʊ´ü¤¹¤ë¥ê¥¹¥È¤ò»ØÄê.\n"
+
+#: bin/sync_members:115
+msgid "Bad choice: %(yesno)s"
+msgstr "ÁªÂò¤¬Ìµ¸ú: %(yesno)s"
+
+#: bin/sync_members:138
+msgid "Dry run mode"
+msgstr "´¥Áç¼Â¹Ô¥â¡¼¥É"
+
+#: bin/sync_members:159
+msgid "Only one -f switch allowed"
+msgstr "-f ¥¹¥¤¥Ã¥Á¤Ï°ì¤Ä¤À¤±"
+
+#: bin/sync_members:163
+msgid "No argument to -f given"
+msgstr "-f ¤Î°ú¿ô¤¬¤¢¤ê¤Þ¤»¤ó"
+
+#: bin/sync_members:172
+msgid "Illegal option: %(opt)s"
+msgstr "¥ª¥×¥·¥ç¥ó¤¬ÉÔÀµ: %(opt)s"
+
+#: bin/sync_members:178
+msgid "No listname given"
+msgstr "¥ê¥¹¥È̾¤¬¤¢¤ê¤Þ¤»¤ó"
+
+#: bin/sync_members:182
+msgid "Must have a listname and a filename"
+msgstr "¥ê¥¹¥È̾¤È¥Õ¥¡¥¤¥ë̾¤¬É¬ÍפǤ¹"
+
+#: bin/sync_members:191
+msgid "Cannot read address file: %(filename)s: %(msg)s"
+msgstr "¥¢¥É¥ì¥¹¥Õ¥¡¥¤¥ë %(filename)s ¤¬ÆÉ¤á¤Þ¤»¤ó: %(msg)s"
+
+#: bin/sync_members:203
+msgid "Ignore : %(addr)30s"
+msgstr "̵»ë: %(addr)30s"
+
+#: bin/sync_members:212
+msgid "Invalid : %(addr)30s"
+msgstr "ÉÔÀµ: %(addr)30s"
+
+#: bin/sync_members:215
+msgid "You must fix the preceding invalid addresses first."
+msgstr "¤Þ¤º, ¥¢¥É¥ì¥¹¤Î¸í¤ê¤òÄûÀµ¤·¤Æ¤¯¤À¤µ¤¤."
+
+#: bin/sync_members:259
+msgid "Added : %(s)s"
+msgstr "Äɲà : %(s)s"
+
+#: bin/sync_members:278
+msgid "Removed: %(s)s"
+msgstr "ºï½ü : %(s)s"
+
+#: bin/transcheck:18
+msgid ""
+"\n"
+"Check a given Mailman translation, making sure that variables and\n"
+"tags referenced in translation are the same variables and tags in\n"
+"the original templates and catalog.\n"
+"\n"
+"Usage:\n"
+"\n"
+"cd $MAILMAN_DIR\n"
+"%(program)s [-q] <lang>\n"
+"\n"
+"Where <lang> is your country code (e.g. 'it' for Italy) and -q is\n"
+"to ask for a brief summary.\n"
+msgstr ""
+"\n"
+"Mailman¤ÎËÝÌõ¤ò¥Á¥§¥Ã¥¯¤¹¤ë. ËÝÌõ¤ÎÃæ¤ÎÊÑ¿ô¤È¥¿¥°¤¬¸¶ËܤÎÊÑ¿ô¤È\n"
+"¥¿¥°¤Ë°ìÃפ¹¤ë¤«¤É¤¦¤«¤òÄ´¤Ù¤ë.\n"
+"\n"
+"»ÈÍÑË¡:\n"
+"\n"
+"cd $MAILMAN_DIR\n"
+"%(program)s [-q] <¸À¸ì>\n"
+"\n"
+"⤷, <¸À¸ì>¤Ï¸À¸ì¥³¡¼¥É(Î㤨¤Ð 'it' ¤Ï¥¤¥¿¥ê¥¢¸ì) -q ¤Ïû¤¤Í×Ìó\n"
+"½ÐÎϤòÍ׵᤹¤ë.\n"
+
+#: bin/transcheck:57
+msgid "check a translation comparing with the original string"
+msgstr "¸¶ËܤÈËÝÌõ¤òÈæ³Ó¥Á¥§¥Ã¥¯¤¹¤ë"
+
+#: bin/transcheck:64
+msgid "scan a string from the original file"
+msgstr "¸¶ËܤΥե¡¥¤¥ë¤«¤éʸ»úÎó¤ò¥¹¥­¥ã¥ó¤¹¤ë"
+
+#: bin/transcheck:72
+msgid "scan a translated string"
+msgstr "ËÝÌõʸ»úÎó¤ò¥¹¥­¥ã¥ó¤¹¤ë"
+
+#: bin/transcheck:83
+msgid "check for differences between checked in and checked out"
+msgstr "¥Á¥§¥Ã¥¯¥¤¥ó¤È¥Á¥§¥Ã¥¯¥¢¥¦¥È¤Î°ã¤¤¤òÄ´¤Ù¤ë"
+
+#: bin/transcheck:116
+msgid "parse a .po file extracting msgids and msgstrs"
+msgstr "msgid ¤È msgstr ¤ò .po ¥Õ¥¡¥¤¥ë¤«¤é²òÀϤ¹¤ë"
+
+#: bin/transcheck:135
+msgid ""
+"States table for the finite-states-machine parser:\n"
+" 0 idle\n"
+" 1 filename-or-comment\n"
+" 2 msgid\n"
+" 3 msgstr\n"
+" 4 end\n"
+" "
+msgstr ""
+"Í­¸Â¾õÂÖ²òÀϵ¡¤Î¾õÂÖɽ:\n"
+" 0 ¥¢¥¤¥É¥ë\n"
+" 1 ¥Õ¥¡¥¤¥ë̾¤Þ¤¿¤Ï¥³¥á¥ó¥È\n"
+" 2 msgid\n"
+" 3 msgstr\n"
+" 4 end\n"
+" "
+
+#: bin/transcheck:272
+msgid ""
+"check a translated template against the original one\n"
+" search also <MM-*> tags if html is not zero"
+msgstr "ËÝÌõ¥Æ¥ó¥×¥ì¡¼¥È¤ò¸¶ËܤÈÈæ³Ó. html ¤Î¾ì¹ç¤Ï <MM-*> ¥¿¥°¤â¸¡ºº"
+
+#: bin/transcheck:319
+msgid "scan the po file comparing msgids with msgstrs"
+msgstr "po ¥Õ¥¡¥¤¥ë¤ò¥¹¥­¥ã¥ó¤·¤Æ msgid ¤È msgstr ¤òÈæ³Ó"
+
+#: bin/unshunt:19
+msgid ""
+"Move a message from the shunt queue to the original queue.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [directory]\n"
+"\n"
+"Where:\n"
+"\n"
+" -h / --help\n"
+" Print help and exit.\n"
+"\n"
+"Optional `directory' specifies a directory to dequeue from other than\n"
+"qfiles/shunt.\n"
+msgstr ""
+"¥á¡¼¥ë¤ò shunt ¥­¥å¡¼¤«¤é¸µ¤Î¥­¥å¡¼¤Ë°Üư¤¹¤ë.\n"
+"\n"
+"»ÈÍÑË¡: %(PROGRAM)s [¥ª¥×¥·¥ç¥ó] [¥Ç¥£¥ì¥¯¥È¥ê]\n"
+"\n"
+"⤷:\n"
+"\n"
+" -h / --help\n"
+" ¥Ø¥ë¥×¤òɽ¼¨¤·¤Æ½ªÎ».\n"
+"\n"
+"¥Ç¥£¥ì¥¯¥È¥ê¤ò»ØÄꤹ¤ë¤È qfiles/shunt °Ê³°¤Î¥Ç¥£¥ì¥¯¥È¥ê¤«¤é°Üư¤¹¤ë.\n"
+
+#: bin/unshunt:81
+msgid ""
+"Cannot unshunt message %(filebase)s, skipping:\n"
+"%(e)s"
+msgstr ""
+"%(filebase)s ¥á¡¼¥ë¥Õ¥¡¥¤¥ë¤ò unshunt ¤Ç¤­¤Þ¤»¤ó. Èô¤Ð¤·¤Þ¤¹:\n"
+"%(e)s"
+
+#: bin/update:19
+msgid ""
+"Perform all necessary upgrades.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -f/--force\n"
+" Force running the upgrade procedures. Normally, if the version "
+"number\n"
+" of the installed Mailman matches the current version number (or a\n"
+" `downgrade' is detected), nothing will be done.\n"
+"\n"
+" -h/--help\n"
+" Print this text and exit.\n"
+"\n"
+"Use this script to help you update to the latest release of Mailman from\n"
+"some previous version. It knows about versions back to 1.0b4 (?).\n"
+msgstr ""
+"ɬÍפʥ¢¥Ã¥×¥°¥ì¡¼¥É¤ò¹Ô¤¦.\n"
+"\n"
+"»ÈÍÑË¡: %(PROGRAM)s [¥ª¥×¥·¥ç¥ó]\n"
+"\n"
+"¥ª¥×¥·¥ç¥ó:\n"
+" -f/--force\n"
+" ¶¯À©Åª¤Ë¥¢¥Ã¥×¥°¥ì¡¼¥É¤Î½èÍý¤ò¹Ô¤¦. Ä̾ï¤Ï, ¤â¤·¥¤¥ó¥¹¥È¡¼¥ë\n"
+" ¤µ¤ì¤¿ Mailman ¤Î¥Ð¡¼¥¸¥ç¥ó¤¬¸½ºß¤Î¤â¤Î¤ÈÊѤé¤Ê¤±¤ì¤Ð, (Ëô¤Ï\n"
+" ¥À¥¦¥ó¥°¥ì¡¼¥É¤¬¸¡ÃΤµ¤ì¤¿¤é) ²¿¤â¹Ô¤ï¤ì¤Ê¤¤.\n"
+"\n"
+" -h/--help\n"
+" ¤³¤Î¥Æ¥­¥¹¥È¤òɽ¼¨¤·¤Æ½ªÎ»¤¹¤ë.\n"
+"\n"
+"°ÊÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤«¤éºÇ¿·¤ÎMailman¥ê¥ê¡¼¥¹¤Ë¹¹¿·¤¹¤ë¤È¤­¤Ï, ¤³¤Î¥¹¥¯¥ê¥×¥È\n"
+"¤ò¼Â¹Ô¤¹¤ë. ¤³¤ì¤Ï 1.0b4 ¤Þ¤Ç¤Î¥Ð¡¼¥¸¥ç¥ó¤òÃΤäƤ¤¤ë.\n"
+
+#: bin/update:102
+msgid "Fixing language templates: %(listname)s"
+msgstr "¸À¸ì¥Æ¥ó¥×¥ì¡¼¥È¤ò½¤Àµ: %(listname)s"
+
+#: bin/update:191 bin/update:466
+msgid "WARNING: could not acquire lock for list: %(listname)s"
+msgstr "·Ù¹ð: ¥ê¥¹¥È¤Î¥í¥Ã¥¯¤ò³ÍÆÀ¤Ç¤­¤Þ¤»¤ó: %(listname)s"
+
+#: bin/update:210
+msgid "Resetting %(n)s BYBOUNCEs disabled addrs with no bounce info"
+msgstr "ÇÛÁ÷Ää»ß¤Î %(n)s BYBOUNCE ¤ò [¾ðÊó¤Ê¤·] ¤Ë¥ê¥»¥Ã¥È"
+
+#: bin/update:216
+msgid "Updating the held requests database."
+msgstr "ÊÝα¿½ÀÁ¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò¹¹¿·"
+
+#: bin/update:238
+msgid ""
+"For some reason, %(mbox_dir)s exists as a file. This won't work with\n"
+"b6, so I'm renaming it to %(mbox_dir)s.tmp and proceeding."
+msgstr ""
+"¤Ê¤ó¤é¤«¤ÎÍýͳ¤Ç %(mbox_dir)s ¤¬¥Õ¥¡¥¤¥ë¤È¤·¤ÆÂ¸ºß¤·¤Þ¤¹. b6 ¤Ç¤Ï¤³¤ì¤Ï\n"
+"»È¤¨¤Þ¤»¤ó¤Î¤Ç, %(mbox_dir)s.tmp ¤ËÊѹ¹¤·¤ÆÀè¤Ë¿Ê¤ß¤Þ¤¹."
+
+#: bin/update:250
+msgid ""
+"\n"
+"%(listname)s has both public and private mbox archives. Since this list\n"
+"currently uses private archiving, I'm installing the private mbox archive\n"
+"-- %(o_pri_mbox_file)s -- as the active archive, and renaming\n"
+" %(o_pub_mbox_file)s\n"
+"to\n"
+" %(o_pub_mbox_file)s.preb6\n"
+"\n"
+"You can integrate that into the archives if you want by using the 'arch'\n"
+"script.\n"
+msgstr ""
+"\n"
+"%(listname)s ¤Ë public ¤È private ¤Î mbox ¥Õ¥¡¥¤¥ë¤¬¤¢¤ê¤Þ¤¹. ¤³¤Î¥ê¥¹¥È\n"
+"¤Ï private ¤ÎÊݸ½ñ¸Ë¤ò»È¤¤¤Þ¤¹¤Î¤Ç, private ¤Î mbox ¥Õ¥¡¥¤¥ë --\n"
+" %(o_pri_mbox_file)s -- ¤òÍ­¸ú¤Ê¥Õ¥¡¥¤¥ë¤È°·¤¤¤Þ¤¹.\n"
+" %(o_pub_mbox_file)s\n"
+"¤Ï\n"
+" %(o_pub_mbox_file)s.pre6\n"
+"¤ËÊѹ¹¤·¤Þ¤¹.\n"
+"\n"
+"¤³¤Î¥Õ¥¡¥¤¥ë¤Ï `arch' ¥³¥Þ¥ó¥É¤ò»È¤Ã¤ÆÊݸ½ñ¸Ë¤ËÁȤ߹þ¤à¤³¤È¤¬¤Ç¤­¤Þ¤¹.\n"
+
+#: bin/update:265
+msgid ""
+"%s has both public and private mbox archives. Since this list\n"
+"currently uses public archiving, I'm installing the public mbox file\n"
+"archive file (%s) as the active one, and renaming\n"
+" %s\n"
+" to\n"
+" %s.preb6\n"
+"\n"
+"You can integrate that into the archives if you want by using the 'arch'\n"
+"script.\n"
+msgstr ""
+"%s ¤Ë public ¤È private ¤Î mbox ¥Õ¥¡¥¤¥ë¤¬¤¢¤ê¤Þ¤¹. ¤³¤Î¥ê¥¹¥È\n"
+"¤Ï public ¤ÎÊݸ½ñ¸Ë¤ò»È¤¤¤Þ¤¹¤Î¤Ç, public ¤Î mbox ¥Õ¥¡¥¤¥ë --\n"
+" %s -- ¤òÍ­¸ú¤Ê¥Õ¥¡¥¤¥ë¤È°·¤¤¤Þ¤¹.\n"
+" %s\n"
+"¤Ï\n"
+" %s.pre6\n"
+"¤ËÊѹ¹¤·¤Þ¤¹.\n"
+"\n"
+"¤³¤Î¥Õ¥¡¥¤¥ë¤Ï `arch' ¥³¥Þ¥ó¥É¤ò»È¤Ã¤ÆÊݸ½ñ¸Ë¤ËÁȤ߹þ¤à¤³¤È¤¬¤Ç¤­¤Þ¤¹.\n"
+
+#: bin/update:282
+msgid "- updating old private mbox file"
+msgstr "- ¸Å¤¤ private mbox ¥Õ¥¡¥¤¥ë¤ò¹¹¿·Ãæ"
+
+#: bin/update:290
+msgid ""
+" unknown file in the way, moving\n"
+" %(o_pri_mbox_file)s\n"
+" to\n"
+" %(newname)s"
+msgstr ""
+" ̤ÃΤΥե¡¥¤¥ë¤¬¤¢¤ê¤Þ¤¹.\n"
+" %(o_pri_mbox_file)s\n"
+" ¤Ï,\n"
+" %(newname)s\n"
+" ¤Ë°Üư¤·¤Þ¤¹."
+
+#: bin/update:297 bin/update:320
+msgid ""
+" looks like you have a really recent CVS installation...\n"
+" you're either one brave soul, or you already ran me"
+msgstr ""
+" ËÜÅö¤ËºÇ¿·¤Î CVS ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤ë¤è¤¦¤Ç¤¹...\n"
+" ͦ´º¤Êº²¤ò¤ª»ý¤Á¤«, »ä¤ò¾è¤ê±Û¤¨¤Æ¤ë"
+
+#: bin/update:306
+msgid "- updating old public mbox file"
+msgstr "- ¸Å¤¤ public mbox ¥Õ¥¡¥¤¥ë¤ò¹¹¿·Ãæ"
+
+#: bin/update:314
+msgid ""
+" unknown file in the way, moving\n"
+" %(o_pub_mbox_file)s\n"
+" to\n"
+" %(newname)s"
+msgstr ""
+" ̤ÃΤΥե¡¥¤¥ë¤¬¤¢¤ê¤Þ¤¹.\n"
+" %(o_pub_mbox_file)s\n"
+" ¤Ï,\n"
+" %(newname)s\n"
+" ¤Ë°Üư¤·¤Þ¤¹."
+
+#: bin/update:345
+msgid "- This list looks like it might have <= b4 list templates around"
+msgstr "- ¤³¤Î¥ê¥¹¥È¤Ë¤Ï b4 °ÊÁ°¤Î¥Æ¥ó¥×¥ì¡¼¥È¤¬»Ä¤Ã¤Æ¤ë¤ß¤¿¤¤"
+
+#: bin/update:352
+msgid "- moved %(o_tmpl)s to %(n_tmpl)s"
+msgstr "- %(o_tmpl)s ¤ò %(n_tmpl)s ¤Ë°Üư"
+
+#: bin/update:354
+msgid "- both %(o_tmpl)s and %(n_tmpl)s exist, leaving untouched"
+msgstr "- %(o_tmpl)s ¤È %(n_tmpl)s ¤¬¤¢¤ê¤Þ¤¹. ¤½¤Î¤Þ¤Þ¤Ë¤·¤Þ¤¹"
+
+#: bin/update:384
+msgid "removing directory %(src)s and everything underneath"
+msgstr "¥Ç¥£¥ì¥¯¥È¥ê %(src)s ¤È¤½¤Î²¼¤òºï½ü¤·¤Þ¤¹"
+
+#: bin/update:387
+msgid "removing %(src)s"
+msgstr "%(src)s ¤òºï½ü"
+
+#: bin/update:391
+msgid "Warning: couldn't remove %(src)s -- %(rest)s"
+msgstr "·Ù¹ð: %(src)s ¤òºï½ü¤Ç¤­¤Þ¤»¤ó -- %(rest)s"
+
+#: bin/update:396
+msgid "couldn't remove old file %(pyc)s -- %(rest)s"
+msgstr "¸Å¤¤¥Õ¥¡¥¤¥ë %(pyc)s ¤òºï½ü¤Ç¤­¤Þ¤»¤ó -- %(rest)s"
+
+#: bin/update:400
+msgid "updating old qfiles"
+msgstr "¸Å¤¤ qfile ¤ò¹¹¿·"
+
+#: bin/update:422
+msgid "getting rid of old source files"
+msgstr "¸Å¤¤¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤òºï½üÃæ"
+
+#: bin/update:432
+msgid "no lists == nothing to do, exiting"
+msgstr "¥ê¥¹¥È¤Ê¤· == ²¿¤â¤¹¤ë¤³¤È¤¬Ìµ¤¤...½ªÎ»"
+
+#: bin/update:439
+msgid ""
+"fixing all the perms on your old html archives to work with b6\n"
+"If your archives are big, this could take a minute or two..."
+msgstr ""
+"¸Å¤¤ HTML Êݸ½ñ¸Ë¤ò b6 ¤Çư¤¯¤è¤¦¤Ë¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤òÊѹ¹Ãæ\n"
+"Êݸ¸Ë¤¬Â礭¤¤¤È, ¤³¤ì¤Ï 1,2 ʬ¤«¤«¤ê¤Þ¤¹..."
+
+#: bin/update:444
+msgid "done"
+msgstr "½ªÎ»"
+
+#: bin/update:446
+msgid "Updating mailing list: %(listname)s"
+msgstr "%(listname)s ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ò¹¹¿·Ãæ"
+
+#: bin/update:449
+msgid "Updating Usenet watermarks"
+msgstr "¥Í¥Ã¥È¥Ë¥å¡¼¥¹¤Î¿å°Ìɼ¤ò¹¹¿·"
+
+#: bin/update:454
+msgid "- nothing to update here"
+msgstr "- ¹¹¿·¤¹¤ë¤â¤Î¤Ï¤¢¤ê¤Þ¤»¤ó"
+
+#: bin/update:477
+msgid "- usenet watermarks updated and gate_watermarks removed"
+msgstr "- ¥Í¥Ã¥È¥Ë¥å¡¼¥¹¤Î¿å°Ìɼ¹¹¿·¤ò´°Î». gate_watermark¤òºï½ü"
+
+#: bin/update:487
+msgid "Updating old pending_subscriptions.db database"
+msgstr "¸Å¤¤ pending_subscriptions.db ¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò¹¹¿·"
+
+#: bin/update:504
+msgid ""
+"\n"
+"\n"
+"NOTE NOTE NOTE NOTE NOTE\n"
+"\n"
+" You are upgrading an existing Mailman installation, but I can't tell "
+"what\n"
+" version you were previously running.\n"
+"\n"
+" If you are upgrading from Mailman 1.0b9 or earlier you will need to\n"
+" manually update your mailing lists. For each mailing list you need to\n"
+" copy the file templates/options.html lists/<listname>/options.html.\n"
+"\n"
+" However, if you have edited this file via the Web interface, you will "
+"have\n"
+" to merge your changes into this file, otherwise you will lose your\n"
+" changes.\n"
+"\n"
+"NOTE NOTE NOTE NOTE NOTE\n"
+"\n"
+msgstr ""
+"\n"
+"\n"
+"Ãí°Õ Ãí°Õ Ãí°Õ Ãí°Õ Ãí°Õ\n"
+"\n"
+" ¤¢¤Ê¤¿¤Ï´û¸¤Î Mailman ¤ò¥¢¥Ã¥×¥°¥ì¡¼¥É¤·¤è¤¦¤È¤·¤Æ¤¤¤Þ¤¹¤¬,\n"
+" »ä¤Ë¤Ï°ÊÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤¬¤ï¤«¤ê¤Þ¤»¤ó.\n"
+"\n"
+" ¤â¤·, ¤¢¤Ê¤¿¤¬ Mailman 1.0b9 ¤è¤ê¤â°ÊÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤«¤é¥¢¥Ã¥×\n"
+" ¥°¥ì¡¼¥É¤·¤Æ¤¤¤ë¤Ê¤é, ¼ê¤Ç¥ê¥¹¥È¤Î¹¹¿·¤ò¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹.\n"
+" ¤½¤ì¤¾¤ì¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ë¤Ä¤¤¤Æ, template/options.html ¤«¤é\n"
+" lists/<¥ê¥¹¥È̾>/options.html ¤Ë¥³¥Ô¡¼¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹.\n"
+"\n"
+" ¤·¤«¤·, ¤â¤·¤³¤Î¥Õ¥¡¥¤¥ë¤ò¥¦¥§¥Ö¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤«¤éÊÔ½¸¤·¤¿\n"
+" ¤Î¤Ç¤¢¤ì¤Ð, ¤½¤ÎÊѹ¹¤ò¤³¤Î¥Õ¥¡¥¤¥ë¤ËŬÍѤ¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹.\n"
+" ¤â¤·¤½¤¦¤·¤Ê¤¤¤È, Êѹ¹¤Ï¼º¤ï¤ì¤ë¤Ç¤·¤ç¤¦.\n"
+"\n"
+"Ãí°Õ Ãí°Õ Ãí°Õ Ãí°Õ Ãí°Õ\n"
+"\n"
+
+#: bin/update:561
+msgid "No updates are necessary."
+msgstr "¹¹¿·¤ÎɬÍפϤ¢¤ê¤Þ¤»¤ó."
+
+#: bin/update:564
+msgid ""
+"Downgrade detected, from version %(hexlversion)s to version %(hextversion)s\n"
+"This is probably not safe.\n"
+"Exiting."
+msgstr ""
+"%(hexlversion)s ¤«¤é %(hextversion)s ¤Ø¤Î¥À¥¦¥ó¥°¥ì¡¼¥É¤ò¸¡½Ð¤·¤Þ¤·¤¿.\n"
+"¤³¤ì¤Ï¿ʬ°ÂÁ´¤Ç¤Ï¤Ê¤¤¤Ç¤·¤ç¤¦.\n"
+"½ªÎ»¤·¤Þ¤¹."
+
+#: bin/update:569
+msgid "Upgrading from version %(hexlversion)s to %(hextversion)s"
+msgstr "%(hexlversion)s ¤«¤é %(hextversion)s ¤Ø¥¢¥Ã¥×¥°¥ì¡¼¥É"
+
+#: bin/update:578
+msgid ""
+"\n"
+"ERROR:\n"
+"\n"
+"The locks for some lists could not be acquired. This means that either\n"
+"Mailman was still active when you upgraded, or there were stale locks in "
+"the\n"
+"%(lockdir)s directory.\n"
+"\n"
+"You must put Mailman into a quiescent state and remove all stale locks, "
+"then\n"
+"re-run \"make update\" manually. See the INSTALL and UPGRADE files for "
+"details.\n"
+msgstr ""
+"\n"
+"¥¨¥é¡¼:\n"
+"\n"
+"¤¤¤¯¤Ä¤«¤Î¥ê¥¹¥È¤Î¥í¥Ã¥¯¤¬³ÍÆÀ¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿. ¤³¤ì¤Ï, ¥¢¥Ã¥×¥°¥ì¡¼¥ÉÃæ¤Ë\n"
+"Mailman ¤¬³èÆ°Ãæ¤Ç¤¢¤Ã¤¿¤«, %(lockdir)s ¥Ç¥£¥ì¥¯¥È¥ê¤Ë»È¤ï¤ì¤Ê¤¯¤Ê¤Ã¤¿\n"
+"¥í¥Ã¥¯¥Õ¥¡¥¤¥ë¤¬»Ä¤Ã¤Æ¤¤¤¿¤«¤Î¤É¤Á¤é¤«¤Ç¤¹.\n"
+"\n"
+"Mailman ¤òÄä»ß¤·, Á´¤Æ¤Î¸Å¤¤¥í¥Ã¥¯¤òºï½ü¤·, ¤½¤ì¤«¤é \"make update\" ¤ò\n"
+"¼ê¤Ç¼Â¹Ô¤·¤Æ¤¯¤À¤µ¤¤. INSTALL ¤È UPGRADE ¤Î¥Õ¥¡¥¤¥ë¤Ë¾Ü¤·¤¯½ñ¤«¤ì¤Æ¤Þ¤¹\n"
+"¤Î¤Ç, ÆÉ¤ó¤Ç¤¯¤À¤µ¤¤.\n"
+
+#: bin/version:19
+msgid "Print the Mailman version.\n"
+msgstr "Mailman ¥Ð¡¼¥¸¥ç¥ó¤ò½ÐÎϤ¹¤ë.\n"
+
+#: bin/version:26
+msgid "Using Mailman version:"
+msgstr "»ÈÍÑÃæ¤Î Mailman ¥Ð¡¼¥¸¥ç¥ó¤Ï:"
+
+#: bin/withlist:19
+msgid ""
+"General framework for interacting with a mailing list object.\n"
+"\n"
+"There are two ways to use this script: interactively or programmatically.\n"
+"Using it interactively allows you to play with, examine and modify a "
+"MailList\n"
+"object from Python's interactive interpreter. When running interactively, "
+"a\n"
+"MailList object called `m' will be available in the global namespace. It "
+"also\n"
+"loads the class MailList into the global namespace.\n"
+"\n"
+"Programmatically, you can write a function to operate on a MailList object,\n"
+"and this script will take care of the housekeeping (see below for "
+"examples).\n"
+"In that case, the general usage syntax is:\n"
+"\n"
+"%% bin/withlist [options] listname [args ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" -l / --lock\n"
+" Lock the list when opening. Normally the list is opened unlocked\n"
+" (e.g. for read-only operations). You can always lock the file "
+"after\n"
+" the fact by typing `m.Lock()'\n"
+"\n"
+" Note that if you use this option, you should explicitly call "
+"m.Save()\n"
+" before exiting, since the interpreter's clean up procedure will not\n"
+" automatically save changes to the MailList object (but it will "
+"unlock\n"
+" the list).\n"
+"\n"
+" -i / --interactive\n"
+" Leaves you at an interactive prompt after all other processing is\n"
+" complete. This is the default unless the -r option is given.\n"
+"\n"
+" --run [module.]callable\n"
+" -r [module.]callable\n"
+" This can be used to run a script with the opened MailList object.\n"
+" This works by attempting to import `module' (which must already be\n"
+" accessible on your sys.path), and then calling `callable' from the\n"
+" module. callable can be a class or function; it is called with the\n"
+" MailList object as the first argument. If additional args are "
+"given\n"
+" on the command line, they are passed as subsequent positional args "
+"to\n"
+" the callable.\n"
+"\n"
+" Note that `module.' is optional; if it is omitted then a module "
+"with\n"
+" the name `callable' will be imported.\n"
+"\n"
+" The global variable `r' will be set to the results of this call.\n"
+"\n"
+" --all / -a\n"
+" This option only works with the -r option. Use this if you want to\n"
+" execute the script on all mailing lists. When you use -a you "
+"should\n"
+" not include a listname argument on the command line. The variable "
+"`r'\n"
+" will be a list of all the results.\n"
+"\n"
+" --quiet / -q\n"
+" Suppress all status messages.\n"
+"\n"
+" --help / -h\n"
+" Print this message and exit\n"
+"\n"
+"\n"
+"Here's an example of how to use the -r option. Say you have a file in the\n"
+"Mailman installation directory called `listaddr.py', with the following\n"
+"two functions:\n"
+"\n"
+"def listaddr(mlist):\n"
+" print mlist.GetListEmail()\n"
+"\n"
+"def requestaddr(mlist):\n"
+" print mlist.GetRequestEmail()\n"
+"\n"
+"Now, from the command line you can print the list's posting address by "
+"running\n"
+"the following from the command line:\n"
+"\n"
+"%% bin/withlist -r listaddr mylist\n"
+"Loading list: mylist (unlocked)\n"
+"Importing listaddr ...\n"
+"Running listaddr.listaddr() ...\n"
+"mylist@myhost.com\n"
+"\n"
+"And you can print the list's request address by running:\n"
+"\n"
+"%% bin/withlist -r listaddr.requestaddr mylist\n"
+"Loading list: mylist (unlocked)\n"
+"Importing listaddr ...\n"
+"Running listaddr.requestaddr() ...\n"
+"mylist-request@myhost.com\n"
+"\n"
+"As another example, say you wanted to change the password for a particular\n"
+"user on a particular list. You could put the following function in a file\n"
+"called `changepw.py':\n"
+"\n"
+"from Mailman.Errors import NotAMember\n"
+"\n"
+"def changepw(mlist, addr, newpasswd):\n"
+" try:\n"
+" mlist.setMemberPassword(addr, newpasswd)\n"
+" mlist.Save()\n"
+" except NotAMember:\n"
+" print 'No address matched:', addr\n"
+"\n"
+"and run this from the command line:\n"
+"%% bin/withlist -l -r changepw mylist somebody@somewhere.org foobar\n"
+msgstr ""
+"¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¥ª¥Ö¥¸¥§¥¯¥È¤È¤ä¤ê¤È¤ê¤¹¤ë¤¿¤á¤Ë°ìÈÌŪÏÈÁȤß.\n"
+"\n"
+"¤³¤Î¥¹¥¯¥ê¥×¥È¤Î»È¤¤Êý¤Ï2Ä̤ꤢ¤ë: ¥¤¥ó¥¿¥é¥¯¥Æ¥£¥Ö¤È¥×¥í¥°¥é¥àŪ¤Ç¤¢¤ë.\n"
+"¥¤¥ó¥¿¥é¥¯¥Æ¥£¥Ö¤Ë»È¤¦¤È, Pyhton ¤Î¥¤¥ó¥¿¥é¥¯¥Æ¥£¥Ö¥¤¥ó¥¿¥×¥ê¥¿¤òÍѤ¤¤Æ\n"
+"MailList ¥ª¥Ö¥¸¥§¥¯¥È¤ò¸¡ºº¤·¤¿¤ê, Êѹ¹¤·¤¿¤ê, Í·¤Ö¤³¤È¤¬¤Ç¤­¤ë.\n"
+"¥¤¥ó¥¿¥é¥¯¥Æ¥£¥Ö¤Ë¼Â¹Ô¤¹¤ë¤È¤­¤Ë¤Ï, ¥°¥í¡¼¥Ð¥ë¤Î̾Á°¶õ´Ö¤Ë `m' ¤È\n"
+"¤¤¤¦ MailList ¥ª¥Ö¥¸¥§¥¯¥È¤¬Â¸ºß¤¹¤ë. ¤Þ¤¿, MailList ¥¯¥é¥¹¤ò¥°¥í¡¼¥Ð¥ë\n"
+"̾Á°¶õ´Ö¤ËÆÉ¤ß¹þ¤à.\n"
+"\n"
+"¥×¥í¥°¥é¥àŪ¤Ë¤Ï MailList ¥ª¥Ö¥¸¥§¥¯¥È¤òÁàºî¤¹¤ë¤è¤¦¤Ê´Ø¿ô¤ò½ñ¤¯¤³¤È¤¬\n"
+"²Äǽ¤Ç, ¤³¤Î¥¹¥¯¥ê¥×¥È¤Ï²È»ö¤ÎÀÚ¤êÀ¹¤ê¤ÎÀ¤Ïäò¤¹¤ë(°Ê²¼¤ÎÎã¤ò»²¾È).\n"
+"¤³¤Î¾ì¹ç¤Î°ìÈÌŪ¹½Ê¸¤Ï:\n"
+"\n"
+"%% bin/withlist [¥ª¥×¥·¥ç¥ó] ¥ê¥¹¥È̾ [°ú¿ô ...]\n"
+"\n"
+"¥ª¥×¥·¥ç¥ó:\n"
+" -l / --lock\n"
+" ¥ê¥¹¥È¤ò³«¤¯¤È¤­¤Ë¥í¥Ã¥¯¤¹¤ë. Ä̾ï, ¥ê¥¹¥È¤Ï¥í¥Ã¥¯¤»¤º¤Ë³«¤¯\n"
+" (¤Ä¤Þ¤ê, ÆÉ¤ß¹þ¤ßÀìÍѤÎÁàºî). ¸å¤«¤é `m.Lock()' ¤òÆþÎϤ¹¤ë\n"
+" ¤³¤È¤Ç¥í¥Ã¥¯¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë.\n"
+"\n"
+" ¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤È¤­, ɬ¤º m.Save() ¤ò½ªÎ»Á°¤Ë¸Æ¤Ó½Ð¤¹¤³¤È\n"
+" ¤ËÃí°Õ¤·¤Ê¤µ¤¤. ¤Ê¤¼¤Ê¤é, ¥¤¥ó¥¿¥×¥ê¥¿¤Î¥¯¥ê¡¼¥ó¥¢¥Ã¥×½èÍý¤Ç¤Ï\n"
+" MailList ¥ª¥Ö¥¸¥§¥¯¥È¤ÎÊѹ¹¤ò¼«Æ°Åª¤ËÊݸ¤·¤Ê¤¤¤«¤é¤Ç¤¢¤ë.\n"
+" (¼«Æ°Åª¤Ë¥í¥Ã¥¯²ò½ü¤Ï¹Ô¤¦)\n"
+"\n"
+" -i / --interactive\n"
+" ¾¤Î½èÍý¤¬½ªÎ»¤·¤¿¤é¥¤¥ó¥¿¥é¥¯¥Æ¥£¥Ö¥â¡¼¥É¤Î¥×¥í¥ó¥×¥È¤ËÌá¤ë\n"
+" ¤³¤ì¤Ï -r ¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¤È¤­¤Î¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë.\n"
+"\n"
+" --run [module.]callable\n"
+" -r [module.]callable\n"
+" ³«¤¤¤¿ MailList ¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤Ä¤¤¤Æ¥¹¥¯¥ê¥×¥È¤ò¼Â¹Ô¤¹¤ë¤È¤­¤Ë\n"
+" »È¤¦¤³¤È¤¬¤Ç¤­¤ë. ¤³¤ì¤Ï `module' (¤³¤ì¤Ï sys.path ¤Ç¥¢¥¯¥»¥¹\n"
+" ²Äǽ¤Ç¤¢¤ë¤³¤È) ¤ò import ¤·, `callable' ¤ò¸Æ¤Ó½Ð¤¹. callable\n"
+" ¤Ï¥¯¥é¥¹¤Þ¤¿¤Ï´Ø¿ô¤Ç¤¢¤ë. ¤Þ¤¿, MailList ¥ª¥Ö¥¸¥§¥¯¥È¤òÂè1°ú¿ô\n"
+" ¤È¤·¤Æ¸Æ¤Ó½Ð¤¹. ¤â¤·, ¥³¥Þ¥ó¥É¹Ô¤ËÄɲäΰú¿ô¤¬¤¢¤ì¤Ð callable\n"
+" ¤Î°ú¤­Â³¤¯°ú¿ô¤È¤·¤ÆÅϤµ¤ì¤ë.\n"
+"\n"
+" module ¤Ï¥ª¥×¥·¥ç¥ó¤Ç, ¤â¤·¾Êά¤µ¤ì¤ë¤È callable ¤Î̾Á°¤ò»ý¤Ä\n"
+" ¥â¥¸¥å¡¼¥ë¤¬ import ¤µ¤ì¤ë.\n"
+"\n"
+" ¥°¥í¡¼¥Ð¥ëÊÑ¿ô¤Î `r' ¤Ë¸Æ¤Ó½Ð¤·¤Î·ë²Ì¤¬Æþ¤ë.\n"
+"\n"
+" --all / -a\n"
+" ¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï -r ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤¿¤È¤­¤ËÍ­¸ú¤Ç¤¢¤ë. ¤â¤·\n"
+" Á´¤Æ¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ë¥¹¥¯¥ê¥×¥È¤òŬÍѤ·¤¿¤¤¤È¤­¤Ë¤Ï, ¤³¤ì¤ò\n"
+" »È¤¦. -a ¤ò»ØÄꤷ¤¿¤È¤­¤Ë¤Ï, "
+"¥³¥Þ¥ó¥É¹Ô¤Ë¥ê¥¹¥È̾¤òÆþ¤ì¤Æ¤Ï¤¤¤±¤Ê¤¤.\n"
+" ÊÑ¿ô `r' ¤ÏÁ´¤Æ¤Î·ë²Ì¤Î¥ê¥¹¥È¤È¤Ê¤ë.\n"
+"\n"
+" --quiet / -q\n"
+" ¾õÂÖ¥á¥Ã¥»¡¼¥¸¤òÁ´¤ÆÍÞÀ©¤¹¤ë.\n"
+"\n"
+" --help / -h\n"
+" ¤³¤Î¥á¥Ã¥»¡¼¥¸¤ò½ÐÎϤ·¤Æ½ªÎ»¤¹¤ë\n"
+"\n"
+"\n"
+"-r ¥ª¥×¥·¥ç¥ó¤Î»È¤¤Êý¤ÎÎã¤ò¤¢¤²¤ë. Î㤨¤Ð, Mailman ¤Î¥¤¥ó¥¹¥È¡¼¥ë\n"
+"¥Ç¥£¥ì¥¯¥È¥ê¤Ë, `listaddr.py' ¤È¤¤¤¦Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¤¬¤¢¤ê, °Ê²¼¤Î2¤Ä¤Î\n"
+"´Ø¿ô¤¬Æþ¤Ã¤Æ¤¤¤ë¤È¤¹¤ë.\n"
+"\n"
+"def listaddr(mlist):\n"
+" print mlist.GetListEmail()\n"
+"\n"
+"def requestaddr(mlist):\n"
+" print mlist.GetRequestEmail()\n"
+"\n"
+"¤¹¤ë¤È, ¥³¥Þ¥ó¥É¥é¥¤¥ó¤«¤é¼¡¤Î¤è¤¦¤Ë¤·¤Æ, ¥ê¥¹¥È¤ÎÅê¹Æ¥¢¥É¥ì¥¹¤òɽ¼¨¤¹¤ë\n"
+"¤³¤È¤¬¤Ç¤­¤ë:\n"
+"\n"
+"%% bin/withlist -r listaddr mylist\n"
+"mylist ¤Î¥ê¥¹¥È¤òÆÉ¤ß¹þ¤ßÃæ (¥í¥Ã¥¯²ò½ü)\n"
+"listaddr ¤ò import Ãæ...\n"
+"listaddr.listaddr() ¤ò¼Â¹ÔÃæ ...\n"
+"mylist@myhost.com\n"
+"\n"
+"¤Þ¤¿, ¥ê¥¹¥È¤Î¿½ÀÁ¥¢¥É¥ì¥¹¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤·¤ÆÉ½¼¨¤Ç¤­¤ë:\n"
+"\n"
+"%% bin/withlist -r listaddr.requestaddr mylist\n"
+"mylist ¤Î¥ê¥¹¥È¤òÆÉ¤ß¹þ¤ßÃæ (¥í¥Ã¥¯²ò½ü)\n"
+"listaddr ¤ò import Ãæ...\n"
+"listaddr.requestaddr() ¤ò¼Â¹ÔÃæ ...\n"
+"mylist-request@myhost.com\n"
+"\n"
+"¤â¤¦°ì¤Ä¤ÎÎã¤È¤·¤Æ, ¤¢¤ë¥ê¥¹¥È¤Î¤¢¤ë²ñ°÷¤Î¥Ñ¥¹¥ï¡¼¥É¤òÊѹ¹¤·¤¿¤¤¤È¤·¤è¤¦.\n"
+"¼¡¤Î¤è¤¦¤Ê´Ø¿ô¤ò `changepw.py' ¤ËÆþ¤ì¤Æ¤ª¤¯:\n"
+"\n"
+"from Mailman.Errors import NotAMember\n"
+"\n"
+"def changepw(mlist, addr, newpasswd):\n"
+" try:\n"
+" mlist.setMemberPassword(addr, newpasswd)\n"
+" mlist.Save()\n"
+" except NotAMember:\n"
+" print '¥¢¥É¥ì¥¹¤¬¤¢¤ê¤Þ¤»¤ó:', addr\n"
+"\n"
+"¤½¤·¤Æ, ¥³¥Þ¥ó¥É¥é¥¤¥ó¤«¤é¼¡¤Î¤è¤¦¤Ë¼Â¹Ô¤¹¤ë:\n"
+"%% bin/withlist -l -r changepw mylist somebody@somewhere.org foobar\n"
+
+#: bin/withlist:151
+msgid ""
+"Unlock a locked list, but do not implicitly Save() it.\n"
+"\n"
+" This does not get run if the interpreter exits because of a signal, or "
+"if\n"
+" os._exit() is called. It will get called if an exception occurs "
+"though.\n"
+" "
+msgstr ""
+"¥í¥Ã¥¯¤·¤¿¥ê¥¹¥È¤ò¥í¥Ã¥¯²ò½ü¤¹¤ë. ¤·¤«¤·, °ÅÌۤΤ¦¤Á¤Ë Save() ¤Ï¤·¤Ê¤¤.\n"
+"\n"
+" ¥¤¥ó¥¿¥×¥ê¥¿¤¬¥·¥°¥Ê¥ë¤Ç½ªÎ»¤·¤¿¤ê, os._exit() ¤¬¸Æ¤Ð¤ì¤¿¤È¤­¤Ë¤Ï,\n"
+" ¼Â¹Ô¤µ¤ì¤Ê¤¤. Îã³°¤¬À¸¤¸¤¿¾ì¹ç¤Ë¤Ï¸Æ¤Ð¤ì¤ë.\n"
+" "
+
+#: bin/withlist:162
+msgid "Unlocking (but not saving) list: %(listname)s"
+msgstr "¥ê¥¹¥È¤ò¥í¥Ã¥¯²ò½ü (Êݸ¤Ï¤·¤Æ¤Þ¤»¤ó): %(listname)s"
+
+#: bin/withlist:166
+msgid "Finalizing"
+msgstr "ºÇ½ª½èÍýÃæ"
+
+#: bin/withlist:175
+msgid "Loading list %(listname)s"
+msgstr "%(listname)s ¤Î¥ê¥¹¥È¤òÆÉ¤ß¹þÃæ"
+
+#: bin/withlist:177
+msgid "(locked)"
+msgstr "(¥í¥Ã¥¯´°Î»)"
+
+#: bin/withlist:179
+msgid "(unlocked)"
+msgstr "(¥í¥Ã¥¯²ò½ü)"
+
+#: bin/withlist:184
+msgid "Unknown list: %(listname)s"
+msgstr "¥ê¥¹¥È̾¤¬ÉÔÌÀ: %(listname)s"
+
+#: bin/withlist:223
+msgid "No list name supplied."
+msgstr "¥ê¥¹¥È¤Î̾Á°¤¬É¬ÍפǤ¹."
+
+#: bin/withlist:226
+msgid "--all requires --run"
+msgstr "--all ¤Ë¤Ï --run ¤¬É¬ÍפǤ¹."
+
+#: bin/withlist:246
+msgid "Importing %(module)s..."
+msgstr "%(module)s ¤ò import Ãæ..."
+
+#: bin/withlist:249
+msgid "Running %(module)s.%(callable)s()..."
+msgstr "%(module)s.%(callable)s() ¤ò¼Â¹ÔÃæ..."
+
+#: bin/withlist:270
+msgid "The variable `m' is the %(listname)s MailList instance"
+msgstr "ÊÑ¿ô `m' ¤¬ %(listname)s ¤Î MailList ¥¤¥ó¥¹¥¿¥ó¥¹¤Ç¤¹"
+
+#: cron/bumpdigests:19
+msgid ""
+"Increment the digest volume number and reset the digest number to one.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" --help/-h\n"
+" Print this message and exit.\n"
+"\n"
+"The lists named on the command line are bumped. If no list names are "
+"given,\n"
+"all lists are bumped.\n"
+msgstr ""
+"¤Þ¤È¤áÆÉ¤ß¤Î´¬¿ô¤òÁý²Ã¤·, ¹æ¿ô¤ò1¤Ë¥ê¥»¥Ã¥È¤¹¤ë\n"
+"\n"
+"»ÈÍÑË¡: %(PROGRAM)s [¥ª¥×¥·¥ç¥ó] [¥ê¥¹¥È̾ ...]\n"
+"\n"
+"¥ª¥×¥·¥ç¥ó:\n"
+"\n"
+" --help/-h\n"
+" ¤³¤Î¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¤Æ½ªÎ».\n"
+"\n"
+"¥³¥Þ¥ó¥É¹Ô¤Î¥ê¥¹¥È¤Ë¤Ä¤¤¤Æ bump ¤¹¤ë. ¥ê¥¹¥È̾¤¬Ìµ¤¤¾ì¹ç¤Ë¤Ï\n"
+"Á´¤Æ¤Î¥ê¥¹¥È¤ò bump ¤¹¤ë.\n"
+
+#: cron/checkdbs:19
+msgid ""
+"Invoked by cron, this checks for pending moderation requests and mails the\n"
+"list moderators if necessary.\n"
+msgstr ""
+"cron ¤Ç¼Â¹Ô¤µ¤ì, ÊÝÎ±Ãæ¤Î»Ê²ñÍ×µá¤ò¥Á¥§¥Ã¥¯¤·, ɬÍפʤé¥ê¥¹¥È»Ê²ñ¼Ô¤Ë\n"
+"¥á¡¼¥ë¤ÇÄÌÃΤ¹¤ë.\n"
+
+#: cron/checkdbs:81
+msgid "%(count)d %(realname)s moderator request(s) waiting"
+msgstr "%(realname)s ¤Î»Ê²ñÍ×ÀÁ¤¬ %(count)d ·ï¤¢¤ê¤Þ¤¹"
+
+#: cron/checkdbs:100
+msgid "Pending subscriptions:"
+msgstr "ÊÝÎ±Ãæ¤Î²ñ°÷ÅÐÏ¿:"
+
+#: cron/checkdbs:109
+msgid ""
+"\n"
+"Pending posts:"
+msgstr ""
+"\n"
+"ÊÝαÅê¹Æ:"
+
+#: cron/checkdbs:114
+msgid ""
+"From: %(sender)s on %(date)s\n"
+"Subject: %(subject)s\n"
+"Cause: %(reason)s"
+msgstr ""
+"ȯ¿®¼Ô: %(sender)s\n"
+"ÆüÉÕ: %(date)s\n"
+"·ï̾: %(subject)s\n"
+"¸¶°ø: %(reason)s"
+
+#: cron/disabled:19
+msgid ""
+"Process disabled members, recommended once per day.\n"
+"\n"
+"This script cruises through every mailing list looking for members whose\n"
+"delivery is disabled. If they have been disabled due to bounces, they will\n"
+"receive another notification, or they may be removed if they've received "
+"the\n"
+"maximum number of notifications.\n"
+"\n"
+"Use the --byadmin, --byuser, and --unknown flags to also send notifications "
+"to\n"
+"members whose accounts have been disabled for those reasons. Use --all to\n"
+"send the notification to all disabled members.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -h / --help\n"
+" Print this message and exit.\n"
+"\n"
+" -o / --byadmin\n"
+" Also send notifications to any member disabled by the list\n"
+" owner/administrator.\n"
+"\n"
+" -m / --byuser\n"
+" Also send notifications to any member disabled by themselves.\n"
+"\n"
+" -u / --unknown\n"
+" Also send notifications to any member disabled for unknown reasons\n"
+" (usually a legacy disabled address).\n"
+"\n"
+" -b / --notbybounce\n"
+" Don't send notifications to members disabled because of bounces "
+"(the\n"
+" default is to notify bounce disabled members).\n"
+"\n"
+" -a / --all\n"
+" Send notifications to all disabled members.\n"
+"\n"
+" -f / --force\n"
+" Send notifications to disabled members even if they're not due a "
+"new\n"
+" notification yet.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" Process only the given list, otherwise do all lists.\n"
+msgstr ""
+"ÇÛÁ÷Ää»ß²ñ°÷¤ò½èÍý¤¹¤ë. 1Æü1²ó¼Â¹Ô¤¹¤ë¤È¤è¤¤.\n"
+"\n"
+"¤³¤Î¥¹¥¯¥ê¥×¥È¤ÏÁ´Éô¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ò½ä²ó¤·, ÇÛÁ÷¤¬Ää»ß¤µ¤ì¤Æ¤¤¤ë\n"
+"²ñ°÷¤òõ¤·½Ð¤¹. ¤â¤·, Ää»ß¤ÎÍýͳ¤¬ÇÛÁ÷¥¨¥é¡¼¤Ë¤è¤ë¤â¤Î¤Ç¤¢¤ì¤Ð, \n"
+"¤½¤Î²ñ°÷¤ÏºÆÅÙÄÌÃΤµ¤ì¤ë. ¤½¤·¤Æ, ¤½¤ÎÄÌÃΤ¬ºÇÂç¿ô¤ò±Û¤¨¤¿¤é, ¥ê¥¹¥È\n"
+"¤«¤éºï½ü¤µ¤ì¤ë.\n"
+"\n"
+"--byadmin, --byuser, --unknown ¤Î¥Õ¥é¥°¤ò»È¤¦¤È¤½¤ì¤é¤ÎÍýͳ¤ÇÄä»ß\n"
+"¤·¤¿²ñ°÷¤Ë¤âÄÌÃΤ¬¹Ô¤ï¤ì¤ë. Á´¤Æ¤ÎÄä»ß²ñ°÷¤ËÄÌÃΤ¹¤ë¤Ë¤Ï, --all ¤ò\n"
+"»È¤¦\n"
+"\n"
+"»ÈÍÑË¡: %(PROGRAM)s [¥ª¥×¥·¥ç¥ó]\n"
+"\n"
+"¥ª¥×¥·¥ç¥ó:\n"
+" -h / --help\n"
+" ¤³¤Î¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¤Æ½ªÎ».\n"
+"\n"
+" -o / --byadmin\n"
+" ¥ê¥¹¥È´ÉÍý¼Ô¤Ë¤è¤Ã¤ÆÄä»ß¤µ¤ì¤¿²ñ°÷¤Ë¤âÄÌÃΤòÁ÷¤ë\n"
+"\n"
+" -m / --byuser\n"
+" ²ñ°÷¼«¿È¤Ë¤è¤Ã¤ÆÄä»ß¤µ¤ì¤Æ¤¤¤ë²ñ°÷¤Ë¤âÄÌÃΤòÁ÷¤ë\n"
+"\n"
+" -u / --unknown\n"
+" ÍýͳÉÔÌÀ¤ÎÄä»ß²ñ°÷¤Ë¤âÄÌÃΤòÁ÷¤ë\n"
+" (µì¥Ð¡¼¥¸¥ç¥ó»þÂå¤Î°ä»º¤ÎÄä»ß²ñ°÷¤È»×¤ï¤ì¤ë)\n"
+"\n"
+" -b / --notbybounce\n"
+" ÇÛÁ÷¥¨¥é¡¼¤ÇÄä»ß¤·¤Æ¤¤¤ë²ñ°÷¤Ë¤ÏÄÌÃΤòÁ÷¤é¤Ê¤¤\n"
+" (¥Ç¥Õ¥©¥ë¥È¤Ï¥¨¥é¡¼Ää»ß²ñ°÷¤ËÁ÷¤ë)\n"
+"\n"
+" -a / --all\n"
+" Á´¤Æ¤ÎÄä»ß²ñ°÷¤ËÄÌÃΤòÁ÷¤ë\n"
+"\n"
+" -f / --force\n"
+" ¿·¤¿¤ËÄÌÃΤòÁ÷¤ë¾ò·ï¤Ë¤Ê¤Ã¤Æ¤Ê¤¯¤Æ¤â, Ää»ß²ñ°÷¤ËÄÌÃΤ¹¤ë\n"
+"\n"
+" -l ¥ê¥¹¥È̾\n"
+" --listname=¥ê¥¹¥È̾\n"
+" ¥ê¥¹¥È̾¤Î¥ê¥¹¥È¤À¤±½èÍý¤¹¤ë. ¤Ç¤Ê¤±¤ì¤Ð, Á´Éô¤Î¥ê¥¹¥È¤ò½èÍý.\n"
+
+#: cron/disabled:143
+msgid "[disabled by periodic sweep and cull, no message available]"
+msgstr "[Äê´üŪÀ¶ÁݤÈÁªÊ̤ÇÄä»ß. ¥á¥Ã¥»¡¼¥¸¤Ï¤¢¤ê¤Þ¤»¤ó]"
+
+#: cron/gate_news:19
+msgid ""
+"Poll the NNTP servers for messages to be gatewayed to mailing lists.\n"
+"\n"
+"Usage: gate_news [options]\n"
+"\n"
+"Where options are\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this text and exit.\n"
+"\n"
+msgstr ""
+"NNTP¥µ¡¼¥Ð¤ËÌ䤤¹ç¤ï¤»¤ò¹Ô¤¤, ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ØÃæ·Ñ¤¹¤ë¥á¥Ã¥»¡¼¥¸¤ò¼è¤ë.\n"
+"\n"
+"»ÈÍÑË¡: gate_news [¥ª¥×¥·¥ç¥ó]\n"
+"\n"
+"¥ª¥×¥·¥ç¥ó:\n"
+"\n"
+" --help\n"
+" -h\n"
+" ¤³¤Î¥Æ¥­¥¹¥È¤òɽ¼¨¤·¤Æ½ªÎ».\n"
+"\n"
+
+#: cron/mailpasswds:19
+msgid ""
+"Send password reminders for all lists to all users.\n"
+"\n"
+"This program scans all mailing lists and collects users and their "
+"passwords,\n"
+"grouped by the list's host_name if mm_cfg.VIRTUAL_HOST_OVERVIEW is true. "
+"Then\n"
+"one email message is sent to each unique user (per-virtual host) containing\n"
+"the list passwords and options url for the user. The password reminder "
+"comes\n"
+"from the mm_cfg.MAILMAN_SITE_LIST, which must exist.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -l listname\n"
+" --listname=listname\n"
+" Send password reminders for the named list only. If omitted,\n"
+" reminders are sent for all lists. Multiple -l/--listname options "
+"are\n"
+" allowed.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+msgstr ""
+"Á´Éô¤Î¥ê¥¹¥È¤ÎÁ´Éô¤Î²ñ°÷¤Ë¥Ñ¥¹¥ï¡¼¥É³Ð¤¨¤òÁ÷¤ë\n"
+"\n"
+"¤³¤Î¥×¥í¥°¥é¥à¤ÏÁ´¤Æ¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤òÁöºº¤·, ²ñ°÷¤È¤½¤Î¥Ñ¥¹¥ï¡¼¥É¤ò\n"
+"½¸¤á¤ë. ¤½¤·¤Æ, mm_cfg.VIRTUAL_HOST_OVERVIEW ¤¬¿¿¤Ç¤¢¤ì¤Ð, ¥ê¥¹¥È¤Î\n"
+"¥Û¥¹¥È̾¤Ç¥°¥ë¡¼¥×²½¤¹¤ë. ¼¡¤Ë, (²¾ÁÛ¥Û¥¹¥È¤´¤È¤Ë) °ì°Õ¤Î¥æ¡¼¥¶¤´¤È¤Ë\n"
+"¥ê¥¹¥È¤Î¥Ñ¥¹¥ï¡¼¥É¤È²ñ°÷¥ª¥×¥·¥ç¥ó¥Ú¡¼¥¸¤Î URL ¤ò½ñ¤¤¤¿¥á¡¼¥ë¤òÁ÷¿®¤¹¤ë.\n"
+"¥Ñ¥¹¥ï¡¼¥É³Ð¤¨¤Ï mm_cfg.MAILMAN_SITE_LIST ¤«¤éÁ÷¿®¤¹¤ë¤Î¤Ç, ¤³¤ì¤¬Ìµ¤¤¤È\n"
+"¤¤¤±¤Ê¤¤.\n"
+"\n"
+"»ÈÍÑË¡: %(PROGRAM)s [¥ª¥×¥·¥ç¥ó]\n"
+"\n"
+"¥ª¥×¥·¥ç¥ó:\n"
+" -l ¥ê¥¹¥È̾\n"
+" --listname=¥ê¥¹¥È̾\n"
+" ̾Á°¤ò¤¢¤²¤¿¥ê¥¹¥È¤Ë¤Ä¤¤¤Æ¤À¤±¥Ñ¥¹¥ï¡¼¥É¤òÁ÷¤ë. ¤â¤·, ¾Êά¤¹¤ë\n"
+" ¤È, Á´Éô¤Î¥ê¥¹¥È¤Ë¤Ä¤¤¤ÆÁ÷¤ë. Ê£¿ô¤Î -l/--listname ¥ª¥×¥·¥ç¥ó\n"
+" ¤âµö¤µ¤ì¤ë.\n"
+"\n"
+" -h/--help\n"
+" ¤³¤Î¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¤Æ½ªÎ»\n"
+
+#: cron/mailpasswds:111
+msgid "Site list is missing: %(sitelistname)s"
+msgstr "¥µ¥¤¥È¥ê¥¹¥È̾¤¬¤¢¤ê¤Þ¤»¤ó: %(sitelistname)s"
+
+#: cron/mailpasswds:179
+msgid "Password // URL"
+msgstr "¥Ñ¥¹¥ï¡¼¥É // URL"
+
+#: cron/mailpasswds:199
+msgid "%(host)s mailing list memberships reminder"
+msgstr "%(host)s ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È²ñ°÷ÄÌÃÎ"
+
+#: cron/nightly_gzip:19
+msgid ""
+"Re-generate the Pipermail gzip'd archive flat files.\n"
+"\n"
+"This script should be run nightly from cron. When run from the command "
+"line,\n"
+"the following usage is understood:\n"
+"\n"
+"Usage: %(program)s [-v] [-h] [listnames]\n"
+"\n"
+"Where:\n"
+" --verbose\n"
+" -v\n"
+" print each file as it's being gzip'd\n"
+"\n"
+" --help\n"
+" -h\n"
+" print this message and exit\n"
+"\n"
+" listnames\n"
+" Optionally, only compress the .txt files for the named lists. "
+"Without \n"
+" this, all archivable lists are processed.\n"
+"\n"
+msgstr ""
+"Pipermail ¤Î gzip ¤·¤¿¥Õ¥é¥Ã¥È¥Õ¥¡¥¤¥ë²áµî¥á¡¼¥ë¤òºÆÀ¸À®¤¹¤ë.\n"
+"\n"
+"¤³¤Î¥¹¥¯¥ê¥×¥È¤ÏÌëÃæ¤Ë cron ¤Ç¼Â¹Ô¤¹¤Ù¤­¤Ç¤¢¤ë. ¥³¥Þ¥ó¥É¥é¥¤¥ó¤«¤é\n"
+"¼Â¹Ô¤¹¤ë¤È¤­¤Ï°Ê²¼¤ÎÍøÍÑË¡¤¬¤¢¤ë.\n"
+"\n"
+"»ÈÍÑË¡: %(program)s [-v] [-h] [¥ê¥¹¥È̾]\n"
+"\n"
+"⤷:\n"
+" --verbose\n"
+" -v\n"
+" gzip ¤¹¤ë¤È¤­¤Ë¥Õ¥¡¥¤¥ë̾¤òɽ¼¨¤¹¤ë.\n"
+"\n"
+" --help\n"
+" -h\n"
+" ¤³¤Î¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¤Æ½ªÎ»¤¹¤ë\n"
+"\n"
+" ¥ê¥¹¥È̾\n"
+" ¥ª¥×¥·¥ç¥ó¤Ç̾Á°¤ò¤¢¤²¤¿¥ê¥¹¥È¤Î .txt ¥Õ¥¡¥¤¥ë¤À¤±¤ò°µ½Ì¤¹¤ë.\n"
+" ¤³¤ì¤¬Ìµ¤¤¾ì¹ç¤ÏÁ´¤Æ¤ÎÊݸ¸ËºîÀ®¥ê¥¹¥È¤ò½èÍý¤¹¤ë.\n"
+"\n"
+
+#: cron/senddigests:19
+msgid ""
+"Dispatch digests for lists w/pending messages and digest_send_periodic set.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -h / --help\n"
+" Print this message and exit.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" Send the digest for the given list only, otherwise the digests for "
+"all\n"
+" lists are sent out.\n"
+msgstr ""
+"digest_send_periodic ¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Æ¥á¥Ã¥»¡¼¥¸¤¬Î¯¤Þ¤Ã¤Æ¤¤¤ë¥ê¥¹¥È¤Ë\n"
+"¤Ä¤¤¤Æ, ¤Þ¤È¤áÆÉ¤ß¤òȯÁ÷¤¹¤ë\n"
+"\n"
+"»ÈÍÑË¡: %(PROGRAM)s [¥ª¥×¥·¥ç¥ó]\n"
+"\n"
+"¥ª¥×¥·¥ç¥ó:\n"
+" -h / --help\n"
+" ¤³¤Î¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¤Æ½ªÎ»¤¹¤ë\n"
+"\n"
+" -l ¥ê¥¹¥È̾\n"
+" --listname=¥ê¥¹¥È̾\n"
+" ¥ê¥¹¥È̾¤ò¤¢¤²¤¿¥ê¥¹¥È¤Ë¤Ä¤¤¤Æ¤À¤±, ¤Þ¤È¤áÆÉ¤ß¤òÁ÷¿®¤¹¤ë.\n"
+" ¤³¤ì¤¬Ìµ¤¤¾ì¹ç, Á´¤Æ¤Î¥ê¥¹¥È¤Î½èÍý¤ò¤¹¤ë.\n"
diff --git a/messages/ja/README b/messages/ja/README
new file mode 100644
index 00000000..dad5410f
--- /dev/null
+++ b/messages/ja/README
@@ -0,0 +1,212 @@
+Mailman - The GNU Mailing List Management System
+Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+¤³¤ì¤Ï Mailman 2.1 ¤Î README ¤òµÆÃÏ¡÷¹âÃÎÂ礬ÏÂÌõ¤·¤¿¤â¤Î¤Ç¤¹¡¥
+¸íÌõ¤¬¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¤Î¤Ç¡¤É¬¤º¸¶ËܡʱÑʸ¡Ë¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡¥
+
+¤Ï¤¸¤á¤Ë
+
+ ¤³¤ì¤Ï GNU Mailman ¤¹¤Ê¤ï¤Á GNU ¸ø³«»ÈÍѵöÂú(GPL) ¤Î¤â¤È¤ÇÇÛÉÛ¤µ¤ì¤ë
+ ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È´ÉÍý¥·¥¹¥Æ¥à¤Ç¤¹¡¥¤³¤Î¥×¥í¥¸¥§¥¯¥È¤Î̾Á°¤Ï "Mailman"
+ ¤ÈÄÖ¤ê¤Þ¤¹¡¥Ã¢¤·¡¤ºÇ½é¤Î 'M' ¤ÏÂçʸ»ú¤Ç¡¤£²¤ÄÌܤΠ'm' ¤Ï ¾®Ê¸»ú¤Ç
+ ½ñ¤­¤Þ¤¹¡¥¤³¤Î¾¤Î¤É¤ó¤ÊÄÖ¤ê¤â´Ö°ã¤¤¤Ç¤¹.
+
+ Mailman ¤Ï¼ç¤Ë Python ¤Ä¤Þ¤ê¥Õ¥ê¡¼¤Î¥ª¥Ö¥¸¥§¥¯¥È»Ø¸þ¥¹¥¯¥ê¥×¥È¸À¸ì¤Ç
+ ½ñ¤«¤ì¤Æ¤¤¤Þ¤¹¡¥¥»¥­¥å¥ê¥Æ¥£¤ÎÌÜŪ¤Ç¤¤¤¯¤é¤«¤Ï ANSI C ¤Î¥³¡¼¥É¤â
+ ´Þ¤Þ¤ì¤Þ¤¹¡¥
+
+ Mailman ¤ÏºÇ½é John Viega ¤Ë¤è¤Ã¤Æ³«È¯¤µ¤ì¤Þ¤·¤¿¡¥¤½¤Î¸å¡¤
+ (Version 1.0b3 ¤Þ¤Ç) Ken Manheimer ¤¬³«È¯¤Ë·È¤ï¤ê¤Þ¤·¤¿¡¥ ¤µ¤é¤Ë
+ 1.0 ºÇ½ªÈǤޤǤκî¶È¤Ï¥°¥ë¡¼¥×¤ÎÎϤǡ¤¼çÍפʹ׸¥¼Ô¤Ï Barry Warsaw,
+ Ken Manheimer, Scott Cotton, Harald Meland, John Viega ¤Ç¤¹¡¥
+ Version 1.0 ¤«¤éÀè¤Ï¼ç¤Ë Barry Warsaw ¤¬Êݼé¤Ë¤¢¤¿¤ê¡¤ ¿¤¯¤Î¿Í¤¿¤Á
+ ¤«¤é¤Î¹×¸¥¤ò¼õ¤±¤Þ¤·¤¿¡¥¾Ü¤·¤¯¤Ï ACKNOWLEDGMENTS ¥Õ¥¡¥¤¥ë¤òÆÉ¤ó¤Ç
+ ¤¯¤À¤µ¤¤¡¥Jeremy Hylton ¤Ï Mailman 2.0 ¤Î Pipermail¥³¡¼¥É¤Ë
+ ¹×¸¥¤·¤Þ¤·¤¿.
+
+ Mailman ¤Î¥Û¡¼¥à¥Ú¡¼¥¸¤Ï
+
+ http://www.gnu.org/software/mailman
+
+ ¤Ë¤¢¤ê¡¤¤½¤Î¥ß¥é¡¼¤Ï
+
+ http://www.list.org
+ http://mailman.sf.net
+
+ ¤Ë¤¢¤ê¤Þ¤¹¡¥¡ÊÌõÃí¡§Â¿¾¯ÆâÍÆ¤¬°ã¤Ã¤Æ¤¤¤Þ¤¹¡Ë
+
+ Mailman 2.1 ¤Ï Python 2.1.3 ¤Þ¤¿¤Ï°Ê¹ß¤Î¥Ð¡¼¥¸¥ç¥ó¤òɬÍפȤ·¤Þ¤¹¡¥
+ ¤³¤ì¤Ï
+
+ http://www.python.org
+
+ ¤«¤é¥À¥¦¥ó¥í¡¼¥É¤Ç¤­¤Þ¤¹¡¥Python 2.1.3 ¤Þ¤¿¤Ï Python 2.2.2 ¤¬¤³¤ì¤ò
+ ½ñ¤¤¤Æ¤¤¤ë»þÅÀ¤Ç¤ÎºÇ¿·ÈǤǤ¹¤Î¤Ç, ¤ª´«¤á¤·¤Þ¤¹. Mailman 2.1 ¤Ï
+ Python 2.0 ¤è¤ê¤â°ÊÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ïư¤­¤Þ¤»¤ó.
+
+ ¤Þ¤¿ Python ¤È Mailman ¤òÆþ¤ì¤ë¤Ë¤Ï ANSI C ¥³¥ó¥Ñ¥¤¥é¡¼¤âɬÍפǤ¹¡¥
+ gcc (GNU C ¥³¥ó¥Ñ¥¤¥é¡¼)¤¬ ¥Ô¥Ã¥¿¥·¤Ç¤¹¡¥Mailman ¤Ï¸½ºß¤Î¤È¤³¤í
+ GNU/Linux ¤È¤½¤Î¾¤Î UNIX É÷¤Î¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à (Îã Solaris,
+ *BSD, MacOSX, ¤½¤Î¾) ¤Ç¤Î¤ßºîư¤·¤Þ¤¹¡¥Windows ¤Ç¤Ïư¤­¤Þ¤»¤ó¤¬,
+ ¥¦¥§¥Ö¤È¥á¡¼¥ë¤Î¥¯¥é¥¤¥¢¥ó¥È¥½¥Õ¥È¤Ï Mailman ¤È¤ÎÀܳ¤Ë¤Ï½½Ê¬µ¡Ç½
+ ¤·¤Þ¤¹.
+
+ ¥¤¥ó¥¹¥È¡¼¥ë¤Ë¤Ï INSTALL ¥Õ¥¡¥¤¥ë¤ò¸«¤Æ¤¯¤À¤µ¤¤¡¥¤â¤·¡¤°ÊÁ°¤Î¥Ð¡¼
+ ¥¸¥ç¥ó ¤«¤é¥Ð¡¼¥¸¥ç¥ó¥¢¥Ã¥×¤·¤è¤¦¤È¤·¤Æ¤¤¤ë¤Î¤Ç¤¢¤ì¤Ð¡¤UPGRADING
+ ¥Õ¥¡¥¤¥ë¤Ë ½ÅÍפʾðÊ󤬯þ¤Ã¤Æ¤¤¤Þ¤¹¤Î¤Çɬ¤ºÆÉ¤ó¤Ç¤¯¤À¤µ¤¤¡¥
+
+ÆÃħ
+
+ Version 0.9 ¤«¤é¤ÎÊѹ¹¤Ë¤Ä¤¤¤Æ¤Ï NEWS ¥Õ¥¡¥¤¥ë¤òÆÉ¤ó¤Ç¤¯¤À¤µ¤¤¡¥
+ (Âô»³¤Î)Í×˾¥ê¥¹¥È¤Ë¤Ä¤¤¤Æ¤Ï TODO ¥Õ¥¡¥¤¥ë¤òÆÉ¤ó¤Ç¤¯¤À¤µ¤¤¡¥
+ Mailman ¤Îºîư¤·¤Æ¤¤¤ë¤È¤³¤í¤Ï¡¤
+
+ http://mail.python.org/mailman-21/listinfo
+
+ ¤Ç¸«¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡¥
+
+ Mailman ¤Ï¥á¡¼¥ê¥ó¥°¥ê¥¹¥È´ÉÍý¥×¥í¥°¥é¥à¤Ë´üÂÔ¤µ¤ì¤ëɸ½àŪ¤Ê
+ ÆÃħ¤ò¤Û¤È¤ó¤ÉÈ÷¤¨¤Æ¤¤¤Þ¤¹¡¥¤µ¤é¤Ë¡§
+
+ - ¥ê¥¹¥È´ÉÍý¤Î¤Û¤È¤ó¤ÉÁ´¤Æ¤Îºî¶È¤¬ Web ¥Ù¡¼¥¹¤Ç¤¹¡¥Web¥Ù¡¼¥¹¤Î
+ ÅÐÏ¿¤È¥æ¡¼¥¶ÀßÄê´ÉÍý¤¬¤Ç¤­¤Þ¤¹¡¥¤½¤ì¤¾¤ì¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Î
+ "¥Û¡¼¥à¥Ú¡¼¥¸" ¤Ï¥«¥¹¥¿¥Þ¥¤¥º¤Ç¤­¤Þ¤¹¡¥
+
+ - (»Ê²ñ¼Ô¤òÃÖ¤¯)¥â¥Ç¥ì¡¼¥È¡¤¸ø³«¡¦Èó¸ø³«¤ÎÅÐÏ¿(Æþ²ñ)¥Ý¥ê¥·¡¼
+ ²ñ°÷̾Êí¤ÎÈó¸ø³«, Á÷¿®¼Ô¤Ë´ð¤¯¥Õ¥£¥ë¥¿¡¼¤Ê¤É¤Î¥×¥é¥¤¥Ð¥·¡¼
+ ÀßÄ꤬¤Ç¤­¤Þ¤¹¡¥
+
+ - ¥Ó¥ë¥È¥¤¥ó¤Ç¼«Æ°Web¥Ù¡¼¥¹¡¦¥¢¡¼¥«¥¤¥Ö(Êݸ½ñ¸Ë)¤¬¤Ç¤­¤Þ¤¹¡¥
+ ½ñ¸Ë¤Ï¸ø³«¤Þ¤¿¤ÏÈó¸ø³«¤Ë¤Ç¤­¡¤³°Éô¤Î¥¢¡¼¥«¥¤¥Ð¤ËÅϤ¹¤³¤È¤â
+ ¤Ç¤­¤Þ¤¹¡¥
+
+ - ¥æ¡¼¥¶Ëè¤ÎÀßÄê¤Ç MIME ·Á¼°¤Þ¤¿¤Ï RFC1153 ¥¹¥¿¥¤¥ë¤Ç¡Ö¤Þ¤È¤áÆÉ¤ß¡×
+ ¤ÎÀßÄê¤ò¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡¥
+
+ - ¥á¡¼¥ë¡¿¥Ë¥å¡¼¥¹ ¥²¡¼¥È¥¦¥§¥¤¤¬ÁȤ߹þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡¥
+
+ - ¼«Æ°ÊÖÅú¤¬ÁȤ߹þ¤Þ¤ì¤Æ¤¤¤Þ¤¹.
+
+ - Majordomo ¥¹¥¿¥¤¥ë¤Î ¥á¡¼¥ë¥Ù¡¼¥¹¤Î¥³¥Þ¥ó¥É¡¥
+
+ - ³ÈÄ¥²Äǽ¤ÊÏÈÁȤߤǤΡ¤¥Ð¥¦¥ó¥¹(¥á¡¼¥ë¥¨¥é¡¼)¸¡½Ðµ¡¹½¤òÆâ¢¡¥
+
+ - SPAM ¸¡½Ðµ¡Ç½¤òÆâ¢¡¥MIME¤Ë´ð¤¯ÆâÍÆ¥Õ¥£¥ë¥¿¡¼
+
+ - ³ÈÄ¥À­¤Î¤¢¤ë¥á¡¼¥ëÇÛÁ÷¥Ñ¥¤¥×¥é¥¤¥ó
+
+ - ²¾Áۥɥᥤ¥ó¤ò¥µ¥Ý¡¼¥È
+
+ɬÍ×»ö¹à
+
+ ¥Ç¥Õ¥©¥ë¥È¤Î¥á¡¼¥ëÇÛÁ÷µ¡¹½¤ÏľÀÜ SMTP Àܳ¤ò»È¤Ã¤Æ¤ª¤ê¡¤¥Ý¡¼¥È
+ ÈÖ¹æ25¤Çư¤¤¤Æ¤¤¤ë¤É¤ó¤Ê¥á¡¼¥ëÇÛÁ÷¥·¥¹¥Æ¥à(MTA) ¤Ç¤¢¤Ã¤Æ¤â¹½¤¤
+ ¤Þ¤»¤ó¡¥¤Ç¤¹¤«¤é¡¤¤É¤ó¤Ê MTA ¤Ç¤â Mailman ¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹
+ ¤¬¡¤ÆÃÄê¤Î MTA (Exim ¤È Postfix) ¤ò»È¤¦¤È, ¥¦¥§¥Ö¤òÄ̤·¤¿¥ê¥¹¥È
+ ¤ÎºîÀ®¤Èºï½ü¤â¥µ¥Ý¡¼¥È¤Ç¤­¤Þ¤¹.
+
+ Mailman ¤Ï CGI ¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤É¤ó¤Ê web ¥µ¡¼¥Ð¤Ç¤â»È¤¨¤Þ¤¹¡¥
+ À¸À®¤µ¤ì¤ë HTML¤Ï¤È¤Æ¤âÊ¿ËޤDzèÁü¤ò¥±¥Á¤Ã¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¤ ¤Û¤È¤ó¤É¤Î
+ ¥Ö¥é¥¦¥¶¤Ë¤È¤Ã¤Æ¥Õ¥ì¥ó¥É¥ê¡¼¤Î¤Ï¤º¤Ç¤¹¡¥ Ä̾ï, Windows ¤Ç¤Ï
+ IE5.5, Netscape 4.7x, Mozilla, Linux ¤Ç¤Ï Netscape 4.7x ¤È
+ Mozilla ¤Ç»î¸³¤·¤Æ¤¤¤Þ¤¹. (»þ¤Ë¤Ï Linux ¤Î Lynx ¤ä MacOS ¤Î
+ Netscape ¤È Mozilla ¤Ç¤â).
+
+ Mailman¥¤¥ó¥¹¥È¡¼¥ë¤ÎÀßÄê¤Î°ìÉô¤ÎÃʳ¬¤Ç¡¤¥Û¥¹¥È¥Þ¥·¥ó¤Ç¤Îroot
+ ¸¢¸Â¤¬É¬Íפˤʤê¤Þ¤¹¡¥¾Ü¤·¤¯¤Ï INSTALL ¤ò¸«¤Æ¤¯¤À¤µ¤¤¡¥
+
+ Mailman ¤Î¥¦¥§¥Ö¤È¥á¡¼¥ë¤Î¥æ¡¼¥¶¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï¤É¤ó¤Ê¥á¡¼¥ë
+ ¥½¥Õ¥È¤Ç¤â¥¦¥§¥Ö¥Ö¥é¥¦¥¶¤Ç¤â»È¤¨¤ë¤è¤¦¤Ë¤·¤Æ¤¤¤Þ¤¹¤¬, ¥á¡¼¥ë
+ ¥½¥Õ¥È¤Ï MIME ¤òÍý²ò¤Ç¤­¤ë¤Û¤¦¤¬¤è¤¤¤Ç¤·¤ç¤¦. Java ¤ä JavaScript
+ ¤ä¤½¤Î¾¤Î¥«¥Ã¥³¤¤¤¤¥×¥é¥°¥¤¥ó¤ÏɬÍפ¢¤ê¤Þ¤»¤ó.
+
+¤Ï¤¸¤á¤Æ¥ê¥¹¥È¤òºîÀ®¤¹¤ë
+
+ °Ê²¼¤Î¼ê½ç¤Ï, ¤¢¤Ê¤¿¤¬´û¤Ë INSTALL ¥Õ¥¡¥¤¥ë¤Ë½¾¤Ã¤Æ Mailman ¤ò
+ ¥¤¥ó¥¹¥È¡¼¥ë¤·, ÀßÄêºÑ¤ß¤Ç¤¢¤ë¤È²¾Äꤷ¤Æ¤¤¤Þ¤¹. ¥Æ¥¹¥È¤Î¥ê¥¹¥È
+ ¤òºîÀ®¤¹¤ë¤Ë¤Ï, °Ê²¼¤Î¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤:
+
+ - ºÇ½é¤Ë, ¥µ¥¤¥È´ÉÍý¼Ô¤Î¥Ñ¥¹¥ï¡¼¥É¤òÀßÄꤷ¤Þ¤¹. ¥¤¥ó¥¹¥È¡¼¥ë
+ ¤·¤¿¥Ç¥£¥ì¥¯¥È¥ê(¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï /usr/local/mailman) ¤Ë cd ¤·¤Æ
+ ¼¡¤Î¤è¤¦¤Ë¤·¤Þ¤¹.
+
+ % bin/mmsitepass
+ New site password: [yourpassword]
+ Again to confirm password: [yourpassword]
+ Password changed.
+
+ ÌõÃí: ¤â¤·, ¤¢¤Ê¤¿¤¬´Ä¶­ÊÑ¿ô LANG ¤ò ja ¤ËÀßÄꤷ¤¿¤é
+ °Ê²¼¤Î¤è¤¦¤Ê¥×¥í¥ó¥×¥È¤¬½Ð¤Æ¤¯¤ë¤«¤â¤·¤ì¤Þ¤»¤ó.
+
+ % bin/mmsitepass
+ ¿·¤·¤¤ ¥µ¥¤¥È ¤Î¥Ñ¥¹¥ï¡¼¥É:
+ ¥Ñ¥¹¥ï¡¼¥É³Îǧ:
+ ¥Ñ¥¹¥ï¡¼¥É¤òÊѹ¹¤·¤Þ¤·¤¿.
+
+ - ¼¡¤Î¤è¤¦¤Ê URL ¤ËÀܳ¤·¤Þ¤¹.
+
+ http://my.dom.ain/mailman/create
+
+ ²èÌ̤˽ФƤ¯¤ë»Ø¼¨¤Ë½¾¤Ã¤Æ¥Õ¥©¡¼¥à¤Ëµ­Æþ¤·¤Þ¤¹. ¤½¤·¤Æ,
+ "¥ê¥¹¥ÈºîÀ®¼Ô¤Îǧ¾Ú¥Ñ¥¹¥ï¡¼¥É: " ¤Î¤È¤³¤í¤ËÀè¤Û¤É¤Î¥Ñ¥¹¥ï¡¼¥É
+ ¤òÆþ¤ì¤Þ¤¹. ¼«Ê¬¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤ò"ºÇ½é¤Î¥ê¥¹¥È´ÉÍý¼Ô¥¢¥É¥ì¥¹"
+ ¤ËÆþ¤ì¤Æ, ¡Ö¥ê¥¹¥ÈºîÀ®´°Î»¡×¤ò¥á¡¼¥ë¤Ç´ÉÍý¼Ô¤ËÃΤ餻¤ë¤è¤¦¤Ë,
+ "¤Ï¤¤" ¤òÁª¤Ó¤Þ¤¹.
+
+ - ¡Ö¥ê¥¹¥È¤òºîÀ®¤¹¤ë¡×¤ò¥¯¥ê¥Ã¥¯¤·¤Þ¤¹.
+
+ - ¥á¡¼¥ë¤ò¥Á¥§¥Ã¥¯¤·¤Æ, ¿·¤·¤¤¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤¬ºîÀ®¤µ¤ì¤¿¤³¤È¤ò
+ ÃΤ餻¤ë¥á¡¼¥ë¤òÆÉ¤ß¤Þ¤¹.
+
+ - Ãí°Õ: ¤â¤·, Exim ¤« Postfix °Ê³°¤Î MTA ¤ò»È¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï,
+ (Î㤨¤Ð, Sendmail ¤ä qmail) ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Î alias ¤ò¼ê¤Ç
+ ÀßÄꤹ¤ë¤È¤¤¤¦, °ì¼ê´Ö¤¬É¬ÍפǤ¹. ¤¢¤Ê¤¿¤¬¼õ¤±¼è¤Ã¤¿¥á¡¼¥ë¤Ë
+ ½ñ¤«¤ì¤¿»Ø¼¨¤Ë½¾¤Ã¤Æ¤¯¤À¤µ¤¤. (¤¢¤Ê¤¿¤Î MTA ¤Ë¤Ä¤¤¤Æ¤É¤Î¤è¤¦¤Ë
+ ¤·¤¿¤é¤è¤¤¤Î¤«ÃΤäƤ¤¤ëɬÍפ¬¤¢¤ê¤Þ¤¹. ¾Ü¤·¤¯¤Ï, ¤¢¤Ê¤¿¤Î
+ MTA ¤Ë¤Ä¤¤¤Æ¤Î README ¤òÆÉ¤ó¤Ç¤¯¤À¤µ¤¤.)
+
+ - ¥ê¥¹¥È¤Î´ÉÍý¥Ú¡¼¥¸¤Ø¹Ô¤Ã¤Æ¤¯¤À¤µ¤¤. (¥¦¥§¥Ö¥Ú¡¼¥¸¤Î¥ê¥ó¥¯¤«
+ ¥á¡¼¥ë¤Ë½ñ¤«¤ì¤¿¥ê¥ó¥¯¤ò¤¿¤É¤ê¤Þ¤¹) ŵ·¿Åª¤Ê URL ¤Ï¼¡¤Î¤è¤¦¤Ë
+ ¤Ê¤Ã¤Æ¤¤¤ë¤Ï¤º¤Ç¤¹.
+
+ http://my.dom.ain/mailman/admin/mysitelist
+
+ ¥ê¥¹¥È¤Î¥Ñ¥¹¥ï¡¼¥É¤òÆþ¤ì¤Æ¡Ö¥í¥°¥¤¥ó...¡×¤ò¥¯¥ê¥Ã¥¯¤·¤Þ¤¹
+
+ - ¡Ö²ñ°÷´ÉÍý¡×¤ò¥¯¥ê¥Ã¥¯¤·, ³¤¤¤Æ¡Ö¤Þ¤È¤á¤ÆÆþ²ñÅÐÏ¿¡×¤Ø¹Ô¤­¤Þ¤¹.
+
+ - ¼«Ê¬¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤òÂ礭¤Ê¥Æ¥­¥¹¥È¥Õ¥£¡¼¥ë¥É¤ËÆþ¤ì¤Æ
+ ¡ÖÊѹ¹¤òÁ÷¿®¤¹¤ë¡×¤ò¥¯¥ê¥Ã¥¯¤·¤Þ¤¹.
+
+ - ¼«Ê¬¤Î¥á¡¼¥ë¥½¥Õ¥È¤ò»È¤Ã¤Æ, yourlist@my.dom.ain °¸¤Æ¤Ë¥á¡¼¥ë¤ò
+ ½Ð¤·¤Æ¸«¤Æ¤¯¤À¤µ¤¤. Mailman ¤ò·Ðͳ¤·¤ÆÇÛÁ÷¤µ¤ì¤ë¥á¡¼¥ë¤¬
+ 1,2 ʬ¤Î¤¦¤Á¤ËÆÏ¤¯¤Ç¤·¤ç¤¦.
+
+ ¤ª¤á¤Ç¤È¤¦¡ª½é¤á¤Æ¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥ÈºîÀ®¤È¥Æ¥¹¥È¤¬´°Î»¤·¤Þ¤·¤¿.
+ ¤â¤·, ¤Ä¤Þ¤Å¤¯¤è¤¦¤Ê¤³¤È¤¬¤¢¤ì¤Ð, ¼¡¤Î¥»¥¯¥·¥ç¥ó¤Î¤½¤Î¾¤Î¾ðÊó¤ò
+ ¸«¤Æ¤¯¤À¤µ¤¤.
+
+¤½¤Î¾¤Î¾ðÊó
+
+ ¥ª¥ó¥é¥¤¥óʸ½ñ¤Ï, ¤¢¤Ê¤¿¤¬ Mailman ¤ò³«¤¤¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Î²¼¤Î
+
+ file:admin/www/index.html
+
+ ¤ËÆþ¤Ã¤Æ¤¤¤Þ¤¹.
+
+ Chris Kolar ¤Ï¥ê¥¹¥È´ÉÍý¼Ô¤Î¤¿¤á¤Î¥Þ¥Ë¥å¥¢¥ë¤òºîÀ®¤·¤Þ¤·¤¿.
+ °Ê²¼¤Î URL ¤Ë¤¢¤ê¤Þ¤¹.
+
+ http://www.aurora.edu/~ckolar/mailman/
+
+
+(¤½¤Î¾¤Î±Ñ¸ì¤Î¾ðÊó¤Ë¤Ä¤¤¤Æ¤Ï±Ñ¸ìÈǤÎREADME¤ò¸«¤Æ¤¯¤À¤µ¤¤)
+
+ ÆüËܸì¤Ç Mailman ¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤ò¤ä¤ê¤È¤ê¤¹¤ë¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤¬
+ °Ê²¼¤Î¤È¤³¤í¤Ë¤¢¤ê¤Þ¤¹.
+
+ http://mm.tkikuchi.net/
+
+ ÆüËܸì¤Ç¤Î Mailman ¤Î±¿ÍѤˤĤ¤¤Æ¤Ï README.ja ¤âÆÉ¤ó¤Ç¤¯¤À¤µ¤¤.
+
diff --git a/messages/ja/README.ja b/messages/ja/README.ja
new file mode 100644
index 00000000..074338dd
--- /dev/null
+++ b/messages/ja/README.ja
@@ -0,0 +1,78 @@
+
+Mailman¤ÇÆüËܸì¤ò°·¤¦¤È¤­¤ÎÃí°Õ (English summary in the end)
+
+ÆüËܸì¤Î¥á¡¼¥ë¤Ï ISO-2022-JP ¤ò»È¤¦¤³¤È¤¬¡¢RFC1468¤ËÄê¤á¤é¤ì¤Æ¤ª¤ê¡¢
+¤½¤Î¸å¡¢MIME¤Ë¤è¤ë»ÈÍѲÄǽ¤Êʸ»ú½¸¹ç¤Î³ÈÄ¥¤¬¤Ê¤µ¤ì¤Æ¤¤¤Æ¤â¡¢¤³¤ì¤¬
+»ö¼Â¾å¤Îɸ½àµ¬Â§¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£°ìÊý¤Ç¡¢Mailman¤Î¤è¤¦¤Ë¥×¥í¥°¥é¥à¤Î
+Ãæ¤Ç¼«Á³¸À¸ì¤ò°·¤¦ºÝ¤Ë¤Ï¡¢\ ¤ä < > ¤È¤¤¤Ã¤¿Ê¸»ú¤Î¥¨¥¹¥±¡¼¥×¤¬ÌäÂê¤È
+¤Ê¤ê¡¢ºÇ¤â°·¤¤¤ä¤¹¤¤Ê¸»ú½¸¹ç¤Ï EUC-JP ¤¢¤ë¤¤¤Ï Unicode (UTF-8) ¤È¤¤
+¤¦¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£¤³¤³¤Ç¤Ï Mailman ÆâÉô¤È Web ¤Ë¤Ä¤¤¤Æ¤Ï EUC-JP ¤Ë
+Åý°ì¤¹¤ë¤³¤È¤Ç¡¢ÌäÂê¤ò²ò·è¤·¤è¤¦¤È¤·¤Æ¤¤¤Þ¤¹¡£
+
+ÆüËܸì¤Î¤è¤¦¤Ë¡¢¤¤¤¯¤Ä¤«¤Îʸ»ú½¸¹ç¤¬»È¤ï¤ì¤Æ¤¤¤ë¸À¸ì¤Ï¾¤Ë¤â¤¢¤ë
+¤«¤â¤·¤ì¤Þ¤»¤ó¡£¤³¤Î¤¿¤á¡¢É¸½àʸ»ú½¸¹ç(stdcharset)¤ÈÊ̤Îʸ»ú½¸¹ç
+(altcharset)¤ò¹Íθ¤·¤ÆÌäÂê²ò·è¤Î°ìÈ̲½¤ò»î¤ß¤Þ¤¹¡£
+
+¤³¤Î¤¿¤á¡¢³°Éô¤«¤éÆþ¤Ã¤Æ¤¯¤ë¥á¡¼¥ë¤ò altcharst ¤«¤é stdcharset ¤ØÊÑ´¹¤·¡¢
+Mailman ¤«¤é½Ð¤Æ¤¤¤¯¥á¡¼¥ë¤ÏÁ´¤Æ email ¥Ñ¥Ã¥±¡¼¥¸¤Ë½àµò¤·¤¿Ê¸»ú½¸¹ç¤Ø
+¤ØÊÑ´¹¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
+¤³¤Î¤¿¤á¤ÎÊÑ´¹¥×¥í¥°¥é¥à¤ò mc_Entry.py ¤ª¤è¤Ó mc_Finish.py ¤È¤·¤Æ
+ÍѰդ·¤Þ¤·¤¿¡£¤Þ¤¿¡¢Á´¤Æ¤Î¥á¡¼¥ë¤¬ mc_Finish.py ¤ò·Ð¤Æ½Ð¤Æ¤¤¤¯¤è¤¦¤Ë¡¢
+mc_SMTPDirect.py ¤òºî¤ê¤Þ¤·¤¿¡£
+
+Mailman/Handlers ¤Ë mc_SMTPDirect.py, mc_Entry.py, mc_Finish.py ¤ò
+Æþ¤ì¤Æ¤¯¤À¤µ¤¤¡£¤³¤ì¤é¤ÎºÇ¿·ÈÇ¤Ï http://mm.tkikuchi.net/ ¤«¤é
+¥À¥¦¥ó¥í¡¼¥É¤Ç¤­¤Þ¤¹¡£
+
+Mailman/mm_cfg.py ¤Ë°Ê²¼¤Î¹Ô¤òÄɲ䷤Ƥ¯¤À¤µ¤¤¡£
+##################################################################
+DEFAULT_SERVER_LANGUAGE = 'ja'
+GLOBAL_PIPELINE = [ 'mc_Entry', ] + GLOBAL_PIPELINE
+DELIVERY_MODULE = 'mc_SMTPDirect'
+# for multi charset language
+def _(s):
+ return s
+LC_DESCRIPTIONS['ja'] = ( _('Japanese'),
+ 'euc-jp', ['iso-2022-jp', 'shift_jis'] )
+##################################################################
+
+°Ê¾å¤Ç¡¢¥á¡¼¥ë¤Îʸ»ú¥³¡¼¥ÉÊÑ´¹¤¬½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
+
+¤Ê¤ª¡¢templates/ja ¤È messages/ja ¤ÎºÇ¿·ÈǤâ¾å¤ÈƱ¤¸¤¯
+ http://mm.tkikuchi.net/ ¤«¤é¥À¥¦¥ó¥í¡¼¥É¤Ç¤­¤Þ¤¹¡£CVS ¤¬¸Å¤¤¤È
+´¶¤¸¤¿¤é¡¢´ó¤Ã¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
+
+ÆüËܸì¤Ç Mailman ¤Ë¤Ä¤¤¤Æ Q&A ¤·¤¿¤¤¤«¤¿¤Ï¡¢mmjp-users ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È
+¤¬¤¢¤ê¤Þ¤¹¡£¤³¤ì¤â¡¢¾åµ­ URL ¤«¤é¤¿¤É¤ì¤Þ¤¹¤Î¤Ç¡¢¤¼¤Ò¸æ»²²Ã¤¯¤À¤µ¤¤¡£
+
+Ãí°Õ) º£¸å¤ÎÆüËܸ콤Àµ¤Ë¤Ä¤¤¤Æ
+Mailman-Developer ¤Ç¼ã´³µÄÏÀ¤·¤Þ¤·¤¿¤¬, Æþ¸ý¤È½Ð¸ý¤Ç¥³¡¼¥ÉÊÑ´¹¤¹¤ë
+ÊýË¡¤Ç¤Ï, ¥Ë¥å¡¼¥¹¤Ø¤ÎÃæ·Ñ¤ä, ³°Éô¥¢¡¼¥«¥¤¥Ð¤Ø¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë
+ÌäÂ꤬À¸¤¸¤ë¶²¤ì¤¬¤¢¤ê¤Þ¤¹. ¤³¤Î¤¿¤á, Êý¿Ë¤ò¸«Ä¾¤·¤ÆÆâÉô¤Ç WebÍѤÎ
+stdcharset ¤ËÊÑ´¹¤¹¤ëÊý¸þ¤òõ¤Ã¤Æ¸«¤¿¤¤¤È¹Í¤¨¤Æ¤¤¤Þ¤¹.
+
+by tkikuchi_at_is.kochi-u.ac.jp (2002/03/26)
+rev. for 2.1 final (2002/12/25)
+
+I18N Jananization Note
+#
+There is one problem in Japanese message handling; Web documents
+are best treated with EUC-JP charset, while Mail messages should
+be in ISO-2022-JP. Under the Mailman directory, I put programs
+for converting messages to EUC-JP/ISO-2022-JP.
+This approach was generalized for multi-charset languages; incoming
+mail may have alternative charset (altcharset) which will be converted
+to mailman standard charset (stdcharset) by mc_Entry.py and will
+be re-converted into the email-defined charset when going out.
+
+ Mailman +- mm.cfg.py.add (Add these lines in your config)
+ +- Handlers +- mc_SMTPDirect.py
+ +- mc_Entry.py
+ +- mc_Finish.py
+
+
+Revised 2002/03/26
+Revised for multi-charset 2002/12/10
+
+Please visit http://mm.tkikuchi.net/ for more.
+
diff --git a/messages/ja/UPGRADING b/messages/ja/UPGRADING
new file mode 100644
index 00000000..31c00e89
--- /dev/null
+++ b/messages/ja/UPGRADING
@@ -0,0 +1,195 @@
+Mailman - The GNU Mailing List Management System
+Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+»Ê²ñÉÕ¤­¥ê¥¹¥È (Moderation) ¤Ë´Ø¤¹¤ë¥Î¡¼¥È
+
+ Mailman 2.0.x ¤«¤é 2.1 ¤Ë¹¹¿·¤·¤¿¤È¤­¤Ë¤Ï, »Ê²ñ¤È¥×¥é¥¤¥Ð¥·¡¼¤Ë´Ø
+ ¤¹¤ë¥ª¥×¥·¥ç¥ó¤ò¤è¤¯¥Á¥§¥Ã¥¯¤·¤Æ, ´õ˾Ä̤ê¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«
+ Ä´¤Ù¤Æ¤¯¤À¤µ¤¤. Mailman ¤Î»Ê²ñ¤È¥×¥é¥¤¥Ð¥·¡¼¤Ë´Ø¤¹¤ë¥ª¥×¥·¥ç¥ó¤Ï,
+ ¤«¤Ê¤êÊѹ¹¤¬¤¢¤ê, ¤è¤êÍý²ò¤·¤ä¤¹¤¯À©¸æ¤·¤ä¤¹¤¯¤Ê¤Ã¤Æ¤¤¤Þ¤¹. ¸Å¤¤Àß
+ ÄêÊÑ¿ô¤ò¿·¤·¤¤ÀßÄêÊÑ¿ô¤ËËÝÌõ¤¹¤ë¤¿¤á¤ÎÅØÎϤϤʤµ¤ì¤Æ¤¤¤Þ¤¹¤¬, µì¼°
+ ¤Î²ò¼á¤ÏÈó¾ï¤ËÊ£»¨¤Ç, ¤¢¤Ê¤¿¤¬ÀßÄꤷ¤¿¤â¤Î¤¬Àµ¤·¤¯ËÝÌõ¤µ¤ì¤Æ¤¤¤Ê¤¤
+ ²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹.
+
+ ÆÃ¤Ë (¥×¥é¥¤¥Ð¥·¡¼ -> Á÷¿®¼Ô¥Õ¥£¥ë¥¿¡¼) ¤Î default_member_moderation,
+ generic_nonmember_action ¤È accept_these_nonmembers ¤ò¥Á¥§¥Ã¥¯¤·¤Æ
+ ¤¯¤À¤µ¤¤. ¤Þ¤¿, ²ñ°÷´ÉÍý²èÌ̤Dzñ°÷¾ðÊó¤Î¡Öȯ¸ÀÀ©¸Â¡×¥Õ¥é¥°¤â¥Á¥§¥Ã
+ ¥¯¤·¤Æ¤¯¤À¤µ¤¤.
+
+ľÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤«¤é¤Î¹¹¿·
+
+ ¤Û¤È¤ó¤É¤ÎÉôʬ¤Ç, Mailman ¤ò¹¹¿·¤¹¤ë¤Ë¤Ï, ´û¸¤Î¥Ð¡¼¥¸¥ç¥ó¤Î¾å¤Ë,
+ ¤½¤Î¤Þ¤ÞºÇ¿·¥Ð¡¼¥¸¥ç¥ó¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ì¤Ð¤è¤¤¤Î¤Ç, ¤È¤Æ¤â´Êñ¤Ç¤¹.
+ ¤·¤«¤·, °ìÉô¤Ë¤Ï¼ê¤Ç½¤Àµ¤·¤Æ¤¢¤²¤Ê¤¤¤È¤¤¤±¤Ê¤¤¤È¤³¤í¤â¤¢¤ê¤Þ¤¹.
+
+ ²¿¤ò¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤«¤Ï, ¸½ºßÍøÍѤ·¤Æ¤¤¤ë¥Ð¡¼¥¸¥ç¥ó¤È¹¹¿·¤·¤è¤¦
+ ¤È¤·¤Æ¤¤¤ë¥Ð¡¼¥¸¥ç¥ó¤Ë¤è¤Ã¤ÆÊѤê¤Þ¤¹. ¤É¤Î¾ì¹ç¤Ë¤â, ¤Þ¤º¥á¡¼¥ë¤È
+ ¥¦¥§¥Ö¤Ç¤Î Mailman ¤Ø¤Î¥¢¥¯¥»¥¹¤òÄä»ß¤·¤Þ¤·¤ç¤¦. ´ðËÜŪ¤Ë, ¥Ç¡¼¥¿
+ ¥Ù¡¼¥¹¤ò¹¹¿·¤·¤è¤¦¤È¤·¤Æ¤¤¤ë¤ï¤±¤Ç¤¹¤«¤é, ¹¹¿·Ãæ¤Ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÊÑ
+ ¹¹¤¬µ¯¤³¤é¤Ê¤¤¤è¤¦¤Ë¤·¤Æ¤ª¤¯¤³¤È¤Ï¤è¤¤¹Í¤¨¤Ç¤¹.
+
+ »ä¤Î¿ä¾©
+
+ - ¥á¡¼¥ë¼õ¿®¥µ¡¼¥Ð¤ò»ß¤á¤ë. ¿¤¯¤Î SMTP ¥µ¡¼¥Ð¤Ï, ¤â¤·Áê¼ê¤Î¥Ý¡¼¥È
+ ÈÖ¹æ 25 ¤¬ÊĤ¸¤é¤ì¤Æ¤¤¤¿¤é, ¥á¡¼¥ë¤òÂÔµ¡¤µ¤»¤Þ¤¹.
+
+ - °ì»þŪ¤Ë Mailman ¤Ø¤Î¥¦¥§¥ÖÀܳ¤ò»ß¤á¤ë. ¤³¤ì¤Ï, ¥¦¥§¥Ö¥µ¡¼¥Ð¤ò
+ »ß¤á¤ë¤«, ¤Þ¤¿¤Ï Mailman ¤Î URL ¤Ø¤Î¥¢¥¯¥»¥¹¤ò "¥µ¡¼¥Ó¥¹¤¬¤¢¤ê¤Þ
+ ¤»¤ó" ¤È½ñ¤¤¤¿¥Ú¡¼¥¸¤Ø¸þ¤±¤ë¤«¤¹¤ë¤³¤È¤Ç¤Ç¤­¤Þ¤¹. ¾Ü¤·¤¯¤Ï¤´ÍøÍÑ
+ ¤Î¥¦¥§¥Ö¥µ¡¼¥Ð¤ÎÀâÌÀ½ñ¤ò¤´Í÷¤¯¤À¤µ¤¤.
+
+ Mailman ¤Ï´û¸¤Î¥ê¥¹¥È¤Î template ¥Õ¥¡¥¤¥ë¤ò¹¹¿·¤·¤Þ¤»¤ó. Chuq Von
+ Rospach ¤Ï°Ê²¼¤Î Mailman-Users ¸þ¤±¤Î¥á¡¼¥ë¤Ç, ¤è¤¤¥¢¥É¥Ð¥¤¥¹¤ò¤·
+ ¤Æ¤¤¤Þ¤¹:
+
+ http://mail.python.org/pipermail/mailman-users/2000-September/006826.html
+
+ [¼ÂºÝ¤Ë¤Ï, MM2.1a2 ¤Ë¹¹¿·¤¹¤ë¤È template ¥Õ¥¡¥¤¥ë¤ò¤«¤­º®¤¼¤Þ¤¹.
+ ¤Ä¤Þ¤ê, ¸µ¤Î¥Ç¥Õ¥©¥ë¥È¤«¤éÊѹ¹¤¬Ìµ¤¤¤³¤È¤ò¸¡ÃΤ·¤¿¤é¾Ãµî¤·¤Þ¤¹
+ (¤³¤ì¤Ë¤Ï md5 ¥Á¥§¥Ã¥¯¥µ¥à¤¬»È¤ï¤ì¤Þ¤¹).]
+
+2.0.x ¤«¤é 2.1 ¤Ø¤Î¹¹¿·
+
+ Mailman 2.1 ¤Ç¤Ï qrunner ¥·¥¹¥Æ¥à¤¬´°Á´¤Ë½ñ¤­´¹¤¨¤é¤ì¤Æ¤¤¤Þ¤¹.
+ qrunner ¤ò cron ¤Ç¥¹¥¿¡¼¥È¤Ï¤·¤Þ¤»¤ó! ¤½¤ÎÂå¤ï¤ê, bin/mailmanctl
+ ¥¹¥¯¥ê¥×¥È¤Ë¤è¤Ã¤Æ, ¥á¡¼¥ëÇÛÁ÷¤òµ¯Æ°, Ää»ß, ºÆµ¯Æ°¤¹¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ
+ ¤·¤¿. ¤³¤Î¥¹¥¯¥ê¥×¥È¤Ï UNIX ¤Î½é´üµ¯Æ°¥¹¥¯¥ê¥×¥È¤È¤·¤Æ»È¤¦¤³¤È¤â¤Ç
+ ¤­¤Þ¤¹. crontab ¤ò¿·¤·¤¤, cron/crontab.in ¥Õ¥¡¥¤¥ë¤Ç¹¹¿·¤¹¤ë¤³¤È¤ò
+ ˺¤ì¤Ê¤¤¤Ç²¼¤µ¤¤.
+
+ Ãí°Õ: ¤â¤·, MM2.1alpha2 °ÊÁ°¤Î¥·¥¹¥Æ¥à¤«¤é MM2.1alpha2 °Ê¸å¤Ë¹¹¿·
+ ¤¹¤ë¤Î¤Ç¤¢¤ì¤Ð, ¹¹¿·¤¹¤ëÁ°¤Ë, ¸Å¤¤ qrunner ¤Î¥×¥í¥»¥¹¤Ç qfiles/ ¤Î
+ Á´¤Æ¤Î¥á¡¼¥ë¤ò¥¯¥ê¥¢¡¼¤·¤Æ¤ª¤¯¤³¤È¤¬½ÅÍפǤ¹. ¤Ç¤Ê¤¤¤È¹¹¿·¸å¤Ï, ¤½
+ ¤ì¤é¤Î¥á¡¼¥ë¤ÏÇÛÁ÷¤µ¤ì¤Þ¤»¤ó. ¤½¤·¤Æ, ¤½¤ì¤é¤ÎÊÝα¥á¡¼¥ë¤ò¤É¤¦¤ä¤Ã
+ ¤Æ¹¹¿·¤·¤¿¤é¤è¤¤¤«, »ä¤Ë¤Ï¤ï¤«¤ê¤Þ¤»¤ó.
+
+ Ãí°Õ: Mailman 2.1beta1 ¤Ë¹¹¿·¤¹¤ë»þ¤Ë¤Ï, aliases ¥Õ¥¡¥¤¥ë¤òºÆÀ¸À®
+ ¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹. alias ¤Î̾Á°¤ä¤½¤ì¤¬¸Æ¤Ó½Ð¤¹¥×¥í¥°¥é¥à, wrapper
+ ¥¹¥¯¥ê¥×¥È¤ËÂô»³¤ÎÊѹ¹¤¬¤¢¤ê¤Þ¤·¤¿. ¤¢¤Ê¤¿¤¬¤ª»È¤¤¤Î¥á¡¼¥ë¥µ¡¼¥Ð¤ò
+ Mailman ¤ÈÏ¢·È¤µ¤»¤ë¤³¤È¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï README.<¤¢¤Ê¤¿¤ÎMTA> ¤ò¸«
+ ¤Æ¤¯¤À¤µ¤¤.
+
+ aliases ¤òºÆÀ¸À®¤¹¤ë¤Ë¤Ï bin/genaliases ¥¹¥¯¥ê¥×¥È¤ò¤´ÍøÍѤ¯¤À¤µ¤¤.
+
+ Mailman 2.1 ¤Ç¤Ï¿¸À¸ì (¹ñºÝ²½ internationalization = i18n) ¤òƳÆþ
+ ¤·¤Æ¤¤¤Þ¤¹. °ÊÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï, ¤¿¤À°ì¤Ä¤Î¸À¸ì¤À¤±¤¬¥µ¥Ý¡¼¥È¤µ¤ì
+ ¤Æ¤ª¤ê, ¤³¤Î¸À¸ì¤Ï±Ñ¸ì¤Ç¤¢¤ë¤È²¾Äꤵ¤ì¤Æ¤¤¤Þ¤·¤¿. Mailman 2.1 ¤Ø¤Î
+ upgrade ¥¹¥¯¥ê¥×¥È¤Ï lists/<listname> ¥Ç¥£¥ì¥¯¥È¥ê¤Ë `en' ¤È¤¤¤¦
+ ¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤¬ºîÀ®¤µ¤ì, lists/<listname> ¤«¤é .txt ¤È .html ¤Î
+ ¥Õ¥¡¥¤¥ë¤òÁ´¤Æ lists/<listname>/en ¤Ë¥³¥Ô¡¼¤·¤Þ¤¹.
+
+ ¤â¤·, ¤¢¤Ê¤¿¤¬¤³¤ì¤é¤Î¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤òÊѹ¹¤·¤Æ±Ñ¸ì¤Ç¤Ê¤¤Ê¸½ñ
+ ¤òÆþ¤ì¤Æ¤¤¤¿¤é, en ¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤ò¼ê¤Ç̾Á°Êѹ¹¤·¤Æ, ŬÅö¤Ê¸À¸ì
+ ¥³¡¼¥É¤Ë¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹. Mailman ¤Î¹¹¿·¥¹¥¯¥ê¥×¥È¤Ï¥Ç¥Õ¥©¥ë¥È¤Î
+ ½ÅÊ£¤Ë¤Ê¤Ã¤Æ¤¤¤ë¥Æ¥ó¥×¥ì¡¼¥È¤òÁݽü¤·¤Þ¤¹¤¬, ¤³¤ì¤ò¼ê¤Ç¤è¤¯³Îǧ¤·¤¿
+ ¤Û¤¦¤¬¤è¤¤¤Ç¤·¤ç¤¦.
+
+ ¤â¤·, ɸ½à¤Ç¤Ê¤¤¥Ñ¥Ã¥Á¤ò¤¢¤Æ¤¿ MM2.0.x ¤ò¤´ÍøÍѤξì¹ç¤Ë¤Ï, ¹¹¿·¤Ë
+ Ê̤ÎÌäÂ꤬ȯÀ¸¤¹¤ë¤«¤â¤·¤ì¤Þ¤»¤ó. ¸½ºß¤Þ¤Ç¤Î´ûÃΤÎÌäÂê¤È¤·¤Æ¤Ï:
+
+ - ¤â¤·, ¥Ñ¥Ã¥Á #413752 (ʿʸ¤Ë¶¯À©Êѹ¹) ¤òÅö¤Æ¤Æ¤¤¤¿¤é, ¹¹¿·¤Ï¥¹
+ ¥à¡¼¥º¤Ë¤Ï¤¤¤«¤Ê¤¤¤Ç¤·¤ç¤¦. ¥Ñ¥Ã¥Á #651406 ¤ËÈó¸ø¼°¤Î²ò·èË¡¤¬ºÜ¤Ã
+ ¤Æ¤¤¤Þ¤¹.
+
+ http://sf.net/tracker/?group_id=103&atid=300103&func=detail&aid=413752
+ http://sf.net/tracker/?group_id=103&atid=300103&func=detail&aid=651406
+
+¸ÄÊ̤˥ꥹ¥È¤ò¹¹¿·¤¹¤ë
+
+ ¤â¤·, ¤¢¤Ê¤¿¤¬Á´¤Æ¤Î¥ê¥¹¥È¤ò°ìÅÙ¤Ë 2.1 ¤Ë¹¹¿·¤¹¤ë¤Î¤¬Éݤ±¤ì¤Ð, ¤Ò
+ ¤È¤Ä¤º¤Ä°Üư¤·¤Æ¹¹¿·¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹. ¤Þ¤ººÇ½é¤Ë¶õ¤Î¥Ç¥£¥ì¥¯¥È¥ê
+ ¤Ë Mailman 2.1 ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤Þ¤¹. ¤³¤ì¤ò $MM21 ¤È¸Æ¤Ó¤Þ¤·¤ç¤¦.
+ (Mailman 2.0 ¤Ï $MM20 ¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¤â¤Î¤È¤·¤Þ¤¹.)
+
+ ¤³¤¦¤¹¤ë¤³¤È¤Ï, Á´¤Æ¤Î¥ê¥¹¥È¤ò Mailman 2.1 ¤Ë°Üư¤¹¤ë¤Þ¤Ç¤Îû¤¤´Ö
+ Mailman 2.0 ¤È 2.1 ¤¬¶¦À³¤·¤Æ¤¤¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹. MTA ¤È¥¦¥§¥Ö¥µ¡¼
+ ¥Ð¤Ë¤è¤Ã¤Æ¤Ï¤³¤ì¤ÏÆ©²áŪ¤Ç´Êñ¤«¤â¤·¤ì¤Þ¤»¤ó¤¬, ƬÄˤμï¤Ë¤Ê¤ë¤«¤â
+ ¤·¤ì¤Þ¤»¤ó.
+
+ ¤â¤·, Apache ¤Î mod_rewrite ¤ò»È¤Ã¤Æ¤¤¤ì¤Ð, ¤³¤ì¤Ï¤«¤Ê¤êľÀÜŪ¤Ë,
+ Mailman 2.1 ¤È 2.0 ¤ÎξÊý¤¬ /mailman ¤È /pipermail ¤Î URL ¶õ´Ö¤Ë
+ À³¤ß¤Ä¤¯¤è¤¦¤ËÀßÄê¤Ç¤­¤Þ¤¹. ¤³¤ì¤ò»È¤¦¤È°Ü¹Ô¤¬¥ê¥¹¥È¤Î´ÉÍý¼Ô¤È²ñ°÷
+ ¤Ë¤È¤Ã¤ÆÆ©²áŪ¤Ë¤Ê¤ê¤Þ¤¹. ¾Ü¤·¤¯¤Ï°Ê²¼¤ò»²¾È.
+
+ * MTA ¤ò¥·¥ã¥Ã¥È¥À¥¦¥ó¤¹¤ë.
+
+ ¤â¤·, ¥ê¥¹¥È¤«¤é½Ð¤Æ¹Ô¤¯¥á¡¼¥ë¤¬Âô»³¤¢¤ë¤È¤­¤Ë¤Ï, 127.0.0.1
+ (localhost) ¤«¤é¤ÎÀܳ¤ò»Ä¤·¤Æ»Ã¤¯ MTA ¤òư¤«¤·¤Æ¤ª¤¤¤Æ, ¥­¥å¡¼
+ ¤òή¤·¤­¤ë¤è¤¦¤Ë¤¹¤ëɬÍפ¬¤¢¤ë¤«¤âÃΤì¤Þ¤»¤ó. ¤É¤Î¤è¤¦¤Ë¤¹¤ë¤«
+ ¤Ï, MTA ¤Ë°Í¸¤·¤Þ¤¹. Exim ¤Î¾ì¹ç "local_interface = 127.0.0.1"
+ ¤ËÀßÄꤷ, Exim ¥Ç¡¼¥â¥ó¤Ë "kill -HUP" ¤òÁ÷¤ê¤Þ¤¹.
+
+ * ¥¦¥§¥Ö¥µ¡¼¥Ð¤ò¥·¥ã¥Ã¥È¥À¥¦¥ó¤¹¤ë. ¥×¥í¤Î»ëÅÀ¤«¤é¸À¤¦¤È, ¤¢¤ë¤¤
+ ¤Ï¥¦¥§¥Ö¥µ¥¤¥È¤Î¤Û¤«¤ÎÉôʬ¤Ë¤Ï¥¢¥¯¥»¥¹¤Ç¤­¤ë¤è¤¦¤Ë¤·¤Æ¤ª¤­¤¿¤¤
+ ¤Ê¤é, Á´¤Æ¤Î /mailman/ ¤Ø¤Î¥¢¥¯¥»¥¹¤Ë "°ì»þŪ¤Ç¤¹¤¬ÍøÍѤǤ­¤Þ
+ ¤»¤ó" ¤È½ñ¤¤¤¿¥Ú¡¼¥¸¤òÊÖ¤¹¤è¤¦¤ËÀßÄê¤Ç¤­¤Þ¤¹.
+
+ ¤É¤Î¤è¤¦¤Ë¤¹¤ë¤«¤Ï¥µ¡¼¥Ð¡¼¤Ë°Í¸¤·¤Þ¤¹. Apache ¤È mod_rewrite
+ ¤ò»È¤Ã¤Æ¤¤¤ë¤Ê¤é, ¼¡¤Î¤è¤¦¤Ë¤·¤Þ¤¹.
+
+ RewriteRule ^/mailman/.* /var/www/unavailable.html [L]
+
+ (¤â¤Á¤í¤ó¼«Ê¬¤Ç /var/www/unavailable.html ¤òºîÀ®¤·¤Æ¤ª¤¯É¬Íפ¬
+ ¤¢¤ê¤Þ¤¹.)
+
+ * Mailman 2.0 ¤Ë queue ½èÍý¤ò¶¯À©¤¹¤ë:
+
+ Python -S $MM20/cron/qrunner
+
+ (¤³¤ì¤Ï, $MM20/qfiles ¤Ë¥Õ¥¡¥¤¥ë¤¬»Ä¤Ã¤Æ¤¤¤ë¾ì¹ç¤ËɬÍפǤ¹;
+ ¤³¤ì¤¬É¬ÍפʤȤ­¤Ë¤Ï, MTA ¤¬ 127.0.0.1 ¤Çư¤¤¤Æ¤¤¤ë¤³¤È¤ò³Îǧ
+ ¤·¤Æ¤¯¤À¤µ¤¤.)
+
+ * ¥ê¥¹¥È¤ò°Üư¤¹¤ë:
+
+ cd $MM20
+ mv -i lists/foo-list $MM21/lists
+ mv -i archives/private/foo-list $MM21/archives/private
+ mv -i archives/private/foo-list.mbox $MM21/archives/private
+ rm archives/public/foo-list
+ rm archives/public/foo-list.mbox
+ cd $MM21
+ bin/withlist -l -r fix_url mylist
+
+ (fix_url ¤Î¥¹¥Æ¥Ã¥×¤Ï Mailman 2.0 ¤È 2.1 ¤¬Æ±¤¸ URL¶õ´Ö¤ò¶¦Í­
+ ¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¤ÏɬÍפ¢¤ê¤Þ¤»¤ó.)
+
+ * ¥¦¥§¥Ö¥µ¡¼¥Ð¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤ò½ñÂØ¤¨¤Æ¥ê¥¹¥È¤Î URL ¤¬»È¤¨¤ë¤è¤¦
+ ¤Ë¤·¤Þ¤¹. ¤³¤³¤Ç¤Ï, £²¤Ä¤Î²Äǽ¤ÊÊýË¡¤¬¤¢¤ê¤Þ¤¹. ´Êñ¤ÊÊýË¡¤Ç¤Ï
+ Mailman 2.1 ¤Î¥¤¥ó¥¹¥È¡¼¥ëÍѤ˿·¤·¤¯ URL¶õ´Ö¤òºîÀ®¤·¤Þ¤¹. Î㤨
+ ¤Ð /mailman-21 ¤È¤·¤Þ¤¹.
+
+ RewriteRule /mailman/(.*)/(foo-list.*) /mailman-21/$1/$2 [R=temp]
+
+ ([R=temp] ¤Ï "/mailman-21/" ¤¬°ì»þŪ¤Ê URL ¤Ç¤¢¤ê, Mailman 2.1
+ ¤Ø¤Î°Ü¹Ô¤¬½ª¤Ã¤¿¤éÁ´¤Æ¤Î¥ê¥¹¥È¤ò "/mailman/" ¤Ë°Ü¤¹¤³¤È¤ò²¾Äê
+ ¤·¤Æ¤¤¤Þ¤¹.)
+
+ ¤â¤·, "/mailman-21" ¤Î¤è¤¦¤Ê½¹¤¤ URL ¤òÀ¤´Ö¤Ë¤µ¤é¤·¤¿¤¯¤Ê¤±¤ì
+ ¤Ð, Mailman 2.0 ¤È 2.1 ¤¬Æ±¤¸ URL¶õ´Ö¤ò¶¦Í­¤¹¤ë¤è¤¦¤Ë, ¤â¤¦¾¯
+ ¤·»Å»ö¤¬É¬ÍפǤ¹. ¼¡¤Î¤è¤¦¤Ë Apache ¤È mod_rewrite ¤òÀßÄꤷ¤Þ
+ ¤¹.
+
+ RewriteRule ^/mailman/(.*)/(foo-list.*) \
+ $MM21/cgi-bin/$1/$2 \
+ [T=application/x-httpd-cgi]
+
+ ¤³¤Á¤é¤Î¤Û¤¦¤Ï, ¿³ÈþŪ¤Ë´ò¤·¤¤¤À¤±¤Ç¤Ê¤¯, ®¤¤¤Ç¤¹ -- ¥ê¥À¥¤¥ì
+ ¥¯¥È¤¬Ìµ¤¤¤«¤é¤Ç¤¹.
+
+ ¤É¤Á¤é¤ò¤È¤ë¤Ë¤·¤Æ¤â, Mailman 2.1 ¤ÎÊݸ½ñ¸Ë¤Î URL ¤â½ñÂØ¤¨¤Æ
+ ¤ª¤¯É¬Íפ¬¤¢¤ê¤Þ¤¹.
+
+ RewriteRule ^/pipermail/(foo-list.*) $MM21/archives/public/$1
+
+ * ¥¦¥§¥Ö¥µ¡¼¥Ð¤òºÆµ¯Æ°¤·¤Þ¤¹ (Ëô¤Ï, "°ì»þŪ¤Ç¤¹¤¬ÍøÍѤǤ­¤Þ¤»¤ó"
+ ¤ò½ü¤­¤Þ¤¹).
+
+ * MTA ¤òºÆµ¯Æ°¤·¤Þ¤¹ (Ëô¤Ï, 127.0.0.1 °Ê³°¤âÀܳ¤òµö²Ä¤·¤Þ¤¹).
+
+2.0 ¤«¤é 2.0.x ¤Ø¤Î¹¹¿· (⤷, x >= 1)
+
+ ¹¹¿·¤ÎºÝ¤Î "make install" °Ê³°¤Ï²¿¤âɬÍפ¢¤ê¤Þ¤»¤ó.
+
+°Ê²¼Î¬. ±Ñ¸ìÈǤΠUPGRADING ¤ò¸«¤Æ¤¯¤À¤µ¤¤.(Ìõ¼Ô)
diff --git a/messages/ko/LC_MESSAGES/mailman.mo b/messages/ko/LC_MESSAGES/mailman.mo
new file mode 100644
index 00000000..8d239347
--- /dev/null
+++ b/messages/ko/LC_MESSAGES/mailman.mo
Binary files differ
diff --git a/messages/ko/LC_MESSAGES/mailman.po b/messages/ko/LC_MESSAGES/mailman.po
new file mode 100644
index 00000000..3ce00ac7
--- /dev/null
+++ b/messages/ko/LC_MESSAGES/mailman.po
@@ -0,0 +1,9528 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR ORGANIZATION
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: Tue Dec 24 13:41:28 2002\n"
+"PO-Revision-Date: 2002-03-28 19:21+09:00\n"
+"Last-Translator: Hyejin Soang, Wongyo Jung<redcloak@igrus.inha.ac.kr, "
+"andsoon@igrus.inha.ac.kr>\n"
+"Language-Team: Korean <igrus@igrus.inha.ac.kr>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=EUC-KR\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.4\n"
+
+#: Mailman/Archiver/HyperArch.py:112
+#, fuzzy
+msgid "size not available"
+msgstr "ÀÌ¿ëÇÒ ¼ö ¾ø¼ü´Ï´Ù."
+
+#: Mailman/Archiver/HyperArch.py:118
+msgid " %(size)i bytes "
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:249 Mailman/Archiver/HyperArch.py:405
+#: Mailman/Archiver/HyperArch.py:963 Mailman/Archiver/HyperArch.py:1127
+msgid " at "
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:434
+msgid "Previous message:"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:456
+#, fuzzy
+msgid "Next message:"
+msgstr "¸Þ¼¼Áö¸¦ ±â·ÏÇմϱî?"
+
+#: Mailman/Archiver/HyperArch.py:609 Mailman/Archiver/HyperArch.py:645
+#, fuzzy
+msgid "thread"
+msgstr " ¾²·¹µå"
+
+#: Mailman/Archiver/HyperArch.py:610 Mailman/Archiver/HyperArch.py:646
+#, fuzzy
+msgid "subject"
+msgstr "Á¦¸ñ ¾øÀ½"
+
+#: Mailman/Archiver/HyperArch.py:611 Mailman/Archiver/HyperArch.py:647
+msgid "author"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:612 Mailman/Archiver/HyperArch.py:648
+#, fuzzy
+msgid "date"
+msgstr "³¯Â¥ ¾øÀ½"
+
+#: Mailman/Archiver/HyperArch.py:684
+msgid "<P>Currently, there are no archives. </P>"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:721
+msgid "Gzip'd Text%(sz)s"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:726
+msgid "Text%(sz)s"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:816
+#, fuzzy
+msgid "figuring article archives\n"
+msgstr "Ä«Å×°í¸® ±¸¼º"
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "April"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "February"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "January"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "March"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:827
+msgid "August"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:827
+msgid "July"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:827
+msgid "June"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:827 Mailman/i18n.py:91
+#, fuzzy
+msgid "May"
+msgstr "ÀÏ"
+
+#: Mailman/Archiver/HyperArch.py:828
+#, fuzzy
+msgid "December"
+msgstr "ȸ¿ø"
+
+#: Mailman/Archiver/HyperArch.py:828
+#, fuzzy
+msgid "November"
+msgstr "ȸ¿ø"
+
+#: Mailman/Archiver/HyperArch.py:828
+msgid "October"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:828
+#, fuzzy
+msgid "September"
+msgstr "ȸ¿ø"
+
+#: Mailman/Archiver/HyperArch.py:836
+#, fuzzy
+msgid "First"
+msgstr "¸ÞÀϸµ ¸®½ºÆ®"
+
+#: Mailman/Archiver/HyperArch.py:836
+msgid "Fourth"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:836
+msgid "Second"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:836
+#, fuzzy
+msgid "Third"
+msgstr "¼û±è"
+
+#: Mailman/Archiver/HyperArch.py:838
+msgid "%(ord)s quarter %(year)i"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:845
+msgid "%(month)s %(year)i"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:850
+msgid "The Week Of Monday %(day)i %(month)s %(year)i"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:854
+msgid "%(day)i %(month)s %(year)i"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:951
+msgid "Computing threaded index\n"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:1206
+#, fuzzy
+msgid "Updating HTML for article %(seq)s"
+msgstr "ÀúÀå¼Ò [%(archive)s] ¸¦ À§ÇÑ À妽º ÆÄÀÏÀ» ¾÷µ¥ÀÌÆ® ÁßÀÔ´Ï´Ù."
+
+#: Mailman/Archiver/HyperArch.py:1213
+msgid "article file %(filename)s is missing!"
+msgstr ""
+
+#: Mailman/Archiver/pipermail.py:168 Mailman/Archiver/pipermail.py:169
+msgid "No subject"
+msgstr "Á¦¸ñ ¾øÀ½"
+
+#: Mailman/Archiver/pipermail.py:269
+msgid "Creating archive directory "
+msgstr "ÀúÀå¼Ò¸¦ »ý¼ºÁßÀÔ´Ï´Ù."
+
+#: Mailman/Archiver/pipermail.py:281
+msgid "Reloading pickled archive state"
+msgstr "´Ù½Ã ÀúÀå¼Ò »óŸ¦ ºÒ·¯µéÀ̰í ÀÖ½À´Ï´Ù."
+
+#: Mailman/Archiver/pipermail.py:308
+msgid "Pickling archive state into "
+msgstr "ÀúÀå¼Ò »óŸ¦ ÀúÀåÁßÀÔ´Ï´Ù: "
+
+#: Mailman/Archiver/pipermail.py:419
+msgid "Updating index files for archive [%(archive)s]"
+msgstr "ÀúÀå¼Ò [%(archive)s] ¸¦ À§ÇÑ À妽º ÆÄÀÏÀ» ¾÷µ¥ÀÌÆ® ÁßÀÔ´Ï´Ù."
+
+#: Mailman/Archiver/pipermail.py:452
+msgid " Thread"
+msgstr " ¾²·¹µå"
+
+#: Mailman/Archiver/pipermail.py:557
+msgid "#%(counter)05d %(msgid)s"
+msgstr ""
+
+#: Mailman/Bouncer.py:44
+#, fuzzy
+msgid "due to excessive bounces"
+msgstr "¹Ù¿î½º·Î ÀÎÇØ"
+
+#: Mailman/Bouncer.py:45
+#, fuzzy
+msgid "by yourself"
+msgstr "¹Ù¿î½º·Î ÀÎÇØ"
+
+#: Mailman/Bouncer.py:46
+#, fuzzy
+msgid "by the list administrator"
+msgstr "¸®½ºÆ® °ü¸®ÀÚ"
+
+#: Mailman/Bouncer.py:47 Mailman/Bouncer.py:232
+#: Mailman/Commands/cmd_set.py:182
+msgid "for unknown reasons"
+msgstr "¾Ë¼ö¾ø´Â ÀÌÀ¯·Î ÀÎÇØ"
+
+#: Mailman/Bouncer.py:179
+msgid "disabled"
+msgstr "¼öÇà ºÒ°¡"
+
+#: Mailman/Bouncer.py:184
+msgid "Bounce action notification"
+msgstr "¹Ù¿î½º ÇàÀ§ ¾Ë¸²"
+
+#: Mailman/Bouncer.py:239
+msgid " The last bounce received from you was dated %(date)s"
+msgstr ""
+
+#: Mailman/Bouncer.py:264 Mailman/Deliverer.py:126
+#: Mailman/Handlers/Acknowledge.py:44 Mailman/Handlers/CookHeaders.py:236
+#: Mailman/Handlers/Hold.py:214 Mailman/Handlers/Hold.py:249
+#: Mailman/Handlers/ToDigest.py:211 Mailman/ListAdmin.py:235
+msgid "(no subject)"
+msgstr "(Á¦¸ñ ¾øÀ½)"
+
+#: Mailman/Bouncer.py:266
+msgid "[No bounce details are available]"
+msgstr "[¹Ù¿î½º¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ¼³¸í ÀÌ¿ë ºÒ°¡.]"
+
+#: Mailman/Cgi/Auth.py:46
+msgid "Moderator"
+msgstr "µî·Ï°ü¸®ÀÚ"
+
+#: Mailman/Cgi/Auth.py:48
+msgid "Administrator"
+msgstr "°ü¸®ÀÚ"
+
+#: Mailman/Cgi/admin.py:70 Mailman/Cgi/admindb.py:89 Mailman/Cgi/confirm.py:55
+#: Mailman/Cgi/edithtml.py:67 Mailman/Cgi/listinfo.py:51
+#: Mailman/Cgi/options.py:71 Mailman/Cgi/private.py:98
+#: Mailman/Cgi/rmlist.py:64 Mailman/Cgi/roster.py:57
+#: Mailman/Cgi/subscribe.py:61
+msgid "No such list <em>%(safelistname)s</em>"
+msgstr "<em>%(safelistname)s</em> ¶ó´Â ¸ÞÀϸµ ¸®½ºÆ®°¡ Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù."
+
+#: Mailman/Cgi/admin.py:85 Mailman/Cgi/admindb.py:105
+#: Mailman/Cgi/edithtml.py:85 Mailman/Cgi/private.py:123
+msgid "Authorization failed."
+msgstr "Àμº ½ÇÆÐ"
+
+#: Mailman/Cgi/admin.py:175
+msgid ""
+"You have turned off delivery of both digest and\n"
+" non-digest messages. This is an incompatible state of\n"
+" affairs. You must turn on either digest delivery or\n"
+" non-digest delivery or your mailing list will basically be\n"
+" unusable."
+msgstr ""
+"´ç½ÅÀº ¹­À½¹è´Þ(Digest) ¿Í °³º°¹è´Þ(Non-Digest)\n"
+" ¸¦ ¸ðµÎ ¼±ÅÃÇÏÁö ¾ÊÀ¸¼ÌÀ¾´Ï´Ù. À̰ÍÀº ¸»µµ ¾ÊµÇ´Â »óȲÀÔ´Ï´Ù.\n"
+" ¹è´Þ ¹æ½Ä¿¡¼­ µÑ Áß Çϳª¸¦ ²À ¼±ÅÃÇϽñ⠹ٶø´Ï´Ù."
+
+#: Mailman/Cgi/admin.py:179 Mailman/Cgi/admin.py:185 Mailman/Cgi/admin.py:190
+#: Mailman/Cgi/admin.py:1361 Mailman/Gui/GUIBase.py:184
+msgid "Warning: "
+msgstr "°æ°í: "
+
+#: Mailman/Cgi/admin.py:183
+msgid ""
+"You have digest members, but digests are turned\n"
+" off. Those people will not receive mail."
+msgstr ""
+"´ç½ÅÀº ¹­À½¹è´Þ(Digest) ȸ¿øÀÔ´Ï´Ù.\n"
+" ÇÏÁö¸¸ ¹­À½¹è´Þ(Digest) ±â´ÉÀÌ ¼±ÅõǾî ÀÖÁö ¾Ê½À´Ï´Ù.\n"
+" ÀÌ·² °æ¿ì ÆíÁö¸¦ ¸ø¹Þ°Ô µË´Ï´Ù."
+
+#: Mailman/Cgi/admin.py:188
+msgid ""
+"You have regular list members but non-digestified mail is\n"
+" turned off. They will receive mail until you fix this\n"
+" problem."
+msgstr ""
+"´ç½ÅÀº °³º°¹è´Þ(Non-Digest) ȸ¿øÀÔ´Ï´Ù.\n"
+" ÇÏÁö¸¸ °³º°¹è´Þ(Non-Digest)±â´ÉÀÌ ¼±ÅõǾî ÀÖÁö ¾Ê½À´Ï´Ù.\n"
+" ´ç½ÅÀÌ ÀÌ ¹®Á¦¸¦ °íÄ¡Áö ¾ÊÀ¸¸é °ü¸®ÀÚ¸¦ ±«·ÓÈ÷°Ô µË´Ï´Ù."
+
+#: Mailman/Cgi/admin.py:212
+msgid "%(hostname)s mailing lists - Admin Links"
+msgstr "%(hostname)s ¸ÞÀϸµ ¸®½ºµé - °ü¸® ºÎºÐ ¸µÅ©"
+
+#: Mailman/Cgi/admin.py:241 Mailman/Cgi/listinfo.py:97
+msgid "Welcome!"
+msgstr "ȯ¿µÇÕ´Ï´Ù! ºÎ~~ÀÚ µÇ¼¼¿ä. ^^"
+
+#: Mailman/Cgi/admin.py:244 Mailman/Cgi/listinfo.py:100
+msgid "Mailman"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:248
+msgid ""
+"<p>There currently are no publicly-advertised %(mailmanlink)s\n"
+" mailing lists on %(hostname)s."
+msgstr ""
+"<p>ÇöÀç %(hostname)s »ó¿¡´Â °ø°³ÀûÀ¸·Î ¼±ÀüµÈ %(mailmanlink)s\n"
+"\t ¸ÞÀϸµ ¸®½ºÆ®°¡ ¾ø½À´Ï´Ù."
+
+#: Mailman/Cgi/admin.py:254
+msgid ""
+"<p>Below is the collection of publicly-advertised\n"
+" %(mailmanlink)s mailing lists on %(hostname)s. Click on a list\n"
+" name to visit the configuration pages for that list."
+msgstr ""
+"<p>¾Æ·¡ ¸ÞÀϸµ ¸®½ºÆ®µéÀº %(hostname)s »ó¿¡¼­ °ø°³ÀûÀ¸·Î ¼±ÀüµÈ\n"
+"%(mailmanlink)s ¸ÞÀϸµ ¸®½ºÆ®ÀÇ ¸ðÀ½ÀÔ´Ï´Ù. ¸®½ºÆ®¿¡ ´ëÇÑ ¼³Á¤ ÆäÀÌÁö¸¦\n"
+"¹æ¹®ÇϽǷÁ¸é ¸ÞÀϸµ ¸®½ºÆ® À̸§À» Ŭ¸¯ ÇϽñ⠹ٶø´Ï´Ù. "
+
+#: Mailman/Cgi/admin.py:261
+msgid "right "
+msgstr "¿Ã¹Ù¸¥ "
+
+#: Mailman/Cgi/admin.py:263
+msgid ""
+"To visit the administrators configuration page for an\n"
+" unadvertised list, open a URL similar to this one, but with a '/' "
+"and\n"
+" the %(extra)slist name appended. If you have the proper authority,\n"
+" you can also <a href=\"%(creatorurl)s\">create a new mailing list</"
+"a>.\n"
+"\n"
+" <p>General list information can be found at "
+msgstr ""
+"¼±ÀüµÇÁö ¾ÊÀº ¸ÞÀϸµ ¸®½ºÆ® ¼³Á¤ ÆäÀÌÁö¸¦ °ü¸®ÀÚ°¡ Á¢±ÙÇÒ·Á¸é\n"
+"ÀÌ¿Í ºñ½ÁÇÑ ¹æ¹ýÀ¸·Î URL À» ¿©½Ê½Ã¿À.\n"
+"ÇÏÁö¸¸ '/' ¸¦ ºÙ¿©¼­ ÀÔ·ÂÇϽʽÿÀ. ±×·³ %(extra)s ¸®½ºÆ®°¡ º¸ÀϰÍÀÔ´Ï´Ù.¸¸¾à "
+"´ç½ÅÀÌ ¸Â´Â È®ÀÏ ÀýÂ÷¸¦ Åë°úÇϽøé \n"
+"<a href=\"%(creatorurl)s\">»õ·Î¿î ¸ÞÀϸµ ¸®½ºÆ®</a>¸¦ ¸¸µé ¼ö ÀÖ½À´Ï´Ù.\n"
+"<p>ÀÏ¹Ý ¸®½ºÆ® Á¤º¸´Â ´ÙÀ½¿¡¼­ ãÀ¸½Ç ¼ö ÀÖ½À´Ï´Ù: "
+
+#: Mailman/Cgi/admin.py:270
+msgid "the mailing list overview page"
+msgstr "¸ÞÀϸµ ¸®½ºÆ® ¼Ò°³ ÆäÀÌÁö"
+
+#: Mailman/Cgi/admin.py:272
+msgid "<p>(Send questions and comments to "
+msgstr "<p>(Áú¹®°ú °ÇÀÇ´Â ´ÙÀ½ ÁÖ¼Ò·Î º¸³»ÁֽʽÿÀ: "
+
+#: Mailman/Cgi/admin.py:282 Mailman/Cgi/listinfo.py:132 cron/mailpasswds:179
+msgid "List"
+msgstr "¸ÞÀϸµ ¸®½ºÆ®"
+
+#: Mailman/Cgi/admin.py:283 Mailman/Cgi/admin.py:549
+#: Mailman/Cgi/listinfo.py:133
+msgid "Description"
+msgstr "¼³¸í"
+
+#: Mailman/Cgi/admin.py:289 Mailman/Cgi/listinfo.py:139 bin/list_lists:116
+msgid "[no description available]"
+msgstr "[¼³¸íÀÌ ¾ø½À´Ï´Ù.]"
+
+#: Mailman/Cgi/admin.py:322
+msgid "No valid variable name found."
+msgstr "À̸§À» ãÀ» ¼ö ¾ø½À´Ï´Ù."
+
+#: Mailman/Cgi/admin.py:332
+msgid ""
+"%(realname)s Mailing list Configuration Help\n"
+" <br><em>%(varname)s</em> Option"
+msgstr ""
+"%(realname)s ¸ÞÀϸµ ¸®½ºÆ® °ü¸® µµ¿ò¸»\n"
+" <br><em>%(varname)s</em> ¼³Á¤"
+
+#: Mailman/Cgi/admin.py:339
+msgid "Mailman %(varname)s List Option Help"
+msgstr "Mailman %(varname)s ¸ÞÀϸµ ¸®½ºÆ® ¼³Á¤ µµ¿ò¸»"
+
+#: Mailman/Cgi/admin.py:357
+msgid ""
+"<em><strong>Warning:</strong> changing this option here\n"
+" could cause other screens to be out-of-sync. Be sure to reload any "
+"other\n"
+" pages that are displaying this option for this mailing list. You can "
+"also\n"
+" "
+msgstr ""
+"<em><strong>°æ°í:</strong> ÀÌ È­¸é¿¡¼­ ¿É¼ÇÀ» ¹Ù²ÞÀ¸·Î ÀÎÇØ\n"
+" ´Ù¸¥ È­¸éµéÀ» ¸øº¸´Â Çö»óÀ» °æÇèÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·² ½Ã¿¡ ¸ÞÀϸµ ¸®½ºÆ®"
+"ÀÇ ¿É¼Ç È­¸éÀ» º¼ ¼ö ÀÖ°Ô ´Ù½ÃÀб⸦ ÇϽñ⠹ٶø´Ï´Ù. ¶ÇÇÑ ¿©·¯ºÐÀº "
+
+#: Mailman/Cgi/admin.py:368
+#, fuzzy
+msgid "return to the %(categoryname)s options page."
+msgstr "%(category)s ¼³Á¤ ÆäÀÌÁö·Î µ¹¾Æ°¡½Ç ¼ö ÀÖ½À´Ï´Ù."
+
+#: Mailman/Cgi/admin.py:383
+msgid "%(realname)s Administration (%(label)s)"
+msgstr "%(realname)s °ü¸® (%(label)s)"
+
+#: Mailman/Cgi/admin.py:384
+msgid "%(realname)s mailing list administration<br>%(label)s Section"
+msgstr "%(realname)s ¸ÞÀϸµ ¸®½ºÆ® °ü¸®<br>%(label)s ¼½¼Ç"
+
+#: Mailman/Cgi/admin.py:400
+msgid "Configuration Categories"
+msgstr "Ä«Å×°í¸® ±¸¼º"
+
+#: Mailman/Cgi/admin.py:401
+msgid "Other Administrative Activities"
+msgstr "´Ù¸¥ °ü¸®»óÀÇ È°µ¿"
+
+#: Mailman/Cgi/admin.py:405
+msgid "Tend to pending moderator requests"
+msgstr "ÀÏ¹Ý »ç¿ëÀÚ ¿äû(°ü¸®»óÀÇ) È®ÀÎ"
+
+#: Mailman/Cgi/admin.py:407
+msgid "Go to the general list information page"
+msgstr "¸ÞÀϸµ ¸ÞÀÎ ÆäÀÌÁö °¡±â"
+
+#: Mailman/Cgi/admin.py:409
+msgid "Edit the public HTML pages"
+msgstr "°ø°ø ÆäÀÌÁö ¼öÁ¤Çϱâ"
+
+#: Mailman/Cgi/admin.py:411
+msgid "Go to list archives"
+msgstr "¸ÞÀϸµ ÀúÀå¼Ò °¡±â"
+
+#: Mailman/Cgi/admin.py:417
+msgid "Delete this mailing list"
+msgstr "ÀÌ ¸ÞÀϸµ ¸®½ºÆ® »èÁ¦Çϱâ"
+
+#: Mailman/Cgi/admin.py:418
+msgid " (requires confirmation)<br>&nbsp;<br>"
+msgstr " (ÀÎÁõ ÇÊ¿ä)<br>&nbsp;<br>"
+
+#: Mailman/Cgi/admin.py:424
+msgid "Logout"
+msgstr "·Î±×¾Æ¿ô"
+
+#: Mailman/Cgi/admin.py:468
+#, fuzzy
+msgid "Emergency moderation of all list traffic is enabled"
+msgstr "¸ðµç ¸®½ºÆ® ±Û¿¡ ´ëÇØ ±ä±Þ ±Û°ü¸® ¸ðµå·Î Àüȯ"
+
+#: Mailman/Cgi/admin.py:479
+msgid ""
+"Make your changes in the following section, then submit them\n"
+" using the <em>Submit Your Changes</em> button below."
+msgstr ""
+"¼³Á¤À» º¯°æÇϽŠÈÄ ¾Æ·¡¿¡ ÀÖ´Â <em>¼³Á¤ º¯°æ</em> ¹öưÀ» ²À ´­·¯ Áֽñ⠹ٶø"
+"´Ï´Ù."
+
+#: Mailman/Cgi/admin.py:497
+msgid "Additional Member Tasks"
+msgstr "Ãß°¡ ȸ¿ø ÀÛ¾÷"
+
+#: Mailman/Cgi/admin.py:503
+msgid ""
+"<li>Set everyone's moderation bit, including\n"
+" those members not currently visible"
+msgstr "<li>ÇöÀç º¸ÀÌÁö ¾Ê´Â ȸ¿øÀ» Æ÷ÇÔÇØ¼­ ¸ðµç ȸ¿ø ¼öÁ¤ ¸ðµå Äѱâ"
+
+#: Mailman/Cgi/admin.py:507
+msgid "Off"
+msgstr "¾Æ´Ï¿ä"
+
+#: Mailman/Cgi/admin.py:507
+msgid "On"
+msgstr "¿¹"
+
+#: Mailman/Cgi/admin.py:509
+msgid "Set"
+msgstr "¼³Á¤"
+
+#: Mailman/Cgi/admin.py:550
+msgid "Value"
+msgstr "°ª"
+
+#: Mailman/Cgi/admin.py:604
+msgid ""
+"Badly formed options entry:\n"
+" %(record)s"
+msgstr ""
+"À߸øµÈ ¼³Á¤ °ª:\n"
+" %(record)s"
+
+#: Mailman/Cgi/admin.py:662
+msgid "<em>Enter the text below, or...</em><br>"
+msgstr "<em>ÀÔ·ÂÇÏ½Ç ³»¿ëÀ» ÀÔ·ÂÇϽʽÿÀ...</em><br>"
+
+#: Mailman/Cgi/admin.py:664
+msgid "<br><em>...specify a file to upload</em><br>"
+msgstr "<br><em>... ¾÷·ÎµåÇÏ½Ç ÆÄÀÏÀ» ¼±ÅÃÇÏ¿© ÁֽʽÿÀ.</em><br>"
+
+#: Mailman/Cgi/admin.py:690 Mailman/Cgi/admin.py:693
+msgid "Topic %(i)d"
+msgstr "ÁÖÁ¦ %(i)d"
+
+#: Mailman/Cgi/admin.py:694
+msgid "Delete"
+msgstr "»èÁ¦"
+
+#: Mailman/Cgi/admin.py:695
+msgid "Topic name:"
+msgstr "ÁÖÁ¦ À̸§:"
+
+#: Mailman/Cgi/admin.py:697
+msgid "Regexp:"
+msgstr "Á¤±ÔÇ¥Çö½Ä:"
+
+#: Mailman/Cgi/admin.py:700 Mailman/Cgi/options.py:943
+msgid "Description:"
+msgstr "¼³¸í:"
+
+#: Mailman/Cgi/admin.py:704
+msgid "Add new item..."
+msgstr "»õ ¾ÆÀÌÅÛ Ãß°¡..."
+
+#: Mailman/Cgi/admin.py:706
+msgid "...before this one."
+msgstr "...Àü¿¡."
+
+#: Mailman/Cgi/admin.py:707
+msgid "...after this one."
+msgstr "...ÈÄ¿¡."
+
+#: Mailman/Cgi/admin.py:742
+#, fuzzy
+msgid "<br>(Edit <b>%(varname)s</b>)"
+msgstr "<br>(<b>%(varname)s</b> »ó¼¼¼³¸í)"
+
+#: Mailman/Cgi/admin.py:744
+msgid "<br>(Details for <b>%(varname)s</b>)"
+msgstr "<br>(<b>%(varname)s</b> »ó¼¼¼³¸í)"
+
+#: Mailman/Cgi/admin.py:751
+msgid ""
+"<br><em><strong>Note:</strong>\n"
+" setting this value performs an immediate action but does not modify\n"
+" permanent state.</em>"
+msgstr ""
+"<br><em><strong>Âü°í:</strong> ÀÌ °ªÀ» ¼¼ÆÃÇÔÀ¸·Î½á Áï°¢ÀûÀ¸·Î ½ÇÇàÇÒ\n"
+"¼ö ÀÖÀ¸³ª, ¿µ±¸ÀûÀ¸·Î »óŰ¡ À¯ÁöµÇ´Â °ÍÀº ¾Æ´Õ´Ï´Ù.</em>"
+
+#: Mailman/Cgi/admin.py:765
+msgid "Mass Subscriptions"
+msgstr "´ë±Ô¸ð °¡ÀÔ½Ã۱â"
+
+#: Mailman/Cgi/admin.py:772
+msgid "Mass Removals"
+msgstr "´ë±Ô¸ð Å»Åð½Ã۱â"
+
+#: Mailman/Cgi/admin.py:779
+msgid "Membership List"
+msgstr "ȸ¿ø ¸ñ·Ï"
+
+#: Mailman/Cgi/admin.py:786
+msgid "(help)"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:787
+msgid "Find member %(link)s:"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:790
+msgid "Search..."
+msgstr "°Ë»ö..."
+
+#: Mailman/Cgi/admin.py:805
+msgid "Bad regular expression: "
+msgstr "À߸øµÈ Á¤±Ô Ç¥Çö½Ä: "
+
+#: Mailman/Cgi/admin.py:861
+msgid "%(allcnt)s members total, %(membercnt)s shown"
+msgstr "ȸ¿ø ÃÑ ¼ö : %(allcnt)s ¸í, º¼ ¼ö Àִ ȸ¿ø : %(membercnt)s ¸í"
+
+#: Mailman/Cgi/admin.py:864
+msgid "%(allcnt)s members total"
+msgstr "ȸ¿ø ÃÑ %(allcnt)s ¸í"
+
+#: Mailman/Cgi/admin.py:887
+msgid "unsub"
+msgstr "Å»Åð"
+
+#: Mailman/Cgi/admin.py:888
+msgid "member address<br>member name"
+msgstr "ȸ¿ø ÁÖ¼Ò<br>ȸ¿ø À̸§"
+
+#: Mailman/Cgi/admin.py:889
+msgid "hide"
+msgstr "¼û±è"
+
+#: Mailman/Cgi/admin.py:889
+msgid "mod"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:890
+msgid "nomail<br>[reason]"
+msgstr "¹è´Þ±ÝÁö<br>[ÀÌÀ¯]"
+
+#: Mailman/Cgi/admin.py:891
+msgid "ack"
+msgstr "È®Àοäû"
+
+#: Mailman/Cgi/admin.py:891
+msgid "not metoo"
+msgstr "³»±ÛÀÌ ½È¾î!"
+
+#: Mailman/Cgi/admin.py:892
+msgid "nodupes"
+msgstr "Áߺ¹ÀÌ ½È¾î!"
+
+#: Mailman/Cgi/admin.py:893
+msgid "digest"
+msgstr "¹­¾î¼­ º¸³»Áà"
+
+#: Mailman/Cgi/admin.py:893
+msgid "plain"
+msgstr "Æò¹®"
+
+#: Mailman/Cgi/admin.py:894
+msgid "language"
+msgstr "¾ð¾î"
+
+#: Mailman/Cgi/admin.py:905
+msgid "?"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:906
+msgid "U"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:907
+msgid "A"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:908
+msgid "B"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:979
+msgid "<b>unsub</b> -- Click on this to unsubscribe the member."
+msgstr "<b>Å»Åð½Ã۱â</b> -- ȸ¿øÀ» Å»Åð½ÃŰ½Ç·Á¸é Ŭ¸¯Çϼ¼¿ä."
+
+#: Mailman/Cgi/admin.py:981
+msgid ""
+"<b>mod</b> -- The user's personal moderation flag. If this is\n"
+" set, postings from them will be moderated, otherwise they will be\n"
+" approved."
+msgstr ""
+"<b>¼öÁ¤</b> -- »ç¿ëÀÚÀÇ °³ÀÎ ±Û°ü¸® ±âÈ£ÀÔ´Ï´Ù. ¸¸¾à À̰ÍÀÌ ¼³Á¤\n"
+"\tµÇ¾î ÀÖ´Ù¸é ¸®½ºÆ®·Î ºÎÅÍ ¿À´Â ±ÛÀº ±Û°ü¸® µÉ°ÍÀ̸ç, ±×·¸Áö ¾Ê´Ù¸é\n"
+"\t½ÂÀεǾî Áú °ÍÀÔ´Ï´Ù."
+
+#: Mailman/Cgi/admin.py:985
+msgid ""
+"<b>hide</b> -- Is the member's address concealed on\n"
+" the list of subscribers?"
+msgstr "<b>¼û±è</b> -- °¡ÀÔÀÚ ¸ñ·Ï¿¡¼­ ȸ¿øÀÇ ÁÖ¼Ò°¡ ¼û°ÜÁú °ÍÀԴϱî?"
+
+#: Mailman/Cgi/admin.py:987
+msgid ""
+"<b>nomail</b> -- Is delivery to the member disabled? If so, an\n"
+" abbreviation will be given describing the reason for the disabled\n"
+" delivery:\n"
+" <ul><li><b>U</b> -- Delivery was disabled by the user via their\n"
+" personal options page.\n"
+" <li><b>A</b> -- Delivery was disabled by the list\n"
+" administrators.\n"
+" <li><b>B</b> -- Delivery was disabled by the system due to\n"
+" excessive bouncing from the member's address.\n"
+" <li><b>?</b> -- The reason for disabled delivery isn't "
+"known.\n"
+" This is the case for all memberships which were "
+"disabled\n"
+" in older versions of Mailman.\n"
+" </ul>"
+msgstr ""
+"<b>¸ÞÀϱÝÁö</b> -- Àá±ñ µ¿¾È ¹è´Þ(¿¹¸¦ µé¸é ¹æÇе¿¾È)À» ¸øÇÏ°Ô ÇØ³õ¾Ò½À´Ï"
+"±î?\n"
+"¸¸¾à ±×·¸°Ô ÇÏ½Å´Ù¸é ¹è´Þ ±ÝÁöÀÇ ÀÌÀ¯ Áß ¾Æ·¡¿¡ ¸Â´Â °ÍÀ» ¼±ÅÃÇÏ¿© ÁֽʽÃ"
+"¿À:\n"
+" <ul><li><b>U</b> -- °³ÀÎ ¼³Á¤ ÆäÀÌÁö¸¦ ÅëÇØ »ç¿ëÀÚ°¡ ¹è´Þ±ÝÁö¸¦ ¼³Á¤ÇÏ¿´½À´Ï"
+"´Ù.\n"
+" <li><b>A</b> -- ¸ÞÀϸµ ¸®½ºÆ® °ü¸®ÀÚ°¡ ¹è´Þ±ÝÁö¸¦ ¼³Á¤ÇÏ¿´½À´Ï´Ù.\n"
+" <li><b>B</b> -- ȸ¿øÀÇ ÁÖ¼Ò·Î ÀÎÇÑ ¹Ù¿î½º ¶§¹®¿¡ ½Ã½ºÅÛÀÌ ¹è´Þ±ÝÁö¸¦ ¼³Á¤ÇÏ"
+"¿´½À´Ï´Ù.\n"
+" <li><b>?</b> -- ¹è´Þ ±ÝÁöµÈ ÀÌÀ¯¸¦ ¾Ë ¼ö ¾ø½À´Ï´Ù. À̰ÍÀº Mailman ÀÇ ¿À·¡µÈ"
+"¹öÀüÀÇ ¸ðµç ȸ¿ø °ü¸®¿¡¼­ ÀÏ¾î ³¯ ¼ö ÀÖ½À´Ï´Ù.\n"
+" </ul>"
+
+#: Mailman/Cgi/admin.py:1002
+msgid ""
+"<b>ack</b> -- Does the member get acknowledgements of their\n"
+" posts?"
+msgstr "<b>È®Àοäû</b> -- ȸ¿øÀÌ ±×µéÀÇ Æ÷½ºÆÃ±Û¿¡ ´ëÇÑ µµÂø ÅëÁö¸¦ ¿øÇϴ°¡?"
+
+#: Mailman/Cgi/admin.py:1005
+msgid ""
+"<b>not metoo</b> -- Does the member want to avoid copies of their\n"
+" own postings?"
+msgstr "<b>³»±ÛÀÌ ½È¾î!</b> -- ±×µé ÀÚ½ÅÀÇ ±ÛÀÌ ¹è´ÞµÇ´Â °ÍÀ» ÇÇÇϴ°¡?"
+
+#: Mailman/Cgi/admin.py:1008
+msgid ""
+"<b>nodupes</b> -- Does the member want to avoid duplicates of the\n"
+" same message?"
+msgstr "<b>Áߺ¹ÀÌ ½È¾î!</b> -- °°Àº ¸Þ¼¼ÁöÀÇ Áߺ¹À» ÇÇÇÒ °ÍÀΰ¡?"
+
+#: Mailman/Cgi/admin.py:1011
+msgid ""
+"<b>digest</b> -- Does the member get messages in digests?\n"
+" (otherwise, individual messages)"
+msgstr ""
+"<b>¹­¾î¼­ º¸³»Áà</b> -- ±ÛµéÀ» ¹­¾î¼­ ¹Þ¾Æº¸±â¸¦ ¿øÇϴ°¡?\n"
+" (¼³Á¤ÇÏÁö ¾Ê´Â´Ù¸é, ÇѰ³¾¿ º¸³½´Ù.)"
+
+#: Mailman/Cgi/admin.py:1014
+msgid ""
+"<b>plain</b> -- If getting digests, does the member get plain\n"
+" text digests? (otherwise, MIME)"
+msgstr ""
+"<b>Æò¹®</b> -- Digest(¹­¾î º¸³»±â) ·Î ¼³Á¤µÇ¾î ÀÖ´Ù¸é, Digest(¹­¾î º¸³»±â) "
+"¸¦ Æò¹®À¸·Î ¹Þ±â¸¦ ¿øÇϴ°¡? (±×·¸Áö ¾ÊÀ¸¸é, MIME Çü½Ä)"
+
+#: Mailman/Cgi/admin.py:1016
+msgid "<b>language</b> -- Language preferred by the user"
+msgstr "<b>¾ð¾î</b> -- »ç¿ëÀÚ°¡ »ç¿ëÇÏ´Â ¾ð¾î"
+
+#: Mailman/Cgi/admin.py:1030
+msgid "Click here to hide the legend for this table."
+msgstr "ÀÌ Å×À̺íÀÇ À϶÷Ç¥¸¦ ¼û±â½Ç·Á¸é ¿©±æ Ŭ¸¯Çϼ¼¿ä."
+
+#: Mailman/Cgi/admin.py:1034
+msgid "Click here to include the legend for this table."
+msgstr "ÀÌ Å×À̺íÀÇ À϶÷Ç¥¸¦ Æ÷ÇÔÇϽǷÁ¸é ¿©±æ Ŭ¸¯Çϼ¼¿ä."
+
+#: Mailman/Cgi/admin.py:1041
+msgid ""
+"<p><em>To view more members, click on the appropriate\n"
+" range listed below:</em>"
+msgstr ""
+"<p><em>´Ù¸¥ ¼½¼ÇÀ» º¸½Ã±â À§Çؼ­, ¾Æ·¡¿¡ ³ª¿­µÈ ¹üÀ§Áß Àû´çÇÑ °ÍÀ» Ŭ¸¯Çϼ¼"
+"¿ä.</em>"
+
+#: Mailman/Cgi/admin.py:1050
+msgid "from %(start)s to %(end)s"
+msgstr "%(start)s ¿¡¼­ %(end)s ±îÁö"
+
+#: Mailman/Cgi/admin.py:1063
+msgid "Subscribe these users now or invite them?"
+msgstr "ÇöÀç »ç¿ëÀÚµéÀ» ¹Ù·Î °¡ÀÔ½ÃŰ°Å³ª ÃÊ´ë ÇÒ±î¿ä?"
+
+#: Mailman/Cgi/admin.py:1065
+msgid "Invite"
+msgstr "ÃÊ´ëÇϱâ"
+
+#: Mailman/Cgi/admin.py:1065 Mailman/Cgi/listinfo.py:175
+msgid "Subscribe"
+msgstr "°¡ÀÔÇϱâ"
+
+#: Mailman/Cgi/admin.py:1071
+msgid "Send welcome messages to new subscribees?"
+msgstr "¿©±â¼­ °¡ÀÔµÈ È¸¿øµé¿¡°Ô ȯ¿µ ¸ÞÀÏÀ» º¸³¾ °ÍÀΰ¡?"
+
+#: Mailman/Cgi/admin.py:1073 Mailman/Cgi/admin.py:1082
+#: Mailman/Cgi/admin.py:1115 Mailman/Cgi/admin.py:1123
+#: Mailman/Cgi/confirm.py:271 Mailman/Cgi/create.py:327
+#: Mailman/Cgi/create.py:355 Mailman/Cgi/create.py:395
+#: Mailman/Cgi/rmlist.py:228 Mailman/Gui/Archive.py:33
+#: Mailman/Gui/Autoresponse.py:54 Mailman/Gui/Autoresponse.py:62
+#: Mailman/Gui/Autoresponse.py:71 Mailman/Gui/Bounce.py:77
+#: Mailman/Gui/Bounce.py:108 Mailman/Gui/Bounce.py:134
+#: Mailman/Gui/Bounce.py:143 Mailman/Gui/ContentFilter.py:70
+#: Mailman/Gui/ContentFilter.py:103 Mailman/Gui/Digest.py:46
+#: Mailman/Gui/Digest.py:62 Mailman/Gui/Digest.py:84 Mailman/Gui/Digest.py:89
+#: Mailman/Gui/General.py:148 Mailman/Gui/General.py:154
+#: Mailman/Gui/General.py:232 Mailman/Gui/General.py:259
+#: Mailman/Gui/General.py:286 Mailman/Gui/General.py:297
+#: Mailman/Gui/General.py:300 Mailman/Gui/General.py:310
+#: Mailman/Gui/General.py:315 Mailman/Gui/General.py:325
+#: Mailman/Gui/General.py:345 Mailman/Gui/General.py:373
+#: Mailman/Gui/General.py:396 Mailman/Gui/NonDigest.py:44
+#: Mailman/Gui/NonDigest.py:52 Mailman/Gui/Privacy.py:101
+#: Mailman/Gui/Privacy.py:107 Mailman/Gui/Privacy.py:140
+#: Mailman/Gui/Privacy.py:188 Mailman/Gui/Privacy.py:296
+#: Mailman/Gui/Privacy.py:309 Mailman/Gui/Usenet.py:50
+#: Mailman/Gui/Usenet.py:54 Mailman/Gui/Usenet.py:91 Mailman/Gui/Usenet.py:103
+msgid "No"
+msgstr "¾Æ´Ï¿ä"
+
+#: Mailman/Cgi/admin.py:1073 Mailman/Cgi/admin.py:1082
+#: Mailman/Cgi/admin.py:1115 Mailman/Cgi/admin.py:1123
+#: Mailman/Cgi/confirm.py:271 Mailman/Cgi/create.py:327
+#: Mailman/Cgi/create.py:355 Mailman/Cgi/create.py:395
+#: Mailman/Cgi/rmlist.py:228 Mailman/Gui/Archive.py:33
+#: Mailman/Gui/Autoresponse.py:54 Mailman/Gui/Autoresponse.py:62
+#: Mailman/Gui/Bounce.py:77 Mailman/Gui/Bounce.py:108
+#: Mailman/Gui/Bounce.py:134 Mailman/Gui/Bounce.py:143
+#: Mailman/Gui/ContentFilter.py:70 Mailman/Gui/ContentFilter.py:103
+#: Mailman/Gui/Digest.py:46 Mailman/Gui/Digest.py:62 Mailman/Gui/Digest.py:84
+#: Mailman/Gui/Digest.py:89 Mailman/Gui/General.py:148
+#: Mailman/Gui/General.py:154 Mailman/Gui/General.py:232
+#: Mailman/Gui/General.py:259 Mailman/Gui/General.py:286
+#: Mailman/Gui/General.py:297 Mailman/Gui/General.py:300
+#: Mailman/Gui/General.py:310 Mailman/Gui/General.py:315
+#: Mailman/Gui/General.py:325 Mailman/Gui/General.py:345
+#: Mailman/Gui/General.py:373 Mailman/Gui/General.py:396
+#: Mailman/Gui/NonDigest.py:44 Mailman/Gui/NonDigest.py:52
+#: Mailman/Gui/Privacy.py:101 Mailman/Gui/Privacy.py:107
+#: Mailman/Gui/Privacy.py:140 Mailman/Gui/Privacy.py:188
+#: Mailman/Gui/Privacy.py:296 Mailman/Gui/Privacy.py:309
+#: Mailman/Gui/Usenet.py:50 Mailman/Gui/Usenet.py:54 Mailman/Gui/Usenet.py:91
+#: Mailman/Gui/Usenet.py:103
+msgid "Yes"
+msgstr "¿¹"
+
+#: Mailman/Cgi/admin.py:1080
+msgid "Send notifications of new subscriptions to the list owner?"
+msgstr "¸ÞÀϸµ ¸®½ºÆ® ¼ÒÀ¯ÀÚ¿¡°Ô »õ °¡ÀÔ °ü·Ã °øÁö¸¦ º¸³¾ °ÍÀΰ¡?"
+
+#: Mailman/Cgi/admin.py:1088 Mailman/Cgi/admin.py:1129
+msgid "Enter one address per line below..."
+msgstr "ÁÙ(line)¿¡ ÇϳªÀÇ ÁÖ¼Ò¸¦ ³ÖÀ¸½Ê½Ã¿À..."
+
+#: Mailman/Cgi/admin.py:1093 Mailman/Cgi/admin.py:1134
+msgid "...or specify a file to upload:"
+msgstr "...ȤÀº ¾÷·ÎµåÇÒ ÆÄÀÏÀ» ÁöÁ¤Çϼ¼¿ä:"
+
+#: Mailman/Cgi/admin.py:1098
+msgid ""
+"Below, enter additional text to be added to the\n"
+" top of your invitation or the subscription notification. Include at "
+"least\n"
+" one blank line at the end..."
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1113
+msgid "Send unsubscription acknowledgement to the user?"
+msgstr "»ç¿ëÀÚ¿¡°Ô Å»Åð È®Àμ­¸¦ º¸³¾±î¿ä?"
+
+#: Mailman/Cgi/admin.py:1121
+msgid "Send notifications to the list owner?"
+msgstr "¸ÞÀϸµ ¸®½ºÆ® ¼ÒÀ¯ÀÚ¿¡°Ô °øÁö¸¦ º¸³¾±î¿ä?"
+
+#: Mailman/Cgi/admin.py:1143
+msgid "Change list ownership passwords"
+msgstr "¸ÞÀϸµ ¸®½ºÆ® ¼ÒÀ¯ÁÖÀÇ ÆÐ½º¿öµå¸¦ º¯°æÇÕ´Ï´Ù."
+
+#: Mailman/Cgi/admin.py:1146
+msgid ""
+"The <em>list administrators</em> are the people who have ultimate control "
+"over\n"
+"all parameters of this mailing list. They are able to change any list\n"
+"configuration variable available through these administration web pages.\n"
+"\n"
+"<p>The <em>list moderators</em> have more limited permissions; they are not\n"
+"able to change any list configuration variable, but they are allowed to "
+"tend\n"
+"to pending administration requests, including approving or rejecting held\n"
+"subscription requests, and disposing of held postings. Of course, the\n"
+"<em>list administrators</em> can also tend to pending requests.\n"
+"\n"
+"<p>In order to split the list ownership duties into administrators and\n"
+"moderators, you must set a separate moderator password in the fields below,\n"
+"and also provide the email addresses of the list moderators in the\n"
+"<a href=\"%(adminurl)s/general\">general options section</a>."
+msgstr ""
+"<em>¸ÞÀϸµ ¸®½ºÆ® °ü¸®ÀÚ</em>´Â ÀÌ ¸ÞÀϸµ ¸®½ºÆ®ÀÇ Àüü ¼³Á¤À» °ü¸®ÇÏ´Â\n"
+"»ç¶÷ÀÔ´Ï´Ù. ±×µéÀº °ü¸® À¥ ÆäÀÌÁö¸¦ ÅëÇØ ¾î¶² ¸ÞÀϸµ ¸®½ºÆ® °ü¸® º¯°æÀ»\n"
+"ÇÒ ¼ö ÀÖ½À´Ï´Ù.\n"
+"\n"
+"<em>¸ÞÀϸµ ¸®½ºÆ® ±Û°ü¸®ÀÚ</em> ´Â Á¦ÇÑµÈ ±ÇÇÑÀ» °¡Áö°í Àִµ¥ ¾î´À ¸®½ºÆ®\n"
+"ÀÇ ¼³Á¤ º¯°æÀ» ÇÒ ¼ö ¾øÁö¸¸ °ü¸® ¿äûÀ» ±â´Ù¸®°í ÀÖ´Â ¾î¶² °Íµé¿¡ ´ëÇØ\n"
+"½ÂÀÎ, Á¦°Å, ¿¬±â µîµîÀ» ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¹°·Ð em>¸ÞÀϸµ ¸®½ºÆ® °ü¸®ÀÚ</em>\n"
+"¶ÇÇÑ ÀÌ¿Í °°ÀÌ ÇÒ ¼ö ÀÖ½À´Ï´Ù.\n"
+"\n"
+"°ü¸®ÀÚ¿Í ±Û°ü¸®ÀÚ·Î ¸®½ºÆ® ¼ÒÀ¯¸¦ ³ª´©±â À§Çؼ­ ´ç½ÅÀº ¾Æ·¡ÀÇ ÇÒ¸ñ¿¡ ºÐ¸®µÈ\n"
+"±Û°ü¸®ÀÚ ºñ¹Ð¹øÈ£¸¦ ¼³Á¤ÇØ¾ß ÇÏ¸ç ¶ÇÇÑ\n"
+"<a href=\"%(adminurl)s/general\">ÀÏ¹Ý ¼³Á¤ ºÎºÐ</a>¿¡ ±Û°ü¸®ÀÚÀÇ E¸ÞÀÏ ÁÖ¼Ò\n"
+"¸¦ ±âÀÔÇÏ¿©¾ß ÇÕ´Ï´Ù."
+
+#: Mailman/Cgi/admin.py:1165
+msgid "Enter new administrator password:"
+msgstr "»õ °ü¸®ÀÚÀÇ ºñ¹Ð¹øÈ£¸¦ ÀÔ·ÂÇϼ¼¿ä:"
+
+#: Mailman/Cgi/admin.py:1167
+#, fuzzy
+msgid "Confirm administrator password:"
+msgstr "°ü¸®ÀÚ ºñ¹Ð¹øÈ£¸¦ Çѹø ´õ ÀÔ·ÂÇϼ¼¿ä:"
+
+#: Mailman/Cgi/admin.py:1172
+msgid "Enter new moderator password:"
+msgstr "»õ ±Û°ü¸®ÀÚ ºñ¹Ð¹øÈ£¸¦ ÀÔ·ÂÇϼ¼¿ä:"
+
+#: Mailman/Cgi/admin.py:1174
+msgid "Confirm moderator password:"
+msgstr "±Û°ü¸®ÀÚ ºñ¹Ð¹øÈ£¸¦ Çѹø ´õ ÀÔ·ÂÇϼ¼¿ä:"
+
+#: Mailman/Cgi/admin.py:1184
+msgid "Submit Your Changes"
+msgstr "¼³Á¤ º¯°æ"
+
+#: Mailman/Cgi/admin.py:1207
+msgid "Moderator passwords did not match"
+msgstr "±Û°ü¸®ÀÚ ºñ¹Ð¹øÈ£°¡ ¼­·Î ¸ÂÁö ¾Ê½À´Ï´Ù."
+
+#: Mailman/Cgi/admin.py:1217
+#, fuzzy
+msgid "Administrator passwords did not match"
+msgstr "°ü¸®ÀÚ ºñ¹Ð¹øÈ£°¡ ¼­·Î ¸ÂÁö ¾Ê½À´Ï´Ù."
+
+#: Mailman/Cgi/admin.py:1265
+msgid "Already a member"
+msgstr "ÀÌ¹Ì È¸¿øÀÔ´Ï´Ù."
+
+#: Mailman/Cgi/admin.py:1268
+msgid "&lt;blank line&gt;"
+msgstr "&lt;°ø¹é ÁÙ&gt;"
+
+#: Mailman/Cgi/admin.py:1269 Mailman/Cgi/admin.py:1272
+msgid "Bad/Invalid email address"
+msgstr "À߸øµÈ/¾ø´Â E¸ÞÀÏ ÁÖ¼Ò"
+
+#: Mailman/Cgi/admin.py:1275
+msgid "Hostile address (illegal characters)"
+msgstr "¾ÇÀÇÀûÀÎ ÁÖ¼ÒÀÔ´Ï´Ù. (Çã¿ëµÇÁö ¾Ê´Â ¹®ÀÚ¸¦ »ç¿ë>ÇÕ´Ï´Ù.)"
+
+#: Mailman/Cgi/admin.py:1281
+msgid "Successfully invited:"
+msgstr "¼º°øÀûÀ¸·Î ÃÊ´ëµÈ ¸í´Ü:"
+
+#: Mailman/Cgi/admin.py:1283
+msgid "Successfully subscribed:"
+msgstr "¼º°øÀûÀ¸·Î °¡ÀÔµÈ ¸í´Ü:"
+
+#: Mailman/Cgi/admin.py:1288
+msgid "Error inviting:"
+msgstr "ÃÊ´ë ¿¡·¯:"
+
+#: Mailman/Cgi/admin.py:1290
+msgid "Error subscribing:"
+msgstr "°¡ÀÔ ¿¡·¯:"
+
+#: Mailman/Cgi/admin.py:1319
+msgid "Successfully Unsubscribed:"
+msgstr "¼º°øÀûÀ¸·Î Å»ÅðµÈ ¸í´Ü:"
+
+#: Mailman/Cgi/admin.py:1324
+msgid "Cannot unsubscribe non-members:"
+msgstr "ºñȸ¿øÀ» Å»ÅðÇÒ ¼ö ¾ø½À´Ï´Ù:"
+
+#: Mailman/Cgi/admin.py:1336
+msgid "Bad moderation flag value"
+msgstr "À߸øµÈ ±Û°ü¸® ±âÈ£ÀÔ´Ï´Ù."
+
+#: Mailman/Cgi/admin.py:1357
+msgid "Not subscribed"
+msgstr "°¡ÀÔÀÌ µÇÁö ¾Ê¾Ò½À´Ï´Ù."
+
+#: Mailman/Cgi/admin.py:1360
+msgid "Ignoring changes to deleted member: %(user)s"
+msgstr "»èÁ¦ ¸í´Ü¿¡¼­ ¹«½ÃµÈ ȸ¿ø: %(user)s"
+
+#: Mailman/Cgi/admin.py:1400
+msgid "Successfully Removed:"
+msgstr "¼º°øÀûÀ¸·Î Á¦°ÅµÈ ¸í´Ü:"
+
+#: Mailman/Cgi/admin.py:1404
+msgid "Error Unsubscribing:"
+msgstr "Å»Åð ¿¡·¯:"
+
+#: Mailman/Cgi/admindb.py:159 Mailman/Cgi/admindb.py:167
+msgid "%(realname)s Administrative Database"
+msgstr "%(realname)s °ü¸® DB"
+
+#: Mailman/Cgi/admindb.py:162
+msgid "%(realname)s Administrative Database Results"
+msgstr "%(realname)s °ü¸® DB °á°ú¹°"
+
+#: Mailman/Cgi/admindb.py:170
+msgid "There are no pending requests."
+msgstr "´ë±âÁßÀÎ ¿äûÀÌ ¾ø½À´Ï´Ù."
+
+#: Mailman/Cgi/admindb.py:173
+#, fuzzy
+msgid "Click here to reload this page."
+msgstr "ÀÌ Å×À̺íÀÇ À϶÷Ç¥¸¦ ¼û±â½Ç·Á¸é ¿©±æ Ŭ¸¯Çϼ¼¿ä."
+
+#: Mailman/Cgi/admindb.py:184
+msgid "Detailed instructions for the administrative database"
+msgstr "°ü¸® DBÀÇ ÀÚ¼¼ÇÑ ¸í·Éµé"
+
+#: Mailman/Cgi/admindb.py:188
+msgid "Administrative requests for mailing list:"
+msgstr "ÀÌ ¸ÞÀϸµ ¸®½ºÆ®¿¡ ¿äûÇÑ °ü¸®³»¿ëµé:"
+
+#: Mailman/Cgi/admindb.py:191 Mailman/Cgi/admindb.py:234
+msgid "Submit All Data"
+msgstr "ÀÚ·á ó¸®Çϱâ"
+
+#: Mailman/Cgi/admindb.py:204
+msgid "all of %(esender)s's held messages."
+msgstr "%(esender)s ¿äûÀº °¡Áö°í ÀÖ½À´Ï´Ù."
+
+#: Mailman/Cgi/admindb.py:209
+msgid "a single held message."
+msgstr "1 °³ÀÇ À¯Áö ¸Þ¼¼Áö."
+
+#: Mailman/Cgi/admindb.py:214
+msgid "all held messages."
+msgstr "¸ðµç ¸Þ¼¼Áö´Â À¯ÁöµÇ¾ú½À´Ï´Ù."
+
+#: Mailman/Cgi/admindb.py:249
+msgid "Mailman Administrative Database Error"
+msgstr "Mailman °ü¸® DB ¿¡·¯"
+
+#: Mailman/Cgi/admindb.py:254
+msgid "list of available mailing lists."
+msgstr "ÀÌ¿ë °¡´ÉÇÑ ¸ÞÀϸµ ¸®½ºÆ® ¸ñ·Ï."
+
+#: Mailman/Cgi/admindb.py:255
+msgid "You must specify a list name. Here is the %(link)s"
+msgstr ""
+"¸ÞÀϸµ ¸®½ºÆ® À̸§À» ÁöÁ¤ÇØ ÁÖ¼Å¾ß ÇÕ´Ï´Ù. ¸ñ·ÏÀº %(link)s ¿©±âÀÖ½À´Ï´Ù."
+
+#: Mailman/Cgi/admindb.py:268
+msgid "Subscription Requests"
+msgstr "°¡ÀÔ °á°ú"
+
+#: Mailman/Cgi/admindb.py:270
+msgid "Address/name"
+msgstr "ÁÖ¼Ò/À̸§"
+
+#: Mailman/Cgi/admindb.py:271 Mailman/Cgi/admindb.py:320
+msgid "Your decision"
+msgstr "´ç½ÅÀÇ °áÁ¤"
+
+#: Mailman/Cgi/admindb.py:272 Mailman/Cgi/admindb.py:321
+msgid "Reason for refusal"
+msgstr "°ÅÀý ÀÌÀ¯"
+
+#: Mailman/Cgi/admindb.py:289 Mailman/Cgi/admindb.py:346
+#: Mailman/Cgi/admindb.py:389 Mailman/Cgi/admindb.py:612
+msgid "Defer"
+msgstr "¿¬±âÇϱâ"
+
+#: Mailman/Cgi/admindb.py:290 Mailman/Cgi/admindb.py:347
+#: Mailman/Cgi/admindb.py:612
+msgid "Approve"
+msgstr "½ÂÀÎÇϱâ"
+
+#: Mailman/Cgi/admindb.py:291 Mailman/Cgi/admindb.py:348
+#: Mailman/Cgi/admindb.py:389 Mailman/Cgi/admindb.py:612
+#: Mailman/Gui/ContentFilter.py:37 Mailman/Gui/Privacy.py:207
+#: Mailman/Gui/Privacy.py:281
+msgid "Reject"
+msgstr "°ÅÀýÇϱâ"
+
+#: Mailman/Cgi/admindb.py:292 Mailman/Cgi/admindb.py:349
+#: Mailman/Cgi/admindb.py:389 Mailman/Cgi/admindb.py:612
+#: Mailman/Gui/ContentFilter.py:37 Mailman/Gui/Privacy.py:207
+#: Mailman/Gui/Privacy.py:281
+msgid "Discard"
+msgstr "¹ö¸®±â"
+
+#: Mailman/Cgi/admindb.py:300
+msgid "Permanently ban from this list"
+msgstr "ÀÌ ¸ÞÀϸµ ¸®½ºÆ®¿¡¼­ ¿µ¿øÇÏ Ãß¹æÇϱâ"
+
+#: Mailman/Cgi/admindb.py:319
+msgid "User address/name"
+msgstr "»ç¿ëÀÚ E¸ÞÀÏÁÖ¼Ò/À̸§"
+
+#: Mailman/Cgi/admindb.py:359
+msgid "Unsubscription Requests"
+msgstr "Å»Åð ¿äûµé"
+
+#: Mailman/Cgi/admindb.py:382 Mailman/Cgi/admindb.py:596
+msgid "From:"
+msgstr "º¸³½ÀÌ:"
+
+#: Mailman/Cgi/admindb.py:385
+msgid "Action to take on all these held messages:"
+msgstr "´Ù¸¥ ¸Þ¼¼Áö¿¡ Àû¿ëÇÒ Çൿ:"
+
+#: Mailman/Cgi/admindb.py:389 Mailman/Gui/Privacy.py:281
+msgid "Accept"
+msgstr "¹ÞÀ̵éÀ̱â"
+
+#: Mailman/Cgi/admindb.py:397
+msgid "Preserve messages for the site administrator"
+msgstr "ÀÌ »çÀÌÆ® °ü¸®ÀÚ¸¦ À§ÇØ ¸Þ¼¼Áö º¸Á¸Çϱâ"
+
+#: Mailman/Cgi/admindb.py:403
+msgid "Forward messages (individually) to:"
+msgstr "(°³ÀÎÀûÀ¸·Î) ¸Þ¼¼Áö Àü´Þ:"
+
+#: Mailman/Cgi/admindb.py:421
+msgid "Clear this member's <em>moderate</em> flag"
+msgstr "ÀÌ »ç¿ëÀÚÀÇ <em>±Û°ü¸®</em> ±âÈ£ Áö¿ì±â"
+
+#: Mailman/Cgi/admindb.py:425
+msgid "<em>The sender is now a member of this list</em>"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:434
+msgid "Add <b>%(esender)s</b> to a sender filter"
+msgstr "º¸³½ÀÌ ¿©°ú±â¿¡ <b>%(esender)s</b> Ãß°¡Çϱâ"
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Accepts"
+msgstr "¹Þ¾ÆµéÀÓ"
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Discards"
+msgstr "¹ö¸®±â"
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Holds"
+msgstr "À¯ÁöÇϱâ"
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Rejects"
+msgstr "°ÅÀýÇϱâ"
+
+#: Mailman/Cgi/admindb.py:448
+msgid ""
+"Ban <b>%(esender)s</b> from ever subscribing to this\n"
+" mailing list"
+msgstr ""
+"<b>%(esender)s</b> °¡ º¸³½ ÀÌ ¸ÞÀϸµ ¸®½ºÆ® ´ëÇÑ ¸ðµç °¡ÀÔ ¿äûÀ»\n"
+"Ãß¹æÇϱâ"
+
+#: Mailman/Cgi/admindb.py:453
+msgid ""
+"Click on the message number to view the individual\n"
+" message, or you can "
+msgstr "°³ÀÎ ¸Þ¼¼Áö¸¦ º¸±âÀ§ÇØ ¸Þ¼¼Áö ¹øÈ£¸¦ Ŭ¸¯Çϼ¼¿ä."
+
+#: Mailman/Cgi/admindb.py:455
+msgid "view all messages from %(esender)s"
+msgstr "%(esender)s °¡ º¸³½ ¸ðµç ¸Þ¼¼Áö º¸±â"
+
+#: Mailman/Cgi/admindb.py:475 Mailman/Cgi/admindb.py:599
+msgid "Subject:"
+msgstr "Á¦¸ñ:"
+
+#: Mailman/Cgi/admindb.py:478
+msgid " bytes"
+msgstr " ¹ÙÀÌÆ®"
+
+#: Mailman/Cgi/admindb.py:478
+msgid "Size:"
+msgstr "Å©±â:"
+
+#: Mailman/Cgi/admindb.py:482 Mailman/Handlers/Decorate.py:50
+#: Mailman/Handlers/Scrubber.py:226 Mailman/Handlers/Scrubber.py:227
+msgid "not available"
+msgstr "ÀÌ¿ëÇÒ ¼ö ¾ø¼ü´Ï´Ù."
+
+#: Mailman/Cgi/admindb.py:483 Mailman/Cgi/admindb.py:601
+msgid "Reason:"
+msgstr "ÀÌÀ¯:"
+
+#: Mailman/Cgi/admindb.py:487 Mailman/Cgi/admindb.py:605
+#, fuzzy
+msgid "Received:"
+msgstr "¹­À½¹è´Þ(Digest) ·Î ¹ÞÀ»±î¿ä?"
+
+#: Mailman/Cgi/admindb.py:545
+msgid "Posting Held for Approval"
+msgstr "½ÂÀÎÀ» ±â´Ù¸®´Â ±Û"
+
+#: Mailman/Cgi/admindb.py:547
+msgid " (%(count)d of %(total)d)"
+msgstr " (%(total)d ÀÇ %(count)d)"
+
+#: Mailman/Cgi/admindb.py:558
+msgid "<em>Message with id #%(id)d was lost."
+msgstr "<em>ID #%(id)d ÀÎ ¸Þ¼¼Áö¸¦ Àоî¹ö·È½À´Ï´Ù."
+
+#: Mailman/Cgi/admindb.py:567
+msgid "<em>Message with id #%(id)d is corrupted."
+msgstr "<em>ID #%(id)d ÀÎ ¸Þ¼¼Áö°¡ ±úÁ³½À´Ï´Ù."
+
+#: Mailman/Cgi/admindb.py:618
+msgid "Action:"
+msgstr "Çൿ:"
+
+#: Mailman/Cgi/admindb.py:622
+msgid "Preserve message for site administrator"
+msgstr "»çÀÌÆ® °ü¸®ÀÚ¸¦ À§ÇØ ¸Þ¼¼Áö º¸Á¸Çϱâ"
+
+#: Mailman/Cgi/admindb.py:626
+msgid "Additionally, forward this message to: "
+msgstr "°Ô´Ù°¡, ÀÌ ¸Þ¼¼Áö¸¦ ´ÙÀ½ »ç¶÷¿¡°Ô Àü´Þ: "
+
+#: Mailman/Cgi/admindb.py:630
+msgid "[No explanation given]"
+msgstr "[¼³¸íÀÌ ¾ø½À´Ï´Ù.]"
+
+#: Mailman/Cgi/admindb.py:632
+msgid "If you reject this post,<br>please explain (optional):"
+msgstr "¸¸¾à À̱ÛÀ» °ÅÀýÇÑ´Ù¸é,<br>±× ÀÌÀ¯¸¦ ¼³¸íÇϼ¼¿ä.(¼±ÅûçÇ×):"
+
+#: Mailman/Cgi/admindb.py:638
+msgid "Message Headers:"
+msgstr "¸Þ¼¼Áö Çì´õ:"
+
+#: Mailman/Cgi/admindb.py:643
+msgid "Message Excerpt:"
+msgstr "¸Þ¼¼Áö Àοë:"
+
+#: Mailman/Cgi/admindb.py:676 Mailman/Deliverer.py:124
+msgid "No reason given"
+msgstr "ÀÌÀ¯°¡ ¾ø½À´Ï´Ù."
+
+#: Mailman/Cgi/admindb.py:737 Mailman/ListAdmin.py:308
+#: Mailman/ListAdmin.py:429
+msgid "[No reason given]"
+msgstr "[ÀÌÀ¯°¡ ¾ø½À´Ï´Ù]"
+
+#: Mailman/Cgi/admindb.py:766
+msgid "Database Updated..."
+msgstr "DB °¡ ¾÷µ¥ÀÌÆ®µÇ¾ú½À´Ï´Ù..."
+
+#: Mailman/Cgi/admindb.py:769
+msgid " is already a member"
+msgstr " ´Â ÀÌ¹Ì È¸¿øÀÔ´Ï´Ù."
+
+#: Mailman/Cgi/confirm.py:69
+msgid "Confirmation string was empty."
+msgstr "È®ÀÎ ¹®ÀÚ¿­ÀÌ ºñ¾îÀÖ½À´Ï´Ù."
+
+#: Mailman/Cgi/confirm.py:89
+msgid ""
+"<b>Invalid confirmation string:</b>\n"
+" %(safecookie)s.\n"
+"\n"
+" <p>Note that confirmation strings expire approximately\n"
+" %(days)s days after the initial subscription request. If your\n"
+" confirmation has expired, please try to re-submit your subscription.\n"
+" Otherwise, <a href=\"%(confirmurl)s\">re-enter</a> your confirmation\n"
+" string."
+msgstr ""
+"<b>À߸øµÈ È®ÀÎ ¹øÈ£:</b>\n"
+" %(safecookie)s.\n"
+"\n"
+"<p>Ãʱ⿡ ¿äûÇÑ ÈÄ %(days)s ÀÏ ÈÄ¿¡ È®ÀÎ ¹øÈ£´Â À¯È¿±â°£À» \n"
+"³Ñ±â°Ô µÈ´Ù´Â »ç½ÇÀ» Âü°íÇϽʽÿÀ.\n"
+" ³¯Â¥¿Í ¹øÈ£¸¦ È®ÀÎÇÏ½Ã°í ´Ù½Ã Çѹø ½ÃµµÇØ º¸½Ê½Ã¿À. \n"
+"±×·¸Áö ¾Ê´Ù¸é ´ç½ÅÀÇ È®ÀÎ ¹®ÀÚ¿­À» <a href=\"%(confirmurl)s\">ÀçÀÔ·Â</a>\n"
+"ÇϽʽÿÀ."
+
+#: Mailman/Cgi/confirm.py:122
+msgid ""
+"The address requesting unsubscription is not\n"
+" a member of the mailing list. Perhaps you have already "
+"been\n"
+" unsubscribed, e.g. by the list administrator?"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:138
+msgid ""
+"The address requesting to be changed has\n"
+" been subsequently unsubscribed. This request has been\n"
+" cancelled."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:157
+msgid "System error, bad content: %(content)s"
+msgstr "½Ã½ºÅÛ ¿¡·¯, À߸øµÈ ³»¿ë: %(content)s"
+
+#: Mailman/Cgi/confirm.py:167
+msgid "Bad confirmation string"
+msgstr "À߸øµÈ È®ÀÎ ¹®ÀÚ¿­"
+
+#: Mailman/Cgi/confirm.py:175
+msgid "Enter confirmation cookie"
+msgstr "È®ÀÎ Äí۸¦ ÀÔ·ÂÇϼ¼¿ä"
+
+#: Mailman/Cgi/confirm.py:188
+msgid ""
+"Please enter the confirmation string\n"
+" (i.e. <em>cookie</em>) that you received in your email message, in the "
+"box\n"
+" below. Then hit the <em>Submit</em> button to proceed to the next\n"
+" confirmation step."
+msgstr ""
+"´ç½ÅÀÇ E¸ÞÀÏ È¤Àº ÀÌ·¡ »óÀÚ¿¡¼­ ¹ÞÀº È®ÀÎ ¹®ÀÚ¿­(¿¹, <em>ÄíŰ</em>) ¸¦\n"
+"ÀÔ·ÂÇÏ¿© ÁֽʽÿÀ. ±×¸®°í ´ÙÀ½ È®ÀÎ ÀýÂ÷¸¦ À§ÇØ <em>º¸³»±â</em> ¹öưÀ»\n"
+"´©¸£½Ê½Ã¿À."
+
+#: Mailman/Cgi/confirm.py:193
+msgid "Confirmation string:"
+msgstr "È®ÀÎ ¹®ÀÚ¿­:"
+
+#: Mailman/Cgi/confirm.py:195
+msgid "Submit"
+msgstr "º¸³»±â"
+
+#: Mailman/Cgi/confirm.py:210
+msgid "Confirm subscription request"
+msgstr "°¡ÀÔ ¿äû È®ÀÎÇϱâ"
+
+#: Mailman/Cgi/confirm.py:227
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" subscription request to the mailing list <em>%(listname)s</em>. Your\n"
+" subscription settings are shown below; make any necessary changes and "
+"hit\n"
+" <em>Subscribe</em> to complete the confirmation process. Once you've\n"
+" confirmed your subscription request, you will be shown your account\n"
+" options page which you can use to further customize your membership\n"
+" options.\n"
+"\n"
+" <p>Note: your password will be emailed to you once your subscription is\n"
+" confirmed. You can change it by visiting your personal options page.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this subscription\n"
+" request."
+msgstr ""
+"<em>%(listname)s</em> ÀÇ °¡ÀÔ ¿äûÀ» ¿Ï·áÇϱâ À§Çؼ­ ´ç½ÅÀÇ È®ÀÎ\n"
+"ÀÌ ÇÊ¿äÇÕ´Ï´Ù. ´ç½ÅÀÇ °¡ÀÔ ¼³Á¤Àº ¾Æ·¡¿¡¼­ º¼ ¼ö ÀÖÀ¸¸ç ¿©·¯ºÐ °³¼º¿¡\n"
+" ¸Â°Ô ¼³Á¤ÇϽÅÈÄ È®ÀÎ °úÁ¤À» ¿Ï·áÇϱâ À§ÇÞ <em>°¡ÀÔÇϱâ</em> ¸¦ ´­·¯\n"
+" Áֽñ⠹ٶø´Ï´Ù. °¡ÀÔ È®ÀÎÀ» ÇÏ¿´À¸¸é ´ç½ÅÀÇ °èÁ¤ ¼³Á¤À» ÇÒ ¼ö ÀÖ°Ô µË´Ï"
+"´Ù.\n"
+"¿©±â¿¡¼­ ´ç½ÅÀÌ ¿øÇÏ´Â ´ë·Î ¼³Á¤À» º¯°æÇÒ ¼ö ÀÖ½À´Ï´Ù.\n"
+"\n"
+"<p> Âü°í : ´ç½ÅÀÇ ºñ¹Ð¹øÈ£´Â ´ç½ÅÀÌ ÀÔ·ÂÇÑ E¸ÞÀÏ ÁÖ¼Ò·Î º¸³»Áý´Ï´Ù.\n"
+" ´ç½ÅÀº °³ÀÎ ¼³Á¤ ÆäÀÌÁö¿¡¼­ ºñ¹Ð¹øÈ£¸¦ º¯°æÇÒ ¼ö ÀÖÀ¸¸ç ȤÀº \n"
+"ÀÌ °¡ÀÔ ¿äûÀ» Ãë¼ÒÇϱâ À§ÇØ <em>Ãë¼ÒÇÏ°í ¹ö¸®±â</em> ¸¦ ´©¸£½Ê½Ã¿À."
+
+#: Mailman/Cgi/confirm.py:242
+#, fuzzy
+msgid ""
+"Your confirmation is required in order to continue with\n"
+" the subscription request to the mailing list <em>%(listname)s</em>.\n"
+" Your subscription settings are shown below; make any necessary "
+"changes\n"
+" and hit <em>Subscribe to list ...</em> to complete the confirmation\n"
+" process. Once you've confirmed your subscription request, the\n"
+" moderator must approve or reject your membership request. You will\n"
+" receive notice of their decision.\n"
+"\n"
+" <p>Note: your password will be emailed to you once your "
+"subscription\n"
+" is confirmed. You can change it by visiting your personal options\n"
+" page.\n"
+"\n"
+" <p>Or, if you've changed your mind and do not want to subscribe to\n"
+" this mailing list, you can hit <em>Cancel my subscription\n"
+" request</em>."
+msgstr ""
+"<em>%(listname)s</em> ÀÇ °¡ÀÔ ¿äûÀ» °è¼ÓÇϱâ À§Çؼ­ ´ç½ÅÀÇ È®ÀÎ\n"
+"ÀÌ ÇÊ¿äÇÕ´Ï´Ù. ´ç½ÅÀÇ °¡ÀÔ ¼³Á¤Àº ¾Æ·¡¿¡¼­ º¼ ¼ö ÀÖÀ¸¸ç ¿©·¯ºÐ °³¼º¿¡\n"
+" ¸Â°Ô ¼³Á¤ÇϽÅÈÄ È®ÀÎ °úÁ¤À» ¿Ï·áÇϱâ À§ÇÞ <em>°¡ÀÔÇϱâ</em> ¸¦ ´­·¯\n"
+" Áֽñ⠹ٶø´Ï´Ù. °¡ÀÔ È®ÀÎÀ» ÇÏ¿´À¸¸é ´ç½ÅÀÇ °èÁ¤ ¼³Á¤À» ÇÒ ¼ö ÀÖ°Ô µË´Ï"
+"´Ù.\n"
+"¿©±â¿¡¼­ ´ç½ÅÀÌ ¿øÇÏ´Â ´ë·Î ¼³Á¤À» º¯°æÇÒ ¼ö ÀÖ½À´Ï´Ù.\n"
+"\n"
+"<p> Âü°í : ´ç½ÅÀÇ ºñ¹Ð¹øÈ£´Â ´ç½ÅÀÌ ÀÔ·ÂÇÑ E¸ÞÀÏ ÁÖ¼Ò·Î º¸³»Áý´Ï´Ù.\n"
+" ´ç½ÅÀº °³ÀÎ ¼³Á¤ ÆäÀÌÁö¿¡¼­ ºñ¹Ð¹øÈ£¸¦ º¯°æÇÒ ¼ö ÀÖÀ¸¸ç ȤÀº \n"
+"ÀÌ °¡ÀÔ ¿äûÀ» Ãë¼ÒÇϱâ À§ÇØ <em>Ãë¼ÒÇÏ°í ¹ö¸®±â</em> ¸¦ ´©¸£½Ê½Ã¿À."
+
+#: Mailman/Cgi/confirm.py:260
+msgid "Your email address:"
+msgstr "´ç½ÅÀÇ E¸ÞÀÏ ÁÖ¼Ò:"
+
+#: Mailman/Cgi/confirm.py:261
+msgid "Your real name:"
+msgstr "´ç½ÅÀÇ ½ÇÁ¦ À̸§:"
+
+#: Mailman/Cgi/confirm.py:270
+msgid "Receive digests?"
+msgstr "¹­À½¹è´Þ(Digest) ·Î ¹ÞÀ»±î¿ä?"
+
+#: Mailman/Cgi/confirm.py:279
+msgid "Preferred language:"
+msgstr "»ç¿ë ¾ð¾î:"
+
+#: Mailman/Cgi/confirm.py:284
+#, fuzzy
+msgid "Cancel my subscription request"
+msgstr "°¡ÀÔ ¿äû È®ÀÎÇϱâ"
+
+#: Mailman/Cgi/confirm.py:285
+#, fuzzy
+msgid "Subscribe to list %(listname)s"
+msgstr "´ç½ÅÀÇ »õ·Î¿î ¸ÞÀϸµ ¸®½ºÆ® : %(listname)s"
+
+#: Mailman/Cgi/confirm.py:295
+msgid "You have canceled your subscription request."
+msgstr "´ç½ÅÀÇ °¡ÀÔ ¿äûÀ» Ãë¼ÒÇÏ¿´½À´Ï´Ù."
+
+#: Mailman/Cgi/confirm.py:329
+msgid "Awaiting moderator approval"
+msgstr "±Û°ü¸®ÀÚÀÇ ½ÂÀÎÀ» ±â´Ù¸®°í ÀÖ½À´Ï´Ù."
+
+#: Mailman/Cgi/confirm.py:332
+msgid ""
+" You have successfully confirmed your subscription request to "
+"the\n"
+" mailing list %(listname)s, however final approval is required "
+"from\n"
+" the list moderator before you will be subscribed. Your request\n"
+" has been forwarded to the list moderator, and you will be "
+"notified\n"
+" of the moderator's decision."
+msgstr ""
+"´ç½ÅÀº %(listname)s ¸ÞÀϸµ ¸®½ºÆ®ÀÇ °¡ÀÔ ¿äû È®ÀÎÀ» ¼º°øÀûÀ¸·Î ó¸®ÇÏ¿´½À´Ï"
+"´Ù.ÇÏÁö¸¸ ´ç½ÅÀÌ °¡ÀÔÇϱâ Àü¿¡ ¸ÞÀϸµ ¸®½ºÆ® °ü¸®ÀÚÀÇ ¸¶Áö¸· ½ÂÀÎÀÌ ÇÊ¿äÇÕ´Ï"
+"´Ù.´ç½ÅÀÇ ¿äûÀº ¸ÞÀϸµ ¸®½ºÆ® ±Û°ü¸®ÀÚ¿¡°Ô Àü´ÞµÇ¾úÀ¸¸ç, ±Û°ü¸®ÀÚÀÇ °áÁ¤¿¡ "
+"´ëÇØ¼­´Â E¸ÞÀÏÀ» ÅëÇØ ¹Þ¾Æ º¸½Ç ¼ö ÀÖ½À´Ï´Ù."
+
+#: Mailman/Cgi/confirm.py:339 Mailman/Cgi/confirm.py:394
+#: Mailman/Cgi/confirm.py:482 Mailman/Cgi/confirm.py:705
+msgid ""
+"Invalid confirmation string. It is\n"
+" possible that you are attempting to confirm a request for an\n"
+" address that has already been unsubscribed."
+msgstr ""
+"À߸øµÈ È®ÀÎ ¹®ÀÚ¿­ÀÔ´Ï´Ù. ÀÌ¹Ì Å»ÅðµÈ »óÅÂÀÇ ÁÖ¼Ò·Î ¿äû È®ÀÎÀ» ½ÃµµÇßÀ»\n"
+"°¡´É¼ºÀÌ ÀÖ½À´Ï´Ù."
+
+#: Mailman/Cgi/confirm.py:343
+#, fuzzy
+msgid "You are already a member of this mailing list!"
+msgstr "%(realname)s ¸ÞÀϸµ ¸®½ºÆ®¿¡¼­ Å»ÅðµÇ¼Ì½À´Ï´Ù."
+
+#: Mailman/Cgi/confirm.py:350
+msgid "Subscription request confirmed"
+msgstr "°¡ÀÔ ¿äûÀÌ È®ÀεǾú½À´Ï´Ù."
+
+#: Mailman/Cgi/confirm.py:354
+msgid ""
+" You have successfully confirmed your subscription request for\n"
+" \"%(addr)s\" to the %(listname)s mailing list. A separate\n"
+" confirmation message will be sent to your email address, along\n"
+" with your password, and other useful information and links.\n"
+"\n"
+" <p>You can now\n"
+" <a href=\"%(optionsurl)s\">proceed to your membership login\n"
+" page</a>."
+msgstr ""
+"%(listname)s ¸ÞÀϸµ ¸®½ºÆ® ´ç½ÅÀÇ \"%(addr)s\" °¡ÀÔ ¿äûÀÌ ¼º°øÀûÀ¸·Î È®ÀεÇ"
+"¾ú½À´Ï´Ù. ºÐ¸®µÈ È®ÀÎ ¸Þ¼¼Áö´Â ´ç½ÅÀÇ ºñ¹Ð¹øÈ£¿Í ´Ù¸¥ À¯¿ëÇÑ Á¤º¸ ¹× ¸µÅ©¸¦ "
+"Æ÷ÇÔÇÏ¿© ´ç½ÅÀÇ E¸ÞÀÏ ÁÖ¼Ò·Î º¸³Â½À´Ï´Ù.\n"
+"<p>´ç½ÅÀº ÀÌÁ¦ <a href=\"%(optionsurl)s\">ȸ¿øÀ¸·Î ·Î±ä ÆäÀÌÁö</a>¿¡ Á¢±ÙÇÒ "
+"¼ö ÀÖ½À´Ï´Ù."
+
+#: Mailman/Cgi/confirm.py:372
+msgid "You have canceled your unsubscription request."
+msgstr "´ç½ÅÀº Å»Åð ¿äûÀ» Ãë¼ÒÇϼ̽À´Ï´Ù."
+
+#: Mailman/Cgi/confirm.py:400
+msgid "Unsubscription request confirmed"
+msgstr "Å»Åð ¿äûÀÌ È®ÀÎ µÇ¾ú½À´Ï´Ù."
+
+#: Mailman/Cgi/confirm.py:404
+msgid ""
+" You have successfully unsubscribed from the %(listname)s "
+"mailing\n"
+" list. You can now <a href=\"%(listinfourl)s\">visit the list's "
+"main\n"
+" information page</a>."
+msgstr ""
+"%(listname)s ¸ÞÀϸµ ¸®½ºÆ®¿¡¼­ ¼º°øÀûÀ¸·Î Å»Åð µÇ¾ú½À´Ï´Ù. ´ç½ÅÀº ÀÌÁ¦ <a "
+"href=\"%(listinfourl)s\">¸ÞÀϸµ ¸®½ºÆ® Á¤º¸ ÆäÀÌÁö</a>¸¦ ¹æ¹®ÇÒ ¼ö ÀÖ½À´Ï´Ù."
+
+#: Mailman/Cgi/confirm.py:415
+msgid "Confirm unsubscription request"
+msgstr "Å»Åð ¿äû È®ÀÎ"
+
+#: Mailman/Cgi/confirm.py:430 Mailman/Cgi/confirm.py:519
+msgid "<em>Not available</em>"
+msgstr "<em>ÀÌ¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.</em>"
+
+#: Mailman/Cgi/confirm.py:433
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" unsubscription request from the mailing list <em>%(listname)s</em>. "
+"You\n"
+" are currently subscribed with\n"
+"\n"
+" <ul><li><b>Real name:</b> %(fullname)s\n"
+" <li><b>Email address:</b> %(addr)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Unsubscribe</em> button below to complete the confirmation\n"
+" process.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this unsubscription\n"
+" request."
+msgstr ""
+"<em>%(listname)s</em> ¸ÞÀϸµ ¸®½ºÆ®·Î ºÎÅÍÀÇ Å»Åð ¿äûÀ» ¿Ï·áÇϱâ À§Çؼ­\n"
+" ´ç½ÅÀÇ È®ÀÎÀÌ ÇÊ¿äÇÕ´Ï´Ù. ´ç½ÅÀº ÇöÀç ¾Æ·¡¿Í °°ÀÌ °¡ÀԵǾî ÀÖ½À´Ï´Ù.\n"
+"\n"
+"<ul><li><b>½ÇÁ¦ À̸§:</b> %(fullname)s\n"
+" <li><b>E¸ÞÀÏ ÁÖ¼Ò:</b> %(addr)s\n"
+"</ul>\n"
+"È®ÀÎ °úÁ¤À» ¿Ï·áÇϱâ À§Çؼ­ ¾Æ·¡ÀÇ <em>Å»ÅðÇϱâ</em> ¹öưÀ» ´©¸£¼¼¿ä.\n"
+"\n"
+"<p> ȤÀº Å»Åð ¿äûÀ» Ãë¼ÒÇϱâ À§Çؼ­ <em>Ãë¼ÒÇÏ°í ¹ö¸®±â</em>¸¦ ´©¸£¼¼¿ä."
+
+#: Mailman/Cgi/confirm.py:449 Mailman/Cgi/options.py:660
+#: Mailman/Cgi/options.py:801 Mailman/Cgi/options.py:811
+msgid "Unsubscribe"
+msgstr "Å»ÅðÇϱâ"
+
+#: Mailman/Cgi/confirm.py:450 Mailman/Cgi/confirm.py:548
+msgid "Cancel and discard"
+msgstr "Ãë¼ÒÇÏ°í ¹ö¸®±â"
+
+#: Mailman/Cgi/confirm.py:460
+msgid "You have canceled your change of address request."
+msgstr "´ç½ÅÀº ÁÖ¼Ò ¿äû º¯°æÀ» Ãë¼ÒÇÏ¿´½À´Ï´Ù."
+
+#: Mailman/Cgi/confirm.py:488
+msgid "Change of address request confirmed"
+msgstr "ÁÖ¼Ò ¿äû º¯°æÀÌ È®ÀεǾú½À´Ï´Ù."
+
+#: Mailman/Cgi/confirm.py:492
+msgid ""
+" You have successfully changed your address on the %(listname)s\n"
+" mailing list from <b>%(oldaddr)s</b> to <b>%(newaddr)s</b>. "
+"You\n"
+" can now <a href=\"%(optionsurl)s\">proceed to your membership\n"
+" login page</a>."
+msgstr ""
+"%(listname)s ¸ÞÀϸµ ¸®½ºÆ® ´ç½ÅÀÇ <b>%(oldaddr)s </b> ¿¡¼­ <b>%(newaddr)s</"
+"b> ·ÎÀÇ ÁÖ¼Ò º¯°æ ¿äûÀÌ ¼º°øÀûÀ¸·Î º¯°æµÇ¾ú½À´Ï´Ù.\n"
+"<p>´ç½ÅÀº ÀÌÁ¦ <a href=\"%(optionsurl)s\">ȸ¿øÀ¸·Î ·Î±ä ÆäÀÌÁö</a>¿¡ Á¢±ÙÇÒ "
+"¼ö ÀÖ½À´Ï´Ù."
+
+#: Mailman/Cgi/confirm.py:504
+msgid "Confirm change of address request"
+msgstr "ÁÖ¼Ò º¯°æ ¿äû È®ÀÎ"
+
+#: Mailman/Cgi/confirm.py:523
+msgid "globally"
+msgstr "ÀüÁ¦ÀûÀ¸·Î"
+
+#: Mailman/Cgi/confirm.py:526
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" change of address request for the mailing list <em>%(listname)s</em>. "
+"You\n"
+" are currently subscribed with\n"
+"\n"
+" <ul><li><b>Real name:</b> %(fullname)s\n"
+" <li><b>Old email address:</b> %(oldaddr)s\n"
+" </ul>\n"
+"\n"
+" and you have requested to %(globallys)s change your email address to\n"
+"\n"
+" <ul><li><b>New email address:</b> %(newaddr)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Change address</em> button below to complete the "
+"confirmation\n"
+" process.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this change of address\n"
+" request."
+msgstr ""
+"<em>%(listname)s</em> ¸ÞÀϸµ ¸®½ºÆ®·Î ºÎÅÍÀÇ ÁÖ¼Ò º¯°æ ¿äûÀ» ¿Ï·áÇϱâ À§ÇØ"
+"¼­\n"
+" ´ç½ÅÀÇ È®ÀÎÀÌ ÇÊ¿äÇÕ´Ï´Ù. ´ç½ÅÀº ÇöÀç ¾Æ·¡¿Í °°ÀÌ °¡ÀԵǾî ÀÖ½À´Ï´Ù.\n"
+"\n"
+"<ul><li><b>½ÇÁ¦ À̸§:</b> %(fullname)s\n"
+" <li><b>E¸ÞÀÏ ÁÖ¼Ò:</b> %(oldaddr)s\n"
+"</ul>\n"
+"\n"
+" ±×¸®°í ´ç½ÅÀÇ E¸ÞÀÏ ÁÖ¼Ò¸¦ %(globallys)s ¿¡¼­ ¾Æ·¡¿Í °°Àº º¯°æÀ» ¿äûÇÏ¿´½À"
+"´Ï´Ù. \n"
+" <ul><li><b>»õ·Î¿î E¸ÞÀÏ ÁÖ¼Ò:</b> %(newaddr)s\n"
+" </ul>\n"
+"\n"
+"È®ÀÎ °úÁ¤À» ¿Ï·áÇϱâ À§Çؼ­ ¾Æ·¡ÀÇ <em>ÁÖ¼Ò º¯°æÇϱâ</em> ¹öưÀ» ´©¸£¼¼¿ä.\n"
+"\n"
+"<p> ȤÀº ÁÖ¼Ò º¯°æ ¿äûÀ» Ãë¼ÒÇϱâ À§Çؼ­ <em>Ãë¼ÒÇÏ°í ¹ö¸®±â</em>¸¦ ´©¸£¼¼"
+"¿ä."
+
+#: Mailman/Cgi/confirm.py:547
+msgid "Change address"
+msgstr "ÁÖ¼Ò º¯°æÇϱâ"
+
+#: Mailman/Cgi/confirm.py:557 Mailman/Cgi/confirm.py:670
+msgid "Continue awaiting approval"
+msgstr "½ÂÀÎÀ» ±â´Ù¸®°Ô Çϱâ"
+
+#: Mailman/Cgi/confirm.py:564
+msgid ""
+"Okay, the list moderator will still have the\n"
+" opportunity to approve or reject this message."
+msgstr ""
+"±Û °ü¸®ÀÚ´Â ÀÌ ¸Þ¼¼Áö¸¦ ½ÂÀÎÇϰųª °ÅÀýÇÏ´Â ±ÇÇÑÀ» ¾ÆÁ÷ °¡Áö°í ÀÖ½À´Ï´Ù."
+
+#: Mailman/Cgi/confirm.py:590
+msgid "Sender discarded message via web."
+msgstr "º¸³½À̰¡ À¥À» ÅëÇØ ¸Þ¼¼Áö¸¦ º¸·È½À´Ï´Ù."
+
+#: Mailman/Cgi/confirm.py:592
+msgid ""
+"The held message with the Subject:\n"
+" header <em>%(subject)s</em> could not be found. The most "
+"likely\n"
+" reason for this is that the list moderator has already approved "
+"or\n"
+" rejected the message. You were not able to cancel it in\n"
+" time."
+msgstr ""
+"Çì´õ¿¡¼­ Á¦¸ñÀÌ <em>%(subject)s</em> ÀÎ ¸Þ¼¼Áö¸¦ ãÀ» ¼ö ¾ø½À´Ï´Ù. ´ëºÎºÐÀÇ "
+"ÀÌ·± °æ¿ì´Â ±Û°ü¸®ÀÚ°¡ ±× ±ÛÀ» ÀÌ¹Ì ½ÂÀÎÇÏ¿´°Å³ª °ÅÀýÇßÀ» ¶§ ³ªÅ¸³¯ ¼ö ÀÖ½À´Ï"
+"´Ù. ´ç½ÅÀº ÀÌÁ¦ ±×°ÍÀ» Ãë¼ÒÇÒ ¼ö ¾ø½À´Ï´Ù."
+
+#: Mailman/Cgi/confirm.py:600
+msgid "Posted message canceled"
+msgstr "¹è´ÞµÈ ¸Þ¼¼Áö°¡ Ãë¼ÒµÇ¾ú½À´Ï´Ù."
+
+#: Mailman/Cgi/confirm.py:603
+msgid ""
+" You have successfully canceled the posting of your message with\n"
+" the Subject: header <em>%(subject)s</em> to the mailing list\n"
+" %(listname)s."
+msgstr ""
+"%(listname)s ·Î º¸³½ ´ç½ÅÀÇ ¸Þ¼¼Áö(Á¦¸ñ :<em>%(subject)s</em>) °¡ ¼º°øÀûÀ¸·Î"
+"Ãë¼ÒµÇ¾ú½À´Ï´Ù."
+
+#: Mailman/Cgi/confirm.py:614
+msgid "Cancel held message posting"
+msgstr "º¸³½ ±Û Ãë¼ÒÇϱâ"
+
+#: Mailman/Cgi/confirm.py:639
+msgid ""
+"The held message you were referred to has\n"
+" already been handled by the list administrator."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:653
+msgid ""
+"Your confirmation is required in order to cancel the\n"
+" posting of your message to the mailing list <em>%(listname)s</em>:\n"
+"\n"
+" <ul><li><b>Sender:</b> %(sender)s\n"
+" <li><b>Subject:</b> %(subject)s\n"
+" <li><b>Reason:</b> %(reason)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Cancel posting</em> button to discard the posting.\n"
+"\n"
+" <p>Or hit the <em>Continue awaiting approval</em> button to continue to\n"
+" allow the list moderator to approve or reject the message."
+msgstr ""
+" <em>%(listname)s ¸ÞÀϸµ ¸®½ºÆ®º¸ º¸³½ ´ç½ÅÀÇ ¸Þ¼¼Áö¸¦ Ãë¼ÒÇϱâ À§ÇØ ´ç½ÅÀÇ "
+"È®ÀÎÀÌ ÇÊ¿äÇÕ´Ï´Ù. \n"
+" <ul><li><b>º¸³½ÀÌ:</b> %(sender)s\n"
+" <li><b>Á¦¸ñ:</b> %(subject)s\n"
+" <li><b>ÀÌÀ¯:</b> %(reason)s\n"
+" </ul>\n"
+"\n"
+"º¸³½ ±ÛÀ» ¹ö¸®±â À§Çؼ­ <em>º¸³½±Û Ãë¼ÒÇϱâ</em> ¹öưÀ» ´©¸£¼¼¿ä.\n"
+"\n"
+"<p> ȤÀº ±Û °ü¸®ÀÚÀÇ ½ÂÀΠȤÀº °ÅÀýÀ» ±â´Ù¸±·Á¸é <em>½ÂÀÎÀ» ±â´Ù¸®°Ô Çϱâ</"
+"em> ¸¦ ´©¸£¼¼¿ä."
+
+#: Mailman/Cgi/confirm.py:669
+msgid "Cancel posting"
+msgstr "º¸³½ ±Û Ãë¼ÒÇϱâ"
+
+#: Mailman/Cgi/confirm.py:681
+msgid ""
+"You have canceled the re-enabling of your membership. If\n"
+" we continue to receive bounces from your address, it could be deleted "
+"from\n"
+" this mailing list."
+msgstr ""
+"´ç½ÅÀº ȸ¿øÀ¸·Î ÀçȰµ¿Çϱ⸦ Ãë¼ÒÇϼ̽À´Ï´Ù. ¸¸¾à ´ç½ÅÀÇ ÁÖ¼Ò·Î ºÎÅÍ ¹Ù¿î½º "
+"¸¦ °è¼ÓÀûÀ¸·Î ¹Þ°Ô µÈ´Ù¸é ÀÌ ¸ÞÀϸµ ¸®½ºÆ®¿¡¼­ »èÁ¦µÉ °ÍÀÔ´Ï´Ù."
+
+#: Mailman/Cgi/confirm.py:711
+msgid "Membership re-enabled."
+msgstr "ȸ¿øÀ¸·Î ÀçȰµ¿Çϱâ."
+
+#: Mailman/Cgi/confirm.py:715
+msgid ""
+" You have successfully re-enabled your membership in the\n"
+" %(listname)s mailing list. You can now <a\n"
+" href=\"%(optionsurl)s\">visit your member options page</a>.\n"
+" "
+msgstr ""
+" %(listname)s ¸ÞÀϸµ ¸®½ºÆ®¿¡ ȸ¿øÀ¸·Î ÀçȰµ¿Çϱ⠼º°øÀûÀ¸·Î ÀÌ·ç¾î Á³½À´Ï´Ù."
+"´ç½ÅÀº <a href=\"%(optionsurl)s\">ȸ¿ø ¼³Á¤ ÆäÀÌÁö</a>¸¦ ¹æ¹®ÇÒ ¼ö ÀÖ½À´Ï´Ù."
+
+#: Mailman/Cgi/confirm.py:727
+msgid "Re-enable mailing list membership"
+msgstr "¸ÞÀϸµ ¸®½ºÆ® ȸ¿øÀ¸·Î ÀçȰµ¿Çϱâ"
+
+#: Mailman/Cgi/confirm.py:744
+msgid ""
+"We're sorry, but you have already been unsubscribed\n"
+" from this mailing list. To re-subscribe, please visit the\n"
+" <a href=\"%(listinfourl)s\">list information page</a>."
+msgstr ""
+"Á˼ÛÇÕ´Ï´Ù. ´ç½ÅÀº ÀÌ¹Ì ÀÌ ¸ÞÀϸµ ¸®½ºÆ®¿¡¼­ Å»ÅðµÇ¾î ÀÖ½À´Ï´Ù. ´Ù½Ã °¡ÀÔÇϽÇ"
+"·Á¸é <a href=\"%(listinfourl)s\">¸ÞÀϸµ ¸®½ºÆ® Á¤º¸ ÆäÀÌÁö</a>¸¦ ¹æ¹®ÇϽñâ "
+"¹Ù¶ø´Ï´Ù."
+
+#: Mailman/Cgi/confirm.py:758
+msgid "<em>not available</em>"
+msgstr "<em>ÀÌ¿ë ÇÒ ¼ö ¾ø½À´Ï´Ù.</em>"
+
+#: Mailman/Cgi/confirm.py:762
+msgid ""
+"Your membership in the %(realname)s mailing list is\n"
+" currently disabled due to excessive bounces. Your confirmation is\n"
+" required in order to re-enable delivery to your address. We have the\n"
+" following information on file:\n"
+"\n"
+" <ul><li><b>Member address:</b> %(member)s\n"
+" <li><b>Member name:</b> %(username)s\n"
+" <li><b>Last bounce received on:</b> %(date)s\n"
+" <li><b>Approximate number of days before you are permanently "
+"removed\n"
+" from this list:</b> %(daysleft)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Re-enable membership</em> button to resume receiving "
+"postings\n"
+" from the mailing list. Or hit the <em>Cancel</em> button to defer\n"
+" re-enabling your membership.\n"
+" "
+msgstr ""
+"%(realname)s ¸ÞÀϸµ ¸®½ºÆ®¿¡¼­ ´ç½ÅÀº ¹Ù¿î½º ¶§¹®¿¡ ÇöÀç ¸øÇÏ°Ô µÇ¾î ÀÖ½À´Ï"
+"´Ù.´ç½ÅÀÇ ÁÖ¼Ò·Î Àç¹è´ÞÀ» ÇÒ ¼ö ÀÖ°Ô Çϱâ À§Çؼ­´Â ´ç½ÅÀÇ È®ÀÎÀÌ ÇÊ¿äÇÕ´Ï´Ù."
+"¿ì¸®´Â ÆÄÀÏ¿¡ ´ÙÀ½°ú °°ÀÌ Á¤º¸¸¦ °¡Áö°í ÀÖ½À´Ï´Ù:\n"
+"\n"
+"<ul><li><b>ȸ¿ø E¸ÞÀÏÁÖ¼Ò:</b> %(member)s\n"
+" <li><b>ȸ¿ø À̸§:</b> %(username)s\n"
+" <li><b>¸¶Áö¸· ¹ÞÀº ¹Ù¿î½º ½Ã°£:</b> %(date)s\n"
+" <li><b>ÀÌ ¸ÞÀϸµ ¸®½ºÆ®¿¡¼­ ¿µ¿øÈ÷ Á¦°ÅµÇ±â±îÁö ³²Àº ±â°£ :</b> %(daysleft)"
+"s\n"
+"</ul>\n"
+"\n"
+" ÀÌ ¸ÞÀϸµ ¸®½ºÆ®·ÎºÎÅÍ ±ÛÀ» ´Ù½Ã ¹Þ±æ ¿øÇϽŴٸé <em>ȸ¿øÀ¸·Î ÀçȰµ¿Çϱâ</"
+"em> ¸¦ ´©¸£¼¼¿ä. ȤÀº ȸ¿øÀ¸·Î ÀçȰµ¿ÇÏ±æ ¿¬±âÇϽǷÁ¸é <em>Ãë¼ÒÇϱâ</em>¸¦ ´©"
+"¸£¼¼¿ä."
+
+#: Mailman/Cgi/confirm.py:782
+msgid "Re-enable membership"
+msgstr "ȸ¿øÀ¸·Î ÀçȰµ¿Çϱâ"
+
+#: Mailman/Cgi/confirm.py:783
+msgid "Cancel"
+msgstr "Ãë¼ÒÇϱâ"
+
+#: Mailman/Cgi/create.py:48 Mailman/Cgi/rmlist.py:48
+msgid "Bad URL specification"
+msgstr "URL ÀÌ À߸øµÇ¾ú½À´Ï´Ù."
+
+#: Mailman/Cgi/create.py:63 Mailman/Cgi/rmlist.py:176
+msgid "Return to the "
+msgstr "À̵¿ :"
+
+#: Mailman/Cgi/create.py:65 Mailman/Cgi/rmlist.py:178
+msgid "general list overview"
+msgstr "ÀÏ¹Ý ¸ñ·Ï ¼Ò°³"
+
+#: Mailman/Cgi/create.py:66 Mailman/Cgi/rmlist.py:179
+msgid "<br>Return to the "
+msgstr "<br>À̵¿ :"
+
+#: Mailman/Cgi/create.py:68 Mailman/Cgi/rmlist.py:181
+msgid "administrative list overview"
+msgstr "°ü¸® ¸ñ·Ï ¼Ò°³"
+
+#: Mailman/Cgi/create.py:101
+msgid "List name must not include \"@\": %(listname)s"
+msgstr "¸ÞÀϸµ ¸®½ºÆ® À̸§Àº \"@\" ¸¦ Æ÷ÇÔÇÏ¸é ¾ÈµË´Ï´Ù. : %(listname)s"
+
+#: Mailman/Cgi/create.py:107 Mailman/Cgi/create.py:185 bin/newlist:134
+#: bin/newlist:168
+msgid "List already exists: %(listname)s"
+msgstr "¸ÞÀϸµ ¸®½ºÆ® À̸§ÀÌ ÀÌ¹Ì Á¸ÀçÇÕ´Ï´Ù: %(listname)s"
+
+#: Mailman/Cgi/create.py:111
+msgid "You forgot to enter the list name"
+msgstr "¸ÞÀϸµ ¸®½ºÆ® À̸§À» ÀÔ·ÂÇϱæ ÀØÀ¸¼Ì±º¿ä."
+
+#: Mailman/Cgi/create.py:115
+msgid "You forgot to specify the list owner"
+msgstr "¸ÞÀϸµ ¸®½ºÆ® À̸§ ¼ÒÀ¯ÁÖ¸¦ Á¤ÇÏ´Â °ÍÀ» ÀØÀ¸¼Ì±º¿ä."
+
+#: Mailman/Cgi/create.py:122
+msgid ""
+"Leave the initial password (and confirmation) fields\n"
+" blank if you want Mailman to autogenerate the list\n"
+" passwords."
+msgstr ""
+"Mailman ÀÌ ¸ÞÀϸµ ¸®½ºÆ®ÀÇ ºñ¹Ð¹øÈ£¸¦ ÀÚµ¿ »ý¼ºÇϵµ·Ï ÇÒ¸ç·Ã Ãʱ⠺ñ¹Ð ¹øÈ£ "
+"(±×¸®°í È®ÀÎ) Ç׸ñÀ» ±×´ë·Î ³²°ÜµÎ½Ê½Ã¿À."
+
+#: Mailman/Cgi/create.py:130
+msgid "Initial list passwords do not match"
+msgstr "Ãʱ⠸ÞÀϸµ ¸®½ºÆ® ºñ¹Ð¹øÈ£°¡ ¸ÂÁö ¾Ê½À´Ï´Ù."
+
+#: Mailman/Cgi/create.py:139
+msgid "The list password cannot be empty<!-- ignore -->"
+msgstr "¸ÞÀϸµ ¸®½ºÆ® ºñ¹Ð¹øÈ£´Â ºñ¾îÀÖÀ¸¸é ¾ÈµË´Ï´Ù.<!-- ignore -->"
+
+#: Mailman/Cgi/create.py:151
+msgid "You are not authorized to create new mailing lists"
+msgstr "´ç½ÅÀº »õ·Î¿î ¸ÞÀϸµ ¸®½ºÆ®¸¦ »ý¼ºÇÒ ¼ö ¾ø½À´Ï´Ù."
+
+#: Mailman/Cgi/create.py:181 bin/newlist:166
+#, fuzzy
+msgid "Bad owner email address: %(s)s"
+msgstr "À߸øµÈ ¼ÒÀ¯ÁÖ E¸ÞÀÏ ÁÖ¼Ò : %(owner)s"
+
+#: Mailman/Cgi/create.py:189 bin/newlist:164
+#, fuzzy
+msgid "Illegal list name: %(s)s"
+msgstr "¸ÞÀϸµ ¸®½ºÆ® À̸§Àº \"@\" ¸¦ Æ÷ÇÔÇÏ¸é ¾ÈµË´Ï´Ù. : %(listname)s"
+
+#: Mailman/Cgi/create.py:194
+msgid ""
+"Some unknown error occurred while creating the list.\n"
+" Please contact the site administrator for assistance."
+msgstr ""
+"¾Ë¼ö ¾ø´Â ¿¡·¯°¡ ¸ÞÀϸµ ¸®½ºÆ® »ý¼º½Ã ÀϾ½À´Ï´Ù.µµ¿òÀ» ±¸Çϱâ À§Çؼ­ »çÀÌ"
+"Æ® °ü¸®ÀÚ¿¡°Ô ¿¬¶ôÇϽʽÿÀ."
+
+#: Mailman/Cgi/create.py:233 bin/newlist:210
+msgid "Your new mailing list: %(listname)s"
+msgstr "´ç½ÅÀÇ »õ·Î¿î ¸ÞÀϸµ ¸®½ºÆ® : %(listname)s"
+
+#: Mailman/Cgi/create.py:242
+msgid "Mailing list creation results"
+msgstr "¸ÞÀϸµ ¸®½ºÆ® »ý¼º °á°ú¹°"
+
+#: Mailman/Cgi/create.py:248
+msgid ""
+"You have successfully created the mailing list\n"
+" <b>%(listname)s</b> and notification has been sent to the list owner\n"
+" <b>%(owner)s</b>. You can now:"
+msgstr ""
+"<b>%(listname)s</b> ¸ÞÀϸµ ¸®½ºÆ®°¡ ¼º°øÀûÀ¸·Î ¸¸µé¾î Á³½À´Ï´Ù. ¸ÞÀϸµ ¸®½º"
+"Æ® ¼ÒÀ¯ÁÖ <b>%(owner)s</b> ¿¡°Ô °øÁö ¸ÞÀÏÀ» º¸³Â½À´Ï´Ù. ´ç½ÅÀº ÀÌÁ¦ ¾Æ·¡¿Í °°"
+"ÀÌ ÇÒ ¼ö ÀÖ½À´Ï´Ù:"
+
+#: Mailman/Cgi/create.py:252
+msgid "Visit the list's info page"
+msgstr "¸ÞÀϸµ ¸®½ºÆ® Á¤º¸ ÆäÀÌÁö¸¦ ¹æ¹®Çϱâ"
+
+#: Mailman/Cgi/create.py:253
+msgid "Visit the list's admin page"
+msgstr "¸ÞÀϸµ ¸®½ºÆ®ÀÇ °ü¸® ÆäÀÌÁö ¹æ¹®Çϱâ"
+
+#: Mailman/Cgi/create.py:254
+msgid "Create another list"
+msgstr "´Ù¸¥ ¸ÞÀϸµ ¸®½ºÆ® »ý¼ºÇϱâ"
+
+#: Mailman/Cgi/create.py:272
+msgid "Create a %(hostname)s Mailing List"
+msgstr "%(hostname)s ¸ÞÀϸµ ¸®½ºÆ® »ý¼ºÇϱâ"
+
+#: Mailman/Cgi/create.py:281 Mailman/Cgi/rmlist.py:199
+#: Mailman/Gui/Bounce.py:175 Mailman/htmlformat.py:339
+msgid "Error: "
+msgstr "¿¡·¯: "
+
+#: Mailman/Cgi/create.py:283
+msgid ""
+"You can create a new mailing list by entering the\n"
+" relevant information into the form below. The name of the mailing list\n"
+" will be used as the primary address for posting messages to the list, "
+"so\n"
+" it should be lowercased. You will not be able to change this once the\n"
+" list is created.\n"
+"\n"
+" <p>You also need to enter the email address of the initial list owner.\n"
+" Once the list is created, the list owner will be given notification, "
+"along\n"
+" with the initial list password. The list owner will then be able to\n"
+" modify the password and add or remove additional list owners.\n"
+"\n"
+" <p>If you want Mailman to automatically generate the initial list admin\n"
+" password, click on `Yes' in the autogenerate field below, and leave the\n"
+" initial list password fields empty.\n"
+"\n"
+" <p>You must have the proper authorization to create new mailing lists.\n"
+" Each site should have a <em>list creator's</em> password, which you can\n"
+" enter in the field at the bottom. Note that the site administrator's\n"
+" password can also be used for authentication.\n"
+" "
+msgstr ""
+"´ç½ÅÀº ¾Æ·¡ÀÇ ¾ç½Ä¿¡ Àû´çÇÑ Á¤º¸¸¦ ÀÔ·ÂÇÔÀ¸·Î½á »õ·Î¿î ¸ÞÀϸµ ¸®½ºÆ®¸¦ »ý¼º"
+"ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸ÞÀϸµ ¸®½ºÆ®ÀÇ À̸§Àº ¸®½ºÆ®ÀÇ ±Û¾²´Â ÁÖ¼Ò·Î »ç¿ëµË´Ï´Ù. ±×"
+"·¡¼­ ¸ðµÎ ¼Ò¹®ÀÚ¿©¸¸ ÇÕ´Ï´Ù. ¸®½ºÆ®°¡ »ý¼ºµÈ ¼ö ÀÌ °ªÀº ´õÀÌ»ó º¯°æÇÒ ¼ö ¾ø½À"
+"´Ï´Ù. <p>´ç½ÅÀº ¶ÇÇÑ Ãʱ⠸®½ºÆ® ¼ÒÀ¯ÁÖÀÇ E¸ÞÀÏ ÁÖ¼Ò¸¦ ÀÔ·ÂÇÏ¼Å¾ß ÇÕ´Ï´Ù. <p>"
+"¸®½ºÆ®°¡ »ý¼ºµÇ¾úÀ»¶§ ¸®½ºÆ® ¼ÒÀ¯ÀÚ´Â Ãʱ⠸®½ºÆ® ºñ¹Ð¹øÈ£¸¦ °¡Áö°í ÀÖ´Â °øÁö"
+"¸¦ ¹Þ°Ô µË´Ï´Ù. ¸®½ºÆ® ¼ÒÀ¯ÁÖ´Â ±× ºñ¹Ð¹øÈ£¸¦ ÅëÇØ¼­ ºñ¹Ð¹øÈ£ º¯°æ°ú Ãß°¡Àû"
+"ÀÎ ¸®½ºÆ® ¼ÒÀ¯ÁÖ ³Ö±â, »©±â µîÀ» ÇÒ ¼ö ÀÖ½À´Ï´Ù. <p>¸¸¾à ÃʱâÀÇ ¸®½ºÆ® °ü¸®"
+"ÀÚ ºñ¹Ð¹øÈ£¸¦ ÀÚµ¿À¸·Î »ý¼ºÇÏ±æ ¿øÇÏ½Å´Ù¸é ¾Æ·¡ÀÇ ÀÚµ¿ »ý¼º Ç׸ñÀ» `¿¹' ¸¦ Ŭ"
+"¸¯ÇϽðí Ãʱ⠸®½ºÆ® ºñ¹Ð¹øÈ£ Ç׸ñÀº ºó »óÅ·Π³õ¾ÆµÎ½Ã±â ¹Ù¶ø´Ï´Ù.<p>»õ·Î¿î "
+"¸ÞÀϸµ ¸®½ºÆ®¸¦ »ý¼ºÇϱâ À§Çؼ­´Â Àû´çÇÑ ÀÎÁõÀ» ÇØ¾ß ÇÕ´Ï´Ù. °¢ »çÀÌÆ®´Â <em>"
+"¸®½ºÆ® »ý¼ºÀÚ</em> ºñ¹Ð¹øÈ£¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. ¾Æ·¡ÀÇ Ç׸ñ¿¡ ±× ÆÐ½º¿öµå¸¦ ÀÔ"
+"·ÂÇϽʽÿÀ. »çÀÌÆ® °ü¸®ÀÚÀÇ ºñ¹Ð¹øÈ£ ¶ÇÇÑ ÀÎÁõ¿¡ »ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù."
+
+#: Mailman/Cgi/create.py:309
+msgid "List Identity"
+msgstr "¸®½ºÆ® Á¤º¸"
+
+#: Mailman/Cgi/create.py:312
+msgid "Name of list:"
+msgstr "¸ÞÀϸµ ¸®½ºÆ®ÀÇ À̸§:"
+
+#: Mailman/Cgi/create.py:317
+msgid "Initial list owner address:"
+msgstr "¸ÞÀϸµ ¸®½ºÆ®ÀÇ ¼ÒÀ¯ÁÖ:"
+
+#: Mailman/Cgi/create.py:326
+msgid "Auto-generate initial list password?"
+msgstr "¸ÞÀϸµ ¸®½ºÆ® Ãʱ⠺ñ¹Ð¹øÈ£¸¦ ÀÚµ¿ »ý¼º ÇÒ±î¿ä?"
+
+#: Mailman/Cgi/create.py:333
+msgid "Initial list password:"
+msgstr "¸ÞÀϸµ ¸®½ºÆ® Ãʱ⠺ñ¹Ð¹øÈ£:"
+
+#: Mailman/Cgi/create.py:338
+msgid "Confirm initial password:"
+msgstr "ÃÊ±â ÆÐ½º¿öµå¸¦ Çѹø ´õ ÀÔ·Â:"
+
+#: Mailman/Cgi/create.py:348
+msgid "List Characteristics"
+msgstr "¸ÞÀϸµ ¸®½ºÆ® Ư¡"
+
+#: Mailman/Cgi/create.py:352
+msgid ""
+"Should new members be quarantined before they\n"
+" are allowed to post unmoderated to this list? Answer <em>Yes</em> to "
+"hold\n"
+" new member postings for moderator approval by default."
+msgstr ""
+
+#: Mailman/Cgi/create.py:383
+msgid ""
+"Initial list of supported languages. <p>Note that if you do not\n"
+" select at least one initial language, the list will use the server\n"
+" default language of %(deflang)s"
+msgstr ""
+"Ãʱ⠸®½ºÆ®°¡ Áö¿øÇÏ´Â ¾ð¾î. <p>¸¸¾à Ãʱ⠾ð¾î¸¦ Çϳªµµ ¼±ÅÃÇÏÁö ¾Ê´Â´Ù¸é ¸®"
+"½ºÆ®´Â ¼­¹ö ±âº» ¾ð¾î : %(deflang)s ¸¦ »ç¿ëÇÒ °ÍÀÔ´Ï´Ù."
+
+#: Mailman/Cgi/create.py:394
+msgid "Send \"list created\" email to list owner?"
+msgstr "¸®½ºÆ® ¼ÒÀ¯ÀÚ¿¡°Ô \"¸®½ºÆ®°¡ »ý¼ºµÇ¾ú½À´Ï´Ù\" ¸ÞÀÏÀ» º¸³¾±î¿ä?"
+
+#: Mailman/Cgi/create.py:403
+msgid "List creator's (authentication) password:"
+msgstr "¸®½ºÆ® »ý¼ºÀÚÀÇ (ÀÎÁõ) ºñ¹Ð¹øÈ£ : "
+
+#: Mailman/Cgi/create.py:408
+msgid "Create List"
+msgstr "»õ ¸ÞÀϸµ ¸®½ºÆ® »ý¼ºÇϱâ"
+
+#: Mailman/Cgi/create.py:409
+msgid "Clear Form"
+msgstr "¾ç½Ä ¸ðµÎ Áö¿ì±â"
+
+#: Mailman/Cgi/edithtml.py:43
+msgid "General list information page"
+msgstr "¸ÞÀϸµ ¸®½ºÆ® Á¤º¸ ÆäÀÌÁö"
+
+#: Mailman/Cgi/edithtml.py:44
+msgid "Subscribe results page"
+msgstr "°¡ÀÔ °á°ú ÆäÀÌÁö"
+
+#: Mailman/Cgi/edithtml.py:45
+msgid "User specific options page"
+msgstr "»ç¿ëÀÚ Á¤ÀÇ ÆäÀÌÁö"
+
+#: Mailman/Cgi/edithtml.py:57
+msgid "List name is required."
+msgstr "¸®½ºÆ® À̸§ÀÌ ÇÊ¿äÇÕ´Ï´Ù."
+
+#: Mailman/Cgi/edithtml.py:97
+msgid "%(realname)s -- Edit html for %(template_info)s"
+msgstr "%(realname)s -- %(template_info)s HTML ¼öÁ¤Çϱâ"
+
+#: Mailman/Cgi/edithtml.py:103
+msgid "Edit HTML : Error"
+msgstr "HTML ¼öÁ¤ : ¿¡·¯"
+
+#: Mailman/Cgi/edithtml.py:104
+msgid "%(safetemplatename)s: Invalid template"
+msgstr "%(safetemplatename)s: À߸øµÈ ÅÛÇø´"
+
+#: Mailman/Cgi/edithtml.py:109 Mailman/Cgi/edithtml.py:110
+msgid "%(realname)s -- HTML Page Editing"
+msgstr "%(realname)s -- HTML ÆäÀÌÁö ¼öÁ¤Çϱâ"
+
+#: Mailman/Cgi/edithtml.py:111
+msgid "Select page to edit:"
+msgstr "¼öÁ¤ÇÒ ÆäÀÌÁö¸¦ ¼±ÅÃÇϼ¼¿ä:"
+
+#: Mailman/Cgi/edithtml.py:137
+msgid "View or edit the list configuration information."
+msgstr "¸ÞÀϸµ ¸®½ºÆ® ¼³Á¤ Á¤º¸ ¼öÁ¤, ȤÀº º¸±â."
+
+#: Mailman/Cgi/edithtml.py:145
+msgid "When you are done making changes..."
+msgstr "¼öÁ¤À» ´Ù Çϼ̴ٸé \"º¯°æÇϱâ\" ¸¦ ´­·¯ÁÖ¼¼¿ä."
+
+#: Mailman/Cgi/edithtml.py:146
+msgid "Submit Changes"
+msgstr "º¯°æÇϱâ"
+
+#: Mailman/Cgi/edithtml.py:153
+msgid "Can't have empty html page."
+msgstr "ºó html ÆäÀÌÁö¸¦ °¡Áú ¼ö ¾ø½À´Ï´Ù."
+
+#: Mailman/Cgi/edithtml.py:154
+msgid "HTML Unchanged."
+msgstr "HTML ÀÌ º¯°æµÇÁö ¾Ê¾Ò½À´Ï´Ù."
+
+#: Mailman/Cgi/edithtml.py:169
+msgid "HTML successfully updated."
+msgstr "HTML ÀÌ ¼º°øÀûÀ¸·Î ¾÷µ¥ÀÌÆ® µÇ¾ú½À´Ï´Ù."
+
+#: Mailman/Cgi/listinfo.py:71
+msgid "%(hostname)s Mailing Lists"
+msgstr "%(hostname)s ¸ÞÀϸµ ¸®½ºÆ®µé"
+
+#: Mailman/Cgi/listinfo.py:103
+msgid ""
+"<p>There currently are no publicly-advertised\n"
+" %(mailmanlink)s mailing lists on %(hostname)s."
+msgstr ""
+"<p>ÇöÀç %(hostname)s »ó¿¡´Â °ø°³ÀûÀ¸·Î ¼±ÀüµÈ %(mailmanlink)s\n"
+" ¸ÞÀϸµ ¸®½ºÆ®°¡ ¾ø½À´Ï´Ù."
+
+#: Mailman/Cgi/listinfo.py:107
+msgid ""
+"<p>Below is a listing of all the public mailing lists on\n"
+" %(hostname)s. Click on a list name to get more information "
+"about\n"
+" the list, or to subscribe, unsubscribe, and change the "
+"preferences\n"
+" on your subscription."
+msgstr ""
+"¾Æ·¡´Â %(hostname)s »ó¿¡ ÀÖ´Â °ø°³µÈ ¸ÞÀϸµ ¸®½ºÆ® ÀüºÎ¸¦ º¸¿©ÁÖ°í ÀÖ½À´Ï´Ù. "
+"¸®½ºÆ®ÀÇ ´õ ¸¹Àº Á¤º¸¸¦ ¿øÇϰųª, °¡ÀÔÀ» ÇϽðųª, Å»Å𸦠Çϰųª, ¿©·¯ºÐÀÇ °¡"
+"ÀÔ ¼³Á¤À» º¯°æÇϽǷÁ¸é ¸ÞÀϸµ ¸®½ºÆ®ÀÇ À̸§ À» Ŭ¸¯Çϼ¼¿ä."
+
+#: Mailman/Cgi/listinfo.py:113
+msgid "right"
+msgstr "¿Ã¹Ù¸¥"
+
+#: Mailman/Cgi/listinfo.py:116
+#, fuzzy
+msgid ""
+" To visit the general information page for an unadvertised list,\n"
+" open a URL similar to this one, but with a '/' and the %(adj)s\n"
+" list name appended.\n"
+" <p>List administrators, you can visit "
+msgstr ""
+" ¸®½ºÆ® °ü¸®ÀÚÀ̽øé, ¿©·¯ºÐÀÇ ¸ÞÀϸµ ¸®½ºÆ®À» À§ÇÑ °ü¸® ÀÎÅÍÆäÀ̽º¸¦ ãÀ¸½Ç "
+"¼ö ÀÖ´Â"
+
+#: Mailman/Cgi/listinfo.py:121
+msgid "the list admin overview page"
+msgstr "¸®½ºÆ® °ü¸® ¼Ò°³ ÆäÀÌÁö"
+
+#: Mailman/Cgi/listinfo.py:122
+msgid ""
+" to find the management interface for your list.\n"
+" <p>Send questions or comments to "
+msgstr ""
+"¸¦ ¹æ¹® ÇÒ ¼ö ÀÖ½À´Ï´Ù.\t<p>Áú¹®°ú °ÇÀÇ»çÇ×Àº ´ÙÀ½ ÁÖ¼Ò·Î º¸³» ÁֽʽÿÀ:"
+
+#: Mailman/Cgi/listinfo.py:187
+msgid "Edit Options"
+msgstr "¼öÁ¤ ¼³Á¤ ºÎºÐ"
+
+#: Mailman/Cgi/listinfo.py:194 Mailman/Cgi/options.py:767
+#: Mailman/Cgi/roster.py:111
+msgid "View this page in"
+msgstr "ÀÌ ÆäÀÌÁö º¸±â"
+
+#: Mailman/Cgi/options.py:51 Mailman/Cgi/options.py:68
+msgid "CGI script error"
+msgstr "CGI ½ºÅ©¸³Æ® ¿¡·¯"
+
+#: Mailman/Cgi/options.py:54
+msgid "Invalid options to CGI script."
+msgstr "À߸øµÈ CGI ½ºÅ©¸³Æ® Çü½ÄÀÔ´Ï´Ù."
+
+#: Mailman/Cgi/options.py:96
+msgid "No address given"
+msgstr "E¸ÞÀÏ ÁÖ¼Ò°¡ ÁÖ¾îÁöÁö ¾Ê¾Ò½À´Ï´Ù."
+
+#: Mailman/Cgi/options.py:108 Mailman/Cgi/options.py:155
+#: Mailman/Cgi/options.py:177
+msgid "No such member: %(safeuser)s."
+msgstr "%(safeuser)s ¶ó´Â »ç¿ëÀÚ°¡ ¾ø½À´Ï´Ù."
+
+#: Mailman/Cgi/options.py:150 Mailman/Cgi/options.py:160
+msgid "The confirmation email has been sent."
+msgstr "È®ÀÎ E¸ÞÀÏÀÌ º¸³»Á³½À´Ï´Ù."
+
+#: Mailman/Cgi/options.py:171 Mailman/Cgi/options.py:183
+#: Mailman/Cgi/options.py:226
+msgid "A reminder of your password has been emailed to you."
+msgstr "´ç½ÅÀÇ ÆÐ½º¿öµå¸¦ Æ÷ÇÔÇÑ ¸ÞÀÏÀ» ´ç½Å¿¡°Ô Àü´ÞµÇ¾ú½À´Ï´Ù"
+
+#: Mailman/Cgi/options.py:200
+msgid "Authentication failed."
+msgstr "ÀÎÁõ ½ÇÆÐ"
+
+#: Mailman/Cgi/options.py:232
+msgid "List subscriptions for %(user)s on %(hostname)s"
+msgstr "%(hostname)s »óÀÇ %(user)s ¸¦ À§ÇÑ ¸®½ºÆ® °¡ÀÔ"
+
+#: Mailman/Cgi/options.py:235
+msgid ""
+"Click on a link to visit your options page for the\n"
+" requested mailing list."
+msgstr "¿äûÇÑ ¸ÞÀϸµ ¸®½ºÆ®ÀÇ ¼³Á¤ ÆäÀÌÁö¸¦ ¹æ¹®ÇϽǷÁ¸é ¸µÅ©¸¦ Ŭ¸¯Çϼ¼¿ä."
+
+#: Mailman/Cgi/options.py:284
+msgid "Addresses did not match!"
+msgstr "E¸ÞÀÏ ÁÖ¼Ò°¡ ¸ÂÁö ¾Ê½À´Ï´Ù!"
+
+#: Mailman/Cgi/options.py:289
+msgid "You are already using that email address"
+msgstr "´ç½ÅÀº ÀÌ¹Ì E¸ÞÀÏ ÁÖ¼Ò¸¦ »ç¿ëÁßÀÔ´Ï´Ù."
+
+#: Mailman/Cgi/options.py:301
+msgid ""
+"The new address you requested %(newaddr)s is already a member of the\n"
+"%(listname)s mailing list, however you have also requested a global change "
+"of\n"
+"address. Upon confirmation, any other mailing list containing the address\n"
+"%(user)s will be changed. "
+msgstr ""
+
+#: Mailman/Cgi/options.py:310
+#, fuzzy
+msgid "The new address is already a member: %(newaddr)s"
+msgstr "%(newaddr)s ´Â ÀÌ¹Ì ¸®½ºÆ®ÀÇ È¸¿øÀÔ´Ï´Ù."
+
+#: Mailman/Cgi/options.py:316
+msgid "Addresses may not be blank"
+msgstr "E¸ÞÀÏ ÁÖ¼Ò´Â ºñ¾î ÀÖÀ¸¸é ¾ÈµË´Ï´Ù."
+
+#: Mailman/Cgi/options.py:328
+#, fuzzy
+msgid "A confirmation message has been sent to %(newaddr)s. "
+msgstr "È®ÀÎ ¸Þ¼¼Áö°¡ %(newaddr)s ·Î º¸³»Á³½À´Ï´Ù."
+
+#: Mailman/Cgi/options.py:337
+msgid "Bad email address provided"
+msgstr "À߸øµÈ E¸ÞÀÏ ÁÖ¼Ò¸¦ Áּ̽À´Ï´Ù."
+
+#: Mailman/Cgi/options.py:339
+msgid "Illegal email address provided"
+msgstr "ÀÌ»óÇÑ Çü½ÄÀÇ E¸ÞÀÏ ÁÖ¼Ò¸¦ Áּ̽À´Ï´Ù."
+
+#: Mailman/Cgi/options.py:341
+msgid "%(newaddr)s is already a member of the list."
+msgstr "%(newaddr)s ´Â ÀÌ¹Ì ¸®½ºÆ®ÀÇ È¸¿øÀÔ´Ï´Ù."
+
+#: Mailman/Cgi/options.py:350
+#, fuzzy
+msgid "Member name successfully changed. "
+msgstr "ȸ¿ø À̸§ÀÌ ¼º°øÀûÀ¸·Î º¯°æµÇ¾ú½À´Ï´Ù."
+
+#: Mailman/Cgi/options.py:361
+msgid "Passwords may not be blank"
+msgstr "ÆÐ½º¿öµå(µé)Àº ºñ¾îÀÖÀ¸¸é ¾ÈµË´Ï´Ù."
+
+#: Mailman/Cgi/options.py:366
+msgid "Passwords did not match!"
+msgstr "ÆÐ½º¿öµå(µé)ÀÌ ¸ÂÁö ¾Ê½À´Ï´Ù!"
+
+#: Mailman/Cgi/options.py:381 Mailman/Commands/cmd_password.py:79
+#: Mailman/Commands/cmd_password.py:105
+msgid "Password successfully changed."
+msgstr "ºñ¹Ð¹øÈ£°¡ ¼º°øÀûÀ¸·Î º¯°æµÇ¾ú½À´Ï´Ù."
+
+#: Mailman/Cgi/options.py:390
+msgid ""
+"You must confirm your unsubscription request by turning\n"
+" on the checkbox below the <em>Unsubscribe</em> button. You\n"
+" have not been unsubscribed!"
+msgstr ""
+"´ç½ÅÀº ¾Æ·¡ÀÇ <em>Å»ÅðÇϱâ</em>¹öư üũ¹Ú½º¸¦ ¼³Á¤ÇÔÀ¸·Î½á ´ç½ÅÀÇ Å»Åð ¿äû"
+"À» È®ÀÎÇØ¾ß ÇÕ´Ï´Ù. ´ç½ÅÀº Å»ÅðµÇÁö ¾Ê¾Ò½À´Ï´Ù!"
+
+#: Mailman/Cgi/options.py:422
+msgid "Unsubscription results"
+msgstr "Å»Åð °á°úµé"
+
+#: Mailman/Cgi/options.py:426
+msgid ""
+"Your unsubscription request has been received and\n"
+" forwarded on to the list moderators for approval. You will\n"
+" receive notification once the list moderators have made their\n"
+" decision."
+msgstr ""
+"´ç½ÅÀÇ Å»Åð ¿äûÀº ¸®½ºÆ® ±Û°ü¸®ÀÚÀÇ ½ÂÀÎÀ» À§ÇØ ¼º°øÀûÀ¸·Î Àü´ÞµÇ¾ú½À´Ï´Ù. "
+"´ç½ÅÀº ±Û°ü¸®ÀÚÀÇ °áÁ¤¿¡ ´ëÇÑ °øÁö¸¦ E¸ÞÀÏ·Î ¹ÞÀ¸½Ç ¼ö ÀÖ½À´Ï´Ù."
+
+#: Mailman/Cgi/options.py:431
+msgid ""
+"You have been successfully unsubscribed from the\n"
+" mailing list %(fqdn_listname)s. If you were receiving digest\n"
+" deliveries you may get one more digest. If you have any "
+"questions\n"
+" about your unsubscription, please contact the list owners at\n"
+" %(owneraddr)s."
+msgstr ""
+"´ç½ÅÀº %(fqdn_listname)s ¿¡¼­ ¼º°øÀûÀ¸·Î Å»ÅðµÇ¾ú½À´Ï´Ù. ¸¸¾à ´ç½ÅÀÌ ¹­À½¹è"
+"´Þ Çü½ÄÀÇ ±ÛÀ» ±¸µ¶Çϴ ȸ¿øÀ̴̼ٸé Çѹø ÀÌ»óÀÇ ¹­À½¹è´Þ ±ÛÀ» ¹Þ¾Æ º¸½Ç ¼ö "
+"ÀÖ½À´Ï´Ù. ¸¸¾à ¿©·¯ºÐÀÌ Å»Åð¿¡ ´ëÇÑ ¾î¶² Áú¹®ÀÌ ÀÖÀ¸½Ã¸é %(owneraddr)s (¸®½º"
+"Æ® ¼ÒÀ¯ÁÖ) ·Î ¿¬¶ô Áֽñ⠹ٶø´Ï´Ù."
+
+#: Mailman/Cgi/options.py:582
+msgid ""
+"The list administrator has disabled digest delivery for\n"
+" this list, so your delivery option has not been set. However "
+"your\n"
+" other options have been set successfully."
+msgstr ""
+"¸®½ºÆ® °ü¸®ÀÚ°¡ ÀÌ ¸ÞÀϸµ ¸®½ºÆ®¸¦ ¹­À½¹è´Þ ±ÝÁö·Î ¼³Á¤ÇÏ¿´½À´Ï´Ù. ±×·¡¼­ ´ç"
+"½ÅÀÇ ¹è´Þ ¼³Á¤Àº ¼º°øÀûÀ¸·Î º¯°æµÇÁö ¾Ê¾Ò½À´Ï´Ù. ÇÏÁö¸¸ ´ç½ÅÀÇ ´Ù¸¥ ¼³Á¤Àº ¼º"
+"°øÀûÀ¸·Î º¯°æµÇ¾ú½À´Ï´Ù."
+
+#: Mailman/Cgi/options.py:586
+msgid ""
+"The list administrator has disabled non-digest delivery\n"
+" for this list, so your delivery option has not been set. "
+"However\n"
+" your other options have been set successfully."
+msgstr ""
+"¸®½ºÆ® °ü¸®ÀÚ°¡ ÀÌ ¸ÞÀϸµ ¸®½ºÆ®¸¦ °³º°¹è´Þ ±ÝÁö·Î ¼³Á¤ÇÏ¿´½À´Ï´Ù. ±×·¡¼­ ´ç"
+"½ÅÀÇ ¹è´Þ ¼³Á¤Àº ¼º°øÀûÀ¸·Î º¯°æµÇÁö ¾Ê¾Ò½À´Ï´Ù. ÇÏÁö¸¸ ´ç½ÅÀÇ ´Ù¸¥ ¼³Á¤Àº ¼º"
+"°øÀûÀ¸·Î º¯°æµÇ¾ú½À´Ï´Ù."
+
+#: Mailman/Cgi/options.py:590
+msgid "You have successfully set your options."
+msgstr "¼³Á¤ º¯°æÀ» ¼º°øÀûÀ¸·Î ¼öÇàÇÏ¿´½À´Ï´Ù."
+
+#: Mailman/Cgi/options.py:593
+msgid "You may get one last digest."
+msgstr "´ç½ÅÀº Çϳª ÀÌ»óÀÇ ¹­À½¹è´ÞÀ» ¹ÞÀ¸½Ç ¼ö ÀÖ½À´Ï´Ù."
+
+#: Mailman/Cgi/options.py:662
+msgid "<em>Yes, I really want to unsubscribe</em>"
+msgstr "<em>¿¹, Àü Á¤¸» Å»ÅðÇÏ½Ç ¿øÇÕ´Ï´Ù.</em>"
+
+#: Mailman/Cgi/options.py:666
+msgid "Change My Password"
+msgstr "³ªÀÇ ºñ¹Ð¹øÈ£ º¯°æÇϱâ"
+
+#: Mailman/Cgi/options.py:669
+msgid "List my other subscriptions"
+msgstr "³ªÀÇ ´Ù¸¥ °¡ÀÔ ¸ñ·Ï"
+
+#: Mailman/Cgi/options.py:675
+msgid "Email My Password To Me"
+msgstr "³ª¿¡°Ô ³ªÀÇ ºñ¹Ð¹øÈ£¸¦ E¸ÞÀÏ·Î ºÙÇôÁà~"
+
+#: Mailman/Cgi/options.py:677
+msgid "password"
+msgstr "ºñ¹Ð¹øÈ£"
+
+#: Mailman/Cgi/options.py:679
+msgid "Log out"
+msgstr "·Î±× ¾Æ¿ô"
+
+#: Mailman/Cgi/options.py:681
+msgid "Submit My Changes"
+msgstr "¼³Á¤ º¯°æÇϱâ"
+
+#: Mailman/Cgi/options.py:693
+msgid "days"
+msgstr "³¯µé"
+
+#: Mailman/Cgi/options.py:695
+msgid "day"
+msgstr "ÀÏ"
+
+#: Mailman/Cgi/options.py:696
+msgid "%(days)d %(units)s"
+msgstr ""
+
+#: Mailman/Cgi/options.py:702
+msgid "Change My Address and Name"
+msgstr "³ªÀÇ E¸ÞÀÏ ÁÖ¼Ò¿Í À̸§ º¯°æÇϱâ"
+
+#: Mailman/Cgi/options.py:726
+msgid "<em>No topics defined</em>"
+msgstr "<em>ÁÖÁ¦°¡ Á¤ÀÇµÈ °ÍÀÌ ¾ø½À´Ï´Ù.</em>"
+
+#: Mailman/Cgi/options.py:734
+msgid ""
+"\n"
+"You are subscribed to this list with the case-preserved address\n"
+"<em>%(cpuser)s</em>."
+msgstr ""
+"\n"
+"ÀÌ¹Ì ¿¹¾àµÇ¾î ÀÖ´Â ÁÖ¼Ò(<em>%(cpuser)s</em)·Î ÀÌ ¸ÞÀϸµ ¸®½ºÆ®¿¡ °¡ÀÔÇϼ̽À´Ï"
+"´Ù."
+
+#: Mailman/Cgi/options.py:748
+msgid "%(realname)s list: member options login page"
+msgstr "%(realname)s ¸®½ºÆ®: ȸ¿ø ¼³Á¤ ·Î±ä ÆäÀÌÁö"
+
+#: Mailman/Cgi/options.py:749
+msgid "email address and "
+msgstr "E¸ÞÀÏ ÁÖ¼Ò¿Í"
+
+#: Mailman/Cgi/options.py:751
+msgid "%(realname)s list: member options for user %(user)s"
+msgstr "%(realname)s ¸®½ºÆ®: %(user)s ȸ¿ø ¼³Á¤"
+
+#: Mailman/Cgi/options.py:777
+#, fuzzy
+msgid ""
+"In order to change your membership option, you must\n"
+" first log in by giving your %(extra)smembership password in the section\n"
+" below. If you don't remember your membership password, you can have it\n"
+" emailed to you by clicking on the button below. If you just want to\n"
+" unsubscribe from this list, click on the <em>Unsubscribe</em> button and "
+"a\n"
+" confirmation message will be sent to you.\n"
+"\n"
+" <p><strong><em>Important:</em></strong> From this point on, you must "
+"have\n"
+" cookies enabled in your browser, otherwise none of your changes will "
+"take\n"
+" effect.\n"
+" "
+msgstr ""
+"´ç½ÅÀÇ È¸¿ø ¼³Á¤À» º¯°æÇϱâ À§ÇØ ¸ÕÀú ´ç½ÅÀº ¾Æ·¡ ¼½¼Ç¿¡ ´ç½ÅÀÇ %(extra)sȸ"
+"¿ø ºñ¹Ð¹øÈ£¸£ ÀÔ·ÂÇÏ¿©¾ß ÇÕ´Ï´Ù. ¸¸¾à ´ç½ÅÀÇ È¸¿ø ºñ¹Ð ¹øÈ£¸¦ ÀØÀ¸¼Ì´Ù¸é ¾Æ"
+"·¡ ¹öưÀ» Ŭ¸¯ÇÔÀ¸·Î½á E¸ÞÀÏ·Î ÆÐ½º¿öµå¸¦ ¹Þ¾Æ º¸½Ç ¼ö ÀÖ½À´Ï´Ù. ¸¸¾à ´ç½ÅÀÌ "
+"ÀÌ ¸ÞÀϸµ ¸®½ºÆ®¿¡¼­ Å»ÅðÇÏ±æ ¿øÇÑ´Ù¸é <em>Å»ÅðÇϱâ</em> ¹öưÀ» Ŭ¸¯ÇϽøé È®"
+"ÀÎ ¸ÞÀÏÀ» ´ç½Å¿¡°Ô º¸³»Áú °ÍÀÔ´Ï´Ù. <p><strong><em>Áß¿ä:</em></strong> ÀÌ ½Ã"
+"Á¡ºÎÅÍ ¿©·¯ºÐÀÇ ºê¶ó¿ìÀú¿¡ Äí۰¡ ÀúÀåµË´Ï´Ù. ÀÌ ºÎºÐºÎÅÍ ½ÃÀÛÇÏÁö ¾ÊÀ¸¸é, ´Ù"
+"¸¥ º¯°æµéÀº ½ÇÁ¦·Î Àû¿ëµÇÁö ¾Ê½À´Ï´Ù.<p>Mailman ÀÇ °ü¸® ÀÎÅÍÆäÀ̽º¿¡´Â ¼¼¼Ç "
+"Äí۸¦ »ç¿ëÇϱ⠶§¹®¿¡ ¸Å¹ø ÀÎÁõÇÒ Çʿ䰡 ¾øÀ¸¸ç ÀÌ ÄíŰ´Â ¿©·¯ºÐÀÌ ºê¶ó¿ìÀú"
+"¸¦ ³¡³Â°Å³ª, °ü¸®ÀÚ È­¸é¿¡¼­ º¼¼ö ÀÖ´Â \"<em>·Î±×¾Æ¿ô</em>\"(¿©·¯ºÐÀÌ ¼º°øÀû"
+"À¸·Î ·Î±ä À» ÇÏ¸é º¼ ¼ö ÀÖ½À´Ï´Ù.) ¸¦ Ŭ¸¯Çϸé ÀÚµ¿À¸·Î Áö¿öÁý´Ï´Ù."
+
+#: Mailman/Cgi/options.py:791
+msgid "Email address:"
+msgstr "E¸ÞÀÏ ÁÖ¼Ò:"
+
+#: Mailman/Cgi/options.py:795
+msgid "Password:"
+msgstr "ºñ¹Ð¹øÈ£:"
+
+#: Mailman/Cgi/options.py:797
+msgid "Log in"
+msgstr "·Î±×ÀÎ"
+
+#: Mailman/Cgi/options.py:805
+msgid ""
+"By clicking on the <em>Unsubscribe</em> button, a\n"
+" confirmation message will be emailed to you. This message will have a\n"
+" link that you should click on to complete the removal process (you can\n"
+" also confirm by email; see the instructions in the confirmation\n"
+" message)."
+msgstr ""
+"<em>Å»ÅðÇϱâ</em> ¹öưÀ» Ŭ¸¯ÇÔÀ¸·Î½á È®ÀÎ ¸ÞÀÏÀÌ ´ç½Å¿¡°Ô ¹è´ÞµÉ °ÍÀÔ´Ï´Ù. "
+"ÀÌ ¸Þ¼¼Áö´Â Å»Åð ó¸®(E¸ÞÀÏ·Î ¶ÇÇÑ Ã³¸®ÇÒ ¼ö ÀÖÀ¸¸ç ±âŸ ÀÚ¼¼ÇÑ »çÇ×Àº È®ÀÎ "
+"¸ÞÀϳ»ÀÇ ¾È³»¹®À» º¸½Ã±â ¹Ù¶ø´Ï´Ù.)¸¦ ¿Ï·áÇϱâ À§ÇØ ´ç½ÅÀÌ ´­·¯¾ßÇÒ ¸µÅ©¸¦ Æ÷"
+"ÇÔÇϰí ÀÖ½À´Ï´Ù."
+
+#: Mailman/Cgi/options.py:813
+msgid "Password reminder"
+msgstr "ÆÐ½º¿öµå »ó±âÀÚ(Reminder)"
+
+#: Mailman/Cgi/options.py:817
+msgid ""
+"By clicking on the <em>Remind</em> button, your\n"
+" password will be emailed to you."
+msgstr ""
+"<em>³ªÀÇ ºñ¹Ð¹øÈ£¸¦ º¸³»Áà!</em> ¹öưÀ» Ŭ¸¯ÇÔÀ¸·Î½á ´ç½ÅÀÇ ºñ¹Ð¹øÈ£°¡ ´ç½Å¿¡"
+"°Ô ¹è´ÞµÉ °ÍÀÔ´Ï´Ù."
+
+#: Mailman/Cgi/options.py:820
+msgid "Remind"
+msgstr "³ªÀÇ ºñ¹Ð¹øÈ£¸¦ º¸³»Áà!"
+
+#: Mailman/Cgi/options.py:920
+msgid "<missing>"
+msgstr "<ºüÁü>"
+
+#: Mailman/Cgi/options.py:931
+msgid "Requested topic is not valid: %(topicname)s"
+msgstr "¿äûÇÑ ÁÖÁ¦°¡ Ʋ¸³´Ï´Ù: %(topicname)s"
+
+#: Mailman/Cgi/options.py:936
+msgid "Topic filter details"
+msgstr "ÁÖÁ¦ °É·¯³»±â ¼¼ºÎ»çÇ×"
+
+#: Mailman/Cgi/options.py:939
+msgid "Name:"
+msgstr "À̸§: "
+
+#: Mailman/Cgi/options.py:941
+msgid "Pattern (as regexp):"
+msgstr "ÆÐÅÏ(Á¤±ÔÇ¥Çö½ÄÀ¸·Î):"
+
+#: Mailman/Cgi/private.py:61
+msgid "Private Archive Error"
+msgstr "ºñ°ø°³ ÀúÀå¼Ò ¿¡·¯"
+
+#: Mailman/Cgi/private.py:62
+msgid "You must specify a list."
+msgstr "¸®½ºÆ® À̸§À» ÁöÁ¤ÇÏ¼Å¾ß ÇÕ´Ï´Ù."
+
+#: Mailman/Cgi/private.py:99
+msgid "Private Archive Error - %(msg)s"
+msgstr "ºñ°ø°³ ÀúÀå¼Ò ¿¡·¯ - %(msg)s"
+
+#: Mailman/Cgi/private.py:154
+msgid "Private archive file not found"
+msgstr "ºñ°ø°³ ÀúÀå¼Ò ÆÄÀÏÀ» ãÀ» ¼ö ¾ø½À´Ï´Ù."
+
+#: Mailman/Cgi/rmlist.py:81
+msgid "You're being a sneaky list owner!"
+msgstr "ºñ¿­ÇÏ°Ô ¸®½ºÆ® °ü¸®ÀÚ¸¦ Èä³»³»´Â ±º¿ä!"
+
+#: Mailman/Cgi/rmlist.py:119
+msgid "You are not authorized to delete this mailing list"
+msgstr "´ç½ÅÀº ÀÌ ¸ÞÀϸµ ¸®½ºÆ®¸¦ Áö¿ï ÃæºÐÇÑ ±ÇÇÑÀÌ ¾ø½À´Ï´Ù."
+
+#: Mailman/Cgi/rmlist.py:160
+msgid "Mailing list deletion results"
+msgstr "¸ÞÀϸµ ¸®½ºÆ® »èÁ¦ °á°ú"
+
+#: Mailman/Cgi/rmlist.py:167
+msgid ""
+"You have successfully deleted the mailing list\n"
+" <b>%(listname)s</b>."
+msgstr "´ç½ÅÀº <b>%(listname)s</b> ¸ÞÀϸµ ¸®½ºÆ®¸¦ ¼º°øÀûÀ¸·Î »èÁ¦ÇÏ¿´½À´Ï´Ù."
+
+#: Mailman/Cgi/rmlist.py:171
+msgid ""
+"There were some problems deleting the mailing list\n"
+" <b>%(listname)s</b>. Contact your site administrator at %(sitelist)"
+"s\n"
+" for details."
+msgstr ""
+
+#: Mailman/Cgi/rmlist.py:188
+msgid "Permanently remove mailing list <em>%(realname)s</em>"
+msgstr "<em>%(realname)s</em> ¸ÞÀϸµ ¸®½ºÆ®¸¦ ¿µ¿øÈ÷ Áö¿ö¹ö¸®±â"
+
+#: Mailman/Cgi/rmlist.py:202
+msgid ""
+"This page allows you as the list owner, to permanent\n"
+" remove this mailing list from the system. <strong>This action is not\n"
+" undoable</strong> so you should undertake it only if you are absolutely\n"
+" sure this mailing list has served its purpose and is no longer "
+"necessary.\n"
+"\n"
+" <p>Note that no warning will be sent to your list members and after "
+"this\n"
+" action, any subsequent messages sent to the mailing list, or any of its\n"
+" administrative addreses will bounce.\n"
+"\n"
+" <p>You also have the option of removing the archives for this mailing "
+"list\n"
+" at this time. It is almost always recommended that you do\n"
+" <strong>not</strong> remove the archives, since they serve as the\n"
+" historical record of your mailing list.\n"
+"\n"
+" <p>For your safety, you will be asked to reconfirm the list password.\n"
+" "
+msgstr ""
+"ÀÌ ÆäÀÌÁö´Â ¸®½ºÆ® ¼ÒÀ¯ÁÖÀÎ ´ç½Å¸¸ º¼ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ºÎºÐÀº ½Ã½ºÅÛÀ¸·ÎºÎÅÍ "
+"¸ÞÀϸµ ¸®½ºÆ®¸¦ ¿µ¿øÈ÷ Áö¿ì´Â °ÍÀ» Æ÷ÇÔÇÕ´Ï´Ù. <strong>ÀÌ ÇàÀ§ ÈÄ¿¡´Â ¿ø»óÅÂ"
+"·Î µ¹¸± ¼ö ¾ø½À´Ï´Ù. ±×·¡¼­ ´ç½ÅÀº ÀÌ ¸ÞÀϸµ ¸®½ºÆ®°¡ Á¦°øÇÏ´Â °ÍÀÌ ¹«¾ùÀÌ"
+"°í, ¸ñÀûÀÌ ¹«¾ùÀ̸ç, ´õ ÀÌ»ó ÇÊ¿äÇÑ °¡¿¡ ´ëÇÑ Àý´ëÀûÀÎ È®½ÅÀÌ ÀÖ°í ³ª¼­¾ß ÀÌ"
+"°ÍÀ» ¼öÇàÇϽʽÿÀ.<p>ÀÌ Çൿ µÚ¿¡ ´ç½ÅÀÇ ¸®½ºÆ® ȸ¿øµé¿¡°Ô °æ°í ¸Þ¼¼Áö´Â º¸³»"
+"ÁöÁö ¾Ê½À´Ï´Ù. ¸ÞÀϸµ ¸®½ºÆ®·Î º¸³»Áö´Â ¸Þ¼¼Áö³ª, °ü¸®ÀÚ ÁÖ¼Ò·Î ¿À´Â °ÍµéÀº "
+"¸ðµÎ ¹Ù¿î½ºµË´Ï´Ù.<p> ´ç½ÅÀº ¶ÇÇÑ ÀÌ ¸ÞÀϸµ ¸®½ºÆ®¸¦ À§ÇÑ ÀúÀå¼Ò¸¦ Á¦°ÅÇÏ´Â "
+"¼³Á¤À» ÇÒ ¼ö ÀÖ½À´Ï´Ù. ´ç½ÅÀÇ ¸ÞÀϸµ ¸®½ºÆ®¿¡ ½Ã°£¼ø´ë·Î ±â·ÏµÈ ³»¿ëÀ» Á¦°øÇÏ"
+"±â ¶§¹®¿¡ ÀúÀå¼Ò¸¦ Á¦°ÅÇÏ´Â °ÍÀº Àý´ë <strong>ÃßõÇÏÁö ¾Ê½À´Ï´Ù</strong>. "
+"<p> ´ç½ÅÀÇ ¾ÈÀüÀ» À§ÇØ ¸®½ºÆ® ºñ¹Ð¹øÈ£¸¦ ´Ù½Ã ÇÑ ¹ø ´õ ¹°¾î º¼ °Í ÀÔ´Ï´Ù."
+
+#: Mailman/Cgi/rmlist.py:223
+msgid "List password:"
+msgstr "¸®½ºÆ® ºñ¹Ð¹øÈ£"
+
+#: Mailman/Cgi/rmlist.py:227
+msgid "Also delete archives?"
+msgstr "ÀúÀå¼Ò ¶ÇÇÑ »èÁ¦ÇÒ±î¿ä?"
+
+#: Mailman/Cgi/rmlist.py:235
+msgid "<b>Cancel</b> and return to list administration"
+msgstr "<b>Ãë¼Ò<b>ÇÏ°í ¸®½ºÆ® °ü¸®·Î µ¹¾Æ°¡±â"
+
+#: Mailman/Cgi/rmlist.py:238
+msgid "Delete this list"
+msgstr "ÀÌ ¸®½ºÆ® »èÁ¦Çϱâ"
+
+#: Mailman/Cgi/roster.py:48 Mailman/Cgi/subscribe.py:50
+msgid "Invalid options to CGI script"
+msgstr "CGI ½ºÅ©¸³Æ® Çü½ÄÀÌ À߸øµÇ¾ú½À´Ï´Ù."
+
+#: Mailman/Cgi/roster.py:99
+msgid "%(realname)s roster authentication failed."
+msgstr "%(realname)s °¡ÀÔÀÚ ¸ñ·Ï º¸±â ÀÎÁõ ½ÇÆÐ"
+
+#: Mailman/Cgi/roster.py:127 Mailman/Cgi/roster.py:128
+#: Mailman/Cgi/subscribe.py:49 Mailman/Cgi/subscribe.py:60
+msgid "Error"
+msgstr "¿¡·¯"
+
+#: Mailman/Cgi/subscribe.py:109
+msgid "You must supply a valid email address."
+msgstr "¿Ã¹Ù¸¥ E¸ÞÀÏ ÁÖ¼Ò¸¦ ÀÔ·ÂÇÏ¼Å¾ß ÇÕ´Ï´Ù."
+
+#: Mailman/Cgi/subscribe.py:122
+msgid "You may not subscribe a list to itself!"
+msgstr "´ç½ÅÀº ±×ÀÚü·Î ¸ÞÀϸµ ¸®½ºÆ®¿¡ °¡ÀÔÇÏ½Ã¸é ¾ÈµË´Ï´Ù."
+
+#: Mailman/Cgi/subscribe.py:131
+msgid "If you supply a password, you must confirm it."
+msgstr "¸¸¾à ºñ¹Ð¹øÈ£¸¦ ÀÔ·ÂÇϽŴٸé È®ÀÎÀ» À§ÇØ Çѹø ´õ ÀÔ·ÂÇÏ¼Å¾ß ÇÕ´Ï´Ù."
+
+#: Mailman/Cgi/subscribe.py:133
+msgid "Your passwords did not match."
+msgstr "´ç½ÅÀÇ ºñ¹Ð¹øÈ£´Â ¼­·Î ¸ÂÁö ¾Ê½À´Ï´Ù."
+
+#: Mailman/Cgi/subscribe.py:167
+msgid ""
+"Your subscription request has been received, and will soon be acted upon.\n"
+"Depending on the configuration of this mailing list, your subscription "
+"request\n"
+"may have to be first confirmed by you via email, or approved by the list\n"
+"moderator. If confirmation is required, you will soon get a confirmation\n"
+"email which contains further instructions."
+msgstr ""
+"¿©·¯ºÐÀÇ °¡ÀÔ ¿äûÀº ¹Þ¾Æ Á³½À´Ï´Ù. ±× ÈÄÀÇ ÇൿÀº ÀÌ ¸ÞÀϸµ ¸®½ºÆ®ÀÇ ¼³Á¤¿¡ "
+"µû¶ó ´Þ¶ó Áú ¼ö ÀÖ½À´Ï´Ù. ¿©·¯ºÐÀÇ °¡ÀÔ ¿äûÀº óÀ½¿¡´Â E¸ÞÀÏÀ» ÅëÇØ¼­ È®ÀιÞ"
+"¾Æ¾ß ÇÏ¸ç °æ¿ì¿¡ µû¶ó¼­ ±Û°ü¸®ÀÚ·Î ºÎÅÍ ½ÂÀÎ ¶ÇÇÑ ¹Þ¾Æ¾ß ÇÕ´Ï´Ù. ¸¸¾à È®ÀÎÀÌ "
+"ÇÊ¿äÇÏ´Ù¸é ´ÙÀ½ Áö½Ã»çÇ×À» Æ÷ÇÔÇϰí ÀÖ´Â È®ÀÎ ¸ÞÀÏÀ» ¿©·¯ºÐÀÇ E¸ÞÀÏ ÁÖ¼Ò·Î ¹Þ"
+"À¸½Ç ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù."
+
+#: Mailman/Cgi/subscribe.py:181
+msgid ""
+"The email address you supplied is banned from this\n"
+" mailing list. If you think this restriction is erroneous, please\n"
+" contact the list owners at %(listowner)s."
+msgstr ""
+"´ç½ÅÀÌ ÀÔ·ÂÇϽŠE¸ÞÀÏ ÁÖ¼Ò´Â ÀÌ ¸ÞÀϸµ ¸®½ºÆ®¿¡¼­ Ãß¹æ´çÇÑ ÁÖ¼ÒÀÔ´Ï´Ù. ¸¸¾à "
+"´ç½ÅÀÌ À̰Ϳ¡ ½Ç¼öÀÖ´Ù°í »ý°¢ÇÏ½Ã¸é ¸®½ºÆ® ¼ÒÀ¯ÁÖ(%(listowner)s)¿¡°Ô ¿¬¶ôÇϽÃ"
+"±â ¹Ù¶ø´Ï´Ù."
+
+#: Mailman/Cgi/subscribe.py:185
+msgid ""
+"The email address you supplied is not valid. (E.g. it must contain an\n"
+"`@'.)"
+msgstr ""
+"´ç½ÅÀÌ ÀÔ·ÂÇϽŠE¸ÞÀÏ ÁÖ¼Ò°¡ Çü½Ä¿¡ ¸ÂÁö ¾Ê½À´Ï´Ù. (¿¹¸¦ µé¾î `@' ¹®ÀÚ¸¦ Æ÷ÇÔ"
+"ÇØ¾ß ÇÕ´Ï´Ù.)"
+
+#: Mailman/Cgi/subscribe.py:189
+msgid ""
+"Your subscription is not allowed because the email address you gave is\n"
+"insecure."
+msgstr ""
+"´ç½ÅÀÌ ÀÔ·ÂÇϽŠE¸ÞÀÏ ÁÖ¼Ò´Â º¸¾È¿¡ Ãë¾àÇϱ⠶§¹®¿¡ °¡ÀÔÀ» ¹Þ¾ÆµéÀÏ ¼ö ¾ø½À´Ï"
+"´Ù."
+
+#: Mailman/Cgi/subscribe.py:197
+msgid ""
+"Confirmation from your email address is required, to prevent anyone from\n"
+"subscribing you without permission. Instructions are being sent to you at\n"
+"%(email)s. Please note your subscription will not start until you confirm\n"
+"your subscription."
+msgstr ""
+"E¸ÞÀÏÀ» ÅëÇÑ È®ÀÎÀº ´ç½ÅÀÇ Çã¶ô¾øÀÌ °¡ÀÔÇÏ´Â °ÍÀ» ¸·´Âµ¥ »ç¿ëµË´Ï´Ù. ´Ù¸¥ Áö"
+"½Ã»çÇ׿¡ ´ëÇØ¼­´Â %(email)s·Î º¸³»´À·È½À´Ï´Ù. ´ç½ÅÀÇ °¡ÀÔÀº È®ÀÎÀü±îÁö ¹«È¿ÇÔ"
+"À» ¾Ë·Áµå¸³´Ï´Ù."
+
+#: Mailman/Cgi/subscribe.py:209
+msgid ""
+"Your subscription request was deferred because %(x)s. Your request has "
+"been\n"
+"forwarded to the list moderator. You will receive email informing you of "
+"the\n"
+"moderator's decision when they get to your request."
+msgstr ""
+"´ç½ÅÀÇ °¡ÀÔ¿äûÀº %(x)s ¶§¹®¿¡ ¿¬±âµÇ¾ú½À´Ï´Ù. ´ç½ÅÀÇ ¿äûÀº ¸®½ºÆ® ±Û°ü¸®ÀÚ"
+"¿¡°Ô Àü´ÞµÇ¾ú½À´Ï´Ù. ±Û°ü¸®ÀÚÀÇ °áÁ¤¿¡ ´ëÇÑ °øÁö¸¦ E¸ÞÀÏ·Î ¹ÞÀ¸ ½Ç ¼ö ÀÖÀ» °Í"
+"ÀÔ´Ï´Ù."
+
+#: Mailman/Cgi/subscribe.py:216 Mailman/Commands/cmd_confirm.py:60
+msgid "You are already subscribed."
+msgstr "´ç½ÅÀº ÀÌ¹Ì °¡ÀԵǾî ÀÖ½À´Ï´Ù."
+
+#: Mailman/Cgi/subscribe.py:230
+msgid "Mailman privacy alert"
+msgstr "Mailman °³ÀÎ Á¤º¸ °æ°í"
+
+#: Mailman/Cgi/subscribe.py:231
+msgid ""
+"An attempt was made to subscribe your address to the mailing list\n"
+"%(listaddr)s. You are already subscribed to this mailing list.\n"
+"\n"
+"Note that the list membership is not public, so it is possible that a bad\n"
+"person was trying to probe the list for its membership. This would be a\n"
+"privacy violation if we let them do this, but we didn't.\n"
+"\n"
+"If you submitted the subscription request and forgot that you were already\n"
+"subscribed to the list, then you can ignore this message. If you suspect "
+"that\n"
+"an attempt is being made to covertly discover whether you are a member of "
+"this\n"
+"list, and you are worried about your privacy, then feel free to send a "
+"message\n"
+"to the list administrator at %(listowner)s.\n"
+msgstr ""
+"%(listaddr)s ¸ÞÀϸµ ¸®½ºÆ®¿¡ ´ç½ÅÀÇ ÁÖ¼Ò·Î °¡ÀÔÀ» ½ÃµµÇÏ¿´À¸³ª, ´ç½ÅÀº ÀÌ¹Ì "
+"¸ÞÀϸµ ¸®½ºÆ®¿¡ °¡ÀԵǾî ÀÖ¾ú½À´Ï´Ù. ¸®½ºÆ® ȸ¿øÀÌ ºñ°ø°³ÀÏ °æ¿ì ³ª»Û »ç¶÷ÀÌ "
+"ȸ¿ø ¸ñ·ÏÀ¸·Î °¡ÀåÇÏ¿© ½ÃµµÇßÀ» ¼öµµ ÀÖ½À´Ï´Ù. ¸¸¾à ÀúÈñ°¡ ±×°ÍÀ» ¹æÄ¡ÇØ µÎ"
+"¸é °³ÀÎ Á¤º¸°¡ À§ÇèÇÏ°Ô ÇÏ´Â °ÍÀ̳ª, ÀúÈñ´Â ±×°ÍÀ» Çã¶ôÇÏÁö ¾Ê½À´Ï´Ù. ¸¸¾à ´ç"
+"½ÅÀÌ ÀÌ¹Ì ÀÌ ¸ÞÀϸµ ¸®½ºÆ®¿¡ °¡ÀԵǾî ÀÖ´Â »ç½ÇÀ» ÀØ°í °¡ÀÔÀ» ½ÃµµÇϼ̴ٸé "
+"ÀÌ ¸Þ¼¼Áö¿¡ ½Å°æ¾²½ÃÁö ¾ÊÀ¸¼Åµµ µË´Ï´Ù. ¸¸¾à ´ç½ÅÀÌ ÀÌ ¸ÞÀϸµ ¸®½ºÆ®ÀÇ È¸¿øÀÎ"
+"Áö ¾Æ´ÑÁö¸¦ ¾Ë¾Æº»´Ù´Â ½Ãµµ ÀϰŶó ÀǽÉÀÌ µÇ½Å´Ù¸é ´ç½ÅÀÇ °³ÀÎ Á¤º¸¿¡ ´ëÇØ¼­ "
+"°ÆÁ¤ÇÏÁö ¸¶½Ê½Ã¿À. ¾ÈÀüÇÕ´Ï´Ù. ÇÏÁö¸¸ ´ç½ÅÀÌ ÀǽÉÀÌ ¸¹´Ù¸é ¸®½ºÆ® °ü¸®ÀÚ ( %"
+"(listowner)s )¿¡°Ô ¸Þ¼¼Áö¸¦ º¸³»½Ê½Ã¿À.\n"
+
+#: Mailman/Cgi/subscribe.py:250
+msgid "This list does not support digest delivery."
+msgstr "ÀÌ ¸®½ºÆ®´Â ¹­À½¹è´ÞÀ» Áö¿øÇÏÁö ¾Ê½À´Ï´Ù."
+
+#: Mailman/Cgi/subscribe.py:252
+msgid "This list only supports digest delivery."
+msgstr "ÀÌ ¸®½ºÆ®´Â ¹­À½¹è´Þ¸¸ Áö¿øÇÕ´Ï´Ù."
+
+#: Mailman/Cgi/subscribe.py:259
+msgid "You have been successfully subscribed to the %(realname)s mailing list."
+msgstr "´ç½ÅÀº %(realname)s ¸ÞÀϸµ ¸®½ºÆ®¿¡ ¼º°øÀûÀ¸·Î °¡ÀԵǼ̽À´Ï´Ù."
+
+#: Mailman/Commands/cmd_confirm.py:17
+msgid ""
+"\n"
+" confirm <confirmation-string>\n"
+" Confirm an action. The confirmation-string is required and should "
+"be\n"
+" supplied with in mailback confirmation notice.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_confirm.py:40 Mailman/Commands/cmd_lists.py:40
+#: Mailman/Commands/cmd_set.py:133 Mailman/Commands/cmd_subscribe.py:69
+#: Mailman/Commands/cmd_unsubscribe.py:52 Mailman/Commands/cmd_who.py:65
+#, fuzzy
+msgid "Usage:"
+msgstr "»ç¿ë¹ý : lists"
+
+#: Mailman/Commands/cmd_confirm.py:49
+msgid ""
+"Invalid confirmation string. Note that confirmation strings expire\n"
+"approximately %(days)s days after the initial subscription request. If "
+"your\n"
+"confirmation has expired, please try to re-submit your original request or\n"
+"message."
+msgstr ""
+"À߸øµÈ È®ÀÎ ¹øÈ£ÀÔ´Ï´Ù!\n"
+" Ãʱ⿡ ¿äûÇÑ ÈÄ %(days)s ÀÏ ÈÄ¿¡ È®ÀÎ ¹øÈ£´Â À¯È¿±â°£À» ³Ñ±â°Ô µÈ´Ù´Â »ç½Ç"
+"À» Âü°íÇϽʽÿÀ.³¯Â¥¿Í ¹øÈ£¸¦ È®ÀÎÇÏ½Ã°í ´Ù½Ã Çѹø ½ÃµµÇØ º¸½Ê½Ã¿À. "
+
+#: Mailman/Commands/cmd_confirm.py:55
+msgid "Your request has been forwarded to the list moderator for approval."
+msgstr "´ç½ÅÀÇ ¿äûÀº ½ÂÀÎÀ» À§ÇØ ¸ÞÀϸµ ¸®½ºÆ® °ü¸®ÀÚ¿¡°Ô Àü´ÞµÇ¾ú½À´Ï´Ù."
+
+#: Mailman/Commands/cmd_confirm.py:63
+#, fuzzy
+msgid ""
+"You are not current a member. Have you already unsubscribed or changed\n"
+"your email address?"
+msgstr "´ç½ÅÀº ȸ¿øÀÌ ¾Æ´Õ´Ï´Ù. ÀÌ¹Ì Å»ÅðµÇ¾î ÀÖ´ÂÁö È®ÀÎÇϽʽÿÀ."
+
+#: Mailman/Commands/cmd_confirm.py:73
+#, fuzzy
+msgid "Confirmation succeeded"
+msgstr "È®ÀÎ ¹®ÀÚ¿­:"
+
+#: Mailman/Commands/cmd_echo.py:17
+msgid ""
+"\n"
+" echo [args]\n"
+" Simply echo an acknowledgement. Args are echoed back unchanged.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_end.py:17
+msgid ""
+"\n"
+" end\n"
+" Stop processing commands. Use this if your mail program "
+"automatically\n"
+" adds a signature file.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_help.py:17
+msgid ""
+"\n"
+" help\n"
+" Print this help message.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_help.py:47
+msgid "You can access your personal options via the following url:"
+msgstr ""
+
+#: Mailman/Commands/cmd_info.py:17
+msgid ""
+"\n"
+" info\n"
+" Get information about this mailing list.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_info.py:39 Mailman/Commands/cmd_lists.py:62
+msgid "n/a"
+msgstr ""
+
+#: Mailman/Commands/cmd_info.py:44
+#, fuzzy
+msgid "List name: %(listname)s"
+msgstr "¸ÞÀϸµ ¸®½ºÆ® À̸§Àº \"@\" ¸¦ Æ÷ÇÔÇÏ¸é ¾ÈµË´Ï´Ù. : %(listname)s"
+
+#: Mailman/Commands/cmd_info.py:45
+msgid "Description: %(description)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_info.py:46
+msgid "Postings to: %(postaddr)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_info.py:47
+msgid "List Helpbot: %(requestaddr)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_info.py:48
+msgid "List Owners: %(owneraddr)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_info.py:49
+msgid "More information: %(listurl)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_join.py:17
+msgid "The `join' command is synonymous with `subscribe'.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_leave.py:17
+msgid "The `leave' command is synonymous with `unsubscribe'.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_lists.py:17
+msgid ""
+"\n"
+" lists\n"
+" See a list of the public mailing lists on this GNU Mailman server.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_lists.py:44
+#, fuzzy
+msgid "Public mailing lists at %(hostname)s:"
+msgstr ""
+"\n"
+"mailman@%(hostname)s ¿¡¼­ °ø°³ ¸ÞÀϸµ ¸®½ºÆ®´Â ¾Æ·¡¿Í °°½À´Ï´Ù."
+
+#: Mailman/Commands/cmd_lists.py:66
+msgid "%(i)3d. List name: %(realname)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_lists.py:67
+msgid " Description: %(description)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_lists.py:68
+msgid " Requests to: %(requestaddr)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_password.py:17
+msgid ""
+"\n"
+" password [<oldpassword> <newpassword>] [address=<address>]\n"
+" Retrieve or change your password. With no arguments, this returns\n"
+" your current password. With arguments <oldpassword> and "
+"<newpassword>\n"
+" you can change your password.\n"
+"\n"
+" If you're posting from an address other than your membership "
+"address,\n"
+" specify your membership address with `address=<address>' (no "
+"brackets\n"
+" around the email address, and no quotes!). Note that in this case "
+"the\n"
+" response is always sent to the subscribed address.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_password.py:51 Mailman/Commands/cmd_password.py:64
+#, fuzzy
+msgid "Your password is: %(password)s"
+msgstr "%(sender)s ¸¦ À§ÇÑ ºñ¹Ð¹øÈ£¸¦ ãÀ» ¼ö ¾ø½À´Ï´Ù."
+
+#: Mailman/Commands/cmd_password.py:55 Mailman/Commands/cmd_password.py:68
+#: Mailman/Commands/cmd_password.py:91 Mailman/Commands/cmd_password.py:117
+#: Mailman/Commands/cmd_set.py:149 Mailman/Commands/cmd_set.py:219
+#, fuzzy
+msgid "You are not a member of the %(listname)s mailing list"
+msgstr "%(realname)s ¸ÞÀϸµ ¸®½ºÆ®¿¡¼­ Å»ÅðµÇ¼Ì½À´Ï´Ù."
+
+#: Mailman/Commands/cmd_password.py:81 Mailman/Commands/cmd_password.py:107
+msgid ""
+"You did not give the correct old password, so your password has not been\n"
+"changed. Use the no argument version of the password command to retrieve "
+"your\n"
+"current password, then try again."
+msgstr ""
+
+#: Mailman/Commands/cmd_password.py:85 Mailman/Commands/cmd_password.py:111
+#, fuzzy
+msgid ""
+"\n"
+"Usage:"
+msgstr "»ç¿ë¹ý : lists"
+
+#: Mailman/Commands/cmd_remove.py:17
+msgid "The `remove' command is synonymous with `unsubscribe'.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:26
+msgid ""
+"\n"
+" set ...\n"
+" Set or view your membership options.\n"
+"\n"
+" Use `set help' (without the quotes) to get a more detailed list of "
+"the\n"
+" options you can change.\n"
+"\n"
+" Use `set show' (without the quotes) to view your current option\n"
+" settings.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:37
+msgid ""
+"\n"
+" set help\n"
+" Show this detailed help.\n"
+"\n"
+" set show [address=<address>]\n"
+" View your current option settings. If you're posting from an "
+"address\n"
+" other than your membership address, specify your membership address\n"
+" with `address=<address>' (no brackets around the email address, and "
+"no\n"
+" quotes!).\n"
+"\n"
+" set authenticate <password> [address=<address>]\n"
+" To set any of your options, you must include this command first, "
+"along\n"
+" with your membership password. If you're posting from an address\n"
+" other than your membership address, specify your membership address\n"
+" with `address=<address>' (no brackets around the email address, and "
+"no\n"
+" quotes!).\n"
+"\n"
+" set ack on\n"
+" set ack off\n"
+" When the `ack' option is turned on, you will receive an\n"
+" acknowledgement message whenever you post a message to the list.\n"
+"\n"
+" set digest plain\n"
+" set digest mime\n"
+" set digest off\n"
+" When the `digest' option is turned off, you will receive postings\n"
+" immediately when they are posted. Use `set digest plain' if "
+"instead\n"
+" you want to receive postings bundled into a plain text digest\n"
+" (i.e. RFC 1153 digest). Use `set digest mime' if instead you want "
+"to\n"
+" receive postings bundled together into a MIME digest.\n"
+"\n"
+" set delivery on\n"
+" set delivery off\n"
+" Turn delivery on or off. This does not unsubscribe you, but "
+"instead\n"
+" tells Mailman not to deliver messages to you for now. This is "
+"useful\n"
+" if you're going on vacation. Be sure to use `set delivery on' when\n"
+" you return from vacation!\n"
+"\n"
+" set myposts on\n"
+" set myposts off\n"
+" Use `set myposts off' to not receive copies of messages you post to\n"
+" the list. This has no effect if you're receiving digests.\n"
+"\n"
+" set hide on\n"
+" set hide off\n"
+" Use `set hide on' to conceal your email address when people request\n"
+" the membership list.\n"
+"\n"
+" set duplicates on\n"
+" set duplicates off\n"
+" Use `set duplicates off' if you want Mailman to not send you "
+"messages\n"
+" if your address is explicitly mentioned in the To: or Cc: fields of\n"
+" the message. This can reduce the number of duplicate postings you\n"
+" will receive.\n"
+"\n"
+" set reminders on\n"
+" set reminders off\n"
+" Use `set reminders off' if you want to disable the monthly password\n"
+" reminder for this mailing list.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:122
+msgid "Bad set command: %(subcmd)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:151
+msgid "Your current option settings:"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:153 Mailman/Commands/cmd_set.py:191
+#: Mailman/Commands/cmd_set.py:194 Mailman/Commands/cmd_set.py:198
+#: Mailman/Commands/cmd_set.py:202
+msgid "off"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:153 Mailman/Commands/cmd_set.py:191
+#: Mailman/Commands/cmd_set.py:194 Mailman/Commands/cmd_set.py:198
+#: Mailman/Commands/cmd_set.py:202
+#, fuzzy
+msgid "on"
+msgstr "¾øÀ½"
+
+#: Mailman/Commands/cmd_set.py:154
+msgid " ack %(onoff)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:160
+#, fuzzy
+msgid " digest plain"
+msgstr "´ÙÀÌÁ¦½ºÆ® ȸ¿ø ¿É¼Ç - ¹­À½ ¸ÞÀÏ ¹ß¼Û Èñ¸Á ȸ¿ø"
+
+#: Mailman/Commands/cmd_set.py:162
+#, fuzzy
+msgid " digest mime"
+msgstr " (¹­À½¹è´Þ ¸ðµå)"
+
+#: Mailman/Commands/cmd_set.py:164
+#, fuzzy
+msgid " digest off"
+msgstr "´ç½ÅÀº ÀÌ¹Ì ¹­À½¹è´Þ(Digest) ¼³Á¤ÀÌ µÇ¾î ÀÖÁö ¾Ê½À´Ï´Ù."
+
+#: Mailman/Commands/cmd_set.py:169
+#, fuzzy
+msgid "delivery on"
+msgstr "E¸ÞÀÏ ¹è´Þ"
+
+#: Mailman/Commands/cmd_set.py:171 Mailman/Commands/cmd_set.py:174
+#: Mailman/Commands/cmd_set.py:177 Mailman/Commands/cmd_set.py:181
+#, fuzzy
+msgid "delivery off"
+msgstr "E¸ÞÀÏ ¹è´Þ"
+
+#: Mailman/Commands/cmd_set.py:172
+#, fuzzy
+msgid "by you"
+msgstr "¹Ù¿î½º·Î ÀÎÇØ"
+
+#: Mailman/Commands/cmd_set.py:175
+#, fuzzy
+msgid "by the admin"
+msgstr "¸®½ºÆ® °ü¸®ÀÚ¿¡ ÀÇÇØ "
+
+#: Mailman/Commands/cmd_set.py:178
+#, fuzzy
+msgid "due to bounces"
+msgstr "¹Ù¿î½º·Î ÀÎÇØ"
+
+#: Mailman/Commands/cmd_set.py:186
+msgid " %(status)s (%(how)s on %(date)s)"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:192
+msgid " myposts %(onoff)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:195
+msgid " hide %(onoff)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:199
+msgid " duplicates %(onoff)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:203
+msgid " reminders %(onoff)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:224
+#, fuzzy
+msgid "You did not give the correct password"
+msgstr "À߸øµÈ ÆÐ½º¿öµå¸¦ Áּ̽À´Ï´Ù."
+
+#: Mailman/Commands/cmd_set.py:236 Mailman/Commands/cmd_set.py:283
+msgid "Bad argument: %(arg)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:241 Mailman/Commands/cmd_set.py:261
+#, fuzzy
+msgid "Not authenticated"
+msgstr "ÀÎÁõ ½ÇÆÐ"
+
+#: Mailman/Commands/cmd_set.py:254
+#, fuzzy
+msgid "ack option set"
+msgstr "°³ÀÎ Á¤º¸ º¸È£ Á¤Ã¥"
+
+#: Mailman/Commands/cmd_set.py:286
+#, fuzzy
+msgid "digest option set"
+msgstr "´ÙÀÌÁ¦½ºÆ® ȸ¿ø ¿É¼Ç - ¹­À½ ¸ÞÀÏ ¹ß¼Û Èñ¸Á ȸ¿ø"
+
+#: Mailman/Commands/cmd_set.py:298
+#, fuzzy
+msgid "delivery option set"
+msgstr "°³ÀÎ Á¤º¸ º¸È£ Á¤Ã¥"
+
+#: Mailman/Commands/cmd_set.py:310
+#, fuzzy
+msgid "myposts option set"
+msgstr "´ÙÀÌÁ¦½ºÆ® ȸ¿ø ¿É¼Ç - ¹­À½ ¸ÞÀÏ ¹ß¼Û Èñ¸Á ȸ¿ø"
+
+#: Mailman/Commands/cmd_set.py:321
+#, fuzzy
+msgid "hide option set"
+msgstr "´ÙÀÌÁ¦½ºÆ® ȸ¿ø ¿É¼Ç - ¹­À½ ¸ÞÀÏ ¹ß¼Û Èñ¸Á ȸ¿ø"
+
+#: Mailman/Commands/cmd_set.py:333
+#, fuzzy
+msgid "duplicates option set"
+msgstr "´ÙÀÌÁ¦½ºÆ® ȸ¿ø ¿É¼Ç - ¹­À½ ¸ÞÀÏ ¹ß¼Û Èñ¸Á ȸ¿ø"
+
+#: Mailman/Commands/cmd_set.py:345
+#, fuzzy
+msgid "reminder option set"
+msgstr "ÀϹÝÀûÀÎ ¼³Á¤"
+
+#: Mailman/Commands/cmd_stop.py:17
+msgid "stop is synonymous with the end command.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:17
+msgid ""
+"\n"
+" subscribe [password] [digest|nodigest] [address=<address>]\n"
+" Subscribe to this mailing list. Your password must be given to\n"
+" unsubscribe or change your options, but if you omit the password, "
+"one\n"
+" will be generated for you. You may be periodically reminded of "
+"your\n"
+" password.\n"
+"\n"
+" The next argument may be either: `nodigest' or `digest' (no "
+"quotes!).\n"
+" If you wish to subscribe an address other than the address you sent\n"
+" this request from, you may specify `address=<address>' (no brackets\n"
+" around the email address, and no quotes!)\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:62
+msgid "Bad digest specifier: %(arg)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:84
+msgid "No valid address found to subscribe"
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:102
+msgid ""
+"The email address you supplied is banned from this mailing list.\n"
+"If you think this restriction is erroneous, please contact the list\n"
+"owners at %(listowner)s."
+msgstr ""
+"´ç½ÅÀÌ ÀÔ·ÂÇϽŠE¸ÞÀÏ ÁÖ¼Ò´Â ÀÌ ¸ÞÀϸµ ¸®½ºÆ®¿¡¼­ Ãß¹æµÈ °ÍÀÔ´Ï´Ù. À̰Ϳ¡ ´ë"
+"ÇØ ¹®Á¦°¡ ÀÖ´Ù°í »ý°¢ÇÏ½Ã¸é ¸®½ºÆ® ¼ÒÀ¯ÁÖ( %(listowner)s )¿¡°Ô ¿¬¶ôÇϽñ⠹Ù"
+"¶ø´Ï´Ù."
+
+#: Mailman/Commands/cmd_subscribe.py:108
+msgid ""
+"Mailman won't accept the given email address as a valid address.\n"
+"(E.g. it must have an @ in it.)"
+msgstr ""
+"E¸ÞÀÏ ÁÖ¼Ò°¡ Á¤È®ÇÑ Çü½ÄÀÌ ¾Æ´Ñ °Í °°½À´Ï´Ù.\n"
+"( @ À» Á¤È®ÇÏ°Ô ³ÖÀ¸¼Ì³ª¿ä? ) "
+
+#: Mailman/Commands/cmd_subscribe.py:113
+msgid ""
+"Your subscription is not allowed because\n"
+"the email address you gave is insecure."
+msgstr ""
+"´ç½ÅÀÇ ÀÔ·ÂÇϽŠE¸ÞÀÏ ÁÖ¼Ò´Â º¸¾È¿¡ Ãë¾àÇϱ⿡ °¡ÀÔÀ» Çã¶ôÇÒ ¼ö ¾ø½À´Ï´Ù."
+
+#: Mailman/Commands/cmd_subscribe.py:118
+msgid "You are already subscribed!"
+msgstr "´ç½ÅÀº ÀÌ¹Ì °¡ÀԵǾîÀÖ½À´Ï´Ù!"
+
+#: Mailman/Commands/cmd_subscribe.py:122
+msgid "No one can subscribe to the digest of this list!"
+msgstr "ÀÌ ¸ÞÀϸµ ¸®½ºÆ®´Â ¹­À½¹è´Þ(Digest) ¸ðµå·Î °¡ÀÔÇÒ ¼ö ¾ø½À´Ï´Ù!"
+
+#: Mailman/Commands/cmd_subscribe.py:125
+msgid "This list only supports digest subscriptions!"
+msgstr "ÀÌ ¸ÞÀϸµ ¸®½ºÆ®´Â ´ÜÁö ¹­À½¹è´Þ(Digest) °¡ÀÔ¸¸ ¹Þ½À´Ï´Ù!"
+
+#: Mailman/Commands/cmd_subscribe.py:131
+#, fuzzy
+msgid ""
+"Your subscription request has been forwarded to the list administrator\n"
+"at %(listowner)s for review."
+msgstr ""
+"´ç½ÅÀÇ °¡ÀÔ ¿äûÀº ¸ÞÀϸµ ¸®½ºÆ® °ü¸®ÀÚ(%(adminemail)s) ¿¡°Ô Àü´ÞµÇ¾ú½À´Ï´Ù. "
+
+#: Mailman/Commands/cmd_subscribe.py:136
+#, fuzzy
+msgid "Subscription request succeeded."
+msgstr "°¡ÀÔ ¿äûÀÌ È®ÀεǾú½À´Ï´Ù."
+
+#: Mailman/Commands/cmd_unsubscribe.py:17
+msgid ""
+"\n"
+" unsubscribe [password] [address=<address>]\n"
+" Unsubscribe from the mailing list. If given, your password must "
+"match\n"
+" your current password. If omitted, a confirmation email will be "
+"sent\n"
+" to the unsubscribing address. If you wish to unsubscribe an address\n"
+" other than the address you sent this request from, you may specify\n"
+" `address=<address>' (no brackets around the email address, and no\n"
+" quotes!)\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_unsubscribe.py:62
+#, fuzzy
+msgid "%(address)s is not a member of the %(listname)s mailing list"
+msgstr "%(sender)s ´Â ÀÌ ¸ÞÀϸµ ¸®½ºÆ®¿¡ °¡ÀԵǾî ÀÖÁö ¾Ê½À´Ï´Ù."
+
+#: Mailman/Commands/cmd_unsubscribe.py:69
+msgid ""
+"Your unsubscription request has been forwarded to the list administrator "
+"for\n"
+"approval."
+msgstr "´ç½ÅÀÇ Å»Åð ¿äûÀº ½ÂÀÎÀ» À§ÇØ ¸®½ºÆ® °ü¸®ÀÚ¿¡°Ô Àü´ÞµÇ¾ú½À´Ï´Ù."
+
+#: Mailman/Commands/cmd_unsubscribe.py:84
+#, fuzzy
+msgid "You gave the wrong password"
+msgstr "À߸øµÈ ÆÐ½º¿öµå¸¦ Áּ̽À´Ï´Ù."
+
+#: Mailman/Commands/cmd_unsubscribe.py:87
+#, fuzzy
+msgid "Unsubscription request succeeded."
+msgstr "Å»Åð ¿äûÀÌ È®ÀÎ µÇ¾ú½À´Ï´Ù."
+
+#: Mailman/Commands/cmd_who.py:29
+msgid ""
+"\n"
+" who\n"
+" See everyone who is on this mailing list.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_who.py:34
+msgid ""
+"\n"
+" who password [address=<address>]\n"
+" See everyone who is on this mailing list. The roster is limited to\n"
+" list members only, and you must supply your membership password to\n"
+" retrieve it. If you're posting from an address other than your\n"
+" membership address, specify your membership address with\n"
+" `address=<address>' (no brackets around the email address, and no\n"
+" quotes!)\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_who.py:44
+msgid ""
+"\n"
+" who password\n"
+" See everyone who is on this mailing list. The roster is limited to\n"
+" list administrators and moderators only; you must supply the list\n"
+" admin or moderator password to retrieve the roster.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_who.py:110
+#, fuzzy
+msgid "You are not allowed to retrieve the list membership."
+msgstr "´ç½ÅÀº »õ·Î¿î ¸ÞÀϸµ ¸®½ºÆ®¸¦ »ý¼ºÇÒ ¼ö ¾ø½À´Ï´Ù."
+
+#: Mailman/Commands/cmd_who.py:116
+msgid "This list has no members."
+msgstr ""
+
+#: Mailman/Commands/cmd_who.py:129
+#, fuzzy
+msgid "Non-digest (regular) members:"
+msgstr "°³º°¹è´Þ(Non-Digest) ȸ¿øµé:\n"
+
+#: Mailman/Commands/cmd_who.py:132
+#, fuzzy
+msgid "Digest members:"
+msgstr "¹­À½¹è´Þ(Digest) ȸ¿øµé:\n"
+
+#: Mailman/Defaults.py:1204
+msgid "Traditional Chinese"
+msgstr "ÀüÅë Áß±¹¾î"
+
+#: Mailman/Defaults.py:1205
+msgid "Czech"
+msgstr "üũ¾î"
+
+#: Mailman/Defaults.py:1206
+msgid "German"
+msgstr "µ¶ÀϾî"
+
+#: Mailman/Defaults.py:1207
+msgid "English (USA)"
+msgstr "¿µ¾î (USA)"
+
+#: Mailman/Defaults.py:1208
+msgid "Spanish (Spain)"
+msgstr "½ºÆäÀξî (½ºÆäÀÎ)"
+
+#: Mailman/Defaults.py:1209
+msgid "Estonian"
+msgstr ""
+
+#: Mailman/Defaults.py:1210
+msgid "Finnish"
+msgstr "Çɶõµå¾î"
+
+#: Mailman/Defaults.py:1211
+msgid "French"
+msgstr "ÇÁ¶û½º¾î"
+
+#: Mailman/Defaults.py:1212
+msgid "Simplified Chinese"
+msgstr "°£´ÜÈ­µÈ Áß±¹¾î"
+
+#: Mailman/Defaults.py:1213
+msgid "Hungarian"
+msgstr "Çë°¡¸®¾î"
+
+#: Mailman/Defaults.py:1214
+msgid "Italian"
+msgstr "ÀÌÅ»¸®¾Æ¾î"
+
+#: Mailman/Defaults.py:1215
+msgid "Japanese"
+msgstr "ÀϺ»¾î"
+
+#: Mailman/Defaults.py:1216
+#, fuzzy
+msgid "Korean"
+msgstr "³ë¸£¿þÀ̾î"
+
+#: Mailman/Defaults.py:1217
+msgid "Lithuanian"
+msgstr ""
+
+#: Mailman/Defaults.py:1218
+msgid "Dutch"
+msgstr ""
+
+#: Mailman/Defaults.py:1219
+msgid "Norwegian"
+msgstr "³ë¸£¿þÀ̾î"
+
+#: Mailman/Defaults.py:1220
+msgid "Portuguese (Brazil)"
+msgstr ""
+
+#: Mailman/Defaults.py:1221
+msgid "Russian"
+msgstr "·¯½Ã¾Æ¾î"
+
+#: Mailman/Defaults.py:1222
+msgid "Swedish"
+msgstr ""
+
+#: Mailman/Deliverer.py:43
+msgid ""
+"Note: Since this is a list of mailing lists, administrative\n"
+"notices like the password reminder will be sent to\n"
+"your membership administrative address, %(addr)s."
+msgstr ""
+"Âü°í: À̰ÍÀº ¸ÞÀϸµ ¸®½ºÆ®ÀÇ ¸ñ·ÏÀ̱⠶§¹®¿¡ ÆÐ½º¿öµå¸¦ ¾Ë·ÁÁÖ´Â °Í °°Àº °ü"
+"¸® °øÁö´Â ´ç½ÅÀÇ È¸¿ø °ü¸® ÁÖ¼Ò %(addr)s ·Î º¸³»Á³½À´Ï´Ù."
+
+#: Mailman/Deliverer.py:62
+msgid " (Digest mode)"
+msgstr " (¹­À½¹è´Þ ¸ðµå)"
+
+#: Mailman/Deliverer.py:68
+msgid "Welcome to the \"%(realname)s\" mailing list%(digmode)s"
+msgstr "\"%(realname)s\" ¸ÞÀϸµ ¸®½ºÆ® (%(digmode)s)¿¡ ¿À½Å°É ȯ¿µÇÕ´Ï´Ù."
+
+#: Mailman/Deliverer.py:77
+msgid "You have been unsubscribed from the %(realname)s mailing list"
+msgstr "%(realname)s ¸ÞÀϸµ ¸®½ºÆ®¿¡¼­ Å»ÅðµÇ¼Ì½À´Ï´Ù."
+
+#: Mailman/Deliverer.py:104
+msgid "%(listfullname)s mailing list reminder"
+msgstr "%(listfullname)s ¸ÞÀϸµ ¸®½ºÆ® ÆÐ½º¿öµå ¸ÞÀÏ"
+
+#: Mailman/Errors.py:114
+msgid "For some unknown reason"
+msgstr "¸î¸î ¾Ë¼ö ¾ø´Â ÀÌÀ¯·Î "
+
+#: Mailman/Errors.py:120 Mailman/Errors.py:143
+msgid "Your message was rejected"
+msgstr "´ç½ÅÀÇ ¸Þ¼¼Áö´Â °ÅÀýµÇ¾ú½À´Ï´Ù."
+
+#: Mailman/Gui/Archive.py:25
+msgid "Archiving Options"
+msgstr "ÀúÀå¼Ò ¼³Á¤"
+
+#: Mailman/Gui/Archive.py:31
+msgid "List traffic archival policies."
+msgstr "ÀúÀå¼Ò °ü·Ã ¼³Á¤ ºÎºÐ Á¤Ã¥À» ¼³Á¤ÇÏ´Â °÷ÀÔ´Ï´Ù."
+
+#: Mailman/Gui/Archive.py:34
+msgid "Archive messages?"
+msgstr "¸Þ¼¼Áö¸¦ ±â·ÏÇմϱî?"
+
+#: Mailman/Gui/Archive.py:36
+msgid "private"
+msgstr "ºñ°ø°³"
+
+#: Mailman/Gui/Archive.py:36
+msgid "public"
+msgstr "°ø°³"
+
+#: Mailman/Gui/Archive.py:37
+msgid "Is archive file source for public or private archival?"
+msgstr "ÀúÀå¼Ò ÆÄÀÏÀº ¾î¶² °ø°³ ȤÀº ºñ°ø°³ ÀúÀå¼Ò ÀԴϱî?"
+
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Monthly"
+msgstr "´Þ"
+
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Quarterly"
+msgstr "°èÀý"
+
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Yearly"
+msgstr "³â"
+
+#: Mailman/Gui/Archive.py:41 Mailman/Gui/Digest.py:79
+msgid "Daily"
+msgstr "ÀÏ"
+
+#: Mailman/Gui/Archive.py:41 Mailman/Gui/Digest.py:79
+msgid "Weekly"
+msgstr "ÁÖ"
+
+#: Mailman/Gui/Archive.py:43
+msgid "How often should a new archive volume be started?"
+msgstr "»õ ±â·Ï ÆÄÀÏÀ» °»½ÅÇÒ Áֱ⸦ ¼³Á¤ÇØÁÖ¼¼¿ä."
+
+#: Mailman/Gui/Autoresponse.py:31
+msgid "Auto-responder"
+msgstr "ÀÚµ¿ ÀÀ´ä"
+
+#: Mailman/Gui/Autoresponse.py:39
+#, fuzzy
+msgid ""
+"Auto-responder characteristics.<p>\n"
+"\n"
+"In the text fields below, string interpolation is performed with\n"
+"the following key/value substitutions:\n"
+"<p><ul>\n"
+" <li><b>listname</b> - <em>gets the name of the mailing list</em>\n"
+" <li><b>listurl</b> - <em>gets the list's listinfo URL</em>\n"
+" <li><b>requestemail</b> - <em>gets the list's -request address</em>\n"
+" <li><b>owneremail</b> - <em>gets the list's -owner address</em>\n"
+"</ul>\n"
+"\n"
+"<p>For each text field, you can either enter the text directly into the "
+"text\n"
+"box, or you can specify a file on your local system to upload as the text."
+msgstr ""
+"ÀÚµ¿ÀÀ´ä Ư¡<p>\n"
+"´ÙÀ½ÀÇ ÅØ½ºÆ®Çʵ忡¼­, ÆÄÀ̽ã %(string)s »ðÀÔÀº ´ÙÀ½ÀÇ Å°¿Í °ªÀ» ´ëÀÔÇÏ¿© ¼ö"
+"ÇàµË´Ï´Ù<p><ul>\n"
+" <li><b>listname</b> - <em>¸ÞÀϸµ¸®½ºÆ®ÀÇ À̸§ °¡Á®¿À±â</em> "
+"<li><b>listurl</b> - <em>¸ÞÀϸµ¸®½ºÆ® listinfo URL °¡Á®¿À±â</em> "
+"<li><b>requestemail</b> - <em>¸ÞÀϸµ¸®½ºÆ®ÀÇ -request ¸ÞÀÏÁÖ¼Ò °¡Á®¿À±â</"
+"em> <li><b>adminemail</b> - <em>¸ÞÀϸµ¸®½ºÆ®ÀÇ -admin ¸ÞÀÏÁÖ¼Ò °¡Á®¿À±â</"
+"em> <li><b>owneremail</b> - <em>¸ÞÀϸµ¸®½ºÆ®ÀÇ -owner ¸ÞÀÏÁÖ¼Ò °¡Á®¿À±â</"
+"em>\n"
+"°¢ ÅØ½ºÆ® Çʵ忡 ´ëÇØ¼­ ÅØ½ºÆ® ¹Ú½º¿¡ Á÷Á¢ ÅØ½ºÆ®¸¦ ½á³Ö°Å³ª, ·ÎÄýýºÅÛ»óÀÇ "
+"ÆÄÀÏÀ» ÇØ´ç ÅØ½ºÆ®·Î¼­ ¾÷·ÎµåÇϵµ·Ï ÁöÁ¤ÇÒ ¼öµµ ÀÖ½À´Ï´Ù."
+
+#: Mailman/Gui/Autoresponse.py:55
+msgid ""
+"Should Mailman send an auto-response to mailing list\n"
+" posters?"
+msgstr "MailmanÀÌ ¸ÞÀϸµ ¸®½ºÆ®¿¡ Æ÷½ºÆÃÇÑ »ç¶÷µé¿¡°Ô ÀÚµ¿ÀÀ´äÀ» º¸³À´Ï±î?"
+
+#: Mailman/Gui/Autoresponse.py:60
+msgid "Auto-response text to send to mailing list posters."
+msgstr "¸ÞÀϸµ ¸®½ºÆ®¿¡ Æ÷½ºÆÃÇÑ »ç¶÷µé¿¡°Ô º¸³¾ ÀÚµ¿ÀÀ´ä ³»¿ë."
+
+#: Mailman/Gui/Autoresponse.py:63
+#, fuzzy
+msgid ""
+"Should Mailman send an auto-response to emails sent to the\n"
+" -owner address?"
+msgstr "MailmanÀÌ -admin°ú -owner ¸ÞÀÏÁÖ¼Ò·Î ÀÚµ¿ÀÀ´ä ¸ÞÀÏÀ» º¸³À´Ï±î?"
+
+#: Mailman/Gui/Autoresponse.py:68
+#, fuzzy
+msgid "Auto-response text to send to -owner emails."
+msgstr "-request ¸ÞÀÏ¿¡ º¸³¾ ÀÚµ¿ÀÀ´ä ³»¿ë."
+
+#: Mailman/Gui/Autoresponse.py:71
+msgid "Yes, w/discard"
+msgstr "³×, ¹ö¸®°Ú½À´Ï´Ù."
+
+#: Mailman/Gui/Autoresponse.py:71
+msgid "Yes, w/forward"
+msgstr "³×, Àü´ÞÇϰڽÀ´Ï´Ù."
+
+#: Mailman/Gui/Autoresponse.py:72
+msgid ""
+"Should Mailman send an auto-response to emails sent to the\n"
+" -request address? If you choose yes, decide whether you want\n"
+" Mailman to discard the original email, or forward it on to the\n"
+" system as a normal mail command."
+msgstr ""
+"MailmanÀÌ ¹ÞÀº ¸ÞÀÏ¿¡ ´ëÇØ -request ¸ÞÀÏÁÖ¼Ò·Î ÀÚµ¿ÀÀ´äÀ» º¸³À´Ï±î? \"¿¹\"¸¦ "
+"¼±ÅÃÇÏ·Á¸é ¸ÞÀÏ ¿øº»À» ¹ö¸± °ÍÀÎÁö ¾Æ´Ï¸é Á¤»ó ¸ÞÀÏ ¸í·ÉÀ¸·Î ÇØ´ç ½Ã½ºÅÛÀ¸·Î "
+"Àü´ÞÇÒ °ÍÀÎÁö¸¦ °áÁ¤ÇØÁÖ¼¼¿ä."
+
+#: Mailman/Gui/Autoresponse.py:79
+msgid "Auto-response text to send to -request emails."
+msgstr "-request ¸ÞÀÏ¿¡ º¸³¾ ÀÚµ¿ÀÀ´ä ³»¿ë."
+
+#: Mailman/Gui/Autoresponse.py:82
+#, fuzzy
+msgid ""
+"Number of days between auto-responses to either the mailing\n"
+" list or -request/-owner address from the same poster. Set to\n"
+" zero (or negative) for no grace period (i.e. auto-respond to\n"
+" every message)."
+msgstr ""
+" °°Àº º¸³½À̷κÎÅÍ ¸ÞÀϸµ ¸®½ºÆ® ȤÀº -admin/-owner ÁÖ¼Ò·Î ÀÚµ¿ÀÀ´äÀ» ÇÒ »çÀÌ"
+"ÀÇ ±â°£À»(³¯[day] ´ÜÀ§) ³Ö¾î ÁÖ¼¼¿ä. 0 ȤÀº À½¼ö·Î ³ÖÀ¸½Ã¸é ¸ðµç ¸Þ¼¼Áö ¿¡ ´ë"
+"ÇØ ÀÚµ¿ ÀÀ´äÀ» Áï°¢ ÇÏ°Ô µË´Ï´Ù."
+
+#: Mailman/Gui/Bounce.py:26
+msgid "Bounce processing"
+msgstr "¹Ù¿îµå ó¸® ¼³Á¤"
+
+#: Mailman/Gui/Bounce.py:32
+msgid ""
+"These policies control the automatic bounce processing system\n"
+" in Mailman. Here's an overview of how it works.\n"
+"\n"
+" <p>When a bounce is received, Mailman tries to extract two "
+"pieces\n"
+" of information from the message: the address of the member the\n"
+" message was intended for, and the severity of the problem "
+"causing\n"
+" the bounce. The severity can be either <em>hard</em> or\n"
+" <em>soft</em> meaning either a fatal error occurred, or a\n"
+" transient error occurred. When in doubt, a hard severity is "
+"used.\n"
+"\n"
+" <p>If no member address can be extracted from the bounce, then "
+"the\n"
+" bounce is usually discarded. Otherwise, each member is assigned "
+"a\n"
+" <em>bounce score</em> and every time we encounter a bounce from\n"
+" this member we increment the score. Hard bounces increment by "
+"1\n"
+" while soft bounces increment by 0.5. We only increment the "
+"bounce\n"
+" score once per day, so even if we receive ten hard bounces from "
+"a\n"
+" member per day, their score will increase by only 1 for that "
+"day.\n"
+"\n"
+" <p>When a member's bounce score is greater than the\n"
+" <a href=\"?VARHELP=bounce/bounce_score_threshold\">bounce score\n"
+" threshold</a>, the subscription is disabled. Once disabled, "
+"the\n"
+" member will not receive any postings from the list until their\n"
+" membership is explicitly re-enabled (either by the list\n"
+" administrator or the user). However, they will receive "
+"occasional\n"
+" reminders that their membership has been disabled, and these\n"
+" reminders will include information about how to re-enable their\n"
+" membership.\n"
+"\n"
+" <p>You can control both the\n"
+" <a href=\"?VARHELP=bounce/bounce_you_are_disabled_warnings"
+"\">number\n"
+" of reminders</a> the member will receive and the\n"
+" <a href=\"?VARHELP=bounce/"
+"bounce_you_are_disabled_warnings_interval\"\n"
+" >frequency</a> with which these reminders are sent.\n"
+"\n"
+" <p>There is one other important configuration variable; after a\n"
+" certain period of time -- during which no bounces from the "
+"member\n"
+" are received -- the bounce information is\n"
+" <a href=\"?VARHELP=bounce/bounce_info_stale_after\">considered\n"
+" stale</a> and discarded. Thus by adjusting this value, and the\n"
+" score threshold, you can control how quickly bouncing members "
+"are\n"
+" disabled. You should tune both of these to the frequency and\n"
+" traffic volume of your list."
+msgstr ""
+"ÀÌ ºÎºÐÀº Mailman ¿¡¼­ ÀÚµ¿ ¹Ù¿î½º ó¸® ½Ã½ºÅÛ Á¦¾î¿¡ °üÇÑ Á¤Ã¥À» Â¥´Â ºÎºÐÀÔ"
+"´Ï´Ù. ¾î¶»°Ô µ¿ÀÛÇÏ´ÂÁö¿¡ ´ëÇÑ ¼Ò°³¸¦ ÇϰڽÀ´Ï´Ù. <p>¹Ù¿î½º¸¦ ¹Þ¾ÒÀ» ¶§ "
+"Mailman Àº ¸Þ¼¼Áö·Î ºÎÅÍ µÎ°¡Áö Á¾·ùÀÇ Á¤º¸¸¦ ÃßÃâÀ» ½ÃµµÇÕ´Ï´Ù. Çϳª´Â ÀÌ ¹®"
+"Á¦¿¡ ¿¬·ùµÈ ȸ¿øÀÇ ÁÖ¼ÒÀ̸ç, ¶Ç Çϳª´Â ¹Ù¿î½º¸¦ ÀÏÀ¸½Å ¹®Á¦ÀÇ ½ÉÇÑ Á¤µµÀÔ´Ï"
+"´Ù.<p> Ä¡¸íÀûÀÎ ¿¡·¯°¡ ÀϾÀ»¶§ ¹®Á¦ÀÇ ½ÉÇÑ Á¤µµ´Â <em>½ÉÇÔ</em> ȤÀº <em>"
+"¾àÇÔ</em> Áß ÇϳªÀ̸ç Àǽɹ޴ ÂÊÀº ½ÉÇÑÂÊÀÌ ºó¹øÇÕ´Ï´Ù. <p>¸¸¾à ¹Ù¿î½º·Î ºÎ"
+"ÅÍ È¸¿ø ÁÖ¼Ò¸¦ ÃßÃâÇÒ ¼ö ¾øÀ¸¸é ¹Ù¿î½º´Â º¸Åë ¹ö·ÁÁö°Ô µË´Ï´Ù. ±×·¸Áö ¾Ê´Ù¸é "
+"°¢°¢ÀÇ È¸¿øÀº <em>¹Ù¿î½º Á¡¼ö</em>¿¡ ±â·ÏµÇ¸ç ¹Ù¿î½º°¡ ÀϾ¶§ ¸¶´Ù ÀÌ Á¡¼ö"
+"´Â Áõ°¡ÇÏ°Ô µË´Ï´Ù. ¹®Á¦°¡ ½ÉÇÑ °æ¿ì Á¡¼ö´Â 1 ¿Ã¶ó°¡°Ô µÇ¸ç ¾àÇÑ °æ¿ì 0.5°¡ "
+"¿Ã¶ó°¡°Ô µË´Ï´Ù. ÇÏ·ç¿¡ Çѹø¸¸ ¹Ù¿î½º Á¡¼ö°¡ Áõ°¡ÇÑ´Ù´Â »ç½ÇÀ» ¾Ë¾ÆµÎ½Ã±â ¹Ù"
+"¶ø´Ï´Ù. Áï ¸¸¾à ÇÏ·ç¿¡ ¾î¶² ȸ¿øÀ¸·Î ºÎÅÍ 10¹øÀÇ ½ÉÇÑ ¹Ù¿î½º¸¦ ¹Þ¾Ò´Ù ÇÒÁö¶ó"
+"µµ Çѹø¸¸ ±â·ÏµË´Ï´Ù. ±×ÀÇ ±â·ÏÀº ÇÏ·ç¿¡ ´ÜÁö 1¸¸ Áõ°¡ÇÕ´Ï´Ù.<p> ȸ¿øÀÇ ¹Ù¿î"
+"½º Á¡¼ö°¡ <a href=\"?VARHELP=bounce/bounce_score_threshold\"> ¹Ù¿î½º Á¡¼ö ¹®"
+"ÅÎ</a> º¸´Ù Å©°Ô µÇ¸é °¡ÀÔÀÌ µÇÁö ¾ÊÀ¸¸ç Çѹø ±â´ÉÀ» ¸øÇϵµ·Ï µÇ¸é ±×µéÀÇ È¸"
+"¿øÀ¸·Î ÀçȰµ¿Çϱâ(°ü¸®ÀÚ¿¡ ÀÇÇØ¼­³ª, ȤÀº »ç¿ëÀÚ¿¡ ÀÇÇØ¼­) ÇÒ ¶§±îÁö ¸®½ºÆ®"
+"·Î ºÎÅÍÀÇ ¾î¶°ÇÑ ±Ûµµ ¹ÞÁö ¸øÇÕ´Ï´Ù. ÇÏÁö¸¸ ±×µéÀº ȸ¿øÀ¸·Î ±â´ÉÀ» ¸øÇÏ°Ô µÇ"
+"¾ú°í, ¾î¶»°Ô ÇÏ¸é ´Ù½Ã ÀçȰµ¿ÇÏ°Ô ÇÒ ¼ö ÀÖ´Â Áö¿¡ ´ëÇÑ Á¤º¸¸¦ ´ãÀº ±ÛÀ» E¸ÞÀÏ"
+"·Î ¹ÞÀ» ¼ö ÀÖ½À´Ï´Ù.<p> ¿©·¯ºÐÀº ȸ¿øµéÀÌ ¹ÞÀ» <a href=\"?VARHELP=bounce/"
+"bounce_you_are_disabled_warnings\">±ÛÀÇ ¼ö</a>¸¦ Á¦¾îÇÒ ¼ö ÀÖÀ¸¸ç, <a href="
+"\"?VARHELP=bounce/bounce_you_are_disabled_warnings_interval\">¾ðÁ¦¸¶´Ù º¸³¾ "
+"Áö</a>¿¡ ´ëÇØ Á¦¾î ÇÒ ¼ö ÀÖ½À´Ï´Ù. <p>±×¸®°í ´Ù¸¥ Á¤¿äÇÑ ¼³Á¤ º¯¼ö°¡ Àִµ¥ "
+"ƯÁ¤ ½Ã°£ ÈÄ¿¡ (ȸ¿øÀ¸·Î ºÎÅÍ ´õ ÀÌ»ó ¹Ù¿î½º ±ÛÀ» ¹ÞÁö ¾Ê´Â µ¿¾È) ¹Ù¿î½º Á¤º¸"
+"´Â <a href=\"?VARHELP=bounce/bounce_info_stale_after\">\n"
+" °í·Á´ë»ó¿¡¼­ ¸Ö¾îÁö°í</a> ¹ö·ÁÁö°Ô µË´Ï´Ù. ÀÌ °ª°ú Á¡¼ö ¹®ÅÎ À» "
+"ÀûÀýÈ÷ Á¶ÀýÇÔÀ¸·Î½á ¿©·¯ºÐÀº ¾ó¸¶³ª »¡¸® ¹Ù¿î½º¸¦ ÀÐÀ¸Å°´Â ȸ¿øÀ» Ȱµ¿±ÝÁö½Ã"
+"ųÁö¸¦ Á¦¾îÇÒ ¼ö ÀÖ½À´Ï´Ù. ´ç½ÅÀº ¶ÇÇÑ ¾ðÁ¦³ª¸¶ º¸³¾ Áö, Æ®·¡ÇÈ ±Ç¼ö¸¦ ÃÖÀû"
+"È­ ½ÃŰ´Â °Íµµ ÇÊ¿äÇÕ´Ï´Ù. "
+
+#: Mailman/Gui/Bounce.py:75
+msgid "Bounce detection sensitivity"
+msgstr "¹Ù¿î½º ŽÁö Á¤µµ"
+
+#: Mailman/Gui/Bounce.py:78
+msgid "Should Mailman perform automatic bounce processing?"
+msgstr "¿¡·¯ ¸Þ¼¼ÁöµéÀ» ÀÚµ¿À¸·Î ÇØ°áÇϵµ·Ï ÇϽðڽÀ´Ï±î?"
+
+#: Mailman/Gui/Bounce.py:79
+msgid ""
+"By setting this value to <em>No</em>, you disable all\n"
+" automatic bounce processing for this list, however bounce\n"
+" messages will still be discarded so that the list "
+"administrator\n"
+" isn't inundated with them."
+msgstr ""
+"ÀÌ °ªÀ» <em>¾Æ´Ï¿ä</em>·Î ¼¼ÆÃÇÔÀ¸·Î ¿©·¯ºÐÀº ÀÌ ¸ÞÀϸµ ¸®½ºÆ® ÀÚµ¿ ¹Ù¿î½º ó"
+"¸®´Â ¸øÇÏ°Ô ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÇÏÁö¸¸ ¹Ù¿î½º ¸Þ¼¼Áö´Â ¸®½ºÆ® °ü¸®ÀÚ°¡ ±×µéÀ» ¾÷"
+"µ¥ÀÌÆ®ÇÏÁö ¾Ê´Â ÇÑ ¿©ÀüÈ÷ ¹ö·ÁÁú °ÍÀÔ´Ï´Ù."
+
+#: Mailman/Gui/Bounce.py:85
+msgid ""
+"The maximum member bounce score before the member's\n"
+" subscription is disabled. This value can be a floating point\n"
+" number."
+msgstr ""
+"ȸ¿øÀÇ È°µ¿ÀÌ ±ÝÁöµÇ´Â ÃÖ´ë ¹Ù¿î½º Á¡¼ö Å©±â. ÀÌ °ªÀº ½Ç¼öÀÏ ¼ö ÀÖ½À´Ï´Ù."
+
+#: Mailman/Gui/Bounce.py:90
+msgid ""
+"The number of days after which a member's bounce information\n"
+" is discarded, if no new bounces have been received in the\n"
+" interim. This value must be an integer."
+msgstr ""
+"Çѵ·¾È »õ·Î¿î ¹Ù¿î½º¸¦ ¹ÞÁö ¾Ê´Â ´Ù¸é ȸ¿øÀÇ ¹Ù¿î½º Á¤º¸°¡ ¹ö·ÁÁú À¯È¿ ±â°£ "
+"ÀÌ °ªÀº Á¤¼ö¿©¸¸ ÇÕ´Ï´Ù."
+
+#: Mailman/Gui/Bounce.py:95
+msgid ""
+"How many <em>Your Membership Is Disabled</em> warnings a\n"
+" disabled member should get before their address is removed "
+"from\n"
+" the mailing list. Set to 0 to immediately remove an address "
+"from\n"
+" the list once their bounce score exceeds the threshold. This\n"
+" value must be an integer."
+msgstr ""
+"¸ÞÀϸµ ¸®½ºÆ®¿¡¼­ ÁÖ¼Ò°¡ Á¦°ÅµÇ±â Àü¿¡ ¾ó¸¶³ª <em>ȸ¿ø Ȱµ¿±ÝÁö</em> °æ°í¸¦ "
+"ÇÒ °ÍÀԴϱî? 0 À¸·Î ¼³Á¤ÇÏ´Â °ÍÀº ¾î¶² À̰¡ ¹Ù¿î½º Á¡¼öÀÇ ¹®ÅÎÀ» ÇѹøÀÌ¶óµµ "
+"³Ñ±â¸é ¸®½ºÆ®¿¡¼­ ÁÖ¼Ò¸¦ Á¦°ÅÇÏ´Â °ÍÀ» ¶æÇÕ´Ï´Ù. ÀÌ °ªÀº Á¤¼ö¿©¸¸ ÇÕ´Ï´Ù."
+
+#: Mailman/Gui/Bounce.py:102
+msgid ""
+"The number of days between sending the <em>Your Membership\n"
+" Is Disabled</em> warnings. This value must be an integer."
+msgstr ""
+"<em>ȸ¿ø Ȱµ¿±ÝÁö<em> °æ°í¸¦ º¸³»´Â ³¯ÀÇ °£°Ý. ÀÌ °ªÀº Á¤¼ö¿©¸¸ ÇÕ´Ï´Ù."
+
+#: Mailman/Gui/Bounce.py:105 Mailman/Gui/General.py:257
+msgid "Notifications"
+msgstr "°øÁö ¼³Á¤"
+
+#: Mailman/Gui/Bounce.py:109
+msgid ""
+"Should Mailman send you, the list owner, any bounce messages\n"
+" that failed to be detected by the bounce processor? <em>Yes</"
+"em>\n"
+" is recommended."
+msgstr ""
+"Mailman ÀÌ ¹Ù¿î½º ó¸® ½ÇÆÐ¸¦ ÇÑ ¹Ù¿î½º ¸Þ¼¼Áö¸¦ ´ç½Å(¸®½ºÆ® ¼ÒÀ¯ÀÚ)ÀÌ ¹Þ±æ "
+"¿øÇϳª¿ä? <em>¿¹</em> ¸¦ ÃßõÇÕ´Ï´Ù."
+
+#: Mailman/Gui/Bounce.py:112
+msgid ""
+"While Mailman's bounce detector is fairly robust, it's\n"
+" impossible to detect every bounce format in the world. You\n"
+" should keep this variable set to <em>Yes</em> for two reasons: "
+"1)\n"
+" If this really is a permanent bounce from one of your members,\n"
+" you should probably manually remove them from your list, and "
+"2)\n"
+" you might want to send the message on to the Mailman "
+"developers\n"
+" so that this new format can be added to its known set.\n"
+"\n"
+" <p>If you really can't be bothered, then set this variable to\n"
+" <em>No</em> and all non-detected bounces will be discarded\n"
+" without further processing.\n"
+"\n"
+" <p><b>Note:</b> This setting will also affect all messages "
+"sent\n"
+" to your list's -admin address. This address is deprecated and\n"
+" should never be used, but some people may still send mail to "
+"this\n"
+" address. If this happens, and this variable is set to\n"
+" <em>No</em> those messages too will get discarded. You may "
+"want\n"
+" to set up an\n"
+" <a href=\"?VARHELP=autoreply/autoresponse_admin_text"
+"\">autoresponse\n"
+" message</a> for email to the -owner and -admin address."
+msgstr ""
+"Mailman ÀÇ ¹Ù¿î½º ŽÁö°¡ ºñ·Ï ½ÇÇàµÇ°í ÀÖÁö¸¸ ¼¼»óÀÇ ¸ðµç ¹Ù¿î½º Çü½ÄÀ» ŽÁö"
+"ÇÏ´Â °ÍÀº ºÒ°¡´ÉÇÕ´Ï´Ù. µÎ°¡Áö ÀÌÀ¯¶§¹®¿¡ ÀÌ °ªÀ» <em>¿¹</em> ·Î ¼³Á¤ÇϽʽÃ"
+"¿À. ù°) ¸¸¾à ¿©·¯ºÐÀÇ È¸¿øÁß ÇѸíÀ¸·Î ºÎÅÍ Áö¼ÓÀûÀ¸·Î ¹Ù¿î½º°¡ µÈ´Ù¸é ´ç½Å"
+"Àº ¼ÕÀ¸·Î ÀÛ¾÷ÇÏ¿© ¿©·¯ºÐÀÇ ¸®½ºÆ®¿¡¼­ ±×µéÀ» Á¦°ÅÇÒ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. µÑ°) "
+"¾Ë·ÁÁø »õ·Î¿î ¹Ù¿î½º Çü½ÄÀ» Mailman °³¹ßÀÚ¿¡°Ô º¸³»±æ ¿øÇÒ ¼ö ÀÖ½À´Ï´Ù.<p>¸¸"
+"¾à À̰ÍÀ¸·Î ºÎÅÍ ±«·ÓÈûÀ» ¹Þ°í ½ÍÁö ¾Ê´Ù¸é ÀÌ ¿É¼ÇÀ» <em>¾Æ´Ï¿ä</em> À¸·Î ¼³"
+"Á¤ÇÏ½Ã¸é ¸ðµç ŽÁöµÇÁö ¸øÇÑ ¹Ù¿î½ºµéÀº ó¸®ÁÙ ¹ö·ÁÁö°Ô µÉ °ÍÀÔ´Ï´Ù.<p><b>Âü"
+"°í:</b> ÀÌ ¼¼ÆÃÀº ´ç½ÅÀÇ ¸®½ºÆ® -admin ÁÖ¼Ò·Î º¸³»´Â ¸ðµç ¸Þ¼¼Áö¿¡ ¿µÇâÀ» ÁÙ "
+"¼ö ÀÖ½À´Ï´Ù. ÀÌ ÁÖ¼Ò´Â °ÅÀÇ »ç¿ëµÇÁö ¾ÊÁö¸¸ ¸î¸î »ç¶÷Àº ¾Æ¸¶ ÀÌ ÁÖ¼Ò·Î ¸ÞÀÏ"
+"À» º¸³¾ ¼ö ÀÖ½À´Ï´Ù. ¸¸¾à ÀÌ·± ÀÏÀÌ ¹ß»ýÇÑ´Ù¸é À̰ªÀ» ±×·¯ÇÑ ¸Þ¼¼Áö¸¦ ¹ö¸®±â "
+"À§ÇØ <em>¾Æ´Ï¿ä</em>·Î ¼³Á¤ÇØ¾ß ÇÒ °ÍÀÔ´Ï´Ù. ¿©·¯ºÐÀÌ -owner ¿Í -admin ÁÖ¼Ò"
+"¸¦ À§ÇÑ <a href=\"?VARHELP=autoreply/autoresponse_admin_text\">ÀÚµ¿ÀÀ´ä ¸Þ¼¼"
+"Áö</a>¸¦ ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. "
+
+#: Mailman/Gui/Bounce.py:135
+msgid ""
+"Should Mailman notify you, the list owner, when bounces\n"
+" cause a member's subscription to be disabled?"
+msgstr ""
+"Mailman ÀÌ È¸¿øÀÇ °¡ÀÔ ±ÝÁö¸¦ ÀÏÀ¸Å°°Ô ÇÏ´Â ¹Ù¿î½º¸¦ ¹Þ¾ÒÀ»¶§, ´ç½Å(¸®½ºÆ® ¼Ò"
+"À¯ÁÖ)¿¡°Ô ¾Ë¸®µµ·Ï ÇÒ±î¿ä?"
+
+#: Mailman/Gui/Bounce.py:137
+msgid ""
+"By setting this value to <em>No</em>, you turn off\n"
+" notification messages that are normally sent to the list "
+"owners\n"
+" when a member's delivery is disabled due to excessive bounces.\n"
+" An attempt to notify the member will always be made."
+msgstr ""
+"ÀÌ °ªÀ» <em>¾Æ´Ï¿ä</em>·Î ¼¼ÆÃÇÔÀ¸·Î½á ¹Ù¿î½º·Î ÀÎÇØ ȸ¿øÀÇ ¹è´Þ±ÝÁö·Î µÇ¾úÀ½"
+"À» ¾Ë¸®´Â ¸ÞÀÏ(º¸Åë ¸®½ºÆ® ¼ÒÀ¯ÁÖ¿¡°Ô º¸³»Áü)À» ¾È¿À°Ô ÇÒ ¼ö ÀÖ½À´Ï´Ù. ȸ¿ø¿¡"
+"°Ô ¾Ë¸®´Â ¸ÞÀÏÀº ¿©ÀüÈ÷ »ý¼ºÇÏ¿© ȸ¿ø¿¡°Ô º¸³»Áý´Ï´Ù."
+
+#: Mailman/Gui/Bounce.py:144
+msgid ""
+"Should Mailman notify you, the list owner, when bounces\n"
+" cause a member to be unsubscribed?"
+msgstr ""
+"Mailman ÀÌ È¸¿øÀÇ Å»Åð ±ÝÁö¸¦ ÀÏÀ¸Å°°Ô ÇÏ´Â ¹Ù¿î½º¸¦ ¹Þ¾ÒÀ»¶§, ´ç½Å(¸®½ºÆ® ¼Ò"
+"À¯ÁÖ)¿¡°Ô ¾Ë¸®µµ·Ï ÇÒ±î¿ä?"
+
+#: Mailman/Gui/Bounce.py:146
+msgid ""
+"By setting this value to <em>No</em>, you turn off\n"
+" notification messages that are normally sent to the list "
+"owners\n"
+" when a member is unsubscribed due to excessive bounces. An\n"
+" attempt to notify the member will always be made."
+msgstr ""
+"ÀÌ °ªÀ» <em>¾Æ´Ï¿ä</em>·Î ¼¼ÆÃÇÔÀ¸·Î½á ¹Ù¿î½º·Î ÀÎÇØ ȸ¿øÀÇ ÀÚµ¿Å»Åð·Î µÇ¾úÀ½"
+"À» ¾Ë¸®´Â ¸ÞÀÏ(º¸Åë ¸®½ºÆ® ¼ÒÀ¯ÁÖ¿¡°Ô º¸³»Áü)À» ¾È¿À°Ô ÇÒ ¼ö ÀÖ½À´Ï´Ù. ȸ¿ø¿¡"
+"°Ô ¾Ë¸®´Â ¸ÞÀÏÀº ¿©ÀüÈ÷ »ý¼ºÇÏ¿© ȸ¿ø¿¡°Ô º¸³»Áý´Ï´Ù."
+
+#: Mailman/Gui/Bounce.py:173
+msgid ""
+"Bad value for <a href=\"?VARHELP=bounce/%(property)s\"\n"
+" >%(property)s</a>: %(val)s"
+msgstr ""
+"À߸øµÈ °ª :<a href=\"?VARHELP=bounce/%(property)s\">%(property)s</a>: %(val)s"
+
+#: Mailman/Gui/ContentFilter.py:30
+#, fuzzy
+msgid "Content&nbsp;filtering"
+msgstr "º¸³½ÀÌ °É·¯³»±â"
+
+#: Mailman/Gui/ContentFilter.py:37
+msgid "Forward to List Owner"
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:39
+msgid "Preserve"
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:42
+msgid ""
+"Policies concerning the content of list traffic.\n"
+"\n"
+" <p>Content filtering works like this: when a message is\n"
+" received by the list and you have enabled content filtering, "
+"the\n"
+" individual attachments are first compared to the\n"
+" <a href=\"?VARHELP=contentfilter/filter_mime_types\">filter\n"
+" types</a>. If the attachment type matches an entry in the "
+"filter\n"
+" types, it is discarded.\n"
+"\n"
+" <p>Then, if there are <a\n"
+" href=\"?VARHELP=contentfilter/pass_mime_types\">pass types</a>\n"
+" defined, any attachment type that does <em>not</em> match a\n"
+" pass type is also discarded. If there are no pass types "
+"defined,\n"
+" this check is skipped.\n"
+"\n"
+" <p>After this initial filtering, any <tt>multipart</tt>\n"
+" attachments that are empty are removed. If the outer message "
+"is\n"
+" left empty after this filtering, then the whole message is\n"
+" discarded. Then, each <tt>multipart/alternative</tt> section "
+"will\n"
+" be replaced by just the first alternative that is non-empty "
+"after\n"
+" filtering.\n"
+"\n"
+" <p>Finally, any <tt>text/html</tt> parts that are left in the\n"
+" message may be converted to <tt>text/plain</tt> if\n"
+" <a href=\"?VARHELP=contentfilter/convert_html_to_plaintext\"\n"
+" >convert_html_to_plaintext</a> is enabled and the site is\n"
+" configured to allow these conversions."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:71
+msgid ""
+"Should Mailman filter the content of list traffic according\n"
+" to the settings below?"
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:75
+msgid ""
+"Remove message attachments that have a matching content\n"
+" type."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:78
+msgid ""
+"Use this option to remove each message attachment that\n"
+" matches one of these content types. Each line should contain "
+"a\n"
+" string naming a MIME <tt>type/subtype</tt>,\n"
+" e.g. <tt>image/gif</tt>. Leave off the subtype to remove all\n"
+" parts with a matching major content type, e.g. <tt>image</tt>.\n"
+"\n"
+" <p>Blank lines are ignored.\n"
+"\n"
+" <p>See also <a href=\"?VARHELP=contentfilter/pass_mime_types\"\n"
+" >pass_mime_types</a> for a content type whitelist."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:90
+msgid ""
+"Remove message attachments that don't have a matching\n"
+" content type. Leave this field blank to skip this filter\n"
+" test."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:94
+msgid ""
+"Use this option to remove each message attachment that does\n"
+" not have a matching content type. Requirements and formats "
+"are\n"
+" exactly like <a href=\"?VARHELP=contentfilter/filter_mime_types"
+"\"\n"
+" >filter_mime_types</a>.\n"
+"\n"
+" <p><b>Note:</b> if you add entries to this list but don't add\n"
+" <tt>multipart</tt> to this list, any messages with attachments\n"
+" will be rejected by the pass filter."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:104
+msgid ""
+"Should Mailman convert <tt>text/html</tt> parts to plain\n"
+" text? This conversion happens after MIME attachments have "
+"been\n"
+" stripped."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:110
+#, fuzzy
+msgid ""
+"Action to take when a message matches the content filtering\n"
+" rules."
+msgstr "±Û°ü¸®µÇ´Â ȸ¿øÀÌ ¸®½ºÆ®¿¡ ±ÛÀ» º¸³ÂÀ»¶§ ÃëÇÏ´Â Çൿ."
+
+#: Mailman/Gui/ContentFilter.py:113
+msgid ""
+"One of these actions is take when the message matches one of\n"
+" the content filtering rules, meaning, the top-level\n"
+" content type matches one of the <a\n"
+" href=\"?VARHELP=contentfilter/filter_mime_types\"\n"
+" >filter_mime_types</a>, or the top-level content type does\n"
+" <strong>not</strong> match one of the\n"
+" <a href=\"?VARHELP=contentfilter/pass_mime_types\"\n"
+" >pass_mime_types</a>, or if after filtering the subparts of "
+"the\n"
+" message, the message ends up empty.\n"
+"\n"
+" <p>Note this action is not taken if after filtering the "
+"message\n"
+" still contains content. In that case the message is always\n"
+" forwarded on to the list membership.\n"
+"\n"
+" <p>When messages are discarded, a log entry is written\n"
+" containing the Message-ID of the discarded message. When\n"
+" messages are rejected or forwarded to the list owner, a reason\n"
+" for the rejection is included in the bounce message to the\n"
+" original author. When messages are preserved, they are saved "
+"in\n"
+" a special queue directory on disk for the site administrator "
+"to\n"
+" view (and possibly rescue) but otherwise discarded. This last\n"
+" option is only available if enabled by the site\n"
+" administrator."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:154
+msgid "Bad MIME type ignored: %(spectype)s"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:36
+msgid "Digest options"
+msgstr "´ÙÀÌÁ¦½ºÆ® ȸ¿ø ¿É¼Ç - ¹­À½ ¸ÞÀÏ ¹ß¼Û Èñ¸Á ȸ¿ø"
+
+#: Mailman/Gui/Digest.py:44
+msgid "Batched-delivery digest characteristics."
+msgstr "¹­À½ ¸ÞÀÏ ¹ß¼Û ´ÙÀÌÁ¦½ºÆ® Ư¡ÀÔ´Ï´Ù."
+
+#: Mailman/Gui/Digest.py:47
+msgid "Can list members choose to receive list traffic bunched in digests?"
+msgstr ""
+"¸ÞÀϸµ ¸®½ºÆ® ¸â¹ö°¡ ´ÙÀÌÁ¦½ºÆ®¿¡¼­ ¸ÞÀϸµ ¸®½ºÆ® Æ®·¡ÇÈ ¼ö½ÅÀ» ¼±ÅÃÇÒ ¼ö ÀÖ"
+"½À´Ï±î?"
+
+#: Mailman/Gui/Digest.py:51
+msgid "Digest"
+msgstr "¹­À½¹è´Þ"
+
+#: Mailman/Gui/Digest.py:51
+msgid "Regular"
+msgstr "°³º°¹è´Þ"
+
+#: Mailman/Gui/Digest.py:52
+msgid "Which delivery mode is the default for new users?"
+msgstr "»õ »ç¿ëÀÚ¿¡ ´ëÇØ ¾î¶² ¹ß¼Û ¸ðµå¸¦ ±âº»À¸·Î »ç¿ëÇϽðڽÀ´Ï±î?"
+
+#: Mailman/Gui/Digest.py:55
+msgid "MIME"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:55
+msgid "Plain"
+msgstr "Æò¹®"
+
+#: Mailman/Gui/Digest.py:56
+msgid "When receiving digests, which format is default?"
+msgstr "´ÙÀÌÁ¦½ºÆ®¸¦ ¼ö½Å½Ã, ¾î¶² ¸ðµå¸¦ ±âº»À¸·Î »ç¿ëÇϽðڽÀ´Ï±î?"
+
+#: Mailman/Gui/Digest.py:59
+msgid "How big in Kb should a digest be before it gets sent out?"
+msgstr "´ÙÀÌÁ¦½ºÆ®ÀÇ Å©±â°¡ ¸î Kb°¡ µÉ ¶§ ¹ß¼ÛÇϽðڽÀ´Ï±î?"
+
+#: Mailman/Gui/Digest.py:63
+msgid ""
+"Should a digest be dispatched daily when the size threshold isn't reached?"
+msgstr "´ÙÀÌÁ¦½ºÆ® Å©±â°¡ À§ÀÇ °ªÀ» ³ÑÁö ¾ÊÀ» ¶§ ¸ÅÀÏ ¹ß¼ÛÇϽðڽÀ´Ï±î?"
+
+#: Mailman/Gui/Digest.py:67
+msgid "Header added to every digest"
+msgstr "¸ðµç ´ÙÀÌÁ¦½ºÆ®¿¡ Ãß°¡µÉ ¸Ó¸´¸»"
+
+#: Mailman/Gui/Digest.py:68
+msgid ""
+"Text attached (as an initial message, before the table of contents) to the "
+"top of digests. "
+msgstr ""
+"ÀÌ ±ÛÀº ³»¿ë ¼ø¼­¾Õ¿¡ ¿À´Â óÀ½ ½ÃÀÛÇÏ´Â ¸Þ¼¼Áö·Î½á ¹­À½¹è´Þ(Digest) ÀÇ °¡Àå "
+"À§¿¡ ¿À°Ô µË´Ï´Ù."
+
+#: Mailman/Gui/Digest.py:73
+msgid "Footer added to every digest"
+msgstr "¸ðµç ´ÙÀÌÁ¦½ºÆ®¿¡ Ãß°¡µÉ ²¿¸®¸»"
+
+#: Mailman/Gui/Digest.py:74
+msgid "Text attached (as a final message) to the bottom of digests. "
+msgstr "ÀÌ ±ÛÀº ¹­À½¹è´Þ(Digest) ±ÛÀÇ Á¦ÀÏ ³¡¿¡ ¿À°Ô µË´Ï´Ù."
+
+#: Mailman/Gui/Digest.py:80
+msgid "How often should a new digest volume be started?"
+msgstr "»õ ¹­À½¹è´Þ ±ÇÀ» ½ÃÀÛÇÒ ÁÖ±â´Â?"
+
+#: Mailman/Gui/Digest.py:81
+msgid ""
+"When a new digest volume is started, the volume number is\n"
+" incremented and the issue number is reset to 1."
+msgstr ""
+"»õ·Î¿î ¹­À½¹è´Þ ±ÇÀÌ ½ÃÀÛµÉ ¶§ ±Ç ¹øÈ£´Â Áõ°¡ÇÏ¸ç ¸ñÂ÷ ¹øÈ£´Â 1·Î ¸®¼Â µË´Ï"
+"´Ù."
+
+#: Mailman/Gui/Digest.py:85
+msgid "Should Mailman start a new digest volume?"
+msgstr "Mailman ÀÌ »õ·Î¿î ¹­À½¹è´Þ ±ÇÀ» ½ÃÀÛÇϵµ·Ï ÇÒ±î¿ä?"
+
+#: Mailman/Gui/Digest.py:86
+msgid ""
+"Setting this option instructs Mailman to start a new volume\n"
+" with the next digest sent out."
+msgstr ""
+"ÀÌ ¼³Á¤À» ÇÔÀ¸·Î½á Mailman ÀÌ ´ÙÀ½ ¹­À½ ¹è´ÞÀ» ³»º¸³»°í, »õ·Î¿ø ±Ç¼ö¸¦ ½ÃÀÛÇÏ"
+"°Ô ÇÕ´Ï´Ù."
+
+#: Mailman/Gui/Digest.py:90
+msgid ""
+"Should Mailman send the next digest right now, if it is not\n"
+" empty?"
+msgstr ""
+"Mailman ÀÌ ÇöÀç ¹­À½¹è´Þ ³»¿ëÀÌ ºñ¾î ÀÖÁö ¾ÊÀ¸¸é ¹Ù·Î Áö±Ý ´ÙÀ½ ¹­À½ ¹è´ÞÀ» "
+"º¸³»°Ô ÇÒ±î¿ä?"
+
+#: Mailman/Gui/Digest.py:145
+msgid ""
+"The next digest will be sent as volume\n"
+" %(volume)s, number %(number)s"
+msgstr "´ÙÀ½ ¹­À½ ¹è´ÞÀº %(volume)s ±Ç, %(number)s ¹øÈ£·Î º¸³»Áú °ÍÀÔ´Ï´Ù."
+
+#: Mailman/Gui/Digest.py:150
+msgid "A digest has been sent."
+msgstr "¹­À½¹è´ÞÀÌ º¸³»Á³½À´Ï´Ù."
+
+#: Mailman/Gui/Digest.py:152
+msgid "There was no digest to send."
+msgstr "º¸³¾ ¹­À½¹è´ÞÀÌ ¾ø½À´Ï´Ù."
+
+#: Mailman/Gui/GUIBase.py:149
+msgid "Invalid value for variable: %(property)s"
+msgstr "À߸øµÈ °ªÀº º¯¼ö°ª : %(property)s"
+
+#: Mailman/Gui/GUIBase.py:153
+msgid "Bad email address for option %(property)s: %(val)s"
+msgstr "%(property)s ¿É¼ÇÀ» À§ÇÑ À߸øµÈ E¸ÞÀÏ ÁÖ¼Ò : %(val)s"
+
+#: Mailman/Gui/GUIBase.py:179
+msgid ""
+"The following illegal substitution variables were\n"
+" found in the <code>%(property)s</code> string:\n"
+" <code>%(bad)s</code>\n"
+" <p>Your list may not operate properly until you correct "
+"this\n"
+" problem."
+msgstr ""
+"<code>%(property)s</code> ¹®ÀÚ¿­¿¡¼­ À߸øµÈ °¡ÀÔ º¯¼öµéÀ» ¹ß°ßÇÏ¿´½À´Ï´Ù. : "
+"<code>%(bad)s</code> <p>´ç½ÅÀÇ ¸®½ºÆ®´Â ÀÌ ¹®Á¦¸¦ ¼öÁ¤Çϱâ Àü¿¡ Á¦´ë·Î ÀÛµ¿ "
+"¾ÈÇÒ ¼ö ÀÖ½À´Ï´Ù. "
+
+#: Mailman/Gui/GUIBase.py:193
+msgid ""
+"Your <code>%(property)s</code> string appeared to\n"
+" have some correctable problems in its new value.\n"
+" The fixed value will be used instead. Please\n"
+" double check that this is what you intended.\n"
+" "
+msgstr ""
+"´ç½ÅÀÇ <code>%(property)s</code> ¹®ÀÚ¿­ °ªÀÌ »õ°ª¿¡¼­ ¸î¸î ¹®Á¦¸¦ ÀÏÀ¸Å°´Â °Í"
+"À¸·Î º¸ÀÔ´Ï´Ù. ¼öÁ¤µÈ °ªÀÌ ´ë½Å »ç¿ëµË´Ï´Ù. ÀÌ °ª¿¡ ´ëÇØ ½Å°æÀ» ¾²½Ã±â ¹Ù¶ø´Ï"
+"´Ù."
+
+#: Mailman/Gui/General.py:32
+msgid "General Options"
+msgstr "ÀϹÝÀûÀÎ ¼³Á¤"
+
+#: Mailman/Gui/General.py:46
+msgid "Conceal the member's address"
+msgstr "ȸ¿øÀÇ ÁÖ¼Ò ¼û±è"
+
+#: Mailman/Gui/General.py:47
+msgid "Acknowledge the member's posting"
+msgstr "ȸ¿øÀÇ º¸³½±Û È®ÀÎ"
+
+#: Mailman/Gui/General.py:48
+msgid "Do not send a copy of a member's own post"
+msgstr "ȸ¿ø ÀÚ½ÅÀÇ ±ÛÀ» º¸³»Áö ¾Ê±â"
+
+#: Mailman/Gui/General.py:50
+msgid "Filter out duplicate messages to list members (if possible)"
+msgstr "(°¡´ÉÇÏ´Ù¸é) ȸ¿ø ±Û Áß Áߺ¹µÇ´Â °Í °É·¯³»±â"
+
+#: Mailman/Gui/General.py:57
+msgid ""
+"Fundamental list characteristics, including descriptive\n"
+" info and basic behaviors."
+msgstr "±âº»ÀûÀÎ ¸®½ºÆ®¿¡ ´ëÇÑ ¼³¸í°ú ±âº» µ¿ÀÛÀ» ¼­¼úÇÏ¿´½À´Ï´Ù."
+
+#: Mailman/Gui/General.py:60
+msgid "General list personality"
+msgstr "ÀÏ¹Ý ÀûÀÎ ¸ÞÀϸµ ¸®½ºÆ® ¼³Á¤"
+
+#: Mailman/Gui/General.py:63
+msgid "The public name of this list (make case-changes only)."
+msgstr "¸ÞÀϸµ ¸®½ºÆ®ÀÇ °ø½ÄÀûÀÎ À̸§(´ë¼Ò¹®ÀÚ¸¸ º¯°æ °¡´É)"
+
+#: Mailman/Gui/General.py:64
+msgid ""
+"The capitalization of this name can be changed to make it\n"
+" presentable in polite company as a proper noun, or to make an\n"
+" acronym part all upper case, etc. However, the name will be\n"
+" advertised as the email address (e.g., in subscribe "
+"confirmation\n"
+" notices), so it should <em>not</em> be otherwise altered. "
+"(Email\n"
+" addresses are not case sensitive, but they are sensitive to\n"
+" almost everything else :-)"
+msgstr ""
+"ÀÌ À̸§Àº ¸ðÀÓÀ» ´õ º¸±âÁÁ°Ô Çϱâ À§ÇØ Àû´çÇÑ ¸í»çÀÇ ´ë¹®ÀÚÇüÀ̳ª ¿©·¯ ´Ü¾î"
+"ÀÇ Ã¹±ÛÀÚ¸¦ ´ë¹®ÀÚ·Î Á¶ÇÕÇÑ ÇüÅ µîÀ¸·Î ¹Ù²Ü ¼ö ÀÖ½À´Ï´Ù. ÇÏÁö¸¸, ÀÌ À̸§Àº "
+"¸ÞÀÏ Áּҷμ­(¿¹¸¦ µé¸é, ±¸µ¶ È®ÀÎ °øÁö¿¡¼­) °ø½ÃÇÒ °ÍÀ̱⠶§¹®¿¡ À§ÀÇ °æ¿ì"
+"°¡ ¾Æ´Ï¸é ¹Ù²ÙÁö ¸¶½Ê½Ã¿ä. (¸ÞÀÏ ÁÖ¼Ò´Â ´ë¼Ò¹®ÀÚ¸¦ ±¸ºÐÇÏÁö ¾ÊÁö¸¸, ±× ¹ÛÀÇ "
+"´ëºÎºÐÀÇ °æ¿ì¿¡´Â ±¸ºÐÇÕ´Ï´Ù.:-)"
+
+#: Mailman/Gui/General.py:73
+msgid ""
+"The list administrator email addresses. Multiple\n"
+" administrator addresses, each on separate line is okay."
+msgstr ""
+"ÀÌ ¸ÞÀϸµ ¸®½ºÆ®ÀÇ °ü¸®ÀÚ ¸ÞÀÏ ÁÖ¼Ò - °øµ¿°ü¸®µµ °¡´É, °¢°¢ÀÇ ¶óÀο¡ Àû¾îÁÖ"
+"¸é µÊ"
+
+#: Mailman/Gui/General.py:76
+#, fuzzy
+msgid ""
+"There are two ownership roles associated with each mailing\n"
+" list. The <em>list administrators</em> are the people who "
+"have\n"
+" ultimate control over all parameters of this mailing list. "
+"They\n"
+" are able to change any list configuration variable available\n"
+" through these administration web pages.\n"
+"\n"
+" <p>The <em>list moderators</em> have more limited permissions;\n"
+" they are not able to change any list configuration variable, "
+"but\n"
+" they are allowed to tend to pending administration requests,\n"
+" including approving or rejecting held subscription requests, "
+"and\n"
+" disposing of held postings. Of course, the <em>list\n"
+" administrators</em> can also tend to pending requests.\n"
+"\n"
+" <p>In order to split the list ownership duties into\n"
+" administrators and moderators, you must\n"
+" <a href=\"passwords\">set a separate moderator password</a>,\n"
+" and also provide the <a href=\"?VARHELP=general/moderator"
+"\">email\n"
+" addresses of the list moderators</a>. Note that the field you\n"
+" are changing here specifies the list administrators."
+msgstr ""
+"°¢ ¸ÞÀϸµ ¸®½ºÆ®¸¶´Ù µÎ°¡Áö Á¾À¯ÀÇ ¼ÒÀ¯ÀÚ ±ÔÄ¢ÀÌ ÀÖ½À´Ï´Ù.<em>¸ÞÀϸµ ¸®½ºÆ® "
+"°ü¸®ÀÚ</em>´Â ÀÌ ¸ÞÀϸµ ¸®½ºÆ®ÀÇ Àüü ¼³Á¤À» °ü¸®ÇÏ´Â\n"
+"»ç¶÷ÀÔ´Ï´Ù. ±×µéÀº °ü¸® À¥ ÆäÀÌÁö¸¦ ÅëÇØ ¾î¶² ¸ÞÀϸµ ¸®½ºÆ® °ü¸® º¯°æÀ»\n"
+"ÇÒ ¼ö ÀÖ½À´Ï´Ù.\n"
+"\n"
+"<em>¸ÞÀϸµ ¸®½ºÆ® ±Û°ü¸®ÀÚ</em> ´Â Á¦ÇÑµÈ ±ÇÇÑÀ» °¡Áö°í Àִµ¥ ¾î´À ¸®½ºÆ®\n"
+"ÀÇ ¼³Á¤ º¯°æÀ» ÇÒ ¼ö ¾øÁö¸¸ °ü¸® ¿äûÀ» ±â´Ù¸®°í ÀÖ´Â ¾î¶² °Íµé¿¡ ´ëÇØ\n"
+"½ÂÀÎ, Á¦°Å, ¿¬±â µîµîÀ» ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¹°·Ð em>¸ÞÀϸµ ¸®½ºÆ® °ü¸®ÀÚ</em>\n"
+"¶ÇÇÑ ÀÌ¿Í °°ÀÌ ÇÒ ¼ö ÀÖ½À´Ï´Ù.\n"
+"\n"
+"°ü¸®ÀÚ¿Í ±Û°ü¸®ÀÚ·Î ¸®½ºÆ® ¼ÒÀ¯¸¦ ³ª´©±â À§Çؼ­ ´ç½ÅÀº ¾Æ·¡ÀÇ ÇÒ¸ñ¿¡ ºÐ¸®µÈ\n"
+"<a href=\"passwords\">±Û°ü¸®ÀÚ ºñ¹Ð¹øÈ£¸¦ ¼³Á¤</a>ÇØ¾ß ÇÏ¸ç ¶ÇÇÑ\n"
+"<a href=\"?VARHELP=general/moderator\">±Û°ü¸®ÀÚÀÇ E¸ÞÀÏ ÁÖ¼Ò</a>\n"
+"¸¦ ±âÀÔÇÏ¿©¾ß ÇÕ´Ï´Ù. ÀÌ Ç׸ñÀº ¸®½ºÆ® °ü¸®ÀÚ¸¸ º¯°æÇÒ ¼ö ÀÖÀ½À» Âü°íÇϽñâ "
+"¹Ù¶ø´Ï´Ù."
+
+#: Mailman/Gui/General.py:97
+msgid ""
+"The list moderator email addresses. Multiple\n"
+" moderator addresses, each on separate line is okay."
+msgstr ""
+"±Û°ü¸®ÀÚ E¸ÞÀÏ ÁÖ¼Ò. °¢ ÁÙ(line)¸¶´Ù ÀÔ·ÂÇÏ¿© ´Ù¼öÀÇ ±Û°ü¸®ÀÚ¸¦ µÑ ¼ö ÀÖ½À´Ï"
+"´Ù."
+
+#: Mailman/Gui/General.py:100
+msgid ""
+"There are two ownership roles associated with each mailing\n"
+" list. The <em>list administrators</em> are the people who "
+"have\n"
+" ultimate control over all parameters of this mailing list. "
+"They\n"
+" are able to change any list configuration variable available\n"
+" through these administration web pages.\n"
+"\n"
+" <p>The <em>list moderators</em> have more limited permissions;\n"
+" they are not able to change any list configuration variable, "
+"but\n"
+" they are allowed to tend to pending administration requests,\n"
+" including approving or rejecting held subscription requests, "
+"and\n"
+" disposing of held postings. Of course, the <em>list\n"
+" administrators</em> can also tend to pending requests.\n"
+"\n"
+" <p>In order to split the list ownership duties into\n"
+" administrators and moderators, you must\n"
+" <a href=\"passwords\">set a separate moderator password</a>,\n"
+" and also provide the email addresses of the list moderators in\n"
+" this section. Note that the field you are changing here\n"
+" specifies the list moderators."
+msgstr ""
+"°¢ ¸ÞÀϸµ ¸®½ºÆ®¸¶´Ù µÎ°¡Áö Á¾À¯ÀÇ ¼ÒÀ¯ÀÚ ±ÔÄ¢ÀÌ ÀÖ½À´Ï´Ù.<em>¸ÞÀϸµ ¸®½ºÆ® "
+"°ü¸®ÀÚ</em>´Â ÀÌ ¸ÞÀϸµ ¸®½ºÆ®ÀÇ Àüü ¼³Á¤À» °ü¸®ÇÏ´Â\n"
+"»ç¶÷ÀÔ´Ï´Ù. ±×µéÀº °ü¸® À¥ ÆäÀÌÁö¸¦ ÅëÇØ ¾î¶² ¸ÞÀϸµ ¸®½ºÆ® °ü¸® º¯°æÀ»\n"
+"ÇÒ ¼ö ÀÖ½À´Ï´Ù.\n"
+"\n"
+"<em>¸ÞÀϸµ ¸®½ºÆ® ±Û°ü¸®ÀÚ</em> ´Â Á¦ÇÑµÈ ±ÇÇÑÀ» °¡Áö°í Àִµ¥ ¾î´À ¸®½ºÆ®\n"
+"ÀÇ ¼³Á¤ º¯°æÀ» ÇÒ ¼ö ¾øÁö¸¸ °ü¸® ¿äûÀ» ±â´Ù¸®°í ÀÖ´Â ¾î¶² °Íµé¿¡ ´ëÇØ\n"
+"½ÂÀÎ, Á¦°Å, ¿¬±â µîµîÀ» ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¹°·Ð em>¸ÞÀϸµ ¸®½ºÆ® °ü¸®ÀÚ</em>\n"
+"¶ÇÇÑ ÀÌ¿Í °°ÀÌ ÇÒ ¼ö ÀÖ½À´Ï´Ù.\n"
+"\n"
+"°ü¸®ÀÚ¿Í ±Û°ü¸®ÀÚ·Î ¸®½ºÆ® ¼ÒÀ¯¸¦ ³ª´©±â À§Çؼ­ ´ç½ÅÀº ¾Æ·¡ÀÇ ÇÒ¸ñ¿¡ ºÐ¸®µÈ\n"
+"<a href=\"passwords\">±Û°ü¸®ÀÚ ºñ¹Ð¹øÈ£¸¦ ¼³Á¤</a>ÇØ¾ß ÇÏ¸ç ¶ÇÇÑ\n"
+"ÀÌ ¼½¼Ç¿¡ ±Û°ü¸®ÀÚÀÇ E¸ÞÀÏ ÁÖ¼Ò</a>\n"
+"¸¦ ±âÀÔÇÏ¿©¾ß ÇÕ´Ï´Ù. ÀÌ Ç׸ñÀº ¸®½ºÆ® °ü¸®ÀÚ¸¸ º¯°æÇÒ ¼ö ÀÖÀ½À» Âü°íÇϽñâ "
+"¹Ù¶ø´Ï´Ù."
+
+#: Mailman/Gui/General.py:121
+msgid "A terse phrase identifying this list."
+msgstr "ÀÌ ¸®½ºÆ®¸¦ »ó¡ÇÏ´Â ¹®±¸"
+
+#: Mailman/Gui/General.py:123
+msgid ""
+"This description is used when the mailing list is listed with\n"
+" other mailing lists, or in headers, and so forth. It "
+"should\n"
+" be as succinct as you can get it, while still identifying "
+"what\n"
+" the list is."
+msgstr ""
+"ÀÌ ¼³Á¤Àº ´Ù¸¥ ¸ÞÀϸµ ¸®½ºÆ®¿¡ ¼Ò°³ µÇ°Å³ª, Çì´õ¿¡ ¼Ò°³µÉ ¶§ »ç¿ëµË´Ï´Ù. ÀÌ "
+"¸®½ºÆ®°¡ ¹«¾ùÀÎÁö¸¦ ÃÖ´ëÇÑ °£°áÇÏ°Ô ÀûÀ¸½Ã¸é µË´Ï´Ù."
+
+#: Mailman/Gui/General.py:129
+msgid ""
+"An introductory description - a few paragraphs - about the\n"
+" list. It will be included, as html, at the top of the "
+"listinfo\n"
+" page. Carriage returns will end a paragraph - see the details\n"
+" for more info."
+msgstr ""
+" ¸ñ·Ï¿¡ ´ëÇÑ ¼Ò°³ ¼³¸í(¾à°£ÀÇ ´ÜÆò) À̱ÛÀº ¸®½ºÆ® Á¤º¸ ÆäÀÌÁö »ó´Ü¿¡ »ðÀÔ µË"
+"´Ï´Ù. ÀÚ¼¼ÇÑ ¼³¸íÀº ¼¼ºÎ¼³¸íÀ» Âü°íÇϼ¼¿ä."
+
+#: Mailman/Gui/General.py:133
+msgid ""
+"The text will be treated as html <em>except</em> that\n"
+" newlines will be translated to &lt;br&gt; - so you can use "
+"links,\n"
+" preformatted text, etc, but don't put in carriage returns "
+"except\n"
+" where you mean to separate paragraphs. And review your changes "
+"-\n"
+" bad html (like some unterminated HTML constructs) can prevent\n"
+" display of the entire listinfo page."
+msgstr ""
+"ÀÌ ±ÛÀº html Çü½ÄÀ¸·Î Ãë±ÞµÇ´Âµ¥, »õ·Î¿îÁÙÀ» »ðÀÔÇÏ´Â °Í¸¸ ¿¹¿ÜÀÔ´Ï´Ù. »õ·Î"
+"¿î ÁÙÀº <br> ·Î ¹ø¿ªµÇ¸ç, ÀÌ·¯ÇÑ html ¸¦ ÅëÇØ¼­ ¸µÅ©¸¦ °É°Å³ª, ´Ù¸¥ ±ÛµéÀ» Áý"
+"¾î³Ö°Å³ª ÇÏ´Â ¿©·¯ ÀÏÀ» ÇÒ ¼ö ÀÖÁö¸¸ ¹®´ÜÀ» ±¸ºÐÇϴ ij¸®Áö ¸®ÅÏÀÇ »ðÀÎÀº Çã"
+"¿ëÇÏÁö ¾Ê½À´Ï´Ù. À߸øµÈ Çü½ÄÀÇ html À» ³Ö´Â °ÍÀº ¸ÞÀϸµ ¸®½ºÆ® Á¤º¸ ÆäÀÌÁö¸¦ "
+"¾Èº¸ÀÌ°Ô ÇÒ ¼ö ÀÖÀ¸´Ï ÁÖÀÇÇϽñ⠹ٶø´Ï´Ù."
+
+#: Mailman/Gui/General.py:141
+msgid "Prefix for subject line of list postings."
+msgstr "¸ÞÀÏ ¹ß¼Û½ÃÀÇ Á¦¸ñ¿¡ ºÙÀº Á¢µÎ»ç"
+
+#: Mailman/Gui/General.py:142
+msgid ""
+"This text will be prepended to subject lines of messages\n"
+" posted to the list, to distinguish mailing list messages in in\n"
+" mailbox summaries. Brevity is premium here, it's ok to "
+"shorten\n"
+" long mailing list names to something more concise, as long as "
+"it\n"
+" still identifies the mailing list."
+msgstr ""
+"ÀÌ ±ÛÀº ¸ÞÀÏ ¹Ú½º¿¡¼­ ¸ÞÀϸµ ¸®½ºÆ®ÀÇ ±ÛÀ» ±¸ºÐÇÒ ¼ö ÀÖ°Ô ¸Þ¼¼ÁöÀÇ Á¦¸ñ¿¡ Á¢"
+"µÎ»ç¸¦ ºÑÀÌ´Â °ÍÀ» ¶æÇÕ´Ï´Ù. Á¢µÎ»çÀÇ À̸§Àº °£°áÇØ¾ß ÇÏ¸ç ¸ÞÀϸµ ¸®½ºÆ® Àß "
+"±¸ºÐÇÒ ¼ö ÀÖµµ·Ï ÇØ¾ß ÇÕ´Ï´Ù."
+
+#: Mailman/Gui/General.py:149
+#, fuzzy
+msgid ""
+"Hide the sender of a message, replacing it with the list\n"
+" address (Removes From, Sender and Reply-To fields)"
+msgstr ""
+"º¸³½ÀÌÀÇ E¸ÞÀÏ ÁÖ¼Ò¸¦ ¸®½ºÆ®ÀÇ ÁÖ¼Ò·Î ¹Ù²ã º¸³»°Ú½À´Ï±î? (From, Sender ±×¸®"
+"°í Reply-To Çʵå Á¦°ÅÇϰԵ˴ϴÙ.)"
+
+#: Mailman/Gui/General.py:152
+msgid "<tt>Reply-To:</tt> header munging"
+msgstr "<tt>Reply-To:</tt> Çì´õ ´Ù·ç±â"
+
+#: Mailman/Gui/General.py:155
+msgid ""
+"Should any existing <tt>Reply-To:</tt> header found in the\n"
+" original message be stripped? If so, this will be done\n"
+" regardless of whether an explict <tt>Reply-To:</tt> header is\n"
+" added by Mailman or not."
+msgstr ""
+"¿øº» ¸Þ¼¼Áö¾È¿¡ ÀÖ´Â <tt>Reply-To:</tt> Çì´õ°¡ Á¸ÀçÇÑ´Ù¸é Á¦°Å ÇÒ±î¿ä? ¸¸¾à "
+"\"¿¹\"¸¦ ¼±ÅÃÇÑ´Ù¸é Mailman ¿¡ »ó°ü¾øÀÌ <tt>Reply-To:</tt> Çì´õ°¡ Á¦°ÅµË´Ï´Ù."
+
+#: Mailman/Gui/General.py:161
+msgid "Explicit address"
+msgstr "Explicit ÁÖ¼Ò"
+
+#: Mailman/Gui/General.py:161
+msgid "Poster"
+msgstr "º¸³½ÀÌ"
+
+#: Mailman/Gui/General.py:161
+msgid "This list"
+msgstr "ÇöÀç ÀÌ ¸®½ºÆ®"
+
+#: Mailman/Gui/General.py:162
+msgid ""
+"Where are replies to list messages directed?\n"
+" <tt>Poster</tt> is <em>strongly</em> recommended for most "
+"mailing\n"
+" lists."
+msgstr ""
+"±ÔÁ¦µÈ ¸Þ¼¼Áö´Â ¾îµð¿¡¼­ ´ë´äÀ» ÇØÁÙ°ÇÁö? <tt>º¸³½ÀÌ ¹æ½Ä</tt> ÀÌ <em>°¡Àå ¸¹"
+"ÀÌ »ç¿ë</em>µÈ´Ù."
+
+#: Mailman/Gui/General.py:167
+msgid ""
+"This option controls what Mailman does to the\n"
+" <tt>Reply-To:</tt> header in messages flowing through this\n"
+" mailing list. When set to <em>Poster</em>, no <tt>Reply-To:</"
+"tt>\n"
+" header is added by Mailman, although if one is present in the\n"
+" original message, it is not stripped. Setting this value to\n"
+" either <em>This list</em> or <em>Explicit address</em> causes\n"
+" Mailman to insert a specific <tt>Reply-To:</tt> header in all\n"
+" messages, overriding the header in the original message if\n"
+" necessary (<em>Explicit address</em> inserts the value of <a\n"
+" href=\"?VARHELP=general/reply_to_address\">reply_to_address</"
+"a>).\n"
+" \n"
+" <p>There are many reasons not to introduce or override the\n"
+" <tt>Reply-To:</tt> header. One is that some posters depend on\n"
+" their own <tt>Reply-To:</tt> settings to convey their valid\n"
+" return address. Another is that modifying <tt>Reply-To:</tt>\n"
+" makes it much more difficult to send private replies. See <a\n"
+" href=\"http://www.unicom.com/pw/reply-to-harmful.html\">`Reply-"
+"To'\n"
+" Munging Considered Harmful</a> for a general discussion of "
+"this\n"
+" issue. See <a\n"
+" href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml"
+"\">Reply-To\n"
+" Munging Considered Useful</a> for a dissenting opinion.\n"
+"\n"
+" <p>Some mailing lists have restricted posting privileges, with "
+"a\n"
+" parallel list devoted to discussions. Examples are `patches' "
+"or\n"
+" `checkin' lists, where software changes are posted by a "
+"revision\n"
+" control system, but discussion about the changes occurs on a\n"
+" developers mailing list. To support these types of mailing\n"
+" lists, select <tt>Explicit address</tt> and set the\n"
+" <tt>Reply-To:</tt> address below to point to the parallel\n"
+" list."
+msgstr ""
+" ÀÌ ¿É¼ÇÀº Mailman ÀÌ ¸ÞÀϸµ ¸®½ºÆ®¸¦ ÅëÇØ Áö³ª°¡´Â ¸Þ¼¼ÁöµéÀÇ ³»¿ë Áß Reply-"
+"To: Çì´õ¸¦ ÅëÇØ Á¦¾îÇÏ´Â ±â´ÉÀÔ´Ï´Ù. º¸³½ÀÌ·Î ¼¼ÆÃµÇ¾î ÀÖ´Ù¸é Mailman ÀÌ "
+"Reply-To: Çì´õ¿¡ Ãß°¡ ÇÏÁö ¾ÊÁö¸¸ ¿øº» ¸Þ¼¼Áö¿¡ Çϳª¶óµµ Á¸ÀçÇÏ°Ô µÈ´Ù¸é À̰Í"
+"Àº Àß·ÁÁ® ³ª°¥ °ÍÀÔ´Ï´Ù. ÀÌ °ªÀ» ÇöÀç ÀÌ ¸®½ºÆ® ³ª ȤÀº Explicit ÁÖ¼Ò·Î ¼³Á¤"
+"Çϸé Mailman ÀÌ ¸ðµç ¸Þ¼¼ÁöÀÇ Reply-To: Çì´õ¿¡ ƯÁ¤ °ªÀ» »ðÀÔÇÏ°Ô µË´Ï´Ù. ¸¸"
+"¾à ÇÊ¿äÇÏ´Ù¸é ¿øº» ¸Þ¼¼Áö¾ÈÀÇ Çì´õµµ °íÃÄÁú ¼ö ÀÖ ½À´Ï´Ù. (Explicit ÁÖ¼Ò Àº "
+"reply_to_address ÀÇ °ªÀ» ³Ö°Ô µË´Ï´Ù.). <p>Reply-To: Çì´õ¸¦ µ¤¾î¾²°Å³ª, »ðÀÔ"
+"ÇÏÁö ¾Ê´Â ¸¹Àº ÀÌÀ¯°¡ ÀÖ½À´Ï´Ù. Çϳª´Â ¸î¸î º¸³½ÀÌ´Â ±×µéÀÇ È¸½Å ÁÖ¼Ò·Î ÆíÁö"
+"¸¦ ¿î¹ÝÇϱâ À§ÇØ ±×µé ÀÚ½ÅÀÇ Reply-To: ¿¡ ÀÇÁ¸À» Çϰí ÀÖ½À´Ï´Ù. ´Ù¸¥ °ÍÀº "
+"Reply-To:¸¦ ¼öÁ¤ÇÏ´Â °ÍÀº °³ÀÎÀûÀΠȸ½Å À» º¸³»´Âµ¥, ¾î·Á¿òÀ» ¸¸µì´Ï´Ù. ÀÌ ¹®"
+"Á¦¿¡ ´ëÇÑ ÀϹÝÀûÀÎ Åä·Ð¿¡ ´ëÇÑ <a href=\"http://www.unicom.com/pw/reply-to-"
+"harmful.html\">`Reply-To' Munging Considered Harmful</a> ±ÛÀ» º¸½Ã±â ¹Ù¶ø´Ï"
+"´Ù. ÀÌ ±ÛÀÇ ¹Ý´ë ÀǰßÀÎ <a href=\"http://www.metasystema.org/essays/reply-to-"
+"useful.mhtml\">Reply-To Munging Considered Useful</a> ±Ûµµ º¸½Ã±â ¹Ù¶ø´Ï´Ù. "
+"<p>¸î¸î ¸ÞÀϸµ ¸®½ºÆ®´Â Åä·ÐÀÌ ÀϾ ¼ö ÀÖÀ» °æ¿ì ±Û¾²´Â ±ÇÇÑÀ» Á¦ÇÑÇÒ ¼ö ÀÖ"
+"´Â ±â´ÉÀ» °¡Áö°í ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¸é 'patches' ȤÀº 'checkin' ¸®½ºÆ®´Â ¼ÒÇÁÆ®"
+"¿þ¾î ¹öÀü °ü¸® ½Ã½ºÅÛ¿¡ ÀÇÇØ ¼ÒÇÁÇÁ¿þ¾îÀÇ º¯È­Á¡À» º¸³»°Ô µË´Ï´Ù. ÇÏÁö¸¸ ÀÌ "
+"º¯È­¿¡ ´ëÇÑ Åä·ÐÀº °³¹ßÀÚ ¸ÞÀϸµ ¸®½ºÆ®¿¡¼­ ÀϾ´Ï´Ù. ±×·¯ÇÑ ÇüÅÂÀÇ ¸ÞÀϸµ "
+"¸®½ºÆ®¸¦ Áö¿øÇϱâ À§ÇØ Explicit ÁÖ¼Ò ¿Í Reply-To: ·Î ¼¼ÆÃÇÏ´Â °ÍÀº ÁÁÀº »ý°¢ "
+"ÀÎ°Í °°½À´Ï´Ù."
+
+#: Mailman/Gui/General.py:199
+msgid "Explicit <tt>Reply-To:</tt> header."
+msgstr "Explicit ÁÖ¼Ò ¹æ½ÄÀ» ¼±ÅÃÇßÀ»¶§, Reply-To: Çì´õ¸¦ ÀÔ·ÂÇϼ¼¿ä"
+
+#: Mailman/Gui/General.py:201
+msgid ""
+"This is the address set in the <tt>Reply-To:</tt> header\n"
+" when the <a\n"
+" href=\"?VARHELP=general/reply_goes_to_list"
+"\">reply_goes_to_list</a>\n"
+" option is set to <em>Explicit address</em>.\n"
+"\n"
+" <p>There are many reasons not to introduce or override the\n"
+" <tt>Reply-To:</tt> header. One is that some posters depend on\n"
+" their own <tt>Reply-To:</tt> settings to convey their valid\n"
+" return address. Another is that modifying <tt>Reply-To:</tt>\n"
+" makes it much more difficult to send private replies. See <a\n"
+" href=\"http://www.unicom.com/pw/reply-to-harmful.html\">`Reply-"
+"To'\n"
+" Munging Considered Harmful</a> for a general discussion of "
+"this\n"
+" issue. See <a\n"
+" href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml"
+"\">Reply-To\n"
+" Munging Considered Useful</a> for a dissenting opinion.\n"
+"\n"
+" <p>Some mailing lists have restricted posting privileges, with "
+"a\n"
+" parallel list devoted to discussions. Examples are `patches' "
+"or\n"
+" `checkin' lists, where software changes are posted by a "
+"revision\n"
+" control system, but discussion about the changes occurs on a\n"
+" developers mailing list. To support these types of mailing\n"
+" lists, specify the explicit <tt>Reply-To:</tt> address here. "
+"You\n"
+" must also specify <tt>Explicit address</tt> in the\n"
+" <tt>reply_goes_to_list</tt>\n"
+" variable.\n"
+"\n"
+" <p>Note that if the original message contains a\n"
+" <tt>Reply-To:</tt> header, it will not be changed."
+msgstr ""
+"À̰ÍÀº <a href=\"?VARHELP=general/reply_goes_to_list\">reply_goes_to_list</"
+"a> ¿É¼ÇÀÌ <em>Explicit ÁÖ¼Ò</em>·Î ¼¼ÆÃµÇ¾î ÀÖÀ» °æ¿ì <tt>Reply-To: Çì´õ</tt>"
+"¿¡ ¼¼ÆÃµÉ ÁÖ¼ÒÀÔ´Ï´Ù. <p>Reply-To: Çì´õ¸¦ µ¤¾î¾²°Å³ª, »ðÀÔÇÏÁö ¾Ê´Â ¸¹Àº ÀÌÀ¯"
+"°¡ ÀÖ½À´Ï´Ù. Çϳª´Â ¸î¸î º¸³½ÀÌ´Â ±×µéÀÇ È¸½Å ÁÖ¼Ò·Î ÆíÁö¸¦ ¿î¹ÝÇϱâ À§ÇØ ±×"
+"µé ÀÚ½ÅÀÇ Reply-To: ¿¡ ÀÇÁ¸À» Çϰí ÀÖ½À´Ï´Ù. ´Ù¸¥ °ÍÀº Reply-To:¸¦ ¼öÁ¤ÇÏ´Â "
+"°ÍÀº °³ÀÎÀûÀΠȸ½Å À» º¸³»´Âµ¥, ¾î·Á¿òÀ» ¸¸µì´Ï´Ù. ÀÌ ¹®Á¦¿¡ ´ëÇÑ ÀϹÝÀûÀÎ Åä"
+"·Ð¿¡ ´ëÇÑ <a href=\"http://www.unicom.com/pw/reply-to-harmful.html\">`Reply-"
+"To' Munging Considered Harmful</a> ±ÛÀ» º¸½Ã±â ¹Ù¶ø´Ï´Ù. ÀÌ ±ÛÀÇ ¹Ý´ë ÀǰßÀÎ "
+"<a href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml\">Reply-To "
+"Munging Considered Useful</a> ±Ûµµ º¸½Ã±â ¹Ù¶ø´Ï´Ù. <p>¸î¸î ¸ÞÀϸµ ¸®½ºÆ®´Â "
+"Åä·ÐÀÌ ÀϾ ¼ö ÀÖÀ» °æ¿ì ±Û¾²´Â ±ÇÇÑÀ» Á¦ÇÑÇÒ ¼ö ÀÖ´Â ±â´ÉÀ» °¡Áö°í ÀÖ½À´Ï"
+"´Ù. ¿¹¸¦ µé¸é 'patches' ȤÀº 'checkin' ¸®½ºÆ®´Â ¼ÒÇÁÆ®¿þ¾î ¹öÀü °ü¸® ½Ã½ºÅÛ"
+"¿¡ ÀÇÇØ ¼ÒÇÁÇÁ¿þ¾îÀÇ º¯È­Á¡À» º¸³»°Ô µË´Ï´Ù. ÇÏÁö¸¸ ÀÌ º¯È­¿¡ ´ëÇÑ Åä·ÐÀº °³"
+"¹ßÀÚ ¸ÞÀϸµ ¸®½ºÆ®¿¡¼­ ÀϾ´Ï´Ù. ±×·¯ÇÑ ÇüÅÂÀÇ ¸ÞÀϸµ ¸®½ºÆ®¸¦ Áö¿øÇϱâ À§"
+"ÇØ Explicit ÁÖ¼Ò ¿Í Reply-To: ·Î ¼¼ÆÃÇÏ´Â °ÍÀº ÁÁÀº »ý°¢ ÀÎ°Í °°½À´Ï´Ù."
+
+#: Mailman/Gui/General.py:230
+msgid "Umbrella list settings"
+msgstr "µÑ·¯½Î±â ¸®½ºÆ® ¼³Á¤"
+
+#: Mailman/Gui/General.py:233
+msgid ""
+"Send password reminders to, eg, \"-owner\" address instead of\n"
+" directly to user."
+msgstr ""
+"ÇÑ´Þ¿¡ Çѹø ¾Ë·ÁÁÖ´Â ÆÐ½º¿öµå ¸ÞÀÏ(Reminder) ¸¦ »ç¿ëÀÚ¿¡°ÔÁ÷Á¢ Àü´ÞÇÏ´Â ´ë½Å "
+"\"-owner\" ÁÖ¼Ò·Î º¸³¾±î¿ä?"
+
+#: Mailman/Gui/General.py:236
+msgid ""
+"Set this to yes when this list is intended to cascade only\n"
+" to other mailing lists. When set, meta notices like\n"
+" confirmations and password reminders will be directed to an\n"
+" address derived from the member's address - it will have the\n"
+" value of \"umbrella_member_suffix\" appended to the member's\n"
+" account name."
+msgstr ""
+"ÀÌ ¸ÞÀϸµ ¸®½ºÆ®°¡ ´Ù¸¥ ¸ÞÀϸµ ¸®½ºÆ®¸¦ Æ÷ÇÔÇϰí ÀÖ´Ù¸é ¿¹¸¦ ¼±Åà ÇϽñ⠹ٶø"
+"´Ï´Ù. ¸¸¾à ¼¼ÆÃµÇ¾ú´Ù¸é È®ÀÎ ±×¸®°í ºñ¹Ð¹øÈ£ ¸ÞÀÏÀº ȸ¿øÀÇ ÁÖ¼Ò·Î ¹Ù·Î Àü´ÞµÇ"
+"°Ô µË´Ï´Ù. À̰ÍÀº ȸ¿øÀÇ °èÁ¤ À̸§¿¡ \"umbrella_member_suffix\" ¸¦ Ãß°¡½ÃŲ "
+"°ªÀÌ µÉ °Í ÀÔ´Ï´Ù."
+
+#: Mailman/Gui/General.py:244
+msgid ""
+"Suffix for use when this list is an umbrella for other\n"
+" lists, according to setting of previous \"umbrella_list\"\n"
+" setting."
+msgstr ""
+"ÀÌÀü \"umbrella_list\"(´Ù¸¥ ¸ÞÀϸµ ¸®½ºÆ® ÁÖ¼Ò¸¦ Æ÷ÇÔÇÏ´Â ¸®½ºÆ®)ÀÇ ¼¼ÆÃ¿¡ µû"
+"¶ó¼­ ÀÌ ¸ÞÀϸµ ¸®½ºÆ®°¡ ´Ù¸¥ ¸®½ºÆ®¸¦ Æ÷ÇÔÇÏ´Â umbrella ¸®½ºÆ® ¶ó¸é »ç¿ëÇÒ Á¢"
+"¹Ì»ç¸¦ Á¤Çϼ¼¿ä."
+
+#: Mailman/Gui/General.py:248
+msgid ""
+"When \"umbrella_list\" is set to indicate that this list has\n"
+" other mailing lists as members, then administrative notices "
+"like\n"
+" confirmations and password reminders need to not be sent to "
+"the\n"
+" member list addresses, but rather to the owner of those member\n"
+" lists. In that case, the value of this setting is appended to\n"
+" the member's account name for such notices. `-owner' is the\n"
+" typical choice. This setting has no effect when \"umbrella_list"
+"\"\n"
+" is \"No\"."
+msgstr ""
+"ÀÌ ¸ÞÀϸµ ¸®½ºÆ®°¡ ȸ¿øÀ¸·Î ´Ù¸¥ ¸ÞÀϸµ ¸®½ºÆ®¸¦ °¡Áö°í ÀÖ´Â \"umbrella_list"
+"\" ·Î ¼¼ÆÃµÇ¾î ÀÖ´Ù¸é È®ÀÎ ±×¸®°í ºñ¹Ð¹øÈ£ °ü·Ã ¸ÞÀϰú °°Àº °ü¸® °øÁö ³»¿ëÀº "
+"ȸ¿ø ¸ñ·ÏÀÇ ÁÖ¼Ò·Î º¸³»Áú ÇÊ¿ä´Â ¾ø½À´Ï´Ù. ÇÏÁö¸¸ ÀúÂÊ È¸¿ø ¸®½ºÆ®ÀÇ ÁÖÀÎÀå¿¡"
+"°Ô º¸³»´Â °ÍÀÌ ³´½À´Ï´Ù. ±×·¯ÇÑ °æ¿ì ÀÌ ¼³Á¤ÀÇ °ªÀº ȸ¿øÀÇ °èÁ¤¿¡ Ãß°¡µÇ¾î Áý"
+"´Ï´Ù. '-owner' ´Â ±âº»ÀûÀÎ °ªÀ̸ç ÀÌ ¼³Á¤Àº \"umbrella_list\" ¼³Á¤ÀÌ \"¾Æ´Ï¿ä"
+"\"·Î ¼³Á¤µÇ¾î ÀÖ´Ù¸é ¿µÇâÀ» ¹ÌÄ¡Áö ¾Ê½À´Ï´Ù."
+
+#: Mailman/Gui/General.py:260
+msgid "Send monthly password reminders?"
+msgstr "ÇÑ´Þ¿¡ Çѹø ÆÐ½º¿öµå ¸ÞÀÏÀ» º¸³¾±î¿ä? "
+
+#: Mailman/Gui/General.py:262
+msgid ""
+"Turn this on if you want password reminders to be sent once\n"
+" per month to your members. Note that members may disable "
+"their\n"
+" own individual password reminders."
+msgstr ""
+
+#: Mailman/Gui/General.py:267
+msgid ""
+"List-specific text prepended to new-subscriber welcome\n"
+" message"
+msgstr "¹Ì¸® ÁغñµÈ »õ·Î¿î °¡ÀÔÀÚ¸¦ À§ÇÑ È¯¿µ ¸Þ¼¼Áö"
+
+#: Mailman/Gui/General.py:270
+msgid ""
+"This value, if any, will be added to the front of the\n"
+" new-subscriber welcome message. The rest of the welcome "
+"message\n"
+" already describes the important addresses and URLs for the\n"
+" mailing list, so you don't need to include any of that kind of\n"
+" stuff here. This should just contain mission-specific kinds "
+"of\n"
+" things, like etiquette policies or team orientation, or that "
+"kind\n"
+" of thing.\n"
+"\n"
+" <p>Note that this text will be wrapped, according to the\n"
+" following rules:\n"
+" <ul><li>Each paragraph is filled so that no line is longer "
+"than\n"
+" 70 characters.\n"
+" <li>Any line that begins with whitespace is not filled.\n"
+" <li>A blank line separates paragraphs.\n"
+" </ul>"
+msgstr ""
+"¿©±â ³ÖÀº °ªÀº »õ·Î¿î °¡ÀÔÀÚÀÇ È¯¿µ ¸Þ¼¼Áö ¾Õ¿¡ ºÙ°Ô µË´Ï´Ù. ¸Þ¼¼ÁöÀÇ ´Ù¸¥ ºÎ"
+"ºÐÀº ÀÌ¹Ì ¸ÞÀϸµ ¸®½ºÆ®¿¡ ´ëÇÑ Áß¿ä Á¤º¸¿Í ÁÖ¼Ò¸¦ °¡Áö°í Àֱ⠶§¹®¿¡, ÀÌ·¯ÇÑ "
+"°ÍÀ» ³ÖÀ» ÇÊ¿ä´Â ¾ø½À´Ï´Ù. ´Ü¼øÈ÷ ¸ÞÀϸµ ¸®½ºÆ®ÀÇ Æ¯Â¡ÀÌ¶ó´ø°¡, ÇÏ´Â ÀÏ, ¿¹"
+"ÀÇ µîµîÀÇ Á¤Ã¥À» ³ÖÀ¸½Ã¸é µË´Ï´Ù.\n"
+"<p>ÀÌ ±ÛÀº ´ÙÀ½ÀÇ ±ÔÄ¢¿¡ µû¶ó Æ÷ÀåµË´Ï´Ù:<ul><li>°¢ ¹®ÀåÀº 70 ¹®ÀÚ ÀÌ»óÀ¸·Î "
+"±æ°Ô ¾²Áö ¸¶½Ê½Ã¿À.<li>°ø¹é¹®ÀÚ·Î ½ÃÀÛÇÏÁö ¸¶½Ê½Ã¿À<li>ºó ÁÙÀº ¹®´Ü ±¸ºÐ¿¡ »ç"
+"¿ëÇϽʽÿÀ.</ul>"
+
+#: Mailman/Gui/General.py:287
+msgid "Send welcome message to newly subscribed members?"
+msgstr "¾î¶² »ç¶÷ÀÌ °¡ÀÔÇßÀ» ¶§ ȯ¿µ ¸Þ¼¼Áö¸¦ º¸³¾±î¿ä?"
+
+#: Mailman/Gui/General.py:288
+msgid ""
+"Turn this off only if you plan on subscribing people manually\n"
+" and don't want them to know that you did so. This option is "
+"most\n"
+" useful for transparently migrating lists from some other "
+"mailing\n"
+" list manager to Mailman."
+msgstr ""
+"¸¸¾à ´ç½ÅÀÌ °¡ÀÔÇÏ´Â »ç¶÷µéÀ» ¼ÕÀ¸·Î ¼±¹ßÇϴµ¥, ±×·¯ÇÑ »ç½ÇÀ» ¾Ë¸®°í ½ÍÁö ¾Ê"
+"À» ¶§ »ç¿ëÇϽʽÿÀ. ÀÌ ±â´ÉÀº ´Ù¸¥ ¸ÞÀϸµ ¸®½ºÆ® °ü¸® Åø¿¡¼­ Mailman À¸·Î ¸®"
+"½ºÆ®¸¦ ¿Å±â´Âµ¥ ¾µ¸ðÀÖÀ» °ÍÀÔ´Ï´Ù."
+
+#: Mailman/Gui/General.py:294
+msgid ""
+"Text sent to people leaving the list. If empty, no special\n"
+" text will be added to the unsubscribe message."
+msgstr ""
+"¸®½ºÆ®¸¦ ¶°³ª´Â »ç¶÷¿¡°Ô º¸³»´Â ±Û - ºñ¾î ÀÖ´Ù¸é ¸Þ¼¼Áö´Â °¡Áö ¾ÊÀ» °ÍÀÔ´Ï´Ù."
+
+#: Mailman/Gui/General.py:298
+msgid "Send goodbye message to members when they are unsubscribed?"
+msgstr "Å»ÅðÇϴ ȸ¿ø¿¡°Ô \"Àß°¡¼¼¿ä\" ¶ó´Â ÆíÁö¸¦ º¸³¾±î¿ä?"
+
+#: Mailman/Gui/General.py:301
+msgid ""
+"Should the list moderators get immediate notice of new\n"
+" requests, as well as daily notices about collected ones?"
+msgstr "°ü¸®ÀÚ¿¡°Ô »õ·Î¿î ¿äûÀÌ µé¾î ¿ÔÀ»¶§, Áï°¢ÀûÀ¸·Î °øÁö¸¦ º¸³¾±î¿ä?"
+
+#: Mailman/Gui/General.py:304
+msgid ""
+"List moderators (and list administrators) are sent daily\n"
+" reminders of requests pending approval, like subscriptions to "
+"a\n"
+" moderated list, or postings that are being held for one reason "
+"or\n"
+" another. Setting this option causes notices to be sent\n"
+" immediately on the arrival of new requests as well."
+msgstr ""
+"¸ÞÀϸµ ¸®½ºÆ® °ü¸®ÀÚ´Â °¡ÀÔ°Ç È¤Àº Moderator ¸®½ºÆ® ȤÀº º¸³½ ±Û µéÀ» ´Ù·ç¾î"
+"¾ß Çϴµ¥, °ü¸®ÀûÀÎ ½ÂÀÎÀ» ´ë±âÇϰí ÀÖ´Â ±ÛµéÀÌ ÀÖÀ» °æ¿ì ³¯¸¶´Ù °øÁö¸¦ ¹Þ°Ô "
+"µË´Ï´Ù. ÀÌ ¿É¼ÇÀ» ¼¼ÆÃÇÔÀ¸·Î½á »õ·Î¿î ¿äûÀÌ µé¾î ¿ÔÀ»¶§ ¹Ù·Î ¸ÞÀÏÀ» º¸³»°Ô "
+"ÇÒ ¼ö ÀÖ½À´Ï´Ù."
+
+#: Mailman/Gui/General.py:311
+msgid ""
+"Should administrator get notices of subscribes and\n"
+" unsubscribes?"
+msgstr "¸ÞÀϸµ ¸®½ºÆ® °ü¸®ÀÚ´Â °¡ÀÔ/Å»Åð »ç½ÇÀ» ¹Þ¾Æ º¼°ÍÀԴϱî?"
+
+#: Mailman/Gui/General.py:316
+msgid "Send mail to poster when their posting is held for approval?"
+msgstr ""
+"ÆíÁö¸¦ ¾´ »ç¶÷¿¡°Ô ±×ÀÇ ÆíÁö°¡ ÇöÀç ½ÂÀÎ ´ë±â»óÅ¿¡ ÀÖ´Ù´Â »ç½ÇÀ» ¾Ë·Á ÁÙ°ÍÀÔ"
+"´Ï±î?"
+
+#: Mailman/Gui/General.py:318
+msgid ""
+"Approval notices are sent when mail triggers certain of the\n"
+" limits <em>except</em> routine list moderation and spam "
+"filters,\n"
+" for which notices are <em>not</em> sent. This option "
+"overrides\n"
+" ever sending the notice."
+msgstr ""
+"½ÂÀÎ ´ë½Ã °øÁö´Â ½ºÆÔ ÇÊÅÍ¿¡ °É¸®°Å³ª, °øÁö°¡ ¹Þ¾ÆÁöÁö ¾ÊÀ» ¶§¸¦ ±×·¯ÇÑ »ç½Ç"
+"À» ÅëÁö¹Þ°Ô µË´Ï´Ù. ÀÌ ¿É¼ÇÀº ÀÌ·¯ÇÑ °øÁö¸¦ º¸³»µµ·Ï ÇÕ´Ï´Ù."
+
+#: Mailman/Gui/General.py:323
+msgid "Additional settings"
+msgstr "Ãß°¡ÀûÀÎ ¼³Á¤"
+
+#: Mailman/Gui/General.py:326
+#, fuzzy
+msgid "Emergency moderation of all list traffic."
+msgstr "¸ðµç ¸®½ºÆ® ±Û¿¡ ´ëÇØ ±ä±Þ ±Û°ü¸® ¸ðµå·Î Àüȯ"
+
+#: Mailman/Gui/General.py:327
+msgid ""
+"When this option is enabled, all list traffic is emergency\n"
+" moderated, i.e. held for moderation. Turn this option on when\n"
+" your list is experiencing a flamewar and you want a cooling "
+"off\n"
+" period."
+msgstr ""
+
+#: Mailman/Gui/General.py:339
+msgid ""
+"Default options for new members joining this list.<input\n"
+" type=\"hidden\" name=\"new_member_options\" value=\"ignore\">"
+msgstr ""
+
+#: Mailman/Gui/General.py:342
+#, fuzzy
+msgid ""
+"When a new member is subscribed to this list, their initial\n"
+" set of options is taken from the this variable's setting."
+msgstr ""
+"»õ·Î¿î ȸ¿øÀÌ ÀÌ ¸®½ºÆ®¿¡ °¡ÀÔÇÏ¸é ±×µéÀÇ Ãʱ⠼³Á¤Àº ÀÌ °ªµé·Î ¼³Á¤µË´Ï´Ù."
+
+#: Mailman/Gui/General.py:346
+msgid ""
+"(Administrivia filter) Check postings and intercept ones\n"
+" that seem to be administrative requests?"
+msgstr ""
+"(°ü¸®ÀÚ ¿äû °É·¯³»±â) Æ÷½ºÆÃµÈ ±ÛÀÌ °ü¸®ÀÚ¿¡°Ô º¸³»´Â ¿äûÀÎÁö ¾Æ´ÑÁö¸¦ °Ë»ç"
+"ÇÏ°Ô ÇÒ±î¿ä? ¸¸¾à °ü¸®ÀÚ ¿äû ÆäÀÌÁö¸é Áß°£¿¡¼­ °¡·Îä°Ô µË´Ï´Ù."
+
+#: Mailman/Gui/General.py:349
+msgid ""
+"Administrivia tests will check postings to see whether it's\n"
+" really meant as an administrative request (like subscribe,\n"
+" unsubscribe, etc), and will add it to the the administrative\n"
+" requests queue, notifying the administrator of the new "
+"request,\n"
+" in the process."
+msgstr ""
+"°ü¸® °Ë»ç´Â °ü¸®ÀÚ¿¡°Ô ¿À´Â ¿äû(°¡ÀÔ, Å»Åð, ±âŸµîµî) ÀÌ Á¤È®ÇÑÁö ¾Æ´ÑÁö¸¦ "
+"°Ë»çÇÕ´Ï´Ù. ¸¸¾à Á¤È®ÇÏ´Ù¸é °ü¸®ÀÚ ¿äû ´ë±âÅ¥¿¡ ³Ö¾îÁö¸ç °ü¸®ÀÚ¿¡°Ô »õ·Î¿î "
+"¿äû¿¡ ´ëÇÑ °øÁö¸¦ º¸³»°Ô µË´Ï´Ù."
+
+#: Mailman/Gui/General.py:356
+msgid ""
+"Maximum length in kilobytes (KB) of a message body. Use 0\n"
+" for no limit."
+msgstr ""
+"ÆíÁöÀÇ º»¹® ÃÖ´ë Å©±â¸¦ Á¤ÇØÁÖ¼¼¿ä. ¹«Á¦ÇÑÀ¸·Î ÇϽǷÁ¸é 0À¸·Î ³õÀ¸¼¼¿ä."
+
+#: Mailman/Gui/General.py:360
+msgid "Host name this list prefers for email."
+msgstr "ÀÌ ¸ÞÀϸµ ¸®½ºÆ®ÀÇ È£½ºÆ® À̸§Àº"
+
+#: Mailman/Gui/General.py:362
+msgid ""
+"The \"host_name\" is the preferred name for email to\n"
+" mailman-related addresses on this host, and generally should "
+"be\n"
+" the mail host's exchanger address, if any. This setting can "
+"be\n"
+" useful for selecting among alternative names of a host that "
+"has\n"
+" multiple addresses."
+msgstr ""
+" host_name Àº ÀÌ È£½ºÆ® »ó¿¡¼­ mailman °ü·Ã ÁÖ¼Ò¸¦ ó¸®ÇÒ ¶§ »ç¿ë µË´Ï´Ù. ÀÌ "
+"¼³Á¤Àº ´Ù¼öÀÇ ÁÖ¼Ò¿¡¼­ È£½ºÆ®ÀÇ À̸§À» ¼±ÅÃÇϴµ¥ À¯¿ëÇÒ °ÍÀÔ´Ï´Ù."
+
+#: Mailman/Gui/General.py:374
+#, fuzzy
+msgid ""
+"Should messages from this mailing list include the\n"
+" <a href=\"http://www.faqs.org/rfcs/rfc2369.html\">RFC 2369</"
+"a>\n"
+" (i.e. <tt>List-*</tt>) headers? <em>Yes</em> is highly\n"
+" recommended."
+msgstr ""
+"<a href=\"http://www.faqs.org/rfc/rfc2369.html\">RFC 2369</a>(¿¹, <tt>List-"
+"*</tt> ) Çìµå¸¦ Æ÷ÇÔÇϵµ·Ï ¸ÞÀϸµ ¸®½ºÆ®¸¦ ¼³Á¤ÇϽðڽÀ´Ï´Ù. <em>¿¹</rm> ¸¦ "
+"ÃßõÇÕ´Ï´Ù."
+
+#: Mailman/Gui/General.py:379
+msgid ""
+"RFC 2369 defines a set of List-* headers that are\n"
+" normally added to every message sent to the list "
+"membership.\n"
+" These greatly aid end-users who are using standards "
+"compliant\n"
+" mail readers. They should normally always be enabled.\n"
+"\n"
+" <p>However, not all mail readers are standards compliant "
+"yet,\n"
+" and if you have a large number of members who are using\n"
+" non-compliant mail readers, they may be annoyed at these\n"
+" headers. You should first try to educate your members as "
+"to\n"
+" why these headers exist, and how to hide them in their "
+"mail\n"
+" clients. As a last resort you can disable these headers, "
+"but\n"
+" this is not recommended (and in fact, your ability to "
+"disable\n"
+" these headers may eventually go away)."
+msgstr ""
+"RFC 2369 ´Â List-* Çì´õµéÀ» Á¤ÀǸ¦ Çϴµ¥ ÀϹÝÀûÀ¸·Î ¸ÞÀϸµ ¸®½ºÆ® ȸ¿ø¿¡°Ô "
+"º¸³»Áö´Â ¸ðµç ¸Þ¼¼Áö¿¡ Ãß°¡µÇ¾î Áý´Ï´Ù. À̰ÍÀº Ç¥ÁØ ¸ÞÀÏ ÇÁ·Î±×·¥À» »ç¿ëÇÏ´Â "
+"¸»´Ü »ç¿ëÀÚ¿¡°Ô ¸¹Àº µµ¿òÀ» ÁÝ´Ï´Ù. ÀϹÝÀûÀ¸·Î À̰ÍÀ» \"¿¹\"·Î ¼³Á¤ÇØ¾ß ÇÕ´Ï"
+"´Ù. <p>ÇÏÁö¸¸ ¸ðµç ¸ÞÀÏ ÇÁ·Î±×·¥µéÀÌ Ç¥ÁØÀ» ÁöŲ´Ù°í ÇÒ ¼ö ¾øÀ¸¸ç ȸ¿ø ¼ö°¡ "
+"³Ê¹« ¸¹¾Æ ºÒÇÊ¿äÇÑ ¸ÞÀÏ Çì´õµéÀ» »ý·«Çϰí ÀÖÀ¸½Ã¸é, ÀÌ Çì´õ¸¦ »ý·«ÇÒ ¼ö ÀÖ½À"
+"´Ï´Ù. ù°·Î ´ç½ÅÀº ±×·¯ÇÑ Çì´õ°¡ ¿Ö Á¸ÀçÇÏ´ÂÁö ´ç½ÌÀÇ È¸¿øÀ» °¡¸£ÄÑÁà¾ß ÇÕ´Ï"
+"´Ù. ±×¸®°í ¾î¶»°Ô ÇÏ¸é ±×µéÀÇ ¸ÞÀÏ Å¬¶óÀÌ¾ðÆ®¿¡¼­ ±×°ÍÀ» ¼û±â´ÂÁö¸¦ °¡¸£ÄÑ¾ß "
+"ÇÕ´Ï´Ù. ±×¸®°í ±×³É ÀÌ Çì´õ¸¦ ±ÝÁöÇÒ ¼ö ÀÖÁö¸¸ À̰ÍÀº ÃßõÇÏÁö ¾Ê½À´Ï´Ù.(»ç"
+"½Ç ÀÌ·¯ÇÑ Çì´õ¸¦ ±ÝÁöÇÏ´Â ´É·ÂÀº Á¶¸¸°£ »ç¶ó Áú ¼ö ÀÖ½À´Ï´Ù.)"
+
+#: Mailman/Gui/General.py:397
+msgid "Should postings include the <tt>List-Post:</tt> header?"
+msgstr ""
+
+#: Mailman/Gui/General.py:398
+msgid ""
+"The <tt>List-Post:</tt> header is one of the headers\n"
+" recommended by\n"
+" <a href=\"http://www.faqs.org/rfcs/rfc2369.html\">RFC 2369</"
+"a>.\n"
+" However for some <em>announce-only</em> mailing lists, only a\n"
+" very select group of people are allowed to post to the list; "
+"the\n"
+" general membership is usually not allowed to post. For lists "
+"of\n"
+" this nature, the <tt>List-Post:</tt> header is misleading.\n"
+" Select <em>No</em> to disable the inclusion of this header. "
+"(This\n"
+" does not affect the inclusion of the other <tt>List-*:</tt>\n"
+" headers.)"
+msgstr ""
+
+#: Mailman/Gui/General.py:416
+#, fuzzy
+msgid ""
+"<b>real_name</b> attribute not\n"
+" changed! It must differ from the list's name by case\n"
+" only."
+msgstr ""
+"<p><b>real_name</b> Ư¼ºÀÌ º¯ÇÏÁö ¾Ê¾Ò½À´Ï´Ù. À̰ÍÀº ´ÜÁö ´ë¼Ò¹®ÀÚ¸¸ ¹Ù²ð ¼ö "
+"ÀÖ½À´Ï´Ù.<p>"
+
+#: Mailman/Gui/General.py:437
+msgid ""
+"You cannot add a Reply-To: to an explicit\n"
+" address if that address is blank. Resetting these values."
+msgstr ""
+
+#: Mailman/Gui/Language.py:34
+msgid "Language&nbsp;options"
+msgstr "¾ð¾î&nbsp;¼³Á¤"
+
+#: Mailman/Gui/Language.py:66
+msgid "Natural language (internationalization) options."
+msgstr "¸ð±¹¾î (±¹Á¦È­) ¼³Á¤ºÎºÐÀÔ´Ï´Ù."
+
+#: Mailman/Gui/Language.py:71
+msgid "Default language for this list."
+msgstr "ÀÌ ¸ÞÀϸµ ¸®½ºÆ® ±âº» ¾ð¾î"
+
+#: Mailman/Gui/Language.py:72
+msgid ""
+"This is the default natural language for this mailing list.\n"
+" If <a href=\"?VARHELP=language/available_languages\">more than "
+"one\n"
+" language</a> is supported then users will be able to select "
+"their\n"
+" own preferences for when they interact with the list. All "
+"other\n"
+" interactions will be conducted in the default language. This\n"
+" applies to both web-based and email-based messages, but not to\n"
+" email posted by list members."
+msgstr ""
+"ÀÌ ¼³Á¤Àº ¸ÞÀϸµ ¸®½ºÆ®ÀÇ ¸ð±¹¾î ¼³Á¤ ºÎºÐÀÔ´Ï´Ù. ¸¸¾à »ç¿ëÀÚ°¡ <a href=\"?"
+"VARHELP=language/available_languages\">ÇѰ¡Áö ÀÌ»ó ¾ð¾î</a>¸¦ ¼³Á¤ÇÏ±æ ¿øÇÑ´Ù"
+"¸é ¸µÅ©¸¦ ÂüÁ¶ÇϽʽÿÀ. ¸ðµç ´Ù¸¥ ºÎºÐµéÀº ¼±ÅÃµÈ ¸ð±¹¾î·Î ³ª¿Ã °ÍÀÔ´Ï´Ù. ¿©"
+"±â¿¡¼­ ¼³Á¤ÇÑ ºÎºÐÀº À¥-ºÎºÐ °ú E¸ÞÀÏ ºÎºÐ ¸Þ¼¼Áö¿¡ Àû¿ëµÇ¸ç ¸®½ºÆ® ȸ¿ø¿¡°Ô "
+"¹è´ÞµÇ´Â E¸ÞÀÏ¿¡´Â Àû¿ëµÇÁö ¾Ê½À´Ï´Ù."
+
+#: Mailman/Gui/Language.py:82
+msgid "Languages supported by this list."
+msgstr "ÀÌ ¸ÞÀϸµ ¸®½ºÆ®¿¡¼­ Áö¿øÇÏ´Â ¾ð¾î"
+
+#: Mailman/Gui/Language.py:84
+msgid ""
+"These are all the natural languages supported by this list.\n"
+" Note that the\n"
+" <a href=\"?VARHELP=language/preferred_language\">default\n"
+" language</a> must be included."
+msgstr ""
+"ÀÌ ¸®½ºÆ®¿¡¼­ Áö¿øµÇ´Â ³ª¶óÀÇ ¾ð¾î µéÀÔ´Ï´Ù. <a href=\"?VARHELP=language/"
+"preferred_language\">±âº» ¾ð¾î</a>´Â ±âº»ÀûÀ¸·Î Æ÷ÇԵǾî¾ß ÇÕ´Ï´Ù."
+
+#: Mailman/Gui/Language.py:90
+#, fuzzy
+msgid "Always"
+msgstr "³¯µé"
+
+#: Mailman/Gui/Language.py:90
+msgid "As needed"
+msgstr ""
+
+#: Mailman/Gui/Language.py:90
+#, fuzzy
+msgid "Never"
+msgstr "¿¬±âÇϱâ"
+
+#: Mailman/Gui/Language.py:91
+msgid ""
+"Encode the\n"
+" <a href=\"?VARHELP=general/subject_prefix\">subject\n"
+" prefix</a> even when it consists of only ASCII characters?"
+msgstr ""
+
+#: Mailman/Gui/Language.py:95
+msgid ""
+"If your mailing list's default language uses a non-ASCII\n"
+" character set and the prefix contains non-ASCII characters, "
+"the\n"
+" prefix will always be encoded according to the relevant\n"
+" standards. However, if your prefix contains only ASCII\n"
+" characters, you may want to set this option to <em>Never</em> "
+"to\n"
+" disable prefix encoding. This can make the subject headers\n"
+" slightly more readable for users with mail readers that don't\n"
+" properly handle non-ASCII encodings.\n"
+"\n"
+" <p>Note however, that if your mailing list receives both "
+"encoded\n"
+" and unencoded subject headers, you might want to choose <em>As\n"
+" needed</em>. Using this setting, Mailman will not encode "
+"ASCII\n"
+" prefixes when the rest of the header contains only ASCII\n"
+" characters, but if the original header contains non-ASCII\n"
+" characters, it will encode the prefix. This avoids an "
+"ambiguity\n"
+" in the standards which could cause some mail readers to "
+"display\n"
+" extra, or missing spaces between the prefix and the original\n"
+" header."
+msgstr ""
+
+#: Mailman/Gui/Membership.py:26
+msgid "Membership&nbsp;Management"
+msgstr "ȸ¿ø&nbsp;°ü¸®"
+
+#: Mailman/Gui/Membership.py:30
+msgid "Membership&nbsp;List"
+msgstr "ȸ¿ø ¸ñ·Ï"
+
+#: Mailman/Gui/Membership.py:31
+msgid "Mass&nbsp;Subscription"
+msgstr "´ë±Ô¸ð °¡ÀÔ"
+
+#: Mailman/Gui/Membership.py:32
+msgid "Mass&nbsp;Removal"
+msgstr "´ë±Ô¸ð Å»Åð"
+
+#: Mailman/Gui/NonDigest.py:34
+msgid "Non-digest&nbsp;options"
+msgstr "Á¤È¸¿ø(´ÙÀÌÁ¦½ºÆ® ȸ¿øÀÌ ¾Æ´Ñ) ¿É¼Ç"
+
+#: Mailman/Gui/NonDigest.py:42
+msgid "Policies concerning immediately delivered list traffic."
+msgstr ""
+"ȸ¿øµé¿¡°Ô Áï°¢ÀûÀ¸·Î ¹è´ÞµÇ´Â ¸ÞÀϸµ ¸®½ºÆ®ÀÇ Æ®·¡ÇÈÀ» ¼³Á¤ÇÏ´Â ºÎºÐÀÔ´Ï´Ù."
+
+#: Mailman/Gui/NonDigest.py:45
+msgid ""
+"Can subscribers choose to receive mail immediately, rather\n"
+" than in batched digests?"
+msgstr ""
+"°¡ÀÔÀÚµéÀÌ ¸ÞÀÏÀ» ¹Ù·Î ¹ÞÀ» °ÍÀΰ¡, ȤÀº ¹­À½À¸·Î ¹ÞÀ» °ÍÀΰ¡(Digest ¿©ºÎ) "
+"¸¦ °áÁ¤ÇÒ ¼ö ÀÖ°Ô ÇÒ°ÍÀԴϱî?"
+
+#: Mailman/Gui/NonDigest.py:52
+msgid "Full Personalization"
+msgstr ""
+
+#: Mailman/Gui/NonDigest.py:54
+msgid ""
+"Should Mailman personalize each non-digest delivery?\n"
+" This is often useful for announce-only lists, but <a\n"
+" href=\"?VARHELP=nondigest/personalize\">read the details</"
+"a>\n"
+" section for a discussion of important performance\n"
+" issues."
+msgstr ""
+"Mailman ÀÌ °¢ °³º°¹è´Þ »ç¿ëÀÚ¸¦ ÀÏÀÏÀÌ °³º°È­ ½Ãų°ÍÀΰ¡? À̰ÍÀº °øÁö»çÇ×À» "
+"º¸³»´Â ¸®½ºÆ®¿¡ À¯¿ëÇÏ°Ô »ç¿ëµÉ °ÍÀÔ´Ï´Ù. ÇÏÁö¸¸ Áß¿äÇÑ ½ÇÇà ¹®ÀÚ¿¡ ´ëÇÑ Åä"
+"ÀÇ ºÎºÐÀ» <a href=\"?VARHELP=nondigest/personalize\">ÀÚ¼¼È÷ ÀÐÀ¸</a>½Ê½Ã¿À."
+
+#: Mailman/Gui/NonDigest.py:60
+#, fuzzy
+msgid ""
+"Normally, Mailman sends the regular delivery messages to\n"
+" the mail server in batches. This is much more efficent\n"
+" because it reduces the amount of traffic between Mailman "
+"and\n"
+" the mail server.\n"
+"\n"
+" <p>However, some lists can benefit from a more "
+"personalized\n"
+" approach. In this case, Mailman crafts a new message for\n"
+" each member on the regular delivery list. Turning this\n"
+" feature on may degrade the performance of your site, so "
+"you\n"
+" need to carefully consider whether the trade-off is worth "
+"it,\n"
+" or whether there are other ways to accomplish what you "
+"want.\n"
+" You should also carefully monitor your system load to make\n"
+" sure it is acceptable.\n"
+"\n"
+" <p>Select <em>No</em> to disable personalization and send\n"
+" messages to the members in batches. Select <em>Yes</em> "
+"to\n"
+" personalize deliveries and allow additional substitution\n"
+" variables in message headers and footers (see below). In\n"
+" addition, by selecting <em>Full Personalization</em>, the\n"
+" <code>To</code> header of posted messages will be modified "
+"to\n"
+" include the member's address instead of the list's posting\n"
+" address.\n"
+"\n"
+" <p>When personalization is enabled, a few more expansion\n"
+" variables that can be included in the <a\n"
+" href=\"?VARHELP=nondigest/msg_header\">message header</a> "
+"and\n"
+" <a href=\"?VARHELP=nondigest/msg_footer\">message footer</"
+"a>.\n"
+"\n"
+" <p>These additional substitution variables will be "
+"available\n"
+" for your headers and footers, when this feature is "
+"enabled:\n"
+"\n"
+" <ul><li><b>user_address</b> - The address of the user,\n"
+" coerced to lower case.\n"
+" <li><b>user_delivered_to</b> - The case-preserved "
+"address\n"
+" that the user is subscribed with.\n"
+" <li><b>user_password</b> - The user's password.\n"
+" <li><b>user_name</b> - The user's full name.\n"
+" <li><b>user_optionsurl</b> - The url to the user's "
+"option\n"
+" page.\n"
+" </ul>\n"
+" "
+msgstr ""
+"ÀϹÝÀûÀ¸·Î Mailman Àº °³º° ¹è´Þ ¸Þ¼¼Áö¸¦ Mail ¼­¹ö¿¡ º¸³À´Ï´Ù. À̰ÍÀº "
+"Mailman °ú Mail ¼­¹ö »çÀÌÀÇ Æ®·¢ÇÈ ·®À» ÁÙÀ̱⠶§¹®¿¡ È¿À²ÀûÀÔ´Ï´Ù. <p>ÇÏÁö"
+"¸¸ ¸î¸î ¸ÞÀϸµ ¸®½ºÆ®´Â Á» ´õ °³º°È­µÈ °ÍÀÌ ÀÌ·Î¿ï ¼ö ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ °æ¿ì "
+"Mailman Àº °³º° ¹è´Þ ¸ñ·Ï»óÀÇ °¢ ȸ¿øµé¿¡°Ô »õ·Î¿î ¸Þ¼¼Áö¸¦ º¸³»ÁÝ´Ï´Ù. ÀÌ ±â"
+"´ÉÀ» ¼³Á¤ÇÔÀ¸·Î½á ´ç½ÅÀÇ »çÀÌÆ®ÀÇ Æ÷ÆÛ¸Õ¼­°¡ ¶³¾îÁú ¼ö ÀÖÀ½À¸·Î½á À̰ÍÀ» ¼±ÅÃ"
+"ÇÒ °ÍÀÎÁö, ¾ÈÇÒ °ÍÀÎÁö¿¡ ´ëÇÑ ÁÖÀDZíÀº °í·Á°¡ ÇÊ¿äÇÕ´Ï´Ù. ´ç½ÅÀº ¶ÇÇÑ ´ç½ÅÀÇ "
+"½Ã½ºÅÛÀÇ ·Îµå·®À» ÁÖÀDZí°Ô »ìÆìº¸½Ã±â ¹Ù¶ø´Ï´Ù. <p> °³º°È­µÈ ¸®½ºÆ®°¡ °¡´ÉÇÏ"
+"°Ô µÇ¾ú´Ù¸é µÎ°¡Áö °ÍÀÌ ÀÏ¾î ³¯¼ö ÀÖ½À´Ï´Ù. ù° ¿Â ±ÛÀÇ <code>To:</code> Çì"
+"´õ´Â °³¹ß »ç¿ëÀÚÀÇ ÁÖ¼Ò·Î ¼öÁ¤µÇ¾ú½À´Ï´Ù. ƯÁö ¿¹¸¦ µé¸é ¸Þ¼¼Áö´Â ¸®½ºÆ® ´ë"
+"½Å ÂüÁ¶ÀÚ·Î ¸Þ¼¼ÁöÀÇ ÁÖ¼Ò¿¡ ±â·Ï µË´Ï´Ù. <p> µÎ¹øÂ°´Â <a href=\"?"
+"VARHELP=nondigest/msg_header\">ÆíÁö Çìµå</a> ¿Í <a href=\"?VARHELP=nondigest/"
+"msg_footer\">ÆíÁö ²¿¸®¸»</a> ¿¡ Æ÷ÇԵǾî ÀÖÀ» ¼ö ÀÖ´Â º¯¼öµé ºÎºÐÀÔ´Ï´Ù. <p>"
+"Ãß°¡ÀûÀÎ °¡ÀÔ º¯¼ö°¡ ÀÌ ±â´ÉÀ» ¼³Á¤ÇßÀ» ¶§ Çìµå¿Í ²¿¸®¸»¿¡ ´õÇØÁú ¼ö ÀÖ½À´Ï"
+"´Ù.<ul><li><b>user_address</b> - »ç¿ëÀÚÀÇ ÁÖ¼Ò, ¼Ò¹®ÀÚ·Î µÇ¾î ÀÖÀ½"
+"<li><b>user_delivered_to</b> - »ç¿ëÀÚ°¡ °¡ÀÔÇÒ ¹Ì¸® ¿¹¾àµÈ ÁÖ¼Ò "
+"<li><b>user_password</b> - »ç¿ëÀÚÀÇ ºñ¹Ð¹øÈ£.<li><b>user_name</b> - »ç¿ëÀÚ ÀÌ"
+"¸§<li><b>user_optionsurl</b> - »ç¿ëÀÚ ¼³Á¤ ÆäÀÌÁö URL</ul>"
+
+#: Mailman/Gui/NonDigest.py:108
+msgid "Header added to mail sent to regular list members"
+msgstr "ȸ¿øµé¿¡°Ô º¸³¾ ¸ÞÀÏÀÇ ¾Õ¿¡ Ãß°¡ÇÒ ºÎºÐÀÔ´Ï´Ù."
+
+#: Mailman/Gui/NonDigest.py:109
+msgid ""
+"Text prepended to the top of every immediately-delivery\n"
+" message. "
+msgstr "ÀÌ ±ÛÀº Áï°¢ÀûÀ¸·Î ¹è´ÞµÇ´Â ¸ðµç ÆíÁöÀÇ °¡Àå À§¿¡ ºÙ°Ô µË´Ï´Ù."
+
+#: Mailman/Gui/NonDigest.py:114
+msgid "Footer added to mail sent to regular list members"
+msgstr "ȸ¿øµé¿¡°Ô º¸³¾ ¸ÞÀÏÀÇ ³¡¿¡ Ãß°¡ÇÒ ºÎºÐÀÔ´Ï´Ù."
+
+#: Mailman/Gui/NonDigest.py:115
+msgid ""
+"Text appended to the bottom of every immediately-delivery\n"
+" message. "
+msgstr "ÀÌ ±ÛÀº Áï°¢ÀûÀ¸·Î ¹è´ÞµÇ´Â ¸ðµç ÆíÁöÀÇ °¡Àå ¾Æ·¡¿¡ ºÙ°Ô µË´Ï´Ù."
+
+#: Mailman/Gui/Passwords.py:27
+msgid "Passwords"
+msgstr "ºñ¹Ð ¹øÈ£ º¯°æ"
+
+#: Mailman/Gui/Privacy.py:28
+msgid "Privacy options"
+msgstr "°³ÀÎ Á¤º¸ º¸È£ Á¤Ã¥"
+
+#: Mailman/Gui/Privacy.py:32
+msgid "Subscription&nbsp;rules"
+msgstr "°¡ÀÔ ÀýÂ÷"
+
+#: Mailman/Gui/Privacy.py:33
+msgid "Sender&nbsp;filters"
+msgstr "º¸³½ÀÌ °É·¯³»±â"
+
+#: Mailman/Gui/Privacy.py:34
+#, fuzzy
+msgid "Recipient&nbsp;filters"
+msgstr "º¸³½ÀÌ °É·¯³»±â"
+
+#: Mailman/Gui/Privacy.py:35
+msgid "Spam&nbsp;filters"
+msgstr "½ºÆÔ °É·¯³»±â"
+
+#: Mailman/Gui/Privacy.py:49 Mailman/Gui/Usenet.py:61
+msgid "None"
+msgstr "¾øÀ½"
+
+#: Mailman/Gui/Privacy.py:50 Mailman/Gui/Privacy.py:73
+msgid "Confirm"
+msgstr "È®ÀÎ"
+
+#: Mailman/Gui/Privacy.py:51 Mailman/Gui/Privacy.py:74
+msgid "Require approval"
+msgstr "°ü¸®ÀÚ ½ÂÀÎ"
+
+#: Mailman/Gui/Privacy.py:52 Mailman/Gui/Privacy.py:75
+msgid "Confirm and approve"
+msgstr "È®ÀÎ + °ü¸®ÀÚ ½ÂÀÎ"
+
+#: Mailman/Gui/Privacy.py:54 Mailman/Gui/Privacy.py:77
+msgid "What steps are required for subscription?<br>"
+msgstr "°¡ÀÔÇϱâ À§ÇÑ ÀýÂ÷µéÀº ¹«¾ùÀԴϱî?<br>"
+
+#: Mailman/Gui/Privacy.py:55
+msgid ""
+"None - no verification steps (<em>Not\n"
+" Recommended </em>)<br>\n"
+" Confirm (*) - email confirmation step required "
+"<br>\n"
+" Require approval - require list administrator\n"
+" Approval for subscriptions <br>\n"
+" Confirm and approve - both confirm and approve\n"
+" \n"
+" <p>(*) when someone requests a subscription,\n"
+" Mailman sends them a notice with a unique\n"
+" subscription request number that they must reply "
+"to\n"
+" in order to subscribe.<br>\n"
+"\n"
+" This prevents mischievous (or malicious) people\n"
+" from creating subscriptions for others without\n"
+" their consent."
+msgstr ""
+"¾øÀ½ - ÀÎÁõ ÀýÂ÷°¡ ÇÊ¿ä ¾øÀ½(<em> ÃßõÇÏÁö ¾Ê½À´Ï´Ù. </em>)È®ÀÎ (*) - E¸ÞÀÏ"
+"À» ÅëÇÑ È®ÀÎÀÌ ÇÊ¿äÇÕ´Ï´Ù.½ÂÀÎÀÌ ÇÊ¿ä - ¸ÞÀϸµ ¸®½ºÆ® °ü¸®ÀÚÀÇ °¡ÀÔ ½ÂÀÎÀÌ ÇÊ"
+"¿äÇÕ´Ï´Ù.È®ÀÎ+½ÂÀÎ - È®Àΰú ½ÂÀÎ µÑ´Ù ÇÊ¿äÇÕ´Ï´Ù.\n"
+"(*) ¾î¶²À̰¡ °¡ÀÔ ¿äûÀ» ÇÒ ¶§, Mailman Àº À¯ÀÏÇÑ ¿äû ¹øÈ£¸¦ Æ÷ÇÔÇÏ´Â °øÁö "
+"³»¿ëÀ» E¸ÞÀÏ·Î º¸³À´Ï´Ù.À̰ÍÀº »ç¿ëÀÚÀÇ Çã¶ô¾øÀÌ ´Ù¸¥»ç¶÷À» °¡ÀÔÀ» ½ÃÅ´À¸·Î"
+"½á ÀÎÇØ »ç¿ëÀÚ°¡ ¹ÞÀ» ¼ö ÀÖ´Â ¿µÇâÀ» ¸·°Ô ÇÕ´Ï´Ù."
+
+#: Mailman/Gui/Privacy.py:78
+msgid ""
+"Confirm (*) - email confirmation required <br>\n"
+" Require approval - require list administrator\n"
+" approval for subscriptions <br>\n"
+" Confirm and approve - both confirm and approve\n"
+" \n"
+" <p>(*) when someone requests a subscription,\n"
+" Mailman sends them a notice with a unique\n"
+" subscription request number that they must reply "
+"to\n"
+" in order to subscribe.<br> This prevents\n"
+" mischievous (or malicious) people from creating\n"
+" subscriptions for others without their consent."
+msgstr ""
+"È®ÀÎ (*) - E¸ÞÀÏÀ» ÅëÇÑ È®ÀÎÀÌ ÇÊ¿äÇÕ´Ï´Ù.½ÂÀÎÀÌ ÇÊ¿ä - ¸ÞÀϸµ ¸®½ºÆ® °ü¸®ÀÚ"
+"ÀÇ °¡ÀÔ ½ÂÀÎÀÌ ÇÊ¿äÇÕ´Ï´Ù.È®ÀÎ+½ÂÀÎ - È®Àΰú ½ÂÀÎ µÑ´Ù ÇÊ¿äÇÕ´Ï´Ù.\n"
+"(*) ¾î¶²À̰¡ °¡ÀÔ ¿äûÀ» ÇÒ ¶§, Mailman Àº À¯ÀÏÇÑ ¿äû ¹øÈ£¸¦ Æ÷ÇÔÇÏ´Â °øÁö "
+"³»¿ëÀ» E¸ÞÀÏ·Î º¸³À´Ï´Ù.À̰ÍÀº »ç¿ëÀÚÀÇ Çã¶ô¾øÀÌ ´Ù¸¥»ç¶÷À» °¡ÀÔÀ» ½ÃÅ´À¸·Î"
+"½á ÀÎÇØ »ç¿ëÀÚ°¡ ¹ÞÀ» ¼ö ÀÖ´Â ¿µÇâÀ» ¸·°Ô ÇÕ´Ï´Ù."
+
+#: Mailman/Gui/Privacy.py:94
+msgid ""
+"This section allows you to configure subscription and\n"
+" membership exposure policy. You can also control whether this\n"
+" list is public or not. See also the\n"
+" <a href=\"%(admin)s/archive\">Archival Options</a> section for\n"
+" separate archive-related privacy settings."
+msgstr ""
+"ȸ¿ø°ú ºñȸ¿øÀ» ±¸ºÐÇϰí, ½ºÆÐ¸Ó¸¦ ¸·´Â ¹æ¹ý°ú °°Àº Á¢±Ù Á¦¾î Á¤Ã¥À» ¼³Á¤ÇÏ"
+"´Â ºÎºÐÀÔ´Ï´Ù. ÀúÀå¼Ò °³ÀÎ Á¤º¸ º¸È£ Á¤Ã¥À» ¼³Á¤ÇϽǷÁ¸é (<a href=\"%(admin)"
+"s/archive\">ÀúÀå¼Ò ¼³Á¤</a>À» º¸½Ã±â ¹Ù¶ø´Ï´Ù.)"
+
+#: Mailman/Gui/Privacy.py:100
+msgid "Subscribing"
+msgstr "°¡ÀÔ °ü·Ã"
+
+#: Mailman/Gui/Privacy.py:102
+msgid ""
+"Advertise this list when people ask what lists are on this\n"
+" machine?"
+msgstr ""
+"ÀÌ ½Ã½ºÅÛ»ó¿¡¼­ ¿î¿µµÇ´Â ¸ÞÀϸµ ¸®½ºÆ®°¡ ¹«¾ùÀÎÁö ¾î¶² À̰¡ ¹¯´Â´Ù¸é ±×¿¡ ¸Â"
+"´Â ¼±ÀüÀ» ÇϽðڽÀ´Ï±î?"
+
+#: Mailman/Gui/Privacy.py:108
+msgid ""
+"Is the list moderator's approval required for unsubscription\n"
+" requests? (<em>No</em> is recommended)"
+msgstr ""
+"Å»Å𸦠Çϱâ À§Çؼ± ±Û°ü¸®ÀÚÀÇ ½ÂÀÎÀ» ¹Þ¾Æ¾ß Çմϱî? (<em>¾Æ´Ï¿ä</em> ¸¦ Ãßõ"
+"ÇÕ´Ï´Ù.)"
+
+#: Mailman/Gui/Privacy.py:111
+msgid ""
+"When members want to leave a list, they will make an\n"
+" unsubscription request, either via the web or via email.\n"
+" Normally it is best for you to allow open unsubscriptions so "
+"that\n"
+" users can easily remove themselves from mailing lists (they "
+"get\n"
+" really upset if they can't get off lists!).\n"
+"\n"
+" <p>For some lists though, you may want to impose moderator\n"
+" approval before an unsubscription request is processed. "
+"Examples\n"
+" of such lists include a corporate mailing list that all "
+"employees\n"
+" are required to be members of."
+msgstr ""
+"ȸ¿øÀÌ ÀÌ ¸®½ºÆ®¿¡¼­ Å»ÅðÇÒ ¶§ ±×µéÀº À¥ ȤÀº E¸ÞÀÏÀ» ÅëÇØ Å»Åð¿äûÀ» ÇÏ°Ô µË"
+"´Ï´Ù. º¸Åë »ç¿ëÀÚµéÀÌ ¸ÞÀϸµ ¸®½ºÆ®¿¡¼­ ±×µéÀ» ½±°Ô Áö¿ï¼ö ÀÖµµ·Ï Å»Å𸦠±×"
+"³É Çã¶ôÇÏ´Â°Ô ÃÖ°íÀÔ´Ï´Ù.(¸¸¾à Å»Å𸦠¸¾´ë·Î ¸øÇÏ°Ô ÇÏ¸é ±×µéÀº ÁøÂ¥ È­¸¦ ³¾ "
+"°Í ÀÔ´Ï´Ù!).<p>¸î¸î ¸®½ºÆ®ÀÇ °æ¿ì Å»Åð ¿äûÀ» ó¸®Çϱâ Àü¿¡ ±Û°ü¸®ÀÚÀÇ ½ÂÀÎ"
+"À» ¿øÇÒ ¼ö ÀÖ½À´Ï´Ù. Çùµ¿À» ¿ä±¸ÇÏ´Â ¸®½ºÆ®ÀÇ °æ¿ì´Â ¸ðµÎ °í¿ëÀÎÀÌ È¸¿øÀ¸·Î "
+"Àֱ⠶§¹®¿¡ ÀÌ·± °ÍÀ» Àû¿ëÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù."
+
+#: Mailman/Gui/Privacy.py:122
+msgid "Ban list"
+msgstr "Ãß¹æ ¸ñ·Ï"
+
+#: Mailman/Gui/Privacy.py:124
+msgid ""
+"List of addresses which are banned from membership in this\n"
+" mailing list."
+msgstr ""
+"ÀÌ ¸ÞÀϸµ ¸®½ºÆ®ÀÇ È¸¿øÀ¸·Î Àý´ë ¹Þ¾ÆµéÀÌÁö ¾ÊÀ» ÁÖ¼Ò ¸ñ·ÏÀ» ÀÔ·ÂÇϽʽÿÀ."
+
+#: Mailman/Gui/Privacy.py:127
+msgid ""
+"Addresses in this list are banned outright from subscribing\n"
+" to this mailing list, with no further moderation required. "
+"Add\n"
+" addresses one per line; start the line with a ^ character to\n"
+" designate a regular expression match."
+msgstr ""
+"´õÀÌ»ó ±Û°ü¸®µµ ÇÊ¿ä¾ø°í, ÀÌ ¸ÞÀϸµ ¸®½ºÆ®ÀÇ °¡ÀÔµµ ¸øÇÏ°Ô ¿µ¿øÈ÷ Ãß¹ßÇÒ »ç¶÷"
+"À» ³ª¿­Çϼ¼¿ä. ÁÙ(line)´ç ÇϳªÀÇ ÁÖ¼Ò¸¦ Ãß°¡ÇϽðí, ^ ¹®ÀÚ·Î ½ÃÀÛÇÏ´Â ÁÙÀº Á¤"
+"±Ô Ç¥Çö½ÄÀ¸·Î ÀνÄÇÕ´Ï´Ù."
+
+#: Mailman/Gui/Privacy.py:132
+msgid "Membership exposure"
+msgstr "ȸ¿ø º¸¿©Áֱ⠺κÐ"
+
+#: Mailman/Gui/Privacy.py:134
+msgid "Anyone"
+msgstr "´©±¸³ª"
+
+#: Mailman/Gui/Privacy.py:134
+msgid "List admin only"
+msgstr "¸®½ºÆ® °ü¸®ÀÚ¸¸"
+
+#: Mailman/Gui/Privacy.py:134
+msgid "List members"
+msgstr "¸®½ºÆ® ȸ¿ø"
+
+#: Mailman/Gui/Privacy.py:135
+msgid "Who can view subscription list?"
+msgstr "¾î¶² »ç¶÷µéÀÌ °¡ÀÔÀÚ ¸ñ·ÏÀ» º¼ ¼ö ÀÖ½À´Ï±î?"
+
+#: Mailman/Gui/Privacy.py:137
+msgid ""
+"When set, the list of subscribers is protected by member or\n"
+" admin password authentication."
+msgstr ""
+"¼³Á¤ÇßÀ»¶§ °¡ÀÔÀÚÀÇ ¸ñ·ÏÀº ȸ¿ø ȤÀº °ü¸®ÀÚ ºñ¹Ð¹øÈ£ ÀÎÁõÀ¸·Î º¸È£µË´Ï´Ù."
+
+#: Mailman/Gui/Privacy.py:141
+#, fuzzy
+msgid ""
+"Show member addresses so they're not directly recognizable\n"
+" as email addresses?"
+msgstr "ȸ¿øµéÀÇ E¸ÞÀÏ ÁÖ¼Ò¸¦ ½ºÆÐ¸Ó°¡ ¾Ç¿ë¸øÇÏ°Ô º¯Çü½ÃÄÑ º¸Àϱî¿ä?"
+
+#: Mailman/Gui/Privacy.py:143
+msgid ""
+"Setting this option causes member email addresses to be\n"
+" transformed when they are presented on list web pages (both in\n"
+" text and as links), so they're not trivially recognizable as\n"
+" email addresses. The intention is to prevent the addresses\n"
+" from being snarfed up by automated web scanners for use by\n"
+" spammers."
+msgstr ""
+"ÀÌ ¼³Á¤À» ÇÔÀ¸·Î½á ȸ¿øµéÀÇ E¸ÞÀÏ ÁÖ¼Ò°¡ À¥ ÆäÀÌÁö¿¡¼­ ³ªÅ¸³¯¶§ º¯ÇüµÇ¾î º¸ÀÌ"
+"°Ô µË´Ï´Ù. À̰ÍÀº ÅØ½ºÆ®µµ ¸µÅ©µµ ¸¶Âù°¡Áö ÀÔ´Ï´Ù. ±×·¡¼­ E¸ÞÀÏ ÁÖ¼Ò·Î ÀνĵÇ"
+"Áö ¾Ê½À´Ï´Ù. ÀÌ·¸°Ô ÇÏ´Â ÀÌÀ¯´Â ½ºÆÐ¸ÓµéÀÌ Áñ°Ü »ç¿ëÇÏ´Â E¸ÞÀÏ ¸ðÀ¸´Â ÇÁ·Î±×"
+"·¥À» ¸·±â À§Çؼ­ ÀÔ´Ï´Ù."
+
+#: Mailman/Gui/Privacy.py:153
+msgid ""
+"When a message is posted to the list, a series of\n"
+" moderation steps are take to decide whether the a moderator "
+"must\n"
+" first approve the message or not. This section contains the\n"
+" controls for moderation of both member and non-member postings.\n"
+"\n"
+" <p>Member postings are held for moderation if their\n"
+" <b>moderation flag</b> is turned on. You can control whether\n"
+" member postings are moderated by default or not.\n"
+"\n"
+" <p>Non-member postings can be automatically\n"
+" <a href=\"?VARHELP=privacy/sender/accept_these_nonmembers\"\n"
+" >accepted</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/hold_these_nonmembers\">held "
+"for\n"
+" moderation</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/reject_these_nonmembers\"\n"
+" >rejected</a> (bounced), or\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >discarded</a>,\n"
+" either individually or as a group. Any\n"
+" posting from a non-member who is not explicitly accepted,\n"
+" rejected, or discarded, will have their posting filtered by the\n"
+" <a href=\"?VARHELP=privacy/sender/generic_nonmember_action"
+"\">general\n"
+" non-member rules</a>.\n"
+"\n"
+" <p>In the text boxes below, add one address per line; start the\n"
+" line with a ^ character to designate a <a href=\n"
+" \"http://www.python.org/doc/current/lib/module-re.html\"\n"
+" >Python regular expression</a>. When entering backslashes, do "
+"so\n"
+" as if you were using Python raw strings (i.e. you generally "
+"just\n"
+" use a single backslash).\n"
+"\n"
+" <p>Note that non-regexp matches are always done first."
+msgstr ""
+"¸Þ¼¼Áö°¡ ¸ÞÀϸµ ¸®½ºÆ®·Î ¼ö½ÅµÇ¾úÀ» ¶§ ±Û°ü¸®ÀÚ°¡ ¸Þ¼¼Áö¸¦ ½ÂÀÎ ÇÒ °ÍÀÎÁö\n"
+"¾Æ´ÑÁö¸¦ °æÁ¤ÇÏ´Â ¿©·¯ °úÁ¤À» °¡Áö°í µÈ´Ù. ÀÌ ¼½¼ÇÀº ȸ¿ø°ú ºñȸ¿øÀ» À§ÇÑ\n"
+"±Û°ü¸® Á¦¾î ºÎºÐÀ» Æ÷ÇÔÇϰí ÀÖ½À´Ï´Ù.\n"
+"<p> <b>±Û°ü¸® ±âÈ£</b>°¡ ¼³Á¤µÇ¾î ÀÖ°¡¸é ±Û°ü¸®¸¦ À§ÇØ È¸¿øÀÇ ±ÛÀ» À¯Áö\n"
+"µÉ °ÍÀÌ´Ù. ȸ¿øÀÇ ±ÛµéÀÌ ±âº»ÀûÀ¸·Î ±Û°ü¸® µÉÁö ¾ÊµÉÁö¸¦ Á¦¾î ÇÒ ¼ö ÀÖ´Ù.\n"
+"<p> ºñȸ¿øÀÇ ±ÛÀº ÀÚµ¿ÀûÀ¸·Î °³ÀΠȤÀº ±×·ì¿¡ µû¶ó <a href=\"?"
+"VARHELP=privacy/sender/accept_these_nonmembers\">¹Þ¾ÆÁö°Å³ª</a>, <a href=\"?"
+"VARHELP=privacy/sender/hold_these_nonmembers\">±Û°ü¸®¸¦ À§ÇØ À¯ÁöµÇ°Å³ª</a>, "
+"<a href=\"?VARHELP=privacy/sender/reject_these_nonmembers\">°ÅÀýµÇ°Å³ª</a>, "
+"<a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\">¹ö·ÁÁú¼ö</a> ÀÖ"
+"½À´Ï´Ù.\n"
+"Àý´ë ¹Þ¾ÆµéÀÏ ¼ö ¾ø´Â ºñȸ¿øÀÇ ±ÛÀº <a href=\"?VARHELP=privacy/sender/"
+"generic_nonmember_action\">ÀϹÝÀûÀÎ ºñȸ¿ø ±ÔÄ¢</a> ¿¡ µû¶ó ±×µéÀÇ º¸³½ ±ÛÀº "
+"°ÅÀýµÇ°Å³ª, ȤÀº ¹ö·ÁÁý´Ï´Ù.\n"
+"\n"
+"<p> ¾Æ·¡ÀÇ ÅØ½ºÆ® ¹Ú½º¿¡¼­ ÁÙ(line)¸¶´Ù ÇϳªÀÇ ÁÖ¼Ò¸¦ ³ÖÀ» ¼ö ÀÖÀ¸¸ç ^ ¹®ÀÚ"
+"·Î ½ÃÀÛÇÏ´Â ÁÙÀº <a href=\"http://www.python.org/doc/current/lib/module-re."
+"html\">Python Á¤±Ô Ç¥Çö½Ä</a>À» ³ªÅ¸³À´Ï´Ù. ¹é½½·¡½¬¸¦ ³ÖÀ½À¸·Î½á Python ÀÇ "
+"raw ¹®ÀÚ¿­À» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.(¿¹¸¦ µé¾î ´ç½ÅÀº ÀϹÝÀûÀ¸·Î ÇϳªÀÇ ¹é½½·¡½¬"
+"¸¦ »ç¿ëÇÕ´Ï´Ù.)<p>ºñÁ¤±Ô½Ä ÆÐÅÏÀÌ Ç×»ó óÀ½¿¡ ¿Àµµ·Ï ÇϽʽÿÀ."
+
+#: Mailman/Gui/Privacy.py:186
+msgid "Member filters"
+msgstr "ȸ¿ø °É·¯³»±â"
+
+#: Mailman/Gui/Privacy.py:189
+msgid "By default, should new list member postings be moderated?"
+msgstr "±âº»ÀûÀ¸·Î »õ·Î¿î ¸®½ºÆ® ȸ¿øÀÇ ±ÛÀº ±Û°ü¸® µÇµµ·Ï ÇϰڽÀ´Ï±î?"
+
+#: Mailman/Gui/Privacy.py:191
+msgid ""
+"Each list member has a <em>moderation flag</em> which says\n"
+" whether messages from the list member can be posted directly "
+"to\n"
+" the list, or must first be approved by the list moderator. "
+"When\n"
+" the moderation flag is turned on, list member postings must be\n"
+" approved first. You, the list administrator can decide whether "
+"a\n"
+" specific individual's postings will be moderated or not.\n"
+"\n"
+" <p>When a new member is subscribed, their initial moderation "
+"flag\n"
+" takes its value from this option. Turn this option off to "
+"accept\n"
+" member postings by default. Turn this option on to, by "
+"default,\n"
+" moderate member postings first. You can always manually set "
+"an\n"
+" individual member's moderation bit by using the\n"
+" <a href=\"%(adminurl)s/members\">membership management\n"
+" screens</a>."
+msgstr ""
+"°¢ ¸®½ºÆ® ȸ¿øÀº ¸®½ºÆ®¿¡ Á÷Á¢ ±ÛÀ» º¸³¾Áö ¾Æ´ÒÁö, ±Û°ü¸®ÀÚÀÇ ½ÂÀÎÀÌ ¸ÕÀúÀÎ"
+"Áö ¾Æ´ÑÁö¸¦ °áÁ¤ÇÏ´Â <em>±Û°ü¸® ±âÈ£</em>¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. ±Û°ü¸® ±âÈ£°¡ ¼³"
+"Á¤µÇ¾î ÀÖ´Ù¸é ¸®½ºÆ® ȸ¿øÀÇ ±ÛÀº ¸ÕÀú ½ÂÀÎÀÌ ÀÖ¾î¾ß ÇÕ´Ï´Ù. ¿©·¯ºÐ, ¸®½ºÆ® °ü"
+"¸®Àڴ ƯÁ¤ °³ÀÎÀÇ ±ÛÀ» ±Û°ü¸® ÇÒ °ÍÀÎÁö ¾Æ´Ò Áö¸¦ °áÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.<p>»õ·Î"
+"¿î ȸ¿øÀÌ °¡ÀÔÇÏ¿´À»¶§ ±×µéÀÇ Ãʱ⠱۰ü¸® ±âÈ£´Â ÀÌ ¿É¼ÇÀÇ °ªÀ» °¡Áö°Ô µË´Ï"
+"´Ù. ÀÌ ¼³Á¤À» ÇÏÁö ¾ÊÀ¸¸é ±âº»ÀûÀ¸·Î ȸ¿øÀÇ ±ÛµéÀ» ¹Þ¾Æ µéÀÔ´Ï´Ù. ÀÌ ¿É¼ÇÀ» "
+"¼³Á¤ÇÏ°Ô µÇ¸é ±âº»ÀûÀ¸·Î ¸ÕÀú ±Û°ü¸® ÇÏ°Ô µË´Ï´Ù. ´ç½ÅÀº Ç×»ó ¼öµ¿À¸·Î <a "
+"href=\"%(adminurl)s/members\">ȸ¿ø °ü¸® È­¸é</a>¸¦ »ç¿ëÇÏ¿© °³ÀÎȸ¿ø °¢°¢ÀÇ "
+"±Û°ü¸® ±âÈ£¸¦ ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù."
+
+#: Mailman/Gui/Privacy.py:207 Mailman/Gui/Privacy.py:281
+msgid "Hold"
+msgstr "Àâ¾ÆµÎ±â"
+
+#: Mailman/Gui/Privacy.py:208
+msgid ""
+"Action to take when a moderated member posts to the\n"
+" list."
+msgstr "±Û°ü¸®µÇ´Â ȸ¿øÀÌ ¸®½ºÆ®¿¡ ±ÛÀ» º¸³ÂÀ»¶§ ÃëÇÏ´Â Çൿ."
+
+#: Mailman/Gui/Privacy.py:210
+msgid ""
+"<ul><li><b>Hold</b> -- this holds the message for approval\n"
+" by the list moderators.\n"
+"\n"
+" <p><li><b>Reject</b> -- this automatically rejects the message "
+"by\n"
+" sending a bounce notice to the post's author. The text of the\n"
+" bounce notice can be <a\n"
+" href=\"?VARHELP=privacy/sender/member_moderation_notice\"\n"
+" >configured by you</a>.\n"
+"\n"
+" <p><li><b>Discard</b> -- this simply discards the message, "
+"with\n"
+" no notice sent to the post's author.\n"
+" </ul>"
+msgstr ""
+"<ul><li><b>Àâ¾ÆµÎ±â</b> -- ±Û°ü¸®ÀÚÀÇ ½ÂÀÎÀ» À§ÇØ ÀÌ ¸Þ¼¼Áö¸¦ Àâ¾ÆµÐ´Ù."
+"<p><li><b>°ÅÀýÇϱâ</b> -- À̰ÍÀº ±ÛÀÇ ÀúÀÚ¿¡°Ô ¹Ù¿î½º °øÁö¸¦ º¸³¿À¸·Î½á ÀÚµ¿"
+"À¸·Î ¸Þ¼¼Áö¸¦ °ÅÀýÇÑ´Ù. ¹Ù¿î °øÁö °ü·Ã ±ÛÀº <a href=\"?VARHELP=privacy/"
+"sender/member_moderation_notice\">¿©·¯ºÐÀÌ ¼³Á¤</a>ÇÒ ¼ö ÀÖ½À´Ï´Ù.<p><li><b>"
+"¹ö¸®±â</b> -- À̰ÍÀº ±ÛÀÇ ÀúÀÚ¿¡°Ô ¹ö¸°´Ù´Â ÆíÁö¾øÀÌ ¸Þ¼¼Áö¸¦ ¹ö¸³´Ï´Ù.</ul>"
+
+#: Mailman/Gui/Privacy.py:224
+msgid ""
+"Text to include in any\n"
+" <a href=\"?VARHELP/privacy/sender/member_moderation_action\"\n"
+" >rejection notice</a> to\n"
+" be sent to moderated members who post to this list."
+msgstr ""
+"ÀÌ ¸®½ºÆ®¿¡ ±ÛÀ» º¸³»´Â ±Û°ü¸®µÇ´Â ȸ¿øµé¿¡°Ô º¸³»´Â ¾î¶² <a href=\"?VARHELP/"
+"privacy/sender/member_moderation_action\">°ÅÀý °øÁö</a>¿¡ Æ÷Ç﵃ ±ÛÀ» ÀÔ·ÂÇÏ"
+"¼¼¿ä."
+
+#: Mailman/Gui/Privacy.py:229
+msgid "Non-member filters"
+msgstr "ºñȸ¿ø °É·¯³»±â"
+
+#: Mailman/Gui/Privacy.py:232
+msgid ""
+"List of non-member addresses whose postings should be\n"
+" automatically accepted."
+msgstr "ºñȸ¿øÀÇ ÁÖ¼ÒÁß º¸³½ ±ÛÀ» ÀÚµ¿À¸·Î ¹Þ¾ÆµéÀÏ ¸ñ·ÏÀ» ³ª¿­Çϼ¼¿ä."
+
+#: Mailman/Gui/Privacy.py:235
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" accepted with no further moderation applied. Add member\n"
+" addresses one per line; start the line with a ^ character to\n"
+" designate a regular expression match."
+msgstr ""
+"ºñȸ¿øÀÇ ÁÖ¼ÒÁß º¸³½ ±ÛÀ» ÀÚµ¿À¸·Î ¹Þ¾ÆµéÀÏ ¸ñ·ÏÀÔ´Ï´Ù. ÁÙ(line)´ç ÇϳªÀÇ ÁÖ"
+"¼Ò¸¦ ³ÖÀ¸½Ã°í ^ ¹®ÀÚ·Î ½ÃÀÛÇÏ´Â ÁÙÀº Á¤±Ô Ç¥Çö½ÄÀ» ³ªÅ¸³À´Ï´Ù."
+
+#: Mailman/Gui/Privacy.py:241
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" immediately held for moderation."
+msgstr "ºñȸ¿øÀÇ ÁÖ¼ÒÁß º¸³½ ±ÛÀ» Áï°¢ ±Û°ü¸®·Î À¯ÁöÇÒ ¸ñ·ÏÀ» ³ª¿­Çϼ¼¿ä."
+
+#: Mailman/Gui/Privacy.py:244
+msgid ""
+"Postings from any of these non-members will be immediately\n"
+" and automatically held for moderation by the list moderators.\n"
+" The sender will receive a notification message which will "
+"allow\n"
+" them to cancel their held message. Add member addresses one "
+"per\n"
+" line; start the line with a ^ character to designate a regular\n"
+" expression match."
+msgstr ""
+"ºñȸ¿øÀÇ ÁÖ¼ÒÁß º¸³½ ±ÛÀ» ÀÚµ¿À¸·Î ¸®½ºÆ® °ü¸®ÀÚÀÇ ±Û°ü¸®·Î Àâ¾Æµé ¸ñ·ÏÀÔ´Ï"
+"´Ù. º¸³½ÀÌ´Â ±×µéÀÇ ¸Þ¼¼Áö¸¦ Ãë¼ÒÇÒ ¼ö ÀÖ´Ù´Â °øÁö ÆíÁö¸¦ ¹Þ°Ô µÉ °ÍÀÔ´Ï´Ù. "
+"ÁÙ(line)´ç ÇϳªÀÇ ÁÖ¼Ò¸¦ ³ÖÀ¸½Ã°í ^ ¹®ÀÚ·Î ½ÃÀÛÇÏ´Â ÁÙÀº Á¤±Ô Ç¥Çö½ÄÀ» ³ªÅ¸³À"
+"´Ï´Ù."
+
+#: Mailman/Gui/Privacy.py:252
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" automatically rejected."
+msgstr "ºñȸ¿øÀÇ ÁÖ¼ÒÁß º¸³½ ±ÛÀ» ÀÚµ¿À¸·Î °ÅÀýÇÒ ¸ñ·ÏÀ» ³ª¿­Çϼ¼¿ä."
+
+#: Mailman/Gui/Privacy.py:255
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" rejected. In other words, their messages will be bounced back "
+"to\n"
+" the sender with a notification of automatic rejection. This\n"
+" option is not appropriate for known spam senders; their "
+"messages\n"
+" should be\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >automatically discarded</a>.\n"
+"\n"
+" <p>Add member addresses one per line; start the line with a ^\n"
+" character to designate a regular expression match."
+msgstr ""
+"ºñȸ¿øÀÇ ÁÖ¼ÒÁß º¸³½ ±ÛÀ» ÀÚµ¿À¸·Î °ÅÀýÇÒ ¸ñ·ÏÀÔ´Ï´Ù. ´Ù¸¥ ¸»·Î ¸»Çؼ­ ±×µé"
+"ÀÇ ¸Þ¼¼Áö´Â ÀÚµ¿ °ÅÀý °øÁö¿Í ÇÔ²² º¸³½ÀÌ¿¡°Ô ¹Ù¿î½º µÉ °ÍÀÔ´Ï´Ù. ÀÌ ¼³Á¤Àº ½º"
+"ÆÔ ¸ÞÀÏÀ» º¸³»´Â °É·Î ¾Ë·ÁÁø º¸³½ÀÌ¿¡°Ô Àû´çÇÏÁö ¾Ê½À´Ï´Ù. ±×µéÀÇ ¸Þ¼¼Áö´Â "
+"<a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\">ÀÚµ¿ ¹ö¸²</a>¿¡ "
+"³Ö¾î Á®¾ß ÇÕ´Ï´Ù. <p>ÁÙ(line)´ç ÇϳªÀÇ ÁÖ¼Ò¸¦ ³ÖÀ¸½Ã°í ^ ¹®ÀÚ·Î ½ÃÀÛÇÏ´Â ÁÙ"
+"Àº Á¤±Ô Ç¥Çö½ÄÀ» ³ªÅ¸³À´Ï´Ù."
+
+#: Mailman/Gui/Privacy.py:267
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" automatically discarded."
+msgstr "ºñȸ¿øÀÇ ÁÖ¼ÒÁß º¸³½ ±ÛÀ» ÀÚµ¿À¸·Î ±ÛÀ» ¹ö¸± ¸ñ·ÏÀ» ³ª¿­Çϼ¼¿ä."
+
+#: Mailman/Gui/Privacy.py:270
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" discarded. That is, the message will be thrown away with no\n"
+" further processing or notification. The sender will not "
+"receive\n"
+" a notification or a bounce, however the list moderators can\n"
+" optionally <a href=\"?VARHELP=privacy/sender/"
+"forward_auto_discards\"\n"
+" >receive copies of auto-discarded messages.</a>.\n"
+"\n"
+" <p>Add member addresses one per line; start the line with a ^\n"
+" character to designate a regular expression match."
+msgstr ""
+"ºñȸ¿øÀÇ ÁÖ¼ÒÁß º¸³½ ±ÛÀ» ÀÚµ¿À¸·Î ¹ö¸± ¸ñ·ÏÀÔ´Ï´Ù. Áï ¿©±â ÀûÈù ¸ñ·ÏÀÇ »ç¶÷"
+"ÀÌ ±ÛÀ» º¸³»°Ô µÇ¸é ±× ±ÛÀº °øÁö¸¦ º¸³»ÁÖÁöµµ ¾Ê°í ¹ö·Á Áú °Í ÀÔ´Ï´Ù. º¸³½ÀÌ"
+"´Â ¹Ù¿î½º °øÁö¸¦ ¹ÞÁö ¸øÇÏÁö¸¸ ±Û °ü¸®ÀÚ´Â <a href=\"?VARHELP=privacy/"
+"sender/forward_auto_discards\">ÀÚµ¿ ¹ö·ÁÁø ¸Þ¼¼Áö º¹»çº» ¹Þ±â</a>¸¦ ¼±ÅûçÇ×"
+"À¸·Î ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. <p>ÁÙ(line)´ç ÇϳªÀÇ ÁÖ¼Ò¸¦ ³ÖÀ¸½Ã°í ^ ¹®ÀÚ·Î ½ÃÀÛÇÏ"
+"´Â ÁÙÀº Á¤±Ô Ç¥Çö½ÄÀ» ³ªÅ¸³À´Ï´Ù."
+
+#: Mailman/Gui/Privacy.py:282
+msgid ""
+"Action to take for postings from non-members for which no\n"
+" explicit action is defined."
+msgstr "󸮸¦ Á¤ÀÇÇÏÁö ¾ÊÀº ºñȸ¿øÀ¸·Î ºÎÅÍ ¿Â ±Û¿¡ ´ëÇÑ Çൿ ÁöħÀº?"
+
+#: Mailman/Gui/Privacy.py:285
+msgid ""
+"When a post from a non-member is received, the message's\n"
+" sender is matched against the list of explicitly\n"
+" <a href=\"?VARHELP=privacy/sender/accept_these_nonmembers\"\n"
+" >accepted</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/hold_these_nonmembers\">held</"
+"a>,\n"
+" <a href=\"?VARHELP=privacy/sender/reject_these_nonmembers\"\n"
+" >rejected</a> (bounced), and\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >discarded</a> addresses. If no match is found, then this "
+"action\n"
+" is taken."
+msgstr ""
+"ºñȸ¿øÀ¸·Î ºÎÅÍ ±ÛÀ» ¹Þ¾ÒÀ»¶§, ¸Þ¼¼ÁöÀÇ º¸³½ÀÌ´Â <a href=\"?"
+"VARHELP=privacy/sender/accept_these_nonmembers\"\n"
+" >¹Þ¾ÆµéÀ̱â</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/hold_these_nonmembers\">Àâ¾ÆµÎ"
+"±â</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/reject_these_nonmembers\"\n"
+" >°ÅÀýÇϱâ</a> (¹Ù¿î½ºµÊ), ±×¸®°í\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >¹ö¸®±â</a> ÁÖ¼Ò¿Í ´ëÁ¶ÇÏ¿© °Ë»çµË´Ï´Ù. ¸¸¾à ã´Â °ÍÀÌ ¹ß°ßµÇ"
+"Áö ¾ÊÀ¸¸é ÀÌ ÇൿÀÌ ÃëÇØ Áý´Ï´Ù."
+
+#: Mailman/Gui/Privacy.py:297
+msgid ""
+"Should messages from non-members, which are automatically\n"
+" discarded, be forwarded to the list moderator?"
+msgstr "ºñȸ¿øÀ¸·Î ¿Â ±ÛÀº ÀÚµ¿À¸·Î ¹ö¸®°í, ¸®½ºÆ® ±Û°ü¸®ÀÚ¿¡°Ô Àü´ÞÇÒ±î¿ä?"
+
+#: Mailman/Gui/Privacy.py:303
+msgid ""
+"This section allows you to configure various filters based on\n"
+" the recipient of the message."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:306
+#, fuzzy
+msgid "Recipient filters"
+msgstr "ȸ¿ø °É·¯³»±â"
+
+#: Mailman/Gui/Privacy.py:310
+msgid ""
+"Must posts have list named in destination (to, cc) field\n"
+" (or be among the acceptable alias names, specified below)?"
+msgstr ""
+"Æ÷½ºÆÃ µÈ ±ÛÀÇ ¸ñÀûÁö Ç׸ñ(to, cc)¿¡ ¸®½ºÆ®ÀÇ ÁÖ¼Ò°¡ ÀûÇôÁ® ÀÖ¾î¾ß Çմϱî? "
+"(ȤÀº ¹Ø¿¡¼­ ÀÔ·ÂÇÏ°Ô µÉ ƯÁ¤ º°Äª(alias)¸¸ Çã¶ôÇÏ°Ô ÇÒ°ÍÀԴϱî?)"
+
+#: Mailman/Gui/Privacy.py:313
+msgid ""
+"Many (in fact, most) spams do not explicitly name their\n"
+" myriad destinations in the explicit destination addresses - in\n"
+" fact often the To: field has a totally bogus address for\n"
+" obfuscation. The constraint applies only to the stuff in the\n"
+" address before the '@' sign, but still catches all such spams.\n"
+"\n"
+" <p>The cost is that the list will not accept unhindered any\n"
+" postings relayed from other addresses, unless\n"
+"\n"
+" <ol>\n"
+" <li>The relaying address has the same name, or\n"
+"\n"
+" <li>The relaying address name is included on the options "
+"that\n"
+" specifies acceptable aliases for the list.\n"
+"\n"
+" </ol>"
+msgstr ""
+" ¸¹Àº(´ëºÎºÐ, ´ë°³) ½ºÆÔ ¸ÞÀÏÀº ±×µéÀÇ ÁÖ¼Ò Ä­¿¡ ÁÖ¼Ò¸¦ ÀÔ·ÂÇÏÁö ¾Ê´Â °ÍÀÌ ´ë"
+"ºÎºÐÀ̸ç ÁÖ¼Ò°¡ ÀÖ´Ù°í ÇÏ´õ¶óµµ ÃßÀûÀ» ÇÇÇϱâ À§ÇØ À§ÀåµÈ À̸§À» ³Ö´Â °ÍÀÌ º¸"
+"ÅëÀÔ´Ï´Ù. '@' Ç¥Áö ¾Õ¿¡ ÀÖ´Â À̸§ºÎºÐÀ» öÀúÈ÷ °Ë»çÇÔÀ¸·Î½á ´ëºÎºÐÀÇ ½ºÆÔ ¸Þ"
+"ÀϵéÀ» ¾Ë ¼ö ÀÖ½À´Ï´Ù.\n"
+"<p>¸¸¾à\n"
+" <ol><li>1. Áß°è(relay) ÁÖ¼Ò°¡ °°Àº À̸§ À̰ųª ȤÀº <li>2. Áß°è(relay) "
+"ÁÖ¼Ò°¡ ¸®½ºÆ®»ó¿¡¼­ ¹Þ¾ÆµéÀÏ ¼ö Àִ ƯÁ¤ º°ÄªÀ» °¡Áö°í ÀÖÁö</ol>\n"
+"¾ÊÀ¸¸é ´Ù¸¥ ÁÖ¼Ò·Î ºÎÅÍ Áß°èµÇ´Â ¾î¶²ÇÑ ±Ûµµ ¹Þ¾Æ µéÀÌÁö ¾ÊÀ» °ÍÀÔ´Ï´Ù."
+
+#: Mailman/Gui/Privacy.py:331
+msgid ""
+"Alias names (regexps) which qualify as explicit to or cc\n"
+" destination names for this list."
+msgstr ""
+"ÀÌ ¸ÞÀϸµ ¸®½ºÆ®ÀÇ ¸ñÀû Ç׸ñ(to, cc)ÀÇ º°Äª(alias) À̸§µéÀ» ³Ö¾î ÁÖ¼¼¿ä. ¿©"
+"±â ÀÔ·ÂµÈ ÁÖ¼Ò´Â ÆíÁöÀÇ ¸ñÀûÁö¿¡ ÀûÇô À־ µÇ´Â°ÍÀ» °¡¸£Åµ´Ï´Ù."
+
+#: Mailman/Gui/Privacy.py:334
+msgid ""
+"Alternate addresses that are acceptable when\n"
+" `require_explicit_destination' is enabled. This option takes "
+"a\n"
+" list of regular expressions, one per line, which is matched\n"
+" against every recipient address in the message. The matching "
+"is\n"
+" performed with Python's re.match() function, meaning they are\n"
+" anchored to the start of the string.\n"
+" \n"
+" <p>For backwards compatibility with Mailman 1.1, if the regexp\n"
+" does not contain an `@', then the pattern is matched against "
+"just\n"
+" the local part of the recipient address. If that match fails, "
+"or\n"
+" if the pattern does contain an `@', then the pattern is "
+"matched\n"
+" against the entire recipient address.\n"
+" \n"
+" <p>Matching against the local part is deprecated; in a future\n"
+" release, the pattern will always be matched against the entire\n"
+" recipient address."
+msgstr ""
+"`require_explicit_destination' ÀÌ °¡´ÉÇϵµ·Ï ¼³Á¤µÇ¾î ÀÖ´Ù¸é ¿©·¯ ÁÖ¼Ò¸¦ Á»"
+"´õ À¯¿¬ÇÏ°Ô ¹Þ¾Æ µéÀÏ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¿É¼ÇÀº Á¤±Ô Ç¥Çö½ÄÀ» »ç¿ëÇϸç, °¢ ÁÙ"
+"(line)¸¶´Ù Çϳª¸¦ ó¸®ÇÕ´Ï´Ù. ±×¸®°í ¸Þ¼¼Áö ³»ÀÇ ¸ðµç ÂüÁ¶ÀÚ ÁÖ¼Ò¸¦ ºñ±³ÇÏ°Ô "
+"µË´Ï´Ù. ÀÌ·¯ÇÑ ºñ±³´Â Python ÀÇ re.match() ÇÔ¼ö¸¦ ÅëÇØ¼­ ½ÇÇàÇÏ°Ô µÇ´Âµ¥ À̰Í"
+"Àº ¹®ÀÚ¿­ÀÇ ½ÃÀÛÁ¡À» ¾Ë¾Æ¾ß ÇÑ´Ù´Â »ç½ÇÀÔ´Ï´Ù.<p>Mailman 1.1 ÀÌÀü ¹öÀü°úÀÇ È£"
+"ȯ¼ºÀ» À§ÇØ ¸¸¾à Á¤±Ô Ç¥Çö½ÄÀÌ `@'¸¦ Æ÷ÇÔÇϰí ÀÖÁö ¾Ê´Ù¸é ÆÐÅÏÀº ´ÜÁö ÂüÁ¶ÀÚ"
+"ÀÇ ÁÖ¼Ò ºÎºÐ Áß Áö¿ª ºÎºÐ¸¸ ºñ±³ÇÒ °ÍÀÔ´Ï´Ù. ¸¸¾à ºñ±³°¡ ½ÇÆÐÇϰųª ÆÐÅÏÀÌ "
+"`@'¸¦ Æ÷ÇÔÇÏÁö ¾Ê´Â´Ù¸é ÆÐÅÏÀº Àüü ÂüÁ¶ÀÚ ÁÖ¼Ò¿Í ºñ±³ÇÒ °ÍÀÔ´Ï´Ù. <p>Áö¿ª ºÎ"
+"ºÐ¸¸ ºñ±³ÇÏ´Â °ÍÀº ¹Ý´ëµÇ´Â ¿©·ÐÀÌ Àֱ⿡, ³ªÁß¿¡ ¹ßÇ¥µÉ ¹öÀü¿¡¼­´Â ÆÐÅÏ ºñ"
+"±³ ºÎºÐÀº Ç×»ó Àüü ÂüÁ¶ÀÚ ÁÖ¼Ò¸¦ °Ë»çÇϵµ·Ï ÇÒ »ý°¢ÀÔ´Ï´Ù."
+
+#: Mailman/Gui/Privacy.py:352
+msgid "Ceiling on acceptable number of recipients for a posting."
+msgstr ""
+"Æ÷½ºÆÃ ±ÛÀÇ ÂüÁ¶ÀÚÀÇ ÃÖ´ë Àοø ¼ö¸¦ Á¤ÇϽʽÿÀ. ¸¸¾à ÀÌ ¼öº¸´Ù Å©¸é½ºÆÔ ¸ÞÀÏ"
+"·Î °£Áֵ˴ϴÙ."
+
+#: Mailman/Gui/Privacy.py:354
+msgid ""
+"If a posting has this number, or more, of recipients, it is\n"
+" held for admin approval. Use 0 for no ceiling."
+msgstr ""
+"¸¸¾à ¹è´ÞµÇ¾î ¿Â ±Û¿¡¼­ ÂüÁ¶ÀÚ°¡ ÀÌ ¼ýÀÚº¸´Ù Å©´Ù¸é ÀÌ ±ÛÀº °ü¸®ÀÚÀÇ ½ÂÀÎÀ» "
+"´ë±âÇϵµ·Ï ÇÕ´Ï´Ù. ¸¸¾à À̰ÍÀ» »ý°¢ÇÏÁö ¾Ê´Â´Ù¸é 0 À¸·Î ¼³Á¤ÇϽʽÿÀ."
+
+#: Mailman/Gui/Privacy.py:359
+msgid ""
+"This section allows you to configure various anti-spam\n"
+" filters posting filters, which can help reduce the amount of "
+"spam\n"
+" your list members end up receiving.\n"
+" "
+msgstr ""
+"ÀÌ ºÎºÐÀº ¿©·¯ºÐ¿¡°Ô ½ºÆÔ ¸ÞÀÏÀ» ¹æÁöÇÏ´Â ¿©·¯ ¼³Á¤ºÎºÐÀ» °¡Áö°í ÀÖ½À´Ï´Ù. Àû"
+"ÀýÈ÷ »ç¿ëÇÏ½Ã¸é ¿©·¯ºÐÀÇ ¸ÞÀϸµ ¸®½ºÆ® ȸ¿ø¿¡°Ô ½ºÆÔ ¸ÞÀÏÀÌ °¡´Â °ÍÀ» ¸·´Âµ¥ "
+"µµ¿òÀ» ÁÙ °ÍÀÔ´Ï´Ù."
+
+#: Mailman/Gui/Privacy.py:364
+msgid "Anti-Spam filters"
+msgstr "½ºÆÔ ¸ÞÀÏÀº ¹°·¯°¡¶ó!"
+
+#: Mailman/Gui/Privacy.py:367
+msgid "Hold posts with header value matching a specified regexp."
+msgstr "ƯÁ¤ Á¤±ÔÇ¥Çö½Ä¿¡ ¸Â´Â Çìµå¸¦ °¡Áø ¸ÞÀÏ Àâ¾ÆµÓ´Ï´Ù."
+
+#: Mailman/Gui/Privacy.py:368
+#, fuzzy
+msgid ""
+"Use this option to prohibit posts according to specific\n"
+" header values. The target value is a regular-expression for\n"
+" matching against the specified header. The match is done\n"
+" disregarding letter case. Lines beginning with '#' are "
+"ignored\n"
+" as comments.\n"
+"\n"
+" <p>For example:<pre>to: .*@public.com </pre> says to hold all\n"
+" postings with a <em>To:</em> mail header containing '@public."
+"com'\n"
+" anywhere among the addresses.\n"
+"\n"
+" <p>Note that leading whitespace is trimmed from the regexp. "
+"This\n"
+" can be circumvented in a number of ways, e.g. by escaping or\n"
+" bracketing it."
+msgstr ""
+"Çì´õ¿¡ ƯÁ¤ ³»¿ëÀ» Æ÷ÇÔÇϰí ÀÖ´Â ±ÛÀÏ °æ¿ì ¸ÞÀϸµ ¸®½ºÆ® ȸ¿øµé¿¡°Ô ±ÛÀÌ º¸³»"
+"Áö´Â °ÍÀ» ±ÝÇϴµ¥, ÀÌ ¿É¼ÇÀ» »ç¿ëÇϽʽÿÀ. °ªÀº ƯÁ¤ Çì´õ ¸¦ °Ë»çÇÒ Á¤±Ô Ç¥"
+"Çö½ÄÀ¸·Î ÀÔ·ÂÇϽʽÿÀ. ±ÛÀÚÀÇ ´ë¼Ò¹®ÀÚ °ü·Ã ¾øÀÌ ºñ±³°¡ ÀÌ·ç¾î Áý´Ï´Ù. '#' "
+"·Î ½ÃÀÛÇÏ´Â ÁÙÀº ÁÖ¼®À¸·Î ÇØ¼®µË´Ï´Ù.\n"
+"<p>¿¹¸¦ µé¾î :<pre>\n"
+"to: .*@public.com \n"
+"</pre>´Â <em>To:</em> ¸ÞÀÏ Çì´õ¿¡ '@public.com' ¸¦ Æ÷ÇÔÇϰí ÀÖ´Â ¸ðµç ±ÛÀ» ´ë"
+"±â½Ã۵µ·Ï ÇÕ´Ï´Ù.\n"
+"<p>¾Õ ºÎºÐ¿¡ ÀÖ´Â °ø¹é ¹®ÀÚ´Â Á¤±Ô Ç¥Çö½Ä¿¡¼­ ¾ø¾î Áö´Â »ç½ÇÀ» ¸í½ÉÇϽʽÿÀ. "
+"À̰ÍÀº ¿©·¯ ¹æ¹ýÀ¸·Î µÑ·¯ ½Ò ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¸é Escape ³ª Bracket À» »ç¿ë"
+"ÇØ¼­ ¸»ÀÔ´Ï´Ù.\n"
+"<p>¶ÇÇÑ °ü°èÀÖ´Â ¸ÞÄ¿´ÏÁòÀ» »ç¿ëÇÏ´Â <em>forbidden_posters</em> ¼³Á¤ ¶ÇÇÑ Âü"
+"°í ÇϽñ⠹ٶø´Ï´Ù."
+
+#: Mailman/Gui/Topics.py:28
+msgid "Topics"
+msgstr "ÁÖÁ¦"
+
+#: Mailman/Gui/Topics.py:36
+msgid "List topic keywords"
+msgstr "ÁÖÁ¦ Ű¿öµå¸¦ ¼³Á¤ÇÕ´Ï´Ù."
+
+#: Mailman/Gui/Topics.py:38
+msgid "Disabled"
+msgstr "ºÒ°¡´É"
+
+#: Mailman/Gui/Topics.py:38
+msgid "Enabled"
+msgstr "°¡´É"
+
+#: Mailman/Gui/Topics.py:39
+msgid "Should the topic filter be enabled or disabled?"
+msgstr "ÁÖÁ¦ °É·¯³»±â¸¦ °¡´ÉÇÏ°Ô ÇÒ±î¿ä? ºÒ°¡´ÉÇÏ°Ô ÇÒ±î¿ä?"
+
+#: Mailman/Gui/Topics.py:41
+msgid ""
+"The topic filter categorizes each incoming email message\n"
+" according to <a\n"
+" href=\"http://www.python.org/doc/current/lib/module-re.html"
+"\">regular\n"
+" expression filters</a> you specify below. If the message's\n"
+" <code>Subject:</code> or <code>Keywords:</code> header contains "
+"a\n"
+" match against a topic filter, the message is logically placed\n"
+" into a topic <em>bucket</em>. Each user can then choose to "
+"only\n"
+" receive messages from the mailing list for a particular topic\n"
+" bucket (or buckets). Any message not categorized in a topic\n"
+" bucket registered with the user is not delivered to the list.\n"
+"\n"
+" <p>Note that this feature only works with regular delivery, "
+"not\n"
+" digest delivery.\n"
+"\n"
+" <p>The body of the message can also be optionally scanned for\n"
+" <code>Subject:</code> and <code>Keywords:</code> headers, as\n"
+" specified by the <a\n"
+" href=\"?VARHELP=topics/topics_bodylines_limit"
+"\">topics_bodylines_limit</a>\n"
+" configuration variable."
+msgstr ""
+"ÁÖÁ¦ °É·¯³»±â´Â ´ç½ÅÀÌ ¾Æ·¡¿¡¼­ Á¤ÇÑ href=\"http://www.python.org/doc/"
+"current/lib/module-re.html\">Á¤±Ô Ç¥Çö½Ä - °É·¯³»±â</a>¿¡ µû¶ó µé¾î¿À´Â E¸Þ"
+"ÀÏ ¸Þ¼¼¸¦ ºÐ·ùÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸¸¾à ¸Þ¼¼ÁöÀÇ Çì´õ <code>Á¦¸ñ:</code> ȤÀº "
+"<code>Ű¿öµå:</code>°¡ °É·¯³»±â ³»¿ë°ú ¸Â°Ô µÇ¸é ¸Þ¼¼Áö´Â ³í¸®ÀûÀ¸·Î ÁÖÁ¦ "
+"<em>¼ÒÄí¸®(¿ªÀÚ ÁÖ: ¹Ù±¸´Ï ;-p)</em>¿¡ À§Ä¡ÇÏ°Ô µË´Ï´Ù. °¢ »ç¿ëÀÚ´Â ¸ÞÀϸµ ¸®"
+"½ºÆ®·Î ºÎÅÍ ¼±ÅÃÇÑ Æ¯Á¤ ÁÖÁ¦ ¼ÒÄí¸®(ȤÀº ¼ÒÄí¸®µé) °ü·Ã ºÎºÐ¸¸ ¹ÞÀ» ¼ö ÀÖ½À´Ï"
+"´Ù. »ç¿ëÀÚ°¡ µî·ÏÇÑ ÁÖÁ¦ ¼ÒÄí¸®¿¡ ºÐ·ùµÇÁö ¾Ê´Â ¸Þ¼¼ÁöÀÇ °æ¿ì ¸®½ºÆ®·Î ¹è´ÞµÇ"
+"Áö ¾Ê½À´Ï´Ù.<p>ÀÌ ±â´ÉÀº °³º°¹è´Þ¿¡¸¸ ÀÛµ¿Çϸç, ¹­À½ ¹è´Þ¿¡¼­´Â ÀÛµ¿ÇÏÁö ¾Ê½À"
+"´Ï´Ù.<p>¸Þ¼¼ÁöÀÇ º»¹®Àº ¶ÇÇÑ <a href=\"?VARHELP=topics/topics_bodylines_limit"
+"\">topics_bodylines_limit</a> ¼³Á¤ º¯¼ö·Î <code>Á¦¸ñ:</code> ±×¸®°í <code>Ű"
+"¿öµå:</code> Çì´õ¸¦ Æ÷ÇÔÇÏ¿© °Ë»öÇÒ ¼ö ÀÖ½À´Ï´Ù."
+
+#: Mailman/Gui/Topics.py:62
+msgid "How many body lines should the topic matcher scan?"
+msgstr "ÁÖÁ¦ ÆÇº° °Ë»ç´Â ¾ó¸¶³ª ¸¹Àº ÆíÁö º»¹® ÁÙÀ» °Ë»çÇÒ±î¿ä?"
+
+#: Mailman/Gui/Topics.py:64
+msgid ""
+"The topic matcher will scan this many lines of the message\n"
+" body looking for topic keyword matches. Body scanning stops "
+"when\n"
+" either this many lines have been looked at, or a non-header-"
+"like\n"
+" body line is encountered. By setting this value to zero, no "
+"body\n"
+" lines will be scanned (i.e. only the <code>Keywords:</code> "
+"and\n"
+" <code>Subject:</code> headers will be scanned). By setting "
+"this\n"
+" value to a negative number, then all body lines will be "
+"scanned\n"
+" until a non-header-like line is encountered.\n"
+" "
+msgstr ""
+"ÁÖÁ¦ ¼±º°±â´Â ÁÖÁ¦ Ű¿öµå¿Í ¸Â´Â °ÍÀ» ã±â À§ÇØ ¸Þ¼¼ÁöÀÇ º»¹®ÀÇ ¸¹Àº ÁÙµéÀ» "
+"°Ë»çÇÏ°Ô µË´Ï´Ù. º»¹® °Ë»ç´Â ¿©±â¿¡¼­ Á¤ÇÑ °ª±îÁö ã°Ô µÇ°Ô³ª, ȤÀº º»¹®ÀÌ ¾Æ"
+"´Ñ °Í °°Àº ÁÙÀ» ¸¸³ª°Ô µÇ¸é ¸ØÃß°Ô µË´Ï´Ù. ÀÌ °ªÀ» 0 À¸·Î ¼³Á¤ÇÔÀ¸·Î½á º»¹®"
+"À» °Ë»öÇÏÁö ¾Ê°Ô ÇÕ´Ï´Ù. (¿¹¸¦ µé¸é ´çÁö <code>Ű¿öµå:</code> ±×¸®°í <code>Á¦"
+"¸ñ:</code> ¸¸ °Ë»çÇÕ´Ï´Ù.) ÀÌ °ªÀ» À½¼ö·Î ¼³Á¤ÇÔÀ¸·Î½á ¸ðµç º»¹® ÁÙÀ» °Ë»çÇÏ"
+"°Ô µË´Ï´Ù."
+
+#: Mailman/Gui/Topics.py:75
+msgid "Topic keywords, one per line, to match against each message."
+msgstr "°¢ ÆíÁö¿Í ºñ±³ÇÒ ÁÖÁ¦ Ű¿öµå¸¦ ÁÙ(line) ´ç ÀÔ·ÂÇϼ¼¿ä."
+
+#: Mailman/Gui/Topics.py:77
+msgid ""
+"Each topic keyword is actually a regular expression, which is\n"
+" matched against certain parts of a mail message, specifically "
+"the\n"
+" <code>Keywords:</code> and <code>Subject:</code> message "
+"headers.\n"
+" Note that the first few lines of the body of the message can "
+"also\n"
+" contain a <code>Keywords:</code> and <code>Subject:</code>\n"
+" \"header\" on which matching is also performed."
+msgstr ""
+"°¢ ÁÖÁ¦ Ű¿öµå´Â ½ÇÁ¦ÀûÀ¸·Î Á¤±Ô Ç¥Çö½Ä ÀÔ´Ï´Ù. À̰ÍÀº ¸ÞÀÏ ¸Þ¼¼ÁöÀÇ Æ¯Á¤ ºÎ"
+"ºÐÀ» °Ë»çÇÏ°Ô µÇ´Âµ¥, <code>Ű¿öµå:</code> ±×¸®°í <code>Á¦¸ñ:</code> ¸Þ¼¼Áö "
+"Çì´õ¸¦ º¸Åë °Ë»çÇÕ´Ï´Ù. ¶ÇÇÑ ¸Þ¼¼ÁöÀÇ º»¹®ÀÇ ¸î ÁÙ À» Ãß°¡·Î °Ë»çÇÒ ¼ö ÀÖÀ½"
+"À» ¾Ë°í °è½Ã±â ¹Ù¶ø´Ï´Ù."
+
+#: Mailman/Gui/Topics.py:116
+msgid ""
+"Topic specifications require both a name and\n"
+" a pattern. Incomplete topics will be ignored."
+msgstr ""
+
+#: Mailman/Gui/Topics.py:124
+msgid ""
+"The topic pattern `%(pattern)s' is not a\n"
+" legal regular expression. It will be discarded."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:25
+msgid "Mail&lt;-&gt;News&nbsp;gateways"
+msgstr "¸ÞÀÏ&lt;-&gt;´º½º ¿¬µ¿ ¼³Á¤"
+
+#: Mailman/Gui/Usenet.py:35
+msgid "Mail-to-News and News-to-Mail gateway services."
+msgstr "¸ÞÀÏ¿¡¼­ ´º½º±×·ìÀ¸·Î ´º½º±×·ì¿¡¼­ ¸ÞÀÏ·ÎÀÇ Àüȯ ¼­ºñ½º."
+
+#: Mailman/Gui/Usenet.py:37
+msgid "News server settings"
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:40
+msgid ""
+"The Internet address of the machine your News server is\n"
+" running on."
+msgstr "´ç½ÅÀÇ ´º½º ¼­¹öÀÇ ¾ÆÀÌÇǸ¦ ±âÀÔÇϼ¼¿ä!"
+
+#: Mailman/Gui/Usenet.py:42
+msgid ""
+"The News server is not part of Mailman proper. You have to\n"
+" already have access to a NNTP server, and that NNTP server has "
+"to\n"
+" recognize the machine this mailing list runs on as a machine\n"
+" capable of reading and posting news."
+msgstr ""
+"´º½º ¼­¹ö´Â Mailman ÀÇ ºÎºÐÀÌ ¾Æ´Õ´Ï´Ù. ¿©·¯ºÐÀº NNTP ¼­¹ö¿¡ Á¢±ÙÇÒ ¼ö ÀÖ¾î"
+"¾ß Çϸé NNTP ¼­¹ö´Â ÀÌ ¸ÞÀϸµ ¸®½ºÆ®°¡ ±ÛÀ» ÀÐ°í ¾µ¼ö ÀÖµµ·Ï µÇ¾î ÀÖ¾î¾ß ÇÕ´Ï"
+"´Ù."
+
+#: Mailman/Gui/Usenet.py:48
+msgid "The name of the Usenet group to gateway to and/or from."
+msgstr "¿¬µ¿ÇÏ°Ô µÉ ´º½º ±×·ìÀÇ À̸§"
+
+#: Mailman/Gui/Usenet.py:51
+msgid ""
+"Should new posts to the mailing list be sent to the\n"
+" newsgroup?"
+msgstr "¸ÞÀϸµ ¸®½ºÆ®¿¡ »õ·Î ¿Ã·ÁÁø °Ô½Ã¹°À» ´º½º ±×·ì¿¡ °³Á¦µÇµµ·Ï ÇϰڴÂÁö?"
+
+#: Mailman/Gui/Usenet.py:55
+msgid ""
+"Should new posts to the newsgroup be sent to the mailing\n"
+" list?"
+msgstr "´º½º ±×·ì¿¡ ¿Ã·ÁÁø »õ·Î¿î °³½Ã¹°À» ¸ÞÀϸµ ¸®½ºÆ®·Î ¹ß¼ÛÇÒ °ÍÀÎÁö?"
+
+#: Mailman/Gui/Usenet.py:58
+#, fuzzy
+msgid "Forwarding options"
+msgstr "ÀúÀå¼Ò ¼³Á¤"
+
+#: Mailman/Gui/Usenet.py:61
+#, fuzzy
+msgid "Moderated"
+msgstr "µî·Ï°ü¸®ÀÚ"
+
+#: Mailman/Gui/Usenet.py:61
+msgid "Open list, moderated group"
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:64
+msgid "The moderation policy of the newsgroup."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:66
+msgid ""
+"This setting determines the moderation policy of the\n"
+" newsgroup and its interaction with the moderation policy of "
+"the\n"
+" mailing list. This only applies to the newsgroup that you are\n"
+" gatewaying <em>to</em>, so if you are only gatewaying from\n"
+" Usenet, or the newsgroup you are gatewaying to is not "
+"moderated,\n"
+" set this option to <em>None</em>.\n"
+"\n"
+" <p>If the newsgroup is moderated, you can set this mailing "
+"list\n"
+" up to be the moderation address for the newsgroup. By "
+"selecting\n"
+" <em>Moderated</em>, an additional posting hold will be placed "
+"in\n"
+" the approval process. All messages posted to the mailing list\n"
+" will have to be approved before being sent on to the "
+"newsgroup,\n"
+" or to the mailing list membership.\n"
+"\n"
+" <p><em>Note that if the message has an <tt>Approved</tt> "
+"header\n"
+" with the list's administrative password in it, this hold test\n"
+" will be bypassed, allowing privileged posters to send messages\n"
+" directly to the list and the newsgroup.</em>\n"
+"\n"
+" <p>Finally, if the newsgroup is moderated, but you want to "
+"have\n"
+" an open posting policy anyway, you should select <em>Open "
+"list,\n"
+" moderated group</em>. The effect of this is to use the normal\n"
+" Mailman moderation facilities, but to add an <tt>Approved</tt>\n"
+" header to all messages that are gatewayed to Usenet."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:92
+msgid "Prefix <tt>Subject:</tt> headers on postings gated to news?"
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:93
+msgid ""
+"Mailman prefixes <tt>Subject:</tt> headers with\n"
+" <a href=\"?VARHELP=general/subject_prefix\">text you can\n"
+" customize</a> and normally, this prefix shows up in messages\n"
+" gatewayed to Usenet. You can set this option to <em>No</em> "
+"to\n"
+" disable the prefix on gated messages. Of course, if you turn "
+"off\n"
+" normal <tt>Subject:</tt> prefixes, they won't be prefixed for\n"
+" gated messages either."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:101
+#, fuzzy
+msgid "Mass catch up"
+msgstr "´ë±Ô¸ð <em>µû¶óÀâ±â</em>°¡ ¿Ï·áµÇ¾ú½À´Ï´Ù."
+
+#: Mailman/Gui/Usenet.py:104
+msgid "Should Mailman perform a <em>catchup</em> on the newsgroup?"
+msgstr "Mailman ÀÇ ´º½º±×·ì <em>µû¶óÀâ±â</em> ±â´ÉÀ» ½ÇÇàÇϽðڽÀ´Ï±î?"
+
+#: Mailman/Gui/Usenet.py:105
+msgid ""
+"When you tell Mailman to perform a catchup on the newsgroup,\n"
+" this means that you want to start gating messages to the "
+"mailing\n"
+" list with the next new message found. All earlier messages on\n"
+" the newsgroup will be ignored. This is as if you were reading\n"
+" the newsgroup yourself, and you marked all current messages as\n"
+" <em>read</em>. By catching up, your mailing list members will\n"
+" not see any of the earlier messages."
+msgstr ""
+"¿©·¯ºÐÀÌ Mailman ÀÇ ´º½º±×·ì µû¶óÀâ±â ±â´ÉÀ» ½ÇÇàÇÑ´Ù°í ÇßÀ» ¶§, ÀÌ Àǹ̴ »õ"
+"·Î¿î ¸Þ¼¼Áö°¡ ¹ß°ßµÈ ´ÙÀ½ºÎÅÍ ¸Þ¼¼Áö¸¦ °¡Á®¿Â´Ù´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù. Áï, ´º½º±×"
+"·ì»óÀÇ ÀÌÀü ¸Þ¼¼ÁöµéÀº ¸ðµÎ ¹«½ÃµÈ´Ù´Â ¶æÀÔ´Ï´Ù. ¸¸¾à È¥ÀÚ¸¸À» À§ÇØ ´º½º±×·ì"
+"À» ±¸µ¶ÇÔÀ¸·Î½á ¿©·¯ºÐÀº ¸ðµç ÇöÀç ¸Þ¼¼Áö µéÀ» <em>ÀÐÀº °Í</em>À¸·Î ÃÄÁý´Ï"
+"´Ù. µû¶óÀâ±â ±â´ÉÀ» ½ÇÇàÇÔÀ¸·Î½á ¿©·¯ºÐÀÇ ¸ÞÀϸµ ¸®½ºÆ® ȸ¿øµéÀº ÀÌÀüÀÇ ¾î¶°"
+"ÇÑ ¸Þ¼¼Áöµµ º¼ ¼ö ¾ø°Ô µË´Ï´Ù."
+
+#: Mailman/Gui/Usenet.py:119
+msgid "Mass catchup completed"
+msgstr "´ë±Ô¸ð <em>µû¶óÀâ±â</em>°¡ ¿Ï·áµÇ¾ú½À´Ï´Ù."
+
+#: Mailman/Gui/Usenet.py:131
+msgid ""
+"You cannot enable gatewaying unless both the\n"
+" <a href=\"?VARHELP=gateway/nntp_host\">news server field</a> "
+"and\n"
+" the <a href=\"?VARHELP=gateway/linked_newsgroup\">linked\n"
+" newsgroup</a> fields are filled in."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:47
+msgid "%(listinfo_link)s list run by %(owner_link)s"
+msgstr "%(listinfo_link)s ´Â %(owner_link)s ´ÔÀÌ °ü¸®ÇÕ´Ï´Ù."
+
+#: Mailman/HTMLFormatter.py:55
+msgid "%(realname)s administrative interface"
+msgstr "%(realname)s °ü¸®Çϱâ"
+
+#: Mailman/HTMLFormatter.py:56
+msgid " (requires authorization)"
+msgstr " (ÀÎÁõÀÌ ÇÊ¿äÇÕ´Ï´Ù.)"
+
+#: Mailman/HTMLFormatter.py:59
+msgid "Overview of all %(hostname)s mailing lists"
+msgstr "%(hostname)s »óÀÇ ¸ðµç ¸ÞÀϸµ ¸®½ºÆ® ¼Ò°³"
+
+#: Mailman/HTMLFormatter.py:80
+msgid "<em>(1 private member not shown)</em>"
+msgstr "<em>(1 ¸íÀÇ ºñ°ø°³ ȸ¿øÀÌ º¸¿©ÁöÁö ¾Ê½À´Ï´Ù.)</em>"
+
+#: Mailman/HTMLFormatter.py:82
+msgid "<em>(%(num_concealed)d private members not shown)</em>"
+msgstr "<em>(%(num_concealed) ¸íÀÇ ºñ°ø°³ ȸ¿øµéÀÌ º¸¿©ÁöÁö ¾Ê½À´Ï´Ù.)</em>"
+
+#: Mailman/HTMLFormatter.py:137
+msgid "; it was disabled by you"
+msgstr "; ´ç½ÅÀÌ ±ÝÁöÇÏ¿´½À´Ï´Ù."
+
+#: Mailman/HTMLFormatter.py:139
+msgid "; it was disabled by the list administrator"
+msgstr "; ¸®½ºÆ® °ü¸®ÀÚ°¡ ±ÝÁöÇÏ¿´½À´Ï´Ù."
+
+#: Mailman/HTMLFormatter.py:143
+#, fuzzy
+msgid ""
+"; it was disabled due to excessive bounces. The\n"
+" last bounce was received on %(date)s"
+msgstr "; ¸¹Àº ¹Ù¿î½º·Î ÀÎÇØ ±ÝÁöµÇ¾ú½À´Ï´Ù."
+
+#: Mailman/HTMLFormatter.py:146
+msgid "; it was disabled for unknown reasons"
+msgstr "; ¾Ë ¼ö ¾ø´Â ÀÌÀ¯·Î ±ÝÁöµÇ¾ú½À´Ï´Ù."
+
+#: Mailman/HTMLFormatter.py:148
+#, fuzzy
+msgid "Note: your list delivery is currently disabled%(reason)s."
+msgstr ""
+"Âü°í: ´ç½ÅÀÇ ¸®½ºÆ® ¹è´ÞÀº ÇöÀç %(reason)s ÀÌÀ¯ ¶§¹®¿¡ ±ÝÁöµÇ¾î ÀÖ½À´Ï´Ù."
+
+#: Mailman/HTMLFormatter.py:151
+msgid "Mail delivery"
+msgstr "E¸ÞÀÏ ¹è´Þ"
+
+#: Mailman/HTMLFormatter.py:153 Mailman/HTMLFormatter.py:298
+msgid "the list administrator"
+msgstr "¸®½ºÆ® °ü¸®ÀÚ"
+
+#: Mailman/HTMLFormatter.py:154
+msgid ""
+"<p>%(note)s\n"
+"\n"
+" <p>You may have disabled list delivery intentionally,\n"
+" or it may have been triggered by bounces from your email\n"
+" address. In either case, to re-enable delivery, change the\n"
+" %(link)s option below. Contact %(mailto)s if you have any\n"
+" questions or need assistance."
+msgstr ""
+"<p>%(notes)s<p>¸ÞÀϸµ ¸®½ºÆ® ¹è´ÞÀÌ ÇöÀç ¸øÇϵµ·Ï µÇ¾î ÀÖ½À´Ï´Ù. ´ç½ÅÀÌ ÀϺÎ"
+"·¯ ¹è´Þ ¾È¿Àµµ·Ï ¼³Á¤Ç߰ųª, ´ç½ÅÀÇ ¹è´ÞÁּҷκÎÅÍ ¹Ù¿î½º°¡ ÀϾ±â ¶§¹®ÀÔ´Ï"
+"´Ù. ±×·± °æ¿ì ¹è´Þ ±â´ÉÀ» Çϵµ·Ï ÇØ¾ß Çϴµ¥, %(link)s ¼³Á¤À» ¹Ù²Ù½Ã±â ¹Ù¶ø´Ï"
+"´Ù. ¸¸¾à Áú¹®ÀÌ ÀÖ´Ù¸é %(mailto)s ¿¡°Ô ¿¬¶ôÇϽñ⠹ٶø´Ï´Ù."
+
+#: Mailman/HTMLFormatter.py:166
+msgid ""
+"<p>We have received some recent bounces from your\n"
+" address. Your current <em>bounce score</em> is %(score)s out of "
+"a\n"
+" maximum of %(total)s. Please double check that your subscribed\n"
+" address is correct and that there are no problems with delivery "
+"to\n"
+" this address. Your bounce score will be automatically reset if\n"
+" the problems are corrected soon."
+msgstr ""
+"<p>¿ì¸®´Â ´ç½ÅÀÇ ÁּҷκÎÅÍ ÃÖ±Ù ¸î¸î ¹Ù¿î½º ¸ÞÀÏÀ» ¹Þ¾Ò½À´Ï´Ù. ´ç½ÅÀÇ ÇöÀç "
+"<em>¹Ù¿î½º Á¡¼ö</em> ´Â %(score)s Á¡À̸ç ÃÖ´ë %(total)s Á¡±îÁö Çã¿ëÇÕ´Ï´Ù. °¡"
+"ÀÔÀÌ Á¦´ë·Î µÇ¾ú´ÂÁö¿Í ÀÌ ÁÖ¼Ò·Î ¹è´ÞÇϴµ¥ ¹®Á¦°¡ ÀÖÁö ¾ÊÀºÁö ²À °Ë»çÇϽñâ "
+"¹Ù¶ø´Ï´Ù. ´ç½ÅÀÇ ¹Ù¿î½º Á¡¼ö´Â ¹®Á¦°¡ °íÃÄÁö¸é ÀÚµ¿À¸·Î ¸®¼ÂµË´Ï´Ù."
+
+#: Mailman/HTMLFormatter.py:178
+msgid ""
+"(Note - you are subscribing to a list of mailing lists, so the %(type)s "
+"notice will be sent to the admin address for your membership, %(addr)s.)<p>"
+msgstr ""
+"(Âü°í - ´ç½ÅÀº Áö±Ý ÆíÁö¸¦ ´ç½ÅÀÇ È¸¿ø( %addr)s ) µé¿¡°Ô º¼³¾¶§ ¹Ù·Î °¡Áö ¾Ê"
+"°í, °ü¸®ÀÚÀÇ ÁÖ¼Ò·Î %(type)s °øÁö°¡ º¸³»Áö´Â ¸ÞÀϸµ¸®½ºÆ®¿¡ °¡ÀÔÇϰí ÀÖ½À´Ï"
+"´Ù.)<p>"
+
+#: Mailman/HTMLFormatter.py:188
+msgid ""
+"You will be sent email requesting confirmation, to\n"
+" prevent others from gratuitously subscribing you."
+msgstr ""
+"´ç½Å À̸§À» ´Ù¸¥ »ç¶÷ÀÌ µµ¿ëÇÏ´Â °ÍÀ» ¸·±â À§ÇØ È®ÀÎ E-mailÀ» ¹Þ°Ô µÉ °ÍÀÔ´Ï"
+"´Ù."
+
+#: Mailman/HTMLFormatter.py:191
+msgid ""
+"This is a closed list, which means your subscription\n"
+" will be held for approval. You will be notified of the list\n"
+" moderator's decision by email."
+msgstr ""
+"ÀÌ ¸ÞÀϸµ ¸®½ºÆ®´Â ´ç½ÅÀÌ °¡ÀÔÀ» ÇÒ ¶§ °ü¸®ÀÚÀÇ ½ÂÀÎÀÌ ÀÖ¾î¾ß ÇÏ´Â ´ÝÈù ¸ÞÀÏ"
+"¸µ ¸®½ºÆ® ÀÔ´Ï´Ù. E¸ÞÀÏÀ» ÅëÇØ °ü¸®ÀÚÀÇ °áÁ¤À» ¹Þ¾Æ º¸½Ç ¼ö ÀÖ½À´Ï´Ù."
+
+#: Mailman/HTMLFormatter.py:194 Mailman/HTMLFormatter.py:201
+msgid "also "
+msgstr "¶ÇÇÑ "
+
+#: Mailman/HTMLFormatter.py:196
+msgid ""
+"You will be sent email requesting confirmation, to\n"
+" prevent others from gratuitously subscribing you. Once\n"
+" confirmation is received, your request will be held for "
+"approval\n"
+" by the list moderator. You will be notified of the moderator's\n"
+" decision by email."
+msgstr ""
+"´ç½ÅÀÇ µ¿ÀǾøÀÌ ´Ù¸¥ »ç¶÷ÀÌ ¸ÞÀϸµ ¸®½ºÆ®¿¡ °¡ÀÔÇÏ´Â °ÍÀ» ¹æÁöÇϱâ À§ÇØ È®ÀÎ "
+"¸ÞÀÏÀ» ´ç½ÅÀÇ E¸ÞÀÏ ÁÖ¼Ò·Î º¸³»µå·È½À´Ï´Ù. È®ÀÎ ¸ÞÀÏÀ» ¹ÞÀ¸¸é, ´ç½ÅÀÇ ¿äûÀº "
+"¸ÞÀϸµ ¸®½ºÆ®ÀÇ °ü¸®ÀÚÀÇ ½ÂÀÎÀ» ±â´Ù¸®´Â ´ë±â ¸í´Ü¿¡ ¿Ã¶ó°¡°Ô µË´Ï´Ù. °ü¸®ÀÚ"
+"ÀÇ °áÁ¤À» ´ãÀº ³»¿ëÀÌ °ü¸®ÀÚÀÇ °áÁ¤ ÈÄ ´ç½ÅÀÇ E¸ÞÀÏ ÁÖ¼Ò·Î º¸³»Áý´Ï´Ù."
+
+#: Mailman/HTMLFormatter.py:205
+msgid ""
+"This is %(also)sa private list, which means that the\n"
+" list of members is not available to non-members."
+msgstr ""
+"À̰ÍÀº %(also)s ºñ°ø°³ ¸ÞÀϸµ ¸®½ºÆ®ÀÔ´Ï´Ù. ȸ¿øÀÌ ¾Æ´Ñ »ç¶÷Àº ȸ¿ø ¸ñ·ÏÀ» "
+"º¼ ¼ö ¾ø½À´Ï´Ù."
+
+#: Mailman/HTMLFormatter.py:208
+msgid ""
+"This is %(also)sa hidden list, which means that the\n"
+" list of members is available only to the list administrator."
+msgstr ""
+"À̰ÍÀº %(also)s ¼û°ÜÁø ¸ÞÀϸµ ¸®½ºÆ®ÀÔ´Ï´Ù. Áï ȸ¿ø ¸®½ºÆ®´Â °ü¸®ÀÚ¸¸ º¼ ¼ö "
+"ÀÖ½À´Ï´Ù. "
+
+#: Mailman/HTMLFormatter.py:211
+msgid ""
+"This is %(also)sa public list, which means that the\n"
+" list of members list is available to everyone."
+msgstr ""
+"À̰ÍÀº %(also)s °ø¿ë ¸ñ·ÏÀÔ´Ï´Ù. Áï, ¸â¹ö ¸®½ºÆ®°¡ °ø°³ÀûÀ¸·Î °¡´ÉÇÏ´Ù´Â ¶æÀÔ"
+"´Ï´Ù. "
+
+#: Mailman/HTMLFormatter.py:214
+msgid ""
+" (but we obscure the addresses so they are not\n"
+" easily recognizable by spammers)."
+msgstr " (ÇÏÁö¸¸ ÁÖ¼Ò´Â ½ºÆÐ¸Óµé¿¡°Ô ½±°Ô ¾Ë·ÁÁöÁö ¾Êµµ·Ï ¼û°ÜÁý´Ï´Ù.) "
+
+#: Mailman/HTMLFormatter.py:219
+msgid ""
+"<p>(Note that this is an umbrella list, intended to\n"
+" have only other mailing lists as members. Among other things,\n"
+" this means that your confirmation request will be sent to the\n"
+" `%(sfx)s' account for your address.)"
+msgstr ""
+"<p>(ÀÌ ¸®½ºÆ®´Â ȸ¿øÀ¸·Î ´Ù¸¥ ¸ÞÀϸµ ¸®½ºÆ®¸¦ Æ÷ÇÔÇÏ´Â ¸ÞÀϸµ ¸®½ºÆ® ÀÔ´Ï´Ù. "
+"´Ù¸¥ Á¡Àº ´ç½ÅÀÇ È®ÀÎ ¿äûÀÌ ´ç½Å ÁÖ¼ÒÀÇ `%(sfx)s' °èÁ¤À¸·Î º¸³»Áø´Ù´Â °ÍÀÔ´Ï"
+"´Ù.)"
+
+#: Mailman/HTMLFormatter.py:248
+msgid "<b><i>either</i></b> "
+msgstr " "
+
+#: Mailman/HTMLFormatter.py:253
+msgid ""
+"To unsubscribe from %(realname)s, get a password reminder,\n"
+" or change your subscription options %(either)senter your "
+"subscription\n"
+" email address:\n"
+" <p><center> "
+msgstr ""
+"%(realname)s ¿¡¼­ °¡ÀÔ½Åû º¯°æ (Disest ¿©ºÎ ¹è´Þ¹æ½Ä, ÆÐ½º¿öµå ºÐ½Ç½Ã, Å»Åð)"
+"À» ¿øÇϽŴٸé %(either)s ¾Æ·¡¿¡ Email ÁÖ¼Ò¸¦ ³Ö¾î ÁÖ¼¼¿ä.<p>"
+
+#: Mailman/HTMLFormatter.py:260
+msgid "Unsubscribe or edit options"
+msgstr "Å»Åð ¹× ¼³Á¤ º¯°æÇϱâ"
+
+#: Mailman/HTMLFormatter.py:264
+msgid ""
+"<p>... <b><i>or</i></b> select your entry from\n"
+" the subscribers list (see above)."
+msgstr ""
+"<p>... <b><i>ȤÀº</i></b> À§¿¡¼­ º¼ ¼ö ÀÖ´Â °¡ÀÔÀÚ ¸í´Ü¿¡¼­ ÇØ´çÇÏ´Â °ÍÀ» ¼±"
+"ÅÃÇϼ¼¿ä. "
+
+#: Mailman/HTMLFormatter.py:266
+msgid ""
+" If you leave the field blank, you will be prompted for\n"
+" your email address"
+msgstr "<br>ºóÄ­À¸·Î ³²°Ü µÐ´Ù¸é ´ç½ÅÀÇ E¸ÞÀÏ ÁÖ¼Ò¸¦ »ç¿ëÇÒ °ÍÀÔ´Ï´Ù."
+
+#: Mailman/HTMLFormatter.py:274
+#, fuzzy
+msgid ""
+"(<i>%(which)s is only available to the list\n"
+" members.</i>)"
+msgstr "%(which)s Àº ȸ¿ø¸¸ À̿밡´ÉÇÕ´Ï´Ù."
+
+#: Mailman/HTMLFormatter.py:278
+#, fuzzy
+msgid ""
+"(<i>%(which)s is only available to the list\n"
+" administrator.</i>)"
+msgstr "<i> %(which)s ´Â ¸ÞÀϸµ ¸®½ºÆ® °ü¸®ÀÚ¸¸ À̿밡´ÉÇÕ´Ï´Ù.</i>"
+
+#: Mailman/HTMLFormatter.py:288
+msgid "Click here for the list of "
+msgstr "´ÙÀ½°ú °°Àº ¸ñ·ÏÀ» º¸½Ç·Á¸é Ŭ¸¯Çϼ¼¿ä. "
+
+#: Mailman/HTMLFormatter.py:290
+msgid " subscribers: "
+msgstr " °¡ÀÔÀÚµé: "
+
+#: Mailman/HTMLFormatter.py:292
+msgid "Visit Subscriber list"
+msgstr "°¡ÀÔÀÚ ¸ñ·Ï º¸±â"
+
+#: Mailman/HTMLFormatter.py:295
+msgid "members"
+msgstr "ȸ¿ø"
+
+#: Mailman/HTMLFormatter.py:296
+msgid "Address:"
+msgstr "E¸ÞÀÏ ÁÖ¼Ò:"
+
+#: Mailman/HTMLFormatter.py:299
+msgid "Admin address:"
+msgstr "°ü¸®ÀÚ ÁÖ¼Ò:"
+
+#: Mailman/HTMLFormatter.py:302
+#, fuzzy
+msgid "The subscribers list"
+msgstr "°¡ÀÔÀÚ ¸ñ·Ï"
+
+#: Mailman/HTMLFormatter.py:304
+msgid " <p>Enter your "
+msgstr " <p>°¡ÀÔÀÚ ¸ñ·ÏÀ» º¸±â À§ÇØ ´ç½ÅÀÇ "
+
+#: Mailman/HTMLFormatter.py:306
+msgid " and password to visit the subscribers list: <p><center> "
+msgstr " ¿Í ºñ¹Ð ¹øÈ£¸¦ ÀÔ·ÂÇϽʽÿÀ: <p><center>"
+
+#: Mailman/HTMLFormatter.py:311
+msgid "Password: "
+msgstr "ºñ¹Ð¹øÈ£: "
+
+#: Mailman/HTMLFormatter.py:315
+msgid "Visit Subscriber List"
+msgstr "°¡ÀÔÀÚ ¸ñ·Ï º¸±â"
+
+#: Mailman/HTMLFormatter.py:345
+msgid "Once a month, your password will be emailed to you as a reminder."
+msgstr "ÇÑ´Þ¿¡ Çѹø ¿©·¯ºÐÀÇ ÆÐ½º¿öµå¸¦ Email·Î º¸³»µå¸³´Ï´Ù."
+
+#: Mailman/HTMLFormatter.py:391
+#, fuzzy
+msgid "The current archive"
+msgstr "ÇöÀç ÀúÀå¼Ò"
+
+#: Mailman/Handlers/Acknowledge.py:59
+msgid "%(realname)s post acknowledgement"
+msgstr "%(realname)s º¸³½µé È®ÀÎ"
+
+#: Mailman/Handlers/CalcRecips.py:68
+msgid ""
+"Your urgent message to the %(realname)s mailing list was not authorized for\n"
+"delivery. The original message as received by Mailman is attached.\n"
+msgstr ""
+"´ç½ÅÀÌ %(realname)s ¸ÞÀϸµ ¸®½ºÆ®·Î º¸³½ ¸Þ¼¼Áö°¡ ¹è´ÞµÇµµ·Ï ÀÎÁõµÇÁö ¸øÇÏ¿´"
+"½À´Ï´Ù. Mailman ÀÌ ¹ÞÀº ¿øº» ¸Þ¼¼Áö´Â ÷ºÎµÉ °ÍÀÔ´Ï´Ù.\n"
+
+#: Mailman/Handlers/Emergency.py:29
+#, fuzzy
+msgid "Emergency hold on all list traffic is in effect"
+msgstr "¸ðµç ¸®½ºÆ® ±Û¿¡ ´ëÇØ ±ä±Þ ±Û°ü¸® ¸ðµå·Î Àüȯ"
+
+#: Mailman/Handlers/Emergency.py:30 Mailman/Handlers/Hold.py:58
+msgid "Your message was deemed inappropriate by the moderator."
+msgstr ""
+"´ç½ÅÀÇ ¸Þ¼¼Áö´Â °ü¸®ÀÚ°¡ »ý°¢Çϱ⿡ ÀÌ ¸®½ºÆ®¿Í ¸ÂÁö ¾Ê´Ù°í »ý°¢ÇÕ´Ï´Ù."
+
+#: Mailman/Handlers/Hold.py:53
+msgid "Sender is explicitly forbidden"
+msgstr "º¸³½ÀÌ ´Â Àý´ë±ÝÁöµÇ¾î ÀÖ½À´Ï´Ù."
+
+#: Mailman/Handlers/Hold.py:54
+msgid "You are forbidden from posting messages to this list."
+msgstr "´ç½ÅÀº ÀÌ ¸®½ºÆ®·Î ±ÛÀ» º¸³»´Â°Ô ±ÝÁöµÇ¾î ÀÖ½À´Ï´Ù."
+
+#: Mailman/Handlers/Hold.py:57
+msgid "Post to moderated list"
+msgstr "Moderator ¸®½ºÆ®¿¡ ±ÛÀ» º¸³»¼Ì½À´Ï´Ù."
+
+#: Mailman/Handlers/Hold.py:61
+msgid "Post by non-member to a members-only list"
+msgstr ""
+"°ü¸®ÀÚ¿¡ ÀÇÇØ µî·ÏµÈ ȸ¿ø¸¸ ±Û¾µ¼ö ÀÖ´Â ¸®½ºÆ®¿¡ ºñȸ¿øÀÌ ±ÛÀ» º¸³»¼Ì½À´Ï´Ù."
+
+#: Mailman/Handlers/Hold.py:62
+msgid "Non-members are not allowed to post messages to this list."
+msgstr ""
+"ÀÌ ¸ÞÀϸµ ¸®½ºÆ®¿¡ ºñȸ¿øÀº ±ÛÀ» º¸³¾ ¼ö ¾ø½À´Ï´Ù. ÀÌ ¸®½ºÆ®´Â µî·ÏµÈ ȸ¿ø¸¸ "
+"±ÛÀ» º¸³¾ ¼ö ÀÖ½À´Ï´Ù."
+
+#: Mailman/Handlers/Hold.py:65
+msgid "Posting to a restricted list by sender requires approval"
+msgstr "º¸³½ÀÌÀÇ ±ÛÀº °ü¸®ÀÚÀÇ ½ÂÀÎÀÌ ÀÖ¾î¾ß ÇÕ´Ï´Ù."
+
+#: Mailman/Handlers/Hold.py:66
+msgid "This list is restricted; your message was not approved."
+msgstr "´ç½ÅÀÇ ¸Þ¼¼Áö´Â °ü¸®ÀÚÀÇ ½ÂÀÎÀÌ ÀÖ¾î¾ß ºñ·Î¼­ º¸³»Áý´Ï´Ù."
+
+#: Mailman/Handlers/Hold.py:69
+msgid "Too many recipients to the message"
+msgstr "¸Þ¼¼Áö¿¡ ÂüÁ¶ÀÚ°¡ ³Ê¹« ¸¹½À´Ï´Ù."
+
+#: Mailman/Handlers/Hold.py:70
+msgid "Please trim the recipient list; it is too long."
+msgstr "±ÛÀÇ ÂüÁ¶ÀÚ¸¦ Á» ´Ùµë¾î¾ß ÇÒ °Í °°±º¿ä. ³Ê¹« ±é´Ï´Ù."
+
+#: Mailman/Handlers/Hold.py:73
+msgid "Message has implicit destination"
+msgstr "¸Þ¼¼Áö°¡ ¾Ë¼ö¾ø´Â ¸ñÀûÁö¸¦ °¡Áö°í ÀÖ½À´Ï´Ù."
+
+#: Mailman/Handlers/Hold.py:74
+msgid ""
+"Blind carbon copies or other implicit destinations are\n"
+"not allowed. Try reposting your message by explicitly including the list\n"
+"address in the To: or Cc: fields."
+msgstr ""
+"¾Ë¼ö¾ø´Â º¹»ç¹° ȤÀº ´Ù¸¥ Implicit ¸ñÀûÁö´Â Çã¶ôµÇÁö ¾Ê½À´Ï´Ù.¿©·¯ºÐÀÇ ±ÛÀÇ "
+"To: ȤÀº Cc: Ç׸ñ¿¡ Explicit ·Î ±¸¼ºÇÏ¿© ´Ù½Ã º¸³»Áֽñ⠹ٶø´Ï´Ù."
+
+#: Mailman/Handlers/Hold.py:79
+msgid "Message may contain administrivia"
+msgstr "¸Þ¼¼Áö°¡ °ü¸® ¿äûÀ» Æ÷ÇÔÇϰí ÀÖ½À´Ï´Ù."
+
+#: Mailman/Handlers/Hold.py:84
+msgid ""
+"Please do *not* post administrative requests to the mailing\n"
+"list. If you wish to subscribe, visit %(listurl)s or send a message with "
+"the\n"
+"word `help' in it to the request address, %(request)s, for further\n"
+"instructions."
+msgstr ""
+"¸ÞÀϸµ ¸®½ºÆ®·Î °ü¸® ¿äûÀ» º¸³»Áö ¸¶½Ê½Ã¿À. ¸¸¾à °¡ÀÔÀ» ¿øÇϽŴٸé %"
+"(listurl)s À» ¹æ¹®ÇϽðųª ´õ ¸¹Àº ¸í·É¾î¸¦ Æ÷ÇÔÇÑ E¸ÞÀÏ ¹æ¹ýÀ»»ç¿ëÇϽñ⠹Ù"
+"¶ø´Ï´Ù. %(request)s ¿äû ÁÖ¼Ò·Î `help' ´Ü¾î¸¦ ±Û¿¡ ³Ö¾î º¸³»½Ê½Ã¿À."
+
+#: Mailman/Handlers/Hold.py:90
+msgid "Message has a suspicious header"
+msgstr "¸Þ¼¼Áö°¡ Àǽɽº·¯¿î Çì´õ¸¦ °¡Áö°í ÀÖ½À´Ï´Ù."
+
+#: Mailman/Handlers/Hold.py:91
+msgid "Your message had a suspicious header."
+msgstr "´ç½ÅÀÇ ±ÛÀº ÀÌ»óÇÑ Çì´õ¸¦ °¡Áö°í ÀÖ½À´Ï´Ù."
+
+#: Mailman/Handlers/Hold.py:101
+msgid ""
+"Message body is too big: %(size)d bytes with a limit of\n"
+"%(limit)d KB"
+msgstr ""
+"¸ÞÁ¦±â º»¹®ÀÌ ³Ê¹« Å®´Ï´Ù : %(size)d ¹ÙÀÌÆ®. ÃÖ´ë Å©±â´Â %(limit)d KB ÀÔ´Ï´Ù."
+
+#: Mailman/Handlers/Hold.py:106
+msgid ""
+"Your message was too big; please trim it to less than\n"
+"%(kb)d KB in size."
+msgstr "´ç½ÅÀÇ ±ÛÀº ³Ê¹« Å®´Ï´Ù. Å©±â¸¦ %(kb)s À̳»·Î ´Ùµë¾î Áֽñ⠹ٶø´Ï´Ù."
+
+#: Mailman/Handlers/Hold.py:110
+#, fuzzy
+msgid "Posting to a moderated newsgroup"
+msgstr "Moderator ¸®½ºÆ®¿¡ ±ÛÀ» º¸³»¼Ì½À´Ï´Ù."
+
+#: Mailman/Handlers/Hold.py:233
+msgid "Your message to %(listname)s awaits moderator approval"
+msgstr "%(listname)s ¿¡ º¸³½ ¸Þ¼¼Áö°¡ °ü¸®ÀÚÀÇ ½ÂÀÎÀ» ±â´Ù¸®°í ÀÖ½À´Ï´Ù."
+
+#: Mailman/Handlers/Hold.py:253
+msgid "%(listname)s post from %(sender)s requires approval"
+msgstr " %(sender)s ·Î ºÎÅÍ %(listname)s ¿¡ ¿Â ±ÛÀº ½ÂÀÎÀÌ ÇÊ¿äÇÕ´Ï´Ù."
+
+#: Mailman/Handlers/Hold.py:260
+msgid ""
+"If you reply to this message, keeping the Subject: header intact, Mailman "
+"will\n"
+"discard the held message. Do this if the message is spam. If you reply to\n"
+"this message and include an Approved: header with the list password in it, "
+"the\n"
+"message will be approved for posting to the list. The Approved: header can\n"
+"also appear in the first line of the body of the reply."
+msgstr ""
+"¸¸¾à ÀÌ ¸Þ¼¼Áö¿¡ ȸ½ÅÇÏ°Ô µÇ¸é Á¦¸ñ: Çì´õ ºÎºÐÀ¸ ±×´ë·Î ³öµÎ½Ã±â ¹Ù¶ø´Ï´Ù. "
+"Mailman ÀÌ Àâ¾ÆµÐ ¸Þ¼¼Áö¸¦ ¹ö¸®°Ô µË´Ï´Ù. ¸¸¾à ¸Þ¼¼Áö°¡ ½ºÆÔÀÎ °Í °°À¸¸é À̰Í"
+"À» Çϼ¼¿ä. ¸¸¾à ´ç½ÅÀÌ ÀÌ ¸Þ¼¼ÁöÀÇ È¸½ÅÇÏ°í ±×°Í¿¡ ¸®½ºÆ® ºñ¹Ð¹øÈ£¸¦ ´ãÀº ½Â"
+"ÀÎ: Çì´õ¿Í ÇÔ²² º¸³½´Ù¸é ¸Þ¼¼Áö´Â ¸®½ºÆ®ÀÇ ±Û¾²±â°¡ ½ÂÀεǾî ÀÖ½À´Ï´Ù. ½ÂÀÎ: "
+"Çì´õ´Â ²¿ÇÑ È¸¿ø º»¹®ÀÇ Ã¹ ÁÙ¿¡ ¿Ã ¼ö ÀÖ½À´Ï´Ù."
+
+#: Mailman/Handlers/MimeDel.py:56
+msgid "The message's content type was explicitly disallowed"
+msgstr ""
+
+#: Mailman/Handlers/MimeDel.py:61
+msgid "The message's content type was not explicitly allowed"
+msgstr ""
+
+#: Mailman/Handlers/MimeDel.py:73
+msgid "After content filtering, the message was empty"
+msgstr ""
+
+#: Mailman/Handlers/MimeDel.py:208
+msgid ""
+"The attached message matched the %(listname)s mailing list's content "
+"filtering\n"
+"rules and was prevented from being forwarded on to the list membership. "
+"You\n"
+"are receiving the only remaining copy of the discarded message.\n"
+"\n"
+msgstr ""
+
+#: Mailman/Handlers/MimeDel.py:214
+msgid "Content filtered message notification"
+msgstr ""
+
+#: Mailman/Handlers/Moderate.py:138
+msgid ""
+"You are not allowed to post to this mailing list, and your message has been\n"
+"automatically rejected. If you think that your messages are being rejected "
+"in\n"
+"error, contact the mailing list owner at %(listowner)s."
+msgstr ""
+"´ç½ÅÀº ÀÌ ¸ÞÀϸµ ¸®½ºÆ®¿¡ ±Û¾²´Â°Ô, Çã¶ôµÇÁö ¾Ê½À´Ï´Ù. ´ç½ÅÀÇ ¸Þ¼¼Áö´Â ÀÚµ¿À¸"
+"·Î °ÅÀýµË´Ï´Ù. ¸¸¾à ´ç½ÅÀÌ ¸Þ¼¼Áö°¡ ¿¡·¯¿Í ÇÔ²² °ÅÀýµÈ´Ù¸é ¸®½ºÆ® ¼ÒÀ¯ÁÖ( %"
+"(listowner)s )¿¡°Ô ¿¬¶ôÇϽñ⠹ٶø´Ï´Ù."
+
+#: Mailman/Handlers/Moderate.py:153
+msgid "Auto-discard notification"
+msgstr "ÀÚµ¿-¹ö¸² °øÁö"
+
+#: Mailman/Handlers/Moderate.py:156
+msgid "The attached message has been automatically discarded."
+msgstr "÷ºÎµÈ ¸Þ¼¼Áö´Â ÀÚµ¿À¸·Î ¹ö·ÁÁ³½À´Ï´Ù."
+
+#: Mailman/Handlers/Replybot.py:74
+msgid "Auto-response for your message to "
+msgstr "´ç½ÅÀÇ ¸Þ¼¼ÁöÀÇ ´ëÇÑ ÀÚµ¿ ÀÀ´ä : "
+
+#: Mailman/Handlers/Replybot.py:75
+msgid "the \"%(realname)s\" mailing list"
+msgstr " \"%(realname)s\" ¸ÞÀϸµ ¸®½ºÆ®"
+
+#: Mailman/Handlers/Replybot.py:107
+msgid "The Mailman Replybot"
+msgstr "Mailman ȸ¿øº¿"
+
+#: Mailman/Handlers/Scrubber.py:148
+msgid "HTML attachment scrubbed and removed"
+msgstr "HTML ÷ºÎ ºÎºÐÀº ¾ø¾Ö ¹ö·È½À´Ï´Ù."
+
+#: Mailman/Handlers/Scrubber.py:162 Mailman/Handlers/Scrubber.py:188
+msgid ""
+"An HTML attachment was scrubbed...\n"
+"URL: %(url)s\n"
+msgstr ""
+"HTML ÷ºÎ¸¦ ¾ø¾Ö¹ö·È½À´Ï´Ù...\n"
+"URL: %(url)s\n"
+
+#: Mailman/Handlers/Scrubber.py:201
+msgid "no subject"
+msgstr "Á¦¸ñ ¾øÀ½"
+
+#: Mailman/Handlers/Scrubber.py:202
+msgid "no date"
+msgstr "³¯Â¥ ¾øÀ½"
+
+#: Mailman/Handlers/Scrubber.py:203
+msgid "unknown sender"
+msgstr "¾Ë¼ö¾ø´Â º¸³½ÀÌ"
+
+#: Mailman/Handlers/Scrubber.py:205
+msgid ""
+"An embedded message was scrubbed...\n"
+"From: %(who)s\n"
+"Subject: %(subject)s\n"
+"Date: %(date)s\n"
+"Size: %(size)s\n"
+"Url: %(url)s\n"
+msgstr ""
+"Æ÷ÇÔµÈ ¸Þ¼¼Áö¸¦ ¾ø¾Ö ¹ö·È½À´Ï´Ù.\n"
+"º¸³½ÀÌ: %(who)s\n"
+"Á¦¸ñ: %(subject)s\n"
+"³¯Â¥: %(date)s\n"
+"Å©±â: %(size)s\n"
+"Url: %(url)s\n"
+
+#: Mailman/Handlers/Scrubber.py:228
+msgid ""
+"A non-text attachment was scrubbed...\n"
+"Name: %(filename)s\n"
+"Type: %(ctype)s\n"
+"Size: %(size)d bytes\n"
+"Desc: %(desc)s\n"
+"Url : %(url)s\n"
+msgstr ""
+"ÅØ½ºÆ®°¡ ¾Æ´Ñ ÷ºÎ¸¦ ¸ðµÎ ¾ø¾Ö ¹ö·È½À´Ï´Ù...\n"
+"À̸§: %(filename)s\n"
+"Çü½Ä: %(ctype)s\n"
+"Å©±â: %(size)d bytes\n"
+"¼³¸í: %(desc)s\n"
+"Url : %(url)s\n"
+
+#: Mailman/Handlers/Scrubber.py:258
+msgid "Skipped content of type %(partctype)s"
+msgstr ""
+
+#: Mailman/Handlers/Scrubber.py:275
+msgid "-------------- next part --------------\n"
+msgstr ""
+
+#: Mailman/Handlers/ToDigest.py:141
+msgid "%(realname)s Digest, Vol %(volume)d, Issue %(issue)d"
+msgstr "%(realname)s ¹­À½¹è´Þ, ±Û %(volume)d, ¹øÈ£ %(issue)d"
+
+#: Mailman/Handlers/ToDigest.py:181
+msgid "digest header"
+msgstr "¹­À½¹è´Þ ¸Ó¸´¸»"
+
+#: Mailman/Handlers/ToDigest.py:184
+msgid "Digest Header"
+msgstr "¹­À½¹è´Þ ¸Ó¸´¸»"
+
+#: Mailman/Handlers/ToDigest.py:197
+msgid "Today's Topics:\n"
+msgstr "¿À´ÃÀÇ ÁÖÁ¦:\n"
+
+#: Mailman/Handlers/ToDigest.py:267
+msgid "Today's Topics (%(msgcount)d messages)"
+msgstr "¿À´ÃÀÇ ÁÖÁ¦ (%(msgcount)d °³ÀÇ ¸Þ¼¼Áö)"
+
+#: Mailman/Handlers/ToDigest.py:292
+msgid "digest footer"
+msgstr "¹­À½¹è´Þ ²¿¸®¸»"
+
+#: Mailman/Handlers/ToDigest.py:295
+msgid "Digest Footer"
+msgstr "¹­À½¹è´Þ ²¿¸®¸»"
+
+#: Mailman/Handlers/ToDigest.py:309
+msgid "End of "
+msgstr "³¡ºÎºÐ --"
+
+#: Mailman/ListAdmin.py:307
+msgid "Posting of your message titled \"%(subject)s\""
+msgstr "\"%(subject)s\" Á¦¸ñÀÇ º¸³½±Û"
+
+#: Mailman/ListAdmin.py:346
+msgid "Forward of moderated message"
+msgstr "±Û°ü¸®µÈ ¸Þ¼¼ÁöÀÇ Àü´Þ"
+
+#: Mailman/ListAdmin.py:405
+msgid "New subscription request to list %(realname)s from %(addr)s"
+msgstr "%(addr)s ·Î ºÎÅÍÀÇ %(realname)s ¸®½ºÆ®¿¡ ´ëÇÑ »õ·Î¿î °¡ÀÔ ¿äû"
+
+#: Mailman/ListAdmin.py:428
+msgid "Subscription request"
+msgstr "°¡ÀÔ ¿äû"
+
+#: Mailman/ListAdmin.py:458
+msgid "New unsubscription request from %(realname)s by %(addr)s"
+msgstr "%(addr)s ÁÖ¼Ò·Î %(realname)s ·Î ºÎÅÍÀÇ »õ·Î¿î Å»Åð ¿äû"
+
+#: Mailman/ListAdmin.py:481
+msgid "Unsubscription request"
+msgstr "Å»Åð ¿äû"
+
+#: Mailman/ListAdmin.py:512
+msgid "Original Message"
+msgstr "¿øº» ¸Þ¼¼Áö"
+
+#: Mailman/ListAdmin.py:515
+msgid "Request to mailing list %(realname)s rejected"
+msgstr "%(realname)s ¸ÞÀϸµ ¸®½ºÆ®¿¡ ´ëÇÑ ¿äûÀÌ °ÅÀýµÇ¾ú½À´Ï´Ù."
+
+#: Mailman/MTA/Manual.py:57
+msgid ""
+"The mailing list `%(listname)s' has been created via the through-the-web\n"
+"interface. In order to complete the activation of this mailing list, the\n"
+"proper /etc/aliases (or equivalent) file must be updated. The program\n"
+"`newaliases' may also have to be run.\n"
+"\n"
+"Here are the entries for the /etc/aliases file:\n"
+msgstr ""
+"`%(listname)s' ¸ÞÀϸµ ¸®½ºÆ®°¡ À¥ ÀÎÅÍÆäÀ̽º¸¦ ÅëÇØ »ý¼ºµÇ¾ú½À´Ï´Ù. ÀÌ ¸ÞÀÏ"
+"¸µ ¸®½ºÆ®ÀÇ ¼³Á¤À» ¿Ï·áÇϱâ À§Çؼ­ /etc/aliases (ȤÀº /etc/mail/aliases) ¸¦ "
+"¾÷µ¥ÀÌÆ® ÇÏ¼Å¾ß ÇÕ´Ï´Ù. `newaliases' ¸í·É¾î ¶ÇÇÑ ½ÇÇàÇØ¾ß ÇÕ´Ï´Ù. ¾Æ·¡´Â /"
+"etc/aliases ÆÄÀÏ¿¡ µé¾î°¡¾ß ÇÒ ³»¿ëÀÔ´Ï´Ù.\n"
+
+#: Mailman/MTA/Manual.py:67
+msgid ""
+"\n"
+"To finish creating your mailing list, you must edit your /etc/aliases (or\n"
+"equivalent) file by adding the following lines, and possibly running the\n"
+"`newaliases' program:\n"
+"\n"
+"## %(listname)s mailing list"
+msgstr ""
+"\n"
+"´ç½ÅÀÇ ¸ÞÀϸµ ¸®½ºÆ® »ý¼ºÀ» ¸¶Ä¡±â À§Çؼ­ ´ç½ÅÀº ´ÙÀ½ ÁÙµéÀ» /etc/aliases (Ȥ"
+"Àº /etc/mail/aliases) ¿¡ Ãß°¡ÇϽðí `newaliases' ÇÁ·Î±×·¥À» ½ÇÇàÇÏ¿© ÁֽʽÃ"
+"¿À:\n"
+"## %(listname)s ¸ÞÀϸµ ¸®½ºÆ®"
+
+#: Mailman/MTA/Manual.py:88
+msgid "Mailing list creation request for list %(listname)s"
+msgstr "%(listname)s ¸ÞÀϸµ ¸®½ºÆ® »ý¼º ¿äû"
+
+#: Mailman/MTA/Manual.py:103
+msgid ""
+"The mailing list `%(listname)s' has been removed via the through-the-web\n"
+"interface. In order to complete the de-activation of this mailing list, "
+"the\n"
+"appropriate /etc/aliases (or equivalent) file must be updated. The program\n"
+"`newaliases' may also have to be run.\n"
+"\n"
+"Here are the entries in the /etc/aliases file that should be removed:\n"
+msgstr ""
+"`%(listname)s' ¸ÞÀϸµ ¸®½ºÆ®°¡ À¥ ÀÎÅÍÆäÀ̽º¸¦ ÅëÇØ Á¦°ÅµÇ¾ú½À´Ï´Ù. ÀÌ ¸ÞÀÏ"
+"¸µ ¸®½ºÆ®ÀÇ ¼³Á¤À» ¿Ï·áÇϱâ À§Çؼ­ /etc/aliases (ȤÀº /etc/mail/aliases) ¿¡"
+"¼­ Àû´çÇÑ º°Äª(alias)¸¦ Á¦°ÅÇÏ¼Å¾ß ÇÕ´Ï´Ù. `newaliases' ¸í·É¾î ¶ÇÇÑ ½ÇÇàÇØ¾ß "
+"ÇÕ´Ï´Ù.\n"
+"¾Æ·¡ Ç׸ñµéÀº /etc/aliases ÆÄÀÏ¿¡¼­ Á¦°ÅµÇ¾î¾ß ÇÒ ºÎºÐµéÀÔ´Ï´Ù:\n"
+
+#: Mailman/MTA/Manual.py:113
+msgid ""
+"\n"
+"To finish removing your mailing list, you must edit your /etc/aliases (or\n"
+"equivalent) file by removing the following lines, and possibly running the\n"
+"`newaliases' program:\n"
+"\n"
+"## %(listname)s mailing list"
+msgstr ""
+"\n"
+"´ç½ÅÀÇ ¸ÞÀϸµ ¸®½ºÆ® Á¦°ÅÀ» ¸¶Ä¡±â À§Çؼ­ ´ç½ÅÀº /etc/aliases (ȤÀº /etc/"
+"mail/aliases) ¿¡¼­ ´ÙÀ½ÀÇ ÁÙÀ» Á¦°ÅÇϽðí `newaliases' ÇÁ·Î±×·¥À» ½ÇÇàÇÏ¿© ÁÖ"
+"½Ê½Ã¿À:\n"
+"## %(listname)s ¸ÞÀϸµ ¸®½ºÆ®"
+
+#: Mailman/MTA/Manual.py:132
+msgid "Mailing list removal request for list %(listname)s"
+msgstr "%(listname)s ¸ÞÀϸµ ¸®½ºÆ® Á¦°Å ¿äû"
+
+#: Mailman/MTA/Postfix.py:300
+msgid "checking permissions on %(file)s"
+msgstr "%(file)s ÆÄÀÏ¿¡ ´ëÇÑ ÆÛ¹Ì¼Ç °Ë»çÁß"
+
+#: Mailman/MTA/Postfix.py:310
+msgid "%(file)s permissions must be 066x (got %(octmode)s)"
+msgstr "%(file)s ÆÛ¹Ì¼ÇÀº 066x ( %(octmode)s )¿©¾ß ÇÕ´Ï´Ù."
+
+#: Mailman/MTA/Postfix.py:312 Mailman/MTA/Postfix.py:339 bin/check_perms:100
+#: bin/check_perms:122 bin/check_perms:132 bin/check_perms:143
+#: bin/check_perms:162 bin/check_perms:180 bin/check_perms:200
+#: bin/check_perms:224 bin/check_perms:244 bin/check_perms:258
+#: bin/check_perms:278 bin/check_perms:315
+msgid "(fixing)"
+msgstr "(¼öÁ¤Áß)"
+
+#: Mailman/MTA/Postfix.py:328
+msgid "checking ownership of %(dbfile)s"
+msgstr "%(dbfile)s ÀÇ ¼ÒÀ¯ÁÖ¸¦ °Ë»çÁß"
+
+#: Mailman/MTA/Postfix.py:336
+#, fuzzy
+msgid "%(dbfile)s owned by %(owner)s (must be owned by %(user)s"
+msgstr ""
+"%(dbfile)s ´Â %(owner)s ¿¡ ÀÇÇØ ¼ÒÀ¯µÇ¾î¾ß ÇÕ´Ï´Ù. (Mailman ÀÇ ¼ÒÀ¯¿©¾ß ÇÕ´Ï"
+"´Ù."
+
+#: Mailman/MailList.py:697
+#, fuzzy
+msgid "You have been invited to join the %(listname)s mailing list"
+msgstr "%(realname)s ¸ÞÀϸµ ¸®½ºÆ®¿¡¼­ Å»ÅðµÇ¼Ì½À´Ï´Ù."
+
+#: Mailman/MailList.py:801 Mailman/MailList.py:1157
+msgid " from %(remote)s"
+msgstr "%(remote)s ºÎÅÍ"
+
+#: Mailman/MailList.py:835
+msgid "subscriptions to %(realname)s require moderator approval"
+msgstr "%(realname)s ¿¡ °¡ÀÔÇϱâ À§Çؼ­´Â ±Û°ü¸®ÀÚÀÇ ½ÂÀÎÀÌ ÇÊ¿äÇÕ´Ï´Ù."
+
+#: Mailman/MailList.py:894 bin/add_members:281
+msgid "%(realname)s subscription notification"
+msgstr "%(realname)s °¡ÀÔ °øÁö"
+
+#: Mailman/MailList.py:909
+msgid "unsubscriptions require moderator approval"
+msgstr "Å»ÅðÇϱâ´Â ±Û°ü¸®ÀÚÀÇ ½ÂÀÎÀÌ ÇÊ¿äÇÕ´Ï´Ù."
+
+#: Mailman/MailList.py:928
+msgid "%(realname)s unsubscribe notification"
+msgstr "%(realname)s Å»Åð °øÁö"
+
+#: Mailman/MailList.py:1072
+msgid "subscriptions to %(name)s require administrator approval"
+msgstr "%(name)s ¿¡ °¡ÀÔÇϱâ À§Çؼ­´Â °ü¸®ÀÚÀÇ ½ÂÀÎÀÌ ÇÊ¿äÇÕ´Ï´Ù."
+
+#: Mailman/MailList.py:1326
+msgid "Last autoresponse notification for today"
+msgstr ""
+
+#: Mailman/Queue/BounceRunner.py:179
+msgid ""
+"The attached message was received as a bounce, but either the bounce format\n"
+"was not recognized, or no member addresses could be extracted from it. "
+"This\n"
+"mailing list has been configured to send all unrecognized bounce messages "
+"to\n"
+"the list administrator(s).\n"
+"\n"
+"For more information see:\n"
+"%(adminurl)s\n"
+"\n"
+msgstr ""
+
+#: Mailman/Queue/BounceRunner.py:189
+#, fuzzy
+msgid "Uncaught bounce notification"
+msgstr "¹Ù¿î½º ÇàÀ§ ¾Ë¸²"
+
+#: Mailman/Queue/CommandRunner.py:74
+msgid "Ignoring non-text/plain MIME parts"
+msgstr ""
+
+#: Mailman/Queue/CommandRunner.py:129
+msgid ""
+"The results of your email command are provided below.\n"
+"Attached is your original message.\n"
+msgstr ""
+
+#: Mailman/Queue/CommandRunner.py:134
+msgid "- Results:"
+msgstr ""
+
+#: Mailman/Queue/CommandRunner.py:140
+msgid ""
+"\n"
+"- Unprocessed:"
+msgstr ""
+
+#: Mailman/Queue/CommandRunner.py:143
+msgid ""
+"\n"
+"- Ignored:"
+msgstr ""
+
+#: Mailman/Queue/CommandRunner.py:145
+msgid ""
+"\n"
+"- Done.\n"
+"\n"
+msgstr ""
+
+#: Mailman/Queue/CommandRunner.py:163
+msgid "The results of your email commands"
+msgstr ""
+
+#: Mailman/htmlformat.py:627
+msgid "Delivered by Mailman<br>version %(version)s"
+msgstr "Mailman ÀÌ ¹è´ÞÇÏ¿´½À´Ï´Ù.<br>¹öÀü %(version)s"
+
+#: Mailman/htmlformat.py:628
+msgid "Python Powered"
+msgstr "Python Powered"
+
+#: Mailman/htmlformat.py:629
+msgid "Gnu's Not Unix"
+msgstr "Gnu's Not Unux"
+
+#: Mailman/i18n.py:86
+#, fuzzy
+msgid "Mon"
+msgstr "¾øÀ½"
+
+#: Mailman/i18n.py:86
+msgid "Thu"
+msgstr ""
+
+#: Mailman/i18n.py:86
+msgid "Tue"
+msgstr ""
+
+#: Mailman/i18n.py:86
+msgid "Wed"
+msgstr ""
+
+#: Mailman/i18n.py:87
+msgid "Fri"
+msgstr ""
+
+#: Mailman/i18n.py:87
+#, fuzzy
+msgid "Sat"
+msgstr "¼³Á¤"
+
+#: Mailman/i18n.py:87
+msgid "Sun"
+msgstr ""
+
+#: Mailman/i18n.py:91
+#, fuzzy
+msgid "Apr"
+msgstr "½ÂÀÎÇϱâ"
+
+#: Mailman/i18n.py:91
+msgid "Feb"
+msgstr ""
+
+#: Mailman/i18n.py:91
+msgid "Jan"
+msgstr ""
+
+#: Mailman/i18n.py:91
+msgid "Jun"
+msgstr ""
+
+#: Mailman/i18n.py:91
+msgid "Mar"
+msgstr ""
+
+#: Mailman/i18n.py:92
+msgid "Aug"
+msgstr ""
+
+#: Mailman/i18n.py:92
+msgid "Dec"
+msgstr ""
+
+#: Mailman/i18n.py:92
+msgid "Jul"
+msgstr ""
+
+#: Mailman/i18n.py:92
+#, fuzzy
+msgid "Nov"
+msgstr "¾Æ´Ï¿ä"
+
+#: Mailman/i18n.py:92
+msgid "Oct"
+msgstr ""
+
+#: Mailman/i18n.py:92
+#, fuzzy
+msgid "Sep"
+msgstr "¼³Á¤"
+
+#: Mailman/i18n.py:95
+msgid "Server Local Time"
+msgstr ""
+
+#: Mailman/i18n.py:128
+msgid ""
+"%(wday)s %(mon)s %(day)2i %(hh)02i:%(mm)02i:%(ss)02i %(tzname)s %(year)04i"
+msgstr ""
+
+#: bin/add_members:26
+msgid ""
+"Add members to a list from the command line.\n"
+"\n"
+"Usage:\n"
+" add_members [options] listname\n"
+"\n"
+"Options:\n"
+"\n"
+" --regular-members-file=file\n"
+" -r file\n"
+" A file containing addresses of the members to be added, one\n"
+" address per line. This list of people become non-digest\n"
+" members. If file is `-', read addresses from stdin. Note that\n"
+" -n/--non-digest-members-file are deprecated synonyms for this "
+"option.\n"
+"\n"
+" --digest-members-file=file\n"
+" -d=file\n"
+" Similar to above, but these people become digest members.\n"
+"\n"
+" --changes-msg=<y|n>\n"
+" -c <y|n> \n"
+"\tSet whether or not to send the list members the `there's going to be\n"
+"\tbig changes to your list' message. defaults to no.\n"
+"\n"
+" --welcome-msg=<y|n>\n"
+" -w <y|n>\n"
+" Set whether or not to send the list members a welcome message,\n"
+" overriding whatever the list's `send_welcome_msg' setting is.\n"
+"\n"
+" --admin-notify=<y|n>\n"
+" -a <y|n>\n"
+" Set whether or not to send the list administrators a notification "
+"on\n"
+" the success/failure of these subscriptions, overriding whatever the\n"
+" list's `admin_notify_mchanges' setting is.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname\n"
+" The name of the Mailman list you are adding members to. It must\n"
+" already exist.\n"
+"\n"
+"You must supply at least one of -r and -d options. At most one of the\n"
+"files can be `-'.\n"
+msgstr ""
+
+#: bin/add_members:134
+msgid "Big change in %(listname)s@%(listhost)s mailing list"
+msgstr ""
+
+#: bin/add_members:167
+msgid "Already a member: %(member)s"
+msgstr ""
+
+#: bin/add_members:170
+msgid "Bad/Invalid email address: blank line"
+msgstr ""
+
+#: bin/add_members:172
+msgid "Bad/Invalid email address: %(member)s"
+msgstr ""
+
+#: bin/add_members:174
+msgid "Hostile address (illegal characters): %(member)s"
+msgstr ""
+
+#: bin/add_members:176
+msgid "Subscribed: %(member)s"
+msgstr ""
+
+#: bin/add_members:223
+msgid "Bad argument to -c/--changes-msg: %(arg)s"
+msgstr ""
+
+#: bin/add_members:230
+msgid "Bad argument to -w/--welcome-msg: %(arg)s"
+msgstr ""
+
+#: bin/add_members:237
+msgid "Bad argument to -a/--admin-notify: %(arg)s"
+msgstr ""
+
+#: bin/add_members:243
+msgid "Cannot read both digest and normal members from standard input."
+msgstr ""
+
+#: bin/add_members:249 bin/config_list:105 bin/find_member:97 bin/inject:90
+#: bin/list_admins:89 bin/list_members:187 bin/sync_members:222
+#: cron/bumpdigests:86
+msgid "No such list: %(listname)s"
+msgstr ""
+
+#: bin/add_members:269 bin/change_pw:158 bin/check_db:114 bin/sync_members:244
+#: cron/bumpdigests:78
+msgid "Nothing to do."
+msgstr ""
+
+#: bin/arch:19
+msgid ""
+"Rebuild a list's archive.\n"
+"\n"
+"Use this command to rebuild the archives for a mailing list. You may want "
+"to\n"
+"do this if you edit some messages in an archive, or remove some messages "
+"from\n"
+"an archive.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] <listname> [<mbox>]\n"
+"\n"
+"Where options are:\n"
+" -h / --help\n"
+" Print this help message and exit.\n"
+"\n"
+" -q / --quiet\n"
+" Make the archiver output less verbose.\n"
+"\n"
+" --wipe\n"
+" First wipe out the original archive before regenerating. You "
+"usually\n"
+" want to specify this argument unless you're generating the archive "
+"in\n"
+" chunks.\n"
+"\n"
+" -s N\n"
+" --start=N\n"
+" Start indexing at article N, where article 0 is the first in the "
+"mbox.\n"
+" Defaults to 0.\n"
+"\n"
+" -e M\n"
+" --end=M\n"
+" End indexing at article M. This script is not very efficient with\n"
+" respect to memory management, and for large archives, it may not be\n"
+" possible to index the mbox entirely. For that reason, you can "
+"specify\n"
+" the start and end article numbers.\n"
+"\n"
+"Where <mbox> is the path to a list's complete mbox archive. Usually this "
+"will\n"
+"be some path in the archives/private directory. For example:\n"
+"\n"
+"%% bin/arch mylist archives/private/mylist.mbox/mylist.mbox\n"
+"\n"
+"<mbox> is optional. If it is missing, it is calculated.\n"
+msgstr ""
+
+#: bin/arch:125
+msgid "listname is required"
+msgstr ""
+
+#: bin/arch:143 bin/change_pw:106 bin/config_list:242
+msgid ""
+"No such list \"%(listname)s\"\n"
+"%(e)s"
+msgstr ""
+
+#: bin/arch:170
+msgid "Cannot open mbox file %(mbox)s: %(msg)s"
+msgstr ""
+
+#: bin/b4b5-archfix:19
+msgid ""
+"Fix the MM2.1b4 archives.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] file ...\n"
+"\n"
+"Where options are:\n"
+" -h / --help\n"
+" Print this help message and exit.\n"
+"\n"
+"Only use this to `fix' some archive database files that may have gotten\n"
+"written in Mailman 2.1b4 with some bogus data. Use like this from your\n"
+"$PREFIX directory\n"
+"\n"
+"%% %(PROGRAM)s `grep -l _mlist archives/private/*/database/*-article`\n"
+"\n"
+"(note the backquotes are required)\n"
+"\n"
+"You will need to run `bin/check_perms -f' after running this script.\n"
+msgstr ""
+
+#: bin/change_pw:19
+msgid ""
+"Change a list's password.\n"
+"\n"
+"Prior to Mailman 2.1, list passwords were kept in crypt'd format -- "
+"usually.\n"
+"Some Python installations didn't have the crypt module available, so they'd\n"
+"fall back to md5. Then suddenly the Python installation might grow a crypt\n"
+"module and all list passwords would be broken.\n"
+"\n"
+"In Mailman 2.1, all list and site passwords are stored in SHA1 hexdigest\n"
+"form. This breaks list passwords for all existing pre-Mailman 2.1 lists, "
+"and\n"
+"since those passwords aren't stored anywhere in plain text, they cannot be\n"
+"retrieved and updated.\n"
+"\n"
+"Thus, this script generates new passwords for a list, and optionally sends "
+"it\n"
+"to all the owners of the list.\n"
+"\n"
+"Usage: change_pw [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" --all / -a\n"
+" Change the password for all lists.\n"
+"\n"
+" --domain=domain\n"
+" -d domain\n"
+" Change the password for all lists in the virtual domain `domain'. "
+"It\n"
+" is okay to give multiple -d options.\n"
+"\n"
+" --listname=listname\n"
+" -l listname\n"
+" Change the password only for the named list. It is okay to give\n"
+" multiple -l options.\n"
+"\n"
+" --password=newpassword\n"
+" -p newpassword\n"
+" Use the supplied plain text password `newpassword' as the new "
+"password\n"
+" for any lists that are being changed (as specified by the -a, -d, "
+"and\n"
+" -l options). If not given, lists will be assigned a randomly\n"
+" generated new password.\n"
+"\n"
+" --quiet / -q\n"
+" Don't notify list owners of the new password. You'll have to have\n"
+" some other way of letting the list owners know the new password\n"
+" (presumably out-of-band).\n"
+"\n"
+" --help / -h\n"
+" Print this help message and exit.\n"
+msgstr ""
+
+#: bin/change_pw:144
+msgid "Bad arguments: %(strargs)s"
+msgstr ""
+
+#: bin/change_pw:148
+msgid "Empty list passwords are not allowed"
+msgstr ""
+
+#: bin/change_pw:179
+msgid "New %(listname)s password: %(notifypassword)s"
+msgstr ""
+
+#: bin/change_pw:188
+msgid "Your new %(listname)s list password"
+msgstr ""
+
+#: bin/change_pw:189
+msgid ""
+"The site administrator at %(hostname)s has changed the password for your\n"
+"mailing list %(listname)s. It is now\n"
+"\n"
+" %(notifypassword)s\n"
+"\n"
+"Please be sure to use this for all future list administration. You may "
+"want\n"
+"to log in now to your list and change the password to something more to "
+"your\n"
+"liking. Visit your list admin page at\n"
+"\n"
+" %(adminurl)s\n"
+msgstr ""
+
+#: bin/check_db:19
+msgid ""
+"Check a list's config database file for integrity.\n"
+"\n"
+"All of the following files are checked:\n"
+"\n"
+" config.pck\n"
+" config.pck.last\n"
+" config.db\n"
+" config.db.last\n"
+" config.safety\n"
+"\n"
+"It's okay if any of these are missing. config.pck and config.pck.last are\n"
+"pickled versions of the config database file for 2.1a3 and beyond. config."
+"db\n"
+"and config.db.last are used in all earlier versions, and these are Python\n"
+"marshals. config.safety is a pickle written by 2.1a3 and beyond when the\n"
+"primary config.pck file could not be read.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname [listname ...]]\n"
+"\n"
+"Options:\n"
+"\n"
+" --all / -a\n"
+" Check the databases for all lists. Otherwise only the lists named "
+"on\n"
+" the command line are checked.\n"
+"\n"
+" --verbose / -v\n"
+" Verbose output. The state of every tested file is printed.\n"
+" Otherwise only corrupt files are displayed.\n"
+"\n"
+" --help / -h\n"
+" Print this text and exit.\n"
+msgstr ""
+
+#: bin/check_db:119
+msgid "No list named:"
+msgstr ""
+
+#: bin/check_db:128
+msgid "List:"
+msgstr ""
+
+#: bin/check_db:148
+msgid " %(file)s: okay"
+msgstr ""
+
+#: bin/check_perms:19
+msgid ""
+"Check the permissions for the Mailman installation.\n"
+"\n"
+"Usage: %(PROGRAM)s [-f] [-v] [-h]\n"
+"\n"
+"With no arguments, just check and report all the files that have bogus\n"
+"permissions or group ownership. With -f (and run as root), fix all the\n"
+"permission problems found. With -v be verbose.\n"
+"\n"
+msgstr ""
+
+#: bin/check_perms:85
+msgid " checking gid and mode for %(path)s"
+msgstr ""
+
+#: bin/check_perms:97
+msgid "%(path)s bad group (has: %(groupname)s, expected %(MAILMAN_GROUP)s)"
+msgstr ""
+
+#: bin/check_perms:120
+msgid "directory permissions must be %(octperms)s: %(path)s"
+msgstr ""
+
+#: bin/check_perms:129
+msgid "source perms must be %(octperms)s: %(path)s"
+msgstr ""
+
+#: bin/check_perms:140
+msgid "article db files must be %(octperms)s: %(path)s"
+msgstr ""
+
+#: bin/check_perms:152
+msgid "checking mode for %(prefix)s"
+msgstr ""
+
+#: bin/check_perms:160
+msgid "directory must be at least 02775: %(d)s"
+msgstr ""
+
+#: bin/check_perms:173
+msgid "checking perms on %(private)s"
+msgstr ""
+
+#: bin/check_perms:178
+msgid "%(private)s must not be other-readable"
+msgstr ""
+
+#: bin/check_perms:198
+msgid "mbox file must be at least 0660:"
+msgstr ""
+
+#: bin/check_perms:222
+msgid "%(dbdir)s \"other\" perms must be 000"
+msgstr ""
+
+#: bin/check_perms:233
+msgid "checking cgi-bin permissions"
+msgstr ""
+
+#: bin/check_perms:238
+msgid " checking set-gid for %(path)s"
+msgstr ""
+
+#: bin/check_perms:242
+msgid "%(path)s must be set-gid"
+msgstr ""
+
+#: bin/check_perms:252
+msgid "checking set-gid for %(wrapper)s"
+msgstr ""
+
+#: bin/check_perms:256
+msgid "%(wrapper)s must be set-gid"
+msgstr ""
+
+#: bin/check_perms:266
+msgid "checking permissions on %(pwfile)s"
+msgstr ""
+
+#: bin/check_perms:275
+msgid "%(pwfile)s permissions must be exactly 0640 (got %(octmode)s)"
+msgstr ""
+
+#: bin/check_perms:299
+msgid "checking permissions on list data"
+msgstr ""
+
+#: bin/check_perms:305
+msgid " checking permissions on: %(path)s"
+msgstr ""
+
+#: bin/check_perms:313
+msgid "file permissions must be at least 660: %(path)s"
+msgstr ""
+
+#: bin/check_perms:359
+msgid "No problems found"
+msgstr ""
+
+#: bin/check_perms:361
+msgid "Problems found:"
+msgstr ""
+
+#: bin/check_perms:362
+msgid "Re-run as %(MAILMAN_USER)s (or root) with -f flag to fix"
+msgstr ""
+
+#: bin/cleanarch:19
+msgid ""
+"Clean up an .mbox archive file.\n"
+"\n"
+"The archiver looks for Unix-From lines separating messages in an mbox "
+"archive\n"
+"file. For compatibility, it specifically looks for lines that start with\n"
+"\"From \" -- i.e. the letters capital-F, lowercase-r, o, m, space, ignoring\n"
+"everything else on the line.\n"
+"\n"
+"Normally, any lines that start \"From \" in the body of a message should be\n"
+"escaped such that a > character is actually the first on a line. It is\n"
+"possible though that body lines are not actually escaped. This script\n"
+"attempts to fix these by doing a stricter test of the Unix-From lines. Any\n"
+"lines that start \"From \" but do not pass this stricter test are escaped "
+"with a\n"
+"> character.\n"
+"\n"
+"Usage: cleanarch [options] < inputfile > outputfile\n"
+"Options:\n"
+" -s n\n"
+" --status=n\n"
+" Print a # character every n lines processed\n"
+"\n"
+" -q / --quiet\n"
+" Don't print changed line information to standard error.\n"
+"\n"
+" -n / --dry-run\n"
+" Don't actually output anything.\n"
+"\n"
+" -h / --help\n"
+" Print this message and exit\n"
+msgstr ""
+
+#: bin/cleanarch:82
+msgid "Unix-From line changed: %(lineno)d"
+msgstr ""
+
+#: bin/cleanarch:110
+msgid "Bad status number: %(arg)s"
+msgstr ""
+
+#: bin/cleanarch:160
+msgid "%(messages)d messages found"
+msgstr ""
+
+#: bin/clone_member:19
+msgid ""
+"Clone a member address.\n"
+"\n"
+"Cloning a member address means that a new member will be added who has all "
+"the\n"
+"same options and passwords as the original member address. Note that this\n"
+"operation is fairly trusting of the user who runs it -- it does no\n"
+"verification to the new address, it does not send out a welcome message, "
+"etc.\n"
+"\n"
+"The existing member's subscription is usually not modified in any way. If "
+"you\n"
+"want to remove the old address, use the -r flag. If you also want to "
+"change\n"
+"any list admin addresses, use the -a flag.\n"
+"\n"
+"Usage:\n"
+" clone_member [options] fromoldaddr tonewaddr\n"
+"\n"
+"Where:\n"
+"\n"
+" --listname=listname\n"
+" -l listname\n"
+" Check and modify only the named mailing lists. If -l is not given,\n"
+" then all mailing lists are scanned from the address. Multiple -l\n"
+" options can be supplied.\n"
+"\n"
+" --remove\n"
+" -r\n"
+" Remove the old address from the mailing list after it's been "
+"cloned.\n"
+"\n"
+" --admin\n"
+" -a\n"
+" Scan the list admin addresses for the old address, and clone or "
+"change\n"
+" them too.\n"
+"\n"
+" --quiet\n"
+" -q\n"
+" Do the modifications quietly.\n"
+"\n"
+" --nomodify\n"
+" -n\n"
+" Print what would be done, but don't actually do it. Inhibits the\n"
+" --quiet flag.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" fromoldaddr (`from old address') is the old address of the user. "
+"tonewaddr\n"
+" (`to new address') is the new address of the user.\n"
+"\n"
+msgstr ""
+
+#: bin/clone_member:94
+msgid "processing mailing list:"
+msgstr ""
+
+#: bin/clone_member:101
+msgid " scanning list owners:"
+msgstr ""
+
+#: bin/clone_member:119
+msgid " new list owners:"
+msgstr ""
+
+#: bin/clone_member:121
+msgid "(no change)"
+msgstr ""
+
+#: bin/clone_member:130
+msgid " address not found:"
+msgstr ""
+
+#: bin/clone_member:139
+msgid " clone address added:"
+msgstr ""
+
+#: bin/clone_member:142
+msgid " clone address is already a member:"
+msgstr ""
+
+#: bin/clone_member:145
+msgid " original address removed:"
+msgstr ""
+
+#: bin/clone_member:196
+msgid "Not a valid email address: %(toaddr)s"
+msgstr ""
+
+#: bin/clone_member:209
+msgid ""
+"Error opening list \"%(listname)s\", skipping.\n"
+"%(e)s"
+msgstr ""
+
+#: bin/config_list:19
+msgid ""
+"Configure a list from a text file description.\n"
+"\n"
+"Usage: config_list [options] listname\n"
+"\n"
+"Options:\n"
+" --inputfile filename\n"
+" -i filename\n"
+" Configure the list by assigning each module-global variable in the\n"
+" file to an attribute on the list object, then saving the list. The\n"
+" named file is loaded with execfile() and must be legal Python code.\n"
+" Any variable that isn't already an attribute of the list object is\n"
+" ignored (a warning message is printed). See also the -c option.\n"
+"\n"
+" A special variable named `mlist' is put into the globals during the\n"
+" execfile, which is bound to the actual MailList object. This lets "
+"you\n"
+" do all manner of bizarre thing to the list object, but BEWARE! "
+"Using\n"
+" this can severely (and possibly irreparably) damage your mailing "
+"list!\n"
+"\n"
+" --outputfile filename\n"
+" -o filename\n"
+" Instead of configuring the list, print out a list's configuration\n"
+" variables in a format suitable for input using this script. In "
+"this\n"
+" way, you can easily capture the configuration settings for a\n"
+" particular list and imprint those settings on another list. "
+"filename\n"
+" is the file to output the settings to. If filename is `-', "
+"standard\n"
+" out is used.\n"
+"\n"
+" --checkonly\n"
+" -c\n"
+" With this option, the modified list is not actually changed. Only\n"
+" useful with -i.\n"
+"\n"
+" --verbose\n"
+" -v\n"
+" Print the name of each attribute as it is being changed. Only "
+"useful\n"
+" with -i.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+"The options -o and -i are mutually exclusive.\n"
+"\n"
+msgstr ""
+
+#: bin/config_list:109
+msgid ""
+"## \"%(listname)s\" mailing list configuration settings -*- python -*-\n"
+"## captured on %(when)s\n"
+msgstr ""
+
+#: bin/config_list:131
+msgid "options"
+msgstr ""
+
+#: bin/config_list:188
+msgid "legal values are:"
+msgstr ""
+
+#: bin/config_list:255
+msgid "attribute \"%(k)s\" ignored"
+msgstr ""
+
+#: bin/config_list:258
+msgid "attribute \"%(k)s\" changed"
+msgstr ""
+
+#: bin/config_list:264
+msgid "Non-standard property restored: %(k)s"
+msgstr ""
+
+#: bin/config_list:272
+#, fuzzy
+msgid "Invalid value for property: %(k)s"
+msgstr "À߸øµÈ °ªÀº º¯¼ö°ª : %(property)s"
+
+#: bin/config_list:274
+#, fuzzy
+msgid "Bad email address for option %(k)s: %(v)s"
+msgstr "%(property)s ¿É¼ÇÀ» À§ÇÑ À߸øµÈ E¸ÞÀÏ ÁÖ¼Ò : %(val)s"
+
+#: bin/config_list:322
+msgid "Only one of -i or -o is allowed"
+msgstr ""
+
+#: bin/config_list:324
+msgid "One of -i or -o is required"
+msgstr ""
+
+#: bin/config_list:328
+msgid "List name is required"
+msgstr ""
+
+#: bin/convert.py:19
+msgid ""
+"Convert a list's interpolation strings from %-strings to $-strings.\n"
+"\n"
+"This script is intended to be run as a bin/withlist script, i.e.\n"
+"\n"
+"% bin/withlist -l -r convert <mylist>\n"
+msgstr ""
+
+#: bin/convert.py:38 bin/fix_url.py:85
+#, fuzzy
+msgid "Saving list"
+msgstr "Ãß¹æ ¸ñ·Ï"
+
+#: bin/convert.py:44 bin/fix_url.py:51
+msgid "%%%"
+msgstr ""
+
+#: bin/dumpdb:19
+msgid ""
+"Dump the contents of any Mailman `database' file.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] filename\n"
+"\n"
+"Options:\n"
+"\n"
+" --marshal/-m\n"
+" Assume the file contains a Python marshal, overridding any "
+"automatic\n"
+" guessing.\n"
+"\n"
+" --pickle/-p\n"
+" Assume the file contains a Python pickle, overridding any automatic\n"
+" guessing.\n"
+"\n"
+" --noprint/-n\n"
+" Don't attempt to pretty print the object. This is useful if "
+"there's\n"
+" some problem with the object and you just want to get an unpickled\n"
+" representation. Useful with `python -i bin/dumpdb <file>'. In "
+"that\n"
+" case, the root of the tree will be left in a global called \"msg\".\n"
+"\n"
+" --help/-h\n"
+" Print this help message and exit\n"
+"\n"
+"If the filename ends with `.db', then it is assumed that the file contains "
+"a\n"
+"Python marshal. If the file ends with `.pck' then it is assumed to contain "
+"a\n"
+"Python pickle. In either case, if you want to override the default "
+"assumption\n"
+"-- or if the file ends in neither suffix -- use the -p or -m flags.\n"
+msgstr ""
+
+#: bin/dumpdb:101
+msgid "No filename given."
+msgstr ""
+
+#: bin/dumpdb:104
+msgid "Bad arguments: %(pargs)s"
+msgstr ""
+
+#: bin/dumpdb:114
+msgid "Please specify either -p or -m."
+msgstr ""
+
+#: bin/find_member:19
+msgid ""
+"Find all lists that a member's address is on.\n"
+"\n"
+"Usage:\n"
+" find_member [options] regex [regex [...]]\n"
+"\n"
+"Where:\n"
+" --listname=listname\n"
+" -l listname\n"
+" Include only the named list in the search.\n"
+"\n"
+" --exclude=listname\n"
+" -x listname\n"
+" Exclude the named list from the search.\n"
+"\n"
+" --owners\n"
+" -w\n"
+" Search list owners as well as members.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" regex\n"
+" A Python regular expression to match against.\n"
+"\n"
+"The interaction between -l and -x is as follows. If any -l option is given\n"
+"then only the named list will be included in the search. If any -x option "
+"is\n"
+"given but no -l option is given, then all lists will be search except those\n"
+"specifically excluded.\n"
+"\n"
+"Regular expression syntax is Perl5-like, using the Python re module. "
+"Complete\n"
+"specifications are at:\n"
+"\n"
+"http://www.python.org/doc/current/lib/module-re.html\n"
+"\n"
+"Address matches are case-insensitive, but case-preserved addresses are\n"
+"displayed.\n"
+"\n"
+msgstr ""
+
+#: bin/find_member:159
+msgid "Search regular expression required"
+msgstr ""
+
+#: bin/find_member:164
+msgid "No lists to search"
+msgstr ""
+
+#: bin/find_member:173
+msgid "found in:"
+msgstr ""
+
+#: bin/find_member:179
+msgid "(as owner)"
+msgstr ""
+
+#: bin/fix_url.py:19
+msgid ""
+"Reset a list's web_page_url attribute to the default setting.\n"
+"\n"
+"This script is intended to be run as a bin/withlist script, i.e.\n"
+"\n"
+"% bin/withlist -l -r fix_url listname [options]\n"
+"\n"
+"Options:\n"
+" -u urlhost\n"
+" --urlhost=urlhost\n"
+" Look up urlhost in the virtual host table and set the web_page_url "
+"and\n"
+" host_name attributes of the list to the values found. This\n"
+" essentially moves the list from one virtual domain to another.\n"
+"\n"
+" Without this option, the default web_page_url and host_name values "
+"are\n"
+" used.\n"
+"\n"
+" -v / --verbose\n"
+" Print what the script is doing.\n"
+"\n"
+"If run standalone, it prints this help text and exits.\n"
+msgstr ""
+
+#: bin/fix_url.py:80
+msgid "Setting web_page_url to: %(web_page_url)s"
+msgstr ""
+
+#: bin/fix_url.py:83
+msgid "Setting host_name to: %(mailhost)s"
+msgstr ""
+
+#: bin/genaliases:19
+msgid ""
+"Regenerate Postfix's data/aliases and data/aliases.db files from scratch.\n"
+"\n"
+"Usage:\n"
+"\n"
+" genaliases [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+msgstr ""
+
+#: bin/inject:19
+msgid ""
+"Inject a message from a file into Mailman's incoming queue.\n"
+"\n"
+"Usage: inject [options] [filename]\n"
+"\n"
+"Options:\n"
+"\n"
+" -h / --help\n"
+" Print this text and exit.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" The name of the list to inject this message to. Required.\n"
+"\n"
+" -q queuename\n"
+" --queue=queuename\n"
+" The name of the queue to inject the message to. The queuename must "
+"be\n"
+" one of the directories inside the qfiles directory. If omitted, "
+"the\n"
+" incoming queue is used.\n"
+"\n"
+"filename is the name of the plaintext message file to inject. If omitted,\n"
+"standard input is used.\n"
+msgstr ""
+
+#: bin/inject:83
+msgid "Bad queue directory: %(qdir)s"
+msgstr ""
+
+#: bin/inject:88
+msgid "A list name is required"
+msgstr ""
+
+#: bin/list_admins:19
+msgid ""
+"List all the owners of a mailing list.\n"
+"\n"
+"Usage: %(program)s [options] listname ...\n"
+"\n"
+"Where:\n"
+"\n"
+" --all-vhost=vhost\n"
+" -v=vhost\n"
+" List the owners of all the mailing lists for the given virtual "
+"host.\n"
+"\n"
+" --all\n"
+" -a\n"
+" List the owners of all the mailing lists on this system.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+"`listname' is the name of the mailing list to print the owners of. You can\n"
+"have more than one named list on the command line.\n"
+msgstr ""
+
+#: bin/list_admins:96
+msgid "List: %(listname)s, \tOwners: %(owners)s"
+msgstr ""
+
+#: bin/list_lists:19
+msgid ""
+"List all mailing lists.\n"
+"\n"
+"Usage: %(program)s [options]\n"
+"\n"
+"Where:\n"
+"\n"
+" -a / --advertised\n"
+" List only those mailing lists that are publically advertised\n"
+"\n"
+" --virtual-host-overview=domain\n"
+" -V domain\n"
+" List only those mailing lists that are homed to the given virtual\n"
+" domain. This only works if the VIRTUAL_HOST_OVERVIEW variable is\n"
+" set.\n"
+"\n"
+" -b / --bare\n"
+" Displays only the list name, with no description.\n"
+"\n"
+" -h / --help\n"
+" Print this text and exit.\n"
+"\n"
+msgstr ""
+
+#: bin/list_lists:105
+msgid "No matching mailing lists found"
+msgstr ""
+
+#: bin/list_lists:109
+msgid "matching mailing lists found:"
+msgstr ""
+
+#: bin/list_members:19
+msgid ""
+"List all the members of a mailing list.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] listname\n"
+"\n"
+"Where:\n"
+"\n"
+" --output file\n"
+" -o file\n"
+" Write output to specified file instead of standard out.\n"
+"\n"
+" --regular / -r\n"
+" Print just the regular (non-digest) members.\n"
+"\n"
+" --digest[=kind] / -d [kind]\n"
+" Print just the digest members. Optional argument can be \"mime\" "
+"or\n"
+" \"plain\" which prints just the digest members receiving that kind "
+"of\n"
+" digest.\n"
+"\n"
+" --nomail[=why] / -n [why]\n"
+" Print the members that have delivery disabled. Optional argument "
+"can\n"
+" be \"byadmin\", \"byuser\", \"bybounce\", or \"unknown\" which "
+"prints just the\n"
+" users who have delivery disabled for that reason. It can also be\n"
+" \"enabled\" which prints just those member for whom delivery is\n"
+" enabled.\n"
+"\n"
+" --fullnames / -f\n"
+" Include the full names in the output.\n"
+"\n"
+" --preserve\n"
+" -p\n"
+" Output member addresses case preserved the way they were added to "
+"the\n"
+" list. Otherwise, addresses are printed in all lowercase.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname is the name of the mailing list to use.\n"
+"\n"
+"Note that if neither -r or -d is supplied, both regular members are printed\n"
+"first, followed by digest members, but no indication is given as to address\n"
+"status.\n"
+msgstr ""
+
+#: bin/list_members:150
+msgid "Bad --nomail option: %(why)s"
+msgstr ""
+
+#: bin/list_members:161
+msgid "Bad --digest option: %(kind)s"
+msgstr ""
+
+#: bin/list_members:179
+msgid "Could not open file for writing:"
+msgstr ""
+
+#: bin/list_owners:19
+msgid ""
+"List the owners of a mailing list, or all mailing lists.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname ...]\n"
+"Options:\n"
+"\n"
+" -w / --with-listnames\n"
+" Group the owners by list names and include the list names in the\n"
+" output. Otherwise, the owners will be sorted and uniquified based "
+"on\n"
+" the email address.\n"
+"\n"
+" -m / --moderators\n"
+" Include the list moderators in the output.\n"
+"\n"
+" -h / --help\n"
+" Print this help message and exit.\n"
+"\n"
+" listname\n"
+" Print the owners of the specified lists. More than one can appear\n"
+" after the options. If there are no listnames provided, the owners "
+"of\n"
+" all the lists will be displayed.\n"
+msgstr ""
+
+#: bin/mailmanctl:19
+msgid ""
+"Primary start-up and shutdown script for Mailman's qrunner daemon.\n"
+"\n"
+"This script starts, stops, and restarts the main Mailman queue runners, "
+"making\n"
+"sure that the various long-running qrunners are still alive and kicking. "
+"It\n"
+"does this by forking and exec'ing the qrunners and waiting on their pids.\n"
+"When it detects a subprocess has exited, it may restart it.\n"
+"\n"
+"The qrunners respond to SIGINT, SIGTERM, and SIGHUP. SIGINT and SIGTERM "
+"both\n"
+"cause the qrunners to exit cleanly, but the master will only restart "
+"qrunners\n"
+"that have exited due to a SIGINT. SIGHUP causes the master and the "
+"qrunners\n"
+"to close their log files, and reopen then upon the next printed message.\n"
+"\n"
+"The master also responds to SIGINT, SIGTERM, and SIGHUP, which it simply\n"
+"passes on to the qrunners (note that the master will close and reopen its "
+"own\n"
+"log files on receipt of a SIGHUP). The master also leaves its own process "
+"id\n"
+"in the file data/master-qrunner.pid but you normally don't need to use this\n"
+"pid directly. The `start', `stop', `restart', and `reopen' commands handle\n"
+"everything for you.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [ start | stop | restart | reopen ]\n"
+"\n"
+"Options:\n"
+"\n"
+" -n/--no-restart\n"
+" Don't restart the qrunners when they exit because of an error or a\n"
+" SIGINT. They are never restarted if they exit in response to a\n"
+" SIGTERM. Use this only for debugging. Only useful if the `start'\n"
+" command is given.\n"
+"\n"
+" -u/--run-as-user\n"
+" Normally, this script will refuse to run if the user id and group "
+"id\n"
+" are not set to the `mailman' user and group (as defined when you\n"
+" configured Mailman). If run as root, this script will change to "
+"this\n"
+" user and group before the check is made.\n"
+"\n"
+" This can be inconvenient for testing and debugging purposes, so the -"
+"u\n"
+" flag means that the step that sets and checks the uid/gid is "
+"skipped,\n"
+" and the program is run as the current user and group. This flag is\n"
+" not recommended for normal production environments.\n"
+"\n"
+" Note though, that if you run with -u and are not in the mailman "
+"group,\n"
+" you may have permission problems, such as begin unable to delete a\n"
+" list's archives through the web. Tough luck!\n"
+"\n"
+" -s/--stale-lock-cleanup\n"
+" If mailmanctl finds an existing master lock, it will normally exit\n"
+" with an error message. With this option, mailmanctl will perform "
+"an\n"
+" extra level of checking. If a process matching the host/pid "
+"described\n"
+" in the lock file is running, mailmanctl will still exit, but if no\n"
+" matching process is found, mailmanctl will remove the apparently "
+"stale\n"
+" lock and make another attempt to claim the master lock.\n"
+"\n"
+" -q/--quiet\n"
+" Don't print status messages. Error messages are still printed to\n"
+" standard error.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+"\n"
+"Commands:\n"
+"\n"
+" start - Start the master daemon and all qrunners. Prints a message "
+"and\n"
+" exits if the master daemon is already running.\n"
+"\n"
+" stop - Stops the master daemon and all qrunners. After stopping, no\n"
+" more messages will be processed.\n"
+"\n"
+" restart - Restarts the qrunners, but not the master process. Use this\n"
+" whenever you upgrade or update Mailman so that the qrunners "
+"will\n"
+" use the newly installed code.\n"
+"\n"
+" reopen - This will close all log files, causing them to be re-opened "
+"the\n"
+" next time a message is written to them\n"
+msgstr ""
+
+#: bin/mailmanctl:149
+msgid "PID unreadable in: %(pidfile)s"
+msgstr ""
+
+#: bin/mailmanctl:151
+msgid "Is qrunner even running?"
+msgstr ""
+
+#: bin/mailmanctl:157
+msgid "No child with pid: %(pid)s"
+msgstr ""
+
+#: bin/mailmanctl:159
+msgid "Stale pid file removed."
+msgstr ""
+
+#: bin/mailmanctl:217
+msgid ""
+"The master qrunner lock could not be acquired because it appears as if "
+"another\n"
+"master qrunner is already running.\n"
+msgstr ""
+
+#: bin/mailmanctl:223
+msgid ""
+"The master qrunner lock could not be acquired. It appears as though there "
+"is\n"
+"a stale master qrunner lock. Try re-running mailmanctl with the -s flag.\n"
+msgstr ""
+
+#: bin/mailmanctl:229
+msgid ""
+"The master qrunner lock could not be acquired, because it appears as if "
+"some\n"
+"process on some other host may have acquired it. We can't test for stale\n"
+"locks across host boundaries, so you'll have to do this manually. Or, if "
+"you\n"
+"know the lock is stale, re-run mailmanctl with the -s flag.\n"
+"\n"
+"Lock file: %(LOCKFILE)s\n"
+"Lock host: %(status)s\n"
+"\n"
+"Exiting."
+msgstr ""
+
+#: bin/mailmanctl:282
+msgid "Run this program as root or as the %(name)s user, or use -u."
+msgstr ""
+
+#: bin/mailmanctl:313
+#, fuzzy
+msgid "No command given."
+msgstr "ÀÌÀ¯°¡ ¾ø½À´Ï´Ù."
+
+#: bin/mailmanctl:316
+msgid "Bad command: %(command)s"
+msgstr ""
+
+#: bin/mailmanctl:321
+msgid "Warning! You may encounter permission problems."
+msgstr ""
+
+#: bin/mailmanctl:330
+msgid "Shutting down Mailman's master qrunner"
+msgstr ""
+
+#: bin/mailmanctl:337
+msgid "Restarting Mailman's master qrunner"
+msgstr ""
+
+#: bin/mailmanctl:341
+msgid "Re-opening all log files"
+msgstr ""
+
+#: bin/mailmanctl:375
+msgid "Starting Mailman's master qrunner."
+msgstr ""
+
+#: bin/mmsitepass:19
+msgid ""
+"Set the site password, prompting from the terminal.\n"
+"\n"
+"The site password can be used in most if not all places that the list\n"
+"administrator's password can be used, which in turn can be used in most "
+"places\n"
+"that a list users password can be used.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [password]\n"
+"\n"
+"Options:\n"
+"\n"
+" -c/--listcreator\n"
+" Set the list creator password instead of the site password. The "
+"list\n"
+" creator is authorized to create and remove lists, but does not have\n"
+" the total power of the site administrator.\n"
+"\n"
+" -h/--help\n"
+" Print this help message and exit.\n"
+"\n"
+"If password is not given on the command line, it will be prompted for.\n"
+msgstr ""
+
+#: bin/mmsitepass:73
+msgid "site"
+msgstr ""
+
+#: bin/mmsitepass:80
+msgid "list creator"
+msgstr ""
+
+#: bin/mmsitepass:86
+msgid "New %(pwdesc)s password: "
+msgstr ""
+
+#: bin/mmsitepass:87
+msgid "Again to confirm password: "
+msgstr ""
+
+#: bin/mmsitepass:89
+msgid "Passwords do not match; no changes made."
+msgstr ""
+
+#: bin/mmsitepass:92
+msgid "Interrupted..."
+msgstr ""
+
+#: bin/mmsitepass:98
+msgid "Password changed."
+msgstr ""
+
+#: bin/mmsitepass:100
+msgid "Password change failed."
+msgstr ""
+
+#: bin/newlist:19
+msgid ""
+"Create a new, unpopulated mailing list.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname [listadmin-addr [admin-password]]]\n"
+"\n"
+"Options:\n"
+"\n"
+" -l language\n"
+" --language language\n"
+" Make the list's preferred language `language', which must be a two\n"
+" letter language code.\n"
+"\n"
+" -q/--quiet\n"
+" Normally the administrator is notified by email (after a prompt) "
+"that\n"
+" their list has been created. This option suppresses the prompt and\n"
+" notification.\n"
+"\n"
+" -h/--help\n"
+" Print this help text and exit.\n"
+"\n"
+"You can specify as many of the arguments as you want on the command line:\n"
+"you will be prompted for the missing ones.\n"
+"\n"
+"Every Mailman list has two parameters which define the default host name "
+"for\n"
+"outgoing email, and the default URL for all web interfaces. When you\n"
+"configured Mailman, certain defaults were calculated, but if you are "
+"running\n"
+"multiple virtual Mailman sites, then the defaults may not be appropriate "
+"for\n"
+"the list you are creating.\n"
+"\n"
+"You can specify the domain to create your new list in by spelling the "
+"listname\n"
+"like so:\n"
+"\n"
+" mylist@www.mydom.ain\n"
+"\n"
+"where `www.mydom.ain' should be the base hostname for the URL to this "
+"virtual\n"
+"hosts's lists. E.g. with is setting people will view the general list\n"
+"overviews at http://www.mydom.ain/mailman/listinfo. Also, www.mydom.ain\n"
+"should be a key in the VIRTUAL_HOSTS mapping in mm_cfg.py/Defaults.py. It\n"
+"will be looked up to give the email hostname. If this can't be found, then\n"
+"www.mydom.ain will be used for both the web interface and the email\n"
+"interface.\n"
+"\n"
+"If you spell the list name as just `mylist', then the email hostname will "
+"be\n"
+"taken from DEFAULT_EMAIL_HOST and the url will be taken from DEFAULT_URL "
+"(as\n"
+"defined in your Defaults.py file or overridden by settings in mm_cfg.py).\n"
+"\n"
+"Note that listnames are forced to lowercase.\n"
+msgstr ""
+
+#: bin/newlist:118
+msgid "Unknown language: %(lang)s"
+msgstr "¾Ë¼ö¾ø´Â ¾ð¾î: %(lang)s"
+
+#: bin/newlist:123
+msgid "Enter the name of the list: "
+msgstr ""
+
+#: bin/newlist:140
+msgid "Enter the email of the person running the list: "
+msgstr ""
+
+#: bin/newlist:145
+msgid "Initial %(listname)s password: "
+msgstr ""
+
+#: bin/newlist:149
+msgid "The list password cannot be empty"
+msgstr ""
+
+#: bin/newlist:190
+msgid "Hit enter to notify %(listname)s owner..."
+msgstr ""
+
+#: bin/qrunner:19
+msgid ""
+"Run one or more qrunners, once or repeatedly.\n"
+"\n"
+"Each named runner class is run in round-robin fashion. In other words, the\n"
+"first named runner is run to consume all the files currently in its\n"
+"directory. When that qrunner is done, the next one is run to consume all "
+"the\n"
+"files in /its/ directory, and so on. The number of total iterations can be\n"
+"given on the command line.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" -r runner[:slice:range]\n"
+" --runner=runner[:slice:range]\n"
+" Run the named qrunner, which must be one of the strings returned by\n"
+" the -l option. Optional slice:range if given, is used to assign\n"
+" multiple qrunner processes to a queue. range is the total number "
+"of\n"
+" qrunners for this queue while slice is the number of this qrunner "
+"from\n"
+" [0..range).\n"
+"\n"
+" If using the slice:range form, you better make sure that each "
+"qrunner\n"
+" for the queue is given the same range value. If slice:runner is "
+"not\n"
+" given, then 1:1 is used.\n"
+"\n"
+" Multiple -r options may be given, in which case each qrunner will "
+"run\n"
+" once in round-robin fashion. The special runner `All' is shorthand\n"
+" for a qrunner for each listed by the -l option.\n"
+"\n"
+" --once\n"
+" -o\n"
+" Run each named qrunner exactly once through its main loop. "
+"Otherwise,\n"
+" each qrunner runs indefinitely, until the process receives a "
+"SIGTERM\n"
+" or SIGINT.\n"
+"\n"
+" -l/--list\n"
+" Shows the available qrunner names and exit.\n"
+"\n"
+" -v/--verbose\n"
+" Spit out more debugging information to the logs/qrunner log file.\n"
+"\n"
+" -s/--subproc\n"
+" This should only be used when running qrunner as a subprocess of "
+"the\n"
+" mailmanctl startup script. It changes some of the exit-on-error\n"
+" behavior to work better with that framework.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+"\n"
+"runner is required unless -l or -h is given, and it must be one of the "
+"names\n"
+"displayed by the -l switch.\n"
+msgstr ""
+
+#: bin/qrunner:176
+msgid "%(name)s runs the %(runnername)s qrunner"
+msgstr ""
+
+#: bin/qrunner:177
+msgid "All runs all the above qrunners"
+msgstr ""
+
+#: bin/qrunner:213
+msgid "No runner name given."
+msgstr ""
+
+#: bin/remove_members:19
+msgid ""
+"Remove members from a list.\n"
+"\n"
+"Usage:\n"
+" remove_members [options] [listname] [addr1 ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" --file=file\n"
+" -f file\n"
+" Remove member addresses found in the given file. If file is\n"
+" `-', read stdin.\n"
+"\n"
+" --all\n"
+" -a\n"
+" Remove all members of the mailing list.\n"
+" (mutually exclusive with --fromall)\n"
+"\n"
+" --fromall\n"
+" Removes the given addresses from all the lists on this system\n"
+" regardless of virtual domains if you have any. This option cannot "
+"be\n"
+" used -a/--all. Also, you should not specify a listname when using "
+"this\n"
+" option.\n"
+"\n"
+" --nouserack\n"
+" -n\n"
+" Don't send the user acknowledgements.\n"
+"\n"
+" --noadminack\n"
+" -N\n"
+" Don't send the admin acknowledgements.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname is the name of the mailing list to use.\n"
+"\n"
+" addr1 ... are additional addresses to remove.\n"
+"\n"
+msgstr ""
+
+#: bin/remove_members:147
+msgid "Could not open file for reading: %(filename)s."
+msgstr ""
+
+#: bin/remove_members:154
+msgid "Error opening list %(listname)s... skipping."
+msgstr ""
+
+#: bin/remove_members:164
+msgid "No such member: %(addr)s"
+msgstr ""
+
+#: bin/remove_members:171
+msgid "User `%(addr)s' removed from list: %(listname)s."
+msgstr ""
+
+#: bin/rmlist:19
+msgid ""
+"Remove the components of a mailing list with impunity - beware!\n"
+"\n"
+"This removes (almost) all traces of a mailing list. By default, the lists\n"
+"archives are not removed, which is very handy for retiring old lists.\n"
+"\n"
+"Usage:\n"
+" rmlist [-a] [-h] listname\n"
+"\n"
+"Where:\n"
+" --archives\n"
+" -a\n"
+" Remove the list's archives too, or if the list has already been\n"
+" deleted, remove any residual archives.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+msgstr ""
+
+#: bin/rmlist:66 bin/rmlist:69
+msgid "Removing %(msg)s"
+msgstr ""
+
+#: bin/rmlist:72
+msgid "%(listname)s %(msg)s not found as %(dir)s"
+msgstr ""
+
+#: bin/rmlist:96
+msgid "No such list (or list already deleted): %(listname)s"
+msgstr ""
+
+#: bin/rmlist:98
+msgid "No such list: %(listname)s. Removing its residual archives."
+msgstr ""
+
+#: bin/rmlist:102
+msgid "Not removing archives. Reinvoke with -a to remove them."
+msgstr ""
+
+#: bin/rmlist:116
+msgid "list info"
+msgstr ""
+
+#: bin/rmlist:122 bin/rmlist:124
+msgid "private archives"
+msgstr ""
+
+#: bin/rmlist:126 bin/rmlist:128
+msgid "public archives"
+msgstr ""
+
+#: bin/sync_members:19
+msgid ""
+"Synchronize a mailing list's membership with a flat file.\n"
+"\n"
+"This script is useful if you have a Mailman mailing list and a sendmail\n"
+":include: style list of addresses (also as is used in Majordomo). For "
+"every\n"
+"address in the file that does not appear in the mailing list, the address "
+"is\n"
+"added. For every address in the mailing list that does not appear in the\n"
+"file, the address is removed. Other options control what happens when an\n"
+"address is added or removed.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] -f file listname\n"
+"\n"
+"Where `options' are:\n"
+"\n"
+" --no-change\n"
+" -n\n"
+" Don't actually make the changes. Instead, print out what would be\n"
+" done to the list.\n"
+"\n"
+" --welcome-msg[=<yes|no>]\n"
+" -w[=<yes|no>]\n"
+" Sets whether or not to send the newly added members a welcome\n"
+" message, overriding whatever the list's `send_welcome_msg' setting\n"
+" is. With -w=yes or -w, the welcome message is sent. With -w=no, "
+"no\n"
+" message is sent.\n"
+"\n"
+" --goodbye-msg[=<yes|no>]\n"
+" -g[=<yes|no>]\n"
+" Sets whether or not to send the goodbye message to removed members,\n"
+" overriding whatever the list's `send_goodbye_msg' setting is. With\n"
+" -g=yes or -g, the goodbye message is sent. With -g=no, no message "
+"is\n"
+" sent.\n"
+"\n"
+" --digest[=<yes|no>]\n"
+" -d[=<yes|no>]\n"
+" Selects whether to make newly added members receive messages in\n"
+" digests. With -d=yes or -d, they become digest members. With -"
+"d=no\n"
+" (or if no -d option given) they are added as regular members.\n"
+"\n"
+" --notifyadmin[=<yes|no>]\n"
+" -a[=<yes|no>]\n"
+" Specifies whether the admin should be notified for each "
+"subscription\n"
+" or unsubscription. If you're adding a lot of addresses, you\n"
+" definitely want to turn this off! With -a=yes or -a, the admin is\n"
+" notified. With -a=no, the admin is not notified. With no -a "
+"option,\n"
+" the default for the list is used.\n"
+"\n"
+" --file <filename | ->\n"
+" -f <filename | ->\n"
+" This option is required. It specifies the flat file to synchronize\n"
+" against. Email addresses must appear one per line. If filename is\n"
+" `-' then stdin is used.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this message.\n"
+"\n"
+" listname\n"
+" Required. This specifies the list to synchronize.\n"
+msgstr ""
+
+#: bin/sync_members:115
+msgid "Bad choice: %(yesno)s"
+msgstr ""
+
+#: bin/sync_members:138
+msgid "Dry run mode"
+msgstr ""
+
+#: bin/sync_members:159
+msgid "Only one -f switch allowed"
+msgstr ""
+
+#: bin/sync_members:163
+msgid "No argument to -f given"
+msgstr ""
+
+#: bin/sync_members:172
+msgid "Illegal option: %(opt)s"
+msgstr ""
+
+#: bin/sync_members:178
+msgid "No listname given"
+msgstr ""
+
+#: bin/sync_members:182
+msgid "Must have a listname and a filename"
+msgstr ""
+
+#: bin/sync_members:191
+msgid "Cannot read address file: %(filename)s: %(msg)s"
+msgstr ""
+
+#: bin/sync_members:203
+msgid "Ignore : %(addr)30s"
+msgstr ""
+
+#: bin/sync_members:212
+msgid "Invalid : %(addr)30s"
+msgstr ""
+
+#: bin/sync_members:215
+msgid "You must fix the preceding invalid addresses first."
+msgstr ""
+
+#: bin/sync_members:259
+msgid "Added : %(s)s"
+msgstr ""
+
+#: bin/sync_members:278
+msgid "Removed: %(s)s"
+msgstr ""
+
+#: bin/transcheck:18
+msgid ""
+"\n"
+"Check a given Mailman translation, making sure that variables and\n"
+"tags referenced in translation are the same variables and tags in\n"
+"the original templates and catalog.\n"
+"\n"
+"Usage:\n"
+"\n"
+"cd $MAILMAN_DIR\n"
+"%(program)s [-q] <lang>\n"
+"\n"
+"Where <lang> is your country code (e.g. 'it' for Italy) and -q is\n"
+"to ask for a brief summary.\n"
+msgstr ""
+
+#: bin/transcheck:57
+msgid "check a translation comparing with the original string"
+msgstr ""
+
+#: bin/transcheck:64
+msgid "scan a string from the original file"
+msgstr ""
+
+#: bin/transcheck:72
+msgid "scan a translated string"
+msgstr ""
+
+#: bin/transcheck:83
+msgid "check for differences between checked in and checked out"
+msgstr ""
+
+#: bin/transcheck:116
+msgid "parse a .po file extracting msgids and msgstrs"
+msgstr ""
+
+#: bin/transcheck:135
+msgid ""
+"States table for the finite-states-machine parser:\n"
+" 0 idle\n"
+" 1 filename-or-comment\n"
+" 2 msgid\n"
+" 3 msgstr\n"
+" 4 end\n"
+" "
+msgstr ""
+
+#: bin/transcheck:272
+msgid ""
+"check a translated template against the original one\n"
+" search also <MM-*> tags if html is not zero"
+msgstr ""
+
+#: bin/transcheck:319
+msgid "scan the po file comparing msgids with msgstrs"
+msgstr ""
+
+#: bin/unshunt:19
+msgid ""
+"Move a message from the shunt queue to the original queue.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [directory]\n"
+"\n"
+"Where:\n"
+"\n"
+" -h / --help\n"
+" Print help and exit.\n"
+"\n"
+"Optional `directory' specifies a directory to dequeue from other than\n"
+"qfiles/shunt.\n"
+msgstr ""
+
+#: bin/unshunt:81
+msgid ""
+"Cannot unshunt message %(filebase)s, skipping:\n"
+"%(e)s"
+msgstr ""
+
+#: bin/update:19
+msgid ""
+"Perform all necessary upgrades.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -f/--force\n"
+" Force running the upgrade procedures. Normally, if the version "
+"number\n"
+" of the installed Mailman matches the current version number (or a\n"
+" `downgrade' is detected), nothing will be done.\n"
+"\n"
+" -h/--help\n"
+" Print this text and exit.\n"
+"\n"
+"Use this script to help you update to the latest release of Mailman from\n"
+"some previous version. It knows about versions back to 1.0b4 (?).\n"
+msgstr ""
+
+#: bin/update:102
+msgid "Fixing language templates: %(listname)s"
+msgstr ""
+
+#: bin/update:191 bin/update:466
+msgid "WARNING: could not acquire lock for list: %(listname)s"
+msgstr ""
+
+#: bin/update:210
+msgid "Resetting %(n)s BYBOUNCEs disabled addrs with no bounce info"
+msgstr ""
+
+#: bin/update:216
+msgid "Updating the held requests database."
+msgstr ""
+
+#: bin/update:238
+msgid ""
+"For some reason, %(mbox_dir)s exists as a file. This won't work with\n"
+"b6, so I'm renaming it to %(mbox_dir)s.tmp and proceeding."
+msgstr ""
+
+#: bin/update:250
+msgid ""
+"\n"
+"%(listname)s has both public and private mbox archives. Since this list\n"
+"currently uses private archiving, I'm installing the private mbox archive\n"
+"-- %(o_pri_mbox_file)s -- as the active archive, and renaming\n"
+" %(o_pub_mbox_file)s\n"
+"to\n"
+" %(o_pub_mbox_file)s.preb6\n"
+"\n"
+"You can integrate that into the archives if you want by using the 'arch'\n"
+"script.\n"
+msgstr ""
+
+#: bin/update:265
+msgid ""
+"%s has both public and private mbox archives. Since this list\n"
+"currently uses public archiving, I'm installing the public mbox file\n"
+"archive file (%s) as the active one, and renaming\n"
+" %s\n"
+" to\n"
+" %s.preb6\n"
+"\n"
+"You can integrate that into the archives if you want by using the 'arch'\n"
+"script.\n"
+msgstr ""
+
+#: bin/update:282
+msgid "- updating old private mbox file"
+msgstr ""
+
+#: bin/update:290
+msgid ""
+" unknown file in the way, moving\n"
+" %(o_pri_mbox_file)s\n"
+" to\n"
+" %(newname)s"
+msgstr ""
+
+#: bin/update:297 bin/update:320
+msgid ""
+" looks like you have a really recent CVS installation...\n"
+" you're either one brave soul, or you already ran me"
+msgstr ""
+
+#: bin/update:306
+msgid "- updating old public mbox file"
+msgstr ""
+
+#: bin/update:314
+msgid ""
+" unknown file in the way, moving\n"
+" %(o_pub_mbox_file)s\n"
+" to\n"
+" %(newname)s"
+msgstr ""
+
+#: bin/update:345
+msgid "- This list looks like it might have <= b4 list templates around"
+msgstr ""
+
+#: bin/update:352
+msgid "- moved %(o_tmpl)s to %(n_tmpl)s"
+msgstr ""
+
+#: bin/update:354
+msgid "- both %(o_tmpl)s and %(n_tmpl)s exist, leaving untouched"
+msgstr ""
+
+#: bin/update:384
+msgid "removing directory %(src)s and everything underneath"
+msgstr ""
+
+#: bin/update:387
+msgid "removing %(src)s"
+msgstr ""
+
+#: bin/update:391
+msgid "Warning: couldn't remove %(src)s -- %(rest)s"
+msgstr ""
+
+#: bin/update:396
+msgid "couldn't remove old file %(pyc)s -- %(rest)s"
+msgstr ""
+
+#: bin/update:400
+msgid "updating old qfiles"
+msgstr ""
+
+#: bin/update:422
+msgid "getting rid of old source files"
+msgstr ""
+
+#: bin/update:432
+msgid "no lists == nothing to do, exiting"
+msgstr ""
+
+#: bin/update:439
+msgid ""
+"fixing all the perms on your old html archives to work with b6\n"
+"If your archives are big, this could take a minute or two..."
+msgstr ""
+
+#: bin/update:444
+msgid "done"
+msgstr ""
+
+#: bin/update:446
+msgid "Updating mailing list: %(listname)s"
+msgstr ""
+
+#: bin/update:449
+msgid "Updating Usenet watermarks"
+msgstr ""
+
+#: bin/update:454
+msgid "- nothing to update here"
+msgstr ""
+
+#: bin/update:477
+msgid "- usenet watermarks updated and gate_watermarks removed"
+msgstr ""
+
+#: bin/update:487
+msgid "Updating old pending_subscriptions.db database"
+msgstr ""
+
+#: bin/update:504
+msgid ""
+"\n"
+"\n"
+"NOTE NOTE NOTE NOTE NOTE\n"
+"\n"
+" You are upgrading an existing Mailman installation, but I can't tell "
+"what\n"
+" version you were previously running.\n"
+"\n"
+" If you are upgrading from Mailman 1.0b9 or earlier you will need to\n"
+" manually update your mailing lists. For each mailing list you need to\n"
+" copy the file templates/options.html lists/<listname>/options.html.\n"
+"\n"
+" However, if you have edited this file via the Web interface, you will "
+"have\n"
+" to merge your changes into this file, otherwise you will lose your\n"
+" changes.\n"
+"\n"
+"NOTE NOTE NOTE NOTE NOTE\n"
+"\n"
+msgstr ""
+
+#: bin/update:561
+msgid "No updates are necessary."
+msgstr ""
+
+#: bin/update:564
+msgid ""
+"Downgrade detected, from version %(hexlversion)s to version %(hextversion)s\n"
+"This is probably not safe.\n"
+"Exiting."
+msgstr ""
+
+#: bin/update:569
+msgid "Upgrading from version %(hexlversion)s to %(hextversion)s"
+msgstr ""
+
+#: bin/update:578
+msgid ""
+"\n"
+"ERROR:\n"
+"\n"
+"The locks for some lists could not be acquired. This means that either\n"
+"Mailman was still active when you upgraded, or there were stale locks in "
+"the\n"
+"%(lockdir)s directory.\n"
+"\n"
+"You must put Mailman into a quiescent state and remove all stale locks, "
+"then\n"
+"re-run \"make update\" manually. See the INSTALL and UPGRADE files for "
+"details.\n"
+msgstr ""
+
+#: bin/version:19
+msgid "Print the Mailman version.\n"
+msgstr ""
+
+#: bin/version:26
+msgid "Using Mailman version:"
+msgstr ""
+
+#: bin/withlist:19
+msgid ""
+"General framework for interacting with a mailing list object.\n"
+"\n"
+"There are two ways to use this script: interactively or programmatically.\n"
+"Using it interactively allows you to play with, examine and modify a "
+"MailList\n"
+"object from Python's interactive interpreter. When running interactively, "
+"a\n"
+"MailList object called `m' will be available in the global namespace. It "
+"also\n"
+"loads the class MailList into the global namespace.\n"
+"\n"
+"Programmatically, you can write a function to operate on a MailList object,\n"
+"and this script will take care of the housekeeping (see below for "
+"examples).\n"
+"In that case, the general usage syntax is:\n"
+"\n"
+"%% bin/withlist [options] listname [args ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" -l / --lock\n"
+" Lock the list when opening. Normally the list is opened unlocked\n"
+" (e.g. for read-only operations). You can always lock the file "
+"after\n"
+" the fact by typing `m.Lock()'\n"
+"\n"
+" Note that if you use this option, you should explicitly call m.Save"
+"()\n"
+" before exiting, since the interpreter's clean up procedure will not\n"
+" automatically save changes to the MailList object (but it will "
+"unlock\n"
+" the list).\n"
+"\n"
+" -i / --interactive\n"
+" Leaves you at an interactive prompt after all other processing is\n"
+" complete. This is the default unless the -r option is given.\n"
+"\n"
+" --run [module.]callable\n"
+" -r [module.]callable\n"
+" This can be used to run a script with the opened MailList object.\n"
+" This works by attempting to import `module' (which must already be\n"
+" accessible on your sys.path), and then calling `callable' from the\n"
+" module. callable can be a class or function; it is called with the\n"
+" MailList object as the first argument. If additional args are "
+"given\n"
+" on the command line, they are passed as subsequent positional args "
+"to\n"
+" the callable.\n"
+"\n"
+" Note that `module.' is optional; if it is omitted then a module "
+"with\n"
+" the name `callable' will be imported.\n"
+"\n"
+" The global variable `r' will be set to the results of this call.\n"
+"\n"
+" --all / -a\n"
+" This option only works with the -r option. Use this if you want to\n"
+" execute the script on all mailing lists. When you use -a you "
+"should\n"
+" not include a listname argument on the command line. The variable "
+"`r'\n"
+" will be a list of all the results.\n"
+"\n"
+" --quiet / -q\n"
+" Suppress all status messages.\n"
+"\n"
+" --help / -h\n"
+" Print this message and exit\n"
+"\n"
+"\n"
+"Here's an example of how to use the -r option. Say you have a file in the\n"
+"Mailman installation directory called `listaddr.py', with the following\n"
+"two functions:\n"
+"\n"
+"def listaddr(mlist):\n"
+" print mlist.GetListEmail()\n"
+"\n"
+"def requestaddr(mlist):\n"
+" print mlist.GetRequestEmail()\n"
+"\n"
+"Now, from the command line you can print the list's posting address by "
+"running\n"
+"the following from the command line:\n"
+"\n"
+"%% bin/withlist -r listaddr mylist\n"
+"Loading list: mylist (unlocked)\n"
+"Importing listaddr ...\n"
+"Running listaddr.listaddr() ...\n"
+"mylist@myhost.com\n"
+"\n"
+"And you can print the list's request address by running:\n"
+"\n"
+"%% bin/withlist -r listaddr.requestaddr mylist\n"
+"Loading list: mylist (unlocked)\n"
+"Importing listaddr ...\n"
+"Running listaddr.requestaddr() ...\n"
+"mylist-request@myhost.com\n"
+"\n"
+"As another example, say you wanted to change the password for a particular\n"
+"user on a particular list. You could put the following function in a file\n"
+"called `changepw.py':\n"
+"\n"
+"from Mailman.Errors import NotAMember\n"
+"\n"
+"def changepw(mlist, addr, newpasswd):\n"
+" try:\n"
+" mlist.setMemberPassword(addr, newpasswd)\n"
+" mlist.Save()\n"
+" except NotAMember:\n"
+" print 'No address matched:', addr\n"
+"\n"
+"and run this from the command line:\n"
+"%% bin/withlist -l -r changepw mylist somebody@somewhere.org foobar\n"
+msgstr ""
+
+#: bin/withlist:151
+msgid ""
+"Unlock a locked list, but do not implicitly Save() it.\n"
+"\n"
+" This does not get run if the interpreter exits because of a signal, or "
+"if\n"
+" os._exit() is called. It will get called if an exception occurs "
+"though.\n"
+" "
+msgstr ""
+
+#: bin/withlist:162
+msgid "Unlocking (but not saving) list: %(listname)s"
+msgstr ""
+
+#: bin/withlist:166
+msgid "Finalizing"
+msgstr ""
+
+#: bin/withlist:175
+msgid "Loading list %(listname)s"
+msgstr ""
+
+#: bin/withlist:177
+msgid "(locked)"
+msgstr ""
+
+#: bin/withlist:179
+msgid "(unlocked)"
+msgstr ""
+
+#: bin/withlist:184
+msgid "Unknown list: %(listname)s"
+msgstr ""
+
+#: bin/withlist:223
+msgid "No list name supplied."
+msgstr ""
+
+#: bin/withlist:226
+msgid "--all requires --run"
+msgstr ""
+
+#: bin/withlist:246
+msgid "Importing %(module)s..."
+msgstr ""
+
+#: bin/withlist:249
+msgid "Running %(module)s.%(callable)s()..."
+msgstr ""
+
+#: bin/withlist:270
+msgid "The variable `m' is the %(listname)s MailList instance"
+msgstr ""
+
+#: cron/bumpdigests:19
+msgid ""
+"Increment the digest volume number and reset the digest number to one.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" --help/-h\n"
+" Print this message and exit.\n"
+"\n"
+"The lists named on the command line are bumped. If no list names are "
+"given,\n"
+"all lists are bumped.\n"
+msgstr ""
+
+#: cron/checkdbs:19
+msgid ""
+"Invoked by cron, this checks for pending moderation requests and mails the\n"
+"list moderators if necessary.\n"
+msgstr ""
+
+#: cron/checkdbs:81
+msgid "%(count)d %(realname)s moderator request(s) waiting"
+msgstr ""
+
+#: cron/checkdbs:100
+msgid "Pending subscriptions:"
+msgstr ""
+
+#: cron/checkdbs:109
+msgid ""
+"\n"
+"Pending posts:"
+msgstr ""
+
+#: cron/checkdbs:114
+msgid ""
+"From: %(sender)s on %(date)s\n"
+"Subject: %(subject)s\n"
+"Cause: %(reason)s"
+msgstr ""
+
+#: cron/disabled:19
+msgid ""
+"Process disabled members, recommended once per day.\n"
+"\n"
+"This script cruises through every mailing list looking for members whose\n"
+"delivery is disabled. If they have been disabled due to bounces, they will\n"
+"receive another notification, or they may be removed if they've received "
+"the\n"
+"maximum number of notifications.\n"
+"\n"
+"Use the --byadmin, --byuser, and --unknown flags to also send notifications "
+"to\n"
+"members whose accounts have been disabled for those reasons. Use --all to\n"
+"send the notification to all disabled members.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -h / --help\n"
+" Print this message and exit.\n"
+"\n"
+" -o / --byadmin\n"
+" Also send notifications to any member disabled by the list\n"
+" owner/administrator.\n"
+"\n"
+" -m / --byuser\n"
+" Also send notifications to any member disabled by themselves.\n"
+"\n"
+" -u / --unknown\n"
+" Also send notifications to any member disabled for unknown reasons\n"
+" (usually a legacy disabled address).\n"
+"\n"
+" -b / --notbybounce\n"
+" Don't send notifications to members disabled because of bounces "
+"(the\n"
+" default is to notify bounce disabled members).\n"
+"\n"
+" -a / --all\n"
+" Send notifications to all disabled members.\n"
+"\n"
+" -f / --force\n"
+" Send notifications to disabled members even if they're not due a "
+"new\n"
+" notification yet.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" Process only the given list, otherwise do all lists.\n"
+msgstr ""
+
+#: cron/disabled:143
+msgid "[disabled by periodic sweep and cull, no message available]"
+msgstr ""
+
+#: cron/gate_news:19
+msgid ""
+"Poll the NNTP servers for messages to be gatewayed to mailing lists.\n"
+"\n"
+"Usage: gate_news [options]\n"
+"\n"
+"Where options are\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this text and exit.\n"
+"\n"
+msgstr ""
+
+#: cron/mailpasswds:19
+msgid ""
+"Send password reminders for all lists to all users.\n"
+"\n"
+"This program scans all mailing lists and collects users and their "
+"passwords,\n"
+"grouped by the list's host_name if mm_cfg.VIRTUAL_HOST_OVERVIEW is true. "
+"Then\n"
+"one email message is sent to each unique user (per-virtual host) containing\n"
+"the list passwords and options url for the user. The password reminder "
+"comes\n"
+"from the mm_cfg.MAILMAN_SITE_LIST, which must exist.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -l listname\n"
+" --listname=listname\n"
+" Send password reminders for the named list only. If omitted,\n"
+" reminders are sent for all lists. Multiple -l/--listname options "
+"are\n"
+" allowed.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+msgstr ""
+
+#: cron/mailpasswds:111
+msgid "Site list is missing: %(sitelistname)s"
+msgstr ""
+
+#: cron/mailpasswds:179
+msgid "Password // URL"
+msgstr ""
+
+#: cron/mailpasswds:199
+msgid "%(host)s mailing list memberships reminder"
+msgstr ""
+
+#: cron/nightly_gzip:19
+msgid ""
+"Re-generate the Pipermail gzip'd archive flat files.\n"
+"\n"
+"This script should be run nightly from cron. When run from the command "
+"line,\n"
+"the following usage is understood:\n"
+"\n"
+"Usage: %(program)s [-v] [-h] [listnames]\n"
+"\n"
+"Where:\n"
+" --verbose\n"
+" -v\n"
+" print each file as it's being gzip'd\n"
+"\n"
+" --help\n"
+" -h\n"
+" print this message and exit\n"
+"\n"
+" listnames\n"
+" Optionally, only compress the .txt files for the named lists. "
+"Without \n"
+" this, all archivable lists are processed.\n"
+"\n"
+msgstr ""
+
+#: cron/senddigests:19
+msgid ""
+"Dispatch digests for lists w/pending messages and digest_send_periodic set.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -h / --help\n"
+" Print this message and exit.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" Send the digest for the given list only, otherwise the digests for "
+"all\n"
+" lists are sent out.\n"
+msgstr ""
+
+#, fuzzy
+#~ msgid "A confirmation email has been sent separately."
+#~ msgstr "È®ÀÎ E¸ÞÀÏÀÌ º¸³»Á³½À´Ï´Ù."
+
+#~ msgid "A removal confirmation message has been sent."
+#~ msgstr "Á¦°Å È®ÀÎ ¸Þ¼¼Áö¸¦ º¸³»µå·È½À´Ï´Ù."
+
+#~ msgid "non-digest header"
+#~ msgstr "°³º°¹è´Þ ¸Ó¸´¸»"
+
+#~ msgid "non-digest footer"
+#~ msgstr "°³º°¹è´Þ ²¿¸®¸»"
+
+#, fuzzy
+#~ msgid "Policies concerning concerning the content of list traffic."
+#~ msgstr ""
+#~ "ȸ¿øµé¿¡°Ô Áï°¢ÀûÀ¸·Î ¹è´ÞµÇ´Â ¸ÞÀϸµ ¸®½ºÆ®ÀÇ Æ®·¡ÇÈÀ» ¼³Á¤ÇÏ´Â ºÎºÐÀÔ´Ï"
+#~ "´Ù."
+
+#, fuzzy
+#~ msgid ""
+#~ "To finish creating your mailing list, you must edit your\n"
+#~ "/etc/aliases (or equivalent) file by adding the following lines:\n"
+#~ "\n"
+#~ "## %(listname)s mailing list\n"
+#~ "## created: %(date)s %(user)s\n"
+#~ "%(list)s \"|%(wrapper)s post %(listname)s\"\n"
+#~ "%(admin)s \"|%(wrapper)s mailowner %(listname)s\"\n"
+#~ "%(request)s \"|%(wrapper)s mailcmd %(listname)s\"\n"
+#~ "%(owner)s %(listname)s-admin\n"
+#~ msgstr ""
+#~ "\n"
+#~ "´ç½ÅÀÇ ¸ÞÀϸµ ¸®½ºÆ® »ý¼ºÀ» ¸¶Ä¡±â À§Çؼ­ ´ç½ÅÀº ´ÙÀ½ ÁÙµéÀ» /etc/aliases "
+#~ "(ȤÀº /etc/mail/aliases) ¿¡ Ãß°¡ÇϽðí `newaliases' ÇÁ·Î±×·¥À» ½ÇÇàÇÏ¿© ÁÖ"
+#~ "½Ê½Ã¿À:\n"
+#~ "## %(listname)s ¸ÞÀϸµ ¸®½ºÆ®"
+
+#, fuzzy
+#~ msgid ""
+#~ "To finish removing your mailing list, you must edit your\n"
+#~ "/etc/aliases (or equivalent) file by removing the following lines:\n"
+#~ "\n"
+#~ "%(list)s \"|%(wrapper)s post %(listname)s\"\n"
+#~ "%(admin)s \"|%(wrapper)s mailowner %(listname)s\"\n"
+#~ "%(request)s \"|%(wrapper)s mailcmd %(listname)s\"\n"
+#~ "%(owner)s %(listname)s-admin\n"
+#~ msgstr ""
+#~ "\n"
+#~ "´ç½ÅÀÇ ¸ÞÀϸµ ¸®½ºÆ® Á¦°ÅÀ» ¸¶Ä¡±â À§Çؼ­ ´ç½ÅÀº /etc/aliases (ȤÀº /etc/"
+#~ "mail/aliases) ¿¡¼­ ´ÙÀ½ÀÇ ÁÙÀ» Á¦°ÅÇϽðí `newaliases' ÇÁ·Î±×·¥À» ½ÇÇàÇÏ"
+#~ "¿© ÁֽʽÿÀ:\n"
+#~ "## %(listname)s ¸ÞÀϸµ ¸®½ºÆ®"
+
+#~ msgid "Post by a moderated member"
+#~ msgstr "±Û°ü¸®µÇ´Â ȸ¿øÀ¸·Î ¿Â ±Û"
+
+#~ msgid "Auto-response text to send to -admin and -owner emails."
+#~ msgstr "-admin°ú -owner ¸ÞÀÏÁÖ¼Ò·Î º¸³¾ ÀÚµ¿ÀÀ´ä ³»¿ë."
+
+#~ msgid "Get plain text digests (RFC 1153) rather than MIME digests"
+#~ msgstr "MIME Çü½Ä ¹­À½¹è´Þ º¸´Ù (RFC 1153) Æò¹® ¹­À½¹è´ÞÇϱâ"
+
+#~ msgid ""
+#~ "When turned on, your email address is concealed on the Web page\n"
+#~ "that lists the members of the mailing list."
+#~ msgstr ""
+#~ "¼³Á¤ÇßÀ»¶§, ´ç½ÅÀÇ E¸ÞÀÏ ÁÖ¼Ò´Â À¥»óÀÇ ¸ÞÀϸµ ¸®½ºÆ®ÀÇ È¸¿ø ¸ñ·ÏÀÌ ¼û°ÜÁý"
+#~ "´Ï´Ù."
+
+#~ msgid ""
+#~ "When turned on, delivery to your email address is disabled, but\n"
+#~ "your address is still subscribed. This is useful if you plan on taking "
+#~ "a\n"
+#~ "short vacation."
+#~ msgstr ""
+#~ "¼³Á¤ÇßÀ»¶§, ´ç½ÅÀÇ E¸ÞÀÏ ÁÖ¼Ò´Â ±ÝÁöµË´Ï´Ù. ÇÏÁö¸¸ ´ç½ÅÀÇ ÁÖ¼Ò´Â ¿©ÀüÈ÷ °¡"
+#~ "ÀԵǾî ÀÖ½À´Ï´Ù. À̰ÍÀº ¿©·¯ºÐÀÌ ÂªÀº ¹æÇÐÀ» °¡Áö°Ô µÈ´Ù¸é À¯¿ëÇÒ °ÍÀÔ´Ï"
+#~ "´Ù."
+
+#~ msgid ""
+#~ "When turned on, you get a separate acknowledgement email when you\n"
+#~ "post messages to the list."
+#~ msgstr ""
+#~ "¼³Á¤ÇßÀ»¶§ ´ç½ÅÀÌ ¸®½ºÆ®¿¡ ±ÛÀ» º¸³¾ ¶§ ÀÀ´ä ¸ÞÀÏÀ» ¹Þ°Ô µÉ °ÍÀÔ´Ï´Ù."
+
+#~ msgid ""
+#~ "When turned on, you do *not* get copies of your own posts to\n"
+#~ "the list. Otherwise, you do get copies of your own posts (yes, this "
+#~ "seems a\n"
+#~ "little backwards). This does not affect the contents of digests, so if "
+#~ "you\n"
+#~ "receive postings in digests, you will always get copies of your messages "
+#~ "in\n"
+#~ "the digest."
+#~ msgstr ""
+#~ "¼³Á¤ÇßÀ» ¶§, ´ç½ÅÀº ¸®½ºÆ®¿¡ º¸³½ ÀÚ½ÅÀÇ ±Û º¹»çº»À» ¹ÞÁö ¾Ê°Ô µË´Ï´Ù. ±×"
+#~ "·¸Áö ¾ÊÀ¸¸é ´ç½ÅÀº ÀÚ½ÅÀÇ ±ÛÀ» ¹Þ°Ô µË´Ï´Ù.(³× À̰ÍÀº Á¶±Ý ¹®Á¦°¡ ÀÖ½À´Ï"
+#~ "´Ù.) À̰ÍÀº ¹­À½¹è´ÞÀÇ ³»¿ë¿¡ ¿µÇâÀ» ¹ÌÄ¡Áö ¾ÊÀ¸¸é ¸¸¾à ´ç½ÅÀÌ ¹­À½¹è´Þ·Î "
+#~ "±ÛÀ» ¹Þ´Â´Ù¸é ¹­À½¹è´Þ·Î ¾ðÁ¦³ª ÀÚ½ÅÀÇ ±ÛÀ» º¸½Ç ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. "
+
+#~ msgid ""
+#~ "When turned on, you get postings from the list bundled into\n"
+#~ "digests. Otherwise, you get each individual message immediately as it "
+#~ "is\n"
+#~ "posted to the list."
+#~ msgstr ""
+#~ "¼³Á¤ÇßÀ»¶§, ´ç½ÅÀº ¹­À½¹è´Þ·Î ±ÛÀ» º¼ ¼ö ÀÖ½À´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é ´ç½ÅÀº ±Û"
+#~ "ÀÌ º¸³»Áú ¶§ ¸¶´Ù Áï°¢ °³¹ß ¸Þ¼¼Áö¸¦ ¹ÞÀ» °ÍÀÔ´Ï´Ù."
+
+#~ msgid ""
+#~ "When turned on, you get `plain' digests, which are actually\n"
+#~ "formatted using the RFC1154 digest format. This format can be easier to "
+#~ "read\n"
+#~ "if you have a non-MIME compliant mail reader. When this option is turned "
+#~ "off,\n"
+#~ "you get digests in MIME format, which are much better if you have a mail\n"
+#~ "reader that supports MIME."
+#~ msgstr ""
+#~ "¼³Á¤ÇßÀ»¶§, ´ç½ÅÀº RFC1154 ¹­À½ ¹è´Þ Çü½ÄÀ» »ç¿ëÇÑ `Æò¹®' ¹­À½ ¹è´ÞÀ» ¹ÞÀ¸"
+#~ "½Ç ¼ö ÀÖ½À´Ï´Ù. ÀÌ Çü½ÄÀº MIME À» Áö¿øÇÏÁö ¾Ê´Â ÇÁ·Î±×·¥À» »ç¿ëÇÑ´Ù¸é ÀдÂ"
+#~ "µ¥ °¡µ¶¼ºÀÌ ÀÖÀ» °ÍÀÔ´Ï´Ù. ÀÌ ¼³Á¤ÀÌ ¼³Á¤µÇ¾î ÀÖÁö ¾Ê´Ù¸é ´ç½ÅÀº MIME Çü½Ä"
+#~ "À» Áö¿øÇÏ´Â ¸ÞÀÏ ÇÁ·Î±×·¥¿¡ ¸Â´Â MIME Æ÷¸ËÀÇ ¹­À½¹è´ÞÀ» ¹ÞÀ¸½Ç ¼ö ÀÖ½À´Ï"
+#~ "´Ù. "
+
+#~ msgid ""
+#~ "When turned on, you do *not* receive list copies of message\n"
+#~ "which have you as an explicit recipient (i.e. if you're both a member of "
+#~ "the\n"
+#~ "list and in either the To: or Cc: headers)."
+#~ msgstr ""
+#~ "¼³Á¤ÇßÀ»¶§ ´ç½ÅÀº ÂüÁ¶ÀÚ¿¡ ´ç½ÅÀÌ ÀÖ´õ¶ó°í ¸Þ¼¼ÁöÀÇ º¹»çº»À» ¹ÞÁö ¾ÊÀ» °Í"
+#~ "ÀÔ´Ï´Ù.( ¿¹¸¦ µé¾î ´ç½ÅÀº ¸®½ºÆ®ÀÇ È¸¿øÀÌ°í ¶ÇÇÑ To: ȤÀº Cc: Çì´õ¿¡ ÀÖÀ» "
+#~ "°æ¿ì¸¦ ¸»ÇÕ´Ï´Ù.)"
+
+#~ msgid ""
+#~ "Subject line ignored:\n"
+#~ " "
+#~ msgstr "Á¦¸ñ ÁÙÀº ¹«½ÃµÇ¾úÀ½:"
+
+#~ msgid ""
+#~ "Maximum command lines (%(maxlines)d) encountered, ignoring the rest..."
+#~ msgstr ""
+#~ "ÃÖ´ë ¸í·É¾î (%(maxlines)d) °³ ÀÌ»óÀ» ÃʰúÇÏ¿´½À´Ï´Ù, ³ª¸ÓÁö´Â ¸ðµÎ ¹«½ÃÇÕ"
+#~ "´Ï´Ù..."
+
+#~ msgid "End: "
+#~ msgstr "³¡ºÎºÐ:"
+
+#~ msgid "The rest of the message is ignored:"
+#~ msgstr "ÆíÁöÀÇ ³ª¸ÓÁö´Â ¹«½ÃµÇ¾ú½À´Ï´Ù:"
+
+#~ msgid "Command? "
+#~ msgstr "¸Â´Â ¸í·É¾î ÀԴϱî?"
+
+#~ msgid ""
+#~ "\n"
+#~ "Too many errors encountered; the rest of the message is ignored:"
+#~ msgstr ""
+#~ "\n"
+#~ "³Ê¹« ¸¹Àº ¿¡·¯¿¡ ºÎµúÃÆ½À´Ï´Ù. ÆíÁöÀÇ ³ª¸ÓÁö´Â ¹«½ÃµÇ¾ú½À´Ï´Ù:"
+
+#~ msgid ""
+#~ "An unexpected Mailman error has occurred.\n"
+#~ "\n"
+#~ "Please forward your request to the human list administrator in charge of "
+#~ "this\n"
+#~ "list at <%(admin)s>. The traceback is attached below and will be "
+#~ "forwarded to\n"
+#~ "the list administrator automatically."
+#~ msgstr ""
+#~ "Mailman ÀÌ ¿¹»óÇÏÁö ¸øÇÑ ¿¡·¯°¡ ¹ß»ýÇß½À´Ï´Ù.\n"
+#~ "<%(admin)s> ¸®½ºÆ®¿¡¼­ ¹®Á¦°¡ ¹ß»ýÇß½À´Ï´Ù. ¸ÞÀϸµ ¸®½ºÆ® °ü¸®ÀÚ¿¡°Ô ´ç½Å"
+#~ "ÀÇ ¿äûÀ»Àü´ÞÇϽñ⠹ٶø´Ï´Ù. ¹®Á¦°¡ ÀÏ·¯³­ ºÎºÐÀº ¾Æ·¡¿¡ ÷ºÎÇÏ¿´À¸¸ç, "
+#~ "ÀÌ ¹®Á¦´ÂÀÚµ¿À¸·Î ¸ÞÀϸµ °ü¸®ÀÚ¿¡°Ô ¹è´ÞµË´Ï´Ù."
+
+#~ msgid "Unexpected Mailman error"
+#~ msgstr "¿¹»óÇÏÁö ¸øÇÑ ¿¡·¯°¡ ¹ß»ý"
+
+#~ msgid ""
+#~ "An unexpected Mailman error has occurred in\n"
+#~ "MailCommandHandler.ParseMailCommands(). Here is the traceback:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "MailCommandHandler.ParseMailCommands() ºÎºÐ¿¡¼­ Mailman ÀÌ ¿¹»óÇÏÁö ¸øÇÑ¿¡"
+#~ "·¯°¡ ¹ß»ýÇß½À´Ï´Ù. ¾Æ·¡ ºÎºÐÀº ¹®Á¦°¡ ÀϾ ºÎºÐÀÔ´Ï´Ù:\n"
+
+#~ msgid ""
+#~ "This is an automated response.\n"
+#~ "\n"
+#~ "There were problems with the email commands you sent to Mailman via the\n"
+#~ "administrative address %(requestaddr)s.\n"
+#~ "\n"
+#~ "To obtain instructions on valid Mailman email commands, send email to\n"
+#~ "%(requestaddr)s with the word \"help\" in the subject line or in the body "
+#~ "of the\n"
+#~ "message.\n"
+#~ "\n"
+#~ "If you want to reach the human being that manages this mailing list, "
+#~ "please\n"
+#~ "send your message to %(adminaddr)s.\n"
+#~ "\n"
+#~ "The following is a detailed description of the problems.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "ÀÌ ¸ÞÀÏÀº ÀÚµ¿ ÀÀ´ä ¸ÞÀϸ³´Ï´Ù.\n"
+#~ "°ü¸®Ã³¸® ÁÖ¼Ò <%(requestaddr)s> À» ÅëÇØ Mailman ¿¡ º¸³½ ´ç½ÅÀÇ ¸í·É¾î¿¡ ¹®"
+#~ "Á¦°¡ ÀÖ½À´Ï´Ù.\n"
+#~ "Mailman ÀÇ E¸ÞÀÏÀ» ÅëÇÑ ¸í·É¾î¿¡ ´ëÇÑ ¼³¸í¼­¸¦ ¾òÀ¸½Ç·Á¸é<%(requestaddr)"
+#~ "s> ·Î ÆíÁöÀÇ Á¦¸ñ ȤÀº º»¹®¿¡ \"help\"¶ó´Â ´Ü¾îÀ» ÀÔ·ÂÇϼż­ º¸³» Áֽñâ "
+#~ "¹Ù¶ø´Ï´Ù.\n"
+#~ "¸¸¾à ´ç½ÅÀÌ ¸ÞÀϸµ ¸®½ºÆ®¸¦ °ü¸®ÇÏ´Â »ç¶÷¿¡°Ô º¸³»±æ ¿øÇϽŴٸé<%"
+#~ "(adminaddr)s> ·Î ¿©·¯ºÐÀÇ ÆíÁö¸¦ º¸³»½Ã±â ¹Ù¶ø´Ï´Ù.\n"
+#~ "´ÙÀ½ÀÇ ºÎºÐ¿¡ ¹®Á¦°¡ ÀÖ½À´Ï´Ù.\n"
+
+#~ msgid "Mailman results for %(realname)s"
+#~ msgstr "Mailman À» À§ÇÑ %(realname)s °á°ú¹°."
+
+#~ msgid "Usage: password [<oldpw> <newpw>]"
+#~ msgstr "»ç¿ë¹ý: password [<ÀÌÀü_ºñ¹Ð¹øÈ£> <»õ_ºñ¹Ð¹øÈ£>]"
+
+#~ msgid "You are subscribed as %(user)s, with password: %(password)s"
+#~ msgstr "´ç½ÅÀº %(user)s ¿¡ °¡ÀԵǼ̽À´Ï´Ù, ºñ¹Ð¹øÈ£´Â %(password)s ÀÔ´Ï´Ù."
+
+#~ msgid "Succeeded."
+#~ msgstr "¼º°øÇÏ¿´½À´Ï´Ù."
+
+#~ msgid "by your configuration"
+#~ msgstr "´ç½ÅÀÇ ¼³Á¤¿¡ ÀÇÇØ "
+
+#~ msgid "on (%(reason)s"
+#~ msgstr "(%(reason)s) ÀÌÀ¯·Î ÀÎÇØ"
+
+#~ msgid ""
+#~ "To change an option, do: set <option> <on|off> <password>\n"
+#~ "\n"
+#~ "Option explanations:\n"
+#~ "--------------------\n"
+#~ msgstr ""
+#~ "¼³Á¤À» º¯°æÇϱâ À§Çؼ­ ¾Æ·¡¿Í °°ÀÌ »ç¿ëÇϽʽÿÀ: set <¼³Á¤> <on|off> <ºñ¹Ð"
+#~ "¹øÈ£>\n"
+#~ "\n"
+#~ "¼³Á¤ ¼³¸íÀº ¾Æ·¡¿Í °°½À´Ï´Ù:\n"
+#~ "--------------------\n"
+
+#~ msgid ""
+#~ "Usage: set <option> <on|off> <password>\n"
+#~ "Valid options are:\n"
+#~ msgstr ""
+#~ "»ç¿ë¹ý: set <¼³Á¤> <on|off> <ºñ¹Ð¹øÈ£>\n"
+#~ "¿Ã¹Ù¸¥ ¼³Á¤Àº ´ÙÀ½°ú °°½À´Ï´Ù:\n"
+
+#~ msgid "You are already receiving digests."
+#~ msgstr "ÀÌ¹Ì ´ç½ÅÀº ¹­À½¹è´Þ(Digest) ¼³Á¤À¸·Î µÇ¾î ÀÖ½À´Ï´Ù."
+
+#~ msgid "List only accepts digest members."
+#~ msgstr "ÀÌ ¸ÞÀϸµ ¸®½ºÆ®´Â ¹­À½¹è´Þ(Digest) ȸ¿ø¸¸ ¹Þ½À´Ï´Ù."
+
+#~ msgid "List doesn't accept digest members."
+#~ msgstr "ÀÌ ¸ÞÀϸµ ¸®½ºÆ®´Â ¹­À½¹è´Þ(Digest) ȸ¿øÀ» ¹ÞÁö ¾Ê½À´Ï´Ù."
+
+#~ msgid "\trequests to: "
+#~ msgstr "°ü¸®¿äû:"
+
+#~ msgid "\tdescription: "
+#~ msgstr "¼³¸í:"
+
+#~ msgid ""
+#~ "\n"
+#~ "Usage: info\n"
+#~ "To get info for a particular list, send your request to\n"
+#~ "the `-request' address for that list, or use the `lists' command\n"
+#~ "to get info for all the lists."
+#~ msgstr ""
+#~ "\n"
+#~ "»ç¿ë¹ý: info\n"
+#~ "ƯÁ¤ ¸®½ºÆ®ÀÇ Á¤º¸¸¦ ¾÷±â À§Çؼ­ ±× ¸ÞÀϸµ ¸®½ºÆ® ÀÇ '-request' ÁÖ¼Ò·Î º¸"
+#~ "³»½Ê½Ã¿À.\n"
+#~ "ȤÀº ¸®½ºÆ®¿¡ ´ëÇÑ ¸ðµç Á¤º¸¸¦ ¾òÀ¸½Ç·Á¸é `lists' ¸í·É¾î¸¦ »ç¿ëÇϽʽÿÀ."
+
+#~ msgid "Private list: only members may see info."
+#~ msgstr "ºñ°ø°³ ¸®½ºÆ®: ȸ¿ø¸¸ Á¤º¸¸¦ º¼ ¼ö ÀÖ½À´Ï´Ù."
+
+#~ msgid ""
+#~ "\n"
+#~ "For more complete info about the %(listname)s mailing list, including\n"
+#~ "background and instructions for subscribing to and using it, visit:\n"
+#~ "\n"
+#~ " %(url)s\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\n"
+#~ "%(listname)s ¸ÞÀϸµ ¸®½ºÆ®¿¡ °üÇÑ ´õ ¸¹Àº Á¤º¸¸¦ ¾òÀ¸½Ç·Á¸é ¾Æ·¡ÀÇ »çÀÌÆ®"
+#~ "¸¦ ¹æ¹®ÇØ Áֽñ⠹ٶø´Ï´Ù:\n"
+#~ " %(url)s\n"
+
+#~ msgid "No other details are available."
+#~ msgstr "´Ù¸¥ ÀÚ¼¼ÇÑ Á¤º¸¸¦ º¼ ¼ö ¾ø½À´Ï´Ù."
+
+#~ msgid ""
+#~ "Usage: who\n"
+#~ "To get subscribership for a particular list, send your request\n"
+#~ "to the `-request' address for that list."
+#~ msgstr ""
+#~ "»ç¿ë¹ý: who\n"
+#~ "ƯÁ¤ ¸ÞÀϸµ ¸®½ºÆ®ÀÇ °¡ÀÔÀÚ ¸ñ·ÏÀ» °¡Á® ¿É´Ï´Ù.\n"
+#~ "¸ÞÀϸµ ¸®½ºÆ®ÀÇ ÁÖ¼Ò¿¡ '-request' ÁÖ¼Ò·Î ´ç½ÅÀÇ\n"
+#~ " ¿äûÀ» º¸³»½Ê½Ã¿À."
+
+#~ msgid "Private list: No one may see subscription list."
+#~ msgstr "ºñ°ø°³ ¸®½ºÆ®: °¡ÀÔÀÚ ¸ñ·ÏÀº ¾Æ¹«µµ º¼ ¼ö ¾ø½À´Ï´Ù."
+
+#~ msgid "Private list: only members may see list of subscribers."
+#~ msgstr "ºñ°ø°³ ¸®½ºÆ®: ¸ÞÀϸµ ¸®½ºÆ®ÀÇ È¸¿ø¸¸ °¡ÀÔÀÚ ¸ñ·ÏÀ» º¼ ¼ö ÀÖ½À´Ï´Ù."
+
+#~ msgid "NO MEMBERS."
+#~ msgstr "°¡ÀÔµÈ È¸¿øÀÌ ¾ø½À´Ï´Ù."
+
+#~ msgid ""
+#~ "Usage: unsubscribe [password] [email-address]\n"
+#~ "To unsubscribe from a particular list, send your request to\n"
+#~ "the `-request' address for that list."
+#~ msgstr ""
+#~ "»ç¿ë¹ý: unsubscribe [ºñ¹Ð¹øÈ£] [<E¸ÞÀÏÁÖ¼Ò>]\n"
+#~ "ƯÁ¤ ¸®½ºÆ®¿¡¼­ Å»ÅðÇϱâ À§Çؼ­ ±× ¸®½ºÆ®ÀÇ\n"
+#~ " `-request' ÁÖ¼Ò·Î ´ç½ÅÀÇ ¿ä±¸¸¦ º¸³»½Ê½Ã¿À. "
+
+#~ msgid ""
+#~ "Usage: subscribe [password] [digest|nodigest] [address=<email-address>]"
+#~ msgstr ""
+#~ "»ç¿ë¹ý: subscribe [ºñ¹Ð¹øÈ£] [digest|nodigest] [address=<E¸ÞÀÏ_ÁÖ¼Ò>]"
+
+#~ msgid ""
+#~ "The list is not fully functional, and can not accept subscription "
+#~ "requests."
+#~ msgstr ""
+#~ "ÀÌ ¸ÞÀϸµ ¸®½ºÆ®´Â ¿©·¯ºÐÀÇ ¿äûÀ» ¸ðµÎ ¹Þ¾Æ µéÀÌÁö ¾Ê½À´Ï´Ù.\n"
+#~ " ±×¸®°í °¡ÀÔ ¿äûÀ» ¹ÞÁö ¾Ê½À´Ï´Ù."
+
+#~ msgid "Succeeded"
+#~ msgstr "¼º°øÇÏ¿´½À´Ï´Ù."
+
+#~ msgid "Usage: confirm <confirmation string>\n"
+#~ msgstr "»ç¿ë¹ý: confirm <confirmation string>\n"
+
+#~ msgid ""
+#~ "<li>Find members by\n"
+#~ " <a href=\"http://www.python.org/doc/current/lib/re-syntax."
+#~ "html\"\n"
+#~ " >Python regular expression</a> (<em>regexp</em>)<br>"
+#~ msgstr ""
+#~ "<li><a href=\"http://www.python.org/doc/current/lib/re-syntax.html\">\n"
+#~ "Python Á¤±Ô Ç¥Çö½Ä</a> (<em>regexp</em>)·Î ȸ¿ø ã±â<br>"
+
+#~ msgid "via the member options page"
+#~ msgstr "ȸ¿ø ¼³Á¤ ÆäÀÌÁö¸¦ ÅëÇØ"
+
+#~ msgid "Default options for new members joining this list."
+#~ msgstr "ÀÌ ¸®½ºÆ®¿¡ °¡ÀÔÇÏ´Â »õ ȸ¿øÀÇ ±âº» °ª"
+
+#~ msgid ""
+#~ "<p><b>reply_to_address</b> does not have a\n"
+#~ " valid email address! Its valid will not be changed."
+#~ msgstr ""
+#~ "<p><b>reply_to_address</b>´Â À߸øµÈ E¸ÞÀÏ Çü½ÄÀ» °¡Áö°í ÀÖ½À´Ï´Ù. ¿Ã¹Ù¸£"
+#~ "°Ô º¯°æÇϽʽÿÀ."
diff --git a/messages/ko/README.ko b/messages/ko/README.ko
new file mode 100644
index 00000000..268a96d0
--- /dev/null
+++ b/messages/ko/README.ko
@@ -0,0 +1,26 @@
+Mailman ÇÑ±Û ¸Þ¼¼Áö¿¡ ´ëÇÑ ³ëÆ®.
+
+ ¹ø¿ª : Hyejin Soang, (redcloak@igrus.inha.ac.kr)
+ Wongyo Jung, ( andsoon@igrus.inha.ac.kr)
+
+- »ç¿ë´Ü¾î
+
+ Digest ÀÇ °æ¿ì
+ "¹­À½¹è´Þ" À̶ó´Â Çü½ÄÀ¸·Î ¹ø¿ª ÇÏ¿´½À´Ï´Ù.
+ Non-Digest ÀÇ °æ¿ì
+ "°³º°¹è´Þ" À̶ó´Â Çü½ÄÀ¸·Î ¹ø¿ª ÇÏ¿´½À´Ï´Ù.
+
+- ¹®Á¦Á¡
+
+ 1) ¿äû 󸮸¦ ó¸®ÇÏ´Â ºÎºÐ¿¡¼­ Á¦¸ñ ºÎºÐÀÇ ±ÛÀÌ EUC-KR Çü½ÄÀ» Áö¿øÇÏÁö
+ ¾Ê±â¿¡ ±úÁ® º¸ÀÌ°Ô µË´Ï´Ù. ¼öÁ¤ÇØ¾ß ÇÒ °ÍÀÔ´Ï´Ù.
+
+ 2) ÇöÀç messages/ko/LC_MESSAGES/mailman.po ºÎºÐ Áß ¹ø¿ªµÇÁö ¾ÊÀº ºÎºÐÀÌ
+ ÀÖ½À´Ï´Ù. 5300ÁÙ ºÎÅÍ ³¡±îÁö´Â ¾ÆÁ÷ ¹ø¿ªµÇÁö ¾Ê¾Ò½À´Ï´Ù. ÀÌ °æ¿ì ´ë
+ ºÎºÐÀº E¸ÞÀÏÀ̳ª WEB¿¡ ¿µÇâÀ» ¹ÌÄ¡Áö ¾Ê´Â ¹ÙÀ̳ʸ®³ª Python ÇÁ·Î±×·¥
+ µéÀÔ´Ï´Ù. bin/ °ú cron/ ¿¡ ´ëÇÑ ºÎºÐÀ̸ç, ÀÌ ºÎºÐ¿¡ ´ëÇØ¼­´Â Ãß°¡
+ ¹ø¿ªÀ» ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ¹ø¿ª Áö¿øÀÚ¸¦ ¸ð½Ê´Ï´Ù.
+
+ andsoon@igrus.inha.ac.kr
+
+ ·Î ¿¬¶ôÁֽñ⠹ٶø´Ï´Ù.
diff --git a/messages/lt/LC_MESSAGES/mailman.mo b/messages/lt/LC_MESSAGES/mailman.mo
new file mode 100644
index 00000000..88372c9b
--- /dev/null
+++ b/messages/lt/LC_MESSAGES/mailman.mo
Binary files differ
diff --git a/messages/lt/LC_MESSAGES/mailman.po b/messages/lt/LC_MESSAGES/mailman.po
new file mode 100644
index 00000000..7a7b1be0
--- /dev/null
+++ b/messages/lt/LC_MESSAGES/mailman.po
@@ -0,0 +1,8096 @@
+# Translated by:
+# Mantas Kriauciunas <mantas@akl.lt>, 2002
+# Mykolas O Kazarinas <mykolas@uzupis.com>, 2002
+# Eglë Girinaitë <egle@akl.lt>, 2002
+msgid ""
+msgstr ""
+"Project-Id-Version: Mailman 2.1\n"
+"POT-Creation-Date: 2002-10-25 18:34:14\n"
+"PO-Revision-Date: 2002-12-26 09:07+0200\n"
+"Last-Translator: Mantas Kriauciunas <mantas@akl.lt>\n"
+"Language-Team: Lithuanian <info@akl.lt>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-13\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: Mailman/Archiver/HyperArch.py:117
+msgid " %(size)i bytes "
+msgstr "%(size)i baitø"
+
+#: Mailman/Archiver/HyperArch.py:215
+#, fuzzy
+msgid " at "
+msgstr " at "
+
+#: Mailman/Archiver/HyperArch.py:346
+msgid "Previous message:"
+msgstr "Ankstesnë þinutë:"
+
+#: Mailman/Archiver/HyperArch.py:378
+msgid "Next message:"
+msgstr "Tolesnë þinutë:"
+
+#: Mailman/Archiver/HyperArch.py:564
+#: Mailman/Archiver/HyperArch.py:598
+msgid "thread"
+msgstr "gija"
+
+#: Mailman/Archiver/HyperArch.py:565
+#: Mailman/Archiver/HyperArch.py:599
+msgid "subject"
+msgstr "tema"
+
+#: Mailman/Archiver/HyperArch.py:566
+#: Mailman/Archiver/HyperArch.py:600
+msgid "author"
+msgstr "autorius"
+
+#: Mailman/Archiver/HyperArch.py:567
+#: Mailman/Archiver/HyperArch.py:601
+msgid "date"
+msgstr "data"
+
+#: Mailman/Archiver/HyperArch.py:637
+#, fuzzy
+msgid "<P>Currently, there are no archives. </P>"
+msgstr "<P>Ðiuo metu archyvø nëra. </P>"
+
+#: Mailman/Archiver/HyperArch.py:676
+#, fuzzy
+msgid "Gzip'd Text%(sz)s"
+msgstr "Gzip'd Text%(sz)s"
+
+#: Mailman/Archiver/HyperArch.py:681
+#, fuzzy
+msgid "Text%(sz)s"
+msgstr "Text%(sz)s"
+
+#: Mailman/Archiver/HyperArch.py:771
+#, fuzzy
+msgid "figuring article archives\n"
+msgstr "nustatant straipsniø archyvus\n"
+
+#: Mailman/Archiver/HyperArch.py:781
+msgid "April"
+msgstr "Balandis"
+
+#: Mailman/Archiver/HyperArch.py:781
+msgid "February"
+msgstr "Vasaris"
+
+#: Mailman/Archiver/HyperArch.py:781
+msgid "January"
+msgstr "Sausis"
+
+#: Mailman/Archiver/HyperArch.py:781
+msgid "March"
+msgstr "Kovas"
+
+#: Mailman/Archiver/HyperArch.py:782
+msgid "August"
+msgstr "Rugpjûtis"
+
+#: Mailman/Archiver/HyperArch.py:782
+msgid "July"
+msgstr "Liepa"
+
+#: Mailman/Archiver/HyperArch.py:782
+msgid "June"
+msgstr "Birþelis"
+
+#: Mailman/Archiver/HyperArch.py:782
+#: Mailman/i18n.py:91
+msgid "May"
+msgstr "Geguþë"
+
+#: Mailman/Archiver/HyperArch.py:783
+msgid "December"
+msgstr "Gruodis"
+
+#: Mailman/Archiver/HyperArch.py:783
+msgid "November"
+msgstr "Lapkritis"
+
+#: Mailman/Archiver/HyperArch.py:783
+msgid "October"
+msgstr "Spalis"
+
+#: Mailman/Archiver/HyperArch.py:783
+msgid "September"
+msgstr "Rugsëjis"
+
+#: Mailman/Archiver/HyperArch.py:791
+msgid "First"
+msgstr "Pirmas"
+
+#: Mailman/Archiver/HyperArch.py:791
+msgid "Fourth"
+msgstr "Ketvirtas"
+
+#: Mailman/Archiver/HyperArch.py:791
+msgid "Second"
+msgstr "Antras"
+
+#: Mailman/Archiver/HyperArch.py:791
+msgid "Third"
+msgstr "Treèias"
+
+#: Mailman/Archiver/HyperArch.py:793
+#, fuzzy
+msgid "%(ord)s quarter %(year)i"
+msgstr "%(ord)s quarter %(year)i"
+
+#: Mailman/Archiver/HyperArch.py:800
+#, fuzzy
+msgid "%(month)s %(year)i"
+msgstr "%(month)s %(year)i"
+
+#: Mailman/Archiver/HyperArch.py:805
+#, fuzzy
+msgid "The Week Of Monday %(day)i %(month)s %(year)i"
+msgstr "Pirmadienio savaitë %(day)i %(month)s %(year)i"
+
+#: Mailman/Archiver/HyperArch.py:809
+#, fuzzy
+msgid "%(day)i %(month)s %(year)i"
+msgstr "%(day)i %(month)s %(year)i"
+
+#: Mailman/Archiver/HyperArch.py:906
+#, fuzzy
+msgid "Computing threaded index\n"
+msgstr "Skaièiuojamas indeksas gijomis\n"
+
+#: Mailman/Archiver/HyperArch.py:1168
+#, fuzzy
+msgid "Updating HTML for article "
+msgstr "Atnaujinamas straipsniø HTML "
+
+#: Mailman/Archiver/HyperArch.py:1174
+#, fuzzy
+msgid "article file %s is missing!"
+msgstr "praleistas straipsniø failas %s !"
+
+#: Mailman/Archiver/pipermail.py:166
+#: Mailman/Archiver/pipermail.py:167
+msgid "No subject"
+msgstr "Nenurodyta tema"
+
+#: Mailman/Archiver/pipermail.py:268
+#, fuzzy
+msgid "Creating archive directory "
+msgstr "Kuriamas archyvø katalogas "
+
+#: Mailman/Archiver/pipermail.py:280
+#, fuzzy
+msgid "Reloading pickled archive state"
+msgstr "Reloading pickled archive state"
+
+#: Mailman/Archiver/pipermail.py:307
+#, fuzzy
+msgid "Pickling archive state into "
+msgstr "Pickling archive state into "
+
+#: Mailman/Archiver/pipermail.py:418
+#, fuzzy
+msgid "Updating index files for archive [%(archive)s]"
+msgstr "Atnaujinamas archyvo [%(archive)s] indeksas"
+
+#: Mailman/Archiver/pipermail.py:451
+msgid " Thread"
+msgstr " Gija"
+
+#: Mailman/Archiver/pipermail.py:556
+#, fuzzy
+msgid "#%(counter)05d %(msgid)s"
+msgstr "#%(counter)05d %(msgid)s"
+
+#: Mailman/Bouncer.py:44
+#, fuzzy
+msgid "due to excessive bounces"
+msgstr "due to excessive bounces"
+
+#: Mailman/Bouncer.py:45
+msgid "by yourself"
+msgstr "Jûsø"
+
+#: Mailman/Bouncer.py:46
+msgid "by the list administrator"
+msgstr "forumo administratoriaus"
+
+#: Mailman/Bouncer.py:47
+#: Mailman/Bouncer.py:232
+#: Mailman/Commands/cmd_set.py:182
+msgid "for unknown reasons"
+msgstr "dël neþinomø prieþasèiø"
+
+#: Mailman/Bouncer.py:179
+msgid "disabled"
+msgstr "uþdrausta"
+
+#: Mailman/Bouncer.py:184
+#, fuzzy
+msgid "Bounce action notification"
+msgstr "Bounce action notification"
+
+#: Mailman/Bouncer.py:239
+#, fuzzy
+msgid " The last bounce received from you was dated %(date)s"
+msgstr " The last bounce received from you was dated %(date)s"
+
+#: Mailman/Bouncer.py:264
+#: Mailman/Deliverer.py:126
+#: Mailman/Handlers/Acknowledge.py:44
+#: Mailman/Handlers/CookHeaders.py:211
+#: Mailman/Handlers/Hold.py:214
+#: Mailman/Handlers/Hold.py:249
+#: Mailman/Handlers/ToDigest.py:211
+#: Mailman/ListAdmin.py:235
+msgid "(no subject)"
+msgstr "(nenurodyta tema)"
+
+#: Mailman/Bouncer.py:266
+#, fuzzy
+msgid "[No bounce details are available]"
+msgstr "[No bounce details are available]"
+
+#: Mailman/Cgi/Auth.py:46
+msgid "Moderator"
+msgstr "Priþiûrëtojas"
+
+#: Mailman/Cgi/Auth.py:48
+msgid "Administrator"
+msgstr "administratoriaus"
+
+#: Mailman/Cgi/admin.py:70
+#: Mailman/Cgi/admindb.py:89
+#: Mailman/Cgi/confirm.py:55
+#: Mailman/Cgi/edithtml.py:67
+#: Mailman/Cgi/listinfo.py:51
+#: Mailman/Cgi/options.py:70
+#: Mailman/Cgi/private.py:98
+#: Mailman/Cgi/rmlist.py:62
+#: Mailman/Cgi/roster.py:57
+#: Mailman/Cgi/subscribe.py:61
+msgid "No such list <em>%(safelistname)s</em>"
+msgstr "Nëra forumo <em>%(safelistname)s</em>"
+
+#: Mailman/Cgi/admin.py:85
+#: Mailman/Cgi/admindb.py:105
+#: Mailman/Cgi/edithtml.py:85
+#: Mailman/Cgi/private.py:123
+msgid "Authorization failed."
+msgstr "Nesëkminga registracija"
+
+#: Mailman/Cgi/admin.py:175
+#, fuzzy
+msgid ""
+"You have turned off delivery of both digest and\n"
+" non-digest messages. This is an incompatible state of\n"
+" affairs. You must turn on either digest delivery or\n"
+" non-digest delivery or your mailing list will basically be\n"
+" unusable."
+msgstr ""
+"Iðjungëte grupuotø ir pavieniø laiðkø siuntimà.\n"
+" Taip naudotis forumu nëra ámanoma.\n"
+" Turite ájungti arba grupuotø, arba pavieniø laiðkø siuntimà\n"
+" kitaip negalësite pasinaudoti\n"
+" forumu."
+
+#: Mailman/Cgi/admin.py:179
+#: Mailman/Cgi/admin.py:185
+#: Mailman/Cgi/admin.py:190
+#: Mailman/Cgi/admin.py:1360
+#: Mailman/Gui/GUIBase.py:184
+msgid "Warning: "
+msgstr "Perspëjimas: "
+
+#: Mailman/Cgi/admin.py:183
+#, fuzzy
+msgid "You have digest members, but digests are turned\n"
+" off. Those people will not receive mail."
+msgstr "Jûs iðjungëte grupuotø laiðkø siuntimà, taèiau yra\n"
+" juos uþsisakiusiø asmenø, kurie nebegaus laiðkø."
+
+#: Mailman/Cgi/admin.py:188
+#, fuzzy
+msgid ""
+"You have regular list members but non-digestified mail is\n"
+" turned off. They will receive mail until you fix this\n"
+" problem."
+msgstr ""
+"Jûsø forume yra asmenø, kurie uþsisakë gauti pavienius laiðkus,\n"
+" taèiau Jûs iðjungëte negrupuotø laiðkø siuntimà.\n"
+" Ðie asmenys negaus laiðkø kol neiðtaisysite to."
+
+#: Mailman/Cgi/admin.py:212
+#, fuzzy
+msgid "%(hostname)s mailing lists - Admin Links"
+msgstr "%(hostname)s forumø priþiûrëtojo nuorodos"
+
+#: Mailman/Cgi/admin.py:241
+#: Mailman/Cgi/listinfo.py:97
+msgid "Welcome!"
+msgstr "Kvieèiame!"
+
+#: Mailman/Cgi/admin.py:244
+#: Mailman/Cgi/listinfo.py:100
+#, fuzzy
+msgid "Mailman"
+msgstr "Mailman"
+
+#: Mailman/Cgi/admin.py:248
+#, fuzzy
+msgid "<p>There currently are no publicly-advertised %(mailmanlink)s\n"
+" mailing lists on %(hostname)s."
+msgstr "<p>There currently are no publicly-advertised %(mailmanlink)s\n"
+" mailing lists on %(hostname)s."
+
+#: Mailman/Cgi/admin.py:254
+#, fuzzy
+msgid ""
+"<p>Below is the collection of publicly-advertised\n"
+" %(mailmanlink)s mailing lists on %(hostname)s. Click on a list\n"
+" name to visit the configuration pages for that list."
+msgstr ""
+"<p>Èia yra vieðai skelbiamø\n"
+" %(mailmanlink)s %(hostname)s forumø sàraðas.\n"
+" Spustelkite forumo pavadinimà, jei norite atversti to forumo nustatymus."
+
+#: Mailman/Cgi/admin.py:261
+#, fuzzy
+msgid "right "
+msgstr "deðinë "
+
+#: Mailman/Cgi/admin.py:263
+#, fuzzy
+msgid ""
+"To visit the administrators configuration page for an\n"
+" unadvertised list, open a URL similar to this one, but with a '/' and\n"
+" the %(extra)slist name appended. If you have the proper authority,\n"
+" you can also <a href=\"%(creatorurl)s\">create a new mailing list</a>.\n"
+"\n"
+" <p>General list information can be found at "
+msgstr ""
+"To visit the administrators configuration page for an\n"
+" unadvertised list, open a URL similar to this one, but with a '/' and\n"
+" the %(extra)slist name appended. If you have the proper authority,\n"
+" you can also <a href=\"%(creatorurl)s\">create a new mailing list</a>.\n"
+"\n"
+" <p>General list information can be found at "
+
+#: Mailman/Cgi/admin.py:270
+#, fuzzy
+msgid "the mailing list overview page"
+msgstr "the mailing list overview page"
+
+#: Mailman/Cgi/admin.py:272
+#, fuzzy
+msgid "<p>(Send questions and comments to "
+msgstr "<p>(Send questions and comments to "
+
+#: Mailman/Cgi/admin.py:282
+#: Mailman/Cgi/listinfo.py:132
+#: cron/mailpasswds:177
+msgid "List"
+msgstr "Sàraðas"
+
+#: Mailman/Cgi/admin.py:283
+#: Mailman/Cgi/admin.py:554
+#: Mailman/Cgi/listinfo.py:133
+msgid "Description"
+msgstr "Apraðas"
+
+#: Mailman/Cgi/admin.py:289
+#: Mailman/Cgi/listinfo.py:139
+#: bin/list_lists:107
+msgid "[no description available]"
+msgstr "[nerastas apraðas]"
+
+#: Mailman/Cgi/admin.py:322
+msgid "No valid variable name found."
+msgstr "Nerastas teisingas kintamojo pavadinimas."
+
+#: Mailman/Cgi/admin.py:332
+#, fuzzy
+msgid "%(realname)s Mailing list Configuration Help\n"
+" <br><em>%(varname)s</em> Option"
+msgstr "%(realname)s forumo nustatymø pagalba\n"
+" <br><em>%(varname)s</em> parametrams"
+
+#: Mailman/Cgi/admin.py:339
+#, fuzzy
+msgid "Mailman %(varname)s List Option Help"
+msgstr "Mailman %(varname)s Forumo Nustaymø Pagalba"
+
+#: Mailman/Cgi/admin.py:357
+#, fuzzy
+msgid ""
+"<em><strong>Warning:</strong> changing this option here\n"
+" could cause other screens to be out-of-sync. Be sure to reload any other\n"
+" pages that are displaying this option for this mailing list. You can also\n"
+" "
+msgstr ""
+"<em><strong>Warning:</strong> changing this option here\n"
+" could cause other screens to be out-of-sync. Be sure to reload any other\n"
+" pages that are displaying this option for this mailing list. You can also\n"
+" "
+
+#: Mailman/Cgi/admin.py:368
+#, fuzzy
+msgid "return to the %(categoryname)s options page."
+msgstr "return to the %(categoryname)s options page."
+
+#: Mailman/Cgi/admin.py:383
+#, fuzzy
+msgid "%(realname)s Administration (%(label)s)"
+msgstr "%(realname)s Administration (%(label)s)"
+
+#: Mailman/Cgi/admin.py:384
+#, fuzzy
+msgid "%(realname)s mailing list administration<br>%(label)s Section"
+msgstr "%(realname)s mailing list administration<br>%(label)s Section"
+
+#: Mailman/Cgi/admin.py:400
+#, fuzzy
+msgid "Configuration Categories"
+msgstr "Configuration Categories"
+
+#: Mailman/Cgi/admin.py:401
+#, fuzzy
+msgid "Other Administrative Activities"
+msgstr "Other Administrative Activities"
+
+#: Mailman/Cgi/admin.py:405
+#, fuzzy
+msgid "Tend to pending moderator requests"
+msgstr "Tend to pending moderator requests"
+
+#: Mailman/Cgi/admin.py:407
+msgid "Go to the general list information page"
+msgstr "Eikite á pagrindiná forumo informacijos puslapá"
+
+#: Mailman/Cgi/admin.py:409
+msgid "Edit the public HTML pages"
+msgstr "Redaguoti skelbiamus HTML puslapius"
+
+#: Mailman/Cgi/admin.py:411
+msgid "Go to list archives"
+msgstr "Eiti á forumø archyvus"
+
+#: Mailman/Cgi/admin.py:417
+msgid "Delete this mailing list"
+msgstr "Iðtrinti ðá forumà"
+
+#: Mailman/Cgi/admin.py:418
+#, fuzzy
+msgid " (requires confirmation)<br>&nbsp;<br>"
+msgstr " (requires confirmation)<br>&nbsp;<br>"
+
+#: Mailman/Cgi/admin.py:424
+msgid "Logout"
+msgstr "Atsijungti"
+
+#: Mailman/Cgi/admin.py:467
+msgid "Emergency moderation of all list traffic:"
+msgstr "Emergency moderation of all list traffic:"
+
+#: Mailman/Cgi/admin.py:484
+#, fuzzy
+msgid "Make your changes in the following section, then submit them\n"
+" using the <em>Submit Your Changes</em> button below."
+msgstr "Make your changes in the following section, then submit them\n"
+" using the <em>Submit Your Changes</em> button below."
+
+#: Mailman/Cgi/admin.py:502
+#, fuzzy
+msgid "Additional Member Tasks"
+msgstr "Additional Member Tasks"
+
+#: Mailman/Cgi/admin.py:508
+#, fuzzy
+msgid "<li>Set everyone's moderation bit, including\n"
+" those members not currently visible"
+msgstr "<li>Set everyone's moderation bit, including\n"
+" those members not currently visible"
+
+#: Mailman/Cgi/admin.py:512
+msgid "Off"
+msgstr "Iðjungti"
+
+#: Mailman/Cgi/admin.py:512
+msgid "On"
+msgstr "Ájungti"
+
+#: Mailman/Cgi/admin.py:514
+msgid "Set"
+msgstr "Nustatyti"
+
+#: Mailman/Cgi/admin.py:555
+msgid "Value"
+msgstr "Reikðmë"
+
+#: Mailman/Cgi/admin.py:609
+#, fuzzy
+msgid "Badly formed options entry:\n"
+" %(record)s"
+msgstr "Badly formed options entry:\n"
+" %(record)s"
+
+#: Mailman/Cgi/admin.py:667
+#, fuzzy
+msgid "<em>Enter the text below, or...</em><br>"
+msgstr "<em>Enter the text below, or...</em><br>"
+
+#: Mailman/Cgi/admin.py:669
+#, fuzzy
+msgid "<br><em>...specify a file to upload</em><br>"
+msgstr "<br><em>...specify a file to upload</em><br>"
+
+#: Mailman/Cgi/admin.py:695
+#: Mailman/Cgi/admin.py:698
+#, fuzzy
+msgid "Topic %(i)d"
+msgstr "Topic %(i)d"
+
+#: Mailman/Cgi/admin.py:699
+msgid "Delete"
+msgstr "Iðtrinti"
+
+#: Mailman/Cgi/admin.py:700
+#, fuzzy
+msgid "Topic name:"
+msgstr "Topic name:"
+
+#: Mailman/Cgi/admin.py:702
+#, fuzzy
+msgid "Regexp:"
+msgstr "Regexp:"
+
+#: Mailman/Cgi/admin.py:705
+#: Mailman/Cgi/options.py:942
+msgid "Description:"
+msgstr "Apraðas:"
+
+#: Mailman/Cgi/admin.py:709
+msgid "Add new item..."
+msgstr "Pridëti naujà..."
+
+#: Mailman/Cgi/admin.py:711
+msgid "...before this one."
+msgstr "...prieð ðá."
+
+#: Mailman/Cgi/admin.py:712
+msgid "...after this one."
+msgstr "...po ðio."
+
+#: Mailman/Cgi/admin.py:747
+#, fuzzy
+msgid "<br>(Details for <b>%(varname)s</b>)"
+msgstr "<br>(Details for <b>%(varname)s</b>)"
+
+#: Mailman/Cgi/admin.py:752
+#, fuzzy
+msgid ""
+"<br><em><strong>Note:</strong>\n"
+" setting this value performs an immediate action but does not modify\n"
+" permanent state.</em>"
+msgstr ""
+"<br><em><strong>Note:</strong>\n"
+" setting this value performs an immediate action but does not modify\n"
+" permanent state.</em>"
+
+#: Mailman/Cgi/admin.py:766
+#, fuzzy
+msgid "Mass Subscriptions"
+msgstr "Bendri uþsakymai"
+
+#: Mailman/Cgi/admin.py:773
+#, fuzzy
+msgid "Mass Removals"
+msgstr "Bendri atnaujinimai"
+
+#: Mailman/Cgi/admin.py:780
+msgid "Membership List"
+msgstr "Nariø sàraðas"
+
+#: Mailman/Cgi/admin.py:787
+msgid "(help)"
+msgstr "(pagalba)"
+
+#: Mailman/Cgi/admin.py:788
+#, fuzzy
+msgid "Find member %(link)s:"
+msgstr "Rasti dalyvá %(link)s:"
+
+#: Mailman/Cgi/admin.py:791
+msgid "Search..."
+msgstr "Ieðkoti..."
+
+#: Mailman/Cgi/admin.py:806
+#, fuzzy
+msgid "Bad regular expression: "
+msgstr "Bad regular expression: "
+
+#: Mailman/Cgi/admin.py:860
+#, fuzzy
+msgid "%(allcnt)s members total, %(membercnt)s shown"
+msgstr "%(allcnt)s members total, %(membercnt)s shown"
+
+#: Mailman/Cgi/admin.py:863
+#, fuzzy
+msgid "%(allcnt)s members total"
+msgstr "%(allcnt)s members total"
+
+#: Mailman/Cgi/admin.py:886
+#, fuzzy
+msgid "unsub"
+msgstr "unsub"
+
+#: Mailman/Cgi/admin.py:887
+#, fuzzy
+msgid "member address<br>member name"
+msgstr "dalyvio adresas<br>dalyvio vardas"
+
+#: Mailman/Cgi/admin.py:888
+msgid "hide"
+msgstr "paslëpti"
+
+#: Mailman/Cgi/admin.py:888
+#, fuzzy
+msgid "mod"
+msgstr "mod"
+
+#: Mailman/Cgi/admin.py:889
+#, fuzzy
+msgid "nomail<br>[reason]"
+msgstr "nomail<br>[reason]"
+
+#: Mailman/Cgi/admin.py:890
+#, fuzzy
+msgid "ack"
+msgstr "ack"
+
+#: Mailman/Cgi/admin.py:890
+#, fuzzy
+msgid "not metoo"
+msgstr "not metoo"
+
+#: Mailman/Cgi/admin.py:891
+#, fuzzy
+msgid "nodupes"
+msgstr "nodupes"
+
+#: Mailman/Cgi/admin.py:892
+#, fuzzy
+msgid "digest"
+msgstr "digest"
+
+#: Mailman/Cgi/admin.py:892
+#, fuzzy
+msgid "plain"
+msgstr "plain"
+
+#: Mailman/Cgi/admin.py:893
+msgid "language"
+msgstr "kalba"
+
+#: Mailman/Cgi/admin.py:904
+#, fuzzy
+msgid "?"
+msgstr "?"
+
+#: Mailman/Cgi/admin.py:905
+#, fuzzy
+msgid "U"
+msgstr "U"
+
+#: Mailman/Cgi/admin.py:906
+#, fuzzy
+msgid "A"
+msgstr "A"
+
+#: Mailman/Cgi/admin.py:907
+#, fuzzy
+msgid "B"
+msgstr "B"
+
+#: Mailman/Cgi/admin.py:978
+msgid "<b>unsub</b> -- Click on this to unsubscribe the member."
+msgstr "<b>unsub</b> -- Paspauskite èia, jei norite iðbraukti dalyvá."
+
+#: Mailman/Cgi/admin.py:980
+#, fuzzy
+msgid ""
+"<b>mod</b> -- The user's personal moderation flag. If this is\n"
+" set, postings from them will be moderated, otherwise they will be\n"
+" approved."
+msgstr ""
+"<b>mod</b> -- The user's personal moderation flag. If this is\n"
+" set, postings from them will be moderated, otherwise they will be\n"
+" approved."
+
+#: Mailman/Cgi/admin.py:984
+#, fuzzy
+msgid "<b>hide</b> -- Is the member's address concealed on\n"
+" the list of subscribers?"
+msgstr "<b>paslëpti</b> -- ar dalyvio adresas iðbrauktas\n"
+" ið dlyviø sàraðo?"
+
+#: Mailman/Cgi/admin.py:986
+#, fuzzy
+msgid ""
+"<b>nomail</b> -- Is delivery to the member disabled? If so, an\n"
+" abbreviation will be given describing the reason for the disabled\n"
+" delivery:\n"
+" <ul><li><b>U</b> -- Delivery was disabled by the user via their\n"
+" personal options page.\n"
+" <li><b>A</b> -- Delivery was disabled by the list\n"
+" administrators.\n"
+" <li><b>B</b> -- Delivery was disabled by the system due to\n"
+" excessive bouncing from the member's address.\n"
+" <li><b>?</b> -- The reason for disabled delivery isn't known.\n"
+" This is the case for all memberships which were disabled\n"
+" in older versions of Mailman.\n"
+" </ul>"
+msgstr ""
+"<b>nomail</b> -- Is delivery to the member disabled? If so, an\n"
+" abbreviation will be given describing the reason for the disabled\n"
+" delivery:\n"
+" <ul><li><b>U</b> -- Delivery was disabled by the user via their\n"
+" personal options page.\n"
+" <li><b>A</b> -- Delivery was disabled by the list\n"
+" administrators.\n"
+" <li><b>B</b> -- Delivery was disabled by the system due to\n"
+" excessive bouncing from the member's address.\n"
+" <li><b>?</b> -- The reason for disabled delivery isn't known.\n"
+" This is the case for all memberships which were disabled\n"
+" in older versions of Mailman.\n"
+" </ul>"
+
+#: Mailman/Cgi/admin.py:1001
+#, fuzzy
+msgid "<b>ack</b> -- Does the member get acknowledgements of their\n"
+" posts?"
+msgstr "<b>ack</b> -- Ar dalyviams praneðta apie jø laiðkus?\n"
+" (acknowledgements)"
+
+#: Mailman/Cgi/admin.py:1004
+#, fuzzy
+msgid "<b>not metoo</b> -- Does the member want to avoid copies of their\n"
+" own postings?"
+msgstr "<b>not metoo</b> -- Ar jis nori iðvengti savo laiðkø kopijø gavimo?\n"
+" "
+
+#: Mailman/Cgi/admin.py:1007
+#, fuzzy
+msgid "<b>nodupes</b> -- Does the member want to avoid duplicates of the\n"
+" same message?"
+msgstr "<b>nodupes</b> -- Ar jis nori iðvengti laiðkø dubliavimosi?\n"
+" "
+
+#: Mailman/Cgi/admin.py:1010
+#, fuzzy
+msgid "<b>digest</b> -- Does the member get messages in digests?\n"
+" (otherwise, individual messages)"
+msgstr "<b>digest</b> -- Ar jis gauna rinkinius?\n"
+" (pavieniai laiðkai kitu atveju)"
+
+#: Mailman/Cgi/admin.py:1013
+#, fuzzy
+msgid "<b>plain</b> -- If getting digests, does the member get plain\n"
+" text digests? (otherwise, MIME)"
+msgstr "<b>plain</b> -- Jei gauna rinkinius, ar jie yra vientiso teksto?\n"
+" (MIME kitu atveju)"
+
+#: Mailman/Cgi/admin.py:1015
+#, fuzzy
+msgid "<b>language</b> -- Language preferred by the user"
+msgstr "<b>kalba</b> -- vartotojo pageidaujama kalba"
+
+#: Mailman/Cgi/admin.py:1029
+#, fuzzy
+msgid "Click here to hide the legend for this table."
+msgstr "Spustelkite èia, jei norite paslëpti ðios lentelës paaiðkinimus."
+
+#: Mailman/Cgi/admin.py:1033
+#, fuzzy
+msgid "Click here to include the legend for this table."
+msgstr "Spustelkite èia, jei norite parodyti ðios lentelës paaiðkinimus."
+
+#: Mailman/Cgi/admin.py:1040
+#, fuzzy
+msgid "<p><em>To view more members, click on the appropriate\n"
+" range listed below:</em>"
+msgstr "<p><em>To view more members, click on the appropriate\n"
+" range listed below:</em>"
+
+#: Mailman/Cgi/admin.py:1049
+#, fuzzy
+msgid "from %(start)s to %(end)s"
+msgstr "%(start)s - %(end)s"
+
+#: Mailman/Cgi/admin.py:1062
+#, fuzzy
+msgid "Subscribe these users now or invite them?"
+msgstr "Uþsakyti ðiems vartotojams forumà ar pakviesti juos?"
+
+#: Mailman/Cgi/admin.py:1064
+msgid "Invite"
+msgstr "Pakviesti"
+
+#: Mailman/Cgi/admin.py:1064
+#: Mailman/Cgi/listinfo.py:171
+msgid "Subscribe"
+msgstr "Uþsakyti"
+
+#: Mailman/Cgi/admin.py:1070
+msgid "Send welcome messages to new subscribees?"
+msgstr "Ar siøsti pasisveikinimus uþsisakiusiems forumà?"
+
+#: Mailman/Cgi/admin.py:1072
+#: Mailman/Cgi/admin.py:1081
+#: Mailman/Cgi/admin.py:1114
+#: Mailman/Cgi/admin.py:1122
+#: Mailman/Cgi/confirm.py:264
+#: Mailman/Cgi/create.py:327
+#: Mailman/Cgi/create.py:355
+#: Mailman/Cgi/create.py:387
+#: Mailman/Cgi/rmlist.py:205
+#: Mailman/Gui/Archive.py:33
+#: Mailman/Gui/Autoresponse.py:54
+#: Mailman/Gui/Autoresponse.py:62
+#: Mailman/Gui/Autoresponse.py:71
+#: Mailman/Gui/Bounce.py:77
+#: Mailman/Gui/Bounce.py:108
+#: Mailman/Gui/Bounce.py:134
+#: Mailman/Gui/Bounce.py:143
+#: Mailman/Gui/ContentFilter.py:70
+#: Mailman/Gui/ContentFilter.py:103
+#: Mailman/Gui/Digest.py:46
+#: Mailman/Gui/Digest.py:62
+#: Mailman/Gui/Digest.py:84
+#: Mailman/Gui/Digest.py:89
+#: Mailman/Gui/General.py:148
+#: Mailman/Gui/General.py:154
+#: Mailman/Gui/General.py:232
+#: Mailman/Gui/General.py:259
+#: Mailman/Gui/General.py:286
+#: Mailman/Gui/General.py:297
+#: Mailman/Gui/General.py:300
+#: Mailman/Gui/General.py:310
+#: Mailman/Gui/General.py:315
+#: Mailman/Gui/General.py:338
+#: Mailman/Gui/General.py:366
+#: Mailman/Gui/General.py:389
+#: Mailman/Gui/NonDigest.py:44
+#: Mailman/Gui/NonDigest.py:51
+#: Mailman/Gui/Privacy.py:101
+#: Mailman/Gui/Privacy.py:107
+#: Mailman/Gui/Privacy.py:140
+#: Mailman/Gui/Privacy.py:188
+#: Mailman/Gui/Privacy.py:296
+#: Mailman/Gui/Privacy.py:309
+#: Mailman/Gui/Usenet.py:50
+#: Mailman/Gui/Usenet.py:54
+#: Mailman/Gui/Usenet.py:91
+#: Mailman/Gui/Usenet.py:103
+msgid "No"
+msgstr "Ne"
+
+#: Mailman/Cgi/admin.py:1072
+#: Mailman/Cgi/admin.py:1081
+#: Mailman/Cgi/admin.py:1114
+#: Mailman/Cgi/admin.py:1122
+#: Mailman/Cgi/confirm.py:264
+#: Mailman/Cgi/create.py:327
+#: Mailman/Cgi/create.py:355
+#: Mailman/Cgi/create.py:387
+#: Mailman/Cgi/rmlist.py:205
+#: Mailman/Gui/Archive.py:33
+#: Mailman/Gui/Autoresponse.py:54
+#: Mailman/Gui/Autoresponse.py:62
+#: Mailman/Gui/Bounce.py:77
+#: Mailman/Gui/Bounce.py:108
+#: Mailman/Gui/Bounce.py:134
+#: Mailman/Gui/Bounce.py:143
+#: Mailman/Gui/ContentFilter.py:70
+#: Mailman/Gui/ContentFilter.py:103
+#: Mailman/Gui/Digest.py:46
+#: Mailman/Gui/Digest.py:62
+#: Mailman/Gui/Digest.py:84
+#: Mailman/Gui/Digest.py:89
+#: Mailman/Gui/General.py:148
+#: Mailman/Gui/General.py:154
+#: Mailman/Gui/General.py:232
+#: Mailman/Gui/General.py:259
+#: Mailman/Gui/General.py:286
+#: Mailman/Gui/General.py:297
+#: Mailman/Gui/General.py:300
+#: Mailman/Gui/General.py:310
+#: Mailman/Gui/General.py:315
+#: Mailman/Gui/General.py:338
+#: Mailman/Gui/General.py:366
+#: Mailman/Gui/General.py:389
+#: Mailman/Gui/NonDigest.py:44
+#: Mailman/Gui/NonDigest.py:51
+#: Mailman/Gui/Privacy.py:101
+#: Mailman/Gui/Privacy.py:107
+#: Mailman/Gui/Privacy.py:140
+#: Mailman/Gui/Privacy.py:188
+#: Mailman/Gui/Privacy.py:296
+#: Mailman/Gui/Privacy.py:309
+#: Mailman/Gui/Usenet.py:50
+#: Mailman/Gui/Usenet.py:54
+#: Mailman/Gui/Usenet.py:91
+#: Mailman/Gui/Usenet.py:103
+msgid "Yes"
+msgstr "Taip"
+
+#: Mailman/Cgi/admin.py:1079
+msgid "Send notifications of new subscriptions to the list owner?"
+msgstr "Ar praneðti apie uþsisakymà forumo savininkui?"
+
+#: Mailman/Cgi/admin.py:1087
+#: Mailman/Cgi/admin.py:1128
+msgid "Enter one address per line below..."
+msgstr "Áveskite po vienà adresà á eilutæ..."
+
+#: Mailman/Cgi/admin.py:1092
+#: Mailman/Cgi/admin.py:1133
+msgid "...or specify a file to upload:"
+msgstr "...arba nurodykite failà ákëlimui:"
+
+#: Mailman/Cgi/admin.py:1097
+msgid ""
+"Below, enter additional text to be added to the\n"
+" top of your invitation or the subscription notification. Include at least\n"
+" one blank line at the end..."
+msgstr ""
+"Èia áveskite papildomà tekstà, kuris bus pridëtas Jûsø kvietimo á forumà\n"
+" arba praneðimo apie átraukimà á forumà pradþioje\n"
+" Praleiskite bent vienà tuðèià eilutæ pabaigoje..."
+
+#: Mailman/Cgi/admin.py:1112
+msgid "Send unsubscription acknowledgement to the user?"
+msgstr "Ar praneðti apie atsisisakymà forumo savininkui?"
+
+#: Mailman/Cgi/admin.py:1120
+msgid "Send notifications to the list owner?"
+msgstr "Ar praneðti forumo savininkui?"
+
+#: Mailman/Cgi/admin.py:1142
+msgid "Change list ownership passwords"
+msgstr "Pakesiti forumo sàvininko slaptaþodþius"
+
+#: Mailman/Cgi/admin.py:1145
+#, fuzzy
+msgid ""
+"The <em>list administrators</em> are the people who have ultimate control over\n"
+"all parameters of this mailing list. They are able to change any list\n"
+"configuration variable available through these administration web pages.\n"
+"\n"
+"<p>The <em>list moderators</em> have more limited permissions; they are not\n"
+"able to change any list configuration variable, but they are allowed to tend\n"
+"to pending administration requests, including approving or rejecting held\n"
+"subscription requests, and disposing of held postings. Of course, the\n"
+"<em>list administrators</em> can also tend to pending requests.\n"
+"\n"
+"<p>In order to split the list ownership duties into administrators and\n"
+"moderators, you must set a separate moderator password in the fields below,\n"
+"and also provide the email addresses of the list moderators in the\n"
+"<a href=\"%(adminurl)s/general\">general options section</a>."
+msgstr ""
+"The <em>list administrators</em> are the people who have ultimate control over\n"
+"all parameters of this mailing list. They are able to change any list\n"
+"configuration variable available through these administration web pages.\n"
+"\n"
+"<p>The <em>list moderators</em> have more limited permissions; they are not\n"
+"able to change any list configuration variable, but they are allowed to tend\n"
+"to pending administration requests, including approving or rejecting held\n"
+"subscription requests, and disposing of held postings. Of course, the\n"
+"<em>list administrators</em> can also tend to pending requests.\n"
+"\n"
+"<p>In order to split the list ownership duties into administrators and\n"
+"moderators, you must set a separate moderator password in the fields below,\n"
+"and also provide the email addresses of the list moderators in the\n"
+"<a href=\"%(adminurl)s/general\">general options section</a>."
+
+#: Mailman/Cgi/admin.py:1164
+msgid "Enter new administrator password:"
+msgstr "Áveskite naujà administratoriaus slaptaþodá:"
+
+#: Mailman/Cgi/admin.py:1166
+msgid "Confirm administator password:"
+msgstr "Patvirtinkite administratoriaus slaptaþodá:"
+
+#: Mailman/Cgi/admin.py:1171
+msgid "Enter new moderator password:"
+msgstr "Áveskite naujà moderatoriaus slaptaþodá:"
+
+#: Mailman/Cgi/admin.py:1173
+msgid "Confirm moderator password:"
+msgstr "Patvirtinkite moderatoriaus slaptaþodá:"
+
+#: Mailman/Cgi/admin.py:1183
+msgid "Submit Your Changes"
+msgstr "Patvirtinti Jûsø pakeitimus"
+
+#: Mailman/Cgi/admin.py:1206
+msgid "Moderator passwords did not match"
+msgstr "Neatitinka moderatoriaus slaptaþodis"
+
+#: Mailman/Cgi/admin.py:1216
+msgid "Administator passwords did not match"
+msgstr "Neatitinka administratoriaus slaptaþodis"
+
+#: Mailman/Cgi/admin.py:1265
+msgid "Already a member"
+msgstr "Jau dalyvis"
+
+#: Mailman/Cgi/admin.py:1268
+#, fuzzy
+msgid "&lt;blank line&gt;"
+msgstr "&lt;tuðèia eilutë&gt;"
+
+#: Mailman/Cgi/admin.py:1269
+#: Mailman/Cgi/admin.py:1272
+msgid "Bad/Invalid email address"
+msgstr "Neteisingas el. paðto adresas"
+
+#: Mailman/Cgi/admin.py:1275
+#, fuzzy
+msgid "Hostile address (illegal characters)"
+msgstr "Hostile address (illegal characters)"
+
+#: Mailman/Cgi/admin.py:1280
+msgid "Successfully invited:"
+msgstr "Sëkmingai pakviesti:"
+
+#: Mailman/Cgi/admin.py:1282
+msgid "Successfully subscribed:"
+msgstr "Sëkmingai uþsisakë"
+
+#: Mailman/Cgi/admin.py:1287
+msgid "Error inviting:"
+msgstr "Nesëkmingai kviesti:"
+
+#: Mailman/Cgi/admin.py:1289
+msgid "Error subscribing:"
+msgstr "Nesëkmingai uþsisakinëjo:"
+
+#: Mailman/Cgi/admin.py:1318
+msgid "Successfully Unsubscribed:"
+msgstr "Sëkmingai atsisakë:"
+
+#: Mailman/Cgi/admin.py:1323
+msgid "Cannot unsubscribe non-members:"
+msgstr "Ne nariai neturi ko atsisakyti:"
+
+#: Mailman/Cgi/admin.py:1335
+#, fuzzy
+msgid "Bad moderation flag value"
+msgstr "Bad moderation flag value"
+
+#: Mailman/Cgi/admin.py:1356
+msgid "Not subscribed"
+msgstr "Neuþsisakæs"
+
+#: Mailman/Cgi/admin.py:1359
+#, fuzzy
+msgid "Ignoring changes to deleted member: %(user)s"
+msgstr "Ignoring changes to deleted member: %(user)s"
+
+#: Mailman/Cgi/admin.py:1399
+msgid "Successfully Removed:"
+msgstr "Sëkmingai paðalinti:"
+
+#: Mailman/Cgi/admin.py:1403
+msgid "Error Unsubscribing:"
+msgstr "Klaida atsisakant:"
+
+#: Mailman/Cgi/admindb.py:159
+#: Mailman/Cgi/admindb.py:167
+#, fuzzy
+msgid "%(realname)s Administrative Database"
+msgstr "%(realname)s Administrative Database"
+
+#: Mailman/Cgi/admindb.py:162
+#, fuzzy
+msgid "%(realname)s Administrative Database Results"
+msgstr "%(realname)s Administrative Database Results"
+
+#: Mailman/Cgi/admindb.py:170
+#, fuzzy
+msgid "There are no pending requests."
+msgstr "There are no pending requests."
+
+#: Mailman/Cgi/admindb.py:173
+msgid "Click here to reload this page."
+msgstr "Paspaskite èia puslapiui perkrauti."
+
+#: Mailman/Cgi/admindb.py:184
+#, fuzzy
+msgid "Detailed instructions for the administrative database"
+msgstr "Iðsami administratvimo db instrukcija"
+
+#: Mailman/Cgi/admindb.py:188
+#, fuzzy
+msgid "Administrative requests for mailing list:"
+msgstr "Priþiûrëtojo prisijungimas forumui:"
+
+#: Mailman/Cgi/admindb.py:191
+#: Mailman/Cgi/admindb.py:233
+msgid "Submit All Data"
+msgstr "Pristatyti visus duomenis"
+
+#: Mailman/Cgi/admindb.py:204
+#, fuzzy
+msgid "all of %(esender)s's held messages."
+msgstr "all of %(esender)s's held messages."
+
+#: Mailman/Cgi/admindb.py:209
+#, fuzzy
+msgid "a single held message."
+msgstr "a single held message."
+
+#: Mailman/Cgi/admindb.py:214
+#, fuzzy
+msgid "all held messages."
+msgstr "all held messages."
+
+#: Mailman/Cgi/admindb.py:248
+#, fuzzy
+msgid "Mailman Administrative Database Error"
+msgstr "Mailman Administrative Database Error"
+
+#: Mailman/Cgi/admindb.py:253
+#, fuzzy
+msgid "list of available mailing lists."
+msgstr "list of available mailing lists."
+
+#: Mailman/Cgi/admindb.py:254
+#, fuzzy
+msgid "You must specify a list name. Here is the %(link)s"
+msgstr "You must specify a list name. Here is the %(link)s"
+
+#: Mailman/Cgi/admindb.py:267
+#, fuzzy
+msgid "Subscription Requests"
+msgstr "Uþsisakymo Praðymas"
+
+#: Mailman/Cgi/admindb.py:269
+#, fuzzy
+msgid "Address/name"
+msgstr "Address/name"
+
+#: Mailman/Cgi/admindb.py:270
+#: Mailman/Cgi/admindb.py:316
+msgid "Your decision"
+msgstr "Tavo sprendimas"
+
+#: Mailman/Cgi/admindb.py:271
+#: Mailman/Cgi/admindb.py:317
+msgid "Reason for refusal"
+msgstr "Atmetimo prieþastis"
+
+#: Mailman/Cgi/admindb.py:286
+#: Mailman/Cgi/admindb.py:334
+#: Mailman/Cgi/admindb.py:373
+#: Mailman/Cgi/admindb.py:589
+msgid "Defer"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:287
+#: Mailman/Cgi/admindb.py:335
+#: Mailman/Cgi/admindb.py:589
+msgid "Approve"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:288
+#: Mailman/Cgi/admindb.py:336
+#: Mailman/Cgi/admindb.py:373
+#: Mailman/Cgi/admindb.py:589
+#: Mailman/Gui/ContentFilter.py:37
+#: Mailman/Gui/Privacy.py:207
+#: Mailman/Gui/Privacy.py:281
+msgid "Reject"
+msgstr "Atmesti"
+
+#: Mailman/Cgi/admindb.py:289
+#: Mailman/Cgi/admindb.py:337
+#: Mailman/Cgi/admindb.py:373
+#: Mailman/Cgi/admindb.py:589
+#: Mailman/Gui/ContentFilter.py:37
+#: Mailman/Gui/Privacy.py:207
+#: Mailman/Gui/Privacy.py:281
+msgid "Discard"
+msgstr "Atsisakyti"
+
+#: Mailman/Cgi/admindb.py:297
+msgid "Permanently ban from this list"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:313
+msgid "Unsubscription Requests"
+msgstr "Atsisakymo praðymas"
+
+#: Mailman/Cgi/admindb.py:315
+msgid "User address/name"
+msgstr "Vartotojo duomenys"
+
+#: Mailman/Cgi/admindb.py:366
+#: Mailman/Cgi/admindb.py:573
+msgid "From:"
+msgstr "Nuo:"
+
+#: Mailman/Cgi/admindb.py:369
+msgid "Action to take on all these held messages:"
+msgstr "Veiksmai, atliekami su visomis ðiomis þinutëmis"
+
+#: Mailman/Cgi/admindb.py:373
+#: Mailman/Gui/Privacy.py:281
+msgid "Accept"
+msgstr "Priimti"
+
+#: Mailman/Cgi/admindb.py:381
+msgid "Preserve messages for the site administrator"
+msgstr "Iðsaugoti þinutæ administratoriui"
+
+#: Mailman/Cgi/admindb.py:387
+msgid "Forward messages (individually) to:"
+msgstr "Persiøsti þinutæ (asmeniðkai) kam:"
+
+#: Mailman/Cgi/admindb.py:405
+msgid "Clear this member's <em>moderate</em> flag"
+msgstr "Paðalinti ðio dalyvio þymæ <em>moderate</em>"
+
+#: Mailman/Cgi/admindb.py:415
+msgid "Add <b>%(esender)s</b> to a sender filter"
+msgstr "Pridëti <b>%(esender)s</b> á siuntëjø filtrà"
+
+#: Mailman/Cgi/admindb.py:420
+msgid "Accepts"
+msgstr "Priimtieji"
+
+#: Mailman/Cgi/admindb.py:420
+msgid "Discards"
+msgstr "Atsisakyta"
+
+#: Mailman/Cgi/admindb.py:420
+msgid "Holds"
+msgstr "Iðlaikyta"
+
+#: Mailman/Cgi/admindb.py:420
+msgid "Rejects"
+msgstr "Atmesta"
+
+#: Mailman/Cgi/admindb.py:429
+msgid "Ban <b>%(esender)s</b> from ever subscribing to this\n"
+" mailing list"
+msgstr "Iðmesti <b>%(esender)s</b> ið ðio\n"
+" forumo"
+
+#: Mailman/Cgi/admindb.py:434
+msgid "Click on the message number to view the individual\n"
+" message, or you can "
+msgstr "Spustelkite laiðko numerá, jei norite já perþiûrëti,\n"
+" arba galite "
+
+#: Mailman/Cgi/admindb.py:436
+msgid "view all messages from %(esender)s"
+msgstr "Parodyti þinutes, kurias iðsiuntë %(esender)s"
+
+#: Mailman/Cgi/admindb.py:456
+#: Mailman/Cgi/admindb.py:576
+msgid "Subject:"
+msgstr "Tema:"
+
+#: Mailman/Cgi/admindb.py:459
+msgid " bytes"
+msgstr " baitai(-ø)"
+
+#: Mailman/Cgi/admindb.py:459
+msgid "Size:"
+msgstr "Dydis:"
+
+#: Mailman/Cgi/admindb.py:460
+#: Mailman/Cgi/admindb.py:578
+msgid "Reason:"
+msgstr "Prieþastis:"
+
+#: Mailman/Cgi/admindb.py:461
+#: Mailman/Handlers/Decorate.py:49
+#: Mailman/Handlers/Scrubber.py:194
+#: Mailman/Handlers/Scrubber.py:195
+msgid "not available"
+msgstr "Negalima"
+
+#: Mailman/Cgi/admindb.py:465
+#: Mailman/Cgi/admindb.py:582
+msgid "Received:"
+msgstr "Gautas:"
+
+#: Mailman/Cgi/admindb.py:522
+msgid "Posting Held for Approval"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:524
+msgid " (%(count)d of %(total)d)"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:535
+msgid "<em>Message with id #%(id)d was lost."
+msgstr "<em>Prarasta þinutë id #%(id)d."
+
+#: Mailman/Cgi/admindb.py:544
+msgid "<em>Message with id #%(id)d is corrupted."
+msgstr "<em>Pagadinta þinutë #%(id)d."
+
+#: Mailman/Cgi/admindb.py:595
+msgid "Action:"
+msgstr "Veiksmas:"
+
+#: Mailman/Cgi/admindb.py:599
+msgid "Preserve message for site administrator"
+msgstr "Iðsaugoti þinutæ administratoriui"
+
+#: Mailman/Cgi/admindb.py:603
+msgid "Additionally, forward this message to: "
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:607
+msgid "[No explanation given]"
+msgstr "[Nenurodyta prieþastis]"
+
+#: Mailman/Cgi/admindb.py:609
+msgid "If you reject this post,<br>please explain (optional):"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:615
+msgid "Message Headers:"
+msgstr "Þinuèiø antraðtes:"
+
+#: Mailman/Cgi/admindb.py:620
+msgid "Message Excerpt:"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:653
+#: Mailman/Deliverer.py:124
+msgid "No reason given"
+msgstr "Nenurodyta prieþastis"
+
+#: Mailman/Cgi/admindb.py:714
+#: Mailman/ListAdmin.py:308
+#: Mailman/ListAdmin.py:429
+msgid "[No reason given]"
+msgstr "[Nenurodyta prieþastis]"
+
+#: Mailman/Cgi/admindb.py:743
+msgid "Database Updated..."
+msgstr "Duomenø bazë atnaujinta..."
+
+#: Mailman/Cgi/admindb.py:746
+msgid " is already a member"
+msgstr "forumo dalyvis nuo seniau"
+
+#: Mailman/Cgi/confirm.py:69
+msgid "Confirmation string was empty."
+msgstr "Tuðèia patvirtinimo eilutë."
+
+#: Mailman/Cgi/confirm.py:89
+msgid ""
+"<b>Invalid confirmation string:</b>\n"
+" %(safecookie)s.\n"
+"\n"
+" <p>Note that confirmation strings expire approximately\n"
+" %(days)s days after the initial subscription request. If your\n"
+" confirmation has expired, please try to re-submit your subscription.\n"
+" Otherwise, <a href=\"%(confirmurl)s\">re-enter</a> your confirmation\n"
+" string."
+msgstr ""
+"<b>Neteisinga patvirtinimo eilutë:</b>\n"
+" %(safecookie)s.\n"
+"\n"
+" <p>Atminkite, kad patvirtinimo eilutës galiojimas baigiasi praëjus maþdaug\n"
+" %(days)s dienom po pirmo praðymo prisijungti. Jeigu jûsø\n"
+" patvirtinimo galiojimo laikas baigësi, pabandykite ið naujo prisiregistruoti.\n"
+" Prieðingu atveju, <a href=\"%(confirmurl)s\">ið naujo áveskite</a> patvirtinimo eilutæ."
+
+#: Mailman/Cgi/confirm.py:131
+msgid ""
+"The address requesting to be changed has\n"
+" been subsequently unsubscribed. This request has been\n"
+" cancelled"
+msgstr "Praðantis adresas sëkmingai atjungtas nuo forumo.\n"
+" Ði uþklausa\n"
+" atmesta"
+
+#: Mailman/Cgi/confirm.py:150
+msgid "System error, bad content: %(content)s"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:160
+msgid "Bad confirmation string"
+msgstr "Bloga patvirtinimo eilutë"
+
+#: Mailman/Cgi/confirm.py:168
+msgid "Enter confirmation cookie"
+msgstr "Áveskite patvirtinimo eilutæ"
+
+#: Mailman/Cgi/confirm.py:181
+msgid ""
+"Please enter the confirmation string\n"
+" (i.e. <em>cookie</em>) that you received in your email message, in the box\n"
+" below. Then hit the <em>Submit</em> button to proceed to the next\n"
+" confirmation step."
+msgstr ""
+"Praðome ávesti patvirtinimo eilutæ,\n"
+" kurià gavote laiðku, þemiau esanèiame laukelyje.\n"
+" Tada paspauskite <em>Iðsiøsti</em> mygtukà ir pateksite á sekantá\n"
+" registracijos etapà."
+
+#: Mailman/Cgi/confirm.py:186
+msgid "Confirmation string:"
+msgstr "Patvirtinimo eilutë:"
+
+#: Mailman/Cgi/confirm.py:188
+msgid "Submit"
+msgstr "Iðsiøsti"
+
+#: Mailman/Cgi/confirm.py:203
+msgid "Confirm subscription request"
+msgstr "Patvirtinkite uþsisakymà"
+
+#: Mailman/Cgi/confirm.py:220
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" subscription request to the mailing list <em>%(listname)s</em>. Your\n"
+" subscription settings are shown below; make any necessary changes and hit\n"
+" <em>Subscribe</em> to complete the confirmation process. Once you've\n"
+" confirmed your subscription request, you will be shown your account\n"
+" options page which you can use to further customize your membership\n"
+" options.\n"
+"\n"
+" <p>Note: your password will be emailed to you once your subscription is\n"
+" confirmed. You can change it by visiting your personal options page.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this subscription\n"
+" request."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:235
+msgid ""
+"Your confirmation is required in order to continue with\n"
+" the subscription request to the mailing list <em>%(listname)s</em>.\n"
+" Your subscription settings are shown below; make any necessary changes\n"
+" and hit <em>Subscribe to list ...</em> to complete the confirmation\n"
+" process. Once you've confirmed your subscription request, the\n"
+" moderator must approve or reject your membership request. You will\n"
+" receive notice of their decision.\n"
+"\n"
+" <p>Note: your password will be emailed to you once your subscription\n"
+" is confirmed. You can change it by visiting your personal options\n"
+" page.\n"
+"\n"
+" <p>Or, if you've changed your mind and do not want to subscribe to\n"
+" this mailing list, you can hit <em>Cancel my subscription\n"
+" request</em>."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:253
+msgid "Your email address:"
+msgstr "Jûsø el. paðto adresas:"
+
+#: Mailman/Cgi/confirm.py:254
+msgid "Your real name:"
+msgstr "Jûsø tikras vardas:"
+
+#: Mailman/Cgi/confirm.py:263
+msgid "Receive digests?"
+msgstr "Siøsti santraukas?"
+
+#: Mailman/Cgi/confirm.py:272
+msgid "Preferred language:"
+msgstr "Pagrindinë kalba"
+
+#: Mailman/Cgi/confirm.py:277
+msgid "Cancel my subscription request"
+msgstr "Panaikinti mano uþsisakymà"
+
+#: Mailman/Cgi/confirm.py:278
+msgid "Subscribe to list %(listname)s"
+msgstr "Uþsisakyti %(listname)s"
+
+#: Mailman/Cgi/confirm.py:288
+msgid "You have canceled your subscription request."
+msgstr "Nutraukëte savo uþsakymo praðymà."
+
+#: Mailman/Cgi/confirm.py:322
+msgid "Awaiting moderator approval"
+msgstr "Laukiama priþiûrëtojo patvirtinimo"
+
+#: Mailman/Cgi/confirm.py:325
+msgid ""
+" You have successfully confirmed your subscription request to the\n"
+" mailing list %(listname)s, however final approval is required from\n"
+" the list moderator before you will be subscribed. Your request\n"
+" has been forwarded to the list moderator, and you will be notified\n"
+" of the moderator's decision."
+msgstr ""
+" Sëkmingai patvirtinote forumo %(listname)s uþsakymà,\n"
+" taèiau Jûsø uþsakymui bûtinas forumo priþiûrëtojo patvirtinimas,\n"
+" todël Jûsø praðymas perduotas forumo priþiûrëtojui\n"
+" ir Jums bus praneðta apie jo sprendimà.\n"
+" "
+
+#: Mailman/Cgi/confirm.py:332
+#: Mailman/Cgi/confirm.py:387
+#: Mailman/Cgi/confirm.py:475
+#: Mailman/Cgi/confirm.py:698
+msgid ""
+"Invalid confirmation string. It is\n"
+" possible that you are attempting to confirm a request for an\n"
+" address that has already been unsubscribed."
+msgstr ""
+"Neteisinga patvirtinimo eilutë. \n"
+" Gali bûti, kas Jûs bandëte patvirtinti\n"
+" jau atsisakiusio forumo adreso praðymà."
+
+#: Mailman/Cgi/confirm.py:336
+msgid "You are already a member of this mailing list!"
+msgstr "Jûs jau esate ðio furumo dalyvis"
+
+#: Mailman/Cgi/confirm.py:343
+msgid "Subscription request confirmed"
+msgstr "Uþsisakymas patvirtintas"
+
+#: Mailman/Cgi/confirm.py:347
+msgid ""
+" You have successfully confirmed your subscription request for\n"
+" \"%(addr)s\" to the %(listname)s mailing list. A separate\n"
+" confirmation message will be sent to your email address, along\n"
+" with your password, and other useful information and links.\n"
+"\n"
+" <p>You can now\n"
+" <a href=\"%(optionsurl)s\">proceed to your membership login\n"
+" page</a>."
+msgstr ""
+" Jûs (\"%(addr)s\") sëkmingai prisijungëte prie %(listname)s forumo.\n"
+" Gausite dar vienà laiðkà su jûsø slaptaþodþiu\n"
+" bei kita naudinga informacija bei nuorodomis.\n"
+"\n"
+" <p>Dabar galite\n"
+" <a href=\"%(optionsurl)s\">eiti á dalyvio prisijungimo\n"
+" puslapá</a>."
+
+#: Mailman/Cgi/confirm.py:365
+msgid "You have canceled your unsubscription request."
+msgstr "Jûs atmetëte savo atsisakymà."
+
+#: Mailman/Cgi/confirm.py:393
+msgid "Unsubscription request confirmed"
+msgstr "Patvirtintas atsisakymas."
+
+#: Mailman/Cgi/confirm.py:397
+msgid ""
+" You have successfully unsubscribed from the %(listname)s mailing\n"
+" list. You can now <a href=\"%(listinfourl)s\">visit the list's main\n"
+" information page</a>."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:408
+msgid "Confirm unsubscription request"
+msgstr "Patvirtinkite atsisakymo praðymà"
+
+#: Mailman/Cgi/confirm.py:423
+#: Mailman/Cgi/confirm.py:512
+msgid "<em>Not available</em>"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:426
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" unsubscription request from the mailing list <em>%(listname)s</em>. You\n"
+" are currently subscribed with\n"
+"\n"
+" <ul><li><b>Real name:</b> %(fullname)s\n"
+" <li><b>Email address:</b> %(addr)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Unsubscribe</em> button below to complete the confirmation\n"
+" process.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this unsubscription\n"
+" request."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:442
+#: Mailman/Cgi/options.py:659
+#: Mailman/Cgi/options.py:800
+#: Mailman/Cgi/options.py:810
+msgid "Unsubscribe"
+msgstr "Atsisakyti"
+
+#: Mailman/Cgi/confirm.py:443
+#: Mailman/Cgi/confirm.py:541
+msgid "Cancel and discard"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:453
+msgid "You have canceled your change of address request."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:481
+msgid "Change of address request confirmed"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:485
+msgid ""
+" You have successfully changed your address on the %(listname)s\n"
+" mailing list from <b>%(oldaddr)s</b> to <b>%(newaddr)s</b>. You\n"
+" can now <a href=\"%(optionsurl)s\">proceed to your membership\n"
+" login page</a>."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:497
+msgid "Confirm change of address request"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:516
+msgid "globally"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:519
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" change of address request for the mailing list <em>%(listname)s</em>. You\n"
+" are currently subscribed with\n"
+"\n"
+" <ul><li><b>Real name:</b> %(fullname)s\n"
+" <li><b>Old email address:</b> %(oldaddr)s\n"
+" </ul>\n"
+"\n"
+" and you have requested to %(globallys)s change your email address to\n"
+"\n"
+" <ul><li><b>New email address:</b> %(newaddr)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Change address</em> button below to complete the confirmation\n"
+" process.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this change of address\n"
+" request."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:540
+msgid "Change address"
+msgstr "Keisti adresà"
+
+#: Mailman/Cgi/confirm.py:550
+#: Mailman/Cgi/confirm.py:663
+msgid "Continue awaiting approval"
+msgstr "Atstatyti narystæ forume."
+
+#: Mailman/Cgi/confirm.py:557
+msgid "Okay, the list moderator will still have the\n"
+" opportunity to approve or reject this message."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:583
+msgid "Sender discarded message via web."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:585
+msgid ""
+"The held message with the Subject:\n"
+" header <em>%(subject)s</em> could not be found. The most likely\n"
+" reason for this is that the list moderator has already approved or\n"
+" rejected the message. You were not able to cancel it in\n"
+" time."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:593
+msgid "Posted message canceled"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:596
+msgid ""
+" You have successfully canceled the posting of your message with\n"
+" the Subject: header <em>%(subject)s</em> to the mailing list\n"
+" %(listname)s."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:607
+msgid "Cancel held message posting"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:632
+msgid "The held message you were referred to has\n"
+" already been handled by the list administrator."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:646
+msgid ""
+"Your confirmation is required in order to cancel the\n"
+" posting of your message to the mailing list <em>%(listname)s</em>:\n"
+"\n"
+" <ul><li><b>Sender:</b> %(sender)s\n"
+" <li><b>Subject:</b> %(subject)s\n"
+" <li><b>Reason:</b> %(reason)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Cancel posting</em> button to discard the posting.\n"
+"\n"
+" <p>Or hit the <em>Continue awaiting approval</em> button to continue to\n"
+" allow the list moderator to approve or reject the message."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:662
+msgid "Cancel posting"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:674
+msgid ""
+"You have canceled the re-enabling of your membership. If\n"
+" we continue to receive bounces from your address, it could be deleted from\n"
+" this mailing list."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:704
+msgid "Membership re-enabled."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:708
+msgid ""
+" You have successfully re-enabled your membership in the\n"
+" %(listname)s mailing list. You can now <a\n"
+" href=\"%(optionsurl)s\">visit your member options page</a>.\n"
+" "
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:720
+msgid "Re-enable mailing list membership"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:737
+msgid ""
+"We're sorry, but you have already been unsubscribed\n"
+" from this mailing list. To re-subscribe, please visit the\n"
+" <a href=\"%(listinfourl)s\">list information page</a>."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:751
+msgid "<em>not available</em>"
+msgstr "<em>negalima</em>"
+
+#: Mailman/Cgi/confirm.py:755
+msgid ""
+"Your membership in the %(realname)s mailing list is\n"
+" currently disabled due to excessive bounces. Your confirmation is\n"
+" required in order to re-enable delivery to your address. We have the\n"
+" following information on file:\n"
+"\n"
+" <ul><li><b>Member address:</b> %(member)s\n"
+" <li><b>Member name:</b> %(username)s\n"
+" <li><b>Last bounce received on:</b> %(date)s\n"
+" <li><b>Approximate number of days before you are permanently removed\n"
+" from this list:</b> %(daysleft)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Re-enable membership</em> button to resume receiving postings\n"
+" from the mailing list. Or hit the <em>Cancel</em> button to defer\n"
+" re-enabling your membership.\n"
+" "
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:775
+msgid "Re-enable membership"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:776
+msgid "Cancel"
+msgstr "Nutraukti"
+
+#: Mailman/Cgi/create.py:48
+#: Mailman/Cgi/rmlist.py:46
+msgid "Bad URL specification"
+msgstr "Nurodyta neteisinga URL"
+
+#: Mailman/Cgi/create.py:63
+#: Mailman/Cgi/rmlist.py:153
+msgid "Return to the "
+msgstr "Gráþti á "
+
+#: Mailman/Cgi/create.py:65
+#: Mailman/Cgi/rmlist.py:155
+msgid "general list overview"
+msgstr "bendra forumo informacija"
+
+#: Mailman/Cgi/create.py:66
+#: Mailman/Cgi/rmlist.py:156
+msgid "<br>Return to the "
+msgstr "<br>Gráþti á "
+
+#: Mailman/Cgi/create.py:68
+#: Mailman/Cgi/rmlist.py:158
+msgid "administrative list overview"
+msgstr "forumo prieþiûros informacija"
+
+#: Mailman/Cgi/create.py:101
+msgid "List name must not include \"@\": %(listname)s"
+msgstr "Forumo pavadinime nereikia nurodti '@': %(listname)s"
+
+#: Mailman/Cgi/create.py:107
+#: Mailman/Cgi/create.py:185
+#: bin/newlist:134
+#: bin/newlist:168
+msgid "List already exists: %(listname)s"
+msgstr "Forumas %(listname)s jau sukurtas anksèiau"
+
+#: Mailman/Cgi/create.py:111
+msgid "You forgot to enter the list name"
+msgstr "Pamirðote ávesti forumo pavadinimà"
+
+#: Mailman/Cgi/create.py:115
+msgid "You forgot to specify the list owner"
+msgstr "Pamirðote ávesti forumo kûrëjà"
+
+#: Mailman/Cgi/create.py:122
+msgid ""
+"Leave the initial password (and confirmation) fields\n"
+" blank if you want Mailman to autogenerate the list\n"
+" passwords."
+msgstr ""
+
+#: Mailman/Cgi/create.py:130
+msgid "Initial list passwords do not match"
+msgstr "Pradinis forumo slaptaþodis neatitinka"
+
+#: Mailman/Cgi/create.py:139
+msgid "The list password cannot be empty<!-- ignore -->"
+msgstr "Forumo slaptaþodis negali bûti tuðèias<!-- ignore -->"
+
+#: Mailman/Cgi/create.py:151
+msgid "You are not authorized to create new mailing lists"
+msgstr "Jûs neturite teisës kurti naujus forumus"
+
+#: Mailman/Cgi/create.py:181
+#: bin/newlist:166
+msgid "Bad owner email address: %(s)s"
+msgstr "Blogas savininko adresas: %(s)s"
+
+#: Mailman/Cgi/create.py:189
+#: bin/newlist:164
+msgid "Illegal list name: %(s)s"
+msgstr "Blogas forumo pavadinimas: %(s)s"
+
+#: Mailman/Cgi/create.py:194
+msgid "Some unknown error occurred while creating the list.\n"
+" Please contact the site administrator for assistance."
+msgstr ""
+
+#: Mailman/Cgi/create.py:233
+#: bin/newlist:210
+msgid "Your new mailing list: %(listname)s"
+msgstr "Naujas Jûsø forumas: %(listname)s"
+
+#: Mailman/Cgi/create.py:242
+msgid "Mailing list creation results"
+msgstr "Forumo sukûrimo rezultatai"
+
+#: Mailman/Cgi/create.py:248
+msgid ""
+"You have successfully created the mailing list\n"
+" <b>%(listname)s</b> and notification has been sent to the list owner\n"
+" <b>%(owner)s</b>. You can now:"
+msgstr ""
+
+#: Mailman/Cgi/create.py:252
+msgid "Visit the list's info page"
+msgstr "Aplankykite forumo informacijos puslapá"
+
+#: Mailman/Cgi/create.py:253
+msgid "Visit the list's admin page"
+msgstr "Aplankykite forumo prieþiûros puslapá"
+
+#: Mailman/Cgi/create.py:254
+msgid "Create another list"
+msgstr "Sukurti kità forumà"
+
+#: Mailman/Cgi/create.py:272
+msgid "Create a %(hostname)s Mailing List"
+msgstr "Sukurti forumà %(hostname)s"
+
+#: Mailman/Cgi/create.py:281
+#: Mailman/Cgi/rmlist.py:176
+#: Mailman/Gui/Bounce.py:175
+#: Mailman/htmlformat.py:339
+msgid "Error: "
+msgstr "Klaida: "
+
+#: Mailman/Cgi/create.py:283
+msgid ""
+"You can create a new mailing list by entering the\n"
+" relevant information into the form below. The name of the mailing list\n"
+" will be used as the primary address for posting messages to the list, so\n"
+" it should be lowercased. You will not be able to change this once the\n"
+" list is created.\n"
+"\n"
+" <p>You also need to enter the email address of the initial list owner.\n"
+" Once the list is created, the list owner will be given notification, along\n"
+" with the initial list password. The list owner will then be able to\n"
+" modify the password and add or remove additional list owners.\n"
+"\n"
+" <p>If you want Mailman to automatically generate the initial list admin\n"
+" password, click on `Yes' in the autogenerate field below, and leave the\n"
+" initial list password fields empty.\n"
+"\n"
+" <p>You must have the proper authorization to create new mailing lists.\n"
+" Each site should have a <em>list creator's</em> password, which you can\n"
+" enter in the field at the bottom. Note that the site administrator's\n"
+" password can also be used for authentication.\n"
+" "
+msgstr ""
+
+#: Mailman/Cgi/create.py:309
+msgid "List Identity"
+msgstr "Forumas"
+
+#: Mailman/Cgi/create.py:312
+msgid "Name of list:"
+msgstr "Forumo pavadinimas:"
+
+#: Mailman/Cgi/create.py:317
+msgid "Initial list owner address:"
+msgstr "Pradinis forumo savininko adresas"
+
+#: Mailman/Cgi/create.py:326
+msgid "Auto-generate initial list password?"
+msgstr ""
+
+#: Mailman/Cgi/create.py:333
+msgid "Initial list password:"
+msgstr ""
+
+#: Mailman/Cgi/create.py:338
+msgid "Confirm initial password:"
+msgstr ""
+
+#: Mailman/Cgi/create.py:348
+msgid "List Characteristics"
+msgstr "Forumo Savybës"
+
+#: Mailman/Cgi/create.py:352
+msgid ""
+"Should new members be quarantined before they\n"
+" are allowed to post unmoderated to this list? Answer <em>Yes</em> to hold\n"
+" new member postings for moderator approval by default."
+msgstr ""
+
+#: Mailman/Cgi/create.py:375
+msgid ""
+"Initial list of supported languages. <p>Note that if you do not\n"
+" select at least one initial language, the list will use the server\n"
+" default language of %(deflang)s"
+msgstr ""
+
+#: Mailman/Cgi/create.py:386
+msgid "Send \"list created\" email to list owner?"
+msgstr ""
+
+#: Mailman/Cgi/create.py:395
+msgid "List creator's (authentication) password:"
+msgstr "Forumo kûrëjo slaptaþodis:"
+
+#: Mailman/Cgi/create.py:400
+msgid "Create List"
+msgstr "Sukurti Forumà"
+
+#: Mailman/Cgi/create.py:401
+msgid "Clear Form"
+msgstr ""
+
+#: Mailman/Cgi/edithtml.py:43
+msgid "General list information page"
+msgstr ""
+
+#: Mailman/Cgi/edithtml.py:44
+msgid "Subscribe results page"
+msgstr "Uþsakymo rezultatø puslapis"
+
+#: Mailman/Cgi/edithtml.py:45
+msgid "User specific options page"
+msgstr "Vartotojo asmeniniai nustatymai"
+
+#: Mailman/Cgi/edithtml.py:57
+msgid "List name is required."
+msgstr "Bûtinas forumo pavadinimas"
+
+#: Mailman/Cgi/edithtml.py:97
+msgid "%(realname)s -- Edit html for %(template_info)s"
+msgstr "%(realname)s -- Redaguoti %(template_info)s HTML"
+
+#: Mailman/Cgi/edithtml.py:103
+msgid "Edit HTML : Error"
+msgstr "Redaguoti HYML : Klaida"
+
+#: Mailman/Cgi/edithtml.py:104
+msgid "%(safetemplatename)s: Invalid template"
+msgstr ""
+
+#: Mailman/Cgi/edithtml.py:109
+#: Mailman/Cgi/edithtml.py:110
+msgid "%(realname)s -- HTML Page Editing"
+msgstr "%(realname)s -- HTML Puslapio Redagavimas"
+
+#: Mailman/Cgi/edithtml.py:111
+msgid "Select page to edit:"
+msgstr ""
+
+#: Mailman/Cgi/edithtml.py:137
+msgid "View or edit the list configuration information."
+msgstr "Perþiûrëti arba redaguoti forumo nustatymus."
+
+#: Mailman/Cgi/edithtml.py:145
+msgid "When you are done making changes..."
+msgstr "Kai ávedinëjate pakeitimus..."
+
+#: Mailman/Cgi/edithtml.py:146
+msgid "Submit Changes"
+msgstr "Iðsiøsti Pakeitimus"
+
+#: Mailman/Cgi/edithtml.py:153
+msgid "Can't have empty html page."
+msgstr "HTML negali bûti tuðèias."
+
+#: Mailman/Cgi/edithtml.py:154
+msgid "HTML Unchanged."
+msgstr "HTML nepakeistas."
+
+#: Mailman/Cgi/edithtml.py:169
+msgid "HTML successfully updated."
+msgstr "HTML sëkmingai atnaujintas."
+
+#: Mailman/Cgi/listinfo.py:71
+msgid "%(hostname)s Mailing Lists"
+msgstr "%(hostname)s forumai"
+
+#: Mailman/Cgi/listinfo.py:103
+msgid "<p>There currently are no publicly-advertised\n"
+" %(mailmanlink)s mailing lists on %(hostname)s."
+msgstr ""
+
+#: Mailman/Cgi/listinfo.py:107
+msgid ""
+"<p>Below is a listing of all the public mailing lists on\n"
+" %(hostname)s. Click on a list name to get more information about\n"
+" the list, or to subscribe, unsubscribe, and change the preferences\n"
+" on your subscription."
+msgstr ""
+"<p>Èia yra vieðai skelbiamø\n"
+" %(hostname)s forumø sàraðas.\n"
+" Spustelkite forumo pavadinimà, jei norite daugiau suþinoti apie forumà,\n"
+" taip pat já uþsisakyti arba jo atsisakyti."
+
+#: Mailman/Cgi/listinfo.py:113
+msgid "right"
+msgstr "deðinë"
+
+#: Mailman/Cgi/listinfo.py:116
+msgid ""
+" To visit the general information page for an unadvertised list,\n"
+" open a URL similar to this one, but with a '/' and the %(adj)s\n"
+" list name appended.\n"
+" <p>List administrators, you can visit "
+msgstr ""
+" Norëdami aplankyti neskelbiamo forumo pagrindiná puslapá,\n"
+" áraðykite URL panaðø á ðá, tik pridëjæ '/' bei %(adj)s\n"
+" forumo pavadinimà.\n"
+" <p>Forumø administratoriams: aplankæ "
+
+#: Mailman/Cgi/listinfo.py:121
+msgid "the list admin overview page"
+msgstr "forumø administratoriø pagrindinis puslapis"
+
+#: Mailman/Cgi/listinfo.py:122
+msgid " to find the management interface for your list.\n"
+" <p>Send questions or comments to "
+msgstr " rasite jûsø forumo valdymo sàsajà.\n"
+" <p>Klausimus bei atsiliepimus siøskite "
+
+#: Mailman/Cgi/listinfo.py:183
+msgid "Edit Options"
+msgstr "Keisti nustatymus"
+
+#: Mailman/Cgi/listinfo.py:190
+#: Mailman/Cgi/options.py:766
+#: Mailman/Cgi/roster.py:111
+msgid "View this page in"
+msgstr "þiûrëti ðá puslapá"
+
+#: Mailman/Cgi/options.py:50
+#: Mailman/Cgi/options.py:67
+msgid "CGI script error"
+msgstr "CFI skripto klaida"
+
+#: Mailman/Cgi/options.py:53
+msgid "Invalid options to CGI script."
+msgstr ""
+
+#: Mailman/Cgi/options.py:95
+msgid "No address given"
+msgstr "Neávestas adresas"
+
+#: Mailman/Cgi/options.py:107
+#: Mailman/Cgi/options.py:154
+#: Mailman/Cgi/options.py:176
+msgid "No such member: %(safeuser)s."
+msgstr "Nëra tokio vartotojo: %(safeuser)s."
+
+#: Mailman/Cgi/options.py:149
+#: Mailman/Cgi/options.py:159
+msgid "The confirmation email has been sent."
+msgstr "Jums iðsiøstas patvirtinimas."
+
+#: Mailman/Cgi/options.py:170
+#: Mailman/Cgi/options.py:182
+#: Mailman/Cgi/options.py:225
+msgid "A reminder of your password has been emailed to you."
+msgstr "Jums iðsiøstas slaptaþodþio priminimas."
+
+#: Mailman/Cgi/options.py:199
+msgid "Authentication failed."
+msgstr "Nesëkmingas prisijungimas."
+
+#: Mailman/Cgi/options.py:231
+msgid "List subscriptions for %(user)s on %(hostname)s"
+msgstr "Iðvardinti %(user)s uþsisakymus serveryje %(hostname)s"
+
+#: Mailman/Cgi/options.py:234
+msgid "Click on a link to visit your options page for the\n"
+" requested mailing list."
+msgstr ""
+
+#: Mailman/Cgi/options.py:283
+msgid "Addresses did not match!"
+msgstr ""
+
+#: Mailman/Cgi/options.py:288
+msgid "You are already using that email address"
+msgstr ""
+
+#: Mailman/Cgi/options.py:300
+msgid ""
+"The new address you requested %(newaddr)s is already a member of the\n"
+"%(listname)s mailing list, however you have also requested a global change of\n"
+"address. Upon confirmation, any other mailing list containing the address\n"
+"%(user)s will be changed. "
+msgstr ""
+
+#: Mailman/Cgi/options.py:309
+msgid "The new address is already a member: %(newaddr)s"
+msgstr "Naujasis adresas %(newaddr)s jau forumo dalyvis"
+
+#: Mailman/Cgi/options.py:315
+msgid "Addresses may not be blank"
+msgstr "Negalima praleisti adreso"
+
+#: Mailman/Cgi/options.py:327
+msgid "A confirmation message has been sent to %(newaddr)s. "
+msgstr "%(newaddr)s iðsiøstas patvirtinimo laiðkas."
+
+#: Mailman/Cgi/options.py:336
+msgid "Bad email address provided"
+msgstr "Neteisingas adresas"
+
+#: Mailman/Cgi/options.py:338
+msgid "Illegal email address provided"
+msgstr "Neteisingas adresas"
+
+#: Mailman/Cgi/options.py:340
+msgid "%(newaddr)s is already a member of the list."
+msgstr "%(newaddr)s ðio forumo dalyvis nuo anksèiau."
+
+#: Mailman/Cgi/options.py:349
+msgid "Member name successfully changed. "
+msgstr "Dalyvio vardas sëkmingai pakeistas. "
+
+#: Mailman/Cgi/options.py:360
+msgid "Passwords may not be blank"
+msgstr "Slaptaþodis negali bûti tuðèias"
+
+#: Mailman/Cgi/options.py:365
+msgid "Passwords did not match!"
+msgstr "Slaptaþodþiai nesutampa!"
+
+#: Mailman/Cgi/options.py:380
+#: Mailman/Commands/cmd_password.py:79
+#: Mailman/Commands/cmd_password.py:105
+msgid "Password successfully changed."
+msgstr "Slaptaþodis sëkmingai pakeistas."
+
+#: Mailman/Cgi/options.py:389
+msgid ""
+"You must confirm your unsubscription request by turning\n"
+" on the checkbox below the <em>Unsubscribe</em> button. You\n"
+" have not been unsubscribed!"
+msgstr ""
+
+#: Mailman/Cgi/options.py:421
+msgid "Unsubscription results"
+msgstr "Atsisakymo rezultatai"
+
+#: Mailman/Cgi/options.py:425
+msgid ""
+"Your unsubscription request has been received and\n"
+" forwarded on to the list moderators for approval. You will\n"
+" receive notification once the list moderators have made their\n"
+" decision."
+msgstr ""
+
+#: Mailman/Cgi/options.py:430
+msgid ""
+"You have been successfully unsubscribed from the\n"
+" mailing list %(fqdn_listname)s. If you were receiving digest\n"
+" deliveries you may get one more digest. If you have any questions\n"
+" about your unsubscription, please contact the list owners at\n"
+" %(owneraddr)s."
+msgstr ""
+
+#: Mailman/Cgi/options.py:581
+msgid ""
+"The list administrator has disabled digest delivery for\n"
+" this list, so your delivery option has not been set. However your\n"
+" other options have been set successfully."
+msgstr ""
+
+#: Mailman/Cgi/options.py:585
+msgid ""
+"The list administrator has disabled non-digest delivery\n"
+" for this list, so your delivery option has not been set. However\n"
+" your other options have been set successfully."
+msgstr ""
+
+#: Mailman/Cgi/options.py:589
+msgid "You have successfully set your options."
+msgstr "Sëkmingai áraðëte nustatymus."
+
+#: Mailman/Cgi/options.py:592
+msgid "You may get one last digest."
+msgstr "Gausite vienà paskutiná rinkiná."
+
+#: Mailman/Cgi/options.py:661
+msgid "<em>Yes, I really want to unsubscribe</em>"
+msgstr "<em>Taip, að tikrai noriu atsisakyti</em>"
+
+#: Mailman/Cgi/options.py:665
+msgid "Change My Password"
+msgstr "Pakeiskite mano slaptaþodá"
+
+#: Mailman/Cgi/options.py:668
+msgid "List my other subscriptions"
+msgstr "Parodyti kitus mano uþsisakytus forumus"
+
+#: Mailman/Cgi/options.py:674
+msgid "Email My Password To Me"
+msgstr "Iðsiøskite man mano slaptaþodá"
+
+#: Mailman/Cgi/options.py:676
+msgid "password"
+msgstr "Slaptaþodis"
+
+#: Mailman/Cgi/options.py:678
+msgid "Log out"
+msgstr "Atsijungti"
+
+#: Mailman/Cgi/options.py:680
+msgid "Submit My Changes"
+msgstr "Patvirtinti mano pakeitimus"
+
+#: Mailman/Cgi/options.py:692
+msgid "days"
+msgstr "dienø"
+
+#: Mailman/Cgi/options.py:694
+msgid "day"
+msgstr "diena"
+
+#: Mailman/Cgi/options.py:695
+msgid "%(days)d %(units)s"
+msgstr ""
+
+#: Mailman/Cgi/options.py:701
+msgid "Change My Address and Name"
+msgstr "Pakeisti Mano Adresà ir Vardà"
+
+#: Mailman/Cgi/options.py:725
+msgid "<em>No topics defined</em>"
+msgstr ""
+
+#: Mailman/Cgi/options.py:733
+msgid ""
+"\n"
+"You are subscribed to this list with the case-preserved address\n"
+"<em>%(cpuser)s</em>."
+msgstr ""
+
+#: Mailman/Cgi/options.py:747
+msgid "%(realname)s list: member options login page"
+msgstr "Forumo %(realname)s dalyviø nustatymo puslapio prisijungimas"
+
+#: Mailman/Cgi/options.py:748
+msgid "email address and "
+msgstr " el. paðto adresas ir "
+
+#: Mailman/Cgi/options.py:750
+msgid "%(realname)s list: member options for user %(user)s"
+msgstr "Forumo %(realname)s dalyvio %(user)s nustatymai"
+
+#: Mailman/Cgi/options.py:776
+msgid ""
+"In order to change your membership option, you must\n"
+" first log in by giving your %(extra)smembership password in the section\n"
+" below. If you don't remember your membership password, you can have it\n"
+" emailed to you by clicking on the button below. If you just want to\n"
+" unsubscribe from this list, click on the <em>Unsubscribe</em> button and a\n"
+" confirmation message will be sent to you.\n"
+"\n"
+" <p><strong><em>Important:</em></strong> From this point on, you must have\n"
+" cookies enabled in your browser, otherwise none of your changes will take\n"
+" effect.\n"
+" "
+msgstr ""
+"Norëdami keisti nustatymus, pirmiausiai turite\n"
+" prisijungti, ávedant savo %(extra)snario slaptaþodá þemiau esanèiame\n"
+" laukelyje. Pamirðus slaptaþodá, jis bus atsiøstas jums paðtu\n"
+" jei spustelësite þemiau esantá mygtukà. Jei norite tik\n"
+" atsisakyti dalyvavimo forume, spustelëkite mygtukà <em>Atsisakyti</em> ir\n"
+" patvirtinimo laiðkas bus jums atsiøstas el. paðtu.\n"
+"\n"
+" <p><strong><em>Svarbu:</em></strong> Jûsø narðyklëje turi bûti\n"
+" leidþiama áraðyti slapukus (cookies), prieðingu atveju jûsø pakeitimai nebus\n"
+" iðsaugoti.\n"
+" "
+
+#: Mailman/Cgi/options.py:790
+msgid "Email address:"
+msgstr " El. paðto adresas:"
+
+#: Mailman/Cgi/options.py:794
+msgid "Password:"
+msgstr " Slaptaþodis:"
+
+#: Mailman/Cgi/options.py:796
+msgid "Log in"
+msgstr " Prisijungti"
+
+#: Mailman/Cgi/options.py:804
+msgid ""
+"By clicking on the <em>Unsubscribe</em> button, a\n"
+" confirmation message will be emailed to you. This message will have a\n"
+" link that you should click on to complete the removal process (you can\n"
+" also confirm by email; see the instructions in the confirmation\n"
+" message)."
+msgstr ""
+"Spustelëjus mygtukà <em>Atsisakyti</em>, patvirtinimo\n"
+" laiðkas bus iðsiøstas jums el. paðtu. Tame laiðke bus pateiktas internetinis\n"
+" adresas, kuriuo nuëjus galësi uþbaigti forumo atsisakymo procesà (atsisakymà\n"
+" galite patvirtinti ir laiðku; þr. instrukcijas patvirtinimo\n"
+" laiðke)."
+
+#: Mailman/Cgi/options.py:812
+msgid "Password reminder"
+msgstr " Slaptaþodþio priminimas"
+
+#: Mailman/Cgi/options.py:816
+msgid "By clicking on the <em>Remind</em> button, your\n"
+" password will be emailed to you."
+msgstr "Spustelkite mygtukà <em>Priminti</em> \n"
+" ir Jums bus iðsiøstas Jûsø slaptaþodis."
+
+#: Mailman/Cgi/options.py:819
+msgid "Remind"
+msgstr "Priminti"
+
+#: Mailman/Cgi/options.py:919
+msgid "<missing>"
+msgstr ""
+
+#: Mailman/Cgi/options.py:930
+msgid "Requested topic is not valid: %(topicname)s"
+msgstr ""
+
+#: Mailman/Cgi/options.py:935
+msgid "Topic filter details"
+msgstr ""
+
+#: Mailman/Cgi/options.py:938
+msgid "Name:"
+msgstr "Vardas:"
+
+#: Mailman/Cgi/options.py:940
+msgid "Pattern (as regexp):"
+msgstr "Fragmentas (regexp):"
+
+#: Mailman/Cgi/private.py:61
+msgid "Private Archive Error"
+msgstr "Privataus Archyvo Klaida"
+
+#: Mailman/Cgi/private.py:62
+msgid "You must specify a list."
+msgstr "Turite nurodyti forumà"
+
+#: Mailman/Cgi/private.py:99
+msgid "Private Archive Error - %(msg)s"
+msgstr "Priataus Archyvo Klaida - %(msg)s"
+
+#: Mailman/Cgi/private.py:154
+msgid "Private archive file not found"
+msgstr "Nerastas privataus archyvo failas"
+
+#: Mailman/Cgi/rmlist.py:79
+msgid "You're being a sneaky list owner!"
+msgstr ""
+
+#: Mailman/Cgi/rmlist.py:117
+msgid "You are not authorized to delete this mailing list"
+msgstr "Jûs eturite teisës trinti ðá forumà"
+
+#: Mailman/Cgi/rmlist.py:143
+msgid "Mailing list deletion results"
+msgstr "Forumo trynimo rezultatai"
+
+#: Mailman/Cgi/rmlist.py:149
+msgid "You have successfully deleted the mailing list\n"
+" <b>%(listname)s</b>."
+msgstr ""
+
+#: Mailman/Cgi/rmlist.py:165
+msgid "Permanently remove mailing list <em>%(realname)s</em>"
+msgstr ""
+
+#: Mailman/Cgi/rmlist.py:179
+msgid ""
+"This page allows you as the list owner, to permanent\n"
+" remove this mailing list from the system. <strong>This action is not\n"
+" undoable</strong> so you should undertake it only if you are absolutely\n"
+" sure this mailing list has served its purpose and is no longer necessary.\n"
+"\n"
+" <p>Note that no warning will be sent to your list members and after this\n"
+" action, any subsequent messages sent to the mailing list, or any of its\n"
+" administrative addreses will bounce.\n"
+"\n"
+" <p>You also have the option of removing the archives for this mailing list\n"
+" at this time. It is almost always recommended that you do\n"
+" <strong>not</strong> remove the archives, since they serve as the\n"
+" historical record of your mailing list.\n"
+"\n"
+" <p>For your safety, you will be asked to reconfirm the list password.\n"
+" "
+msgstr ""
+
+#: Mailman/Cgi/rmlist.py:200
+msgid "List password:"
+msgstr " Forumo slaptaþodis:"
+
+#: Mailman/Cgi/rmlist.py:204
+msgid "Also delete archives?"
+msgstr "Taip pat iðrinti archyvà?"
+
+#: Mailman/Cgi/rmlist.py:212
+msgid "<b>Cancel</b> and return to list administration"
+msgstr ""
+
+#: Mailman/Cgi/rmlist.py:215
+msgid "Delete this list"
+msgstr ""
+
+#: Mailman/Cgi/roster.py:48
+#: Mailman/Cgi/subscribe.py:50
+msgid "Invalid options to CGI script"
+msgstr ""
+
+#: Mailman/Cgi/roster.py:99
+msgid "%(realname)s roster authentication failed."
+msgstr ""
+
+#: Mailman/Cgi/roster.py:127
+#: Mailman/Cgi/roster.py:128
+#: Mailman/Cgi/subscribe.py:49
+#: Mailman/Cgi/subscribe.py:60
+msgid "Error"
+msgstr "Klaida"
+
+#: Mailman/Cgi/subscribe.py:109
+msgid "You must supply a valid email address."
+msgstr "Turite ávesti galiojantá el. paðto adresà."
+
+#: Mailman/Cgi/subscribe.py:122
+msgid "You may not subscribe a list to itself!"
+msgstr "Negalite uþsakyti forumo sau!"
+
+#: Mailman/Cgi/subscribe.py:131
+msgid "If you supply a password, you must confirm it."
+msgstr "Jei ávedëte slaptaþodá, tada turite já patvirtinti."
+
+#: Mailman/Cgi/subscribe.py:133
+msgid "Your passwords did not match."
+msgstr "Jûsø slaptaþodþiai nesutampa."
+
+#: Mailman/Cgi/subscribe.py:167
+msgid ""
+"Your subscription request has been received, and will soon be acted upon.\n"
+"Depending on the configuration of this mailing list, your subscription request\n"
+"may have to be first confirmed by you via email, or approved by the list\n"
+"moderator. If confirmation is required, you will soon get a confirmation\n"
+"email which contains further instructions."
+msgstr ""
+"Jûsø prisijungimo praðymas gautas ir netrukus bus perþiûrëtas.\n"
+"Priklausomai nuo forumo nustatymø, praðymà prisijungti jums reikës\n"
+" patvirtinti el. paðtu arba praðymà patvirtins forumo\n"
+"priþiûrëtojas. Jei reikalingas jûsø patvirtinimas, gausite el. laiðkà su\n"
+"tolimesnëmis instrukcijomis."
+
+#: Mailman/Cgi/subscribe.py:181
+msgid ""
+"The email address you supplied is banned from this\n"
+" mailing list. If you think this restriction is erroneous, please\n"
+" contact the list owners at %(listowner)s."
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:185
+msgid "The email address you supplied is not valid. (E.g. it must contain an\n"
+"`@'.)"
+msgstr "Jûsø ávestas el. paðto adresas neteisingas.\n"
+" "
+
+#: Mailman/Cgi/subscribe.py:189
+msgid "Your subscription is not allowed because the email address you gave is\n"
+"insecure."
+msgstr "Jûsø uþsisakymas neleistas, kadangi Jûsø ávestas el. paðto adresas nesaugus.\n"
+" "
+
+#: Mailman/Cgi/subscribe.py:197
+msgid ""
+"Confirmation from your email address is required, to prevent anyone from\n"
+"subscribing you without permission. Instructions are being sent to you at\n"
+"%(email)s. Please note your subscription will not start until you confirm\n"
+"your subscription."
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:209
+msgid ""
+"Your subscription request was deferred because %(x)s. Your request has been\n"
+"forwarded to the list moderator. You will receive email informing you of the\n"
+"moderator's decision when they get to your request."
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:216
+#: Mailman/Commands/cmd_confirm.py:59
+msgid "You are already subscribed."
+msgstr "Jûs jau esate uþsisakæ."
+
+#: Mailman/Cgi/subscribe.py:230
+msgid "Mailman privacy alert"
+msgstr "MAILMAN privatumo praneðimas"
+
+#: Mailman/Cgi/subscribe.py:231
+msgid ""
+"An attempt was made to subscribe your address to the mailing list\n"
+"%(listaddr)s. You are already subscribed to this mailing list.\n"
+"\n"
+"Note that the list membership is not public, so it is possible that a bad\n"
+"person was trying to probe the list for its membership. This would be a\n"
+"privacy violation if we let them do this, but we didn't.\n"
+"\n"
+"If you submitted the subscription request and forgot that you were already\n"
+"subscribed to the list, then you can ignore this message. If you suspect that\n"
+"an attempt is being made to covertly discover whether you are a member of this\n"
+"list, and you are worried about your privacy, then feel free to send a message\n"
+"to the list administrator at %(listowner)s.\n"
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:250
+msgid "This list does not support digest delivery."
+msgstr "Ðiame forume nëra siunèiami grupuoti laiðkai."
+
+#: Mailman/Cgi/subscribe.py:252
+msgid "This list only supports digest delivery."
+msgstr "Ðiame forume siunèiami tik grupuoti laiðkai."
+
+#: Mailman/Cgi/subscribe.py:259
+msgid "You have been successfully subscribed to the %(realname)s mailing list."
+msgstr "Jûs sëkmingai prisijungëte prie forumo %(realname)s."
+
+#: Mailman/Commands/cmd_confirm.py:17
+#, fuzzy, docstring
+msgid ""
+"\n"
+" confirm <confirmation-string>\n"
+" Confirm an action. The confirmation-string is required and should be\n"
+" supplied with in mailback confirmation notice.\n"
+msgstr ""
+"\n"
+" confirm <confirmation-string>\n"
+" Confirm an action. The confirmation-string is required and should be\n"
+" supplied with in mailback confirmation notice.\n"
+
+#: Mailman/Commands/cmd_confirm.py:39
+#: Mailman/Commands/cmd_lists.py:40
+#: Mailman/Commands/cmd_set.py:133
+#: Mailman/Commands/cmd_subscribe.py:69
+#: Mailman/Commands/cmd_unsubscribe.py:52
+#: Mailman/Commands/cmd_who.py:65
+msgid "Usage:"
+msgstr "Naudojimas:"
+
+#: Mailman/Commands/cmd_confirm.py:48
+#, fuzzy
+msgid ""
+"Invalid confirmation string. Note that confirmation strings expire\n"
+"approximately %(days)s days after the initial subscription request. If your\n"
+"confirmation has expired, please try to re-submit your original request or\n"
+"message."
+msgstr ""
+"Invalid confirmation string. Note that confirmation strings expire\n"
+"approximately %(days)s days after the initial subscription request. If your\n"
+"confirmation has expired, please try to re-submit your original request or\n"
+"message."
+
+#: Mailman/Commands/cmd_confirm.py:54
+msgid "Your request has been forwarded to the list moderator for approval."
+msgstr "Jûsø uþklausa perduota moderatoriui patvirtinti."
+
+#: Mailman/Commands/cmd_confirm.py:62
+#, fuzzy
+msgid "You are not current a member. Have you already unsubscribed or changed\n"
+"your email address?"
+msgstr "You are not current a member. Have you already unsubscribed or changed\n"
+"your email address?"
+
+#: Mailman/Commands/cmd_confirm.py:66
+msgid "Confirmation succeeded"
+msgstr "Sëkmingai patvirtinta"
+
+#: Mailman/Commands/cmd_echo.py:17
+#, fuzzy, docstring
+msgid ""
+"\n"
+" echo [args]\n"
+" Simply echo an acknowledgement. Args are echoed back unchanged.\n"
+msgstr ""
+"\n"
+" echo [args]\n"
+" Simply echo an acknowledgement. Args are echoed back unchanged.\n"
+
+#: Mailman/Commands/cmd_end.py:17
+#, fuzzy, docstring
+msgid ""
+"\n"
+" end\n"
+" Stop processing commands. Use this if your mail program automatically\n"
+" adds a signature file.\n"
+msgstr ""
+"\n"
+" end\n"
+" Stop processing commands. Use this if your mail program automatically\n"
+" adds a signature file.\n"
+
+#: Mailman/Commands/cmd_help.py:17
+#, fuzzy, docstring
+msgid ""
+"\n"
+" help\n"
+" Print this help message.\n"
+msgstr ""
+"\n"
+" help\n"
+" Print this help message.\n"
+
+#: Mailman/Commands/cmd_help.py:47
+msgid "You can access your personal options via the following url:"
+msgstr "Ðiuo adresu prieinami Jûsø asmeniniai nustatymai:"
+
+#: Mailman/Commands/cmd_info.py:17
+#, fuzzy, docstring
+msgid ""
+"\n"
+" info\n"
+" Get information about this mailing list.\n"
+msgstr ""
+"\n"
+" info\n"
+" Get information about this mailing list.\n"
+
+#: Mailman/Commands/cmd_info.py:39
+#: Mailman/Commands/cmd_lists.py:62
+#, fuzzy
+msgid "n/a"
+msgstr "n/a"
+
+#: Mailman/Commands/cmd_join.py:17
+#, docstring
+msgid "The 'join' command is synonymous with 'subscribe'.\n"
+msgstr "'Uþsisakyti' yra tas pats, kaip ir 'prisijungti'.\n"
+
+#: Mailman/Commands/cmd_leave.py:17
+#, docstring
+msgid "The 'leave' command is synonymous with 'unsubscribe'.\n"
+msgstr "'Atsisakyti' yra tas pats, kaip ir 'atsijungti'.\n"
+
+#: Mailman/Commands/cmd_lists.py:17
+#, fuzzy, docstring
+msgid ""
+"\n"
+" lists\n"
+" See a list of the public mailing lists on this GNU Mailman server.\n"
+msgstr ""
+"\n"
+" lists\n"
+" See a list of the public mailing lists on this GNU Mailman server.\n"
+
+#: Mailman/Commands/cmd_lists.py:44
+#, fuzzy
+msgid "Public mailing lists at %(hostname)s:"
+msgstr "Public mailing lists at %(hostname)s:"
+
+#: Mailman/Commands/cmd_lists.py:66
+#, fuzzy
+msgid "%(i)3d. List name: %(realname)s"
+msgstr "%(i)3d. Forumo pavadinimas: %(realname)s"
+
+#: Mailman/Commands/cmd_lists.py:67
+#, fuzzy
+msgid " Description: %(description)s"
+msgstr " Description: %(description)s"
+
+#: Mailman/Commands/cmd_lists.py:68
+#, fuzzy
+msgid " Requests to: %(requestaddr)s"
+msgstr " Requests to: %(requestaddr)s"
+
+#: Mailman/Commands/cmd_password.py:17
+#, docstring
+msgid ""
+"\n"
+" password [<oldpassword> <newpassword>] [address=<address>]\n"
+" Retrieve or change your password. With no arguments, this returns\n"
+" your current password. With arguments <oldpassword> and <newpassword>\n"
+" you can change your password.\n"
+"\n"
+" If you're posting from an address other than your membership address,\n"
+" specify your membership address with `address=<address>' (no brackets\n"
+" around the email address, and no quotes!). Note that in this case the\n"
+" response is always sent to the subscribed address.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_password.py:51
+#: Mailman/Commands/cmd_password.py:64
+#, fuzzy
+msgid "Your password is: %(password)s"
+msgstr "Your password is: %(password)s"
+
+#: Mailman/Commands/cmd_password.py:55
+#: Mailman/Commands/cmd_password.py:68
+#: Mailman/Commands/cmd_password.py:91
+#: Mailman/Commands/cmd_password.py:117
+#: Mailman/Commands/cmd_set.py:149
+#: Mailman/Commands/cmd_set.py:219
+#, fuzzy
+msgid "You are not a member of the %(listname)s mailing list"
+msgstr "You are not a member of the %(listname)s mailing list"
+
+#: Mailman/Commands/cmd_password.py:81
+#: Mailman/Commands/cmd_password.py:107
+msgid ""
+"You did not give the correct old password, so your password has not been\n"
+"changed. Use the no argument version of the password command to retrieve your\n"
+"current password, then try again."
+msgstr ""
+
+#: Mailman/Commands/cmd_password.py:85
+#: Mailman/Commands/cmd_password.py:111
+msgid "\n"
+"Usage:"
+msgstr ""
+
+#: Mailman/Commands/cmd_remove.py:17
+#, docstring
+msgid "The `remove' command is synonymous with `unsubscribe'.\n"
+msgstr "'Iðbraukti' yra tas pats, kaip ir 'atsisakyti'.\n"
+
+#: Mailman/Commands/cmd_set.py:26
+msgid ""
+"\n"
+" set ...\n"
+" Set or view your membership options.\n"
+"\n"
+" Use `set help' (without the quotes) to get a more detailed list of the\n"
+" options you can change.\n"
+"\n"
+" Use `set show' (without the quotes) to view your current option\n"
+" settings.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:37
+msgid ""
+"\n"
+" set help\n"
+" Show this detailed help.\n"
+"\n"
+" set show [address=<address>]\n"
+" View your current option settings. If you're posting from an address\n"
+" other than your membership address, specify your membership address\n"
+" with `address=<address>' (no brackets around the email address, and no\n"
+" quotes!).\n"
+"\n"
+" set authenticate <password> [address=<address>]\n"
+" To set any of your options, you must include this command first, along\n"
+" with your membership password. If you're posting from an address\n"
+" other than your membership address, specify your membership address\n"
+" with `address=<address>' (no brackets around the email address, and no\n"
+" quotes!).\n"
+"\n"
+" set ack on\n"
+" set ack off\n"
+" When the `ack' option is turned on, you will receive an\n"
+" acknowledgement message whenever you post a message to the list.\n"
+"\n"
+" set digest plain\n"
+" set digest mime\n"
+" set digest off\n"
+" When the `digest' option is turned off, you will receive postings\n"
+" immediately when they are posted. Use `set digest plain' if instead\n"
+" you want to receive postings bundled into a plain text digest\n"
+" (i.e. RFC 1153 digest). Use `set digest mime' if instead you want to\n"
+" receive postings bundled together into a MIME digest.\n"
+"\n"
+" set delivery on\n"
+" set delivery off\n"
+" Turn delivery on or off. This does not unsubscribe you, but instead\n"
+" tells Mailman not to deliver messages to you for now. This is useful\n"
+" if you're going on vacation. Be sure to use `set delivery on' when\n"
+" you return from vacation!\n"
+"\n"
+" set myposts on\n"
+" set myposts off\n"
+" Use `set myposts off' to not receive copies of messages you post to\n"
+" the list. This has no effect if you're receiving digests.\n"
+"\n"
+" set hide on\n"
+" set hide off\n"
+" Use `set hide on' to conceal your email address when people request\n"
+" the membership list.\n"
+"\n"
+" set duplicates on\n"
+" set duplicates off\n"
+" Use `set duplicates off' if you want Mailman to not send you messages\n"
+" if your address is explicitly mentioned in the To: or Cc: fields of\n"
+" the message. This can reduce the number of duplicate postings you\n"
+" will receive.\n"
+"\n"
+" set reminders on\n"
+" set reminders off\n"
+" Use `set reminders off' if you want to disable the monthly password\n"
+" reminder for this mailing list.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:122
+#, fuzzy
+msgid "Bad set command: %(subcmd)s"
+msgstr "Bad set command: %(subcmd)s"
+
+#: Mailman/Commands/cmd_set.py:151
+msgid "Your current option settings:"
+msgstr "Dabartiniai Jûsø nustatymai:"
+
+#: Mailman/Commands/cmd_set.py:153
+#: Mailman/Commands/cmd_set.py:191
+#: Mailman/Commands/cmd_set.py:194
+#: Mailman/Commands/cmd_set.py:198
+#: Mailman/Commands/cmd_set.py:202
+msgid "off"
+msgstr "iðjungta"
+
+#: Mailman/Commands/cmd_set.py:153
+#: Mailman/Commands/cmd_set.py:191
+#: Mailman/Commands/cmd_set.py:194
+#: Mailman/Commands/cmd_set.py:198
+#: Mailman/Commands/cmd_set.py:202
+msgid "on"
+msgstr "ájungta"
+
+#: Mailman/Commands/cmd_set.py:154
+#, fuzzy
+msgid " ack %(onoff)s"
+msgstr " ack %(onoff)s"
+
+#: Mailman/Commands/cmd_set.py:160
+msgid " digest plain"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:162
+msgid " digest mime"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:164
+msgid " digest off"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:169
+msgid "delivery on"
+msgstr "ájungti pristatymà"
+
+#: Mailman/Commands/cmd_set.py:171
+#: Mailman/Commands/cmd_set.py:174
+#: Mailman/Commands/cmd_set.py:177
+#: Mailman/Commands/cmd_set.py:181
+msgid "delivery off"
+msgstr "iðjungti pristatymà"
+
+#: Mailman/Commands/cmd_set.py:172
+#, fuzzy
+msgid "by you"
+msgstr "by you"
+
+#: Mailman/Commands/cmd_set.py:175
+#, fuzzy
+msgid "by the admin"
+msgstr "by the admin"
+
+#: Mailman/Commands/cmd_set.py:178
+#, fuzzy
+msgid "due to bounces"
+msgstr "due to bounces"
+
+#: Mailman/Commands/cmd_set.py:186
+msgid " %(status)s (%(how)s on %(date)s)"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:192
+msgid " myposts %(onoff)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:195
+msgid " hide %(onoff)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:199
+#, fuzzy
+msgid " duplicates %(onoff)s"
+msgstr " duplicates %(onoff)s"
+
+#: Mailman/Commands/cmd_set.py:203
+#, fuzzy
+msgid " reminders %(onoff)s"
+msgstr " reminders %(onoff)s"
+
+#: Mailman/Commands/cmd_set.py:224
+msgid "You did not give the correct password"
+msgstr "Neávedëte teisingo slaptaþodþio"
+
+#: Mailman/Commands/cmd_set.py:236
+#: Mailman/Commands/cmd_set.py:283
+msgid "Bad argument: %(arg)s"
+msgstr "Blogas argumentas: %(arg)s"
+
+#: Mailman/Commands/cmd_set.py:241
+#: Mailman/Commands/cmd_set.py:261
+#, fuzzy
+msgid "Not authenticated"
+msgstr "Not authenticated"
+
+#: Mailman/Commands/cmd_set.py:254
+msgid "ack option set"
+msgstr "praneðimø nustatymai"
+
+#: Mailman/Commands/cmd_set.py:286
+#, fuzzy
+msgid "digest option set"
+msgstr "digest nustatymai"
+
+#: Mailman/Commands/cmd_set.py:298
+msgid "delivery option set"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:310
+msgid "myposts option set"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:321
+msgid "hide option set"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:333
+msgid "duplicates option set"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:345
+msgid "reminder option set"
+msgstr ""
+
+#: Mailman/Commands/cmd_stop.py:17
+#, docstring
+msgid "stop is synonymous with the end command.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:17
+#, docstring
+msgid ""
+"\n"
+" subscribe [password] [digest|nodigest] [address=<address>]\n"
+" Subscribe to this mailing list. Your password must be given to\n"
+" unsubscribe or change your options, but if you omit the password, one\n"
+" will be generated for you. You may be periodically reminded of your\n"
+" password.\n"
+"\n"
+" The next argument may be either: `nodigest' or `digest' (no quotes!).\n"
+" If you wish to subscribe an address other than the address you sent\n"
+" this request from, you may specify `address=<address>' (no brackets\n"
+" around the email address, and no quotes!)\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:62
+#, fuzzy
+msgid "Bad digest specifier: %(arg)s"
+msgstr "Nurodyti neteisingi rinkiniai: %(arg)s"
+
+#: Mailman/Commands/cmd_subscribe.py:84
+msgid "No valid address found to subscribe"
+msgstr "Uþsakyme nerastas galiojantis el. paðto adresas"
+
+#: Mailman/Commands/cmd_subscribe.py:102
+msgid ""
+"The email address you supplied is banned from this mailing list.\n"
+"If you think this restriction is erroneous, please contact the list\n"
+"owners at %(listowner)s."
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:108
+msgid "Mailman won't accept the given email address as a valid address.\n"
+"(E.g. it must have an @ in it.)"
+msgstr "Toks el. paðto adresas neatrodo teisingas.\n"
+" "
+
+#: Mailman/Commands/cmd_subscribe.py:113
+msgid "Your subscription is not allowed because\n"
+" the email address you gave is insecure."
+msgstr "Uþsisakymas neleistas, kadangi\n"
+" el. paðto adresas yra nesaugus."
+
+#: Mailman/Commands/cmd_subscribe.py:118
+msgid "You are already subscribed!"
+msgstr "Jûs jau esate uþsisakæs!"
+
+#: Mailman/Commands/cmd_subscribe.py:122
+msgid "No one can subscribe to the digest of this list!"
+msgstr "Niekas negali uþsisakyti ðio forumo rinkiniø!"
+
+#: Mailman/Commands/cmd_subscribe.py:125
+msgid "This list only supports digest subscriptions!"
+msgstr "Ðis forumas laidþia tik rinkiniø uþsakymus!"
+
+#: Mailman/Commands/cmd_subscribe.py:128
+msgid "A confirmation email has been sent separately."
+msgstr "Patvirtinimo laiðkas siøstas atskirai."
+
+#: Mailman/Commands/cmd_subscribe.py:130
+msgid "Your subscription request has been forwarded to the list administrator\n"
+"at %(listowner)s for review."
+msgstr "Jûsø prisijungimo praðymas buvo persiøstas forumo administratoriui\n"
+"á %(listowner)s."
+
+#: Mailman/Commands/cmd_subscribe.py:135
+msgid "Subscription request succeeded."
+msgstr "Sëkmingas uþsakymo praðymas."
+
+#: Mailman/Commands/cmd_unsubscribe.py:17
+#, docstring
+msgid ""
+"\n"
+" unsubscribe [password] [address=<address>]\n"
+" Unsubscribe from the mailing list. If given, your password must match\n"
+" your current password. If omitted, a confirmation email will be sent\n"
+" to the unsubscribing address. If you wish to unsubscribe an address\n"
+" other than the address you sent this request from, you may specify\n"
+" `address=<address>' (no brackets around the email address, and no\n"
+" quotes!)\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_unsubscribe.py:62
+msgid "%(address)s is not a member of the %(listname)s mailing list"
+msgstr ""
+
+#: Mailman/Commands/cmd_unsubscribe.py:69
+msgid "Your unsubscription request has been forwarded to the list administrator for\n"
+"approval."
+msgstr ""
+
+#: Mailman/Commands/cmd_unsubscribe.py:77
+msgid "A removal confirmation message has been sent."
+msgstr ""
+
+#: Mailman/Commands/cmd_unsubscribe.py:83
+msgid "You gave the wrong password"
+msgstr ""
+
+#: Mailman/Commands/cmd_unsubscribe.py:86
+msgid "Unsubscription request succeeded."
+msgstr ""
+
+#: Mailman/Commands/cmd_who.py:29
+msgid ""
+"\n"
+" who\n"
+" See everyone who is on this mailing list.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_who.py:34
+msgid ""
+"\n"
+" who password [address=<address>]\n"
+" See everyone who is on this mailing list. The roster is limited to\n"
+" list members only, and you must supply your membership password to\n"
+" retrieve it. If you're posting from an address other than your\n"
+" membership address, specify your membership address with\n"
+" `address=<address>' (no brackets around the email address, and no\n"
+" quotes!)\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_who.py:44
+msgid ""
+"\n"
+" who password\n"
+" See everyone who is on this mailing list. The roster is limited to\n"
+" list administrators and moderators only; you must supply the list\n"
+" admin or moderator password to retrieve the roster.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_who.py:110
+msgid "You are not allowed to retrieve the list membership."
+msgstr ""
+
+#: Mailman/Commands/cmd_who.py:116
+msgid "This list has no members."
+msgstr ""
+
+#: Mailman/Commands/cmd_who.py:129
+msgid "Non-digest (regular) members:"
+msgstr ""
+
+#: Mailman/Commands/cmd_who.py:132
+msgid "Digest members:"
+msgstr ""
+
+#: Mailman/Defaults.py:1198
+msgid "Traditional Chinese"
+msgstr "Kinø tradicinë"
+
+#: Mailman/Defaults.py:1199
+msgid "Czech"
+msgstr "Èekø"
+
+#: Mailman/Defaults.py:1200
+msgid "German"
+msgstr "Vokieèiø"
+
+#: Mailman/Defaults.py:1201
+msgid "English (USA)"
+msgstr "Anglø (JAV)"
+
+#: Mailman/Defaults.py:1202
+msgid "Spanish (Spain)"
+msgstr "Ispanø (Ispanija)"
+
+#: Mailman/Defaults.py:1203
+msgid "Estonian"
+msgstr "Estø"
+
+#: Mailman/Defaults.py:1204
+msgid "Finnish"
+msgstr "Suomiø"
+
+#: Mailman/Defaults.py:1205
+msgid "French"
+msgstr "Prancûzø"
+
+#: Mailman/Defaults.py:1206
+msgid "Simplified Chinese"
+msgstr "Kinø supaprastinta"
+
+#: Mailman/Defaults.py:1207
+msgid "Hungarian"
+msgstr "Vengrø"
+
+#: Mailman/Defaults.py:1208
+msgid "Italian"
+msgstr "Italø"
+
+#: Mailman/Defaults.py:1209
+msgid "Japanese"
+msgstr "Japonø"
+
+#: Mailman/Defaults.py:1210
+msgid "Korean"
+msgstr "Korëjieèiø"
+
+msgid "Lithuanian"
+msgstr "Lietuviø"
+
+#: Mailman/Defaults.py:1211
+msgid "Dutch"
+msgstr "Olandø"
+
+#: Mailman/Defaults.py:1212
+msgid "Norwegian"
+msgstr "Norvegø"
+
+#: Mailman/Defaults.py:1213
+msgid "Portuguese (Brazil)"
+msgstr "Portugalø (Brazilija)"
+
+#: Mailman/Defaults.py:1214
+msgid "Russian"
+msgstr "Rusø"
+
+#: Mailman/Defaults.py:1215
+msgid "Swedish"
+msgstr "Ðvedø"
+
+#: Mailman/Deliverer.py:43
+msgid ""
+"Note: Since this is a list of mailing lists, administrative\n"
+"notices like the password reminder will be sent to\n"
+"your membership administrative address, %(addr)s."
+msgstr ""
+
+#: Mailman/Deliverer.py:62
+msgid " (Digest mode)"
+msgstr " (Rinkiniø rëþimas)"
+
+#: Mailman/Deliverer.py:68
+msgid "Welcome to the \"%(realname)s\" mailing list%(digmode)s"
+msgstr "Sveikiname forume '%(realname)s' %(digmode)s"
+
+#: Mailman/Deliverer.py:77
+msgid "You have been unsubscribed from the %(realname)s mailing list"
+msgstr "Atsijungëte nuo forumo %(realname)s"
+
+#: Mailman/Deliverer.py:104
+msgid "%(listfullname)s mailing list reminder"
+msgstr "Forumo %(listfullname)s priminimas"
+
+#: Mailman/Errors.py:116
+msgid "For some unknown reason"
+msgstr "Dël nenustatytø prieþasèiø"
+
+#: Mailman/Errors.py:122
+#: Mailman/Errors.py:145
+msgid "Your message was rejected"
+msgstr "Jûsø laiðkas atmestas"
+
+#: Mailman/Gui/Archive.py:25
+msgid "Archiving Options"
+msgstr "Archyvavimo nustatymai"
+
+#: Mailman/Gui/Archive.py:31
+msgid "List traffic archival policies."
+msgstr "Forumo srautø kaupimo politika."
+
+#: Mailman/Gui/Archive.py:34
+msgid "Archive messages?"
+msgstr "Ar kaupti laiðkus?"
+
+#: Mailman/Gui/Archive.py:36
+msgid "private"
+msgstr "privatus"
+
+#: Mailman/Gui/Archive.py:36
+msgid "public"
+msgstr "vieðas"
+
+#: Mailman/Gui/Archive.py:37
+msgid "Is archive file source for public or private archival?"
+msgstr "Vieðas ar asmeninis archyvas?"
+
+#: Mailman/Gui/Archive.py:40
+#: Mailman/Gui/Digest.py:78
+msgid "Monthly"
+msgstr "Kas mënesá"
+
+#: Mailman/Gui/Archive.py:40
+#: Mailman/Gui/Digest.py:78
+msgid "Quarterly"
+msgstr "Kas ketvirtá"
+
+#: Mailman/Gui/Archive.py:40
+#: Mailman/Gui/Digest.py:78
+msgid "Yearly"
+msgstr "Kartà á metus"
+
+#: Mailman/Gui/Archive.py:41
+#: Mailman/Gui/Digest.py:79
+msgid "Daily"
+msgstr "Kasdien"
+
+#: Mailman/Gui/Archive.py:41
+#: Mailman/Gui/Digest.py:79
+msgid "Weekly"
+msgstr "Kas savaitæ"
+
+#: Mailman/Gui/Archive.py:43
+msgid "How often should a new archive volume be started?"
+msgstr "Kaip daþnai sukurti naujà archyvo failà?"
+
+#: Mailman/Gui/Autoresponse.py:31
+msgid "Auto-responder"
+msgstr "Autoatsakiklis"
+
+#: Mailman/Gui/Autoresponse.py:39
+msgid ""
+"Auto-responder characteristics.<p>\n"
+"\n"
+"In the text fields below, string interpolation is performed with\n"
+"the following key/value substitutions:\n"
+"<p><ul>\n"
+" <li><b>listname</b> - <em>gets the name of the mailing list</em>\n"
+" <li><b>listurl</b> - <em>gets the list's listinfo URL</em>\n"
+" <li><b>requestemail</b> - <em>gets the list's -request address</em>\n"
+" <li><b>owneremail</b> - <em>gets the list's -owner address</em>\n"
+"</ul>\n"
+"\n"
+"<p>For each text field, you can either enter the text directly into the text\n"
+"box, or you can specify a file on your local system to upload as the text."
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:55
+msgid "Should Mailman send an auto-response to mailing list\n"
+" posters?"
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:60
+msgid "Auto-response text to send to mailing list posters."
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:63
+msgid "Should Mailman send an auto-response to emails sent to the\n"
+" -owner address?"
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:68
+msgid "Auto-response text to send to -owner emails."
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:71
+msgid "Yes, w/discard"
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:71
+msgid "Yes, w/forward"
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:72
+msgid ""
+"Should Mailman send an auto-response to emails sent to the\n"
+" -request address? If you choose yes, decide whether you want\n"
+" Mailman to discard the original email, or forward it on to the\n"
+" system as a normal mail command."
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:79
+msgid "Auto-response text to send to -request emails."
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:82
+msgid ""
+"Number of days between auto-responses to either the mailing\n"
+" list or -request/-owner address from the same poster. Set to\n"
+" zero (or negative) for no grace period (i.e. auto-respond to\n"
+" every message)."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:26
+msgid "Bounce processing"
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:32
+msgid ""
+"These policies control the automatic bounce processing system\n"
+" in Mailman. Here's an overview of how it works.\n"
+"\n"
+" <p>When a bounce is received, Mailman tries to extract two pieces\n"
+" of information from the message: the address of the member the\n"
+" message was intended for, and the severity of the problem causing\n"
+" the bounce. The severity can be either <em>hard</em> or\n"
+" <em>soft</em> meaning either a fatal error occurred, or a\n"
+" transient error occurred. When in doubt, a hard severity is used.\n"
+"\n"
+" <p>If no member address can be extracted from the bounce, then the\n"
+" bounce is usually discarded. Otherwise, each member is assigned a\n"
+" <em>bounce score</em> and every time we encounter a bounce from\n"
+" this member we increment the score. Hard bounces increment by 1\n"
+" while soft bounces increment by 0.5. We only increment the bounce\n"
+" score once per day, so even if we receive ten hard bounces from a\n"
+" member per day, their score will increase by only 1 for that day.\n"
+"\n"
+" <p>When a member's bounce score is greater than the\n"
+" <a href=\"?VARHELP=bounce/bounce_score_threshold\">bounce score\n"
+" threshold</a>, the subscription is disabled. Once disabled, the\n"
+" member will not receive any postings from the list until their\n"
+" membership is explicitly re-enabled (either by the list\n"
+" administrator or the user). However, they will receive occasional\n"
+" reminders that their membership has been disabled, and these\n"
+" reminders will include information about how to re-enable their\n"
+" membership.\n"
+"\n"
+" <p>You can control both the\n"
+" <a href=\"?VARHELP=bounce/bounce_you_are_disabled_warnings\">number\n"
+" of reminders</a> the member will receive and the\n"
+" <a href=\"?VARHELP=bounce/bounce_you_are_disabled_warnings_interval\"\n"
+" >frequency</a> with which these reminders are sent.\n"
+"\n"
+" <p>There is one other important configuration variable; after a\n"
+" certain period of time -- during which no bounces from the member\n"
+" are received -- the bounce information is\n"
+" <a href=\"?VARHELP=bounce/bounce_info_stale_after\">considered\n"
+" stale</a> and discarded. Thus by adjusting this value, and the\n"
+" score threshold, you can control how quickly bouncing members are\n"
+" disabled. You should tune both of these to the frequency and\n"
+" traffic volume of your list."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:75
+msgid "Bounce detection sensitivity"
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:78
+msgid "Should Mailman perform automatic bounce processing?"
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:79
+msgid ""
+"By setting this value to <em>No</em>, you disable all\n"
+" automatic bounce processing for this list, however bounce\n"
+" messages will still be discarded so that the list administrator\n"
+" isn't inundated with them."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:85
+msgid ""
+"The maximum member bounce score before the member's\n"
+" subscription is disabled. This value can be a floating point\n"
+" number."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:90
+msgid ""
+"The number of days after which a member's bounce information\n"
+" is discarded, if no new bounces have been received in the\n"
+" interim. This value must be an integer."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:95
+msgid ""
+"How many <em>Your Membership Is Disabled</em> warnings a\n"
+" disabled member should get before their address is removed from\n"
+" the mailing list. Set to 0 to immediately remove an address from\n"
+" the list once their bounce score exceeds the threshold. This\n"
+" value must be an integer."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:102
+msgid "The number of days between sending the <em>Your Membership\n"
+" Is Disabled</em> warnings. This value must be an integer."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:105
+#: Mailman/Gui/General.py:257
+msgid "Notifications"
+msgstr "Praneðimai"
+
+#: Mailman/Gui/Bounce.py:109
+msgid ""
+"Should Mailman send you, the list owner, any bounce messages\n"
+" that failed to be detected by the bounce processor? <em>Yes</em>\n"
+" is recommended."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:112
+msgid ""
+"While Mailman's bounce detector is fairly robust, it's\n"
+" impossible to detect every bounce format in the world. You\n"
+" should keep this variable set to <em>Yes</em> for two reasons: 1)\n"
+" If this really is a permanent bounce from one of your members,\n"
+" you should probably manually remove them from your list, and 2)\n"
+" you might want to send the message on to the Mailman developers\n"
+" so that this new format can be added to its known set.\n"
+"\n"
+" <p>If you really can't be bothered, then set this variable to\n"
+" <em>No</em> and all non-detected bounces will be discarded\n"
+" without further processing.\n"
+"\n"
+" <p><b>Note:</b> This setting will also affect all messages sent\n"
+" to your list's -admin address. This address is deprecated and\n"
+" should never be used, but some people may still send mail to this\n"
+" address. If this happens, and this variable is set to\n"
+" <em>No</em> those messages too will get discarded. You may want\n"
+" to set up an\n"
+" <a href=\"?VARHELP=autoreply/autoresponse_admin_text\">autoresponse\n"
+" message</a> for email to the -owner and -admin address."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:135
+msgid "Should Mailman notify you, the list owner, when bounces\n"
+" cause a member's subscription to be disabled?"
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:137
+msgid ""
+"By setting this value to <em>No</em>, you turn off\n"
+" notification messages that are normally sent to the list owners\n"
+" when a member's delivery is disabled due to excessive bounces.\n"
+" An attempt to notify the member will always be made."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:144
+msgid "Should Mailman notify you, the list owner, when bounces\n"
+" cause a member to be unsubscribed?"
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:146
+msgid ""
+"By setting this value to <em>No</em>, you turn off\n"
+" notification messages that are normally sent to the list owners\n"
+" when a member is unsubscribed due to excessive bounces. An\n"
+" attempt to notify the member will always be made."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:173
+msgid "Bad value for <a href=\"?VARHELP=bounce/%(property)s\"\n"
+" >%(property)s</a>: %(val)s"
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:30
+msgid "Content&nbsp;filtering"
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:37
+msgid "Forward to List Owner"
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:39
+msgid "Preserve"
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:42
+msgid ""
+"Policies concerning the content of list traffic.\n"
+"\n"
+" <p>Content filtering works like this: when a message is\n"
+" received by the list and you have enabled content filtering, the\n"
+" individual attachments are first compared to the\n"
+" <a href=\"?VARHELP=contentfilter/filter_mime_types\">filter\n"
+" types</a>. If the attachment type matches an entry in the filter\n"
+" types, it is discarded.\n"
+"\n"
+" <p>Then, if there are <a\n"
+" href=\"?VARHELP=contentfilter/pass_mime_types\">pass types</a>\n"
+" defined, any attachment type that does <em>not</em> match a\n"
+" pass type is also discarded. If there are no pass types defined,\n"
+" this check is skipped.\n"
+"\n"
+" <p>After this initial filtering, any <tt>multipart</tt>\n"
+" attachments that are empty are removed. If the outer message is\n"
+" left empty after this filtering, then the whole message is\n"
+" discarded. Then, each <tt>multipart/alternative</tt> section will\n"
+" be replaced by just the first alternative that is non-empty after\n"
+" filtering.\n"
+"\n"
+" <p>Finally, any <tt>text/html</tt> parts that are left in the\n"
+" message may be converted to <tt>text/plain</tt> if\n"
+" <a href=\"?VARHELP=contentfilter/convert_html_to_plaintext\"\n"
+" >convert_html_to_plaintext</a> is enabled and the site is\n"
+" configured to allow these conversions."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:71
+msgid "Should Mailman filter the content of list traffic according\n"
+" to the settings below?"
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:75
+msgid "Remove message attachments that have a matching content\n"
+" type."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:78
+msgid ""
+"Use this option to remove each message attachment that\n"
+" matches one of these content types. Each line should contain a\n"
+" string naming a MIME <tt>type/subtype</tt>,\n"
+" e.g. <tt>image/gif</tt>. Leave off the subtype to remove all\n"
+" parts with a matching major content type, e.g. <tt>image</tt>.\n"
+"\n"
+" <p>Blank lines are ignored.\n"
+"\n"
+" <p>See also <a href=\"?VARHELP=contentfilter/pass_mime_types\"\n"
+" >pass_mime_types</a> for a content type whitelist."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:90
+msgid ""
+"Remove message attachments that don't have a matching\n"
+" content type. Leave this field blank to skip this filter\n"
+" test."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:94
+msgid ""
+"Use this option to remove each message attachment that does\n"
+" not have a matching content type. Requirements and formats are\n"
+" exactly like <a href=\"?VARHELP=contentfilter/filter_mime_types\"\n"
+" >filter_mime_types</a>.\n"
+"\n"
+" <p><b>Note:</b> if you add entries to this list but don't add\n"
+" <tt>multipart</tt> to this list, any messages with attachments\n"
+" will be rejected by the pass filter."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:104
+msgid ""
+"Should Mailman convert <tt>text/html</tt> parts to plain\n"
+" text? This conversion happens after MIME attachments have been\n"
+" stripped."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:110
+msgid "Action to take when a message matches the content filtering\n"
+" rules."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:113
+msgid ""
+"One of these actions is take when the message matches one of\n"
+" the content filtering rules, meaning, the top-level\n"
+" content type matches one of the <a\n"
+" href=\"?VARHELP=contentfilter/filter_mime_types\"\n"
+" >filter_mime_types</a>, or the top-level content type does\n"
+" <strong>not</strong> match one of the\n"
+" <a href=\"?VARHELP=contentfilter/pass_mime_types\"\n"
+" >pass_mime_types</a>, or if after filtering the subparts of the\n"
+" message, the message ends up empty.\n"
+"\n"
+" <p>Note this action is not taken if after filtering the message\n"
+" still contains content. In that case the message is always\n"
+" forwarded on to the list membership.\n"
+"\n"
+" <p>When messages are discarded, a log entry is written\n"
+" containing the Message-ID of the discarded message. When\n"
+" messages are rejected or forwarded to the list owner, a reason\n"
+" for the rejection is included in the bounce message to the\n"
+" original author. When messages are preserved, they are saved in\n"
+" a special queue directory on disk for the site administrator to\n"
+" view (and possibly rescue) but otherwise discarded. This last\n"
+" option is only available if enabled by the site\n"
+" administrator."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:154
+msgid "Bad MIME type ignored: %(spectype)s"
+msgstr "Ignoruojamas neteisingas MIME tipas: %(spectype)s"
+
+#: Mailman/Gui/Digest.py:36
+msgid "Digest options"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:44
+msgid "Batched-delivery digest characteristics."
+msgstr ""
+
+#: Mailman/Gui/Digest.py:47
+msgid "Can list members choose to receive list traffic bunched in digests?"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:51
+msgid "Digest"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:51
+msgid "Regular"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:52
+msgid "Which delivery mode is the default for new users?"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:55
+msgid "MIME"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:55
+msgid "Plain"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:56
+msgid "When receiving digests, which format is default?"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:59
+msgid "How big in Kb should a digest be before it gets sent out?"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:63
+msgid "Should a digest be dispatched daily when the size threshold isn't reached?"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:67
+msgid "Header added to every digest"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:68
+msgid "Text attached (as an initial message, before the table of contents) to the top of digests. "
+msgstr ""
+
+#: Mailman/Gui/Digest.py:73
+msgid "Footer added to every digest"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:74
+msgid "Text attached (as a final message) to the bottom of digests. "
+msgstr ""
+
+#: Mailman/Gui/Digest.py:80
+msgid "How often should a new digest volume be started?"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:81
+msgid "When a new digest volume is started, the volume number is\n"
+" incremented and the issue number is reset to 1."
+msgstr ""
+
+#: Mailman/Gui/Digest.py:85
+msgid "Should Mailman start a new digest volume?"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:86
+msgid "Setting this option instructs Mailman to start a new volume\n"
+" with the next digest sent out."
+msgstr ""
+
+#: Mailman/Gui/Digest.py:90
+msgid "Should Mailman send the next digest right now, if it is not\n"
+" empty?"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:145
+msgid "The next digest will be sent as volume\n"
+" %(volume)s, number %(number)s"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:150
+msgid "A digest has been sent."
+msgstr ""
+
+#: Mailman/Gui/Digest.py:152
+msgid "There was no digest to send."
+msgstr ""
+
+#: Mailman/Gui/GUIBase.py:149
+msgid "Invalid value for variable: %(property)s"
+msgstr ""
+
+#: Mailman/Gui/GUIBase.py:153
+msgid "Bad email address for option %(property)s: %(val)s"
+msgstr ""
+
+#: Mailman/Gui/GUIBase.py:179
+msgid ""
+"The following illegal substitution variables were\n"
+" found in the <code>%(property)s</code> string:\n"
+" <code>%(bad)s</code>\n"
+" <p>Your list may not operate properly until you correct this\n"
+" problem."
+msgstr ""
+
+#: Mailman/Gui/GUIBase.py:193
+msgid ""
+"Your <code>%(property)s</code> string appeared to\n"
+" have some correctable problems in its new value.\n"
+" The fixed value will be used instead. Please\n"
+" double check that this is what you intended.\n"
+" "
+msgstr ""
+
+#: Mailman/Gui/General.py:32
+#, fuzzy
+msgid "General Options"
+msgstr "Bendros parinktys"
+
+#: Mailman/Gui/General.py:46
+msgid "Conceal the member's address"
+msgstr ""
+
+#: Mailman/Gui/General.py:47
+msgid "Acknowledge the member's posting"
+msgstr ""
+
+#: Mailman/Gui/General.py:48
+msgid "Do not send a copy of a member's own post"
+msgstr ""
+
+#: Mailman/Gui/General.py:50
+msgid "Filter out duplicate messages to list members (if possible)"
+msgstr ""
+
+#: Mailman/Gui/General.py:57
+msgid "Fundamental list characteristics, including descriptive\n"
+" info and basic behaviors."
+msgstr ""
+
+#: Mailman/Gui/General.py:60
+msgid "General list personality"
+msgstr ""
+
+#: Mailman/Gui/General.py:63
+msgid "The public name of this list (make case-changes only)."
+msgstr ""
+
+#: Mailman/Gui/General.py:64
+msgid ""
+"The capitalization of this name can be changed to make it\n"
+" presentable in polite company as a proper noun, or to make an\n"
+" acronym part all upper case, etc. However, the name will be\n"
+" advertised as the email address (e.g., in subscribe confirmation\n"
+" notices), so it should <em>not</em> be otherwise altered. (Email\n"
+" addresses are not case sensitive, but they are sensitive to\n"
+" almost everything else :-)"
+msgstr ""
+
+#: Mailman/Gui/General.py:73
+msgid "The list administrator email addresses. Multiple\n"
+" administrator addresses, each on separate line is okay."
+msgstr ""
+
+#: Mailman/Gui/General.py:76
+msgid ""
+"There are two ownership roles associated with each mailing\n"
+" list. The <em>list administrators</em> are the people who have\n"
+" ultimate control over all parameters of this mailing list. They\n"
+" are able to change any list configuration variable available\n"
+" through these administration web pages.\n"
+"\n"
+" <p>The <em>list moderators</em> have more limited permissions;\n"
+" they are not able to change any list configuration variable, but\n"
+" they are allowed to tend to pending administration requests,\n"
+" including approving or rejecting held subscription requests, and\n"
+" disposing of held postings. Of course, the <em>list\n"
+" administrators</em> can also tend to pending requests.\n"
+"\n"
+" <p>In order to split the list ownership duties into\n"
+" administrators and moderators, you must\n"
+" <a href=\"passwords\">set a separate moderator password</a>,\n"
+" and also provide the <a href=\"?VARHELP=general/moderator\">email\n"
+" addresses of the list moderators</a>. Note that the field you\n"
+" are changing here specifies the list administators."
+msgstr ""
+
+#: Mailman/Gui/General.py:97
+msgid "The list moderator email addresses. Multiple\n"
+" moderator addresses, each on separate line is okay."
+msgstr ""
+
+#: Mailman/Gui/General.py:100
+msgid ""
+"There are two ownership roles associated with each mailing\n"
+" list. The <em>list administrators</em> are the people who have\n"
+" ultimate control over all parameters of this mailing list. They\n"
+" are able to change any list configuration variable available\n"
+" through these administration web pages.\n"
+"\n"
+" <p>The <em>list moderators</em> have more limited permissions;\n"
+" they are not able to change any list configuration variable, but\n"
+" they are allowed to tend to pending administration requests,\n"
+" including approving or rejecting held subscription requests, and\n"
+" disposing of held postings. Of course, the <em>list\n"
+" administrators</em> can also tend to pending requests.\n"
+"\n"
+" <p>In order to split the list ownership duties into\n"
+" administrators and moderators, you must\n"
+" <a href=\"passwords\">set a separate moderator password</a>,\n"
+" and also provide the email addresses of the list moderators in\n"
+" this section. Note that the field you are changing here\n"
+" specifies the list moderators."
+msgstr ""
+
+#: Mailman/Gui/General.py:121
+msgid "A terse phrase identifying this list."
+msgstr ""
+
+#: Mailman/Gui/General.py:123
+msgid ""
+"This description is used when the mailing list is listed with\n"
+" other mailing lists, or in headers, and so forth. It should\n"
+" be as succinct as you can get it, while still identifying what\n"
+" the list is."
+msgstr ""
+
+#: Mailman/Gui/General.py:129
+msgid ""
+"An introductory description - a few paragraphs - about the\n"
+" list. It will be included, as html, at the top of the listinfo\n"
+" page. Carriage returns will end a paragraph - see the details\n"
+" for more info."
+msgstr ""
+
+#: Mailman/Gui/General.py:133
+msgid ""
+"The text will be treated as html <em>except</em> that\n"
+" newlines will be translated to &lt;br&gt; - so you can use links,\n"
+" preformatted text, etc, but don't put in carriage returns except\n"
+" where you mean to separate paragraphs. And review your changes -\n"
+" bad html (like some unterminated HTML constructs) can prevent\n"
+" display of the entire listinfo page."
+msgstr ""
+
+#: Mailman/Gui/General.py:141
+msgid "Prefix for subject line of list postings."
+msgstr ""
+
+#: Mailman/Gui/General.py:142
+msgid ""
+"This text will be prepended to subject lines of messages\n"
+" posted to the list, to distinguish mailing list messages in in\n"
+" mailbox summaries. Brevity is premium here, it's ok to shorten\n"
+" long mailing list names to something more concise, as long as it\n"
+" still identifies the mailing list."
+msgstr ""
+
+#: Mailman/Gui/General.py:149
+msgid "Hide the sender of a message, replacing it with the list\n"
+" address (Removes From, Sender and Reply-To fields)"
+msgstr ""
+
+#: Mailman/Gui/General.py:152
+msgid "<tt>Reply-To:</tt> header munging"
+msgstr ""
+
+#: Mailman/Gui/General.py:155
+msgid ""
+"Should any existing <tt>Reply-To:</tt> header found in the\n"
+" original message be stripped? If so, this will be done\n"
+" regardless of whether an explict <tt>Reply-To:</tt> header is\n"
+" added by Mailman or not."
+msgstr ""
+
+#: Mailman/Gui/General.py:161
+msgid "Explicit address"
+msgstr ""
+
+#: Mailman/Gui/General.py:161
+msgid "Poster"
+msgstr ""
+
+#: Mailman/Gui/General.py:161
+msgid "This list"
+msgstr ""
+
+#: Mailman/Gui/General.py:162
+msgid ""
+"Where are replies to list messages directed?\n"
+" <tt>Poster</tt> is <em>strongly</em> recommended for most mailing\n"
+" lists."
+msgstr ""
+
+#: Mailman/Gui/General.py:167
+msgid ""
+"This option controls what Mailman does to the\n"
+" <tt>Reply-To:</tt> header in messages flowing through this\n"
+" mailing list. When set to <em>Poster</em>, no <tt>Reply-To:</tt>\n"
+" header is added by Mailman, although if one is present in the\n"
+" original message, it is not stripped. Setting this value to\n"
+" either <em>This list</em> or <em>Explicit address</em> causes\n"
+" Mailman to insert a specific <tt>Reply-To:</tt> header in all\n"
+" messages, overriding the header in the original message if\n"
+" necessary (<em>Explicit address</em> inserts the value of <a\n"
+" href=\"?VARHELP=general/reply_to_address\">reply_to_address</a>).\n"
+" \n"
+" <p>There are many reasons not to introduce or override the\n"
+" <tt>Reply-To:</tt> header. One is that some posters depend on\n"
+" their own <tt>Reply-To:</tt> settings to convey their valid\n"
+" return address. Another is that modifying <tt>Reply-To:</tt>\n"
+" makes it much more difficult to send private replies. See <a\n"
+" href=\"http://www.unicom.com/pw/reply-to-harmful.html\">`Reply-To'\n"
+" Munging Considered Harmful</a> for a general discussion of this\n"
+" issue. See <a\n"
+" href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml\">Reply-To\n"
+" Munging Considered Useful</a> for a dissenting opinion.\n"
+"\n"
+" <p>Some mailing lists have restricted posting privileges, with a\n"
+" parallel list devoted to discussions. Examples are `patches' or\n"
+" `checkin' lists, where software changes are posted by a revision\n"
+" control system, but discussion about the changes occurs on a\n"
+" developers mailing list. To support these types of mailing\n"
+" lists, select <tt>Explicit address</tt> and set the\n"
+" <tt>Reply-To:</tt> address below to point to the parallel\n"
+" list."
+msgstr ""
+
+#: Mailman/Gui/General.py:199
+msgid "Explicit <tt>Reply-To:</tt> header."
+msgstr ""
+
+#: Mailman/Gui/General.py:201
+msgid ""
+"This is the address set in the <tt>Reply-To:</tt> header\n"
+" when the <a\n"
+" href=\"?VARHELP=general/reply_goes_to_list\">reply_goes_to_list</a>\n"
+" option is set to <em>Explicit address</em>.\n"
+"\n"
+" <p>There are many reasons not to introduce or override the\n"
+" <tt>Reply-To:</tt> header. One is that some posters depend on\n"
+" their own <tt>Reply-To:</tt> settings to convey their valid\n"
+" return address. Another is that modifying <tt>Reply-To:</tt>\n"
+" makes it much more difficult to send private replies. See <a\n"
+" href=\"http://www.unicom.com/pw/reply-to-harmful.html\">`Reply-To'\n"
+" Munging Considered Harmful</a> for a general discussion of this\n"
+" issue. See <a\n"
+" href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml\">Reply-To\n"
+" Munging Considered Useful</a> for a dissenting opinion.\n"
+"\n"
+" <p>Some mailing lists have restricted posting privileges, with a\n"
+" parallel list devoted to discussions. Examples are `patches' or\n"
+" `checkin' lists, where software changes are posted by a revision\n"
+" control system, but discussion about the changes occurs on a\n"
+" developers mailing list. To support these types of mailing\n"
+" lists, specify the explicit <tt>Reply-To:</tt> address here. You\n"
+" must also specify <tt>Explicit address</tt> in the\n"
+" <tt>reply_goes_to_list</tt>\n"
+" variable.\n"
+"\n"
+" <p>Note that if the original message contains a\n"
+" <tt>Reply-To:</tt> header, it will not be changed."
+msgstr ""
+
+#: Mailman/Gui/General.py:230
+msgid "Umbrella list settings"
+msgstr ""
+
+#: Mailman/Gui/General.py:233
+msgid "Send password reminders to, eg, \"-owner\" address instead of\n"
+" directly to user."
+msgstr ""
+
+#: Mailman/Gui/General.py:236
+msgid ""
+"Set this to yes when this list is intended to cascade only\n"
+" to other mailing lists. When set, meta notices like\n"
+" confirmations and password reminders will be directed to an\n"
+" address derived from the member's address - it will have the\n"
+" value of \"umbrella_member_suffix\" appended to the member's\n"
+" account name."
+msgstr ""
+
+#: Mailman/Gui/General.py:244
+msgid ""
+"Suffix for use when this list is an umbrella for other\n"
+" lists, according to setting of previous \"umbrella_list\"\n"
+" setting."
+msgstr ""
+
+#: Mailman/Gui/General.py:248
+msgid ""
+"When \"umbrella_list\" is set to indicate that this list has\n"
+" other mailing lists as members, then administrative notices like\n"
+" confirmations and password reminders need to not be sent to the\n"
+" member list addresses, but rather to the owner of those member\n"
+" lists. In that case, the value of this setting is appended to\n"
+" the member's account name for such notices. `-owner' is the\n"
+" typical choice. This setting has no effect when \"umbrella_list\"\n"
+" is \"No\"."
+msgstr ""
+
+#: Mailman/Gui/General.py:260
+msgid "Send monthly password reminders?"
+msgstr ""
+
+#: Mailman/Gui/General.py:262
+msgid ""
+"Turn this on if you want password reminders to be sent once\n"
+" per month to your members. Note that members may disable their\n"
+" own individual password reminders."
+msgstr ""
+"Ájunkite jei norite, kad kartà á mënesá Jûsø forumo nariams\n"
+" bûtø siunèiami jø slaptaþodþiø priminimai.\n"
+" (Nariai gali atsisakyti to savo asmeniniuose nustatymuose.)"
+
+#: Mailman/Gui/General.py:267
+msgid "List-specific text prepended to new-subscriber welcome\n"
+" message"
+msgstr ""
+
+#: Mailman/Gui/General.py:270
+msgid ""
+"This value, if any, will be added to the front of the\n"
+" new-subscriber welcome message. The rest of the welcome message\n"
+" already describes the important addresses and URLs for the\n"
+" mailing list, so you don't need to include any of that kind of\n"
+" stuff here. This should just contain mission-specific kinds of\n"
+" things, like etiquette policies or team orientation, or that kind\n"
+" of thing.\n"
+"\n"
+" <p>Note that this text will be wrapped, according to the\n"
+" following rules:\n"
+" <ul><li>Each paragraph is filled so that no line is longer than\n"
+" 70 characters.\n"
+" <li>Any line that begins with whitespace is not filled.\n"
+" <li>A blank line separates paragraphs.\n"
+" </ul>"
+msgstr ""
+
+#: Mailman/Gui/General.py:287
+msgid "Send welcome message to newly subscribed members?"
+msgstr "Ar siøsti pasveikinimus naujai uþsisakiusiems?"
+
+#: Mailman/Gui/General.py:288
+msgid ""
+"Turn this off only if you plan on subscribing people manually\n"
+" and don't want them to know that you did so. This option is most\n"
+" useful for transparently migrating lists from some other mailing\n"
+" list manager to Mailman."
+msgstr ""
+
+#: Mailman/Gui/General.py:294
+msgid "Text sent to people leaving the list. If empty, no special\n"
+" text will be added to the unsubscribe message."
+msgstr ""
+
+#: Mailman/Gui/General.py:298
+msgid "Send goodbye message to members when they are unsubscribed?"
+msgstr "Ar siøsti atsisveikinimus atsisakiusiems?"
+
+#: Mailman/Gui/General.py:301
+msgid "Should the list moderators get immediate notice of new\n"
+" requests, as well as daily notices about collected ones?"
+msgstr ""
+
+#: Mailman/Gui/General.py:304
+msgid ""
+"List moderators (and list administrators) are sent daily\n"
+" reminders of requests pending approval, like subscriptions to a\n"
+" moderated list, or postings that are being held for one reason or\n"
+" another. Setting this option causes notices to be sent\n"
+" immediately on the arrival of new requests as well."
+msgstr ""
+
+#: Mailman/Gui/General.py:311
+msgid "Should administrator get notices of subscribes and\n"
+" unsubscribes?"
+msgstr "Ar turi bûti praneðama administratoriui apie\n"
+" uþsisakymus ir atsisakymus?"
+
+#: Mailman/Gui/General.py:316
+msgid "Send mail to poster when their posting is held for approval?"
+msgstr ""
+
+#: Mailman/Gui/General.py:318
+msgid ""
+"Approval notices are sent when mail triggers certain of the\n"
+" limits <em>except</em> routine list moderation and spam filters,\n"
+" for which notices are <em>not</em> sent. This option overrides\n"
+" ever sending the notice."
+msgstr ""
+
+#: Mailman/Gui/General.py:323
+msgid "Additional settings"
+msgstr ""
+
+#: Mailman/Gui/General.py:332
+msgid "Default options for new members joining this list.<input\n"
+" type=\"hidden\" name=\"new_member_options\" value=\"ignore\">"
+msgstr ""
+
+#: Mailman/Gui/General.py:335
+msgid "When a new member is subscribed to this list, their initial\n"
+" set of options is taken from the this variable's setting."
+msgstr ""
+
+#: Mailman/Gui/General.py:339
+msgid "(Administrivia filter) Check postings and intercept ones\n"
+" that seem to be administrative requests?"
+msgstr ""
+
+#: Mailman/Gui/General.py:342
+msgid ""
+"Administrivia tests will check postings to see whether it's\n"
+" really meant as an administrative request (like subscribe,\n"
+" unsubscribe, etc), and will add it to the the administrative\n"
+" requests queue, notifying the administrator of the new request,\n"
+" in the process."
+msgstr ""
+
+#: Mailman/Gui/General.py:349
+msgid "Maximum length in kilobytes (KB) of a message body. Use 0\n"
+" for no limit."
+msgstr ""
+
+#: Mailman/Gui/General.py:353
+msgid "Host name this list prefers for email."
+msgstr ""
+
+#: Mailman/Gui/General.py:355
+msgid ""
+"The \"host_name\" is the preferred name for email to\n"
+" mailman-related addresses on this host, and generally should be\n"
+" the mail host's exchanger address, if any. This setting can be\n"
+" useful for selecting among alternative names of a host that has\n"
+" multiple addresses."
+msgstr ""
+
+#: Mailman/Gui/General.py:367
+msgid ""
+"Should messages from this mailing list include the\n"
+" <a href=\"http://www.faqs.org/rfcs/rfc2369.html\">RFC 2369</a>\n"
+" (i.e. <tt>List-*</tt>) headers? <em>Yes</em> is highly\n"
+" recommended."
+msgstr ""
+
+#: Mailman/Gui/General.py:372
+msgid ""
+"RFC 2369 defines a set of List-* headers that are\n"
+" normally added to every message sent to the list membership.\n"
+" These greatly aid end-users who are using standards compliant\n"
+" mail readers. They should normally always be enabled.\n"
+"\n"
+" <p>However, not all mail readers are standards compliant yet,\n"
+" and if you have a large number of members who are using\n"
+" non-compliant mail readers, they may be annoyed at these\n"
+" headers. You should first try to educate your members as to\n"
+" why these headers exist, and how to hide them in their mail\n"
+" clients. As a last resort you can disable these headers, but\n"
+" this is not recommended (and in fact, your ability to disable\n"
+" these headers may eventually go away)."
+msgstr ""
+
+#: Mailman/Gui/General.py:390
+msgid "Should postings include the <tt>List-Post:</tt> header?"
+msgstr ""
+
+#: Mailman/Gui/General.py:391
+msgid ""
+"The <tt>List-Post:</tt> header is one of the headers\n"
+" recommended by\n"
+" <a href=\"http://www.faqs.org/rfcs/rfc2369.html\">RFC 2369</a>.\n"
+" However for some <em>announce-only</em> mailing lists, only a\n"
+" very select group of people are allowed to post to the list; the\n"
+" general membership is usually not allowed to post. For lists of\n"
+" this nature, the <tt>List-Post:</tt> header is misleading.\n"
+" Select <em>No</em> to disable the inclusion of this header. (This\n"
+" does not affect the inclusion of the other <tt>List-*:</tt>\n"
+" headers.)"
+msgstr ""
+
+#: Mailman/Gui/General.py:409
+msgid ""
+"<b>real_name</b> attribute not\n"
+" changed! It must differ from the list's name by case\n"
+" only."
+msgstr ""
+
+#: Mailman/Gui/General.py:430
+msgid "You cannot add a Reply-To: to an explicit\n"
+" address if that address is blank. Resetting these values."
+msgstr ""
+
+#: Mailman/Gui/Language.py:32
+msgid "Language&nbsp;options"
+msgstr ""
+
+#: Mailman/Gui/Language.py:53
+msgid "Natural language (internationalization) options."
+msgstr ""
+
+#: Mailman/Gui/Language.py:58
+msgid "Default language for this list."
+msgstr ""
+
+#: Mailman/Gui/Language.py:59
+msgid ""
+"This is the default natural language for this mailing list.\n"
+" If <a href=\"?VARHELP=language/available_languages\">more than one\n"
+" language</a> is supported then users will be able to select their\n"
+" own preferences for when they interact with the list. All other\n"
+" interactions will be conducted in the default language. This\n"
+" applies to both web-based and email-based messages, but not to\n"
+" email posted by list members."
+msgstr ""
+
+#: Mailman/Gui/Language.py:69
+msgid "Languages supported by this list."
+msgstr ""
+
+#: Mailman/Gui/Language.py:71
+msgid ""
+"These are all the natural languages supported by this list.\n"
+" Note that the\n"
+" <a href=\"?VARHELP=language/preferred_language\">default\n"
+" language</a> must be included."
+msgstr ""
+
+#: Mailman/Gui/Language.py:77
+msgid "Always"
+msgstr "Visada"
+
+#: Mailman/Gui/Language.py:77
+msgid "As needed"
+msgstr ""
+
+#: Mailman/Gui/Language.py:77
+msgid "Never"
+msgstr "Niekada"
+
+#: Mailman/Gui/Language.py:78
+msgid ""
+"Encode the\n"
+" <a href=\"?VARHELP=general/subject_prefix\">subject\n"
+" prefix</a> even when it consists of only ASCII characters?"
+msgstr ""
+
+#: Mailman/Gui/Language.py:82
+msgid ""
+"If your mailing list's default language uses a non-ASCII\n"
+" character set and the prefix contains non-ASCII characters, the\n"
+" prefix will always be encoded according to the relevant\n"
+" standards. However, if your prefix contains only ASCII\n"
+" characters, you may want to set this option to <em>Never</em> to\n"
+" disable prefix encoding. This can make the subject headers\n"
+" slightly more readable for users with mail readers that don't\n"
+" properly handle non-ASCII encodings.\n"
+"\n"
+" <p>Note however, that if your mailing list receives both encoded\n"
+" and unencoded subject headers, you might want to choose <em>As\n"
+" needed</em>. Using this setting, Mailman will not encode ASCII\n"
+" prefixes when the rest of the header contains only ASCII\n"
+" characters, but if the original header contains non-ASCII\n"
+" characters, it will encode the prefix. This avoids an ambiguity\n"
+" in the standards which could cause some mail readers to display\n"
+" extra, or missing spaces between the prefix and the original\n"
+" header."
+msgstr ""
+
+#: Mailman/Gui/Membership.py:26
+msgid "Membership&nbsp;Management"
+msgstr ""
+
+#: Mailman/Gui/Membership.py:30
+msgid "Membership&nbsp;List"
+msgstr ""
+
+#: Mailman/Gui/Membership.py:31
+msgid "Mass&nbsp;Subscription"
+msgstr "Bendras&nbsp;Uþsakymas"
+
+#: Mailman/Gui/Membership.py:32
+msgid "Mass&nbsp;Removal"
+msgstr "Bendras&nbsp;Iðbraukimas"
+
+#: Mailman/Gui/NonDigest.py:34
+msgid "Non-digest&nbsp;options"
+msgstr ""
+
+#: Mailman/Gui/NonDigest.py:42
+msgid "Policies concerning immediately delivered list traffic."
+msgstr ""
+
+#: Mailman/Gui/NonDigest.py:45
+msgid "Can subscribers choose to receive mail immediately, rather\n"
+" than in batched digests?"
+msgstr ""
+
+#: Mailman/Gui/NonDigest.py:53
+msgid ""
+"Should Mailman personalize each non-digest delivery?\n"
+" This is often useful for announce-only lists, but <a\n"
+" href=\"?VARHELP=nondigest/personalize\">read the details</a>\n"
+" section for a discussion of important performance\n"
+" issues."
+msgstr ""
+
+#: Mailman/Gui/NonDigest.py:59
+msgid ""
+"Normally, Mailman sends the regular delivery messages to\n"
+" the mail server in batches. This is much more efficent\n"
+" because it reduces the amount of traffic between Mailman and\n"
+" the mail server.\n"
+"\n"
+" <p>However, some lists can benefit from a more personalized\n"
+" approach. In this case, Mailman crafts a new message for\n"
+" each member on the regular delivery list. Turning this\n"
+" feature on may degrade the performance of your site, so you\n"
+" need to carefully consider whether the trade-off is worth it,\n"
+" or whether there are other ways to accomplish what you want.\n"
+" You should also carefully monitor your system load to make\n"
+" sure it is acceptable.\n"
+"\n"
+" <p>When personalized lists are enabled, two things happen.\n"
+" First, the <code>To:</code> header of the posted message is\n"
+" modified so that each individual user is addressed\n"
+" specifically. I.e. it looks like the message was addressed\n"
+" to the recipient instead of to the list.\n"
+"\n"
+" <p>Second a few more expansion variables that can be included\n"
+" in the <a href=\"?VARHELP=nondigest/msg_header\">message\n"
+" header</a> and\n"
+" <a href=\"?VARHELP=nondigest/msg_footer\">message footer</a>.\n"
+"\n"
+" <p>These additional substitution variables will be available\n"
+" for your headers and footers, when this feature is enabled:\n"
+"\n"
+" <ul><li><b>user_address</b> - The address of the user,\n"
+" coerced to lower case.\n"
+" <li><b>user_delivered_to</b> - The case-preserved address\n"
+" that the user is subscribed with.\n"
+" <li><b>user_password</b> - The user's password.\n"
+" <li><b>user_name</b> - The user's full name.\n"
+" <li><b>user_optionsurl</b> - The url to the user's option\n"
+" page.\n"
+" </ul>\n"
+" "
+msgstr ""
+
+#: Mailman/Gui/NonDigest.py:104
+msgid "Header added to mail sent to regular list members"
+msgstr ""
+
+#: Mailman/Gui/NonDigest.py:105
+msgid "Text prepended to the top of every immediately-delivery\n"
+" message. "
+msgstr ""
+
+#: Mailman/Gui/NonDigest.py:110
+msgid "Footer added to mail sent to regular list members"
+msgstr ""
+
+#: Mailman/Gui/NonDigest.py:111
+msgid "Text appended to the bottom of every immediately-delivery\n"
+" message. "
+msgstr ""
+
+#: Mailman/Gui/Passwords.py:27
+msgid "Passwords"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:28
+msgid "Privacy options"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:32
+msgid "Subscription&nbsp;rules"
+msgstr "Uþsisakymo&nbsp;taisyklës"
+
+#: Mailman/Gui/Privacy.py:33
+msgid "Sender&nbsp;filters"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:34
+msgid "Recipient&nbsp;filters"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:35
+msgid "Spam&nbsp;filters"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:49
+#: Mailman/Gui/Usenet.py:61
+msgid "None"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:50
+#: Mailman/Gui/Privacy.py:73
+msgid "Confirm"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:51
+#: Mailman/Gui/Privacy.py:74
+msgid "Require approval"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:52
+#: Mailman/Gui/Privacy.py:75
+msgid "Confirm and approve"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:54
+#: Mailman/Gui/Privacy.py:77
+msgid "What steps are required for subscription?<br>"
+msgstr "Kokie þingsniai bûtini uþsisakymui?<br>"
+
+#: Mailman/Gui/Privacy.py:55
+msgid ""
+"None - no verification steps (<em>Not\n"
+" Recommended </em>)<br>\n"
+" Confirm (*) - email confirmation step required <br>\n"
+" Require approval - require list administrator\n"
+" Approval for subscriptions <br>\n"
+" Confirm and approve - both confirm and approve\n"
+" \n"
+" <p>(*) when someone requests a subscription,\n"
+" Mailman sends them a notice with a unique\n"
+" subscription request number that they must reply to\n"
+" in order to subscribe.<br>\n"
+"\n"
+" This prevents mischievous (or malicious) people\n"
+" from creating subscriptions for others without\n"
+" their consent."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:78
+msgid ""
+"Confirm (*) - email confirmation required <br>\n"
+" Require approval - require list administrator\n"
+" approval for subscriptions <br>\n"
+" Confirm and approve - both confirm and approve\n"
+" \n"
+" <p>(*) when someone requests a subscription,\n"
+" Mailman sends them a notice with a unique\n"
+" subscription request number that they must reply to\n"
+" in order to subscribe.<br> This prevents\n"
+" mischievous (or malicious) people from creating\n"
+" subscriptions for others without their consent."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:94
+msgid ""
+"This section allows you to configure subscription and\n"
+" membership exposure policy. You can also control whether this\n"
+" list is public or not. See also the\n"
+" <a href=\"%(admin)s/archive\">Archival Options</a> section for\n"
+" separate archive-related privacy settings."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:100
+msgid "Subscribing"
+msgstr "Uþsisakant"
+
+#: Mailman/Gui/Privacy.py:102
+msgid "Advertise this list when people ask what lists are on this\n"
+" machine?"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:108
+msgid "Is the list moderator's approval required for unsubscription\n"
+" requests? (<em>No</em> is recommended)"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:111
+msgid ""
+"When members want to leave a list, they will make an\n"
+" unsubscription request, either via the web or via email.\n"
+" Normally it is best for you to allow open unsubscriptions so that\n"
+" users can easily remove themselves from mailing lists (they get\n"
+" really upset if they can't get off lists!).\n"
+"\n"
+" <p>For some lists though, you may want to impose moderator\n"
+" approval before an unsubscription request is processed. Examples\n"
+" of such lists include a corporate mailing list that all employees\n"
+" are required to be members of."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:122
+msgid "Ban list"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:124
+msgid "List of addresses which are banned from membership in this\n"
+" mailing list."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:127
+msgid ""
+"Addresses in this list are banned outright from subscribing\n"
+" to this mailing list, with no further moderation required. Add\n"
+" addresses one per line; start the line with a ^ character to\n"
+" designate a regular expression match."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:132
+msgid "Membership exposure"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:134
+msgid "Anyone"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:134
+msgid "List admin only"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:134
+msgid "List members"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:135
+msgid "Who can view subscription list?"
+msgstr "Kas gali perþiûrëti uþsisakiusiøjø sàraðà?"
+
+#: Mailman/Gui/Privacy.py:137
+msgid "When set, the list of subscribers is protected by member or\n"
+" admin password authentication."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:141
+msgid "Show member addrs so they're not directly recognizable as\n"
+" email addrs?"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:143
+msgid ""
+"Setting this option causes member email addresses to be\n"
+" transformed when they are presented on list web pages (both in\n"
+" text and as links), so they're not trivially recognizable as\n"
+" email addresses. The intention is to prevent the addresses\n"
+" from being snarfed up by automated web scanners for use by\n"
+" spammers."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:153
+msgid ""
+"When a message is posted to the list, a series of\n"
+" moderation steps are take to decide whether the a moderator must\n"
+" first approve the message or not. This section contains the\n"
+" controls for moderation of both member and non-member postings.\n"
+"\n"
+" <p>Member postings are held for moderation if their\n"
+" <b>moderation flag</b> is turned on. You can control whether\n"
+" member postings are moderated by default or not.\n"
+"\n"
+" <p>Non-member postings can be automatically\n"
+" <a href=\"?VARHELP=privacy/sender/accept_these_nonmembers\"\n"
+" >accepted</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/hold_these_nonmembers\">held for\n"
+" moderation</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/reject_these_nonmembers\"\n"
+" >rejected</a> (bounced), or\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >discarded</a>,\n"
+" either individually or as a group. Any\n"
+" posting from a non-member who is not explicitly accepted,\n"
+" rejected, or discarded, will have their posting filtered by the\n"
+" <a href=\"?VARHELP=privacy/sender/generic_nonmember_action\">general\n"
+" non-member rules</a>.\n"
+"\n"
+" <p>In the text boxes below, add one address per line; start the\n"
+" line with a ^ character to designate a <a href=\n"
+" \"http://www.python.org/doc/current/lib/module-re.html\"\n"
+" >Python regular expression</a>. When entering backslashes, do so\n"
+" as if you were using Python raw strings (i.e. you generally just\n"
+" use a single backslash).\n"
+"\n"
+" <p>Note that non-regexp matches are always done first."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:186
+msgid "Member filters"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:189
+msgid "By default, should new list member postings be moderated?"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:191
+msgid ""
+"Each list member has a <em>moderation flag</em> which says\n"
+" whether messages from the list member can be posted directly to\n"
+" the list, or must first be approved by the list moderator. When\n"
+" the moderation flag is turned on, list member postings must be\n"
+" approved first. You, the list administrator can decide whether a\n"
+" specific individual's postings will be moderated or not.\n"
+"\n"
+" <p>When a new member is subscribed, their initial moderation flag\n"
+" takes its value from this option. Turn this option off to accept\n"
+" member postings by default. Turn this option on to, by default,\n"
+" moderate member postings first. You can always manually set an\n"
+" individual member's moderation bit by using the\n"
+" <a href=\"%(adminurl)s/members\">membership management\n"
+" screens</a>."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:207
+#: Mailman/Gui/Privacy.py:281
+msgid "Hold"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:208
+msgid "Action to take when a moderated member posts to the\n"
+" list."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:210
+msgid ""
+"<ul><li><b>Hold</b> -- this holds the message for approval\n"
+" by the list moderators.\n"
+"\n"
+" <p><li><b>Reject</b> -- this automatically rejects the message by\n"
+" sending a bounce notice to the post's author. The text of the\n"
+" bounce notice can be <a\n"
+" href=\"?VARHELP=privacy/sender/member_moderation_notice\"\n"
+" >configured by you</a>.\n"
+"\n"
+" <p><li><b>Discard</b> -- this simply discards the message, with\n"
+" no notice sent to the post's author.\n"
+" </ul>"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:224
+msgid ""
+"Text to include in any\n"
+" <a href=\"?VARHELP/privacy/sender/member_moderation_action\"\n"
+" >rejection notice</a> to\n"
+" be sent to moderated members who post to this list."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:229
+msgid "Non-member filters"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:232
+msgid "List of non-member addresses whose postings should be\n"
+" automatically accepted."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:235
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" accepted with no further moderation applied. Add member\n"
+" addresses one per line; start the line with a ^ character to\n"
+" designate a regular expression match."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:241
+msgid "List of non-member addresses whose postings will be\n"
+" immediately held for moderation."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:244
+msgid ""
+"Postings from any of these non-members will be immediately\n"
+" and automatically held for moderation by the list moderators.\n"
+" The sender will receive a notification message which will allow\n"
+" them to cancel their held message. Add member addresses one per\n"
+" line; start the line with a ^ character to designate a regular\n"
+" expression match."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:252
+msgid "List of non-member addresses whose postings will be\n"
+" automatically rejected."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:255
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" rejected. In other words, their messages will be bounced back to\n"
+" the sender with a notification of automatic rejection. This\n"
+" option is not appropriate for known spam senders; their messages\n"
+" should be\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >automatically discarded</a>.\n"
+"\n"
+" <p>Add member addresses one per line; start the line with a ^\n"
+" character to designate a regular expression match."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:267
+msgid "List of non-member addresses whose postings will be\n"
+" automatically discarded."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:270
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" discarded. That is, the message will be thrown away with no\n"
+" further processing or notification. The sender will not receive\n"
+" a notification or a bounce, however the list moderators can\n"
+" optionally <a href=\"?VARHELP=privacy/sender/forward_auto_discards\"\n"
+" >receive copies of auto-discarded messages.</a>.\n"
+"\n"
+" <p>Add member addresses one per line; start the line with a ^\n"
+" character to designate a regular expression match."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:282
+msgid "Action to take for postings from non-members for which no\n"
+" explicit action is defined."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:285
+msgid ""
+"When a post from a non-member is received, the message's\n"
+" sender is matched against the list of explicitly\n"
+" <a href=\"?VARHELP=privacy/sender/accept_these_nonmembers\"\n"
+" >accepted</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/hold_these_nonmembers\">held</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/reject_these_nonmembers\"\n"
+" >rejected</a> (bounced), and\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >discarded</a> addresses. If no match is found, then this action\n"
+" is taken."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:297
+msgid "Should messages from non-members, which are automatically\n"
+" discarded, be forwarded to the list moderator?"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:303
+msgid "This section allows you to configure various filters based on\n"
+" the recipient of the message."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:306
+msgid "Recipient filters"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:310
+msgid "Must posts have list named in destination (to, cc) field\n"
+" (or be among the acceptable alias names, specified below)?"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:313
+msgid ""
+"Many (in fact, most) spams do not explicitly name their\n"
+" myriad destinations in the explicit destination addresses - in\n"
+" fact often the To: field has a totally bogus address for\n"
+" obfuscation. The constraint applies only to the stuff in the\n"
+" address before the '@' sign, but still catches all such spams.\n"
+"\n"
+" <p>The cost is that the list will not accept unhindered any\n"
+" postings relayed from other addresses, unless\n"
+"\n"
+" <ol>\n"
+" <li>The relaying address has the same name, or\n"
+"\n"
+" <li>The relaying address name is included on the options that\n"
+" specifies acceptable aliases for the list.\n"
+"\n"
+" </ol>"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:331
+msgid "Alias names (regexps) which qualify as explicit to or cc\n"
+" destination names for this list."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:334
+msgid ""
+"Alternate addresses that are acceptable when\n"
+" `require_explicit_destination' is enabled. This option takes a\n"
+" list of regular expressions, one per line, which is matched\n"
+" against every recipient address in the message. The matching is\n"
+" performed with Python's re.match() function, meaning they are\n"
+" anchored to the start of the string.\n"
+" \n"
+" <p>For backwards compatibility with Mailman 1.1, if the regexp\n"
+" does not contain an `@', then the pattern is matched against just\n"
+" the local part of the recipient address. If that match fails, or\n"
+" if the pattern does contain an `@', then the pattern is matched\n"
+" against the entire recipient address.\n"
+" \n"
+" <p>Matching against the local part is deprecated; in a future\n"
+" release, the pattern will always be matched against the entire\n"
+" recipient address."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:352
+msgid "Ceiling on acceptable number of recipients for a posting."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:354
+msgid "If a posting has this number, or more, of recipients, it is\n"
+" held for admin approval. Use 0 for no ceiling."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:359
+msgid ""
+"This section allows you to configure various anti-spam\n"
+" filters posting filters, which can help reduce the amount of spam\n"
+" your list members end up receiving.\n"
+" "
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:364
+msgid "Anti-Spam filters"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:367
+msgid "Hold posts with header value matching a specified regexp."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:368
+msgid ""
+"Use this option to prohibit posts according to specific\n"
+" header values. The target value is a regular-expression for\n"
+" matching against the specified header. The match is done\n"
+" disregarding letter case. Lines beginning with '#' are ignored\n"
+" as comments.\n"
+"\n"
+" <p>For example:<pre>to: .*@public.com </pre> says to hold all\n"
+" postings with a <em>To:</em> mail header containing '@public.com'\n"
+" anywhere among the addresses.\n"
+"\n"
+" <p>Note that leading whitespace is trimmed from the regexp. This\n"
+" can be circumvented in a number of ways, e.g. by escaping or\n"
+" bracketing it."
+msgstr ""
+
+#: Mailman/Gui/Topics.py:28
+msgid "Topics"
+msgstr ""
+
+#: Mailman/Gui/Topics.py:36
+msgid "List topic keywords"
+msgstr ""
+
+#: Mailman/Gui/Topics.py:38
+msgid "Disabled"
+msgstr "Uþdraustas"
+
+#: Mailman/Gui/Topics.py:38
+msgid "Enabled"
+msgstr "Leidþiamas"
+
+#: Mailman/Gui/Topics.py:39
+msgid "Should the topic filter be enabled or disabled?"
+msgstr ""
+
+#: Mailman/Gui/Topics.py:41
+msgid ""
+"The topic filter categorizes each incoming email message\n"
+" according to <a\n"
+" href=\"http://www.python.org/doc/current/lib/module-re.html\">regular\n"
+" expression filters</a> you specify below. If the message's\n"
+" <code>Subject:</code> or <code>Keywords:</code> header contains a\n"
+" match against a topic filter, the message is logically placed\n"
+" into a topic <em>bucket</em>. Each user can then choose to only\n"
+" receive messages from the mailing list for a particular topic\n"
+" bucket (or buckets). Any message not categorized in a topic\n"
+" bucket registered with the user is not delivered to the list.\n"
+"\n"
+" <p>Note that this feature only works with regular delivery, not\n"
+" digest delivery.\n"
+"\n"
+" <p>The body of the message can also be optionally scanned for\n"
+" <code>Subject:</code> and <code>Keywords:</code> headers, as\n"
+" specified by the <a\n"
+" href=\"?VARHELP=topics/topics_bodylines_limit\">topics_bodylines_limit</a>\n"
+" configuration variable."
+msgstr ""
+
+#: Mailman/Gui/Topics.py:62
+msgid "How many body lines should the topic matcher scan?"
+msgstr ""
+
+#: Mailman/Gui/Topics.py:64
+msgid ""
+"The topic matcher will scan this many lines of the message\n"
+" body looking for topic keyword matches. Body scanning stops when\n"
+" either this many lines have been looked at, or a non-header-like\n"
+" body line is encountered. By setting this value to zero, no body\n"
+" lines will be scanned (i.e. only the <code>Keywords:</code> and\n"
+" <code>Subject:</code> headers will be scanned). By setting this\n"
+" value to a negative number, then all body lines will be scanned\n"
+" until a non-header-like line is encountered.\n"
+" "
+msgstr ""
+
+#: Mailman/Gui/Topics.py:75
+msgid "Topic keywords, one per line, to match against each message."
+msgstr ""
+
+#: Mailman/Gui/Topics.py:77
+msgid ""
+"Each topic keyword is actually a regular expression, which is\n"
+" matched against certain parts of a mail message, specifically the\n"
+" <code>Keywords:</code> and <code>Subject:</code> message headers.\n"
+" Note that the first few lines of the body of the message can also\n"
+" contain a <code>Keywords:</code> and <code>Subject:</code>\n"
+" \"header\" on which matching is also performed."
+msgstr ""
+
+#: Mailman/Gui/Topics.py:116
+msgid "Topic specifications require both a name and\n"
+" a pattern. Incomplete topics will be ignored."
+msgstr ""
+
+#: Mailman/Gui/Topics.py:124
+msgid "The topic pattern `%(pattern)s' is not a\n"
+" legal regular expression. It will be discarded."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:25
+msgid "Mail&lt;-&gt;News&nbsp;gateways"
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:35
+msgid "Mail-to-News and News-to-Mail gateway services."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:37
+msgid "News server settings"
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:40
+msgid "The Internet address of the machine your News server is\n"
+" running on."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:42
+msgid ""
+"The News server is not part of Mailman proper. You have to\n"
+" already have access to a NNTP server, and that NNTP server has to\n"
+" recognize the machine this mailing list runs on as a machine\n"
+" capable of reading and posting news."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:48
+msgid "The name of the Usenet group to gateway to and/or from."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:51
+msgid "Should new posts to the mailing list be sent to the\n"
+" newsgroup?"
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:55
+msgid "Should new posts to the newsgroup be sent to the mailing\n"
+" list?"
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:58
+msgid "Forwarding options"
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:61
+msgid "Moderated"
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:61
+msgid "Open list, moderated group"
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:64
+msgid "The moderation policy of the newsgroup."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:66
+msgid ""
+"This setting determines the moderation policy of the\n"
+" newsgroup and its interaction with the moderation policy of the\n"
+" mailing list. This only applies to the newsgroup that you are\n"
+" gatewaying <em>to</em>, so if you are only gatewaying from\n"
+" Usenet, or the newsgroup you are gatewaying to is not moderated,\n"
+" set this option to <em>None</em>.\n"
+"\n"
+" <p>If the newsgroup is moderated, you can set this mailing list\n"
+" up to be the moderation address for the newsgroup. By selecting\n"
+" <em>Moderated</em>, an additional posting hold will be placed in\n"
+" the approval process. All messages posted to the mailing list\n"
+" will have to be approved before being sent on to the newsgroup,\n"
+" or to the mailing list membership.\n"
+"\n"
+" <p><em>Note that if the message has an <tt>Approved</tt> header\n"
+" with the list's administrative password in it, this hold test\n"
+" will be bypassed, allowing privileged posters to send messages\n"
+" directly to the list and the newsgroup.</em>\n"
+"\n"
+" <p>Finally, if the newsgroup is moderated, but you want to have\n"
+" an open posting policy anyway, you should select <em>Open list,\n"
+" moderated group</em>. The effect of this is to use the normal\n"
+" Mailman moderation facilities, but to add an <tt>Approved</tt>\n"
+" header to all messages that are gatewayed to Usenet."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:92
+msgid "Prefix <tt>Subject:</tt> headers on postings gated to news?"
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:93
+msgid ""
+"Mailman prefixes <tt>Subject:</tt> headers with\n"
+" <a href=\"?VARHELP=general/subject_prefix\">text you can\n"
+" customize</a> and normally, this prefix shows up in messages\n"
+" gatewayed to Usenet. You can set this option to <em>No</em> to\n"
+" disable the prefix on gated messages. Of course, if you turn off\n"
+" normal <tt>Subject:</tt> prefixes, they won't be prefixed for\n"
+" gated messages either."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:101
+msgid "Mass catch up"
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:104
+msgid "Should Mailman perform a <em>catchup</em> on the newsgroup?"
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:105
+msgid ""
+"When you tell Mailman to perform a catchup on the newsgroup,\n"
+" this means that you want to start gating messages to the mailing\n"
+" list with the next new message found. All earlier messages on\n"
+" the newsgroup will be ignored. This is as if you were reading\n"
+" the newsgroup yourself, and you marked all current messages as\n"
+" <em>read</em>. By catching up, your mailing list members will\n"
+" not see any of the earlier messages."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:119
+msgid "Mass catchup completed"
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:131
+msgid ""
+"You cannot enable gatewaying unless both the\n"
+" <a href=\"?VARHELP=gateway/nntp_host\">news server field</a> and\n"
+" the <a href=\"?VARHELP=gateway/linked_newsgroup\">linked\n"
+" newsgroup</a> fields are filled in."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:47
+msgid "%(listinfo_link)s list run by %(owner_link)s"
+msgstr "Forumas %(listinfo_link)s, kurá sukûrë %(owner_link)s"
+
+#: Mailman/HTMLFormatter.py:55
+msgid "%(realname)s administrative interface"
+msgstr "Forumo %(realname)s prieþiûra"
+
+#: Mailman/HTMLFormatter.py:56
+msgid " (requires authorization)"
+msgstr " (bûtinas patvirtinimas)"
+
+#: Mailman/HTMLFormatter.py:59
+msgid "Overview of all %(hostname)s mailing lists"
+msgstr "%(hostname)s forumø sàraðas"
+
+#: Mailman/HTMLFormatter.py:80
+msgid "<em>(1 private member not shown)</em>"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:82
+msgid "<em>(%(num_concealed)d private members not shown)</em>"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:137
+msgid "; it was disabled by you"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:139
+msgid "; it was disabled by the list administrator"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:143
+msgid "; it was disabled due to excessive bounces. The\n"
+" last bounce was received on %(date)s"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:146
+msgid "; it was disabled for unknown reasons"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:148
+msgid "Note: your list delivery is currently disabled %(reason)s."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:151
+msgid "Mail delivery"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:153
+#: Mailman/HTMLFormatter.py:298
+msgid "the list administrator"
+msgstr "forumo priþiûrëtojas"
+
+#: Mailman/HTMLFormatter.py:154
+msgid ""
+"<p>%(note)s\n"
+"\n"
+" <p>You may have disabled list delivery intentionally,\n"
+" or it may have been triggered by bounces from your email\n"
+" address. In either case, to re-enable delivery, change the\n"
+" %(link)s option below. Contact %(mailto)s if you have any\n"
+" questions or need assistance."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:166
+msgid ""
+"<p>We have received some recent bounces from your\n"
+" address. Your current <em>bounce score</em> is %(score)s out of a\n"
+" maximum of %(total)s. Please double check that your subscribed\n"
+" address is correct and that there are no problems with delivery to\n"
+" this address. Your bounce score will be automatically reset if\n"
+" the problems are corrected soon."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:178
+msgid "(Note - you are subscribing to a list of mailing lists, so the %(type)s notice will be sent to the admin address for your membership, %(addr)s.)<p>"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:188
+msgid "You will be sent email requesting confirmation, to\n"
+" prevent others from gratuitously subscribing you."
+msgstr "Jums bus iðsiøstas laiðkas, atsakydami á kurá\n"
+" turësite patvirtinti uþsisakymà. Taip norime apsaugoti Jus nuo nepraðytø uþsakymø."
+
+#: Mailman/HTMLFormatter.py:191
+msgid ""
+"This is a closed list, which means your subscription\n"
+" will be held for approval. You will be notified of the list\n"
+" moderator's decision by email."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:194
+#: Mailman/HTMLFormatter.py:201
+msgid "also "
+msgstr "taip pat"
+
+#: Mailman/HTMLFormatter.py:196
+msgid ""
+"You will be sent email requesting confirmation, to\n"
+" prevent others from gratuitously subscribing you. Once\n"
+" confirmation is received, your request will be held for approval\n"
+" by the list moderator. You will be notified of the moderator's\n"
+" decision by email."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:205
+msgid "This is %(also)sa private list, which means that the\n"
+" list of members is not available to non-members."
+msgstr "Ðis forumas %(also)s privatus, tai reiðkia, kad tik jo nariai\n"
+" gali pamatyti jo nariø sàraðà."
+
+#: Mailman/HTMLFormatter.py:208
+msgid "This is %(also)sa hidden list, which means that the\n"
+" list of members is available only to the list administrator."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:211
+msgid "This is %(also)sa public list, which means that the\n"
+" list of members list is available to everyone."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:214
+msgid " (but we obscure the addresses so they are not\n"
+" easily recognizable by spammers)."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:219
+msgid ""
+"<p>(Note that this is an umbrella list, intended to\n"
+" have only other mailing lists as members. Among other things,\n"
+" this means that your confirmation request will be sent to the\n"
+" `%(sfx)s' account for your address.)"
+msgstr ""
+"<p>(èia yra skëtinis forumas,\n"
+" kurio nariai yra kiti forumai.\n"
+" Tai reiðkia, kad Jûsø praðymas bus persiøstas\n"
+" '%(sfx)s' dël Jûsø adreso.)"
+
+#: Mailman/HTMLFormatter.py:248
+msgid "<b><i>either</i></b> "
+msgstr "<b><i>arba</i></b>"
+
+#: Mailman/HTMLFormatter.py:253
+msgid ""
+"To unsubscribe from %(realname)s, get a password reminder,\n"
+" or change your subscription options %(either)senter your subscription\n"
+" email address:\n"
+" <p><center> "
+msgstr ""
+"Jei norite atsisakyti forumo %(realname)s, kad bûtø primintas Jûsø slaptaþodis,\n"
+" ar pakeisti kitus savo nustatymus %(either)s áveskite\n"
+" el. paðto adresà, kuriuo jungiatës prie forumo.\n"
+" <p><center> "
+
+#: Mailman/HTMLFormatter.py:260
+msgid "Unsubscribe or edit options"
+msgstr "Atsisakyti arba pakeisti nustatymus"
+
+#: Mailman/HTMLFormatter.py:264
+msgid "<p>... <b><i>or</i></b> select your entry from\n"
+" the subscribers list (see above)."
+msgstr "<p>... <b><i>arba</i></b> pasirinkite savo áraðà ið\n"
+" forumo dalyviø sàraðo (þr. þemiau)."
+
+#: Mailman/HTMLFormatter.py:266
+msgid " If you leave the field blank, you will be prompted for\n"
+" your email address"
+msgstr " Jei paliksite ðá laukà neuþpildytà, sistema papraðys Jûsø ávesti\n"
+" el. paðto adresà"
+
+#: Mailman/HTMLFormatter.py:274
+msgid "(<i>The %(which)s is only available to the list\n"
+" members.</i>)"
+msgstr "<i>(%(which)s yra prieinamas tik forumo nariams.)</i>\n"
+" "
+
+#: Mailman/HTMLFormatter.py:278
+msgid "(<i>The %(which)s is only available to the list\n"
+" administrator.</i>)"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:288
+msgid "Click here for the list of "
+msgstr "Spustelkite èia jei norite sàraðo "
+
+#: Mailman/HTMLFormatter.py:290
+msgid " subscribers: "
+msgstr " uþsisakiusieji:"
+
+#: Mailman/HTMLFormatter.py:292
+msgid "Visit Subscriber list"
+msgstr "Aplankyti Dalyviø Sàraðà"
+
+#: Mailman/HTMLFormatter.py:295
+msgid "members"
+msgstr "dalyviai"
+
+#: Mailman/HTMLFormatter.py:296
+msgid "Address:"
+msgstr "Adresas:"
+
+#: Mailman/HTMLFormatter.py:299
+msgid "Admin address:"
+msgstr "Administratoriaus adresas:"
+
+#: Mailman/HTMLFormatter.py:301
+msgid "subscribers list"
+msgstr "uþsisakiusiøjø sàraðas"
+
+#: Mailman/HTMLFormatter.py:303
+msgid " <p>Enter your "
+msgstr " <p>Áveskite Jûsø "
+
+#: Mailman/HTMLFormatter.py:305
+msgid " and password to visit the subscribers list: <p><center> "
+msgstr " ir slaptaþodá jei norite pamatyti uþsisakiusiøjø sàraðà: <p><ceter> "
+
+#: Mailman/HTMLFormatter.py:310
+msgid "Password: "
+msgstr "Slaptaþodis: "
+
+#: Mailman/HTMLFormatter.py:314
+msgid "Visit Subscriber List"
+msgstr "Aplankyti Dalyviø Sàraðà"
+
+#: Mailman/HTMLFormatter.py:344
+msgid "Once a month, your password will be emailed to you as a reminder."
+msgstr "<br>Kartà á mënesá el. paðto laiðku Jums bus primenamss Jûsø slaptaþodis."
+
+#: Mailman/HTMLFormatter.py:390
+msgid "current archive"
+msgstr ""
+
+#: Mailman/Handlers/Acknowledge.py:59
+msgid "%(realname)s post acknowledgement"
+msgstr ""
+
+#: Mailman/Handlers/CalcRecips.py:68
+msgid "Your urgent message to the %(realname)s mailing list was not authorized for\n"
+"delivery. The original message as received by Mailman is attached.\n"
+msgstr ""
+
+#: Mailman/Handlers/Decorate.py:53
+msgid "non-digest header"
+msgstr ""
+
+#: Mailman/Handlers/Decorate.py:54
+msgid "non-digest footer"
+msgstr ""
+
+#: Mailman/Handlers/Emergency.py:29
+msgid "Emergency hold on all list traffic is in effect"
+msgstr ""
+
+#: Mailman/Handlers/Emergency.py:30
+#: Mailman/Handlers/Hold.py:58
+msgid "Your message was deemed inappropriate by the moderator."
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:53
+msgid "Sender is explicitly forbidden"
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:54
+msgid "You are forbidden from posting messages to this list."
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:57
+msgid "Post to moderated list"
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:61
+msgid "Post by non-member to a members-only list"
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:62
+msgid "Non-members are not allowed to post messages to this list."
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:65
+msgid "Posting to a restricted list by sender requires approval"
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:66
+msgid "This list is restricted; your message was not approved."
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:69
+msgid "Too many recipients to the message"
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:70
+msgid "Please trim the recipient list; it is too long."
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:73
+msgid "Message has implicit destination"
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:74
+msgid ""
+"Blind carbon copies or other implicit destinations are\n"
+"not allowed. Try reposting your message by explicitly including the list\n"
+"address in the To: or Cc: fields."
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:79
+msgid "Message may contain administrivia"
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:84
+msgid ""
+"Please do *not* post administrative requests to the mailing\n"
+"list. If you wish to subscribe, visit %(listurl)s or send a message with the\n"
+"word `help' in it to the request address, %(request)s, for further\n"
+"instructions."
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:90
+msgid "Message has a suspicious header"
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:91
+msgid "Your message had a suspicious header."
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:101
+msgid "Message body is too big: %(size)d bytes with a limit of\n"
+"%(limit)d KB"
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:106
+msgid "Your message was too big; please trim it to less than\n"
+"%(kb)d KB in size."
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:110
+msgid "Posting to a moderated newsgroup"
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:233
+msgid "Your message to %(listname)s awaits moderator approval"
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:253
+msgid "%(listname)s post from %(sender)s requires approval"
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:260
+msgid ""
+"If you reply to this message, keeping the Subject: header intact, Mailman will\n"
+"discard the held message. Do this if the message is spam. If you reply to\n"
+"this message and include an Approved: header with the list password in it, the\n"
+"message will be approved for posting to the list. The Approved: header can\n"
+"also appear in the first line of the body of the reply."
+msgstr ""
+
+#: Mailman/Handlers/MimeDel.py:56
+msgid "The message's content type was explicitly disallowed"
+msgstr ""
+
+#: Mailman/Handlers/MimeDel.py:61
+msgid "The message's content type was not explicitly allowed"
+msgstr ""
+
+#: Mailman/Handlers/MimeDel.py:73
+msgid "After content filtering, the message was empty"
+msgstr ""
+
+#: Mailman/Handlers/MimeDel.py:208
+msgid ""
+"The attached message matched the %(listname)s mailing list's content filtering\n"
+"rules and was prevented from being forwarded on to the list membership. You\n"
+"are receiving the only remaining copy of the discarded message.\n"
+"\n"
+msgstr ""
+
+#: Mailman/Handlers/MimeDel.py:214
+msgid "Content filtered message notification"
+msgstr ""
+
+#: Mailman/Handlers/Moderate.py:35
+msgid "Posts by member are currently quarantined for moderation"
+msgstr ""
+
+#: Mailman/Handlers/Moderate.py:130
+msgid ""
+"You are not allowed to post to this mailing list, and your message has been\n"
+"automatically rejected. If you think that your messages are being rejected in\n"
+"error, contact the mailing list owner at %(listowner)s."
+msgstr ""
+
+#: Mailman/Handlers/Moderate.py:145
+msgid "Auto-discard notification"
+msgstr ""
+
+#: Mailman/Handlers/Moderate.py:148
+msgid "The attached message has been automatically discarded."
+msgstr ""
+
+#: Mailman/Handlers/Replybot.py:74
+msgid "Auto-response for your message to "
+msgstr ""
+
+#: Mailman/Handlers/Replybot.py:75
+msgid "the \"%(realname)s\" mailing list"
+msgstr ""
+
+#: Mailman/Handlers/Replybot.py:107
+msgid "The Mailman Replybot"
+msgstr ""
+
+#: Mailman/Handlers/Scrubber.py:116
+msgid "HTML attachment scrubbed and removed"
+msgstr ""
+
+#: Mailman/Handlers/Scrubber.py:129
+#: Mailman/Handlers/Scrubber.py:154
+msgid "An HTML attachment was scrubbed...\n"
+"URL: %(url)s\n"
+msgstr ""
+
+#: Mailman/Handlers/Scrubber.py:166
+msgid "no subject"
+msgstr "be temos"
+
+#: Mailman/Handlers/Scrubber.py:167
+msgid "no date"
+msgstr "be datos"
+
+#: Mailman/Handlers/Scrubber.py:168
+msgid "unknown sender"
+msgstr "neþinomas siuntëjas"
+
+#: Mailman/Handlers/Scrubber.py:170
+msgid ""
+"An embedded message was scrubbed...\n"
+"From: %(who)s\n"
+"Subject: %(subject)s\n"
+"Date: %(date)s\n"
+"Size: %(size)s\n"
+"Url: %(url)s\n"
+msgstr ""
+
+#: Mailman/Handlers/Scrubber.py:196
+msgid ""
+"A non-text attachment was scrubbed...\n"
+"Name: %(filename)s\n"
+"Type: %(ctype)s\n"
+"Size: %(size)d bytes\n"
+"Desc: %(desc)s\n"
+"Url : %(url)s\n"
+msgstr ""
+
+#: Mailman/Handlers/ToDigest.py:141
+msgid "%(realname)s Digest, Vol %(volume)d, Issue %(issue)d"
+msgstr ""
+
+#: Mailman/Handlers/ToDigest.py:181
+msgid "digest header"
+msgstr ""
+
+#: Mailman/Handlers/ToDigest.py:184
+msgid "Digest Header"
+msgstr ""
+
+#: Mailman/Handlers/ToDigest.py:197
+msgid "Today's Topics:\n"
+msgstr ""
+
+#: Mailman/Handlers/ToDigest.py:267
+msgid "Today's Topics (%(msgcount)d messages)"
+msgstr ""
+
+#: Mailman/Handlers/ToDigest.py:292
+msgid "digest footer"
+msgstr ""
+
+#: Mailman/Handlers/ToDigest.py:295
+msgid "Digest Footer"
+msgstr ""
+
+#: Mailman/Handlers/ToDigest.py:309
+msgid "End of "
+msgstr ""
+
+#: Mailman/ListAdmin.py:307
+msgid "Posting of your message titled \"%(subject)s\""
+msgstr ""
+
+#: Mailman/ListAdmin.py:346
+msgid "Forward of moderated message"
+msgstr ""
+
+#: Mailman/ListAdmin.py:405
+msgid "New subscription request to list %(realname)s from %(addr)s"
+msgstr ""
+
+#: Mailman/ListAdmin.py:428
+msgid "Subscription request"
+msgstr "Uþsisakymo praðymas"
+
+#: Mailman/ListAdmin.py:458
+msgid "New unsubscription request from %(realname)s by %(addr)s"
+msgstr ""
+
+#: Mailman/ListAdmin.py:481
+msgid "Unsubscription request"
+msgstr ""
+
+#: Mailman/ListAdmin.py:512
+msgid "Original Message"
+msgstr ""
+
+#: Mailman/ListAdmin.py:515
+msgid "Request to mailing list %(realname)s rejected"
+msgstr ""
+
+#: Mailman/MTA/Manual.py:57
+msgid ""
+"The mailing list `%(listname)s' has been created via the through-the-web\n"
+"interface. In order to complete the activation of this mailing list, the\n"
+"proper /etc/aliases (or equivalent) file must be updated. The program\n"
+"`newaliases' may also have to be run.\n"
+"\n"
+"Here are the entries for the /etc/aliases file:\n"
+msgstr ""
+
+#: Mailman/MTA/Manual.py:67
+msgid ""
+"\n"
+"To finish creating your mailing list, you must edit your /etc/aliases (or\n"
+"equivalent) file by adding the following lines, and possibly running the\n"
+"`newaliases' program:\n"
+"\n"
+"## %(listname)s mailing list"
+msgstr ""
+
+#: Mailman/MTA/Manual.py:88
+msgid "Mailing list creation request for list %(listname)s"
+msgstr "Furumo %(listname)s sukûrimo praðymas"
+
+#: Mailman/MTA/Manual.py:103
+msgid ""
+"The mailing list `%(listname)s' has been removed via the through-the-web\n"
+"interface. In order to complete the de-activation of this mailing list, the\n"
+"appropriate /etc/aliases (or equivalent) file must be updated. The program\n"
+"`newaliases' may also have to be run.\n"
+"\n"
+"Here are the entries in the /etc/aliases file that should be removed:\n"
+msgstr ""
+
+#: Mailman/MTA/Manual.py:113
+msgid ""
+"\n"
+"To finish removing your mailing list, you must edit your /etc/aliases (or\n"
+"equivalent) file by removing the following lines, and possibly running the\n"
+"`newaliases' program:\n"
+"\n"
+"## %(listname)s mailing list"
+msgstr ""
+
+#: Mailman/MTA/Manual.py:132
+msgid "Mailing list removal request for list %(listname)s"
+msgstr "Forumo %(listname)s paðalinimo praðymas"
+
+#: Mailman/MTA/Postfix.py:300
+msgid "checking permissions on %(file)s"
+msgstr "failo %(file)s leidimø patikrinimas"
+
+#: Mailman/MTA/Postfix.py:310
+msgid "%(file)s permissions must be 066x (got %(octmode)s)"
+msgstr "%(file)s teisës turi bûti 066x (yra %(octmode)s)"
+
+#: Mailman/MTA/Postfix.py:312
+#: Mailman/MTA/Postfix.py:339
+#: bin/check_perms:96
+#: bin/check_perms:118
+#: bin/check_perms:137
+#: bin/check_perms:155
+#: bin/check_perms:175
+#: bin/check_perms:199
+#: bin/check_perms:219
+#: bin/check_perms:233
+#: bin/check_perms:253
+#: bin/check_perms:290
+msgid "(fixing)"
+msgstr "(taisymas)"
+
+#: Mailman/MTA/Postfix.py:328
+msgid "checking ownership of %(dbfile)s"
+msgstr "%(dbfile)s nuosavybës patikrinimas"
+
+#: Mailman/MTA/Postfix.py:336
+msgid "%(dbfile)s owned by %(owner)s (must be owned by %(user)s"
+msgstr "%(dbfile)s sàvininkas yra %(owner)s (turi bûti %(user)s"
+
+#: Mailman/MailList.py:709
+msgid "You have been invited to join the %(listname)s mailing list"
+msgstr "Jus kvieèia prisijungti prie forumo %(listname)s"
+
+#: Mailman/MailList.py:813
+#: Mailman/MailList.py:1174
+msgid " from %(remote)s"
+msgstr " nuo %(remote)s"
+
+#: Mailman/MailList.py:850
+msgid "subscriptions to %(realname)s require moderator approval"
+msgstr "forumo %(realname)s uþsisakymui bûtinas priþiûrëtojo patvirtinimas"
+
+#: Mailman/MailList.py:909
+#: bin/add_members:281
+msgid "%(realname)s subscription notification"
+msgstr "%(realname)s uþsisakymo patvirtinimas"
+
+#: Mailman/MailList.py:924
+msgid "unsubscriptions require moderator approval"
+msgstr "atsisakymui bûtinas priþiûrëtojo patvirtinimas"
+
+#: Mailman/MailList.py:945
+msgid "%(realname)s unsubscribe notification"
+msgstr "%(realname)s atsisakymo patvirtinimas"
+
+#: Mailman/MailList.py:1089
+msgid "subscriptions to %(name)s require administrator approval"
+msgstr ""
+
+#: Mailman/MailList.py:1343
+msgid "Last autoresponse notification for today"
+msgstr ""
+
+#: Mailman/Queue/BounceRunner.py:174
+msgid ""
+"The attached message was received as a bounce, but either the bounce format\n"
+"was not recognized, or no member addresses could be extracted from it. This\n"
+"mailing list has been configured to send all unrecognized bounce messages to\n"
+"the list administrator(s).\n"
+"\n"
+"For more information see:\n"
+"%(adminurl)s\n"
+"\n"
+msgstr ""
+
+#: Mailman/Queue/BounceRunner.py:184
+msgid "Uncaught bounce notification"
+msgstr ""
+
+#: Mailman/Queue/CommandRunner.py:73
+msgid "Ignoring non-text/plain MIME parts"
+msgstr ""
+
+#: Mailman/Queue/CommandRunner.py:125
+msgid "The results of your email command are provided below.\n"
+"Attached is your original message.\n"
+msgstr "El. paðtu pasiøstø komandø rezultatai pateikiami þemiau.\n"
+"Jûsø siøstas laiðkas prisegtas.\n"
+
+#: Mailman/Queue/CommandRunner.py:130
+msgid "- Results:"
+msgstr "- Rezultatai:"
+
+#: Mailman/Queue/CommandRunner.py:136
+msgid "\n"
+"- Unprocessed:"
+msgstr "\n"
+"- Nevykdyta:"
+
+#: Mailman/Queue/CommandRunner.py:139
+msgid "\n"
+"- Ignored:"
+msgstr "\n"
+"- Ignoruota:"
+
+#: Mailman/Queue/CommandRunner.py:141
+msgid ""
+"\n"
+"- Done.\n"
+"\n"
+msgstr ""
+"\n"
+"- Atlikta.\n"
+"\n"
+
+#: Mailman/Queue/CommandRunner.py:159
+msgid "The results of your email commands"
+msgstr "El. paðtu pasiøstø komandø rezultatai"
+
+#: Mailman/htmlformat.py:627
+msgid "Delivered by Mailman<br>version %(version)s"
+msgstr ""
+
+#: Mailman/htmlformat.py:628
+msgid "Python Powered"
+msgstr ""
+
+#: Mailman/htmlformat.py:629
+msgid "Gnu's Not Unix"
+msgstr ""
+
+#: Mailman/i18n.py:86
+msgid "Mon"
+msgstr "Pir"
+
+#: Mailman/i18n.py:86
+msgid "Thu"
+msgstr "Ket"
+
+#: Mailman/i18n.py:86
+msgid "Tue"
+msgstr "Ant"
+
+#: Mailman/i18n.py:86
+msgid "Wed"
+msgstr "Tre"
+
+#: Mailman/i18n.py:87
+msgid "Fri"
+msgstr "Pen"
+
+#: Mailman/i18n.py:87
+msgid "Sat"
+msgstr "Ðeð"
+
+#: Mailman/i18n.py:87
+msgid "Sun"
+msgstr "Sek"
+
+#: Mailman/i18n.py:91
+msgid "Apr"
+msgstr "Bal"
+
+#: Mailman/i18n.py:91
+msgid "Feb"
+msgstr "Vas"
+
+#: Mailman/i18n.py:91
+msgid "Jan"
+msgstr "Saus"
+
+#: Mailman/i18n.py:91
+msgid "Jun"
+msgstr "Birþ"
+
+#: Mailman/i18n.py:91
+msgid "Mar"
+msgstr "Kov"
+
+#: Mailman/i18n.py:92
+msgid "Aug"
+msgstr "Rugj"
+
+#: Mailman/i18n.py:92
+msgid "Dec"
+msgstr "Gruod"
+
+#: Mailman/i18n.py:92
+msgid "Jul"
+msgstr "Liep"
+
+#: Mailman/i18n.py:92
+msgid "Nov"
+msgstr "Lapkr"
+
+#: Mailman/i18n.py:92
+msgid "Oct"
+msgstr "Spal"
+
+#: Mailman/i18n.py:92
+msgid "Sep"
+msgstr "Rugs"
+
+#: Mailman/i18n.py:122
+msgid "%(wday)s %(mon)s %(day)2i %(hh)02i:%(mm)02i:%(ss)02i %(year)04i"
+msgstr ""
+
+#: bin/add_members:26
+#, docstring
+msgid ""
+"Add members to a list from the command line.\n"
+"\n"
+"Usage:\n"
+" add_members [options] listname\n"
+"\n"
+"Options:\n"
+"\n"
+" --regular-members-file=file\n"
+" -r file\n"
+" A file containing addresses of the members to be added, one\n"
+" address per line. This list of people become non-digest\n"
+" members. If file is `-', read addresses from stdin. Note that\n"
+" -n/--non-digest-members-file are deprecated synonyms for this option.\n"
+"\n"
+" --digest-members-file=file\n"
+" -d=file\n"
+" Similar to above, but these people become digest members.\n"
+"\n"
+" --changes-msg=<y|n>\n"
+" -c <y|n> \n"
+"\tSet whether or not to send the list members the `there's going to be\n"
+"\tbig changes to your list' message. defaults to no.\n"
+"\n"
+" --welcome-msg=<y|n>\n"
+" -w <y|n>\n"
+" Set whether or not to send the list members a welcome message,\n"
+" overriding whatever the list's `send_welcome_msg' setting is.\n"
+"\n"
+" --admin-notify=<y|n>\n"
+" -a <y|n>\n"
+" Set whether or not to send the list administrators a notification on\n"
+" the success/failure of these subscriptions, overriding whatever the\n"
+" list's `admin_notify_mchanges' setting is.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname\n"
+" The name of the Mailman list you are adding members to. It must\n"
+" already exist.\n"
+"\n"
+"You must supply at least one of -r and -d options. At most one of the\n"
+"files can be `-'.\n"
+msgstr ""
+
+#: bin/add_members:134
+msgid "Big change in %(listname)s@%(listhost)s mailing list"
+msgstr ""
+
+#: bin/add_members:167
+msgid "Already a member: %(member)s"
+msgstr ""
+
+#: bin/add_members:170
+msgid "Bad/Invalid email address: blank line"
+msgstr ""
+
+#: bin/add_members:172
+msgid "Bad/Invalid email address: %(member)s"
+msgstr ""
+
+#: bin/add_members:174
+msgid "Hostile address (illegal characters): %(member)s"
+msgstr ""
+
+#: bin/add_members:176
+msgid "Subscribed: %(member)s"
+msgstr "Uþsisakë: %(member)s"
+
+#: bin/add_members:223
+msgid "Bad argument to -c/--changes-msg: %(arg)s"
+msgstr ""
+
+#: bin/add_members:230
+msgid "Bad argument to -w/--welcome-msg: %(arg)s"
+msgstr ""
+
+#: bin/add_members:237
+msgid "Bad argument to -a/--admin-notify: %(arg)s"
+msgstr ""
+
+#: bin/add_members:243
+msgid "Cannot read both digest and normal members from standard input."
+msgstr ""
+
+#: bin/add_members:249
+#: bin/config_list:105
+#: bin/find_member:97
+#: bin/inject:90
+#: bin/list_admins:89
+#: bin/list_members:187
+#: bin/sync_members:222
+#: cron/bumpdigests:86
+msgid "No such list: %(listname)s"
+msgstr "Nëra tokio forumo: %(listname)s"
+
+#: bin/add_members:269
+#: bin/change_pw:158
+#: bin/check_db:114
+#: bin/sync_members:244
+#: cron/bumpdigests:78
+msgid "Nothing to do."
+msgstr ""
+
+#: bin/arch:19
+#, docstring
+msgid ""
+"Rebuild a list's archive.\n"
+"\n"
+"Use this command to rebuild the archives for a mailing list. You may want to\n"
+"do this if you edit some messages in an archive, or remove some messages from\n"
+"an archive.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] <listname> [<mbox>]\n"
+"\n"
+"Where options are:\n"
+" -h / --help\n"
+" Print this help message and exit.\n"
+"\n"
+" -s N\n"
+" --start=N\n"
+" Start indexing at article N, where article 0 is the first in the mbox.\n"
+" Defaults to 0.\n"
+"\n"
+" -e M\n"
+" --end=M\n"
+" End indexing at article M. This script is not very efficient with\n"
+" respect to memory management, and for large archives, it may not be\n"
+" possible to index the mbox entirely. For that reason, you can specify\n"
+" the start and end article numbers.\n"
+"\n"
+"Where <mbox> is the path to a list's complete mbox archive. Usually this will\n"
+"be some path in the archives/private directory. For example:\n"
+"\n"
+"%% bin/arch mylist archives/private/mylist.mbox/mylist.mbox\n"
+"\n"
+"<mbox> is optional. If it is missing, it is calculated.\n"
+msgstr ""
+
+#: bin/arch:109
+msgid "listname is required"
+msgstr ""
+
+#: bin/arch:127
+#: bin/change_pw:106
+#: bin/config_list:239
+msgid "No such list \"%(listname)s\"\n"
+"%(e)s"
+msgstr ""
+
+#: bin/arch:150
+msgid "Cannot open mbox file %(mbox)s: %(msg)s"
+msgstr ""
+
+#: bin/change_pw:19
+#, docstring
+msgid ""
+"Change a list's password.\n"
+"\n"
+"Prior to Mailman 2.1, list passwords were kept in crypt'd format -- usually.\n"
+"Some Python installations didn't have the crypt module available, so they'd\n"
+"fall back to md5. Then suddenly the Python installation might grow a crypt\n"
+"module and all list passwords would be broken.\n"
+"\n"
+"In Mailman 2.1, all list and site passwords are stored in SHA1 hexdigest\n"
+"form. This breaks list passwords for all existing pre-Mailman 2.1 lists, and\n"
+"since those passwords aren't stored anywhere in plain text, they cannot be\n"
+"retrieved and updated.\n"
+"\n"
+"Thus, this script generates new passwords for a list, and optionally sends it\n"
+"to all the owners of the list.\n"
+"\n"
+"Usage: change_pw [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" --all / -a\n"
+" Change the password for all lists.\n"
+"\n"
+" --domain=domain\n"
+" -d domain\n"
+" Change the password for all lists in the virtual domain `domain'. It\n"
+" is okay to give multiple -d options.\n"
+"\n"
+" --listname=listname\n"
+" -l listname\n"
+" Change the password only for the named list. It is okay to give\n"
+" multiple -l options.\n"
+"\n"
+" --password=newpassword\n"
+" -p newpassword\n"
+" Use the supplied plain text password `newpassword' as the new password\n"
+" for any lists that are being changed (as specified by the -a, -d, and\n"
+" -l options). If not given, lists will be assigned a randomly\n"
+" generated new password.\n"
+"\n"
+" --quiet / -q\n"
+" Don't notify list owners of the new password. You'll have to have\n"
+" some other way of letting the list owners know the new password\n"
+" (presumably out-of-band).\n"
+"\n"
+" --help / -h\n"
+" Print this help message and exit.\n"
+msgstr ""
+
+#: bin/change_pw:144
+msgid "Bad arguments: %(strargs)s"
+msgstr ""
+
+#: bin/change_pw:148
+msgid "Empty list passwords are not allowed"
+msgstr ""
+
+#: bin/change_pw:179
+msgid "New %(listname)s password: %(notifypassword)s"
+msgstr ""
+
+#: bin/change_pw:188
+msgid "Your new %(listname)s list password"
+msgstr ""
+
+#: bin/change_pw:189
+msgid ""
+"The site administrator at %(hostname)s has changed the password for your\n"
+"mailing list %(listname)s. It is now\n"
+"\n"
+" %(notifypassword)s\n"
+"\n"
+"Please be sure to use this for all future list administration. You may want\n"
+"to log in now to your list and change the password to something more to your\n"
+"liking. Visit your list admin page at\n"
+"\n"
+" %(adminurl)s\n"
+msgstr ""
+
+#: bin/check_db:19
+#, docstring
+msgid ""
+"Check a list's config database file for integrity.\n"
+"\n"
+"All of the following files are checked:\n"
+"\n"
+" config.pck\n"
+" config.pck.last\n"
+" config.db\n"
+" config.db.last\n"
+" config.safety\n"
+"\n"
+"It's okay if any of these are missing. config.pck and config.pck.last are\n"
+"pickled versions of the config database file for 2.1a3 and beyond. config.db\n"
+"and config.db.last are used in all earlier versions, and these are Python\n"
+"marshals. config.safety is a pickle written by 2.1a3 and beyond when the\n"
+"primary config.pck file could not be read.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname [listname ...]]\n"
+"\n"
+"Options:\n"
+"\n"
+" --all / -a\n"
+" Check the databases for all lists. Otherwise only the lists named on\n"
+" the command line are checked.\n"
+"\n"
+" --verbose / -v\n"
+" Verbose output. The state of every tested file is printed.\n"
+" Otherwise only corrupt files are displayed.\n"
+"\n"
+" --help / -h\n"
+" Print this text and exit.\n"
+msgstr ""
+
+#: bin/check_db:119
+msgid "No list named:"
+msgstr ""
+
+#: bin/check_db:128
+msgid "List:"
+msgstr ""
+
+#: bin/check_db:148
+msgid " %(file)s: okay"
+msgstr ""
+
+#: bin/check_perms:19
+#, docstring
+msgid ""
+"Check the permissions for the Mailman installation.\n"
+"\n"
+"Usage: %(PROGRAM)s [-f] [-v] [-h]\n"
+"\n"
+"With no arguments, just check and report all the files that have bogus\n"
+"permissions or group ownership. With -f (and run as root), fix all the\n"
+"permission problems found. With -v be verbose.\n"
+"\n"
+msgstr ""
+
+#: bin/check_perms:81
+msgid " checking gid and mode for %(path)s"
+msgstr ""
+
+#: bin/check_perms:93
+msgid "%(path)s bad group (has: %(groupname)s, expected %(MAILMAN_GROUP)s)"
+msgstr ""
+
+#: bin/check_perms:116
+msgid "directory permissions must be %(octperms)s: %(path)s"
+msgstr ""
+
+#: bin/check_perms:127
+msgid "checking mode for %(prefix)s"
+msgstr ""
+
+#: bin/check_perms:135
+msgid "directory must be at least 02775: %(d)s"
+msgstr ""
+
+#: bin/check_perms:148
+msgid "checking perms on %(private)s"
+msgstr ""
+
+#: bin/check_perms:153
+msgid "%(private)s must not be other-readable"
+msgstr ""
+
+#: bin/check_perms:173
+msgid "mbox file must be at least 0660:"
+msgstr ""
+
+#: bin/check_perms:197
+msgid "%(dbdir)s \"other\" perms must be 000"
+msgstr ""
+
+#: bin/check_perms:208
+msgid "checking cgi-bin permissions"
+msgstr ""
+
+#: bin/check_perms:213
+msgid " checking set-gid for %(path)s"
+msgstr ""
+
+#: bin/check_perms:217
+msgid "%(path)s must be set-gid"
+msgstr ""
+
+#: bin/check_perms:227
+msgid "checking set-gid for %(wrapper)s"
+msgstr ""
+
+#: bin/check_perms:231
+msgid "%(wrapper)s must be set-gid"
+msgstr ""
+
+#: bin/check_perms:241
+msgid "checking permissions on %(pwfile)s"
+msgstr ""
+
+#: bin/check_perms:250
+msgid "%(pwfile)s permissions must be exactly 0640 (got %(octmode)s)"
+msgstr ""
+
+#: bin/check_perms:274
+msgid "checking permissions on list data"
+msgstr ""
+
+#: bin/check_perms:280
+msgid " checking permissions on: %(path)s"
+msgstr ""
+
+#: bin/check_perms:288
+msgid "file permissions must be at least 660: %(path)s"
+msgstr ""
+
+#: bin/check_perms:334
+msgid "No problems found"
+msgstr ""
+
+#: bin/check_perms:336
+msgid "Problems found:"
+msgstr ""
+
+#: bin/check_perms:337
+msgid "Re-run as %(MAILMAN_USER)s (or root) with -f flag to fix"
+msgstr ""
+
+#: bin/cleanarch:19
+#, docstring
+msgid ""
+"Clean up an .mbox archive file.\n"
+"\n"
+"The archiver looks for Unix-From lines separating messages in an mbox archive\n"
+"file. For compatibility, it specifically looks for lines that start with\n"
+"\"From \" -- i.e. the letters capital-F, lowercase-r, o, m, space, ignoring\n"
+"everything else on the line.\n"
+"\n"
+"Normally, any lines that start \"From \" in the body of a message should be\n"
+"escaped such that a > character is actually the first on a line. It is\n"
+"possible though that body lines are not actually escaped. This script\n"
+"attempts to fix these by doing a stricter test of the Unix-From lines. Any\n"
+"lines that start \"From \" but do not pass this stricter test are escaped with a\n"
+"> character.\n"
+"\n"
+"Usage: cleanarch [options] < inputfile > outputfile\n"
+"Options:\n"
+" -s n\n"
+" --status=n\n"
+" Print a # character every n lines processed\n"
+"\n"
+" -q / --quiet\n"
+" Don't print changed line information to standard error.\n"
+"\n"
+" -n / --dry-run\n"
+" Don't actually output anything.\n"
+"\n"
+" -h / --help\n"
+" Print this message and exit\n"
+msgstr ""
+
+#: bin/cleanarch:82
+msgid "Unix-From line changed: %(lineno)d"
+msgstr ""
+
+#: bin/cleanarch:110
+msgid "Bad status number: %(arg)s"
+msgstr ""
+
+#: bin/cleanarch:160
+msgid "%(messages)d messages found"
+msgstr ""
+
+#: bin/clone_member:19
+#, docstring
+msgid ""
+"Clone a member address.\n"
+"\n"
+"Cloning a member address means that a new member will be added who has all the\n"
+"same options and passwords as the original member address. Note that this\n"
+"operation is fairly trusting of the user who runs it -- it does no\n"
+"verification to the new address, it does not send out a welcome message, etc.\n"
+"\n"
+"The existing member's subscription is usually not modified in any way. If you\n"
+"want to remove the old address, use the -r flag. If you also want to change\n"
+"any list admin addresses, use the -a flag.\n"
+"\n"
+"Usage:\n"
+" clone_member [options] fromoldaddr tonewaddr\n"
+"\n"
+"Where:\n"
+"\n"
+" --listname=listname\n"
+" -l listname\n"
+" Check and modify only the named mailing lists. If -l is not given,\n"
+" then all mailing lists are scanned from the address. Multiple -l\n"
+" options can be supplied.\n"
+"\n"
+" --remove\n"
+" -r\n"
+" Remove the old address from the mailing list after it's been cloned.\n"
+"\n"
+" --admin\n"
+" -a\n"
+" Scan the list admin addresses for the old address, and clone or change\n"
+" them too.\n"
+"\n"
+" --quiet\n"
+" -q\n"
+" Do the modifications quietly.\n"
+"\n"
+" --nomodify\n"
+" -n\n"
+" Print what would be done, but don't actually do it. Inhibits the\n"
+" --quiet flag.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" fromoldaddr (`from old address') is the old address of the user. tonewaddr\n"
+" (`to new address') is the new address of the user.\n"
+"\n"
+msgstr ""
+
+#: bin/clone_member:94
+msgid "processing mailing list:"
+msgstr "apdorojamas forumas:"
+
+#: bin/clone_member:101
+msgid " scanning list owners:"
+msgstr ""
+
+#: bin/clone_member:119
+msgid " new list owners:"
+msgstr ""
+
+#: bin/clone_member:121
+msgid "(no change)"
+msgstr ""
+
+#: bin/clone_member:130
+msgid " address not found:"
+msgstr ""
+
+#: bin/clone_member:139
+msgid " clone address added:"
+msgstr ""
+
+#: bin/clone_member:142
+msgid " clone address is already a member:"
+msgstr ""
+
+#: bin/clone_member:145
+msgid " original address removed:"
+msgstr ""
+
+#: bin/clone_member:196
+msgid "Not a valid email address: %(toaddr)s"
+msgstr ""
+
+#: bin/clone_member:209
+msgid "Error opening list \"%(listname)s\", skipping.\n"
+"%(e)s"
+msgstr ""
+
+#: bin/config_list:19
+#, docstring
+msgid ""
+"Configure a list from a text file description.\n"
+"\n"
+"Usage: config_list [options] listname\n"
+"\n"
+"Options:\n"
+" --inputfile filename\n"
+" -i filename\n"
+" Configure the list by assigning each module-global variable in the\n"
+" file to an attribute on the list object, then saving the list. The\n"
+" named file is loaded with execfile() and must be legal Python code.\n"
+" Any variable that isn't already an attribute of the list object is\n"
+" ignored (a warning message is printed). See also the -c option.\n"
+"\n"
+" A special variable named `mlist' is put into the globals during the\n"
+" execfile, which is bound to the actual MailList object. This lets you\n"
+" do all manner of bizarre thing to the list object, but BEWARE! Using\n"
+" this can severely (and possibly irreparably) damage your mailing list!\n"
+"\n"
+" --outputfile filename\n"
+" -o filename\n"
+" Instead of configuring the list, print out a list's configuration\n"
+" variables in a format suitable for input using this script. In this\n"
+" way, you can easily capture the configuration settings for a\n"
+" particular list and imprint those settings on another list. filename\n"
+" is the file to output the settings to. If filename is `-', standard\n"
+" out is used.\n"
+"\n"
+" --checkonly\n"
+" -c\n"
+" With this option, the modified list is not actually changed. Only\n"
+" useful with -i.\n"
+"\n"
+" --verbose\n"
+" -v\n"
+" Print the name of each attribute as it is being changed. Only useful\n"
+" with -i.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+"The options -o and -i are mutually exclusive.\n"
+"\n"
+msgstr ""
+
+#: bin/config_list:109
+msgid "## \"%(listname)s\" mailing list configuration settings -*- python -*-\n"
+"## captured on %(when)s\n"
+msgstr ""
+
+#: bin/config_list:131
+msgid "options"
+msgstr ""
+
+#: bin/config_list:188
+msgid "legal values are:"
+msgstr ""
+
+#: bin/config_list:252
+msgid "attribute \"%(k)s\" ignored"
+msgstr ""
+
+#: bin/config_list:255
+msgid "attribute \"%(k)s\" changed"
+msgstr ""
+
+#: bin/config_list:261
+msgid "Non-standard property restored: %(k)s"
+msgstr ""
+
+#: bin/config_list:269
+msgid "Invalid value for property: %(k)s"
+msgstr ""
+
+#: bin/config_list:271
+msgid "Bad email address for option %(k)s: %(v)s"
+msgstr ""
+
+#: bin/config_list:310
+msgid "Only one of -i or -o is allowed"
+msgstr ""
+
+#: bin/config_list:312
+msgid "One of -i or -o is required"
+msgstr ""
+
+#: bin/config_list:316
+msgid "List name is required"
+msgstr ""
+
+#: bin/convert.py:19
+#, docstring
+msgid ""
+"Convert a list's interpolation strings from %-strings to $-strings.\n"
+"\n"
+"This script is intended to be run as a bin/withlist script, i.e.\n"
+"\n"
+"% bin/withlist -l -r convert <mylist>\n"
+msgstr ""
+
+#: bin/convert.py:38
+#: bin/fix_url.py:85
+msgid "Saving list"
+msgstr ""
+
+#: bin/convert.py:44
+#: bin/fix_url.py:51
+msgid "%%%"
+msgstr ""
+
+#: bin/dumpdb:19
+#, docstring
+msgid ""
+"Dump the contents of any Mailman `database' file.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] filename\n"
+"\n"
+"Options:\n"
+"\n"
+" --marshal/-m\n"
+" Assume the file contains a Python marshal, overridding any automatic\n"
+" guessing.\n"
+"\n"
+" --pickle/-p\n"
+" Assume the file contains a Python pickle, overridding any automatic\n"
+" guessing.\n"
+"\n"
+" --noprint/-n\n"
+" Don't attempt to pretty print the object. This is useful if there's\n"
+" some problem with the object and you just want to get an unpickled\n"
+" representation. Useful with `python -i bin/dumpdb <file>'. In that\n"
+" case, the root of the tree will be left in a global called \"msg\".\n"
+"\n"
+" --help/-h\n"
+" Print this help message and exit\n"
+"\n"
+"If the filename ends with `.db', then it is assumed that the file contains a\n"
+"Python marshal. If the file ends with `.pck' then it is assumed to contain a\n"
+"Python pickle. In either case, if you want to override the default assumption\n"
+"-- or if the file ends in neither suffix -- use the -p or -m flags.\n"
+msgstr ""
+
+#: bin/dumpdb:101
+msgid "No filename given."
+msgstr ""
+
+#: bin/dumpdb:104
+msgid "Bad arguments: %(pargs)s"
+msgstr ""
+
+#: bin/dumpdb:114
+msgid "Please specify either -p or -m."
+msgstr ""
+
+#: bin/find_member:19
+#, docstring
+msgid ""
+"Find all lists that a member's address is on.\n"
+"\n"
+"Usage:\n"
+" find_member [options] regex [regex [...]]\n"
+"\n"
+"Where:\n"
+" --listname=listname\n"
+" -l listname\n"
+" Include only the named list in the search.\n"
+"\n"
+" --exclude=listname\n"
+" -x listname\n"
+" Exclude the named list from the search.\n"
+"\n"
+" --owners\n"
+" -w\n"
+" Search list owners as well as members.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" regex\n"
+" A Python regular expression to match against.\n"
+"\n"
+"The interaction between -l and -x is as follows. If any -l option is given\n"
+"then only the named list will be included in the search. If any -x option is\n"
+"given but no -l option is given, then all lists will be search except those\n"
+"specifically excluded.\n"
+"\n"
+"Regular expression syntax is Perl5-like, using the Python re module. Complete\n"
+"specifications are at:\n"
+"\n"
+"http://www.python.org/doc/current/lib/module-re.html\n"
+"\n"
+"Address matches are case-insensitive, but case-preserved addresses are\n"
+"displayed.\n"
+"\n"
+msgstr ""
+
+#: bin/find_member:159
+msgid "Search regular expression required"
+msgstr ""
+
+#: bin/find_member:164
+msgid "No lists to search"
+msgstr ""
+
+#: bin/find_member:173
+msgid "found in:"
+msgstr ""
+
+#: bin/find_member:179
+msgid "(as owner)"
+msgstr ""
+
+#: bin/fix_url.py:19
+#, docstring
+msgid ""
+"Reset a list's web_page_url attribute to the default setting.\n"
+"\n"
+"This script is intended to be run as a bin/withlist script, i.e.\n"
+"\n"
+"% bin/withlist -l -r fix_url listname [options]\n"
+"\n"
+"Options:\n"
+" -u urlhost\n"
+" --urlhost=urlhost\n"
+" Look up urlhost in the virtual host table and set the web_page_url and\n"
+" host_name attributes of the list to the values found. This\n"
+" essentially moves the list from one virtual domain to another.\n"
+"\n"
+" Without this option, the default web_page_url and host_name values are\n"
+" used.\n"
+"\n"
+" -v / --verbose\n"
+" Print what the script is doing.\n"
+"\n"
+"If run standalone, it prints this help text and exits.\n"
+msgstr ""
+
+#: bin/fix_url.py:80
+msgid "Setting web_page_url to: %(web_page_url)s"
+msgstr ""
+
+#: bin/fix_url.py:83
+msgid "Setting host_name to: %(mailhost)s"
+msgstr ""
+
+#: bin/genaliases:19
+#, docstring
+msgid ""
+"Regenerate Postfix's data/aliases and data/aliases.db files from scratch.\n"
+"\n"
+"Usage:\n"
+"\n"
+" genaliases [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+msgstr ""
+
+#: bin/inject:19
+#, docstring
+msgid ""
+"Inject a message from a file into Mailman's incoming queue.\n"
+"\n"
+"Usage: inject [options] [filename]\n"
+"\n"
+"Options:\n"
+"\n"
+" -h / --help\n"
+" Print this text and exit.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" The name of the list to inject this message to. Required.\n"
+"\n"
+" -q queuename\n"
+" --queue=queuename\n"
+" The name of the queue to inject the message to. The queuename must be\n"
+" one of the directories inside the qfiles directory. If omitted, the\n"
+" incoming queue is used.\n"
+"\n"
+"filename is the name of the plaintext message file to inject. If omitted,\n"
+"standard input is used.\n"
+msgstr ""
+
+#: bin/inject:83
+msgid "Bad queue directory: %(qdir)s"
+msgstr ""
+
+#: bin/inject:88
+msgid "A list name is required"
+msgstr ""
+
+#: bin/list_admins:19
+#, docstring
+msgid ""
+"List all the owners of a mailing list.\n"
+"\n"
+"Usage: %(program)s [options] listname ...\n"
+"\n"
+"Where:\n"
+"\n"
+" --all-vhost=vhost\n"
+" -v=vhost\n"
+" List the owners of all the mailing lists for the given virtual host.\n"
+"\n"
+" --all\n"
+" -a\n"
+" List the owners of all the mailing lists on this system.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+"`listname' is the name of the mailing list to print the owners of. You can\n"
+"have more than one named list on the command line.\n"
+msgstr ""
+
+#: bin/list_admins:96
+msgid "List: %(listname)s, \tOwners: %(owners)s"
+msgstr ""
+
+#: bin/list_lists:19
+#, docstring
+msgid ""
+"List all mailing lists.\n"
+"\n"
+"Usage: %(program)s [options]\n"
+"\n"
+"Where:\n"
+"\n"
+" --advertised\n"
+" -a\n"
+" List only those mailing lists that are publically advertised\n"
+"\n"
+" --virtual-host-overview=domain\n"
+" -V domain\n"
+" List only those mailing lists that are homed to the given virtual\n"
+" domain. This only works if the VIRTUAL_HOST_OVERVIEW variable is\n"
+" set.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this text and exit.\n"
+"\n"
+msgstr ""
+
+#: bin/list_lists:101
+msgid "No matching mailing lists found"
+msgstr ""
+
+#: bin/list_lists:104
+msgid "matching mailing lists found:"
+msgstr ""
+
+#: bin/list_members:19
+#, docstring
+msgid ""
+"List all the members of a mailing list.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] listname\n"
+"\n"
+"Where:\n"
+"\n"
+" --output file\n"
+" -o file\n"
+" Write output to specified file instead of standard out.\n"
+"\n"
+" --regular / -r\n"
+" Print just the regular (non-digest) members.\n"
+"\n"
+" --digest[=kind] / -d [kind]\n"
+" Print just the digest members. Optional argument can be \"mime\" or\n"
+" \"plain\" which prints just the digest members receiving that kind of\n"
+" digest.\n"
+"\n"
+" --nomail[=why] / -n [why]\n"
+" Print the members that have delivery disabled. Optional argument can\n"
+" be \"byadmin\", \"byuser\", \"bybounce\", or \"unknown\" which prints just the\n"
+" users who have delivery disabled for that reason. It can also be\n"
+" \"enabled\" which prints just those member for whom delivery is\n"
+" enabled.\n"
+"\n"
+" --fullnames / -f\n"
+" Include the full names in the output.\n"
+"\n"
+" --preserve\n"
+" -p\n"
+" Output member addresses case preserved the way they were added to the\n"
+" list. Otherwise, addresses are printed in all lowercase.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname is the name of the mailing list to use.\n"
+"\n"
+"Note that if neither -r or -d is supplied, both regular members are printed\n"
+"first, followed by digest members, but no indication is given as to address\n"
+"status.\n"
+msgstr ""
+
+#: bin/list_members:150
+msgid "Bad --nomail option: %(why)s"
+msgstr ""
+
+#: bin/list_members:161
+msgid "Bad --digest option: %(kind)s"
+msgstr ""
+
+#: bin/list_members:179
+msgid "Could not open file for writing:"
+msgstr ""
+
+#: bin/mailmanctl:19
+#, docstring
+msgid ""
+"Primary start-up and shutdown script for Mailman's qrunner daemon.\n"
+"\n"
+"This script starts, stops, and restarts the main Mailman queue runners, making\n"
+"sure that the various long-running qrunners are still alive and kicking. It\n"
+"does this by forking and exec'ing the qrunners and waiting on their pids.\n"
+"When it detects a subprocess has exited, it may restart it.\n"
+"\n"
+"The qrunners respond to SIGINT, SIGTERM, and SIGHUP. SIGINT and SIGTERM both\n"
+"cause the qrunners to exit cleanly, but the master will only restart qrunners\n"
+"that have exited due to a SIGINT. SIGHUP causes the master and the qrunners\n"
+"to close their log files, and reopen then upon the next printed message.\n"
+"\n"
+"The master also responds to SIGINT, SIGTERM, and SIGHUP, which it simply\n"
+"passes on to the qrunners (note that the master will close and reopen its own\n"
+"log files on receipt of a SIGHUP). The master also leaves its own process id\n"
+"in the file data/master-qrunner.pid but you normally don't need to use this\n"
+"pid directly. The `start', `stop', `restart', and `reopen' commands handle\n"
+"everything for you.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [ start | stop | restart | reopen ]\n"
+"\n"
+"Options:\n"
+"\n"
+" -n/--no-restart\n"
+" Don't restart the qrunners when they exit because of an error or a\n"
+" SIGINT. They are never restarted if they exit in response to a\n"
+" SIGTERM. Use this only for debugging. Only useful if the `start'\n"
+" command is given.\n"
+"\n"
+" -u/--run-as-user\n"
+" Normally, this script will refuse to run if the user id and group id\n"
+" are not set to the `mailman' user and group (as defined when you\n"
+" configured Mailman). If run as root, this script will change to this\n"
+" user and group before the check is made.\n"
+"\n"
+" This can be inconvenient for testing and debugging purposes, so the -u\n"
+" flag means that the step that sets and checks the uid/gid is skipped,\n"
+" and the program is run as the current user and group. This flag is\n"
+" not recommended for normal production environments.\n"
+"\n"
+" -s/--stale-lock-cleanup\n"
+" If mailmanctl finds an existing master lock, it will normally exit\n"
+" with an error message. With this option, mailmanctl will perform an\n"
+" extra level of checking. If a process matching the host/pid described\n"
+" in the lock file is running, mailmanctl will still exit, but if no\n"
+" matching process is found, mailmanctl will remove the apparently stale\n"
+" lock and make another attempt to claim the master lock.\n"
+"\n"
+" -q/--quiet\n"
+" Don't print status messages. Error messages are still printed to\n"
+" standard error.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+"\n"
+"Commands:\n"
+"\n"
+" start - Start the master daemon and all qrunners. Prints a message and\n"
+" exits if the master daemon is already running.\n"
+"\n"
+" stop - Stops the master daemon and all qrunners. After stopping, no\n"
+" more messages will be processed.\n"
+"\n"
+" restart - Restarts the qrunners, but not the master process. Use this\n"
+" whenever you upgrade or update Mailman so that the qrunners will\n"
+" use the newly installed code.\n"
+"\n"
+" reopen - This will close all log files, causing them to be re-opened the\n"
+" next time a message is written to them\n"
+msgstr ""
+
+#: bin/mailmanctl:145
+msgid "PID unreadable in: %(pidfile)s"
+msgstr ""
+
+#: bin/mailmanctl:147
+msgid "Is qrunner even running?"
+msgstr ""
+
+#: bin/mailmanctl:153
+msgid "No child with pid: %(pid)s"
+msgstr ""
+
+#: bin/mailmanctl:155
+msgid "Stale pid file removed."
+msgstr ""
+
+#: bin/mailmanctl:213
+msgid "The master qrunner lock could not be acquired because it appears as if another\n"
+"master qrunner is already running.\n"
+msgstr ""
+
+#: bin/mailmanctl:219
+msgid "The master qrunner lock could not be acquired. It appears as though there is\n"
+"a stale master qrunner lock. Try re-running mailmanctl with the -s flag.\n"
+msgstr ""
+
+#: bin/mailmanctl:225
+msgid ""
+"The master qrunner lock could not be acquired, because it appears as if some\n"
+"process on some other host may have acquired it. We can't test for stale\n"
+"locks across host boundaries, so you'll have to do this manually. Or, if you\n"
+"know the lock is stale, re-run mailmanctl with the -s flag.\n"
+"\n"
+"Lock file: %(LOCKFILE)s\n"
+"Lock host: %(status)s\n"
+"\n"
+"Exiting."
+msgstr ""
+
+#: bin/mailmanctl:278
+msgid "Run this program as root or as the %(name)s user, or use -u."
+msgstr ""
+
+#: bin/mailmanctl:309
+msgid "No command given."
+msgstr ""
+
+#: bin/mailmanctl:312
+msgid "Bad command: %(command)s"
+msgstr ""
+
+#: bin/mailmanctl:324
+msgid "Shutting down Mailman's master qrunner"
+msgstr ""
+
+#: bin/mailmanctl:331
+msgid "Restarting Mailman's master qrunner"
+msgstr ""
+
+#: bin/mailmanctl:335
+msgid "Re-opening all log files"
+msgstr ""
+
+#: bin/mailmanctl:369
+msgid "Starting Mailman's master qrunner."
+msgstr ""
+
+#: bin/mmsitepass:19
+#, docstring
+msgid ""
+"Set the site password, prompting from the terminal.\n"
+"\n"
+"The site password can be used in most if not all places that the list\n"
+"administrator's password can be used, which in turn can be used in most places\n"
+"that a list users password can be used.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [password]\n"
+"\n"
+"Options:\n"
+"\n"
+" -c/--listcreator\n"
+" Set the list creator password instead of the site password. The list\n"
+" creator is authorized to create and remove lists, but does not have\n"
+" the total power of the site administrator.\n"
+"\n"
+" -h/--help\n"
+" Print this help message and exit.\n"
+"\n"
+"If password is not given on the command line, it will be prompted for.\n"
+msgstr ""
+
+#: bin/mmsitepass:73
+msgid "site"
+msgstr ""
+
+#: bin/mmsitepass:80
+msgid "list creator"
+msgstr ""
+
+#: bin/mmsitepass:86
+msgid "New %(pwdesc)s password: "
+msgstr ""
+
+#: bin/mmsitepass:87
+msgid "Again to confirm password: "
+msgstr ""
+
+#: bin/mmsitepass:89
+msgid "Passwords do not match; no changes made."
+msgstr ""
+
+#: bin/mmsitepass:92
+msgid "Interrupted..."
+msgstr ""
+
+#: bin/mmsitepass:98
+msgid "Password changed."
+msgstr "Slaptaþodis pakeistas"
+
+#: bin/mmsitepass:100
+msgid "Password change failed."
+msgstr ""
+
+#: bin/newlist:19
+#, docstring
+msgid ""
+"Create a new, unpopulated mailing list.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname [listadmin-addr [admin-password]]]\n"
+"\n"
+"Options:\n"
+"\n"
+" -l language\n"
+" --language language\n"
+" Make the list's preferred language `language', which must be a two\n"
+" letter language code.\n"
+"\n"
+" -q/--quiet\n"
+" Normally the administrator is notified by email (after a prompt) that\n"
+" their list has been created. This option suppresses the prompt and\n"
+" notification.\n"
+"\n"
+" -h/--help\n"
+" Print this help text and exit.\n"
+"\n"
+"You can specify as many of the arguments as you want on the command line:\n"
+"you will be prompted for the missing ones.\n"
+"\n"
+"Every Mailman list has two parameters which define the default host name for\n"
+"outgoing email, and the default URL for all web interfaces. When you\n"
+"configured Mailman, certain defaults were calculated, but if you are running\n"
+"multiple virtual Mailman sites, then the defaults may not be appropriate for\n"
+"the list you are creating.\n"
+"\n"
+"You can specify the domain to create your new list in by spelling the listname\n"
+"like so:\n"
+"\n"
+" mylist@www.mydom.ain\n"
+"\n"
+"where `www.mydom.ain' should be the base hostname for the URL to this virtual\n"
+"hosts's lists. E.g. with is setting people will view the general list\n"
+"overviews at http://www.mydom.ain/mailman/listinfo. Also, www.mydom.ain\n"
+"should be a key in the VIRTUAL_HOSTS mapping in mm_cfg.py/Defaults.py. It\n"
+"will be looked up to give the email hostname. If this can't be found, then\n"
+"www.mydom.ain will be used for both the web interface and the email\n"
+"interface.\n"
+"\n"
+"If you spell the list name as just `mylist', then the email hostname will be\n"
+"taken from DEFAULT_HOST_NAME and the url will be taken from DEFAULT_URL (as\n"
+"defined in your Defaults.py file or overridden by settings in mm_cfg.py).\n"
+"\n"
+"Note that listnames are forced to lowercase.\n"
+msgstr ""
+
+#: bin/newlist:118
+msgid "Unknown language: %(lang)s"
+msgstr ""
+
+#: bin/newlist:123
+msgid "Enter the name of the list: "
+msgstr "Áveskite forumo pavadinimà: "
+
+#: bin/newlist:140
+msgid "Enter the email of the person running the list: "
+msgstr "Ávesite formo kûrëjo el. paðto adresà: "
+
+#: bin/newlist:145
+msgid "Initial %(listname)s password: "
+msgstr ""
+
+#: bin/newlist:149
+msgid "The list password cannot be empty"
+msgstr ""
+
+#: bin/newlist:190
+msgid "Hit enter to notify %(listname)s owner..."
+msgstr ""
+
+#: bin/qrunner:19
+#, docstring
+msgid ""
+"Run one or more qrunners, once or repeatedly.\n"
+"\n"
+"Each named runner class is run in round-robin fashion. In other words, the\n"
+"first named runner is run to consume all the files currently in its\n"
+"directory. When that qrunner is done, the next one is run to consume all the\n"
+"files in /its/ directory, and so on. The number of total iterations can be\n"
+"given on the command line.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" -r runner[:slice:range]\n"
+" --runner=runner[:slice:range]\n"
+" Run the named qrunner, which must be one of the strings returned by\n"
+" the -l option. Optional slice:range if given, is used to assign\n"
+" multiple qrunner processes to a queue. range is the total number of\n"
+" qrunners for this queue while slice is the number of this qrunner from\n"
+" [0..range).\n"
+"\n"
+" If using the slice:range form, you better make sure that each qrunner\n"
+" for the queue is given the same range value. If slice:runner is not\n"
+" given, then 1:1 is used.\n"
+"\n"
+" Multiple -r options may be given, in which case each qrunner will run\n"
+" once in round-robin fashion. The special runner `All' is shorthand\n"
+" for a qrunner for each listed by the -l option.\n"
+"\n"
+" --once\n"
+" -o\n"
+" Run each named qrunner exactly once through its main loop. Otherwise,\n"
+" each qrunner runs indefinitely, until the process receives a SIGTERM\n"
+" or SIGINT.\n"
+"\n"
+" -l/--list\n"
+" Shows the available qrunner names and exit.\n"
+"\n"
+" -v/--verbose\n"
+" Spit out more debugging information to the logs/qrunner log file.\n"
+"\n"
+" -s/--subproc\n"
+" This should only be used when running qrunner as a subprocess of the\n"
+" mailmanctl startup script. It changes some of the exit-on-error\n"
+" behavior to work better with that framework.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+"\n"
+"runner is required unless -l or -h is given, and it must be one of the names\n"
+"displayed by the -l switch.\n"
+msgstr ""
+
+#: bin/qrunner:176
+msgid "%(name)s runs the %(runnername)s qrunner"
+msgstr ""
+
+#: bin/qrunner:177
+msgid "All runs all the above qrunners"
+msgstr ""
+
+#: bin/qrunner:213
+msgid "No runner name given."
+msgstr ""
+
+#: bin/remove_members:19
+#, docstring
+msgid ""
+"Remove members from a list.\n"
+"\n"
+"Usage:\n"
+" remove_members [options] [listname] [addr1 ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" --file=file\n"
+" -f file\n"
+" Remove member addresses found in the given file. If file is\n"
+" `-', read stdin.\n"
+"\n"
+" --all\n"
+" -a\n"
+" Remove all members of the mailing list.\n"
+" (mutually exclusive with --fromall)\n"
+"\n"
+" --fromall\n"
+" Removes the given addresses from all the lists on this system\n"
+" regardless of virtual domains if you have any. This option cannot be\n"
+" used -a/--all. Also, you should not specify a listname when using this\n"
+" option.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname is the name of the mailing list to use.\n"
+"\n"
+" addr1 ... are additional addresses to remove.\n"
+"\n"
+msgstr ""
+
+#: bin/remove_members:132
+msgid "Could not open file for reading: %(filename)s."
+msgstr ""
+
+#: bin/remove_members:139
+msgid "Error opening list %(listname)s... skipping."
+msgstr ""
+
+#: bin/remove_members:149
+msgid "No such member: %(addr)s"
+msgstr ""
+
+#: bin/remove_members:153
+msgid "User `%(addr)s' removed from list: %(listname)s."
+msgstr "Vartotojas '%(addr)s' iðbrauktas ið forumo: %(listname)s."
+
+#: bin/rmlist:19
+#, docstring
+msgid ""
+"Remove the components of a mailing list with impunity - beware!\n"
+"\n"
+"This removes (almost) all traces of a mailing list. By default, the lists\n"
+"archives are not removed, which is very handy for retiring old lists.\n"
+"\n"
+"Usage:\n"
+" rmlist [-a] [-h] listname\n"
+"\n"
+"Where:\n"
+" --archives\n"
+" -a\n"
+" Remove the list's archives too, or if the list has already been\n"
+" deleted, remove any residual archives.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+msgstr ""
+
+#: bin/rmlist:65
+#: bin/rmlist:68
+msgid "Removing %(msg)s"
+msgstr ""
+
+#: bin/rmlist:71
+msgid "%(listname)s %(msg)s not found as %(dir)s"
+msgstr ""
+
+#: bin/rmlist:95
+msgid "No such list (or list already deleted): %(listname)s"
+msgstr ""
+
+#: bin/rmlist:97
+msgid "No such list: %(listname)s. Removing its residual archives."
+msgstr ""
+
+#: bin/rmlist:101
+msgid "Not removing archives. Reinvoke with -a to remove them."
+msgstr ""
+
+#: bin/rmlist:115
+msgid "list info"
+msgstr ""
+
+#: bin/rmlist:121
+#: bin/rmlist:123
+msgid "private archives"
+msgstr ""
+
+#: bin/rmlist:125
+#: bin/rmlist:127
+msgid "public archives"
+msgstr "Vieði archyvai"
+
+#: bin/sync_members:19
+#, docstring
+msgid ""
+"Synchronize a mailing list's membership with a flat file.\n"
+"\n"
+"This script is useful if you have a Mailman mailing list and a sendmail\n"
+":include: style list of addresses (also as is used in Majordomo). For every\n"
+"address in the file that does not appear in the mailing list, the address is\n"
+"added. For every address in the mailing list that does not appear in the\n"
+"file, the address is removed. Other options control what happens when an\n"
+"address is added or removed.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] -f file listname\n"
+"\n"
+"Where `options' are:\n"
+"\n"
+" --no-change\n"
+" -n\n"
+" Don't actually make the changes. Instead, print out what would be\n"
+" done to the list.\n"
+"\n"
+" --welcome-msg[=<yes|no>]\n"
+" -w[=<yes|no>]\n"
+" Sets whether or not to send the newly added members a welcome\n"
+" message, overriding whatever the list's `send_welcome_msg' setting\n"
+" is. With -w=yes or -w, the welcome message is sent. With -w=no, no\n"
+" message is sent.\n"
+"\n"
+" --goodbye-msg[=<yes|no>]\n"
+" -g[=<yes|no>]\n"
+" Sets whether or not to send the goodbye message to removed members,\n"
+" overriding whatever the list's `send_goodbye_msg' setting is. With\n"
+" -g=yes or -g, the goodbye message is sent. With -g=no, no message is\n"
+" sent.\n"
+"\n"
+" --digest[=<yes|no>]\n"
+" -d[=<yes|no>]\n"
+" Selects whether to make newly added members receive messages in\n"
+" digests. With -d=yes or -d, they become digest members. With -d=no\n"
+" (or if no -d option given) they are added as regular members.\n"
+"\n"
+" --notifyadmin[=<yes|no>]\n"
+" -a[=<yes|no>]\n"
+" Specifies whether the admin should be notified for each subscription\n"
+" or unsubscription. If you're adding a lot of addresses, you\n"
+" definitely want to turn this off! With -a=yes or -a, the admin is\n"
+" notified. With -a=no, the admin is not notified. With no -a option,\n"
+" the default for the list is used.\n"
+"\n"
+" --file <filename | ->\n"
+" -f <filename | ->\n"
+" This option is required. It specifies the flat file to synchronize\n"
+" against. Email addresses must appear one per line. If filename is\n"
+" `-' then stdin is used.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this message.\n"
+"\n"
+" listname\n"
+" Required. This specifies the list to synchronize.\n"
+msgstr ""
+
+#: bin/sync_members:115
+msgid "Bad choice: %(yesno)s"
+msgstr ""
+
+#: bin/sync_members:138
+msgid "Dry run mode"
+msgstr ""
+
+#: bin/sync_members:159
+msgid "Only one -f switch allowed"
+msgstr ""
+
+#: bin/sync_members:163
+msgid "No argument to -f given"
+msgstr ""
+
+#: bin/sync_members:172
+msgid "Illegal option: %(opt)s"
+msgstr ""
+
+#: bin/sync_members:178
+msgid "No listname given"
+msgstr ""
+
+#: bin/sync_members:182
+msgid "Must have a listname and a filename"
+msgstr ""
+
+#: bin/sync_members:191
+msgid "Cannot read address file: %(filename)s: %(msg)s"
+msgstr ""
+
+#: bin/sync_members:203
+msgid "Ignore : %(addr)30s"
+msgstr ""
+
+#: bin/sync_members:212
+msgid "Invalid : %(addr)30s"
+msgstr ""
+
+#: bin/sync_members:215
+msgid "You must fix the preceding invalid addresses first."
+msgstr ""
+
+#: bin/sync_members:258
+msgid "Added : <%(addr)30s> %(name)s"
+msgstr ""
+
+#: bin/sync_members:275
+msgid "Removed: <%(addr)30s> %(name)s"
+msgstr ""
+
+#: bin/transcheck:18
+#, docstring
+msgid ""
+"\n"
+"Check a given Mailman translation, making sure that variables and\n"
+"tags referenced in translation are the same variables and tags in\n"
+"the original templates and catalog.\n"
+"\n"
+"Usage:\n"
+"\n"
+"cd $MAILMAN_DIR\n"
+"%(program)s [-q] <lang>\n"
+"\n"
+"Where <lang> is your country code (e.g. 'it' for Italy) and -q is\n"
+"to ask for a brief summary.\n"
+msgstr ""
+
+#: bin/transcheck:55
+#, docstring
+msgid "check a translation comparing with the original string"
+msgstr ""
+
+#: bin/transcheck:62
+#, docstring
+msgid "scan a string from the original file"
+msgstr ""
+
+#: bin/transcheck:70
+#, docstring
+msgid "scan a translated string"
+msgstr ""
+
+#: bin/transcheck:81
+#, docstring
+msgid "check for differences between checked in and checked out"
+msgstr ""
+
+#: bin/transcheck:114
+#, docstring
+msgid "parse a .po file extracting msgids and msgstrs"
+msgstr ""
+
+#: bin/transcheck:133
+#, docstring
+msgid ""
+"States table for the finite-states-machine parser:\n"
+" 0 idle\n"
+" 1 filename-or-comment\n"
+" 2 msgid\n"
+" 3 msgstr\n"
+" 4 end\n"
+" "
+msgstr ""
+
+#: bin/transcheck:270
+#, docstring
+msgid "check a translated template against the original one\n"
+" search also <MM-*> tags if html is not zero"
+msgstr ""
+
+#: bin/transcheck:317
+#, docstring
+msgid "scan the po file comparing msgids with msgstrs"
+msgstr ""
+
+#: bin/unshunt:19
+#, docstring
+msgid ""
+"Move a message from the shunt queue to the original queue.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [directory]\n"
+"\n"
+"Where:\n"
+"\n"
+" -h / --help\n"
+" Print help and exit.\n"
+"\n"
+"Optional `directory' specifies a directory to dequeue from other than\n"
+"qfiles/shunt.\n"
+msgstr ""
+
+#: bin/unshunt:81
+msgid "Cannot unshunt message %(filebase)s, skipping:\n"
+"%(e)s"
+msgstr ""
+
+#: bin/update:19
+#, docstring
+msgid ""
+"Perform all necessary upgrades.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -f/--force\n"
+" Force running the upgrade procedures. Normally, if the version number\n"
+" of the installed Mailman matches the current version number (or a\n"
+" `downgrade' is detected), nothing will be done.\n"
+"\n"
+" -h/--help\n"
+" Print this text and exit.\n"
+"\n"
+"Use this script to help you update to the latest release of Mailman from\n"
+"some previous version. It knows about versions back to 1.0b4 (?).\n"
+msgstr ""
+
+#: bin/update:101
+msgid "Fixing language templates: %(listname)s"
+msgstr ""
+
+#: bin/update:190
+#: bin/update:465
+msgid "WARNING: could not acquire lock for list: %(listname)s"
+msgstr ""
+
+#: bin/update:209
+msgid "Resetting %(n)s BYBOUNCEs disabled addrs with no bounce info"
+msgstr ""
+
+#: bin/update:215
+msgid "Updating the held requests database."
+msgstr ""
+
+#: bin/update:237
+msgid "For some reason, %(mbox_dir)s exists as a file. This won't work with\n"
+"b6, so I'm renaming it to %(mbox_dir)s.tmp and proceeding."
+msgstr ""
+
+#: bin/update:249
+msgid ""
+"\n"
+"%(listname)s has both public and private mbox archives. Since this list\n"
+"currently uses private archiving, I'm installing the private mbox archive\n"
+"-- %(o_pri_mbox_file)s -- as the active archive, and renaming\n"
+" %(o_pub_mbox_file)s\n"
+"to\n"
+" %(o_pub_mbox_file)s.preb6\n"
+"\n"
+"You can integrate that into the archives if you want by using the 'arch'\n"
+"script.\n"
+msgstr ""
+
+#: bin/update:264
+msgid ""
+"%s has both public and private mbox archives. Since this list\n"
+"currently uses public archiving, I'm installing the public mbox file\n"
+"archive file (%s) as the active one, and renaming\n"
+" %s\n"
+" to\n"
+" %s.preb6\n"
+"\n"
+"You can integrate that into the archives if you want by using the 'arch'\n"
+"script.\n"
+msgstr ""
+
+#: bin/update:281
+msgid "- updating old private mbox file"
+msgstr ""
+
+#: bin/update:289
+msgid ""
+" unknown file in the way, moving\n"
+" %(o_pri_mbox_file)s\n"
+" to\n"
+" %(newname)s"
+msgstr ""
+
+#: bin/update:296
+#: bin/update:319
+msgid " looks like you have a really recent CVS installation...\n"
+" you're either one brave soul, or you already ran me"
+msgstr ""
+
+#: bin/update:305
+msgid "- updating old public mbox file"
+msgstr ""
+
+#: bin/update:313
+msgid ""
+" unknown file in the way, moving\n"
+" %(o_pub_mbox_file)s\n"
+" to\n"
+" %(newname)s"
+msgstr ""
+
+#: bin/update:344
+msgid "- This list looks like it might have <= b4 list templates around"
+msgstr ""
+
+#: bin/update:351
+msgid "- moved %(o_tmpl)s to %(n_tmpl)s"
+msgstr ""
+
+#: bin/update:353
+msgid "- both %(o_tmpl)s and %(n_tmpl)s exist, leaving untouched"
+msgstr ""
+
+#: bin/update:383
+msgid "removing directory %(src)s and everything underneath"
+msgstr ""
+
+#: bin/update:386
+msgid "removing %(src)s"
+msgstr ""
+
+#: bin/update:390
+msgid "Warning: couldn't remove %(src)s -- %(rest)s"
+msgstr ""
+
+#: bin/update:395
+msgid "couldn't remove old file %(pyc)s -- %(rest)s"
+msgstr ""
+
+#: bin/update:399
+msgid "updating old qfiles"
+msgstr ""
+
+#: bin/update:421
+msgid "getting rid of old source files"
+msgstr ""
+
+#: bin/update:431
+msgid "no lists == nothing to do, exiting"
+msgstr ""
+
+#: bin/update:438
+msgid "fixing all the perms on your old html archives to work with b6\n"
+"If your archives are big, this could take a minute or two..."
+msgstr ""
+
+#: bin/update:443
+msgid "done"
+msgstr ""
+
+#: bin/update:445
+msgid "Updating mailing list: %(listname)s"
+msgstr "Forumo %(listname)s atnaujinimas"
+
+#: bin/update:448
+msgid "Updating Usenet watermarks"
+msgstr ""
+
+#: bin/update:453
+msgid "- nothing to update here"
+msgstr ""
+
+#: bin/update:476
+msgid "- usenet watermarks updated and gate_watermarks removed"
+msgstr ""
+
+#: bin/update:486
+msgid "Updating old pending_subscriptions.db database"
+msgstr ""
+
+#: bin/update:503
+msgid ""
+"\n"
+"\n"
+"NOTE NOTE NOTE NOTE NOTE\n"
+"\n"
+" You are upgrading an existing Mailman installation, but I can't tell what\n"
+" version you were previously running.\n"
+"\n"
+" If you are upgrading from Mailman 1.0b9 or earlier you will need to\n"
+" manually update your mailing lists. For each mailing list you need to\n"
+" copy the file templates/options.html lists/<listname>/options.html.\n"
+"\n"
+" However, if you have edited this file via the Web interface, you will have\n"
+" to merge your changes into this file, otherwise you will lose your\n"
+" changes.\n"
+"\n"
+"NOTE NOTE NOTE NOTE NOTE\n"
+"\n"
+msgstr ""
+
+#: bin/update:560
+msgid "No updates are necessary."
+msgstr ""
+
+#: bin/update:563
+msgid ""
+"Downgrade detected, from version %(hexlversion)s to version %(hextversion)s\n"
+"This is probably not safe.\n"
+"Exiting."
+msgstr ""
+
+#: bin/update:568
+msgid "Upgrading from version %(hexlversion)s to %(hextversion)s"
+msgstr ""
+
+#: bin/update:577
+msgid ""
+"\n"
+"ERROR:\n"
+"\n"
+"The locks for some lists could not be acquired. This means that either\n"
+"Mailman was still active when you upgraded, or there were stale locks in the\n"
+"%(lockdir)s directory.\n"
+"\n"
+"You must put Mailman into a quiescent state and remove all stale locks, then\n"
+"re-run \"make update\" manually. See the INSTALL and UPGRADE files for details.\n"
+msgstr ""
+
+#: bin/version:19
+#, docstring
+msgid "Print the Mailman version.\n"
+msgstr ""
+
+#: bin/version:26
+msgid "Using Mailman version:"
+msgstr ""
+
+#: bin/withlist:19
+#, docstring
+msgid ""
+"General framework for interacting with a mailing list object.\n"
+"\n"
+"There are two ways to use this script: interactively or programmatically.\n"
+"Using it interactively allows you to play with, examine and modify a MailList\n"
+"object from Python's interactive interpreter. When running interactively, a\n"
+"MailList object called `m' will be available in the global namespace. It also\n"
+"loads the class MailList into the global namespace.\n"
+"\n"
+"Programmatically, you can write a function to operate on a MailList object,\n"
+"and this script will take care of the housekeeping (see below for examples).\n"
+"In that case, the general usage syntax is:\n"
+"\n"
+"%% bin/withlist [options] listname [args ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" -l / --lock\n"
+" Lock the list when opening. Normally the list is opened unlocked\n"
+" (e.g. for read-only operations). You can always lock the file after\n"
+" the fact by typing `m.Lock()'\n"
+"\n"
+" Note that if you use this option, you should explicitly call m.Save()\n"
+" before exiting, since the interpreter's clean up procedure will not\n"
+" automatically save changes to the MailList object (but it will unlock\n"
+" the list).\n"
+"\n"
+" -i / --interactive\n"
+" Leaves you at an interactive prompt after all other processing is\n"
+" complete. This is the default unless the -r option is given.\n"
+"\n"
+" --run [module.]callable\n"
+" -r [module.]callable\n"
+" This can be used to run a script with the opened MailList object.\n"
+" This works by attempting to import `module' (which must already be\n"
+" accessible on your sys.path), and then calling `callable' from the\n"
+" module. callable can be a class or function; it is called with the\n"
+" MailList object as the first argument. If additional args are given\n"
+" on the command line, they are passed as subsequent positional args to\n"
+" the callable.\n"
+"\n"
+" Note that `module.' is optional; if it is omitted then a module with\n"
+" the name `callable' will be imported.\n"
+"\n"
+" The global variable `r' will be set to the results of this call.\n"
+"\n"
+" --all / -a\n"
+" This option only works with the -r option. Use this if you want to\n"
+" execute the script on all mailing lists. When you use -a you should\n"
+" not include a listname argument on the command line. The variable `r'\n"
+" will be a list of all the results.\n"
+"\n"
+" --quiet / -q\n"
+" Suppress all status messages.\n"
+"\n"
+" --help / -h\n"
+" Print this message and exit\n"
+"\n"
+"\n"
+"Here's an example of how to use the -r option. Say you have a file in the\n"
+"Mailman installation directory called `listaddr.py', with the following\n"
+"two functions:\n"
+"\n"
+"def listaddr(mlist):\n"
+" print mlist.GetListEmail()\n"
+"\n"
+"def requestaddr(mlist):\n"
+" print mlist.GetRequestEmail()\n"
+"\n"
+"Now, from the command line you can print the list's posting address by running\n"
+"the following from the command line:\n"
+"\n"
+"%% bin/withlist -r listaddr mylist\n"
+"Loading list: mylist (unlocked)\n"
+"Importing listaddr ...\n"
+"Running listaddr.listaddr() ...\n"
+"mylist@myhost.com\n"
+"\n"
+"And you can print the list's request address by running:\n"
+"\n"
+"%% bin/withlist -r listaddr.requestaddr mylist\n"
+"Loading list: mylist (unlocked)\n"
+"Importing listaddr ...\n"
+"Running listaddr.requestaddr() ...\n"
+"mylist-request@myhost.com\n"
+"\n"
+"As another example, say you wanted to change the password for a particular\n"
+"user on a particular list. You could put the following function in a file\n"
+"called `changepw.py':\n"
+"\n"
+"from Mailman.Errors import NotAMember\n"
+"\n"
+"def changepw(mlist, addr, newpasswd):\n"
+" try:\n"
+" mlist.setMemberPassword(addr, newpasswd)\n"
+" mlist.Save()\n"
+" except NotAMember:\n"
+" print 'No address matched:', addr\n"
+"\n"
+"and run this from the command line:\n"
+"%% bin/withlist -l -r changepw mylist somebody@somewhere.org foobar\n"
+msgstr ""
+
+#: bin/withlist:151
+#, docstring
+msgid ""
+"Unlock a locked list, but do not implicitly Save() it.\n"
+"\n"
+" This does not get run if the interpreter exits because of a signal, or if\n"
+" os._exit() is called. It will get called if an exception occurs though.\n"
+" "
+msgstr ""
+
+#: bin/withlist:162
+msgid "Unlocking (but not saving) list: %(listname)s"
+msgstr ""
+
+#: bin/withlist:166
+msgid "Finalizing"
+msgstr ""
+
+#: bin/withlist:175
+msgid "Loading list %(listname)s"
+msgstr ""
+
+#: bin/withlist:177
+msgid "(locked)"
+msgstr ""
+
+#: bin/withlist:179
+msgid "(unlocked)"
+msgstr ""
+
+#: bin/withlist:184
+msgid "Unknown list: %(listname)s"
+msgstr "Neþinomas forumas: %(listname)s"
+
+#: bin/withlist:223
+msgid "No list name supplied."
+msgstr "Neávestas forumo pavadinimas."
+
+#: bin/withlist:226
+msgid "--all requires --run"
+msgstr ""
+
+#: bin/withlist:246
+msgid "Importing %(module)s..."
+msgstr ""
+
+#: bin/withlist:249
+msgid "Running %(module)s.%(callable)s()..."
+msgstr ""
+
+#: bin/withlist:270
+msgid "The variable `m' is the %(listname)s MailList instance"
+msgstr ""
+
+#: cron/bumpdigests:19
+#, docstring
+msgid ""
+"Increment the digest volume number and reset the digest number to one.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" --help/-h\n"
+" Print this message and exit.\n"
+"\n"
+"The lists named on the command line are bumped. If no list names are given,\n"
+"all lists are bumped.\n"
+msgstr ""
+
+#: cron/checkdbs:19
+#, docstring
+msgid "Invoked by cron, this checks for pending moderation requests and mails the\n"
+"list moderators if necessary.\n"
+msgstr ""
+
+#: cron/checkdbs:81
+msgid "%(count)d %(realname)s moderator request(s) waiting"
+msgstr ""
+
+#: cron/checkdbs:100
+msgid "Pending subscriptions:"
+msgstr "Praðomi uþsisakymai:"
+
+#: cron/checkdbs:109
+msgid "\n"
+"Pending posts:"
+msgstr ""
+
+#: cron/checkdbs:114
+msgid " From: %(sender)s on %(date)s\n"
+" Cause: %(reason)s"
+msgstr ""
+
+#: cron/disabled:19
+#, docstring
+msgid ""
+"Process disabled members, recommended once per day.\n"
+"\n"
+"This script cruises through every mailing list looking for members whose\n"
+"delivery is disabled. If they have been disabled due to bounces, they will\n"
+"receive another notification, or they may be removed if they've received the\n"
+"maximum number of notifications.\n"
+"\n"
+"Use the --byadmin, --byuser, and --unknown flags to also send notifications to\n"
+"members whose accounts have been disabled for those reasons. Use --all to\n"
+"send the notification to all disabled members.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -h / --help\n"
+" Print this message and exit.\n"
+"\n"
+" -o / --byadmin\n"
+" Also send notifications to any member disabled by the list\n"
+" owner/administrator.\n"
+"\n"
+" -m / --byuser\n"
+" Also send notifications to any member disabled by themselves.\n"
+"\n"
+" -u / --unknown\n"
+" Also send notifications to any member disabled for unknown reasons\n"
+" (usually a legacy disabled address).\n"
+"\n"
+" -b / --notbybounce\n"
+" Don't send notifications to members disabled because of bounces (the\n"
+" default is to notify bounce disabled members).\n"
+"\n"
+" -a / --all\n"
+" Send notifications to all disabled members.\n"
+"\n"
+" -f / --force\n"
+" Send notifications to disabled members even if they're not due a new\n"
+" notification yet.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" Process only the given list, otherwise do all lists.\n"
+msgstr ""
+
+#: cron/disabled:143
+msgid "[disabled by periodic sweep and cull, no message available]"
+msgstr ""
+
+#: cron/gate_news:19
+#, docstring
+msgid ""
+"Poll the NNTP servers for messages to be gatewayed to mailing lists.\n"
+"\n"
+"Usage: gate_news [options]\n"
+"\n"
+"Where options are\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this text and exit.\n"
+"\n"
+msgstr ""
+
+#: cron/mailpasswds:19
+#, docstring
+msgid ""
+"Send password reminders for all lists to all users.\n"
+"\n"
+"This program scans all mailing lists and collects users and their passwords,\n"
+"grouped by the list's host_name if mm_cfg.VIRTUAL_HOST_OVERVIEW is true. Then\n"
+"one email message is sent to each unique user (per-virtual host) containing\n"
+"the list passwords and options url for the user. The password reminder comes\n"
+"from the mm_cfg.MAILMAN_SITE_LIST, which must exist.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -l listname\n"
+" --listname=listname\n"
+" Send password reminders for the named list only. If omitted,\n"
+" reminders are sent for all lists. Multiple -l/--listname options are\n"
+" allowed.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+msgstr ""
+
+#: cron/mailpasswds:111
+msgid "Site list is missing: %(sitelistname)s"
+msgstr "Trûksta %(sitelistname)s adresø sàraðo"
+
+#: cron/mailpasswds:177
+msgid "Password // URL"
+msgstr "Slaptaþodis // URL"
+
+#: cron/mailpasswds:197
+msgid "%(host)s mailing list memberships reminder"
+msgstr "priminimai %(host)s forumø nariams"
+
+#: cron/nightly_gzip:19
+#, docstring
+msgid ""
+"Re-generate the Pipermail gzip'd archive flat files.\n"
+"\n"
+"This script should be run nightly from cron. When run from the command line,\n"
+"the following usage is understood:\n"
+"\n"
+"Usage: %(program)s [-v] [-h] [listnames]\n"
+"\n"
+"Where:\n"
+" --verbose\n"
+" -v\n"
+" print each file as it's being gzip'd\n"
+"\n"
+" --help\n"
+" -h\n"
+" print this message and exit\n"
+"\n"
+" listnames\n"
+" Optionally, only compress the .txt files for the named lists. Without \n"
+" this, all archivable lists are processed.\n"
+"\n"
+msgstr ""
+
+#: cron/senddigests:19
+#, docstring
+msgid ""
+"Dispatch digests for lists w/pending messages and digest_send_periodic set.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -h / --help\n"
+" Print this message and exit.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" Send the digest for the given list only, otherwise the digests for all\n"
+" lists are sent out.\n"
+msgstr ""
+
diff --git a/messages/mailman.pot b/messages/mailman.pot
new file mode 100644
index 00000000..898c2a13
--- /dev/null
+++ b/messages/mailman.pot
@@ -0,0 +1,7861 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR ORGANIZATION
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: Tue Dec 24 13:41:28 2002\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: ENCODING\n"
+"Generated-By: pygettext.py 1.4\n"
+
+
+#: Mailman/Archiver/HyperArch.py:112
+msgid "size not available"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:118
+msgid " %(size)i bytes "
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:249 Mailman/Archiver/HyperArch.py:405
+#: Mailman/Archiver/HyperArch.py:963 Mailman/Archiver/HyperArch.py:1127
+msgid " at "
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:434
+msgid "Previous message:"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:456
+msgid "Next message:"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:609 Mailman/Archiver/HyperArch.py:645
+msgid "thread"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:610 Mailman/Archiver/HyperArch.py:646
+msgid "subject"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:611 Mailman/Archiver/HyperArch.py:647
+msgid "author"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:612 Mailman/Archiver/HyperArch.py:648
+msgid "date"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:684
+msgid "<P>Currently, there are no archives. </P>"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:721
+msgid "Gzip'd Text%(sz)s"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:726
+msgid "Text%(sz)s"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:816
+msgid ""
+"figuring article archives\n"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "April"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "February"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "January"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "March"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:827
+msgid "August"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:827
+msgid "July"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:827
+msgid "June"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:827 Mailman/i18n.py:91
+msgid "May"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:828
+msgid "December"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:828
+msgid "November"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:828
+msgid "October"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:828
+msgid "September"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:836
+msgid "First"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:836
+msgid "Fourth"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:836
+msgid "Second"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:836
+msgid "Third"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:838
+msgid "%(ord)s quarter %(year)i"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:845
+msgid "%(month)s %(year)i"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:850
+msgid "The Week Of Monday %(day)i %(month)s %(year)i"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:854
+msgid "%(day)i %(month)s %(year)i"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:951
+msgid ""
+"Computing threaded index\n"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:1206
+msgid "Updating HTML for article %(seq)s"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:1213
+msgid "article file %(filename)s is missing!"
+msgstr ""
+
+#: Mailman/Archiver/pipermail.py:168 Mailman/Archiver/pipermail.py:169
+msgid "No subject"
+msgstr ""
+
+#: Mailman/Archiver/pipermail.py:269
+msgid "Creating archive directory "
+msgstr ""
+
+#: Mailman/Archiver/pipermail.py:281
+msgid "Reloading pickled archive state"
+msgstr ""
+
+#: Mailman/Archiver/pipermail.py:308
+msgid "Pickling archive state into "
+msgstr ""
+
+#: Mailman/Archiver/pipermail.py:419
+msgid "Updating index files for archive [%(archive)s]"
+msgstr ""
+
+#: Mailman/Archiver/pipermail.py:452
+msgid " Thread"
+msgstr ""
+
+#: Mailman/Archiver/pipermail.py:557
+msgid "#%(counter)05d %(msgid)s"
+msgstr ""
+
+#: Mailman/Bouncer.py:44
+msgid "due to excessive bounces"
+msgstr ""
+
+#: Mailman/Bouncer.py:45
+msgid "by yourself"
+msgstr ""
+
+#: Mailman/Bouncer.py:46
+msgid "by the list administrator"
+msgstr ""
+
+#: Mailman/Bouncer.py:47 Mailman/Bouncer.py:232
+#: Mailman/Commands/cmd_set.py:182
+msgid "for unknown reasons"
+msgstr ""
+
+#: Mailman/Bouncer.py:179
+msgid "disabled"
+msgstr ""
+
+#: Mailman/Bouncer.py:184
+msgid "Bounce action notification"
+msgstr ""
+
+#: Mailman/Bouncer.py:239
+msgid " The last bounce received from you was dated %(date)s"
+msgstr ""
+
+#: Mailman/Bouncer.py:264 Mailman/Deliverer.py:126
+#: Mailman/Handlers/Acknowledge.py:44 Mailman/Handlers/CookHeaders.py:236
+#: Mailman/Handlers/Hold.py:214 Mailman/Handlers/Hold.py:249
+#: Mailman/Handlers/ToDigest.py:211 Mailman/ListAdmin.py:235
+msgid "(no subject)"
+msgstr ""
+
+#: Mailman/Bouncer.py:266
+msgid "[No bounce details are available]"
+msgstr ""
+
+#: Mailman/Cgi/Auth.py:46
+msgid "Moderator"
+msgstr ""
+
+#: Mailman/Cgi/Auth.py:48
+msgid "Administrator"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:70 Mailman/Cgi/admindb.py:89 Mailman/Cgi/confirm.py:55
+#: Mailman/Cgi/edithtml.py:67 Mailman/Cgi/listinfo.py:51
+#: Mailman/Cgi/options.py:71 Mailman/Cgi/private.py:98
+#: Mailman/Cgi/rmlist.py:64 Mailman/Cgi/roster.py:57
+#: Mailman/Cgi/subscribe.py:61
+msgid "No such list <em>%(safelistname)s</em>"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:85 Mailman/Cgi/admindb.py:105
+#: Mailman/Cgi/edithtml.py:85 Mailman/Cgi/private.py:123
+msgid "Authorization failed."
+msgstr ""
+
+#: Mailman/Cgi/admin.py:175
+msgid ""
+"You have turned off delivery of both digest and\n"
+" non-digest messages. This is an incompatible state of\n"
+" affairs. You must turn on either digest delivery or\n"
+" non-digest delivery or your mailing list will basically be\n"
+" unusable."
+msgstr ""
+
+#: Mailman/Cgi/admin.py:179 Mailman/Cgi/admin.py:185 Mailman/Cgi/admin.py:190
+#: Mailman/Cgi/admin.py:1361 Mailman/Gui/GUIBase.py:184
+msgid "Warning: "
+msgstr ""
+
+#: Mailman/Cgi/admin.py:183
+msgid ""
+"You have digest members, but digests are turned\n"
+" off. Those people will not receive mail."
+msgstr ""
+
+#: Mailman/Cgi/admin.py:188
+msgid ""
+"You have regular list members but non-digestified mail is\n"
+" turned off. They will receive mail until you fix this\n"
+" problem."
+msgstr ""
+
+#: Mailman/Cgi/admin.py:212
+msgid "%(hostname)s mailing lists - Admin Links"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:241 Mailman/Cgi/listinfo.py:97
+msgid "Welcome!"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:244 Mailman/Cgi/listinfo.py:100
+msgid "Mailman"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:248
+msgid ""
+"<p>There currently are no publicly-advertised %(mailmanlink)s\n"
+" mailing lists on %(hostname)s."
+msgstr ""
+
+#: Mailman/Cgi/admin.py:254
+msgid ""
+"<p>Below is the collection of publicly-advertised\n"
+" %(mailmanlink)s mailing lists on %(hostname)s. Click on a list\n"
+" name to visit the configuration pages for that list."
+msgstr ""
+
+#: Mailman/Cgi/admin.py:261
+msgid "right "
+msgstr ""
+
+#: Mailman/Cgi/admin.py:263
+msgid ""
+"To visit the administrators configuration page for an\n"
+" unadvertised list, open a URL similar to this one, but with a '/' and\n"
+" the %(extra)slist name appended. If you have the proper authority,\n"
+" you can also <a href=\"%(creatorurl)s\">create a new mailing list</a>.\n"
+"\n"
+" <p>General list information can be found at "
+msgstr ""
+
+#: Mailman/Cgi/admin.py:270
+msgid "the mailing list overview page"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:272
+msgid "<p>(Send questions and comments to "
+msgstr ""
+
+#: Mailman/Cgi/admin.py:282 Mailman/Cgi/listinfo.py:132 cron/mailpasswds:179
+msgid "List"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:283 Mailman/Cgi/admin.py:549
+#: Mailman/Cgi/listinfo.py:133
+msgid "Description"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:289 Mailman/Cgi/listinfo.py:139 bin/list_lists:116
+msgid "[no description available]"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:322
+msgid "No valid variable name found."
+msgstr ""
+
+#: Mailman/Cgi/admin.py:332
+msgid ""
+"%(realname)s Mailing list Configuration Help\n"
+" <br><em>%(varname)s</em> Option"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:339
+msgid "Mailman %(varname)s List Option Help"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:357
+msgid ""
+"<em><strong>Warning:</strong> changing this option here\n"
+" could cause other screens to be out-of-sync. Be sure to reload any other\n"
+" pages that are displaying this option for this mailing list. You can also\n"
+" "
+msgstr ""
+
+#: Mailman/Cgi/admin.py:368
+msgid "return to the %(categoryname)s options page."
+msgstr ""
+
+#: Mailman/Cgi/admin.py:383
+msgid "%(realname)s Administration (%(label)s)"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:384
+msgid "%(realname)s mailing list administration<br>%(label)s Section"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:400
+msgid "Configuration Categories"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:401
+msgid "Other Administrative Activities"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:405
+msgid "Tend to pending moderator requests"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:407
+msgid "Go to the general list information page"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:409
+msgid "Edit the public HTML pages"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:411
+msgid "Go to list archives"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:417
+msgid "Delete this mailing list"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:418
+msgid " (requires confirmation)<br>&nbsp;<br>"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:424
+msgid "Logout"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:468
+msgid "Emergency moderation of all list traffic is enabled"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:479
+msgid ""
+"Make your changes in the following section, then submit them\n"
+" using the <em>Submit Your Changes</em> button below."
+msgstr ""
+
+#: Mailman/Cgi/admin.py:497
+msgid "Additional Member Tasks"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:503
+msgid ""
+"<li>Set everyone's moderation bit, including\n"
+" those members not currently visible"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:507
+msgid "Off"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:507
+msgid "On"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:509
+msgid "Set"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:550
+msgid "Value"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:604
+msgid ""
+"Badly formed options entry:\n"
+" %(record)s"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:662
+msgid "<em>Enter the text below, or...</em><br>"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:664
+msgid "<br><em>...specify a file to upload</em><br>"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:690 Mailman/Cgi/admin.py:693
+msgid "Topic %(i)d"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:694
+msgid "Delete"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:695
+msgid "Topic name:"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:697
+msgid "Regexp:"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:700 Mailman/Cgi/options.py:943
+msgid "Description:"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:704
+msgid "Add new item..."
+msgstr ""
+
+#: Mailman/Cgi/admin.py:706
+msgid "...before this one."
+msgstr ""
+
+#: Mailman/Cgi/admin.py:707
+msgid "...after this one."
+msgstr ""
+
+#: Mailman/Cgi/admin.py:742
+msgid "<br>(Edit <b>%(varname)s</b>)"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:744
+msgid "<br>(Details for <b>%(varname)s</b>)"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:751
+msgid ""
+"<br><em><strong>Note:</strong>\n"
+" setting this value performs an immediate action but does not modify\n"
+" permanent state.</em>"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:765
+msgid "Mass Subscriptions"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:772
+msgid "Mass Removals"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:779
+msgid "Membership List"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:786
+msgid "(help)"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:787
+msgid "Find member %(link)s:"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:790
+msgid "Search..."
+msgstr ""
+
+#: Mailman/Cgi/admin.py:805
+msgid "Bad regular expression: "
+msgstr ""
+
+#: Mailman/Cgi/admin.py:861
+msgid "%(allcnt)s members total, %(membercnt)s shown"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:864
+msgid "%(allcnt)s members total"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:887
+msgid "unsub"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:888
+msgid "member address<br>member name"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:889
+msgid "hide"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:889
+msgid "mod"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:890
+msgid "nomail<br>[reason]"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:891
+msgid "ack"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:891
+msgid "not metoo"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:892
+msgid "nodupes"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:893
+msgid "digest"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:893
+msgid "plain"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:894
+msgid "language"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:905
+msgid "?"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:906
+msgid "U"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:907
+msgid "A"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:908
+msgid "B"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:979
+msgid "<b>unsub</b> -- Click on this to unsubscribe the member."
+msgstr ""
+
+#: Mailman/Cgi/admin.py:981
+msgid ""
+"<b>mod</b> -- The user's personal moderation flag. If this is\n"
+" set, postings from them will be moderated, otherwise they will be\n"
+" approved."
+msgstr ""
+
+#: Mailman/Cgi/admin.py:985
+msgid ""
+"<b>hide</b> -- Is the member's address concealed on\n"
+" the list of subscribers?"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:987
+msgid ""
+"<b>nomail</b> -- Is delivery to the member disabled? If so, an\n"
+" abbreviation will be given describing the reason for the disabled\n"
+" delivery:\n"
+" <ul><li><b>U</b> -- Delivery was disabled by the user via their\n"
+" personal options page.\n"
+" <li><b>A</b> -- Delivery was disabled by the list\n"
+" administrators.\n"
+" <li><b>B</b> -- Delivery was disabled by the system due to\n"
+" excessive bouncing from the member's address.\n"
+" <li><b>?</b> -- The reason for disabled delivery isn't known.\n"
+" This is the case for all memberships which were disabled\n"
+" in older versions of Mailman.\n"
+" </ul>"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1002
+msgid ""
+"<b>ack</b> -- Does the member get acknowledgements of their\n"
+" posts?"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1005
+msgid ""
+"<b>not metoo</b> -- Does the member want to avoid copies of their\n"
+" own postings?"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1008
+msgid ""
+"<b>nodupes</b> -- Does the member want to avoid duplicates of the\n"
+" same message?"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1011
+msgid ""
+"<b>digest</b> -- Does the member get messages in digests?\n"
+" (otherwise, individual messages)"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1014
+msgid ""
+"<b>plain</b> -- If getting digests, does the member get plain\n"
+" text digests? (otherwise, MIME)"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1016
+msgid "<b>language</b> -- Language preferred by the user"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1030
+msgid "Click here to hide the legend for this table."
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1034
+msgid "Click here to include the legend for this table."
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1041
+msgid ""
+"<p><em>To view more members, click on the appropriate\n"
+" range listed below:</em>"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1050
+msgid "from %(start)s to %(end)s"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1063
+msgid "Subscribe these users now or invite them?"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1065
+msgid "Invite"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1065 Mailman/Cgi/listinfo.py:175
+msgid "Subscribe"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1071
+msgid "Send welcome messages to new subscribees?"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1073 Mailman/Cgi/admin.py:1082
+#: Mailman/Cgi/admin.py:1115 Mailman/Cgi/admin.py:1123
+#: Mailman/Cgi/confirm.py:271 Mailman/Cgi/create.py:327
+#: Mailman/Cgi/create.py:355 Mailman/Cgi/create.py:395
+#: Mailman/Cgi/rmlist.py:228 Mailman/Gui/Archive.py:33
+#: Mailman/Gui/Autoresponse.py:54 Mailman/Gui/Autoresponse.py:62
+#: Mailman/Gui/Autoresponse.py:71 Mailman/Gui/Bounce.py:77
+#: Mailman/Gui/Bounce.py:108 Mailman/Gui/Bounce.py:134
+#: Mailman/Gui/Bounce.py:143 Mailman/Gui/ContentFilter.py:70
+#: Mailman/Gui/ContentFilter.py:103 Mailman/Gui/Digest.py:46
+#: Mailman/Gui/Digest.py:62 Mailman/Gui/Digest.py:84 Mailman/Gui/Digest.py:89
+#: Mailman/Gui/General.py:148 Mailman/Gui/General.py:154
+#: Mailman/Gui/General.py:232 Mailman/Gui/General.py:259
+#: Mailman/Gui/General.py:286 Mailman/Gui/General.py:297
+#: Mailman/Gui/General.py:300 Mailman/Gui/General.py:310
+#: Mailman/Gui/General.py:315 Mailman/Gui/General.py:325
+#: Mailman/Gui/General.py:345 Mailman/Gui/General.py:373
+#: Mailman/Gui/General.py:396 Mailman/Gui/NonDigest.py:44
+#: Mailman/Gui/NonDigest.py:52 Mailman/Gui/Privacy.py:101
+#: Mailman/Gui/Privacy.py:107 Mailman/Gui/Privacy.py:140
+#: Mailman/Gui/Privacy.py:188 Mailman/Gui/Privacy.py:296
+#: Mailman/Gui/Privacy.py:309 Mailman/Gui/Usenet.py:50
+#: Mailman/Gui/Usenet.py:54 Mailman/Gui/Usenet.py:91 Mailman/Gui/Usenet.py:103
+msgid "No"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1073 Mailman/Cgi/admin.py:1082
+#: Mailman/Cgi/admin.py:1115 Mailman/Cgi/admin.py:1123
+#: Mailman/Cgi/confirm.py:271 Mailman/Cgi/create.py:327
+#: Mailman/Cgi/create.py:355 Mailman/Cgi/create.py:395
+#: Mailman/Cgi/rmlist.py:228 Mailman/Gui/Archive.py:33
+#: Mailman/Gui/Autoresponse.py:54 Mailman/Gui/Autoresponse.py:62
+#: Mailman/Gui/Bounce.py:77 Mailman/Gui/Bounce.py:108
+#: Mailman/Gui/Bounce.py:134 Mailman/Gui/Bounce.py:143
+#: Mailman/Gui/ContentFilter.py:70 Mailman/Gui/ContentFilter.py:103
+#: Mailman/Gui/Digest.py:46 Mailman/Gui/Digest.py:62 Mailman/Gui/Digest.py:84
+#: Mailman/Gui/Digest.py:89 Mailman/Gui/General.py:148
+#: Mailman/Gui/General.py:154 Mailman/Gui/General.py:232
+#: Mailman/Gui/General.py:259 Mailman/Gui/General.py:286
+#: Mailman/Gui/General.py:297 Mailman/Gui/General.py:300
+#: Mailman/Gui/General.py:310 Mailman/Gui/General.py:315
+#: Mailman/Gui/General.py:325 Mailman/Gui/General.py:345
+#: Mailman/Gui/General.py:373 Mailman/Gui/General.py:396
+#: Mailman/Gui/NonDigest.py:44 Mailman/Gui/NonDigest.py:52
+#: Mailman/Gui/Privacy.py:101 Mailman/Gui/Privacy.py:107
+#: Mailman/Gui/Privacy.py:140 Mailman/Gui/Privacy.py:188
+#: Mailman/Gui/Privacy.py:296 Mailman/Gui/Privacy.py:309
+#: Mailman/Gui/Usenet.py:50 Mailman/Gui/Usenet.py:54 Mailman/Gui/Usenet.py:91
+#: Mailman/Gui/Usenet.py:103
+msgid "Yes"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1080
+msgid "Send notifications of new subscriptions to the list owner?"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1088 Mailman/Cgi/admin.py:1129
+msgid "Enter one address per line below..."
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1093 Mailman/Cgi/admin.py:1134
+msgid "...or specify a file to upload:"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1098
+msgid ""
+"Below, enter additional text to be added to the\n"
+" top of your invitation or the subscription notification. Include at least\n"
+" one blank line at the end..."
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1113
+msgid "Send unsubscription acknowledgement to the user?"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1121
+msgid "Send notifications to the list owner?"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1143
+msgid "Change list ownership passwords"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1146
+msgid ""
+"The <em>list administrators</em> are the people who have ultimate control over\n"
+"all parameters of this mailing list. They are able to change any list\n"
+"configuration variable available through these administration web pages.\n"
+"\n"
+"<p>The <em>list moderators</em> have more limited permissions; they are not\n"
+"able to change any list configuration variable, but they are allowed to tend\n"
+"to pending administration requests, including approving or rejecting held\n"
+"subscription requests, and disposing of held postings. Of course, the\n"
+"<em>list administrators</em> can also tend to pending requests.\n"
+"\n"
+"<p>In order to split the list ownership duties into administrators and\n"
+"moderators, you must set a separate moderator password in the fields below,\n"
+"and also provide the email addresses of the list moderators in the\n"
+"<a href=\"%(adminurl)s/general\">general options section</a>."
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1165
+msgid "Enter new administrator password:"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1167
+msgid "Confirm administrator password:"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1172
+msgid "Enter new moderator password:"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1174
+msgid "Confirm moderator password:"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1184
+msgid "Submit Your Changes"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1207
+msgid "Moderator passwords did not match"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1217
+msgid "Administrator passwords did not match"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1265
+msgid "Already a member"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1268
+msgid "&lt;blank line&gt;"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1269 Mailman/Cgi/admin.py:1272
+msgid "Bad/Invalid email address"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1275
+msgid "Hostile address (illegal characters)"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1281
+msgid "Successfully invited:"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1283
+msgid "Successfully subscribed:"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1288
+msgid "Error inviting:"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1290
+msgid "Error subscribing:"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1319
+msgid "Successfully Unsubscribed:"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1324
+msgid "Cannot unsubscribe non-members:"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1336
+msgid "Bad moderation flag value"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1357
+msgid "Not subscribed"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1360
+msgid "Ignoring changes to deleted member: %(user)s"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1400
+msgid "Successfully Removed:"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1404
+msgid "Error Unsubscribing:"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:159 Mailman/Cgi/admindb.py:167
+msgid "%(realname)s Administrative Database"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:162
+msgid "%(realname)s Administrative Database Results"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:170
+msgid "There are no pending requests."
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:173
+msgid "Click here to reload this page."
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:184
+msgid "Detailed instructions for the administrative database"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:188
+msgid "Administrative requests for mailing list:"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:191 Mailman/Cgi/admindb.py:234
+msgid "Submit All Data"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:204
+msgid "all of %(esender)s's held messages."
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:209
+msgid "a single held message."
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:214
+msgid "all held messages."
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:249
+msgid "Mailman Administrative Database Error"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:254
+msgid "list of available mailing lists."
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:255
+msgid "You must specify a list name. Here is the %(link)s"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:268
+msgid "Subscription Requests"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:270
+msgid "Address/name"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:271 Mailman/Cgi/admindb.py:320
+msgid "Your decision"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:272 Mailman/Cgi/admindb.py:321
+msgid "Reason for refusal"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:289 Mailman/Cgi/admindb.py:346
+#: Mailman/Cgi/admindb.py:389 Mailman/Cgi/admindb.py:612
+msgid "Defer"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:290 Mailman/Cgi/admindb.py:347
+#: Mailman/Cgi/admindb.py:612
+msgid "Approve"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:291 Mailman/Cgi/admindb.py:348
+#: Mailman/Cgi/admindb.py:389 Mailman/Cgi/admindb.py:612
+#: Mailman/Gui/ContentFilter.py:37 Mailman/Gui/Privacy.py:207
+#: Mailman/Gui/Privacy.py:281
+msgid "Reject"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:292 Mailman/Cgi/admindb.py:349
+#: Mailman/Cgi/admindb.py:389 Mailman/Cgi/admindb.py:612
+#: Mailman/Gui/ContentFilter.py:37 Mailman/Gui/Privacy.py:207
+#: Mailman/Gui/Privacy.py:281
+msgid "Discard"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:300
+msgid "Permanently ban from this list"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:319
+msgid "User address/name"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:359
+msgid "Unsubscription Requests"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:382 Mailman/Cgi/admindb.py:596
+msgid "From:"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:385
+msgid "Action to take on all these held messages:"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:389 Mailman/Gui/Privacy.py:281
+msgid "Accept"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:397
+msgid "Preserve messages for the site administrator"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:403
+msgid "Forward messages (individually) to:"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:421
+msgid "Clear this member's <em>moderate</em> flag"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:425
+msgid "<em>The sender is now a member of this list</em>"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:434
+msgid "Add <b>%(esender)s</b> to a sender filter"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Accepts"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Discards"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Holds"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Rejects"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:448
+msgid ""
+"Ban <b>%(esender)s</b> from ever subscribing to this\n"
+" mailing list"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:453
+msgid ""
+"Click on the message number to view the individual\n"
+" message, or you can "
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:455
+msgid "view all messages from %(esender)s"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:475 Mailman/Cgi/admindb.py:599
+msgid "Subject:"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:478
+msgid " bytes"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:478
+msgid "Size:"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:482 Mailman/Handlers/Decorate.py:50
+#: Mailman/Handlers/Scrubber.py:226 Mailman/Handlers/Scrubber.py:227
+msgid "not available"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:483 Mailman/Cgi/admindb.py:601
+msgid "Reason:"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:487 Mailman/Cgi/admindb.py:605
+msgid "Received:"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:545
+msgid "Posting Held for Approval"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:547
+msgid " (%(count)d of %(total)d)"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:558
+msgid "<em>Message with id #%(id)d was lost."
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:567
+msgid "<em>Message with id #%(id)d is corrupted."
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:618
+msgid "Action:"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:622
+msgid "Preserve message for site administrator"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:626
+msgid "Additionally, forward this message to: "
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:630
+msgid "[No explanation given]"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:632
+msgid "If you reject this post,<br>please explain (optional):"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:638
+msgid "Message Headers:"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:643
+msgid "Message Excerpt:"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:676 Mailman/Deliverer.py:124
+msgid "No reason given"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:737 Mailman/ListAdmin.py:308
+#: Mailman/ListAdmin.py:429
+msgid "[No reason given]"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:766
+msgid "Database Updated..."
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:769
+msgid " is already a member"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:69
+msgid "Confirmation string was empty."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:89
+msgid ""
+"<b>Invalid confirmation string:</b>\n"
+" %(safecookie)s.\n"
+"\n"
+" <p>Note that confirmation strings expire approximately\n"
+" %(days)s days after the initial subscription request. If your\n"
+" confirmation has expired, please try to re-submit your subscription.\n"
+" Otherwise, <a href=\"%(confirmurl)s\">re-enter</a> your confirmation\n"
+" string."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:122
+msgid ""
+"The address requesting unsubscription is not\n"
+" a member of the mailing list. Perhaps you have already been\n"
+" unsubscribed, e.g. by the list administrator?"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:138
+msgid ""
+"The address requesting to be changed has\n"
+" been subsequently unsubscribed. This request has been\n"
+" cancelled."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:157
+msgid "System error, bad content: %(content)s"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:167
+msgid "Bad confirmation string"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:175
+msgid "Enter confirmation cookie"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:188
+msgid ""
+"Please enter the confirmation string\n"
+" (i.e. <em>cookie</em>) that you received in your email message, in the box\n"
+" below. Then hit the <em>Submit</em> button to proceed to the next\n"
+" confirmation step."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:193
+msgid "Confirmation string:"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:195
+msgid "Submit"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:210
+msgid "Confirm subscription request"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:227
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" subscription request to the mailing list <em>%(listname)s</em>. Your\n"
+" subscription settings are shown below; make any necessary changes and hit\n"
+" <em>Subscribe</em> to complete the confirmation process. Once you've\n"
+" confirmed your subscription request, you will be shown your account\n"
+" options page which you can use to further customize your membership\n"
+" options.\n"
+"\n"
+" <p>Note: your password will be emailed to you once your subscription is\n"
+" confirmed. You can change it by visiting your personal options page.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this subscription\n"
+" request."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:242
+msgid ""
+"Your confirmation is required in order to continue with\n"
+" the subscription request to the mailing list <em>%(listname)s</em>.\n"
+" Your subscription settings are shown below; make any necessary changes\n"
+" and hit <em>Subscribe to list ...</em> to complete the confirmation\n"
+" process. Once you've confirmed your subscription request, the\n"
+" moderator must approve or reject your membership request. You will\n"
+" receive notice of their decision.\n"
+"\n"
+" <p>Note: your password will be emailed to you once your subscription\n"
+" is confirmed. You can change it by visiting your personal options\n"
+" page.\n"
+"\n"
+" <p>Or, if you've changed your mind and do not want to subscribe to\n"
+" this mailing list, you can hit <em>Cancel my subscription\n"
+" request</em>."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:260
+msgid "Your email address:"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:261
+msgid "Your real name:"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:270
+msgid "Receive digests?"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:279
+msgid "Preferred language:"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:284
+msgid "Cancel my subscription request"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:285
+msgid "Subscribe to list %(listname)s"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:295
+msgid "You have canceled your subscription request."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:329
+msgid "Awaiting moderator approval"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:332
+msgid ""
+" You have successfully confirmed your subscription request to the\n"
+" mailing list %(listname)s, however final approval is required from\n"
+" the list moderator before you will be subscribed. Your request\n"
+" has been forwarded to the list moderator, and you will be notified\n"
+" of the moderator's decision."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:339 Mailman/Cgi/confirm.py:394
+#: Mailman/Cgi/confirm.py:482 Mailman/Cgi/confirm.py:705
+msgid ""
+"Invalid confirmation string. It is\n"
+" possible that you are attempting to confirm a request for an\n"
+" address that has already been unsubscribed."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:343
+msgid "You are already a member of this mailing list!"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:350
+msgid "Subscription request confirmed"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:354
+msgid ""
+" You have successfully confirmed your subscription request for\n"
+" \"%(addr)s\" to the %(listname)s mailing list. A separate\n"
+" confirmation message will be sent to your email address, along\n"
+" with your password, and other useful information and links.\n"
+"\n"
+" <p>You can now\n"
+" <a href=\"%(optionsurl)s\">proceed to your membership login\n"
+" page</a>."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:372
+msgid "You have canceled your unsubscription request."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:400
+msgid "Unsubscription request confirmed"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:404
+msgid ""
+" You have successfully unsubscribed from the %(listname)s mailing\n"
+" list. You can now <a href=\"%(listinfourl)s\">visit the list's main\n"
+" information page</a>."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:415
+msgid "Confirm unsubscription request"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:430 Mailman/Cgi/confirm.py:519
+msgid "<em>Not available</em>"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:433
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" unsubscription request from the mailing list <em>%(listname)s</em>. You\n"
+" are currently subscribed with\n"
+"\n"
+" <ul><li><b>Real name:</b> %(fullname)s\n"
+" <li><b>Email address:</b> %(addr)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Unsubscribe</em> button below to complete the confirmation\n"
+" process.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this unsubscription\n"
+" request."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:449 Mailman/Cgi/options.py:660
+#: Mailman/Cgi/options.py:801 Mailman/Cgi/options.py:811
+msgid "Unsubscribe"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:450 Mailman/Cgi/confirm.py:548
+msgid "Cancel and discard"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:460
+msgid "You have canceled your change of address request."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:488
+msgid "Change of address request confirmed"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:492
+msgid ""
+" You have successfully changed your address on the %(listname)s\n"
+" mailing list from <b>%(oldaddr)s</b> to <b>%(newaddr)s</b>. You\n"
+" can now <a href=\"%(optionsurl)s\">proceed to your membership\n"
+" login page</a>."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:504
+msgid "Confirm change of address request"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:523
+msgid "globally"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:526
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" change of address request for the mailing list <em>%(listname)s</em>. You\n"
+" are currently subscribed with\n"
+"\n"
+" <ul><li><b>Real name:</b> %(fullname)s\n"
+" <li><b>Old email address:</b> %(oldaddr)s\n"
+" </ul>\n"
+"\n"
+" and you have requested to %(globallys)s change your email address to\n"
+"\n"
+" <ul><li><b>New email address:</b> %(newaddr)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Change address</em> button below to complete the confirmation\n"
+" process.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this change of address\n"
+" request."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:547
+msgid "Change address"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:557 Mailman/Cgi/confirm.py:670
+msgid "Continue awaiting approval"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:564
+msgid ""
+"Okay, the list moderator will still have the\n"
+" opportunity to approve or reject this message."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:590
+msgid "Sender discarded message via web."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:592
+msgid ""
+"The held message with the Subject:\n"
+" header <em>%(subject)s</em> could not be found. The most likely\n"
+" reason for this is that the list moderator has already approved or\n"
+" rejected the message. You were not able to cancel it in\n"
+" time."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:600
+msgid "Posted message canceled"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:603
+msgid ""
+" You have successfully canceled the posting of your message with\n"
+" the Subject: header <em>%(subject)s</em> to the mailing list\n"
+" %(listname)s."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:614
+msgid "Cancel held message posting"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:639
+msgid ""
+"The held message you were referred to has\n"
+" already been handled by the list administrator."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:653
+msgid ""
+"Your confirmation is required in order to cancel the\n"
+" posting of your message to the mailing list <em>%(listname)s</em>:\n"
+"\n"
+" <ul><li><b>Sender:</b> %(sender)s\n"
+" <li><b>Subject:</b> %(subject)s\n"
+" <li><b>Reason:</b> %(reason)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Cancel posting</em> button to discard the posting.\n"
+"\n"
+" <p>Or hit the <em>Continue awaiting approval</em> button to continue to\n"
+" allow the list moderator to approve or reject the message."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:669
+msgid "Cancel posting"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:681
+msgid ""
+"You have canceled the re-enabling of your membership. If\n"
+" we continue to receive bounces from your address, it could be deleted from\n"
+" this mailing list."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:711
+msgid "Membership re-enabled."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:715
+msgid ""
+" You have successfully re-enabled your membership in the\n"
+" %(listname)s mailing list. You can now <a\n"
+" href=\"%(optionsurl)s\">visit your member options page</a>.\n"
+" "
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:727
+msgid "Re-enable mailing list membership"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:744
+msgid ""
+"We're sorry, but you have already been unsubscribed\n"
+" from this mailing list. To re-subscribe, please visit the\n"
+" <a href=\"%(listinfourl)s\">list information page</a>."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:758
+msgid "<em>not available</em>"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:762
+msgid ""
+"Your membership in the %(realname)s mailing list is\n"
+" currently disabled due to excessive bounces. Your confirmation is\n"
+" required in order to re-enable delivery to your address. We have the\n"
+" following information on file:\n"
+"\n"
+" <ul><li><b>Member address:</b> %(member)s\n"
+" <li><b>Member name:</b> %(username)s\n"
+" <li><b>Last bounce received on:</b> %(date)s\n"
+" <li><b>Approximate number of days before you are permanently removed\n"
+" from this list:</b> %(daysleft)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Re-enable membership</em> button to resume receiving postings\n"
+" from the mailing list. Or hit the <em>Cancel</em> button to defer\n"
+" re-enabling your membership.\n"
+" "
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:782
+msgid "Re-enable membership"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:783
+msgid "Cancel"
+msgstr ""
+
+#: Mailman/Cgi/create.py:48 Mailman/Cgi/rmlist.py:48
+msgid "Bad URL specification"
+msgstr ""
+
+#: Mailman/Cgi/create.py:63 Mailman/Cgi/rmlist.py:176
+msgid "Return to the "
+msgstr ""
+
+#: Mailman/Cgi/create.py:65 Mailman/Cgi/rmlist.py:178
+msgid "general list overview"
+msgstr ""
+
+#: Mailman/Cgi/create.py:66 Mailman/Cgi/rmlist.py:179
+msgid "<br>Return to the "
+msgstr ""
+
+#: Mailman/Cgi/create.py:68 Mailman/Cgi/rmlist.py:181
+msgid "administrative list overview"
+msgstr ""
+
+#: Mailman/Cgi/create.py:101
+msgid "List name must not include \"@\": %(listname)s"
+msgstr ""
+
+#: Mailman/Cgi/create.py:107 Mailman/Cgi/create.py:185 bin/newlist:134
+#: bin/newlist:168
+msgid "List already exists: %(listname)s"
+msgstr ""
+
+#: Mailman/Cgi/create.py:111
+msgid "You forgot to enter the list name"
+msgstr ""
+
+#: Mailman/Cgi/create.py:115
+msgid "You forgot to specify the list owner"
+msgstr ""
+
+#: Mailman/Cgi/create.py:122
+msgid ""
+"Leave the initial password (and confirmation) fields\n"
+" blank if you want Mailman to autogenerate the list\n"
+" passwords."
+msgstr ""
+
+#: Mailman/Cgi/create.py:130
+msgid "Initial list passwords do not match"
+msgstr ""
+
+#: Mailman/Cgi/create.py:139
+msgid "The list password cannot be empty<!-- ignore -->"
+msgstr ""
+
+#: Mailman/Cgi/create.py:151
+msgid "You are not authorized to create new mailing lists"
+msgstr ""
+
+#: Mailman/Cgi/create.py:181 bin/newlist:166
+msgid "Bad owner email address: %(s)s"
+msgstr ""
+
+#: Mailman/Cgi/create.py:189 bin/newlist:164
+msgid "Illegal list name: %(s)s"
+msgstr ""
+
+#: Mailman/Cgi/create.py:194
+msgid ""
+"Some unknown error occurred while creating the list.\n"
+" Please contact the site administrator for assistance."
+msgstr ""
+
+#: Mailman/Cgi/create.py:233 bin/newlist:210
+msgid "Your new mailing list: %(listname)s"
+msgstr ""
+
+#: Mailman/Cgi/create.py:242
+msgid "Mailing list creation results"
+msgstr ""
+
+#: Mailman/Cgi/create.py:248
+msgid ""
+"You have successfully created the mailing list\n"
+" <b>%(listname)s</b> and notification has been sent to the list owner\n"
+" <b>%(owner)s</b>. You can now:"
+msgstr ""
+
+#: Mailman/Cgi/create.py:252
+msgid "Visit the list's info page"
+msgstr ""
+
+#: Mailman/Cgi/create.py:253
+msgid "Visit the list's admin page"
+msgstr ""
+
+#: Mailman/Cgi/create.py:254
+msgid "Create another list"
+msgstr ""
+
+#: Mailman/Cgi/create.py:272
+msgid "Create a %(hostname)s Mailing List"
+msgstr ""
+
+#: Mailman/Cgi/create.py:281 Mailman/Cgi/rmlist.py:199
+#: Mailman/Gui/Bounce.py:175 Mailman/htmlformat.py:339
+msgid "Error: "
+msgstr ""
+
+#: Mailman/Cgi/create.py:283
+msgid ""
+"You can create a new mailing list by entering the\n"
+" relevant information into the form below. The name of the mailing list\n"
+" will be used as the primary address for posting messages to the list, so\n"
+" it should be lowercased. You will not be able to change this once the\n"
+" list is created.\n"
+"\n"
+" <p>You also need to enter the email address of the initial list owner.\n"
+" Once the list is created, the list owner will be given notification, along\n"
+" with the initial list password. The list owner will then be able to\n"
+" modify the password and add or remove additional list owners.\n"
+"\n"
+" <p>If you want Mailman to automatically generate the initial list admin\n"
+" password, click on `Yes' in the autogenerate field below, and leave the\n"
+" initial list password fields empty.\n"
+"\n"
+" <p>You must have the proper authorization to create new mailing lists.\n"
+" Each site should have a <em>list creator's</em> password, which you can\n"
+" enter in the field at the bottom. Note that the site administrator's\n"
+" password can also be used for authentication.\n"
+" "
+msgstr ""
+
+#: Mailman/Cgi/create.py:309
+msgid "List Identity"
+msgstr ""
+
+#: Mailman/Cgi/create.py:312
+msgid "Name of list:"
+msgstr ""
+
+#: Mailman/Cgi/create.py:317
+msgid "Initial list owner address:"
+msgstr ""
+
+#: Mailman/Cgi/create.py:326
+msgid "Auto-generate initial list password?"
+msgstr ""
+
+#: Mailman/Cgi/create.py:333
+msgid "Initial list password:"
+msgstr ""
+
+#: Mailman/Cgi/create.py:338
+msgid "Confirm initial password:"
+msgstr ""
+
+#: Mailman/Cgi/create.py:348
+msgid "List Characteristics"
+msgstr ""
+
+#: Mailman/Cgi/create.py:352
+msgid ""
+"Should new members be quarantined before they\n"
+" are allowed to post unmoderated to this list? Answer <em>Yes</em> to hold\n"
+" new member postings for moderator approval by default."
+msgstr ""
+
+#: Mailman/Cgi/create.py:383
+msgid ""
+"Initial list of supported languages. <p>Note that if you do not\n"
+" select at least one initial language, the list will use the server\n"
+" default language of %(deflang)s"
+msgstr ""
+
+#: Mailman/Cgi/create.py:394
+msgid "Send \"list created\" email to list owner?"
+msgstr ""
+
+#: Mailman/Cgi/create.py:403
+msgid "List creator's (authentication) password:"
+msgstr ""
+
+#: Mailman/Cgi/create.py:408
+msgid "Create List"
+msgstr ""
+
+#: Mailman/Cgi/create.py:409
+msgid "Clear Form"
+msgstr ""
+
+#: Mailman/Cgi/edithtml.py:43
+msgid "General list information page"
+msgstr ""
+
+#: Mailman/Cgi/edithtml.py:44
+msgid "Subscribe results page"
+msgstr ""
+
+#: Mailman/Cgi/edithtml.py:45
+msgid "User specific options page"
+msgstr ""
+
+#: Mailman/Cgi/edithtml.py:57
+msgid "List name is required."
+msgstr ""
+
+#: Mailman/Cgi/edithtml.py:97
+msgid "%(realname)s -- Edit html for %(template_info)s"
+msgstr ""
+
+#: Mailman/Cgi/edithtml.py:103
+msgid "Edit HTML : Error"
+msgstr ""
+
+#: Mailman/Cgi/edithtml.py:104
+msgid "%(safetemplatename)s: Invalid template"
+msgstr ""
+
+#: Mailman/Cgi/edithtml.py:109 Mailman/Cgi/edithtml.py:110
+msgid "%(realname)s -- HTML Page Editing"
+msgstr ""
+
+#: Mailman/Cgi/edithtml.py:111
+msgid "Select page to edit:"
+msgstr ""
+
+#: Mailman/Cgi/edithtml.py:137
+msgid "View or edit the list configuration information."
+msgstr ""
+
+#: Mailman/Cgi/edithtml.py:145
+msgid "When you are done making changes..."
+msgstr ""
+
+#: Mailman/Cgi/edithtml.py:146
+msgid "Submit Changes"
+msgstr ""
+
+#: Mailman/Cgi/edithtml.py:153
+msgid "Can't have empty html page."
+msgstr ""
+
+#: Mailman/Cgi/edithtml.py:154
+msgid "HTML Unchanged."
+msgstr ""
+
+#: Mailman/Cgi/edithtml.py:169
+msgid "HTML successfully updated."
+msgstr ""
+
+#: Mailman/Cgi/listinfo.py:71
+msgid "%(hostname)s Mailing Lists"
+msgstr ""
+
+#: Mailman/Cgi/listinfo.py:103
+msgid ""
+"<p>There currently are no publicly-advertised\n"
+" %(mailmanlink)s mailing lists on %(hostname)s."
+msgstr ""
+
+#: Mailman/Cgi/listinfo.py:107
+msgid ""
+"<p>Below is a listing of all the public mailing lists on\n"
+" %(hostname)s. Click on a list name to get more information about\n"
+" the list, or to subscribe, unsubscribe, and change the preferences\n"
+" on your subscription."
+msgstr ""
+
+#: Mailman/Cgi/listinfo.py:113
+msgid "right"
+msgstr ""
+
+#: Mailman/Cgi/listinfo.py:116
+msgid ""
+" To visit the general information page for an unadvertised list,\n"
+" open a URL similar to this one, but with a '/' and the %(adj)s\n"
+" list name appended.\n"
+" <p>List administrators, you can visit "
+msgstr ""
+
+#: Mailman/Cgi/listinfo.py:121
+msgid "the list admin overview page"
+msgstr ""
+
+#: Mailman/Cgi/listinfo.py:122
+msgid ""
+" to find the management interface for your list.\n"
+" <p>Send questions or comments to "
+msgstr ""
+
+#: Mailman/Cgi/listinfo.py:187
+msgid "Edit Options"
+msgstr ""
+
+#: Mailman/Cgi/listinfo.py:194 Mailman/Cgi/options.py:767
+#: Mailman/Cgi/roster.py:111
+msgid "View this page in"
+msgstr ""
+
+#: Mailman/Cgi/options.py:51 Mailman/Cgi/options.py:68
+msgid "CGI script error"
+msgstr ""
+
+#: Mailman/Cgi/options.py:54
+msgid "Invalid options to CGI script."
+msgstr ""
+
+#: Mailman/Cgi/options.py:96
+msgid "No address given"
+msgstr ""
+
+#: Mailman/Cgi/options.py:108 Mailman/Cgi/options.py:155
+#: Mailman/Cgi/options.py:177
+msgid "No such member: %(safeuser)s."
+msgstr ""
+
+#: Mailman/Cgi/options.py:150 Mailman/Cgi/options.py:160
+msgid "The confirmation email has been sent."
+msgstr ""
+
+#: Mailman/Cgi/options.py:171 Mailman/Cgi/options.py:183
+#: Mailman/Cgi/options.py:226
+msgid "A reminder of your password has been emailed to you."
+msgstr ""
+
+#: Mailman/Cgi/options.py:200
+msgid "Authentication failed."
+msgstr ""
+
+#: Mailman/Cgi/options.py:232
+msgid "List subscriptions for %(user)s on %(hostname)s"
+msgstr ""
+
+#: Mailman/Cgi/options.py:235
+msgid ""
+"Click on a link to visit your options page for the\n"
+" requested mailing list."
+msgstr ""
+
+#: Mailman/Cgi/options.py:284
+msgid "Addresses did not match!"
+msgstr ""
+
+#: Mailman/Cgi/options.py:289
+msgid "You are already using that email address"
+msgstr ""
+
+#: Mailman/Cgi/options.py:301
+msgid ""
+"The new address you requested %(newaddr)s is already a member of the\n"
+"%(listname)s mailing list, however you have also requested a global change of\n"
+"address. Upon confirmation, any other mailing list containing the address\n"
+"%(user)s will be changed. "
+msgstr ""
+
+#: Mailman/Cgi/options.py:310
+msgid "The new address is already a member: %(newaddr)s"
+msgstr ""
+
+#: Mailman/Cgi/options.py:316
+msgid "Addresses may not be blank"
+msgstr ""
+
+#: Mailman/Cgi/options.py:328
+msgid "A confirmation message has been sent to %(newaddr)s. "
+msgstr ""
+
+#: Mailman/Cgi/options.py:337
+msgid "Bad email address provided"
+msgstr ""
+
+#: Mailman/Cgi/options.py:339
+msgid "Illegal email address provided"
+msgstr ""
+
+#: Mailman/Cgi/options.py:341
+msgid "%(newaddr)s is already a member of the list."
+msgstr ""
+
+#: Mailman/Cgi/options.py:350
+msgid "Member name successfully changed. "
+msgstr ""
+
+#: Mailman/Cgi/options.py:361
+msgid "Passwords may not be blank"
+msgstr ""
+
+#: Mailman/Cgi/options.py:366
+msgid "Passwords did not match!"
+msgstr ""
+
+#: Mailman/Cgi/options.py:381 Mailman/Commands/cmd_password.py:79
+#: Mailman/Commands/cmd_password.py:105
+msgid "Password successfully changed."
+msgstr ""
+
+#: Mailman/Cgi/options.py:390
+msgid ""
+"You must confirm your unsubscription request by turning\n"
+" on the checkbox below the <em>Unsubscribe</em> button. You\n"
+" have not been unsubscribed!"
+msgstr ""
+
+#: Mailman/Cgi/options.py:422
+msgid "Unsubscription results"
+msgstr ""
+
+#: Mailman/Cgi/options.py:426
+msgid ""
+"Your unsubscription request has been received and\n"
+" forwarded on to the list moderators for approval. You will\n"
+" receive notification once the list moderators have made their\n"
+" decision."
+msgstr ""
+
+#: Mailman/Cgi/options.py:431
+msgid ""
+"You have been successfully unsubscribed from the\n"
+" mailing list %(fqdn_listname)s. If you were receiving digest\n"
+" deliveries you may get one more digest. If you have any questions\n"
+" about your unsubscription, please contact the list owners at\n"
+" %(owneraddr)s."
+msgstr ""
+
+#: Mailman/Cgi/options.py:582
+msgid ""
+"The list administrator has disabled digest delivery for\n"
+" this list, so your delivery option has not been set. However your\n"
+" other options have been set successfully."
+msgstr ""
+
+#: Mailman/Cgi/options.py:586
+msgid ""
+"The list administrator has disabled non-digest delivery\n"
+" for this list, so your delivery option has not been set. However\n"
+" your other options have been set successfully."
+msgstr ""
+
+#: Mailman/Cgi/options.py:590
+msgid "You have successfully set your options."
+msgstr ""
+
+#: Mailman/Cgi/options.py:593
+msgid "You may get one last digest."
+msgstr ""
+
+#: Mailman/Cgi/options.py:662
+msgid "<em>Yes, I really want to unsubscribe</em>"
+msgstr ""
+
+#: Mailman/Cgi/options.py:666
+msgid "Change My Password"
+msgstr ""
+
+#: Mailman/Cgi/options.py:669
+msgid "List my other subscriptions"
+msgstr ""
+
+#: Mailman/Cgi/options.py:675
+msgid "Email My Password To Me"
+msgstr ""
+
+#: Mailman/Cgi/options.py:677
+msgid "password"
+msgstr ""
+
+#: Mailman/Cgi/options.py:679
+msgid "Log out"
+msgstr ""
+
+#: Mailman/Cgi/options.py:681
+msgid "Submit My Changes"
+msgstr ""
+
+#: Mailman/Cgi/options.py:693
+msgid "days"
+msgstr ""
+
+#: Mailman/Cgi/options.py:695
+msgid "day"
+msgstr ""
+
+#: Mailman/Cgi/options.py:696
+msgid "%(days)d %(units)s"
+msgstr ""
+
+#: Mailman/Cgi/options.py:702
+msgid "Change My Address and Name"
+msgstr ""
+
+#: Mailman/Cgi/options.py:726
+msgid "<em>No topics defined</em>"
+msgstr ""
+
+#: Mailman/Cgi/options.py:734
+msgid ""
+"\n"
+"You are subscribed to this list with the case-preserved address\n"
+"<em>%(cpuser)s</em>."
+msgstr ""
+
+#: Mailman/Cgi/options.py:748
+msgid "%(realname)s list: member options login page"
+msgstr ""
+
+#: Mailman/Cgi/options.py:749
+msgid "email address and "
+msgstr ""
+
+#: Mailman/Cgi/options.py:751
+msgid "%(realname)s list: member options for user %(user)s"
+msgstr ""
+
+#: Mailman/Cgi/options.py:777
+msgid ""
+"In order to change your membership option, you must\n"
+" first log in by giving your %(extra)smembership password in the section\n"
+" below. If you don't remember your membership password, you can have it\n"
+" emailed to you by clicking on the button below. If you just want to\n"
+" unsubscribe from this list, click on the <em>Unsubscribe</em> button and a\n"
+" confirmation message will be sent to you.\n"
+"\n"
+" <p><strong><em>Important:</em></strong> From this point on, you must have\n"
+" cookies enabled in your browser, otherwise none of your changes will take\n"
+" effect.\n"
+" "
+msgstr ""
+
+#: Mailman/Cgi/options.py:791
+msgid "Email address:"
+msgstr ""
+
+#: Mailman/Cgi/options.py:795
+msgid "Password:"
+msgstr ""
+
+#: Mailman/Cgi/options.py:797
+msgid "Log in"
+msgstr ""
+
+#: Mailman/Cgi/options.py:805
+msgid ""
+"By clicking on the <em>Unsubscribe</em> button, a\n"
+" confirmation message will be emailed to you. This message will have a\n"
+" link that you should click on to complete the removal process (you can\n"
+" also confirm by email; see the instructions in the confirmation\n"
+" message)."
+msgstr ""
+
+#: Mailman/Cgi/options.py:813
+msgid "Password reminder"
+msgstr ""
+
+#: Mailman/Cgi/options.py:817
+msgid ""
+"By clicking on the <em>Remind</em> button, your\n"
+" password will be emailed to you."
+msgstr ""
+
+#: Mailman/Cgi/options.py:820
+msgid "Remind"
+msgstr ""
+
+#: Mailman/Cgi/options.py:920
+msgid "<missing>"
+msgstr ""
+
+#: Mailman/Cgi/options.py:931
+msgid "Requested topic is not valid: %(topicname)s"
+msgstr ""
+
+#: Mailman/Cgi/options.py:936
+msgid "Topic filter details"
+msgstr ""
+
+#: Mailman/Cgi/options.py:939
+msgid "Name:"
+msgstr ""
+
+#: Mailman/Cgi/options.py:941
+msgid "Pattern (as regexp):"
+msgstr ""
+
+#: Mailman/Cgi/private.py:61
+msgid "Private Archive Error"
+msgstr ""
+
+#: Mailman/Cgi/private.py:62
+msgid "You must specify a list."
+msgstr ""
+
+#: Mailman/Cgi/private.py:99
+msgid "Private Archive Error - %(msg)s"
+msgstr ""
+
+#: Mailman/Cgi/private.py:154
+msgid "Private archive file not found"
+msgstr ""
+
+#: Mailman/Cgi/rmlist.py:81
+msgid "You're being a sneaky list owner!"
+msgstr ""
+
+#: Mailman/Cgi/rmlist.py:119
+msgid "You are not authorized to delete this mailing list"
+msgstr ""
+
+#: Mailman/Cgi/rmlist.py:160
+msgid "Mailing list deletion results"
+msgstr ""
+
+#: Mailman/Cgi/rmlist.py:167
+msgid ""
+"You have successfully deleted the mailing list\n"
+" <b>%(listname)s</b>."
+msgstr ""
+
+#: Mailman/Cgi/rmlist.py:171
+msgid ""
+"There were some problems deleting the mailing list\n"
+" <b>%(listname)s</b>. Contact your site administrator at %(sitelist)s\n"
+" for details."
+msgstr ""
+
+#: Mailman/Cgi/rmlist.py:188
+msgid "Permanently remove mailing list <em>%(realname)s</em>"
+msgstr ""
+
+#: Mailman/Cgi/rmlist.py:202
+msgid ""
+"This page allows you as the list owner, to permanent\n"
+" remove this mailing list from the system. <strong>This action is not\n"
+" undoable</strong> so you should undertake it only if you are absolutely\n"
+" sure this mailing list has served its purpose and is no longer necessary.\n"
+"\n"
+" <p>Note that no warning will be sent to your list members and after this\n"
+" action, any subsequent messages sent to the mailing list, or any of its\n"
+" administrative addreses will bounce.\n"
+"\n"
+" <p>You also have the option of removing the archives for this mailing list\n"
+" at this time. It is almost always recommended that you do\n"
+" <strong>not</strong> remove the archives, since they serve as the\n"
+" historical record of your mailing list.\n"
+"\n"
+" <p>For your safety, you will be asked to reconfirm the list password.\n"
+" "
+msgstr ""
+
+#: Mailman/Cgi/rmlist.py:223
+msgid "List password:"
+msgstr ""
+
+#: Mailman/Cgi/rmlist.py:227
+msgid "Also delete archives?"
+msgstr ""
+
+#: Mailman/Cgi/rmlist.py:235
+msgid "<b>Cancel</b> and return to list administration"
+msgstr ""
+
+#: Mailman/Cgi/rmlist.py:238
+msgid "Delete this list"
+msgstr ""
+
+#: Mailman/Cgi/roster.py:48 Mailman/Cgi/subscribe.py:50
+msgid "Invalid options to CGI script"
+msgstr ""
+
+#: Mailman/Cgi/roster.py:99
+msgid "%(realname)s roster authentication failed."
+msgstr ""
+
+#: Mailman/Cgi/roster.py:127 Mailman/Cgi/roster.py:128
+#: Mailman/Cgi/subscribe.py:49 Mailman/Cgi/subscribe.py:60
+msgid "Error"
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:109
+msgid "You must supply a valid email address."
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:122
+msgid "You may not subscribe a list to itself!"
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:131
+msgid "If you supply a password, you must confirm it."
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:133
+msgid "Your passwords did not match."
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:167
+msgid ""
+"Your subscription request has been received, and will soon be acted upon.\n"
+"Depending on the configuration of this mailing list, your subscription request\n"
+"may have to be first confirmed by you via email, or approved by the list\n"
+"moderator. If confirmation is required, you will soon get a confirmation\n"
+"email which contains further instructions."
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:181
+msgid ""
+"The email address you supplied is banned from this\n"
+" mailing list. If you think this restriction is erroneous, please\n"
+" contact the list owners at %(listowner)s."
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:185
+msgid ""
+"The email address you supplied is not valid. (E.g. it must contain an\n"
+"`@'.)"
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:189
+msgid ""
+"Your subscription is not allowed because the email address you gave is\n"
+"insecure."
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:197
+msgid ""
+"Confirmation from your email address is required, to prevent anyone from\n"
+"subscribing you without permission. Instructions are being sent to you at\n"
+"%(email)s. Please note your subscription will not start until you confirm\n"
+"your subscription."
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:209
+msgid ""
+"Your subscription request was deferred because %(x)s. Your request has been\n"
+"forwarded to the list moderator. You will receive email informing you of the\n"
+"moderator's decision when they get to your request."
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:216 Mailman/Commands/cmd_confirm.py:60
+msgid "You are already subscribed."
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:230
+msgid "Mailman privacy alert"
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:231
+msgid ""
+"An attempt was made to subscribe your address to the mailing list\n"
+"%(listaddr)s. You are already subscribed to this mailing list.\n"
+"\n"
+"Note that the list membership is not public, so it is possible that a bad\n"
+"person was trying to probe the list for its membership. This would be a\n"
+"privacy violation if we let them do this, but we didn't.\n"
+"\n"
+"If you submitted the subscription request and forgot that you were already\n"
+"subscribed to the list, then you can ignore this message. If you suspect that\n"
+"an attempt is being made to covertly discover whether you are a member of this\n"
+"list, and you are worried about your privacy, then feel free to send a message\n"
+"to the list administrator at %(listowner)s.\n"
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:250
+msgid "This list does not support digest delivery."
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:252
+msgid "This list only supports digest delivery."
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:259
+msgid "You have been successfully subscribed to the %(realname)s mailing list."
+msgstr ""
+
+#: Mailman/Commands/cmd_confirm.py:17
+#, docstring
+msgid ""
+"\n"
+" confirm <confirmation-string>\n"
+" Confirm an action. The confirmation-string is required and should be\n"
+" supplied with in mailback confirmation notice.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_confirm.py:40 Mailman/Commands/cmd_lists.py:40
+#: Mailman/Commands/cmd_set.py:133 Mailman/Commands/cmd_subscribe.py:69
+#: Mailman/Commands/cmd_unsubscribe.py:52 Mailman/Commands/cmd_who.py:65
+msgid "Usage:"
+msgstr ""
+
+#: Mailman/Commands/cmd_confirm.py:49
+msgid ""
+"Invalid confirmation string. Note that confirmation strings expire\n"
+"approximately %(days)s days after the initial subscription request. If your\n"
+"confirmation has expired, please try to re-submit your original request or\n"
+"message."
+msgstr ""
+
+#: Mailman/Commands/cmd_confirm.py:55
+msgid "Your request has been forwarded to the list moderator for approval."
+msgstr ""
+
+#: Mailman/Commands/cmd_confirm.py:63
+msgid ""
+"You are not current a member. Have you already unsubscribed or changed\n"
+"your email address?"
+msgstr ""
+
+#: Mailman/Commands/cmd_confirm.py:73
+msgid "Confirmation succeeded"
+msgstr ""
+
+#: Mailman/Commands/cmd_echo.py:17
+#, docstring
+msgid ""
+"\n"
+" echo [args]\n"
+" Simply echo an acknowledgement. Args are echoed back unchanged.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_end.py:17
+#, docstring
+msgid ""
+"\n"
+" end\n"
+" Stop processing commands. Use this if your mail program automatically\n"
+" adds a signature file.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_help.py:17
+#, docstring
+msgid ""
+"\n"
+" help\n"
+" Print this help message.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_help.py:47
+msgid "You can access your personal options via the following url:"
+msgstr ""
+
+#: Mailman/Commands/cmd_info.py:17
+#, docstring
+msgid ""
+"\n"
+" info\n"
+" Get information about this mailing list.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_info.py:39 Mailman/Commands/cmd_lists.py:62
+msgid "n/a"
+msgstr ""
+
+#: Mailman/Commands/cmd_info.py:44
+msgid "List name: %(listname)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_info.py:45
+msgid "Description: %(description)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_info.py:46
+msgid "Postings to: %(postaddr)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_info.py:47
+msgid "List Helpbot: %(requestaddr)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_info.py:48
+msgid "List Owners: %(owneraddr)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_info.py:49
+msgid "More information: %(listurl)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_join.py:17
+#, docstring
+msgid ""
+"The `join' command is synonymous with `subscribe'.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_leave.py:17
+#, docstring
+msgid ""
+"The `leave' command is synonymous with `unsubscribe'.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_lists.py:17
+#, docstring
+msgid ""
+"\n"
+" lists\n"
+" See a list of the public mailing lists on this GNU Mailman server.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_lists.py:44
+msgid "Public mailing lists at %(hostname)s:"
+msgstr ""
+
+#: Mailman/Commands/cmd_lists.py:66
+msgid "%(i)3d. List name: %(realname)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_lists.py:67
+msgid " Description: %(description)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_lists.py:68
+msgid " Requests to: %(requestaddr)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_password.py:17
+#, docstring
+msgid ""
+"\n"
+" password [<oldpassword> <newpassword>] [address=<address>]\n"
+" Retrieve or change your password. With no arguments, this returns\n"
+" your current password. With arguments <oldpassword> and <newpassword>\n"
+" you can change your password.\n"
+"\n"
+" If you're posting from an address other than your membership address,\n"
+" specify your membership address with `address=<address>' (no brackets\n"
+" around the email address, and no quotes!). Note that in this case the\n"
+" response is always sent to the subscribed address.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_password.py:51 Mailman/Commands/cmd_password.py:64
+msgid "Your password is: %(password)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_password.py:55 Mailman/Commands/cmd_password.py:68
+#: Mailman/Commands/cmd_password.py:91 Mailman/Commands/cmd_password.py:117
+#: Mailman/Commands/cmd_set.py:149 Mailman/Commands/cmd_set.py:219
+msgid "You are not a member of the %(listname)s mailing list"
+msgstr ""
+
+#: Mailman/Commands/cmd_password.py:81 Mailman/Commands/cmd_password.py:107
+msgid ""
+"You did not give the correct old password, so your password has not been\n"
+"changed. Use the no argument version of the password command to retrieve your\n"
+"current password, then try again."
+msgstr ""
+
+#: Mailman/Commands/cmd_password.py:85 Mailman/Commands/cmd_password.py:111
+msgid ""
+"\n"
+"Usage:"
+msgstr ""
+
+#: Mailman/Commands/cmd_remove.py:17
+#, docstring
+msgid ""
+"The `remove' command is synonymous with `unsubscribe'.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:26
+msgid ""
+"\n"
+" set ...\n"
+" Set or view your membership options.\n"
+"\n"
+" Use `set help' (without the quotes) to get a more detailed list of the\n"
+" options you can change.\n"
+"\n"
+" Use `set show' (without the quotes) to view your current option\n"
+" settings.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:37
+msgid ""
+"\n"
+" set help\n"
+" Show this detailed help.\n"
+"\n"
+" set show [address=<address>]\n"
+" View your current option settings. If you're posting from an address\n"
+" other than your membership address, specify your membership address\n"
+" with `address=<address>' (no brackets around the email address, and no\n"
+" quotes!).\n"
+"\n"
+" set authenticate <password> [address=<address>]\n"
+" To set any of your options, you must include this command first, along\n"
+" with your membership password. If you're posting from an address\n"
+" other than your membership address, specify your membership address\n"
+" with `address=<address>' (no brackets around the email address, and no\n"
+" quotes!).\n"
+"\n"
+" set ack on\n"
+" set ack off\n"
+" When the `ack' option is turned on, you will receive an\n"
+" acknowledgement message whenever you post a message to the list.\n"
+"\n"
+" set digest plain\n"
+" set digest mime\n"
+" set digest off\n"
+" When the `digest' option is turned off, you will receive postings\n"
+" immediately when they are posted. Use `set digest plain' if instead\n"
+" you want to receive postings bundled into a plain text digest\n"
+" (i.e. RFC 1153 digest). Use `set digest mime' if instead you want to\n"
+" receive postings bundled together into a MIME digest.\n"
+"\n"
+" set delivery on\n"
+" set delivery off\n"
+" Turn delivery on or off. This does not unsubscribe you, but instead\n"
+" tells Mailman not to deliver messages to you for now. This is useful\n"
+" if you're going on vacation. Be sure to use `set delivery on' when\n"
+" you return from vacation!\n"
+"\n"
+" set myposts on\n"
+" set myposts off\n"
+" Use `set myposts off' to not receive copies of messages you post to\n"
+" the list. This has no effect if you're receiving digests.\n"
+"\n"
+" set hide on\n"
+" set hide off\n"
+" Use `set hide on' to conceal your email address when people request\n"
+" the membership list.\n"
+"\n"
+" set duplicates on\n"
+" set duplicates off\n"
+" Use `set duplicates off' if you want Mailman to not send you messages\n"
+" if your address is explicitly mentioned in the To: or Cc: fields of\n"
+" the message. This can reduce the number of duplicate postings you\n"
+" will receive.\n"
+"\n"
+" set reminders on\n"
+" set reminders off\n"
+" Use `set reminders off' if you want to disable the monthly password\n"
+" reminder for this mailing list.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:122
+msgid "Bad set command: %(subcmd)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:151
+msgid "Your current option settings:"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:153 Mailman/Commands/cmd_set.py:191
+#: Mailman/Commands/cmd_set.py:194 Mailman/Commands/cmd_set.py:198
+#: Mailman/Commands/cmd_set.py:202
+msgid "off"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:153 Mailman/Commands/cmd_set.py:191
+#: Mailman/Commands/cmd_set.py:194 Mailman/Commands/cmd_set.py:198
+#: Mailman/Commands/cmd_set.py:202
+msgid "on"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:154
+msgid " ack %(onoff)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:160
+msgid " digest plain"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:162
+msgid " digest mime"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:164
+msgid " digest off"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:169
+msgid "delivery on"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:171 Mailman/Commands/cmd_set.py:174
+#: Mailman/Commands/cmd_set.py:177 Mailman/Commands/cmd_set.py:181
+msgid "delivery off"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:172
+msgid "by you"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:175
+msgid "by the admin"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:178
+msgid "due to bounces"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:186
+msgid " %(status)s (%(how)s on %(date)s)"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:192
+msgid " myposts %(onoff)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:195
+msgid " hide %(onoff)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:199
+msgid " duplicates %(onoff)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:203
+msgid " reminders %(onoff)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:224
+msgid "You did not give the correct password"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:236 Mailman/Commands/cmd_set.py:283
+msgid "Bad argument: %(arg)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:241 Mailman/Commands/cmd_set.py:261
+msgid "Not authenticated"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:254
+msgid "ack option set"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:286
+msgid "digest option set"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:298
+msgid "delivery option set"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:310
+msgid "myposts option set"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:321
+msgid "hide option set"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:333
+msgid "duplicates option set"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:345
+msgid "reminder option set"
+msgstr ""
+
+#: Mailman/Commands/cmd_stop.py:17
+#, docstring
+msgid ""
+"stop is synonymous with the end command.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:17
+#, docstring
+msgid ""
+"\n"
+" subscribe [password] [digest|nodigest] [address=<address>]\n"
+" Subscribe to this mailing list. Your password must be given to\n"
+" unsubscribe or change your options, but if you omit the password, one\n"
+" will be generated for you. You may be periodically reminded of your\n"
+" password.\n"
+"\n"
+" The next argument may be either: `nodigest' or `digest' (no quotes!).\n"
+" If you wish to subscribe an address other than the address you sent\n"
+" this request from, you may specify `address=<address>' (no brackets\n"
+" around the email address, and no quotes!)\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:62
+msgid "Bad digest specifier: %(arg)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:84
+msgid "No valid address found to subscribe"
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:102
+msgid ""
+"The email address you supplied is banned from this mailing list.\n"
+"If you think this restriction is erroneous, please contact the list\n"
+"owners at %(listowner)s."
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:108
+msgid ""
+"Mailman won't accept the given email address as a valid address.\n"
+"(E.g. it must have an @ in it.)"
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:113
+msgid ""
+"Your subscription is not allowed because\n"
+"the email address you gave is insecure."
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:118
+msgid "You are already subscribed!"
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:122
+msgid "No one can subscribe to the digest of this list!"
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:125
+msgid "This list only supports digest subscriptions!"
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:131
+msgid ""
+"Your subscription request has been forwarded to the list administrator\n"
+"at %(listowner)s for review."
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:136
+msgid "Subscription request succeeded."
+msgstr ""
+
+#: Mailman/Commands/cmd_unsubscribe.py:17
+#, docstring
+msgid ""
+"\n"
+" unsubscribe [password] [address=<address>]\n"
+" Unsubscribe from the mailing list. If given, your password must match\n"
+" your current password. If omitted, a confirmation email will be sent\n"
+" to the unsubscribing address. If you wish to unsubscribe an address\n"
+" other than the address you sent this request from, you may specify\n"
+" `address=<address>' (no brackets around the email address, and no\n"
+" quotes!)\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_unsubscribe.py:62
+msgid "%(address)s is not a member of the %(listname)s mailing list"
+msgstr ""
+
+#: Mailman/Commands/cmd_unsubscribe.py:69
+msgid ""
+"Your unsubscription request has been forwarded to the list administrator for\n"
+"approval."
+msgstr ""
+
+#: Mailman/Commands/cmd_unsubscribe.py:84
+msgid "You gave the wrong password"
+msgstr ""
+
+#: Mailman/Commands/cmd_unsubscribe.py:87
+msgid "Unsubscription request succeeded."
+msgstr ""
+
+#: Mailman/Commands/cmd_who.py:29
+msgid ""
+"\n"
+" who\n"
+" See everyone who is on this mailing list.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_who.py:34
+msgid ""
+"\n"
+" who password [address=<address>]\n"
+" See everyone who is on this mailing list. The roster is limited to\n"
+" list members only, and you must supply your membership password to\n"
+" retrieve it. If you're posting from an address other than your\n"
+" membership address, specify your membership address with\n"
+" `address=<address>' (no brackets around the email address, and no\n"
+" quotes!)\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_who.py:44
+msgid ""
+"\n"
+" who password\n"
+" See everyone who is on this mailing list. The roster is limited to\n"
+" list administrators and moderators only; you must supply the list\n"
+" admin or moderator password to retrieve the roster.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_who.py:110
+msgid "You are not allowed to retrieve the list membership."
+msgstr ""
+
+#: Mailman/Commands/cmd_who.py:116
+msgid "This list has no members."
+msgstr ""
+
+#: Mailman/Commands/cmd_who.py:129
+msgid "Non-digest (regular) members:"
+msgstr ""
+
+#: Mailman/Commands/cmd_who.py:132
+msgid "Digest members:"
+msgstr ""
+
+#: Mailman/Defaults.py:1204
+msgid "Traditional Chinese"
+msgstr ""
+
+#: Mailman/Defaults.py:1205
+msgid "Czech"
+msgstr ""
+
+#: Mailman/Defaults.py:1206
+msgid "German"
+msgstr ""
+
+#: Mailman/Defaults.py:1207
+msgid "English (USA)"
+msgstr ""
+
+#: Mailman/Defaults.py:1208
+msgid "Spanish (Spain)"
+msgstr ""
+
+#: Mailman/Defaults.py:1209
+msgid "Estonian"
+msgstr ""
+
+#: Mailman/Defaults.py:1210
+msgid "Finnish"
+msgstr ""
+
+#: Mailman/Defaults.py:1211
+msgid "French"
+msgstr ""
+
+#: Mailman/Defaults.py:1212
+msgid "Simplified Chinese"
+msgstr ""
+
+#: Mailman/Defaults.py:1213
+msgid "Hungarian"
+msgstr ""
+
+#: Mailman/Defaults.py:1214
+msgid "Italian"
+msgstr ""
+
+#: Mailman/Defaults.py:1215
+msgid "Japanese"
+msgstr ""
+
+#: Mailman/Defaults.py:1216
+msgid "Korean"
+msgstr ""
+
+#: Mailman/Defaults.py:1217
+msgid "Lithuanian"
+msgstr ""
+
+#: Mailman/Defaults.py:1218
+msgid "Dutch"
+msgstr ""
+
+#: Mailman/Defaults.py:1219
+msgid "Norwegian"
+msgstr ""
+
+#: Mailman/Defaults.py:1220
+msgid "Portuguese (Brazil)"
+msgstr ""
+
+#: Mailman/Defaults.py:1221
+msgid "Russian"
+msgstr ""
+
+#: Mailman/Defaults.py:1222
+msgid "Swedish"
+msgstr ""
+
+#: Mailman/Deliverer.py:43
+msgid ""
+"Note: Since this is a list of mailing lists, administrative\n"
+"notices like the password reminder will be sent to\n"
+"your membership administrative address, %(addr)s."
+msgstr ""
+
+#: Mailman/Deliverer.py:62
+msgid " (Digest mode)"
+msgstr ""
+
+#: Mailman/Deliverer.py:68
+msgid "Welcome to the \"%(realname)s\" mailing list%(digmode)s"
+msgstr ""
+
+#: Mailman/Deliverer.py:77
+msgid "You have been unsubscribed from the %(realname)s mailing list"
+msgstr ""
+
+#: Mailman/Deliverer.py:104
+msgid "%(listfullname)s mailing list reminder"
+msgstr ""
+
+#: Mailman/Errors.py:114
+msgid "For some unknown reason"
+msgstr ""
+
+#: Mailman/Errors.py:120 Mailman/Errors.py:143
+msgid "Your message was rejected"
+msgstr ""
+
+#: Mailman/Gui/Archive.py:25
+msgid "Archiving Options"
+msgstr ""
+
+#: Mailman/Gui/Archive.py:31
+msgid "List traffic archival policies."
+msgstr ""
+
+#: Mailman/Gui/Archive.py:34
+msgid "Archive messages?"
+msgstr ""
+
+#: Mailman/Gui/Archive.py:36
+msgid "private"
+msgstr ""
+
+#: Mailman/Gui/Archive.py:36
+msgid "public"
+msgstr ""
+
+#: Mailman/Gui/Archive.py:37
+msgid "Is archive file source for public or private archival?"
+msgstr ""
+
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Monthly"
+msgstr ""
+
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Quarterly"
+msgstr ""
+
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Yearly"
+msgstr ""
+
+#: Mailman/Gui/Archive.py:41 Mailman/Gui/Digest.py:79
+msgid "Daily"
+msgstr ""
+
+#: Mailman/Gui/Archive.py:41 Mailman/Gui/Digest.py:79
+msgid "Weekly"
+msgstr ""
+
+#: Mailman/Gui/Archive.py:43
+msgid "How often should a new archive volume be started?"
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:31
+msgid "Auto-responder"
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:39
+msgid ""
+"Auto-responder characteristics.<p>\n"
+"\n"
+"In the text fields below, string interpolation is performed with\n"
+"the following key/value substitutions:\n"
+"<p><ul>\n"
+" <li><b>listname</b> - <em>gets the name of the mailing list</em>\n"
+" <li><b>listurl</b> - <em>gets the list's listinfo URL</em>\n"
+" <li><b>requestemail</b> - <em>gets the list's -request address</em>\n"
+" <li><b>owneremail</b> - <em>gets the list's -owner address</em>\n"
+"</ul>\n"
+"\n"
+"<p>For each text field, you can either enter the text directly into the text\n"
+"box, or you can specify a file on your local system to upload as the text."
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:55
+msgid ""
+"Should Mailman send an auto-response to mailing list\n"
+" posters?"
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:60
+msgid "Auto-response text to send to mailing list posters."
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:63
+msgid ""
+"Should Mailman send an auto-response to emails sent to the\n"
+" -owner address?"
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:68
+msgid "Auto-response text to send to -owner emails."
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:71
+msgid "Yes, w/discard"
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:71
+msgid "Yes, w/forward"
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:72
+msgid ""
+"Should Mailman send an auto-response to emails sent to the\n"
+" -request address? If you choose yes, decide whether you want\n"
+" Mailman to discard the original email, or forward it on to the\n"
+" system as a normal mail command."
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:79
+msgid "Auto-response text to send to -request emails."
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:82
+msgid ""
+"Number of days between auto-responses to either the mailing\n"
+" list or -request/-owner address from the same poster. Set to\n"
+" zero (or negative) for no grace period (i.e. auto-respond to\n"
+" every message)."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:26
+msgid "Bounce processing"
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:32
+msgid ""
+"These policies control the automatic bounce processing system\n"
+" in Mailman. Here's an overview of how it works.\n"
+"\n"
+" <p>When a bounce is received, Mailman tries to extract two pieces\n"
+" of information from the message: the address of the member the\n"
+" message was intended for, and the severity of the problem causing\n"
+" the bounce. The severity can be either <em>hard</em> or\n"
+" <em>soft</em> meaning either a fatal error occurred, or a\n"
+" transient error occurred. When in doubt, a hard severity is used.\n"
+"\n"
+" <p>If no member address can be extracted from the bounce, then the\n"
+" bounce is usually discarded. Otherwise, each member is assigned a\n"
+" <em>bounce score</em> and every time we encounter a bounce from\n"
+" this member we increment the score. Hard bounces increment by 1\n"
+" while soft bounces increment by 0.5. We only increment the bounce\n"
+" score once per day, so even if we receive ten hard bounces from a\n"
+" member per day, their score will increase by only 1 for that day.\n"
+"\n"
+" <p>When a member's bounce score is greater than the\n"
+" <a href=\"?VARHELP=bounce/bounce_score_threshold\">bounce score\n"
+" threshold</a>, the subscription is disabled. Once disabled, the\n"
+" member will not receive any postings from the list until their\n"
+" membership is explicitly re-enabled (either by the list\n"
+" administrator or the user). However, they will receive occasional\n"
+" reminders that their membership has been disabled, and these\n"
+" reminders will include information about how to re-enable their\n"
+" membership.\n"
+"\n"
+" <p>You can control both the\n"
+" <a href=\"?VARHELP=bounce/bounce_you_are_disabled_warnings\">number\n"
+" of reminders</a> the member will receive and the\n"
+" <a href=\"?VARHELP=bounce/bounce_you_are_disabled_warnings_interval\"\n"
+" >frequency</a> with which these reminders are sent.\n"
+"\n"
+" <p>There is one other important configuration variable; after a\n"
+" certain period of time -- during which no bounces from the member\n"
+" are received -- the bounce information is\n"
+" <a href=\"?VARHELP=bounce/bounce_info_stale_after\">considered\n"
+" stale</a> and discarded. Thus by adjusting this value, and the\n"
+" score threshold, you can control how quickly bouncing members are\n"
+" disabled. You should tune both of these to the frequency and\n"
+" traffic volume of your list."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:75
+msgid "Bounce detection sensitivity"
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:78
+msgid "Should Mailman perform automatic bounce processing?"
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:79
+msgid ""
+"By setting this value to <em>No</em>, you disable all\n"
+" automatic bounce processing for this list, however bounce\n"
+" messages will still be discarded so that the list administrator\n"
+" isn't inundated with them."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:85
+msgid ""
+"The maximum member bounce score before the member's\n"
+" subscription is disabled. This value can be a floating point\n"
+" number."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:90
+msgid ""
+"The number of days after which a member's bounce information\n"
+" is discarded, if no new bounces have been received in the\n"
+" interim. This value must be an integer."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:95
+msgid ""
+"How many <em>Your Membership Is Disabled</em> warnings a\n"
+" disabled member should get before their address is removed from\n"
+" the mailing list. Set to 0 to immediately remove an address from\n"
+" the list once their bounce score exceeds the threshold. This\n"
+" value must be an integer."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:102
+msgid ""
+"The number of days between sending the <em>Your Membership\n"
+" Is Disabled</em> warnings. This value must be an integer."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:105 Mailman/Gui/General.py:257
+msgid "Notifications"
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:109
+msgid ""
+"Should Mailman send you, the list owner, any bounce messages\n"
+" that failed to be detected by the bounce processor? <em>Yes</em>\n"
+" is recommended."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:112
+msgid ""
+"While Mailman's bounce detector is fairly robust, it's\n"
+" impossible to detect every bounce format in the world. You\n"
+" should keep this variable set to <em>Yes</em> for two reasons: 1)\n"
+" If this really is a permanent bounce from one of your members,\n"
+" you should probably manually remove them from your list, and 2)\n"
+" you might want to send the message on to the Mailman developers\n"
+" so that this new format can be added to its known set.\n"
+"\n"
+" <p>If you really can't be bothered, then set this variable to\n"
+" <em>No</em> and all non-detected bounces will be discarded\n"
+" without further processing.\n"
+"\n"
+" <p><b>Note:</b> This setting will also affect all messages sent\n"
+" to your list's -admin address. This address is deprecated and\n"
+" should never be used, but some people may still send mail to this\n"
+" address. If this happens, and this variable is set to\n"
+" <em>No</em> those messages too will get discarded. You may want\n"
+" to set up an\n"
+" <a href=\"?VARHELP=autoreply/autoresponse_admin_text\">autoresponse\n"
+" message</a> for email to the -owner and -admin address."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:135
+msgid ""
+"Should Mailman notify you, the list owner, when bounces\n"
+" cause a member's subscription to be disabled?"
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:137
+msgid ""
+"By setting this value to <em>No</em>, you turn off\n"
+" notification messages that are normally sent to the list owners\n"
+" when a member's delivery is disabled due to excessive bounces.\n"
+" An attempt to notify the member will always be made."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:144
+msgid ""
+"Should Mailman notify you, the list owner, when bounces\n"
+" cause a member to be unsubscribed?"
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:146
+msgid ""
+"By setting this value to <em>No</em>, you turn off\n"
+" notification messages that are normally sent to the list owners\n"
+" when a member is unsubscribed due to excessive bounces. An\n"
+" attempt to notify the member will always be made."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:173
+msgid ""
+"Bad value for <a href=\"?VARHELP=bounce/%(property)s\"\n"
+" >%(property)s</a>: %(val)s"
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:30
+msgid "Content&nbsp;filtering"
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:37
+msgid "Forward to List Owner"
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:39
+msgid "Preserve"
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:42
+msgid ""
+"Policies concerning the content of list traffic.\n"
+"\n"
+" <p>Content filtering works like this: when a message is\n"
+" received by the list and you have enabled content filtering, the\n"
+" individual attachments are first compared to the\n"
+" <a href=\"?VARHELP=contentfilter/filter_mime_types\">filter\n"
+" types</a>. If the attachment type matches an entry in the filter\n"
+" types, it is discarded.\n"
+"\n"
+" <p>Then, if there are <a\n"
+" href=\"?VARHELP=contentfilter/pass_mime_types\">pass types</a>\n"
+" defined, any attachment type that does <em>not</em> match a\n"
+" pass type is also discarded. If there are no pass types defined,\n"
+" this check is skipped.\n"
+"\n"
+" <p>After this initial filtering, any <tt>multipart</tt>\n"
+" attachments that are empty are removed. If the outer message is\n"
+" left empty after this filtering, then the whole message is\n"
+" discarded. Then, each <tt>multipart/alternative</tt> section will\n"
+" be replaced by just the first alternative that is non-empty after\n"
+" filtering.\n"
+"\n"
+" <p>Finally, any <tt>text/html</tt> parts that are left in the\n"
+" message may be converted to <tt>text/plain</tt> if\n"
+" <a href=\"?VARHELP=contentfilter/convert_html_to_plaintext\"\n"
+" >convert_html_to_plaintext</a> is enabled and the site is\n"
+" configured to allow these conversions."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:71
+msgid ""
+"Should Mailman filter the content of list traffic according\n"
+" to the settings below?"
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:75
+msgid ""
+"Remove message attachments that have a matching content\n"
+" type."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:78
+msgid ""
+"Use this option to remove each message attachment that\n"
+" matches one of these content types. Each line should contain a\n"
+" string naming a MIME <tt>type/subtype</tt>,\n"
+" e.g. <tt>image/gif</tt>. Leave off the subtype to remove all\n"
+" parts with a matching major content type, e.g. <tt>image</tt>.\n"
+"\n"
+" <p>Blank lines are ignored.\n"
+"\n"
+" <p>See also <a href=\"?VARHELP=contentfilter/pass_mime_types\"\n"
+" >pass_mime_types</a> for a content type whitelist."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:90
+msgid ""
+"Remove message attachments that don't have a matching\n"
+" content type. Leave this field blank to skip this filter\n"
+" test."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:94
+msgid ""
+"Use this option to remove each message attachment that does\n"
+" not have a matching content type. Requirements and formats are\n"
+" exactly like <a href=\"?VARHELP=contentfilter/filter_mime_types\"\n"
+" >filter_mime_types</a>.\n"
+"\n"
+" <p><b>Note:</b> if you add entries to this list but don't add\n"
+" <tt>multipart</tt> to this list, any messages with attachments\n"
+" will be rejected by the pass filter."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:104
+msgid ""
+"Should Mailman convert <tt>text/html</tt> parts to plain\n"
+" text? This conversion happens after MIME attachments have been\n"
+" stripped."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:110
+msgid ""
+"Action to take when a message matches the content filtering\n"
+" rules."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:113
+msgid ""
+"One of these actions is take when the message matches one of\n"
+" the content filtering rules, meaning, the top-level\n"
+" content type matches one of the <a\n"
+" href=\"?VARHELP=contentfilter/filter_mime_types\"\n"
+" >filter_mime_types</a>, or the top-level content type does\n"
+" <strong>not</strong> match one of the\n"
+" <a href=\"?VARHELP=contentfilter/pass_mime_types\"\n"
+" >pass_mime_types</a>, or if after filtering the subparts of the\n"
+" message, the message ends up empty.\n"
+"\n"
+" <p>Note this action is not taken if after filtering the message\n"
+" still contains content. In that case the message is always\n"
+" forwarded on to the list membership.\n"
+"\n"
+" <p>When messages are discarded, a log entry is written\n"
+" containing the Message-ID of the discarded message. When\n"
+" messages are rejected or forwarded to the list owner, a reason\n"
+" for the rejection is included in the bounce message to the\n"
+" original author. When messages are preserved, they are saved in\n"
+" a special queue directory on disk for the site administrator to\n"
+" view (and possibly rescue) but otherwise discarded. This last\n"
+" option is only available if enabled by the site\n"
+" administrator."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:154
+msgid "Bad MIME type ignored: %(spectype)s"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:36
+msgid "Digest options"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:44
+msgid "Batched-delivery digest characteristics."
+msgstr ""
+
+#: Mailman/Gui/Digest.py:47
+msgid "Can list members choose to receive list traffic bunched in digests?"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:51
+msgid "Digest"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:51
+msgid "Regular"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:52
+msgid "Which delivery mode is the default for new users?"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:55
+msgid "MIME"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:55
+msgid "Plain"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:56
+msgid "When receiving digests, which format is default?"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:59
+msgid "How big in Kb should a digest be before it gets sent out?"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:63
+msgid "Should a digest be dispatched daily when the size threshold isn't reached?"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:67
+msgid "Header added to every digest"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:68
+msgid "Text attached (as an initial message, before the table of contents) to the top of digests. "
+msgstr ""
+
+#: Mailman/Gui/Digest.py:73
+msgid "Footer added to every digest"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:74
+msgid "Text attached (as a final message) to the bottom of digests. "
+msgstr ""
+
+#: Mailman/Gui/Digest.py:80
+msgid "How often should a new digest volume be started?"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:81
+msgid ""
+"When a new digest volume is started, the volume number is\n"
+" incremented and the issue number is reset to 1."
+msgstr ""
+
+#: Mailman/Gui/Digest.py:85
+msgid "Should Mailman start a new digest volume?"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:86
+msgid ""
+"Setting this option instructs Mailman to start a new volume\n"
+" with the next digest sent out."
+msgstr ""
+
+#: Mailman/Gui/Digest.py:90
+msgid ""
+"Should Mailman send the next digest right now, if it is not\n"
+" empty?"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:145
+msgid ""
+"The next digest will be sent as volume\n"
+" %(volume)s, number %(number)s"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:150
+msgid "A digest has been sent."
+msgstr ""
+
+#: Mailman/Gui/Digest.py:152
+msgid "There was no digest to send."
+msgstr ""
+
+#: Mailman/Gui/GUIBase.py:149
+msgid "Invalid value for variable: %(property)s"
+msgstr ""
+
+#: Mailman/Gui/GUIBase.py:153
+msgid "Bad email address for option %(property)s: %(val)s"
+msgstr ""
+
+#: Mailman/Gui/GUIBase.py:179
+msgid ""
+"The following illegal substitution variables were\n"
+" found in the <code>%(property)s</code> string:\n"
+" <code>%(bad)s</code>\n"
+" <p>Your list may not operate properly until you correct this\n"
+" problem."
+msgstr ""
+
+#: Mailman/Gui/GUIBase.py:193
+msgid ""
+"Your <code>%(property)s</code> string appeared to\n"
+" have some correctable problems in its new value.\n"
+" The fixed value will be used instead. Please\n"
+" double check that this is what you intended.\n"
+" "
+msgstr ""
+
+#: Mailman/Gui/General.py:32
+msgid "General Options"
+msgstr ""
+
+#: Mailman/Gui/General.py:46
+msgid "Conceal the member's address"
+msgstr ""
+
+#: Mailman/Gui/General.py:47
+msgid "Acknowledge the member's posting"
+msgstr ""
+
+#: Mailman/Gui/General.py:48
+msgid "Do not send a copy of a member's own post"
+msgstr ""
+
+#: Mailman/Gui/General.py:50
+msgid "Filter out duplicate messages to list members (if possible)"
+msgstr ""
+
+#: Mailman/Gui/General.py:57
+msgid ""
+"Fundamental list characteristics, including descriptive\n"
+" info and basic behaviors."
+msgstr ""
+
+#: Mailman/Gui/General.py:60
+msgid "General list personality"
+msgstr ""
+
+#: Mailman/Gui/General.py:63
+msgid "The public name of this list (make case-changes only)."
+msgstr ""
+
+#: Mailman/Gui/General.py:64
+msgid ""
+"The capitalization of this name can be changed to make it\n"
+" presentable in polite company as a proper noun, or to make an\n"
+" acronym part all upper case, etc. However, the name will be\n"
+" advertised as the email address (e.g., in subscribe confirmation\n"
+" notices), so it should <em>not</em> be otherwise altered. (Email\n"
+" addresses are not case sensitive, but they are sensitive to\n"
+" almost everything else :-)"
+msgstr ""
+
+#: Mailman/Gui/General.py:73
+msgid ""
+"The list administrator email addresses. Multiple\n"
+" administrator addresses, each on separate line is okay."
+msgstr ""
+
+#: Mailman/Gui/General.py:76
+msgid ""
+"There are two ownership roles associated with each mailing\n"
+" list. The <em>list administrators</em> are the people who have\n"
+" ultimate control over all parameters of this mailing list. They\n"
+" are able to change any list configuration variable available\n"
+" through these administration web pages.\n"
+"\n"
+" <p>The <em>list moderators</em> have more limited permissions;\n"
+" they are not able to change any list configuration variable, but\n"
+" they are allowed to tend to pending administration requests,\n"
+" including approving or rejecting held subscription requests, and\n"
+" disposing of held postings. Of course, the <em>list\n"
+" administrators</em> can also tend to pending requests.\n"
+"\n"
+" <p>In order to split the list ownership duties into\n"
+" administrators and moderators, you must\n"
+" <a href=\"passwords\">set a separate moderator password</a>,\n"
+" and also provide the <a href=\"?VARHELP=general/moderator\">email\n"
+" addresses of the list moderators</a>. Note that the field you\n"
+" are changing here specifies the list administrators."
+msgstr ""
+
+#: Mailman/Gui/General.py:97
+msgid ""
+"The list moderator email addresses. Multiple\n"
+" moderator addresses, each on separate line is okay."
+msgstr ""
+
+#: Mailman/Gui/General.py:100
+msgid ""
+"There are two ownership roles associated with each mailing\n"
+" list. The <em>list administrators</em> are the people who have\n"
+" ultimate control over all parameters of this mailing list. They\n"
+" are able to change any list configuration variable available\n"
+" through these administration web pages.\n"
+"\n"
+" <p>The <em>list moderators</em> have more limited permissions;\n"
+" they are not able to change any list configuration variable, but\n"
+" they are allowed to tend to pending administration requests,\n"
+" including approving or rejecting held subscription requests, and\n"
+" disposing of held postings. Of course, the <em>list\n"
+" administrators</em> can also tend to pending requests.\n"
+"\n"
+" <p>In order to split the list ownership duties into\n"
+" administrators and moderators, you must\n"
+" <a href=\"passwords\">set a separate moderator password</a>,\n"
+" and also provide the email addresses of the list moderators in\n"
+" this section. Note that the field you are changing here\n"
+" specifies the list moderators."
+msgstr ""
+
+#: Mailman/Gui/General.py:121
+msgid "A terse phrase identifying this list."
+msgstr ""
+
+#: Mailman/Gui/General.py:123
+msgid ""
+"This description is used when the mailing list is listed with\n"
+" other mailing lists, or in headers, and so forth. It should\n"
+" be as succinct as you can get it, while still identifying what\n"
+" the list is."
+msgstr ""
+
+#: Mailman/Gui/General.py:129
+msgid ""
+"An introductory description - a few paragraphs - about the\n"
+" list. It will be included, as html, at the top of the listinfo\n"
+" page. Carriage returns will end a paragraph - see the details\n"
+" for more info."
+msgstr ""
+
+#: Mailman/Gui/General.py:133
+msgid ""
+"The text will be treated as html <em>except</em> that\n"
+" newlines will be translated to &lt;br&gt; - so you can use links,\n"
+" preformatted text, etc, but don't put in carriage returns except\n"
+" where you mean to separate paragraphs. And review your changes -\n"
+" bad html (like some unterminated HTML constructs) can prevent\n"
+" display of the entire listinfo page."
+msgstr ""
+
+#: Mailman/Gui/General.py:141
+msgid "Prefix for subject line of list postings."
+msgstr ""
+
+#: Mailman/Gui/General.py:142
+msgid ""
+"This text will be prepended to subject lines of messages\n"
+" posted to the list, to distinguish mailing list messages in in\n"
+" mailbox summaries. Brevity is premium here, it's ok to shorten\n"
+" long mailing list names to something more concise, as long as it\n"
+" still identifies the mailing list."
+msgstr ""
+
+#: Mailman/Gui/General.py:149
+msgid ""
+"Hide the sender of a message, replacing it with the list\n"
+" address (Removes From, Sender and Reply-To fields)"
+msgstr ""
+
+#: Mailman/Gui/General.py:152
+msgid "<tt>Reply-To:</tt> header munging"
+msgstr ""
+
+#: Mailman/Gui/General.py:155
+msgid ""
+"Should any existing <tt>Reply-To:</tt> header found in the\n"
+" original message be stripped? If so, this will be done\n"
+" regardless of whether an explict <tt>Reply-To:</tt> header is\n"
+" added by Mailman or not."
+msgstr ""
+
+#: Mailman/Gui/General.py:161
+msgid "Explicit address"
+msgstr ""
+
+#: Mailman/Gui/General.py:161
+msgid "Poster"
+msgstr ""
+
+#: Mailman/Gui/General.py:161
+msgid "This list"
+msgstr ""
+
+#: Mailman/Gui/General.py:162
+msgid ""
+"Where are replies to list messages directed?\n"
+" <tt>Poster</tt> is <em>strongly</em> recommended for most mailing\n"
+" lists."
+msgstr ""
+
+#: Mailman/Gui/General.py:167
+msgid ""
+"This option controls what Mailman does to the\n"
+" <tt>Reply-To:</tt> header in messages flowing through this\n"
+" mailing list. When set to <em>Poster</em>, no <tt>Reply-To:</tt>\n"
+" header is added by Mailman, although if one is present in the\n"
+" original message, it is not stripped. Setting this value to\n"
+" either <em>This list</em> or <em>Explicit address</em> causes\n"
+" Mailman to insert a specific <tt>Reply-To:</tt> header in all\n"
+" messages, overriding the header in the original message if\n"
+" necessary (<em>Explicit address</em> inserts the value of <a\n"
+" href=\"?VARHELP=general/reply_to_address\">reply_to_address</a>).\n"
+" \n"
+" <p>There are many reasons not to introduce or override the\n"
+" <tt>Reply-To:</tt> header. One is that some posters depend on\n"
+" their own <tt>Reply-To:</tt> settings to convey their valid\n"
+" return address. Another is that modifying <tt>Reply-To:</tt>\n"
+" makes it much more difficult to send private replies. See <a\n"
+" href=\"http://www.unicom.com/pw/reply-to-harmful.html\">`Reply-To'\n"
+" Munging Considered Harmful</a> for a general discussion of this\n"
+" issue. See <a\n"
+" href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml\">Reply-To\n"
+" Munging Considered Useful</a> for a dissenting opinion.\n"
+"\n"
+" <p>Some mailing lists have restricted posting privileges, with a\n"
+" parallel list devoted to discussions. Examples are `patches' or\n"
+" `checkin' lists, where software changes are posted by a revision\n"
+" control system, but discussion about the changes occurs on a\n"
+" developers mailing list. To support these types of mailing\n"
+" lists, select <tt>Explicit address</tt> and set the\n"
+" <tt>Reply-To:</tt> address below to point to the parallel\n"
+" list."
+msgstr ""
+
+#: Mailman/Gui/General.py:199
+msgid "Explicit <tt>Reply-To:</tt> header."
+msgstr ""
+
+#: Mailman/Gui/General.py:201
+msgid ""
+"This is the address set in the <tt>Reply-To:</tt> header\n"
+" when the <a\n"
+" href=\"?VARHELP=general/reply_goes_to_list\">reply_goes_to_list</a>\n"
+" option is set to <em>Explicit address</em>.\n"
+"\n"
+" <p>There are many reasons not to introduce or override the\n"
+" <tt>Reply-To:</tt> header. One is that some posters depend on\n"
+" their own <tt>Reply-To:</tt> settings to convey their valid\n"
+" return address. Another is that modifying <tt>Reply-To:</tt>\n"
+" makes it much more difficult to send private replies. See <a\n"
+" href=\"http://www.unicom.com/pw/reply-to-harmful.html\">`Reply-To'\n"
+" Munging Considered Harmful</a> for a general discussion of this\n"
+" issue. See <a\n"
+" href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml\">Reply-To\n"
+" Munging Considered Useful</a> for a dissenting opinion.\n"
+"\n"
+" <p>Some mailing lists have restricted posting privileges, with a\n"
+" parallel list devoted to discussions. Examples are `patches' or\n"
+" `checkin' lists, where software changes are posted by a revision\n"
+" control system, but discussion about the changes occurs on a\n"
+" developers mailing list. To support these types of mailing\n"
+" lists, specify the explicit <tt>Reply-To:</tt> address here. You\n"
+" must also specify <tt>Explicit address</tt> in the\n"
+" <tt>reply_goes_to_list</tt>\n"
+" variable.\n"
+"\n"
+" <p>Note that if the original message contains a\n"
+" <tt>Reply-To:</tt> header, it will not be changed."
+msgstr ""
+
+#: Mailman/Gui/General.py:230
+msgid "Umbrella list settings"
+msgstr ""
+
+#: Mailman/Gui/General.py:233
+msgid ""
+"Send password reminders to, eg, \"-owner\" address instead of\n"
+" directly to user."
+msgstr ""
+
+#: Mailman/Gui/General.py:236
+msgid ""
+"Set this to yes when this list is intended to cascade only\n"
+" to other mailing lists. When set, meta notices like\n"
+" confirmations and password reminders will be directed to an\n"
+" address derived from the member's address - it will have the\n"
+" value of \"umbrella_member_suffix\" appended to the member's\n"
+" account name."
+msgstr ""
+
+#: Mailman/Gui/General.py:244
+msgid ""
+"Suffix for use when this list is an umbrella for other\n"
+" lists, according to setting of previous \"umbrella_list\"\n"
+" setting."
+msgstr ""
+
+#: Mailman/Gui/General.py:248
+msgid ""
+"When \"umbrella_list\" is set to indicate that this list has\n"
+" other mailing lists as members, then administrative notices like\n"
+" confirmations and password reminders need to not be sent to the\n"
+" member list addresses, but rather to the owner of those member\n"
+" lists. In that case, the value of this setting is appended to\n"
+" the member's account name for such notices. `-owner' is the\n"
+" typical choice. This setting has no effect when \"umbrella_list\"\n"
+" is \"No\"."
+msgstr ""
+
+#: Mailman/Gui/General.py:260
+msgid "Send monthly password reminders?"
+msgstr ""
+
+#: Mailman/Gui/General.py:262
+msgid ""
+"Turn this on if you want password reminders to be sent once\n"
+" per month to your members. Note that members may disable their\n"
+" own individual password reminders."
+msgstr ""
+
+#: Mailman/Gui/General.py:267
+msgid ""
+"List-specific text prepended to new-subscriber welcome\n"
+" message"
+msgstr ""
+
+#: Mailman/Gui/General.py:270
+msgid ""
+"This value, if any, will be added to the front of the\n"
+" new-subscriber welcome message. The rest of the welcome message\n"
+" already describes the important addresses and URLs for the\n"
+" mailing list, so you don't need to include any of that kind of\n"
+" stuff here. This should just contain mission-specific kinds of\n"
+" things, like etiquette policies or team orientation, or that kind\n"
+" of thing.\n"
+"\n"
+" <p>Note that this text will be wrapped, according to the\n"
+" following rules:\n"
+" <ul><li>Each paragraph is filled so that no line is longer than\n"
+" 70 characters.\n"
+" <li>Any line that begins with whitespace is not filled.\n"
+" <li>A blank line separates paragraphs.\n"
+" </ul>"
+msgstr ""
+
+#: Mailman/Gui/General.py:287
+msgid "Send welcome message to newly subscribed members?"
+msgstr ""
+
+#: Mailman/Gui/General.py:288
+msgid ""
+"Turn this off only if you plan on subscribing people manually\n"
+" and don't want them to know that you did so. This option is most\n"
+" useful for transparently migrating lists from some other mailing\n"
+" list manager to Mailman."
+msgstr ""
+
+#: Mailman/Gui/General.py:294
+msgid ""
+"Text sent to people leaving the list. If empty, no special\n"
+" text will be added to the unsubscribe message."
+msgstr ""
+
+#: Mailman/Gui/General.py:298
+msgid "Send goodbye message to members when they are unsubscribed?"
+msgstr ""
+
+#: Mailman/Gui/General.py:301
+msgid ""
+"Should the list moderators get immediate notice of new\n"
+" requests, as well as daily notices about collected ones?"
+msgstr ""
+
+#: Mailman/Gui/General.py:304
+msgid ""
+"List moderators (and list administrators) are sent daily\n"
+" reminders of requests pending approval, like subscriptions to a\n"
+" moderated list, or postings that are being held for one reason or\n"
+" another. Setting this option causes notices to be sent\n"
+" immediately on the arrival of new requests as well."
+msgstr ""
+
+#: Mailman/Gui/General.py:311
+msgid ""
+"Should administrator get notices of subscribes and\n"
+" unsubscribes?"
+msgstr ""
+
+#: Mailman/Gui/General.py:316
+msgid "Send mail to poster when their posting is held for approval?"
+msgstr ""
+
+#: Mailman/Gui/General.py:318
+msgid ""
+"Approval notices are sent when mail triggers certain of the\n"
+" limits <em>except</em> routine list moderation and spam filters,\n"
+" for which notices are <em>not</em> sent. This option overrides\n"
+" ever sending the notice."
+msgstr ""
+
+#: Mailman/Gui/General.py:323
+msgid "Additional settings"
+msgstr ""
+
+#: Mailman/Gui/General.py:326
+msgid "Emergency moderation of all list traffic."
+msgstr ""
+
+#: Mailman/Gui/General.py:327
+msgid ""
+"When this option is enabled, all list traffic is emergency\n"
+" moderated, i.e. held for moderation. Turn this option on when\n"
+" your list is experiencing a flamewar and you want a cooling off\n"
+" period."
+msgstr ""
+
+#: Mailman/Gui/General.py:339
+msgid ""
+"Default options for new members joining this list.<input\n"
+" type=\"hidden\" name=\"new_member_options\" value=\"ignore\">"
+msgstr ""
+
+#: Mailman/Gui/General.py:342
+msgid ""
+"When a new member is subscribed to this list, their initial\n"
+" set of options is taken from the this variable's setting."
+msgstr ""
+
+#: Mailman/Gui/General.py:346
+msgid ""
+"(Administrivia filter) Check postings and intercept ones\n"
+" that seem to be administrative requests?"
+msgstr ""
+
+#: Mailman/Gui/General.py:349
+msgid ""
+"Administrivia tests will check postings to see whether it's\n"
+" really meant as an administrative request (like subscribe,\n"
+" unsubscribe, etc), and will add it to the the administrative\n"
+" requests queue, notifying the administrator of the new request,\n"
+" in the process."
+msgstr ""
+
+#: Mailman/Gui/General.py:356
+msgid ""
+"Maximum length in kilobytes (KB) of a message body. Use 0\n"
+" for no limit."
+msgstr ""
+
+#: Mailman/Gui/General.py:360
+msgid "Host name this list prefers for email."
+msgstr ""
+
+#: Mailman/Gui/General.py:362
+msgid ""
+"The \"host_name\" is the preferred name for email to\n"
+" mailman-related addresses on this host, and generally should be\n"
+" the mail host's exchanger address, if any. This setting can be\n"
+" useful for selecting among alternative names of a host that has\n"
+" multiple addresses."
+msgstr ""
+
+#: Mailman/Gui/General.py:374
+msgid ""
+"Should messages from this mailing list include the\n"
+" <a href=\"http://www.faqs.org/rfcs/rfc2369.html\">RFC 2369</a>\n"
+" (i.e. <tt>List-*</tt>) headers? <em>Yes</em> is highly\n"
+" recommended."
+msgstr ""
+
+#: Mailman/Gui/General.py:379
+msgid ""
+"RFC 2369 defines a set of List-* headers that are\n"
+" normally added to every message sent to the list membership.\n"
+" These greatly aid end-users who are using standards compliant\n"
+" mail readers. They should normally always be enabled.\n"
+"\n"
+" <p>However, not all mail readers are standards compliant yet,\n"
+" and if you have a large number of members who are using\n"
+" non-compliant mail readers, they may be annoyed at these\n"
+" headers. You should first try to educate your members as to\n"
+" why these headers exist, and how to hide them in their mail\n"
+" clients. As a last resort you can disable these headers, but\n"
+" this is not recommended (and in fact, your ability to disable\n"
+" these headers may eventually go away)."
+msgstr ""
+
+#: Mailman/Gui/General.py:397
+msgid "Should postings include the <tt>List-Post:</tt> header?"
+msgstr ""
+
+#: Mailman/Gui/General.py:398
+msgid ""
+"The <tt>List-Post:</tt> header is one of the headers\n"
+" recommended by\n"
+" <a href=\"http://www.faqs.org/rfcs/rfc2369.html\">RFC 2369</a>.\n"
+" However for some <em>announce-only</em> mailing lists, only a\n"
+" very select group of people are allowed to post to the list; the\n"
+" general membership is usually not allowed to post. For lists of\n"
+" this nature, the <tt>List-Post:</tt> header is misleading.\n"
+" Select <em>No</em> to disable the inclusion of this header. (This\n"
+" does not affect the inclusion of the other <tt>List-*:</tt>\n"
+" headers.)"
+msgstr ""
+
+#: Mailman/Gui/General.py:416
+msgid ""
+"<b>real_name</b> attribute not\n"
+" changed! It must differ from the list's name by case\n"
+" only."
+msgstr ""
+
+#: Mailman/Gui/General.py:437
+msgid ""
+"You cannot add a Reply-To: to an explicit\n"
+" address if that address is blank. Resetting these values."
+msgstr ""
+
+#: Mailman/Gui/Language.py:34
+msgid "Language&nbsp;options"
+msgstr ""
+
+#: Mailman/Gui/Language.py:66
+msgid "Natural language (internationalization) options."
+msgstr ""
+
+#: Mailman/Gui/Language.py:71
+msgid "Default language for this list."
+msgstr ""
+
+#: Mailman/Gui/Language.py:72
+msgid ""
+"This is the default natural language for this mailing list.\n"
+" If <a href=\"?VARHELP=language/available_languages\">more than one\n"
+" language</a> is supported then users will be able to select their\n"
+" own preferences for when they interact with the list. All other\n"
+" interactions will be conducted in the default language. This\n"
+" applies to both web-based and email-based messages, but not to\n"
+" email posted by list members."
+msgstr ""
+
+#: Mailman/Gui/Language.py:82
+msgid "Languages supported by this list."
+msgstr ""
+
+#: Mailman/Gui/Language.py:84
+msgid ""
+"These are all the natural languages supported by this list.\n"
+" Note that the\n"
+" <a href=\"?VARHELP=language/preferred_language\">default\n"
+" language</a> must be included."
+msgstr ""
+
+#: Mailman/Gui/Language.py:90
+msgid "Always"
+msgstr ""
+
+#: Mailman/Gui/Language.py:90
+msgid "As needed"
+msgstr ""
+
+#: Mailman/Gui/Language.py:90
+msgid "Never"
+msgstr ""
+
+#: Mailman/Gui/Language.py:91
+msgid ""
+"Encode the\n"
+" <a href=\"?VARHELP=general/subject_prefix\">subject\n"
+" prefix</a> even when it consists of only ASCII characters?"
+msgstr ""
+
+#: Mailman/Gui/Language.py:95
+msgid ""
+"If your mailing list's default language uses a non-ASCII\n"
+" character set and the prefix contains non-ASCII characters, the\n"
+" prefix will always be encoded according to the relevant\n"
+" standards. However, if your prefix contains only ASCII\n"
+" characters, you may want to set this option to <em>Never</em> to\n"
+" disable prefix encoding. This can make the subject headers\n"
+" slightly more readable for users with mail readers that don't\n"
+" properly handle non-ASCII encodings.\n"
+"\n"
+" <p>Note however, that if your mailing list receives both encoded\n"
+" and unencoded subject headers, you might want to choose <em>As\n"
+" needed</em>. Using this setting, Mailman will not encode ASCII\n"
+" prefixes when the rest of the header contains only ASCII\n"
+" characters, but if the original header contains non-ASCII\n"
+" characters, it will encode the prefix. This avoids an ambiguity\n"
+" in the standards which could cause some mail readers to display\n"
+" extra, or missing spaces between the prefix and the original\n"
+" header."
+msgstr ""
+
+#: Mailman/Gui/Membership.py:26
+msgid "Membership&nbsp;Management"
+msgstr ""
+
+#: Mailman/Gui/Membership.py:30
+msgid "Membership&nbsp;List"
+msgstr ""
+
+#: Mailman/Gui/Membership.py:31
+msgid "Mass&nbsp;Subscription"
+msgstr ""
+
+#: Mailman/Gui/Membership.py:32
+msgid "Mass&nbsp;Removal"
+msgstr ""
+
+#: Mailman/Gui/NonDigest.py:34
+msgid "Non-digest&nbsp;options"
+msgstr ""
+
+#: Mailman/Gui/NonDigest.py:42
+msgid "Policies concerning immediately delivered list traffic."
+msgstr ""
+
+#: Mailman/Gui/NonDigest.py:45
+msgid ""
+"Can subscribers choose to receive mail immediately, rather\n"
+" than in batched digests?"
+msgstr ""
+
+#: Mailman/Gui/NonDigest.py:52
+msgid "Full Personalization"
+msgstr ""
+
+#: Mailman/Gui/NonDigest.py:54
+msgid ""
+"Should Mailman personalize each non-digest delivery?\n"
+" This is often useful for announce-only lists, but <a\n"
+" href=\"?VARHELP=nondigest/personalize\">read the details</a>\n"
+" section for a discussion of important performance\n"
+" issues."
+msgstr ""
+
+#: Mailman/Gui/NonDigest.py:60
+msgid ""
+"Normally, Mailman sends the regular delivery messages to\n"
+" the mail server in batches. This is much more efficent\n"
+" because it reduces the amount of traffic between Mailman and\n"
+" the mail server.\n"
+"\n"
+" <p>However, some lists can benefit from a more personalized\n"
+" approach. In this case, Mailman crafts a new message for\n"
+" each member on the regular delivery list. Turning this\n"
+" feature on may degrade the performance of your site, so you\n"
+" need to carefully consider whether the trade-off is worth it,\n"
+" or whether there are other ways to accomplish what you want.\n"
+" You should also carefully monitor your system load to make\n"
+" sure it is acceptable.\n"
+"\n"
+" <p>Select <em>No</em> to disable personalization and send\n"
+" messages to the members in batches. Select <em>Yes</em> to\n"
+" personalize deliveries and allow additional substitution\n"
+" variables in message headers and footers (see below). In\n"
+" addition, by selecting <em>Full Personalization</em>, the\n"
+" <code>To</code> header of posted messages will be modified to\n"
+" include the member's address instead of the list's posting\n"
+" address.\n"
+"\n"
+" <p>When personalization is enabled, a few more expansion\n"
+" variables that can be included in the <a\n"
+" href=\"?VARHELP=nondigest/msg_header\">message header</a> and\n"
+" <a href=\"?VARHELP=nondigest/msg_footer\">message footer</a>.\n"
+"\n"
+" <p>These additional substitution variables will be available\n"
+" for your headers and footers, when this feature is enabled:\n"
+"\n"
+" <ul><li><b>user_address</b> - The address of the user,\n"
+" coerced to lower case.\n"
+" <li><b>user_delivered_to</b> - The case-preserved address\n"
+" that the user is subscribed with.\n"
+" <li><b>user_password</b> - The user's password.\n"
+" <li><b>user_name</b> - The user's full name.\n"
+" <li><b>user_optionsurl</b> - The url to the user's option\n"
+" page.\n"
+" </ul>\n"
+" "
+msgstr ""
+
+#: Mailman/Gui/NonDigest.py:108
+msgid "Header added to mail sent to regular list members"
+msgstr ""
+
+#: Mailman/Gui/NonDigest.py:109
+msgid ""
+"Text prepended to the top of every immediately-delivery\n"
+" message. "
+msgstr ""
+
+#: Mailman/Gui/NonDigest.py:114
+msgid "Footer added to mail sent to regular list members"
+msgstr ""
+
+#: Mailman/Gui/NonDigest.py:115
+msgid ""
+"Text appended to the bottom of every immediately-delivery\n"
+" message. "
+msgstr ""
+
+#: Mailman/Gui/Passwords.py:27
+msgid "Passwords"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:28
+msgid "Privacy options"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:32
+msgid "Subscription&nbsp;rules"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:33
+msgid "Sender&nbsp;filters"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:34
+msgid "Recipient&nbsp;filters"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:35
+msgid "Spam&nbsp;filters"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:49 Mailman/Gui/Usenet.py:61
+msgid "None"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:50 Mailman/Gui/Privacy.py:73
+msgid "Confirm"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:51 Mailman/Gui/Privacy.py:74
+msgid "Require approval"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:52 Mailman/Gui/Privacy.py:75
+msgid "Confirm and approve"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:54 Mailman/Gui/Privacy.py:77
+msgid "What steps are required for subscription?<br>"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:55
+msgid ""
+"None - no verification steps (<em>Not\n"
+" Recommended </em>)<br>\n"
+" Confirm (*) - email confirmation step required <br>\n"
+" Require approval - require list administrator\n"
+" Approval for subscriptions <br>\n"
+" Confirm and approve - both confirm and approve\n"
+" \n"
+" <p>(*) when someone requests a subscription,\n"
+" Mailman sends them a notice with a unique\n"
+" subscription request number that they must reply to\n"
+" in order to subscribe.<br>\n"
+"\n"
+" This prevents mischievous (or malicious) people\n"
+" from creating subscriptions for others without\n"
+" their consent."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:78
+msgid ""
+"Confirm (*) - email confirmation required <br>\n"
+" Require approval - require list administrator\n"
+" approval for subscriptions <br>\n"
+" Confirm and approve - both confirm and approve\n"
+" \n"
+" <p>(*) when someone requests a subscription,\n"
+" Mailman sends them a notice with a unique\n"
+" subscription request number that they must reply to\n"
+" in order to subscribe.<br> This prevents\n"
+" mischievous (or malicious) people from creating\n"
+" subscriptions for others without their consent."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:94
+msgid ""
+"This section allows you to configure subscription and\n"
+" membership exposure policy. You can also control whether this\n"
+" list is public or not. See also the\n"
+" <a href=\"%(admin)s/archive\">Archival Options</a> section for\n"
+" separate archive-related privacy settings."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:100
+msgid "Subscribing"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:102
+msgid ""
+"Advertise this list when people ask what lists are on this\n"
+" machine?"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:108
+msgid ""
+"Is the list moderator's approval required for unsubscription\n"
+" requests? (<em>No</em> is recommended)"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:111
+msgid ""
+"When members want to leave a list, they will make an\n"
+" unsubscription request, either via the web or via email.\n"
+" Normally it is best for you to allow open unsubscriptions so that\n"
+" users can easily remove themselves from mailing lists (they get\n"
+" really upset if they can't get off lists!).\n"
+"\n"
+" <p>For some lists though, you may want to impose moderator\n"
+" approval before an unsubscription request is processed. Examples\n"
+" of such lists include a corporate mailing list that all employees\n"
+" are required to be members of."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:122
+msgid "Ban list"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:124
+msgid ""
+"List of addresses which are banned from membership in this\n"
+" mailing list."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:127
+msgid ""
+"Addresses in this list are banned outright from subscribing\n"
+" to this mailing list, with no further moderation required. Add\n"
+" addresses one per line; start the line with a ^ character to\n"
+" designate a regular expression match."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:132
+msgid "Membership exposure"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:134
+msgid "Anyone"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:134
+msgid "List admin only"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:134
+msgid "List members"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:135
+msgid "Who can view subscription list?"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:137
+msgid ""
+"When set, the list of subscribers is protected by member or\n"
+" admin password authentication."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:141
+msgid ""
+"Show member addresses so they're not directly recognizable\n"
+" as email addresses?"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:143
+msgid ""
+"Setting this option causes member email addresses to be\n"
+" transformed when they are presented on list web pages (both in\n"
+" text and as links), so they're not trivially recognizable as\n"
+" email addresses. The intention is to prevent the addresses\n"
+" from being snarfed up by automated web scanners for use by\n"
+" spammers."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:153
+msgid ""
+"When a message is posted to the list, a series of\n"
+" moderation steps are take to decide whether the a moderator must\n"
+" first approve the message or not. This section contains the\n"
+" controls for moderation of both member and non-member postings.\n"
+"\n"
+" <p>Member postings are held for moderation if their\n"
+" <b>moderation flag</b> is turned on. You can control whether\n"
+" member postings are moderated by default or not.\n"
+"\n"
+" <p>Non-member postings can be automatically\n"
+" <a href=\"?VARHELP=privacy/sender/accept_these_nonmembers\"\n"
+" >accepted</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/hold_these_nonmembers\">held for\n"
+" moderation</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/reject_these_nonmembers\"\n"
+" >rejected</a> (bounced), or\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >discarded</a>,\n"
+" either individually or as a group. Any\n"
+" posting from a non-member who is not explicitly accepted,\n"
+" rejected, or discarded, will have their posting filtered by the\n"
+" <a href=\"?VARHELP=privacy/sender/generic_nonmember_action\">general\n"
+" non-member rules</a>.\n"
+"\n"
+" <p>In the text boxes below, add one address per line; start the\n"
+" line with a ^ character to designate a <a href=\n"
+" \"http://www.python.org/doc/current/lib/module-re.html\"\n"
+" >Python regular expression</a>. When entering backslashes, do so\n"
+" as if you were using Python raw strings (i.e. you generally just\n"
+" use a single backslash).\n"
+"\n"
+" <p>Note that non-regexp matches are always done first."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:186
+msgid "Member filters"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:189
+msgid "By default, should new list member postings be moderated?"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:191
+msgid ""
+"Each list member has a <em>moderation flag</em> which says\n"
+" whether messages from the list member can be posted directly to\n"
+" the list, or must first be approved by the list moderator. When\n"
+" the moderation flag is turned on, list member postings must be\n"
+" approved first. You, the list administrator can decide whether a\n"
+" specific individual's postings will be moderated or not.\n"
+"\n"
+" <p>When a new member is subscribed, their initial moderation flag\n"
+" takes its value from this option. Turn this option off to accept\n"
+" member postings by default. Turn this option on to, by default,\n"
+" moderate member postings first. You can always manually set an\n"
+" individual member's moderation bit by using the\n"
+" <a href=\"%(adminurl)s/members\">membership management\n"
+" screens</a>."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:207 Mailman/Gui/Privacy.py:281
+msgid "Hold"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:208
+msgid ""
+"Action to take when a moderated member posts to the\n"
+" list."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:210
+msgid ""
+"<ul><li><b>Hold</b> -- this holds the message for approval\n"
+" by the list moderators.\n"
+"\n"
+" <p><li><b>Reject</b> -- this automatically rejects the message by\n"
+" sending a bounce notice to the post's author. The text of the\n"
+" bounce notice can be <a\n"
+" href=\"?VARHELP=privacy/sender/member_moderation_notice\"\n"
+" >configured by you</a>.\n"
+"\n"
+" <p><li><b>Discard</b> -- this simply discards the message, with\n"
+" no notice sent to the post's author.\n"
+" </ul>"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:224
+msgid ""
+"Text to include in any\n"
+" <a href=\"?VARHELP/privacy/sender/member_moderation_action\"\n"
+" >rejection notice</a> to\n"
+" be sent to moderated members who post to this list."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:229
+msgid "Non-member filters"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:232
+msgid ""
+"List of non-member addresses whose postings should be\n"
+" automatically accepted."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:235
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" accepted with no further moderation applied. Add member\n"
+" addresses one per line; start the line with a ^ character to\n"
+" designate a regular expression match."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:241
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" immediately held for moderation."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:244
+msgid ""
+"Postings from any of these non-members will be immediately\n"
+" and automatically held for moderation by the list moderators.\n"
+" The sender will receive a notification message which will allow\n"
+" them to cancel their held message. Add member addresses one per\n"
+" line; start the line with a ^ character to designate a regular\n"
+" expression match."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:252
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" automatically rejected."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:255
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" rejected. In other words, their messages will be bounced back to\n"
+" the sender with a notification of automatic rejection. This\n"
+" option is not appropriate for known spam senders; their messages\n"
+" should be\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >automatically discarded</a>.\n"
+"\n"
+" <p>Add member addresses one per line; start the line with a ^\n"
+" character to designate a regular expression match."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:267
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" automatically discarded."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:270
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" discarded. That is, the message will be thrown away with no\n"
+" further processing or notification. The sender will not receive\n"
+" a notification or a bounce, however the list moderators can\n"
+" optionally <a href=\"?VARHELP=privacy/sender/forward_auto_discards\"\n"
+" >receive copies of auto-discarded messages.</a>.\n"
+"\n"
+" <p>Add member addresses one per line; start the line with a ^\n"
+" character to designate a regular expression match."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:282
+msgid ""
+"Action to take for postings from non-members for which no\n"
+" explicit action is defined."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:285
+msgid ""
+"When a post from a non-member is received, the message's\n"
+" sender is matched against the list of explicitly\n"
+" <a href=\"?VARHELP=privacy/sender/accept_these_nonmembers\"\n"
+" >accepted</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/hold_these_nonmembers\">held</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/reject_these_nonmembers\"\n"
+" >rejected</a> (bounced), and\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >discarded</a> addresses. If no match is found, then this action\n"
+" is taken."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:297
+msgid ""
+"Should messages from non-members, which are automatically\n"
+" discarded, be forwarded to the list moderator?"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:303
+msgid ""
+"This section allows you to configure various filters based on\n"
+" the recipient of the message."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:306
+msgid "Recipient filters"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:310
+msgid ""
+"Must posts have list named in destination (to, cc) field\n"
+" (or be among the acceptable alias names, specified below)?"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:313
+msgid ""
+"Many (in fact, most) spams do not explicitly name their\n"
+" myriad destinations in the explicit destination addresses - in\n"
+" fact often the To: field has a totally bogus address for\n"
+" obfuscation. The constraint applies only to the stuff in the\n"
+" address before the '@' sign, but still catches all such spams.\n"
+"\n"
+" <p>The cost is that the list will not accept unhindered any\n"
+" postings relayed from other addresses, unless\n"
+"\n"
+" <ol>\n"
+" <li>The relaying address has the same name, or\n"
+"\n"
+" <li>The relaying address name is included on the options that\n"
+" specifies acceptable aliases for the list.\n"
+"\n"
+" </ol>"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:331
+msgid ""
+"Alias names (regexps) which qualify as explicit to or cc\n"
+" destination names for this list."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:334
+msgid ""
+"Alternate addresses that are acceptable when\n"
+" `require_explicit_destination' is enabled. This option takes a\n"
+" list of regular expressions, one per line, which is matched\n"
+" against every recipient address in the message. The matching is\n"
+" performed with Python's re.match() function, meaning they are\n"
+" anchored to the start of the string.\n"
+" \n"
+" <p>For backwards compatibility with Mailman 1.1, if the regexp\n"
+" does not contain an `@', then the pattern is matched against just\n"
+" the local part of the recipient address. If that match fails, or\n"
+" if the pattern does contain an `@', then the pattern is matched\n"
+" against the entire recipient address.\n"
+" \n"
+" <p>Matching against the local part is deprecated; in a future\n"
+" release, the pattern will always be matched against the entire\n"
+" recipient address."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:352
+msgid "Ceiling on acceptable number of recipients for a posting."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:354
+msgid ""
+"If a posting has this number, or more, of recipients, it is\n"
+" held for admin approval. Use 0 for no ceiling."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:359
+msgid ""
+"This section allows you to configure various anti-spam\n"
+" filters posting filters, which can help reduce the amount of spam\n"
+" your list members end up receiving.\n"
+" "
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:364
+msgid "Anti-Spam filters"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:367
+msgid "Hold posts with header value matching a specified regexp."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:368
+msgid ""
+"Use this option to prohibit posts according to specific\n"
+" header values. The target value is a regular-expression for\n"
+" matching against the specified header. The match is done\n"
+" disregarding letter case. Lines beginning with '#' are ignored\n"
+" as comments.\n"
+"\n"
+" <p>For example:<pre>to: .*@public.com </pre> says to hold all\n"
+" postings with a <em>To:</em> mail header containing '@public.com'\n"
+" anywhere among the addresses.\n"
+"\n"
+" <p>Note that leading whitespace is trimmed from the regexp. This\n"
+" can be circumvented in a number of ways, e.g. by escaping or\n"
+" bracketing it."
+msgstr ""
+
+#: Mailman/Gui/Topics.py:28
+msgid "Topics"
+msgstr ""
+
+#: Mailman/Gui/Topics.py:36
+msgid "List topic keywords"
+msgstr ""
+
+#: Mailman/Gui/Topics.py:38
+msgid "Disabled"
+msgstr ""
+
+#: Mailman/Gui/Topics.py:38
+msgid "Enabled"
+msgstr ""
+
+#: Mailman/Gui/Topics.py:39
+msgid "Should the topic filter be enabled or disabled?"
+msgstr ""
+
+#: Mailman/Gui/Topics.py:41
+msgid ""
+"The topic filter categorizes each incoming email message\n"
+" according to <a\n"
+" href=\"http://www.python.org/doc/current/lib/module-re.html\">regular\n"
+" expression filters</a> you specify below. If the message's\n"
+" <code>Subject:</code> or <code>Keywords:</code> header contains a\n"
+" match against a topic filter, the message is logically placed\n"
+" into a topic <em>bucket</em>. Each user can then choose to only\n"
+" receive messages from the mailing list for a particular topic\n"
+" bucket (or buckets). Any message not categorized in a topic\n"
+" bucket registered with the user is not delivered to the list.\n"
+"\n"
+" <p>Note that this feature only works with regular delivery, not\n"
+" digest delivery.\n"
+"\n"
+" <p>The body of the message can also be optionally scanned for\n"
+" <code>Subject:</code> and <code>Keywords:</code> headers, as\n"
+" specified by the <a\n"
+" href=\"?VARHELP=topics/topics_bodylines_limit\">topics_bodylines_limit</a>\n"
+" configuration variable."
+msgstr ""
+
+#: Mailman/Gui/Topics.py:62
+msgid "How many body lines should the topic matcher scan?"
+msgstr ""
+
+#: Mailman/Gui/Topics.py:64
+msgid ""
+"The topic matcher will scan this many lines of the message\n"
+" body looking for topic keyword matches. Body scanning stops when\n"
+" either this many lines have been looked at, or a non-header-like\n"
+" body line is encountered. By setting this value to zero, no body\n"
+" lines will be scanned (i.e. only the <code>Keywords:</code> and\n"
+" <code>Subject:</code> headers will be scanned). By setting this\n"
+" value to a negative number, then all body lines will be scanned\n"
+" until a non-header-like line is encountered.\n"
+" "
+msgstr ""
+
+#: Mailman/Gui/Topics.py:75
+msgid "Topic keywords, one per line, to match against each message."
+msgstr ""
+
+#: Mailman/Gui/Topics.py:77
+msgid ""
+"Each topic keyword is actually a regular expression, which is\n"
+" matched against certain parts of a mail message, specifically the\n"
+" <code>Keywords:</code> and <code>Subject:</code> message headers.\n"
+" Note that the first few lines of the body of the message can also\n"
+" contain a <code>Keywords:</code> and <code>Subject:</code>\n"
+" \"header\" on which matching is also performed."
+msgstr ""
+
+#: Mailman/Gui/Topics.py:116
+msgid ""
+"Topic specifications require both a name and\n"
+" a pattern. Incomplete topics will be ignored."
+msgstr ""
+
+#: Mailman/Gui/Topics.py:124
+msgid ""
+"The topic pattern `%(pattern)s' is not a\n"
+" legal regular expression. It will be discarded."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:25
+msgid "Mail&lt;-&gt;News&nbsp;gateways"
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:35
+msgid "Mail-to-News and News-to-Mail gateway services."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:37
+msgid "News server settings"
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:40
+msgid ""
+"The Internet address of the machine your News server is\n"
+" running on."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:42
+msgid ""
+"The News server is not part of Mailman proper. You have to\n"
+" already have access to a NNTP server, and that NNTP server has to\n"
+" recognize the machine this mailing list runs on as a machine\n"
+" capable of reading and posting news."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:48
+msgid "The name of the Usenet group to gateway to and/or from."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:51
+msgid ""
+"Should new posts to the mailing list be sent to the\n"
+" newsgroup?"
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:55
+msgid ""
+"Should new posts to the newsgroup be sent to the mailing\n"
+" list?"
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:58
+msgid "Forwarding options"
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:61
+msgid "Moderated"
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:61
+msgid "Open list, moderated group"
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:64
+msgid "The moderation policy of the newsgroup."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:66
+msgid ""
+"This setting determines the moderation policy of the\n"
+" newsgroup and its interaction with the moderation policy of the\n"
+" mailing list. This only applies to the newsgroup that you are\n"
+" gatewaying <em>to</em>, so if you are only gatewaying from\n"
+" Usenet, or the newsgroup you are gatewaying to is not moderated,\n"
+" set this option to <em>None</em>.\n"
+"\n"
+" <p>If the newsgroup is moderated, you can set this mailing list\n"
+" up to be the moderation address for the newsgroup. By selecting\n"
+" <em>Moderated</em>, an additional posting hold will be placed in\n"
+" the approval process. All messages posted to the mailing list\n"
+" will have to be approved before being sent on to the newsgroup,\n"
+" or to the mailing list membership.\n"
+"\n"
+" <p><em>Note that if the message has an <tt>Approved</tt> header\n"
+" with the list's administrative password in it, this hold test\n"
+" will be bypassed, allowing privileged posters to send messages\n"
+" directly to the list and the newsgroup.</em>\n"
+"\n"
+" <p>Finally, if the newsgroup is moderated, but you want to have\n"
+" an open posting policy anyway, you should select <em>Open list,\n"
+" moderated group</em>. The effect of this is to use the normal\n"
+" Mailman moderation facilities, but to add an <tt>Approved</tt>\n"
+" header to all messages that are gatewayed to Usenet."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:92
+msgid "Prefix <tt>Subject:</tt> headers on postings gated to news?"
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:93
+msgid ""
+"Mailman prefixes <tt>Subject:</tt> headers with\n"
+" <a href=\"?VARHELP=general/subject_prefix\">text you can\n"
+" customize</a> and normally, this prefix shows up in messages\n"
+" gatewayed to Usenet. You can set this option to <em>No</em> to\n"
+" disable the prefix on gated messages. Of course, if you turn off\n"
+" normal <tt>Subject:</tt> prefixes, they won't be prefixed for\n"
+" gated messages either."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:101
+msgid "Mass catch up"
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:104
+msgid "Should Mailman perform a <em>catchup</em> on the newsgroup?"
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:105
+msgid ""
+"When you tell Mailman to perform a catchup on the newsgroup,\n"
+" this means that you want to start gating messages to the mailing\n"
+" list with the next new message found. All earlier messages on\n"
+" the newsgroup will be ignored. This is as if you were reading\n"
+" the newsgroup yourself, and you marked all current messages as\n"
+" <em>read</em>. By catching up, your mailing list members will\n"
+" not see any of the earlier messages."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:119
+msgid "Mass catchup completed"
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:131
+msgid ""
+"You cannot enable gatewaying unless both the\n"
+" <a href=\"?VARHELP=gateway/nntp_host\">news server field</a> and\n"
+" the <a href=\"?VARHELP=gateway/linked_newsgroup\">linked\n"
+" newsgroup</a> fields are filled in."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:47
+msgid "%(listinfo_link)s list run by %(owner_link)s"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:55
+msgid "%(realname)s administrative interface"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:56
+msgid " (requires authorization)"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:59
+msgid "Overview of all %(hostname)s mailing lists"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:80
+msgid "<em>(1 private member not shown)</em>"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:82
+msgid "<em>(%(num_concealed)d private members not shown)</em>"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:137
+msgid "; it was disabled by you"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:139
+msgid "; it was disabled by the list administrator"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:143
+msgid ""
+"; it was disabled due to excessive bounces. The\n"
+" last bounce was received on %(date)s"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:146
+msgid "; it was disabled for unknown reasons"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:148
+msgid "Note: your list delivery is currently disabled%(reason)s."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:151
+msgid "Mail delivery"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:153 Mailman/HTMLFormatter.py:298
+msgid "the list administrator"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:154
+msgid ""
+"<p>%(note)s\n"
+"\n"
+" <p>You may have disabled list delivery intentionally,\n"
+" or it may have been triggered by bounces from your email\n"
+" address. In either case, to re-enable delivery, change the\n"
+" %(link)s option below. Contact %(mailto)s if you have any\n"
+" questions or need assistance."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:166
+msgid ""
+"<p>We have received some recent bounces from your\n"
+" address. Your current <em>bounce score</em> is %(score)s out of a\n"
+" maximum of %(total)s. Please double check that your subscribed\n"
+" address is correct and that there are no problems with delivery to\n"
+" this address. Your bounce score will be automatically reset if\n"
+" the problems are corrected soon."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:178
+msgid "(Note - you are subscribing to a list of mailing lists, so the %(type)s notice will be sent to the admin address for your membership, %(addr)s.)<p>"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:188
+msgid ""
+"You will be sent email requesting confirmation, to\n"
+" prevent others from gratuitously subscribing you."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:191
+msgid ""
+"This is a closed list, which means your subscription\n"
+" will be held for approval. You will be notified of the list\n"
+" moderator's decision by email."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:194 Mailman/HTMLFormatter.py:201
+msgid "also "
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:196
+msgid ""
+"You will be sent email requesting confirmation, to\n"
+" prevent others from gratuitously subscribing you. Once\n"
+" confirmation is received, your request will be held for approval\n"
+" by the list moderator. You will be notified of the moderator's\n"
+" decision by email."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:205
+msgid ""
+"This is %(also)sa private list, which means that the\n"
+" list of members is not available to non-members."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:208
+msgid ""
+"This is %(also)sa hidden list, which means that the\n"
+" list of members is available only to the list administrator."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:211
+msgid ""
+"This is %(also)sa public list, which means that the\n"
+" list of members list is available to everyone."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:214
+msgid ""
+" (but we obscure the addresses so they are not\n"
+" easily recognizable by spammers)."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:219
+msgid ""
+"<p>(Note that this is an umbrella list, intended to\n"
+" have only other mailing lists as members. Among other things,\n"
+" this means that your confirmation request will be sent to the\n"
+" `%(sfx)s' account for your address.)"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:248
+msgid "<b><i>either</i></b> "
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:253
+msgid ""
+"To unsubscribe from %(realname)s, get a password reminder,\n"
+" or change your subscription options %(either)senter your subscription\n"
+" email address:\n"
+" <p><center> "
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:260
+msgid "Unsubscribe or edit options"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:264
+msgid ""
+"<p>... <b><i>or</i></b> select your entry from\n"
+" the subscribers list (see above)."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:266
+msgid ""
+" If you leave the field blank, you will be prompted for\n"
+" your email address"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:274
+msgid ""
+"(<i>%(which)s is only available to the list\n"
+" members.</i>)"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:278
+msgid ""
+"(<i>%(which)s is only available to the list\n"
+" administrator.</i>)"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:288
+msgid "Click here for the list of "
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:290
+msgid " subscribers: "
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:292
+msgid "Visit Subscriber list"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:295
+msgid "members"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:296
+msgid "Address:"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:299
+msgid "Admin address:"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:302
+msgid "The subscribers list"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:304
+msgid " <p>Enter your "
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:306
+msgid " and password to visit the subscribers list: <p><center> "
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:311
+msgid "Password: "
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:315
+msgid "Visit Subscriber List"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:345
+msgid "Once a month, your password will be emailed to you as a reminder."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:391
+msgid "The current archive"
+msgstr ""
+
+#: Mailman/Handlers/Acknowledge.py:59
+msgid "%(realname)s post acknowledgement"
+msgstr ""
+
+#: Mailman/Handlers/CalcRecips.py:68
+msgid ""
+"Your urgent message to the %(realname)s mailing list was not authorized for\n"
+"delivery. The original message as received by Mailman is attached.\n"
+msgstr ""
+
+#: Mailman/Handlers/Emergency.py:29
+msgid "Emergency hold on all list traffic is in effect"
+msgstr ""
+
+#: Mailman/Handlers/Emergency.py:30 Mailman/Handlers/Hold.py:58
+msgid "Your message was deemed inappropriate by the moderator."
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:53
+msgid "Sender is explicitly forbidden"
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:54
+msgid "You are forbidden from posting messages to this list."
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:57
+msgid "Post to moderated list"
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:61
+msgid "Post by non-member to a members-only list"
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:62
+msgid "Non-members are not allowed to post messages to this list."
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:65
+msgid "Posting to a restricted list by sender requires approval"
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:66
+msgid "This list is restricted; your message was not approved."
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:69
+msgid "Too many recipients to the message"
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:70
+msgid "Please trim the recipient list; it is too long."
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:73
+msgid "Message has implicit destination"
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:74
+msgid ""
+"Blind carbon copies or other implicit destinations are\n"
+"not allowed. Try reposting your message by explicitly including the list\n"
+"address in the To: or Cc: fields."
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:79
+msgid "Message may contain administrivia"
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:84
+msgid ""
+"Please do *not* post administrative requests to the mailing\n"
+"list. If you wish to subscribe, visit %(listurl)s or send a message with the\n"
+"word `help' in it to the request address, %(request)s, for further\n"
+"instructions."
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:90
+msgid "Message has a suspicious header"
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:91
+msgid "Your message had a suspicious header."
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:101
+msgid ""
+"Message body is too big: %(size)d bytes with a limit of\n"
+"%(limit)d KB"
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:106
+msgid ""
+"Your message was too big; please trim it to less than\n"
+"%(kb)d KB in size."
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:110
+msgid "Posting to a moderated newsgroup"
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:233
+msgid "Your message to %(listname)s awaits moderator approval"
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:253
+msgid "%(listname)s post from %(sender)s requires approval"
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:260
+msgid ""
+"If you reply to this message, keeping the Subject: header intact, Mailman will\n"
+"discard the held message. Do this if the message is spam. If you reply to\n"
+"this message and include an Approved: header with the list password in it, the\n"
+"message will be approved for posting to the list. The Approved: header can\n"
+"also appear in the first line of the body of the reply."
+msgstr ""
+
+#: Mailman/Handlers/MimeDel.py:56
+msgid "The message's content type was explicitly disallowed"
+msgstr ""
+
+#: Mailman/Handlers/MimeDel.py:61
+msgid "The message's content type was not explicitly allowed"
+msgstr ""
+
+#: Mailman/Handlers/MimeDel.py:73
+msgid "After content filtering, the message was empty"
+msgstr ""
+
+#: Mailman/Handlers/MimeDel.py:208
+msgid ""
+"The attached message matched the %(listname)s mailing list's content filtering\n"
+"rules and was prevented from being forwarded on to the list membership. You\n"
+"are receiving the only remaining copy of the discarded message.\n"
+"\n"
+msgstr ""
+
+#: Mailman/Handlers/MimeDel.py:214
+msgid "Content filtered message notification"
+msgstr ""
+
+#: Mailman/Handlers/Moderate.py:138
+msgid ""
+"You are not allowed to post to this mailing list, and your message has been\n"
+"automatically rejected. If you think that your messages are being rejected in\n"
+"error, contact the mailing list owner at %(listowner)s."
+msgstr ""
+
+#: Mailman/Handlers/Moderate.py:153
+msgid "Auto-discard notification"
+msgstr ""
+
+#: Mailman/Handlers/Moderate.py:156
+msgid "The attached message has been automatically discarded."
+msgstr ""
+
+#: Mailman/Handlers/Replybot.py:74
+msgid "Auto-response for your message to "
+msgstr ""
+
+#: Mailman/Handlers/Replybot.py:75
+msgid "the \"%(realname)s\" mailing list"
+msgstr ""
+
+#: Mailman/Handlers/Replybot.py:107
+msgid "The Mailman Replybot"
+msgstr ""
+
+#: Mailman/Handlers/Scrubber.py:148
+msgid "HTML attachment scrubbed and removed"
+msgstr ""
+
+#: Mailman/Handlers/Scrubber.py:162 Mailman/Handlers/Scrubber.py:188
+msgid ""
+"An HTML attachment was scrubbed...\n"
+"URL: %(url)s\n"
+msgstr ""
+
+#: Mailman/Handlers/Scrubber.py:201
+msgid "no subject"
+msgstr ""
+
+#: Mailman/Handlers/Scrubber.py:202
+msgid "no date"
+msgstr ""
+
+#: Mailman/Handlers/Scrubber.py:203
+msgid "unknown sender"
+msgstr ""
+
+#: Mailman/Handlers/Scrubber.py:205
+msgid ""
+"An embedded message was scrubbed...\n"
+"From: %(who)s\n"
+"Subject: %(subject)s\n"
+"Date: %(date)s\n"
+"Size: %(size)s\n"
+"Url: %(url)s\n"
+msgstr ""
+
+#: Mailman/Handlers/Scrubber.py:228
+msgid ""
+"A non-text attachment was scrubbed...\n"
+"Name: %(filename)s\n"
+"Type: %(ctype)s\n"
+"Size: %(size)d bytes\n"
+"Desc: %(desc)s\n"
+"Url : %(url)s\n"
+msgstr ""
+
+#: Mailman/Handlers/Scrubber.py:258
+msgid "Skipped content of type %(partctype)s"
+msgstr ""
+
+#: Mailman/Handlers/Scrubber.py:275
+msgid ""
+"-------------- next part --------------\n"
+msgstr ""
+
+#: Mailman/Handlers/ToDigest.py:141
+msgid "%(realname)s Digest, Vol %(volume)d, Issue %(issue)d"
+msgstr ""
+
+#: Mailman/Handlers/ToDigest.py:181
+msgid "digest header"
+msgstr ""
+
+#: Mailman/Handlers/ToDigest.py:184
+msgid "Digest Header"
+msgstr ""
+
+#: Mailman/Handlers/ToDigest.py:197
+msgid ""
+"Today's Topics:\n"
+msgstr ""
+
+#: Mailman/Handlers/ToDigest.py:267
+msgid "Today's Topics (%(msgcount)d messages)"
+msgstr ""
+
+#: Mailman/Handlers/ToDigest.py:292
+msgid "digest footer"
+msgstr ""
+
+#: Mailman/Handlers/ToDigest.py:295
+msgid "Digest Footer"
+msgstr ""
+
+#: Mailman/Handlers/ToDigest.py:309
+msgid "End of "
+msgstr ""
+
+#: Mailman/ListAdmin.py:307
+msgid "Posting of your message titled \"%(subject)s\""
+msgstr ""
+
+#: Mailman/ListAdmin.py:346
+msgid "Forward of moderated message"
+msgstr ""
+
+#: Mailman/ListAdmin.py:405
+msgid "New subscription request to list %(realname)s from %(addr)s"
+msgstr ""
+
+#: Mailman/ListAdmin.py:428
+msgid "Subscription request"
+msgstr ""
+
+#: Mailman/ListAdmin.py:458
+msgid "New unsubscription request from %(realname)s by %(addr)s"
+msgstr ""
+
+#: Mailman/ListAdmin.py:481
+msgid "Unsubscription request"
+msgstr ""
+
+#: Mailman/ListAdmin.py:512
+msgid "Original Message"
+msgstr ""
+
+#: Mailman/ListAdmin.py:515
+msgid "Request to mailing list %(realname)s rejected"
+msgstr ""
+
+#: Mailman/MTA/Manual.py:57
+msgid ""
+"The mailing list `%(listname)s' has been created via the through-the-web\n"
+"interface. In order to complete the activation of this mailing list, the\n"
+"proper /etc/aliases (or equivalent) file must be updated. The program\n"
+"`newaliases' may also have to be run.\n"
+"\n"
+"Here are the entries for the /etc/aliases file:\n"
+msgstr ""
+
+#: Mailman/MTA/Manual.py:67
+msgid ""
+"\n"
+"To finish creating your mailing list, you must edit your /etc/aliases (or\n"
+"equivalent) file by adding the following lines, and possibly running the\n"
+"`newaliases' program:\n"
+"\n"
+"## %(listname)s mailing list"
+msgstr ""
+
+#: Mailman/MTA/Manual.py:88
+msgid "Mailing list creation request for list %(listname)s"
+msgstr ""
+
+#: Mailman/MTA/Manual.py:103
+msgid ""
+"The mailing list `%(listname)s' has been removed via the through-the-web\n"
+"interface. In order to complete the de-activation of this mailing list, the\n"
+"appropriate /etc/aliases (or equivalent) file must be updated. The program\n"
+"`newaliases' may also have to be run.\n"
+"\n"
+"Here are the entries in the /etc/aliases file that should be removed:\n"
+msgstr ""
+
+#: Mailman/MTA/Manual.py:113
+msgid ""
+"\n"
+"To finish removing your mailing list, you must edit your /etc/aliases (or\n"
+"equivalent) file by removing the following lines, and possibly running the\n"
+"`newaliases' program:\n"
+"\n"
+"## %(listname)s mailing list"
+msgstr ""
+
+#: Mailman/MTA/Manual.py:132
+msgid "Mailing list removal request for list %(listname)s"
+msgstr ""
+
+#: Mailman/MTA/Postfix.py:300
+msgid "checking permissions on %(file)s"
+msgstr ""
+
+#: Mailman/MTA/Postfix.py:310
+msgid "%(file)s permissions must be 066x (got %(octmode)s)"
+msgstr ""
+
+#: Mailman/MTA/Postfix.py:312 Mailman/MTA/Postfix.py:339 bin/check_perms:100
+#: bin/check_perms:122 bin/check_perms:132 bin/check_perms:143
+#: bin/check_perms:162 bin/check_perms:180 bin/check_perms:200
+#: bin/check_perms:224 bin/check_perms:244 bin/check_perms:258
+#: bin/check_perms:278 bin/check_perms:315
+msgid "(fixing)"
+msgstr ""
+
+#: Mailman/MTA/Postfix.py:328
+msgid "checking ownership of %(dbfile)s"
+msgstr ""
+
+#: Mailman/MTA/Postfix.py:336
+msgid "%(dbfile)s owned by %(owner)s (must be owned by %(user)s"
+msgstr ""
+
+#: Mailman/MailList.py:697
+msgid "You have been invited to join the %(listname)s mailing list"
+msgstr ""
+
+#: Mailman/MailList.py:801 Mailman/MailList.py:1157
+msgid " from %(remote)s"
+msgstr ""
+
+#: Mailman/MailList.py:835
+msgid "subscriptions to %(realname)s require moderator approval"
+msgstr ""
+
+#: Mailman/MailList.py:894 bin/add_members:281
+msgid "%(realname)s subscription notification"
+msgstr ""
+
+#: Mailman/MailList.py:909
+msgid "unsubscriptions require moderator approval"
+msgstr ""
+
+#: Mailman/MailList.py:928
+msgid "%(realname)s unsubscribe notification"
+msgstr ""
+
+#: Mailman/MailList.py:1072
+msgid "subscriptions to %(name)s require administrator approval"
+msgstr ""
+
+#: Mailman/MailList.py:1326
+msgid "Last autoresponse notification for today"
+msgstr ""
+
+#: Mailman/Queue/BounceRunner.py:179
+msgid ""
+"The attached message was received as a bounce, but either the bounce format\n"
+"was not recognized, or no member addresses could be extracted from it. This\n"
+"mailing list has been configured to send all unrecognized bounce messages to\n"
+"the list administrator(s).\n"
+"\n"
+"For more information see:\n"
+"%(adminurl)s\n"
+"\n"
+msgstr ""
+
+#: Mailman/Queue/BounceRunner.py:189
+msgid "Uncaught bounce notification"
+msgstr ""
+
+#: Mailman/Queue/CommandRunner.py:74
+msgid "Ignoring non-text/plain MIME parts"
+msgstr ""
+
+#: Mailman/Queue/CommandRunner.py:129
+msgid ""
+"The results of your email command are provided below.\n"
+"Attached is your original message.\n"
+msgstr ""
+
+#: Mailman/Queue/CommandRunner.py:134
+msgid "- Results:"
+msgstr ""
+
+#: Mailman/Queue/CommandRunner.py:140
+msgid ""
+"\n"
+"- Unprocessed:"
+msgstr ""
+
+#: Mailman/Queue/CommandRunner.py:143
+msgid ""
+"\n"
+"- Ignored:"
+msgstr ""
+
+#: Mailman/Queue/CommandRunner.py:145
+msgid ""
+"\n"
+"- Done.\n"
+"\n"
+msgstr ""
+
+#: Mailman/Queue/CommandRunner.py:163
+msgid "The results of your email commands"
+msgstr ""
+
+#: Mailman/htmlformat.py:627
+msgid "Delivered by Mailman<br>version %(version)s"
+msgstr ""
+
+#: Mailman/htmlformat.py:628
+msgid "Python Powered"
+msgstr ""
+
+#: Mailman/htmlformat.py:629
+msgid "Gnu's Not Unix"
+msgstr ""
+
+#: Mailman/i18n.py:86
+msgid "Mon"
+msgstr ""
+
+#: Mailman/i18n.py:86
+msgid "Thu"
+msgstr ""
+
+#: Mailman/i18n.py:86
+msgid "Tue"
+msgstr ""
+
+#: Mailman/i18n.py:86
+msgid "Wed"
+msgstr ""
+
+#: Mailman/i18n.py:87
+msgid "Fri"
+msgstr ""
+
+#: Mailman/i18n.py:87
+msgid "Sat"
+msgstr ""
+
+#: Mailman/i18n.py:87
+msgid "Sun"
+msgstr ""
+
+#: Mailman/i18n.py:91
+msgid "Apr"
+msgstr ""
+
+#: Mailman/i18n.py:91
+msgid "Feb"
+msgstr ""
+
+#: Mailman/i18n.py:91
+msgid "Jan"
+msgstr ""
+
+#: Mailman/i18n.py:91
+msgid "Jun"
+msgstr ""
+
+#: Mailman/i18n.py:91
+msgid "Mar"
+msgstr ""
+
+#: Mailman/i18n.py:92
+msgid "Aug"
+msgstr ""
+
+#: Mailman/i18n.py:92
+msgid "Dec"
+msgstr ""
+
+#: Mailman/i18n.py:92
+msgid "Jul"
+msgstr ""
+
+#: Mailman/i18n.py:92
+msgid "Nov"
+msgstr ""
+
+#: Mailman/i18n.py:92
+msgid "Oct"
+msgstr ""
+
+#: Mailman/i18n.py:92
+msgid "Sep"
+msgstr ""
+
+#: Mailman/i18n.py:95
+msgid "Server Local Time"
+msgstr ""
+
+#: Mailman/i18n.py:128
+msgid "%(wday)s %(mon)s %(day)2i %(hh)02i:%(mm)02i:%(ss)02i %(tzname)s %(year)04i"
+msgstr ""
+
+#: bin/add_members:26
+#, docstring
+msgid ""
+"Add members to a list from the command line.\n"
+"\n"
+"Usage:\n"
+" add_members [options] listname\n"
+"\n"
+"Options:\n"
+"\n"
+" --regular-members-file=file\n"
+" -r file\n"
+" A file containing addresses of the members to be added, one\n"
+" address per line. This list of people become non-digest\n"
+" members. If file is `-', read addresses from stdin. Note that\n"
+" -n/--non-digest-members-file are deprecated synonyms for this option.\n"
+"\n"
+" --digest-members-file=file\n"
+" -d=file\n"
+" Similar to above, but these people become digest members.\n"
+"\n"
+" --changes-msg=<y|n>\n"
+" -c <y|n> \n"
+"\tSet whether or not to send the list members the `there's going to be\n"
+"\tbig changes to your list' message. defaults to no.\n"
+"\n"
+" --welcome-msg=<y|n>\n"
+" -w <y|n>\n"
+" Set whether or not to send the list members a welcome message,\n"
+" overriding whatever the list's `send_welcome_msg' setting is.\n"
+"\n"
+" --admin-notify=<y|n>\n"
+" -a <y|n>\n"
+" Set whether or not to send the list administrators a notification on\n"
+" the success/failure of these subscriptions, overriding whatever the\n"
+" list's `admin_notify_mchanges' setting is.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname\n"
+" The name of the Mailman list you are adding members to. It must\n"
+" already exist.\n"
+"\n"
+"You must supply at least one of -r and -d options. At most one of the\n"
+"files can be `-'.\n"
+msgstr ""
+
+#: bin/add_members:134
+msgid "Big change in %(listname)s@%(listhost)s mailing list"
+msgstr ""
+
+#: bin/add_members:167
+msgid "Already a member: %(member)s"
+msgstr ""
+
+#: bin/add_members:170
+msgid "Bad/Invalid email address: blank line"
+msgstr ""
+
+#: bin/add_members:172
+msgid "Bad/Invalid email address: %(member)s"
+msgstr ""
+
+#: bin/add_members:174
+msgid "Hostile address (illegal characters): %(member)s"
+msgstr ""
+
+#: bin/add_members:176
+msgid "Subscribed: %(member)s"
+msgstr ""
+
+#: bin/add_members:223
+msgid "Bad argument to -c/--changes-msg: %(arg)s"
+msgstr ""
+
+#: bin/add_members:230
+msgid "Bad argument to -w/--welcome-msg: %(arg)s"
+msgstr ""
+
+#: bin/add_members:237
+msgid "Bad argument to -a/--admin-notify: %(arg)s"
+msgstr ""
+
+#: bin/add_members:243
+msgid "Cannot read both digest and normal members from standard input."
+msgstr ""
+
+#: bin/add_members:249 bin/config_list:105 bin/find_member:97 bin/inject:90
+#: bin/list_admins:89 bin/list_members:187 bin/sync_members:222
+#: cron/bumpdigests:86
+msgid "No such list: %(listname)s"
+msgstr ""
+
+#: bin/add_members:269 bin/change_pw:158 bin/check_db:114 bin/sync_members:244
+#: cron/bumpdigests:78
+msgid "Nothing to do."
+msgstr ""
+
+#: bin/arch:19
+#, docstring
+msgid ""
+"Rebuild a list's archive.\n"
+"\n"
+"Use this command to rebuild the archives for a mailing list. You may want to\n"
+"do this if you edit some messages in an archive, or remove some messages from\n"
+"an archive.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] <listname> [<mbox>]\n"
+"\n"
+"Where options are:\n"
+" -h / --help\n"
+" Print this help message and exit.\n"
+"\n"
+" -q / --quiet\n"
+" Make the archiver output less verbose.\n"
+"\n"
+" --wipe\n"
+" First wipe out the original archive before regenerating. You usually\n"
+" want to specify this argument unless you're generating the archive in\n"
+" chunks.\n"
+"\n"
+" -s N\n"
+" --start=N\n"
+" Start indexing at article N, where article 0 is the first in the mbox.\n"
+" Defaults to 0.\n"
+"\n"
+" -e M\n"
+" --end=M\n"
+" End indexing at article M. This script is not very efficient with\n"
+" respect to memory management, and for large archives, it may not be\n"
+" possible to index the mbox entirely. For that reason, you can specify\n"
+" the start and end article numbers.\n"
+"\n"
+"Where <mbox> is the path to a list's complete mbox archive. Usually this will\n"
+"be some path in the archives/private directory. For example:\n"
+"\n"
+"%% bin/arch mylist archives/private/mylist.mbox/mylist.mbox\n"
+"\n"
+"<mbox> is optional. If it is missing, it is calculated.\n"
+msgstr ""
+
+#: bin/arch:125
+msgid "listname is required"
+msgstr ""
+
+#: bin/arch:143 bin/change_pw:106 bin/config_list:242
+msgid ""
+"No such list \"%(listname)s\"\n"
+"%(e)s"
+msgstr ""
+
+#: bin/arch:170
+msgid "Cannot open mbox file %(mbox)s: %(msg)s"
+msgstr ""
+
+#: bin/b4b5-archfix:19
+#, docstring
+msgid ""
+"Fix the MM2.1b4 archives.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] file ...\n"
+"\n"
+"Where options are:\n"
+" -h / --help\n"
+" Print this help message and exit.\n"
+"\n"
+"Only use this to `fix' some archive database files that may have gotten\n"
+"written in Mailman 2.1b4 with some bogus data. Use like this from your\n"
+"$PREFIX directory\n"
+"\n"
+"%% %(PROGRAM)s `grep -l _mlist archives/private/*/database/*-article`\n"
+"\n"
+"(note the backquotes are required)\n"
+"\n"
+"You will need to run `bin/check_perms -f' after running this script.\n"
+msgstr ""
+
+#: bin/change_pw:19
+#, docstring
+msgid ""
+"Change a list's password.\n"
+"\n"
+"Prior to Mailman 2.1, list passwords were kept in crypt'd format -- usually.\n"
+"Some Python installations didn't have the crypt module available, so they'd\n"
+"fall back to md5. Then suddenly the Python installation might grow a crypt\n"
+"module and all list passwords would be broken.\n"
+"\n"
+"In Mailman 2.1, all list and site passwords are stored in SHA1 hexdigest\n"
+"form. This breaks list passwords for all existing pre-Mailman 2.1 lists, and\n"
+"since those passwords aren't stored anywhere in plain text, they cannot be\n"
+"retrieved and updated.\n"
+"\n"
+"Thus, this script generates new passwords for a list, and optionally sends it\n"
+"to all the owners of the list.\n"
+"\n"
+"Usage: change_pw [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" --all / -a\n"
+" Change the password for all lists.\n"
+"\n"
+" --domain=domain\n"
+" -d domain\n"
+" Change the password for all lists in the virtual domain `domain'. It\n"
+" is okay to give multiple -d options.\n"
+"\n"
+" --listname=listname\n"
+" -l listname\n"
+" Change the password only for the named list. It is okay to give\n"
+" multiple -l options.\n"
+"\n"
+" --password=newpassword\n"
+" -p newpassword\n"
+" Use the supplied plain text password `newpassword' as the new password\n"
+" for any lists that are being changed (as specified by the -a, -d, and\n"
+" -l options). If not given, lists will be assigned a randomly\n"
+" generated new password.\n"
+"\n"
+" --quiet / -q\n"
+" Don't notify list owners of the new password. You'll have to have\n"
+" some other way of letting the list owners know the new password\n"
+" (presumably out-of-band).\n"
+"\n"
+" --help / -h\n"
+" Print this help message and exit.\n"
+msgstr ""
+
+#: bin/change_pw:144
+msgid "Bad arguments: %(strargs)s"
+msgstr ""
+
+#: bin/change_pw:148
+msgid "Empty list passwords are not allowed"
+msgstr ""
+
+#: bin/change_pw:179
+msgid "New %(listname)s password: %(notifypassword)s"
+msgstr ""
+
+#: bin/change_pw:188
+msgid "Your new %(listname)s list password"
+msgstr ""
+
+#: bin/change_pw:189
+msgid ""
+"The site administrator at %(hostname)s has changed the password for your\n"
+"mailing list %(listname)s. It is now\n"
+"\n"
+" %(notifypassword)s\n"
+"\n"
+"Please be sure to use this for all future list administration. You may want\n"
+"to log in now to your list and change the password to something more to your\n"
+"liking. Visit your list admin page at\n"
+"\n"
+" %(adminurl)s\n"
+msgstr ""
+
+#: bin/check_db:19
+#, docstring
+msgid ""
+"Check a list's config database file for integrity.\n"
+"\n"
+"All of the following files are checked:\n"
+"\n"
+" config.pck\n"
+" config.pck.last\n"
+" config.db\n"
+" config.db.last\n"
+" config.safety\n"
+"\n"
+"It's okay if any of these are missing. config.pck and config.pck.last are\n"
+"pickled versions of the config database file for 2.1a3 and beyond. config.db\n"
+"and config.db.last are used in all earlier versions, and these are Python\n"
+"marshals. config.safety is a pickle written by 2.1a3 and beyond when the\n"
+"primary config.pck file could not be read.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname [listname ...]]\n"
+"\n"
+"Options:\n"
+"\n"
+" --all / -a\n"
+" Check the databases for all lists. Otherwise only the lists named on\n"
+" the command line are checked.\n"
+"\n"
+" --verbose / -v\n"
+" Verbose output. The state of every tested file is printed.\n"
+" Otherwise only corrupt files are displayed.\n"
+"\n"
+" --help / -h\n"
+" Print this text and exit.\n"
+msgstr ""
+
+#: bin/check_db:119
+msgid "No list named:"
+msgstr ""
+
+#: bin/check_db:128
+msgid "List:"
+msgstr ""
+
+#: bin/check_db:148
+msgid " %(file)s: okay"
+msgstr ""
+
+#: bin/check_perms:19
+#, docstring
+msgid ""
+"Check the permissions for the Mailman installation.\n"
+"\n"
+"Usage: %(PROGRAM)s [-f] [-v] [-h]\n"
+"\n"
+"With no arguments, just check and report all the files that have bogus\n"
+"permissions or group ownership. With -f (and run as root), fix all the\n"
+"permission problems found. With -v be verbose.\n"
+"\n"
+msgstr ""
+
+#: bin/check_perms:85
+msgid " checking gid and mode for %(path)s"
+msgstr ""
+
+#: bin/check_perms:97
+msgid "%(path)s bad group (has: %(groupname)s, expected %(MAILMAN_GROUP)s)"
+msgstr ""
+
+#: bin/check_perms:120
+msgid "directory permissions must be %(octperms)s: %(path)s"
+msgstr ""
+
+#: bin/check_perms:129
+msgid "source perms must be %(octperms)s: %(path)s"
+msgstr ""
+
+#: bin/check_perms:140
+msgid "article db files must be %(octperms)s: %(path)s"
+msgstr ""
+
+#: bin/check_perms:152
+msgid "checking mode for %(prefix)s"
+msgstr ""
+
+#: bin/check_perms:160
+msgid "directory must be at least 02775: %(d)s"
+msgstr ""
+
+#: bin/check_perms:173
+msgid "checking perms on %(private)s"
+msgstr ""
+
+#: bin/check_perms:178
+msgid "%(private)s must not be other-readable"
+msgstr ""
+
+#: bin/check_perms:198
+msgid "mbox file must be at least 0660:"
+msgstr ""
+
+#: bin/check_perms:222
+msgid "%(dbdir)s \"other\" perms must be 000"
+msgstr ""
+
+#: bin/check_perms:233
+msgid "checking cgi-bin permissions"
+msgstr ""
+
+#: bin/check_perms:238
+msgid " checking set-gid for %(path)s"
+msgstr ""
+
+#: bin/check_perms:242
+msgid "%(path)s must be set-gid"
+msgstr ""
+
+#: bin/check_perms:252
+msgid "checking set-gid for %(wrapper)s"
+msgstr ""
+
+#: bin/check_perms:256
+msgid "%(wrapper)s must be set-gid"
+msgstr ""
+
+#: bin/check_perms:266
+msgid "checking permissions on %(pwfile)s"
+msgstr ""
+
+#: bin/check_perms:275
+msgid "%(pwfile)s permissions must be exactly 0640 (got %(octmode)s)"
+msgstr ""
+
+#: bin/check_perms:299
+msgid "checking permissions on list data"
+msgstr ""
+
+#: bin/check_perms:305
+msgid " checking permissions on: %(path)s"
+msgstr ""
+
+#: bin/check_perms:313
+msgid "file permissions must be at least 660: %(path)s"
+msgstr ""
+
+#: bin/check_perms:359
+msgid "No problems found"
+msgstr ""
+
+#: bin/check_perms:361
+msgid "Problems found:"
+msgstr ""
+
+#: bin/check_perms:362
+msgid "Re-run as %(MAILMAN_USER)s (or root) with -f flag to fix"
+msgstr ""
+
+#: bin/cleanarch:19
+#, docstring
+msgid ""
+"Clean up an .mbox archive file.\n"
+"\n"
+"The archiver looks for Unix-From lines separating messages in an mbox archive\n"
+"file. For compatibility, it specifically looks for lines that start with\n"
+"\"From \" -- i.e. the letters capital-F, lowercase-r, o, m, space, ignoring\n"
+"everything else on the line.\n"
+"\n"
+"Normally, any lines that start \"From \" in the body of a message should be\n"
+"escaped such that a > character is actually the first on a line. It is\n"
+"possible though that body lines are not actually escaped. This script\n"
+"attempts to fix these by doing a stricter test of the Unix-From lines. Any\n"
+"lines that start \"From \" but do not pass this stricter test are escaped with a\n"
+"> character.\n"
+"\n"
+"Usage: cleanarch [options] < inputfile > outputfile\n"
+"Options:\n"
+" -s n\n"
+" --status=n\n"
+" Print a # character every n lines processed\n"
+"\n"
+" -q / --quiet\n"
+" Don't print changed line information to standard error.\n"
+"\n"
+" -n / --dry-run\n"
+" Don't actually output anything.\n"
+"\n"
+" -h / --help\n"
+" Print this message and exit\n"
+msgstr ""
+
+#: bin/cleanarch:82
+msgid "Unix-From line changed: %(lineno)d"
+msgstr ""
+
+#: bin/cleanarch:110
+msgid "Bad status number: %(arg)s"
+msgstr ""
+
+#: bin/cleanarch:160
+msgid "%(messages)d messages found"
+msgstr ""
+
+#: bin/clone_member:19
+#, docstring
+msgid ""
+"Clone a member address.\n"
+"\n"
+"Cloning a member address means that a new member will be added who has all the\n"
+"same options and passwords as the original member address. Note that this\n"
+"operation is fairly trusting of the user who runs it -- it does no\n"
+"verification to the new address, it does not send out a welcome message, etc.\n"
+"\n"
+"The existing member's subscription is usually not modified in any way. If you\n"
+"want to remove the old address, use the -r flag. If you also want to change\n"
+"any list admin addresses, use the -a flag.\n"
+"\n"
+"Usage:\n"
+" clone_member [options] fromoldaddr tonewaddr\n"
+"\n"
+"Where:\n"
+"\n"
+" --listname=listname\n"
+" -l listname\n"
+" Check and modify only the named mailing lists. If -l is not given,\n"
+" then all mailing lists are scanned from the address. Multiple -l\n"
+" options can be supplied.\n"
+"\n"
+" --remove\n"
+" -r\n"
+" Remove the old address from the mailing list after it's been cloned.\n"
+"\n"
+" --admin\n"
+" -a\n"
+" Scan the list admin addresses for the old address, and clone or change\n"
+" them too.\n"
+"\n"
+" --quiet\n"
+" -q\n"
+" Do the modifications quietly.\n"
+"\n"
+" --nomodify\n"
+" -n\n"
+" Print what would be done, but don't actually do it. Inhibits the\n"
+" --quiet flag.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" fromoldaddr (`from old address') is the old address of the user. tonewaddr\n"
+" (`to new address') is the new address of the user.\n"
+"\n"
+msgstr ""
+
+#: bin/clone_member:94
+msgid "processing mailing list:"
+msgstr ""
+
+#: bin/clone_member:101
+msgid " scanning list owners:"
+msgstr ""
+
+#: bin/clone_member:119
+msgid " new list owners:"
+msgstr ""
+
+#: bin/clone_member:121
+msgid "(no change)"
+msgstr ""
+
+#: bin/clone_member:130
+msgid " address not found:"
+msgstr ""
+
+#: bin/clone_member:139
+msgid " clone address added:"
+msgstr ""
+
+#: bin/clone_member:142
+msgid " clone address is already a member:"
+msgstr ""
+
+#: bin/clone_member:145
+msgid " original address removed:"
+msgstr ""
+
+#: bin/clone_member:196
+msgid "Not a valid email address: %(toaddr)s"
+msgstr ""
+
+#: bin/clone_member:209
+msgid ""
+"Error opening list \"%(listname)s\", skipping.\n"
+"%(e)s"
+msgstr ""
+
+#: bin/config_list:19
+#, docstring
+msgid ""
+"Configure a list from a text file description.\n"
+"\n"
+"Usage: config_list [options] listname\n"
+"\n"
+"Options:\n"
+" --inputfile filename\n"
+" -i filename\n"
+" Configure the list by assigning each module-global variable in the\n"
+" file to an attribute on the list object, then saving the list. The\n"
+" named file is loaded with execfile() and must be legal Python code.\n"
+" Any variable that isn't already an attribute of the list object is\n"
+" ignored (a warning message is printed). See also the -c option.\n"
+"\n"
+" A special variable named `mlist' is put into the globals during the\n"
+" execfile, which is bound to the actual MailList object. This lets you\n"
+" do all manner of bizarre thing to the list object, but BEWARE! Using\n"
+" this can severely (and possibly irreparably) damage your mailing list!\n"
+"\n"
+" --outputfile filename\n"
+" -o filename\n"
+" Instead of configuring the list, print out a list's configuration\n"
+" variables in a format suitable for input using this script. In this\n"
+" way, you can easily capture the configuration settings for a\n"
+" particular list and imprint those settings on another list. filename\n"
+" is the file to output the settings to. If filename is `-', standard\n"
+" out is used.\n"
+"\n"
+" --checkonly\n"
+" -c\n"
+" With this option, the modified list is not actually changed. Only\n"
+" useful with -i.\n"
+"\n"
+" --verbose\n"
+" -v\n"
+" Print the name of each attribute as it is being changed. Only useful\n"
+" with -i.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+"The options -o and -i are mutually exclusive.\n"
+"\n"
+msgstr ""
+
+#: bin/config_list:109
+msgid ""
+"## \"%(listname)s\" mailing list configuration settings -*- python -*-\n"
+"## captured on %(when)s\n"
+msgstr ""
+
+#: bin/config_list:131
+msgid "options"
+msgstr ""
+
+#: bin/config_list:188
+msgid "legal values are:"
+msgstr ""
+
+#: bin/config_list:255
+msgid "attribute \"%(k)s\" ignored"
+msgstr ""
+
+#: bin/config_list:258
+msgid "attribute \"%(k)s\" changed"
+msgstr ""
+
+#: bin/config_list:264
+msgid "Non-standard property restored: %(k)s"
+msgstr ""
+
+#: bin/config_list:272
+msgid "Invalid value for property: %(k)s"
+msgstr ""
+
+#: bin/config_list:274
+msgid "Bad email address for option %(k)s: %(v)s"
+msgstr ""
+
+#: bin/config_list:322
+msgid "Only one of -i or -o is allowed"
+msgstr ""
+
+#: bin/config_list:324
+msgid "One of -i or -o is required"
+msgstr ""
+
+#: bin/config_list:328
+msgid "List name is required"
+msgstr ""
+
+#: bin/convert.py:19
+#, docstring
+msgid ""
+"Convert a list's interpolation strings from %-strings to $-strings.\n"
+"\n"
+"This script is intended to be run as a bin/withlist script, i.e.\n"
+"\n"
+"% bin/withlist -l -r convert <mylist>\n"
+msgstr ""
+
+#: bin/convert.py:38 bin/fix_url.py:85
+msgid "Saving list"
+msgstr ""
+
+#: bin/convert.py:44 bin/fix_url.py:51
+msgid "%%%"
+msgstr ""
+
+#: bin/dumpdb:19
+#, docstring
+msgid ""
+"Dump the contents of any Mailman `database' file.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] filename\n"
+"\n"
+"Options:\n"
+"\n"
+" --marshal/-m\n"
+" Assume the file contains a Python marshal, overridding any automatic\n"
+" guessing.\n"
+"\n"
+" --pickle/-p\n"
+" Assume the file contains a Python pickle, overridding any automatic\n"
+" guessing.\n"
+"\n"
+" --noprint/-n\n"
+" Don't attempt to pretty print the object. This is useful if there's\n"
+" some problem with the object and you just want to get an unpickled\n"
+" representation. Useful with `python -i bin/dumpdb <file>'. In that\n"
+" case, the root of the tree will be left in a global called \"msg\".\n"
+"\n"
+" --help/-h\n"
+" Print this help message and exit\n"
+"\n"
+"If the filename ends with `.db', then it is assumed that the file contains a\n"
+"Python marshal. If the file ends with `.pck' then it is assumed to contain a\n"
+"Python pickle. In either case, if you want to override the default assumption\n"
+"-- or if the file ends in neither suffix -- use the -p or -m flags.\n"
+msgstr ""
+
+#: bin/dumpdb:101
+msgid "No filename given."
+msgstr ""
+
+#: bin/dumpdb:104
+msgid "Bad arguments: %(pargs)s"
+msgstr ""
+
+#: bin/dumpdb:114
+msgid "Please specify either -p or -m."
+msgstr ""
+
+#: bin/find_member:19
+#, docstring
+msgid ""
+"Find all lists that a member's address is on.\n"
+"\n"
+"Usage:\n"
+" find_member [options] regex [regex [...]]\n"
+"\n"
+"Where:\n"
+" --listname=listname\n"
+" -l listname\n"
+" Include only the named list in the search.\n"
+"\n"
+" --exclude=listname\n"
+" -x listname\n"
+" Exclude the named list from the search.\n"
+"\n"
+" --owners\n"
+" -w\n"
+" Search list owners as well as members.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" regex\n"
+" A Python regular expression to match against.\n"
+"\n"
+"The interaction between -l and -x is as follows. If any -l option is given\n"
+"then only the named list will be included in the search. If any -x option is\n"
+"given but no -l option is given, then all lists will be search except those\n"
+"specifically excluded.\n"
+"\n"
+"Regular expression syntax is Perl5-like, using the Python re module. Complete\n"
+"specifications are at:\n"
+"\n"
+"http://www.python.org/doc/current/lib/module-re.html\n"
+"\n"
+"Address matches are case-insensitive, but case-preserved addresses are\n"
+"displayed.\n"
+"\n"
+msgstr ""
+
+#: bin/find_member:159
+msgid "Search regular expression required"
+msgstr ""
+
+#: bin/find_member:164
+msgid "No lists to search"
+msgstr ""
+
+#: bin/find_member:173
+msgid "found in:"
+msgstr ""
+
+#: bin/find_member:179
+msgid "(as owner)"
+msgstr ""
+
+#: bin/fix_url.py:19
+#, docstring
+msgid ""
+"Reset a list's web_page_url attribute to the default setting.\n"
+"\n"
+"This script is intended to be run as a bin/withlist script, i.e.\n"
+"\n"
+"% bin/withlist -l -r fix_url listname [options]\n"
+"\n"
+"Options:\n"
+" -u urlhost\n"
+" --urlhost=urlhost\n"
+" Look up urlhost in the virtual host table and set the web_page_url and\n"
+" host_name attributes of the list to the values found. This\n"
+" essentially moves the list from one virtual domain to another.\n"
+"\n"
+" Without this option, the default web_page_url and host_name values are\n"
+" used.\n"
+"\n"
+" -v / --verbose\n"
+" Print what the script is doing.\n"
+"\n"
+"If run standalone, it prints this help text and exits.\n"
+msgstr ""
+
+#: bin/fix_url.py:80
+msgid "Setting web_page_url to: %(web_page_url)s"
+msgstr ""
+
+#: bin/fix_url.py:83
+msgid "Setting host_name to: %(mailhost)s"
+msgstr ""
+
+#: bin/genaliases:19
+#, docstring
+msgid ""
+"Regenerate Postfix's data/aliases and data/aliases.db files from scratch.\n"
+"\n"
+"Usage:\n"
+"\n"
+" genaliases [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+msgstr ""
+
+#: bin/inject:19
+#, docstring
+msgid ""
+"Inject a message from a file into Mailman's incoming queue.\n"
+"\n"
+"Usage: inject [options] [filename]\n"
+"\n"
+"Options:\n"
+"\n"
+" -h / --help\n"
+" Print this text and exit.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" The name of the list to inject this message to. Required.\n"
+"\n"
+" -q queuename\n"
+" --queue=queuename\n"
+" The name of the queue to inject the message to. The queuename must be\n"
+" one of the directories inside the qfiles directory. If omitted, the\n"
+" incoming queue is used.\n"
+"\n"
+"filename is the name of the plaintext message file to inject. If omitted,\n"
+"standard input is used.\n"
+msgstr ""
+
+#: bin/inject:83
+msgid "Bad queue directory: %(qdir)s"
+msgstr ""
+
+#: bin/inject:88
+msgid "A list name is required"
+msgstr ""
+
+#: bin/list_admins:19
+#, docstring
+msgid ""
+"List all the owners of a mailing list.\n"
+"\n"
+"Usage: %(program)s [options] listname ...\n"
+"\n"
+"Where:\n"
+"\n"
+" --all-vhost=vhost\n"
+" -v=vhost\n"
+" List the owners of all the mailing lists for the given virtual host.\n"
+"\n"
+" --all\n"
+" -a\n"
+" List the owners of all the mailing lists on this system.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+"`listname' is the name of the mailing list to print the owners of. You can\n"
+"have more than one named list on the command line.\n"
+msgstr ""
+
+#: bin/list_admins:96
+msgid "List: %(listname)s, \tOwners: %(owners)s"
+msgstr ""
+
+#: bin/list_lists:19
+#, docstring
+msgid ""
+"List all mailing lists.\n"
+"\n"
+"Usage: %(program)s [options]\n"
+"\n"
+"Where:\n"
+"\n"
+" -a / --advertised\n"
+" List only those mailing lists that are publically advertised\n"
+"\n"
+" --virtual-host-overview=domain\n"
+" -V domain\n"
+" List only those mailing lists that are homed to the given virtual\n"
+" domain. This only works if the VIRTUAL_HOST_OVERVIEW variable is\n"
+" set.\n"
+"\n"
+" -b / --bare\n"
+" Displays only the list name, with no description.\n"
+"\n"
+" -h / --help\n"
+" Print this text and exit.\n"
+"\n"
+msgstr ""
+
+#: bin/list_lists:105
+msgid "No matching mailing lists found"
+msgstr ""
+
+#: bin/list_lists:109
+msgid "matching mailing lists found:"
+msgstr ""
+
+#: bin/list_members:19
+#, docstring
+msgid ""
+"List all the members of a mailing list.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] listname\n"
+"\n"
+"Where:\n"
+"\n"
+" --output file\n"
+" -o file\n"
+" Write output to specified file instead of standard out.\n"
+"\n"
+" --regular / -r\n"
+" Print just the regular (non-digest) members.\n"
+"\n"
+" --digest[=kind] / -d [kind]\n"
+" Print just the digest members. Optional argument can be \"mime\" or\n"
+" \"plain\" which prints just the digest members receiving that kind of\n"
+" digest.\n"
+"\n"
+" --nomail[=why] / -n [why]\n"
+" Print the members that have delivery disabled. Optional argument can\n"
+" be \"byadmin\", \"byuser\", \"bybounce\", or \"unknown\" which prints just the\n"
+" users who have delivery disabled for that reason. It can also be\n"
+" \"enabled\" which prints just those member for whom delivery is\n"
+" enabled.\n"
+"\n"
+" --fullnames / -f\n"
+" Include the full names in the output.\n"
+"\n"
+" --preserve\n"
+" -p\n"
+" Output member addresses case preserved the way they were added to the\n"
+" list. Otherwise, addresses are printed in all lowercase.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname is the name of the mailing list to use.\n"
+"\n"
+"Note that if neither -r or -d is supplied, both regular members are printed\n"
+"first, followed by digest members, but no indication is given as to address\n"
+"status.\n"
+msgstr ""
+
+#: bin/list_members:150
+msgid "Bad --nomail option: %(why)s"
+msgstr ""
+
+#: bin/list_members:161
+msgid "Bad --digest option: %(kind)s"
+msgstr ""
+
+#: bin/list_members:179
+msgid "Could not open file for writing:"
+msgstr ""
+
+#: bin/list_owners:19
+#, docstring
+msgid ""
+"List the owners of a mailing list, or all mailing lists.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname ...]\n"
+"Options:\n"
+"\n"
+" -w / --with-listnames\n"
+" Group the owners by list names and include the list names in the\n"
+" output. Otherwise, the owners will be sorted and uniquified based on\n"
+" the email address.\n"
+"\n"
+" -m / --moderators\n"
+" Include the list moderators in the output.\n"
+"\n"
+" -h / --help\n"
+" Print this help message and exit.\n"
+"\n"
+" listname\n"
+" Print the owners of the specified lists. More than one can appear\n"
+" after the options. If there are no listnames provided, the owners of\n"
+" all the lists will be displayed.\n"
+msgstr ""
+
+#: bin/mailmanctl:19
+#, docstring
+msgid ""
+"Primary start-up and shutdown script for Mailman's qrunner daemon.\n"
+"\n"
+"This script starts, stops, and restarts the main Mailman queue runners, making\n"
+"sure that the various long-running qrunners are still alive and kicking. It\n"
+"does this by forking and exec'ing the qrunners and waiting on their pids.\n"
+"When it detects a subprocess has exited, it may restart it.\n"
+"\n"
+"The qrunners respond to SIGINT, SIGTERM, and SIGHUP. SIGINT and SIGTERM both\n"
+"cause the qrunners to exit cleanly, but the master will only restart qrunners\n"
+"that have exited due to a SIGINT. SIGHUP causes the master and the qrunners\n"
+"to close their log files, and reopen then upon the next printed message.\n"
+"\n"
+"The master also responds to SIGINT, SIGTERM, and SIGHUP, which it simply\n"
+"passes on to the qrunners (note that the master will close and reopen its own\n"
+"log files on receipt of a SIGHUP). The master also leaves its own process id\n"
+"in the file data/master-qrunner.pid but you normally don't need to use this\n"
+"pid directly. The `start', `stop', `restart', and `reopen' commands handle\n"
+"everything for you.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [ start | stop | restart | reopen ]\n"
+"\n"
+"Options:\n"
+"\n"
+" -n/--no-restart\n"
+" Don't restart the qrunners when they exit because of an error or a\n"
+" SIGINT. They are never restarted if they exit in response to a\n"
+" SIGTERM. Use this only for debugging. Only useful if the `start'\n"
+" command is given.\n"
+"\n"
+" -u/--run-as-user\n"
+" Normally, this script will refuse to run if the user id and group id\n"
+" are not set to the `mailman' user and group (as defined when you\n"
+" configured Mailman). If run as root, this script will change to this\n"
+" user and group before the check is made.\n"
+"\n"
+" This can be inconvenient for testing and debugging purposes, so the -u\n"
+" flag means that the step that sets and checks the uid/gid is skipped,\n"
+" and the program is run as the current user and group. This flag is\n"
+" not recommended for normal production environments.\n"
+"\n"
+" Note though, that if you run with -u and are not in the mailman group,\n"
+" you may have permission problems, such as begin unable to delete a\n"
+" list's archives through the web. Tough luck!\n"
+"\n"
+" -s/--stale-lock-cleanup\n"
+" If mailmanctl finds an existing master lock, it will normally exit\n"
+" with an error message. With this option, mailmanctl will perform an\n"
+" extra level of checking. If a process matching the host/pid described\n"
+" in the lock file is running, mailmanctl will still exit, but if no\n"
+" matching process is found, mailmanctl will remove the apparently stale\n"
+" lock and make another attempt to claim the master lock.\n"
+"\n"
+" -q/--quiet\n"
+" Don't print status messages. Error messages are still printed to\n"
+" standard error.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+"\n"
+"Commands:\n"
+"\n"
+" start - Start the master daemon and all qrunners. Prints a message and\n"
+" exits if the master daemon is already running.\n"
+"\n"
+" stop - Stops the master daemon and all qrunners. After stopping, no\n"
+" more messages will be processed.\n"
+"\n"
+" restart - Restarts the qrunners, but not the master process. Use this\n"
+" whenever you upgrade or update Mailman so that the qrunners will\n"
+" use the newly installed code.\n"
+"\n"
+" reopen - This will close all log files, causing them to be re-opened the\n"
+" next time a message is written to them\n"
+msgstr ""
+
+#: bin/mailmanctl:149
+msgid "PID unreadable in: %(pidfile)s"
+msgstr ""
+
+#: bin/mailmanctl:151
+msgid "Is qrunner even running?"
+msgstr ""
+
+#: bin/mailmanctl:157
+msgid "No child with pid: %(pid)s"
+msgstr ""
+
+#: bin/mailmanctl:159
+msgid "Stale pid file removed."
+msgstr ""
+
+#: bin/mailmanctl:217
+msgid ""
+"The master qrunner lock could not be acquired because it appears as if another\n"
+"master qrunner is already running.\n"
+msgstr ""
+
+#: bin/mailmanctl:223
+msgid ""
+"The master qrunner lock could not be acquired. It appears as though there is\n"
+"a stale master qrunner lock. Try re-running mailmanctl with the -s flag.\n"
+msgstr ""
+
+#: bin/mailmanctl:229
+msgid ""
+"The master qrunner lock could not be acquired, because it appears as if some\n"
+"process on some other host may have acquired it. We can't test for stale\n"
+"locks across host boundaries, so you'll have to do this manually. Or, if you\n"
+"know the lock is stale, re-run mailmanctl with the -s flag.\n"
+"\n"
+"Lock file: %(LOCKFILE)s\n"
+"Lock host: %(status)s\n"
+"\n"
+"Exiting."
+msgstr ""
+
+#: bin/mailmanctl:282
+msgid "Run this program as root or as the %(name)s user, or use -u."
+msgstr ""
+
+#: bin/mailmanctl:313
+msgid "No command given."
+msgstr ""
+
+#: bin/mailmanctl:316
+msgid "Bad command: %(command)s"
+msgstr ""
+
+#: bin/mailmanctl:321
+msgid "Warning! You may encounter permission problems."
+msgstr ""
+
+#: bin/mailmanctl:330
+msgid "Shutting down Mailman's master qrunner"
+msgstr ""
+
+#: bin/mailmanctl:337
+msgid "Restarting Mailman's master qrunner"
+msgstr ""
+
+#: bin/mailmanctl:341
+msgid "Re-opening all log files"
+msgstr ""
+
+#: bin/mailmanctl:375
+msgid "Starting Mailman's master qrunner."
+msgstr ""
+
+#: bin/mmsitepass:19
+#, docstring
+msgid ""
+"Set the site password, prompting from the terminal.\n"
+"\n"
+"The site password can be used in most if not all places that the list\n"
+"administrator's password can be used, which in turn can be used in most places\n"
+"that a list users password can be used.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [password]\n"
+"\n"
+"Options:\n"
+"\n"
+" -c/--listcreator\n"
+" Set the list creator password instead of the site password. The list\n"
+" creator is authorized to create and remove lists, but does not have\n"
+" the total power of the site administrator.\n"
+"\n"
+" -h/--help\n"
+" Print this help message and exit.\n"
+"\n"
+"If password is not given on the command line, it will be prompted for.\n"
+msgstr ""
+
+#: bin/mmsitepass:73
+msgid "site"
+msgstr ""
+
+#: bin/mmsitepass:80
+msgid "list creator"
+msgstr ""
+
+#: bin/mmsitepass:86
+msgid "New %(pwdesc)s password: "
+msgstr ""
+
+#: bin/mmsitepass:87
+msgid "Again to confirm password: "
+msgstr ""
+
+#: bin/mmsitepass:89
+msgid "Passwords do not match; no changes made."
+msgstr ""
+
+#: bin/mmsitepass:92
+msgid "Interrupted..."
+msgstr ""
+
+#: bin/mmsitepass:98
+msgid "Password changed."
+msgstr ""
+
+#: bin/mmsitepass:100
+msgid "Password change failed."
+msgstr ""
+
+#: bin/newlist:19
+#, docstring
+msgid ""
+"Create a new, unpopulated mailing list.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname [listadmin-addr [admin-password]]]\n"
+"\n"
+"Options:\n"
+"\n"
+" -l language\n"
+" --language language\n"
+" Make the list's preferred language `language', which must be a two\n"
+" letter language code.\n"
+"\n"
+" -q/--quiet\n"
+" Normally the administrator is notified by email (after a prompt) that\n"
+" their list has been created. This option suppresses the prompt and\n"
+" notification.\n"
+"\n"
+" -h/--help\n"
+" Print this help text and exit.\n"
+"\n"
+"You can specify as many of the arguments as you want on the command line:\n"
+"you will be prompted for the missing ones.\n"
+"\n"
+"Every Mailman list has two parameters which define the default host name for\n"
+"outgoing email, and the default URL for all web interfaces. When you\n"
+"configured Mailman, certain defaults were calculated, but if you are running\n"
+"multiple virtual Mailman sites, then the defaults may not be appropriate for\n"
+"the list you are creating.\n"
+"\n"
+"You can specify the domain to create your new list in by spelling the listname\n"
+"like so:\n"
+"\n"
+" mylist@www.mydom.ain\n"
+"\n"
+"where `www.mydom.ain' should be the base hostname for the URL to this virtual\n"
+"hosts's lists. E.g. with is setting people will view the general list\n"
+"overviews at http://www.mydom.ain/mailman/listinfo. Also, www.mydom.ain\n"
+"should be a key in the VIRTUAL_HOSTS mapping in mm_cfg.py/Defaults.py. It\n"
+"will be looked up to give the email hostname. If this can't be found, then\n"
+"www.mydom.ain will be used for both the web interface and the email\n"
+"interface.\n"
+"\n"
+"If you spell the list name as just `mylist', then the email hostname will be\n"
+"taken from DEFAULT_EMAIL_HOST and the url will be taken from DEFAULT_URL (as\n"
+"defined in your Defaults.py file or overridden by settings in mm_cfg.py).\n"
+"\n"
+"Note that listnames are forced to lowercase.\n"
+msgstr ""
+
+#: bin/newlist:118
+msgid "Unknown language: %(lang)s"
+msgstr ""
+
+#: bin/newlist:123
+msgid "Enter the name of the list: "
+msgstr ""
+
+#: bin/newlist:140
+msgid "Enter the email of the person running the list: "
+msgstr ""
+
+#: bin/newlist:145
+msgid "Initial %(listname)s password: "
+msgstr ""
+
+#: bin/newlist:149
+msgid "The list password cannot be empty"
+msgstr ""
+
+#: bin/newlist:190
+msgid "Hit enter to notify %(listname)s owner..."
+msgstr ""
+
+#: bin/qrunner:19
+#, docstring
+msgid ""
+"Run one or more qrunners, once or repeatedly.\n"
+"\n"
+"Each named runner class is run in round-robin fashion. In other words, the\n"
+"first named runner is run to consume all the files currently in its\n"
+"directory. When that qrunner is done, the next one is run to consume all the\n"
+"files in /its/ directory, and so on. The number of total iterations can be\n"
+"given on the command line.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" -r runner[:slice:range]\n"
+" --runner=runner[:slice:range]\n"
+" Run the named qrunner, which must be one of the strings returned by\n"
+" the -l option. Optional slice:range if given, is used to assign\n"
+" multiple qrunner processes to a queue. range is the total number of\n"
+" qrunners for this queue while slice is the number of this qrunner from\n"
+" [0..range).\n"
+"\n"
+" If using the slice:range form, you better make sure that each qrunner\n"
+" for the queue is given the same range value. If slice:runner is not\n"
+" given, then 1:1 is used.\n"
+"\n"
+" Multiple -r options may be given, in which case each qrunner will run\n"
+" once in round-robin fashion. The special runner `All' is shorthand\n"
+" for a qrunner for each listed by the -l option.\n"
+"\n"
+" --once\n"
+" -o\n"
+" Run each named qrunner exactly once through its main loop. Otherwise,\n"
+" each qrunner runs indefinitely, until the process receives a SIGTERM\n"
+" or SIGINT.\n"
+"\n"
+" -l/--list\n"
+" Shows the available qrunner names and exit.\n"
+"\n"
+" -v/--verbose\n"
+" Spit out more debugging information to the logs/qrunner log file.\n"
+"\n"
+" -s/--subproc\n"
+" This should only be used when running qrunner as a subprocess of the\n"
+" mailmanctl startup script. It changes some of the exit-on-error\n"
+" behavior to work better with that framework.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+"\n"
+"runner is required unless -l or -h is given, and it must be one of the names\n"
+"displayed by the -l switch.\n"
+msgstr ""
+
+#: bin/qrunner:176
+msgid "%(name)s runs the %(runnername)s qrunner"
+msgstr ""
+
+#: bin/qrunner:177
+msgid "All runs all the above qrunners"
+msgstr ""
+
+#: bin/qrunner:213
+msgid "No runner name given."
+msgstr ""
+
+#: bin/remove_members:19
+#, docstring
+msgid ""
+"Remove members from a list.\n"
+"\n"
+"Usage:\n"
+" remove_members [options] [listname] [addr1 ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" --file=file\n"
+" -f file\n"
+" Remove member addresses found in the given file. If file is\n"
+" `-', read stdin.\n"
+"\n"
+" --all\n"
+" -a\n"
+" Remove all members of the mailing list.\n"
+" (mutually exclusive with --fromall)\n"
+"\n"
+" --fromall\n"
+" Removes the given addresses from all the lists on this system\n"
+" regardless of virtual domains if you have any. This option cannot be\n"
+" used -a/--all. Also, you should not specify a listname when using this\n"
+" option.\n"
+"\n"
+" --nouserack\n"
+" -n\n"
+" Don't send the user acknowledgements.\n"
+"\n"
+" --noadminack\n"
+" -N\n"
+" Don't send the admin acknowledgements.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname is the name of the mailing list to use.\n"
+"\n"
+" addr1 ... are additional addresses to remove.\n"
+"\n"
+msgstr ""
+
+#: bin/remove_members:147
+msgid "Could not open file for reading: %(filename)s."
+msgstr ""
+
+#: bin/remove_members:154
+msgid "Error opening list %(listname)s... skipping."
+msgstr ""
+
+#: bin/remove_members:164
+msgid "No such member: %(addr)s"
+msgstr ""
+
+#: bin/remove_members:171
+msgid "User `%(addr)s' removed from list: %(listname)s."
+msgstr ""
+
+#: bin/rmlist:19
+#, docstring
+msgid ""
+"Remove the components of a mailing list with impunity - beware!\n"
+"\n"
+"This removes (almost) all traces of a mailing list. By default, the lists\n"
+"archives are not removed, which is very handy for retiring old lists.\n"
+"\n"
+"Usage:\n"
+" rmlist [-a] [-h] listname\n"
+"\n"
+"Where:\n"
+" --archives\n"
+" -a\n"
+" Remove the list's archives too, or if the list has already been\n"
+" deleted, remove any residual archives.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+msgstr ""
+
+#: bin/rmlist:66 bin/rmlist:69
+msgid "Removing %(msg)s"
+msgstr ""
+
+#: bin/rmlist:72
+msgid "%(listname)s %(msg)s not found as %(dir)s"
+msgstr ""
+
+#: bin/rmlist:96
+msgid "No such list (or list already deleted): %(listname)s"
+msgstr ""
+
+#: bin/rmlist:98
+msgid "No such list: %(listname)s. Removing its residual archives."
+msgstr ""
+
+#: bin/rmlist:102
+msgid "Not removing archives. Reinvoke with -a to remove them."
+msgstr ""
+
+#: bin/rmlist:116
+msgid "list info"
+msgstr ""
+
+#: bin/rmlist:122 bin/rmlist:124
+msgid "private archives"
+msgstr ""
+
+#: bin/rmlist:126 bin/rmlist:128
+msgid "public archives"
+msgstr ""
+
+#: bin/sync_members:19
+#, docstring
+msgid ""
+"Synchronize a mailing list's membership with a flat file.\n"
+"\n"
+"This script is useful if you have a Mailman mailing list and a sendmail\n"
+":include: style list of addresses (also as is used in Majordomo). For every\n"
+"address in the file that does not appear in the mailing list, the address is\n"
+"added. For every address in the mailing list that does not appear in the\n"
+"file, the address is removed. Other options control what happens when an\n"
+"address is added or removed.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] -f file listname\n"
+"\n"
+"Where `options' are:\n"
+"\n"
+" --no-change\n"
+" -n\n"
+" Don't actually make the changes. Instead, print out what would be\n"
+" done to the list.\n"
+"\n"
+" --welcome-msg[=<yes|no>]\n"
+" -w[=<yes|no>]\n"
+" Sets whether or not to send the newly added members a welcome\n"
+" message, overriding whatever the list's `send_welcome_msg' setting\n"
+" is. With -w=yes or -w, the welcome message is sent. With -w=no, no\n"
+" message is sent.\n"
+"\n"
+" --goodbye-msg[=<yes|no>]\n"
+" -g[=<yes|no>]\n"
+" Sets whether or not to send the goodbye message to removed members,\n"
+" overriding whatever the list's `send_goodbye_msg' setting is. With\n"
+" -g=yes or -g, the goodbye message is sent. With -g=no, no message is\n"
+" sent.\n"
+"\n"
+" --digest[=<yes|no>]\n"
+" -d[=<yes|no>]\n"
+" Selects whether to make newly added members receive messages in\n"
+" digests. With -d=yes or -d, they become digest members. With -d=no\n"
+" (or if no -d option given) they are added as regular members.\n"
+"\n"
+" --notifyadmin[=<yes|no>]\n"
+" -a[=<yes|no>]\n"
+" Specifies whether the admin should be notified for each subscription\n"
+" or unsubscription. If you're adding a lot of addresses, you\n"
+" definitely want to turn this off! With -a=yes or -a, the admin is\n"
+" notified. With -a=no, the admin is not notified. With no -a option,\n"
+" the default for the list is used.\n"
+"\n"
+" --file <filename | ->\n"
+" -f <filename | ->\n"
+" This option is required. It specifies the flat file to synchronize\n"
+" against. Email addresses must appear one per line. If filename is\n"
+" `-' then stdin is used.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this message.\n"
+"\n"
+" listname\n"
+" Required. This specifies the list to synchronize.\n"
+msgstr ""
+
+#: bin/sync_members:115
+msgid "Bad choice: %(yesno)s"
+msgstr ""
+
+#: bin/sync_members:138
+msgid "Dry run mode"
+msgstr ""
+
+#: bin/sync_members:159
+msgid "Only one -f switch allowed"
+msgstr ""
+
+#: bin/sync_members:163
+msgid "No argument to -f given"
+msgstr ""
+
+#: bin/sync_members:172
+msgid "Illegal option: %(opt)s"
+msgstr ""
+
+#: bin/sync_members:178
+msgid "No listname given"
+msgstr ""
+
+#: bin/sync_members:182
+msgid "Must have a listname and a filename"
+msgstr ""
+
+#: bin/sync_members:191
+msgid "Cannot read address file: %(filename)s: %(msg)s"
+msgstr ""
+
+#: bin/sync_members:203
+msgid "Ignore : %(addr)30s"
+msgstr ""
+
+#: bin/sync_members:212
+msgid "Invalid : %(addr)30s"
+msgstr ""
+
+#: bin/sync_members:215
+msgid "You must fix the preceding invalid addresses first."
+msgstr ""
+
+#: bin/sync_members:259
+msgid "Added : %(s)s"
+msgstr ""
+
+#: bin/sync_members:278
+msgid "Removed: %(s)s"
+msgstr ""
+
+#: bin/transcheck:18
+#, docstring
+msgid ""
+"\n"
+"Check a given Mailman translation, making sure that variables and\n"
+"tags referenced in translation are the same variables and tags in\n"
+"the original templates and catalog.\n"
+"\n"
+"Usage:\n"
+"\n"
+"cd $MAILMAN_DIR\n"
+"%(program)s [-q] <lang>\n"
+"\n"
+"Where <lang> is your country code (e.g. 'it' for Italy) and -q is\n"
+"to ask for a brief summary.\n"
+msgstr ""
+
+#: bin/transcheck:57
+#, docstring
+msgid "check a translation comparing with the original string"
+msgstr ""
+
+#: bin/transcheck:64
+#, docstring
+msgid "scan a string from the original file"
+msgstr ""
+
+#: bin/transcheck:72
+#, docstring
+msgid "scan a translated string"
+msgstr ""
+
+#: bin/transcheck:83
+#, docstring
+msgid "check for differences between checked in and checked out"
+msgstr ""
+
+#: bin/transcheck:116
+#, docstring
+msgid "parse a .po file extracting msgids and msgstrs"
+msgstr ""
+
+#: bin/transcheck:135
+#, docstring
+msgid ""
+"States table for the finite-states-machine parser:\n"
+" 0 idle\n"
+" 1 filename-or-comment\n"
+" 2 msgid\n"
+" 3 msgstr\n"
+" 4 end\n"
+" "
+msgstr ""
+
+#: bin/transcheck:272
+#, docstring
+msgid ""
+"check a translated template against the original one\n"
+" search also <MM-*> tags if html is not zero"
+msgstr ""
+
+#: bin/transcheck:319
+#, docstring
+msgid "scan the po file comparing msgids with msgstrs"
+msgstr ""
+
+#: bin/unshunt:19
+#, docstring
+msgid ""
+"Move a message from the shunt queue to the original queue.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [directory]\n"
+"\n"
+"Where:\n"
+"\n"
+" -h / --help\n"
+" Print help and exit.\n"
+"\n"
+"Optional `directory' specifies a directory to dequeue from other than\n"
+"qfiles/shunt.\n"
+msgstr ""
+
+#: bin/unshunt:81
+msgid ""
+"Cannot unshunt message %(filebase)s, skipping:\n"
+"%(e)s"
+msgstr ""
+
+#: bin/update:19
+#, docstring
+msgid ""
+"Perform all necessary upgrades.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -f/--force\n"
+" Force running the upgrade procedures. Normally, if the version number\n"
+" of the installed Mailman matches the current version number (or a\n"
+" `downgrade' is detected), nothing will be done.\n"
+"\n"
+" -h/--help\n"
+" Print this text and exit.\n"
+"\n"
+"Use this script to help you update to the latest release of Mailman from\n"
+"some previous version. It knows about versions back to 1.0b4 (?).\n"
+msgstr ""
+
+#: bin/update:102
+msgid "Fixing language templates: %(listname)s"
+msgstr ""
+
+#: bin/update:191 bin/update:466
+msgid "WARNING: could not acquire lock for list: %(listname)s"
+msgstr ""
+
+#: bin/update:210
+msgid "Resetting %(n)s BYBOUNCEs disabled addrs with no bounce info"
+msgstr ""
+
+#: bin/update:216
+msgid "Updating the held requests database."
+msgstr ""
+
+#: bin/update:238
+msgid ""
+"For some reason, %(mbox_dir)s exists as a file. This won't work with\n"
+"b6, so I'm renaming it to %(mbox_dir)s.tmp and proceeding."
+msgstr ""
+
+#: bin/update:250
+msgid ""
+"\n"
+"%(listname)s has both public and private mbox archives. Since this list\n"
+"currently uses private archiving, I'm installing the private mbox archive\n"
+"-- %(o_pri_mbox_file)s -- as the active archive, and renaming\n"
+" %(o_pub_mbox_file)s\n"
+"to\n"
+" %(o_pub_mbox_file)s.preb6\n"
+"\n"
+"You can integrate that into the archives if you want by using the 'arch'\n"
+"script.\n"
+msgstr ""
+
+#: bin/update:265
+msgid ""
+"%s has both public and private mbox archives. Since this list\n"
+"currently uses public archiving, I'm installing the public mbox file\n"
+"archive file (%s) as the active one, and renaming\n"
+" %s\n"
+" to\n"
+" %s.preb6\n"
+"\n"
+"You can integrate that into the archives if you want by using the 'arch'\n"
+"script.\n"
+msgstr ""
+
+#: bin/update:282
+msgid "- updating old private mbox file"
+msgstr ""
+
+#: bin/update:290
+msgid ""
+" unknown file in the way, moving\n"
+" %(o_pri_mbox_file)s\n"
+" to\n"
+" %(newname)s"
+msgstr ""
+
+#: bin/update:297 bin/update:320
+msgid ""
+" looks like you have a really recent CVS installation...\n"
+" you're either one brave soul, or you already ran me"
+msgstr ""
+
+#: bin/update:306
+msgid "- updating old public mbox file"
+msgstr ""
+
+#: bin/update:314
+msgid ""
+" unknown file in the way, moving\n"
+" %(o_pub_mbox_file)s\n"
+" to\n"
+" %(newname)s"
+msgstr ""
+
+#: bin/update:345
+msgid "- This list looks like it might have <= b4 list templates around"
+msgstr ""
+
+#: bin/update:352
+msgid "- moved %(o_tmpl)s to %(n_tmpl)s"
+msgstr ""
+
+#: bin/update:354
+msgid "- both %(o_tmpl)s and %(n_tmpl)s exist, leaving untouched"
+msgstr ""
+
+#: bin/update:384
+msgid "removing directory %(src)s and everything underneath"
+msgstr ""
+
+#: bin/update:387
+msgid "removing %(src)s"
+msgstr ""
+
+#: bin/update:391
+msgid "Warning: couldn't remove %(src)s -- %(rest)s"
+msgstr ""
+
+#: bin/update:396
+msgid "couldn't remove old file %(pyc)s -- %(rest)s"
+msgstr ""
+
+#: bin/update:400
+msgid "updating old qfiles"
+msgstr ""
+
+#: bin/update:422
+msgid "getting rid of old source files"
+msgstr ""
+
+#: bin/update:432
+msgid "no lists == nothing to do, exiting"
+msgstr ""
+
+#: bin/update:439
+msgid ""
+"fixing all the perms on your old html archives to work with b6\n"
+"If your archives are big, this could take a minute or two..."
+msgstr ""
+
+#: bin/update:444
+msgid "done"
+msgstr ""
+
+#: bin/update:446
+msgid "Updating mailing list: %(listname)s"
+msgstr ""
+
+#: bin/update:449
+msgid "Updating Usenet watermarks"
+msgstr ""
+
+#: bin/update:454
+msgid "- nothing to update here"
+msgstr ""
+
+#: bin/update:477
+msgid "- usenet watermarks updated and gate_watermarks removed"
+msgstr ""
+
+#: bin/update:487
+msgid "Updating old pending_subscriptions.db database"
+msgstr ""
+
+#: bin/update:504
+msgid ""
+"\n"
+"\n"
+"NOTE NOTE NOTE NOTE NOTE\n"
+"\n"
+" You are upgrading an existing Mailman installation, but I can't tell what\n"
+" version you were previously running.\n"
+"\n"
+" If you are upgrading from Mailman 1.0b9 or earlier you will need to\n"
+" manually update your mailing lists. For each mailing list you need to\n"
+" copy the file templates/options.html lists/<listname>/options.html.\n"
+"\n"
+" However, if you have edited this file via the Web interface, you will have\n"
+" to merge your changes into this file, otherwise you will lose your\n"
+" changes.\n"
+"\n"
+"NOTE NOTE NOTE NOTE NOTE\n"
+"\n"
+msgstr ""
+
+#: bin/update:561
+msgid "No updates are necessary."
+msgstr ""
+
+#: bin/update:564
+msgid ""
+"Downgrade detected, from version %(hexlversion)s to version %(hextversion)s\n"
+"This is probably not safe.\n"
+"Exiting."
+msgstr ""
+
+#: bin/update:569
+msgid "Upgrading from version %(hexlversion)s to %(hextversion)s"
+msgstr ""
+
+#: bin/update:578
+msgid ""
+"\n"
+"ERROR:\n"
+"\n"
+"The locks for some lists could not be acquired. This means that either\n"
+"Mailman was still active when you upgraded, or there were stale locks in the\n"
+"%(lockdir)s directory.\n"
+"\n"
+"You must put Mailman into a quiescent state and remove all stale locks, then\n"
+"re-run \"make update\" manually. See the INSTALL and UPGRADE files for details.\n"
+msgstr ""
+
+#: bin/version:19
+#, docstring
+msgid ""
+"Print the Mailman version.\n"
+msgstr ""
+
+#: bin/version:26
+msgid "Using Mailman version:"
+msgstr ""
+
+#: bin/withlist:19
+#, docstring
+msgid ""
+"General framework for interacting with a mailing list object.\n"
+"\n"
+"There are two ways to use this script: interactively or programmatically.\n"
+"Using it interactively allows you to play with, examine and modify a MailList\n"
+"object from Python's interactive interpreter. When running interactively, a\n"
+"MailList object called `m' will be available in the global namespace. It also\n"
+"loads the class MailList into the global namespace.\n"
+"\n"
+"Programmatically, you can write a function to operate on a MailList object,\n"
+"and this script will take care of the housekeeping (see below for examples).\n"
+"In that case, the general usage syntax is:\n"
+"\n"
+"%% bin/withlist [options] listname [args ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" -l / --lock\n"
+" Lock the list when opening. Normally the list is opened unlocked\n"
+" (e.g. for read-only operations). You can always lock the file after\n"
+" the fact by typing `m.Lock()'\n"
+"\n"
+" Note that if you use this option, you should explicitly call m.Save()\n"
+" before exiting, since the interpreter's clean up procedure will not\n"
+" automatically save changes to the MailList object (but it will unlock\n"
+" the list).\n"
+"\n"
+" -i / --interactive\n"
+" Leaves you at an interactive prompt after all other processing is\n"
+" complete. This is the default unless the -r option is given.\n"
+"\n"
+" --run [module.]callable\n"
+" -r [module.]callable\n"
+" This can be used to run a script with the opened MailList object.\n"
+" This works by attempting to import `module' (which must already be\n"
+" accessible on your sys.path), and then calling `callable' from the\n"
+" module. callable can be a class or function; it is called with the\n"
+" MailList object as the first argument. If additional args are given\n"
+" on the command line, they are passed as subsequent positional args to\n"
+" the callable.\n"
+"\n"
+" Note that `module.' is optional; if it is omitted then a module with\n"
+" the name `callable' will be imported.\n"
+"\n"
+" The global variable `r' will be set to the results of this call.\n"
+"\n"
+" --all / -a\n"
+" This option only works with the -r option. Use this if you want to\n"
+" execute the script on all mailing lists. When you use -a you should\n"
+" not include a listname argument on the command line. The variable `r'\n"
+" will be a list of all the results.\n"
+"\n"
+" --quiet / -q\n"
+" Suppress all status messages.\n"
+"\n"
+" --help / -h\n"
+" Print this message and exit\n"
+"\n"
+"\n"
+"Here's an example of how to use the -r option. Say you have a file in the\n"
+"Mailman installation directory called `listaddr.py', with the following\n"
+"two functions:\n"
+"\n"
+"def listaddr(mlist):\n"
+" print mlist.GetListEmail()\n"
+"\n"
+"def requestaddr(mlist):\n"
+" print mlist.GetRequestEmail()\n"
+"\n"
+"Now, from the command line you can print the list's posting address by running\n"
+"the following from the command line:\n"
+"\n"
+"%% bin/withlist -r listaddr mylist\n"
+"Loading list: mylist (unlocked)\n"
+"Importing listaddr ...\n"
+"Running listaddr.listaddr() ...\n"
+"mylist@myhost.com\n"
+"\n"
+"And you can print the list's request address by running:\n"
+"\n"
+"%% bin/withlist -r listaddr.requestaddr mylist\n"
+"Loading list: mylist (unlocked)\n"
+"Importing listaddr ...\n"
+"Running listaddr.requestaddr() ...\n"
+"mylist-request@myhost.com\n"
+"\n"
+"As another example, say you wanted to change the password for a particular\n"
+"user on a particular list. You could put the following function in a file\n"
+"called `changepw.py':\n"
+"\n"
+"from Mailman.Errors import NotAMember\n"
+"\n"
+"def changepw(mlist, addr, newpasswd):\n"
+" try:\n"
+" mlist.setMemberPassword(addr, newpasswd)\n"
+" mlist.Save()\n"
+" except NotAMember:\n"
+" print 'No address matched:', addr\n"
+"\n"
+"and run this from the command line:\n"
+"%% bin/withlist -l -r changepw mylist somebody@somewhere.org foobar\n"
+msgstr ""
+
+#: bin/withlist:151
+#, docstring
+msgid ""
+"Unlock a locked list, but do not implicitly Save() it.\n"
+"\n"
+" This does not get run if the interpreter exits because of a signal, or if\n"
+" os._exit() is called. It will get called if an exception occurs though.\n"
+" "
+msgstr ""
+
+#: bin/withlist:162
+msgid "Unlocking (but not saving) list: %(listname)s"
+msgstr ""
+
+#: bin/withlist:166
+msgid "Finalizing"
+msgstr ""
+
+#: bin/withlist:175
+msgid "Loading list %(listname)s"
+msgstr ""
+
+#: bin/withlist:177
+msgid "(locked)"
+msgstr ""
+
+#: bin/withlist:179
+msgid "(unlocked)"
+msgstr ""
+
+#: bin/withlist:184
+msgid "Unknown list: %(listname)s"
+msgstr ""
+
+#: bin/withlist:223
+msgid "No list name supplied."
+msgstr ""
+
+#: bin/withlist:226
+msgid "--all requires --run"
+msgstr ""
+
+#: bin/withlist:246
+msgid "Importing %(module)s..."
+msgstr ""
+
+#: bin/withlist:249
+msgid "Running %(module)s.%(callable)s()..."
+msgstr ""
+
+#: bin/withlist:270
+msgid "The variable `m' is the %(listname)s MailList instance"
+msgstr ""
+
+#: cron/bumpdigests:19
+#, docstring
+msgid ""
+"Increment the digest volume number and reset the digest number to one.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" --help/-h\n"
+" Print this message and exit.\n"
+"\n"
+"The lists named on the command line are bumped. If no list names are given,\n"
+"all lists are bumped.\n"
+msgstr ""
+
+#: cron/checkdbs:19
+#, docstring
+msgid ""
+"Invoked by cron, this checks for pending moderation requests and mails the\n"
+"list moderators if necessary.\n"
+msgstr ""
+
+#: cron/checkdbs:81
+msgid "%(count)d %(realname)s moderator request(s) waiting"
+msgstr ""
+
+#: cron/checkdbs:100
+msgid "Pending subscriptions:"
+msgstr ""
+
+#: cron/checkdbs:109
+msgid ""
+"\n"
+"Pending posts:"
+msgstr ""
+
+#: cron/checkdbs:114
+msgid ""
+"From: %(sender)s on %(date)s\n"
+"Subject: %(subject)s\n"
+"Cause: %(reason)s"
+msgstr ""
+
+#: cron/disabled:19
+#, docstring
+msgid ""
+"Process disabled members, recommended once per day.\n"
+"\n"
+"This script cruises through every mailing list looking for members whose\n"
+"delivery is disabled. If they have been disabled due to bounces, they will\n"
+"receive another notification, or they may be removed if they've received the\n"
+"maximum number of notifications.\n"
+"\n"
+"Use the --byadmin, --byuser, and --unknown flags to also send notifications to\n"
+"members whose accounts have been disabled for those reasons. Use --all to\n"
+"send the notification to all disabled members.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -h / --help\n"
+" Print this message and exit.\n"
+"\n"
+" -o / --byadmin\n"
+" Also send notifications to any member disabled by the list\n"
+" owner/administrator.\n"
+"\n"
+" -m / --byuser\n"
+" Also send notifications to any member disabled by themselves.\n"
+"\n"
+" -u / --unknown\n"
+" Also send notifications to any member disabled for unknown reasons\n"
+" (usually a legacy disabled address).\n"
+"\n"
+" -b / --notbybounce\n"
+" Don't send notifications to members disabled because of bounces (the\n"
+" default is to notify bounce disabled members).\n"
+"\n"
+" -a / --all\n"
+" Send notifications to all disabled members.\n"
+"\n"
+" -f / --force\n"
+" Send notifications to disabled members even if they're not due a new\n"
+" notification yet.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" Process only the given list, otherwise do all lists.\n"
+msgstr ""
+
+#: cron/disabled:143
+msgid "[disabled by periodic sweep and cull, no message available]"
+msgstr ""
+
+#: cron/gate_news:19
+#, docstring
+msgid ""
+"Poll the NNTP servers for messages to be gatewayed to mailing lists.\n"
+"\n"
+"Usage: gate_news [options]\n"
+"\n"
+"Where options are\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this text and exit.\n"
+"\n"
+msgstr ""
+
+#: cron/mailpasswds:19
+#, docstring
+msgid ""
+"Send password reminders for all lists to all users.\n"
+"\n"
+"This program scans all mailing lists and collects users and their passwords,\n"
+"grouped by the list's host_name if mm_cfg.VIRTUAL_HOST_OVERVIEW is true. Then\n"
+"one email message is sent to each unique user (per-virtual host) containing\n"
+"the list passwords and options url for the user. The password reminder comes\n"
+"from the mm_cfg.MAILMAN_SITE_LIST, which must exist.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -l listname\n"
+" --listname=listname\n"
+" Send password reminders for the named list only. If omitted,\n"
+" reminders are sent for all lists. Multiple -l/--listname options are\n"
+" allowed.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+msgstr ""
+
+#: cron/mailpasswds:111
+msgid "Site list is missing: %(sitelistname)s"
+msgstr ""
+
+#: cron/mailpasswds:179
+msgid "Password // URL"
+msgstr ""
+
+#: cron/mailpasswds:199
+msgid "%(host)s mailing list memberships reminder"
+msgstr ""
+
+#: cron/nightly_gzip:19
+#, docstring
+msgid ""
+"Re-generate the Pipermail gzip'd archive flat files.\n"
+"\n"
+"This script should be run nightly from cron. When run from the command line,\n"
+"the following usage is understood:\n"
+"\n"
+"Usage: %(program)s [-v] [-h] [listnames]\n"
+"\n"
+"Where:\n"
+" --verbose\n"
+" -v\n"
+" print each file as it's being gzip'd\n"
+"\n"
+" --help\n"
+" -h\n"
+" print this message and exit\n"
+"\n"
+" listnames\n"
+" Optionally, only compress the .txt files for the named lists. Without \n"
+" this, all archivable lists are processed.\n"
+"\n"
+msgstr ""
+
+#: cron/senddigests:19
+#, docstring
+msgid ""
+"Dispatch digests for lists w/pending messages and digest_send_periodic set.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -h / --help\n"
+" Print this message and exit.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" Send the digest for the given list only, otherwise the digests for all\n"
+" lists are sent out.\n"
+msgstr ""
+
diff --git a/messages/nl/LC_MESSAGES/mailman.mo b/messages/nl/LC_MESSAGES/mailman.mo
new file mode 100644
index 00000000..79dbe2e6
--- /dev/null
+++ b/messages/nl/LC_MESSAGES/mailman.mo
Binary files differ
diff --git a/messages/nl/LC_MESSAGES/mailman.po b/messages/nl/LC_MESSAGES/mailman.po
new file mode 100644
index 00000000..a8c1df85
--- /dev/null
+++ b/messages/nl/LC_MESSAGES/mailman.po
@@ -0,0 +1,8465 @@
+# Dutch translation for Mailman.
+# Copyright (C) 2002 Danny Terweij, Henny Huisman
+# FIRST AUTHOR <danny@terweij.nl>, 2002.
+# FIRST AUTHOR <henny@terweij.nl>, 2002.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: Tue Dec 24 13:41:28 2002\n"
+"PO-Revision-Date: 2002-10-27 02:54+GMT1\n"
+"Last-Translator: Danny Terweij <danny@terweij.nl>\n"
+"Language-Team: Dutch <danny@terweij.nl>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: ENCODING\n"
+"Generated-By: pygettext.py 1.4\n"
+
+#: Mailman/Archiver/HyperArch.py:112
+#, fuzzy
+msgid "size not available"
+msgstr "niet beschikbaar"
+
+#: Mailman/Archiver/HyperArch.py:118
+msgid " %(size)i bytes "
+msgstr " %(size)i bytes "
+
+#: Mailman/Archiver/HyperArch.py:249 Mailman/Archiver/HyperArch.py:405
+#: Mailman/Archiver/HyperArch.py:963 Mailman/Archiver/HyperArch.py:1127
+msgid " at "
+msgstr " op "
+
+#: Mailman/Archiver/HyperArch.py:434
+msgid "Previous message:"
+msgstr "Vorig bericht:"
+
+#: Mailman/Archiver/HyperArch.py:456
+msgid "Next message:"
+msgstr "Volgend Bericht:"
+
+#: Mailman/Archiver/HyperArch.py:609 Mailman/Archiver/HyperArch.py:645
+msgid "thread"
+msgstr "Draad"
+
+#: Mailman/Archiver/HyperArch.py:610 Mailman/Archiver/HyperArch.py:646
+msgid "subject"
+msgstr "onderwerp"
+
+#: Mailman/Archiver/HyperArch.py:611 Mailman/Archiver/HyperArch.py:647
+msgid "author"
+msgstr "auteur"
+
+#: Mailman/Archiver/HyperArch.py:612 Mailman/Archiver/HyperArch.py:648
+msgid "date"
+msgstr "datum"
+
+#: Mailman/Archiver/HyperArch.py:684
+msgid "<P>Currently, there are no archives. </P>"
+msgstr "<p>Er is momenteel geen archief aanwezig. </P>"
+
+#: Mailman/Archiver/HyperArch.py:721
+msgid "Gzip'd Text%(sz)s"
+msgstr "Ingepakt in ZIP %(sz)s"
+
+#: Mailman/Archiver/HyperArch.py:726
+msgid "Text%(sz)s"
+msgstr "Tekst %(sz)s"
+
+#: Mailman/Archiver/HyperArch.py:816
+msgid "figuring article archives\n"
+msgstr "onderzoeken van artikel archief\n"
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "April"
+msgstr "April"
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "February"
+msgstr "Februari"
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "January"
+msgstr "Januari"
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "March"
+msgstr "Maart"
+
+#: Mailman/Archiver/HyperArch.py:827
+msgid "August"
+msgstr "Augustus"
+
+#: Mailman/Archiver/HyperArch.py:827
+msgid "July"
+msgstr "Juli"
+
+#: Mailman/Archiver/HyperArch.py:827
+msgid "June"
+msgstr "Juni"
+
+#: Mailman/Archiver/HyperArch.py:827 Mailman/i18n.py:91
+msgid "May"
+msgstr "Mei"
+
+#: Mailman/Archiver/HyperArch.py:828
+msgid "December"
+msgstr "December"
+
+#: Mailman/Archiver/HyperArch.py:828
+msgid "November"
+msgstr "November"
+
+#: Mailman/Archiver/HyperArch.py:828
+msgid "October"
+msgstr "Oktober"
+
+#: Mailman/Archiver/HyperArch.py:828
+msgid "September"
+msgstr "September"
+
+#: Mailman/Archiver/HyperArch.py:836
+msgid "First"
+msgstr "Eerste"
+
+#: Mailman/Archiver/HyperArch.py:836
+msgid "Fourth"
+msgstr "Vierde"
+
+#: Mailman/Archiver/HyperArch.py:836
+msgid "Second"
+msgstr "Tweede"
+
+#: Mailman/Archiver/HyperArch.py:836
+msgid "Third"
+msgstr "Derde"
+
+#: Mailman/Archiver/HyperArch.py:838
+msgid "%(ord)s quarter %(year)i"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:845
+msgid "%(month)s %(year)i"
+msgstr "%(month)s %(year)i"
+
+#: Mailman/Archiver/HyperArch.py:850
+msgid "The Week Of Monday %(day)i %(month)s %(year)i"
+msgstr "De week van Maandag %(day)i %(month)s %(year)i"
+
+#: Mailman/Archiver/HyperArch.py:854
+msgid "%(day)i %(month)s %(year)i"
+msgstr "%(day)i %(month)s %(year)i"
+
+#: Mailman/Archiver/HyperArch.py:951
+msgid "Computing threaded index\n"
+msgstr "Berekenen van draad index\n"
+
+#: Mailman/Archiver/HyperArch.py:1206
+#, fuzzy
+msgid "Updating HTML for article %(seq)s"
+msgstr "Updaten van HTML artikel "
+
+#: Mailman/Archiver/HyperArch.py:1213
+#, fuzzy
+msgid "article file %(filename)s is missing!"
+msgstr "artikel bestand %s is niet gevonden!"
+
+#: Mailman/Archiver/pipermail.py:168 Mailman/Archiver/pipermail.py:169
+msgid "No subject"
+msgstr "Geen onderwerp"
+
+#: Mailman/Archiver/pipermail.py:269
+msgid "Creating archive directory "
+msgstr "Aanmaken van archief directory"
+
+#: Mailman/Archiver/pipermail.py:281
+msgid "Reloading pickled archive state"
+msgstr "Herladen van de beschikbare archief status"
+
+#: Mailman/Archiver/pipermail.py:308
+msgid "Pickling archive state into "
+msgstr "Verwerken archief status in "
+
+#: Mailman/Archiver/pipermail.py:419
+msgid "Updating index files for archive [%(archive)s]"
+msgstr "Updaten van de index bestanden voor archief [%(archive)s]"
+
+#: Mailman/Archiver/pipermail.py:452
+msgid " Thread"
+msgstr " Draad"
+
+#: Mailman/Archiver/pipermail.py:557
+msgid "#%(counter)05d %(msgid)s"
+msgstr "#%(counter)05d %(msgid)s"
+
+#: Mailman/Bouncer.py:44
+msgid "due to excessive bounces"
+msgstr "door grote hoeveelheden mail bounces"
+
+#: Mailman/Bouncer.py:45
+msgid "by yourself"
+msgstr "door jezelf"
+
+#: Mailman/Bouncer.py:46
+msgid "by the list administrator"
+msgstr "door de lijst beheerder"
+
+#: Mailman/Bouncer.py:47 Mailman/Bouncer.py:232
+#: Mailman/Commands/cmd_set.py:182
+msgid "for unknown reasons"
+msgstr "voor onbekende redenen"
+
+#: Mailman/Bouncer.py:179
+msgid "disabled"
+msgstr "uitgezet"
+
+#: Mailman/Bouncer.py:184
+msgid "Bounce action notification"
+msgstr "Bounce melding"
+
+#: Mailman/Bouncer.py:239
+msgid " The last bounce received from you was dated %(date)s"
+msgstr " De laatste bounce van jouw is ontvangen op $(date)s"
+
+#: Mailman/Bouncer.py:264 Mailman/Deliverer.py:126
+#: Mailman/Handlers/Acknowledge.py:44 Mailman/Handlers/CookHeaders.py:236
+#: Mailman/Handlers/Hold.py:214 Mailman/Handlers/Hold.py:249
+#: Mailman/Handlers/ToDigest.py:211 Mailman/ListAdmin.py:235
+msgid "(no subject)"
+msgstr "(Geen onderwerp)"
+
+#: Mailman/Bouncer.py:266
+msgid "[No bounce details are available]"
+msgstr "[Er zijn geen bounce details beschikbaar]"
+
+#: Mailman/Cgi/Auth.py:46
+msgid "Moderator"
+msgstr "Moderator"
+
+#: Mailman/Cgi/Auth.py:48
+msgid "Administrator"
+msgstr "Beheerder"
+
+#: Mailman/Cgi/admin.py:70 Mailman/Cgi/admindb.py:89 Mailman/Cgi/confirm.py:55
+#: Mailman/Cgi/edithtml.py:67 Mailman/Cgi/listinfo.py:51
+#: Mailman/Cgi/options.py:71 Mailman/Cgi/private.py:98
+#: Mailman/Cgi/rmlist.py:64 Mailman/Cgi/roster.py:57
+#: Mailman/Cgi/subscribe.py:61
+msgid "No such list <em>%(safelistname)s</em>"
+msgstr "Er is geen lijst genaamd <em>%(safelistname)s</em>"
+
+#: Mailman/Cgi/admin.py:85 Mailman/Cgi/admindb.py:105
+#: Mailman/Cgi/edithtml.py:85 Mailman/Cgi/private.py:123
+msgid "Authorization failed."
+msgstr "Autorisatie mislukt"
+
+#: Mailman/Cgi/admin.py:175
+msgid ""
+"You have turned off delivery of both digest and\n"
+" non-digest messages. This is an incompatible state of\n"
+" affairs. You must turn on either digest delivery or\n"
+" non-digest delivery or your mailing list will basically be\n"
+" unusable."
+msgstr ""
+"Je hebt het bezorgen van een digest en\n"
+"\t\t\t\t individuele berichten uitgezet. Deze combinatie is onmogelijk.\n"
+"\t\t\t\t Je moet of de digest mode aan zetten of de individuele berichten "
+"aan zetten."
+
+#: Mailman/Cgi/admin.py:179 Mailman/Cgi/admin.py:185 Mailman/Cgi/admin.py:190
+#: Mailman/Cgi/admin.py:1361 Mailman/Gui/GUIBase.py:184
+msgid "Warning: "
+msgstr "Waarschuwing: "
+
+#: Mailman/Cgi/admin.py:183
+msgid ""
+"You have digest members, but digests are turned\n"
+" off. Those people will not receive mail."
+msgstr ""
+"Je hebt digest mode leden, maar de digest mode is uitgezet.\n"
+"\t\t\t\t Deze leden krijgen nu geen mail bezorgd."
+
+#: Mailman/Cgi/admin.py:188
+msgid ""
+"You have regular list members but non-digestified mail is\n"
+" turned off. They will receive mail until you fix this\n"
+" problem."
+msgstr ""
+"Je hebt individuele leden, maar individuele bericht bezorging staat uit.\n"
+"\t\t\t\t Deze leden ontvangen mail totdat je het probleem hebt opgelost."
+
+#: Mailman/Cgi/admin.py:212
+msgid "%(hostname)s mailing lists - Admin Links"
+msgstr "%(hostname)s mailing lijsten - Beheer's links."
+
+#: Mailman/Cgi/admin.py:241 Mailman/Cgi/listinfo.py:97
+msgid "Welcome!"
+msgstr "Welkom!"
+
+#: Mailman/Cgi/admin.py:244 Mailman/Cgi/listinfo.py:100
+msgid "Mailman"
+msgstr "Mailinglijst manager"
+
+#: Mailman/Cgi/admin.py:248
+msgid ""
+"<p>There currently are no publicly-advertised %(mailmanlink)s\n"
+" mailing lists on %(hostname)s."
+msgstr ""
+"<p>Er zijn momenteel geen publieke %(mailmanlink)s\n"
+" mailing lijsten op %(hostname)s."
+
+#: Mailman/Cgi/admin.py:254
+msgid ""
+"<p>Below is the collection of publicly-advertised\n"
+" %(mailmanlink)s mailing lists on %(hostname)s. Click on a list\n"
+" name to visit the configuration pages for that list."
+msgstr ""
+"<p>Hieronder een lijst van publieke\n"
+" %(mailmanlink)s mailing lijsten op %(hostname)s. Klik op een\n"
+" naam voor een bezoek aan deze mailinglijst voor de configuratie "
+"opties."
+
+#: Mailman/Cgi/admin.py:261
+msgid "right "
+msgstr "rechts "
+
+#: Mailman/Cgi/admin.py:263
+msgid ""
+"To visit the administrators configuration page for an\n"
+" unadvertised list, open a URL similar to this one, but with a '/' "
+"and\n"
+" the %(extra)slist name appended. If you have the proper authority,\n"
+" you can also <a href=\"%(creatorurl)s\">create a new mailing list</"
+"a>.\n"
+"\n"
+" <p>General list information can be found at "
+msgstr ""
+"Om een beheerders configuratie pagina te bezoeken voor een\n"
+" ontzichtbare lijst, open een URL vergelijkbaar als deze, maar dan "
+"met een '/' en\n"
+" de %(extra)slijstnaam toegevoegd. Bij voldoende bevoegdheid,\n"
+" kun je ook een <a href=\"%(creatorurl)s\">nieuwe</a> mailing lijst "
+"aanmaken.\n"
+"\n"
+" <p>Algemene lijst informatie is te vinden op "
+
+#: Mailman/Cgi/admin.py:270
+msgid "the mailing list overview page"
+msgstr "de mailing lijst overzicht pagina"
+
+#: Mailman/Cgi/admin.py:272
+msgid "<p>(Send questions and comments to "
+msgstr "<p>Voor vragen kun je terecht bij "
+
+#: Mailman/Cgi/admin.py:282 Mailman/Cgi/listinfo.py:132 cron/mailpasswds:179
+msgid "List"
+msgstr "Lijst"
+
+#: Mailman/Cgi/admin.py:283 Mailman/Cgi/admin.py:549
+#: Mailman/Cgi/listinfo.py:133
+msgid "Description"
+msgstr "Omschrijving"
+
+#: Mailman/Cgi/admin.py:289 Mailman/Cgi/listinfo.py:139 bin/list_lists:116
+msgid "[no description available]"
+msgstr "[Lijst omschrijving niet beschikbaar]"
+
+#: Mailman/Cgi/admin.py:322
+msgid "No valid variable name found."
+msgstr "Geen geldige waarde gevonden."
+
+#: Mailman/Cgi/admin.py:332
+msgid ""
+"%(realname)s Mailing list Configuration Help\n"
+" <br><em>%(varname)s</em> Option"
+msgstr ""
+"%(realname)s Mailing lijst configuratie hulp\n"
+" <br><em>%(varname)s</em> Optie"
+
+#: Mailman/Cgi/admin.py:339
+msgid "Mailman %(varname)s List Option Help"
+msgstr "Mailman %(varname)s Lijst Optie Hulp"
+
+#: Mailman/Cgi/admin.py:357
+msgid ""
+"<em><strong>Warning:</strong> changing this option here\n"
+" could cause other screens to be out-of-sync. Be sure to reload any "
+"other\n"
+" pages that are displaying this option for this mailing list. You can "
+"also\n"
+" "
+msgstr ""
+"<em><strong>Waarschuwing!!!:</strong> het veranderen van deze optie hier\n"
+" kan probemen opleveren bij andere pagina's. Vernieuw elke pagina\n"
+" dat een mailing lijst pagina vertoont. Je kan ook\n"
+" "
+
+#: Mailman/Cgi/admin.py:368
+msgid "return to the %(categoryname)s options page."
+msgstr "terug naar de %(categoryname)s optie pagina."
+
+#: Mailman/Cgi/admin.py:383
+msgid "%(realname)s Administration (%(label)s)"
+msgstr "%(realname)s Administratie (%(label)s)"
+
+#: Mailman/Cgi/admin.py:384
+msgid "%(realname)s mailing list administration<br>%(label)s Section"
+msgstr "%(realname)s mailing lijst administratie<br><i>%(label)s</i>"
+
+#: Mailman/Cgi/admin.py:400
+msgid "Configuration Categories"
+msgstr "Configuratie Catogorieen"
+
+#: Mailman/Cgi/admin.py:401
+msgid "Other Administrative Activities"
+msgstr "Andere Aministratie taken"
+
+#: Mailman/Cgi/admin.py:405
+msgid "Tend to pending moderator requests"
+msgstr "Ga naar de handelingen voor moderator verzoeken"
+
+#: Mailman/Cgi/admin.py:407
+msgid "Go to the general list information page"
+msgstr "Ga naar de lijst informatie pagina"
+
+#: Mailman/Cgi/admin.py:409
+msgid "Edit the public HTML pages"
+msgstr "Bewerk de publieke HTML pagina's"
+
+#: Mailman/Cgi/admin.py:411
+msgid "Go to list archives"
+msgstr "Ga naar het Archief"
+
+#: Mailman/Cgi/admin.py:417
+msgid "Delete this mailing list"
+msgstr "Verwijder deze mailing lijst"
+
+#: Mailman/Cgi/admin.py:418
+msgid " (requires confirmation)<br>&nbsp;<br>"
+msgstr " (bevestiging benodigd)<br>&nbsp;<br>"
+
+#: Mailman/Cgi/admin.py:424
+msgid "Logout"
+msgstr "Uitloggen"
+
+#: Mailman/Cgi/admin.py:468
+#, fuzzy
+msgid "Emergency moderation of all list traffic is enabled"
+msgstr "Noodsituatie! modereer al het bericht verkeer:"
+
+#: Mailman/Cgi/admin.py:479
+msgid ""
+"Make your changes in the following section, then submit them\n"
+" using the <em>Submit Your Changes</em> button below."
+msgstr ""
+"Verander de gegevens en maak ze aktief door op de knop\n"
+" <em>Verstuur de wijziging</em> te drukken."
+
+#: Mailman/Cgi/admin.py:497
+msgid "Additional Member Tasks"
+msgstr "Aanvullende leden taken"
+
+#: Mailman/Cgi/admin.py:503
+msgid ""
+"<li>Set everyone's moderation bit, including\n"
+" those members not currently visible"
+msgstr ""
+"<li>Zet alle leden op moderatie status, ook\n"
+" de leden die niet op de pagina zijn afgebeeld"
+
+#: Mailman/Cgi/admin.py:507
+msgid "Off"
+msgstr "Uit"
+
+#: Mailman/Cgi/admin.py:507
+msgid "On"
+msgstr "Aan"
+
+#: Mailman/Cgi/admin.py:509
+msgid "Set"
+msgstr "Stel in"
+
+#: Mailman/Cgi/admin.py:550
+msgid "Value"
+msgstr "Waarde"
+
+#: Mailman/Cgi/admin.py:604
+msgid ""
+"Badly formed options entry:\n"
+" %(record)s"
+msgstr ""
+"Foute waarde:\n"
+" %(record)s"
+
+#: Mailman/Cgi/admin.py:662
+msgid "<em>Enter the text below, or...</em><br>"
+msgstr "<em>Voer de tekst in, of...</em><br>"
+
+#: Mailman/Cgi/admin.py:664
+msgid "<br><em>...specify a file to upload</em><br>"
+msgstr "<br><em>...upload een tekst bestand</em><br>"
+
+#: Mailman/Cgi/admin.py:690 Mailman/Cgi/admin.py:693
+msgid "Topic %(i)d"
+msgstr "Onderwerp %(i)d"
+
+#: Mailman/Cgi/admin.py:694
+msgid "Delete"
+msgstr "Wis"
+
+#: Mailman/Cgi/admin.py:695
+msgid "Topic name:"
+msgstr "Onderwerp naam:"
+
+#: Mailman/Cgi/admin.py:697
+msgid "Regexp:"
+msgstr "Expressie:"
+
+#: Mailman/Cgi/admin.py:700 Mailman/Cgi/options.py:943
+msgid "Description:"
+msgstr "Omschrijving:"
+
+#: Mailman/Cgi/admin.py:704
+msgid "Add new item..."
+msgstr "Voeg een nieuw item toe..."
+
+#: Mailman/Cgi/admin.py:706
+msgid "...before this one."
+msgstr "...voor deze."
+
+#: Mailman/Cgi/admin.py:707
+msgid "...after this one."
+msgstr "...na deze."
+
+#: Mailman/Cgi/admin.py:742
+#, fuzzy
+msgid "<br>(Edit <b>%(varname)s</b>)"
+msgstr "<br>(Details voor <b>%(varname)s</b>)"
+
+#: Mailman/Cgi/admin.py:744
+msgid "<br>(Details for <b>%(varname)s</b>)"
+msgstr "<br>(Details voor <b>%(varname)s</b>)"
+
+#: Mailman/Cgi/admin.py:751
+msgid ""
+"<br><em><strong>Note:</strong>\n"
+" setting this value performs an immediate action but does not modify\n"
+" permanent state.</em>"
+msgstr ""
+"<br><em><strong>Noot:</strong>\n"
+" het instellen van deze waarde wordt meteen aktie op uitgevoerd. "
+"Echter\n"
+" niet permanent.</em>"
+
+#: Mailman/Cgi/admin.py:765
+msgid "Mass Subscriptions"
+msgstr "Meerdere leden toevoegen"
+
+#: Mailman/Cgi/admin.py:772
+msgid "Mass Removals"
+msgstr "Meerdere leden verwijderen"
+
+#: Mailman/Cgi/admin.py:779
+msgid "Membership List"
+msgstr "Leden lijst"
+
+#: Mailman/Cgi/admin.py:786
+msgid "(help)"
+msgstr "(help)"
+
+#: Mailman/Cgi/admin.py:787
+msgid "Find member %(link)s:"
+msgstr "Zoek een lid %(link)s:"
+
+#: Mailman/Cgi/admin.py:790
+msgid "Search..."
+msgstr "Zoek...."
+
+#: Mailman/Cgi/admin.py:805
+msgid "Bad regular expression: "
+msgstr "Fout reguliere expressie: "
+
+#: Mailman/Cgi/admin.py:861
+msgid "%(allcnt)s members total, %(membercnt)s shown"
+msgstr "%(allcnt)s leden totaal, %(membercnt)s zichtbaar"
+
+#: Mailman/Cgi/admin.py:864
+msgid "%(allcnt)s members total"
+msgstr "%(allcnt)s leden totaal"
+
+#: Mailman/Cgi/admin.py:887
+msgid "unsub"
+msgstr "unsub"
+
+#: Mailman/Cgi/admin.py:888
+msgid "member address<br>member name"
+msgstr "adres van lid<br>naam van lid"
+
+#: Mailman/Cgi/admin.py:889
+msgid "hide"
+msgstr "hide"
+
+#: Mailman/Cgi/admin.py:889
+msgid "mod"
+msgstr "mod"
+
+#: Mailman/Cgi/admin.py:890
+msgid "nomail<br>[reason]"
+msgstr "no-mail<br>[reden]"
+
+#: Mailman/Cgi/admin.py:891
+msgid "ack"
+msgstr "bevestiging"
+
+#: Mailman/Cgi/admin.py:891
+msgid "not metoo"
+msgstr "niet mij ook"
+
+#: Mailman/Cgi/admin.py:892
+msgid "nodupes"
+msgstr "Geen dupes"
+
+#: Mailman/Cgi/admin.py:893
+msgid "digest"
+msgstr "digest"
+
+#: Mailman/Cgi/admin.py:893
+msgid "plain"
+msgstr "plain"
+
+#: Mailman/Cgi/admin.py:894
+msgid "language"
+msgstr "taal"
+
+#: Mailman/Cgi/admin.py:905
+msgid "?"
+msgstr "?"
+
+#: Mailman/Cgi/admin.py:906
+msgid "U"
+msgstr "U"
+
+#: Mailman/Cgi/admin.py:907
+msgid "A"
+msgstr "A"
+
+#: Mailman/Cgi/admin.py:908
+msgid "B"
+msgstr "B"
+
+#: Mailman/Cgi/admin.py:979
+msgid "<b>unsub</b> -- Click on this to unsubscribe the member."
+msgstr "b>unsub</b> -- Klik hier om een lid af te melden.."
+
+#: Mailman/Cgi/admin.py:981
+msgid ""
+"<b>mod</b> -- The user's personal moderation flag. If this is\n"
+" set, postings from them will be moderated, otherwise they will be\n"
+" approved."
+msgstr ""
+"<b>mod</b> -- De moderatie instelling. Als deze\n"
+" is ingesteld, worden de berichten vastgehouden. En anders worden ze\n"
+" automatich doorgelaten op de lijst."
+
+#: Mailman/Cgi/admin.py:985
+msgid ""
+"<b>hide</b> -- Is the member's address concealed on\n"
+" the list of subscribers?"
+msgstr ""
+"<b>onzichtbaar</b> -- Zijn de email adressen van de gebruikers\n"
+" afgeschermt op de lijst?"
+
+#: Mailman/Cgi/admin.py:987
+msgid ""
+"<b>nomail</b> -- Is delivery to the member disabled? If so, an\n"
+" abbreviation will be given describing the reason for the disabled\n"
+" delivery:\n"
+" <ul><li><b>U</b> -- Delivery was disabled by the user via their\n"
+" personal options page.\n"
+" <li><b>A</b> -- Delivery was disabled by the list\n"
+" administrators.\n"
+" <li><b>B</b> -- Delivery was disabled by the system due to\n"
+" excessive bouncing from the member's address.\n"
+" <li><b>?</b> -- The reason for disabled delivery isn't "
+"known.\n"
+" This is the case for all memberships which were "
+"disabled\n"
+" in older versions of Mailman.\n"
+" </ul>"
+msgstr ""
+"<b>nomail</b> -- Is de bezorging voor de gebruiker uitgezet?\n"
+" Hieronder de uitleg van de variablen:\n"
+" \n"
+" <ul><li><b>U</b> -- De gebruiker heeft zichzelf op nomail "
+"gezet \n"
+" via de persoonlijke instellingen pagina.\n"
+" <li><b>A</b> -- De nomail optie is aangetzet door de lijst "
+"beheerder\n"
+" \n"
+" <li><b>B</b> -- De nomail optie is ingeschakeld door het "
+"systeem.\n"
+" (bouncings).\n"
+" <li><b>?</b> -- Reden voor nomail is onbekend.\n"
+" Mischien vanwege een oudere versie van de mailing lijst "
+"manager.\n"
+" \n"
+" </ul>"
+
+#: Mailman/Cgi/admin.py:1002
+msgid ""
+"<b>ack</b> -- Does the member get acknowledgements of their\n"
+" posts?"
+msgstr ""
+"<b>bevestiging</b> -- Krijgt de gebruiker een bezorgings bevestiging van "
+"elk\n"
+" mailtje dat naar een lijst wordt gestuurt?"
+
+#: Mailman/Cgi/admin.py:1005
+msgid ""
+"<b>not metoo</b> -- Does the member want to avoid copies of their\n"
+" own postings?"
+msgstr ""
+"<b>niet mij ook</b> -- Does the member want to avoid copies of their\n"
+" own postings?"
+
+#: Mailman/Cgi/admin.py:1008
+msgid ""
+"<b>nodupes</b> -- Does the member want to avoid duplicates of the\n"
+" same message?"
+msgstr ""
+"<b>Geen dupes</b> -- Does the member want to avoid duplicates of the\n"
+" same message?"
+
+#: Mailman/Cgi/admin.py:1011
+msgid ""
+"<b>digest</b> -- Does the member get messages in digests?\n"
+" (otherwise, individual messages)"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1014
+msgid ""
+"<b>plain</b> -- If getting digests, does the member get plain\n"
+" text digests? (otherwise, MIME)"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1016
+msgid "<b>language</b> -- Language preferred by the user"
+msgstr "<b>Taal</b> -- Gewenste taal"
+
+#: Mailman/Cgi/admin.py:1030
+msgid "Click here to hide the legend for this table."
+msgstr "Klik hier om de legenda te verbergen."
+
+#: Mailman/Cgi/admin.py:1034
+msgid "Click here to include the legend for this table."
+msgstr "Klik hier om de legenda weer tegeven."
+
+#: Mailman/Cgi/admin.py:1041
+msgid ""
+"<p><em>To view more members, click on the appropriate\n"
+" range listed below:</em>"
+msgstr ""
+"<p><em>Om meer leden te zien klik je op de letterlinks\n"
+" hieronder:</em>"
+
+#: Mailman/Cgi/admin.py:1050
+msgid "from %(start)s to %(end)s"
+msgstr "van %(start)s tot %(end)s"
+
+#: Mailman/Cgi/admin.py:1063
+msgid "Subscribe these users now or invite them?"
+msgstr "Meld deze leden nu aan of stuur ze een uitnodiging?"
+
+#: Mailman/Cgi/admin.py:1065
+msgid "Invite"
+msgstr "Uitnodiging"
+
+#: Mailman/Cgi/admin.py:1065 Mailman/Cgi/listinfo.py:175
+msgid "Subscribe"
+msgstr "Aanmelden"
+
+#: Mailman/Cgi/admin.py:1071
+msgid "Send welcome messages to new subscribees?"
+msgstr "Stuur een welkomst bericht naar de nieuwe leden?"
+
+#: Mailman/Cgi/admin.py:1073 Mailman/Cgi/admin.py:1082
+#: Mailman/Cgi/admin.py:1115 Mailman/Cgi/admin.py:1123
+#: Mailman/Cgi/confirm.py:271 Mailman/Cgi/create.py:327
+#: Mailman/Cgi/create.py:355 Mailman/Cgi/create.py:395
+#: Mailman/Cgi/rmlist.py:228 Mailman/Gui/Archive.py:33
+#: Mailman/Gui/Autoresponse.py:54 Mailman/Gui/Autoresponse.py:62
+#: Mailman/Gui/Autoresponse.py:71 Mailman/Gui/Bounce.py:77
+#: Mailman/Gui/Bounce.py:108 Mailman/Gui/Bounce.py:134
+#: Mailman/Gui/Bounce.py:143 Mailman/Gui/ContentFilter.py:70
+#: Mailman/Gui/ContentFilter.py:103 Mailman/Gui/Digest.py:46
+#: Mailman/Gui/Digest.py:62 Mailman/Gui/Digest.py:84 Mailman/Gui/Digest.py:89
+#: Mailman/Gui/General.py:148 Mailman/Gui/General.py:154
+#: Mailman/Gui/General.py:232 Mailman/Gui/General.py:259
+#: Mailman/Gui/General.py:286 Mailman/Gui/General.py:297
+#: Mailman/Gui/General.py:300 Mailman/Gui/General.py:310
+#: Mailman/Gui/General.py:315 Mailman/Gui/General.py:325
+#: Mailman/Gui/General.py:345 Mailman/Gui/General.py:373
+#: Mailman/Gui/General.py:396 Mailman/Gui/NonDigest.py:44
+#: Mailman/Gui/NonDigest.py:52 Mailman/Gui/Privacy.py:101
+#: Mailman/Gui/Privacy.py:107 Mailman/Gui/Privacy.py:140
+#: Mailman/Gui/Privacy.py:188 Mailman/Gui/Privacy.py:296
+#: Mailman/Gui/Privacy.py:309 Mailman/Gui/Usenet.py:50
+#: Mailman/Gui/Usenet.py:54 Mailman/Gui/Usenet.py:91 Mailman/Gui/Usenet.py:103
+msgid "No"
+msgstr "Nee"
+
+#: Mailman/Cgi/admin.py:1073 Mailman/Cgi/admin.py:1082
+#: Mailman/Cgi/admin.py:1115 Mailman/Cgi/admin.py:1123
+#: Mailman/Cgi/confirm.py:271 Mailman/Cgi/create.py:327
+#: Mailman/Cgi/create.py:355 Mailman/Cgi/create.py:395
+#: Mailman/Cgi/rmlist.py:228 Mailman/Gui/Archive.py:33
+#: Mailman/Gui/Autoresponse.py:54 Mailman/Gui/Autoresponse.py:62
+#: Mailman/Gui/Bounce.py:77 Mailman/Gui/Bounce.py:108
+#: Mailman/Gui/Bounce.py:134 Mailman/Gui/Bounce.py:143
+#: Mailman/Gui/ContentFilter.py:70 Mailman/Gui/ContentFilter.py:103
+#: Mailman/Gui/Digest.py:46 Mailman/Gui/Digest.py:62 Mailman/Gui/Digest.py:84
+#: Mailman/Gui/Digest.py:89 Mailman/Gui/General.py:148
+#: Mailman/Gui/General.py:154 Mailman/Gui/General.py:232
+#: Mailman/Gui/General.py:259 Mailman/Gui/General.py:286
+#: Mailman/Gui/General.py:297 Mailman/Gui/General.py:300
+#: Mailman/Gui/General.py:310 Mailman/Gui/General.py:315
+#: Mailman/Gui/General.py:325 Mailman/Gui/General.py:345
+#: Mailman/Gui/General.py:373 Mailman/Gui/General.py:396
+#: Mailman/Gui/NonDigest.py:44 Mailman/Gui/NonDigest.py:52
+#: Mailman/Gui/Privacy.py:101 Mailman/Gui/Privacy.py:107
+#: Mailman/Gui/Privacy.py:140 Mailman/Gui/Privacy.py:188
+#: Mailman/Gui/Privacy.py:296 Mailman/Gui/Privacy.py:309
+#: Mailman/Gui/Usenet.py:50 Mailman/Gui/Usenet.py:54 Mailman/Gui/Usenet.py:91
+#: Mailman/Gui/Usenet.py:103
+msgid "Yes"
+msgstr "Ja"
+
+#: Mailman/Cgi/admin.py:1080
+msgid "Send notifications of new subscriptions to the list owner?"
+msgstr "Stuur een melding naar de lijst beheerder over nieuwe aanmeldingen?"
+
+#: Mailman/Cgi/admin.py:1088 Mailman/Cgi/admin.py:1129
+msgid "Enter one address per line below..."
+msgstr "Voer in het invoer veld 1 email adres in per regel..."
+
+#: Mailman/Cgi/admin.py:1093 Mailman/Cgi/admin.py:1134
+msgid "...or specify a file to upload:"
+msgstr "...of kies een tekst bestand om te uploaden:"
+
+#: Mailman/Cgi/admin.py:1098
+msgid ""
+"Below, enter additional text to be added to the\n"
+" top of your invitation or the subscription notification. Include at "
+"least\n"
+" one blank line at the end..."
+msgstr ""
+"Voer hieronder in een uitleg van de uitnodiging.\n"
+" Notitie:\n"
+" Geef 1 lege regel in aan het eind (gewoon een enter geven)."
+
+#: Mailman/Cgi/admin.py:1113
+msgid "Send unsubscription acknowledgement to the user?"
+msgstr "Stuur een afmeldings bericht naar deze gebruiker?"
+
+#: Mailman/Cgi/admin.py:1121
+msgid "Send notifications to the list owner?"
+msgstr "Verstuur meldingen naar de lijst beheerder?"
+
+#: Mailman/Cgi/admin.py:1143
+msgid "Change list ownership passwords"
+msgstr "Verander de lijst eigenaar wachtwoorden"
+
+#: Mailman/Cgi/admin.py:1146
+msgid ""
+"The <em>list administrators</em> are the people who have ultimate control "
+"over\n"
+"all parameters of this mailing list. They are able to change any list\n"
+"configuration variable available through these administration web pages.\n"
+"\n"
+"<p>The <em>list moderators</em> have more limited permissions; they are not\n"
+"able to change any list configuration variable, but they are allowed to "
+"tend\n"
+"to pending administration requests, including approving or rejecting held\n"
+"subscription requests, and disposing of held postings. Of course, the\n"
+"<em>list administrators</em> can also tend to pending requests.\n"
+"\n"
+"<p>In order to split the list ownership duties into administrators and\n"
+"moderators, you must set a separate moderator password in the fields below,\n"
+"and also provide the email addresses of the list moderators in the\n"
+"<a href=\"%(adminurl)s/general\">general options section</a>."
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1165
+msgid "Enter new administrator password:"
+msgstr "Voer je nieuwe beheerders wachtwoord in:"
+
+#: Mailman/Cgi/admin.py:1167
+#, fuzzy
+msgid "Confirm administrator password:"
+msgstr "Nogmaals het wachtwoord:"
+
+#: Mailman/Cgi/admin.py:1172
+msgid "Enter new moderator password:"
+msgstr "Voer je nieuwe moderator wachtwoord in:"
+
+#: Mailman/Cgi/admin.py:1174
+msgid "Confirm moderator password:"
+msgstr "Nogmaals het wachtwoord:"
+
+#: Mailman/Cgi/admin.py:1184
+msgid "Submit Your Changes"
+msgstr "Verstuur de wijzigingen"
+
+#: Mailman/Cgi/admin.py:1207
+msgid "Moderator passwords did not match"
+msgstr "Moderator wachtwoorden kwamen niet overeen"
+
+#: Mailman/Cgi/admin.py:1217
+#, fuzzy
+msgid "Administrator passwords did not match"
+msgstr "Beheerder wachtwoorden kwamen niet overeen"
+
+#: Mailman/Cgi/admin.py:1265
+msgid "Already a member"
+msgstr "Is al een lid"
+
+#: Mailman/Cgi/admin.py:1268
+msgid "&lt;blank line&gt;"
+msgstr "&lt;lege regel&gt;"
+
+#: Mailman/Cgi/admin.py:1269 Mailman/Cgi/admin.py:1272
+msgid "Bad/Invalid email address"
+msgstr "Geen geldig email adres"
+
+#: Mailman/Cgi/admin.py:1275
+msgid "Hostile address (illegal characters)"
+msgstr "Geen geldige karakters in het adres"
+
+#: Mailman/Cgi/admin.py:1281
+msgid "Successfully invited:"
+msgstr "Met success uitgenodigd:"
+
+#: Mailman/Cgi/admin.py:1283
+msgid "Successfully subscribed:"
+msgstr "Met succsess aangemeld:"
+
+#: Mailman/Cgi/admin.py:1288
+msgid "Error inviting:"
+msgstr "Fouten bij het uitnodigen:"
+
+#: Mailman/Cgi/admin.py:1290
+msgid "Error subscribing:"
+msgstr "Fouten bij het aanmelden:"
+
+#: Mailman/Cgi/admin.py:1319
+msgid "Successfully Unsubscribed:"
+msgstr "Met success afgemeld:"
+
+#: Mailman/Cgi/admin.py:1324
+msgid "Cannot unsubscribe non-members:"
+msgstr "Kan geen niet-leden afmelden:"
+
+#: Mailman/Cgi/admin.py:1336
+msgid "Bad moderation flag value"
+msgstr "Foute moderatie bit waarde"
+
+#: Mailman/Cgi/admin.py:1357
+msgid "Not subscribed"
+msgstr "Niet aangemeld"
+
+#: Mailman/Cgi/admin.py:1360
+msgid "Ignoring changes to deleted member: %(user)s"
+msgstr "Negeer de veranderingen voor verwijderde lid: %(user)s"
+
+#: Mailman/Cgi/admin.py:1400
+msgid "Successfully Removed:"
+msgstr "Successvol Verwijderd:"
+
+#: Mailman/Cgi/admin.py:1404
+msgid "Error Unsubscribing:"
+msgstr "Fout! bij afmelden:"
+
+#: Mailman/Cgi/admindb.py:159 Mailman/Cgi/admindb.py:167
+msgid "%(realname)s Administrative Database"
+msgstr "%(realname)s Administratie Database"
+
+#: Mailman/Cgi/admindb.py:162
+msgid "%(realname)s Administrative Database Results"
+msgstr "%(realname)s Administratie Database Resultaten"
+
+#: Mailman/Cgi/admindb.py:170
+msgid "There are no pending requests."
+msgstr "Er zijn geen wachtende verzoeken."
+
+#: Mailman/Cgi/admindb.py:173
+msgid "Click here to reload this page."
+msgstr "Klik hier om deze pagina te verversen."
+
+#: Mailman/Cgi/admindb.py:184
+msgid "Detailed instructions for the administrative database"
+msgstr "Gedetaileerde instrukties voor de administratie database"
+
+#: Mailman/Cgi/admindb.py:188
+msgid "Administrative requests for mailing list:"
+msgstr "Administratieve verzoeken voor mailing lijst:"
+
+#: Mailman/Cgi/admindb.py:191 Mailman/Cgi/admindb.py:234
+msgid "Submit All Data"
+msgstr "Verstuur de wijzigingen"
+
+#: Mailman/Cgi/admindb.py:204
+msgid "all of %(esender)s's held messages."
+msgstr "Alle vastgehouden berichten van %(esender)s."
+
+#: Mailman/Cgi/admindb.py:209
+msgid "a single held message."
+msgstr "een alleenstaand vastgehouden bericht."
+
+#: Mailman/Cgi/admindb.py:214
+msgid "all held messages."
+msgstr "alle vastgehouden berichten."
+
+#: Mailman/Cgi/admindb.py:249
+msgid "Mailman Administrative Database Error"
+msgstr "Administratieve database fout!"
+
+#: Mailman/Cgi/admindb.py:254
+msgid "list of available mailing lists."
+msgstr "lijst van beschibare mailing lijsten"
+
+#: Mailman/Cgi/admindb.py:255
+msgid "You must specify a list name. Here is the %(link)s"
+msgstr "Je moet een lijst naam opgeven, Hier is de %(link)s"
+
+#: Mailman/Cgi/admindb.py:268
+msgid "Subscription Requests"
+msgstr "Aanmeldings verzoeken"
+
+#: Mailman/Cgi/admindb.py:270
+msgid "Address/name"
+msgstr "Adres/Naam"
+
+#: Mailman/Cgi/admindb.py:271 Mailman/Cgi/admindb.py:320
+msgid "Your decision"
+msgstr "Jouw beslissing"
+
+#: Mailman/Cgi/admindb.py:272 Mailman/Cgi/admindb.py:321
+msgid "Reason for refusal"
+msgstr "Reden voor weigering"
+
+#: Mailman/Cgi/admindb.py:289 Mailman/Cgi/admindb.py:346
+#: Mailman/Cgi/admindb.py:389 Mailman/Cgi/admindb.py:612
+msgid "Defer"
+msgstr "Uitstellen"
+
+#: Mailman/Cgi/admindb.py:290 Mailman/Cgi/admindb.py:347
+#: Mailman/Cgi/admindb.py:612
+msgid "Approve"
+msgstr "Toelaten"
+
+#: Mailman/Cgi/admindb.py:291 Mailman/Cgi/admindb.py:348
+#: Mailman/Cgi/admindb.py:389 Mailman/Cgi/admindb.py:612
+#: Mailman/Gui/ContentFilter.py:37 Mailman/Gui/Privacy.py:207
+#: Mailman/Gui/Privacy.py:281
+msgid "Reject"
+msgstr "Niet toelaten"
+
+#: Mailman/Cgi/admindb.py:292 Mailman/Cgi/admindb.py:349
+#: Mailman/Cgi/admindb.py:389 Mailman/Cgi/admindb.py:612
+#: Mailman/Gui/ContentFilter.py:37 Mailman/Gui/Privacy.py:207
+#: Mailman/Gui/Privacy.py:281
+msgid "Discard"
+msgstr "Verwijder"
+
+#: Mailman/Cgi/admindb.py:300
+msgid "Permanently ban from this list"
+msgstr "Permanent verbod op deze lijst"
+
+#: Mailman/Cgi/admindb.py:319
+msgid "User address/name"
+msgstr "Gebruiker adres/naam"
+
+#: Mailman/Cgi/admindb.py:359
+msgid "Unsubscription Requests"
+msgstr "Afmeldings verzoeken"
+
+#: Mailman/Cgi/admindb.py:382 Mailman/Cgi/admindb.py:596
+msgid "From:"
+msgstr "Van:"
+
+#: Mailman/Cgi/admindb.py:385
+msgid "Action to take on all these held messages:"
+msgstr "Aktie te ondernemen op al deze vastgehouden berichten:"
+
+#: Mailman/Cgi/admindb.py:389 Mailman/Gui/Privacy.py:281
+msgid "Accept"
+msgstr "Accepteer"
+
+#: Mailman/Cgi/admindb.py:397
+msgid "Preserve messages for the site administrator"
+msgstr "Geef de berichten door aan de lijst beheerder"
+
+#: Mailman/Cgi/admindb.py:403
+msgid "Forward messages (individually) to:"
+msgstr "Stuur de berichten door naar:"
+
+#: Mailman/Cgi/admindb.py:421
+msgid "Clear this member's <em>moderate</em> flag"
+msgstr "Verwijder de <em>moderatie</em> optie"
+
+#: Mailman/Cgi/admindb.py:425
+msgid "<em>The sender is now a member of this list</em>"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:434
+msgid "Add <b>%(esender)s</b> to a sender filter"
+msgstr "Voeg <b>%(esender)s</b> toe aan verstuurders filter"
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Accepts"
+msgstr "Accepteren"
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Discards"
+msgstr "Verwijderen"
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Holds"
+msgstr "Vasthouden"
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Rejects"
+msgstr "Niet toelaten"
+
+#: Mailman/Cgi/admindb.py:448
+msgid ""
+"Ban <b>%(esender)s</b> from ever subscribing to this\n"
+" mailing list"
+msgstr ""
+"Verbied <b>%(esender)s</b> om zich ooit aan te melden op deze\n"
+" mailing lijst"
+
+#: Mailman/Cgi/admindb.py:453
+msgid ""
+"Click on the message number to view the individual\n"
+" message, or you can "
+msgstr ""
+"Klik op het bericht nummer om het bericht te bekijken,\n"
+" of je kunt ook "
+
+#: Mailman/Cgi/admindb.py:455
+msgid "view all messages from %(esender)s"
+msgstr "alle berichten bekijken van %(esender)s"
+
+#: Mailman/Cgi/admindb.py:475 Mailman/Cgi/admindb.py:599
+msgid "Subject:"
+msgstr "Onderwerp:"
+
+#: Mailman/Cgi/admindb.py:478
+msgid " bytes"
+msgstr " bytes"
+
+#: Mailman/Cgi/admindb.py:478
+msgid "Size:"
+msgstr "Grootte:"
+
+#: Mailman/Cgi/admindb.py:482 Mailman/Handlers/Decorate.py:50
+#: Mailman/Handlers/Scrubber.py:226 Mailman/Handlers/Scrubber.py:227
+msgid "not available"
+msgstr "niet beschikbaar"
+
+#: Mailman/Cgi/admindb.py:483 Mailman/Cgi/admindb.py:601
+msgid "Reason:"
+msgstr "Reden:"
+
+#: Mailman/Cgi/admindb.py:487 Mailman/Cgi/admindb.py:605
+msgid "Received:"
+msgstr "Ontvangen:"
+
+#: Mailman/Cgi/admindb.py:545
+msgid "Posting Held for Approval"
+msgstr "Bericht vastgehouden voor goedkeuring"
+
+#: Mailman/Cgi/admindb.py:547
+msgid " (%(count)d of %(total)d)"
+msgstr " (%(count)d van %(total)d)"
+
+#: Mailman/Cgi/admindb.py:558
+msgid "<em>Message with id #%(id)d was lost."
+msgstr "<em>Bericht met id #%(id)d was verloren."
+
+#: Mailman/Cgi/admindb.py:567
+msgid "<em>Message with id #%(id)d is corrupted."
+msgstr "<em>Bericht met id #%(id)d is beschadigd."
+
+#: Mailman/Cgi/admindb.py:618
+msgid "Action:"
+msgstr "Aktie:"
+
+#: Mailman/Cgi/admindb.py:622
+msgid "Preserve message for site administrator"
+msgstr "Stuur het bericht door aan de website beheerder"
+
+#: Mailman/Cgi/admindb.py:626
+msgid "Additionally, forward this message to: "
+msgstr "Vervolgens, stuur het bericht door naar: "
+
+#: Mailman/Cgi/admindb.py:630
+msgid "[No explanation given]"
+msgstr "[Geen uitleg gegeven]"
+
+#: Mailman/Cgi/admindb.py:632
+msgid "If you reject this post,<br>please explain (optional):"
+msgstr "Als het bericht niet is toegelaten,<br>Leg dan uit waarom (optioneel):"
+
+#: Mailman/Cgi/admindb.py:638
+msgid "Message Headers:"
+msgstr "Bericht headers:"
+
+#: Mailman/Cgi/admindb.py:643
+msgid "Message Excerpt:"
+msgstr "Bericht inhoud:"
+
+#: Mailman/Cgi/admindb.py:676 Mailman/Deliverer.py:124
+msgid "No reason given"
+msgstr "Geen reden opgegeven"
+
+#: Mailman/Cgi/admindb.py:737 Mailman/ListAdmin.py:308
+#: Mailman/ListAdmin.py:429
+msgid "[No reason given]"
+msgstr "[Geen reden opgegeven]"
+
+#: Mailman/Cgi/admindb.py:766
+msgid "Database Updated..."
+msgstr "De database is gewijzigd..."
+
+#: Mailman/Cgi/admindb.py:769
+msgid " is already a member"
+msgstr " is al lid"
+
+#: Mailman/Cgi/confirm.py:69
+msgid "Confirmation string was empty."
+msgstr "De bevestiging was niet ingevuld."
+
+#: Mailman/Cgi/confirm.py:89
+msgid ""
+"<b>Invalid confirmation string:</b>\n"
+" %(safecookie)s.\n"
+"\n"
+" <p>Note that confirmation strings expire approximately\n"
+" %(days)s days after the initial subscription request. If your\n"
+" confirmation has expired, please try to re-submit your subscription.\n"
+" Otherwise, <a href=\"%(confirmurl)s\">re-enter</a> your confirmation\n"
+" string."
+msgstr ""
+"<b>Geen geldige bevestiging:</b>\n"
+" %(safecookie)s.\n"
+"\n"
+" <p>Noot: de bevestigingen zijn maar\n"
+" %(days)s dagen geldig na de aanmelding. Als je\n"
+" bevestiging is verlopen, probeer je dan opnieuw aan te melden.\n"
+" Anders, bevestig <a href=\"%(confirmurl)s\">hier</a> je bevestigings\n"
+" code."
+
+#: Mailman/Cgi/confirm.py:122
+msgid ""
+"The address requesting unsubscription is not\n"
+" a member of the mailing list. Perhaps you have already "
+"been\n"
+" unsubscribed, e.g. by the list administrator?"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:138
+#, fuzzy
+msgid ""
+"The address requesting to be changed has\n"
+" been subsequently unsubscribed. This request has been\n"
+" cancelled."
+msgstr ""
+"Het verzoekende adres is veranderd\n"
+" voor de afmelding. Deze opdracht is\n"
+" gestopt"
+
+#: Mailman/Cgi/confirm.py:157
+msgid "System error, bad content: %(content)s"
+msgstr "Systeem fout, foute inhoud: %(content)s"
+
+#: Mailman/Cgi/confirm.py:167
+msgid "Bad confirmation string"
+msgstr "Verkeerde bevestigings code"
+
+#: Mailman/Cgi/confirm.py:175
+msgid "Enter confirmation cookie"
+msgstr "Voer je bevestigings code in"
+
+#: Mailman/Cgi/confirm.py:188
+msgid ""
+"Please enter the confirmation string\n"
+" (i.e. <em>cookie</em>) that you received in your email message, in the "
+"box\n"
+" below. Then hit the <em>Submit</em> button to proceed to the next\n"
+" confirmation step."
+msgstr ""
+"Voer de bevestigings code in\n"
+" (i.e. <em>code</em>) dat je hebt ontvagen in een email bericht, in het "
+"invoerveld\n"
+" hieronder. Druk dan op de <em>Verstuur</em> knop voor de volgende\n"
+" bevestigings stap."
+
+#: Mailman/Cgi/confirm.py:193
+msgid "Confirmation string:"
+msgstr "Bevestigings code:"
+
+#: Mailman/Cgi/confirm.py:195
+msgid "Submit"
+msgstr "Verstuur"
+
+#: Mailman/Cgi/confirm.py:210
+msgid "Confirm subscription request"
+msgstr "Bevestig het aanmeldings verzoek"
+
+#: Mailman/Cgi/confirm.py:227
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" subscription request to the mailing list <em>%(listname)s</em>. Your\n"
+" subscription settings are shown below; make any necessary changes and "
+"hit\n"
+" <em>Subscribe</em> to complete the confirmation process. Once you've\n"
+" confirmed your subscription request, you will be shown your account\n"
+" options page which you can use to further customize your membership\n"
+" options.\n"
+"\n"
+" <p>Note: your password will be emailed to you once your subscription is\n"
+" confirmed. You can change it by visiting your personal options page.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this subscription\n"
+" request."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:242
+msgid ""
+"Your confirmation is required in order to continue with\n"
+" the subscription request to the mailing list <em>%(listname)s</em>.\n"
+" Your subscription settings are shown below; make any necessary "
+"changes\n"
+" and hit <em>Subscribe to list ...</em> to complete the confirmation\n"
+" process. Once you've confirmed your subscription request, the\n"
+" moderator must approve or reject your membership request. You will\n"
+" receive notice of their decision.\n"
+"\n"
+" <p>Note: your password will be emailed to you once your "
+"subscription\n"
+" is confirmed. You can change it by visiting your personal options\n"
+" page.\n"
+"\n"
+" <p>Or, if you've changed your mind and do not want to subscribe to\n"
+" this mailing list, you can hit <em>Cancel my subscription\n"
+" request</em>."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:260
+msgid "Your email address:"
+msgstr "Je email adres:"
+
+#: Mailman/Cgi/confirm.py:261
+msgid "Your real name:"
+msgstr "Je volledige naam:"
+
+#: Mailman/Cgi/confirm.py:270
+msgid "Receive digests?"
+msgstr "Wil je digests ontvangen?"
+
+#: Mailman/Cgi/confirm.py:279
+msgid "Preferred language:"
+msgstr "Taal voorkeur:"
+
+#: Mailman/Cgi/confirm.py:284
+msgid "Cancel my subscription request"
+msgstr "Verwijder mijn aanmeldings verzoek"
+
+#: Mailman/Cgi/confirm.py:285
+msgid "Subscribe to list %(listname)s"
+msgstr "Meld je aan op deze mailing lijst %(listname)s"
+
+#: Mailman/Cgi/confirm.py:295
+msgid "You have canceled your subscription request."
+msgstr "Je hebt je aanmelding geannuleerd."
+
+#: Mailman/Cgi/confirm.py:329
+msgid "Awaiting moderator approval"
+msgstr "Wachtend op moderator goedkeuring."
+
+#: Mailman/Cgi/confirm.py:332
+msgid ""
+" You have successfully confirmed your subscription request to "
+"the\n"
+" mailing list %(listname)s, however final approval is required "
+"from\n"
+" the list moderator before you will be subscribed. Your request\n"
+" has been forwarded to the list moderator, and you will be "
+"notified\n"
+" of the moderator's decision."
+msgstr ""
+" Gefeliciteerd! De bevestiging is verwerkt voor\n"
+" mailing lijst %(listname)s, De lijst is gemodereerd. De "
+"lijstbeheerder of moderator\n"
+" zal je verzoek goed of afkeuren.\n"
+" Je krijgt een bevestiging terug van de beslissing die de\n"
+" moderator of lijstbeheerder heeft genomen."
+
+#: Mailman/Cgi/confirm.py:339 Mailman/Cgi/confirm.py:394
+#: Mailman/Cgi/confirm.py:482 Mailman/Cgi/confirm.py:705
+msgid ""
+"Invalid confirmation string. It is\n"
+" possible that you are attempting to confirm a request for an\n"
+" address that has already been unsubscribed."
+msgstr ""
+"Foute bevestigings code!. Het is\n"
+" mogelijk dat je dit email adres al is afgemeld van de lijst.\n"
+" "
+
+#: Mailman/Cgi/confirm.py:343
+msgid "You are already a member of this mailing list!"
+msgstr "Je bent al lid van deze mailinglijst!"
+
+#: Mailman/Cgi/confirm.py:350
+msgid "Subscription request confirmed"
+msgstr "Aanmeldings verzoek bevestigd"
+
+#: Mailman/Cgi/confirm.py:354
+msgid ""
+" You have successfully confirmed your subscription request for\n"
+" \"%(addr)s\" to the %(listname)s mailing list. A separate\n"
+" confirmation message will be sent to your email address, along\n"
+" with your password, and other useful information and links.\n"
+"\n"
+" <p>You can now\n"
+" <a href=\"%(optionsurl)s\">proceed to your membership login\n"
+" page</a>."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:372
+msgid "You have canceled your unsubscription request."
+msgstr "Je hebt je afmeldings verzoek geannuleerd."
+
+#: Mailman/Cgi/confirm.py:400
+msgid "Unsubscription request confirmed"
+msgstr "Afmeldings verzoek is bevestigd"
+
+#: Mailman/Cgi/confirm.py:404
+msgid ""
+" You have successfully unsubscribed from the %(listname)s "
+"mailing\n"
+" list. You can now <a href=\"%(listinfourl)s\">visit the list's "
+"main\n"
+" information page</a>."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:415
+msgid "Confirm unsubscription request"
+msgstr "Bevestig afmeldings verzoek"
+
+#: Mailman/Cgi/confirm.py:430 Mailman/Cgi/confirm.py:519
+msgid "<em>Not available</em>"
+msgstr "<em>Niet beschikbaar</em>"
+
+#: Mailman/Cgi/confirm.py:433
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" unsubscription request from the mailing list <em>%(listname)s</em>. "
+"You\n"
+" are currently subscribed with\n"
+"\n"
+" <ul><li><b>Real name:</b> %(fullname)s\n"
+" <li><b>Email address:</b> %(addr)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Unsubscribe</em> button below to complete the confirmation\n"
+" process.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this unsubscription\n"
+" request."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:449 Mailman/Cgi/options.py:660
+#: Mailman/Cgi/options.py:801 Mailman/Cgi/options.py:811
+msgid "Unsubscribe"
+msgstr "Afmelden"
+
+#: Mailman/Cgi/confirm.py:450 Mailman/Cgi/confirm.py:548
+msgid "Cancel and discard"
+msgstr "Stop en negeer"
+
+#: Mailman/Cgi/confirm.py:460
+msgid "You have canceled your change of address request."
+msgstr "Je hebt je email adres verandering geannuleerd."
+
+#: Mailman/Cgi/confirm.py:488
+msgid "Change of address request confirmed"
+msgstr "Verandering van het email adres is bevestigd"
+
+#: Mailman/Cgi/confirm.py:492
+msgid ""
+" You have successfully changed your address on the %(listname)s\n"
+" mailing list from <b>%(oldaddr)s</b> to <b>%(newaddr)s</b>. "
+"You\n"
+" can now <a href=\"%(optionsurl)s\">proceed to your membership\n"
+" login page</a>."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:504
+msgid "Confirm change of address request"
+msgstr "Bevestig de verandering van email adres verzoek"
+
+#: Mailman/Cgi/confirm.py:523
+msgid "globally"
+msgstr "globaal"
+
+#: Mailman/Cgi/confirm.py:526
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" change of address request for the mailing list <em>%(listname)s</em>. "
+"You\n"
+" are currently subscribed with\n"
+"\n"
+" <ul><li><b>Real name:</b> %(fullname)s\n"
+" <li><b>Old email address:</b> %(oldaddr)s\n"
+" </ul>\n"
+"\n"
+" and you have requested to %(globallys)s change your email address to\n"
+"\n"
+" <ul><li><b>New email address:</b> %(newaddr)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Change address</em> button below to complete the "
+"confirmation\n"
+" process.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this change of address\n"
+" request."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:547
+msgid "Change address"
+msgstr "Verander email adres"
+
+#: Mailman/Cgi/confirm.py:557 Mailman/Cgi/confirm.py:670
+msgid "Continue awaiting approval"
+msgstr "Ga door naar wachtende beslissing"
+
+#: Mailman/Cgi/confirm.py:564
+msgid ""
+"Okay, the list moderator will still have the\n"
+" opportunity to approve or reject this message."
+msgstr ""
+"Oke, de lijst moderator heeft nog steeds de bevoegdheid om\n"
+" het bericht te annuleren of door te laten."
+
+#: Mailman/Cgi/confirm.py:590
+msgid "Sender discarded message via web."
+msgstr "Verstuurder heeft bericht geannuleerd via het web."
+
+#: Mailman/Cgi/confirm.py:592
+msgid ""
+"The held message with the Subject:\n"
+" header <em>%(subject)s</em> could not be found. The most "
+"likely\n"
+" reason for this is that the list moderator has already approved "
+"or\n"
+" rejected the message. You were not able to cancel it in\n"
+" time."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:600
+msgid "Posted message canceled"
+msgstr "Bezorgd bericht geannuleerd"
+
+#: Mailman/Cgi/confirm.py:603
+msgid ""
+" You have successfully canceled the posting of your message with\n"
+" the Subject: header <em>%(subject)s</em> to the mailing list\n"
+" %(listname)s."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:614
+msgid "Cancel held message posting"
+msgstr "Annuleer vastgehouden bericht"
+
+#: Mailman/Cgi/confirm.py:639
+msgid ""
+"The held message you were referred to has\n"
+" already been handled by the list administrator."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:653
+msgid ""
+"Your confirmation is required in order to cancel the\n"
+" posting of your message to the mailing list <em>%(listname)s</em>:\n"
+"\n"
+" <ul><li><b>Sender:</b> %(sender)s\n"
+" <li><b>Subject:</b> %(subject)s\n"
+" <li><b>Reason:</b> %(reason)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Cancel posting</em> button to discard the posting.\n"
+"\n"
+" <p>Or hit the <em>Continue awaiting approval</em> button to continue to\n"
+" allow the list moderator to approve or reject the message."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:669
+msgid "Cancel posting"
+msgstr "Annuleer het bericht"
+
+#: Mailman/Cgi/confirm.py:681
+msgid ""
+"You have canceled the re-enabling of your membership. If\n"
+" we continue to receive bounces from your address, it could be deleted "
+"from\n"
+" this mailing list."
+msgstr ""
+"Je hebt je lidmaatschap geannuleerd of her-geacktiveerd. Als\n"
+" het systeem weer bounces krijgt dan word je lidmaatschap geannuleerd op\n"
+" deze mailing lijst."
+
+#: Mailman/Cgi/confirm.py:711
+msgid "Membership re-enabled."
+msgstr "Lidmaatschap is weer geaktiveerd."
+
+#: Mailman/Cgi/confirm.py:715
+msgid ""
+" You have successfully re-enabled your membership in the\n"
+" %(listname)s mailing list. You can now <a\n"
+" href=\"%(optionsurl)s\">visit your member options page</a>.\n"
+" "
+msgstr ""
+" Je hebt he lidmaatschap weer aktief gezet op de\n"
+" %(listname)s mailing lijst. Je kan nu <a\n"
+" href=\"%(optionsurl)s\">je persoonlijke opties pagina bezoeken</"
+"a>.\n"
+" "
+
+#: Mailman/Cgi/confirm.py:727
+msgid "Re-enable mailing list membership"
+msgstr "Her-aanmelding mailing lijst lidmaatschap"
+
+#: Mailman/Cgi/confirm.py:744
+msgid ""
+"We're sorry, but you have already been unsubscribed\n"
+" from this mailing list. To re-subscribe, please visit the\n"
+" <a href=\"%(listinfourl)s\">list information page</a>."
+msgstr ""
+"Sorry, je bent al afgemeld van\n"
+" deze mailing lijst. Om je weer aan te nelden bezoek\n"
+" <a href=\"%(listinfourl)s\">lijst informatie pagina</a>."
+
+#: Mailman/Cgi/confirm.py:758
+msgid "<em>not available</em>"
+msgstr "<em>niet beschikbaar</em>"
+
+#: Mailman/Cgi/confirm.py:762
+msgid ""
+"Your membership in the %(realname)s mailing list is\n"
+" currently disabled due to excessive bounces. Your confirmation is\n"
+" required in order to re-enable delivery to your address. We have the\n"
+" following information on file:\n"
+"\n"
+" <ul><li><b>Member address:</b> %(member)s\n"
+" <li><b>Member name:</b> %(username)s\n"
+" <li><b>Last bounce received on:</b> %(date)s\n"
+" <li><b>Approximate number of days before you are permanently "
+"removed\n"
+" from this list:</b> %(daysleft)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Re-enable membership</em> button to resume receiving "
+"postings\n"
+" from the mailing list. Or hit the <em>Cancel</em> button to defer\n"
+" re-enabling your membership.\n"
+" "
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:782
+msgid "Re-enable membership"
+msgstr "Her-activeer lidmaatschap"
+
+#: Mailman/Cgi/confirm.py:783
+msgid "Cancel"
+msgstr "Annuleer"
+
+#: Mailman/Cgi/create.py:48 Mailman/Cgi/rmlist.py:48
+msgid "Bad URL specification"
+msgstr "Geen goede URL specificatie"
+
+#: Mailman/Cgi/create.py:63 Mailman/Cgi/rmlist.py:176
+msgid "Return to the "
+msgstr "Terug naar de "
+
+#: Mailman/Cgi/create.py:65 Mailman/Cgi/rmlist.py:178
+msgid "general list overview"
+msgstr "algemeen lijst overzicht"
+
+#: Mailman/Cgi/create.py:66 Mailman/Cgi/rmlist.py:179
+msgid "<br>Return to the "
+msgstr "<br>Terug naar de "
+
+#: Mailman/Cgi/create.py:68 Mailman/Cgi/rmlist.py:181
+msgid "administrative list overview"
+msgstr "beheerders lijst overzicht"
+
+#: Mailman/Cgi/create.py:101
+msgid "List name must not include \"@\": %(listname)s"
+msgstr "Lijstnaam mag niet de volgende tekens bevatten: \"@\": %(listname)s"
+
+#: Mailman/Cgi/create.py:107 Mailman/Cgi/create.py:185 bin/newlist:134
+#: bin/newlist:168
+msgid "List already exists: %(listname)s"
+msgstr "Lijst bestaat al: %(listname)s"
+
+#: Mailman/Cgi/create.py:111
+msgid "You forgot to enter the list name"
+msgstr "Je bent vergeten de lijst naam in te voeren"
+
+#: Mailman/Cgi/create.py:115
+msgid "You forgot to specify the list owner"
+msgstr "Je bent vergeten de lijst eigenaar in te voeren"
+
+#: Mailman/Cgi/create.py:122
+msgid ""
+"Leave the initial password (and confirmation) fields\n"
+" blank if you want Mailman to autogenerate the list\n"
+" passwords."
+msgstr ""
+"Als je het wachtwoord veld leeg laat\n"
+" dan zal het systeem een wachtwoord genereren.\n"
+" "
+
+#: Mailman/Cgi/create.py:130
+msgid "Initial list passwords do not match"
+msgstr "Ingevoerde wachtwoorden komen niet overeen"
+
+#: Mailman/Cgi/create.py:139
+msgid "The list password cannot be empty<!-- ignore -->"
+msgstr "De lijst wachtwoord moet ingevuld worden<!-- ignore -->"
+
+#: Mailman/Cgi/create.py:151
+msgid "You are not authorized to create new mailing lists"
+msgstr "Je bent niet geauthoriseerd om nieuwe lijsten aan te maken"
+
+#: Mailman/Cgi/create.py:181 bin/newlist:166
+msgid "Bad owner email address: %(s)s"
+msgstr "Foutieve lijst eigenaar email adres: %(s)s"
+
+#: Mailman/Cgi/create.py:189 bin/newlist:164
+msgid "Illegal list name: %(s)s"
+msgstr "Illegale lijst naam: %(s)s"
+
+#: Mailman/Cgi/create.py:194
+msgid ""
+"Some unknown error occurred while creating the list.\n"
+" Please contact the site administrator for assistance."
+msgstr ""
+"Systeem fout is opgetreden tijden het maken van de lnieuwe lijst.\n"
+" Neem contact op met de website eigenaar."
+
+#: Mailman/Cgi/create.py:233 bin/newlist:210
+msgid "Your new mailing list: %(listname)s"
+msgstr "Je nieuwe mailing lijst : %(listname)s"
+
+#: Mailman/Cgi/create.py:242
+msgid "Mailing list creation results"
+msgstr "Mailing lijst aanmaak resultaten:"
+
+#: Mailman/Cgi/create.py:248
+msgid ""
+"You have successfully created the mailing list\n"
+" <b>%(listname)s</b> and notification has been sent to the list owner\n"
+" <b>%(owner)s</b>. You can now:"
+msgstr ""
+"De mailinglijst is aangemaakt.\n"
+" <b>%(listname)s</b> gegevens zijn naar de lijst eigenaar verzonden \n"
+" <b>%(owner)s</b>. Je kan nu:"
+
+#: Mailman/Cgi/create.py:252
+msgid "Visit the list's info page"
+msgstr "Bezoek de lijst informatie pagina"
+
+#: Mailman/Cgi/create.py:253
+msgid "Visit the list's admin page"
+msgstr "Bezoek de lijst beheerders pagina"
+
+#: Mailman/Cgi/create.py:254
+msgid "Create another list"
+msgstr "Maak nog een mailing lijst aan"
+
+#: Mailman/Cgi/create.py:272
+msgid "Create a %(hostname)s Mailing List"
+msgstr "Maak aan een %(hostname)s Mailing lijst"
+
+#: Mailman/Cgi/create.py:281 Mailman/Cgi/rmlist.py:199
+#: Mailman/Gui/Bounce.py:175 Mailman/htmlformat.py:339
+msgid "Error: "
+msgstr "FOUT:"
+
+#: Mailman/Cgi/create.py:283
+msgid ""
+"You can create a new mailing list by entering the\n"
+" relevant information into the form below. The name of the mailing list\n"
+" will be used as the primary address for posting messages to the list, "
+"so\n"
+" it should be lowercased. You will not be able to change this once the\n"
+" list is created.\n"
+"\n"
+" <p>You also need to enter the email address of the initial list owner.\n"
+" Once the list is created, the list owner will be given notification, "
+"along\n"
+" with the initial list password. The list owner will then be able to\n"
+" modify the password and add or remove additional list owners.\n"
+"\n"
+" <p>If you want Mailman to automatically generate the initial list admin\n"
+" password, click on `Yes' in the autogenerate field below, and leave the\n"
+" initial list password fields empty.\n"
+"\n"
+" <p>You must have the proper authorization to create new mailing lists.\n"
+" Each site should have a <em>list creator's</em> password, which you can\n"
+" enter in the field at the bottom. Note that the site administrator's\n"
+" password can also be used for authentication.\n"
+" "
+msgstr ""
+
+#: Mailman/Cgi/create.py:309
+msgid "List Identity"
+msgstr "Lijst Identificatie"
+
+#: Mailman/Cgi/create.py:312
+msgid "Name of list:"
+msgstr "Naam van de lijst:"
+
+#: Mailman/Cgi/create.py:317
+msgid "Initial list owner address:"
+msgstr "Lijst eigenaar email adres:"
+
+#: Mailman/Cgi/create.py:326
+msgid "Auto-generate initial list password?"
+msgstr "Automatisch een wachtwoord genereren?"
+
+#: Mailman/Cgi/create.py:333
+msgid "Initial list password:"
+msgstr "Lijst wachtwoord:"
+
+#: Mailman/Cgi/create.py:338
+msgid "Confirm initial password:"
+msgstr "Bevestiging lijst wachtwoord"
+
+#: Mailman/Cgi/create.py:348
+msgid "List Characteristics"
+msgstr "Lijst eigenschappen"
+
+#: Mailman/Cgi/create.py:352
+msgid ""
+"Should new members be quarantined before they\n"
+" are allowed to post unmoderated to this list? Answer <em>Yes</em> to "
+"hold\n"
+" new member postings for moderator approval by default."
+msgstr ""
+
+#: Mailman/Cgi/create.py:383
+msgid ""
+"Initial list of supported languages. <p>Note that if you do not\n"
+" select at least one initial language, the list will use the server\n"
+" default language of %(deflang)s"
+msgstr ""
+
+#: Mailman/Cgi/create.py:394
+msgid "Send \"list created\" email to list owner?"
+msgstr ""
+
+#: Mailman/Cgi/create.py:403
+msgid "List creator's (authentication) password:"
+msgstr ""
+
+#: Mailman/Cgi/create.py:408
+msgid "Create List"
+msgstr "Lijst aanmaken"
+
+#: Mailman/Cgi/create.py:409
+msgid "Clear Form"
+msgstr "Wis formulier"
+
+#: Mailman/Cgi/edithtml.py:43
+msgid "General list information page"
+msgstr "Algemene lijst informatie pagina"
+
+#: Mailman/Cgi/edithtml.py:44
+msgid "Subscribe results page"
+msgstr "Aanmeldings resultaat pagina"
+
+#: Mailman/Cgi/edithtml.py:45
+msgid "User specific options page"
+msgstr "Gebruikers specifieke opties pagina"
+
+#: Mailman/Cgi/edithtml.py:57
+msgid "List name is required."
+msgstr "Lijst naam is benodigd."
+
+#: Mailman/Cgi/edithtml.py:97
+msgid "%(realname)s -- Edit html for %(template_info)s"
+msgstr "%(realname)s -- Bewerken html voor %(template_info)s"
+
+#: Mailman/Cgi/edithtml.py:103
+msgid "Edit HTML : Error"
+msgstr "Bewerk HTML : Fout"
+
+#: Mailman/Cgi/edithtml.py:104
+msgid "%(safetemplatename)s: Invalid template"
+msgstr "%(safetemplatename)s: Geen geldige template"
+
+#: Mailman/Cgi/edithtml.py:109 Mailman/Cgi/edithtml.py:110
+msgid "%(realname)s -- HTML Page Editing"
+msgstr "%(realname)s -- HTML Pagina Bewerken"
+
+#: Mailman/Cgi/edithtml.py:111
+msgid "Select page to edit:"
+msgstr "Selecteer pagina om te bewerken:"
+
+#: Mailman/Cgi/edithtml.py:137
+msgid "View or edit the list configuration information."
+msgstr "Bekijk of bewerk de informatie van de lijst configuratie"
+
+#: Mailman/Cgi/edithtml.py:145
+msgid "When you are done making changes..."
+msgstr "Als je klaar bent met het bewerken..."
+
+#: Mailman/Cgi/edithtml.py:146
+msgid "Submit Changes"
+msgstr "Verstuur de wijzigingen"
+
+#: Mailman/Cgi/edithtml.py:153
+msgid "Can't have empty html page."
+msgstr "Pagina mag niet leeg zijn!"
+
+#: Mailman/Cgi/edithtml.py:154
+msgid "HTML Unchanged."
+msgstr "Pagina onveranderd."
+
+#: Mailman/Cgi/edithtml.py:169
+msgid "HTML successfully updated."
+msgstr "HTML pagina opgeslagen."
+
+#: Mailman/Cgi/listinfo.py:71
+msgid "%(hostname)s Mailing Lists"
+msgstr "%(hostname)s Mailing Lijsten"
+
+#: Mailman/Cgi/listinfo.py:103
+msgid ""
+"<p>There currently are no publicly-advertised\n"
+" %(mailmanlink)s mailing lists on %(hostname)s."
+msgstr ""
+"<p>Er zijn momenteel geen publieke\n"
+" %(mailmanlink)s mailing lijsten op %(hostname)s."
+
+#: Mailman/Cgi/listinfo.py:107
+msgid ""
+"<p>Below is a listing of all the public mailing lists on\n"
+" %(hostname)s. Click on a list name to get more information "
+"about\n"
+" the list, or to subscribe, unsubscribe, and change the "
+"preferences\n"
+" on your subscription."
+msgstr ""
+"<p>Hier vind je alle publieke mailing lijsten op\n"
+" %(hostname)s. Klik op een lijstnaam voor meer informatie."
+
+#: Mailman/Cgi/listinfo.py:113
+msgid "right"
+msgstr "rechts"
+
+#: Mailman/Cgi/listinfo.py:116
+msgid ""
+" To visit the general information page for an unadvertised list,\n"
+" open a URL similar to this one, but with a '/' and the %(adj)s\n"
+" list name appended.\n"
+" <p>List administrators, you can visit "
+msgstr ""
+" Om de informatie pagina te openen voor een lijst die niet zichtbaar is,\n"
+" open een URL zoals deze, maar dan met een '/' en de %(adj)s\n"
+" lijst naam er achter.\n"
+" <p>Lijst beheerders, vinden "
+
+#: Mailman/Cgi/listinfo.py:121
+msgid "the list admin overview page"
+msgstr "hier"
+
+#: Mailman/Cgi/listinfo.py:122
+msgid ""
+" to find the management interface for your list.\n"
+" <p>Send questions or comments to "
+msgstr ""
+" uw administratie beheerders pagina.\n"
+" <p>Vragen kun je richten aan "
+
+#: Mailman/Cgi/listinfo.py:187
+msgid "Edit Options"
+msgstr "Bewerk de opties"
+
+#: Mailman/Cgi/listinfo.py:194 Mailman/Cgi/options.py:767
+#: Mailman/Cgi/roster.py:111
+msgid "View this page in"
+msgstr "Bekijk deze pagina in"
+
+#: Mailman/Cgi/options.py:51 Mailman/Cgi/options.py:68
+msgid "CGI script error"
+msgstr "CGI script fout"
+
+#: Mailman/Cgi/options.py:54
+msgid "Invalid options to CGI script."
+msgstr "Geen geldige opties doorgegeven voor het CGI script."
+
+#: Mailman/Cgi/options.py:96
+msgid "No address given"
+msgstr "Geen adres is opgegeven"
+
+#: Mailman/Cgi/options.py:108 Mailman/Cgi/options.py:155
+#: Mailman/Cgi/options.py:177
+msgid "No such member: %(safeuser)s."
+msgstr "Niet zo een lid: %(safeuser)s."
+
+#: Mailman/Cgi/options.py:150 Mailman/Cgi/options.py:160
+msgid "The confirmation email has been sent."
+msgstr "Het bevestigings mailtje is verzonden"
+
+#: Mailman/Cgi/options.py:171 Mailman/Cgi/options.py:183
+#: Mailman/Cgi/options.py:226
+msgid "A reminder of your password has been emailed to you."
+msgstr "Een herinnering's mailje met je wachtwoord is verzonden."
+
+#: Mailman/Cgi/options.py:200
+msgid "Authentication failed."
+msgstr "Autenticatie is mislukt"
+
+#: Mailman/Cgi/options.py:232
+msgid "List subscriptions for %(user)s on %(hostname)s"
+msgstr "Lijst aanmeldingen voor %(user)s op %(hostname)s"
+
+#: Mailman/Cgi/options.py:235
+msgid ""
+"Click on a link to visit your options page for the\n"
+" requested mailing list."
+msgstr ""
+"Klik op een link om de optie pagina weer te geven van de\n"
+" opgevraagde mailing lijst."
+
+#: Mailman/Cgi/options.py:284
+msgid "Addresses did not match!"
+msgstr "Adressen komen niet overeen!"
+
+#: Mailman/Cgi/options.py:289
+msgid "You are already using that email address"
+msgstr "Je gebruikt al dat email adres"
+
+#: Mailman/Cgi/options.py:301
+msgid ""
+"The new address you requested %(newaddr)s is already a member of the\n"
+"%(listname)s mailing list, however you have also requested a global change "
+"of\n"
+"address. Upon confirmation, any other mailing list containing the address\n"
+"%(user)s will be changed. "
+msgstr ""
+
+#: Mailman/Cgi/options.py:310
+msgid "The new address is already a member: %(newaddr)s"
+msgstr "%(newaddr)s is al lid van de mailing lijst."
+
+#: Mailman/Cgi/options.py:316
+msgid "Addresses may not be blank"
+msgstr "Email adressen mogen niet blank zijn"
+
+#: Mailman/Cgi/options.py:328
+msgid "A confirmation message has been sent to %(newaddr)s. "
+msgstr "Een bevestigings bericht is verzonden naar %(newaddr)s."
+
+#: Mailman/Cgi/options.py:337
+msgid "Bad email address provided"
+msgstr "Foutief email adres opgegeven"
+
+#: Mailman/Cgi/options.py:339
+msgid "Illegal email address provided"
+msgstr "Illegaal email adres opgegeven"
+
+#: Mailman/Cgi/options.py:341
+msgid "%(newaddr)s is already a member of the list."
+msgstr "%(newaddr)s is al lid van de mailing lijst."
+
+#: Mailman/Cgi/options.py:350
+msgid "Member name successfully changed. "
+msgstr "Gebruikersnaam is veranderd. "
+
+#: Mailman/Cgi/options.py:361
+msgid "Passwords may not be blank"
+msgstr "Wachtwoorden mogen niet blank zijn"
+
+#: Mailman/Cgi/options.py:366
+msgid "Passwords did not match!"
+msgstr "Wachtwoorden kwamen niet overeen!"
+
+#: Mailman/Cgi/options.py:381 Mailman/Commands/cmd_password.py:79
+#: Mailman/Commands/cmd_password.py:105
+msgid "Password successfully changed."
+msgstr "Wachtwoord is veranderd."
+
+#: Mailman/Cgi/options.py:390
+msgid ""
+"You must confirm your unsubscription request by turning\n"
+" on the checkbox below the <em>Unsubscribe</em> button. You\n"
+" have not been unsubscribed!"
+msgstr ""
+
+#: Mailman/Cgi/options.py:422
+msgid "Unsubscription results"
+msgstr "Afmeldings resultaat"
+
+#: Mailman/Cgi/options.py:426
+msgid ""
+"Your unsubscription request has been received and\n"
+" forwarded on to the list moderators for approval. You will\n"
+" receive notification once the list moderators have made their\n"
+" decision."
+msgstr ""
+
+#: Mailman/Cgi/options.py:431
+msgid ""
+"You have been successfully unsubscribed from the\n"
+" mailing list %(fqdn_listname)s. If you were receiving digest\n"
+" deliveries you may get one more digest. If you have any "
+"questions\n"
+" about your unsubscription, please contact the list owners at\n"
+" %(owneraddr)s."
+msgstr ""
+
+#: Mailman/Cgi/options.py:582
+msgid ""
+"The list administrator has disabled digest delivery for\n"
+" this list, so your delivery option has not been set. However "
+"your\n"
+" other options have been set successfully."
+msgstr ""
+
+#: Mailman/Cgi/options.py:586
+msgid ""
+"The list administrator has disabled non-digest delivery\n"
+" for this list, so your delivery option has not been set. "
+"However\n"
+" your other options have been set successfully."
+msgstr ""
+
+#: Mailman/Cgi/options.py:590
+msgid "You have successfully set your options."
+msgstr "De instellingen zijn gewijzigd en doorgevoerd."
+
+#: Mailman/Cgi/options.py:593
+msgid "You may get one last digest."
+msgstr "Je krijgt mischien nog 1 laatste digest toegestuurd."
+
+#: Mailman/Cgi/options.py:662
+msgid "<em>Yes, I really want to unsubscribe</em>"
+msgstr "<em>Ja, ik wil mij echt afmelden</em>"
+
+#: Mailman/Cgi/options.py:666
+msgid "Change My Password"
+msgstr "Wijzig mijn wachtwoord"
+
+#: Mailman/Cgi/options.py:669
+msgid "List my other subscriptions"
+msgstr "Laat mijn andere aanmeldingen zien"
+
+#: Mailman/Cgi/options.py:675
+msgid "Email My Password To Me"
+msgstr "Stuur mij mijn wachtwoord per email toe"
+
+#: Mailman/Cgi/options.py:677
+msgid "password"
+msgstr "wachtwoord"
+
+#: Mailman/Cgi/options.py:679
+msgid "Log out"
+msgstr "Uitloggen"
+
+#: Mailman/Cgi/options.py:681
+msgid "Submit My Changes"
+msgstr "Verstuur de wijzigingen"
+
+#: Mailman/Cgi/options.py:693
+msgid "days"
+msgstr "dagen"
+
+#: Mailman/Cgi/options.py:695
+msgid "day"
+msgstr "dag"
+
+#: Mailman/Cgi/options.py:696
+msgid "%(days)d %(units)s"
+msgstr "%(days)d %(units)s"
+
+#: Mailman/Cgi/options.py:702
+msgid "Change My Address and Name"
+msgstr "Verander mijn email adres en naam"
+
+#: Mailman/Cgi/options.py:726
+msgid "<em>No topics defined</em>"
+msgstr "<em>Geen onderwerpen gedefineerd</em>"
+
+#: Mailman/Cgi/options.py:734
+msgid ""
+"\n"
+"You are subscribed to this list with the case-preserved address\n"
+"<em>%(cpuser)s</em>."
+msgstr ""
+
+#: Mailman/Cgi/options.py:748
+msgid "%(realname)s list: member options login page"
+msgstr "%(realname)s lijst: inlog pagina voor opties van leden"
+
+#: Mailman/Cgi/options.py:749
+msgid "email address and "
+msgstr "email adres en "
+
+#: Mailman/Cgi/options.py:751
+msgid "%(realname)s list: member options for user %(user)s"
+msgstr "%(realname)s lijst: lid opties voor de gebruiker %(user)s"
+
+#: Mailman/Cgi/options.py:777
+msgid ""
+"In order to change your membership option, you must\n"
+" first log in by giving your %(extra)smembership password in the section\n"
+" below. If you don't remember your membership password, you can have it\n"
+" emailed to you by clicking on the button below. If you just want to\n"
+" unsubscribe from this list, click on the <em>Unsubscribe</em> button and "
+"a\n"
+" confirmation message will be sent to you.\n"
+"\n"
+" <p><strong><em>Important:</em></strong> From this point on, you must "
+"have\n"
+" cookies enabled in your browser, otherwise none of your changes will "
+"take\n"
+" effect.\n"
+" "
+msgstr ""
+"Om je opties te wijzigen moet je inloggen met je email adres en je "
+"wachtwoord.\n"
+" \n"
+" Als je je wachtwoord niet meer weet, klik dan op <em>Herinnering</em>.\n"
+" Het wachtwoord wordt je dan toegezonden per email.\n"
+" Om je af te melden van deze lijst klik je op <em>Afmelden</em> er\n"
+" zal dan een bevestigings email naar je toegezonden worden.\n"
+"\n"
+" <p><strong><em>Belangrijk!:</em></strong> vanaf hier werkt het met "
+"Cookies.\n"
+" Cookies moeten aan staan in je browser. Anders kan je niet inloggen en "
+"je opties\n"
+" veranderen.\n"
+" "
+
+#: Mailman/Cgi/options.py:791
+msgid "Email address:"
+msgstr "Email adres:"
+
+#: Mailman/Cgi/options.py:795
+msgid "Password:"
+msgstr "Wachtwoord"
+
+#: Mailman/Cgi/options.py:797
+msgid "Log in"
+msgstr "Inloggen"
+
+#: Mailman/Cgi/options.py:805
+msgid ""
+"By clicking on the <em>Unsubscribe</em> button, a\n"
+" confirmation message will be emailed to you. This message will have a\n"
+" link that you should click on to complete the removal process (you can\n"
+" also confirm by email; see the instructions in the confirmation\n"
+" message)."
+msgstr ""
+"Door op de knop <em>Afmelden</em> te drukken, zal\n"
+" er een bevestigings email gestuurd worden. In dit bericht staat een "
+"link \n"
+" die je moet bezoeken om je afmelding te voltooien. (Je kan ook gewoon "
+"dat bericht\n"
+" terug sturen (reply/antwoord) om de afmelding te\n"
+" voltooien.)"
+
+#: Mailman/Cgi/options.py:813
+msgid "Password reminder"
+msgstr "Wachtwoord herinnering"
+
+#: Mailman/Cgi/options.py:817
+msgid ""
+"By clicking on the <em>Remind</em> button, your\n"
+" password will be emailed to you."
+msgstr ""
+"Door op de <em>Herinnering</em> knop te drukken, word\n"
+" je wachtwoord je toegestuurd."
+
+#: Mailman/Cgi/options.py:820
+msgid "Remind"
+msgstr "Herinnering"
+
+#: Mailman/Cgi/options.py:920
+msgid "<missing>"
+msgstr "<onvolledig>"
+
+#: Mailman/Cgi/options.py:931
+msgid "Requested topic is not valid: %(topicname)s"
+msgstr "Aangevraagde onderwerp is niet geldig: %(topicname)s"
+
+#: Mailman/Cgi/options.py:936
+msgid "Topic filter details"
+msgstr "Onderwerp filter details"
+
+#: Mailman/Cgi/options.py:939
+msgid "Name:"
+msgstr "Naam:"
+
+#: Mailman/Cgi/options.py:941
+msgid "Pattern (as regexp):"
+msgstr "Patroon:"
+
+#: Mailman/Cgi/private.py:61
+msgid "Private Archive Error"
+msgstr "privé Archief fout"
+
+#: Mailman/Cgi/private.py:62
+msgid "You must specify a list."
+msgstr "Je moet een lijst opgeven."
+
+#: Mailman/Cgi/private.py:99
+msgid "Private Archive Error - %(msg)s"
+msgstr "privé Archief fout - %(msg)s"
+
+#: Mailman/Cgi/private.py:154
+msgid "Private archive file not found"
+msgstr "privé archief bestand niet gevonden"
+
+#: Mailman/Cgi/rmlist.py:81
+msgid "You're being a sneaky list owner!"
+msgstr "Jij bent een listige lijst beheerder!"
+
+#: Mailman/Cgi/rmlist.py:119
+msgid "You are not authorized to delete this mailing list"
+msgstr "Je bent niet gemachtigd om deze lijst te verwijderen"
+
+#: Mailman/Cgi/rmlist.py:160
+msgid "Mailing list deletion results"
+msgstr "Mailing lijst verwijder status"
+
+#: Mailman/Cgi/rmlist.py:167
+msgid ""
+"You have successfully deleted the mailing list\n"
+" <b>%(listname)s</b>."
+msgstr ""
+"Je hebt de volgende mailing lijst verwijderd:\n"
+" <b>%(listname)s</b>."
+
+#: Mailman/Cgi/rmlist.py:171
+msgid ""
+"There were some problems deleting the mailing list\n"
+" <b>%(listname)s</b>. Contact your site administrator at %(sitelist)"
+"s\n"
+" for details."
+msgstr ""
+
+#: Mailman/Cgi/rmlist.py:188
+msgid "Permanently remove mailing list <em>%(realname)s</em>"
+msgstr "Permanent verwijderen van mailing lijst <em>%(realname)s</em>"
+
+#: Mailman/Cgi/rmlist.py:202
+msgid ""
+"This page allows you as the list owner, to permanent\n"
+" remove this mailing list from the system. <strong>This action is not\n"
+" undoable</strong> so you should undertake it only if you are absolutely\n"
+" sure this mailing list has served its purpose and is no longer "
+"necessary.\n"
+"\n"
+" <p>Note that no warning will be sent to your list members and after "
+"this\n"
+" action, any subsequent messages sent to the mailing list, or any of its\n"
+" administrative addreses will bounce.\n"
+"\n"
+" <p>You also have the option of removing the archives for this mailing "
+"list\n"
+" at this time. It is almost always recommended that you do\n"
+" <strong>not</strong> remove the archives, since they serve as the\n"
+" historical record of your mailing list.\n"
+"\n"
+" <p>For your safety, you will be asked to reconfirm the list password.\n"
+" "
+msgstr ""
+
+#: Mailman/Cgi/rmlist.py:223
+msgid "List password:"
+msgstr "Lijst wachtwoord:"
+
+#: Mailman/Cgi/rmlist.py:227
+msgid "Also delete archives?"
+msgstr "Ook de archieven wissen?"
+
+#: Mailman/Cgi/rmlist.py:235
+msgid "<b>Cancel</b> and return to list administration"
+msgstr "<b>Afbreken</b> en terug gaan naar de lijst administratie"
+
+#: Mailman/Cgi/rmlist.py:238
+msgid "Delete this list"
+msgstr "Wis deze lijst"
+
+#: Mailman/Cgi/roster.py:48 Mailman/Cgi/subscribe.py:50
+msgid "Invalid options to CGI script"
+msgstr "Ongeldige opties voor het CGI script"
+
+#: Mailman/Cgi/roster.py:99
+msgid "%(realname)s roster authentication failed."
+msgstr "%(realname)s gebruiker's aanmelding mislukt."
+
+#: Mailman/Cgi/roster.py:127 Mailman/Cgi/roster.py:128
+#: Mailman/Cgi/subscribe.py:49 Mailman/Cgi/subscribe.py:60
+msgid "Error"
+msgstr "Fout"
+
+#: Mailman/Cgi/subscribe.py:109
+msgid "You must supply a valid email address."
+msgstr "Je moet een geldig email adres opgeven."
+
+#: Mailman/Cgi/subscribe.py:122
+msgid "You may not subscribe a list to itself!"
+msgstr "Je mag niet de lijst email adres aanmelden op de lijst zelf!"
+
+#: Mailman/Cgi/subscribe.py:131
+msgid "If you supply a password, you must confirm it."
+msgstr "Als je een wachtwoord opgeeft moet je deze bevestigen."
+
+#: Mailman/Cgi/subscribe.py:133
+msgid "Your passwords did not match."
+msgstr "Je wachtwoorden komen niet overeen."
+
+#: Mailman/Cgi/subscribe.py:167
+msgid ""
+"Your subscription request has been received, and will soon be acted upon.\n"
+"Depending on the configuration of this mailing list, your subscription "
+"request\n"
+"may have to be first confirmed by you via email, or approved by the list\n"
+"moderator. If confirmation is required, you will soon get a confirmation\n"
+"email which contains further instructions."
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:181
+msgid ""
+"The email address you supplied is banned from this\n"
+" mailing list. If you think this restriction is erroneous, please\n"
+" contact the list owners at %(listowner)s."
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:185
+msgid ""
+"The email address you supplied is not valid. (E.g. it must contain an\n"
+"`@'.)"
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:189
+msgid ""
+"Your subscription is not allowed because the email address you gave is\n"
+"insecure."
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:197
+msgid ""
+"Confirmation from your email address is required, to prevent anyone from\n"
+"subscribing you without permission. Instructions are being sent to you at\n"
+"%(email)s. Please note your subscription will not start until you confirm\n"
+"your subscription."
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:209
+msgid ""
+"Your subscription request was deferred because %(x)s. Your request has "
+"been\n"
+"forwarded to the list moderator. You will receive email informing you of "
+"the\n"
+"moderator's decision when they get to your request."
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:216 Mailman/Commands/cmd_confirm.py:60
+msgid "You are already subscribed."
+msgstr "Je bent al aangemeld."
+
+#: Mailman/Cgi/subscribe.py:230
+msgid "Mailman privacy alert"
+msgstr "Mailman privé waarschuwing"
+
+#: Mailman/Cgi/subscribe.py:231
+msgid ""
+"An attempt was made to subscribe your address to the mailing list\n"
+"%(listaddr)s. You are already subscribed to this mailing list.\n"
+"\n"
+"Note that the list membership is not public, so it is possible that a bad\n"
+"person was trying to probe the list for its membership. This would be a\n"
+"privacy violation if we let them do this, but we didn't.\n"
+"\n"
+"If you submitted the subscription request and forgot that you were already\n"
+"subscribed to the list, then you can ignore this message. If you suspect "
+"that\n"
+"an attempt is being made to covertly discover whether you are a member of "
+"this\n"
+"list, and you are worried about your privacy, then feel free to send a "
+"message\n"
+"to the list administrator at %(listowner)s.\n"
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:250
+msgid "This list does not support digest delivery."
+msgstr "Deze lijst heeft geen digest mode ingesteld."
+
+#: Mailman/Cgi/subscribe.py:252
+msgid "This list only supports digest delivery."
+msgstr "Deze lijst heeft alleen digest mode ingesteld."
+
+#: Mailman/Cgi/subscribe.py:259
+msgid "You have been successfully subscribed to the %(realname)s mailing list."
+msgstr "Je bent met success aangemeld bij de %(realname)s mailing lijst."
+
+#: Mailman/Commands/cmd_confirm.py:17
+msgid ""
+"\n"
+" confirm <confirmation-string>\n"
+" Confirm an action. The confirmation-string is required and should "
+"be\n"
+" supplied with in mailback confirmation notice.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_confirm.py:40 Mailman/Commands/cmd_lists.py:40
+#: Mailman/Commands/cmd_set.py:133 Mailman/Commands/cmd_subscribe.py:69
+#: Mailman/Commands/cmd_unsubscribe.py:52 Mailman/Commands/cmd_who.py:65
+msgid "Usage:"
+msgstr "Hoe te gebruiken:"
+
+#: Mailman/Commands/cmd_confirm.py:49
+msgid ""
+"Invalid confirmation string. Note that confirmation strings expire\n"
+"approximately %(days)s days after the initial subscription request. If "
+"your\n"
+"confirmation has expired, please try to re-submit your original request or\n"
+"message."
+msgstr ""
+
+#: Mailman/Commands/cmd_confirm.py:55
+msgid "Your request has been forwarded to the list moderator for approval."
+msgstr ""
+
+#: Mailman/Commands/cmd_confirm.py:63
+msgid ""
+"You are not current a member. Have you already unsubscribed or changed\n"
+"your email address?"
+msgstr ""
+
+#: Mailman/Commands/cmd_confirm.py:73
+msgid "Confirmation succeeded"
+msgstr ""
+
+#: Mailman/Commands/cmd_echo.py:17
+msgid ""
+"\n"
+" echo [args]\n"
+" Simply echo an acknowledgement. Args are echoed back unchanged.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_end.py:17
+msgid ""
+"\n"
+" end\n"
+" Stop processing commands. Use this if your mail program "
+"automatically\n"
+" adds a signature file.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_help.py:17
+msgid ""
+"\n"
+" help\n"
+" Print this help message.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_help.py:47
+msgid "You can access your personal options via the following url:"
+msgstr ""
+
+#: Mailman/Commands/cmd_info.py:17
+msgid ""
+"\n"
+" info\n"
+" Get information about this mailing list.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_info.py:39 Mailman/Commands/cmd_lists.py:62
+msgid "n/a"
+msgstr "n/b"
+
+#: Mailman/Commands/cmd_info.py:44
+msgid "List name: %(listname)s"
+msgstr "Lijst naam: %(listname)s"
+
+#: Mailman/Commands/cmd_info.py:45
+msgid "Description: %(description)s"
+msgstr "Omschrijving: %(description)s"
+
+#: Mailman/Commands/cmd_info.py:46
+msgid "Postings to: %(postaddr)s"
+msgstr "Berichten richten aan: %(postaddr)s"
+
+#: Mailman/Commands/cmd_info.py:47
+msgid "List Helpbot: %(requestaddr)s"
+msgstr "Lijst Helpbot: %(requestaddr)s"
+
+#: Mailman/Commands/cmd_info.py:48
+msgid "List Owners: %(owneraddr)s"
+msgstr "Lijst beheerders: %(owneraddr)s"
+
+#: Mailman/Commands/cmd_info.py:49
+msgid "More information: %(listurl)s"
+msgstr "Meer informatie: %(listurl)s"
+
+#: Mailman/Commands/cmd_join.py:17
+msgid "The `join' command is synonymous with `subscribe'.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_leave.py:17
+msgid "The `leave' command is synonymous with `unsubscribe'.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_lists.py:17
+msgid ""
+"\n"
+" lists\n"
+" See a list of the public mailing lists on this GNU Mailman server.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_lists.py:44
+msgid "Public mailing lists at %(hostname)s:"
+msgstr ""
+
+#: Mailman/Commands/cmd_lists.py:66
+msgid "%(i)3d. List name: %(realname)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_lists.py:67
+msgid " Description: %(description)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_lists.py:68
+msgid " Requests to: %(requestaddr)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_password.py:17
+msgid ""
+"\n"
+" password [<oldpassword> <newpassword>] [address=<address>]\n"
+" Retrieve or change your password. With no arguments, this returns\n"
+" your current password. With arguments <oldpassword> and "
+"<newpassword>\n"
+" you can change your password.\n"
+"\n"
+" If you're posting from an address other than your membership "
+"address,\n"
+" specify your membership address with `address=<address>' (no "
+"brackets\n"
+" around the email address, and no quotes!). Note that in this case "
+"the\n"
+" response is always sent to the subscribed address.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_password.py:51 Mailman/Commands/cmd_password.py:64
+msgid "Your password is: %(password)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_password.py:55 Mailman/Commands/cmd_password.py:68
+#: Mailman/Commands/cmd_password.py:91 Mailman/Commands/cmd_password.py:117
+#: Mailman/Commands/cmd_set.py:149 Mailman/Commands/cmd_set.py:219
+msgid "You are not a member of the %(listname)s mailing list"
+msgstr ""
+
+#: Mailman/Commands/cmd_password.py:81 Mailman/Commands/cmd_password.py:107
+msgid ""
+"You did not give the correct old password, so your password has not been\n"
+"changed. Use the no argument version of the password command to retrieve "
+"your\n"
+"current password, then try again."
+msgstr ""
+
+#: Mailman/Commands/cmd_password.py:85 Mailman/Commands/cmd_password.py:111
+msgid ""
+"\n"
+"Usage:"
+msgstr ""
+
+#: Mailman/Commands/cmd_remove.py:17
+msgid "The `remove' command is synonymous with `unsubscribe'.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:26
+msgid ""
+"\n"
+" set ...\n"
+" Set or view your membership options.\n"
+"\n"
+" Use `set help' (without the quotes) to get a more detailed list of "
+"the\n"
+" options you can change.\n"
+"\n"
+" Use `set show' (without the quotes) to view your current option\n"
+" settings.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:37
+msgid ""
+"\n"
+" set help\n"
+" Show this detailed help.\n"
+"\n"
+" set show [address=<address>]\n"
+" View your current option settings. If you're posting from an "
+"address\n"
+" other than your membership address, specify your membership address\n"
+" with `address=<address>' (no brackets around the email address, and "
+"no\n"
+" quotes!).\n"
+"\n"
+" set authenticate <password> [address=<address>]\n"
+" To set any of your options, you must include this command first, "
+"along\n"
+" with your membership password. If you're posting from an address\n"
+" other than your membership address, specify your membership address\n"
+" with `address=<address>' (no brackets around the email address, and "
+"no\n"
+" quotes!).\n"
+"\n"
+" set ack on\n"
+" set ack off\n"
+" When the `ack' option is turned on, you will receive an\n"
+" acknowledgement message whenever you post a message to the list.\n"
+"\n"
+" set digest plain\n"
+" set digest mime\n"
+" set digest off\n"
+" When the `digest' option is turned off, you will receive postings\n"
+" immediately when they are posted. Use `set digest plain' if "
+"instead\n"
+" you want to receive postings bundled into a plain text digest\n"
+" (i.e. RFC 1153 digest). Use `set digest mime' if instead you want "
+"to\n"
+" receive postings bundled together into a MIME digest.\n"
+"\n"
+" set delivery on\n"
+" set delivery off\n"
+" Turn delivery on or off. This does not unsubscribe you, but "
+"instead\n"
+" tells Mailman not to deliver messages to you for now. This is "
+"useful\n"
+" if you're going on vacation. Be sure to use `set delivery on' when\n"
+" you return from vacation!\n"
+"\n"
+" set myposts on\n"
+" set myposts off\n"
+" Use `set myposts off' to not receive copies of messages you post to\n"
+" the list. This has no effect if you're receiving digests.\n"
+"\n"
+" set hide on\n"
+" set hide off\n"
+" Use `set hide on' to conceal your email address when people request\n"
+" the membership list.\n"
+"\n"
+" set duplicates on\n"
+" set duplicates off\n"
+" Use `set duplicates off' if you want Mailman to not send you "
+"messages\n"
+" if your address is explicitly mentioned in the To: or Cc: fields of\n"
+" the message. This can reduce the number of duplicate postings you\n"
+" will receive.\n"
+"\n"
+" set reminders on\n"
+" set reminders off\n"
+" Use `set reminders off' if you want to disable the monthly password\n"
+" reminder for this mailing list.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:122
+msgid "Bad set command: %(subcmd)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:151
+msgid "Your current option settings:"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:153 Mailman/Commands/cmd_set.py:191
+#: Mailman/Commands/cmd_set.py:194 Mailman/Commands/cmd_set.py:198
+#: Mailman/Commands/cmd_set.py:202
+msgid "off"
+msgstr "Uit"
+
+#: Mailman/Commands/cmd_set.py:153 Mailman/Commands/cmd_set.py:191
+#: Mailman/Commands/cmd_set.py:194 Mailman/Commands/cmd_set.py:198
+#: Mailman/Commands/cmd_set.py:202
+msgid "on"
+msgstr "Aan"
+
+#: Mailman/Commands/cmd_set.py:154
+msgid " ack %(onoff)s"
+msgstr " Bevestigingen %(onoff)s"
+
+#: Mailman/Commands/cmd_set.py:160
+msgid " digest plain"
+msgstr " digest plat"
+
+#: Mailman/Commands/cmd_set.py:162
+msgid " digest mime"
+msgstr " digest html"
+
+#: Mailman/Commands/cmd_set.py:164
+msgid " digest off"
+msgstr " digest uit"
+
+#: Mailman/Commands/cmd_set.py:169
+msgid "delivery on"
+msgstr "bezorging aan"
+
+#: Mailman/Commands/cmd_set.py:171 Mailman/Commands/cmd_set.py:174
+#: Mailman/Commands/cmd_set.py:177 Mailman/Commands/cmd_set.py:181
+msgid "delivery off"
+msgstr "bezorging uit"
+
+#: Mailman/Commands/cmd_set.py:172
+msgid "by you"
+msgstr "door jouw"
+
+#: Mailman/Commands/cmd_set.py:175
+msgid "by the admin"
+msgstr "door de beheerder"
+
+#: Mailman/Commands/cmd_set.py:178
+msgid "due to bounces"
+msgstr "door mail bounces"
+
+#: Mailman/Commands/cmd_set.py:186
+msgid " %(status)s (%(how)s on %(date)s)"
+msgstr " %(status)s (%(how)s op %(date)s)"
+
+#: Mailman/Commands/cmd_set.py:192
+msgid " myposts %(onoff)s"
+msgstr " mijn berichten %(onoff)s"
+
+#: Mailman/Commands/cmd_set.py:195
+msgid " hide %(onoff)s"
+msgstr " ontzichtbaar %(onoff)s"
+
+#: Mailman/Commands/cmd_set.py:199
+msgid " duplicates %(onoff)s"
+msgstr " dubbele berichten %(onoff)s"
+
+#: Mailman/Commands/cmd_set.py:203
+msgid " reminders %(onoff)s"
+msgstr " herinneringen %(onoff)s"
+
+#: Mailman/Commands/cmd_set.py:224
+msgid "You did not give the correct password"
+msgstr "Je hebt niet het goede wachtwoord opgegeven"
+
+#: Mailman/Commands/cmd_set.py:236 Mailman/Commands/cmd_set.py:283
+msgid "Bad argument: %(arg)s"
+msgstr "Foute invoer: %(arg)s"
+
+#: Mailman/Commands/cmd_set.py:241 Mailman/Commands/cmd_set.py:261
+msgid "Not authenticated"
+msgstr "Niet toegelaten"
+
+#: Mailman/Commands/cmd_set.py:254
+msgid "ack option set"
+msgstr "bevestigings optie instelling"
+
+#: Mailman/Commands/cmd_set.py:286
+msgid "digest option set"
+msgstr "digest optie instelling"
+
+#: Mailman/Commands/cmd_set.py:298
+msgid "delivery option set"
+msgstr "bezorging optie instelling"
+
+#: Mailman/Commands/cmd_set.py:310
+msgid "myposts option set"
+msgstr "mijn berichten optie instelling"
+
+#: Mailman/Commands/cmd_set.py:321
+msgid "hide option set"
+msgstr "ontzichtbaar optie instelling"
+
+#: Mailman/Commands/cmd_set.py:333
+msgid "duplicates option set"
+msgstr "dubbele berichten optie instelling"
+
+#: Mailman/Commands/cmd_set.py:345
+msgid "reminder option set"
+msgstr "herinnering optie instelling"
+
+#: Mailman/Commands/cmd_stop.py:17
+msgid "stop is synonymous with the end command.\n"
+msgstr "stop is synoniem met het end commando.\n"
+
+#: Mailman/Commands/cmd_subscribe.py:17
+msgid ""
+"\n"
+" subscribe [password] [digest|nodigest] [address=<address>]\n"
+" Subscribe to this mailing list. Your password must be given to\n"
+" unsubscribe or change your options, but if you omit the password, "
+"one\n"
+" will be generated for you. You may be periodically reminded of "
+"your\n"
+" password.\n"
+"\n"
+" The next argument may be either: `nodigest' or `digest' (no "
+"quotes!).\n"
+" If you wish to subscribe an address other than the address you sent\n"
+" this request from, you may specify `address=<address>' (no brackets\n"
+" around the email address, and no quotes!)\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:62
+msgid "Bad digest specifier: %(arg)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:84
+msgid "No valid address found to subscribe"
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:102
+msgid ""
+"The email address you supplied is banned from this mailing list.\n"
+"If you think this restriction is erroneous, please contact the list\n"
+"owners at %(listowner)s."
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:108
+msgid ""
+"Mailman won't accept the given email address as a valid address.\n"
+"(E.g. it must have an @ in it.)"
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:113
+msgid ""
+"Your subscription is not allowed because\n"
+"the email address you gave is insecure."
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:118
+msgid "You are already subscribed!"
+msgstr "je bent al aangemeld!"
+
+#: Mailman/Commands/cmd_subscribe.py:122
+msgid "No one can subscribe to the digest of this list!"
+msgstr "Niemand kan zich aanmelden voor de digest van deze lijst!"
+
+#: Mailman/Commands/cmd_subscribe.py:125
+msgid "This list only supports digest subscriptions!"
+msgstr "Op deze lijst kun je je alleen aanleden met digest berichten!"
+
+#: Mailman/Commands/cmd_subscribe.py:131
+msgid ""
+"Your subscription request has been forwarded to the list administrator\n"
+"at %(listowner)s for review."
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:136
+msgid "Subscription request succeeded."
+msgstr "Aanmeldings verzoek voltooid."
+
+#: Mailman/Commands/cmd_unsubscribe.py:17
+msgid ""
+"\n"
+" unsubscribe [password] [address=<address>]\n"
+" Unsubscribe from the mailing list. If given, your password must "
+"match\n"
+" your current password. If omitted, a confirmation email will be "
+"sent\n"
+" to the unsubscribing address. If you wish to unsubscribe an address\n"
+" other than the address you sent this request from, you may specify\n"
+" `address=<address>' (no brackets around the email address, and no\n"
+" quotes!)\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_unsubscribe.py:62
+msgid "%(address)s is not a member of the %(listname)s mailing list"
+msgstr ""
+
+#: Mailman/Commands/cmd_unsubscribe.py:69
+msgid ""
+"Your unsubscription request has been forwarded to the list administrator "
+"for\n"
+"approval."
+msgstr ""
+
+#: Mailman/Commands/cmd_unsubscribe.py:84
+msgid "You gave the wrong password"
+msgstr ""
+
+#: Mailman/Commands/cmd_unsubscribe.py:87
+msgid "Unsubscription request succeeded."
+msgstr ""
+
+#: Mailman/Commands/cmd_who.py:29
+msgid ""
+"\n"
+" who\n"
+" See everyone who is on this mailing list.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_who.py:34
+msgid ""
+"\n"
+" who password [address=<address>]\n"
+" See everyone who is on this mailing list. The roster is limited to\n"
+" list members only, and you must supply your membership password to\n"
+" retrieve it. If you're posting from an address other than your\n"
+" membership address, specify your membership address with\n"
+" `address=<address>' (no brackets around the email address, and no\n"
+" quotes!)\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_who.py:44
+msgid ""
+"\n"
+" who password\n"
+" See everyone who is on this mailing list. The roster is limited to\n"
+" list administrators and moderators only; you must supply the list\n"
+" admin or moderator password to retrieve the roster.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_who.py:110
+msgid "You are not allowed to retrieve the list membership."
+msgstr ""
+
+#: Mailman/Commands/cmd_who.py:116
+msgid "This list has no members."
+msgstr ""
+
+#: Mailman/Commands/cmd_who.py:129
+msgid "Non-digest (regular) members:"
+msgstr ""
+
+#: Mailman/Commands/cmd_who.py:132
+msgid "Digest members:"
+msgstr "Digest leden"
+
+#: Mailman/Defaults.py:1204
+msgid "Traditional Chinese"
+msgstr "Traditioneel Chinees"
+
+#: Mailman/Defaults.py:1205
+msgid "Czech"
+msgstr "Tsjechisch"
+
+#: Mailman/Defaults.py:1206
+msgid "German"
+msgstr "Duits"
+
+#: Mailman/Defaults.py:1207
+msgid "English (USA)"
+msgstr "Engels (USA)"
+
+#: Mailman/Defaults.py:1208
+msgid "Spanish (Spain)"
+msgstr "Spaans (spanje)"
+
+#: Mailman/Defaults.py:1209
+msgid "Estonian"
+msgstr "Estlands"
+
+#: Mailman/Defaults.py:1210
+msgid "Finnish"
+msgstr "Fins"
+
+#: Mailman/Defaults.py:1211
+msgid "French"
+msgstr "Frans"
+
+#: Mailman/Defaults.py:1212
+msgid "Simplified Chinese"
+msgstr "Simpel Chinees"
+
+#: Mailman/Defaults.py:1213
+msgid "Hungarian"
+msgstr "Hongaars"
+
+#: Mailman/Defaults.py:1214
+msgid "Italian"
+msgstr "Italiaans"
+
+#: Mailman/Defaults.py:1215
+msgid "Japanese"
+msgstr "Japans"
+
+#: Mailman/Defaults.py:1216
+msgid "Korean"
+msgstr "Koreaans"
+
+#: Mailman/Defaults.py:1217
+msgid "Lithuanian"
+msgstr ""
+
+#: Mailman/Defaults.py:1218
+msgid "Dutch"
+msgstr "Nederlands"
+
+#: Mailman/Defaults.py:1219
+msgid "Norwegian"
+msgstr "Noors"
+
+#: Mailman/Defaults.py:1220
+msgid "Portuguese (Brazil)"
+msgstr "Portugees (braziliaans)"
+
+#: Mailman/Defaults.py:1221
+msgid "Russian"
+msgstr "Russies"
+
+#: Mailman/Defaults.py:1222
+msgid "Swedish"
+msgstr "Zweeds"
+
+#: Mailman/Deliverer.py:43
+msgid ""
+"Note: Since this is a list of mailing lists, administrative\n"
+"notices like the password reminder will be sent to\n"
+"your membership administrative address, %(addr)s."
+msgstr ""
+
+#: Mailman/Deliverer.py:62
+msgid " (Digest mode)"
+msgstr ""
+
+#: Mailman/Deliverer.py:68
+msgid "Welcome to the \"%(realname)s\" mailing list%(digmode)s"
+msgstr ""
+
+#: Mailman/Deliverer.py:77
+msgid "You have been unsubscribed from the %(realname)s mailing list"
+msgstr ""
+
+#: Mailman/Deliverer.py:104
+msgid "%(listfullname)s mailing list reminder"
+msgstr ""
+
+#: Mailman/Errors.py:114
+msgid "For some unknown reason"
+msgstr "Voor onbekende redenen"
+
+#: Mailman/Errors.py:120 Mailman/Errors.py:143
+msgid "Your message was rejected"
+msgstr "Je bericht is niet toegelaten"
+
+#: Mailman/Gui/Archive.py:25
+msgid "Archiving Options"
+msgstr "Archief opties"
+
+#: Mailman/Gui/Archive.py:31
+msgid "List traffic archival policies."
+msgstr ""
+
+#: Mailman/Gui/Archive.py:34
+msgid "Archive messages?"
+msgstr "Archiveer berichten?"
+
+#: Mailman/Gui/Archive.py:36
+msgid "private"
+msgstr "privé"
+
+#: Mailman/Gui/Archive.py:36
+msgid "public"
+msgstr "publiek"
+
+#: Mailman/Gui/Archive.py:37
+msgid "Is archive file source for public or private archival?"
+msgstr "Is het achrief voor het publiek of privé?"
+
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Monthly"
+msgstr "Maandelijks"
+
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Quarterly"
+msgstr "Kwartaal"
+
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Yearly"
+msgstr "Jaarlijks"
+
+#: Mailman/Gui/Archive.py:41 Mailman/Gui/Digest.py:79
+msgid "Daily"
+msgstr "Dagelijks"
+
+#: Mailman/Gui/Archive.py:41 Mailman/Gui/Digest.py:79
+msgid "Weekly"
+msgstr "Wekelijks"
+
+#: Mailman/Gui/Archive.py:43
+msgid "How often should a new archive volume be started?"
+msgstr "Hoe vaak moet een nieuw achief gemaakt worden?"
+
+#: Mailman/Gui/Autoresponse.py:31
+msgid "Auto-responder"
+msgstr "Automatische beantwoorder"
+
+#: Mailman/Gui/Autoresponse.py:39
+msgid ""
+"Auto-responder characteristics.<p>\n"
+"\n"
+"In the text fields below, string interpolation is performed with\n"
+"the following key/value substitutions:\n"
+"<p><ul>\n"
+" <li><b>listname</b> - <em>gets the name of the mailing list</em>\n"
+" <li><b>listurl</b> - <em>gets the list's listinfo URL</em>\n"
+" <li><b>requestemail</b> - <em>gets the list's -request address</em>\n"
+" <li><b>owneremail</b> - <em>gets the list's -owner address</em>\n"
+"</ul>\n"
+"\n"
+"<p>For each text field, you can either enter the text directly into the "
+"text\n"
+"box, or you can specify a file on your local system to upload as the text."
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:55
+msgid ""
+"Should Mailman send an auto-response to mailing list\n"
+" posters?"
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:60
+msgid "Auto-response text to send to mailing list posters."
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:63
+msgid ""
+"Should Mailman send an auto-response to emails sent to the\n"
+" -owner address?"
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:68
+msgid "Auto-response text to send to -owner emails."
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:71
+msgid "Yes, w/discard"
+msgstr "Ja, met negeren"
+
+#: Mailman/Gui/Autoresponse.py:71
+msgid "Yes, w/forward"
+msgstr "Ja, met doorsturen"
+
+#: Mailman/Gui/Autoresponse.py:72
+msgid ""
+"Should Mailman send an auto-response to emails sent to the\n"
+" -request address? If you choose yes, decide whether you want\n"
+" Mailman to discard the original email, or forward it on to the\n"
+" system as a normal mail command."
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:79
+msgid "Auto-response text to send to -request emails."
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:82
+msgid ""
+"Number of days between auto-responses to either the mailing\n"
+" list or -request/-owner address from the same poster. Set to\n"
+" zero (or negative) for no grace period (i.e. auto-respond to\n"
+" every message)."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:26
+msgid "Bounce processing"
+msgstr "Bounce berwerking"
+
+#: Mailman/Gui/Bounce.py:32
+msgid ""
+"These policies control the automatic bounce processing system\n"
+" in Mailman. Here's an overview of how it works.\n"
+"\n"
+" <p>When a bounce is received, Mailman tries to extract two "
+"pieces\n"
+" of information from the message: the address of the member the\n"
+" message was intended for, and the severity of the problem "
+"causing\n"
+" the bounce. The severity can be either <em>hard</em> or\n"
+" <em>soft</em> meaning either a fatal error occurred, or a\n"
+" transient error occurred. When in doubt, a hard severity is "
+"used.\n"
+"\n"
+" <p>If no member address can be extracted from the bounce, then "
+"the\n"
+" bounce is usually discarded. Otherwise, each member is assigned "
+"a\n"
+" <em>bounce score</em> and every time we encounter a bounce from\n"
+" this member we increment the score. Hard bounces increment by "
+"1\n"
+" while soft bounces increment by 0.5. We only increment the "
+"bounce\n"
+" score once per day, so even if we receive ten hard bounces from "
+"a\n"
+" member per day, their score will increase by only 1 for that "
+"day.\n"
+"\n"
+" <p>When a member's bounce score is greater than the\n"
+" <a href=\"?VARHELP=bounce/bounce_score_threshold\">bounce score\n"
+" threshold</a>, the subscription is disabled. Once disabled, "
+"the\n"
+" member will not receive any postings from the list until their\n"
+" membership is explicitly re-enabled (either by the list\n"
+" administrator or the user). However, they will receive "
+"occasional\n"
+" reminders that their membership has been disabled, and these\n"
+" reminders will include information about how to re-enable their\n"
+" membership.\n"
+"\n"
+" <p>You can control both the\n"
+" <a href=\"?VARHELP=bounce/bounce_you_are_disabled_warnings"
+"\">number\n"
+" of reminders</a> the member will receive and the\n"
+" <a href=\"?VARHELP=bounce/"
+"bounce_you_are_disabled_warnings_interval\"\n"
+" >frequency</a> with which these reminders are sent.\n"
+"\n"
+" <p>There is one other important configuration variable; after a\n"
+" certain period of time -- during which no bounces from the "
+"member\n"
+" are received -- the bounce information is\n"
+" <a href=\"?VARHELP=bounce/bounce_info_stale_after\">considered\n"
+" stale</a> and discarded. Thus by adjusting this value, and the\n"
+" score threshold, you can control how quickly bouncing members "
+"are\n"
+" disabled. You should tune both of these to the frequency and\n"
+" traffic volume of your list."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:75
+msgid "Bounce detection sensitivity"
+msgstr "Bounce detectie gevoeligheid"
+
+#: Mailman/Gui/Bounce.py:78
+msgid "Should Mailman perform automatic bounce processing?"
+msgstr "Automatisch bouncende berichten verwerken?"
+
+#: Mailman/Gui/Bounce.py:79
+msgid ""
+"By setting this value to <em>No</em>, you disable all\n"
+" automatic bounce processing for this list, however bounce\n"
+" messages will still be discarded so that the list "
+"administrator\n"
+" isn't inundated with them."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:85
+msgid ""
+"The maximum member bounce score before the member's\n"
+" subscription is disabled. This value can be a floating point\n"
+" number."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:90
+msgid ""
+"The number of days after which a member's bounce information\n"
+" is discarded, if no new bounces have been received in the\n"
+" interim. This value must be an integer."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:95
+msgid ""
+"How many <em>Your Membership Is Disabled</em> warnings a\n"
+" disabled member should get before their address is removed "
+"from\n"
+" the mailing list. Set to 0 to immediately remove an address "
+"from\n"
+" the list once their bounce score exceeds the threshold. This\n"
+" value must be an integer."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:102
+msgid ""
+"The number of days between sending the <em>Your Membership\n"
+" Is Disabled</em> warnings. This value must be an integer."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:105 Mailman/Gui/General.py:257
+msgid "Notifications"
+msgstr "Notities"
+
+#: Mailman/Gui/Bounce.py:109
+msgid ""
+"Should Mailman send you, the list owner, any bounce messages\n"
+" that failed to be detected by the bounce processor? <em>Yes</"
+"em>\n"
+" is recommended."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:112
+msgid ""
+"While Mailman's bounce detector is fairly robust, it's\n"
+" impossible to detect every bounce format in the world. You\n"
+" should keep this variable set to <em>Yes</em> for two reasons: "
+"1)\n"
+" If this really is a permanent bounce from one of your members,\n"
+" you should probably manually remove them from your list, and "
+"2)\n"
+" you might want to send the message on to the Mailman "
+"developers\n"
+" so that this new format can be added to its known set.\n"
+"\n"
+" <p>If you really can't be bothered, then set this variable to\n"
+" <em>No</em> and all non-detected bounces will be discarded\n"
+" without further processing.\n"
+"\n"
+" <p><b>Note:</b> This setting will also affect all messages "
+"sent\n"
+" to your list's -admin address. This address is deprecated and\n"
+" should never be used, but some people may still send mail to "
+"this\n"
+" address. If this happens, and this variable is set to\n"
+" <em>No</em> those messages too will get discarded. You may "
+"want\n"
+" to set up an\n"
+" <a href=\"?VARHELP=autoreply/autoresponse_admin_text"
+"\">autoresponse\n"
+" message</a> for email to the -owner and -admin address."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:135
+msgid ""
+"Should Mailman notify you, the list owner, when bounces\n"
+" cause a member's subscription to be disabled?"
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:137
+msgid ""
+"By setting this value to <em>No</em>, you turn off\n"
+" notification messages that are normally sent to the list "
+"owners\n"
+" when a member's delivery is disabled due to excessive bounces.\n"
+" An attempt to notify the member will always be made."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:144
+msgid ""
+"Should Mailman notify you, the list owner, when bounces\n"
+" cause a member to be unsubscribed?"
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:146
+msgid ""
+"By setting this value to <em>No</em>, you turn off\n"
+" notification messages that are normally sent to the list "
+"owners\n"
+" when a member is unsubscribed due to excessive bounces. An\n"
+" attempt to notify the member will always be made."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:173
+msgid ""
+"Bad value for <a href=\"?VARHELP=bounce/%(property)s\"\n"
+" >%(property)s</a>: %(val)s"
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:30
+msgid "Content&nbsp;filtering"
+msgstr "Content&nbsp;filtering"
+
+#: Mailman/Gui/ContentFilter.py:37
+msgid "Forward to List Owner"
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:39
+msgid "Preserve"
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:42
+msgid ""
+"Policies concerning the content of list traffic.\n"
+"\n"
+" <p>Content filtering works like this: when a message is\n"
+" received by the list and you have enabled content filtering, "
+"the\n"
+" individual attachments are first compared to the\n"
+" <a href=\"?VARHELP=contentfilter/filter_mime_types\">filter\n"
+" types</a>. If the attachment type matches an entry in the "
+"filter\n"
+" types, it is discarded.\n"
+"\n"
+" <p>Then, if there are <a\n"
+" href=\"?VARHELP=contentfilter/pass_mime_types\">pass types</a>\n"
+" defined, any attachment type that does <em>not</em> match a\n"
+" pass type is also discarded. If there are no pass types "
+"defined,\n"
+" this check is skipped.\n"
+"\n"
+" <p>After this initial filtering, any <tt>multipart</tt>\n"
+" attachments that are empty are removed. If the outer message "
+"is\n"
+" left empty after this filtering, then the whole message is\n"
+" discarded. Then, each <tt>multipart/alternative</tt> section "
+"will\n"
+" be replaced by just the first alternative that is non-empty "
+"after\n"
+" filtering.\n"
+"\n"
+" <p>Finally, any <tt>text/html</tt> parts that are left in the\n"
+" message may be converted to <tt>text/plain</tt> if\n"
+" <a href=\"?VARHELP=contentfilter/convert_html_to_plaintext\"\n"
+" >convert_html_to_plaintext</a> is enabled and the site is\n"
+" configured to allow these conversions."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:71
+msgid ""
+"Should Mailman filter the content of list traffic according\n"
+" to the settings below?"
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:75
+msgid ""
+"Remove message attachments that have a matching content\n"
+" type."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:78
+msgid ""
+"Use this option to remove each message attachment that\n"
+" matches one of these content types. Each line should contain "
+"a\n"
+" string naming a MIME <tt>type/subtype</tt>,\n"
+" e.g. <tt>image/gif</tt>. Leave off the subtype to remove all\n"
+" parts with a matching major content type, e.g. <tt>image</tt>.\n"
+"\n"
+" <p>Blank lines are ignored.\n"
+"\n"
+" <p>See also <a href=\"?VARHELP=contentfilter/pass_mime_types\"\n"
+" >pass_mime_types</a> for a content type whitelist."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:90
+msgid ""
+"Remove message attachments that don't have a matching\n"
+" content type. Leave this field blank to skip this filter\n"
+" test."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:94
+msgid ""
+"Use this option to remove each message attachment that does\n"
+" not have a matching content type. Requirements and formats "
+"are\n"
+" exactly like <a href=\"?VARHELP=contentfilter/filter_mime_types"
+"\"\n"
+" >filter_mime_types</a>.\n"
+"\n"
+" <p><b>Note:</b> if you add entries to this list but don't add\n"
+" <tt>multipart</tt> to this list, any messages with attachments\n"
+" will be rejected by the pass filter."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:104
+msgid ""
+"Should Mailman convert <tt>text/html</tt> parts to plain\n"
+" text? This conversion happens after MIME attachments have "
+"been\n"
+" stripped."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:110
+msgid ""
+"Action to take when a message matches the content filtering\n"
+" rules."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:113
+msgid ""
+"One of these actions is take when the message matches one of\n"
+" the content filtering rules, meaning, the top-level\n"
+" content type matches one of the <a\n"
+" href=\"?VARHELP=contentfilter/filter_mime_types\"\n"
+" >filter_mime_types</a>, or the top-level content type does\n"
+" <strong>not</strong> match one of the\n"
+" <a href=\"?VARHELP=contentfilter/pass_mime_types\"\n"
+" >pass_mime_types</a>, or if after filtering the subparts of "
+"the\n"
+" message, the message ends up empty.\n"
+"\n"
+" <p>Note this action is not taken if after filtering the "
+"message\n"
+" still contains content. In that case the message is always\n"
+" forwarded on to the list membership.\n"
+"\n"
+" <p>When messages are discarded, a log entry is written\n"
+" containing the Message-ID of the discarded message. When\n"
+" messages are rejected or forwarded to the list owner, a reason\n"
+" for the rejection is included in the bounce message to the\n"
+" original author. When messages are preserved, they are saved "
+"in\n"
+" a special queue directory on disk for the site administrator "
+"to\n"
+" view (and possibly rescue) but otherwise discarded. This last\n"
+" option is only available if enabled by the site\n"
+" administrator."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:154
+msgid "Bad MIME type ignored: %(spectype)s"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:36
+msgid "Digest options"
+msgstr "Digest opties"
+
+#: Mailman/Gui/Digest.py:44
+msgid "Batched-delivery digest characteristics."
+msgstr ""
+
+#: Mailman/Gui/Digest.py:47
+msgid "Can list members choose to receive list traffic bunched in digests?"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:51
+msgid "Digest"
+msgstr "Digest"
+
+#: Mailman/Gui/Digest.py:51
+msgid "Regular"
+msgstr "Regulier"
+
+#: Mailman/Gui/Digest.py:52
+msgid "Which delivery mode is the default for new users?"
+msgstr "Welk bezorgings methode is standaard voor nieuwe leden?"
+
+#: Mailman/Gui/Digest.py:55
+msgid "MIME"
+msgstr "HTML"
+
+#: Mailman/Gui/Digest.py:55
+msgid "Plain"
+msgstr "Platte tekst"
+
+#: Mailman/Gui/Digest.py:56
+msgid "When receiving digests, which format is default?"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:59
+msgid "How big in Kb should a digest be before it gets sent out?"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:63
+msgid ""
+"Should a digest be dispatched daily when the size threshold isn't reached?"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:67
+msgid "Header added to every digest"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:68
+msgid ""
+"Text attached (as an initial message, before the table of contents) to the "
+"top of digests. "
+msgstr ""
+
+#: Mailman/Gui/Digest.py:73
+msgid "Footer added to every digest"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:74
+msgid "Text attached (as a final message) to the bottom of digests. "
+msgstr ""
+
+#: Mailman/Gui/Digest.py:80
+msgid "How often should a new digest volume be started?"
+msgstr "Hoe vaak moet een nieuwe digest gestart worden?"
+
+#: Mailman/Gui/Digest.py:81
+msgid ""
+"When a new digest volume is started, the volume number is\n"
+" incremented and the issue number is reset to 1."
+msgstr ""
+
+#: Mailman/Gui/Digest.py:85
+msgid "Should Mailman start a new digest volume?"
+msgstr "Zal ik een nieuwe digest maken?"
+
+#: Mailman/Gui/Digest.py:86
+msgid ""
+"Setting this option instructs Mailman to start a new volume\n"
+" with the next digest sent out."
+msgstr ""
+
+#: Mailman/Gui/Digest.py:90
+msgid ""
+"Should Mailman send the next digest right now, if it is not\n"
+" empty?"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:145
+msgid ""
+"The next digest will be sent as volume\n"
+" %(volume)s, number %(number)s"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:150
+msgid "A digest has been sent."
+msgstr ""
+
+#: Mailman/Gui/Digest.py:152
+msgid "There was no digest to send."
+msgstr ""
+
+#: Mailman/Gui/GUIBase.py:149
+msgid "Invalid value for variable: %(property)s"
+msgstr ""
+
+#: Mailman/Gui/GUIBase.py:153
+msgid "Bad email address for option %(property)s: %(val)s"
+msgstr ""
+
+#: Mailman/Gui/GUIBase.py:179
+msgid ""
+"The following illegal substitution variables were\n"
+" found in the <code>%(property)s</code> string:\n"
+" <code>%(bad)s</code>\n"
+" <p>Your list may not operate properly until you correct "
+"this\n"
+" problem."
+msgstr ""
+
+#: Mailman/Gui/GUIBase.py:193
+msgid ""
+"Your <code>%(property)s</code> string appeared to\n"
+" have some correctable problems in its new value.\n"
+" The fixed value will be used instead. Please\n"
+" double check that this is what you intended.\n"
+" "
+msgstr ""
+
+#: Mailman/Gui/General.py:32
+msgid "General Options"
+msgstr "Algemene Opties"
+
+#: Mailman/Gui/General.py:46
+msgid "Conceal the member's address"
+msgstr ""
+
+#: Mailman/Gui/General.py:47
+msgid "Acknowledge the member's posting"
+msgstr ""
+
+#: Mailman/Gui/General.py:48
+msgid "Do not send a copy of a member's own post"
+msgstr ""
+
+#: Mailman/Gui/General.py:50
+msgid "Filter out duplicate messages to list members (if possible)"
+msgstr ""
+
+#: Mailman/Gui/General.py:57
+msgid ""
+"Fundamental list characteristics, including descriptive\n"
+" info and basic behaviors."
+msgstr ""
+"Algemene mailing lijst instellingen.\n"
+" Informatie en huidige instellingen weergegeven."
+
+#: Mailman/Gui/General.py:60
+msgid "General list personality"
+msgstr "Algemene lijst instellingen"
+
+#: Mailman/Gui/General.py:63
+msgid "The public name of this list (make case-changes only)."
+msgstr ""
+"De publieke naam van deze lijst\n"
+"Verander deze alleen in opdracht van de website beheerder!!."
+
+#: Mailman/Gui/General.py:64
+msgid ""
+"The capitalization of this name can be changed to make it\n"
+" presentable in polite company as a proper noun, or to make an\n"
+" acronym part all upper case, etc. However, the name will be\n"
+" advertised as the email address (e.g., in subscribe "
+"confirmation\n"
+" notices), so it should <em>not</em> be otherwise altered. "
+"(Email\n"
+" addresses are not case sensitive, but they are sensitive to\n"
+" almost everything else :-)"
+msgstr ""
+
+#: Mailman/Gui/General.py:73
+msgid ""
+"The list administrator email addresses. Multiple\n"
+" administrator addresses, each on separate line is okay."
+msgstr ""
+
+#: Mailman/Gui/General.py:76
+msgid ""
+"There are two ownership roles associated with each mailing\n"
+" list. The <em>list administrators</em> are the people who "
+"have\n"
+" ultimate control over all parameters of this mailing list. "
+"They\n"
+" are able to change any list configuration variable available\n"
+" through these administration web pages.\n"
+"\n"
+" <p>The <em>list moderators</em> have more limited permissions;\n"
+" they are not able to change any list configuration variable, "
+"but\n"
+" they are allowed to tend to pending administration requests,\n"
+" including approving or rejecting held subscription requests, "
+"and\n"
+" disposing of held postings. Of course, the <em>list\n"
+" administrators</em> can also tend to pending requests.\n"
+"\n"
+" <p>In order to split the list ownership duties into\n"
+" administrators and moderators, you must\n"
+" <a href=\"passwords\">set a separate moderator password</a>,\n"
+" and also provide the <a href=\"?VARHELP=general/moderator"
+"\">email\n"
+" addresses of the list moderators</a>. Note that the field you\n"
+" are changing here specifies the list administrators."
+msgstr ""
+
+#: Mailman/Gui/General.py:97
+msgid ""
+"The list moderator email addresses. Multiple\n"
+" moderator addresses, each on separate line is okay."
+msgstr ""
+
+#: Mailman/Gui/General.py:100
+msgid ""
+"There are two ownership roles associated with each mailing\n"
+" list. The <em>list administrators</em> are the people who "
+"have\n"
+" ultimate control over all parameters of this mailing list. "
+"They\n"
+" are able to change any list configuration variable available\n"
+" through these administration web pages.\n"
+"\n"
+" <p>The <em>list moderators</em> have more limited permissions;\n"
+" they are not able to change any list configuration variable, "
+"but\n"
+" they are allowed to tend to pending administration requests,\n"
+" including approving or rejecting held subscription requests, "
+"and\n"
+" disposing of held postings. Of course, the <em>list\n"
+" administrators</em> can also tend to pending requests.\n"
+"\n"
+" <p>In order to split the list ownership duties into\n"
+" administrators and moderators, you must\n"
+" <a href=\"passwords\">set a separate moderator password</a>,\n"
+" and also provide the email addresses of the list moderators in\n"
+" this section. Note that the field you are changing here\n"
+" specifies the list moderators."
+msgstr ""
+
+#: Mailman/Gui/General.py:121
+msgid "A terse phrase identifying this list."
+msgstr "Een korte omschrijving van deze lijst."
+
+#: Mailman/Gui/General.py:123
+msgid ""
+"This description is used when the mailing list is listed with\n"
+" other mailing lists, or in headers, and so forth. It "
+"should\n"
+" be as succinct as you can get it, while still identifying "
+"what\n"
+" the list is."
+msgstr ""
+
+#: Mailman/Gui/General.py:129
+msgid ""
+"An introductory description - a few paragraphs - about the\n"
+" list. It will be included, as html, at the top of the "
+"listinfo\n"
+" page. Carriage returns will end a paragraph - see the details\n"
+" for more info."
+msgstr ""
+
+#: Mailman/Gui/General.py:133
+msgid ""
+"The text will be treated as html <em>except</em> that\n"
+" newlines will be translated to &lt;br&gt; - so you can use "
+"links,\n"
+" preformatted text, etc, but don't put in carriage returns "
+"except\n"
+" where you mean to separate paragraphs. And review your changes "
+"-\n"
+" bad html (like some unterminated HTML constructs) can prevent\n"
+" display of the entire listinfo page."
+msgstr ""
+
+#: Mailman/Gui/General.py:141
+msgid "Prefix for subject line of list postings."
+msgstr ""
+
+#: Mailman/Gui/General.py:142
+msgid ""
+"This text will be prepended to subject lines of messages\n"
+" posted to the list, to distinguish mailing list messages in in\n"
+" mailbox summaries. Brevity is premium here, it's ok to "
+"shorten\n"
+" long mailing list names to something more concise, as long as "
+"it\n"
+" still identifies the mailing list."
+msgstr ""
+
+#: Mailman/Gui/General.py:149
+msgid ""
+"Hide the sender of a message, replacing it with the list\n"
+" address (Removes From, Sender and Reply-To fields)"
+msgstr ""
+
+#: Mailman/Gui/General.py:152
+msgid "<tt>Reply-To:</tt> header munging"
+msgstr ""
+
+#: Mailman/Gui/General.py:155
+msgid ""
+"Should any existing <tt>Reply-To:</tt> header found in the\n"
+" original message be stripped? If so, this will be done\n"
+" regardless of whether an explict <tt>Reply-To:</tt> header is\n"
+" added by Mailman or not."
+msgstr ""
+
+#: Mailman/Gui/General.py:161
+msgid "Explicit address"
+msgstr "Vast adres"
+
+#: Mailman/Gui/General.py:161
+msgid "Poster"
+msgstr "Verstuurder"
+
+#: Mailman/Gui/General.py:161
+msgid "This list"
+msgstr "Deze lijst"
+
+#: Mailman/Gui/General.py:162
+msgid ""
+"Where are replies to list messages directed?\n"
+" <tt>Poster</tt> is <em>strongly</em> recommended for most "
+"mailing\n"
+" lists."
+msgstr ""
+
+#: Mailman/Gui/General.py:167
+msgid ""
+"This option controls what Mailman does to the\n"
+" <tt>Reply-To:</tt> header in messages flowing through this\n"
+" mailing list. When set to <em>Poster</em>, no <tt>Reply-To:</"
+"tt>\n"
+" header is added by Mailman, although if one is present in the\n"
+" original message, it is not stripped. Setting this value to\n"
+" either <em>This list</em> or <em>Explicit address</em> causes\n"
+" Mailman to insert a specific <tt>Reply-To:</tt> header in all\n"
+" messages, overriding the header in the original message if\n"
+" necessary (<em>Explicit address</em> inserts the value of <a\n"
+" href=\"?VARHELP=general/reply_to_address\">reply_to_address</"
+"a>).\n"
+" \n"
+" <p>There are many reasons not to introduce or override the\n"
+" <tt>Reply-To:</tt> header. One is that some posters depend on\n"
+" their own <tt>Reply-To:</tt> settings to convey their valid\n"
+" return address. Another is that modifying <tt>Reply-To:</tt>\n"
+" makes it much more difficult to send private replies. See <a\n"
+" href=\"http://www.unicom.com/pw/reply-to-harmful.html\">`Reply-"
+"To'\n"
+" Munging Considered Harmful</a> for a general discussion of "
+"this\n"
+" issue. See <a\n"
+" href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml"
+"\">Reply-To\n"
+" Munging Considered Useful</a> for a dissenting opinion.\n"
+"\n"
+" <p>Some mailing lists have restricted posting privileges, with "
+"a\n"
+" parallel list devoted to discussions. Examples are `patches' "
+"or\n"
+" `checkin' lists, where software changes are posted by a "
+"revision\n"
+" control system, but discussion about the changes occurs on a\n"
+" developers mailing list. To support these types of mailing\n"
+" lists, select <tt>Explicit address</tt> and set the\n"
+" <tt>Reply-To:</tt> address below to point to the parallel\n"
+" list."
+msgstr ""
+
+#: Mailman/Gui/General.py:199
+msgid "Explicit <tt>Reply-To:</tt> header."
+msgstr "Vaste <tt>Reply-To:</tt> header."
+
+#: Mailman/Gui/General.py:201
+msgid ""
+"This is the address set in the <tt>Reply-To:</tt> header\n"
+" when the <a\n"
+" href=\"?VARHELP=general/reply_goes_to_list"
+"\">reply_goes_to_list</a>\n"
+" option is set to <em>Explicit address</em>.\n"
+"\n"
+" <p>There are many reasons not to introduce or override the\n"
+" <tt>Reply-To:</tt> header. One is that some posters depend on\n"
+" their own <tt>Reply-To:</tt> settings to convey their valid\n"
+" return address. Another is that modifying <tt>Reply-To:</tt>\n"
+" makes it much more difficult to send private replies. See <a\n"
+" href=\"http://www.unicom.com/pw/reply-to-harmful.html\">`Reply-"
+"To'\n"
+" Munging Considered Harmful</a> for a general discussion of "
+"this\n"
+" issue. See <a\n"
+" href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml"
+"\">Reply-To\n"
+" Munging Considered Useful</a> for a dissenting opinion.\n"
+"\n"
+" <p>Some mailing lists have restricted posting privileges, with "
+"a\n"
+" parallel list devoted to discussions. Examples are `patches' "
+"or\n"
+" `checkin' lists, where software changes are posted by a "
+"revision\n"
+" control system, but discussion about the changes occurs on a\n"
+" developers mailing list. To support these types of mailing\n"
+" lists, specify the explicit <tt>Reply-To:</tt> address here. "
+"You\n"
+" must also specify <tt>Explicit address</tt> in the\n"
+" <tt>reply_goes_to_list</tt>\n"
+" variable.\n"
+"\n"
+" <p>Note that if the original message contains a\n"
+" <tt>Reply-To:</tt> header, it will not be changed."
+msgstr ""
+
+#: Mailman/Gui/General.py:230
+msgid "Umbrella list settings"
+msgstr "Umbrella lijst instellingen"
+
+#: Mailman/Gui/General.py:233
+msgid ""
+"Send password reminders to, eg, \"-owner\" address instead of\n"
+" directly to user."
+msgstr ""
+
+#: Mailman/Gui/General.py:236
+msgid ""
+"Set this to yes when this list is intended to cascade only\n"
+" to other mailing lists. When set, meta notices like\n"
+" confirmations and password reminders will be directed to an\n"
+" address derived from the member's address - it will have the\n"
+" value of \"umbrella_member_suffix\" appended to the member's\n"
+" account name."
+msgstr ""
+
+#: Mailman/Gui/General.py:244
+msgid ""
+"Suffix for use when this list is an umbrella for other\n"
+" lists, according to setting of previous \"umbrella_list\"\n"
+" setting."
+msgstr ""
+
+#: Mailman/Gui/General.py:248
+msgid ""
+"When \"umbrella_list\" is set to indicate that this list has\n"
+" other mailing lists as members, then administrative notices "
+"like\n"
+" confirmations and password reminders need to not be sent to "
+"the\n"
+" member list addresses, but rather to the owner of those member\n"
+" lists. In that case, the value of this setting is appended to\n"
+" the member's account name for such notices. `-owner' is the\n"
+" typical choice. This setting has no effect when \"umbrella_list"
+"\"\n"
+" is \"No\"."
+msgstr ""
+
+#: Mailman/Gui/General.py:260
+msgid "Send monthly password reminders?"
+msgstr "Verstuur maandelijkse wachtwoord herinneringen?"
+
+#: Mailman/Gui/General.py:262
+msgid ""
+"Turn this on if you want password reminders to be sent once\n"
+" per month to your members. Note that members may disable "
+"their\n"
+" own individual password reminders."
+msgstr ""
+
+#: Mailman/Gui/General.py:267
+msgid ""
+"List-specific text prepended to new-subscriber welcome\n"
+" message"
+msgstr ""
+
+#: Mailman/Gui/General.py:270
+msgid ""
+"This value, if any, will be added to the front of the\n"
+" new-subscriber welcome message. The rest of the welcome "
+"message\n"
+" already describes the important addresses and URLs for the\n"
+" mailing list, so you don't need to include any of that kind of\n"
+" stuff here. This should just contain mission-specific kinds "
+"of\n"
+" things, like etiquette policies or team orientation, or that "
+"kind\n"
+" of thing.\n"
+"\n"
+" <p>Note that this text will be wrapped, according to the\n"
+" following rules:\n"
+" <ul><li>Each paragraph is filled so that no line is longer "
+"than\n"
+" 70 characters.\n"
+" <li>Any line that begins with whitespace is not filled.\n"
+" <li>A blank line separates paragraphs.\n"
+" </ul>"
+msgstr ""
+
+#: Mailman/Gui/General.py:287
+msgid "Send welcome message to newly subscribed members?"
+msgstr "Stuur een welkomst bericht naar nieuwe aanmeldingen?"
+
+#: Mailman/Gui/General.py:288
+msgid ""
+"Turn this off only if you plan on subscribing people manually\n"
+" and don't want them to know that you did so. This option is "
+"most\n"
+" useful for transparently migrating lists from some other "
+"mailing\n"
+" list manager to Mailman."
+msgstr ""
+
+#: Mailman/Gui/General.py:294
+msgid ""
+"Text sent to people leaving the list. If empty, no special\n"
+" text will be added to the unsubscribe message."
+msgstr ""
+
+#: Mailman/Gui/General.py:298
+msgid "Send goodbye message to members when they are unsubscribed?"
+msgstr ""
+
+#: Mailman/Gui/General.py:301
+msgid ""
+"Should the list moderators get immediate notice of new\n"
+" requests, as well as daily notices about collected ones?"
+msgstr ""
+
+#: Mailman/Gui/General.py:304
+msgid ""
+"List moderators (and list administrators) are sent daily\n"
+" reminders of requests pending approval, like subscriptions to "
+"a\n"
+" moderated list, or postings that are being held for one reason "
+"or\n"
+" another. Setting this option causes notices to be sent\n"
+" immediately on the arrival of new requests as well."
+msgstr ""
+
+#: Mailman/Gui/General.py:311
+msgid ""
+"Should administrator get notices of subscribes and\n"
+" unsubscribes?"
+msgstr ""
+
+#: Mailman/Gui/General.py:316
+msgid "Send mail to poster when their posting is held for approval?"
+msgstr ""
+
+#: Mailman/Gui/General.py:318
+msgid ""
+"Approval notices are sent when mail triggers certain of the\n"
+" limits <em>except</em> routine list moderation and spam "
+"filters,\n"
+" for which notices are <em>not</em> sent. This option "
+"overrides\n"
+" ever sending the notice."
+msgstr ""
+
+#: Mailman/Gui/General.py:323
+msgid "Additional settings"
+msgstr "Aanvullende instellingen"
+
+#: Mailman/Gui/General.py:326
+#, fuzzy
+msgid "Emergency moderation of all list traffic."
+msgstr "Noodsituatie! modereer al het bericht verkeer:"
+
+#: Mailman/Gui/General.py:327
+msgid ""
+"When this option is enabled, all list traffic is emergency\n"
+" moderated, i.e. held for moderation. Turn this option on when\n"
+" your list is experiencing a flamewar and you want a cooling "
+"off\n"
+" period."
+msgstr ""
+
+#: Mailman/Gui/General.py:339
+msgid ""
+"Default options for new members joining this list.<input\n"
+" type=\"hidden\" name=\"new_member_options\" value=\"ignore\">"
+msgstr ""
+
+#: Mailman/Gui/General.py:342
+msgid ""
+"When a new member is subscribed to this list, their initial\n"
+" set of options is taken from the this variable's setting."
+msgstr ""
+
+#: Mailman/Gui/General.py:346
+msgid ""
+"(Administrivia filter) Check postings and intercept ones\n"
+" that seem to be administrative requests?"
+msgstr ""
+
+#: Mailman/Gui/General.py:349
+msgid ""
+"Administrivia tests will check postings to see whether it's\n"
+" really meant as an administrative request (like subscribe,\n"
+" unsubscribe, etc), and will add it to the the administrative\n"
+" requests queue, notifying the administrator of the new "
+"request,\n"
+" in the process."
+msgstr ""
+
+#: Mailman/Gui/General.py:356
+msgid ""
+"Maximum length in kilobytes (KB) of a message body. Use 0\n"
+" for no limit."
+msgstr ""
+"Hoe groot mag een bericht zijn (in KB)?\n"
+" 0 voor geen limiet."
+
+#: Mailman/Gui/General.py:360
+msgid "Host name this list prefers for email."
+msgstr ""
+"Domein naam voor email berichten.\n"
+"(NIET WIJZIGEN ZONDER TOESTEMMING VAN WEBSITE BEHEERDER!)"
+
+#: Mailman/Gui/General.py:362
+msgid ""
+"The \"host_name\" is the preferred name for email to\n"
+" mailman-related addresses on this host, and generally should "
+"be\n"
+" the mail host's exchanger address, if any. This setting can "
+"be\n"
+" useful for selecting among alternative names of a host that "
+"has\n"
+" multiple addresses."
+msgstr ""
+
+#: Mailman/Gui/General.py:374
+msgid ""
+"Should messages from this mailing list include the\n"
+" <a href=\"http://www.faqs.org/rfcs/rfc2369.html\">RFC 2369</"
+"a>\n"
+" (i.e. <tt>List-*</tt>) headers? <em>Yes</em> is highly\n"
+" recommended."
+msgstr ""
+
+#: Mailman/Gui/General.py:379
+msgid ""
+"RFC 2369 defines a set of List-* headers that are\n"
+" normally added to every message sent to the list "
+"membership.\n"
+" These greatly aid end-users who are using standards "
+"compliant\n"
+" mail readers. They should normally always be enabled.\n"
+"\n"
+" <p>However, not all mail readers are standards compliant "
+"yet,\n"
+" and if you have a large number of members who are using\n"
+" non-compliant mail readers, they may be annoyed at these\n"
+" headers. You should first try to educate your members as "
+"to\n"
+" why these headers exist, and how to hide them in their "
+"mail\n"
+" clients. As a last resort you can disable these headers, "
+"but\n"
+" this is not recommended (and in fact, your ability to "
+"disable\n"
+" these headers may eventually go away)."
+msgstr ""
+
+#: Mailman/Gui/General.py:397
+msgid "Should postings include the <tt>List-Post:</tt> header?"
+msgstr ""
+
+#: Mailman/Gui/General.py:398
+msgid ""
+"The <tt>List-Post:</tt> header is one of the headers\n"
+" recommended by\n"
+" <a href=\"http://www.faqs.org/rfcs/rfc2369.html\">RFC 2369</"
+"a>.\n"
+" However for some <em>announce-only</em> mailing lists, only a\n"
+" very select group of people are allowed to post to the list; "
+"the\n"
+" general membership is usually not allowed to post. For lists "
+"of\n"
+" this nature, the <tt>List-Post:</tt> header is misleading.\n"
+" Select <em>No</em> to disable the inclusion of this header. "
+"(This\n"
+" does not affect the inclusion of the other <tt>List-*:</tt>\n"
+" headers.)"
+msgstr ""
+
+#: Mailman/Gui/General.py:416
+msgid ""
+"<b>real_name</b> attribute not\n"
+" changed! It must differ from the list's name by case\n"
+" only."
+msgstr ""
+
+#: Mailman/Gui/General.py:437
+msgid ""
+"You cannot add a Reply-To: to an explicit\n"
+" address if that address is blank. Resetting these values."
+msgstr ""
+
+#: Mailman/Gui/Language.py:34
+msgid "Language&nbsp;options"
+msgstr "Taal opties"
+
+#: Mailman/Gui/Language.py:66
+msgid "Natural language (internationalization) options."
+msgstr "De taal instellingen."
+
+#: Mailman/Gui/Language.py:71
+msgid "Default language for this list."
+msgstr "Hoofd taal voor deze lijst en webpagina's."
+
+#: Mailman/Gui/Language.py:72
+msgid ""
+"This is the default natural language for this mailing list.\n"
+" If <a href=\"?VARHELP=language/available_languages\">more than "
+"one\n"
+" language</a> is supported then users will be able to select "
+"their\n"
+" own preferences for when they interact with the list. All "
+"other\n"
+" interactions will be conducted in the default language. This\n"
+" applies to both web-based and email-based messages, but not to\n"
+" email posted by list members."
+msgstr ""
+
+#: Mailman/Gui/Language.py:82
+msgid "Languages supported by this list."
+msgstr "Beschikbare talen:"
+
+#: Mailman/Gui/Language.py:84
+msgid ""
+"These are all the natural languages supported by this list.\n"
+" Note that the\n"
+" <a href=\"?VARHELP=language/preferred_language\">default\n"
+" language</a> must be included."
+msgstr ""
+
+#: Mailman/Gui/Language.py:90
+msgid "Always"
+msgstr "Altijd"
+
+#: Mailman/Gui/Language.py:90
+msgid "As needed"
+msgstr "Benodigd"
+
+#: Mailman/Gui/Language.py:90
+msgid "Never"
+msgstr "Nooit"
+
+#: Mailman/Gui/Language.py:91
+msgid ""
+"Encode the\n"
+" <a href=\"?VARHELP=general/subject_prefix\">subject\n"
+" prefix</a> even when it consists of only ASCII characters?"
+msgstr ""
+
+#: Mailman/Gui/Language.py:95
+msgid ""
+"If your mailing list's default language uses a non-ASCII\n"
+" character set and the prefix contains non-ASCII characters, "
+"the\n"
+" prefix will always be encoded according to the relevant\n"
+" standards. However, if your prefix contains only ASCII\n"
+" characters, you may want to set this option to <em>Never</em> "
+"to\n"
+" disable prefix encoding. This can make the subject headers\n"
+" slightly more readable for users with mail readers that don't\n"
+" properly handle non-ASCII encodings.\n"
+"\n"
+" <p>Note however, that if your mailing list receives both "
+"encoded\n"
+" and unencoded subject headers, you might want to choose <em>As\n"
+" needed</em>. Using this setting, Mailman will not encode "
+"ASCII\n"
+" prefixes when the rest of the header contains only ASCII\n"
+" characters, but if the original header contains non-ASCII\n"
+" characters, it will encode the prefix. This avoids an "
+"ambiguity\n"
+" in the standards which could cause some mail readers to "
+"display\n"
+" extra, or missing spaces between the prefix and the original\n"
+" header."
+msgstr ""
+
+#: Mailman/Gui/Membership.py:26
+msgid "Membership&nbsp;Management"
+msgstr "Leden beheer"
+
+#: Mailman/Gui/Membership.py:30
+msgid "Membership&nbsp;List"
+msgstr "Leden lijst"
+
+#: Mailman/Gui/Membership.py:31
+msgid "Mass&nbsp;Subscription"
+msgstr "Leden aanmelden"
+
+#: Mailman/Gui/Membership.py:32
+msgid "Mass&nbsp;Removal"
+msgstr "Leden afmelden"
+
+#: Mailman/Gui/NonDigest.py:34
+msgid "Non-digest&nbsp;options"
+msgstr "Reguliere email opties"
+
+#: Mailman/Gui/NonDigest.py:42
+msgid "Policies concerning immediately delivered list traffic."
+msgstr ""
+
+#: Mailman/Gui/NonDigest.py:45
+msgid ""
+"Can subscribers choose to receive mail immediately, rather\n"
+" than in batched digests?"
+msgstr ""
+
+#: Mailman/Gui/NonDigest.py:52
+msgid "Full Personalization"
+msgstr ""
+
+#: Mailman/Gui/NonDigest.py:54
+msgid ""
+"Should Mailman personalize each non-digest delivery?\n"
+" This is often useful for announce-only lists, but <a\n"
+" href=\"?VARHELP=nondigest/personalize\">read the details</"
+"a>\n"
+" section for a discussion of important performance\n"
+" issues."
+msgstr ""
+
+#: Mailman/Gui/NonDigest.py:60
+msgid ""
+"Normally, Mailman sends the regular delivery messages to\n"
+" the mail server in batches. This is much more efficent\n"
+" because it reduces the amount of traffic between Mailman "
+"and\n"
+" the mail server.\n"
+"\n"
+" <p>However, some lists can benefit from a more "
+"personalized\n"
+" approach. In this case, Mailman crafts a new message for\n"
+" each member on the regular delivery list. Turning this\n"
+" feature on may degrade the performance of your site, so "
+"you\n"
+" need to carefully consider whether the trade-off is worth "
+"it,\n"
+" or whether there are other ways to accomplish what you "
+"want.\n"
+" You should also carefully monitor your system load to make\n"
+" sure it is acceptable.\n"
+"\n"
+" <p>Select <em>No</em> to disable personalization and send\n"
+" messages to the members in batches. Select <em>Yes</em> "
+"to\n"
+" personalize deliveries and allow additional substitution\n"
+" variables in message headers and footers (see below). In\n"
+" addition, by selecting <em>Full Personalization</em>, the\n"
+" <code>To</code> header of posted messages will be modified "
+"to\n"
+" include the member's address instead of the list's posting\n"
+" address.\n"
+"\n"
+" <p>When personalization is enabled, a few more expansion\n"
+" variables that can be included in the <a\n"
+" href=\"?VARHELP=nondigest/msg_header\">message header</a> "
+"and\n"
+" <a href=\"?VARHELP=nondigest/msg_footer\">message footer</"
+"a>.\n"
+"\n"
+" <p>These additional substitution variables will be "
+"available\n"
+" for your headers and footers, when this feature is "
+"enabled:\n"
+"\n"
+" <ul><li><b>user_address</b> - The address of the user,\n"
+" coerced to lower case.\n"
+" <li><b>user_delivered_to</b> - The case-preserved "
+"address\n"
+" that the user is subscribed with.\n"
+" <li><b>user_password</b> - The user's password.\n"
+" <li><b>user_name</b> - The user's full name.\n"
+" <li><b>user_optionsurl</b> - The url to the user's "
+"option\n"
+" page.\n"
+" </ul>\n"
+" "
+msgstr ""
+
+#: Mailman/Gui/NonDigest.py:108
+msgid "Header added to mail sent to regular list members"
+msgstr ""
+
+#: Mailman/Gui/NonDigest.py:109
+msgid ""
+"Text prepended to the top of every immediately-delivery\n"
+" message. "
+msgstr ""
+
+#: Mailman/Gui/NonDigest.py:114
+msgid "Footer added to mail sent to regular list members"
+msgstr ""
+
+#: Mailman/Gui/NonDigest.py:115
+msgid ""
+"Text appended to the bottom of every immediately-delivery\n"
+" message. "
+msgstr ""
+
+#: Mailman/Gui/Passwords.py:27
+msgid "Passwords"
+msgstr "Wachtwoorden"
+
+#: Mailman/Gui/Privacy.py:28
+msgid "Privacy options"
+msgstr "privé opties"
+
+#: Mailman/Gui/Privacy.py:32
+msgid "Subscription&nbsp;rules"
+msgstr "Anmeldings regels"
+
+#: Mailman/Gui/Privacy.py:33
+msgid "Sender&nbsp;filters"
+msgstr "Verstuurders filters"
+
+#: Mailman/Gui/Privacy.py:34
+msgid "Recipient&nbsp;filters"
+msgstr "Ontvanger filters"
+
+#: Mailman/Gui/Privacy.py:35
+msgid "Spam&nbsp;filters"
+msgstr "Spam filters"
+
+#: Mailman/Gui/Privacy.py:49 Mailman/Gui/Usenet.py:61
+msgid "None"
+msgstr "Geen"
+
+#: Mailman/Gui/Privacy.py:50 Mailman/Gui/Privacy.py:73
+msgid "Confirm"
+msgstr "Bevestig"
+
+#: Mailman/Gui/Privacy.py:51 Mailman/Gui/Privacy.py:74
+msgid "Require approval"
+msgstr "Goedkeuring benodigd"
+
+#: Mailman/Gui/Privacy.py:52 Mailman/Gui/Privacy.py:75
+msgid "Confirm and approve"
+msgstr "Goedkeuring en bevestiging"
+
+#: Mailman/Gui/Privacy.py:54 Mailman/Gui/Privacy.py:77
+msgid "What steps are required for subscription?<br>"
+msgstr "Welke stappen zijn benodigd voor een aanmelding?<br>"
+
+#: Mailman/Gui/Privacy.py:55
+msgid ""
+"None - no verification steps (<em>Not\n"
+" Recommended </em>)<br>\n"
+" Confirm (*) - email confirmation step required "
+"<br>\n"
+" Require approval - require list administrator\n"
+" Approval for subscriptions <br>\n"
+" Confirm and approve - both confirm and approve\n"
+" \n"
+" <p>(*) when someone requests a subscription,\n"
+" Mailman sends them a notice with a unique\n"
+" subscription request number that they must reply "
+"to\n"
+" in order to subscribe.<br>\n"
+"\n"
+" This prevents mischievous (or malicious) people\n"
+" from creating subscriptions for others without\n"
+" their consent."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:78
+msgid ""
+"Confirm (*) - email confirmation required <br>\n"
+" Require approval - require list administrator\n"
+" approval for subscriptions <br>\n"
+" Confirm and approve - both confirm and approve\n"
+" \n"
+" <p>(*) when someone requests a subscription,\n"
+" Mailman sends them a notice with a unique\n"
+" subscription request number that they must reply "
+"to\n"
+" in order to subscribe.<br> This prevents\n"
+" mischievous (or malicious) people from creating\n"
+" subscriptions for others without their consent."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:94
+msgid ""
+"This section allows you to configure subscription and\n"
+" membership exposure policy. You can also control whether this\n"
+" list is public or not. See also the\n"
+" <a href=\"%(admin)s/archive\">Archival Options</a> section for\n"
+" separate archive-related privacy settings."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:100
+msgid "Subscribing"
+msgstr "Aanmelding"
+
+#: Mailman/Gui/Privacy.py:102
+msgid ""
+"Advertise this list when people ask what lists are on this\n"
+" machine?"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:108
+msgid ""
+"Is the list moderator's approval required for unsubscription\n"
+" requests? (<em>No</em> is recommended)"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:111
+msgid ""
+"When members want to leave a list, they will make an\n"
+" unsubscription request, either via the web or via email.\n"
+" Normally it is best for you to allow open unsubscriptions so "
+"that\n"
+" users can easily remove themselves from mailing lists (they "
+"get\n"
+" really upset if they can't get off lists!).\n"
+"\n"
+" <p>For some lists though, you may want to impose moderator\n"
+" approval before an unsubscription request is processed. "
+"Examples\n"
+" of such lists include a corporate mailing list that all "
+"employees\n"
+" are required to be members of."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:122
+msgid "Ban list"
+msgstr "Verbod lijst"
+
+#: Mailman/Gui/Privacy.py:124
+msgid ""
+"List of addresses which are banned from membership in this\n"
+" mailing list."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:127
+msgid ""
+"Addresses in this list are banned outright from subscribing\n"
+" to this mailing list, with no further moderation required. "
+"Add\n"
+" addresses one per line; start the line with a ^ character to\n"
+" designate a regular expression match."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:132
+msgid "Membership exposure"
+msgstr "Lidmaatschap opname"
+
+#: Mailman/Gui/Privacy.py:134
+msgid "Anyone"
+msgstr "Iedereen"
+
+#: Mailman/Gui/Privacy.py:134
+msgid "List admin only"
+msgstr "Alleen de lijst beheerder"
+
+#: Mailman/Gui/Privacy.py:134
+msgid "List members"
+msgstr "Lijst leden"
+
+#: Mailman/Gui/Privacy.py:135
+msgid "Who can view subscription list?"
+msgstr "Wie kan de lijst van leden zien?"
+
+#: Mailman/Gui/Privacy.py:137
+msgid ""
+"When set, the list of subscribers is protected by member or\n"
+" admin password authentication."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:141
+msgid ""
+"Show member addresses so they're not directly recognizable\n"
+" as email addresses?"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:143
+msgid ""
+"Setting this option causes member email addresses to be\n"
+" transformed when they are presented on list web pages (both in\n"
+" text and as links), so they're not trivially recognizable as\n"
+" email addresses. The intention is to prevent the addresses\n"
+" from being snarfed up by automated web scanners for use by\n"
+" spammers."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:153
+msgid ""
+"When a message is posted to the list, a series of\n"
+" moderation steps are take to decide whether the a moderator "
+"must\n"
+" first approve the message or not. This section contains the\n"
+" controls for moderation of both member and non-member postings.\n"
+"\n"
+" <p>Member postings are held for moderation if their\n"
+" <b>moderation flag</b> is turned on. You can control whether\n"
+" member postings are moderated by default or not.\n"
+"\n"
+" <p>Non-member postings can be automatically\n"
+" <a href=\"?VARHELP=privacy/sender/accept_these_nonmembers\"\n"
+" >accepted</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/hold_these_nonmembers\">held "
+"for\n"
+" moderation</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/reject_these_nonmembers\"\n"
+" >rejected</a> (bounced), or\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >discarded</a>,\n"
+" either individually or as a group. Any\n"
+" posting from a non-member who is not explicitly accepted,\n"
+" rejected, or discarded, will have their posting filtered by the\n"
+" <a href=\"?VARHELP=privacy/sender/generic_nonmember_action"
+"\">general\n"
+" non-member rules</a>.\n"
+"\n"
+" <p>In the text boxes below, add one address per line; start the\n"
+" line with a ^ character to designate a <a href=\n"
+" \"http://www.python.org/doc/current/lib/module-re.html\"\n"
+" >Python regular expression</a>. When entering backslashes, do "
+"so\n"
+" as if you were using Python raw strings (i.e. you generally "
+"just\n"
+" use a single backslash).\n"
+"\n"
+" <p>Note that non-regexp matches are always done first."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:186
+msgid "Member filters"
+msgstr "Leden filters"
+
+#: Mailman/Gui/Privacy.py:189
+msgid "By default, should new list member postings be moderated?"
+msgstr "Moeten de berichten van nieuwe leden gemodereerd worden?"
+
+#: Mailman/Gui/Privacy.py:191
+msgid ""
+"Each list member has a <em>moderation flag</em> which says\n"
+" whether messages from the list member can be posted directly "
+"to\n"
+" the list, or must first be approved by the list moderator. "
+"When\n"
+" the moderation flag is turned on, list member postings must be\n"
+" approved first. You, the list administrator can decide whether "
+"a\n"
+" specific individual's postings will be moderated or not.\n"
+"\n"
+" <p>When a new member is subscribed, their initial moderation "
+"flag\n"
+" takes its value from this option. Turn this option off to "
+"accept\n"
+" member postings by default. Turn this option on to, by "
+"default,\n"
+" moderate member postings first. You can always manually set "
+"an\n"
+" individual member's moderation bit by using the\n"
+" <a href=\"%(adminurl)s/members\">membership management\n"
+" screens</a>."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:207 Mailman/Gui/Privacy.py:281
+msgid "Hold"
+msgstr "Vasthouden"
+
+#: Mailman/Gui/Privacy.py:208
+msgid ""
+"Action to take when a moderated member posts to the\n"
+" list."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:210
+msgid ""
+"<ul><li><b>Hold</b> -- this holds the message for approval\n"
+" by the list moderators.\n"
+"\n"
+" <p><li><b>Reject</b> -- this automatically rejects the message "
+"by\n"
+" sending a bounce notice to the post's author. The text of the\n"
+" bounce notice can be <a\n"
+" href=\"?VARHELP=privacy/sender/member_moderation_notice\"\n"
+" >configured by you</a>.\n"
+"\n"
+" <p><li><b>Discard</b> -- this simply discards the message, "
+"with\n"
+" no notice sent to the post's author.\n"
+" </ul>"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:224
+msgid ""
+"Text to include in any\n"
+" <a href=\"?VARHELP/privacy/sender/member_moderation_action\"\n"
+" >rejection notice</a> to\n"
+" be sent to moderated members who post to this list."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:229
+msgid "Non-member filters"
+msgstr "Geen leden filters"
+
+#: Mailman/Gui/Privacy.py:232
+msgid ""
+"List of non-member addresses whose postings should be\n"
+" automatically accepted."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:235
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" accepted with no further moderation applied. Add member\n"
+" addresses one per line; start the line with a ^ character to\n"
+" designate a regular expression match."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:241
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" immediately held for moderation."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:244
+msgid ""
+"Postings from any of these non-members will be immediately\n"
+" and automatically held for moderation by the list moderators.\n"
+" The sender will receive a notification message which will "
+"allow\n"
+" them to cancel their held message. Add member addresses one "
+"per\n"
+" line; start the line with a ^ character to designate a regular\n"
+" expression match."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:252
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" automatically rejected."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:255
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" rejected. In other words, their messages will be bounced back "
+"to\n"
+" the sender with a notification of automatic rejection. This\n"
+" option is not appropriate for known spam senders; their "
+"messages\n"
+" should be\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >automatically discarded</a>.\n"
+"\n"
+" <p>Add member addresses one per line; start the line with a ^\n"
+" character to designate a regular expression match."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:267
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" automatically discarded."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:270
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" discarded. That is, the message will be thrown away with no\n"
+" further processing or notification. The sender will not "
+"receive\n"
+" a notification or a bounce, however the list moderators can\n"
+" optionally <a href=\"?VARHELP=privacy/sender/"
+"forward_auto_discards\"\n"
+" >receive copies of auto-discarded messages.</a>.\n"
+"\n"
+" <p>Add member addresses one per line; start the line with a ^\n"
+" character to designate a regular expression match."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:282
+msgid ""
+"Action to take for postings from non-members for which no\n"
+" explicit action is defined."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:285
+msgid ""
+"When a post from a non-member is received, the message's\n"
+" sender is matched against the list of explicitly\n"
+" <a href=\"?VARHELP=privacy/sender/accept_these_nonmembers\"\n"
+" >accepted</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/hold_these_nonmembers\">held</"
+"a>,\n"
+" <a href=\"?VARHELP=privacy/sender/reject_these_nonmembers\"\n"
+" >rejected</a> (bounced), and\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >discarded</a> addresses. If no match is found, then this "
+"action\n"
+" is taken."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:297
+msgid ""
+"Should messages from non-members, which are automatically\n"
+" discarded, be forwarded to the list moderator?"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:303
+msgid ""
+"This section allows you to configure various filters based on\n"
+" the recipient of the message."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:306
+#, fuzzy
+msgid "Recipient filters"
+msgstr "Leden filters"
+
+#: Mailman/Gui/Privacy.py:310
+msgid ""
+"Must posts have list named in destination (to, cc) field\n"
+" (or be among the acceptable alias names, specified below)?"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:313
+msgid ""
+"Many (in fact, most) spams do not explicitly name their\n"
+" myriad destinations in the explicit destination addresses - in\n"
+" fact often the To: field has a totally bogus address for\n"
+" obfuscation. The constraint applies only to the stuff in the\n"
+" address before the '@' sign, but still catches all such spams.\n"
+"\n"
+" <p>The cost is that the list will not accept unhindered any\n"
+" postings relayed from other addresses, unless\n"
+"\n"
+" <ol>\n"
+" <li>The relaying address has the same name, or\n"
+"\n"
+" <li>The relaying address name is included on the options "
+"that\n"
+" specifies acceptable aliases for the list.\n"
+"\n"
+" </ol>"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:331
+msgid ""
+"Alias names (regexps) which qualify as explicit to or cc\n"
+" destination names for this list."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:334
+msgid ""
+"Alternate addresses that are acceptable when\n"
+" `require_explicit_destination' is enabled. This option takes "
+"a\n"
+" list of regular expressions, one per line, which is matched\n"
+" against every recipient address in the message. The matching "
+"is\n"
+" performed with Python's re.match() function, meaning they are\n"
+" anchored to the start of the string.\n"
+" \n"
+" <p>For backwards compatibility with Mailman 1.1, if the regexp\n"
+" does not contain an `@', then the pattern is matched against "
+"just\n"
+" the local part of the recipient address. If that match fails, "
+"or\n"
+" if the pattern does contain an `@', then the pattern is "
+"matched\n"
+" against the entire recipient address.\n"
+" \n"
+" <p>Matching against the local part is deprecated; in a future\n"
+" release, the pattern will always be matched against the entire\n"
+" recipient address."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:352
+msgid "Ceiling on acceptable number of recipients for a posting."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:354
+msgid ""
+"If a posting has this number, or more, of recipients, it is\n"
+" held for admin approval. Use 0 for no ceiling."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:359
+msgid ""
+"This section allows you to configure various anti-spam\n"
+" filters posting filters, which can help reduce the amount of "
+"spam\n"
+" your list members end up receiving.\n"
+" "
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:364
+msgid "Anti-Spam filters"
+msgstr "Anti-Spam filters"
+
+#: Mailman/Gui/Privacy.py:367
+msgid "Hold posts with header value matching a specified regexp."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:368
+msgid ""
+"Use this option to prohibit posts according to specific\n"
+" header values. The target value is a regular-expression for\n"
+" matching against the specified header. The match is done\n"
+" disregarding letter case. Lines beginning with '#' are "
+"ignored\n"
+" as comments.\n"
+"\n"
+" <p>For example:<pre>to: .*@public.com </pre> says to hold all\n"
+" postings with a <em>To:</em> mail header containing '@public."
+"com'\n"
+" anywhere among the addresses.\n"
+"\n"
+" <p>Note that leading whitespace is trimmed from the regexp. "
+"This\n"
+" can be circumvented in a number of ways, e.g. by escaping or\n"
+" bracketing it."
+msgstr ""
+
+#: Mailman/Gui/Topics.py:28
+msgid "Topics"
+msgstr "Onderwerpen"
+
+#: Mailman/Gui/Topics.py:36
+msgid "List topic keywords"
+msgstr "Lijst van onderwerp sleutelwoorden"
+
+#: Mailman/Gui/Topics.py:38
+msgid "Disabled"
+msgstr "Uit"
+
+#: Mailman/Gui/Topics.py:38
+msgid "Enabled"
+msgstr "Aan"
+
+#: Mailman/Gui/Topics.py:39
+msgid "Should the topic filter be enabled or disabled?"
+msgstr ""
+
+#: Mailman/Gui/Topics.py:41
+msgid ""
+"The topic filter categorizes each incoming email message\n"
+" according to <a\n"
+" href=\"http://www.python.org/doc/current/lib/module-re.html"
+"\">regular\n"
+" expression filters</a> you specify below. If the message's\n"
+" <code>Subject:</code> or <code>Keywords:</code> header contains "
+"a\n"
+" match against a topic filter, the message is logically placed\n"
+" into a topic <em>bucket</em>. Each user can then choose to "
+"only\n"
+" receive messages from the mailing list for a particular topic\n"
+" bucket (or buckets). Any message not categorized in a topic\n"
+" bucket registered with the user is not delivered to the list.\n"
+"\n"
+" <p>Note that this feature only works with regular delivery, "
+"not\n"
+" digest delivery.\n"
+"\n"
+" <p>The body of the message can also be optionally scanned for\n"
+" <code>Subject:</code> and <code>Keywords:</code> headers, as\n"
+" specified by the <a\n"
+" href=\"?VARHELP=topics/topics_bodylines_limit"
+"\">topics_bodylines_limit</a>\n"
+" configuration variable."
+msgstr ""
+
+#: Mailman/Gui/Topics.py:62
+msgid "How many body lines should the topic matcher scan?"
+msgstr ""
+
+#: Mailman/Gui/Topics.py:64
+msgid ""
+"The topic matcher will scan this many lines of the message\n"
+" body looking for topic keyword matches. Body scanning stops "
+"when\n"
+" either this many lines have been looked at, or a non-header-"
+"like\n"
+" body line is encountered. By setting this value to zero, no "
+"body\n"
+" lines will be scanned (i.e. only the <code>Keywords:</code> "
+"and\n"
+" <code>Subject:</code> headers will be scanned). By setting "
+"this\n"
+" value to a negative number, then all body lines will be "
+"scanned\n"
+" until a non-header-like line is encountered.\n"
+" "
+msgstr ""
+
+#: Mailman/Gui/Topics.py:75
+msgid "Topic keywords, one per line, to match against each message."
+msgstr ""
+
+#: Mailman/Gui/Topics.py:77
+msgid ""
+"Each topic keyword is actually a regular expression, which is\n"
+" matched against certain parts of a mail message, specifically "
+"the\n"
+" <code>Keywords:</code> and <code>Subject:</code> message "
+"headers.\n"
+" Note that the first few lines of the body of the message can "
+"also\n"
+" contain a <code>Keywords:</code> and <code>Subject:</code>\n"
+" \"header\" on which matching is also performed."
+msgstr ""
+
+#: Mailman/Gui/Topics.py:116
+msgid ""
+"Topic specifications require both a name and\n"
+" a pattern. Incomplete topics will be ignored."
+msgstr ""
+
+#: Mailman/Gui/Topics.py:124
+msgid ""
+"The topic pattern `%(pattern)s' is not a\n"
+" legal regular expression. It will be discarded."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:25
+msgid "Mail&lt;-&gt;News&nbsp;gateways"
+msgstr "EMail&lt;-&gt;Nieuws-server instellingen"
+
+#: Mailman/Gui/Usenet.py:35
+msgid "Mail-to-News and News-to-Mail gateway services."
+msgstr "EMail-naar-Nieuws en Nieuws-naar-EMail gateway services."
+
+#: Mailman/Gui/Usenet.py:37
+msgid "News server settings"
+msgstr "Nieuws server instellingen"
+
+#: Mailman/Gui/Usenet.py:40
+msgid ""
+"The Internet address of the machine your News server is\n"
+" running on."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:42
+msgid ""
+"The News server is not part of Mailman proper. You have to\n"
+" already have access to a NNTP server, and that NNTP server has "
+"to\n"
+" recognize the machine this mailing list runs on as a machine\n"
+" capable of reading and posting news."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:48
+msgid "The name of the Usenet group to gateway to and/or from."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:51
+msgid ""
+"Should new posts to the mailing list be sent to the\n"
+" newsgroup?"
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:55
+msgid ""
+"Should new posts to the newsgroup be sent to the mailing\n"
+" list?"
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:58
+msgid "Forwarding options"
+msgstr "Doorstuur opties"
+
+#: Mailman/Gui/Usenet.py:61
+msgid "Moderated"
+msgstr "Ge-modereerd"
+
+#: Mailman/Gui/Usenet.py:61
+msgid "Open list, moderated group"
+msgstr "Open lijst, gemodereerde groep"
+
+#: Mailman/Gui/Usenet.py:64
+msgid "The moderation policy of the newsgroup."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:66
+msgid ""
+"This setting determines the moderation policy of the\n"
+" newsgroup and its interaction with the moderation policy of "
+"the\n"
+" mailing list. This only applies to the newsgroup that you are\n"
+" gatewaying <em>to</em>, so if you are only gatewaying from\n"
+" Usenet, or the newsgroup you are gatewaying to is not "
+"moderated,\n"
+" set this option to <em>None</em>.\n"
+"\n"
+" <p>If the newsgroup is moderated, you can set this mailing "
+"list\n"
+" up to be the moderation address for the newsgroup. By "
+"selecting\n"
+" <em>Moderated</em>, an additional posting hold will be placed "
+"in\n"
+" the approval process. All messages posted to the mailing list\n"
+" will have to be approved before being sent on to the "
+"newsgroup,\n"
+" or to the mailing list membership.\n"
+"\n"
+" <p><em>Note that if the message has an <tt>Approved</tt> "
+"header\n"
+" with the list's administrative password in it, this hold test\n"
+" will be bypassed, allowing privileged posters to send messages\n"
+" directly to the list and the newsgroup.</em>\n"
+"\n"
+" <p>Finally, if the newsgroup is moderated, but you want to "
+"have\n"
+" an open posting policy anyway, you should select <em>Open "
+"list,\n"
+" moderated group</em>. The effect of this is to use the normal\n"
+" Mailman moderation facilities, but to add an <tt>Approved</tt>\n"
+" header to all messages that are gatewayed to Usenet."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:92
+msgid "Prefix <tt>Subject:</tt> headers on postings gated to news?"
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:93
+msgid ""
+"Mailman prefixes <tt>Subject:</tt> headers with\n"
+" <a href=\"?VARHELP=general/subject_prefix\">text you can\n"
+" customize</a> and normally, this prefix shows up in messages\n"
+" gatewayed to Usenet. You can set this option to <em>No</em> "
+"to\n"
+" disable the prefix on gated messages. Of course, if you turn "
+"off\n"
+" normal <tt>Subject:</tt> prefixes, they won't be prefixed for\n"
+" gated messages either."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:101
+msgid "Mass catch up"
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:104
+msgid "Should Mailman perform a <em>catchup</em> on the newsgroup?"
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:105
+msgid ""
+"When you tell Mailman to perform a catchup on the newsgroup,\n"
+" this means that you want to start gating messages to the "
+"mailing\n"
+" list with the next new message found. All earlier messages on\n"
+" the newsgroup will be ignored. This is as if you were reading\n"
+" the newsgroup yourself, and you marked all current messages as\n"
+" <em>read</em>. By catching up, your mailing list members will\n"
+" not see any of the earlier messages."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:119
+msgid "Mass catchup completed"
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:131
+msgid ""
+"You cannot enable gatewaying unless both the\n"
+" <a href=\"?VARHELP=gateway/nntp_host\">news server field</a> "
+"and\n"
+" the <a href=\"?VARHELP=gateway/linked_newsgroup\">linked\n"
+" newsgroup</a> fields are filled in."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:47
+msgid "%(listinfo_link)s list run by %(owner_link)s"
+msgstr "%(listinfo_link)s lijst in beheer door %(owner_link)s"
+
+#: Mailman/HTMLFormatter.py:55
+msgid "%(realname)s administrative interface"
+msgstr "%(realname)s beheerders instellingen"
+
+#: Mailman/HTMLFormatter.py:56
+msgid " (requires authorization)"
+msgstr " (autorisatie benodigd)"
+
+#: Mailman/HTMLFormatter.py:59
+msgid "Overview of all %(hostname)s mailing lists"
+msgstr "Overzicht van alle %(hostname)s mailing lijsten"
+
+#: Mailman/HTMLFormatter.py:80
+msgid "<em>(1 private member not shown)</em>"
+msgstr "<em>(1 privé lid niet getoond)</em>"
+
+#: Mailman/HTMLFormatter.py:82
+msgid "<em>(%(num_concealed)d private members not shown)</em>"
+msgstr "<em>(%(num_concealed)d privé leden niet getoond)</em>"
+
+#: Mailman/HTMLFormatter.py:137
+msgid "; it was disabled by you"
+msgstr "; het is door jou uitgezet"
+
+#: Mailman/HTMLFormatter.py:139
+msgid "; it was disabled by the list administrator"
+msgstr "; het is uitgezet door de lijst beheerder"
+
+#: Mailman/HTMLFormatter.py:143
+#, fuzzy
+msgid ""
+"; it was disabled due to excessive bounces. The\n"
+" last bounce was received on %(date)s"
+msgstr ""
+"; het is uigezet door vele mail bounces. De\n"
+" laatste bounce was ontvangen op %(date)s"
+
+#: Mailman/HTMLFormatter.py:146
+msgid "; it was disabled for unknown reasons"
+msgstr "; het is uitgezet door onbekende redenen"
+
+#: Mailman/HTMLFormatter.py:148
+#, fuzzy
+msgid "Note: your list delivery is currently disabled%(reason)s."
+msgstr "Noot: je lijst bezorgingen is momenteel uitgezet %(reason)s."
+
+#: Mailman/HTMLFormatter.py:151
+msgid "Mail delivery"
+msgstr "Mail bezorging"
+
+#: Mailman/HTMLFormatter.py:153 Mailman/HTMLFormatter.py:298
+msgid "the list administrator"
+msgstr "de lijst beheerder"
+
+#: Mailman/HTMLFormatter.py:154
+msgid ""
+"<p>%(note)s\n"
+"\n"
+" <p>You may have disabled list delivery intentionally,\n"
+" or it may have been triggered by bounces from your email\n"
+" address. In either case, to re-enable delivery, change the\n"
+" %(link)s option below. Contact %(mailto)s if you have any\n"
+" questions or need assistance."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:166
+msgid ""
+"<p>We have received some recent bounces from your\n"
+" address. Your current <em>bounce score</em> is %(score)s out of "
+"a\n"
+" maximum of %(total)s. Please double check that your subscribed\n"
+" address is correct and that there are no problems with delivery "
+"to\n"
+" this address. Your bounce score will be automatically reset if\n"
+" the problems are corrected soon."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:178
+msgid ""
+"(Note - you are subscribing to a list of mailing lists, so the %(type)s "
+"notice will be sent to the admin address for your membership, %(addr)s.)<p>"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:188
+msgid ""
+"You will be sent email requesting confirmation, to\n"
+" prevent others from gratuitously subscribing you."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:191
+msgid ""
+"This is a closed list, which means your subscription\n"
+" will be held for approval. You will be notified of the list\n"
+" moderator's decision by email."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:194 Mailman/HTMLFormatter.py:201
+msgid "also "
+msgstr "ook "
+
+#: Mailman/HTMLFormatter.py:196
+msgid ""
+"You will be sent email requesting confirmation, to\n"
+" prevent others from gratuitously subscribing you. Once\n"
+" confirmation is received, your request will be held for "
+"approval\n"
+" by the list moderator. You will be notified of the moderator's\n"
+" decision by email."
+msgstr ""
+"Er zal een email worden verzonden ter bevestiging, zodat\n"
+" niemand anders per ongeluk jouw zal aanmelden. Als\n"
+" de bevestiging is ontvangen, wordt je verzoek vastgehouden voor "
+"goedkeuring\n"
+" door de lijst eigenaar. Er wordt een email naar je gestuurd als "
+"de moderator of\n"
+" lijst beheerder als je bent toegelaten of niet."
+
+#: Mailman/HTMLFormatter.py:205
+msgid ""
+"This is %(also)sa private list, which means that the\n"
+" list of members is not available to non-members."
+msgstr ""
+"Dit is %(also)seen privé lijst, dat betekend\n"
+" dat de leden lijst niet zichtbaar is voor niet-leden."
+
+#: Mailman/HTMLFormatter.py:208
+msgid ""
+"This is %(also)sa hidden list, which means that the\n"
+" list of members is available only to the list administrator."
+msgstr ""
+"Dit is %(also)seen verborgen lijst, dat betekend\n"
+" dat de leden lijst alleen zichtbaar is voor de lijst eigenaar."
+
+#: Mailman/HTMLFormatter.py:211
+msgid ""
+"This is %(also)sa public list, which means that the\n"
+" list of members list is available to everyone."
+msgstr ""
+"Dit is %(also)seen publieke lijst, dat betekend\n"
+" dat de leden lijst ook zichtbaar is voor niet-leden."
+
+#: Mailman/HTMLFormatter.py:214
+msgid ""
+" (but we obscure the addresses so they are not\n"
+" easily recognizable by spammers)."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:219
+msgid ""
+"<p>(Note that this is an umbrella list, intended to\n"
+" have only other mailing lists as members. Among other things,\n"
+" this means that your confirmation request will be sent to the\n"
+" `%(sfx)s' account for your address.)"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:248
+msgid "<b><i>either</i></b> "
+msgstr "<b><i>of</i></b> "
+
+#: Mailman/HTMLFormatter.py:253
+msgid ""
+"To unsubscribe from %(realname)s, get a password reminder,\n"
+" or change your subscription options %(either)senter your "
+"subscription\n"
+" email address:\n"
+" <p><center> "
+msgstr ""
+"<hr>Om je af te melden van %(realname)s of om je wachtwoord toegestuurd te "
+"krijgen\n"
+" of om je opties te wijzigen %(either)s,Vul in je\n"
+" email adres:\n"
+" <p><center> "
+
+#: Mailman/HTMLFormatter.py:260
+msgid "Unsubscribe or edit options"
+msgstr "Afmelden of bewerk de opties"
+
+#: Mailman/HTMLFormatter.py:264
+msgid ""
+"<p>... <b><i>or</i></b> select your entry from\n"
+" the subscribers list (see above)."
+msgstr ""
+"<p>... <b><i>of</i></b> selecteer jouw naam\n"
+" van de leden lijst (zie boven)."
+
+#: Mailman/HTMLFormatter.py:266
+msgid ""
+" If you leave the field blank, you will be prompted for\n"
+" your email address"
+msgstr ""
+" Laat je dit veld leeg dan word er straks gevraagd naar\n"
+" je email adres"
+
+#: Mailman/HTMLFormatter.py:274
+#, fuzzy
+msgid ""
+"(<i>%(which)s is only available to the list\n"
+" members.</i>)"
+msgstr ""
+"(<i>De %(which)s is alleen beschikbaar voor\n"
+" leden van de lijst.</i>)"
+
+#: Mailman/HTMLFormatter.py:278
+#, fuzzy
+msgid ""
+"(<i>%(which)s is only available to the list\n"
+" administrator.</i>)"
+msgstr ""
+"(<i>De %(which)s is alleen beschikbaar voor\n"
+" de lijst beheerder.</i>)"
+
+#: Mailman/HTMLFormatter.py:288
+msgid "Click here for the list of "
+msgstr "Klik hier voor een lijst van "
+
+#: Mailman/HTMLFormatter.py:290
+msgid " subscribers: "
+msgstr " leden: "
+
+#: Mailman/HTMLFormatter.py:292
+msgid "Visit Subscriber list"
+msgstr "Bezoek de leden lijst"
+
+#: Mailman/HTMLFormatter.py:295
+msgid "members"
+msgstr "leden"
+
+#: Mailman/HTMLFormatter.py:296
+msgid "Address:"
+msgstr "Adres:"
+
+#: Mailman/HTMLFormatter.py:299
+msgid "Admin address:"
+msgstr "Beheerder adres:"
+
+#: Mailman/HTMLFormatter.py:302
+#, fuzzy
+msgid "The subscribers list"
+msgstr "Leden lijst"
+
+#: Mailman/HTMLFormatter.py:304
+msgid " <p>Enter your "
+msgstr "<p>Voer in je "
+
+#: Mailman/HTMLFormatter.py:306
+msgid " and password to visit the subscribers list: <p><center> "
+msgstr " en wachtwoord om de leden lijst de zien: <p><center> "
+
+#: Mailman/HTMLFormatter.py:311
+msgid "Password: "
+msgstr "Wachtwoord: "
+
+#: Mailman/HTMLFormatter.py:315
+msgid "Visit Subscriber List"
+msgstr "Bezoek de leden lijst"
+
+#: Mailman/HTMLFormatter.py:345
+msgid "Once a month, your password will be emailed to you as a reminder."
+msgstr ""
+"1 keer per maand word je wachtwoord als herinnering verstuurd in een "
+"persoonlijk email. "
+
+#: Mailman/HTMLFormatter.py:391
+#, fuzzy
+msgid "The current archive"
+msgstr "huidig archief"
+
+#: Mailman/Handlers/Acknowledge.py:59
+msgid "%(realname)s post acknowledgement"
+msgstr "%(realname)s verstuur bevestiging"
+
+#: Mailman/Handlers/CalcRecips.py:68
+msgid ""
+"Your urgent message to the %(realname)s mailing list was not authorized for\n"
+"delivery. The original message as received by Mailman is attached.\n"
+msgstr ""
+
+#: Mailman/Handlers/Emergency.py:29
+msgid "Emergency hold on all list traffic is in effect"
+msgstr "Noodsituatie voor al het bericht verkeer is in werking getreden"
+
+#: Mailman/Handlers/Emergency.py:30 Mailman/Handlers/Hold.py:58
+msgid "Your message was deemed inappropriate by the moderator."
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:53
+msgid "Sender is explicitly forbidden"
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:54
+msgid "You are forbidden from posting messages to this list."
+msgstr "Je mag geen berichten versturen naar deze lijst."
+
+#: Mailman/Handlers/Hold.py:57
+msgid "Post to moderated list"
+msgstr "Verstuurd naar een gemodereerde lijst"
+
+#: Mailman/Handlers/Hold.py:61
+msgid "Post by non-member to a members-only list"
+msgstr "Verstuurd door een gebruiker die geen lid is op een alleen leden lijst"
+
+#: Mailman/Handlers/Hold.py:62
+msgid "Non-members are not allowed to post messages to this list."
+msgstr "Niet leden mogen geen berichten sturen op deze lijst."
+
+#: Mailman/Handlers/Hold.py:65
+msgid "Posting to a restricted list by sender requires approval"
+msgstr ""
+"Versturen naar een lijst met restrictie is een goedkeuring voor benodigd"
+
+#: Mailman/Handlers/Hold.py:66
+msgid "This list is restricted; your message was not approved."
+msgstr "Deze lijst heeft restricties, je bericht is niet goedgekeurd."
+
+#: Mailman/Handlers/Hold.py:69
+msgid "Too many recipients to the message"
+msgstr "Te veel ontvangers in het bericht (AAN:/CC:)"
+
+#: Mailman/Handlers/Hold.py:70
+msgid "Please trim the recipient list; it is too long."
+msgstr "Verkort de AAN:/CC: lijst, het is te lang."
+
+#: Mailman/Handlers/Hold.py:73
+msgid "Message has implicit destination"
+msgstr "Het bericht heeft een onbekende doel"
+
+#: Mailman/Handlers/Hold.py:74
+msgid ""
+"Blind carbon copies or other implicit destinations are\n"
+"not allowed. Try reposting your message by explicitly including the list\n"
+"address in the To: or Cc: fields."
+msgstr ""
+"De lijst adres in het BCC veld is niet toegestaan.\n"
+"Stuur je bericht opnieuw en zet het mailing lijst adres in een AAN: og CC: "
+"veld.\n"
+"Alvast dank."
+
+#: Mailman/Handlers/Hold.py:79
+msgid "Message may contain administrivia"
+msgstr "Bericht bevat mischien administratieve commando's"
+
+#: Mailman/Handlers/Hold.py:84
+msgid ""
+"Please do *not* post administrative requests to the mailing\n"
+"list. If you wish to subscribe, visit %(listurl)s or send a message with "
+"the\n"
+"word `help' in it to the request address, %(request)s, for further\n"
+"instructions."
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:90
+msgid "Message has a suspicious header"
+msgstr "Bericht heeft een verdachte header"
+
+#: Mailman/Handlers/Hold.py:91
+msgid "Your message had a suspicious header."
+msgstr "Je bericht heeft een verachte header."
+
+#: Mailman/Handlers/Hold.py:101
+msgid ""
+"Message body is too big: %(size)d bytes with a limit of\n"
+"%(limit)d KB"
+msgstr ""
+"Bericht is te groot. Het is: %(size)d bytes en het mag maar\n"
+"%(limit)d KB groot zijn."
+
+#: Mailman/Handlers/Hold.py:106
+msgid ""
+"Your message was too big; please trim it to less than\n"
+"%(kb)d KB in size."
+msgstr ""
+"Bericht is te groot.Het mag maar\n"
+"%(limit)d KB groot zijn."
+
+#: Mailman/Handlers/Hold.py:110
+#, fuzzy
+msgid "Posting to a moderated newsgroup"
+msgstr "Verstuurd naar een gemodereerde lijst"
+
+#: Mailman/Handlers/Hold.py:233
+msgid "Your message to %(listname)s awaits moderator approval"
+msgstr "Je bericht naar %(listname)s staat in de wacht voor goedkeuring"
+
+#: Mailman/Handlers/Hold.py:253
+msgid "%(listname)s post from %(sender)s requires approval"
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:260
+msgid ""
+"If you reply to this message, keeping the Subject: header intact, Mailman "
+"will\n"
+"discard the held message. Do this if the message is spam. If you reply to\n"
+"this message and include an Approved: header with the list password in it, "
+"the\n"
+"message will be approved for posting to the list. The Approved: header can\n"
+"also appear in the first line of the body of the reply."
+msgstr ""
+
+#: Mailman/Handlers/MimeDel.py:56
+msgid "The message's content type was explicitly disallowed"
+msgstr ""
+
+#: Mailman/Handlers/MimeDel.py:61
+msgid "The message's content type was not explicitly allowed"
+msgstr ""
+
+#: Mailman/Handlers/MimeDel.py:73
+msgid "After content filtering, the message was empty"
+msgstr ""
+
+#: Mailman/Handlers/MimeDel.py:208
+msgid ""
+"The attached message matched the %(listname)s mailing list's content "
+"filtering\n"
+"rules and was prevented from being forwarded on to the list membership. "
+"You\n"
+"are receiving the only remaining copy of the discarded message.\n"
+"\n"
+msgstr ""
+
+#: Mailman/Handlers/MimeDel.py:214
+msgid "Content filtered message notification"
+msgstr ""
+
+#: Mailman/Handlers/Moderate.py:138
+msgid ""
+"You are not allowed to post to this mailing list, and your message has been\n"
+"automatically rejected. If you think that your messages are being rejected "
+"in\n"
+"error, contact the mailing list owner at %(listowner)s."
+msgstr ""
+
+#: Mailman/Handlers/Moderate.py:153
+msgid "Auto-discard notification"
+msgstr ""
+
+#: Mailman/Handlers/Moderate.py:156
+msgid "The attached message has been automatically discarded."
+msgstr ""
+
+#: Mailman/Handlers/Replybot.py:74
+msgid "Auto-response for your message to "
+msgstr ""
+
+#: Mailman/Handlers/Replybot.py:75
+msgid "the \"%(realname)s\" mailing list"
+msgstr ""
+
+#: Mailman/Handlers/Replybot.py:107
+msgid "The Mailman Replybot"
+msgstr ""
+
+#: Mailman/Handlers/Scrubber.py:148
+msgid "HTML attachment scrubbed and removed"
+msgstr "HTML attachment verwijderd"
+
+#: Mailman/Handlers/Scrubber.py:162 Mailman/Handlers/Scrubber.py:188
+msgid ""
+"An HTML attachment was scrubbed...\n"
+"URL: %(url)s\n"
+msgstr ""
+"HTML attachment verwijderd...\n"
+"URL: %(url)s\n"
+
+#: Mailman/Handlers/Scrubber.py:201
+msgid "no subject"
+msgstr "Geen onderwerp"
+
+#: Mailman/Handlers/Scrubber.py:202
+msgid "no date"
+msgstr "Geen datum"
+
+#: Mailman/Handlers/Scrubber.py:203
+msgid "unknown sender"
+msgstr "Onbekende verstuurder"
+
+#: Mailman/Handlers/Scrubber.py:205
+msgid ""
+"An embedded message was scrubbed...\n"
+"From: %(who)s\n"
+"Subject: %(subject)s\n"
+"Date: %(date)s\n"
+"Size: %(size)s\n"
+"Url: %(url)s\n"
+msgstr ""
+"Een ingevoegd bericht is gevonden...\n"
+"Van: %(who)s\n"
+"Onderwerp: %(subject)s\n"
+"Datum: %(date)s\n"
+"Groote: %(size)s\n"
+"Url: %(url)s\n"
+
+#: Mailman/Handlers/Scrubber.py:228
+msgid ""
+"A non-text attachment was scrubbed...\n"
+"Name: %(filename)s\n"
+"Type: %(ctype)s\n"
+"Size: %(size)d bytes\n"
+"Desc: %(desc)s\n"
+"Url : %(url)s\n"
+msgstr ""
+"Een bestand is gevonden...\n"
+"Naam: %(filename)s\n"
+"Soort: %(ctype)s\n"
+"Groote: %(size)d bytes\n"
+"Omschrijving: %(desc)s\n"
+"Url : %(url)s\n"
+
+#: Mailman/Handlers/Scrubber.py:258
+msgid "Skipped content of type %(partctype)s"
+msgstr ""
+
+#: Mailman/Handlers/Scrubber.py:275
+msgid "-------------- next part --------------\n"
+msgstr ""
+
+#: Mailman/Handlers/ToDigest.py:141
+msgid "%(realname)s Digest, Vol %(volume)d, Issue %(issue)d"
+msgstr "%(realname)s Digest, Volume %(volume)d, Nummer %(issue)d"
+
+#: Mailman/Handlers/ToDigest.py:181
+msgid "digest header"
+msgstr "digest header"
+
+#: Mailman/Handlers/ToDigest.py:184
+msgid "Digest Header"
+msgstr "Digest Header"
+
+#: Mailman/Handlers/ToDigest.py:197
+msgid "Today's Topics:\n"
+msgstr "Onderwerpen van vandaag:\n"
+
+#: Mailman/Handlers/ToDigest.py:267
+msgid "Today's Topics (%(msgcount)d messages)"
+msgstr "Aantal onderwerpen van vandaag (%(msgcount)d)"
+
+#: Mailman/Handlers/ToDigest.py:292
+msgid "digest footer"
+msgstr "digest voetnoot"
+
+#: Mailman/Handlers/ToDigest.py:295
+msgid "Digest Footer"
+msgstr "Digest Voetnoot"
+
+#: Mailman/Handlers/ToDigest.py:309
+msgid "End of "
+msgstr "Eind van "
+
+#: Mailman/ListAdmin.py:307
+msgid "Posting of your message titled \"%(subject)s\""
+msgstr ""
+
+#: Mailman/ListAdmin.py:346
+msgid "Forward of moderated message"
+msgstr ""
+
+#: Mailman/ListAdmin.py:405
+msgid "New subscription request to list %(realname)s from %(addr)s"
+msgstr ""
+
+#: Mailman/ListAdmin.py:428
+msgid "Subscription request"
+msgstr ""
+
+#: Mailman/ListAdmin.py:458
+msgid "New unsubscription request from %(realname)s by %(addr)s"
+msgstr ""
+
+#: Mailman/ListAdmin.py:481
+msgid "Unsubscription request"
+msgstr ""
+
+#: Mailman/ListAdmin.py:512
+msgid "Original Message"
+msgstr "Origineel bericht"
+
+#: Mailman/ListAdmin.py:515
+msgid "Request to mailing list %(realname)s rejected"
+msgstr ""
+
+#: Mailman/MTA/Manual.py:57
+msgid ""
+"The mailing list `%(listname)s' has been created via the through-the-web\n"
+"interface. In order to complete the activation of this mailing list, the\n"
+"proper /etc/aliases (or equivalent) file must be updated. The program\n"
+"`newaliases' may also have to be run.\n"
+"\n"
+"Here are the entries for the /etc/aliases file:\n"
+msgstr ""
+
+#: Mailman/MTA/Manual.py:67
+msgid ""
+"\n"
+"To finish creating your mailing list, you must edit your /etc/aliases (or\n"
+"equivalent) file by adding the following lines, and possibly running the\n"
+"`newaliases' program:\n"
+"\n"
+"## %(listname)s mailing list"
+msgstr ""
+
+#: Mailman/MTA/Manual.py:88
+msgid "Mailing list creation request for list %(listname)s"
+msgstr ""
+
+#: Mailman/MTA/Manual.py:103
+msgid ""
+"The mailing list `%(listname)s' has been removed via the through-the-web\n"
+"interface. In order to complete the de-activation of this mailing list, "
+"the\n"
+"appropriate /etc/aliases (or equivalent) file must be updated. The program\n"
+"`newaliases' may also have to be run.\n"
+"\n"
+"Here are the entries in the /etc/aliases file that should be removed:\n"
+msgstr ""
+
+#: Mailman/MTA/Manual.py:113
+msgid ""
+"\n"
+"To finish removing your mailing list, you must edit your /etc/aliases (or\n"
+"equivalent) file by removing the following lines, and possibly running the\n"
+"`newaliases' program:\n"
+"\n"
+"## %(listname)s mailing list"
+msgstr ""
+
+#: Mailman/MTA/Manual.py:132
+msgid "Mailing list removal request for list %(listname)s"
+msgstr ""
+
+#: Mailman/MTA/Postfix.py:300
+msgid "checking permissions on %(file)s"
+msgstr ""
+
+#: Mailman/MTA/Postfix.py:310
+msgid "%(file)s permissions must be 066x (got %(octmode)s)"
+msgstr ""
+
+#: Mailman/MTA/Postfix.py:312 Mailman/MTA/Postfix.py:339 bin/check_perms:100
+#: bin/check_perms:122 bin/check_perms:132 bin/check_perms:143
+#: bin/check_perms:162 bin/check_perms:180 bin/check_perms:200
+#: bin/check_perms:224 bin/check_perms:244 bin/check_perms:258
+#: bin/check_perms:278 bin/check_perms:315
+msgid "(fixing)"
+msgstr ""
+
+#: Mailman/MTA/Postfix.py:328
+msgid "checking ownership of %(dbfile)s"
+msgstr ""
+
+#: Mailman/MTA/Postfix.py:336
+msgid "%(dbfile)s owned by %(owner)s (must be owned by %(user)s"
+msgstr ""
+
+#: Mailman/MailList.py:697
+msgid "You have been invited to join the %(listname)s mailing list"
+msgstr ""
+
+#: Mailman/MailList.py:801 Mailman/MailList.py:1157
+msgid " from %(remote)s"
+msgstr ""
+
+#: Mailman/MailList.py:835
+msgid "subscriptions to %(realname)s require moderator approval"
+msgstr ""
+
+#: Mailman/MailList.py:894 bin/add_members:281
+msgid "%(realname)s subscription notification"
+msgstr ""
+
+#: Mailman/MailList.py:909
+msgid "unsubscriptions require moderator approval"
+msgstr ""
+
+#: Mailman/MailList.py:928
+msgid "%(realname)s unsubscribe notification"
+msgstr ""
+
+#: Mailman/MailList.py:1072
+msgid "subscriptions to %(name)s require administrator approval"
+msgstr ""
+
+#: Mailman/MailList.py:1326
+msgid "Last autoresponse notification for today"
+msgstr ""
+
+#: Mailman/Queue/BounceRunner.py:179
+msgid ""
+"The attached message was received as a bounce, but either the bounce format\n"
+"was not recognized, or no member addresses could be extracted from it. "
+"This\n"
+"mailing list has been configured to send all unrecognized bounce messages "
+"to\n"
+"the list administrator(s).\n"
+"\n"
+"For more information see:\n"
+"%(adminurl)s\n"
+"\n"
+msgstr ""
+
+#: Mailman/Queue/BounceRunner.py:189
+msgid "Uncaught bounce notification"
+msgstr "Niet gevangen Bounce melding"
+
+#: Mailman/Queue/CommandRunner.py:74
+msgid "Ignoring non-text/plain MIME parts"
+msgstr ""
+
+#: Mailman/Queue/CommandRunner.py:129
+msgid ""
+"The results of your email command are provided below.\n"
+"Attached is your original message.\n"
+msgstr ""
+
+#: Mailman/Queue/CommandRunner.py:134
+msgid "- Results:"
+msgstr ""
+
+#: Mailman/Queue/CommandRunner.py:140
+msgid ""
+"\n"
+"- Unprocessed:"
+msgstr ""
+
+#: Mailman/Queue/CommandRunner.py:143
+msgid ""
+"\n"
+"- Ignored:"
+msgstr ""
+
+#: Mailman/Queue/CommandRunner.py:145
+msgid ""
+"\n"
+"- Done.\n"
+"\n"
+msgstr ""
+
+#: Mailman/Queue/CommandRunner.py:163
+msgid "The results of your email commands"
+msgstr ""
+
+#: Mailman/htmlformat.py:627
+msgid "Delivered by Mailman<br>version %(version)s"
+msgstr "Bezorgd door Mailman<br>versie %(version)s"
+
+#: Mailman/htmlformat.py:628
+msgid "Python Powered"
+msgstr "Python Powered"
+
+#: Mailman/htmlformat.py:629
+msgid "Gnu's Not Unix"
+msgstr "Gnu's Not Unix"
+
+#: Mailman/i18n.py:86
+msgid "Mon"
+msgstr "Ma"
+
+#: Mailman/i18n.py:86
+msgid "Thu"
+msgstr "Do"
+
+#: Mailman/i18n.py:86
+msgid "Tue"
+msgstr "Di"
+
+#: Mailman/i18n.py:86
+msgid "Wed"
+msgstr "Wo"
+
+#: Mailman/i18n.py:87
+msgid "Fri"
+msgstr "Vr"
+
+#: Mailman/i18n.py:87
+msgid "Sat"
+msgstr "Za"
+
+#: Mailman/i18n.py:87
+msgid "Sun"
+msgstr "Zo"
+
+#: Mailman/i18n.py:91
+msgid "Apr"
+msgstr "Apr"
+
+#: Mailman/i18n.py:91
+msgid "Feb"
+msgstr "Feb"
+
+#: Mailman/i18n.py:91
+msgid "Jan"
+msgstr "Jan"
+
+#: Mailman/i18n.py:91
+msgid "Jun"
+msgstr "Jun"
+
+#: Mailman/i18n.py:91
+msgid "Mar"
+msgstr "Mrt"
+
+#: Mailman/i18n.py:92
+msgid "Aug"
+msgstr "Aug"
+
+#: Mailman/i18n.py:92
+msgid "Dec"
+msgstr "Dec"
+
+#: Mailman/i18n.py:92
+msgid "Jul"
+msgstr "Jul"
+
+#: Mailman/i18n.py:92
+msgid "Nov"
+msgstr "Nov"
+
+#: Mailman/i18n.py:92
+msgid "Oct"
+msgstr "Okt"
+
+#: Mailman/i18n.py:92
+msgid "Sep"
+msgstr "Sep"
+
+#: Mailman/i18n.py:95
+msgid "Server Local Time"
+msgstr ""
+
+#: Mailman/i18n.py:128
+msgid ""
+"%(wday)s %(mon)s %(day)2i %(hh)02i:%(mm)02i:%(ss)02i %(tzname)s %(year)04i"
+msgstr ""
+
+#: bin/add_members:26
+msgid ""
+"Add members to a list from the command line.\n"
+"\n"
+"Usage:\n"
+" add_members [options] listname\n"
+"\n"
+"Options:\n"
+"\n"
+" --regular-members-file=file\n"
+" -r file\n"
+" A file containing addresses of the members to be added, one\n"
+" address per line. This list of people become non-digest\n"
+" members. If file is `-', read addresses from stdin. Note that\n"
+" -n/--non-digest-members-file are deprecated synonyms for this "
+"option.\n"
+"\n"
+" --digest-members-file=file\n"
+" -d=file\n"
+" Similar to above, but these people become digest members.\n"
+"\n"
+" --changes-msg=<y|n>\n"
+" -c <y|n> \n"
+"\tSet whether or not to send the list members the `there's going to be\n"
+"\tbig changes to your list' message. defaults to no.\n"
+"\n"
+" --welcome-msg=<y|n>\n"
+" -w <y|n>\n"
+" Set whether or not to send the list members a welcome message,\n"
+" overriding whatever the list's `send_welcome_msg' setting is.\n"
+"\n"
+" --admin-notify=<y|n>\n"
+" -a <y|n>\n"
+" Set whether or not to send the list administrators a notification "
+"on\n"
+" the success/failure of these subscriptions, overriding whatever the\n"
+" list's `admin_notify_mchanges' setting is.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname\n"
+" The name of the Mailman list you are adding members to. It must\n"
+" already exist.\n"
+"\n"
+"You must supply at least one of -r and -d options. At most one of the\n"
+"files can be `-'.\n"
+msgstr ""
+
+#: bin/add_members:134
+msgid "Big change in %(listname)s@%(listhost)s mailing list"
+msgstr ""
+
+#: bin/add_members:167
+msgid "Already a member: %(member)s"
+msgstr ""
+
+#: bin/add_members:170
+msgid "Bad/Invalid email address: blank line"
+msgstr ""
+
+#: bin/add_members:172
+msgid "Bad/Invalid email address: %(member)s"
+msgstr ""
+
+#: bin/add_members:174
+msgid "Hostile address (illegal characters): %(member)s"
+msgstr ""
+
+#: bin/add_members:176
+msgid "Subscribed: %(member)s"
+msgstr ""
+
+#: bin/add_members:223
+msgid "Bad argument to -c/--changes-msg: %(arg)s"
+msgstr ""
+
+#: bin/add_members:230
+msgid "Bad argument to -w/--welcome-msg: %(arg)s"
+msgstr ""
+
+#: bin/add_members:237
+msgid "Bad argument to -a/--admin-notify: %(arg)s"
+msgstr ""
+
+#: bin/add_members:243
+msgid "Cannot read both digest and normal members from standard input."
+msgstr ""
+
+#: bin/add_members:249 bin/config_list:105 bin/find_member:97 bin/inject:90
+#: bin/list_admins:89 bin/list_members:187 bin/sync_members:222
+#: cron/bumpdigests:86
+msgid "No such list: %(listname)s"
+msgstr ""
+
+#: bin/add_members:269 bin/change_pw:158 bin/check_db:114 bin/sync_members:244
+#: cron/bumpdigests:78
+msgid "Nothing to do."
+msgstr ""
+
+#: bin/arch:19
+msgid ""
+"Rebuild a list's archive.\n"
+"\n"
+"Use this command to rebuild the archives for a mailing list. You may want "
+"to\n"
+"do this if you edit some messages in an archive, or remove some messages "
+"from\n"
+"an archive.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] <listname> [<mbox>]\n"
+"\n"
+"Where options are:\n"
+" -h / --help\n"
+" Print this help message and exit.\n"
+"\n"
+" -q / --quiet\n"
+" Make the archiver output less verbose.\n"
+"\n"
+" --wipe\n"
+" First wipe out the original archive before regenerating. You "
+"usually\n"
+" want to specify this argument unless you're generating the archive "
+"in\n"
+" chunks.\n"
+"\n"
+" -s N\n"
+" --start=N\n"
+" Start indexing at article N, where article 0 is the first in the "
+"mbox.\n"
+" Defaults to 0.\n"
+"\n"
+" -e M\n"
+" --end=M\n"
+" End indexing at article M. This script is not very efficient with\n"
+" respect to memory management, and for large archives, it may not be\n"
+" possible to index the mbox entirely. For that reason, you can "
+"specify\n"
+" the start and end article numbers.\n"
+"\n"
+"Where <mbox> is the path to a list's complete mbox archive. Usually this "
+"will\n"
+"be some path in the archives/private directory. For example:\n"
+"\n"
+"%% bin/arch mylist archives/private/mylist.mbox/mylist.mbox\n"
+"\n"
+"<mbox> is optional. If it is missing, it is calculated.\n"
+msgstr ""
+
+#: bin/arch:125
+msgid "listname is required"
+msgstr ""
+
+#: bin/arch:143 bin/change_pw:106 bin/config_list:242
+msgid ""
+"No such list \"%(listname)s\"\n"
+"%(e)s"
+msgstr ""
+
+#: bin/arch:170
+msgid "Cannot open mbox file %(mbox)s: %(msg)s"
+msgstr ""
+
+#: bin/b4b5-archfix:19
+msgid ""
+"Fix the MM2.1b4 archives.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] file ...\n"
+"\n"
+"Where options are:\n"
+" -h / --help\n"
+" Print this help message and exit.\n"
+"\n"
+"Only use this to `fix' some archive database files that may have gotten\n"
+"written in Mailman 2.1b4 with some bogus data. Use like this from your\n"
+"$PREFIX directory\n"
+"\n"
+"%% %(PROGRAM)s `grep -l _mlist archives/private/*/database/*-article`\n"
+"\n"
+"(note the backquotes are required)\n"
+"\n"
+"You will need to run `bin/check_perms -f' after running this script.\n"
+msgstr ""
+
+#: bin/change_pw:19
+msgid ""
+"Change a list's password.\n"
+"\n"
+"Prior to Mailman 2.1, list passwords were kept in crypt'd format -- "
+"usually.\n"
+"Some Python installations didn't have the crypt module available, so they'd\n"
+"fall back to md5. Then suddenly the Python installation might grow a crypt\n"
+"module and all list passwords would be broken.\n"
+"\n"
+"In Mailman 2.1, all list and site passwords are stored in SHA1 hexdigest\n"
+"form. This breaks list passwords for all existing pre-Mailman 2.1 lists, "
+"and\n"
+"since those passwords aren't stored anywhere in plain text, they cannot be\n"
+"retrieved and updated.\n"
+"\n"
+"Thus, this script generates new passwords for a list, and optionally sends "
+"it\n"
+"to all the owners of the list.\n"
+"\n"
+"Usage: change_pw [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" --all / -a\n"
+" Change the password for all lists.\n"
+"\n"
+" --domain=domain\n"
+" -d domain\n"
+" Change the password for all lists in the virtual domain `domain'. "
+"It\n"
+" is okay to give multiple -d options.\n"
+"\n"
+" --listname=listname\n"
+" -l listname\n"
+" Change the password only for the named list. It is okay to give\n"
+" multiple -l options.\n"
+"\n"
+" --password=newpassword\n"
+" -p newpassword\n"
+" Use the supplied plain text password `newpassword' as the new "
+"password\n"
+" for any lists that are being changed (as specified by the -a, -d, "
+"and\n"
+" -l options). If not given, lists will be assigned a randomly\n"
+" generated new password.\n"
+"\n"
+" --quiet / -q\n"
+" Don't notify list owners of the new password. You'll have to have\n"
+" some other way of letting the list owners know the new password\n"
+" (presumably out-of-band).\n"
+"\n"
+" --help / -h\n"
+" Print this help message and exit.\n"
+msgstr ""
+
+#: bin/change_pw:144
+msgid "Bad arguments: %(strargs)s"
+msgstr ""
+
+#: bin/change_pw:148
+msgid "Empty list passwords are not allowed"
+msgstr ""
+
+#: bin/change_pw:179
+msgid "New %(listname)s password: %(notifypassword)s"
+msgstr ""
+
+#: bin/change_pw:188
+msgid "Your new %(listname)s list password"
+msgstr ""
+
+#: bin/change_pw:189
+msgid ""
+"The site administrator at %(hostname)s has changed the password for your\n"
+"mailing list %(listname)s. It is now\n"
+"\n"
+" %(notifypassword)s\n"
+"\n"
+"Please be sure to use this for all future list administration. You may "
+"want\n"
+"to log in now to your list and change the password to something more to "
+"your\n"
+"liking. Visit your list admin page at\n"
+"\n"
+" %(adminurl)s\n"
+msgstr ""
+
+#: bin/check_db:19
+msgid ""
+"Check a list's config database file for integrity.\n"
+"\n"
+"All of the following files are checked:\n"
+"\n"
+" config.pck\n"
+" config.pck.last\n"
+" config.db\n"
+" config.db.last\n"
+" config.safety\n"
+"\n"
+"It's okay if any of these are missing. config.pck and config.pck.last are\n"
+"pickled versions of the config database file for 2.1a3 and beyond. config."
+"db\n"
+"and config.db.last are used in all earlier versions, and these are Python\n"
+"marshals. config.safety is a pickle written by 2.1a3 and beyond when the\n"
+"primary config.pck file could not be read.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname [listname ...]]\n"
+"\n"
+"Options:\n"
+"\n"
+" --all / -a\n"
+" Check the databases for all lists. Otherwise only the lists named "
+"on\n"
+" the command line are checked.\n"
+"\n"
+" --verbose / -v\n"
+" Verbose output. The state of every tested file is printed.\n"
+" Otherwise only corrupt files are displayed.\n"
+"\n"
+" --help / -h\n"
+" Print this text and exit.\n"
+msgstr ""
+
+#: bin/check_db:119
+msgid "No list named:"
+msgstr ""
+
+#: bin/check_db:128
+msgid "List:"
+msgstr ""
+
+#: bin/check_db:148
+msgid " %(file)s: okay"
+msgstr ""
+
+#: bin/check_perms:19
+msgid ""
+"Check the permissions for the Mailman installation.\n"
+"\n"
+"Usage: %(PROGRAM)s [-f] [-v] [-h]\n"
+"\n"
+"With no arguments, just check and report all the files that have bogus\n"
+"permissions or group ownership. With -f (and run as root), fix all the\n"
+"permission problems found. With -v be verbose.\n"
+"\n"
+msgstr ""
+
+#: bin/check_perms:85
+msgid " checking gid and mode for %(path)s"
+msgstr ""
+
+#: bin/check_perms:97
+msgid "%(path)s bad group (has: %(groupname)s, expected %(MAILMAN_GROUP)s)"
+msgstr ""
+
+#: bin/check_perms:120
+msgid "directory permissions must be %(octperms)s: %(path)s"
+msgstr ""
+
+#: bin/check_perms:129
+msgid "source perms must be %(octperms)s: %(path)s"
+msgstr ""
+
+#: bin/check_perms:140
+msgid "article db files must be %(octperms)s: %(path)s"
+msgstr ""
+
+#: bin/check_perms:152
+msgid "checking mode for %(prefix)s"
+msgstr ""
+
+#: bin/check_perms:160
+msgid "directory must be at least 02775: %(d)s"
+msgstr ""
+
+#: bin/check_perms:173
+msgid "checking perms on %(private)s"
+msgstr ""
+
+#: bin/check_perms:178
+msgid "%(private)s must not be other-readable"
+msgstr ""
+
+#: bin/check_perms:198
+msgid "mbox file must be at least 0660:"
+msgstr ""
+
+#: bin/check_perms:222
+msgid "%(dbdir)s \"other\" perms must be 000"
+msgstr ""
+
+#: bin/check_perms:233
+msgid "checking cgi-bin permissions"
+msgstr ""
+
+#: bin/check_perms:238
+msgid " checking set-gid for %(path)s"
+msgstr ""
+
+#: bin/check_perms:242
+msgid "%(path)s must be set-gid"
+msgstr ""
+
+#: bin/check_perms:252
+msgid "checking set-gid for %(wrapper)s"
+msgstr ""
+
+#: bin/check_perms:256
+msgid "%(wrapper)s must be set-gid"
+msgstr ""
+
+#: bin/check_perms:266
+msgid "checking permissions on %(pwfile)s"
+msgstr ""
+
+#: bin/check_perms:275
+msgid "%(pwfile)s permissions must be exactly 0640 (got %(octmode)s)"
+msgstr ""
+
+#: bin/check_perms:299
+msgid "checking permissions on list data"
+msgstr ""
+
+#: bin/check_perms:305
+msgid " checking permissions on: %(path)s"
+msgstr ""
+
+#: bin/check_perms:313
+msgid "file permissions must be at least 660: %(path)s"
+msgstr ""
+
+#: bin/check_perms:359
+msgid "No problems found"
+msgstr ""
+
+#: bin/check_perms:361
+msgid "Problems found:"
+msgstr ""
+
+#: bin/check_perms:362
+msgid "Re-run as %(MAILMAN_USER)s (or root) with -f flag to fix"
+msgstr ""
+
+#: bin/cleanarch:19
+msgid ""
+"Clean up an .mbox archive file.\n"
+"\n"
+"The archiver looks for Unix-From lines separating messages in an mbox "
+"archive\n"
+"file. For compatibility, it specifically looks for lines that start with\n"
+"\"From \" -- i.e. the letters capital-F, lowercase-r, o, m, space, ignoring\n"
+"everything else on the line.\n"
+"\n"
+"Normally, any lines that start \"From \" in the body of a message should be\n"
+"escaped such that a > character is actually the first on a line. It is\n"
+"possible though that body lines are not actually escaped. This script\n"
+"attempts to fix these by doing a stricter test of the Unix-From lines. Any\n"
+"lines that start \"From \" but do not pass this stricter test are escaped "
+"with a\n"
+"> character.\n"
+"\n"
+"Usage: cleanarch [options] < inputfile > outputfile\n"
+"Options:\n"
+" -s n\n"
+" --status=n\n"
+" Print a # character every n lines processed\n"
+"\n"
+" -q / --quiet\n"
+" Don't print changed line information to standard error.\n"
+"\n"
+" -n / --dry-run\n"
+" Don't actually output anything.\n"
+"\n"
+" -h / --help\n"
+" Print this message and exit\n"
+msgstr ""
+
+#: bin/cleanarch:82
+msgid "Unix-From line changed: %(lineno)d"
+msgstr ""
+
+#: bin/cleanarch:110
+msgid "Bad status number: %(arg)s"
+msgstr ""
+
+#: bin/cleanarch:160
+msgid "%(messages)d messages found"
+msgstr ""
+
+#: bin/clone_member:19
+msgid ""
+"Clone a member address.\n"
+"\n"
+"Cloning a member address means that a new member will be added who has all "
+"the\n"
+"same options and passwords as the original member address. Note that this\n"
+"operation is fairly trusting of the user who runs it -- it does no\n"
+"verification to the new address, it does not send out a welcome message, "
+"etc.\n"
+"\n"
+"The existing member's subscription is usually not modified in any way. If "
+"you\n"
+"want to remove the old address, use the -r flag. If you also want to "
+"change\n"
+"any list admin addresses, use the -a flag.\n"
+"\n"
+"Usage:\n"
+" clone_member [options] fromoldaddr tonewaddr\n"
+"\n"
+"Where:\n"
+"\n"
+" --listname=listname\n"
+" -l listname\n"
+" Check and modify only the named mailing lists. If -l is not given,\n"
+" then all mailing lists are scanned from the address. Multiple -l\n"
+" options can be supplied.\n"
+"\n"
+" --remove\n"
+" -r\n"
+" Remove the old address from the mailing list after it's been "
+"cloned.\n"
+"\n"
+" --admin\n"
+" -a\n"
+" Scan the list admin addresses for the old address, and clone or "
+"change\n"
+" them too.\n"
+"\n"
+" --quiet\n"
+" -q\n"
+" Do the modifications quietly.\n"
+"\n"
+" --nomodify\n"
+" -n\n"
+" Print what would be done, but don't actually do it. Inhibits the\n"
+" --quiet flag.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" fromoldaddr (`from old address') is the old address of the user. "
+"tonewaddr\n"
+" (`to new address') is the new address of the user.\n"
+"\n"
+msgstr ""
+
+#: bin/clone_member:94
+msgid "processing mailing list:"
+msgstr ""
+
+#: bin/clone_member:101
+msgid " scanning list owners:"
+msgstr ""
+
+#: bin/clone_member:119
+msgid " new list owners:"
+msgstr ""
+
+#: bin/clone_member:121
+msgid "(no change)"
+msgstr ""
+
+#: bin/clone_member:130
+msgid " address not found:"
+msgstr ""
+
+#: bin/clone_member:139
+msgid " clone address added:"
+msgstr ""
+
+#: bin/clone_member:142
+msgid " clone address is already a member:"
+msgstr ""
+
+#: bin/clone_member:145
+msgid " original address removed:"
+msgstr ""
+
+#: bin/clone_member:196
+msgid "Not a valid email address: %(toaddr)s"
+msgstr ""
+
+#: bin/clone_member:209
+msgid ""
+"Error opening list \"%(listname)s\", skipping.\n"
+"%(e)s"
+msgstr ""
+
+#: bin/config_list:19
+msgid ""
+"Configure a list from a text file description.\n"
+"\n"
+"Usage: config_list [options] listname\n"
+"\n"
+"Options:\n"
+" --inputfile filename\n"
+" -i filename\n"
+" Configure the list by assigning each module-global variable in the\n"
+" file to an attribute on the list object, then saving the list. The\n"
+" named file is loaded with execfile() and must be legal Python code.\n"
+" Any variable that isn't already an attribute of the list object is\n"
+" ignored (a warning message is printed). See also the -c option.\n"
+"\n"
+" A special variable named `mlist' is put into the globals during the\n"
+" execfile, which is bound to the actual MailList object. This lets "
+"you\n"
+" do all manner of bizarre thing to the list object, but BEWARE! "
+"Using\n"
+" this can severely (and possibly irreparably) damage your mailing "
+"list!\n"
+"\n"
+" --outputfile filename\n"
+" -o filename\n"
+" Instead of configuring the list, print out a list's configuration\n"
+" variables in a format suitable for input using this script. In "
+"this\n"
+" way, you can easily capture the configuration settings for a\n"
+" particular list and imprint those settings on another list. "
+"filename\n"
+" is the file to output the settings to. If filename is `-', "
+"standard\n"
+" out is used.\n"
+"\n"
+" --checkonly\n"
+" -c\n"
+" With this option, the modified list is not actually changed. Only\n"
+" useful with -i.\n"
+"\n"
+" --verbose\n"
+" -v\n"
+" Print the name of each attribute as it is being changed. Only "
+"useful\n"
+" with -i.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+"The options -o and -i are mutually exclusive.\n"
+"\n"
+msgstr ""
+
+#: bin/config_list:109
+msgid ""
+"## \"%(listname)s\" mailing list configuration settings -*- python -*-\n"
+"## captured on %(when)s\n"
+msgstr ""
+
+#: bin/config_list:131
+msgid "options"
+msgstr ""
+
+#: bin/config_list:188
+msgid "legal values are:"
+msgstr ""
+
+#: bin/config_list:255
+msgid "attribute \"%(k)s\" ignored"
+msgstr ""
+
+#: bin/config_list:258
+msgid "attribute \"%(k)s\" changed"
+msgstr ""
+
+#: bin/config_list:264
+msgid "Non-standard property restored: %(k)s"
+msgstr ""
+
+#: bin/config_list:272
+msgid "Invalid value for property: %(k)s"
+msgstr ""
+
+#: bin/config_list:274
+msgid "Bad email address for option %(k)s: %(v)s"
+msgstr ""
+
+#: bin/config_list:322
+msgid "Only one of -i or -o is allowed"
+msgstr ""
+
+#: bin/config_list:324
+msgid "One of -i or -o is required"
+msgstr ""
+
+#: bin/config_list:328
+msgid "List name is required"
+msgstr ""
+
+#: bin/convert.py:19
+msgid ""
+"Convert a list's interpolation strings from %-strings to $-strings.\n"
+"\n"
+"This script is intended to be run as a bin/withlist script, i.e.\n"
+"\n"
+"% bin/withlist -l -r convert <mylist>\n"
+msgstr ""
+
+#: bin/convert.py:38 bin/fix_url.py:85
+msgid "Saving list"
+msgstr ""
+
+#: bin/convert.py:44 bin/fix_url.py:51
+msgid "%%%"
+msgstr ""
+
+#: bin/dumpdb:19
+msgid ""
+"Dump the contents of any Mailman `database' file.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] filename\n"
+"\n"
+"Options:\n"
+"\n"
+" --marshal/-m\n"
+" Assume the file contains a Python marshal, overridding any "
+"automatic\n"
+" guessing.\n"
+"\n"
+" --pickle/-p\n"
+" Assume the file contains a Python pickle, overridding any automatic\n"
+" guessing.\n"
+"\n"
+" --noprint/-n\n"
+" Don't attempt to pretty print the object. This is useful if "
+"there's\n"
+" some problem with the object and you just want to get an unpickled\n"
+" representation. Useful with `python -i bin/dumpdb <file>'. In "
+"that\n"
+" case, the root of the tree will be left in a global called \"msg\".\n"
+"\n"
+" --help/-h\n"
+" Print this help message and exit\n"
+"\n"
+"If the filename ends with `.db', then it is assumed that the file contains "
+"a\n"
+"Python marshal. If the file ends with `.pck' then it is assumed to contain "
+"a\n"
+"Python pickle. In either case, if you want to override the default "
+"assumption\n"
+"-- or if the file ends in neither suffix -- use the -p or -m flags.\n"
+msgstr ""
+
+#: bin/dumpdb:101
+msgid "No filename given."
+msgstr ""
+
+#: bin/dumpdb:104
+msgid "Bad arguments: %(pargs)s"
+msgstr ""
+
+#: bin/dumpdb:114
+msgid "Please specify either -p or -m."
+msgstr ""
+
+#: bin/find_member:19
+msgid ""
+"Find all lists that a member's address is on.\n"
+"\n"
+"Usage:\n"
+" find_member [options] regex [regex [...]]\n"
+"\n"
+"Where:\n"
+" --listname=listname\n"
+" -l listname\n"
+" Include only the named list in the search.\n"
+"\n"
+" --exclude=listname\n"
+" -x listname\n"
+" Exclude the named list from the search.\n"
+"\n"
+" --owners\n"
+" -w\n"
+" Search list owners as well as members.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" regex\n"
+" A Python regular expression to match against.\n"
+"\n"
+"The interaction between -l and -x is as follows. If any -l option is given\n"
+"then only the named list will be included in the search. If any -x option "
+"is\n"
+"given but no -l option is given, then all lists will be search except those\n"
+"specifically excluded.\n"
+"\n"
+"Regular expression syntax is Perl5-like, using the Python re module. "
+"Complete\n"
+"specifications are at:\n"
+"\n"
+"http://www.python.org/doc/current/lib/module-re.html\n"
+"\n"
+"Address matches are case-insensitive, but case-preserved addresses are\n"
+"displayed.\n"
+"\n"
+msgstr ""
+
+#: bin/find_member:159
+msgid "Search regular expression required"
+msgstr ""
+
+#: bin/find_member:164
+msgid "No lists to search"
+msgstr ""
+
+#: bin/find_member:173
+msgid "found in:"
+msgstr ""
+
+#: bin/find_member:179
+msgid "(as owner)"
+msgstr ""
+
+#: bin/fix_url.py:19
+msgid ""
+"Reset a list's web_page_url attribute to the default setting.\n"
+"\n"
+"This script is intended to be run as a bin/withlist script, i.e.\n"
+"\n"
+"% bin/withlist -l -r fix_url listname [options]\n"
+"\n"
+"Options:\n"
+" -u urlhost\n"
+" --urlhost=urlhost\n"
+" Look up urlhost in the virtual host table and set the web_page_url "
+"and\n"
+" host_name attributes of the list to the values found. This\n"
+" essentially moves the list from one virtual domain to another.\n"
+"\n"
+" Without this option, the default web_page_url and host_name values "
+"are\n"
+" used.\n"
+"\n"
+" -v / --verbose\n"
+" Print what the script is doing.\n"
+"\n"
+"If run standalone, it prints this help text and exits.\n"
+msgstr ""
+
+#: bin/fix_url.py:80
+msgid "Setting web_page_url to: %(web_page_url)s"
+msgstr ""
+
+#: bin/fix_url.py:83
+msgid "Setting host_name to: %(mailhost)s"
+msgstr ""
+
+#: bin/genaliases:19
+msgid ""
+"Regenerate Postfix's data/aliases and data/aliases.db files from scratch.\n"
+"\n"
+"Usage:\n"
+"\n"
+" genaliases [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+msgstr ""
+
+#: bin/inject:19
+msgid ""
+"Inject a message from a file into Mailman's incoming queue.\n"
+"\n"
+"Usage: inject [options] [filename]\n"
+"\n"
+"Options:\n"
+"\n"
+" -h / --help\n"
+" Print this text and exit.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" The name of the list to inject this message to. Required.\n"
+"\n"
+" -q queuename\n"
+" --queue=queuename\n"
+" The name of the queue to inject the message to. The queuename must "
+"be\n"
+" one of the directories inside the qfiles directory. If omitted, "
+"the\n"
+" incoming queue is used.\n"
+"\n"
+"filename is the name of the plaintext message file to inject. If omitted,\n"
+"standard input is used.\n"
+msgstr ""
+
+#: bin/inject:83
+msgid "Bad queue directory: %(qdir)s"
+msgstr ""
+
+#: bin/inject:88
+msgid "A list name is required"
+msgstr ""
+
+#: bin/list_admins:19
+msgid ""
+"List all the owners of a mailing list.\n"
+"\n"
+"Usage: %(program)s [options] listname ...\n"
+"\n"
+"Where:\n"
+"\n"
+" --all-vhost=vhost\n"
+" -v=vhost\n"
+" List the owners of all the mailing lists for the given virtual "
+"host.\n"
+"\n"
+" --all\n"
+" -a\n"
+" List the owners of all the mailing lists on this system.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+"`listname' is the name of the mailing list to print the owners of. You can\n"
+"have more than one named list on the command line.\n"
+msgstr ""
+
+#: bin/list_admins:96
+msgid "List: %(listname)s, \tOwners: %(owners)s"
+msgstr ""
+
+#: bin/list_lists:19
+msgid ""
+"List all mailing lists.\n"
+"\n"
+"Usage: %(program)s [options]\n"
+"\n"
+"Where:\n"
+"\n"
+" -a / --advertised\n"
+" List only those mailing lists that are publically advertised\n"
+"\n"
+" --virtual-host-overview=domain\n"
+" -V domain\n"
+" List only those mailing lists that are homed to the given virtual\n"
+" domain. This only works if the VIRTUAL_HOST_OVERVIEW variable is\n"
+" set.\n"
+"\n"
+" -b / --bare\n"
+" Displays only the list name, with no description.\n"
+"\n"
+" -h / --help\n"
+" Print this text and exit.\n"
+"\n"
+msgstr ""
+
+#: bin/list_lists:105
+msgid "No matching mailing lists found"
+msgstr ""
+
+#: bin/list_lists:109
+msgid "matching mailing lists found:"
+msgstr ""
+
+#: bin/list_members:19
+msgid ""
+"List all the members of a mailing list.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] listname\n"
+"\n"
+"Where:\n"
+"\n"
+" --output file\n"
+" -o file\n"
+" Write output to specified file instead of standard out.\n"
+"\n"
+" --regular / -r\n"
+" Print just the regular (non-digest) members.\n"
+"\n"
+" --digest[=kind] / -d [kind]\n"
+" Print just the digest members. Optional argument can be \"mime\" "
+"or\n"
+" \"plain\" which prints just the digest members receiving that kind "
+"of\n"
+" digest.\n"
+"\n"
+" --nomail[=why] / -n [why]\n"
+" Print the members that have delivery disabled. Optional argument "
+"can\n"
+" be \"byadmin\", \"byuser\", \"bybounce\", or \"unknown\" which "
+"prints just the\n"
+" users who have delivery disabled for that reason. It can also be\n"
+" \"enabled\" which prints just those member for whom delivery is\n"
+" enabled.\n"
+"\n"
+" --fullnames / -f\n"
+" Include the full names in the output.\n"
+"\n"
+" --preserve\n"
+" -p\n"
+" Output member addresses case preserved the way they were added to "
+"the\n"
+" list. Otherwise, addresses are printed in all lowercase.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname is the name of the mailing list to use.\n"
+"\n"
+"Note that if neither -r or -d is supplied, both regular members are printed\n"
+"first, followed by digest members, but no indication is given as to address\n"
+"status.\n"
+msgstr ""
+
+#: bin/list_members:150
+msgid "Bad --nomail option: %(why)s"
+msgstr ""
+
+#: bin/list_members:161
+msgid "Bad --digest option: %(kind)s"
+msgstr ""
+
+#: bin/list_members:179
+msgid "Could not open file for writing:"
+msgstr ""
+
+#: bin/list_owners:19
+msgid ""
+"List the owners of a mailing list, or all mailing lists.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname ...]\n"
+"Options:\n"
+"\n"
+" -w / --with-listnames\n"
+" Group the owners by list names and include the list names in the\n"
+" output. Otherwise, the owners will be sorted and uniquified based "
+"on\n"
+" the email address.\n"
+"\n"
+" -m / --moderators\n"
+" Include the list moderators in the output.\n"
+"\n"
+" -h / --help\n"
+" Print this help message and exit.\n"
+"\n"
+" listname\n"
+" Print the owners of the specified lists. More than one can appear\n"
+" after the options. If there are no listnames provided, the owners "
+"of\n"
+" all the lists will be displayed.\n"
+msgstr ""
+
+#: bin/mailmanctl:19
+msgid ""
+"Primary start-up and shutdown script for Mailman's qrunner daemon.\n"
+"\n"
+"This script starts, stops, and restarts the main Mailman queue runners, "
+"making\n"
+"sure that the various long-running qrunners are still alive and kicking. "
+"It\n"
+"does this by forking and exec'ing the qrunners and waiting on their pids.\n"
+"When it detects a subprocess has exited, it may restart it.\n"
+"\n"
+"The qrunners respond to SIGINT, SIGTERM, and SIGHUP. SIGINT and SIGTERM "
+"both\n"
+"cause the qrunners to exit cleanly, but the master will only restart "
+"qrunners\n"
+"that have exited due to a SIGINT. SIGHUP causes the master and the "
+"qrunners\n"
+"to close their log files, and reopen then upon the next printed message.\n"
+"\n"
+"The master also responds to SIGINT, SIGTERM, and SIGHUP, which it simply\n"
+"passes on to the qrunners (note that the master will close and reopen its "
+"own\n"
+"log files on receipt of a SIGHUP). The master also leaves its own process "
+"id\n"
+"in the file data/master-qrunner.pid but you normally don't need to use this\n"
+"pid directly. The `start', `stop', `restart', and `reopen' commands handle\n"
+"everything for you.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [ start | stop | restart | reopen ]\n"
+"\n"
+"Options:\n"
+"\n"
+" -n/--no-restart\n"
+" Don't restart the qrunners when they exit because of an error or a\n"
+" SIGINT. They are never restarted if they exit in response to a\n"
+" SIGTERM. Use this only for debugging. Only useful if the `start'\n"
+" command is given.\n"
+"\n"
+" -u/--run-as-user\n"
+" Normally, this script will refuse to run if the user id and group "
+"id\n"
+" are not set to the `mailman' user and group (as defined when you\n"
+" configured Mailman). If run as root, this script will change to "
+"this\n"
+" user and group before the check is made.\n"
+"\n"
+" This can be inconvenient for testing and debugging purposes, so the -"
+"u\n"
+" flag means that the step that sets and checks the uid/gid is "
+"skipped,\n"
+" and the program is run as the current user and group. This flag is\n"
+" not recommended for normal production environments.\n"
+"\n"
+" Note though, that if you run with -u and are not in the mailman "
+"group,\n"
+" you may have permission problems, such as begin unable to delete a\n"
+" list's archives through the web. Tough luck!\n"
+"\n"
+" -s/--stale-lock-cleanup\n"
+" If mailmanctl finds an existing master lock, it will normally exit\n"
+" with an error message. With this option, mailmanctl will perform "
+"an\n"
+" extra level of checking. If a process matching the host/pid "
+"described\n"
+" in the lock file is running, mailmanctl will still exit, but if no\n"
+" matching process is found, mailmanctl will remove the apparently "
+"stale\n"
+" lock and make another attempt to claim the master lock.\n"
+"\n"
+" -q/--quiet\n"
+" Don't print status messages. Error messages are still printed to\n"
+" standard error.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+"\n"
+"Commands:\n"
+"\n"
+" start - Start the master daemon and all qrunners. Prints a message "
+"and\n"
+" exits if the master daemon is already running.\n"
+"\n"
+" stop - Stops the master daemon and all qrunners. After stopping, no\n"
+" more messages will be processed.\n"
+"\n"
+" restart - Restarts the qrunners, but not the master process. Use this\n"
+" whenever you upgrade or update Mailman so that the qrunners "
+"will\n"
+" use the newly installed code.\n"
+"\n"
+" reopen - This will close all log files, causing them to be re-opened "
+"the\n"
+" next time a message is written to them\n"
+msgstr ""
+
+#: bin/mailmanctl:149
+msgid "PID unreadable in: %(pidfile)s"
+msgstr ""
+
+#: bin/mailmanctl:151
+msgid "Is qrunner even running?"
+msgstr ""
+
+#: bin/mailmanctl:157
+msgid "No child with pid: %(pid)s"
+msgstr ""
+
+#: bin/mailmanctl:159
+msgid "Stale pid file removed."
+msgstr ""
+
+#: bin/mailmanctl:217
+msgid ""
+"The master qrunner lock could not be acquired because it appears as if "
+"another\n"
+"master qrunner is already running.\n"
+msgstr ""
+
+#: bin/mailmanctl:223
+msgid ""
+"The master qrunner lock could not be acquired. It appears as though there "
+"is\n"
+"a stale master qrunner lock. Try re-running mailmanctl with the -s flag.\n"
+msgstr ""
+
+#: bin/mailmanctl:229
+msgid ""
+"The master qrunner lock could not be acquired, because it appears as if "
+"some\n"
+"process on some other host may have acquired it. We can't test for stale\n"
+"locks across host boundaries, so you'll have to do this manually. Or, if "
+"you\n"
+"know the lock is stale, re-run mailmanctl with the -s flag.\n"
+"\n"
+"Lock file: %(LOCKFILE)s\n"
+"Lock host: %(status)s\n"
+"\n"
+"Exiting."
+msgstr ""
+
+#: bin/mailmanctl:282
+msgid "Run this program as root or as the %(name)s user, or use -u."
+msgstr ""
+
+#: bin/mailmanctl:313
+msgid "No command given."
+msgstr ""
+
+#: bin/mailmanctl:316
+msgid "Bad command: %(command)s"
+msgstr ""
+
+#: bin/mailmanctl:321
+msgid "Warning! You may encounter permission problems."
+msgstr ""
+
+#: bin/mailmanctl:330
+msgid "Shutting down Mailman's master qrunner"
+msgstr ""
+
+#: bin/mailmanctl:337
+msgid "Restarting Mailman's master qrunner"
+msgstr ""
+
+#: bin/mailmanctl:341
+msgid "Re-opening all log files"
+msgstr ""
+
+#: bin/mailmanctl:375
+msgid "Starting Mailman's master qrunner."
+msgstr ""
+
+#: bin/mmsitepass:19
+msgid ""
+"Set the site password, prompting from the terminal.\n"
+"\n"
+"The site password can be used in most if not all places that the list\n"
+"administrator's password can be used, which in turn can be used in most "
+"places\n"
+"that a list users password can be used.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [password]\n"
+"\n"
+"Options:\n"
+"\n"
+" -c/--listcreator\n"
+" Set the list creator password instead of the site password. The "
+"list\n"
+" creator is authorized to create and remove lists, but does not have\n"
+" the total power of the site administrator.\n"
+"\n"
+" -h/--help\n"
+" Print this help message and exit.\n"
+"\n"
+"If password is not given on the command line, it will be prompted for.\n"
+msgstr ""
+
+#: bin/mmsitepass:73
+msgid "site"
+msgstr ""
+
+#: bin/mmsitepass:80
+msgid "list creator"
+msgstr ""
+
+#: bin/mmsitepass:86
+msgid "New %(pwdesc)s password: "
+msgstr ""
+
+#: bin/mmsitepass:87
+msgid "Again to confirm password: "
+msgstr ""
+
+#: bin/mmsitepass:89
+msgid "Passwords do not match; no changes made."
+msgstr ""
+
+#: bin/mmsitepass:92
+msgid "Interrupted..."
+msgstr ""
+
+#: bin/mmsitepass:98
+msgid "Password changed."
+msgstr ""
+
+#: bin/mmsitepass:100
+msgid "Password change failed."
+msgstr ""
+
+#: bin/newlist:19
+msgid ""
+"Create a new, unpopulated mailing list.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname [listadmin-addr [admin-password]]]\n"
+"\n"
+"Options:\n"
+"\n"
+" -l language\n"
+" --language language\n"
+" Make the list's preferred language `language', which must be a two\n"
+" letter language code.\n"
+"\n"
+" -q/--quiet\n"
+" Normally the administrator is notified by email (after a prompt) "
+"that\n"
+" their list has been created. This option suppresses the prompt and\n"
+" notification.\n"
+"\n"
+" -h/--help\n"
+" Print this help text and exit.\n"
+"\n"
+"You can specify as many of the arguments as you want on the command line:\n"
+"you will be prompted for the missing ones.\n"
+"\n"
+"Every Mailman list has two parameters which define the default host name "
+"for\n"
+"outgoing email, and the default URL for all web interfaces. When you\n"
+"configured Mailman, certain defaults were calculated, but if you are "
+"running\n"
+"multiple virtual Mailman sites, then the defaults may not be appropriate "
+"for\n"
+"the list you are creating.\n"
+"\n"
+"You can specify the domain to create your new list in by spelling the "
+"listname\n"
+"like so:\n"
+"\n"
+" mylist@www.mydom.ain\n"
+"\n"
+"where `www.mydom.ain' should be the base hostname for the URL to this "
+"virtual\n"
+"hosts's lists. E.g. with is setting people will view the general list\n"
+"overviews at http://www.mydom.ain/mailman/listinfo. Also, www.mydom.ain\n"
+"should be a key in the VIRTUAL_HOSTS mapping in mm_cfg.py/Defaults.py. It\n"
+"will be looked up to give the email hostname. If this can't be found, then\n"
+"www.mydom.ain will be used for both the web interface and the email\n"
+"interface.\n"
+"\n"
+"If you spell the list name as just `mylist', then the email hostname will "
+"be\n"
+"taken from DEFAULT_EMAIL_HOST and the url will be taken from DEFAULT_URL "
+"(as\n"
+"defined in your Defaults.py file or overridden by settings in mm_cfg.py).\n"
+"\n"
+"Note that listnames are forced to lowercase.\n"
+msgstr ""
+
+#: bin/newlist:118
+msgid "Unknown language: %(lang)s"
+msgstr ""
+
+#: bin/newlist:123
+msgid "Enter the name of the list: "
+msgstr ""
+
+#: bin/newlist:140
+msgid "Enter the email of the person running the list: "
+msgstr ""
+
+#: bin/newlist:145
+msgid "Initial %(listname)s password: "
+msgstr ""
+
+#: bin/newlist:149
+msgid "The list password cannot be empty"
+msgstr ""
+
+#: bin/newlist:190
+msgid "Hit enter to notify %(listname)s owner..."
+msgstr ""
+
+#: bin/qrunner:19
+msgid ""
+"Run one or more qrunners, once or repeatedly.\n"
+"\n"
+"Each named runner class is run in round-robin fashion. In other words, the\n"
+"first named runner is run to consume all the files currently in its\n"
+"directory. When that qrunner is done, the next one is run to consume all "
+"the\n"
+"files in /its/ directory, and so on. The number of total iterations can be\n"
+"given on the command line.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" -r runner[:slice:range]\n"
+" --runner=runner[:slice:range]\n"
+" Run the named qrunner, which must be one of the strings returned by\n"
+" the -l option. Optional slice:range if given, is used to assign\n"
+" multiple qrunner processes to a queue. range is the total number "
+"of\n"
+" qrunners for this queue while slice is the number of this qrunner "
+"from\n"
+" [0..range).\n"
+"\n"
+" If using the slice:range form, you better make sure that each "
+"qrunner\n"
+" for the queue is given the same range value. If slice:runner is "
+"not\n"
+" given, then 1:1 is used.\n"
+"\n"
+" Multiple -r options may be given, in which case each qrunner will "
+"run\n"
+" once in round-robin fashion. The special runner `All' is shorthand\n"
+" for a qrunner for each listed by the -l option.\n"
+"\n"
+" --once\n"
+" -o\n"
+" Run each named qrunner exactly once through its main loop. "
+"Otherwise,\n"
+" each qrunner runs indefinitely, until the process receives a "
+"SIGTERM\n"
+" or SIGINT.\n"
+"\n"
+" -l/--list\n"
+" Shows the available qrunner names and exit.\n"
+"\n"
+" -v/--verbose\n"
+" Spit out more debugging information to the logs/qrunner log file.\n"
+"\n"
+" -s/--subproc\n"
+" This should only be used when running qrunner as a subprocess of "
+"the\n"
+" mailmanctl startup script. It changes some of the exit-on-error\n"
+" behavior to work better with that framework.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+"\n"
+"runner is required unless -l or -h is given, and it must be one of the "
+"names\n"
+"displayed by the -l switch.\n"
+msgstr ""
+
+#: bin/qrunner:176
+msgid "%(name)s runs the %(runnername)s qrunner"
+msgstr ""
+
+#: bin/qrunner:177
+msgid "All runs all the above qrunners"
+msgstr ""
+
+#: bin/qrunner:213
+msgid "No runner name given."
+msgstr ""
+
+#: bin/remove_members:19
+msgid ""
+"Remove members from a list.\n"
+"\n"
+"Usage:\n"
+" remove_members [options] [listname] [addr1 ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" --file=file\n"
+" -f file\n"
+" Remove member addresses found in the given file. If file is\n"
+" `-', read stdin.\n"
+"\n"
+" --all\n"
+" -a\n"
+" Remove all members of the mailing list.\n"
+" (mutually exclusive with --fromall)\n"
+"\n"
+" --fromall\n"
+" Removes the given addresses from all the lists on this system\n"
+" regardless of virtual domains if you have any. This option cannot "
+"be\n"
+" used -a/--all. Also, you should not specify a listname when using "
+"this\n"
+" option.\n"
+"\n"
+" --nouserack\n"
+" -n\n"
+" Don't send the user acknowledgements.\n"
+"\n"
+" --noadminack\n"
+" -N\n"
+" Don't send the admin acknowledgements.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname is the name of the mailing list to use.\n"
+"\n"
+" addr1 ... are additional addresses to remove.\n"
+"\n"
+msgstr ""
+
+#: bin/remove_members:147
+msgid "Could not open file for reading: %(filename)s."
+msgstr ""
+
+#: bin/remove_members:154
+msgid "Error opening list %(listname)s... skipping."
+msgstr ""
+
+#: bin/remove_members:164
+msgid "No such member: %(addr)s"
+msgstr ""
+
+#: bin/remove_members:171
+msgid "User `%(addr)s' removed from list: %(listname)s."
+msgstr ""
+
+#: bin/rmlist:19
+msgid ""
+"Remove the components of a mailing list with impunity - beware!\n"
+"\n"
+"This removes (almost) all traces of a mailing list. By default, the lists\n"
+"archives are not removed, which is very handy for retiring old lists.\n"
+"\n"
+"Usage:\n"
+" rmlist [-a] [-h] listname\n"
+"\n"
+"Where:\n"
+" --archives\n"
+" -a\n"
+" Remove the list's archives too, or if the list has already been\n"
+" deleted, remove any residual archives.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+msgstr ""
+
+#: bin/rmlist:66 bin/rmlist:69
+msgid "Removing %(msg)s"
+msgstr ""
+
+#: bin/rmlist:72
+msgid "%(listname)s %(msg)s not found as %(dir)s"
+msgstr ""
+
+#: bin/rmlist:96
+msgid "No such list (or list already deleted): %(listname)s"
+msgstr ""
+
+#: bin/rmlist:98
+msgid "No such list: %(listname)s. Removing its residual archives."
+msgstr ""
+
+#: bin/rmlist:102
+msgid "Not removing archives. Reinvoke with -a to remove them."
+msgstr ""
+
+#: bin/rmlist:116
+msgid "list info"
+msgstr ""
+
+#: bin/rmlist:122 bin/rmlist:124
+msgid "private archives"
+msgstr ""
+
+#: bin/rmlist:126 bin/rmlist:128
+msgid "public archives"
+msgstr ""
+
+#: bin/sync_members:19
+msgid ""
+"Synchronize a mailing list's membership with a flat file.\n"
+"\n"
+"This script is useful if you have a Mailman mailing list and a sendmail\n"
+":include: style list of addresses (also as is used in Majordomo). For "
+"every\n"
+"address in the file that does not appear in the mailing list, the address "
+"is\n"
+"added. For every address in the mailing list that does not appear in the\n"
+"file, the address is removed. Other options control what happens when an\n"
+"address is added or removed.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] -f file listname\n"
+"\n"
+"Where `options' are:\n"
+"\n"
+" --no-change\n"
+" -n\n"
+" Don't actually make the changes. Instead, print out what would be\n"
+" done to the list.\n"
+"\n"
+" --welcome-msg[=<yes|no>]\n"
+" -w[=<yes|no>]\n"
+" Sets whether or not to send the newly added members a welcome\n"
+" message, overriding whatever the list's `send_welcome_msg' setting\n"
+" is. With -w=yes or -w, the welcome message is sent. With -w=no, "
+"no\n"
+" message is sent.\n"
+"\n"
+" --goodbye-msg[=<yes|no>]\n"
+" -g[=<yes|no>]\n"
+" Sets whether or not to send the goodbye message to removed members,\n"
+" overriding whatever the list's `send_goodbye_msg' setting is. With\n"
+" -g=yes or -g, the goodbye message is sent. With -g=no, no message "
+"is\n"
+" sent.\n"
+"\n"
+" --digest[=<yes|no>]\n"
+" -d[=<yes|no>]\n"
+" Selects whether to make newly added members receive messages in\n"
+" digests. With -d=yes or -d, they become digest members. With -"
+"d=no\n"
+" (or if no -d option given) they are added as regular members.\n"
+"\n"
+" --notifyadmin[=<yes|no>]\n"
+" -a[=<yes|no>]\n"
+" Specifies whether the admin should be notified for each "
+"subscription\n"
+" or unsubscription. If you're adding a lot of addresses, you\n"
+" definitely want to turn this off! With -a=yes or -a, the admin is\n"
+" notified. With -a=no, the admin is not notified. With no -a "
+"option,\n"
+" the default for the list is used.\n"
+"\n"
+" --file <filename | ->\n"
+" -f <filename | ->\n"
+" This option is required. It specifies the flat file to synchronize\n"
+" against. Email addresses must appear one per line. If filename is\n"
+" `-' then stdin is used.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this message.\n"
+"\n"
+" listname\n"
+" Required. This specifies the list to synchronize.\n"
+msgstr ""
+
+#: bin/sync_members:115
+msgid "Bad choice: %(yesno)s"
+msgstr ""
+
+#: bin/sync_members:138
+msgid "Dry run mode"
+msgstr ""
+
+#: bin/sync_members:159
+msgid "Only one -f switch allowed"
+msgstr ""
+
+#: bin/sync_members:163
+msgid "No argument to -f given"
+msgstr ""
+
+#: bin/sync_members:172
+msgid "Illegal option: %(opt)s"
+msgstr ""
+
+#: bin/sync_members:178
+msgid "No listname given"
+msgstr ""
+
+#: bin/sync_members:182
+msgid "Must have a listname and a filename"
+msgstr ""
+
+#: bin/sync_members:191
+msgid "Cannot read address file: %(filename)s: %(msg)s"
+msgstr ""
+
+#: bin/sync_members:203
+msgid "Ignore : %(addr)30s"
+msgstr ""
+
+#: bin/sync_members:212
+msgid "Invalid : %(addr)30s"
+msgstr ""
+
+#: bin/sync_members:215
+msgid "You must fix the preceding invalid addresses first."
+msgstr ""
+
+#: bin/sync_members:259
+msgid "Added : %(s)s"
+msgstr ""
+
+#: bin/sync_members:278
+msgid "Removed: %(s)s"
+msgstr ""
+
+#: bin/transcheck:18
+msgid ""
+"\n"
+"Check a given Mailman translation, making sure that variables and\n"
+"tags referenced in translation are the same variables and tags in\n"
+"the original templates and catalog.\n"
+"\n"
+"Usage:\n"
+"\n"
+"cd $MAILMAN_DIR\n"
+"%(program)s [-q] <lang>\n"
+"\n"
+"Where <lang> is your country code (e.g. 'it' for Italy) and -q is\n"
+"to ask for a brief summary.\n"
+msgstr ""
+
+#: bin/transcheck:57
+msgid "check a translation comparing with the original string"
+msgstr ""
+
+#: bin/transcheck:64
+msgid "scan a string from the original file"
+msgstr ""
+
+#: bin/transcheck:72
+msgid "scan a translated string"
+msgstr ""
+
+#: bin/transcheck:83
+msgid "check for differences between checked in and checked out"
+msgstr ""
+
+#: bin/transcheck:116
+msgid "parse a .po file extracting msgids and msgstrs"
+msgstr ""
+
+#: bin/transcheck:135
+msgid ""
+"States table for the finite-states-machine parser:\n"
+" 0 idle\n"
+" 1 filename-or-comment\n"
+" 2 msgid\n"
+" 3 msgstr\n"
+" 4 end\n"
+" "
+msgstr ""
+
+#: bin/transcheck:272
+msgid ""
+"check a translated template against the original one\n"
+" search also <MM-*> tags if html is not zero"
+msgstr ""
+
+#: bin/transcheck:319
+msgid "scan the po file comparing msgids with msgstrs"
+msgstr ""
+
+#: bin/unshunt:19
+msgid ""
+"Move a message from the shunt queue to the original queue.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [directory]\n"
+"\n"
+"Where:\n"
+"\n"
+" -h / --help\n"
+" Print help and exit.\n"
+"\n"
+"Optional `directory' specifies a directory to dequeue from other than\n"
+"qfiles/shunt.\n"
+msgstr ""
+
+#: bin/unshunt:81
+msgid ""
+"Cannot unshunt message %(filebase)s, skipping:\n"
+"%(e)s"
+msgstr ""
+
+#: bin/update:19
+msgid ""
+"Perform all necessary upgrades.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -f/--force\n"
+" Force running the upgrade procedures. Normally, if the version "
+"number\n"
+" of the installed Mailman matches the current version number (or a\n"
+" `downgrade' is detected), nothing will be done.\n"
+"\n"
+" -h/--help\n"
+" Print this text and exit.\n"
+"\n"
+"Use this script to help you update to the latest release of Mailman from\n"
+"some previous version. It knows about versions back to 1.0b4 (?).\n"
+msgstr ""
+
+#: bin/update:102
+msgid "Fixing language templates: %(listname)s"
+msgstr ""
+
+#: bin/update:191 bin/update:466
+msgid "WARNING: could not acquire lock for list: %(listname)s"
+msgstr ""
+
+#: bin/update:210
+msgid "Resetting %(n)s BYBOUNCEs disabled addrs with no bounce info"
+msgstr ""
+
+#: bin/update:216
+msgid "Updating the held requests database."
+msgstr ""
+
+#: bin/update:238
+msgid ""
+"For some reason, %(mbox_dir)s exists as a file. This won't work with\n"
+"b6, so I'm renaming it to %(mbox_dir)s.tmp and proceeding."
+msgstr ""
+
+#: bin/update:250
+msgid ""
+"\n"
+"%(listname)s has both public and private mbox archives. Since this list\n"
+"currently uses private archiving, I'm installing the private mbox archive\n"
+"-- %(o_pri_mbox_file)s -- as the active archive, and renaming\n"
+" %(o_pub_mbox_file)s\n"
+"to\n"
+" %(o_pub_mbox_file)s.preb6\n"
+"\n"
+"You can integrate that into the archives if you want by using the 'arch'\n"
+"script.\n"
+msgstr ""
+
+#: bin/update:265
+msgid ""
+"%s has both public and private mbox archives. Since this list\n"
+"currently uses public archiving, I'm installing the public mbox file\n"
+"archive file (%s) as the active one, and renaming\n"
+" %s\n"
+" to\n"
+" %s.preb6\n"
+"\n"
+"You can integrate that into the archives if you want by using the 'arch'\n"
+"script.\n"
+msgstr ""
+
+#: bin/update:282
+msgid "- updating old private mbox file"
+msgstr ""
+
+#: bin/update:290
+msgid ""
+" unknown file in the way, moving\n"
+" %(o_pri_mbox_file)s\n"
+" to\n"
+" %(newname)s"
+msgstr ""
+
+#: bin/update:297 bin/update:320
+msgid ""
+" looks like you have a really recent CVS installation...\n"
+" you're either one brave soul, or you already ran me"
+msgstr ""
+
+#: bin/update:306
+msgid "- updating old public mbox file"
+msgstr ""
+
+#: bin/update:314
+msgid ""
+" unknown file in the way, moving\n"
+" %(o_pub_mbox_file)s\n"
+" to\n"
+" %(newname)s"
+msgstr ""
+
+#: bin/update:345
+msgid "- This list looks like it might have <= b4 list templates around"
+msgstr ""
+
+#: bin/update:352
+msgid "- moved %(o_tmpl)s to %(n_tmpl)s"
+msgstr ""
+
+#: bin/update:354
+msgid "- both %(o_tmpl)s and %(n_tmpl)s exist, leaving untouched"
+msgstr ""
+
+#: bin/update:384
+msgid "removing directory %(src)s and everything underneath"
+msgstr ""
+
+#: bin/update:387
+msgid "removing %(src)s"
+msgstr ""
+
+#: bin/update:391
+msgid "Warning: couldn't remove %(src)s -- %(rest)s"
+msgstr ""
+
+#: bin/update:396
+msgid "couldn't remove old file %(pyc)s -- %(rest)s"
+msgstr ""
+
+#: bin/update:400
+msgid "updating old qfiles"
+msgstr ""
+
+#: bin/update:422
+msgid "getting rid of old source files"
+msgstr ""
+
+#: bin/update:432
+msgid "no lists == nothing to do, exiting"
+msgstr ""
+
+#: bin/update:439
+msgid ""
+"fixing all the perms on your old html archives to work with b6\n"
+"If your archives are big, this could take a minute or two..."
+msgstr ""
+
+#: bin/update:444
+msgid "done"
+msgstr ""
+
+#: bin/update:446
+msgid "Updating mailing list: %(listname)s"
+msgstr ""
+
+#: bin/update:449
+msgid "Updating Usenet watermarks"
+msgstr ""
+
+#: bin/update:454
+msgid "- nothing to update here"
+msgstr ""
+
+#: bin/update:477
+msgid "- usenet watermarks updated and gate_watermarks removed"
+msgstr ""
+
+#: bin/update:487
+msgid "Updating old pending_subscriptions.db database"
+msgstr ""
+
+#: bin/update:504
+msgid ""
+"\n"
+"\n"
+"NOTE NOTE NOTE NOTE NOTE\n"
+"\n"
+" You are upgrading an existing Mailman installation, but I can't tell "
+"what\n"
+" version you were previously running.\n"
+"\n"
+" If you are upgrading from Mailman 1.0b9 or earlier you will need to\n"
+" manually update your mailing lists. For each mailing list you need to\n"
+" copy the file templates/options.html lists/<listname>/options.html.\n"
+"\n"
+" However, if you have edited this file via the Web interface, you will "
+"have\n"
+" to merge your changes into this file, otherwise you will lose your\n"
+" changes.\n"
+"\n"
+"NOTE NOTE NOTE NOTE NOTE\n"
+"\n"
+msgstr ""
+
+#: bin/update:561
+msgid "No updates are necessary."
+msgstr ""
+
+#: bin/update:564
+msgid ""
+"Downgrade detected, from version %(hexlversion)s to version %(hextversion)s\n"
+"This is probably not safe.\n"
+"Exiting."
+msgstr ""
+
+#: bin/update:569
+msgid "Upgrading from version %(hexlversion)s to %(hextversion)s"
+msgstr ""
+
+#: bin/update:578
+msgid ""
+"\n"
+"ERROR:\n"
+"\n"
+"The locks for some lists could not be acquired. This means that either\n"
+"Mailman was still active when you upgraded, or there were stale locks in "
+"the\n"
+"%(lockdir)s directory.\n"
+"\n"
+"You must put Mailman into a quiescent state and remove all stale locks, "
+"then\n"
+"re-run \"make update\" manually. See the INSTALL and UPGRADE files for "
+"details.\n"
+msgstr ""
+
+#: bin/version:19
+msgid "Print the Mailman version.\n"
+msgstr ""
+
+#: bin/version:26
+msgid "Using Mailman version:"
+msgstr ""
+
+#: bin/withlist:19
+msgid ""
+"General framework for interacting with a mailing list object.\n"
+"\n"
+"There are two ways to use this script: interactively or programmatically.\n"
+"Using it interactively allows you to play with, examine and modify a "
+"MailList\n"
+"object from Python's interactive interpreter. When running interactively, "
+"a\n"
+"MailList object called `m' will be available in the global namespace. It "
+"also\n"
+"loads the class MailList into the global namespace.\n"
+"\n"
+"Programmatically, you can write a function to operate on a MailList object,\n"
+"and this script will take care of the housekeeping (see below for "
+"examples).\n"
+"In that case, the general usage syntax is:\n"
+"\n"
+"%% bin/withlist [options] listname [args ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" -l / --lock\n"
+" Lock the list when opening. Normally the list is opened unlocked\n"
+" (e.g. for read-only operations). You can always lock the file "
+"after\n"
+" the fact by typing `m.Lock()'\n"
+"\n"
+" Note that if you use this option, you should explicitly call m.Save"
+"()\n"
+" before exiting, since the interpreter's clean up procedure will not\n"
+" automatically save changes to the MailList object (but it will "
+"unlock\n"
+" the list).\n"
+"\n"
+" -i / --interactive\n"
+" Leaves you at an interactive prompt after all other processing is\n"
+" complete. This is the default unless the -r option is given.\n"
+"\n"
+" --run [module.]callable\n"
+" -r [module.]callable\n"
+" This can be used to run a script with the opened MailList object.\n"
+" This works by attempting to import `module' (which must already be\n"
+" accessible on your sys.path), and then calling `callable' from the\n"
+" module. callable can be a class or function; it is called with the\n"
+" MailList object as the first argument. If additional args are "
+"given\n"
+" on the command line, they are passed as subsequent positional args "
+"to\n"
+" the callable.\n"
+"\n"
+" Note that `module.' is optional; if it is omitted then a module "
+"with\n"
+" the name `callable' will be imported.\n"
+"\n"
+" The global variable `r' will be set to the results of this call.\n"
+"\n"
+" --all / -a\n"
+" This option only works with the -r option. Use this if you want to\n"
+" execute the script on all mailing lists. When you use -a you "
+"should\n"
+" not include a listname argument on the command line. The variable "
+"`r'\n"
+" will be a list of all the results.\n"
+"\n"
+" --quiet / -q\n"
+" Suppress all status messages.\n"
+"\n"
+" --help / -h\n"
+" Print this message and exit\n"
+"\n"
+"\n"
+"Here's an example of how to use the -r option. Say you have a file in the\n"
+"Mailman installation directory called `listaddr.py', with the following\n"
+"two functions:\n"
+"\n"
+"def listaddr(mlist):\n"
+" print mlist.GetListEmail()\n"
+"\n"
+"def requestaddr(mlist):\n"
+" print mlist.GetRequestEmail()\n"
+"\n"
+"Now, from the command line you can print the list's posting address by "
+"running\n"
+"the following from the command line:\n"
+"\n"
+"%% bin/withlist -r listaddr mylist\n"
+"Loading list: mylist (unlocked)\n"
+"Importing listaddr ...\n"
+"Running listaddr.listaddr() ...\n"
+"mylist@myhost.com\n"
+"\n"
+"And you can print the list's request address by running:\n"
+"\n"
+"%% bin/withlist -r listaddr.requestaddr mylist\n"
+"Loading list: mylist (unlocked)\n"
+"Importing listaddr ...\n"
+"Running listaddr.requestaddr() ...\n"
+"mylist-request@myhost.com\n"
+"\n"
+"As another example, say you wanted to change the password for a particular\n"
+"user on a particular list. You could put the following function in a file\n"
+"called `changepw.py':\n"
+"\n"
+"from Mailman.Errors import NotAMember\n"
+"\n"
+"def changepw(mlist, addr, newpasswd):\n"
+" try:\n"
+" mlist.setMemberPassword(addr, newpasswd)\n"
+" mlist.Save()\n"
+" except NotAMember:\n"
+" print 'No address matched:', addr\n"
+"\n"
+"and run this from the command line:\n"
+"%% bin/withlist -l -r changepw mylist somebody@somewhere.org foobar\n"
+msgstr ""
+
+#: bin/withlist:151
+msgid ""
+"Unlock a locked list, but do not implicitly Save() it.\n"
+"\n"
+" This does not get run if the interpreter exits because of a signal, or "
+"if\n"
+" os._exit() is called. It will get called if an exception occurs "
+"though.\n"
+" "
+msgstr ""
+
+#: bin/withlist:162
+msgid "Unlocking (but not saving) list: %(listname)s"
+msgstr ""
+
+#: bin/withlist:166
+msgid "Finalizing"
+msgstr ""
+
+#: bin/withlist:175
+msgid "Loading list %(listname)s"
+msgstr ""
+
+#: bin/withlist:177
+msgid "(locked)"
+msgstr ""
+
+#: bin/withlist:179
+msgid "(unlocked)"
+msgstr ""
+
+#: bin/withlist:184
+msgid "Unknown list: %(listname)s"
+msgstr ""
+
+#: bin/withlist:223
+msgid "No list name supplied."
+msgstr ""
+
+#: bin/withlist:226
+msgid "--all requires --run"
+msgstr ""
+
+#: bin/withlist:246
+msgid "Importing %(module)s..."
+msgstr ""
+
+#: bin/withlist:249
+msgid "Running %(module)s.%(callable)s()..."
+msgstr ""
+
+#: bin/withlist:270
+msgid "The variable `m' is the %(listname)s MailList instance"
+msgstr ""
+
+#: cron/bumpdigests:19
+msgid ""
+"Increment the digest volume number and reset the digest number to one.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" --help/-h\n"
+" Print this message and exit.\n"
+"\n"
+"The lists named on the command line are bumped. If no list names are "
+"given,\n"
+"all lists are bumped.\n"
+msgstr ""
+
+#: cron/checkdbs:19
+msgid ""
+"Invoked by cron, this checks for pending moderation requests and mails the\n"
+"list moderators if necessary.\n"
+msgstr ""
+
+#: cron/checkdbs:81
+msgid "%(count)d %(realname)s moderator request(s) waiting"
+msgstr ""
+
+#: cron/checkdbs:100
+msgid "Pending subscriptions:"
+msgstr ""
+
+#: cron/checkdbs:109
+msgid ""
+"\n"
+"Pending posts:"
+msgstr ""
+
+#: cron/checkdbs:114
+msgid ""
+"From: %(sender)s on %(date)s\n"
+"Subject: %(subject)s\n"
+"Cause: %(reason)s"
+msgstr ""
+
+#: cron/disabled:19
+msgid ""
+"Process disabled members, recommended once per day.\n"
+"\n"
+"This script cruises through every mailing list looking for members whose\n"
+"delivery is disabled. If they have been disabled due to bounces, they will\n"
+"receive another notification, or they may be removed if they've received "
+"the\n"
+"maximum number of notifications.\n"
+"\n"
+"Use the --byadmin, --byuser, and --unknown flags to also send notifications "
+"to\n"
+"members whose accounts have been disabled for those reasons. Use --all to\n"
+"send the notification to all disabled members.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -h / --help\n"
+" Print this message and exit.\n"
+"\n"
+" -o / --byadmin\n"
+" Also send notifications to any member disabled by the list\n"
+" owner/administrator.\n"
+"\n"
+" -m / --byuser\n"
+" Also send notifications to any member disabled by themselves.\n"
+"\n"
+" -u / --unknown\n"
+" Also send notifications to any member disabled for unknown reasons\n"
+" (usually a legacy disabled address).\n"
+"\n"
+" -b / --notbybounce\n"
+" Don't send notifications to members disabled because of bounces "
+"(the\n"
+" default is to notify bounce disabled members).\n"
+"\n"
+" -a / --all\n"
+" Send notifications to all disabled members.\n"
+"\n"
+" -f / --force\n"
+" Send notifications to disabled members even if they're not due a "
+"new\n"
+" notification yet.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" Process only the given list, otherwise do all lists.\n"
+msgstr ""
+
+#: cron/disabled:143
+msgid "[disabled by periodic sweep and cull, no message available]"
+msgstr ""
+
+#: cron/gate_news:19
+msgid ""
+"Poll the NNTP servers for messages to be gatewayed to mailing lists.\n"
+"\n"
+"Usage: gate_news [options]\n"
+"\n"
+"Where options are\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this text and exit.\n"
+"\n"
+msgstr ""
+
+#: cron/mailpasswds:19
+msgid ""
+"Send password reminders for all lists to all users.\n"
+"\n"
+"This program scans all mailing lists and collects users and their "
+"passwords,\n"
+"grouped by the list's host_name if mm_cfg.VIRTUAL_HOST_OVERVIEW is true. "
+"Then\n"
+"one email message is sent to each unique user (per-virtual host) containing\n"
+"the list passwords and options url for the user. The password reminder "
+"comes\n"
+"from the mm_cfg.MAILMAN_SITE_LIST, which must exist.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -l listname\n"
+" --listname=listname\n"
+" Send password reminders for the named list only. If omitted,\n"
+" reminders are sent for all lists. Multiple -l/--listname options "
+"are\n"
+" allowed.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+msgstr ""
+
+#: cron/mailpasswds:111
+msgid "Site list is missing: %(sitelistname)s"
+msgstr ""
+
+#: cron/mailpasswds:179
+msgid "Password // URL"
+msgstr "Wachtwoord - webpagina"
+
+#: cron/mailpasswds:199
+msgid "%(host)s mailing list memberships reminder"
+msgstr ""
+
+#: cron/nightly_gzip:19
+msgid ""
+"Re-generate the Pipermail gzip'd archive flat files.\n"
+"\n"
+"This script should be run nightly from cron. When run from the command "
+"line,\n"
+"the following usage is understood:\n"
+"\n"
+"Usage: %(program)s [-v] [-h] [listnames]\n"
+"\n"
+"Where:\n"
+" --verbose\n"
+" -v\n"
+" print each file as it's being gzip'd\n"
+"\n"
+" --help\n"
+" -h\n"
+" print this message and exit\n"
+"\n"
+" listnames\n"
+" Optionally, only compress the .txt files for the named lists. "
+"Without \n"
+" this, all archivable lists are processed.\n"
+"\n"
+msgstr ""
+
+#: cron/senddigests:19
+msgid ""
+"Dispatch digests for lists w/pending messages and digest_send_periodic set.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -h / --help\n"
+" Print this message and exit.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" Send the digest for the given list only, otherwise the digests for "
+"all\n"
+" lists are sent out.\n"
+msgstr ""
+
+#~ msgid "A confirmation email has been sent separately."
+#~ msgstr "Een bevestigings email is appart verzonden."
diff --git a/messages/no/LC_MESSAGES/mailman.mo b/messages/no/LC_MESSAGES/mailman.mo
new file mode 100644
index 00000000..bfc0b3a1
--- /dev/null
+++ b/messages/no/LC_MESSAGES/mailman.mo
Binary files differ
diff --git a/messages/no/LC_MESSAGES/mailman.po b/messages/no/LC_MESSAGES/mailman.po
new file mode 100644
index 00000000..b1b90444
--- /dev/null
+++ b/messages/no/LC_MESSAGES/mailman.po
@@ -0,0 +1,11778 @@
+# Norwegian catalog.
+# Translated 2001, 2002, by
+# Daniel Buchmann <db@bibsys.no>
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Mailman 2.1b4+\n"
+"POT-Creation-Date: Tue Dec 24 13:41:28 2002\n"
+"PO-Revision-Date: 2002-12-25 15:10+0100\n"
+"Last-Translator: Daniel Buchmann <Daniel.Buchmann@bibsys.no>\n"
+"Language-Team: Norwegian <no@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: quoted-printable\n"
+"Generated-By: pygettext.py 1.3\n"
+
+#: Mailman/Archiver/HyperArch.py:112
+msgid "size not available"
+msgstr "størrelsen er ikke tilgjengelig"
+
+#: Mailman/Archiver/HyperArch.py:118
+msgid " %(size)i bytes "
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:249 Mailman/Archiver/HyperArch.py:405
+#: Mailman/Archiver/HyperArch.py:963 Mailman/Archiver/HyperArch.py:1127
+msgid " at "
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:434
+msgid "Previous message:"
+msgstr "Forrige melding:"
+
+#: Mailman/Archiver/HyperArch.py:456
+msgid "Next message:"
+msgstr "Neste melding:"
+
+#: Mailman/Archiver/HyperArch.py:609 Mailman/Archiver/HyperArch.py:645
+msgid "thread"
+msgstr "tr&aring;d"
+
+#: Mailman/Archiver/HyperArch.py:610 Mailman/Archiver/HyperArch.py:646
+msgid "subject"
+msgstr "tittel"
+
+#: Mailman/Archiver/HyperArch.py:611 Mailman/Archiver/HyperArch.py:647
+msgid "author"
+msgstr "forfatter"
+
+#: Mailman/Archiver/HyperArch.py:612 Mailman/Archiver/HyperArch.py:648
+msgid "date"
+msgstr "dato"
+
+#: Mailman/Archiver/HyperArch.py:684
+msgid "<P>Currently, there are no archives. </P>"
+msgstr "<p>Arkivet er for tiden tomt.</p>"
+
+#: Mailman/Archiver/HyperArch.py:721
+msgid "Gzip'd Text%(sz)s"
+msgstr "Gzip'et tekst%(sz)s"
+
+#: Mailman/Archiver/HyperArch.py:726
+msgid "Text%(sz)s"
+msgstr "Tekstt%(sz)s"
+
+#: Mailman/Archiver/HyperArch.py:816
+msgid "figuring article archives\n"
+msgstr "lager arkiv\n"
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "April"
+msgstr "April"
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "February"
+msgstr "Februar"
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "January"
+msgstr "Januar"
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "March"
+msgstr "Mars"
+
+#: Mailman/Archiver/HyperArch.py:827
+msgid "August"
+msgstr "August"
+
+#: Mailman/Archiver/HyperArch.py:827
+msgid "July"
+msgstr "Juli"
+
+#: Mailman/Archiver/HyperArch.py:827
+msgid "June"
+msgstr "Juni"
+
+#: Mailman/Archiver/HyperArch.py:827 Mailman/i18n.py:91
+msgid "May"
+msgstr "Mai"
+
+#: Mailman/Archiver/HyperArch.py:828
+msgid "December"
+msgstr "Desember"
+
+#: Mailman/Archiver/HyperArch.py:828
+msgid "November"
+msgstr "November"
+
+#: Mailman/Archiver/HyperArch.py:828
+msgid "October"
+msgstr "Oktober"
+
+#: Mailman/Archiver/HyperArch.py:828
+msgid "September"
+msgstr "September"
+
+#: Mailman/Archiver/HyperArch.py:836
+msgid "First"
+msgstr "Første"
+
+#: Mailman/Archiver/HyperArch.py:836
+msgid "Fourth"
+msgstr "Fjerde"
+
+#: Mailman/Archiver/HyperArch.py:836
+msgid "Second"
+msgstr "Andre"
+
+#: Mailman/Archiver/HyperArch.py:836
+msgid "Third"
+msgstr "Tredje"
+
+#: Mailman/Archiver/HyperArch.py:838
+msgid "%(ord)s quarter %(year)i"
+msgstr "%(ord)s kvartal %(year)i"
+
+#: Mailman/Archiver/HyperArch.py:845
+msgid "%(month)s %(year)i"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:850
+msgid "The Week Of Monday %(day)i %(month)s %(year)i"
+msgstr "Uken med mandag %(day)i %(month)s %(year)i"
+
+#: Mailman/Archiver/HyperArch.py:854
+msgid "%(day)i %(month)s %(year)i"
+msgstr ""
+
+#: Mailman/Archiver/HyperArch.py:951
+msgid "Computing threaded index\n"
+msgstr "Bygger innholdsfortegnelse\n"
+
+#: Mailman/Archiver/HyperArch.py:1206
+msgid "Updating HTML for article %(seq)s"
+msgstr "Oppdaterer HTML for artikkel %(seq)s"
+
+#: Mailman/Archiver/HyperArch.py:1213
+msgid "article file %(filename)s is missing!"
+msgstr "artikkelfilen %(filename)s mangler!"
+
+#: Mailman/Archiver/pipermail.py:168 Mailman/Archiver/pipermail.py:169
+msgid "No subject"
+msgstr "Uten tittel"
+
+#: Mailman/Archiver/pipermail.py:269
+msgid "Creating archive directory "
+msgstr "Oppretter katalog for arkivet"
+
+#: Mailman/Archiver/pipermail.py:281
+msgid "Reloading pickled archive state"
+msgstr "Laster arkivets tilstand fra en pickle"
+
+#: Mailman/Archiver/pipermail.py:308
+msgid "Pickling archive state into "
+msgstr "Lagrer arkivets tilstand i en pickle: "
+
+#: Mailman/Archiver/pipermail.py:419
+msgid "Updating index files for archive [%(archive)s]"
+msgstr "Oppdaterer indeksfil for arkivet [%(archive)s]"
+
+#: Mailman/Archiver/pipermail.py:452
+msgid " Thread"
+msgstr " Tr&aring;d"
+
+#: Mailman/Archiver/pipermail.py:557
+msgid "#%(counter)05d %(msgid)s"
+msgstr ""
+
+#: Mailman/Bouncer.py:44
+msgid "due to excessive bounces"
+msgstr "på grunn av for mange returmeldinger"
+
+#: Mailman/Bouncer.py:45
+msgid "by yourself"
+msgstr "av deg"
+
+#: Mailman/Bouncer.py:46
+msgid "by the list administrator"
+msgstr "av listeadministratoren"
+
+#: Mailman/Bouncer.py:47 Mailman/Bouncer.py:232
+#: Mailman/Commands/cmd_set.py:182
+msgid "for unknown reasons"
+msgstr "av ukjent grunn"
+
+#: Mailman/Bouncer.py:179
+msgid "disabled"
+msgstr "stoppet"
+
+#: Mailman/Bouncer.py:184
+msgid "Bounce action notification"
+msgstr "Melding om behandling av returmeldinger"
+
+#: Mailman/Bouncer.py:239
+msgid " The last bounce received from you was dated %(date)s"
+msgstr " Sist mottatte returmelding fra deg var datert %(date)s"
+
+#: Mailman/Bouncer.py:264 Mailman/Deliverer.py:126
+#: Mailman/Handlers/Acknowledge.py:44 Mailman/Handlers/CookHeaders.py:236
+#: Mailman/Handlers/Hold.py:214 Mailman/Handlers/Hold.py:249
+#: Mailman/Handlers/ToDigest.py:211 Mailman/ListAdmin.py:235
+msgid "(no subject)"
+msgstr "(uten tittel)"
+
+#: Mailman/Bouncer.py:266
+msgid "[No bounce details are available]"
+msgstr "[Ingen returdetaljer tilgjengelig]"
+
+#: Mailman/Cgi/Auth.py:46
+msgid "Moderator"
+msgstr "Moderator"
+
+#: Mailman/Cgi/Auth.py:48
+msgid "Administrator"
+msgstr "Administrator"
+
+#: Mailman/Cgi/admin.py:70 Mailman/Cgi/admindb.py:89 Mailman/Cgi/confirm.py:55
+#: Mailman/Cgi/edithtml.py:67 Mailman/Cgi/listinfo.py:51
+#: Mailman/Cgi/options.py:71 Mailman/Cgi/private.py:98
+#: Mailman/Cgi/rmlist.py:64 Mailman/Cgi/roster.py:57
+#: Mailman/Cgi/subscribe.py:61
+msgid "No such list <em>%(safelistname)s</em>"
+msgstr "Listen finnes ikke: <em>%(safelistname)s</em>"
+
+#: Mailman/Cgi/admin.py:85 Mailman/Cgi/admindb.py:105
+#: Mailman/Cgi/edithtml.py:85 Mailman/Cgi/private.py:123
+msgid "Authorization failed."
+msgstr "Feil passord"
+
+#: Mailman/Cgi/admin.py:175
+msgid ""
+"You have turned off delivery of both digest and\n"
+" non-digest messages. This is an incompatible state of\n"
+" affairs. You must turn on either digest delivery or\n"
+" non-digest delivery or your mailing list will basically be\n"
+" unusable."
+msgstr ""
+"Du har hverken valgt normal-modus eller sammendrag-modus.\n"
+"Dersom du ikke velger minst én av dem, vil epostlisten bli helt ubrukelig!"
+
+#: Mailman/Cgi/admin.py:179 Mailman/Cgi/admin.py:185 Mailman/Cgi/admin.py:190
+#: Mailman/Cgi/admin.py:1361 Mailman/Gui/GUIBase.py:184
+msgid "Warning: "
+msgstr "Advarsel: "
+
+#: Mailman/Cgi/admin.py:183
+msgid ""
+"You have digest members, but digests are turned\n"
+" off. Those people will not receive mail."
+msgstr ""
+"Det finnes medlemmer p&aring; listen som har valgt sammendrag-modus.\n"
+"Disse vil n&aring; ikke lenger motta epost fra listen,\n"
+"fordi du skrudde av denne m&aring;ten &aring; distribuere epost p&aring;."
+
+#: Mailman/Cgi/admin.py:188
+msgid ""
+"You have regular list members but non-digestified mail is\n"
+" turned off. They will receive mail until you fix this\n"
+" problem."
+msgstr ""
+"Det finnes medlemmer p&aring; listen som har valgt normal-modus.\n"
+"Disse vil n&aring; ikke lenger motta epost fra listen,\n"
+"fordi du skrudde av denne m&aring;ten &aring; distribuere epost p&aring;."
+
+#: Mailman/Cgi/admin.py:212
+msgid "%(hostname)s mailing lists - Admin Links"
+msgstr "Epostlister p&aring; %(hostname)s - Administrativ tilgang"
+
+#: Mailman/Cgi/admin.py:241 Mailman/Cgi/listinfo.py:97
+msgid "Welcome!"
+msgstr "Velkommen!"
+
+#: Mailman/Cgi/admin.py:244 Mailman/Cgi/listinfo.py:100
+msgid "Mailman"
+msgstr "Mailman"
+
+#: Mailman/Cgi/admin.py:248
+msgid ""
+"<p>There currently are no publicly-advertised %(mailmanlink)s\n"
+" mailing lists on %(hostname)s."
+msgstr ""
+"<p>Det er for tiden ingen %(mailmanlink)s epostlister tilgjengelig p&aring; %"
+"(hostname)s.<br> "
+
+#: Mailman/Cgi/admin.py:254
+msgid ""
+"<p>Below is the collection of publicly-advertised\n"
+" %(mailmanlink)s mailing lists on %(hostname)s. Click on a list\n"
+" name to visit the configuration pages for that list."
+msgstr ""
+"<p>Nedenfor finner du %(mailmanlink)s epostlistene som er tilgjengelig "
+"p&aring; %(hostname)s.\n"
+"Klikk p&aring; listens navn for &aring; se konfigurasjonssiden for den."
+
+#: Mailman/Cgi/admin.py:261
+msgid "right "
+msgstr "riktige "
+
+#: Mailman/Cgi/admin.py:263
+msgid ""
+"To visit the administrators configuration page for an\n"
+" unadvertised list, open a URL similar to this one, but with a '/' "
+"and\n"
+" the %(extra)slist name appended. If you have the proper authority,\n"
+" you can also <a href=\"%(creatorurl)s\">create a new mailing list</"
+"a>.\n"
+"\n"
+" <p>General list information can be found at "
+msgstr ""
+"&Oslash;nsker du &aring; administrere en epostliste som ikke vises i listen "
+"nedenfor,\n"
+"legg til '/' og deretter listens %(extra)snavn, p&aring; URLen til denne "
+"websiden.<br>\n"
+"Du kan ogs&aring; <a href=\"%(creatorurl)s\">opprette en ny epostliste</a> "
+"hvis du har tilgang til det.\n"
+"\n"
+"<p>Generell informasjon om listene finner du p&aring; "
+
+#: Mailman/Cgi/admin.py:270
+msgid "the mailing list overview page"
+msgstr "oversikt over epostlister"
+
+#: Mailman/Cgi/admin.py:272
+msgid "<p>(Send questions and comments to "
+msgstr "<p>(Send sp&oslash;rsm&aring;l og kommentarer til "
+
+#: Mailman/Cgi/admin.py:282 Mailman/Cgi/listinfo.py:132 cron/mailpasswds:179
+msgid "List"
+msgstr "Liste"
+
+#: Mailman/Cgi/admin.py:283 Mailman/Cgi/admin.py:549
+#: Mailman/Cgi/listinfo.py:133
+msgid "Description"
+msgstr "Beskrivelse"
+
+#: Mailman/Cgi/admin.py:289 Mailman/Cgi/listinfo.py:139 bin/list_lists:116
+msgid "[no description available]"
+msgstr "[ingen beskrivelse tilgjengelig]"
+
+#: Mailman/Cgi/admin.py:322
+msgid "No valid variable name found."
+msgstr "Fant ingen gyldige variabelnavn."
+
+#: Mailman/Cgi/admin.py:332
+msgid ""
+"%(realname)s Mailing list Configuration Help\n"
+" <br><em>%(varname)s</em> Option"
+msgstr ""
+"Hjelp for oppsett av epostlisten %(realname)s\n"
+"<br>Innstilling: <em>%(varname)s</em>"
+
+#: Mailman/Cgi/admin.py:339
+msgid "Mailman %(varname)s List Option Help"
+msgstr "Innstilling: %(varname)s"
+
+#: Mailman/Cgi/admin.py:357
+msgid ""
+"<em><strong>Warning:</strong> changing this option here\n"
+" could cause other screens to be out-of-sync. Be sure to reload any "
+"other\n"
+" pages that are displaying this option for this mailing list. You can "
+"also\n"
+" "
+msgstr ""
+"<em><strong>MERK:</strong> endrer du noe her, vil endringene ikke "
+"umiddelbart vises p&aring;\n"
+"andre skjermbilder eller vinduer du m&aring;tte ha oppe. Klikk 'oppdater'-"
+"knappen i\n"
+"nettleseren din for de andre vinduene du eventuelt har oppe, om n&oslash;"
+"dvendig."
+
+#: Mailman/Cgi/admin.py:368
+msgid "return to the %(categoryname)s options page."
+msgstr "g&aring; tilbake til %(categoryname)s"
+
+#: Mailman/Cgi/admin.py:383
+msgid "%(realname)s Administration (%(label)s)"
+msgstr "%(realname)s Administrasjon (%(label)s)"
+
+#: Mailman/Cgi/admin.py:384
+msgid "%(realname)s mailing list administration<br>%(label)s Section"
+msgstr "%(realname)s administrasjon<br>%(label)s"
+
+#: Mailman/Cgi/admin.py:400
+msgid "Configuration Categories"
+msgstr "Kategorier"
+
+#: Mailman/Cgi/admin.py:401
+msgid "Other Administrative Activities"
+msgstr "Andre administrative aktiviter"
+
+#: Mailman/Cgi/admin.py:405
+msgid "Tend to pending moderator requests"
+msgstr "Behandle foresp&oslash;rsler"
+
+#: Mailman/Cgi/admin.py:407
+msgid "Go to the general list information page"
+msgstr "G&aring; til listens webside"
+
+#: Mailman/Cgi/admin.py:409
+msgid "Edit the public HTML pages"
+msgstr "Redigere HTML-koden for listens webside"
+
+#: Mailman/Cgi/admin.py:411
+msgid "Go to list archives"
+msgstr "G&aring; til listens arkiv"
+
+#: Mailman/Cgi/admin.py:417
+msgid "Delete this mailing list"
+msgstr "Slette denne epostlisten"
+
+#: Mailman/Cgi/admin.py:418
+msgid " (requires confirmation)<br>&nbsp;<br>"
+msgstr " (krever innlogging)<br>&nbsp;<br>"
+
+#: Mailman/Cgi/admin.py:424
+msgid "Logout"
+msgstr "Logg ut"
+
+#: Mailman/Cgi/admin.py:468
+msgid "Emergency moderation of all list traffic is enabled"
+msgstr "Øyeblikkelig tilbakeholding av meldinger til listen er aktivert"
+
+#: Mailman/Cgi/admin.py:479
+msgid ""
+"Make your changes in the following section, then submit them\n"
+" using the <em>Submit Your Changes</em> button below."
+msgstr ""
+"Gj&oslash;r eventuelle endringer nedenfor, og trykk deretter p&aring; "
+"knappen\n"
+"\"Lagre Endringer\" lengre ned p&aring; siden for &aring; lagre endringene."
+
+#: Mailman/Cgi/admin.py:497
+msgid "Additional Member Tasks"
+msgstr "Flere medlemsinnstillinger"
+
+#: Mailman/Cgi/admin.py:503
+msgid ""
+"<li>Set everyone's moderation bit, including\n"
+" those members not currently visible"
+msgstr ""
+"<li>Skrur av eller p&aring; moderasjon for alle medlemmer av listen,\n"
+"ogs&aring; de som ikke vises her"
+
+#: Mailman/Cgi/admin.py:507
+msgid "Off"
+msgstr "Av"
+
+#: Mailman/Cgi/admin.py:507
+msgid "On"
+msgstr "P&aring;"
+
+#: Mailman/Cgi/admin.py:509
+msgid "Set"
+msgstr "Sett"
+
+#: Mailman/Cgi/admin.py:550
+msgid "Value"
+msgstr "Verdi"
+
+#: Mailman/Cgi/admin.py:604
+msgid ""
+"Badly formed options entry:\n"
+" %(record)s"
+msgstr ""
+"Ugyldig innstilling:\n"
+" %(record)s"
+
+#: Mailman/Cgi/admin.py:662
+msgid "<em>Enter the text below, or...</em><br>"
+msgstr "<em>Skriv inn tekst her, eller...</em><br>"
+
+#: Mailman/Cgi/admin.py:664
+msgid "<br><em>...specify a file to upload</em><br>"
+msgstr ""
+"<br><em>...gi inn navnet p&aring; en fil som inneholder teksten</em><br>"
+
+#: Mailman/Cgi/admin.py:690 Mailman/Cgi/admin.py:693
+msgid "Topic %(i)d"
+msgstr "Emne %(i)d"
+
+#: Mailman/Cgi/admin.py:694
+msgid "Delete"
+msgstr "Slett"
+
+#: Mailman/Cgi/admin.py:695
+msgid "Topic name:"
+msgstr "Navn p&aring; emnet:"
+
+#: Mailman/Cgi/admin.py:697
+msgid "Regexp:"
+msgstr "Regexp-uttrykk:"
+
+#: Mailman/Cgi/admin.py:700 Mailman/Cgi/options.py:943
+msgid "Description:"
+msgstr "Beskrivelse:"
+
+#: Mailman/Cgi/admin.py:704
+msgid "Add new item..."
+msgstr "Legge til en ny..."
+
+#: Mailman/Cgi/admin.py:706
+msgid "...before this one."
+msgstr "..f&oslash;r denne."
+
+#: Mailman/Cgi/admin.py:707
+msgid "...after this one."
+msgstr "...etter denne."
+
+#: Mailman/Cgi/admin.py:742
+msgid "<br>(Edit <b>%(varname)s</b>)"
+msgstr "<br>(Redigere <b>%(varname)s</b>)"
+
+#: Mailman/Cgi/admin.py:744
+msgid "<br>(Details for <b>%(varname)s</b>)"
+msgstr "<br>(Detaljer for <b>%(varname)s</b>)"
+
+#: Mailman/Cgi/admin.py:751
+msgid ""
+"<br><em><strong>Note:</strong>\n"
+" setting this value performs an immediate action but does not modify\n"
+" permanent state.</em>"
+msgstr ""
+"<br><em><strong>Merk:</strong>\n"
+" dersom denne innstillingen settes/endres, vil det bare bli foretatt en "
+"midlertidig endring.</em>"
+
+#: Mailman/Cgi/admin.py:765
+msgid "Mass Subscriptions"
+msgstr "Legge inn nye medlemmer"
+
+#: Mailman/Cgi/admin.py:772
+msgid "Mass Removals"
+msgstr "Fjerne medlemmer"
+
+#: Mailman/Cgi/admin.py:779
+msgid "Membership List"
+msgstr "Liste over medlemmer"
+
+#: Mailman/Cgi/admin.py:786
+msgid "(help)"
+msgstr "(hjelp)"
+
+#: Mailman/Cgi/admin.py:787
+msgid "Find member %(link)s:"
+msgstr "Finne medlem %(link)s:"
+
+#: Mailman/Cgi/admin.py:790
+msgid "Search..."
+msgstr "S&oslash;k..."
+
+#: Mailman/Cgi/admin.py:805
+msgid "Bad regular expression: "
+msgstr "Ugyldig regexp-uttrykk: "
+
+#: Mailman/Cgi/admin.py:861
+msgid "%(allcnt)s members total, %(membercnt)s shown"
+msgstr "Totalt %(allcnt)s medlemmer, bare %(membercnt)s er vist."
+
+#: Mailman/Cgi/admin.py:864
+msgid "%(allcnt)s members total"
+msgstr "Totalt %(allcnt)s medlemmer"
+
+#: Mailman/Cgi/admin.py:887
+msgid "unsub"
+msgstr "meld av"
+
+#: Mailman/Cgi/admin.py:888
+msgid "member address<br>member name"
+msgstr "medlemmets adresse<br>medlemmets navn"
+
+#: Mailman/Cgi/admin.py:889
+msgid "hide"
+msgstr "skjult"
+
+#: Mailman/Cgi/admin.py:889
+msgid "mod"
+msgstr "moderert"
+
+#: Mailman/Cgi/admin.py:890
+msgid "nomail<br>[reason]"
+msgstr "stopp epost<br>[årsak]"
+
+#: Mailman/Cgi/admin.py:891
+msgid "ack"
+msgstr "bekreft"
+
+#: Mailman/Cgi/admin.py:891
+msgid "not metoo"
+msgstr "ikke-mine"
+
+#: Mailman/Cgi/admin.py:892
+msgid "nodupes"
+msgstr "unngå duplikater"
+
+#: Mailman/Cgi/admin.py:893
+msgid "digest"
+msgstr "sammendrag-modus"
+
+#: Mailman/Cgi/admin.py:893
+msgid "plain"
+msgstr "ren tekst"
+
+#: Mailman/Cgi/admin.py:894
+msgid "language"
+msgstr "spr&aring;k"
+
+#: Mailman/Cgi/admin.py:905
+msgid "?"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:906
+msgid "U"
+msgstr "M"
+
+#: Mailman/Cgi/admin.py:907
+msgid "A"
+msgstr "A"
+
+#: Mailman/Cgi/admin.py:908
+msgid "B"
+msgstr "R"
+
+#: Mailman/Cgi/admin.py:979
+msgid "<b>unsub</b> -- Click on this to unsubscribe the member."
+msgstr ""
+"<b>meld av</b> -- Kryss av denne for &aring; melde medlemmet ut av listen."
+
+#: Mailman/Cgi/admin.py:981
+msgid ""
+"<b>mod</b> -- The user's personal moderation flag. If this is\n"
+" set, postings from them will be moderated, otherwise they will be\n"
+" approved."
+msgstr ""
+"<b>mod</b> -- Medlemmets moderasjonsflagg. Dersom dette er avkrysset for et "
+"medlem,\n"
+"vil epost fra medlemmet alltid m&aring;tte godkjennes av moderatoren.\n"
+"Dersom det ikke er krysset av, vil epost fra medlemmet g&aring; til listen."
+
+#: Mailman/Cgi/admin.py:985
+msgid ""
+"<b>hide</b> -- Is the member's address concealed on\n"
+" the list of subscribers?"
+msgstr ""
+"<b>skjult</b> -- Skjul medlemmet fra listens offentlige medlemsoversikt?"
+
+#: Mailman/Cgi/admin.py:987
+msgid ""
+"<b>nomail</b> -- Is delivery to the member disabled? If so, an\n"
+" abbreviation will be given describing the reason for the disabled\n"
+" delivery:\n"
+" <ul><li><b>U</b> -- Delivery was disabled by the user via their\n"
+" personal options page.\n"
+" <li><b>A</b> -- Delivery was disabled by the list\n"
+" administrators.\n"
+" <li><b>B</b> -- Delivery was disabled by the system due to\n"
+" excessive bouncing from the member's address.\n"
+" <li><b>?</b> -- The reason for disabled delivery isn't "
+"known.\n"
+" This is the case for all memberships which were "
+"disabled\n"
+" in older versions of Mailman.\n"
+" </ul>"
+msgstr ""
+"<b>stopp epost</b> -- Stopp levering av epost til medlemmet? Hvis ja, vil "
+"en\n"
+"årsak angis med en bokstav:\n"
+"<ul>\n"
+" <li><b>M</b> -- Medlemmet har satt dette selv via sin personlige "
+"medlemsside.\n"
+" <li><b>A</b> -- Satt av listeadministratoren\n"
+" <li><b>R</b> -- Satt av Mailman grunnet for mange returmeldinger fra "
+"medlemmets epostadresse\n"
+" <li><b>?</b> -- Ukjent årsak. Dette er tilfelle dersom epost ble stoppet "
+"for medlemmet i en tidligere versjon av Mailman.\n"
+"</ul>"
+
+#: Mailman/Cgi/admin.py:1002
+msgid ""
+"<b>ack</b> -- Does the member get acknowledgements of their\n"
+" posts?"
+msgstr ""
+"<b>bekreft</b> -- Send bekreftelse p&aring; hver epost medlemmet sender til "
+"listen?"
+
+#: Mailman/Cgi/admin.py:1005
+msgid ""
+"<b>not metoo</b> -- Does the member want to avoid copies of their\n"
+" own postings?"
+msgstr ""
+"<b>ikke-mine</b> -- Hvis denne er avkrysset, vil ikke medlemmet motta epost "
+"han/hun selv har sendt til listen."
+
+#: Mailman/Cgi/admin.py:1008
+msgid ""
+"<b>nodupes</b> -- Does the member want to avoid duplicates of the\n"
+" same message?"
+msgstr ""
+"<b>unngå duplikater</b> -- Hvis denne er avkrysset, vil ikke medlemmet motta "
+"epost som har medlemmets epostadresse som mottaker."
+
+#: Mailman/Cgi/admin.py:1011
+msgid ""
+"<b>digest</b> -- Does the member get messages in digests?\n"
+" (otherwise, individual messages)"
+msgstr ""
+"<b>sammendrag-modus</b> -- Medlemmet f&aring;r tilsendt et sammendrag med "
+"jevne mellomrom istedenfor hver epost."
+
+#: Mailman/Cgi/admin.py:1014
+msgid ""
+"<b>plain</b> -- If getting digests, does the member get plain\n"
+" text digests? (otherwise, MIME)"
+msgstr ""
+"<b>ren tekst</b> -- Motta samle-epost som ren tekst hvis sammendrag-modus er "
+"aktivert?\n"
+"Hvis dette valget ikke er avkrysset, vil samle-epost sendes i MIME-format."
+
+#: Mailman/Cgi/admin.py:1016
+msgid "<b>language</b> -- Language preferred by the user"
+msgstr "<b>spr&aring;k</b> -- &Oslash;nsket spr&aring;k"
+
+#: Mailman/Cgi/admin.py:1030
+msgid "Click here to hide the legend for this table."
+msgstr "Klikk her for å ikke vise forklaringen av innstillingene."
+
+#: Mailman/Cgi/admin.py:1034
+msgid "Click here to include the legend for this table."
+msgstr "Klikk her for å vise forklaring av innstillingene."
+
+#: Mailman/Cgi/admin.py:1041
+msgid ""
+"<p><em>To view more members, click on the appropriate\n"
+" range listed below:</em>"
+msgstr ""
+"<p><em>For &aring; se flere medlemmer, klikk p&aring; &oslash;nsket "
+"omr&aring;de:"
+
+#: Mailman/Cgi/admin.py:1050
+msgid "from %(start)s to %(end)s"
+msgstr "fra %(start)s til %(end)s"
+
+#: Mailman/Cgi/admin.py:1063
+msgid "Subscribe these users now or invite them?"
+msgstr "Melde på disse adressen umiddelbart, eller invitere dem?"
+
+#: Mailman/Cgi/admin.py:1065
+msgid "Invite"
+msgstr "Invitér"
+
+#: Mailman/Cgi/admin.py:1065 Mailman/Cgi/listinfo.py:175
+msgid "Subscribe"
+msgstr "Meld p&aring;"
+
+#: Mailman/Cgi/admin.py:1071
+msgid "Send welcome messages to new subscribees?"
+msgstr "Sende velkomsthilsen til nye medlemmer?"
+
+#: Mailman/Cgi/admin.py:1073 Mailman/Cgi/admin.py:1082
+#: Mailman/Cgi/admin.py:1115 Mailman/Cgi/admin.py:1123
+#: Mailman/Cgi/confirm.py:271 Mailman/Cgi/create.py:327
+#: Mailman/Cgi/create.py:355 Mailman/Cgi/create.py:395
+#: Mailman/Cgi/rmlist.py:228 Mailman/Gui/Archive.py:33
+#: Mailman/Gui/Autoresponse.py:54 Mailman/Gui/Autoresponse.py:62
+#: Mailman/Gui/Autoresponse.py:71 Mailman/Gui/Bounce.py:77
+#: Mailman/Gui/Bounce.py:108 Mailman/Gui/Bounce.py:134
+#: Mailman/Gui/Bounce.py:143 Mailman/Gui/ContentFilter.py:70
+#: Mailman/Gui/ContentFilter.py:103 Mailman/Gui/Digest.py:46
+#: Mailman/Gui/Digest.py:62 Mailman/Gui/Digest.py:84 Mailman/Gui/Digest.py:89
+#: Mailman/Gui/General.py:148 Mailman/Gui/General.py:154
+#: Mailman/Gui/General.py:232 Mailman/Gui/General.py:259
+#: Mailman/Gui/General.py:286 Mailman/Gui/General.py:297
+#: Mailman/Gui/General.py:300 Mailman/Gui/General.py:310
+#: Mailman/Gui/General.py:315 Mailman/Gui/General.py:325
+#: Mailman/Gui/General.py:345 Mailman/Gui/General.py:373
+#: Mailman/Gui/General.py:396 Mailman/Gui/NonDigest.py:44
+#: Mailman/Gui/NonDigest.py:52 Mailman/Gui/Privacy.py:101
+#: Mailman/Gui/Privacy.py:107 Mailman/Gui/Privacy.py:140
+#: Mailman/Gui/Privacy.py:188 Mailman/Gui/Privacy.py:296
+#: Mailman/Gui/Privacy.py:309 Mailman/Gui/Usenet.py:50
+#: Mailman/Gui/Usenet.py:54 Mailman/Gui/Usenet.py:91 Mailman/Gui/Usenet.py:103
+msgid "No"
+msgstr "Nei"
+
+#: Mailman/Cgi/admin.py:1073 Mailman/Cgi/admin.py:1082
+#: Mailman/Cgi/admin.py:1115 Mailman/Cgi/admin.py:1123
+#: Mailman/Cgi/confirm.py:271 Mailman/Cgi/create.py:327
+#: Mailman/Cgi/create.py:355 Mailman/Cgi/create.py:395
+#: Mailman/Cgi/rmlist.py:228 Mailman/Gui/Archive.py:33
+#: Mailman/Gui/Autoresponse.py:54 Mailman/Gui/Autoresponse.py:62
+#: Mailman/Gui/Bounce.py:77 Mailman/Gui/Bounce.py:108
+#: Mailman/Gui/Bounce.py:134 Mailman/Gui/Bounce.py:143
+#: Mailman/Gui/ContentFilter.py:70 Mailman/Gui/ContentFilter.py:103
+#: Mailman/Gui/Digest.py:46 Mailman/Gui/Digest.py:62 Mailman/Gui/Digest.py:84
+#: Mailman/Gui/Digest.py:89 Mailman/Gui/General.py:148
+#: Mailman/Gui/General.py:154 Mailman/Gui/General.py:232
+#: Mailman/Gui/General.py:259 Mailman/Gui/General.py:286
+#: Mailman/Gui/General.py:297 Mailman/Gui/General.py:300
+#: Mailman/Gui/General.py:310 Mailman/Gui/General.py:315
+#: Mailman/Gui/General.py:325 Mailman/Gui/General.py:345
+#: Mailman/Gui/General.py:373 Mailman/Gui/General.py:396
+#: Mailman/Gui/NonDigest.py:44 Mailman/Gui/NonDigest.py:52
+#: Mailman/Gui/Privacy.py:101 Mailman/Gui/Privacy.py:107
+#: Mailman/Gui/Privacy.py:140 Mailman/Gui/Privacy.py:188
+#: Mailman/Gui/Privacy.py:296 Mailman/Gui/Privacy.py:309
+#: Mailman/Gui/Usenet.py:50 Mailman/Gui/Usenet.py:54 Mailman/Gui/Usenet.py:91
+#: Mailman/Gui/Usenet.py:103
+msgid "Yes"
+msgstr "Ja"
+
+#: Mailman/Cgi/admin.py:1080
+msgid "Send notifications of new subscriptions to the list owner?"
+msgstr "Sende melding til listens eier når noen melder seg på?"
+
+#: Mailman/Cgi/admin.py:1088 Mailman/Cgi/admin.py:1129
+msgid "Enter one address per line below..."
+msgstr ""
+"Skriv inn epostadressen(e) i tekstboksen nedenfor. Kun en adresse per linje."
+
+#: Mailman/Cgi/admin.py:1093 Mailman/Cgi/admin.py:1134
+msgid "...or specify a file to upload:"
+msgstr ""
+"...eller gi inn navnet p&aring; en fil p&aring; samme format, som inneholder "
+"adressene:"
+
+#: Mailman/Cgi/admin.py:1098
+msgid ""
+"Below, enter additional text to be added to the\n"
+" top of your invitation or the subscription notification. Include at "
+"least\n"
+" one blank line at the end..."
+msgstr ""
+"Her kan du legge inn ekstra tekst som skal legges til i toppen av "
+"invitasjonen\n"
+"eller påmeldingsbekreftelsen, i tekstboksen nedenfor. Husk å ha minst én "
+"blank\n"
+"linje nederst..."
+
+#: Mailman/Cgi/admin.py:1113
+msgid "Send unsubscription acknowledgement to the user?"
+msgstr "Send bekreftelse p&aring; utmelding av listen til medlemmet?"
+
+#: Mailman/Cgi/admin.py:1121
+msgid "Send notifications to the list owner?"
+msgstr "Sende beskjed til listens eier?"
+
+#: Mailman/Cgi/admin.py:1143
+msgid "Change list ownership passwords"
+msgstr "Endre admin/moderator passord"
+
+#: Mailman/Cgi/admin.py:1146
+msgid ""
+"The <em>list administrators</em> are the people who have ultimate control "
+"over\n"
+"all parameters of this mailing list. They are able to change any list\n"
+"configuration variable available through these administration web pages.\n"
+"\n"
+"<p>The <em>list moderators</em> have more limited permissions; they are not\n"
+"able to change any list configuration variable, but they are allowed to "
+"tend\n"
+"to pending administration requests, including approving or rejecting held\n"
+"subscription requests, and disposing of held postings. Of course, the\n"
+"<em>list administrators</em> can also tend to pending requests.\n"
+"\n"
+"<p>In order to split the list ownership duties into administrators and\n"
+"moderators, you must set a separate moderator password in the fields below,\n"
+"and also provide the email addresses of the list moderators in the\n"
+"<a href=\"%(adminurl)s/general\">general options section</a>."
+msgstr ""
+"<em>Listeadministratorene</em> er de som har full\n"
+"kontroll og tilgang til alle innstillinger for denne epostlisten.\n"
+"\n"
+"<p><em>Listemoderatorene</em> har litt mer begrenset tilgang. De kan ikke\n"
+"endre noen innstillinger for listen, men de kan godkjenne epost som\n"
+"m&aring; behandles, og de kan godkjenne eller avsl&aring; s&oslash;knader\n"
+"om medlemskap. (Det kan ogs&aring; listeadministratoren.)\n"
+"\n"
+"<p>For &aring; kunne benytte muligheten for &aring; ha listemoderatorer,\n"
+"m&aring; du sette et eget moderatorpassord i feltene nedenfor.\n"
+"(Passordet kan selvsagt v&aelig;re hva som helst, men er det det samme som\n"
+"administratorpassordet, har det jo ingen hensikt.)\n"
+"Du m&aring; ogs&aring; skrive inn epostadressen(e) til listemoderatoren(e) "
+"p&aring;<a href=\"%(adminurl)s/general\">Generelle innstillinger</a> siden."
+
+#: Mailman/Cgi/admin.py:1165
+msgid "Enter new administrator password:"
+msgstr "Nytt administrator passord:"
+
+#: Mailman/Cgi/admin.py:1167
+msgid "Confirm administrator password:"
+msgstr "Administratorpassordet en gang til:"
+
+#: Mailman/Cgi/admin.py:1172
+msgid "Enter new moderator password:"
+msgstr "Nytt moderator passord:"
+
+#: Mailman/Cgi/admin.py:1174
+msgid "Confirm moderator password:"
+msgstr "Moderatorpassordet en gang til:"
+
+#: Mailman/Cgi/admin.py:1184
+msgid "Submit Your Changes"
+msgstr "Lagre endringer"
+
+#: Mailman/Cgi/admin.py:1207
+msgid "Moderator passwords did not match"
+msgstr "Moderatorpassordene er ikke like"
+
+#: Mailman/Cgi/admin.py:1217
+msgid "Administrator passwords did not match"
+msgstr "Administratorpassordene er ikke like"
+
+#: Mailman/Cgi/admin.py:1265
+msgid "Already a member"
+msgstr "Allerede medlem"
+
+#: Mailman/Cgi/admin.py:1268
+msgid "&lt;blank line&gt;"
+msgstr "&lt;blank linje&gt;"
+
+#: Mailman/Cgi/admin.py:1269 Mailman/Cgi/admin.py:1272
+msgid "Bad/Invalid email address"
+msgstr "Feil/Ugyldig epostadresse"
+
+#: Mailman/Cgi/admin.py:1275
+msgid "Hostile address (illegal characters)"
+msgstr "Farlig epostadresse (inneholder ugyldige tegn)"
+
+#: Mailman/Cgi/admin.py:1281
+msgid "Successfully invited:"
+msgstr "Invitasjon er sendt til:"
+
+#: Mailman/Cgi/admin.py:1283
+msgid "Successfully subscribed:"
+msgstr "P&aring;melding utf&oslash;rt:"
+
+#: Mailman/Cgi/admin.py:1288
+msgid "Error inviting:"
+msgstr "Feil under invitasjon:"
+
+#: Mailman/Cgi/admin.py:1290
+msgid "Error subscribing:"
+msgstr "Feil under p&aring;melding:"
+
+#: Mailman/Cgi/admin.py:1319
+msgid "Successfully Unsubscribed:"
+msgstr "Utmelding utf&oslash;rt:"
+
+#: Mailman/Cgi/admin.py:1324
+msgid "Cannot unsubscribe non-members:"
+msgstr "Kan ikke melde ut et ikke-eksisterende medlem:"
+
+#: Mailman/Cgi/admin.py:1336
+msgid "Bad moderation flag value"
+msgstr "Ugyldig verdi p&aring; moderasjonsflagget"
+
+#: Mailman/Cgi/admin.py:1357
+msgid "Not subscribed"
+msgstr "Ikke p&aring;meldt"
+
+#: Mailman/Cgi/admin.py:1360
+msgid "Ignoring changes to deleted member: %(user)s"
+msgstr "Ser bort i fra endring av et medlem som er utmeldt: %(user)s"
+
+#: Mailman/Cgi/admin.py:1400
+msgid "Successfully Removed:"
+msgstr "Utmelding utf&oslash;rt:"
+
+#: Mailman/Cgi/admin.py:1404
+msgid "Error Unsubscribing:"
+msgstr "Feil under utmelding av:"
+
+#: Mailman/Cgi/admindb.py:159 Mailman/Cgi/admindb.py:167
+msgid "%(realname)s Administrative Database"
+msgstr "Administrativ database for listen %(realname)s"
+
+#: Mailman/Cgi/admindb.py:162
+msgid "%(realname)s Administrative Database Results"
+msgstr "Resultat fra den administrative databasen til listen %(realname)s"
+
+#: Mailman/Cgi/admindb.py:170
+msgid "There are no pending requests."
+msgstr "Det venter ingen foresp&oslash;rsler eller s&oslash;knader."
+
+#: Mailman/Cgi/admindb.py:173
+msgid "Click here to reload this page."
+msgstr "Klikk her for å vise siden på nytt."
+
+#: Mailman/Cgi/admindb.py:184
+msgid "Detailed instructions for the administrative database"
+msgstr "N&aelig;rmere instruksjoner for administrative forespørsler"
+
+#: Mailman/Cgi/admindb.py:188
+msgid "Administrative requests for mailing list:"
+msgstr "Administrative foresp&oslash;rsler for listen:"
+
+#: Mailman/Cgi/admindb.py:191 Mailman/Cgi/admindb.py:234
+msgid "Submit All Data"
+msgstr "Utf&oslash;re"
+
+#: Mailman/Cgi/admindb.py:204
+msgid "all of %(esender)s's held messages."
+msgstr "alle meldinger fra %(esender)s, som holdes tilbake for godkjenning."
+
+#: Mailman/Cgi/admindb.py:209
+msgid "a single held message."
+msgstr "en enkel tilbakeholdt melding."
+
+#: Mailman/Cgi/admindb.py:214
+msgid "all held messages."
+msgstr "alle tilbakeholdte meldinger."
+
+#: Mailman/Cgi/admindb.py:249
+msgid "Mailman Administrative Database Error"
+msgstr "Feil i Mailmans administrative database"
+
+#: Mailman/Cgi/admindb.py:254
+msgid "list of available mailing lists."
+msgstr "Liste over alle tilgjengelig epostlister."
+
+#: Mailman/Cgi/admindb.py:255
+msgid "You must specify a list name. Here is the %(link)s"
+msgstr "Du m&aring; oppgi et navn p&aring; en liste. Her er %(link)s"
+
+#: Mailman/Cgi/admindb.py:268
+msgid "Subscription Requests"
+msgstr "S&oslash;knader om medlemskap"
+
+#: Mailman/Cgi/admindb.py:270
+msgid "Address/name"
+msgstr "Adresse/navn"
+
+#: Mailman/Cgi/admindb.py:271 Mailman/Cgi/admindb.py:320
+msgid "Your decision"
+msgstr "Din avgj&oslash;relse"
+
+#: Mailman/Cgi/admindb.py:272 Mailman/Cgi/admindb.py:321
+msgid "Reason for refusal"
+msgstr "Begrunnelse"
+
+#: Mailman/Cgi/admindb.py:289 Mailman/Cgi/admindb.py:346
+#: Mailman/Cgi/admindb.py:389 Mailman/Cgi/admindb.py:612
+msgid "Defer"
+msgstr "Avvent"
+
+#: Mailman/Cgi/admindb.py:290 Mailman/Cgi/admindb.py:347
+#: Mailman/Cgi/admindb.py:612
+msgid "Approve"
+msgstr "Godkjenne"
+
+#: Mailman/Cgi/admindb.py:291 Mailman/Cgi/admindb.py:348
+#: Mailman/Cgi/admindb.py:389 Mailman/Cgi/admindb.py:612
+#: Mailman/Gui/ContentFilter.py:37 Mailman/Gui/Privacy.py:207
+#: Mailman/Gui/Privacy.py:281
+msgid "Reject"
+msgstr "Avsl&aring;"
+
+#: Mailman/Cgi/admindb.py:292 Mailman/Cgi/admindb.py:349
+#: Mailman/Cgi/admindb.py:389 Mailman/Cgi/admindb.py:612
+#: Mailman/Gui/ContentFilter.py:37 Mailman/Gui/Privacy.py:207
+#: Mailman/Gui/Privacy.py:281
+msgid "Discard"
+msgstr "Kaste"
+
+#: Mailman/Cgi/admindb.py:300
+msgid "Permanently ban from this list"
+msgstr "Utesteng for alltid fra denne listen"
+
+#: Mailman/Cgi/admindb.py:319
+msgid "User address/name"
+msgstr "Medlemmets adresse/navn"
+
+#: Mailman/Cgi/admindb.py:359
+msgid "Unsubscription Requests"
+msgstr "S&oslash;knader om utmelding"
+
+#: Mailman/Cgi/admindb.py:382 Mailman/Cgi/admindb.py:596
+msgid "From:"
+msgstr "Fra:"
+
+#: Mailman/Cgi/admindb.py:385
+msgid "Action to take on all these held messages:"
+msgstr "Avgj&oslash;relse for alle tilbakeholdte meldinger:"
+
+#: Mailman/Cgi/admindb.py:389 Mailman/Gui/Privacy.py:281
+msgid "Accept"
+msgstr "Godkjenne"
+
+#: Mailman/Cgi/admindb.py:397
+msgid "Preserve messages for the site administrator"
+msgstr "Ta vare p&aring; meldingen(e) for systemets administrator"
+
+#: Mailman/Cgi/admindb.py:403
+msgid "Forward messages (individually) to:"
+msgstr "Videresend meldinger (individuelt) til:"
+
+#: Mailman/Cgi/admindb.py:421
+msgid "Clear this member's <em>moderate</em> flag"
+msgstr "Skru av dette medlemmets <em>moderasjonsflagg</em>"
+
+#: Mailman/Cgi/admindb.py:425
+msgid "<em>The sender is now a member of this list</em>"
+msgstr "<em>Avsender er nå medlem av denne listen</em>"
+
+#: Mailman/Cgi/admindb.py:434
+msgid "Add <b>%(esender)s</b> to a sender filter"
+msgstr "Legge inn <b>%(esender)s</b> i et avsenderfilter som:"
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Accepts"
+msgstr "Godkjenner"
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Discards"
+msgstr "Kaster"
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Holds"
+msgstr "Holder tilbake"
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Rejects"
+msgstr "Avsl&aring;r"
+
+#: Mailman/Cgi/admindb.py:448
+msgid ""
+"Ban <b>%(esender)s</b> from ever subscribing to this\n"
+" mailing list"
+msgstr "Utesteng <b>%(esender)s</b> fra å melde seg på denne epostlisten"
+
+#: Mailman/Cgi/admindb.py:453
+msgid ""
+"Click on the message number to view the individual\n"
+" message, or you can "
+msgstr "Klikk på meldingens nummer for å se den, eller du kan "
+
+#: Mailman/Cgi/admindb.py:455
+msgid "view all messages from %(esender)s"
+msgstr "se alle meldinger fra %(esender)s"
+
+#: Mailman/Cgi/admindb.py:475 Mailman/Cgi/admindb.py:599
+msgid "Subject:"
+msgstr "Tittel:"
+
+#: Mailman/Cgi/admindb.py:478
+msgid " bytes"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:478
+msgid "Size:"
+msgstr "Størrelse:"
+
+#: Mailman/Cgi/admindb.py:482 Mailman/Handlers/Decorate.py:50
+#: Mailman/Handlers/Scrubber.py:226 Mailman/Handlers/Scrubber.py:227
+msgid "not available"
+msgstr "ikke tilgjengelig"
+
+#: Mailman/Cgi/admindb.py:483 Mailman/Cgi/admindb.py:601
+msgid "Reason:"
+msgstr "Begrunnelse:"
+
+#: Mailman/Cgi/admindb.py:487 Mailman/Cgi/admindb.py:605
+msgid "Received:"
+msgstr "Mottatt:"
+
+#: Mailman/Cgi/admindb.py:545
+msgid "Posting Held for Approval"
+msgstr "Epost til listen som venter p&aring; godkjennelse"
+
+#: Mailman/Cgi/admindb.py:547
+msgid " (%(count)d of %(total)d)"
+msgstr " (%(count)d av %(total)d)"
+
+#: Mailman/Cgi/admindb.py:558
+msgid "<em>Message with id #%(id)d was lost."
+msgstr "<em>Mistet meldingen med id #%(id)d."
+
+#: Mailman/Cgi/admindb.py:567
+msgid "<em>Message with id #%(id)d is corrupted."
+msgstr "<em>Feil p&aring; meldingen med id #%(id)d."
+
+#: Mailman/Cgi/admindb.py:618
+msgid "Action:"
+msgstr "Avgj&oslash;relse:"
+
+#: Mailman/Cgi/admindb.py:622
+msgid "Preserve message for site administrator"
+msgstr "Ta vare p&aring; meldingen for systemets administrator"
+
+#: Mailman/Cgi/admindb.py:626
+msgid "Additionally, forward this message to: "
+msgstr "Videresend denne meldingen ogs&aring; til: "
+
+#: Mailman/Cgi/admindb.py:630
+msgid "[No explanation given]"
+msgstr "[Ingen forklaring]"
+
+#: Mailman/Cgi/admindb.py:632
+msgid "If you reject this post,<br>please explain (optional):"
+msgstr "Hvis du ikke godkjenner denne eposten,<br>skriv gjerne en begrunnelse:"
+
+#: Mailman/Cgi/admindb.py:638
+msgid "Message Headers:"
+msgstr "Headers i meldingen:"
+
+#: Mailman/Cgi/admindb.py:643
+msgid "Message Excerpt:"
+msgstr "Utdrag av meldingen:"
+
+#: Mailman/Cgi/admindb.py:676 Mailman/Deliverer.py:124
+msgid "No reason given"
+msgstr "Ingen begrunnelse"
+
+#: Mailman/Cgi/admindb.py:737 Mailman/ListAdmin.py:308
+#: Mailman/ListAdmin.py:429
+msgid "[No reason given]"
+msgstr "[Ingen begrunnelse]"
+
+#: Mailman/Cgi/admindb.py:766
+msgid "Database Updated..."
+msgstr "Databasen er oppdatert..."
+
+#: Mailman/Cgi/admindb.py:769
+msgid " is already a member"
+msgstr " er allerede medlem"
+
+#: Mailman/Cgi/confirm.py:69
+msgid "Confirmation string was empty."
+msgstr "Ugyldig URL - tom identifikator for bekreftelse!"
+
+#: Mailman/Cgi/confirm.py:89
+msgid ""
+"<b>Invalid confirmation string:</b>\n"
+" %(safecookie)s.\n"
+"\n"
+" <p>Note that confirmation strings expire approximately\n"
+" %(days)s days after the initial subscription request. If your\n"
+" confirmation has expired, please try to re-submit your subscription.\n"
+" Otherwise, <a href=\"%(confirmurl)s\">re-enter</a> your confirmation\n"
+" string."
+msgstr ""
+"<b>Ugyldig identifikator for bekreftelse av p&aring;melding:</b> %"
+"(safecookie)s.\n"
+"<p>Merk at slike adresser g&aring;r ut p&aring; dato %(days)s dager etter at "
+"du har mottatt eposten med adressen.\n"
+"Hvis dette er tilfellet, pr&oslash;v &aring; meld deg p&aring; listen "
+"p&aring; nytt.\n"
+"Eller du kan <a href=\"%(confirmurl)s\">skrive inn identifikatoren p&aring; "
+"nytt</a>."
+
+#: Mailman/Cgi/confirm.py:122
+msgid ""
+"The address requesting unsubscription is not\n"
+" a member of the mailing list. Perhaps you have already "
+"been\n"
+" unsubscribed, e.g. by the list administrator?"
+msgstr ""
+"Adressen som ba om å bli meldt ut av listen er ikke medlem av epostlisten.\n"
+"Kanskje er du allerede meldt ut, f.eks. av listeadministratoren?"
+
+#: Mailman/Cgi/confirm.py:138
+msgid ""
+"The address requesting to be changed has\n"
+" been subsequently unsubscribed. This request has been\n"
+" cancelled."
+msgstr ""
+"Addressen som skulle endres er ikke lenger medlem av epostlisten. "
+"Forespørselen ble derfor avbrutt."
+
+#: Mailman/Cgi/confirm.py:157
+msgid "System error, bad content: %(content)s"
+msgstr "Systemfeil, ugyldig innhold: %(content)s"
+
+#: Mailman/Cgi/confirm.py:167
+msgid "Bad confirmation string"
+msgstr "Ugyldig identifikator for bekreftelse!"
+
+#: Mailman/Cgi/confirm.py:175
+msgid "Enter confirmation cookie"
+msgstr "Oppgi identifikator for bekreftelse"
+
+#: Mailman/Cgi/confirm.py:188
+msgid ""
+"Please enter the confirmation string\n"
+" (i.e. <em>cookie</em>) that you received in your email message, in the "
+"box\n"
+" below. Then hit the <em>Submit</em> button to proceed to the next\n"
+" confirmation step."
+msgstr ""
+"Vennligst oppgi identifikatoren du har mottatt i en epost, i feltet "
+"nedenfor.\n"
+"Klikk deretter <em>Bekreft</em> knappen for &aring; fortsette til neste steg."
+
+#: Mailman/Cgi/confirm.py:193
+msgid "Confirmation string:"
+msgstr "Identifikator for bekreftelse:"
+
+#: Mailman/Cgi/confirm.py:195
+msgid "Submit"
+msgstr "Bekreft"
+
+#: Mailman/Cgi/confirm.py:210
+msgid "Confirm subscription request"
+msgstr "Bekreft s&oslash;knad om medlemskap"
+
+#: Mailman/Cgi/confirm.py:227
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" subscription request to the mailing list <em>%(listname)s</em>. Your\n"
+" subscription settings are shown below; make any necessary changes and "
+"hit\n"
+" <em>Subscribe</em> to complete the confirmation process. Once you've\n"
+" confirmed your subscription request, you will be shown your account\n"
+" options page which you can use to further customize your membership\n"
+" options.\n"
+"\n"
+" <p>Note: your password will be emailed to you once your subscription is\n"
+" confirmed. You can change it by visiting your personal options page.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this subscription\n"
+" request."
+msgstr ""
+"Din bekreftelse er n&oslash;dvendig for &aring; fullf&oslash;re din p&aring;"
+"melding p&aring; epostlisten <em>%(listname)s</em>.\n"
+"Dine innstillinger vises nedenfor; gj&oslash;r eventuelle endringer du "
+"m&aring;tte &oslash;nske &aring; gj&oslash;re og klikk\n"
+"deretter \"Meld meg p&aring;\" knappen dersom du virkelig &oslash;nsker "
+"&aring; melde deg p&aring; listen.\n"
+"Gj&oslash;r du det vil din personlige medlemsside vises, der du kan "
+"gj&oslash;re ytterligere endringer p&aring; ditt medlemskap.\n"
+"\n"
+"<p>Merk: du vil få tilsendt passordet straks du har bekreftet din påmelding. "
+"Du kan skifte passord ved å gå inn på din personlige medlemsside.\n"
+"\n"
+"<p>Eller klikk <em>Avbryt</em> for &aring; trekke s&oslash;knaden din."
+
+#: Mailman/Cgi/confirm.py:242
+msgid ""
+"Your confirmation is required in order to continue with\n"
+" the subscription request to the mailing list <em>%(listname)s</em>.\n"
+" Your subscription settings are shown below; make any necessary "
+"changes\n"
+" and hit <em>Subscribe to list ...</em> to complete the confirmation\n"
+" process. Once you've confirmed your subscription request, the\n"
+" moderator must approve or reject your membership request. You will\n"
+" receive notice of their decision.\n"
+"\n"
+" <p>Note: your password will be emailed to you once your "
+"subscription\n"
+" is confirmed. You can change it by visiting your personal options\n"
+" page.\n"
+"\n"
+" <p>Or, if you've changed your mind and do not want to subscribe to\n"
+" this mailing list, you can hit <em>Cancel my subscription\n"
+" request</em>."
+msgstr ""
+"Din bekreftelse er n&oslash;dvendig for &aring; fortsette din p&aring;"
+"melding p&aring; epostlisten <em>%(listname)s</em>.\n"
+"Dine innstillinger vises nedenfor; gj&oslash;r eventuelle endringer du "
+"m&aring;tte &oslash;nske &aring; gj&oslash;re og klikk\n"
+"deretter \"Meld meg p&aring;\" knappen dersom du virkelig &oslash;nsker "
+"&aring; melde deg p&aring; listen.\n"
+"Gj&oslash;r du det vil s&oslash;knaden din sendes til listemoderatoren, som "
+"vil godkjenne eller avsl&aring; den.\n"
+"Du vil f&aring; beskjed s&aring; snart en avgj&oslash;relse er tatt.\n"
+"\n"
+"<p>Merk: du vil få tilsendt passordet straks du har bekreftet din påmelding. "
+"Du kan skifte passord ved å gå inn på din personlige medlemsside.\n"
+"\n"
+"<p>Eller, hvis du har ombestemt deg og ikke ønsker å melde deg på denne "
+"listen, kan du klikke <em>Trekke min s&oslash;knad</em>."
+
+#: Mailman/Cgi/confirm.py:260
+msgid "Your email address:"
+msgstr "Din epostadresse:"
+
+#: Mailman/Cgi/confirm.py:261
+msgid "Your real name:"
+msgstr "Ditt navn:"
+
+#: Mailman/Cgi/confirm.py:270
+msgid "Receive digests?"
+msgstr "Benytte sammendrag-modus?"
+
+#: Mailman/Cgi/confirm.py:279
+msgid "Preferred language:"
+msgstr "&Oslash;nsket spr&aring;k:"
+
+#: Mailman/Cgi/confirm.py:284
+msgid "Cancel my subscription request"
+msgstr "Trekke min søknad"
+
+#: Mailman/Cgi/confirm.py:285
+msgid "Subscribe to list %(listname)s"
+msgstr "Påmelding på listen %(listname)s"
+
+#: Mailman/Cgi/confirm.py:295
+msgid "You have canceled your subscription request."
+msgstr "Du har trukket s&oslash;knaden din, og ble IKKE medlem av epostlisten."
+
+#: Mailman/Cgi/confirm.py:329
+msgid "Awaiting moderator approval"
+msgstr "Venter p&aring; godkjenning av moderator"
+
+#: Mailman/Cgi/confirm.py:332
+msgid ""
+" You have successfully confirmed your subscription request to "
+"the\n"
+" mailing list %(listname)s, however final approval is required "
+"from\n"
+" the list moderator before you will be subscribed. Your request\n"
+" has been forwarded to the list moderator, and you will be "
+"notified\n"
+" of the moderator's decision."
+msgstr ""
+"Du har n&aring; bekreftet din p&aring;melding p&aring; epostlisten %"
+"(listname)s, men godkjenning\n"
+"av listemoderatoren gjenst&aring;r enda for at at du skal bli p&aring;meldt "
+"listen.\n"
+"Foresp&oslash;rselen din er sendt til listemoderatoren, og n&aring;r en "
+"avgj&oslash;relse er tatt,\n"
+"vil du bli informert om resultatet."
+
+#: Mailman/Cgi/confirm.py:339 Mailman/Cgi/confirm.py:394
+#: Mailman/Cgi/confirm.py:482 Mailman/Cgi/confirm.py:705
+msgid ""
+"Invalid confirmation string. It is\n"
+" possible that you are attempting to confirm a request for an\n"
+" address that has already been unsubscribed."
+msgstr ""
+"Ugyldig URL for bekreftelse av p&aring;melding.\n"
+"Det er mulig du pr&oslash;ver &aring; bekrefte utmelding av en epostadresse "
+"som allerede\n"
+"er fjernet fra listen."
+
+#: Mailman/Cgi/confirm.py:343
+msgid "You are already a member of this mailing list!"
+msgstr "Du er allerede medlem av denne epostlisten!"
+
+#: Mailman/Cgi/confirm.py:350
+msgid "Subscription request confirmed"
+msgstr "S&oslash;knad om medlemsskap bekreftet"
+
+#: Mailman/Cgi/confirm.py:354
+msgid ""
+" You have successfully confirmed your subscription request for\n"
+" \"%(addr)s\" to the %(listname)s mailing list. A separate\n"
+" confirmation message will be sent to your email address, along\n"
+" with your password, and other useful information and links.\n"
+"\n"
+" <p>You can now\n"
+" <a href=\"%(optionsurl)s\">proceed to your membership login\n"
+" page</a>."
+msgstr ""
+"Du er n&aring; p&aring;meldt epostlisten %(listname)s med epostadressen \"%"
+"(addr)s\".<br>\n"
+"En epost med bekreftelse p&aring; dette er n&aring; sendt til deg.\n"
+"Denne eposten inneholder ogs&aring; en del nyttig informasjon,\n"
+"blant annet passordet ditt for denne epostlisten.\n"
+"Det vil du f&aring; bruk for hvis du f.eks. senere vil melde deg av listen.\n"
+"<p>Du kan n&aring; <a href=\"%(optionsurl)s\">fortsette til innlogging til "
+"din\n"
+"personlige medlemside</a>."
+
+#: Mailman/Cgi/confirm.py:372
+msgid "You have canceled your unsubscription request."
+msgstr "Du har n&aring; ombestemt deg, og er ikke meldt ut av listen."
+
+#: Mailman/Cgi/confirm.py:400
+msgid "Unsubscription request confirmed"
+msgstr "S&oslash;knad om utmelding bekreftet"
+
+#: Mailman/Cgi/confirm.py:404
+msgid ""
+" You have successfully unsubscribed from the %(listname)s "
+"mailing\n"
+" list. You can now <a href=\"%(listinfourl)s\">visit the list's "
+"main\n"
+" information page</a>."
+msgstr ""
+"Du er n&aring; meldt ut av epostlisten %(listname)s.\n"
+"Du kan n&aring; <a href=\"%(listinfourl)s\">g&aring; til listens webside</a> "
+"hvis du vil."
+
+#: Mailman/Cgi/confirm.py:415
+msgid "Confirm unsubscription request"
+msgstr "Bekreft at du &oslash;nsker &aring; melde deg ut"
+
+#: Mailman/Cgi/confirm.py:430 Mailman/Cgi/confirm.py:519
+msgid "<em>Not available</em>"
+msgstr "</em>Ikke tilgjengelig</em>"
+
+#: Mailman/Cgi/confirm.py:433
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" unsubscription request from the mailing list <em>%(listname)s</em>. "
+"You\n"
+" are currently subscribed with\n"
+"\n"
+" <ul><li><b>Real name:</b> %(fullname)s\n"
+" <li><b>Email address:</b> %(addr)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Unsubscribe</em> button below to complete the confirmation\n"
+" process.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this unsubscription\n"
+" request."
+msgstr ""
+"Epostliste-systemet trenger din bekreftelse p&aring; at du vil melde deg ut "
+"av\n"
+"epostlisten <em>%(listname)s</em>.\n"
+"F&oslash;lgende informasjon er registrert om deg:\n"
+"\n"
+"<ul>\n"
+" <li><b>Navn:</b>: %(fullname)s</li>\n"
+" <li><b>Epostadresse:</b> %(addr)s</li>\n"
+"</ul>\n"
+"\n"
+"Klikk <em>Meld meg ut</em> for &aring; bekrefte at du vil melde deg ut.\n"
+"\n"
+"<p>Eller klikk <em>Avbryt</em> for &aring; fortsatt v&aelig;re medlem av "
+"listen."
+
+#: Mailman/Cgi/confirm.py:449 Mailman/Cgi/options.py:660
+#: Mailman/Cgi/options.py:801 Mailman/Cgi/options.py:811
+msgid "Unsubscribe"
+msgstr "Meld meg ut"
+
+#: Mailman/Cgi/confirm.py:450 Mailman/Cgi/confirm.py:548
+msgid "Cancel and discard"
+msgstr "Avbryt"
+
+#: Mailman/Cgi/confirm.py:460
+msgid "You have canceled your change of address request."
+msgstr ""
+"Du har avbrutt din foresp&oslash;rsel om &aring; endre adresse. Ingen "
+"endringer ble\n"
+"gjennomf&oslash;rt."
+
+#: Mailman/Cgi/confirm.py:488
+msgid "Change of address request confirmed"
+msgstr "Endring av adresse bekreftet"
+
+#: Mailman/Cgi/confirm.py:492
+msgid ""
+" You have successfully changed your address on the %(listname)s\n"
+" mailing list from <b>%(oldaddr)s</b> to <b>%(newaddr)s</b>. "
+"You\n"
+" can now <a href=\"%(optionsurl)s\">proceed to your membership\n"
+" login page</a>."
+msgstr ""
+"Du har endret din adresse p&aring; epostlisten %(listname)s,\n"
+"fra <b>%(oldaddr)s</b> til <b>%(newaddr)s</b>.\n"
+"Du can n&aring; <a href=\"%(optionsurl)s\">g&aring; videre til din "
+"personlige medlemsside</a>."
+
+#: Mailman/Cgi/confirm.py:504
+msgid "Confirm change of address request"
+msgstr "Bekreft endring av adresse"
+
+#: Mailman/Cgi/confirm.py:523
+msgid "globally"
+msgstr "globalt"
+
+#: Mailman/Cgi/confirm.py:526
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" change of address request for the mailing list <em>%(listname)s</em>. "
+"You\n"
+" are currently subscribed with\n"
+"\n"
+" <ul><li><b>Real name:</b> %(fullname)s\n"
+" <li><b>Old email address:</b> %(oldaddr)s\n"
+" </ul>\n"
+"\n"
+" and you have requested to %(globallys)s change your email address to\n"
+"\n"
+" <ul><li><b>New email address:</b> %(newaddr)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Change address</em> button below to complete the "
+"confirmation\n"
+" process.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this change of address\n"
+" request."
+msgstr ""
+"Vi trenger din bekreftelse p&aring; at du virkelig vil endre din "
+"epostadresse p&aring;\n"
+"epostlisten <em>%(listname)s</em>.\n"
+"Du er for tiden p&aring;meldt med f&oslash;lgende informasjon:\n"
+"\n"
+"<ul>\n"
+" <li><b>Navn:</b> %(fullname)s</li>\n"
+" <li><b>Gammel epostadresse:</b> %(oldaddr)s\n"
+"</ul>\n"
+"\n"
+"Du har bedt om &aring; endre din adresse %(globallys)s til\n"
+"\n"
+"<ul><li><b>Ny epostadresse:</b> %(newaddr)s</li></ul>\n"
+"\n"
+"Klikk <em>Bytt epostadresse</em> for &aring; bekrefte at du virkelig vil "
+"endre\n"
+"epostadressen.\n"
+"\n"
+"<p>Eller klikk <em>Avbryt</em> for &aring; beholde den p&aring;meldte "
+"epostadressen."
+
+#: Mailman/Cgi/confirm.py:547
+msgid "Change address"
+msgstr "Bytt epostadresse"
+
+#: Mailman/Cgi/confirm.py:557 Mailman/Cgi/confirm.py:670
+msgid "Continue awaiting approval"
+msgstr "Fortsett &aring; vente p&aring; godkjenning av moderator"
+
+#: Mailman/Cgi/confirm.py:564
+msgid ""
+"Okay, the list moderator will still have the\n"
+" opportunity to approve or reject this message."
+msgstr ""
+"Ok, listemoderatoren vil fremdeles kunne godta eller avvise denne meldingen."
+
+#: Mailman/Cgi/confirm.py:590
+msgid "Sender discarded message via web."
+msgstr "Avsenderen trakk tilbake sin melding via websiden."
+
+#: Mailman/Cgi/confirm.py:592
+msgid ""
+"The held message with the Subject:\n"
+" header <em>%(subject)s</em> could not be found. The most "
+"likely\n"
+" reason for this is that the list moderator has already approved "
+"or\n"
+" rejected the message. You were not able to cancel it in\n"
+" time."
+msgstr ""
+"Meldingen med tittel <em>%(subject)s</em> finnes ikke.\n"
+"Grunnen til dette er nok at listemoderatoren allerede har godtatt\n"
+"eller avvistt denne meldingen. Du er is&aring;fall for sent ute..."
+
+#: Mailman/Cgi/confirm.py:600
+msgid "Posted message canceled"
+msgstr "Melding ble trukket tilbake"
+
+#: Mailman/Cgi/confirm.py:603
+msgid ""
+" You have successfully canceled the posting of your message with\n"
+" the Subject: header <em>%(subject)s</em> to the mailing list\n"
+" %(listname)s."
+msgstr ""
+"Du har trukket tilbake din melding til epostlisten %(listname)s, med tittel "
+"<em>%(subject)s</em>."
+
+#: Mailman/Cgi/confirm.py:614
+msgid "Cancel held message posting"
+msgstr "Trekke tilbake melding sendt til listen"
+
+#: Mailman/Cgi/confirm.py:639
+msgid ""
+"The held message you were referred to has\n"
+" already been handled by the list administrator."
+msgstr ""
+"Den tilbakeholdte meldingen du referte til er allerede behandlet av "
+"listeadministratoren."
+
+#: Mailman/Cgi/confirm.py:653
+msgid ""
+"Your confirmation is required in order to cancel the\n"
+" posting of your message to the mailing list <em>%(listname)s</em>:\n"
+"\n"
+" <ul><li><b>Sender:</b> %(sender)s\n"
+" <li><b>Subject:</b> %(subject)s\n"
+" <li><b>Reason:</b> %(reason)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Cancel posting</em> button to discard the posting.\n"
+"\n"
+" <p>Or hit the <em>Continue awaiting approval</em> button to continue to\n"
+" allow the list moderator to approve or reject the message."
+msgstr ""
+"Din bekreftelse kreves for at meldingen du sendte til epostlisten\n"
+"<em>%(listname)s</em> skal trekkes tilbake:\n"
+"\n"
+"<ul>\n"
+" <li><b>Avsender:</b> %(sender)s</li>\n"
+" <li><b>Tittel:</b> %(subject)s</li>\n"
+" <li><b>Begrunnelse:</b> %(reason)s</li>\n"
+"</ul>\n"
+"\n"
+"Klikk <em>Trekk meldingen tilbake</em> for &aring; trekke tilbake din "
+"melding,\n"
+"og dermed unng&aring; at den sendes til listen.\n"
+"\n"
+"<p>Eller klikk <em>Fortsett &aring; vente p&aring; listemoderatorens "
+"avgj&oslash;relse</em> for\n"
+"&aring; la listemoderatoren avgj&oslash;re om meldingen skal sendes til "
+"listen eller ikke."
+
+#: Mailman/Cgi/confirm.py:669
+msgid "Cancel posting"
+msgstr "Trekk meldingen tilbake"
+
+#: Mailman/Cgi/confirm.py:681
+msgid ""
+"You have canceled the re-enabling of your membership. If\n"
+" we continue to receive bounces from your address, it could be deleted "
+"from\n"
+" this mailing list."
+msgstr ""
+"Du har avbrutt prosessen med &aring; skru p&aring; medlemskapet ditt igjen.\n"
+"V&aelig;r oppmerksom p&aring; at dersom det fortsatt kommer returmeldinger "
+"fra din epostadresse,\n"
+"kan du etter en tid automatisk bli meldt ut av listen."
+
+#: Mailman/Cgi/confirm.py:711
+msgid "Membership re-enabled."
+msgstr "Du vil nå motta epost fra listen igjen."
+
+#: Mailman/Cgi/confirm.py:715
+msgid ""
+" You have successfully re-enabled your membership in the\n"
+" %(listname)s mailing list. You can now <a\n"
+" href=\"%(optionsurl)s\">visit your member options page</a>.\n"
+" "
+msgstr ""
+"Du vil nå motta epost fra epostlisten %(listname)s igjen.\n"
+"Du kan n&aring; <a href=\"%(optionsurl)s\">g&aring; til din personlige "
+"medlemsside</a> hvis du vil."
+
+#: Mailman/Cgi/confirm.py:727
+msgid "Re-enable mailing list membership"
+msgstr "Motta epost fra listen igjen"
+
+#: Mailman/Cgi/confirm.py:744
+msgid ""
+"We're sorry, but you have already been unsubscribed\n"
+" from this mailing list. To re-subscribe, please visit the\n"
+" <a href=\"%(listinfourl)s\">list information page</a>."
+msgstr ""
+"Beklager, men du er allerede meldt ut av denne epostlisten.\n"
+"For &aring; melde deg p&aring; listen igjen, g&aring; til <a href=\"%"
+"(listinfourl)s\">listens webside</a>."
+
+#: Mailman/Cgi/confirm.py:758
+msgid "<em>not available</em>"
+msgstr "</em>ikke tilgjengelig</em>"
+
+#: Mailman/Cgi/confirm.py:762
+msgid ""
+"Your membership in the %(realname)s mailing list is\n"
+" currently disabled due to excessive bounces. Your confirmation is\n"
+" required in order to re-enable delivery to your address. We have the\n"
+" following information on file:\n"
+"\n"
+" <ul><li><b>Member address:</b> %(member)s\n"
+" <li><b>Member name:</b> %(username)s\n"
+" <li><b>Last bounce received on:</b> %(date)s\n"
+" <li><b>Approximate number of days before you are permanently "
+"removed\n"
+" from this list:</b> %(daysleft)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Re-enable membership</em> button to resume receiving "
+"postings\n"
+" from the mailing list. Or hit the <em>Cancel</em> button to defer\n"
+" re-enabling your membership.\n"
+" "
+msgstr ""
+"Ditt medlemskap p&aring; epostlisten %(realname)s er for tiden skrudd av "
+"p&aring; grunn av for mange returmelding fra din epostadresse.\n"
+"Vi m&aring; ha din bekreftelse for at du igjen skal motta meldinger fra "
+"listen.\n"
+"Vi har f&oslash;lgende informasjon om deg:\n"
+"\n"
+"<ul>\n"
+" <li><b>Epostadresse:</b> %(member)s\n"
+" <li><b>Navn:</b> %(username)s\n"
+" <li><b>Siste returmelding er mottatt:</b> %(date)s\n"
+" <li><b>Antall dager til du automatisk blir meldt ut av listen: ca. %"
+"(daysleft)s\n"
+"</ul>\n"
+"Klikk <em>Motta epost igjen</em> knappen for &aring; skru p&aring; "
+"medlemskapet ditt og fortsette &aring; motta epost fra listen.\n"
+"Eller klikk <em>Avbryt</em> knappen hvis du vil gj&oslash;re det en annen "
+"gang.\n"
+" "
+
+#: Mailman/Cgi/confirm.py:782
+msgid "Re-enable membership"
+msgstr "Motta epost igjen"
+
+#: Mailman/Cgi/confirm.py:783
+msgid "Cancel"
+msgstr "Avbryt"
+
+#: Mailman/Cgi/create.py:48 Mailman/Cgi/rmlist.py:48
+msgid "Bad URL specification"
+msgstr "Ugyldig URL konstruksjon"
+
+#: Mailman/Cgi/create.py:63 Mailman/Cgi/rmlist.py:176
+msgid "Return to the "
+msgstr "Tilbake til "
+
+#: Mailman/Cgi/create.py:65 Mailman/Cgi/rmlist.py:178
+msgid "general list overview"
+msgstr "generell infoside for epostlisten"
+
+#: Mailman/Cgi/create.py:66 Mailman/Cgi/rmlist.py:179
+msgid "<br>Return to the "
+msgstr "<br>Tilbake til "
+
+#: Mailman/Cgi/create.py:68 Mailman/Cgi/rmlist.py:181
+msgid "administrative list overview"
+msgstr "administrativ side for epostlisten"
+
+#: Mailman/Cgi/create.py:101
+msgid "List name must not include \"@\": %(listname)s"
+msgstr "Listenavnet m&aring; ikke inneholde \"@\": %(listname)s"
+
+#: Mailman/Cgi/create.py:107 Mailman/Cgi/create.py:185 bin/newlist:134
+#: bin/newlist:168
+msgid "List already exists: %(listname)s"
+msgstr "Listen finnes allerede: %(listname)s !"
+
+#: Mailman/Cgi/create.py:111
+msgid "You forgot to enter the list name"
+msgstr "Du glemte &aring; fylle ut epostlistens navn"
+
+#: Mailman/Cgi/create.py:115
+msgid "You forgot to specify the list owner"
+msgstr "Du glemte &aring; fylle ut eierens/administratorens epostadresse"
+
+#: Mailman/Cgi/create.py:122
+msgid ""
+"Leave the initial password (and confirmation) fields\n"
+" blank if you want Mailman to autogenerate the list\n"
+" passwords."
+msgstr ""
+"La feltene for passord v&aelig;re tomme hvis du vil at Mailman skal finne "
+"p&aring; et passord for listen."
+
+#: Mailman/Cgi/create.py:130
+msgid "Initial list passwords do not match"
+msgstr "Passordene er ikke like"
+
+#: Mailman/Cgi/create.py:139
+msgid "The list password cannot be empty<!-- ignore -->"
+msgstr ""
+"Listen m&aring; ha et passord (listens passord kan ikke v&aelig;re blankt)"
+
+#: Mailman/Cgi/create.py:151
+msgid "You are not authorized to create new mailing lists"
+msgstr "Du har ikke tilgang til &aring; opprette nye epostlister"
+
+#: Mailman/Cgi/create.py:181 bin/newlist:166
+msgid "Bad owner email address: %(s)s"
+msgstr "Ugyldig epostadresse: %(s)s"
+
+#: Mailman/Cgi/create.py:189 bin/newlist:164
+msgid "Illegal list name: %(s)s"
+msgstr "Ulovlig listenavn: %(s)s"
+
+#: Mailman/Cgi/create.py:194
+msgid ""
+"Some unknown error occurred while creating the list.\n"
+" Please contact the site administrator for assistance."
+msgstr ""
+"En ukjent feil oppstod under opprettelse av epostlisten.\n"
+"Kontakt systemadministrator for &aring; f&aring; hjelp."
+
+#: Mailman/Cgi/create.py:233 bin/newlist:210
+msgid "Your new mailing list: %(listname)s"
+msgstr "Din nye epostliste: %(listname)s"
+
+#: Mailman/Cgi/create.py:242
+msgid "Mailing list creation results"
+msgstr "Resultat av opprettelse"
+
+#: Mailman/Cgi/create.py:248
+msgid ""
+"You have successfully created the mailing list\n"
+" <b>%(listname)s</b> and notification has been sent to the list owner\n"
+" <b>%(owner)s</b>. You can now:"
+msgstr ""
+"Du har n&aring; opprettet epostlisten <b>%(listname)s</b>,\n"
+"og en epost med melding om dette er sendt til listens eier <b>%(owner)s</"
+"b>.\n"
+"Du kan n&aring;:"
+
+#: Mailman/Cgi/create.py:252
+msgid "Visit the list's info page"
+msgstr "G&aring; til listens webside"
+
+#: Mailman/Cgi/create.py:253
+msgid "Visit the list's admin page"
+msgstr "G&aring; til listens administrasjonsside"
+
+#: Mailman/Cgi/create.py:254
+msgid "Create another list"
+msgstr "Opprette enda en liste"
+
+#: Mailman/Cgi/create.py:272
+msgid "Create a %(hostname)s Mailing List"
+msgstr "Opprette en epostliste p&aring; %(hostname)s"
+
+#: Mailman/Cgi/create.py:281 Mailman/Cgi/rmlist.py:199
+#: Mailman/Gui/Bounce.py:175 Mailman/htmlformat.py:339
+msgid "Error: "
+msgstr "Feil: "
+
+#: Mailman/Cgi/create.py:283
+msgid ""
+"You can create a new mailing list by entering the\n"
+" relevant information into the form below. The name of the mailing list\n"
+" will be used as the primary address for posting messages to the list, "
+"so\n"
+" it should be lowercased. You will not be able to change this once the\n"
+" list is created.\n"
+"\n"
+" <p>You also need to enter the email address of the initial list owner.\n"
+" Once the list is created, the list owner will be given notification, "
+"along\n"
+" with the initial list password. The list owner will then be able to\n"
+" modify the password and add or remove additional list owners.\n"
+"\n"
+" <p>If you want Mailman to automatically generate the initial list admin\n"
+" password, click on `Yes' in the autogenerate field below, and leave the\n"
+" initial list password fields empty.\n"
+"\n"
+" <p>You must have the proper authorization to create new mailing lists.\n"
+" Each site should have a <em>list creator's</em> password, which you can\n"
+" enter in the field at the bottom. Note that the site administrator's\n"
+" password can also be used for authentication.\n"
+" "
+msgstr ""
+"Du kan opprette en ny epostliste ved &aring; fylle ut skjemaet nedenfor.\n"
+"Epostlistens navn vil bli benyttet som adresse, s&aring; den b&oslash;r "
+"skrives med sm&aring; bokstaver.\n"
+"Du kan ikke endre navnet n&aring;r epostlisten er opprettet.\n"
+"\n"
+"<p>Du m&aring; ogs&aring; skrive inn epostadressen til listens eier.\n"
+"N&aring;r listen er opprettet, vil eierens f&aring; en epost om dette, som "
+"bl.a. inneholder listens passord.\n"
+"Eieren av listen kan dermed g&aring; inn p&aring; administrasjonssiden og "
+"endre n&oslash;dvendige innstillinger der, samt skifte passord hvis &oslash;"
+"nskelig.\n"
+"P&aring; administrasjonssiden kan dessuten flere epostadresser legges inn "
+"som eiere.\n"
+"\n"
+"<p>Hvis du vil at Mailman skal generere listens passord automatisk, velg "
+"'ja' i det tilh&oslash;rende feltet i skjemaet nedenfor,\n"
+"og la passord-feltene v&aelig;re tomme.\n"
+"\n"
+"<p>Du m&aring; ha et passord for &aring; kunne opprette en epostliste.\n"
+"Hver Mailman installasjon b&oslash;r ha et passord for opprettelse av "
+"lister.\n"
+"Merk at systemadministratorens passord kan ogs&aring; brukes til dette."
+
+#: Mailman/Cgi/create.py:309
+msgid "List Identity"
+msgstr "Listeidentitet"
+
+#: Mailman/Cgi/create.py:312
+msgid "Name of list:"
+msgstr "Listens navn:"
+
+#: Mailman/Cgi/create.py:317
+msgid "Initial list owner address:"
+msgstr "Eierens epostadresse:"
+
+#: Mailman/Cgi/create.py:326
+msgid "Auto-generate initial list password?"
+msgstr "Generere listens passord automatisk?"
+
+#: Mailman/Cgi/create.py:333
+msgid "Initial list password:"
+msgstr "Listepassord:"
+
+#: Mailman/Cgi/create.py:338
+msgid "Confirm initial password:"
+msgstr "Listepassord en gang til:"
+
+#: Mailman/Cgi/create.py:348
+msgid "List Characteristics"
+msgstr "Noen egenskaper for listen"
+
+#: Mailman/Cgi/create.py:352
+msgid ""
+"Should new members be quarantined before they\n"
+" are allowed to post unmoderated to this list? Answer <em>Yes</em> to "
+"hold\n"
+" new member postings for moderator approval by default."
+msgstr ""
+"Skal nye medlemmer settes i karantene før de kan sende epost rett til "
+"listen?\n"
+"Svarer du <em>Ja</em> vil epost fra nye medlemmer holdes tilbake for "
+"godkjenning av listemoderator."
+
+#: Mailman/Cgi/create.py:383
+msgid ""
+"Initial list of supported languages. <p>Note that if you do not\n"
+" select at least one initial language, the list will use the server\n"
+" default language of %(deflang)s"
+msgstr ""
+"Spr&aring;k tilgjengelige for denne listen.\n"
+"<p>Velger du ikke minst ett spr&aring;k, vil listen benyttes serverens\n"
+"standardspr&aring;k, som er %(deflang)s"
+
+#: Mailman/Cgi/create.py:394
+msgid "Send \"list created\" email to list owner?"
+msgstr "Sende epost om opprettelse til listens eier?"
+
+#: Mailman/Cgi/create.py:403
+msgid "List creator's (authentication) password:"
+msgstr "Passord for &aring; opprette ny epostliste:"
+
+#: Mailman/Cgi/create.py:408
+msgid "Create List"
+msgstr "Opprett liste"
+
+#: Mailman/Cgi/create.py:409
+msgid "Clear Form"
+msgstr "Nytt skjema"
+
+#: Mailman/Cgi/edithtml.py:43
+msgid "General list information page"
+msgstr "Listens webside"
+
+#: Mailman/Cgi/edithtml.py:44
+msgid "Subscribe results page"
+msgstr "Resultat av p&aring;melding"
+
+#: Mailman/Cgi/edithtml.py:45
+msgid "User specific options page"
+msgstr "Brukerinnstillinger"
+
+#: Mailman/Cgi/edithtml.py:57
+msgid "List name is required."
+msgstr "Listens navn er p&aring;krevd"
+
+#: Mailman/Cgi/edithtml.py:97
+msgid "%(realname)s -- Edit html for %(template_info)s"
+msgstr "%(realname)s -- Redigere html for %(template_info)s"
+
+#: Mailman/Cgi/edithtml.py:103
+msgid "Edit HTML : Error"
+msgstr "Redigere HTML : Feil"
+
+#: Mailman/Cgi/edithtml.py:104
+msgid "%(safetemplatename)s: Invalid template"
+msgstr "%(safetemplatename)s: Ugyldig mal"
+
+#: Mailman/Cgi/edithtml.py:109 Mailman/Cgi/edithtml.py:110
+msgid "%(realname)s -- HTML Page Editing"
+msgstr "%(realname)s -- Redigere HTML-kode for websider"
+
+#: Mailman/Cgi/edithtml.py:111
+msgid "Select page to edit:"
+msgstr "Velg websiden du vil redigere:"
+
+#: Mailman/Cgi/edithtml.py:137
+msgid "View or edit the list configuration information."
+msgstr "Tilbake til listens administrasjonsside"
+
+#: Mailman/Cgi/edithtml.py:145
+msgid "When you are done making changes..."
+msgstr "N&aring;r du er ferdig med &aring; gj&oslash;re endringer..."
+
+#: Mailman/Cgi/edithtml.py:146
+msgid "Submit Changes"
+msgstr "Lagre Endringer"
+
+#: Mailman/Cgi/edithtml.py:153
+msgid "Can't have empty html page."
+msgstr "HTML-siden kan ikke v&aelig;re tom!"
+
+#: Mailman/Cgi/edithtml.py:154
+msgid "HTML Unchanged."
+msgstr "Ingen endringer i HTML-koden."
+
+#: Mailman/Cgi/edithtml.py:169
+msgid "HTML successfully updated."
+msgstr "HTML-koden er oppdatert."
+
+#: Mailman/Cgi/listinfo.py:71
+msgid "%(hostname)s Mailing Lists"
+msgstr "Epostlister p&aring; %(hostname)s"
+
+#: Mailman/Cgi/listinfo.py:103
+msgid ""
+"<p>There currently are no publicly-advertised\n"
+" %(mailmanlink)s mailing lists on %(hostname)s."
+msgstr ""
+"<p>Det er for tiden ingen %(mailmanlink)s epostlister offentlig tilgjengelig "
+"p&aring; %(hostname)s."
+
+#: Mailman/Cgi/listinfo.py:107
+msgid ""
+"<p>Below is a listing of all the public mailing lists on\n"
+" %(hostname)s. Click on a list name to get more information "
+"about\n"
+" the list, or to subscribe, unsubscribe, and change the "
+"preferences\n"
+" on your subscription."
+msgstr ""
+"<p>Nedenfor finner du en liste over alle offentlig tilgjengelige epostlister "
+"p&aring; %(hostname)s.\n"
+"Klikk p&aring; en liste for &aring; f&aring; mer informasjon om listen, for "
+"&aring; melde deg p&aring;, melde deg av, eller\n"
+"endre dine personlige innstillinger for listen."
+
+#: Mailman/Cgi/listinfo.py:113
+msgid "right"
+msgstr "riktige"
+
+#: Mailman/Cgi/listinfo.py:116
+msgid ""
+" To visit the general information page for an unadvertised list,\n"
+" open a URL similar to this one, but with a '/' and the %(adj)s\n"
+" list name appended.\n"
+" <p>List administrators, you can visit "
+msgstr ""
+" For &aring; g&aring; til informasjonssiden for en epostliste som ikke er "
+"offentlig tilgjengelig,\n"
+"legg til '/' og deretter listens %(adj)s navn, p&aring; URLen til denne "
+"websiden.\n"
+"<p>Listeadministratorer kan benytte "
+
+#: Mailman/Cgi/listinfo.py:121
+msgid "the list admin overview page"
+msgstr "administrasjonssiden"
+
+#: Mailman/Cgi/listinfo.py:122
+msgid ""
+" to find the management interface for your list.\n"
+" <p>Send questions or comments to "
+msgstr ""
+" for &aring; administrere en liste.\n"
+"<p>Send sp&oslash;rsm&aring;l og kommentarer til "
+
+#: Mailman/Cgi/listinfo.py:187
+msgid "Edit Options"
+msgstr "Endre Innstillinger"
+
+#: Mailman/Cgi/listinfo.py:194 Mailman/Cgi/options.py:767
+#: Mailman/Cgi/roster.py:111
+msgid "View this page in"
+msgstr "Se denne siden p&aring;"
+
+#: Mailman/Cgi/options.py:51 Mailman/Cgi/options.py:68
+msgid "CGI script error"
+msgstr "CGI skriptfeil"
+
+#: Mailman/Cgi/options.py:54
+msgid "Invalid options to CGI script."
+msgstr "Ugyldige parametre til CGI skriptet."
+
+#: Mailman/Cgi/options.py:96
+msgid "No address given"
+msgstr "Ingen epostadresse angitt"
+
+#: Mailman/Cgi/options.py:108 Mailman/Cgi/options.py:155
+#: Mailman/Cgi/options.py:177
+msgid "No such member: %(safeuser)s."
+msgstr "Medlemmet finnes ikke: %(safeuser)s."
+
+#: Mailman/Cgi/options.py:150 Mailman/Cgi/options.py:160
+msgid "The confirmation email has been sent."
+msgstr "En epost med bekreftelse er sendt."
+
+#: Mailman/Cgi/options.py:171 Mailman/Cgi/options.py:183
+#: Mailman/Cgi/options.py:226
+msgid "A reminder of your password has been emailed to you."
+msgstr "En epost med passordet er sendt til deg."
+
+#: Mailman/Cgi/options.py:200
+msgid "Authentication failed."
+msgstr "Innlogging mislyktes."
+
+#: Mailman/Cgi/options.py:232
+msgid "List subscriptions for %(user)s on %(hostname)s"
+msgstr "Vise listemedlemskap for %(user)s p&aring; %(hostname)s"
+
+#: Mailman/Cgi/options.py:235
+msgid ""
+"Click on a link to visit your options page for the\n"
+" requested mailing list."
+msgstr ""
+"Klikk p&aring; en liste for &aring; g&aring; til dine personlige "
+"innstillinger for den."
+
+#: Mailman/Cgi/options.py:284
+msgid "Addresses did not match!"
+msgstr "Adressene er ikke like!"
+
+#: Mailman/Cgi/options.py:289
+msgid "You are already using that email address"
+msgstr "Den epostadressen er du allerede p&aring;meldt listen med"
+
+#: Mailman/Cgi/options.py:301
+msgid ""
+"The new address you requested %(newaddr)s is already a member of the\n"
+"%(listname)s mailing list, however you have also requested a global change "
+"of\n"
+"address. Upon confirmation, any other mailing list containing the address\n"
+"%(user)s will be changed. "
+msgstr ""
+"Den nye adressen %(newaddr)s er allerede påmeldt epostlisten %(listname)s,\n"
+"men du har også bedt om endring på alle lister. Etter ditt samtykke vil\n"
+"alle andre epostlister som inneholder %(user)s bli endret. "
+
+#: Mailman/Cgi/options.py:310
+msgid "The new address is already a member: %(newaddr)s"
+msgstr "Den nye adressen er allerede påmeldt: %(newaddr)s"
+
+#: Mailman/Cgi/options.py:316
+msgid "Addresses may not be blank"
+msgstr "Adressene kan ikke v&aelig;re tomme"
+
+#: Mailman/Cgi/options.py:328
+msgid "A confirmation message has been sent to %(newaddr)s. "
+msgstr ""
+"En foresp&oslash;rsel om bekreftelse er sendt i en epost til %(newaddr)s. "
+
+#: Mailman/Cgi/options.py:337
+msgid "Bad email address provided"
+msgstr "Ugyldig epostadresse angitt"
+
+#: Mailman/Cgi/options.py:339
+msgid "Illegal email address provided"
+msgstr "Ulovlig epostadresse angitt"
+
+#: Mailman/Cgi/options.py:341
+msgid "%(newaddr)s is already a member of the list."
+msgstr "%(newaddr)s er allerede medlem av listen."
+
+#: Mailman/Cgi/options.py:350
+msgid "Member name successfully changed. "
+msgstr "Navnet er endret. "
+
+#: Mailman/Cgi/options.py:361
+msgid "Passwords may not be blank"
+msgstr "Passordene kan ikke v&aelig;re tomme"
+
+#: Mailman/Cgi/options.py:366
+msgid "Passwords did not match!"
+msgstr "Passordene er ikke like!"
+
+#: Mailman/Cgi/options.py:381 Mailman/Commands/cmd_password.py:79
+#: Mailman/Commands/cmd_password.py:105
+msgid "Password successfully changed."
+msgstr "Passordet ditt er endret."
+
+#: Mailman/Cgi/options.py:390
+msgid ""
+"You must confirm your unsubscription request by turning\n"
+" on the checkbox below the <em>Unsubscribe</em> button. You\n"
+" have not been unsubscribed!"
+msgstr ""
+"Du m&aring; bekrefte at du vil melde deg ut av listen ved &aring; krysse av "
+"valget for dette.\n"
+"Du er IKKE fjernet fra listen!"
+
+#: Mailman/Cgi/options.py:422
+msgid "Unsubscription results"
+msgstr "Resultat av utmelding"
+
+#: Mailman/Cgi/options.py:426
+msgid ""
+"Your unsubscription request has been received and\n"
+" forwarded on to the list moderators for approval. You will\n"
+" receive notification once the list moderators have made their\n"
+" decision."
+msgstr ""
+"Din s&oslash;knad om &aring; bli meldt ut av listen er mottatt og vil bli "
+"vurdert av listemoderatorene.\n"
+"Du vil motta en melding s&aring; snart de har tatt en avgj&oslash;relse."
+
+#: Mailman/Cgi/options.py:431
+msgid ""
+"You have been successfully unsubscribed from the\n"
+" mailing list %(fqdn_listname)s. If you were receiving digest\n"
+" deliveries you may get one more digest. If you have any "
+"questions\n"
+" about your unsubscription, please contact the list owners at\n"
+" %(owneraddr)s."
+msgstr ""
+"Du er n&aring; meldt ut av listen %(fqdn_listname)s.\n"
+"Hvis du benyttet sammendrag-modus, kan det v&aelig;re du fremdeles vil motta "
+"en siste samle-epost.\n"
+"Har du sp&oslash;rsm&aring;l knyttet til din utmelding, kontakt listens eier "
+"p&aring; %(owneraddr)s."
+
+#: Mailman/Cgi/options.py:582
+msgid ""
+"The list administrator has disabled digest delivery for\n"
+" this list, so your delivery option has not been set. However "
+"your\n"
+" other options have been set successfully."
+msgstr ""
+"Listeadministratoren har bestemt at sammendrag-modus ikke skal v&aelig;re "
+"tilgjengelig for denne listen.\n"
+"Ditt valg om &aring; sette p&aring; sammendrag-modus ble derfor ikke "
+"gjennomf&oslash;rt, men alle andre endringer du gjorde, er gjennomf&oslash;"
+"rt."
+
+#: Mailman/Cgi/options.py:586
+msgid ""
+"The list administrator has disabled non-digest delivery\n"
+" for this list, so your delivery option has not been set. "
+"However\n"
+" your other options have been set successfully."
+msgstr ""
+"Listeadministratoren har bestemt at normal-modus ikke skal v&aelig;re "
+"tilgjengelig for denne listen.\n"
+"Ditt valg om &aring; skru av sammendrag-modus ble derfor ikke "
+"gjennomf&oslash;rt, men alle andre endringer du gjorde, er gjennomf&oslash;"
+"rt."
+
+#: Mailman/Cgi/options.py:590
+msgid "You have successfully set your options."
+msgstr "Dine valg er n&aring; satt slik du &oslash;nsket."
+
+#: Mailman/Cgi/options.py:593
+msgid "You may get one last digest."
+msgstr "Det kan v&aelig;re du vil motta en siste samle-epost."
+
+#: Mailman/Cgi/options.py:662
+msgid "<em>Yes, I really want to unsubscribe</em>"
+msgstr "<em>Ja, jeg vil melde meg ut av listen</em>"
+
+#: Mailman/Cgi/options.py:666
+msgid "Change My Password"
+msgstr "Endre Mitt Passord"
+
+#: Mailman/Cgi/options.py:669
+msgid "List my other subscriptions"
+msgstr "Vise andre lister jeg er medlem av"
+
+#: Mailman/Cgi/options.py:675
+msgid "Email My Password To Me"
+msgstr "Send Meg Passordet Mitt"
+
+#: Mailman/Cgi/options.py:677
+msgid "password"
+msgstr "passord"
+
+#: Mailman/Cgi/options.py:679
+msgid "Log out"
+msgstr "Logg ut"
+
+#: Mailman/Cgi/options.py:681
+msgid "Submit My Changes"
+msgstr "Lagre Endringer"
+
+#: Mailman/Cgi/options.py:693
+msgid "days"
+msgstr "dager"
+
+#: Mailman/Cgi/options.py:695
+msgid "day"
+msgstr "dag"
+
+#: Mailman/Cgi/options.py:696
+msgid "%(days)d %(units)s"
+msgstr "%(days)d %(units)s"
+
+#: Mailman/Cgi/options.py:702
+msgid "Change My Address and Name"
+msgstr "Endre Min Adresse og Mitt Navn"
+
+#: Mailman/Cgi/options.py:726
+msgid "<em>No topics defined</em>"
+msgstr "</em>Ingen emner er definert</em>"
+
+#: Mailman/Cgi/options.py:734
+msgid ""
+"\n"
+"You are subscribed to this list with the case-preserved address\n"
+"<em>%(cpuser)s</em>."
+msgstr ""
+"\n"
+"Du er medlem av denne listen med epostadressen <em>%(cpuser)s</em>."
+
+#: Mailman/Cgi/options.py:748
+msgid "%(realname)s list: member options login page"
+msgstr "%(realname)s: innlogging til personlige innstillinger"
+
+#: Mailman/Cgi/options.py:749
+msgid "email address and "
+msgstr "epostadressen og "
+
+#: Mailman/Cgi/options.py:751
+msgid "%(realname)s list: member options for user %(user)s"
+msgstr "%(realname)s: personlige innstillinger for %(user)s"
+
+#: Mailman/Cgi/options.py:777
+msgid ""
+"In order to change your membership option, you must\n"
+" first log in by giving your %(extra)smembership password in the section\n"
+" below. If you don't remember your membership password, you can have it\n"
+" emailed to you by clicking on the button below. If you just want to\n"
+" unsubscribe from this list, click on the <em>Unsubscribe</em> button and "
+"a\n"
+" confirmation message will be sent to you.\n"
+"\n"
+" <p><strong><em>Important:</em></strong> From this point on, you must "
+"have\n"
+" cookies enabled in your browser, otherwise none of your changes will "
+"take\n"
+" effect.\n"
+" "
+msgstr ""
+"For &aring; endre p&aring; dine personlige innstillinger, m&aring; du logge "
+"inn nedenfor ved &aring; gi inn %(extra)spassordet ditt.\n"
+"Dersom du ikke husker passordet, kan du be om &aring; f&aring; det tilsendt "
+"til deg i en epost ved &aring; trykke p&aring; knappen nedenfor.\n"
+"Hvis du bare &oslash;nsker &aring; melde deg ut av listen, klikk <em>Meld "
+"meg ut</em> knappen nedenfor,\n"
+"og du vil etter kort tid motta en epost som ber deg bekrefte dette.\n"
+"\n"
+"<p><strong><em>Viktig:</em></strong> Fra n&aring; av m&aring; du ha cookies\n"
+"p&aring;sl&aring;tt i nettleseren din, ellers vil ingen endringer lagres.\n"
+" "
+
+#: Mailman/Cgi/options.py:791
+msgid "Email address:"
+msgstr "Epostadresse:"
+
+#: Mailman/Cgi/options.py:795
+msgid "Password:"
+msgstr "Passord:"
+
+#: Mailman/Cgi/options.py:797
+msgid "Log in"
+msgstr "Logg inn"
+
+#: Mailman/Cgi/options.py:805
+msgid ""
+"By clicking on the <em>Unsubscribe</em> button, a\n"
+" confirmation message will be emailed to you. This message will have a\n"
+" link that you should click on to complete the removal process (you can\n"
+" also confirm by email; see the instructions in the confirmation\n"
+" message)."
+msgstr ""
+"Ved &aring; klikke p&aring; <em>Meld meg ut</em> knappen, vil du f&aring; "
+"tilsendt en epost som ber deg bekrefte at du vil melde deg ut av listen.\n"
+"Denne eposten vil inneholde en link (URL) som du kan klikke p&aring; for "
+"&aring; bekrefte utmelding.\n"
+"(Du kan ogs&aring; bekrefte dette via epost; f&oslash;lg instruksjonene i "
+"epost du f&aring;r tilsendt.)"
+
+#: Mailman/Cgi/options.py:813
+msgid "Password reminder"
+msgstr "P&aring;minnelse om passord"
+
+#: Mailman/Cgi/options.py:817
+msgid ""
+"By clicking on the <em>Remind</em> button, your\n"
+" password will be emailed to you."
+msgstr ""
+"Trykker du p&aring; <em>Send P&aring;minnelse</em> knappen, vil du f&aring; "
+"tilsendt passordet ditt i en epost."
+
+#: Mailman/Cgi/options.py:820
+msgid "Remind"
+msgstr "Send p&aring;minnelse"
+
+#: Mailman/Cgi/options.py:920
+msgid "<missing>"
+msgstr "<mangler>"
+
+#: Mailman/Cgi/options.py:931
+msgid "Requested topic is not valid: %(topicname)s"
+msgstr "Emnet er ikke gyldig: %(topicname)s"
+
+#: Mailman/Cgi/options.py:936
+msgid "Topic filter details"
+msgstr "Mer informasjon om emnefilteret"
+
+#: Mailman/Cgi/options.py:939
+msgid "Name:"
+msgstr "Navn:"
+
+#: Mailman/Cgi/options.py:941
+msgid "Pattern (as regexp):"
+msgstr "Filter (regexp-uttrykk):"
+
+#: Mailman/Cgi/private.py:61
+msgid "Private Archive Error"
+msgstr "Feil i privat arkiv"
+
+#: Mailman/Cgi/private.py:62
+msgid "You must specify a list."
+msgstr "Du m&aring; angi en liste"
+
+#: Mailman/Cgi/private.py:99
+msgid "Private Archive Error - %(msg)s"
+msgstr "Feil i privat arkiv - %(msg)s"
+
+#: Mailman/Cgi/private.py:154
+msgid "Private archive file not found"
+msgstr "Finner ikke arkivfilen"
+
+#: Mailman/Cgi/rmlist.py:81
+msgid "You're being a sneaky list owner!"
+msgstr "Du er en snikende liste eier!"
+
+#: Mailman/Cgi/rmlist.py:119
+msgid "You are not authorized to delete this mailing list"
+msgstr "Du har ikke tilgang til &aring; slette denne epostlisten"
+
+#: Mailman/Cgi/rmlist.py:160
+msgid "Mailing list deletion results"
+msgstr "Resultat av sletting av epostliste"
+
+#: Mailman/Cgi/rmlist.py:167
+msgid ""
+"You have successfully deleted the mailing list\n"
+" <b>%(listname)s</b>."
+msgstr "Du har slettet epostlisten <b>%(listname)s</b>."
+
+#: Mailman/Cgi/rmlist.py:171
+msgid ""
+"There were some problems deleting the mailing list\n"
+" <b>%(listname)s</b>. Contact your site administrator at %(sitelist)"
+"s\n"
+" for details."
+msgstr ""
+"Det oppstod problemer under sletting av epostlisten <b>%(listname)s</b>.\n"
+"Kontakt systemadministratoren på %(sitelist)s for flere detaljer."
+
+#: Mailman/Cgi/rmlist.py:188
+msgid "Permanently remove mailing list <em>%(realname)s</em>"
+msgstr "Fjerne epostlisten <em>%(realname)s</em> permanent"
+
+#: Mailman/Cgi/rmlist.py:202
+msgid ""
+"This page allows you as the list owner, to permanent\n"
+" remove this mailing list from the system. <strong>This action is not\n"
+" undoable</strong> so you should undertake it only if you are absolutely\n"
+" sure this mailing list has served its purpose and is no longer "
+"necessary.\n"
+"\n"
+" <p>Note that no warning will be sent to your list members and after "
+"this\n"
+" action, any subsequent messages sent to the mailing list, or any of its\n"
+" administrative addreses will bounce.\n"
+"\n"
+" <p>You also have the option of removing the archives for this mailing "
+"list\n"
+" at this time. It is almost always recommended that you do\n"
+" <strong>not</strong> remove the archives, since they serve as the\n"
+" historical record of your mailing list.\n"
+"\n"
+" <p>For your safety, you will be asked to reconfirm the list password.\n"
+" "
+msgstr ""
+"P&aring; denne siden kan du, som listens eier, permanent fjerne listen fra "
+"systemet.\n"
+"<strong>Du kan ikke angre denne avgj&oslash;relsen</strong>,\n"
+"s&aring; fjerner du listen b&oslash;r du v&aelig;re helt sikker p&aring; at "
+"listen har gjort jobben sin,\n"
+"og aldri vil bli brukt lengre.\n"
+"\n"
+"<p>Det vil ikke bli sendt noen melding til listens medlemmer om at listen "
+"fjernes.\n"
+"All epost til listen eller dens administrative adresser vil derfor g&aring; "
+"direkte i retur tilbake til avsender.\n"
+"\n"
+"<p>Du kan ogs&aring; samtidig fjerne arkivet for listen hvis du &oslash;"
+"nsker det.\n"
+"Det anbefales <strong>ikke</strong> &aring; fjerne arkivet, da det kan "
+"v&aelig;re nyttig &aring; ta vare p&aring; listens historie.\n"
+"\n"
+"<p>Som en ekstra sikkerhet vil du bli bedt om &aring; bekrefte listepassord "
+"en ekstra gang."
+
+#: Mailman/Cgi/rmlist.py:223
+msgid "List password:"
+msgstr "Listepassord:"
+
+#: Mailman/Cgi/rmlist.py:227
+msgid "Also delete archives?"
+msgstr "Slette arkivet ogs&aring;?"
+
+#: Mailman/Cgi/rmlist.py:235
+msgid "<b>Cancel</b> and return to list administration"
+msgstr "<b>Avbryt</b> og g&aring; tilbake til administrasjon av listen"
+
+#: Mailman/Cgi/rmlist.py:238
+msgid "Delete this list"
+msgstr "Slette denne listen"
+
+#: Mailman/Cgi/roster.py:48 Mailman/Cgi/subscribe.py:50
+msgid "Invalid options to CGI script"
+msgstr "Ugyldige parametre til CGI skriptet"
+
+#: Mailman/Cgi/roster.py:99
+msgid "%(realname)s roster authentication failed."
+msgstr "Tilgang til %(realname)s feilet."
+
+#: Mailman/Cgi/roster.py:127 Mailman/Cgi/roster.py:128
+#: Mailman/Cgi/subscribe.py:49 Mailman/Cgi/subscribe.py:60
+msgid "Error"
+msgstr "Feil"
+
+#: Mailman/Cgi/subscribe.py:109
+msgid "You must supply a valid email address."
+msgstr "Du m&aring; oppgi en gyldig epostadresse."
+
+#: Mailman/Cgi/subscribe.py:122
+msgid "You may not subscribe a list to itself!"
+msgstr "Du kan ikke melde en liste p&aring; seg selv!"
+
+#: Mailman/Cgi/subscribe.py:131
+msgid "If you supply a password, you must confirm it."
+msgstr ""
+"Velger du et passord selv, m&aring; du bekrefte det ved &aring; fylle inn "
+"begge passordfeltene."
+
+#: Mailman/Cgi/subscribe.py:133
+msgid "Your passwords did not match."
+msgstr "Passordene er ikke like."
+
+#: Mailman/Cgi/subscribe.py:167
+msgid ""
+"Your subscription request has been received, and will soon be acted upon.\n"
+"Depending on the configuration of this mailing list, your subscription "
+"request\n"
+"may have to be first confirmed by you via email, or approved by the list\n"
+"moderator. If confirmation is required, you will soon get a confirmation\n"
+"email which contains further instructions."
+msgstr ""
+"Din s&oslash;knad om p&aring;melding er mottatt, og vil snart bli "
+"behandlet.\n"
+"Hva som skjer videre er avhengig av hvordan denne epostlisten er satt opp,\n"
+"det kan v&aelig;re s&oslash;knaden din f&oslash;rst m&aring; bekreftes via "
+"epost,\n"
+"eller godkjennes av listemoderatoren. Dersom en bekreftelse kreves, vil du "
+"motta\n"
+"en epost med n&aelig;rmere instruksjoner."
+
+#: Mailman/Cgi/subscribe.py:181
+msgid ""
+"The email address you supplied is banned from this\n"
+" mailing list. If you think this restriction is erroneous, please\n"
+" contact the list owners at %(listowner)s."
+msgstr ""
+"Epostadressen du oppga er utestengt fra denne epostlisten.\n"
+"Dersom du tror dette kan være en feil, kontakt listens eier på %(listowner)s."
+
+#: Mailman/Cgi/subscribe.py:185
+msgid ""
+"The email address you supplied is not valid. (E.g. it must contain an\n"
+"`@'.)"
+msgstr ""
+"Epostadressen du har oppgitt er ikke gyldig.\n"
+"(Den m&aring; f.eks. inneholde en '@'.)"
+
+#: Mailman/Cgi/subscribe.py:189
+msgid ""
+"Your subscription is not allowed because the email address you gave is\n"
+"insecure."
+msgstr ""
+"P&aring;meldingen din tillates ikke fordi du har oppgitt en usikker "
+"epostadresse."
+
+#: Mailman/Cgi/subscribe.py:197
+msgid ""
+"Confirmation from your email address is required, to prevent anyone from\n"
+"subscribing you without permission. Instructions are being sent to you at\n"
+"%(email)s. Please note your subscription will not start until you confirm\n"
+"your subscription."
+msgstr ""
+"Bekreftelse fra epostadressen din er n&oslash;dvendig, slik at ingen andre "
+"kan melde deg p&aring; listen mot din vilje. Du vil n&aring; motta en epost "
+"med n&aelig;rmere instruksjoner p&aring; adressen %(email)s. Du vil ikke bli "
+"med p&aring; listen f&oslash;r du har fulgt disse instruksjonene og "
+"bekreftet at du vil v&aelig;re med p&aring; listen."
+
+#: Mailman/Cgi/subscribe.py:209
+msgid ""
+"Your subscription request was deferred because %(x)s. Your request has "
+"been\n"
+"forwarded to the list moderator. You will receive email informing you of "
+"the\n"
+"moderator's decision when they get to your request."
+msgstr ""
+"P&aring;melding er utsatt fordi %(x)s.\n"
+"Foresp&oslash;rselen din er sendt til listemoderatoren.\n"
+"Du vil motta en epost med moderatorens avgj&oslash;relse s&aring; snart han/"
+"hun har tatt en beslutning."
+
+#: Mailman/Cgi/subscribe.py:216 Mailman/Commands/cmd_confirm.py:60
+msgid "You are already subscribed."
+msgstr "Du er allerede medlem av listen."
+
+#: Mailman/Cgi/subscribe.py:230
+msgid "Mailman privacy alert"
+msgstr "Sikkerhetsmelding fra Mailman"
+
+#: Mailman/Cgi/subscribe.py:231
+msgid ""
+"An attempt was made to subscribe your address to the mailing list\n"
+"%(listaddr)s. You are already subscribed to this mailing list.\n"
+"\n"
+"Note that the list membership is not public, so it is possible that a bad\n"
+"person was trying to probe the list for its membership. This would be a\n"
+"privacy violation if we let them do this, but we didn't.\n"
+"\n"
+"If you submitted the subscription request and forgot that you were already\n"
+"subscribed to the list, then you can ignore this message. If you suspect "
+"that\n"
+"an attempt is being made to covertly discover whether you are a member of "
+"this\n"
+"list, and you are worried about your privacy, then feel free to send a "
+"message\n"
+"to the list administrator at %(listowner)s.\n"
+msgstr ""
+"Din epostadresse ble forsøkt meldt på epostlisten %(listaddr)s.\n"
+"Du er allerede medlem av denne listen.\n"
+"\n"
+"Merk: listen over medlemmer er ikke tilgjengelig for alle, så det er mulig\n"
+"at en utenforstående prøvde å finne ut hvem som er medlem av listen.\n"
+"Det ville vært et brudd i taushetsplikten dersom vi tillot utenforstående å\n"
+"prøve seg frem på denne måten, derfor har vi kun gitt en nøytral melding til "
+"den\n"
+"som prøvde seg.\n"
+"\n"
+"Hvis du prøvde å melde deg på men glemte at du allerede var påmeldt, kan du\n"
+"bare slette den meldingen og ikke bry deg noe mer om den. Hvis du har "
+"mistanke\n"
+"om at noen prøver å finne ut om du er medlem av listen eller ikke, eller\n"
+"føler deg usikker på beskyttelse av opplysninger om deg, sende gjerne en\n"
+"melding til listeadministratoren på adressen %(listowner)s.\n"
+
+#: Mailman/Cgi/subscribe.py:250
+msgid "This list does not support digest delivery."
+msgstr "Denne listen st&oslash;tter ikke sammendrag-modus."
+
+#: Mailman/Cgi/subscribe.py:252
+msgid "This list only supports digest delivery."
+msgstr "Denne listen st&oslash;tter kun sammendrag-modus."
+
+#: Mailman/Cgi/subscribe.py:259
+msgid "You have been successfully subscribed to the %(realname)s mailing list."
+msgstr "Du er n&aring; meldt p&aring; epostlisten %(realname)s."
+
+#: Mailman/Commands/cmd_confirm.py:17
+msgid ""
+"\n"
+" confirm <confirmation-string>\n"
+" Confirm an action. The confirmation-string is required and should "
+"be\n"
+" supplied with in mailback confirmation notice.\n"
+msgstr ""
+"\n"
+" confirm <bekreftelses-indikator>\n"
+" Bekrefter en forespørsel. En indikator må angis, og skal ha blitt "
+"gitt\n"
+" i eposten som ba om bekreftelse.\n"
+
+#: Mailman/Commands/cmd_confirm.py:40 Mailman/Commands/cmd_lists.py:40
+#: Mailman/Commands/cmd_set.py:133 Mailman/Commands/cmd_subscribe.py:69
+#: Mailman/Commands/cmd_unsubscribe.py:52 Mailman/Commands/cmd_who.py:65
+msgid "Usage:"
+msgstr "Brukes slik:"
+
+#: Mailman/Commands/cmd_confirm.py:49
+msgid ""
+"Invalid confirmation string. Note that confirmation strings expire\n"
+"approximately %(days)s days after the initial subscription request. If "
+"your\n"
+"confirmation has expired, please try to re-submit your original request or\n"
+"message."
+msgstr ""
+"Ugyldig identifikator for bekreftelse av påmelding.\n"
+"Merk at slike identifikatorer går ut på dato omtrent %(days)s dager etter\n"
+"at du har mottatt eposten med adressen. Dersom dette er tilfellet, prøv å\n"
+"send den opprinnelige forespørselen eller meldingen på nytt."
+
+#: Mailman/Commands/cmd_confirm.py:55
+msgid "Your request has been forwarded to the list moderator for approval."
+msgstr ""
+"Din forespørsel må godkjennes, og er videresendt til listemoderatoren for "
+"godkjenning."
+
+#: Mailman/Commands/cmd_confirm.py:63
+msgid ""
+"You are not current a member. Have you already unsubscribed or changed\n"
+"your email address?"
+msgstr ""
+"Du er ikke medlem av listen. Har du kanskje allerede meldt deg ut, eller "
+"endret epostadresse?"
+
+#: Mailman/Commands/cmd_confirm.py:73
+msgid "Confirmation succeeded"
+msgstr "Bekreftelse mottatt"
+
+#: Mailman/Commands/cmd_echo.py:17
+msgid ""
+"\n"
+" echo [args]\n"
+" Simply echo an acknowledgement. Args are echoed back unchanged.\n"
+msgstr ""
+"\n"
+" echo [args]\n"
+" Denne kommandoen sender bare tilbake et svar på at den ble mottatt.\n"
+" 'args' sendes med slik de ble angitt.\n"
+
+#: Mailman/Commands/cmd_end.py:17
+msgid ""
+"\n"
+" end\n"
+" Stop processing commands. Use this if your mail program "
+"automatically\n"
+" adds a signature file.\n"
+msgstr ""
+"\n"
+" end\n"
+" Angir slutt på kommandoer. All tekst etter denne kommandoen blir "
+"ikke\n"
+" forsøkt tolket. Bruk denne f.eks. hvis epostprogrammet ditt "
+"automatisk\n"
+" legger til en signatur nederst i epost du sender.\n"
+
+#: Mailman/Commands/cmd_help.py:17
+msgid ""
+"\n"
+" help\n"
+" Print this help message.\n"
+msgstr ""
+"\n"
+" help\n"
+" Viser denne hjelpeteksten.\n"
+
+#: Mailman/Commands/cmd_help.py:47
+msgid "You can access your personal options via the following url:"
+msgstr "Du har tilgang til dine personlige innstillinger på følgende url:"
+
+#: Mailman/Commands/cmd_info.py:17
+msgid ""
+"\n"
+" info\n"
+" Get information about this mailing list.\n"
+msgstr ""
+"\n"
+" info\n"
+" Viser informasjon om denne epostlisten.\n"
+
+#: Mailman/Commands/cmd_info.py:39 Mailman/Commands/cmd_lists.py:62
+msgid "n/a"
+msgstr ""
+
+#: Mailman/Commands/cmd_info.py:44
+msgid "List name: %(listname)s"
+msgstr "Listenavn: %(listname)s"
+
+#: Mailman/Commands/cmd_info.py:45
+msgid "Description: %(description)s"
+msgstr "Beskrivelse: %(description)s"
+
+#: Mailman/Commands/cmd_info.py:46
+msgid "Postings to: %(postaddr)s"
+msgstr "Adresse: %(postaddr)s"
+
+#: Mailman/Commands/cmd_info.py:47
+msgid "List Helpbot: %(requestaddr)s"
+msgstr "Kommandoadresse: %(requestaddr)s"
+
+#: Mailman/Commands/cmd_info.py:48
+msgid "List Owners: %(owneraddr)s"
+msgstr "Listens eier(e): %(owneraddr)s"
+
+#: Mailman/Commands/cmd_info.py:49
+msgid "More information: %(listurl)s"
+msgstr "Mer informasjon: %(listurl)s"
+
+#: Mailman/Commands/cmd_join.py:17
+msgid "The `join' command is synonymous with `subscribe'.\n"
+msgstr "'join' kommandoen er den samme som 'subscribe'.\n"
+
+#: Mailman/Commands/cmd_leave.py:17
+msgid "The `leave' command is synonymous with `unsubscribe'.\n"
+msgstr "'leave' kommandoen er den samme som 'unsubscribe'.\n"
+
+#: Mailman/Commands/cmd_lists.py:17
+msgid ""
+"\n"
+" lists\n"
+" See a list of the public mailing lists on this GNU Mailman server.\n"
+msgstr ""
+"\n"
+" lists\n"
+" Viser en liste over epostlister som er offentlig tilgjengelig på "
+"denne\n"
+" GNU Mailman tjeneren.\n"
+
+#: Mailman/Commands/cmd_lists.py:44
+msgid "Public mailing lists at %(hostname)s:"
+msgstr "Epostlister offentlig tilgjengelig på %(hostname)s:"
+
+#: Mailman/Commands/cmd_lists.py:66
+msgid "%(i)3d. List name: %(realname)s"
+msgstr "%(i)3d. Listenavn: %(realname)s"
+
+#: Mailman/Commands/cmd_lists.py:67
+msgid " Description: %(description)s"
+msgstr " Beskrivelse: %(description)s"
+
+#: Mailman/Commands/cmd_lists.py:68
+msgid " Requests to: %(requestaddr)s"
+msgstr " Forespørsler til: %(requestaddr)s"
+
+#: Mailman/Commands/cmd_password.py:17
+msgid ""
+"\n"
+" password [<oldpassword> <newpassword>] [address=<address>]\n"
+" Retrieve or change your password. With no arguments, this returns\n"
+" your current password. With arguments <oldpassword> and "
+"<newpassword>\n"
+" you can change your password.\n"
+"\n"
+" If you're posting from an address other than your membership "
+"address,\n"
+" specify your membership address with `address=<address>' (no "
+"brackets\n"
+" around the email address, and no quotes!). Note that in this case "
+"the\n"
+" response is always sent to the subscribed address.\n"
+msgstr ""
+"\n"
+" passord [<gammelt passord> <nytt passord>] [address=<epostadresse>]\n"
+" Henter eller endrer passordet ditt. Dersom ingen parametre angis,\n"
+" blir du tilsendt passordet ditt. Med parametrene <gammelt passord>\n"
+" og <nytt passord> kan du endre passordet ditt.\n"
+"\n"
+" Hvis du sender denne kommandoen fra en annen epostadresse enn den\n"
+" du er påmeldt listen med, må du angi epostadressen med\n"
+" 'address=<epostadresse>' (uten tegnene '<' og '>', og uten "
+"apostrofer).\n"
+" I dette tilfellet vil svaret alltid bli sendt til den påmeldte\n"
+" epostadressen.\n"
+
+#: Mailman/Commands/cmd_password.py:51 Mailman/Commands/cmd_password.py:64
+msgid "Your password is: %(password)s"
+msgstr "Passordet ditt er: %(password)s"
+
+#: Mailman/Commands/cmd_password.py:55 Mailman/Commands/cmd_password.py:68
+#: Mailman/Commands/cmd_password.py:91 Mailman/Commands/cmd_password.py:117
+#: Mailman/Commands/cmd_set.py:149 Mailman/Commands/cmd_set.py:219
+msgid "You are not a member of the %(listname)s mailing list"
+msgstr "Du er ikke medlem av epostlisten %(listname)s"
+
+#: Mailman/Commands/cmd_password.py:81 Mailman/Commands/cmd_password.py:107
+msgid ""
+"You did not give the correct old password, so your password has not been\n"
+"changed. Use the no argument version of the password command to retrieve "
+"your\n"
+"current password, then try again."
+msgstr ""
+"Det gamle passordet du har angitt er ikke riktig. Passordet ditt ble derfor\n"
+"ikke endret. Bruk kommandoen uten å angi noen parametre for å få passordet\n"
+"ditt, og prøv igjen med det."
+
+#: Mailman/Commands/cmd_password.py:85 Mailman/Commands/cmd_password.py:111
+msgid ""
+"\n"
+"Usage:"
+msgstr ""
+"\n"
+"Brukes slik:"
+
+#: Mailman/Commands/cmd_remove.py:17
+msgid "The `remove' command is synonymous with `unsubscribe'.\n"
+msgstr "'remove' kommandoen er den samme som 'unsubscribe'.\n"
+
+#: Mailman/Commands/cmd_set.py:26
+msgid ""
+"\n"
+" set ...\n"
+" Set or view your membership options.\n"
+"\n"
+" Use `set help' (without the quotes) to get a more detailed list of "
+"the\n"
+" options you can change.\n"
+"\n"
+" Use `set show' (without the quotes) to view your current option\n"
+" settings.\n"
+msgstr ""
+"\n"
+" set ...\n"
+" Setter eller viser personlige innstillinger.\n"
+"\n"
+" Bruk 'set help' (uten apostrofer) for å se en mer detaljert liste\n"
+" over innstillinger du kan endre.\n"
+"\n"
+" Bruk 'set show' (uten apostrofer) for å se hva innstillingene er\n"
+" satt til.\n"
+
+#: Mailman/Commands/cmd_set.py:37
+msgid ""
+"\n"
+" set help\n"
+" Show this detailed help.\n"
+"\n"
+" set show [address=<address>]\n"
+" View your current option settings. If you're posting from an "
+"address\n"
+" other than your membership address, specify your membership address\n"
+" with `address=<address>' (no brackets around the email address, and "
+"no\n"
+" quotes!).\n"
+"\n"
+" set authenticate <password> [address=<address>]\n"
+" To set any of your options, you must include this command first, "
+"along\n"
+" with your membership password. If you're posting from an address\n"
+" other than your membership address, specify your membership address\n"
+" with `address=<address>' (no brackets around the email address, and "
+"no\n"
+" quotes!).\n"
+"\n"
+" set ack on\n"
+" set ack off\n"
+" When the `ack' option is turned on, you will receive an\n"
+" acknowledgement message whenever you post a message to the list.\n"
+"\n"
+" set digest plain\n"
+" set digest mime\n"
+" set digest off\n"
+" When the `digest' option is turned off, you will receive postings\n"
+" immediately when they are posted. Use `set digest plain' if "
+"instead\n"
+" you want to receive postings bundled into a plain text digest\n"
+" (i.e. RFC 1153 digest). Use `set digest mime' if instead you want "
+"to\n"
+" receive postings bundled together into a MIME digest.\n"
+"\n"
+" set delivery on\n"
+" set delivery off\n"
+" Turn delivery on or off. This does not unsubscribe you, but "
+"instead\n"
+" tells Mailman not to deliver messages to you for now. This is "
+"useful\n"
+" if you're going on vacation. Be sure to use `set delivery on' when\n"
+" you return from vacation!\n"
+"\n"
+" set myposts on\n"
+" set myposts off\n"
+" Use `set myposts off' to not receive copies of messages you post to\n"
+" the list. This has no effect if you're receiving digests.\n"
+"\n"
+" set hide on\n"
+" set hide off\n"
+" Use `set hide on' to conceal your email address when people request\n"
+" the membership list.\n"
+"\n"
+" set duplicates on\n"
+" set duplicates off\n"
+" Use `set duplicates off' if you want Mailman to not send you "
+"messages\n"
+" if your address is explicitly mentioned in the To: or Cc: fields of\n"
+" the message. This can reduce the number of duplicate postings you\n"
+" will receive.\n"
+"\n"
+" set reminders on\n"
+" set reminders off\n"
+" Use `set reminders off' if you want to disable the monthly password\n"
+" reminder for this mailing list.\n"
+msgstr ""
+"\n"
+" set help\n"
+" Viser denne detaljerte hjelpeteksten.\n"
+"\n"
+" set show [address=<epostadresse>]\n"
+" Viser hva innstillingene er satt til. Hvis du sender fra en annen\n"
+" epostadresse enn den du er påmeldt listen med, kan du bruke\n"
+" address= parameteren til å angi epostadressen du vil benytte.\n"
+"\n"
+" set authenticate <passord> [address=<epostadresse>]\n"
+" For å kunne endre på innstillinger må du benytte denne kommandoen\n"
+" til å autentisere deg med. Hvis du sender fra en annen epostadresse\n"
+" enn den du er påmeldt listen med, kan du bruke address= parameteren\n"
+" til å angi epostadressen du vil benytte.\n"
+"\n"
+" set ack on\n"
+" set ack off\n"
+" Når 'ack' valget er satt, vil du hver gang du sender en epost til\n"
+" listen få en bekreftelse på at eposten din er mottatt.\n"
+"\n"
+" set digest plain\n"
+" set digest mime\n"
+" set digest off\n"
+" Når 'digest' valget er satt til 'av', vil du motta epost etter "
+"hvert\n"
+" som de sendes til listen. Bruk 'set digest plain' hvis du istedet\n"
+" med jevne mellomrom vil motta en samle-epost (sammendrag-modus, som\n"
+" definert i RFC 1153). Bruk 'set digest mime' for å motta slik "
+"samle-\n"
+" epost i MIME format.\n"
+"\n"
+" set myposts on\n"
+" set myposts off\n"
+" Bruk 'set myposts off' for å ikke motta epost du selv sender til\n"
+" listen. Denne innstillingen har ingen innvirkning dersom du har "
+"satt\n"
+" på sammendrag-modus.\n"
+"\n"
+" set hide on\n"
+" set hide off\n"
+" Bruk 'set hide on' for å gjemme epostadressen din når andre ber om "
+"å\n"
+" se hvem som er medlem av denne epostlisten.\n"
+"\n"
+" set duplicates on\n"
+" set duplicates off\n"
+" Bruk 'set duplicates off' hvis du vil at Mailman ikke skal sende "
+"epost\n"
+" til deg dersom din epostadresse er angitt i To: eller Cc: feltet i\n"
+" eposter. Dette kan redusere antall duplikater du eventuelt ville ha\n"
+" mottatt.\n"
+"\n"
+" set reminders on\n"
+" set reminders off\n"
+" Bruk 'set reminders off' hvis du ikke vil ha tilsendt en epost med\n"
+" passordet ditt én gang i måneden.\n"
+
+#: Mailman/Commands/cmd_set.py:122
+msgid "Bad set command: %(subcmd)s"
+msgstr "Ugyldig innstilling: %(subcmd)s"
+
+#: Mailman/Commands/cmd_set.py:151
+msgid "Your current option settings:"
+msgstr "Dine innstillinger:"
+
+#: Mailman/Commands/cmd_set.py:153 Mailman/Commands/cmd_set.py:191
+#: Mailman/Commands/cmd_set.py:194 Mailman/Commands/cmd_set.py:198
+#: Mailman/Commands/cmd_set.py:202
+msgid "off"
+msgstr "av"
+
+#: Mailman/Commands/cmd_set.py:153 Mailman/Commands/cmd_set.py:191
+#: Mailman/Commands/cmd_set.py:194 Mailman/Commands/cmd_set.py:198
+#: Mailman/Commands/cmd_set.py:202
+msgid "on"
+msgstr "på"
+
+#: Mailman/Commands/cmd_set.py:154
+msgid " ack %(onoff)s"
+msgstr " bekreft: %(onoff)s"
+
+#: Mailman/Commands/cmd_set.py:160
+msgid " digest plain"
+msgstr " sammendrag-modus i ren tekst"
+
+#: Mailman/Commands/cmd_set.py:162
+msgid " digest mime"
+msgstr " sammendrag-modus i MIME format"
+
+#: Mailman/Commands/cmd_set.py:164
+msgid " digest off"
+msgstr " ikke sammendrag-modus"
+
+#: Mailman/Commands/cmd_set.py:169
+msgid "delivery on"
+msgstr "epostlevering på"
+
+#: Mailman/Commands/cmd_set.py:171 Mailman/Commands/cmd_set.py:174
+#: Mailman/Commands/cmd_set.py:177 Mailman/Commands/cmd_set.py:181
+msgid "delivery off"
+msgstr "epostlevering av"
+
+#: Mailman/Commands/cmd_set.py:172
+msgid "by you"
+msgstr "av deg"
+
+#: Mailman/Commands/cmd_set.py:175
+msgid "by the admin"
+msgstr "av listeadministratoren"
+
+#: Mailman/Commands/cmd_set.py:178
+msgid "due to bounces"
+msgstr "på grunn av returmeldinger"
+
+#: Mailman/Commands/cmd_set.py:186
+msgid " %(status)s (%(how)s on %(date)s)"
+msgstr " %(status)s (%(how)s %(date)s)"
+
+#: Mailman/Commands/cmd_set.py:192
+msgid " myposts %(onoff)s"
+msgstr " ikke-mine: %(onoff)s"
+
+#: Mailman/Commands/cmd_set.py:195
+msgid " hide %(onoff)s"
+msgstr " skjult: %(onoff)s"
+
+#: Mailman/Commands/cmd_set.py:199
+msgid " duplicates %(onoff)s"
+msgstr " unngå duplikater: %(onoff)s"
+
+#: Mailman/Commands/cmd_set.py:203
+msgid " reminders %(onoff)s"
+msgstr " passordpåminnelse: %(onoff)s"
+
+#: Mailman/Commands/cmd_set.py:224
+msgid "You did not give the correct password"
+msgstr "Du har oppgitt feil passord"
+
+#: Mailman/Commands/cmd_set.py:236 Mailman/Commands/cmd_set.py:283
+msgid "Bad argument: %(arg)s"
+msgstr "Ugyldige parametre: %(arg)s"
+
+#: Mailman/Commands/cmd_set.py:241 Mailman/Commands/cmd_set.py:261
+msgid "Not authenticated"
+msgstr "Ikke autentisert"
+
+#: Mailman/Commands/cmd_set.py:254
+msgid "ack option set"
+msgstr "valget 'bekreft' er satt"
+
+#: Mailman/Commands/cmd_set.py:286
+msgid "digest option set"
+msgstr "sammendrag-modus er valgt"
+
+#: Mailman/Commands/cmd_set.py:298
+msgid "delivery option set"
+msgstr "epostlevering satt"
+
+#: Mailman/Commands/cmd_set.py:310
+msgid "myposts option set"
+msgstr "valget 'ikke-mine' er satt"
+
+#: Mailman/Commands/cmd_set.py:321
+msgid "hide option set"
+msgstr "valget 'skjult' er satt"
+
+#: Mailman/Commands/cmd_set.py:333
+msgid "duplicates option set"
+msgstr "valget 'unngå duplikater' er satt"
+
+#: Mailman/Commands/cmd_set.py:345
+msgid "reminder option set"
+msgstr "valget 'passordpåminnelse' er satt"
+
+#: Mailman/Commands/cmd_stop.py:17
+msgid "stop is synonymous with the end command.\n"
+msgstr "'stop' kommandoen er den samme som 'end'.\n"
+
+#: Mailman/Commands/cmd_subscribe.py:17
+msgid ""
+"\n"
+" subscribe [password] [digest|nodigest] [address=<address>]\n"
+" Subscribe to this mailing list. Your password must be given to\n"
+" unsubscribe or change your options, but if you omit the password, "
+"one\n"
+" will be generated for you. You may be periodically reminded of "
+"your\n"
+" password.\n"
+"\n"
+" The next argument may be either: `nodigest' or `digest' (no "
+"quotes!).\n"
+" If you wish to subscribe an address other than the address you sent\n"
+" this request from, you may specify `address=<address>' (no brackets\n"
+" around the email address, and no quotes!)\n"
+msgstr ""
+"\n"
+" subscribe [passord] [digest|nodigest] [address=<epostadresse>]\n"
+" Melde deg på denne epostlisten. Et passord er nødvendig for å melde\n"
+" deg av listen eller endre dine personlige innstillinger, men hvis "
+"du\n"
+" ikke angir et, vil et passord bli generert for deg. Du kan få "
+"passordet\n"
+" tilsendt med jevne mellomrom.\n"
+"\n"
+" Det neste parameteret kan være: 'nodigest' eller 'digest' (ingen\n"
+" apostrofer!). Hvis du vil melde på en annen epostadresse enn den du\n"
+" sender fra, kan du angi den med 'address=<epostadresse>' (uten\n"
+" '<' og '>', og uten apostrofer!)\n"
+
+#: Mailman/Commands/cmd_subscribe.py:62
+msgid "Bad digest specifier: %(arg)s"
+msgstr "Ugyldig sammendrag-modus parameter: %(arg)s"
+
+#: Mailman/Commands/cmd_subscribe.py:84
+msgid "No valid address found to subscribe"
+msgstr "Ingen gyldig epostadresse for påmelding ble funnet"
+
+#: Mailman/Commands/cmd_subscribe.py:102
+msgid ""
+"The email address you supplied is banned from this mailing list.\n"
+"If you think this restriction is erroneous, please contact the list\n"
+"owners at %(listowner)s."
+msgstr ""
+"Epostadressen du har angitt er utestengt fra denne epostlisten.\n"
+"Dersom du tror dette kan være en feil, kontakt listens eier på %(listowner)s."
+
+#: Mailman/Commands/cmd_subscribe.py:108
+msgid ""
+"Mailman won't accept the given email address as a valid address.\n"
+"(E.g. it must have an @ in it.)"
+msgstr ""
+"Mailman aksepterer ikke den gitte epostadressen, da den ikke ser ut som en\n"
+"gyldig epostadresse. (Den må f.eks. inneholde en \"@\")"
+
+#: Mailman/Commands/cmd_subscribe.py:113
+msgid ""
+"Your subscription is not allowed because\n"
+"the email address you gave is insecure."
+msgstr ""
+"Påmeldingen din ble ikke godtatt fordi epostadressen du oppga er ikke\n"
+"sikker nok."
+
+#: Mailman/Commands/cmd_subscribe.py:118
+msgid "You are already subscribed!"
+msgstr "Du er allerede medlem av listen!"
+
+#: Mailman/Commands/cmd_subscribe.py:122
+msgid "No one can subscribe to the digest of this list!"
+msgstr ""
+"Det er ikke mulig &aring; melde seg p&aring; med sammendrag-modus for denne "
+"listen!"
+
+#: Mailman/Commands/cmd_subscribe.py:125
+msgid "This list only supports digest subscriptions!"
+msgstr "Denne listen st&oslash;tter kun sammendrag-modus!"
+
+#: Mailman/Commands/cmd_subscribe.py:131
+msgid ""
+"Your subscription request has been forwarded to the list administrator\n"
+"at %(listowner)s for review."
+msgstr ""
+"Din søknad om å bli med på epostlisten er videresendt til "
+"listadministratoren\n"
+"%(listowner)s for godkjenning."
+
+#: Mailman/Commands/cmd_subscribe.py:136
+msgid "Subscription request succeeded."
+msgstr "Søknad om medlemsskap er mottatt"
+
+#: Mailman/Commands/cmd_unsubscribe.py:17
+msgid ""
+"\n"
+" unsubscribe [password] [address=<address>]\n"
+" Unsubscribe from the mailing list. If given, your password must "
+"match\n"
+" your current password. If omitted, a confirmation email will be "
+"sent\n"
+" to the unsubscribing address. If you wish to unsubscribe an address\n"
+" other than the address you sent this request from, you may specify\n"
+" `address=<address>' (no brackets around the email address, and no\n"
+" quotes!)\n"
+msgstr ""
+"\n"
+" unsubscribe [passord] [address=<epostadresse>]\n"
+" Melder deg ut av listen. Hvis du ikke angir passordet, vil en epost\n"
+" med bekreftelse på operasjonen sendes til epostadressen som du\n"
+" forsøker å melde ut. Hvis du sender denne kommandoen fra en annen\n"
+" epostadresse enn den som skal meldes ut av listen, kan du angi den\n"
+" riktige epostadressen med 'address=<epostadresse>' parameteren.\n"
+" (uten '<' og '>', og uten apostrofer!)\n"
+
+#: Mailman/Commands/cmd_unsubscribe.py:62
+msgid "%(address)s is not a member of the %(listname)s mailing list"
+msgstr "%(address)s er ikke medlem av epostlisten %(listname)s."
+
+#: Mailman/Commands/cmd_unsubscribe.py:69
+msgid ""
+"Your unsubscription request has been forwarded to the list administrator "
+"for\n"
+"approval."
+msgstr ""
+"Din søknad om å bli meldt ut av epostlisten må godkjennes\n"
+"og er blitt videresendt til listeadministratoren."
+
+#: Mailman/Commands/cmd_unsubscribe.py:84
+msgid "You gave the wrong password"
+msgstr "Du har oppgitt feil passord"
+
+#: Mailman/Commands/cmd_unsubscribe.py:87
+msgid "Unsubscription request succeeded."
+msgstr "Søknad om utmelding mottatt"
+
+#: Mailman/Commands/cmd_who.py:29
+msgid ""
+"\n"
+" who\n"
+" See everyone who is on this mailing list.\n"
+msgstr ""
+"\n"
+" who\n"
+" Se en liste over hvem er medlem av denne epostlisten.\n"
+
+#: Mailman/Commands/cmd_who.py:34
+msgid ""
+"\n"
+" who password [address=<address>]\n"
+" See everyone who is on this mailing list. The roster is limited to\n"
+" list members only, and you must supply your membership password to\n"
+" retrieve it. If you're posting from an address other than your\n"
+" membership address, specify your membership address with\n"
+" `address=<address>' (no brackets around the email address, and no\n"
+" quotes!)\n"
+msgstr ""
+"\n"
+" who passord [address=<epostadresse>]\n"
+" Vise en liste over hvem som er medlem av denne epostlisten. Listen\n"
+" over medlemmer kan kun sees av medlemmer av epostlisten, så du må\n"
+" angi passordet ditt. Hvis du sender denne kommandoen fra en annen\n"
+" epostadresse enn den du er medlem av listen med, kan du angi den\n"
+" riktige epostadressen med 'address=<epostadresse>' parameteren.\n"
+" (uten '<' og '>', og uten apostrofer!)\n"
+
+#: Mailman/Commands/cmd_who.py:44
+msgid ""
+"\n"
+" who password\n"
+" See everyone who is on this mailing list. The roster is limited to\n"
+" list administrators and moderators only; you must supply the list\n"
+" admin or moderator password to retrieve the roster.\n"
+msgstr ""
+"\n"
+" who passord\n"
+" Vise en liste over medlemmer på denne epostlisten. Listen over\n"
+" medlemmer er bare tilgjengelig for listeadministratorer og\n"
+" listemoderatorer, så du må angi passordet for en av dem for å få se\n"
+" hvem som er på epostlisten.\n"
+
+#: Mailman/Commands/cmd_who.py:110
+msgid "You are not allowed to retrieve the list membership."
+msgstr "Du har ikke tilgang til å se hvem som er medlem av denne epostlisten."
+
+#: Mailman/Commands/cmd_who.py:116
+msgid "This list has no members."
+msgstr "Denne epostlisten har ingen medlemmer."
+
+#: Mailman/Commands/cmd_who.py:129
+msgid "Non-digest (regular) members:"
+msgstr "Medlemmer i normal-modus:"
+
+#: Mailman/Commands/cmd_who.py:132
+msgid "Digest members:"
+msgstr "Medlemmer i sammendrag-modus:"
+
+#: Mailman/Defaults.py:1204
+msgid "Traditional Chinese"
+msgstr "Kinesisk (Traditional)"
+
+#: Mailman/Defaults.py:1205
+msgid "Czech"
+msgstr "Tsjekkisk"
+
+#: Mailman/Defaults.py:1206
+msgid "German"
+msgstr "Tysk"
+
+#: Mailman/Defaults.py:1207
+msgid "English (USA)"
+msgstr "Engelsk (USA)"
+
+#: Mailman/Defaults.py:1208
+msgid "Spanish (Spain)"
+msgstr "Spansk (Spania)"
+
+#: Mailman/Defaults.py:1209
+msgid "Estonian"
+msgstr "Estisk"
+
+#: Mailman/Defaults.py:1210
+msgid "Finnish"
+msgstr "Finsk"
+
+#: Mailman/Defaults.py:1211
+msgid "French"
+msgstr "Fransk"
+
+#: Mailman/Defaults.py:1212
+msgid "Simplified Chinese"
+msgstr "Kinesisk (Simplified)"
+
+#: Mailman/Defaults.py:1213
+msgid "Hungarian"
+msgstr "Ungarsk"
+
+#: Mailman/Defaults.py:1214
+msgid "Italian"
+msgstr "Italiensk"
+
+#: Mailman/Defaults.py:1215
+msgid "Japanese"
+msgstr "Japansk"
+
+#: Mailman/Defaults.py:1216
+msgid "Korean"
+msgstr "Koreansk"
+
+#: Mailman/Defaults.py:1217
+msgid "Lithuanian"
+msgstr "Litauisk"
+
+#: Mailman/Defaults.py:1218
+msgid "Dutch"
+msgstr "Nederlandsk"
+
+#: Mailman/Defaults.py:1219
+msgid "Norwegian"
+msgstr "Norsk"
+
+#: Mailman/Defaults.py:1220
+msgid "Portuguese (Brazil)"
+msgstr "Portugisisk (Brasil)"
+
+#: Mailman/Defaults.py:1221
+msgid "Russian"
+msgstr "Russisk"
+
+#: Mailman/Defaults.py:1222
+msgid "Swedish"
+msgstr "Svensk"
+
+#: Mailman/Deliverer.py:43
+msgid ""
+"Note: Since this is a list of mailing lists, administrative\n"
+"notices like the password reminder will be sent to\n"
+"your membership administrative address, %(addr)s."
+msgstr ""
+"Merk: Siden dette er en liste som inneholder flere epostlister, vil "
+"administrative meldinger,\n"
+"som f.eks. påminnelse om passord, bli sendt til den administrative adressen "
+"%(addr)s."
+
+#: Mailman/Deliverer.py:62
+msgid " (Digest mode)"
+msgstr " (Sammendrag-modus)"
+
+#: Mailman/Deliverer.py:68
+msgid "Welcome to the \"%(realname)s\" mailing list%(digmode)s"
+msgstr "Velkommen til epostlisten \"%(realname)s\"%(digmode)s"
+
+#: Mailman/Deliverer.py:77
+msgid "You have been unsubscribed from the %(realname)s mailing list"
+msgstr "Du er nå fjernet fra epostlisten \"%(realname)s\""
+
+#: Mailman/Deliverer.py:104
+msgid "%(listfullname)s mailing list reminder"
+msgstr "Påminnelse fra epostlisten %(listfullname)s"
+
+#: Mailman/Errors.py:114
+msgid "For some unknown reason"
+msgstr "Av ukjent grunn"
+
+#: Mailman/Errors.py:120 Mailman/Errors.py:143
+msgid "Your message was rejected"
+msgstr "Meldingen din ble ikke godkjent"
+
+#: Mailman/Gui/Archive.py:25
+msgid "Archiving Options"
+msgstr "Innstillinger for arkivering"
+
+#: Mailman/Gui/Archive.py:31
+msgid "List traffic archival policies."
+msgstr "Regler for arkivering"
+
+#: Mailman/Gui/Archive.py:34
+msgid "Archive messages?"
+msgstr "Arkivere epost i et arkiv?"
+
+#: Mailman/Gui/Archive.py:36
+msgid "private"
+msgstr "privat"
+
+#: Mailman/Gui/Archive.py:36
+msgid "public"
+msgstr "offentlig"
+
+#: Mailman/Gui/Archive.py:37
+msgid "Is archive file source for public or private archival?"
+msgstr "Skal filen arkiveres i et privat eller i et offentlig arkiv?"
+
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Monthly"
+msgstr "M&aring;nedlig"
+
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Quarterly"
+msgstr "Kvartalsvis"
+
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Yearly"
+msgstr "&Aring;rlig"
+
+#: Mailman/Gui/Archive.py:41 Mailman/Gui/Digest.py:79
+msgid "Daily"
+msgstr "Daglig"
+
+#: Mailman/Gui/Archive.py:41 Mailman/Gui/Digest.py:79
+msgid "Weekly"
+msgstr "Ukentlig"
+
+#: Mailman/Gui/Archive.py:43
+msgid "How often should a new archive volume be started?"
+msgstr "Hvor ofte skal arkivet deles opp?"
+
+#: Mailman/Gui/Autoresponse.py:31
+msgid "Auto-responder"
+msgstr "Automatiske svar"
+
+#: Mailman/Gui/Autoresponse.py:39
+msgid ""
+"Auto-responder characteristics.<p>\n"
+"\n"
+"In the text fields below, string interpolation is performed with\n"
+"the following key/value substitutions:\n"
+"<p><ul>\n"
+" <li><b>listname</b> - <em>gets the name of the mailing list</em>\n"
+" <li><b>listurl</b> - <em>gets the list's listinfo URL</em>\n"
+" <li><b>requestemail</b> - <em>gets the list's -request address</em>\n"
+" <li><b>owneremail</b> - <em>gets the list's -owner address</em>\n"
+"</ul>\n"
+"\n"
+"<p>For each text field, you can either enter the text directly into the "
+"text\n"
+"box, or you can specify a file on your local system to upload as the text."
+msgstr ""
+"Innstillinger for automatiske svar.<p>\n"
+"\n"
+"I tekstboksene nedenfor kan du bruke følgende variabler (skriv dem slik: %%"
+"(&lt;variabelnavn&gt;)s ) for å sette inn ønsket informasjon:\n"
+"<p><ul>\n"
+" <li><b>listname</b> - <em>navnet p&aring; listen</em>\n"
+" <li><b>listurl</b> - <em>URL til listens webside</em>\n"
+" <li><b>requestemail</b> - <em>listens -request epostadresse</em>\n"
+" <li><b>owneremail</b> - <em>listens -owner epostadresse</em>\n"
+"</ul>\n"
+"\n"
+"<p>Du kan enten skrive teksten direkte inn i tekstboksene, eller du kan\n"
+"angi navnet p&aring; en fil som inneholder teksten. Denne filen vil s&aring; "
+"lastes inn\n"
+"i tekstboksen, fra ditt lokale filsystem."
+
+#: Mailman/Gui/Autoresponse.py:55
+msgid ""
+"Should Mailman send an auto-response to mailing list\n"
+" posters?"
+msgstr ""
+"Skal Mailman sende et automatisk svar til de som sender\n"
+" epost til listen?"
+
+#: Mailman/Gui/Autoresponse.py:60
+msgid "Auto-response text to send to mailing list posters."
+msgstr "Automatisk svar som skal sendes."
+
+#: Mailman/Gui/Autoresponse.py:63
+msgid ""
+"Should Mailman send an auto-response to emails sent to the\n"
+" -owner address?"
+msgstr ""
+"Skal Mailman sende et automatisk svar p&aring; epost som sendes til\n"
+" -owner adressen?"
+
+#: Mailman/Gui/Autoresponse.py:68
+msgid "Auto-response text to send to -owner emails."
+msgstr "Automatisk svar p&aring; epost til -owner adressen."
+
+#: Mailman/Gui/Autoresponse.py:71
+msgid "Yes, w/discard"
+msgstr "Ja, men uten den originale eposten"
+
+#: Mailman/Gui/Autoresponse.py:71
+msgid "Yes, w/forward"
+msgstr "Ja, og ta med den originale eposten"
+
+#: Mailman/Gui/Autoresponse.py:72
+msgid ""
+"Should Mailman send an auto-response to emails sent to the\n"
+" -request address? If you choose yes, decide whether you want\n"
+" Mailman to discard the original email, or forward it on to the\n"
+" system as a normal mail command."
+msgstr ""
+"Skal Mailman sende et automatisk svar p&aring; epost som sendes til -"
+"request\n"
+" adressen? Hvis du velger ja, kan du ogs&aring; velge om "
+"eposten\n"
+" som ble sendt til -request adressen ogs&aring; skal v&aelig;re "
+"med i\n"
+" det automatiske svaret."
+
+#: Mailman/Gui/Autoresponse.py:79
+msgid "Auto-response text to send to -request emails."
+msgstr "Automatisk svar p&aring; epost til -request adressen."
+
+#: Mailman/Gui/Autoresponse.py:82
+msgid ""
+"Number of days between auto-responses to either the mailing\n"
+" list or -request/-owner address from the same poster. Set to\n"
+" zero (or negative) for no grace period (i.e. auto-respond to\n"
+" every message)."
+msgstr ""
+"Antall dager mellom automatisk svar p&aring; epost, fra samme avsender, til "
+"listen eller til\n"
+" -request/-owner adressene. Sett denne verdien til 0 (eller et "
+"negativt tall)\n"
+" for &aring; sende automatisk svar hver gang."
+
+#: Mailman/Gui/Bounce.py:26
+msgid "Bounce processing"
+msgstr "Behandling av returmeldinger"
+
+#: Mailman/Gui/Bounce.py:32
+msgid ""
+"These policies control the automatic bounce processing system\n"
+" in Mailman. Here's an overview of how it works.\n"
+"\n"
+" <p>When a bounce is received, Mailman tries to extract two "
+"pieces\n"
+" of information from the message: the address of the member the\n"
+" message was intended for, and the severity of the problem "
+"causing\n"
+" the bounce. The severity can be either <em>hard</em> or\n"
+" <em>soft</em> meaning either a fatal error occurred, or a\n"
+" transient error occurred. When in doubt, a hard severity is "
+"used.\n"
+"\n"
+" <p>If no member address can be extracted from the bounce, then "
+"the\n"
+" bounce is usually discarded. Otherwise, each member is assigned "
+"a\n"
+" <em>bounce score</em> and every time we encounter a bounce from\n"
+" this member we increment the score. Hard bounces increment by "
+"1\n"
+" while soft bounces increment by 0.5. We only increment the "
+"bounce\n"
+" score once per day, so even if we receive ten hard bounces from "
+"a\n"
+" member per day, their score will increase by only 1 for that "
+"day.\n"
+"\n"
+" <p>When a member's bounce score is greater than the\n"
+" <a href=\"?VARHELP=bounce/bounce_score_threshold\">bounce score\n"
+" threshold</a>, the subscription is disabled. Once disabled, "
+"the\n"
+" member will not receive any postings from the list until their\n"
+" membership is explicitly re-enabled (either by the list\n"
+" administrator or the user). However, they will receive "
+"occasional\n"
+" reminders that their membership has been disabled, and these\n"
+" reminders will include information about how to re-enable their\n"
+" membership.\n"
+"\n"
+" <p>You can control both the\n"
+" <a href=\"?VARHELP=bounce/bounce_you_are_disabled_warnings"
+"\">number\n"
+" of reminders</a> the member will receive and the\n"
+" <a href=\"?VARHELP=bounce/"
+"bounce_you_are_disabled_warnings_interval\"\n"
+" >frequency</a> with which these reminders are sent.\n"
+"\n"
+" <p>There is one other important configuration variable; after a\n"
+" certain period of time -- during which no bounces from the "
+"member\n"
+" are received -- the bounce information is\n"
+" <a href=\"?VARHELP=bounce/bounce_info_stale_after\">considered\n"
+" stale</a> and discarded. Thus by adjusting this value, and the\n"
+" score threshold, you can control how quickly bouncing members "
+"are\n"
+" disabled. You should tune both of these to the frequency and\n"
+" traffic volume of your list."
+msgstr ""
+"Disse reglene bestemmer hvordan automatisk behandling av returmeldinger "
+"gj&oslash;res.\n"
+"Her er en oversikt over hvordan det fungerer.\n"
+"\n"
+"<p>N&aring;r Mailman mottar en returmelding, blir to ting fors&oslash;kt "
+"tolket.\n"
+"Det ene er epostadressen til medlemmet som egentlig skulle motta eposten,\n"
+"og det andre er &aring;rsaken til problemet. &Aring;rsaken tolkes til "
+"&aring; v&aelig;re <em>alvorlig</em>\n"
+"eller <em>lett</em> alt etter om &aring;rsaken er av kritisk eller av mindre "
+"alvorlig art.\n"
+"Dersom det er tvil, tolkes &aring;rsaken som alvorlig.\n"
+"\n"
+"<p>Hvis ingen epostadresse kan plukkes ut av meldingen, blir den vanligvis "
+"forkastet.\n"
+"Ellers, vil medlemmet som har den epostadressen f&aring; et <em>returtall</"
+"em>, og hver\n"
+"gang en returmelding kommer vil tallet &oslash;ke. Alvorlige &aring;rsaker "
+"f&oslash;rer til at tallet &oslash;kes\n"
+"med 1, lette &aring;rsaker f&oslash;rer til at det &oslash;kes med 0.5. "
+"Dette skjer kun &eacute;n gang per dag,\n"
+"s&aring; selv om det kommer 10 alvorlige returmeldinger fra et medlem "
+"p&aring; &eacute;n dag, vil\n"
+"tallet kun &oslash;kes med 1.\n"
+"\n"
+"<p>N&aring;r returtallet for et medlem n&aring;r en viss <a href=\"?"
+"VARHELP=bounce/bounce_score_threshold\">grense</a>,\n"
+"stoppes levering til medlemmet. Dermed vil ikke medlemmet motta epost fra "
+"listen f&oslash;r\n"
+"levering skrues p&aring; igjen. Medlemmet vil med jevne mellomrom motta "
+"melding om at dette\n"
+"har skjedd, og hva han/hun m&aring; gj&oslash;re for &aring; f&aring; epost "
+"fra listen igjen.\n"
+"\n"
+"<p>Du kan bestemme <a href=\"?VARHELP=bounce/bounce_you_are_disabled_warnings"
+"\">hvor mange advarsler</a>\n"
+"medlemmet skal f&aring; og <a href=\"?VARHELP=bounce/"
+"bounce_you_are_disabled_warnings_interval\">hvor ofte</a>\n"
+"han/hun skal motta slike advarsler.\n"
+"\n"
+"<p>Det er &eacute;n viktig innstilling til; etter en viss tid -- hvis ingen "
+"returmeldinger dukker opp\n"
+"i l&oslash;pet av denne tiden -- ansees returinformasjon som <a href=\"?"
+"VARHELP=bounce/bounce_info_stale_after\">utg&aring;tt</a>\n"
+"og forkastes. Ved &aring; justere denne verdien, og sette en grense for "
+"returtallet, kan du bestemme hvor lang tid det skal\n"
+"ta f&oslash;r levering til et medlem stoppes. Begge disse verdiene m&aring; "
+"du justere alt etter hvor ofte og hvor mye\n"
+"epost som sendes til listen din."
+
+#: Mailman/Gui/Bounce.py:75
+msgid "Bounce detection sensitivity"
+msgstr "Følsomhet"
+
+#: Mailman/Gui/Bounce.py:78
+msgid "Should Mailman perform automatic bounce processing?"
+msgstr "Skal Mailman automatisk ta seg av returmeldinger?"
+
+#: Mailman/Gui/Bounce.py:79
+msgid ""
+"By setting this value to <em>No</em>, you disable all\n"
+" automatic bounce processing for this list, however bounce\n"
+" messages will still be discarded so that the list "
+"administrator\n"
+" isn't inundated with them."
+msgstr ""
+"Ved &aring; sette denne verdien til <em>Nei</em>, skrur du av all automatisk "
+"tolking av returmeldinger for denne listen.\n"
+"Merk at slik meldinger vil likevel forkastet slik at listeadministratoren "
+"ikke blir plaget med dem."
+
+#: Mailman/Gui/Bounce.py:85
+msgid ""
+"The maximum member bounce score before the member's\n"
+" subscription is disabled. This value can be a floating point\n"
+" number."
+msgstr ""
+"Returtall-grense for n&aring;r Mailman stopper levering til et medlem.\n"
+"Dette tallet kan v&aelig;re et flyttall (et tall med desimaler)."
+
+#: Mailman/Gui/Bounce.py:90
+msgid ""
+"The number of days after which a member's bounce information\n"
+" is discarded, if no new bounces have been received in the\n"
+" interim. This value must be an integer."
+msgstr ""
+"Antall dager f&oslash;r returinformasjon forkastes dersom ingen flere "
+"returmeldinger dukker opp.\n"
+"Dette tallet m&aring; v&aelig;re et heltall."
+
+#: Mailman/Gui/Bounce.py:95
+msgid ""
+"How many <em>Your Membership Is Disabled</em> warnings a\n"
+" disabled member should get before their address is removed "
+"from\n"
+" the mailing list. Set to 0 to immediately remove an address "
+"from\n"
+" the list once their bounce score exceeds the threshold. This\n"
+" value must be an integer."
+msgstr ""
+"Hvor mange <em>Levering til deg er stoppet</em> advarsler som skal sendes "
+"til et medlem f&oslash;r det meldes ut av listen.\n"
+"Sett denne verdien til 0 for &aring; fjerne et medlem fra listen umiddelbart "
+"dersom det kommer returmelding fra medlemmets epostadresse.\n"
+"Dette tallet m&aring; v&aelig;re et heltall."
+
+#: Mailman/Gui/Bounce.py:102
+msgid ""
+"The number of days between sending the <em>Your Membership\n"
+" Is Disabled</em> warnings. This value must be an integer."
+msgstr ""
+"Antall dager mellom hver gang en <em>Levering til deg er stoppet</em> "
+"advarsel skal sendes ut.\n"
+"Dette tallet m&aring; v&aelig;re et heltall."
+
+#: Mailman/Gui/Bounce.py:105 Mailman/Gui/General.py:257
+msgid "Notifications"
+msgstr "Meldinger"
+
+#: Mailman/Gui/Bounce.py:109
+msgid ""
+"Should Mailman send you, the list owner, any bounce messages\n"
+" that failed to be detected by the bounce processor? <em>Yes</"
+"em>\n"
+" is recommended."
+msgstr ""
+"Skal Mailman sende deg, eieren av listen, returmeldinger som ikke ble "
+"gjenkjent av den automatiske returhåndteringen? <em>Ja</em> anbefales."
+
+#: Mailman/Gui/Bounce.py:112
+msgid ""
+"While Mailman's bounce detector is fairly robust, it's\n"
+" impossible to detect every bounce format in the world. You\n"
+" should keep this variable set to <em>Yes</em> for two reasons: "
+"1)\n"
+" If this really is a permanent bounce from one of your members,\n"
+" you should probably manually remove them from your list, and "
+"2)\n"
+" you might want to send the message on to the Mailman "
+"developers\n"
+" so that this new format can be added to its known set.\n"
+"\n"
+" <p>If you really can't be bothered, then set this variable to\n"
+" <em>No</em> and all non-detected bounces will be discarded\n"
+" without further processing.\n"
+"\n"
+" <p><b>Note:</b> This setting will also affect all messages "
+"sent\n"
+" to your list's -admin address. This address is deprecated and\n"
+" should never be used, but some people may still send mail to "
+"this\n"
+" address. If this happens, and this variable is set to\n"
+" <em>No</em> those messages too will get discarded. You may "
+"want\n"
+" to set up an\n"
+" <a href=\"?VARHELP=autoreply/autoresponse_admin_text"
+"\">autoresponse\n"
+" message</a> for email to the -owner and -admin address."
+msgstr ""
+"Mailmans automatiske returhåndtering er svært robust, men det er likevel "
+"umulig å gjenkjenne alle returmeldinger som finnes.\n"
+"Du bør angi <em>Ja</em> her, av to grunner:\n"
+"1) Hvis det virkelig er en permanent returmelding fra et medlem av listen, "
+"bør du antakelig manuelt melde medlemmet ut av listen, og\n"
+"2) du vil kanskje sende meldingen til utviklerne av Mailman slik at "
+"returmeldingen kan automatisk gjenkjennes av Mailman.\n"
+"<p>Hvis du ikke vil noen av delene, set denne innstillingen til <em>Nei</"
+"em>.\n"
+"Da vil alle returmeldinger forkastes automatisk uten videre behandling.\n"
+"<p><b>Merk:</b> Denne innstillingen vil også innvirke på all epost som "
+"sendes til listens -admin adresse.\n"
+"Den adressen er gammel og utgått, men det kan være noen fortsatt vil sende "
+"epost til den.\n"
+"Hvis noen gjør det, og du har satt denne innstillingen til <em>Nei</em>, vil "
+"de meldingene også forkastes.\n"
+"Kanskje vil du også sette opp et <a href=\"?VARHELP=autoreply/"
+"autoresponse_admin_text\">automatisk svar</a> på epost sendt til -owner og -"
+"admin adressene."
+
+#: Mailman/Gui/Bounce.py:135
+msgid ""
+"Should Mailman notify you, the list owner, when bounces\n"
+" cause a member's subscription to be disabled?"
+msgstr ""
+"Skal Mailman gi deg, eier av listen, beskjed når returmeldinger forårsaker "
+"at et medlem slutter å motta epost?"
+
+#: Mailman/Gui/Bounce.py:137
+msgid ""
+"By setting this value to <em>No</em>, you turn off\n"
+" notification messages that are normally sent to the list "
+"owners\n"
+" when a member's delivery is disabled due to excessive bounces.\n"
+" An attempt to notify the member will always be made."
+msgstr ""
+"Ved å sette denne til <em>Nei</em>, skrur du av beskjeden som vanligvis "
+"sendes til eieren(e) av listen,\n"
+"når sending av epost til et medlem stoppes på grunn av for mange "
+"returmeldinger.\n"
+"Det vil i tillegg alltid bli gjort et forsøk på gi beskjed til medlemmet."
+
+#: Mailman/Gui/Bounce.py:144
+msgid ""
+"Should Mailman notify you, the list owner, when bounces\n"
+" cause a member to be unsubscribed?"
+msgstr ""
+"Skal Mailman gi deg, eier av listen, beskjed når returmeldinger fører til at "
+"et medlem meldes ut av listen?"
+
+#: Mailman/Gui/Bounce.py:146
+msgid ""
+"By setting this value to <em>No</em>, you turn off\n"
+" notification messages that are normally sent to the list "
+"owners\n"
+" when a member is unsubscribed due to excessive bounces. An\n"
+" attempt to notify the member will always be made."
+msgstr ""
+"Ved å sette denne til <em>Nei</em>, skrur du av beskjeden som vanligvis "
+"sendes til eieren(e) av listen,\n"
+"når et medlem meldes ut av listen på grunn av for mange returmeldinger.\n"
+"Det vil i tillegg alltid bli gjort et forsøk på gi beskjed til medlemmet."
+
+#: Mailman/Gui/Bounce.py:173
+msgid ""
+"Bad value for <a href=\"?VARHELP=bounce/%(property)s\"\n"
+" >%(property)s</a>: %(val)s"
+msgstr ""
+"Ugyldig verdi for <a href=\"?VARHELP=bounce/%(property)s\">%(property)s</a>: "
+"%(val)s"
+
+#: Mailman/Gui/ContentFilter.py:30
+msgid "Content&nbsp;filtering"
+msgstr "Filtrering&nbsp;p&aring;&nbsp;innhold"
+
+#: Mailman/Gui/ContentFilter.py:37
+msgid "Forward to List Owner"
+msgstr "Videresend til Listens Eier"
+
+#: Mailman/Gui/ContentFilter.py:39
+msgid "Preserve"
+msgstr "Ta vare på"
+
+#: Mailman/Gui/ContentFilter.py:42
+msgid ""
+"Policies concerning the content of list traffic.\n"
+"\n"
+" <p>Content filtering works like this: when a message is\n"
+" received by the list and you have enabled content filtering, "
+"the\n"
+" individual attachments are first compared to the\n"
+" <a href=\"?VARHELP=contentfilter/filter_mime_types\">filter\n"
+" types</a>. If the attachment type matches an entry in the "
+"filter\n"
+" types, it is discarded.\n"
+"\n"
+" <p>Then, if there are <a\n"
+" href=\"?VARHELP=contentfilter/pass_mime_types\">pass types</a>\n"
+" defined, any attachment type that does <em>not</em> match a\n"
+" pass type is also discarded. If there are no pass types "
+"defined,\n"
+" this check is skipped.\n"
+"\n"
+" <p>After this initial filtering, any <tt>multipart</tt>\n"
+" attachments that are empty are removed. If the outer message "
+"is\n"
+" left empty after this filtering, then the whole message is\n"
+" discarded. Then, each <tt>multipart/alternative</tt> section "
+"will\n"
+" be replaced by just the first alternative that is non-empty "
+"after\n"
+" filtering.\n"
+"\n"
+" <p>Finally, any <tt>text/html</tt> parts that are left in the\n"
+" message may be converted to <tt>text/plain</tt> if\n"
+" <a href=\"?VARHELP=contentfilter/convert_html_to_plaintext\"\n"
+" >convert_html_to_plaintext</a> is enabled and the site is\n"
+" configured to allow these conversions."
+msgstr ""
+"Regler for innhold i epost sendt til listen.\n"
+"\n"
+"<p>Filtrering på innhold fungerer slik: når listen mottar en epost og du\n"
+"har skrudd på filtrering på innhold, sammenlignes først eventuelle vedlegg\n"
+"mot <a href=\"?VARHELP=contentfilter/filter_mime_types\">MIME filtre</a>.\n"
+"Hvis et vedlegg passer med et av disse filtrene, blir vedlegget forkastet.\n"
+"\n"
+"<p>Deretter sammenlignes eventuelle vedlegg mot\n"
+"<a href=\"?VARHELP=contentfilter/pass_mime_types\">gyldige MIME typer</a>,\n"
+"hvis det er definert noen. Alle vedlegg som ikke passer med de angitte MIME\n"
+"typene, blir forkastet.\n"
+"\n"
+"<p>Etter disse filtrene, vil alle tomme <tt>multipart</tt> vedlegg bli\n"
+"fjernet. Hvis selve meldingen er helt tom etter denne filtreringen, vil\n"
+"meldingen bli forkastet. Deretter vil hvert <tt>multipart/alternative</tt>\n"
+"vedlegg bli erstattet av det først alternativet som ikke er tomt.\n"
+"\n"
+"<p>Til slutt vil alle <tt>text/html</tt> vedlegg som måtte være igjen i\n"
+"meldingen bli konvertert til <tt>text/plain</tt> dersom\n"
+"<a href=\"?VARHELP=contentfilter/convert_html_to_plaintext\">konvertere til\n"
+"ren tekst</a> er skrudd på og serveren er konfigurert til å tillate slike\n"
+"konverteringer."
+
+#: Mailman/Gui/ContentFilter.py:71
+msgid ""
+"Should Mailman filter the content of list traffic according\n"
+" to the settings below?"
+msgstr ""
+"Skal Mailman filtrere innhold i epost sendt til listen som angitt nedenfor?"
+
+#: Mailman/Gui/ContentFilter.py:75
+msgid ""
+"Remove message attachments that have a matching content\n"
+" type."
+msgstr "Fjerne epostvedlegg med gitte MIME typer."
+
+#: Mailman/Gui/ContentFilter.py:78
+msgid ""
+"Use this option to remove each message attachment that\n"
+" matches one of these content types. Each line should contain "
+"a\n"
+" string naming a MIME <tt>type/subtype</tt>,\n"
+" e.g. <tt>image/gif</tt>. Leave off the subtype to remove all\n"
+" parts with a matching major content type, e.g. <tt>image</tt>.\n"
+"\n"
+" <p>Blank lines are ignored.\n"
+"\n"
+" <p>See also <a href=\"?VARHELP=contentfilter/pass_mime_types\"\n"
+" >pass_mime_types</a> for a content type whitelist."
+msgstr ""
+"Bruk denne instillingen til å fjerne vedlegg som har fitte MIME typer.\n"
+"Hver linje skal her inneholde navnet på en MIME <tt>type/subtype</tt>,\n"
+"f.eks. <tt>image/gif</tt>. Dersom du ønsker å fjerne alle vedlegg som har "
+"en\n"
+"gitt hoved MIME type, kan du la være å angi subtype, f.eks. <tt>image</tt>.\n"
+"\n"
+"<p>Blanke linjer hoppes over.\n"
+"\n"
+"<p>Se også <a href=\"?VARHELP=contentfilter/pass_mime_types\">gyldige MIME "
+"typer</a>\n"
+"for hvitelisting av MIME typer."
+
+#: Mailman/Gui/ContentFilter.py:90
+msgid ""
+"Remove message attachments that don't have a matching\n"
+" content type. Leave this field blank to skip this filter\n"
+" test."
+msgstr ""
+"Fjerne alle vedlegg som ikke har en gyldig MIME type.\n"
+"La dette feltet være blankt for at alle MIME typer skal være gyldige."
+
+#: Mailman/Gui/ContentFilter.py:94
+msgid ""
+"Use this option to remove each message attachment that does\n"
+" not have a matching content type. Requirements and formats "
+"are\n"
+" exactly like <a href=\"?VARHELP=contentfilter/filter_mime_types"
+"\"\n"
+" >filter_mime_types</a>.\n"
+"\n"
+" <p><b>Note:</b> if you add entries to this list but don't add\n"
+" <tt>multipart</tt> to this list, any messages with attachments\n"
+" will be rejected by the pass filter."
+msgstr ""
+"Bruk denne innstillingen for definere hvilke MIME typer som skal være "
+"tillatt.\n"
+"Krav og format på filtrering er identisk med <a href=\"?"
+"VARHELP=contentfilter/filter_mime_types\">MIME filtre</a>.\n"
+"\n"
+"<p><b>Merk:</b> hvis du legger inn noe her, men ikke angir <tt>multipart</"
+"tt>, vil all epost med vedlegg bli forkastet."
+
+#: Mailman/Gui/ContentFilter.py:104
+msgid ""
+"Should Mailman convert <tt>text/html</tt> parts to plain\n"
+" text? This conversion happens after MIME attachments have "
+"been\n"
+" stripped."
+msgstr ""
+"Skal Mailman konvertere <tt>text/html</tt> deler til ren tekst?\n"
+"Denne konverteringen vil finne sted etter at MIME filteret har fjernet\n"
+"ønskete deler."
+
+#: Mailman/Gui/ContentFilter.py:110
+msgid ""
+"Action to take when a message matches the content filtering\n"
+" rules."
+msgstr "Hva som skjer når en epost passer et av filtrene."
+
+#: Mailman/Gui/ContentFilter.py:113
+msgid ""
+"One of these actions is take when the message matches one of\n"
+" the content filtering rules, meaning, the top-level\n"
+" content type matches one of the <a\n"
+" href=\"?VARHELP=contentfilter/filter_mime_types\"\n"
+" >filter_mime_types</a>, or the top-level content type does\n"
+" <strong>not</strong> match one of the\n"
+" <a href=\"?VARHELP=contentfilter/pass_mime_types\"\n"
+" >pass_mime_types</a>, or if after filtering the subparts of "
+"the\n"
+" message, the message ends up empty.\n"
+"\n"
+" <p>Note this action is not taken if after filtering the "
+"message\n"
+" still contains content. In that case the message is always\n"
+" forwarded on to the list membership.\n"
+"\n"
+" <p>When messages are discarded, a log entry is written\n"
+" containing the Message-ID of the discarded message. When\n"
+" messages are rejected or forwarded to the list owner, a reason\n"
+" for the rejection is included in the bounce message to the\n"
+" original author. When messages are preserved, they are saved "
+"in\n"
+" a special queue directory on disk for the site administrator "
+"to\n"
+" view (and possibly rescue) but otherwise discarded. This last\n"
+" option is only available if enabled by the site\n"
+" administrator."
+msgstr ""
+"Her bestemmer du hva som skal skje når en melding filtreres av et filter, "
+"altså\n"
+"dersom vedleggene filtreres av\n"
+"<a href=\"?VARHELP=contentfilter/filter_mime_types\">MIME filteret</a>, "
+"eller et\n"
+"vedlegg ikke har en av de\n"
+"<a href=\"?VARHELP=contentfilter/pass_mime_types\">gyldige MIME typer</a>, "
+"eller\n"
+"meldingen ender opp med å være tom etter filtrering.\n"
+"\n"
+"<p>Merk at det du velger her vil ikke skje dersom en melding fremdeles\n"
+"inneholder noe etter filtrering. Da vil meldingen alltid sendes videre til\n"
+"listemedlemskapet.\n"
+"\n"
+"<p>Når meldinger forkastes, skrives Message-IDen til den forkastede "
+"meldingen\n"
+"til loggen. Når meldinger sendes i retur eller videresendes til listens "
+"eier,\n"
+"vil en begrunnelse alltid inkluderes i returmeldingen som sendes til "
+"avsenderen.\n"
+"Når meldinger skal bevares, lagres de i en spesiell køkatalog på disk slik "
+"at\n"
+"serveradministratoren kan se (og kanskje gjøre noe med) meldingen, men "
+"utenom\n"
+"det blir de forkastet. Dette siste valget er kun tilgjengelig dersom\n"
+"serveradministratoren har tillatt det."
+
+#: Mailman/Gui/ContentFilter.py:154
+msgid "Bad MIME type ignored: %(spectype)s"
+msgstr "Hopper over ugyldig MIME type: %(spectype)s"
+
+#: Mailman/Gui/Digest.py:36
+msgid "Digest options"
+msgstr "Innstillinger for sammendrag-modus"
+
+#: Mailman/Gui/Digest.py:44
+msgid "Batched-delivery digest characteristics."
+msgstr "Oppsett av sammendrag-modus."
+
+#: Mailman/Gui/Digest.py:47
+msgid "Can list members choose to receive list traffic bunched in digests?"
+msgstr ""
+"Kan medlemmer av listen velge &aring; f&aring; tilsendt sammendrag isteden?"
+
+#: Mailman/Gui/Digest.py:51
+msgid "Digest"
+msgstr "Sammendrag"
+
+#: Mailman/Gui/Digest.py:51
+msgid "Regular"
+msgstr "Normal"
+
+#: Mailman/Gui/Digest.py:52
+msgid "Which delivery mode is the default for new users?"
+msgstr "Hvilken modus er standard for nye brukere?"
+
+#: Mailman/Gui/Digest.py:55
+msgid "MIME"
+msgstr "MIME"
+
+#: Mailman/Gui/Digest.py:55
+msgid "Plain"
+msgstr "Ren tekst"
+
+#: Mailman/Gui/Digest.py:56
+msgid "When receiving digests, which format is default?"
+msgstr "Hvilket format skal benyttes som standard for samle-epost?"
+
+#: Mailman/Gui/Digest.py:59
+msgid "How big in Kb should a digest be before it gets sent out?"
+msgstr ""
+"Hvor stor (i Kb) m&aring; en samle-epost v&aelig;re f&oslash;r den sendes ut?"
+
+#: Mailman/Gui/Digest.py:63
+msgid ""
+"Should a digest be dispatched daily when the size threshold isn't reached?"
+msgstr ""
+"Skal det sendes en samle-epost daglig, selv om ikke st&oslash;rrelsen er "
+"oppn&aring;dd?"
+
+#: Mailman/Gui/Digest.py:67
+msgid "Header added to every digest"
+msgstr "Topptekst i hver samle-epost"
+
+#: Mailman/Gui/Digest.py:68
+msgid ""
+"Text attached (as an initial message, before the table of contents) to the "
+"top of digests. "
+msgstr ""
+"Tekst som legges til &oslash;verst i samle-eposten, f&oslash;r "
+"innholdsfortegnelsen."
+
+#: Mailman/Gui/Digest.py:73
+msgid "Footer added to every digest"
+msgstr "Bunntekst i hver samle-epost"
+
+#: Mailman/Gui/Digest.py:74
+msgid "Text attached (as a final message) to the bottom of digests. "
+msgstr ""
+"Tekst som legges til nederst i hver samle-epost, som en siste informasjon."
+
+#: Mailman/Gui/Digest.py:80
+msgid "How often should a new digest volume be started?"
+msgstr "Hvor ofte skal et nytt volume startes?"
+
+#: Mailman/Gui/Digest.py:81
+msgid ""
+"When a new digest volume is started, the volume number is\n"
+" incremented and the issue number is reset to 1."
+msgstr ""
+"N&aring;r et nytt volume startes, &oslash;ker volume nummeret, og "
+"utgavenummeret settes til 1."
+
+#: Mailman/Gui/Digest.py:85
+msgid "Should Mailman start a new digest volume?"
+msgstr "Skal Mailman starte et nytt volume n&aring;?"
+
+#: Mailman/Gui/Digest.py:86
+msgid ""
+"Setting this option instructs Mailman to start a new volume\n"
+" with the next digest sent out."
+msgstr ""
+"Velger du <em>Ja</em> her, vil Mailman starte et nytt volume n&aring;r neste "
+"samle-epost sendes ut."
+
+#: Mailman/Gui/Digest.py:90
+msgid ""
+"Should Mailman send the next digest right now, if it is not\n"
+" empty?"
+msgstr ""
+"Skal Mailman sende ut neste samle-epost n&aring; med en gang, dersom den "
+"ikke er tom?"
+
+#: Mailman/Gui/Digest.py:145
+msgid ""
+"The next digest will be sent as volume\n"
+" %(volume)s, number %(number)s"
+msgstr ""
+"Den neste samle-eposten vil sendes som volum %(volume)s, nummer %(number)s"
+
+#: Mailman/Gui/Digest.py:150
+msgid "A digest has been sent."
+msgstr "En samle-epost er sendt."
+
+#: Mailman/Gui/Digest.py:152
+msgid "There was no digest to send."
+msgstr "Det var ingen samle-epost som skulle sendes."
+
+#: Mailman/Gui/GUIBase.py:149
+msgid "Invalid value for variable: %(property)s"
+msgstr "Ugyldig verdi for: %(property)s"
+
+#: Mailman/Gui/GUIBase.py:153
+msgid "Bad email address for option %(property)s: %(val)s"
+msgstr "Ugyldig epostadresse for innstillingen %(property)s: %(val)s"
+
+#: Mailman/Gui/GUIBase.py:179
+msgid ""
+"The following illegal substitution variables were\n"
+" found in the <code>%(property)s</code> string:\n"
+" <code>%(bad)s</code>\n"
+" <p>Your list may not operate properly until you correct "
+"this\n"
+" problem."
+msgstr ""
+"Følgende ugyldige variabler ble funnet i <code>%(property)s</code>:\n"
+"<code>%(bad)s</code>\n"
+"<p>Det kan oppstå feil med listen din med mindre du retter opp dette."
+
+#: Mailman/Gui/GUIBase.py:193
+msgid ""
+"Your <code>%(property)s</code> string appeared to\n"
+" have some correctable problems in its new value.\n"
+" The fixed value will be used instead. Please\n"
+" double check that this is what you intended.\n"
+" "
+msgstr ""
+"Det ser ut til at en feil med verdien av <code>%(property)s</code> "
+"automatisk kunne rettes.\n"
+"Den faste verdien vil bli brukt. Vennligst kontroller at dette var det du "
+"ønsket."
+
+#: Mailman/Gui/General.py:32
+msgid "General Options"
+msgstr "Generelle innstillinger"
+
+#: Mailman/Gui/General.py:46
+msgid "Conceal the member's address"
+msgstr "Gjem medlemmets adresse"
+
+#: Mailman/Gui/General.py:47
+msgid "Acknowledge the member's posting"
+msgstr "Send bekreftelse på meldinger sendt av medlemmet"
+
+#: Mailman/Gui/General.py:48
+msgid "Do not send a copy of a member's own post"
+msgstr "Ikke send medlemmet en kopi av hans/hennes egen epost"
+
+#: Mailman/Gui/General.py:50
+msgid "Filter out duplicate messages to list members (if possible)"
+msgstr "Filtrer vekk duplikatmeldinger til medlemmer (hvis mulig)"
+
+#: Mailman/Gui/General.py:57
+msgid ""
+"Fundamental list characteristics, including descriptive\n"
+" info and basic behaviors."
+msgstr ""
+"Grunnleggende egenskaper for listen, blant annet en beskrivelse av listen, "
+"og hvordan den oppf&oslash;rer seg."
+
+#: Mailman/Gui/General.py:60
+msgid "General list personality"
+msgstr "Generelle innstillinger for epostlisten"
+
+#: Mailman/Gui/General.py:63
+msgid "The public name of this list (make case-changes only)."
+msgstr ""
+"Listens navn (her kan du kun endre mellom store og sm&aring; bokstaver)."
+
+#: Mailman/Gui/General.py:64
+msgid ""
+"The capitalization of this name can be changed to make it\n"
+" presentable in polite company as a proper noun, or to make an\n"
+" acronym part all upper case, etc. However, the name will be\n"
+" advertised as the email address (e.g., in subscribe "
+"confirmation\n"
+" notices), so it should <em>not</em> be otherwise altered. "
+"(Email\n"
+" addresses are not case sensitive, but they are sensitive to\n"
+" almost everything else :-)"
+msgstr ""
+"Her kan du f.eks. stave navnet med stor forbokstav, eller endre visse "
+"bokstaver\n"
+"til store slik at navnet kan uttales p&aring; riktig m&aring;te eller at "
+"forkortelser\n"
+"utheves. Merk at dette navnet brukes i epostlisten adresse (f.eks. i\n"
+"bekreftelser p&aring; p&aring;meldinger), s&aring; den kan <em>ikke</em> "
+"endres p&aring; noen annen\n"
+"m&aring;te. (Epostadresser er ikke n&oslash;ye p&aring; store eller "
+"sm&aring; bokstaver, men de er\n"
+"n&oslash;ye p&aring; nesten alt annet :-)"
+
+#: Mailman/Gui/General.py:73
+msgid ""
+"The list administrator email addresses. Multiple\n"
+" administrator addresses, each on separate line is okay."
+msgstr ""
+"Listeadministatoren(e)s epostadresse(r). Flere epostadresser kan "
+"spesifiseres\n"
+"men da kun en adresse per linje."
+
+#: Mailman/Gui/General.py:76
+msgid ""
+"There are two ownership roles associated with each mailing\n"
+" list. The <em>list administrators</em> are the people who "
+"have\n"
+" ultimate control over all parameters of this mailing list. "
+"They\n"
+" are able to change any list configuration variable available\n"
+" through these administration web pages.\n"
+"\n"
+" <p>The <em>list moderators</em> have more limited permissions;\n"
+" they are not able to change any list configuration variable, "
+"but\n"
+" they are allowed to tend to pending administration requests,\n"
+" including approving or rejecting held subscription requests, "
+"and\n"
+" disposing of held postings. Of course, the <em>list\n"
+" administrators</em> can also tend to pending requests.\n"
+"\n"
+" <p>In order to split the list ownership duties into\n"
+" administrators and moderators, you must\n"
+" <a href=\"passwords\">set a separate moderator password</a>,\n"
+" and also provide the <a href=\"?VARHELP=general/moderator"
+"\">email\n"
+" addresses of the list moderators</a>. Note that the field you\n"
+" are changing here specifies the list administrators."
+msgstr ""
+"Det er to roller forbundet med hver epostliste.\n"
+"<em>Listeadministratorene</em> er de som til syvende og sist har kontroll "
+"over alle innstillingene for epostlisten.\n"
+"De kan endre alle innstillinger tilgjengelige via disse administrative "
+"websidene.\n"
+"\n"
+"<p><em>Listemoderatorene</em> har begrenset tilgang; de kan ikke endre "
+"innstillinger for epostlisten,\n"
+"men de kan ta seg av foresp&oslash;rsler forbundet med listen, f.eks. "
+"s&oslash;knader om medlemskap,\n"
+"eller godta/avsl&aring; meldinger som m&aring; godkjennes for &aring; kunne "
+"sendes ut p&aring; listen.\n"
+"<em>Listeadministratorene</em> kan selvsagt ogs&aring; utf&oslash;re disse "
+"oppgavene.\n"
+"\n"
+"<p>For &aring; aktivere muligheten for &aring; ha listemoderatorer, og "
+"p&aring; den m&aring;ten dele opp arbeidsoppgavene forbundet med listen,\n"
+"m&aring; du <a href=\"passwords\">sette et eget moderatorpassord</a>,\n"
+"og <a href=\"?VARHELP=general/moderator\">gi inn epostadressen(e)</a> til "
+"den/de som skal v&aelig;re listemoderator(er).\n"
+"Merk at i tekstboksene nedenfor skal du skrive epostadressen(e) til "
+"listeadministratoren(e)."
+
+#: Mailman/Gui/General.py:97
+msgid ""
+"The list moderator email addresses. Multiple\n"
+" moderator addresses, each on separate line is okay."
+msgstr ""
+"Listemoderatoren(e)s epostadresse(r). Flere epostadresser kan spesifiseres\n"
+"men da kun en adresse per linje."
+
+#: Mailman/Gui/General.py:100
+msgid ""
+"There are two ownership roles associated with each mailing\n"
+" list. The <em>list administrators</em> are the people who "
+"have\n"
+" ultimate control over all parameters of this mailing list. "
+"They\n"
+" are able to change any list configuration variable available\n"
+" through these administration web pages.\n"
+"\n"
+" <p>The <em>list moderators</em> have more limited permissions;\n"
+" they are not able to change any list configuration variable, "
+"but\n"
+" they are allowed to tend to pending administration requests,\n"
+" including approving or rejecting held subscription requests, "
+"and\n"
+" disposing of held postings. Of course, the <em>list\n"
+" administrators</em> can also tend to pending requests.\n"
+"\n"
+" <p>In order to split the list ownership duties into\n"
+" administrators and moderators, you must\n"
+" <a href=\"passwords\">set a separate moderator password</a>,\n"
+" and also provide the email addresses of the list moderators in\n"
+" this section. Note that the field you are changing here\n"
+" specifies the list moderators."
+msgstr ""
+"Det er to roller forbundet med hver epostliste.\n"
+"<em>Listeadministratorene</em> er de som til syvende og sist har kontroll "
+"over alle innstillingene for epostlisten.\n"
+"De kan endre alle innstillinger tilgjengelige via disse administrative "
+"websidene.\n"
+"\n"
+"<p><em>Listemoderatorene</em> har begrenset tilgang; de kan ikke endre "
+"innstillinger for epostlisten,\n"
+"men de kan ta seg av foresp&oslash;rsler forbundet med listen, f.eks. "
+"s&oslash;knader om medlemskap,\n"
+"eller godta/avsl&aring; meldinger som m&aring; godkjennes for &aring; kunne "
+"sendes ut p&aring; listen.\n"
+"<em>Listeadministratorene</em> kan selvsagt ogs&aring; utf&oslash;re disse "
+"oppgavene.\n"
+"\n"
+"<p>For &aring; aktivere muligheten for &aring; ha listemoderatorer, og "
+"p&aring; den m&aring;ten dele opp arbeidsoppgavene forbundet med listen,\n"
+"m&aring; du <a href=\"passwords\">sette et eget moderatorpassord</a>,\n"
+"og gi inn epostadressen(e) til den/de som skal v&aelig;re listemoderator"
+"(er).\n"
+"Merk at i tekstboksene nedenfor skal du skrive epostadressen(e) til "
+"listemoderatoren(e)."
+
+#: Mailman/Gui/General.py:121
+msgid "A terse phrase identifying this list."
+msgstr "En kort setning som beskriver listen."
+
+#: Mailman/Gui/General.py:123
+msgid ""
+"This description is used when the mailing list is listed with\n"
+" other mailing lists, or in headers, and so forth. It "
+"should\n"
+" be as succinct as you can get it, while still identifying "
+"what\n"
+" the list is."
+msgstr ""
+"Denne beskrivelsen benyttes n&aring;r denne epostlisten listes opp sammen "
+"andre epostlister,\n"
+"i topptekster, osv. Den b&oslash;r v&aelig;rt s&aring; kort som overhodet "
+"mulig, uten &aring; gj&oslash;re det uklart\n"
+"hva meningen med denne epostlisten er eller hva den skal brukes til."
+
+#: Mailman/Gui/General.py:129
+msgid ""
+"An introductory description - a few paragraphs - about the\n"
+" list. It will be included, as html, at the top of the "
+"listinfo\n"
+" page. Carriage returns will end a paragraph - see the details\n"
+" for more info."
+msgstr ""
+"En liten introduksjon til epostlisten, - gjerne et par avsnitt.\n"
+"Den vil vises (som html), &oslash;verst p&aring; epostlisten "
+"informasjonsside.\n"
+"Linjeskift brukes for oppdeling i avsnitt - se hjelp for mer informasjon."
+
+#: Mailman/Gui/General.py:133
+msgid ""
+"The text will be treated as html <em>except</em> that\n"
+" newlines will be translated to &lt;br&gt; - so you can use "
+"links,\n"
+" preformatted text, etc, but don't put in carriage returns "
+"except\n"
+" where you mean to separate paragraphs. And review your changes "
+"-\n"
+" bad html (like some unterminated HTML constructs) can prevent\n"
+" display of the entire listinfo page."
+msgstr ""
+"Teksten tolkes som html <em>bortsett fra</em> linjeskift, som vil bli gjort "
+"om\n"
+"til html-tag'en '&lt;br&gt;', slik at du kan benytte linker, forh&aring;"
+"ndsformatert\n"
+"tekst, osv. Men bruk alts&aring; linjeskift kun der du vil ha nytt avsnitt.\n"
+"Benytter du html-kode, husk &aring; se over den n&oslash;ye, for er det feil "
+"i den (f.eks.\n"
+"manglende slutt-tag'er) kan den f&oslash;re til at listens informasjonsside "
+"ikke vil\n"
+"vises slik den skal."
+
+#: Mailman/Gui/General.py:141
+msgid "Prefix for subject line of list postings."
+msgstr "Tekst foran emnefeltet i epost som sendes til listen."
+
+#: Mailman/Gui/General.py:142
+msgid ""
+"This text will be prepended to subject lines of messages\n"
+" posted to the list, to distinguish mailing list messages in in\n"
+" mailbox summaries. Brevity is premium here, it's ok to "
+"shorten\n"
+" long mailing list names to something more concise, as long as "
+"it\n"
+" still identifies the mailing list."
+msgstr ""
+"Denne teksten vil settes inn foran emne-/tittelfeltet i epost som sendes "
+"til\n"
+"listen, for &aring; skille ut epostliste-meldinger i epostboksen til de som\n"
+"er medlem av listen. Denne teksten b&oslash;r holdes til et <em>absolutt "
+"minimum</em>,\n"
+"benytter du f.eks. listens navn og navnet er langt, b&oslash;r du stave det "
+"enda kortere\n"
+"her. Men den b&oslash;r fremdeles v&aelig;re beskrivende for listen."
+
+#: Mailman/Gui/General.py:149
+msgid ""
+"Hide the sender of a message, replacing it with the list\n"
+" address (Removes From, Sender and Reply-To fields)"
+msgstr ""
+"Tildekke avsenderen av meldinger, ved &aring; erstatte den med \n"
+"epostlistens adresse (Dette fører til at alle <tt>From:</tt>, \n"
+"<tt>Sender</tt>, og <tt>Reply-To:</tt> felt fjernes)"
+
+#: Mailman/Gui/General.py:152
+msgid "<tt>Reply-To:</tt> header munging"
+msgstr "Egendefinert <tt>Reply-To:</tt> adresse"
+
+#: Mailman/Gui/General.py:155
+msgid ""
+"Should any existing <tt>Reply-To:</tt> header found in the\n"
+" original message be stripped? If so, this will be done\n"
+" regardless of whether an explict <tt>Reply-To:</tt> header is\n"
+" added by Mailman or not."
+msgstr ""
+"Skal eksisterende <tt>Reply-To:</tt> felt i meldingshodet fjernes?\n"
+"Hvis ja vil dette bli gjort uansett om Mailman legger til et <tt>Reply-To:</"
+"tt> felt eller ikke."
+
+#: Mailman/Gui/General.py:161
+msgid "Explicit address"
+msgstr "Egendefinert adresse"
+
+#: Mailman/Gui/General.py:161
+msgid "Poster"
+msgstr "Avsender"
+
+#: Mailman/Gui/General.py:161
+msgid "This list"
+msgstr "Epostlistens adresse"
+
+#: Mailman/Gui/General.py:162
+msgid ""
+"Where are replies to list messages directed?\n"
+" <tt>Poster</tt> is <em>strongly</em> recommended for most "
+"mailing\n"
+" lists."
+msgstr ""
+"Hvor skal svar p&aring; epost til listen rettes?\n"
+"<tt>Avsender</tt> anbefales <em>p&aring; det sterkeste</em> for de fleste "
+"epostlister."
+
+#: Mailman/Gui/General.py:167
+msgid ""
+"This option controls what Mailman does to the\n"
+" <tt>Reply-To:</tt> header in messages flowing through this\n"
+" mailing list. When set to <em>Poster</em>, no <tt>Reply-To:</"
+"tt>\n"
+" header is added by Mailman, although if one is present in the\n"
+" original message, it is not stripped. Setting this value to\n"
+" either <em>This list</em> or <em>Explicit address</em> causes\n"
+" Mailman to insert a specific <tt>Reply-To:</tt> header in all\n"
+" messages, overriding the header in the original message if\n"
+" necessary (<em>Explicit address</em> inserts the value of <a\n"
+" href=\"?VARHELP=general/reply_to_address\">reply_to_address</"
+"a>).\n"
+" \n"
+" <p>There are many reasons not to introduce or override the\n"
+" <tt>Reply-To:</tt> header. One is that some posters depend on\n"
+" their own <tt>Reply-To:</tt> settings to convey their valid\n"
+" return address. Another is that modifying <tt>Reply-To:</tt>\n"
+" makes it much more difficult to send private replies. See <a\n"
+" href=\"http://www.unicom.com/pw/reply-to-harmful.html\">`Reply-"
+"To'\n"
+" Munging Considered Harmful</a> for a general discussion of "
+"this\n"
+" issue. See <a\n"
+" href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml"
+"\">Reply-To\n"
+" Munging Considered Useful</a> for a dissenting opinion.\n"
+"\n"
+" <p>Some mailing lists have restricted posting privileges, with "
+"a\n"
+" parallel list devoted to discussions. Examples are `patches' "
+"or\n"
+" `checkin' lists, where software changes are posted by a "
+"revision\n"
+" control system, but discussion about the changes occurs on a\n"
+" developers mailing list. To support these types of mailing\n"
+" lists, select <tt>Explicit address</tt> and set the\n"
+" <tt>Reply-To:</tt> address below to point to the parallel\n"
+" list."
+msgstr ""
+"Denne innstilllingen forteller hva Mailman skal gj&oslash;re med <tt>Reply-"
+"To:</tt>\n"
+"feltet i meldingshodet p&aring; epost som sendes til listen. Er den satt "
+"til\n"
+"<em>Avsender</em>, vil ikke Mailman legge til noe <tt>Reply-To:</tt> felt,\n"
+"men finnes det et slikt felt allerede, vil det ikke bli fjernet.\n"
+"Settes innstillingen til enten <em>Eposlistens adresse</em> eller\n"
+"<em>Egendefinert adresse</em>, vil Mailman legge til, evt. erstatte,\n"
+"et <tt>Reply-To:</tt> felt. (<em>Egendefinert adresse</em> setter inn "
+"verdien\n"
+"av innstillingen <a href=\"?VARHELP=general/reply_to_address"
+"\">reply_to_address</a>).\n"
+"\n"
+"<p>Det finnes mange grunner til &aring; ikke innf&oslash;re eller erstatte "
+"<tt>Reply-To:</tt>\n"
+"felter. En grunn kan v&aelig;re at noen av de som sender epost til listen "
+"er\n"
+"avhengige av &aring; selv sette <tt>Reply-To:</tt> adressen. En annen grunn "
+"er at\n"
+"modifikasjon av <tt>Reply-To:</tt> adressen gj&oslash;r det vanskeligere "
+"&aring; sende\n"
+"svar kun til avsender.\n"
+"Se <a href=\"http://www.unicom.com/pw/reply-to-harmful.html\">'Reply-To' "
+"Munging Considered Harmful</a>\n"
+"for en diskusjon rundt temaet.\n"
+"Se <a href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml\">Reply-"
+"To Munging Considered Useful</a>\n"
+"for motsatte meninger.\n"
+"\n"
+"<p>Noen epostlister har begrenset tilgang, med en egen parallell liste\n"
+"beregnet for diskusjoner. Eksempler p&aring; dette er 'patcher' eller "
+"'checkin' lister,\n"
+"som system for revisjonskontroll sender endringer i programvare til, men\n"
+"diskusjoner rundt utvikling av programvaren sendes til utviklerenes egen\n"
+"epostliste. For &aring; st&oslash;tte slike epostlister, velg "
+"<em>Egendefinert adresse</em>\n"
+"og sett <tt>Reply-To:</tt> adressen i innstillingen <tt>reply_to_address</"
+"tt> til &aring; peke til\n"
+"den parallelle diskusjonslisten."
+
+#: Mailman/Gui/General.py:199
+msgid "Explicit <tt>Reply-To:</tt> header."
+msgstr "Egendefinert <tt>Reply-To:</tt> adresse."
+
+#: Mailman/Gui/General.py:201
+msgid ""
+"This is the address set in the <tt>Reply-To:</tt> header\n"
+" when the <a\n"
+" href=\"?VARHELP=general/reply_goes_to_list"
+"\">reply_goes_to_list</a>\n"
+" option is set to <em>Explicit address</em>.\n"
+"\n"
+" <p>There are many reasons not to introduce or override the\n"
+" <tt>Reply-To:</tt> header. One is that some posters depend on\n"
+" their own <tt>Reply-To:</tt> settings to convey their valid\n"
+" return address. Another is that modifying <tt>Reply-To:</tt>\n"
+" makes it much more difficult to send private replies. See <a\n"
+" href=\"http://www.unicom.com/pw/reply-to-harmful.html\">`Reply-"
+"To'\n"
+" Munging Considered Harmful</a> for a general discussion of "
+"this\n"
+" issue. See <a\n"
+" href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml"
+"\">Reply-To\n"
+" Munging Considered Useful</a> for a dissenting opinion.\n"
+"\n"
+" <p>Some mailing lists have restricted posting privileges, with "
+"a\n"
+" parallel list devoted to discussions. Examples are `patches' "
+"or\n"
+" `checkin' lists, where software changes are posted by a "
+"revision\n"
+" control system, but discussion about the changes occurs on a\n"
+" developers mailing list. To support these types of mailing\n"
+" lists, specify the explicit <tt>Reply-To:</tt> address here. "
+"You\n"
+" must also specify <tt>Explicit address</tt> in the\n"
+" <tt>reply_goes_to_list</tt>\n"
+" variable.\n"
+"\n"
+" <p>Note that if the original message contains a\n"
+" <tt>Reply-To:</tt> header, it will not be changed."
+msgstr ""
+"Her definerer du adressen som skal settes i <tt>Reply-To:</tt> feltet\n"
+"n&aring;r innstillingen <a href=\"?VARHELP=general/reply_goes_to_list"
+"\">reply_goes_to_list</a>\n"
+"er satt til <em>Egendefinert adresse</em>.\n"
+"\n"
+"<p>Det finnes mange grunner til &aring; ikke innf&oslash;re eller erstatte "
+"<tt>Reply-To:</tt>\n"
+"felter. En grunn kan v&aelig;re at noen av de som sender epost til listen "
+"er\n"
+"avhengige av &aring; selv sette <tt>Reply-To:</tt> adressen. En annen grunn "
+"er at\n"
+"modifikasjon av <tt>Reply-To:</tt> adressen gj&oslash;r det vanskeligere "
+"&aring; sende\n"
+"svar kun til avsender.\n"
+"Se <a href=\"http://www.unicom.com/pw/reply-to-harmful.html\">'Reply-To' "
+"Munging Considered Harmful</a>\n"
+"for en diskusjon rundt temaet.\n"
+"Se <a href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml\">Reply-"
+"To Munging Considered Useful</a>\n"
+"for motsatte meninger.\n"
+"\n"
+"<p>Noen epostlister har begrenset tilgang, med en egen parallell liste\n"
+"beregnet for diskusjoner. Eksempler p&aring; dette er 'patcher' eller "
+"'checkin' lister,\n"
+"som system for revisjonskontroll sender endringer i programvare til, men\n"
+"diskusjoner rundt utvikling av programvaren sendes til utviklerenes egen\n"
+"epostliste. For &aring; st&oslash;tte slike epostlister, definer <tt>Reply-"
+"To:</tt> adressen her,\n"
+"og velg <em>Egendefinert adresse</em> i innstillingen "
+"<tt>reply_goes_to_list</tt>.\n"
+"\n"
+"<p>Merk at hvis den opprinnelige meldingen inneholder et <tt>Reply-To:</tt> "
+"felt,\n"
+"vil det <em>ikke</em> endres."
+
+#: Mailman/Gui/General.py:230
+msgid "Umbrella list settings"
+msgstr "Paraplyliste innstillinger"
+
+#: Mailman/Gui/General.py:233
+msgid ""
+"Send password reminders to, eg, \"-owner\" address instead of\n"
+" directly to user."
+msgstr ""
+"Send p&aring;minnelser om passord til, f.eks., \"-owner\" adressen "
+"istedenfor direkte\n"
+"til medlemmet."
+
+#: Mailman/Gui/General.py:236
+msgid ""
+"Set this to yes when this list is intended to cascade only\n"
+" to other mailing lists. When set, meta notices like\n"
+" confirmations and password reminders will be directed to an\n"
+" address derived from the member's address - it will have the\n"
+" value of \"umbrella_member_suffix\" appended to the member's\n"
+" account name."
+msgstr ""
+"Sett denne til 'ja' dersom listen skal brukes som en \"paraply\" for flere\n"
+"andre lister. N&aring;r denne er satt, vil bekreftelser og meldinger med "
+"passord\n"
+"bli sendt til en egen adresse som beregnes ut fra epostadressen som\n"
+"er p&aring;meldt listen - verdien av innstillingen \"umbrella_member_suffix"
+"\"\n"
+"brukes til dette. Denne verdien legges til medlemmets kontonavn (det som\n"
+"st&aring;r f&oslash;r @-tegnet)."
+
+#: Mailman/Gui/General.py:244
+msgid ""
+"Suffix for use when this list is an umbrella for other\n"
+" lists, according to setting of previous \"umbrella_list\"\n"
+" setting."
+msgstr ""
+"Suffix som brukes n&aring;r dette er en \"paraplyliste\" for andre "
+"epostlister,\n"
+"if&oslash;lge innstillingen \"umbrella_list\" ovenfor."
+
+#: Mailman/Gui/General.py:248
+msgid ""
+"When \"umbrella_list\" is set to indicate that this list has\n"
+" other mailing lists as members, then administrative notices "
+"like\n"
+" confirmations and password reminders need to not be sent to "
+"the\n"
+" member list addresses, but rather to the owner of those member\n"
+" lists. In that case, the value of this setting is appended to\n"
+" the member's account name for such notices. `-owner' is the\n"
+" typical choice. This setting has no effect when \"umbrella_list"
+"\"\n"
+" is \"No\"."
+msgstr ""
+"N&aring;r \"umbrella_list\" indikerer at denne listen har andre epostlister "
+"som medlemmer,\n"
+"er det gjerne &oslash;nskelig at administrative meldinger som f.eks. "
+"bekreftelser og\n"
+"passord p&aring;minnelser ikke sendes til selve listen som er medlem, men "
+"til\n"
+"administratoren for listen. Hvis dette er tilfelle, brukes verdien av denne\n"
+"innstillingen til &aring; bestemme adressen slike administrative meldinger "
+"skal\n"
+"sendes til. '-owner' er et vanlig valg for denne innstillingen.<br>\n"
+"Denne innstillingen har ingen effekt n&aring;r \"umbrella_list\" er satt til "
+"\"Nei\"."
+
+#: Mailman/Gui/General.py:260
+msgid "Send monthly password reminders?"
+msgstr "Sende p&aring;minnelse om passord en gang i m&aring;neden?"
+
+#: Mailman/Gui/General.py:262
+msgid ""
+"Turn this on if you want password reminders to be sent once\n"
+" per month to your members. Note that members may disable "
+"their\n"
+" own individual password reminders."
+msgstr ""
+"Sett denne p&aring; hvis du vil at p&aring;minnelser om passord skal sendes "
+"til medlemmene\n"
+"en gang i m&aring;neden. Husk at medlemmene kan ogs&aring; selv skru av "
+"dette."
+
+#: Mailman/Gui/General.py:267
+msgid ""
+"List-specific text prepended to new-subscriber welcome\n"
+" message"
+msgstr ""
+"Tekst som legges til i velkomsthilsen for nye medlemmer p&aring; denne "
+"listen."
+
+#: Mailman/Gui/General.py:270
+msgid ""
+"This value, if any, will be added to the front of the\n"
+" new-subscriber welcome message. The rest of the welcome "
+"message\n"
+" already describes the important addresses and URLs for the\n"
+" mailing list, so you don't need to include any of that kind of\n"
+" stuff here. This should just contain mission-specific kinds "
+"of\n"
+" things, like etiquette policies or team orientation, or that "
+"kind\n"
+" of thing.\n"
+"\n"
+" <p>Note that this text will be wrapped, according to the\n"
+" following rules:\n"
+" <ul><li>Each paragraph is filled so that no line is longer "
+"than\n"
+" 70 characters.\n"
+" <li>Any line that begins with whitespace is not filled.\n"
+" <li>A blank line separates paragraphs.\n"
+" </ul>"
+msgstr ""
+"Tekst du skriver her vil bli lagt til &oslash;verst i velkomsthilsenen som "
+"sendes til nye medlemmer.\n"
+"Velkomshilsenen inneholder allerede viktige adresser og URLer knyttet til "
+"epostlisten,\n"
+"s&aring; slik informasjon er det ikke n&oslash;dvendig &aring; inkludere "
+"her. Her kan du legge inn f.eks.\n"
+"opplysning om etikette eller regler for bruk av listen, o.l.\n"
+"\n"
+"<p>Merk: Linjene i denne teksten vil brytes etter f&oslash;lgende regler:\n"
+"<ul>\n"
+" <li>Hvert avsnitt fylles inn slik at ingen linje er lenger en 70 tegn.</"
+"li>\n"
+" <li>Enhver linje som begynner med blanke tegn fylles ikke.</li>\n"
+" <li>Blanke linjer adskiller avsnitt.</li>\n"
+"</ul>"
+
+#: Mailman/Gui/General.py:287
+msgid "Send welcome message to newly subscribed members?"
+msgstr "Sende velkomsthilsen til nye medlemmer?"
+
+#: Mailman/Gui/General.py:288
+msgid ""
+"Turn this off only if you plan on subscribing people manually\n"
+" and don't want them to know that you did so. This option is "
+"most\n"
+" useful for transparently migrating lists from some other "
+"mailing\n"
+" list manager to Mailman."
+msgstr ""
+"Sett denne til 'Nei' bare hvis du skal legge inn nye medlemmer manuelt,\n"
+"og ikke vil at de skal f&aring; vite om det.\n"
+"Dette er gjerne nyttig n&aring;r man g&aring;r over fra\n"
+"et annet epostlistesystem til Mailman,\n"
+"og vil at overgangen skal v&aelig;re s&aring; lite merkbar som mulig."
+
+#: Mailman/Gui/General.py:294
+msgid ""
+"Text sent to people leaving the list. If empty, no special\n"
+" text will be added to the unsubscribe message."
+msgstr ""
+"Tekst som sendes til medlemmer som melder seg av listen.\n"
+"Er denne tom, legges det ikke noe tekst til utmeldingen."
+
+#: Mailman/Gui/General.py:298
+msgid "Send goodbye message to members when they are unsubscribed?"
+msgstr "Sende avskjedshilsen til medlemmer n&aring;r de meldes ut?"
+
+#: Mailman/Gui/General.py:301
+msgid ""
+"Should the list moderators get immediate notice of new\n"
+" requests, as well as daily notices about collected ones?"
+msgstr ""
+"Skal listemoderatoren(e) motta melding om foresp&oslash;rsler straks de "
+"kommer inn,\n"
+"i tillegg til en daglig melding om foresp&oslash;rsler som venter p&aring; "
+"behandling?"
+
+#: Mailman/Gui/General.py:304
+msgid ""
+"List moderators (and list administrators) are sent daily\n"
+" reminders of requests pending approval, like subscriptions to "
+"a\n"
+" moderated list, or postings that are being held for one reason "
+"or\n"
+" another. Setting this option causes notices to be sent\n"
+" immediately on the arrival of new requests as well."
+msgstr ""
+"Det sendes ut p&aring;minnelse til listemoderatoren(e) (og "
+"listeadministratoren(e)) daglig om foresp&oslash;rsler som av\n"
+"en eller annen grunn venter p&aring; behandling. Velger du \"Ja\", vil\n"
+"listeadminstratoren ogs&aring; motta en melding s&aring; snart en "
+"foresp&oslash;rsel kommer inn."
+
+#: Mailman/Gui/General.py:311
+msgid ""
+"Should administrator get notices of subscribes and\n"
+" unsubscribes?"
+msgstr ""
+"Skal listeadministratoren(e) ogs&aring; motta melding om nye medlemmer som "
+"melder seg p&aring;\n"
+"og gamle medlemmer som melder seg av?"
+
+#: Mailman/Gui/General.py:316
+msgid "Send mail to poster when their posting is held for approval?"
+msgstr ""
+"Send epost til avsendere n&aring;r deres epost til listen holdes tilbake for "
+"godkjenning?"
+
+#: Mailman/Gui/General.py:318
+msgid ""
+"Approval notices are sent when mail triggers certain of the\n"
+" limits <em>except</em> routine list moderation and spam "
+"filters,\n"
+" for which notices are <em>not</em> sent. This option "
+"overrides\n"
+" ever sending the notice."
+msgstr ""
+"Beskjed om at en melding m&aring; godkjennes sendes ut til avsenderen "
+"dersom\n"
+"meldingen stoppes pga. noe annet enn listemoderasjon eller spam filtre.\n"
+"Settes denne innstillingen til 'Nei', vil avsender overhodet ikke motta\n"
+"denne beskjeden."
+
+#: Mailman/Gui/General.py:323
+msgid "Additional settings"
+msgstr "Flere innstillinger"
+
+#: Mailman/Gui/General.py:326
+msgid "Emergency moderation of all list traffic."
+msgstr "Øyeblikkelig tilbakeholding av meldinger til listen."
+
+#: Mailman/Gui/General.py:327
+msgid ""
+"When this option is enabled, all list traffic is emergency\n"
+" moderated, i.e. held for moderation. Turn this option on when\n"
+" your list is experiencing a flamewar and you want a cooling "
+"off\n"
+" period."
+msgstr ""
+"Når dette valget er aktivert, vil all epost til listen bli moderert.\n"
+"Dette valget kan være nyttig når epostlisten din f.eks. har en såkalt "
+"\"flamewar\",\n"
+"altså en \"krig\" der medlemmer bare kjefter og skjeller ut hverandre.\n"
+"En \"nød-moderasjon\" kan da hjelpe deg å plukke vekk usaklige meldinger til "
+"listen,\n"
+"og på den måten roe ned den opphetede diskusjonen."
+
+#: Mailman/Gui/General.py:339
+msgid ""
+"Default options for new members joining this list.<input\n"
+" type=\"hidden\" name=\"new_member_options\" value=\"ignore\">"
+msgstr ""
+"Standardvalg for nye medlemmer som meldes på listen.\n"
+"<input type=\"hidden\" name=\"new_member_options\" value=\"ignore\">"
+
+#: Mailman/Gui/General.py:342
+msgid ""
+"When a new member is subscribed to this list, their initial\n"
+" set of options is taken from the this variable's setting."
+msgstr ""
+"Når et nytt medlem meldes på listen, blir medlemmets innstillinger tatt "
+"herfra."
+
+#: Mailman/Gui/General.py:346
+msgid ""
+"(Administrivia filter) Check postings and intercept ones\n"
+" that seem to be administrative requests?"
+msgstr ""
+"(Filter for administrative meldinger) Foreta en unders&oslash;kelse av "
+"meldinger\n"
+"til epostlisten og ta tak i meldinger som kan se ut som de er\n"
+"administrative foresp&oslash;rsler?"
+
+#: Mailman/Gui/General.py:349
+msgid ""
+"Administrivia tests will check postings to see whether it's\n"
+" really meant as an administrative request (like subscribe,\n"
+" unsubscribe, etc), and will add it to the the administrative\n"
+" requests queue, notifying the administrator of the new "
+"request,\n"
+" in the process."
+msgstr ""
+"Filter for administrative meldinger vil unders&oslash;ke om meldingen "
+"egentlig er\n"
+"ment som en administrativ foresp&oslash;rsel (f.eks. p&aring;melding, "
+"utmelding, o.l.),\n"
+"og is&aring;fall sende meldingen til administratoren isteden."
+
+#: Mailman/Gui/General.py:356
+msgid ""
+"Maximum length in kilobytes (KB) of a message body. Use 0\n"
+" for no limit."
+msgstr ""
+"Maximum st&oslash;rrelse i kilobytes (KB) for innholdet i epost som sendes "
+"til listen.\n"
+"Bruk verdien '0' for &aring; ikke ha noen begrensning."
+
+#: Mailman/Gui/General.py:360
+msgid "Host name this list prefers for email."
+msgstr "Maskinnavn denne listen skal benytte p&aring; epostadresser."
+
+#: Mailman/Gui/General.py:362
+msgid ""
+"The \"host_name\" is the preferred name for email to\n"
+" mailman-related addresses on this host, and generally should "
+"be\n"
+" the mail host's exchanger address, if any. This setting can "
+"be\n"
+" useful for selecting among alternative names of a host that "
+"has\n"
+" multiple addresses."
+msgstr ""
+"\"Maskinnavnet\" er det navnet som skal benyttes for epostadresser relatert "
+"til\n"
+"Mailman p&aring; denne maskinen, og er vanligvis navnet som er forbundet "
+"med\n"
+"epost-tjeneren p&aring; denne maskinen. Denne innstillingen kan v&aelig;re "
+"nyttig dersom\n"
+"maskinen har flere navn."
+
+#: Mailman/Gui/General.py:374
+msgid ""
+"Should messages from this mailing list include the\n"
+" <a href=\"http://www.faqs.org/rfcs/rfc2369.html\">RFC 2369</"
+"a>\n"
+" (i.e. <tt>List-*</tt>) headers? <em>Yes</em> is highly\n"
+" recommended."
+msgstr ""
+"Skal meldinger som sendes ut fra denne epostlisten inneholde\n"
+"<a href=\"http://www.faqs.org/rfcs/rfc2369.html\">RFC 2369</a>\n"
+"(<tt>List-*</tt>) felter i meldingshodet?\n"
+"<em>Ja</em> anbefales p&aring; det sterkeste."
+
+#: Mailman/Gui/General.py:379
+msgid ""
+"RFC 2369 defines a set of List-* headers that are\n"
+" normally added to every message sent to the list "
+"membership.\n"
+" These greatly aid end-users who are using standards "
+"compliant\n"
+" mail readers. They should normally always be enabled.\n"
+"\n"
+" <p>However, not all mail readers are standards compliant "
+"yet,\n"
+" and if you have a large number of members who are using\n"
+" non-compliant mail readers, they may be annoyed at these\n"
+" headers. You should first try to educate your members as "
+"to\n"
+" why these headers exist, and how to hide them in their "
+"mail\n"
+" clients. As a last resort you can disable these headers, "
+"but\n"
+" this is not recommended (and in fact, your ability to "
+"disable\n"
+" these headers may eventually go away)."
+msgstr ""
+"I RFC 2369 defineres en rekke List-* felter i meldingshodet, som vanligvis\n"
+"legges til hver melding som sendes ut via listen. Disse feltene kan hjelpe\n"
+"de brukerne av listen som benytter en epostleser som f&oslash;lger denne "
+"standarden.\n"
+"Disse feltene b&oslash;r derfor alltid v&aelig;re med.\n"
+"\n"
+"<p>Ikke alle epostlesere f&oslash;lger denne standarden. Er det mange av "
+"medlemmene\n"
+"p&aring; listen som benytter slike epostlesere, og som blir forvirret av "
+"disse\n"
+"feltene i meldingshodet, kan det v&aelig;re du vil velge &aring; utelate "
+"dem.\n"
+"Men du b&oslash;r f&oslash;rst fors&oslash;ke &aring; l&aelig;re og forklare "
+"medlemmene hva hensikten med slike\n"
+"felter er, og hvordan de kan skjule dem i sine epostlesere. Som en siste "
+"utvei\n"
+"kan du utelate disse feltene, men dette anbefales ikke (denne muligheten "
+"kan\n"
+"faktisk ogs&aring; forsvinne i senere versjoner)."
+
+#: Mailman/Gui/General.py:397
+msgid "Should postings include the <tt>List-Post:</tt> header?"
+msgstr "Skal epost til listen inneholde <tt>List-Post</tt> feltet?"
+
+#: Mailman/Gui/General.py:398
+msgid ""
+"The <tt>List-Post:</tt> header is one of the headers\n"
+" recommended by\n"
+" <a href=\"http://www.faqs.org/rfcs/rfc2369.html\">RFC 2369</"
+"a>.\n"
+" However for some <em>announce-only</em> mailing lists, only a\n"
+" very select group of people are allowed to post to the list; "
+"the\n"
+" general membership is usually not allowed to post. For lists "
+"of\n"
+" this nature, the <tt>List-Post:</tt> header is misleading.\n"
+" Select <em>No</em> to disable the inclusion of this header. "
+"(This\n"
+" does not affect the inclusion of the other <tt>List-*:</tt>\n"
+" headers.)"
+msgstr ""
+"<tt>List-Post:</tt> feltet er et av feltene anbefalt i\n"
+"<a href=\"http://www.faqs.org/rfcs/rfc2369.html\">RFC 2369</a>.\n"
+"Noen epostlister (som f.eks. kun brukes til kunngjøringer),\n"
+"er det bare visse folk som har lov til å sende til;\n"
+"de som er medlem av listen har generelt ikke lov til å sende til listen.\n"
+"For slike lister, er <tt>List-Post:</tt> feltet forvirrende.\n"
+"I slike tilfeller kan det være lurt å sette denne innstillingen til <em>Nei</"
+"em>,\n"
+"slik at dette feltet ikke legges til.\n"
+"(Dette påvirker ikke andre <tt>List-*:</tt> felter.)"
+
+#: Mailman/Gui/General.py:416
+msgid ""
+"<b>real_name</b> attribute not\n"
+" changed! It must differ from the list's name by case\n"
+" only."
+msgstr ""
+"<b>real_name</b> ble ikke endret! Du kan kun endre store eller sm&aring; "
+"bokstaver i navnet."
+
+#: Mailman/Gui/General.py:437
+msgid ""
+"You cannot add a Reply-To: to an explicit\n"
+" address if that address is blank. Resetting these values."
+msgstr ""
+"Du kan ikke legge til et Reply-To. felt dersom adressen er tom.\n"
+"Setter tilbake denne innstillingen."
+
+#: Mailman/Gui/Language.py:34
+msgid "Language&nbsp;options"
+msgstr "Innstillinger&nbsp;for&nbsp;spr&aring;k"
+
+#: Mailman/Gui/Language.py:66
+msgid "Natural language (internationalization) options."
+msgstr "St&oslash;tte for flere spr&aring;k. (Internasjonalisering)"
+
+#: Mailman/Gui/Language.py:71
+msgid "Default language for this list."
+msgstr "Standard spr&aring;k for denne listen."
+
+#: Mailman/Gui/Language.py:72
+msgid ""
+"This is the default natural language for this mailing list.\n"
+" If <a href=\"?VARHELP=language/available_languages\">more than "
+"one\n"
+" language</a> is supported then users will be able to select "
+"their\n"
+" own preferences for when they interact with the list. All "
+"other\n"
+" interactions will be conducted in the default language. This\n"
+" applies to both web-based and email-based messages, but not to\n"
+" email posted by list members."
+msgstr ""
+"Dette er standardspr&aring;ket som benyttes for denne epostlisten.\n"
+"Hvis <a href=\"?VARHELP=language/available_languages\">mer enn ett spr&aring;"
+"k/<a>\n"
+"st&oslash;ttes, vil medlemmer av listen kunne velge selv hvilket spr&aring;k "
+"som skal\n"
+"benyttes n&aring;r de g&aring;r inn p&aring; sin personlige webside, og "
+"n&aring;r meldinger fra\n"
+"systemet sendes til dem.\n"
+"Dersom medlemmene ikke endrer noe selv, vil dette standardspr&aring;ket "
+"benyttes.\n"
+"Dette gjelder b&aring;de web-baserte og epost-baserte meldinger, men ikke "
+"meldinger\n"
+"sendt av listens medlemmer."
+
+#: Mailman/Gui/Language.py:82
+msgid "Languages supported by this list."
+msgstr "Spr&aring;k som denne listen st&oslash;tter."
+
+#: Mailman/Gui/Language.py:84
+msgid ""
+"These are all the natural languages supported by this list.\n"
+" Note that the\n"
+" <a href=\"?VARHELP=language/preferred_language\">default\n"
+" language</a> must be included."
+msgstr ""
+"Her er alle spr&aring;kene denne listen har st&oslash;tte for.\n"
+"Merk at <a href=\"?VARHELP=language/preferred_language\">standardspr&aring;"
+"ket</a>\n"
+"m&aring; v&aelig;re med."
+
+#: Mailman/Gui/Language.py:90
+msgid "Always"
+msgstr "Alltid"
+
+#: Mailman/Gui/Language.py:90
+msgid "As needed"
+msgstr "Etter behov"
+
+#: Mailman/Gui/Language.py:90
+msgid "Never"
+msgstr "Aldri"
+
+#: Mailman/Gui/Language.py:91
+msgid ""
+"Encode the\n"
+" <a href=\"?VARHELP=general/subject_prefix\">subject\n"
+" prefix</a> even when it consists of only ASCII characters?"
+msgstr ""
+"Kode <a href=\"?VARHELP=general/subject_prefix\">tittel prefix</a>\n"
+"selv om den bare består av ASCII tegn?"
+
+#: Mailman/Gui/Language.py:95
+msgid ""
+"If your mailing list's default language uses a non-ASCII\n"
+" character set and the prefix contains non-ASCII characters, "
+"the\n"
+" prefix will always be encoded according to the relevant\n"
+" standards. However, if your prefix contains only ASCII\n"
+" characters, you may want to set this option to <em>Never</em> "
+"to\n"
+" disable prefix encoding. This can make the subject headers\n"
+" slightly more readable for users with mail readers that don't\n"
+" properly handle non-ASCII encodings.\n"
+"\n"
+" <p>Note however, that if your mailing list receives both "
+"encoded\n"
+" and unencoded subject headers, you might want to choose <em>As\n"
+" needed</em>. Using this setting, Mailman will not encode "
+"ASCII\n"
+" prefixes when the rest of the header contains only ASCII\n"
+" characters, but if the original header contains non-ASCII\n"
+" characters, it will encode the prefix. This avoids an "
+"ambiguity\n"
+" in the standards which could cause some mail readers to "
+"display\n"
+" extra, or missing spaces between the prefix and the original\n"
+" header."
+msgstr ""
+"Hvis standardspråket for epostlisten din benytter et annet tegnsett enn "
+"ASCII\n"
+"og tittel prefixet for listen inneholder tegn som ikke finnes i ASCII-"
+"tegnsettet,\n"
+"vil prefixet alltid bli kodet i henhold til den relevante standard. Hvis "
+"tittel\n"
+"prefixet kun innholder ASCII tegn, kan det imidlertid hende du ønsker å "
+"sette\n"
+"dette valget til <em>Aldri</em> for å unngå koding. Dette kan gjøre "
+"tittelen\n"
+"litt mer leselig for brukere med epostlesere som ikke takler andre tegnsett\n"
+"enn ASCII på riktig måte.\n"
+"\n"
+"<p>Merk imidlertid at hvis epostlisten din mottar både kodede og ukodede "
+"tittel\n"
+"felt, kan det være lurt å velge <em>Etter behov</em>. Med denne "
+"innstillingen\n"
+"vil Mailman ikke kode ASCII prefixer dersom resten av tittelfeltet "
+"inneholder\n"
+"bare ASCII tegn, men vil kode prefixet dersom det inneholder tegn som ikke "
+"er\n"
+"ASCII tegn. På denne måten unngås en [...] i standardene, som forårsaket at\n"
+"visse epostlesere viste ekstra eller manglende mellomrom mellom tittel "
+"prefixet\n"
+"og det opprinnelige tittelfeltet."
+
+#: Mailman/Gui/Membership.py:26
+msgid "Membership&nbsp;Management"
+msgstr "Administrere&nbsp;medlemmer"
+
+#: Mailman/Gui/Membership.py:30
+msgid "Membership&nbsp;List"
+msgstr "Liste&nbsp;over&nbsp;medlemmer"
+
+#: Mailman/Gui/Membership.py:31
+msgid "Mass&nbsp;Subscription"
+msgstr "Legge&nbsp;inn&nbsp;nye&nbsp;medlemmer&nbsp;p&aring;&nbsp;listen"
+
+#: Mailman/Gui/Membership.py:32
+msgid "Mass&nbsp;Removal"
+msgstr "Fjerne&nbsp;medlemmer&nbsp;fra&nbsp;listen"
+
+#: Mailman/Gui/NonDigest.py:34
+msgid "Non-digest&nbsp;options"
+msgstr "Innstillinger&nbsp;for&nbsp;normal-modus"
+
+#: Mailman/Gui/NonDigest.py:42
+msgid "Policies concerning immediately delivered list traffic."
+msgstr "Regler for levering i normal-modus."
+
+#: Mailman/Gui/NonDigest.py:45
+msgid ""
+"Can subscribers choose to receive mail immediately, rather\n"
+" than in batched digests?"
+msgstr "Kan medlemmer velge normal-modus?"
+
+#: Mailman/Gui/NonDigest.py:52
+msgid "Full Personalization"
+msgstr "Full personliggj&oslash;ring"
+
+#: Mailman/Gui/NonDigest.py:54
+msgid ""
+"Should Mailman personalize each non-digest delivery?\n"
+" This is often useful for announce-only lists, but <a\n"
+" href=\"?VARHELP=nondigest/personalize\">read the details</"
+"a>\n"
+" section for a discussion of important performance\n"
+" issues."
+msgstr ""
+"Skal Mailman gj&oslash;re hver epost levert via listen (i normal-modus) "
+"personlig?\n"
+"Dette er ofte nyttig for epostlister beregnet for bruk til kunngj&oslash;"
+"ring,\n"
+"men <a href=\"?VARHELP=nondigest/personalize\">les hjelpeteksten</a> for en\n"
+"vurdering med hensyn p&aring; ytelse."
+
+#: Mailman/Gui/NonDigest.py:60
+msgid ""
+"Normally, Mailman sends the regular delivery messages to\n"
+" the mail server in batches. This is much more efficent\n"
+" because it reduces the amount of traffic between Mailman "
+"and\n"
+" the mail server.\n"
+"\n"
+" <p>However, some lists can benefit from a more "
+"personalized\n"
+" approach. In this case, Mailman crafts a new message for\n"
+" each member on the regular delivery list. Turning this\n"
+" feature on may degrade the performance of your site, so "
+"you\n"
+" need to carefully consider whether the trade-off is worth "
+"it,\n"
+" or whether there are other ways to accomplish what you "
+"want.\n"
+" You should also carefully monitor your system load to make\n"
+" sure it is acceptable.\n"
+"\n"
+" <p>Select <em>No</em> to disable personalization and send\n"
+" messages to the members in batches. Select <em>Yes</em> "
+"to\n"
+" personalize deliveries and allow additional substitution\n"
+" variables in message headers and footers (see below). In\n"
+" addition, by selecting <em>Full Personalization</em>, the\n"
+" <code>To</code> header of posted messages will be modified "
+"to\n"
+" include the member's address instead of the list's posting\n"
+" address.\n"
+"\n"
+" <p>When personalization is enabled, a few more expansion\n"
+" variables that can be included in the <a\n"
+" href=\"?VARHELP=nondigest/msg_header\">message header</a> "
+"and\n"
+" <a href=\"?VARHELP=nondigest/msg_footer\">message footer</"
+"a>.\n"
+"\n"
+" <p>These additional substitution variables will be "
+"available\n"
+" for your headers and footers, when this feature is "
+"enabled:\n"
+"\n"
+" <ul><li><b>user_address</b> - The address of the user,\n"
+" coerced to lower case.\n"
+" <li><b>user_delivered_to</b> - The case-preserved "
+"address\n"
+" that the user is subscribed with.\n"
+" <li><b>user_password</b> - The user's password.\n"
+" <li><b>user_name</b> - The user's full name.\n"
+" <li><b>user_optionsurl</b> - The url to the user's "
+"option\n"
+" page.\n"
+" </ul>\n"
+" "
+msgstr ""
+"Vanligvis blir meldinger til listen sendt til mailserveren gruppevis.\n"
+"Denne metoden er mye mer effektiv og l&oslash;nnsom, fordi den reduserer "
+"trafikken\n"
+"mellom Mailman og mailserveren.\n"
+"<p>For noen epostlister kan det imidlertid v&aelig;re &oslash;nskelig "
+"&aring; gj&oslash;re meldingene som\n"
+"distribueres til medlemmene litt mer personlig. Da vil Mailman v&aelig;re "
+"n&oslash;dt til\n"
+"&aring; lage en egen melding for hvert medlem, og det vil f&oslash;re til "
+"&oslash;kt trafikk og\n"
+"last p&aring; serveren. Dersom du tar i bruk denne muligheten, b&oslash;r du "
+"f&oslash;rst ha tenkt\n"
+"over at dette kan f&aring; konsekvenser for serveren og ytelsen p&aring; "
+"systemet, og om\n"
+"den eventuelle reduksjonen i ytelsen er verdt det. Kanskje kan det du "
+"&oslash;nsker &aring;\n"
+"oppn&aring; gj&oslash;res p&aring; en annen m&aring;te. Det kan ogs&aring; "
+"v&aelig;re lurt &aring; overv&aring;ke lasten p&aring;\n"
+"serveren dersom denne muligheten tas i bruk.\n"
+"<p>Velg <em>Nei</em> for &aring; sende ut epost til mange medlemmer om "
+"gangen, og ikke gj&oslash;re meldingene personlig.\n"
+"Velg <em>Ja</em> for &aring; gj&oslash;re meldingene personlige og tillate "
+"ytterligere variabler i topptekst og bunntekst (se nedenfor).\n"
+"I tillegg, ved &aring; velge <em>Full personliggj&oslash;ring</em>, vil "
+"<code>To:</code> feltet i meldingshodet modifiseres\n"
+"slik at det inneholder medlemmets adresse istedenfor listens adresse.\n"
+"<p>N&aring;r personliggj&oslash;ring av meldinger aktiveres, kan noen flere "
+"variabler benyttes i\n"
+"<a href=\"?VARHELP=nondigest/msg_header\">topptekst</a> og i\n"
+"<a href=\"?VARHELP=nondigest/msg_footer\">bunntekst</a>, nemlig\n"
+"f&oslash;lgende variabler:\n"
+"\n"
+"<ul>\n"
+" <li><b>user_address</b> - medlemmets epostadresse, med sm&aring; "
+"bokstaver</li>\n"
+" <li><b>user_delivered_to</b> - medlemmets epostadresse, slik den ble "
+"p&aring;meldt listen.</li>\n"
+" <li><b>user_password</b> - medlemmets passord</li>\n"
+" <li><b>user_name</b> - Medlemmets fulle navn</li>\n"
+" <li><b>user_optionsurl</b> - URL til websiden med personlige innstillinger "
+"for medlemmet.\n"
+"</ul>\n"
+" "
+
+#: Mailman/Gui/NonDigest.py:108
+msgid "Header added to mail sent to regular list members"
+msgstr ""
+"Topptekst som legges til &oslash;verst i epost som sendes til listens "
+"medlemmer"
+
+#: Mailman/Gui/NonDigest.py:109
+msgid ""
+"Text prepended to the top of every immediately-delivery\n"
+" message. "
+msgstr ""
+"Tekst som legges til &oslash;verst i epost som sendes til listens medlemmer. "
+
+#: Mailman/Gui/NonDigest.py:114
+msgid "Footer added to mail sent to regular list members"
+msgstr ""
+"Bunntekst som legges til nederst i epost som sendes til listens medlemmer"
+
+#: Mailman/Gui/NonDigest.py:115
+msgid ""
+"Text appended to the bottom of every immediately-delivery\n"
+" message. "
+msgstr ""
+"Tekst som legges til nederst i epost som sendes til listens medlemmer. "
+
+#: Mailman/Gui/Passwords.py:27
+msgid "Passwords"
+msgstr "Passord"
+
+#: Mailman/Gui/Privacy.py:28
+msgid "Privacy options"
+msgstr "Restriksjoner"
+
+#: Mailman/Gui/Privacy.py:32
+msgid "Subscription&nbsp;rules"
+msgstr "S&oslash;knader&nbsp;om&nbsp;medlemskap"
+
+#: Mailman/Gui/Privacy.py:33
+msgid "Sender&nbsp;filters"
+msgstr "Filtrering&nbsp;p&aring;&nbsp;avsender"
+
+#: Mailman/Gui/Privacy.py:34
+msgid "Recipient&nbsp;filters"
+msgstr "Filtrering&nbsp;p&aring;&nbsp;mottaker"
+
+#: Mailman/Gui/Privacy.py:35
+msgid "Spam&nbsp;filters"
+msgstr "Spam&nbsp;filtre"
+
+#: Mailman/Gui/Privacy.py:49 Mailman/Gui/Usenet.py:61
+msgid "None"
+msgstr "Ingen"
+
+#: Mailman/Gui/Privacy.py:50 Mailman/Gui/Privacy.py:73
+msgid "Confirm"
+msgstr "Bekreftelse"
+
+#: Mailman/Gui/Privacy.py:51 Mailman/Gui/Privacy.py:74
+msgid "Require approval"
+msgstr "Godkjenning"
+
+#: Mailman/Gui/Privacy.py:52 Mailman/Gui/Privacy.py:75
+msgid "Confirm and approve"
+msgstr "Bekreftelse og godkjenning"
+
+#: Mailman/Gui/Privacy.py:54 Mailman/Gui/Privacy.py:77
+msgid "What steps are required for subscription?<br>"
+msgstr ""
+"Hva kreves n&aring;r noen &oslash;nsker &aring; melde seg p&aring; listen?"
+
+#: Mailman/Gui/Privacy.py:55
+msgid ""
+"None - no verification steps (<em>Not\n"
+" Recommended </em>)<br>\n"
+" Confirm (*) - email confirmation step required "
+"<br>\n"
+" Require approval - require list administrator\n"
+" Approval for subscriptions <br>\n"
+" Confirm and approve - both confirm and approve\n"
+" \n"
+" <p>(*) when someone requests a subscription,\n"
+" Mailman sends them a notice with a unique\n"
+" subscription request number that they must reply "
+"to\n"
+" in order to subscribe.<br>\n"
+"\n"
+" This prevents mischievous (or malicious) people\n"
+" from creating subscriptions for others without\n"
+" their consent."
+msgstr ""
+"Ingen - ingen bekreftelse n&oslash;dvendig (<em>Anbefales ikke!</em>)<br>\n"
+"Bekreftelse(*) - bekreftelse p&aring; epost er n&oslash;dvendig<br>\n"
+"Godkjenning - s&oslash;knad om medlemskap m&aring; godkjennes av "
+"listeadministrator (eller evt. listemoderator)<br>\n"
+"Bekreftelse+Godkjenning - b&aring;de bekreftelse p&aring; epost og "
+"godkjenning av listeadministrator (evt. listemoderator) er n&oslash;"
+"dvendig<br>\n"
+"\n"
+"<p>(*) n&aring;r noen vil melde seg p&aring; en liste, sender Mailman en "
+"melding med en unik identifikator som de m&aring; oppgi for &aring; bekrefte "
+"p&aring;meldingen.<br>\n"
+"P&aring; denne m&aring;ten vil det da ikke v&aelig;re mulig &aring; melde "
+"noen p&aring; listen mot deres vilje."
+
+#: Mailman/Gui/Privacy.py:78
+msgid ""
+"Confirm (*) - email confirmation required <br>\n"
+" Require approval - require list administrator\n"
+" approval for subscriptions <br>\n"
+" Confirm and approve - both confirm and approve\n"
+" \n"
+" <p>(*) when someone requests a subscription,\n"
+" Mailman sends them a notice with a unique\n"
+" subscription request number that they must reply "
+"to\n"
+" in order to subscribe.<br> This prevents\n"
+" mischievous (or malicious) people from creating\n"
+" subscriptions for others without their consent."
+msgstr ""
+"bekreftelse(*) - bekreftelse p&aring; epost er n&oslash;dvendig<br>\n"
+"godkjenning - s&oslash;knad om medlemskap m&aring; godkjennes av "
+"listeadministrator (eller evt. listemoderator)<br>\n"
+"bekreftelse+godkjenning - b&aring;de bekreftelse p&aring; epost og "
+"godkjenning av listeadministrator (evt. listemoderator) er n&oslash;"
+"dvendig<br>\n"
+"\n"
+"<p>(*) n&aring;r noen vil melde seg p&aring; en liste, sender Mailman en "
+"melding med en unik identifikator som de m&aring; oppgi for &aring; bekrefte "
+"p&aring;meldingen.<br>\n"
+"P&aring; denne m&aring;ten vil det da ikke v&aelig;re mulig melde noen "
+"p&aring; listen mot deres vilje."
+
+#: Mailman/Gui/Privacy.py:94
+msgid ""
+"This section allows you to configure subscription and\n"
+" membership exposure policy. You can also control whether this\n"
+" list is public or not. See also the\n"
+" <a href=\"%(admin)s/archive\">Archival Options</a> section for\n"
+" separate archive-related privacy settings."
+msgstr ""
+"Her kan du bestemme hva som kreves for &aring; melde seg p&aring; "
+"epostlisten,\n"
+"og bl.a. bestemme om epostlisten skal v&aelig;re skjult eller ikke.\n"
+"Se ogs&aring; <a href=\"%(admin)s/archive\">Innstillinger for arkivering</a> "
+"for egne\n"
+"innstillinger n&aring;r det gjelder arkivet og arkivering."
+
+#: Mailman/Gui/Privacy.py:100
+msgid "Subscribing"
+msgstr "P&aring;melding"
+
+#: Mailman/Gui/Privacy.py:102
+msgid ""
+"Advertise this list when people ask what lists are on this\n"
+" machine?"
+msgstr ""
+"Vise denne epostlisten n&aring;r noen ber om &aring; f&aring; se en oversikt "
+"over epostlister p&aring; denne maskinen?"
+
+#: Mailman/Gui/Privacy.py:108
+msgid ""
+"Is the list moderator's approval required for unsubscription\n"
+" requests? (<em>No</em> is recommended)"
+msgstr ""
+"M&aring; listemoderatoren godkjenne utmeldinger av listen?\n"
+"(<em>Nei</em> er anbefalt)"
+
+#: Mailman/Gui/Privacy.py:111
+msgid ""
+"When members want to leave a list, they will make an\n"
+" unsubscription request, either via the web or via email.\n"
+" Normally it is best for you to allow open unsubscriptions so "
+"that\n"
+" users can easily remove themselves from mailing lists (they "
+"get\n"
+" really upset if they can't get off lists!).\n"
+"\n"
+" <p>For some lists though, you may want to impose moderator\n"
+" approval before an unsubscription request is processed. "
+"Examples\n"
+" of such lists include a corporate mailing list that all "
+"employees\n"
+" are required to be members of."
+msgstr ""
+"N&aring;r medlemmer &oslash;nsker å forlate en epostliste, sender de en "
+"s&oslash;knad om utmelding,\n"
+"enten via web, eller via epost. Vanligvis er det best &aring; la slike "
+"s&oslash;knader\n"
+"automatisk godkjennes, slik at meldemmer kan melde seg ut n&aring;r de "
+"&oslash;nsker det\n"
+"(de kommer til &aring; bli irritert hvis de ikke klarer &aring; melde seg "
+"ut!).\n"
+"<p>For noen f&aring; epostlister kan det likevel v&aelig;re aktuelt &aring; "
+"ha kontroll p&aring; om\n"
+"medlemmer f&aring;r melde seg ut selv eller ikke.\n"
+"En liste som alle ansatte i et firma M&Aring; v&aelig;re medlem av, er et "
+"eksempel p&aring;\n"
+"en slik liste."
+
+#: Mailman/Gui/Privacy.py:122
+msgid "Ban list"
+msgstr "Utestengte adresser"
+
+#: Mailman/Gui/Privacy.py:124
+msgid ""
+"List of addresses which are banned from membership in this\n"
+" mailing list."
+msgstr ""
+"Liste over epostadresser som ikke har lov til å melde seg på denne "
+"epostlisten."
+
+#: Mailman/Gui/Privacy.py:127
+msgid ""
+"Addresses in this list are banned outright from subscribing\n"
+" to this mailing list, with no further moderation required. "
+"Add\n"
+" addresses one per line; start the line with a ^ character to\n"
+" designate a regular expression match."
+msgstr ""
+"Alle epostadresser som angis her vil bli utestengt fra listen, og kan ikke\n"
+"melde seg på. Legg inn epostadresser, en per linje, start linjen med tegnet "
+"^\n"
+"for &aring; angi et regexp-uttrykk som skal passe med avsenderadressen."
+
+#: Mailman/Gui/Privacy.py:132
+msgid "Membership exposure"
+msgstr "Innsyn i medlemskap"
+
+#: Mailman/Gui/Privacy.py:134
+msgid "Anyone"
+msgstr "Hvem som helst"
+
+#: Mailman/Gui/Privacy.py:134
+msgid "List admin only"
+msgstr "Kun listeadministrator"
+
+#: Mailman/Gui/Privacy.py:134
+msgid "List members"
+msgstr "Kun medlemmer av listen"
+
+#: Mailman/Gui/Privacy.py:135
+msgid "Who can view subscription list?"
+msgstr ""
+"Hvem har tilgang til &aring; se en liste over medlemmer av epostlisten?"
+
+#: Mailman/Gui/Privacy.py:137
+msgid ""
+"When set, the list of subscribers is protected by member or\n"
+" admin password authentication."
+msgstr ""
+"Hvis denne instillingen er satt, vil listen over medlemmer av epostlisten "
+"bli beskyttet av medlemmenes eller adminstratorens passord."
+
+#: Mailman/Gui/Privacy.py:141
+msgid ""
+"Show member addresses so they're not directly recognizable\n"
+" as email addresses?"
+msgstr ""
+"Vise medlemmers epostadresser slik at de ikke umiddelbart ser ut som en "
+"epostadresse?"
+
+#: Mailman/Gui/Privacy.py:143
+msgid ""
+"Setting this option causes member email addresses to be\n"
+" transformed when they are presented on list web pages (both in\n"
+" text and as links), so they're not trivially recognizable as\n"
+" email addresses. The intention is to prevent the addresses\n"
+" from being snarfed up by automated web scanners for use by\n"
+" spammers."
+msgstr ""
+"Velger du 'Ja' her, vil medlemmers epostadresse skrives om n&aring;r de "
+"vises i en oversikt p&aring; websidene (b&aring;de som tekst og i linker),\n"
+"slik at de ikke er lett &aring; tolke som epostadresser. Meningen med dette "
+"er &aring; f&aring; roboter som g&aring;r igjennom websider for &aring; "
+"finne epostadresser\n"
+"(og deretter bruke de til &aring; sende ut spam/junk mail) til &aring; ikke "
+"snappe opp medlemmenes epostadresser."
+
+#: Mailman/Gui/Privacy.py:153
+msgid ""
+"When a message is posted to the list, a series of\n"
+" moderation steps are take to decide whether the a moderator "
+"must\n"
+" first approve the message or not. This section contains the\n"
+" controls for moderation of both member and non-member postings.\n"
+"\n"
+" <p>Member postings are held for moderation if their\n"
+" <b>moderation flag</b> is turned on. You can control whether\n"
+" member postings are moderated by default or not.\n"
+"\n"
+" <p>Non-member postings can be automatically\n"
+" <a href=\"?VARHELP=privacy/sender/accept_these_nonmembers\"\n"
+" >accepted</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/hold_these_nonmembers\">held "
+"for\n"
+" moderation</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/reject_these_nonmembers\"\n"
+" >rejected</a> (bounced), or\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >discarded</a>,\n"
+" either individually or as a group. Any\n"
+" posting from a non-member who is not explicitly accepted,\n"
+" rejected, or discarded, will have their posting filtered by the\n"
+" <a href=\"?VARHELP=privacy/sender/generic_nonmember_action"
+"\">general\n"
+" non-member rules</a>.\n"
+"\n"
+" <p>In the text boxes below, add one address per line; start the\n"
+" line with a ^ character to designate a <a href=\n"
+" \"http://www.python.org/doc/current/lib/module-re.html\"\n"
+" >Python regular expression</a>. When entering backslashes, do "
+"so\n"
+" as if you were using Python raw strings (i.e. you generally "
+"just\n"
+" use a single backslash).\n"
+"\n"
+" <p>Note that non-regexp matches are always done first."
+msgstr ""
+"N&aring;r en melding sendes til epostlisten, g&aring;r den gjennom en rekke "
+"steg\n"
+"for &aring; avgj&oslash;re om moderatoren m&aring; godkjenne meldingen eller "
+"ikke.\n"
+"Her finner du innstillinger for &aring; kontrollere moderasjon av epost fra "
+"b&aring;de medlemmer og ikke-medlemmer.\n"
+"\n"
+"<p>Epost fra medlemmer holdes tilbake for godkjenning dersom "
+"<b>moderasjonsflagget</b> deres er satt.\n"
+"Du kan bestemme om epost fra medlemmer vanligvis skal vurderes eller ikke "
+"f&oslash;r de sendes til listen.\n"
+"\n"
+"<p>Epost som ikke er sendt av medlemmer av listen, kan automatisk bli\n"
+"<a href=\"?VARHELP=privacy/sender/accept_these_nonmembers\">godkjent</a>,\n"
+"<a href=\"?VARHELP=privacy/sender/hold_these_nonmembers\">holdt tilbake for "
+"godkjenning</a>,\n"
+"<a href=\"?VARHELP=privacy/sender/reject_these_nonmembers\">sendt i retur</"
+"a>, eller\n"
+"<a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\">forkastet</a>,\n"
+"enten individuelt eller som en gruppe. All epost fra ikke-medlemmer,\n"
+"som ikke spesifikt blir godkjent, sendt i retur, eller forkastet, vil bli "
+"behandlet\n"
+"alt etter hva <a href=\"?VARHELP=privacy/sender/generic_nonmember_action"
+"\">generelle regler for ikke-medlemmer</a> sier.\n"
+"\n"
+"<p>I tekstboksene nedenfor legger du inn en epostadresse per linje.\n"
+"Du kan ogs&aring; legge inn <a href=\"http://www.python.org/doc/current/lib/"
+"module-re.html\">Python regexp-uttrykk</a>.\n"
+"Begynn is&aring;fall linjen med tegnet ^ for &aring; markere at det er et "
+"slikt uttrykk.\n"
+"N&aring;r du benytter backslash, skriv da slik som i rene strenger (Python "
+"raw strings) (vanligvis bare &eacute;n backslash om gangen).\n"
+"\n"
+"<p>Merk: treff p&aring; vanlige epostadresser utf&oslash;res f&oslash;rst, "
+"regexp-uttrykk vil derfor behandles sist."
+
+#: Mailman/Gui/Privacy.py:186
+msgid "Member filters"
+msgstr "Filtrering av epost fra medlemmer"
+
+#: Mailman/Gui/Privacy.py:189
+msgid "By default, should new list member postings be moderated?"
+msgstr ""
+"Skal epost til listen, sendt fra nye medlemmer, vanligvis vurderes av "
+"moderatoren?"
+
+#: Mailman/Gui/Privacy.py:191
+msgid ""
+"Each list member has a <em>moderation flag</em> which says\n"
+" whether messages from the list member can be posted directly "
+"to\n"
+" the list, or must first be approved by the list moderator. "
+"When\n"
+" the moderation flag is turned on, list member postings must be\n"
+" approved first. You, the list administrator can decide whether "
+"a\n"
+" specific individual's postings will be moderated or not.\n"
+"\n"
+" <p>When a new member is subscribed, their initial moderation "
+"flag\n"
+" takes its value from this option. Turn this option off to "
+"accept\n"
+" member postings by default. Turn this option on to, by "
+"default,\n"
+" moderate member postings first. You can always manually set "
+"an\n"
+" individual member's moderation bit by using the\n"
+" <a href=\"%(adminurl)s/members\">membership management\n"
+" screens</a>."
+msgstr ""
+"Hvert medlem av listen har et <em>moderasjonsflagg</em> som forteller om\n"
+"epost fra medlemmet kan sendes direkte til epostlisten, eller om de f&oslash;"
+"rst\n"
+"m&aring; godkjennes av listemoderatoren.\n"
+"N&aring;r moderasjonsflagget er satt p&aring;, m&aring; epost fra medlemmet "
+"godkjennes av\n"
+"listemoderatoren f&oslash;r det sendes ut til alle p&aring; listen. Som "
+"listeadminsitrator\n"
+"kan du for hvert enkelt medlem bestemme om medlemmets epost skal modereres\n"
+"eller ikke.\n"
+"<p>N&aring;r et nytt medlem meldes p&aring; listen, settes "
+"moderasjonsflagget til den\n"
+"innstillingen du velger her. Sett den til 'Nei' dersom du &oslash;nsker at "
+"epost\n"
+"fra medlemmer vanligvis skal g&aring; rett til listen. Sett den til 'Ja' "
+"dersom du\n"
+"&oslash;nsker at epost fra nye medlemmer skal godkjennes f&oslash;r de "
+"sendes ut til hele\n"
+"listen. Du kan alltid sette moderasjonsflagget for hvert enkelt medlem fra\n"
+"<a href=\"%(adminurl)s/members\">Administrere medlemmer</a> siden."
+
+#: Mailman/Gui/Privacy.py:207 Mailman/Gui/Privacy.py:281
+msgid "Hold"
+msgstr "Holde&nbsp;tilbake"
+
+#: Mailman/Gui/Privacy.py:208
+msgid ""
+"Action to take when a moderated member posts to the\n"
+" list."
+msgstr "Hva som skjer når et moderert medlem sender epost til listen."
+
+#: Mailman/Gui/Privacy.py:210
+msgid ""
+"<ul><li><b>Hold</b> -- this holds the message for approval\n"
+" by the list moderators.\n"
+"\n"
+" <p><li><b>Reject</b> -- this automatically rejects the message "
+"by\n"
+" sending a bounce notice to the post's author. The text of the\n"
+" bounce notice can be <a\n"
+" href=\"?VARHELP=privacy/sender/member_moderation_notice\"\n"
+" >configured by you</a>.\n"
+"\n"
+" <p><li><b>Discard</b> -- this simply discards the message, "
+"with\n"
+" no notice sent to the post's author.\n"
+" </ul>"
+msgstr ""
+"<ul>\n"
+" <li><b>Holde tilbake</b> -- meldingen holdes tilbake for godkjenning av "
+"listemoderatoren(e).\n"
+" <p><li><b>Avslå</b> -- meldingen sendes automatisk i retur til avsender. "
+"Begrunnelsen som sendes kan du <a href=\"?VARHELP=privacy/sender/"
+"member_moderation_notice\">skrive selv</a>\n"
+" <p><li><b>Kaste</b> -- meldingen blir forkastet uten å gi beskjed om dette "
+"til avsender.\n"
+"</ul>"
+
+#: Mailman/Gui/Privacy.py:224
+msgid ""
+"Text to include in any\n"
+" <a href=\"?VARHELP/privacy/sender/member_moderation_action\"\n"
+" >rejection notice</a> to\n"
+" be sent to moderated members who post to this list."
+msgstr ""
+"Tekst som skal sendes med\n"
+"<a href=\"?VARHELP/privacy/sender/member_moderation_action\">meldingen om "
+"retur</a> som sendes til modererte medlemmer av listen."
+
+#: Mailman/Gui/Privacy.py:229
+msgid "Non-member filters"
+msgstr "Filtrering av epost fra ikke-medlemmer"
+
+#: Mailman/Gui/Privacy.py:232
+msgid ""
+"List of non-member addresses whose postings should be\n"
+" automatically accepted."
+msgstr ""
+"Liste over epostadresser til ikke-medlemmer som alltid skal godkjennes."
+
+#: Mailman/Gui/Privacy.py:235
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" accepted with no further moderation applied. Add member\n"
+" addresses one per line; start the line with a ^ character to\n"
+" designate a regular expression match."
+msgstr ""
+"Epost fra disse ikke-medlemmene vil automatisk bli godkjent.\n"
+"Legg inn epostadresser, en per linje, start linjen med tegnet ^\n"
+"for &aring; angi et regexp-uttrykk som skal passe med avsenderadressen."
+
+#: Mailman/Gui/Privacy.py:241
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" immediately held for moderation."
+msgstr ""
+"Liste over epostadresser til ikke-medlemmer som alltid skal holdes tilbake "
+"for vurdering."
+
+#: Mailman/Gui/Privacy.py:244
+msgid ""
+"Postings from any of these non-members will be immediately\n"
+" and automatically held for moderation by the list moderators.\n"
+" The sender will receive a notification message which will "
+"allow\n"
+" them to cancel their held message. Add member addresses one "
+"per\n"
+" line; start the line with a ^ character to designate a regular\n"
+" expression match."
+msgstr ""
+"Epost fra disse ikke-medlemmene vil automatisk holdes tilbake for\n"
+"vurdering av listemoderatorene.\n"
+"Avsenderen vil motta en melding om dette, med bl.a.\n"
+"instruksjoner om hvordan han/hun kan trekke tilbake sin epost.\n"
+"Legg inn epostadresser, en per linje, start linjen med tegnet ^\n"
+"for &aring; angi et regexp-uttrykk som skal passe med avsenderadressen."
+
+#: Mailman/Gui/Privacy.py:252
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" automatically rejected."
+msgstr "Liste over epostadresser til ikke-medlemmer som alltid skal avvises."
+
+#: Mailman/Gui/Privacy.py:255
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" rejected. In other words, their messages will be bounced back "
+"to\n"
+" the sender with a notification of automatic rejection. This\n"
+" option is not appropriate for known spam senders; their "
+"messages\n"
+" should be\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >automatically discarded</a>.\n"
+"\n"
+" <p>Add member addresses one per line; start the line with a ^\n"
+" character to designate a regular expression match."
+msgstr ""
+"Epost fra disse ikke-medlemmene vil automatisk bli avvist. De vil f&aring; "
+"eposten\n"
+"i retur, med en melding om at den ble automatisk avvist. Dette valget "
+"b&oslash;r ikke\n"
+"benyttes for kjente spam-avsendere, de b&oslash;r\n"
+"<a href=\"?VARHELP=privacy/sender/discard_these_non_members\">automatisk "
+"forkastes</a>.\n"
+"<p>Legg inn epostadresser, en per linje, start linjen med tegnet ^\n"
+"for &aring; angi et regexp-uttrykk som skal passe med avsenderadressen."
+
+#: Mailman/Gui/Privacy.py:267
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" automatically discarded."
+msgstr ""
+"Liste over epostadresser til ikke-medlemmer som automatisk skal forkastes."
+
+#: Mailman/Gui/Privacy.py:270
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" discarded. That is, the message will be thrown away with no\n"
+" further processing or notification. The sender will not "
+"receive\n"
+" a notification or a bounce, however the list moderators can\n"
+" optionally <a href=\"?VARHELP=privacy/sender/"
+"forward_auto_discards\"\n"
+" >receive copies of auto-discarded messages.</a>.\n"
+"\n"
+" <p>Add member addresses one per line; start the line with a ^\n"
+" character to designate a regular expression match."
+msgstr ""
+"Epost fra disse ikke-medlemmen vil automatisk bli forkastet.\n"
+"Det vil si at meldingen kastes uten noen form for tilbakemelding,\n"
+"men listemoderatorene kan (om ønskelig)\n"
+"<a href=\"?VARHELP=privacy/sender/forward_auto_discards\">motta en kopi av "
+"den forkastede eposten</a>.\n"
+"<p>Legg inn epostadresser, en per linje, start linjen med tegnet ^\n"
+"for &aring; angi et regexp-uttrykk som skal passe med avsenderadressen."
+
+#: Mailman/Gui/Privacy.py:282
+msgid ""
+"Action to take for postings from non-members for which no\n"
+" explicit action is defined."
+msgstr ""
+"Behandling av epost fra ikke-medlemmer som ikke berøres av noen av de andre "
+"reglene."
+
+#: Mailman/Gui/Privacy.py:285
+msgid ""
+"When a post from a non-member is received, the message's\n"
+" sender is matched against the list of explicitly\n"
+" <a href=\"?VARHELP=privacy/sender/accept_these_nonmembers\"\n"
+" >accepted</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/hold_these_nonmembers\">held</"
+"a>,\n"
+" <a href=\"?VARHELP=privacy/sender/reject_these_nonmembers\"\n"
+" >rejected</a> (bounced), and\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >discarded</a> addresses. If no match is found, then this "
+"action\n"
+" is taken."
+msgstr ""
+"N&aring;r en epost fra et ikke-medlem blir mottatt, sammenlignes epostens "
+"avsender med\n"
+"listen over epostadresser som skal\n"
+"<a href=\"?VARHELP=privacy/sender/accept_these_nonmembers\">godkjennes</a>,\n"
+"<a href=\"?VARHELP=privacy/sender/hold_these_nonmembers\">holdes tilbake</"
+"a>,\n"
+"<a href=\"?VARHELP=privacy/sender/reject_these_nonmembers\">avvises</a> "
+"(sendes i retur),\n"
+"og <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\">forkastes</"
+"a>.\n"
+"Hvis avsenderadressen ikke passer med noen av som er oppgitt i listene,\n"
+"blir f&oslash;lgende avgj&oslash;relse tatt."
+
+#: Mailman/Gui/Privacy.py:297
+msgid ""
+"Should messages from non-members, which are automatically\n"
+" discarded, be forwarded to the list moderator?"
+msgstr ""
+"Skal meldinger fra ikke-medlemmer, som automatisk forkastes, også sendes til "
+"listemoderatoren?"
+
+#: Mailman/Gui/Privacy.py:303
+msgid ""
+"This section allows you to configure various filters based on\n"
+" the recipient of the message."
+msgstr "Her kan du sette opp filtrering basert på mottakeren av meldingen."
+
+#: Mailman/Gui/Privacy.py:306
+msgid "Recipient filters"
+msgstr "Filtrering på mottaker"
+
+#: Mailman/Gui/Privacy.py:310
+msgid ""
+"Must posts have list named in destination (to, cc) field\n"
+" (or be among the acceptable alias names, specified below)?"
+msgstr ""
+"M&aring; epost til listen ha listens adresse (eller andre gyldige adresser, "
+"se nedenfor) i <tt>To:</tt> eller <tt>Cc:</tt> feltene?"
+
+#: Mailman/Gui/Privacy.py:313
+msgid ""
+"Many (in fact, most) spams do not explicitly name their\n"
+" myriad destinations in the explicit destination addresses - in\n"
+" fact often the To: field has a totally bogus address for\n"
+" obfuscation. The constraint applies only to the stuff in the\n"
+" address before the '@' sign, but still catches all such spams.\n"
+"\n"
+" <p>The cost is that the list will not accept unhindered any\n"
+" postings relayed from other addresses, unless\n"
+"\n"
+" <ol>\n"
+" <li>The relaying address has the same name, or\n"
+"\n"
+" <li>The relaying address name is included on the options "
+"that\n"
+" specifies acceptable aliases for the list.\n"
+"\n"
+" </ol>"
+msgstr ""
+"Mye (faktisk mesteparten av) spam/junk mail har ikke de endelige mottakerne "
+"i mottakerfeltene.\n"
+"Faktisk s&aring; innholder som oftest <tt>To:</tt> og/eller <tt>Cc:</tt> "
+"feltene en fullstendig ugyldig adresse.\n"
+"Begrensningen du setter her har kun innvirkning p&aring; det som st&aring;r "
+"f&oslash;r '@' tegnet i adressen(e),\n"
+"men vil likevel fange opp og blokkere det meste av spam/junk mail.\n"
+"\n"
+"<p>Prisen for dette er at listen vil ikke uhindret kunne motta epost "
+"videresendt via andre epostadresser, med mindre\n"
+"\n"
+"<ol>\n"
+" <li>Adressen det videresendes fra heter det samme, eller</li>\n"
+" <li>Adressen det videresendes fra inkluderes i innstillingen som bestemmer "
+"gyldige alias for listen.</li>\n"
+"</ol>"
+
+#: Mailman/Gui/Privacy.py:331
+msgid ""
+"Alias names (regexps) which qualify as explicit to or cc\n"
+" destination names for this list."
+msgstr ""
+"Aliaser (regexp-uttrykk) som kvalifiserer gyldige <tt>To:</tt> eller <tt>Cc:"
+"</tt> felter for denne listen."
+
+#: Mailman/Gui/Privacy.py:334
+msgid ""
+"Alternate addresses that are acceptable when\n"
+" `require_explicit_destination' is enabled. This option takes "
+"a\n"
+" list of regular expressions, one per line, which is matched\n"
+" against every recipient address in the message. The matching "
+"is\n"
+" performed with Python's re.match() function, meaning they are\n"
+" anchored to the start of the string.\n"
+" \n"
+" <p>For backwards compatibility with Mailman 1.1, if the regexp\n"
+" does not contain an `@', then the pattern is matched against "
+"just\n"
+" the local part of the recipient address. If that match fails, "
+"or\n"
+" if the pattern does contain an `@', then the pattern is "
+"matched\n"
+" against the entire recipient address.\n"
+" \n"
+" <p>Matching against the local part is deprecated; in a future\n"
+" release, the pattern will always be matched against the entire\n"
+" recipient address."
+msgstr ""
+"Alternative epostadresser som godtas n&aring;r "
+"'require_explicit_destination' er satt p&aring;.\n"
+"Som verdier for denne innstillingen skal du oppgi regexp-uttrykk (\"regular "
+"expressions\"),\n"
+"ett uttrykk per linje, som sammenlignes mot hver mottakeradresse i "
+"meldingen.\n"
+"Sammenligningen utf&oslash;res med Pythons re.match() funksjon, som betyr at "
+"de gjelder bare for\n"
+"begynnelsen av strengen.\n"
+"\n"
+"<p>For bakoverkompatibilitet med Mailman 1.1, hvis regexp-uttrykket ikke "
+"inneholder en '@',\n"
+"sammenlignes uttrykket kun mot den f&oslash;rste delen (det som st&aring;r "
+"f&oslash;r '@') av mottakeradressen.\n"
+"Hvis sammenligningen ikke lykkes, eller uttrykket ikke innholder en '@', "
+"sammenlignes\n"
+"uttrykket med hele mottakeradressen.\n"
+"\n"
+"<p>Sammenligning mot kun den f&oslash;rste delen av en mottakeradresse "
+"st&oslash;ttes ikke lengre;\n"
+"i en framtidig utgave av Mailman, vil kun sammenligning mot hele "
+"mottakeradressen st&oslash;ttes."
+
+#: Mailman/Gui/Privacy.py:352
+msgid "Ceiling on acceptable number of recipients for a posting."
+msgstr "Maximum antall mottakeradresser i epost sendt til listen."
+
+#: Mailman/Gui/Privacy.py:354
+msgid ""
+"If a posting has this number, or more, of recipients, it is\n"
+" held for admin approval. Use 0 for no ceiling."
+msgstr ""
+"Hvis en epost som er sendt til listen inneholder s&aring; mange mottakere "
+"som, eller flere mottakere enn, denne verdien,\n"
+"holdes eposten tilbake slik at listeadministratoren eventuelt kan godkjenne "
+"den.\n"
+"Bruk verdien 0 for ingen begrensning."
+
+#: Mailman/Gui/Privacy.py:359
+msgid ""
+"This section allows you to configure various anti-spam\n"
+" filters posting filters, which can help reduce the amount of "
+"spam\n"
+" your list members end up receiving.\n"
+" "
+msgstr ""
+"Her kan du sette opp ulike anti-spam filtre, som kan være til hjelp\n"
+"for å redusere mengden spam som distribueres via epostlisten."
+
+#: Mailman/Gui/Privacy.py:364
+msgid "Anti-Spam filters"
+msgstr "Anti-Spam filtre"
+
+#: Mailman/Gui/Privacy.py:367
+msgid "Hold posts with header value matching a specified regexp."
+msgstr ""
+"Holde tilbake epost sendt til listen, som inneholder felter (i "
+"meldingshodet) som passer med egendefinerte regexp-uttrykk."
+
+#: Mailman/Gui/Privacy.py:368
+msgid ""
+"Use this option to prohibit posts according to specific\n"
+" header values. The target value is a regular-expression for\n"
+" matching against the specified header. The match is done\n"
+" disregarding letter case. Lines beginning with '#' are "
+"ignored\n"
+" as comments.\n"
+"\n"
+" <p>For example:<pre>to: .*@public.com </pre> says to hold all\n"
+" postings with a <em>To:</em> mail header containing '@public."
+"com'\n"
+" anywhere among the addresses.\n"
+"\n"
+" <p>Note that leading whitespace is trimmed from the regexp. "
+"This\n"
+" can be circumvented in a number of ways, e.g. by escaping or\n"
+" bracketing it."
+msgstr ""
+"Bruk denne innstillingen til &aring; filtrere ut epost til listen,\n"
+"basert p&aring; innholdet av et eller flere felt i meldingshodet.\n"
+"Her skal du skrive inn regexp-uttrykk (regular expressions), ett per linje,\n"
+"som sammenlignes mot det aktuelle feltet.\n"
+"Sammenligningen skiller ikke mellom store og sm&aring; bokstaver.\n"
+"Linjer som begynner med '#' sammenlignes ikke.\n"
+"\n"
+"<p>For eksempel: uttrykket <pre>to: .*@public.com</pre> forteller at\n"
+"all epost som inneholder '@public.com' i <tt>To:</tt> feltet,\n"
+"skal holdes tilbake for godkjenning.\n"
+"\n"
+"<p>Merk: blanke tegn i starten av regexp-uttrykket fjernes.\n"
+"Dette kan man unng&aring; p&aring; flere m&aring;ter, f.eks. ved &aring; "
+"bruke escape-tegn eller klammeparenteser."
+
+#: Mailman/Gui/Topics.py:28
+msgid "Topics"
+msgstr "Emner"
+
+#: Mailman/Gui/Topics.py:36
+msgid "List topic keywords"
+msgstr "Emneord for listen"
+
+#: Mailman/Gui/Topics.py:38
+msgid "Disabled"
+msgstr "Ikke tilgjengelig"
+
+#: Mailman/Gui/Topics.py:38
+msgid "Enabled"
+msgstr "Tilgjengelig"
+
+#: Mailman/Gui/Topics.py:39
+msgid "Should the topic filter be enabled or disabled?"
+msgstr "Skal emnefilteret v&aelig;re tilgjengelig eller ikke tilgjengelig?"
+
+#: Mailman/Gui/Topics.py:41
+msgid ""
+"The topic filter categorizes each incoming email message\n"
+" according to <a\n"
+" href=\"http://www.python.org/doc/current/lib/module-re.html"
+"\">regular\n"
+" expression filters</a> you specify below. If the message's\n"
+" <code>Subject:</code> or <code>Keywords:</code> header contains "
+"a\n"
+" match against a topic filter, the message is logically placed\n"
+" into a topic <em>bucket</em>. Each user can then choose to "
+"only\n"
+" receive messages from the mailing list for a particular topic\n"
+" bucket (or buckets). Any message not categorized in a topic\n"
+" bucket registered with the user is not delivered to the list.\n"
+"\n"
+" <p>Note that this feature only works with regular delivery, "
+"not\n"
+" digest delivery.\n"
+"\n"
+" <p>The body of the message can also be optionally scanned for\n"
+" <code>Subject:</code> and <code>Keywords:</code> headers, as\n"
+" specified by the <a\n"
+" href=\"?VARHELP=topics/topics_bodylines_limit"
+"\">topics_bodylines_limit</a>\n"
+" configuration variable."
+msgstr ""
+"Emnefilteret kategoriserer hver epost som kommer til listen,\n"
+"etter <a href=\"http://www.python.org/doc/current/lib/module-re.html"
+"\">regexp-uttrykkene</a>\n"
+"du skriver inn nedenfor. Hvis feltene <code>Subject:</code> eller "
+"<code>Keywords:</code>\n"
+"i meldingshodet i en epost passer mot disse uttrykkene, blir den plassert "
+"under dette\n"
+"emnet. Hvert medlem av listen kan velge &aring; kun motta epost som passer "
+"&oslash;nskede emner.\n"
+"Epost som ikke g&aring;r under noe emne, blir ikke levert.\n"
+"\n"
+"<p>Merknad: Dette fungerer bare i normal-modus, ikke i sammendrag-modus.\n"
+"\n"
+"<p>Innholdet i eposten kan ogs&aring; unders&oslash;kes for <code>Subject:</"
+"code> og <code>Keyword:</code>\n"
+"felter, alt etter hva innstillingen <a href=\"?VARHELP=topics/"
+"topics_bodylines_limit\">topics_bodylines_limit</a> er satt til."
+
+#: Mailman/Gui/Topics.py:62
+msgid "How many body lines should the topic matcher scan?"
+msgstr "Hvor mange linjer skal filteret s&oslash;ke gjennom?"
+
+#: Mailman/Gui/Topics.py:64
+msgid ""
+"The topic matcher will scan this many lines of the message\n"
+" body looking for topic keyword matches. Body scanning stops "
+"when\n"
+" either this many lines have been looked at, or a non-header-"
+"like\n"
+" body line is encountered. By setting this value to zero, no "
+"body\n"
+" lines will be scanned (i.e. only the <code>Keywords:</code> "
+"and\n"
+" <code>Subject:</code> headers will be scanned). By setting "
+"this\n"
+" value to a negative number, then all body lines will be "
+"scanned\n"
+" until a non-header-like line is encountered.\n"
+" "
+msgstr ""
+"Her oppgir du hvor mange linjer av epostens innhold som emnefilteret skal "
+"s&oslash;ke igjennom.\n"
+"Et slikt s&oslash;k stopper n&aring;r s&aring; mange linjer er "
+"gjennoms&oslash;kt, eller n&aring;r det m&oslash;ter p&aring; en linje som "
+"ikke\n"
+"ser ut som et meldingshodefelt. Ved &aring; sette denne til null (0), vil "
+"ingen linjer\n"
+"i innholdet blir unders&oslash;kt (dvs. bare <code>Keywords:</code> og "
+"<code>Subject:</code> i\n"
+"meldingshodet unders&oslash;kes). Ved &aring; sette denne verdien til et "
+"negativt tall,\n"
+"vil alle linjer bli unders&oslash;kt fram til den f&oslash;rste linjen som "
+"ikke ser ut som et meldingshodefelt."
+
+#: Mailman/Gui/Topics.py:75
+msgid "Topic keywords, one per line, to match against each message."
+msgstr ""
+"Emneord, ett per linje, som gj&oslash;r at en epost g&aring;r under emnet."
+
+#: Mailman/Gui/Topics.py:77
+msgid ""
+"Each topic keyword is actually a regular expression, which is\n"
+" matched against certain parts of a mail message, specifically "
+"the\n"
+" <code>Keywords:</code> and <code>Subject:</code> message "
+"headers.\n"
+" Note that the first few lines of the body of the message can "
+"also\n"
+" contain a <code>Keywords:</code> and <code>Subject:</code>\n"
+" \"header\" on which matching is also performed."
+msgstr ""
+"Hvert emneord er faktisk et regexp-uttrykk, som sammenlignes mot deler av "
+"eposten,\n"
+"nemlig feltene <code>Keywords:</code> og <code>Subject:</code> i "
+"meldingshodet.\n"
+"Merk at de f&oslash;ste linjene i epostens innhold kan ogs&aring; "
+"best&aring; av slike \"felter\", og\n"
+"kan dermed ogs&aring; bli unders&oslash;kt."
+
+#: Mailman/Gui/Topics.py:116
+msgid ""
+"Topic specifications require both a name and\n"
+" a pattern. Incomplete topics will be ignored."
+msgstr ""
+"Et emne krever både et navn og et uttrykk. Ufullstendige emner vil ikke bli "
+"tatt i bruk."
+
+#: Mailman/Gui/Topics.py:124
+msgid ""
+"The topic pattern `%(pattern)s' is not a\n"
+" legal regular expression. It will be discarded."
+msgstr ""
+"Emnefilteret '%(pattern)s' er ikke en gyldig regexp.\n"
+"Det vil bli forkastet."
+
+#: Mailman/Gui/Usenet.py:25
+msgid "Mail&lt;-&gt;News&nbsp;gateways"
+msgstr "Epost&lt;-&gt;Nyhetsgruppe&nbsp;overf&oslash;ring"
+
+#: Mailman/Gui/Usenet.py:35
+msgid "Mail-to-News and News-to-Mail gateway services."
+msgstr "Epost-Til-Nyhetsgruppe og Nyhetsgruppe-Til-Epost tjeneste."
+
+#: Mailman/Gui/Usenet.py:37
+msgid "News server settings"
+msgstr "Innstillinger for nyhetsgruppeserver"
+
+#: Mailman/Gui/Usenet.py:40
+msgid ""
+"The Internet address of the machine your News server is\n"
+" running on."
+msgstr "Internettadressen til nyhetsgruppetjeneren."
+
+#: Mailman/Gui/Usenet.py:42
+msgid ""
+"The News server is not part of Mailman proper. You have to\n"
+" already have access to a NNTP server, and that NNTP server has "
+"to\n"
+" recognize the machine this mailing list runs on as a machine\n"
+" capable of reading and posting news."
+msgstr ""
+"Nyhetsgruppe-tjeneste er ikke en del av Mailman.\n"
+"Du m&aring; ha tilgang til en eksisterende NNTP tjener,\n"
+"og maskinen som denne epostlisten kj&oslash;rer p&aring;, m&aring; ha "
+"tilgang til &aring; lese og sende meldinger til den NNTP tjeneren."
+
+#: Mailman/Gui/Usenet.py:48
+msgid "The name of the Usenet group to gateway to and/or from."
+msgstr "Navn p&aring; nyhetsgruppe det skal sendes til og/eller fra."
+
+#: Mailman/Gui/Usenet.py:51
+msgid ""
+"Should new posts to the mailing list be sent to the\n"
+" newsgroup?"
+msgstr "Skal ny epost til denne listen sendes til nyhetsgruppen?"
+
+#: Mailman/Gui/Usenet.py:55
+msgid ""
+"Should new posts to the newsgroup be sent to the mailing\n"
+" list?"
+msgstr "Skal nye meldinger til nyhetsgruppen sendes til denne epostlisten?"
+
+#: Mailman/Gui/Usenet.py:58
+msgid "Forwarding options"
+msgstr "Innstillinger for videresending"
+
+#: Mailman/Gui/Usenet.py:61
+msgid "Moderated"
+msgstr "Moderert"
+
+#: Mailman/Gui/Usenet.py:61
+msgid "Open list, moderated group"
+msgstr "Åpen liste, moderert nyhetsgruppe"
+
+#: Mailman/Gui/Usenet.py:64
+msgid "The moderation policy of the newsgroup."
+msgstr "Moderasjonsreglene for nyhetsgruppen."
+
+#: Mailman/Gui/Usenet.py:66
+msgid ""
+"This setting determines the moderation policy of the\n"
+" newsgroup and its interaction with the moderation policy of "
+"the\n"
+" mailing list. This only applies to the newsgroup that you are\n"
+" gatewaying <em>to</em>, so if you are only gatewaying from\n"
+" Usenet, or the newsgroup you are gatewaying to is not "
+"moderated,\n"
+" set this option to <em>None</em>.\n"
+"\n"
+" <p>If the newsgroup is moderated, you can set this mailing "
+"list\n"
+" up to be the moderation address for the newsgroup. By "
+"selecting\n"
+" <em>Moderated</em>, an additional posting hold will be placed "
+"in\n"
+" the approval process. All messages posted to the mailing list\n"
+" will have to be approved before being sent on to the "
+"newsgroup,\n"
+" or to the mailing list membership.\n"
+"\n"
+" <p><em>Note that if the message has an <tt>Approved</tt> "
+"header\n"
+" with the list's administrative password in it, this hold test\n"
+" will be bypassed, allowing privileged posters to send messages\n"
+" directly to the list and the newsgroup.</em>\n"
+"\n"
+" <p>Finally, if the newsgroup is moderated, but you want to "
+"have\n"
+" an open posting policy anyway, you should select <em>Open "
+"list,\n"
+" moderated group</em>. The effect of this is to use the normal\n"
+" Mailman moderation facilities, but to add an <tt>Approved</tt>\n"
+" header to all messages that are gatewayed to Usenet."
+msgstr ""
+"Denne innstillingen forteller Mailman hva slags moderasjonsregler\n"
+"nyhetsgruppen har og hvordan de koordineres med epostlistens\n"
+"moderasjonsregler. Dette gjelder kun nyhetgrupper du overfører meldinger\n"
+"<em>til</em>, så hvis du bare overfører <em>fra</em> en nyhetsgruppe, eller\n"
+"nyhetsgruppen du overfører til ikke er moderert, sett denne innstillingen\n"
+"til <em>Ingen</em>.\n"
+"\n"
+"<p>Hvis nyhetsgruppen er moderert, kan du sette epostlisten til å være\n"
+"moderasjonsadressen for nyhetsgruppen. Ved å velge <em>Moderert</em>, vil\n"
+"en ekstra melding holdes tilbake i godkjenningsprosessen. All epost sendt\n"
+"til epostlisten må godkjennes før de sendes til nyhetsgruppen, eller til\n"
+"medlemmene av listen.\n"
+"\n"
+"<p><em>Vær oppmerksom på at hvis meldingshodet i eposten har et <tt>Approved:"
+"</tt>\n"
+"felt med listens administrative passord, vil denne regelen bli hoppet over.\n"
+"Slik kan priviligerte avsendere sende epost direkte til listen og\n"
+"nyhetsgruppen.</em>\n"
+"\n"
+"<p>Hvis nyhetsgruppen er moderert, men du vil likevel ha en åpen liste, bør\n"
+"du velge <em>Åpen liste, moderert nyhetsgruppe</em>. Da vil de vanlige\n"
+"mekanismene for moderasjon bli benyttet i Mailman, men alle meldinger som\n"
+"sendes til Usenet vil få et <tt>Approved</tt> felt i meldingshodet."
+
+#: Mailman/Gui/Usenet.py:92
+msgid "Prefix <tt>Subject:</tt> headers on postings gated to news?"
+msgstr ""
+"Legge til prefix på <tt>Subject:</tt> feltet for epost som sendes til "
+"nyhetsgruppen?"
+
+#: Mailman/Gui/Usenet.py:93
+msgid ""
+"Mailman prefixes <tt>Subject:</tt> headers with\n"
+" <a href=\"?VARHELP=general/subject_prefix\">text you can\n"
+" customize</a> and normally, this prefix shows up in messages\n"
+" gatewayed to Usenet. You can set this option to <em>No</em> "
+"to\n"
+" disable the prefix on gated messages. Of course, if you turn "
+"off\n"
+" normal <tt>Subject:</tt> prefixes, they won't be prefixed for\n"
+" gated messages either."
+msgstr ""
+"Mailman legger normalt til en <a href=\"?VARHELP=general/subject_prefix\">\n"
+"tekst du selv bestemmer (emne prefix)</a>foran emnefeltet i epost som\n"
+"sendes til listen, og vanligvis skjer dette også for epost som sendes\n"
+"videre til Usenet. Du kan sette denne innstillingen til <em>Nei</em> dersom\n"
+"du ikke ønsker emne prefix for epost som sendes til Usenet. Skrur du av\n"
+"emne prefix for listen, vil selvsagt heller ikke epost som sendes til\n"
+"Usenet få det."
+
+#: Mailman/Gui/Usenet.py:101
+msgid "Mass catch up"
+msgstr "Utføre oppdatering"
+
+#: Mailman/Gui/Usenet.py:104
+msgid "Should Mailman perform a <em>catchup</em> on the newsgroup?"
+msgstr "Skal Mailman utf&oslash;re en <em>catchup</em> p&aring; nyhetsgruppen?"
+
+#: Mailman/Gui/Usenet.py:105
+msgid ""
+"When you tell Mailman to perform a catchup on the newsgroup,\n"
+" this means that you want to start gating messages to the "
+"mailing\n"
+" list with the next new message found. All earlier messages on\n"
+" the newsgroup will be ignored. This is as if you were reading\n"
+" the newsgroup yourself, and you marked all current messages as\n"
+" <em>read</em>. By catching up, your mailing list members will\n"
+" not see any of the earlier messages."
+msgstr ""
+"Ber du Mailman utf&oslash;re en <em>catchup</em> p&aring; nyhetsgruppen,\n"
+"vil fra n&aring; av kun nye meldinger til nyhetsgruppen bli sendt til "
+"epostlisten.\n"
+"Medlemmene p&aring; epostlisten vil derfor ikke motta eventuelle "
+"eksisterende meldinger i nyhetsgruppen."
+
+#: Mailman/Gui/Usenet.py:119
+msgid "Mass catchup completed"
+msgstr "Oppdatering fullført"
+
+#: Mailman/Gui/Usenet.py:131
+msgid ""
+"You cannot enable gatewaying unless both the\n"
+" <a href=\"?VARHELP=gateway/nntp_host\">news server field</a> "
+"and\n"
+" the <a href=\"?VARHELP=gateway/linked_newsgroup\">linked\n"
+" newsgroup</a> fields are filled in."
+msgstr ""
+"Du kan ikke overføre til en nyhetsgruppe med mindre både\n"
+"<a href=\"?VARHELP=gateway/nntp_host\">internettadresse for\n"
+"nyhetsgruppetjeneren</a> og <a href=\"?VARHELP=gateway/linked_newsgroup\">\n"
+"navn på nyhetsgruppe</a> er definert."
+
+#: Mailman/HTMLFormatter.py:47
+msgid "%(listinfo_link)s list run by %(owner_link)s"
+msgstr "Epostlisten %(listinfo_link)s administreres av %(owner_link)s"
+
+#: Mailman/HTMLFormatter.py:55
+msgid "%(realname)s administrative interface"
+msgstr "Administrativ side for %(realname)s"
+
+#: Mailman/HTMLFormatter.py:56
+msgid " (requires authorization)"
+msgstr " (krever innlogging)"
+
+#: Mailman/HTMLFormatter.py:59
+msgid "Overview of all %(hostname)s mailing lists"
+msgstr "Liste over alle epostlister p&aring; %(hostname)s"
+
+#: Mailman/HTMLFormatter.py:80
+msgid "<em>(1 private member not shown)</em>"
+msgstr "<em>(1 medlem vises ikke)</em>"
+
+#: Mailman/HTMLFormatter.py:82
+msgid "<em>(%(num_concealed)d private members not shown)</em>"
+msgstr "<em>(%(num_concealed)d medlemmer vises ikke)</em>"
+
+#: Mailman/HTMLFormatter.py:137
+msgid "; it was disabled by you"
+msgstr "; etter ditt eget &oslash;nske"
+
+#: Mailman/HTMLFormatter.py:139
+msgid "; it was disabled by the list administrator"
+msgstr "; av listeadministratoren"
+
+#: Mailman/HTMLFormatter.py:143
+msgid ""
+"; it was disabled due to excessive bounces. The\n"
+" last bounce was received on %(date)s"
+msgstr ""
+"; p&aring; grunn av for mange returmeldinger. \n"
+"Siste returmelding ble registrert %(date)s"
+
+#: Mailman/HTMLFormatter.py:146
+msgid "; it was disabled for unknown reasons"
+msgstr "; av ukjent grunn"
+
+#: Mailman/HTMLFormatter.py:148
+msgid "Note: your list delivery is currently disabled%(reason)s."
+msgstr "Merk: Levering av epost fra listen er stoppet%(reason)s."
+
+#: Mailman/HTMLFormatter.py:151
+msgid "Mail delivery"
+msgstr "Epost levering"
+
+#: Mailman/HTMLFormatter.py:153 Mailman/HTMLFormatter.py:298
+msgid "the list administrator"
+msgstr "listeadministratoren"
+
+#: Mailman/HTMLFormatter.py:154
+msgid ""
+"<p>%(note)s\n"
+"\n"
+" <p>You may have disabled list delivery intentionally,\n"
+" or it may have been triggered by bounces from your email\n"
+" address. In either case, to re-enable delivery, change the\n"
+" %(link)s option below. Contact %(mailto)s if you have any\n"
+" questions or need assistance."
+msgstr ""
+"<p>%(note)s\n"
+"\n"
+"<p>Du kan ha stoppet levering fra listen med vilje, eller det kan ha blitt "
+"slik p&aring; grunn av returmeldinger fra din epostadresse.\n"
+"For &aring; motta epost fra listen igjen, endre innstillingen %(link)s "
+"nedenfor.\n"
+"Kontakt %(mailto)s hvis du har sp&oslash;rsm&aring;l eller trenger "
+"ytterligere hjelp."
+
+#: Mailman/HTMLFormatter.py:166
+msgid ""
+"<p>We have received some recent bounces from your\n"
+" address. Your current <em>bounce score</em> is %(score)s out of "
+"a\n"
+" maximum of %(total)s. Please double check that your subscribed\n"
+" address is correct and that there are no problems with delivery "
+"to\n"
+" this address. Your bounce score will be automatically reset if\n"
+" the problems are corrected soon."
+msgstr ""
+"<p>Vi har i det siste f&aring;tt en del returmeldinger fra din "
+"epostadresse.\n"
+"<em>Returtallet</em> ditt er %(score)s av totalt %(total)s.\n"
+"Vennligst kontroller at epostadressen din er stavet korrekt,\n"
+"og at det ikke problemer med levering til den.\n"
+"Returtallet ditt vil automatisk annulleres dersom problemene retter seg "
+"snart."
+
+#: Mailman/HTMLFormatter.py:178
+msgid ""
+"(Note - you are subscribing to a list of mailing lists, so the %(type)s "
+"notice will be sent to the admin address for your membership, %(addr)s.)<p>"
+msgstr ""
+"(Merk - du melder deg p&aring; en liste av flere epostlister, s&aring; %"
+"(type)s meldinger vil bli sendt til administrasjonsadressen for ditt "
+"medlemskap, %(addr)s.)<p>"
+
+#: Mailman/HTMLFormatter.py:188
+msgid ""
+"You will be sent email requesting confirmation, to\n"
+" prevent others from gratuitously subscribing you."
+msgstr ""
+"Du vil motta en epost som ber deg bekrefte dette, slik at ikke andre skal "
+"kunne melde deg p&aring; listen mot din vilje."
+
+#: Mailman/HTMLFormatter.py:191
+msgid ""
+"This is a closed list, which means your subscription\n"
+" will be held for approval. You will be notified of the list\n"
+" moderator's decision by email."
+msgstr ""
+"Dette er en lukket liste, som betyr at din s&oslash;knad om p&aring;melding "
+"m&aring; godkjennes av listens administrator.\n"
+"N&aring;r s&oslash;knaden din er behandlet, vil du f&aring; tilsendt "
+"listeadministratorens avgj&oslash;relse i en epost."
+
+#: Mailman/HTMLFormatter.py:194 Mailman/HTMLFormatter.py:201
+msgid "also "
+msgstr "ogs&aring; "
+
+#: Mailman/HTMLFormatter.py:196
+msgid ""
+"You will be sent email requesting confirmation, to\n"
+" prevent others from gratuitously subscribing you. Once\n"
+" confirmation is received, your request will be held for "
+"approval\n"
+" by the list moderator. You will be notified of the moderator's\n"
+" decision by email."
+msgstr ""
+"Du vil motta en epost som ber deg bekrefte dette, slik at ikke andre skal "
+"kunne melde deg p&aring; listen mot din vilje.\n"
+"N&aring;r du s&aring; har bekreftet dette, vil s&oslash;knaden din sendes "
+"til listens moderator for godkjenning.\n"
+"Du vil deretter f&aring; moderatorens avgj&oslash;relse tilsendt i en epost."
+
+#: Mailman/HTMLFormatter.py:205
+msgid ""
+"This is %(also)sa private list, which means that the\n"
+" list of members is not available to non-members."
+msgstr ""
+"Dette er %(also)sen privat liste, som betyr at en liste over epostlistens "
+"medlemmer ikke er tilgjengelig for andre enn de som er medlem av epostlisten."
+
+#: Mailman/HTMLFormatter.py:208
+msgid ""
+"This is %(also)sa hidden list, which means that the\n"
+" list of members is available only to the list administrator."
+msgstr ""
+"Dette er %(also)sen skjult liste, som betyr at en liste over epostlistens "
+"medlemmer kun er tilgjengelig for listeadministratoren."
+
+#: Mailman/HTMLFormatter.py:211
+msgid ""
+"This is %(also)sa public list, which means that the\n"
+" list of members list is available to everyone."
+msgstr ""
+"Dette er %(also)sen offentlig liste, som betyr at listen over epostlistens "
+"medlemmer er fritt tilgjengelig for alle."
+
+#: Mailman/HTMLFormatter.py:214
+msgid ""
+" (but we obscure the addresses so they are not\n"
+" easily recognizable by spammers)."
+msgstr ""
+" (men vi gjemmer epostadressene slik at de ikke gjenkjennes av spammere). "
+
+#: Mailman/HTMLFormatter.py:219
+msgid ""
+"<p>(Note that this is an umbrella list, intended to\n"
+" have only other mailing lists as members. Among other things,\n"
+" this means that your confirmation request will be sent to the\n"
+" `%(sfx)s' account for your address.)"
+msgstr ""
+"<p>(Merk at dette er en paraplyliste, som er laget for &aring; kun ha andre "
+"epostlister som medlemmer. Dette vil blant annet si at din foresp&oslash;"
+"rsel om bekreftelse vil bli sendt til '%(sfx)s' kontoen for din adresse.)"
+
+#: Mailman/HTMLFormatter.py:248
+msgid "<b><i>either</i></b> "
+msgstr "<b><i>enten</i></b> "
+
+#: Mailman/HTMLFormatter.py:253
+msgid ""
+"To unsubscribe from %(realname)s, get a password reminder,\n"
+" or change your subscription options %(either)senter your "
+"subscription\n"
+" email address:\n"
+" <p><center> "
+msgstr ""
+"For &aring; endre dine personlige innstillinger for listen (f.eks. "
+"leveringsmodus, f&aring; tilsendt/endre passord, eller melde deg ut av "
+"listen %(realname)s),\n"
+"%(either)sskriv inn din epostadresse:\n"
+"<p><center> "
+
+#: Mailman/HTMLFormatter.py:260
+msgid "Unsubscribe or edit options"
+msgstr "Endre dine personlige innstillinger"
+
+#: Mailman/HTMLFormatter.py:264
+msgid ""
+"<p>... <b><i>or</i></b> select your entry from\n"
+" the subscribers list (see above)."
+msgstr ""
+"<p>... <b><i>eller</i></b> klikk p&aring; din adresse i listen over "
+"medlemmer (se ovenfor)."
+
+#: Mailman/HTMLFormatter.py:266
+msgid ""
+" If you leave the field blank, you will be prompted for\n"
+" your email address"
+msgstr ""
+"Dersom du lar feltet st&aring; tomt, vil du bli spurt om epostadressen din"
+
+#: Mailman/HTMLFormatter.py:274
+msgid ""
+"(<i>%(which)s is only available to the list\n"
+" members.</i>)"
+msgstr "(<i>%(which)s er kun tilgjengelig for medlemmer av listen.</i>)"
+
+#: Mailman/HTMLFormatter.py:278
+msgid ""
+"(<i>%(which)s is only available to the list\n"
+" administrator.</i>)"
+msgstr "(<i>%(which)s er kun tilgjengelig for listens administrator.</i>)"
+
+#: Mailman/HTMLFormatter.py:288
+msgid "Click here for the list of "
+msgstr "Klikk her for &aring; se listen over "
+
+#: Mailman/HTMLFormatter.py:290
+msgid " subscribers: "
+msgstr " medlemmer: "
+
+#: Mailman/HTMLFormatter.py:292
+msgid "Visit Subscriber list"
+msgstr "Vis Medlemsliste"
+
+#: Mailman/HTMLFormatter.py:295
+msgid "members"
+msgstr "medlemmer"
+
+#: Mailman/HTMLFormatter.py:296
+msgid "Address:"
+msgstr "Adresse:"
+
+#: Mailman/HTMLFormatter.py:299
+msgid "Admin address:"
+msgstr "Administratoradresse:"
+
+#: Mailman/HTMLFormatter.py:302
+msgid "The subscribers list"
+msgstr "Listen over medlemmer"
+
+#: Mailman/HTMLFormatter.py:304
+msgid " <p>Enter your "
+msgstr " <p>Skriv inn "
+
+#: Mailman/HTMLFormatter.py:306
+msgid " and password to visit the subscribers list: <p><center> "
+msgstr " og passord for &aring; se listen over medlemmer: <p><center> "
+
+#: Mailman/HTMLFormatter.py:311
+msgid "Password: "
+msgstr "Passord: "
+
+#: Mailman/HTMLFormatter.py:315
+msgid "Visit Subscriber List"
+msgstr "Vis Medlemsliste"
+
+#: Mailman/HTMLFormatter.py:345
+msgid "Once a month, your password will be emailed to you as a reminder."
+msgstr ""
+"En gang i m&aring;neden vil du som en p&aring;minnelse motta passordet ditt "
+"i en epost."
+
+#: Mailman/HTMLFormatter.py:391
+msgid "The current archive"
+msgstr "Arkivet"
+
+#: Mailman/Handlers/Acknowledge.py:59
+msgid "%(realname)s post acknowledgement"
+msgstr "Melding om mottatt epost til %(realname)s"
+
+#: Mailman/Handlers/CalcRecips.py:68
+msgid ""
+"Your urgent message to the %(realname)s mailing list was not authorized for\n"
+"delivery. The original message as received by Mailman is attached.\n"
+msgstr ""
+"Din hastemelding til epostlisten %(realname)s ble ikke godkjent.\n"
+"Meldingens originale innhold slik den ble mottatt av Mailman ligger "
+"vedlagt.\n"
+
+#: Mailman/Handlers/Emergency.py:29
+msgid "Emergency hold on all list traffic is in effect"
+msgstr "All epost til listen nødholdes tilbake for godkjenning."
+
+#: Mailman/Handlers/Emergency.py:30 Mailman/Handlers/Hold.py:58
+msgid "Your message was deemed inappropriate by the moderator."
+msgstr ""
+"Meldingen din ble av moderatoren karakterisert som upassende for denne "
+"listen."
+
+#: Mailman/Handlers/Hold.py:53
+msgid "Sender is explicitly forbidden"
+msgstr "Avsender er utestengt"
+
+#: Mailman/Handlers/Hold.py:54
+msgid "You are forbidden from posting messages to this list."
+msgstr "Du har ikke lov til å sende meldinger til denne epostlisten."
+
+#: Mailman/Handlers/Hold.py:57
+msgid "Post to moderated list"
+msgstr "Melding sendt til moderert liste"
+
+#: Mailman/Handlers/Hold.py:61
+msgid "Post by non-member to a members-only list"
+msgstr ""
+"Avsender er ikke medlem av listen, men kun medlemmer kan sende til listen"
+
+#: Mailman/Handlers/Hold.py:62
+msgid "Non-members are not allowed to post messages to this list."
+msgstr "Man må være medlem for å kunne sende meldinger til denne epostlisten."
+
+#: Mailman/Handlers/Hold.py:65
+msgid "Posting to a restricted list by sender requires approval"
+msgstr "Melding til en begrenset liste krever godkjenning"
+
+#: Mailman/Handlers/Hold.py:66
+msgid "This list is restricted; your message was not approved."
+msgstr "Denne epostlisten er begrenset; din melding ble ikke godkjent."
+
+#: Mailman/Handlers/Hold.py:69
+msgid "Too many recipients to the message"
+msgstr "Meldingen har for mange mottakere"
+
+#: Mailman/Handlers/Hold.py:70
+msgid "Please trim the recipient list; it is too long."
+msgstr "Vennligst kort ned mottakerlisten; den er for lang."
+
+#: Mailman/Handlers/Hold.py:73
+msgid "Message has implicit destination"
+msgstr "Meldingen har implisitt mål"
+
+#: Mailman/Handlers/Hold.py:74
+msgid ""
+"Blind carbon copies or other implicit destinations are\n"
+"not allowed. Try reposting your message by explicitly including the list\n"
+"address in the To: or Cc: fields."
+msgstr ""
+"'Bcc:' eller andre implisitte mål er ikke tillatt.\n"
+"Prøv å send meldingen på nytt ved å eksplisitt spesifisere epostlistens "
+"adresse i To: eller Cc: feltene."
+
+#: Mailman/Handlers/Hold.py:79
+msgid "Message may contain administrivia"
+msgstr "Meldingen kan ha administrativt innhold"
+
+#: Mailman/Handlers/Hold.py:84
+msgid ""
+"Please do *not* post administrative requests to the mailing\n"
+"list. If you wish to subscribe, visit %(listurl)s or send a message with "
+"the\n"
+"word `help' in it to the request address, %(request)s, for further\n"
+"instructions."
+msgstr ""
+"Vennligst *ikke* send administrative forespørsler til epostlisten.\n"
+"Vil du melde deg av listen, gå inn på %(listurl)s eller send en epost som "
+"kun inneholder ordet 'help' til %(request)s for å få nærmere instruksjoner."
+
+#: Mailman/Handlers/Hold.py:90
+msgid "Message has a suspicious header"
+msgstr "Meldingen har et mistenkelig meldingshode."
+
+#: Mailman/Handlers/Hold.py:91
+msgid "Your message had a suspicious header."
+msgstr "Meldingen din inneholdt et tvilsomt meldingshode."
+
+#: Mailman/Handlers/Hold.py:101
+msgid ""
+"Message body is too big: %(size)d bytes with a limit of\n"
+"%(limit)d KB"
+msgstr "Meldingen er for stor: %(size)d bytes, grensen er %(limit)d KB"
+
+#: Mailman/Handlers/Hold.py:106
+msgid ""
+"Your message was too big; please trim it to less than\n"
+"%(kb)d KB in size."
+msgstr ""
+"Meldingen din er for stor, vennligst reduser den slik at den blir mindre "
+"enn\n"
+"%(kb)d KB."
+
+#: Mailman/Handlers/Hold.py:110
+msgid "Posting to a moderated newsgroup"
+msgstr "Melding sendt til moderert nyhetsgruppe"
+
+#: Mailman/Handlers/Hold.py:233
+msgid "Your message to %(listname)s awaits moderator approval"
+msgstr ""
+"Meldingen du sendte til listen %(listname)s venter på godkjenning av "
+"moderatoren."
+
+#: Mailman/Handlers/Hold.py:253
+msgid "%(listname)s post from %(sender)s requires approval"
+msgstr "Melding til %(listname)s fra %(sender)s krever godkjenning"
+
+#: Mailman/Handlers/Hold.py:260
+msgid ""
+"If you reply to this message, keeping the Subject: header intact, Mailman "
+"will\n"
+"discard the held message. Do this if the message is spam. If you reply to\n"
+"this message and include an Approved: header with the list password in it, "
+"the\n"
+"message will be approved for posting to the list. The Approved: header can\n"
+"also appear in the first line of the body of the reply."
+msgstr ""
+"Hvis du svarer på denne meldingen, og beholder Subject: feltet slik det er, "
+"vil\n"
+"Mailman forkaste den tilbakeholdte meldingen. Gjør dette hvis meldingen er "
+"spam.\n"
+"Hvis du svarer på denne meldingen, og legger til et Approved: felt i "
+"meldingshodet\n"
+"som inneholder listens passord, vil eposten bli godkjent og sendt til "
+"listen.\n"
+"Approved: feltet kan du også skrive som den første linjen i svaret du sender."
+
+#: Mailman/Handlers/MimeDel.py:56
+msgid "The message's content type was explicitly disallowed"
+msgstr "Meldingens innholdstype er ikke tillatt"
+
+#: Mailman/Handlers/MimeDel.py:61
+msgid "The message's content type was not explicitly allowed"
+msgstr "Meldingens innholdstype er ikke eksplisitt tillatt"
+
+#: Mailman/Handlers/MimeDel.py:73
+msgid "After content filtering, the message was empty"
+msgstr "Etter filtrering på innhold var meldingen tom"
+
+#: Mailman/Handlers/MimeDel.py:208
+msgid ""
+"The attached message matched the %(listname)s mailing list's content "
+"filtering\n"
+"rules and was prevented from being forwarded on to the list membership. "
+"You\n"
+"are receiving the only remaining copy of the discarded message.\n"
+"\n"
+msgstr ""
+"Den vedlagte meldingen ble filtrert av innholdsfiltrene til epostlisten\n"
+"%(listname)s og ble dermed ikke sendt videre til listens medlemskap. Du\n"
+"mottar den siste kopien av den forkastede meldingen.\n"
+"\n"
+
+#: Mailman/Handlers/MimeDel.py:214
+msgid "Content filtered message notification"
+msgstr "Resultat av filtrering på innhold"
+
+#: Mailman/Handlers/Moderate.py:138
+msgid ""
+"You are not allowed to post to this mailing list, and your message has been\n"
+"automatically rejected. If you think that your messages are being rejected "
+"in\n"
+"error, contact the mailing list owner at %(listowner)s."
+msgstr ""
+"Du har ikke lov til å sende epost til denne epostlisten, din melding ble "
+"derfor\n"
+"automatisk avvist. Dersom du mener at dine epost avvises urettmessig, "
+"kontakt\n"
+"epostlistens eier på %(listowner)s."
+
+#: Mailman/Handlers/Moderate.py:153
+msgid "Auto-discard notification"
+msgstr "Automatisk melding: din epost ble avvist"
+
+#: Mailman/Handlers/Moderate.py:156
+msgid "The attached message has been automatically discarded."
+msgstr "Den vedlagte meldingen er automatisk forkastet."
+
+#: Mailman/Handlers/Replybot.py:74
+msgid "Auto-response for your message to "
+msgstr "Automatisk svar for meldingen du sendte til "
+
+#: Mailman/Handlers/Replybot.py:75
+msgid "the \"%(realname)s\" mailing list"
+msgstr "epostlisten \"%(realname)s\""
+
+#: Mailman/Handlers/Replybot.py:107
+msgid "The Mailman Replybot"
+msgstr "Mailmans Automatiske Svarer"
+
+#: Mailman/Handlers/Scrubber.py:148
+msgid "HTML attachment scrubbed and removed"
+msgstr "Et HTML-vedlegg ble skilt ut og fjernet"
+
+#: Mailman/Handlers/Scrubber.py:162 Mailman/Handlers/Scrubber.py:188
+msgid ""
+"An HTML attachment was scrubbed...\n"
+"URL: %(url)s\n"
+msgstr ""
+"Et HTML-vedlegg ble skilt ut...\n"
+"URL: %(url)s\n"
+
+#: Mailman/Handlers/Scrubber.py:201
+msgid "no subject"
+msgstr "ingen tittel"
+
+#: Mailman/Handlers/Scrubber.py:202
+msgid "no date"
+msgstr "ingen dato"
+
+#: Mailman/Handlers/Scrubber.py:203
+msgid "unknown sender"
+msgstr "ukjent avsender"
+
+#: Mailman/Handlers/Scrubber.py:205
+msgid ""
+"An embedded message was scrubbed...\n"
+"From: %(who)s\n"
+"Subject: %(subject)s\n"
+"Date: %(date)s\n"
+"Size: %(size)s\n"
+"Url: %(url)s\n"
+msgstr ""
+"En epost i eposten, ble skilt ut...\n"
+"Fra: %(who)s\n"
+"Tittel: %(subject)s\n"
+"Dato: %(date)s\n"
+"St&oslash;rrelse: %(size)s\n"
+"Url: %(url)s\n"
+
+#: Mailman/Handlers/Scrubber.py:228
+msgid ""
+"A non-text attachment was scrubbed...\n"
+"Name: %(filename)s\n"
+"Type: %(ctype)s\n"
+"Size: %(size)d bytes\n"
+"Desc: %(desc)s\n"
+"Url : %(url)s\n"
+msgstr ""
+"Et vedlegg som ikke var tekst, ble skilt ut...\n"
+"Navn : %(filename)s\n"
+"Type : %(ctype)s\n"
+"St&oslash;rrelse : %(size)d bytes\n"
+"Beskrivelse: %(desc)s\n"
+"URL : %(url)s\n"
+
+#: Mailman/Handlers/Scrubber.py:258
+msgid "Skipped content of type %(partctype)s"
+msgstr "Hopper over innhold av typen %(partctype)s"
+
+#: Mailman/Handlers/Scrubber.py:275
+msgid "-------------- next part --------------\n"
+msgstr "-------------- neste del --------------\n"
+
+#: Mailman/Handlers/ToDigest.py:141
+msgid "%(realname)s Digest, Vol %(volume)d, Issue %(issue)d"
+msgstr "Sammendrag av %(realname)s, Vol %(volume)d, Utgave %(issue)d"
+
+#: Mailman/Handlers/ToDigest.py:181
+msgid "digest header"
+msgstr "topptekst"
+
+#: Mailman/Handlers/ToDigest.py:184
+msgid "Digest Header"
+msgstr "Topptekst"
+
+#: Mailman/Handlers/ToDigest.py:197
+msgid "Today's Topics:\n"
+msgstr "Dagens emner:\n"
+
+#: Mailman/Handlers/ToDigest.py:267
+msgid "Today's Topics (%(msgcount)d messages)"
+msgstr "Dagens emner (%(msgcount)d meldinger)"
+
+#: Mailman/Handlers/ToDigest.py:292
+msgid "digest footer"
+msgstr "bunntekst"
+
+#: Mailman/Handlers/ToDigest.py:295
+msgid "Digest Footer"
+msgstr "Bunntekst"
+
+#: Mailman/Handlers/ToDigest.py:309
+msgid "End of "
+msgstr "Slutt på "
+
+#: Mailman/ListAdmin.py:307
+msgid "Posting of your message titled \"%(subject)s\""
+msgstr "Din melding med tittel \"%(subject)s\""
+
+#: Mailman/ListAdmin.py:346
+msgid "Forward of moderated message"
+msgstr "Videresending av moderert melding"
+
+#: Mailman/ListAdmin.py:405
+msgid "New subscription request to list %(realname)s from %(addr)s"
+msgstr "Ny søknad om medlemskap på listen %(realname)s fra %(addr)s"
+
+#: Mailman/ListAdmin.py:428
+msgid "Subscription request"
+msgstr "Søknad om medlemskap"
+
+#: Mailman/ListAdmin.py:458
+msgid "New unsubscription request from %(realname)s by %(addr)s"
+msgstr "Søknad fra %(addr)s om utmelding fra listen %(realname)s"
+
+#: Mailman/ListAdmin.py:481
+msgid "Unsubscription request"
+msgstr "Søknad om utmelding"
+
+#: Mailman/ListAdmin.py:512
+msgid "Original Message"
+msgstr "Opprinnelig melding"
+
+#: Mailman/ListAdmin.py:515
+msgid "Request to mailing list %(realname)s rejected"
+msgstr "Forespørsel til epostlisten %(realname)s ikke godkjent"
+
+#: Mailman/MTA/Manual.py:57
+msgid ""
+"The mailing list `%(listname)s' has been created via the through-the-web\n"
+"interface. In order to complete the activation of this mailing list, the\n"
+"proper /etc/aliases (or equivalent) file must be updated. The program\n"
+"`newaliases' may also have to be run.\n"
+"\n"
+"Here are the entries for the /etc/aliases file:\n"
+msgstr ""
+"Epostlisten '%(listname)s' er opprettet via websidene. For å fullføre\n"
+"opprettelsen og aktivere epostlisten, må filen /etc/aliases (eller "
+"tilsvarende\n"
+"aliasfil) oppdateres. Det kan også være programmet 'newaliases' må kjøres.\n"
+"\n"
+"Her er linjene som må legges inn i aliasfilen:\n"
+
+#: Mailman/MTA/Manual.py:67
+msgid ""
+"\n"
+"To finish creating your mailing list, you must edit your /etc/aliases (or\n"
+"equivalent) file by adding the following lines, and possibly running the\n"
+"`newaliases' program:\n"
+"\n"
+"## %(listname)s mailing list"
+msgstr ""
+"\n"
+"For å fullføre opprettelsen av epostlisten, må du redigere filen /etc/"
+"aliases\n"
+"(eller tilsvarende aliasfil), legge til følgende linjer, og deretter\n"
+"muligens kjøre programmet 'newaliases':\n"
+"\n"
+"## Epostliste: %(listname)s"
+
+#: Mailman/MTA/Manual.py:88
+msgid "Mailing list creation request for list %(listname)s"
+msgstr "Resultat av opprettelse av epostlisten %(listname)s"
+
+#: Mailman/MTA/Manual.py:103
+msgid ""
+"The mailing list `%(listname)s' has been removed via the through-the-web\n"
+"interface. In order to complete the de-activation of this mailing list, "
+"the\n"
+"appropriate /etc/aliases (or equivalent) file must be updated. The program\n"
+"`newaliases' may also have to be run.\n"
+"\n"
+"Here are the entries in the /etc/aliases file that should be removed:\n"
+msgstr ""
+"Epostlisten '%(listname)s' er slettet via websiden. For å fullføre sletting\n"
+"av denne epostlisten, må filen /etc/aliases (eller tilsvarende aliasfil)\n"
+"oppdateres. Det kan også være at programmet 'newaliases' må kjøres.\n"
+"\n"
+"Her er linjene som må fjernes fra aliasfilen:\n"
+
+#: Mailman/MTA/Manual.py:113
+msgid ""
+"\n"
+"To finish removing your mailing list, you must edit your /etc/aliases (or\n"
+"equivalent) file by removing the following lines, and possibly running the\n"
+"`newaliases' program:\n"
+"\n"
+"## %(listname)s mailing list"
+msgstr ""
+"\n"
+"For å fullføre sletting av denne epostlisten, må følgende linjer slettes i\n"
+"filen /etc/aliases (eller tilsvarende aliasfil), muligens etterfulgt av\n"
+"å kjøre programmet 'newaliases':\n"
+"\n"
+"## Epostliste: %(listname)s"
+
+#: Mailman/MTA/Manual.py:132
+msgid "Mailing list removal request for list %(listname)s"
+msgstr "Forespørsel om å fjerne epostlisten %(listname)s"
+
+#: Mailman/MTA/Postfix.py:300
+msgid "checking permissions on %(file)s"
+msgstr "kontrollerer rettigheter for %(file)s"
+
+#: Mailman/MTA/Postfix.py:310
+msgid "%(file)s permissions must be 066x (got %(octmode)s)"
+msgstr "rettighetene på %(file)s må være 066x (men er %(octmode)s)"
+
+#: Mailman/MTA/Postfix.py:312 Mailman/MTA/Postfix.py:339 bin/check_perms:100
+#: bin/check_perms:122 bin/check_perms:132 bin/check_perms:143
+#: bin/check_perms:162 bin/check_perms:180 bin/check_perms:200
+#: bin/check_perms:224 bin/check_perms:244 bin/check_perms:258
+#: bin/check_perms:278 bin/check_perms:315
+msgid "(fixing)"
+msgstr "(fixer)"
+
+#: Mailman/MTA/Postfix.py:328
+msgid "checking ownership of %(dbfile)s"
+msgstr "undersøker eierskap på filen %(dbfile)s"
+
+#: Mailman/MTA/Postfix.py:336
+msgid "%(dbfile)s owned by %(owner)s (must be owned by %(user)s"
+msgstr "Filen %(dbfile)s eies av %(owner)s (må eies av %(user)s)"
+
+#: Mailman/MailList.py:697
+msgid "You have been invited to join the %(listname)s mailing list"
+msgstr "Du inviteres herved til å melde deg på epostlisten %(listname)s"
+
+#: Mailman/MailList.py:801 Mailman/MailList.py:1157
+msgid " from %(remote)s"
+msgstr " fra %(remote)s"
+
+#: Mailman/MailList.py:835
+msgid "subscriptions to %(realname)s require moderator approval"
+msgstr "påmelding på %(realname)s krever godkjenning av moderator"
+
+#: Mailman/MailList.py:894 bin/add_members:281
+msgid "%(realname)s subscription notification"
+msgstr "Melding om påmelding på epostlisten %(realname)s"
+
+#: Mailman/MailList.py:909
+msgid "unsubscriptions require moderator approval"
+msgstr "utmelding krever godkjenning av moderator"
+
+#: Mailman/MailList.py:928
+msgid "%(realname)s unsubscribe notification"
+msgstr "Melding om utmelding av epostlisten %(realname)s"
+
+#: Mailman/MailList.py:1072
+msgid "subscriptions to %(name)s require administrator approval"
+msgstr "påmelding på %(name)s krever godkjenning av administrator"
+
+#: Mailman/MailList.py:1326
+msgid "Last autoresponse notification for today"
+msgstr "Siste automatiske svar idag"
+
+#: Mailman/Queue/BounceRunner.py:179
+msgid ""
+"The attached message was received as a bounce, but either the bounce format\n"
+"was not recognized, or no member addresses could be extracted from it. "
+"This\n"
+"mailing list has been configured to send all unrecognized bounce messages "
+"to\n"
+"the list administrator(s).\n"
+"\n"
+"For more information see:\n"
+"%(adminurl)s\n"
+"\n"
+msgstr ""
+"Den vedlagte meldingen ble mottatt som en returmelding, men enten er "
+"formatet\n"
+"ukjent, eller så kunne ingen medlemsadresse plukkes ut av meldingen. Denne\n"
+"epostlisten er konfigurert slik at alle ukjente returmeldinger sendes til\n"
+"listeadministratoren(e).\n"
+"\n"
+"For mer informasjon, se:\n"
+"%(adminurl)s\n"
+"\n"
+
+#: Mailman/Queue/BounceRunner.py:189
+msgid "Uncaught bounce notification"
+msgstr "Returmelding som ikke ble fanget opp"
+
+#: Mailman/Queue/CommandRunner.py:74
+msgid "Ignoring non-text/plain MIME parts"
+msgstr "Hopper over MIME deler som ikke er text/plain"
+
+#: Mailman/Queue/CommandRunner.py:129
+msgid ""
+"The results of your email command are provided below.\n"
+"Attached is your original message.\n"
+msgstr ""
+"Resultatet av dine kommandoer vises nedenfor.\n"
+"Din opprinnelige melding ligger vedlagt.\n"
+
+#: Mailman/Queue/CommandRunner.py:134
+msgid "- Results:"
+msgstr "- Resultater:"
+
+#: Mailman/Queue/CommandRunner.py:140
+msgid ""
+"\n"
+"- Unprocessed:"
+msgstr ""
+"\n"
+"- Ikke utført:"
+
+#: Mailman/Queue/CommandRunner.py:143
+msgid ""
+"\n"
+"- Ignored:"
+msgstr ""
+"\n"
+"- Hoppet over:"
+
+#: Mailman/Queue/CommandRunner.py:145
+msgid ""
+"\n"
+"- Done.\n"
+"\n"
+msgstr ""
+"\n"
+"- Slutt på kommandoer.\n"
+"\n"
+
+#: Mailman/Queue/CommandRunner.py:163
+msgid "The results of your email commands"
+msgstr "Resultatet av dine kommandoer"
+
+#: Mailman/htmlformat.py:627
+msgid "Delivered by Mailman<br>version %(version)s"
+msgstr "Levert av Mailman<br>versjon %(version)s"
+
+#: Mailman/htmlformat.py:628
+msgid "Python Powered"
+msgstr "Programmert i Python"
+
+#: Mailman/htmlformat.py:629
+msgid "Gnu's Not Unix"
+msgstr "GNU er ikke UNiX"
+
+#: Mailman/i18n.py:86
+msgid "Mon"
+msgstr "Man"
+
+#: Mailman/i18n.py:86
+msgid "Thu"
+msgstr "Tor"
+
+#: Mailman/i18n.py:86
+msgid "Tue"
+msgstr "Tir"
+
+#: Mailman/i18n.py:86
+msgid "Wed"
+msgstr "Ons"
+
+#: Mailman/i18n.py:87
+msgid "Fri"
+msgstr "Fre"
+
+#: Mailman/i18n.py:87
+msgid "Sat"
+msgstr "Lør"
+
+#: Mailman/i18n.py:87
+msgid "Sun"
+msgstr "Søn"
+
+#: Mailman/i18n.py:91
+msgid "Apr"
+msgstr "Apr"
+
+#: Mailman/i18n.py:91
+msgid "Feb"
+msgstr "Feb"
+
+#: Mailman/i18n.py:91
+msgid "Jan"
+msgstr "Jan"
+
+#: Mailman/i18n.py:91
+msgid "Jun"
+msgstr "Jun"
+
+#: Mailman/i18n.py:91
+msgid "Mar"
+msgstr "Mar"
+
+#: Mailman/i18n.py:92
+msgid "Aug"
+msgstr "Aug"
+
+#: Mailman/i18n.py:92
+msgid "Dec"
+msgstr "Des"
+
+#: Mailman/i18n.py:92
+msgid "Jul"
+msgstr "Jul"
+
+#: Mailman/i18n.py:92
+msgid "Nov"
+msgstr "Nov"
+
+#: Mailman/i18n.py:92
+msgid "Oct"
+msgstr "Okt"
+
+#: Mailman/i18n.py:92
+msgid "Sep"
+msgstr "Sep"
+
+#: Mailman/i18n.py:95
+msgid "Server Local Time"
+msgstr "Lokal tid"
+
+#: Mailman/i18n.py:128
+msgid ""
+"%(wday)s %(mon)s %(day)2i %(hh)02i:%(mm)02i:%(ss)02i %(tzname)s %(year)04i"
+msgstr ""
+
+#: bin/add_members:26
+msgid ""
+"Add members to a list from the command line.\n"
+"\n"
+"Usage:\n"
+" add_members [options] listname\n"
+"\n"
+"Options:\n"
+"\n"
+" --regular-members-file=file\n"
+" -r file\n"
+" A file containing addresses of the members to be added, one\n"
+" address per line. This list of people become non-digest\n"
+" members. If file is `-', read addresses from stdin. Note that\n"
+" -n/--non-digest-members-file are deprecated synonyms for this "
+"option.\n"
+"\n"
+" --digest-members-file=file\n"
+" -d=file\n"
+" Similar to above, but these people become digest members.\n"
+"\n"
+" --changes-msg=<y|n>\n"
+" -c <y|n> \n"
+"\tSet whether or not to send the list members the `there's going to be\n"
+"\tbig changes to your list' message. defaults to no.\n"
+"\n"
+" --welcome-msg=<y|n>\n"
+" -w <y|n>\n"
+" Set whether or not to send the list members a welcome message,\n"
+" overriding whatever the list's `send_welcome_msg' setting is.\n"
+"\n"
+" --admin-notify=<y|n>\n"
+" -a <y|n>\n"
+" Set whether or not to send the list administrators a notification "
+"on\n"
+" the success/failure of these subscriptions, overriding whatever the\n"
+" list's `admin_notify_mchanges' setting is.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname\n"
+" The name of the Mailman list you are adding members to. It must\n"
+" already exist.\n"
+"\n"
+"You must supply at least one of -r and -d options. At most one of the\n"
+"files can be `-'.\n"
+msgstr ""
+"Legger inn nye medlemmer på en liste fra kommandolinjen.\n"
+"\n"
+"Brukes slik:\n"
+" add_members [valg] listenavn\n"
+"\n"
+"Valg:\n"
+"\n"
+" --regular-members-file=filnavn\n"
+" -r filnavn\n"
+" Navn på en fil som inneholder epostadressene til medlemmene som "
+"skal\n"
+" legges inn, en per linje. Denne listen over medlemmer blir satt opp\n"
+" i normal-modus. Hvis filnavnet er \"-\", leses adressene fra "
+"standard\n"
+" input.\n"
+"\n"
+" --digest-members-file=filnavn\n"
+" -d=filnavn\n"
+" Akkurat som -n valget ovenfor, men de som står i denne filen blir "
+"satt\n"
+" opp i sammendrag-modus.\n"
+"\n"
+" --changes-msg=<y|n>\n"
+" -c <y|n>\n"
+" Forteller om det skal sendes ut en meldingen til listens medlemmer "
+"om\n"
+" at \"det kommer til å bli en stor endring på listen\".\n"
+" Default: n\n"
+"\n"
+" --welcome-msg=<y|n>\n"
+" -w <y|n>\n"
+" Forteller om det skal sendes ut velkomsthilsen til de nye medlemmene "
+"av\n"
+" listen.\n"
+" Default: listens \"send_welcome_msg\" innstilling.\n"
+"\n"
+" --admin-notify=<y|n>\n"
+" -a <y|n>\n"
+" Forteller om det skal sendes ut melding til listeadministratoren"
+"(e).\n"
+" Default: listens \"admin_notify_mchanges\" innstilling.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Viser denne hjelpeteksten.\n"
+"\n"
+" listenavn\n"
+" Navn på listen som skal få nye medlemmer. Den må eksistere fra før.\n"
+"\n"
+"Du må benytte minst valgene \"-r\" eller \"-d\". Bare ett av filnavnene kan\n"
+"være \"-\".\n"
+
+#: bin/add_members:134
+msgid "Big change in %(listname)s@%(listhost)s mailing list"
+msgstr "Stor endring av epostlisten %(listname)s@%(listhost)s"
+
+#: bin/add_members:167
+msgid "Already a member: %(member)s"
+msgstr "Allerede medlem: %(member)s"
+
+#: bin/add_members:170
+msgid "Bad/Invalid email address: blank line"
+msgstr "Feil/Ugyldig epostadresse: blank linje"
+
+#: bin/add_members:172
+msgid "Bad/Invalid email address: %(member)s"
+msgstr "Feil/Ugyldig epostadresse: %(member)s"
+
+#: bin/add_members:174
+msgid "Hostile address (illegal characters): %(member)s"
+msgstr "Ugyldige tegn i epostadressen: %(member)s"
+
+#: bin/add_members:176
+msgid "Subscribed: %(member)s"
+msgstr "Påmeldt: %(member)s"
+
+#: bin/add_members:223
+msgid "Bad argument to -c/--changes-msg: %(arg)s"
+msgstr "Ugyldig argument til -c/--changes-msg: %(arg)s"
+
+#: bin/add_members:230
+msgid "Bad argument to -w/--welcome-msg: %(arg)s"
+msgstr "Ugyldig argument til -w/--welcome-msg: %(arg)s"
+
+#: bin/add_members:237
+msgid "Bad argument to -a/--admin-notify: %(arg)s"
+msgstr "Ugyldig argument til -a/--admin-notify: %(arg)s"
+
+#: bin/add_members:243
+msgid "Cannot read both digest and normal members from standard input."
+msgstr ""
+"Kan ikke lese både medlemmer i normal-modus og medlemmer i sammendrag-modus "
+"fra standard input."
+
+#: bin/add_members:249 bin/config_list:105 bin/find_member:97 bin/inject:90
+#: bin/list_admins:89 bin/list_members:187 bin/sync_members:222
+#: cron/bumpdigests:86
+msgid "No such list: %(listname)s"
+msgstr "Listen finnes ikke: %(listname)s"
+
+#: bin/add_members:269 bin/change_pw:158 bin/check_db:114 bin/sync_members:244
+#: cron/bumpdigests:78
+msgid "Nothing to do."
+msgstr "Ingenting å gjøre."
+
+#: bin/arch:19
+msgid ""
+"Rebuild a list's archive.\n"
+"\n"
+"Use this command to rebuild the archives for a mailing list. You may want "
+"to\n"
+"do this if you edit some messages in an archive, or remove some messages "
+"from\n"
+"an archive.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] <listname> [<mbox>]\n"
+"\n"
+"Where options are:\n"
+" -h / --help\n"
+" Print this help message and exit.\n"
+"\n"
+" -q / --quiet\n"
+" Make the archiver output less verbose.\n"
+"\n"
+" --wipe\n"
+" First wipe out the original archive before regenerating. You "
+"usually\n"
+" want to specify this argument unless you're generating the archive "
+"in\n"
+" chunks.\n"
+"\n"
+" -s N\n"
+" --start=N\n"
+" Start indexing at article N, where article 0 is the first in the "
+"mbox.\n"
+" Defaults to 0.\n"
+"\n"
+" -e M\n"
+" --end=M\n"
+" End indexing at article M. This script is not very efficient with\n"
+" respect to memory management, and for large archives, it may not be\n"
+" possible to index the mbox entirely. For that reason, you can "
+"specify\n"
+" the start and end article numbers.\n"
+"\n"
+"Where <mbox> is the path to a list's complete mbox archive. Usually this "
+"will\n"
+"be some path in the archives/private directory. For example:\n"
+"\n"
+"%% bin/arch mylist archives/private/mylist.mbox/mylist.mbox\n"
+"\n"
+"<mbox> is optional. If it is missing, it is calculated.\n"
+msgstr ""
+"Bygger epostlistens arkiv på nytt.\n"
+"\n"
+"Bruk denne kommandoen for å bygge en epostlistes arkiv på nytt. Det kan "
+"være\n"
+"du får bruk for dette hvis du manuelt redigerer noen epost i et arkiv, "
+"eller\n"
+"fjerner noen epost fra arkivet.\n"
+"\n"
+"Brukes slik: %(PROGRAM)s [valg] <listenavn> [<mbox-fil>]\n"
+"\n"
+"Valg:\n"
+"\n"
+" -h / --help\n"
+" Viser denne hjelpeteksten.\n"
+"\n"
+" -q / --quiet\n"
+" Viser færre meldinger på skjermen under kjøring.\n"
+"\n"
+" --wipe\n"
+" Sletter hele arkivet før det bygges. Vanligvis vil du benytte dette\n"
+" valget, unntatt når du bygger opp arkivet del for del.\n"
+"\n"
+" -s N\n"
+" --start=N\n"
+" Starter indekseringen på artikkel N, der artikkel 0 er første "
+"melding\n"
+" i mbox-filen.\n"
+" 0 er standardverdi.\n"
+"\n"
+" -e M\n"
+" --end=M\n"
+" Slutter å indeksere på artikkel M. Dette scriptet er ikke minne-\n"
+" effektivt, og store arkiv kan kanskje ikke bygges fra bunnen av.\n"
+" Ved å angi start- og sluttverdier kan man på denne måten bygge\n"
+" arkivet bit for bit.\n"
+"\n"
+"<mbox-fil> er fullt navn på en fil som inneholder listens komplette arkiv\n"
+"i mbox-format. Dette er vanligvis en fil i katalogen archives/private.\n"
+"For eksempel:\n"
+"\n"
+"%% bin/arch minliste archives/private/minliste.mbox/minliste.mbox\n"
+"\n"
+"<mbox-fil> er valgfri. Angis den ikke, prøver kommandoen å gjette riktig "
+"navn.\n"
+
+#: bin/arch:125
+msgid "listname is required"
+msgstr "krever listens navn"
+
+#: bin/arch:143 bin/change_pw:106 bin/config_list:242
+msgid ""
+"No such list \"%(listname)s\"\n"
+"%(e)s"
+msgstr ""
+"Listen \"%(listname)s\" finnes ikke\n"
+"%(e)s"
+
+#: bin/arch:170
+msgid "Cannot open mbox file %(mbox)s: %(msg)s"
+msgstr "Kan ikke åpne mbox-fil %(mbox)s: %(msg)s"
+
+#: bin/b4b5-archfix:19
+msgid ""
+"Fix the MM2.1b4 archives.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] file ...\n"
+"\n"
+"Where options are:\n"
+" -h / --help\n"
+" Print this help message and exit.\n"
+"\n"
+"Only use this to `fix' some archive database files that may have gotten\n"
+"written in Mailman 2.1b4 with some bogus data. Use like this from your\n"
+"$PREFIX directory\n"
+"\n"
+"%% %(PROGRAM)s `grep -l _mlist archives/private/*/database/*-article`\n"
+"\n"
+"(note the backquotes are required)\n"
+"\n"
+"You will need to run `bin/check_perms -f' after running this script.\n"
+msgstr ""
+
+#: bin/change_pw:19
+msgid ""
+"Change a list's password.\n"
+"\n"
+"Prior to Mailman 2.1, list passwords were kept in crypt'd format -- "
+"usually.\n"
+"Some Python installations didn't have the crypt module available, so they'd\n"
+"fall back to md5. Then suddenly the Python installation might grow a crypt\n"
+"module and all list passwords would be broken.\n"
+"\n"
+"In Mailman 2.1, all list and site passwords are stored in SHA1 hexdigest\n"
+"form. This breaks list passwords for all existing pre-Mailman 2.1 lists, "
+"and\n"
+"since those passwords aren't stored anywhere in plain text, they cannot be\n"
+"retrieved and updated.\n"
+"\n"
+"Thus, this script generates new passwords for a list, and optionally sends "
+"it\n"
+"to all the owners of the list.\n"
+"\n"
+"Usage: change_pw [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" --all / -a\n"
+" Change the password for all lists.\n"
+"\n"
+" --domain=domain\n"
+" -d domain\n"
+" Change the password for all lists in the virtual domain `domain'. "
+"It\n"
+" is okay to give multiple -d options.\n"
+"\n"
+" --listname=listname\n"
+" -l listname\n"
+" Change the password only for the named list. It is okay to give\n"
+" multiple -l options.\n"
+"\n"
+" --password=newpassword\n"
+" -p newpassword\n"
+" Use the supplied plain text password `newpassword' as the new "
+"password\n"
+" for any lists that are being changed (as specified by the -a, -d, "
+"and\n"
+" -l options). If not given, lists will be assigned a randomly\n"
+" generated new password.\n"
+"\n"
+" --quiet / -q\n"
+" Don't notify list owners of the new password. You'll have to have\n"
+" some other way of letting the list owners know the new password\n"
+" (presumably out-of-band).\n"
+"\n"
+" --help / -h\n"
+" Print this help message and exit.\n"
+msgstr ""
+"Endre passordet for en liste.\n"
+"\n"
+"Før Mailman 2.1, ble listepassordene -vanligvis- lagret i crypt-format.\n"
+"Noen Python-installasjoner hadde ikke crypt-modulen installert, så de\n"
+"benyttet md5-modulen isteden. Hvis crypt-modulen da ble installert, ville\n"
+"ingen passord fungere lenger.\n"
+"\n"
+"I Mailman 2.1 lagres alle passord i SHA1 hexdigest format. Dette er ikke\n"
+"bakoverkompatibelt med eldre versjoner av Mailman, og siden passordene i på\n"
+"noen som helst måte lagres i klartekst, kan de ikke hentes ut og "
+"oppdateres.\n"
+"\n"
+"Dette scriptet genererer nye passord for en liste, og kan sende det til\n"
+"alle eiere av listen hvis ønskelig.\n"
+"\n"
+"Brukes slik: change_pw [valg]\n"
+"\n"
+"Valg:\n"
+"\n"
+" --all / -a\n"
+" Endrer passordene på alle listene.\n"
+"\n"
+" --domain=domene\n"
+" -d domene\n"
+" Endrer passord for alle lister i det virtuelle domenet 'domene'.\n"
+" Dette valget kan benyttes flere ganger.\n"
+"\n"
+" --listname=listenavn\n"
+" -l listenavn\n"
+" Bare endre passordet for den angitte listen.\n"
+" Dette valget kan benyttes flere ganger.\n"
+"\n"
+" --password=nyttpassord\n"
+" -p nyttpassord\n"
+" Setter passordet til det angitte \"nyttpassord\" for de listene som\n"
+" skal endres. Hvis dette valget ikke benyttes, vil passordet bli\n"
+" automatisk generert.\n"
+"\n"
+" --quiet / -q\n"
+" Ikke send melding om det nye passordet til listens eier(e). Du bør "
+"da\n"
+" ha en annen måte å gi det nye passordet til eierne/eieren.\n"
+"\n"
+" --help / -h\n"
+" Viser denne hjelpeteksten.\n"
+
+#: bin/change_pw:144
+msgid "Bad arguments: %(strargs)s"
+msgstr "Ugyldige parametre: %(strargs)s"
+
+#: bin/change_pw:148
+msgid "Empty list passwords are not allowed"
+msgstr "Blanke listepassord er ikke tillatt"
+
+#: bin/change_pw:179
+msgid "New %(listname)s password: %(notifypassword)s"
+msgstr "Nytt passord for %(listname)s: %(notifypassword)s"
+
+#: bin/change_pw:188
+msgid "Your new %(listname)s list password"
+msgstr "Det nye passordet for epostlisten %(listname)s"
+
+#: bin/change_pw:189
+msgid ""
+"The site administrator at %(hostname)s has changed the password for your\n"
+"mailing list %(listname)s. It is now\n"
+"\n"
+" %(notifypassword)s\n"
+"\n"
+"Please be sure to use this for all future list administration. You may "
+"want\n"
+"to log in now to your list and change the password to something more to "
+"your\n"
+"liking. Visit your list admin page at\n"
+"\n"
+" %(adminurl)s\n"
+msgstr ""
+"Administratoren for %(hostname)s har endret passordet for epostlisten\n"
+"%(listname)s. Det nye passordet er:\n"
+"\n"
+" %(notifypassword)s\n"
+"\n"
+"Husk å heretter benytte dette passordet for all administrasjon av listen.\n"
+"Kanskje vil du logge inn nå og endre passordet til et annet som du heller\n"
+"vil ha. Dette kan du isåfall gjøre på listens administrasjonsside:\n"
+"\n"
+" %(adminurl)s\n"
+
+#: bin/check_db:19
+msgid ""
+"Check a list's config database file for integrity.\n"
+"\n"
+"All of the following files are checked:\n"
+"\n"
+" config.pck\n"
+" config.pck.last\n"
+" config.db\n"
+" config.db.last\n"
+" config.safety\n"
+"\n"
+"It's okay if any of these are missing. config.pck and config.pck.last are\n"
+"pickled versions of the config database file for 2.1a3 and beyond. config."
+"db\n"
+"and config.db.last are used in all earlier versions, and these are Python\n"
+"marshals. config.safety is a pickle written by 2.1a3 and beyond when the\n"
+"primary config.pck file could not be read.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname [listname ...]]\n"
+"\n"
+"Options:\n"
+"\n"
+" --all / -a\n"
+" Check the databases for all lists. Otherwise only the lists named "
+"on\n"
+" the command line are checked.\n"
+"\n"
+" --verbose / -v\n"
+" Verbose output. The state of every tested file is printed.\n"
+" Otherwise only corrupt files are displayed.\n"
+"\n"
+" --help / -h\n"
+" Print this text and exit.\n"
+msgstr ""
+"Undersøker en listes konfigurasjonsdatabase.\n"
+"\n"
+"Følgende filer kontrolleres:\n"
+"\n"
+" config.pck\n"
+" config.pck.last\n"
+" config.db\n"
+" config.db.last\n"
+" config.safety\n"
+"\n"
+"Det gjør ingenting om noen av disse ikke eksisterer.\n"
+"config.pck og config.pck.last er konfigurasjonsdatabasefilen for 2.1a3 og\n"
+"nyere, lagret i en pickle. config.db og config.db.last brukes i alle\n"
+"tidligere versjoner, disse filene er på formatet \"Python marshal\".\n"
+"config.safety er en pickle laget av 2.1a3 og nyere når config.pck ikke\n"
+"kunne leses.\n"
+"\n"
+"Brukes slik: %(PROGRAM)s [valg] [listenavn [listenavn ...]]\n"
+"\n"
+"Valg:\n"
+"\n"
+" --all / -a\n"
+" Undersøker databasene for alle listene. Vanligvis undersøkes kun de\n"
+" nevnte lister.\n"
+"\n"
+" --verbose / -v\n"
+" Vise detaljer. Status for hver fil som testes, skrives ut.\n"
+" Vanligvis vises bare korrupte filer.\n"
+"\n"
+" --help / -h\n"
+" Viser denne hjelpeteksten.\n"
+
+#: bin/check_db:119
+msgid "No list named:"
+msgstr "Fant ingen liste med navnet:"
+
+#: bin/check_db:128
+msgid "List:"
+msgstr "Liste:"
+
+#: bin/check_db:148
+msgid " %(file)s: okay"
+msgstr " %(file)s: ok"
+
+#: bin/check_perms:19
+msgid ""
+"Check the permissions for the Mailman installation.\n"
+"\n"
+"Usage: %(PROGRAM)s [-f] [-v] [-h]\n"
+"\n"
+"With no arguments, just check and report all the files that have bogus\n"
+"permissions or group ownership. With -f (and run as root), fix all the\n"
+"permission problems found. With -v be verbose.\n"
+"\n"
+msgstr ""
+"Undersøker rettigheter på filene i Mailman installasjonen.\n"
+"\n"
+"Brukes slik: %(PROGRAM)s [-f] [-v] [-h]\n"
+"\n"
+"Dersom ingen valg er spesifisert, foretar den kun en undersøkelse og "
+"rapporterer\n"
+"ugyldige rettigheter og eierskap på filer. Med -f (bør kjøres som root), "
+"retter\n"
+"den opp alle feil underveis. Med -v vises detaljert informasjon.\n"
+"\n"
+
+#: bin/check_perms:85
+msgid " checking gid and mode for %(path)s"
+msgstr " kontrollerer gid og rettigheter for %(path)s"
+
+#: bin/check_perms:97
+msgid "%(path)s bad group (has: %(groupname)s, expected %(MAILMAN_GROUP)s)"
+msgstr ""
+"feil gruppe for %(path)s (har: %(groupname)s, forventer %(MAILMAN_GROUP)s)"
+
+#: bin/check_perms:120
+msgid "directory permissions must be %(octperms)s: %(path)s"
+msgstr "rettighetene på katalogen må være %(octperms)s: %(path)s"
+
+#: bin/check_perms:129
+msgid "source perms must be %(octperms)s: %(path)s"
+msgstr "rettighetene på kilden må være %(octperms)s: %(path)s"
+
+#: bin/check_perms:140
+msgid "article db files must be %(octperms)s: %(path)s"
+msgstr "rettighetene på artikkeldatabasefilene må være %(octperms)s: %(path)s"
+
+#: bin/check_perms:152
+msgid "checking mode for %(prefix)s"
+msgstr "kontrollerer rettigheter for %(prefix)s"
+
+#: bin/check_perms:160
+msgid "directory must be at least 02775: %(d)s"
+msgstr "katalogen må minst ha rettighetene 02775: %(d)s"
+
+#: bin/check_perms:173
+msgid "checking perms on %(private)s"
+msgstr "kontrollerer rettigheter for: %(private)s"
+
+#: bin/check_perms:178
+msgid "%(private)s must not be other-readable"
+msgstr "%(private)s må ikke være leselig for alle"
+
+#: bin/check_perms:198
+msgid "mbox file must be at least 0660:"
+msgstr "mbox-filen må minimum ha rettighetene 0660:"
+
+#: bin/check_perms:222
+msgid "%(dbdir)s \"other\" perms must be 000"
+msgstr "rettigheter for \"alle andre\" for katalogen %(dbdir)s må være 000"
+
+#: bin/check_perms:233
+msgid "checking cgi-bin permissions"
+msgstr "kontrollerer rettigheter til cgi-bin"
+
+#: bin/check_perms:238
+msgid " checking set-gid for %(path)s"
+msgstr " kontrollerer set-gid for %(path)s"
+
+#: bin/check_perms:242
+msgid "%(path)s must be set-gid"
+msgstr "%(path)s må være set-gid"
+
+#: bin/check_perms:252
+msgid "checking set-gid for %(wrapper)s"
+msgstr "kontrollerer set-gid for %(wrapper)s"
+
+#: bin/check_perms:256
+msgid "%(wrapper)s must be set-gid"
+msgstr "%(wrapper)s må være set-gid"
+
+#: bin/check_perms:266
+msgid "checking permissions on %(pwfile)s"
+msgstr "kontrollerer rettigheter for %(pwfile)s"
+
+#: bin/check_perms:275
+msgid "%(pwfile)s permissions must be exactly 0640 (got %(octmode)s)"
+msgstr "rettighetene for %(pwfile)s må være satt til 0640 (de er %(octmode)s)"
+
+#: bin/check_perms:299
+msgid "checking permissions on list data"
+msgstr "kontrollerer rettigheter for listedata"
+
+#: bin/check_perms:305
+msgid " checking permissions on: %(path)s"
+msgstr " kontrollerer rettigheter for: %(path)s"
+
+#: bin/check_perms:313
+msgid "file permissions must be at least 660: %(path)s"
+msgstr "filrettigheter må minimum være 660: %(path)s"
+
+#: bin/check_perms:359
+msgid "No problems found"
+msgstr "Fant ingen problemer"
+
+#: bin/check_perms:361
+msgid "Problems found:"
+msgstr "Problemer funnet:"
+
+#: bin/check_perms:362
+msgid "Re-run as %(MAILMAN_USER)s (or root) with -f flag to fix"
+msgstr ""
+"Kjør dette programmet på nytt med \"-f\" flagget, som bruker %(MAILMAN_USER)"
+"s\n"
+"(eller root) for å fixe dette"
+
+#: bin/cleanarch:19
+msgid ""
+"Clean up an .mbox archive file.\n"
+"\n"
+"The archiver looks for Unix-From lines separating messages in an mbox "
+"archive\n"
+"file. For compatibility, it specifically looks for lines that start with\n"
+"\"From \" -- i.e. the letters capital-F, lowercase-r, o, m, space, ignoring\n"
+"everything else on the line.\n"
+"\n"
+"Normally, any lines that start \"From \" in the body of a message should be\n"
+"escaped such that a > character is actually the first on a line. It is\n"
+"possible though that body lines are not actually escaped. This script\n"
+"attempts to fix these by doing a stricter test of the Unix-From lines. Any\n"
+"lines that start \"From \" but do not pass this stricter test are escaped "
+"with a\n"
+"> character.\n"
+"\n"
+"Usage: cleanarch [options] < inputfile > outputfile\n"
+"Options:\n"
+" -s n\n"
+" --status=n\n"
+" Print a # character every n lines processed\n"
+"\n"
+" -q / --quiet\n"
+" Don't print changed line information to standard error.\n"
+"\n"
+" -n / --dry-run\n"
+" Don't actually output anything.\n"
+"\n"
+" -h / --help\n"
+" Print this message and exit\n"
+msgstr ""
+"Rydder opp i en .mbox fil.\n"
+"\n"
+"Arkivfunksjonen ser etter Unix-From linjer som skiller meldinger fra "
+"hverandre\n"
+"i en mbox fil. For kompatibilitet ser den etter linje som begynner med\n"
+"\"From\" -- altså stor F, liten r, o, og m, og et mellomrom. Alt annet på\n"
+"linjen blir oversett.\n"
+"\n"
+"Vanligvis skal linjer som befinner seg i innholdet i en epost, og som "
+"begynner\n"
+"med \"From \", egentlig starte med en \">\" slik at melding kan tolkes på "
+"riktig\n"
+"måte. Det hender at dette noen ganger ikke er tilfelle. Dette scriptet "
+"prøver\n"
+"å rette opp dette vi å foreta en litt strengere sjekk på Unix-From linjer.\n"
+"Linjer som begynner med \"From \" men som ikke passerer denne sjekken, får "
+"en\n"
+"\">\" foran seg.\n"
+"\n"
+"Brukes slik: cleanarch [valg] < innfil > utfil\n"
+"\n"
+"Valg:\n"
+" -s n\n"
+" --status=n\n"
+" Vis en # for hver n'te linje som leses.\n"
+"\n"
+" -q / --quietly\n"
+" Ikke vis endringer som utføres.\n"
+"\n"
+" -n / --dry-run\n"
+" Ikke skriv noe til standard output.\n"
+"\n"
+" -h / --help\n"
+" Viser denne hjelpeteksten.\n"
+
+#: bin/cleanarch:82
+msgid "Unix-From line changed: %(lineno)d"
+msgstr "Unix-From linje endret: %(lineno)d"
+
+#: bin/cleanarch:110
+msgid "Bad status number: %(arg)s"
+msgstr "Ugyldig status nummer: %(arg)s"
+
+#: bin/cleanarch:160
+msgid "%(messages)d messages found"
+msgstr "fant %(messages)d meldinger"
+
+#: bin/clone_member:19
+msgid ""
+"Clone a member address.\n"
+"\n"
+"Cloning a member address means that a new member will be added who has all "
+"the\n"
+"same options and passwords as the original member address. Note that this\n"
+"operation is fairly trusting of the user who runs it -- it does no\n"
+"verification to the new address, it does not send out a welcome message, "
+"etc.\n"
+"\n"
+"The existing member's subscription is usually not modified in any way. If "
+"you\n"
+"want to remove the old address, use the -r flag. If you also want to "
+"change\n"
+"any list admin addresses, use the -a flag.\n"
+"\n"
+"Usage:\n"
+" clone_member [options] fromoldaddr tonewaddr\n"
+"\n"
+"Where:\n"
+"\n"
+" --listname=listname\n"
+" -l listname\n"
+" Check and modify only the named mailing lists. If -l is not given,\n"
+" then all mailing lists are scanned from the address. Multiple -l\n"
+" options can be supplied.\n"
+"\n"
+" --remove\n"
+" -r\n"
+" Remove the old address from the mailing list after it's been "
+"cloned.\n"
+"\n"
+" --admin\n"
+" -a\n"
+" Scan the list admin addresses for the old address, and clone or "
+"change\n"
+" them too.\n"
+"\n"
+" --quiet\n"
+" -q\n"
+" Do the modifications quietly.\n"
+"\n"
+" --nomodify\n"
+" -n\n"
+" Print what would be done, but don't actually do it. Inhibits the\n"
+" --quiet flag.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" fromoldaddr (`from old address') is the old address of the user. "
+"tonewaddr\n"
+" (`to new address') is the new address of the user.\n"
+"\n"
+msgstr ""
+"Kloner en medlemsadresse.\n"
+"\n"
+"Å klone en medlemsadresse vil si å kopiere innstillingene til et medlem "
+"over\n"
+"til et nytt medlem, med en annen epostadresse. Det opprinnelige medlemmets\n"
+"innstillinger endres ikke, men kan fjernes ved å bruke -r flagget. Hvis du\n"
+"også ønsker å endre epostadressen til en av listeadministratorene,\n"
+"bruk -a flagget.\n"
+"\n"
+"Merk: denne kommandoen stoler på den som kjører den, det sendes ingen\n"
+"bekreftelse, velkomsthilsen, o.l. til den nye adressen.\n"
+"\n"
+"Brukes slik:\n"
+"\n"
+" clone_member [valg] fragammeladresse tilnyadresse\n"
+"\n"
+"Der:\n"
+"\n"
+" --listname=listenavn\n"
+" -l listenavn\n"
+" Går igjennom og endre kun på navngitte epostlister. Hvis -l ikke\n"
+" oppgis, benyttes alle epostlister. Flere -l kan benyttes.\n"
+"\n"
+" --remove\n"
+" -r\n"
+" Melder ut den gamle epostadressen etter at den nye er påmeldt.\n"
+"\n"
+" --admin\n"
+" -a\n"
+" Går igjennom og eventuelt endrer også administratoradresser.\n"
+"\n"
+" --quiet\n"
+" -q\n"
+" Utfører endringer så stille som mulig.\n"
+"\n"
+" --nomodify\n"
+" -n\n"
+" Utfører ingen endringer, men viser hva som ville blitt utført.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Viser denne hjelpeteksten.\n"
+"\n"
+"fragammeladresse ('fra gammel adresse') er epostadressen til medlemmet det\n"
+" skal kopieres fra.\n"
+"tilnyadresse ('til ny adresse') er den nye epostadressen som skal opprettes, "
+"og\n"
+" som skal få innstillingene til den gamle adressen.\n"
+"\n"
+
+#: bin/clone_member:94
+msgid "processing mailing list:"
+msgstr "Behandler epostlisten:"
+
+#: bin/clone_member:101
+msgid " scanning list owners:"
+msgstr " går igjennom listens eiere:"
+
+#: bin/clone_member:119
+msgid " new list owners:"
+msgstr " nye eiere av listen:"
+
+#: bin/clone_member:121
+msgid "(no change)"
+msgstr "(ingen endring)"
+
+#: bin/clone_member:130
+msgid " address not found:"
+msgstr " fant ikke adressen:"
+
+#: bin/clone_member:139
+msgid " clone address added:"
+msgstr " kopierte adressen:"
+
+#: bin/clone_member:142
+msgid " clone address is already a member:"
+msgstr " den kopierte adressene er allerede medlem:"
+
+#: bin/clone_member:145
+msgid " original address removed:"
+msgstr " den opprinnelige adressen ble ikke fjernet:"
+
+#: bin/clone_member:196
+msgid "Not a valid email address: %(toaddr)s"
+msgstr "Ikke en gyldig epostadresse: %(toaddr)s"
+
+#: bin/clone_member:209
+msgid ""
+"Error opening list \"%(listname)s\", skipping.\n"
+"%(e)s"
+msgstr ""
+"Hopper over listen \"%(listname)s\" grunnet feil under åpning.\n"
+"%(e)s"
+
+#: bin/config_list:19
+msgid ""
+"Configure a list from a text file description.\n"
+"\n"
+"Usage: config_list [options] listname\n"
+"\n"
+"Options:\n"
+" --inputfile filename\n"
+" -i filename\n"
+" Configure the list by assigning each module-global variable in the\n"
+" file to an attribute on the list object, then saving the list. The\n"
+" named file is loaded with execfile() and must be legal Python code.\n"
+" Any variable that isn't already an attribute of the list object is\n"
+" ignored (a warning message is printed). See also the -c option.\n"
+"\n"
+" A special variable named `mlist' is put into the globals during the\n"
+" execfile, which is bound to the actual MailList object. This lets "
+"you\n"
+" do all manner of bizarre thing to the list object, but BEWARE! "
+"Using\n"
+" this can severely (and possibly irreparably) damage your mailing "
+"list!\n"
+"\n"
+" --outputfile filename\n"
+" -o filename\n"
+" Instead of configuring the list, print out a list's configuration\n"
+" variables in a format suitable for input using this script. In "
+"this\n"
+" way, you can easily capture the configuration settings for a\n"
+" particular list and imprint those settings on another list. "
+"filename\n"
+" is the file to output the settings to. If filename is `-', "
+"standard\n"
+" out is used.\n"
+"\n"
+" --checkonly\n"
+" -c\n"
+" With this option, the modified list is not actually changed. Only\n"
+" useful with -i.\n"
+"\n"
+" --verbose\n"
+" -v\n"
+" Print the name of each attribute as it is being changed. Only "
+"useful\n"
+" with -i.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+"The options -o and -i are mutually exclusive.\n"
+"\n"
+msgstr ""
+"Konfigurerer listen fra en tekstfil.\n"
+"\n"
+"\n"
+"Brukes slik: config_list [valg] listenavn\n"
+"\n"
+"Valg:\n"
+" --inputfile filnavn\n"
+" -i filnavn\n"
+" Konfigurerer listen ved å lese inn filen og sette attributter i\n"
+" listens objekt slik variablene i filen tilsier. Filen lastes inn "
+"med\n"
+" funksjonen execfile() og må derfor være gyldig Python kode. Alle\n"
+" variabler som ikke er en attributt i listeobjektet hoppes over\n"
+" (en advarsel vises). Se også -c valget.\n"
+"\n"
+" Den spesielle variabelen 'mlist' i løpet av execfile(), som bindes "
+"til\n"
+" selve MailList objektet. Dette gjør at du kan gjøre alt med\n"
+" listeobjektet, så VÆR FORSIKTIG! Feil bruk kan fullstendig ødelegge\n"
+" epostlisten!\n"
+"\n"
+" --outputfile filnavn\n"
+" -o filnavn\n"
+" Skriver ut hele listens konfigurasjon til en fil (som igjen kan "
+"lastes\n"
+" inn med -i, se ovenfor), istedenfor å konfigurere listen. Dette er\n"
+" f.eks. en enkel måte å kopiere innstillingene for en liste over til "
+"en\n"
+" annen liste. 'filnavn' er navnet på filen konfigurasjonen skal "
+"skrives\n"
+" til. Hvis filnavnet er '-', skriver scriptet til standard output.\n"
+"\n"
+" --checkonly\n"
+" -c\n"
+" Foretar kun en sjekk av dataene, uten å endre på listen.\n"
+" Kun nyttig for -i valget.\n"
+"\n"
+" --verbose\n"
+" -v\n"
+" Viser navnet på alle attributter som endres.\n"
+" Kun nyttig for -i valget.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Viser denne hjelpeteksten.\n"
+"\n"
+"-o og -i kan ikke benyttes samtidig.\n"
+"\n"
+
+#: bin/config_list:109
+msgid ""
+"## \"%(listname)s\" mailing list configuration settings -*- python -*-\n"
+"## captured on %(when)s\n"
+msgstr ""
+"## Innstillinger for epostlisten \"%(listname)s\" -*- python -*-\n"
+"## Dato: %(when)s\n"
+
+#: bin/config_list:131
+msgid "options"
+msgstr ""
+
+#: bin/config_list:188
+msgid "legal values are:"
+msgstr "gyldige verdier:"
+
+#: bin/config_list:255
+msgid "attribute \"%(k)s\" ignored"
+msgstr "hopper over attributten \"%(k)s\""
+
+#: bin/config_list:258
+msgid "attribute \"%(k)s\" changed"
+msgstr "endret på attributten \"%(k)s\""
+
+#: bin/config_list:264
+msgid "Non-standard property restored: %(k)s"
+msgstr "Ikke-standard egenskap gjenopprettet: %(k)s"
+
+#: bin/config_list:272
+msgid "Invalid value for property: %(k)s"
+msgstr "Ugyldig verdi for egenskap: %(k)s"
+
+#: bin/config_list:274
+msgid "Bad email address for option %(k)s: %(v)s"
+msgstr "Ugyldig epostadresse for innstillingen %(k)s: %(v)s"
+
+#: bin/config_list:322
+msgid "Only one of -i or -o is allowed"
+msgstr "Bare en av parametrene \"-i\" eller \"-o\" kan brukes om gangen"
+
+#: bin/config_list:324
+msgid "One of -i or -o is required"
+msgstr "Du MÅ benytte en av parametrene \"-i\" eller \"-o\""
+
+#: bin/config_list:328
+msgid "List name is required"
+msgstr "Du MÅ spesifisere Listens navn"
+
+#: bin/convert.py:19
+msgid ""
+"Convert a list's interpolation strings from %-strings to $-strings.\n"
+"\n"
+"This script is intended to be run as a bin/withlist script, i.e.\n"
+"\n"
+"% bin/withlist -l -r convert <mylist>\n"
+msgstr ""
+
+#: bin/convert.py:38 bin/fix_url.py:85
+msgid "Saving list"
+msgstr "Lagrer listen"
+
+#: bin/convert.py:44 bin/fix_url.py:51
+msgid "%%%"
+msgstr ""
+
+#: bin/dumpdb:19
+msgid ""
+"Dump the contents of any Mailman `database' file.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] filename\n"
+"\n"
+"Options:\n"
+"\n"
+" --marshal/-m\n"
+" Assume the file contains a Python marshal, overridding any "
+"automatic\n"
+" guessing.\n"
+"\n"
+" --pickle/-p\n"
+" Assume the file contains a Python pickle, overridding any automatic\n"
+" guessing.\n"
+"\n"
+" --noprint/-n\n"
+" Don't attempt to pretty print the object. This is useful if "
+"there's\n"
+" some problem with the object and you just want to get an unpickled\n"
+" representation. Useful with `python -i bin/dumpdb <file>'. In "
+"that\n"
+" case, the root of the tree will be left in a global called \"msg\".\n"
+"\n"
+" --help/-h\n"
+" Print this help message and exit\n"
+"\n"
+"If the filename ends with `.db', then it is assumed that the file contains "
+"a\n"
+"Python marshal. If the file ends with `.pck' then it is assumed to contain "
+"a\n"
+"Python pickle. In either case, if you want to override the default "
+"assumption\n"
+"-- or if the file ends in neither suffix -- use the -p or -m flags.\n"
+msgstr ""
+"Viser innholdet av en Mailman databasefil.\n"
+"\n"
+"Brukes slik: %(PROGRAM)s [valg] filnavn\n"
+"\n"
+"Valg:\n"
+"\n"
+" --marshal / -m\n"
+" Går ut ifra at filen inneholder en Python marshal, og overstyrer "
+"dermed\n"
+" automatisk oppdagelse av filformatet.\n"
+"\n"
+" --pickle / -p\n"
+" Går ut ifra at filen inneholder en Python pickle, og overstyrer "
+"dermed\n"
+" automatisk oppdagelse av filformatet.\n"
+"\n"
+" --noprint / -n\n"
+" Ikke forsøk å skriv ut objektet. Dette kan være nyttig hvis det er\n"
+" problemer med objektet eller du ikke vil ha objektet representert "
+"som\n"
+" en pickle. Nyttig med 'python -i bin/dumpdb <filnavn>'. I det "
+"tilfellet\n"
+" vil roten av treet befinne seg i en global variabel ved navn \"msg"
+"\".\n"
+"\n"
+" --help / -h\n"
+" Viser denne hjelpeteksten.\n"
+"\n"
+"Hvis filnavnet slutter på '.db', antar scriptet at filen inneholder en "
+"Python\n"
+"marshal. Hvis filnavnet slutter på '.pck', antar scriptet at filen "
+"inneholder\n"
+"en Python pickle. I begge tilfeller må du benytte -p eller -m flaggene hvis\n"
+"du ønsker å overstyre dette (eller hvis filnavnet ikke slutter på noen av\n"
+"delene).\n"
+
+#: bin/dumpdb:101
+msgid "No filename given."
+msgstr "Ingen filnavn angitt"
+
+#: bin/dumpdb:104
+msgid "Bad arguments: %(pargs)s"
+msgstr "Ugyldige parametre: %(pargs)s"
+
+#: bin/dumpdb:114
+msgid "Please specify either -p or -m."
+msgstr "Vennligst benytt -p eller -m."
+
+#: bin/find_member:19
+msgid ""
+"Find all lists that a member's address is on.\n"
+"\n"
+"Usage:\n"
+" find_member [options] regex [regex [...]]\n"
+"\n"
+"Where:\n"
+" --listname=listname\n"
+" -l listname\n"
+" Include only the named list in the search.\n"
+"\n"
+" --exclude=listname\n"
+" -x listname\n"
+" Exclude the named list from the search.\n"
+"\n"
+" --owners\n"
+" -w\n"
+" Search list owners as well as members.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" regex\n"
+" A Python regular expression to match against.\n"
+"\n"
+"The interaction between -l and -x is as follows. If any -l option is given\n"
+"then only the named list will be included in the search. If any -x option "
+"is\n"
+"given but no -l option is given, then all lists will be search except those\n"
+"specifically excluded.\n"
+"\n"
+"Regular expression syntax is Perl5-like, using the Python re module. "
+"Complete\n"
+"specifications are at:\n"
+"\n"
+"http://www.python.org/doc/current/lib/module-re.html\n"
+"\n"
+"Address matches are case-insensitive, but case-preserved addresses are\n"
+"displayed.\n"
+"\n"
+msgstr ""
+"Søker etter en epostadresse i epostlistene.\n"
+"\n"
+"Brukes slik:\n"
+" find_member [valg] regex [regex [...]]\n"
+"\n"
+"Der:\n"
+" --listname=listenavn\n"
+" -l listenavn\n"
+" Søker kun i den spesifiserte epostlisten.\n"
+"\n"
+" --exclude=listenavn\n"
+" -x listenavn\n"
+" Utelater den spesifiserte epostlisten fra søket.\n"
+"\n"
+" --owners\n"
+" -w\n"
+" Søker i listens eiere i tillegg til listens medlemmer.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Viser denne hjelpeteksten.\n"
+"\n"
+" regex\n"
+" Et Python regexp-uttrykk som skal benyttes som søkemønster.\n"
+"\n"
+"Forholdet mellom -l og -x er som følger. Hvis -l angis, vil kun den angitte\n"
+"listen inkluderes i søket. Hvis -x angis, men ikke -l, søkes det gjennom "
+"alle\n"
+"lister bortsett fra de spesifisert med -x.\n"
+"\n"
+"Syntax på regexp-uttrykk er slik som Perl5, for Pythons \"re\" modul "
+"benyttes.\n"
+"Komplett spesifikasjon finnes på:\n"
+"\n"
+"http://www.python.org/doc/current/lib/module-re.html\n"
+"\n"
+"Adresser sammenlignes uten forskjell på små og store bokstaver, men vises "
+"med\n"
+"store/små bokstaver slik de er stavet.\n"
+"\n"
+
+#: bin/find_member:159
+msgid "Search regular expression required"
+msgstr "Du MÅ spesifisere et regexp-uttrykk"
+
+#: bin/find_member:164
+msgid "No lists to search"
+msgstr "Ingen lister å søke i"
+
+#: bin/find_member:173
+msgid "found in:"
+msgstr "finnes i:"
+
+#: bin/find_member:179
+msgid "(as owner)"
+msgstr "(som eier)"
+
+#: bin/fix_url.py:19
+msgid ""
+"Reset a list's web_page_url attribute to the default setting.\n"
+"\n"
+"This script is intended to be run as a bin/withlist script, i.e.\n"
+"\n"
+"% bin/withlist -l -r fix_url listname [options]\n"
+"\n"
+"Options:\n"
+" -u urlhost\n"
+" --urlhost=urlhost\n"
+" Look up urlhost in the virtual host table and set the web_page_url "
+"and\n"
+" host_name attributes of the list to the values found. This\n"
+" essentially moves the list from one virtual domain to another.\n"
+"\n"
+" Without this option, the default web_page_url and host_name values "
+"are\n"
+" used.\n"
+"\n"
+" -v / --verbose\n"
+" Print what the script is doing.\n"
+"\n"
+"If run standalone, it prints this help text and exits.\n"
+msgstr ""
+"Resetter web_page_url attributten til en liste til standardinnstillingen.\n"
+"\n"
+"Dette scriptet er ment for å kjøres som et bin/withlist script, f.eks.\n"
+"\n"
+"% bin/withlist -l -r fix_url listenavn [valg]\n"
+"\n"
+"Valg:\n"
+" -u urlhost\n"
+" --urlhost=urlhost\n"
+" Slår opp urlhost i virtual host tabellen og setter web_page_url og\n"
+" host_name attributtene for listen etter de verdier som blir funnet.\n"
+" Dette flytter en liste fra et virtuelt domene til et annet.\n"
+" Uten dette valget benyttes standardverdier.\n"
+"\n"
+" -v / --verbose\n"
+" Viser hva scriptet gjør.\n"
+"\n"
+"Kjøres scriptet for seg selv, vises denne hjelpeteksten.\n"
+
+#: bin/fix_url.py:80
+msgid "Setting web_page_url to: %(web_page_url)s"
+msgstr "Setter web_page_url til: %(web_page_url)s"
+
+#: bin/fix_url.py:83
+msgid "Setting host_name to: %(mailhost)s"
+msgstr "Setter host_name til: %(mailhost)s"
+
+#: bin/genaliases:19
+msgid ""
+"Regenerate Postfix's data/aliases and data/aliases.db files from scratch.\n"
+"\n"
+"Usage:\n"
+"\n"
+" genaliases [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+msgstr ""
+"Genererer Postfix filene data/aliases og data/aliases.db på nytt.\n"
+"\n"
+"Brukes slik:\n"
+"\n"
+" genaliases [valg]\n"
+"\n"
+"Valg:\n"
+"\n"
+" --help / -h\n"
+" Viser denne hjelpeteksten.\n"
+
+#: bin/inject:19
+msgid ""
+"Inject a message from a file into Mailman's incoming queue.\n"
+"\n"
+"Usage: inject [options] [filename]\n"
+"\n"
+"Options:\n"
+"\n"
+" -h / --help\n"
+" Print this text and exit.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" The name of the list to inject this message to. Required.\n"
+"\n"
+" -q queuename\n"
+" --queue=queuename\n"
+" The name of the queue to inject the message to. The queuename must "
+"be\n"
+" one of the directories inside the qfiles directory. If omitted, "
+"the\n"
+" incoming queue is used.\n"
+"\n"
+"filename is the name of the plaintext message file to inject. If omitted,\n"
+"standard input is used.\n"
+msgstr ""
+"Sette inn en epost i en Mailman kø.\n"
+"\n"
+"Brukes slik: inject [valg] [filnavn]\n"
+"\n"
+"Valg:\n"
+"\n"
+" -l listenavn\n"
+" --listname=listenavn\n"
+" Navn på listen som skal motta meldingen. MÅ spesifiseres.\n"
+"\n"
+" -q kønavn\n"
+" --queue=kønavn\n"
+" Navn på køen som meldingen skal settes inn i. Kønavnet må tilsvare\n"
+" navn på en av katalogene i qfiles katalogen. 'incoming' køen brukes\n"
+" hvis ingen kø blir angitt.\n"
+"\n"
+"filnavn er navnet på filen som inneholder en epost i ren tekst som skal "
+"settes\n"
+"inn i en kø. Hvis ingen fil angis, benyttes standard input.\n"
+
+#: bin/inject:83
+msgid "Bad queue directory: %(qdir)s"
+msgstr "Ugyldig kø-katalog: %(qdir)s"
+
+#: bin/inject:88
+msgid "A list name is required"
+msgstr "Navn på liste må angis"
+
+#: bin/list_admins:19
+msgid ""
+"List all the owners of a mailing list.\n"
+"\n"
+"Usage: %(program)s [options] listname ...\n"
+"\n"
+"Where:\n"
+"\n"
+" --all-vhost=vhost\n"
+" -v=vhost\n"
+" List the owners of all the mailing lists for the given virtual "
+"host.\n"
+"\n"
+" --all\n"
+" -a\n"
+" List the owners of all the mailing lists on this system.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+"`listname' is the name of the mailing list to print the owners of. You can\n"
+"have more than one named list on the command line.\n"
+msgstr ""
+"Viser hvem som er eiere (owners) av en epostliste.\n"
+"\n"
+"Brukes slik: %(program)s [valg] listenavn ...\n"
+"\n"
+"Valg:\n"
+"\n"
+" --all-vhost=vhost\n"
+" -v=vhost\n"
+" Viser alle eiere av epostlister på den gitte virtuelle host.\n"
+"\n"
+" --all\n"
+" -a\n"
+" Viser alle eier av alle epostlister på systemet.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Viser denne hjelpeteksten.\n"
+"\n"
+"'listenavn' er navn på en epostliste som du vil se eierne på. Du kan angi\n"
+"navn på flere epostlister.\n"
+
+#: bin/list_admins:96
+msgid "List: %(listname)s, \tOwners: %(owners)s"
+msgstr "Liste: %(listname)s, \tEiere: %(owners)s"
+
+#: bin/list_lists:19
+msgid ""
+"List all mailing lists.\n"
+"\n"
+"Usage: %(program)s [options]\n"
+"\n"
+"Where:\n"
+"\n"
+" -a / --advertised\n"
+" List only those mailing lists that are publically advertised\n"
+"\n"
+" --virtual-host-overview=domain\n"
+" -V domain\n"
+" List only those mailing lists that are homed to the given virtual\n"
+" domain. This only works if the VIRTUAL_HOST_OVERVIEW variable is\n"
+" set.\n"
+"\n"
+" -b / --bare\n"
+" Displays only the list name, with no description.\n"
+"\n"
+" -h / --help\n"
+" Print this text and exit.\n"
+"\n"
+msgstr ""
+"Lister ut navn på alle epostlister.\n"
+"\n"
+"Brukes slik: %(program)s [valg]\n"
+"\n"
+"Valg:\n"
+" --advertised\n"
+" -a\n"
+" Viser bare de epostlistene som er offentlig tilgjengelige.\n"
+"\n"
+" --virtual-host-overview=domene\n"
+" -V domene\n"
+" Viser bare epostlister på det angitte domenet. Dette valget kan kun\n"
+" benyttes dersom VIRTUAL_HOST_OVERVIEW variabelen er satt.\n"
+"\n"
+" -b / --bare\n"
+" Viser kun listenavnet, uten beskrivelse.\n"
+"\n"
+" -h / --help\n"
+" Viser denne hjelpeteksten.\n"
+"\n"
+
+#: bin/list_lists:105
+msgid "No matching mailing lists found"
+msgstr "Fant ingen treff på denne epostlisten"
+
+#: bin/list_lists:109
+msgid "matching mailing lists found:"
+msgstr "treff på denne epostlisten:"
+
+#: bin/list_members:19
+msgid ""
+"List all the members of a mailing list.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] listname\n"
+"\n"
+"Where:\n"
+"\n"
+" --output file\n"
+" -o file\n"
+" Write output to specified file instead of standard out.\n"
+"\n"
+" --regular / -r\n"
+" Print just the regular (non-digest) members.\n"
+"\n"
+" --digest[=kind] / -d [kind]\n"
+" Print just the digest members. Optional argument can be \"mime\" "
+"or\n"
+" \"plain\" which prints just the digest members receiving that kind "
+"of\n"
+" digest.\n"
+"\n"
+" --nomail[=why] / -n [why]\n"
+" Print the members that have delivery disabled. Optional argument "
+"can\n"
+" be \"byadmin\", \"byuser\", \"bybounce\", or \"unknown\" which "
+"prints just the\n"
+" users who have delivery disabled for that reason. It can also be\n"
+" \"enabled\" which prints just those member for whom delivery is\n"
+" enabled.\n"
+"\n"
+" --fullnames / -f\n"
+" Include the full names in the output.\n"
+"\n"
+" --preserve\n"
+" -p\n"
+" Output member addresses case preserved the way they were added to "
+"the\n"
+" list. Otherwise, addresses are printed in all lowercase.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname is the name of the mailing list to use.\n"
+"\n"
+"Note that if neither -r or -d is supplied, both regular members are printed\n"
+"first, followed by digest members, but no indication is given as to address\n"
+"status.\n"
+msgstr ""
+"Viser alle medlemmer av en epostliste.\n"
+"\n"
+"Brukes slik: %(PROGRAM)s [valg] listenavn\n"
+"\n"
+"Der:\n"
+"\n"
+" --output filnavn\n"
+" -o filnavn\n"
+" Skriver til en fil istedenfor standard output.\n"
+"\n"
+" --regular / -r\n"
+" Viser kun medlemmer som benytter normal-modus.\n"
+"\n"
+" --digest[=type] / -d [type]\n"
+" Viser kun medlemmer som benytter sammendrag-modus.\n"
+" Den valgfrie parameteren kan enten være \"mime\" eller \"plain\",\n"
+" som fører til at kun medlemmer med den angitte typen samle-epost\n"
+" vil vises.\n"
+"\n"
+" --nomail[=hvorfor] / -n [hvorfor]\n"
+" Viser alle medlemmer som har stoppet mottak av epost.\n"
+" Den valgfrie parameteren angir årsak til at mottak er stoppet, og\n"
+" kan være \"byadmin\", \"byuser\", \"bybounce\", eller \"unknown\".\n"
+" Den kan også være \"enabled\", da vil alle medlemmer som IKKE har\n"
+" stoppet mottak av epost vises.\n"
+"\n"
+" --fullnames / -f\n"
+" Viser også medlemmenes fulle navn.\n"
+"\n"
+" --preserve\n"
+" -p\n"
+" Viser medlemmenes epostadresse slik de ble påmeldt listen.\n"
+" Benyttes ikke dette valget, vises alle epostadressene med små\n"
+" bokstaver.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Viser denne hjelpeteksten.\n"
+"\n"
+" listenavn er navnet på epostlisten.\n"
+"\n"
+"Merk at hvis hverken -r eller -d benyttes, vil medlemmer i normal-modus\n"
+"vises først, deretter medlemmer i sammendrag-modus, men ingen status vises.\n"
+
+#: bin/list_members:150
+msgid "Bad --nomail option: %(why)s"
+msgstr "Ugyldig --nomail parameter: %(why)s"
+
+#: bin/list_members:161
+msgid "Bad --digest option: %(kind)s"
+msgstr "Ugyldig --digest parameter: %(kind)s"
+
+#: bin/list_members:179
+msgid "Could not open file for writing:"
+msgstr "Kan ikke åpne filen for skriving:"
+
+#: bin/list_owners:19
+msgid ""
+"List the owners of a mailing list, or all mailing lists.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname ...]\n"
+"Options:\n"
+"\n"
+" -w / --with-listnames\n"
+" Group the owners by list names and include the list names in the\n"
+" output. Otherwise, the owners will be sorted and uniquified based "
+"on\n"
+" the email address.\n"
+"\n"
+" -m / --moderators\n"
+" Include the list moderators in the output.\n"
+"\n"
+" -h / --help\n"
+" Print this help message and exit.\n"
+"\n"
+" listname\n"
+" Print the owners of the specified lists. More than one can appear\n"
+" after the options. If there are no listnames provided, the owners "
+"of\n"
+" all the lists will be displayed.\n"
+msgstr ""
+"Viser hvem som er eier av en epostliste, eller av alle listene.\n"
+"\n"
+"Brukes slik: %(PROGRAM)s [valg] [listenavn ...]\n"
+"\n"
+"Valg:\n"
+"\n"
+" -w / --with-listnames\n"
+" Grupperer eierne etter listenavn, og viser listenavnene. Uten dette\n"
+" valget sorteres eierne etter epostadressen deres.\n"
+"\n"
+" -m / --moderators\n"
+" Viser også listemoderatorene.\n"
+"\n"
+" -h / --help\n"
+" Viser denne hjelpeteksten.\n"
+"\n"
+" listenavn\n"
+" Vis eieren(e) av de angitte lister. Mer en enn liste kan altså\n"
+" spesifiseres. Dersom ingen liste er angitt, vil eiere av alle "
+"lister\n"
+" vises.\n"
+
+#: bin/mailmanctl:19
+msgid ""
+"Primary start-up and shutdown script for Mailman's qrunner daemon.\n"
+"\n"
+"This script starts, stops, and restarts the main Mailman queue runners, "
+"making\n"
+"sure that the various long-running qrunners are still alive and kicking. "
+"It\n"
+"does this by forking and exec'ing the qrunners and waiting on their pids.\n"
+"When it detects a subprocess has exited, it may restart it.\n"
+"\n"
+"The qrunners respond to SIGINT, SIGTERM, and SIGHUP. SIGINT and SIGTERM "
+"both\n"
+"cause the qrunners to exit cleanly, but the master will only restart "
+"qrunners\n"
+"that have exited due to a SIGINT. SIGHUP causes the master and the "
+"qrunners\n"
+"to close their log files, and reopen then upon the next printed message.\n"
+"\n"
+"The master also responds to SIGINT, SIGTERM, and SIGHUP, which it simply\n"
+"passes on to the qrunners (note that the master will close and reopen its "
+"own\n"
+"log files on receipt of a SIGHUP). The master also leaves its own process "
+"id\n"
+"in the file data/master-qrunner.pid but you normally don't need to use this\n"
+"pid directly. The `start', `stop', `restart', and `reopen' commands handle\n"
+"everything for you.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [ start | stop | restart | reopen ]\n"
+"\n"
+"Options:\n"
+"\n"
+" -n/--no-restart\n"
+" Don't restart the qrunners when they exit because of an error or a\n"
+" SIGINT. They are never restarted if they exit in response to a\n"
+" SIGTERM. Use this only for debugging. Only useful if the `start'\n"
+" command is given.\n"
+"\n"
+" -u/--run-as-user\n"
+" Normally, this script will refuse to run if the user id and group "
+"id\n"
+" are not set to the `mailman' user and group (as defined when you\n"
+" configured Mailman). If run as root, this script will change to "
+"this\n"
+" user and group before the check is made.\n"
+"\n"
+" This can be inconvenient for testing and debugging purposes, so the -"
+"u\n"
+" flag means that the step that sets and checks the uid/gid is "
+"skipped,\n"
+" and the program is run as the current user and group. This flag is\n"
+" not recommended for normal production environments.\n"
+"\n"
+" Note though, that if you run with -u and are not in the mailman "
+"group,\n"
+" you may have permission problems, such as begin unable to delete a\n"
+" list's archives through the web. Tough luck!\n"
+"\n"
+" -s/--stale-lock-cleanup\n"
+" If mailmanctl finds an existing master lock, it will normally exit\n"
+" with an error message. With this option, mailmanctl will perform "
+"an\n"
+" extra level of checking. If a process matching the host/pid "
+"described\n"
+" in the lock file is running, mailmanctl will still exit, but if no\n"
+" matching process is found, mailmanctl will remove the apparently "
+"stale\n"
+" lock and make another attempt to claim the master lock.\n"
+"\n"
+" -q/--quiet\n"
+" Don't print status messages. Error messages are still printed to\n"
+" standard error.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+"\n"
+"Commands:\n"
+"\n"
+" start - Start the master daemon and all qrunners. Prints a message "
+"and\n"
+" exits if the master daemon is already running.\n"
+"\n"
+" stop - Stops the master daemon and all qrunners. After stopping, no\n"
+" more messages will be processed.\n"
+"\n"
+" restart - Restarts the qrunners, but not the master process. Use this\n"
+" whenever you upgrade or update Mailman so that the qrunners "
+"will\n"
+" use the newly installed code.\n"
+"\n"
+" reopen - This will close all log files, causing them to be re-opened "
+"the\n"
+" next time a message is written to them\n"
+msgstr ""
+"Primært start- og stoppscript for Mailmans qrunner daemon.\n"
+"\n"
+"Dette scriptet starter, stopper, og restarter Mailmans qrunnere, og sørger\n"
+"enkelt og greit for at de ulike qrunner-prosessene er i live og kjører på\n"
+"systemet, ved å starte de nødvendige prosessene, og vente på pid'ene deres.\n"
+"Når det oppdager at en prosess har avsluttet, kan det starte prosessen på\n"
+"nytt. Dette scriptet kan benyttes som et init script.\n"
+"\n"
+"Qrunnerene reagerer på SIGINT, SIGTERM, og SIGHUP. SIGINT og SIGTERM\n"
+"fører til at de avslutter på en normal måte, men master qrunneren restarter\n"
+"bare qrunnere som har avsluttet av å ha fått en SIGINT. SIGHUP fører til\n"
+"at prosessene lukker sine loggfiler, og åpner de på nytt når noe igjen skal\n"
+"logges.\n"
+"\n"
+"Master-qrunneren reagerer også på SIGINT, SIGTERM, og SIGHUP, som den "
+"enkelt\n"
+"og greit sender videre til sine qrunnere (merk at master-qrunneren vil\n"
+"lukke og åpne sine loggfiler dersom den får en SIGHUP).\n"
+"Master qrunneren legger også sin pid i filen data/master-qrunner.pid, men\n"
+"denne pid'en trenger man vanligvis ikke.\n"
+"Med 'start', 'stop', 'restart', og 'reopen' kommandoene kan man gjøre det\n"
+"man har bruk for.\n"
+"\n"
+"Brukes slik: %(PROGRAM)s [valg] [ start | stop | restart | reopen ]\n"
+"\n"
+"Valg:\n"
+"\n"
+" -n / --no-restart\n"
+" Ikke start qrunnere på nytt når de avslutter på grunn av feil eller\n"
+" SIGINT (de startes aldri på nytt dersom avslutter på grunn av en\n"
+" SIGTERM). Brukes kun ved debugging av systemet, og har kun noen\n"
+" virkning når 'start' kommandoen angis.\n"
+"\n"
+" -u / --run-as-user\n"
+" Vanligvis vil dette scriptet nekte å kjøre hvis bruker-id og\n"
+" gruppe-id ikke er satt til bruker og gruppe 'mailman' (eller\n"
+" slik som definert ved konfigurasjon av Mailman). Hvis scriptet\n"
+" kjøres som root, vil scriptet bytte til denne brukeren og gruppen\n"
+" før den kontrollerer bruker og gruppe.\n"
+" Dette kan være upraktisk ved testing og debugging, derfor gjør "
+"dette\n"
+" -u valget slik at denne kontrollen hoppes over, og programmet "
+"kjøres\n"
+" med den bruker og gruppe som kjører scriptet.\n"
+" Dette valget benyttes normalt ikke i vanlige systemer som er i\n"
+" produksjon.\n"
+" Forøvrig er det verdt å merke seg at hvis du benytter -u og ikke er "
+"i\n"
+" mailmangruppen, kan du få problemer med tilgangen til f.eks. å "
+"slette\n"
+" en listes arkiv via web. Uheldig!\n"
+"\n"
+" -s / --stale-lock-cleanup\n"
+" Hvis mailmanctl finner en eksisterende master qrunner låsefil,\n"
+" avslutter den vanligvis med en feilmelding. Med dette valget, vil\n"
+" mailmanctl utføre noen ekstra kontroller. Hvis en prosess som "
+"kjører\n"
+" passer med den host/pid som står i låsefilen, vil mailmanctl "
+"avslutte,\n"
+" men dersom ingen prosess som passer kjører, vil mailmanctl fjerne\n"
+" låsefilen og fortsette å kjøre.\n"
+"\n"
+" -q / --quiet\n"
+" Ikke vis statusmeldinger. Feilmeldinger vil likevel vises på "
+"standard\n"
+" error.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Viser denne hjelpeteksten.\n"
+"\n"
+"Kommandoer:\n"
+"\n"
+" start - Starter master daemon og alle qrunnere. Viser en melding\n"
+" og avbryter hvis master daemon allerede kjører.\n"
+" stop - Stopper master daemon og qrunnere. Etter at disse har\n"
+" stoppet, vil ingen meldinger bli behandlet.\n"
+" restart - Starter qrunneren på nytt, men ikke master prosessen.\n"
+" Bruk denne når oppgraderer eller oppdaterer Mailman, slik at\n"
+" tar i bruk den eventuelle oppgraderte programkoden.\n"
+" reopen - Dette fører til at alle loggfiler lukkes og deretter åpnes på\n"
+" nytt neste gang noe skal skrives til dem.\n"
+
+#: bin/mailmanctl:149
+msgid "PID unreadable in: %(pidfile)s"
+msgstr "Uleselig PID i: %(pidfile)s"
+
+#: bin/mailmanctl:151
+msgid "Is qrunner even running?"
+msgstr "Kjører qrunneren i det hele tatt?"
+
+#: bin/mailmanctl:157
+msgid "No child with pid: %(pid)s"
+msgstr "Ingen child med pid: %(pid)s"
+
+#: bin/mailmanctl:159
+msgid "Stale pid file removed."
+msgstr "Gammel pid fil fjernet."
+
+#: bin/mailmanctl:217
+msgid ""
+"The master qrunner lock could not be acquired because it appears as if "
+"another\n"
+"master qrunner is already running.\n"
+msgstr ""
+"Kunne ikke opprette låsefil for master qrunneren fordi det ser ut til\n"
+"at en annen qrunner allerede kjører.\n"
+
+#: bin/mailmanctl:223
+msgid ""
+"The master qrunner lock could not be acquired. It appears as though there "
+"is\n"
+"a stale master qrunner lock. Try re-running mailmanctl with the -s flag.\n"
+msgstr ""
+"Kunne ikke opprette låsefil for master qrunneren. Det ser ut til at det\n"
+"eksisterer en gammel låsefil. Kjør mailmanctl med \"-s\" valget.\n"
+
+#: bin/mailmanctl:229
+msgid ""
+"The master qrunner lock could not be acquired, because it appears as if "
+"some\n"
+"process on some other host may have acquired it. We can't test for stale\n"
+"locks across host boundaries, so you'll have to do this manually. Or, if "
+"you\n"
+"know the lock is stale, re-run mailmanctl with the -s flag.\n"
+"\n"
+"Lock file: %(LOCKFILE)s\n"
+"Lock host: %(status)s\n"
+"\n"
+"Exiting."
+msgstr ""
+"Kunne ikke opprette låsefil for master qrunneren, fordi det ser ut til at "
+"en\n"
+"allerede eksisterende låsefil er åpnet av en prosess på en annen maskin.\n"
+"Det er ikke mulig for dette programmet å finne ut om denne låsefilen er "
+"gammel\n"
+"eller ikke, så du må undersøke dette manuelt. Hvis du vet at ingen andre\n"
+"prosesser bruker låsefilen, kan du kjøre mailmanctl med \"-s\" valget.\n"
+"\n"
+"Låsefil: %(LOCKFILE)s\n"
+"Maskin: %(status)s\n"
+"\n"
+"Avrbyter."
+
+#: bin/mailmanctl:282
+msgid "Run this program as root or as the %(name)s user, or use -u."
+msgstr "Kjør dette programmet som root eller som %(name)s, eller bruk -u."
+
+#: bin/mailmanctl:313
+msgid "No command given."
+msgstr "Ingen kommando angitt."
+
+#: bin/mailmanctl:316
+msgid "Bad command: %(command)s"
+msgstr "Uygldig kommando: %(command)s"
+
+#: bin/mailmanctl:321
+msgid "Warning! You may encounter permission problems."
+msgstr "Advarsel! Du kan få tilgangsproblemer."
+
+#: bin/mailmanctl:330
+msgid "Shutting down Mailman's master qrunner"
+msgstr "Stopper Mailmans master qrunner."
+
+#: bin/mailmanctl:337
+msgid "Restarting Mailman's master qrunner"
+msgstr "Starter Mailmans master qrunner på nytt."
+
+#: bin/mailmanctl:341
+msgid "Re-opening all log files"
+msgstr "Åpner alle loggfiler på nytt"
+
+#: bin/mailmanctl:375
+msgid "Starting Mailman's master qrunner."
+msgstr "Starter Mailmans master qrunner."
+
+#: bin/mmsitepass:19
+msgid ""
+"Set the site password, prompting from the terminal.\n"
+"\n"
+"The site password can be used in most if not all places that the list\n"
+"administrator's password can be used, which in turn can be used in most "
+"places\n"
+"that a list users password can be used.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [password]\n"
+"\n"
+"Options:\n"
+"\n"
+" -c/--listcreator\n"
+" Set the list creator password instead of the site password. The "
+"list\n"
+" creator is authorized to create and remove lists, but does not have\n"
+" the total power of the site administrator.\n"
+"\n"
+" -h/--help\n"
+" Print this help message and exit.\n"
+"\n"
+"If password is not given on the command line, it will be prompted for.\n"
+msgstr ""
+"Setter det globale Mailman passordet, fra terminalen.\n"
+"\n"
+"Det globale Mailman passordet kan benyttes på de fleste, om ikke alle, "
+"steder\n"
+"der listens administratorpassord kan benyttes, som igjen kan benyttes de\n"
+"fleste steder et medlemspassord kan benyttes.\n"
+"\n"
+"Brukes slik: %(PROGRAM)s [valg] [passord]\n"
+"\n"
+" -c / --listcreator\n"
+" Setter passordet som må benyttes til å opprette lister, istedenfor "
+"å\n"
+" sette det globale passordet. Dette passordet kan benyttes til å\n"
+" opprette eller fjerne lister, men kan ikke benyttes på samme måte "
+"som\n"
+" det globale passordet.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Viser denne hjelpeteksten.\n"
+"\n"
+"Hvis ikke passordet gis på kommandolinjen, vil programmet be passordet "
+"istedet.\n"
+
+#: bin/mmsitepass:73
+msgid "site"
+msgstr "system"
+
+#: bin/mmsitepass:80
+msgid "list creator"
+msgstr "person som listen ble opprettet av"
+
+#: bin/mmsitepass:86
+msgid "New %(pwdesc)s password: "
+msgstr "Nytt %(pwdesc)s passord: "
+
+#: bin/mmsitepass:87
+msgid "Again to confirm password: "
+msgstr "Skriv passordet en gang til: "
+
+#: bin/mmsitepass:89
+msgid "Passwords do not match; no changes made."
+msgstr "Passordene er ikke like; ingen endring utført."
+
+#: bin/mmsitepass:92
+msgid "Interrupted..."
+msgstr "Avbrutt..."
+
+#: bin/mmsitepass:98
+msgid "Password changed."
+msgstr "Passordet er endret."
+
+#: bin/mmsitepass:100
+msgid "Password change failed."
+msgstr "Feil under endring av passord."
+
+#: bin/newlist:19
+msgid ""
+"Create a new, unpopulated mailing list.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname [listadmin-addr [admin-password]]]\n"
+"\n"
+"Options:\n"
+"\n"
+" -l language\n"
+" --language language\n"
+" Make the list's preferred language `language', which must be a two\n"
+" letter language code.\n"
+"\n"
+" -q/--quiet\n"
+" Normally the administrator is notified by email (after a prompt) "
+"that\n"
+" their list has been created. This option suppresses the prompt and\n"
+" notification.\n"
+"\n"
+" -h/--help\n"
+" Print this help text and exit.\n"
+"\n"
+"You can specify as many of the arguments as you want on the command line:\n"
+"you will be prompted for the missing ones.\n"
+"\n"
+"Every Mailman list has two parameters which define the default host name "
+"for\n"
+"outgoing email, and the default URL for all web interfaces. When you\n"
+"configured Mailman, certain defaults were calculated, but if you are "
+"running\n"
+"multiple virtual Mailman sites, then the defaults may not be appropriate "
+"for\n"
+"the list you are creating.\n"
+"\n"
+"You can specify the domain to create your new list in by spelling the "
+"listname\n"
+"like so:\n"
+"\n"
+" mylist@www.mydom.ain\n"
+"\n"
+"where `www.mydom.ain' should be the base hostname for the URL to this "
+"virtual\n"
+"hosts's lists. E.g. with is setting people will view the general list\n"
+"overviews at http://www.mydom.ain/mailman/listinfo. Also, www.mydom.ain\n"
+"should be a key in the VIRTUAL_HOSTS mapping in mm_cfg.py/Defaults.py. It\n"
+"will be looked up to give the email hostname. If this can't be found, then\n"
+"www.mydom.ain will be used for both the web interface and the email\n"
+"interface.\n"
+"\n"
+"If you spell the list name as just `mylist', then the email hostname will "
+"be\n"
+"taken from DEFAULT_EMAIL_HOST and the url will be taken from DEFAULT_URL "
+"(as\n"
+"defined in your Defaults.py file or overridden by settings in mm_cfg.py).\n"
+"\n"
+"Note that listnames are forced to lowercase.\n"
+msgstr ""
+"Opprette en ny epostliste uten medlemmer.\n"
+"\n"
+"Brukes slik: %(PROGRAM)s [valg] [listenavn [admin-adr [admin-passord]]]\n"
+"\n"
+"Valg:\n"
+"\n"
+" -l språk\n"
+" --language språk\n"
+" Setter standardspråket for listen med parameteren 'språk', som må\n"
+" være en landskode på to bokstaver. Se i templates eller messages\n"
+" katalogen for tilgjengelige landskoder.\n"
+"\n"
+" -q / --quiet\n"
+" Normalt vil adminstratoren få melding på epost (etter input fra\n"
+" den som kjører denne kommandoen) om at listen er opprettet.\n"
+" Dette valget gjør at administratoren ikke mottar noen slik melding.\n"
+"\n"
+" -h / --help\n"
+" Viser denne hjelpeteksten.\n"
+"\n"
+"Du kan oppgi så mange parametre du vil på kommandolinjen; de du ikke oppgir\n"
+"vil du bli bedt om å gi inn.\n"
+"\n"
+"Hver Mailman liste har to parametre som bestemmer standard host navn for\n"
+"utgående epost, og standard URL for alle tilhørende websider. Når Mailman\n"
+"ble konfigurert, ble disse standardparametrene automatisk beregnet, men\n"
+"hvis du kjører flere virtuelle Mailman systemer på samme maskin, kan det\n"
+"være standardinnstillingene ikke passer med den epostlisten du oppretter.\n"
+"\n"
+"Du kan oppgi domenet for den nye listen ved å angi listenavnet slik:\n"
+"\n"
+" minliste@www.mittdomene.com\n"
+"\n"
+"der 'www.mittdomene.com' er navnet som skal benyttes i URLer for "
+"epostlisten.\n"
+"I eksemplet over vil URLen til oversikt over lister bli:\n"
+"http://www.mittdomene.com/mailman/listinfo. Navnet som spesifiseres må også\n"
+"eksistere i en VIRTUAL_HOSTS mapping i mm_cfg.py/Default.py. Den mappingen\n"
+"skal fortelle hvilket domene som skal benyttes for epostadresser til\n"
+"listen. Dersom ikke mappingen eksisterer, vil navnet du spesifiserer\n"
+"benyttes både for URLer og for epostadresser.\n"
+"\n"
+"Hvis du staver listenavnet kun som 'minliste', vil \"host_name\" settes til\n"
+"DEFAULT_EMAIL_HOST (fra Mailman konfigurasjonen) og \"web_page_url\" settes "
+"til\n"
+"DEFAULT_URL.\n"
+"\n"
+"Merk at listenavn vil bli omgjort til små bokstaver.\n"
+
+#: bin/newlist:118
+msgid "Unknown language: %(lang)s"
+msgstr "Ukjent språk: %(lang)s"
+
+#: bin/newlist:123
+msgid "Enter the name of the list: "
+msgstr "Oppgi epostlistens navn:"
+
+#: bin/newlist:140
+msgid "Enter the email of the person running the list: "
+msgstr "Oppgi epostadressen til personen som er ansvarlig for listen:"
+
+#: bin/newlist:145
+msgid "Initial %(listname)s password: "
+msgstr "Det første passordet for \"%(listname)s\" er: "
+
+#: bin/newlist:149
+msgid "The list password cannot be empty"
+msgstr "Listen må ha et passord (listens passord kan ikke være blankt)"
+
+#: bin/newlist:190
+msgid "Hit enter to notify %(listname)s owner..."
+msgstr "Trykk [Enter] for å sende melding til eieren av listen %(listname)s..."
+
+#: bin/qrunner:19
+msgid ""
+"Run one or more qrunners, once or repeatedly.\n"
+"\n"
+"Each named runner class is run in round-robin fashion. In other words, the\n"
+"first named runner is run to consume all the files currently in its\n"
+"directory. When that qrunner is done, the next one is run to consume all "
+"the\n"
+"files in /its/ directory, and so on. The number of total iterations can be\n"
+"given on the command line.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" -r runner[:slice:range]\n"
+" --runner=runner[:slice:range]\n"
+" Run the named qrunner, which must be one of the strings returned by\n"
+" the -l option. Optional slice:range if given, is used to assign\n"
+" multiple qrunner processes to a queue. range is the total number "
+"of\n"
+" qrunners for this queue while slice is the number of this qrunner "
+"from\n"
+" [0..range).\n"
+"\n"
+" If using the slice:range form, you better make sure that each "
+"qrunner\n"
+" for the queue is given the same range value. If slice:runner is "
+"not\n"
+" given, then 1:1 is used.\n"
+"\n"
+" Multiple -r options may be given, in which case each qrunner will "
+"run\n"
+" once in round-robin fashion. The special runner `All' is shorthand\n"
+" for a qrunner for each listed by the -l option.\n"
+"\n"
+" --once\n"
+" -o\n"
+" Run each named qrunner exactly once through its main loop. "
+"Otherwise,\n"
+" each qrunner runs indefinitely, until the process receives a "
+"SIGTERM\n"
+" or SIGINT.\n"
+"\n"
+" -l/--list\n"
+" Shows the available qrunner names and exit.\n"
+"\n"
+" -v/--verbose\n"
+" Spit out more debugging information to the logs/qrunner log file.\n"
+"\n"
+" -s/--subproc\n"
+" This should only be used when running qrunner as a subprocess of "
+"the\n"
+" mailmanctl startup script. It changes some of the exit-on-error\n"
+" behavior to work better with that framework.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+"\n"
+"runner is required unless -l or -h is given, and it must be one of the "
+"names\n"
+"displayed by the -l switch.\n"
+msgstr ""
+
+#: bin/qrunner:176
+msgid "%(name)s runs the %(runnername)s qrunner"
+msgstr "%(name)s starter %(runnername)s qrunneren"
+
+#: bin/qrunner:177
+msgid "All runs all the above qrunners"
+msgstr "\"All\" kjører alle qrunnerene ovenfor"
+
+#: bin/qrunner:213
+msgid "No runner name given."
+msgstr "Ingen runner navn ble angitt."
+
+#: bin/remove_members:19
+msgid ""
+"Remove members from a list.\n"
+"\n"
+"Usage:\n"
+" remove_members [options] [listname] [addr1 ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" --file=file\n"
+" -f file\n"
+" Remove member addresses found in the given file. If file is\n"
+" `-', read stdin.\n"
+"\n"
+" --all\n"
+" -a\n"
+" Remove all members of the mailing list.\n"
+" (mutually exclusive with --fromall)\n"
+"\n"
+" --fromall\n"
+" Removes the given addresses from all the lists on this system\n"
+" regardless of virtual domains if you have any. This option cannot "
+"be\n"
+" used -a/--all. Also, you should not specify a listname when using "
+"this\n"
+" option.\n"
+"\n"
+" --nouserack\n"
+" -n\n"
+" Don't send the user acknowledgements.\n"
+"\n"
+" --noadminack\n"
+" -N\n"
+" Don't send the admin acknowledgements.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname is the name of the mailing list to use.\n"
+"\n"
+" addr1 ... are additional addresses to remove.\n"
+"\n"
+msgstr ""
+"Fjerner medlemmer fra en liste.\n"
+"\n"
+"Brukes slik: remove_members [valg] [listenavn] [addr1 ...]\n"
+"\n"
+"Valg:\n"
+"\n"
+" --file=filnavn\n"
+" -f filnavn\n"
+" Fjerne alle medlemmer som har epostadressene i den angitte filen.\n"
+" Hvis filnavnet er '-', leses epostadressene fra standard input.\n"
+"\n"
+" --all\n"
+" -a\n"
+" Fjerner alle medlemmer av epostlisten.\n"
+" (Kan ikke benyttes med --fromall)\n"
+"\n"
+" --fromall\n"
+" Fjerner de angitte epostadresser fra alle epostlister, uansett\n"
+" domene hvis flere domener. Dette valget kan ikke benyttes sammen\n"
+" med -a/--all. Du bør også ikke angi noe listenavn dersom du\n"
+" benytter dette valget.\n"
+"\n"
+" --nouserack\n"
+" -n\n"
+" Ikke send beskjed til medlemmet/medlemmene som fjernes.\n"
+"\n"
+" --noadminack\n"
+" -N\n"
+" Ikke send beskjed om utmelding til administratoren(e).\n"
+"\n"
+" --help\n"
+" -h\n"
+" Viser denne hjelpeteksten.\n"
+"\n"
+" listenavn er navnet på listen det skal fjernes fra.\n"
+"\n"
+" addr1 ... er ytterligere adresser som skal fjernes.\n"
+"\n"
+
+#: bin/remove_members:147
+msgid "Could not open file for reading: %(filename)s."
+msgstr "Kunne ikke åpne filen \"%(filename)s\" for lesing."
+
+#: bin/remove_members:154
+msgid "Error opening list %(listname)s... skipping."
+msgstr "Hopper over listen \"%(listname)s\" grunnet feil under åpning."
+
+#: bin/remove_members:164
+msgid "No such member: %(addr)s"
+msgstr "Medlemmet finnes ikke: %(addr)s."
+
+#: bin/remove_members:171
+msgid "User `%(addr)s' removed from list: %(listname)s."
+msgstr "%(addr)s er nå fjernet fra listen %(listname)s."
+
+#: bin/rmlist:19
+msgid ""
+"Remove the components of a mailing list with impunity - beware!\n"
+"\n"
+"This removes (almost) all traces of a mailing list. By default, the lists\n"
+"archives are not removed, which is very handy for retiring old lists.\n"
+"\n"
+"Usage:\n"
+" rmlist [-a] [-h] listname\n"
+"\n"
+"Where:\n"
+" --archives\n"
+" -a\n"
+" Remove the list's archives too, or if the list has already been\n"
+" deleted, remove any residual archives.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+msgstr ""
+"Fjerner alle komponenter av en epostliste fra systemet!\n"
+"\n"
+"Denne kommandoen fjerner (nesten) alle spor av en epostliste. Uten -a "
+"valget\n"
+"fjernes ikke arkivet for listen, som kan være ganske nyttig for å avvikle\n"
+"gamle lister.\n"
+"\n"
+"Brukes slik: rmlist [-a] [-h] listenavn\n"
+"\n"
+"Der:\n"
+" --archives\n"
+" -a\n"
+" Fjern (slett) også listens arkiv, eller dersom listen allerede er\n"
+" slettet, fjern arkivene som evt. ligger igjen.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Viser denne hjelpeteksten.\n"
+"\n"
+
+#: bin/rmlist:66 bin/rmlist:69
+msgid "Removing %(msg)s"
+msgstr "Fjerner %(msg)s"
+
+#: bin/rmlist:72
+msgid "%(listname)s %(msg)s not found as %(dir)s"
+msgstr "Fant ikke %(listname)s %(msg)s som %(dir)s"
+
+#: bin/rmlist:96
+msgid "No such list (or list already deleted): %(listname)s"
+msgstr "Listen finnes ikke (eller er allerede slettet): %(listname)s"
+
+#: bin/rmlist:98
+msgid "No such list: %(listname)s. Removing its residual archives."
+msgstr "Listen finnes ikke: %(listname)s. Fjerner arkivet som ligger igjen."
+
+#: bin/rmlist:102
+msgid "Not removing archives. Reinvoke with -a to remove them."
+msgstr ""
+"Fjerner ikke arkivet. Kjør kommandoen på nytt med parameteren \"-a\" for\n"
+"å fjerne arkivet."
+
+#: bin/rmlist:116
+msgid "list info"
+msgstr "listeinformasjon"
+
+#: bin/rmlist:122 bin/rmlist:124
+msgid "private archives"
+msgstr "private arkiv"
+
+#: bin/rmlist:126 bin/rmlist:128
+msgid "public archives"
+msgstr "offentlige arkiv"
+
+#: bin/sync_members:19
+msgid ""
+"Synchronize a mailing list's membership with a flat file.\n"
+"\n"
+"This script is useful if you have a Mailman mailing list and a sendmail\n"
+":include: style list of addresses (also as is used in Majordomo). For "
+"every\n"
+"address in the file that does not appear in the mailing list, the address "
+"is\n"
+"added. For every address in the mailing list that does not appear in the\n"
+"file, the address is removed. Other options control what happens when an\n"
+"address is added or removed.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] -f file listname\n"
+"\n"
+"Where `options' are:\n"
+"\n"
+" --no-change\n"
+" -n\n"
+" Don't actually make the changes. Instead, print out what would be\n"
+" done to the list.\n"
+"\n"
+" --welcome-msg[=<yes|no>]\n"
+" -w[=<yes|no>]\n"
+" Sets whether or not to send the newly added members a welcome\n"
+" message, overriding whatever the list's `send_welcome_msg' setting\n"
+" is. With -w=yes or -w, the welcome message is sent. With -w=no, "
+"no\n"
+" message is sent.\n"
+"\n"
+" --goodbye-msg[=<yes|no>]\n"
+" -g[=<yes|no>]\n"
+" Sets whether or not to send the goodbye message to removed members,\n"
+" overriding whatever the list's `send_goodbye_msg' setting is. With\n"
+" -g=yes or -g, the goodbye message is sent. With -g=no, no message "
+"is\n"
+" sent.\n"
+"\n"
+" --digest[=<yes|no>]\n"
+" -d[=<yes|no>]\n"
+" Selects whether to make newly added members receive messages in\n"
+" digests. With -d=yes or -d, they become digest members. With -"
+"d=no\n"
+" (or if no -d option given) they are added as regular members.\n"
+"\n"
+" --notifyadmin[=<yes|no>]\n"
+" -a[=<yes|no>]\n"
+" Specifies whether the admin should be notified for each "
+"subscription\n"
+" or unsubscription. If you're adding a lot of addresses, you\n"
+" definitely want to turn this off! With -a=yes or -a, the admin is\n"
+" notified. With -a=no, the admin is not notified. With no -a "
+"option,\n"
+" the default for the list is used.\n"
+"\n"
+" --file <filename | ->\n"
+" -f <filename | ->\n"
+" This option is required. It specifies the flat file to synchronize\n"
+" against. Email addresses must appear one per line. If filename is\n"
+" `-' then stdin is used.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this message.\n"
+"\n"
+" listname\n"
+" Required. This specifies the list to synchronize.\n"
+msgstr ""
+"Synkroniserer en epostlistes medlemmer med en fil.\n"
+"\n"
+"Dette scriptet er nyttig hvis du har en Mailman epostliste og en sendmail\n"
+":include: type liste over adresser (som også brukes i Majordomo). Hver\n"
+"epostadresse i filen som ikke er medlem av epostlisten, vil bli meldt på\n"
+"listen. Hver adresse i epostlisten som ikke eksisterer i filen, vil bli\n"
+"fjernet fra listen. Hva som skal skje når medlemmer meldes av eller på\n"
+"på denne måten, bestemmes av valgene nedenfor.\n"
+"\n"
+"Brukes slik: %(PROGRAM)s [valg] -f filnavn listenavn\n"
+"\n"
+"Valg:\n"
+"\n"
+" --no-change\n"
+" -n\n"
+" Foreta ingen endringer, men vis hva som ville blitt gjort.\n"
+"\n"
+" --welcome-msg[=<yes|no>]\n"
+" -w[=<yes|no>]\n"
+" Bestemmer om nye medlemmer skal motta velkomstmelding eller ikke.\n"
+" Dette valget overstyrer listens 'send_welcome_msg' innstilling.\n"
+" -w=yes eller -w fører til at en velkomstmelding sendes, -w=no\n"
+" fører til at det ikke sendes noe velkomstmelding.\n"
+"\n"
+" --goodbye-msg[=<yes|no>]\n"
+" -g[=<yes|no>]\n"
+" Bestemmer om medlemmer som meldes av listen skal motta en avskjeds-\n"
+" melding eller ikke. Dette valget overstyrer listens "
+"'send_goodbye_msg'\n"
+" instilling. -g=yes eller -g fører til at en avskjedsmelding sendes,\n"
+" -g=no fører til at det ikke sendes noe avskjedsmelding.\n"
+"\n"
+" --digest[=<yes|no>]\n"
+" -d[=<yes|no>]\n"
+" Bestemmer om nye medlemmer skal benytte sammendrag-modus eller "
+"ikke.\n"
+" Med -d=yes eller -d, blir de satt i sammendrag-modus. Med -d=no\n"
+" (eller hvis ikke -d benyttes) blir de satt i normal-modus.\n"
+"\n"
+" --notifyadmin[=<yes|no>]\n"
+" --a[=<yes|no>]\n"
+" Bestemmer om administratoren skal få beskjed om hvem som meldes på\n"
+" og hvem som meldes av. Hvis du legger inn mange nye adresser, vil\n"
+" du nok helt sikkert skru denne av! Med -a=yes eller -a, vil\n"
+" admin få beskjed. Med -a=no, vil admin ikke få beskjed. Dersom -a\n"
+" ikke benyttes, vil listens innstilling bestemme om admin skal få\n"
+" beskjed eller ikke.\n"
+"\n"
+" --file <filnavn | ->\n"
+" -f <filnavn | ->\n"
+" Dette valget må benyttes. Det spesifiserer navnet på filen som\n"
+" inneholder epostadressene som skal synkroniseres med listen.\n"
+" Hvis filnavnet er '-', benyttes standard input.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Viser denne hjelpeteksten.\n"
+"\n"
+" listenavn\n"
+" Må benyttes. Angir navnet på listen som skal synkroniseres.\n"
+
+#: bin/sync_members:115
+msgid "Bad choice: %(yesno)s"
+msgstr "Ugyldig valg: %(yesno)s"
+
+#: bin/sync_members:138
+msgid "Dry run mode"
+msgstr "Utfører ingen endringer."
+
+#: bin/sync_members:159
+msgid "Only one -f switch allowed"
+msgstr "Bare en \"-f\" parameter kan brukes"
+
+#: bin/sync_members:163
+msgid "No argument to -f given"
+msgstr "\"-f\" parameteren mangler verdi"
+
+#: bin/sync_members:172
+msgid "Illegal option: %(opt)s"
+msgstr "Ugyldig parameter: %(opt)s"
+
+#: bin/sync_members:178
+msgid "No listname given"
+msgstr "Ingen liste angitt"
+
+#: bin/sync_members:182
+msgid "Must have a listname and a filename"
+msgstr "Må ha et listenavn og et filnavn"
+
+#: bin/sync_members:191
+msgid "Cannot read address file: %(filename)s: %(msg)s"
+msgstr "Kan ikke lese adressefil: %(filename)s: %(msg)s"
+
+#: bin/sync_members:203
+msgid "Ignore : %(addr)30s"
+msgstr "Hopper over : %(addr)30s"
+
+#: bin/sync_members:212
+msgid "Invalid : %(addr)30s"
+msgstr "Ugyldig : %(addr)30s"
+
+#: bin/sync_members:215
+msgid "You must fix the preceding invalid addresses first."
+msgstr "Du må fixe de ugyldige adressene først."
+
+#: bin/sync_members:259
+msgid "Added : %(s)s"
+msgstr "La inn : %(s)s"
+
+#: bin/sync_members:278
+msgid "Removed: %(s)s"
+msgstr "Fjernet: %(s)s"
+
+#: bin/transcheck:18
+msgid ""
+"\n"
+"Check a given Mailman translation, making sure that variables and\n"
+"tags referenced in translation are the same variables and tags in\n"
+"the original templates and catalog.\n"
+"\n"
+"Usage:\n"
+"\n"
+"cd $MAILMAN_DIR\n"
+"%(program)s [-q] <lang>\n"
+"\n"
+"Where <lang> is your country code (e.g. 'it' for Italy) and -q is\n"
+"to ask for a brief summary.\n"
+msgstr ""
+
+#: bin/transcheck:57
+msgid "check a translation comparing with the original string"
+msgstr ""
+
+#: bin/transcheck:64
+msgid "scan a string from the original file"
+msgstr ""
+
+#: bin/transcheck:72
+msgid "scan a translated string"
+msgstr ""
+
+#: bin/transcheck:83
+msgid "check for differences between checked in and checked out"
+msgstr ""
+
+#: bin/transcheck:116
+msgid "parse a .po file extracting msgids and msgstrs"
+msgstr ""
+
+#: bin/transcheck:135
+msgid ""
+"States table for the finite-states-machine parser:\n"
+" 0 idle\n"
+" 1 filename-or-comment\n"
+" 2 msgid\n"
+" 3 msgstr\n"
+" 4 end\n"
+" "
+msgstr ""
+
+#: bin/transcheck:272
+msgid ""
+"check a translated template against the original one\n"
+" search also <MM-*> tags if html is not zero"
+msgstr ""
+
+#: bin/transcheck:319
+msgid "scan the po file comparing msgids with msgstrs"
+msgstr ""
+
+#: bin/unshunt:19
+msgid ""
+"Move a message from the shunt queue to the original queue.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [directory]\n"
+"\n"
+"Where:\n"
+"\n"
+" -h / --help\n"
+" Print help and exit.\n"
+"\n"
+"Optional `directory' specifies a directory to dequeue from other than\n"
+"qfiles/shunt.\n"
+msgstr ""
+"Flytte en melding fra shunt køen til den opprinnelige køen.\n"
+"\n"
+"Brukes slik: %(PROGRAM)s [valg] [katalog]\n"
+"\n"
+"Valg:\n"
+"\n"
+" -h / --help\n"
+" Viser denne hjelpeteksten.\n"
+"\n"
+"Den valgfrie \"katalog\" parameteren kan benyttes hvis du ønsker å flytte\n"
+"meldinger fra en annen katalog enn qfiles/shunt.\n"
+
+#: bin/unshunt:81
+msgid ""
+"Cannot unshunt message %(filebase)s, skipping:\n"
+"%(e)s"
+msgstr ""
+
+#: bin/update:19
+msgid ""
+"Perform all necessary upgrades.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -f/--force\n"
+" Force running the upgrade procedures. Normally, if the version "
+"number\n"
+" of the installed Mailman matches the current version number (or a\n"
+" `downgrade' is detected), nothing will be done.\n"
+"\n"
+" -h/--help\n"
+" Print this text and exit.\n"
+"\n"
+"Use this script to help you update to the latest release of Mailman from\n"
+"some previous version. It knows about versions back to 1.0b4 (?).\n"
+msgstr ""
+"Utfører all nødvendig oppgradering.\n"
+"\n"
+"Brukes slik: %(PROGRAM)s [valg]\n"
+"\n"
+"Valg:\n"
+" -f / --force\n"
+" Vanligvis gjøres ingenting hvis den installerte Mailman versjonen "
+"er\n"
+" lik den nye versjonene (eller en nedgradering prøves). Med dette\n"
+" valget vil oppgradering kjøres uansett versjonsnumre.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Viser denne hjelpeteksten.\n"
+"\n"
+"Bruk dette scriptet til å hjelpe deg å oppgradere Mailman fra tidligere\n"
+"versjoner til ny versjon. Scriptet kjenner til versjoner helt tilbake til\n"
+"1.0b4 (?).\n"
+
+#: bin/update:102
+msgid "Fixing language templates: %(listname)s"
+msgstr "Oppdaterer språkfiler: %(listname)s"
+
+#: bin/update:191 bin/update:466
+msgid "WARNING: could not acquire lock for list: %(listname)s"
+msgstr "ADVARSEL: kunne ikke låse listen: %(listname)s"
+
+#: bin/update:210
+msgid "Resetting %(n)s BYBOUNCEs disabled addrs with no bounce info"
+msgstr ""
+"Resetter %(n)s adresser som ble stoppet grunnet returmeldinger, men som ikke "
+"har noe returmeldinginformasjon"
+
+#: bin/update:216
+msgid "Updating the held requests database."
+msgstr "Oppdaterer databasen over tilbakeholdte meldinger."
+
+#: bin/update:238
+msgid ""
+"For some reason, %(mbox_dir)s exists as a file. This won't work with\n"
+"b6, so I'm renaming it to %(mbox_dir)s.tmp and proceeding."
+msgstr ""
+"Av en eller annen grunn, eksisterer %(mbox_dir)s som en fil. Dette vil ikke\n"
+"virke i b6, så jeg endrer navnet til %(mbox_dir)s.tmp og fortsetter."
+
+#: bin/update:250
+msgid ""
+"\n"
+"%(listname)s has both public and private mbox archives. Since this list\n"
+"currently uses private archiving, I'm installing the private mbox archive\n"
+"-- %(o_pri_mbox_file)s -- as the active archive, and renaming\n"
+" %(o_pub_mbox_file)s\n"
+"to\n"
+" %(o_pub_mbox_file)s.preb6\n"
+"\n"
+"You can integrate that into the archives if you want by using the 'arch'\n"
+"script.\n"
+msgstr ""
+"\n"
+"%(listname)s har både offentlige og private mbox arkiver. Siden denne "
+"listen\n"
+"bare benytter private arkiv, installerer jeg det private mbox arkivet\n"
+"-- %(o_pri_mbox_file)s -- som det aktive arkivet, og endrer navnet\n"
+" %(o_pub_mbox_file)s\n"
+"til\n"
+" %(o_pub_mbox_file)s.preb6\n"
+"\n"
+"Hvis du vil kan du integrere dette inn i arkivet ved å bruke 'arch' "
+"skriptet.\n"
+
+#: bin/update:265
+msgid ""
+"%s has both public and private mbox archives. Since this list\n"
+"currently uses public archiving, I'm installing the public mbox file\n"
+"archive file (%s) as the active one, and renaming\n"
+" %s\n"
+" to\n"
+" %s.preb6\n"
+"\n"
+"You can integrate that into the archives if you want by using the 'arch'\n"
+"script.\n"
+msgstr ""
+"%s har både offentlige og private mbox arkiver. Siden denne listen\n"
+"bare benytter offentlig arkiv, installerer jeg den offentlige mbox "
+"arkivfilen\n"
+"(%s) som den aktive, og endrer navnet\n"
+" %s\n"
+"til\n"
+" %s.preb6\n"
+"\n"
+"Hvis du vil kan du integrere dette inn i arkivet ved å bruke 'arch' "
+"skriptet.\n"
+
+#: bin/update:282
+msgid "- updating old private mbox file"
+msgstr "- oppdaterer den gamle private mbox-filen"
+
+#: bin/update:290
+msgid ""
+" unknown file in the way, moving\n"
+" %(o_pri_mbox_file)s\n"
+" to\n"
+" %(newname)s"
+msgstr ""
+" ukjent fil i veien, flytter\n"
+" %(o_pri_mbox_file)s\n"
+" til\n"
+" %(newname)s"
+
+#: bin/update:297 bin/update:320
+msgid ""
+" looks like you have a really recent CVS installation...\n"
+" you're either one brave soul, or you already ran me"
+msgstr ""
+" ser ut til at du har en ganske ny CVS installasjon...\n"
+" enten er du en modig sjel, eller så har du allerede kjørt dette skriptet"
+
+#: bin/update:306
+msgid "- updating old public mbox file"
+msgstr "- oppdaterer den gamle offentlige mbox-filen"
+
+#: bin/update:314
+msgid ""
+" unknown file in the way, moving\n"
+" %(o_pub_mbox_file)s\n"
+" to\n"
+" %(newname)s"
+msgstr ""
+" ukjent fil i veien, flytter\n"
+" %(o_pub_mbox_file)s\n"
+" til\n"
+" %(newname)s"
+
+#: bin/update:345
+msgid "- This list looks like it might have <= b4 list templates around"
+msgstr "- Det ser ut som denne listen har templates eldre enn b5 liggende"
+
+#: bin/update:352
+msgid "- moved %(o_tmpl)s to %(n_tmpl)s"
+msgstr "- flyttet %(o_tmpl)s til %(n_tmpl)s"
+
+#: bin/update:354
+msgid "- both %(o_tmpl)s and %(n_tmpl)s exist, leaving untouched"
+msgstr "- både %(o_tmpl)s og %(n_tmpl)s eksisterer, rører ikke disse"
+
+#: bin/update:384
+msgid "removing directory %(src)s and everything underneath"
+msgstr "fjerner katalogen %(src)s og alle underkataloger"
+
+#: bin/update:387
+msgid "removing %(src)s"
+msgstr "fjerner %(src)s"
+
+#: bin/update:391
+msgid "Warning: couldn't remove %(src)s -- %(rest)s"
+msgstr "Advarsel: kunne ikke fjerne %(src)s -- %(rest)s"
+
+#: bin/update:396
+msgid "couldn't remove old file %(pyc)s -- %(rest)s"
+msgstr "kunne ikke fjerne den gamle filen %(pyc)s -- %(rest)s"
+
+#: bin/update:400
+msgid "updating old qfiles"
+msgstr "oppdaterer gamle qfiler"
+
+#: bin/update:422
+msgid "getting rid of old source files"
+msgstr "fjerner gamle kildefiler"
+
+#: bin/update:432
+msgid "no lists == nothing to do, exiting"
+msgstr "ingen lister == ingenting å gjøre, avslutter"
+
+#: bin/update:439
+msgid ""
+"fixing all the perms on your old html archives to work with b6\n"
+"If your archives are big, this could take a minute or two..."
+msgstr ""
+"oppdaterer rettigheter for alle dine gamle html arkiver slik at de skal "
+"virke\n"
+"med b6. Hvis arkivene er store, kan dette ta et minutt eller to..."
+
+#: bin/update:444
+msgid "done"
+msgstr "utført"
+
+#: bin/update:446
+msgid "Updating mailing list: %(listname)s"
+msgstr "Oppdaterer epostliste: %(listname)s"
+
+#: bin/update:449
+msgid "Updating Usenet watermarks"
+msgstr "Oppdaterer Usenet watermarks (vannmerker for nyhetsgrupper)"
+
+#: bin/update:454
+msgid "- nothing to update here"
+msgstr "- ingenting å oppdatere her"
+
+#: bin/update:477
+msgid "- usenet watermarks updated and gate_watermarks removed"
+msgstr "- usenet watermarks og gate_watermarks er fjernet"
+
+#: bin/update:487
+msgid "Updating old pending_subscriptions.db database"
+msgstr "Oppdaterer den gamle pending_subscriptions.db databasen"
+
+#: bin/update:504
+msgid ""
+"\n"
+"\n"
+"NOTE NOTE NOTE NOTE NOTE\n"
+"\n"
+" You are upgrading an existing Mailman installation, but I can't tell "
+"what\n"
+" version you were previously running.\n"
+"\n"
+" If you are upgrading from Mailman 1.0b9 or earlier you will need to\n"
+" manually update your mailing lists. For each mailing list you need to\n"
+" copy the file templates/options.html lists/<listname>/options.html.\n"
+"\n"
+" However, if you have edited this file via the Web interface, you will "
+"have\n"
+" to merge your changes into this file, otherwise you will lose your\n"
+" changes.\n"
+"\n"
+"NOTE NOTE NOTE NOTE NOTE\n"
+"\n"
+msgstr ""
+"\n"
+"\n"
+"NB! NB! NB! NB! NB!\n"
+"\n"
+" Du er i ferd med å oppgradere en eksisterende Mailman installasjon, men\n"
+" jeg klarer ikke å finne ut hvilken versjon som er installert.\n"
+"\n"
+" Dersom du oppgraderer fra Mailman 1.0b9 eller tidligere, blir du nødt "
+"til\n"
+" å oppdatere epostlistene dine manuelt. For hver epostliste må du "
+"kopiere\n"
+" filen templates/options.html over til lists/<listenavn>/options.html.\n"
+"\n"
+" Har du forøvrig redigert denne filen via websidene, må du manuelt sette\n"
+" sammen dine endringer med den nye filen, ellers vil du miste endringene "
+"du\n"
+" har gjort tidligere.\n"
+"\n"
+"NB! NB! NB! NB! NB!\n"
+"\n"
+
+#: bin/update:561
+msgid "No updates are necessary."
+msgstr "Ingen oppdatering er nødvendig."
+
+#: bin/update:564
+msgid ""
+"Downgrade detected, from version %(hexlversion)s to version %(hextversion)s\n"
+"This is probably not safe.\n"
+"Exiting."
+msgstr ""
+"Nedgradering fra versjon %(hexlversion)s til versjon %(hextversion)s.\n"
+"Dette vil antakelig ikke fungere.\n"
+"Avbryter."
+
+#: bin/update:569
+msgid "Upgrading from version %(hexlversion)s to %(hextversion)s"
+msgstr "Oppgraderer fra version %(hexlversion)s til %(hextversion)s"
+
+#: bin/update:578
+msgid ""
+"\n"
+"ERROR:\n"
+"\n"
+"The locks for some lists could not be acquired. This means that either\n"
+"Mailman was still active when you upgraded, or there were stale locks in "
+"the\n"
+"%(lockdir)s directory.\n"
+"\n"
+"You must put Mailman into a quiescent state and remove all stale locks, "
+"then\n"
+"re-run \"make update\" manually. See the INSTALL and UPGRADE files for "
+"details.\n"
+msgstr ""
+"\n"
+"FEIL:\n"
+"\n"
+"Kunne ikke låse noen av listene. Dette betyr at Mailman fremdeles var aktiv "
+"da\n"
+"du oppgraderte, eller det var gamle låsefiler i katalogen %(lockdir)s.\n"
+"\n"
+"Du må midlertidig stoppe Mailman og fjerne alle gamle låsefiler før du kan\n"
+"prøve å kjøre \"make update\" på nytt manuelt. Se INSTALL og UPGRADE filene "
+"for\n"
+"nærmere informasjon.\n"
+
+#: bin/version:19
+msgid "Print the Mailman version.\n"
+msgstr "Vise Mailman versjonen.\n"
+
+#: bin/version:26
+msgid "Using Mailman version:"
+msgstr "Bruker Mailman versjon:"
+
+#: bin/withlist:19
+msgid ""
+"General framework for interacting with a mailing list object.\n"
+"\n"
+"There are two ways to use this script: interactively or programmatically.\n"
+"Using it interactively allows you to play with, examine and modify a "
+"MailList\n"
+"object from Python's interactive interpreter. When running interactively, "
+"a\n"
+"MailList object called `m' will be available in the global namespace. It "
+"also\n"
+"loads the class MailList into the global namespace.\n"
+"\n"
+"Programmatically, you can write a function to operate on a MailList object,\n"
+"and this script will take care of the housekeeping (see below for "
+"examples).\n"
+"In that case, the general usage syntax is:\n"
+"\n"
+"%% bin/withlist [options] listname [args ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" -l / --lock\n"
+" Lock the list when opening. Normally the list is opened unlocked\n"
+" (e.g. for read-only operations). You can always lock the file "
+"after\n"
+" the fact by typing `m.Lock()'\n"
+"\n"
+" Note that if you use this option, you should explicitly call m.Save"
+"()\n"
+" before exiting, since the interpreter's clean up procedure will not\n"
+" automatically save changes to the MailList object (but it will "
+"unlock\n"
+" the list).\n"
+"\n"
+" -i / --interactive\n"
+" Leaves you at an interactive prompt after all other processing is\n"
+" complete. This is the default unless the -r option is given.\n"
+"\n"
+" --run [module.]callable\n"
+" -r [module.]callable\n"
+" This can be used to run a script with the opened MailList object.\n"
+" This works by attempting to import `module' (which must already be\n"
+" accessible on your sys.path), and then calling `callable' from the\n"
+" module. callable can be a class or function; it is called with the\n"
+" MailList object as the first argument. If additional args are "
+"given\n"
+" on the command line, they are passed as subsequent positional args "
+"to\n"
+" the callable.\n"
+"\n"
+" Note that `module.' is optional; if it is omitted then a module "
+"with\n"
+" the name `callable' will be imported.\n"
+"\n"
+" The global variable `r' will be set to the results of this call.\n"
+"\n"
+" --all / -a\n"
+" This option only works with the -r option. Use this if you want to\n"
+" execute the script on all mailing lists. When you use -a you "
+"should\n"
+" not include a listname argument on the command line. The variable "
+"`r'\n"
+" will be a list of all the results.\n"
+"\n"
+" --quiet / -q\n"
+" Suppress all status messages.\n"
+"\n"
+" --help / -h\n"
+" Print this message and exit\n"
+"\n"
+"\n"
+"Here's an example of how to use the -r option. Say you have a file in the\n"
+"Mailman installation directory called `listaddr.py', with the following\n"
+"two functions:\n"
+"\n"
+"def listaddr(mlist):\n"
+" print mlist.GetListEmail()\n"
+"\n"
+"def requestaddr(mlist):\n"
+" print mlist.GetRequestEmail()\n"
+"\n"
+"Now, from the command line you can print the list's posting address by "
+"running\n"
+"the following from the command line:\n"
+"\n"
+"%% bin/withlist -r listaddr mylist\n"
+"Loading list: mylist (unlocked)\n"
+"Importing listaddr ...\n"
+"Running listaddr.listaddr() ...\n"
+"mylist@myhost.com\n"
+"\n"
+"And you can print the list's request address by running:\n"
+"\n"
+"%% bin/withlist -r listaddr.requestaddr mylist\n"
+"Loading list: mylist (unlocked)\n"
+"Importing listaddr ...\n"
+"Running listaddr.requestaddr() ...\n"
+"mylist-request@myhost.com\n"
+"\n"
+"As another example, say you wanted to change the password for a particular\n"
+"user on a particular list. You could put the following function in a file\n"
+"called `changepw.py':\n"
+"\n"
+"from Mailman.Errors import NotAMember\n"
+"\n"
+"def changepw(mlist, addr, newpasswd):\n"
+" try:\n"
+" mlist.setMemberPassword(addr, newpasswd)\n"
+" mlist.Save()\n"
+" except NotAMember:\n"
+" print 'No address matched:', addr\n"
+"\n"
+"and run this from the command line:\n"
+"%% bin/withlist -l -r changepw mylist somebody@somewhere.org foobar\n"
+msgstr ""
+
+#: bin/withlist:151
+msgid ""
+"Unlock a locked list, but do not implicitly Save() it.\n"
+"\n"
+" This does not get run if the interpreter exits because of a signal, or "
+"if\n"
+" os._exit() is called. It will get called if an exception occurs "
+"though.\n"
+" "
+msgstr ""
+
+#: bin/withlist:162
+msgid "Unlocking (but not saving) list: %(listname)s"
+msgstr "Låser opp (men lagrer ikke) listen: %(listname)s"
+
+#: bin/withlist:166
+msgid "Finalizing"
+msgstr "Avslutter"
+
+#: bin/withlist:175
+msgid "Loading list %(listname)s"
+msgstr "Leser listen %(listname)s"
+
+#: bin/withlist:177
+msgid "(locked)"
+msgstr "(låst)"
+
+#: bin/withlist:179
+msgid "(unlocked)"
+msgstr "(åpen)"
+
+#: bin/withlist:184
+msgid "Unknown list: %(listname)s"
+msgstr "Ukjent liste: %(listname)s"
+
+#: bin/withlist:223
+msgid "No list name supplied."
+msgstr "Ingen listenavn angitt"
+
+#: bin/withlist:226
+msgid "--all requires --run"
+msgstr "--all krever --run"
+
+#: bin/withlist:246
+msgid "Importing %(module)s..."
+msgstr "Importerer %(module)s..."
+
+#: bin/withlist:249
+msgid "Running %(module)s.%(callable)s()..."
+msgstr "Kjører %(module)s.%(callable)s()..."
+
+#: bin/withlist:270
+msgid "The variable `m' is the %(listname)s MailList instance"
+msgstr "Variabelen 'm' er forekomsten av %(listname)s MailList objektet"
+
+#: cron/bumpdigests:19
+msgid ""
+"Increment the digest volume number and reset the digest number to one.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" --help/-h\n"
+" Print this message and exit.\n"
+"\n"
+"The lists named on the command line are bumped. If no list names are "
+"given,\n"
+"all lists are bumped.\n"
+msgstr ""
+"Øker volume nummer i sammendrag-modus, og setter utgave nummeret til 1.\n"
+"\n"
+"Brukes slik: %(PROGRAM)s [valg] [listenavn ...]\n"
+"\n"
+"Valg:\n"
+"\n"
+" --help\n"
+" -h\n"
+" Viser denne hjelpeteksten.\n"
+"\n"
+"Volume nummeret økes for den angitte listen. Hvis ingen liste angis, økes\n"
+"volume nummer for alle lister.\n"
+
+#: cron/checkdbs:19
+msgid ""
+"Invoked by cron, this checks for pending moderation requests and mails the\n"
+"list moderators if necessary.\n"
+msgstr ""
+"Dette scriptet startes fra cron, og undersøker om det finnes forespørsler "
+"som\n"
+"krever behandling av en listemoderator. Dersom det finnes, varsler scriptet\n"
+"listemoderatoren(e).\n"
+
+#: cron/checkdbs:81
+msgid "%(count)d %(realname)s moderator request(s) waiting"
+msgstr "%(count)d forespørsler venter på behandling på listen %(realname)s"
+
+#: cron/checkdbs:100
+msgid "Pending subscriptions:"
+msgstr "Søknader om medlemskap som venter på behandling:"
+
+#: cron/checkdbs:109
+msgid ""
+"\n"
+"Pending posts:"
+msgstr ""
+"\n"
+"Epost til listen som krever godkjenning:"
+
+#: cron/checkdbs:114
+msgid ""
+"From: %(sender)s on %(date)s\n"
+"Subject: %(subject)s\n"
+"Cause: %(reason)s"
+msgstr ""
+"Fra: %(sender)s %(date)s\n"
+"Tittel: %(subject)s\n"
+"Fordi: %(reason)s"
+
+#: cron/disabled:19
+msgid ""
+"Process disabled members, recommended once per day.\n"
+"\n"
+"This script cruises through every mailing list looking for members whose\n"
+"delivery is disabled. If they have been disabled due to bounces, they will\n"
+"receive another notification, or they may be removed if they've received "
+"the\n"
+"maximum number of notifications.\n"
+"\n"
+"Use the --byadmin, --byuser, and --unknown flags to also send notifications "
+"to\n"
+"members whose accounts have been disabled for those reasons. Use --all to\n"
+"send the notification to all disabled members.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -h / --help\n"
+" Print this message and exit.\n"
+"\n"
+" -o / --byadmin\n"
+" Also send notifications to any member disabled by the list\n"
+" owner/administrator.\n"
+"\n"
+" -m / --byuser\n"
+" Also send notifications to any member disabled by themselves.\n"
+"\n"
+" -u / --unknown\n"
+" Also send notifications to any member disabled for unknown reasons\n"
+" (usually a legacy disabled address).\n"
+"\n"
+" -b / --notbybounce\n"
+" Don't send notifications to members disabled because of bounces "
+"(the\n"
+" default is to notify bounce disabled members).\n"
+"\n"
+" -a / --all\n"
+" Send notifications to all disabled members.\n"
+"\n"
+" -f / --force\n"
+" Send notifications to disabled members even if they're not due a "
+"new\n"
+" notification yet.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" Process only the given list, otherwise do all lists.\n"
+msgstr ""
+
+#: cron/disabled:143
+msgid "[disabled by periodic sweep and cull, no message available]"
+msgstr "[stoppet av periodisk undersøkelse, ingen melding tilgjengelig]"
+
+#: cron/gate_news:19
+msgid ""
+"Poll the NNTP servers for messages to be gatewayed to mailing lists.\n"
+"\n"
+"Usage: gate_news [options]\n"
+"\n"
+"Where options are\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this text and exit.\n"
+"\n"
+msgstr ""
+"Kontakter NNTP serveren for å se om nye meldinger skal distribueres til\n"
+"de respektive epostlister.\n"
+"\n"
+"Brukes slik: gate_news [valg]\n"
+"\n"
+"Valg:\n"
+"\n"
+" --help\n"
+" -h\n"
+" Viser denne hjelpeteksten.\n"
+"\n"
+
+#: cron/mailpasswds:19
+msgid ""
+"Send password reminders for all lists to all users.\n"
+"\n"
+"This program scans all mailing lists and collects users and their "
+"passwords,\n"
+"grouped by the list's host_name if mm_cfg.VIRTUAL_HOST_OVERVIEW is true. "
+"Then\n"
+"one email message is sent to each unique user (per-virtual host) containing\n"
+"the list passwords and options url for the user. The password reminder "
+"comes\n"
+"from the mm_cfg.MAILMAN_SITE_LIST, which must exist.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -l listname\n"
+" --listname=listname\n"
+" Send password reminders for the named list only. If omitted,\n"
+" reminders are sent for all lists. Multiple -l/--listname options "
+"are\n"
+" allowed.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+msgstr ""
+"Sender påminnelse om passord til alle medlemmer av alle lister.\n"
+"\n"
+"Dette programmet går igjennom alle epostlistene og samler opp informasjon\n"
+"om medlemmer og deres passord, gruppert etter listens hostnavn hvis\n"
+"mm_cfg.VIRTUAL_HOST_OVERVIEW er satt. Deretter sender den ut en epost til\n"
+"hvert unike medlem (pr. virtuell host), som inneholder medlemmets passord\n"
+"og URL til medlemmets personlige innstillinger. Epost kommer fra\n"
+"mm_cfg.MAILMAN_SITE_LIST, som må eksistere.\n"
+"\n"
+"Brukes slik: %(PROGRAM)s [valg]\n"
+"\n"
+"Valg:\n"
+"\n"
+" -l listenavn\n"
+" --listname=listenavn\n"
+" Sender påminnelse om passord kun for den angitte listen. Dersom "
+"ikke\n"
+" dette valget benyttes, sendes det påminnelse for alle lister.\n"
+" Flere -l/--listname valg kan benyttes.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Viser denne hjelpeteksten.\n"
+
+#: cron/mailpasswds:111
+msgid "Site list is missing: %(sitelistname)s"
+msgstr "Systemets epostliste mangler: %(sitelistname)s"
+
+#: cron/mailpasswds:179
+msgid "Password // URL"
+msgstr "Passord // URL"
+
+#: cron/mailpasswds:199
+msgid "%(host)s mailing list memberships reminder"
+msgstr "Påminnelse om passord for epostlister på %(host)s"
+
+#: cron/nightly_gzip:19
+msgid ""
+"Re-generate the Pipermail gzip'd archive flat files.\n"
+"\n"
+"This script should be run nightly from cron. When run from the command "
+"line,\n"
+"the following usage is understood:\n"
+"\n"
+"Usage: %(program)s [-v] [-h] [listnames]\n"
+"\n"
+"Where:\n"
+" --verbose\n"
+" -v\n"
+" print each file as it's being gzip'd\n"
+"\n"
+" --help\n"
+" -h\n"
+" print this message and exit\n"
+"\n"
+" listnames\n"
+" Optionally, only compress the .txt files for the named lists. "
+"Without \n"
+" this, all archivable lists are processed.\n"
+"\n"
+msgstr ""
+"Genererer Pipermails gzip arkiv fra flate filer.\n"
+"\n"
+"Dette scriptet bør kjøres nattlig fra cron. Når det kjøres fra "
+"kommandolinjen\n"
+"kan det benyttes på følgende måte:\n"
+"\n"
+"Brukes slik: %(program)s [-v] [-h] [listenavn ...]\n"
+"\n"
+"Der:\n"
+" --verbose\n"
+" -v\n"
+" Skriver navnet på hver fil etter hvert som den blir gzip'et.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Viser denne hjelpeteksten.\n"
+"\n"
+" listenavn\n"
+" Valgfritt. Dersom listenavn angis, komprimeres kun .txt filene til\n"
+" de nevnte listene. Dersom ingen listenavn angis, komprimeres .txt\n"
+" filene for alle listene som har aktivert arkiv.\n"
+"\n"
+
+#: cron/senddigests:19
+msgid ""
+"Dispatch digests for lists w/pending messages and digest_send_periodic set.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -h / --help\n"
+" Print this message and exit.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" Send the digest for the given list only, otherwise the digests for "
+"all\n"
+" lists are sent out.\n"
+msgstr ""
+"Sender ut samle-epost fra lister som behøver det og som har satt \n"
+"digest_send_periodic.\n"
+"\n"
+"Brukes slik: %(PROGRAM)s [valg]\n"
+"\n"
+"Valg:\n"
+"\n"
+" -h / --help\n"
+" Viser denne hjelpeteksten.\n"
+"\n"
+" -l listenavn\n"
+" --listname=listenavn\n"
+" Send samle-epost kun fra den angitte listen. Hvis ikke dette valget\n"
+" benyttes, vil det sendes ut fra alle aktuelle lister.\n"
+
+#~ msgid "Posts by member are currently quarantined for moderation"
+#~ msgstr "Epost fra medlemmet settes i karantene for godkjenning av moderator"
+
+#~ msgid "A confirmation email has been sent separately."
+#~ msgstr "En epost med forespørsel om bekreftelse på påmelding er sendt."
+
+#~ msgid "A removal confirmation message has been sent."
+#~ msgstr "En forespørsel om bekreftelse på utmelding er sendt."
+
+#~ msgid "Removed: <%(addr)30s> %(name)s"
+#~ msgstr "Fjernet: <%30(addr)s> %30(name)s"
+
+#~ msgid "non-digest header"
+#~ msgstr "topptekst i normal-modus"
+
+#~ msgid "non-digest footer"
+#~ msgstr "bunntekst i normal-modus"
+
+#~ msgid "Bad owner email address: %(owner_mail)s"
+#~ msgstr "Ugyldig epostadresse: %(owner_mail)s"
+
+#~ msgid ""
+#~ "Dispatch digests for lists w/pending messages and digest_send_periodic "
+#~ "set.\n"
+#~ "\n"
+#~ "Typically it's invoked via cron.\n"
+#~ msgstr ""
+#~ "Sender ut sammendrag for de listene som har meldinger som venter på å "
+#~ "bli\n"
+#~ "sendt ut, og som har 'digest_send_periodic' satt.\n"
+#~ "\n"
+#~ "Kjøres vanligvis av cron.\n"
+
+#~ msgid "Policies concerning concerning the content of list traffic."
+#~ msgstr "Regler for innhold i epost som sendes til listen.."
+
+#~ msgid ""
+#~ "Use this option to remove each message section with a\n"
+#~ " matching MIME type. Each line should contain a string "
+#~ "naming a\n"
+#~ " MIME <tt>type/subtype</tt>, e.g. <tt>image/gif</tt>. Leave "
+#~ "off\n"
+#~ " the subtype to remove all parts with a matching MIME major "
+#~ "type,\n"
+#~ " e.g. <tt>image</tt>. Blank lines are ignored.\n"
+#~ "\n"
+#~ " <p>After stripping message parts, any <tt>multipart</tt>\n"
+#~ " attachment that is empty as a result is removed all "
+#~ "together. If\n"
+#~ " the outer part's MIME type matches one of the strip types, "
+#~ "or if\n"
+#~ " all of the outer part's subparts are stripped, then the "
+#~ "whole\n"
+#~ " message is discarded. Finally, each\n"
+#~ " <tt>multipart/alternative</tt> section will be replaced by "
+#~ "just\n"
+#~ " the first alternative that is non-empty after the specified "
+#~ "types\n"
+#~ " have been removed."
+#~ msgstr ""
+#~ "Bruk denne innstillingen til å fjerne de delene som har en angitt MIME "
+#~ "type.\n"
+#~ "Angi en MIME <tt>type/subtype</tt> på hver linje, f.eks. <tt>image/gif</"
+#~ "tt>.\n"
+#~ "For å fjerne alle deler som har en MIME hovedtype, la vær å angi "
+#~ "subtype,\n"
+#~ "f.eks. <tt>image></tt>. Blanke linjer vil bli oversett.\n"
+#~ "\n"
+#~ "<p>Dersom et <tt>multipart</tt> vedlegg blir tomt etter at filteret har\n"
+#~ "fjernet ønskete deler, vil vedlegget bli fjernet. Dersom MIME typene til "
+#~ "en\n"
+#~ "av de ytre delene passer med filteret, eller alle delene av en ytre del\n"
+#~ "fjernes, forkastes hele meldingen. Hver <tt>multipart/alternative</tt> "
+#~ "del\n"
+#~ "vil bli erstattet av det første alternativet som ikke er tomt etter at "
+#~ "de\n"
+#~ "spesifiserte deler er fjernet."
+
+#~ msgid ""
+#~ "To finish creating your mailing list, you must edit your\n"
+#~ "/etc/aliases (or equivalent) file by adding the following lines:\n"
+#~ "\n"
+#~ "## %(listname)s mailing list\n"
+#~ "## created: %(date)s %(user)s\n"
+#~ "%(list)s \"|%(wrapper)s post %(listname)s\"\n"
+#~ "%(admin)s \"|%(wrapper)s mailowner %(listname)s\"\n"
+#~ "%(request)s \"|%(wrapper)s mailcmd %(listname)s\"\n"
+#~ "%(owner)s %(listname)s-admin\n"
+#~ msgstr ""
+#~ "For å fullføre opprettelsen av epostlisten, må du redigere filen /etc/"
+#~ "aliases\n"
+#~ "(eller tilsvarende aliasfil) og legge til følgende linjer:\n"
+#~ "\n"
+#~ "## Epostliste: %(listname)s\n"
+#~ "## Opprettet: %(date)s %(user)s\n"
+#~ "%(list)s \"|%(wrapper)s post %(listname)s\"\n"
+#~ "%(admin)s \"|%(wrapper)s mailowner %(listname)s\"\n"
+#~ "%(request)s \"|%(wrapper)s mailcmd %(listname)s\"\n"
+#~ "%(owner)s %(listname)s-admin\n"
+
+#~ msgid ""
+#~ "To finish removing your mailing list, you must edit your\n"
+#~ "/etc/aliases (or equivalent) file by removing the following lines:\n"
+#~ "\n"
+#~ "%(list)s \"|%(wrapper)s post %(listname)s\"\n"
+#~ "%(admin)s \"|%(wrapper)s mailowner %(listname)s\"\n"
+#~ "%(request)s \"|%(wrapper)s mailcmd %(listname)s\"\n"
+#~ "%(owner)s %(listname)s-admin\n"
+#~ msgstr ""
+#~ "For å fullføre sletting av epostlisten, må du redigere /etc/aliases\n"
+#~ "(eller tilsvarende aliasfil) og fjerne følgende linjer:\n"
+#~ "\n"
+#~ "%(list)s \"|%(wrapper)s post %(listname)s\"\n"
+#~ "%(admin)s \"|%(wrapper)s mailowner %(listname)s\"\n"
+#~ "%(request)s \"|%(wrapper)s mailcmd %(listname)s\"\n"
+#~ "%(owner)s %(listname)s-admin\n"
+
+#~ msgid ""
+#~ "To finish creating your mailing list, execute the following\n"
+#~ "commands with the proper permission:\n"
+#~ "\n"
+#~ "echo '|preline %(wrapper)s post %(listname)s' >~alias/.qmail-%(listname)"
+#~ "s\n"
+#~ "echo '|preline %(wrapper)s mailowner %(listname)s' >~alias/.qmail-%"
+#~ "(listname)s-admin\n"
+#~ "echo '|preline %(wrapper)s mailcmd %(listname)s' >~alias/.qmail-%"
+#~ "(listname)s-request\n"
+#~ "echo '&%(listname)s-admin' >~alias/.qmail-owner-%(listname)s\n"
+#~ "echo '&%(listname)s-admin' >~alias/.qmail-%(listname)s-owner\n"
+#~ "\n"
+#~ "chmod 644 ~alias/.qmail-%(listname)s ~alias/.qmail-%(listname)s-admin\n"
+#~ "chmod 644 ~alias/.qmail-%(listname)s-request ~alias/.qmail-%(listname)s-"
+#~ "owner\n"
+#~ "chmod 644 ~alias/.qmail-owner-%(listname)s\n"
+#~ msgstr ""
+#~ "For å fullføre opprettelsen av epostlisten %(listname)s, kjør følgende\n"
+#~ "kommandoer med de rettigheter som kreves:\n"
+#~ "\n"
+#~ "echo '|preline %(wrapper)s post %(listname)s' >~alias/.qmail-%(listname)"
+#~ "s\n"
+#~ "echo '|preline %(wrapper)s mailowner %(listname)s' >~alias/.qmail-%"
+#~ "(listname)s-admin\n"
+#~ "echo '|preline %(wrapper)s mailcmd %(listname)s' >~alias/.qmail-%"
+#~ "(listname)s-request\n"
+#~ "echo '&%(listname)s-admin' >~alias/.qmail-owner-%(listname)s\n"
+#~ "echo '&%(listname)s-admin' >~alias/.qmail-%(listname)s-owner\n"
+#~ "\n"
+#~ "chmod 644 ~alias/.qmail-%(listname)s ~alias/.qmail-%(listname)s-admin\n"
+#~ "chmod 644 ~alias/.qmail-%(listname)s-request ~alias/.qmail-%(listname)s-"
+#~ "owner\n"
+#~ "chmod 644 ~alias/.qmail-owner-%(listname)s\n"
+
+#~ msgid ""
+#~ "To finish removing your mailing list, you must remove the\n"
+#~ "all the entires for the %(listname)s aliases."
+#~ msgstr ""
+#~ "For å fullføre sletting av epostlisten, må du fjerne alle filene for\n"
+#~ "%(listname)s aliasene."
+
+#~ msgid "Post by a moderated member"
+#~ msgstr "Melding sendt av et moderert medlem"
+
+#~ msgid "Auto-response text to send to -admin and -owner emails."
+#~ msgstr ""
+#~ "Automatisk svar p&aring; epost som sendes til -admin og -owner adressene."
+
+#~ msgid ""
+#~ "Process disabled members, recommended once per day.\n"
+#~ "\n"
+#~ "This script cruises through every mailing list looking for members whose\n"
+#~ "delivery is disabled. If they have been disabled due to bounces, they "
+#~ "will\n"
+#~ "receive another notification, or they may be removed if they've received "
+#~ "the\n"
+#~ "maximum number of notifications.\n"
+#~ "\n"
+#~ "Usage: %(PROGRAM)s [options]\n"
+#~ "\n"
+#~ "Options:\n"
+#~ " -h / --help\n"
+#~ " Print this message and exit.\n"
+#~ "\n"
+#~ " -l listname\n"
+#~ " --list listname\n"
+#~ " Process only the given list, otherwise do all lists.\n"
+#~ msgstr ""
+#~ "Behandle medlemmer som har stoppet levering, dette bør gjøres daglig.\n"
+#~ "\n"
+#~ "Dette scriptet går igjennom alle epostlistene for å finne medlemmer som\n"
+#~ "har stoppet levering. Hvis årsaken er returmeldinger, vil disse\n"
+#~ "medlemmene motta en ny advarsel om dette, eller de kan bli meldt ut av "
+#~ "listen\n"
+#~ "dersom max antall advarsler er nådd.\n"
+#~ "\n"
+#~ "Brukes slik: %(PROGRAM)s [valg]\n"
+#~ "\n"
+#~ "Valg:\n"
+#~ " -h / --help\n"
+#~ " Viser denne hjelpeteksten.\n"
+#~ "\n"
+#~ " -l listenavn\n"
+#~ " --list listenavn\n"
+#~ " Behandle bare den angitte listen. Hvis dette valget ikke "
+#~ "benyttes\n"
+#~ " vil alle lister behandles.\n"
+
+#~ msgid "Get plain text digests (RFC 1153) rather than MIME digests"
+#~ msgstr "Motta samle-epost i ren tekst (RFC 1153) istedenfor MIME"
+
+#~ msgid ""
+#~ "When turned on, your email address is concealed on the Web page\n"
+#~ "that lists the members of the mailing list."
+#~ msgstr ""
+#~ "Setter du denne til 'on', vil epostadressen din ikke vises på\n"
+#~ "websiden med oversikt over medlemmer på listen."
+
+#~ msgid ""
+#~ "When turned on, delivery to your email address is disabled, but\n"
+#~ "your address is still subscribed. This is useful if you plan on taking "
+#~ "a\n"
+#~ "short vacation."
+#~ msgstr ""
+#~ "Når denne er satt til 'on', vil du ikke motta meldinger som sendes til "
+#~ "listen.\n"
+#~ "Det kan være nyttig hvis du f.eks. skal være borte for en periode. Du "
+#~ "kan\n"
+#~ "når som helst sette dette valget til 'off', og da vil du igjen motta "
+#~ "meldinger\n"
+#~ "som sendes til denne listen."
+
+#~ msgid ""
+#~ "When turned on, you get a separate acknowledgement email when you\n"
+#~ "post messages to the list."
+#~ msgstr ""
+#~ "Setter du denne til 'on', vil du motta en epost med bekreftelse hver "
+#~ "gang\n"
+#~ "du selv sender en melding til listen."
+
+#~ msgid ""
+#~ "When turned on, you do *not* get copies of your own posts to\n"
+#~ "the list. Otherwise, you do get copies of your own posts (yes, this "
+#~ "seems a\n"
+#~ "little backwards). This does not affect the contents of digests, so if "
+#~ "you\n"
+#~ "receive postings in digests, you will always get copies of your messages "
+#~ "in\n"
+#~ "the digest."
+#~ msgstr ""
+#~ "Setter du denne til 'on', vil du *ikke* motta meldinger du selv sender "
+#~ "til\n"
+#~ "listen. Setter du denne til 'off', vil du motta dine egne meldinger.\n"
+#~ "(Ja, dette kan kanskje virke litt bakvendt) Denne innstillingen har "
+#~ "ingen\n"
+#~ "påvirkning i sammendrag-modus, så hvis du benytter denne modusen vil du\n"
+#~ "alltid se dine egne meldinger i samle-eposten du mottar jevnlig."
+
+#~ msgid ""
+#~ "When turned on, you get postings from the list bundled into\n"
+#~ "digests. Otherwise, you get each individual message immediately as it "
+#~ "is\n"
+#~ "posted to the list."
+#~ msgstr ""
+#~ "Hvis denne er satt til 'on', vil du jevnlig motta en samle-epost med "
+#~ "mange\n"
+#~ "meldinger, istedenfor å motta hver enkelt melding. Dette kalles\n"
+#~ "'sammendrag-modus'. Er denne satt til 'off', vil du motta hver enkelt\n"
+#~ "melding som sendes til listen."
+
+#~ msgid ""
+#~ "When turned on, you get `plain' digests, which are actually\n"
+#~ "formatted using the RFC1154 digest format. This format can be easier to "
+#~ "read\n"
+#~ "if you have a non-MIME compliant mail reader. When this option is turned "
+#~ "off,\n"
+#~ "you get digests in MIME format, which are much better if you have a mail\n"
+#~ "reader that supports MIME."
+#~ msgstr ""
+#~ "Hvis denne er 'on', vil du motta samle-epost som ren tekst, som "
+#~ "formatteres\n"
+#~ "etter RFC1154-digest standarden. Dette formatet kan være enklere å lese "
+#~ "hvis\n"
+#~ "du ikke har en epostleser som støtter MIME. Hvis denne innstillingen er "
+#~ "satt\n"
+#~ "til 'off', vil du motta samle-epost i MIME-format, som er et mye bedre\n"
+#~ "format hvis epostleseren din støtter det."
+
+#~ msgid ""
+#~ "When turned on, you do *not* receive list copies of message\n"
+#~ "which have you as an explicit recipient (i.e. if you're both a member of "
+#~ "the\n"
+#~ "list and in either the To: or Cc: headers)."
+#~ msgstr ""
+#~ "Når denne er på, vil du *ikke* motta epost til listen som har deg som "
+#~ "mottaker\n"
+#~ "(f.eks. dersom din epostadresse både er medlem av listen og står i To: "
+#~ "eller Cc: feltet)"
+
+#~ msgid ""
+#~ "Subject line ignored:\n"
+#~ " "
+#~ msgstr ""
+#~ "Emne-feltet kunne ikke tolkes:\n"
+#~ " "
+
+#~ msgid ""
+#~ "Maximum command lines (%(maxlines)d) encountered, ignoring the rest..."
+#~ msgstr "Max. antall kommandoer (%(maxlines)d) oppnådd, forkaster resten..."
+
+#~ msgid "End: "
+#~ msgstr "Slutt: "
+
+#~ msgid "The rest of the message is ignored:"
+#~ msgstr "Resten av meldingen tolkes ikke:"
+
+#~ msgid "Command? "
+#~ msgstr "Kommando? "
+
+#~ msgid ""
+#~ "\n"
+#~ "Too many errors encountered; the rest of the message is ignored:"
+#~ msgstr ""
+#~ "\n"
+#~ "For mange feil; resten av meldingen forkastes:"
+
+#~ msgid ""
+#~ "An unexpected Mailman error has occurred.\n"
+#~ "\n"
+#~ "Please forward your request to the human list administrator in charge of "
+#~ "this\n"
+#~ "list at <%(admin)s>. The traceback is attached below and will be "
+#~ "forwarded to\n"
+#~ "the list administrator automatically."
+#~ msgstr ""
+#~ "Det oppstod en uventet feil i Mailman.\n"
+#~ "\n"
+#~ "Vennligst videresend forespørselen din til personen som administrerer "
+#~ "denne\n"
+#~ "listen, på <%(admin)s>. Feilmeldingen nedenfor vil automatisk bli sendt\n"
+#~ "til administratoren, så den behøver du ikke sende."
+
+#~ msgid "Unexpected Mailman error"
+#~ msgstr "Uventet feil i Mailman"
+
+#~ msgid ""
+#~ "An unexpected Mailman error has occurred in\n"
+#~ "MailCommandHandler.ParseMailCommands(). Here is the traceback:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Mailman: En uventet feil oppstod i MailCommandHandler.ParseMailCommands"
+#~ "().\n"
+#~ "Here er en traceback:\n"
+
+#~ msgid ""
+#~ "This is an automated response.\n"
+#~ "\n"
+#~ "There were problems with the email commands you sent to Mailman via the\n"
+#~ "administrative address %(requestaddr)s.\n"
+#~ "\n"
+#~ "To obtain instructions on valid Mailman email commands, send email to\n"
+#~ "%(requestaddr)s with the word \"help\" in the subject line or in the body "
+#~ "of the\n"
+#~ "message.\n"
+#~ "\n"
+#~ "If you want to reach the human being that manages this mailing list, "
+#~ "please\n"
+#~ "send your message to %(adminaddr)s.\n"
+#~ "\n"
+#~ "The following is a detailed description of the problems.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Dette er et automatisk svar fra epostliste-systemet Mailman.\n"
+#~ "\n"
+#~ "Det oppstod problemer i forbindelse med kommandoene du sendte i en epost "
+#~ "til\n"
+#~ "%(requestaddr)s.\n"
+#~ "\n"
+#~ "For å få hjelp og instruksjoner om gyldige kommandoer og hvordan du "
+#~ "benytter\n"
+#~ "dette kommandosystemet, sende en epost til adressen %(requestaddr)s, med\n"
+#~ "ordet 'help' som innhold eller i emnefeltet.\n"
+#~ "\n"
+#~ "Hvis du ønsker å nå personen som administrerer denne epostlisten, send "
+#~ "din\n"
+#~ "henvendelse til %(adminaddr)s.\n"
+#~ "\n"
+#~ "Her følger en detaljert beskrivelse av problemet/problemene som oppstod:\n"
+#~ "\n"
+
+#~ msgid "Mailman results for %(realname)s"
+#~ msgstr "Resultat av Mailman kommando til %(realname)s"
+
+#~ msgid "Usage: password [<oldpw> <newpw>]"
+#~ msgstr "Brukes slik: password [<gammeltpassord> <nyttpassord>]"
+
+#~ msgid "You are subscribed as %(user)s, with password: %(password)s"
+#~ msgstr "Du er påmeldt som %(user)s, med passordet: %(password)s"
+
+#~ msgid "Found no password for %(sender)s"
+#~ msgstr "Fant ikke noe passord for %(sender)s"
+
+#~ msgid "Succeeded."
+#~ msgstr "Utført."
+
+#~ msgid "by your configuration"
+#~ msgstr "etter ditt ønske"
+
+#~ msgid "on (%(reason)s"
+#~ msgstr "på (%(reason)s)"
+
+#~ msgid ""
+#~ "To change an option, do: set <option> <on|off> <password>\n"
+#~ "\n"
+#~ "Option explanations:\n"
+#~ "--------------------\n"
+#~ msgstr ""
+#~ "For å endre på en innstilling, bruk kommandoen slik:\n"
+#~ " set <innstilling> <on|off> <passord>\n"
+#~ "\n"
+#~ "Forklaring på de ulike innstillingene:\n"
+#~ "--------------------------------------\n"
+
+#~ msgid ""
+#~ "Usage: set <option> <on|off> <password>\n"
+#~ "Valid options are:\n"
+#~ msgstr ""
+#~ "Brukes slik: set <innstilling> <on|off> <passord>\n"
+#~ "Gyldige innstillinger er:\n"
+
+#~ msgid "You are already receiving digests."
+#~ msgstr "Du er allerede i sammendrag-modus."
+
+#~ msgid "You already have digests off."
+#~ msgstr "Du er allerede i normal-modus."
+
+#~ msgid "List only accepts digest members."
+#~ msgstr "Man kan bare benytte sammendrag-modus for denne listen."
+
+#~ msgid "List doesn't accept digest members."
+#~ msgstr "Man kan bare benytte normal-modus for denne listen."
+
+#~ msgid "\trequests to: "
+#~ msgstr "\tforespørsler til:"
+
+#~ msgid "\tdescription: "
+#~ msgstr "\tbeskrivelse:"
+
+#~ msgid ""
+#~ "\n"
+#~ "Usage: info\n"
+#~ "To get info for a particular list, send your request to\n"
+#~ "the `-request' address for that list, or use the `lists' command\n"
+#~ "to get info for all the lists."
+#~ msgstr ""
+#~ "\n"
+#~ "Brukes slik: info\n"
+#~ "For å få informasjon om en epostlisten, send en forespørsel til listens\n"
+#~ "'-request' adresse, eller bruk kommandoen 'lists' for se informasjon om\n"
+#~ "alle listene."
+
+#~ msgid "Private list: only members may see info."
+#~ msgstr "Privat liste: kun medlemmer kan få informasjon om listen."
+
+#~ msgid ""
+#~ "\n"
+#~ "For more complete info about the %(listname)s mailing list, including\n"
+#~ "background and instructions for subscribing to and using it, visit:\n"
+#~ "\n"
+#~ " %(url)s\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\n"
+#~ "For nærmere informasjon om epostlisten %(listname)s, bl.a. bakgrunn,\n"
+#~ "instruksjoner for påmelding, og hvordan benytte den, gå inn på:\n"
+#~ "\n"
+#~ " %(url)s\n"
+#~ "\n"
+
+#~ msgid "No other details are available."
+#~ msgstr "Flere detaljer finnes ikke."
+
+#~ msgid ""
+#~ "Usage: who\n"
+#~ "To get subscribership for a particular list, send your request\n"
+#~ "to the `-request' address for that list."
+#~ msgstr ""
+#~ "Brukes slik: who\n"
+#~ "For å få se hvem som er på en epostliste, send denne kommandoen til\n"
+#~ "'-request' adressen for listen."
+
+#~ msgid "Private list: No one may see subscription list."
+#~ msgstr "Privat liste: Ingen har tilgang til å se medlemslisten."
+
+#~ msgid "Private list: only members may see list of subscribers."
+#~ msgstr "Privat liste: bare medlemmer kan se medlemslisten."
+
+#~ msgid "NO MEMBERS."
+#~ msgstr "INGEN MEDLEMMER."
+
+#~ msgid ""
+#~ "Usage: unsubscribe [password] [email-address]\n"
+#~ "To unsubscribe from a particular list, send your request to\n"
+#~ "the `-request' address for that list."
+#~ msgstr ""
+#~ "Brukes slik: unsubscribe [passord] [epostadresse]\n"
+#~ "For å melde deg ut av en epostliste, send denne kommandoen\n"
+#~ "til '-request' adressen for listen."
+
+#~ msgid ""
+#~ "Usage: subscribe [password] [digest|nodigest] [address=<email-address>]"
+#~ msgstr ""
+#~ "Brukes slik: subscribe [passord] [digest|nodigest] "
+#~ "[address=<epostadresse>]"
+
+#~ msgid ""
+#~ "The list is not fully functional, and can not accept subscription "
+#~ "requests."
+#~ msgstr ""
+#~ "Epostlisten er ikke i funksjon, og kan derfor ikke ta imot søknader om\n"
+#~ "medlemskap."
+
+#~ msgid "Succeeded"
+#~ msgstr "Utført"
+
+#~ msgid "Usage: confirm <confirmation string>\n"
+#~ msgstr "Brukes slik: confirm <identifikator>\n"
+
+#~ msgid ""
+#~ "Remove members from a list.\n"
+#~ "\n"
+#~ "Usage:\n"
+#~ " remove_members [options] listname [addr1 ...]\n"
+#~ "\n"
+#~ "Options:\n"
+#~ "\n"
+#~ " --file=file\n"
+#~ " -f file\n"
+#~ " Remove member addresses found in the given file. If file is\n"
+#~ " `-', read stdin.\n"
+#~ "\n"
+#~ " --all\n"
+#~ " -a\n"
+#~ " Remove all members of the mailing list.\n"
+#~ "\n"
+#~ " --help\n"
+#~ " -h\n"
+#~ " Print this help message and exit.\n"
+#~ "\n"
+#~ " listname is the name of the mailing list to use.\n"
+#~ "\n"
+#~ " addr1 ... are additional addresses to remove.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Fjerner medlemmer fra en liste.\n"
+#~ "\n"
+#~ "Brukes slik: remove_members [valg] [listenavn] [addr1 ...]\n"
+#~ "\n"
+#~ "Valg:\n"
+#~ "\n"
+#~ " --file=filnavn\n"
+#~ " -f filnavn\n"
+#~ " Fjerne alle medlemmer som har epostadressene i den angitte "
+#~ "filen.\n"
+#~ " Hvis filnavnet er '-', leses epostadressene fra standard input.\n"
+#~ "\n"
+#~ " --all\n"
+#~ " -a\n"
+#~ " Fjerner alle medlemmer av epostlisten.\n"
+#~ " (Kan ikke benyttes med --fromall)\n"
+#~ "\n"
+#~ " --fromall\n"
+#~ " Fjerner de angitte epostadresser fra alle epostlister, uansett\n"
+#~ " domene hvis flere domener. Dette valget kan ikke benyttes sammen\n"
+#~ " med -a/--all. Du bør også ikke angi noe listenavn dersom du\n"
+#~ " benytter dette valget.\n"
+#~ "\n"
+#~ " --help\n"
+#~ " -h\n"
+#~ " Viser denne hjelpeteksten.\n"
+#~ "\n"
+#~ " listenavn er navnet på listen det skal fjernes fra.\n"
+#~ "\n"
+#~ " addr1 ... er ytterligere adresser som skal fjernes.\n"
+#~ "\n"
+
+#~ msgid "User `%(addr)s' not found."
+#~ msgstr "Fant ikke medlemmet '%(addr)s'."
+
+#~ msgid ""
+#~ "<li>Find members by\n"
+#~ " <a href=\"http://www.python.org/doc/current/lib/re-syntax."
+#~ "html\"\n"
+#~ " >Python regular expression</a> (<em>regexp</em>)<br>"
+#~ msgstr ""
+#~ "<li>Finne medlemmer ved &aring; s&oslash;ke med en <a href=\"http://www."
+#~ "python.org/doc/current/lib/re-syntax.html\">Python regular expression</a> "
+#~ "(<em>regexp</em>)<br>"
+
+#~ msgid "Send welcome message to this batch?"
+#~ msgstr "Sende velkomsthilsen?"
+
+#~ msgid " no "
+#~ msgstr " nei "
+
+#~ msgid " yes "
+#~ msgstr " ja "
+
+#~ msgid "Send notifications to the list owner? "
+#~ msgstr "Sende beskjed til listens eier?"
+
+#~ msgid "Successfully Subscribed:"
+#~ msgstr "P&aring;melding utf&oslash;rt:"
+
+#~ msgid "Error Subscribing:"
+#~ msgstr "Feil under p&aring;melding av:"
+
+#~ msgid "via the member options page"
+#~ msgstr "via medlemmets personlige side"
+
+#~ msgid "Default options for new members joining this list."
+#~ msgstr "Standard innstillinger for nye medlemmer som meldes på listen."
+
+#~ msgid ""
+#~ "<p><b>reply_to_address</b> does not have a\n"
+#~ " valid email address! Its valid will not be changed."
+#~ msgstr ""
+#~ "<p><b>reply_to_address</b> har ikke en gyldig epostadresse!\n"
+#~ "Den allerede gyldige adressen vil ikke bli endret."
+
+#~ msgid ""
+#~ "\n"
+#~ "NOTE: This is being deprecated since mailman has been shifted over to an\n"
+#~ " external archiver (ie, andrew kuchling's latest version of "
+#~ "pipermail.)\n"
+#~ "\n"
+#~ "This program shouldn't be attempted by people who don't understand "
+#~ "Python.\n"
+#~ "I wrote it to build archives for a few lists I'd been running for a long\n"
+#~ "time under majordomo.\n"
+#~ "\n"
+#~ "Convert majordomo digests all stored in one directory into mailbox\n"
+#~ "format. Note that the digests correct order in the dir should be\n"
+#~ "alphabetical order.\n"
+#~ "\n"
+#~ "The output file is ARCHIVE.ME in the same directory the digests are "
+#~ "in. \n"
+#~ "Run this program before you transfer the majordomo list. \n"
+#~ "\n"
+#~ "To get the output file archived, create the list under mailman, \n"
+#~ "run this script, and then do the following:\n"
+#~ "\n"
+#~ "cat ARCHIVE.ME >> ~mailman/mailman/lists/mylist/archived.mail\n"
+#~ "\n"
+#~ "You also need to adjust the variable: \n"
+#~ "NUM_LINES_TO_STRIP_FROM_TOP\n"
+#~ msgstr ""
+#~ "\n"
+#~ "MERK: Dette er ikke lenger i bruk, siden Mailman nå benytter en ekstern\n"
+#~ " arkivering (f.eks. Andrew Kuchlings siste versjon av pipermail.)\n"
+#~ "\n"
+#~ "Personer som ikke kjenner til Python bør ikke kjøre dette programmet.\n"
+#~ "Det ble skrevet for å lage arkiv av noen lister jeg i en lang periode\n"
+#~ "kjørte under majordomo.\n"
+#~ "\n"
+#~ "Scriptet konverterer sammendrag fra majordomo som er lagret i en "
+#~ "katalog,\n"
+#~ "over til mailbox-format. Merk at sammendragene bør være sortert "
+#~ "alfabetisk\n"
+#~ "i katalogen.\n"
+#~ "\n"
+#~ "Filen ARCHIVE.ME opprettes i den samme katalogen som sammendragene ligger "
+#~ "i.\n"
+#~ "Kjør dette programmet før du konverterer majordomo-listen.\n"
+#~ "\n"
+#~ "For å opprette arkiv av denne filen, opprett listen i Mailman, kjør "
+#~ "dette\n"
+#~ "scriptet, og kjør deretter følgende kommando:\n"
+#~ "\n"
+#~ "cat ARCHIVE.ME >> ~mailman/mailman/lists/mylist/archived.mail\n"
+#~ "\n"
+#~ "Du må også justere variabelen:\n"
+#~ "NUM_LINES_TO_STRIP_FROM_TOP\n"
+
+#~ msgid "Password (confirm):"
+#~ msgstr "Passord (en gang til):"
+
+#~ msgid ""
+#~ " The passwords you entered in the confirmation screen did "
+#~ "not\n"
+#~ " match, so your original subscription password will be "
+#~ "used\n"
+#~ " instead. Your password will have been generated by "
+#~ "Mailman if\n"
+#~ " you left the password fields blank. In any event, your\n"
+#~ " membership password will be sent to you in a separate\n"
+#~ " acknowledgement email.<p>"
+#~ msgstr ""
+#~ "Passordene du oppga var ikke like, s&aring; passordene fra den "
+#~ "opprinnelige s&oslash;knaden din vil bli benyttet isteden.\n"
+#~ "Passordet vil bli generert av Mailman dersom du ikke skrev inn noe "
+#~ "passord.\n"
+#~ "Uansett vil du f&aring; tilsendt passordet i en separat epost.<p>"
+
+#~ msgid ""
+#~ "Before adding a list-specific <tt>Reply-To:</tt> header,\n"
+#~ " should any existing <tt>Reply-To:</tt> field be stripped "
+#~ "from\n"
+#~ " the message?"
+#~ msgstr ""
+#~ "Skal eksisterende <tt>Reply-To:</tt> felt fjernes fra meldingshodet\n"
+#~ "f&oslash;r et <tt>Reply-To:</tt> felt knyttet til listen, legges til?"
+
+#~ msgid ""
+#~ "The attached message has been automatically discarded because the "
+#~ "sender's\n"
+#~ "address, %(sender)s, was on the discard_these_nonmembers list. For the "
+#~ "list\n"
+#~ "of auto-discard addresses, see\n"
+#~ "\n"
+#~ " %(varhelp)s\n"
+#~ msgstr ""
+#~ "Følgende melding er automatisk forkastet fordi avsenderadressen,\n"
+#~ "%(sender)s, var på discard_these_nonmembers listen. For en liste over\n"
+#~ "adresser som automatisk forkastes, se\n"
+#~ "\n"
+#~ " %(varhelp)s\n"
+
+#~ msgid "checking permissions on %(DBFILE)s"
+#~ msgstr "undersøker rettigheter på filen %(DBFILE)s"
+
+#~ msgid "nomail"
+#~ msgstr "stopp epost"
+
+#~ msgid "<b>nomail</b> -- Is delivery to the member disabled?"
+#~ msgstr "<b>stopp epost</b> -- Stopp levering av epost til medlemmet?"
+
+#~ msgid "General sender filters"
+#~ msgstr "Generell filtrering p&aring; avsender"
+
+#~ msgid "removed"
+#~ msgstr "fjernet"
+
+#~ msgid "not "
+#~ msgstr "ikke "
+
+#~ msgid "BUT: %(succeeded)s"
+#~ msgstr "MEN: %(succeeded)s"
+
+#~ msgid "%(rname)s member %(addr)s bouncing - %(negative)s%(did)s"
+#~ msgstr ""
+#~ "Adressen til %(rname)s, %(addr)s, kommer bare i retur - %(negative)s%(did)"
+#~ "s"
+
+#~ msgid "User not found."
+#~ msgstr "Medlemmet finnes ikke."
+
+#~ msgid "No file"
+#~ msgstr "Ingen fil"
+
+#~ msgid ""
+#~ "Policies regarding systematic processing of bounce messages,\n"
+#~ " to help automate recognition and handling of defunct\n"
+#~ " addresses."
+#~ msgstr ""
+#~ "Regler for behandling av returmeldinger, for &aring; automatisere\n"
+#~ " igjenkjenning og behandling av ugyldige epostadresser."
+
+#~ msgid "Try to figure out error messages automatically?"
+#~ msgstr "Pr&oslash;v &aring; tolke feilmeldinger automatisk?"
+
+#~ msgid ""
+#~ "Minimum number of days an address has been non-fatally bad\n"
+#~ " before we take action"
+#~ msgstr ""
+#~ "Minimum antall dager f&oslash;r vi gj&oslash;r noe med en epostadresse "
+#~ "som har hatt ikke-kritiske feil"
+
+#~ msgid ""
+#~ "Minimum number of posts to the list since members first\n"
+#~ " bounce before we consider removing them from the list"
+#~ msgstr ""
+#~ "Minimum antall returmeldinger sendt til listen fra et medlem, f&oslash;r "
+#~ "vi vurderer &aring; fjerne det fra listen"
+
+#~ msgid ""
+#~ "Maximum number of messages your list gets in an hour. (Yes,\n"
+#~ " bounce detection finds this info useful)"
+#~ msgstr ""
+#~ "Maximum antall meldinger det kommer til listen i l&oslash;pet av en "
+#~ "time.\n"
+#~ " (Ja, dette kan faktisk v&aelig;re nyttig..)"
+
+#~ msgid "Do nothing"
+#~ msgstr "Ikke gj&oslash;r noe"
+
+#~ msgid "Disable and notify me"
+#~ msgstr "Stopp levering til medlemmet og gi meg beskjed om det"
+
+#~ msgid "Disable and DON'T notify me"
+#~ msgstr "Stopp levering, men IKKE gi meg beskjed"
+
+#~ msgid "Remove and notify me"
+#~ msgstr "Fjern medlemmet og gi meg beskjed om dette"
+
+#~ msgid "Action when critical or excessive bounces are detected."
+#~ msgstr ""
+#~ "Hva skal gj&oslash;res med et medlem av listen n&aring;r kritiske feil "
+#~ "med medlemmets epostadresse oppst&aring;r,\n"
+#~ " eller det kommer for mange returmeldinger knyttet til "
+#~ "medlemmets epostadresse?"
+
+#~ msgid "PID unreadable in: %(PIDFILE)s"
+#~ msgstr "Uleselig PID i: %(PIDFILE)s"
+
+#~ msgid "mailcmd script, list not found: %(listname)s"
+#~ msgstr "mailcmd script, listen finnes ikke: %(listname)s"
diff --git a/messages/pt_BR/LC_MESSAGES/mailman.mo b/messages/pt_BR/LC_MESSAGES/mailman.mo
new file mode 100644
index 00000000..7eaeb727
--- /dev/null
+++ b/messages/pt_BR/LC_MESSAGES/mailman.mo
Binary files differ
diff --git a/messages/pt_BR/LC_MESSAGES/mailman.po b/messages/pt_BR/LC_MESSAGES/mailman.po
new file mode 100644
index 00000000..361b35d2
--- /dev/null
+++ b/messages/pt_BR/LC_MESSAGES/mailman.po
@@ -0,0 +1,11781 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR ORGANIZATION
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 2.1b5\n"
+"POT-Creation-Date: Tue Dec 24 13:41:28 2002\n"
+"PO-Revision-Date: 2002-12-23 09:46+0000\n"
+"Last-Translator: Gleydson Mazioli da Silva <gleydson@debian.org>\n"
+"Language-Team: Portuguese <debian-l10n-portuguese@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.4\n"
+
+#: Mailman/Archiver/HyperArch.py:112
+msgid "size not available"
+msgstr "tamanho não disponível"
+
+#: Mailman/Archiver/HyperArch.py:118
+msgid " %(size)i bytes "
+msgstr "% (size)i bytes "
+
+#: Mailman/Archiver/HyperArch.py:249 Mailman/Archiver/HyperArch.py:405
+#: Mailman/Archiver/HyperArch.py:963 Mailman/Archiver/HyperArch.py:1127
+msgid " at "
+msgstr " em "
+
+#: Mailman/Archiver/HyperArch.py:434
+msgid "Previous message:"
+msgstr "Mensagem anterior:"
+
+#: Mailman/Archiver/HyperArch.py:456
+msgid "Next message:"
+msgstr "Próxima mensagem:"
+
+#: Mailman/Archiver/HyperArch.py:609 Mailman/Archiver/HyperArch.py:645
+msgid "thread"
+msgstr "Discussão"
+
+#: Mailman/Archiver/HyperArch.py:610 Mailman/Archiver/HyperArch.py:646
+msgid "subject"
+msgstr "assunto"
+
+#: Mailman/Archiver/HyperArch.py:611 Mailman/Archiver/HyperArch.py:647
+msgid "author"
+msgstr "autor"
+
+#: Mailman/Archiver/HyperArch.py:612 Mailman/Archiver/HyperArch.py:648
+msgid "date"
+msgstr "data"
+
+#: Mailman/Archiver/HyperArch.py:684
+msgid "<P>Currently, there are no archives. </P>"
+msgstr "<p>Atualmente, não existem arquivos das listas.</p>"
+
+#: Mailman/Archiver/HyperArch.py:721
+msgid "Gzip'd Text%(sz)s"
+msgstr "Gzip'd Text%(sz)s"
+
+#: Mailman/Archiver/HyperArch.py:726
+msgid "Text%(sz)s"
+msgstr "Text%(sz)s"
+
+#: Mailman/Archiver/HyperArch.py:816
+msgid "figuring article archives\n"
+msgstr "figurando arquivos de artigo\n"
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "April"
+msgstr "Abril"
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "February"
+msgstr "Fevereiro"
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "January"
+msgstr "Janeiro"
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "March"
+msgstr "Março"
+
+#: Mailman/Archiver/HyperArch.py:827
+msgid "August"
+msgstr "Agosto"
+
+#: Mailman/Archiver/HyperArch.py:827
+msgid "July"
+msgstr "Julho"
+
+#: Mailman/Archiver/HyperArch.py:827
+msgid "June"
+msgstr "Junho"
+
+#: Mailman/Archiver/HyperArch.py:827 Mailman/i18n.py:91
+msgid "May"
+msgstr "Maio"
+
+#: Mailman/Archiver/HyperArch.py:828
+msgid "December"
+msgstr "Dezembro"
+
+#: Mailman/Archiver/HyperArch.py:828
+msgid "November"
+msgstr "Novembro"
+
+#: Mailman/Archiver/HyperArch.py:828
+msgid "October"
+msgstr "Outubro"
+
+#: Mailman/Archiver/HyperArch.py:828
+msgid "September"
+msgstr "Setembro"
+
+#: Mailman/Archiver/HyperArch.py:836
+msgid "First"
+msgstr "Primeira"
+
+#: Mailman/Archiver/HyperArch.py:836
+msgid "Fourth"
+msgstr "Quarto"
+
+#: Mailman/Archiver/HyperArch.py:836
+msgid "Second"
+msgstr "Segundo"
+
+#: Mailman/Archiver/HyperArch.py:836
+msgid "Third"
+msgstr "Terceira"
+
+#: Mailman/Archiver/HyperArch.py:838
+msgid "%(ord)s quarter %(year)i"
+msgstr "%(ord)s quarto %(year)i"
+
+#: Mailman/Archiver/HyperArch.py:845
+msgid "%(month)s %(year)i"
+msgstr "%(month)s %(year)i"
+
+#: Mailman/Archiver/HyperArch.py:850
+msgid "The Week Of Monday %(day)i %(month)s %(year)i"
+msgstr "A Semana do Mes %(day)i %(month)s %(year)i"
+
+#: Mailman/Archiver/HyperArch.py:854
+msgid "%(day)i %(month)s %(year)i"
+msgstr "%(day)i %(month)s %(year)i"
+
+#: Mailman/Archiver/HyperArch.py:951
+msgid "Computing threaded index\n"
+msgstr "Computando a indice da thread\n"
+
+#: Mailman/Archiver/HyperArch.py:1206
+msgid "Updating HTML for article %(seq)s"
+msgstr "Atualizando HTML para o artigo %(seq)s"
+
+#: Mailman/Archiver/HyperArch.py:1213
+msgid "article file %(filename)s is missing!"
+msgstr "o arquivo de artigo %(filename)s está faltando!"
+
+#: Mailman/Archiver/pipermail.py:168 Mailman/Archiver/pipermail.py:169
+msgid "No subject"
+msgstr "Sem assunto"
+
+#: Mailman/Archiver/pipermail.py:269
+msgid "Creating archive directory "
+msgstr "Criando diretório de arquivos"
+
+#: Mailman/Archiver/pipermail.py:281
+msgid "Reloading pickled archive state"
+msgstr "Recarregando estado de arquivos em conservação"
+
+#: Mailman/Archiver/pipermail.py:308
+msgid "Pickling archive state into "
+msgstr "Conservando estado de arquivos em "
+
+#: Mailman/Archiver/pipermail.py:419
+msgid "Updating index files for archive [%(archive)s]"
+msgstr "Atualizando indice de arquivos para o arquivo [%(archive)s]"
+
+#: Mailman/Archiver/pipermail.py:452
+msgid " Thread"
+msgstr " Discussão"
+
+#: Mailman/Archiver/pipermail.py:557
+msgid "#%(counter)05d %(msgid)s"
+msgstr "#%(counter)05d %(msgid)s"
+
+#: Mailman/Bouncer.py:44
+msgid "due to excessive bounces"
+msgstr "devido a retornos excessivos"
+
+#: Mailman/Bouncer.py:45
+msgid "by yourself"
+msgstr "por você mesmo"
+
+#: Mailman/Bouncer.py:46
+msgid "by the list administrator"
+msgstr "pelo administrador da lista"
+
+#: Mailman/Bouncer.py:47 Mailman/Bouncer.py:232
+#: Mailman/Commands/cmd_set.py:182
+msgid "for unknown reasons"
+msgstr "por razões desconhecidas"
+
+#: Mailman/Bouncer.py:179
+msgid "disabled"
+msgstr "desativado"
+
+#: Mailman/Bouncer.py:184
+msgid "Bounce action notification"
+msgstr "Notificação retorno de mensagem"
+
+#: Mailman/Bouncer.py:239
+msgid " The last bounce received from you was dated %(date)s"
+msgstr "O último bounce recebido de voce foi verificado em %(date)s"
+
+#: Mailman/Bouncer.py:264 Mailman/Deliverer.py:126
+#: Mailman/Handlers/Acknowledge.py:44 Mailman/Handlers/CookHeaders.py:236
+#: Mailman/Handlers/Hold.py:214 Mailman/Handlers/Hold.py:249
+#: Mailman/Handlers/ToDigest.py:211 Mailman/ListAdmin.py:235
+msgid "(no subject)"
+msgstr "(sem assunto)"
+
+#: Mailman/Bouncer.py:266
+msgid "[No bounce details are available]"
+msgstr "[Nenhum detalhe sobre o retorno da mensagem está disponível]"
+
+#: Mailman/Cgi/Auth.py:46
+msgid "Moderator"
+msgstr "Moderador"
+
+#: Mailman/Cgi/Auth.py:48
+msgid "Administrator"
+msgstr "Administrador"
+
+#: Mailman/Cgi/admin.py:70 Mailman/Cgi/admindb.py:89 Mailman/Cgi/confirm.py:55
+#: Mailman/Cgi/edithtml.py:67 Mailman/Cgi/listinfo.py:51
+#: Mailman/Cgi/options.py:71 Mailman/Cgi/private.py:98
+#: Mailman/Cgi/rmlist.py:64 Mailman/Cgi/roster.py:57
+#: Mailman/Cgi/subscribe.py:61
+msgid "No such list <em>%(safelistname)s</em>"
+msgstr "Nenhumta tal lista <em>%(safelistname)s</em>"
+
+#: Mailman/Cgi/admin.py:85 Mailman/Cgi/admindb.py:105
+#: Mailman/Cgi/edithtml.py:85 Mailman/Cgi/private.py:123
+msgid "Authorization failed."
+msgstr "Falha na autorização"
+
+#: Mailman/Cgi/admin.py:175
+msgid ""
+"You have turned off delivery of both digest and\n"
+" non-digest messages. This is an incompatible state of\n"
+" affairs. You must turn on either digest delivery or\n"
+" non-digest delivery or your mailing list will basically be\n"
+" unusable."
+msgstr ""
+"Você desativou a entrega das mensagens em ambos os modos digest e não \n"
+" digest. Este é um estado incompatível entre si. Você \n"
+" deve ativar ou a entrega digest ou a entrega não digest\n"
+" ou sua lista de discussão estará basicamente inutilizável."
+
+#: Mailman/Cgi/admin.py:179 Mailman/Cgi/admin.py:185 Mailman/Cgi/admin.py:190
+#: Mailman/Cgi/admin.py:1361 Mailman/Gui/GUIBase.py:184
+msgid "Warning: "
+msgstr "Alerta: "
+
+#: Mailman/Cgi/admin.py:183
+msgid ""
+"You have digest members, but digests are turned\n"
+" off. Those people will not receive mail."
+msgstr ""
+"Você possui membros que usam digest, mas o digest está desativado.\n"
+" Estas pessoas não receberão emails."
+
+#: Mailman/Cgi/admin.py:188
+msgid ""
+"You have regular list members but non-digestified mail is\n"
+" turned off. They will receive mail until you fix this\n"
+" problem."
+msgstr ""
+"Você tem membros regulares da lista mas os emails não-digest\n"
+" estão desativados. Eles continuarão recebendo mensagens \n"
+" até que este problema seja solucionado."
+
+#: Mailman/Cgi/admin.py:212
+msgid "%(hostname)s mailing lists - Admin Links"
+msgstr "listas de discussão em %(hostname)s - Links Administrativos"
+
+#: Mailman/Cgi/admin.py:241 Mailman/Cgi/listinfo.py:97
+msgid "Welcome!"
+msgstr "Bem Vindo!"
+
+#: Mailman/Cgi/admin.py:244 Mailman/Cgi/listinfo.py:100
+msgid "Mailman"
+msgstr "Mailman"
+
+#: Mailman/Cgi/admin.py:248
+msgid ""
+"<p>There currently are no publicly-advertised %(mailmanlink)s\n"
+" mailing lists on %(hostname)s."
+msgstr ""
+"<p>Não existem atualmente nenhuma lista de discussão pública do\n"
+" %(mailmanlink)s em %(hostname)s"
+
+#: Mailman/Cgi/admin.py:254
+msgid ""
+"<p>Below is the collection of publicly-advertised\n"
+" %(mailmanlink)s mailing lists on %(hostname)s. Click on a list\n"
+" name to visit the configuration pages for that list."
+msgstr ""
+"<p>Se encontra abaixo uma coleção de listas de discussão de acesso público \n"
+" do %(mailmanlink)s em %(hostname)s. Clique em um nome de lista\n"
+" para visitar as páginas de configuração."
+
+#: Mailman/Cgi/admin.py:261
+msgid "right "
+msgstr "direito "
+
+#: Mailman/Cgi/admin.py:263
+msgid ""
+"To visit the administrators configuration page for an\n"
+" unadvertised list, open a URL similar to this one, but with a '/' "
+"and\n"
+" the %(extra)slist name appended. If you have the proper authority,\n"
+" you can also <a href=\"%(creatorurl)s\">create a new mailing list</"
+"a>.\n"
+"\n"
+" <p>General list information can be found at "
+msgstr ""
+"Para visitar a página de configuração de administradores para uma lista \n"
+" não divulgada, abra uma URL parecida com esta, mas com uma '/' e\n"
+" o nome da lista %(extra)s adicionado. Se tiver autorização\n"
+" apropriada, você também poderá <a href=\"%(creatorurl)s\">criar\n"
+" uma nova lista de discussão</a>.\n"
+"\n"
+"\t<p>Informações gerais da lista podem ser encontradas em "
+
+#: Mailman/Cgi/admin.py:270
+msgid "the mailing list overview page"
+msgstr "a página de visualização da lista de discussão"
+
+#: Mailman/Cgi/admin.py:272
+msgid "<p>(Send questions and comments to "
+msgstr "<p>(Envie questões e comentários para "
+
+#: Mailman/Cgi/admin.py:282 Mailman/Cgi/listinfo.py:132 cron/mailpasswds:179
+msgid "List"
+msgstr "Lista"
+
+#: Mailman/Cgi/admin.py:283 Mailman/Cgi/admin.py:549
+#: Mailman/Cgi/listinfo.py:133
+msgid "Description"
+msgstr "Descrição"
+
+#: Mailman/Cgi/admin.py:289 Mailman/Cgi/listinfo.py:139 bin/list_lists:116
+msgid "[no description available]"
+msgstr "[nenhuma descrição disponível]"
+
+#: Mailman/Cgi/admin.py:322
+msgid "No valid variable name found."
+msgstr "Nenhum nome variável válido foi encontrado"
+
+#: Mailman/Cgi/admin.py:332
+msgid ""
+"%(realname)s Mailing list Configuration Help\n"
+" <br><em>%(varname)s</em> Option"
+msgstr ""
+"Ajuda de Configuração da lista de discussão %(realname)s\n"
+" Opção <br><em>%(varname)s</em>"
+
+#: Mailman/Cgi/admin.py:339
+msgid "Mailman %(varname)s List Option Help"
+msgstr "Ajuda na lista de opções do Mailman %(varname)s"
+
+#: Mailman/Cgi/admin.py:357
+msgid ""
+"<em><strong>Warning:</strong> changing this option here\n"
+" could cause other screens to be out-of-sync. Be sure to reload any "
+"other\n"
+" pages that are displaying this option for this mailing list. You can "
+"also\n"
+" "
+msgstr ""
+"<em><strong>Alerta:</strong> a modificação desta opção poderão deixar \n"
+"esta tela fora de sincronismo. Tenha certeza de recarregar quaisquer "
+"outras \n"
+"páginas que estão mostrando esta opção para a lista de discussão Você "
+"também \n"
+"poderá.\n"
+" "
+
+#: Mailman/Cgi/admin.py:368
+msgid "return to the %(categoryname)s options page."
+msgstr "Retornar para a página de opções %(categoryname)s."
+
+#: Mailman/Cgi/admin.py:383
+msgid "%(realname)s Administration (%(label)s)"
+msgstr "Administração da %(realname)s (%(label)s)"
+
+#: Mailman/Cgi/admin.py:384
+msgid "%(realname)s mailing list administration<br>%(label)s Section"
+msgstr "Seção de administração da lista de discussão %(realname)s<br>%(label)s"
+
+#: Mailman/Cgi/admin.py:400
+msgid "Configuration Categories"
+msgstr "Categorias de Configuração"
+
+#: Mailman/Cgi/admin.py:401
+msgid "Other Administrative Activities"
+msgstr "Outras Atividades Administrativas"
+
+#: Mailman/Cgi/admin.py:405
+msgid "Tend to pending moderator requests"
+msgstr "Supervisionar requisições de moderação administrativas pendentes"
+
+#: Mailman/Cgi/admin.py:407
+msgid "Go to the general list information page"
+msgstr "Ir para a página geral de detalhes da lista"
+
+#: Mailman/Cgi/admin.py:409
+msgid "Edit the public HTML pages"
+msgstr "Editar as páginas HTML públicas"
+
+#: Mailman/Cgi/admin.py:411
+msgid "Go to list archives"
+msgstr "Ir para os arquivos da lista"
+
+#: Mailman/Cgi/admin.py:417
+msgid "Delete this mailing list"
+msgstr "Apagar esta lista de discussão"
+
+#: Mailman/Cgi/admin.py:418
+msgid " (requires confirmation)<br>&nbsp;<br>"
+msgstr " (requer confirmação)<br>&nbsp;<br>"
+
+#: Mailman/Cgi/admin.py:424
+msgid "Logout"
+msgstr "Sair"
+
+#: Mailman/Cgi/admin.py:468
+msgid "Emergency moderation of all list traffic is enabled"
+msgstr ""
+"A Moderação de emergência para o tráfego de todas as listas está ativado"
+
+#: Mailman/Cgi/admin.py:479
+msgid ""
+"Make your changes in the following section, then submit them\n"
+" using the <em>Submit Your Changes</em> button below."
+msgstr ""
+"Fazer suas modificações nas seguinte seção, então as submeter\n"
+" usando o botão <em>Enviar suas modificações</em> abaixo."
+
+#: Mailman/Cgi/admin.py:497
+msgid "Additional Member Tasks"
+msgstr "Tarefas adicionais dos Membros"
+
+#: Mailman/Cgi/admin.py:503
+msgid ""
+"<li>Set everyone's moderation bit, including\n"
+" those members not currently visible"
+msgstr ""
+"<li>Ajustar o bit de moderação em todos, incluindo\n"
+" estes membros que não estão visíveis atualmente."
+
+#: Mailman/Cgi/admin.py:507
+msgid "Off"
+msgstr "Desativar"
+
+#: Mailman/Cgi/admin.py:507
+msgid "On"
+msgstr "Ativar"
+
+#: Mailman/Cgi/admin.py:509
+msgid "Set"
+msgstr "Ajustar"
+
+#: Mailman/Cgi/admin.py:550
+msgid "Value"
+msgstr "Valor"
+
+#: Mailman/Cgi/admin.py:604
+msgid ""
+"Badly formed options entry:\n"
+" %(record)s"
+msgstr ""
+"Entrada de opções mal formada:\n"
+" %(record)s"
+
+#: Mailman/Cgi/admin.py:662
+msgid "<em>Enter the text below, or...</em><br>"
+msgstr "<em>Entre com o texto abaixo, ou...</em><br>"
+
+#: Mailman/Cgi/admin.py:664
+msgid "<br><em>...specify a file to upload</em><br>"
+msgstr "<br><em>... especifique um arquivo para upload</em><br>"
+
+#: Mailman/Cgi/admin.py:690 Mailman/Cgi/admin.py:693
+msgid "Topic %(i)d"
+msgstr "Tópico %(i)d"
+
+#: Mailman/Cgi/admin.py:694
+msgid "Delete"
+msgstr "Apagar"
+
+#: Mailman/Cgi/admin.py:695
+msgid "Topic name:"
+msgstr "Nome de tópico:"
+
+#: Mailman/Cgi/admin.py:697
+msgid "Regexp:"
+msgstr "Expressão Regular:"
+
+#: Mailman/Cgi/admin.py:700 Mailman/Cgi/options.py:943
+msgid "Description:"
+msgstr "Descrição"
+
+#: Mailman/Cgi/admin.py:704
+msgid "Add new item..."
+msgstr "Adicionar novo item..."
+
+#: Mailman/Cgi/admin.py:706
+msgid "...before this one."
+msgstr "...antes deste."
+
+#: Mailman/Cgi/admin.py:707
+msgid "...after this one."
+msgstr "...após este."
+
+#: Mailman/Cgi/admin.py:742
+msgid "<br>(Edit <b>%(varname)s</b>)"
+msgstr "<br>(Editar <b>%(varname)s</b>)"
+
+#: Mailman/Cgi/admin.py:744
+msgid "<br>(Details for <b>%(varname)s</b>)"
+msgstr "<br>(Detalhes de <b>%(varname)s</b>)"
+
+#: Mailman/Cgi/admin.py:751
+msgid ""
+"<br><em><strong>Note:</strong>\n"
+" setting this value performs an immediate action but does not modify\n"
+" permanent state.</em>"
+msgstr ""
+"<br><em><strong>Nota:</strong>\n"
+" a definição deste valor realiza uma ação imediata mas não modifica \n"
+" o estado permanente.</em>"
+
+#: Mailman/Cgi/admin.py:765
+msgid "Mass Subscriptions"
+msgstr "Inscrição em Massa"
+
+#: Mailman/Cgi/admin.py:772
+msgid "Mass Removals"
+msgstr "Remoção em Massa"
+
+#: Mailman/Cgi/admin.py:779
+msgid "Membership List"
+msgstr "Lista de Membros"
+
+#: Mailman/Cgi/admin.py:786
+msgid "(help)"
+msgstr "(ajuda)"
+
+#: Mailman/Cgi/admin.py:787
+msgid "Find member %(link)s:"
+msgstr "Encontrar membro %(link)s:"
+
+#: Mailman/Cgi/admin.py:790
+msgid "Search..."
+msgstr "Procurar..."
+
+#: Mailman/Cgi/admin.py:805
+msgid "Bad regular expression: "
+msgstr "Expressão regular incorreta:"
+
+#: Mailman/Cgi/admin.py:861
+msgid "%(allcnt)s members total, %(membercnt)s shown"
+msgstr "%(allcnt)s membros no total, %(membercnt)s mostrados"
+
+#: Mailman/Cgi/admin.py:864
+msgid "%(allcnt)s members total"
+msgstr "%(allcnt)s membros no total"
+
+#: Mailman/Cgi/admin.py:887
+msgid "unsub"
+msgstr "desinscr"
+
+#: Mailman/Cgi/admin.py:888
+msgid "member address<br>member name"
+msgstr "endereço do membro<br>nome do membro"
+
+#: Mailman/Cgi/admin.py:889
+msgid "hide"
+msgstr "ocultar"
+
+#: Mailman/Cgi/admin.py:889
+msgid "mod"
+msgstr "mod"
+
+#: Mailman/Cgi/admin.py:890
+msgid "nomail<br>[reason]"
+msgstr "sem mensagens<br>[razão]"
+
+#: Mailman/Cgi/admin.py:891
+msgid "ack"
+msgstr "notif"
+
+#: Mailman/Cgi/admin.py:891
+msgid "not metoo"
+msgstr "menos eu"
+
+#: Mailman/Cgi/admin.py:892
+msgid "nodupes"
+msgstr "sem duplicados"
+
+#: Mailman/Cgi/admin.py:893
+msgid "digest"
+msgstr "digest"
+
+#: Mailman/Cgi/admin.py:893
+msgid "plain"
+msgstr "plano"
+
+#: Mailman/Cgi/admin.py:894
+msgid "language"
+msgstr "idioma"
+
+#: Mailman/Cgi/admin.py:905
+msgid "?"
+msgstr "?"
+
+#: Mailman/Cgi/admin.py:906
+msgid "U"
+msgstr "U"
+
+#: Mailman/Cgi/admin.py:907
+msgid "A"
+msgstr "A"
+
+#: Mailman/Cgi/admin.py:908
+msgid "B"
+msgstr "B"
+
+#: Mailman/Cgi/admin.py:979
+msgid "<b>unsub</b> -- Click on this to unsubscribe the member."
+msgstr "<b>desinscr</b> -- Clique aqui para desinscrever o membro."
+
+#: Mailman/Cgi/admin.py:981
+msgid ""
+"<b>mod</b> -- The user's personal moderation flag. If this is\n"
+" set, postings from them will be moderated, otherwise they will be\n"
+" approved."
+msgstr ""
+"<b>mod</b> -- A opção de moderação pessoal do usuário. Caso seja definida,\n"
+" postagem vindas desta pessoa serão moderadas, caso contrário, \n"
+" serão aprovadas."
+
+#: Mailman/Cgi/admin.py:985
+msgid ""
+"<b>hide</b> -- Is the member's address concealed on\n"
+" the list of subscribers?"
+msgstr ""
+"<b>ocultar</b> - O endereço do membro será oculto da lista\n"
+" de inscritos?"
+
+#: Mailman/Cgi/admin.py:987
+msgid ""
+"<b>nomail</b> -- Is delivery to the member disabled? If so, an\n"
+" abbreviation will be given describing the reason for the disabled\n"
+" delivery:\n"
+" <ul><li><b>U</b> -- Delivery was disabled by the user via their\n"
+" personal options page.\n"
+" <li><b>A</b> -- Delivery was disabled by the list\n"
+" administrators.\n"
+" <li><b>B</b> -- Delivery was disabled by the system due to\n"
+" excessive bouncing from the member's address.\n"
+" <li><b>?</b> -- The reason for disabled delivery isn't "
+"known.\n"
+" This is the case for all memberships which were "
+"disabled\n"
+" in older versions of Mailman.\n"
+" </ul>"
+msgstr ""
+"<b>sem mensagens</b> -- A entrega para o membro está desativada? Se estiver, "
+"um motivo deverá descrever a razão para a desativação da entrega:\n"
+" <ul><li><b>U</b> -- A entrega foi desativada pelo usuário \n"
+" através de sua página pessoal de opções.\n"
+" <li><b>A</b> -- A entrega foi desativada pelos "
+"administradores\n"
+" da lista.\n"
+" <li><b>B</b> -- A entrega foi desativada pelo sistema por \n"
+" erros excessivos do endereço do membro.\n"
+" <li><b>?</b> -- A razão para desativação da entrega é \n"
+" desconhecido. Este é o caso de todos os membros que "
+"foram \n"
+" desativados em versões antigas do Mailman.\n"
+" </ul>"
+
+#: Mailman/Cgi/admin.py:1002
+msgid ""
+"<b>ack</b> -- Does the member get acknowledgements of their\n"
+" posts?"
+msgstr ""
+"<b>notif</b> -- O membro receberá notificação de suas próprias postagens?"
+
+#: Mailman/Cgi/admin.py:1005
+msgid ""
+"<b>not metoo</b> -- Does the member want to avoid copies of their\n"
+" own postings?"
+msgstr ""
+"<b>menos eu</b> -- O membro deseja evitar cópia de suas próprias\n"
+" postagens?"
+
+#: Mailman/Cgi/admin.py:1008
+msgid ""
+"<b>nodupes</b> -- Does the member want to avoid duplicates of the\n"
+" same message?"
+msgstr ""
+"<b>sem duplicadas</b> -- O membro quer evitar cópias duplicadas da\n"
+" mesma mensagem?"
+
+#: Mailman/Cgi/admin.py:1011
+msgid ""
+"<b>digest</b> -- Does the member get messages in digests?\n"
+" (otherwise, individual messages)"
+msgstr ""
+"<b>digest</b> -- O membro recebe mensagens em digest?\n"
+" (caso contrário, mensagens individuais)"
+
+#: Mailman/Cgi/admin.py:1014
+msgid ""
+"<b>plain</b> -- If getting digests, does the member get plain\n"
+" text digests? (otherwise, MIME)"
+msgstr ""
+"<b>plano</b> -- Se estiver recebendo digests, o membro recebe texto\n"
+" plano nas digests? (caso contrário, MIME)"
+
+#: Mailman/Cgi/admin.py:1016
+msgid "<b>language</b> -- Language preferred by the user"
+msgstr "<b>idioma</b> -- Idioma preferido pelo usuário"
+
+#: Mailman/Cgi/admin.py:1030
+msgid "Click here to hide the legend for this table."
+msgstr "Clique aqui para ocultar a legenda desta tabela."
+
+#: Mailman/Cgi/admin.py:1034
+msgid "Click here to include the legend for this table."
+msgstr "Clique aqui para incluir a legenda para esta tabela."
+
+#: Mailman/Cgi/admin.py:1041
+msgid ""
+"<p><em>To view more members, click on the appropriate\n"
+" range listed below:</em>"
+msgstr ""
+"<p><em>Para ver mais membros, clique na escala apropriada\n"
+" listada abaixo:</em>"
+
+#: Mailman/Cgi/admin.py:1050
+msgid "from %(start)s to %(end)s"
+msgstr "de %(start)s para %(end)s"
+
+#: Mailman/Cgi/admin.py:1063
+msgid "Subscribe these users now or invite them?"
+msgstr "Inscrever estes usuários agora ou convida-los?"
+
+#: Mailman/Cgi/admin.py:1065
+msgid "Invite"
+msgstr "Convidar"
+
+#: Mailman/Cgi/admin.py:1065 Mailman/Cgi/listinfo.py:175
+msgid "Subscribe"
+msgstr "Inscrever"
+
+#: Mailman/Cgi/admin.py:1071
+msgid "Send welcome messages to new subscribees?"
+msgstr "Enviar mensagens de boas bindas para novos inscritos?"
+
+#: Mailman/Cgi/admin.py:1073 Mailman/Cgi/admin.py:1082
+#: Mailman/Cgi/admin.py:1115 Mailman/Cgi/admin.py:1123
+#: Mailman/Cgi/confirm.py:271 Mailman/Cgi/create.py:327
+#: Mailman/Cgi/create.py:355 Mailman/Cgi/create.py:395
+#: Mailman/Cgi/rmlist.py:228 Mailman/Gui/Archive.py:33
+#: Mailman/Gui/Autoresponse.py:54 Mailman/Gui/Autoresponse.py:62
+#: Mailman/Gui/Autoresponse.py:71 Mailman/Gui/Bounce.py:77
+#: Mailman/Gui/Bounce.py:108 Mailman/Gui/Bounce.py:134
+#: Mailman/Gui/Bounce.py:143 Mailman/Gui/ContentFilter.py:70
+#: Mailman/Gui/ContentFilter.py:103 Mailman/Gui/Digest.py:46
+#: Mailman/Gui/Digest.py:62 Mailman/Gui/Digest.py:84 Mailman/Gui/Digest.py:89
+#: Mailman/Gui/General.py:148 Mailman/Gui/General.py:154
+#: Mailman/Gui/General.py:232 Mailman/Gui/General.py:259
+#: Mailman/Gui/General.py:286 Mailman/Gui/General.py:297
+#: Mailman/Gui/General.py:300 Mailman/Gui/General.py:310
+#: Mailman/Gui/General.py:315 Mailman/Gui/General.py:325
+#: Mailman/Gui/General.py:345 Mailman/Gui/General.py:373
+#: Mailman/Gui/General.py:396 Mailman/Gui/NonDigest.py:44
+#: Mailman/Gui/NonDigest.py:52 Mailman/Gui/Privacy.py:101
+#: Mailman/Gui/Privacy.py:107 Mailman/Gui/Privacy.py:140
+#: Mailman/Gui/Privacy.py:188 Mailman/Gui/Privacy.py:296
+#: Mailman/Gui/Privacy.py:309 Mailman/Gui/Usenet.py:50
+#: Mailman/Gui/Usenet.py:54 Mailman/Gui/Usenet.py:91 Mailman/Gui/Usenet.py:103
+msgid "No"
+msgstr "Não"
+
+#: Mailman/Cgi/admin.py:1073 Mailman/Cgi/admin.py:1082
+#: Mailman/Cgi/admin.py:1115 Mailman/Cgi/admin.py:1123
+#: Mailman/Cgi/confirm.py:271 Mailman/Cgi/create.py:327
+#: Mailman/Cgi/create.py:355 Mailman/Cgi/create.py:395
+#: Mailman/Cgi/rmlist.py:228 Mailman/Gui/Archive.py:33
+#: Mailman/Gui/Autoresponse.py:54 Mailman/Gui/Autoresponse.py:62
+#: Mailman/Gui/Bounce.py:77 Mailman/Gui/Bounce.py:108
+#: Mailman/Gui/Bounce.py:134 Mailman/Gui/Bounce.py:143
+#: Mailman/Gui/ContentFilter.py:70 Mailman/Gui/ContentFilter.py:103
+#: Mailman/Gui/Digest.py:46 Mailman/Gui/Digest.py:62 Mailman/Gui/Digest.py:84
+#: Mailman/Gui/Digest.py:89 Mailman/Gui/General.py:148
+#: Mailman/Gui/General.py:154 Mailman/Gui/General.py:232
+#: Mailman/Gui/General.py:259 Mailman/Gui/General.py:286
+#: Mailman/Gui/General.py:297 Mailman/Gui/General.py:300
+#: Mailman/Gui/General.py:310 Mailman/Gui/General.py:315
+#: Mailman/Gui/General.py:325 Mailman/Gui/General.py:345
+#: Mailman/Gui/General.py:373 Mailman/Gui/General.py:396
+#: Mailman/Gui/NonDigest.py:44 Mailman/Gui/NonDigest.py:52
+#: Mailman/Gui/Privacy.py:101 Mailman/Gui/Privacy.py:107
+#: Mailman/Gui/Privacy.py:140 Mailman/Gui/Privacy.py:188
+#: Mailman/Gui/Privacy.py:296 Mailman/Gui/Privacy.py:309
+#: Mailman/Gui/Usenet.py:50 Mailman/Gui/Usenet.py:54 Mailman/Gui/Usenet.py:91
+#: Mailman/Gui/Usenet.py:103
+msgid "Yes"
+msgstr "Sim"
+
+#: Mailman/Cgi/admin.py:1080
+msgid "Send notifications of new subscriptions to the list owner?"
+msgstr "Enviar notificação de novas inscrições para o dono da lista?"
+
+#: Mailman/Cgi/admin.py:1088 Mailman/Cgi/admin.py:1129
+msgid "Enter one address per line below..."
+msgstr "Entre com um endereço por linha abaixo..."
+
+#: Mailman/Cgi/admin.py:1093 Mailman/Cgi/admin.py:1134
+msgid "...or specify a file to upload:"
+msgstr "... ou especifique um arquivo para upload:"
+
+#: Mailman/Cgi/admin.py:1098
+msgid ""
+"Below, enter additional text to be added to the\n"
+" top of your invitation or the subscription notification. Include at "
+"least\n"
+" one blank line at the end..."
+msgstr ""
+"Entre abaixo com um texto adicional que será adicionado no topo\n"
+"do seu convite ou notificação de inscrição. Incluindo pelo menos uma\n"
+"linha em branco no final..."
+
+#: Mailman/Cgi/admin.py:1113
+msgid "Send unsubscription acknowledgement to the user?"
+msgstr "Enviar notificações de desinscrições para o usuário?"
+
+#: Mailman/Cgi/admin.py:1121
+msgid "Send notifications to the list owner?"
+msgstr "Enviar notificacões para o dono da lista?"
+
+#: Mailman/Cgi/admin.py:1143
+msgid "Change list ownership passwords"
+msgstr "Modificar senhas do dono da lista"
+
+#: Mailman/Cgi/admin.py:1146
+msgid ""
+"The <em>list administrators</em> are the people who have ultimate control "
+"over\n"
+"all parameters of this mailing list. They are able to change any list\n"
+"configuration variable available through these administration web pages.\n"
+"\n"
+"<p>The <em>list moderators</em> have more limited permissions; they are not\n"
+"able to change any list configuration variable, but they are allowed to "
+"tend\n"
+"to pending administration requests, including approving or rejecting held\n"
+"subscription requests, and disposing of held postings. Of course, the\n"
+"<em>list administrators</em> can also tend to pending requests.\n"
+"\n"
+"<p>In order to split the list ownership duties into administrators and\n"
+"moderators, you must set a separate moderator password in the fields below,\n"
+"and also provide the email addresses of the list moderators in the\n"
+"<a href=\"%(adminurl)s/general\">general options section</a>."
+msgstr ""
+"Os <em>Administradores da lista</em> são pessoas que tem controle total "
+"sobre\n"
+"as opções desta lista de discussão. Eles são capazazes de modificar "
+"qualquer\n"
+"variável de configuração disponível através das páginas web.\n"
+"\n"
+"<p>Os <em>moderadores da lista</em> tem permissões mais limitadas; eles "
+"não \n"
+"são capazes de modificar qualquer variável de configuração das listas, \n"
+"mas eles tem permissão de atender requisições administrativas e despachar \n"
+"postagens pendentes. É claro, <em>administradores de listas</em> também \n"
+"podem liberar requisições pendentes.\n"
+"\n"
+"<p>Para dividir a responsabilidade do dono da lista em administradores e \n"
+"moderadores, você deverá definir uma senha separada de moderador nos \n"
+"campos abaixo e também fornecer ume ndereço de email do moderador da \n"
+"lista na <a href=\\\"%(adminurl)s/general\\\">seção de opções gerais</a>."
+
+#: Mailman/Cgi/admin.py:1165
+msgid "Enter new administrator password:"
+msgstr "Entre com a nova senha de admnistrador:"
+
+#: Mailman/Cgi/admin.py:1167
+msgid "Confirm administrator password:"
+msgstr "Confirme a senha do administrador:"
+
+#: Mailman/Cgi/admin.py:1172
+msgid "Enter new moderator password:"
+msgstr "Entre com a nova senha de moderador:"
+
+#: Mailman/Cgi/admin.py:1174
+msgid "Confirm moderator password:"
+msgstr "Confirme a senha do moderador:"
+
+#: Mailman/Cgi/admin.py:1184
+msgid "Submit Your Changes"
+msgstr "Enviar suas modificações"
+
+#: Mailman/Cgi/admin.py:1207
+msgid "Moderator passwords did not match"
+msgstr "As senhas de moderador não conferem"
+
+#: Mailman/Cgi/admin.py:1217
+msgid "Administrator passwords did not match"
+msgstr "As senhas de administrador não conferem"
+
+#: Mailman/Cgi/admin.py:1265
+msgid "Already a member"
+msgstr "Já é um membro"
+
+#: Mailman/Cgi/admin.py:1268
+msgid "&lt;blank line&gt;"
+msgstr "&lt;linha em branco&gt;"
+
+#: Mailman/Cgi/admin.py:1269 Mailman/Cgi/admin.py:1272
+msgid "Bad/Invalid email address"
+msgstr "endereço de email incorreto/inválido"
+
+#: Mailman/Cgi/admin.py:1275
+msgid "Hostile address (illegal characters)"
+msgstr "Endereço hostil (caracteres ilegais)"
+
+#: Mailman/Cgi/admin.py:1281
+msgid "Successfully invited:"
+msgstr "Convidado com sucesso:"
+
+#: Mailman/Cgi/admin.py:1283
+msgid "Successfully subscribed:"
+msgstr "Inscrito com sucesso:"
+
+#: Mailman/Cgi/admin.py:1288
+msgid "Error inviting:"
+msgstr "Erro convidando:"
+
+#: Mailman/Cgi/admin.py:1290
+msgid "Error subscribing:"
+msgstr "Erro inscrevendo:"
+
+#: Mailman/Cgi/admin.py:1319
+msgid "Successfully Unsubscribed:"
+msgstr "Descadastrado com Sucesso:"
+
+#: Mailman/Cgi/admin.py:1324
+msgid "Cannot unsubscribe non-members:"
+msgstr "Não é possível desinscrever pessoas que não são membros:"
+
+#: Mailman/Cgi/admin.py:1336
+msgid "Bad moderation flag value"
+msgstr "Valor da opção de moderação incorreta"
+
+#: Mailman/Cgi/admin.py:1357
+msgid "Not subscribed"
+msgstr "Não inscrito"
+
+#: Mailman/Cgi/admin.py:1360
+msgid "Ignoring changes to deleted member: %(user)s"
+msgstr "Ignorando modificações no membro apagado: %(user)s"
+
+#: Mailman/Cgi/admin.py:1400
+msgid "Successfully Removed:"
+msgstr "Removido cm sucesso:"
+
+#: Mailman/Cgi/admin.py:1404
+msgid "Error Unsubscribing:"
+msgstr "Erro descadastrando:"
+
+#: Mailman/Cgi/admindb.py:159 Mailman/Cgi/admindb.py:167
+msgid "%(realname)s Administrative Database"
+msgstr "Banco de dados Administrativo %(realname)s"
+
+#: Mailman/Cgi/admindb.py:162
+msgid "%(realname)s Administrative Database Results"
+msgstr "Resultados do banco de dados Administrativo %(realname)s"
+
+#: Mailman/Cgi/admindb.py:170
+msgid "There are no pending requests."
+msgstr "Não existem requisições pendentes."
+
+#: Mailman/Cgi/admindb.py:173
+msgid "Click here to reload this page."
+msgstr "Clique aqui para recarregar esta página"
+
+#: Mailman/Cgi/admindb.py:184
+msgid "Detailed instructions for the administrative database"
+msgstr "Instruções detalhadas para o banco de dados administrativo."
+
+#: Mailman/Cgi/admindb.py:188
+msgid "Administrative requests for mailing list:"
+msgstr "Requisições Administrativas para a lista de discussão:"
+
+#: Mailman/Cgi/admindb.py:191 Mailman/Cgi/admindb.py:234
+msgid "Submit All Data"
+msgstr "Enviar todos os dados"
+
+#: Mailman/Cgi/admindb.py:204
+msgid "all of %(esender)s's held messages."
+msgstr "todas as mensagens em espera de %(esender)s"
+
+#: Mailman/Cgi/admindb.py:209
+msgid "a single held message."
+msgstr "uma mensagem em espera simples."
+
+#: Mailman/Cgi/admindb.py:214
+msgid "all held messages."
+msgstr "todas as mensagens em espera"
+
+#: Mailman/Cgi/admindb.py:249
+msgid "Mailman Administrative Database Error"
+msgstr "Erro no banco de dados Administrativo do Mailman"
+
+#: Mailman/Cgi/admindb.py:254
+msgid "list of available mailing lists."
+msgstr "listar todas as listas de discussão disponíveis"
+
+#: Mailman/Cgi/admindb.py:255
+msgid "You must specify a list name. Here is the %(link)s"
+msgstr "Você deverá especificar um nome de lista. Aqui é a %(link)s"
+
+#: Mailman/Cgi/admindb.py:268
+msgid "Subscription Requests"
+msgstr "Requisições de Inscrição"
+
+#: Mailman/Cgi/admindb.py:270
+msgid "Address/name"
+msgstr "Nome/endereço"
+
+#: Mailman/Cgi/admindb.py:271 Mailman/Cgi/admindb.py:320
+msgid "Your decision"
+msgstr "Sua decisão"
+
+#: Mailman/Cgi/admindb.py:272 Mailman/Cgi/admindb.py:321
+msgid "Reason for refusal"
+msgstr "Razão para recusa"
+
+#: Mailman/Cgi/admindb.py:289 Mailman/Cgi/admindb.py:346
+#: Mailman/Cgi/admindb.py:389 Mailman/Cgi/admindb.py:612
+msgid "Defer"
+msgstr "Deferir"
+
+#: Mailman/Cgi/admindb.py:290 Mailman/Cgi/admindb.py:347
+#: Mailman/Cgi/admindb.py:612
+msgid "Approve"
+msgstr "Aprovar"
+
+#: Mailman/Cgi/admindb.py:291 Mailman/Cgi/admindb.py:348
+#: Mailman/Cgi/admindb.py:389 Mailman/Cgi/admindb.py:612
+#: Mailman/Gui/ContentFilter.py:37 Mailman/Gui/Privacy.py:207
+#: Mailman/Gui/Privacy.py:281
+msgid "Reject"
+msgstr "Rejeitar"
+
+#: Mailman/Cgi/admindb.py:292 Mailman/Cgi/admindb.py:349
+#: Mailman/Cgi/admindb.py:389 Mailman/Cgi/admindb.py:612
+#: Mailman/Gui/ContentFilter.py:37 Mailman/Gui/Privacy.py:207
+#: Mailman/Gui/Privacy.py:281
+msgid "Discard"
+msgstr "Descartar"
+
+#: Mailman/Cgi/admindb.py:300
+msgid "Permanently ban from this list"
+msgstr "Banir permanentemente desta lista"
+
+#: Mailman/Cgi/admindb.py:319
+msgid "User address/name"
+msgstr "Nome/endereço do Usuário"
+
+#: Mailman/Cgi/admindb.py:359
+msgid "Unsubscription Requests"
+msgstr "Requisições de Desinscrição"
+
+#: Mailman/Cgi/admindb.py:382 Mailman/Cgi/admindb.py:596
+msgid "From:"
+msgstr "De:"
+
+#: Mailman/Cgi/admindb.py:385
+msgid "Action to take on all these held messages:"
+msgstr "Ação a ser tomada em todas estas mensagens em espera:"
+
+#: Mailman/Cgi/admindb.py:389 Mailman/Gui/Privacy.py:281
+msgid "Accept"
+msgstr "Aceitar"
+
+#: Mailman/Cgi/admindb.py:397
+msgid "Preserve messages for the site administrator"
+msgstr "Preserver mensagens para o administrador do site"
+
+#: Mailman/Cgi/admindb.py:403
+msgid "Forward messages (individually) to:"
+msgstr "Encaminhar mensagens (individualmente) para:"
+
+#: Mailman/Cgi/admindb.py:421
+msgid "Clear this member's <em>moderate</em> flag"
+msgstr "Limpar a opção de <em>moderação</em> deste membro"
+
+#: Mailman/Cgi/admindb.py:425
+msgid "<em>The sender is now a member of this list</em>"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:434
+msgid "Add <b>%(esender)s</b> to a sender filter"
+msgstr "Adicionar <b>%(esender)s</b ao filtro de remetentes."
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Accepts"
+msgstr "Aceitadas"
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Discards"
+msgstr "Descartadas"
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Holds"
+msgstr "Presas"
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Rejects"
+msgstr "Rejeitadas"
+
+#: Mailman/Cgi/admindb.py:448
+msgid ""
+"Ban <b>%(esender)s</b> from ever subscribing to this\n"
+" mailing list"
+msgstr ""
+"Banir <em>%(esender)s</b> de sempre se inscrever a esta\n"
+" lista de discussão"
+
+#: Mailman/Cgi/admindb.py:453
+msgid ""
+"Click on the message number to view the individual\n"
+" message, or you can "
+msgstr ""
+"Clique no número da mensagem para vê-la individualmente, \n"
+" ou você pode"
+
+#: Mailman/Cgi/admindb.py:455
+msgid "view all messages from %(esender)s"
+msgstr "ver todas as mensagnes do %(esender)s"
+
+#: Mailman/Cgi/admindb.py:475 Mailman/Cgi/admindb.py:599
+msgid "Subject:"
+msgstr "Assunto:"
+
+#: Mailman/Cgi/admindb.py:478
+msgid " bytes"
+msgstr " bytes"
+
+#: Mailman/Cgi/admindb.py:478
+msgid "Size:"
+msgstr "Tamanho:"
+
+#: Mailman/Cgi/admindb.py:482 Mailman/Handlers/Decorate.py:50
+#: Mailman/Handlers/Scrubber.py:226 Mailman/Handlers/Scrubber.py:227
+msgid "not available"
+msgstr "não disponível"
+
+#: Mailman/Cgi/admindb.py:483 Mailman/Cgi/admindb.py:601
+msgid "Reason:"
+msgstr "Razão:"
+
+#: Mailman/Cgi/admindb.py:487 Mailman/Cgi/admindb.py:605
+msgid "Received:"
+msgstr "Recebida:"
+
+#: Mailman/Cgi/admindb.py:545
+msgid "Posting Held for Approval"
+msgstr "Postando em espera para aprovação"
+
+#: Mailman/Cgi/admindb.py:547
+msgid " (%(count)d of %(total)d)"
+msgstr "(%(count)d de %(total)d)"
+
+#: Mailman/Cgi/admindb.py:558
+msgid "<em>Message with id #%(id)d was lost."
+msgstr "<em>A mensagem com a id #%(id)d foi perdida."
+
+#: Mailman/Cgi/admindb.py:567
+msgid "<em>Message with id #%(id)d is corrupted."
+msgstr "<em>A mensagem com a id #%(id)d foi corrompida."
+
+#: Mailman/Cgi/admindb.py:618
+msgid "Action:"
+msgstr "Ação:"
+
+#: Mailman/Cgi/admindb.py:622
+msgid "Preserve message for site administrator"
+msgstr "Preservar mensagem para o administrador do site"
+
+#: Mailman/Cgi/admindb.py:626
+msgid "Additionally, forward this message to: "
+msgstr "Adicionalmente, encaminhar esta mensagem para:"
+
+#: Mailman/Cgi/admindb.py:630
+msgid "[No explanation given]"
+msgstr "[Nenhuma explicação feita]"
+
+#: Mailman/Cgi/admindb.py:632
+msgid "If you reject this post,<br>please explain (optional):"
+msgstr ""
+"Caso tenha rejeitado esta postagem, <br>por favor justifique (opcional):"
+
+#: Mailman/Cgi/admindb.py:638
+msgid "Message Headers:"
+msgstr "Cabeçalhos da Mensagem:"
+
+#: Mailman/Cgi/admindb.py:643
+msgid "Message Excerpt:"
+msgstr "Resumo da Mensagem"
+
+#: Mailman/Cgi/admindb.py:676 Mailman/Deliverer.py:124
+msgid "No reason given"
+msgstr "Nenhuma razão explicada"
+
+#: Mailman/Cgi/admindb.py:737 Mailman/ListAdmin.py:308
+#: Mailman/ListAdmin.py:429
+msgid "[No reason given]"
+msgstr "[Nenhuma razão explicada]"
+
+#: Mailman/Cgi/admindb.py:766
+msgid "Database Updated..."
+msgstr "Banco de dados atualizado..."
+
+#: Mailman/Cgi/admindb.py:769
+msgid " is already a member"
+msgstr " já é um membro"
+
+#: Mailman/Cgi/confirm.py:69
+msgid "Confirmation string was empty."
+msgstr "A string de confirmação foi esvaziada."
+
+#: Mailman/Cgi/confirm.py:89
+msgid ""
+"<b>Invalid confirmation string:</b>\n"
+" %(safecookie)s.\n"
+"\n"
+" <p>Note that confirmation strings expire approximately\n"
+" %(days)s days after the initial subscription request. If your\n"
+" confirmation has expired, please try to re-submit your subscription.\n"
+" Otherwise, <a href=\"%(confirmurl)s\">re-enter</a> your confirmation\n"
+" string."
+msgstr ""
+"<b>String de confirmação inválida:</b>\n"
+" %(safecookie)s.\n"
+"\n"
+" <p>Note que strings de confirmação expiram aproximadamente\n"
+" %(days)s dias após a requisição inicial de inscrição. Caso sua \n"
+" confirmação tenha expirado, tente re-enviar sua inscrição.\n"
+" Caso contrário, <a href=\\\"%(confirmurl)s\\\">re-entre</a> com sua \n"
+" string de confirmação."
+
+#: Mailman/Cgi/confirm.py:122
+msgid ""
+"The address requesting unsubscription is not\n"
+" a member of the mailing list. Perhaps you have already "
+"been\n"
+" unsubscribed, e.g. by the list administrator?"
+msgstr ""
+"O endereço que está solicitando a desinscrição não é um\n"
+" membro da lista de discussão. Talvez você já tenha sido\n"
+" desinscrito, e.g. pelo administrador da lista?"
+
+#: Mailman/Cgi/confirm.py:138
+msgid ""
+"The address requesting to be changed has\n"
+" been subsequently unsubscribed. This request has been\n"
+" cancelled."
+msgstr ""
+"O endereço requisitando ser modificado foi\n"
+" consequentimente descadastrado. Esta requisição foi \n"
+" cancelada."
+
+#: Mailman/Cgi/confirm.py:157
+msgid "System error, bad content: %(content)s"
+msgstr "Erro no sistema, conteúdo incorreto: %(content)s"
+
+#: Mailman/Cgi/confirm.py:167
+msgid "Bad confirmation string"
+msgstr "String de confirmação incorreta"
+
+#: Mailman/Cgi/confirm.py:175
+msgid "Enter confirmation cookie"
+msgstr "Entre com o cookie de confirmação"
+
+#: Mailman/Cgi/confirm.py:188
+msgid ""
+"Please enter the confirmation string\n"
+" (i.e. <em>cookie</em>) that you received in your email message, in the "
+"box\n"
+" below. Then hit the <em>Submit</em> button to proceed to the next\n"
+" confirmation step."
+msgstr ""
+"Por favor entre com a stringe de confirmação\n"
+" (i.e. <em>cookie</em>) que recebeu em sua mensagem de email, na caixa \n"
+" abaixo. Então pressione o botão <em>Enviar</em> para seguir para o \n"
+" próximo passo de confirmação."
+
+#: Mailman/Cgi/confirm.py:193
+msgid "Confirmation string:"
+msgstr "String de confirmação:"
+
+#: Mailman/Cgi/confirm.py:195
+msgid "Submit"
+msgstr "Enviar"
+
+#: Mailman/Cgi/confirm.py:210
+msgid "Confirm subscription request"
+msgstr "Confirmar sua requisição de inscrição"
+
+#: Mailman/Cgi/confirm.py:227
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" subscription request to the mailing list <em>%(listname)s</em>. Your\n"
+" subscription settings are shown below; make any necessary changes and "
+"hit\n"
+" <em>Subscribe</em> to complete the confirmation process. Once you've\n"
+" confirmed your subscription request, you will be shown your account\n"
+" options page which you can use to further customize your membership\n"
+" options.\n"
+"\n"
+" <p>Note: your password will be emailed to you once your subscription is\n"
+" confirmed. You can change it by visiting your personal options page.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this subscription\n"
+" request."
+msgstr ""
+"A sua confirmação é requerida para completar a requisição\n"
+" de inscrição na lista de discussão <em>%(listname)s</em>. Suas \n"
+" configurações de inscrição estão sendo mostradas abaixo; faça \n"
+" qualquer alteração necessária e pressione o botão <em>Subscribe</em> \n"
+" para completar o processo de confirmação. Uma vez que completou sua \n"
+" requisição de inscriçao, será lhe mostrada sua página de opções de \n"
+" conta que poderá usar mais adiante para personalizar suas opções \n"
+" de membro.\n"
+"\n"
+" <p>Nota: sua senha será enviada a você assim que sua inscrição for \n"
+" confirmada. Você pode modifica-la visitando sua página de opções \n"
+" pessoais.\n"
+"\n"
+" <p>Ou pressionar<em>Cancelar e descartar</em> para cancelar esta\n"
+" requisição de inscrição."
+
+#: Mailman/Cgi/confirm.py:242
+msgid ""
+"Your confirmation is required in order to continue with\n"
+" the subscription request to the mailing list <em>%(listname)s</em>.\n"
+" Your subscription settings are shown below; make any necessary "
+"changes\n"
+" and hit <em>Subscribe to list ...</em> to complete the confirmation\n"
+" process. Once you've confirmed your subscription request, the\n"
+" moderator must approve or reject your membership request. You will\n"
+" receive notice of their decision.\n"
+"\n"
+" <p>Note: your password will be emailed to you once your "
+"subscription\n"
+" is confirmed. You can change it by visiting your personal options\n"
+" page.\n"
+"\n"
+" <p>Or, if you've changed your mind and do not want to subscribe to\n"
+" this mailing list, you can hit <em>Cancel my subscription\n"
+" request</em>."
+msgstr ""
+"Sua confirmação é requerida para continuar com a requisição\n"
+" de inscrição para a lista de discussão <em>%(listname)s</em>.\n"
+" Suas configurações de inscrição estão mostradas abaixo; faça "
+"qualquer\n"
+" modificação necessária e pressione <em>Inscrever-se na lista...</"
+"em> \n"
+" para completar o processo de confirmação. Uma vez que confirmou "
+"sua \n"
+" requisição de inscrição, o moderador deverá aprovar ou rejeitar a \n"
+" sua requisição de membro. Você será notificado de sua decição.\n"
+"\n"
+" <p>Nota: sua senha será lhe enviada por email assim que sua\n"
+" incrição for confirmada. Você pode modifica-la visitando sua página\n"
+" pessoal de opções.\n"
+"\n"
+" <p>Ou você poderá selecionar <em>Cancelar e descartar</em> agora\n"
+" para cancelar sua requisiçao de subscrição."
+
+#: Mailman/Cgi/confirm.py:260
+msgid "Your email address:"
+msgstr "Seu endereço de email:"
+
+#: Mailman/Cgi/confirm.py:261
+msgid "Your real name:"
+msgstr "Seu nome real:"
+
+#: Mailman/Cgi/confirm.py:270
+msgid "Receive digests?"
+msgstr "Receber digests?"
+
+#: Mailman/Cgi/confirm.py:279
+msgid "Preferred language:"
+msgstr "Idioma preferido"
+
+#: Mailman/Cgi/confirm.py:284
+msgid "Cancel my subscription request"
+msgstr "Cancelar minha requisição de inscrição"
+
+#: Mailman/Cgi/confirm.py:285
+msgid "Subscribe to list %(listname)s"
+msgstr "Se inscrever na lista %(listname)s"
+
+#: Mailman/Cgi/confirm.py:295
+msgid "You have canceled your subscription request."
+msgstr "Você cancelou sua requisição de inscrição."
+
+#: Mailman/Cgi/confirm.py:329
+msgid "Awaiting moderator approval"
+msgstr "Aguardando aprovação do moderador"
+
+#: Mailman/Cgi/confirm.py:332
+msgid ""
+" You have successfully confirmed your subscription request to "
+"the\n"
+" mailing list %(listname)s, however final approval is required "
+"from\n"
+" the list moderator before you will be subscribed. Your request\n"
+" has been forwarded to the list moderator, and you will be "
+"notified\n"
+" of the moderator's decision."
+msgstr ""
+" Você confirmou com sucesso sua requisição de inscrição na lista\n"
+" de discussão %(listname)s, no entanto uma aprovação final é \n"
+" requerida pelo moderador da lista antes de ser inscrito. Sua \n"
+" requisição foi encaminhada ao moderador da lista, e você será \n"
+" notificado de sua decisão."
+
+#: Mailman/Cgi/confirm.py:339 Mailman/Cgi/confirm.py:394
+#: Mailman/Cgi/confirm.py:482 Mailman/Cgi/confirm.py:705
+msgid ""
+"Invalid confirmation string. It is\n"
+" possible that you are attempting to confirm a request for an\n"
+" address that has already been unsubscribed."
+msgstr ""
+"String de confirmação inválida. É possível\n"
+" que esteja confirmar uma requisição para um endereço que você\n"
+" ja foi descadastrado."
+
+#: Mailman/Cgi/confirm.py:343
+msgid "You are already a member of this mailing list!"
+msgstr "VOce já é um membro desta lista de discussão!"
+
+#: Mailman/Cgi/confirm.py:350
+msgid "Subscription request confirmed"
+msgstr "Requisição de inscrição confirmada"
+
+#: Mailman/Cgi/confirm.py:354
+msgid ""
+" You have successfully confirmed your subscription request for\n"
+" \"%(addr)s\" to the %(listname)s mailing list. A separate\n"
+" confirmation message will be sent to your email address, along\n"
+" with your password, and other useful information and links.\n"
+"\n"
+" <p>You can now\n"
+" <a href=\"%(optionsurl)s\">proceed to your membership login\n"
+" page</a>."
+msgstr ""
+" Você confirmou com sucesso sua requisição de inscrição para\n"
+" \"%(addr)s\" na lista de discussão %(listname)s. Uma mensagem\n"
+" de confirmação separada será enviada para seu endereço de \n"
+" email, jutno com sua senha e outras informações e links \n"
+" úteis.\n"
+"\n"
+" <p> Você pode agora\n"
+" <a href=\"%(optionsurl)s\">ir para a página de login login de "
+"membro</a>."
+
+#: Mailman/Cgi/confirm.py:372
+msgid "You have canceled your unsubscription request."
+msgstr "Você cancelou sua requisição de desinscrição."
+
+#: Mailman/Cgi/confirm.py:400
+msgid "Unsubscription request confirmed"
+msgstr "Requisição de desinscrição confirmada"
+
+#: Mailman/Cgi/confirm.py:404
+msgid ""
+" You have successfully unsubscribed from the %(listname)s "
+"mailing\n"
+" list. You can now <a href=\"%(listinfourl)s\">visit the list's "
+"main\n"
+" information page</a>."
+msgstr ""
+" Você se descadastrou com sucesso da lista de discussào %(listname)"
+"s. \n"
+" Você pode agora <a href=\"%(listinfourl)s\">visitar a página de "
+"informações sobre a lista</a>."
+
+#: Mailman/Cgi/confirm.py:415
+msgid "Confirm unsubscription request"
+msgstr "Confirmar requisição de desinscrição"
+
+#: Mailman/Cgi/confirm.py:430 Mailman/Cgi/confirm.py:519
+msgid "<em>Not available</em>"
+msgstr "<em>Não disponível</em>"
+
+#: Mailman/Cgi/confirm.py:433
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" unsubscription request from the mailing list <em>%(listname)s</em>. "
+"You\n"
+" are currently subscribed with\n"
+"\n"
+" <ul><li><b>Real name:</b> %(fullname)s\n"
+" <li><b>Email address:</b> %(addr)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Unsubscribe</em> button below to complete the confirmation\n"
+" process.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this unsubscription\n"
+" request."
+msgstr ""
+"Sua confirmação é requerida para completar a requisição\n"
+" de desinscrição da lista de discussão <em>%(listname)s</em>. Você \n"
+" está atualmente inscrito com\n"
+"\n"
+" <ul><li><b>Nome Real:</b> %(fullname)s\n"
+" <li><b>Endereço de Email:</b> %(addr)s\n"
+" </ul>\n"
+"\n"
+" Clique no botão <em>Descadastrar</em> abaixo para completar o \n"
+" processo de confirmação.\n"
+"\n"
+" <p>Ou clique em <em>Cancelar e descartar</em> para cancelar\n"
+" esta requisição de desinscrição."
+
+#: Mailman/Cgi/confirm.py:449 Mailman/Cgi/options.py:660
+#: Mailman/Cgi/options.py:801 Mailman/Cgi/options.py:811
+msgid "Unsubscribe"
+msgstr "Desinscrever"
+
+#: Mailman/Cgi/confirm.py:450 Mailman/Cgi/confirm.py:548
+msgid "Cancel and discard"
+msgstr "Cancelar e descartar"
+
+#: Mailman/Cgi/confirm.py:460
+msgid "You have canceled your change of address request."
+msgstr "VocTe cancelou sua modificação do endereço requisitado."
+
+#: Mailman/Cgi/confirm.py:488
+msgid "Change of address request confirmed"
+msgstr "Modificação do endereço requisitado confirmada"
+
+#: Mailman/Cgi/confirm.py:492
+msgid ""
+" You have successfully changed your address on the %(listname)s\n"
+" mailing list from <b>%(oldaddr)s</b> to <b>%(newaddr)s</b>. "
+"You\n"
+" can now <a href=\"%(optionsurl)s\">proceed to your membership\n"
+" login page</a>."
+msgstr ""
+" Você modificou com sucesso seu endereço na lista de discussão\n"
+" %(listname)s de <b>%(oldaddr)s</b> para <b>%(newaddr)s</b>. Você\n"
+" agora poderá ir para a <a href=\\\"%(optionsurl)s\\\">página de "
+"login de membros</a>."
+
+#: Mailman/Cgi/confirm.py:504
+msgid "Confirm change of address request"
+msgstr "Confirmar a modificação do endereço requisitado"
+
+#: Mailman/Cgi/confirm.py:523
+msgid "globally"
+msgstr "globalmente"
+
+#: Mailman/Cgi/confirm.py:526
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" change of address request for the mailing list <em>%(listname)s</em>. "
+"You\n"
+" are currently subscribed with\n"
+"\n"
+" <ul><li><b>Real name:</b> %(fullname)s\n"
+" <li><b>Old email address:</b> %(oldaddr)s\n"
+" </ul>\n"
+"\n"
+" and you have requested to %(globallys)s change your email address to\n"
+"\n"
+" <ul><li><b>New email address:</b> %(newaddr)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Change address</em> button below to complete the "
+"confirmation\n"
+" process.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this change of address\n"
+" request."
+msgstr ""
+"Sua confirmação é requerida para completar a modificação\n"
+" do endereço requisitado para a lista de discussão \n"
+" <em>%(listname)s</em>. Você está atualmente inscrito com\n"
+"\n"
+" <ul><li><b>Nome real:</b> %(fullname)s\n"
+" <li><b>Antigo endereço de email:</b> %(oldaddr)s\n"
+" </ul>\n"
+"\n"
+" e requisitou modificar %(globallys)s seu endereço de email para\n"
+"\n"
+" <ul><li><b>Novo endereço de email:</b> %(newaddr)s\n"
+" </ul>\n"
+"\n"
+" Pressione o botão <em>Modificar Endereço</em> abaixo para completar o \n"
+" processo de confirmação.\n"
+"\n"
+" <p>Ou pressione <em>Cancelar e descartar</em> para cancelar esta \n"
+" modificação do endereço requisitado."
+
+#: Mailman/Cgi/confirm.py:547
+msgid "Change address"
+msgstr "Modificar endereço"
+
+#: Mailman/Cgi/confirm.py:557 Mailman/Cgi/confirm.py:670
+msgid "Continue awaiting approval"
+msgstr "Continuar aguardando aprovação"
+
+#: Mailman/Cgi/confirm.py:564
+msgid ""
+"Okay, the list moderator will still have the\n"
+" opportunity to approve or reject this message."
+msgstr ""
+"Okay, o moderador da lista ainda terá a \n"
+" oportunidade de aprovar ou rejeitar esta mensagem."
+
+#: Mailman/Cgi/confirm.py:590
+msgid "Sender discarded message via web."
+msgstr "O remetente descartou a mensagem via web."
+
+#: Mailman/Cgi/confirm.py:592
+msgid ""
+"The held message with the Subject:\n"
+" header <em>%(subject)s</em> could not be found. The most "
+"likely\n"
+" reason for this is that the list moderator has already approved "
+"or\n"
+" rejected the message. You were not able to cancel it in\n"
+" time."
+msgstr ""
+"A mensagem em espera com o assunto:\n"
+" header <em>%(subject)s</em> não pode ser encontrada. A razão mais \n"
+" provável para isto é que o moderador da lista já tenha aprovado ou \n"
+" rejeitado a mensagem. Você não foi capaz de cancela-la em tempo."
+
+#: Mailman/Cgi/confirm.py:600
+msgid "Posted message canceled"
+msgstr "Cancelamento da mensagem postada"
+
+#: Mailman/Cgi/confirm.py:603
+msgid ""
+" You have successfully canceled the posting of your message with\n"
+" the Subject: header <em>%(subject)s</em> to the mailing list\n"
+" %(listname)s."
+msgstr ""
+" Você cancelou com sucesso a postagem da sua mensagem com o \n"
+" assunto: header <em>%(subject)s</em> para a lista de \n"
+" discussão %(listname)s."
+
+#: Mailman/Cgi/confirm.py:614
+msgid "Cancel held message posting"
+msgstr "Cancelar a posagem da mensagem em espera"
+
+#: Mailman/Cgi/confirm.py:639
+msgid ""
+"The held message you were referred to has\n"
+" already been handled by the list administrator."
+msgstr ""
+"A mensagem presa que se refere já foi manipulada pelo administrador\n"
+"da lista."
+
+#: Mailman/Cgi/confirm.py:653
+msgid ""
+"Your confirmation is required in order to cancel the\n"
+" posting of your message to the mailing list <em>%(listname)s</em>:\n"
+"\n"
+" <ul><li><b>Sender:</b> %(sender)s\n"
+" <li><b>Subject:</b> %(subject)s\n"
+" <li><b>Reason:</b> %(reason)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Cancel posting</em> button to discard the posting.\n"
+"\n"
+" <p>Or hit the <em>Continue awaiting approval</em> button to continue to\n"
+" allow the list moderator to approve or reject the message."
+msgstr ""
+"A sua confirmação é requerida para cancelar a postagem\n"
+" de sua mensagem para a lista de discussão <em>%(listname)s</em>:\n"
+"\n"
+" <ul><li><b>Remetente:</b> %(sender)s\n"
+" <li><b>Assunto:</b> %(subject)s\n"
+" <li><b>Razão:</b> %(reason)s\n"
+" </ul>\n"
+"\n"
+" Pressione o botão <em>Cancelar postagem</em> para descartar esta\n"
+" postagem.\n"
+"\n"
+" <p>Ou clique no botão <em>Continuar aguardando aprovação</em> para \n"
+" permitir ao moderador da lista aprovar ou rejeitar a mensagem."
+
+#: Mailman/Cgi/confirm.py:669
+msgid "Cancel posting"
+msgstr "Cancelar a postagem"
+
+#: Mailman/Cgi/confirm.py:681
+msgid ""
+"You have canceled the re-enabling of your membership. If\n"
+" we continue to receive bounces from your address, it could be deleted "
+"from\n"
+" this mailing list."
+msgstr ""
+"Você cancelou a reativação do seu membro. Se continuarmos\n"
+" a receber retornos de seu endereço, ele será apagado desta\n"
+" lista de discussao."
+
+#: Mailman/Cgi/confirm.py:711
+msgid "Membership re-enabled."
+msgstr "Membro reativado."
+
+#: Mailman/Cgi/confirm.py:715
+msgid ""
+" You have successfully re-enabled your membership in the\n"
+" %(listname)s mailing list. You can now <a\n"
+" href=\"%(optionsurl)s\">visit your member options page</a>.\n"
+" "
+msgstr ""
+"Você reativou com sucesso seu membro na lista de discussão\n"
+" %(listname)s. Você agora poderá <a href=\\\"%(optionsurl)s\\\">\n"
+"visitar sua página de opções de membro</a>."
+
+#: Mailman/Cgi/confirm.py:727
+msgid "Re-enable mailing list membership"
+msgstr "Reativar membro da lista de discussão"
+
+#: Mailman/Cgi/confirm.py:744
+msgid ""
+"We're sorry, but you have already been unsubscribed\n"
+" from this mailing list. To re-subscribe, please visit the\n"
+" <a href=\"%(listinfourl)s\">list information page</a>."
+msgstr ""
+"Nós nos desculpamos, mas você ja foi descadastrado\n"
+" desta lista de discussão. Para se reinscrever, por favor \n"
+" visite a <a href=\\\"%(listinfourl)s\\\">página de informações de "
+"listas</a>."
+
+#: Mailman/Cgi/confirm.py:758
+msgid "<em>not available</em>"
+msgstr "<em>não disponível</em>"
+
+#: Mailman/Cgi/confirm.py:762
+msgid ""
+"Your membership in the %(realname)s mailing list is\n"
+" currently disabled due to excessive bounces. Your confirmation is\n"
+" required in order to re-enable delivery to your address. We have the\n"
+" following information on file:\n"
+"\n"
+" <ul><li><b>Member address:</b> %(member)s\n"
+" <li><b>Member name:</b> %(username)s\n"
+" <li><b>Last bounce received on:</b> %(date)s\n"
+" <li><b>Approximate number of days before you are permanently "
+"removed\n"
+" from this list:</b> %(daysleft)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Re-enable membership</em> button to resume receiving "
+"postings\n"
+" from the mailing list. Or hit the <em>Cancel</em> button to defer\n"
+" re-enabling your membership.\n"
+" "
+msgstr ""
+"Seu membro na lista de discussão é %(realname)s\n"
+" atualmente desativado devido a excessivos bounces. Sua confirmação\n"
+" é requerida para reativar a entrega para seu endereço. Nós temos\n"
+" os seguintes detalhes no arquivo:\n"
+"\n"
+" <ul><li><b>Endereço do membro:</b> %(member)s\n"
+" <li><b>Nome do membro:</b> %(username)s\n"
+" <li><b>Último bounce recebido em:</b> %(date)s\n"
+" <li><b>Número de dias aproximados antes de ser removido "
+"permanentemente\n"
+" desta lista:</b> %(daysleft)s\n"
+" </ul>\n"
+" \n"
+" Clique no botão <em>Re-ativar membro</em> para voltar a receber \n"
+" postagens da lista de discussão. Ou pressione o botão <em>Cancelar</em>\n"
+" para reativar sua conta de membro."
+
+#: Mailman/Cgi/confirm.py:782
+msgid "Re-enable membership"
+msgstr "Reativar membro"
+
+#: Mailman/Cgi/confirm.py:783
+msgid "Cancel"
+msgstr "Cancelar"
+
+#: Mailman/Cgi/create.py:48 Mailman/Cgi/rmlist.py:48
+msgid "Bad URL specification"
+msgstr "Especificação incorreta de URL"
+
+#: Mailman/Cgi/create.py:63 Mailman/Cgi/rmlist.py:176
+msgid "Return to the "
+msgstr "Retornar ao "
+
+#: Mailman/Cgi/create.py:65 Mailman/Cgi/rmlist.py:178
+msgid "general list overview"
+msgstr "visão geral da lista"
+
+#: Mailman/Cgi/create.py:66 Mailman/Cgi/rmlist.py:179
+msgid "<br>Return to the "
+msgstr "<br>Retornar ao "
+
+#: Mailman/Cgi/create.py:68 Mailman/Cgi/rmlist.py:181
+msgid "administrative list overview"
+msgstr "visão da lista administrativa"
+
+#: Mailman/Cgi/create.py:101
+msgid "List name must not include \"@\": %(listname)s"
+msgstr "O nome da lista não deve incluir \"@\": %(listname)s"
+
+#: Mailman/Cgi/create.py:107 Mailman/Cgi/create.py:185 bin/newlist:134
+#: bin/newlist:168
+msgid "List already exists: %(listname)s"
+msgstr "A lista já existe: %(listname)s"
+
+#: Mailman/Cgi/create.py:111
+msgid "You forgot to enter the list name"
+msgstr "Você esqueceu de especificar o nome da lista"
+
+#: Mailman/Cgi/create.py:115
+msgid "You forgot to specify the list owner"
+msgstr "Você esqueceu de especificar o dono da lista"
+
+#: Mailman/Cgi/create.py:122
+msgid ""
+"Leave the initial password (and confirmation) fields\n"
+" blank if you want Mailman to autogenerate the list\n"
+" passwords."
+msgstr ""
+"Deixar os campos de senha inicial (e confirmação)\n"
+" em branco se quiser que o Mailman auto gere a lista de senhas."
+
+#: Mailman/Cgi/create.py:130
+msgid "Initial list passwords do not match"
+msgstr "A senha inicial da lista não confere"
+
+#: Mailman/Cgi/create.py:139
+msgid "The list password cannot be empty<!-- ignore -->"
+msgstr "A senha da lista não pode ser retirada <!-- ignore -->"
+
+#: Mailman/Cgi/create.py:151
+msgid "You are not authorized to create new mailing lists"
+msgstr "Você não tem autorização para criar novas listas de discussão"
+
+#: Mailman/Cgi/create.py:181 bin/newlist:166
+msgid "Bad owner email address: %(s)s"
+msgstr "Endereço de e-mail do dono incorreto: %(s)s"
+
+#: Mailman/Cgi/create.py:189 bin/newlist:164
+msgid "Illegal list name: %(s)s"
+msgstr "Nome de lista ilegal: %(s)s"
+
+#: Mailman/Cgi/create.py:194
+msgid ""
+"Some unknown error occurred while creating the list.\n"
+" Please contact the site administrator for assistance."
+msgstr ""
+"Algum erro desconhecido ocorreu durante a criação da listas.\n"
+" Por favor contecte o administrador do site para assistência."
+
+#: Mailman/Cgi/create.py:233 bin/newlist:210
+msgid "Your new mailing list: %(listname)s"
+msgstr "Sua nova lista de discussão: %(listname)s"
+
+#: Mailman/Cgi/create.py:242
+msgid "Mailing list creation results"
+msgstr "Resultados da criação da lista de discussão"
+
+#: Mailman/Cgi/create.py:248
+msgid ""
+"You have successfully created the mailing list\n"
+" <b>%(listname)s</b> and notification has been sent to the list owner\n"
+" <b>%(owner)s</b>. You can now:"
+msgstr ""
+"Você criou com sucesso a listga de discussão\n"
+" <b>%(listname)s</b> e a notificação foi enviada ao dono da lista\n"
+" <b>%(owner)s</b>. Agora você pode:"
+
+#: Mailman/Cgi/create.py:252
+msgid "Visit the list's info page"
+msgstr "Visitar a página de detalhes sobre a lista"
+
+#: Mailman/Cgi/create.py:253
+msgid "Visit the list's admin page"
+msgstr "Visitar a página de administração da lista"
+
+#: Mailman/Cgi/create.py:254
+msgid "Create another list"
+msgstr "Criar outra lista"
+
+#: Mailman/Cgi/create.py:272
+msgid "Create a %(hostname)s Mailing List"
+msgstr "Criar uma lista de discussão em %(hostname)s"
+
+#: Mailman/Cgi/create.py:281 Mailman/Cgi/rmlist.py:199
+#: Mailman/Gui/Bounce.py:175 Mailman/htmlformat.py:339
+msgid "Error: "
+msgstr "Erro:"
+
+#: Mailman/Cgi/create.py:283
+msgid ""
+"You can create a new mailing list by entering the\n"
+" relevant information into the form below. The name of the mailing list\n"
+" will be used as the primary address for posting messages to the list, "
+"so\n"
+" it should be lowercased. You will not be able to change this once the\n"
+" list is created.\n"
+"\n"
+" <p>You also need to enter the email address of the initial list owner.\n"
+" Once the list is created, the list owner will be given notification, "
+"along\n"
+" with the initial list password. The list owner will then be able to\n"
+" modify the password and add or remove additional list owners.\n"
+"\n"
+" <p>If you want Mailman to automatically generate the initial list admin\n"
+" password, click on `Yes' in the autogenerate field below, and leave the\n"
+" initial list password fields empty.\n"
+"\n"
+" <p>You must have the proper authorization to create new mailing lists.\n"
+" Each site should have a <em>list creator's</em> password, which you can\n"
+" enter in the field at the bottom. Note that the site administrator's\n"
+" password can also be used for authentication.\n"
+" "
+msgstr ""
+"Você pode criar uma nova lista de discussão entrando com\n"
+" os detalhes relevantes no formulário abaixo. O nome da lista de \n"
+" discussão será usado como endereço primário para postar mensagens \n"
+" a lista, assim ele deverá estar em minúsculas. Você não será capaz\n"
+" de mudar isto uma vez que a lista estiver criada.\n"
+"\n"
+" <p>Você também precisa entrar com o endereço de email do criador \n"
+" inicial da lista. Uma vez que a lista for criada, o domo da lista \n"
+" receberá uma notificação, junto com a senha inicial da lista. O dono da\n"
+" lista então será capaz de modificar a senha e adicionar/remover \n"
+" donos adicionais da lista.\n"
+"\n"
+" <p>Se desejar que o Mailman gere automáticamente a senha administrativa\n"
+" inicial da lista, clique em 'Sim' no campo autogerar abaixo e deixe \n"
+" o campo senha inicial da lista vazio.\n"
+"\n"
+" <p>Você deverá ter permissões apropriadas para criar novas listas de\n"
+" discussão. Cada site deverá ter uma senha do <em>criador da lista</"
+"em>, \n"
+" que você poder'entrar no campo do rodapé. Note que a senha do \n"
+" administrador do site também poderá ser usada para autenticação.\n"
+"\n"
+" "
+
+#: Mailman/Cgi/create.py:309
+msgid "List Identity"
+msgstr "Identidade da lista"
+
+#: Mailman/Cgi/create.py:312
+msgid "Name of list:"
+msgstr "Nome da lista:"
+
+#: Mailman/Cgi/create.py:317
+msgid "Initial list owner address:"
+msgstr "Endereço inicial do dono da lista:"
+
+#: Mailman/Cgi/create.py:326
+msgid "Auto-generate initial list password?"
+msgstr "Auto-gerar senha inicial da lista?"
+
+#: Mailman/Cgi/create.py:333
+msgid "Initial list password:"
+msgstr "Senha inicial da lista:"
+
+#: Mailman/Cgi/create.py:338
+msgid "Confirm initial password:"
+msgstr "Confirmara senha inicial:"
+
+#: Mailman/Cgi/create.py:348
+msgid "List Characteristics"
+msgstr "Características da lista"
+
+#: Mailman/Cgi/create.py:352
+msgid ""
+"Should new members be quarantined before they\n"
+" are allowed to post unmoderated to this list? Answer <em>Yes</em> to "
+"hold\n"
+" new member postings for moderator approval by default."
+msgstr ""
+"Os novos membros devem ser colocados em quarentena antes que\n"
+" tenham permissão para postar nesta lista não moderada? Responda\n"
+" <em>Sim</em> para esperar novas postagens de membros para, \n"
+" por padrão, passarem pela aprovação do moderador."
+
+#: Mailman/Cgi/create.py:383
+msgid ""
+"Initial list of supported languages. <p>Note that if you do not\n"
+" select at least one initial language, the list will use the server\n"
+" default language of %(deflang)s"
+msgstr ""
+"Lista inicial de idiomas suportados. <p>Note que se não selecionar\n"
+" pelo menos um idioma inicial, a lista utilizará o idioma \n"
+" padrão do servidor %(deflang)s"
+
+#: Mailman/Cgi/create.py:394
+msgid "Send \"list created\" email to list owner?"
+msgstr "Enviar um email falando sobre a \"lista criada\" para o dono da lista?"
+
+#: Mailman/Cgi/create.py:403
+msgid "List creator's (authentication) password:"
+msgstr "Senha do criador da lista (autenticação):"
+
+#: Mailman/Cgi/create.py:408
+msgid "Create List"
+msgstr "Criar lista"
+
+#: Mailman/Cgi/create.py:409
+msgid "Clear Form"
+msgstr "Limpar Formulário"
+
+#: Mailman/Cgi/edithtml.py:43
+msgid "General list information page"
+msgstr "Página de informações gerais da lista"
+
+#: Mailman/Cgi/edithtml.py:44
+msgid "Subscribe results page"
+msgstr "Página de resultados de inscrição"
+
+#: Mailman/Cgi/edithtml.py:45
+msgid "User specific options page"
+msgstr "Página de opções específicas de usuário"
+
+#: Mailman/Cgi/edithtml.py:57
+msgid "List name is required."
+msgstr "O nome da lista é requerido"
+
+#: Mailman/Cgi/edithtml.py:97
+msgid "%(realname)s -- Edit html for %(template_info)s"
+msgstr "<%(realname)s -- Editar html para %(template_info)s"
+
+#: Mailman/Cgi/edithtml.py:103
+msgid "Edit HTML : Error"
+msgstr "Editar HTML : Erro"
+
+#: Mailman/Cgi/edithtml.py:104
+msgid "%(safetemplatename)s: Invalid template"
+msgstr "%(safetemplatename)s: Template inválido"
+
+#: Mailman/Cgi/edithtml.py:109 Mailman/Cgi/edithtml.py:110
+msgid "%(realname)s -- HTML Page Editing"
+msgstr "%(realname)s -- Edição de Página HTML"
+
+#: Mailman/Cgi/edithtml.py:111
+msgid "Select page to edit:"
+msgstr "Selecionar a página para edição:"
+
+#: Mailman/Cgi/edithtml.py:137
+msgid "View or edit the list configuration information."
+msgstr "Ver ou editar as informações de configuração da lista."
+
+#: Mailman/Cgi/edithtml.py:145
+msgid "When you are done making changes..."
+msgstr "Quando terminar de fazer as mudanças..."
+
+#: Mailman/Cgi/edithtml.py:146
+msgid "Submit Changes"
+msgstr "Enviar Modificações"
+
+#: Mailman/Cgi/edithtml.py:153
+msgid "Can't have empty html page."
+msgstr "Não é possível ter uma página HTML vazia"
+
+#: Mailman/Cgi/edithtml.py:154
+msgid "HTML Unchanged."
+msgstr "HTML não modificado"
+
+#: Mailman/Cgi/edithtml.py:169
+msgid "HTML successfully updated."
+msgstr "HTML atualizado com sucesso."
+
+#: Mailman/Cgi/listinfo.py:71
+msgid "%(hostname)s Mailing Lists"
+msgstr "Listas de discussão em %(hostname)s"
+
+#: Mailman/Cgi/listinfo.py:103
+msgid ""
+"<p>There currently are no publicly-advertised\n"
+" %(mailmanlink)s mailing lists on %(hostname)s."
+msgstr ""
+"<p>Não existem atualmente listas de discussão do \n"
+"%(mailmanlink)s em %(hostname)s"
+
+#: Mailman/Cgi/listinfo.py:107
+msgid ""
+"<p>Below is a listing of all the public mailing lists on\n"
+" %(hostname)s. Click on a list name to get more information "
+"about\n"
+" the list, or to subscribe, unsubscribe, and change the "
+"preferences\n"
+" on your subscription."
+msgstr ""
+"<p>Abaixo está uma listagem de todas as listas de discussão\n"
+" públicas em %(hostname)s. Clique em um nome de lista\n"
+" para obter mais detalhes sobre ela, ou para se inscrever,\n"
+" desinscrever e modificar as preferências de sua inscrição."
+
+#: Mailman/Cgi/listinfo.py:113
+msgid "right"
+msgstr "direita"
+
+#: Mailman/Cgi/listinfo.py:116
+msgid ""
+" To visit the general information page for an unadvertised list,\n"
+" open a URL similar to this one, but with a '/' and the %(adj)s\n"
+" list name appended.\n"
+" <p>List administrators, you can visit "
+msgstr ""
+"Para visitar a página de detalhes de uma lista não publicada,\n"
+" abra uma URL similar a esta, mas com uma '/' e o nome\n"
+" %(adj)s adicionado ao nome da lista.\n"
+" <p>Administradores da lista, vocês podem visitar "
+
+#: Mailman/Cgi/listinfo.py:121
+msgid "the list admin overview page"
+msgstr "a página de visão de administração das listas"
+
+#: Mailman/Cgi/listinfo.py:122
+msgid ""
+" to find the management interface for your list.\n"
+" <p>Send questions or comments to "
+msgstr ""
+"para encontrar a interface de gerenciamento de sua lista.\n"
+" <p>Envie questões ou comentários para"
+
+#: Mailman/Cgi/listinfo.py:187
+msgid "Edit Options"
+msgstr "Editar Opções"
+
+#: Mailman/Cgi/listinfo.py:194 Mailman/Cgi/options.py:767
+#: Mailman/Cgi/roster.py:111
+msgid "View this page in"
+msgstr "Ver esta página em"
+
+#: Mailman/Cgi/options.py:51 Mailman/Cgi/options.py:68
+msgid "CGI script error"
+msgstr "Erro no script CGI"
+
+#: Mailman/Cgi/options.py:54
+msgid "Invalid options to CGI script."
+msgstr "Opções inválidas para o script CGi"
+
+#: Mailman/Cgi/options.py:96
+msgid "No address given"
+msgstr "Nenhum endereço fornecido"
+
+#: Mailman/Cgi/options.py:108 Mailman/Cgi/options.py:155
+#: Mailman/Cgi/options.py:177
+msgid "No such member: %(safeuser)s."
+msgstr "Membro inexistente: %(safeuser)s"
+
+#: Mailman/Cgi/options.py:150 Mailman/Cgi/options.py:160
+msgid "The confirmation email has been sent."
+msgstr "A mensagem de confirmação foi enviada."
+
+#: Mailman/Cgi/options.py:171 Mailman/Cgi/options.py:183
+#: Mailman/Cgi/options.py:226
+msgid "A reminder of your password has been emailed to you."
+msgstr "Um lembrete de sua senha será enviado a voce."
+
+#: Mailman/Cgi/options.py:200
+msgid "Authentication failed."
+msgstr "Falha na autenticação."
+
+#: Mailman/Cgi/options.py:232
+msgid "List subscriptions for %(user)s on %(hostname)s"
+msgstr "Inscrições na lista para o usuário %(user)s em %(hostname)s"
+
+#: Mailman/Cgi/options.py:235
+msgid ""
+"Click on a link to visit your options page for the\n"
+" requested mailing list."
+msgstr ""
+"Clique em um link para visitar sua página de opções para a \n"
+" lista de discussão requisitada."
+
+#: Mailman/Cgi/options.py:284
+msgid "Addresses did not match!"
+msgstr "Os endereços não conferem!"
+
+#: Mailman/Cgi/options.py:289
+msgid "You are already using that email address"
+msgstr "Você já está usando aquele endereço de email"
+
+#: Mailman/Cgi/options.py:301
+msgid ""
+"The new address you requested %(newaddr)s is already a member of the\n"
+"%(listname)s mailing list, however you have also requested a global change "
+"of\n"
+"address. Upon confirmation, any other mailing list containing the address\n"
+"%(user)s will be changed. "
+msgstr ""
+"O novo endereço que solicitou (%(newaddr)s) já é um membro da lista \n"
+"de discussão %(listname)s, no entanto voce também pode requisitar uma \n"
+"modificação global de endereço. Após a confirmação, quaisquer lista de \n"
+"discussão contendo o endereço %(user)s será alterado."
+
+#: Mailman/Cgi/options.py:310
+msgid "The new address is already a member: %(newaddr)s"
+msgstr "O novo endereço já é um membro: %(newaddr)s"
+
+#: Mailman/Cgi/options.py:316
+msgid "Addresses may not be blank"
+msgstr "Os endereços não podem estar em branco"
+
+#: Mailman/Cgi/options.py:328
+msgid "A confirmation message has been sent to %(newaddr)s. "
+msgstr "Uma mensagem de confirmação deverá ser enviada para %(newaddr)s"
+
+#: Mailman/Cgi/options.py:337
+msgid "Bad email address provided"
+msgstr "Endereço de email incorreto fornecido"
+
+#: Mailman/Cgi/options.py:339
+msgid "Illegal email address provided"
+msgstr "Endereço de email ilegal fornecido"
+
+#: Mailman/Cgi/options.py:341
+msgid "%(newaddr)s is already a member of the list."
+msgstr "%(newaddr)s já é um membro desta lista."
+
+#: Mailman/Cgi/options.py:350
+msgid "Member name successfully changed. "
+msgstr "Nome do membro modificado com sucesso."
+
+#: Mailman/Cgi/options.py:361
+msgid "Passwords may not be blank"
+msgstr "As senahs não podem estar vazias"
+
+#: Mailman/Cgi/options.py:366
+msgid "Passwords did not match!"
+msgstr "As senhas não conferem"
+
+#: Mailman/Cgi/options.py:381 Mailman/Commands/cmd_password.py:79
+#: Mailman/Commands/cmd_password.py:105
+msgid "Password successfully changed."
+msgstr "Senha modificada com sucesso."
+
+#: Mailman/Cgi/options.py:390
+msgid ""
+"You must confirm your unsubscription request by turning\n"
+" on the checkbox below the <em>Unsubscribe</em> button. You\n"
+" have not been unsubscribed!"
+msgstr ""
+"Você deve confirmar sua desinscrição ativando\n"
+" a caixa de checagem abaixo do botão <em>Unsubscribe</em>. \n"
+" Você não foi desinscrito!"
+
+#: Mailman/Cgi/options.py:422
+msgid "Unsubscription results"
+msgstr "Resultados da Desinscrição"
+
+#: Mailman/Cgi/options.py:426
+msgid ""
+"Your unsubscription request has been received and\n"
+" forwarded on to the list moderators for approval. You will\n"
+" receive notification once the list moderators have made their\n"
+" decision."
+msgstr ""
+"Sua requisição de desinscrição foi recebida e \n"
+" encaminhada para aprovação dos moderadores da lista. Você \n"
+" receberá uma notificação assim que os moderadores da lista\n"
+" fizeram sua decisão."
+
+#: Mailman/Cgi/options.py:431
+msgid ""
+"You have been successfully unsubscribed from the\n"
+" mailing list %(fqdn_listname)s. If you were receiving digest\n"
+" deliveries you may get one more digest. If you have any "
+"questions\n"
+" about your unsubscription, please contact the list owners at\n"
+" %(owneraddr)s."
+msgstr ""
+"Você foi descadastrado com sucesso da lista de discussão\n"
+" %(fqdn_listname)s. Se você estava recebendo entregas\n"
+" digest você pode receber ainda um digest. Se tiver \n"
+" quaisquer questões sobre sua desinscrição, por favor\n"
+" contecte os donos da lista em %(owneraddr)s."
+
+#: Mailman/Cgi/options.py:582
+msgid ""
+"The list administrator has disabled digest delivery for\n"
+" this list, so your delivery option has not been set. However "
+"your\n"
+" other options have been set successfully."
+msgstr ""
+"O administrado da lista desativou a entrega digest para esta lista\n"
+" assim sua opção de entrega não foi configurada. \n"
+" No entanto suas outras opções foram ajustadas \n"
+" com sucesso."
+
+#: Mailman/Cgi/options.py:586
+msgid ""
+"The list administrator has disabled non-digest delivery\n"
+" for this list, so your delivery option has not been set. "
+"However\n"
+" your other options have been set successfully."
+msgstr ""
+"O administrador da lista desativou a entrega não-digest\n"
+" para esta lista, assim a opção de entrega não foi ajustada. \n"
+" No entanto suas outras opções foram ajustadas com \n"
+" sucesso."
+
+#: Mailman/Cgi/options.py:590
+msgid "You have successfully set your options."
+msgstr "Você ajustou com sucesso suas opções."
+
+#: Mailman/Cgi/options.py:593
+msgid "You may get one last digest."
+msgstr "Você poderá receber um último digest."
+
+#: Mailman/Cgi/options.py:662
+msgid "<em>Yes, I really want to unsubscribe</em>"
+msgstr "<em>Sim, eu realmente desejo me descadastrar</em>"
+
+#: Mailman/Cgi/options.py:666
+msgid "Change My Password"
+msgstr "Modificar minha senha"
+
+#: Mailman/Cgi/options.py:669
+msgid "List my other subscriptions"
+msgstr "Listar minhas outras inscrições"
+
+#: Mailman/Cgi/options.py:675
+msgid "Email My Password To Me"
+msgstr "Eviar minha senha para mim"
+
+#: Mailman/Cgi/options.py:677
+msgid "password"
+msgstr "senha"
+
+#: Mailman/Cgi/options.py:679
+msgid "Log out"
+msgstr "Sair"
+
+#: Mailman/Cgi/options.py:681
+msgid "Submit My Changes"
+msgstr "Enviar minhas modificações"
+
+#: Mailman/Cgi/options.py:693
+msgid "days"
+msgstr "dias"
+
+#: Mailman/Cgi/options.py:695
+msgid "day"
+msgstr "dia"
+
+#: Mailman/Cgi/options.py:696
+msgid "%(days)d %(units)s"
+msgstr "%(days)d %(units)s"
+
+#: Mailman/Cgi/options.py:702
+msgid "Change My Address and Name"
+msgstr "Modificar meu Nome e Endereço"
+
+#: Mailman/Cgi/options.py:726
+msgid "<em>No topics defined</em>"
+msgstr "<em>Nenhum tópico definido</em>"
+
+#: Mailman/Cgi/options.py:734
+msgid ""
+"\n"
+"You are subscribed to this list with the case-preserved address\n"
+"<em>%(cpuser)s</em>."
+msgstr ""
+"\n"
+"Você está inscrito nesta lista com a capitalização do endereço preservada\n"
+"<em>%(cpuser)s</em>"
+
+#: Mailman/Cgi/options.py:748
+msgid "%(realname)s list: member options login page"
+msgstr "lista %(realname)s: página de login das opções do membro"
+
+#: Mailman/Cgi/options.py:749
+msgid "email address and "
+msgstr "endereço de email e "
+
+#: Mailman/Cgi/options.py:751
+msgid "%(realname)s list: member options for user %(user)s"
+msgstr "lista %(realname)s: opções do membro para o usuário %(user)s"
+
+#: Mailman/Cgi/options.py:777
+msgid ""
+"In order to change your membership option, you must\n"
+" first log in by giving your %(extra)smembership password in the section\n"
+" below. If you don't remember your membership password, you can have it\n"
+" emailed to you by clicking on the button below. If you just want to\n"
+" unsubscribe from this list, click on the <em>Unsubscribe</em> button and "
+"a\n"
+" confirmation message will be sent to you.\n"
+"\n"
+" <p><strong><em>Important:</em></strong> From this point on, you must "
+"have\n"
+" cookies enabled in your browser, otherwise none of your changes will "
+"take\n"
+" effect.\n"
+" "
+msgstr ""
+"Para modificar sua opção de membro, você deve primeiro\n"
+" logar fornecendo sua senha extra de %(extra)s de membro na seção\n"
+" abaixo. Se não se lembrar de sua senha de membro, você pode te-la \n"
+" enviada por email clicando no botão abaixo. Se apenas quer \n"
+" se descadastrar da lista, clique no botão <em>Unsubscribe</em> e \n"
+" uma mensagem de confirmação será lha enviada.\n"
+"\n"
+" <p><strong><em>Importante:</em></strong> Deste ponto em diante, você \n"
+" deverá ter os cookies ativados em seu navegador, caso contrário\n"
+" nenhuma de suas opções terá efeito."
+
+#: Mailman/Cgi/options.py:791
+msgid "Email address:"
+msgstr "Endereço de email:"
+
+#: Mailman/Cgi/options.py:795
+msgid "Password:"
+msgstr "Senha:"
+
+#: Mailman/Cgi/options.py:797
+msgid "Log in"
+msgstr "Entrar"
+
+#: Mailman/Cgi/options.py:805
+msgid ""
+"By clicking on the <em>Unsubscribe</em> button, a\n"
+" confirmation message will be emailed to you. This message will have a\n"
+" link that you should click on to complete the removal process (you can\n"
+" also confirm by email; see the instructions in the confirmation\n"
+" message)."
+msgstr ""
+"Clicando no botão <em>Unsubscribe</em>, uma mensagem\n"
+" de confirmação será reenviada a você por email. Esta mensagem\n"
+" terá um link que deverá clicar para completar o processo de \n"
+" remoção (você poderá também confirmar por email; veja as \n"
+" inscrições na mensagem de confirmação)."
+
+#: Mailman/Cgi/options.py:813
+msgid "Password reminder"
+msgstr "Lembrete de senha"
+
+#: Mailman/Cgi/options.py:817
+msgid ""
+"By clicking on the <em>Remind</em> button, your\n"
+" password will be emailed to you."
+msgstr ""
+"Clicando no botão <em>Remind</em>, sua senha\n"
+" será encaminhada por email até você."
+
+#: Mailman/Cgi/options.py:820
+msgid "Remind"
+msgstr "Lembrete"
+
+#: Mailman/Cgi/options.py:920
+msgid "<missing>"
+msgstr "<faltando>"
+
+#: Mailman/Cgi/options.py:931
+msgid "Requested topic is not valid: %(topicname)s"
+msgstr "O tópico requisitado não é válido: %(topicname)s"
+
+#: Mailman/Cgi/options.py:936
+msgid "Topic filter details"
+msgstr "detalhes do filtro do tópico"
+
+#: Mailman/Cgi/options.py:939
+msgid "Name:"
+msgstr "Nome:"
+
+#: Mailman/Cgi/options.py:941
+msgid "Pattern (as regexp):"
+msgstr "Padrão (como expr. regular):"
+
+#: Mailman/Cgi/private.py:61
+msgid "Private Archive Error"
+msgstr "Erro no Arquivo Privado"
+
+#: Mailman/Cgi/private.py:62
+msgid "You must specify a list."
+msgstr "Você deve especificar uma lista."
+
+#: Mailman/Cgi/private.py:99
+msgid "Private Archive Error - %(msg)s"
+msgstr "Erro no Arquivo privado - %(msg)s"
+
+#: Mailman/Cgi/private.py:154
+msgid "Private archive file not found"
+msgstr "Arquivo privado arquivo não encontrado"
+
+#: Mailman/Cgi/rmlist.py:81
+msgid "You're being a sneaky list owner!"
+msgstr "Você está sendo um dono de lista descuidado!"
+
+#: Mailman/Cgi/rmlist.py:119
+msgid "You are not authorized to delete this mailing list"
+msgstr "Você não tem autorização para apagar esta lista de discussão"
+
+#: Mailman/Cgi/rmlist.py:160
+msgid "Mailing list deletion results"
+msgstr "Resultados de exclusão da lista de discussão"
+
+#: Mailman/Cgi/rmlist.py:167
+msgid ""
+"You have successfully deleted the mailing list\n"
+" <b>%(listname)s</b>."
+msgstr ""
+"Você apagou com sucesso a lista de discussão\n"
+" <b>%(listname)s</b>"
+
+#: Mailman/Cgi/rmlist.py:171
+msgid ""
+"There were some problems deleting the mailing list\n"
+" <b>%(listname)s</b>. Contact your site administrator at %(sitelist)"
+"s\n"
+" for details."
+msgstr ""
+"Existem alguns problemas para apagar a lista de discussão\n"
+" <b>%(listname)s</b>. Contacte seu administrador em %(sitelist)s\n"
+" para detalhes."
+
+#: Mailman/Cgi/rmlist.py:188
+msgid "Permanently remove mailing list <em>%(realname)s</em>"
+msgstr "Remover permanentemente a lista de discussão <em>%(realname)s</em>"
+
+#: Mailman/Cgi/rmlist.py:202
+msgid ""
+"This page allows you as the list owner, to permanent\n"
+" remove this mailing list from the system. <strong>This action is not\n"
+" undoable</strong> so you should undertake it only if you are absolutely\n"
+" sure this mailing list has served its purpose and is no longer "
+"necessary.\n"
+"\n"
+" <p>Note that no warning will be sent to your list members and after "
+"this\n"
+" action, any subsequent messages sent to the mailing list, or any of its\n"
+" administrative addreses will bounce.\n"
+"\n"
+" <p>You also have the option of removing the archives for this mailing "
+"list\n"
+" at this time. It is almost always recommended that you do\n"
+" <strong>not</strong> remove the archives, since they serve as the\n"
+" historical record of your mailing list.\n"
+"\n"
+" <p>For your safety, you will be asked to reconfirm the list password.\n"
+" "
+msgstr ""
+"Esta página permite que você, como dono da lista, remover permanentemente \n"
+" esta lista de discussão do sistema. <strong>Esta ação não poderá\n"
+" ser desfeita</strong> assim você deverá tomar para si somente \n"
+" se tiver absoluta certeza que esta lista serve este propósito\n"
+" e não é mais necessária\n"
+"\n"
+" <p>Note que nenhum aviso será enviado aos membros da lista após\n"
+" esta ação, quaisquer mensagens subsequentes enviadas para a lista\n"
+" de discussão ou quaisquer de seus endereços administrativos \n"
+" retornarão.\n"
+"\n"
+"\n"
+" <p>Você também tem a opção de remover os arquivos desta lista de \n"
+" discussão agora. É quase sempre recomendado que não se removam os \n"
+" arquivos, pois eles servem de registros históricos para sua \n"
+" lista de discussão.\n"
+"\n"
+" <p>Para sua segurança, você será perguntado para confirmar a \n"
+" senha da lista.\n"
+"\n"
+" "
+
+#: Mailman/Cgi/rmlist.py:223
+msgid "List password:"
+msgstr "Senha da Lista:"
+
+#: Mailman/Cgi/rmlist.py:227
+msgid "Also delete archives?"
+msgstr "Também apagar os arquivos?"
+
+#: Mailman/Cgi/rmlist.py:235
+msgid "<b>Cancel</b> and return to list administration"
+msgstr "<b>Cancelar</b> e retornar a administração da lista"
+
+#: Mailman/Cgi/rmlist.py:238
+msgid "Delete this list"
+msgstr "Apagar esta lista"
+
+#: Mailman/Cgi/roster.py:48 Mailman/Cgi/subscribe.py:50
+msgid "Invalid options to CGI script"
+msgstr "Opções inválidas para o script CGI"
+
+#: Mailman/Cgi/roster.py:99
+msgid "%(realname)s roster authentication failed."
+msgstr "%(realname)s falha de autenticação na lista."
+
+#: Mailman/Cgi/roster.py:127 Mailman/Cgi/roster.py:128
+#: Mailman/Cgi/subscribe.py:49 Mailman/Cgi/subscribe.py:60
+msgid "Error"
+msgstr "Erro"
+
+#: Mailman/Cgi/subscribe.py:109
+msgid "You must supply a valid email address."
+msgstr "Você deverá fornecer um endereço de email válido."
+
+#: Mailman/Cgi/subscribe.py:122
+msgid "You may not subscribe a list to itself!"
+msgstr "Você não pode se inscrever na lista para você mesmo!"
+
+#: Mailman/Cgi/subscribe.py:131
+msgid "If you supply a password, you must confirm it."
+msgstr "Caso forneça uma senha, você deverá confirma-la."
+
+#: Mailman/Cgi/subscribe.py:133
+msgid "Your passwords did not match."
+msgstr "Suas senhas não conferem."
+
+#: Mailman/Cgi/subscribe.py:167
+msgid ""
+"Your subscription request has been received, and will soon be acted upon.\n"
+"Depending on the configuration of this mailing list, your subscription "
+"request\n"
+"may have to be first confirmed by you via email, or approved by the list\n"
+"moderator. If confirmation is required, you will soon get a confirmation\n"
+"email which contains further instructions."
+msgstr ""
+"Sua requisição de inscrição foi recebida e será agilizada logo.\n"
+"Dependendo da configuraçào desta lista de discussão, sua requisição\n"
+"de inscrição pode ser primeiro confirmada por email ou aprovada pelo\n"
+"moderador da lista. Caso a confirmação seja requerida, você receberá \n"
+"logo um e-mail de confirmação que trará instruções futuras."
+
+#: Mailman/Cgi/subscribe.py:181
+msgid ""
+"The email address you supplied is banned from this\n"
+" mailing list. If you think this restriction is erroneous, please\n"
+" contact the list owners at %(listowner)s."
+msgstr ""
+"O endereço de email que forneceu está banido desta\n"
+" lista de discussão. Se achar que esta restrição é incorreta, por \n"
+" favor contacte o dono da lista em %(listowner)s."
+
+#: Mailman/Cgi/subscribe.py:185
+msgid ""
+"The email address you supplied is not valid. (E.g. it must contain an\n"
+"`@'.)"
+msgstr ""
+"O endereço de email que forneceu não é válido. (E.g. deve conter uma\n"
+"'@')."
+
+#: Mailman/Cgi/subscribe.py:189
+msgid ""
+"Your subscription is not allowed because the email address you gave is\n"
+"insecure."
+msgstr ""
+"A sua inscrição não é permitida por causa que o endereço de email que \n"
+"você forneceu é inseguro."
+
+#: Mailman/Cgi/subscribe.py:197
+msgid ""
+"Confirmation from your email address is required, to prevent anyone from\n"
+"subscribing you without permission. Instructions are being sent to you at\n"
+"%(email)s. Please note your subscription will not start until you confirm\n"
+"your subscription."
+msgstr ""
+"A confirmação através de seu endereço é requerida, para previnir que "
+"qualquer\n"
+"de te inscrever sem sua permissão. As instruções estão sendo enviadas a \n"
+"você por %(email)s. Por favor note que sua participação não começará até "
+"que \n"
+"confirme sua inscrição na lista."
+
+#: Mailman/Cgi/subscribe.py:209
+msgid ""
+"Your subscription request was deferred because %(x)s. Your request has "
+"been\n"
+"forwarded to the list moderator. You will receive email informing you of "
+"the\n"
+"moderator's decision when they get to your request."
+msgstr ""
+"Sua requisiçào de inscrição foi deferida porque %(x)s. Sua requisição foi \n"
+"redirecionada para o moderador da lista. Você receberá uma mensagem te \n"
+"informando da decisão do moderador quando ele receber sua requisição."
+
+#: Mailman/Cgi/subscribe.py:216 Mailman/Commands/cmd_confirm.py:60
+msgid "You are already subscribed."
+msgstr "Você já está inscrito."
+
+#: Mailman/Cgi/subscribe.py:230
+msgid "Mailman privacy alert"
+msgstr "Alerta de privacidade do Mailman"
+
+#: Mailman/Cgi/subscribe.py:231
+msgid ""
+"An attempt was made to subscribe your address to the mailing list\n"
+"%(listaddr)s. You are already subscribed to this mailing list.\n"
+"\n"
+"Note that the list membership is not public, so it is possible that a bad\n"
+"person was trying to probe the list for its membership. This would be a\n"
+"privacy violation if we let them do this, but we didn't.\n"
+"\n"
+"If you submitted the subscription request and forgot that you were already\n"
+"subscribed to the list, then you can ignore this message. If you suspect "
+"that\n"
+"an attempt is being made to covertly discover whether you are a member of "
+"this\n"
+"list, and you are worried about your privacy, then feel free to send a "
+"message\n"
+"to the list administrator at %(listowner)s.\n"
+msgstr ""
+"Foi feita uma tentativa de inscrever seu endereço de email na lista\n"
+"de discussão %(listaddr)s. Você já está inscrito nesta lista.\n"
+"\n"
+"Note que os membros da lista não são públicas, assim é possível que uma \n"
+"pessoa com más intenções tente localizar na lista seu membro. Isto \n"
+"poderá ser uma violação de privacidade de permiti-los fazer isto, \n"
+"mas nós não fizemos.\n"
+"\n"
+"Se enviar a requisiçõa de inscrição e esquecer que já está inscrito nesta \n"
+"lista, então você poderá ignorar esta mensagem. Se suspeitar que \n"
+"uma tentativa está sendo feita para descobrir secretamente se você é um \n"
+"membro desta lista e você está preocupado sobre sua privacidade, então\n"
+"sinta-se livre para enviar uma mensagem ao administrador da lista \n"
+"em %(listowner)s.\n"
+
+#: Mailman/Cgi/subscribe.py:250
+msgid "This list does not support digest delivery."
+msgstr "Esta lista não suporta entrega usando digest."
+
+#: Mailman/Cgi/subscribe.py:252
+msgid "This list only supports digest delivery."
+msgstr "Esta lita somente suporta entregas usando digest."
+
+#: Mailman/Cgi/subscribe.py:259
+msgid "You have been successfully subscribed to the %(realname)s mailing list."
+msgstr "Você foi inscrito com sucesso na lista de discussão %(realname)s."
+
+#: Mailman/Commands/cmd_confirm.py:17
+msgid ""
+"\n"
+" confirm <confirmation-string>\n"
+" Confirm an action. The confirmation-string is required and should "
+"be\n"
+" supplied with in mailback confirmation notice.\n"
+msgstr ""
+"\n"
+" confirm <string-de-confirmação>\n"
+" Confirme uma ação. A string de confirmação é requerida e deverá "
+"ser \n"
+" fornecida com uma notificação de retorno de email.\n"
+
+#: Mailman/Commands/cmd_confirm.py:40 Mailman/Commands/cmd_lists.py:40
+#: Mailman/Commands/cmd_set.py:133 Mailman/Commands/cmd_subscribe.py:69
+#: Mailman/Commands/cmd_unsubscribe.py:52 Mailman/Commands/cmd_who.py:65
+msgid "Usage:"
+msgstr "Uso:"
+
+#: Mailman/Commands/cmd_confirm.py:49
+msgid ""
+"Invalid confirmation string. Note that confirmation strings expire\n"
+"approximately %(days)s days after the initial subscription request. If "
+"your\n"
+"confirmation has expired, please try to re-submit your original request or\n"
+"message."
+msgstr ""
+"String de confirmação inválida. Note que strings de confirmação expiram\n"
+"aproximadamente %(days)s dias após a requisição inicial de inscrição. \n"
+"Caso sua mensagem de confirmação expirou, tente re-enviar a requisição \n"
+"original ou mensagem."
+
+#: Mailman/Commands/cmd_confirm.py:55
+msgid "Your request has been forwarded to the list moderator for approval."
+msgstr "Sua requisição foi encaminhada ao moderador da lista para aprovação."
+
+#: Mailman/Commands/cmd_confirm.py:63
+msgid ""
+"You are not current a member. Have you already unsubscribed or changed\n"
+"your email address?"
+msgstr ""
+"Você não é um membro atualmente. Você já foi desinscrito ou mudou seu \n"
+"endereço de email?"
+
+#: Mailman/Commands/cmd_confirm.py:73
+msgid "Confirmation succeeded"
+msgstr "Confirmação efetuada"
+
+#: Mailman/Commands/cmd_echo.py:17
+msgid ""
+"\n"
+" echo [args]\n"
+" Simply echo an acknowledgement. Args are echoed back unchanged.\n"
+msgstr ""
+"\n"
+" echo [args]\n"
+" Simplesmente mostra um reconhecimento. Args são retornados sem \n"
+"alteração.\n"
+
+#: Mailman/Commands/cmd_end.py:17
+msgid ""
+"\n"
+" end\n"
+" Stop processing commands. Use this if your mail program "
+"automatically\n"
+" adds a signature file.\n"
+msgstr ""
+"\n"
+" end\n"
+" Interrompe o processamento de comadnos. Use isto caso seu programa\n"
+" de email adiciona automaticament eum arquivo de assinatura.\n"
+
+#: Mailman/Commands/cmd_help.py:17
+msgid ""
+"\n"
+" help\n"
+" Print this help message.\n"
+msgstr ""
+"\n"
+" help\n"
+" Mostra esta mensagem de ajuda\n"
+
+#: Mailman/Commands/cmd_help.py:47
+msgid "You can access your personal options via the following url:"
+msgstr "Você poderá acessar suas opções pessoais através da seguinte url:"
+
+#: Mailman/Commands/cmd_info.py:17
+msgid ""
+"\n"
+" info\n"
+" Get information about this mailing list.\n"
+msgstr ""
+"\n"
+" info\n"
+" Obtém informações sobre esta lista de discussão.\n"
+
+#: Mailman/Commands/cmd_info.py:39 Mailman/Commands/cmd_lists.py:62
+msgid "n/a"
+msgstr "n/a"
+
+#: Mailman/Commands/cmd_info.py:44
+msgid "List name: %(listname)s"
+msgstr "Nome da Lista: %(listname)s"
+
+#: Mailman/Commands/cmd_info.py:45
+msgid "Description: %(description)s"
+msgstr "Descrição: %(description)s"
+
+#: Mailman/Commands/cmd_info.py:46
+msgid "Postings to: %(postaddr)s"
+msgstr "Postando para: %(postaddr)s"
+
+#: Mailman/Commands/cmd_info.py:47
+msgid "List Helpbot: %(requestaddr)s"
+msgstr "AJuda da Lista: %(requestaddr)s"
+
+#: Mailman/Commands/cmd_info.py:48
+msgid "List Owners: %(owneraddr)s"
+msgstr "Donos da Lista: %(owneraddr)s"
+
+#: Mailman/Commands/cmd_info.py:49
+msgid "More information: %(listurl)s"
+msgstr "Mais detalhes: %(listurl)s"
+
+#: Mailman/Commands/cmd_join.py:17
+msgid "The `join' command is synonymous with `subscribe'.\n"
+msgstr "O comando 'join' é um sinônimo para 'subscribe'.\n"
+
+#: Mailman/Commands/cmd_leave.py:17
+msgid "The `leave' command is synonymous with `unsubscribe'.\n"
+msgstr "O comando 'leave' é um sinônimo para 'unsubscribe'.\n"
+
+#: Mailman/Commands/cmd_lists.py:17
+msgid ""
+"\n"
+" lists\n"
+" See a list of the public mailing lists on this GNU Mailman server.\n"
+msgstr ""
+"\n"
+" listas\n"
+" Veja uma lista de listas de discussão públicas neste servidor GNU "
+"Mailman.\n"
+
+#: Mailman/Commands/cmd_lists.py:44
+msgid "Public mailing lists at %(hostname)s:"
+msgstr "Listas de discussão públicas em %(hostname)s:"
+
+#: Mailman/Commands/cmd_lists.py:66
+msgid "%(i)3d. List name: %(realname)s"
+msgstr "%(i)3d. Nome da lista: %(realname)s"
+
+#: Mailman/Commands/cmd_lists.py:67
+msgid " Description: %(description)s"
+msgstr " Descrição: %(description)s"
+
+#: Mailman/Commands/cmd_lists.py:68
+msgid " Requests to: %(requestaddr)s"
+msgstr " Requisitar a: %(requestaddr)s"
+
+#: Mailman/Commands/cmd_password.py:17
+msgid ""
+"\n"
+" password [<oldpassword> <newpassword>] [address=<address>]\n"
+" Retrieve or change your password. With no arguments, this returns\n"
+" your current password. With arguments <oldpassword> and "
+"<newpassword>\n"
+" you can change your password.\n"
+"\n"
+" If you're posting from an address other than your membership "
+"address,\n"
+" specify your membership address with `address=<address>' (no "
+"brackets\n"
+" around the email address, and no quotes!). Note that in this case "
+"the\n"
+" response is always sent to the subscribed address.\n"
+msgstr ""
+"\n"
+" password [<senha_antiga> <nova_senha>] [address=<endereço>]\n"
+" Recupera ou modifica sua senha. Quando é usado sem argumentos, \n"
+" este comando retorna sua senha atual. Com os argumentos\n"
+" <senha_antiga> e <nova_senha> você poderá mudar sua\n"
+" senha.\n"
+"\n"
+" Se estiver postando de um endereço diferente do seu endereço\n"
+" de membro, especifique seu endereço de membro com \n"
+" 'address=<endereço>' (sem aspas e sinal de maior/menor entre\n"
+" o endereço). Note que neste caso a resposta é sempre enviada para \n"
+" o endereço inscrito.\n"
+
+#: Mailman/Commands/cmd_password.py:51 Mailman/Commands/cmd_password.py:64
+msgid "Your password is: %(password)s"
+msgstr "Sua senha é: %(password)s"
+
+#: Mailman/Commands/cmd_password.py:55 Mailman/Commands/cmd_password.py:68
+#: Mailman/Commands/cmd_password.py:91 Mailman/Commands/cmd_password.py:117
+#: Mailman/Commands/cmd_set.py:149 Mailman/Commands/cmd_set.py:219
+msgid "You are not a member of the %(listname)s mailing list"
+msgstr "Você não é um membro da lista de discussão %(listname)s"
+
+#: Mailman/Commands/cmd_password.py:81 Mailman/Commands/cmd_password.py:107
+msgid ""
+"You did not give the correct old password, so your password has not been\n"
+"changed. Use the no argument version of the password command to retrieve "
+"your\n"
+"current password, then try again."
+msgstr ""
+"Você não forneceu a antiga senha corretamente, assim sua senha não foi \n"
+"modificada. Use a versão sem argumentos do comando password para receber \n"
+"uma notificação de sua senha atual, então tente denovo."
+
+#: Mailman/Commands/cmd_password.py:85 Mailman/Commands/cmd_password.py:111
+msgid ""
+"\n"
+"Usage:"
+msgstr ""
+"\n"
+"Uso:"
+
+#: Mailman/Commands/cmd_remove.py:17
+msgid "The `remove' command is synonymous with `unsubscribe'.\n"
+msgstr "O comando 'remove' é um sinônimo para 'unsubscribe'.\n"
+
+#: Mailman/Commands/cmd_set.py:26
+msgid ""
+"\n"
+" set ...\n"
+" Set or view your membership options.\n"
+"\n"
+" Use `set help' (without the quotes) to get a more detailed list of "
+"the\n"
+" options you can change.\n"
+"\n"
+" Use `set show' (without the quotes) to view your current option\n"
+" settings.\n"
+msgstr ""
+"\n"
+" set...\n"
+" Ajusta ou visualiza suas opções de membros.\n"
+"\n"
+" Use 'set help' (sem as aspas) para ter uma lista mais detalhada\n"
+" de opções que poderá modificar.\n"
+"\n"
+" Use 'net show' (sem as aspas) para ver suas configurações de \n"
+" opções atuais.\n"
+
+#: Mailman/Commands/cmd_set.py:37
+msgid ""
+"\n"
+" set help\n"
+" Show this detailed help.\n"
+"\n"
+" set show [address=<address>]\n"
+" View your current option settings. If you're posting from an "
+"address\n"
+" other than your membership address, specify your membership address\n"
+" with `address=<address>' (no brackets around the email address, and "
+"no\n"
+" quotes!).\n"
+"\n"
+" set authenticate <password> [address=<address>]\n"
+" To set any of your options, you must include this command first, "
+"along\n"
+" with your membership password. If you're posting from an address\n"
+" other than your membership address, specify your membership address\n"
+" with `address=<address>' (no brackets around the email address, and "
+"no\n"
+" quotes!).\n"
+"\n"
+" set ack on\n"
+" set ack off\n"
+" When the `ack' option is turned on, you will receive an\n"
+" acknowledgement message whenever you post a message to the list.\n"
+"\n"
+" set digest plain\n"
+" set digest mime\n"
+" set digest off\n"
+" When the `digest' option is turned off, you will receive postings\n"
+" immediately when they are posted. Use `set digest plain' if "
+"instead\n"
+" you want to receive postings bundled into a plain text digest\n"
+" (i.e. RFC 1153 digest). Use `set digest mime' if instead you want "
+"to\n"
+" receive postings bundled together into a MIME digest.\n"
+"\n"
+" set delivery on\n"
+" set delivery off\n"
+" Turn delivery on or off. This does not unsubscribe you, but "
+"instead\n"
+" tells Mailman not to deliver messages to you for now. This is "
+"useful\n"
+" if you're going on vacation. Be sure to use `set delivery on' when\n"
+" you return from vacation!\n"
+"\n"
+" set myposts on\n"
+" set myposts off\n"
+" Use `set myposts off' to not receive copies of messages you post to\n"
+" the list. This has no effect if you're receiving digests.\n"
+"\n"
+" set hide on\n"
+" set hide off\n"
+" Use `set hide on' to conceal your email address when people request\n"
+" the membership list.\n"
+"\n"
+" set duplicates on\n"
+" set duplicates off\n"
+" Use `set duplicates off' if you want Mailman to not send you "
+"messages\n"
+" if your address is explicitly mentioned in the To: or Cc: fields of\n"
+" the message. This can reduce the number of duplicate postings you\n"
+" will receive.\n"
+"\n"
+" set reminders on\n"
+" set reminders off\n"
+" Use `set reminders off' if you want to disable the monthly password\n"
+" reminder for this mailing list.\n"
+msgstr ""
+"\n"
+" set help\n"
+" Mostra esta ajuda detalhada.\n"
+"\n"
+" set show [address=<endereço>]\n"
+" Visualiza suas opções atuais. Se estiver postando de um endereço\n"
+" diferente do seu endereço de membro, especifique seu endereço de \n"
+" membro com 'address=<endereço>' (sem sinais de maior e menor e \n"
+" aspas!).\n"
+"\n"
+" set authenticate <senha> [address=<endereço>]\n"
+" Para ajustar qualquer de suas opções, você deve incluir este\n"
+" comando primeiro, junto com sua senha de membro. Se estiver\n"
+" postando de um endereço diferente do seu endereço de membro\n"
+" especifique seu endereço de membro com 'address=<endereço>'\n"
+" (sem sinais de maior e menor entre o endereço de email e \n"
+" sem aspas).\n"
+"\n"
+" set ack on\n"
+" set ack off\n"
+" Quando a opção 'ack' está ativada, você receberá uma mensagem\n"
+" de confirmação quando posta uma mensagem para a lista.\n"
+"\n"
+" set digest plain\n"
+" set digest mime\n"
+" set digest off\n"
+" Quando a opção 'digest' está desativada, você receberá \n"
+" postagens imediatamente quando elas forem postadas. Use \n"
+" 'set digest plain' para receber postagens em texto plano\n"
+" ao invés de MIME (RFC 1153). Use 'set digest mime' se deseja "
+"receber\n"
+" postagens em digest MIME.\n"
+"\n"
+" set delivery on\n"
+" set delivery off\n"
+" Ativa ou desativa a entrega. Isto não descadaste você, mas \n"
+" ao invés disso, diz ao Mailman para não entregar mensagens\n"
+" a você agora. Isto é útil se estiver entrando de férias. Tenha\n"
+" certeza de usar 'set delivery on' quando retornar de férias!\n"
+"\n"
+" set myposts on\n"
+" set myposts off\n"
+" Use 'set myposts off' para não receber cópias de mensagens que \n"
+" você mesmo postas para a lista. Isto não tem efeito \n"
+" se estiver recebendo digests.\n"
+"\n"
+" set hide on\n"
+" set hide off\n"
+" Use 'set hide on' para esconder seu endereço de email quando\n"
+" as pessoas requisitam a lista de membros.\n"
+"\n"
+" set duplicates on\n"
+" set duplicates off\n"
+" Use 'set duplicates off' se deseja que o Mailman não envie a você\n"
+" mensagens que seu endereço de e-mail seja explicitamente \n"
+" mencionado nos campos To: ou CC: da mensagem. Isto poderá \n"
+" reduzir o número de postagens duplicadas que recebe.\n"
+"\n"
+" set reminders on\n"
+" set reminders off\n"
+" Use 'set reminders off' se deseja desativar o lembrete de senha "
+"mensal\n"
+" para esta lista de discussão.\n"
+
+#: Mailman/Commands/cmd_set.py:122
+msgid "Bad set command: %(subcmd)s"
+msgstr "Comando ajustado incorretamente: %(subcmd)s"
+
+#: Mailman/Commands/cmd_set.py:151
+msgid "Your current option settings:"
+msgstr "SUas configurações atuais de opções:"
+
+#: Mailman/Commands/cmd_set.py:153 Mailman/Commands/cmd_set.py:191
+#: Mailman/Commands/cmd_set.py:194 Mailman/Commands/cmd_set.py:198
+#: Mailman/Commands/cmd_set.py:202
+msgid "off"
+msgstr "desativado"
+
+#: Mailman/Commands/cmd_set.py:153 Mailman/Commands/cmd_set.py:191
+#: Mailman/Commands/cmd_set.py:194 Mailman/Commands/cmd_set.py:198
+#: Mailman/Commands/cmd_set.py:202
+msgid "on"
+msgstr "ativado"
+
+#: Mailman/Commands/cmd_set.py:154
+msgid " ack %(onoff)s"
+msgstr " reconhecimento %(onoff)s"
+
+#: Mailman/Commands/cmd_set.py:160
+msgid " digest plain"
+msgstr " digesto plano"
+
+#: Mailman/Commands/cmd_set.py:162
+msgid " digest mime"
+msgstr " digesto mime"
+
+#: Mailman/Commands/cmd_set.py:164
+msgid " digest off"
+msgstr " digesto desligado"
+
+#: Mailman/Commands/cmd_set.py:169
+msgid "delivery on"
+msgstr "entrega ativada"
+
+#: Mailman/Commands/cmd_set.py:171 Mailman/Commands/cmd_set.py:174
+#: Mailman/Commands/cmd_set.py:177 Mailman/Commands/cmd_set.py:181
+msgid "delivery off"
+msgstr "entrega desativada"
+
+#: Mailman/Commands/cmd_set.py:172
+msgid "by you"
+msgstr "por voce"
+
+#: Mailman/Commands/cmd_set.py:175
+msgid "by the admin"
+msgstr "pelo administrador"
+
+#: Mailman/Commands/cmd_set.py:178
+msgid "due to bounces"
+msgstr "devido a mensagens retornadas"
+
+#: Mailman/Commands/cmd_set.py:186
+msgid " %(status)s (%(how)s on %(date)s)"
+msgstr " %(status)s %(how)s em %(date)s)"
+
+#: Mailman/Commands/cmd_set.py:192
+msgid " myposts %(onoff)s"
+msgstr " minhas postagens %(onoff)s"
+
+#: Mailman/Commands/cmd_set.py:195
+msgid " hide %(onoff)s"
+msgstr " ocultar %(onoff)s"
+
+#: Mailman/Commands/cmd_set.py:199
+msgid " duplicates %(onoff)s"
+msgstr " duplicadas %(onoff)s"
+
+#: Mailman/Commands/cmd_set.py:203
+msgid " reminders %(onoff)s"
+msgstr " lembretes %(onoff)s"
+
+#: Mailman/Commands/cmd_set.py:224
+msgid "You did not give the correct password"
+msgstr "Você não forneceu a senha incorreta"
+
+#: Mailman/Commands/cmd_set.py:236 Mailman/Commands/cmd_set.py:283
+msgid "Bad argument: %(arg)s"
+msgstr "Argumento incorreto: %(arg)s"
+
+#: Mailman/Commands/cmd_set.py:241 Mailman/Commands/cmd_set.py:261
+msgid "Not authenticated"
+msgstr "Não autenticado"
+
+#: Mailman/Commands/cmd_set.py:254
+msgid "ack option set"
+msgstr "configuração da opção de reconhecimento"
+
+#: Mailman/Commands/cmd_set.py:286
+msgid "digest option set"
+msgstr "configuração da opção de digest"
+
+#: Mailman/Commands/cmd_set.py:298
+msgid "delivery option set"
+msgstr "configuração da opção de entrega"
+
+#: Mailman/Commands/cmd_set.py:310
+msgid "myposts option set"
+msgstr "configuração da opção de postagens próprias"
+
+#: Mailman/Commands/cmd_set.py:321
+msgid "hide option set"
+msgstr "configuração da opção de ocultar"
+
+#: Mailman/Commands/cmd_set.py:333
+msgid "duplicates option set"
+msgstr "configuração da opcao de duplicadas"
+
+#: Mailman/Commands/cmd_set.py:345
+msgid "reminder option set"
+msgstr "configuração da opção de lembrete"
+
+#: Mailman/Commands/cmd_stop.py:17
+msgid "stop is synonymous with the end command.\n"
+msgstr "stop é um sinônimo para o comando end.\n"
+
+#: Mailman/Commands/cmd_subscribe.py:17
+msgid ""
+"\n"
+" subscribe [password] [digest|nodigest] [address=<address>]\n"
+" Subscribe to this mailing list. Your password must be given to\n"
+" unsubscribe or change your options, but if you omit the password, "
+"one\n"
+" will be generated for you. You may be periodically reminded of "
+"your\n"
+" password.\n"
+"\n"
+" The next argument may be either: `nodigest' or `digest' (no "
+"quotes!).\n"
+" If you wish to subscribe an address other than the address you sent\n"
+" this request from, you may specify `address=<address>' (no brackets\n"
+" around the email address, and no quotes!)\n"
+msgstr ""
+"\n"
+" subscribe [senha] [digest|nodigest] [address=<endereço>]\n"
+" Inscreve-se nesta lista de discussão. Sua senha deve ser \n"
+" fornecida para se desinscrever ou modificar suas opções, mas \n"
+" se omitir a senha, uma será gerava pra voce. Você poderá ser \n"
+" lembrado periódicamente de sua senha.\n"
+"\n"
+" O próximo argumento pode ser ou: 'nodigest' ou 'digest' \n"
+" (sem aspas!). Se deseja inscrever um endereço diferente do \n"
+" endereço que enviou esta requisição, será necessário \n"
+" especificar 'address=<endereço>' (sem chaves em torno do endereço\n"
+" de email e sem aspas!).\n"
+
+#: Mailman/Commands/cmd_subscribe.py:62
+msgid "Bad digest specifier: %(arg)s"
+msgstr "Especificador digest incorreto: %(arg)s"
+
+#: Mailman/Commands/cmd_subscribe.py:84
+msgid "No valid address found to subscribe"
+msgstr "Nenhum endereço válido foi encontrado para se inscrever"
+
+#: Mailman/Commands/cmd_subscribe.py:102
+msgid ""
+"The email address you supplied is banned from this mailing list.\n"
+"If you think this restriction is erroneous, please contact the list\n"
+"owners at %(listowner)s."
+msgstr ""
+"O endereço de email que forneceu está banido desta lista de discussão.\n"
+"Se você acha que esta restrição está incorreta, por favor contacte os \n"
+"donos da lista em %(listowner)s."
+
+#: Mailman/Commands/cmd_subscribe.py:108
+msgid ""
+"Mailman won't accept the given email address as a valid address.\n"
+"(E.g. it must have an @ in it.)"
+msgstr ""
+"Mailman não aceita o endereço de email fornecido como endereço válido.\n"
+"(e.g. ele deverá ter uma @ nele)."
+
+#: Mailman/Commands/cmd_subscribe.py:113
+msgid ""
+"Your subscription is not allowed because\n"
+"the email address you gave is insecure."
+msgstr ""
+"A sua inscrição não é autorizada por causa que o endereço de email\n"
+"fornecido é inseguro."
+
+#: Mailman/Commands/cmd_subscribe.py:118
+msgid "You are already subscribed!"
+msgstr "Você já está inscrito!"
+
+#: Mailman/Commands/cmd_subscribe.py:122
+msgid "No one can subscribe to the digest of this list!"
+msgstr "Ninguém poderá se inscrever ao digest desta lista!"
+
+#: Mailman/Commands/cmd_subscribe.py:125
+msgid "This list only supports digest subscriptions!"
+msgstr "Esta lista somente suporta inscrições digest!"
+
+#: Mailman/Commands/cmd_subscribe.py:131
+msgid ""
+"Your subscription request has been forwarded to the list administrator\n"
+"at %(listowner)s for review."
+msgstr ""
+"Sua requisição de inscrição foi enviada ao administrador da lista em\n"
+"%(listowner)s para revisão."
+
+#: Mailman/Commands/cmd_subscribe.py:136
+msgid "Subscription request succeeded."
+msgstr "Requisiçao de inscrição sucedidada."
+
+#: Mailman/Commands/cmd_unsubscribe.py:17
+msgid ""
+"\n"
+" unsubscribe [password] [address=<address>]\n"
+" Unsubscribe from the mailing list. If given, your password must "
+"match\n"
+" your current password. If omitted, a confirmation email will be "
+"sent\n"
+" to the unsubscribing address. If you wish to unsubscribe an address\n"
+" other than the address you sent this request from, you may specify\n"
+" `address=<address>' (no brackets around the email address, and no\n"
+" quotes!)\n"
+msgstr ""
+"\n"
+" unsubscribe [senha] [address=<endereço>]\n"
+" Descadastra-se da lista de discussão. Se fornecido, sua senha\n"
+" deve conferir com sua senha atual. Se omitido, uma mensagem de \n"
+" confirmação será enviada para o endereço que está sendo "
+"descadastrado.\n"
+" Se deseja desinscrever um endereço que nào seja o endereço que "
+"enviou\n"
+" esta requisição, você poderá especificar 'address=<endereço>' \n"
+" (sem chaves em torno do endereço de email, e sem aspas).\n"
+
+#: Mailman/Commands/cmd_unsubscribe.py:62
+msgid "%(address)s is not a member of the %(listname)s mailing list"
+msgstr "%(address)s não é um membro da lista de discussão %(listname)s"
+
+#: Mailman/Commands/cmd_unsubscribe.py:69
+msgid ""
+"Your unsubscription request has been forwarded to the list administrator "
+"for\n"
+"approval."
+msgstr ""
+"Sua requisição de inscrição foi redirecionada para o administrador da lista\n"
+"para aprovação."
+
+#: Mailman/Commands/cmd_unsubscribe.py:84
+msgid "You gave the wrong password"
+msgstr "Você forneceu a senha incorreta"
+
+#: Mailman/Commands/cmd_unsubscribe.py:87
+msgid "Unsubscription request succeeded."
+msgstr "Requisição de desinscrição processada."
+
+#: Mailman/Commands/cmd_who.py:29
+msgid ""
+"\n"
+" who\n"
+" See everyone who is on this mailing list.\n"
+msgstr ""
+"\n"
+" who\n"
+" Ve todas as pessoas que estão nesta lista de discussão.\n"
+
+#: Mailman/Commands/cmd_who.py:34
+msgid ""
+"\n"
+" who password [address=<address>]\n"
+" See everyone who is on this mailing list. The roster is limited to\n"
+" list members only, and you must supply your membership password to\n"
+" retrieve it. If you're posting from an address other than your\n"
+" membership address, specify your membership address with\n"
+" `address=<address>' (no brackets around the email address, and no\n"
+" quotes!)\n"
+msgstr ""
+"\n"
+" who password [address=<endereço>]\n"
+" Ve todas as pessoas que estão nesta lista de discussão. Isto é \n"
+" limitado somente a lista de membros, e você deverá fornecer sua \n"
+" senha de membroi para obte-la. Se estiver postando de um endereço \n"
+" que não seja seu endereço de membro, especifiqe um endereço de \n"
+" membro com 'address=<endereço>' (sem sinal de maior e menor e \n"
+" sem aspas!).\n"
+
+#: Mailman/Commands/cmd_who.py:44
+msgid ""
+"\n"
+" who password\n"
+" See everyone who is on this mailing list. The roster is limited to\n"
+" list administrators and moderators only; you must supply the list\n"
+" admin or moderator password to retrieve the roster.\n"
+msgstr ""
+"\n"
+" who senha\n"
+" Ve todos que estão nesta lista de discussão. A lista é limitada a \n"
+" administradores da lista e moderadores; você deverá fornecer a \n"
+" senha do administrador ou moderador da lista para recupera-la.\n"
+
+#: Mailman/Commands/cmd_who.py:110
+msgid "You are not allowed to retrieve the list membership."
+msgstr "Você não tem permissão para recuperar a lista de membros."
+
+#: Mailman/Commands/cmd_who.py:116
+msgid "This list has no members."
+msgstr "Esta lista não possui membros."
+
+#: Mailman/Commands/cmd_who.py:129
+msgid "Non-digest (regular) members:"
+msgstr "Membros regulares não-digest:"
+
+#: Mailman/Commands/cmd_who.py:132
+msgid "Digest members:"
+msgstr "Membros Digest:"
+
+#: Mailman/Defaults.py:1204
+msgid "Traditional Chinese"
+msgstr "Chinês Tradicional"
+
+#: Mailman/Defaults.py:1205
+msgid "Czech"
+msgstr "tcheco"
+
+#: Mailman/Defaults.py:1206
+msgid "German"
+msgstr "Alemão"
+
+#: Mailman/Defaults.py:1207
+msgid "English (USA)"
+msgstr "Inglês (EUA)"
+
+#: Mailman/Defaults.py:1208
+msgid "Spanish (Spain)"
+msgstr "Espanhol (Espanha)"
+
+#: Mailman/Defaults.py:1209
+msgid "Estonian"
+msgstr "Estonian"
+
+#: Mailman/Defaults.py:1210
+msgid "Finnish"
+msgstr "Finlandês"
+
+#: Mailman/Defaults.py:1211
+msgid "French"
+msgstr "Francês"
+
+#: Mailman/Defaults.py:1212
+msgid "Simplified Chinese"
+msgstr "Chinês simplificado"
+
+#: Mailman/Defaults.py:1213
+msgid "Hungarian"
+msgstr "Húmgaro"
+
+#: Mailman/Defaults.py:1214
+msgid "Italian"
+msgstr "Italiano"
+
+#: Mailman/Defaults.py:1215
+msgid "Japanese"
+msgstr "Japonês"
+
+#: Mailman/Defaults.py:1216
+msgid "Korean"
+msgstr "Coreano"
+
+#: Mailman/Defaults.py:1217
+msgid "Lithuanian"
+msgstr ""
+
+#: Mailman/Defaults.py:1218
+msgid "Dutch"
+msgstr "Holandês"
+
+#: Mailman/Defaults.py:1219
+msgid "Norwegian"
+msgstr "Norueguês"
+
+#: Mailman/Defaults.py:1220
+msgid "Portuguese (Brazil)"
+msgstr "Portugues (Brasil)"
+
+#: Mailman/Defaults.py:1221
+msgid "Russian"
+msgstr "Russo"
+
+#: Mailman/Defaults.py:1222
+msgid "Swedish"
+msgstr "Suéco"
+
+#: Mailman/Deliverer.py:43
+msgid ""
+"Note: Since this is a list of mailing lists, administrative\n"
+"notices like the password reminder will be sent to\n"
+"your membership administrative address, %(addr)s."
+msgstr ""
+"Nota: Esta lista é uma lista de listas de discussão, notificações \n"
+"administrativas como lembretes de senhas serão enviadas para o \n"
+"endereço de membro administrativo, %(addr)s."
+
+#: Mailman/Deliverer.py:62
+msgid " (Digest mode)"
+msgstr " (modo Digest)"
+
+#: Mailman/Deliverer.py:68
+msgid "Welcome to the \"%(realname)s\" mailing list%(digmode)s"
+msgstr "Bem vindo a lista de discussão \"%(realname)s\" %(digmode)s"
+
+#: Mailman/Deliverer.py:77
+msgid "You have been unsubscribed from the %(realname)s mailing list"
+msgstr "Você se desinscreveu da lista de discussão %(realname)s"
+
+#: Mailman/Deliverer.py:104
+msgid "%(listfullname)s mailing list reminder"
+msgstr "lembrete da lista de discussão %(listfullname)s"
+
+#: Mailman/Errors.py:114
+msgid "For some unknown reason"
+msgstr "Por alguma razão desconhecida"
+
+#: Mailman/Errors.py:120 Mailman/Errors.py:143
+msgid "Your message was rejected"
+msgstr "Sua mensagem foi rejeitada"
+
+#: Mailman/Gui/Archive.py:25
+msgid "Archiving Options"
+msgstr "Opções de Arquivamento"
+
+#: Mailman/Gui/Archive.py:31
+msgid "List traffic archival policies."
+msgstr "Políticas de arquivamento de tráfego da lista."
+
+#: Mailman/Gui/Archive.py:34
+msgid "Archive messages?"
+msgstr "Arquivar mensagens?"
+
+#: Mailman/Gui/Archive.py:36
+msgid "private"
+msgstr "privada"
+
+#: Mailman/Gui/Archive.py:36
+msgid "public"
+msgstr "pública"
+
+#: Mailman/Gui/Archive.py:37
+msgid "Is archive file source for public or private archival?"
+msgstr "O fonte de arquvio é para arquivo público ou privado?"
+
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Monthly"
+msgstr "Mensalmente"
+
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Quarterly"
+msgstr "Quadrimestral"
+
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Yearly"
+msgstr "Anual"
+
+#: Mailman/Gui/Archive.py:41 Mailman/Gui/Digest.py:79
+msgid "Daily"
+msgstr "Diário"
+
+#: Mailman/Gui/Archive.py:41 Mailman/Gui/Digest.py:79
+msgid "Weekly"
+msgstr "Semanal"
+
+#: Mailman/Gui/Archive.py:43
+msgid "How often should a new archive volume be started?"
+msgstr "Com que frequência um novo volume de arquivo deverá ser iniciado?"
+
+#: Mailman/Gui/Autoresponse.py:31
+msgid "Auto-responder"
+msgstr "Auto-Resposta"
+
+#: Mailman/Gui/Autoresponse.py:39
+msgid ""
+"Auto-responder characteristics.<p>\n"
+"\n"
+"In the text fields below, string interpolation is performed with\n"
+"the following key/value substitutions:\n"
+"<p><ul>\n"
+" <li><b>listname</b> - <em>gets the name of the mailing list</em>\n"
+" <li><b>listurl</b> - <em>gets the list's listinfo URL</em>\n"
+" <li><b>requestemail</b> - <em>gets the list's -request address</em>\n"
+" <li><b>owneremail</b> - <em>gets the list's -owner address</em>\n"
+"</ul>\n"
+"\n"
+"<p>For each text field, you can either enter the text directly into the "
+"text\n"
+"box, or you can specify a file on your local system to upload as the text."
+msgstr ""
+"Características da Auto-Resposta<p>\n"
+"\n"
+"Nos campos de texto abaixo, a interpolação de strings é feita com \n"
+"a seguinte substituição de chaves/valores:\n"
+"<p><ul>\n"
+" <li><b>listname</b> - <em>obtém o nome da lista de discussão</em>\n"
+" <li><b>listurl</b> - <em>obtém a URL de informações da lista</em>\n"
+" <li><b>requestemail</b> - <em>obtém o endereço -request da lista</em>\n"
+" <li><b>adminemail</b> - <em>obtém o endereço de administrador da lista</"
+"em>\n"
+" <li><b>owneremail</b> - <em>obtém o endereço -owner da lista</em>\n"
+"</ul>\n"
+"\n"
+"<p>Para cada campo de texto, você poderá entrar com um texto diretamente "
+"na \n"
+"caixa de texto ou poderá especificar um arquivo em seu sistema local para \n"
+"fazer seu upload como texto."
+
+#: Mailman/Gui/Autoresponse.py:55
+msgid ""
+"Should Mailman send an auto-response to mailing list\n"
+" posters?"
+msgstr ""
+"O Mailman deve enviar uma auto-resposta para os membros que postam na\n"
+" lista de discussão?"
+
+#: Mailman/Gui/Autoresponse.py:60
+msgid "Auto-response text to send to mailing list posters."
+msgstr ""
+"Texto de auto-resposta que é enviada para os membros que postam para a lista."
+
+#: Mailman/Gui/Autoresponse.py:63
+msgid ""
+"Should Mailman send an auto-response to emails sent to the\n"
+" -owner address?"
+msgstr ""
+"O Mailman deve enviar uma auto-resposta para mensagens enviadas \n"
+" para os endereços -owner?"
+
+#: Mailman/Gui/Autoresponse.py:68
+msgid "Auto-response text to send to -owner emails."
+msgstr ""
+"O texto de auto-resposta deve ser enviado para os emails indo para -owner."
+
+#: Mailman/Gui/Autoresponse.py:71
+msgid "Yes, w/discard"
+msgstr "Sim, descartando"
+
+#: Mailman/Gui/Autoresponse.py:71
+msgid "Yes, w/forward"
+msgstr "Sim, com redirecionamento"
+
+#: Mailman/Gui/Autoresponse.py:72
+msgid ""
+"Should Mailman send an auto-response to emails sent to the\n"
+" -request address? If you choose yes, decide whether you want\n"
+" Mailman to discard the original email, or forward it on to the\n"
+" system as a normal mail command."
+msgstr ""
+"O FMailman deverá enviar uma auto-resposta para mensagens enviadas para\n"
+" emails -request? Caso escolha sim, decisa de deseja que o Mailman\n"
+" descarte o email original ou que ele seja redirecionado ao \n"
+" sistema como um comando mail normal."
+
+#: Mailman/Gui/Autoresponse.py:79
+msgid "Auto-response text to send to -request emails."
+msgstr "texto de auto-resposta enviado para emails -request."
+
+#: Mailman/Gui/Autoresponse.py:82
+msgid ""
+"Number of days between auto-responses to either the mailing\n"
+" list or -request/-owner address from the same poster. Set to\n"
+" zero (or negative) for no grace period (i.e. auto-respond to\n"
+" every message)."
+msgstr ""
+"Número de dias entre auto-respostas enviadas para a lista de discussão ou \n"
+" os endereços mensagens para o endereço -admin e -owner vindos da \n"
+" mesma pessoa. Ajuste para zero (ou negativo) para nenhum intervalo \n"
+" (i.e. auto-responder cada mensagem)."
+
+#: Mailman/Gui/Bounce.py:26
+msgid "Bounce processing"
+msgstr "Processamento de Retorno"
+
+#: Mailman/Gui/Bounce.py:32
+msgid ""
+"These policies control the automatic bounce processing system\n"
+" in Mailman. Here's an overview of how it works.\n"
+"\n"
+" <p>When a bounce is received, Mailman tries to extract two "
+"pieces\n"
+" of information from the message: the address of the member the\n"
+" message was intended for, and the severity of the problem "
+"causing\n"
+" the bounce. The severity can be either <em>hard</em> or\n"
+" <em>soft</em> meaning either a fatal error occurred, or a\n"
+" transient error occurred. When in doubt, a hard severity is "
+"used.\n"
+"\n"
+" <p>If no member address can be extracted from the bounce, then "
+"the\n"
+" bounce is usually discarded. Otherwise, each member is assigned "
+"a\n"
+" <em>bounce score</em> and every time we encounter a bounce from\n"
+" this member we increment the score. Hard bounces increment by "
+"1\n"
+" while soft bounces increment by 0.5. We only increment the "
+"bounce\n"
+" score once per day, so even if we receive ten hard bounces from "
+"a\n"
+" member per day, their score will increase by only 1 for that "
+"day.\n"
+"\n"
+" <p>When a member's bounce score is greater than the\n"
+" <a href=\"?VARHELP=bounce/bounce_score_threshold\">bounce score\n"
+" threshold</a>, the subscription is disabled. Once disabled, "
+"the\n"
+" member will not receive any postings from the list until their\n"
+" membership is explicitly re-enabled (either by the list\n"
+" administrator or the user). However, they will receive "
+"occasional\n"
+" reminders that their membership has been disabled, and these\n"
+" reminders will include information about how to re-enable their\n"
+" membership.\n"
+"\n"
+" <p>You can control both the\n"
+" <a href=\"?VARHELP=bounce/bounce_you_are_disabled_warnings"
+"\">number\n"
+" of reminders</a> the member will receive and the\n"
+" <a href=\"?VARHELP=bounce/"
+"bounce_you_are_disabled_warnings_interval\"\n"
+" >frequency</a> with which these reminders are sent.\n"
+"\n"
+" <p>There is one other important configuration variable; after a\n"
+" certain period of time -- during which no bounces from the "
+"member\n"
+" are received -- the bounce information is\n"
+" <a href=\"?VARHELP=bounce/bounce_info_stale_after\">considered\n"
+" stale</a> and discarded. Thus by adjusting this value, and the\n"
+" score threshold, you can control how quickly bouncing members "
+"are\n"
+" disabled. You should tune both of these to the frequency and\n"
+" traffic volume of your list."
+msgstr ""
+"Estas politicas controlam o sistema de retorno automático do Mailman.\n"
+" Aqui está uma visão de como ele funciona.\n"
+"\n"
+" <p>Quando um retorno de mensagem é recebido, o Mailman tenta\n"
+" extrair duas peças de informação da mensagem: o endereço de \n"
+" membro que e mensagem foi direcionada, e a seriedade do problema\n"
+" que causou o retorno. A severidade pode ser ou <em>hard</em> ou\n"
+" <em>soft</em> significando que ou ocorreu um erro fatal ou um \n"
+" erro transiente. Quando em dúvida, uma severidade hard é usada.\n"
+"\n"
+" <p>Se o endereço de membro pode ser extraido de um bounce, então o \n"
+" bounce normalmente é descartado. Caso contrário, cada membro é \n"
+" designado um <em>bounce score</em> e cada vez que nós encontramos\n"
+" um bounce deste membro nós incrementamos esse score. Hard bounces \n"
+" incrementem 1 enquanto soft bounces incrementam 0.5. Nós somente\n"
+" incrementamos os bounces uma vez por dia, assim até mesmo se \n"
+" recebamos dez bounces rígidos de membros por dia, sua pontuação\n"
+" somente aumentará em 1 por dia.\n"
+"\n"
+" <p>Quando a pontuação de bounce de um mebro é maior que \n"
+" <a href=\"?VARHELP=bounce/bounce_score_threshold\">o limite de \n"
+" retornos</a>, a inscrição é desativada. Uma vez desativado, \n"
+" o membro não receberá qualquer postagem posterior da lista\n"
+" até que sua conta de membro seja explicitamente reativada\n"
+" (ou pelo administrador da lista ou pelo usuário). No entanto,\n"
+" eles receberão lembretes ocasionais que sua conta de membro foi\n"
+" desativada, e estes lembretes trarão detalhes sobre como \n"
+" reativar seus membros.\n"
+" \n"
+" <p>Você pode controlar ambos\n"
+" <a href=\"?VARHELP=bounce/bounce_you_are_disabled_warnings\">os\n"
+" números de lembretes</a> que o membro recebe e \n"
+" <a href=\"?VARHELP=bounce/"
+"bounce_you_are_disabled_warnings_interval\" \n"
+" >a frequencia</a> que estes lembretes são enviados.\n"
+"\n"
+" <p>Ainda existe outra variável importante de configuração; após\n"
+" certo período de tempo -- durante o período que nenhum \n"
+" retorno do usuário é recebido -- a informação de bounce é\n"
+" <a href=\"?VARHELP=bounce/bounce_info_stale_after\">considerada\n"
+" inexistente</a> e descartada. Assim, ajustando este valor e \n"
+" a configuração de pontuação, você poderá controlar rapidamente\n"
+" os membros que tem boucing que estão desativados. Você deverá \n"
+" fazer um ajuste fino em ambos deste para a frequência e volume \n"
+" de tráfego de sua lista."
+
+#: Mailman/Gui/Bounce.py:75
+msgid "Bounce detection sensitivity"
+msgstr "Sensibilidade de detecção de retornos (Bounce)"
+
+#: Mailman/Gui/Bounce.py:78
+msgid "Should Mailman perform automatic bounce processing?"
+msgstr "O Mailman deverá fazer processamento automático de retornos?"
+
+#: Mailman/Gui/Bounce.py:79
+msgid ""
+"By setting this value to <em>No</em>, you disable all\n"
+" automatic bounce processing for this list, however bounce\n"
+" messages will still be discarded so that the list "
+"administrator\n"
+" isn't inundated with them."
+msgstr ""
+"Ajustando este valor para <em>Não</em> você desativará\n"
+" qualquer processamento automatico de retorno de mensagens para esta\n"
+" lista, no entanto as mensagens de bounce ainda serão descartadas, \n"
+" desta forma o administrador da lista não será inundado por elas."
+
+#: Mailman/Gui/Bounce.py:85
+msgid ""
+"The maximum member bounce score before the member's\n"
+" subscription is disabled. This value can be a floating point\n"
+" number."
+msgstr ""
+"O número máximo de retornos antes de desativar a inscrição do membro. Este "
+"valor pode ser um número de ponto flutuante."
+
+#: Mailman/Gui/Bounce.py:90
+msgid ""
+"The number of days after which a member's bounce information\n"
+" is discarded, if no new bounces have been received in the\n"
+" interim. This value must be an integer."
+msgstr ""
+"O número de dias após descartar a informação de retorno d membro. Se nenhum\n"
+" bounce novo for recebido interinamente. Este valor deverá ser um\n"
+" número."
+
+#: Mailman/Gui/Bounce.py:95
+msgid ""
+"How many <em>Your Membership Is Disabled</em> warnings a\n"
+" disabled member should get before their address is removed "
+"from\n"
+" the mailing list. Set to 0 to immediately remove an address "
+"from\n"
+" the list once their bounce score exceeds the threshold. This\n"
+" value must be an integer."
+msgstr ""
+"Quantos alertas <em>Seu cadastro está desativado</em> o membro da lista \n"
+" deverá receber antes do endereço ser removido da lista de "
+"discussão.\n"
+" Ajuste o valor para 0 para remover o endereço imediatamente da \n"
+" lista uma vez que sua pontuação de bounce exceder o valor definido.\n"
+" Este valor deverá ser um número."
+
+#: Mailman/Gui/Bounce.py:102
+msgid ""
+"The number of days between sending the <em>Your Membership\n"
+" Is Disabled</em> warnings. This value must be an integer."
+msgstr ""
+"O número de dias antes de enviar os alertas <em>Seu cadastro está "
+"desativado</em>. Este valor deverá ser um número."
+
+#: Mailman/Gui/Bounce.py:105 Mailman/Gui/General.py:257
+msgid "Notifications"
+msgstr "Notificações"
+
+#: Mailman/Gui/Bounce.py:109
+msgid ""
+"Should Mailman send you, the list owner, any bounce messages\n"
+" that failed to be detected by the bounce processor? <em>Yes</"
+"em>\n"
+" is recommended."
+msgstr ""
+"O Mailman deverá te enviar, o dono da lista, quaisquer mensagens de bounce\n"
+" que falharam ao ser detectadas pelo processador de bounces? <em>Sim</"
+"em> é recomendado."
+
+#: Mailman/Gui/Bounce.py:112
+msgid ""
+"While Mailman's bounce detector is fairly robust, it's\n"
+" impossible to detect every bounce format in the world. You\n"
+" should keep this variable set to <em>Yes</em> for two reasons: "
+"1)\n"
+" If this really is a permanent bounce from one of your members,\n"
+" you should probably manually remove them from your list, and "
+"2)\n"
+" you might want to send the message on to the Mailman "
+"developers\n"
+" so that this new format can be added to its known set.\n"
+"\n"
+" <p>If you really can't be bothered, then set this variable to\n"
+" <em>No</em> and all non-detected bounces will be discarded\n"
+" without further processing.\n"
+"\n"
+" <p><b>Note:</b> This setting will also affect all messages "
+"sent\n"
+" to your list's -admin address. This address is deprecated and\n"
+" should never be used, but some people may still send mail to "
+"this\n"
+" address. If this happens, and this variable is set to\n"
+" <em>No</em> those messages too will get discarded. You may "
+"want\n"
+" to set up an\n"
+" <a href=\"?VARHELP=autoreply/autoresponse_admin_text"
+"\">autoresponse\n"
+" message</a> for email to the -owner and -admin address."
+msgstr ""
+"Enquanto o detector de bounce do Mailman é muito robusto,\n"
+" é impossível detectar cada formato de bounce no mundo. Você \n"
+" deverá manter esta variável ajustada para <em>Sim</em> por duas\n"
+" razões: 1) Se isto é realmente um bounce permanente de um de \n"
+" seus membros, você deverá remove-lo manualmente da lista, e \n"
+" 2) você pode desejar enviar a mensagem aos desenvolvedores do\n"
+" mailman assim este novo formato poderá ser adicionado ao \n"
+" seu conjunto já conhecido.\n"
+"\n"
+" <p>Se você realmente não pode ser incomodado, ajuste esta "
+"variável para <em>Não</em> e todos os bounces não detectados "
+"serão\n"
+" descartados sem processamento futuro.\n"
+"\n"
+" <p><b>Nota:</b> Esta configuração também afetará todas as \n"
+" mensagens encaminhadas ao endereço -admin de sua lista. Este\n"
+" endereço é posto e não deverá ser usado nunca, mas algumas pessoas\n"
+" podem ainda querer enviar mensagens para este endereço. Se isto\n"
+" acontecer e esta variável estiver ajustada para <em>Não</em> \n"
+" estes emails também serão descartados. Você pode querer \n"
+" configurar uma <a href=\"?VARHELP=autoreply/autoresponse_admin_text"
+"\">\n"
+" mensagem de auto-resposta</a> para os endereços de email \n"
+" -owner e -admin."
+
+#: Mailman/Gui/Bounce.py:135
+msgid ""
+"Should Mailman notify you, the list owner, when bounces\n"
+" cause a member's subscription to be disabled?"
+msgstr ""
+"O Mailman deverá te noficar, o dono da lista, quando os \n"
+" bounces fazem a inscrição da lista ser desativada?"
+
+#: Mailman/Gui/Bounce.py:137
+msgid ""
+"By setting this value to <em>No</em>, you turn off\n"
+" notification messages that are normally sent to the list "
+"owners\n"
+" when a member's delivery is disabled due to excessive bounces.\n"
+" An attempt to notify the member will always be made."
+msgstr ""
+"Ajustando este valor para <em>Não</em>, você desativa\n"
+" as mensagens de notificação que são normalmente enviadas para os\n"
+" donos da lista quando a entrega para o membro estiver desativada \n"
+" devido ao excesso de bounces. Uma tentativa de notificar o "
+"membro sempre será feita."
+
+#: Mailman/Gui/Bounce.py:144
+msgid ""
+"Should Mailman notify you, the list owner, when bounces\n"
+" cause a member to be unsubscribed?"
+msgstr ""
+"O Mailman deverá te notificar, o dono da lista, quando os bounces "
+"fizerem um membro ser descadastrado."
+
+#: Mailman/Gui/Bounce.py:146
+msgid ""
+"By setting this value to <em>No</em>, you turn off\n"
+" notification messages that are normally sent to the list "
+"owners\n"
+" when a member is unsubscribed due to excessive bounces. An\n"
+" attempt to notify the member will always be made."
+msgstr ""
+"Ajustando este valor para <em>Não</em> desativará as mensagens de\n"
+" notificação que são normalemnte enviadas aos donos da lista\n"
+" quando um membro está descadastrado por bounces excessivos. Uma\n"
+" tentativa de notificar o membro sempre será feita."
+
+#: Mailman/Gui/Bounce.py:173
+msgid ""
+"Bad value for <a href=\"?VARHELP=bounce/%(property)s\"\n"
+" >%(property)s</a>: %(val)s"
+msgstr ""
+"\"Bad value for <a href=\\\"?VARHELP=bounce/%(property)s\\\"\\n\"\n"
+"\" >%(property)s</a>: %(val)s\""
+
+#: Mailman/Gui/ContentFilter.py:30
+msgid "Content&nbsp;filtering"
+msgstr "Filtragem&nbsp;de&nbsp;Conteúdo"
+
+#: Mailman/Gui/ContentFilter.py:37
+msgid "Forward to List Owner"
+msgstr "Redirecionar para o Dono da Lista"
+
+#: Mailman/Gui/ContentFilter.py:39
+msgid "Preserve"
+msgstr "Preservar"
+
+#: Mailman/Gui/ContentFilter.py:42
+msgid ""
+"Policies concerning the content of list traffic.\n"
+"\n"
+" <p>Content filtering works like this: when a message is\n"
+" received by the list and you have enabled content filtering, "
+"the\n"
+" individual attachments are first compared to the\n"
+" <a href=\"?VARHELP=contentfilter/filter_mime_types\">filter\n"
+" types</a>. If the attachment type matches an entry in the "
+"filter\n"
+" types, it is discarded.\n"
+"\n"
+" <p>Then, if there are <a\n"
+" href=\"?VARHELP=contentfilter/pass_mime_types\">pass types</a>\n"
+" defined, any attachment type that does <em>not</em> match a\n"
+" pass type is also discarded. If there are no pass types "
+"defined,\n"
+" this check is skipped.\n"
+"\n"
+" <p>After this initial filtering, any <tt>multipart</tt>\n"
+" attachments that are empty are removed. If the outer message "
+"is\n"
+" left empty after this filtering, then the whole message is\n"
+" discarded. Then, each <tt>multipart/alternative</tt> section "
+"will\n"
+" be replaced by just the first alternative that is non-empty "
+"after\n"
+" filtering.\n"
+"\n"
+" <p>Finally, any <tt>text/html</tt> parts that are left in the\n"
+" message may be converted to <tt>text/plain</tt> if\n"
+" <a href=\"?VARHELP=contentfilter/convert_html_to_plaintext\"\n"
+" >convert_html_to_plaintext</a> is enabled and the site is\n"
+" configured to allow these conversions."
+msgstr ""
+"Politicas que trabalham com o conteúdo do tráfego da lista.\n"
+"\n"
+" <p>A filtragem de conteúdo funciona de forma parecida: quando \n"
+" uma mensagem é recebida pela lista e a filtragem de conteúdo\n"
+" está ativada, os anexos individuais são primeiro comparados \n"
+" aos\n"
+" <a href=\"?VARHELP=contentfilter/filter_mime_types\">tipos de\n"
+" filtros</a>. Se um tipo de anexo confere com as condições do \n"
+" filtro, ela é descartada.\n"
+"\n"
+" <p>Então, se existe um <a\n"
+" href=\"?VARHELP=contentfilter/pass_mime_types\">tipo passante</"
+"a>\n"
+" definido, qualquer anexo que <em>não</em> confira com \n"
+" a regra será descartado. Caso não existam tipos passantes\n"
+" definidos, esta checagem é ignorada.\n"
+"\n"
+"\n"
+" <p>Após esta filtragem inicial, qualquer anexo <tt>multipart</"
+"tt>\n"
+" que estão vazios são removidos. Caso a mensagem é \n"
+" deixada vazia após esta filtragem, então toda a mensagem é\n"
+" descartada. Então cada seção <tt>multipart/alternative</tt> \n"
+" será substituida pela primeira alternativa que não estiver\n"
+" vazia após a filtragem.\n"
+"\n"
+" <p>Finalmente, qualquer parte <tt>text/html</tt> que for \n"
+" deixada na mensagem pode ser convertida para <tt>text/plain</"
+"tt>\n"
+" caso <a href=\"?VARHELP=contentfilter/convert_html_to_plaintext"
+"\">\n"
+" convert_html_to_plaintext</a> esteja ativado e o site estiver\n"
+" configurado para permitir estas conversões."
+
+#: Mailman/Gui/ContentFilter.py:71
+msgid ""
+"Should Mailman filter the content of list traffic according\n"
+" to the settings below?"
+msgstr ""
+"O Mailman deverá filtrar o conteúdo do tráfego da lista de \n"
+" acordo com a configuração abaixo?"
+
+#: Mailman/Gui/ContentFilter.py:75
+msgid ""
+"Remove message attachments that have a matching content\n"
+" type."
+msgstr ""
+"Remover anexos das mensagens que conferiram com o tipo de \n"
+" conteúdo."
+
+#: Mailman/Gui/ContentFilter.py:78
+msgid ""
+"Use this option to remove each message attachment that\n"
+" matches one of these content types. Each line should contain "
+"a\n"
+" string naming a MIME <tt>type/subtype</tt>,\n"
+" e.g. <tt>image/gif</tt>. Leave off the subtype to remove all\n"
+" parts with a matching major content type, e.g. <tt>image</tt>.\n"
+"\n"
+" <p>Blank lines are ignored.\n"
+"\n"
+" <p>See also <a href=\"?VARHELP=contentfilter/pass_mime_types\"\n"
+" >pass_mime_types</a> for a content type whitelist."
+msgstr ""
+"Use esta opção para remover cada anexo de mensagem que \n"
+" confere com estes tipos de conteúdo. Cada linha deve conter "
+"uma \n"
+" string nomeando uma MIME <tt>type/subtype</tt>, e.g. \n"
+" <tt>image/gif</tt>. Deixe o subtipo como off para remover\n"
+" todas as partes com uma conferência maior de tipo de conteúdo\n"
+" e.g. <tt>image</tt>.\n"
+" \n"
+" <p>Linhas em branco são ignoradas.\n"
+" <p>Veja também <a href=\"?VARHELP=contentfilter/pass_mime_types"
+"\"\n"
+"\" >pass_mime_types</a> para uma lista de tipos de conteúdo."
+
+#: Mailman/Gui/ContentFilter.py:90
+msgid ""
+"Remove message attachments that don't have a matching\n"
+" content type. Leave this field blank to skip this filter\n"
+" test."
+msgstr ""
+"Remover anexo de mensagens que não tem o tipo de conteúdo que confere. Deixe "
+"este campo em branco para pular este teste de filtro."
+
+#: Mailman/Gui/ContentFilter.py:94
+msgid ""
+"Use this option to remove each message attachment that does\n"
+" not have a matching content type. Requirements and formats "
+"are\n"
+" exactly like <a href=\"?VARHELP=contentfilter/filter_mime_types"
+"\"\n"
+" >filter_mime_types</a>.\n"
+"\n"
+" <p><b>Note:</b> if you add entries to this list but don't add\n"
+" <tt>multipart</tt> to this list, any messages with attachments\n"
+" will be rejected by the pass filter."
+msgstr ""
+"Use esta opção para remover cada anexo de mensagem que não \n"
+"possui um tipo de conteúdo que confere. Os requerimentos e \n"
+"formatos são exatamente como \n"
+"<a href=\"?VARHELP=contentfilter/filter_mime_types\">filter_mime_types</a>.\n"
+"\n"
+"<p><b>Nota:</b> Caso adicione entradas nesta lista mas não adicione\n"
+"<tt>multipart</tt>, quaisquer mensagens com anexos serão rejeitadas \n"
+"pelo filtro de passagem."
+
+#: Mailman/Gui/ContentFilter.py:104
+msgid ""
+"Should Mailman convert <tt>text/html</tt> parts to plain\n"
+" text? This conversion happens after MIME attachments have "
+"been\n"
+" stripped."
+msgstr ""
+"O Mailman deverá converter as partes <tt>texto/html</tt> para\n"
+" texto plano? Esta conversão acontece após os anexos MIME serem\n"
+" divididos."
+
+#: Mailman/Gui/ContentFilter.py:110
+msgid ""
+"Action to take when a message matches the content filtering\n"
+" rules."
+msgstr ""
+"Ação a ser tomada quando uma mensagem conferir com o conteúdo das regras\n"
+" de filtragem."
+
+#: Mailman/Gui/ContentFilter.py:113
+msgid ""
+"One of these actions is take when the message matches one of\n"
+" the content filtering rules, meaning, the top-level\n"
+" content type matches one of the <a\n"
+" href=\"?VARHELP=contentfilter/filter_mime_types\"\n"
+" >filter_mime_types</a>, or the top-level content type does\n"
+" <strong>not</strong> match one of the\n"
+" <a href=\"?VARHELP=contentfilter/pass_mime_types\"\n"
+" >pass_mime_types</a>, or if after filtering the subparts of "
+"the\n"
+" message, the message ends up empty.\n"
+"\n"
+" <p>Note this action is not taken if after filtering the "
+"message\n"
+" still contains content. In that case the message is always\n"
+" forwarded on to the list membership.\n"
+"\n"
+" <p>When messages are discarded, a log entry is written\n"
+" containing the Message-ID of the discarded message. When\n"
+" messages are rejected or forwarded to the list owner, a reason\n"
+" for the rejection is included in the bounce message to the\n"
+" original author. When messages are preserved, they are saved "
+"in\n"
+" a special queue directory on disk for the site administrator "
+"to\n"
+" view (and possibly rescue) but otherwise discarded. This last\n"
+" option is only available if enabled by the site\n"
+" administrator."
+msgstr ""
+"Uma destas ações é realizada quando a mensagem confere com uma\n"
+" das regras de filtragem de conteúdo, significando, o \n"
+" conteúdo de nível superior que confere com um dos\n"
+" <a href=\"?VARHELP=contentfilter/filter_mime_types\"\n"
+" >filter_mime_types</a>, ou o tipo de conteúdo de nível\n"
+" superior <strong>não</strong> conferirá com um dos\n"
+" <a href=\"?VARHELP=contentfilter/pass_mime_types\"\n"
+" >pass_mime_types</a>, ou após filtrando as subpartes\n"
+" da mensagem, a mensagem termine vazia.\n"
+"\n"
+" <p>Note que esta ação não é feita caso após a filtragem\n"
+" a mensagem ainda tenha conteúdo. Neste caso, a mensagem\n"
+" é sempre redirecionada para o membro da lista.\n"
+"\n"
+" <p>Quando a mensagem é descartada, um registro é feito \n"
+" contendo a ID da mensagem descartada. Quando as mensagens\n"
+" são rejeitadas ou redirecionadas para o dono da lista, \n"
+" uma razão para a rejeição é incluida na mensagem de retorno\n"
+" para o autor original. Quando as mensagens são preservadas\n"
+" elas são salvas em um diretório especial de queue para ser \n"
+" analisada pelo administrador do site para aprovação \n"
+" (e possívelmente recuperação) da mensagem descartada. \n"
+" Esta última opção somente está disponível se ativada pelo\n"
+" administrador do site."
+
+#: Mailman/Gui/ContentFilter.py:154
+msgid "Bad MIME type ignored: %(spectype)s"
+msgstr "Tipo MIME incorreto ignorado: %(spectype)s"
+
+#: Mailman/Gui/Digest.py:36
+msgid "Digest options"
+msgstr "Opções digest"
+
+#: Mailman/Gui/Digest.py:44
+msgid "Batched-delivery digest characteristics."
+msgstr "Características do digest em entrega de Lote"
+
+#: Mailman/Gui/Digest.py:47
+msgid "Can list members choose to receive list traffic bunched in digests?"
+msgstr ""
+"Os membros da lista podem receber o tráfego da lista dividido em digests?"
+
+#: Mailman/Gui/Digest.py:51
+msgid "Digest"
+msgstr "Digest"
+
+#: Mailman/Gui/Digest.py:51
+msgid "Regular"
+msgstr "Regular"
+
+#: Mailman/Gui/Digest.py:52
+msgid "Which delivery mode is the default for new users?"
+msgstr "Que modo de entrega é o padrão para novos usuários?"
+
+#: Mailman/Gui/Digest.py:55
+msgid "MIME"
+msgstr "MIME"
+
+#: Mailman/Gui/Digest.py:55
+msgid "Plain"
+msgstr "Plano"
+
+#: Mailman/Gui/Digest.py:56
+msgid "When receiving digests, which format is default?"
+msgstr "Quando resolvendo digests, que formato é o padrão?"
+
+#: Mailman/Gui/Digest.py:59
+msgid "How big in Kb should a digest be before it gets sent out?"
+msgstr "Qual é o tamanho em OK que o digest deverá ter antes de ser enviado?"
+
+#: Mailman/Gui/Digest.py:63
+msgid ""
+"Should a digest be dispatched daily when the size threshold isn't reached?"
+msgstr ""
+"O digest deverá ser despachado diáriamente quando o tamanho dele não atingir "
+"o limite mínimo?"
+
+#: Mailman/Gui/Digest.py:67
+msgid "Header added to every digest"
+msgstr "Cabeçalho adicionado a cada digest"
+
+#: Mailman/Gui/Digest.py:68
+msgid ""
+"Text attached (as an initial message, before the table of contents) to the "
+"top of digests. "
+msgstr ""
+"Texto anexado (como uma mensagem inicial, antes da tabela de conteúdo) do "
+"topo\n"
+"do digest."
+
+#: Mailman/Gui/Digest.py:73
+msgid "Footer added to every digest"
+msgstr "Legenda adicionado a cada digest"
+
+#: Mailman/Gui/Digest.py:74
+msgid "Text attached (as a final message) to the bottom of digests. "
+msgstr "Texto anexado (como uma mensagem final) ao rodapé dos digests."
+
+#: Mailman/Gui/Digest.py:80
+msgid "How often should a new digest volume be started?"
+msgstr "Com que frequência o volume do novo digest será iniciado?"
+
+#: Mailman/Gui/Digest.py:81
+msgid ""
+"When a new digest volume is started, the volume number is\n"
+" incremented and the issue number is reset to 1."
+msgstr ""
+"Quando um volume do novo digest é iniciado, o número de volume é \n"
+" incrementado e o número de assunto é reiniciado para 1."
+
+#: Mailman/Gui/Digest.py:85
+msgid "Should Mailman start a new digest volume?"
+msgstr "O Mailman deve iniciar um novo volume digest."
+
+#: Mailman/Gui/Digest.py:86
+msgid ""
+"Setting this option instructs Mailman to start a new volume\n"
+" with the next digest sent out."
+msgstr ""
+"Ajustando esta opção instrui ao Mailman iniciar um novo volume\n"
+" com o próximo digest sendo enviado."
+
+#: Mailman/Gui/Digest.py:90
+msgid ""
+"Should Mailman send the next digest right now, if it is not\n"
+" empty?"
+msgstr "O Mailman deve enviar o próximo digest agora, caso não esteja vazio?"
+
+#: Mailman/Gui/Digest.py:145
+msgid ""
+"The next digest will be sent as volume\n"
+" %(volume)s, number %(number)s"
+msgstr ""
+"O próximo digest será enviado como volume \n"
+" %(volume)s, número %(number)s"
+
+#: Mailman/Gui/Digest.py:150
+msgid "A digest has been sent."
+msgstr "Um digest foi enviado."
+
+#: Mailman/Gui/Digest.py:152
+msgid "There was no digest to send."
+msgstr "Não existem digests para serem enviados."
+
+#: Mailman/Gui/GUIBase.py:149
+msgid "Invalid value for variable: %(property)s"
+msgstr "Valor inválido para a variável: %(property)s"
+
+#: Mailman/Gui/GUIBase.py:153
+msgid "Bad email address for option %(property)s: %(val)s"
+msgstr "Endereço de email incorreto para a opção %(property)s: %(val)s"
+
+#: Mailman/Gui/GUIBase.py:179
+msgid ""
+"The following illegal substitution variables were\n"
+" found in the <code>%(property)s</code> string:\n"
+" <code>%(bad)s</code>\n"
+" <p>Your list may not operate properly until you correct "
+"this\n"
+" problem."
+msgstr ""
+"As seguintes variáveis ilegais de substituição foram\n"
+" encontradas na string <code>%(property)s</code>:\n"
+" <code>%(bad)s</code>\n"
+" <p>Sua lista pode não operar corretamente até que corrija este \n"
+" problema."
+
+#: Mailman/Gui/GUIBase.py:193
+msgid ""
+"Your <code>%(property)s</code> string appeared to\n"
+" have some correctable problems in its new value.\n"
+" The fixed value will be used instead. Please\n"
+" double check that this is what you intended.\n"
+" "
+msgstr ""
+"Sua string <code>%(property)s</code> apareceu e tem alguns problemas \n"
+" solucionáveis em seu novo valor.\n"
+" O valor fixo será usado ao invés deste. Por favor \n"
+" confirme que isto é o que deseja."
+
+#: Mailman/Gui/General.py:32
+msgid "General Options"
+msgstr "Opções Gerais"
+
+#: Mailman/Gui/General.py:46
+msgid "Conceal the member's address"
+msgstr "Esconder o endereço do membro"
+
+#: Mailman/Gui/General.py:47
+msgid "Acknowledge the member's posting"
+msgstr "Reconhecer a postagem do membro"
+
+#: Mailman/Gui/General.py:48
+msgid "Do not send a copy of a member's own post"
+msgstr "Nào enviar uma cópia da própria postagem do membro"
+
+#: Mailman/Gui/General.py:50
+msgid "Filter out duplicate messages to list members (if possible)"
+msgstr "Filtrar mensagens duplicadas de membros da lista (se possível)"
+
+#: Mailman/Gui/General.py:57
+msgid ""
+"Fundamental list characteristics, including descriptive\n"
+" info and basic behaviors."
+msgstr ""
+"Características fundamentais da lista, incluindo uma informação\n"
+" descritiva e objetivos básicos."
+
+#: Mailman/Gui/General.py:60
+msgid "General list personality"
+msgstr "Personalidade geral da lista"
+
+#: Mailman/Gui/General.py:63
+msgid "The public name of this list (make case-changes only)."
+msgstr "O nome público da lista (faça somente modificações capitalizadas)."
+
+#: Mailman/Gui/General.py:64
+msgid ""
+"The capitalization of this name can be changed to make it\n"
+" presentable in polite company as a proper noun, or to make an\n"
+" acronym part all upper case, etc. However, the name will be\n"
+" advertised as the email address (e.g., in subscribe "
+"confirmation\n"
+" notices), so it should <em>not</em> be otherwise altered. "
+"(Email\n"
+" addresses are not case sensitive, but they are sensitive to\n"
+" almost everything else :-)"
+msgstr ""
+"A capitalização deste nome pode ser modificada para torna-lo\n"
+" apresentável em uma empresa educada como nome próprio, ou para \n"
+" fazer uma parte acronima em maiúsculas, etc. No entenato, o nome\n"
+" deverá ser anunciado como um endereço de email (e.g., nas "
+"notificações\n"
+" de confirmação de inscrição) assim ele <em>não</em> deverá ser \n"
+" alterado. (Endereço de email não são case sensitive, mas eles são\n"
+" sensitivos a quase todo o resto :-)"
+
+#: Mailman/Gui/General.py:73
+msgid ""
+"The list administrator email addresses. Multiple\n"
+" administrator addresses, each on separate line is okay."
+msgstr ""
+"O endereço de email do administrador da lista. São permitidos múltiplos\n"
+" endereços, cada um em uma linha separada."
+
+#: Mailman/Gui/General.py:76
+msgid ""
+"There are two ownership roles associated with each mailing\n"
+" list. The <em>list administrators</em> are the people who "
+"have\n"
+" ultimate control over all parameters of this mailing list. "
+"They\n"
+" are able to change any list configuration variable available\n"
+" through these administration web pages.\n"
+"\n"
+" <p>The <em>list moderators</em> have more limited permissions;\n"
+" they are not able to change any list configuration variable, "
+"but\n"
+" they are allowed to tend to pending administration requests,\n"
+" including approving or rejecting held subscription requests, "
+"and\n"
+" disposing of held postings. Of course, the <em>list\n"
+" administrators</em> can also tend to pending requests.\n"
+"\n"
+" <p>In order to split the list ownership duties into\n"
+" administrators and moderators, you must\n"
+" <a href=\"passwords\">set a separate moderator password</a>,\n"
+" and also provide the <a href=\"?VARHELP=general/moderator"
+"\">email\n"
+" addresses of the list moderators</a>. Note that the field you\n"
+" are changing here specifies the list administrators."
+msgstr ""
+"Existem dois buracos de donos associados com cada lista de discussão.\n"
+" Os <em>administradores de listas</em> são pessoas que tem \n"
+" controle ultimato sobre todos os parâmetros desta lista de \n"
+" discussão. Eles são capazazes de mudar qualquer variável de \n"
+" configuração disponível através destas páginas web de \n"
+" administração.\n"
+"\n"
+" <p>Os <em>moderadores da lista</em> tem permissões mais limitadas;\n"
+" eles não são capazes de mudar qualquer variável de configuração\n"
+" da lista, mas tem permissão de trabalhar com requisições \n"
+" administrativas, incluindo aprovar ou rejeitar requisições de \n"
+" inscrições em espera, e despachar postagens em espera. É claro, \n"
+" o <em>administrador da lista</em> também pode atender requisições\n"
+" pendentes.\n"
+"\n"
+" <p>Para divitir as tarefas de donos de lista entre administradores\n"
+" e moderadores, você deve\n"
+" <a href=\"passwords\">definir uma senha separada para moderador</"
+"a>,\n"
+" e também fornecer um <a href=\"?VARHELP=general/moderator"
+"\">endereço\n"
+" de email para os moderadores da lista</a>. Note que o campo\n"
+" que está modificando aqui especifica os administradores da lista."
+
+#: Mailman/Gui/General.py:97
+msgid ""
+"The list moderator email addresses. Multiple\n"
+" moderator addresses, each on separate line is okay."
+msgstr ""
+"O endereço de email do moderador da lista. Múltiplos endereços\n"
+" de moderador, cada um separado por uma linha é permitido."
+
+#: Mailman/Gui/General.py:100
+msgid ""
+"There are two ownership roles associated with each mailing\n"
+" list. The <em>list administrators</em> are the people who "
+"have\n"
+" ultimate control over all parameters of this mailing list. "
+"They\n"
+" are able to change any list configuration variable available\n"
+" through these administration web pages.\n"
+"\n"
+" <p>The <em>list moderators</em> have more limited permissions;\n"
+" they are not able to change any list configuration variable, "
+"but\n"
+" they are allowed to tend to pending administration requests,\n"
+" including approving or rejecting held subscription requests, "
+"and\n"
+" disposing of held postings. Of course, the <em>list\n"
+" administrators</em> can also tend to pending requests.\n"
+"\n"
+" <p>In order to split the list ownership duties into\n"
+" administrators and moderators, you must\n"
+" <a href=\"passwords\">set a separate moderator password</a>,\n"
+" and also provide the email addresses of the list moderators in\n"
+" this section. Note that the field you are changing here\n"
+" specifies the list moderators."
+msgstr ""
+"Existem dois buracos de donos de lista associado com cada lista de \n"
+" discussão. Os <em>administradores da lista</em> são as pessoas\n"
+" que tem controle ultimato sobre todos os parâmetros desta lista\n"
+" de discussão. Eles são capazes de modificar qualquer variável\n"
+" da lista de discussão disponíveis através destas páginas \n"
+" web de administração.\n"
+"\n"
+" <p>Os <em>moderadores de listas</em> tem permissões mais limitadas;\n"
+" eles não são capazes de modificar qualquer variável de configuração\n"
+" da lista, mas tem permissão de realizar qualquer requisição\n"
+" administrativa incluindo a aprovação ou rejeição de requisições\n"
+" de inscrição em espera e despachar postagens em espera.\n"
+"\n"
+" <p>Para dividir as tarefas de donos da lista em \n"
+" administradores e moderadores, você deverá\n"
+" <a href=\"passwords\">configurar uma senha separada de moderador</"
+"a>,\n"
+" e também fornecer um endereço de email para todos os moderadores \n"
+" da lista nesta seção. Note que o tempo que está modificando \n"
+" aqui especifica os moderadores da lista."
+
+#: Mailman/Gui/General.py:121
+msgid "A terse phrase identifying this list."
+msgstr "Uma frase resumo identificando esta lista."
+
+#: Mailman/Gui/General.py:123
+msgid ""
+"This description is used when the mailing list is listed with\n"
+" other mailing lists, or in headers, and so forth. It "
+"should\n"
+" be as succinct as you can get it, while still identifying "
+"what\n"
+" the list is."
+msgstr ""
+"Esta descrição é usada quando a lista de discussão estiver listada com\n"
+" outras listas, ou em cabeçalhos e assim por diante. Ela deve\n"
+" ser suscinta para identificação imediata do tipo de lista."
+
+#: Mailman/Gui/General.py:129
+msgid ""
+"An introductory description - a few paragraphs - about the\n"
+" list. It will be included, as html, at the top of the "
+"listinfo\n"
+" page. Carriage returns will end a paragraph - see the details\n"
+" for more info."
+msgstr ""
+"Uma descrição introdutórioa - em poucos parágrafos - sobre a lista. \n"
+" Ela será incluida, como heml, no topo da página listinfo. \n"
+" Pressionamento de enter finalização em um parágrafo - veja os \n"
+" detalhes para mais informações."
+
+#: Mailman/Gui/General.py:133
+msgid ""
+"The text will be treated as html <em>except</em> that\n"
+" newlines will be translated to &lt;br&gt; - so you can use "
+"links,\n"
+" preformatted text, etc, but don't put in carriage returns "
+"except\n"
+" where you mean to separate paragraphs. And review your changes "
+"-\n"
+" bad html (like some unterminated HTML constructs) can prevent\n"
+" display of the entire listinfo page."
+msgstr ""
+"O texto será tratado como html <em>exceto</em> que\n"
+" nova linhas serão traduzidas para &lt;br&gt; - assim você poderá "
+"usar\n"
+" links, texto preformatado, etc, mas não pressione enter, exceto\n"
+" onde você deseje separar parágrafos. E revise suas mudanças - \n"
+" html incorreto (algumas construções HTML mal terminadas) podem\n"
+" danificar toda a página de informações de lista. "
+
+#: Mailman/Gui/General.py:141
+msgid "Prefix for subject line of list postings."
+msgstr "Prefixo da linha de assunto das postagens nas listas."
+
+#: Mailman/Gui/General.py:142
+msgid ""
+"This text will be prepended to subject lines of messages\n"
+" posted to the list, to distinguish mailing list messages in in\n"
+" mailbox summaries. Brevity is premium here, it's ok to "
+"shorten\n"
+" long mailing list names to something more concise, as long as "
+"it\n"
+" still identifies the mailing list."
+msgstr ""
+"Texte texto será adicionado a linha subject das mensagens\n"
+" postadas a lista, para distinguir mensagens da lista de discussão\n"
+" em sumários na caixa de correio. A brevidade é premio aqui, \n"
+" é recomendado encurtar os nomes das listas de discussão para \n"
+" algo mais conciso, ele ainda continuará identificando a lista\n"
+" de discussão."
+
+#: Mailman/Gui/General.py:149
+msgid ""
+"Hide the sender of a message, replacing it with the list\n"
+" address (Removes From, Sender and Reply-To fields)"
+msgstr ""
+"Ocultar o remetente da mensagem, substituindo-o pelo endereço\n"
+" do nome da lista (Remove o campo From, Sender e Reply-To)"
+
+#: Mailman/Gui/General.py:152
+msgid "<tt>Reply-To:</tt> header munging"
+msgstr "<tt>Reply-TO:</tt> Modificação de cabeçalhos"
+
+#: Mailman/Gui/General.py:155
+msgid ""
+"Should any existing <tt>Reply-To:</tt> header found in the\n"
+" original message be stripped? If so, this will be done\n"
+" regardless of whether an explict <tt>Reply-To:</tt> header is\n"
+" added by Mailman or not."
+msgstr ""
+"Qualquer cabeçalho <tt>Reply-To:</tt> encontrado na mensagem original\n"
+" deverá ser retirados? Caso isto aconteça, isto será feito\n"
+" mesmo que o cabeçalho <tt>Reply-To:</tt> seja adicionado ou \n"
+" não pelo Mailman."
+
+#: Mailman/Gui/General.py:161
+msgid "Explicit address"
+msgstr "Endereço explicito"
+
+#: Mailman/Gui/General.py:161
+msgid "Poster"
+msgstr "Remetente"
+
+#: Mailman/Gui/General.py:161
+msgid "This list"
+msgstr "Esta lista"
+
+#: Mailman/Gui/General.py:162
+msgid ""
+"Where are replies to list messages directed?\n"
+" <tt>Poster</tt> is <em>strongly</em> recommended for most "
+"mailing\n"
+" lists."
+msgstr ""
+"Onde as respostas para as mensagens desta lista deverão ser direcionadas?\n"
+" <tt>Remetente</tt> é <em>extremamente</em> recomendado para a "
+"maioria\n"
+" das listas de discussão."
+
+#: Mailman/Gui/General.py:167
+msgid ""
+"This option controls what Mailman does to the\n"
+" <tt>Reply-To:</tt> header in messages flowing through this\n"
+" mailing list. When set to <em>Poster</em>, no <tt>Reply-To:</"
+"tt>\n"
+" header is added by Mailman, although if one is present in the\n"
+" original message, it is not stripped. Setting this value to\n"
+" either <em>This list</em> or <em>Explicit address</em> causes\n"
+" Mailman to insert a specific <tt>Reply-To:</tt> header in all\n"
+" messages, overriding the header in the original message if\n"
+" necessary (<em>Explicit address</em> inserts the value of <a\n"
+" href=\"?VARHELP=general/reply_to_address\">reply_to_address</"
+"a>).\n"
+" \n"
+" <p>There are many reasons not to introduce or override the\n"
+" <tt>Reply-To:</tt> header. One is that some posters depend on\n"
+" their own <tt>Reply-To:</tt> settings to convey their valid\n"
+" return address. Another is that modifying <tt>Reply-To:</tt>\n"
+" makes it much more difficult to send private replies. See <a\n"
+" href=\"http://www.unicom.com/pw/reply-to-harmful.html\">`Reply-"
+"To'\n"
+" Munging Considered Harmful</a> for a general discussion of "
+"this\n"
+" issue. See <a\n"
+" href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml"
+"\">Reply-To\n"
+" Munging Considered Useful</a> for a dissenting opinion.\n"
+"\n"
+" <p>Some mailing lists have restricted posting privileges, with "
+"a\n"
+" parallel list devoted to discussions. Examples are `patches' "
+"or\n"
+" `checkin' lists, where software changes are posted by a "
+"revision\n"
+" control system, but discussion about the changes occurs on a\n"
+" developers mailing list. To support these types of mailing\n"
+" lists, select <tt>Explicit address</tt> and set the\n"
+" <tt>Reply-To:</tt> address below to point to the parallel\n"
+" list."
+msgstr ""
+"Esta opção controla o que o Mailman faz com o cabeçalho <tt>Reply-to</tt>\n"
+" em mensagens que correm através desta lista de discussão.\n"
+" Quando ajustado para <em>Poster</em>, nenhum cabeçalho\n"
+" <tt>Reply-To:</tt> é adicionado pelo Mailman, no entanto\n"
+" se algum estiver presente na mensagem original, ele não \n"
+" será retirado. Selecionando este valor para ambos\n"
+" <em>Esta lista</em> ou <em>Endereço explicito</em> causa\n"
+" o mailman inserir um cabeçalho <tt>Reply-To:</tt> \n"
+" específico em todas as mensagens, substituindo o \n"
+" cabeçalho na mensagem original se necessário (<em>Endereço\n"
+" explícito</em> insere o valor de <a href=\"?VARHELP=general/"
+"reply_to_address\">reply_to_address</a>).\n"
+" \n"
+" <p>Existem muitas razões para não introduzir ou substituir o \n"
+" cabeçalho <tt>Reply-To:</tt> para indicar seu endereço \n"
+" de retorno válido. Outra é que modificando o \n"
+" <tt>Reply-To:</tt> torna difícil enviar respostas privadas.\n"
+" Veja <a href=\"http://www.unicom.com/pw/reply-to-harmful.html"
+"\">`\n"
+" Reply-To'Munging Considered Harmful</a> para ler uma discussão\n"
+" geral sobre este assunto. Veja <a\n"
+" href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml"
+"\">Reply-To\n"
+" Munging Considered Useful</a> para uma opinião descordante.\n"
+"\n"
+" <p>Algumas listas de discussão restringiram os privilégios de \n"
+" postagem, com uma lista paralela dedicada a discussões. \n"
+" Os exemplos são 'patches' ou listas 'checkin', onde as\n"
+" modificações de softwares são postadas por um \n"
+" revision control system (RCS), mas as discussões sobre as \n"
+" modificações ocorrem em uma lista de discussão de \n"
+" desenvolvedores. Para suportar estes tipos de listas\n"
+" de discussão, selecione <tt>Endereços explicitos</tt> e \n"
+" ajuste o endereço <tt>Reply-To:</tt> abaixo para apontar para\n"
+" a lista paralela."
+
+#: Mailman/Gui/General.py:199
+msgid "Explicit <tt>Reply-To:</tt> header."
+msgstr "Cabeçalho <tt>Reply-To:</tt> explicito."
+
+#: Mailman/Gui/General.py:201
+msgid ""
+"This is the address set in the <tt>Reply-To:</tt> header\n"
+" when the <a\n"
+" href=\"?VARHELP=general/reply_goes_to_list"
+"\">reply_goes_to_list</a>\n"
+" option is set to <em>Explicit address</em>.\n"
+"\n"
+" <p>There are many reasons not to introduce or override the\n"
+" <tt>Reply-To:</tt> header. One is that some posters depend on\n"
+" their own <tt>Reply-To:</tt> settings to convey their valid\n"
+" return address. Another is that modifying <tt>Reply-To:</tt>\n"
+" makes it much more difficult to send private replies. See <a\n"
+" href=\"http://www.unicom.com/pw/reply-to-harmful.html\">`Reply-"
+"To'\n"
+" Munging Considered Harmful</a> for a general discussion of "
+"this\n"
+" issue. See <a\n"
+" href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml"
+"\">Reply-To\n"
+" Munging Considered Useful</a> for a dissenting opinion.\n"
+"\n"
+" <p>Some mailing lists have restricted posting privileges, with "
+"a\n"
+" parallel list devoted to discussions. Examples are `patches' "
+"or\n"
+" `checkin' lists, where software changes are posted by a "
+"revision\n"
+" control system, but discussion about the changes occurs on a\n"
+" developers mailing list. To support these types of mailing\n"
+" lists, specify the explicit <tt>Reply-To:</tt> address here. "
+"You\n"
+" must also specify <tt>Explicit address</tt> in the\n"
+" <tt>reply_goes_to_list</tt>\n"
+" variable.\n"
+"\n"
+" <p>Note that if the original message contains a\n"
+" <tt>Reply-To:</tt> header, it will not be changed."
+msgstr ""
+"Este é o endereço ajustado no cabeçalho <tt>Reply-To:</tt>\n"
+" quando a opção <a href=\"?VARHELP=general/reply_goes_to_list"
+"\">reply_goes_to_list</a> está ajustada para <em>Endereço explícito</em>.\n"
+" <p>Existem muitas razões para não introduzir ou substituir o \n"
+" cabeçalho <tt>Reply-To:</tt>. Uma é que algumas pessoas que postam\n"
+" na lista depende de sua própria configuração <tt>Reply-To:</tt> "
+"para\n"
+" indicar seu endereço válido de retorno. A outra é que modificando o\n"
+" <tt>Reply-To:</tt> torna muito mais difícil de enviar respostas\n"
+" privadas. Veja \n"
+" <a href=\\\"http://www.unicom.com/pw/reply-to-harmful.html\\"
+"\">`Reply-To'\n"
+" </a> para uma discussão geral sobre este assunto. Veja\n"
+" href=\\\"http://www.metasystema.org/essays/reply-to-useful.mhtml\\"
+"\">Reply-To\n"
+" Munging Considered Useful</a> para ver uma opinião contrária.\n"
+"\n"
+" <p>Algumas listas de discussão restringiram os privilégios de \n"
+" postagem, com uma lista paralela dedicada a discussões. Os \n"
+" exemplos são listas de 'patches' ou 'checkin', onde as modificações\n"
+" de softwares são postadas por um revision control system \n"
+" (RCS), mas as discussões sobre as modificações ocorrem em uma lista\n"
+" de discussão de desenvolvimento. Para suportar estes tipos de \n"
+" listas de discussão, especifique um endereço <tt>Reply-To:</tt> \n"
+" explicito aqui. Você também poderá especificar <tt>Endereço\n"
+" explícito</tt> na variável <tt>reply_goes_to_list</tt>.\n"
+"\n"
+" <p>Note que a mensagem original contém o cabeçalho\n"
+" <tt>Reply-To:</tt> e não será modificado."
+
+#: Mailman/Gui/General.py:230
+msgid "Umbrella list settings"
+msgstr "Proteção da configuração das listas"
+
+#: Mailman/Gui/General.py:233
+msgid ""
+"Send password reminders to, eg, \"-owner\" address instead of\n"
+" directly to user."
+msgstr ""
+"Enviar lembretes de senhas para o endereço, eg, \"-owner\" ao invés\n"
+" de diretamente para o usuário."
+
+#: Mailman/Gui/General.py:236
+msgid ""
+"Set this to yes when this list is intended to cascade only\n"
+" to other mailing lists. When set, meta notices like\n"
+" confirmations and password reminders will be directed to an\n"
+" address derived from the member's address - it will have the\n"
+" value of \"umbrella_member_suffix\" appended to the member's\n"
+" account name."
+msgstr ""
+"Configure isto para sim quando está lista tem a intenção de ser \n"
+" cascateada somente com outras listas de discussão. Quando\n"
+" configurado, noticias meta como lembretes de confirmação e \n"
+" senhas serão redirecionados para um endereço derivado do \n"
+" endereço do membro - ele terá o valor de \"umbrella_member_suffix\"\n"
+" adicionado no nome de conta do membro."
+
+#: Mailman/Gui/General.py:244
+msgid ""
+"Suffix for use when this list is an umbrella for other\n"
+" lists, according to setting of previous \"umbrella_list\"\n"
+" setting."
+msgstr ""
+"Sufixo que será usado quando esta lista for cascateada para outras\n"
+" listas, de acordo com a configuração anterior \"umbrella_list\"."
+
+#: Mailman/Gui/General.py:248
+msgid ""
+"When \"umbrella_list\" is set to indicate that this list has\n"
+" other mailing lists as members, then administrative notices "
+"like\n"
+" confirmations and password reminders need to not be sent to "
+"the\n"
+" member list addresses, but rather to the owner of those member\n"
+" lists. In that case, the value of this setting is appended to\n"
+" the member's account name for such notices. `-owner' is the\n"
+" typical choice. This setting has no effect when \"umbrella_list"
+"\"\n"
+" is \"No\"."
+msgstr ""
+"Quando \"umbrella_list\" é ajustado para indicar que esta lista tem outras\n"
+" listas de discussão como membros, então as notificações \n"
+" administrativas como confirmações e senhas não precisarão \n"
+" ser enviados para os endereços dos membros das listas. \n"
+" Neste caso, o valor desta configuração é adicionado ao nome\n"
+" da conta do membro para tais notificações '-owner' é a \n"
+" escolha tópica. Esta configuração não tem efeito quando\n"
+" \"umbrella_list\" está definida como \"Não\""
+
+#: Mailman/Gui/General.py:260
+msgid "Send monthly password reminders?"
+msgstr "Enviar lembretes mensais de senha?"
+
+#: Mailman/Gui/General.py:262
+msgid ""
+"Turn this on if you want password reminders to be sent once\n"
+" per month to your members. Note that members may disable "
+"their\n"
+" own individual password reminders."
+msgstr ""
+"Ligue esta opção se desejar que os lembretes de senha sejam enviados\n"
+" uma vez por mês aos seus membros. Note que os membros podem\n"
+" desativar seus próprios lembretes de senhas."
+
+#: Mailman/Gui/General.py:267
+msgid ""
+"List-specific text prepended to new-subscriber welcome\n"
+" message"
+msgstr ""
+"Texto específico da lista adicionado a mensagem de boas vindas\n"
+" do novo inscrito"
+
+#: Mailman/Gui/General.py:270
+msgid ""
+"This value, if any, will be added to the front of the\n"
+" new-subscriber welcome message. The rest of the welcome "
+"message\n"
+" already describes the important addresses and URLs for the\n"
+" mailing list, so you don't need to include any of that kind of\n"
+" stuff here. This should just contain mission-specific kinds "
+"of\n"
+" things, like etiquette policies or team orientation, or that "
+"kind\n"
+" of thing.\n"
+"\n"
+" <p>Note that this text will be wrapped, according to the\n"
+" following rules:\n"
+" <ul><li>Each paragraph is filled so that no line is longer "
+"than\n"
+" 70 characters.\n"
+" <li>Any line that begins with whitespace is not filled.\n"
+" <li>A blank line separates paragraphs.\n"
+" </ul>"
+msgstr ""
+"Este valor, se existir, será adicionado na frente da mensagem de boas "
+"vindas do novo inscrito. O resto da mensagem de boas vindas, já "
+"descreve os\n"
+" endereços e URLs importantes para a lista de discussão, assim você\n"
+" não precisará incluir qualquer tipo de material aqui. Isto deve "
+"apenas\n"
+" conter coisas de missão específicas, como políticas de etiqueta ou\n"
+" orientação de time, ou outros tipos de coisas.\n"
+"\n"
+" <p>Note que este texto será quebrado, de acordo com as seguintes\n"
+" regras:\n"
+" <ul><li>Cada parágrafo é preenchido assim nenhuma linha é maior que\n"
+" 70 caracteres.\n"
+" <li>Qualquer linha que começa com espaço em branco não é \n"
+" preenchida.\n"
+" <li>Uma linha em branco separa parágrafos.\n"
+" </ul>"
+
+#: Mailman/Gui/General.py:287
+msgid "Send welcome message to newly subscribed members?"
+msgstr "Enviar mensagem de boas vindas para novos membros inscritos?"
+
+#: Mailman/Gui/General.py:288
+msgid ""
+"Turn this off only if you plan on subscribing people manually\n"
+" and don't want them to know that you did so. This option is "
+"most\n"
+" useful for transparently migrating lists from some other "
+"mailing\n"
+" list manager to Mailman."
+msgstr ""
+"Destive isto quando planejar inscrever manualmente as pessoas\n"
+" E não desejam que elas saibam que fez desta forma. Esta opção\n"
+" é mais útil para migrar transparentemente outras listas de \n"
+" discussão de outros gerenciadores de listas para o Mailman."
+
+#: Mailman/Gui/General.py:294
+msgid ""
+"Text sent to people leaving the list. If empty, no special\n"
+" text will be added to the unsubscribe message."
+msgstr ""
+"Texto que será enviado a pessoas deixando a lista. Caso esteja vazio, \n"
+" nenhum texto especial será adicionado a mensagem de \n"
+" desinscrição."
+
+#: Mailman/Gui/General.py:298
+msgid "Send goodbye message to members when they are unsubscribed?"
+msgstr ""
+"Enviar mensagens de boas vindas para membros quando eles são\n"
+" desinscritos."
+
+#: Mailman/Gui/General.py:301
+msgid ""
+"Should the list moderators get immediate notice of new\n"
+" requests, as well as daily notices about collected ones?"
+msgstr ""
+"Os moderadores de lista devem obter uma notificação imediata de \n"
+" novas requisição, assim como notícias diárias sobre as coletadas?"
+
+#: Mailman/Gui/General.py:304
+msgid ""
+"List moderators (and list administrators) are sent daily\n"
+" reminders of requests pending approval, like subscriptions to "
+"a\n"
+" moderated list, or postings that are being held for one reason "
+"or\n"
+" another. Setting this option causes notices to be sent\n"
+" immediately on the arrival of new requests as well."
+msgstr ""
+"Moderadores de listas (e asministradores de listas) receberão lembretes\n"
+" diários de requisições aguardando aprovação, comoo inscrições em\n"
+" uma listamoderada, ou postagens que estão em espera por uma\n"
+" razão ou outra. A configuração desta opção faz com que as \n"
+" notificações sejam enviadas imediatamente durante o recebimento\n"
+" de novas requisições também."
+
+#: Mailman/Gui/General.py:311
+msgid ""
+"Should administrator get notices of subscribes and\n"
+" unsubscribes?"
+msgstr ""
+"O administrador deverá receber notificações de inscrições e\n"
+" desinscrições?"
+
+#: Mailman/Gui/General.py:316
+msgid "Send mail to poster when their posting is held for approval?"
+msgstr ""
+"Enviar um email para o remetente quando sua postagem está aguardando "
+"aprovação?"
+
+#: Mailman/Gui/General.py:318
+msgid ""
+"Approval notices are sent when mail triggers certain of the\n"
+" limits <em>except</em> routine list moderation and spam "
+"filters,\n"
+" for which notices are <em>not</em> sent. This option "
+"overrides\n"
+" ever sending the notice."
+msgstr ""
+"Notificações de aprovação são enviadas quando as mensagens atingem certo\n"
+" limite <em>exceto</em> moderação rotineira de listas e filtros de \n"
+" spam, para notificações <em>não</em> são enviadas. Esta opção\n"
+" substitui até o envio da notificação."
+
+#: Mailman/Gui/General.py:323
+msgid "Additional settings"
+msgstr "Configurações adicionais"
+
+#: Mailman/Gui/General.py:326
+msgid "Emergency moderation of all list traffic."
+msgstr "Moderação de emergência para o tráfego de todas as listas:"
+
+#: Mailman/Gui/General.py:327
+msgid ""
+"When this option is enabled, all list traffic is emergency\n"
+" moderated, i.e. held for moderation. Turn this option on when\n"
+" your list is experiencing a flamewar and you want a cooling "
+"off\n"
+" period."
+msgstr ""
+"Quando esta opção é ativada, todo o tráfego da lista é moderado "
+"emergencialmente, i.e. pegas para moderação. Ative esta opção quando sua "
+"lista está experimentando um flamewar e deseja um período de calmaria."
+
+#: Mailman/Gui/General.py:339
+msgid ""
+"Default options for new members joining this list.<input\n"
+" type=\"hidden\" name=\"new_member_options\" value=\"ignore\">"
+msgstr ""
+"Opções padrões para novos membros entrando nesta lista. \n"
+"<input type=\"hidden\" name=\"new_member_options\" value=\"ignore\">"
+
+#: Mailman/Gui/General.py:342
+msgid ""
+"When a new member is subscribed to this list, their initial\n"
+" set of options is taken from the this variable's setting."
+msgstr ""
+"Quando um novo membro é inscrito nesta lista, seu conjunto\n"
+" inicial de opções é trazido desta configuração de variável."
+
+#: Mailman/Gui/General.py:346
+msgid ""
+"(Administrivia filter) Check postings and intercept ones\n"
+" that seem to be administrative requests?"
+msgstr ""
+"(Filtro Administrivia) Verifica postagens e intercepta\n"
+" aqueles que se parecem com requisições administrativas."
+
+#: Mailman/Gui/General.py:349
+msgid ""
+"Administrivia tests will check postings to see whether it's\n"
+" really meant as an administrative request (like subscribe,\n"
+" unsubscribe, etc), and will add it to the the administrative\n"
+" requests queue, notifying the administrator of the new "
+"request,\n"
+" in the process."
+msgstr ""
+"Testes administrativos verificarão postatgens para ver se ela é\n"
+" realmente uma requisição administrativa (como se inscrever,\n"
+" desinscrever, etc) e a adicionará a fila de requisições\n"
+" administrativas, notificando o administrador da nova\n"
+" requisição em processo."
+
+#: Mailman/Gui/General.py:356
+msgid ""
+"Maximum length in kilobytes (KB) of a message body. Use 0\n"
+" for no limit."
+msgstr ""
+"Tamanho máximo em kilobytes (KB) do corpo da mensagem. Use 0\n"
+" para não ter limite."
+
+#: Mailman/Gui/General.py:360
+msgid "Host name this list prefers for email."
+msgstr "Nome de máquina que esta listas prefere para emails."
+
+#: Mailman/Gui/General.py:362
+msgid ""
+"The \"host_name\" is the preferred name for email to\n"
+" mailman-related addresses on this host, and generally should "
+"be\n"
+" the mail host's exchanger address, if any. This setting can "
+"be\n"
+" useful for selecting among alternative names of a host that "
+"has\n"
+" multiple addresses."
+msgstr ""
+"O nome \"host_name\" é o preferido para endereços de emails relacionados\n"
+" com o mailman para esta máquina e geralmente deve ser \n"
+" o endereço para entrega de mensagens, se tiver. Esta configuração\n"
+" pode ser útil para seleção entre as alternativas de nomes de uma \n"
+" máquina que possui múltiplos endereços."
+
+#: Mailman/Gui/General.py:374
+msgid ""
+"Should messages from this mailing list include the\n"
+" <a href=\"http://www.faqs.org/rfcs/rfc2369.html\">RFC 2369</"
+"a>\n"
+" (i.e. <tt>List-*</tt>) headers? <em>Yes</em> is highly\n"
+" recommended."
+msgstr ""
+"As mensagens desta lista de discussão devem incluir os cabeçalhos da <a "
+"href=\"http://www.faqs.org/rfcs/rfc2369.html\">RFC 2369</a> (i.e. <tt>List-"
+"*</tt>? <em>Sim</em> é altamente recomendável."
+
+#: Mailman/Gui/General.py:379
+msgid ""
+"RFC 2369 defines a set of List-* headers that are\n"
+" normally added to every message sent to the list "
+"membership.\n"
+" These greatly aid end-users who are using standards "
+"compliant\n"
+" mail readers. They should normally always be enabled.\n"
+"\n"
+" <p>However, not all mail readers are standards compliant "
+"yet,\n"
+" and if you have a large number of members who are using\n"
+" non-compliant mail readers, they may be annoyed at these\n"
+" headers. You should first try to educate your members as "
+"to\n"
+" why these headers exist, and how to hide them in their "
+"mail\n"
+" clients. As a last resort you can disable these headers, "
+"but\n"
+" this is not recommended (and in fact, your ability to "
+"disable\n"
+" these headers may eventually go away)."
+msgstr ""
+"A RFC 2369 define um conjunto de cabeçalhos de lista que normalmente são\n"
+" adicionados a cada mensagem enviada para o membro da lista.\n"
+" Estes ajudam muito usuários finais que estão usando leitores de \n"
+" emails que seguem padrões. Eles normalmente devem estar ativados.\n"
+"\n"
+" <p>No entanto, nem todos os leitores de email seguem ainda os \n"
+" padrões, e se tiver um grande número de membros que estão usando\n"
+" leitores de emails que nào seguem os padrões, eles devem ser \n"
+" pertubados por estes cabeçalhos. Você deverá tentar primeiro\n"
+" educar seus membros sobre a existência destes cabeçalhos, e como\n"
+" oculta-los em seu cliente de email. Como último recurso você poderá\n"
+" desativar estes cabeçalhos, mas isto não é recomendado."
+
+#: Mailman/Gui/General.py:397
+msgid "Should postings include the <tt>List-Post:</tt> header?"
+msgstr "As postagens devem incluir o cabeçalho <tt>List-Post:</tt>?"
+
+#: Mailman/Gui/General.py:398
+msgid ""
+"The <tt>List-Post:</tt> header is one of the headers\n"
+" recommended by\n"
+" <a href=\"http://www.faqs.org/rfcs/rfc2369.html\">RFC 2369</"
+"a>.\n"
+" However for some <em>announce-only</em> mailing lists, only a\n"
+" very select group of people are allowed to post to the list; "
+"the\n"
+" general membership is usually not allowed to post. For lists "
+"of\n"
+" this nature, the <tt>List-Post:</tt> header is misleading.\n"
+" Select <em>No</em> to disable the inclusion of this header. "
+"(This\n"
+" does not affect the inclusion of the other <tt>List-*:</tt>\n"
+" headers.)"
+msgstr ""
+"O cabeçalho <tt>List-Post:</tt> é um dos cabeçalhos recomendados pela \n"
+" <a href=\"http://www.faqs.org/rfcs/rfc2369.html\">RFC 2369</a>.\n"
+" No entando para algumas listas de discussão <em>somente-anuncio</"
+"em>\n"
+" somente um grupo selecionado de pessoas tem permissão de postar \n"
+" para a lista; o membro geral normalmente não tem permissão para\n"
+" postar. Para listas desta natureza, o cabeçalho <tt>List-Post:</tt>\n"
+" mostra o caminho errado. Selecione <em>Não</em> para desativar a\n"
+" inclusão deste cabeçalho. (Isto não afeta a inclusão de outros\n"
+" cabeçalhos <tt>List-*:</tt>)."
+
+#: Mailman/Gui/General.py:416
+msgid ""
+"<b>real_name</b> attribute not\n"
+" changed! It must differ from the list's name by case\n"
+" only."
+msgstr ""
+"<b>real_name</b> atributo não modificado! Ele deve ser diferente do nome da "
+"lista apenas por maiúsculas/minúsculas."
+
+#: Mailman/Gui/General.py:437
+msgid ""
+"You cannot add a Reply-To: to an explicit\n"
+" address if that address is blank. Resetting these values."
+msgstr ""
+"Você não pode adicionar o Reply-To a um endereço explícito se estiver\n"
+" em branco. Resetando estes valores."
+
+#: Mailman/Gui/Language.py:34
+msgid "Language&nbsp;options"
+msgstr "opções&nbsp;de&nbsp;idioma"
+
+#: Mailman/Gui/Language.py:66
+msgid "Natural language (internationalization) options."
+msgstr "Opções de Idioma natural (internacionalização)"
+
+#: Mailman/Gui/Language.py:71
+msgid "Default language for this list."
+msgstr "Idioma padrão para esta lista."
+
+#: Mailman/Gui/Language.py:72
+msgid ""
+"This is the default natural language for this mailing list.\n"
+" If <a href=\"?VARHELP=language/available_languages\">more than "
+"one\n"
+" language</a> is supported then users will be able to select "
+"their\n"
+" own preferences for when they interact with the list. All "
+"other\n"
+" interactions will be conducted in the default language. This\n"
+" applies to both web-based and email-based messages, but not to\n"
+" email posted by list members."
+msgstr ""
+"Esta é a lingua natural para esta lista de discussão.\n"
+" Se <a href=\"?VARHELP=language/available_languages\">mais de um "
+"idioma\\\n"
+" </a> for suportado então os usuários serão capazes de selecionar\n"
+" suas próprias preferências e e eles interagirão com a lista. Todas\n"
+" as outras interações serão conduzidas no idioma padrão. Isto se \n"
+" aplica tanto para mensagens baseadas em web ou email, mas não para\n"
+" mensagens postadas na lista de membros."
+
+#: Mailman/Gui/Language.py:82
+msgid "Languages supported by this list."
+msgstr "Idiomas suportados por esta lista."
+
+#: Mailman/Gui/Language.py:84
+msgid ""
+"These are all the natural languages supported by this list.\n"
+" Note that the\n"
+" <a href=\"?VARHELP=language/preferred_language\">default\n"
+" language</a> must be included."
+msgstr ""
+"Estes são todos os idiomas naturais suportados por esta lista.\n"
+" Note que o <a href=\"?VARHELP=language/preferred_language\">idioma\n"
+" padrão</a> deverá ser incluido."
+
+#: Mailman/Gui/Language.py:90
+msgid "Always"
+msgstr "Sempre"
+
+#: Mailman/Gui/Language.py:90
+msgid "As needed"
+msgstr "Quando necessário"
+
+#: Mailman/Gui/Language.py:90
+msgid "Never"
+msgstr "Nunca"
+
+#: Mailman/Gui/Language.py:91
+msgid ""
+"Encode the\n"
+" <a href=\"?VARHELP=general/subject_prefix\">subject\n"
+" prefix</a> even when it consists of only ASCII characters?"
+msgstr ""
+"Encodificar a\n"
+" <a href=\"?VARHELP=general/subject_prefix\">prefixo do\n"
+" assunto</a> até mesmo quando ela somente contenha caracteres\n"
+" ASCII?"
+
+#: Mailman/Gui/Language.py:95
+msgid ""
+"If your mailing list's default language uses a non-ASCII\n"
+" character set and the prefix contains non-ASCII characters, "
+"the\n"
+" prefix will always be encoded according to the relevant\n"
+" standards. However, if your prefix contains only ASCII\n"
+" characters, you may want to set this option to <em>Never</em> "
+"to\n"
+" disable prefix encoding. This can make the subject headers\n"
+" slightly more readable for users with mail readers that don't\n"
+" properly handle non-ASCII encodings.\n"
+"\n"
+" <p>Note however, that if your mailing list receives both "
+"encoded\n"
+" and unencoded subject headers, you might want to choose <em>As\n"
+" needed</em>. Using this setting, Mailman will not encode "
+"ASCII\n"
+" prefixes when the rest of the header contains only ASCII\n"
+" characters, but if the original header contains non-ASCII\n"
+" characters, it will encode the prefix. This avoids an "
+"ambiguity\n"
+" in the standards which could cause some mail readers to "
+"display\n"
+" extra, or missing spaces between the prefix and the original\n"
+" header."
+msgstr ""
+"Caso o idioma padrão de sua lista de discussão utiliza um conjunto \n"
+" de caracteres não-ASCII e o prefixo contenha caracteres\n"
+" não-ASCII, o prefixo sempre será codificado de acordo com\n"
+" os padrões relevantes. No entanto, se seu prefixo contenha\n"
+" somente caracteres ASCII, pode ser interessante ajustar esta\n"
+" opção para <em>Never</em> para desativar a encodificação de \n"
+" prefixo. Isto pode tornar os cabeçalhos de assunto um pouco "
+"mais\n"
+" legíveis para usuários com leitores de epmail que não \n"
+" manipulam corretamente encodificações não-ASCII.\n"
+"\n"
+" <p>Note no entanto que se sa lista de discussão recebe ambas\n"
+" mensagens com o cabeçalho codificado e não codificado, o mais\n"
+" apropriado é marcar <em>quando necessário</em>. Usando esta\n"
+" configuração, o Mailman não codificará prefixos ASCII quando \n"
+" o resto do cabeçalho conter apenas caracteres ASCII, mas se o \n"
+" cabeçalho original conter caracteres não-ASCII, ele codificará\n"
+" o prefixo. Isto evita uma ambiguidade no padrão que faria\n"
+" alguns leitores de e-mail mostrarem espaços extras ou \n"
+" faltantes entre o prefixo e o cabeçalho original."
+
+#: Mailman/Gui/Membership.py:26
+msgid "Membership&nbsp;Management"
+msgstr "Gerenciamento&nbsp;de&nbsp;membros"
+
+#: Mailman/Gui/Membership.py:30
+msgid "Membership&nbsp;List"
+msgstr "Lista&nbsp;de&nbsp;membros"
+
+#: Mailman/Gui/Membership.py:31
+msgid "Mass&nbsp;Subscription"
+msgstr "Inscrição&nbsp;em&nbsp;massa"
+
+#: Mailman/Gui/Membership.py:32
+msgid "Mass&nbsp;Removal"
+msgstr "Remoção&nbsp;em&nbsp;massa"
+
+#: Mailman/Gui/NonDigest.py:34
+msgid "Non-digest&nbsp;options"
+msgstr "Opções&nbsp;não&nbsp;digest"
+
+#: Mailman/Gui/NonDigest.py:42
+msgid "Policies concerning immediately delivered list traffic."
+msgstr "Politicas se concentrando na entrega imediata do tráfego da lista."
+
+#: Mailman/Gui/NonDigest.py:45
+msgid ""
+"Can subscribers choose to receive mail immediately, rather\n"
+" than in batched digests?"
+msgstr ""
+"Os inscritos na lista podem receber um email imediatamente, ao invés\n"
+" de digests em lote?"
+
+#: Mailman/Gui/NonDigest.py:52
+msgid "Full Personalization"
+msgstr "Personalização completa"
+
+#: Mailman/Gui/NonDigest.py:54
+msgid ""
+"Should Mailman personalize each non-digest delivery?\n"
+" This is often useful for announce-only lists, but <a\n"
+" href=\"?VARHELP=nondigest/personalize\">read the details</"
+"a>\n"
+" section for a discussion of important performance\n"
+" issues."
+msgstr ""
+"O Mailman deve personalizar cada entrega não-digest?\n"
+" Isto é frequentemente útil para listas somente anúncio, mas\n"
+" leia a seção <a href=\"?VARHELP=nondigest/personalize\">leia os\n"
+" detalhes</a> para uma discussão sobre assuntos importantes\n"
+" sobre performance."
+
+#: Mailman/Gui/NonDigest.py:60
+msgid ""
+"Normally, Mailman sends the regular delivery messages to\n"
+" the mail server in batches. This is much more efficent\n"
+" because it reduces the amount of traffic between Mailman "
+"and\n"
+" the mail server.\n"
+"\n"
+" <p>However, some lists can benefit from a more "
+"personalized\n"
+" approach. In this case, Mailman crafts a new message for\n"
+" each member on the regular delivery list. Turning this\n"
+" feature on may degrade the performance of your site, so "
+"you\n"
+" need to carefully consider whether the trade-off is worth "
+"it,\n"
+" or whether there are other ways to accomplish what you "
+"want.\n"
+" You should also carefully monitor your system load to make\n"
+" sure it is acceptable.\n"
+"\n"
+" <p>Select <em>No</em> to disable personalization and send\n"
+" messages to the members in batches. Select <em>Yes</em> "
+"to\n"
+" personalize deliveries and allow additional substitution\n"
+" variables in message headers and footers (see below). In\n"
+" addition, by selecting <em>Full Personalization</em>, the\n"
+" <code>To</code> header of posted messages will be modified "
+"to\n"
+" include the member's address instead of the list's posting\n"
+" address.\n"
+"\n"
+" <p>When personalization is enabled, a few more expansion\n"
+" variables that can be included in the <a\n"
+" href=\"?VARHELP=nondigest/msg_header\">message header</a> "
+"and\n"
+" <a href=\"?VARHELP=nondigest/msg_footer\">message footer</"
+"a>.\n"
+"\n"
+" <p>These additional substitution variables will be "
+"available\n"
+" for your headers and footers, when this feature is "
+"enabled:\n"
+"\n"
+" <ul><li><b>user_address</b> - The address of the user,\n"
+" coerced to lower case.\n"
+" <li><b>user_delivered_to</b> - The case-preserved "
+"address\n"
+" that the user is subscribed with.\n"
+" <li><b>user_password</b> - The user's password.\n"
+" <li><b>user_name</b> - The user's full name.\n"
+" <li><b>user_optionsurl</b> - The url to the user's "
+"option\n"
+" page.\n"
+" </ul>\n"
+" "
+msgstr ""
+"Normalmente, o Mailman envia mensagens regulares para o servidor de email \n"
+" em partes. Isto é muito mais eficiente porque reduz a quantidade\n"
+" de tráfego entre o Mailman e o servidor de emails.\n"
+"\n"
+" <p>No entanto, algumas listas podem se beneficiar de uma "
+"aproximação\n"
+" mais personalizada. Neste caso, o Mailman pega a nova mensagem\n"
+" de cada membro na lista regular de entrega. Ligando esta "
+"característica\n"
+" poderá degradar a performance do seu site, assim você precisará \n"
+" considerar cuidadosamente antes que ela seja feita, ou outras\n"
+" formas de fazer o que deseja. Você também poderá monitorar \n"
+" cuidadosamente a carga do seu sistema para ter certeza que \n"
+" ela está aceitável.\n"
+"\n"
+"\n"
+" <p>Selecione <em>Não</em> para desativar a personalização e enviar\n"
+" as mensagens para os membros em lotes. Selecioen <em>Yes</em>\n"
+" para personalizar suas entregas e permitir substituição adicional\n"
+" de variáveis em cabeçalhos de mensagens e rodapés (veja abaixo).\n"
+" Em adição, selecionando <em>Personalização Completa</em>, o \n"
+" cabeçalho <code>To</code> das mensagens postadas serão modificados\n"
+" incluindo o endereço do membro ao invés do endereço de postagem \n"
+" da lista.\n"
+"\n"
+" <p>Quando as listas personalizadas estão ativadas, duas coisas\n"
+" acontecem. Primeiro o cabeçalho <code>To:</code> de uma mensagem\n"
+" postada é modificado assim cada usuário individual é endereçado\n"
+" especialmente. I.E. ele se parece com uma mensagem endereçada \n"
+" para a pessoa, ao invés da lista.\n"
+"\n"
+" <p>Segundo, algumas expansões variáveis a mais que podem ser "
+"incluidas\n"
+" em <a href=\"?VARHELP=nondigest/msg_header\">cabeçalho da mensagem</"
+"a>\n"
+" e <a href=\"?VARHELP=nondigest/msg_footer\">legenda da mensagem</"
+"a>.\n"
+"\n"
+" <p>Estas variáveis adicionais de substituição estarão disponíveis\n"
+" em seus cabeçalhos e rodapés, quando estiver ativada:\n"
+"\n"
+"\n"
+" <ul><li><b>user_address</b> - O endereço do usuário,\n"
+" em minúsculas.\n"
+" <li><b>user_delivered_to</b> - O endereço com case-preservada\n"
+" no qual o usuário está inscrito.\n"
+" <li><b>user_password</b> - A senha do usuário.\n"
+" <li><b>user_name</b> - O nome completo do usuário.\n"
+" <li><b>user_optionsurl</b> - A url para a página de opções\n"
+" do usuário.\n"
+" </ul>\n"
+" "
+
+#: Mailman/Gui/NonDigest.py:108
+msgid "Header added to mail sent to regular list members"
+msgstr "Cabeçalho adicionado ao email enviado para membros regulares"
+
+#: Mailman/Gui/NonDigest.py:109
+msgid ""
+"Text prepended to the top of every immediately-delivery\n"
+" message. "
+msgstr ""
+"Texto adicionado ao topo de cada mensagem enviada \n"
+" imediatamente."
+
+#: Mailman/Gui/NonDigest.py:114
+msgid "Footer added to mail sent to regular list members"
+msgstr "Rodapé adicionado ao email enviado para os membros regulares da lista"
+
+#: Mailman/Gui/NonDigest.py:115
+msgid ""
+"Text appended to the bottom of every immediately-delivery\n"
+" message. "
+msgstr ""
+"Texto adicionado ao rodapé de cada mensagem entregue\n"
+" imediatamente."
+
+#: Mailman/Gui/Passwords.py:27
+msgid "Passwords"
+msgstr "Senhas"
+
+#: Mailman/Gui/Privacy.py:28
+msgid "Privacy options"
+msgstr "Opções de Privacidade"
+
+#: Mailman/Gui/Privacy.py:32
+msgid "Subscription&nbsp;rules"
+msgstr "Regras&nbsp;de&nbsp;inscrição"
+
+#: Mailman/Gui/Privacy.py:33
+msgid "Sender&nbsp;filters"
+msgstr "Filtros&nbsp;de&nbsp;remetentes"
+
+#: Mailman/Gui/Privacy.py:34
+msgid "Recipient&nbsp;filters"
+msgstr "Recipient&nbsp;filtros"
+
+#: Mailman/Gui/Privacy.py:35
+msgid "Spam&nbsp;filters"
+msgstr "Filtros&nbsp;de&nbsp;spam"
+
+#: Mailman/Gui/Privacy.py:49 Mailman/Gui/Usenet.py:61
+msgid "None"
+msgstr "Nenhum"
+
+#: Mailman/Gui/Privacy.py:50 Mailman/Gui/Privacy.py:73
+msgid "Confirm"
+msgstr "Cofirmar"
+
+#: Mailman/Gui/Privacy.py:51 Mailman/Gui/Privacy.py:74
+msgid "Require approval"
+msgstr "Requer aprovação"
+
+#: Mailman/Gui/Privacy.py:52 Mailman/Gui/Privacy.py:75
+msgid "Confirm and approve"
+msgstr "Confirmar e aprovar"
+
+#: Mailman/Gui/Privacy.py:54 Mailman/Gui/Privacy.py:77
+msgid "What steps are required for subscription?<br>"
+msgstr "Que passos são requeridos para a inscrição?<br>"
+
+#: Mailman/Gui/Privacy.py:55
+msgid ""
+"None - no verification steps (<em>Not\n"
+" Recommended </em>)<br>\n"
+" Confirm (*) - email confirmation step required "
+"<br>\n"
+" Require approval - require list administrator\n"
+" Approval for subscriptions <br>\n"
+" Confirm and approve - both confirm and approve\n"
+" \n"
+" <p>(*) when someone requests a subscription,\n"
+" Mailman sends them a notice with a unique\n"
+" subscription request number that they must reply "
+"to\n"
+" in order to subscribe.<br>\n"
+"\n"
+" This prevents mischievous (or malicious) people\n"
+" from creating subscriptions for others without\n"
+" their consent."
+msgstr ""
+"Nenhum - nenhum passo de verificação (<em>Não recomendado</em>)<br>\n"
+" Confirme (*) - é requerido um passo de confirmação por email<br>\n"
+" \n"
+" Requer aprovação - Requer a aprovação do administrador da lista\n"
+" para aprovação de inscrições<br>\n"
+" Confirmar e aprovar - ambas confirmam e aprovam\n"
+"\n"
+" <p>(*) quando alguém solicita uma inscrição, o Mailman envia \n"
+" uma notificaao com um número de requisição único que deve ser\n"
+" respondido para se inscrever na lista.<br>\n"
+"\n"
+" Isto previne que pessoas má intencionadas (ou maliciosas) de \n"
+" criar inscrições de outros sem seu consentimento."
+
+#: Mailman/Gui/Privacy.py:78
+msgid ""
+"Confirm (*) - email confirmation required <br>\n"
+" Require approval - require list administrator\n"
+" approval for subscriptions <br>\n"
+" Confirm and approve - both confirm and approve\n"
+" \n"
+" <p>(*) when someone requests a subscription,\n"
+" Mailman sends them a notice with a unique\n"
+" subscription request number that they must reply "
+"to\n"
+" in order to subscribe.<br> This prevents\n"
+" mischievous (or malicious) people from creating\n"
+" subscriptions for others without their consent."
+msgstr ""
+"Confirmação (*) - confirmação por email requerida<br>\n"
+" Requer aprovação - Requer a aprovação do administrador da lista\n"
+" de inscrições<br>\n"
+" confirmar e aprovar - ambas confirmam e aprovam\n"
+"\n"
+" <p>(*) quando alguém solicita uma inscrição, o Mailman as envia\n"
+" com um número de inscricao único que deve ser respondido para \n"
+" realizar a inscrição.<br> Isto evita que pessoas má intencionadas\n"
+" (ou maliciosas) de criar inscrições sem seu consentimento."
+
+#: Mailman/Gui/Privacy.py:94
+msgid ""
+"This section allows you to configure subscription and\n"
+" membership exposure policy. You can also control whether this\n"
+" list is public or not. See also the\n"
+" <a href=\"%(admin)s/archive\">Archival Options</a> section for\n"
+" separate archive-related privacy settings."
+msgstr ""
+"Esta seção lhe permite configurar sua politica de exposição da inscrição do\n"
+" membro. Você também poderá controlr se a lista é ou não pública. \n"
+" Veja também a seção <a href=\"%(admin)s/archive\\\">Opções de "
+"Arquivo</a> \n"
+" para configurações de privacidade relacionadas com o arquivo."
+
+#: Mailman/Gui/Privacy.py:100
+msgid "Subscribing"
+msgstr "Inscrevendo-se"
+
+#: Mailman/Gui/Privacy.py:102
+msgid ""
+"Advertise this list when people ask what lists are on this\n"
+" machine?"
+msgstr ""
+"Avisar esta lista quando pessoas perguntarem que listas estão nesta\n"
+" máquina?"
+
+#: Mailman/Gui/Privacy.py:108
+msgid ""
+"Is the list moderator's approval required for unsubscription\n"
+" requests? (<em>No</em> is recommended)"
+msgstr ""
+"É requerida a aprovação do moderador para requisições de desinscrição?\n"
+" (<em>Não</em> é recomendado)."
+
+#: Mailman/Gui/Privacy.py:111
+msgid ""
+"When members want to leave a list, they will make an\n"
+" unsubscription request, either via the web or via email.\n"
+" Normally it is best for you to allow open unsubscriptions so "
+"that\n"
+" users can easily remove themselves from mailing lists (they "
+"get\n"
+" really upset if they can't get off lists!).\n"
+"\n"
+" <p>For some lists though, you may want to impose moderator\n"
+" approval before an unsubscription request is processed. "
+"Examples\n"
+" of such lists include a corporate mailing list that all "
+"employees\n"
+" are required to be members of."
+msgstr ""
+"Quando membros desejam deixar a lista, eles farão uma requisição de\n"
+" desinscrição, ou via web ou via email.\n"
+" Normalmente é melhor que permite o descadastramento livre assim\n"
+" aqueles usuários podem se auto-remover das listas de discussão\n"
+" (eles ficarão realmente preocupados se não puderem sair das \n"
+" listas!).\n"
+"\n"
+" <p>No entanto para algumas listas, você pode querer impor a\n"
+" aprovação do moderador antes da requisição de desinscrição\n"
+" ser processada. Exemplos de tais listas incluem uma lista\n"
+" de discussão corporativa em que todos os funcionários devem\n"
+" ser membros."
+
+#: Mailman/Gui/Privacy.py:122
+msgid "Ban list"
+msgstr "Lista de Banimentos"
+
+#: Mailman/Gui/Privacy.py:124
+msgid ""
+"List of addresses which are banned from membership in this\n"
+" mailing list."
+msgstr ""
+"Lista de endereços que estão banidos de serem membros desta lista\n"
+" de discussão."
+
+#: Mailman/Gui/Privacy.py:127
+msgid ""
+"Addresses in this list are banned outright from subscribing\n"
+" to this mailing list, with no further moderation required. "
+"Add\n"
+" addresses one per line; start the line with a ^ character to\n"
+" designate a regular expression match."
+msgstr ""
+"Os endereços desta lista estão banidos de serem inscritos nesta\n"
+" lista de discussão, com nenhuma moderação requerida.\n"
+" Adicione um endereço por linha: inicie uma liha com um caracter\n"
+" ^para especificar uma expressão regular que deve conferir."
+
+#: Mailman/Gui/Privacy.py:132
+msgid "Membership exposure"
+msgstr "Esposição de membros"
+
+#: Mailman/Gui/Privacy.py:134
+msgid "Anyone"
+msgstr "Qualquer um"
+
+#: Mailman/Gui/Privacy.py:134
+msgid "List admin only"
+msgstr "Somente administradores da lista"
+
+#: Mailman/Gui/Privacy.py:134
+msgid "List members"
+msgstr "Membros da lista"
+
+#: Mailman/Gui/Privacy.py:135
+msgid "Who can view subscription list?"
+msgstr "Quem poderá ver a lista de inscrição?"
+
+#: Mailman/Gui/Privacy.py:137
+msgid ""
+"When set, the list of subscribers is protected by member or\n"
+" admin password authentication."
+msgstr ""
+"Quando configurado, a lista de inscritos está protegida por membro ou\n"
+" autenticação de senha administrativa."
+
+#: Mailman/Gui/Privacy.py:141
+msgid ""
+"Show member addresses so they're not directly recognizable\n"
+" as email addresses?"
+msgstr ""
+"Mostra endereços de membros assim eles não serão reconhecidos \n"
+" diretamente como endereços de email?"
+
+#: Mailman/Gui/Privacy.py:143
+msgid ""
+"Setting this option causes member email addresses to be\n"
+" transformed when they are presented on list web pages (both in\n"
+" text and as links), so they're not trivially recognizable as\n"
+" email addresses. The intention is to prevent the addresses\n"
+" from being snarfed up by automated web scanners for use by\n"
+" spammers."
+msgstr ""
+"A configuração desta opção faz com que o endereço de email ser transformado\n"
+" quando são expostos nas páginas web (ambos em texto e como\n"
+" links), desta forma eles não serão facilmente reconhecidos como\n"
+" endereços de email. A intenção é prevenir que os endereços\n"
+" sejam vistos por scanners automaticos da web para uso por \n"
+" spammers."
+
+#: Mailman/Gui/Privacy.py:153
+msgid ""
+"When a message is posted to the list, a series of\n"
+" moderation steps are take to decide whether the a moderator "
+"must\n"
+" first approve the message or not. This section contains the\n"
+" controls for moderation of both member and non-member postings.\n"
+"\n"
+" <p>Member postings are held for moderation if their\n"
+" <b>moderation flag</b> is turned on. You can control whether\n"
+" member postings are moderated by default or not.\n"
+"\n"
+" <p>Non-member postings can be automatically\n"
+" <a href=\"?VARHELP=privacy/sender/accept_these_nonmembers\"\n"
+" >accepted</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/hold_these_nonmembers\">held "
+"for\n"
+" moderation</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/reject_these_nonmembers\"\n"
+" >rejected</a> (bounced), or\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >discarded</a>,\n"
+" either individually or as a group. Any\n"
+" posting from a non-member who is not explicitly accepted,\n"
+" rejected, or discarded, will have their posting filtered by the\n"
+" <a href=\"?VARHELP=privacy/sender/generic_nonmember_action"
+"\">general\n"
+" non-member rules</a>.\n"
+"\n"
+" <p>In the text boxes below, add one address per line; start the\n"
+" line with a ^ character to designate a <a href=\n"
+" \"http://www.python.org/doc/current/lib/module-re.html\"\n"
+" >Python regular expression</a>. When entering backslashes, do "
+"so\n"
+" as if you were using Python raw strings (i.e. you generally "
+"just\n"
+" use a single backslash).\n"
+"\n"
+" <p>Note that non-regexp matches are always done first."
+msgstr ""
+"Quando uma mensagem é postada para a lista, uma série de \n"
+" passos de moderação são feitos para decidir se o \n"
+" moderador deve primeiro aprovar ou não a mensagem.\n"
+" Esta seção contém os controles de moderação de \n"
+" ambas as postagens de membros e não membros.\n"
+"\n"
+" <p>As postagens de membros são colocadas em espera para\n"
+" moderação caso sua <b>opção de moderação</b> esteja \n"
+" ativada. Você pode controlar se as postagens dos membros\n"
+" são moderadas por padrão ou não.\n"
+"\n"
+" <p>As postagens de não-membros podem ser \\\n"
+" <a href=\"?VARHELP=privacy/sender/accept_these_nonmembers\">aceitas</"
+"a>\n"
+" automaticamente,\n"
+" <a href=\"?VARHELP=privacy/sender/hold_these_nonmembers\">colocadas "
+"em\n"
+" espera para moderação</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/reject_these_nonmembers"
+"\">rejeitada</a> (elas serão retornadas), ou\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >descartadas</a>,\n"
+" ou individualmente ou em grupo. Qualquer postagem de um não\n"
+" membro que não é explicitamente aceita, rejeitada ou \n"
+" descartada, terá sua postagem filtrada pelas\n"
+" <a href=\"?VARHELP=privacy/sender/generic_nonmember_action"
+"\">regras\n"
+"\" gerais de não membros</a>.\n"
+"\n"
+" <p>Nas caixas de texto abaixo, adicione um endereço por linha;\n"
+" inicie a linha com o caracter ^ para designar uma\n"
+" <a href=\"http://www.python.org/doc/current/lib/module-re.html"
+"\">Expressão regular em Python</a>. Quando acrescentar contrabarras, faça "
+"como se \n"
+" estivesse usando strings raw do Python (i.e. você geralmente \n"
+" utilizaria apenas uma barra invertida).\n"
+"\n"
+" <p>Note que textos que não conferem são sempre feitos primeiros."
+
+#: Mailman/Gui/Privacy.py:186
+msgid "Member filters"
+msgstr "Filtros de Membros"
+
+#: Mailman/Gui/Privacy.py:189
+msgid "By default, should new list member postings be moderated?"
+msgstr ""
+"Por padrão, as postagens de novos membros da lista devem ser moderadas?"
+
+#: Mailman/Gui/Privacy.py:191
+msgid ""
+"Each list member has a <em>moderation flag</em> which says\n"
+" whether messages from the list member can be posted directly "
+"to\n"
+" the list, or must first be approved by the list moderator. "
+"When\n"
+" the moderation flag is turned on, list member postings must be\n"
+" approved first. You, the list administrator can decide whether "
+"a\n"
+" specific individual's postings will be moderated or not.\n"
+"\n"
+" <p>When a new member is subscribed, their initial moderation "
+"flag\n"
+" takes its value from this option. Turn this option off to "
+"accept\n"
+" member postings by default. Turn this option on to, by "
+"default,\n"
+" moderate member postings first. You can always manually set "
+"an\n"
+" individual member's moderation bit by using the\n"
+" <a href=\"%(adminurl)s/members\">membership management\n"
+" screens</a>."
+msgstr ""
+"Cada membro da lista tem uma <em>opção de moderação</em> que diz se as\n"
+" mensagens postadas de membros da lista podem ser postadas \n"
+" diretamente para a lista, ou primeiro aprovada pelo moderador\n"
+" da lista. Quando a opção de moderação é ativada, as postagens de \n"
+" membros devem ser primeiro aprovadas. Você, o administrador da "
+"lista\n"
+" pode decidir se uma postagem individual específica será moderada "
+"ou \n"
+" não \n"
+"\n"
+" <p>Quando um novo membro é inscrito, sua opção inicial de moderação\n"
+" pega este valor desta opção. Desligue esta opção para aceitar as \n"
+" postagens de membros como padrão. Ligue esta opção para por "
+"padrão, \n"
+" moderar as postagens dos membros primeiro. Você poderá sempre \n"
+" ajustar manualmente um bit de moderação individual de membro \n"
+" usando as <a href=\"%(adminurl)s/members\">telas de gerenciamento "
+"de \n"
+" membros</a>"
+
+#: Mailman/Gui/Privacy.py:207 Mailman/Gui/Privacy.py:281
+msgid "Hold"
+msgstr "Segurar"
+
+#: Mailman/Gui/Privacy.py:208
+msgid ""
+"Action to take when a moderated member posts to the\n"
+" list."
+msgstr ""
+"Ação a ser tomada quando um membro moderado posta para\n"
+" a lista."
+
+#: Mailman/Gui/Privacy.py:210
+msgid ""
+"<ul><li><b>Hold</b> -- this holds the message for approval\n"
+" by the list moderators.\n"
+"\n"
+" <p><li><b>Reject</b> -- this automatically rejects the message "
+"by\n"
+" sending a bounce notice to the post's author. The text of the\n"
+" bounce notice can be <a\n"
+" href=\"?VARHELP=privacy/sender/member_moderation_notice\"\n"
+" >configured by you</a>.\n"
+"\n"
+" <p><li><b>Discard</b> -- this simply discards the message, "
+"with\n"
+" no notice sent to the post's author.\n"
+" </ul>"
+msgstr ""
+"<ul><li><b>Segurar</b> -- isto segura a mensagem para aprovação\n"
+" pelos moderadores da lista.\n"
+" <p><li><b>Rejeitar</b> -- isto rejeita automaticamente a mensagem\n"
+" enviando uma notificação bounce para o autor da postagem. O texto\n"
+" da notificação de bounce pode ser \n"
+" <a href=\"?VARHELP=privacy/sender/member_moderation_notice\">\n"
+" configurada por você</a>.\n"
+"\n"
+" <p><li><b>Descartar</b> -- isto simplesmente descarta a mensagem, \n"
+" com uma notificação sendo enviada para o autor da postagem.\n"
+" </ul>"
+
+#: Mailman/Gui/Privacy.py:224
+msgid ""
+"Text to include in any\n"
+" <a href=\"?VARHELP/privacy/sender/member_moderation_action\"\n"
+" >rejection notice</a> to\n"
+" be sent to moderated members who post to this list."
+msgstr ""
+"Texto que será incluindo em qualquer\n"
+" <a href=\"?VARHELP/privacy/sender/member_moderation_action\"\n"
+" >notificação de rejeição</a> para ser enviado a \n"
+" membros moderados quando postar a esta lista."
+
+#: Mailman/Gui/Privacy.py:229
+msgid "Non-member filters"
+msgstr "Filtros de não membros"
+
+#: Mailman/Gui/Privacy.py:232
+msgid ""
+"List of non-member addresses whose postings should be\n"
+" automatically accepted."
+msgstr ""
+"Lista se endereços de não membros no qual as postagens devam \n"
+" ser aceitas automaticamente."
+
+#: Mailman/Gui/Privacy.py:235
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" accepted with no further moderation applied. Add member\n"
+" addresses one per line; start the line with a ^ character to\n"
+" designate a regular expression match."
+msgstr ""
+"As postagens de qualquer destes não membros serão aceitas automaticamente \n"
+" sem nenhuma modificação seguinte aplicada. Adicione um endereço\n"
+" de membro por linha."
+
+#: Mailman/Gui/Privacy.py:241
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" immediately held for moderation."
+msgstr ""
+"Lista de endereços de não membros que as postagens serão\n"
+" postas imediatamente em moderação."
+
+#: Mailman/Gui/Privacy.py:244
+msgid ""
+"Postings from any of these non-members will be immediately\n"
+" and automatically held for moderation by the list moderators.\n"
+" The sender will receive a notification message which will "
+"allow\n"
+" them to cancel their held message. Add member addresses one "
+"per\n"
+" line; start the line with a ^ character to designate a regular\n"
+" expression match."
+msgstr ""
+"Postagem de qualquer um destes membros será imediatamente e automaticamente\n"
+" posto em espera para moderação pelos administradores das listas.\n"
+" O remetente receberá uma mensagem de notificação que lhes\n"
+" permitirão cancelar a mensagem em espera. Adicione endereços de \n"
+" membros um por linha; inicie com um caracter ^ para designar\n"
+" a conferência em uma expressão regular."
+
+#: Mailman/Gui/Privacy.py:252
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" automatically rejected."
+msgstr ""
+"Lista de endereços de não membros que as postagens serão automaticamente\n"
+" rejeitadas."
+
+#: Mailman/Gui/Privacy.py:255
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" rejected. In other words, their messages will be bounced back "
+"to\n"
+" the sender with a notification of automatic rejection. This\n"
+" option is not appropriate for known spam senders; their "
+"messages\n"
+" should be\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >automatically discarded</a>.\n"
+"\n"
+" <p>Add member addresses one per line; start the line with a ^\n"
+" character to designate a regular expression match."
+msgstr ""
+"Postagens para qualquer um destes não membros serão automaticamente \n"
+" rejeitadas. Em outras palavras, suas mensagens serão retornadas\n"
+" para o remetente com uma notificação de rejeição automática. Esta\n"
+" opção não é apropriada para spammers conhecidos; suas mensagens "
+"podem\n"
+" ser <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\">\n"
+" descartadas automaticamente</a>\n"
+"\n"
+" <p>Adicione o endereço de membro, um por linha; começe a linha com \n"
+" um caracter ^ para designar uma conferência com uma expressão\n"
+" regular."
+
+#: Mailman/Gui/Privacy.py:267
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" automatically discarded."
+msgstr ""
+"Lista de endereços de postagens de quem não são membros \n"
+" deverão ser automaticamente descartadas."
+
+#: Mailman/Gui/Privacy.py:270
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" discarded. That is, the message will be thrown away with no\n"
+" further processing or notification. The sender will not "
+"receive\n"
+" a notification or a bounce, however the list moderators can\n"
+" optionally <a href=\"?VARHELP=privacy/sender/"
+"forward_auto_discards\"\n"
+" >receive copies of auto-discarded messages.</a>.\n"
+"\n"
+" <p>Add member addresses one per line; start the line with a ^\n"
+" character to designate a regular expression match."
+msgstr ""
+"Postagem de qualquer um destes não-membros serão automaticamente \n"
+" descartadas. Isto é, s mensagem será descartada sem \n"
+" processamento ou notificação. O remetente não recebera uma\n"
+" notificação ou um bounce, caso contrário os moderadores da lista\n"
+" opdem opcionalmente \n"
+" <a href=\"?VARHELP=privacy/sender/forward_auto_discards\">\n"
+" receber cópias de mensagens descartadas automaticamente</a>.\n"
+"\n"
+" <p>Adiciona endereços de membros, um por linha; inicia a linha com\n"
+" um caracter ^ para designar uma conferência de expressão regular."
+
+#: Mailman/Gui/Privacy.py:282
+msgid ""
+"Action to take for postings from non-members for which no\n"
+" explicit action is defined."
+msgstr ""
+"Ação a ser tomada para postagem de não membros no qual \n"
+" nenhuma ação explicita é definida."
+
+#: Mailman/Gui/Privacy.py:285
+msgid ""
+"When a post from a non-member is received, the message's\n"
+" sender is matched against the list of explicitly\n"
+" <a href=\"?VARHELP=privacy/sender/accept_these_nonmembers\"\n"
+" >accepted</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/hold_these_nonmembers\">held</"
+"a>,\n"
+" <a href=\"?VARHELP=privacy/sender/reject_these_nonmembers\"\n"
+" >rejected</a> (bounced), and\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >discarded</a> addresses. If no match is found, then this "
+"action\n"
+" is taken."
+msgstr ""
+"Quando uma postagem para uma pessoa que não é membro é recebida, o \n"
+" remetente da mensagem é conferido sobre a lista de \n"
+" <a href=\"?VARHELP=privacy/sender/accept_these_nonmembers\">aceito</"
+"a>\n"
+" <a href=\"?VARHELP=privacy/sender/hold_these_nonmembers\">por em "
+"espera</a>\n"
+" <a href=\"?VARHELP=privacy/sender/reject_these_nonmembers"
+"\">rejeitado</a>\n"
+" e <a href=\\\"?VARHELP=privacy/sender/discard_these_nonmembers\\\"\\n"
+"\"\n"
+"\" >descartados</a>. Se nenhuma conferência for encontrada, "
+"então\n"
+" esta ação é tomada.\n"
+" "
+
+#: Mailman/Gui/Privacy.py:297
+msgid ""
+"Should messages from non-members, which are automatically\n"
+" discarded, be forwarded to the list moderator?"
+msgstr ""
+"As mensagens para os não-membros, que são automaticamente descartadas,\n"
+" devem ser redirecionadas ao moderador da lista."
+
+#: Mailman/Gui/Privacy.py:303
+msgid ""
+"This section allows you to configure various filters based on\n"
+" the recipient of the message."
+msgstr ""
+"Esta seção lhe permite configurar vários filtros baseados no \n"
+" destinatário da mensagem."
+
+#: Mailman/Gui/Privacy.py:306
+msgid "Recipient filters"
+msgstr "Filtros de Recipientes"
+
+#: Mailman/Gui/Privacy.py:310
+msgid ""
+"Must posts have list named in destination (to, cc) field\n"
+" (or be among the acceptable alias names, specified below)?"
+msgstr ""
+"Os posts devem ter o nome da lista no campo destino (to, cc) da lista\n"
+" (ou estar junto de nomes de aliases, especificados abaixo)?"
+
+#: Mailman/Gui/Privacy.py:313
+msgid ""
+"Many (in fact, most) spams do not explicitly name their\n"
+" myriad destinations in the explicit destination addresses - in\n"
+" fact often the To: field has a totally bogus address for\n"
+" obfuscation. The constraint applies only to the stuff in the\n"
+" address before the '@' sign, but still catches all such spams.\n"
+"\n"
+" <p>The cost is that the list will not accept unhindered any\n"
+" postings relayed from other addresses, unless\n"
+"\n"
+" <ol>\n"
+" <li>The relaying address has the same name, or\n"
+"\n"
+" <li>The relaying address name is included on the options "
+"that\n"
+" specifies acceptable aliases for the list.\n"
+"\n"
+" </ol>"
+msgstr ""
+"Muitos spams (de fato, muitos) não nomeiam explicitamente seus\n"
+" endereços de destinos - de fato frequentemente o campo To:\n"
+" tem um endereço totalmente falso para despistar. Isso se \n"
+" aplica somente a materiais no endereço antes do sinal '@', ams \n"
+" ainda pega todos spams.\n"
+"\n"
+" <p>O custo é que a lista não aceitará desocultar quaisquer\n"
+" postagens repassada por outros endereços, a não ser que\n"
+" <ol>\n"
+" <li>O endereço que está repassado tem o mesmo nome, ou\n"
+" <li>O nome do endereço está incluido nas opçòes que\n"
+" especificam o apelido aceitável para a lista\n"
+" </ol>"
+
+#: Mailman/Gui/Privacy.py:331
+msgid ""
+"Alias names (regexps) which qualify as explicit to or cc\n"
+" destination names for this list."
+msgstr ""
+"Nomes aliases (expressões) que qualificam os nomes de destinos \n"
+" to e cc para esta lista."
+
+#: Mailman/Gui/Privacy.py:334
+msgid ""
+"Alternate addresses that are acceptable when\n"
+" `require_explicit_destination' is enabled. This option takes "
+"a\n"
+" list of regular expressions, one per line, which is matched\n"
+" against every recipient address in the message. The matching "
+"is\n"
+" performed with Python's re.match() function, meaning they are\n"
+" anchored to the start of the string.\n"
+" \n"
+" <p>For backwards compatibility with Mailman 1.1, if the regexp\n"
+" does not contain an `@', then the pattern is matched against "
+"just\n"
+" the local part of the recipient address. If that match fails, "
+"or\n"
+" if the pattern does contain an `@', then the pattern is "
+"matched\n"
+" against the entire recipient address.\n"
+" \n"
+" <p>Matching against the local part is deprecated; in a future\n"
+" release, the pattern will always be matched against the entire\n"
+" recipient address."
+msgstr ""
+"Endereços alternativos que são aceitos quando\n"
+" a opção 'require_explicit_expressions' for ativada. Esta opção pega\n"
+" uma lista de expressões regulares, uma por linha, que confere \n"
+" contra cada endereço de recipiente na mensagem. A conferência é\n"
+" feita com a função do Python re.match(), significando que eles \n"
+" são ancorado no inicio da string.\n"
+"\n"
+" <p>Para compatibilidade anterior com o Mailman 1.1, caso a \n"
+" expressão não contenha uma '@', então o padrão confere denovo \n"
+" apenas com a parte local do endereço do recipiente. Se aquela\n"
+" conferência falha, ou se o padrão não contém uma '@', , então o\n"
+" padrão é checado novamente contra todo o endereço de recipiente.\n"
+"\n"
+" <p>Conferindo novamente com a parte local é uma forma \n"
+" depreciada; em um lançamento futuro, o padrão conferirá novamente\n"
+" contra todo o endereço do recipiente."
+
+#: Mailman/Gui/Privacy.py:352
+msgid "Ceiling on acceptable number of recipients for a posting."
+msgstr "Pondo um limite aceitável no número de recipientes para postagem."
+
+#: Mailman/Gui/Privacy.py:354
+msgid ""
+"If a posting has this number, or more, of recipients, it is\n"
+" held for admin approval. Use 0 for no ceiling."
+msgstr ""
+"Se uma postagem tiver este número, ou mais, de recipientes, ele será\n"
+" posto em espera para aprovação administrativa. Use 0 para \n"
+" acabar com este limite."
+
+#: Mailman/Gui/Privacy.py:359
+msgid ""
+"This section allows you to configure various anti-spam\n"
+" filters posting filters, which can help reduce the amount of "
+"spam\n"
+" your list members end up receiving.\n"
+" "
+msgstr ""
+"Esta seção lhe permite configurar vários filtros para postagem anti-spam, \n"
+" que podem ajudar a reduzir aquantidade de spam de seus membros \n"
+" da lista durante seu recebimento."
+
+#: Mailman/Gui/Privacy.py:364
+msgid "Anti-Spam filters"
+msgstr "Filtrons anti-spam"
+
+#: Mailman/Gui/Privacy.py:367
+msgid "Hold posts with header value matching a specified regexp."
+msgstr ""
+"Segurar postagens com o valor de cabeçalho conferindo com uma expressão "
+"específica."
+
+#: Mailman/Gui/Privacy.py:368
+msgid ""
+"Use this option to prohibit posts according to specific\n"
+" header values. The target value is a regular-expression for\n"
+" matching against the specified header. The match is done\n"
+" disregarding letter case. Lines beginning with '#' are "
+"ignored\n"
+" as comments.\n"
+"\n"
+" <p>For example:<pre>to: .*@public.com </pre> says to hold all\n"
+" postings with a <em>To:</em> mail header containing '@public."
+"com'\n"
+" anywhere among the addresses.\n"
+"\n"
+" <p>Note that leading whitespace is trimmed from the regexp. "
+"This\n"
+" can be circumvented in a number of ways, e.g. by escaping or\n"
+" bracketing it."
+msgstr ""
+"Use esta opção para proibir postagens de acord com valores \n"
+" específicos de cabeçalhos. O valor alvo é uma expressão\n"
+" regular para conferir novamente com o cabeçalho específico.\n"
+" A conferência é feita descartando a capitalização. As linhas\n"
+" começando com um '#' são ignoradas como comentários.\n"
+"\n"
+" <p>Por exemplo:<pre>to: .*@public.com</pre> diz para segurar \n"
+" todas as postagens com o cabeçalho de email <em>To:</em> \n"
+" contendo '@public.com' em qualquer lugar do endereço.\n"
+"\n"
+" <p>Note que os espaços em branco restantes são retirados pela\n"
+" expressão regular. Isto pode ser feito por uma variedade de \n"
+" métodos e.g. fazendo escape ou colocando-o entre chaves.\n"
+"\n"
+" <p>Veja também a opção <em>forbidden_posters</em> para um mecanismo\n"
+" relacionado."
+
+#: Mailman/Gui/Topics.py:28
+msgid "Topics"
+msgstr "Tópicos"
+
+#: Mailman/Gui/Topics.py:36
+msgid "List topic keywords"
+msgstr "Lista de chaves de tópico"
+
+#: Mailman/Gui/Topics.py:38
+msgid "Disabled"
+msgstr "Desativado"
+
+#: Mailman/Gui/Topics.py:38
+msgid "Enabled"
+msgstr "Ativado"
+
+#: Mailman/Gui/Topics.py:39
+msgid "Should the topic filter be enabled or disabled?"
+msgstr "O filtro de tópico deverá estar ativado ou desativado?"
+
+#: Mailman/Gui/Topics.py:41
+msgid ""
+"The topic filter categorizes each incoming email message\n"
+" according to <a\n"
+" href=\"http://www.python.org/doc/current/lib/module-re.html"
+"\">regular\n"
+" expression filters</a> you specify below. If the message's\n"
+" <code>Subject:</code> or <code>Keywords:</code> header contains "
+"a\n"
+" match against a topic filter, the message is logically placed\n"
+" into a topic <em>bucket</em>. Each user can then choose to "
+"only\n"
+" receive messages from the mailing list for a particular topic\n"
+" bucket (or buckets). Any message not categorized in a topic\n"
+" bucket registered with the user is not delivered to the list.\n"
+"\n"
+" <p>Note that this feature only works with regular delivery, "
+"not\n"
+" digest delivery.\n"
+"\n"
+" <p>The body of the message can also be optionally scanned for\n"
+" <code>Subject:</code> and <code>Keywords:</code> headers, as\n"
+" specified by the <a\n"
+" href=\"?VARHELP=topics/topics_bodylines_limit"
+"\">topics_bodylines_limit</a>\n"
+" configuration variable."
+msgstr ""
+"O filtro de tópico categoriza cada mensagem de entrada de \n"
+" acordo com \n"
+" href=\"http://www.python.org/doc/current/lib/module-re.html"
+"\">filtros\n"
+" de expressões regulares</a> que poderá especificar abaixo. \n"
+" caso o cabeçalho <code>Subject:</code> ou <code>Keywords:</code> "
+"da \n"
+" mensagem contém uam conferência sobre o filtro de tópico, a "
+"mensagem\n"
+" é lógicamente colocada em espera de tópico. Cada uusário pode então\n"
+" escolher somente receber mensagens de lista de discussão de um\n"
+" conjunto de tópico particular. Qualquer mensagem não categorizada\n"
+" em um conjunto de tópico registrado com o usuário não é entregue\n"
+" para a lista.\n"
+"\n"
+" <p>Note que esta característica somente funciona eom entregas \n"
+" regulares, não com entregas em digest.\n"
+"\n"
+" <p>O corpo da mensagem também poderá ser scaneada em busca dos\n"
+" cabeçalhos <code>Subject:</code> e <code>Keyworks:</code>.\n"
+" Variável de configuração\n"
+" <a href=\"?VARHELP=topics/topics_bodylines_limit"
+"\">topics_bodylines_limit</a>."
+
+#: Mailman/Gui/Topics.py:62
+msgid "How many body lines should the topic matcher scan?"
+msgstr ""
+"Quantas linhas de corpo de mensagem o scaneador de tópico deverá conferir."
+
+#: Mailman/Gui/Topics.py:64
+msgid ""
+"The topic matcher will scan this many lines of the message\n"
+" body looking for topic keyword matches. Body scanning stops "
+"when\n"
+" either this many lines have been looked at, or a non-header-"
+"like\n"
+" body line is encountered. By setting this value to zero, no "
+"body\n"
+" lines will be scanned (i.e. only the <code>Keywords:</code> "
+"and\n"
+" <code>Subject:</code> headers will be scanned). By setting "
+"this\n"
+" value to a negative number, then all body lines will be "
+"scanned\n"
+" until a non-header-like line is encountered.\n"
+" "
+msgstr ""
+"O verificador de tópico procurará quantas linhas do corpo da mensagem \n"
+" procurando por conferência de tópicos. A verificação do corpo da\n"
+" mensagem para quando ou quantas linhas de mensagem foram procuradas\n"
+" ou em uma linha de corpo que não se assemelham com o cabeçalho são\n"
+" encontradas. Ajustando este valor para zero, nenhuma linha de \n"
+" corpo de mensagem será buscada (i.e. somente os cabeçalhos\n"
+" <code>Keywords:</code> e <code>Subject</code> serão procurados). \n"
+" Ajustando este valor para um número negativo, então todas as \n"
+" linhas de corpo da mensagem serão scaneadas até que uma linha\n"
+" que não se pareça com um cabeçalho seja encontrada."
+
+#: Mailman/Gui/Topics.py:75
+msgid "Topic keywords, one per line, to match against each message."
+msgstr "Chaves de tópico, uma por linha, para conferir contra cada mensagem."
+
+#: Mailman/Gui/Topics.py:77
+msgid ""
+"Each topic keyword is actually a regular expression, which is\n"
+" matched against certain parts of a mail message, specifically "
+"the\n"
+" <code>Keywords:</code> and <code>Subject:</code> message "
+"headers.\n"
+" Note that the first few lines of the body of the message can "
+"also\n"
+" contain a <code>Keywords:</code> and <code>Subject:</code>\n"
+" \"header\" on which matching is also performed."
+msgstr ""
+"Cada chave de tópico é atualmente uma expressão regular, que é\n"
+" conferida contra certas partes da mensagem d eemail, "
+"especificamente\n"
+" os cabeçalhos da mensagem <code>Keywords:</code> e \n"
+" <code>Subject:</code>.\n"
+" Note que as primeiras poucas linhas do corpo da mensagem podem \n"
+" também conter um cabeçalho <code>Keywords:</code> e \n"
+" <code>Subject:</code> que a conferência também é feita."
+
+#: Mailman/Gui/Topics.py:116
+msgid ""
+"Topic specifications require both a name and\n"
+" a pattern. Incomplete topics will be ignored."
+msgstr ""
+"Especificaços de tópico requerem ambos um nome e um padrão.\n"
+" Tópicos incompletos serão ignorados."
+
+#: Mailman/Gui/Topics.py:124
+msgid ""
+"The topic pattern `%(pattern)s' is not a\n"
+" legal regular expression. It will be discarded."
+msgstr ""
+"O padrão de tópico '%(pattern)s' não é uma expressão regular\n"
+" legal. Ela será descartada."
+
+#: Mailman/Gui/Usenet.py:25
+msgid "Mail&lt;-&gt;News&nbsp;gateways"
+msgstr "gateways&nbspMail&lt;-&gt;News"
+
+#: Mailman/Gui/Usenet.py:35
+msgid "Mail-to-News and News-to-Mail gateway services."
+msgstr "Serviços de gateway Email-para-News e News-para-Email"
+
+#: Mailman/Gui/Usenet.py:37
+msgid "News server settings"
+msgstr "Configurações do servidor de News"
+
+#: Mailman/Gui/Usenet.py:40
+msgid ""
+"The Internet address of the machine your News server is\n"
+" running on."
+msgstr ""
+"O endereço internete da máquina em que seu servidor news está\n"
+" sendo executado."
+
+#: Mailman/Gui/Usenet.py:42
+msgid ""
+"The News server is not part of Mailman proper. You have to\n"
+" already have access to a NNTP server, and that NNTP server has "
+"to\n"
+" recognize the machine this mailing list runs on as a machine\n"
+" capable of reading and posting news."
+msgstr ""
+"O servidor de news não é parte propriamente do Mailman. Você já precisará\n"
+" ter acesso a um servidor NNTP, e aquele servidor NNTP terá que\n"
+" reconhecer a máquina que roda esta lista de discussão como uma\n"
+" máquina capaz de ler e postar notícias."
+
+#: Mailman/Gui/Usenet.py:48
+msgid "The name of the Usenet group to gateway to and/or from."
+msgstr "O nome do grupo Usenet para fazer/receber ligação."
+
+#: Mailman/Gui/Usenet.py:51
+msgid ""
+"Should new posts to the mailing list be sent to the\n"
+" newsgroup?"
+msgstr ""
+"As novas postagens para a lista de discussão devem ser enviadas para\n"
+" um grupo de notícias?"
+
+#: Mailman/Gui/Usenet.py:55
+msgid ""
+"Should new posts to the newsgroup be sent to the mailing\n"
+" list?"
+msgstr ""
+"As novas postagens para grupos de noticias devem ser enviadas para uma\n"
+" lista de discussão?"
+
+#: Mailman/Gui/Usenet.py:58
+msgid "Forwarding options"
+msgstr "Opções de Redirecionamento"
+
+#: Mailman/Gui/Usenet.py:61
+msgid "Moderated"
+msgstr "Moderada"
+
+#: Mailman/Gui/Usenet.py:61
+msgid "Open list, moderated group"
+msgstr "Lista aberta, grupo moderado"
+
+#: Mailman/Gui/Usenet.py:64
+msgid "The moderation policy of the newsgroup."
+msgstr "A politica de moderação do newsgroup."
+
+#: Mailman/Gui/Usenet.py:66
+msgid ""
+"This setting determines the moderation policy of the\n"
+" newsgroup and its interaction with the moderation policy of "
+"the\n"
+" mailing list. This only applies to the newsgroup that you are\n"
+" gatewaying <em>to</em>, so if you are only gatewaying from\n"
+" Usenet, or the newsgroup you are gatewaying to is not "
+"moderated,\n"
+" set this option to <em>None</em>.\n"
+"\n"
+" <p>If the newsgroup is moderated, you can set this mailing "
+"list\n"
+" up to be the moderation address for the newsgroup. By "
+"selecting\n"
+" <em>Moderated</em>, an additional posting hold will be placed "
+"in\n"
+" the approval process. All messages posted to the mailing list\n"
+" will have to be approved before being sent on to the "
+"newsgroup,\n"
+" or to the mailing list membership.\n"
+"\n"
+" <p><em>Note that if the message has an <tt>Approved</tt> "
+"header\n"
+" with the list's administrative password in it, this hold test\n"
+" will be bypassed, allowing privileged posters to send messages\n"
+" directly to the list and the newsgroup.</em>\n"
+"\n"
+" <p>Finally, if the newsgroup is moderated, but you want to "
+"have\n"
+" an open posting policy anyway, you should select <em>Open "
+"list,\n"
+" moderated group</em>. The effect of this is to use the normal\n"
+" Mailman moderation facilities, but to add an <tt>Approved</tt>\n"
+" header to all messages that are gatewayed to Usenet."
+msgstr ""
+"Esta configuração determina a politica de moderação do\n"
+" newgroup e sua interação com a politica de moderação da\n"
+" lista de discussão. Isto somente se aplica para o nesgroup\n"
+" que voce está redirecionando mensagnes, assim caso esteja\n"
+" somente fazendo gateway da Usenet, ou se o newsgroup que \n"
+" está fazenod gateway não é mdoerado, configure esta opção\n"
+" para <em>None</em>.\n"
+"\n"
+" <p>Caso o newsgroup seja moderado, você poderá ajustar\n"
+" esta lista de discussão para ser o endereço de moderação \n"
+" para o newsgroups. Selecionando <em>Moderado</em>,\n"
+" mais um local será colocado para segurar a mensagem no \n"
+" processo de aprovação. Todas as mensagens postadas para\n"
+" a lista de discussão deverão ser aprovadas antes de serem\n"
+" postadas no newsgroup, ou para os membros da lista de \n"
+" discussão.\n"
+"\n"
+" <p><em>Note que se a mensagem possui um cabeçalho\n"
+" <tt>Approved</tt> com a senha administrativa \n"
+" da lista nela, esta espera é pulada, permitindo\n"
+" usuários privilegiados com direitos de postagem enviar\n"
+" mensagens diretamente para a lista e para o newsgroup.</em>\n"
+"\n"
+" <p>Finalmente, caso o newsgroup seja moderado, mas \n"
+" deseje ter uma politica de postagem aberta mesmo assim, você\n"
+" deve selecionar <em>Lista aberta, grupo moderado</em>. O \n"
+" efeito disso é a utilização das facilidades normais de \n"
+" moderação do Mailman, exceto adicionar um cabeçalho\n"
+" <tt>Approved</tt> para todas as mensagens que direcionar\n"
+" para a Usenet."
+
+#: Mailman/Gui/Usenet.py:92
+msgid "Prefix <tt>Subject:</tt> headers on postings gated to news?"
+msgstr ""
+"Colocar o prefixo <tt>Subject:</tt> em postagens direcionadas para news?"
+
+#: Mailman/Gui/Usenet.py:93
+msgid ""
+"Mailman prefixes <tt>Subject:</tt> headers with\n"
+" <a href=\"?VARHELP=general/subject_prefix\">text you can\n"
+" customize</a> and normally, this prefix shows up in messages\n"
+" gatewayed to Usenet. You can set this option to <em>No</em> "
+"to\n"
+" disable the prefix on gated messages. Of course, if you turn "
+"off\n"
+" normal <tt>Subject:</tt> prefixes, they won't be prefixed for\n"
+" gated messages either."
+msgstr ""
+"<O mailman prefixa os cabeçalhos <tt>Subject:</tt> com\n"
+" <a href=\"?VARHELP=general/subject_prefix\">o texto que quiser\n"
+" personalizar</a> e normalmente, este prefixo é mostrado\n"
+" em mensagens enviadas a Usenet. Você pode ajustar esta opção\n"
+" para <em>Não</em> para desativar o prefixo em mensagens \n"
+" direcionadas para a Usenet. Você pode ajustar esta opção para\n"
+" <em>Não</em> e desativar o prefixo em mensagens "
+"redirecionadas.\n"
+" É claro, se desativar o prefixo <tt>Subject:</tt> normal, \n"
+" elas não serão prefixadas para mensagens direcionadas."
+
+#: Mailman/Gui/Usenet.py:101
+msgid "Mass catch up"
+msgstr "Catch up em massa"
+
+#: Mailman/Gui/Usenet.py:104
+msgid "Should Mailman perform a <em>catchup</em> on the newsgroup?"
+msgstr "O mailman deverá fazer um <em>catchup</em> do grupo de notícias?"
+
+#: Mailman/Gui/Usenet.py:105
+msgid ""
+"When you tell Mailman to perform a catchup on the newsgroup,\n"
+" this means that you want to start gating messages to the "
+"mailing\n"
+" list with the next new message found. All earlier messages on\n"
+" the newsgroup will be ignored. This is as if you were reading\n"
+" the newsgroup yourself, and you marked all current messages as\n"
+" <em>read</em>. By catching up, your mailing list members will\n"
+" not see any of the earlier messages."
+msgstr ""
+"Quando você diz para o Mailman fazer um catchup do grupo de notícias,\n"
+" isto significa que deseja iniciar a obtenção de mensagens para a\n"
+" lista de discussão quando a próxima mensagem for encontrada. Todas\n"
+" as mensagens anteiorires no newsgrupo serão ignoradas. Isto é como\n"
+" se você estivesse lendo o grupo de notícias por si próprio \n"
+" e marcou todas as mensagens atuais como <em>lidas</em>. Fazendo "
+"isto\n"
+" todos os membros das lista de discussão não verão qualquer mensagem\n"
+" anterior."
+
+#: Mailman/Gui/Usenet.py:119
+msgid "Mass catchup completed"
+msgstr "Catchup em massa completado"
+
+#: Mailman/Gui/Usenet.py:131
+msgid ""
+"You cannot enable gatewaying unless both the\n"
+" <a href=\"?VARHELP=gateway/nntp_host\">news server field</a> "
+"and\n"
+" the <a href=\"?VARHELP=gateway/linked_newsgroup\">linked\n"
+" newsgroup</a> fields are filled in."
+msgstr ""
+"Você pode ativar o redirecionamento a não ser que os campos\n"
+" <a href=\"?VARHELP=gateway/nntp_host\">servidor news</a> \n"
+"e\n"
+" e <a href=\"?VARHELP=gateway/linked_newsgroup\">newsgroups\n"
+" ligados</a> estejam preenchidos."
+
+#: Mailman/HTMLFormatter.py:47
+msgid "%(listinfo_link)s list run by %(owner_link)s"
+msgstr "A lista %(listinfo_link)s é executada por %(owner_link)s"
+
+#: Mailman/HTMLFormatter.py:55
+msgid "%(realname)s administrative interface"
+msgstr "interface administrativa %(realname)s"
+
+#: Mailman/HTMLFormatter.py:56
+msgid " (requires authorization)"
+msgstr " (requer autorização)"
+
+#: Mailman/HTMLFormatter.py:59
+msgid "Overview of all %(hostname)s mailing lists"
+msgstr "Visão de todas as lista de discussão em %(hostname)s"
+
+#: Mailman/HTMLFormatter.py:80
+msgid "<em>(1 private member not shown)</em>"
+msgstr "<em>(1 membro privado não exibido)</em>"
+
+#: Mailman/HTMLFormatter.py:82
+msgid "<em>(%(num_concealed)d private members not shown)</em>"
+msgstr "<em>(%(num_concealed)d de membros privados não mostrados)</em>"
+
+#: Mailman/HTMLFormatter.py:137
+msgid "; it was disabled by you"
+msgstr "; foi desativado por você"
+
+#: Mailman/HTMLFormatter.py:139
+msgid "; it was disabled by the list administrator"
+msgstr "; foi desativado pelo administrador da lista"
+
+#: Mailman/HTMLFormatter.py:143
+msgid ""
+"; it was disabled due to excessive bounces. The\n"
+" last bounce was received on %(date)s"
+msgstr ""
+"; foi desativado por retornos excessivos. O último retorno de mensagem \n"
+"foi recebido em %(date)s"
+
+#: Mailman/HTMLFormatter.py:146
+msgid "; it was disabled for unknown reasons"
+msgstr "; foio desativado por razões desconhecidas"
+
+#: Mailman/HTMLFormatter.py:148
+msgid "Note: your list delivery is currently disabled%(reason)s."
+msgstr "Nota: a entrega de sua lista está atualmente desativada%(reason)s."
+
+#: Mailman/HTMLFormatter.py:151
+msgid "Mail delivery"
+msgstr "Entrega de Email"
+
+#: Mailman/HTMLFormatter.py:153 Mailman/HTMLFormatter.py:298
+msgid "the list administrator"
+msgstr "o administrador da lista"
+
+#: Mailman/HTMLFormatter.py:154
+msgid ""
+"<p>%(note)s\n"
+"\n"
+" <p>You may have disabled list delivery intentionally,\n"
+" or it may have been triggered by bounces from your email\n"
+" address. In either case, to re-enable delivery, change the\n"
+" %(link)s option below. Contact %(mailto)s if you have any\n"
+" questions or need assistance."
+msgstr ""
+"<p>%(note)s\n"
+"\n"
+" <p>Você pode ter que desativar a entrega desta lista "
+"intencionalmente,\n"
+" ou pode ser bombardeado por bounces de seu endereço de email.\n"
+" Em todo caso, para reativar a entrega, modifique a opção de %(link)"
+"s\n"
+" abaixo. Contacte %(mailto)s se tiver quaisquer questões ou precisar\n"
+" de assistência."
+
+#: Mailman/HTMLFormatter.py:166
+msgid ""
+"<p>We have received some recent bounces from your\n"
+" address. Your current <em>bounce score</em> is %(score)s out of "
+"a\n"
+" maximum of %(total)s. Please double check that your subscribed\n"
+" address is correct and that there are no problems with delivery "
+"to\n"
+" this address. Your bounce score will be automatically reset if\n"
+" the problems are corrected soon."
+msgstr ""
+"<p>Nós recebemos alguns bounces recentes de seu endereço.\n"
+" Sua pontuação atual de bounce é %(score)s do total de \n"
+" %(total)s. Por favor verifique novamente se seu endereço de \n"
+" inscrição está correto e que não existem problemas com a \n"
+" entrega para este endereço. Sua pontuação de retorno será\n"
+" automaticamente resetada se os problemas forem corrigidos em \n"
+" breve."
+
+#: Mailman/HTMLFormatter.py:178
+msgid ""
+"(Note - you are subscribing to a list of mailing lists, so the %(type)s "
+"notice will be sent to the admin address for your membership, %(addr)s.)<p>"
+msgstr ""
+"(Nota - se estiver se inscrevendo para uma lista de listas de discussão, \n"
+" assim a notificácã do tipo %(type)s será enviada par ao endereço\n"
+" administrativo de su membro, %(addr)s.)<p>"
+
+#: Mailman/HTMLFormatter.py:188
+msgid ""
+"You will be sent email requesting confirmation, to\n"
+" prevent others from gratuitously subscribing you."
+msgstr ""
+"Lhe será enviada um email requsiitando confirmação, prevenindo que outros\n"
+" inscrevam você gratuitamente."
+
+#: Mailman/HTMLFormatter.py:191
+msgid ""
+"This is a closed list, which means your subscription\n"
+" will be held for approval. You will be notified of the list\n"
+" moderator's decision by email."
+msgstr ""
+"Esta é uma lista fechada, que significa que sua inscrição será posta em\n"
+" aprovação. Você será notificado pela decisão do moderador da llista\n"
+" por email."
+
+#: Mailman/HTMLFormatter.py:194 Mailman/HTMLFormatter.py:201
+msgid "also "
+msgstr "também "
+
+#: Mailman/HTMLFormatter.py:196
+msgid ""
+"You will be sent email requesting confirmation, to\n"
+" prevent others from gratuitously subscribing you. Once\n"
+" confirmation is received, your request will be held for "
+"approval\n"
+" by the list moderator. You will be notified of the moderator's\n"
+" decision by email."
+msgstr ""
+"Será lha enviada uma requisição de confirmação para prevenir que outros\n"
+" o inscrevam sem sua permissão. Uma vez que a confirmação for "
+"recebida,\n"
+" sua requisição será posta para aprovação pelo moderador da lista. \n"
+" Você será notificado da decisão do moderador por email."
+
+#: Mailman/HTMLFormatter.py:205
+msgid ""
+"This is %(also)sa private list, which means that the\n"
+" list of members is not available to non-members."
+msgstr ""
+"Esta é %(also)suma lista privada, que significa que a lista de membros \n"
+" não está disponível para não-membros."
+
+#: Mailman/HTMLFormatter.py:208
+msgid ""
+"This is %(also)sa hidden list, which means that the\n"
+" list of members is available only to the list administrator."
+msgstr ""
+"Esta é %(also)s uma lista oculta, que significa que a lista de membros\n"
+" está somente disponível para o administrador da lista."
+
+#: Mailman/HTMLFormatter.py:211
+msgid ""
+"This is %(also)sa public list, which means that the\n"
+" list of members list is available to everyone."
+msgstr ""
+"Esta é %(also)suma lista pública, que significa que a lista\n"
+" de membros está disponível para qualquer um."
+
+#: Mailman/HTMLFormatter.py:214
+msgid ""
+" (but we obscure the addresses so they are not\n"
+" easily recognizable by spammers)."
+msgstr ""
+"(mas nós tornamos o endereço obscuro para que não sejam\n"
+" reconhecidos por spammers)."
+
+#: Mailman/HTMLFormatter.py:219
+msgid ""
+"<p>(Note that this is an umbrella list, intended to\n"
+" have only other mailing lists as members. Among other things,\n"
+" this means that your confirmation request will be sent to the\n"
+" `%(sfx)s' account for your address.)"
+msgstr ""
+"<p>(Note que esta é uma lista protegida, que tem a intenção de ter somente \n"
+" outra lista de discussão como membros. Entre outras coisas,\n"
+" isto significa que sua requisição de confirmação será enviada \n"
+" para a conta '%(sfx)s' do seu endereço.)"
+
+#: Mailman/HTMLFormatter.py:248
+msgid "<b><i>either</i></b> "
+msgstr "<b><i>ou</i></b>"
+
+#: Mailman/HTMLFormatter.py:253
+msgid ""
+"To unsubscribe from %(realname)s, get a password reminder,\n"
+" or change your subscription options %(either)senter your "
+"subscription\n"
+" email address:\n"
+" <p><center> "
+msgstr ""
+"Para se desinscrever de %(realname)s, pegue o lembrete de senha ou\n"
+" modifique suas opções de inscrição %(either)sentre com seu \n"
+" endereço de email de inscrição:"
+
+#: Mailman/HTMLFormatter.py:260
+msgid "Unsubscribe or edit options"
+msgstr "Desinscrever-se ou editar opções"
+
+#: Mailman/HTMLFormatter.py:264
+msgid ""
+"<p>... <b><i>or</i></b> select your entry from\n"
+" the subscribers list (see above)."
+msgstr ""
+"<p>... <b><i>or</i></b> selecione um item\\n\n"
+" da lista de inscritos (veja acima)."
+
+#: Mailman/HTMLFormatter.py:266
+msgid ""
+" If you leave the field blank, you will be prompted for\n"
+" your email address"
+msgstr ""
+"Caso deixar o campo em branco, será requisitado seu enderéco de \n"
+" email"
+
+#: Mailman/HTMLFormatter.py:274
+msgid ""
+"(<i>%(which)s is only available to the list\n"
+" members.</i>)"
+msgstr ""
+"(<i>O%(which)s somente está disponível para a lista\n"
+" de membros.</i>)"
+
+#: Mailman/HTMLFormatter.py:278
+msgid ""
+"(<i>%(which)s is only available to the list\n"
+" administrator.</i>)"
+msgstr ""
+"(<i>O%(which)s somente está disponível ao\n"
+" administrador da lista.</i>)"
+
+#: Mailman/HTMLFormatter.py:288
+msgid "Click here for the list of "
+msgstr "Clique aqui para uma lista de "
+
+#: Mailman/HTMLFormatter.py:290
+msgid " subscribers: "
+msgstr " inscritos: "
+
+#: Mailman/HTMLFormatter.py:292
+msgid "Visit Subscriber list"
+msgstr "Visitar a lista de inscritos"
+
+#: Mailman/HTMLFormatter.py:295
+msgid "members"
+msgstr "membros"
+
+#: Mailman/HTMLFormatter.py:296
+msgid "Address:"
+msgstr "Endereço:"
+
+#: Mailman/HTMLFormatter.py:299
+msgid "Admin address:"
+msgstr "Endereço administrativo:"
+
+#: Mailman/HTMLFormatter.py:302
+msgid "The subscribers list"
+msgstr "Para a lista de inscritos"
+
+#: Mailman/HTMLFormatter.py:304
+msgid " <p>Enter your "
+msgstr "<p>ENtre com seu "
+
+#: Mailman/HTMLFormatter.py:306
+msgid " and password to visit the subscribers list: <p><center> "
+msgstr " e senha para visitar a lista de inscritos: <p><center>"
+
+#: Mailman/HTMLFormatter.py:311
+msgid "Password: "
+msgstr "Senha: "
+
+#: Mailman/HTMLFormatter.py:315
+msgid "Visit Subscriber List"
+msgstr "Visitar a lista de inscritos"
+
+#: Mailman/HTMLFormatter.py:345
+msgid "Once a month, your password will be emailed to you as a reminder."
+msgstr "Uma vez por mes, sua senha será lhe enviada como lembrete."
+
+#: Mailman/HTMLFormatter.py:391
+msgid "The current archive"
+msgstr "O arquivo atual"
+
+#: Mailman/Handlers/Acknowledge.py:59
+msgid "%(realname)s post acknowledgement"
+msgstr "reconhecimento de postagem de %(realname)s"
+
+#: Mailman/Handlers/CalcRecips.py:68
+msgid ""
+"Your urgent message to the %(realname)s mailing list was not authorized for\n"
+"delivery. The original message as received by Mailman is attached.\n"
+msgstr ""
+"Sua mensagem urgente para a lista de discussão %(realname)s não foi \n"
+"autorizada para entrega. A mensagem original na forma que foi recebida\n"
+"pelo Mailman está em anexo.\n"
+
+#: Mailman/Handlers/Emergency.py:29
+msgid "Emergency hold on all list traffic is in effect"
+msgstr "Contenção de emergência do tráfego desta lista está em efeito"
+
+#: Mailman/Handlers/Emergency.py:30 Mailman/Handlers/Hold.py:58
+msgid "Your message was deemed inappropriate by the moderator."
+msgstr "Sua mensagem foi avaliada de forma inapropriada pelo moderador."
+
+#: Mailman/Handlers/Hold.py:53
+msgid "Sender is explicitly forbidden"
+msgstr "O remetente está explicitamente proibido"
+
+#: Mailman/Handlers/Hold.py:54
+msgid "You are forbidden from posting messages to this list."
+msgstr "Você não tem permissão para postar mensagens para esta lista"
+
+#: Mailman/Handlers/Hold.py:57
+msgid "Post to moderated list"
+msgstr "Postar para uma lista moderada"
+
+#: Mailman/Handlers/Hold.py:61
+msgid "Post by non-member to a members-only list"
+msgstr "Postagem por não membro para uma lista somente de membros"
+
+#: Mailman/Handlers/Hold.py:62
+msgid "Non-members are not allowed to post messages to this list."
+msgstr ""
+"Pessoas não membras não tem permissão de postar mensagens para esta lista."
+
+#: Mailman/Handlers/Hold.py:65
+msgid "Posting to a restricted list by sender requires approval"
+msgstr "A postagem para uma lista restrita por remetente requer aprovação"
+
+#: Mailman/Handlers/Hold.py:66
+msgid "This list is restricted; your message was not approved."
+msgstr "Esta lista é restrita; sua mensagem não foi aprovada."
+
+#: Mailman/Handlers/Hold.py:69
+msgid "Too many recipients to the message"
+msgstr "Muitos destinatários para a mensagem"
+
+#: Mailman/Handlers/Hold.py:70
+msgid "Please trim the recipient list; it is too long."
+msgstr "Por favor divida a lista de destinatários; ela é muito longa"
+
+#: Mailman/Handlers/Hold.py:73
+msgid "Message has implicit destination"
+msgstr "A mensagem tem um destino implícito"
+
+#: Mailman/Handlers/Hold.py:74
+msgid ""
+"Blind carbon copies or other implicit destinations are\n"
+"not allowed. Try reposting your message by explicitly including the list\n"
+"address in the To: or Cc: fields."
+msgstr ""
+"Cópias BCC ou outros destinos implícitos não são permitidos. \n"
+"tente respostar sua mensagem incluindo explicitamente o endereço da \n"
+"lista nos campos To: e Cc:."
+
+#: Mailman/Handlers/Hold.py:79
+msgid "Message may contain administrivia"
+msgstr "A mensagem pode conter questões administrativas."
+
+#: Mailman/Handlers/Hold.py:84
+msgid ""
+"Please do *not* post administrative requests to the mailing\n"
+"list. If you wish to subscribe, visit %(listurl)s or send a message with "
+"the\n"
+"word `help' in it to the request address, %(request)s, for further\n"
+"instructions."
+msgstr ""
+"Por favor não poste requisições administrativas para a lista de \n"
+"discussão. Se desejar se inscrever, visite %(listurl)s ou envie uma \n"
+"mensagem com a palavra 'ajuda' para o endereço de remetente, %(request)s,\n"
+"para mais instruções."
+
+#: Mailman/Handlers/Hold.py:90
+msgid "Message has a suspicious header"
+msgstr "A mensagem contém um cabeçalho suspeito"
+
+#: Mailman/Handlers/Hold.py:91
+msgid "Your message had a suspicious header."
+msgstr "Sua mentem tem um cabeçalho suspeito."
+
+#: Mailman/Handlers/Hold.py:101
+msgid ""
+"Message body is too big: %(size)d bytes with a limit of\n"
+"%(limit)d KB"
+msgstr ""
+"O corpo da mensagem é muito grande: %(size)d bytes com um limite \n"
+"de %(limit)d KB"
+
+#: Mailman/Handlers/Hold.py:106
+msgid ""
+"Your message was too big; please trim it to less than\n"
+"%(kb)d KB in size."
+msgstr ""
+"Sua mensagem foi muito grande; por favor a divida para menos que\n"
+"%(kb)d KB de tamanho."
+
+#: Mailman/Handlers/Hold.py:110
+msgid "Posting to a moderated newsgroup"
+msgstr "Postagem para um newsgroup moderado"
+
+#: Mailman/Handlers/Hold.py:233
+msgid "Your message to %(listname)s awaits moderator approval"
+msgstr "Sua mensagem para a lista %(listname)s aguarda aprovação"
+
+#: Mailman/Handlers/Hold.py:253
+msgid "%(listname)s post from %(sender)s requires approval"
+msgstr "A postagem de %(sender)s para a lista %(listname)s requer aprovação"
+
+#: Mailman/Handlers/Hold.py:260
+msgid ""
+"If you reply to this message, keeping the Subject: header intact, Mailman "
+"will\n"
+"discard the held message. Do this if the message is spam. If you reply to\n"
+"this message and include an Approved: header with the list password in it, "
+"the\n"
+"message will be approved for posting to the list. The Approved: header can\n"
+"also appear in the first line of the body of the reply."
+msgstr ""
+"Caso responda a esta mensagem, mantendo o cabeçalho Subject: intacto, o \n"
+"Mailman descartará a mensabem em espera. Faça isto caso a mensagem seja\n"
+"um spam. Se responder a esta mensagem e incluir o cabeçalho Approved: \n"
+"com a senha da lista nela, a mensagem será aprovada para postagem na \n"
+"lista. O cabeçalho Aprovado: pode também aparecer na primeira linha \n"
+"do corpo da mensagem na resposta."
+
+#: Mailman/Handlers/MimeDel.py:56
+msgid "The message's content type was explicitly disallowed"
+msgstr "O tipo de conteúdo da mensagem foi explicidamente desautorizado."
+
+#: Mailman/Handlers/MimeDel.py:61
+msgid "The message's content type was not explicitly allowed"
+msgstr "O tipo de conteúdo da mensagem não foi permitido explicitamente"
+
+#: Mailman/Handlers/MimeDel.py:73
+msgid "After content filtering, the message was empty"
+msgstr "Após a filtragem de conteúdo, a mensagem foi perdida"
+
+#: Mailman/Handlers/MimeDel.py:208
+msgid ""
+"The attached message matched the %(listname)s mailing list's content "
+"filtering\n"
+"rules and was prevented from being forwarded on to the list membership. "
+"You\n"
+"are receiving the only remaining copy of the discarded message.\n"
+"\n"
+msgstr ""
+"A mensagem anexada conferiu com o conteúdo das regras de filtragem da \n"
+"lista de discussão %(listname)s e seu redirecionamento foi bloqueado para "
+"os \n"
+"membros. VocTe está recebendo somente a cópia restante da mensagem \n"
+"descartada.\n"
+
+#: Mailman/Handlers/MimeDel.py:214
+msgid "Content filtered message notification"
+msgstr "Notificação de filtragem de conteúdo da mensagem"
+
+#: Mailman/Handlers/Moderate.py:138
+msgid ""
+"You are not allowed to post to this mailing list, and your message has been\n"
+"automatically rejected. If you think that your messages are being rejected "
+"in\n"
+"error, contact the mailing list owner at %(listowner)s."
+msgstr ""
+"Você não tem permissão de postar para esta lista de discussão e sua \n"
+"mensagem foi rejeitada automaticamente. Caso ache que sua mensagem esteja\n"
+"sendo rejeitada em erro, contecte o dono da lista de discussão em \n"
+"%(listowner)s."
+
+#: Mailman/Handlers/Moderate.py:153
+msgid "Auto-discard notification"
+msgstr "Auto-descartar notificação"
+
+#: Mailman/Handlers/Moderate.py:156
+msgid "The attached message has been automatically discarded."
+msgstr "A mensagem em anexo foi descartada automaticamente."
+
+#: Mailman/Handlers/Replybot.py:74
+msgid "Auto-response for your message to "
+msgstr "Auto-resposta de sua mensagem para "
+
+#: Mailman/Handlers/Replybot.py:75
+msgid "the \"%(realname)s\" mailing list"
+msgstr "a lista de discussão \"%(realname)s"
+
+#: Mailman/Handlers/Replybot.py:107
+msgid "The Mailman Replybot"
+msgstr "O robo de resposta do Mailman"
+
+#: Mailman/Handlers/Scrubber.py:148
+msgid "HTML attachment scrubbed and removed"
+msgstr "Anexo em HTML limpo e removido"
+
+#: Mailman/Handlers/Scrubber.py:162 Mailman/Handlers/Scrubber.py:188
+msgid ""
+"An HTML attachment was scrubbed...\n"
+"URL: %(url)s\n"
+msgstr ""
+"Um anexo em HTML foi limpo...\n"
+"URL: %(url)s\n"
+
+#: Mailman/Handlers/Scrubber.py:201
+msgid "no subject"
+msgstr "sem assunto"
+
+#: Mailman/Handlers/Scrubber.py:202
+msgid "no date"
+msgstr "sem data"
+
+#: Mailman/Handlers/Scrubber.py:203
+msgid "unknown sender"
+msgstr "remetente desconhecido"
+
+#: Mailman/Handlers/Scrubber.py:205
+msgid ""
+"An embedded message was scrubbed...\n"
+"From: %(who)s\n"
+"Subject: %(subject)s\n"
+"Date: %(date)s\n"
+"Size: %(size)s\n"
+"Url: %(url)s\n"
+msgstr ""
+"Uma mensagem embutida foi limpa...\n"
+"De: %(who)s\n"
+"Assunto: %(subject)s\n"
+"Data: %(date)s\n"
+"Tam: %(size)s\n"
+"Url: %(url)s\n"
+
+#: Mailman/Handlers/Scrubber.py:228
+msgid ""
+"A non-text attachment was scrubbed...\n"
+"Name: %(filename)s\n"
+"Type: %(ctype)s\n"
+"Size: %(size)d bytes\n"
+"Desc: %(desc)s\n"
+"Url : %(url)s\n"
+msgstr ""
+"Um anexo não texto foi limpo...\n"
+"Nome : %(filename)s\n"
+"Tipo : %(ctype)s\n"
+"Tam : %(size)d bytes\n"
+"Descr.: %(desc)s\n"
+"Url : %(url)s\n"
+
+#: Mailman/Handlers/Scrubber.py:258
+msgid "Skipped content of type %(partctype)s"
+msgstr "Conteúdo pulado do tipo %(partctype)s"
+
+#: Mailman/Handlers/Scrubber.py:275
+msgid "-------------- next part --------------\n"
+msgstr "-------------- Próxima Parte ----------\n"
+
+#: Mailman/Handlers/ToDigest.py:141
+msgid "%(realname)s Digest, Vol %(volume)d, Issue %(issue)d"
+msgstr "Digest %(realname)s, volume %(volume)d, assunto %(issue)d"
+
+#: Mailman/Handlers/ToDigest.py:181
+msgid "digest header"
+msgstr "cabeçalho digest"
+
+#: Mailman/Handlers/ToDigest.py:184
+msgid "Digest Header"
+msgstr "Cabeçalho Digest"
+
+#: Mailman/Handlers/ToDigest.py:197
+msgid "Today's Topics:\n"
+msgstr "Tópicos de Hoje:\n"
+
+#: Mailman/Handlers/ToDigest.py:267
+msgid "Today's Topics (%(msgcount)d messages)"
+msgstr "Tópicos de Hoje (%(msgcount)d mensagens)"
+
+#: Mailman/Handlers/ToDigest.py:292
+msgid "digest footer"
+msgstr "legenda do digest"
+
+#: Mailman/Handlers/ToDigest.py:295
+msgid "Digest Footer"
+msgstr "Legenda do Digest"
+
+#: Mailman/Handlers/ToDigest.py:309
+msgid "End of "
+msgstr "Fim da "
+
+#: Mailman/ListAdmin.py:307
+msgid "Posting of your message titled \"%(subject)s\""
+msgstr "Postagem de sua mensagem com o título \"%(subject)s\""
+
+#: Mailman/ListAdmin.py:346
+msgid "Forward of moderated message"
+msgstr "Encaminhamento de mensagem moderada"
+
+#: Mailman/ListAdmin.py:405
+msgid "New subscription request to list %(realname)s from %(addr)s"
+msgstr "Nova requisição de desinscrição de %(realname)s pelo %(addr)s"
+
+#: Mailman/ListAdmin.py:428
+msgid "Subscription request"
+msgstr "Requisição de desinscrição"
+
+#: Mailman/ListAdmin.py:458
+msgid "New unsubscription request from %(realname)s by %(addr)s"
+msgstr "Nova requisição de desinscrição de %(realname)s por %(addr)s"
+
+#: Mailman/ListAdmin.py:481
+msgid "Unsubscription request"
+msgstr "Requisição de desinscrição"
+
+#: Mailman/ListAdmin.py:512
+msgid "Original Message"
+msgstr "Mensagem Original"
+
+#: Mailman/ListAdmin.py:515
+msgid "Request to mailing list %(realname)s rejected"
+msgstr "Requisição para a lista de discussão %(realname)s rejeitada."
+
+#: Mailman/MTA/Manual.py:57
+msgid ""
+"The mailing list `%(listname)s' has been created via the through-the-web\n"
+"interface. In order to complete the activation of this mailing list, the\n"
+"proper /etc/aliases (or equivalent) file must be updated. The program\n"
+"`newaliases' may also have to be run.\n"
+"\n"
+"Here are the entries for the /etc/aliases file:\n"
+msgstr ""
+"A lista de discussão '%(listname)s' foi criada pela interface baseada \n"
+"em web. Para completar o processo de ativação desta lista de discussão, \n"
+"o arquivo /etc/aliaes (ou equivalente) deverá ser atualizado. O \n"
+"programa 'newaliases' também deverá ser executado.\n"
+"\n"
+"Aqui estão as entradas para o arquivo /etc/aliases:\n"
+
+#: Mailman/MTA/Manual.py:67
+msgid ""
+"\n"
+"To finish creating your mailing list, you must edit your /etc/aliases (or\n"
+"equivalent) file by adding the following lines, and possibly running the\n"
+"`newaliases' program:\n"
+"\n"
+"## %(listname)s mailing list"
+msgstr ""
+"\n"
+"Par finalizar a criação de sua lista de discussão, você deverá editar o \n"
+"arquivo /etc/aliases (ou equivalente) adicionando as seguintes linhas \n"
+"e possivelmente executando o comando 'newaliases'\n"
+"\n"
+"## lista de discussão %(listname)s"
+
+#: Mailman/MTA/Manual.py:88
+msgid "Mailing list creation request for list %(listname)s"
+msgstr "Requisção de criação de lista de discussão para a lista %(listname)s"
+
+#: Mailman/MTA/Manual.py:103
+msgid ""
+"The mailing list `%(listname)s' has been removed via the through-the-web\n"
+"interface. In order to complete the de-activation of this mailing list, "
+"the\n"
+"appropriate /etc/aliases (or equivalent) file must be updated. The program\n"
+"`newaliases' may also have to be run.\n"
+"\n"
+"Here are the entries in the /etc/aliases file that should be removed:\n"
+msgstr ""
+"A lista d ediscussão '%(listname)s foi removida pela interface baseada\n"
+"em web. Para completar a desativação desta lista de discussão, o \n"
+"arquivo /eta/aliases (ou equivalente) deverá ser atualizado. O \n"
+"programa 'newaliases' também deverá ser executado.\n"
+"\n"
+"Aqu estão as entradas no arquivo /etc/aliases que deverão ser removidos:\n"
+
+#: Mailman/MTA/Manual.py:113
+msgid ""
+"\n"
+"To finish removing your mailing list, you must edit your /etc/aliases (or\n"
+"equivalent) file by removing the following lines, and possibly running the\n"
+"`newaliases' program:\n"
+"\n"
+"## %(listname)s mailing list"
+msgstr ""
+"\n"
+"Par finalizar a remoção de sua lista de discussão, você deverá editar seu \n"
+"arquivo /etc/aliases (ou equivalente) removendo as seguintes linhas, \n"
+"e possivelmente executando o programa 'newaliases':\n"
+"\n"
+"## lista de discussão %(listname)s"
+
+#: Mailman/MTA/Manual.py:132
+msgid "Mailing list removal request for list %(listname)s"
+msgstr "Requisição de remoção da lista de discussão %(listname)s"
+
+#: Mailman/MTA/Postfix.py:300
+msgid "checking permissions on %(file)s"
+msgstr "verificando permissões de %(file)s"
+
+#: Mailman/MTA/Postfix.py:310
+msgid "%(file)s permissions must be 066x (got %(octmode)s)"
+msgstr "As permissões de %(file)s devem ser 066x (faça %(octmode)s)"
+
+#: Mailman/MTA/Postfix.py:312 Mailman/MTA/Postfix.py:339 bin/check_perms:100
+#: bin/check_perms:122 bin/check_perms:132 bin/check_perms:143
+#: bin/check_perms:162 bin/check_perms:180 bin/check_perms:200
+#: bin/check_perms:224 bin/check_perms:244 bin/check_perms:258
+#: bin/check_perms:278 bin/check_perms:315
+msgid "(fixing)"
+msgstr "(corrigindo)"
+
+#: Mailman/MTA/Postfix.py:328
+msgid "checking ownership of %(dbfile)s"
+msgstr "verificando o dono de %(dbfile)s"
+
+#: Mailman/MTA/Postfix.py:336
+msgid "%(dbfile)s owned by %(owner)s (must be owned by %(user)s"
+msgstr "O %(dbfile)s que tem como dono %(owner)s(deve ter como dono %(user)s"
+
+#: Mailman/MailList.py:697
+msgid "You have been invited to join the %(listname)s mailing list"
+msgstr "Você foi convidado para entrar na lista de discussão %(listname)s"
+
+#: Mailman/MailList.py:801 Mailman/MailList.py:1157
+msgid " from %(remote)s"
+msgstr " de %(remote)s"
+
+#: Mailman/MailList.py:835
+msgid "subscriptions to %(realname)s require moderator approval"
+msgstr "as inscrições de %(realname)s requerem aprovação pelo moderador"
+
+#: Mailman/MailList.py:894 bin/add_members:281
+msgid "%(realname)s subscription notification"
+msgstr "notificação de inscriçào de %(realname)s"
+
+#: Mailman/MailList.py:909
+msgid "unsubscriptions require moderator approval"
+msgstr "as desinscrições requerem aprovação pelo moderador"
+
+#: Mailman/MailList.py:928
+msgid "%(realname)s unsubscribe notification"
+msgstr "notificação de desinscrição de %(realname)s"
+
+#: Mailman/MailList.py:1072
+msgid "subscriptions to %(name)s require administrator approval"
+msgstr "as inscrições de %(name)s requerem aprovação pelo administrador."
+
+#: Mailman/MailList.py:1326
+msgid "Last autoresponse notification for today"
+msgstr "Última notificação de auto-resposta de hoje"
+
+#: Mailman/Queue/BounceRunner.py:179
+msgid ""
+"The attached message was received as a bounce, but either the bounce format\n"
+"was not recognized, or no member addresses could be extracted from it. "
+"This\n"
+"mailing list has been configured to send all unrecognized bounce messages "
+"to\n"
+"the list administrator(s).\n"
+"\n"
+"For more information see:\n"
+"%(adminurl)s\n"
+"\n"
+msgstr ""
+"A mensagem em anexo foi recebida como um bounce, mas ambos o formato do "
+"bounce não foi reconhecido ou nenhum endereço de membrou foi extraida dela.\n"
+"Esta lista de discussão foi configurada para enviar todas as mensagens de \n"
+"bounces desconhecidas para o administrador da lista.\n"
+"\n"
+"Para mais detalhes, veja:\n"
+"%(adminurl)s\n"
+
+#: Mailman/Queue/BounceRunner.py:189
+msgid "Uncaught bounce notification"
+msgstr "Notificação retorno de mensagem não pega"
+
+#: Mailman/Queue/CommandRunner.py:74
+msgid "Ignoring non-text/plain MIME parts"
+msgstr "Ignorando partes MIME que não estejam em texto plano"
+
+#: Mailman/Queue/CommandRunner.py:129
+msgid ""
+"The results of your email command are provided below.\n"
+"Attached is your original message.\n"
+msgstr ""
+"Os resultados do seu comando por email são fornecidos abaixo.\n"
+"Anexados na mensagem original.\n"
+
+#: Mailman/Queue/CommandRunner.py:134
+msgid "- Results:"
+msgstr "- Resultados:"
+
+#: Mailman/Queue/CommandRunner.py:140
+msgid ""
+"\n"
+"- Unprocessed:"
+msgstr ""
+"\n"
+"- Não processados:"
+
+#: Mailman/Queue/CommandRunner.py:143
+msgid ""
+"\n"
+"- Ignored:"
+msgstr ""
+"\n"
+"- Ignorados:"
+
+#: Mailman/Queue/CommandRunner.py:145
+msgid ""
+"\n"
+"- Done.\n"
+"\n"
+msgstr ""
+"\n"
+"- Feito.\n"
+
+#: Mailman/Queue/CommandRunner.py:163
+msgid "The results of your email commands"
+msgstr "Os resultados do seus comandos de email"
+
+#: Mailman/htmlformat.py:627
+msgid "Delivered by Mailman<br>version %(version)s"
+msgstr "Entregue pelo Mailman<br>versão %(version)s"
+
+#: Mailman/htmlformat.py:628
+msgid "Python Powered"
+msgstr "Executado pelo Python"
+
+#: Mailman/htmlformat.py:629
+msgid "Gnu's Not Unix"
+msgstr "GNU não é Unix"
+
+#: Mailman/i18n.py:86
+msgid "Mon"
+msgstr "Segunda"
+
+#: Mailman/i18n.py:86
+msgid "Thu"
+msgstr "Quinta"
+
+#: Mailman/i18n.py:86
+msgid "Tue"
+msgstr "Terça"
+
+#: Mailman/i18n.py:86
+msgid "Wed"
+msgstr "Quarta"
+
+#: Mailman/i18n.py:87
+msgid "Fri"
+msgstr "Sexta"
+
+#: Mailman/i18n.py:87
+msgid "Sat"
+msgstr "Sábado"
+
+#: Mailman/i18n.py:87
+msgid "Sun"
+msgstr "Domingo"
+
+#: Mailman/i18n.py:91
+msgid "Apr"
+msgstr "Abril"
+
+#: Mailman/i18n.py:91
+msgid "Feb"
+msgstr "Fevereiro"
+
+#: Mailman/i18n.py:91
+msgid "Jan"
+msgstr "Janeiro"
+
+#: Mailman/i18n.py:91
+msgid "Jun"
+msgstr "Junho"
+
+#: Mailman/i18n.py:91
+msgid "Mar"
+msgstr "Março"
+
+#: Mailman/i18n.py:92
+msgid "Aug"
+msgstr "Agosto"
+
+#: Mailman/i18n.py:92
+msgid "Dec"
+msgstr "Dezembro"
+
+#: Mailman/i18n.py:92
+msgid "Jul"
+msgstr "Julho"
+
+#: Mailman/i18n.py:92
+msgid "Nov"
+msgstr "Novembro"
+
+#: Mailman/i18n.py:92
+msgid "Oct"
+msgstr "Outubro"
+
+#: Mailman/i18n.py:92
+msgid "Sep"
+msgstr "Setembro"
+
+#: Mailman/i18n.py:95
+msgid "Server Local Time"
+msgstr "Hora local do Servidor"
+
+#: Mailman/i18n.py:128
+msgid ""
+"%(wday)s %(mon)s %(day)2i %(hh)02i:%(mm)02i:%(ss)02i %(tzname)s %(year)04i"
+msgstr ""
+"%(wday)s %(mon)s %(day)2i %(hh)02i:%(mm)02i:%(ss)02i %(tzname)s %(year)04i"
+
+#: bin/add_members:26
+msgid ""
+"Add members to a list from the command line.\n"
+"\n"
+"Usage:\n"
+" add_members [options] listname\n"
+"\n"
+"Options:\n"
+"\n"
+" --regular-members-file=file\n"
+" -r file\n"
+" A file containing addresses of the members to be added, one\n"
+" address per line. This list of people become non-digest\n"
+" members. If file is `-', read addresses from stdin. Note that\n"
+" -n/--non-digest-members-file are deprecated synonyms for this "
+"option.\n"
+"\n"
+" --digest-members-file=file\n"
+" -d=file\n"
+" Similar to above, but these people become digest members.\n"
+"\n"
+" --changes-msg=<y|n>\n"
+" -c <y|n> \n"
+"\tSet whether or not to send the list members the `there's going to be\n"
+"\tbig changes to your list' message. defaults to no.\n"
+"\n"
+" --welcome-msg=<y|n>\n"
+" -w <y|n>\n"
+" Set whether or not to send the list members a welcome message,\n"
+" overriding whatever the list's `send_welcome_msg' setting is.\n"
+"\n"
+" --admin-notify=<y|n>\n"
+" -a <y|n>\n"
+" Set whether or not to send the list administrators a notification "
+"on\n"
+" the success/failure of these subscriptions, overriding whatever the\n"
+" list's `admin_notify_mchanges' setting is.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname\n"
+" The name of the Mailman list you are adding members to. It must\n"
+" already exist.\n"
+"\n"
+"You must supply at least one of -r and -d options. At most one of the\n"
+"files can be `-'.\n"
+msgstr ""
+"Adiciona membros a lista pela linha de comando.\n"
+"\n"
+"Uso:\n"
+" add_members [opções] nome da lista\n"
+"\n"
+"Opções:\n"
+"\n"
+" --regular-members-file=arquivo\n"
+" -r arquivo\n"
+" Arquivo que contém os endereços de membros que serão adicionados,\n"
+" um membro por linha. Esta lista de pessoas se tornarão\n"
+" membros não digest. Caso o arquivo seja '-', le os endereços\n"
+" de stdin. Note que -n/--non-digest-members-file são \n"
+" sinônimos depreciados desta opção.\n"
+"\n"
+" --digest-members-file=arquivo\n"
+" -d=file\n"
+" Similar ao acima, mas estas pessoas se tornam membros digest.\n"
+"\n"
+" --changes-msg=<y|n>\n"
+" -c <y|n> \n"
+"\\tAjusta se serão ou não enviados aos membros da lista a mensagem\n"
+"\\t'ocorrerão grandes modificações em sua lista'. O padrão é não.\n"
+"\n"
+" --welcome-msg=<y|n>\n"
+" -w <y|n>\n"
+" Seleciona se será ou não enviada uma mensagem de boas vindas\n"
+" para os membros da lista, substituindo a configuração\n"
+" 'send_welcome_msg'.\n"
+"\n"
+" --admin-notify=<y|n>\n"
+" -a <y|n>\n"
+" Seleciona se será ou não enviado aos admistradores da lista\n"
+" uma notificação avisando sobre sucessos/falhas de inscrição, \n"
+" substituindo o valor existente na opção 'admin_notify_mchanges'.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Mostra esta mensagem de ajuda e sai.\n"
+"\n"
+" listname\n"
+" O nome da lista do Mailman que está adicionando membros. \n"
+" A lista deve ser existente.\n"
+"\n"
+"Você deve usar no mínimo as opções -n e -d. A maioria dos arquivos\n"
+"pode ser '-'.\n"
+
+#: bin/add_members:134
+msgid "Big change in %(listname)s@%(listhost)s mailing list"
+msgstr "Grandes modificações na lista de discussão %(listname)s@%(listhost)s"
+
+#: bin/add_members:167
+msgid "Already a member: %(member)s"
+msgstr "Já é um membro: %(member)s"
+
+#: bin/add_members:170
+msgid "Bad/Invalid email address: blank line"
+msgstr "Endereço de email incorreto/inválido: linha em branco"
+
+#: bin/add_members:172
+msgid "Bad/Invalid email address: %(member)s"
+msgstr "Endereço de email incorreto/inválido: %(member)s"
+
+#: bin/add_members:174
+msgid "Hostile address (illegal characters): %(member)s"
+msgstr "Endereço hostíl (caracteres ilegais): %(member)s"
+
+#: bin/add_members:176
+msgid "Subscribed: %(member)s"
+msgstr "Inscrito: %(member)s"
+
+#: bin/add_members:223
+msgid "Bad argument to -c/--changes-msg: %(arg)s"
+msgstr "Argumento incorreto para -c/--changes-msg: %(arg)s"
+
+#: bin/add_members:230
+msgid "Bad argument to -w/--welcome-msg: %(arg)s"
+msgstr "Argumento incorreto para -w/--welcome-msg: %(arg)s"
+
+#: bin/add_members:237
+msgid "Bad argument to -a/--admin-notify: %(arg)s"
+msgstr "Argumento incorreto para -a/--admin-notify: %(arg)s"
+
+#: bin/add_members:243
+msgid "Cannot read both digest and normal members from standard input."
+msgstr "Não é possível ler ambos os membros normais e digest da entrada parão."
+
+#: bin/add_members:249 bin/config_list:105 bin/find_member:97 bin/inject:90
+#: bin/list_admins:89 bin/list_members:187 bin/sync_members:222
+#: cron/bumpdigests:86
+msgid "No such list: %(listname)s"
+msgstr "Lista inexistente: %(listname)s"
+
+#: bin/add_members:269 bin/change_pw:158 bin/check_db:114 bin/sync_members:244
+#: cron/bumpdigests:78
+msgid "Nothing to do."
+msgstr "Nada a ser feito."
+
+#: bin/arch:19
+msgid ""
+"Rebuild a list's archive.\n"
+"\n"
+"Use this command to rebuild the archives for a mailing list. You may want "
+"to\n"
+"do this if you edit some messages in an archive, or remove some messages "
+"from\n"
+"an archive.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] <listname> [<mbox>]\n"
+"\n"
+"Where options are:\n"
+" -h / --help\n"
+" Print this help message and exit.\n"
+"\n"
+" -q / --quiet\n"
+" Make the archiver output less verbose.\n"
+"\n"
+" --wipe\n"
+" First wipe out the original archive before regenerating. You "
+"usually\n"
+" want to specify this argument unless you're generating the archive "
+"in\n"
+" chunks.\n"
+"\n"
+" -s N\n"
+" --start=N\n"
+" Start indexing at article N, where article 0 is the first in the "
+"mbox.\n"
+" Defaults to 0.\n"
+"\n"
+" -e M\n"
+" --end=M\n"
+" End indexing at article M. This script is not very efficient with\n"
+" respect to memory management, and for large archives, it may not be\n"
+" possible to index the mbox entirely. For that reason, you can "
+"specify\n"
+" the start and end article numbers.\n"
+"\n"
+"Where <mbox> is the path to a list's complete mbox archive. Usually this "
+"will\n"
+"be some path in the archives/private directory. For example:\n"
+"\n"
+"%% bin/arch mylist archives/private/mylist.mbox/mylist.mbox\n"
+"\n"
+"<mbox> is optional. If it is missing, it is calculated.\n"
+msgstr ""
+"Reconstrói o arquivo das listas\n"
+"\n"
+"Use este comando para reconstruir os arquivos de uma lista de \n"
+"discussão. Você poderá querer fazer isto se editar algumas mensagens\n"
+"nos arquivos ou remover algumas mensagens de um arquivo.\n"
+"\n"
+"Uso: %(PROGRAM)s [opções] <nome_da_lista> [<mbox>]\n"
+"\n"
+"Onde as opções são:\n"
+" -h / --help\n"
+" Mostre esta mensagem de ajuda e sai.\n"
+"\n"
+"\n"
+" -q / --quiet\n"
+" Faz a saída do comando ser menos detalhada.\n"
+"\n"
+" --wipe\n"
+" Primeiro, apaga o arquivo original antes de recria-lo. Você \n"
+" normalmente quer especificar este argumento a não quer \n"
+" que esteja gerando o arquivo em partes.\n"
+"\n"
+" -s N\n"
+" --start=N\n"
+" Inicia indexando no arquivo N, quando o arquivo 0 é o padrão na \n"
+" caixa de correio. O padrão é 0.\n"
+"\n"
+" -e M\n"
+" --end=M\n"
+" Fim da indexação no artigo M. Este script não é muito eficiente\n"
+" com respeito ao gerenciamento de memória e para arquivos grandes\n"
+" ele pode não ser capaz de indexar toda a caixa mbox. Por esta \n"
+" razão, você poderá especificar o inicio e fim do número de \n"
+" artigos.\n"
+"\n"
+"Onde <mbox> é o caminho para o arquivo mbox completo da lista. Normalmente \n"
+"isto será algum caminho no diretório archives/private. Por exemplo:\n"
+"\n"
+"%% bin/arch mylist archives/private/mylist.mbox/mylist.mbox\n"
+"\n"
+"<mbox> é opcional. Se estiver faltando, será deduzido.\n"
+
+#: bin/arch:125
+msgid "listname is required"
+msgstr "o nome da lista é requerido"
+
+#: bin/arch:143 bin/change_pw:106 bin/config_list:242
+msgid ""
+"No such list \"%(listname)s\"\n"
+"%(e)s"
+msgstr ""
+"Lista inexistente: \"%(listname)s\n"
+"%(e)s"
+
+#: bin/arch:170
+msgid "Cannot open mbox file %(mbox)s: %(msg)s"
+msgstr "Não foi possível abrir arquivo mbox %(mbox)s: %(msg)s"
+
+#: bin/b4b5-archfix:19
+msgid ""
+"Fix the MM2.1b4 archives.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] file ...\n"
+"\n"
+"Where options are:\n"
+" -h / --help\n"
+" Print this help message and exit.\n"
+"\n"
+"Only use this to `fix' some archive database files that may have gotten\n"
+"written in Mailman 2.1b4 with some bogus data. Use like this from your\n"
+"$PREFIX directory\n"
+"\n"
+"%% %(PROGRAM)s `grep -l _mlist archives/private/*/database/*-article`\n"
+"\n"
+"(note the backquotes are required)\n"
+"\n"
+"You will need to run `bin/check_perms -f' after running this script.\n"
+msgstr ""
+"Corrige os arquivos do MM2.1B4.\n"
+"\n"
+"Uso: %(PROGRAM)s [opções] arquivo ...\n"
+"\n"
+"Onde as opções são:\n"
+" -h / --help\n"
+" Mostra esta mensagem de ajuda e sai.\n"
+"\n"
+"Somente use isto para 'corrigir' alguns arquivos de dados que foram \n"
+"escritos no Mailman 2.1b4 com algum tipo de dados incorreto. Execute-o\n"
+"dentro do seu diretório $PREFIX\n"
+"\n"
+"%% %(PROGRAM)s `grep -l _mlist archives/private/*/database/*-article`\n"
+"\n"
+"(note que as crases são requeridas)\n"
+"\n"
+"Você precisará executar `bin/check_perms -f' após executar este script.\n"
+
+#: bin/change_pw:19
+msgid ""
+"Change a list's password.\n"
+"\n"
+"Prior to Mailman 2.1, list passwords were kept in crypt'd format -- "
+"usually.\n"
+"Some Python installations didn't have the crypt module available, so they'd\n"
+"fall back to md5. Then suddenly the Python installation might grow a crypt\n"
+"module and all list passwords would be broken.\n"
+"\n"
+"In Mailman 2.1, all list and site passwords are stored in SHA1 hexdigest\n"
+"form. This breaks list passwords for all existing pre-Mailman 2.1 lists, "
+"and\n"
+"since those passwords aren't stored anywhere in plain text, they cannot be\n"
+"retrieved and updated.\n"
+"\n"
+"Thus, this script generates new passwords for a list, and optionally sends "
+"it\n"
+"to all the owners of the list.\n"
+"\n"
+"Usage: change_pw [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" --all / -a\n"
+" Change the password for all lists.\n"
+"\n"
+" --domain=domain\n"
+" -d domain\n"
+" Change the password for all lists in the virtual domain `domain'. "
+"It\n"
+" is okay to give multiple -d options.\n"
+"\n"
+" --listname=listname\n"
+" -l listname\n"
+" Change the password only for the named list. It is okay to give\n"
+" multiple -l options.\n"
+"\n"
+" --password=newpassword\n"
+" -p newpassword\n"
+" Use the supplied plain text password `newpassword' as the new "
+"password\n"
+" for any lists that are being changed (as specified by the -a, -d, "
+"and\n"
+" -l options). If not given, lists will be assigned a randomly\n"
+" generated new password.\n"
+"\n"
+" --quiet / -q\n"
+" Don't notify list owners of the new password. You'll have to have\n"
+" some other way of letting the list owners know the new password\n"
+" (presumably out-of-band).\n"
+"\n"
+" --help / -h\n"
+" Print this help message and exit.\n"
+msgstr ""
+"Modificar senha de uma lista.\n"
+"\n"
+"Antes do Mailman 2.1, as senhas de listas eram armazenadas em formato \n"
+"encriptografado -- normalmente.\n"
+"\n"
+"Algumas instalações do Python não tem o módulo crypt disponível, \n"
+"assim eles utilizam o md5. Então repentinamente a instalação \n"
+"do Python poderá crescer e todas as senhas de listas serão perdidas.\n"
+"\n"
+"No Mailman 2.1, todas as senhas de sites e listas são armazenados na \n"
+"forma SHA1 hexdigest. Isto quebra ase senhas das listas de todas as \n"
+"listas pré-Mailman 2.1 e como estas senhas não são armazenadas em \n"
+"qualquer lugar como texto plano, elas não poderão ser recuperadas \n"
+"e atualizadas.\n"
+"\n"
+"Assim, este script gera novas senhas para uma lista e opcionalmente os \n"
+"envia para todos os donos da lista.\n"
+"\n"
+"Uso: change_pw [opções]\n"
+"\n"
+"Options:\n"
+"\n"
+" --all / -a\n"
+" Modifica a senha de todas as listas.\n"
+"\n"
+" --domain=domínio\n"
+" -d domain\n"
+" Modifica a senha de todas as listas no domínio virtual 'domínio'.\n"
+" É permitido especificar múltiplas opções -d.\n"
+"\n"
+" --listname=nome_da_lista\n"
+" -l listname\n"
+" Modifica somente a senha da lista nomeada. É permitido especificar\n"
+" múltiplas opções -l.\n"
+"\n"
+" --password=novasenha\n"
+" -p newpassword\n"
+" Use a senha em texot plano fornecida 'novasenha' como nova senha\n"
+" para qualquer lista que esteja sendo modificada (como especificado\n"
+" pelas opções -a, -d e -l). Se não for especificado, as novas \n"
+" senhas de listas serão designadas aleatóriamente.\n"
+"\n"
+" --quiet / -q\n"
+" Não notifica os donos de listas de uma nova senha. Você terá que \n"
+" ter outro método para fazer com que os donos de listas conheçam \n"
+" a nova senha (presumivelmente fora-de-banda).\n"
+"\n"
+" --help / -h\n"
+" Mostra esta mensagem de ajuda e sai.\n"
+
+#: bin/change_pw:144
+msgid "Bad arguments: %(strargs)s"
+msgstr "Argumentos incorretos: %(strargs)s"
+
+#: bin/change_pw:148
+msgid "Empty list passwords are not allowed"
+msgstr "Senhas vazias de listas não são permitidas"
+
+#: bin/change_pw:179
+msgid "New %(listname)s password: %(notifypassword)s"
+msgstr "Nova %(listname)s senha: %(notifypassword)s"
+
+#: bin/change_pw:188
+msgid "Your new %(listname)s list password"
+msgstr "Sua noav senha da lista %(listname)s"
+
+#: bin/change_pw:189
+msgid ""
+"The site administrator at %(hostname)s has changed the password for your\n"
+"mailing list %(listname)s. It is now\n"
+"\n"
+" %(notifypassword)s\n"
+"\n"
+"Please be sure to use this for all future list administration. You may "
+"want\n"
+"to log in now to your list and change the password to something more to "
+"your\n"
+"liking. Visit your list admin page at\n"
+"\n"
+" %(adminurl)s\n"
+msgstr ""
+"O administrador do site em %(hostname)s modificou a senha para sua lista\n"
+"de discussão %(listname)s. Ela é\n"
+"\n"
+" %(notifypassword)s\n"
+"\n"
+"Tenha certeza de usa-la para qualquer administração futura das listas. "
+"Você \n"
+"poderá querer entrar agora em sua lista e modificar a senha para algo que \n"
+"ache melhor. Visite sua página de administração da lista em\n"
+"\n"
+" %(adminurl)s\n"
+
+#: bin/check_db:19
+msgid ""
+"Check a list's config database file for integrity.\n"
+"\n"
+"All of the following files are checked:\n"
+"\n"
+" config.pck\n"
+" config.pck.last\n"
+" config.db\n"
+" config.db.last\n"
+" config.safety\n"
+"\n"
+"It's okay if any of these are missing. config.pck and config.pck.last are\n"
+"pickled versions of the config database file for 2.1a3 and beyond. config."
+"db\n"
+"and config.db.last are used in all earlier versions, and these are Python\n"
+"marshals. config.safety is a pickle written by 2.1a3 and beyond when the\n"
+"primary config.pck file could not be read.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname [listname ...]]\n"
+"\n"
+"Options:\n"
+"\n"
+" --all / -a\n"
+" Check the databases for all lists. Otherwise only the lists named "
+"on\n"
+" the command line are checked.\n"
+"\n"
+" --verbose / -v\n"
+" Verbose output. The state of every tested file is printed.\n"
+" Otherwise only corrupt files are displayed.\n"
+"\n"
+" --help / -h\n"
+" Print this text and exit.\n"
+msgstr ""
+"Verifica a integridade do banco de dados de configuração da lista.\n"
+"\n"
+"Todos os seguintes arquivos são verificados:\n"
+"\n"
+" config.pck\n"
+" config.pck.last\n"
+" config.db\n"
+" config.db.last\n"
+" config.safety\n"
+"\n"
+"É normal que qualquer um destes estejam faltando. O config.pck e \n"
+"config.pck.last são versões pegas de bancos de dados superiores a versão\n"
+"2.1a3. O config.db e config.db.last são usados em todas as versões \n"
+"anteriores e estes são orientados em Python. O cnfig.safety é uma \n"
+"conserva da feito pela 2.1a3 e posteriores quando o arquivo primário\n"
+"config.pck não pode ser lido.\n"
+"\n"
+"Uso: %(PROGRAM)s [opções] [nome_da_lista [nome_da_lista ...]]\n"
+"\n"
+"Opções:\n"
+"\n"
+" --all / -a\n"
+" Verifica os bancos de dados de todas as listas. Caso contrário \n"
+" somente as listas especificadas na linha de comando são checadas.\n"
+"\n"
+" --verbose / -v\n"
+" Saida detalhada. O estado de cada arquivo testado é mostrado.\n"
+" Caso contrário, somente arquivos corrompidos são mostrados.\n"
+"\n"
+" --help / -h\n"
+" Mostra este texto e sai.\n"
+
+#: bin/check_db:119
+msgid "No list named:"
+msgstr "Nenhuma lista especificada:"
+
+#: bin/check_db:128
+msgid "List:"
+msgstr "Lista:"
+
+#: bin/check_db:148
+msgid " %(file)s: okay"
+msgstr " %(file)s: Ok"
+
+#: bin/check_perms:19
+msgid ""
+"Check the permissions for the Mailman installation.\n"
+"\n"
+"Usage: %(PROGRAM)s [-f] [-v] [-h]\n"
+"\n"
+"With no arguments, just check and report all the files that have bogus\n"
+"permissions or group ownership. With -f (and run as root), fix all the\n"
+"permission problems found. With -v be verbose.\n"
+"\n"
+msgstr ""
+"Verifica as permissões da instalação do Mailman\n"
+"\n"
+"Uso: %(PROGRAM)s [-f] [-v] [-h]\n"
+"\n"
+"Se não forem usados argumentos, simplesmente verifica e relata todos os\n"
+"arquivovs que tem permissões incorretas ou grupo. Com a opção -f \n"
+"(e executado como root), corrige todas os problemas de permissões que\n"
+"forem encontrados. Com a opção -v, mostra mais detalhes.\n"
+"\n"
+
+#: bin/check_perms:85
+msgid " checking gid and mode for %(path)s"
+msgstr " verificando gid e modo de %(path)s"
+
+#: bin/check_perms:97
+msgid "%(path)s bad group (has: %(groupname)s, expected %(MAILMAN_GROUP)s)"
+msgstr ""
+"%(path)s gid incorrete (tem: %(groupname)s, esperado %(MAILMAN_GROUP)s)"
+
+#: bin/check_perms:120
+msgid "directory permissions must be %(octperms)s: %(path)s"
+msgstr "As permissões do diretório devem ser %(octperms)s: %(path)s"
+
+#: bin/check_perms:129
+msgid "source perms must be %(octperms)s: %(path)s"
+msgstr "as permissões do diretório fonte deve ser %(octperms)s: %(path)s"
+
+#: bin/check_perms:140
+msgid "article db files must be %(octperms)s: %(path)s"
+msgstr "As permissões dos aquivos db devem ser %(octperms)s: %(path)s"
+
+#: bin/check_perms:152
+msgid "checking mode for %(prefix)s"
+msgstr "verificando o modo apra %(prefix)s"
+
+#: bin/check_perms:160
+msgid "directory must be at least 02775: %(d)s"
+msgstr "o diretório deve ser pelo menos 02775: %(d)s"
+
+#: bin/check_perms:173
+msgid "checking perms on %(private)s"
+msgstr "verificando permissões em %(private)s"
+
+#: bin/check_perms:178
+msgid "%(private)s must not be other-readable"
+msgstr "%(private)s não deverá ser lido por outros"
+
+#: bin/check_perms:198
+msgid "mbox file must be at least 0660:"
+msgstr "o arquivo mbox deverá ter pelo menos 0660:"
+
+#: bin/check_perms:222
+msgid "%(dbdir)s \"other\" perms must be 000"
+msgstr "as permissões \"de outros\" de %(dbdir)s devem ser 000"
+
+#: bin/check_perms:233
+msgid "checking cgi-bin permissions"
+msgstr "verificando permissões de cgi-bin"
+
+#: bin/check_perms:238
+msgid " checking set-gid for %(path)s"
+msgstr " verificando set-gid para %(path)s"
+
+#: bin/check_perms:242
+msgid "%(path)s must be set-gid"
+msgstr "%(path)s deverá ser set-gid"
+
+#: bin/check_perms:252
+msgid "checking set-gid for %(wrapper)s"
+msgstr "verificando set-gid para %(wrapper)s"
+
+#: bin/check_perms:256
+msgid "%(wrapper)s must be set-gid"
+msgstr "%(wrapper)s deverá ser set-gid"
+
+#: bin/check_perms:266
+msgid "checking permissions on %(pwfile)s"
+msgstr "verificando permissões de %(pwfile)s"
+
+#: bin/check_perms:275
+msgid "%(pwfile)s permissions must be exactly 0640 (got %(octmode)s)"
+msgstr ""
+"as permissões de %(pwfile)s deverão ser exatamente \n"
+"0640 (usar %(octmode)s)"
+
+#: bin/check_perms:299
+msgid "checking permissions on list data"
+msgstr "verificando permissões nos dados da lista"
+
+#: bin/check_perms:305
+msgid " checking permissions on: %(path)s"
+msgstr " verificando permissões em: %(path)s"
+
+#: bin/check_perms:313
+msgid "file permissions must be at least 660: %(path)s"
+msgstr "permissões de arquivos devem ser pelo meno 660: %(path)s"
+
+#: bin/check_perms:359
+msgid "No problems found"
+msgstr "Nenhum problema encontrado"
+
+#: bin/check_perms:361
+msgid "Problems found:"
+msgstr "Problemas encontrados"
+
+#: bin/check_perms:362
+msgid "Re-run as %(MAILMAN_USER)s (or root) with -f flag to fix"
+msgstr ""
+"Re-execute como %(MAILMAN_USER)s (ou root) com a opção -f para \n"
+"corrigir o problema."
+
+#: bin/cleanarch:19
+msgid ""
+"Clean up an .mbox archive file.\n"
+"\n"
+"The archiver looks for Unix-From lines separating messages in an mbox "
+"archive\n"
+"file. For compatibility, it specifically looks for lines that start with\n"
+"\"From \" -- i.e. the letters capital-F, lowercase-r, o, m, space, ignoring\n"
+"everything else on the line.\n"
+"\n"
+"Normally, any lines that start \"From \" in the body of a message should be\n"
+"escaped such that a > character is actually the first on a line. It is\n"
+"possible though that body lines are not actually escaped. This script\n"
+"attempts to fix these by doing a stricter test of the Unix-From lines. Any\n"
+"lines that start \"From \" but do not pass this stricter test are escaped "
+"with a\n"
+"> character.\n"
+"\n"
+"Usage: cleanarch [options] < inputfile > outputfile\n"
+"Options:\n"
+" -s n\n"
+" --status=n\n"
+" Print a # character every n lines processed\n"
+"\n"
+" -q / --quiet\n"
+" Don't print changed line information to standard error.\n"
+"\n"
+" -n / --dry-run\n"
+" Don't actually output anything.\n"
+"\n"
+" -h / --help\n"
+" Print this message and exit\n"
+msgstr ""
+"Limpa o conteúdo de um arquivo .mbox\n"
+"\n"
+"O arquivador procura por linhas no formato Unix separando mensagens \n"
+"em um conteúdo de arquivo mbox. Para compatibilidade, ele especificamente\n"
+"preocura por linhas que iniciam com \"From\" -- i.e. letras com "
+"capitalização\n"
+"F, r em minúsculas, o, m, espaço, ignorando qualquer outra coisa na linha.\n"
+"\n"
+"Normalmente, quaisquer linahs que iniciam com \"From\" no corpo da \n"
+"mensagem devem ser postas em escape com um caracter > é o primeiro de uma\n"
+"linha. É possível que as linhas do corpo da mensagem não sejam postas \n"
+"em escape atualmente. Este script tenta corrigir estes fazendo um teste \n"
+"rígido das linhas From do Unix. Qualquer linha que comece com \n"
+"\"From\" mas não passa este teste rígido são postas em escape com o \n"
+"caracter >.\n"
+"\n"
+"Uso: cleanarch [opções] < arquivo_entrada > arquivo_saida\n"
+"Opções:\n"
+" -s n\n"
+" --status=n\n"
+" Mostra um caracter # a cada n linhas processadas\n"
+"\n"
+" -q / --quiet\n"
+" Não mostra informações da linha de desafio para a saida padrão\n"
+" de erros.\n"
+"\n"
+" -n / --dry-run\n"
+" Não mostra nenhuma saída\n"
+"\n"
+" -h / --help\n"
+" Mostra esta mensagem de ajuda e sai.\n"
+
+#: bin/cleanarch:82
+msgid "Unix-From line changed: %(lineno)d"
+msgstr "Linha From do Unix modificada: %(lineno)d"
+
+#: bin/cleanarch:110
+msgid "Bad status number: %(arg)s"
+msgstr "Número incorreto de status: %(arg)s"
+
+#: bin/cleanarch:160
+msgid "%(messages)d messages found"
+msgstr "%(messages)d mensagens encontradas"
+
+#: bin/clone_member:19
+msgid ""
+"Clone a member address.\n"
+"\n"
+"Cloning a member address means that a new member will be added who has all "
+"the\n"
+"same options and passwords as the original member address. Note that this\n"
+"operation is fairly trusting of the user who runs it -- it does no\n"
+"verification to the new address, it does not send out a welcome message, "
+"etc.\n"
+"\n"
+"The existing member's subscription is usually not modified in any way. If "
+"you\n"
+"want to remove the old address, use the -r flag. If you also want to "
+"change\n"
+"any list admin addresses, use the -a flag.\n"
+"\n"
+"Usage:\n"
+" clone_member [options] fromoldaddr tonewaddr\n"
+"\n"
+"Where:\n"
+"\n"
+" --listname=listname\n"
+" -l listname\n"
+" Check and modify only the named mailing lists. If -l is not given,\n"
+" then all mailing lists are scanned from the address. Multiple -l\n"
+" options can be supplied.\n"
+"\n"
+" --remove\n"
+" -r\n"
+" Remove the old address from the mailing list after it's been "
+"cloned.\n"
+"\n"
+" --admin\n"
+" -a\n"
+" Scan the list admin addresses for the old address, and clone or "
+"change\n"
+" them too.\n"
+"\n"
+" --quiet\n"
+" -q\n"
+" Do the modifications quietly.\n"
+"\n"
+" --nomodify\n"
+" -n\n"
+" Print what would be done, but don't actually do it. Inhibits the\n"
+" --quiet flag.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" fromoldaddr (`from old address') is the old address of the user. "
+"tonewaddr\n"
+" (`to new address') is the new address of the user.\n"
+"\n"
+msgstr ""
+"Clonar um endereço de membro.\n"
+"\n"
+"A clonagem de um endereço de membro significa que um novo membro que \n"
+"será incluido tem todas as mesmas opções e senhas que o endereço do \n"
+"membro original. Note que esta operação é completamente de confiança\n"
+"do usuário que a executa -- ela não faz verificação do novo endereço,\n"
+"ela não envia uma mensagem de boas vindas, etc.\n"
+"\n"
+"A inscrição do membro atual não é modificada de qualquer meio. Se \n"
+"deseja remover o endereço antigo, use a opção -r. Se também quer \n"
+"modificar qualquer endereço administrativo da lista, use a opção -a.\n"
+"\n"
+"Uso:\n"
+" clone_member [opções] doantigoendereço paraonovoendereço\n"
+"\n"
+"Onde:\n"
+"\n"
+" --listname=listname\n"
+" -l listname\n"
+" Verifica e modifica somente as listas de discussão. Nomedas\n"
+" caso a opção -l seja especificada então todas as listas de \n"
+" discussão são scaneadas pelo endereço. Múltiplas opções \n"
+" -l podem ser fornecidas.\n"
+"\n"
+" --remove\n"
+" -r\n"
+" Remove o endereço antigo da lista de discussão após ser clonado.\n"
+"\n"
+" --admin\n"
+" -a\n"
+" Verifica o endereço administrativo da lista pelo endereço antigo \n"
+" e os clona/modifica também.\n"
+"\n"
+" --quiet\n"
+" -q\n"
+" Faz as modificações de forma silenciosa.\n"
+"\n"
+" --nomodify\n"
+" -n\n"
+" Mostra o que seria feito, mas atualmente não faz. Inibe a opção\n"
+" --quiet.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Mostra a mensagem de ajuda e sai.\n"
+"\n"
+" doantigoendereço (`do endereço antigo') este é o endereço do usuário. \n"
+"paraonovoendereço (`para o novo endereço') é o novo endereço do usuário.\n"
+
+#: bin/clone_member:94
+msgid "processing mailing list:"
+msgstr "processando lista de discussão:"
+
+#: bin/clone_member:101
+msgid " scanning list owners:"
+msgstr " verificando donos da lista:"
+
+#: bin/clone_member:119
+msgid " new list owners:"
+msgstr " novos donos da lista:"
+
+#: bin/clone_member:121
+msgid "(no change)"
+msgstr "(nenhuma mudança)"
+
+#: bin/clone_member:130
+msgid " address not found:"
+msgstr " endereço não encontrado:"
+
+#: bin/clone_member:139
+msgid " clone address added:"
+msgstr " endereço clone adicionado:"
+
+#: bin/clone_member:142
+msgid " clone address is already a member:"
+msgstr " endereço clone já é um membro:"
+
+#: bin/clone_member:145
+msgid " original address removed:"
+msgstr " endereço original removido:"
+
+#: bin/clone_member:196
+msgid "Not a valid email address: %(toaddr)s"
+msgstr "Não é um endereço de email válido: %(toaddr)s"
+
+#: bin/clone_member:209
+msgid ""
+"Error opening list \"%(listname)s\", skipping.\n"
+"%(e)s"
+msgstr ""
+"Erro abrindo a lista %(listname)s, pulando\n"
+"%(e)s"
+
+#: bin/config_list:19
+msgid ""
+"Configure a list from a text file description.\n"
+"\n"
+"Usage: config_list [options] listname\n"
+"\n"
+"Options:\n"
+" --inputfile filename\n"
+" -i filename\n"
+" Configure the list by assigning each module-global variable in the\n"
+" file to an attribute on the list object, then saving the list. The\n"
+" named file is loaded with execfile() and must be legal Python code.\n"
+" Any variable that isn't already an attribute of the list object is\n"
+" ignored (a warning message is printed). See also the -c option.\n"
+"\n"
+" A special variable named `mlist' is put into the globals during the\n"
+" execfile, which is bound to the actual MailList object. This lets "
+"you\n"
+" do all manner of bizarre thing to the list object, but BEWARE! "
+"Using\n"
+" this can severely (and possibly irreparably) damage your mailing "
+"list!\n"
+"\n"
+" --outputfile filename\n"
+" -o filename\n"
+" Instead of configuring the list, print out a list's configuration\n"
+" variables in a format suitable for input using this script. In "
+"this\n"
+" way, you can easily capture the configuration settings for a\n"
+" particular list and imprint those settings on another list. "
+"filename\n"
+" is the file to output the settings to. If filename is `-', "
+"standard\n"
+" out is used.\n"
+"\n"
+" --checkonly\n"
+" -c\n"
+" With this option, the modified list is not actually changed. Only\n"
+" useful with -i.\n"
+"\n"
+" --verbose\n"
+" -v\n"
+" Print the name of each attribute as it is being changed. Only "
+"useful\n"
+" with -i.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+"The options -o and -i are mutually exclusive.\n"
+"\n"
+msgstr ""
+"Configura uma lista de uma descrição de arquivo de texto.\n"
+"\n"
+"Uso: config_list [opções] nomedalista\n"
+"\n"
+"Opções:\n"
+" --inputfile arquivo\n"
+" -i filename\n"
+" Configura a lista designando cada variável de módulo global no\n"
+" arquivo em um atributo da lista de objetos, então salvando a \n"
+" lista. O arquivo especificado é carregado com \n"
+" (execfile() e deve ser um código Python legal. \n"
+" Qualquer variável que já não for um atributo para o objeto da\n"
+" lista é ignorado (uma mensagem de alerta é mostrada). \n"
+" Veja também a opção -c.\n"
+"\n"
+" Uma variável especial com o nome 'mlist' é colocada no globals\n"
+" durante um execfile, que é amarrado ao objeto atual da lista\n"
+" de discussão. Isto lhe permite fazer todas as coisas de maneira\n"
+" bizarras ao objeto dal ista, mas CUIDADO! usando isto poderá \n"
+" (e possívelmente de forma irreparável) danificar sua lista \n"
+" de discussão!\n"
+"\n"
+" --outputfile arquivo\n"
+" -o filename\n"
+" Ao invés de configurar a lista, mostra as variáveis de configuração\n"
+" da lista em um formato apropriado de entrada usando este script.\n"
+" Desta forma, você poderá capturar facilmente as opções de \n"
+" configuração de uma lista particular e mostrará estas configurações\n"
+" em outra lista. O \"arquivo\" é o nome de arquivo que as "
+"configurações\n"
+" serão direcionadas. Caso o nome de arquivo seja '-' a saída \n"
+" padrão é usada.\n"
+"\n"
+" --checkonly\n"
+" -c\n"
+" Com esta opção, a lista modifica não é atualmente mexida. Somente\n"
+" útil com a opção -i.\n"
+"\n"
+" --verbose\n"
+" -v\n"
+" Mostra o nome de cada atributo como se estivesse sendo modificado.\n"
+" Somente útil com a opção -i.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Mostra esta mensagem de ajuda e sai.\n"
+"As opções -i e -i são mutualmente exclusivas.\n"
+"\n"
+
+#: bin/config_list:109
+msgid ""
+"## \"%(listname)s\" mailing list configuration settings -*- python -*-\n"
+"## captured on %(when)s\n"
+msgstr ""
+"## configuração da lista de discussão \"%(listname)s\" -*- python -*-\n"
+"## capiturada em %(when)s\n"
+
+#: bin/config_list:131
+msgid "options"
+msgstr "opções"
+
+#: bin/config_list:188
+msgid "legal values are:"
+msgstr "valores legais são:"
+
+#: bin/config_list:255
+msgid "attribute \"%(k)s\" ignored"
+msgstr "atributo \"%(k)s ignorado"
+
+#: bin/config_list:258
+msgid "attribute \"%(k)s\" changed"
+msgstr "atributo \"%(k)s\" modificado"
+
+#: bin/config_list:264
+msgid "Non-standard property restored: %(k)s"
+msgstr "Propriedade não padrão restaurada: %(k)s"
+
+#: bin/config_list:272
+msgid "Invalid value for property: %(k)s"
+msgstr "Valor inválido para a propriedade: %(k)s"
+
+#: bin/config_list:274
+msgid "Bad email address for option %(k)s: %(v)s"
+msgstr "Endereço de e-mail incorreto para a opção %(k)s: %(v)s"
+
+#: bin/config_list:322
+msgid "Only one of -i or -o is allowed"
+msgstr "Somente as opções -i e -o são permitidas"
+
+#: bin/config_list:324
+msgid "One of -i or -o is required"
+msgstr "Somente uma das opções -i ou -o é requerida"
+
+#: bin/config_list:328
+msgid "List name is required"
+msgstr "O nome da lista é requerido"
+
+#: bin/convert.py:19
+msgid ""
+"Convert a list's interpolation strings from %-strings to $-strings.\n"
+"\n"
+"This script is intended to be run as a bin/withlist script, i.e.\n"
+"\n"
+"% bin/withlist -l -r convert <mylist>\n"
+msgstr ""
+"Converte uma lista de strings interpoladas de %-strings para \n"
+"$-strings. \n"
+"\n"
+"Este script tem a intenção de ser executado pelo script /bin/withlist, i.e.\n"
+"\n"
+"% bin/withlist -l -r convert <minhalista>\n"
+
+#: bin/convert.py:38 bin/fix_url.py:85
+msgid "Saving list"
+msgstr "Salvando lista"
+
+#: bin/convert.py:44 bin/fix_url.py:51
+msgid "%%%"
+msgstr "%%%"
+
+#: bin/dumpdb:19
+msgid ""
+"Dump the contents of any Mailman `database' file.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] filename\n"
+"\n"
+"Options:\n"
+"\n"
+" --marshal/-m\n"
+" Assume the file contains a Python marshal, overridding any "
+"automatic\n"
+" guessing.\n"
+"\n"
+" --pickle/-p\n"
+" Assume the file contains a Python pickle, overridding any automatic\n"
+" guessing.\n"
+"\n"
+" --noprint/-n\n"
+" Don't attempt to pretty print the object. This is useful if "
+"there's\n"
+" some problem with the object and you just want to get an unpickled\n"
+" representation. Useful with `python -i bin/dumpdb <file>'. In "
+"that\n"
+" case, the root of the tree will be left in a global called \"msg\".\n"
+"\n"
+" --help/-h\n"
+" Print this help message and exit\n"
+"\n"
+"If the filename ends with `.db', then it is assumed that the file contains "
+"a\n"
+"Python marshal. If the file ends with `.pck' then it is assumed to contain "
+"a\n"
+"Python pickle. In either case, if you want to override the default "
+"assumption\n"
+"-- or if the file ends in neither suffix -- use the -p or -m flags.\n"
+msgstr ""
+"Faz o dump do conteúdo de qualquer de banco de dados do Mailman.\n"
+"\n"
+"Uso: %(PROGRAM)s [opções] arquivo\n"
+"\n"
+"Opções:\n"
+"\n"
+" --marshal/-m\n"
+" Assume o arquivo contendo um preparo em Python, substituindo \n"
+" qualquer adivinhação automática.\n"
+"\n"
+" --pickle/-p\n"
+" Assume que o arquivo contém um conserva do Python, substituindo\n"
+" qualquer adivinhação automática.\n"
+"\n"
+"\n"
+" --noprint/-n\n"
+" Não tenta mostrar de forma bonita o objeto. Isto é útil \n"
+" se existir algum problema com ele e quiser uma representação\n"
+" mais simples. Esta opção é útil se usada com \n"
+" `python -i bin/dumpdb <file>'. Neste caso, o raíz da árvore será \n"
+" deixado em uma variável global chamada de \\\"msg\\\".\n"
+"\n"
+" --help/-h\n"
+" Mostra esta mensagem de ajuda e sai\n"
+"\n"
+"Se o nome de arquivo terminar com '.db', então é assumido que este arquivo\n"
+"contém a preparo em Python. Se o arquivo termina com '.pck' então é "
+"assumido\n"
+"que ele contém uma consrva em Python. Em ambos os cados, se quiser "
+"substituir\n"
+"o padrão assumindo -- ou se o arquifo finaliza com nenhuma extensão -- use \n"
+"as opções -p ou -m.\n"
+
+#: bin/dumpdb:101
+msgid "No filename given."
+msgstr "Nenhum nome de arquivo fornecido."
+
+#: bin/dumpdb:104
+msgid "Bad arguments: %(pargs)s"
+msgstr "Argumentos incorretos: %(pargs)s"
+
+#: bin/dumpdb:114
+msgid "Please specify either -p or -m."
+msgstr "Por favor especifique ou -p ou -m."
+
+#: bin/find_member:19
+msgid ""
+"Find all lists that a member's address is on.\n"
+"\n"
+"Usage:\n"
+" find_member [options] regex [regex [...]]\n"
+"\n"
+"Where:\n"
+" --listname=listname\n"
+" -l listname\n"
+" Include only the named list in the search.\n"
+"\n"
+" --exclude=listname\n"
+" -x listname\n"
+" Exclude the named list from the search.\n"
+"\n"
+" --owners\n"
+" -w\n"
+" Search list owners as well as members.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" regex\n"
+" A Python regular expression to match against.\n"
+"\n"
+"The interaction between -l and -x is as follows. If any -l option is given\n"
+"then only the named list will be included in the search. If any -x option "
+"is\n"
+"given but no -l option is given, then all lists will be search except those\n"
+"specifically excluded.\n"
+"\n"
+"Regular expression syntax is Perl5-like, using the Python re module. "
+"Complete\n"
+"specifications are at:\n"
+"\n"
+"http://www.python.org/doc/current/lib/module-re.html\n"
+"\n"
+"Address matches are case-insensitive, but case-preserved addresses are\n"
+"displayed.\n"
+"\n"
+msgstr ""
+"Mostra todas as listas que um membro está inscrito.\n"
+"\n"
+"Uso:\n"
+" find_member [opções] regex [regex [...]]\n"
+"\n"
+"Onde:\n"
+" --listname=lista\n"
+" -l listname\n"
+" Inclui somente o nome da lista na procura.\n"
+"\n"
+" --exclude=lista\n"
+" -x listname\n"
+" Exclui o nome da lista da pesquisa.\n"
+"\n"
+" --owners\n"
+" -w\n"
+" Procura os donos da lista também como membros.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Mostra esta mensagem de ajuda e sai.\n"
+"\n"
+" regex\n"
+" Uma expressão regular em Python que será conferida.\n"
+"\n"
+"A interação entre -l e -x é como segue. Se qualquer opção -l é \n"
+"fornecida então somente a lista especificada será incluida na procura. \n"
+"Se qualquer opção -x é fornecida mas nenhuma opção -l, então todas as "
+"listas\n"
+"serão pesquisadas exceto as especificamente excluídas.\n"
+"\n"
+"A sintaxe de expressões regulares é no estilo Perl5, usando o módulo\n"
+"Python. As especificações completas podem ser encontradas em:\n"
+"\n"
+"http://www.python.org/doc/current/lib/module-re.html\n"
+"\n"
+"Endereços que conferem são case-insensitive, mas endereços case-sensitive\n"
+"são mostrados.\n"
+"\n"
+
+#: bin/find_member:159
+msgid "Search regular expression required"
+msgstr "Expressão regular de pesquisa requerida"
+
+#: bin/find_member:164
+msgid "No lists to search"
+msgstr "Nenhuma lista a ser pesquisada"
+
+#: bin/find_member:173
+msgid "found in:"
+msgstr "encontrado em:"
+
+#: bin/find_member:179
+msgid "(as owner)"
+msgstr "(como dono)"
+
+#: bin/fix_url.py:19
+msgid ""
+"Reset a list's web_page_url attribute to the default setting.\n"
+"\n"
+"This script is intended to be run as a bin/withlist script, i.e.\n"
+"\n"
+"% bin/withlist -l -r fix_url listname [options]\n"
+"\n"
+"Options:\n"
+" -u urlhost\n"
+" --urlhost=urlhost\n"
+" Look up urlhost in the virtual host table and set the web_page_url "
+"and\n"
+" host_name attributes of the list to the values found. This\n"
+" essentially moves the list from one virtual domain to another.\n"
+"\n"
+" Without this option, the default web_page_url and host_name values "
+"are\n"
+" used.\n"
+"\n"
+" -v / --verbose\n"
+" Print what the script is doing.\n"
+"\n"
+"If run standalone, it prints this help text and exits.\n"
+msgstr ""
+"Reseta o atributo web_page_url attribute para a configuração padrão.\n"
+"\n"
+"Este script tem a intençõa de ser executado com um script bin/withlist, \n"
+"i.e.\n"
+"\n"
+"% bin/withlist -l -r fix_url nome_da_lista [opções]\n"
+"\n"
+"Opções:\n"
+" -u urlhost\n"
+" --urlhost=urlhost\n"
+" Procura por urlhost na tabela de virtual hoste e ajusta os "
+"atributos\n"
+" web_page_url e host_name das listas para valores encontrados.\n"
+" Isto essencialmetne move alista de um domínio virtual para outro.\n"
+"\n"
+" Sem esta opção, os valores padrões web_page_url e host_names\n"
+" são usados.\n"
+"\n"
+" -v / --verbose\n"
+" Mostra o que o script está fazendo.\n"
+"\n"
+"Caso esteja sendo executado em standalone, ele mostra este texto de ajuda\n"
+"e sai.\n"
+
+#: bin/fix_url.py:80
+msgid "Setting web_page_url to: %(web_page_url)s"
+msgstr "Ajustando web_page_url para: %(web_page_url)s"
+
+#: bin/fix_url.py:83
+msgid "Setting host_name to: %(mailhost)s"
+msgstr "Ajusatando o host_name para: %(mailhost)s"
+
+#: bin/genaliases:19
+msgid ""
+"Regenerate Postfix's data/aliases and data/aliases.db files from scratch.\n"
+"\n"
+"Usage:\n"
+"\n"
+" genaliases [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+msgstr ""
+"Regenera os arquivos data/aliases e data/aliases.db do nada.\n"
+"\n"
+"Uso:\n"
+"\n"
+" genaliases [opções]\n"
+"\n"
+"Opções:\n"
+"\n"
+" -h/--help\n"
+" Mostra esta mensagem e sai.\n"
+
+#: bin/inject:19
+msgid ""
+"Inject a message from a file into Mailman's incoming queue.\n"
+"\n"
+"Usage: inject [options] [filename]\n"
+"\n"
+"Options:\n"
+"\n"
+" -h / --help\n"
+" Print this text and exit.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" The name of the list to inject this message to. Required.\n"
+"\n"
+" -q queuename\n"
+" --queue=queuename\n"
+" The name of the queue to inject the message to. The queuename must "
+"be\n"
+" one of the directories inside the qfiles directory. If omitted, "
+"the\n"
+" incoming queue is used.\n"
+"\n"
+"filename is the name of the plaintext message file to inject. If omitted,\n"
+"standard input is used.\n"
+msgstr ""
+"Injeta (envia) uma mensagem de um arquivo na quee de entrada do Mailman\n"
+"\n"
+"uso: inject [opções] [arquivo]\n"
+"\n"
+"Opções:\n"
+"\n"
+" -h / --help\n"
+" Mostra este texto e sai.\n"
+"\n"
+" -l nome_da_lista\n"
+" --listname=lista\n"
+" O nome da lista que terá a mensagem injetada. Requerido.\n"
+"\n"
+" -q nomequeue\n"
+" --queue=nomequeue\n"
+" O nome da queue para injeita uma mensagem. O nomedaqueue deve ser\n"
+" um dos diretórios dentro do diretório qfiles. Caso seja omitido, \n"
+" a queue de incoming é usada.\n"
+"\n"
+"o nome de arquivo é o nome das mensagens em texto plano que serão \n"
+"injetados. Se omitido, a entrada padrão é usada.\n"
+
+#: bin/inject:83
+msgid "Bad queue directory: %(qdir)s"
+msgstr "Diretório de queue inválida: %(qdir)s"
+
+#: bin/inject:88
+msgid "A list name is required"
+msgstr "É requerido um nome de lista"
+
+#: bin/list_admins:19
+msgid ""
+"List all the owners of a mailing list.\n"
+"\n"
+"Usage: %(program)s [options] listname ...\n"
+"\n"
+"Where:\n"
+"\n"
+" --all-vhost=vhost\n"
+" -v=vhost\n"
+" List the owners of all the mailing lists for the given virtual "
+"host.\n"
+"\n"
+" --all\n"
+" -a\n"
+" List the owners of all the mailing lists on this system.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+"`listname' is the name of the mailing list to print the owners of. You can\n"
+"have more than one named list on the command line.\n"
+msgstr ""
+"Lista todos os donos de uma lista de discussão.\n"
+"\n"
+"Uso: %(program)s [opções] nomedalista ...\n"
+"\n"
+"Onde:\n"
+"\n"
+" --all-vhost=vhost\n"
+" -v=vhost\n"
+" Lista os donos de todas as lista de discussào de um virtual host\n"
+" fornecido.<\n"
+"\n"
+" -all\n"
+" -a\n"
+" Lista os donos de todas as listas de discussão neste sistema.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Mostra esta mensagem de ajuda e sai.\n"
+"\n"
+"'nomedalista' é o nome da lista de discussão que terão seus donos "
+"mostrados. \n"
+"Você poderá ter mais de uma lista especificada na linha de comando.\n"
+
+#: bin/list_admins:96
+msgid "List: %(listname)s, \tOwners: %(owners)s"
+msgstr "Lista: %(listname)s, \\tDonos: %(owners)s"
+
+#: bin/list_lists:19
+msgid ""
+"List all mailing lists.\n"
+"\n"
+"Usage: %(program)s [options]\n"
+"\n"
+"Where:\n"
+"\n"
+" -a / --advertised\n"
+" List only those mailing lists that are publically advertised\n"
+"\n"
+" --virtual-host-overview=domain\n"
+" -V domain\n"
+" List only those mailing lists that are homed to the given virtual\n"
+" domain. This only works if the VIRTUAL_HOST_OVERVIEW variable is\n"
+" set.\n"
+"\n"
+" -b / --bare\n"
+" Displays only the list name, with no description.\n"
+"\n"
+" -h / --help\n"
+" Print this text and exit.\n"
+"\n"
+msgstr ""
+"Lista todas as listas de discussão.\n"
+"\n"
+"Uso: %(program)s [opções]\n"
+"\n"
+"Onde:\n"
+"\n"
+" --advertised\n"
+" -a\n"
+" Lista somente as listas de discussão que tem acesso público\n"
+"\n"
+" --virtual-host-overview=domínio\n"
+" -V domínio\n"
+" Lista somente as listas de discussão que são hospedadas para "
+"oferecer\n"
+" domínio virtual. Isto somente funciona se a variável \n"
+" VIRTUAL_HOST\n"
+"\n"
+" -b / --bare\n"
+" Mostra somente o nome da lista, sem a descrição.\n"
+"\n"
+" -h / --help\n"
+" Mostra este texto e sai.\n"
+"\n"
+
+#: bin/list_lists:105
+msgid "No matching mailing lists found"
+msgstr "Nenhuma lista de discussão que confere foi encontrada"
+
+#: bin/list_lists:109
+msgid "matching mailing lists found:"
+msgstr "listas de discussão que conferem encontradas:"
+
+#: bin/list_members:19
+msgid ""
+"List all the members of a mailing list.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] listname\n"
+"\n"
+"Where:\n"
+"\n"
+" --output file\n"
+" -o file\n"
+" Write output to specified file instead of standard out.\n"
+"\n"
+" --regular / -r\n"
+" Print just the regular (non-digest) members.\n"
+"\n"
+" --digest[=kind] / -d [kind]\n"
+" Print just the digest members. Optional argument can be \"mime\" "
+"or\n"
+" \"plain\" which prints just the digest members receiving that kind "
+"of\n"
+" digest.\n"
+"\n"
+" --nomail[=why] / -n [why]\n"
+" Print the members that have delivery disabled. Optional argument "
+"can\n"
+" be \"byadmin\", \"byuser\", \"bybounce\", or \"unknown\" which "
+"prints just the\n"
+" users who have delivery disabled for that reason. It can also be\n"
+" \"enabled\" which prints just those member for whom delivery is\n"
+" enabled.\n"
+"\n"
+" --fullnames / -f\n"
+" Include the full names in the output.\n"
+"\n"
+" --preserve\n"
+" -p\n"
+" Output member addresses case preserved the way they were added to "
+"the\n"
+" list. Otherwise, addresses are printed in all lowercase.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname is the name of the mailing list to use.\n"
+"\n"
+"Note that if neither -r or -d is supplied, both regular members are printed\n"
+"first, followed by digest members, but no indication is given as to address\n"
+"status.\n"
+msgstr ""
+"Lista todos os membros de uma lista de discussão.\n"
+"\n"
+"Uso: %(PROGRAM)s [opções] nomedalista\n"
+"\n"
+"Onde:\n"
+"\n"
+" --output arquivo\n"
+" -o arquivo\n"
+" Escreve a saída para o arquivo especificado ao invés da \n"
+" saída padrão.\n"
+"\n"
+" --regular / -r\n"
+" Mostra somente os membros regulares (não-digest).\n"
+"\n"
+" --digest[=kind] / -d [kind]\n"
+" Mostra somente os membros digest. Os argumentos opticionais\n"
+" podem ser \"mime\" ou \"plain\" que mostra apenas os membros digest\n"
+" recebendo aquele tipo de digest.\n"
+"\n"
+" --nomail[=why] / -n [porque]\n"
+" Mostra os membros que tem a entrega desativada. Um argumento "
+"opcional\n"
+" pode ser \"byadmin\", \"byuser\", \"bybounce\" ou \"unknown\" que "
+"mostra\n"
+" somente os usuários que tem a entrega desativada por aquela razão.\n"
+" Ela também poderá ser ativada \"que mostra\" apenas que membros de \n"
+" sua entrega estão ativados.\n"
+"\n"
+" --fullnames / -f\n"
+" Inclui os nomes completos na saída.\n"
+"\n"
+" --preserve\n"
+" -p\n"
+" Exibe endereços de membros em case preserved da forma que eles\n"
+" são adicionados a lista. Caso contrário, os endereços são \n"
+" mostrados em minúsculas.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Mostra esta mensagem de ajuda e sai.\n"
+"\n"
+" listname é o nome da lista de discussão que utiliza.\n"
+"\n"
+"Note que se ambas -r ou -d forem fornecidas, ambos membros regulares\n"
+"são exibidos primeiro, seguidos de membros digest, mas nenhuma indicação\n"
+"é mostrada para o statos de endereço.\n"
+
+#: bin/list_members:150
+msgid "Bad --nomail option: %(why)s"
+msgstr "Opção --nomail incorreta: %(why)s"
+
+#: bin/list_members:161
+msgid "Bad --digest option: %(kind)s"
+msgstr "Opção --digest incorreta: %(kind)s"
+
+#: bin/list_members:179
+msgid "Could not open file for writing:"
+msgstr "Não fou possível abrir o arquivo para gravação:"
+
+#: bin/list_owners:19
+msgid ""
+"List the owners of a mailing list, or all mailing lists.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname ...]\n"
+"Options:\n"
+"\n"
+" -w / --with-listnames\n"
+" Group the owners by list names and include the list names in the\n"
+" output. Otherwise, the owners will be sorted and uniquified based "
+"on\n"
+" the email address.\n"
+"\n"
+" -m / --moderators\n"
+" Include the list moderators in the output.\n"
+"\n"
+" -h / --help\n"
+" Print this help message and exit.\n"
+"\n"
+" listname\n"
+" Print the owners of the specified lists. More than one can appear\n"
+" after the options. If there are no listnames provided, the owners "
+"of\n"
+" all the lists will be displayed.\n"
+msgstr ""
+"Lista os donos de uma lista de discussão, ou de todas as listas de "
+"discussão.\n"
+"\n"
+"Uso: %(PROGRAM)s [opções] [nome_da_lista ...]\n"
+"Opções:\n"
+"\n"
+" -w / --with-listnames\\\n"
+" Agrupa os donos por nomes de lista e inclui o nome da lista no\n"
+" resultado de saída. Caso contrário, os donos serão classificados\n"
+" de acordo com seu endereço de e-mail.\n"
+"\n"
+" -m / --moderators\n"
+" Inclui a lista de moderadores na saída do comando.\n"
+"\n"
+" -h / --help\n"
+" Mostra esta mensagem de ajuda e sai.\n"
+"\n"
+" nome_da_lista\n"
+" Mostra os donos de uma lista especificada. Mais deu uma lista\n"
+" pode ser especificada após as opções. Se não for especificado \n"
+" nenhum nome de lista, os donos de todas as listas serão mostrados.\n"
+
+#: bin/mailmanctl:19
+msgid ""
+"Primary start-up and shutdown script for Mailman's qrunner daemon.\n"
+"\n"
+"This script starts, stops, and restarts the main Mailman queue runners, "
+"making\n"
+"sure that the various long-running qrunners are still alive and kicking. "
+"It\n"
+"does this by forking and exec'ing the qrunners and waiting on their pids.\n"
+"When it detects a subprocess has exited, it may restart it.\n"
+"\n"
+"The qrunners respond to SIGINT, SIGTERM, and SIGHUP. SIGINT and SIGTERM "
+"both\n"
+"cause the qrunners to exit cleanly, but the master will only restart "
+"qrunners\n"
+"that have exited due to a SIGINT. SIGHUP causes the master and the "
+"qrunners\n"
+"to close their log files, and reopen then upon the next printed message.\n"
+"\n"
+"The master also responds to SIGINT, SIGTERM, and SIGHUP, which it simply\n"
+"passes on to the qrunners (note that the master will close and reopen its "
+"own\n"
+"log files on receipt of a SIGHUP). The master also leaves its own process "
+"id\n"
+"in the file data/master-qrunner.pid but you normally don't need to use this\n"
+"pid directly. The `start', `stop', `restart', and `reopen' commands handle\n"
+"everything for you.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [ start | stop | restart | reopen ]\n"
+"\n"
+"Options:\n"
+"\n"
+" -n/--no-restart\n"
+" Don't restart the qrunners when they exit because of an error or a\n"
+" SIGINT. They are never restarted if they exit in response to a\n"
+" SIGTERM. Use this only for debugging. Only useful if the `start'\n"
+" command is given.\n"
+"\n"
+" -u/--run-as-user\n"
+" Normally, this script will refuse to run if the user id and group "
+"id\n"
+" are not set to the `mailman' user and group (as defined when you\n"
+" configured Mailman). If run as root, this script will change to "
+"this\n"
+" user and group before the check is made.\n"
+"\n"
+" This can be inconvenient for testing and debugging purposes, so the -"
+"u\n"
+" flag means that the step that sets and checks the uid/gid is "
+"skipped,\n"
+" and the program is run as the current user and group. This flag is\n"
+" not recommended for normal production environments.\n"
+"\n"
+" Note though, that if you run with -u and are not in the mailman "
+"group,\n"
+" you may have permission problems, such as begin unable to delete a\n"
+" list's archives through the web. Tough luck!\n"
+"\n"
+" -s/--stale-lock-cleanup\n"
+" If mailmanctl finds an existing master lock, it will normally exit\n"
+" with an error message. With this option, mailmanctl will perform "
+"an\n"
+" extra level of checking. If a process matching the host/pid "
+"described\n"
+" in the lock file is running, mailmanctl will still exit, but if no\n"
+" matching process is found, mailmanctl will remove the apparently "
+"stale\n"
+" lock and make another attempt to claim the master lock.\n"
+"\n"
+" -q/--quiet\n"
+" Don't print status messages. Error messages are still printed to\n"
+" standard error.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+"\n"
+"Commands:\n"
+"\n"
+" start - Start the master daemon and all qrunners. Prints a message "
+"and\n"
+" exits if the master daemon is already running.\n"
+"\n"
+" stop - Stops the master daemon and all qrunners. After stopping, no\n"
+" more messages will be processed.\n"
+"\n"
+" restart - Restarts the qrunners, but not the master process. Use this\n"
+" whenever you upgrade or update Mailman so that the qrunners "
+"will\n"
+" use the newly installed code.\n"
+"\n"
+" reopen - This will close all log files, causing them to be re-opened "
+"the\n"
+" next time a message is written to them\n"
+msgstr ""
+"Script primário de inicialização e shutdown para o daemon qrunner do\n"
+"Mailman.\n"
+"Este script inicia, interrompe e reinicia os runners de queue do Mailman,\n"
+"tendo certeza que os vários sub-qrunners de longa execução do mailman\n"
+"ainda estão funcionando e chutando mensagens.\n"
+"Ele faz isto fazendo fork e executando sub-qrunners e aguardando em seus \n"
+"pids. Quando ele detecta que um subprocesso finalizou, ele pode reinicia-"
+"lo.\n"
+"\n"
+"\n"
+"Os sub-qrunners respondem aos sinais SIGINT, SIGTERM, SIGHUP, SIGINT e \n"
+"SIGTERM ambos fazem os sub-qrunners sairem de forma limpa, mas o \n"
+"principal somente reiniciara os sub-qrunners que sairam devido a um SIGINT.\n"
+"O SIGHUP faz o qrunner master e sub-qrunners fechar seus arquivos de log e \n"
+"os reabrirem até que a próxima mensagem seja impressa.\n"
+"\n"
+"O qrunner master também responde a SIGINT, SIGTERM e SIGHUP que é \n"
+"simplesmente passado aos sub-qrunners (note que o master fechará e \n"
+"reabrirá rus arquivos de logs durante o recebimento de um sinal \n"
+"HUP). O qrunner master também deixa a identificacão de seu próprio\n"
+"processo no arquivo data/master-qrunner.pid mas você normalmente\n"
+"não precisa usar este pid diretamente. Os comandos 'start', \n"
+"'stop', 'restart' e 'open' fazem tudo para voce.\n"
+"\n"
+"Uso: %(PROGRAM)s [opções] [ start | stop | restart | reopen ]\n"
+"\n"
+"Opções:\n"
+"\n"
+" -n/--no-restart\n"
+" Não reinicia os sub-qrunners quando eles saem por causa de um erro\n"
+" ou um SIGINT (eles nunca são reiniciados caso sejam terminados com \n"
+" uma resposta ao SIGTERM). Use isto somente como debugging. Somente\n"
+" útil se o comando start for especificado.\n"
+"\n"
+" -u/--run-as-user\n"
+" Normalmente, este script recusará ser executado se o id de usuário \n"
+" e grupo não forem definidos para o usuário e grupo do 'mailman'\n"
+" (como definido quanod você configurou o Mailman). Caso seja \n"
+" executado como root, este script modificará este usuário e grupo\n"
+" antes da checagem ser feita.\n"
+"\n"
+" Isto pode ser incoveniente para propósitos de testes e depuração,\n"
+" assim a opção -u significa que o passo que ajusta e verifica o\n"
+" uid/gid é pulado, e o programa é executado com o usuário e grupo\n"
+" atual. Esta opção não é recomendada para ambientes de produção \n"
+" normais.\n"
+"\n"
+" Note no entanto, que se executar com a opção -u e não estiver no\n"
+" grupo mailman, você poderá ter problemas de permissões, tal como\n"
+" não ser capaz de apagar um arquivo de lista através da web.\n"
+"\n"
+"\n"
+" -s/--stale-lock-cleanup\n"
+" Caso o mailmanctl encontre um bloqueio no master qrunner "
+"existente, \n"
+" ele normalmente sairá com uma mensagem de erro. Com esta opção, \n"
+" o mailmanctl fará um nível extra de checagem. Caso um processo\n"
+" conferindo com o host/pid descrito no lock file esteja em execução,\n"
+" o mailmanctl removerá o lock e fará outra tentativa de se tornar\n"
+" o lock principal.\n"
+"\n"
+" -q/--quiet\n"
+" Não mostrar mensagens de status. As mensagens de erro ainda serão\n"
+" mostradas para a saída padrão.\n"
+"\n"
+" -h/--help\n"
+" Mostra esta mensagem e sai.\n"
+"\n"
+"Comandos:\n"
+"\n"
+" start - Inicia o daemon qrunner master e todos os sub-qrunners. "
+"Mostra\n"
+" uma mensagem e sai se o daemon master do qrunner já esteja \n"
+" sendo executado.\n"
+"\n"
+" stop - Interrompe o daemon principal do qrunner e todos os sub-"
+"qrunners.\n"
+" Apos a parada, nenhuma mensagem será mais processada.\n"
+"\n"
+" restart - Reinicia os sub-qrunners, mas não o qrunner master. Isto é "
+"muito\n"
+" bom para desenvolvimento, porque sem reiniciar, os sub-"
+"qrunners\n"
+" não reiniciarão qualquer módulo alterado.\n"
+"\n"
+" reopen - Isto fará que os arquivos de logs sejam reabertos.\n"
+
+#: bin/mailmanctl:149
+msgid "PID unreadable in: %(pidfile)s"
+msgstr "PID não legível em: %(pidfile)s"
+
+#: bin/mailmanctl:151
+msgid "Is qrunner even running?"
+msgstr "O qrunner está sempre sendo executado?"
+
+#: bin/mailmanctl:157
+msgid "No child with pid: %(pid)s"
+msgstr "Nenhum processo filho com a pid: %(pid)s"
+
+#: bin/mailmanctl:159
+msgid "Stale pid file removed."
+msgstr "Arquivo pid estragado removido."
+
+#: bin/mailmanctl:217
+msgid ""
+"The master qrunner lock could not be acquired because it appears as if "
+"another\n"
+"master qrunner is already running.\n"
+msgstr ""
+"O lock do qrunner master não será adquirido porque ele se parece como se "
+"outro\n"
+"qrunner master já estivesse sendo executado.\n"
+
+#: bin/mailmanctl:223
+msgid ""
+"The master qrunner lock could not be acquired. It appears as though there "
+"is\n"
+"a stale master qrunner lock. Try re-running mailmanctl with the -s flag.\n"
+msgstr ""
+"O lock principal do qrunner não pode ser obtido. Parece como se lá\n"
+"estivesse um lock stale do qrunner master. Tente re-executar o mailmanctl "
+"com \n"
+"a opção -s.\n"
+
+#: bin/mailmanctl:229
+msgid ""
+"The master qrunner lock could not be acquired, because it appears as if "
+"some\n"
+"process on some other host may have acquired it. We can't test for stale\n"
+"locks across host boundaries, so you'll have to do this manually. Or, if "
+"you\n"
+"know the lock is stale, re-run mailmanctl with the -s flag.\n"
+"\n"
+"Lock file: %(LOCKFILE)s\n"
+"Lock host: %(status)s\n"
+"\n"
+"Exiting."
+msgstr ""
+"O lock principal do qrunner não pode ser conseguido, porque se parece como \n"
+"se algum processo em outra máquina oi pegou. Nós não podemos testar por \n"
+"locks defeituosos entre limites de máquinas, assim você terá que fazer "
+"isto \n"
+"manualmente. OU, se saber o que é um lock stale, re-execute o mailmanctl "
+"com \n"
+"a opção -s.\n"
+"\n"
+"Arquivo de Lock: %(LOCKFILE)s\n"
+"Máquina de Lock: %(status)s\n"
+"\n"
+"Saindo."
+
+#: bin/mailmanctl:282
+msgid "Run this program as root or as the %(name)s user, or use -u."
+msgstr ""
+"Re-execute este programa como root ou como o usuário %(name)s ou use a \n"
+"opção -u."
+
+#: bin/mailmanctl:313
+msgid "No command given."
+msgstr "Nenhum comando fornecido."
+
+#: bin/mailmanctl:316
+msgid "Bad command: %(command)s"
+msgstr "Comando incorreto: %(command)s"
+
+#: bin/mailmanctl:321
+msgid "Warning! You may encounter permission problems."
+msgstr "Alerta! Você poderá encontrar problemas de permissões."
+
+#: bin/mailmanctl:330
+msgid "Shutting down Mailman's master qrunner"
+msgstr "Finalizando o qrunner master do Mailman"
+
+#: bin/mailmanctl:337
+msgid "Restarting Mailman's master qrunner"
+msgstr "Reiniciando o qrunner master do Mailman"
+
+#: bin/mailmanctl:341
+msgid "Re-opening all log files"
+msgstr "Reabrindo todos os arquivos de log"
+
+#: bin/mailmanctl:375
+msgid "Starting Mailman's master qrunner."
+msgstr "Iniciando o qrunner master do Mailman"
+
+#: bin/mmsitepass:19
+msgid ""
+"Set the site password, prompting from the terminal.\n"
+"\n"
+"The site password can be used in most if not all places that the list\n"
+"administrator's password can be used, which in turn can be used in most "
+"places\n"
+"that a list users password can be used.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [password]\n"
+"\n"
+"Options:\n"
+"\n"
+" -c/--listcreator\n"
+" Set the list creator password instead of the site password. The "
+"list\n"
+" creator is authorized to create and remove lists, but does not have\n"
+" the total power of the site administrator.\n"
+"\n"
+" -h/--help\n"
+" Print this help message and exit.\n"
+"\n"
+"If password is not given on the command line, it will be prompted for.\n"
+msgstr ""
+"Selecione a senha do site, perguntando através do terminal.\n"
+"\n"
+"A senha do site poderá ser usada em muitos casos se nem todos os lugares "
+"que \n"
+"a senha do administrador da lista pode ser usada, que por vezes pode ser "
+"usada\n"
+"em muitos lugares onde uma senha de lista de usuários pode ser usada.\n"
+"\n"
+"Uso: %(PROGRAM)s [opções] [senha]\n"
+"\n"
+"Opções:\n"
+"\n"
+" -c/--listcreator\n"
+" Seleciona a senha do criador da lista ao invés da senha do site. O\n"
+" criador da lista é autorizado a criar e remover listas mas não tem "
+"o \n"
+" poder total do administrador do site.\n"
+" -h/--help\n"
+" Mostra esta mensagem de ajuda e sai.\n"
+"\n"
+"Caso a senha não seja fornecida pela linha de comando, ela será perguntada.\n"
+
+#: bin/mmsitepass:73
+msgid "site"
+msgstr "do site"
+
+#: bin/mmsitepass:80
+msgid "list creator"
+msgstr "criador da lista"
+
+#: bin/mmsitepass:86
+msgid "New %(pwdesc)s password: "
+msgstr "Nova senha %(pwdesc)s: "
+
+#: bin/mmsitepass:87
+msgid "Again to confirm password: "
+msgstr "Novamente para confirmar a senha: "
+
+#: bin/mmsitepass:89
+msgid "Passwords do not match; no changes made."
+msgstr "As senhas não conferem; nenhuma modificação realizada."
+
+#: bin/mmsitepass:92
+msgid "Interrupted..."
+msgstr "Interrompido..."
+
+#: bin/mmsitepass:98
+msgid "Password changed."
+msgstr "Senhas modificadas."
+
+#: bin/mmsitepass:100
+msgid "Password change failed."
+msgstr "Falha na alteração de senha."
+
+#: bin/newlist:19
+msgid ""
+"Create a new, unpopulated mailing list.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname [listadmin-addr [admin-password]]]\n"
+"\n"
+"Options:\n"
+"\n"
+" -l language\n"
+" --language language\n"
+" Make the list's preferred language `language', which must be a two\n"
+" letter language code.\n"
+"\n"
+" -q/--quiet\n"
+" Normally the administrator is notified by email (after a prompt) "
+"that\n"
+" their list has been created. This option suppresses the prompt and\n"
+" notification.\n"
+"\n"
+" -h/--help\n"
+" Print this help text and exit.\n"
+"\n"
+"You can specify as many of the arguments as you want on the command line:\n"
+"you will be prompted for the missing ones.\n"
+"\n"
+"Every Mailman list has two parameters which define the default host name "
+"for\n"
+"outgoing email, and the default URL for all web interfaces. When you\n"
+"configured Mailman, certain defaults were calculated, but if you are "
+"running\n"
+"multiple virtual Mailman sites, then the defaults may not be appropriate "
+"for\n"
+"the list you are creating.\n"
+"\n"
+"You can specify the domain to create your new list in by spelling the "
+"listname\n"
+"like so:\n"
+"\n"
+" mylist@www.mydom.ain\n"
+"\n"
+"where `www.mydom.ain' should be the base hostname for the URL to this "
+"virtual\n"
+"hosts's lists. E.g. with is setting people will view the general list\n"
+"overviews at http://www.mydom.ain/mailman/listinfo. Also, www.mydom.ain\n"
+"should be a key in the VIRTUAL_HOSTS mapping in mm_cfg.py/Defaults.py. It\n"
+"will be looked up to give the email hostname. If this can't be found, then\n"
+"www.mydom.ain will be used for both the web interface and the email\n"
+"interface.\n"
+"\n"
+"If you spell the list name as just `mylist', then the email hostname will "
+"be\n"
+"taken from DEFAULT_EMAIL_HOST and the url will be taken from DEFAULT_URL "
+"(as\n"
+"defined in your Defaults.py file or overridden by settings in mm_cfg.py).\n"
+"\n"
+"Note that listnames are forced to lowercase.\n"
+msgstr ""
+"Cria uma lista de discussão nova e sem usuários.\n"
+"\n"
+"Uso: %(PROGRAM)s [opções] [nome_da_lista [end_adm_lista [senha-admin]]]\n"
+"\n"
+"Opções:\n"
+"\n"
+" -l idioma\n"
+" --language idioma\n"
+" Seleciona o idioma de preferência da lista para 'idioma', que deve\n"
+" ser um código de idioma de dois caracteres.\n"
+"\n"
+" -q/--quiet\n"
+" Normalmente o administrador é notificado por email (após uma "
+"pergunta)\n"
+" que sua lista foi criada. Esta opção ocula a pergunta e a "
+"notificação.\n"
+"\n"
+" -h/--help\n"
+" Mostra este texto de ajuda e sai.\n"
+"\n"
+"Você pode especificar quantos argumentos quiser na linha de comando:\n"
+"o programa perguntará por aqueles que estiverem faltando.\n"
+"\n"
+"Cada lista do mailman tem dois parâmetros que definem o nome da máquina\n"
+"padrão para as mensagens enviadas e a URL padrão de todas as interfaces\n"
+"web. Quando configura o Mailman, certos padrões são calculados mas se \n"
+"estiver executando múltiplos sites virtuais do Mailman, então os padrões \n"
+"podem não ser apropriados para a lista que estiver criando.\n"
+"\n"
+"Você pode especificar o domínio para criar sua nova lista verificando o "
+"nome\n"
+"da lista como este:\n"
+"\n"
+" mylist@www.mydom.ain\n"
+"\n"
+"onde 'www.mydom.ain' deve ser o nome do host base para a URL para esta \n"
+"lista virtual de máquinas. E.g. definindo pessoas que visualizarão a \n"
+"lista geral em http://www.mydom.ain/mailman/listinfo. Também, \n"
+"www.mydom.ain deverá ser a chave no mapeamento VIRTUAL_HOSTS em \n"
+"mm_cfg.py/Defaults.py. Ele será pesquisado para dar o nome da máquina\n"
+"no email. Caso não seja encontrado, então www.mydom.ain será usado para\n"
+"ambas a interface web e a interface de email.\n"
+"\n"
+"Se verificar o nome da lista como 'mylist', então o hostname do email \n"
+"será pego de DEFAULT_HOST_NAME e a url será pega de DEFAULT_URL (como\n"
+"definida em seu arquivo Defaults.py ou substituido ajustando-a em \n"
+"mm_cfg.py).\n"
+"\n"
+"Note que os nomes de listas são forçados a estarem em minúsculas.\n"
+
+#: bin/newlist:118
+msgid "Unknown language: %(lang)s"
+msgstr "Idioma Desconhecido: %(lang)s"
+
+#: bin/newlist:123
+msgid "Enter the name of the list: "
+msgstr "Entre com o nome da lista:"
+
+#: bin/newlist:140
+msgid "Enter the email of the person running the list: "
+msgstr "Entre com o email da pessoa que administra a lista: "
+
+#: bin/newlist:145
+msgid "Initial %(listname)s password: "
+msgstr "Senha inicial da %(listname)s: "
+
+#: bin/newlist:149
+msgid "The list password cannot be empty"
+msgstr "A senha da lista não pode eetar vazia"
+
+#: bin/newlist:190
+msgid "Hit enter to notify %(listname)s owner..."
+msgstr "PRessione enter para notificar o dono da %(listname)s"
+
+#: bin/qrunner:19
+msgid ""
+"Run one or more qrunners, once or repeatedly.\n"
+"\n"
+"Each named runner class is run in round-robin fashion. In other words, the\n"
+"first named runner is run to consume all the files currently in its\n"
+"directory. When that qrunner is done, the next one is run to consume all "
+"the\n"
+"files in /its/ directory, and so on. The number of total iterations can be\n"
+"given on the command line.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" -r runner[:slice:range]\n"
+" --runner=runner[:slice:range]\n"
+" Run the named qrunner, which must be one of the strings returned by\n"
+" the -l option. Optional slice:range if given, is used to assign\n"
+" multiple qrunner processes to a queue. range is the total number "
+"of\n"
+" qrunners for this queue while slice is the number of this qrunner "
+"from\n"
+" [0..range).\n"
+"\n"
+" If using the slice:range form, you better make sure that each "
+"qrunner\n"
+" for the queue is given the same range value. If slice:runner is "
+"not\n"
+" given, then 1:1 is used.\n"
+"\n"
+" Multiple -r options may be given, in which case each qrunner will "
+"run\n"
+" once in round-robin fashion. The special runner `All' is shorthand\n"
+" for a qrunner for each listed by the -l option.\n"
+"\n"
+" --once\n"
+" -o\n"
+" Run each named qrunner exactly once through its main loop. "
+"Otherwise,\n"
+" each qrunner runs indefinitely, until the process receives a "
+"SIGTERM\n"
+" or SIGINT.\n"
+"\n"
+" -l/--list\n"
+" Shows the available qrunner names and exit.\n"
+"\n"
+" -v/--verbose\n"
+" Spit out more debugging information to the logs/qrunner log file.\n"
+"\n"
+" -s/--subproc\n"
+" This should only be used when running qrunner as a subprocess of "
+"the\n"
+" mailmanctl startup script. It changes some of the exit-on-error\n"
+" behavior to work better with that framework.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+"\n"
+"runner is required unless -l or -h is given, and it must be one of the "
+"names\n"
+"displayed by the -l switch.\n"
+msgstr ""
+"Executando um qrunners ou mais, uma só vez ou repetidamente.\n"
+"\n"
+"Cada classe de execução especificada é executada no método round-robin. Em \n"
+"outras palavras, o primeiro runner nomeado é executado para consumir todos "
+"os \n"
+"arquivos atuais em seu diretóri. Quando este qrunner é concluído, o "
+"próximo \n"
+"é executado para consumir todos os arquivos em /seu/ diretório, e assim "
+"por \n"
+"diante. O número de interações totais pode ser pego através da linha de \n"
+"comando.\n"
+"\n"
+"Uso: %(PROGRAM)s [opções}\n"
+"\n"
+"Opções:\n"
+"\n"
+" -r runner[:pedaço:faixa]\n"
+" --runner=runner[:pedaço:faixa]\n"
+" Executa o qrunner nomeado, que deve ser uma das strings retornadas\n"
+" pela opção -l. Se for especificado a pedaço:faixa opcional, ela \n"
+" será usada para designar múltiplos processos do qrunner em uma \n"
+" queue. A faixa é o número total de qrunners para esta queue "
+"enquanto\n"
+" o \"pedaço\" é o número desta qrunner de [0..faixa].\n"
+"\n"
+" Se estiver usando a forma pedaço:faixa, será melhor ter certeza de \n"
+" que cada qrunner para a queue possui o mesmo valor de escala. Caso\n"
+" o pedaço:runner não seja fornecido, então 1:1 é usado.\n"
+"\n"
+"\n"
+" Podem ser especificadas múltiplas opções -r, no qual cada um será \n"
+" executado na forma sound-robin. O runner especial \"All\" é um \n"
+" atalho para o qrunner para cada listado pela opção -l.\n"
+"\n"
+" --once\n"
+" -o\n"
+" Executa cada qrunner nomeado exatamente uma vez através de seu \n"
+" loop principal. Caso contrário, cada qrunner é executado \n"
+" indefinidamente, até que o processo receba um SIGTERM ou SIGINT.\n"
+"\n"
+" -l/--list\n"
+" Mostra os nomes do qrunner disponíveis e sai.\n"
+"\n"
+" -v/--verbose\n"
+" Mostra mais informações de depuração para o arquivo de log\n"
+" logs/qrunner.\n"
+"\n"
+" -s/--subproc\n"
+" Isto deverá somente ser usado quando executar o qrunner como um\n"
+" subprocesso do script mailmanctl de inicialização. Ele modifica\n"
+" alguns tipos de exit-on-erro para funcionar melhor nestes moldes.\n"
+"\n"
+" -h/--help\n"
+" Mostra esta mensagem e sai.\n"
+"\n"
+"O runner é requerido a não ser que as opções -l ou -h sejam especificadas, \n"
+"e devem ser um dos nomes especificados pela opção -l.\n"
+"\n"
+"\n"
+
+#: bin/qrunner:176
+msgid "%(name)s runs the %(runnername)s qrunner"
+msgstr "%(name)s executa o qrunner %(runnername)s"
+
+#: bin/qrunner:177
+msgid "All runs all the above qrunners"
+msgstr "Todos executam os qrunners acima"
+
+#: bin/qrunner:213
+msgid "No runner name given."
+msgstr "Nenhum nome de runner especificado."
+
+#: bin/remove_members:19
+msgid ""
+"Remove members from a list.\n"
+"\n"
+"Usage:\n"
+" remove_members [options] [listname] [addr1 ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" --file=file\n"
+" -f file\n"
+" Remove member addresses found in the given file. If file is\n"
+" `-', read stdin.\n"
+"\n"
+" --all\n"
+" -a\n"
+" Remove all members of the mailing list.\n"
+" (mutually exclusive with --fromall)\n"
+"\n"
+" --fromall\n"
+" Removes the given addresses from all the lists on this system\n"
+" regardless of virtual domains if you have any. This option cannot "
+"be\n"
+" used -a/--all. Also, you should not specify a listname when using "
+"this\n"
+" option.\n"
+"\n"
+" --nouserack\n"
+" -n\n"
+" Don't send the user acknowledgements.\n"
+"\n"
+" --noadminack\n"
+" -N\n"
+" Don't send the admin acknowledgements.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname is the name of the mailing list to use.\n"
+"\n"
+" addr1 ... are additional addresses to remove.\n"
+"\n"
+msgstr ""
+"Remove membros de uma lista\n"
+"\n"
+"Uso: remove_members [opções] [nome_da_lista] [endereço1 ...]\n"
+"\n"
+"Opções\n"
+"\n"
+" --file=arquivo\n"
+" -f arquivo\n"
+" Remove os endereços de membros encontrados no arquivo fornecido. \n"
+" Caso o arquivo seja '-', le a entrada padrão.\n"
+"\n"
+" --all\n"
+" -a\n"
+" Remove todos os membros de uma lista de discussão.\n"
+" (mutualmente exclusivo com --fromall)\n"
+" \n"
+" --fromall\n"
+" Remove os endereços fornecidos de todas as listas neste sistema\n"
+" ignorando o domínio virtual que possuir. Esta opção não poderá \n"
+" ser usada com -a/-all. Também, você não poderá especificar um\n"
+" nome de lista quando utilizar esta opção.\n"
+"\n"
+" --nouserack\n"
+" Não envia alerta para o usuário.\n"
+"\n"
+" --noadminack\n"
+" Não envia alerta para o administrador.\n"
+"\n"
+" --help\n"
+" Mostra esta mensagem de ajuda e sai.\n"
+"\n"
+" O nome da lista é o nome da lista de discussão que será usada.\n"
+" endereço1... são os endereços a serem removidos.\n"
+
+#: bin/remove_members:147
+msgid "Could not open file for reading: %(filename)s."
+msgstr "Não foi possível abrir o arquivo para leitura: %(filename)s."
+
+#: bin/remove_members:154
+msgid "Error opening list %(listname)s... skipping."
+msgstr "Erro durante a abertura da lista %(listname)s... pulando."
+
+#: bin/remove_members:164
+msgid "No such member: %(addr)s"
+msgstr "Membro inexistente: %(addr)s"
+
+#: bin/remove_members:171
+msgid "User `%(addr)s' removed from list: %(listname)s."
+msgstr "Usuário '%(addr)s' removido da lista: %(listname)s."
+
+#: bin/rmlist:19
+msgid ""
+"Remove the components of a mailing list with impunity - beware!\n"
+"\n"
+"This removes (almost) all traces of a mailing list. By default, the lists\n"
+"archives are not removed, which is very handy for retiring old lists.\n"
+"\n"
+"Usage:\n"
+" rmlist [-a] [-h] listname\n"
+"\n"
+"Where:\n"
+" --archives\n"
+" -a\n"
+" Remove the list's archives too, or if the list has already been\n"
+" deleted, remove any residual archives.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+msgstr ""
+"Remove os componentes de uma lista de discussão!\n"
+"\n"
+"Isto remove (praticamente) todos os traços de existência de uma lista \n"
+"de discussão. Por padrão, os arquivos das listas não são removidos, que é \n"
+"muito bom para despedir-se de listas antigas.\n"
+"\n"
+"Uso:\n"
+" rmlist [-a] [-h] nome_da_lista\n"
+"\n"
+"Onde:\n"
+" --archives\n"
+" -a\n"
+" Remove também os arquivos da lista ou se a lista já foi \n"
+" apagada, remove qualquer arquivo residual.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Mostra esta mensagem de ajuda e sai.\n"
+"\n"
+
+#: bin/rmlist:66 bin/rmlist:69
+msgid "Removing %(msg)s"
+msgstr "Removendo %(msg)s"
+
+#: bin/rmlist:72
+msgid "%(listname)s %(msg)s not found as %(dir)s"
+msgstr "%(msg)s da lista %(listname)s não encontrada como %(dir)s"
+
+#: bin/rmlist:96
+msgid "No such list (or list already deleted): %(listname)s"
+msgstr "Lista inexistente (ou lista já apagada): %(listname)s"
+
+#: bin/rmlist:98
+msgid "No such list: %(listname)s. Removing its residual archives."
+msgstr "Lista inexistente: %(listname)s. Removendo seus arquivos residuais."
+
+#: bin/rmlist:102
+msgid "Not removing archives. Reinvoke with -a to remove them."
+msgstr "Deixando os arquivos da lista. Re-execute com -a para remove-los."
+
+#: bin/rmlist:116
+msgid "list info"
+msgstr "informações da lista"
+
+#: bin/rmlist:122 bin/rmlist:124
+msgid "private archives"
+msgstr "arquivos privados"
+
+#: bin/rmlist:126 bin/rmlist:128
+msgid "public archives"
+msgstr "arquivos públicos"
+
+#: bin/sync_members:19
+msgid ""
+"Synchronize a mailing list's membership with a flat file.\n"
+"\n"
+"This script is useful if you have a Mailman mailing list and a sendmail\n"
+":include: style list of addresses (also as is used in Majordomo). For "
+"every\n"
+"address in the file that does not appear in the mailing list, the address "
+"is\n"
+"added. For every address in the mailing list that does not appear in the\n"
+"file, the address is removed. Other options control what happens when an\n"
+"address is added or removed.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] -f file listname\n"
+"\n"
+"Where `options' are:\n"
+"\n"
+" --no-change\n"
+" -n\n"
+" Don't actually make the changes. Instead, print out what would be\n"
+" done to the list.\n"
+"\n"
+" --welcome-msg[=<yes|no>]\n"
+" -w[=<yes|no>]\n"
+" Sets whether or not to send the newly added members a welcome\n"
+" message, overriding whatever the list's `send_welcome_msg' setting\n"
+" is. With -w=yes or -w, the welcome message is sent. With -w=no, "
+"no\n"
+" message is sent.\n"
+"\n"
+" --goodbye-msg[=<yes|no>]\n"
+" -g[=<yes|no>]\n"
+" Sets whether or not to send the goodbye message to removed members,\n"
+" overriding whatever the list's `send_goodbye_msg' setting is. With\n"
+" -g=yes or -g, the goodbye message is sent. With -g=no, no message "
+"is\n"
+" sent.\n"
+"\n"
+" --digest[=<yes|no>]\n"
+" -d[=<yes|no>]\n"
+" Selects whether to make newly added members receive messages in\n"
+" digests. With -d=yes or -d, they become digest members. With -"
+"d=no\n"
+" (or if no -d option given) they are added as regular members.\n"
+"\n"
+" --notifyadmin[=<yes|no>]\n"
+" -a[=<yes|no>]\n"
+" Specifies whether the admin should be notified for each "
+"subscription\n"
+" or unsubscription. If you're adding a lot of addresses, you\n"
+" definitely want to turn this off! With -a=yes or -a, the admin is\n"
+" notified. With -a=no, the admin is not notified. With no -a "
+"option,\n"
+" the default for the list is used.\n"
+"\n"
+" --file <filename | ->\n"
+" -f <filename | ->\n"
+" This option is required. It specifies the flat file to synchronize\n"
+" against. Email addresses must appear one per line. If filename is\n"
+" `-' then stdin is used.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this message.\n"
+"\n"
+" listname\n"
+" Required. This specifies the list to synchronize.\n"
+msgstr ""
+"Sincroniza um membro de lista de discussão com um arquivo plano.\n"
+"\n"
+"Este script é útil se tiver uma lista de discussão do Mailman e uma \n"
+"lista de endereços do sendmail no estilo :include: (também usado no\n"
+"Majordomo). Para cada endereço naquele arquivo que não aparece na lista\n"
+"de discussão, o endereço é adicionado. Para cada endereço na lista de "
+"discussão\n"
+"que não aparece no arquivo, o endereço será removido. Outras opções \n"
+"controlam o que acontece quando um endereço é adicionado ou removido.\n"
+"\n"
+"Uso: %(PROGRAM)s [opções] -f arquivo nome_da_lista\n"
+"\n"
+"Onde 'opções' são:\n"
+"\n"
+" --no-change\n"
+" -n\n"
+" Não realiza nenhuma modificação. Ao invés disso, mostra o que \n"
+" seria feito na lista.\n"
+"\n"
+" --welcome-msg[=<yes|no>]\n"
+" -w[=<yes|no>]\n"
+" Define se será enviada ou não uma mensagem de boas vindas para um\n"
+" membro adicionado, substituindo qualquer configuração da \n"
+" opção 'send_welcome_msg' da lista. Com -w=yes ou -w, a mensagem \n"
+" de boas vindas é enviada. Com -w=no a mensagem de boas vindas não\n"
+" é enviada.\n"
+"\n"
+" --goodbye-msg[=<yes|no>]\n"
+" -g[=<yes|no>]\n"
+" Ajusta se deve ou não enviar a mensagem de despedida para remover\n"
+" membros substituindo a configuração da opção 'send_goodbye_msg'.\n"
+" Com -g=yes ou -g, a mensagem de despedida é enviada. Com -g=no \n"
+" nenhuma mensagem de despedida é enviada.\n"
+"\n"
+" --digest[=<yes|no>]\n"
+" -d[=<yes|no>]\n"
+" Seleciona quando fazer novos membros adicionados receberem as\n"
+" mensagens em digest. Com -d=yes ou -d, eles se tornam membros \n"
+" recebendo e-mails em digest. Com -d=no (ou sem a opção -d),\n"
+" eles serão adicionandos como membros regulares.\n"
+"\n"
+" --notifyadmin[=<yes|no>]\n"
+" --a[=<yes|no>]\n"
+" Especifica se o administrador deverá ser notificado de cada\n"
+" inscrição ou desinscrição. Se estiver cadastrando diversos "
+"endereços,\n"
+" é interessante desativar esta opção com -a=yes ou -a, o \n"
+" administrador será notificado. Com -a=no, o administrador não será\n"
+" notificado. Com nenhuma opção -a, o padrão para a lista é usado.\n"
+"\n"
+" --file <arquivo | ->\n"
+" -f <arquivo | ->\n"
+" Esta opção é requerida. Ela especifica o arquivo que será usado \n"
+" para o sincronismo. O arquivo deverá conter um endereço de email\n"
+" por linha. Caso o nome de arquivo seja '-', então stdin é usado.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Mostra esta mensagem.\n"
+"\n"
+" nome_da_lista\n"
+" Requerido. Isto especifica a lista a ser sincronizada.\n"
+
+#: bin/sync_members:115
+msgid "Bad choice: %(yesno)s"
+msgstr "Escolha incorreta: %(yesno)s"
+
+#: bin/sync_members:138
+msgid "Dry run mode"
+msgstr "Modo de execução seca"
+
+#: bin/sync_members:159
+msgid "Only one -f switch allowed"
+msgstr "Somente é permitida uma opcao -f"
+
+#: bin/sync_members:163
+msgid "No argument to -f given"
+msgstr "Nenhum argumento passado para -f"
+
+#: bin/sync_members:172
+msgid "Illegal option: %(opt)s"
+msgstr "Opção ilegal: %(opt)s"
+
+#: bin/sync_members:178
+msgid "No listname given"
+msgstr "Nenhum nome de lista fornecido"
+
+#: bin/sync_members:182
+msgid "Must have a listname and a filename"
+msgstr "Deverá ter um nome de lista e nome de arquivo"
+
+#: bin/sync_members:191
+msgid "Cannot read address file: %(filename)s: %(msg)s"
+msgstr "Não foi possível ler um arquivo de endereços: %(filename)s: %(msg)s"
+
+#: bin/sync_members:203
+msgid "Ignore : %(addr)30s"
+msgstr "Ignorar : %(addr)30s"
+
+#: bin/sync_members:212
+msgid "Invalid : %(addr)30s"
+msgstr "Inválido: %(addr)30s"
+
+#: bin/sync_members:215
+msgid "You must fix the preceding invalid addresses first."
+msgstr "Você deverá corrigir os endereços precedentes inválidos primeiro."
+
+#: bin/sync_members:259
+msgid "Added : %(s)s"
+msgstr "Adicionado: %(s)s"
+
+#: bin/sync_members:278
+msgid "Removed: %(s)s"
+msgstr "Removido: %(s)s"
+
+#: bin/transcheck:18
+msgid ""
+"\n"
+"Check a given Mailman translation, making sure that variables and\n"
+"tags referenced in translation are the same variables and tags in\n"
+"the original templates and catalog.\n"
+"\n"
+"Usage:\n"
+"\n"
+"cd $MAILMAN_DIR\n"
+"%(program)s [-q] <lang>\n"
+"\n"
+"Where <lang> is your country code (e.g. 'it' for Italy) and -q is\n"
+"to ask for a brief summary.\n"
+msgstr ""
+"\n"
+"Verifica uma tradução dada do Mailman, tendo certeza que as variáveis e \n"
+"tags referenciadas na tradução são as mesmas variáveis e tags referenciadas\n"
+"na tradução são as menmas variáveis e tags nos templates originais e \n"
+"catálogo.\n"
+"\n"
+"Uso:\n"
+"\n"
+"cd $MAILMAN_DIR\n"
+"%(program)s [-q] <idioma>\n"
+"\n"
+"Onde <idioma> é o seu código de país (e.q. 'pt_BR' para Português) e -q é\n"
+"para perguntar por um breve sumário.\n"
+
+#: bin/transcheck:57
+msgid "check a translation comparing with the original string"
+msgstr "verificar uma tradução comparando com a string original"
+
+#: bin/transcheck:64
+msgid "scan a string from the original file"
+msgstr "procurar por uma stringe do arquivo original"
+
+#: bin/transcheck:72
+msgid "scan a translated string"
+msgstr "procurar uma string traduzida"
+
+#: bin/transcheck:83
+msgid "check for differences between checked in and checked out"
+msgstr "procurar diferenças entre o check in e check out"
+
+#: bin/transcheck:116
+msgid "parse a .po file extracting msgids and msgstrs"
+msgstr "processar um arquivo .po extraindo os msgids e msgstrs"
+
+#: bin/transcheck:135
+msgid ""
+"States table for the finite-states-machine parser:\n"
+" 0 idle\n"
+" 1 filename-or-comment\n"
+" 2 msgid\n"
+" 3 msgstr\n"
+" 4 end\n"
+" "
+msgstr ""
+"Tabela de status para o verificador finite-states-machine:\n"
+" 0 idle\n"
+" 1 arquivo-ou-comentário\n"
+" 2 msgid\n"
+" 3 msgstr\n"
+" 4 fim\n"
+" "
+
+#: bin/transcheck:272
+msgid ""
+"check a translated template against the original one\n"
+" search also <MM-*> tags if html is not zero"
+msgstr ""
+"Verificar um template traduzido sobre o original e também tags <MM-*> se o\n"
+"html não tiver tamanho zero"
+
+#: bin/transcheck:319
+msgid "scan the po file comparing msgids with msgstrs"
+msgstr "scanear o arquivo po comparando msgids com msgstrs"
+
+#: bin/unshunt:19
+msgid ""
+"Move a message from the shunt queue to the original queue.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [directory]\n"
+"\n"
+"Where:\n"
+"\n"
+" -h / --help\n"
+" Print help and exit.\n"
+"\n"
+"Optional `directory' specifies a directory to dequeue from other than\n"
+"qfiles/shunt.\n"
+msgstr ""
+"Move uma mensagem da queue de desvio para a queue original.\n"
+"\n"
+"Uso: %(PROGRAM)s [opções] [diretório]\n"
+"\n"
+"Onde:\n"
+"\n"
+" -h/--help\n"
+" Mostra a menasagem de ajuda e sai.\n"
+"\n"
+"O diretório opcional especifica um diretório para fazer a dequeue ao invés\n"
+"de qfiles/shunt.\n"
+
+#: bin/unshunt:81
+msgid ""
+"Cannot unshunt message %(filebase)s, skipping:\n"
+"%(e)s"
+msgstr ""
+"Não é possível fazer unshunt da mensagem %(filebase)s, pulando:\n"
+"%(e)s"
+
+#: bin/update:19
+msgid ""
+"Perform all necessary upgrades.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -f/--force\n"
+" Force running the upgrade procedures. Normally, if the version "
+"number\n"
+" of the installed Mailman matches the current version number (or a\n"
+" `downgrade' is detected), nothing will be done.\n"
+"\n"
+" -h/--help\n"
+" Print this text and exit.\n"
+"\n"
+"Use this script to help you update to the latest release of Mailman from\n"
+"some previous version. It knows about versions back to 1.0b4 (?).\n"
+msgstr ""
+"Realiza todos os upgrades necessários.\n"
+"\n"
+"Uso %(PROGRAM)s [opções]\n"
+"\n"
+"Opções\n"
+" -f/--force\n"
+" Força a execução de procedimentos de upgrade. Normalmente, se o "
+"número\n"
+" de versão do Mailman instalado confere com o número de versão "
+"atual \n"
+" (ou um 'downgrade' for detectado), nada será feito.\n"
+"\n"
+" -h/--help\n"
+" Mostra este texto e sai.\n"
+"\n"
+"Use este script para ajuda-lo a atualizar para a última versão do Mailman \n"
+"de alguma versão anterior. Ele sabe sobre versões anteriores a 1.0b4 (?).\n"
+
+#: bin/update:102
+msgid "Fixing language templates: %(listname)s"
+msgstr "Corrigindo templates de idioma: %(listname)s"
+
+#: bin/update:191 bin/update:466
+msgid "WARNING: could not acquire lock for list: %(listname)s"
+msgstr "ALERTA: não foi possível adquirir lock para a lista: %(listname)s"
+
+#: bin/update:210
+msgid "Resetting %(n)s BYBOUNCEs disabled addrs with no bounce info"
+msgstr ""
+"Resetando %(n)s BYBOUNCEs desativado endereços sem detalhes de bounces."
+
+#: bin/update:216
+msgid "Updating the held requests database."
+msgstr "Atualizando o banco de dados de requisições de espera."
+
+#: bin/update:238
+msgid ""
+"For some reason, %(mbox_dir)s exists as a file. This won't work with\n"
+"b6, so I'm renaming it to %(mbox_dir)s.tmp and proceeding."
+msgstr ""
+"Por alguma razão, o %(mbox_dir)s existe como um arquivo. Isto não\n"
+"funcionará com o b6, assim ele será renomeado para %(mbox_dir)s.tmp e \n"
+"irá prosseguir."
+
+#: bin/update:250
+msgid ""
+"\n"
+"%(listname)s has both public and private mbox archives. Since this list\n"
+"currently uses private archiving, I'm installing the private mbox archive\n"
+"-- %(o_pri_mbox_file)s -- as the active archive, and renaming\n"
+" %(o_pub_mbox_file)s\n"
+"to\n"
+" %(o_pub_mbox_file)s.preb6\n"
+"\n"
+"You can integrate that into the archives if you want by using the 'arch'\n"
+"script.\n"
+msgstr ""
+"\n"
+"A %(listname)s possui ambos os arquivos públicos e privados mbox. Esta "
+"lista\n"
+"utiliza atualmente arquivamento privado, por este motivo será instalado \n"
+"arquivo mbox privativo -- %(o_pri_mbox_file)s -- como arquivo ativo e \n"
+"renomeando %(o_pub_mbox_file)s\n"
+"\n"
+"para\n"
+"\n"
+" %(o_pub_mbox_file)s.preb6\n"
+"\n"
+"Você poderá integra-lo nos arquivos se quiser usando o script 'arch'.\n"
+
+#: bin/update:265
+msgid ""
+"%s has both public and private mbox archives. Since this list\n"
+"currently uses public archiving, I'm installing the public mbox file\n"
+"archive file (%s) as the active one, and renaming\n"
+" %s\n"
+" to\n"
+" %s.preb6\n"
+"\n"
+"You can integrate that into the archives if you want by using the 'arch'\n"
+"script.\n"
+msgstr ""
+"%s possui ambos os arquivos mbox privados e públicos. Atualmente esta \n"
+"lista utiliza arquivamento público, por este motivo está sendo instalado\n"
+"o arquivo público mbox (%s) como o ativo, e renomeando\n"
+" %s\n"
+" para\n"
+" %s.pre6\n"
+"\n"
+"Você poderá integra-lo nos arquivos usando o script 'arch'.\n"
+
+#: bin/update:282
+msgid "- updating old private mbox file"
+msgstr "- atualizando arquivo mbox privado antigo."
+
+#: bin/update:290
+msgid ""
+" unknown file in the way, moving\n"
+" %(o_pri_mbox_file)s\n"
+" to\n"
+" %(newname)s"
+msgstr ""
+" arquivo desconhecido deste método, movendo\n"
+" %(o_pri_mbox_file)s<\n"
+" para\n"
+" %(newname)s"
+
+#: bin/update:297 bin/update:320
+msgid ""
+" looks like you have a really recent CVS installation...\n"
+" you're either one brave soul, or you already ran me"
+msgstr ""
+" parece que você possui realmente uma instalação recente do CVS...\n"
+" você ou tem um espírito bravo, ou já está executando esta função"
+
+#: bin/update:306
+msgid "- updating old public mbox file"
+msgstr "- atualizando arquivo antigo de caixa pública"
+
+#: bin/update:314
+msgid ""
+" unknown file in the way, moving\n"
+" %(o_pub_mbox_file)s\n"
+" to\n"
+" %(newname)s"
+msgstr ""
+" arquivo desconhecido no método, movendo\n"
+" %(o_pub_mbox_file)s\n"
+" para\n"
+" %(newname)s"
+
+#: bin/update:345
+msgid "- This list looks like it might have <= b4 list templates around"
+msgstr "- Esta lista se parece ter templates da versão <=b4"
+
+#: bin/update:352
+msgid "- moved %(o_tmpl)s to %(n_tmpl)s"
+msgstr "- %(o_tmpl)s movido para %(n_tmpl)s"
+
+#: bin/update:354
+msgid "- both %(o_tmpl)s and %(n_tmpl)s exist, leaving untouched"
+msgstr "- ambos %(o_tmpl)s e %(n_tmpl)s existem, deixando intocado"
+
+#: bin/update:384
+msgid "removing directory %(src)s and everything underneath"
+msgstr "removendo o diretório %(src)s e tudo dentro dele"
+
+#: bin/update:387
+msgid "removing %(src)s"
+msgstr "removendo %(src)s"
+
+#: bin/update:391
+msgid "Warning: couldn't remove %(src)s -- %(rest)s"
+msgstr "Alerta: Não foi possível remover %(src)s -- %(rest)s"
+
+#: bin/update:396
+msgid "couldn't remove old file %(pyc)s -- %(rest)s"
+msgstr "não foi possível remover arquivo antigo %(pyc)s -- %(rest)s"
+
+#: bin/update:400
+msgid "updating old qfiles"
+msgstr "atualizando qfiles antigos"
+
+#: bin/update:422
+msgid "getting rid of old source files"
+msgstr "se livrando de arquivos de fonte antigos"
+
+#: bin/update:432
+msgid "no lists == nothing to do, exiting"
+msgstr "nenhuma lista == nada a fazer, saindo"
+
+#: bin/update:439
+msgid ""
+"fixing all the perms on your old html archives to work with b6\n"
+"If your archives are big, this could take a minute or two..."
+msgstr ""
+"corrigindo todas as permissões em seus arquivos html antigos para \n"
+"funcionar bom b6. Caso seus arquivos sejam muito grandes, isto \n"
+"poderá levar alguns minutos..."
+
+#: bin/update:444
+msgid "done"
+msgstr "concluido"
+
+#: bin/update:446
+msgid "Updating mailing list: %(listname)s"
+msgstr "Atualizando a lista de discussão: %(listname)s"
+
+#: bin/update:449
+msgid "Updating Usenet watermarks"
+msgstr "Atualizando marcas d'agua da Usenet"
+
+#: bin/update:454
+msgid "- nothing to update here"
+msgstr "- nada a ser atualizado aqui"
+
+#: bin/update:477
+msgid "- usenet watermarks updated and gate_watermarks removed"
+msgstr "- marcas d'agua da Usenet atualizadas e gate_watermarks removidos"
+
+#: bin/update:487
+msgid "Updating old pending_subscriptions.db database"
+msgstr "Atualizando antigo banco de dados pending_subscriptions.db"
+
+#: bin/update:504
+msgid ""
+"\n"
+"\n"
+"NOTE NOTE NOTE NOTE NOTE\n"
+"\n"
+" You are upgrading an existing Mailman installation, but I can't tell "
+"what\n"
+" version you were previously running.\n"
+"\n"
+" If you are upgrading from Mailman 1.0b9 or earlier you will need to\n"
+" manually update your mailing lists. For each mailing list you need to\n"
+" copy the file templates/options.html lists/<listname>/options.html.\n"
+"\n"
+" However, if you have edited this file via the Web interface, you will "
+"have\n"
+" to merge your changes into this file, otherwise you will lose your\n"
+" changes.\n"
+"\n"
+"NOTE NOTE NOTE NOTE NOTE\n"
+"\n"
+msgstr ""
+"\n"
+"\n"
+"NOTA NOTA NOTA NOTA NOTA\n"
+"\n"
+" Você está atualizando uma instalação existente do Mailman, \n"
+" mas não posso dizer qual versão estava usando anteriormente.\n"
+"\n"
+" Se estiver atualizando do Mailman 1.0b9 ou mais nova, você \n"
+" precisará atualizar manualmente suas listas de discussão. Para \n"
+" cada lista, você precisará copiar o arquivo\n"
+" templates/options.html list/<nome_da_lista>/options.html.\n"
+"\n"
+" No entanto, se tiver editado este arquivo através da interface \n"
+" Web, você terá que juntar suas modificações neste arquivo, caso\n"
+" contrário perderá suas modificações\n"
+"\n"
+"NOTA NOTA NOTA NOTA NOTA\n"
+
+#: bin/update:561
+msgid "No updates are necessary."
+msgstr "Nenhuma atualização é necessária."
+
+#: bin/update:564
+msgid ""
+"Downgrade detected, from version %(hexlversion)s to version %(hextversion)s\n"
+"This is probably not safe.\n"
+"Exiting."
+msgstr ""
+"Downgrade detectado, da versão %(hexlversion)s para a versão %(hextversion)"
+"s.\n"
+"Isto provavelmente não é seguro.\n"
+"Saindo."
+
+#: bin/update:569
+msgid "Upgrading from version %(hexlversion)s to %(hextversion)s"
+msgstr "Atualizando da versão %(hexlversion)s para %(hextversion)s"
+
+#: bin/update:578
+msgid ""
+"\n"
+"ERROR:\n"
+"\n"
+"The locks for some lists could not be acquired. This means that either\n"
+"Mailman was still active when you upgraded, or there were stale locks in "
+"the\n"
+"%(lockdir)s directory.\n"
+"\n"
+"You must put Mailman into a quiescent state and remove all stale locks, "
+"then\n"
+"re-run \"make update\" manually. See the INSTALL and UPGRADE files for "
+"details.\n"
+msgstr ""
+"\n"
+"ERRO:\n"
+"\n"
+"Os locks de algumas listas não puderam ser obtidos. Isto significa que o \n"
+"Mailman ainda está ativo após sua atualização ouq ue existem \n"
+"arquivos de lock danificados no diretório %(lockdir)s.\n"
+"\n"
+"Você deve colocar o Mailman em um estado parado e remover os arquivos de \n"
+"lock danificados, então execute \"make update\" manualmente. Veja os "
+"arquivos\n"
+"INSTALL e UPGRADE para detalhes\n"
+
+#: bin/version:19
+msgid "Print the Mailman version.\n"
+msgstr "Mostra a versão do Mailman\n"
+
+#: bin/version:26
+msgid "Using Mailman version:"
+msgstr "usando o Mailman versão:"
+
+#: bin/withlist:19
+msgid ""
+"General framework for interacting with a mailing list object.\n"
+"\n"
+"There are two ways to use this script: interactively or programmatically.\n"
+"Using it interactively allows you to play with, examine and modify a "
+"MailList\n"
+"object from Python's interactive interpreter. When running interactively, "
+"a\n"
+"MailList object called `m' will be available in the global namespace. It "
+"also\n"
+"loads the class MailList into the global namespace.\n"
+"\n"
+"Programmatically, you can write a function to operate on a MailList object,\n"
+"and this script will take care of the housekeeping (see below for "
+"examples).\n"
+"In that case, the general usage syntax is:\n"
+"\n"
+"%% bin/withlist [options] listname [args ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" -l / --lock\n"
+" Lock the list when opening. Normally the list is opened unlocked\n"
+" (e.g. for read-only operations). You can always lock the file "
+"after\n"
+" the fact by typing `m.Lock()'\n"
+"\n"
+" Note that if you use this option, you should explicitly call m.Save"
+"()\n"
+" before exiting, since the interpreter's clean up procedure will not\n"
+" automatically save changes to the MailList object (but it will "
+"unlock\n"
+" the list).\n"
+"\n"
+" -i / --interactive\n"
+" Leaves you at an interactive prompt after all other processing is\n"
+" complete. This is the default unless the -r option is given.\n"
+"\n"
+" --run [module.]callable\n"
+" -r [module.]callable\n"
+" This can be used to run a script with the opened MailList object.\n"
+" This works by attempting to import `module' (which must already be\n"
+" accessible on your sys.path), and then calling `callable' from the\n"
+" module. callable can be a class or function; it is called with the\n"
+" MailList object as the first argument. If additional args are "
+"given\n"
+" on the command line, they are passed as subsequent positional args "
+"to\n"
+" the callable.\n"
+"\n"
+" Note that `module.' is optional; if it is omitted then a module "
+"with\n"
+" the name `callable' will be imported.\n"
+"\n"
+" The global variable `r' will be set to the results of this call.\n"
+"\n"
+" --all / -a\n"
+" This option only works with the -r option. Use this if you want to\n"
+" execute the script on all mailing lists. When you use -a you "
+"should\n"
+" not include a listname argument on the command line. The variable "
+"`r'\n"
+" will be a list of all the results.\n"
+"\n"
+" --quiet / -q\n"
+" Suppress all status messages.\n"
+"\n"
+" --help / -h\n"
+" Print this message and exit\n"
+"\n"
+"\n"
+"Here's an example of how to use the -r option. Say you have a file in the\n"
+"Mailman installation directory called `listaddr.py', with the following\n"
+"two functions:\n"
+"\n"
+"def listaddr(mlist):\n"
+" print mlist.GetListEmail()\n"
+"\n"
+"def requestaddr(mlist):\n"
+" print mlist.GetRequestEmail()\n"
+"\n"
+"Now, from the command line you can print the list's posting address by "
+"running\n"
+"the following from the command line:\n"
+"\n"
+"%% bin/withlist -r listaddr mylist\n"
+"Loading list: mylist (unlocked)\n"
+"Importing listaddr ...\n"
+"Running listaddr.listaddr() ...\n"
+"mylist@myhost.com\n"
+"\n"
+"And you can print the list's request address by running:\n"
+"\n"
+"%% bin/withlist -r listaddr.requestaddr mylist\n"
+"Loading list: mylist (unlocked)\n"
+"Importing listaddr ...\n"
+"Running listaddr.requestaddr() ...\n"
+"mylist-request@myhost.com\n"
+"\n"
+"As another example, say you wanted to change the password for a particular\n"
+"user on a particular list. You could put the following function in a file\n"
+"called `changepw.py':\n"
+"\n"
+"from Mailman.Errors import NotAMember\n"
+"\n"
+"def changepw(mlist, addr, newpasswd):\n"
+" try:\n"
+" mlist.setMemberPassword(addr, newpasswd)\n"
+" mlist.Save()\n"
+" except NotAMember:\n"
+" print 'No address matched:', addr\n"
+"\n"
+"and run this from the command line:\n"
+"%% bin/withlist -l -r changepw mylist somebody@somewhere.org foobar\n"
+msgstr ""
+"Camada geral para interagir com um objeto da lista de discussão.\n"
+"\n"
+"Existem duas formas de usar estes script: interativamente ou via \n"
+"programação. Usando-o interativamente, lhe permite visualizar, examinar\n"
+"ou modificar objetos de uma lita de discussão do interpretador interativo\n"
+"do Python. Quando é executado interativamente, um objeto de lista de \n"
+"discussão chamdo 'm' estará disponível no espaço de nomes globais. \n"
+"Ele também carrega a classe MailList no espaço de nomes globais.\n"
+"\n"
+"Via programação, você poderá escrever uma função para operar em um \n"
+"objeto de uma lista de discussão e este script tomará cuidado de manter \n"
+"a casa em ordem (veja os exemplos abaixo). \n"
+"Neste caso, a sintaxe geralmente usada é:\n"
+"\n"
+"%% bin/withlist [opções] nome_da_lista [argumentos ...]\n"
+"\n"
+"Opções:\n"
+"\n"
+" -l / --lock\n"
+" Bloqueia a lista durante sua abertura. Normalmente a lista é \n"
+" aberta sem bloqueis (e.g. para operações somente leitura). \n"
+" Você sempre pode bloquear um arquivo após o fato\n"
+" digitando 'm.Lock()'.\n"
+"\n"
+" Note que se utilizar esta opção, você deverá chamar explicitamente\n"
+" m.Save() antes de sair, pois o procedimento de limpeza do \n"
+" interpretador não salvará as modificações automaticamente para o \n"
+" objeto da lista de discusão (mas ele desbloqueará a lista).\n"
+"\n"
+" -i / --interactive\n"
+" Lhe deixa em um prompt interativo antes de completar todos os \n"
+" outros processamentos. Isto é o padrão a não ser que a opção\n"
+" -r seja fornecida.\n"
+"\n"
+" --run [module.]callable\n"
+" -r [module.]callable\n"
+" Isto pode ser usado para executar um script com o objeto da \n"
+" lista de discussão. Isto funciona tentando importar o 'modulo'\n"
+" (que já deve ser acessível através de sys.path) e então \n"
+" chamando 'callable' através do módulo. O callable pode ser uma\n"
+" classe ou função; ela é chamado com o objeto da lista de discussão\n"
+" como primeiro argumento. Caso argumentos adicionais sejam \n"
+" especificaos na linha de comando, eles serão passados como \n"
+" argumentos posicionais subsequentes para o programa que \n"
+" chama.\n"
+"\n"
+" Note que 'module' é opcional; caso seja omitivo, então um \n"
+" módulo com o nome 'callable' será importado.\n"
+"\n"
+" A variável global 'r' será ajustada para os resultados desta\n"
+" chamada.\n"
+"\n"
+" --all / -a\n"
+" Esta opção somente funciona com a opcao -r. Use-a se desejar \n"
+" executar o script em todas as listas de discussão. Quando utiliza\n"
+" a opção -a você não deve incluir o argumento nome da lista na \n"
+" linha de comando. A variável 'r' será uma lista de todos os \n"
+" resultados.\n"
+"\n"
+" --quiet / -q\n"
+" Oculta todas as mensagens de status.\n"
+"\n"
+" --help / -h\n"
+" Mostra esta mensagem e sai.\n"
+"\n"
+"Aqui está um exemplo de como usar a opção -r. Digamos que tenha um arquivo\n"
+"no diretório de instalação do Mailman chamado 'listaddr.py', com as \n"
+"seguintes duas funções:\n"
+"\n"
+"def listaddr(mlist):\n"
+" print mlist.GetListEmail()\n"
+"\n"
+"def requestaddr(mlist):\n"
+" print mlist.GetRequestEmail()\n"
+"\n"
+"Agora através da linha de comando, você poderá mostrar o endereço de \n"
+"postagem da lista executando o seguinte através da linha de comando:\n"
+"\n"
+"%% bin/withlist -r listaddr mylist\n"
+"Carregando lista: mylist (desbloqueada)\n"
+"Importando endereço da lista ...\n"
+"Executando listaddr.listaddr() ...\n"
+"mylist@myhost.com\n"
+"\n"
+"E poderá mostrar as requisições do endereço da lista executando:\n"
+"\n"
+"%% bin/withlist -r listaddr.requestaddr mylist\n"
+"Carregando lista: mylist (desbloqueada)\n"
+"Importando endereços da lista ...\n"
+"Executando listaddr.requestaddr() ...\n"
+"mylist-request@myhost.com\n"
+"\n"
+"Como outro exemplo, digamos que deseja modificar a senha de um usuário\n"
+"em particular de uma lista em particular. Você poderá colocar a \n"
+"seguinte função em um arquivo chamado `changepw.py':\n"
+"\n"
+"from Mailman.Errors import NotAMember\n"
+"\n"
+"def changepw(mlist, addr, newpasswd):\n"
+" try:\n"
+" mlist.setMemberPassword(addr, newpasswd)\n"
+" mlist.Save()\n"
+" except NotAMember:\n"
+" print 'No address matched:', addr\n"
+"\n"
+"e execute isto de uma linha de comando:\n"
+"%% bin/withlist -l -r changepw mylist somebody@somewhere.org foobar\n"
+
+#: bin/withlist:151
+msgid ""
+"Unlock a locked list, but do not implicitly Save() it.\n"
+"\n"
+" This does not get run if the interpreter exits because of a signal, or "
+"if\n"
+" os._exit() is called. It will get called if an exception occurs "
+"though.\n"
+" "
+msgstr ""
+"Desbloqueia uma lista bloqueada, mas não a salva implicitamente Save().\n"
+"\n"
+"Isto não deve ser executado caso o interpretador saia por causa de um \n"
+"sinal ou se os._exit() é chamada. No entanto, ela será chamada se uma \n"
+"excessão ocorra."
+
+#: bin/withlist:162
+msgid "Unlocking (but not saving) list: %(listname)s"
+msgstr "Desbloqueando (mas não salvand) a lista: %(listname)s"
+
+#: bin/withlist:166
+msgid "Finalizing"
+msgstr "Finalizando"
+
+#: bin/withlist:175
+msgid "Loading list %(listname)s"
+msgstr "Carregando lista %(listname)s"
+
+#: bin/withlist:177
+msgid "(locked)"
+msgstr "(bloqueada)"
+
+#: bin/withlist:179
+msgid "(unlocked)"
+msgstr "(desbloqueada)"
+
+#: bin/withlist:184
+msgid "Unknown list: %(listname)s"
+msgstr "Lista desconhecida: %(listname)s"
+
+#: bin/withlist:223
+msgid "No list name supplied."
+msgstr "Nenhum nome de lista fornecido."
+
+#: bin/withlist:226
+msgid "--all requires --run"
+msgstr "--all requer --run"
+
+#: bin/withlist:246
+msgid "Importing %(module)s..."
+msgstr "Importando %(module)s..."
+
+#: bin/withlist:249
+msgid "Running %(module)s.%(callable)s()..."
+msgstr "Executando %(module)s.%(callable)s()..."
+
+#: bin/withlist:270
+msgid "The variable `m' is the %(listname)s MailList instance"
+msgstr "A variável 'm' é a instância da lista de discussão %(listname)s"
+
+#: cron/bumpdigests:19
+msgid ""
+"Increment the digest volume number and reset the digest number to one.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" --help/-h\n"
+" Print this message and exit.\n"
+"\n"
+"The lists named on the command line are bumped. If no list names are "
+"given,\n"
+"all lists are bumped.\n"
+msgstr ""
+"Incrementa o número do volume digest e reseta o número de digest para um.\n"
+"\n"
+"Uso: %(PROGRAM)s [opções] [nome_da_lista...]\n"
+"\n"
+"Opções:\n"
+"\n"
+" --help/-h\n"
+" Mostra esta mensagem e sai.\n"
+"\n"
+"As listas especificadas na linha de comando são conferidas. Se nenhum nome \n"
+"de lista for especificado, todas as listas são conferidas.\n"
+
+#: cron/checkdbs:19
+msgid ""
+"Invoked by cron, this checks for pending moderation requests and mails the\n"
+"list moderators if necessary.\n"
+msgstr ""
+"Invocado pelo cron, isto verifica as requisições pendentes de moderação e \n"
+"envia uma mensagem para o moderador da lista se necessário.\n"
+
+#: cron/checkdbs:81
+msgid "%(count)d %(realname)s moderator request(s) waiting"
+msgstr "%(count)d requisições de moderação aguardando para %(realname)s"
+
+#: cron/checkdbs:100
+msgid "Pending subscriptions:"
+msgstr "Inscrições pendentes:"
+
+#: cron/checkdbs:109
+msgid ""
+"\n"
+"Pending posts:"
+msgstr ""
+"\n"
+"Postagens pendentes:"
+
+#: cron/checkdbs:114
+msgid ""
+"From: %(sender)s on %(date)s\n"
+"Subject: %(subject)s\n"
+"Cause: %(reason)s"
+msgstr ""
+"De: %(sender)s em %(date)s\n"
+"Assunto: %(subject)s\n"
+"Causa: %(reason)s"
+
+#: cron/disabled:19
+msgid ""
+"Process disabled members, recommended once per day.\n"
+"\n"
+"This script cruises through every mailing list looking for members whose\n"
+"delivery is disabled. If they have been disabled due to bounces, they will\n"
+"receive another notification, or they may be removed if they've received "
+"the\n"
+"maximum number of notifications.\n"
+"\n"
+"Use the --byadmin, --byuser, and --unknown flags to also send notifications "
+"to\n"
+"members whose accounts have been disabled for those reasons. Use --all to\n"
+"send the notification to all disabled members.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -h / --help\n"
+" Print this message and exit.\n"
+"\n"
+" -o / --byadmin\n"
+" Also send notifications to any member disabled by the list\n"
+" owner/administrator.\n"
+"\n"
+" -m / --byuser\n"
+" Also send notifications to any member disabled by themselves.\n"
+"\n"
+" -u / --unknown\n"
+" Also send notifications to any member disabled for unknown reasons\n"
+" (usually a legacy disabled address).\n"
+"\n"
+" -b / --notbybounce\n"
+" Don't send notifications to members disabled because of bounces "
+"(the\n"
+" default is to notify bounce disabled members).\n"
+"\n"
+" -a / --all\n"
+" Send notifications to all disabled members.\n"
+"\n"
+" -f / --force\n"
+" Send notifications to disabled members even if they're not due a "
+"new\n"
+" notification yet.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" Process only the given list, otherwise do all lists.\n"
+msgstr ""
+"Processa membros desativados, recomendado uma vez por dia.\n"
+"\n"
+"Este script entra em cada lista de discussão procurando por membros\n"
+"que a entrega foi desativada. Caso elas tenham sido desativadas devido\n"
+"a bounces, eles receberão outra notificação ou serão removidos caso\n"
+"tenham recebido o número máximo de notificações.\n"
+"\n"
+"Use o --byadmin, --byuser e --unknown para tamem enviar notificações \n"
+"para os membros que estas contas foram desativas pelas razões citadas.\n"
+"Use --all para enviar a notificação para todos os membros desativados.\n"
+"\n"
+"Uso: %(PROGRAM)s [opções]\n"
+"\n"
+"Opções:\n"
+" -h / --help\n"
+" Mostra esta mensagem e sai.\n"
+"\n"
+" -o / --byadmin\n"
+" Também envia notificações para qualquer membro desativado\n"
+" pelo dono/administrador da lista.\n"
+"\n"
+" -m / --byuser\n"
+" Também envia notificações para qualquer membro que desativou o\n"
+" recebimento de suas próprias mensagens.\n"
+"\n"
+" -u / --unknown\n"
+" Também envia notificações para qualquer membro desativado por\n"
+" razões desconhecidas (normalmente um endereço legalmente "
+"desativado).\n"
+"\n"
+" -b / --notbybounce\n"
+" Não envia notificações para membros desativados por motivos \n"
+" de bounces (o padrão é notificar os membros com bounces "
+"desativados).\n"
+"\n"
+" -a / --all\n"
+" Envia notificações para todos os membros desativados.\n"
+"\n"
+" -f / --force\n"
+" Envia notificações para membros desativados até mesmo se não \n"
+" receberam uma nova notificação.\n"
+"\n"
+" -l listname\n"
+" --listname=nome_da_lista\n"
+" Processa somente a lista especificada, caso contrário, verifica\n"
+" todas as listas.\n"
+
+#: cron/disabled:143
+msgid "[disabled by periodic sweep and cull, no message available]"
+msgstr ""
+"[desativado pela varredura e escolha periódicas, nenhuma mensagem disponível]"
+
+#: cron/gate_news:19
+msgid ""
+"Poll the NNTP servers for messages to be gatewayed to mailing lists.\n"
+"\n"
+"Usage: gate_news [options]\n"
+"\n"
+"Where options are\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this text and exit.\n"
+"\n"
+msgstr ""
+"\\Pega mensagens do servidor NNTP que serão encaminhadas para as listas de \n"
+"discussão.\n"
+"\n"
+"Uso: gate_news [opções]\n"
+"\n"
+"Onde as opções são\n"
+"\n"
+" --help\n"
+" -h\n"
+" Mostra este texto e sai.\n"
+
+#: cron/mailpasswds:19
+msgid ""
+"Send password reminders for all lists to all users.\n"
+"\n"
+"This program scans all mailing lists and collects users and their "
+"passwords,\n"
+"grouped by the list's host_name if mm_cfg.VIRTUAL_HOST_OVERVIEW is true. "
+"Then\n"
+"one email message is sent to each unique user (per-virtual host) containing\n"
+"the list passwords and options url for the user. The password reminder "
+"comes\n"
+"from the mm_cfg.MAILMAN_SITE_LIST, which must exist.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -l listname\n"
+" --listname=listname\n"
+" Send password reminders for the named list only. If omitted,\n"
+" reminders are sent for all lists. Multiple -l/--listname options "
+"are\n"
+" allowed.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+msgstr ""
+"Envia lembretes de senhas para todos os membros de todas as listas de \n"
+"discussão.\n"
+"\n"
+"Este programa scaneia todas as lista de discussão coletando os nomes \n"
+"de usuários e suas senhas, agrupadas pelo nome de máquina da lista caso\n"
+"o mm_cfg.VIRTUAL_HOST_OVERVIEW seja verdadeiro. Então uma mensagem de \n"
+"email é enviada para cada usuário único (por máquina virtual) contendo\n"
+"a lista de senhas e url de opções para aquele usuário. O lembrete de \n"
+"senhas vem do mm_cfg.MAILMAN_SITE_LIST, que deve existir.\n"
+"\n"
+"Uso: %(PROGRAM)s [opções]\n"
+"\n"
+"Opções:\n"
+" --listname=nomedalista\n"
+" Envia os lembretes de senha somente para a lista especificada. Caso\n"
+" seja omitida, os lembretes serão enviados para todas as listas.\n"
+" Múltiplas opções -l/--listname são permitidas.\n"
+"\n"
+" -h/--help\n"
+" Mostra esta mensagem e sai.\n"
+
+#: cron/mailpasswds:111
+msgid "Site list is missing: %(sitelistname)s"
+msgstr "A lista do site não existe: %(sitelistname)s"
+
+#: cron/mailpasswds:179
+msgid "Password // URL"
+msgstr "Senha //URL"
+
+#: cron/mailpasswds:199
+msgid "%(host)s mailing list memberships reminder"
+msgstr "lembrete de membros da lista de discussão %(host)s"
+
+#: cron/nightly_gzip:19
+msgid ""
+"Re-generate the Pipermail gzip'd archive flat files.\n"
+"\n"
+"This script should be run nightly from cron. When run from the command "
+"line,\n"
+"the following usage is understood:\n"
+"\n"
+"Usage: %(program)s [-v] [-h] [listnames]\n"
+"\n"
+"Where:\n"
+" --verbose\n"
+" -v\n"
+" print each file as it's being gzip'd\n"
+"\n"
+" --help\n"
+" -h\n"
+" print this message and exit\n"
+"\n"
+" listnames\n"
+" Optionally, only compress the .txt files for the named lists. "
+"Without \n"
+" this, all archivable lists are processed.\n"
+"\n"
+msgstr ""
+"Re-cria os arquivos faltando do arquivo compactado com gzip do Pipermail\n"
+"\n"
+"Este script deve ser executado noturnamente pelo cron. Quando é executado\n"
+"pela linha de comando, o seguinte uso é entendido:\n"
+"\n"
+"Uso: %(program)s [-v] [-h] [nome_da_lista]\n"
+"\n"
+"Onde:\n"
+" --verbose\n"
+" -v\n"
+" mostra cada arquivo como se estivesse sendo compactado em gzip\n"
+"\n"
+" --help\n"
+" -h\n"
+" mostra esta mensagem e sai\n"
+"\n"
+" nome_da_lista\n"
+" Opcionalmente, somente compacta os arquivos .txt de listas "
+"nomeadas.\n"
+" Sem isto, todos os arquivos de listas são processados.\n"
+
+#: cron/senddigests:19
+msgid ""
+"Dispatch digests for lists w/pending messages and digest_send_periodic set.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -h / --help\n"
+" Print this message and exit.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" Send the digest for the given list only, otherwise the digests for "
+"all\n"
+" lists are sent out.\n"
+msgstr ""
+"Incrementa o número do volume digest e reseta o número de digest para um.\n"
+"\n"
+"Uso: %(PROGRAM)s [opções]\n"
+"\n"
+"Opções:\n"
+"\n"
+" --help/-h\n"
+" Mostra esta mensagem e sai.\n"
+"\n"
+" -l nome_da_lista\n"
+" --listname=nome_da_lista\n"
+" Envia mensagens digest somente para a lista especificada\n"
+"\n"
+"As listas especificadas na linha de comando são conferidas. Se nenhum nome \n"
+"de lista for especificado, todas as listas são conferidas.\n"
+
+#~ msgid "A confirmation email has been sent separately."
+#~ msgstr "Uma mensagem de confirmação foi enviada separadamente."
+
+#~ msgid "A removal confirmation message has been sent."
+#~ msgstr "Uma mensagem confirmando sua remoção foi enviada."
+
+#~ msgid "Policies concerning concerning the content of list traffic."
+#~ msgstr "Políticas que verificam o tráfego de conteúdo da lista"
+
+#~ msgid ""
+#~ "Use this option to remove each message section with a\n"
+#~ " matching MIME type. Each line should contain a string "
+#~ "naming a\n"
+#~ " MIME <tt>type/subtype</tt>, e.g. <tt>image/gif</tt>. Leave "
+#~ "off\n"
+#~ " the subtype to remove all parts with a matching MIME major "
+#~ "type,\n"
+#~ " e.g. <tt>image</tt>. Blank lines are ignored.\n"
+#~ "\n"
+#~ " <p>After stripping message parts, any <tt>multipart</tt>\n"
+#~ " attachment that is empty as a result is removed all "
+#~ "together. If\n"
+#~ " the outer part's MIME type matches one of the strip types, "
+#~ "or if\n"
+#~ " all of the outer part's subparts are stripped, then the "
+#~ "whole\n"
+#~ " message is discarded. Finally, each\n"
+#~ " <tt>multipart/alternative</tt> section will be replaced by "
+#~ "just\n"
+#~ " the first alternative that is non-empty after the specified "
+#~ "types\n"
+#~ " have been removed."
+#~ msgstr ""
+#~ "Use esta opção para remover cada seção de mensagem com um\n"
+#~ " tipo MIME que confere. Cada linha deve conter uma string\n"
+#~ " nomeando um <tt>tipo/subtipo</tt> MIME, e.g. <tt>image/gif</"
+#~ "tt>. \n"
+#~ " Deixe o subtipo fora para remover todas as parte com o tipo \n"
+#~ " MIME maior conferindo e.g. <tt>image</tt>. Linhas em branco \n"
+#~ " são ignoradas.\n"
+#~ "\n"
+#~ " <p>Após cortar as partes da mensagem, qualquer anexo\n"
+#~ " <tt>multipart</tt> que está vazio como resultado é removido\n"
+#~ " junto. Se a outra parte de tipo MIME confere com um dos tipos\n"
+#~ " strip ou se todas as partes e subpartes do outro são divididas,\n"
+#~ " então, toda a mensagem é descartada. Finalmente, cada\n"
+#~ " seção <tt>multipart/alternativa</tt> será substituida pela\n"
+#~ " primeira alternatia que não é vazia após os tipos especificados\n"
+#~ " serem removidos."
+
+#~ msgid "non-digest header"
+#~ msgstr "cabeçalho não-digest"
+
+#~ msgid "non-digest footer"
+#~ msgstr "legenda não-digest"
+
+#~ msgid "Posts by member are currently quarantined for moderation"
+#~ msgstr "A postagem de membros está atualmente em quarentena para moderação"
+
+#~ msgid ""
+#~ "To finish creating your mailing list, you must edit your\n"
+#~ "/etc/aliases (or equivalent) file by adding the following lines:\n"
+#~ "\n"
+#~ "## %(listname)s mailing list\n"
+#~ "## created: %(date)s %(user)s\n"
+#~ "%(list)s \"|%(wrapper)s post %(listname)s\"\n"
+#~ "%(admin)s \"|%(wrapper)s mailowner %(listname)s\"\n"
+#~ "%(request)s \"|%(wrapper)s mailcmd %(listname)s\"\n"
+#~ "%(owner)s %(listname)s-admin\n"
+#~ msgstr ""
+#~ "Para finalizar a crição de sua lista de discussão, você deverá editar \n"
+#~ "seu arquivo /etc/aliases (ou equivalente) adicionando as seguintes\n"
+#~ "linhas:\n"
+#~ "## lista de discussão %(listname)s\n"
+#~ "## criada: em %(date)s por %(user)s\n"
+#~ "%(list)s \\\"|%(wrapper)s post %(listname)s\"\n"
+#~ "%(admin)s \\\"|%(wrapper)s mailowner %(listname)s\"\n"
+#~ "%(request)s \\\"|%(wrapper)s mailcmd %(listname)s\"\n"
+#~ "%(owner)s %(listname)s-admin\n"
+
+#~ msgid ""
+#~ "To finish removing your mailing list, you must edit your\n"
+#~ "/etc/aliases (or equivalent) file by removing the following lines:\n"
+#~ "\n"
+#~ "%(list)s \"|%(wrapper)s post %(listname)s\"\n"
+#~ "%(admin)s \"|%(wrapper)s mailowner %(listname)s\"\n"
+#~ "%(request)s \"|%(wrapper)s mailcmd %(listname)s\"\n"
+#~ "%(owner)s %(listname)s-admin\n"
+#~ msgstr ""
+#~ "Para finalizar a remoção da lista de discussão, você deverá \n"
+#~ "editar o arquivo /etc/aliases (ou equivalente) removendo as \n"
+#~ "seguintes linhas:\n"
+#~ "\n"
+#~ "%(list)s \"|%(wrapper)s post %(listname)s\"\n"
+#~ "%(admin)s \"|%(wrapper)s mailowner %(listname)s\"\n"
+#~ "%(request)s \"|%(wrapper)s mailcmd %(listname)s\"\n"
+#~ "%(owner)s %(listname)s-admin\n"
+
+#~ msgid ""
+#~ "To finish creating your mailing list, execute the following\n"
+#~ "commands with the proper permission:\n"
+#~ "\n"
+#~ "echo '|preline %(wrapper)s post %(listname)s' >~alias/.qmail-%(listname)"
+#~ "s\n"
+#~ "echo '|preline %(wrapper)s mailowner %(listname)s' >~alias/.qmail-%"
+#~ "(listname)s-admin\n"
+#~ "echo '|preline %(wrapper)s mailcmd %(listname)s' >~alias/.qmail-%"
+#~ "(listname)s-request\n"
+#~ "echo '&%(listname)s-admin' >~alias/.qmail-owner-%(listname)s\n"
+#~ "echo '&%(listname)s-admin' >~alias/.qmail-%(listname)s-owner\n"
+#~ "\n"
+#~ "chmod 644 ~alias/.qmail-%(listname)s ~alias/.qmail-%(listname)s-admin\n"
+#~ "chmod 644 ~alias/.qmail-%(listname)s-request ~alias/.qmail-%(listname)s-"
+#~ "owner\n"
+#~ "chmod 644 ~alias/.qmail-owner-%(listname)s\n"
+#~ msgstr ""
+#~ "Para finalizar a crição da lista de discussão, execute os seguintes\n"
+#~ "comandos com a permissão apropriada:\n"
+#~ "\n"
+#~ "echo '|preline %(wrapper)s post %(listname)s' >~alias/.qmail-%(listname)"
+#~ "s\n"
+#~ "echo '|preline %(wrapper)s mailowner %(listname)s' >~alias/.qmail-%"
+#~ "(listname)s-admin\n"
+#~ "echo '|preline %(wrapper)s mailcmd %(listname)s' >~alias/.qmail-%"
+#~ "(listname)s-request\n"
+#~ "echo '&%(listname)s-admin' >~alias/.qmail-owner-%(listname)s\n"
+#~ "echo '&%(listname)s-admin' >~alias/.qmail-%(listname)s-owner\n"
+#~ "\n"
+#~ "chmod 644 ~alias/.qmail-%(listname)s ~alias/.qmail-%(listname)s-admin\n"
+#~ "chmod 644 ~alias/.qmail-%(listname)s-request ~alias/.qmail-%(listname)s-"
+#~ "owner\n"
+#~ "chmod 644 ~alias/.qmail-owner-%(listname)s\n"
+
+#~ msgid ""
+#~ "To finish removing your mailing list, you must remove the\n"
+#~ "all the entires for the %(listname)s aliases."
+#~ msgstr ""
+#~ "Para finalizar a remoção da lista de discussão, você deverá \n"
+#~ "remover todas as entradas de apelidos para a lista %(listname)s"
+
+#~ msgid ""
+#~ "Reset a list's web_page_url attribute to the default setting.\n"
+#~ "\n"
+#~ "This script is intended to be run as a bin/withlist script, i.e.\n"
+#~ "\n"
+#~ "% bin/withlist -l -r fix_url <mylist>\n"
+#~ msgstr ""
+#~ "Reseta um atributo de lista web_page_url para a configuração padrão.\n"
+#~ "\n"
+#~ "Este script tem a intenção de ser executado como um script bin/"
+#~ "withlist, \n"
+#~ "i.e.\n"
+#~ "\n"
+#~ "% bin/withlist -l -r fix_url <minha_lista>\n"
+
+#~ msgid "Bad owner email address: %(owner_mail)s"
+#~ msgstr "Endereço de dono da lista incorreto: %(owner_mail)s"
+
+#~ msgid "Removed: <%(addr)30s> %(name)s"
+#~ msgstr "Removido: <%(addr)30s> %(name)s"
+
+#~ msgid ""
+#~ "Dispatch digests for lists w/pending messages and digest_send_periodic "
+#~ "set.\n"
+#~ "\n"
+#~ "Typically it's invoked via cron.\n"
+#~ msgstr ""
+#~ "Envia os digests para as listas com mensagens pendentes e \n"
+#~ "digest_send_periodic ajustado.\n"
+#~ "\n"
+#~ "Tipicamente é executado via cron.\n"
+
+#~ msgid "Post by a moderated member"
+#~ msgstr "Postage de um membro moderado"
+
+#~ msgid "Return the hostname, pid, and tempfile"
+#~ msgstr "Retorna o hostname, pid e arquivo temporário"
+
+#~ msgid ""
+#~ "pygettext -- Python equivalent of xgettext(1)\n"
+#~ "\n"
+#~ "Many systems (Solaris, Linux, Gnu) provide extensive tools that ease the\n"
+#~ "internationalization of C programs. Most of these tools are independent "
+#~ "of\n"
+#~ "the programming language and can be used from within Python programs. "
+#~ "Martin\n"
+#~ "von Loewis' work[1] helps considerably in this regard.\n"
+#~ "\n"
+#~ "There's one problem though; xgettext is the program that scans source "
+#~ "code\n"
+#~ "looking for message strings, but it groks only C (or C++). Python "
+#~ "introduces\n"
+#~ "a few wrinkles, such as dual quoting characters, triple quoted strings, "
+#~ "and\n"
+#~ "raw strings. xgettext understands none of this.\n"
+#~ "\n"
+#~ "Enter pygettext, which uses Python's standard tokenize module to scan "
+#~ "Python\n"
+#~ "source code, generating .pot files identical to what GNU xgettext[2] "
+#~ "generates\n"
+#~ "for C and C++ code. From there, the standard GNU tools can be used.\n"
+#~ "\n"
+#~ "A word about marking Python strings as candidates for translation. GNU\n"
+#~ "xgettext recognizes the following keywords: gettext, dgettext, dcgettext, "
+#~ "and\n"
+#~ "gettext_noop. But those can be a lot of text to include all over your "
+#~ "code.\n"
+#~ "C and C++ have a trick: they use the C preprocessor. Most "
+#~ "internationalized C\n"
+#~ "source includes a #define for gettext() to _() so that what has to be "
+#~ "written\n"
+#~ "in the source is much less. Thus these are both translatable strings:\n"
+#~ "\n"
+#~ " gettext(\"Translatable String\")\n"
+#~ " _(\"Translatable String\")\n"
+#~ "\n"
+#~ "Python of course has no preprocessor so this doesn't work so well. "
+#~ "Thus,\n"
+#~ "pygettext searches only for _() by default, but see the -k/--keyword "
+#~ "flag\n"
+#~ "below for how to augment this.\n"
+#~ "\n"
+#~ " [1] http://www.python.org/workshops/1997-10/proceedings/loewis.html\n"
+#~ " [2] http://www.gnu.org/software/gettext/gettext.html\n"
+#~ "\n"
+#~ "NOTE: pygettext attempts to be option and feature compatible with GNU "
+#~ "xgettext\n"
+#~ "where ever possible. However some options are still missing or are not "
+#~ "fully\n"
+#~ "implemented. Also, xgettext's use of command line switches with option\n"
+#~ "arguments is broken, and in these cases, pygettext just defines "
+#~ "additional\n"
+#~ "switches.\n"
+#~ "\n"
+#~ "Usage: pygettext [options] inputfile ...\n"
+#~ "\n"
+#~ "Options:\n"
+#~ "\n"
+#~ " -a\n"
+#~ " --extract-all\n"
+#~ " Extract all strings.\n"
+#~ "\n"
+#~ " -d name\n"
+#~ " --default-domain=name\n"
+#~ " Rename the default output file from messages.pot to name.pot.\n"
+#~ "\n"
+#~ " -E\n"
+#~ " --escape\n"
+#~ " Replace non-ASCII characters with octal escape sequences.\n"
+#~ "\n"
+#~ " -D\n"
+#~ " --docstrings\n"
+#~ " Extract module, class, method, and function docstrings. These do "
+#~ "not\n"
+#~ " need to be wrapped in _() markers, and in fact cannot be for "
+#~ "Python to\n"
+#~ " consider them docstrings. (See also the -X option).\n"
+#~ "\n"
+#~ " -h\n"
+#~ " --help\n"
+#~ " Print this help message and exit.\n"
+#~ "\n"
+#~ " -k word\n"
+#~ " --keyword=word\n"
+#~ " Keywords to look for in addition to the default set, which are:\n"
+#~ " %(DEFAULTKEYWORDS)s\n"
+#~ "\n"
+#~ " You can have multiple -k flags on the command line.\n"
+#~ "\n"
+#~ " -K\n"
+#~ " --no-default-keywords\n"
+#~ " Disable the default set of keywords (see above). Any keywords\n"
+#~ " explicitly added with the -k/--keyword option are still "
+#~ "recognized.\n"
+#~ "\n"
+#~ " --no-location\n"
+#~ " Do not write filename/lineno location comments.\n"
+#~ "\n"
+#~ " -n\n"
+#~ " --add-location\n"
+#~ " Write filename/lineno location comments indicating where each\n"
+#~ " extracted string is found in the source. These lines appear "
+#~ "before\n"
+#~ " each msgid. The style of comments is controlled by the -S/--"
+#~ "style\n"
+#~ " option. This is the default.\n"
+#~ "\n"
+#~ " -o filename\n"
+#~ " --output=filename\n"
+#~ " Rename the default output file from messages.pot to filename. "
+#~ "If\n"
+#~ " filename is `-' then the output is sent to standard out.\n"
+#~ "\n"
+#~ " -p dir\n"
+#~ " --output-dir=dir\n"
+#~ " Output files will be placed in directory dir.\n"
+#~ "\n"
+#~ " -S stylename\n"
+#~ " --style stylename\n"
+#~ " Specify which style to use for location comments. Two styles "
+#~ "are\n"
+#~ " supported:\n"
+#~ "\n"
+#~ " Solaris # File: filename, line: line-number\n"
+#~ " GNU #: filename:line\n"
+#~ "\n"
+#~ " The style name is case insensitive. GNU style is the default.\n"
+#~ "\n"
+#~ " -v\n"
+#~ " --verbose\n"
+#~ " Print the names of the files being processed.\n"
+#~ "\n"
+#~ " -V\n"
+#~ " --version\n"
+#~ " Print the version of pygettext and exit.\n"
+#~ "\n"
+#~ " -w columns\n"
+#~ " --width=columns\n"
+#~ " Set width of output to columns.\n"
+#~ "\n"
+#~ " -x filename\n"
+#~ " --exclude-file=filename\n"
+#~ " Specify a file that contains a list of strings that are not be\n"
+#~ " extracted from the input files. Each string to be excluded must\n"
+#~ " appear on a line by itself in the file.\n"
+#~ "\n"
+#~ " -X filename\n"
+#~ " --no-docstrings=filename\n"
+#~ " Specify a file that contains a list of files (one per line) that\n"
+#~ " should not have their docstrings extracted. This is only useful "
+#~ "in\n"
+#~ " conjunction with the -D option above.\n"
+#~ "\n"
+#~ "If `inputfile' is -, standard input is read.\n"
+#~ msgstr ""
+#~ "pygettext -- Equivalente python do xgettext(1)\n"
+#~ "\n"
+#~ "Muitos sistemas (Solaris, Linux, Gnu) oferecem ferramentas extensivas \n"
+#~ "que facilitam a internacionalização de programas em C. Muitas destas \n"
+#~ "ferramentas são independente de linguagem de programação e podem \n"
+#~ "ser usadas dentro de programas em Python. Martin von Loewis \n"
+#~ "trabalha[1] ajudando consideravelmente em consideração disto.\n"
+#~ "\n"
+#~ "Existe no entanto um problema; o xgettext é um programa que scaneia o \n"
+#~ "código fonte procurando por string de mensagens, mas ele funciona apenas\n"
+#~ "em C (ou C++). O Python intruduz algumas outras táticas, como "
+#~ "caracteres \n"
+#~ "entre aspas duplicadas, triplicadas e strings \"em formato simples\". \n"
+#~ "O xgettext não entende estas coisas.\n"
+#~ "\n"
+#~ "Entre no pygettext, que usa o módulo tokenize padrão do Python para \n"
+#~ "verificar o código fonte do Python, gerando arquivos .pot identico ao \n"
+#~ "que o xgettext[2] da GNU gera para o código C e C++. A partir daqui,\n"
+#~ "as ferramentas GNU podem ser usadas.\n"
+#~ "\n"
+#~ "Uma palavra sobre fazer strings em Python como candidatas para "
+#~ "tradução. \n"
+#~ "O xgettext da GNU reconhece as seguintes palavras chaves: gettext, \n"
+#~ "dgettext, dcgettext e gettext_noop. Mas estes podem ser um conjunto de \n"
+#~ "textos para serem incluidos entre seu código. O C e C++ tem um truque: \n"
+#~ "eles usam o pré-processador de C. A maioria do código "
+#~ "internacionalizado \n"
+#~ "em C incluem um #define para gettext() para _() assim será pouca coisa\n"
+#~ "escrita no código fonte. Assim estas são ambas as strings traduzíveis:\n"
+#~ "\n"
+#~ " gettext(\"Translatable String\")\n"
+#~ " _(\"Translatable String\")\n"
+#~ "\n"
+#~ "É claro que o Python não tem um pré-processador assim ele não funciona \n"
+#~ "assim tão bem. Desta forma, o pygettext procura somente por _() como "
+#~ "padrão,\n"
+#~ "mas veja a opção -k/--keywork abaixo para como acrescentar isto.\n"
+#~ "\n"
+#~ " [1] http://www.python.org/workshops/1997-10/proceedings/loewis.html\n"
+#~ " [2] http://www.gnu.org/software/gettext/gettext.html\n"
+#~ "\n"
+#~ "NOTA: O pygettext tenta ser compatível com opções e características com "
+#~ "o\n"
+#~ "xgettext da GNU, onde possível. No entanto algumas opções ainda estão "
+#~ "faltando\n"
+#~ "ou não estão completamente implementadas. Também, o xgettext usa opções "
+#~ "de \n"
+#~ "linha de comando com argumentos de opção que não funcionam, e nestes "
+#~ "casos,\n"
+#~ "o pygettext apenas define opções adicionais.\n"
+#~ "\n"
+#~ "Uso: pygettext [opções] arquivo_de_entrada ...\n"
+#~ "\n"
+#~ "Opções:\n"
+#~ "\n"
+#~ " -a\n"
+#~ " --extract-all\n"
+#~ " Extrai todas as strings.\n"
+#~ "\n"
+#~ " -d name\n"
+#~ " --default-domain=name\n"
+#~ " Renomeia o arquivo de saída padrão de messages.pot para name."
+#~ "pot.\n"
+#~ "\n"
+#~ " -E\n"
+#~ " --escape\n"
+#~ " Substitui caracteres não-ASCII por sequências de escape octais.\n"
+#~ "\n"
+#~ " -D\n"
+#~ " --docstrings\n"
+#~ " Extrai os módulos, classes, métodos e docstrings de funções. \n"
+#~ " Estas não precisam ser colocadas entre marcadores _() e de fato\n"
+#~ " elas não devem ser consideradas como docstrings pelo Python. \n"
+#~ " (Veja também a opção -X).\n"
+#~ "\n"
+#~ " -h\n"
+#~ " --help\n"
+#~ " Mostra esta mensagem de ajuda e sai.\n"
+#~ "\n"
+#~ " -k word\n"
+#~ " --keyword=word\n"
+#~ " Opções que devem ser pesquisadas em adição ao conjunto padrão,\n"
+#~ " que são:\n"
+#~ " %(DEFAULTKEYWORDS)s\n"
+#~ "\n"
+#~ " Você poderá ter múltiplas opções -k na linha de comando.\n"
+#~ "\n"
+#~ " -K\n"
+#~ " --no-default-keywords\n"
+#~ " Desativa o conjunto padrão de palavras chaves (veja acima). \n"
+#~ " Quaisquer palavras adicionadas explicitamente pela opção \n"
+#~ " -k/--keyword ainda serão reconhecidas.\n"
+#~ "\n"
+#~ " --no-location\n"
+#~ " Não substitui os comentários de localização de \n"
+#~ " nome_de_arquivo/número_de_linha.\n"
+#~ "\n"
+#~ " -n\n"
+#~ " --add-location\n"
+#~ " Escreve comentários de localização de nome_de_arquivo/"
+#~ "número_de_linha\n"
+#~ " indicando onde cada string extraida está encontrada no código "
+#~ "fonte.\n"
+#~ " Estas linhas são mostradas antes de cada msgid. O estilo de \n"
+#~ " comentários é controlado pela opção -S/--style. \n"
+#~ " Este é o padrão.\n"
+#~ "\n"
+#~ " -o arquivo\n"
+#~ " --output=arquivo\n"
+#~ " Renomeia o arquivo padrão de saída de messages.pot para "
+#~ "'arquivo'.\n"
+#~ " Se o nome de arquivo for '-' então o resultado é enviada para a \n"
+#~ " saída padrão.\n"
+#~ "\n"
+#~ " -p dir\n"
+#~ " --output-dir=dir\\\n"
+#~ " Os arquivos de saída serão colocados no diretório dir.\n"
+#~ "\n"
+#~ " -S stylename\n"
+#~ " --style stylename\n"
+#~ " Especifica que estilo usar em comentários locais. Dois estilos\n"
+#~ " são suportados:\n"
+#~ "\n"
+#~ " Solaris # Arquivo: nome_do_arquivo, linha: número_da_linha\n"
+#~ " GNU #: arquivo:linha\n"
+#~ "\n"
+#~ " O nome de estilo é case insensitive. O estilo GNU é o padrão.\n"
+#~ "\n"
+#~ " -v\n"
+#~ " --verbose\n"
+#~ " Mostra os nomes dos arquivos sendo processados.\n"
+#~ "\n"
+#~ " -V\n"
+#~ " --version\n"
+#~ " Mostra a versão do pygettext e sai.\n"
+#~ "\n"
+#~ " -w columns\n"
+#~ " --width=columns\n"
+#~ " Ajusta a largura de saída para o número de colunas especificado.\n"
+#~ "\n"
+#~ " -x arquivo\n"
+#~ " --exclude-file=arquivo\n"
+#~ " Especifica um arquivo que contém uma lista de strings que não\n"
+#~ " são extraidas através dos arquivos de entrada. Cada strings\n"
+#~ " a ser excluída deve aparecer em uma linha no arquivo.\n"
+#~ "\n"
+#~ " -X arquivo\n"
+#~ " --no-docstrings=arquivo\n"
+#~ " Especifica um arquivo que contém uma lista de arquivos (um por \n"
+#~ " linha) que nã devem ter seus docstrings extraídos. Isto é \n"
+#~ " somente útil com a opção -D acima.\n"
+#~ "\n"
+#~ "Caso `arquivo_de_entrada' seja -, então a entrada padrão é lida.\n"
+
+#~ msgid ""
+#~ "# SOME DESCRIPTIVE TITLE.\n"
+#~ "# Copyright (C) YEAR ORGANIZATION\n"
+#~ "# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.\n"
+#~ "#\n"
+#~ "msgid \"\"\n"
+#~ "msgstr \"\"\n"
+#~ "\"Project-Id-Version: PACKAGE VERSION\\n\"\n"
+#~ "\"POT-Creation-Date: %(time)s\\n\"\n"
+#~ "\"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n\"\n"
+#~ "\"Last-Translator: FULL NAME <EMAIL@ADDRESS>\\n\"\n"
+#~ "\"Language-Team: LANGUAGE <LL@li.org>\\n\"\n"
+#~ "\"MIME-Version: 1.0\\n\"\n"
+#~ "\"Content-Type: text/plain; charset=CHARSET\\n\"\n"
+#~ "\"Content-Transfer-Encoding: ENCODING\\n\"\n"
+#~ "\"Generated-By: pygettext.py %(version)s\\n\"\n"
+#~ "\n"
+#~ msgstr ""
+#~ "# ALGUM TÍTULO DESCRITIVO.\n"
+#~ "# Copyright (C) YEAR ORGANIZATION\n"
+#~ "# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.\n"
+#~ "#\n"
+#~ "msgid \"\"\n"
+#~ "msgstr \"\"\n"
+#~ "\"Project-Id-Version: mailman\\n\"\n"
+#~ "\"POT-Creation-Date: %(time)s\\n\"\n"
+#~ "\"PO-Revision-Date: 2002-07-01 09:30-3\\n\"\n"
+#~ "\"Last-Translator: Gleydson Mazioli da Silva <gleydson@debian.org>\\n\"\n"
+#~ "\"Language-Team: Portuguese <debian-l10n-portuguese@lists.debian.org>\\n"
+#~ "\"\n"
+#~ "\"MIME-Version: 1.0\\n\"\n"
+#~ "\"Content-Type: text/plain; charset=ISO-8859-1\\n\"\n"
+#~ "\"Content-Transfer-Encoding: 8bit\\n\"\n"
+#~ "\"Generated-By: pygettext.py %(version)s\\n\"\n"
+
+#~ msgid "# File: %(filename)s, line: %(lineno)d"
+#~ msgstr "# Arquivo: %(filename)s, linha: %(lineno)d"
+
+#~ msgid " %(filename)s:%(lineno)d"
+#~ msgstr " %(filename)s:%(lineno)d"
+
+#~ msgid "pygettext.py (xgettext for Python) %s"
+#~ msgstr "pygettext.py (xgettext para o Python) %s"
+
+#~ msgid "--width argument must be an integer: %s"
+#~ msgstr "o argumento --width deve ser um valor inteiro: %s"
+
+#~ msgid "Can't read --exclude-file: %s"
+#~ msgstr "Não foi possível ler --exclude-file: %s"
+
+#~ msgid "Reading standard input"
+#~ msgstr "Lendo a entrada padrão"
+
+#~ msgid "Working on %s"
+#~ msgstr "Trabalhando em %s"
+
+#~ msgid "a unicode string"
+#~ msgstr "uma string unicode"
+
+#~ msgid ""
+#~ "Process disabled members, recommended once per day.\n"
+#~ "\n"
+#~ "This script cruises through every mailing list looking for members whose\n"
+#~ "delivery is disabled. If they have been disabled due to bounces, they "
+#~ "will\n"
+#~ "receive another notification, or they may be removed if they've received "
+#~ "the\n"
+#~ "maximum number of notifications.\n"
+#~ "\n"
+#~ "Usage: %(PROGRAM)s [options]\n"
+#~ "\n"
+#~ "Options:\n"
+#~ " -h / --help\n"
+#~ " Print this message and exit.\n"
+#~ "\n"
+#~ " -l listname\n"
+#~ " --list listname\n"
+#~ " Process only the given list, otherwise do all lists.\n"
+#~ msgstr ""
+#~ "Processa membros desativados, recomendado pelo menos uma vez por dia.\n"
+#~ "\n"
+#~ "Estes script passa atraes de cada lista de discussão procurando por "
+#~ "membros\n"
+#~ "que tem a entrega desativada. Caso tenham sido desativado devido a "
+#~ "bounces, \n"
+#~ "eles receberão outra notificação ou serão removidos se receberam o \n"
+#~ "número máximo de notificações.\n"
diff --git a/messages/ru/LC_MESSAGES/mailman.mo b/messages/ru/LC_MESSAGES/mailman.mo
new file mode 100644
index 00000000..5c1daa61
--- /dev/null
+++ b/messages/ru/LC_MESSAGES/mailman.mo
Binary files differ
diff --git a/messages/ru/LC_MESSAGES/mailman.po b/messages/ru/LC_MESSAGES/mailman.po
new file mode 100644
index 00000000..64717075
--- /dev/null
+++ b/messages/ru/LC_MESSAGES/mailman.po
@@ -0,0 +1,8742 @@
+# Russian Messages for Mailman v2.1
+# Copyright (C) Mikhail Sobolev <mss@mawhrin.net>
+# Mikhail Sobolev <mss@mawhrin.net>, 2002
+# Mikhail Zabaluev <mhz@alt-linux.org>, 2002
+# Dmitri I GOULIAEV <dmitri.gouliaev@telkel.net>, 2002
+#
+# Please note that the mailing list home page is
+# http://only.mawhrin.net/mailman/listinfo/mailman-ru
+#
+# And archives are available at
+# http://only.mawhrin.net/pipermail/mailman-ru
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: mailman v2.1\n"
+"POT-Creation-Date: Tue Dec 24 13:41:28 2002\n"
+"PO-Revision-Date: $Date: 2002-12-24 19:05:13 +0000 (Tue, 24 Dec 2002) $\n"
+"Last-Translator: Mikhail Sobolev <mss@mawhrin.net>\n"
+"Language-Team: Russian <mailman-ru@only.mawhrin.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=koi8-r\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: Mailman/Archiver/HyperArch.py:112
+msgid "size not available"
+msgstr "ÒÁÚÍÅÒ ÏÔÓÕÔÓÔ×ÕÅÔ"
+
+#: Mailman/Archiver/HyperArch.py:118
+msgid " %(size)i bytes "
+msgstr " %(size)i ÂÁÊÔ(Ï×)"
+
+# MSS: ÈÍÍÍ?
+#: Mailman/Archiver/HyperArch.py:249 Mailman/Archiver/HyperArch.py:405
+#: Mailman/Archiver/HyperArch.py:963 Mailman/Archiver/HyperArch.py:1127
+msgid " at "
+msgstr " ÎÁ "
+
+#: Mailman/Archiver/HyperArch.py:434
+msgid "Previous message:"
+msgstr "ðÒÅÄÙÄÕÝÅÅ ÓÏÏÂÝÅÎÉÅ:"
+
+#: Mailman/Archiver/HyperArch.py:456
+msgid "Next message:"
+msgstr "óÌÅÄÕÀÝÅÅ ÓÏÏÂÝÅÎÉÅ:"
+
+#: Mailman/Archiver/HyperArch.py:609 Mailman/Archiver/HyperArch.py:645
+msgid "thread"
+msgstr "ÐÏ ÄÉÓËÕÓÓÉÑÍ"
+
+#: Mailman/Archiver/HyperArch.py:610 Mailman/Archiver/HyperArch.py:646
+msgid "subject"
+msgstr "ÐÏ ÔÅÍÁÍ"
+
+#: Mailman/Archiver/HyperArch.py:611 Mailman/Archiver/HyperArch.py:647
+msgid "author"
+msgstr "ÐÏ Á×ÔÏÒÕ"
+
+#: Mailman/Archiver/HyperArch.py:612 Mailman/Archiver/HyperArch.py:648
+msgid "date"
+msgstr "ÐÏ ÄÁÔÅ"
+
+#: Mailman/Archiver/HyperArch.py:684
+msgid "<P>Currently, there are no archives. </P>"
+msgstr "<p>÷ ÎÁÓÔÏÑÝÅÅ ×ÒÅÍÑ, ÁÒÈÉ×Ù ÏÔÓÕÔÓÔ×ÕÀÔ.</p>"
+
+#: Mailman/Archiver/HyperArch.py:721
+msgid "Gzip'd Text%(sz)s"
+msgstr "ÔÅËÓÔ, ÓÖÁÔÙÊ ÐÒÏÇÒÁÍÍÏÊ gzip, %(sz)s"
+
+#: Mailman/Archiver/HyperArch.py:726
+msgid "Text%(sz)s"
+msgstr "ÔÅËÓÔ %(sz)s"
+
+#: Mailman/Archiver/HyperArch.py:816
+msgid "figuring article archives\n"
+msgstr "ÏÐÒÅÄÅÌÑÅÔÓÑ ÔÏÍ ÁÒÈÉ×Á\n"
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "April"
+msgstr "áÐÒÅÌØ"
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "February"
+msgstr "æÅ×ÒÁÌØ"
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "January"
+msgstr "ñÎ×ÁÒØ"
+
+#: Mailman/Archiver/HyperArch.py:826
+msgid "March"
+msgstr "íÁÒÔ"
+
+#: Mailman/Archiver/HyperArch.py:827
+msgid "August"
+msgstr "á×ÇÕÓÔ"
+
+#: Mailman/Archiver/HyperArch.py:827
+msgid "July"
+msgstr "éÀÌØ"
+
+#: Mailman/Archiver/HyperArch.py:827
+msgid "June"
+msgstr "éÀÎØ"
+
+#: Mailman/Archiver/HyperArch.py:827 Mailman/i18n.py:91
+msgid "May"
+msgstr "íÁÊ"
+
+#: Mailman/Archiver/HyperArch.py:828
+msgid "December"
+msgstr "äÅËÁÂÒØ"
+
+#: Mailman/Archiver/HyperArch.py:828
+msgid "November"
+msgstr "îÏÑÂÒØ"
+
+#: Mailman/Archiver/HyperArch.py:828
+msgid "October"
+msgstr "ïËÔÑÂÒØ"
+
+#: Mailman/Archiver/HyperArch.py:828
+msgid "September"
+msgstr "óÅÎÔÑÂÒØ"
+
+#: Mailman/Archiver/HyperArch.py:836
+msgid "First"
+msgstr "ðÅÒ×ÙÊ"
+
+#: Mailman/Archiver/HyperArch.py:836
+msgid "Fourth"
+msgstr "þÅÔ×ÅÒÔÙÊ"
+
+#: Mailman/Archiver/HyperArch.py:836
+msgid "Second"
+msgstr "÷ÔÏÒÏÊ"
+
+#: Mailman/Archiver/HyperArch.py:836
+msgid "Third"
+msgstr "ôÒÅÔÉÊ"
+
+#: Mailman/Archiver/HyperArch.py:838
+msgid "%(ord)s quarter %(year)i"
+msgstr "%(ord)s Ë×ÁÒÔÁÌ %(year)i"
+
+#: Mailman/Archiver/HyperArch.py:845
+msgid "%(month)s %(year)i"
+msgstr "%(month)s %(year)i"
+
+# MSS: ÚÄÅÓØ ÍÅÓÑà ÎÅ ÓËÌÏÎÑÅÔÓÑ... þÔÏ ÅÓÔØ ÐÌÏÈÏ. ÷ÁÒÉÁÎÔÙ?
+#: Mailman/Archiver/HyperArch.py:850
+msgid "The Week Of Monday %(day)i %(month)s %(year)i"
+msgstr "îÅÄÅÌÑ, ÎÁÞÉÎÁÀÝÁÑÓÑ Ó ÐÏÎÅÄÅÌØÎÉËÁ %(day)i %(month)s %(year)i"
+
+#: Mailman/Archiver/HyperArch.py:854
+msgid "%(day)i %(month)s %(year)i"
+msgstr "%(day)i %(month)s %(year)i"
+
+#: Mailman/Archiver/HyperArch.py:951
+msgid "Computing threaded index\n"
+msgstr "æÏÒÍÉÒÕÅÔÓÑ ÉÎÄÅËÓ ÐÏ ÄÉÓËÕÓÓÉÑÍ\n"
+
+#: Mailman/Archiver/HyperArch.py:1206
+msgid "Updating HTML for article %(seq)s"
+msgstr "ïÂÎÏ×ÌÑÅÔÓÑ HTML-ÐÒÅÄÓÔÁ×ÌÅÎÉÅ ÄÌÑ ÓÔÁÔØÉ %(seq)s"
+
+#: Mailman/Archiver/HyperArch.py:1213
+msgid "article file %(filename)s is missing!"
+msgstr "ÏÔÓÕÔÓÔ×ÕÅÔ ÆÁÊÌ ÓÔÁÔØÉ %(filename)s!"
+
+#: Mailman/Archiver/pipermail.py:168 Mailman/Archiver/pipermail.py:169
+msgid "No subject"
+msgstr "âÅÚ ÔÅÍÙ"
+
+#: Mailman/Archiver/pipermail.py:269
+msgid "Creating archive directory "
+msgstr "óÏÚÄÁÅÔÓÑ ËÁÔÁÌÏÇ ÁÒÈÉ×Á "
+
+#: Mailman/Archiver/pipermail.py:281
+msgid "Reloading pickled archive state"
+msgstr "úÁÇÒÕÖÁÅÔÓÑ ÓÏÓÔÏÑÎÉÅ ÁÒÈÉ×Á"
+
+#: Mailman/Archiver/pipermail.py:308
+msgid "Pickling archive state into "
+msgstr "óÏÓÔÏÑÎÉÅ ÁÒÈÉ×Á ÓÏÈÒÁÎÑÅÔÓÑ × "
+
+#: Mailman/Archiver/pipermail.py:419
+msgid "Updating index files for archive [%(archive)s]"
+msgstr "éÄÅÔ ÏÂÎÏ×ÌÅÎÉÅ ÆÁÊÌÏ× ÉÎÄÅËÓÏ× ÄÌÑ ÁÒÈÉ×Á [%(archive)s]"
+
+#: Mailman/Archiver/pipermail.py:452
+msgid " Thread"
+msgstr " ôÅÍÙ ÄÉÓËÕÓÓÉÊ"
+
+#: Mailman/Archiver/pipermail.py:557
+msgid "#%(counter)05d %(msgid)s"
+msgstr "#%(counter)05d %(msgid)s"
+
+#: Mailman/Bouncer.py:44
+msgid "due to excessive bounces"
+msgstr "× ÓÉÌÕ ÂÏÌØÛÏÇÏ ËÏÌÉÞÅÓÔ×Á ÏÛÉÂÏË, ×ÏÚÎÉËÛÉÈ ÐÒÉ ÄÏÓÔÁ×ËÅ"
+
+#: Mailman/Bouncer.py:45
+msgid "by yourself"
+msgstr "ÐÏ ×ÁÛÅÍÕ ÓÏÂÓÔ×ÅÎÎÏÍÕ ÕËÁÚÁÎÉÀ"
+
+#: Mailman/Bouncer.py:46
+msgid "by the list administrator"
+msgstr "ÐÏ ÕËÁÚÁÎÉÀ ÁÄÍÉÎÉÓÔÒÁÔÏÒÁ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ"
+
+#: Mailman/Bouncer.py:47 Mailman/Bouncer.py:232
+#: Mailman/Commands/cmd_set.py:182
+msgid "for unknown reasons"
+msgstr "ÐÏ ÎÅÉÚ×ÅÓÔÎÏÊ ÐÒÉÞÉÎÅ"
+
+#: Mailman/Bouncer.py:179
+msgid "disabled"
+msgstr "ÚÁÂÌÏËÉÒÏ×ÁÎÁ"
+
+#: Mailman/Bouncer.py:184
+msgid "Bounce action notification"
+msgstr "éÚ×ÅÝÅÎÉÅ Ï ÏÛÉÂËÅ"
+
+#: Mailman/Bouncer.py:239
+msgid " The last bounce received from you was dated %(date)s"
+msgstr " ðÏÓÌÅÄÎÅÅ ÓÏÏÂÝÅÎÉÅ Ï ÏÛÉÂËÅ ×ÁÍ ÐÏÄÐÉÓËÉ ÄÁÔÉÒÏ×ÁÎÏ %(date)s"
+
+#: Mailman/Bouncer.py:264 Mailman/Deliverer.py:126
+#: Mailman/Handlers/Acknowledge.py:44 Mailman/Handlers/CookHeaders.py:236
+#: Mailman/Handlers/Hold.py:214 Mailman/Handlers/Hold.py:249
+#: Mailman/Handlers/ToDigest.py:211 Mailman/ListAdmin.py:235
+msgid "(no subject)"
+msgstr "(ÂÅÚ ÔÅÍÙ)"
+
+#: Mailman/Bouncer.py:266
+msgid "[No bounce details are available]"
+msgstr "[äÏÐÏÌÎÉÔÅÌØÎÁÑ ÉÎÆÏÒÍÁÃÉÑ Ï ÏÛÉÂËÅ ÏÔÓÕÔÓÔ×ÕÅÔ]"
+
+#: Mailman/Cgi/Auth.py:46
+msgid "Moderator"
+msgstr "ÍÏÄÅÒÁÔÏÒÁ"
+
+#: Mailman/Cgi/Auth.py:48
+msgid "Administrator"
+msgstr "ÁÄÍÉÎÉÓÔÒÁÔÏÒÁ"
+
+#: Mailman/Cgi/admin.py:70 Mailman/Cgi/admindb.py:89 Mailman/Cgi/confirm.py:55
+#: Mailman/Cgi/edithtml.py:67 Mailman/Cgi/listinfo.py:51
+#: Mailman/Cgi/options.py:71 Mailman/Cgi/private.py:98
+#: Mailman/Cgi/rmlist.py:64 Mailman/Cgi/roster.py:57
+#: Mailman/Cgi/subscribe.py:61
+msgid "No such list <em>%(safelistname)s</em>"
+msgstr "óÐÉÓÏË ÒÁÓÓÙÌËÉ <em>%(safelistname)s</em> ÎÅ ÓÕÝÅÓÔ×ÕÅÔ"
+
+#: Mailman/Cgi/admin.py:85 Mailman/Cgi/admindb.py:105
+#: Mailman/Cgi/edithtml.py:85 Mailman/Cgi/private.py:123
+msgid "Authorization failed."
+msgstr "ïÛÉÂËÁ ÄÏÓÔÕÐÁ."
+
+#: Mailman/Cgi/admin.py:175
+msgid ""
+"You have turned off delivery of both digest and\n"
+" non-digest messages. This is an incompatible state of\n"
+" affairs. You must turn on either digest delivery or\n"
+" non-digest delivery or your mailing list will basically be\n"
+" unusable."
+msgstr ""
+"÷Ù ÏÔËÌÀÞÉÌÉ ËÁË ÄÏÓÔÁ×ËÕ ÄÁÊÄÖÅÓÔÏ×, ÔÁË É ÏÂÙÞÎÕÀ\n"
+" ÄÏÓÔÁ×ËÕ ÓÏÏÂÝÅÎÉÊ. ÷Ù ÄÏÌÖÎÙ ×ËÌÀÞÉÔØ ÏÄÉÎ\n"
+" ÉÚ ÓÐÏÓÏÂÏ× ÄÏÓÔÁ×ËÉ ÓÏÏÂÝÅÎÉÊ ÄÌÑ ×ÁÛÅÇÏ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ.\n"
+" ÷ ÔÁËÏÍ ÓÏÓÔÏÑÎÉÉ ÜÔÏÔ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ ÉÓÐÏÌØÚÏ×ÁÔØ ÎÅÌØÚÑ. "
+
+#: Mailman/Cgi/admin.py:179 Mailman/Cgi/admin.py:185 Mailman/Cgi/admin.py:190
+#: Mailman/Cgi/admin.py:1361 Mailman/Gui/GUIBase.py:184
+msgid "Warning: "
+msgstr "ðÒÅÄÕÐÒÅÖÄÅÎÉÅ: "
+
+#: Mailman/Cgi/admin.py:183
+msgid ""
+"You have digest members, but digests are turned\n"
+" off. Those people will not receive mail."
+msgstr ""
+"ïÔÐÒÁ×ËÁ ÄÁÊÄÖÅÓÔÏ× ÏÔËÌÀÞÅÎÁ, ÏÄÎÁËÏ ÅÓÔØ\n"
+" ÐÏÄÐÉÓÞÉËÉ, ËÏÔÏÒÙÅ ÂÙ ÈÏÔÅÌÉ ÐÏÌÕÞÁÔØ ÉÈ. ïÎÉ ÎÉÞÅÇÏ ÎÅ "
+"ÐÏÌÕÞÁÔ."
+
+#: Mailman/Cgi/admin.py:188
+msgid ""
+"You have regular list members but non-digestified mail is\n"
+" turned off. They will receive mail until you fix this\n"
+" problem."
+msgstr ""
+"ïÂÙÞÎÁÑ ÄÏÓÔÁ×ËÁ ÓÏÏÂÝÅÎÉÊ ÏÔËÌÀÞÅÎÁ, ÏÄÎÁËÏ ÅÓÔØ\n"
+" ÐÏÄÐÉÓÞÉËÉ, ËÏÔÏÒÙÅ ÂÙ ÈÏÔÅÌÉ ÐÏÌÕÞÁÔØ ÓÏÏÂÝÅÎÉÑ ÏÂÙÞÎÙÍ\n"
+" ÏÂÒÁÚÏÍ. ïÎÉ ÎÉÞÅÇÏ ÎÅ ÐÏÌÕÞÁÔ."
+
+#: Mailman/Cgi/admin.py:212
+msgid "%(hostname)s mailing lists - Admin Links"
+msgstr "óÐÉÓËÉ ÒÁÓÓÙÌËÉ ÎÁ %(hostname)s -- ÉÎÔÅÒÆÅÊÓ ÁÄÍÉÎÉÓÔÒÁÔÏÒÁ"
+
+#: Mailman/Cgi/admin.py:241 Mailman/Cgi/listinfo.py:97
+msgid "Welcome!"
+msgstr "äÏÂÒÏ ÐÏÖÁÌÏ×ÁÔØ!"
+
+#: Mailman/Cgi/admin.py:244 Mailman/Cgi/listinfo.py:100
+msgid "Mailman"
+msgstr "Mailman"
+
+#: Mailman/Cgi/admin.py:248
+msgid ""
+"<p>There currently are no publicly-advertised %(mailmanlink)s\n"
+" mailing lists on %(hostname)s."
+msgstr ""
+"<p>÷ ÎÁÓÔÏÑÝÅÅ ×ÒÅÍÑ × ÓÉÓÔÅÍÅ %(mailmanlink)s ÎÁ %(hostname)s ÎÅ\n"
+" ÚÁÒÅÇÉÓÔÒÉÒÏ×ÁÎÏ ÎÉ ÏÄÎÏ ÏÔËÒÙÔÏ ÁÎÏÎÓÉÒÏ×ÁÎÎÏÇÏ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ."
+
+#: Mailman/Cgi/admin.py:254
+msgid ""
+"<p>Below is the collection of publicly-advertised\n"
+" %(mailmanlink)s mailing lists on %(hostname)s. Click on a list\n"
+" name to visit the configuration pages for that list."
+msgstr ""
+"<p>îÉÖÅ ÐÒÉ×ÅÄÅÎ ÐÅÒÅÞÅÎØ ÁÎÏÎÓÉÒÏ×ÁÎÎÙÈ ÎÁ ÓÅÒ×ÅÒÅ\n"
+" %(hostname)s ÓÐÉÓËÏ× ÒÁÓÓÙÌËÉ ÐÏÄ ÕÐÒÁ×ÌÅÎÉÅÍ ÐÒÏÇÒÁÍÍÙ %"
+"(mailmanlink)s. ðÅÒÅÊÄÉÔÅ ÐÏ ÓÓÙÌËÅ c ÉÍÅÎÅÍ\n"
+" ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ, ËÏÔÏÒÙÊ ×Ù ÈÏÔÉÔÅ ÁÄÍÉÎÉÓÔÒÉÒÏ×ÁÔØ."
+
+# MSS: ÍÏÖÅÔ ÂÙÔØ, × ÄÁÎÎÏÍ ÓÌÕÞÁÅ ÎÕÖÎÏ ÂÙ ÐÅÒÅ×ÅÓÔÉ ËÁË "ÓÕÝÅÓÔ×ÕÀÝÅÅ "
+#: Mailman/Cgi/admin.py:261
+msgid "right "
+msgstr "ÐÒÁ×ÉÌØÎÏÅ "
+
+#: Mailman/Cgi/admin.py:263
+msgid ""
+"To visit the administrators configuration page for an\n"
+" unadvertised list, open a URL similar to this one, but with a '/' "
+"and\n"
+" the %(extra)slist name appended. If you have the proper authority,\n"
+" you can also <a href=\"%(creatorurl)s\">create a new mailing list</"
+"a>.\n"
+"\n"
+" <p>General list information can be found at "
+msgstr ""
+"äÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÐÏÓÅÔÉÔØ ÓÔÒÁÎÉÃÕ ÎÁÓÔÒÏÊËÉ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ, ÎÅ ÕËÁÚÁÎÎÏÇÏ\n"
+" ÚÄÅÓØ, ÄÏÂÁרÔÅ Ë ÁÄÒÅÓÕ ÜÔÏÊ ÓÔÒÁÎÉÃÙ ÓÉÍ×ÏÌ '/', ÚÁ ËÏÔÏÒÙÍ\n"
+" ×Ù ÄÏÌÖÎÙ ÕËÁÚÁÔØ %(extra)sÉÍÑ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ. åÓÌÉ Õ ×ÁÓ ÅÓÔØ ÐÒÁ×Ï "
+"ÓÏÚÄÁ×ÁÔØ\n"
+" ÓÐÉÓËÉ ÒÁÓÓÙÌËÉ ÎÁ ÜÔÏÍ ÓÅÒ×ÅÒÅ, ×Ù ÍÏÖÅÔÅ ÐÅÒÅÊÔÉ Ë <a href=\"%s"
+"(creatorurl)s\">ÓÔÒÁÎÉÃÅ ÓÏÚÄÁÎÉÑ ÓÐÉÓËÏ× ÒÁÓÓÙÌÏË</a>.\n"
+"\n"
+" <p>ïÂÝÁÑ ÉÎÆÏÒÍÁÃÉÑ Ï ÓÐÉÓËÁÈ ÒÁÓÓÙÌÏË ÍÏÖÅÔ ÂÙÔØ ÎÁÊÄÅÎÁ ÎÁ "
+
+#: Mailman/Cgi/admin.py:270
+msgid "the mailing list overview page"
+msgstr "ÓÔÒÁÎÉÃÅ Ó ËÒÁÔËÏÊ ÉÎÆÏÒÍÁÃÉÅÊ Ï ÓÐÉÓËÅ ÒÁÓÓÙÌËÅ"
+
+#: Mailman/Cgi/admin.py:272
+msgid "<p>(Send questions and comments to "
+msgstr "<p>(ïÔÐÒÁ×ÌÑÊÔÅ ×ÏÐÒÏÓÙ É ËÏÍÍÅÎÔÁÒÉÉ ÐÏ ÁÄÒÅÓÕ "
+
+#: Mailman/Cgi/admin.py:282 Mailman/Cgi/listinfo.py:132 cron/mailpasswds:179
+msgid "List"
+msgstr "óÐÉÓÏË ÒÁÓÓÙÌËÉ"
+
+#: Mailman/Cgi/admin.py:283 Mailman/Cgi/admin.py:549
+#: Mailman/Cgi/listinfo.py:133
+msgid "Description"
+msgstr "ïÐÉÓÁÎÉÅ"
+
+#: Mailman/Cgi/admin.py:289 Mailman/Cgi/listinfo.py:139 bin/list_lists:116
+msgid "[no description available]"
+msgstr "[ÏÐÉÓÁÎÉÅ ÏÔÓÕÔÓÔ×ÕÅÔ]"
+
+# MSS: DIG ÐÒÅÄÌÏÖÉÌ ÄÒÕÇÏÊ ×ÁÒÉÁÎÔ, ÎÏ ÏÎ ÍÎÅ ÔÏÖÅ ÎÅ ÎÒÁ×ÉÔÓÑ. :(
+# ÎÁÄÏ ÓÍÏÔÒÅÔØ ÎÁ ÜÔÕ ÆÕÎËÃÉÀ ÇÌÏÂÁÌØÎÏ
+# +msgstr "äÏÐÕÓÔÉÍÏÅ ÉÍÑ ÐÅÒÅÍÅÎÎÏÊ ÎÅ ÎÁÊÄÅÎÏ."
+#: Mailman/Cgi/admin.py:322
+msgid "No valid variable name found."
+msgstr "îÅ ÎÁÊÄÅÎÏ ÎÁÚ×ÁÎÉÑ ÄÏÐÕÓÔÉÍÏÊ ÐÅÒÅÍÅÎÎÏÊ."
+
+#: Mailman/Cgi/admin.py:332
+msgid ""
+"%(realname)s Mailing list Configuration Help\n"
+" <br><em>%(varname)s</em> Option"
+msgstr ""
+"éÎÆÏÒÍÁÃÉÑ Ï ÎÁÓÔÒÏÊËÅ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ %(realname)s\n"
+" <br>ðÁÒÁÍÅÔÒ<em>%(varname)s</em>"
+
+#: Mailman/Cgi/admin.py:339
+msgid "Mailman %(varname)s List Option Help"
+msgstr "éÎÆÏÒÍÁÃÉÑ Ï ÐÁÒÁÍÅÔÒÅ %(varname)s"
+
+#: Mailman/Cgi/admin.py:357
+msgid ""
+"<em><strong>Warning:</strong> changing this option here\n"
+" could cause other screens to be out-of-sync. Be sure to reload any "
+"other\n"
+" pages that are displaying this option for this mailing list. You can "
+"also\n"
+" "
+msgstr ""
+"<em><strong>÷ÎÉÍÁÎÉÅ</strong>: ÉÚÍÅÎÅÎÉÅ ÜÔÏÇÏ ÐÁÒÁÍÅÔÒÁ ÍÏÖÅÔ ÐÒÉ×ÅÓÔÉ Ë "
+"ÔÏÍÕ,\n"
+" ÞÔÏ ÉÎÆÏÒÍÁÃÉÑ ÎÁ ÄÒÕÇÉÈ ÓÔÒÁÎÉÃÁÈ ÎÅ ÂÕÄÅÔ ÏÔÒÁÖÁÔØ ÔÅËÕÝÕÀ "
+"ËÏÎÆÉÇÕÒÁÃÉÀ\n"
+" ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ. ïÂÑÚÁÔÅÌØÎÏ ÏÂÎÏ×ÉÔÅ ÓÔÒÁÎÉÃÙ, ÎÁ ËÏÔÏÒÙÅ ÐÏÑ×ÌÑÅÔÓÑ "
+"ÜÔÏÔ\n"
+" ÐÁÒÁÍÅÔÒ. ÷Ù ÔÁËÖÅ ÍÏÖÅÔÅ"
+
+#: Mailman/Cgi/admin.py:368
+msgid "return to the %(categoryname)s options page."
+msgstr "×ÅÒÎÕÔØÓÑ Ë ÓÔÒÁÎÉÃÅ ÇÒÕÐÐÙ ÐÁÒÁÍÅÔÒÏ× %(categoryname)s"
+
+#: Mailman/Cgi/admin.py:383
+msgid "%(realname)s Administration (%(label)s)"
+msgstr "ðÁÒÁÍÅÔÒÙ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ %(realname)s: %(label)s"
+
+#: Mailman/Cgi/admin.py:384
+msgid "%(realname)s mailing list administration<br>%(label)s Section"
+msgstr "õÐÒÁ×ÌÅÎÉÅ ÓÐÉÓËÏÍ ÒÁÓÓÙÌËÉ %(realname)s<br>òÁÚÄÅÌ \"%(label)s\""
+
+#: Mailman/Cgi/admin.py:400
+msgid "Configuration Categories"
+msgstr "çÒÕÐÐÙ ÐÁÒÁÍÅÔÒÏ× ÎÁÓÔÒÏÊËÉ"
+
+#: Mailman/Cgi/admin.py:401
+msgid "Other Administrative Activities"
+msgstr "äÒÕÇÉÅ ÁÄÍÉÎÉÓÔÒÁÔÉ×ÎÙÅ ÚÁÄÁÞÉ"
+
+#: Mailman/Cgi/admin.py:405
+msgid "Tend to pending moderator requests"
+msgstr "ðÅÒÅÊÔÉ Ë ÏÂÒÁÂÏÔËÅ ÚÁÄÁÞ ÍÏÄÅÒÁÔÏÒÁ"
+
+#: Mailman/Cgi/admin.py:407
+msgid "Go to the general list information page"
+msgstr "ðÅÒÅÊÔÉ Ë ÓÔÒÁÎÉÃÅ Ó ËÒÁÔËÏÊ ÉÎÆÏÒÍÁÃÉÅÊ Ï ÓÐÉÓËÅ ÒÁÓÓÙÌËÉ"
+
+#: Mailman/Cgi/admin.py:409
+msgid "Edit the public HTML pages"
+msgstr "ðÒÁ×ËÁ ÏÂÝÅÄÏÓÔÕÐÎÙÈ HTML-ÓÔÒÁÎÉÃ"
+
+#: Mailman/Cgi/admin.py:411
+msgid "Go to list archives"
+msgstr "ðÅÒÅÊÔÉ Ë ÓÔÒÁÎÉÃÅ ÁÒÈÉ×Á"
+
+#: Mailman/Cgi/admin.py:417
+msgid "Delete this mailing list"
+msgstr "õÄÁÌÉÔØ ÜÔÏÔ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ"
+
+#: Mailman/Cgi/admin.py:418
+msgid " (requires confirmation)<br>&nbsp;<br>"
+msgstr " (ÔÒÅÂÕÅÔ ÐÏÄÔ×ÅÒÖÄÅÎÉÑ)<br>&nbsp;<br>"
+
+#: Mailman/Cgi/admin.py:424
+msgid "Logout"
+msgstr "úÁ×ÅÒÛÉÔØ ÒÁÂÏÔÕ"
+
+# MSS: ÉÌÉ ÌÕÞÛÅ ÜËÓÔÒÅÎÎÏÅ? éÌÉ ÅÝÅ ËÁË-ÎÉÂÕÄØ?
+#: Mailman/Cgi/admin.py:468
+msgid "Emergency moderation of all list traffic is enabled"
+msgstr "÷ËÌÀÞÅÎÏ ÓÒÏÞÎÏÅ ÍÏÄÅÒÉÒÏ×ÁÎÉÅ ×ÓÅÈ ÓÐÉÓËÏ× ÒÁÓÓÙÌËÉ"
+
+#: Mailman/Cgi/admin.py:479
+msgid ""
+"Make your changes in the following section, then submit them\n"
+" using the <em>Submit Your Changes</em> button below."
+msgstr ""
+"éÚÍÅÎÉ× ÐÁÒÁÍÅÔÒÙ × ÒÁÚÄÅÌÅ ÎÉÖÅ, ÓÏÈÒÁÎÉÔÅ ÉÈ\n"
+" Ó ÐÏÍÏÝØÀ ËÎÏÐËÉ <em>÷ÎÅÓÔÉ ÉÚÍÅÎÅÎÉÑ</em> ×ÎÉÚÕ."
+
+#: Mailman/Cgi/admin.py:497
+msgid "Additional Member Tasks"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:503
+msgid ""
+"<li>Set everyone's moderation bit, including\n"
+" those members not currently visible"
+msgstr ""
+
+#: Mailman/Cgi/admin.py:507
+msgid "Off"
+msgstr "÷ÙËÌ"
+
+#: Mailman/Cgi/admin.py:507
+msgid "On"
+msgstr "÷ËÌ"
+
+#: Mailman/Cgi/admin.py:509
+msgid "Set"
+msgstr "úÁÐÏÍÎÉÔØ"
+
+#: Mailman/Cgi/admin.py:550
+msgid "Value"
+msgstr "úÎÁÞÅÎÉÅ"
+
+#: Mailman/Cgi/admin.py:604
+msgid ""
+"Badly formed options entry:\n"
+" %(record)s"
+msgstr ""
+"îÅÄÏÐÕÓÔÉÍÙÊ ÆÏÒÍÁÔ ÄÌÑ ÚÎÁÞÅÎÉÑ ÐÁÒÁÍÅÔÒÁ:\n"
+" %(record)s"
+
+#: Mailman/Cgi/admin.py:662
+msgid "<em>Enter the text below, or...</em><br>"
+msgstr "<em>÷×ÅÄÉÔÅ ÔÅËÓÔ × ÐÏÌÅ ÎÉÖÅ ÉÌÉ ...</em><br>"
+
+#: Mailman/Cgi/admin.py:664
+msgid "<br><em>...specify a file to upload</em><br>"
+msgstr "<br><em>...ÕËÁÖÉÔÅ ÆÁÊÌ ÄÌÑ ÚÁÇÒÕÚËÉ ÎÁ ÓÅÒ×ÅÒ</em><br>"
+
+#: Mailman/Cgi/admin.py:690 Mailman/Cgi/admin.py:693
+msgid "Topic %(i)d"
+msgstr "ôÅÍÁ %(i)d"
+
+#: Mailman/Cgi/admin.py:694
+msgid "Delete"
+msgstr "õÄÁÌÉÔØ"
+
+#: Mailman/Cgi/admin.py:695
+msgid "Topic name:"
+msgstr "îÁÚ×ÁÎÉÅ ÔÅÍÙ:"
+
+# MSS: ÔÉÐÁ ÛÕÔËÉ. ;(
+#: Mailman/Cgi/admin.py:697
+msgid "Regexp:"
+msgstr "òÅÇ×ÙÒ:"
+
+#: Mailman/Cgi/admin.py:700 Mailman/Cgi/options.py:943
+msgid "Description:"
+msgstr "ïÐÉÓÁÎÉÅ:"
+
+#: Mailman/Cgi/admin.py:704
+msgid "Add new item..."
+msgstr "äÏÂÁ×ÉÔØ ×ÙÒÁÖÅÎÉÅ..."
+
+#: Mailman/Cgi/admin.py:706
+msgid "...before this one."
+msgstr "...ÐÅÒÅÄ ÔÅËÕÝÉÍ."
+
+#: Mailman/Cgi/admin.py:707
+msgid "...after this one."
+msgstr "...ÐÏÓÌÅ ÔÅËÕÝÅÇÏ."
+
+#: Mailman/Cgi/admin.py:742
+msgid "<br>(Edit <b>%(varname)s</b>)"
+msgstr "<br>(éÚÍÅÎÉÔØ <b>%(varname)s</b>)"
+
+#: Mailman/Cgi/admin.py:744
+msgid "<br>(Details for <b>%(varname)s</b>)"
+msgstr "<br>(ðÏÄÒÏÂÎÁÑ ÉÎÆÏÒÍÁÃÉÑ Ï \"<b>%(varname)s</b>)"
+
+#: Mailman/Cgi/admin.py:751
+msgid ""
+"<br><em><strong>Note:</strong>\n"
+" setting this value performs an immediate action but does not modify\n"
+" permanent state.</em>"
+msgstr ""
+"<br><em><strong>Note</strong>:\n"
+" ÉÚÍÅÎÅÎÉÅ ÜÔÏÇÏ ÚÎÁÞÅÎÉÑ ÐÒÉ×ÏÄÉÔ Ë ÎÅÍÅÄÌÅÎÎÏÍÕ ÒÅÚÕÌØÔÁÔÕ, ÎÏ ÎÅ "
+"×ÌÉÑÅÔ\n"
+" ÓÏÈÒÁÎÅÎÎÏÅ ÓÏÓÔÏÑÎÉÅ.</em>"
+
+#: Mailman/Cgi/admin.py:765
+msgid "Mass Subscriptions"
+msgstr "íÁÓÓÏ×ÏÅ ÄÏÂÁ×ÌÅÎÉÅ ÐÏÄÐÉÓÞÉËÏ×"
+
+#: Mailman/Cgi/admin.py:772
+msgid "Mass Removals"
+msgstr "íÁÓÓÏ×ÏÅ ÕÄÁÌÅÎÉÅ ÐÏÄÐÉÓÞÉËÏ×"
+
+#: Mailman/Cgi/admin.py:779
+msgid "Membership List"
+msgstr "óÐÉÓÏË ÐÏÄÐÉÓÞÉËÏ×"
+
+#: Mailman/Cgi/admin.py:786
+msgid "(help)"
+msgstr "(ÐÏÄÓËÁÚËÁ)"
+
+#: Mailman/Cgi/admin.py:787
+msgid "Find member %(link)s:"
+msgstr "îÁÊÔÉ ÐÏÄÐÉÓÞÉËÁ %(link)s:"
+
+#: Mailman/Cgi/admin.py:790
+msgid "Search..."
+msgstr "éÓËÁÔØ..."
+
+#: Mailman/Cgi/admin.py:805
+msgid "Bad regular expression: "
+msgstr "îÅ×ÅÒÎÏÅ ÒÅÇÕÌÑÒÎÏÅ ×ÙÒÁÖÅÎÉÅ: "
+
+#: Mailman/Cgi/admin.py:861
+msgid "%(allcnt)s members total, %(membercnt)s shown"
+msgstr "×ÓÅÇÏ ÐÏÄÐÉÓÞÉËÏ×: %(allcnt)s; ÐÏËÁÚÁÎÏ ÐÏÄÐÉÓÞÉËÏ×: %(membercnt)s"
+
+#: Mailman/Cgi/admin.py:864
+msgid "%(allcnt)s members total"
+msgstr "×ÓÅÇÏ ÐÏÄÐÉÓÞÉËÏ×: %(allcnt)s"
+
+#: Mailman/Cgi/admin.py:887
+msgid "unsub"
+msgstr "unsub"
+
+#: Mailman/Cgi/admin.py:888
+msgid "member address<br>member name"
+msgstr "ÁÄÒÅÓ ÐÏÄÐÉÓÞÉËÁ<br>ÉÍÑ ÐÏÄÐÉÓÞÉËÁ"
+
+#: Mailman/Cgi/admin.py:889
+msgid "hide"
+msgstr "hide"
+
+#: Mailman/Cgi/admin.py:889
+msgid "mod"
+msgstr "mod"
+
+#: Mailman/Cgi/admin.py:890
+msgid "nomail<br>[reason]"
+msgstr "nomail<br>[ÐÒÉÞÉÎÁ]"
+
+#: Mailman/Cgi/admin.py:891
+msgid "ack"
+msgstr "ack"
+
+#: Mailman/Cgi/admin.py:891
+msgid "not metoo"
+msgstr "not metoo"
+
+#: Mailman/Cgi/admin.py:892
+msgid "nodupes"
+msgstr "ÂÅÚ ËÏÐÉÊ"
+
+#: Mailman/Cgi/admin.py:893
+msgid "digest"
+msgstr "ÄÁÊÄÖÅÓÔ"
+
+#: Mailman/Cgi/admin.py:893
+msgid "plain"
+msgstr "ÏÂÙÞÎÁÑ"
+
+#: Mailman/Cgi/admin.py:894
+msgid "language"
+msgstr "ÑÚÙË"
+
+#: Mailman/Cgi/admin.py:905
+msgid "?"
+msgstr "?"
+
+#: Mailman/Cgi/admin.py:906
+msgid "U"
+msgstr "U"
+
+#: Mailman/Cgi/admin.py:907
+msgid "A"
+msgstr "B"
+
+#: Mailman/Cgi/admin.py:908
+msgid "B"
+msgstr "B"
+
+#: Mailman/Cgi/admin.py:979
+msgid "<b>unsub</b> -- Click on this to unsubscribe the member."
+msgstr "<b>unsub</b> -- ÕÄÁÌÉÔØ ÐÏÄÐÉÓËÕ ÕËÁÚÁÎÎÏÇÏ ÐÏÄÐÉÓÞÉËÁ."
+
+#: Mailman/Cgi/admin.py:981
+msgid ""
+"<b>mod</b> -- The user's personal moderation flag. If this is\n"
+" set, postings from them will be moderated, otherwise they will be\n"
+" approved."
+msgstr ""
+"<b>mod</b> -- ÆÌÁÇ ÍÏÄÅÒÉÒÏ×ÁÎÉÑ ÐÏÄÐÉÓÞÉËÁ. åÓÌÉ ÆÌÁÇ ÕÓÔÁÎÏ×ÌÅÎ, ÔÏ\n"
+" ×ÓÅ ÓÏÏÂÝÅÎÉÑ ÏÔ ÜÔÏÇÏ ÐÏÄÐÉÓÞÉËÁ ÂÕÄÕÔ ÏÔËÌÁÄÙ×ÁÔØÓÑ ÄÌÑ ÏÂÒÁÂÏÔËÉ\n"
+" ÍÏÄÅÒÁÔÏÒÏÍ, × ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ ÏÎÉ ÂÕÄÕÔ ÓÒÁÚÕ ÐÅÒÅÓÙÌÁÔØÓÑ × "
+"ÓÐÉÓÏË ÒÁÓÓÙÌËÉ."
+
+#: Mailman/Cgi/admin.py:985
+msgid ""
+"<b>hide</b> -- Is the member's address concealed on\n"
+" the list of subscribers?"
+msgstr ""
+"<b>hide</b> -- ÁÄÒÅÓ ÜÔÏÇÏ ÐÏÄÐÉÓÞÉËÁ ÎÅ ÂÕÄÅÔ ÐÏËÁÚÁÎ ×\n"
+" ÏÂÝÅÍ ÓÐÉÓËÅ ÐÏÄÐÉÓÞÉËÏ×"
+
+#: Mailman/Cgi/admin.py:987
+msgid ""
+"<b>nomail</b> -- Is delivery to the member disabled? If so, an\n"
+" abbreviation will be given describing the reason for the disabled\n"
+" delivery:\n"
+" <ul><li><b>U</b> -- Delivery was disabled by the user via their\n"
+" personal options page.\n"
+" <li><b>A</b> -- Delivery was disabled by the list\n"
+" administrators.\n"
+" <li><b>B</b> -- Delivery was disabled by the system due to\n"
+" excessive bouncing from the member's address.\n"
+" <li><b>?</b> -- The reason for disabled delivery isn't "
+"known.\n"
+" This is the case for all memberships which were "
+"disabled\n"
+" in older versions of Mailman.\n"
+" </ul>"
+msgstr ""
+"<b>nomail</b> -- ÚÁÂÌÏËÉÒÏ×ÁÎÁ ÌÉ ÄÏÓÔÁ×ËÁ ÓÏÏÂÝÅÎÉÊ ÜÔÏÍÕ ÐÏÄÐÉÓÞÉËÕ? åÓÌÉ "
+"ÄÁ,\n"
+" ÔÏ ÒÑÄÏÍ ×Ù Õ×ÉÄÉÔÅ ÏÄÎÏ ÉÚ ÓÌÅÄÕÀÝÉÈ ÓÏËÒÁÝÅÎÉÊ, ÏÂßÑÓÎÑÀÝÉÈ "
+"ÐÒÉÞÉÎÕ:\n"
+" <ul><li><b>U</b> -- ÄÏÓÔÁ×ËÁ ÂÙÌÁ ÚÁÂÌÏËÉÒÏ×ÁÎÁ ÓÁÍÉÍ "
+"ÐÏÌØÚÏ×ÁÔÅÌÅÍ\n"
+" <li><b>A</b> -- ÄÏÓÔÁ×ËÁ ÂÙÌÁ ÚÁÂÌÏËÉÒÏ×ÁÎÁ ÁÄÍÉÎÉÓÔÒÁÔÏÒÏÍ "
+"ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ\n"
+" <li><b>B</b> -- ÄÏÓÔÁ×ËÁ ÂÙÌÁ ÚÁÂÌÏËÉÒÏ×ÁÎÁ × ÓÌÅÄÓÔ×ÉÅ "
+"ÐÏÌÕÞÅÎÉÑ ÂÏÌØÛÏÇÏ ËÏÌÉÞÅÓÔ×Á ÓÏÏÂÝÅÎÉÊ Ï ÏÛÉÂËÁÈ ÄÏÓÔÁ×ËÉ\n"
+" <li><b>?</b> -- ÐÒÉÞÉÎÁ ÎÅÉÚ×ÅÓÔÎÁ.\n"
+" üÔÏ ÔÁËÖÅ ÍÏÖÅÔ ÏÚÎÁÞÁÔØ, ÞÔÏ ÄÏÓÔÁ×ËÁ ÂÙÌÁ "
+"ÚÁÂÌÏËÉÒÏ×ÁÎÎÁ × ÐÒÅÄÙÄÕÝÅÊ\n"
+" ×ÅÒÓÉÉ Mailman.\n"
+" </ul>"
+
+#: Mailman/Cgi/admin.py:1002
+msgid ""
+"<b>ack</b> -- Does the member get acknowledgements of their\n"
+" posts?"
+msgstr ""
+"<b>ack</b> -- ÐÏÌÕÞÁÅÔ ÌÉ ÐÏÄÐÉÓÞÉË ÐÏÄÔ×ÅÒÖÄÅÎÉÑ Ï ÄÏÓÔÁ×ËÅ\n"
+" Ó×ÏÉÈ ÐÉÓÅÍ × ÓÐÉÓÏË ÒÁÓÓÙÌËÉ?"
+
+#: Mailman/Cgi/admin.py:1005
+msgid ""
+"<b>not metoo</b> -- Does the member want to avoid copies of their\n"
+" own postings?"
+msgstr ""
+"<b>not metoo</b> -- ÈÏÞÅÔ ÌÉ ÐÏÄÐÉÓÞÉË ÏÔËÁÚÁÔØÓÑ ÏÔ ÐÏÌÕÞÅÎÉÑ ËÏÐÉÊ\n"
+" Ó×ÏÉÈ ÓÏÂÓÔ×ÅÎÎÙÈ ÓÏÏÂÝÅÎÉÊ?"
+
+#: Mailman/Cgi/admin.py:1008
+msgid ""
+"<b>nodupes</b> -- Does the member want to avoid duplicates of the\n"
+" same message?"
+msgstr ""
+"<b>ÂÅÚ ËÏÐÉÊ</b> -- ÏÔÐÒÁ×ÌÑÔØ ÌÉ ÐÏÄÐÉÓÞÉËÕ ËÏÐÉÉ ÏÄÎÏÇÏ É ÔÏÇÏ\n"
+" ÖÅ ÓÏÏÂÝÅÎÉÑ?"
+
+#: Mailman/Cgi/admin.py:1011
+msgid ""
+"<b>digest</b> -- Does the member get messages in digests?\n"
+" (otherwise, individual messages)"
+msgstr ""
+"<b>ÄÁÊÄÖÅÓÔ</b> -- ÜÔÏÔ ÐÏÄÐÉÓÞÉË ÐÏÌÕÞÁÅÔ ÄÁÊÄÖÅÓÔÙ\n"
+" (× ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ ÏÎ ÐÏÌÕÞÁÅÔ ÏÔÄÅÌØÎÙÅ ÓÏÏÂÝÅÎÉÑ)"
+
+#: Mailman/Cgi/admin.py:1014
+msgid ""
+"<b>plain</b> -- If getting digests, does the member get plain\n"
+" text digests? (otherwise, MIME)"
+msgstr ""
+"<b>ÏÂÙÞÎÁÑ</b> -- ÐÏÌÕÞÁÅÍÙÅ ÄÁÊÄÖÅÓÔÙ × ×ÉÄÅ ÏÂÙÞÎÏÇÏ ÔÅËÓÔÁ?\n"
+" (× ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ, MIME)"
+
+#: Mailman/Cgi/admin.py:1016
+msgid "<b>language</b> -- Language preferred by the user"
+msgstr "<b>ÑÚÙË</b> -- ÑÚÙË ÉÎÔÅÒÆÅÊÓÁ, ÐÒÅÄÐÏÞÉÔÁÅÍÙÊ ÜÔÉÍ ÐÏÄÐÉÓÞÉËÏÍ"
+
+#: Mailman/Cgi/admin.py:1030
+msgid "Click here to hide the legend for this table."
+msgstr "õÂÒÁÔØ ÌÅÇÅÎÄÕ ÄÌÑ ÔÁÂÌÉÃÙ"
+
+#: Mailman/Cgi/admin.py:1034
+msgid "Click here to include the legend for this table."
+msgstr "ðÏËÁÚÁÔØ ÌÅÇÅÎÄÕ ÄÌÑ ÔÁÂÌÉÃÙ"
+
+#: Mailman/Cgi/admin.py:1041
+msgid ""
+"<p><em>To view more members, click on the appropriate\n"
+" range listed below:</em>"
+msgstr ""
+"<p><em>óÓÙÌËÉ ÎÉÖÅ ÐÏÚ×ÏÌÑÀÔ ÐÒÏÓÍÏÔÒÅÔØ ÐÏÄÐÉÓÞÉËÏ× ÉÚ\n"
+" ÒÁÚÎÙÈ ÄÉÁÐÁÚÏÎÏ×:</em>"
+
+#: Mailman/Cgi/admin.py:1050
+msgid "from %(start)s to %(end)s"
+msgstr "Ó %(start)s ÐÏ %(end)s"
+
+#: Mailman/Cgi/admin.py:1063
+msgid "Subscribe these users now or invite them?"
+msgstr "ðÏÄÐÉÓÁÔØ ÜÔÉÈ ÐÏÌØÚÏ×ÁÔÅÌÅÊ ÉÌÉ ÐÒÉÇÌÁÓÉÔØ?"
+
+#: Mailman/Cgi/admin.py:1065
+msgid "Invite"
+msgstr "ðÒÉÇÌÁÓÉÔØ"
+
+#: Mailman/Cgi/admin.py:1065 Mailman/Cgi/listinfo.py:175
+msgid "Subscribe"
+msgstr "ðÏÄÐÉÓÁÔØ"
+
+#: Mailman/Cgi/admin.py:1071
+msgid "Send welcome messages to new subscribees?"
+msgstr "ïÔÐÒÁ×ÌÑÔØ ÐÒÉ×ÅÔÓÔ×ÅÎÎÏÅ ÓÏÏÂÝÅÎÉÅ ÎÏ×ÙÍ ÐÏÄÐÉÓÞÉËÁÍ?"
+
+#: Mailman/Cgi/admin.py:1073 Mailman/Cgi/admin.py:1082
+#: Mailman/Cgi/admin.py:1115 Mailman/Cgi/admin.py:1123
+#: Mailman/Cgi/confirm.py:271 Mailman/Cgi/create.py:327
+#: Mailman/Cgi/create.py:355 Mailman/Cgi/create.py:395
+#: Mailman/Cgi/rmlist.py:228 Mailman/Gui/Archive.py:33
+#: Mailman/Gui/Autoresponse.py:54 Mailman/Gui/Autoresponse.py:62
+#: Mailman/Gui/Autoresponse.py:71 Mailman/Gui/Bounce.py:77
+#: Mailman/Gui/Bounce.py:108 Mailman/Gui/Bounce.py:134
+#: Mailman/Gui/Bounce.py:143 Mailman/Gui/ContentFilter.py:70
+#: Mailman/Gui/ContentFilter.py:103 Mailman/Gui/Digest.py:46
+#: Mailman/Gui/Digest.py:62 Mailman/Gui/Digest.py:84 Mailman/Gui/Digest.py:89
+#: Mailman/Gui/General.py:148 Mailman/Gui/General.py:154
+#: Mailman/Gui/General.py:232 Mailman/Gui/General.py:259
+#: Mailman/Gui/General.py:286 Mailman/Gui/General.py:297
+#: Mailman/Gui/General.py:300 Mailman/Gui/General.py:310
+#: Mailman/Gui/General.py:315 Mailman/Gui/General.py:325
+#: Mailman/Gui/General.py:345 Mailman/Gui/General.py:373
+#: Mailman/Gui/General.py:396 Mailman/Gui/NonDigest.py:44
+#: Mailman/Gui/NonDigest.py:52 Mailman/Gui/Privacy.py:101
+#: Mailman/Gui/Privacy.py:107 Mailman/Gui/Privacy.py:140
+#: Mailman/Gui/Privacy.py:188 Mailman/Gui/Privacy.py:296
+#: Mailman/Gui/Privacy.py:309 Mailman/Gui/Usenet.py:50
+#: Mailman/Gui/Usenet.py:54 Mailman/Gui/Usenet.py:91 Mailman/Gui/Usenet.py:103
+msgid "No"
+msgstr "îÅÔ"
+
+#: Mailman/Cgi/admin.py:1073 Mailman/Cgi/admin.py:1082
+#: Mailman/Cgi/admin.py:1115 Mailman/Cgi/admin.py:1123
+#: Mailman/Cgi/confirm.py:271 Mailman/Cgi/create.py:327
+#: Mailman/Cgi/create.py:355 Mailman/Cgi/create.py:395
+#: Mailman/Cgi/rmlist.py:228 Mailman/Gui/Archive.py:33
+#: Mailman/Gui/Autoresponse.py:54 Mailman/Gui/Autoresponse.py:62
+#: Mailman/Gui/Bounce.py:77 Mailman/Gui/Bounce.py:108
+#: Mailman/Gui/Bounce.py:134 Mailman/Gui/Bounce.py:143
+#: Mailman/Gui/ContentFilter.py:70 Mailman/Gui/ContentFilter.py:103
+#: Mailman/Gui/Digest.py:46 Mailman/Gui/Digest.py:62 Mailman/Gui/Digest.py:84
+#: Mailman/Gui/Digest.py:89 Mailman/Gui/General.py:148
+#: Mailman/Gui/General.py:154 Mailman/Gui/General.py:232
+#: Mailman/Gui/General.py:259 Mailman/Gui/General.py:286
+#: Mailman/Gui/General.py:297 Mailman/Gui/General.py:300
+#: Mailman/Gui/General.py:310 Mailman/Gui/General.py:315
+#: Mailman/Gui/General.py:325 Mailman/Gui/General.py:345
+#: Mailman/Gui/General.py:373 Mailman/Gui/General.py:396
+#: Mailman/Gui/NonDigest.py:44 Mailman/Gui/NonDigest.py:52
+#: Mailman/Gui/Privacy.py:101 Mailman/Gui/Privacy.py:107
+#: Mailman/Gui/Privacy.py:140 Mailman/Gui/Privacy.py:188
+#: Mailman/Gui/Privacy.py:296 Mailman/Gui/Privacy.py:309
+#: Mailman/Gui/Usenet.py:50 Mailman/Gui/Usenet.py:54 Mailman/Gui/Usenet.py:91
+#: Mailman/Gui/Usenet.py:103
+msgid "Yes"
+msgstr "äÁ"
+
+#: Mailman/Cgi/admin.py:1080
+msgid "Send notifications of new subscriptions to the list owner?"
+msgstr "ïÐÏ×ÅÝÁÔØ ×ÌÁÄÅÌØÃÁ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ Ï ÎÏ×ÙÈ ÐÏÄÐÉÓÞÉËÁÈ?"
+
+#: Mailman/Cgi/admin.py:1088 Mailman/Cgi/admin.py:1129
+msgid "Enter one address per line below..."
+msgstr "÷×ÅÄÉÔÅ ÁÄÒÅÓÁ (ÐÏ ÏÄÎÏÍÕ × ÓÔÒÏËÅ)..."
+
+#: Mailman/Cgi/admin.py:1093 Mailman/Cgi/admin.py:1134
+msgid "...or specify a file to upload:"
+msgstr "... ÉÌÉ ÕËÁÖÉÔÅ ÆÁÊÌ ÓÏ ÓÐÉÓËÏÍ ÐÏÄÐÉÓÞÉËÏ×:"
+
+#: Mailman/Cgi/admin.py:1098
+msgid ""
+"Below, enter additional text to be added to the\n"
+" top of your invitation or the subscription notification. Include at "
+"least\n"
+" one blank line at the end..."
+msgstr ""
+"îÉÖÅ ×Ù ÍÏÖÅÔÅ ÕËÁÚÁÔØ ÔÅËÓÔ, ËÏÔÏÒÙÊ ÂÕÄÅÔ ÕËÁÚÁÎ\n"
+" × ÎÁÞÁÌÅ ×ÁÛÅÇÏ ÐÒÉÇÌÁÛÅÎÉÑ ÉÌÉ ÏÐÏ×ÅÝÅÎÉÑ Ï ÐÏÄÐÉÓËÅ. ðÏÖÁÌÕÊÓÔÁ,\n"
+" ×ÓÔÁרÔÅ × ËÏÎÃÅ ÐÏ ËÒÁÊÎÅÊ ÍÅÒÅ ÏÄÎÕ ÐÕÓÔÕÀ ÓÔÒÏÞËÕ..."
+
+#: Mailman/Cgi/admin.py:1113
+msgid "Send unsubscription acknowledgement to the user?"
+msgstr "ïÔÐÒÁ×ÉÔØ ÉÚ×ÅÝÅÎÉÅ Ï ÕÄÁÌÅÎÉÉ ÉÚ ÓÐÉÓËÁ ÐÏÄÐÉÓÞÉËÏ×?"
+
+#: Mailman/Cgi/admin.py:1121
+msgid "Send notifications to the list owner?"
+msgstr "ïÐÏ×ÅÓÔÉÔØ ×ÌÁÄÅÌØÃÁ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ?"
+
+#: Mailman/Cgi/admin.py:1143
+msgid "Change list ownership passwords"
+msgstr "éÚÍÅÎÉÔØ ÐÁÒÏÌØ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ"
+
+#: Mailman/Cgi/admin.py:1146
+msgid ""
+"The <em>list administrators</em> are the people who have ultimate control "
+"over\n"
+"all parameters of this mailing list. They are able to change any list\n"
+"configuration variable available through these administration web pages.\n"
+"\n"
+"<p>The <em>list moderators</em> have more limited permissions; they are not\n"
+"able to change any list configuration variable, but they are allowed to "
+"tend\n"
+"to pending administration requests, including approving or rejecting held\n"
+"subscription requests, and disposing of held postings. Of course, the\n"
+"<em>list administrators</em> can also tend to pending requests.\n"
+"\n"
+"<p>In order to split the list ownership duties into administrators and\n"
+"moderators, you must set a separate moderator password in the fields below,\n"
+"and also provide the email addresses of the list moderators in the\n"
+"<a href=\"%(adminurl)s/general\">general options section</a>."
+msgstr ""
+
+#: Mailman/Cgi/admin.py:1165
+msgid "Enter new administrator password:"
+msgstr "õËÁÖÉÔÅ ÎÏ×ÙÊ ÐÁÒÏÌØ ÁÄÍÉÎÉÓÔÒÁÔÏÒÁ:"
+
+#: Mailman/Cgi/admin.py:1167
+msgid "Confirm administrator password:"
+msgstr "ðÏÄÔ×ÅÒÄÉÔÅ ÎÏ×ÙÊ ÐÁÒÏÌØ ÁÄÍÉÎÉÓÔÒÁÔÏÒÁ:"
+
+#: Mailman/Cgi/admin.py:1172
+msgid "Enter new moderator password:"
+msgstr "õËÁÖÉÔÅ ÎÏ×ÙÊ ÐÁÒÏÌØ ÍÏÄÅÒÁÔÏÒÁ:"
+
+#: Mailman/Cgi/admin.py:1174
+msgid "Confirm moderator password:"
+msgstr "ðÏÄÔ×ÅÒÄÉÔÅ ÎÏ×ÙÊ ÐÁÒÏÌØ ÍÏÄÅÒÁÔÏÒÁ:"
+
+#: Mailman/Cgi/admin.py:1184
+msgid "Submit Your Changes"
+msgstr "÷ÎÅÓÔÉ ÉÚÍÅÎÅÎÉÑ"
+
+#: Mailman/Cgi/admin.py:1207
+msgid "Moderator passwords did not match"
+msgstr "ïÛÉÂËÁ ÐÒÉ ÐÏÄÔ×ÅÒÖÄÅÎÉÉ ÐÁÒÏÌÑ ÍÏÄÅÒÁÔÏÒÁ"
+
+#: Mailman/Cgi/admin.py:1217
+msgid "Administrator passwords did not match"
+msgstr "ïÛÉÂËÁ ÐÒÉ ÐÏÄÔ×ÅÒÖÄÅÎÉÉ ÐÁÒÏÌÑ ÁÄÍÉÎÉÓÔÒÁÔÏÒÁ"
+
+#: Mailman/Cgi/admin.py:1265
+msgid "Already a member"
+msgstr "õÖÅ Ñ×ÌÑÅÔÓÑ ÐÏÄÐÉÓÞÉËÏÍ"
+
+#: Mailman/Cgi/admin.py:1268
+msgid "&lt;blank line&gt;"
+msgstr "&lt;ÐÕÓÔÁÑ ÓÔÒÏËÁ&gt;"
+
+#: Mailman/Cgi/admin.py:1269 Mailman/Cgi/admin.py:1272
+msgid "Bad/Invalid email address"
+msgstr "îÅÄÏÐÕÓÔÉÍÙÊ ÜÌÅËÔÒÏÎÎÙÊ ÁÄÒÅÓ"
+
+#: Mailman/Cgi/admin.py:1275
+msgid "Hostile address (illegal characters)"
+msgstr "ïÛÉÂÏÞÎÙÊ ÁÄÒÅÓ (×ÓÔÒÅÔÉÌÉÓØ ÎÅÄÏÐÕÓÔÉÍÙÅ ÓÉÍ×ÏÌÙ)"
+
+#: Mailman/Cgi/admin.py:1281
+msgid "Successfully invited:"
+msgstr "õÓÐÅÛÎÏ ÐÒÉÇÌÁÛÅÎÙ:"
+
+#: Mailman/Cgi/admin.py:1283
+msgid "Successfully subscribed:"
+msgstr "õÓÐÅÛÎÏ ÐÏÄÐÉÓÁÎÙ:"
+
+#: Mailman/Cgi/admin.py:1288
+msgid "Error inviting:"
+msgstr "ðÒÉÇÌÁÛÅÎÙ îå ÂÙÌÉ:"
+
+#: Mailman/Cgi/admin.py:1290
+msgid "Error subscribing:"
+msgstr "ðÏÄÐÉÓÁÎÙ îå ÂÙÌÉ:"
+
+#: Mailman/Cgi/admin.py:1319
+msgid "Successfully Unsubscribed:"
+msgstr "õÓÐÅÛÎÏ ÕÄÁÌÅÎÁ ÐÏÄÐÉÓËÁ ÄÌÑ:"
+
+#: Mailman/Cgi/admin.py:1324
+msgid "Cannot unsubscribe non-members:"
+msgstr "îÅ ÕÄÁÌÏÓØ ÕÄÁÌÉÔØ ÐÏÄÐÉÓËÕ Õ ÎÅ-ÐÏÄÐÉÓÞÉËÏ×:"
+
+#: Mailman/Cgi/admin.py:1336
+msgid "Bad moderation flag value"
+msgstr "îÅÄÏÐÕÓÔÉÍÏÅ ÚÎÁÞÅÎÉÅ ÆÌÁÇÁ ÍÏÄÅÒÉÒÏ×ÁÎÉÑ"
+
+# MSS: ÈÍÍ?
+#: Mailman/Cgi/admin.py:1357
+msgid "Not subscribed"
+msgstr "îÅ ÐÏÄÐÉÓÁÎ"
+
+# MSS: ??
+#: Mailman/Cgi/admin.py:1360
+msgid "Ignoring changes to deleted member: %(user)s"
+msgstr "éÇÎÏÒÉÒÕÀÔÓÑ ÉÚÍÅÎÅÎÉÑ ÄÌÑ ÕÄÁÌ£ÎÎÏÇÏ ÐÏÄÐÉÓÞÉËÁ: %(user)s"
+
+#: Mailman/Cgi/admin.py:1400
+msgid "Successfully Removed:"
+msgstr "õÓÐÅÛÎÏ ÕÄÁÌÅÎÙ:"
+
+#: Mailman/Cgi/admin.py:1404
+msgid "Error Unsubscribing:"
+msgstr "ïÛÉÂËÁ ÕÄÁÌÅÎÉÑ ÐÏÄÐÉÓËÉ:"
+
+#: Mailman/Cgi/admindb.py:159 Mailman/Cgi/admindb.py:167
+msgid "%(realname)s Administrative Database"
+msgstr "óÐÉÓÏË ÚÁÐÒÏÓÏ× ÄÌÑ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ %(realname)s"
+
+#: Mailman/Cgi/admindb.py:162
+msgid "%(realname)s Administrative Database Results"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:170
+msgid "There are no pending requests."
+msgstr "îÅÔ ÚÁÐÒÏÓÏ×, ÔÒÅÂÕÀÝÉÈ ÒÅÛÅÎÉÑ."
+
+#: Mailman/Cgi/admindb.py:173
+msgid "Click here to reload this page."
+msgstr "ýÅÌËÎÉÔÅ ÓÀÄÁ ÄÌÑ ÏÂÎÏ×ÌÅÎÉÑ ÜÔÏÊ ÓÔÒÁÎÉÃÙ"
+
+#: Mailman/Cgi/admindb.py:184
+msgid "Detailed instructions for the administrative database"
+msgstr "ðÏÄÒÏÂÎÁÑ ÉÎÓÔÒÕËÃÉÑ ÐÏ ÒÁÂÏÔÅ Ó ÁÄÍÉÎÉÓÔÒÁÔÉ×ÎÙÍÉ ÚÁÐÒÏÓÁÍÉ"
+
+#: Mailman/Cgi/admindb.py:188
+msgid "Administrative requests for mailing list:"
+msgstr "áÄÍÉÎÉÓÔÒÁÔÉ×ÎÙÅ ÚÁÐÒÏÓÙ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ:"
+
+#: Mailman/Cgi/admindb.py:191 Mailman/Cgi/admindb.py:234
+msgid "Submit All Data"
+msgstr "÷ÙÐÏÌÎÉÔØ"
+
+#: Mailman/Cgi/admindb.py:204
+msgid "all of %(esender)s's held messages."
+msgstr "×ÓÅ ÏÔÌÏÖÅÎÎÙÅ ÓÏÏÂÝÅÎÉÑ ÏÔ %(esender)s."
+
+# FIXME: MSS: ÎÅÏÂÈÏÄÉÍÏ ÂÏÌÅÅ ×ÎÉÍÁÔÅÌØÎÏ ÇÌÑÎÕÔØ ÎÁ ÔÅËÓÔ..
+# MSS: "ÏÔÌÏÖÅÎÎÏÅ ÓÏÏÂÝÅÎÉÅ"
+# ÉÓÐÏÌØÚÏ×ÁÌÓÑ ×ÁÒÉÁÎÔ DIG
+#: Mailman/Cgi/admindb.py:209
+msgid "a single held message."
+msgstr "ÚÁÄÅÒÖÁÎÎÏÅ ÓÏÏÂÝÅÎÉÅ"
+
+#: Mailman/Cgi/admindb.py:214
+msgid "all held messages."
+msgstr "×ÓÅ ÚÁÄÅÒÖÁÎÎÙÅ ÓÏÏÂÝÅÎÉÑ"
+
+#: Mailman/Cgi/admindb.py:249
+msgid "Mailman Administrative Database Error"
+msgstr "ÏÛÉÂËÁ ÒÁÂÏÔÙ Ó ÁÄÍÉÎÉÓÔÒÁÔÉ×ÎÏÊ ÂÁÚÏÊ ÄÁÎÎÙÈ Mailman"
+
+#: Mailman/Cgi/admindb.py:254
+msgid "list of available mailing lists."
+msgstr "ÓÐÉÓÏË ÄÏÓÔÕÐÎÙÈ ÓÐÉÓËÏ× ÒÁÓÓÙÌËÉ."
+
+#: Mailman/Cgi/admindb.py:255
+msgid "You must specify a list name. Here is the %(link)s"
+msgstr "÷Ù ÄÏÌÖÎÙ ÕËÁÚÁÔØ ÉÍÑ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ; ÐÒÏÓÍÏÔÒÉÔÅ %(link)s"
+
+#: Mailman/Cgi/admindb.py:268
+msgid "Subscription Requests"
+msgstr "úÁÐÒÏÓÙ ÎÁ ÐÏÄÐÉÓËÕ"
+
+#: Mailman/Cgi/admindb.py:270
+msgid "Address/name"
+msgstr "áÄÒÅÓ/ÉÍÑ"
+
+#: Mailman/Cgi/admindb.py:271 Mailman/Cgi/admindb.py:320
+msgid "Your decision"
+msgstr "÷ÁÛÅ ÒÅÛÅÎÉÅ"
+
+#: Mailman/Cgi/admindb.py:272 Mailman/Cgi/admindb.py:321
+msgid "Reason for refusal"
+msgstr "ðÒÉÞÉÎÁ ÏÔËÁÚÁ"
+
+#: Mailman/Cgi/admindb.py:289 Mailman/Cgi/admindb.py:346
+#: Mailman/Cgi/admindb.py:389 Mailman/Cgi/admindb.py:612
+msgid "Defer"
+msgstr "ïÔÌÏÖÉÔØ"
+
+#: Mailman/Cgi/admindb.py:290 Mailman/Cgi/admindb.py:347
+#: Mailman/Cgi/admindb.py:612
+msgid "Approve"
+msgstr "ïÄÏÂÒÉÔØ"
+
+#: Mailman/Cgi/admindb.py:291 Mailman/Cgi/admindb.py:348
+#: Mailman/Cgi/admindb.py:389 Mailman/Cgi/admindb.py:612
+#: Mailman/Gui/ContentFilter.py:37 Mailman/Gui/Privacy.py:207
+#: Mailman/Gui/Privacy.py:281
+msgid "Reject"
+msgstr "ïÔËÁÚÁÔØ"
+
+#: Mailman/Cgi/admindb.py:292 Mailman/Cgi/admindb.py:349
+#: Mailman/Cgi/admindb.py:389 Mailman/Cgi/admindb.py:612
+#: Mailman/Gui/ContentFilter.py:37 Mailman/Gui/Privacy.py:207
+#: Mailman/Gui/Privacy.py:281
+msgid "Discard"
+msgstr "õÄÁÌÉÔØ"
+
+#: Mailman/Cgi/admindb.py:300
+msgid "Permanently ban from this list"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:319
+msgid "User address/name"
+msgstr "áÄÒÅÓ/ÉÍÑ ÐÏÌØÚÏ×ÁÔÅÌÑ"
+
+#: Mailman/Cgi/admindb.py:359
+msgid "Unsubscription Requests"
+msgstr "úÁÐÒÏÓÙ ÎÁ ÐÒÅËÒÁÝÅÎÉÅ ÐÏÄÐÉÓËÉ"
+
+#: Mailman/Cgi/admindb.py:382 Mailman/Cgi/admindb.py:596
+msgid "From:"
+msgstr "ïÔ:"
+
+#: Mailman/Cgi/admindb.py:385
+msgid "Action to take on all these held messages:"
+msgstr "äÅÊÓÔ×ÉÅ, ËÏÔÏÒÏÅ ÎÅÏÂÈÏÄÉÍÏ ÐÒÉÍÅÎÉÔØ ËÏ ×ÓÅÍ ÚÁÄÅÒÖÁÎÎÙÍ ÓÏÏÂÝÅÎÉÑÍ:"
+
+#: Mailman/Cgi/admindb.py:389 Mailman/Gui/Privacy.py:281
+msgid "Accept"
+msgstr "ðÒÉÎÑÔØ"
+
+#: Mailman/Cgi/admindb.py:397
+msgid "Preserve messages for the site administrator"
+msgstr "óÏÈÒÁÎÉÔØ ÓÏÏÂÝÅÎÉÑ ÄÌÑ ÁÄÍÉÎÉÓÔÒÁÔÏÒÁ ÓÅÒ×ÅÒÁ"
+
+#: Mailman/Cgi/admindb.py:403
+msgid "Forward messages (individually) to:"
+msgstr "ðÅÒÅÓÌÁÔØ (ÐÏ ÏÔÄÅÌØÎÏÓÔÉ) ÐÏ ÁÄÒÅÓÁÍ:"
+
+#: Mailman/Cgi/admindb.py:421
+msgid "Clear this member's <em>moderate</em> flag"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:425
+msgid "<em>The sender is now a member of this list</em>"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:434
+msgid "Add <b>%(esender)s</b> to a sender filter"
+msgstr "äÏÂÁ×ÉÔØ <b>%(esender)s</b> × ÏÂÒÁÂÏÔÞÉË ÏÔÐÒÁ×ÉÔÅÌÅÊ"
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Accepts"
+msgstr "ðÒÉÎÑÔØ"
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Discards"
+msgstr "õÄÁÌÉÔØ"
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Holds"
+msgstr "ïÔÌÏÖÉÔØ"
+
+#: Mailman/Cgi/admindb.py:439
+msgid "Rejects"
+msgstr "ïÔ×ÅÒÇÎÕÔØ"
+
+#: Mailman/Cgi/admindb.py:448
+msgid ""
+"Ban <b>%(esender)s</b> from ever subscribing to this\n"
+" mailing list"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:453
+msgid ""
+"Click on the message number to view the individual\n"
+" message, or you can "
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:455
+msgid "view all messages from %(esender)s"
+msgstr ""
+
+#: Mailman/Cgi/admindb.py:475 Mailman/Cgi/admindb.py:599
+msgid "Subject:"
+msgstr "ôÅÍÁ:"
+
+# MSS: ÂÁÊÔÏ×?? ÂÁÊÔ(Ï×)??
+#: Mailman/Cgi/admindb.py:478
+msgid " bytes"
+msgstr " ÂÁÊÔ(Ï×)"
+
+#: Mailman/Cgi/admindb.py:478
+msgid "Size:"
+msgstr "òÁÚÍÅÒ:"
+
+#: Mailman/Cgi/admindb.py:482 Mailman/Handlers/Decorate.py:50
+#: Mailman/Handlers/Scrubber.py:226 Mailman/Handlers/Scrubber.py:227
+msgid "not available"
+msgstr "ÏÔÓÕÔÓÔ×ÕÅÔ"
+
+#: Mailman/Cgi/admindb.py:483 Mailman/Cgi/admindb.py:601
+msgid "Reason:"
+msgstr "ðÒÉÞÉÎÁ:"
+
+#: Mailman/Cgi/admindb.py:487 Mailman/Cgi/admindb.py:605
+msgid "Received:"
+msgstr "ðÏÌÕÞÅÎÎÏÅ:"
+
+#: Mailman/Cgi/admindb.py:545
+msgid "Posting Held for Approval"
+msgstr "óÏÏÂÝÅÎÉÅ ÏÔÌÏÖÅÎÏ ÎÁ ÒÁÓÓÍÏÔÒÅÎÉÅ"
+
+#: Mailman/Cgi/admindb.py:547
+msgid " (%(count)d of %(total)d)"
+msgstr " (%(count)d ÉÚ %(total)d)"
+
+#: Mailman/Cgi/admindb.py:558
+msgid "<em>Message with id #%(id)d was lost."
+msgstr "<em>óÏÏÂÝÅÎÉÅ Ó ÉÄÅÎÔÉÆÉËÁÔÏÒÏÍ #%(id)d ÕÔÅÒÑÎÏ."
+
+#: Mailman/Cgi/admindb.py:567
+msgid "<em>Message with id #%(id)d is corrupted."
+msgstr "<em>óÏÏÂÝÅÎÉÅ Ó ÉÄÅÎÔÉÆÉËÁÔÏÒÏÍ #%(id)d ÐÏ×ÒÅÖÄÅÎÏ."
+
+#: Mailman/Cgi/admindb.py:618
+msgid "Action:"
+msgstr "äÅÊÓÔ×ÉÅ:"
+
+#: Mailman/Cgi/admindb.py:622
+msgid "Preserve message for site administrator"
+msgstr "óÏÈÒÁÎÉÔØ ÓÏÏÂÝÅÎÉÅ ÄÌÑ ÁÄÍÉÎÉÓÔÒÁÔÏÒÁ ÓÅÒ×ÅÒÁ"
+
+#: Mailman/Cgi/admindb.py:626
+msgid "Additionally, forward this message to: "
+msgstr "ôÁËÖÅ ÏÔÐÒÁ×ÉÔØ ÓÏÏÂÝÅÎÉÅ ÐÏ ÜÔÉÍ ÁÄÒÅÓÁÍ: "
+
+#: Mailman/Cgi/admindb.py:630
+msgid "[No explanation given]"
+msgstr "[ÏÂßÑÓÎÅÎÉÅ ÏÔÓÕÔÓÔ×ÕÅÔ]"
+
+#: Mailman/Cgi/admindb.py:632
+msgid "If you reject this post,<br>please explain (optional):"
+msgstr ""
+"åÓÌÉ ×Ù ÎÅ ÒÁÚÒÅÛÁÅÔÅ ÐÕÂÌÉËÁÃÉÀ ÜÔÏÇÏ ÓÏÏÂÝÅÎÉÑ,<br>ÐÏÖÁÌÕÊÓÔÁ, ÐÏÑÓÎÉÔÅ "
+"ÐÏÞÅÍÕ (ÎÅÏÂÑÚÁÔÅÌØÎÏ):"
+
+#: Mailman/Cgi/admindb.py:638
+msgid "Message Headers:"
+msgstr "úÁÇÏÌÏ×ËÉ ÓÏÏÂÝÅÎÉÑ:"
+
+#: Mailman/Cgi/admindb.py:643
+msgid "Message Excerpt:"
+msgstr "÷ÙÄÅÒÖËÁ ÉÚ ÓÏÏÂÝÅÎÉÑ:"
+
+#: Mailman/Cgi/admindb.py:676 Mailman/Deliverer.py:124
+msgid "No reason given"
+msgstr "ðÒÉÞÉÎÁ ÎÅ ÕËÁÚÁÎÁ"
+
+#: Mailman/Cgi/admindb.py:737 Mailman/ListAdmin.py:308
+#: Mailman/ListAdmin.py:429
+msgid "[No reason given]"
+msgstr "[ðÒÉÞÉÎÁ ÎÅ ÕËÁÚÁÎÁ]"
+
+#: Mailman/Cgi/admindb.py:766
+msgid "Database Updated..."
+msgstr "âÁÚÁ ÄÁÎÎÙÈ ÏÂÎÏ×ÌÅÎÁ..."
+
+#: Mailman/Cgi/admindb.py:769
+msgid " is already a member"
+msgstr " ÕÖÅ Ñ×ÌÑÅÔÓÑ ÐÏÄÐÉÓÞÉËÏÍ"
+
+#: Mailman/Cgi/confirm.py:69
+msgid "Confirmation string was empty."
+msgstr "óÔÒÏËÁ ÐÏÄÔ×ÅÒÖÄÅÎÉÑ ÏÔÓÕÔÓÔ×ÕÅÔ."
+
+#: Mailman/Cgi/confirm.py:89
+msgid ""
+"<b>Invalid confirmation string:</b>\n"
+" %(safecookie)s.\n"
+"\n"
+" <p>Note that confirmation strings expire approximately\n"
+" %(days)s days after the initial subscription request. If your\n"
+" confirmation has expired, please try to re-submit your subscription.\n"
+" Otherwise, <a href=\"%(confirmurl)s\">re-enter</a> your confirmation\n"
+" string."
+msgstr ""
+"<b>îÅ×ÅÒÎÁÑ ÓÔÒÏËÁ ÐÏÄÔ×ÅÒÖÄÅÎÉÑ:</b>\n"
+" %(safecookie)s.\n"
+"\n"
+" <p>éÍÅÊÔÅ, ÐÏÖÁÌÕÊÓÔÁ, × ×ÉÄÕ, ÞÔÏ ÓÔÒÏËÁ ÐÏÄÔ×ÅÒÖÄÅÎÉÑ ÍÏÖÅÔ ÂÙÔØ "
+"ÉÓÐÏÌØÚÏ×ÁÎÁ\n"
+" ÔÏÌØËÏ × ÔÅÞÅÎÉÉ %(days)s ÄÎÅÊ ÐÏÓÌÅ ÚÁÐÒÏÓÁ ÎÁ ÐÏÄÐÉÓËÕ. åÓÌÉ ×ÁÛ "
+"ÚÁÐÒÏÓ ÂÙÌ\n"
+" ÏÔÐÒÁ×ÌÅÎ ÒÁÎØÛÅ, ÐÏÖÁÌÕÊÓÔÁ, ÐÏÐÒÏÂÕÊÔÅ ÐÏ×ÔÏÒÎÏ ÚÁÐÒÏÓÉÔØ ÐÏÄÐÉÓËÕ.\n"
+" ÷ ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ, ÐÏÐÒÏÂÕÊÔÅ <a href=\"%(confirmurl)s\">××ÅÓÔÉ</a> "
+"ÓÔÒÏËÕ ÐÏÄÔ×ÅÒÖÄÅÎÉÑ\n"
+" ÅÝÅ ÒÁÚ."
+
+#: Mailman/Cgi/confirm.py:122
+msgid ""
+"The address requesting unsubscription is not\n"
+" a member of the mailing list. Perhaps you have already "
+"been\n"
+" unsubscribed, e.g. by the list administrator?"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:138
+msgid ""
+"The address requesting to be changed has\n"
+" been subsequently unsubscribed. This request has been\n"
+" cancelled."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:157
+msgid "System error, bad content: %(content)s"
+msgstr "óÉÓÔÅÍÎÁÑ ÏÛÉÂËÁ, ÎÅÄÏÐÕÓÔÉÍÏÅ ÓÏÄÅÒÖÉÍÏÅ: %(content)s"
+
+#: Mailman/Cgi/confirm.py:167
+msgid "Bad confirmation string"
+msgstr "óÔÒÏËÁ ÐÏÄÔ×ÅÒÖÄÅÎÉÑ ÎÅ×ÅÒÎÁ"
+
+#: Mailman/Cgi/confirm.py:175
+msgid "Enter confirmation cookie"
+msgstr "õËÁÖÉÔÅ ËÏÄ ÐÏÄÔ×ÅÒÖÄÅÎÉÑ"
+
+#: Mailman/Cgi/confirm.py:188
+msgid ""
+"Please enter the confirmation string\n"
+" (i.e. <em>cookie</em>) that you received in your email message, in the "
+"box\n"
+" below. Then hit the <em>Submit</em> button to proceed to the next\n"
+" confirmation step."
+msgstr ""
+"ðÏÖÁÌÕÊÓÔÁ, ××ÅÄÉÔÅ ÓÔÒÏËÕ ÐÏÄÔ×ÅÒÖÄÅÎÉÑ\n"
+" (Ô.Å. <em>ËÏÄ</em> ËÏÔÏÒÙÊ ×Ù ÄÏÌÖÎÙ ÂÙÌÉ ÐÏÌÕÞÉÔØ × ÜÌÅËÔÒÏÎÎÏÍ "
+"ÐÉÓØÍÅ)\n"
+" × ÐÒÅÄÌÏÖÅÎÎÏÅ ÐÏÌÅ. úÁÔÅÍ ÎÁÖÍÉÔÅ ËÎÏÐËÕ <em>ðÏÄÔ×ÅÒÄÉÔØ</em> ÄÌÑ ÔÏÇÏ, "
+"ÞÔÏÂÙ\n"
+" ÐÅÒÅÊÔÉ Ë ÓÌÅÄÕÀÝÅÍÕ ÛÁÇÕ ÐÒÏÃÅÄÕÒÙ ÒÅÇÉÓÔÒÁÃÉÉ."
+
+#: Mailman/Cgi/confirm.py:193
+msgid "Confirmation string:"
+msgstr "óÔÒÏËÁ ÐÏÄÔ×ÅÒÖÄÅÎÉÑ:"
+
+# MSS: ÅÓÌÉ ÜÔÏ ÓÌÏ×Ï ÂÕÄÅÔ ÅÝÅ ÇÄÅ-ÔÏ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ, ÔÏ ÂÕÄÕÔ ÐÒÏÂÌÅÍÙ. ;((
+#: Mailman/Cgi/confirm.py:195
+msgid "Submit"
+msgstr "ðÏÄÔ×ÅÒÄÉÔØ"
+
+#: Mailman/Cgi/confirm.py:210
+msgid "Confirm subscription request"
+msgstr "ðÏÄÔ×ÅÒÄÉÔØ ÚÁÐÒÏÓ ÎÁ ÐÏÄÐÉÓËÕ"
+
+#: Mailman/Cgi/confirm.py:227
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" subscription request to the mailing list <em>%(listname)s</em>. Your\n"
+" subscription settings are shown below; make any necessary changes and "
+"hit\n"
+" <em>Subscribe</em> to complete the confirmation process. Once you've\n"
+" confirmed your subscription request, you will be shown your account\n"
+" options page which you can use to further customize your membership\n"
+" options.\n"
+"\n"
+" <p>Note: your password will be emailed to you once your subscription is\n"
+" confirmed. You can change it by visiting your personal options page.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this subscription\n"
+" request."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:242
+msgid ""
+"Your confirmation is required in order to continue with\n"
+" the subscription request to the mailing list <em>%(listname)s</em>.\n"
+" Your subscription settings are shown below; make any necessary "
+"changes\n"
+" and hit <em>Subscribe to list ...</em> to complete the confirmation\n"
+" process. Once you've confirmed your subscription request, the\n"
+" moderator must approve or reject your membership request. You will\n"
+" receive notice of their decision.\n"
+"\n"
+" <p>Note: your password will be emailed to you once your "
+"subscription\n"
+" is confirmed. You can change it by visiting your personal options\n"
+" page.\n"
+"\n"
+" <p>Or, if you've changed your mind and do not want to subscribe to\n"
+" this mailing list, you can hit <em>Cancel my subscription\n"
+" request</em>."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:260
+msgid "Your email address:"
+msgstr "÷ÁÛ ÐÏÞÔÏ×ÙÊ ÁÄÒÅÓ:"
+
+#: Mailman/Cgi/confirm.py:261
+msgid "Your real name:"
+msgstr "÷ÁÛÅ ÉÍÑ:"
+
+#: Mailman/Cgi/confirm.py:270
+msgid "Receive digests?"
+msgstr "ðÏÌÕÞÁÔØ ÄÁÊÄÖÅÓÔÙ?"
+
+#: Mailman/Cgi/confirm.py:279
+msgid "Preferred language:"
+msgstr "ðÒÅÄÐÏÞÉÔÁÅÍÙÊ ÑÚÙË:"
+
+#: Mailman/Cgi/confirm.py:284
+msgid "Cancel my subscription request"
+msgstr "ïÔÏÚ×ÁÔØ ÍÏÊ ÚÁÐÒÏÓ ÎÁ ÐÏÄÐÉÓËÕ"
+
+#: Mailman/Cgi/confirm.py:285
+msgid "Subscribe to list %(listname)s"
+msgstr "ðÏÄÐÉÓÁÔØÓÑ ÎÁ %(listname)s"
+
+#: Mailman/Cgi/confirm.py:295
+msgid "You have canceled your subscription request."
+msgstr "÷Ù ÏÔËÁÚÁÌÉÓØ ÏÔ ÐÏÄÐÉÓËÉ."
+
+#: Mailman/Cgi/confirm.py:329
+msgid "Awaiting moderator approval"
+msgstr "ïÖÉÄÁÀÔ ÒÅÛÅÎÉÅ ÍÏÄÅÒÁÔÏÒÁ"
+
+#: Mailman/Cgi/confirm.py:332
+msgid ""
+" You have successfully confirmed your subscription request to "
+"the\n"
+" mailing list %(listname)s, however final approval is required "
+"from\n"
+" the list moderator before you will be subscribed. Your request\n"
+" has been forwarded to the list moderator, and you will be "
+"notified\n"
+" of the moderator's decision."
+msgstr ""
+" ÷ÁÛÁ ÐÏÄÐÉÓËÁ ÎÁ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ %(listname)s ÂÙÌÁ ÕÓÐÅÛÎÏ\n"
+" ÐÏÄÔ×ÅÒÖÄÅÎÁ, ÏÄÎÁËÏ ÐÅÒÅÄ ÔÅÍ, ÄÌÑ ÚÁ×ÅÒÛÅÎÉÑ ÐÏÄÐÉÓËÉ "
+"ÔÒÅÂÕÅÔÓÑ\n"
+" ÒÁÚÒÅÛÅÎÉÅ ÍÏÄÅÒÁÔÏÒÁ. ÷ÁÛ ÚÁÐÒÏÓ ÂÙÌ ÐÅÒÅÐÒÁ×ÌÅÎ ÍÏÄÅÒÁÔÏÒÕ\n"
+" ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ. ÷Ù ÂÕÄÅÔÅ ÉÚ×ÅÝÅÎÙ Ï ÐÒÉÎÑÔÏÍ ÒÅÛÅÎÉÉ "
+"ÏÔÄÅÌØÎÙÍ\n"
+" ÐÉÓØÍÏÍ."
+
+#: Mailman/Cgi/confirm.py:339 Mailman/Cgi/confirm.py:394
+#: Mailman/Cgi/confirm.py:482 Mailman/Cgi/confirm.py:705
+msgid ""
+"Invalid confirmation string. It is\n"
+" possible that you are attempting to confirm a request for an\n"
+" address that has already been unsubscribed."
+msgstr ""
+"îÅÉÚ×ÅÓÔÎÙÊ ËÏÄ ÐÏÄÔ×ÅÒÖÄÅÎÉÑ.\n"
+" ÷ÏÚÍÏÖÎÏ, ÞÔÏ ×Ù ÐÙÔÁÅÔÅÓØ ÐÏÄÔ×ÅÒÄÉÔØ ÐÏÄÐÉÓËÕ ÎÁ ÁÄÒÅÓ,\n"
+" ÐÏÄÐÉÓËÁ ÎÁ ËÏÔÏÒÙÊ ÕÖÅ ÕÄÁÌÅÎÁ."
+
+#: Mailman/Cgi/confirm.py:343
+msgid "You are already a member of this mailing list!"
+msgstr "÷Ù ÕÖÅ Ñ×ÌÑÅÔÅÓØ ÐÏÄÐÉÓÞÉËÏÍ ÜÔÏÇÏ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ!"
+
+#: Mailman/Cgi/confirm.py:350
+msgid "Subscription request confirmed"
+msgstr "úÁÐÒÏÓ ÎÁ ÐÏÄÐÉÓËÕ ÐÏÄÔ×ÅÒÖÄÅÎ"
+
+#: Mailman/Cgi/confirm.py:354
+msgid ""
+" You have successfully confirmed your subscription request for\n"
+" \"%(addr)s\" to the %(listname)s mailing list. A separate\n"
+" confirmation message will be sent to your email address, along\n"
+" with your password, and other useful information and links.\n"
+"\n"
+" <p>You can now\n"
+" <a href=\"%(optionsurl)s\">proceed to your membership login\n"
+" page</a>."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:372
+msgid "You have canceled your unsubscription request."
+msgstr "÷Ù ÏÔÏÚ×ÁÌÉ Ó×ÏÊ ÚÁÐÒÏÓ ÎÁ ÕÄÁÌÅÎÉÅ ÐÏÄÐÉÓËÉ."
+
+#: Mailman/Cgi/confirm.py:400
+msgid "Unsubscription request confirmed"
+msgstr "úÁÐÒÏÓ ÎÁ ÕÄÁÌÅÎÉÅ ÐÏÄÐÉÓËÉ ÐÏÄÔ×ÅÒÖÄÅÎ"
+
+#: Mailman/Cgi/confirm.py:404
+msgid ""
+" You have successfully unsubscribed from the %(listname)s "
+"mailing\n"
+" list. You can now <a href=\"%(listinfourl)s\">visit the list's "
+"main\n"
+" information page</a>."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:415
+msgid "Confirm unsubscription request"
+msgstr "ðÏÄÔ×ÅÒÄÉÔÅ ÚÁÐÒÏÓ ÎÁ ÕÄÁÌÅÎÉÅ ÐÏÄÐÉÓËÉ"
+
+#: Mailman/Cgi/confirm.py:430 Mailman/Cgi/confirm.py:519
+msgid "<em>Not available</em>"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:433
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" unsubscription request from the mailing list <em>%(listname)s</em>. "
+"You\n"
+" are currently subscribed with\n"
+"\n"
+" <ul><li><b>Real name:</b> %(fullname)s\n"
+" <li><b>Email address:</b> %(addr)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Unsubscribe</em> button below to complete the confirmation\n"
+" process.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this unsubscription\n"
+" request."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:449 Mailman/Cgi/options.py:660
+#: Mailman/Cgi/options.py:801 Mailman/Cgi/options.py:811
+msgid "Unsubscribe"
+msgstr "õÄÁÌÉÔØ ÐÏÄÐÉÓËÕ"
+
+#: Mailman/Cgi/confirm.py:450 Mailman/Cgi/confirm.py:548
+msgid "Cancel and discard"
+msgstr "ïÔËÁÚÁÔØÓÑ É ÕÄÁÌÉÔØ ÚÁÐÒÏÓ"
+
+#: Mailman/Cgi/confirm.py:460
+msgid "You have canceled your change of address request."
+msgstr "÷Ù ÏÔËÁÚÁÌÉÓØ ÏÔ ÚÁÐÒÏÓÁ ÎÁ ÉÚÍÅÎÅÎÉÅ ÁÄÒÅÓÁ."
+
+#: Mailman/Cgi/confirm.py:488
+msgid "Change of address request confirmed"
+msgstr "úÁÐÒÏÓ ÎÁ ÉÚÍÅÎÅÎÉÅ ÁÄÒÅÓÁ ÐÏÄÐÉÓËÉ ÐÏÄÔ×ÅÒÖÄÅÎ"
+
+#: Mailman/Cgi/confirm.py:492
+msgid ""
+" You have successfully changed your address on the %(listname)s\n"
+" mailing list from <b>%(oldaddr)s</b> to <b>%(newaddr)s</b>. "
+"You\n"
+" can now <a href=\"%(optionsurl)s\">proceed to your membership\n"
+" login page</a>."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:504
+msgid "Confirm change of address request"
+msgstr "ðÏÄÔ×ÅÒÄÉÔÅ ÚÁÐÒÏÓ ÎÁ ÉÚÍÅÎÅÎÉÅ ÁÄÒÅÓÁ ÐÏÄÐÉÓËÉ"
+
+# dig: ×ÅÚÄÅ/ÐÏ×ÓÀÄÕ
+# MSS: ÅÝÅ ×ÁÒÉÁÎÔÙ?
+#: Mailman/Cgi/confirm.py:523
+msgid "globally"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:526
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" change of address request for the mailing list <em>%(listname)s</em>. "
+"You\n"
+" are currently subscribed with\n"
+"\n"
+" <ul><li><b>Real name:</b> %(fullname)s\n"
+" <li><b>Old email address:</b> %(oldaddr)s\n"
+" </ul>\n"
+"\n"
+" and you have requested to %(globallys)s change your email address to\n"
+"\n"
+" <ul><li><b>New email address:</b> %(newaddr)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Change address</em> button below to complete the "
+"confirmation\n"
+" process.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this change of address\n"
+" request."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:547
+msgid "Change address"
+msgstr "éÚÍÅÎÉÔØ ÁÄÒÅÓ"
+
+#: Mailman/Cgi/confirm.py:557 Mailman/Cgi/confirm.py:670
+msgid "Continue awaiting approval"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:564
+msgid ""
+"Okay, the list moderator will still have the\n"
+" opportunity to approve or reject this message."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:590
+msgid "Sender discarded message via web."
+msgstr "ïÔÐÒÁ×ÉÔÅÌØ ÕÄÁÌÉÌ ÓÏÏÂÝÅÎÉÅ ÞÅÒÅÚ ×ÅÂ-ÉÎÔÅÒÆÅÊÓ."
+
+#: Mailman/Cgi/confirm.py:592
+msgid ""
+"The held message with the Subject:\n"
+" header <em>%(subject)s</em> could not be found. The most "
+"likely\n"
+" reason for this is that the list moderator has already approved "
+"or\n"
+" rejected the message. You were not able to cancel it in\n"
+" time."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:600
+msgid "Posted message canceled"
+msgstr "óÏÏÂÝÅÎÉÅ ÏÔÏÚ×ÁÎÏ"
+
+#: Mailman/Cgi/confirm.py:603
+msgid ""
+" You have successfully canceled the posting of your message with\n"
+" the Subject: header <em>%(subject)s</em> to the mailing list\n"
+" %(listname)s."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:614
+msgid "Cancel held message posting"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:639
+msgid ""
+"The held message you were referred to has\n"
+" already been handled by the list administrator."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:653
+msgid ""
+"Your confirmation is required in order to cancel the\n"
+" posting of your message to the mailing list <em>%(listname)s</em>:\n"
+"\n"
+" <ul><li><b>Sender:</b> %(sender)s\n"
+" <li><b>Subject:</b> %(subject)s\n"
+" <li><b>Reason:</b> %(reason)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Cancel posting</em> button to discard the posting.\n"
+"\n"
+" <p>Or hit the <em>Continue awaiting approval</em> button to continue to\n"
+" allow the list moderator to approve or reject the message."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:669
+msgid "Cancel posting"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:681
+msgid ""
+"You have canceled the re-enabling of your membership. If\n"
+" we continue to receive bounces from your address, it could be deleted "
+"from\n"
+" this mailing list."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:711
+msgid "Membership re-enabled."
+msgstr "ðÏÄÐÉÓËÁ ×ÏÚÏÂÎÏ×ÌÅÎÁ."
+
+#: Mailman/Cgi/confirm.py:715
+msgid ""
+" You have successfully re-enabled your membership in the\n"
+" %(listname)s mailing list. You can now <a\n"
+" href=\"%(optionsurl)s\">visit your member options page</a>.\n"
+" "
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:727
+msgid "Re-enable mailing list membership"
+msgstr "÷ÏÚÏÂÎÏ×ÉÔØ ÐÏÄÐÉÓËÕ ÎÁ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ"
+
+#: Mailman/Cgi/confirm.py:744
+msgid ""
+"We're sorry, but you have already been unsubscribed\n"
+" from this mailing list. To re-subscribe, please visit the\n"
+" <a href=\"%(listinfourl)s\">list information page</a>."
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:758
+msgid "<em>not available</em>"
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:762
+msgid ""
+"Your membership in the %(realname)s mailing list is\n"
+" currently disabled due to excessive bounces. Your confirmation is\n"
+" required in order to re-enable delivery to your address. We have the\n"
+" following information on file:\n"
+"\n"
+" <ul><li><b>Member address:</b> %(member)s\n"
+" <li><b>Member name:</b> %(username)s\n"
+" <li><b>Last bounce received on:</b> %(date)s\n"
+" <li><b>Approximate number of days before you are permanently "
+"removed\n"
+" from this list:</b> %(daysleft)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Re-enable membership</em> button to resume receiving "
+"postings\n"
+" from the mailing list. Or hit the <em>Cancel</em> button to defer\n"
+" re-enabling your membership.\n"
+" "
+msgstr ""
+
+#: Mailman/Cgi/confirm.py:782
+msgid "Re-enable membership"
+msgstr "÷ÏÚÏÂÎÏ×ÉÔØ ÐÏÄÐÉÓËÕ"
+
+#: Mailman/Cgi/confirm.py:783
+msgid "Cancel"
+msgstr ""
+
+#: Mailman/Cgi/create.py:48 Mailman/Cgi/rmlist.py:48
+msgid "Bad URL specification"
+msgstr ""
+
+#: Mailman/Cgi/create.py:63 Mailman/Cgi/rmlist.py:176
+msgid "Return to the "
+msgstr ""
+
+#: Mailman/Cgi/create.py:65 Mailman/Cgi/rmlist.py:178
+msgid "general list overview"
+msgstr ""
+
+#: Mailman/Cgi/create.py:66 Mailman/Cgi/rmlist.py:179
+msgid "<br>Return to the "
+msgstr ""
+
+#: Mailman/Cgi/create.py:68 Mailman/Cgi/rmlist.py:181
+msgid "administrative list overview"
+msgstr ""
+
+#: Mailman/Cgi/create.py:101
+msgid "List name must not include \"@\": %(listname)s"
+msgstr ""
+"îÁÚ×ÁÎÉÅ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ ÎÅ ÄÏÌÖÎÏ ÓÏÄÅÒÖÁÔØ ÓÉÍ×ÏÌ \"@\": %(listname)s"
+
+#: Mailman/Cgi/create.py:107 Mailman/Cgi/create.py:185 bin/newlist:134
+#: bin/newlist:168
+msgid "List already exists: %(listname)s"
+msgstr "óÐÉÓÏË ÕÖÅ ÓÕÝÅÓÔ×ÕÅÔ: %(listname)s"
+
+#: Mailman/Cgi/create.py:111
+msgid "You forgot to enter the list name"
+msgstr "÷Ù ÎÅ ÕËÁÚÁÌÉ ÉÍÑ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ"
+
+#: Mailman/Cgi/create.py:115
+msgid "You forgot to specify the list owner"
+msgstr "÷Ù ÎÅ ÕËÁÚÁÌÉ ÁÄÒÅÓ ×ÌÁÄÅÌØÃÁ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ"
+
+#: Mailman/Cgi/create.py:122
+msgid ""
+"Leave the initial password (and confirmation) fields\n"
+" blank if you want Mailman to autogenerate the list\n"
+" passwords."
+msgstr ""
+
+#: Mailman/Cgi/create.py:130
+msgid "Initial list passwords do not match"
+msgstr "ïÛÉÂËÁ ÐÒÉ ÐÏÄÔ×ÅÒÖÄÅÎÉÉ ÐÁÒÏÌÑ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ"
+
+#: Mailman/Cgi/create.py:139
+msgid "The list password cannot be empty<!-- ignore -->"
+msgstr ""
+
+#: Mailman/Cgi/create.py:151
+msgid "You are not authorized to create new mailing lists"
+msgstr "÷Ù ÎÅ ÉÍÅÅÔÅ ÐÒÁ×Ï ÓÏÚÄÁ×ÁÔØ ÓÐÉÓËÉ ÒÁÓÓÙÌËÉ ÎÁ ÜÔÏÍ ÓÅÒ×ÅÒÅ"
+
+#: Mailman/Cgi/create.py:181 bin/newlist:166
+msgid "Bad owner email address: %(s)s"
+msgstr ""
+
+#: Mailman/Cgi/create.py:189 bin/newlist:164
+msgid "Illegal list name: %(s)s"
+msgstr "îÅÄÏÐÕÓÔÉÍÏÅ ÉÍÑ ÄÌÑ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ: %(s)s"
+
+#: Mailman/Cgi/create.py:194
+msgid ""
+"Some unknown error occurred while creating the list.\n"
+" Please contact the site administrator for assistance."
+msgstr ""
+
+#: Mailman/Cgi/create.py:233 bin/newlist:210
+msgid "Your new mailing list: %(listname)s"
+msgstr ""
+
+#: Mailman/Cgi/create.py:242
+msgid "Mailing list creation results"
+msgstr ""
+
+#: Mailman/Cgi/create.py:248
+msgid ""
+"You have successfully created the mailing list\n"
+" <b>%(listname)s</b> and notification has been sent to the list owner\n"
+" <b>%(owner)s</b>. You can now:"
+msgstr ""
+
+#: Mailman/Cgi/create.py:252
+msgid "Visit the list's info page"
+msgstr "ðÅÒÅÊÔÉ Ë ÓÔÒÁÎÉÃÅ Ó ÏÂÝÅÊ ÉÎÆÏÒÍÁÃÉÅÊ Ï ÓÐÉÓËÅ ÒÁÓÓÙÌËÉ"
+
+#: Mailman/Cgi/create.py:253
+msgid "Visit the list's admin page"
+msgstr "ðÅÒÅÊÔÉ Ë ÁÄÍÉÎÉÓÔÒÁÔÉ×ÎÏÊ ÓÔÒÁÎÉÃÅ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ"
+
+#: Mailman/Cgi/create.py:254
+msgid "Create another list"
+msgstr "óÏÚÄÁÔØ ÅÝÅ ÏÄÉÎ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ"
+
+#: Mailman/Cgi/create.py:272
+msgid "Create a %(hostname)s Mailing List"
+msgstr ""
+
+#: Mailman/Cgi/create.py:281 Mailman/Cgi/rmlist.py:199
+#: Mailman/Gui/Bounce.py:175 Mailman/htmlformat.py:339
+msgid "Error: "
+msgstr "ïÛÉÂËÁ: "
+
+#: Mailman/Cgi/create.py:283
+msgid ""
+"You can create a new mailing list by entering the\n"
+" relevant information into the form below. The name of the mailing list\n"
+" will be used as the primary address for posting messages to the list, "
+"so\n"
+" it should be lowercased. You will not be able to change this once the\n"
+" list is created.\n"
+"\n"
+" <p>You also need to enter the email address of the initial list owner.\n"
+" Once the list is created, the list owner will be given notification, "
+"along\n"
+" with the initial list password. The list owner will then be able to\n"
+" modify the password and add or remove additional list owners.\n"
+"\n"
+" <p>If you want Mailman to automatically generate the initial list admin\n"
+" password, click on `Yes' in the autogenerate field below, and leave the\n"
+" initial list password fields empty.\n"
+"\n"
+" <p>You must have the proper authorization to create new mailing lists.\n"
+" Each site should have a <em>list creator's</em> password, which you can\n"
+" enter in the field at the bottom. Note that the site administrator's\n"
+" password can also be used for authentication.\n"
+" "
+msgstr ""
+
+#: Mailman/Cgi/create.py:309
+msgid "List Identity"
+msgstr ""
+
+#: Mailman/Cgi/create.py:312
+msgid "Name of list:"
+msgstr "îÁÚ×ÁÎÉÅ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ:"
+
+#: Mailman/Cgi/create.py:317
+msgid "Initial list owner address:"
+msgstr "áÄÒÅÓ ×ÌÁÄÅÌØÃÁ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ:"
+
+#: Mailman/Cgi/create.py:326
+msgid "Auto-generate initial list password?"
+msgstr "óÏÚÄÁÔØ ÎÁÞÁÌØÎÙÊ ÐÁÒÏÌØ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ?"
+
+#: Mailman/Cgi/create.py:333
+msgid "Initial list password:"
+msgstr "ðÁÒÏÌØ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ:"
+
+#: Mailman/Cgi/create.py:338
+msgid "Confirm initial password:"
+msgstr "ðÏÄÔ×ÅÒÄÉÔÅ ÐÁÒÏÌØ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ:"
+
+#: Mailman/Cgi/create.py:348
+msgid "List Characteristics"
+msgstr ""
+
+#: Mailman/Cgi/create.py:352
+msgid ""
+"Should new members be quarantined before they\n"
+" are allowed to post unmoderated to this list? Answer <em>Yes</em> to "
+"hold\n"
+" new member postings for moderator approval by default."
+msgstr ""
+
+#: Mailman/Cgi/create.py:383
+msgid ""
+"Initial list of supported languages. <p>Note that if you do not\n"
+" select at least one initial language, the list will use the server\n"
+" default language of %(deflang)s"
+msgstr ""
+
+#: Mailman/Cgi/create.py:394
+msgid "Send \"list created\" email to list owner?"
+msgstr ""
+
+#: Mailman/Cgi/create.py:403
+msgid "List creator's (authentication) password:"
+msgstr ""
+
+#: Mailman/Cgi/create.py:408
+msgid "Create List"
+msgstr "óÏÚÄÁÔØ ÓÐÉÓÏË"
+
+#: Mailman/Cgi/create.py:409
+msgid "Clear Form"
+msgstr ""
+
+#: Mailman/Cgi/edithtml.py:43
+msgid "General list information page"
+msgstr "ïÂÝÁÑ ÉÎÆÏÒÍÁÃÉÑ Ï ÓÐÉÓËÅ ÒÁÓÓÙÌËÉ"
+
+#: Mailman/Cgi/edithtml.py:44
+msgid "Subscribe results page"
+msgstr ""
+
+#: Mailman/Cgi/edithtml.py:45
+msgid "User specific options page"
+msgstr ""
+
+#: Mailman/Cgi/edithtml.py:57
+msgid "List name is required."
+msgstr "éÍÑ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ Ñ×ÌÑÅÔÓÑ ÏÂÑÚÁÔÅÌØÎÙÍ."
+
+#: Mailman/Cgi/edithtml.py:97
+msgid "%(realname)s -- Edit html for %(template_info)s"
+msgstr ""
+
+#: Mailman/Cgi/edithtml.py:103
+msgid "Edit HTML : Error"
+msgstr ""
+
+#: Mailman/Cgi/edithtml.py:104
+msgid "%(safetemplatename)s: Invalid template"
+msgstr ""
+
+#: Mailman/Cgi/edithtml.py:109 Mailman/Cgi/edithtml.py:110
+msgid "%(realname)s -- HTML Page Editing"
+msgstr ""
+
+#: Mailman/Cgi/edithtml.py:111
+msgid "Select page to edit:"
+msgstr ""
+
+#: Mailman/Cgi/edithtml.py:137
+msgid "View or edit the list configuration information."
+msgstr ""
+
+#: Mailman/Cgi/edithtml.py:145
+msgid "When you are done making changes..."
+msgstr ""
+
+#: Mailman/Cgi/edithtml.py:146
+msgid "Submit Changes"
+msgstr "÷ÎÅÓÔÉ ÉÚÍÅÎÅÎÉÑ"
+
+#: Mailman/Cgi/edithtml.py:153
+msgid "Can't have empty html page."
+msgstr ""
+
+#: Mailman/Cgi/edithtml.py:154
+msgid "HTML Unchanged."
+msgstr ""
+
+#: Mailman/Cgi/edithtml.py:169
+msgid "HTML successfully updated."
+msgstr ""
+
+#: Mailman/Cgi/listinfo.py:71
+msgid "%(hostname)s Mailing Lists"
+msgstr ""
+
+#: Mailman/Cgi/listinfo.py:103
+msgid ""
+"<p>There currently are no publicly-advertised\n"
+" %(mailmanlink)s mailing lists on %(hostname)s."
+msgstr ""
+
+#: Mailman/Cgi/listinfo.py:107
+msgid ""
+"<p>Below is a listing of all the public mailing lists on\n"
+" %(hostname)s. Click on a list name to get more information "
+"about\n"
+" the list, or to subscribe, unsubscribe, and change the "
+"preferences\n"
+" on your subscription."
+msgstr ""
+
+#: Mailman/Cgi/listinfo.py:113
+msgid "right"
+msgstr "ÓÕÝÅÓÔ×ÕÀÝÅÇÏ"
+
+#: Mailman/Cgi/listinfo.py:116
+msgid ""
+" To visit the general information page for an unadvertised list,\n"
+" open a URL similar to this one, but with a '/' and the %(adj)s\n"
+" list name appended.\n"
+" <p>List administrators, you can visit "
+msgstr ""
+"äÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÐÏÓÅÔÉÔØ ÓÔÒÁÎÉÃÕ ÎÁÓÔÒÏÊËÉ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ, ÎÅ ÕËÁÚÁÎÎÏÇÏ\n"
+" ÚÄÅÓØ, ÄÏÂÁרÔÅ Ë ÁÄÒÅÓÕ ÜÔÏÊ ÓÔÒÁÎÉÃÙ ÓÉÍ×ÏÌ '/', ÚÁ ËÏÔÏÒÙÍ\n"
+" ×Ù ÄÏÌÖÎÙ ÕËÁÚÁÔØ ÉÍÑ %(adj)s ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ.\n"
+" <p>áÄÍÉÎÉÓÔÒÁÔÏÒÙ ÍÏÇÕÔ ×ÏÓÐÏÌØÚÏ×ÁÔØÓÑ "
+
+#: Mailman/Cgi/listinfo.py:121
+msgid "the list admin overview page"
+msgstr ""
+
+#: Mailman/Cgi/listinfo.py:122
+msgid ""
+" to find the management interface for your list.\n"
+" <p>Send questions or comments to "
+msgstr ""
+", ÇÄÅ ×Ù ÎÁÊÄÅÔÅ ÓÓÙÌËÉ ÎÁ ÁÄÍÉÎÉÓÔÒÁÔÉ×ÎÙÊ ÉÎÔÅÒÆÅÊÓ ×ÁÛÅÇÏ ÓÐÉÓËÁ "
+"ÒÁÓÓÙÌËÉ.\n"
+" <p>åÓÌÉ Õ ×ÁÓ ×ÏÚÎÉËÌÉ ×ÏÐÒÏÓÙ, ×Ù ÉÈ ÍÏÖÅÔÅ ÚÁÄÁÔØ "
+
+#: Mailman/Cgi/listinfo.py:187
+msgid "Edit Options"
+msgstr "éÚÍÅÎÉÔØ ÐÁÒÁÍÅÔÒÙ ÐÏÄÐÉÓËÉ"
+
+# MSS: ×ÁÖÎÙÍ Ñ×ÌÑÅÔÓÑ ÏÓÔÁ×ÉÔØ ÁÎÇÌÉÊÓËÉÊ ÔÅËÓÔ ÄÌÑ ÔÅÈ ÐÏÌØÚÏ×ÁÔÅÌÅÊ, ËÏÔÏÒÙÅ ÎÅ ÐÏÎÉÍÁÀÔ
+# ÐÏ-ÒÕÓÓËÉ
+#: Mailman/Cgi/listinfo.py:194 Mailman/Cgi/options.py:767
+#: Mailman/Cgi/roster.py:111
+msgid "View this page in"
+msgstr "ñÚÙË ÓÔÒÁÎÉÃÙ (view this page in):"
+
+#: Mailman/Cgi/options.py:51 Mailman/Cgi/options.py:68
+msgid "CGI script error"
+msgstr "ïÛÉÂËÁ CGI-ÓÃÅÎÁÒÉÑ"
+
+#: Mailman/Cgi/options.py:54
+msgid "Invalid options to CGI script."
+msgstr "õËÁÚÁÎÙ ÎÅÄÏÐÕÓÔÉÍÙÅ ÐÁÒÁÍÅÔÒÙ ÄÌÑ cgi-ÓÃÅÎÁÒÉÑ."
+
+#: Mailman/Cgi/options.py:96
+msgid "No address given"
+msgstr "áÄÒÅÓ ÕËÁÚÁÎ"
+
+#: Mailman/Cgi/options.py:108 Mailman/Cgi/options.py:155
+#: Mailman/Cgi/options.py:177
+msgid "No such member: %(safeuser)s."
+msgstr ""
+
+#: Mailman/Cgi/options.py:150 Mailman/Cgi/options.py:160
+msgid "The confirmation email has been sent."
+msgstr ""
+
+#: Mailman/Cgi/options.py:171 Mailman/Cgi/options.py:183
+#: Mailman/Cgi/options.py:226
+msgid "A reminder of your password has been emailed to you."
+msgstr ""
+
+#: Mailman/Cgi/options.py:200
+msgid "Authentication failed."
+msgstr "ïÛÉÂËÁ ÁÕÔÅÎÔÉÆÉËÁÃÉÉ."
+
+#: Mailman/Cgi/options.py:232
+msgid "List subscriptions for %(user)s on %(hostname)s"
+msgstr "ðÏÄÐÉÓËÉ ÐÏÌØÚÏ×ÁÔÅÌÑ %(user)s ÎÁ %(hostname)s"
+
+#: Mailman/Cgi/options.py:235
+msgid ""
+"Click on a link to visit your options page for the\n"
+" requested mailing list."
+msgstr ""
+"ýÅÌËÎÉÔÅ ÎÁ ÓÓÙÌËÅ ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÐÅÒÅÊÔÉ Ë ÐÁÒÁÍÅÔÒÁÍ Ó×ÏÅÊ ÐÏÄÐÉÓËÉ ÎÁ "
+"ÕËÁÚÁÎÎÙÊ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ."
+
+#: Mailman/Cgi/options.py:284
+msgid "Addresses did not match!"
+msgstr "õËÁÚÁÎÎÙÅ ÁÄÒÅÓÁ ÎÅ ÓÏ×ÐÁÄÁÀÔ!"
+
+#: Mailman/Cgi/options.py:289
+msgid "You are already using that email address"
+msgstr ""
+
+#: Mailman/Cgi/options.py:301
+msgid ""
+"The new address you requested %(newaddr)s is already a member of the\n"
+"%(listname)s mailing list, however you have also requested a global change "
+"of\n"
+"address. Upon confirmation, any other mailing list containing the address\n"
+"%(user)s will be changed. "
+msgstr ""
+
+#: Mailman/Cgi/options.py:310
+msgid "The new address is already a member: %(newaddr)s"
+msgstr ""
+
+#: Mailman/Cgi/options.py:316
+msgid "Addresses may not be blank"
+msgstr ""
+
+#: Mailman/Cgi/options.py:328
+msgid "A confirmation message has been sent to %(newaddr)s. "
+msgstr ""
+
+#: Mailman/Cgi/options.py:337
+msgid "Bad email address provided"
+msgstr ""
+
+#: Mailman/Cgi/options.py:339
+msgid "Illegal email address provided"
+msgstr ""
+
+#: Mailman/Cgi/options.py:341
+msgid "%(newaddr)s is already a member of the list."
+msgstr ""
+
+#: Mailman/Cgi/options.py:350
+msgid "Member name successfully changed. "
+msgstr "éÍÑ ÐÏÄÐÉÓÞÉËÁ ÉÚÍÅÎÅÎÏ. "
+
+#: Mailman/Cgi/options.py:361
+msgid "Passwords may not be blank"
+msgstr "ðÁÒÏÌØ ÎÅ ÍÏÖÅÔ ÂÙÔØ ÐÕÓÔÙÍ"
+
+#: Mailman/Cgi/options.py:366
+msgid "Passwords did not match!"
+msgstr ""
+
+#: Mailman/Cgi/options.py:381 Mailman/Commands/cmd_password.py:79
+#: Mailman/Commands/cmd_password.py:105
+msgid "Password successfully changed."
+msgstr "ðÁÒÏÌØ ÂÙÌ ÉÚÍÅÎÅÎ."
+
+#: Mailman/Cgi/options.py:390
+msgid ""
+"You must confirm your unsubscription request by turning\n"
+" on the checkbox below the <em>Unsubscribe</em> button. You\n"
+" have not been unsubscribed!"
+msgstr ""
+
+#: Mailman/Cgi/options.py:422
+msgid "Unsubscription results"
+msgstr ""
+
+#: Mailman/Cgi/options.py:426
+msgid ""
+"Your unsubscription request has been received and\n"
+" forwarded on to the list moderators for approval. You will\n"
+" receive notification once the list moderators have made their\n"
+" decision."
+msgstr ""
+
+#: Mailman/Cgi/options.py:431
+msgid ""
+"You have been successfully unsubscribed from the\n"
+" mailing list %(fqdn_listname)s. If you were receiving digest\n"
+" deliveries you may get one more digest. If you have any "
+"questions\n"
+" about your unsubscription, please contact the list owners at\n"
+" %(owneraddr)s."
+msgstr ""
+
+#: Mailman/Cgi/options.py:582
+msgid ""
+"The list administrator has disabled digest delivery for\n"
+" this list, so your delivery option has not been set. However "
+"your\n"
+" other options have been set successfully."
+msgstr ""
+
+#: Mailman/Cgi/options.py:586
+msgid ""
+"The list administrator has disabled non-digest delivery\n"
+" for this list, so your delivery option has not been set. "
+"However\n"
+" your other options have been set successfully."
+msgstr ""
+
+#: Mailman/Cgi/options.py:590
+msgid "You have successfully set your options."
+msgstr "ðÁÒÁÍÅÔÒÙ ÂÙÌÉ ÉÚÍÅÎÅÎÙ."
+
+#: Mailman/Cgi/options.py:593
+msgid "You may get one last digest."
+msgstr ""
+
+#: Mailman/Cgi/options.py:662
+msgid "<em>Yes, I really want to unsubscribe</em>"
+msgstr "<em>äÁ, Ñ ÄÅÊÓÔ×ÉÔÅÌØÎÏ ÈÏÞÕ ÕÄÁÌÉÔØ ÐÏÄÐÉÓËÕ</em>"
+
+#: Mailman/Cgi/options.py:666
+msgid "Change My Password"
+msgstr "éÚÍÅÎÉÔØ ÐÁÒÏÌØ"
+
+#: Mailman/Cgi/options.py:669
+msgid "List my other subscriptions"
+msgstr ""
+
+#: Mailman/Cgi/options.py:675
+msgid "Email My Password To Me"
+msgstr "ðÒÉÛÌÉÔÅ ÍÎÅ ÍÏÊ ÐÁÒÏÌØ"
+
+#: Mailman/Cgi/options.py:677
+msgid "password"
+msgstr ""
+
+#: Mailman/Cgi/options.py:679
+msgid "Log out"
+msgstr ""
+
+#: Mailman/Cgi/options.py:681
+msgid "Submit My Changes"
+msgstr "÷ÎÅÓÔÉ ÉÚÍÅÎÅÎÉÑ"
+
+#: Mailman/Cgi/options.py:693
+msgid "days"
+msgstr ""
+
+#: Mailman/Cgi/options.py:695
+msgid "day"
+msgstr ""
+
+#: Mailman/Cgi/options.py:696
+msgid "%(days)d %(units)s"
+msgstr ""
+
+#: Mailman/Cgi/options.py:702
+msgid "Change My Address and Name"
+msgstr ""
+
+#: Mailman/Cgi/options.py:726
+msgid "<em>No topics defined</em>"
+msgstr ""
+
+#: Mailman/Cgi/options.py:734
+msgid ""
+"\n"
+"You are subscribed to this list with the case-preserved address\n"
+"<em>%(cpuser)s</em>."
+msgstr ""
+
+#: Mailman/Cgi/options.py:748
+msgid "%(realname)s list: member options login page"
+msgstr ""
+
+#: Mailman/Cgi/options.py:749
+msgid "email address and "
+msgstr ""
+
+#: Mailman/Cgi/options.py:751
+msgid "%(realname)s list: member options for user %(user)s"
+msgstr ""
+
+#: Mailman/Cgi/options.py:777
+msgid ""
+"In order to change your membership option, you must\n"
+" first log in by giving your %(extra)smembership password in the section\n"
+" below. If you don't remember your membership password, you can have it\n"
+" emailed to you by clicking on the button below. If you just want to\n"
+" unsubscribe from this list, click on the <em>Unsubscribe</em> button and "
+"a\n"
+" confirmation message will be sent to you.\n"
+"\n"
+" <p><strong><em>Important:</em></strong> From this point on, you must "
+"have\n"
+" cookies enabled in your browser, otherwise none of your changes will "
+"take\n"
+" effect.\n"
+" "
+msgstr ""
+
+#: Mailman/Cgi/options.py:791
+msgid "Email address:"
+msgstr ""
+
+#: Mailman/Cgi/options.py:795
+msgid "Password:"
+msgstr "ðÁÒÏÌØ:"
+
+#: Mailman/Cgi/options.py:797
+msgid "Log in"
+msgstr ""
+
+#: Mailman/Cgi/options.py:805
+msgid ""
+"By clicking on the <em>Unsubscribe</em> button, a\n"
+" confirmation message will be emailed to you. This message will have a\n"
+" link that you should click on to complete the removal process (you can\n"
+" also confirm by email; see the instructions in the confirmation\n"
+" message)."
+msgstr ""
+
+#: Mailman/Cgi/options.py:813
+msgid "Password reminder"
+msgstr ""
+
+#: Mailman/Cgi/options.py:817
+msgid ""
+"By clicking on the <em>Remind</em> button, your\n"
+" password will be emailed to you."
+msgstr ""
+
+#: Mailman/Cgi/options.py:820
+msgid "Remind"
+msgstr ""
+
+#: Mailman/Cgi/options.py:920
+msgid "<missing>"
+msgstr ""
+
+#: Mailman/Cgi/options.py:931
+msgid "Requested topic is not valid: %(topicname)s"
+msgstr ""
+
+#: Mailman/Cgi/options.py:936
+msgid "Topic filter details"
+msgstr ""
+
+#: Mailman/Cgi/options.py:939
+msgid "Name:"
+msgstr ""
+
+#: Mailman/Cgi/options.py:941
+msgid "Pattern (as regexp):"
+msgstr ""
+
+#: Mailman/Cgi/private.py:61
+msgid "Private Archive Error"
+msgstr ""
+
+#: Mailman/Cgi/private.py:62
+msgid "You must specify a list."
+msgstr ""
+
+#: Mailman/Cgi/private.py:99
+msgid "Private Archive Error - %(msg)s"
+msgstr ""
+
+#: Mailman/Cgi/private.py:154
+msgid "Private archive file not found"
+msgstr ""
+
+#: Mailman/Cgi/rmlist.py:81
+msgid "You're being a sneaky list owner!"
+msgstr ""
+
+#: Mailman/Cgi/rmlist.py:119
+msgid "You are not authorized to delete this mailing list"
+msgstr "õ ×ÁÓ ÎÅÔ ÐÒÁ× ÕÄÁÌÉÔØ ÜÔÏÔ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ"
+
+#: Mailman/Cgi/rmlist.py:160
+msgid "Mailing list deletion results"
+msgstr ""
+
+#: Mailman/Cgi/rmlist.py:167
+msgid ""
+"You have successfully deleted the mailing list\n"
+" <b>%(listname)s</b>."
+msgstr ""
+
+#: Mailman/Cgi/rmlist.py:171
+msgid ""
+"There were some problems deleting the mailing list\n"
+" <b>%(listname)s</b>. Contact your site administrator at %(sitelist)"
+"s\n"
+" for details."
+msgstr ""
+
+#: Mailman/Cgi/rmlist.py:188
+msgid "Permanently remove mailing list <em>%(realname)s</em>"
+msgstr ""
+
+#: Mailman/Cgi/rmlist.py:202
+msgid ""
+"This page allows you as the list owner, to permanent\n"
+" remove this mailing list from the system. <strong>This action is not\n"
+" undoable</strong> so you should undertake it only if you are absolutely\n"
+" sure this mailing list has served its purpose and is no longer "
+"necessary.\n"
+"\n"
+" <p>Note that no warning will be sent to your list members and after "
+"this\n"
+" action, any subsequent messages sent to the mailing list, or any of its\n"
+" administrative addreses will bounce.\n"
+"\n"
+" <p>You also have the option of removing the archives for this mailing "
+"list\n"
+" at this time. It is almost always recommended that you do\n"
+" <strong>not</strong> remove the archives, since they serve as the\n"
+" historical record of your mailing list.\n"
+"\n"
+" <p>For your safety, you will be asked to reconfirm the list password.\n"
+" "
+msgstr ""
+
+#: Mailman/Cgi/rmlist.py:223
+msgid "List password:"
+msgstr ""
+
+#: Mailman/Cgi/rmlist.py:227
+msgid "Also delete archives?"
+msgstr "õÄÁÌÉÔØ ÔÁËÖÅ ÁÒÈÉ×Ù ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ?"
+
+#: Mailman/Cgi/rmlist.py:235
+msgid "<b>Cancel</b> and return to list administration"
+msgstr "<b>ïÔËÁÚÁÔØÓÑ</b> É ×ÅÒÎÕÔØÓÑ Ë ÁÄÍÉÎÉÓÔÒÉÒÏ×ÁÎÉÀ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ"
+
+#: Mailman/Cgi/rmlist.py:238
+msgid "Delete this list"
+msgstr "õÄÁÌÉÔØ ÜÔÏÔ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ"
+
+#: Mailman/Cgi/roster.py:48 Mailman/Cgi/subscribe.py:50
+msgid "Invalid options to CGI script"
+msgstr ""
+
+#: Mailman/Cgi/roster.py:99
+msgid "%(realname)s roster authentication failed."
+msgstr ""
+
+#: Mailman/Cgi/roster.py:127 Mailman/Cgi/roster.py:128
+#: Mailman/Cgi/subscribe.py:49 Mailman/Cgi/subscribe.py:60
+msgid "Error"
+msgstr "ïÛÉÂËÁ"
+
+#: Mailman/Cgi/subscribe.py:109
+msgid "You must supply a valid email address."
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:122
+msgid "You may not subscribe a list to itself!"
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:131
+msgid "If you supply a password, you must confirm it."
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:133
+msgid "Your passwords did not match."
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:167
+msgid ""
+"Your subscription request has been received, and will soon be acted upon.\n"
+"Depending on the configuration of this mailing list, your subscription "
+"request\n"
+"may have to be first confirmed by you via email, or approved by the list\n"
+"moderator. If confirmation is required, you will soon get a confirmation\n"
+"email which contains further instructions."
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:181
+msgid ""
+"The email address you supplied is banned from this\n"
+" mailing list. If you think this restriction is erroneous, please\n"
+" contact the list owners at %(listowner)s."
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:185
+msgid ""
+"The email address you supplied is not valid. (E.g. it must contain an\n"
+"`@'.)"
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:189
+msgid ""
+"Your subscription is not allowed because the email address you gave is\n"
+"insecure."
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:197
+msgid ""
+"Confirmation from your email address is required, to prevent anyone from\n"
+"subscribing you without permission. Instructions are being sent to you at\n"
+"%(email)s. Please note your subscription will not start until you confirm\n"
+"your subscription."
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:209
+msgid ""
+"Your subscription request was deferred because %(x)s. Your request has "
+"been\n"
+"forwarded to the list moderator. You will receive email informing you of "
+"the\n"
+"moderator's decision when they get to your request."
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:216 Mailman/Commands/cmd_confirm.py:60
+msgid "You are already subscribed."
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:230
+msgid "Mailman privacy alert"
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:231
+msgid ""
+"An attempt was made to subscribe your address to the mailing list\n"
+"%(listaddr)s. You are already subscribed to this mailing list.\n"
+"\n"
+"Note that the list membership is not public, so it is possible that a bad\n"
+"person was trying to probe the list for its membership. This would be a\n"
+"privacy violation if we let them do this, but we didn't.\n"
+"\n"
+"If you submitted the subscription request and forgot that you were already\n"
+"subscribed to the list, then you can ignore this message. If you suspect "
+"that\n"
+"an attempt is being made to covertly discover whether you are a member of "
+"this\n"
+"list, and you are worried about your privacy, then feel free to send a "
+"message\n"
+"to the list administrator at %(listowner)s.\n"
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:250
+msgid "This list does not support digest delivery."
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:252
+msgid "This list only supports digest delivery."
+msgstr ""
+
+#: Mailman/Cgi/subscribe.py:259
+msgid "You have been successfully subscribed to the %(realname)s mailing list."
+msgstr "÷Ù ÕÓÐÅÛÎÏ ÐÏÄÐÉÓÁÌÉÓØ ÎÁ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ %(realname)s."
+
+#: Mailman/Commands/cmd_confirm.py:17
+msgid ""
+"\n"
+" confirm <confirmation-string>\n"
+" Confirm an action. The confirmation-string is required and should "
+"be\n"
+" supplied with in mailback confirmation notice.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_confirm.py:40 Mailman/Commands/cmd_lists.py:40
+#: Mailman/Commands/cmd_set.py:133 Mailman/Commands/cmd_subscribe.py:69
+#: Mailman/Commands/cmd_unsubscribe.py:52 Mailman/Commands/cmd_who.py:65
+msgid "Usage:"
+msgstr "úÁÐÕÓË:"
+
+#: Mailman/Commands/cmd_confirm.py:49
+msgid ""
+"Invalid confirmation string. Note that confirmation strings expire\n"
+"approximately %(days)s days after the initial subscription request. If "
+"your\n"
+"confirmation has expired, please try to re-submit your original request or\n"
+"message."
+msgstr ""
+
+#: Mailman/Commands/cmd_confirm.py:55
+msgid "Your request has been forwarded to the list moderator for approval."
+msgstr "÷ÁÛ ÚÁÐÒÏÓ ÂÙÌ ÐÅÒÅÐÒÁ×ÌÅÎ ÍÏÄÅÒÁÔÏÒÕ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ ÄÌÑ ÏÂÒÁÂÏÔËÉ."
+
+#: Mailman/Commands/cmd_confirm.py:63
+msgid ""
+"You are not current a member. Have you already unsubscribed or changed\n"
+"your email address?"
+msgstr ""
+"÷Ù ÎÅ Ñ×ÌÑÅÔÅÓØ ÐÏÄÐÉÓÞÉËÏÍ. íÏÖÅÔ, ×Ù ÕÖÅ ÕÄÁÌÉÌÉ Ó×ÏÀ ÐÏÄÐÉÓËÕ ÉÌÉ ÖÅ\n"
+"ÐÏÍÅÎÑÌÉ ÁÄÒÅÓ ÐÏÄÐÉÓËÉ?"
+
+#: Mailman/Commands/cmd_confirm.py:73
+msgid "Confirmation succeeded"
+msgstr ""
+
+#: Mailman/Commands/cmd_echo.py:17
+msgid ""
+"\n"
+" echo [args]\n"
+" Simply echo an acknowledgement. Args are echoed back unchanged.\n"
+msgstr ""
+"\n"
+" echo [ÐÁÒÁÍÅÔÒÙ]\n"
+" ðÒÉÓÌÁÔØ × ÏÔ×ÅÔ ÐÏÄÔ×ÅÒÖÄÅÎÉÅ. ðÁÒÁÍÅÔÒÙ ÂÕÄÕÔ ÐÅÒÅÓÌÁÎÙ ÏÂÒÁÔÎÏ\n"
+" ÂÅÚ ÉÚÍÅÎÅÎÉÊ.\n"
+
+#: Mailman/Commands/cmd_end.py:17
+msgid ""
+"\n"
+" end\n"
+" Stop processing commands. Use this if your mail program "
+"automatically\n"
+" adds a signature file.\n"
+msgstr ""
+"\n"
+" end ÉÌÉ --\n"
+" ðÒÅËÒÁÔÉÔØ ×ÙÐÏÌÎÅÎÉÅ ËÏÍÁÎÄ. éÓÐÏÌØÚÕÊÔÅ ÜÔÕ ËÏÍÁÎÄÕ, ÅÓÌÉ ×ÁÛ "
+"ÐÏÞÔÏ×ÙÊ\n"
+" ËÌÉÅÎÔ Á×ÔÏÍÁÔÉÞÅÓËÉ ÄÏÂÁ×ÌÑÅÔ ÐÏÄÐÉÓØ.\n"
+
+#: Mailman/Commands/cmd_help.py:17
+msgid ""
+"\n"
+" help\n"
+" Print this help message.\n"
+msgstr ""
+"\n"
+" help\n"
+" ðÏÌÕÞÉÔØ ÔÅËÓÔ ÜÔÏÇÏ ÓÏÏÂÝÅÎÉÑ.\n"
+
+#: Mailman/Commands/cmd_help.py:47
+msgid "You can access your personal options via the following url:"
+msgstr "÷Ù ÎÁÊÄÅÔÅ ÐÁÒÁÍÅÔÒÙ Ó×ÏÅÊ ÐÏÄÐÉÓËÉ ÐÏ ÜÔÏÍÕ ÁÄÒÅÓÕ:"
+
+#: Mailman/Commands/cmd_info.py:17
+msgid ""
+"\n"
+" info\n"
+" Get information about this mailing list.\n"
+msgstr ""
+"\n"
+" info\n"
+" ðÒÉÓÌÁÔØ ××ÅÄÅÎÉÅ × ÜÔÏÔ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ.\n"
+
+#: Mailman/Commands/cmd_info.py:39 Mailman/Commands/cmd_lists.py:62
+msgid "n/a"
+msgstr ""
+
+#: Mailman/Commands/cmd_info.py:44
+msgid "List name: %(listname)s"
+msgstr "óÐÉÓÏË ÒÁÓÓÙÌËÉ: %(listname)s"
+
+#: Mailman/Commands/cmd_info.py:45
+msgid "Description: %(description)s"
+msgstr "ïÐÉÓÁÎÉÅ: %(description)s"
+
+#: Mailman/Commands/cmd_info.py:46
+msgid "Postings to: %(postaddr)s"
+msgstr "áÄÒÅÓ ÄÌÑ ÓÏÏÂÝÅÎÉÊ: %(postaddr)s"
+
+#: Mailman/Commands/cmd_info.py:47
+msgid "List Helpbot: %(requestaddr)s"
+msgstr "õÐÒÁ×ÌÅÎÉÅ ÐÏÄÐÉÓËÏÊ: %(requestaddr)s"
+
+#: Mailman/Commands/cmd_info.py:48
+msgid "List Owners: %(owneraddr)s"
+msgstr "÷ÌÁÄÅÌØÃÙ ÓÐÉÓËÁ: %(owneraddr)s"
+
+#: Mailman/Commands/cmd_info.py:49
+msgid "More information: %(listurl)s"
+msgstr "äÏÐÏÌÎÉÔÅÌØÎÁÑ ÉÎÆÏÒÍÁÃÉÑ: %(listurl)s"
+
+#: Mailman/Commands/cmd_join.py:17
+msgid "The `join' command is synonymous with `subscribe'.\n"
+msgstr "ëÏÍÁÎÄÁ 'join' Ñ×ÌÑÅÔÓÑ ÓÉÎÏÎÉÍÏÍ ÄÌÑ ËÏÍÁÎÄÙ `subscribe'.\n"
+
+#: Mailman/Commands/cmd_leave.py:17
+msgid "The `leave' command is synonymous with `unsubscribe'.\n"
+msgstr "ëÏÍÁÎÄÁ 'leave' Ñ×ÌÑÅÔÓÑ ÓÉÎÏÎÉÍÏÍ ÄÌÑ ËÏÍÁÎÄÙ `unsubscribe'.\n"
+
+#: Mailman/Commands/cmd_lists.py:17
+msgid ""
+"\n"
+" lists\n"
+" See a list of the public mailing lists on this GNU Mailman server.\n"
+msgstr ""
+"\n"
+" lists\n"
+" ÷Ù×ÅÓÔÉ ÓÐÉÓÏË ÁÎÏÎÓÉÒÏ×ÁÎÎÙÈ ÓÐÉÓËÏ× ÒÁÓÓÙÌËÉ, ÄÏÓÔÕÐÎÙÈ ÎÁ ÜÔÏÍ "
+"ÓÅÒ×ÅÒÅ.\n"
+
+#: Mailman/Commands/cmd_lists.py:44
+msgid "Public mailing lists at %(hostname)s:"
+msgstr "áÎÏÎÓÉÒÏ×ÁÎÎÙÅ ÓÐÉÓËÉ ÒÁÓÓÙÌËÉ ÎÁ %(hostname)s:"
+
+#: Mailman/Commands/cmd_lists.py:66
+msgid "%(i)3d. List name: %(realname)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_lists.py:67
+msgid " Description: %(description)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_lists.py:68
+msgid " Requests to: %(requestaddr)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_password.py:17
+msgid ""
+"\n"
+" password [<oldpassword> <newpassword>] [address=<address>]\n"
+" Retrieve or change your password. With no arguments, this returns\n"
+" your current password. With arguments <oldpassword> and "
+"<newpassword>\n"
+" you can change your password.\n"
+"\n"
+" If you're posting from an address other than your membership "
+"address,\n"
+" specify your membership address with `address=<address>' (no "
+"brackets\n"
+" around the email address, and no quotes!). Note that in this case "
+"the\n"
+" response is always sent to the subscribed address.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_password.py:51 Mailman/Commands/cmd_password.py:64
+msgid "Your password is: %(password)s"
+msgstr "÷ÁÛ ÐÁÒÏÌØ: %(password)s"
+
+#: Mailman/Commands/cmd_password.py:55 Mailman/Commands/cmd_password.py:68
+#: Mailman/Commands/cmd_password.py:91 Mailman/Commands/cmd_password.py:117
+#: Mailman/Commands/cmd_set.py:149 Mailman/Commands/cmd_set.py:219
+msgid "You are not a member of the %(listname)s mailing list"
+msgstr "÷Ù ÎÅ Ñ×ÌÑÅÔÅÓØ ÐÏÄÐÉÓÞÉËÏÍ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ %(listname)s"
+
+#: Mailman/Commands/cmd_password.py:81 Mailman/Commands/cmd_password.py:107
+msgid ""
+"You did not give the correct old password, so your password has not been\n"
+"changed. Use the no argument version of the password command to retrieve "
+"your\n"
+"current password, then try again."
+msgstr ""
+
+#: Mailman/Commands/cmd_password.py:85 Mailman/Commands/cmd_password.py:111
+msgid ""
+"\n"
+"Usage:"
+msgstr ""
+"\n"
+"úÁÐÕÓË:"
+
+#: Mailman/Commands/cmd_remove.py:17
+msgid "The `remove' command is synonymous with `unsubscribe'.\n"
+msgstr "ëÏÍÁÎÄÁ `remove' Ñ×ÌÑÅÔÓÑ ÓÉÎÏÎÉÍ ÄÌÑ ËÏÍÁÎÄÙ `unsubscribe'.\n"
+
+#: Mailman/Commands/cmd_set.py:26
+msgid ""
+"\n"
+" set ...\n"
+" Set or view your membership options.\n"
+"\n"
+" Use `set help' (without the quotes) to get a more detailed list of "
+"the\n"
+" options you can change.\n"
+"\n"
+" Use `set show' (without the quotes) to view your current option\n"
+" settings.\n"
+msgstr ""
+"\n"
+" set ...\n"
+" éÚÍÅÎÉÔØ ÉÌÉ ÐÒÏÓÍÏÔÒÅÔØ ÐÁÒÁÍÅÔÒÙ ÐÏÄÐÉÓËÉ.\n"
+"\n"
+" äÌÑ ÐÏÌÕÞÅÎÉÑ ÐÏÄÒÏÂÎÏÊ ÉÎÆÏÒÍÁÃÉÉ Ï ËÏÍÁÎÄÅ `set' ÉÓÐÏÌØÚÕÊÔÅ "
+"ËÏÍÁÎÄÕ `set\n"
+" help' (ÂÅÚ ËÁ×ÙÞÅË)\n"
+"\n"
+" äÌÑ ÐÒÏÓÍÏÔÒÁ ÔÅËÕÝÉÈ ÐÁÒÁÍÅÔÒÏ× ÉÓÐÏÌØÚÕÊÔÅ ËÏÍÁÎÄÕ `set "
+"show' (ÂÅÚ\n"
+" ËÁ×ÙÞÅË)\n"
+
+#: Mailman/Commands/cmd_set.py:37
+msgid ""
+"\n"
+" set help\n"
+" Show this detailed help.\n"
+"\n"
+" set show [address=<address>]\n"
+" View your current option settings. If you're posting from an "
+"address\n"
+" other than your membership address, specify your membership address\n"
+" with `address=<address>' (no brackets around the email address, and "
+"no\n"
+" quotes!).\n"
+"\n"
+" set authenticate <password> [address=<address>]\n"
+" To set any of your options, you must include this command first, "
+"along\n"
+" with your membership password. If you're posting from an address\n"
+" other than your membership address, specify your membership address\n"
+" with `address=<address>' (no brackets around the email address, and "
+"no\n"
+" quotes!).\n"
+"\n"
+" set ack on\n"
+" set ack off\n"
+" When the `ack' option is turned on, you will receive an\n"
+" acknowledgement message whenever you post a message to the list.\n"
+"\n"
+" set digest plain\n"
+" set digest mime\n"
+" set digest off\n"
+" When the `digest' option is turned off, you will receive postings\n"
+" immediately when they are posted. Use `set digest plain' if "
+"instead\n"
+" you want to receive postings bundled into a plain text digest\n"
+" (i.e. RFC 1153 digest). Use `set digest mime' if instead you want "
+"to\n"
+" receive postings bundled together into a MIME digest.\n"
+"\n"
+" set delivery on\n"
+" set delivery off\n"
+" Turn delivery on or off. This does not unsubscribe you, but "
+"instead\n"
+" tells Mailman not to deliver messages to you for now. This is "
+"useful\n"
+" if you're going on vacation. Be sure to use `set delivery on' when\n"
+" you return from vacation!\n"
+"\n"
+" set myposts on\n"
+" set myposts off\n"
+" Use `set myposts off' to not receive copies of messages you post to\n"
+" the list. This has no effect if you're receiving digests.\n"
+"\n"
+" set hide on\n"
+" set hide off\n"
+" Use `set hide on' to conceal your email address when people request\n"
+" the membership list.\n"
+"\n"
+" set duplicates on\n"
+" set duplicates off\n"
+" Use `set duplicates off' if you want Mailman to not send you "
+"messages\n"
+" if your address is explicitly mentioned in the To: or Cc: fields of\n"
+" the message. This can reduce the number of duplicate postings you\n"
+" will receive.\n"
+"\n"
+" set reminders on\n"
+" set reminders off\n"
+" Use `set reminders off' if you want to disable the monthly password\n"
+" reminder for this mailing list.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:122
+msgid "Bad set command: %(subcmd)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:151
+msgid "Your current option settings:"
+msgstr "ôÅËÕÝÉÅ ÐÁÒÁÍÅÔÒÙ ×ÁÛÅÊ ÐÏÄÐÉÓËÉ:"
+
+#: Mailman/Commands/cmd_set.py:153 Mailman/Commands/cmd_set.py:191
+#: Mailman/Commands/cmd_set.py:194 Mailman/Commands/cmd_set.py:198
+#: Mailman/Commands/cmd_set.py:202
+msgid "off"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:153 Mailman/Commands/cmd_set.py:191
+#: Mailman/Commands/cmd_set.py:194 Mailman/Commands/cmd_set.py:198
+#: Mailman/Commands/cmd_set.py:202
+msgid "on"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:154
+msgid " ack %(onoff)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:160
+msgid " digest plain"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:162
+msgid " digest mime"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:164
+msgid " digest off"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:169
+msgid "delivery on"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:171 Mailman/Commands/cmd_set.py:174
+#: Mailman/Commands/cmd_set.py:177 Mailman/Commands/cmd_set.py:181
+msgid "delivery off"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:172
+msgid "by you"
+msgstr "ÐÏ ×ÁÛÅÍÕ ÚÁÐÒÏÓÕ"
+
+#: Mailman/Commands/cmd_set.py:175
+msgid "by the admin"
+msgstr "ÐÏ ÚÁÐÒÏÓÕ ÁÄÍÉÎÉÓÔÒÁÔÏÒÁ"
+
+#: Mailman/Commands/cmd_set.py:178
+msgid "due to bounces"
+msgstr "×ÓÌÅÄÓÔ×ÉÅ ÏÛÉÂÏË ÄÏÓÔÁ×ËÉ ÐÏÄÐÉÓËÉ"
+
+#: Mailman/Commands/cmd_set.py:186
+msgid " %(status)s (%(how)s on %(date)s)"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:192
+msgid " myposts %(onoff)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:195
+msgid " hide %(onoff)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:199
+msgid " duplicates %(onoff)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:203
+msgid " reminders %(onoff)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:224
+msgid "You did not give the correct password"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:236 Mailman/Commands/cmd_set.py:283
+msgid "Bad argument: %(arg)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:241 Mailman/Commands/cmd_set.py:261
+msgid "Not authenticated"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:254
+msgid "ack option set"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:286
+msgid "digest option set"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:298
+msgid "delivery option set"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:310
+msgid "myposts option set"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:321
+msgid "hide option set"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:333
+msgid "duplicates option set"
+msgstr ""
+
+#: Mailman/Commands/cmd_set.py:345
+msgid "reminder option set"
+msgstr ""
+
+#: Mailman/Commands/cmd_stop.py:17
+msgid "stop is synonymous with the end command.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:17
+msgid ""
+"\n"
+" subscribe [password] [digest|nodigest] [address=<address>]\n"
+" Subscribe to this mailing list. Your password must be given to\n"
+" unsubscribe or change your options, but if you omit the password, "
+"one\n"
+" will be generated for you. You may be periodically reminded of "
+"your\n"
+" password.\n"
+"\n"
+" The next argument may be either: `nodigest' or `digest' (no "
+"quotes!).\n"
+" If you wish to subscribe an address other than the address you sent\n"
+" this request from, you may specify `address=<address>' (no brackets\n"
+" around the email address, and no quotes!)\n"
+msgstr ""
+"\n"
+" subscribe [ÐÁÒÏÌØ] [ÔÉÐ-ÄÁÊÄÖÅÓÔÁ] [address=<ÁÄÒÅÓ>]\n"
+" ðÏÄÐÉÓÁÔØÓÑ ÎÁ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ. ðÁÒÏÌØ ×ÁÍ ÐÏÎÁÄÏÂÉÔÓÑ ÄÌÑ ÔÏÇÏ,\n"
+" ÞÔÏÂÙ ÍÅÎÑÔØ ÐÁÒÁÍÅÔÒÙ ÐÏÄÐÉÓËÉ ÉÌÉ ÞÔÏÂÙ ÏÔÐÉÓÁÔØÓÑ ÏÔ ÓÐÉÓËÁ "
+"ÒÁÓÓÙÌËÉ.\n"
+" åÓÌÉ ×Ù ÎÅ ÕËÁÖÅÔÅ ÐÁÒÏÌØ, ÏÎ ÂÕÄÅÔ ÓÏÚÄÁÎ ÄÌÑ ×ÁÓ Á×ÔÏÍÁÔÉÞÅÓËÉ. "
+"óÉÓÔÅÍÁ\n"
+" ÍÏÖÅÔ ÒÅÇÕÌÑÒÎÏ ÓÏÏÂÝÁÔØ ×ÁÍ ×ÁÛ ÐÁÒÏÌØ.\n"
+"\n"
+" ðÁÒÁÍÅÔÒ 'ÔÉÐ-ÄÁÊÄÖÅÓÔÁ' ÍÏÖÅÔ ÐÒÉÎÉÍÁÔØ Ä×Á ÚÎÁÞÅÎÉÑ: 'nodigest' "
+"ÉÌÉ\n"
+" 'digest' (ÂÅÚ ËÁ×ÙÞÅË). åÓÌÉ ÷Ù ÈÏÔÉÔÅ ÐÏÄÐÉÓÁÔØ ÎÁ ÓÐÉÓÏË "
+"ÒÁÓÓÙÌËÉ\n"
+" ÁÄÒÅÓ, ÏÔÌÉÞÎÙÊ ÏÔ ÔÏÇÏ, Ó ËÏÔÏÒÏÇÏ ÷Ù ÏÔÐÒÁ×ÌÑÅÔÅ ÚÁÐÒÏÓ, ÷Ù ÄÏÌÖÎÙ "
+"ÕËÁÚÁÔØ\n"
+" ÐÁÒÁÍÅÔÒ \"address=<ÁÄÒÅÓ, ËÏÔÏÒÙÊ ÷Ù ÈÏÔÉÔÅ ÐÏÄÐÉÓÁÔØ>\" (ÁÄÒÅÓ "
+"ÎÅÏÂÈÏÄÉÍÏ\n"
+" ÕËÁÚÁÔØ ÂÅÚ ÕÇÌÏ×ÙÈ ÓËÏÂÏË; ËÁ×ÙÞËÉ ÎÅÏÂÈÏÄÉÍÏ ÏÐÕÓÔÉÔØ).\n"
+
+#: Mailman/Commands/cmd_subscribe.py:62
+msgid "Bad digest specifier: %(arg)s"
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:84
+msgid "No valid address found to subscribe"
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:102
+msgid ""
+"The email address you supplied is banned from this mailing list.\n"
+"If you think this restriction is erroneous, please contact the list\n"
+"owners at %(listowner)s."
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:108
+msgid ""
+"Mailman won't accept the given email address as a valid address.\n"
+"(E.g. it must have an @ in it.)"
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:113
+msgid ""
+"Your subscription is not allowed because\n"
+"the email address you gave is insecure."
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:118
+msgid "You are already subscribed!"
+msgstr "×Ù ÕÖÅ Ñ×ÌÑÅÔÓÑ ÐÏÄÐÉÓÞÉËÏÍ ÜÔÏÇÏ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ!"
+
+#: Mailman/Commands/cmd_subscribe.py:122
+msgid "No one can subscribe to the digest of this list!"
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:125
+msgid "This list only supports digest subscriptions!"
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:131
+msgid ""
+"Your subscription request has been forwarded to the list administrator\n"
+"at %(listowner)s for review."
+msgstr ""
+
+#: Mailman/Commands/cmd_subscribe.py:136
+msgid "Subscription request succeeded."
+msgstr ""
+
+#: Mailman/Commands/cmd_unsubscribe.py:17
+msgid ""
+"\n"
+" unsubscribe [password] [address=<address>]\n"
+" Unsubscribe from the mailing list. If given, your password must "
+"match\n"
+" your current password. If omitted, a confirmation email will be "
+"sent\n"
+" to the unsubscribing address. If you wish to unsubscribe an address\n"
+" other than the address you sent this request from, you may specify\n"
+" `address=<address>' (no brackets around the email address, and no\n"
+" quotes!)\n"
+msgstr ""
+"\n"
+" unsubscribe <ÐÁÒÏÌØ> [ÁÄÒÅÓ]\n"
+" õÄÁÌÉÔØ ÐÏÄÐÉÓËÕ ÎÁ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ. ÷ÁÛ ÐÁÒÏÌØ ÄÏÌÖÅÎ ÓÏ×ÐÁÄÁÔØ Ó\n"
+" ÔÅÍ, ËÏÔÏÒÙÊ ×Ù ÕËÁÚÁÌÉ ÐÒÉ ÐÏÄÐÉÓËÅ. åÓÌÉ ×Ù ÅÇÏ ÏÐÕÓÔÉÔÅ, "
+"ÏÔÄÅÌØÎÏÅ\n"
+" ÓÏÏÂÝÅÎÉÅ ÂÕÄÅÔ ÎÁÐÒÁ×ÌÅÎÏ ÎÁ ÁÄÒÅÓ ÐÏÄÐÉÓÞÉËÁ. åÓÌÉ ×Ù ÈÏÔÉÔÅ "
+"ÕÄÁÌÉÔØ\n"
+" ÐÏÄÐÉÓËÕ ÎÁ ÁÄÒÅÓ, ÏÔÌÉÞÎÙÊ ÏÔ ÔÏÇÏ, Ó ËÏÔÏÒÏÇÏ ×Ù ÐÏÓÙÌÁÅÔÅ ÚÁÐÒÏÓ, "
+"×Ù\n"
+" ÍÏÖÅÔÅ ÕËÁÚÁÔØ ÅÇÏ × ÐÁÒÁÍÅÔÒÅ `address=<ÁÄÒÅÓ>' (ÂÅÚ ËÁ×ÙÞÅË É "
+"ÕÇÌÏ×ÙÈ\n"
+" ÓËÏÂÏË!)\n"
+
+#: Mailman/Commands/cmd_unsubscribe.py:62
+msgid "%(address)s is not a member of the %(listname)s mailing list"
+msgstr ""
+
+#: Mailman/Commands/cmd_unsubscribe.py:69
+msgid ""
+"Your unsubscription request has been forwarded to the list administrator "
+"for\n"
+"approval."
+msgstr ""
+
+#: Mailman/Commands/cmd_unsubscribe.py:84
+msgid "You gave the wrong password"
+msgstr "÷Ù ÕËÁÚÁÌÉ ÎÅ×ÅÒÎÙÊ ÐÁÒÏÌØ"
+
+#: Mailman/Commands/cmd_unsubscribe.py:87
+msgid "Unsubscription request succeeded."
+msgstr "ðÏÄÐÉÓËÁ ÕÄÁÌÅÎÁ."
+
+#: Mailman/Commands/cmd_who.py:29
+msgid ""
+"\n"
+" who\n"
+" See everyone who is on this mailing list.\n"
+msgstr ""
+"\n"
+" who\n"
+" ðÏÌÕÞÉÔØ ÓÐÉÓÏË ÐÏÄÐÉÓÞÉËÏ× ÜÔÏÇÏ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ.\n"
+
+#: Mailman/Commands/cmd_who.py:34
+msgid ""
+"\n"
+" who password [address=<address>]\n"
+" See everyone who is on this mailing list. The roster is limited to\n"
+" list members only, and you must supply your membership password to\n"
+" retrieve it. If you're posting from an address other than your\n"
+" membership address, specify your membership address with\n"
+" `address=<address>' (no brackets around the email address, and no\n"
+" quotes!)\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_who.py:44
+msgid ""
+"\n"
+" who password\n"
+" See everyone who is on this mailing list. The roster is limited to\n"
+" list administrators and moderators only; you must supply the list\n"
+" admin or moderator password to retrieve the roster.\n"
+msgstr ""
+
+#: Mailman/Commands/cmd_who.py:110
+msgid "You are not allowed to retrieve the list membership."
+msgstr "÷Ù ÎÅ ÉÍÅÅÔÅ ÐÒÁ×Á ÐÏÌÕÞÁÔØ ÓÐÉÓÏË ÐÏÄÐÉÓÞÉËÏ×."
+
+#: Mailman/Commands/cmd_who.py:116
+msgid "This list has no members."
+msgstr "îÁ ÜÔÏÔ ÓÐÉÓÏË ÎÉËÔÏ ÎÅ ÐÏÄÐÉÓÁÎ."
+
+#: Mailman/Commands/cmd_who.py:129
+msgid "Non-digest (regular) members:"
+msgstr "ðÏÄÐÉÓÞÉËÉ, ÐÏÌÕÞÁÀÝÉÅ ÐÏÄÐÉÓËÕ ÏÂÙÞÎÙÍ ÏÂÒÁÚÏÍ:"
+
+#: Mailman/Commands/cmd_who.py:132
+msgid "Digest members:"
+msgstr "ðÏÄÐÉÓÞÉËÉ, ÐÏÌÕÞÁÀÝÉÅ ÐÏÄÐÉÓËÕ × ×ÉÄÅ ÄÁÊÄÖÅÓÔÁ:"
+
+#: Mailman/Defaults.py:1204
+msgid "Traditional Chinese"
+msgstr "ôÒÁÄÉÃÉÏÎÎÙÊ ËÉÔÁÊÓËÉÊ"
+
+#: Mailman/Defaults.py:1205
+msgid "Czech"
+msgstr "þÅÛÓËÉÊ"
+
+#: Mailman/Defaults.py:1206
+msgid "German"
+msgstr "îÅÍÅÃËÉÊ"
+
+#: Mailman/Defaults.py:1207
+msgid "English (USA)"
+msgstr "áÎÇÌÉÊÓËÉÊ (óûá)"
+
+#: Mailman/Defaults.py:1208
+msgid "Spanish (Spain)"
+msgstr "éÓÐÁÎÓËÉÊ (éÓÐÁÎÉÑ)"
+
+#: Mailman/Defaults.py:1209
+msgid "Estonian"
+msgstr "üÓÔÏÎÓËÉÊ"
+
+#: Mailman/Defaults.py:1210
+msgid "Finnish"
+msgstr "æÉÎÓËÉÊ"
+
+#: Mailman/Defaults.py:1211
+msgid "French"
+msgstr "æÒÁÎÃÕÚÓËÉÊ"
+
+#: Mailman/Defaults.py:1212
+msgid "Simplified Chinese"
+msgstr "õÐÒÏÝÅÎÎÙÊ ËÉÔÁÊÓËÉÊ"
+
+#: Mailman/Defaults.py:1213
+msgid "Hungarian"
+msgstr "÷ÅÎÇÅÒÓËÉÊ"
+
+#: Mailman/Defaults.py:1214
+msgid "Italian"
+msgstr "éÔÁÌØÑÎÓËÉÊ"
+
+#: Mailman/Defaults.py:1215
+msgid "Japanese"
+msgstr "ñÐÏÎÓËÉÊ"
+
+#: Mailman/Defaults.py:1216
+msgid "Korean"
+msgstr "ëÏÒÅÊÓËÉÊ"
+
+#: Mailman/Defaults.py:1217
+msgid "Lithuanian"
+msgstr ""
+
+#: Mailman/Defaults.py:1218
+msgid "Dutch"
+msgstr "çÏÌÌÁÎÄÓËÉÊ"
+
+#: Mailman/Defaults.py:1219
+msgid "Norwegian"
+msgstr "îÏÒ×ÅÖÓËÉÊ"
+
+#: Mailman/Defaults.py:1220
+msgid "Portuguese (Brazil)"
+msgstr "ðÏÒÔÕÇÁÌØÓËÉÊ (âÒÁÚÉÌÉÑ)"
+
+#: Mailman/Defaults.py:1221
+msgid "Russian"
+msgstr "òÕÓÓËÉÊ"
+
+#: Mailman/Defaults.py:1222
+msgid "Swedish"
+msgstr "û×ÅÄÓËÉÊ"
+
+#: Mailman/Deliverer.py:43
+msgid ""
+"Note: Since this is a list of mailing lists, administrative\n"
+"notices like the password reminder will be sent to\n"
+"your membership administrative address, %(addr)s."
+msgstr ""
+"÷ÎÉÍÁÎÉÅ: ÔÁË ËÁË ÜÔÏ ÓÐÉÓÏË ÓÐÉÓËÏ× ÒÁÓÓÙÌËÉ, ×ÓÅ ÁÄÍÉÎÉÓÔÒÁÔÉ×ÎÙÅ\n"
+"ÓÏÏÂÝÅÎÉÅ, ÔÁËÉÅ ËÁË, ÎÁÐÒÉÍÅÒ, ÎÁÐÏÍÉÎÁÎÉÑ ÐÁÒÏÌÑ, ÂÕÄÕÔ\n"
+"ÏÔÐÒÁ×ÌÑÔØÓÑ ÎÁ ×ÁÛ ÁÄÍÉÎÉÓÔÒÁÔÉ×ÎÙÊ ÁÄÒÅÓ: %(addr)s."
+
+#: Mailman/Deliverer.py:62
+msgid " (Digest mode)"
+msgstr " (× ÒÅÖÉÍÅ ÄÁÊÄÖÅÓÔÁ)"
+
+#: Mailman/Deliverer.py:68
+msgid "Welcome to the \"%(realname)s\" mailing list%(digmode)s"
+msgstr "äÏÂÒÏ ÐÏÖÁÌÏ×ÁÔØ × ÓÐÉÓÏË ÒÁÓÓÙÌËÉ \"%(realname)s\"%(digmode)s"
+
+#: Mailman/Deliverer.py:77
+msgid "You have been unsubscribed from the %(realname)s mailing list"
+msgstr "÷ÁÛÁ ÐÏÄÐÉÓËÁ ÎÁ %(realname)s ÂÙÌÁ ÕÄÁÌÅÎÁ"
+
+#: Mailman/Deliverer.py:104
+msgid "%(listfullname)s mailing list reminder"
+msgstr ""
+
+#: Mailman/Errors.py:114
+msgid "For some unknown reason"
+msgstr "÷ ÓÉÌÕ ÎÅÉÚ×ÅÓÔÎÏÊ ÐÒÉÞÉÎÙ"
+
+# ÈÅ. :((
+#: Mailman/Errors.py:120 Mailman/Errors.py:143
+msgid "Your message was rejected"
+msgstr "÷ÁÛÅ ÓÏÏÂÝÅÎÉÅ ÎÅ ÂÙÌÏ ÐÒÉÎÑÔÏ Ë ÄÏÓÔÁ×ËÅ"
+
+#: Mailman/Gui/Archive.py:25
+msgid "Archiving Options"
+msgstr "ðÁÒÁÍÅÔÒÙ ÁÒÈÉ×ÉÒÏ×ÁÎÉÑ"
+
+#: Mailman/Gui/Archive.py:31
+msgid "List traffic archival policies."
+msgstr "ðÏÌÉÔÉËÁ ÓÏÚÄÁÎÉÑ ÁÒÈÉ×Á ÄÌÑ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ."
+
+#: Mailman/Gui/Archive.py:34
+msgid "Archive messages?"
+msgstr "áÒÈÉ×ÉÒÏ×ÁÔØ ÓÏÏÂÝÅÎÉÑ?"
+
+#: Mailman/Gui/Archive.py:36
+msgid "private"
+msgstr "ÚÁËÒÙÔÙÊ"
+
+#: Mailman/Gui/Archive.py:36
+msgid "public"
+msgstr "ÏÔËÒÙÔÙÊ"
+
+#: Mailman/Gui/Archive.py:37
+msgid "Is archive file source for public or private archival?"
+msgstr ""
+
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Monthly"
+msgstr "åÖÅÍÅÓÑÞÎÏ"
+
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Quarterly"
+msgstr "åÖÅË×ÁÒÔÁÌØÎÏ"
+
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Yearly"
+msgstr "åÖÅÇÏÄÎÏ"
+
+#: Mailman/Gui/Archive.py:41 Mailman/Gui/Digest.py:79
+msgid "Daily"
+msgstr "åÖÅÄÎÅ×ÎÏ"
+
+#: Mailman/Gui/Archive.py:41 Mailman/Gui/Digest.py:79
+msgid "Weekly"
+msgstr "åÖÅÎÅÄÅÌØÎÏ"
+
+#: Mailman/Gui/Archive.py:43
+msgid "How often should a new archive volume be started?"
+msgstr "ëÁË ÞÁÓÔÏ ÓÏÚÄÁ×ÁÔØ ÎÏ×ÙÊ ÔÏÍ ÁÒÈÉ×Á?"
+
+#: Mailman/Gui/Autoresponse.py:31
+msgid "Auto-responder"
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:39
+msgid ""
+"Auto-responder characteristics.<p>\n"
+"\n"
+"In the text fields below, string interpolation is performed with\n"
+"the following key/value substitutions:\n"
+"<p><ul>\n"
+" <li><b>listname</b> - <em>gets the name of the mailing list</em>\n"
+" <li><b>listurl</b> - <em>gets the list's listinfo URL</em>\n"
+" <li><b>requestemail</b> - <em>gets the list's -request address</em>\n"
+" <li><b>owneremail</b> - <em>gets the list's -owner address</em>\n"
+"</ul>\n"
+"\n"
+"<p>For each text field, you can either enter the text directly into the "
+"text\n"
+"box, or you can specify a file on your local system to upload as the text."
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:55
+msgid ""
+"Should Mailman send an auto-response to mailing list\n"
+" posters?"
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:60
+msgid "Auto-response text to send to mailing list posters."
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:63
+msgid ""
+"Should Mailman send an auto-response to emails sent to the\n"
+" -owner address?"
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:68
+msgid "Auto-response text to send to -owner emails."
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:71
+msgid "Yes, w/discard"
+msgstr "äÁ, Ó ÕÄÁÌÅÎÉÅÍ ÉÓÈÏÄÎÏÇÏ ÓÏÏÂÝÅÎÉÑ"
+
+#: Mailman/Gui/Autoresponse.py:71
+msgid "Yes, w/forward"
+msgstr "äÁ, Ó ÐÅÒÅÓÙÌËÏÊ ÉÓÈÏÄÎÏÇÏ ÓÏÏÂÝÅÎÉÑ"
+
+#: Mailman/Gui/Autoresponse.py:72
+msgid ""
+"Should Mailman send an auto-response to emails sent to the\n"
+" -request address? If you choose yes, decide whether you want\n"
+" Mailman to discard the original email, or forward it on to the\n"
+" system as a normal mail command."
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:79
+msgid "Auto-response text to send to -request emails."
+msgstr ""
+
+#: Mailman/Gui/Autoresponse.py:82
+msgid ""
+"Number of days between auto-responses to either the mailing\n"
+" list or -request/-owner address from the same poster. Set to\n"
+" zero (or negative) for no grace period (i.e. auto-respond to\n"
+" every message)."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:26
+msgid "Bounce processing"
+msgstr "ïÂÒÁÂÏÔËÁ ÏÛÉÂÏË ÄÏÓÔÁ×ËÉ"
+
+#: Mailman/Gui/Bounce.py:32
+msgid ""
+"These policies control the automatic bounce processing system\n"
+" in Mailman. Here's an overview of how it works.\n"
+"\n"
+" <p>When a bounce is received, Mailman tries to extract two "
+"pieces\n"
+" of information from the message: the address of the member the\n"
+" message was intended for, and the severity of the problem "
+"causing\n"
+" the bounce. The severity can be either <em>hard</em> or\n"
+" <em>soft</em> meaning either a fatal error occurred, or a\n"
+" transient error occurred. When in doubt, a hard severity is "
+"used.\n"
+"\n"
+" <p>If no member address can be extracted from the bounce, then "
+"the\n"
+" bounce is usually discarded. Otherwise, each member is assigned "
+"a\n"
+" <em>bounce score</em> and every time we encounter a bounce from\n"
+" this member we increment the score. Hard bounces increment by "
+"1\n"
+" while soft bounces increment by 0.5. We only increment the "
+"bounce\n"
+" score once per day, so even if we receive ten hard bounces from "
+"a\n"
+" member per day, their score will increase by only 1 for that "
+"day.\n"
+"\n"
+" <p>When a member's bounce score is greater than the\n"
+" <a href=\"?VARHELP=bounce/bounce_score_threshold\">bounce score\n"
+" threshold</a>, the subscription is disabled. Once disabled, "
+"the\n"
+" member will not receive any postings from the list until their\n"
+" membership is explicitly re-enabled (either by the list\n"
+" administrator or the user). However, they will receive "
+"occasional\n"
+" reminders that their membership has been disabled, and these\n"
+" reminders will include information about how to re-enable their\n"
+" membership.\n"
+"\n"
+" <p>You can control both the\n"
+" <a href=\"?VARHELP=bounce/bounce_you_are_disabled_warnings"
+"\">number\n"
+" of reminders</a> the member will receive and the\n"
+" <a href=\"?VARHELP=bounce/"
+"bounce_you_are_disabled_warnings_interval\"\n"
+" >frequency</a> with which these reminders are sent.\n"
+"\n"
+" <p>There is one other important configuration variable; after a\n"
+" certain period of time -- during which no bounces from the "
+"member\n"
+" are received -- the bounce information is\n"
+" <a href=\"?VARHELP=bounce/bounce_info_stale_after\">considered\n"
+" stale</a> and discarded. Thus by adjusting this value, and the\n"
+" score threshold, you can control how quickly bouncing members "
+"are\n"
+" disabled. You should tune both of these to the frequency and\n"
+" traffic volume of your list."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:75
+msgid "Bounce detection sensitivity"
+msgstr "þÕ×ÓÔ×ÉÔÅÌØÎÏÓÔØ ÍÅÈÁÎÉÚÍÁ ÏÐÒÅÄÅÌÅÎÉÑ ÏÛÉÂÏË Ï ÄÏÓÔÁ×ËÅ"
+
+#: Mailman/Gui/Bounce.py:78
+msgid "Should Mailman perform automatic bounce processing?"
+msgstr "ðÒÏÉÚ×ÏÄÉÔØ Á×ÔÏÍÁÔÉÞÅÓËÕÀ ÏÂÒÁÂÏÔËÕ ÓÏÏÂÝÅÎÉÊ Ï ÄÏÓÔÁ×ËÅ?"
+
+#: Mailman/Gui/Bounce.py:79
+msgid ""
+"By setting this value to <em>No</em>, you disable all\n"
+" automatic bounce processing for this list, however bounce\n"
+" messages will still be discarded so that the list "
+"administrator\n"
+" isn't inundated with them."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:85
+msgid ""
+"The maximum member bounce score before the member's\n"
+" subscription is disabled. This value can be a floating point\n"
+" number."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:90
+msgid ""
+"The number of days after which a member's bounce information\n"
+" is discarded, if no new bounces have been received in the\n"
+" interim. This value must be an integer."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:95
+msgid ""
+"How many <em>Your Membership Is Disabled</em> warnings a\n"
+" disabled member should get before their address is removed "
+"from\n"
+" the mailing list. Set to 0 to immediately remove an address "
+"from\n"
+" the list once their bounce score exceeds the threshold. This\n"
+" value must be an integer."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:102
+msgid ""
+"The number of days between sending the <em>Your Membership\n"
+" Is Disabled</em> warnings. This value must be an integer."
+msgstr ""
+"ëÏÌÉÞÅÓÔ×Ï ÄÎÅÊ ÍÅÖÄÕ ÏÔÐÒÁ×ËÏÊ ÐÒÅÄÕÐÒÅÖÄÅÎÉÊ <em>÷ÁÛÁ ÐÏÄÐÉÓËÁ\n"
+" ÐÒÉÏÓÔÁÎÏ×ÌÅÎÁ</em>. üÔÏ ÄÏÌÖÎÏ ÂÙÔØ ÃÅÌÏÅ ÞÉÓÌÏ."
+
+#: Mailman/Gui/Bounce.py:105 Mailman/Gui/General.py:257
+msgid "Notifications"
+msgstr "ïÐÏ×ÅÝÅÎÉÑ"
+
+# MSS: ÏÞÅÎØ ÐÌÏÈÏ! :(
+#: Mailman/Gui/Bounce.py:109
+msgid ""
+"Should Mailman send you, the list owner, any bounce messages\n"
+" that failed to be detected by the bounce processor? <em>Yes</"
+"em>\n"
+" is recommended."
+msgstr ""
+"äÏÌÖÎÁ ÌÉ ÐÒÏÇÒÁÍÍÁ Mailman ÐÅÒÅÓÙÌÁÔØ ×ÁÍ, ÁÄÍÉÎÉÓÔÒÁÔÏÒÕ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ,\n"
+" ×ÓÅ ÓÏÏÂÝÅÎÉÑ Ï ÎÅ×ÏÚÍÏÖÎÏÓÔÉ ÄÏÓÔÁ×ÉÔØ ÓÏÏÂÝÅÎÉÅ, "
+"ÎÅÏÂÒÁÂÏÔÁÎÎÙÅ\n"
+" ÏÂÒÁÂÏÔÞÉËÏÍ ÏÛÉÂÏË ÄÏÓÔÁ×ËÉ? òÅËÏÍÅÎÄÕÅÔÓÑ ÕÓÔÁÎÏ×ÉÔØ × <em>äÁ</em>."
+
+#: Mailman/Gui/Bounce.py:112
+msgid ""
+"While Mailman's bounce detector is fairly robust, it's\n"
+" impossible to detect every bounce format in the world. You\n"
+" should keep this variable set to <em>Yes</em> for two reasons: "
+"1)\n"
+" If this really is a permanent bounce from one of your members,\n"
+" you should probably manually remove them from your list, and "
+"2)\n"
+" you might want to send the message on to the Mailman "
+"developers\n"
+" so that this new format can be added to its known set.\n"
+"\n"
+" <p>If you really can't be bothered, then set this variable to\n"
+" <em>No</em> and all non-detected bounces will be discarded\n"
+" without further processing.\n"
+"\n"
+" <p><b>Note:</b> This setting will also affect all messages "
+"sent\n"
+" to your list's -admin address. This address is deprecated and\n"
+" should never be used, but some people may still send mail to "
+"this\n"
+" address. If this happens, and this variable is set to\n"
+" <em>No</em> those messages too will get discarded. You may "
+"want\n"
+" to set up an\n"
+" <a href=\"?VARHELP=autoreply/autoresponse_admin_text"
+"\">autoresponse\n"
+" message</a> for email to the -owner and -admin address."
+msgstr ""
+
+# MSS: ÅÝÅ ÏÄÉÎ ÐÌÏÈÏÊ ÐÅÒÅ×ÏÄ
+#: Mailman/Gui/Bounce.py:135
+msgid ""
+"Should Mailman notify you, the list owner, when bounces\n"
+" cause a member's subscription to be disabled?"
+msgstr ""
+"äÏÌÖÅÎ ÌÉ ÁÄÍÉÎÉÓÔÒÁÔÏÒ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ ÐÏÌÕÞÁÔØ ÉÚ×ÅÝÅÎÉÑ Ï ÂÌÏËÉÒÏ×ËÅ "
+"ÐÏÄÐÉÓËÉ?"
+
+#: Mailman/Gui/Bounce.py:137
+msgid ""
+"By setting this value to <em>No</em>, you turn off\n"
+" notification messages that are normally sent to the list "
+"owners\n"
+" when a member's delivery is disabled due to excessive bounces.\n"
+" An attempt to notify the member will always be made."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:144
+msgid ""
+"Should Mailman notify you, the list owner, when bounces\n"
+" cause a member to be unsubscribed?"
+msgstr ""
+"äÏÌÖÅÎ ÌÉ ÁÄÍÉÎÉÓÔÒÁÔÏÒ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ ÐÏÌÕÞÁÔØ ÉÚ×ÅÝÅÎÉÑ Ï ÕÄÁÌÅÎÉÉ "
+"ÐÏÄÐÉÓËÉ?"
+
+#: Mailman/Gui/Bounce.py:146
+msgid ""
+"By setting this value to <em>No</em>, you turn off\n"
+" notification messages that are normally sent to the list "
+"owners\n"
+" when a member is unsubscribed due to excessive bounces. An\n"
+" attempt to notify the member will always be made."
+msgstr ""
+
+#: Mailman/Gui/Bounce.py:173
+msgid ""
+"Bad value for <a href=\"?VARHELP=bounce/%(property)s\"\n"
+" >%(property)s</a>: %(val)s"
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:30
+msgid "Content&nbsp;filtering"
+msgstr "æÉÌØÔÒÁÃÉÑ ÓÏÄÅÒÖÉÍÏÇÏ ÓÏÏÂÝÅÎÉÊ"
+
+#: Mailman/Gui/ContentFilter.py:37
+msgid "Forward to List Owner"
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:39
+msgid "Preserve"
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:42
+msgid ""
+"Policies concerning the content of list traffic.\n"
+"\n"
+" <p>Content filtering works like this: when a message is\n"
+" received by the list and you have enabled content filtering, "
+"the\n"
+" individual attachments are first compared to the\n"
+" <a href=\"?VARHELP=contentfilter/filter_mime_types\">filter\n"
+" types</a>. If the attachment type matches an entry in the "
+"filter\n"
+" types, it is discarded.\n"
+"\n"
+" <p>Then, if there are <a\n"
+" href=\"?VARHELP=contentfilter/pass_mime_types\">pass types</a>\n"
+" defined, any attachment type that does <em>not</em> match a\n"
+" pass type is also discarded. If there are no pass types "
+"defined,\n"
+" this check is skipped.\n"
+"\n"
+" <p>After this initial filtering, any <tt>multipart</tt>\n"
+" attachments that are empty are removed. If the outer message "
+"is\n"
+" left empty after this filtering, then the whole message is\n"
+" discarded. Then, each <tt>multipart/alternative</tt> section "
+"will\n"
+" be replaced by just the first alternative that is non-empty "
+"after\n"
+" filtering.\n"
+"\n"
+" <p>Finally, any <tt>text/html</tt> parts that are left in the\n"
+" message may be converted to <tt>text/plain</tt> if\n"
+" <a href=\"?VARHELP=contentfilter/convert_html_to_plaintext\"\n"
+" >convert_html_to_plaintext</a> is enabled and the site is\n"
+" configured to allow these conversions."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:71
+msgid ""
+"Should Mailman filter the content of list traffic according\n"
+" to the settings below?"
+msgstr ""
+"æÉÌØÔÒÏ×ÁÔØ ÓÏÏÂÝÅÎÉÑ, ÏÔÐÒÁ×ÌÑÅÍÙÅ × ÓÐÉÓÏË ÒÁÓÓÙÌËÉ, × ÓÏÏÔ×ÅÔÓÔ×ÉÉ\n"
+" Ó ÕÓÔÁÎÏ×ËÁÍÉ ÎÉÖÅ?"
+
+#: Mailman/Gui/ContentFilter.py:75
+msgid ""
+"Remove message attachments that have a matching content\n"
+" type."
+msgstr "õÄÁÌÑÔØ ×ÌÏÖÅÎÉÑ, ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÅ ÕËÁÚÁÎÎÙÍ ÔÉÐÁÍ"
+
+#: Mailman/Gui/ContentFilter.py:78
+msgid ""
+"Use this option to remove each message attachment that\n"
+" matches one of these content types. Each line should contain "
+"a\n"
+" string naming a MIME <tt>type/subtype</tt>,\n"
+" e.g. <tt>image/gif</tt>. Leave off the subtype to remove all\n"
+" parts with a matching major content type, e.g. <tt>image</tt>.\n"
+"\n"
+" <p>Blank lines are ignored.\n"
+"\n"
+" <p>See also <a href=\"?VARHELP=contentfilter/pass_mime_types\"\n"
+" >pass_mime_types</a> for a content type whitelist."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:90
+msgid ""
+"Remove message attachments that don't have a matching\n"
+" content type. Leave this field blank to skip this filter\n"
+" test."
+msgstr ""
+"õÄÁÌÑÔØ ÓÏÏÂÝÅÎÉÑ, ËÏÔÏÒÙÅ <b>ÎÅ</b> ÓÏÄÅÒÖÁÔ ×ÌÏÖÅÎÉÑ ÕËÁÚÁÎÎÙÈ ÔÉÐÏ×.\n"
+" ïÓÔÁרÔÅ ÓÐÉÓÏË ÐÕÓÔÙÍ, ÞÔÏ ÏÐÕÓÔÉÔØ ÐÒÏ×ÅÒËÕ ÜÔÏÇÏ ÕÓÌÏ×ÉÑ"
+
+#: Mailman/Gui/ContentFilter.py:94
+msgid ""
+"Use this option to remove each message attachment that does\n"
+" not have a matching content type. Requirements and formats "
+"are\n"
+" exactly like <a href=\"?VARHELP=contentfilter/filter_mime_types"
+"\"\n"
+" >filter_mime_types</a>.\n"
+"\n"
+" <p><b>Note:</b> if you add entries to this list but don't add\n"
+" <tt>multipart</tt> to this list, any messages with attachments\n"
+" will be rejected by the pass filter."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:104
+msgid ""
+"Should Mailman convert <tt>text/html</tt> parts to plain\n"
+" text? This conversion happens after MIME attachments have "
+"been\n"
+" stripped."
+msgstr ""
+"ðÒÅÏÂÒÁÚÏ×Ù×ÁÔØ ÞÁÓÔÉ ÓÏÏÂÝÅÎÉÑ ÔÉÐÁ <tt>text/html</tt> × ÏÂÙÞÎÙÊ ÔÅËÓÔ?\n"
+" üÔÏ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÅ ÐÒÏÉÓÈÏÄÉÔ <b>ÐÏÓÌÅ</b> ÔÏÇÏ, ËÁË ×ÌÏÖÅÎÉÑ ÂÙÌÉ "
+"ÕÄÁÌÅÎÙ."
+
+#: Mailman/Gui/ContentFilter.py:110
+msgid ""
+"Action to take when a message matches the content filtering\n"
+" rules."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:113
+msgid ""
+"One of these actions is take when the message matches one of\n"
+" the content filtering rules, meaning, the top-level\n"
+" content type matches one of the <a\n"
+" href=\"?VARHELP=contentfilter/filter_mime_types\"\n"
+" >filter_mime_types</a>, or the top-level content type does\n"
+" <strong>not</strong> match one of the\n"
+" <a href=\"?VARHELP=contentfilter/pass_mime_types\"\n"
+" >pass_mime_types</a>, or if after filtering the subparts of "
+"the\n"
+" message, the message ends up empty.\n"
+"\n"
+" <p>Note this action is not taken if after filtering the "
+"message\n"
+" still contains content. In that case the message is always\n"
+" forwarded on to the list membership.\n"
+"\n"
+" <p>When messages are discarded, a log entry is written\n"
+" containing the Message-ID of the discarded message. When\n"
+" messages are rejected or forwarded to the list owner, a reason\n"
+" for the rejection is included in the bounce message to the\n"
+" original author. When messages are preserved, they are saved "
+"in\n"
+" a special queue directory on disk for the site administrator "
+"to\n"
+" view (and possibly rescue) but otherwise discarded. This last\n"
+" option is only available if enabled by the site\n"
+" administrator."
+msgstr ""
+
+#: Mailman/Gui/ContentFilter.py:154
+msgid "Bad MIME type ignored: %(spectype)s"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:36
+msgid "Digest options"
+msgstr "ðÁÒÁÍÅÔÒÙ ÄÏÓÔÁ×ËÉ ÄÁÊÄÖÅÓÔÏ×"
+
+#: Mailman/Gui/Digest.py:44
+msgid "Batched-delivery digest characteristics."
+msgstr ""
+
+#: Mailman/Gui/Digest.py:47
+msgid "Can list members choose to receive list traffic bunched in digests?"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:51
+msgid "Digest"
+msgstr "äÁÊÄÖÅÓÔ"
+
+#: Mailman/Gui/Digest.py:51
+msgid "Regular"
+msgstr "ïÂÙÞÎÁÑ"
+
+#: Mailman/Gui/Digest.py:52
+msgid "Which delivery mode is the default for new users?"
+msgstr "òÅÖÉÍ ÄÏÓÔÁ×ËÉ ÄÁÊÄÖÅÓÔÏ×?"
+
+#: Mailman/Gui/Digest.py:55
+msgid "MIME"
+msgstr "ËÁË ×ÌÏÖÅÎÉÑ"
+
+#: Mailman/Gui/Digest.py:55
+msgid "Plain"
+msgstr "× ÔÅËÓÔÏ×ÏÍ ×ÉÄÅ"
+
+#: Mailman/Gui/Digest.py:56
+msgid "When receiving digests, which format is default?"
+msgstr "òÅÖÉÍ ÐÏ ÕÍÏÌÞÁÎÉÀ ÄÌÑ ÄÏÓÔÁ×ËÉ ÄÁÊÄÖÅÓÔÏ×?"
+
+#: Mailman/Gui/Digest.py:59
+msgid "How big in Kb should a digest be before it gets sent out?"
+msgstr "ðÏ ÄÏÓÔÉÖÅÎÉÉ ËÁËÏÇÏ ÒÁÚÍÅÒÁ ÏÔÒÁ×ÌÑÔØ ÎÏ×ÙÊ ÄÁÊÄÖÅÓÔ?"
+
+#: Mailman/Gui/Digest.py:63
+msgid ""
+"Should a digest be dispatched daily when the size threshold isn't reached?"
+msgstr ""
+"ïÔÐÒÁ×ÌÑÔØ ÌÉ ÄÁÊÄÖÅÓÔ × ËÏÎÃÅ ÄÎÑ, ÅÓÌÉ ÕËÁÚÁÎÎÙÊ ÒÁÚÍÅÒ ÎÅ ÂÙÌ ÄÏÓÔÉÇÎÕÔ?"
+
+# MSS: ÏÞÅÎØ ÐÌÏÈÏ. :((
+#: Mailman/Gui/Digest.py:67
+msgid "Header added to every digest"
+msgstr "÷ÅÒÈÎÉÊ ËÏÌÏÎÔÉÔÕÌ, ÄÏÂÁ×ÌÑÅÍÙÊ Ë ËÁÖÄÏÍÕ ÄÁÊÄÖÅÓÔÕ"
+
+#: Mailman/Gui/Digest.py:68
+msgid ""
+"Text attached (as an initial message, before the table of contents) to the "
+"top of digests. "
+msgstr "ôÅËÓÔ, ÐÏÍÅÝÁÅÍÙÊ × ÄÁÊÄÖÅÓÔ × ÓÁÍÏÍ ÎÁÞÁÌÅ (ÄÏ ÓÏÄÅÒÖÁÎÉÑ). "
+
+# MSS: ÏÞÅÎØ ÐÌÏÈÏ. :((
+#: Mailman/Gui/Digest.py:73
+msgid "Footer added to every digest"
+msgstr "îÉÖÎÉÊ ËÏÌÏÎÔÉÔÕÌ, ÄÏÂÁ×ÌÑÅÍÙÊ Ë ËÁÖÄÏÍÕ ÄÁÊÄÖÅÓÔÕ"
+
+#: Mailman/Gui/Digest.py:74
+msgid "Text attached (as a final message) to the bottom of digests. "
+msgstr "ôÅËÓÔ, ÐÏÍÅÝÁÅÍÙÊ × ËÏÎÃÅ ÄÁÊÄÖÅÓÔÁ."
+
+#: Mailman/Gui/Digest.py:80
+msgid "How often should a new digest volume be started?"
+msgstr "ëÁË ÞÁÓÔÏ ÎÕÖÎÏ ÎÁÞÉÎÁÔØ ÎÏ×ÙÊ ÔÏÍ ÄÁÊÄÖÅÓÔÁ?"
+
+#: Mailman/Gui/Digest.py:81
+msgid ""
+"When a new digest volume is started, the volume number is\n"
+" incremented and the issue number is reset to 1."
+msgstr ""
+
+#: Mailman/Gui/Digest.py:85
+msgid "Should Mailman start a new digest volume?"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:86
+msgid ""
+"Setting this option instructs Mailman to start a new volume\n"
+" with the next digest sent out."
+msgstr ""
+
+#: Mailman/Gui/Digest.py:90
+msgid ""
+"Should Mailman send the next digest right now, if it is not\n"
+" empty?"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:145
+msgid ""
+"The next digest will be sent as volume\n"
+" %(volume)s, number %(number)s"
+msgstr ""
+
+#: Mailman/Gui/Digest.py:150
+msgid "A digest has been sent."
+msgstr "äÁÊÄÖÅÓÔ ÂÙÌ ÏÔÐÒÁ×ÌÅÎ."
+
+#: Mailman/Gui/Digest.py:152
+msgid "There was no digest to send."
+msgstr "ðÕÓÔÏÊ ÄÁÊÄÖÅÓÔ ÏÔÐÒÁ×ÌÅÎ ÎÅ ÂÕÄÅÔ."
+
+#: Mailman/Gui/GUIBase.py:149
+msgid "Invalid value for variable: %(property)s"
+msgstr ""
+
+#: Mailman/Gui/GUIBase.py:153
+msgid "Bad email address for option %(property)s: %(val)s"
+msgstr ""
+
+#: Mailman/Gui/GUIBase.py:179
+msgid ""
+"The following illegal substitution variables were\n"
+" found in the <code>%(property)s</code> string:\n"
+" <code>%(bad)s</code>\n"
+" <p>Your list may not operate properly until you correct "
+"this\n"
+" problem."
+msgstr ""
+
+#: Mailman/Gui/GUIBase.py:193
+msgid ""
+"Your <code>%(property)s</code> string appeared to\n"
+" have some correctable problems in its new value.\n"
+" The fixed value will be used instead. Please\n"
+" double check that this is what you intended.\n"
+" "
+msgstr ""
+
+#: Mailman/Gui/General.py:32
+msgid "General Options"
+msgstr "ïÂÝÉÅ ÐÁÒÁÍÅÔÒÙ"
+
+#: Mailman/Gui/General.py:46
+msgid "Conceal the member's address"
+msgstr ""
+
+#: Mailman/Gui/General.py:47
+msgid "Acknowledge the member's posting"
+msgstr ""
+
+#: Mailman/Gui/General.py:48
+msgid "Do not send a copy of a member's own post"
+msgstr ""
+
+#: Mailman/Gui/General.py:50
+msgid "Filter out duplicate messages to list members (if possible)"
+msgstr ""
+
+#: Mailman/Gui/General.py:57
+msgid ""
+"Fundamental list characteristics, including descriptive\n"
+" info and basic behaviors."
+msgstr ""
+
+#: Mailman/Gui/General.py:60
+msgid "General list personality"
+msgstr ""
+
+#: Mailman/Gui/General.py:63
+msgid "The public name of this list (make case-changes only)."
+msgstr "îÁÚ×ÁÎÉÅ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ (ÄÏÐÕÓÔÉÍÙ ÔÏÌØËÏ ÉÚÍÅÎÅÎÉÑ ÒÅÇÉÓÔÒÁ)"
+
+#: Mailman/Gui/General.py:64
+msgid ""
+"The capitalization of this name can be changed to make it\n"
+" presentable in polite company as a proper noun, or to make an\n"
+" acronym part all upper case, etc. However, the name will be\n"
+" advertised as the email address (e.g., in subscribe "
+"confirmation\n"
+" notices), so it should <em>not</em> be otherwise altered. "
+"(Email\n"
+" addresses are not case sensitive, but they are sensitive to\n"
+" almost everything else :-)"
+msgstr ""
+
+#: Mailman/Gui/General.py:73
+msgid ""
+"The list administrator email addresses. Multiple\n"
+" administrator addresses, each on separate line is okay."
+msgstr ""
+"áÄÒÅÓÁ ÁÄÍÉÎÉÓÔÒÁÔÏÒÁ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ. ÷Ù ÍÏÖÅÔÅ ÕËÁÚÁÔØ ÎÅÓËÏÌØËÏ ÁÄÒÅÓÏ×, "
+"ÐÏ ÏÄÎÏÍÕ × ÓÔÒÏËÅ."
+
+#: Mailman/Gui/General.py:76
+msgid ""
+"There are two ownership roles associated with each mailing\n"
+" list. The <em>list administrators</em> are the people who "
+"have\n"
+" ultimate control over all parameters of this mailing list. "
+"They\n"
+" are able to change any list configuration variable available\n"
+" through these administration web pages.\n"
+"\n"
+" <p>The <em>list moderators</em> have more limited permissions;\n"
+" they are not able to change any list configuration variable, "
+"but\n"
+" they are allowed to tend to pending administration requests,\n"
+" including approving or rejecting held subscription requests, "
+"and\n"
+" disposing of held postings. Of course, the <em>list\n"
+" administrators</em> can also tend to pending requests.\n"
+"\n"
+" <p>In order to split the list ownership duties into\n"
+" administrators and moderators, you must\n"
+" <a href=\"passwords\">set a separate moderator password</a>,\n"
+" and also provide the <a href=\"?VARHELP=general/moderator"
+"\">email\n"
+" addresses of the list moderators</a>. Note that the field you\n"
+" are changing here specifies the list administrators."
+msgstr ""
+
+#: Mailman/Gui/General.py:97
+msgid ""
+"The list moderator email addresses. Multiple\n"
+" moderator addresses, each on separate line is okay."
+msgstr ""
+"áÄÒÅÓÁ ÍÏÄÅÒÁÔÏÒÁ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ. ÷Ù ÍÏÖÅÔÅ ÕËÁÚÁÔØ ÎÅÓËÏÌØËÏ ÁÄÒÅÓÏ×, ÐÏ "
+"ÏÄÎÏÍÕ × ÓÔÒÏËÅ."
+
+#: Mailman/Gui/General.py:100
+msgid ""
+"There are two ownership roles associated with each mailing\n"
+" list. The <em>list administrators</em> are the people who "
+"have\n"
+" ultimate control over all parameters of this mailing list. "
+"They\n"
+" are able to change any list configuration variable available\n"
+" through these administration web pages.\n"
+"\n"
+" <p>The <em>list moderators</em> have more limited permissions;\n"
+" they are not able to change any list configuration variable, "
+"but\n"
+" they are allowed to tend to pending administration requests,\n"
+" including approving or rejecting held subscription requests, "
+"and\n"
+" disposing of held postings. Of course, the <em>list\n"
+" administrators</em> can also tend to pending requests.\n"
+"\n"
+" <p>In order to split the list ownership duties into\n"
+" administrators and moderators, you must\n"
+" <a href=\"passwords\">set a separate moderator password</a>,\n"
+" and also provide the email addresses of the list moderators in\n"
+" this section. Note that the field you are changing here\n"
+" specifies the list moderators."
+msgstr ""
+
+#: Mailman/Gui/General.py:121
+msgid "A terse phrase identifying this list."
+msgstr "ëÒÁÔËÁÑ ÆÒÁÚÁ, ÏÐÉÓÙ×ÁÀÝÁÑ ÜÔÏÔ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ."
+
+#: Mailman/Gui/General.py:123
+msgid ""
+"This description is used when the mailing list is listed with\n"
+" other mailing lists, or in headers, and so forth. It "
+"should\n"
+" be as succinct as you can get it, while still identifying "
+"what\n"
+" the list is."
+msgstr ""
+
+#: Mailman/Gui/General.py:129
+msgid ""
+"An introductory description - a few paragraphs - about the\n"
+" list. It will be included, as html, at the top of the "
+"listinfo\n"
+" page. Carriage returns will end a paragraph - see the details\n"
+" for more info."
+msgstr ""
+
+#: Mailman/Gui/General.py:133
+msgid ""
+"The text will be treated as html <em>except</em> that\n"
+" newlines will be translated to &lt;br&gt; - so you can use "
+"links,\n"
+" preformatted text, etc, but don't put in carriage returns "
+"except\n"
+" where you mean to separate paragraphs. And review your changes "
+"-\n"
+" bad html (like some unterminated HTML constructs) can prevent\n"
+" display of the entire listinfo page."
+msgstr ""
+
+#: Mailman/Gui/General.py:141
+msgid "Prefix for subject line of list postings."
+msgstr ""
+
+#: Mailman/Gui/General.py:142
+msgid ""
+"This text will be prepended to subject lines of messages\n"
+" posted to the list, to distinguish mailing list messages in in\n"
+" mailbox summaries. Brevity is premium here, it's ok to "
+"shorten\n"
+" long mailing list names to something more concise, as long as "
+"it\n"
+" still identifies the mailing list."
+msgstr ""
+
+#: Mailman/Gui/General.py:149
+msgid ""
+"Hide the sender of a message, replacing it with the list\n"
+" address (Removes From, Sender and Reply-To fields)"
+msgstr ""
+
+#: Mailman/Gui/General.py:152
+msgid "<tt>Reply-To:</tt> header munging"
+msgstr "ïÂÒÁÂÏÔËÁ ÚÁÇÏÌÏ×ËÁ <tt>Reply-To:</tt>"
+
+#: Mailman/Gui/General.py:155
+msgid ""
+"Should any existing <tt>Reply-To:</tt> header found in the\n"
+" original message be stripped? If so, this will be done\n"
+" regardless of whether an explict <tt>Reply-To:</tt> header is\n"
+" added by Mailman or not."
+msgstr ""
+
+#: Mailman/Gui/General.py:161
+msgid "Explicit address"
+msgstr ""
+
+#: Mailman/Gui/General.py:161
+msgid "Poster"
+msgstr ""
+
+#: Mailman/Gui/General.py:161
+msgid "This list"
+msgstr ""
+
+#: Mailman/Gui/General.py:162
+msgid ""
+"Where are replies to list messages directed?\n"
+" <tt>Poster</tt> is <em>strongly</em> recommended for most "
+"mailing\n"
+" lists."
+msgstr ""
+
+#: Mailman/Gui/General.py:167
+msgid ""
+"This option controls what Mailman does to the\n"
+" <tt>Reply-To:</tt> header in messages flowing through this\n"
+" mailing list. When set to <em>Poster</em>, no <tt>Reply-To:</"
+"tt>\n"
+" header is added by Mailman, although if one is present in the\n"
+" original message, it is not stripped. Setting this value to\n"
+" either <em>This list</em> or <em>Explicit address</em> causes\n"
+" Mailman to insert a specific <tt>Reply-To:</tt> header in all\n"
+" messages, overriding the header in the original message if\n"
+" necessary (<em>Explicit address</em> inserts the value of <a\n"
+" href=\"?VARHELP=general/reply_to_address\">reply_to_address</"
+"a>).\n"
+" \n"
+" <p>There are many reasons not to introduce or override the\n"
+" <tt>Reply-To:</tt> header. One is that some posters depend on\n"
+" their own <tt>Reply-To:</tt> settings to convey their valid\n"
+" return address. Another is that modifying <tt>Reply-To:</tt>\n"
+" makes it much more difficult to send private replies. See <a\n"
+" href=\"http://www.unicom.com/pw/reply-to-harmful.html\">`Reply-"
+"To'\n"
+" Munging Considered Harmful</a> for a general discussion of "
+"this\n"
+" issue. See <a\n"
+" href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml"
+"\">Reply-To\n"
+" Munging Considered Useful</a> for a dissenting opinion.\n"
+"\n"
+" <p>Some mailing lists have restricted posting privileges, with "
+"a\n"
+" parallel list devoted to discussions. Examples are `patches' "
+"or\n"
+" `checkin' lists, where software changes are posted by a "
+"revision\n"
+" control system, but discussion about the changes occurs on a\n"
+" developers mailing list. To support these types of mailing\n"
+" lists, select <tt>Explicit address</tt> and set the\n"
+" <tt>Reply-To:</tt> address below to point to the parallel\n"
+" list."
+msgstr ""
+
+#: Mailman/Gui/General.py:199
+msgid "Explicit <tt>Reply-To:</tt> header."
+msgstr ""
+
+#: Mailman/Gui/General.py:201
+msgid ""
+"This is the address set in the <tt>Reply-To:</tt> header\n"
+" when the <a\n"
+" href=\"?VARHELP=general/reply_goes_to_list"
+"\">reply_goes_to_list</a>\n"
+" option is set to <em>Explicit address</em>.\n"
+"\n"
+" <p>There are many reasons not to introduce or override the\n"
+" <tt>Reply-To:</tt> header. One is that some posters depend on\n"
+" their own <tt>Reply-To:</tt> settings to convey their valid\n"
+" return address. Another is that modifying <tt>Reply-To:</tt>\n"
+" makes it much more difficult to send private replies. See <a\n"
+" href=\"http://www.unicom.com/pw/reply-to-harmful.html\">`Reply-"
+"To'\n"
+" Munging Considered Harmful</a> for a general discussion of "
+"this\n"
+" issue. See <a\n"
+" href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml"
+"\">Reply-To\n"
+" Munging Considered Useful</a> for a dissenting opinion.\n"
+"\n"
+" <p>Some mailing lists have restricted posting privileges, with "
+"a\n"
+" parallel list devoted to discussions. Examples are `patches' "
+"or\n"
+" `checkin' lists, where software changes are posted by a "
+"revision\n"
+" control system, but discussion about the changes occurs on a\n"
+" developers mailing list. To support these types of mailing\n"
+" lists, specify the explicit <tt>Reply-To:</tt> address here. "
+"You\n"
+" must also specify <tt>Explicit address</tt> in the\n"
+" <tt>reply_goes_to_list</tt>\n"
+" variable.\n"
+"\n"
+" <p>Note that if the original message contains a\n"
+" <tt>Reply-To:</tt> header, it will not be changed."
+msgstr ""
+
+#: Mailman/Gui/General.py:230
+msgid "Umbrella list settings"
+msgstr ""
+
+#: Mailman/Gui/General.py:233
+msgid ""
+"Send password reminders to, eg, \"-owner\" address instead of\n"
+" directly to user."
+msgstr ""
+
+#: Mailman/Gui/General.py:236
+msgid ""
+"Set this to yes when this list is intended to cascade only\n"
+" to other mailing lists. When set, meta notices like\n"
+" confirmations and password reminders will be directed to an\n"
+" address derived from the member's address - it will have the\n"
+" value of \"umbrella_member_suffix\" appended to the member's\n"
+" account name."
+msgstr ""
+
+#: Mailman/Gui/General.py:244
+msgid ""
+"Suffix for use when this list is an umbrella for other\n"
+" lists, according to setting of previous \"umbrella_list\"\n"
+" setting."
+msgstr ""
+
+#: Mailman/Gui/General.py:248
+msgid ""
+"When \"umbrella_list\" is set to indicate that this list has\n"
+" other mailing lists as members, then administrative notices "
+"like\n"
+" confirmations and password reminders need to not be sent to "
+"the\n"
+" member list addresses, but rather to the owner of those member\n"
+" lists. In that case, the value of this setting is appended to\n"
+" the member's account name for such notices. `-owner' is the\n"
+" typical choice. This setting has no effect when \"umbrella_list"
+"\"\n"
+" is \"No\"."
+msgstr ""
+
+#: Mailman/Gui/General.py:260
+msgid "Send monthly password reminders?"
+msgstr ""
+
+#: Mailman/Gui/General.py:262
+msgid ""
+"Turn this on if you want password reminders to be sent once\n"
+" per month to your members. Note that members may disable "
+"their\n"
+" own individual password reminders."
+msgstr ""
+
+#: Mailman/Gui/General.py:267
+msgid ""
+"List-specific text prepended to new-subscriber welcome\n"
+" message"
+msgstr ""
+
+#: Mailman/Gui/General.py:270
+msgid ""
+"This value, if any, will be added to the front of the\n"
+" new-subscriber welcome message. The rest of the welcome "
+"message\n"
+" already describes the important addresses and URLs for the\n"
+" mailing list, so you don't need to include any of that kind of\n"
+" stuff here. This should just contain mission-specific kinds "
+"of\n"
+" things, like etiquette policies or team orientation, or that "
+"kind\n"
+" of thing.\n"
+"\n"
+" <p>Note that this text will be wrapped, according to the\n"
+" following rules:\n"
+" <ul><li>Each paragraph is filled so that no line is longer "
+"than\n"
+" 70 characters.\n"
+" <li>Any line that begins with whitespace is not filled.\n"
+" <li>A blank line separates paragraphs.\n"
+" </ul>"
+msgstr ""
+
+#: Mailman/Gui/General.py:287
+msgid "Send welcome message to newly subscribed members?"
+msgstr "ïÔÐÒÁ×ÌÑÔØ ÐÒÉ×ÅÔÓÔ×ÅÎÎÏÅ ÓÏÏÂÝÅÎÉÅ ÎÏ×ÙÍ ÐÏÄÐÉÓÞÉËÁÍ?"
+
+#: Mailman/Gui/General.py:288
+msgid ""
+"Turn this off only if you plan on subscribing people manually\n"
+" and don't want them to know that you did so. This option is "
+"most\n"
+" useful for transparently migrating lists from some other "
+"mailing\n"
+" list manager to Mailman."
+msgstr ""
+
+#: Mailman/Gui/General.py:294
+msgid ""
+"Text sent to people leaving the list. If empty, no special\n"
+" text will be added to the unsubscribe message."
+msgstr ""
+
+#: Mailman/Gui/General.py:298
+msgid "Send goodbye message to members when they are unsubscribed?"
+msgstr ""
+
+#: Mailman/Gui/General.py:301
+msgid ""
+"Should the list moderators get immediate notice of new\n"
+" requests, as well as daily notices about collected ones?"
+msgstr ""
+
+#: Mailman/Gui/General.py:304
+msgid ""
+"List moderators (and list administrators) are sent daily\n"
+" reminders of requests pending approval, like subscriptions to "
+"a\n"
+" moderated list, or postings that are being held for one reason "
+"or\n"
+" another. Setting this option causes notices to be sent\n"
+" immediately on the arrival of new requests as well."
+msgstr ""
+
+#: Mailman/Gui/General.py:311
+msgid ""
+"Should administrator get notices of subscribes and\n"
+" unsubscribes?"
+msgstr ""
+
+#: Mailman/Gui/General.py:316
+msgid "Send mail to poster when their posting is held for approval?"
+msgstr ""
+
+#: Mailman/Gui/General.py:318
+msgid ""
+"Approval notices are sent when mail triggers certain of the\n"
+" limits <em>except</em> routine list moderation and spam "
+"filters,\n"
+" for which notices are <em>not</em> sent. This option "
+"overrides\n"
+" ever sending the notice."
+msgstr ""
+
+#: Mailman/Gui/General.py:323
+msgid "Additional settings"
+msgstr "äÏÐÏÌÎÉÔÅÌØÎÙÅ ÐÁÒÁÍÅÔÒÙ"
+
+#: Mailman/Gui/General.py:326
+msgid "Emergency moderation of all list traffic."
+msgstr ""
+
+#: Mailman/Gui/General.py:327
+msgid ""
+"When this option is enabled, all list traffic is emergency\n"
+" moderated, i.e. held for moderation. Turn this option on when\n"
+" your list is experiencing a flamewar and you want a cooling "
+"off\n"
+" period."
+msgstr ""
+
+#: Mailman/Gui/General.py:339
+msgid ""
+"Default options for new members joining this list.<input\n"
+" type=\"hidden\" name=\"new_member_options\" value=\"ignore\">"
+msgstr ""
+
+#: Mailman/Gui/General.py:342
+msgid ""
+"When a new member is subscribed to this list, their initial\n"
+" set of options is taken from the this variable's setting."
+msgstr ""
+
+#: Mailman/Gui/General.py:346
+msgid ""
+"(Administrivia filter) Check postings and intercept ones\n"
+" that seem to be administrative requests?"
+msgstr ""
+
+#: Mailman/Gui/General.py:349
+msgid ""
+"Administrivia tests will check postings to see whether it's\n"
+" really meant as an administrative request (like subscribe,\n"
+" unsubscribe, etc), and will add it to the the administrative\n"
+" requests queue, notifying the administrator of the new "
+"request,\n"
+" in the process."
+msgstr ""
+
+#: Mailman/Gui/General.py:356
+msgid ""
+"Maximum length in kilobytes (KB) of a message body. Use 0\n"
+" for no limit."
+msgstr ""
+
+#: Mailman/Gui/General.py:360
+msgid "Host name this list prefers for email."
+msgstr ""
+
+#: Mailman/Gui/General.py:362
+msgid ""
+"The \"host_name\" is the preferred name for email to\n"
+" mailman-related addresses on this host, and generally should "
+"be\n"
+" the mail host's exchanger address, if any. This setting can "
+"be\n"
+" useful for selecting among alternative names of a host that "
+"has\n"
+" multiple addresses."
+msgstr ""
+
+#: Mailman/Gui/General.py:374
+msgid ""
+"Should messages from this mailing list include the\n"
+" <a href=\"http://www.faqs.org/rfcs/rfc2369.html\">RFC 2369</"
+"a>\n"
+" (i.e. <tt>List-*</tt>) headers? <em>Yes</em> is highly\n"
+" recommended."
+msgstr ""
+
+#: Mailman/Gui/General.py:379
+msgid ""
+"RFC 2369 defines a set of List-* headers that are\n"
+" normally added to every message sent to the list "
+"membership.\n"
+" These greatly aid end-users who are using standards "
+"compliant\n"
+" mail readers. They should normally always be enabled.\n"
+"\n"
+" <p>However, not all mail readers are standards compliant "
+"yet,\n"
+" and if you have a large number of members who are using\n"
+" non-compliant mail readers, they may be annoyed at these\n"
+" headers. You should first try to educate your members as "
+"to\n"
+" why these headers exist, and how to hide them in their "
+"mail\n"
+" clients. As a last resort you can disable these headers, "
+"but\n"
+" this is not recommended (and in fact, your ability to "
+"disable\n"
+" these headers may eventually go away)."
+msgstr ""
+
+#: Mailman/Gui/General.py:397
+msgid "Should postings include the <tt>List-Post:</tt> header?"
+msgstr ""
+
+#: Mailman/Gui/General.py:398
+msgid ""
+"The <tt>List-Post:</tt> header is one of the headers\n"
+" recommended by\n"
+" <a href=\"http://www.faqs.org/rfcs/rfc2369.html\">RFC 2369</"
+"a>.\n"
+" However for some <em>announce-only</em> mailing lists, only a\n"
+" very select group of people are allowed to post to the list; "
+"the\n"
+" general membership is usually not allowed to post. For lists "
+"of\n"
+" this nature, the <tt>List-Post:</tt> header is misleading.\n"
+" Select <em>No</em> to disable the inclusion of this header. "
+"(This\n"
+" does not affect the inclusion of the other <tt>List-*:</tt>\n"
+" headers.)"
+msgstr ""
+
+#: Mailman/Gui/General.py:416
+msgid ""
+"<b>real_name</b> attribute not\n"
+" changed! It must differ from the list's name by case\n"
+" only."
+msgstr ""
+"ÁÔÒÉÂÕÔ <b>real_name</b> ÎÅ ÂÙÌ ÉÚÍÅÎÅÎ. ÏÎ ÍÏÖÅÔ ÏÔÌÉÞÁÔØÓÑ ÏÔ ÎÁÚ×ÁÎÉÑ "
+"ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ ÔÏÌØËÏ ÒÅÇÉÓÔÒÏÍ ÂÕË×."
+
+#: Mailman/Gui/General.py:437
+msgid ""
+"You cannot add a Reply-To: to an explicit\n"
+" address if that address is blank. Resetting these values."
+msgstr ""
+"÷Ù ÎÅ ÍÏÖÅÔÅ ÕËÁÚÁÔØ ÐÕÓÔÕÀ ÓÔÒÏËÕ × ËÁÞÅÓÔ×Å ÁÄÒÅÓÁ\n"
+" ÄÌÑ Reply-To. âÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÎÏ ÐÒÅÄÙÄÕÝÅÅ ÚÎÁÞÅÎÉÅ."
+
+#: Mailman/Gui/Language.py:34
+msgid "Language&nbsp;options"
+msgstr "ñÚÙËÏ×ÙÅ&nbsp;ÐÁÒÁÍÅÔÒÙ"
+
+#: Mailman/Gui/Language.py:66
+msgid "Natural language (internationalization) options."
+msgstr ""
+
+#: Mailman/Gui/Language.py:71
+msgid "Default language for this list."
+msgstr "ñÚÙË ÐÏ ÕÍÏÌÞÁÎÉÀ ÄÌÑ ÜÔÏÇÏ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ."
+
+#: Mailman/Gui/Language.py:72
+msgid ""
+"This is the default natural language for this mailing list.\n"
+" If <a href=\"?VARHELP=language/available_languages\">more than "
+"one\n"
+" language</a> is supported then users will be able to select "
+"their\n"
+" own preferences for when they interact with the list. All "
+"other\n"
+" interactions will be conducted in the default language. This\n"
+" applies to both web-based and email-based messages, but not to\n"
+" email posted by list members."
+msgstr ""
+
+#: Mailman/Gui/Language.py:82
+msgid "Languages supported by this list."
+msgstr "ñÚÙËÉ, ÐÏÄÄÅÒÖÉ×ÁÅÍÙÅ ÜÔÉÍ ÓÐÉÓËÏÍ ÒÁÓÓÙÌËÉ."
+
+#: Mailman/Gui/Language.py:84
+msgid ""
+"These are all the natural languages supported by this list.\n"
+" Note that the\n"
+" <a href=\"?VARHELP=language/preferred_language\">default\n"
+" language</a> must be included."
+msgstr ""
+
+#: Mailman/Gui/Language.py:90
+msgid "Always"
+msgstr "÷ÓÅÇÄÁ"
+
+#: Mailman/Gui/Language.py:90
+msgid "As needed"
+msgstr "ðÏ ÎÅÏÂÈÏÄÉÍÏÓÔÉ"
+
+#: Mailman/Gui/Language.py:90
+msgid "Never"
+msgstr "îÉËÏÇÄÁ"
+
+#: Mailman/Gui/Language.py:91
+msgid ""
+"Encode the\n"
+" <a href=\"?VARHELP=general/subject_prefix\">subject\n"
+" prefix</a> even when it consists of only ASCII characters?"
+msgstr ""
+
+#: Mailman/Gui/Language.py:95
+msgid ""
+"If your mailing list's default language uses a non-ASCII\n"
+" character set and the prefix contains non-ASCII characters, "
+"the\n"
+" prefix will always be encoded according to the relevant\n"
+" standards. However, if your prefix contains only ASCII\n"
+" characters, you may want to set this option to <em>Never</em> "
+"to\n"
+" disable prefix encoding. This can make the subject headers\n"
+" slightly more readable for users with mail readers that don't\n"
+" properly handle non-ASCII encodings.\n"
+"\n"
+" <p>Note however, that if your mailing list receives both "
+"encoded\n"
+" and unencoded subject headers, you might want to choose <em>As\n"
+" needed</em>. Using this setting, Mailman will not encode "
+"ASCII\n"
+" prefixes when the rest of the header contains only ASCII\n"
+" characters, but if the original header contains non-ASCII\n"
+" characters, it will encode the prefix. This avoids an "
+"ambiguity\n"
+" in the standards which could cause some mail readers to "
+"display\n"
+" extra, or missing spaces between the prefix and the original\n"
+" header."
+msgstr ""
+
+#: Mailman/Gui/Membership.py:26
+msgid "Membership&nbsp;Management"
+msgstr "õÐÒÁ×ÌÅÎÉÅ&nbsp;ÐÏÄÐÉÓËÏÊ"
+
+#: Mailman/Gui/Membership.py:30
+msgid "Membership&nbsp;List"
+msgstr "óÐÉÓÏË&nbsp;ÐÏÄÐÉÓÞÉËÏ×"
+
+#: Mailman/Gui/Membership.py:31
+msgid "Mass&nbsp;Subscription"
+msgstr "íÁÓÓÏ×ÏÅ&nbsp;ÄÏÂÁ×ÌÅÎÉÅ&nbsp;ÐÏÄÐÉÓÞÉËÏ×"
+
+#: Mailman/Gui/Membership.py:32
+msgid "Mass&nbsp;Removal"
+msgstr "íÁÓÓÏ×ÏÅ&nbsp;ÕÄÁÌÅÎÉÅ&nbsp;ÐÏÄÐÉÓÞÉËÏ×"
+
+#: Mailman/Gui/NonDigest.py:34
+msgid "Non-digest&nbsp;options"
+msgstr "ðÁÒÁÍÅÔÒÙ&nbsp;ÏÂÙÞÎÏÊ&nbsp;ÄÏÓÔÁ×ËÉ"
+
+#: Mailman/Gui/NonDigest.py:42
+msgid "Policies concerning immediately delivered list traffic."
+msgstr ""
+
+#: Mailman/Gui/NonDigest.py:45
+msgid ""
+"Can subscribers choose to receive mail immediately, rather\n"
+" than in batched digests?"
+msgstr ""
+
+#: Mailman/Gui/NonDigest.py:52
+msgid "Full Personalization"
+msgstr ""
+
+#: Mailman/Gui/NonDigest.py:54
+msgid ""
+"Should Mailman personalize each non-digest delivery?\n"
+" This is often useful for announce-only lists, but <a\n"
+" href=\"?VARHELP=nondigest/personalize\">read the details</"
+"a>\n"
+" section for a discussion of important performance\n"
+" issues."
+msgstr ""
+
+#: Mailman/Gui/NonDigest.py:60
+msgid ""
+"Normally, Mailman sends the regular delivery messages to\n"
+" the mail server in batches. This is much more efficent\n"
+" because it reduces the amount of traffic between Mailman "
+"and\n"
+" the mail server.\n"
+"\n"
+" <p>However, some lists can benefit from a more "
+"personalized\n"
+" approach. In this case, Mailman crafts a new message for\n"
+" each member on the regular delivery list. Turning this\n"
+" feature on may degrade the performance of your site, so "
+"you\n"
+" need to carefully consider whether the trade-off is worth "
+"it,\n"
+" or whether there are other ways to accomplish what you "
+"want.\n"
+" You should also carefully monitor your system load to make\n"
+" sure it is acceptable.\n"
+"\n"
+" <p>Select <em>No</em> to disable personalization and send\n"
+" messages to the members in batches. Select <em>Yes</em> "
+"to\n"
+" personalize deliveries and allow additional substitution\n"
+" variables in message headers and footers (see below). In\n"
+" addition, by selecting <em>Full Personalization</em>, the\n"
+" <code>To</code> header of posted messages will be modified "
+"to\n"
+" include the member's address instead of the list's posting\n"
+" address.\n"
+"\n"
+" <p>When personalization is enabled, a few more expansion\n"
+" variables that can be included in the <a\n"
+" href=\"?VARHELP=nondigest/msg_header\">message header</a> "
+"and\n"
+" <a href=\"?VARHELP=nondigest/msg_footer\">message footer</"
+"a>.\n"
+"\n"
+" <p>These additional substitution variables will be "
+"available\n"
+" for your headers and footers, when this feature is "
+"enabled:\n"
+"\n"
+" <ul><li><b>user_address</b> - The address of the user,\n"
+" coerced to lower case.\n"
+" <li><b>user_delivered_to</b> - The case-preserved "
+"address\n"
+" that the user is subscribed with.\n"
+" <li><b>user_password</b> - The user's password.\n"
+" <li><b>user_name</b> - The user's full name.\n"
+" <li><b>user_optionsurl</b> - The url to the user's "
+"option\n"
+" page.\n"
+" </ul>\n"
+" "
+msgstr ""
+
+#: Mailman/Gui/NonDigest.py:108
+msgid "Header added to mail sent to regular list members"
+msgstr ""
+
+#: Mailman/Gui/NonDigest.py:109
+msgid ""
+"Text prepended to the top of every immediately-delivery\n"
+" message. "
+msgstr ""
+
+#: Mailman/Gui/NonDigest.py:114
+msgid "Footer added to mail sent to regular list members"
+msgstr ""
+
+#: Mailman/Gui/NonDigest.py:115
+msgid ""
+"Text appended to the bottom of every immediately-delivery\n"
+" message. "
+msgstr ""
+
+#: Mailman/Gui/Passwords.py:27
+msgid "Passwords"
+msgstr "ðÁÒÏÌÉ"
+
+#: Mailman/Gui/Privacy.py:28
+msgid "Privacy options"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:32
+msgid "Subscription&nbsp;rules"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:33
+msgid "Sender&nbsp;filters"
+msgstr "æÉÌØÔÒÁÃÉÑ&nbsp;ÏÔÐÒÁ×ÉÔÅÌÅÊ"
+
+#: Mailman/Gui/Privacy.py:34
+msgid "Recipient&nbsp;filters"
+msgstr "æÉÌØÔÒÁÃÉÑ&nbsp;ÐÏÌÕÞÁÔÅÌÅÊ"
+
+#: Mailman/Gui/Privacy.py:35
+msgid "Spam&nbsp;filters"
+msgstr "æÉÌØÔÒÁÃÉÑ&nbsp;ÓÐÁÍÁ"
+
+#: Mailman/Gui/Privacy.py:49 Mailman/Gui/Usenet.py:61
+msgid "None"
+msgstr "îÉÞÅÇÏ"
+
+#: Mailman/Gui/Privacy.py:50 Mailman/Gui/Privacy.py:73
+msgid "Confirm"
+msgstr "ðÏÄÔ×ÅÒÄÉÔØ"
+
+#: Mailman/Gui/Privacy.py:51 Mailman/Gui/Privacy.py:74
+msgid "Require approval"
+msgstr "ðÏÌÕÞÉÔØ ÏÄÏÂÒÅÎÉÅ"
+
+#: Mailman/Gui/Privacy.py:52 Mailman/Gui/Privacy.py:75
+msgid "Confirm and approve"
+msgstr "ðÏÄÔ×ÅÒÄÉÔØ É ÐÏÌÕÞÉÔØ ÏÄÏÂÒÅÎÉÅ"
+
+#: Mailman/Gui/Privacy.py:54 Mailman/Gui/Privacy.py:77
+msgid "What steps are required for subscription?<br>"
+msgstr "þÔÏ ÎÅÏÂÈÏÄÉÍÏ, ÞÔÏÂÙ ÐÏÄÐÉÓÁÔØÓÑ?<br>"
+
+#: Mailman/Gui/Privacy.py:55
+msgid ""
+"None - no verification steps (<em>Not\n"
+" Recommended </em>)<br>\n"
+" Confirm (*) - email confirmation step required "
+"<br>\n"
+" Require approval - require list administrator\n"
+" Approval for subscriptions <br>\n"
+" Confirm and approve - both confirm and approve\n"
+" \n"
+" <p>(*) when someone requests a subscription,\n"
+" Mailman sends them a notice with a unique\n"
+" subscription request number that they must reply "
+"to\n"
+" in order to subscribe.<br>\n"
+"\n"
+" This prevents mischievous (or malicious) people\n"
+" from creating subscriptions for others without\n"
+" their consent."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:78
+msgid ""
+"Confirm (*) - email confirmation required <br>\n"
+" Require approval - require list administrator\n"
+" approval for subscriptions <br>\n"
+" Confirm and approve - both confirm and approve\n"
+" \n"
+" <p>(*) when someone requests a subscription,\n"
+" Mailman sends them a notice with a unique\n"
+" subscription request number that they must reply "
+"to\n"
+" in order to subscribe.<br> This prevents\n"
+" mischievous (or malicious) people from creating\n"
+" subscriptions for others without their consent."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:94
+msgid ""
+"This section allows you to configure subscription and\n"
+" membership exposure policy. You can also control whether this\n"
+" list is public or not. See also the\n"
+" <a href=\"%(admin)s/archive\">Archival Options</a> section for\n"
+" separate archive-related privacy settings."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:100
+msgid "Subscribing"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:102
+msgid ""
+"Advertise this list when people ask what lists are on this\n"
+" machine?"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:108
+msgid ""
+"Is the list moderator's approval required for unsubscription\n"
+" requests? (<em>No</em> is recommended)"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:111
+msgid ""
+"When members want to leave a list, they will make an\n"
+" unsubscription request, either via the web or via email.\n"
+" Normally it is best for you to allow open unsubscriptions so "
+"that\n"
+" users can easily remove themselves from mailing lists (they "
+"get\n"
+" really upset if they can't get off lists!).\n"
+"\n"
+" <p>For some lists though, you may want to impose moderator\n"
+" approval before an unsubscription request is processed. "
+"Examples\n"
+" of such lists include a corporate mailing list that all "
+"employees\n"
+" are required to be members of."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:122
+msgid "Ban list"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:124
+msgid ""
+"List of addresses which are banned from membership in this\n"
+" mailing list."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:127
+msgid ""
+"Addresses in this list are banned outright from subscribing\n"
+" to this mailing list, with no further moderation required. "
+"Add\n"
+" addresses one per line; start the line with a ^ character to\n"
+" designate a regular expression match."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:132
+msgid "Membership exposure"
+msgstr "ëÔÏ ÍÏÖÅÔ ×ÉÄÅÔØ, ÞÔÏ ×Ù ÐÏÄÐÉÓÞÉË"
+
+#: Mailman/Gui/Privacy.py:134
+msgid "Anyone"
+msgstr "ËÔÏ ÕÇÏÄÎÏ"
+
+#: Mailman/Gui/Privacy.py:134
+msgid "List admin only"
+msgstr "ÔÏÌØËÏ ÁÄÍÉÎÉÓÔÒÁÔÏÒ ÓÐÉÓËÁ"
+
+#: Mailman/Gui/Privacy.py:134
+msgid "List members"
+msgstr "ÐÏÄÐÉÓÞÉËÉ"
+
+#: Mailman/Gui/Privacy.py:135
+msgid "Who can view subscription list?"
+msgstr "ëÔÏ ÍÏÖÅÔ ÐÒÏÓÍÁÔÒÉ×ÁÔØ ÓÐÉÓÏË ÐÏÄÐÉÓÞÉËÏ×?"
+
+#: Mailman/Gui/Privacy.py:137
+msgid ""
+"When set, the list of subscribers is protected by member or\n"
+" admin password authentication."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:141
+msgid ""
+"Show member addresses so they're not directly recognizable\n"
+" as email addresses?"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:143
+msgid ""
+"Setting this option causes member email addresses to be\n"
+" transformed when they are presented on list web pages (both in\n"
+" text and as links), so they're not trivially recognizable as\n"
+" email addresses. The intention is to prevent the addresses\n"
+" from being snarfed up by automated web scanners for use by\n"
+" spammers."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:153
+msgid ""
+"When a message is posted to the list, a series of\n"
+" moderation steps are take to decide whether the a moderator "
+"must\n"
+" first approve the message or not. This section contains the\n"
+" controls for moderation of both member and non-member postings.\n"
+"\n"
+" <p>Member postings are held for moderation if their\n"
+" <b>moderation flag</b> is turned on. You can control whether\n"
+" member postings are moderated by default or not.\n"
+"\n"
+" <p>Non-member postings can be automatically\n"
+" <a href=\"?VARHELP=privacy/sender/accept_these_nonmembers\"\n"
+" >accepted</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/hold_these_nonmembers\">held "
+"for\n"
+" moderation</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/reject_these_nonmembers\"\n"
+" >rejected</a> (bounced), or\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >discarded</a>,\n"
+" either individually or as a group. Any\n"
+" posting from a non-member who is not explicitly accepted,\n"
+" rejected, or discarded, will have their posting filtered by the\n"
+" <a href=\"?VARHELP=privacy/sender/generic_nonmember_action"
+"\">general\n"
+" non-member rules</a>.\n"
+"\n"
+" <p>In the text boxes below, add one address per line; start the\n"
+" line with a ^ character to designate a <a href=\n"
+" \"http://www.python.org/doc/current/lib/module-re.html\"\n"
+" >Python regular expression</a>. When entering backslashes, do "
+"so\n"
+" as if you were using Python raw strings (i.e. you generally "
+"just\n"
+" use a single backslash).\n"
+"\n"
+" <p>Note that non-regexp matches are always done first."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:186
+msgid "Member filters"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:189
+msgid "By default, should new list member postings be moderated?"
+msgstr "íÏÄÅÒÉÒÏ×ÁÔØ ÓÏÏÂÝÅÎÉÑ ÎÏ×ÙÈ ÐÏÄÐÉÓÞÉËÏ×?"
+
+#: Mailman/Gui/Privacy.py:191
+msgid ""
+"Each list member has a <em>moderation flag</em> which says\n"
+" whether messages from the list member can be posted directly "
+"to\n"
+" the list, or must first be approved by the list moderator. "
+"When\n"
+" the moderation flag is turned on, list member postings must be\n"
+" approved first. You, the list administrator can decide whether "
+"a\n"
+" specific individual's postings will be moderated or not.\n"
+"\n"
+" <p>When a new member is subscribed, their initial moderation "
+"flag\n"
+" takes its value from this option. Turn this option off to "
+"accept\n"
+" member postings by default. Turn this option on to, by "
+"default,\n"
+" moderate member postings first. You can always manually set "
+"an\n"
+" individual member's moderation bit by using the\n"
+" <a href=\"%(adminurl)s/members\">membership management\n"
+" screens</a>."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:207 Mailman/Gui/Privacy.py:281
+msgid "Hold"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:208
+msgid ""
+"Action to take when a moderated member posts to the\n"
+" list."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:210
+msgid ""
+"<ul><li><b>Hold</b> -- this holds the message for approval\n"
+" by the list moderators.\n"
+"\n"
+" <p><li><b>Reject</b> -- this automatically rejects the message "
+"by\n"
+" sending a bounce notice to the post's author. The text of the\n"
+" bounce notice can be <a\n"
+" href=\"?VARHELP=privacy/sender/member_moderation_notice\"\n"
+" >configured by you</a>.\n"
+"\n"
+" <p><li><b>Discard</b> -- this simply discards the message, "
+"with\n"
+" no notice sent to the post's author.\n"
+" </ul>"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:224
+msgid ""
+"Text to include in any\n"
+" <a href=\"?VARHELP/privacy/sender/member_moderation_action\"\n"
+" >rejection notice</a> to\n"
+" be sent to moderated members who post to this list."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:229
+msgid "Non-member filters"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:232
+msgid ""
+"List of non-member addresses whose postings should be\n"
+" automatically accepted."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:235
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" accepted with no further moderation applied. Add member\n"
+" addresses one per line; start the line with a ^ character to\n"
+" designate a regular expression match."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:241
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" immediately held for moderation."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:244
+msgid ""
+"Postings from any of these non-members will be immediately\n"
+" and automatically held for moderation by the list moderators.\n"
+" The sender will receive a notification message which will "
+"allow\n"
+" them to cancel their held message. Add member addresses one "
+"per\n"
+" line; start the line with a ^ character to designate a regular\n"
+" expression match."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:252
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" automatically rejected."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:255
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" rejected. In other words, their messages will be bounced back "
+"to\n"
+" the sender with a notification of automatic rejection. This\n"
+" option is not appropriate for known spam senders; their "
+"messages\n"
+" should be\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >automatically discarded</a>.\n"
+"\n"
+" <p>Add member addresses one per line; start the line with a ^\n"
+" character to designate a regular expression match."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:267
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" automatically discarded."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:270
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" discarded. That is, the message will be thrown away with no\n"
+" further processing or notification. The sender will not "
+"receive\n"
+" a notification or a bounce, however the list moderators can\n"
+" optionally <a href=\"?VARHELP=privacy/sender/"
+"forward_auto_discards\"\n"
+" >receive copies of auto-discarded messages.</a>.\n"
+"\n"
+" <p>Add member addresses one per line; start the line with a ^\n"
+" character to designate a regular expression match."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:282
+msgid ""
+"Action to take for postings from non-members for which no\n"
+" explicit action is defined."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:285
+msgid ""
+"When a post from a non-member is received, the message's\n"
+" sender is matched against the list of explicitly\n"
+" <a href=\"?VARHELP=privacy/sender/accept_these_nonmembers\"\n"
+" >accepted</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/hold_these_nonmembers\">held</"
+"a>,\n"
+" <a href=\"?VARHELP=privacy/sender/reject_these_nonmembers\"\n"
+" >rejected</a> (bounced), and\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >discarded</a> addresses. If no match is found, then this "
+"action\n"
+" is taken."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:297
+msgid ""
+"Should messages from non-members, which are automatically\n"
+" discarded, be forwarded to the list moderator?"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:303
+msgid ""
+"This section allows you to configure various filters based on\n"
+" the recipient of the message."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:306
+msgid "Recipient filters"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:310
+msgid ""
+"Must posts have list named in destination (to, cc) field\n"
+" (or be among the acceptable alias names, specified below)?"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:313
+msgid ""
+"Many (in fact, most) spams do not explicitly name their\n"
+" myriad destinations in the explicit destination addresses - in\n"
+" fact often the To: field has a totally bogus address for\n"
+" obfuscation. The constraint applies only to the stuff in the\n"
+" address before the '@' sign, but still catches all such spams.\n"
+"\n"
+" <p>The cost is that the list will not accept unhindered any\n"
+" postings relayed from other addresses, unless\n"
+"\n"
+" <ol>\n"
+" <li>The relaying address has the same name, or\n"
+"\n"
+" <li>The relaying address name is included on the options "
+"that\n"
+" specifies acceptable aliases for the list.\n"
+"\n"
+" </ol>"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:331
+msgid ""
+"Alias names (regexps) which qualify as explicit to or cc\n"
+" destination names for this list."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:334
+msgid ""
+"Alternate addresses that are acceptable when\n"
+" `require_explicit_destination' is enabled. This option takes "
+"a\n"
+" list of regular expressions, one per line, which is matched\n"
+" against every recipient address in the message. The matching "
+"is\n"
+" performed with Python's re.match() function, meaning they are\n"
+" anchored to the start of the string.\n"
+" \n"
+" <p>For backwards compatibility with Mailman 1.1, if the regexp\n"
+" does not contain an `@', then the pattern is matched against "
+"just\n"
+" the local part of the recipient address. If that match fails, "
+"or\n"
+" if the pattern does contain an `@', then the pattern is "
+"matched\n"
+" against the entire recipient address.\n"
+" \n"
+" <p>Matching against the local part is deprecated; in a future\n"
+" release, the pattern will always be matched against the entire\n"
+" recipient address."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:352
+msgid "Ceiling on acceptable number of recipients for a posting."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:354
+msgid ""
+"If a posting has this number, or more, of recipients, it is\n"
+" held for admin approval. Use 0 for no ceiling."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:359
+msgid ""
+"This section allows you to configure various anti-spam\n"
+" filters posting filters, which can help reduce the amount of "
+"spam\n"
+" your list members end up receiving.\n"
+" "
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:364
+msgid "Anti-Spam filters"
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:367
+msgid "Hold posts with header value matching a specified regexp."
+msgstr ""
+
+#: Mailman/Gui/Privacy.py:368
+msgid ""
+"Use this option to prohibit posts according to specific\n"
+" header values. The target value is a regular-expression for\n"
+" matching against the specified header. The match is done\n"
+" disregarding letter case. Lines beginning with '#' are "
+"ignored\n"
+" as comments.\n"
+"\n"
+" <p>For example:<pre>to: .*@public.com </pre> says to hold all\n"
+" postings with a <em>To:</em> mail header containing '@public."
+"com'\n"
+" anywhere among the addresses.\n"
+"\n"
+" <p>Note that leading whitespace is trimmed from the regexp. "
+"This\n"
+" can be circumvented in a number of ways, e.g. by escaping or\n"
+" bracketing it."
+msgstr ""
+
+#: Mailman/Gui/Topics.py:28
+msgid "Topics"
+msgstr ""
+
+#: Mailman/Gui/Topics.py:36
+msgid "List topic keywords"
+msgstr ""
+
+#: Mailman/Gui/Topics.py:38
+msgid "Disabled"
+msgstr ""
+
+#: Mailman/Gui/Topics.py:38
+msgid "Enabled"
+msgstr ""
+
+#: Mailman/Gui/Topics.py:39
+msgid "Should the topic filter be enabled or disabled?"
+msgstr ""
+
+#: Mailman/Gui/Topics.py:41
+msgid ""
+"The topic filter categorizes each incoming email message\n"
+" according to <a\n"
+" href=\"http://www.python.org/doc/current/lib/module-re.html"
+"\">regular\n"
+" expression filters</a> you specify below. If the message's\n"
+" <code>Subject:</code> or <code>Keywords:</code> header contains "
+"a\n"
+" match against a topic filter, the message is logically placed\n"
+" into a topic <em>bucket</em>. Each user can then choose to "
+"only\n"
+" receive messages from the mailing list for a particular topic\n"
+" bucket (or buckets). Any message not categorized in a topic\n"
+" bucket registered with the user is not delivered to the list.\n"
+"\n"
+" <p>Note that this feature only works with regular delivery, "
+"not\n"
+" digest delivery.\n"
+"\n"
+" <p>The body of the message can also be optionally scanned for\n"
+" <code>Subject:</code> and <code>Keywords:</code> headers, as\n"
+" specified by the <a\n"
+" href=\"?VARHELP=topics/topics_bodylines_limit"
+"\">topics_bodylines_limit</a>\n"
+" configuration variable."
+msgstr ""
+
+#: Mailman/Gui/Topics.py:62
+msgid "How many body lines should the topic matcher scan?"
+msgstr ""
+
+#: Mailman/Gui/Topics.py:64
+msgid ""
+"The topic matcher will scan this many lines of the message\n"
+" body looking for topic keyword matches. Body scanning stops "
+"when\n"
+" either this many lines have been looked at, or a non-header-"
+"like\n"
+" body line is encountered. By setting this value to zero, no "
+"body\n"
+" lines will be scanned (i.e. only the <code>Keywords:</code> "
+"and\n"
+" <code>Subject:</code> headers will be scanned). By setting "
+"this\n"
+" value to a negative number, then all body lines will be "
+"scanned\n"
+" until a non-header-like line is encountered.\n"
+" "
+msgstr ""
+
+#: Mailman/Gui/Topics.py:75
+msgid "Topic keywords, one per line, to match against each message."
+msgstr ""
+
+#: Mailman/Gui/Topics.py:77
+msgid ""
+"Each topic keyword is actually a regular expression, which is\n"
+" matched against certain parts of a mail message, specifically "
+"the\n"
+" <code>Keywords:</code> and <code>Subject:</code> message "
+"headers.\n"
+" Note that the first few lines of the body of the message can "
+"also\n"
+" contain a <code>Keywords:</code> and <code>Subject:</code>\n"
+" \"header\" on which matching is also performed."
+msgstr ""
+
+#: Mailman/Gui/Topics.py:116
+msgid ""
+"Topic specifications require both a name and\n"
+" a pattern. Incomplete topics will be ignored."
+msgstr ""
+
+#: Mailman/Gui/Topics.py:124
+msgid ""
+"The topic pattern `%(pattern)s' is not a\n"
+" legal regular expression. It will be discarded."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:25
+msgid "Mail&lt;-&gt;News&nbsp;gateways"
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:35
+msgid "Mail-to-News and News-to-Mail gateway services."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:37
+msgid "News server settings"
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:40
+msgid ""
+"The Internet address of the machine your News server is\n"
+" running on."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:42
+msgid ""
+"The News server is not part of Mailman proper. You have to\n"
+" already have access to a NNTP server, and that NNTP server has "
+"to\n"
+" recognize the machine this mailing list runs on as a machine\n"
+" capable of reading and posting news."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:48
+msgid "The name of the Usenet group to gateway to and/or from."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:51
+msgid ""
+"Should new posts to the mailing list be sent to the\n"
+" newsgroup?"
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:55
+msgid ""
+"Should new posts to the newsgroup be sent to the mailing\n"
+" list?"
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:58
+msgid "Forwarding options"
+msgstr "ðÁÒÁÍÅÔÒÙ ÐÅÒÅÓÙÌËÉ"
+
+#: Mailman/Gui/Usenet.py:61
+msgid "Moderated"
+msgstr "íÏÄÅÒÉÒÕÅÍÁÑ"
+
+#: Mailman/Gui/Usenet.py:61
+msgid "Open list, moderated group"
+msgstr "ïÔËÒÙÔÙÊ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ, ÍÏÄÅÒÉÒÕÅÍÁÑ ÇÒÕÐÐÁ"
+
+#: Mailman/Gui/Usenet.py:64
+msgid "The moderation policy of the newsgroup."
+msgstr "ðÏÌÉÔÉËÁ ÍÏÄÅÒÉÒÏ×ÁÎÉÑ ÄÌÑ ÇÒÕÐÐÙ ÎÏ×ÏÓÔÅÊ."
+
+#: Mailman/Gui/Usenet.py:66
+msgid ""
+"This setting determines the moderation policy of the\n"
+" newsgroup and its interaction with the moderation policy of "
+"the\n"
+" mailing list. This only applies to the newsgroup that you are\n"
+" gatewaying <em>to</em>, so if you are only gatewaying from\n"
+" Usenet, or the newsgroup you are gatewaying to is not "
+"moderated,\n"
+" set this option to <em>None</em>.\n"
+"\n"
+" <p>If the newsgroup is moderated, you can set this mailing "
+"list\n"
+" up to be the moderation address for the newsgroup. By "
+"selecting\n"
+" <em>Moderated</em>, an additional posting hold will be placed "
+"in\n"
+" the approval process. All messages posted to the mailing list\n"
+" will have to be approved before being sent on to the "
+"newsgroup,\n"
+" or to the mailing list membership.\n"
+"\n"
+" <p><em>Note that if the message has an <tt>Approved</tt> "
+"header\n"
+" with the list's administrative password in it, this hold test\n"
+" will be bypassed, allowing privileged posters to send messages\n"
+" directly to the list and the newsgroup.</em>\n"
+"\n"
+" <p>Finally, if the newsgroup is moderated, but you want to "
+"have\n"
+" an open posting policy anyway, you should select <em>Open "
+"list,\n"
+" moderated group</em>. The effect of this is to use the normal\n"
+" Mailman moderation facilities, but to add an <tt>Approved</tt>\n"
+" header to all messages that are gatewayed to Usenet."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:92
+msgid "Prefix <tt>Subject:</tt> headers on postings gated to news?"
+msgstr "äÏÂÁ×ÌÑÔØ ÐÒÅÆÉËÓ × ÐÏÌÅ <tt>ôÅÍÁ:</tt> ÐÒÉ ÇÅÊÔÏ×ÁÎÉÉ ÓÏÏÂÝÅÎÉÑ?"
+
+#: Mailman/Gui/Usenet.py:93
+msgid ""
+"Mailman prefixes <tt>Subject:</tt> headers with\n"
+" <a href=\"?VARHELP=general/subject_prefix\">text you can\n"
+" customize</a> and normally, this prefix shows up in messages\n"
+" gatewayed to Usenet. You can set this option to <em>No</em> "
+"to\n"
+" disable the prefix on gated messages. Of course, if you turn "
+"off\n"
+" normal <tt>Subject:</tt> prefixes, they won't be prefixed for\n"
+" gated messages either."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:101
+msgid "Mass catch up"
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:104
+msgid "Should Mailman perform a <em>catchup</em> on the newsgroup?"
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:105
+msgid ""
+"When you tell Mailman to perform a catchup on the newsgroup,\n"
+" this means that you want to start gating messages to the "
+"mailing\n"
+" list with the next new message found. All earlier messages on\n"
+" the newsgroup will be ignored. This is as if you were reading\n"
+" the newsgroup yourself, and you marked all current messages as\n"
+" <em>read</em>. By catching up, your mailing list members will\n"
+" not see any of the earlier messages."
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:119
+msgid "Mass catchup completed"
+msgstr ""
+
+#: Mailman/Gui/Usenet.py:131
+msgid ""
+"You cannot enable gatewaying unless both the\n"
+" <a href=\"?VARHELP=gateway/nntp_host\">news server field</a> "
+"and\n"
+" the <a href=\"?VARHELP=gateway/linked_newsgroup\">linked\n"
+" newsgroup</a> fields are filled in."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:47
+msgid "%(listinfo_link)s list run by %(owner_link)s"
+msgstr "ÁÄÍÉÎÉÓÔÒÁÔÏÒÙ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ %(listinfo_link)s: %(owner_link)s"
+
+#: Mailman/HTMLFormatter.py:55
+msgid "%(realname)s administrative interface"
+msgstr "ÉÎÔÅÒÆÅÊÓ ÁÄÍÉÎÉÓÔÒÁÔÏÒÁ ÄÌÑ %(realname)s"
+
+#: Mailman/HTMLFormatter.py:56
+msgid " (requires authorization)"
+msgstr " (ÔÒÅÂÕÅÔ ÁÕÔÅÎÔÉÆÉËÁÃÉÉ)"
+
+#: Mailman/HTMLFormatter.py:59
+msgid "Overview of all %(hostname)s mailing lists"
+msgstr "óÐÉÓËÉ ÒÁÓÓÙÌËÉ, ÒÁÓÐÏÌÏÖÅÎÎÙÅ ÎÁ %(hostname)s"
+
+#: Mailman/HTMLFormatter.py:80
+msgid "<em>(1 private member not shown)</em>"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:82
+msgid "<em>(%(num_concealed)d private members not shown)</em>"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:137
+msgid "; it was disabled by you"
+msgstr " (ÐÏ ×ÁÛÅÍÕ ÓÏÂÓÔ×ÅÎÎÏÍÕ ÚÁÐÒÏÓÕ)"
+
+#: Mailman/HTMLFormatter.py:139
+msgid "; it was disabled by the list administrator"
+msgstr " (ÐÏ ÒÅÛÅÎÉÀ ÁÄÍÉÎÉÓÔÒÁÔÏÒÁ)"
+
+#: Mailman/HTMLFormatter.py:143
+msgid ""
+"; it was disabled due to excessive bounces. The\n"
+" last bounce was received on %(date)s"
+msgstr ""
+" (ÄÏÓÔÁ×ËÁ ÚÁÂÌÏËÉÒÏ×ÁÎÁ × ÓÌÅÄÓÔ×ÉÅ ÂÏÌØÛÏÇÏ ËÏÌÉÞÅÓÔ×Á ÏÛÉÂÏË, ×ÏÚÎÉËÛÉÈ "
+"ÐÒÉ ÄÏÓÔÁ×ËÅ ÓÏÏÂÝÅÎÉÊ; ÐÏÓÌÅÄÎÑÑ ÏÛÉÂËÁ ÂÙÌÁ ÐÏÌÕÞÅÎÁ %(date)s"
+
+#: Mailman/HTMLFormatter.py:146
+msgid "; it was disabled for unknown reasons"
+msgstr " (ÐÒÉÞÉÎÁ ÎÅÉÚ×ÅÓÔÎÁ)"
+
+#: Mailman/HTMLFormatter.py:148
+msgid "Note: your list delivery is currently disabled%(reason)s."
+msgstr "÷ÎÉÍÁÎÉÅ: ÄÏÓÔÁ×ËÁ ×ÁÍ ÒÁÓÓÙÌËÉ ÐÒÉÏÓÔÁÎÏ×ÌÅÎÁ%(reason)s."
+
+#: Mailman/HTMLFormatter.py:151
+msgid "Mail delivery"
+msgstr "äÏÓÔÁ×ËÁ ÐÏÞÔÙ"
+
+#: Mailman/HTMLFormatter.py:153 Mailman/HTMLFormatter.py:298
+msgid "the list administrator"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:154
+msgid ""
+"<p>%(note)s\n"
+"\n"
+" <p>You may have disabled list delivery intentionally,\n"
+" or it may have been triggered by bounces from your email\n"
+" address. In either case, to re-enable delivery, change the\n"
+" %(link)s option below. Contact %(mailto)s if you have any\n"
+" questions or need assistance."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:166
+msgid ""
+"<p>We have received some recent bounces from your\n"
+" address. Your current <em>bounce score</em> is %(score)s out of "
+"a\n"
+" maximum of %(total)s. Please double check that your subscribed\n"
+" address is correct and that there are no problems with delivery "
+"to\n"
+" this address. Your bounce score will be automatically reset if\n"
+" the problems are corrected soon."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:178
+msgid ""
+"(Note - you are subscribing to a list of mailing lists, so the %(type)s "
+"notice will be sent to the admin address for your membership, %(addr)s.)<p>"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:188
+msgid ""
+"You will be sent email requesting confirmation, to\n"
+" prevent others from gratuitously subscribing you."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:191
+msgid ""
+"This is a closed list, which means your subscription\n"
+" will be held for approval. You will be notified of the list\n"
+" moderator's decision by email."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:194 Mailman/HTMLFormatter.py:201
+msgid "also "
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:196
+msgid ""
+"You will be sent email requesting confirmation, to\n"
+" prevent others from gratuitously subscribing you. Once\n"
+" confirmation is received, your request will be held for "
+"approval\n"
+" by the list moderator. You will be notified of the moderator's\n"
+" decision by email."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:205
+msgid ""
+"This is %(also)sa private list, which means that the\n"
+" list of members is not available to non-members."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:208
+msgid ""
+"This is %(also)sa hidden list, which means that the\n"
+" list of members is available only to the list administrator."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:211
+msgid ""
+"This is %(also)sa public list, which means that the\n"
+" list of members list is available to everyone."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:214
+msgid ""
+" (but we obscure the addresses so they are not\n"
+" easily recognizable by spammers)."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:219
+msgid ""
+"<p>(Note that this is an umbrella list, intended to\n"
+" have only other mailing lists as members. Among other things,\n"
+" this means that your confirmation request will be sent to the\n"
+" `%(sfx)s' account for your address.)"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:248
+msgid "<b><i>either</i></b> "
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:253
+msgid ""
+"To unsubscribe from %(realname)s, get a password reminder,\n"
+" or change your subscription options %(either)senter your "
+"subscription\n"
+" email address:\n"
+" <p><center> "
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:260
+msgid "Unsubscribe or edit options"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:264
+msgid ""
+"<p>... <b><i>or</i></b> select your entry from\n"
+" the subscribers list (see above)."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:266
+msgid ""
+" If you leave the field blank, you will be prompted for\n"
+" your email address"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:274
+msgid ""
+"(<i>%(which)s is only available to the list\n"
+" members.</i>)"
+msgstr "(<i>%(which)s ÄÏÓÔÕÐÅÎ ÔÏÌØËÏ ÐÏÄÐÉÓÞÉËÁÍ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ.</i>)"
+
+#: Mailman/HTMLFormatter.py:278
+msgid ""
+"(<i>%(which)s is only available to the list\n"
+" administrator.</i>)"
+msgstr "(<i>%(which)s ÄÏÓÔÕÐÅÎ ÔÏÌØËÏ ÁÄÍÉÎÉÓÔÒÁÔÏÒÕ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ.</i>)"
+
+#: Mailman/HTMLFormatter.py:288
+msgid "Click here for the list of "
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:290
+msgid " subscribers: "
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:292
+msgid "Visit Subscriber list"
+msgstr "óÐÉÓÏË ÐÏÄÐÉÓÞÉËÏ×"
+
+#: Mailman/HTMLFormatter.py:295
+msgid "members"
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:296
+msgid "Address:"
+msgstr "áÄÒÅÓ:"
+
+#: Mailman/HTMLFormatter.py:299
+msgid "Admin address:"
+msgstr "áÄÒÅÓ ÁÄÍÉÎÉÓÔÒÁÔÏÒÁ:"
+
+#: Mailman/HTMLFormatter.py:302
+msgid "The subscribers list"
+msgstr "óÐÉÓÏË ÐÏÄÐÉÓÞÉËÏ×"
+
+#: Mailman/HTMLFormatter.py:304
+msgid " <p>Enter your "
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:306
+msgid " and password to visit the subscribers list: <p><center> "
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:311
+msgid "Password: "
+msgstr "ðÁÒÏÌØ: "
+
+#: Mailman/HTMLFormatter.py:315
+msgid "Visit Subscriber List"
+msgstr "óÐÉÓÏË ÐÏÄÐÉÓÞÉËÏ×"
+
+#: Mailman/HTMLFormatter.py:345
+msgid "Once a month, your password will be emailed to you as a reminder."
+msgstr ""
+
+#: Mailman/HTMLFormatter.py:391
+msgid "The current archive"
+msgstr "ôÅËÕÝÉÊ ÁÒÈÉ×"
+
+#: Mailman/Handlers/Acknowledge.py:59
+msgid "%(realname)s post acknowledgement"
+msgstr ""
+
+#: Mailman/Handlers/CalcRecips.py:68
+msgid ""
+"Your urgent message to the %(realname)s mailing list was not authorized for\n"
+"delivery. The original message as received by Mailman is attached.\n"
+msgstr ""
+
+#: Mailman/Handlers/Emergency.py:29
+msgid "Emergency hold on all list traffic is in effect"
+msgstr ""
+
+#: Mailman/Handlers/Emergency.py:30 Mailman/Handlers/Hold.py:58
+msgid "Your message was deemed inappropriate by the moderator."
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:53
+msgid "Sender is explicitly forbidden"
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:54
+msgid "You are forbidden from posting messages to this list."
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:57
+msgid "Post to moderated list"
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:61
+msgid "Post by non-member to a members-only list"
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:62
+msgid "Non-members are not allowed to post messages to this list."
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:65
+msgid "Posting to a restricted list by sender requires approval"
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:66
+msgid "This list is restricted; your message was not approved."
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:69
+msgid "Too many recipients to the message"
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:70
+msgid "Please trim the recipient list; it is too long."
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:73
+msgid "Message has implicit destination"
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:74
+msgid ""
+"Blind carbon copies or other implicit destinations are\n"
+"not allowed. Try reposting your message by explicitly including the list\n"
+"address in the To: or Cc: fields."
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:79
+msgid "Message may contain administrivia"
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:84
+msgid ""
+"Please do *not* post administrative requests to the mailing\n"
+"list. If you wish to subscribe, visit %(listurl)s or send a message with "
+"the\n"
+"word `help' in it to the request address, %(request)s, for further\n"
+"instructions."
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:90
+msgid "Message has a suspicious header"
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:91
+msgid "Your message had a suspicious header."
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:101
+msgid ""
+"Message body is too big: %(size)d bytes with a limit of\n"
+"%(limit)d KB"
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:106
+msgid ""
+"Your message was too big; please trim it to less than\n"
+"%(kb)d KB in size."
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:110
+msgid "Posting to a moderated newsgroup"
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:233
+msgid "Your message to %(listname)s awaits moderator approval"
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:253
+msgid "%(listname)s post from %(sender)s requires approval"
+msgstr ""
+
+#: Mailman/Handlers/Hold.py:260
+msgid ""
+"If you reply to this message, keeping the Subject: header intact, Mailman "
+"will\n"
+"discard the held message. Do this if the message is spam. If you reply to\n"
+"this message and include an Approved: header with the list password in it, "
+"the\n"
+"message will be approved for posting to the list. The Approved: header can\n"
+"also appear in the first line of the body of the reply."
+msgstr ""
+
+#: Mailman/Handlers/MimeDel.py:56
+msgid "The message's content type was explicitly disallowed"
+msgstr ""
+
+#: Mailman/Handlers/MimeDel.py:61
+msgid "The message's content type was not explicitly allowed"
+msgstr ""
+
+#: Mailman/Handlers/MimeDel.py:73
+msgid "After content filtering, the message was empty"
+msgstr ""
+
+#: Mailman/Handlers/MimeDel.py:208
+msgid ""
+"The attached message matched the %(listname)s mailing list's content "
+"filtering\n"
+"rules and was prevented from being forwarded on to the list membership. "
+"You\n"
+"are receiving the only remaining copy of the discarded message.\n"
+"\n"
+msgstr ""
+
+#: Mailman/Handlers/MimeDel.py:214
+msgid "Content filtered message notification"
+msgstr ""
+
+#: Mailman/Handlers/Moderate.py:138
+msgid ""
+"You are not allowed to post to this mailing list, and your message has been\n"
+"automatically rejected. If you think that your messages are being rejected "
+"in\n"
+"error, contact the mailing list owner at %(listowner)s."
+msgstr ""
+
+#: Mailman/Handlers/Moderate.py:153
+msgid "Auto-discard notification"
+msgstr ""
+
+#: Mailman/Handlers/Moderate.py:156
+msgid "The attached message has been automatically discarded."
+msgstr "÷ÌÏÖÅÎÎÏÅ ÓÏÏÂÝÅÎÉÅ ÂÙÌÏ Á×ÔÏÍÁÔÉÞÅÓËÉ ÕÄÁÌÅÎÏ"
+
+#: Mailman/Handlers/Replybot.py:74
+msgid "Auto-response for your message to "
+msgstr ""
+
+#: Mailman/Handlers/Replybot.py:75
+msgid "the \"%(realname)s\" mailing list"
+msgstr ""
+
+#: Mailman/Handlers/Replybot.py:107
+msgid "The Mailman Replybot"
+msgstr ""
+
+#: Mailman/Handlers/Scrubber.py:148
+msgid "HTML attachment scrubbed and removed"
+msgstr ""
+
+#: Mailman/Handlers/Scrubber.py:162 Mailman/Handlers/Scrubber.py:188
+msgid ""
+"An HTML attachment was scrubbed...\n"
+"URL: %(url)s\n"
+msgstr ""
+
+#: Mailman/Handlers/Scrubber.py:201
+msgid "no subject"
+msgstr "ÂÅÚ ÔÅÍÙ"
+
+#: Mailman/Handlers/Scrubber.py:202
+msgid "no date"
+msgstr "ÂÅÚ ÄÁÔÙ"
+
+#: Mailman/Handlers/Scrubber.py:203
+msgid "unknown sender"
+msgstr "ÎÅÉÚ×ÅÓÔÎÙÊ ÏÔÐÒÁ×ÉÔÅÌØ"
+
+#: Mailman/Handlers/Scrubber.py:205
+msgid ""
+"An embedded message was scrubbed...\n"
+"From: %(who)s\n"
+"Subject: %(subject)s\n"
+"Date: %(date)s\n"
+"Size: %(size)s\n"
+"Url: %(url)s\n"
+msgstr ""
+
+#: Mailman/Handlers/Scrubber.py:228
+msgid ""
+"A non-text attachment was scrubbed...\n"
+"Name: %(filename)s\n"
+"Type: %(ctype)s\n"
+"Size: %(size)d bytes\n"
+"Desc: %(desc)s\n"
+"Url : %(url)s\n"
+msgstr ""
+
+#: Mailman/Handlers/Scrubber.py:258
+msgid "Skipped content of type %(partctype)s"
+msgstr ""
+
+#: Mailman/Handlers/Scrubber.py:275
+msgid "-------------- next part --------------\n"
+msgstr ""
+
+#: Mailman/Handlers/ToDigest.py:141
+msgid "%(realname)s Digest, Vol %(volume)d, Issue %(issue)d"
+msgstr ""
+"äÁÊÄÖÅÓÔ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ %(realname)s; ÔÏÍ %(volume)d, ×ÙÐÕÓË %(issue)d"
+
+#: Mailman/Handlers/ToDigest.py:181
+msgid "digest header"
+msgstr ""
+
+#: Mailman/Handlers/ToDigest.py:184
+msgid "Digest Header"
+msgstr ""
+
+#: Mailman/Handlers/ToDigest.py:197
+msgid "Today's Topics:\n"
+msgstr ""
+
+#: Mailman/Handlers/ToDigest.py:267
+msgid "Today's Topics (%(msgcount)d messages)"
+msgstr ""
+
+#: Mailman/Handlers/ToDigest.py:292
+msgid "digest footer"
+msgstr ""
+
+#: Mailman/Handlers/ToDigest.py:295
+msgid "Digest Footer"
+msgstr ""
+
+#: Mailman/Handlers/ToDigest.py:309
+msgid "End of "
+msgstr ""
+
+#: Mailman/ListAdmin.py:307
+msgid "Posting of your message titled \"%(subject)s\""
+msgstr ""
+
+#: Mailman/ListAdmin.py:346
+msgid "Forward of moderated message"
+msgstr ""
+
+#: Mailman/ListAdmin.py:405
+msgid "New subscription request to list %(realname)s from %(addr)s"
+msgstr ""
+
+#: Mailman/ListAdmin.py:428
+msgid "Subscription request"
+msgstr "úÁÐÒÏÓ ÎÁ ÐÏÄÐÉÓËÕ"
+
+#: Mailman/ListAdmin.py:458
+msgid "New unsubscription request from %(realname)s by %(addr)s"
+msgstr ""
+
+#: Mailman/ListAdmin.py:481
+msgid "Unsubscription request"
+msgstr "úÁÐÒÏÓ ÎÁ ÕÄÁÌÅÎÉÅ ÐÏÄÐÉÓËÉ"
+
+#: Mailman/ListAdmin.py:512
+msgid "Original Message"
+msgstr ""
+
+#: Mailman/ListAdmin.py:515
+msgid "Request to mailing list %(realname)s rejected"
+msgstr ""
+
+#: Mailman/MTA/Manual.py:57
+msgid ""
+"The mailing list `%(listname)s' has been created via the through-the-web\n"
+"interface. In order to complete the activation of this mailing list, the\n"
+"proper /etc/aliases (or equivalent) file must be updated. The program\n"
+"`newaliases' may also have to be run.\n"
+"\n"
+"Here are the entries for the /etc/aliases file:\n"
+msgstr ""
+
+#: Mailman/MTA/Manual.py:67
+msgid ""
+"\n"
+"To finish creating your mailing list, you must edit your /etc/aliases (or\n"
+"equivalent) file by adding the following lines, and possibly running the\n"
+"`newaliases' program:\n"
+"\n"
+"## %(listname)s mailing list"
+msgstr ""
+"\n"
+"äÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÚÁ×ÅÒÛÉÔØ ÐÒÏÃÅÓÓ ÓÏÚÄÁÎÉÑ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ ×ÁÍ ÎÅÏÂÈÏÄÉÍÏ\n"
+"ÄÏÂÁ×ÉÔØ × ×ÁÛ ÆÁÊÌ /etc/aliases (ÉÌÉ ×ÙÐÏÌÎÑÀÝÅÍ ÁÎÁÌÏÇÉÞÎÙÅ ÆÕÎËÃÉÉ)\n"
+"ÓÌÅÄÕÀÝÉÅ ÓÔÒÏËÉ, Á ÚÁÔÅÍ ÚÁÐÕÓÔÉÔØ ÐÒÏÇÒÁÍÍÕ 'newaliases'.\n"
+"\n"
+"## ÓÐÉÓÏË ÒÁÓÓÙÌËÉ %(listname)s"
+
+#: Mailman/MTA/Manual.py:88
+msgid "Mailing list creation request for list %(listname)s"
+msgstr ""
+
+#: Mailman/MTA/Manual.py:103
+msgid ""
+"The mailing list `%(listname)s' has been removed via the through-the-web\n"
+"interface. In order to complete the de-activation of this mailing list, "
+"the\n"
+"appropriate /etc/aliases (or equivalent) file must be updated. The program\n"
+"`newaliases' may also have to be run.\n"
+"\n"
+"Here are the entries in the /etc/aliases file that should be removed:\n"
+msgstr ""
+
+#: Mailman/MTA/Manual.py:113
+msgid ""
+"\n"
+"To finish removing your mailing list, you must edit your /etc/aliases (or\n"
+"equivalent) file by removing the following lines, and possibly running the\n"
+"`newaliases' program:\n"
+"\n"
+"## %(listname)s mailing list"
+msgstr ""
+"\n"
+"äÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÚÁ×ÅÒÛÉÔØ ÐÒÏÃÅÓÓ ÕÄÁÌÅÎÉÑ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ ×ÁÍ ÎÅÏÂÈÏÄÉÍÏ\n"
+"ÕÄÁÌÉÔØ × ÆÁÊÌÅ /etc/aliases (ÉÌÉ ×ÙÐÏÌÎÑÀÝÅÍ ÁÎÁÌÏÇÉÞÎÙÅ ÆÕÎËÃÉÉ) "
+"ÓÌÅÄÕÀÝÉÅ\n"
+"ÓÔÒÏËÉ, Á ÚÁÔÅÍ ÚÁÐÕÓÔÉÔØ ÐÒÏÇÒÁÍÍÕ 'newaliases'.\n"
+"\n"
+"## ÓÐÉÓÏË ÒÁÓÓÙÌËÉ %(listname)s"
+
+#: Mailman/MTA/Manual.py:132
+msgid "Mailing list removal request for list %(listname)s"
+msgstr ""
+
+#: Mailman/MTA/Postfix.py:300
+msgid "checking permissions on %(file)s"
+msgstr "ÐÒÏ×ÅÒÑÅÔÓÑ ÒÅÖÉÍ ÄÏÓÔÕÐÁ Ë %(files)s"
+
+#: Mailman/MTA/Postfix.py:310
+msgid "%(file)s permissions must be 066x (got %(octmode)s)"
+msgstr "ÒÅÖÉÍ ÄÏÓÔÕÐÁ Ë %(file)s ÄÏÌÖÅÎ ÂÙÔØ 066x (Á ÎÅ %(octmode)s)"
+
+#: Mailman/MTA/Postfix.py:312 Mailman/MTA/Postfix.py:339 bin/check_perms:100
+#: bin/check_perms:122 bin/check_perms:132 bin/check_perms:143
+#: bin/check_perms:162 bin/check_perms:180 bin/check_perms:200
+#: bin/check_perms:224 bin/check_perms:244 bin/check_perms:258
+#: bin/check_perms:278 bin/check_perms:315
+msgid "(fixing)"
+msgstr ""
+
+#: Mailman/MTA/Postfix.py:328
+msgid "checking ownership of %(dbfile)s"
+msgstr ""
+
+#: Mailman/MTA/Postfix.py:336
+msgid "%(dbfile)s owned by %(owner)s (must be owned by %(user)s"
+msgstr ""
+
+#: Mailman/MailList.py:697
+msgid "You have been invited to join the %(listname)s mailing list"
+msgstr ""
+
+#: Mailman/MailList.py:801 Mailman/MailList.py:1157
+msgid " from %(remote)s"
+msgstr ""
+
+#: Mailman/MailList.py:835
+msgid "subscriptions to %(realname)s require moderator approval"
+msgstr "ÐÏÄÐÉÓËÁ ÎÁ %(realname)s ÔÒÅÂÕÅÔ ÐÏÄÔ×ÅÒÖÄÅÎÉÑ ÍÏÄÅÒÁÔÏÒÁ"
+
+#: Mailman/MailList.py:894 bin/add_members:281
+msgid "%(realname)s subscription notification"
+msgstr ""
+
+#: Mailman/MailList.py:909
+msgid "unsubscriptions require moderator approval"
+msgstr "ÕÄÁÌÅÎÉÅ ÐÏÄÐÉÓËÉ ÔÒÅÂÕÅÔ ÐÏÄÔ×ÅÒÖÄÅÎÉÑ ÍÏÄÅÒÁÔÏÒÁ"
+
+#: Mailman/MailList.py:928
+msgid "%(realname)s unsubscribe notification"
+msgstr ""
+
+#: Mailman/MailList.py:1072
+msgid "subscriptions to %(name)s require administrator approval"
+msgstr "ÐÏÄÐÉÓËÁ ÎÁ %(name)s ÔÒÅÂÕÅÔ ÏÄÏÂÒÅÎÉÑ ÁÄÍÉÎÉÓÔÒÁÔÏÒÁ"
+
+#: Mailman/MailList.py:1326
+msgid "Last autoresponse notification for today"
+msgstr ""
+
+#: Mailman/Queue/BounceRunner.py:179
+msgid ""
+"The attached message was received as a bounce, but either the bounce format\n"
+"was not recognized, or no member addresses could be extracted from it. "
+"This\n"
+"mailing list has been configured to send all unrecognized bounce messages "
+"to\n"
+"the list administrator(s).\n"
+"\n"
+"For more information see:\n"
+"%(adminurl)s\n"
+"\n"
+msgstr ""
+
+#: Mailman/Queue/BounceRunner.py:189
+msgid "Uncaught bounce notification"
+msgstr ""
+
+#: Mailman/Queue/CommandRunner.py:74
+msgid "Ignoring non-text/plain MIME parts"
+msgstr ""
+
+#: Mailman/Queue/CommandRunner.py:129
+msgid ""
+"The results of your email command are provided below.\n"
+"Attached is your original message.\n"
+msgstr ""
+
+#: Mailman/Queue/CommandRunner.py:134
+msgid "- Results:"
+msgstr "-- ÒÅÚÕÌØÔÁÔÙ:"
+
+#: Mailman/Queue/CommandRunner.py:140
+msgid ""
+"\n"
+"- Unprocessed:"
+msgstr ""
+"\n"
+"-- îÅÏÂÒÁÂÏÔÁÎÎÙÈ:"
+
+#: Mailman/Queue/CommandRunner.py:143
+msgid ""
+"\n"
+"- Ignored:"
+msgstr ""
+"\n"
+"-- ðÒÏÐÕÝÅÎÎÙÈ:"
+
+#: Mailman/Queue/CommandRunner.py:145
+msgid ""
+"\n"
+"- Done.\n"
+"\n"
+msgstr ""
+"\n"
+"-- çÏÔÏ×Ï.\n"
+"\n"
+
+#: Mailman/Queue/CommandRunner.py:163
+msgid "The results of your email commands"
+msgstr "òÅÚÕÌØÔÁÔ ÏÂÒÁÂÏÔËÉ ×ÁÛÉÈ ËÏÍÁÎÄ"
+
+#: Mailman/htmlformat.py:627
+msgid "Delivered by Mailman<br>version %(version)s"
+msgstr "Mailman, ×ÅÒÓÉÑ: %(version)s"
+
+#: Mailman/htmlformat.py:628
+msgid "Python Powered"
+msgstr "òÁÂÏÔÁÅÔ ÐÏÄ ÕÐÒÁ×ÌÅÎÉÅÍ Python"
+
+#: Mailman/htmlformat.py:629
+msgid "Gnu's Not Unix"
+msgstr "Gnu's Not Unix"
+
+#: Mailman/i18n.py:86
+msgid "Mon"
+msgstr "ðÎ"
+
+#: Mailman/i18n.py:86
+msgid "Thu"
+msgstr "þÔ"
+
+#: Mailman/i18n.py:86
+msgid "Tue"
+msgstr "÷Ô"
+
+#: Mailman/i18n.py:86
+msgid "Wed"
+msgstr "óÒ"
+
+#: Mailman/i18n.py:87
+msgid "Fri"
+msgstr "ðÔ"
+
+#: Mailman/i18n.py:87
+msgid "Sat"
+msgstr "óÂ"
+
+#: Mailman/i18n.py:87
+msgid "Sun"
+msgstr "÷Ó"
+
+#: Mailman/i18n.py:91
+msgid "Apr"
+msgstr "áÐÒ"
+
+#: Mailman/i18n.py:91
+msgid "Feb"
+msgstr "æÅ×"
+
+#: Mailman/i18n.py:91
+msgid "Jan"
+msgstr "ñÎ×"
+
+#: Mailman/i18n.py:91
+msgid "Jun"
+msgstr "éÀÎ"
+
+#: Mailman/i18n.py:91
+msgid "Mar"
+msgstr "íÁÒ"
+
+#: Mailman/i18n.py:92
+msgid "Aug"
+msgstr "á×Ç"
+
+#: Mailman/i18n.py:92
+msgid "Dec"
+msgstr "äÅË"
+
+#: Mailman/i18n.py:92
+msgid "Jul"
+msgstr "éÀÌ"
+
+#: Mailman/i18n.py:92
+msgid "Nov"
+msgstr "îÏÑ"
+
+#: Mailman/i18n.py:92
+msgid "Oct"
+msgstr "ïËÔ"
+
+#: Mailman/i18n.py:92
+msgid "Sep"
+msgstr "óÅÎ"
+
+#: Mailman/i18n.py:95
+msgid "Server Local Time"
+msgstr "÷ÒÅÍÑ ÎÁ ÓÅÒ×ÅÒÅ"
+
+#: Mailman/i18n.py:128
+msgid ""
+"%(wday)s %(mon)s %(day)2i %(hh)02i:%(mm)02i:%(ss)02i %(tzname)s %(year)04i"
+msgstr ""
+
+#: bin/add_members:26
+msgid ""
+"Add members to a list from the command line.\n"
+"\n"
+"Usage:\n"
+" add_members [options] listname\n"
+"\n"
+"Options:\n"
+"\n"
+" --regular-members-file=file\n"
+" -r file\n"
+" A file containing addresses of the members to be added, one\n"
+" address per line. This list of people become non-digest\n"
+" members. If file is `-', read addresses from stdin. Note that\n"
+" -n/--non-digest-members-file are deprecated synonyms for this "
+"option.\n"
+"\n"
+" --digest-members-file=file\n"
+" -d=file\n"
+" Similar to above, but these people become digest members.\n"
+"\n"
+" --changes-msg=<y|n>\n"
+" -c <y|n> \n"
+"\tSet whether or not to send the list members the `there's going to be\n"
+"\tbig changes to your list' message. defaults to no.\n"
+"\n"
+" --welcome-msg=<y|n>\n"
+" -w <y|n>\n"
+" Set whether or not to send the list members a welcome message,\n"
+" overriding whatever the list's `send_welcome_msg' setting is.\n"
+"\n"
+" --admin-notify=<y|n>\n"
+" -a <y|n>\n"
+" Set whether or not to send the list administrators a notification "
+"on\n"
+" the success/failure of these subscriptions, overriding whatever the\n"
+" list's `admin_notify_mchanges' setting is.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname\n"
+" The name of the Mailman list you are adding members to. It must\n"
+" already exist.\n"
+"\n"
+"You must supply at least one of -r and -d options. At most one of the\n"
+"files can be `-'.\n"
+msgstr ""
+
+#: bin/add_members:134
+msgid "Big change in %(listname)s@%(listhost)s mailing list"
+msgstr ""
+"úÎÁÞÉÔÅÌØÎÙÅ ÉÚÍÅÎÅÎÉÑ × ÒÁÂÏÔÅ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ %(listname)s@%(listhost)s"
+
+#: bin/add_members:167
+msgid "Already a member: %(member)s"
+msgstr "õÖÅ Ñ×ÌÑÅÔÓÑ ÐÏÄÐÉÓÞÉËÏÍ: %(member)s"
+
+#: bin/add_members:170
+msgid "Bad/Invalid email address: blank line"
+msgstr "îÅËÏÒÒÅËÔÎÙÊ ÜÌÅËÔÒÏÎÎÙÊ ÁÄÒÅÓ: ÐÕÓÔÁÑ ÓÔÒÏËÁ"
+
+#: bin/add_members:172
+msgid "Bad/Invalid email address: %(member)s"
+msgstr "îÅ×ÅÒÎÙÊ/ÎÅÄÏÐÕÓÔÉÍÙÊ ÁÄÒÅÓ: %(member)s"
+
+#: bin/add_members:174
+msgid "Hostile address (illegal characters): %(member)s"
+msgstr ""
+
+#: bin/add_members:176
+msgid "Subscribed: %(member)s"
+msgstr "ðÏÄÐÉÓÁÎ: %(member)s"
+
+#: bin/add_members:223
+msgid "Bad argument to -c/--changes-msg: %(arg)s"
+msgstr "îÅÄÏÐÕÓÔÉÍÙÊ ÁÒÇÕÍÅÎÔÑ ÄÌÑ -c/--changes-msg: %(arg)s"
+
+#: bin/add_members:230
+msgid "Bad argument to -w/--welcome-msg: %(arg)s"
+msgstr "îÅÄÏÐÕÓÔÉÍÙÊ ÁÒÇÕÍÅÎÔÑ ÄÌÑ -w/--welcome-msg: %(arg)s"
+
+#: bin/add_members:237
+msgid "Bad argument to -a/--admin-notify: %(arg)s"
+msgstr "îÅÄÏÐÕÓÔÉÍÙÊ ÁÒÇÕÍÅÎÔÑ ÄÌÑ -a/--admin-notify: %(arg)s"
+
+#: bin/add_members:243
+msgid "Cannot read both digest and normal members from standard input."
+msgstr ""
+
+#: bin/add_members:249 bin/config_list:105 bin/find_member:97 bin/inject:90
+#: bin/list_admins:89 bin/list_members:187 bin/sync_members:222
+#: cron/bumpdigests:86
+msgid "No such list: %(listname)s"
+msgstr "îÅÔ ÔÁËÏÇÏ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ: %(listname)s"
+
+#: bin/add_members:269 bin/change_pw:158 bin/check_db:114 bin/sync_members:244
+#: cron/bumpdigests:78
+msgid "Nothing to do."
+msgstr "îÉÞÅÇÏ ÎÅ ÄÅÌÁÔØ ÎÅ ÎÁÄÏ."
+
+#: bin/arch:19
+msgid ""
+"Rebuild a list's archive.\n"
+"\n"
+"Use this command to rebuild the archives for a mailing list. You may want "
+"to\n"
+"do this if you edit some messages in an archive, or remove some messages "
+"from\n"
+"an archive.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] <listname> [<mbox>]\n"
+"\n"
+"Where options are:\n"
+" -h / --help\n"
+" Print this help message and exit.\n"
+"\n"
+" -q / --quiet\n"
+" Make the archiver output less verbose.\n"
+"\n"
+" --wipe\n"
+" First wipe out the original archive before regenerating. You "
+"usually\n"
+" want to specify this argument unless you're generating the archive "
+"in\n"
+" chunks.\n"
+"\n"
+" -s N\n"
+" --start=N\n"
+" Start indexing at article N, where article 0 is the first in the "
+"mbox.\n"
+" Defaults to 0.\n"
+"\n"
+" -e M\n"
+" --end=M\n"
+" End indexing at article M. This script is not very efficient with\n"
+" respect to memory management, and for large archives, it may not be\n"
+" possible to index the mbox entirely. For that reason, you can "
+"specify\n"
+" the start and end article numbers.\n"
+"\n"
+"Where <mbox> is the path to a list's complete mbox archive. Usually this "
+"will\n"
+"be some path in the archives/private directory. For example:\n"
+"\n"
+"%% bin/arch mylist archives/private/mylist.mbox/mylist.mbox\n"
+"\n"
+"<mbox> is optional. If it is missing, it is calculated.\n"
+msgstr ""
+
+#: bin/arch:125
+msgid "listname is required"
+msgstr "×Ù ÄÏÌÖÎÙ ÕËÁÚÁÔØ ÉÍÑ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ"
+
+#: bin/arch:143 bin/change_pw:106 bin/config_list:242
+msgid ""
+"No such list \"%(listname)s\"\n"
+"%(e)s"
+msgstr ""
+"îÅÔ ÔÁËÏÇÏ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ: \"%(listname)s\"\n"
+"%(e)s"
+
+#: bin/arch:170
+msgid "Cannot open mbox file %(mbox)s: %(msg)s"
+msgstr "îÅ ÕÄÁÌÏÓØ ÏÔËÒÙÔØ ÆÁÊÌ %(mbox)s: %(msg)s"
+
+#: bin/b4b5-archfix:19
+msgid ""
+"Fix the MM2.1b4 archives.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] file ...\n"
+"\n"
+"Where options are:\n"
+" -h / --help\n"
+" Print this help message and exit.\n"
+"\n"
+"Only use this to `fix' some archive database files that may have gotten\n"
+"written in Mailman 2.1b4 with some bogus data. Use like this from your\n"
+"$PREFIX directory\n"
+"\n"
+"%% %(PROGRAM)s `grep -l _mlist archives/private/*/database/*-article`\n"
+"\n"
+"(note the backquotes are required)\n"
+"\n"
+"You will need to run `bin/check_perms -f' after running this script.\n"
+msgstr ""
+
+#: bin/change_pw:19
+msgid ""
+"Change a list's password.\n"
+"\n"
+"Prior to Mailman 2.1, list passwords were kept in crypt'd format -- "
+"usually.\n"
+"Some Python installations didn't have the crypt module available, so they'd\n"
+"fall back to md5. Then suddenly the Python installation might grow a crypt\n"
+"module and all list passwords would be broken.\n"
+"\n"
+"In Mailman 2.1, all list and site passwords are stored in SHA1 hexdigest\n"
+"form. This breaks list passwords for all existing pre-Mailman 2.1 lists, "
+"and\n"
+"since those passwords aren't stored anywhere in plain text, they cannot be\n"
+"retrieved and updated.\n"
+"\n"
+"Thus, this script generates new passwords for a list, and optionally sends "
+"it\n"
+"to all the owners of the list.\n"
+"\n"
+"Usage: change_pw [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" --all / -a\n"
+" Change the password for all lists.\n"
+"\n"
+" --domain=domain\n"
+" -d domain\n"
+" Change the password for all lists in the virtual domain `domain'. "
+"It\n"
+" is okay to give multiple -d options.\n"
+"\n"
+" --listname=listname\n"
+" -l listname\n"
+" Change the password only for the named list. It is okay to give\n"
+" multiple -l options.\n"
+"\n"
+" --password=newpassword\n"
+" -p newpassword\n"
+" Use the supplied plain text password `newpassword' as the new "
+"password\n"
+" for any lists that are being changed (as specified by the -a, -d, "
+"and\n"
+" -l options). If not given, lists will be assigned a randomly\n"
+" generated new password.\n"
+"\n"
+" --quiet / -q\n"
+" Don't notify list owners of the new password. You'll have to have\n"
+" some other way of letting the list owners know the new password\n"
+" (presumably out-of-band).\n"
+"\n"
+" --help / -h\n"
+" Print this help message and exit.\n"
+msgstr ""
+
+#: bin/change_pw:144
+msgid "Bad arguments: %(strargs)s"
+msgstr ""
+
+#: bin/change_pw:148
+msgid "Empty list passwords are not allowed"
+msgstr ""
+
+#: bin/change_pw:179
+msgid "New %(listname)s password: %(notifypassword)s"
+msgstr ""
+
+#: bin/change_pw:188
+msgid "Your new %(listname)s list password"
+msgstr ""
+
+#: bin/change_pw:189
+msgid ""
+"The site administrator at %(hostname)s has changed the password for your\n"
+"mailing list %(listname)s. It is now\n"
+"\n"
+" %(notifypassword)s\n"
+"\n"
+"Please be sure to use this for all future list administration. You may "
+"want\n"
+"to log in now to your list and change the password to something more to "
+"your\n"
+"liking. Visit your list admin page at\n"
+"\n"
+" %(adminurl)s\n"
+msgstr ""
+
+#: bin/check_db:19
+msgid ""
+"Check a list's config database file for integrity.\n"
+"\n"
+"All of the following files are checked:\n"
+"\n"
+" config.pck\n"
+" config.pck.last\n"
+" config.db\n"
+" config.db.last\n"
+" config.safety\n"
+"\n"
+"It's okay if any of these are missing. config.pck and config.pck.last are\n"
+"pickled versions of the config database file for 2.1a3 and beyond. config."
+"db\n"
+"and config.db.last are used in all earlier versions, and these are Python\n"
+"marshals. config.safety is a pickle written by 2.1a3 and beyond when the\n"
+"primary config.pck file could not be read.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname [listname ...]]\n"
+"\n"
+"Options:\n"
+"\n"
+" --all / -a\n"
+" Check the databases for all lists. Otherwise only the lists named "
+"on\n"
+" the command line are checked.\n"
+"\n"
+" --verbose / -v\n"
+" Verbose output. The state of every tested file is printed.\n"
+" Otherwise only corrupt files are displayed.\n"
+"\n"
+" --help / -h\n"
+" Print this text and exit.\n"
+msgstr ""
+
+#: bin/check_db:119
+msgid "No list named:"
+msgstr ""
+
+#: bin/check_db:128
+msgid "List:"
+msgstr ""
+
+#: bin/check_db:148
+msgid " %(file)s: okay"
+msgstr ""
+
+#: bin/check_perms:19
+msgid ""
+"Check the permissions for the Mailman installation.\n"
+"\n"
+"Usage: %(PROGRAM)s [-f] [-v] [-h]\n"
+"\n"
+"With no arguments, just check and report all the files that have bogus\n"
+"permissions or group ownership. With -f (and run as root), fix all the\n"
+"permission problems found. With -v be verbose.\n"
+"\n"
+msgstr ""
+
+#: bin/check_perms:85
+msgid " checking gid and mode for %(path)s"
+msgstr ""
+
+#: bin/check_perms:97
+msgid "%(path)s bad group (has: %(groupname)s, expected %(MAILMAN_GROUP)s)"
+msgstr ""
+
+#: bin/check_perms:120
+msgid "directory permissions must be %(octperms)s: %(path)s"
+msgstr ""
+
+#: bin/check_perms:129
+msgid "source perms must be %(octperms)s: %(path)s"
+msgstr ""
+
+#: bin/check_perms:140
+msgid "article db files must be %(octperms)s: %(path)s"
+msgstr ""
+
+#: bin/check_perms:152
+msgid "checking mode for %(prefix)s"
+msgstr ""
+
+#: bin/check_perms:160
+msgid "directory must be at least 02775: %(d)s"
+msgstr ""
+
+#: bin/check_perms:173
+msgid "checking perms on %(private)s"
+msgstr ""
+
+#: bin/check_perms:178
+msgid "%(private)s must not be other-readable"
+msgstr ""
+
+#: bin/check_perms:198
+msgid "mbox file must be at least 0660:"
+msgstr ""
+
+#: bin/check_perms:222
+msgid "%(dbdir)s \"other\" perms must be 000"
+msgstr ""
+
+#: bin/check_perms:233
+msgid "checking cgi-bin permissions"
+msgstr ""
+
+#: bin/check_perms:238
+msgid " checking set-gid for %(path)s"
+msgstr ""
+
+#: bin/check_perms:242
+msgid "%(path)s must be set-gid"
+msgstr ""
+
+#: bin/check_perms:252
+msgid "checking set-gid for %(wrapper)s"
+msgstr ""
+
+#: bin/check_perms:256
+msgid "%(wrapper)s must be set-gid"
+msgstr ""
+
+#: bin/check_perms:266
+msgid "checking permissions on %(pwfile)s"
+msgstr ""
+
+#: bin/check_perms:275
+msgid "%(pwfile)s permissions must be exactly 0640 (got %(octmode)s)"
+msgstr ""
+
+#: bin/check_perms:299
+msgid "checking permissions on list data"
+msgstr ""
+
+#: bin/check_perms:305
+msgid " checking permissions on: %(path)s"
+msgstr ""
+
+#: bin/check_perms:313
+msgid "file permissions must be at least 660: %(path)s"
+msgstr ""
+
+#: bin/check_perms:359
+msgid "No problems found"
+msgstr "ðÒÏÂÌÅÍ ÎÅ ÏÂÎÁÒÕÖÅÎÏ"
+
+#: bin/check_perms:361
+msgid "Problems found:"
+msgstr "ïÂÎÁÒÕÖÅÎÙ ÐÒÏÂÌÅÍÙ:"
+
+#: bin/check_perms:362
+msgid "Re-run as %(MAILMAN_USER)s (or root) with -f flag to fix"
+msgstr ""
+
+#: bin/cleanarch:19
+msgid ""
+"Clean up an .mbox archive file.\n"
+"\n"
+"The archiver looks for Unix-From lines separating messages in an mbox "
+"archive\n"
+"file. For compatibility, it specifically looks for lines that start with\n"
+"\"From \" -- i.e. the letters capital-F, lowercase-r, o, m, space, ignoring\n"
+"everything else on the line.\n"
+"\n"
+"Normally, any lines that start \"From \" in the body of a message should be\n"
+"escaped such that a > character is actually the first on a line. It is\n"
+"possible though that body lines are not actually escaped. This script\n"
+"attempts to fix these by doing a stricter test of the Unix-From lines. Any\n"
+"lines that start \"From \" but do not pass this stricter test are escaped "
+"with a\n"
+"> character.\n"
+"\n"
+"Usage: cleanarch [options] < inputfile > outputfile\n"
+"Options:\n"
+" -s n\n"
+" --status=n\n"
+" Print a # character every n lines processed\n"
+"\n"
+" -q / --quiet\n"
+" Don't print changed line information to standard error.\n"
+"\n"
+" -n / --dry-run\n"
+" Don't actually output anything.\n"
+"\n"
+" -h / --help\n"
+" Print this message and exit\n"
+msgstr ""
+
+#: bin/cleanarch:82
+msgid "Unix-From line changed: %(lineno)d"
+msgstr ""
+
+#: bin/cleanarch:110
+msgid "Bad status number: %(arg)s"
+msgstr ""
+
+#: bin/cleanarch:160
+msgid "%(messages)d messages found"
+msgstr ""
+
+#: bin/clone_member:19
+msgid ""
+"Clone a member address.\n"
+"\n"
+"Cloning a member address means that a new member will be added who has all "
+"the\n"
+"same options and passwords as the original member address. Note that this\n"
+"operation is fairly trusting of the user who runs it -- it does no\n"
+"verification to the new address, it does not send out a welcome message, "
+"etc.\n"
+"\n"
+"The existing member's subscription is usually not modified in any way. If "
+"you\n"
+"want to remove the old address, use the -r flag. If you also want to "
+"change\n"
+"any list admin addresses, use the -a flag.\n"
+"\n"
+"Usage:\n"
+" clone_member [options] fromoldaddr tonewaddr\n"
+"\n"
+"Where:\n"
+"\n"
+" --listname=listname\n"
+" -l listname\n"
+" Check and modify only the named mailing lists. If -l is not given,\n"
+" then all mailing lists are scanned from the address. Multiple -l\n"
+" options can be supplied.\n"
+"\n"
+" --remove\n"
+" -r\n"
+" Remove the old address from the mailing list after it's been "
+"cloned.\n"
+"\n"
+" --admin\n"
+" -a\n"
+" Scan the list admin addresses for the old address, and clone or "
+"change\n"
+" them too.\n"
+"\n"
+" --quiet\n"
+" -q\n"
+" Do the modifications quietly.\n"
+"\n"
+" --nomodify\n"
+" -n\n"
+" Print what would be done, but don't actually do it. Inhibits the\n"
+" --quiet flag.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" fromoldaddr (`from old address') is the old address of the user. "
+"tonewaddr\n"
+" (`to new address') is the new address of the user.\n"
+"\n"
+msgstr ""
+
+#: bin/clone_member:94
+msgid "processing mailing list:"
+msgstr "ÉÄÅÔ ÏÂÒÁÂÏÔËÁ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ:"
+
+#: bin/clone_member:101
+msgid " scanning list owners:"
+msgstr " ÐÒÏÓÍÁÔÒÉ×ÁÅÔÓÑ ÓÐÉÓÏË ×ÌÁÄÅÌØÃÅ× ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ"
+
+#: bin/clone_member:119
+msgid " new list owners:"
+msgstr ""
+
+#: bin/clone_member:121
+msgid "(no change)"
+msgstr ""
+
+#: bin/clone_member:130
+msgid " address not found:"
+msgstr ""
+
+#: bin/clone_member:139
+msgid " clone address added:"
+msgstr ""
+
+#: bin/clone_member:142
+msgid " clone address is already a member:"
+msgstr ""
+
+#: bin/clone_member:145
+msgid " original address removed:"
+msgstr ""
+
+#: bin/clone_member:196
+msgid "Not a valid email address: %(toaddr)s"
+msgstr ""
+
+#: bin/clone_member:209
+msgid ""
+"Error opening list \"%(listname)s\", skipping.\n"
+"%(e)s"
+msgstr ""
+
+#: bin/config_list:19
+msgid ""
+"Configure a list from a text file description.\n"
+"\n"
+"Usage: config_list [options] listname\n"
+"\n"
+"Options:\n"
+" --inputfile filename\n"
+" -i filename\n"
+" Configure the list by assigning each module-global variable in the\n"
+" file to an attribute on the list object, then saving the list. The\n"
+" named file is loaded with execfile() and must be legal Python code.\n"
+" Any variable that isn't already an attribute of the list object is\n"
+" ignored (a warning message is printed). See also the -c option.\n"
+"\n"
+" A special variable named `mlist' is put into the globals during the\n"
+" execfile, which is bound to the actual MailList object. This lets "
+"you\n"
+" do all manner of bizarre thing to the list object, but BEWARE! "
+"Using\n"
+" this can severely (and possibly irreparably) damage your mailing "
+"list!\n"
+"\n"
+" --outputfile filename\n"
+" -o filename\n"
+" Instead of configuring the list, print out a list's configuration\n"
+" variables in a format suitable for input using this script. In "
+"this\n"
+" way, you can easily capture the configuration settings for a\n"
+" particular list and imprint those settings on another list. "
+"filename\n"
+" is the file to output the settings to. If filename is `-', "
+"standard\n"
+" out is used.\n"
+"\n"
+" --checkonly\n"
+" -c\n"
+" With this option, the modified list is not actually changed. Only\n"
+" useful with -i.\n"
+"\n"
+" --verbose\n"
+" -v\n"
+" Print the name of each attribute as it is being changed. Only "
+"useful\n"
+" with -i.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+"The options -o and -i are mutually exclusive.\n"
+"\n"
+msgstr ""
+
+#: bin/config_list:109
+msgid ""
+"## \"%(listname)s\" mailing list configuration settings -*- python -*-\n"
+"## captured on %(when)s\n"
+msgstr ""
+
+#: bin/config_list:131
+msgid "options"
+msgstr ""
+
+#: bin/config_list:188
+msgid "legal values are:"
+msgstr ""
+
+#: bin/config_list:255
+msgid "attribute \"%(k)s\" ignored"
+msgstr ""
+
+#: bin/config_list:258
+msgid "attribute \"%(k)s\" changed"
+msgstr ""
+
+#: bin/config_list:264
+msgid "Non-standard property restored: %(k)s"
+msgstr ""
+
+#: bin/config_list:272
+msgid "Invalid value for property: %(k)s"
+msgstr ""
+
+#: bin/config_list:274
+msgid "Bad email address for option %(k)s: %(v)s"
+msgstr ""
+
+#: bin/config_list:322
+msgid "Only one of -i or -o is allowed"
+msgstr ""
+
+#: bin/config_list:324
+msgid "One of -i or -o is required"
+msgstr ""
+
+#: bin/config_list:328
+msgid "List name is required"
+msgstr ""
+
+#: bin/convert.py:19
+msgid ""
+"Convert a list's interpolation strings from %-strings to $-strings.\n"
+"\n"
+"This script is intended to be run as a bin/withlist script, i.e.\n"
+"\n"
+"% bin/withlist -l -r convert <mylist>\n"
+msgstr ""
+
+#: bin/convert.py:38 bin/fix_url.py:85
+msgid "Saving list"
+msgstr ""
+
+#: bin/convert.py:44 bin/fix_url.py:51
+msgid "%%%"
+msgstr ""
+
+#: bin/dumpdb:19
+msgid ""
+"Dump the contents of any Mailman `database' file.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] filename\n"
+"\n"
+"Options:\n"
+"\n"
+" --marshal/-m\n"
+" Assume the file contains a Python marshal, overridding any "
+"automatic\n"
+" guessing.\n"
+"\n"
+" --pickle/-p\n"
+" Assume the file contains a Python pickle, overridding any automatic\n"
+" guessing.\n"
+"\n"
+" --noprint/-n\n"
+" Don't attempt to pretty print the object. This is useful if "
+"there's\n"
+" some problem with the object and you just want to get an unpickled\n"
+" representation. Useful with `python -i bin/dumpdb <file>'. In "
+"that\n"
+" case, the root of the tree will be left in a global called \"msg\".\n"
+"\n"
+" --help/-h\n"
+" Print this help message and exit\n"
+"\n"
+"If the filename ends with `.db', then it is assumed that the file contains "
+"a\n"
+"Python marshal. If the file ends with `.pck' then it is assumed to contain "
+"a\n"
+"Python pickle. In either case, if you want to override the default "
+"assumption\n"
+"-- or if the file ends in neither suffix -- use the -p or -m flags.\n"
+msgstr ""
+
+#: bin/dumpdb:101
+msgid "No filename given."
+msgstr ""
+
+#: bin/dumpdb:104
+msgid "Bad arguments: %(pargs)s"
+msgstr ""
+
+#: bin/dumpdb:114
+msgid "Please specify either -p or -m."
+msgstr ""
+
+#: bin/find_member:19
+msgid ""
+"Find all lists that a member's address is on.\n"
+"\n"
+"Usage:\n"
+" find_member [options] regex [regex [...]]\n"
+"\n"
+"Where:\n"
+" --listname=listname\n"
+" -l listname\n"
+" Include only the named list in the search.\n"
+"\n"
+" --exclude=listname\n"
+" -x listname\n"
+" Exclude the named list from the search.\n"
+"\n"
+" --owners\n"
+" -w\n"
+" Search list owners as well as members.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" regex\n"
+" A Python regular expression to match against.\n"
+"\n"
+"The interaction between -l and -x is as follows. If any -l option is given\n"
+"then only the named list will be included in the search. If any -x option "
+"is\n"
+"given but no -l option is given, then all lists will be search except those\n"
+"specifically excluded.\n"
+"\n"
+"Regular expression syntax is Perl5-like, using the Python re module. "
+"Complete\n"
+"specifications are at:\n"
+"\n"
+"http://www.python.org/doc/current/lib/module-re.html\n"
+"\n"
+"Address matches are case-insensitive, but case-preserved addresses are\n"
+"displayed.\n"
+"\n"
+msgstr ""
+
+#: bin/find_member:159
+msgid "Search regular expression required"
+msgstr ""
+
+#: bin/find_member:164
+msgid "No lists to search"
+msgstr ""
+
+#: bin/find_member:173
+msgid "found in:"
+msgstr ""
+
+#: bin/find_member:179
+msgid "(as owner)"
+msgstr ""
+
+#: bin/fix_url.py:19
+msgid ""
+"Reset a list's web_page_url attribute to the default setting.\n"
+"\n"
+"This script is intended to be run as a bin/withlist script, i.e.\n"
+"\n"
+"% bin/withlist -l -r fix_url listname [options]\n"
+"\n"
+"Options:\n"
+" -u urlhost\n"
+" --urlhost=urlhost\n"
+" Look up urlhost in the virtual host table and set the web_page_url "
+"and\n"
+" host_name attributes of the list to the values found. This\n"
+" essentially moves the list from one virtual domain to another.\n"
+"\n"
+" Without this option, the default web_page_url and host_name values "
+"are\n"
+" used.\n"
+"\n"
+" -v / --verbose\n"
+" Print what the script is doing.\n"
+"\n"
+"If run standalone, it prints this help text and exits.\n"
+msgstr ""
+
+#: bin/fix_url.py:80
+msgid "Setting web_page_url to: %(web_page_url)s"
+msgstr ""
+
+#: bin/fix_url.py:83
+msgid "Setting host_name to: %(mailhost)s"
+msgstr ""
+
+#: bin/genaliases:19
+msgid ""
+"Regenerate Postfix's data/aliases and data/aliases.db files from scratch.\n"
+"\n"
+"Usage:\n"
+"\n"
+" genaliases [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+msgstr ""
+
+#: bin/inject:19
+msgid ""
+"Inject a message from a file into Mailman's incoming queue.\n"
+"\n"
+"Usage: inject [options] [filename]\n"
+"\n"
+"Options:\n"
+"\n"
+" -h / --help\n"
+" Print this text and exit.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" The name of the list to inject this message to. Required.\n"
+"\n"
+" -q queuename\n"
+" --queue=queuename\n"
+" The name of the queue to inject the message to. The queuename must "
+"be\n"
+" one of the directories inside the qfiles directory. If omitted, "
+"the\n"
+" incoming queue is used.\n"
+"\n"
+"filename is the name of the plaintext message file to inject. If omitted,\n"
+"standard input is used.\n"
+msgstr ""
+
+#: bin/inject:83
+msgid "Bad queue directory: %(qdir)s"
+msgstr ""
+
+#: bin/inject:88
+msgid "A list name is required"
+msgstr "îÁÚ×ÁÎÉÅ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ Ñ×ÌÑÅÔÓÑ ÏÂÑÚÁÔÅÌØÎÙÍ"
+
+#: bin/list_admins:19
+msgid ""
+"List all the owners of a mailing list.\n"
+"\n"
+"Usage: %(program)s [options] listname ...\n"
+"\n"
+"Where:\n"
+"\n"
+" --all-vhost=vhost\n"
+" -v=vhost\n"
+" List the owners of all the mailing lists for the given virtual "
+"host.\n"
+"\n"
+" --all\n"
+" -a\n"
+" List the owners of all the mailing lists on this system.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+"`listname' is the name of the mailing list to print the owners of. You can\n"
+"have more than one named list on the command line.\n"
+msgstr ""
+
+#: bin/list_admins:96
+msgid "List: %(listname)s, \tOwners: %(owners)s"
+msgstr ""
+
+#: bin/list_lists:19
+msgid ""
+"List all mailing lists.\n"
+"\n"
+"Usage: %(program)s [options]\n"
+"\n"
+"Where:\n"
+"\n"
+" -a / --advertised\n"
+" List only those mailing lists that are publically advertised\n"
+"\n"
+" --virtual-host-overview=domain\n"
+" -V domain\n"
+" List only those mailing lists that are homed to the given virtual\n"
+" domain. This only works if the VIRTUAL_HOST_OVERVIEW variable is\n"
+" set.\n"
+"\n"
+" -b / --bare\n"
+" Displays only the list name, with no description.\n"
+"\n"
+" -h / --help\n"
+" Print this text and exit.\n"
+"\n"
+msgstr ""
+
+#: bin/list_lists:105
+msgid "No matching mailing lists found"
+msgstr ""
+
+#: bin/list_lists:109
+msgid "matching mailing lists found:"
+msgstr "ÎÁÊÄÅÎÙ ÓÌÅÄÕÀÝÉÅ ÐÏÄÈÏÄÑÝÉÅ ÐÏ ÏÂÒÁÚÃÕ ÓÐÉÓËÉ ÒÁÓÓÙÌËÉ:"
+
+#: bin/list_members:19
+msgid ""
+"List all the members of a mailing list.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] listname\n"
+"\n"
+"Where:\n"
+"\n"
+" --output file\n"
+" -o file\n"
+" Write output to specified file instead of standard out.\n"
+"\n"
+" --regular / -r\n"
+" Print just the regular (non-digest) members.\n"
+"\n"
+" --digest[=kind] / -d [kind]\n"
+" Print just the digest members. Optional argument can be \"mime\" "
+"or\n"
+" \"plain\" which prints just the digest members receiving that kind "
+"of\n"
+" digest.\n"
+"\n"
+" --nomail[=why] / -n [why]\n"
+" Print the members that have delivery disabled. Optional argument "
+"can\n"
+" be \"byadmin\", \"byuser\", \"bybounce\", or \"unknown\" which "
+"prints just the\n"
+" users who have delivery disabled for that reason. It can also be\n"
+" \"enabled\" which prints just those member for whom delivery is\n"
+" enabled.\n"
+"\n"
+" --fullnames / -f\n"
+" Include the full names in the output.\n"
+"\n"
+" --preserve\n"
+" -p\n"
+" Output member addresses case preserved the way they were added to "
+"the\n"
+" list. Otherwise, addresses are printed in all lowercase.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname is the name of the mailing list to use.\n"
+"\n"
+"Note that if neither -r or -d is supplied, both regular members are printed\n"
+"first, followed by digest members, but no indication is given as to address\n"
+"status.\n"
+msgstr ""
+
+#: bin/list_members:150
+msgid "Bad --nomail option: %(why)s"
+msgstr ""
+
+#: bin/list_members:161
+msgid "Bad --digest option: %(kind)s"
+msgstr ""
+
+#: bin/list_members:179
+msgid "Could not open file for writing:"
+msgstr ""
+
+#: bin/list_owners:19
+msgid ""
+"List the owners of a mailing list, or all mailing lists.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname ...]\n"
+"Options:\n"
+"\n"
+" -w / --with-listnames\n"
+" Group the owners by list names and include the list names in the\n"
+" output. Otherwise, the owners will be sorted and uniquified based "
+"on\n"
+" the email address.\n"
+"\n"
+" -m / --moderators\n"
+" Include the list moderators in the output.\n"
+"\n"
+" -h / --help\n"
+" Print this help message and exit.\n"
+"\n"
+" listname\n"
+" Print the owners of the specified lists. More than one can appear\n"
+" after the options. If there are no listnames provided, the owners "
+"of\n"
+" all the lists will be displayed.\n"
+msgstr ""
+
+#: bin/mailmanctl:19
+msgid ""
+"Primary start-up and shutdown script for Mailman's qrunner daemon.\n"
+"\n"
+"This script starts, stops, and restarts the main Mailman queue runners, "
+"making\n"
+"sure that the various long-running qrunners are still alive and kicking. "
+"It\n"
+"does this by forking and exec'ing the qrunners and waiting on their pids.\n"
+"When it detects a subprocess has exited, it may restart it.\n"
+"\n"
+"The qrunners respond to SIGINT, SIGTERM, and SIGHUP. SIGINT and SIGTERM "
+"both\n"
+"cause the qrunners to exit cleanly, but the master will only restart "
+"qrunners\n"
+"that have exited due to a SIGINT. SIGHUP causes the master and the "
+"qrunners\n"
+"to close their log files, and reopen then upon the next printed message.\n"
+"\n"
+"The master also responds to SIGINT, SIGTERM, and SIGHUP, which it simply\n"
+"passes on to the qrunners (note that the master will close and reopen its "
+"own\n"
+"log files on receipt of a SIGHUP). The master also leaves its own process "
+"id\n"
+"in the file data/master-qrunner.pid but you normally don't need to use this\n"
+"pid directly. The `start', `stop', `restart', and `reopen' commands handle\n"
+"everything for you.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [ start | stop | restart | reopen ]\n"
+"\n"
+"Options:\n"
+"\n"
+" -n/--no-restart\n"
+" Don't restart the qrunners when they exit because of an error or a\n"
+" SIGINT. They are never restarted if they exit in response to a\n"
+" SIGTERM. Use this only for debugging. Only useful if the `start'\n"
+" command is given.\n"
+"\n"
+" -u/--run-as-user\n"
+" Normally, this script will refuse to run if the user id and group "
+"id\n"
+" are not set to the `mailman' user and group (as defined when you\n"
+" configured Mailman). If run as root, this script will change to "
+"this\n"
+" user and group before the check is made.\n"
+"\n"
+" This can be inconvenient for testing and debugging purposes, so the -"
+"u\n"
+" flag means that the step that sets and checks the uid/gid is "
+"skipped,\n"
+" and the program is run as the current user and group. This flag is\n"
+" not recommended for normal production environments.\n"
+"\n"
+" Note though, that if you run with -u and are not in the mailman "
+"group,\n"
+" you may have permission problems, such as begin unable to delete a\n"
+" list's archives through the web. Tough luck!\n"
+"\n"
+" -s/--stale-lock-cleanup\n"
+" If mailmanctl finds an existing master lock, it will normally exit\n"
+" with an error message. With this option, mailmanctl will perform "
+"an\n"
+" extra level of checking. If a process matching the host/pid "
+"described\n"
+" in the lock file is running, mailmanctl will still exit, but if no\n"
+" matching process is found, mailmanctl will remove the apparently "
+"stale\n"
+" lock and make another attempt to claim the master lock.\n"
+"\n"
+" -q/--quiet\n"
+" Don't print status messages. Error messages are still printed to\n"
+" standard error.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+"\n"
+"Commands:\n"
+"\n"
+" start - Start the master daemon and all qrunners. Prints a message "
+"and\n"
+" exits if the master daemon is already running.\n"
+"\n"
+" stop - Stops the master daemon and all qrunners. After stopping, no\n"
+" more messages will be processed.\n"
+"\n"
+" restart - Restarts the qrunners, but not the master process. Use this\n"
+" whenever you upgrade or update Mailman so that the qrunners "
+"will\n"
+" use the newly installed code.\n"
+"\n"
+" reopen - This will close all log files, causing them to be re-opened "
+"the\n"
+" next time a message is written to them\n"
+msgstr ""
+
+#: bin/mailmanctl:149
+msgid "PID unreadable in: %(pidfile)s"
+msgstr ""
+
+#: bin/mailmanctl:151
+msgid "Is qrunner even running?"
+msgstr ""
+
+#: bin/mailmanctl:157
+msgid "No child with pid: %(pid)s"
+msgstr ""
+
+#: bin/mailmanctl:159
+msgid "Stale pid file removed."
+msgstr ""
+
+#: bin/mailmanctl:217
+msgid ""
+"The master qrunner lock could not be acquired because it appears as if "
+"another\n"
+"master qrunner is already running.\n"
+msgstr ""
+
+#: bin/mailmanctl:223
+msgid ""
+"The master qrunner lock could not be acquired. It appears as though there "
+"is\n"
+"a stale master qrunner lock. Try re-running mailmanctl with the -s flag.\n"
+msgstr ""
+
+#: bin/mailmanctl:229
+msgid ""
+"The master qrunner lock could not be acquired, because it appears as if "
+"some\n"
+"process on some other host may have acquired it. We can't test for stale\n"
+"locks across host boundaries, so you'll have to do this manually. Or, if "
+"you\n"
+"know the lock is stale, re-run mailmanctl with the -s flag.\n"
+"\n"
+"Lock file: %(LOCKFILE)s\n"
+"Lock host: %(status)s\n"
+"\n"
+"Exiting."
+msgstr ""
+
+#: bin/mailmanctl:282
+msgid "Run this program as root or as the %(name)s user, or use -u."
+msgstr ""
+
+#: bin/mailmanctl:313
+msgid "No command given."
+msgstr "îÅ ÕËÁÚÁÎÏ ÎÉ ÏÄÎÏÊ ËÏÍÁÎÄÙ."
+
+#: bin/mailmanctl:316
+msgid "Bad command: %(command)s"
+msgstr "îÅÉÚ×ÅÓÔÎÁÑ ËÏÍÁÎÄÁ: %(command)s"
+
+#: bin/mailmanctl:321
+msgid "Warning! You may encounter permission problems."
+msgstr ""
+
+#: bin/mailmanctl:330
+msgid "Shutting down Mailman's master qrunner"
+msgstr "ïÓÔÁÎÁ×ÌÉ×ÁÅÔÓÑ ÏÓÎÏ×ÎÏÊ ÏÂÒÁÂÏÔÞÉË Mailman"
+
+#: bin/mailmanctl:337
+msgid "Restarting Mailman's master qrunner"
+msgstr "ðÅÒÅÚÁÐÕÓËÁÅÔÓÑ ÏÓÎÏ×ÎÏÊ ÏÂÒÁÂÏÔÞÉË Mailman"
+
+#: bin/mailmanctl:341
+msgid "Re-opening all log files"
+msgstr ""
+
+#: bin/mailmanctl:375
+msgid "Starting Mailman's master qrunner."
+msgstr ""
+
+#: bin/mmsitepass:19
+msgid ""
+"Set the site password, prompting from the terminal.\n"
+"\n"
+"The site password can be used in most if not all places that the list\n"
+"administrator's password can be used, which in turn can be used in most "
+"places\n"
+"that a list users password can be used.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [password]\n"
+"\n"
+"Options:\n"
+"\n"
+" -c/--listcreator\n"
+" Set the list creator password instead of the site password. The "
+"list\n"
+" creator is authorized to create and remove lists, but does not have\n"
+" the total power of the site administrator.\n"
+"\n"
+" -h/--help\n"
+" Print this help message and exit.\n"
+"\n"
+"If password is not given on the command line, it will be prompted for.\n"
+msgstr ""
+
+#: bin/mmsitepass:73
+msgid "site"
+msgstr ""
+
+#: bin/mmsitepass:80
+msgid "list creator"
+msgstr ""
+
+#: bin/mmsitepass:86
+msgid "New %(pwdesc)s password: "
+msgstr ""
+
+#: bin/mmsitepass:87
+msgid "Again to confirm password: "
+msgstr ""
+
+#: bin/mmsitepass:89
+msgid "Passwords do not match; no changes made."
+msgstr "ðÁÒÏÌÉ ÎÅ ÓÏ×ÐÁÄÁÀÔ; ÉÚÍÅÎÅÎÉÑ ÓÄÅÌÁÎÙ ÎÅ ÂÙÌÉ."
+
+#: bin/mmsitepass:92
+msgid "Interrupted..."
+msgstr ""
+
+#: bin/mmsitepass:98
+msgid "Password changed."
+msgstr "ðÁÒÏÌØ ÂÙÌ ÉÚÍÅÎÅÎ."
+
+#: bin/mmsitepass:100
+msgid "Password change failed."
+msgstr "ðÁÒÏÌØ ÉÚÍÅÎÉÔØ ÎÅ ÕÄÁÌÏÓØ."
+
+#: bin/newlist:19
+msgid ""
+"Create a new, unpopulated mailing list.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname [listadmin-addr [admin-password]]]\n"
+"\n"
+"Options:\n"
+"\n"
+" -l language\n"
+" --language language\n"
+" Make the list's preferred language `language', which must be a two\n"
+" letter language code.\n"
+"\n"
+" -q/--quiet\n"
+" Normally the administrator is notified by email (after a prompt) "
+"that\n"
+" their list has been created. This option suppresses the prompt and\n"
+" notification.\n"
+"\n"
+" -h/--help\n"
+" Print this help text and exit.\n"
+"\n"
+"You can specify as many of the arguments as you want on the command line:\n"
+"you will be prompted for the missing ones.\n"
+"\n"
+"Every Mailman list has two parameters which define the default host name "
+"for\n"
+"outgoing email, and the default URL for all web interfaces. When you\n"
+"configured Mailman, certain defaults were calculated, but if you are "
+"running\n"
+"multiple virtual Mailman sites, then the defaults may not be appropriate "
+"for\n"
+"the list you are creating.\n"
+"\n"
+"You can specify the domain to create your new list in by spelling the "
+"listname\n"
+"like so:\n"
+"\n"
+" mylist@www.mydom.ain\n"
+"\n"
+"where `www.mydom.ain' should be the base hostname for the URL to this "
+"virtual\n"
+"hosts's lists. E.g. with is setting people will view the general list\n"
+"overviews at http://www.mydom.ain/mailman/listinfo. Also, www.mydom.ain\n"
+"should be a key in the VIRTUAL_HOSTS mapping in mm_cfg.py/Defaults.py. It\n"
+"will be looked up to give the email hostname. If this can't be found, then\n"
+"www.mydom.ain will be used for both the web interface and the email\n"
+"interface.\n"
+"\n"
+"If you spell the list name as just `mylist', then the email hostname will "
+"be\n"
+"taken from DEFAULT_EMAIL_HOST and the url will be taken from DEFAULT_URL "
+"(as\n"
+"defined in your Defaults.py file or overridden by settings in mm_cfg.py).\n"
+"\n"
+"Note that listnames are forced to lowercase.\n"
+msgstr ""
+
+#: bin/newlist:118
+msgid "Unknown language: %(lang)s"
+msgstr "îÅÉÚ×ÅÓÔÎÙÊ ÑÚÙË: %(lang)s"
+
+#: bin/newlist:123
+msgid "Enter the name of the list: "
+msgstr "õËÁÖÉÔÅ ÉÍÑ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ: "
+
+#: bin/newlist:140
+msgid "Enter the email of the person running the list: "
+msgstr ""
+
+#: bin/newlist:145
+msgid "Initial %(listname)s password: "
+msgstr ""
+
+#: bin/newlist:149
+msgid "The list password cannot be empty"
+msgstr "ðÁÒÏÌØ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ ÎÅ ÍÏÖÅÔ ÂÙÔØ ÐÕÓÔÙÍ"
+
+#: bin/newlist:190
+msgid "Hit enter to notify %(listname)s owner..."
+msgstr ""
+
+#: bin/qrunner:19
+msgid ""
+"Run one or more qrunners, once or repeatedly.\n"
+"\n"
+"Each named runner class is run in round-robin fashion. In other words, the\n"
+"first named runner is run to consume all the files currently in its\n"
+"directory. When that qrunner is done, the next one is run to consume all "
+"the\n"
+"files in /its/ directory, and so on. The number of total iterations can be\n"
+"given on the command line.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" -r runner[:slice:range]\n"
+" --runner=runner[:slice:range]\n"
+" Run the named qrunner, which must be one of the strings returned by\n"
+" the -l option. Optional slice:range if given, is used to assign\n"
+" multiple qrunner processes to a queue. range is the total number "
+"of\n"
+" qrunners for this queue while slice is the number of this qrunner "
+"from\n"
+" [0..range).\n"
+"\n"
+" If using the slice:range form, you better make sure that each "
+"qrunner\n"
+" for the queue is given the same range value. If slice:runner is "
+"not\n"
+" given, then 1:1 is used.\n"
+"\n"
+" Multiple -r options may be given, in which case each qrunner will "
+"run\n"
+" once in round-robin fashion. The special runner `All' is shorthand\n"
+" for a qrunner for each listed by the -l option.\n"
+"\n"
+" --once\n"
+" -o\n"
+" Run each named qrunner exactly once through its main loop. "
+"Otherwise,\n"
+" each qrunner runs indefinitely, until the process receives a "
+"SIGTERM\n"
+" or SIGINT.\n"
+"\n"
+" -l/--list\n"
+" Shows the available qrunner names and exit.\n"
+"\n"
+" -v/--verbose\n"
+" Spit out more debugging information to the logs/qrunner log file.\n"
+"\n"
+" -s/--subproc\n"
+" This should only be used when running qrunner as a subprocess of "
+"the\n"
+" mailmanctl startup script. It changes some of the exit-on-error\n"
+" behavior to work better with that framework.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+"\n"
+"runner is required unless -l or -h is given, and it must be one of the "
+"names\n"
+"displayed by the -l switch.\n"
+msgstr ""
+
+#: bin/qrunner:176
+msgid "%(name)s runs the %(runnername)s qrunner"
+msgstr ""
+
+#: bin/qrunner:177
+msgid "All runs all the above qrunners"
+msgstr "äÌÑ ÚÁÐÕÓËÁ ×ÙÛÅÕËÁÚÁÎÎÙÈ ÏÂÒÁÂÏÔÞÉËÏ× ÉÓÐÏÌØÚÕÊÔÅ \"All\""
+
+#: bin/qrunner:213
+msgid "No runner name given."
+msgstr "îÅ ÕËÁÚÁÎÏ ÉÍÑ ÏÂÒÁÂÏÔÞÉËÁ."
+
+#: bin/remove_members:19
+msgid ""
+"Remove members from a list.\n"
+"\n"
+"Usage:\n"
+" remove_members [options] [listname] [addr1 ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" --file=file\n"
+" -f file\n"
+" Remove member addresses found in the given file. If file is\n"
+" `-', read stdin.\n"
+"\n"
+" --all\n"
+" -a\n"
+" Remove all members of the mailing list.\n"
+" (mutually exclusive with --fromall)\n"
+"\n"
+" --fromall\n"
+" Removes the given addresses from all the lists on this system\n"
+" regardless of virtual domains if you have any. This option cannot "
+"be\n"
+" used -a/--all. Also, you should not specify a listname when using "
+"this\n"
+" option.\n"
+"\n"
+" --nouserack\n"
+" -n\n"
+" Don't send the user acknowledgements.\n"
+"\n"
+" --noadminack\n"
+" -N\n"
+" Don't send the admin acknowledgements.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname is the name of the mailing list to use.\n"
+"\n"
+" addr1 ... are additional addresses to remove.\n"
+"\n"
+msgstr ""
+
+#: bin/remove_members:147
+msgid "Could not open file for reading: %(filename)s."
+msgstr "îÅ ÕÄÁÌÏÓØ ÏÔËÒÙÔØ ÆÁÊÌ ÎÁ ÞÔÅÎÉÅ: %(filename)s."
+
+#: bin/remove_members:154
+msgid "Error opening list %(listname)s... skipping."
+msgstr "îÅ ÕÄÁÌÏÓØ ÏÔËÒÙÔØ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ %(listname)s... ðÒÏÐÕÝÅÎ."
+
+#: bin/remove_members:164
+msgid "No such member: %(addr)s"
+msgstr "ôÁËÏÊ ÐÏÄÐÉÓÞÉË ÏÔÓÕÔÓÔ×ÕÅÔ: %(addr)s"
+
+#: bin/remove_members:171
+msgid "User `%(addr)s' removed from list: %(listname)s."
+msgstr ""
+
+#: bin/rmlist:19
+msgid ""
+"Remove the components of a mailing list with impunity - beware!\n"
+"\n"
+"This removes (almost) all traces of a mailing list. By default, the lists\n"
+"archives are not removed, which is very handy for retiring old lists.\n"
+"\n"
+"Usage:\n"
+" rmlist [-a] [-h] listname\n"
+"\n"
+"Where:\n"
+" --archives\n"
+" -a\n"
+" Remove the list's archives too, or if the list has already been\n"
+" deleted, remove any residual archives.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+msgstr ""
+
+#: bin/rmlist:66 bin/rmlist:69
+msgid "Removing %(msg)s"
+msgstr ""
+
+#: bin/rmlist:72
+msgid "%(listname)s %(msg)s not found as %(dir)s"
+msgstr ""
+
+#: bin/rmlist:96
+msgid "No such list (or list already deleted): %(listname)s"
+msgstr "óÐÉÓÏË ÒÁÓÓÙÌËÉ ÎÅ ÓÕÝÅÓÔ×ÕÅÔ (ÉÌÉ ÕÖÅ ÕÄÁÌÅÎ): %(listname)s"
+
+#: bin/rmlist:98
+msgid "No such list: %(listname)s. Removing its residual archives."
+msgstr ""
+
+#: bin/rmlist:102
+msgid "Not removing archives. Reinvoke with -a to remove them."
+msgstr ""
+"áÒÈÉ×Ù ÕÄÁÌÅÎÙ ÎÅ ÂÙÌÉ. äÌÑ ÉÈ ÕÄÁÌÅÎÉÑ ÚÁÐÕÓÔÉÔÅ ÐÒÏÇÒÁÍÍÕ Ó ÐÁÒÁÍÅÔÒÏÍ -a."
+
+#: bin/rmlist:116
+msgid "list info"
+msgstr ""
+
+#: bin/rmlist:122 bin/rmlist:124
+msgid "private archives"
+msgstr "ÚÁËÒÙÔÙÅ ÁÒÈÉ×Ù"
+
+#: bin/rmlist:126 bin/rmlist:128
+msgid "public archives"
+msgstr "ÏÔËÒÙÔÙÅ ÁÒÈÉ×Ù"
+
+#: bin/sync_members:19
+msgid ""
+"Synchronize a mailing list's membership with a flat file.\n"
+"\n"
+"This script is useful if you have a Mailman mailing list and a sendmail\n"
+":include: style list of addresses (also as is used in Majordomo). For "
+"every\n"
+"address in the file that does not appear in the mailing list, the address "
+"is\n"
+"added. For every address in the mailing list that does not appear in the\n"
+"file, the address is removed. Other options control what happens when an\n"
+"address is added or removed.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] -f file listname\n"
+"\n"
+"Where `options' are:\n"
+"\n"
+" --no-change\n"
+" -n\n"
+" Don't actually make the changes. Instead, print out what would be\n"
+" done to the list.\n"
+"\n"
+" --welcome-msg[=<yes|no>]\n"
+" -w[=<yes|no>]\n"
+" Sets whether or not to send the newly added members a welcome\n"
+" message, overriding whatever the list's `send_welcome_msg' setting\n"
+" is. With -w=yes or -w, the welcome message is sent. With -w=no, "
+"no\n"
+" message is sent.\n"
+"\n"
+" --goodbye-msg[=<yes|no>]\n"
+" -g[=<yes|no>]\n"
+" Sets whether or not to send the goodbye message to removed members,\n"
+" overriding whatever the list's `send_goodbye_msg' setting is. With\n"
+" -g=yes or -g, the goodbye message is sent. With -g=no, no message "
+"is\n"
+" sent.\n"
+"\n"
+" --digest[=<yes|no>]\n"
+" -d[=<yes|no>]\n"
+" Selects whether to make newly added members receive messages in\n"
+" digests. With -d=yes or -d, they become digest members. With -"
+"d=no\n"
+" (or if no -d option given) they are added as regular members.\n"
+"\n"
+" --notifyadmin[=<yes|no>]\n"
+" -a[=<yes|no>]\n"
+" Specifies whether the admin should be notified for each "
+"subscription\n"
+" or unsubscription. If you're adding a lot of addresses, you\n"
+" definitely want to turn this off! With -a=yes or -a, the admin is\n"
+" notified. With -a=no, the admin is not notified. With no -a "
+"option,\n"
+" the default for the list is used.\n"
+"\n"
+" --file <filename | ->\n"
+" -f <filename | ->\n"
+" This option is required. It specifies the flat file to synchronize\n"
+" against. Email addresses must appear one per line. If filename is\n"
+" `-' then stdin is used.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this message.\n"
+"\n"
+" listname\n"
+" Required. This specifies the list to synchronize.\n"
+msgstr ""
+
+#: bin/sync_members:115
+msgid "Bad choice: %(yesno)s"
+msgstr "îÅ×ÅÒÎÙÊ ÏÔ×ÅÔ: %(yesno)s"
+
+#: bin/sync_members:138
+msgid "Dry run mode"
+msgstr "òÅÖÉÍ ÂÅÚ ×ÎÅÓÅÎÉÑ ÉÚÍÅÎÅÎÉÊ"
+
+#: bin/sync_members:159
+msgid "Only one -f switch allowed"
+msgstr "íÏÖÎÏ ÕËÁÚÁÔØ ÔÏÌØËÏ ÏÄÉÎ ÐÁÒÁÍÅÔÒ -f"
+
+#: bin/sync_members:163
+msgid "No argument to -f given"
+msgstr "ðÁÒÁÍÅÔÒ -f ÔÒÅÂÕÅÔ ÁÒÇÕÍÅÎÔÁ"
+
+#: bin/sync_members:172
+msgid "Illegal option: %(opt)s"
+msgstr "îÅ×ÅÒÎÙÊ ÐÁÒÁÍÅÔÒ: %(opt)s"
+
+#: bin/sync_members:178
+msgid "No listname given"
+msgstr "îÅ ÕËÁÚÁÎ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ"
+
+#: bin/sync_members:182
+msgid "Must have a listname and a filename"
+msgstr "éÍÑ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ É ÉÍÑ ÆÁÊÌÁ ÄÏÌÖÎÙ ÂÙÔØ ÕËÁÚÁÎÙ"
+
+#: bin/sync_members:191
+msgid "Cannot read address file: %(filename)s: %(msg)s"
+msgstr "îÅ ÕÄÁÌÏÓØ ÐÒÏÞÉÔÁÔØ ÆÁÊÌ ÁÄÒÅÓÏ×: %(filename)s: %(msg)s"
+
+#: bin/sync_members:203
+msgid "Ignore : %(addr)30s"
+msgstr ""
+
+#: bin/sync_members:212
+msgid "Invalid : %(addr)30s"
+msgstr ""
+
+#: bin/sync_members:215
+msgid "You must fix the preceding invalid addresses first."
+msgstr "óÎÁÞÁÌÁ ×Ù ÄÏÌÖÎÙ ÐÏÐÒÁ×ÉÔØ ×ÙÛÅÕËÁÚÁÎÎÙÅ ÁÄÒÅÓÁ."
+
+#: bin/sync_members:259
+msgid "Added : %(s)s"
+msgstr "äÏÂÁ×ÌÅÎ: %(s)s"
+
+#: bin/sync_members:278
+msgid "Removed: %(s)s"
+msgstr " õÄÁÌÅÎ: %(s)s"
+
+#: bin/transcheck:18
+msgid ""
+"\n"
+"Check a given Mailman translation, making sure that variables and\n"
+"tags referenced in translation are the same variables and tags in\n"
+"the original templates and catalog.\n"
+"\n"
+"Usage:\n"
+"\n"
+"cd $MAILMAN_DIR\n"
+"%(program)s [-q] <lang>\n"
+"\n"
+"Where <lang> is your country code (e.g. 'it' for Italy) and -q is\n"
+"to ask for a brief summary.\n"
+msgstr ""
+
+#: bin/transcheck:57
+msgid "check a translation comparing with the original string"
+msgstr ""
+
+#: bin/transcheck:64
+msgid "scan a string from the original file"
+msgstr ""
+
+#: bin/transcheck:72
+msgid "scan a translated string"
+msgstr ""
+
+#: bin/transcheck:83
+msgid "check for differences between checked in and checked out"
+msgstr ""
+
+#: bin/transcheck:116
+msgid "parse a .po file extracting msgids and msgstrs"
+msgstr ""
+
+#: bin/transcheck:135
+msgid ""
+"States table for the finite-states-machine parser:\n"
+" 0 idle\n"
+" 1 filename-or-comment\n"
+" 2 msgid\n"
+" 3 msgstr\n"
+" 4 end\n"
+" "
+msgstr ""
+
+#: bin/transcheck:272
+msgid ""
+"check a translated template against the original one\n"
+" search also <MM-*> tags if html is not zero"
+msgstr ""
+
+#: bin/transcheck:319
+msgid "scan the po file comparing msgids with msgstrs"
+msgstr "ÏÂÒÁÂÏÔÁÔØ .po-ÆÁÊÌ, ÓÒÁ×ÎÉ×ÁÑ ÓÏÄÅÒÄÉÍÏÅ ÐÏÌÅÊ msgid É msgstr"
+
+#: bin/unshunt:19
+msgid ""
+"Move a message from the shunt queue to the original queue.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [directory]\n"
+"\n"
+"Where:\n"
+"\n"
+" -h / --help\n"
+" Print help and exit.\n"
+"\n"
+"Optional `directory' specifies a directory to dequeue from other than\n"
+"qfiles/shunt.\n"
+msgstr ""
+"ðÅÒÅÍÅÓÔÉÔØ ÓÏÏÂÝÅÎÉÅ ÉÚ ÏÞÅÒÅÄÉ ÏÔÌÏÖÅÎÎÙÈ ÓÏÏÂÝÅÎÉÊ × ÒÁÂÏÞÕÀ ÏÞÅÒÅÄØ.\n"
+"\n"
+"úÁÐÕÓË: %(PROGRAM)s [ÐÁÒÁÍÅÔÒÙ] [ËÁÔÁÌÏÇ]\n"
+"\n"
+"çÄÅ ÄÏÐÕÓÔÉÍÙÅ ÐÁÒÁÍÅÔÒÙ:\n"
+"\n"
+" --help\n"
+" -h\n"
+" ÷Ù×ÅÓÔÉ ÐÏÄÓËÁÚËÕ É ÚÁ×ÅÒÛÉÔØ ÒÁÂÏÔÕ.\n"
+"\n"
+"÷Ù ÍÏÖÅÔÅ ÕËÁÚÁÔØ `ËÁÔÁÌÏÇ', ÅÓÌÉ ÎÕÖÎÏ ÏÂÒÁÂÏÔÁÔØ ÓÏÏÂÝÅÎÉÑ × ËÁÔÁÌÏÇÅ\n"
+"ÏÔÌÉÞÎÏÍ ÏÔ qfiles/shunt.\n"
+
+#: bin/unshunt:81
+msgid ""
+"Cannot unshunt message %(filebase)s, skipping:\n"
+"%(e)s"
+msgstr ""
+
+# MSS: ÐÅÒÅ×ÏÄ. ÎÏ ÎÅ ÏÞÅÎØ ÈÏÒÏÛÉÊ. :(
+#: bin/update:19
+msgid ""
+"Perform all necessary upgrades.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -f/--force\n"
+" Force running the upgrade procedures. Normally, if the version "
+"number\n"
+" of the installed Mailman matches the current version number (or a\n"
+" `downgrade' is detected), nothing will be done.\n"
+"\n"
+" -h/--help\n"
+" Print this text and exit.\n"
+"\n"
+"Use this script to help you update to the latest release of Mailman from\n"
+"some previous version. It knows about versions back to 1.0b4 (?).\n"
+msgstr ""
+"ðÒÏÉÚ×ÅÓÔÉ ×ÓÅ ÎÅÏÂÈÏÄÉÍÙÅ ÏÂÎÏ×ÌÅÎÉÑ.\n"
+"\n"
+"úÁÐÕÓË: %(PROGRAM)s [ÐÁÒÁÍÅÔÒÙ]\n"
+"\n"
+"ðÁÒÁÍÅÔÒÙ:\n"
+" -f/--force\n"
+" ðÒÉÎÕÄÉÔÅÌØÎÏ ×ÙÐÏÌÎÉÔØ ÄÅÊÓÔ×ÉÑ ÐÏ ÏÂÎÏ×ÌÅÎÉÀ. ïÂÙÞÎÏ × ÓÌÕÞÁÅ,\n"
+" ÅÓÌÉ ÔÅËÕÝÁÑ Mailman ÓÏ×ÐÁÄÁÅÔ ÉÌÉ ÍÅÎØÛÅ, ÕÓÔÁÎÁ×ÌÉ×ÁÅÍÏÊ "
+"(ÏÂÎÁÒÕÖÅÎ\n"
+" \"ÏÔËÁÔ\") ÎÉÞÅÇÏ ÓÄÅÌÁÎÏ ÎÅ ÂÕÄÅÔ.\n"
+"\n"
+" --help\n"
+" -h\n"
+" ÷Ù×ÅÓÔÉ ÐÏÄÓËÁÚËÕ É ÚÁ×ÅÒÛÉÔØ ÒÁÂÏÔÕ.\n"
+"\n"
+"üÔÏÔ ÓÃÅÎÁÒÉÊ ÄÏÌÖÅÎ ×ÁÍ ÐÏÍÏÞØ ÏÂÎÏ×ÉÔØ ÕÓÔÁÒÅ×ÛÕÀ ×ÅÒÓÉÀ Mailman ÄÏ "
+"ÐÏÓÌÅÄÎÅÊ\n"
+"×ÙÐÕÝÅÎÎÏÊ ×ÅÒÓÉÉ. ïÎ \"ÚÎÁÅÔ\" Ï ×ÅÒÓÉÑÈ, ÎÁÞÉÎÁÑ Ó ×ÅÒÓÉÉ 1.0b4 (?).\n"
+
+#: bin/update:102
+msgid "Fixing language templates: %(listname)s"
+msgstr "ðÏÐÒÁ×ÌÑÀÔÓÑ ÑÚÙËÏ×ÙÅ ÛÁÂÌÏÎÙ: %(listname)s"
+
+#: bin/update:191 bin/update:466
+msgid "WARNING: could not acquire lock for list: %(listname)s"
+msgstr ""
+"÷îéíáîéå: ÎÅ ÕÄÁÌÏÓØ ÐÏÌÕÞÉÔØ ÅÄÉÎÏÌÉÞÎÙÊ ÄÏÓÔÕÐ Ë ÓÐÉÓËÕ ÒÁÓÓÙÌËÉ: %"
+"(listname)s"
+
+#: bin/update:210
+msgid "Resetting %(n)s BYBOUNCEs disabled addrs with no bounce info"
+msgstr ""
+"òÁÚÂÌÏËÉÒÏ×ÁÎÏ %(n)s ÁÄÒÅÓÏ×, ÂÌÏËÉÒÏ×ÁÎÎÙÈ ÐÏ ÐÏÌÕÞÅÎÉÀ ÏÛÉÂËÉ, ÎÏ ÄÌÑ "
+"ËÏÔÏÒÙÈ ÎÅÔ ÎÉËÁËÏÊ ÄÏÐÏÌÎÉÔÅÌØÎÏÊ ÉÎÆÏÒÍÁÃÉÉ"
+
+#: bin/update:216
+msgid "Updating the held requests database."
+msgstr "ïÂÎÏ×ÌÑÅÔÓÑ ÂÁÚÁ ÄÁÎÎÙÈ ÏÔÌÏÖÅÎÎÙÈ ÚÁÐÒÏÓÏ×."
+
+#: bin/update:238
+msgid ""
+"For some reason, %(mbox_dir)s exists as a file. This won't work with\n"
+"b6, so I'm renaming it to %(mbox_dir)s.tmp and proceeding."
+msgstr ""
+"÷ ÓÉÌÕ ËÁËÉÈ-ÔÏ ÐÒÉÞÉÎ %(mbox_dir)s Ñ×ÌÑÅÔÓÑ ÏÂÙÞÎÙÍ ÆÁÊÌÏÍ. üÔÏ ÍÏÖÅÔ "
+"ÐÒÉ×ÅÓÔÉ\n"
+"Ë ÏÛÉÂËÁÍ. æÁÊÌ ÂÕÄÅÔ ÐÅÒÅÉÍÅÎÏ×ÁÎ × %(mbox_dir)s.tmp É ÒÁÂÏÔÁ ÂÕÄÅÔ "
+"ÐÒÏÄÏÌÖÅÎÁ."
+
+#: bin/update:250
+msgid ""
+"\n"
+"%(listname)s has both public and private mbox archives. Since this list\n"
+"currently uses private archiving, I'm installing the private mbox archive\n"
+"-- %(o_pri_mbox_file)s -- as the active archive, and renaming\n"
+" %(o_pub_mbox_file)s\n"
+"to\n"
+" %(o_pub_mbox_file)s.preb6\n"
+"\n"
+"You can integrate that into the archives if you want by using the 'arch'\n"
+"script.\n"
+msgstr ""
+
+#: bin/update:265
+msgid ""
+"%s has both public and private mbox archives. Since this list\n"
+"currently uses public archiving, I'm installing the public mbox file\n"
+"archive file (%s) as the active one, and renaming\n"
+" %s\n"
+" to\n"
+" %s.preb6\n"
+"\n"
+"You can integrate that into the archives if you want by using the 'arch'\n"
+"script.\n"
+msgstr ""
+"äÌÑ %s ÓÕÝÅÓÔ×ÕÀÔ ÆÁÊÌ ËÁË ÄÌÑ ÏÔËÒÙÔÏÇÏ ÔÁË É ÄÌÑ ÚÁËÒÙÔÏÇÏ ÁÒÈÉ×Á. "
+"ðÏÓËÏÌØËÕ\n"
+"ÁÒÈÉ× ÜÔÏÇÏ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ ÓÅÊÞÁÓ ÏÔËÒÙÔ, ÉÓÐÏÌØÚÏ×ÁÎ ÂÕÄÅÔ ÆÁÊÌ ÏÔËÒÙÔÏÇÏ\n"
+"ÁÒÈÉ×Á (%s), Á ×ÔÏÒÏÊ ÆÁÊÌ ÂÕÄÅÔ ÐÅÒÅÉÍÅÎÏ×ÁÎ ÉÚ\n"
+" %s\n"
+" ×\n"
+" %s.preb6\n"
+"\n"
+"åÓÌÉ ÎÅÏÂÈÏÄÉÍÏ, ×Ù ÍÏÖÅÔÅ ÏÂßÅÄÉÎÉÔØ ÁÒÈÉ×Ù ÐÒÉ ÐÏÍÏÝÉ ÐÒÏÇÒÁÍÍÙ 'arch'.\n"
+
+#: bin/update:282
+msgid "- updating old private mbox file"
+msgstr "-- ÏÂÎÏ×ÌÑÅÔÓÑ ÓÔÁÒÙÊ ÚÁËÒÙÔÙÊ ÁÒÈÉ× × ÆÏÒÍÁÔÅ mbox"
+
+#: bin/update:290
+msgid ""
+" unknown file in the way, moving\n"
+" %(o_pri_mbox_file)s\n"
+" to\n"
+" %(newname)s"
+msgstr ""
+" ×ÓÔÒÅÔÉÌÓÑ ÎÅÚ×ÅÓÔÎÙÊ ÆÁÊÌ:\n"
+" %(o_pri_mbox_file)s\n"
+" ÂÕÄÅÔ ÐÅÒÅÍÅÝÅÎ\n"
+" %(newname)s"
+
+#: bin/update:297 bin/update:320
+msgid ""
+" looks like you have a really recent CVS installation...\n"
+" you're either one brave soul, or you already ran me"
+msgstr ""
+" ÐÏÈÏÖÅ, ÞÔÏ ×Ù ÉÓÐÏÌØÚÕÅÔÅ ×ÁÒÉÁÎÔ mailman ÉÚ CVS...\n"
+" ÌÉÂÏ ×Ù ÄÏÓÔÁÔÏÞÎÏ ÈÒÁÂÒÙ, ÌÉÂÏ ×Ù ÕÖÅ ÚÁÐÕÓËÁÌÉ ÐÒÏÃÅÓÓ ÏÂÎÏ×ÌÅÎÉÑ"
+
+#: bin/update:306
+msgid "- updating old public mbox file"
+msgstr "-- ÏÂÎÏ×ÌÑÅÔÓÑ ÓÔÁÒÙÊ ÏÔËÒÙÔÙÊ ÁÒÈÉ× × ÆÏÒÍÁÔÅ mbox"
+
+#: bin/update:314
+msgid ""
+" unknown file in the way, moving\n"
+" %(o_pub_mbox_file)s\n"
+" to\n"
+" %(newname)s"
+msgstr ""
+" ×ÓÔÒÅÔÉÌÓÑ ÎÅÚ×ÅÓÔÎÙÊ ÆÁÊÌ:\n"
+" %(o_pub_mbox_file)s\n"
+" ÂÕÄÅÔ ÐÅÒÅÍÅÝÅÎ\n"
+" %(newname)s"
+
+#: bin/update:345
+msgid "- This list looks like it might have <= b4 list templates around"
+msgstr ""
+"-- ÐÏÈÏÖÅ, ÞÔÏ ÜÔÏÔ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ ÍÏÖÅÔ ÉÓÐÏÌØÚÏ×ÁÔØ ÛÁÂÌÏÎÙ ×ÅÒÓÉÉ <= b4"
+
+#: bin/update:352
+msgid "- moved %(o_tmpl)s to %(n_tmpl)s"
+msgstr "-- ÐÅÒÅÍÅÝÅÎ %(o_tmpl) × %(n_tmpl)s"
+
+#: bin/update:354
+msgid "- both %(o_tmpl)s and %(n_tmpl)s exist, leaving untouched"
+msgstr "-- ËÁË %(o_tmpl)s, ÔÁË É %(n_tmpl) ÓÕÝÅÓÔ×ÕÀÔ; ÎÉÞÅÇÏ ÎÅ ÓÄÅÌÁÎÏ"
+
+#: bin/update:384
+msgid "removing directory %(src)s and everything underneath"
+msgstr "ÕÄÁÌÑÅÔÓÑ ËÁÔÁÌÏÇ %(src)s É ÅÇÏ ÐÏÄËÁÔÁÌÏÇÉ"
+
+#: bin/update:387
+msgid "removing %(src)s"
+msgstr "ÕÄÁÌÑÅÔÓÑ %(src)s"
+
+#: bin/update:391
+msgid "Warning: couldn't remove %(src)s -- %(rest)s"
+msgstr "ðÒÅÄÕÐÒÅÖÄÅÎÉÅ: ÎÅ ÕÄÁÌÏÓØ ÕÄÁÌÉÔØ %(pyc)s: %(rest)s"
+
+#: bin/update:396
+msgid "couldn't remove old file %(pyc)s -- %(rest)s"
+msgstr "ÎÅ ÕÄÁÌÏÓØ ÕÄÁÌÉÔØ ÓÔÁÒÙÊ %(pyc)s: %(rest)s"
+
+#: bin/update:400
+msgid "updating old qfiles"
+msgstr "ÏÂÎÏ×ÌÑÀÔÓÑ ÓÔÁÒÙÅ ÆÁÊÌÙ ÏÞÅÒÅÄÉ"
+
+#: bin/update:422
+msgid "getting rid of old source files"
+msgstr "ÕÄÁÌÑÀÔÓÑ ÕÓÔÁÒÅ×ÛÉÅ ÆÁÊÌÙ"
+
+#: bin/update:432
+msgid "no lists == nothing to do, exiting"
+msgstr "ÎÅÔ ÓÐÉÓËÏ× -- ÎÅÞÅÇÏ ÄÅÌÁÔØ; ÐÒÏÇÒÁÍÍÁ ÚÁ×ÅÒÛÁÅÔÓÑ"
+
+#: bin/update:439
+msgid ""
+"fixing all the perms on your old html archives to work with b6\n"
+"If your archives are big, this could take a minute or two..."
+msgstr ""
+"ÐÏÐÒÁ×ÌÑÀÔÓÑ ÒÅÖÉÍÙ ÄÏÓÔÕÐÁ Ë ÓÔÁÒÙÍ html-ÁÒÈÉ×ÁÍ\n"
+"ÅÓÌÉ ÁÒÈÉ×Ù ×ÅÌÉËÉ, ÏÐÅÒÁÃÉÑ ÍÏÖÅÔ ÚÁÎÑÔØ ÎÅÓËÏÌØËÏ ÍÉÎÕÔ..."
+
+#: bin/update:444
+msgid "done"
+msgstr "ÇÏÔÏ×Ï"
+
+#: bin/update:446
+msgid "Updating mailing list: %(listname)s"
+msgstr "ïÂÎÏ×ÌÅÎÉÅ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ: %(listname)s"
+
+#: bin/update:449
+msgid "Updating Usenet watermarks"
+msgstr "ïÂÎÏ×ÌÅÎÉÅ usenet-ÍÅÔÏË"
+
+#: bin/update:454
+msgid "- nothing to update here"
+msgstr "-- ÚÄÅÓØ ÏÂÎÏ×ÌÑÔØ ÎÅÞÅÇÏ"
+
+#: bin/update:477
+msgid "- usenet watermarks updated and gate_watermarks removed"
+msgstr "-- usenet-ÍÅÔËÉ ÏÂÎÏ×ÌÅÎÙ, ÆÁÊÌ gate_watermarks ÕÄÁÌÅÎ"
+
+#: bin/update:487
+msgid "Updating old pending_subscriptions.db database"
+msgstr "ïÂÎÏ×ÌÑÅÔÓÑ ÓÔÁÒÁÑ ÂÁÚÁ ÄÁÎÎÙÈ pending_subscriptions.db"
+
+#: bin/update:504
+msgid ""
+"\n"
+"\n"
+"NOTE NOTE NOTE NOTE NOTE\n"
+"\n"
+" You are upgrading an existing Mailman installation, but I can't tell "
+"what\n"
+" version you were previously running.\n"
+"\n"
+" If you are upgrading from Mailman 1.0b9 or earlier you will need to\n"
+" manually update your mailing lists. For each mailing list you need to\n"
+" copy the file templates/options.html lists/<listname>/options.html.\n"
+"\n"
+" However, if you have edited this file via the Web interface, you will "
+"have\n"
+" to merge your changes into this file, otherwise you will lose your\n"
+" changes.\n"
+"\n"
+"NOTE NOTE NOTE NOTE NOTE\n"
+"\n"
+msgstr ""
+"\n"
+"\n"
+"÷îéíáîéå ÷îéíáîéå ÷îéíáîéå ÷îéíáîéå\n"
+"\n"
+" ÷Ù ÏÂÎÏ×ÌÑÅÔÅ ÒÁÂÏÞÕÀ ÓÉÓÔÅÍÕ, ÏÄÎÁËÏ, ÏÐÒÅÄÅÌÉÔØ, ËÁËÕÀ ÉÍÅÎÎÏ ×ÅÒÓÉÀ\n"
+" ×Ù ÉÓÐÏÌØÚÕÅÔÅ, ÎÅ ÕÄÁÌÏÓØ.\n"
+"\n"
+" åÓÌÉ ×Ù ÏÂÎÏ×ÌÑÅÔÅ Mailman 1.0b9 (ÉÌÉ ÓÔÁÒÛÅ) ×ÁÍ ÐÒÉÄÅÔÓÑ ÏÂÎÏ×ÉÔØ "
+"ÉÎÆÏÒÍÁÃÉÀ\n"
+" Ï ×ÁÛÉÈ ÓÐÉÓËÁÈ ÒÁÓÓÙÌËÉ ×ÒÕÞÎÕÀ. äÌÑ ËÁÖÄÏÇÏ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ "
+"ÓËÏÐÉÒÕÊÔÅ\n"
+" ÆÁÊÌ templates/options.html × ÆÁÊÌ lists/<ÉÍÑ ÓÐÉÓËÁ>/options.html.\n"
+"\n"
+" åÓÌÉ ÖÅ ×Ù ÉÚÍÅÎÉÌÉ ÜÔÏÔ ÆÁÊÌ ÞÅÒÅÚ ×ÅÂ-ÉÎÔÅÒÆÅÊÓ, ×ÁÍ ÐÒÉÄÅÔÓÑ ×ÎÅÓÔÉ "
+"ÜÔÉ\n"
+" ÉÚÍÅÎÅÎÉÑ ÅÝÅ ÒÁÚ.\n"
+"\n"
+"÷îéíáîéå ÷îéíáîéå ÷îéíáîéå ÷îéíáîéå\n"
+"\n"
+
+#: bin/update:561
+msgid "No updates are necessary."
+msgstr "ïÂÎÏ×ÌÅÎÉÅ ÎÅ ÔÒÅÂÕÅÔÓÑ."
+
+#: bin/update:564
+msgid ""
+"Downgrade detected, from version %(hexlversion)s to version %(hextversion)s\n"
+"This is probably not safe.\n"
+"Exiting."
+msgstr ""
+"ïÂÎÁÒÕÖÅÎÁ ÐÏÐÙÔËÁ ÐÅÒÅÈÏÄÁ ÎÁ ÂÏÌÅÅ ÓÔÁÒÕÀ ×ÅÒÓÉÀ (Ó ×ÅÒÓÉÉ %(hexlversion)s "
+"ÎÁ\n"
+"×ÅÒÓÉÀ %(hextversion)s). óËÏÒÅÅ ×ÓÅÇÏ, ÜÔÏ ÎÅÂÅÚÏÐÁÓÎÏ.\n"
+"òÁÂÏÔÁ ÚÁ×ÅÒÛÅÎÁ."
+
+#: bin/update:569
+msgid "Upgrading from version %(hexlversion)s to %(hextversion)s"
+msgstr "éÄÅÔ ÏÂÎÏ×ÌÅÎÉÅ Ó ×ÅÒÓÉÉ %(hexlversion)s ÎÁ %(hextversion)s"
+
+#: bin/update:578
+msgid ""
+"\n"
+"ERROR:\n"
+"\n"
+"The locks for some lists could not be acquired. This means that either\n"
+"Mailman was still active when you upgraded, or there were stale locks in "
+"the\n"
+"%(lockdir)s directory.\n"
+"\n"
+"You must put Mailman into a quiescent state and remove all stale locks, "
+"then\n"
+"re-run \"make update\" manually. See the INSTALL and UPGRADE files for "
+"details.\n"
+msgstr ""
+"\n"
+"ïûéâëá:\n"
+"\n"
+"äÌÑ ÎÅËÏÔÏÒÙÈ ÓÐÉÓËÏ× ÎÅ ÕÄÁÌÏÓØ ÐÏÌÕÞÉÔØ ÅÄÉÎÏÌÉÞÎÙÊ ÄÏÓÔÕÐ. üÔÏ ÍÏÖÅÔ "
+"ÏÚÎÁÞÁÔØ,\n"
+"ÞÔÏ ÌÉÂÏ Mailman ÂÙÌ ÚÁÐÕÝÅÎ, × ÍÏÍÅÎÔ, ËÏÇÄÁ ×Ù ÐÙÔÁÌÉÓØ ÏÂÎÏ×ÌÑÔØ ÅÇÏ, "
+"ÌÉÂÏ ÏÓÔÁÌÉÓØ\n"
+"ËÁËÉÅ-ÔÏ ÆÁÊÌÙ ÚÁÍËÏ× × ËÁÔÁÌÏÇÅ %(lockdir)s.\n"
+"\n"
+"÷Ù ÄÏÌÖÎÙ ÏÓÔÁÎÏ×ÉÔØ Mailman É ÕÄÁÌÉÔØ ×ÓÅ ÆÁÊÌÙ ÚÁÍËÏ×, Á ÐÏÓÌÅ ÜÔÏÇÏ "
+"×ÙÐÏÌÎÉÔØ ËÏÍÁÎÄÕ\n"
+"\"make update\". äÏÐÏÌÎÉÔÅÌØÎÕÀ ÉÎÆÏÒÍÁÃÉÀ ×Ù ÍÏÖÅÔÅ ÎÁÊÔÉ × ÆÁÊÌÁÈ INSTALL "
+"É UPGRADE.\n"
+
+#: bin/version:19
+msgid "Print the Mailman version.\n"
+msgstr "÷Ù×ÅÓÔÉ ×ÅÒÓÉÀ Mailman.\n"
+
+#: bin/version:26
+msgid "Using Mailman version:"
+msgstr "éÓÐÏÌØÚÕÅÔÓÑ Mailman ×ÅÒÓÉÉ:"
+
+#: bin/withlist:19
+msgid ""
+"General framework for interacting with a mailing list object.\n"
+"\n"
+"There are two ways to use this script: interactively or programmatically.\n"
+"Using it interactively allows you to play with, examine and modify a "
+"MailList\n"
+"object from Python's interactive interpreter. When running interactively, "
+"a\n"
+"MailList object called `m' will be available in the global namespace. It "
+"also\n"
+"loads the class MailList into the global namespace.\n"
+"\n"
+"Programmatically, you can write a function to operate on a MailList object,\n"
+"and this script will take care of the housekeeping (see below for "
+"examples).\n"
+"In that case, the general usage syntax is:\n"
+"\n"
+"%% bin/withlist [options] listname [args ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" -l / --lock\n"
+" Lock the list when opening. Normally the list is opened unlocked\n"
+" (e.g. for read-only operations). You can always lock the file "
+"after\n"
+" the fact by typing `m.Lock()'\n"
+"\n"
+" Note that if you use this option, you should explicitly call m.Save"
+"()\n"
+" before exiting, since the interpreter's clean up procedure will not\n"
+" automatically save changes to the MailList object (but it will "
+"unlock\n"
+" the list).\n"
+"\n"
+" -i / --interactive\n"
+" Leaves you at an interactive prompt after all other processing is\n"
+" complete. This is the default unless the -r option is given.\n"
+"\n"
+" --run [module.]callable\n"
+" -r [module.]callable\n"
+" This can be used to run a script with the opened MailList object.\n"
+" This works by attempting to import `module' (which must already be\n"
+" accessible on your sys.path), and then calling `callable' from the\n"
+" module. callable can be a class or function; it is called with the\n"
+" MailList object as the first argument. If additional args are "
+"given\n"
+" on the command line, they are passed as subsequent positional args "
+"to\n"
+" the callable.\n"
+"\n"
+" Note that `module.' is optional; if it is omitted then a module "
+"with\n"
+" the name `callable' will be imported.\n"
+"\n"
+" The global variable `r' will be set to the results of this call.\n"
+"\n"
+" --all / -a\n"
+" This option only works with the -r option. Use this if you want to\n"
+" execute the script on all mailing lists. When you use -a you "
+"should\n"
+" not include a listname argument on the command line. The variable "
+"`r'\n"
+" will be a list of all the results.\n"
+"\n"
+" --quiet / -q\n"
+" Suppress all status messages.\n"
+"\n"
+" --help / -h\n"
+" Print this message and exit\n"
+"\n"
+"\n"
+"Here's an example of how to use the -r option. Say you have a file in the\n"
+"Mailman installation directory called `listaddr.py', with the following\n"
+"two functions:\n"
+"\n"
+"def listaddr(mlist):\n"
+" print mlist.GetListEmail()\n"
+"\n"
+"def requestaddr(mlist):\n"
+" print mlist.GetRequestEmail()\n"
+"\n"
+"Now, from the command line you can print the list's posting address by "
+"running\n"
+"the following from the command line:\n"
+"\n"
+"%% bin/withlist -r listaddr mylist\n"
+"Loading list: mylist (unlocked)\n"
+"Importing listaddr ...\n"
+"Running listaddr.listaddr() ...\n"
+"mylist@myhost.com\n"
+"\n"
+"And you can print the list's request address by running:\n"
+"\n"
+"%% bin/withlist -r listaddr.requestaddr mylist\n"
+"Loading list: mylist (unlocked)\n"
+"Importing listaddr ...\n"
+"Running listaddr.requestaddr() ...\n"
+"mylist-request@myhost.com\n"
+"\n"
+"As another example, say you wanted to change the password for a particular\n"
+"user on a particular list. You could put the following function in a file\n"
+"called `changepw.py':\n"
+"\n"
+"from Mailman.Errors import NotAMember\n"
+"\n"
+"def changepw(mlist, addr, newpasswd):\n"
+" try:\n"
+" mlist.setMemberPassword(addr, newpasswd)\n"
+" mlist.Save()\n"
+" except NotAMember:\n"
+" print 'No address matched:', addr\n"
+"\n"
+"and run this from the command line:\n"
+"%% bin/withlist -l -r changepw mylist somebody@somewhere.org foobar\n"
+msgstr ""
+
+#: bin/withlist:151
+msgid ""
+"Unlock a locked list, but do not implicitly Save() it.\n"
+"\n"
+" This does not get run if the interpreter exits because of a signal, or "
+"if\n"
+" os._exit() is called. It will get called if an exception occurs "
+"though.\n"
+" "
+msgstr ""
+"òÁÚÂÌÏËÉÒÏ×ÁÔØ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ, ÎÏ ÎÅ ÏÂÎÏ×ÌÑÔØ ÉÎÆÏÒÍÁÃÉÀ Ï ÎÅÍ.\n"
+"\n"
+" üÔÁ ÆÕÎËÃÉÑ ÎÅ ÂÕÄÅÔ ×ÙÐÏÌÎÅÎÁ, ÅÓÌÉ ÉÎÔÅÒÐÒÅÔÁÔÏÒ ÐÏÌÕÞÉÔ ÓÉÇÎÁÌ "
+"ÐÒÅÒÙ×ÁÎÉÑ\n"
+" ÉÌÉ ÅÓÌÉ ÂÕÄÅÔ ×ÙÚ×ÁÎÁ ÆÕÎËÃÉÑ os._exit (); ÄÅÊÓÔ×ÉÅ ÂÕÄÅÔ ×ÙÐÏÌÎÅÎÏ "
+"ÔÏÌØËÏ\n"
+" ÐÏ ×ÏÚÎÉËÎÏ×ÅÎÉÀ ÉÓËÌÀÞÉÔÅÌØÎÏÊ ÓÉÔÕÁÃÉÉ (exception)."
+
+#: bin/withlist:162
+msgid "Unlocking (but not saving) list: %(listname)s"
+msgstr ""
+"òÁÚÂÌÏËÉÒÕÅÔÓÑ (ÎÏ ÎÅ ÏÂÎÏ×ÌÑÅÔÓÑ) ÉÎÆÏÒÍÁÃÉÑ Ï ÓÐÉÓËÅ ÒÁÓÓÙÌËÉ: %(listname)s"
+
+#: bin/withlist:166
+msgid "Finalizing"
+msgstr "úÁ×ÅÒÛÅÎÉÅ ÒÁÂÏÔÙ"
+
+#: bin/withlist:175
+msgid "Loading list %(listname)s"
+msgstr "úÁÇÒÕÖÁÅÔÓÑ ÉÎÆÏÒÍÁÃÉÑ Ï ÓÐÉÓËÅ ÒÁÓÓÙÌËÉ %(listname)s"
+
+#: bin/withlist:177
+msgid "(locked)"
+msgstr "(ÚÁÂÌÏËÉÒÏ×ÁÎ)"
+
+#: bin/withlist:179
+msgid "(unlocked)"
+msgstr "(ÒÁÚÂÌÏËÉÒÏ×ÁÎ)"
+
+#: bin/withlist:184
+msgid "Unknown list: %(listname)s"
+msgstr "îÅÉÚ×ÅÓÔÎÙÊ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ: %(listname)s"
+
+#: bin/withlist:223
+msgid "No list name supplied."
+msgstr "ïÔÓÕÔÓÔ×ÕÅÔ ÎÁÚ×ÁÎÉÅ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ."
+
+#: bin/withlist:226
+msgid "--all requires --run"
+msgstr "ÐÁÒÁÍÅÔÒ --all ÔÒÅÂÕÅÔ ÎÁÌÉÞÉÅ ÐÁÒÁÍÅÔÒÁ --run"
+
+#: bin/withlist:246
+msgid "Importing %(module)s..."
+msgstr "éÍÐÏÒÔÉÒÕÅÔÓÑ %(module)s..."
+
+#: bin/withlist:249
+msgid "Running %(module)s.%(callable)s()..."
+msgstr "÷ÙÐÏÌÎÑÅÔÓÑ %(module)s.%(callable)s()..."
+
+#: bin/withlist:270
+msgid "The variable `m' is the %(listname)s MailList instance"
+msgstr ""
+"ðÅÒÅÍÅÎÎÁÑ `m' -- ÜËÚÅÍÐÌÑÒ ÏÂßÅËÔÁ, ÐÒÅÄÓÔÁ×ÌÑÀÝÅÇÏ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ %"
+"(listname)s"
+
+#: cron/bumpdigests:19
+msgid ""
+"Increment the digest volume number and reset the digest number to one.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" --help/-h\n"
+" Print this message and exit.\n"
+"\n"
+"The lists named on the command line are bumped. If no list names are "
+"given,\n"
+"all lists are bumped.\n"
+msgstr ""
+"õ×ÅÌÉÞÉÔØ ÎÏÍÅÒ ÔÏÍÁ ÄÁÊÄÖÅÓÔÁ ÎÁ ÏÄÉÎ É ÕÓÔÁÎÏ×ÉÔØ ÎÏÍÅÒ ÄÁÊÄÖÅÓÔÁ × ÏÄÉÎ.\n"
+"\n"
+"úÁÐÕÓË: %(PROGRAM)s [ÐÁÒÁÍÅÔÒÙ] [ÓÐÉÓÏË-ÒÁÓÓÙÌËÉ ...]\n"
+"\n"
+"ðÁÒÁÍÅÔÒÙ:\n"
+"\n"
+" --help\n"
+" -h\n"
+" ÷Ù×ÅÓÔÉ ÐÏÄÓËÁÚËÕ É ÚÁ×ÅÒÛÉÔØ ÒÁÂÏÔÕ.\n"
+"\n"
+"ïÐÅÒÁÃÉÑ ÂÕÄÅÔ ÐÒÏÉÚ×ÅÄÅÎÁ ÎÁÄ ÕËÁÚÁÎÎÙÍÉ ÓÐÉÓËÁÍÉ ÒÁÓÓÙÌËÉ, ÅÓÌÉ ÓÐÉÓÏË "
+"ÒÁÓÓÙÌËÉ\n"
+"ÎÅ ÕËÁÚÁÎ, ÏÐÅÒÁÃÉÑ ÂÕÄÅÔ ÐÒÏÉÚ×ÅÄÅÎÁ ÎÁÄ ×ÓÅÍÉ ÓÐÉÓËÁÍÉ ÒÁÓÓÙÌËÉ.\n"
+
+#: cron/checkdbs:19
+msgid ""
+"Invoked by cron, this checks for pending moderation requests and mails the\n"
+"list moderators if necessary.\n"
+msgstr ""
+"ïÂÙÞÎÏ ÜÔÁ ÐÒÏÇÒÁÍÍÁ ÚÁÐÕÓËÁÅÔÓÑ ÉÚ-ÐÏÄ ÐÒÏÇÒÁÍÍÙ cron ÄÌÑ ÐÒÏ×ÅÒËÉ ÎÁ\n"
+"ÎÁÌÉÞÉÅ ÓÏÏÂÝÅÎÉÊ, ÔÒÅÂÕÀÝÉÈ ÏÂÒÁÂÏÔËÉ ÍÏÄÅÒÁÔÏÒÏÍ, É, ÐÒÉ ÎÁÌÉÞÉÉ ÔÁËÏ×ÙÈ,\n"
+"ÏÔÐÒÁ×ÌÑÅÔ ÉÚ×ÅÝÅÎÉÅ ÍÏÄÅÒÁÔÏÒÁÍ.\n"
+
+#: cron/checkdbs:81
+msgid "%(count)d %(realname)s moderator request(s) waiting"
+msgstr ""
+
+#: cron/checkdbs:100
+msgid "Pending subscriptions:"
+msgstr "úÁÐÒÏÓÙ ÎÁ ÐÏÄÐÉÓËÕ, ÏÖÉÄÁÀÝÉÅ ÏÂÒÁÂÏÔËÉ:"
+
+#: cron/checkdbs:109
+msgid ""
+"\n"
+"Pending posts:"
+msgstr ""
+"\n"
+"óÏÏÂÝÅÎÉÑ, ÏÖÉÄÁÀÝÉÅ ÏÂÒÁÂÏÔËÉ:"
+
+#: cron/checkdbs:114
+msgid ""
+"From: %(sender)s on %(date)s\n"
+"Subject: %(subject)s\n"
+"Cause: %(reason)s"
+msgstr ""
+" ïÔ: %(sender)s (ÄÁÔÉÒÏ×ÁÎÎÏÅ %(date)s)\n"
+" ôÅÍÁ: %(subject)s\n"
+" ðÒÉÞÉÎÁ: %(reason)s"
+
+#: cron/disabled:19
+#, fuzzy
+msgid ""
+"Process disabled members, recommended once per day.\n"
+"\n"
+"This script cruises through every mailing list looking for members whose\n"
+"delivery is disabled. If they have been disabled due to bounces, they will\n"
+"receive another notification, or they may be removed if they've received "
+"the\n"
+"maximum number of notifications.\n"
+"\n"
+"Use the --byadmin, --byuser, and --unknown flags to also send notifications "
+"to\n"
+"members whose accounts have been disabled for those reasons. Use --all to\n"
+"send the notification to all disabled members.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -h / --help\n"
+" Print this message and exit.\n"
+"\n"
+" -o / --byadmin\n"
+" Also send notifications to any member disabled by the list\n"
+" owner/administrator.\n"
+"\n"
+" -m / --byuser\n"
+" Also send notifications to any member disabled by themselves.\n"
+"\n"
+" -u / --unknown\n"
+" Also send notifications to any member disabled for unknown reasons\n"
+" (usually a legacy disabled address).\n"
+"\n"
+" -b / --notbybounce\n"
+" Don't send notifications to members disabled because of bounces "
+"(the\n"
+" default is to notify bounce disabled members).\n"
+"\n"
+" -a / --all\n"
+" Send notifications to all disabled members.\n"
+"\n"
+" -f / --force\n"
+" Send notifications to disabled members even if they're not due a "
+"new\n"
+" notification yet.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" Process only the given list, otherwise do all lists.\n"
+msgstr ""
+"ïÂÒÁÂÏÔÁÔØ ÂÌÏËÉÒÏ×ÁÎÎÙÈ ÐÏÄÐÉÓÞÉËÏ×. (òÅËÏÍÅÎÄÕÅÔÓÑ ÚÁÐÕÓËÁÔØ ÒÁÚ × ÄÅÎØ)\n"
+"\n"
+"üÔÏÔ ÓÃÅÎÁÒÉÊ ÒÁÓÓÍÁÔÒÉ×ÁÅÔ ÐÏÄÐÉÓÞÉËÏ×, ËÏÔÏÒÙÍ ÄÏÓÔÁ×ËÁ ÓÐÉÓËÏ× ÒÁÓÓÙÌÏË\n"
+"ÂÙÌÁ ÚÁÂÌÏËÉÒÏ×ÁÎÁ. åÓÌÉ ÏÎÉ ÂÌÏËÉÒÏ×ÁÎÙ × ÓÉÌÕ ÏÛÉÂÏË ÄÏÓÔÁ×ËÅ, ÉÍ ÂÕÄÅÔ\n"
+"ÏÔÐÒÁ×ÌÅÎÏ ÄÏÐÏÌÎÉÔÅÌØÎÏ ÏÐÏ×ÅÝÅÎÉÅ ÉÌÉ ÖÅ, ÅÓÌÉ ÉÍ ÂÙÌÏ ÏÔÐÒÁ×ÌÅÎÏ "
+"ÍÁËÓÉÍÁÌØÎÏÅ\n"
+"ËÏÌÉÞÅÓÔ×Ï ÏÐÏÐ×ÅÝÅÎÉÊ, ÉÈ ÐÏÄÐÉÓËÁ ÍÏÖÅÔ ÂÙÔØ ÕÄÁÌÅÎÁ.\n"
+"\n"
+"Use the --byadmin, --byuser, and --unknown flags to also send notifications "
+"to\n"
+"members whose accounts have been disabled for those reasons. Use --all to\n"
+"send the notification to all disabled members.\n"
+"\n"
+"úÁÐÕÓË: %(PROGRAM)s [ÐÁÒÁÍÅÔÒÙ]\n"
+"\n"
+"Options:\n"
+" -h / --help\n"
+" ÷Ù×ÅÓÔÉ ÐÏÄÓËÁÚËÕ É ÚÁ×ÅÒÛÉÔØ ÒÁÂÏÔÕ.\n"
+"\n"
+" -o / --byadmin\n"
+" ÔÁËÖÅ ÉÚ×ÅÝÁÔØ Ï ÐÏÌØÚÏ×ÁÔÅÌÑÈ, ÂÌÏËÉÒÏ×Á×ÁÎÎÙÈ ÁÄÍÉÎÉÓÔÒÁÔÏÒÏÍ\n"
+" ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ.\n"
+"\n"
+" -m / --byuser\n"
+" ÔÁËÖÅ ÉÚ×ÅÝÁÔØ Ï ÐÏÌØÚÏ×ÁÔÅÌÑÈ, ÓÁÍÉ ÂÌÏËÉÒÏ×Á×ÛÉÈ Ó×ÏÀ ÐÏÄÐÉÓËÕ\n"
+"\n"
+" -u / --unknown\n"
+" Also send notifications to any member disabled for unknown reasons\n"
+" (usually a legacy disabled address).\n"
+"\n"
+" -b / --notbybounce\n"
+" Don't send notifications to members disabled because of bounces "
+"(the\n"
+" default is to notify bounce disabled members).\n"
+"\n"
+" -a / --all\n"
+" ÉÚ×ÅÝÁÔØ ×ÓÅÈ ÂÌÏËÉÒÏ×ÁÎÎÙÈ ÐÏÄÐÉÓÞÉËÏ×.\n"
+"\n"
+" -f / --force\n"
+" Send notifications to disabled members even if they're not due a "
+"new\n"
+" notification yet.\n"
+"\n"
+" -l listname\n"
+" --listname=ÉÍÑ-ÓÐÉÓËÁ\n"
+" ïÂÒÁÂÏÔÁÔØ ÔÏÌØËÏ ÕËÁÚÁÎÎÙÊ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ. åÓÌÉ ÎÅ ÕËÁÚÁÎ, ÔÏ\n"
+" ÏÂÒÁÂÏÔÁÔØ ×ÓÅ.\n"
+
+#: cron/disabled:143
+msgid "[disabled by periodic sweep and cull, no message available]"
+msgstr ""
+"[ÚÁÂÌÏËÉÒÏ×ÁÎ × ÒÅÚÕÌØÔÁÔÅ ÐÅÒÉÏÄÉÞÅÓËÏÊ ÐÒÏ×ÅÒËÉ É ÞÉÓÔËÉ. ÐÏÑÓÎÅÎÉÅ "
+"ÏÔÓÕÔÓÔ×ÕÅÔ]"
+
+#: cron/gate_news:19
+msgid ""
+"Poll the NNTP servers for messages to be gatewayed to mailing lists.\n"
+"\n"
+"Usage: gate_news [options]\n"
+"\n"
+"Where options are\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this text and exit.\n"
+"\n"
+msgstr ""
+"ïÐÒÏÓÉÔØ NNTP-ÓÅÒ×ÅÒÙ ÎÁ ÎÁÌÉÞÉÅ ÓÏÏÂÝÅÎÉÊ ÄÌÑ ÇÅÊÔÏ×ÁÎÉÑ × ÓÐÉÓËÉ "
+"ÒÁÓÓÙÌËÉ.\n"
+"\n"
+"úÁÐÕÓË: gate_news [ÐÁÒÁÍÅÔÒÙ]\n"
+"\n"
+"çÄÅ ÄÏÐÕÓÔÉÍÙÍÉ Ñ×ÌÑÀÔÓÑ ÓÌÅÄÕÀÝÉÅ ÐÁÒÁÍÅÔÒÙ:\n"
+"\n"
+" --help\n"
+" -h\n"
+" ÷Ù×ÅÓÔÉ ÐÏÄÓËÁÚËÕ É ÚÁ×ÅÒÛÉÔØ ÒÁÂÏÔÕ.\n"
+"\n"
+
+#: cron/mailpasswds:19
+msgid ""
+"Send password reminders for all lists to all users.\n"
+"\n"
+"This program scans all mailing lists and collects users and their "
+"passwords,\n"
+"grouped by the list's host_name if mm_cfg.VIRTUAL_HOST_OVERVIEW is true. "
+"Then\n"
+"one email message is sent to each unique user (per-virtual host) containing\n"
+"the list passwords and options url for the user. The password reminder "
+"comes\n"
+"from the mm_cfg.MAILMAN_SITE_LIST, which must exist.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -l listname\n"
+" --listname=listname\n"
+" Send password reminders for the named list only. If omitted,\n"
+" reminders are sent for all lists. Multiple -l/--listname options "
+"are\n"
+" allowed.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+msgstr ""
+"òÁÚÏÓÌÁÔØ ÎÁÐÏÍÉÎÁÎÉÅ Ï ÐÁÒÏÌÑÈ ×ÓÅÍ ÐÏÄÐÉÓÞÉËÁÍ ×ÓÅÈ ÓÐÉÓËÏ× ÒÁÓÓÙÌÏË\n"
+"\n"
+"üÔÁ ÐÒÏÇÒÁÍÍÁ ÐÒÏÓÍÁÔÒÉ×ÁÅÔ ×ÓÅ ÓÐÉÓËÉ ÒÁÓÓÙÌËÉ É ÓÏÂÉÒÁÅÔ ÉÎÆÏÒÍÁÃÉÀ Ï\n"
+"ÐÏÌØÚÏ×ÁÔÅÌÑÈ (ÅÓÌÉ ÚÎÁÞÅÎÉÅ ÐÅÒÅÍÅÎÎÏÊ mm_cfg.VIRTUAL_HOST_OVERVIEW "
+"Ñ×ÌÑÅÔÓÑ\n"
+"ÉÓÔÉÎÎÙÍ, ÇÒÕÐÐÉÒÕÅÔ ÉÈ ÐÏ ÈÏÓÔÕ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ), Á ÚÁÔÅÍ ËÁÖÄÏÍÕ "
+"ÕÎÉËÁÌØÎÏÍÕ\n"
+"ÐÏÄÐÉÓÞÉËÕ ÏÔÐÒÁ×ÌÑÅÔ ÓÏÏÂÝÅÎÉÅ, ÓÏÄÅÒÖÁÝÅÅ ÐÁÒÏÌÉ É ÁÄÒÅÓÁ ÓÔÒÁÎÉà ÄÌÑ "
+"ËÁÖÄÏÇÏ\n"
+"ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ. ðÉÓØÍÏ ÏÔÐÒÁ×ÌÑÅÔ ÏÔ ÉÍÅÎÉ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ,\n"
+"mm_cfg.MAILMAN_SITE_LIST, ËÏÔÏÒÙÊ ÄÏÌÖÅÎ ÓÕÝÅÓÔ×Ï×ÁÔØ.\n"
+"\n"
+"úÁÐÕÓË: %(PROGRAM)s [ÐÁÒÁÍÅÔÒÙ]\n"
+"\n"
+"ðÁÒÁÍÅÔÒÙ:\n"
+" -l ÉÍÑÓÐÉÓËÁ\n"
+" --listname=ÉÍÑÓÐÉÓËÁ\n"
+" òÁÚÏÓÌÁÔØ ÎÁÐÏÍÉÎÁÎÉÅ ÔÏÌØËÏ ÄÌÑ ÕËÁÚÁÎÎÏÇÏ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ. åÓÌÉ\n"
+" ÏÔÓÕÔÓÔ×ÕÅÔ, ÏÂÒÁÂÁÔÙ×ÁÔØ ×ÓÅ ÓÐÉÓËÉ ÒÁÓÓÙÌËÉ. ðÒÉ ÎÅÏÂÈÏÄÉÍÏÓÔÉ ×Ù\n"
+" ÍÏÖÅÔÅ ÕËÁÚÁÔØ ÎÅÓËÏÌØËÏ ÐÁÒÁÍÅÔÒÏ× -l/--listname.\n"
+" -h/--help\n"
+" ÷Ù×ÅÓÔÉ ÜÔÏ ÓÏÏÂÝÅÎÉÅ É ÚÁ×ÅÒÛÉÔØ ÒÁÂÏÔÕ.\n"
+
+#: cron/mailpasswds:111
+msgid "Site list is missing: %(sitelistname)s"
+msgstr "ïÔÓÕÔÓ×ÕÅÔ ÓÌÕÖÅÂÎÙÊ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ: %(sitelistname)s"
+
+#: cron/mailpasswds:179
+msgid "Password // URL"
+msgstr "ðÁÒÏÌØ // URL"
+
+#: cron/mailpasswds:199
+msgid "%(host)s mailing list memberships reminder"
+msgstr "óÐÉÓÏË ÐÏÄÐÉÓÏË ÎÁ ÓÐÉÓËÉ ÒÁÓÓÙÌÏË ÎÁ ÓÅÒ×ÅÒÅ %(host)s"
+
+#: cron/nightly_gzip:19
+msgid ""
+"Re-generate the Pipermail gzip'd archive flat files.\n"
+"\n"
+"This script should be run nightly from cron. When run from the command "
+"line,\n"
+"the following usage is understood:\n"
+"\n"
+"Usage: %(program)s [-v] [-h] [listnames]\n"
+"\n"
+"Where:\n"
+" --verbose\n"
+" -v\n"
+" print each file as it's being gzip'd\n"
+"\n"
+" --help\n"
+" -h\n"
+" print this message and exit\n"
+"\n"
+" listnames\n"
+" Optionally, only compress the .txt files for the named lists. "
+"Without \n"
+" this, all archivable lists are processed.\n"
+"\n"
+msgstr ""
+"ðÅÒÅÓÏÚÄÁÔØ gzip-ÓÖÁÔÙÅ ÁÒÈÉ×Ù ÐÒÏÇÒÁÍÍÏÊ Pipermail.\n"
+"\n"
+"üÔÏÔ ÓÃÅÎÁÒÉÊ ÎÅÏÂÈÏÄÉÍÏ ÚÁÐÕÓËÁÔØ ËÁÖÄÕÀ ÎÏÞØ ÐÒÉ ÐÏÍÏÝÉ ÐÒÏÇÒÁÍÍÙ cron. "
+"ðÒÉ\n"
+"ÚÁÐÕÓËÅ ÓÃÅÎÁÒÉÑ ×Ù ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÓÌÅÄÕÀ\n"
+"\n"
+"úÁÐÕÓË: %(program)s [-v] [-h] [ÓÐÉÓËÉ-ÒÁÓÓÙÌËÉ]\n"
+"\n"
+"çÄÅ:\n"
+" --verbose\n"
+" -v\n"
+" ×Ù×ÏÄÉÔØ ÎÁÚ×ÁÎÉÅ ËÁÖÄÏÇÏ ÆÁÊÌÁ, ÐÅÒÅÄÁ×ÁÅÍÏÇÏ ÐÒÏÇÒÁÍÍÅ gzip\n"
+"\n"
+" --help\n"
+" -h\n"
+" ×Ù×ÅÓÔÉ ÐÏÄÓËÁÚËÕ É ÚÁ×ÅÒÛÉÔØ ÒÁÂÏÔÕ.\n"
+"\n"
+" ÓÐÉÓËÉ-ÒÁÓÓÙÌËÉ\n"
+" ÄÏÐÏÌÎÉÔÅÌØÎÏ ×Ù ÍÏÖÅÔÅ ÕËÁÚÁÔØ, ÞÔÏ ÎÅÏÂÈÏÄÉÍÏ ÏÂÒÁÂÁÔÙ×ÁÔØ ÔÏÌØËÏ\n"
+" ÕËÁÚÁÎÎÙÅ ÓÐÉÓËÉ ÒÁÓÓÙÌËÉ.\n"
+
+#: cron/senddigests:19
+msgid ""
+"Dispatch digests for lists w/pending messages and digest_send_periodic set.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -h / --help\n"
+" Print this message and exit.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" Send the digest for the given list only, otherwise the digests for "
+"all\n"
+" lists are sent out.\n"
+msgstr ""
+"òÁÚÏÓÌÁÔØ ÄÁÊÄÖÅÓÔÙ ÄÌÑ ÓÐÉÓËÏ× ÒÁÓÓÙÌËÉ, Õ ËÏÔÏÒÙÈ ÅÓÔØ ÓÏÏÂÝÅÎÉÑ × ÏÞÅÒÅÄÉ "
+"É\n"
+"ÕÓÔÁÎÏ×ÌÅÎ ÐÁÒÁÍÅÔÒ digest_send_periodic.\n"
+"\n"
+"úÁÐÕÓË: %(PROGRAM)s [ÐÁÒÁÍÅÔÒÙ]\n"
+"\n"
+"ðÁÒÁÍÅÔÒÙ:\n"
+"\n"
+" --help\n"
+" -h\n"
+" ÷Ù×ÅÓÔÉ ÐÏÄÓËÁÚËÕ É ÚÁ×ÅÒÛÉÔØ ÒÁÂÏÔÕ.\n"
+" -l listname\n"
+" --listname=ÉÍÑÓÐÉÓËÁ\n"
+" òÁÚÏÓÌÁÔØ ÄÁÊÄÖÅÓÔÙ ÔÏÌØËÏ ÄÌÑ ÕËÁÚÁÎÎÏÇÏ ÓÐÉÓËÁ ÒÁÓÓÙËÌÉ, ÅÓÌÉ ÎÉ\n"
+" ÏÄÎÏÇÏ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ ÎÅ ÕËÁÚÁÎÏ, ÒÁÚÏÓÌÁÔØ ÄÁÊÄÖÅÓÔÙ ÄÌÑ ×ÓÅ "
+"ÓÐÉÓËÏ×\n"
+" ÒÁÓÓÙÌÏË.\n"
diff --git a/messages/ru/README.ru b/messages/ru/README.ru
new file mode 100644
index 00000000..027dbe87
--- /dev/null
+++ b/messages/ru/README.ru
@@ -0,0 +1,17 @@
+òÕÓÉÆÉËÁÃÉÑ Mailman
+
+ðÏÖÁÌÕÊÓÔÁ, ÐÏÍÏÇÉÔÅ ÒÕÓÉÆÉÃÉÒÏ×ÁÔØ mailman. :) ôÒÅÂÕÅÔÓÑ
+ËÁË ÐÅÒÅ×ÏÄ, ÔÁË É ×ÙÞÉÔËÁ, ÔÁË ËÁË ÐÅÒÅ×ÏÄÞÉËÁÍ ÏÂÙÞÎÏ ÏÞÅÎØ
+ÓÌÏÖÎÏ ÒÅÄÁËÔÉÒÏ×ÁÔØ ÓÅÂÑ.
+
+åÓÌÉ ×Ù ÈÏÔÉÔÅ ÐÏÕÞÁÓÔ×Ï×ÁÔØ ÉÌÉ ÐÒÏÓÔÏ ÕËÁÚÁÔØ ÎÁ ËÁËÕÀ-ÎÉÂÕÄØ
+ÏÛÉÂËÕ, ÐÉÛÉÔÅ × ÓÐÉÓÏË ÒÁÓÓÙÌËÉ mailman-ru@only.mawhrin.net
+
+éÎÆÏÒÍÁÃÉÑ Ï ÓÐÉÓËÅ ÒÁÓÓÙÌËÉ ÄÏÓÔÕÐÎÁ ÐÏ ÁÄÒÅÓÕ:
+
+ http://only.mawhrin.net/mailman/listinfo/mailman-ru
+
+--
+íÉÈÁÉÌ óÏÂÏÌÅ× (mss@mawhrin.net)
+
+ðÏÓÌÅÄÎÅÅ ÉÚÍÅÎÅÎÉÅ: $Date: 2002-12-24 16:44:16 +0000 (Tue, 24 Dec 2002) $
diff --git a/messages/sv/LC_MESSAGES/mailman.mo b/messages/sv/LC_MESSAGES/mailman.mo
new file mode 100644
index 00000000..260f9ad2
--- /dev/null
+++ b/messages/sv/LC_MESSAGES/mailman.mo
Binary files differ
diff --git a/messages/sv/LC_MESSAGES/mailman.po b/messages/sv/LC_MESSAGES/mailman.po
new file mode 100644
index 00000000..02f8599c
--- /dev/null
+++ b/messages/sv/LC_MESSAGES/mailman.po
@@ -0,0 +1,14400 @@
+# Svensk katalog.
+# Översättning 2002 av
+# Eva Österlind, Arvika kommun <eva.osterlind@arvika.se>
+# baserad på den norska versionen, översatt
+# av Daniel Buchmann <db@bibsys.no>
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Mailman 2.1b1\n"
+"POT-Creation-Date: Tue Dec 24 13:41:28 2002\n"
+"PO-Revision-Date: 2002-12-24 14:35+0100\n"
+"Last-Translator: Eva Österlind <eva.osterlind@arvika.se>\n"
+"Language-Team: Swedish <information@arvika.se>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: quoted-printable\n"
+"Generated-By: pygettext.py 1.3\n"
+
+# Mailman/Cgi/admindb.py:455 Mailman/Handlers/Decorate.py:49
+# Mailman/Handlers/Scrubber.py:157 Mailman/Handlers/Scrubber.py:158
+# Mailman/Cgi/admindb.py:461 Mailman/Handlers/Decorate.py:49
+# Mailman/Handlers/Scrubber.py:194 Mailman/Handlers/Scrubber.py:195
+#: Mailman/Archiver/HyperArch.py:112
+#, fuzzy
+msgid "size not available"
+msgstr "inte tillgänglig"
+
+# Mailman/Archiver/HyperArch.py:117
+#: Mailman/Archiver/HyperArch.py:118
+msgid " %(size)i bytes "
+msgstr ""
+
+# Mailman/Archiver/HyperArch.py:215
+#: Mailman/Archiver/HyperArch.py:249 Mailman/Archiver/HyperArch.py:405
+#: Mailman/Archiver/HyperArch.py:963 Mailman/Archiver/HyperArch.py:1127
+msgid " at "
+msgstr ""
+
+# Mailman/Archiver/HyperArch.py:346
+#: Mailman/Archiver/HyperArch.py:434
+msgid "Previous message:"
+msgstr "Föregående meddelande:"
+
+# Mailman/Gui/Archive.py:34
+# Mailman/Archiver/HyperArch.py:378
+#: Mailman/Archiver/HyperArch.py:456
+#, fuzzy
+msgid "Next message:"
+msgstr "Nästa meddelande:"
+
+# Mailman/Archiver/pipermail.py:452
+# Mailman/Archiver/HyperArch.py:564 Mailman/Archiver/HyperArch.py:598
+#: Mailman/Archiver/HyperArch.py:609 Mailman/Archiver/HyperArch.py:645
+#, fuzzy
+msgid "thread"
+msgstr "tråd"
+
+# Mailman/Handlers/Scrubber.py:129
+# Mailman/Archiver/HyperArch.py:565 Mailman/Archiver/HyperArch.py:599
+#: Mailman/Archiver/HyperArch.py:610 Mailman/Archiver/HyperArch.py:646
+#, fuzzy
+msgid "subject"
+msgstr "titel"
+
+# Mailman/Archiver/HyperArch.py:566 Mailman/Archiver/HyperArch.py:600
+#: Mailman/Archiver/HyperArch.py:611 Mailman/Archiver/HyperArch.py:647
+msgid "author"
+msgstr "författare"
+
+# Mailman/Handlers/Scrubber.py:130
+# Mailman/Archiver/HyperArch.py:567 Mailman/Archiver/HyperArch.py:601
+#: Mailman/Archiver/HyperArch.py:612 Mailman/Archiver/HyperArch.py:648
+#, fuzzy
+msgid "date"
+msgstr "datum"
+
+# Mailman/Archiver/HyperArch.py:637
+#: Mailman/Archiver/HyperArch.py:684
+msgid "<P>Currently, there are no archives. </P>"
+msgstr "<p>Arkivet är för närvarande tomt."
+
+# Mailman/Archiver/HyperArch.py:676
+#: Mailman/Archiver/HyperArch.py:721
+msgid "Gzip'd Text%(sz)s"
+msgstr "Gzippad text%(sz)s"
+
+# Mailman/Archiver/HyperArch.py:681
+#: Mailman/Archiver/HyperArch.py:726
+msgid "Text%(sz)s"
+msgstr "Text%(sz)s"
+
+# bin/rmlist:117 bin/rmlist:119
+# Mailman/Archiver/HyperArch.py:771
+#: Mailman/Archiver/HyperArch.py:816
+#, fuzzy
+msgid "figuring article archives\n"
+msgstr "gör arkiv"
+
+# Mailman/Archiver/HyperArch.py:781
+#: Mailman/Archiver/HyperArch.py:826
+msgid "April"
+msgstr "April"
+
+# Mailman/Archiver/HyperArch.py:781
+#: Mailman/Archiver/HyperArch.py:826
+msgid "February"
+msgstr "Februari"
+
+# Mailman/Archiver/HyperArch.py:781
+#: Mailman/Archiver/HyperArch.py:826
+msgid "January"
+msgstr "Januari"
+
+# Mailman/Archiver/HyperArch.py:781
+#: Mailman/Archiver/HyperArch.py:826
+msgid "March"
+msgstr "Mars"
+
+# Mailman/Archiver/HyperArch.py:782
+#: Mailman/Archiver/HyperArch.py:827
+msgid "August"
+msgstr "Augusti"
+
+# Mailman/Archiver/HyperArch.py:782
+#: Mailman/Archiver/HyperArch.py:827
+msgid "July"
+msgstr "Juli"
+
+# Mailman/Archiver/HyperArch.py:782
+#: Mailman/Archiver/HyperArch.py:827
+msgid "June"
+msgstr "Juni"
+
+# Mailman/Cgi/options.py:666
+# Mailman/Archiver/HyperArch.py:782 Mailman/i18n.py:91
+#: Mailman/Archiver/HyperArch.py:827 Mailman/i18n.py:91
+#, fuzzy
+msgid "May"
+msgstr "Maj"
+
+# Mailman/HTMLFormatter.py:289
+# Mailman/Archiver/HyperArch.py:783
+#: Mailman/Archiver/HyperArch.py:828
+#, fuzzy
+msgid "December"
+msgstr "December"
+
+# Mailman/HTMLFormatter.py:289
+# Mailman/Archiver/HyperArch.py:783
+#: Mailman/Archiver/HyperArch.py:828
+#, fuzzy
+msgid "November"
+msgstr "November"
+
+# Mailman/Archiver/HyperArch.py:783
+#: Mailman/Archiver/HyperArch.py:828
+msgid "October"
+msgstr "Oktober"
+
+# Mailman/HTMLFormatter.py:289
+# Mailman/Archiver/HyperArch.py:783
+#: Mailman/Archiver/HyperArch.py:828
+#, fuzzy
+msgid "September"
+msgstr "September"
+
+# Mailman/Cgi/admin.py:282 Mailman/Cgi/listinfo.py:132 cron/mailpasswds:157
+# Mailman/Archiver/HyperArch.py:791
+#: Mailman/Archiver/HyperArch.py:836
+#, fuzzy
+msgid "First"
+msgstr "Första"
+
+# Mailman/Archiver/HyperArch.py:791
+#: Mailman/Archiver/HyperArch.py:836
+msgid "Fourth"
+msgstr "Fjärde"
+
+# Mailman/Archiver/HyperArch.py:791
+#: Mailman/Archiver/HyperArch.py:836
+msgid "Second"
+msgstr "Andra"
+
+# Mailman/Cgi/admin.py:882
+# Mailman/Archiver/HyperArch.py:791
+#: Mailman/Archiver/HyperArch.py:836
+#, fuzzy
+msgid "Third"
+msgstr "Tredje"
+
+# Mailman/Archiver/HyperArch.py:793
+#: Mailman/Archiver/HyperArch.py:838
+msgid "%(ord)s quarter %(year)i"
+msgstr "%(ord)s kvartal %(year)i"
+
+# Mailman/Archiver/HyperArch.py:800
+#: Mailman/Archiver/HyperArch.py:845
+msgid "%(month)s %(year)i"
+msgstr "%(month)s %(year)i"
+
+# Mailman/Archiver/HyperArch.py:805
+#: Mailman/Archiver/HyperArch.py:850
+msgid "The Week Of Monday %(day)i %(month)s %(year)i"
+msgstr "Veckan med måndag %(day)i %(month)s %(year)i"
+
+# Mailman/Archiver/HyperArch.py:809
+#: Mailman/Archiver/HyperArch.py:854
+msgid "%(day)i %(month)s %(year)i"
+msgstr ""
+
+# Mailman/Archiver/HyperArch.py:906
+#: Mailman/Archiver/HyperArch.py:951
+msgid "Computing threaded index\n"
+msgstr "Bygger innehållsförteckning\n"
+
+# Mailman/Archiver/HyperArch.py:1168
+#: Mailman/Archiver/HyperArch.py:1206
+msgid "Updating HTML for article %(seq)s"
+msgstr "Uppdaterar HTML för artikel %(seq)s"
+
+# Mailman/Archiver/HyperArch.py:1174
+#: Mailman/Archiver/HyperArch.py:1213
+msgid "article file %(filename)s is missing!"
+msgstr "artikelfil %(filename)s saknas!"
+
+# Mailman/Archiver/pipermail.py:166 Mailman/Archiver/pipermail.py:167
+# Mailman/Archiver/pipermail.py:166 Mailman/Archiver/pipermail.py:167
+#: Mailman/Archiver/pipermail.py:168 Mailman/Archiver/pipermail.py:169
+msgid "No subject"
+msgstr "Utan titel"
+
+# Mailman/Archiver/pipermail.py:268
+# Mailman/Archiver/pipermail.py:268
+#: Mailman/Archiver/pipermail.py:269
+msgid "Creating archive directory "
+msgstr "Skapar arkivkatalog "
+
+# Mailman/Archiver/pipermail.py:280
+# Mailman/Archiver/pipermail.py:280
+#: Mailman/Archiver/pipermail.py:281
+msgid "Reloading pickled archive state"
+msgstr "Laddar arkivets tillstånd från en pickle"
+
+# Mailman/Archiver/pipermail.py:307
+# Mailman/Archiver/pipermail.py:307
+#: Mailman/Archiver/pipermail.py:308
+msgid "Pickling archive state into "
+msgstr "Lagrar arkivets tillstånd i en pickle: "
+
+# Mailman/Archiver/pipermail.py:418
+# Mailman/Archiver/pipermail.py:418
+#: Mailman/Archiver/pipermail.py:419
+msgid "Updating index files for archive [%(archive)s]"
+msgstr "Uppdaterar indexfiler för arkivet [%(archive)s]"
+
+# Mailman/Archiver/pipermail.py:452
+# Mailman/Archiver/pipermail.py:451
+#: Mailman/Archiver/pipermail.py:452
+msgid " Thread"
+msgstr " Tråd"
+
+# Mailman/Archiver/pipermail.py:554
+# Mailman/Archiver/pipermail.py:556
+#: Mailman/Archiver/pipermail.py:557
+msgid "#%(counter)05d %(msgid)s"
+msgstr ""
+
+# Mailman/Commands/cmd_set.py:178
+# Mailman/Bouncer.py:44
+#: Mailman/Bouncer.py:44
+#, fuzzy
+msgid "due to excessive bounces"
+msgstr "på grund av för många returmeddelanden"
+
+# Mailman/Commands/cmd_set.py:172
+# Mailman/Bouncer.py:45
+#: Mailman/Bouncer.py:45
+#, fuzzy
+msgid "by yourself"
+msgstr "av dig själv"
+
+# Mailman/HTMLFormatter.py:149 Mailman/HTMLFormatter.py:292
+# Mailman/Bouncer.py:46
+#: Mailman/Bouncer.py:46
+#, fuzzy
+msgid "by the list administrator"
+msgstr "av listadministratören"
+
+# Mailman/Commands/cmd_set.py:182
+# Mailman/Bouncer.py:47 Mailman/Bouncer.py:232
+# Mailman/Commands/cmd_set.py:182
+#: Mailman/Bouncer.py:47 Mailman/Bouncer.py:232
+#: Mailman/Commands/cmd_set.py:182
+msgid "for unknown reasons"
+msgstr "av okänd anledning"
+
+# Mailman/Bouncer.py:168
+# Mailman/Bouncer.py:179
+#: Mailman/Bouncer.py:179
+msgid "disabled"
+msgstr "stoppad"
+
+# Mailman/Bouncer.py:173
+# Mailman/Bouncer.py:184
+#: Mailman/Bouncer.py:184
+msgid "Bounce action notification"
+msgstr "Meddelande om behandling av returmeddelanden"
+
+# Mailman/Bouncer.py:239
+#: Mailman/Bouncer.py:239
+msgid " The last bounce received from you was dated %(date)s"
+msgstr " Det sist mottagna returmeddelandet från dig var daterat %(date)s"
+
+# Mailman/Bouncer.py:231 Mailman/Handlers/Acknowledge.py:50
+# Mailman/Handlers/CookHeaders.py:181 Mailman/Handlers/Hold.py:198
+# Mailman/Handlers/Hold.py:232 Mailman/Handlers/ToDigest.py:205
+# Mailman/ListAdmin.py:234
+# Mailman/Bouncer.py:264 Mailman/Deliverer.py:126
+# Mailman/Handlers/Acknowledge.py:44 Mailman/Handlers/CookHeaders.py:211
+# Mailman/Handlers/Hold.py:214 Mailman/Handlers/Hold.py:249
+# Mailman/Handlers/ToDigest.py:211 Mailman/ListAdmin.py:235
+#: Mailman/Bouncer.py:264 Mailman/Deliverer.py:126
+#: Mailman/Handlers/Acknowledge.py:44 Mailman/Handlers/CookHeaders.py:236
+#: Mailman/Handlers/Hold.py:214 Mailman/Handlers/Hold.py:249
+#: Mailman/Handlers/ToDigest.py:211 Mailman/ListAdmin.py:235
+msgid "(no subject)"
+msgstr "(utan titel)"
+
+# Mailman/Bouncer.py:233
+# Mailman/Bouncer.py:266
+#: Mailman/Bouncer.py:266
+msgid "[No bounce details are available]"
+msgstr "[Inga returdetaljer är tillgängliga]"
+
+# Mailman/Cgi/Auth.py:46
+# Mailman/Cgi/Auth.py:46
+#: Mailman/Cgi/Auth.py:46
+msgid "Moderator"
+msgstr "Moderator"
+
+# Mailman/Cgi/Auth.py:48
+# Mailman/Cgi/Auth.py:48
+#: Mailman/Cgi/Auth.py:48
+msgid "Administrator"
+msgstr "Administratör"
+
+# Mailman/Cgi/admin.py:70 Mailman/Cgi/admindb.py:85 Mailman/Cgi/confirm.py:55
+# Mailman/Cgi/edithtml.py:67 Mailman/Cgi/listinfo.py:51
+# Mailman/Cgi/options.py:70 Mailman/Cgi/private.py:98
+# Mailman/Cgi/rmlist.py:62 Mailman/Cgi/roster.py:57
+# Mailman/Cgi/subscribe.py:61
+# Mailman/Cgi/admin.py:70 Mailman/Cgi/admindb.py:89 Mailman/Cgi/confirm.py:55
+# Mailman/Cgi/edithtml.py:67 Mailman/Cgi/listinfo.py:51
+# Mailman/Cgi/options.py:70 Mailman/Cgi/private.py:98
+# Mailman/Cgi/rmlist.py:62 Mailman/Cgi/roster.py:57
+# Mailman/Cgi/subscribe.py:61
+#: Mailman/Cgi/admin.py:70 Mailman/Cgi/admindb.py:89 Mailman/Cgi/confirm.py:55
+#: Mailman/Cgi/edithtml.py:67 Mailman/Cgi/listinfo.py:51
+#: Mailman/Cgi/options.py:71 Mailman/Cgi/private.py:98
+#: Mailman/Cgi/rmlist.py:64 Mailman/Cgi/roster.py:57
+#: Mailman/Cgi/subscribe.py:61
+msgid "No such list <em>%(safelistname)s</em>"
+msgstr "Listan finns inte: <em>%(safelistname)s</em>"
+
+# Mailman/Cgi/admin.py:85 Mailman/Cgi/admindb.py:101
+# Mailman/Cgi/edithtml.py:85 Mailman/Cgi/private.py:123
+# Mailman/Cgi/admin.py:85 Mailman/Cgi/admindb.py:105
+# Mailman/Cgi/edithtml.py:85 Mailman/Cgi/private.py:123
+#: Mailman/Cgi/admin.py:85 Mailman/Cgi/admindb.py:105
+#: Mailman/Cgi/edithtml.py:85 Mailman/Cgi/private.py:123
+msgid "Authorization failed."
+msgstr "Felaktigt lösenord"
+
+# Mailman/Cgi/admin.py:175
+# Mailman/Cgi/admin.py:175
+#: Mailman/Cgi/admin.py:175
+msgid ""
+"You have turned off delivery of both digest and\n"
+" non-digest messages. This is an incompatible state of\n"
+" affairs. You must turn on either digest delivery or\n"
+" non-digest delivery or your mailing list will basically be\n"
+" unusable."
+msgstr ""
+"Du har stängt av utsändningen av meddelanden i\n"
+"både normalversion och sammandragsversion. Om du inte väljer\n"
+"någon av dem kommer e-postlistan inte att kunna användas."
+
+# Mailman/Cgi/admin.py:179 Mailman/Cgi/admin.py:185 Mailman/Cgi/admin.py:190
+# Mailman/Cgi/admin.py:1340 Mailman/Gui/GUIBase.py:178
+# Mailman/Cgi/admin.py:179 Mailman/Cgi/admin.py:185 Mailman/Cgi/admin.py:190
+# Mailman/Cgi/admin.py:1360 Mailman/Gui/GUIBase.py:184
+#: Mailman/Cgi/admin.py:179 Mailman/Cgi/admin.py:185 Mailman/Cgi/admin.py:190
+#: Mailman/Cgi/admin.py:1361 Mailman/Gui/GUIBase.py:184
+msgid "Warning: "
+msgstr "Varning: "
+
+# Mailman/Cgi/admin.py:183
+# Mailman/Cgi/admin.py:183
+#: Mailman/Cgi/admin.py:183
+msgid ""
+"You have digest members, but digests are turned\n"
+" off. Those people will not receive mail."
+msgstr ""
+"Det finns medlemmar på listan som valt sammandragsversionen.\n"
+"Dessa kommer inte längre att ta emot e-postbrev från listan,\n"
+"eftersom detta distribueringssätt valts bort."
+
+# Mailman/Cgi/admin.py:188
+# Mailman/Cgi/admin.py:188
+#: Mailman/Cgi/admin.py:188
+msgid ""
+"You have regular list members but non-digestified mail is\n"
+" turned off. They will receive mail until you fix this\n"
+" problem."
+msgstr ""
+"Det finns medlemmar på listan som har valt normalversionen.\n"
+"Dessa kommer inte längre att ta emot e-postbrev från listan,\n"
+"eftersom detta distribueringssätt valts bort."
+
+# Mailman/Cgi/admin.py:212
+# Mailman/Cgi/admin.py:212
+#: Mailman/Cgi/admin.py:212
+msgid "%(hostname)s mailing lists - Admin Links"
+msgstr "E-postlistor på %(hostname)s - administrativa länkar"
+
+# Mailman/Cgi/admin.py:241 Mailman/Cgi/listinfo.py:97
+# Mailman/Cgi/admin.py:241 Mailman/Cgi/listinfo.py:97
+#: Mailman/Cgi/admin.py:241 Mailman/Cgi/listinfo.py:97
+msgid "Welcome!"
+msgstr "Välkommen!"
+
+# Mailman/Cgi/admin.py:244 Mailman/Cgi/listinfo.py:100
+# Mailman/Cgi/admin.py:244 Mailman/Cgi/listinfo.py:100
+#: Mailman/Cgi/admin.py:244 Mailman/Cgi/listinfo.py:100
+msgid "Mailman"
+msgstr "Mailman"
+
+# Mailman/Cgi/admin.py:248
+# Mailman/Cgi/admin.py:248
+#: Mailman/Cgi/admin.py:248
+msgid ""
+"<p>There currently are no publicly-advertised %(mailmanlink)s\n"
+" mailing lists on %(hostname)s."
+msgstr ""
+"<p>Det finns för närvarande inga offentliga %(mailmanlink)s\n"
+"e-postlistor tillgängliga på %(hostname)s.<br> "
+
+# Mailman/Cgi/admin.py:254
+# Mailman/Cgi/admin.py:254
+#: Mailman/Cgi/admin.py:254
+msgid ""
+"<p>Below is the collection of publicly-advertised\n"
+" %(mailmanlink)s mailing lists on %(hostname)s. Click on a list\n"
+" name to visit the configuration pages for that list."
+msgstr ""
+"<p>Nedan finns sammanställningen av %(mailmanlink)s e-postlistor\n"
+"som finns tillgängliga på %(hostname)s.\n"
+"Klicka på listans namn för att komma till\n"
+"listans konfigurationssida."
+
+# Mailman/Cgi/admin.py:261
+# Mailman/Cgi/admin.py:261
+#: Mailman/Cgi/admin.py:261
+msgid "right "
+msgstr "rätt "
+
+# Mailman/Cgi/admin.py:263
+# Mailman/Cgi/admin.py:263
+#: Mailman/Cgi/admin.py:263
+msgid ""
+"To visit the administrators configuration page for an\n"
+" unadvertised list, open a URL similar to this one, but with a '/' "
+"and\n"
+" the %(extra)slist name appended. If you have the proper authority,\n"
+" you can also <a href=\"%(creatorurl)s\">create a new mailing list</"
+"a>.\n"
+"\n"
+" <p>General list information can be found at "
+msgstr ""
+"Om du vill administrera en e-postlista som inte visas i sammanställningen "
+"nedan,\n"
+"lägg till '/' och därefter listans %(extra)snamn, på URL:en till webbsidan."
+"<br>\n"
+"Du kan också <a href=\"%(creatorurl)s\">skapa en ny e-postlista</a> om du "
+"har tillgång till det.\n"
+"\n"
+"<p>Allmän information om listorna finns på "
+
+# Mailman/Cgi/admin.py:270
+# Mailman/Cgi/admin.py:270
+#: Mailman/Cgi/admin.py:270
+msgid "the mailing list overview page"
+msgstr "översikt över e-postlistor"
+
+# Mailman/Cgi/admin.py:272
+# Mailman/Cgi/admin.py:272
+#: Mailman/Cgi/admin.py:272
+msgid "<p>(Send questions and comments to "
+msgstr "<p>(Skicka frågor och kommentarer till "
+
+# Mailman/Cgi/admin.py:282 Mailman/Cgi/listinfo.py:132 cron/mailpasswds:157
+# Mailman/Cgi/admin.py:282 Mailman/Cgi/listinfo.py:132 cron/mailpasswds:177
+#: Mailman/Cgi/admin.py:282 Mailman/Cgi/listinfo.py:132 cron/mailpasswds:179
+msgid "List"
+msgstr "Lista"
+
+# Mailman/Cgi/admin.py:283 Mailman/Cgi/admin.py:553
+# Mailman/Cgi/listinfo.py:133
+# Mailman/Cgi/admin.py:283 Mailman/Cgi/admin.py:554
+# Mailman/Cgi/listinfo.py:133
+#: Mailman/Cgi/admin.py:283 Mailman/Cgi/admin.py:549
+#: Mailman/Cgi/listinfo.py:133
+msgid "Description"
+msgstr "Beskrivning"
+
+# Mailman/Cgi/admin.py:289 Mailman/Cgi/listinfo.py:139 bin/list_lists:103
+# Mailman/Cgi/admin.py:289 Mailman/Cgi/listinfo.py:139 bin/list_lists:107
+#: Mailman/Cgi/admin.py:289 Mailman/Cgi/listinfo.py:139 bin/list_lists:116
+msgid "[no description available]"
+msgstr "[det finns ingen beskrivning tillgänglig]"
+
+# Mailman/Cgi/admin.py:322
+# Mailman/Cgi/admin.py:322
+#: Mailman/Cgi/admin.py:322
+msgid "No valid variable name found."
+msgstr "Hittade inget giltigt variabelnamn."
+
+# Mailman/Cgi/admin.py:332
+# Mailman/Cgi/admin.py:332
+#: Mailman/Cgi/admin.py:332
+msgid ""
+"%(realname)s Mailing list Configuration Help\n"
+" <br><em>%(varname)s</em> Option"
+msgstr ""
+"Hjälp för att konfigurera e-postlistan %(realname)s\n"
+"<br>Inställning: <em>%(varname)s</em>"
+
+# Mailman/Cgi/admin.py:339
+# Mailman/Cgi/admin.py:339
+#: Mailman/Cgi/admin.py:339
+msgid "Mailman %(varname)s List Option Help"
+msgstr "Inställning: %(varname)s"
+
+# Mailman/Cgi/admin.py:357
+# Mailman/Cgi/admin.py:357
+#: Mailman/Cgi/admin.py:357
+msgid ""
+"<em><strong>Warning:</strong> changing this option here\n"
+" could cause other screens to be out-of-sync. Be sure to reload any "
+"other\n"
+" pages that are displaying this option for this mailing list. You can "
+"also\n"
+" "
+msgstr ""
+"<em><strong>Observera:</strong> om du ändrar något här,\n"
+"så kommer ändringarna inte att visas omedelbart på\n"
+"andra skärmar eller fönster som du har öppna. Klicka på\n"
+"browserns uppdateringsknapp, om det behövs."
+
+# Mailman/Cgi/admin.py:367
+# Mailman/Cgi/admin.py:368
+#: Mailman/Cgi/admin.py:368
+#, fuzzy
+msgid "return to the %(categoryname)s options page."
+msgstr "gå tillbaka till sidan %(categoryname)s"
+
+# Mailman/Cgi/admin.py:382
+# Mailman/Cgi/admin.py:383
+#: Mailman/Cgi/admin.py:383
+msgid "%(realname)s Administration (%(label)s)"
+msgstr "%(realname)s Administration (%(label)s)"
+
+# Mailman/Cgi/admin.py:383
+# Mailman/Cgi/admin.py:384
+#: Mailman/Cgi/admin.py:384
+msgid "%(realname)s mailing list administration<br>%(label)s Section"
+msgstr "%(realname)s administration<br>%(label)s"
+
+# Mailman/Cgi/admin.py:399
+# Mailman/Cgi/admin.py:400
+#: Mailman/Cgi/admin.py:400
+msgid "Configuration Categories"
+msgstr "Kategorier"
+
+# Mailman/Cgi/admin.py:400
+# Mailman/Cgi/admin.py:401
+#: Mailman/Cgi/admin.py:401
+msgid "Other Administrative Activities"
+msgstr "Andra administrativa aktiviteter"
+
+# Mailman/Cgi/admin.py:404
+# Mailman/Cgi/admin.py:405
+#: Mailman/Cgi/admin.py:405
+msgid "Tend to pending moderator requests"
+msgstr "Behandla ansökningar"
+
+# Mailman/Cgi/admin.py:406
+# Mailman/Cgi/admin.py:407
+#: Mailman/Cgi/admin.py:407
+msgid "Go to the general list information page"
+msgstr "Gå till listans webbsida"
+
+# Mailman/Cgi/admin.py:408
+# Mailman/Cgi/admin.py:409
+#: Mailman/Cgi/admin.py:409
+msgid "Edit the public HTML pages"
+msgstr "Redigera HTML-koden på listans webbsida"
+
+# Mailman/Cgi/admin.py:410
+# Mailman/Cgi/admin.py:411
+#: Mailman/Cgi/admin.py:411
+msgid "Go to list archives"
+msgstr "Gå till listans arkiv"
+
+# Mailman/Cgi/admin.py:416
+# Mailman/Cgi/admin.py:417
+#: Mailman/Cgi/admin.py:417
+msgid "Delete this mailing list"
+msgstr "Radera denna e-postlista"
+
+# Mailman/Cgi/admin.py:417
+# Mailman/Cgi/admin.py:418
+#: Mailman/Cgi/admin.py:418
+msgid " (requires confirmation)<br>&nbsp;<br>"
+msgstr " (kräver inloggning)<br>&nbsp;<br>"
+
+# Mailman/Cgi/admin.py:423
+# Mailman/Cgi/admin.py:424
+#: Mailman/Cgi/admin.py:424
+msgid "Logout"
+msgstr "Logga ut"
+
+# Mailman/Cgi/admin.py:466
+# Mailman/Cgi/admin.py:467
+#: Mailman/Cgi/admin.py:468
+#, fuzzy
+msgid "Emergency moderation of all list traffic is enabled"
+msgstr "Omedelbart återhållande av anmälningar till listan:"
+
+# Mailman/Cgi/admin.py:483
+# Mailman/Cgi/admin.py:484
+#: Mailman/Cgi/admin.py:479
+msgid ""
+"Make your changes in the following section, then submit them\n"
+" using the <em>Submit Your Changes</em> button below."
+msgstr ""
+"Gör eventuella ändringar nedan och klicka därefter på knappen\n"
+"<em>Spara ändringar</em> längre ned på sidan, för att göra ändringarna "
+"giltiga."
+
+# Mailman/Cgi/admin.py:501
+# Mailman/Cgi/admin.py:502
+#: Mailman/Cgi/admin.py:497
+msgid "Additional Member Tasks"
+msgstr "Ytterligare medlemsinställningar"
+
+# Mailman/Cgi/admin.py:507
+# Mailman/Cgi/admin.py:508
+#: Mailman/Cgi/admin.py:503
+msgid ""
+"<li>Set everyone's moderation bit, including\n"
+" those members not currently visible"
+msgstr ""
+"<li>Sätter på eller av moderation för alla listans medlemmar,\n"
+"även för dem som inte visas här"
+
+# Mailman/Cgi/admin.py:511
+# Mailman/Cgi/admin.py:512
+#: Mailman/Cgi/admin.py:507
+msgid "Off"
+msgstr "Av"
+
+# Mailman/Cgi/admin.py:511
+# Mailman/Cgi/admin.py:512
+#: Mailman/Cgi/admin.py:507
+msgid "On"
+msgstr "På"
+
+# Mailman/Cgi/admin.py:513
+# Mailman/Cgi/admin.py:514
+#: Mailman/Cgi/admin.py:509
+msgid "Set"
+msgstr "Sätt"
+
+# Mailman/Cgi/admin.py:554
+# Mailman/Cgi/admin.py:555
+#: Mailman/Cgi/admin.py:550
+msgid "Value"
+msgstr "Värde"
+
+# Mailman/Cgi/admin.py:608
+# Mailman/Cgi/admin.py:609
+#: Mailman/Cgi/admin.py:604
+msgid ""
+"Badly formed options entry:\n"
+" %(record)s"
+msgstr ""
+"Ogiltig inställning:\n"
+" %(record)s"
+
+# Mailman/Cgi/admin.py:664
+# Mailman/Cgi/admin.py:667
+#: Mailman/Cgi/admin.py:662
+msgid "<em>Enter the text below, or...</em><br>"
+msgstr "<em>Skriv in text nedan, eller...</em><br>"
+
+# Mailman/Cgi/admin.py:666
+# Mailman/Cgi/admin.py:669
+#: Mailman/Cgi/admin.py:664
+msgid "<br><em>...specify a file to upload</em><br>"
+msgstr "<br><em>...specificera namnet på en fil som innehåller texten</em><br>"
+
+# Mailman/Cgi/admin.py:692 Mailman/Cgi/admin.py:695
+# Mailman/Cgi/admin.py:695 Mailman/Cgi/admin.py:698
+#: Mailman/Cgi/admin.py:690 Mailman/Cgi/admin.py:693
+msgid "Topic %(i)d"
+msgstr "Ämne %(i)d"
+
+# Mailman/Cgi/admin.py:696
+# Mailman/Cgi/admin.py:699
+#: Mailman/Cgi/admin.py:694
+msgid "Delete"
+msgstr "Radera"
+
+# Mailman/Cgi/admin.py:697
+# Mailman/Cgi/admin.py:700
+#: Mailman/Cgi/admin.py:695
+msgid "Topic name:"
+msgstr "Namn på ämnet:"
+
+# Mailman/Cgi/admin.py:699
+# Mailman/Cgi/admin.py:702
+#: Mailman/Cgi/admin.py:697
+msgid "Regexp:"
+msgstr "Regexp-uttryck:"
+
+# Mailman/Cgi/admin.py:702 Mailman/Cgi/options.py:918
+# Mailman/Cgi/admin.py:705 Mailman/Cgi/options.py:942
+#: Mailman/Cgi/admin.py:700 Mailman/Cgi/options.py:943
+msgid "Description:"
+msgstr "Beskrivning:"
+
+# Mailman/Cgi/admin.py:706
+# Mailman/Cgi/admin.py:709
+#: Mailman/Cgi/admin.py:704
+msgid "Add new item..."
+msgstr "Lägga till nytt..."
+
+# Mailman/Cgi/admin.py:708
+# Mailman/Cgi/admin.py:711
+#: Mailman/Cgi/admin.py:706
+msgid "...before this one."
+msgstr "..före den här."
+
+# Mailman/Cgi/admin.py:709
+# Mailman/Cgi/admin.py:712
+#: Mailman/Cgi/admin.py:707
+msgid "...after this one."
+msgstr "...efter den här."
+
+# Mailman/Cgi/admin.py:744
+# Mailman/Cgi/admin.py:747
+#: Mailman/Cgi/admin.py:742
+#, fuzzy
+msgid "<br>(Edit <b>%(varname)s</b>)"
+msgstr "<br>(Detaljer för <b>%(varname)s</b>)"
+
+# Mailman/Cgi/admin.py:744
+# Mailman/Cgi/admin.py:747
+#: Mailman/Cgi/admin.py:744
+msgid "<br>(Details for <b>%(varname)s</b>)"
+msgstr "<br>(Detaljer för <b>%(varname)s</b>)"
+
+# Mailman/Cgi/admin.py:749
+# Mailman/Cgi/admin.py:752
+#: Mailman/Cgi/admin.py:751
+msgid ""
+"<br><em><strong>Note:</strong>\n"
+" setting this value performs an immediate action but does not modify\n"
+" permanent state.</em>"
+msgstr ""
+"<br><em><strong>Observera:</strong> om denna inställning sätts/ändras, "
+"kommer det bara att göras en tillfällig ändring.</em>"
+
+# Mailman/Cgi/admin.py:763
+# Mailman/Cgi/admin.py:766
+#: Mailman/Cgi/admin.py:765
+msgid "Mass Subscriptions"
+msgstr "Lägga in nya medlemmar"
+
+# Mailman/Cgi/admin.py:770
+# Mailman/Cgi/admin.py:773
+#: Mailman/Cgi/admin.py:772
+msgid "Mass Removals"
+msgstr "Ta bort medlemmar"
+
+# Mailman/Cgi/admin.py:777
+# Mailman/Cgi/admin.py:780
+#: Mailman/Cgi/admin.py:779
+msgid "Membership List"
+msgstr "Lista över medlemmar"
+
+# Mailman/Cgi/admin.py:784
+# Mailman/Cgi/admin.py:787
+#: Mailman/Cgi/admin.py:786
+msgid "(help)"
+msgstr "(hjälp)"
+
+# Mailman/Cgi/admin.py:785
+# Mailman/Cgi/admin.py:788
+#: Mailman/Cgi/admin.py:787
+msgid "Find member %(link)s:"
+msgstr "Finn medlem %(link)s:"
+
+# Mailman/Cgi/admin.py:788
+# Mailman/Cgi/admin.py:791
+#: Mailman/Cgi/admin.py:790
+msgid "Search..."
+msgstr "Sök..."
+
+# Mailman/Cgi/admin.py:803
+# Mailman/Cgi/admin.py:806
+#: Mailman/Cgi/admin.py:805
+msgid "Bad regular expression: "
+msgstr "Ogiltigt regexp-uttryck: "
+
+# Mailman/Cgi/admin.py:854
+# Mailman/Cgi/admin.py:860
+#: Mailman/Cgi/admin.py:861
+msgid "%(allcnt)s members total, %(membercnt)s shown"
+msgstr "Totalt %(allcnt)s medlemmar, bara %(membercnt)s visas."
+
+# Mailman/Cgi/admin.py:857
+# Mailman/Cgi/admin.py:863
+#: Mailman/Cgi/admin.py:864
+msgid "%(allcnt)s members total"
+msgstr "Totalt %(allcnt)s medlemmar"
+
+# Mailman/Cgi/admin.py:880
+# Mailman/Cgi/admin.py:886
+#: Mailman/Cgi/admin.py:887
+msgid "unsub"
+msgstr "avanmäl"
+
+# Mailman/Cgi/admin.py:881
+# Mailman/Cgi/admin.py:887
+#: Mailman/Cgi/admin.py:888
+msgid "member address<br>member name"
+msgstr "medlems adress<br>medlems namn"
+
+# Mailman/Cgi/admin.py:882
+# Mailman/Cgi/admin.py:888
+#: Mailman/Cgi/admin.py:889
+msgid "hide"
+msgstr "dölj"
+
+# Mailman/Cgi/admin.py:882
+# Mailman/Cgi/admin.py:888
+#: Mailman/Cgi/admin.py:889
+msgid "mod"
+msgstr "modererad"
+
+# Mailman/Cgi/admin.py:883
+# Mailman/Cgi/admin.py:889
+#: Mailman/Cgi/admin.py:890
+msgid "nomail<br>[reason]"
+msgstr "stoppa e-post<br>[anledning]"
+
+# Mailman/Cgi/admin.py:884
+# Mailman/Cgi/admin.py:890
+#: Mailman/Cgi/admin.py:891
+msgid "ack"
+msgstr "bekräftelse"
+
+# Mailman/Cgi/admin.py:884
+# Mailman/Cgi/admin.py:890
+#: Mailman/Cgi/admin.py:891
+msgid "not metoo"
+msgstr "inte mina"
+
+# Mailman/Cgi/admin.py:885
+# Mailman/Cgi/admin.py:891
+#: Mailman/Cgi/admin.py:892
+msgid "nodupes"
+msgstr "inga kopior"
+
+# Mailman/Cgi/admin.py:886
+# Mailman/Cgi/admin.py:892
+#: Mailman/Cgi/admin.py:893
+msgid "digest"
+msgstr "sammandragsversion"
+
+# Mailman/Cgi/admin.py:886
+# Mailman/Cgi/admin.py:892
+#: Mailman/Cgi/admin.py:893
+msgid "plain"
+msgstr "ren text"
+
+# Mailman/Cgi/admin.py:887
+# Mailman/Cgi/admin.py:893
+#: Mailman/Cgi/admin.py:894
+msgid "language"
+msgstr "språk"
+
+# Mailman/Cgi/admin.py:898
+# Mailman/Cgi/admin.py:904
+#: Mailman/Cgi/admin.py:905
+msgid "?"
+msgstr ""
+
+# Mailman/Cgi/admin.py:899
+# Mailman/Cgi/admin.py:905
+#: Mailman/Cgi/admin.py:906
+msgid "U"
+msgstr "M"
+
+# Mailman/Cgi/admin.py:900
+# Mailman/Cgi/admin.py:906
+#: Mailman/Cgi/admin.py:907
+msgid "A"
+msgstr "A"
+
+# Mailman/Cgi/admin.py:901
+# Mailman/Cgi/admin.py:907
+#: Mailman/Cgi/admin.py:908
+msgid "B"
+msgstr "R"
+
+# Mailman/Cgi/admin.py:973
+# Mailman/Cgi/admin.py:978
+#: Mailman/Cgi/admin.py:979
+msgid "<b>unsub</b> -- Click on this to unsubscribe the member."
+msgstr ""
+"<b>Avanmälan</b> -- Klicka på denna för att avanmäla medlem från listan."
+
+# Mailman/Cgi/admin.py:975
+# Mailman/Cgi/admin.py:980
+#: Mailman/Cgi/admin.py:981
+msgid ""
+"<b>mod</b> -- The user's personal moderation flag. If this is\n"
+" set, postings from them will be moderated, otherwise they will be\n"
+" approved."
+msgstr ""
+"<b>mod</b> -- Medlemmens personliga moderationsflagga. Om denna är aktiverad "
+"för en medlem,\n"
+"måste e-post från medlemmen alltid godkännas av moderatorn.\n"
+"I annat fall kommer e-post från medlemmen att gå till listan."
+
+# Mailman/Cgi/admin.py:979
+# Mailman/Cgi/admin.py:984
+#: Mailman/Cgi/admin.py:985
+msgid ""
+"<b>hide</b> -- Is the member's address concealed on\n"
+" the list of subscribers?"
+msgstr ""
+"<b>dölj</b> -- är medlemmens adress dold i listans offentliga "
+"medlemsöversikt?"
+
+# Mailman/Cgi/admin.py:981
+# Mailman/Cgi/admin.py:986
+#: Mailman/Cgi/admin.py:987
+msgid ""
+"<b>nomail</b> -- Is delivery to the member disabled? If so, an\n"
+" abbreviation will be given describing the reason for the disabled\n"
+" delivery:\n"
+" <ul><li><b>U</b> -- Delivery was disabled by the user via their\n"
+" personal options page.\n"
+" <li><b>A</b> -- Delivery was disabled by the list\n"
+" administrators.\n"
+" <li><b>B</b> -- Delivery was disabled by the system due to\n"
+" excessive bouncing from the member's address.\n"
+" <li><b>?</b> -- The reason for disabled delivery isn't "
+"known.\n"
+" This is the case for all memberships which were "
+"disabled\n"
+" in older versions of Mailman.\n"
+" </ul>"
+msgstr ""
+"<b>stoppa e-post</b> -- Sluta att distribuera e-postbrev till medlemmen? Om "
+"ja, kommer en\n"
+"anledning att anges med en bokstav:\n"
+"<ul>\n"
+" <li><b>M</b> -- Medlemmen har angett detta själv via sin personliga "
+"medlemssida.\n"
+" <li><b>A</b> -- Angett av listadministratören\n"
+" <li><b>R</b> -- Angett av Mailman grundat på för många returmeddelanden "
+"från medlemmens e-postadress\n"
+" <li><b>?</b> -- Okänd anledning. Detta är orsaken om e-post stoppades för "
+"medlemmen i en tidigare version av Mailman.\n"
+"</ul>"
+
+# Mailman/Cgi/admin.py:996
+# Mailman/Cgi/admin.py:1001
+#: Mailman/Cgi/admin.py:1002
+msgid ""
+"<b>ack</b> -- Does the member get acknowledgements of their\n"
+" posts?"
+msgstr ""
+"<b>bekräftelse</b> -- Sänd bekräftelse på varje e-postbrev som medlemmen "
+"skickar till listan?"
+
+# Mailman/Cgi/admin.py:999
+# Mailman/Cgi/admin.py:1004
+#: Mailman/Cgi/admin.py:1005
+msgid ""
+"<b>not metoo</b> -- Does the member want to avoid copies of their\n"
+" own postings?"
+msgstr ""
+"<b>inte mina</b> -- Vill medlemmen undvika att ta emot kopior av e-postbrev "
+"som han/hon själv har skickat till listan?"
+
+# Mailman/Cgi/admin.py:1002
+# Mailman/Cgi/admin.py:1007
+#: Mailman/Cgi/admin.py:1008
+msgid ""
+"<b>nodupes</b> -- Does the member want to avoid duplicates of the\n"
+" same message?"
+msgstr ""
+"<b>inga kopior</b> -- Vill medlemmen undvika att ta emot kopior av e-"
+"postbrev som har medlemmens e-postadress som mottagare?"
+
+# Mailman/Cgi/admin.py:1005
+# Mailman/Cgi/admin.py:1010
+#: Mailman/Cgi/admin.py:1011
+msgid ""
+"<b>digest</b> -- Does the member get messages in digests?\n"
+" (otherwise, individual messages)"
+msgstr ""
+"<b>sammandragsversion</b> -- Medlemmen får ett sammandrag skickat med jämna "
+"mellanrum istället för varje e-postbrev?"
+
+# Mailman/Cgi/admin.py:1008
+# Mailman/Cgi/admin.py:1013
+#: Mailman/Cgi/admin.py:1014
+msgid ""
+"<b>plain</b> -- If getting digests, does the member get plain\n"
+" text digests? (otherwise, MIME)"
+msgstr ""
+"<b>ren text</b> -- Får medlem, som tar emot e-postbrev i sammandragsversion, "
+"meddelandet som ren text?\n"
+"(I annat fall sänds e-postbrevet i sammandragsversion i MIME-format.)"
+
+# Mailman/Cgi/admin.py:1010
+# Mailman/Cgi/admin.py:1015
+#: Mailman/Cgi/admin.py:1016
+msgid "<b>language</b> -- Language preferred by the user"
+msgstr "<b>språk</b> -- önskat språk"
+
+# Mailman/Cgi/admin.py:1024
+# Mailman/Cgi/admin.py:1029
+#: Mailman/Cgi/admin.py:1030
+msgid "Click here to hide the legend for this table."
+msgstr "Klicka här för att inte visa förklaringen till inställningarna."
+
+# Mailman/Cgi/admin.py:1028
+# Mailman/Cgi/admin.py:1033
+#: Mailman/Cgi/admin.py:1034
+msgid "Click here to include the legend for this table."
+msgstr "Klicka här för att visa förklaringen till inställningarna."
+
+# Mailman/Cgi/admin.py:1035
+# Mailman/Cgi/admin.py:1040
+#: Mailman/Cgi/admin.py:1041
+msgid ""
+"<p><em>To view more members, click on the appropriate\n"
+" range listed below:</em>"
+msgstr "<p><em>För att se fler medlemmar, klicka på önskat område:"
+
+# Mailman/Cgi/admin.py:1044
+# Mailman/Cgi/admin.py:1049
+#: Mailman/Cgi/admin.py:1050
+msgid "from %(start)s to %(end)s"
+msgstr "från %(start)s till %(end)s"
+
+# Mailman/Cgi/admin.py:1057
+# Mailman/Cgi/admin.py:1062
+#: Mailman/Cgi/admin.py:1063
+msgid "Subscribe these users now or invite them?"
+msgstr "Anmäla dessa adresser omedelbart, eller inbjuda dem?"
+
+# Mailman/Cgi/admin.py:1059
+# Mailman/Cgi/admin.py:1064
+#: Mailman/Cgi/admin.py:1065
+msgid "Invite"
+msgstr "Inbjud"
+
+# Mailman/Cgi/admin.py:1059 Mailman/Cgi/confirm.py:272
+# Mailman/Cgi/listinfo.py:171
+# Mailman/Cgi/admin.py:1064 Mailman/Cgi/listinfo.py:171
+#: Mailman/Cgi/admin.py:1065 Mailman/Cgi/listinfo.py:175
+msgid "Subscribe"
+msgstr "Anmäl"
+
+# Mailman/Cgi/admin.py:1065
+# Mailman/Cgi/admin.py:1070
+#: Mailman/Cgi/admin.py:1071
+msgid "Send welcome messages to new subscribees?"
+msgstr "Skicka välkomsthälsning till nya medlemmar?"
+
+# Mailman/Cgi/admin.py:1067 Mailman/Cgi/admin.py:1076
+# Mailman/Cgi/admin.py:1100 Mailman/Cgi/admin.py:1108
+# Mailman/Cgi/confirm.py:260 Mailman/Cgi/create.py:323
+# Mailman/Cgi/create.py:351 Mailman/Cgi/create.py:383
+# Mailman/Cgi/rmlist.py:205 Mailman/Gui/Archive.py:33
+# Mailman/Gui/Autoresponse.py:55 Mailman/Gui/Autoresponse.py:63
+# Mailman/Gui/Autoresponse.py:72 Mailman/Gui/Bounce.py:77
+# Mailman/Gui/Bounce.py:108 Mailman/Gui/Bounce.py:134
+# Mailman/Gui/Bounce.py:143 Mailman/Gui/ContentFilter.py:40
+# Mailman/Gui/ContentFilter.py:64 Mailman/Gui/Digest.py:46
+# Mailman/Gui/Digest.py:62 Mailman/Gui/Digest.py:84 Mailman/Gui/Digest.py:89
+# Mailman/Gui/General.py:150 Mailman/Gui/General.py:228
+# Mailman/Gui/General.py:255 Mailman/Gui/General.py:282
+# Mailman/Gui/General.py:293 Mailman/Gui/General.py:296
+# Mailman/Gui/General.py:306 Mailman/Gui/General.py:311
+# Mailman/Gui/General.py:334 Mailman/Gui/General.py:362
+# Mailman/Gui/General.py:385 Mailman/Gui/NonDigest.py:44
+# Mailman/Gui/NonDigest.py:51 Mailman/Gui/Privacy.py:100
+# Mailman/Gui/Privacy.py:106 Mailman/Gui/Privacy.py:139
+# Mailman/Gui/Privacy.py:187 Mailman/Gui/Privacy.py:295
+# Mailman/Gui/Privacy.py:310 Mailman/Gui/Privacy.py:377
+# Mailman/Gui/Usenet.py:46 Mailman/Gui/Usenet.py:50 Mailman/Gui/Usenet.py:54
+# Mailman/Cgi/admin.py:1072 Mailman/Cgi/admin.py:1081
+# Mailman/Cgi/admin.py:1114 Mailman/Cgi/admin.py:1122
+# Mailman/Cgi/confirm.py:264 Mailman/Cgi/create.py:327
+# Mailman/Cgi/create.py:355 Mailman/Cgi/create.py:387
+# Mailman/Cgi/rmlist.py:205 Mailman/Gui/Archive.py:33
+# Mailman/Gui/Autoresponse.py:54 Mailman/Gui/Autoresponse.py:62
+# Mailman/Gui/Autoresponse.py:71 Mailman/Gui/Bounce.py:77
+# Mailman/Gui/Bounce.py:108 Mailman/Gui/Bounce.py:134
+# Mailman/Gui/Bounce.py:143 Mailman/Gui/ContentFilter.py:70
+# Mailman/Gui/ContentFilter.py:103 Mailman/Gui/Digest.py:46
+# Mailman/Gui/Digest.py:62 Mailman/Gui/Digest.py:84 Mailman/Gui/Digest.py:89
+# Mailman/Gui/General.py:148 Mailman/Gui/General.py:154
+# Mailman/Gui/General.py:232 Mailman/Gui/General.py:259
+# Mailman/Gui/General.py:286 Mailman/Gui/General.py:297
+# Mailman/Gui/General.py:300 Mailman/Gui/General.py:310
+# Mailman/Gui/General.py:315 Mailman/Gui/General.py:338
+# Mailman/Gui/General.py:366 Mailman/Gui/General.py:389
+# Mailman/Gui/NonDigest.py:44 Mailman/Gui/NonDigest.py:51
+# Mailman/Gui/Privacy.py:101 Mailman/Gui/Privacy.py:107
+# Mailman/Gui/Privacy.py:140 Mailman/Gui/Privacy.py:188
+# Mailman/Gui/Privacy.py:296 Mailman/Gui/Privacy.py:309
+# Mailman/Gui/Usenet.py:50 Mailman/Gui/Usenet.py:54 Mailman/Gui/Usenet.py:91
+# Mailman/Gui/Usenet.py:103
+#: Mailman/Cgi/admin.py:1073 Mailman/Cgi/admin.py:1082
+#: Mailman/Cgi/admin.py:1115 Mailman/Cgi/admin.py:1123
+#: Mailman/Cgi/confirm.py:271 Mailman/Cgi/create.py:327
+#: Mailman/Cgi/create.py:355 Mailman/Cgi/create.py:395
+#: Mailman/Cgi/rmlist.py:228 Mailman/Gui/Archive.py:33
+#: Mailman/Gui/Autoresponse.py:54 Mailman/Gui/Autoresponse.py:62
+#: Mailman/Gui/Autoresponse.py:71 Mailman/Gui/Bounce.py:77
+#: Mailman/Gui/Bounce.py:108 Mailman/Gui/Bounce.py:134
+#: Mailman/Gui/Bounce.py:143 Mailman/Gui/ContentFilter.py:70
+#: Mailman/Gui/ContentFilter.py:103 Mailman/Gui/Digest.py:46
+#: Mailman/Gui/Digest.py:62 Mailman/Gui/Digest.py:84 Mailman/Gui/Digest.py:89
+#: Mailman/Gui/General.py:148 Mailman/Gui/General.py:154
+#: Mailman/Gui/General.py:232 Mailman/Gui/General.py:259
+#: Mailman/Gui/General.py:286 Mailman/Gui/General.py:297
+#: Mailman/Gui/General.py:300 Mailman/Gui/General.py:310
+#: Mailman/Gui/General.py:315 Mailman/Gui/General.py:325
+#: Mailman/Gui/General.py:345 Mailman/Gui/General.py:373
+#: Mailman/Gui/General.py:396 Mailman/Gui/NonDigest.py:44
+#: Mailman/Gui/NonDigest.py:52 Mailman/Gui/Privacy.py:101
+#: Mailman/Gui/Privacy.py:107 Mailman/Gui/Privacy.py:140
+#: Mailman/Gui/Privacy.py:188 Mailman/Gui/Privacy.py:296
+#: Mailman/Gui/Privacy.py:309 Mailman/Gui/Usenet.py:50
+#: Mailman/Gui/Usenet.py:54 Mailman/Gui/Usenet.py:91 Mailman/Gui/Usenet.py:103
+msgid "No"
+msgstr "Nej"
+
+# Mailman/Cgi/admin.py:1067 Mailman/Cgi/admin.py:1076
+# Mailman/Cgi/admin.py:1100 Mailman/Cgi/admin.py:1108
+# Mailman/Cgi/confirm.py:260 Mailman/Cgi/create.py:323
+# Mailman/Cgi/create.py:351 Mailman/Cgi/create.py:383
+# Mailman/Cgi/rmlist.py:205 Mailman/Gui/Archive.py:33
+# Mailman/Gui/Autoresponse.py:55 Mailman/Gui/Autoresponse.py:63
+# Mailman/Gui/Bounce.py:77 Mailman/Gui/Bounce.py:108
+# Mailman/Gui/Bounce.py:134 Mailman/Gui/Bounce.py:143
+# Mailman/Gui/ContentFilter.py:40 Mailman/Gui/ContentFilter.py:64
+# Mailman/Gui/Digest.py:46 Mailman/Gui/Digest.py:62 Mailman/Gui/Digest.py:84
+# Mailman/Gui/Digest.py:89 Mailman/Gui/General.py:150
+# Mailman/Gui/General.py:228 Mailman/Gui/General.py:255
+# Mailman/Gui/General.py:282 Mailman/Gui/General.py:293
+# Mailman/Gui/General.py:296 Mailman/Gui/General.py:306
+# Mailman/Gui/General.py:311 Mailman/Gui/General.py:334
+# Mailman/Gui/General.py:362 Mailman/Gui/General.py:385
+# Mailman/Gui/NonDigest.py:44 Mailman/Gui/NonDigest.py:51
+# Mailman/Gui/Privacy.py:100 Mailman/Gui/Privacy.py:106
+# Mailman/Gui/Privacy.py:139 Mailman/Gui/Privacy.py:187
+# Mailman/Gui/Privacy.py:295 Mailman/Gui/Privacy.py:310
+# Mailman/Gui/Privacy.py:377 Mailman/Gui/Usenet.py:46
+# Mailman/Gui/Usenet.py:50 Mailman/Gui/Usenet.py:54
+# Mailman/Cgi/admin.py:1072 Mailman/Cgi/admin.py:1081
+# Mailman/Cgi/admin.py:1114 Mailman/Cgi/admin.py:1122
+# Mailman/Cgi/confirm.py:264 Mailman/Cgi/create.py:327
+# Mailman/Cgi/create.py:355 Mailman/Cgi/create.py:387
+# Mailman/Cgi/rmlist.py:205 Mailman/Gui/Archive.py:33
+# Mailman/Gui/Autoresponse.py:54 Mailman/Gui/Autoresponse.py:62
+# Mailman/Gui/Bounce.py:77 Mailman/Gui/Bounce.py:108
+# Mailman/Gui/Bounce.py:134 Mailman/Gui/Bounce.py:143
+# Mailman/Gui/ContentFilter.py:70 Mailman/Gui/ContentFilter.py:103
+# Mailman/Gui/Digest.py:46 Mailman/Gui/Digest.py:62 Mailman/Gui/Digest.py:84
+# Mailman/Gui/Digest.py:89 Mailman/Gui/General.py:148
+# Mailman/Gui/General.py:154 Mailman/Gui/General.py:232
+# Mailman/Gui/General.py:259 Mailman/Gui/General.py:286
+# Mailman/Gui/General.py:297 Mailman/Gui/General.py:300
+# Mailman/Gui/General.py:310 Mailman/Gui/General.py:315
+# Mailman/Gui/General.py:338 Mailman/Gui/General.py:366
+# Mailman/Gui/General.py:389 Mailman/Gui/NonDigest.py:44
+# Mailman/Gui/NonDigest.py:51 Mailman/Gui/Privacy.py:101
+# Mailman/Gui/Privacy.py:107 Mailman/Gui/Privacy.py:140
+# Mailman/Gui/Privacy.py:188 Mailman/Gui/Privacy.py:296
+# Mailman/Gui/Privacy.py:309 Mailman/Gui/Usenet.py:50
+# Mailman/Gui/Usenet.py:54 Mailman/Gui/Usenet.py:91 Mailman/Gui/Usenet.py:103
+#: Mailman/Cgi/admin.py:1073 Mailman/Cgi/admin.py:1082
+#: Mailman/Cgi/admin.py:1115 Mailman/Cgi/admin.py:1123
+#: Mailman/Cgi/confirm.py:271 Mailman/Cgi/create.py:327
+#: Mailman/Cgi/create.py:355 Mailman/Cgi/create.py:395
+#: Mailman/Cgi/rmlist.py:228 Mailman/Gui/Archive.py:33
+#: Mailman/Gui/Autoresponse.py:54 Mailman/Gui/Autoresponse.py:62
+#: Mailman/Gui/Bounce.py:77 Mailman/Gui/Bounce.py:108
+#: Mailman/Gui/Bounce.py:134 Mailman/Gui/Bounce.py:143
+#: Mailman/Gui/ContentFilter.py:70 Mailman/Gui/ContentFilter.py:103
+#: Mailman/Gui/Digest.py:46 Mailman/Gui/Digest.py:62 Mailman/Gui/Digest.py:84
+#: Mailman/Gui/Digest.py:89 Mailman/Gui/General.py:148
+#: Mailman/Gui/General.py:154 Mailman/Gui/General.py:232
+#: Mailman/Gui/General.py:259 Mailman/Gui/General.py:286
+#: Mailman/Gui/General.py:297 Mailman/Gui/General.py:300
+#: Mailman/Gui/General.py:310 Mailman/Gui/General.py:315
+#: Mailman/Gui/General.py:325 Mailman/Gui/General.py:345
+#: Mailman/Gui/General.py:373 Mailman/Gui/General.py:396
+#: Mailman/Gui/NonDigest.py:44 Mailman/Gui/NonDigest.py:52
+#: Mailman/Gui/Privacy.py:101 Mailman/Gui/Privacy.py:107
+#: Mailman/Gui/Privacy.py:140 Mailman/Gui/Privacy.py:188
+#: Mailman/Gui/Privacy.py:296 Mailman/Gui/Privacy.py:309
+#: Mailman/Gui/Usenet.py:50 Mailman/Gui/Usenet.py:54 Mailman/Gui/Usenet.py:91
+#: Mailman/Gui/Usenet.py:103
+msgid "Yes"
+msgstr "Ja"
+
+# Mailman/Cgi/admin.py:1074
+# Mailman/Cgi/admin.py:1079
+#: Mailman/Cgi/admin.py:1080
+msgid "Send notifications of new subscriptions to the list owner?"
+msgstr "Skicka meddelande till listans ägare när någon anmäler sig?"
+
+# Mailman/Cgi/admin.py:1082 Mailman/Cgi/admin.py:1114
+# Mailman/Cgi/admin.py:1087 Mailman/Cgi/admin.py:1128
+#: Mailman/Cgi/admin.py:1088 Mailman/Cgi/admin.py:1129
+msgid "Enter one address per line below..."
+msgstr ""
+"Skriv in e-postadressen/adresserna (bara en adress per rad) i textrutan "
+"nedan..."
+
+# Mailman/Cgi/admin.py:1087 Mailman/Cgi/admin.py:1119
+# Mailman/Cgi/admin.py:1092 Mailman/Cgi/admin.py:1133
+#: Mailman/Cgi/admin.py:1093 Mailman/Cgi/admin.py:1134
+msgid "...or specify a file to upload:"
+msgstr ""
+"...eller specificera namnet på en fil i samma format, som innehåller "
+"adresserna:"
+
+# Mailman/Cgi/admin.py:1097
+#: Mailman/Cgi/admin.py:1098
+msgid ""
+"Below, enter additional text to be added to the\n"
+" top of your invitation or the subscription notification. Include at "
+"least\n"
+" one blank line at the end..."
+msgstr ""
+"I textrutan nedan kan du lägga in extra text som ska läggas till i toppen av "
+"inbjudan\n"
+"eller anmälningsbekräftelsen. Kom ihåg att lägga till minst en blankrad i "
+"slutet..."
+
+# Mailman/Cgi/admin.py:1098
+# Mailman/Cgi/admin.py:1112
+#: Mailman/Cgi/admin.py:1113
+msgid "Send unsubscription acknowledgement to the user?"
+msgstr "Skicka bekräftelse på avanmälan från listan till medlemmen?"
+
+# Mailman/Cgi/admin.py:1106
+# Mailman/Cgi/admin.py:1120
+#: Mailman/Cgi/admin.py:1121
+msgid "Send notifications to the list owner?"
+msgstr "Skicka meddelande till listans ägare?"
+
+# Mailman/Cgi/admin.py:1128
+# Mailman/Cgi/admin.py:1142
+#: Mailman/Cgi/admin.py:1143
+msgid "Change list ownership passwords"
+msgstr "Ändra admin/moderatorns lösenord"
+
+# Mailman/Cgi/admin.py:1131
+# Mailman/Cgi/admin.py:1145
+#: Mailman/Cgi/admin.py:1146
+msgid ""
+"The <em>list administrators</em> are the people who have ultimate control "
+"over\n"
+"all parameters of this mailing list. They are able to change any list\n"
+"configuration variable available through these administration web pages.\n"
+"\n"
+"<p>The <em>list moderators</em> have more limited permissions; they are not\n"
+"able to change any list configuration variable, but they are allowed to "
+"tend\n"
+"to pending administration requests, including approving or rejecting held\n"
+"subscription requests, and disposing of held postings. Of course, the\n"
+"<em>list administrators</em> can also tend to pending requests.\n"
+"\n"
+"<p>In order to split the list ownership duties into administrators and\n"
+"moderators, you must set a separate moderator password in the fields below,\n"
+"and also provide the email addresses of the list moderators in the\n"
+"<a href=\"%(adminurl)s/general\">general options section</a>."
+msgstr ""
+"<em>Listadministratörerna</em> är de som har full\n"
+"kontroll och tillgång till alla inställningar för den här e-postlistan.\n"
+"\n"
+"<p><em>Listmoderatorerna</em> har en något mer begränsad tillgång. De kan "
+"inte\n"
+"ändra några inställningar för listan, men de kan godkänna e-post som\n"
+"ska behandlas, och de kan godkänna eller avslå ansökningar\n"
+"om medlemskap. (Det kan också listadministratören göra.)\n"
+"\n"
+"<p>För att kunna utnyttja möjligheten att ha listmoderatorer,\n"
+"måste du sätta ett eget moderatorlösenord i fälten nedan.\n"
+"(Lösenordet kan naturligtvis vara vad som helst, men är det detsamma som\n"
+"administratörslösenordet, har det ju inget syfte.)\n"
+"Du måste också sedan skriva in e-postadressen (adresserna) till "
+"listmoderatorn (moderatorerna)på <a href=\"%(adminurl)s/general\">Allmänna "
+"inställningar</a>."
+
+# Mailman/Cgi/admin.py:1150
+# Mailman/Cgi/admin.py:1164
+#: Mailman/Cgi/admin.py:1165
+msgid "Enter new administrator password:"
+msgstr "Nytt administratörslösenord:"
+
+# Mailman/Cgi/admin.py:1152
+# Mailman/Cgi/admin.py:1166
+#: Mailman/Cgi/admin.py:1167
+#, fuzzy
+msgid "Confirm administrator password:"
+msgstr "Administratörslösenordet en gång till:"
+
+# Mailman/Cgi/admin.py:1157
+# Mailman/Cgi/admin.py:1171
+#: Mailman/Cgi/admin.py:1172
+msgid "Enter new moderator password:"
+msgstr "Nytt moderatorlösenord:"
+
+# Mailman/Cgi/admin.py:1159
+# Mailman/Cgi/admin.py:1173
+#: Mailman/Cgi/admin.py:1174
+msgid "Confirm moderator password:"
+msgstr "Moderatorlösenordet en gång till:"
+
+# Mailman/Cgi/admin.py:1169
+# Mailman/Cgi/admin.py:1183
+#: Mailman/Cgi/admin.py:1184
+msgid "Submit Your Changes"
+msgstr "Spara ändringar"
+
+# Mailman/Cgi/admin.py:1192
+# Mailman/Cgi/admin.py:1206
+#: Mailman/Cgi/admin.py:1207
+msgid "Moderator passwords did not match"
+msgstr "Moderatorlösenorden är inte lika"
+
+# Mailman/Cgi/admin.py:1202
+# Mailman/Cgi/admin.py:1216
+#: Mailman/Cgi/admin.py:1217
+#, fuzzy
+msgid "Administrator passwords did not match"
+msgstr "Administratörslösenorden är inte lika"
+
+# Mailman/Cgi/admin.py:1245
+# Mailman/Cgi/admin.py:1265
+#: Mailman/Cgi/admin.py:1265
+msgid "Already a member"
+msgstr "Redan medlem"
+
+# Mailman/Cgi/admin.py:1248
+# Mailman/Cgi/admin.py:1268
+#: Mailman/Cgi/admin.py:1268
+msgid "&lt;blank line&gt;"
+msgstr "&lt;tom rad&gt;"
+
+# Mailman/Cgi/admin.py:1249 Mailman/Cgi/admin.py:1252
+# Mailman/Cgi/admin.py:1269 Mailman/Cgi/admin.py:1272
+#: Mailman/Cgi/admin.py:1269 Mailman/Cgi/admin.py:1272
+msgid "Bad/Invalid email address"
+msgstr "Fel/Ogiltig e-postadress"
+
+# Mailman/Cgi/admin.py:1255
+# Mailman/Cgi/admin.py:1275
+#: Mailman/Cgi/admin.py:1275
+msgid "Hostile address (illegal characters)"
+msgstr "Farlig e-postadress (innehåller ogiltiga tecken)"
+
+# Mailman/Cgi/admin.py:1260
+# Mailman/Cgi/admin.py:1280
+#: Mailman/Cgi/admin.py:1281
+msgid "Successfully invited:"
+msgstr "Inbjudan är skickad till:"
+
+# Mailman/Cgi/admin.py:1262
+# Mailman/Cgi/admin.py:1282
+#: Mailman/Cgi/admin.py:1283
+msgid "Successfully subscribed:"
+msgstr "Anmälan gjord:"
+
+# Mailman/Cgi/admin.py:1267
+# Mailman/Cgi/admin.py:1287
+#: Mailman/Cgi/admin.py:1288
+msgid "Error inviting:"
+msgstr "Fel under inbjudan:"
+
+# Mailman/Cgi/admin.py:1269
+# Mailman/Cgi/admin.py:1289
+#: Mailman/Cgi/admin.py:1290
+msgid "Error subscribing:"
+msgstr "Fel under anmälan:"
+
+# Mailman/Cgi/admin.py:1298
+# Mailman/Cgi/admin.py:1318
+#: Mailman/Cgi/admin.py:1319
+msgid "Successfully Unsubscribed:"
+msgstr "Avanmälan gjord:"
+
+# Mailman/Cgi/admin.py:1303
+# Mailman/Cgi/admin.py:1323
+#: Mailman/Cgi/admin.py:1324
+msgid "Cannot unsubscribe non-members:"
+msgstr "Kan inte avanmäla en icke-existerande medlem:"
+
+# Mailman/Cgi/admin.py:1315
+# Mailman/Cgi/admin.py:1335
+#: Mailman/Cgi/admin.py:1336
+msgid "Bad moderation flag value"
+msgstr "Ogiltigt värde på moderationsflaggan"
+
+# Mailman/Cgi/admin.py:1336
+# Mailman/Cgi/admin.py:1356
+#: Mailman/Cgi/admin.py:1357
+msgid "Not subscribed"
+msgstr "Inte anmäld"
+
+# Mailman/Cgi/admin.py:1339
+# Mailman/Cgi/admin.py:1359
+#: Mailman/Cgi/admin.py:1360
+msgid "Ignoring changes to deleted member: %(user)s"
+msgstr "Bortser från ändring av en medlem som är avanmäld: %(user)s"
+
+# Mailman/Cgi/admin.py:1378
+# Mailman/Cgi/admin.py:1399
+#: Mailman/Cgi/admin.py:1400
+msgid "Successfully Removed:"
+msgstr "Avanmälan gjord av:"
+
+# Mailman/Cgi/admin.py:1382
+# Mailman/Cgi/admin.py:1403
+#: Mailman/Cgi/admin.py:1404
+msgid "Error Unsubscribing:"
+msgstr "Fel under avanmälan av:"
+
+# Mailman/Cgi/admindb.py:155 Mailman/Cgi/admindb.py:163
+# Mailman/Cgi/admindb.py:159 Mailman/Cgi/admindb.py:167
+#: Mailman/Cgi/admindb.py:159 Mailman/Cgi/admindb.py:167
+msgid "%(realname)s Administrative Database"
+msgstr "Administrativ databas för listan %(realname)s"
+
+# Mailman/Cgi/admindb.py:158
+# Mailman/Cgi/admindb.py:162
+#: Mailman/Cgi/admindb.py:162
+msgid "%(realname)s Administrative Database Results"
+msgstr "Resultat från den administrativa databasen till listan %(realname)s"
+
+# Mailman/Cgi/admindb.py:166
+# Mailman/Cgi/admindb.py:170
+#: Mailman/Cgi/admindb.py:170
+msgid "There are no pending requests."
+msgstr "Inga ansökningar väntar."
+
+# Mailman/Cgi/admin.py:1024
+# Mailman/Cgi/admindb.py:173
+#: Mailman/Cgi/admindb.py:173
+#, fuzzy
+msgid "Click here to reload this page."
+msgstr "Klicka här för att ladda om denna sida."
+
+# Mailman/Cgi/admindb.py:177
+# Mailman/Cgi/admindb.py:184
+#: Mailman/Cgi/admindb.py:184
+msgid "Detailed instructions for the administrative database"
+msgstr "Detaljerade instruktioner för den administrativa databasen"
+
+# Mailman/Cgi/admindb.py:181
+# Mailman/Cgi/admindb.py:188
+#: Mailman/Cgi/admindb.py:188
+msgid "Administrative requests for mailing list:"
+msgstr "Administrativa förfrågningar för listan:"
+
+# Mailman/Cgi/admindb.py:184 Mailman/Cgi/admindb.py:226
+# Mailman/Cgi/admindb.py:191 Mailman/Cgi/admindb.py:233
+#: Mailman/Cgi/admindb.py:191 Mailman/Cgi/admindb.py:234
+msgid "Submit All Data"
+msgstr "Utför"
+
+# Mailman/Cgi/admindb.py:197
+# Mailman/Cgi/admindb.py:204
+#: Mailman/Cgi/admindb.py:204
+msgid "all of %(esender)s's held messages."
+msgstr "alla meddelanden från %(esender)s, som hålls tillbaka för godkännande."
+
+# Mailman/Cgi/admindb.py:202
+# Mailman/Cgi/admindb.py:209
+#: Mailman/Cgi/admindb.py:209
+msgid "a single held message."
+msgstr "ett ensamt tillbakahållet meddelande."
+
+# Mailman/Cgi/admindb.py:207
+# Mailman/Cgi/admindb.py:214
+#: Mailman/Cgi/admindb.py:214
+msgid "all held messages."
+msgstr "alla tillbakahållna meddelanden."
+
+# Mailman/Cgi/admindb.py:241
+# Mailman/Cgi/admindb.py:248
+#: Mailman/Cgi/admindb.py:249
+msgid "Mailman Administrative Database Error"
+msgstr "Fel i Mailmans administrativa databas"
+
+# Mailman/Cgi/admindb.py:246
+# Mailman/Cgi/admindb.py:253
+#: Mailman/Cgi/admindb.py:254
+msgid "list of available mailing lists."
+msgstr "lista över alla tillgängliga e-postlistor."
+
+# Mailman/Cgi/admindb.py:247
+# Mailman/Cgi/admindb.py:254
+#: Mailman/Cgi/admindb.py:255
+msgid "You must specify a list name. Here is the %(link)s"
+msgstr "Du måste uppge ett namn på en lista. Här är %(link)s"
+
+# Mailman/Cgi/admindb.py:260
+# Mailman/Cgi/admindb.py:267
+#: Mailman/Cgi/admindb.py:268
+msgid "Subscription Requests"
+msgstr "Ansökningar om medlemskap"
+
+# Mailman/Cgi/admindb.py:262
+# Mailman/Cgi/admindb.py:269
+#: Mailman/Cgi/admindb.py:270
+msgid "Address/name"
+msgstr "Adress/namn"
+
+# Mailman/Cgi/admindb.py:263 Mailman/Cgi/admindb.py:308
+# Mailman/Cgi/admindb.py:270 Mailman/Cgi/admindb.py:316
+#: Mailman/Cgi/admindb.py:271 Mailman/Cgi/admindb.py:320
+msgid "Your decision"
+msgstr "Ditt beslut"
+
+# Mailman/Cgi/admindb.py:264 Mailman/Cgi/admindb.py:309
+# Mailman/Cgi/admindb.py:271 Mailman/Cgi/admindb.py:317
+#: Mailman/Cgi/admindb.py:272 Mailman/Cgi/admindb.py:321
+msgid "Reason for refusal"
+msgstr "Anledning"
+
+# Mailman/Cgi/admindb.py:279 Mailman/Cgi/admindb.py:328
+# Mailman/Cgi/admindb.py:367 Mailman/Cgi/admindb.py:574
+# Mailman/Cgi/admindb.py:286 Mailman/Cgi/admindb.py:334
+# Mailman/Cgi/admindb.py:373 Mailman/Cgi/admindb.py:589
+#: Mailman/Cgi/admindb.py:289 Mailman/Cgi/admindb.py:346
+#: Mailman/Cgi/admindb.py:389 Mailman/Cgi/admindb.py:612
+msgid "Defer"
+msgstr "Vänta"
+
+# Mailman/Cgi/admindb.py:280 Mailman/Cgi/admindb.py:329
+# Mailman/Cgi/admindb.py:574
+# Mailman/Cgi/admindb.py:287 Mailman/Cgi/admindb.py:335
+# Mailman/Cgi/admindb.py:589
+#: Mailman/Cgi/admindb.py:290 Mailman/Cgi/admindb.py:347
+#: Mailman/Cgi/admindb.py:612
+msgid "Approve"
+msgstr "Godkänn"
+
+# Mailman/Cgi/admindb.py:281 Mailman/Cgi/admindb.py:330
+# Mailman/Cgi/admindb.py:367 Mailman/Cgi/admindb.py:574
+# Mailman/Gui/Privacy.py:206 Mailman/Gui/Privacy.py:280
+# Mailman/Cgi/admindb.py:288 Mailman/Cgi/admindb.py:336
+# Mailman/Cgi/admindb.py:373 Mailman/Cgi/admindb.py:589
+# Mailman/Gui/ContentFilter.py:37 Mailman/Gui/Privacy.py:207
+# Mailman/Gui/Privacy.py:281
+#: Mailman/Cgi/admindb.py:291 Mailman/Cgi/admindb.py:348
+#: Mailman/Cgi/admindb.py:389 Mailman/Cgi/admindb.py:612
+#: Mailman/Gui/ContentFilter.py:37 Mailman/Gui/Privacy.py:207
+#: Mailman/Gui/Privacy.py:281
+msgid "Reject"
+msgstr "Avslå"
+
+# Mailman/Cgi/admindb.py:282 Mailman/Cgi/admindb.py:331
+# Mailman/Cgi/admindb.py:367 Mailman/Cgi/admindb.py:574
+# Mailman/Gui/Privacy.py:206 Mailman/Gui/Privacy.py:280
+# Mailman/Cgi/admindb.py:289 Mailman/Cgi/admindb.py:337
+# Mailman/Cgi/admindb.py:373 Mailman/Cgi/admindb.py:589
+# Mailman/Gui/ContentFilter.py:37 Mailman/Gui/Privacy.py:207
+# Mailman/Gui/Privacy.py:281
+#: Mailman/Cgi/admindb.py:292 Mailman/Cgi/admindb.py:349
+#: Mailman/Cgi/admindb.py:389 Mailman/Cgi/admindb.py:612
+#: Mailman/Gui/ContentFilter.py:37 Mailman/Gui/Privacy.py:207
+#: Mailman/Gui/Privacy.py:281
+msgid "Discard"
+msgstr "Kasta"
+
+# Mailman/Cgi/admindb.py:290
+# Mailman/Cgi/admindb.py:297
+#: Mailman/Cgi/admindb.py:300
+msgid "Permanently ban from this list"
+msgstr "Utestäng för alltid från denna lista"
+
+# Mailman/Cgi/admindb.py:307
+# Mailman/Cgi/admindb.py:315
+#: Mailman/Cgi/admindb.py:319
+msgid "User address/name"
+msgstr "Medlemmens adress/namn"
+
+# Mailman/Cgi/admindb.py:305
+# Mailman/Cgi/admindb.py:313
+#: Mailman/Cgi/admindb.py:359
+msgid "Unsubscription Requests"
+msgstr "Ansökningar om avanmälan"
+
+# Mailman/Cgi/admindb.py:360 Mailman/Cgi/admindb.py:562
+# Mailman/Cgi/admindb.py:366 Mailman/Cgi/admindb.py:573
+#: Mailman/Cgi/admindb.py:382 Mailman/Cgi/admindb.py:596
+msgid "From:"
+msgstr "Från:"
+
+# Mailman/Cgi/admindb.py:363
+# Mailman/Cgi/admindb.py:369
+#: Mailman/Cgi/admindb.py:385
+msgid "Action to take on all these held messages:"
+msgstr "Beslut för alla tillbakahållna meddelanden:"
+
+# Mailman/Cgi/admindb.py:367 Mailman/Gui/Privacy.py:280
+# Mailman/Cgi/admindb.py:373 Mailman/Gui/Privacy.py:281
+#: Mailman/Cgi/admindb.py:389 Mailman/Gui/Privacy.py:281
+msgid "Accept"
+msgstr "Godkänn"
+
+# Mailman/Cgi/admindb.py:375
+# Mailman/Cgi/admindb.py:381
+#: Mailman/Cgi/admindb.py:397
+msgid "Preserve messages for the site administrator"
+msgstr "Bevara meddelanden för systemets administratör"
+
+# Mailman/Cgi/admindb.py:381
+# Mailman/Cgi/admindb.py:387
+#: Mailman/Cgi/admindb.py:403
+msgid "Forward messages (individually) to:"
+msgstr "Vidaresänd meddelanden (individuellt) till:"
+
+# Mailman/Cgi/admindb.py:399
+# Mailman/Cgi/admindb.py:405
+#: Mailman/Cgi/admindb.py:421
+msgid "Clear this member's <em>moderate</em> flag"
+msgstr "Rensa denna medlems <em>moderationsflagga</em>"
+
+#: Mailman/Cgi/admindb.py:425
+msgid "<em>The sender is now a member of this list</em>"
+msgstr ""
+
+# Mailman/Cgi/admindb.py:409
+# Mailman/Cgi/admindb.py:415
+#: Mailman/Cgi/admindb.py:434
+msgid "Add <b>%(esender)s</b> to a sender filter"
+msgstr "Lägg in <b>%(esender)s</b> i ett avsändarfilter som:"
+
+# Mailman/Cgi/admindb.py:414
+# Mailman/Cgi/admindb.py:420
+#: Mailman/Cgi/admindb.py:439
+msgid "Accepts"
+msgstr "Godkänner"
+
+# Mailman/Cgi/admindb.py:414
+# Mailman/Cgi/admindb.py:420
+#: Mailman/Cgi/admindb.py:439
+msgid "Discards"
+msgstr "Kastar"
+
+# Mailman/Cgi/admindb.py:414
+# Mailman/Cgi/admindb.py:420
+#: Mailman/Cgi/admindb.py:439
+msgid "Holds"
+msgstr "Håller tillbaka"
+
+# Mailman/Cgi/admindb.py:414
+# Mailman/Cgi/admindb.py:420
+#: Mailman/Cgi/admindb.py:439
+msgid "Rejects"
+msgstr "Avslår"
+
+# Mailman/Cgi/admindb.py:423
+# Mailman/Cgi/admindb.py:429
+#: Mailman/Cgi/admindb.py:448
+msgid ""
+"Ban <b>%(esender)s</b> from ever subscribing to this\n"
+" mailing list"
+msgstr "Utestäng <b>%(esender)s</b> från att anmäla sig på denna e-postlista"
+
+# Mailman/Cgi/admindb.py:428
+# Mailman/Cgi/admindb.py:434
+#: Mailman/Cgi/admindb.py:453
+msgid ""
+"Click on the message number to view the individual\n"
+" message, or you can "
+msgstr "Klicka på meddelandets nummer för att se det, eller så kan du "
+
+# Mailman/Cgi/admindb.py:430
+# Mailman/Cgi/admindb.py:436
+#: Mailman/Cgi/admindb.py:455
+msgid "view all messages from %(esender)s"
+msgstr "se alla meddelanden från %(esender)s"
+
+# Mailman/Cgi/admindb.py:450 Mailman/Cgi/admindb.py:565
+# Mailman/Cgi/admindb.py:456 Mailman/Cgi/admindb.py:576
+#: Mailman/Cgi/admindb.py:475 Mailman/Cgi/admindb.py:599
+msgid "Subject:"
+msgstr "Titel:"
+
+# Mailman/Cgi/admindb.py:453
+# Mailman/Cgi/admindb.py:459
+#: Mailman/Cgi/admindb.py:478
+msgid " bytes"
+msgstr ""
+
+# Mailman/Cgi/admindb.py:453
+# Mailman/Cgi/admindb.py:459
+#: Mailman/Cgi/admindb.py:478
+msgid "Size:"
+msgstr "Storlek:"
+
+# Mailman/Cgi/admindb.py:455 Mailman/Handlers/Decorate.py:49
+# Mailman/Handlers/Scrubber.py:157 Mailman/Handlers/Scrubber.py:158
+# Mailman/Cgi/admindb.py:461 Mailman/Handlers/Decorate.py:49
+# Mailman/Handlers/Scrubber.py:194 Mailman/Handlers/Scrubber.py:195
+#: Mailman/Cgi/admindb.py:482 Mailman/Handlers/Decorate.py:50
+#: Mailman/Handlers/Scrubber.py:226 Mailman/Handlers/Scrubber.py:227
+msgid "not available"
+msgstr "inte tillgänglig"
+
+# Mailman/Cgi/admindb.py:454 Mailman/Cgi/admindb.py:567
+# Mailman/Cgi/admindb.py:460 Mailman/Cgi/admindb.py:578
+#: Mailman/Cgi/admindb.py:483 Mailman/Cgi/admindb.py:601
+msgid "Reason:"
+msgstr "Orsak:"
+
+# Mailman/Cgi/confirm.py:259
+# Mailman/Cgi/admindb.py:465 Mailman/Cgi/admindb.py:582
+#: Mailman/Cgi/admindb.py:487 Mailman/Cgi/admindb.py:605
+#, fuzzy
+msgid "Received:"
+msgstr "Mottaget:"
+
+# Mailman/Cgi/admindb.py:511
+# Mailman/Cgi/admindb.py:522
+#: Mailman/Cgi/admindb.py:545
+msgid "Posting Held for Approval"
+msgstr "E-post till listan som väntar på godkännande"
+
+# Mailman/Cgi/admindb.py:513
+# Mailman/Cgi/admindb.py:524
+#: Mailman/Cgi/admindb.py:547
+msgid " (%(count)d of %(total)d)"
+msgstr " (%(count)d av %(total)d)"
+
+# Mailman/Cgi/admindb.py:524
+# Mailman/Cgi/admindb.py:535
+#: Mailman/Cgi/admindb.py:558
+msgid "<em>Message with id #%(id)d was lost."
+msgstr "<em>Förlorat meddelandet med id #%(id)d."
+
+# Mailman/Cgi/admindb.py:533
+# Mailman/Cgi/admindb.py:544
+#: Mailman/Cgi/admindb.py:567
+msgid "<em>Message with id #%(id)d is corrupted."
+msgstr "<em>Fel på meddelandet med id #%(id)d."
+
+# Mailman/Cgi/admindb.py:580
+# Mailman/Cgi/admindb.py:595
+#: Mailman/Cgi/admindb.py:618
+msgid "Action:"
+msgstr "Beslut:"
+
+# Mailman/Cgi/admindb.py:584
+# Mailman/Cgi/admindb.py:599
+#: Mailman/Cgi/admindb.py:622
+msgid "Preserve message for site administrator"
+msgstr "Ta vara på meddelandet för systemets administratör"
+
+# Mailman/Cgi/admindb.py:588
+# Mailman/Cgi/admindb.py:603
+#: Mailman/Cgi/admindb.py:626
+msgid "Additionally, forward this message to: "
+msgstr "Vidaresänd detta meddelande även till: "
+
+# Mailman/Cgi/admindb.py:596
+# Mailman/Cgi/admindb.py:607
+#: Mailman/Cgi/admindb.py:630
+msgid "[No explanation given]"
+msgstr "[Ingen förklaring]"
+
+# Mailman/Cgi/admindb.py:593
+# Mailman/Cgi/admindb.py:609
+#: Mailman/Cgi/admindb.py:632
+msgid "If you reject this post,<br>please explain (optional):"
+msgstr "Om du inte godkänner detta,<br>skriv gärna en förklaring:"
+
+# Mailman/Cgi/admindb.py:601
+# Mailman/Cgi/admindb.py:615
+#: Mailman/Cgi/admindb.py:638
+msgid "Message Headers:"
+msgstr "Headers i meddelandet:"
+
+# Mailman/Cgi/admindb.py:606
+# Mailman/Cgi/admindb.py:620
+#: Mailman/Cgi/admindb.py:643
+msgid "Message Excerpt:"
+msgstr "Utdrag ur meddelandet:"
+
+# Mailman/Cgi/admindb.py:639
+# Mailman/Cgi/admindb.py:653 Mailman/Deliverer.py:124
+#: Mailman/Cgi/admindb.py:676 Mailman/Deliverer.py:124
+msgid "No reason given"
+msgstr "Ingen orsak given"
+
+# Mailman/Cgi/admindb.py:700 Mailman/ListAdmin.py:307
+# Mailman/ListAdmin.py:417
+# Mailman/Cgi/admindb.py:714 Mailman/ListAdmin.py:308
+# Mailman/ListAdmin.py:429
+#: Mailman/Cgi/admindb.py:737 Mailman/ListAdmin.py:308
+#: Mailman/ListAdmin.py:429
+msgid "[No reason given]"
+msgstr "[Ingen orsak given]"
+
+# Mailman/Cgi/admindb.py:729
+# Mailman/Cgi/admindb.py:743
+#: Mailman/Cgi/admindb.py:766
+msgid "Database Updated..."
+msgstr "Databasen är uppdaterad..."
+
+# Mailman/Cgi/admindb.py:732
+# Mailman/Cgi/admindb.py:746
+#: Mailman/Cgi/admindb.py:769
+msgid " is already a member"
+msgstr " är redan medlem"
+
+# Mailman/Cgi/confirm.py:69
+# Mailman/Cgi/confirm.py:69
+#: Mailman/Cgi/confirm.py:69
+msgid "Confirmation string was empty."
+msgstr "Ogiltig URL - tom bekräftelseidentifiering"
+
+# Mailman/Cgi/confirm.py:89
+# Mailman/Cgi/confirm.py:89
+#: Mailman/Cgi/confirm.py:89
+msgid ""
+"<b>Invalid confirmation string:</b>\n"
+" %(safecookie)s.\n"
+"\n"
+" <p>Note that confirmation strings expire approximately\n"
+" %(days)s days after the initial subscription request. If your\n"
+" confirmation has expired, please try to re-submit your subscription.\n"
+" Otherwise, <a href=\"%(confirmurl)s\">re-enter</a> your confirmation\n"
+" string."
+msgstr ""
+"<b>Ogiltig identifiering för bekräftelse av anmälan:</b> %(safecookie)s.\n"
+"<p>Observera att sådana identifikationer upphör att gälla %(days)s dagar "
+"efter det att du har mottagit e-postbrevet med adressen.\n"
+"Om så är fallet, pröva att anmäla dig på listan på nytt.\n"
+"I annat fall kan du <a href=\"%(confirmurl)s\">skriva in identifieringen på "
+"nytt</a>."
+
+#: Mailman/Cgi/confirm.py:122
+msgid ""
+"The address requesting unsubscription is not\n"
+" a member of the mailing list. Perhaps you have already "
+"been\n"
+" unsubscribed, e.g. by the list administrator?"
+msgstr ""
+
+# Mailman/Cgi/confirm.py:131
+# Mailman/Cgi/confirm.py:131
+#: Mailman/Cgi/confirm.py:138
+#, fuzzy
+msgid ""
+"The address requesting to be changed has\n"
+" been subsequently unsubscribed. This request has been\n"
+" cancelled."
+msgstr ""
+"Adressen som skulle ändras är inte längre medlem av e-postlistan. Ansökan om "
+"att ändra e-postadress har avbrutits."
+
+# Mailman/Cgi/confirm.py:150
+# Mailman/Cgi/confirm.py:150
+#: Mailman/Cgi/confirm.py:157
+msgid "System error, bad content: %(content)s"
+msgstr "Systemfel, ogiltigt innehåll: %(content)s"
+
+# Mailman/Cgi/confirm.py:160
+# Mailman/Cgi/confirm.py:160
+#: Mailman/Cgi/confirm.py:167
+msgid "Bad confirmation string"
+msgstr "Ogiltig identifikation för bekräftelse"
+
+# Mailman/Cgi/confirm.py:168
+# Mailman/Cgi/confirm.py:168
+#: Mailman/Cgi/confirm.py:175
+msgid "Enter confirmation cookie"
+msgstr "Uppge identifikation för bekräftelse"
+
+# Mailman/Cgi/confirm.py:181
+# Mailman/Cgi/confirm.py:181
+#: Mailman/Cgi/confirm.py:188
+msgid ""
+"Please enter the confirmation string\n"
+" (i.e. <em>cookie</em>) that you received in your email message, in the "
+"box\n"
+" below. Then hit the <em>Submit</em> button to proceed to the next\n"
+" confirmation step."
+msgstr ""
+"Var god ange identifikationen, som du har tagit emot i ett e-postbrev, i "
+"fältet nedan.\n"
+"Klicka därefter på knappen <em>Bekräfta</em> för att fortsätta till nästa "
+"steg."
+
+# Mailman/Cgi/confirm.py:186
+# Mailman/Cgi/confirm.py:186
+#: Mailman/Cgi/confirm.py:193
+msgid "Confirmation string:"
+msgstr "Identifikation för bekräftelse:"
+
+# Mailman/Cgi/confirm.py:188
+# Mailman/Cgi/confirm.py:188
+#: Mailman/Cgi/confirm.py:195
+msgid "Submit"
+msgstr "Bekräfta"
+
+# Mailman/Cgi/confirm.py:203
+# Mailman/Cgi/confirm.py:203
+#: Mailman/Cgi/confirm.py:210
+msgid "Confirm subscription request"
+msgstr "Bekräfta ansökan om medlemskap"
+
+# Mailman/Cgi/confirm.py:220
+# Mailman/Cgi/confirm.py:220
+#: Mailman/Cgi/confirm.py:227
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" subscription request to the mailing list <em>%(listname)s</em>. Your\n"
+" subscription settings are shown below; make any necessary changes and "
+"hit\n"
+" <em>Subscribe</em> to complete the confirmation process. Once you've\n"
+" confirmed your subscription request, you will be shown your account\n"
+" options page which you can use to further customize your membership\n"
+" options.\n"
+"\n"
+" <p>Note: your password will be emailed to you once your subscription is\n"
+" confirmed. You can change it by visiting your personal options page.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this subscription\n"
+" request."
+msgstr ""
+"Din bekräftelse är nödvändig för att fullfölja din ansökan till e-postlistan "
+"<em>%(listname)s</em>.\n"
+"Dina inställningar visas nedan - gör de eventuella ändringar som du önskar "
+"och klicka\n"
+"därefter på knappen <em>Anmäl mig</em> om du verkligen önskar att anmäla dig "
+"till listan.\n"
+"Din personliga medlemssida kommer att visas, där du kan göra ytterligare "
+"ändringar i ditt medlemskap.\n"
+"\n"
+"<p>Observera: du kommer att få lösenordet skickat till dig, så snart du har "
+"bekräftat din anmälan. Du kan byta lösenord genom att gå till din personliga "
+"medlemssida.\n"
+"\n"
+"<p>Eller klicka <em>Avbryt</em> för att dra tillbaka din ansökan."
+
+# Mailman/Cgi/confirm.py:235
+# Mailman/Cgi/confirm.py:235
+#: Mailman/Cgi/confirm.py:242
+#, fuzzy
+msgid ""
+"Your confirmation is required in order to continue with\n"
+" the subscription request to the mailing list <em>%(listname)s</em>.\n"
+" Your subscription settings are shown below; make any necessary "
+"changes\n"
+" and hit <em>Subscribe to list ...</em> to complete the confirmation\n"
+" process. Once you've confirmed your subscription request, the\n"
+" moderator must approve or reject your membership request. You will\n"
+" receive notice of their decision.\n"
+"\n"
+" <p>Note: your password will be emailed to you once your "
+"subscription\n"
+" is confirmed. You can change it by visiting your personal options\n"
+" page.\n"
+"\n"
+" <p>Or, if you've changed your mind and do not want to subscribe to\n"
+" this mailing list, you can hit <em>Cancel my subscription\n"
+" request</em>."
+msgstr ""
+"Din bekräftelse behövs för att fortsätta med din anmälan till e-postlistan "
+"<em>%(listname)s</em>.\n"
+"Dina inställningar visas nedan; gör de eventuella ändringar som du önskar "
+"och klicka\n"
+"därefter på knappen <em>Anmäl mig<em> för att avsluta bekräftelseprocessen.\n"
+"Din ansökan kommer att skickas till listmoderatorn, för godkännande eller "
+"avslag.\n"
+"Du kommer att få ett besked så snart ett beslut har tagits.\n"
+"\n"
+"<p>Observera: du kommer att få lösenordet skickat till dig så snart du har "
+"bekräftat din anmälan. Du kan byta lösenord genom att gå in på din "
+"personliga medlemssida.\n"
+"\n"
+"<p>Eller klicka <em>Avbryt</em> för att dra tillbaka din ansökan."
+
+# Mailman/Cgi/confirm.py:252
+# Mailman/Cgi/confirm.py:253
+#: Mailman/Cgi/confirm.py:260
+msgid "Your email address:"
+msgstr "Din e-postadress:"
+
+# Mailman/Cgi/confirm.py:253
+# Mailman/Cgi/confirm.py:254
+#: Mailman/Cgi/confirm.py:261
+msgid "Your real name:"
+msgstr "Ditt namn:"
+
+# Mailman/Cgi/confirm.py:259
+# Mailman/Cgi/confirm.py:263
+#: Mailman/Cgi/confirm.py:270
+msgid "Receive digests?"
+msgstr "Ta emot sammandragsversioner?"
+
+# Mailman/Cgi/confirm.py:268
+# Mailman/Cgi/confirm.py:272
+#: Mailman/Cgi/confirm.py:279
+msgid "Preferred language:"
+msgstr "Önskat språk:"
+
+# Mailman/Cgi/confirm.py:203
+# Mailman/Cgi/confirm.py:277
+#: Mailman/Cgi/confirm.py:284
+#, fuzzy
+msgid "Cancel my subscription request"
+msgstr "Avbryt min ansökan om medlemskap"
+
+# bin/add_members:245 bin/config_list:101 bin/find_member:93 bin/inject:86
+# bin/list_admins:85 bin/list_members:175 bin/sync_members:218
+# cron/bumpdigests:82
+# Mailman/Cgi/confirm.py:278
+#: Mailman/Cgi/confirm.py:285
+#, fuzzy
+msgid "Subscribe to list %(listname)s"
+msgstr "Anmälan till listan: %(listname)s"
+
+# Mailman/Cgi/confirm.py:283
+# Mailman/Cgi/confirm.py:288
+#: Mailman/Cgi/confirm.py:295
+msgid "You have canceled your subscription request."
+msgstr ""
+"Du har dragit tillbaka din ansökan och blev inte medlem av e-postlistan."
+
+# Mailman/Cgi/confirm.py:315
+# Mailman/Cgi/confirm.py:322
+#: Mailman/Cgi/confirm.py:329
+msgid "Awaiting moderator approval"
+msgstr "Väntar på godkännande av moderator"
+
+# Mailman/Cgi/confirm.py:318
+# Mailman/Cgi/confirm.py:325
+#: Mailman/Cgi/confirm.py:332
+msgid ""
+" You have successfully confirmed your subscription request to "
+"the\n"
+" mailing list %(listname)s, however final approval is required "
+"from\n"
+" the list moderator before you will be subscribed. Your request\n"
+" has been forwarded to the list moderator, and you will be "
+"notified\n"
+" of the moderator's decision."
+msgstr ""
+"Du har nu bekräftat din anmälan till e-postlistan %(listname)s, men "
+"godkännande\n"
+"av listmoderatorn behövs för att du ska bli uppförd på listan.\n"
+"Din ansökan har skickats till listmoderatorn och när ett beslut har tagits,\n"
+"kommer du att få ett besked."
+
+# Mailman/Cgi/confirm.py:325 Mailman/Cgi/confirm.py:378
+# Mailman/Cgi/confirm.py:464 Mailman/Cgi/confirm.py:675
+# Mailman/Cgi/confirm.py:332 Mailman/Cgi/confirm.py:387
+# Mailman/Cgi/confirm.py:475 Mailman/Cgi/confirm.py:698
+#: Mailman/Cgi/confirm.py:339 Mailman/Cgi/confirm.py:394
+#: Mailman/Cgi/confirm.py:482 Mailman/Cgi/confirm.py:705
+msgid ""
+"Invalid confirmation string. It is\n"
+" possible that you are attempting to confirm a request for an\n"
+" address that has already been unsubscribed."
+msgstr ""
+"Ogiltig URL för bekräftelse.\n"
+"Det är möjligt att du försöker att bekräfta avanmälan av en e-postadress som "
+"redan\n"
+"har tagits bort från listan."
+
+# Mailman/Commands/cmd_password.py:55 Mailman/Commands/cmd_password.py:68
+# Mailman/Commands/cmd_password.py:91 Mailman/Commands/cmd_password.py:117
+# Mailman/Commands/cmd_set.py:149 Mailman/Commands/cmd_set.py:219
+# Mailman/Cgi/confirm.py:336
+#: Mailman/Cgi/confirm.py:343
+#, fuzzy
+msgid "You are already a member of this mailing list!"
+msgstr "Du är redan medlem av denna e-postlista!"
+
+# Mailman/Cgi/confirm.py:334
+# Mailman/Cgi/confirm.py:343
+#: Mailman/Cgi/confirm.py:350
+msgid "Subscription request confirmed"
+msgstr "Bekräftar ansökan om medlemskap"
+
+# Mailman/Cgi/confirm.py:338
+# Mailman/Cgi/confirm.py:347
+#: Mailman/Cgi/confirm.py:354
+msgid ""
+" You have successfully confirmed your subscription request for\n"
+" \"%(addr)s\" to the %(listname)s mailing list. A separate\n"
+" confirmation message will be sent to your email address, along\n"
+" with your password, and other useful information and links.\n"
+"\n"
+" <p>You can now\n"
+" <a href=\"%(optionsurl)s\">proceed to your membership login\n"
+" page</a>."
+msgstr ""
+"Du är nu medlem av e-postlistan %(listname)s med e-postadressen \"%(addr)s\"."
+"<br>\n"
+"Ett e-postbrev med bekräftelse på detta har nu skickats till dig.\n"
+"Detta e-postbrev innehåller också en del nyttig information,\n"
+"bland annat ditt lösenord för e-postlistan.\n"
+"Det kommer du att behöva använda om du till exempel vill avanmäla dig från "
+"listan.\n"
+"<p>Du kan nu <a href=\"%(optionsurl)s\">fortsätta till inloggning till din\n"
+"personliga medlemssida</a>."
+
+# Mailman/Cgi/confirm.py:356
+# Mailman/Cgi/confirm.py:365
+#: Mailman/Cgi/confirm.py:372
+msgid "You have canceled your unsubscription request."
+msgstr "Du har återtagit din avanmälan från listan."
+
+# Mailman/Cgi/confirm.py:384
+# Mailman/Cgi/confirm.py:393
+#: Mailman/Cgi/confirm.py:400
+msgid "Unsubscription request confirmed"
+msgstr "Ansökan om avanmälan bekräftad"
+
+# Mailman/Cgi/confirm.py:388
+# Mailman/Cgi/confirm.py:397
+#: Mailman/Cgi/confirm.py:404
+msgid ""
+" You have successfully unsubscribed from the %(listname)s "
+"mailing\n"
+" list. You can now <a href=\"%(listinfourl)s\">visit the list's "
+"main\n"
+" information page</a>."
+msgstr ""
+"Du är nu avanmäld från e-postlistan %(listname)s.\n"
+"Du kan nu <a href=\"%(listinfourl)s\">gå till listans webbsida</a> om du "
+"vill."
+
+# Mailman/Cgi/confirm.py:399
+# Mailman/Cgi/confirm.py:408
+#: Mailman/Cgi/confirm.py:415
+msgid "Confirm unsubscription request"
+msgstr "Bekräfta att du önskar avanmäla dig"
+
+# Mailman/Cgi/confirm.py:414 Mailman/Cgi/confirm.py:501
+# Mailman/Cgi/confirm.py:423 Mailman/Cgi/confirm.py:512
+#: Mailman/Cgi/confirm.py:430 Mailman/Cgi/confirm.py:519
+msgid "<em>Not available</em>"
+msgstr "</em>Inte tillgänglig</em>"
+
+# Mailman/Cgi/confirm.py:415
+# Mailman/Cgi/confirm.py:426
+#: Mailman/Cgi/confirm.py:433
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" unsubscription request from the mailing list <em>%(listname)s</em>. "
+"You\n"
+" are currently subscribed with\n"
+"\n"
+" <ul><li><b>Real name:</b> %(fullname)s\n"
+" <li><b>Email address:</b> %(addr)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Unsubscribe</em> button below to complete the confirmation\n"
+" process.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this unsubscription\n"
+" request."
+msgstr ""
+"E-postlistsystemet behöver din bekräftelse på att du vill avanmäla dig från\n"
+"e-postlistan <em>%(listname)s</em>.\n"
+"Följande information om dig är registrerad:\n"
+"\n"
+"<ul>\n"
+" <li><b>Namn:</b>: %(fullname)s</li>\n"
+" <li><b>E-postadress:</b> %(addr)s</li>\n"
+"</ul>\n"
+"\n"
+"Klicka på knappen <em>Avanmäl mig</em> för att bekräfta att du vill avanmäla "
+"dig.\n"
+"\n"
+"<p>Eller klicka <em>Avbryt</em> för att fortsätta att vara medlem av listan."
+
+# Mailman/Cgi/confirm.py:431 Mailman/Cgi/options.py:631
+# Mailman/Cgi/options.py:776 Mailman/Cgi/options.py:786
+# Mailman/Cgi/confirm.py:442 Mailman/Cgi/options.py:659
+# Mailman/Cgi/options.py:800 Mailman/Cgi/options.py:810
+#: Mailman/Cgi/confirm.py:449 Mailman/Cgi/options.py:660
+#: Mailman/Cgi/options.py:801 Mailman/Cgi/options.py:811
+msgid "Unsubscribe"
+msgstr "Avanmäl mig"
+
+# Mailman/Cgi/confirm.py:273 Mailman/Cgi/confirm.py:432
+# Mailman/Cgi/confirm.py:528
+# Mailman/Cgi/confirm.py:443 Mailman/Cgi/confirm.py:541
+#: Mailman/Cgi/confirm.py:450 Mailman/Cgi/confirm.py:548
+msgid "Cancel and discard"
+msgstr "Avbryt"
+
+# Mailman/Cgi/confirm.py:442
+# Mailman/Cgi/confirm.py:453
+#: Mailman/Cgi/confirm.py:460
+msgid "You have canceled your change of address request."
+msgstr ""
+"Du har avbrutit din ansökan om att ändra adress. Ingen ändring har gjorts."
+
+# Mailman/Cgi/confirm.py:470
+# Mailman/Cgi/confirm.py:481
+#: Mailman/Cgi/confirm.py:488
+msgid "Change of address request confirmed"
+msgstr "Ändring av adress bekräftad"
+
+# Mailman/Cgi/confirm.py:474
+# Mailman/Cgi/confirm.py:485
+#: Mailman/Cgi/confirm.py:492
+msgid ""
+" You have successfully changed your address on the %(listname)s\n"
+" mailing list from <b>%(oldaddr)s</b> to <b>%(newaddr)s</b>. "
+"You\n"
+" can now <a href=\"%(optionsurl)s\">proceed to your membership\n"
+" login page</a>."
+msgstr ""
+"Du har ändrat din adress på e-postlistan %(listname)s,\n"
+"från <b>%(oldaddr)s</b> till <b>%(newaddr)s</b>.\n"
+"Du kan nu <a href=\"%(optionsurl)s\">gå vidare till din personliga "
+"medlemssida</a>."
+
+# Mailman/Cgi/confirm.py:486
+# Mailman/Cgi/confirm.py:497
+#: Mailman/Cgi/confirm.py:504
+msgid "Confirm change of address request"
+msgstr "Bekräfta ändring av adress"
+
+# Mailman/Cgi/confirm.py:503
+# Mailman/Cgi/confirm.py:516
+#: Mailman/Cgi/confirm.py:523
+msgid "globally"
+msgstr "överallt"
+
+# Mailman/Cgi/confirm.py:506
+# Mailman/Cgi/confirm.py:519
+#: Mailman/Cgi/confirm.py:526
+msgid ""
+"Your confirmation is required in order to complete the\n"
+" change of address request for the mailing list <em>%(listname)s</em>. "
+"You\n"
+" are currently subscribed with\n"
+"\n"
+" <ul><li><b>Real name:</b> %(fullname)s\n"
+" <li><b>Old email address:</b> %(oldaddr)s\n"
+" </ul>\n"
+"\n"
+" and you have requested to %(globallys)s change your email address to\n"
+"\n"
+" <ul><li><b>New email address:</b> %(newaddr)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Change address</em> button below to complete the "
+"confirmation\n"
+" process.\n"
+"\n"
+" <p>Or hit <em>Cancel and discard</em> to cancel this change of address\n"
+" request."
+msgstr ""
+"Vi behöver din bekräftelse på att du verkligen vill ändra din e-postadress "
+"på\n"
+"e-postlistan <em>%(listname)s</em>.\n"
+"Du är för närvarande anmäld med följande information:\n"
+"\n"
+"<ul>\n"
+" <li><b>Namn:</b> %(fullname)s</li>\n"
+" <li><b>Gammal e-postadress:</b> %(oldaddr)s\n"
+"</ul>\n"
+"\n"
+"Du har bett om att ändra din adress %(globallys)s till\n"
+"\n"
+"<ul><li><b>Ny e-postadress:</b> %(newaddr)s</li></ul>\n"
+"\n"
+"Klicka <em>Byt e-postadress</em> för att bekräfta att du verkligen vill "
+"ändra\n"
+"e-postadressen.\n"
+"\n"
+"<p>Eller klicka <em>Avbryt</em> för att behålla den anmälda e-postadressen."
+
+# Mailman/Cgi/confirm.py:527
+# Mailman/Cgi/confirm.py:540
+#: Mailman/Cgi/confirm.py:547
+msgid "Change address"
+msgstr "Byt e-postadress"
+
+# Mailman/Cgi/confirm.py:537 Mailman/Cgi/confirm.py:640
+# Mailman/Cgi/confirm.py:550 Mailman/Cgi/confirm.py:663
+#: Mailman/Cgi/confirm.py:557 Mailman/Cgi/confirm.py:670
+msgid "Continue awaiting approval"
+msgstr "Fortsätt att vänta på godkännande av moderator"
+
+# Mailman/Cgi/confirm.py:544
+# Mailman/Cgi/confirm.py:557
+#: Mailman/Cgi/confirm.py:564
+msgid ""
+"Okay, the list moderator will still have the\n"
+" opportunity to approve or reject this message."
+msgstr ""
+"Ok, listmoderatorn kommer fortfarande att kunna godta eller avvisa detta "
+"meddelande."
+
+# Mailman/Cgi/confirm.py:570
+# Mailman/Cgi/confirm.py:583
+#: Mailman/Cgi/confirm.py:590
+msgid "Sender discarded message via web."
+msgstr "Avsändaren drog tillbaka sitt meddelande via webbsidan."
+
+# Mailman/Cgi/confirm.py:572
+# Mailman/Cgi/confirm.py:585
+#: Mailman/Cgi/confirm.py:592
+msgid ""
+"The held message with the Subject:\n"
+" header <em>%(subject)s</em> could not be found. The most "
+"likely\n"
+" reason for this is that the list moderator has already approved "
+"or\n"
+" rejected the message. You were not able to cancel it in\n"
+" time."
+msgstr ""
+"Meddelandet med med titeln <em>%(subject)s</em> finns inte.\n"
+"Anledningen till detta är troligtvis att listmoderatorn redan har godtagit\n"
+"eller avvisat detta meddelande. Du är i alla fall för sent ute..."
+
+# Mailman/Cgi/confirm.py:580
+# Mailman/Cgi/confirm.py:593
+#: Mailman/Cgi/confirm.py:600
+msgid "Posted message canceled"
+msgstr "Meddelandet drogs tillbaka"
+
+# Mailman/Cgi/confirm.py:583
+# Mailman/Cgi/confirm.py:596
+#: Mailman/Cgi/confirm.py:603
+msgid ""
+" You have successfully canceled the posting of your message with\n"
+" the Subject: header <em>%(subject)s</em> to the mailing list\n"
+" %(listname)s."
+msgstr ""
+"Du har dragit tillbaka ditt meddelande till e-postlistan %(listname)s, med "
+"titeln <em>%(subject)s</em>."
+
+# Mailman/Cgi/confirm.py:594
+# Mailman/Cgi/confirm.py:607
+#: Mailman/Cgi/confirm.py:614
+msgid "Cancel held message posting"
+msgstr "Dra tillbaka meddelande skickat till listan"
+
+# Mailman/Cgi/confirm.py:632
+#: Mailman/Cgi/confirm.py:639
+msgid ""
+"The held message you were referred to has\n"
+" already been handled by the list administrator."
+msgstr ""
+"Det tillbakahållna meddelande som du refererar till\n"
+" har redan handlagts av listadministratören."
+
+# Mailman/Cgi/confirm.py:623
+# Mailman/Cgi/confirm.py:646
+#: Mailman/Cgi/confirm.py:653
+msgid ""
+"Your confirmation is required in order to cancel the\n"
+" posting of your message to the mailing list <em>%(listname)s</em>:\n"
+"\n"
+" <ul><li><b>Sender:</b> %(sender)s\n"
+" <li><b>Subject:</b> %(subject)s\n"
+" <li><b>Reason:</b> %(reason)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Cancel posting</em> button to discard the posting.\n"
+"\n"
+" <p>Or hit the <em>Continue awaiting approval</em> button to continue to\n"
+" allow the list moderator to approve or reject the message."
+msgstr ""
+"Din bekräftelse krävs för att meddelandet som du skickade till e-postlistan\n"
+"<em>%(listname)s</em> ska dras tillbaka:\n"
+"\n"
+"<ul>\n"
+" <li><b>Avsändare:</b> %(sender)s</li>\n"
+" <li><b>Titel:</b> %(subject)s</li>\n"
+" <li><b>Orsak:</b> %(reason)s</li>\n"
+"</ul>\n"
+"\n"
+"Klicka <em>Dra tillbaka meddelandet</em> för att dra tillbaka ditt "
+"meddelande,\n"
+"och därmed förhindra att det skickas till listan.\n"
+"\n"
+"<p>Eller klicka <em>Fortsätt att vänta</em>\n"
+"för att låta listmoderatorn avgöra om meddelandet ska skickas till listan "
+"eller inte."
+
+# Mailman/Cgi/confirm.py:639
+# Mailman/Cgi/confirm.py:662
+#: Mailman/Cgi/confirm.py:669
+msgid "Cancel posting"
+msgstr "Dra tillbaka meddelandet"
+
+# Mailman/Cgi/confirm.py:651
+# Mailman/Cgi/confirm.py:674
+#: Mailman/Cgi/confirm.py:681
+msgid ""
+"You have canceled the re-enabling of your membership. If\n"
+" we continue to receive bounces from your address, it could be deleted "
+"from\n"
+" this mailing list."
+msgstr ""
+"Du har avbrutit processen med att aktivera ditt medlemskap igen.\n"
+"Observera att om det fortsätter att komma returmeddelanden från din e-"
+"postadress,\n"
+"kan du efter en tid automatiskt bli avanmäld från listan."
+
+# Mailman/Cgi/confirm.py:681
+# Mailman/Cgi/confirm.py:704
+#: Mailman/Cgi/confirm.py:711
+msgid "Membership re-enabled."
+msgstr "Du kommer nu att ta emot e-postbrev från listan igen."
+
+# Mailman/Cgi/confirm.py:685
+# Mailman/Cgi/confirm.py:708
+#: Mailman/Cgi/confirm.py:715
+msgid ""
+" You have successfully re-enabled your membership in the\n"
+" %(listname)s mailing list. You can now <a\n"
+" href=\"%(optionsurl)s\">visit your member options page</a>.\n"
+" "
+msgstr ""
+"Du kommer nu att ta emot e-postbrev från e-postlistan %(listname)s igen.\n"
+"Du kan nu <a href=\"%(optionsurl)s\">gå till din personliga medlemssida</a> "
+"om du vill."
+
+# Mailman/Cgi/confirm.py:697
+# Mailman/Cgi/confirm.py:720
+#: Mailman/Cgi/confirm.py:727
+msgid "Re-enable mailing list membership"
+msgstr "Ta emot e-postbrev från listan igen"
+
+# Mailman/Cgi/confirm.py:714
+# Mailman/Cgi/confirm.py:737
+#: Mailman/Cgi/confirm.py:744
+msgid ""
+"We're sorry, but you have already been unsubscribed\n"
+" from this mailing list. To re-subscribe, please visit the\n"
+" <a href=\"%(listinfourl)s\">list information page</a>."
+msgstr ""
+"Tyvärr är du redan avanmäld från denna e-postlista.\n"
+"För att anmäla dig till listan igen, gå till <a href=\"%(listinfourl)s"
+"\">listans webbsida</a>."
+
+# Mailman/Cgi/confirm.py:723
+# Mailman/Cgi/confirm.py:751
+#: Mailman/Cgi/confirm.py:758
+msgid "<em>not available</em>"
+msgstr "</em>inte tillgänglig</em>"
+
+# Mailman/Cgi/confirm.py:725
+# Mailman/Cgi/confirm.py:755
+#: Mailman/Cgi/confirm.py:762
+msgid ""
+"Your membership in the %(realname)s mailing list is\n"
+" currently disabled due to excessive bounces. Your confirmation is\n"
+" required in order to re-enable delivery to your address. We have the\n"
+" following information on file:\n"
+"\n"
+" <ul><li><b>Member address:</b> %(member)s\n"
+" <li><b>Member name:</b> %(username)s\n"
+" <li><b>Last bounce received on:</b> %(date)s\n"
+" <li><b>Approximate number of days before you are permanently "
+"removed\n"
+" from this list:</b> %(daysleft)s\n"
+" </ul>\n"
+"\n"
+" Hit the <em>Re-enable membership</em> button to resume receiving "
+"postings\n"
+" from the mailing list. Or hit the <em>Cancel</em> button to defer\n"
+" re-enabling your membership.\n"
+" "
+msgstr ""
+"Ditt medlemskap på e-postlistan %(realname)s är för närvarande avaktiverat "
+"på grund av för många returmeddelanden från din e-postadress.\n"
+"Vi måste ha din bekräftelse för att du åter ska kunna ta emot meddelanden "
+"från listan.\n"
+"Vi har följande information om dig:\n"
+"\n"
+"<ul>\n"
+" <li><b>E-postadress:</b> %(member)s\n"
+" <li><b>Namn:</b> %(username)s\n"
+" <li><b>Senaste returmeddelande togs emot:</b> %(date)s\n"
+" <li><b>Antal dagar tills du automatiskt blir avanmäld från listan: ca %"
+"(daysleft)s\n"
+"</ul>\n"
+"Klicka på knappen <em>Ta emot e-postbrev igen</em> för att aktivera ditt "
+"medlemskap och fortsätta att ta emot e-postbrev från listan.\n"
+"Eller klicka på knappen <em>Avbryt</em> om du vill göra det en annan gång.\n"
+" "
+
+# Mailman/Cgi/confirm.py:745
+# Mailman/Cgi/confirm.py:775
+#: Mailman/Cgi/confirm.py:782
+msgid "Re-enable membership"
+msgstr "Ta emot e-postbrev igen"
+
+# Mailman/Cgi/confirm.py:746
+# Mailman/Cgi/confirm.py:776
+#: Mailman/Cgi/confirm.py:783
+msgid "Cancel"
+msgstr "Avbryt"
+
+# Mailman/Cgi/create.py:48 Mailman/Cgi/rmlist.py:46
+# Mailman/Cgi/create.py:48 Mailman/Cgi/rmlist.py:46
+#: Mailman/Cgi/create.py:48 Mailman/Cgi/rmlist.py:48
+msgid "Bad URL specification"
+msgstr "Ogiltig URL-konstruktion"
+
+# Mailman/Cgi/create.py:63 Mailman/Cgi/rmlist.py:153
+# Mailman/Cgi/create.py:63 Mailman/Cgi/rmlist.py:153
+#: Mailman/Cgi/create.py:63 Mailman/Cgi/rmlist.py:176
+msgid "Return to the "
+msgstr "Tillbaka till "
+
+# Mailman/Cgi/create.py:65 Mailman/Cgi/rmlist.py:155
+# Mailman/Cgi/create.py:65 Mailman/Cgi/rmlist.py:155
+#: Mailman/Cgi/create.py:65 Mailman/Cgi/rmlist.py:178
+msgid "general list overview"
+msgstr "allmän informationssida för e-postlistan"
+
+# Mailman/Cgi/create.py:66 Mailman/Cgi/rmlist.py:156
+# Mailman/Cgi/create.py:66 Mailman/Cgi/rmlist.py:156
+#: Mailman/Cgi/create.py:66 Mailman/Cgi/rmlist.py:179
+msgid "<br>Return to the "
+msgstr "<br>Tillbaka till "
+
+# Mailman/Cgi/create.py:68 Mailman/Cgi/rmlist.py:158
+# Mailman/Cgi/create.py:68 Mailman/Cgi/rmlist.py:158
+#: Mailman/Cgi/create.py:68 Mailman/Cgi/rmlist.py:181
+msgid "administrative list overview"
+msgstr "administrativ sida för e-postlistan"
+
+# Mailman/Cgi/create.py:101
+# Mailman/Cgi/create.py:101
+#: Mailman/Cgi/create.py:101
+msgid "List name must not include \"@\": %(listname)s"
+msgstr "Listnamnet får inte innehålla \"@\": %(listname)s"
+
+# Mailman/Cgi/create.py:107 Mailman/Cgi/create.py:185 bin/newlist:130
+# bin/newlist:162
+# Mailman/Cgi/create.py:107 Mailman/Cgi/create.py:185 bin/newlist:134
+# bin/newlist:168
+#: Mailman/Cgi/create.py:107 Mailman/Cgi/create.py:185 bin/newlist:134
+#: bin/newlist:168
+msgid "List already exists: %(listname)s"
+msgstr "Listan finns redan: %(listname)s !"
+
+# Mailman/Cgi/create.py:111
+# Mailman/Cgi/create.py:111
+#: Mailman/Cgi/create.py:111
+msgid "You forgot to enter the list name"
+msgstr "Du glömde att fylla i e-postlistans namn"
+
+# Mailman/Cgi/create.py:115
+# Mailman/Cgi/create.py:115
+#: Mailman/Cgi/create.py:115
+msgid "You forgot to specify the list owner"
+msgstr "Du glömde att fylla i ägarens/administratörens e-postadress"
+
+# Mailman/Cgi/create.py:122
+# Mailman/Cgi/create.py:122
+#: Mailman/Cgi/create.py:122
+msgid ""
+"Leave the initial password (and confirmation) fields\n"
+" blank if you want Mailman to autogenerate the list\n"
+" passwords."
+msgstr ""
+"Låt fälten för lösenord vara tomma om du vill att Mailman ska generera ett "
+"lösenord för listan."
+
+# Mailman/Cgi/create.py:130
+# Mailman/Cgi/create.py:130
+#: Mailman/Cgi/create.py:130
+msgid "Initial list passwords do not match"
+msgstr "Lösenorden är inte lika"
+
+# Mailman/Cgi/create.py:139
+# Mailman/Cgi/create.py:139
+#: Mailman/Cgi/create.py:139
+msgid "The list password cannot be empty<!-- ignore -->"
+msgstr "Listan måste ha ett lösenord (listans lösenord kan inte vara blankt)"
+
+# Mailman/Cgi/create.py:151
+# Mailman/Cgi/create.py:151
+#: Mailman/Cgi/create.py:151
+msgid "You are not authorized to create new mailing lists"
+msgstr "Du har inte tillstånd att upprätta nya e-postlistor"
+
+# Mailman/Cgi/create.py:181
+# Mailman/Cgi/create.py:181 bin/newlist:166
+#: Mailman/Cgi/create.py:181 bin/newlist:166
+msgid "Bad owner email address: %(s)s"
+msgstr "Ogiltig e-postadress: %(s)s"
+
+# bin/sync_members:168
+# Mailman/Cgi/create.py:189 bin/newlist:164
+#: Mailman/Cgi/create.py:189 bin/newlist:164
+msgid "Illegal list name: %(s)s"
+msgstr "Ogiltigt listnamn: %(s)s"
+
+# Mailman/Cgi/create.py:190
+# Mailman/Cgi/create.py:194
+#: Mailman/Cgi/create.py:194
+msgid ""
+"Some unknown error occurred while creating the list.\n"
+" Please contact the site administrator for assistance."
+msgstr ""
+"Ett okänt fel uppstod under upprättandet av e-postlistan.\n"
+"Kontakta systemadministratören för att få hjälp."
+
+# Mailman/Cgi/create.py:229 bin/newlist:204
+# Mailman/Cgi/create.py:233 bin/newlist:210
+#: Mailman/Cgi/create.py:233 bin/newlist:210
+msgid "Your new mailing list: %(listname)s"
+msgstr "Din nya e-postlista: %(listname)s"
+
+# Mailman/Cgi/create.py:238
+# Mailman/Cgi/create.py:242
+#: Mailman/Cgi/create.py:242
+msgid "Mailing list creation results"
+msgstr "Resultat av upprättandet"
+
+# Mailman/Cgi/create.py:244
+# Mailman/Cgi/create.py:248
+#: Mailman/Cgi/create.py:248
+msgid ""
+"You have successfully created the mailing list\n"
+" <b>%(listname)s</b> and notification has been sent to the list owner\n"
+" <b>%(owner)s</b>. You can now:"
+msgstr ""
+"Du har nu upprättat e-postlistan <b>%(listname)s</b>,\n"
+"och ett e-postbrev med meddelande om detta har skickats till listans ägare "
+"<b>%(owner)s</b>.\n"
+"Du kan nu:"
+
+# Mailman/Cgi/create.py:248
+# Mailman/Cgi/create.py:252
+#: Mailman/Cgi/create.py:252
+msgid "Visit the list's info page"
+msgstr "Gå till listans webbsida"
+
+# Mailman/Cgi/create.py:249
+# Mailman/Cgi/create.py:253
+#: Mailman/Cgi/create.py:253
+msgid "Visit the list's admin page"
+msgstr "Gå till listans administrationssida"
+
+# Mailman/Cgi/create.py:250
+# Mailman/Cgi/create.py:254
+#: Mailman/Cgi/create.py:254
+msgid "Create another list"
+msgstr "Upprätta ytterligare en lista"
+
+# Mailman/Cgi/create.py:268
+# Mailman/Cgi/create.py:272
+#: Mailman/Cgi/create.py:272
+msgid "Create a %(hostname)s Mailing List"
+msgstr "Upprätta en e-postlista på %(hostname)s"
+
+# Mailman/Cgi/create.py:277 Mailman/Cgi/rmlist.py:176
+# Mailman/Gui/Bounce.py:175 Mailman/htmlformat.py:339
+# Mailman/Cgi/create.py:281 Mailman/Cgi/rmlist.py:176
+# Mailman/Gui/Bounce.py:175 Mailman/htmlformat.py:339
+#: Mailman/Cgi/create.py:281 Mailman/Cgi/rmlist.py:199
+#: Mailman/Gui/Bounce.py:175 Mailman/htmlformat.py:339
+msgid "Error: "
+msgstr "Fel: "
+
+# Mailman/Cgi/create.py:279
+# Mailman/Cgi/create.py:283
+#: Mailman/Cgi/create.py:283
+msgid ""
+"You can create a new mailing list by entering the\n"
+" relevant information into the form below. The name of the mailing list\n"
+" will be used as the primary address for posting messages to the list, "
+"so\n"
+" it should be lowercased. You will not be able to change this once the\n"
+" list is created.\n"
+"\n"
+" <p>You also need to enter the email address of the initial list owner.\n"
+" Once the list is created, the list owner will be given notification, "
+"along\n"
+" with the initial list password. The list owner will then be able to\n"
+" modify the password and add or remove additional list owners.\n"
+"\n"
+" <p>If you want Mailman to automatically generate the initial list admin\n"
+" password, click on `Yes' in the autogenerate field below, and leave the\n"
+" initial list password fields empty.\n"
+"\n"
+" <p>You must have the proper authorization to create new mailing lists.\n"
+" Each site should have a <em>list creator's</em> password, which you can\n"
+" enter in the field at the bottom. Note that the site administrator's\n"
+" password can also be used for authentication.\n"
+" "
+msgstr ""
+"Du kan upprätta en ny e-postlista genom att fylla i formuläret nedan.\n"
+"E-postlistans namn kommer att användas som adress, så namnet bör skrivas med "
+"små bokstäver.\n"
+"Du kan inte ändra namnet när e-postlistan är upprättad.\n"
+"\n"
+"<p>Du måste också skriva in e-postadressen till listans ägare.\n"
+"När listan är upprättad, kommer ägaren att få ett e-postbrev om detta, som "
+"bland annat innehåller listans lösenord.\n"
+"Ägare av listan kan därmed gå in på administrationssidan och ändra "
+"nödvändiga inställningar där, samt byta lösenord om så önskas.\n"
+"På administrationssidan kan dessutom flera e-postadresser läggas in som "
+"ägare.\n"
+"\n"
+"<p>Om du vill att Mailman ska generera listans lösenord automatiskt, välj "
+"'ja' i det tillhörande fältet i formuläret nedan,\n"
+"och låt lösenordsfälten vara tomma.\n"
+"\n"
+"<p>Du måste ha ett lösenord för att kunna upprätta en e-postlista.\n"
+"Varje installation av Mailman bör ha ett lösenord för upprättande av "
+"listor.\n"
+"Observera att systemadministratörens lösenord också kan användas till detta."
+
+# Mailman/Cgi/create.py:305
+# Mailman/Cgi/create.py:309
+#: Mailman/Cgi/create.py:309
+msgid "List Identity"
+msgstr "Listidentitet"
+
+# Mailman/Cgi/create.py:308
+# Mailman/Cgi/create.py:312
+#: Mailman/Cgi/create.py:312
+msgid "Name of list:"
+msgstr "Listans namn:"
+
+# Mailman/Cgi/create.py:313
+# Mailman/Cgi/create.py:317
+#: Mailman/Cgi/create.py:317
+msgid "Initial list owner address:"
+msgstr "Ägarens e-postadress:"
+
+# Mailman/Cgi/create.py:322
+# Mailman/Cgi/create.py:326
+#: Mailman/Cgi/create.py:326
+msgid "Auto-generate initial list password?"
+msgstr "Generera listans lösenord automatiskt?"
+
+# Mailman/Cgi/create.py:329
+# Mailman/Cgi/create.py:333
+#: Mailman/Cgi/create.py:333
+msgid "Initial list password:"
+msgstr "Listlösenord:"
+
+# Mailman/Cgi/create.py:334
+# Mailman/Cgi/create.py:338
+#: Mailman/Cgi/create.py:338
+msgid "Confirm initial password:"
+msgstr "Listlösenord en gång till:"
+
+# Mailman/Cgi/create.py:344
+# Mailman/Cgi/create.py:348
+#: Mailman/Cgi/create.py:348
+msgid "List Characteristics"
+msgstr "Några egenskaper för listan"
+
+# Mailman/Cgi/create.py:348
+# Mailman/Cgi/create.py:352
+#: Mailman/Cgi/create.py:352
+msgid ""
+"Should new members be quarantined before they\n"
+" are allowed to post unmoderated to this list? Answer <em>Yes</em> to "
+"hold\n"
+" new member postings for moderator approval by default."
+msgstr ""
+"Ska nya medlemmar sättas i karantän innan de får sända e-postbrev direkt "
+"till listan?\n"
+"Svarar du <em>Ja</em> kommer e-postbrev från nya medlemmar att hållas "
+"tillbaka för godkännande av listmoderator."
+
+# Mailman/Cgi/create.py:371
+# Mailman/Cgi/create.py:375
+#: Mailman/Cgi/create.py:383
+msgid ""
+"Initial list of supported languages. <p>Note that if you do not\n"
+" select at least one initial language, the list will use the server\n"
+" default language of %(deflang)s"
+msgstr ""
+"Språk tillgängliga för denna lista.\n"
+"<p>Väljer du inte minst ett språk, kommer listan att använda serverns\n"
+"standardspråk, som är %(deflang)s"
+
+# Mailman/Cgi/create.py:382
+# Mailman/Cgi/create.py:386
+#: Mailman/Cgi/create.py:394
+msgid "Send \"list created\" email to list owner?"
+msgstr "Skicka e-postbrev om upprättandet till listans ägare?"
+
+# Mailman/Cgi/create.py:391
+# Mailman/Cgi/create.py:395
+#: Mailman/Cgi/create.py:403
+msgid "List creator's (authentication) password:"
+msgstr "Lösenord för att upprätta ny e-postlista:"
+
+# Mailman/Cgi/create.py:396
+# Mailman/Cgi/create.py:400
+#: Mailman/Cgi/create.py:408
+msgid "Create List"
+msgstr "Upprätta lista"
+
+# Mailman/Cgi/create.py:397
+# Mailman/Cgi/create.py:401
+#: Mailman/Cgi/create.py:409
+msgid "Clear Form"
+msgstr "Rensa formulär"
+
+# Mailman/Cgi/edithtml.py:43
+# Mailman/Cgi/edithtml.py:43
+#: Mailman/Cgi/edithtml.py:43
+msgid "General list information page"
+msgstr "Listans webbsida"
+
+# Mailman/Cgi/edithtml.py:44
+# Mailman/Cgi/edithtml.py:44
+#: Mailman/Cgi/edithtml.py:44
+msgid "Subscribe results page"
+msgstr "Resultat av anmälan"
+
+# Mailman/Cgi/edithtml.py:45
+# Mailman/Cgi/edithtml.py:45
+#: Mailman/Cgi/edithtml.py:45
+msgid "User specific options page"
+msgstr "Brukarinställningar"
+
+# Mailman/Cgi/edithtml.py:57
+# Mailman/Cgi/edithtml.py:57
+#: Mailman/Cgi/edithtml.py:57
+msgid "List name is required."
+msgstr "Listans namn krävs"
+
+# Mailman/Cgi/edithtml.py:97
+# Mailman/Cgi/edithtml.py:97
+#: Mailman/Cgi/edithtml.py:97
+msgid "%(realname)s -- Edit html for %(template_info)s"
+msgstr "%(realname)s -- Redigera html för %(template_info)s"
+
+# Mailman/Cgi/edithtml.py:103
+# Mailman/Cgi/edithtml.py:103
+#: Mailman/Cgi/edithtml.py:103
+msgid "Edit HTML : Error"
+msgstr "Redigera HTML : Fel"
+
+# Mailman/Cgi/edithtml.py:104
+# Mailman/Cgi/edithtml.py:104
+#: Mailman/Cgi/edithtml.py:104
+msgid "%(safetemplatename)s: Invalid template"
+msgstr "%(safetemplatename)s: Ogiltig mall"
+
+# Mailman/Cgi/edithtml.py:109 Mailman/Cgi/edithtml.py:110
+# Mailman/Cgi/edithtml.py:109 Mailman/Cgi/edithtml.py:110
+#: Mailman/Cgi/edithtml.py:109 Mailman/Cgi/edithtml.py:110
+msgid "%(realname)s -- HTML Page Editing"
+msgstr "%(realname)s -- Redigera HTML-kod för webbsidor"
+
+# Mailman/Cgi/edithtml.py:111
+# Mailman/Cgi/edithtml.py:111
+#: Mailman/Cgi/edithtml.py:111
+msgid "Select page to edit:"
+msgstr "Välj webbsidan som du vill redigera:"
+
+# Mailman/Cgi/edithtml.py:137
+# Mailman/Cgi/edithtml.py:137
+#: Mailman/Cgi/edithtml.py:137
+msgid "View or edit the list configuration information."
+msgstr "Titta eller redigera avseende listans konfigurationsinformation."
+
+# Mailman/Cgi/edithtml.py:146
+# Mailman/Cgi/edithtml.py:145
+#: Mailman/Cgi/edithtml.py:145
+msgid "When you are done making changes..."
+msgstr "När du är färdig med att göra ändringar..."
+
+# Mailman/Cgi/edithtml.py:147
+# Mailman/Cgi/edithtml.py:146
+#: Mailman/Cgi/edithtml.py:146
+msgid "Submit Changes"
+msgstr "Spara ändringar"
+
+# Mailman/Cgi/edithtml.py:154
+# Mailman/Cgi/edithtml.py:153
+#: Mailman/Cgi/edithtml.py:153
+msgid "Can't have empty html page."
+msgstr "HTML-sidan kan inte vara tom."
+
+# Mailman/Cgi/edithtml.py:155
+# Mailman/Cgi/edithtml.py:154
+#: Mailman/Cgi/edithtml.py:154
+msgid "HTML Unchanged."
+msgstr "Inga ändringar i HTML-koden."
+
+# Mailman/Cgi/edithtml.py:170
+# Mailman/Cgi/edithtml.py:169
+#: Mailman/Cgi/edithtml.py:169
+msgid "HTML successfully updated."
+msgstr "HTML-koden är uppdaterad."
+
+# Mailman/Cgi/listinfo.py:71
+# Mailman/Cgi/listinfo.py:71
+#: Mailman/Cgi/listinfo.py:71
+msgid "%(hostname)s Mailing Lists"
+msgstr "E-postlistor på %(hostname)s"
+
+# Mailman/Cgi/listinfo.py:103
+# Mailman/Cgi/listinfo.py:103
+#: Mailman/Cgi/listinfo.py:103
+msgid ""
+"<p>There currently are no publicly-advertised\n"
+" %(mailmanlink)s mailing lists on %(hostname)s."
+msgstr ""
+"<p>För närvarande finns ingen av %(mailmanlink)s e-postlistor tillgänglig "
+"offentligt på %(hostname)s."
+
+# Mailman/Cgi/listinfo.py:107
+# Mailman/Cgi/listinfo.py:107
+#: Mailman/Cgi/listinfo.py:107
+msgid ""
+"<p>Below is a listing of all the public mailing lists on\n"
+" %(hostname)s. Click on a list name to get more information "
+"about\n"
+" the list, or to subscribe, unsubscribe, and change the "
+"preferences\n"
+" on your subscription."
+msgstr ""
+"<p>Nedan finns en lista över alla offentligt tillgängliga e-postlistor på %"
+"(hostname)s.\n"
+"Klicka på en lista för att få mer information om listan, för att anmäla dig, "
+"avanmäla dig eller\n"
+"för att ändra dina personliga inställningar för listan."
+
+# Mailman/Cgi/listinfo.py:113
+# Mailman/Cgi/listinfo.py:113
+#: Mailman/Cgi/listinfo.py:113
+msgid "right"
+msgstr "rätt"
+
+# Mailman/Cgi/listinfo.py:116
+# Mailman/Cgi/listinfo.py:116
+#: Mailman/Cgi/listinfo.py:116
+#, fuzzy
+msgid ""
+" To visit the general information page for an unadvertised list,\n"
+" open a URL similar to this one, but with a '/' and the %(adj)s\n"
+" list name appended.\n"
+" <p>List administrators, you can visit "
+msgstr ""
+" För att besöka den allmänna informationssidan för en e-postlista som inte "
+"är tillgänglig offentligt,\n"
+"lägg till '/' och därefter listans %(adj)s namn, på URL:en till webbsidan.\n"
+"<p>Listadministratörer kan använda "
+
+# Mailman/Cgi/listinfo.py:121
+# Mailman/Cgi/listinfo.py:121
+#: Mailman/Cgi/listinfo.py:121
+msgid "the list admin overview page"
+msgstr "administrationssidan"
+
+# Mailman/Cgi/listinfo.py:122
+# Mailman/Cgi/listinfo.py:122
+#: Mailman/Cgi/listinfo.py:122
+msgid ""
+" to find the management interface for your list.\n"
+" <p>Send questions or comments to "
+msgstr ""
+" för att administrera en lista.\n"
+"<p>Skicka frågor och kommentarer till "
+
+# Mailman/Cgi/listinfo.py:183
+# Mailman/Cgi/listinfo.py:183
+#: Mailman/Cgi/listinfo.py:187
+msgid "Edit Options"
+msgstr "Ändra inställningar"
+
+# Mailman/Cgi/listinfo.py:190 Mailman/Cgi/options.py:742
+# Mailman/Cgi/roster.py:111
+# Mailman/Cgi/listinfo.py:190 Mailman/Cgi/options.py:766
+# Mailman/Cgi/roster.py:111
+#: Mailman/Cgi/listinfo.py:194 Mailman/Cgi/options.py:767
+#: Mailman/Cgi/roster.py:111
+msgid "View this page in"
+msgstr "Se denna sida på"
+
+# Mailman/Cgi/options.py:50 Mailman/Cgi/options.py:67
+# Mailman/Cgi/options.py:50 Mailman/Cgi/options.py:67
+#: Mailman/Cgi/options.py:51 Mailman/Cgi/options.py:68
+msgid "CGI script error"
+msgstr "CGI skriptfel"
+
+# Mailman/Cgi/options.py:53
+# Mailman/Cgi/options.py:53
+#: Mailman/Cgi/options.py:54
+msgid "Invalid options to CGI script."
+msgstr "Ogiltiga parametrar till CGI-skriptet."
+
+# Mailman/Cgi/options.py:95
+# Mailman/Cgi/options.py:95
+#: Mailman/Cgi/options.py:96
+msgid "No address given"
+msgstr "Ingen e-postadress angiven"
+
+# Mailman/Cgi/options.py:107 Mailman/Cgi/options.py:154
+# Mailman/Cgi/options.py:176
+# Mailman/Cgi/options.py:107 Mailman/Cgi/options.py:154
+# Mailman/Cgi/options.py:176
+#: Mailman/Cgi/options.py:108 Mailman/Cgi/options.py:155
+#: Mailman/Cgi/options.py:177
+msgid "No such member: %(safeuser)s."
+msgstr "Medlemmen finns inte: %(safeuser)s."
+
+# Mailman/Cgi/options.py:149 Mailman/Cgi/options.py:159
+# Mailman/Cgi/options.py:149 Mailman/Cgi/options.py:159
+#: Mailman/Cgi/options.py:150 Mailman/Cgi/options.py:160
+msgid "The confirmation email has been sent."
+msgstr "Ett e-postbrev med bekräftelse har skickats."
+
+# Mailman/Cgi/options.py:170 Mailman/Cgi/options.py:182
+# Mailman/Cgi/options.py:225
+# Mailman/Cgi/options.py:170 Mailman/Cgi/options.py:182
+# Mailman/Cgi/options.py:225
+#: Mailman/Cgi/options.py:171 Mailman/Cgi/options.py:183
+#: Mailman/Cgi/options.py:226
+msgid "A reminder of your password has been emailed to you."
+msgstr "Ett e-postbrev med lösenordet har skickats till dig."
+
+# Mailman/Cgi/options.py:199
+# Mailman/Cgi/options.py:199
+#: Mailman/Cgi/options.py:200
+msgid "Authentication failed."
+msgstr "Inloggningen misslyckades."
+
+# Mailman/Cgi/options.py:231
+# Mailman/Cgi/options.py:231
+#: Mailman/Cgi/options.py:232
+msgid "List subscriptions for %(user)s on %(hostname)s"
+msgstr "Visa listmedlemskap för %(user)s på %(hostname)s"
+
+# Mailman/Cgi/options.py:234
+# Mailman/Cgi/options.py:234
+#: Mailman/Cgi/options.py:235
+msgid ""
+"Click on a link to visit your options page for the\n"
+" requested mailing list."
+msgstr ""
+"Klicka på en lista för att gå till dina personliga inställningar för den."
+
+# Mailman/Cgi/options.py:275
+# Mailman/Cgi/options.py:283
+#: Mailman/Cgi/options.py:284
+msgid "Addresses did not match!"
+msgstr "Adresserna är inte lika!"
+
+# Mailman/Cgi/options.py:280
+# Mailman/Cgi/options.py:288
+#: Mailman/Cgi/options.py:289
+msgid "You are already using that email address"
+msgstr "Den e-postadressen är du redan anmäld med på listan "
+
+# Mailman/Cgi/options.py:300
+#: Mailman/Cgi/options.py:301
+msgid ""
+"The new address you requested %(newaddr)s is already a member of the\n"
+"%(listname)s mailing list, however you have also requested a global change "
+"of\n"
+"address. Upon confirmation, any other mailing list containing the address\n"
+"%(user)s will be changed. "
+msgstr ""
+"Den nya adress som du begärde %(newaddr)s är redan med på\n"
+"%(listname)s e-postlista. Eftersom du begärde en adressändring överallt "
+"kommer alla e-postlistor som innehåller adressen\n"
+"%(user)s att ändras. "
+
+# bin/clone_member:138
+# Mailman/Cgi/options.py:309
+#: Mailman/Cgi/options.py:310
+#, fuzzy
+msgid "The new address is already a member: %(newaddr)s"
+msgstr "Den nya adressen är redan medlem: %(newaddr)s"
+
+# Mailman/Cgi/options.py:286
+# Mailman/Cgi/options.py:315
+#: Mailman/Cgi/options.py:316
+msgid "Addresses may not be blank"
+msgstr "Adresserna kan inte vara tomma"
+
+# Mailman/Cgi/options.py:302
+# Mailman/Cgi/options.py:327
+#: Mailman/Cgi/options.py:328
+msgid "A confirmation message has been sent to %(newaddr)s. "
+msgstr ""
+"Ett bekräftelsemeddelande har skickats i ett e-postbrev till %(newaddr)s."
+
+# Mailman/Cgi/options.py:311
+# Mailman/Cgi/options.py:336
+#: Mailman/Cgi/options.py:337
+msgid "Bad email address provided"
+msgstr "Ogiltig e-postadress har angivits"
+
+# Mailman/Cgi/options.py:313
+# Mailman/Cgi/options.py:338
+#: Mailman/Cgi/options.py:339
+msgid "Illegal email address provided"
+msgstr "Ogiltig e-postadress har angivits"
+
+# Mailman/Cgi/options.py:315
+# Mailman/Cgi/options.py:340
+#: Mailman/Cgi/options.py:341
+msgid "%(newaddr)s is already a member of the list."
+msgstr "%(newaddr)s är redan medlem av listan."
+
+# Mailman/Cgi/options.py:324
+# Mailman/Cgi/options.py:349
+#: Mailman/Cgi/options.py:350
+msgid "Member name successfully changed. "
+msgstr "Namnet har ändrats. "
+
+# Mailman/Cgi/options.py:335
+# Mailman/Cgi/options.py:360
+#: Mailman/Cgi/options.py:361
+msgid "Passwords may not be blank"
+msgstr "Lösenorden kan inte vara tomma"
+
+# Mailman/Cgi/options.py:340
+# Mailman/Cgi/options.py:365
+#: Mailman/Cgi/options.py:366
+msgid "Passwords did not match!"
+msgstr "Lösenorden är inte lika!"
+
+# Mailman/Cgi/options.py:355 Mailman/Commands/cmd_password.py:79
+# Mailman/Commands/cmd_password.py:105
+# Mailman/Cgi/options.py:380 Mailman/Commands/cmd_password.py:79
+# Mailman/Commands/cmd_password.py:105
+#: Mailman/Cgi/options.py:381 Mailman/Commands/cmd_password.py:79
+#: Mailman/Commands/cmd_password.py:105
+msgid "Password successfully changed."
+msgstr "Ditt lösenord har ändrats."
+
+# Mailman/Cgi/options.py:364
+# Mailman/Cgi/options.py:389
+#: Mailman/Cgi/options.py:390
+msgid ""
+"You must confirm your unsubscription request by turning\n"
+" on the checkbox below the <em>Unsubscribe</em> button. You\n"
+" have not been unsubscribed!"
+msgstr ""
+"Du måste bekräfta att du vill avanmäla dig från listan genom att kryssa bort "
+"detta val.\n"
+"Du är INTE borttagen från listan!"
+
+# Mailman/Cgi/options.py:396
+# Mailman/Cgi/options.py:421
+#: Mailman/Cgi/options.py:422
+msgid "Unsubscription results"
+msgstr "Resultat av avanmälan"
+
+# Mailman/Cgi/options.py:400
+# Mailman/Cgi/options.py:425
+#: Mailman/Cgi/options.py:426
+msgid ""
+"Your unsubscription request has been received and\n"
+" forwarded on to the list moderators for approval. You will\n"
+" receive notification once the list moderators have made their\n"
+" decision."
+msgstr ""
+"Din ansökan om att bli avanmäld från listan har tagits emot och kommer att "
+"behandlas av listmoderatorerna.\n"
+"Du kommer att få ett meddelande så snart de har tagit ett beslut."
+
+# Mailman/Cgi/options.py:405
+# Mailman/Cgi/options.py:430
+#: Mailman/Cgi/options.py:431
+msgid ""
+"You have been successfully unsubscribed from the\n"
+" mailing list %(fqdn_listname)s. If you were receiving digest\n"
+" deliveries you may get one more digest. If you have any "
+"questions\n"
+" about your unsubscription, please contact the list owners at\n"
+" %(owneraddr)s."
+msgstr ""
+"Du är nu avanmäld från listan %(fqdn_listname)s.\n"
+"Om du använde sammandragsversionen, kan det vara så att du kommer att få ta "
+"emot ett sista e-postbrev.\n"
+"Har du frågor i samband med din avanmälan, kontakta listans ägare på %"
+"(owneraddr)s."
+
+# Mailman/Cgi/options.py:553
+# Mailman/Cgi/options.py:581
+#: Mailman/Cgi/options.py:582
+msgid ""
+"The list administrator has disabled digest delivery for\n"
+" this list, so your delivery option has not been set. However "
+"your\n"
+" other options have been set successfully."
+msgstr ""
+"Listadministratören har bestämt att sammandragsversion inte ska vara "
+"tillgänglig för denna lista.\n"
+"Ditt val att aktivera sammandragsversion blev därför inte genomfört, men "
+"alla andra ändringar du gjorde, är genomförda."
+
+# Mailman/Cgi/options.py:557
+# Mailman/Cgi/options.py:585
+#: Mailman/Cgi/options.py:586
+msgid ""
+"The list administrator has disabled non-digest delivery\n"
+" for this list, so your delivery option has not been set. "
+"However\n"
+" your other options have been set successfully."
+msgstr ""
+"Listadministratören har bestämt att normalversion inte ska vara tillgänglig "
+"för denna lista.\n"
+"Ditt val att avaktivera sammandragsversion blev därför inte genomfört, men "
+"alla andra ändringar du gjorde, är genomförda."
+
+# Mailman/Cgi/options.py:561
+# Mailman/Cgi/options.py:589
+#: Mailman/Cgi/options.py:590
+msgid "You have successfully set your options."
+msgstr "Dina val är nu satta."
+
+# Mailman/Cgi/options.py:564
+# Mailman/Cgi/options.py:592
+#: Mailman/Cgi/options.py:593
+msgid "You may get one last digest."
+msgstr "Det kan vara så att du kommer att få ta emot ett sista e-postbrev."
+
+# Mailman/Cgi/options.py:633
+# Mailman/Cgi/options.py:661
+#: Mailman/Cgi/options.py:662
+msgid "<em>Yes, I really want to unsubscribe</em>"
+msgstr "<em>Ja, jag vill avanmäla mig från listan</em>"
+
+# Mailman/Cgi/options.py:637
+# Mailman/Cgi/options.py:665
+#: Mailman/Cgi/options.py:666
+msgid "Change My Password"
+msgstr "Ändra mitt lösenord"
+
+# Mailman/Cgi/options.py:640
+# Mailman/Cgi/options.py:668
+#: Mailman/Cgi/options.py:669
+msgid "List my other subscriptions"
+msgstr "Visa andra listor som jag är medlem av"
+
+# Mailman/Cgi/options.py:646
+# Mailman/Cgi/options.py:674
+#: Mailman/Cgi/options.py:675
+msgid "Email My Password To Me"
+msgstr "Skicka mig mitt lösenord"
+
+# Mailman/Cgi/options.py:648
+# Mailman/Cgi/options.py:676
+#: Mailman/Cgi/options.py:677
+msgid "password"
+msgstr "lösenord"
+
+# Mailman/Cgi/options.py:650
+# Mailman/Cgi/options.py:678
+#: Mailman/Cgi/options.py:679
+msgid "Log out"
+msgstr "Logga ut"
+
+# Mailman/Cgi/options.py:652
+# Mailman/Cgi/options.py:680
+#: Mailman/Cgi/options.py:681
+msgid "Submit My Changes"
+msgstr "Spara ändringar"
+
+# Mailman/Cgi/options.py:664
+# Mailman/Cgi/options.py:692
+#: Mailman/Cgi/options.py:693
+msgid "days"
+msgstr "dagar"
+
+# Mailman/Cgi/options.py:666
+# Mailman/Cgi/options.py:694
+#: Mailman/Cgi/options.py:695
+msgid "day"
+msgstr "dag"
+
+# Mailman/Cgi/options.py:667
+# Mailman/Cgi/options.py:695
+#: Mailman/Cgi/options.py:696
+msgid "%(days)d %(units)s"
+msgstr "%(days)d %(units)s"
+
+# Mailman/Cgi/options.py:673
+# Mailman/Cgi/options.py:701
+#: Mailman/Cgi/options.py:702
+msgid "Change My Address and Name"
+msgstr "Ändra min adress och mitt namn"
+
+# Mailman/Cgi/options.py:701
+# Mailman/Cgi/options.py:725
+#: Mailman/Cgi/options.py:726
+msgid "<em>No topics defined</em>"
+msgstr "</em>Inget ämne har definierats</em>"
+
+# Mailman/Cgi/options.py:709
+# Mailman/Cgi/options.py:733
+#: Mailman/Cgi/options.py:734
+msgid ""
+"\n"
+"You are subscribed to this list with the case-preserved address\n"
+"<em>%(cpuser)s</em>."
+msgstr ""
+"\n"
+"Du är medlem av denna lista med e-postadressen <em>%(cpuser)s</em>."
+
+# Mailman/Cgi/options.py:723
+# Mailman/Cgi/options.py:747
+#: Mailman/Cgi/options.py:748
+msgid "%(realname)s list: member options login page"
+msgstr "%(realname)s: inloggning till personliga inställningar"
+
+# Mailman/Cgi/options.py:724
+# Mailman/Cgi/options.py:748
+#: Mailman/Cgi/options.py:749
+msgid "email address and "
+msgstr "din e-postadress och "
+
+# Mailman/Cgi/options.py:726
+# Mailman/Cgi/options.py:750
+#: Mailman/Cgi/options.py:751
+msgid "%(realname)s list: member options for user %(user)s"
+msgstr "%(realname)s: personliga inställningar för %(user)s"
+
+# Mailman/Cgi/options.py:752
+# Mailman/Cgi/options.py:776
+#: Mailman/Cgi/options.py:777
+msgid ""
+"In order to change your membership option, you must\n"
+" first log in by giving your %(extra)smembership password in the section\n"
+" below. If you don't remember your membership password, you can have it\n"
+" emailed to you by clicking on the button below. If you just want to\n"
+" unsubscribe from this list, click on the <em>Unsubscribe</em> button and "
+"a\n"
+" confirmation message will be sent to you.\n"
+"\n"
+" <p><strong><em>Important:</em></strong> From this point on, you must "
+"have\n"
+" cookies enabled in your browser, otherwise none of your changes will "
+"take\n"
+" effect.\n"
+" "
+msgstr ""
+"För att ändra på dina personliga inställningar, logga in nedan genom att ge %"
+"(extra)sditt lösenord.\n"
+"Om du inte kommer ihåg lösenordet, kan du be om att få det skickat till dig "
+"i ett e-postbrev genom att trycka på knappen nedan.\n"
+"Om du bara önskar att avanmäla dig från listan, klicka på knappen "
+"<em>Avanmäl mig </em> nedan.\n"
+"Efter ett tag kommer du att få ta emot ett e-postbrev som ber dig bekräfta "
+"detta.\n"
+"\n"
+"<p><strong><em>Viktigt:</em></strong> Du måste ha cookies\n"
+"aktiverade i din browser, annars kommer inga ändringar att sparas.\n"
+" "
+
+# Mailman/Cgi/options.py:766
+# Mailman/Cgi/options.py:790
+#: Mailman/Cgi/options.py:791
+msgid "Email address:"
+msgstr "E-postadress:"
+
+# Mailman/Cgi/options.py:770
+# Mailman/Cgi/options.py:794
+#: Mailman/Cgi/options.py:795
+msgid "Password:"
+msgstr "Lösenord:"
+
+# Mailman/Cgi/options.py:772
+# Mailman/Cgi/options.py:796
+#: Mailman/Cgi/options.py:797
+msgid "Log in"
+msgstr "Logga in"
+
+# Mailman/Cgi/options.py:780
+# Mailman/Cgi/options.py:804
+#: Mailman/Cgi/options.py:805
+msgid ""
+"By clicking on the <em>Unsubscribe</em> button, a\n"
+" confirmation message will be emailed to you. This message will have a\n"
+" link that you should click on to complete the removal process (you can\n"
+" also confirm by email; see the instructions in the confirmation\n"
+" message)."
+msgstr ""
+"Genom att klicka på knappen <em>Avanmäl mig</em> kommer du att få ett e-"
+"postbrev som ber dig att bekräfta att du vill avanmäla dig från listan.\n"
+"Detta e-postbrev kommer att innehålla en länk (URL) som du kan klicka på för "
+"att bekräfta avanmälningen.\n"
+"(Du kan också bekräfta detta via e-post; följ instruktionerna i e-postbrevet "
+"som du får.)"
+
+# Mailman/Cgi/options.py:788
+# Mailman/Cgi/options.py:812
+#: Mailman/Cgi/options.py:813
+msgid "Password reminder"
+msgstr "Påminnelse om lösenord"
+
+# Mailman/Cgi/options.py:792
+# Mailman/Cgi/options.py:816
+#: Mailman/Cgi/options.py:817
+msgid ""
+"By clicking on the <em>Remind</em> button, your\n"
+" password will be emailed to you."
+msgstr ""
+"Klickar du på knappen <em>Skicka påminnelse</em>, kommer du att få ditt "
+"lösenord skickat till dig i ett e-postbrev."
+
+# Mailman/Cgi/options.py:795
+# Mailman/Cgi/options.py:819
+#: Mailman/Cgi/options.py:820
+msgid "Remind"
+msgstr "Skicka påminnelse"
+
+# Mailman/Cgi/options.py:895
+# Mailman/Cgi/options.py:919
+#: Mailman/Cgi/options.py:920
+msgid "<missing>"
+msgstr "<saknas>"
+
+# Mailman/Cgi/options.py:906
+# Mailman/Cgi/options.py:930
+#: Mailman/Cgi/options.py:931
+msgid "Requested topic is not valid: %(topicname)s"
+msgstr "Det valda ämnet är inte giltigt: %(topicname)s"
+
+# Mailman/Cgi/options.py:911
+# Mailman/Cgi/options.py:935
+#: Mailman/Cgi/options.py:936
+msgid "Topic filter details"
+msgstr "Mer information om ämnesfiltret"
+
+# Mailman/Cgi/options.py:914
+# Mailman/Cgi/options.py:938
+#: Mailman/Cgi/options.py:939
+msgid "Name:"
+msgstr "Namn:"
+
+# Mailman/Cgi/options.py:916
+# Mailman/Cgi/options.py:940
+#: Mailman/Cgi/options.py:941
+msgid "Pattern (as regexp):"
+msgstr "Filter (regexp-uttryck):"
+
+# Mailman/Cgi/private.py:61
+# Mailman/Cgi/private.py:61
+#: Mailman/Cgi/private.py:61
+msgid "Private Archive Error"
+msgstr "Fel i privat arkiv"
+
+# Mailman/Cgi/private.py:62
+# Mailman/Cgi/private.py:62
+#: Mailman/Cgi/private.py:62
+msgid "You must specify a list."
+msgstr "Du måste ange en lista"
+
+# Mailman/Cgi/private.py:99
+# Mailman/Cgi/private.py:99
+#: Mailman/Cgi/private.py:99
+msgid "Private Archive Error - %(msg)s"
+msgstr "Fel i privat arkiv - %(msg)s"
+
+# Mailman/Cgi/private.py:154
+# Mailman/Cgi/private.py:154
+#: Mailman/Cgi/private.py:154
+msgid "Private archive file not found"
+msgstr "Hittar inte arkivfilen"
+
+# Mailman/Cgi/rmlist.py:79
+# Mailman/Cgi/rmlist.py:79
+#: Mailman/Cgi/rmlist.py:81
+msgid "You're being a sneaky list owner!"
+msgstr "Du är en snokande listägare!"
+
+# Mailman/Cgi/rmlist.py:117
+# Mailman/Cgi/rmlist.py:117
+#: Mailman/Cgi/rmlist.py:119
+msgid "You are not authorized to delete this mailing list"
+msgstr "Du har inte tillstånd att radera denna e-postlista"
+
+# Mailman/Cgi/rmlist.py:143
+# Mailman/Cgi/rmlist.py:143
+#: Mailman/Cgi/rmlist.py:160
+msgid "Mailing list deletion results"
+msgstr "Resultat av radering av e-postlista"
+
+# Mailman/Cgi/rmlist.py:149
+# Mailman/Cgi/rmlist.py:149
+#: Mailman/Cgi/rmlist.py:167
+msgid ""
+"You have successfully deleted the mailing list\n"
+" <b>%(listname)s</b>."
+msgstr "Du har raderat e-postlistan <b>%(listname)s</b>."
+
+#: Mailman/Cgi/rmlist.py:171
+msgid ""
+"There were some problems deleting the mailing list\n"
+" <b>%(listname)s</b>. Contact your site administrator at %(sitelist)"
+"s\n"
+" for details."
+msgstr ""
+
+# Mailman/Cgi/rmlist.py:165
+# Mailman/Cgi/rmlist.py:165
+#: Mailman/Cgi/rmlist.py:188
+msgid "Permanently remove mailing list <em>%(realname)s</em>"
+msgstr "Ta bort e-postlistan <em>%(realname)s</em> permanent"
+
+# Mailman/Cgi/rmlist.py:179
+# Mailman/Cgi/rmlist.py:179
+#: Mailman/Cgi/rmlist.py:202
+msgid ""
+"This page allows you as the list owner, to permanent\n"
+" remove this mailing list from the system. <strong>This action is not\n"
+" undoable</strong> so you should undertake it only if you are absolutely\n"
+" sure this mailing list has served its purpose and is no longer "
+"necessary.\n"
+"\n"
+" <p>Note that no warning will be sent to your list members and after "
+"this\n"
+" action, any subsequent messages sent to the mailing list, or any of its\n"
+" administrative addreses will bounce.\n"
+"\n"
+" <p>You also have the option of removing the archives for this mailing "
+"list\n"
+" at this time. It is almost always recommended that you do\n"
+" <strong>not</strong> remove the archives, since they serve as the\n"
+" historical record of your mailing list.\n"
+"\n"
+" <p>For your safety, you will be asked to reconfirm the list password.\n"
+" "
+msgstr ""
+"På denna sida kan du, som listans ägare, permanent ta bort listan från "
+"systemet.\n"
+"<strong>Du kan inte ångra detta beslut</strong>,\n"
+"så tar du bort listan bör du vara helt säker på att listan har gjort sitt "
+"jobb,\n"
+"och aldrig kommer att användas mer.\n"
+"\n"
+"<p>Det kommer inte att skickas något meddelande till listans medlemmar om "
+"att listan tas bort.\n"
+"All e-post till listan eller dess administrativa adresser kommer därför att "
+"gå direkt i retur tillbaka till avsändaren.\n"
+"\n"
+"<p>Du kan också samtidigt ta bort arkivet för listan om du önskar det.\n"
+"Det rekommenderas <strong>inte</strong> att ta bort arkivet, eftersom det "
+"kan vara användbart att ta vara på listans historia.\n"
+"\n"
+"<p>Som en extra säkerhet kommer du att bli ombedd att bekräfta listlösenord "
+"en extra gång."
+
+# Mailman/Cgi/rmlist.py:200
+# Mailman/Cgi/rmlist.py:200
+#: Mailman/Cgi/rmlist.py:223
+msgid "List password:"
+msgstr "Listlösenord:"
+
+# Mailman/Cgi/rmlist.py:204
+# Mailman/Cgi/rmlist.py:204
+#: Mailman/Cgi/rmlist.py:227
+msgid "Also delete archives?"
+msgstr "Radera arkivet också?"
+
+# Mailman/Cgi/rmlist.py:212
+# Mailman/Cgi/rmlist.py:212
+#: Mailman/Cgi/rmlist.py:235
+msgid "<b>Cancel</b> and return to list administration"
+msgstr "<b>Avbryt</b> och gå tillbaka till administration av listan"
+
+# Mailman/Cgi/rmlist.py:215
+# Mailman/Cgi/rmlist.py:215
+#: Mailman/Cgi/rmlist.py:238
+msgid "Delete this list"
+msgstr "Radera denna lista"
+
+# Mailman/Cgi/roster.py:48 Mailman/Cgi/subscribe.py:50
+# Mailman/Cgi/roster.py:48 Mailman/Cgi/subscribe.py:50
+#: Mailman/Cgi/roster.py:48 Mailman/Cgi/subscribe.py:50
+msgid "Invalid options to CGI script"
+msgstr "Ogiltiga parametrar till CGI-skriptet"
+
+# Mailman/Cgi/roster.py:99
+# Mailman/Cgi/roster.py:99
+#: Mailman/Cgi/roster.py:99
+msgid "%(realname)s roster authentication failed."
+msgstr "Tillgång till %(realname)s misslyckades."
+
+# Mailman/Cgi/roster.py:127 Mailman/Cgi/roster.py:128
+# Mailman/Cgi/subscribe.py:49 Mailman/Cgi/subscribe.py:60
+# Mailman/Cgi/roster.py:127 Mailman/Cgi/roster.py:128
+# Mailman/Cgi/subscribe.py:49 Mailman/Cgi/subscribe.py:60
+#: Mailman/Cgi/roster.py:127 Mailman/Cgi/roster.py:128
+#: Mailman/Cgi/subscribe.py:49 Mailman/Cgi/subscribe.py:60
+msgid "Error"
+msgstr "Fel"
+
+# Mailman/Cgi/subscribe.py:109
+# Mailman/Cgi/subscribe.py:109
+#: Mailman/Cgi/subscribe.py:109
+msgid "You must supply a valid email address."
+msgstr "Du måste uppge en giltig e-postadress."
+
+# Mailman/Cgi/subscribe.py:122
+# Mailman/Cgi/subscribe.py:122
+#: Mailman/Cgi/subscribe.py:122
+msgid "You may not subscribe a list to itself!"
+msgstr "Du kan inte anmäla en lista till sig själv!"
+
+# Mailman/Cgi/subscribe.py:131
+# Mailman/Cgi/subscribe.py:131
+#: Mailman/Cgi/subscribe.py:131
+msgid "If you supply a password, you must confirm it."
+msgstr ""
+"Väljer du ett eget lösenord, måste du bekräfta det genom att fylla i båda "
+"lösenordsfälten."
+
+# Mailman/Cgi/subscribe.py:133
+# Mailman/Cgi/subscribe.py:133
+#: Mailman/Cgi/subscribe.py:133
+msgid "Your passwords did not match."
+msgstr "Lösenorden är inte lika."
+
+# Mailman/Cgi/subscribe.py:167
+# Mailman/Cgi/subscribe.py:167
+#: Mailman/Cgi/subscribe.py:167
+msgid ""
+"Your subscription request has been received, and will soon be acted upon.\n"
+"Depending on the configuration of this mailing list, your subscription "
+"request\n"
+"may have to be first confirmed by you via email, or approved by the list\n"
+"moderator. If confirmation is required, you will soon get a confirmation\n"
+"email which contains further instructions."
+msgstr ""
+"Din ansökan är mottagen och kommer snart att bli behandlad.\n"
+"Vad som händer beror på hur denna e-postlista satts upp,\n"
+"din ansökan kanske först måste bekräftas via e-post,\n"
+"eller godkännas av listmoderatorn. Om en bekräftelse krävs, kommer du att få "
+"ta emot\n"
+"ett e-postbrev med närmare instruktioner."
+
+# Mailman/Cgi/subscribe.py:181
+# Mailman/Cgi/subscribe.py:181
+#: Mailman/Cgi/subscribe.py:181
+msgid ""
+"The email address you supplied is banned from this\n"
+" mailing list. If you think this restriction is erroneous, please\n"
+" contact the list owners at %(listowner)s."
+msgstr ""
+"E-postadressen som du uppgav är utestängd från denna e-postlista.\n"
+"Om du tror att detta kan vara felaktigt, kontakta listans ägare på %"
+"(listowner)s."
+
+# Mailman/Cgi/subscribe.py:185
+# Mailman/Cgi/subscribe.py:185
+#: Mailman/Cgi/subscribe.py:185
+msgid ""
+"The email address you supplied is not valid. (E.g. it must contain an\n"
+"`@'.)"
+msgstr ""
+"E-postadressen som du har uppgett är inte giltig.\n"
+"(Den måste till exempel innehålla tecknet '@'.)"
+
+# Mailman/Cgi/subscribe.py:189
+# Mailman/Cgi/subscribe.py:189
+#: Mailman/Cgi/subscribe.py:189
+msgid ""
+"Your subscription is not allowed because the email address you gave is\n"
+"insecure."
+msgstr ""
+"Din anmälan godkänns inte, eftersom du har angett en osäker e-postadress."
+
+# Mailman/Cgi/subscribe.py:197
+# Mailman/Cgi/subscribe.py:197
+#: Mailman/Cgi/subscribe.py:197
+msgid ""
+"Confirmation from your email address is required, to prevent anyone from\n"
+"subscribing you without permission. Instructions are being sent to you at\n"
+"%(email)s. Please note your subscription will not start until you confirm\n"
+"your subscription."
+msgstr ""
+"Bekräftelse från din e-postadress är nödvändig, för att ingen annan ska "
+"kunna anmäla dig till listan mot din vilja. Du kommer nu att få ett e-"
+"postbrev med närmare instruktioner till adressen %(email)s. Du kommer inte "
+"att bli medlem av listan förrän du har följt instruktionerna och bekräftat "
+"att du vill vara med på listan."
+
+# Mailman/Cgi/subscribe.py:209
+# Mailman/Cgi/subscribe.py:209
+#: Mailman/Cgi/subscribe.py:209
+msgid ""
+"Your subscription request was deferred because %(x)s. Your request has "
+"been\n"
+"forwarded to the list moderator. You will receive email informing you of "
+"the\n"
+"moderator's decision when they get to your request."
+msgstr ""
+"Anmälan är uppskjuten p g a %(x)s.\n"
+"Din ansökan har skickats till listmoderatorn.\n"
+"Du kommer att få ett e-postbrev med moderatorns beslut så snart han/hon är "
+"klar."
+
+# Mailman/Cgi/subscribe.py:216 Mailman/Commands/cmd_confirm.py:60
+# Mailman/Cgi/subscribe.py:216 Mailman/Commands/cmd_confirm.py:59
+#: Mailman/Cgi/subscribe.py:216 Mailman/Commands/cmd_confirm.py:60
+msgid "You are already subscribed."
+msgstr "Du är redan medlem av listan."
+
+# Mailman/Cgi/subscribe.py:230
+# Mailman/Cgi/subscribe.py:230
+#: Mailman/Cgi/subscribe.py:230
+msgid "Mailman privacy alert"
+msgstr "Säkerhetsmeddelande från Mailman"
+
+# Mailman/Cgi/subscribe.py:231
+# Mailman/Cgi/subscribe.py:231
+#: Mailman/Cgi/subscribe.py:231
+msgid ""
+"An attempt was made to subscribe your address to the mailing list\n"
+"%(listaddr)s. You are already subscribed to this mailing list.\n"
+"\n"
+"Note that the list membership is not public, so it is possible that a bad\n"
+"person was trying to probe the list for its membership. This would be a\n"
+"privacy violation if we let them do this, but we didn't.\n"
+"\n"
+"If you submitted the subscription request and forgot that you were already\n"
+"subscribed to the list, then you can ignore this message. If you suspect "
+"that\n"
+"an attempt is being made to covertly discover whether you are a member of "
+"this\n"
+"list, and you are worried about your privacy, then feel free to send a "
+"message\n"
+"to the list administrator at %(listowner)s.\n"
+msgstr ""
+"Ett försök har gjorts att anmäla din e-postadress till e-postlistan %"
+"(listaddr)s.\n"
+"Du är redan medlem av denna lista.\n"
+"\n"
+"Observera: listan över medlemmar är inte tillgänglig för alla, så det är "
+"möjligt\n"
+"att en utomstående försökte att ta reda på vilka som är medlemmar av "
+"listan.\n"
+"Det skulle ha varit ett brott mot tystnadsplikten om vi tillät utomstående "
+"att\n"
+"pröva sig fram på detta sätt, därför har vi bara gett ett neutralt "
+"meddelande till den\n"
+"som försökte.\n"
+"\n"
+"Om du försökte att anmäla dig men glömde att du redan var anmäld, kan du\n"
+"bara radera meddelandet och inte bry dig något mer om det hela. Om du har "
+"misstankar\n"
+"om att någon försöker att få reda på om du är medlem av listan eller inte, "
+"eller\n"
+"känner dig osäker på skyddet av upplysningar om dig, skicka gärna ett\n"
+"meddelande till listadministratören på adressen %(listowner)s.\n"
+
+# Mailman/Cgi/subscribe.py:250
+# Mailman/Cgi/subscribe.py:250
+#: Mailman/Cgi/subscribe.py:250
+msgid "This list does not support digest delivery."
+msgstr "Denna lista stöder inte sammandragsversioner."
+
+# Mailman/Cgi/subscribe.py:252
+# Mailman/Cgi/subscribe.py:252
+#: Mailman/Cgi/subscribe.py:252
+msgid "This list only supports digest delivery."
+msgstr "Denna lista stöder bara sammandragsversioner."
+
+# Mailman/Cgi/subscribe.py:259
+# Mailman/Cgi/subscribe.py:259
+#: Mailman/Cgi/subscribe.py:259
+msgid "You have been successfully subscribed to the %(realname)s mailing list."
+msgstr "Du är nu anmäld till e-postlistan %(realname)s."
+
+# Mailman/Commands/cmd_confirm.py:17
+# Mailman/Commands/cmd_confirm.py:17
+#: Mailman/Commands/cmd_confirm.py:17
+msgid ""
+"\n"
+" confirm <confirmation-string>\n"
+" Confirm an action. The confirmation-string is required and should "
+"be\n"
+" supplied with in mailback confirmation notice.\n"
+msgstr ""
+"\n"
+" confirm <bekräftelseindikator>\n"
+" Bekräfta en åtgärd. En bekräftelseindikator måste anges och den ska "
+"ha skickats via e-post.\n"
+
+# Mailman/Commands/cmd_confirm.py:39 Mailman/Commands/cmd_lists.py:39
+# Mailman/Commands/cmd_set.py:133 Mailman/Commands/cmd_subscribe.py:68
+# Mailman/Commands/cmd_unsubscribe.py:52 Mailman/Commands/cmd_who.py:65
+# Mailman/Commands/cmd_confirm.py:39 Mailman/Commands/cmd_lists.py:40
+# Mailman/Commands/cmd_set.py:133 Mailman/Commands/cmd_subscribe.py:69
+# Mailman/Commands/cmd_unsubscribe.py:52 Mailman/Commands/cmd_who.py:65
+#: Mailman/Commands/cmd_confirm.py:40 Mailman/Commands/cmd_lists.py:40
+#: Mailman/Commands/cmd_set.py:133 Mailman/Commands/cmd_subscribe.py:69
+#: Mailman/Commands/cmd_unsubscribe.py:52 Mailman/Commands/cmd_who.py:65
+msgid "Usage:"
+msgstr "Användning:"
+
+# Mailman/Commands/cmd_confirm.py:48
+# Mailman/Commands/cmd_confirm.py:48
+#: Mailman/Commands/cmd_confirm.py:49
+msgid ""
+"Invalid confirmation string. Note that confirmation strings expire\n"
+"approximately %(days)s days after the initial subscription request. If "
+"your\n"
+"confirmation has expired, please try to re-submit your original request or\n"
+"message."
+msgstr ""
+"Ogiltig identifikation för bekräftelse av anmälan.\n"
+"Observera att sådana identifikationer går ut cirka %(days)s dagar efter\n"
+"att du har mottagit e-postbrevet med adressen. Om detta är fallet, försök "
+"att\n"
+"skicka den ursprungliga frågan eller meddelandet på nytt."
+
+# Mailman/Commands/cmd_confirm.py:55
+# Mailman/Commands/cmd_confirm.py:54
+#: Mailman/Commands/cmd_confirm.py:55
+msgid "Your request has been forwarded to the list moderator for approval."
+msgstr "Din anhållan har skickats vidare till listmoderatorn för godkännande."
+
+# Mailman/Commands/cmd_confirm.py:64
+# Mailman/Commands/cmd_confirm.py:62
+#: Mailman/Commands/cmd_confirm.py:63
+msgid ""
+"You are not current a member. Have you already unsubscribed or changed\n"
+"your email address?"
+msgstr ""
+"Du är inte medlem av listan. Har du kanske redan avanmält dig eller ändrat e-"
+"postadress?"
+
+# Mailman/Commands/cmd_confirm.py:69
+# Mailman/Commands/cmd_confirm.py:66
+#: Mailman/Commands/cmd_confirm.py:73
+msgid "Confirmation succeeded"
+msgstr "Bekräftelse mottagen"
+
+# Mailman/Commands/cmd_echo.py:17
+# Mailman/Commands/cmd_echo.py:17
+#: Mailman/Commands/cmd_echo.py:17
+msgid ""
+"\n"
+" echo [args]\n"
+" Simply echo an acknowledgement. Args are echoed back unchanged.\n"
+msgstr ""
+"\n"
+" echo [args]\n"
+" Detta kommando skickar bara tillbaka ett svar på att det blivit "
+"mottaget.\n"
+" 'args' skickas tillbaka oförändrade.\n"
+
+# Mailman/Commands/cmd_end.py:17
+# Mailman/Commands/cmd_end.py:17
+#: Mailman/Commands/cmd_end.py:17
+msgid ""
+"\n"
+" end\n"
+" Stop processing commands. Use this if your mail program "
+"automatically\n"
+" adds a signature file.\n"
+msgstr ""
+"\n"
+" end\n"
+" Anger slutet på ett kommando. All text efter detta kommando blir "
+"inte\n"
+" tolkad. Använd detta till exempel om ditt e-postprogram automatiskt\n"
+" lägger till en signatur nederst i e-postbreven du skickar.\n"
+
+# Mailman/Commands/cmd_help.py:17
+# Mailman/Commands/cmd_help.py:17
+#: Mailman/Commands/cmd_help.py:17
+msgid ""
+"\n"
+" help\n"
+" Print this help message.\n"
+msgstr ""
+"\n"
+" help\n"
+" Visar denna hjälptext.\n"
+
+# Mailman/Commands/cmd_help.py:47
+#: Mailman/Commands/cmd_help.py:47
+msgid "You can access your personal options via the following url:"
+msgstr "Du kan nå dina personliga inställningar via följande url: "
+
+# Mailman/Commands/cmd_info.py:17
+# Mailman/Commands/cmd_info.py:17
+#: Mailman/Commands/cmd_info.py:17
+msgid ""
+"\n"
+" info\n"
+" Get information about this mailing list.\n"
+msgstr ""
+"\n"
+" info\n"
+" Visar information om denna e-postlista.\n"
+
+# Mailman/Commands/cmd_info.py:39 Mailman/Commands/cmd_lists.py:56
+# Mailman/Commands/cmd_info.py:39 Mailman/Commands/cmd_lists.py:62
+#: Mailman/Commands/cmd_info.py:39 Mailman/Commands/cmd_lists.py:62
+msgid "n/a"
+msgstr ""
+
+# Mailman/Commands/cmd_info.py:44
+# Mailman/Commands/cmd_info.py:44
+#: Mailman/Commands/cmd_info.py:44
+msgid "List name: %(listname)s"
+msgstr "Listnamn: %(listname)s"
+
+# Mailman/Commands/cmd_info.py:45
+# Mailman/Commands/cmd_info.py:45
+#: Mailman/Commands/cmd_info.py:45
+msgid "Description: %(description)s"
+msgstr "Beskrivning: %(description)s"
+
+# Mailman/Commands/cmd_info.py:46
+# Mailman/Commands/cmd_info.py:46
+#: Mailman/Commands/cmd_info.py:46
+msgid "Postings to: %(postaddr)s"
+msgstr "Adress: %(postaddr)s"
+
+# Mailman/Commands/cmd_info.py:47
+# Mailman/Commands/cmd_info.py:47
+#: Mailman/Commands/cmd_info.py:47
+msgid "List Helpbot: %(requestaddr)s"
+msgstr "Kommandoadress: %(requestaddr)s"
+
+# Mailman/Commands/cmd_info.py:48
+# Mailman/Commands/cmd_info.py:48
+#: Mailman/Commands/cmd_info.py:48
+msgid "List Owners: %(owneraddr)s"
+msgstr "Listans ägare: %(owneraddr)s"
+
+# Mailman/Commands/cmd_info.py:49
+# Mailman/Commands/cmd_info.py:49
+#: Mailman/Commands/cmd_info.py:49
+msgid "More information: %(listurl)s"
+msgstr "Mer information: %(listurl)s"
+
+# Mailman/Commands/cmd_join.py:17
+# Mailman/Commands/cmd_join.py:17
+#: Mailman/Commands/cmd_join.py:17
+msgid "The `join' command is synonymous with `subscribe'.\n"
+msgstr "'join'-kommandot är detsamma som 'subscribe'.\n"
+
+# Mailman/Commands/cmd_leave.py:17
+# Mailman/Commands/cmd_leave.py:17
+#: Mailman/Commands/cmd_leave.py:17
+msgid "The `leave' command is synonymous with `unsubscribe'.\n"
+msgstr "'leave'-kommandot är detsamma som 'unsubscribe'.\n"
+
+# Mailman/Commands/cmd_lists.py:17
+# Mailman/Commands/cmd_lists.py:17
+#: Mailman/Commands/cmd_lists.py:17
+msgid ""
+"\n"
+" lists\n"
+" See a list of the public mailing lists on this GNU Mailman server.\n"
+msgstr ""
+"\n"
+" lists\n"
+" Visar en lista över e-postlistor som är offentligt tillgängliga på "
+"denna\n"
+" GNU Mailman server.\n"
+
+# Mailman/Commands/cmd_lists.py:43
+# Mailman/Commands/cmd_lists.py:44
+#: Mailman/Commands/cmd_lists.py:44
+msgid "Public mailing lists at %(hostname)s:"
+msgstr "E-postlistor offentligt tillgängliga på %(hostname)s:"
+
+# Mailman/Commands/cmd_lists.py:60
+# Mailman/Commands/cmd_lists.py:66
+#: Mailman/Commands/cmd_lists.py:66
+msgid "%(i)3d. List name: %(realname)s"
+msgstr "%(i)3d. Listnamn: %(realname)s"
+
+# Mailman/Commands/cmd_lists.py:61
+# Mailman/Commands/cmd_lists.py:67
+#: Mailman/Commands/cmd_lists.py:67
+msgid " Description: %(description)s"
+msgstr " Beskrivning: %(description)s"
+
+# Mailman/Commands/cmd_lists.py:62
+# Mailman/Commands/cmd_lists.py:68
+#: Mailman/Commands/cmd_lists.py:68
+msgid " Requests to: %(requestaddr)s"
+msgstr " Frågor till: %(requestaddr)s"
+
+# Mailman/Commands/cmd_password.py:17
+# Mailman/Commands/cmd_password.py:17
+#: Mailman/Commands/cmd_password.py:17
+msgid ""
+"\n"
+" password [<oldpassword> <newpassword>] [address=<address>]\n"
+" Retrieve or change your password. With no arguments, this returns\n"
+" your current password. With arguments <oldpassword> and "
+"<newpassword>\n"
+" you can change your password.\n"
+"\n"
+" If you're posting from an address other than your membership "
+"address,\n"
+" specify your membership address with `address=<address>' (no "
+"brackets\n"
+" around the email address, and no quotes!). Note that in this case "
+"the\n"
+" response is always sent to the subscribed address.\n"
+msgstr ""
+"\n"
+" lösenord [<gammalt lösenord> <nytt lösenord>] [address=<e-postadress>]\n"
+" Hämtar eller ändrar ditt lösenord. Om inga parametrar angetts,\n"
+" skickas ditt lösenord till dig. Med parametrarna <gammalt lösenord>\n"
+" och <nytt lösenord> kan du ändra ditt lösenord.\n"
+"\n"
+" Om du skickar detta kommando från en annan e-postadress än den\n"
+" du anmälts med på listan, måste du ange e-postadressen med\n"
+" 'address=<e-postadress>' (utan tecknen '<' och '>', och utan "
+"apostrofer).\n"
+" I detta fall kommer svaret alltid att skickas till den anmälda\n"
+" e-postadressen.\n"
+
+# Mailman/Commands/cmd_password.py:51 Mailman/Commands/cmd_password.py:64
+# Mailman/Commands/cmd_password.py:51 Mailman/Commands/cmd_password.py:64
+#: Mailman/Commands/cmd_password.py:51 Mailman/Commands/cmd_password.py:64
+msgid "Your password is: %(password)s"
+msgstr "Ditt lösenord är: %(password)s"
+
+# Mailman/Commands/cmd_password.py:55 Mailman/Commands/cmd_password.py:68
+# Mailman/Commands/cmd_password.py:91 Mailman/Commands/cmd_password.py:117
+# Mailman/Commands/cmd_set.py:149 Mailman/Commands/cmd_set.py:219
+# Mailman/Commands/cmd_password.py:55 Mailman/Commands/cmd_password.py:68
+# Mailman/Commands/cmd_password.py:91 Mailman/Commands/cmd_password.py:117
+# Mailman/Commands/cmd_set.py:149 Mailman/Commands/cmd_set.py:219
+#: Mailman/Commands/cmd_password.py:55 Mailman/Commands/cmd_password.py:68
+#: Mailman/Commands/cmd_password.py:91 Mailman/Commands/cmd_password.py:117
+#: Mailman/Commands/cmd_set.py:149 Mailman/Commands/cmd_set.py:219
+msgid "You are not a member of the %(listname)s mailing list"
+msgstr "Du är inte medlem av e-postlistan %(listname)s"
+
+# Mailman/Commands/cmd_password.py:81 Mailman/Commands/cmd_password.py:107
+# Mailman/Commands/cmd_password.py:81 Mailman/Commands/cmd_password.py:107
+#: Mailman/Commands/cmd_password.py:81 Mailman/Commands/cmd_password.py:107
+msgid ""
+"You did not give the correct old password, so your password has not been\n"
+"changed. Use the no argument version of the password command to retrieve "
+"your\n"
+"current password, then try again."
+msgstr ""
+"Det gamla lösenordet som du har angett är inte rätt. Ditt lösenord har\n"
+"därför inte ändrats. Använd kommandot utan att ange några parametrar för att "
+"få lösenordet\n"
+"och försök igen."
+
+# Mailman/Commands/cmd_password.py:85 Mailman/Commands/cmd_password.py:111
+# Mailman/Commands/cmd_password.py:85 Mailman/Commands/cmd_password.py:111
+#: Mailman/Commands/cmd_password.py:85 Mailman/Commands/cmd_password.py:111
+msgid ""
+"\n"
+"Usage:"
+msgstr ""
+"\n"
+"Användning:"
+
+# Mailman/Commands/cmd_remove.py:17
+# Mailman/Commands/cmd_remove.py:17
+#: Mailman/Commands/cmd_remove.py:17
+msgid "The `remove' command is synonymous with `unsubscribe'.\n"
+msgstr "'remove'-kommandot är detsamma som 'unsubscribe'.\n"
+
+# Mailman/Commands/cmd_set.py:26
+# Mailman/Commands/cmd_set.py:26
+#: Mailman/Commands/cmd_set.py:26
+msgid ""
+"\n"
+" set ...\n"
+" Set or view your membership options.\n"
+"\n"
+" Use `set help' (without the quotes) to get a more detailed list of "
+"the\n"
+" options you can change.\n"
+"\n"
+" Use `set show' (without the quotes) to view your current option\n"
+" settings.\n"
+msgstr ""
+"\n"
+" set ...\n"
+" Ställer in eller visar personliga inställningar.\n"
+"\n"
+" Använd 'set help' (utan apostrofer) för att se en mer detaljerad "
+"lista\n"
+" över inställningar som du kan ändra.\n"
+"\n"
+" Använd 'set show' (utan apostrofer) för att se vad inställningarna "
+"är\n"
+" satta till.\n"
+
+# Mailman/Commands/cmd_set.py:37
+# Mailman/Commands/cmd_set.py:37
+#: Mailman/Commands/cmd_set.py:37
+msgid ""
+"\n"
+" set help\n"
+" Show this detailed help.\n"
+"\n"
+" set show [address=<address>]\n"
+" View your current option settings. If you're posting from an "
+"address\n"
+" other than your membership address, specify your membership address\n"
+" with `address=<address>' (no brackets around the email address, and "
+"no\n"
+" quotes!).\n"
+"\n"
+" set authenticate <password> [address=<address>]\n"
+" To set any of your options, you must include this command first, "
+"along\n"
+" with your membership password. If you're posting from an address\n"
+" other than your membership address, specify your membership address\n"
+" with `address=<address>' (no brackets around the email address, and "
+"no\n"
+" quotes!).\n"
+"\n"
+" set ack on\n"
+" set ack off\n"
+" When the `ack' option is turned on, you will receive an\n"
+" acknowledgement message whenever you post a message to the list.\n"
+"\n"
+" set digest plain\n"
+" set digest mime\n"
+" set digest off\n"
+" When the `digest' option is turned off, you will receive postings\n"
+" immediately when they are posted. Use `set digest plain' if "
+"instead\n"
+" you want to receive postings bundled into a plain text digest\n"
+" (i.e. RFC 1153 digest). Use `set digest mime' if instead you want "
+"to\n"
+" receive postings bundled together into a MIME digest.\n"
+"\n"
+" set delivery on\n"
+" set delivery off\n"
+" Turn delivery on or off. This does not unsubscribe you, but "
+"instead\n"
+" tells Mailman not to deliver messages to you for now. This is "
+"useful\n"
+" if you're going on vacation. Be sure to use `set delivery on' when\n"
+" you return from vacation!\n"
+"\n"
+" set myposts on\n"
+" set myposts off\n"
+" Use `set myposts off' to not receive copies of messages you post to\n"
+" the list. This has no effect if you're receiving digests.\n"
+"\n"
+" set hide on\n"
+" set hide off\n"
+" Use `set hide on' to conceal your email address when people request\n"
+" the membership list.\n"
+"\n"
+" set duplicates on\n"
+" set duplicates off\n"
+" Use `set duplicates off' if you want Mailman to not send you "
+"messages\n"
+" if your address is explicitly mentioned in the To: or Cc: fields of\n"
+" the message. This can reduce the number of duplicate postings you\n"
+" will receive.\n"
+"\n"
+" set reminders on\n"
+" set reminders off\n"
+" Use `set reminders off' if you want to disable the monthly password\n"
+" reminder for this mailing list.\n"
+msgstr ""
+"\n"
+" set help\n"
+" Visar denna detaljerade hjälptext.\n"
+"\n"
+" set show [address=<e-postadress>]\n"
+" Visar vad inställningarna är satta till. Om du skickar från en "
+"annan\n"
+" e-postadress än den du som du anmält dig till listan med, kan du "
+"använda\n"
+" address= parametern till att ange e-postadressen som du vill "
+"använda.\n"
+"\n"
+" set authenticate <lösenord> [address=<e-postadress>]\n"
+" För att kunna ändra på inställningar måste du använda detta "
+"kommando\n"
+" för att styrka din identitet. Om du skickar från en annan e-"
+"postadress\n"
+" än den som du anmält dig med till listan, kan du använda address= "
+"parametern\n"
+" för att ange e-postadressen som du vill använda.\n"
+"\n"
+" set ack on\n"
+" set ack off\n"
+" När 'ack'-valet är aktiverat, kommer du varje gång som du skickar "
+"ett e-postbrev till\n"
+" listan, att ta emot en anmälan om att din e-post tagits emot.\n"
+"\n"
+" set digest plain\n"
+" set digest mime\n"
+" set digest off\n"
+" När 'digest'-valet är satt till 'av', kommer du att ta emot e-post "
+"allt efter hand\n"
+" som de skickas till listan. Använd 'set digest plain' om du "
+"istället\n"
+" med jämna mellanrum vill ta emot samlingsepost (sammandragsversion), "
+"som\n"
+" definerats i RFC 1153). Använd 'set digest mime' för att ta emot "
+"sådan samlingsepost i MIME-format.\n"
+"\n"
+" set myposts on\n"
+" set myposts off\n"
+" Använd 'set myposts off' för att inte ta emot e-postbrev som du "
+"själv skickar till\n"
+" listan. Denna inställning har ingen inverkan om du har aktiverat\n"
+" sammandragsversion.\n"
+"\n"
+" set hide on\n"
+" set hide off\n"
+" Använd 'set hide on' för att gömma din e-postadress när andra ber om "
+"att\n"
+" se vilka som är medlemmar av denna e-postlista.\n"
+"\n"
+" set duplicates on\n"
+" set duplicates off\n"
+" Använd 'set duplicates off' om du vill att Mailman inte ska skicka e-"
+"postbrev\n"
+" till dig om din e-postadress angetts i Till: eller Cc: fältet i\n"
+" e-postbrev. Detta kan reducera antalet kopior som du eventuellt "
+"skulle ha\n"
+" tagit emot.\n"
+"\n"
+" set reminders on\n"
+" set reminders off\n"
+" Använd 'set reminders off' om du inte vill ha ett e-postbrev med\n"
+" ditt lösenord skickat till dig en gång i månaden.\n"
+
+# Mailman/Commands/cmd_set.py:122
+# Mailman/Commands/cmd_set.py:122
+#: Mailman/Commands/cmd_set.py:122
+msgid "Bad set command: %(subcmd)s"
+msgstr "Ogiltigt kommando: %(subcmd)s"
+
+# Mailman/Commands/cmd_set.py:151
+# Mailman/Commands/cmd_set.py:151
+#: Mailman/Commands/cmd_set.py:151
+msgid "Your current option settings:"
+msgstr "Dina inställningar:"
+
+# Mailman/Commands/cmd_set.py:153 Mailman/Commands/cmd_set.py:191
+# Mailman/Commands/cmd_set.py:194 Mailman/Commands/cmd_set.py:198
+# Mailman/Commands/cmd_set.py:202
+# Mailman/Commands/cmd_set.py:153 Mailman/Commands/cmd_set.py:191
+# Mailman/Commands/cmd_set.py:194 Mailman/Commands/cmd_set.py:198
+# Mailman/Commands/cmd_set.py:202
+#: Mailman/Commands/cmd_set.py:153 Mailman/Commands/cmd_set.py:191
+#: Mailman/Commands/cmd_set.py:194 Mailman/Commands/cmd_set.py:198
+#: Mailman/Commands/cmd_set.py:202
+msgid "off"
+msgstr "av"
+
+# Mailman/Commands/cmd_set.py:153 Mailman/Commands/cmd_set.py:191
+# Mailman/Commands/cmd_set.py:194 Mailman/Commands/cmd_set.py:198
+# Mailman/Commands/cmd_set.py:202
+# Mailman/Commands/cmd_set.py:153 Mailman/Commands/cmd_set.py:191
+# Mailman/Commands/cmd_set.py:194 Mailman/Commands/cmd_set.py:198
+# Mailman/Commands/cmd_set.py:202
+#: Mailman/Commands/cmd_set.py:153 Mailman/Commands/cmd_set.py:191
+#: Mailman/Commands/cmd_set.py:194 Mailman/Commands/cmd_set.py:198
+#: Mailman/Commands/cmd_set.py:202
+msgid "on"
+msgstr "på"
+
+# Mailman/Commands/cmd_set.py:154
+# Mailman/Commands/cmd_set.py:154
+#: Mailman/Commands/cmd_set.py:154
+msgid " ack %(onoff)s"
+msgstr ""
+
+# Mailman/Commands/cmd_set.py:286
+# Mailman/Commands/cmd_set.py:160
+#: Mailman/Commands/cmd_set.py:160
+#, fuzzy
+msgid " digest plain"
+msgstr " sammandragsversion i ren text"
+
+# Mailman/Deliverer.py:61
+# Mailman/Commands/cmd_set.py:162
+#: Mailman/Commands/cmd_set.py:162
+#, fuzzy
+msgid " digest mime"
+msgstr " sammandragsversion i mimeformat"
+
+# Mailman/Commands/cmd_set.py:164
+#: Mailman/Commands/cmd_set.py:164
+#, fuzzy
+msgid " digest off"
+msgstr " sammandragsversion avaktiverad."
+
+# Mailman/Commands/cmd_set.py:169
+# Mailman/Commands/cmd_set.py:169
+#: Mailman/Commands/cmd_set.py:169
+msgid "delivery on"
+msgstr "e-postdistribution på"
+
+# Mailman/Commands/cmd_set.py:171 Mailman/Commands/cmd_set.py:174
+# Mailman/Commands/cmd_set.py:177 Mailman/Commands/cmd_set.py:181
+# Mailman/Commands/cmd_set.py:171 Mailman/Commands/cmd_set.py:174
+# Mailman/Commands/cmd_set.py:177 Mailman/Commands/cmd_set.py:181
+#: Mailman/Commands/cmd_set.py:171 Mailman/Commands/cmd_set.py:174
+#: Mailman/Commands/cmd_set.py:177 Mailman/Commands/cmd_set.py:181
+msgid "delivery off"
+msgstr "e-postdistribution avaktiverad"
+
+# Mailman/Commands/cmd_set.py:172
+# Mailman/Commands/cmd_set.py:172
+#: Mailman/Commands/cmd_set.py:172
+msgid "by you"
+msgstr "av dig"
+
+# Mailman/Commands/cmd_set.py:175
+# Mailman/Commands/cmd_set.py:175
+#: Mailman/Commands/cmd_set.py:175
+msgid "by the admin"
+msgstr "av listadministratören"
+
+# Mailman/Commands/cmd_set.py:178
+# Mailman/Commands/cmd_set.py:178
+#: Mailman/Commands/cmd_set.py:178
+msgid "due to bounces"
+msgstr "på grund av för många returmeddelanden"
+
+# Mailman/Commands/cmd_set.py:186
+# Mailman/Commands/cmd_set.py:186
+#: Mailman/Commands/cmd_set.py:186
+msgid " %(status)s (%(how)s on %(date)s)"
+msgstr ""
+
+# Mailman/Commands/cmd_set.py:192
+# Mailman/Commands/cmd_set.py:192
+#: Mailman/Commands/cmd_set.py:192
+msgid " myposts %(onoff)s"
+msgstr ""
+
+# Mailman/Commands/cmd_set.py:195
+# Mailman/Commands/cmd_set.py:195
+#: Mailman/Commands/cmd_set.py:195
+msgid " hide %(onoff)s"
+msgstr " dölj %(onoff)s"
+
+# Mailman/Commands/cmd_set.py:199
+# Mailman/Commands/cmd_set.py:199
+#: Mailman/Commands/cmd_set.py:199
+msgid " duplicates %(onoff)s"
+msgstr " undvik kopior %(onoff)s"
+
+# Mailman/Commands/cmd_set.py:203
+# Mailman/Commands/cmd_set.py:203
+#: Mailman/Commands/cmd_set.py:203
+msgid " reminders %(onoff)s"
+msgstr " påminnelser om lösenord %(onoff)s"
+
+# Mailman/Commands/cmd_set.py:224
+# Mailman/Commands/cmd_set.py:224
+#: Mailman/Commands/cmd_set.py:224
+msgid "You did not give the correct password"
+msgstr "Du har uppgett fel lösenord"
+
+# Mailman/Commands/cmd_set.py:236 Mailman/Commands/cmd_set.py:283
+# Mailman/Commands/cmd_set.py:236 Mailman/Commands/cmd_set.py:283
+#: Mailman/Commands/cmd_set.py:236 Mailman/Commands/cmd_set.py:283
+msgid "Bad argument: %(arg)s"
+msgstr "Ogiltiga parametrar: %(arg)s"
+
+# Mailman/Commands/cmd_set.py:241 Mailman/Commands/cmd_set.py:261
+# Mailman/Commands/cmd_set.py:241 Mailman/Commands/cmd_set.py:261
+#: Mailman/Commands/cmd_set.py:241 Mailman/Commands/cmd_set.py:261
+msgid "Not authenticated"
+msgstr "Inte verifierad"
+
+# Mailman/Commands/cmd_set.py:254
+# Mailman/Commands/cmd_set.py:254
+#: Mailman/Commands/cmd_set.py:254
+msgid "ack option set"
+msgstr "'ack'-valet satt"
+
+# Mailman/Commands/cmd_set.py:286
+# Mailman/Commands/cmd_set.py:286
+#: Mailman/Commands/cmd_set.py:286
+msgid "digest option set"
+msgstr "sammandragsversion satt"
+
+# Mailman/Commands/cmd_set.py:298
+# Mailman/Commands/cmd_set.py:298
+#: Mailman/Commands/cmd_set.py:298
+msgid "delivery option set"
+msgstr "distributionssätt satt"
+
+# Mailman/Commands/cmd_set.py:310
+# Mailman/Commands/cmd_set.py:310
+#: Mailman/Commands/cmd_set.py:310
+msgid "myposts option set"
+msgstr "valet 'inte-mina' satt"
+
+# Mailman/Commands/cmd_set.py:321
+# Mailman/Commands/cmd_set.py:321
+#: Mailman/Commands/cmd_set.py:321
+msgid "hide option set"
+msgstr "valet 'dölj' satt"
+
+# Mailman/Commands/cmd_set.py:333
+# Mailman/Commands/cmd_set.py:333
+#: Mailman/Commands/cmd_set.py:333
+msgid "duplicates option set"
+msgstr "valet 'undvik kopior' satt"
+
+# Mailman/Commands/cmd_set.py:345
+# Mailman/Commands/cmd_set.py:345
+#: Mailman/Commands/cmd_set.py:345
+msgid "reminder option set"
+msgstr "valet 'påminnelse' satt"
+
+# Mailman/Commands/cmd_stop.py:17
+# Mailman/Commands/cmd_stop.py:17
+#: Mailman/Commands/cmd_stop.py:17
+msgid "stop is synonymous with the end command.\n"
+msgstr "'stop'-kommandot är detsamma som 'end'.\n"
+
+# Mailman/Commands/cmd_subscribe.py:17
+# Mailman/Commands/cmd_subscribe.py:17
+#: Mailman/Commands/cmd_subscribe.py:17
+msgid ""
+"\n"
+" subscribe [password] [digest|nodigest] [address=<address>]\n"
+" Subscribe to this mailing list. Your password must be given to\n"
+" unsubscribe or change your options, but if you omit the password, "
+"one\n"
+" will be generated for you. You may be periodically reminded of "
+"your\n"
+" password.\n"
+"\n"
+" The next argument may be either: `nodigest' or `digest' (no "
+"quotes!).\n"
+" If you wish to subscribe an address other than the address you sent\n"
+" this request from, you may specify `address=<address>' (no brackets\n"
+" around the email address, and no quotes!)\n"
+msgstr ""
+"\n"
+" subscribe [lösenord] [digest|nodigest] [address=<e-postadress>]\n"
+" Anmäl dig på denna e-postlista. Ett lösenord är nödvändigt för att "
+"avanmäla sig\n"
+" från listan eller för att ändra dina personliga inställningar, men "
+"om du\n"
+" inte anger något, kommer ett lösenord att genereras för dig. Du kan "
+"få lösenordet\n"
+" skickat till dig med jämna mellanrum.\n"
+"\n"
+" Nästa parameter kan vara: 'nodigest' eller 'digest' (inga\n"
+" apostrofer!). Om du vill anmäla dig på en annan e-postadress än den "
+"du\n"
+" skickar från, kan du ange den med 'address=<e-postadress>' (utan\n"
+" '<' och '>', och utan apostrofer!)\n"
+
+# Mailman/Commands/cmd_subscribe.py:61
+# Mailman/Commands/cmd_subscribe.py:62
+#: Mailman/Commands/cmd_subscribe.py:62
+msgid "Bad digest specifier: %(arg)s"
+msgstr "Ogitlig parameter för sammandragsversion: %(arg)s"
+
+# Mailman/Commands/cmd_subscribe.py:83
+# Mailman/Commands/cmd_subscribe.py:84
+#: Mailman/Commands/cmd_subscribe.py:84
+msgid "No valid address found to subscribe"
+msgstr "Ingen giltig e-postadress för anmälan hittades"
+
+# Mailman/Commands/cmd_subscribe.py:92
+# Mailman/Commands/cmd_subscribe.py:102
+#: Mailman/Commands/cmd_subscribe.py:102
+msgid ""
+"The email address you supplied is banned from this mailing list.\n"
+"If you think this restriction is erroneous, please contact the list\n"
+"owners at %(listowner)s."
+msgstr ""
+"E-postadressen som du har angett är utestängd från denna e-postlista.\n"
+"Om du tror att detta kan vara felaktigt, kontakta listans ägare på %"
+"(listowner)s."
+
+# Mailman/Commands/cmd_subscribe.py:98
+# Mailman/Commands/cmd_subscribe.py:108
+#: Mailman/Commands/cmd_subscribe.py:108
+msgid ""
+"Mailman won't accept the given email address as a valid address.\n"
+"(E.g. it must have an @ in it.)"
+msgstr ""
+"Mailman accepterar inte den givna e-postadressen, eftersom den inte ser ut "
+"som en\n"
+"giltig e-postadress. (Den måste till exempel innehålla tecknet \"@\")"
+
+# Mailman/Commands/cmd_subscribe.py:103
+# Mailman/Commands/cmd_subscribe.py:113
+#: Mailman/Commands/cmd_subscribe.py:113
+msgid ""
+"Your subscription is not allowed because\n"
+"the email address you gave is insecure."
+msgstr ""
+"Din anmälan blev inte godkänd eftersom e-postadressen du angav inte är \n"
+"säker nog."
+
+# Mailman/Commands/cmd_subscribe.py:108
+# Mailman/Commands/cmd_subscribe.py:118
+#: Mailman/Commands/cmd_subscribe.py:118
+msgid "You are already subscribed!"
+msgstr "Du är redan medlem av listan!"
+
+# Mailman/Commands/cmd_subscribe.py:112
+# Mailman/Commands/cmd_subscribe.py:122
+#: Mailman/Commands/cmd_subscribe.py:122
+msgid "No one can subscribe to the digest of this list!"
+msgstr ""
+"Det är inte möjligt att få en sammandragsversion som medlem på denna lista!"
+
+# Mailman/Commands/cmd_subscribe.py:115
+# Mailman/Commands/cmd_subscribe.py:125
+#: Mailman/Commands/cmd_subscribe.py:125
+msgid "This list only supports digest subscriptions!"
+msgstr "Denna lista stöder bara sammandragsversioner!"
+
+# Mailman/Commands/cmd_subscribe.py:120
+# Mailman/Commands/cmd_subscribe.py:130
+#: Mailman/Commands/cmd_subscribe.py:131
+msgid ""
+"Your subscription request has been forwarded to the list administrator\n"
+"at %(listowner)s for review."
+msgstr ""
+"Din ansökan om att komma med på e-postlistan har skickats vidare till "
+"listadministratören\n"
+"%(listowner)s för godkännande."
+
+# Mailman/Commands/cmd_subscribe.py:125
+# Mailman/Commands/cmd_subscribe.py:135
+#: Mailman/Commands/cmd_subscribe.py:136
+msgid "Subscription request succeeded."
+msgstr "Ansökan om medlemskap har tagits emot"
+
+# Mailman/Commands/cmd_unsubscribe.py:17
+# Mailman/Commands/cmd_unsubscribe.py:17
+#: Mailman/Commands/cmd_unsubscribe.py:17
+msgid ""
+"\n"
+" unsubscribe [password] [address=<address>]\n"
+" Unsubscribe from the mailing list. If given, your password must "
+"match\n"
+" your current password. If omitted, a confirmation email will be "
+"sent\n"
+" to the unsubscribing address. If you wish to unsubscribe an address\n"
+" other than the address you sent this request from, you may specify\n"
+" `address=<address>' (no brackets around the email address, and no\n"
+" quotes!)\n"
+msgstr ""
+"\n"
+" unsubscribe [lösenord] [address=<e-postadress>]\n"
+" Avanmäl dig från listan. Om du inte anger lösenordet, kommer ett e-"
+"postbrev\n"
+" med bekräftelse på operationen att skickas till e-postadressen som "
+"du\n"
+" försöker att avanmäla. Om du skickar detta kommando från en annan\n"
+" e-postadress än den som ska avanmälas från listan, kan du ange den\n"
+" riktiga e-postadressen med 'address=<e-postadress>' parametern.\n"
+" (utan '<' och '>', och utan apostrofer!)\n"
+
+# Mailman/Commands/cmd_unsubscribe.py:62
+# Mailman/Commands/cmd_unsubscribe.py:62
+#: Mailman/Commands/cmd_unsubscribe.py:62
+msgid "%(address)s is not a member of the %(listname)s mailing list"
+msgstr "%(address)s är inte medlem av e-postlistan %(listname)s."
+
+# Mailman/Commands/cmd_unsubscribe.py:69
+# Mailman/Commands/cmd_unsubscribe.py:69
+#: Mailman/Commands/cmd_unsubscribe.py:69
+msgid ""
+"Your unsubscription request has been forwarded to the list administrator "
+"for\n"
+"approval."
+msgstr ""
+"Din ansökan om att bli avanmäld från e-postlistan måste godkännas\n"
+"och har blivit vidareskickad till listadministratören."
+
+# Mailman/Commands/cmd_unsubscribe.py:83
+# Mailman/Commands/cmd_unsubscribe.py:83
+#: Mailman/Commands/cmd_unsubscribe.py:84
+msgid "You gave the wrong password"
+msgstr "Du har uppgett fel lösenord"
+
+# Mailman/Commands/cmd_unsubscribe.py:86
+# Mailman/Commands/cmd_unsubscribe.py:86
+#: Mailman/Commands/cmd_unsubscribe.py:87
+msgid "Unsubscription request succeeded."
+msgstr "Ansökan om avanmälan har tagits emot"
+
+# Mailman/Commands/cmd_who.py:29
+# Mailman/Commands/cmd_who.py:29
+#: Mailman/Commands/cmd_who.py:29
+msgid ""
+"\n"
+" who\n"
+" See everyone who is on this mailing list.\n"
+msgstr ""
+"\n"
+" who\n"
+" Se en lista över vilka som är medlemmar av denna e-postlista.\n"
+
+# Mailman/Commands/cmd_who.py:34
+# Mailman/Commands/cmd_who.py:34
+#: Mailman/Commands/cmd_who.py:34
+msgid ""
+"\n"
+" who password [address=<address>]\n"
+" See everyone who is on this mailing list. The roster is limited to\n"
+" list members only, and you must supply your membership password to\n"
+" retrieve it. If you're posting from an address other than your\n"
+" membership address, specify your membership address with\n"
+" `address=<address>' (no brackets around the email address, and no\n"
+" quotes!)\n"
+msgstr ""
+"\n"
+" who lösenord [address=<e-postadress>]\n"
+" Visa en lista över vilka som är medlemmar av denna e-postlista. "
+"Listan\n"
+" över medlemmar kan bara ses av medlemmar av e-postlistan, så du "
+"måste\n"
+" ange ditt lösenord. Om du skickar detta kommando från en annan\n"
+" e-postadress än den som du är medlem av listan med, kan du ange den\n"
+" riktiga e-postadressen med 'address=<e-postadress>' parametern.\n"
+" (utan '<' och '>', och utan apostrofer!)\n"
+
+# Mailman/Commands/cmd_who.py:44
+# Mailman/Commands/cmd_who.py:44
+#: Mailman/Commands/cmd_who.py:44
+msgid ""
+"\n"
+" who password\n"
+" See everyone who is on this mailing list. The roster is limited to\n"
+" list administrators and moderators only; you must supply the list\n"
+" admin or moderator password to retrieve the roster.\n"
+msgstr ""
+"\n"
+" who lösenord\n"
+" Visa en lista över medlemmar på denna e-postlista. Listan över\n"
+" medlemmar är bara tillgänglig för listadministratörer och\n"
+" listmoderatorer, så du måste ange lösenordet för en av dem för att "
+"få se\n"
+" vilka som finns på e-postlistan.\n"
+
+# Mailman/Commands/cmd_who.py:110
+# Mailman/Commands/cmd_who.py:110
+#: Mailman/Commands/cmd_who.py:110
+msgid "You are not allowed to retrieve the list membership."
+msgstr ""
+"Du har inte tillgång till att se vilka som är medlemmar av denna e-postlista."
+
+# Mailman/Commands/cmd_who.py:116
+# Mailman/Commands/cmd_who.py:116
+#: Mailman/Commands/cmd_who.py:116
+msgid "This list has no members."
+msgstr "Denna e-postlista har inga medlemmar."
+
+# Mailman/Commands/cmd_who.py:129
+# Mailman/Commands/cmd_who.py:129
+#: Mailman/Commands/cmd_who.py:129
+msgid "Non-digest (regular) members:"
+msgstr "Medlemmar i normal version:"
+
+# Mailman/Commands/cmd_who.py:132
+# Mailman/Commands/cmd_who.py:132
+#: Mailman/Commands/cmd_who.py:132
+msgid "Digest members:"
+msgstr "Medlemmar i sammandragsversion:"
+
+# Mailman/Defaults.py:1159
+# Mailman/Defaults.py:1198
+#: Mailman/Defaults.py:1204
+msgid "Traditional Chinese"
+msgstr "Kinesiska (Traditional)"
+
+# Mailman/Defaults.py:1160
+# Mailman/Defaults.py:1199
+#: Mailman/Defaults.py:1205
+msgid "Czech"
+msgstr "Tjeckiska"
+
+# Mailman/Defaults.py:1161
+# Mailman/Defaults.py:1200
+#: Mailman/Defaults.py:1206
+msgid "German"
+msgstr "Tyska"
+
+# Mailman/Defaults.py:1162
+# Mailman/Defaults.py:1201
+#: Mailman/Defaults.py:1207
+msgid "English (USA)"
+msgstr "Engelska (USA)"
+
+# Mailman/Defaults.py:1163
+# Mailman/Defaults.py:1202
+#: Mailman/Defaults.py:1208
+msgid "Spanish (Spain)"
+msgstr "Spanska (Spanien)"
+
+# Mailman/Defaults.py:1203
+#: Mailman/Defaults.py:1209
+msgid "Estonian"
+msgstr "Estniska"
+
+# Mailman/Defaults.py:1164
+# Mailman/Defaults.py:1204
+#: Mailman/Defaults.py:1210
+msgid "Finnish"
+msgstr "Finska"
+
+# Mailman/Defaults.py:1165
+# Mailman/Defaults.py:1205
+#: Mailman/Defaults.py:1211
+msgid "French"
+msgstr "Franska"
+
+# Mailman/Defaults.py:1166
+# Mailman/Defaults.py:1206
+#: Mailman/Defaults.py:1212
+msgid "Simplified Chinese"
+msgstr "Kinesiska (Simplified)"
+
+# Mailman/Defaults.py:1167
+# Mailman/Defaults.py:1207
+#: Mailman/Defaults.py:1213
+msgid "Hungarian"
+msgstr "Ungerska"
+
+# Mailman/Defaults.py:1168
+# Mailman/Defaults.py:1208
+#: Mailman/Defaults.py:1214
+msgid "Italian"
+msgstr "Italienska"
+
+# Mailman/Defaults.py:1169
+# Mailman/Defaults.py:1209
+#: Mailman/Defaults.py:1215
+msgid "Japanese"
+msgstr "Japanska"
+
+# Mailman/Defaults.py:1170
+# Mailman/Defaults.py:1210
+#: Mailman/Defaults.py:1216
+msgid "Korean"
+msgstr "Koreanska"
+
+#: Mailman/Defaults.py:1217
+msgid "Lithuanian"
+msgstr ""
+
+# Mailman/Defaults.py:1211
+#: Mailman/Defaults.py:1218
+msgid "Dutch"
+msgstr "Holländska"
+
+# Mailman/Defaults.py:1171
+# Mailman/Defaults.py:1212
+#: Mailman/Defaults.py:1219
+msgid "Norwegian"
+msgstr "Norska"
+
+# Mailman/Defaults.py:1213
+#: Mailman/Defaults.py:1220
+msgid "Portuguese (Brazil)"
+msgstr "Portugisiska (Brasilien)"
+
+# Mailman/Defaults.py:1172
+# Mailman/Defaults.py:1214
+#: Mailman/Defaults.py:1221
+msgid "Russian"
+msgstr "Ryska"
+
+# Mailman/Defaults.py:1215
+#: Mailman/Defaults.py:1222
+msgid "Swedish"
+msgstr "Svenska"
+
+# Mailman/Deliverer.py:42
+# Mailman/Deliverer.py:43
+#: Mailman/Deliverer.py:43
+msgid ""
+"Note: Since this is a list of mailing lists, administrative\n"
+"notices like the password reminder will be sent to\n"
+"your membership administrative address, %(addr)s."
+msgstr ""
+"Observera: Eftersom detta är en lista som innehåller flera e-postlistor, "
+"kommer administrativa meddelanden,\n"
+"som till exempel påminnelser om lösenord, att skickas till den "
+"administrativa adressen %(addr)s."
+
+# Mailman/Deliverer.py:61
+# Mailman/Deliverer.py:62
+#: Mailman/Deliverer.py:62
+msgid " (Digest mode)"
+msgstr " (Sammandragsversion)"
+
+# Mailman/Deliverer.py:67
+# Mailman/Deliverer.py:68
+#: Mailman/Deliverer.py:68
+msgid "Welcome to the \"%(realname)s\" mailing list%(digmode)s"
+msgstr "Välkommen till e-postlistan \"%(realname)s\"%(digmode)s"
+
+# Mailman/Deliverer.py:76
+# Mailman/Deliverer.py:77
+#: Mailman/Deliverer.py:77
+msgid "You have been unsubscribed from the %(realname)s mailing list"
+msgstr "Du är nu borttagen från e-postlistan \"%(realname)s\""
+
+# Mailman/Deliverer.py:103
+# Mailman/Deliverer.py:104
+#: Mailman/Deliverer.py:104
+msgid "%(listfullname)s mailing list reminder"
+msgstr "Påminnelse från e-postlistan %(listfullname)s"
+
+# Mailman/Errors.py:115
+# Mailman/Errors.py:116
+#: Mailman/Errors.py:114
+msgid "For some unknown reason"
+msgstr "Av okänd anledning"
+
+# Mailman/Errors.py:121 Mailman/Errors.py:144
+# Mailman/Errors.py:122 Mailman/Errors.py:145
+#: Mailman/Errors.py:120 Mailman/Errors.py:143
+msgid "Your message was rejected"
+msgstr "Din anmälan blev inte godkänd "
+
+# Mailman/Gui/Archive.py:25
+# Mailman/Gui/Archive.py:25
+#: Mailman/Gui/Archive.py:25
+msgid "Archiving Options"
+msgstr "Inställningar för arkivering"
+
+# Mailman/Gui/Archive.py:31
+# Mailman/Gui/Archive.py:31
+#: Mailman/Gui/Archive.py:31
+msgid "List traffic archival policies."
+msgstr "Regler för arkivering"
+
+# Mailman/Gui/Archive.py:34
+# Mailman/Gui/Archive.py:34
+#: Mailman/Gui/Archive.py:34
+msgid "Archive messages?"
+msgstr "Arkivera e-postbrev i ett arkiv?"
+
+# Mailman/Gui/Archive.py:36
+# Mailman/Gui/Archive.py:36
+#: Mailman/Gui/Archive.py:36
+msgid "private"
+msgstr "privat"
+
+# Mailman/Gui/Archive.py:36
+# Mailman/Gui/Archive.py:36
+#: Mailman/Gui/Archive.py:36
+msgid "public"
+msgstr "offentligt"
+
+# Mailman/Gui/Archive.py:37
+# Mailman/Gui/Archive.py:37
+#: Mailman/Gui/Archive.py:37
+msgid "Is archive file source for public or private archival?"
+msgstr "Ska filen arkiveras i ett privat eller i ett offentligt arkiv?"
+
+# Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+# Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Monthly"
+msgstr "Månadsvis"
+
+# Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+# Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Quarterly"
+msgstr "Kvartalsvis"
+
+# Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+# Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+#: Mailman/Gui/Archive.py:40 Mailman/Gui/Digest.py:78
+msgid "Yearly"
+msgstr "Årsvis"
+
+# Mailman/Gui/Archive.py:41 Mailman/Gui/Digest.py:79
+# Mailman/Gui/Archive.py:41 Mailman/Gui/Digest.py:79
+#: Mailman/Gui/Archive.py:41 Mailman/Gui/Digest.py:79
+msgid "Daily"
+msgstr "Dagligen"
+
+# Mailman/Gui/Archive.py:41 Mailman/Gui/Digest.py:79
+# Mailman/Gui/Archive.py:41 Mailman/Gui/Digest.py:79
+#: Mailman/Gui/Archive.py:41 Mailman/Gui/Digest.py:79
+msgid "Weekly"
+msgstr "Veckovis"
+
+# Mailman/Gui/Archive.py:43
+# Mailman/Gui/Archive.py:43
+#: Mailman/Gui/Archive.py:43
+msgid "How often should a new archive volume be started?"
+msgstr "Hur ofta ska en ny arkivvolym startas?"
+
+# Mailman/Gui/Autoresponse.py:31
+# Mailman/Gui/Autoresponse.py:31
+#: Mailman/Gui/Autoresponse.py:31
+msgid "Auto-responder"
+msgstr "Automatiska svar"
+
+# Mailman/Gui/Autoresponse.py:39
+# Mailman/Gui/Autoresponse.py:39
+#: Mailman/Gui/Autoresponse.py:39
+msgid ""
+"Auto-responder characteristics.<p>\n"
+"\n"
+"In the text fields below, string interpolation is performed with\n"
+"the following key/value substitutions:\n"
+"<p><ul>\n"
+" <li><b>listname</b> - <em>gets the name of the mailing list</em>\n"
+" <li><b>listurl</b> - <em>gets the list's listinfo URL</em>\n"
+" <li><b>requestemail</b> - <em>gets the list's -request address</em>\n"
+" <li><b>owneremail</b> - <em>gets the list's -owner address</em>\n"
+"</ul>\n"
+"\n"
+"<p>For each text field, you can either enter the text directly into the "
+"text\n"
+"box, or you can specify a file on your local system to upload as the text."
+msgstr ""
+"Inställningar för automatiska svar.<p>\n"
+"\n"
+"I textrutorna nedan kan du använda följande variabler (skriv dem så här: %%"
+"(&lt;variabelnamn&gt;)s ) för att sätta in önskad information:\n"
+"<p><ul>\n"
+" <li><b>listname</b> - <em>namnet på listan</em>\n"
+" <li><b>listurl</b> - <em>URL till listans webbsida</em>\n"
+" <li><b>requestemail</b> - <em>listans -request e-postadress</em>\n"
+" <li><b>owneremail</b> - <em>listans -owner e-postadress</em>\n"
+"</ul>\n"
+"\n"
+"<p>Du kan antingen skriva texten direkt in i textrutorna, eller\n"
+"ange namnet på en fil från ditt lokala filsystem som innehåller texten."
+
+# Mailman/Gui/Autoresponse.py:56
+# Mailman/Gui/Autoresponse.py:55
+#: Mailman/Gui/Autoresponse.py:55
+msgid ""
+"Should Mailman send an auto-response to mailing list\n"
+" posters?"
+msgstr ""
+"Ska Mailman skicka ett automatiskt svar till dem som skickar\n"
+" e-postbrev till listan?"
+
+# Mailman/Gui/Autoresponse.py:61
+# Mailman/Gui/Autoresponse.py:60
+#: Mailman/Gui/Autoresponse.py:60
+msgid "Auto-response text to send to mailing list posters."
+msgstr "Automatiskt svar som ska skickas."
+
+# Mailman/Gui/Autoresponse.py:64
+# Mailman/Gui/Autoresponse.py:63
+#: Mailman/Gui/Autoresponse.py:63
+#, fuzzy
+msgid ""
+"Should Mailman send an auto-response to emails sent to the\n"
+" -owner address?"
+msgstr ""
+"Ska Mailman skicka ett automatiskt svar på sådana e-postbrev som sänds till "
+"ägarens e-postadress?"
+
+# Mailman/Gui/Autoresponse.py:80
+# Mailman/Gui/Autoresponse.py:68
+#: Mailman/Gui/Autoresponse.py:68
+#, fuzzy
+msgid "Auto-response text to send to -owner emails."
+msgstr "Automatiskt brevsvar på e-postbrev till ägarens e-postadress."
+
+# Mailman/Gui/Autoresponse.py:72
+# Mailman/Gui/Autoresponse.py:71
+#: Mailman/Gui/Autoresponse.py:71
+msgid "Yes, w/discard"
+msgstr "Ja, men utan originalbrevet"
+
+# Mailman/Gui/Autoresponse.py:72
+# Mailman/Gui/Autoresponse.py:71
+#: Mailman/Gui/Autoresponse.py:71
+msgid "Yes, w/forward"
+msgstr "Ja, och ta med originalbrevet"
+
+# Mailman/Gui/Autoresponse.py:73
+# Mailman/Gui/Autoresponse.py:72
+#: Mailman/Gui/Autoresponse.py:72
+msgid ""
+"Should Mailman send an auto-response to emails sent to the\n"
+" -request address? If you choose yes, decide whether you want\n"
+" Mailman to discard the original email, or forward it on to the\n"
+" system as a normal mail command."
+msgstr ""
+"Ska Mailman skicka ett automatiskt svar på e-postbrev som skickas till -"
+"request\n"
+" adressen? Om du väljer ja, kan du även välja om e-posten\n"
+" som skickades till -requestadressen också ska vara med i\n"
+" det automatiska svaret."
+
+# Mailman/Gui/Autoresponse.py:80
+# Mailman/Gui/Autoresponse.py:79
+#: Mailman/Gui/Autoresponse.py:79
+msgid "Auto-response text to send to -request emails."
+msgstr "Automatiskt svar på e-postbrev till -requestadressen."
+
+# Mailman/Gui/Autoresponse.py:83
+# Mailman/Gui/Autoresponse.py:82
+#: Mailman/Gui/Autoresponse.py:82
+#, fuzzy
+msgid ""
+"Number of days between auto-responses to either the mailing\n"
+" list or -request/-owner address from the same poster. Set to\n"
+" zero (or negative) for no grace period (i.e. auto-respond to\n"
+" every message)."
+msgstr ""
+"Antal dagar mellan automatiska svar på e-postbrev från samma avsändare, till "
+"antingen listan eller\n"
+" -request/-ägaradresserna. Sätt detta värde till 0 (eller ett "
+"negativt tal)\n"
+" för att skicka automatiskt svar på varje meddelande."
+
+# Mailman/Gui/Bounce.py:26
+# Mailman/Gui/Bounce.py:26
+#: Mailman/Gui/Bounce.py:26
+msgid "Bounce processing"
+msgstr "Behandling av returmeddelanden"
+
+# Mailman/Gui/Bounce.py:32
+# Mailman/Gui/Bounce.py:32
+#: Mailman/Gui/Bounce.py:32
+msgid ""
+"These policies control the automatic bounce processing system\n"
+" in Mailman. Here's an overview of how it works.\n"
+"\n"
+" <p>When a bounce is received, Mailman tries to extract two "
+"pieces\n"
+" of information from the message: the address of the member the\n"
+" message was intended for, and the severity of the problem "
+"causing\n"
+" the bounce. The severity can be either <em>hard</em> or\n"
+" <em>soft</em> meaning either a fatal error occurred, or a\n"
+" transient error occurred. When in doubt, a hard severity is "
+"used.\n"
+"\n"
+" <p>If no member address can be extracted from the bounce, then "
+"the\n"
+" bounce is usually discarded. Otherwise, each member is assigned "
+"a\n"
+" <em>bounce score</em> and every time we encounter a bounce from\n"
+" this member we increment the score. Hard bounces increment by "
+"1\n"
+" while soft bounces increment by 0.5. We only increment the "
+"bounce\n"
+" score once per day, so even if we receive ten hard bounces from "
+"a\n"
+" member per day, their score will increase by only 1 for that "
+"day.\n"
+"\n"
+" <p>When a member's bounce score is greater than the\n"
+" <a href=\"?VARHELP=bounce/bounce_score_threshold\">bounce score\n"
+" threshold</a>, the subscription is disabled. Once disabled, "
+"the\n"
+" member will not receive any postings from the list until their\n"
+" membership is explicitly re-enabled (either by the list\n"
+" administrator or the user). However, they will receive "
+"occasional\n"
+" reminders that their membership has been disabled, and these\n"
+" reminders will include information about how to re-enable their\n"
+" membership.\n"
+"\n"
+" <p>You can control both the\n"
+" <a href=\"?VARHELP=bounce/bounce_you_are_disabled_warnings"
+"\">number\n"
+" of reminders</a> the member will receive and the\n"
+" <a href=\"?VARHELP=bounce/"
+"bounce_you_are_disabled_warnings_interval\"\n"
+" >frequency</a> with which these reminders are sent.\n"
+"\n"
+" <p>There is one other important configuration variable; after a\n"
+" certain period of time -- during which no bounces from the "
+"member\n"
+" are received -- the bounce information is\n"
+" <a href=\"?VARHELP=bounce/bounce_info_stale_after\">considered\n"
+" stale</a> and discarded. Thus by adjusting this value, and the\n"
+" score threshold, you can control how quickly bouncing members "
+"are\n"
+" disabled. You should tune both of these to the frequency and\n"
+" traffic volume of your list."
+msgstr ""
+"Dessa regler bestämmer hur automatisk behandling av returmeddelanden görs.\n"
+"Här är en översikt över hur det fungerar.\n"
+"\n"
+"<p>När Mailman tar emot ett returmeddelande, görs försök att tolka två "
+"saker.\n"
+"Det ena är e-postadressen till medlemmen som egentligen skulle ta emot e-"
+"postbrevet,\n"
+"och det andra är orsaken till problemet. Orsaken tolkas till att vara "
+"<em>allvarlig</em>\n"
+"eller <em>mindre allvarlig</em> beroende på om orsaken är av kritisk eller "
+"av mindre kritisk art.\n"
+"Om det finns tvivel, tolkas orsaken som allvarlig.\n"
+"\n"
+"<p>Om ingen e-postadress kan plockas fram ur meddelandet, blir det "
+"vanligtvis kastat.\n"
+"Annars kommer medlemmen som har den e-postadressen, att få ett <em>returtal</"
+"em>, och varje\n"
+"gång ett returmeddelande kommer så kommer talet att öka. Allvarliga orsaker "
+"leder till att talet ökas\n"
+"med 1, mindre allvarliga orsaker leder till att det ökas med 0.5. Detta "
+"händer bara en gång per dag,\n"
+"så även om det kommer 10 allvarliga returmeddelanden från en medlem på en "
+"dag, kommer\n"
+"talet bara att öka med 1.\n"
+"\n"
+"<p>När returtalet för en medlem når en viss <a href=\"?VARHELP=bounce/"
+"bounce_score_threshold\">gräns</a>,\n"
+"stoppas distributionen till medlemmen. Därmed kommer medlemmen inte att ta "
+"emot e-post från listan förrän\n"
+"distributionen aktiveras igen. Medlemmen kommer med jämna mellanrum att få "
+"ta emot meddelanden om att detta\n"
+"har hänt, och vad han/hon måste göra för att få e-postbrev från listan "
+"igen.\n"
+"\n"
+"<p>Du kan bestämma <a href=\"?VARHELP=bounce/bounce_you_are_disabled_warnings"
+"\">hur många varningar</a>\n"
+"som medlemmen ska få och <a href=\"?VARHELP=bounce/"
+"bounce_you_are_disabled_warnings_interval\">hur ofta</a>\n"
+"han/hon ska ta emot sådana varningar.\n"
+"\n"
+"<p>Det finns en viktig inställning till; efter en viss tid -- om inga "
+"returmeddelanden dyker upp\n"
+"inom denna tid -- anses returinformationen som <a href=\"?VARHELP=bounce/"
+"bounce_info_stale_after\">utgången</a>\n"
+"och kastas. Genom att justera detta värde och sätta en gräns för returtalet, "
+"kan du bestämma hur lång tid det ska\n"
+"ta innan distributionen till en medlem stoppas. Båda dessa värden måste du "
+"justera allt efter hur ofta och hur många\n"
+"e-postbrev som skickas till din lista."
+
+# Mailman/Gui/Bounce.py:75
+# Mailman/Gui/Bounce.py:75
+#: Mailman/Gui/Bounce.py:75
+msgid "Bounce detection sensitivity"
+msgstr "Följsamhet"
+
+# Mailman/Gui/Bounce.py:78
+# Mailman/Gui/Bounce.py:78
+#: Mailman/Gui/Bounce.py:78
+msgid "Should Mailman perform automatic bounce processing?"
+msgstr "Ska Mailman automatiskt ta sig an returmeddelanden?"
+
+# Mailman/Gui/Bounce.py:79
+# Mailman/Gui/Bounce.py:79
+#: Mailman/Gui/Bounce.py:79
+msgid ""
+"By setting this value to <em>No</em>, you disable all\n"
+" automatic bounce processing for this list, however bounce\n"
+" messages will still be discarded so that the list "
+"administrator\n"
+" isn't inundated with them."
+msgstr ""
+"Genom att sätta detta värde till <em>Nej</em>, avaktiverar du all automatisk "
+"tolkning av returmeddelanden för denna lista.\n"
+"Observera att sådana meddelanden i alla fall kommer att förkastas så att "
+"listadministratören inte behöver bli plågad med dem."
+
+# Mailman/Gui/Bounce.py:85
+# Mailman/Gui/Bounce.py:85
+#: Mailman/Gui/Bounce.py:85
+msgid ""
+"The maximum member bounce score before the member's\n"
+" subscription is disabled. This value can be a floating point\n"
+" number."
+msgstr ""
+"Returtalgräns för när Mailman stoppar distribution till en medlem.\n"
+"Detta tal kan vara ett flyttal (ett tal med decimaler)."
+
+# Mailman/Gui/Bounce.py:90
+# Mailman/Gui/Bounce.py:90
+#: Mailman/Gui/Bounce.py:90
+msgid ""
+"The number of days after which a member's bounce information\n"
+" is discarded, if no new bounces have been received in the\n"
+" interim. This value must be an integer."
+msgstr ""
+"Antal dagar innan returinformation förkastas om inga fler returmeddelanden "
+"dyker upp.\n"
+"Detta tal måste vara ett heltal."
+
+# Mailman/Gui/Bounce.py:95
+# Mailman/Gui/Bounce.py:95
+#: Mailman/Gui/Bounce.py:95
+msgid ""
+"How many <em>Your Membership Is Disabled</em> warnings a\n"
+" disabled member should get before their address is removed "
+"from\n"
+" the mailing list. Set to 0 to immediately remove an address "
+"from\n"
+" the list once their bounce score exceeds the threshold. This\n"
+" value must be an integer."
+msgstr ""
+"Hur många varningar om <em>Ditt medlemskap avslutas</em> som ska skickas "
+"till en medlem innan avanmälan från listan sker.\n"
+"Sätt detta värde till 0 för att ta bort en medlem från listan omedelbart om "
+"det kommer returmeddelanden från medlemmens e-postadress.\n"
+"Detta tal måste vara ett heltal."
+
+# Mailman/Gui/Bounce.py:102
+# Mailman/Gui/Bounce.py:102
+#: Mailman/Gui/Bounce.py:102
+msgid ""
+"The number of days between sending the <em>Your Membership\n"
+" Is Disabled</em> warnings. This value must be an integer."
+msgstr ""
+"Antal dagar mellan utskick av varningarna <em>Ditt medlemskap avslutas</"
+"em>.\n"
+"Detta tal måste vara ett heltal."
+
+# Mailman/Gui/Bounce.py:105 Mailman/Gui/General.py:253
+# Mailman/Gui/Bounce.py:105 Mailman/Gui/General.py:257
+#: Mailman/Gui/Bounce.py:105 Mailman/Gui/General.py:257
+msgid "Notifications"
+msgstr "Meddelanden"
+
+# Mailman/Gui/Bounce.py:109
+# Mailman/Gui/Bounce.py:109
+#: Mailman/Gui/Bounce.py:109
+msgid ""
+"Should Mailman send you, the list owner, any bounce messages\n"
+" that failed to be detected by the bounce processor? <em>Yes</"
+"em>\n"
+" is recommended."
+msgstr ""
+"Ska Mailman skicka returmeddelanden, som inte kändes igen av den automatiska "
+"returhanteringen, till dig, ägaren av listan? <em>Ja</em> rekommenderas."
+
+# Mailman/Gui/Bounce.py:112
+# Mailman/Gui/Bounce.py:112
+#: Mailman/Gui/Bounce.py:112
+msgid ""
+"While Mailman's bounce detector is fairly robust, it's\n"
+" impossible to detect every bounce format in the world. You\n"
+" should keep this variable set to <em>Yes</em> for two reasons: "
+"1)\n"
+" If this really is a permanent bounce from one of your members,\n"
+" you should probably manually remove them from your list, and "
+"2)\n"
+" you might want to send the message on to the Mailman "
+"developers\n"
+" so that this new format can be added to its known set.\n"
+"\n"
+" <p>If you really can't be bothered, then set this variable to\n"
+" <em>No</em> and all non-detected bounces will be discarded\n"
+" without further processing.\n"
+"\n"
+" <p><b>Note:</b> This setting will also affect all messages "
+"sent\n"
+" to your list's -admin address. This address is deprecated and\n"
+" should never be used, but some people may still send mail to "
+"this\n"
+" address. If this happens, and this variable is set to\n"
+" <em>No</em> those messages too will get discarded. You may "
+"want\n"
+" to set up an\n"
+" <a href=\"?VARHELP=autoreply/autoresponse_admin_text"
+"\">autoresponse\n"
+" message</a> for email to the -owner and -admin address."
+msgstr ""
+"Mailmans automatiska returhantering är mycket robust, men det är ändå "
+"omöjligt att känna igen alla returmeddelanden som finns.\n"
+"Du bör ange <em>Ja</em> här, av två anledningar:\n"
+"1) Om det verkligen är ett permanent returmeddelande från en medlem på "
+"listan, bör du antagligen avanmäla medlemmen manuellt, och\n"
+"2) du vill kanske skicka meddelandet till utvecklarna av Mailman så att "
+"returmeddelandet automatiskt kan kännas igen av Mailman.\n"
+"<p>Om du inte vill något av delarna, sätt denna inställning till <em>Nej</"
+"em>.\n"
+"Då kommer alla returmeddelanden att förkastas automatiskt utan vidare "
+"behandling.\n"
+"<p><b>Observera:</b> Denna inställning kommer också att inverka på alla e-"
+"postbrev som skickas till listans adminstratörsadress.\n"
+"Adressen är gammal och har utgått, men det kan vara någon som fortsätter att "
+"skicka e-postbrev till den.\n"
+"Om någon gör det, och du har satt denna inställning till <em>Nej</em>, "
+"kommer de meddelandena också att förkastas.\n"
+"Kanske vill du också sätta upp ett <a href=\"?VARHELP=autoreply/"
+"autoresponse_admin_text\">automatiskt svar</a> på e-postbrev som skickas "
+"till ägar- och administratörsadresserna."
+
+# Mailman/Gui/Bounce.py:135
+# Mailman/Gui/Bounce.py:135
+#: Mailman/Gui/Bounce.py:135
+msgid ""
+"Should Mailman notify you, the list owner, when bounces\n"
+" cause a member's subscription to be disabled?"
+msgstr ""
+"Ska Mailman ge dig, ägare till listan, besked när returmeddelanden orsakar "
+"att en medlem slutar att ta emot e-postbrev?"
+
+# Mailman/Gui/Bounce.py:137
+# Mailman/Gui/Bounce.py:137
+#: Mailman/Gui/Bounce.py:137
+msgid ""
+"By setting this value to <em>No</em>, you turn off\n"
+" notification messages that are normally sent to the list "
+"owners\n"
+" when a member's delivery is disabled due to excessive bounces.\n"
+" An attempt to notify the member will always be made."
+msgstr ""
+"Genom att sätta detta till <em>Nej</em>, avaktiverar du beskeden som "
+"vanligtvis skickas till ägaren av listan,\n"
+"när utskick av e-postbrev till en medlem stoppas på grund av för många "
+"returmeddelanden.\n"
+"Ett försök att ge medlemmen besked görs alltid."
+
+# Mailman/Gui/Bounce.py:144
+# Mailman/Gui/Bounce.py:144
+#: Mailman/Gui/Bounce.py:144
+msgid ""
+"Should Mailman notify you, the list owner, when bounces\n"
+" cause a member to be unsubscribed?"
+msgstr ""
+"Ska Mailman ge dig, ägare till listan, besked när returmeddelanden leder "
+"till att en medlem avanmäls från listan?"
+
+# Mailman/Gui/Bounce.py:146
+# Mailman/Gui/Bounce.py:146
+#: Mailman/Gui/Bounce.py:146
+msgid ""
+"By setting this value to <em>No</em>, you turn off\n"
+" notification messages that are normally sent to the list "
+"owners\n"
+" when a member is unsubscribed due to excessive bounces. An\n"
+" attempt to notify the member will always be made."
+msgstr ""
+"Genom att sätta detta till <em>Nej</em>, avaktiverar du beskedet som "
+"vanligtvis skickas till ägaren av listan,\n"
+"när en medlem avanmäls från listan på grund av för många returmeddelanden.\n"
+"Ett försök att ge medlemmen besked görs alltid."
+
+# Mailman/Gui/Bounce.py:173
+# Mailman/Gui/Bounce.py:173
+#: Mailman/Gui/Bounce.py:173
+msgid ""
+"Bad value for <a href=\"?VARHELP=bounce/%(property)s\"\n"
+" >%(property)s</a>: %(val)s"
+msgstr ""
+"Ogiltigt värde för <a href=\"?VARHELP=bounce/%(property)s\">%(property)s</"
+"a>: %(val)s"
+
+# Mailman/Gui/ContentFilter.py:30
+# Mailman/Gui/ContentFilter.py:30
+#: Mailman/Gui/ContentFilter.py:30
+msgid "Content&nbsp;filtering"
+msgstr "Filtrering&nbsp;på&nbsp;innehåll"
+
+# Mailman/Gui/ContentFilter.py:37
+#: Mailman/Gui/ContentFilter.py:37
+msgid "Forward to List Owner"
+msgstr "Sänd vidare till listans ägare"
+
+# Mailman/Gui/ContentFilter.py:39
+#: Mailman/Gui/ContentFilter.py:39
+msgid "Preserve"
+msgstr "Bevara"
+
+# Mailman/Gui/ContentFilter.py:42
+#: Mailman/Gui/ContentFilter.py:42
+msgid ""
+"Policies concerning the content of list traffic.\n"
+"\n"
+" <p>Content filtering works like this: when a message is\n"
+" received by the list and you have enabled content filtering, "
+"the\n"
+" individual attachments are first compared to the\n"
+" <a href=\"?VARHELP=contentfilter/filter_mime_types\">filter\n"
+" types</a>. If the attachment type matches an entry in the "
+"filter\n"
+" types, it is discarded.\n"
+"\n"
+" <p>Then, if there are <a\n"
+" href=\"?VARHELP=contentfilter/pass_mime_types\">pass types</a>\n"
+" defined, any attachment type that does <em>not</em> match a\n"
+" pass type is also discarded. If there are no pass types "
+"defined,\n"
+" this check is skipped.\n"
+"\n"
+" <p>After this initial filtering, any <tt>multipart</tt>\n"
+" attachments that are empty are removed. If the outer message "
+"is\n"
+" left empty after this filtering, then the whole message is\n"
+" discarded. Then, each <tt>multipart/alternative</tt> section "
+"will\n"
+" be replaced by just the first alternative that is non-empty "
+"after\n"
+" filtering.\n"
+"\n"
+" <p>Finally, any <tt>text/html</tt> parts that are left in the\n"
+" message may be converted to <tt>text/plain</tt> if\n"
+" <a href=\"?VARHELP=contentfilter/convert_html_to_plaintext\"\n"
+" >convert_html_to_plaintext</a> is enabled and the site is\n"
+" configured to allow these conversions."
+msgstr ""
+"Riktlinjer avseende innehållet i listans trafik.\n"
+"\n"
+" <p>Innehållsfiltrering fungerar så här: när listan tar emot ett "
+"e-postbrev\n"
+" och du har aktiverat innehållsfiltrering, jämförs\n"
+" först de eventuella bilagorna med \n"
+" <a href=\"?VARHELP=contentfilter/filter_mime_types\">MIME-"
+"filter</a>.\n"
+" Om en bilagas typ matchar något av dessa filter\n"
+" kastas bilagan.\n"
+"\n"
+" <p>Därefter jämförs eventuella bilagor med <a\n"
+" href=\"?VARHELP=contentfilter/pass_mime_types\">giltiga MIME-"
+"typer</a>,\n"
+" om det finns sådana definierade. Alla bilagor som <em>inte</em> "
+"matchar a\n"
+" någon av de angivna MIME-typerna kastas. Om det inte finns några "
+"MIME-typer definierade,\n"
+" görs inte denna kontroll.\n"
+"\n"
+" <p>Efter denna inledande filtrering tas alla tomma "
+"<tt>multipart</tt>\n"
+" -bilagor bort. Om själva meddelandet som återstår är\n"
+" tomt efter denna filtrering, kastas hela meddelandet.\n"
+" Sedan kommer varje <tt>multipart/alternative</tt> bilaga att\n"
+" ersättas av det första alternativ som inte är tomt.\n"
+"\n"
+" <p>Till sist, kommer alla <tt>text/html</tt> delar som är kvar i "
+"meddelandet\n"
+" att konverteras till <tt>text/plain</tt> om\n"
+" <a href=\"?VARHELP=contentfilter/convert_html_to_plaintext\"\n"
+" >convert_html_to_plaintext</a> är aktiverat och servern har\n"
+" konfigurerats för att tillåta detta."
+
+# Mailman/Gui/ContentFilter.py:41
+# Mailman/Gui/ContentFilter.py:71
+#: Mailman/Gui/ContentFilter.py:71
+msgid ""
+"Should Mailman filter the content of list traffic according\n"
+" to the settings below?"
+msgstr ""
+"Ska Mailman filtrera innehållet i e-postbrev, skickade till listan, som "
+"anges nedan?"
+
+# Mailman/Gui/ContentFilter.py:45
+# Mailman/Gui/ContentFilter.py:75
+#: Mailman/Gui/ContentFilter.py:75
+#, fuzzy
+msgid ""
+"Remove message attachments that have a matching content\n"
+" type."
+msgstr "Ta bort meddelandebilagor som har en matchande innehållstyp."
+
+# Mailman/Gui/ContentFilter.py:78
+#: Mailman/Gui/ContentFilter.py:78
+msgid ""
+"Use this option to remove each message attachment that\n"
+" matches one of these content types. Each line should contain "
+"a\n"
+" string naming a MIME <tt>type/subtype</tt>,\n"
+" e.g. <tt>image/gif</tt>. Leave off the subtype to remove all\n"
+" parts with a matching major content type, e.g. <tt>image</tt>.\n"
+"\n"
+" <p>Blank lines are ignored.\n"
+"\n"
+" <p>See also <a href=\"?VARHELP=contentfilter/pass_mime_types\"\n"
+" >pass_mime_types</a> for a content type whitelist."
+msgstr ""
+"Använd denna inställning för att ta bort varje meddelandebilaga som\n"
+" matchar någon av dessa innehållstyper. Varje rad bör innehålla "
+"en\n"
+" sträng som anger en MIME <tt>type/subtype</tt>,\n"
+" t ex <tt>image/gif</tt>. Aktivera inte subtypen om du vill ta "
+"bort\n"
+" alla delar med en matchande huvudtyp, t ex <tt>image</tt>.\n"
+"\n"
+" <p>Tomma rader ignoreras.\n"
+"\n"
+" <p>Se även <a href=\"?VARHELP=contentfilter/pass_mime_types\"\n"
+" >pass_mime_types</a> för en lista på godkända innehållstyper."
+
+# Mailman/Gui/ContentFilter.py:90
+#: Mailman/Gui/ContentFilter.py:90
+msgid ""
+"Remove message attachments that don't have a matching\n"
+" content type. Leave this field blank to skip this filter\n"
+" test."
+msgstr ""
+"Ta bort meddelandebilagor som inte har en matchande innehållstyp.\n"
+" Lämna detta fält tomt för att hoppa över test av filter."
+
+# Mailman/Gui/ContentFilter.py:94
+#: Mailman/Gui/ContentFilter.py:94
+msgid ""
+"Use this option to remove each message attachment that does\n"
+" not have a matching content type. Requirements and formats "
+"are\n"
+" exactly like <a href=\"?VARHELP=contentfilter/filter_mime_types"
+"\"\n"
+" >filter_mime_types</a>.\n"
+"\n"
+" <p><b>Note:</b> if you add entries to this list but don't add\n"
+" <tt>multipart</tt> to this list, any messages with attachments\n"
+" will be rejected by the pass filter."
+msgstr ""
+"Använd denna inställning för att ta bort alla meddelandebilagor som inte\n"
+" har en matchande innehållstyp. Krav och format är\n"
+" precis desamma som gäller för <a href=\"?VARHELP=contentfilter/"
+"filter_mime_types\"\n"
+" >filter_mime_typer</a>.\n"
+"\n"
+" <p><b>Observera:</b> om du gör tillägg till denna lista utan "
+"att lägga till\n"
+" <tt>multipart</tt> kommer alla meddelanden med bilagor\n"
+" att förkastas av filtret."
+
+# Mailman/Gui/ContentFilter.py:65
+# Mailman/Gui/ContentFilter.py:104
+#: Mailman/Gui/ContentFilter.py:104
+msgid ""
+"Should Mailman convert <tt>text/html</tt> parts to plain\n"
+" text? This conversion happens after MIME attachments have "
+"been\n"
+" stripped."
+msgstr ""
+"Ska Mailman konvertera <tt>text/html</tt> delar till ren text?\n"
+"Denna konvertering kommer att ske efter det att MIME-filtret har tagit bort\n"
+"önskade delar."
+
+# Mailman/Gui/Privacy.py:207
+# Mailman/Gui/ContentFilter.py:110
+#: Mailman/Gui/ContentFilter.py:110
+#, fuzzy
+msgid ""
+"Action to take when a message matches the content filtering\n"
+" rules."
+msgstr "Vad som händer när ett meddelande matchar innehållsfiltreringen."
+
+# Mailman/Gui/ContentFilter.py:113
+#: Mailman/Gui/ContentFilter.py:113
+msgid ""
+"One of these actions is take when the message matches one of\n"
+" the content filtering rules, meaning, the top-level\n"
+" content type matches one of the <a\n"
+" href=\"?VARHELP=contentfilter/filter_mime_types\"\n"
+" >filter_mime_types</a>, or the top-level content type does\n"
+" <strong>not</strong> match one of the\n"
+" <a href=\"?VARHELP=contentfilter/pass_mime_types\"\n"
+" >pass_mime_types</a>, or if after filtering the subparts of "
+"the\n"
+" message, the message ends up empty.\n"
+"\n"
+" <p>Note this action is not taken if after filtering the "
+"message\n"
+" still contains content. In that case the message is always\n"
+" forwarded on to the list membership.\n"
+"\n"
+" <p>When messages are discarded, a log entry is written\n"
+" containing the Message-ID of the discarded message. When\n"
+" messages are rejected or forwarded to the list owner, a reason\n"
+" for the rejection is included in the bounce message to the\n"
+" original author. When messages are preserved, they are saved "
+"in\n"
+" a special queue directory on disk for the site administrator "
+"to\n"
+" view (and possibly rescue) but otherwise discarded. This last\n"
+" option is only available if enabled by the site\n"
+" administrator."
+msgstr ""
+"Här bestämmer du vad som ska hända när ett meddelade filtreras av ett "
+"filter, alltså\n"
+"om bilagorna filtreras av\n"
+"<a href=\"?VARHELP=contentfilter/filter_mime_types\">MIME-filtret</a>, eller "
+"en\n"
+"bilaga inte är en av de\n"
+"<a href=\"?VARHELP=contentfilter/pass_mime_types\">giltiga MIME-typerna</a>, "
+"eller\n"
+"meddelandet visar sig vara tomt efter filtrering.\n"
+"\n"
+"<p>Obeservera att det du väljer här kommer inte att ske om ett meddelande "
+"fortfarande\n"
+"innehåller något efter filtrering. Då kommer meddelandet alltid att sändas "
+"vidare till\n"
+"listan.\n"
+"\n"
+"<p>När meddelanden förkastas, skrivs Message-IDen till det kastade "
+"meddelandet\n"
+"till loggen. När meddelanden sänds i retur eller vidaresänds till listans "
+"ägare,\n"
+"kommer en anledning alltid att inkluderas i returmeddelandet som skickas "
+"till avsändaren.\n"
+"När meddelanden ska sparas, lagras de i en speciell kökatalog på disken så "
+"att\n"
+"serveradministratören kan se (och kanske göra något med) meddelandet, men "
+"förutom detta\n"
+"kastas de. Detta sista val är bara tillgängligt om\n"
+"serveradministratören har tillåtit det."
+
+# Mailman/Gui/ContentFilter.py:75
+# Mailman/Gui/ContentFilter.py:154
+#: Mailman/Gui/ContentFilter.py:154
+msgid "Bad MIME type ignored: %(spectype)s"
+msgstr "Hoppar över ogiltig MIME-typ: %(spectype)s"
+
+# Mailman/Gui/Digest.py:36
+# Mailman/Gui/Digest.py:36
+#: Mailman/Gui/Digest.py:36
+msgid "Digest options"
+msgstr "Inställningar för sammandragsversion"
+
+# Mailman/Gui/Digest.py:44
+# Mailman/Gui/Digest.py:44
+#: Mailman/Gui/Digest.py:44
+msgid "Batched-delivery digest characteristics."
+msgstr "Uppsättning av sammandragsversion."
+
+# Mailman/Gui/Digest.py:47
+# Mailman/Gui/Digest.py:47
+#: Mailman/Gui/Digest.py:47
+msgid "Can list members choose to receive list traffic bunched in digests?"
+msgstr "Kan medlemmar av listan välja att få sammandrag skickat istället?"
+
+# Mailman/Gui/Digest.py:51
+# Mailman/Gui/Digest.py:51
+#: Mailman/Gui/Digest.py:51
+msgid "Digest"
+msgstr "Sammandrag"
+
+# Mailman/Gui/Digest.py:51
+# Mailman/Gui/Digest.py:51
+#: Mailman/Gui/Digest.py:51
+msgid "Regular"
+msgstr "Normal"
+
+# Mailman/Gui/Digest.py:52
+# Mailman/Gui/Digest.py:52
+#: Mailman/Gui/Digest.py:52
+msgid "Which delivery mode is the default for new users?"
+msgstr "Vilken version är standard för nya användare?"
+
+# Mailman/Gui/Digest.py:55
+# Mailman/Gui/Digest.py:55
+#: Mailman/Gui/Digest.py:55
+msgid "MIME"
+msgstr "MIME"
+
+# Mailman/Gui/Digest.py:55
+# Mailman/Gui/Digest.py:55
+#: Mailman/Gui/Digest.py:55
+msgid "Plain"
+msgstr "Ren text"
+
+# Mailman/Gui/Digest.py:56
+# Mailman/Gui/Digest.py:56
+#: Mailman/Gui/Digest.py:56
+msgid "When receiving digests, which format is default?"
+msgstr "Vilket format ska användas som standard för samlingsepost?"
+
+# Mailman/Gui/Digest.py:59
+# Mailman/Gui/Digest.py:59
+#: Mailman/Gui/Digest.py:59
+msgid "How big in Kb should a digest be before it gets sent out?"
+msgstr "Hur stor (i Kb) ska en samlingsepost vara innan den skickas ut?"
+
+# Mailman/Gui/Digest.py:63
+# Mailman/Gui/Digest.py:63
+#: Mailman/Gui/Digest.py:63
+msgid ""
+"Should a digest be dispatched daily when the size threshold isn't reached?"
+msgstr ""
+"Ska det skickas en samlingsepost varje dag, även om inte storleken är "
+"uppnådd?"
+
+# Mailman/Gui/Digest.py:67
+# Mailman/Gui/Digest.py:67
+#: Mailman/Gui/Digest.py:67
+msgid "Header added to every digest"
+msgstr "Topptext i varje samlingsepost"
+
+# Mailman/Gui/Digest.py:68
+# Mailman/Gui/Digest.py:68
+#: Mailman/Gui/Digest.py:68
+msgid ""
+"Text attached (as an initial message, before the table of contents) to the "
+"top of digests. "
+msgstr ""
+"Text som läggs till överst i samlingseposten, före innehållsförteckningen."
+
+# Mailman/Gui/Digest.py:73
+# Mailman/Gui/Digest.py:73
+#: Mailman/Gui/Digest.py:73
+msgid "Footer added to every digest"
+msgstr "Bottentext i varje samlingsepost"
+
+# Mailman/Gui/Digest.py:74
+# Mailman/Gui/Digest.py:74
+#: Mailman/Gui/Digest.py:74
+msgid "Text attached (as a final message) to the bottom of digests. "
+msgstr ""
+"Text som läggs till nederst i varje samlingsepost, som en sista information."
+
+# Mailman/Gui/Digest.py:80
+# Mailman/Gui/Digest.py:80
+#: Mailman/Gui/Digest.py:80
+msgid "How often should a new digest volume be started?"
+msgstr "Hur ofta ska en ny volym startas?"
+
+# Mailman/Gui/Digest.py:81
+# Mailman/Gui/Digest.py:81
+#: Mailman/Gui/Digest.py:81
+msgid ""
+"When a new digest volume is started, the volume number is\n"
+" incremented and the issue number is reset to 1."
+msgstr ""
+"När en ny volym startas, ökar volymnumret och utgivningsnumret sätts "
+"tillbaka till 1."
+
+# Mailman/Gui/Digest.py:85
+# Mailman/Gui/Digest.py:85
+#: Mailman/Gui/Digest.py:85
+msgid "Should Mailman start a new digest volume?"
+msgstr "Ska Mailman starta en ny volym?"
+
+# Mailman/Gui/Digest.py:86
+# Mailman/Gui/Digest.py:86
+#: Mailman/Gui/Digest.py:86
+msgid ""
+"Setting this option instructs Mailman to start a new volume\n"
+" with the next digest sent out."
+msgstr ""
+"Väljer du <em>Ja</em> här, kommer Mailman att starta en ny volym när nästa "
+"samlingsepost skickas ut."
+
+# Mailman/Gui/Digest.py:90
+# Mailman/Gui/Digest.py:90
+#: Mailman/Gui/Digest.py:90
+msgid ""
+"Should Mailman send the next digest right now, if it is not\n"
+" empty?"
+msgstr ""
+"Ska Mailman skicka ut nästa samlingsepost nu med en gång, om den inte är tom?"
+
+# Mailman/Gui/Digest.py:145
+# Mailman/Gui/Digest.py:145
+#: Mailman/Gui/Digest.py:145
+msgid ""
+"The next digest will be sent as volume\n"
+" %(volume)s, number %(number)s"
+msgstr ""
+"Nästa samlingsepost kommer att skickas som volym %(volume)s, nummer %(number)"
+"s"
+
+# Mailman/Gui/Digest.py:150
+# Mailman/Gui/Digest.py:150
+#: Mailman/Gui/Digest.py:150
+msgid "A digest has been sent."
+msgstr "En samlingsepost har skickats."
+
+# Mailman/Gui/Digest.py:152
+# Mailman/Gui/Digest.py:152
+#: Mailman/Gui/Digest.py:152
+msgid "There was no digest to send."
+msgstr "Det fanns ingen samlingsepost att skicka."
+
+# Mailman/Gui/GUIBase.py:143
+# Mailman/Gui/GUIBase.py:149
+#: Mailman/Gui/GUIBase.py:149
+msgid "Invalid value for variable: %(property)s"
+msgstr "Ogiltigt värde för: %(property)s"
+
+# Mailman/Gui/GUIBase.py:147
+# Mailman/Gui/GUIBase.py:153
+#: Mailman/Gui/GUIBase.py:153
+msgid "Bad email address for option %(property)s: %(val)s"
+msgstr "Ogiltig e-postadress för inställningen %(property)s: %(val)s"
+
+# Mailman/Gui/GUIBase.py:173
+# Mailman/Gui/GUIBase.py:179
+#: Mailman/Gui/GUIBase.py:179
+msgid ""
+"The following illegal substitution variables were\n"
+" found in the <code>%(property)s</code> string:\n"
+" <code>%(bad)s</code>\n"
+" <p>Your list may not operate properly until you correct "
+"this\n"
+" problem."
+msgstr ""
+"Följande ogiltiga variabler hittades i <code>%(property)s</code>:\n"
+"<code>%(bad)s</code>\n"
+"<p>Det kan uppstå problem med din lista om du inte rättar till detta."
+
+# Mailman/Gui/GUIBase.py:187
+# Mailman/Gui/GUIBase.py:193
+#: Mailman/Gui/GUIBase.py:193
+msgid ""
+"Your <code>%(property)s</code> string appeared to\n"
+" have some correctable problems in its new value.\n"
+" The fixed value will be used instead. Please\n"
+" double check that this is what you intended.\n"
+" "
+msgstr ""
+"Det verkar som om ett fel med värdet av <code>%(property)s</code> "
+"automatiskt skulle kunna rättas till.\n"
+"Det fasta värdet kommer att användas. Var vänlig att kontrolla att detta var "
+"din avsikt."
+
+# Mailman/Gui/General.py:32
+# Mailman/Gui/General.py:32
+#: Mailman/Gui/General.py:32
+msgid "General Options"
+msgstr "Allmänna inställningar"
+
+# Mailman/Gui/General.py:46
+# Mailman/Gui/General.py:46
+#: Mailman/Gui/General.py:46
+msgid "Conceal the member's address"
+msgstr "Dölj medlemmens adress"
+
+# Mailman/Gui/General.py:47
+# Mailman/Gui/General.py:47
+#: Mailman/Gui/General.py:47
+msgid "Acknowledge the member's posting"
+msgstr "Skicka bekräftelse på meddelanden som skickats av medlemmen"
+
+# Mailman/Gui/General.py:48
+# Mailman/Gui/General.py:48
+#: Mailman/Gui/General.py:48
+msgid "Do not send a copy of a member's own post"
+msgstr "Skicka ingen kopia till medlemmen av hans/hennes egna e-postbrev"
+
+# Mailman/Gui/General.py:50
+# Mailman/Gui/General.py:50
+#: Mailman/Gui/General.py:50
+msgid "Filter out duplicate messages to list members (if possible)"
+msgstr "Filtrera bort meddelandedubbletter till medlemmar (om möjligt)"
+
+# Mailman/Gui/General.py:57
+# Mailman/Gui/General.py:57
+#: Mailman/Gui/General.py:57
+msgid ""
+"Fundamental list characteristics, including descriptive\n"
+" info and basic behaviors."
+msgstr ""
+"Grundläggande egenskaper för listan, bland annat en beskrivning av listan, "
+"och hur den fungerar."
+
+# Mailman/Gui/General.py:60
+# Mailman/Gui/General.py:60
+#: Mailman/Gui/General.py:60
+msgid "General list personality"
+msgstr "Allmänna inställningar för e-postlistan"
+
+# Mailman/Gui/General.py:63
+# Mailman/Gui/General.py:63
+#: Mailman/Gui/General.py:63
+msgid "The public name of this list (make case-changes only)."
+msgstr "Listans namn (här kan du bara ändra mellan stora och små bokstäver)."
+
+# Mailman/Gui/General.py:64
+# Mailman/Gui/General.py:64
+#: Mailman/Gui/General.py:64
+msgid ""
+"The capitalization of this name can be changed to make it\n"
+" presentable in polite company as a proper noun, or to make an\n"
+" acronym part all upper case, etc. However, the name will be\n"
+" advertised as the email address (e.g., in subscribe "
+"confirmation\n"
+" notices), so it should <em>not</em> be otherwise altered. "
+"(Email\n"
+" addresses are not case sensitive, but they are sensitive to\n"
+" almost everything else :-)"
+msgstr ""
+"Här kan du till exempel stava namnet med en stor inledande bokstav, eller "
+"ändra vissa bokstäver\n"
+"till versaler så att namnet kan uttalas på rätt sätt om det är en akronym.\n"
+"Observera att detta namn används i e-postlistans adress (till exempel i\n"
+"bekräftelser på anmälningar), så det ska <em>inte</em> ändras på något "
+"annat\n"
+"sätt. (E-postadresser är inte känsliga för stora eller små bokstäver, men de "
+"är\n"
+"känsliga för nästan allt annat :-)"
+
+# Mailman/Gui/General.py:73
+# Mailman/Gui/General.py:73
+#: Mailman/Gui/General.py:73
+msgid ""
+"The list administrator email addresses. Multiple\n"
+" administrator addresses, each on separate line is okay."
+msgstr ""
+"Listadministatörens e-postadress(er). Flera e-postadresser kan specifiseras\n"
+"men då bara en adress per rad."
+
+# Mailman/Gui/General.py:76
+# Mailman/Gui/General.py:76
+#: Mailman/Gui/General.py:76
+#, fuzzy
+msgid ""
+"There are two ownership roles associated with each mailing\n"
+" list. The <em>list administrators</em> are the people who "
+"have\n"
+" ultimate control over all parameters of this mailing list. "
+"They\n"
+" are able to change any list configuration variable available\n"
+" through these administration web pages.\n"
+"\n"
+" <p>The <em>list moderators</em> have more limited permissions;\n"
+" they are not able to change any list configuration variable, "
+"but\n"
+" they are allowed to tend to pending administration requests,\n"
+" including approving or rejecting held subscription requests, "
+"and\n"
+" disposing of held postings. Of course, the <em>list\n"
+" administrators</em> can also tend to pending requests.\n"
+"\n"
+" <p>In order to split the list ownership duties into\n"
+" administrators and moderators, you must\n"
+" <a href=\"passwords\">set a separate moderator password</a>,\n"
+" and also provide the <a href=\"?VARHELP=general/moderator"
+"\">email\n"
+" addresses of the list moderators</a>. Note that the field you\n"
+" are changing here specifies the list administrators."
+msgstr ""
+"Det är två roller förbundna med varje e-postlista.\n"
+"<em>Listadministratörerna</em> är de som till syvende och sist har kontroll "
+"över alla inställningar för e-postlistan.\n"
+"De kan ändra alla inställningar som finns tillgängliga via de administrativa "
+"webbsidorna.\n"
+"\n"
+"<p><em>Listmoderatorerna</em> har begränsad tillgång; de kan inte ändra "
+"inställningar för e-postlistan,\n"
+"men de kan ta hand om frågor som rör listan, till exempel ansökningar om "
+"medlemskap,\n"
+"eller godta/avslå meddelanden som måste godkännas för att kunna skickas ut "
+"på listan.\n"
+"<em>Listadministratörerna</em> kan självklart också utföra dessa uppgifter.\n"
+"\n"
+"<p>För att aktivera möjligheten att ha listmoderatorer, och på det sättet "
+"dela upp arbetsuppgifterna som är förbundna med listan,\n"
+"måste du <a href=\"passwords\">sätta ett speciellt moderatorlösenord</a>,\n"
+"och <a href=\"?VARHELP=general/moderator\">tillhandahålla e-postadressen"
+"(erna)</a> till den/dem som ska vara listmoderator.\n"
+"Observera att i textrutorna nedan ska du skriva e-postadressen(erna) till "
+"listadministratören(erna)."
+
+# Mailman/Gui/General.py:97
+# Mailman/Gui/General.py:97
+#: Mailman/Gui/General.py:97
+msgid ""
+"The list moderator email addresses. Multiple\n"
+" moderator addresses, each on separate line is okay."
+msgstr ""
+"Listmoderatorns e-postadress(er). Flera e-postadresser kan specifiseras\n"
+"men då bara en adress per rad."
+
+# Mailman/Gui/General.py:100
+# Mailman/Gui/General.py:100
+#: Mailman/Gui/General.py:100
+msgid ""
+"There are two ownership roles associated with each mailing\n"
+" list. The <em>list administrators</em> are the people who "
+"have\n"
+" ultimate control over all parameters of this mailing list. "
+"They\n"
+" are able to change any list configuration variable available\n"
+" through these administration web pages.\n"
+"\n"
+" <p>The <em>list moderators</em> have more limited permissions;\n"
+" they are not able to change any list configuration variable, "
+"but\n"
+" they are allowed to tend to pending administration requests,\n"
+" including approving or rejecting held subscription requests, "
+"and\n"
+" disposing of held postings. Of course, the <em>list\n"
+" administrators</em> can also tend to pending requests.\n"
+"\n"
+" <p>In order to split the list ownership duties into\n"
+" administrators and moderators, you must\n"
+" <a href=\"passwords\">set a separate moderator password</a>,\n"
+" and also provide the email addresses of the list moderators in\n"
+" this section. Note that the field you are changing here\n"
+" specifies the list moderators."
+msgstr ""
+"Det är två roller förbundna med varje e-postlista.\n"
+"<em>Listadministratörerna</em> är de som till syvende och sist har kontroll "
+"över alla inställningar för e-postlistan.\n"
+"De kan ändra alla inställningar som finns tillgängliga via de administrativa "
+"webbsidorna.\n"
+"\n"
+"<p><em>Listmoderatorerna</em> har begränsad tillgång; de kan inte ändra "
+"inställningar för e-postlistan,\n"
+"men de kan ta hand om frågor som är förbundna med listan, till exempel "
+"ansökningar om medlemskap,\n"
+"eller godta/avslå meddelanden som måste godkännas för att kunna skickas ut "
+"på listan.\n"
+"<em>Listadministratörerna</em> kan självklart också utföra dessa "
+"uppgifter.\n"
+"\n"
+"<p>För att aktivera möjligheten att ha listmoderatorer, och på det sättet "
+"dela upp arbetsuppgifterna som är förbundna med listan,\n"
+"måste du <a href=\"passwords\">sätta ett speciellt moderatorlösenord</a>,\n"
+"och tillhandahålla e-postadressen(erna) till den/dem som ska vara "
+"listmoderator.\n"
+"Observera att i textrutorna nedan ska du skriva e-postadressen(erna) till "
+"listmoderatorn(erna)."
+
+# Mailman/Gui/General.py:121
+# Mailman/Gui/General.py:121
+#: Mailman/Gui/General.py:121
+msgid "A terse phrase identifying this list."
+msgstr "En kort fras som beskriver listan."
+
+# Mailman/Gui/General.py:123
+# Mailman/Gui/General.py:123
+#: Mailman/Gui/General.py:123
+msgid ""
+"This description is used when the mailing list is listed with\n"
+" other mailing lists, or in headers, and so forth. It "
+"should\n"
+" be as succinct as you can get it, while still identifying "
+"what\n"
+" the list is."
+msgstr ""
+"Denna beskrivning används när denna e-postlista listas upp tillsammans med "
+"andra e-postlistor,\n"
+"i topptexter, osv. Den bör vara så kort som över huvud taget är möjligt, "
+"utan att göra det oklart\n"
+"vad som är meningen med e-postlistan eller vad den ska användas till."
+
+# Mailman/Gui/General.py:129
+# Mailman/Gui/General.py:129
+#: Mailman/Gui/General.py:129
+msgid ""
+"An introductory description - a few paragraphs - about the\n"
+" list. It will be included, as html, at the top of the "
+"listinfo\n"
+" page. Carriage returns will end a paragraph - see the details\n"
+" for more info."
+msgstr ""
+"En liten introduktion till e-postlistan, - gärna ett par avsnitt.\n"
+"Den kommer att visas som html, överst på e-postlistans informationssida.\n"
+"Radbyte används för att dela upp i avsnitt - se hjälp för mer information."
+
+# Mailman/Gui/General.py:133
+# Mailman/Gui/General.py:133
+#: Mailman/Gui/General.py:133
+msgid ""
+"The text will be treated as html <em>except</em> that\n"
+" newlines will be translated to &lt;br&gt; - so you can use "
+"links,\n"
+" preformatted text, etc, but don't put in carriage returns "
+"except\n"
+" where you mean to separate paragraphs. And review your changes "
+"-\n"
+" bad html (like some unterminated HTML constructs) can prevent\n"
+" display of the entire listinfo page."
+msgstr ""
+"Texten tolkas som html <em>bortsätt från</em> radbyte, som kommer att göras "
+"om\n"
+"till html-tag'en '&lt;br&gt;', så att du kan använda länkar, "
+"förhandsformaterad\n"
+"text, osv. Men använd alltså radbyte bara där du vill ha nytt avsnitt.\n"
+"Använder du html-kod, kom ihåg att se över den noga, för finns det "
+"felaktigheter i den (till exempel\n"
+"saknade slut-taggar) kan det göra att listans informationssida inte kommer\n"
+"att visas som den ska."
+
+# Mailman/Gui/General.py:141
+# Mailman/Gui/General.py:141
+#: Mailman/Gui/General.py:141
+msgid "Prefix for subject line of list postings."
+msgstr "Text före ämnesfältet i e-postbrev som skickas till listan."
+
+# Mailman/Gui/General.py:142
+# Mailman/Gui/General.py:142
+#: Mailman/Gui/General.py:142
+msgid ""
+"This text will be prepended to subject lines of messages\n"
+" posted to the list, to distinguish mailing list messages in in\n"
+" mailbox summaries. Brevity is premium here, it's ok to "
+"shorten\n"
+" long mailing list names to something more concise, as long as "
+"it\n"
+" still identifies the mailing list."
+msgstr ""
+"Denna text kommer att sättas in före ämnes-/titelfältet i e-postbrev som "
+"skickas till\n"
+"listan, för att skilja ut meddelanden från e-postlistan i e-postboxen hos "
+"dem som\n"
+"är medlemmar av listan. Denna text bör hållas till ett <em>absolut minimum</"
+"em>.\n"
+"Använder du till exempel listans namn och namnet är långt, bör du förkorta "
+"det\n"
+"här. Men namnet bör ändå vara beskrivande för listan."
+
+# Mailman/Gui/Privacy.py:378
+# Mailman/Gui/General.py:149
+#: Mailman/Gui/General.py:149
+#, fuzzy
+msgid ""
+"Hide the sender of a message, replacing it with the list\n"
+" address (Removes From, Sender and Reply-To fields)"
+msgstr ""
+"Dölj avsändaren av meddelandet, genom att ersätta <tt>Från:</tt>, "
+"<tt>Avsändare<tt>, och <tt>Reply-To:</tt> fälten med listans adress?"
+
+# Mailman/Gui/General.py:148
+# Mailman/Gui/General.py:152
+#: Mailman/Gui/General.py:152
+msgid "<tt>Reply-To:</tt> header munging"
+msgstr "Egendefinierad <tt>Reply-To:</tt> adress"
+
+# Mailman/Gui/General.py:151
+# Mailman/Gui/General.py:155
+#: Mailman/Gui/General.py:155
+msgid ""
+"Should any existing <tt>Reply-To:</tt> header found in the\n"
+" original message be stripped? If so, this will be done\n"
+" regardless of whether an explict <tt>Reply-To:</tt> header is\n"
+" added by Mailman or not."
+msgstr ""
+"Ska existerande <tt>Reply-To:</tt> fält i meddelandehuvudet tas bort?\n"
+"Om ja, kommer detta att bli gjort oavsett om Mailman lägger till ett "
+"<tt>Reply-To:</tt> fält eller inte."
+
+# Mailman/Gui/General.py:157
+# Mailman/Gui/General.py:161
+#: Mailman/Gui/General.py:161
+msgid "Explicit address"
+msgstr "Egendefinierad adress"
+
+# Mailman/Gui/General.py:157
+# Mailman/Gui/General.py:161
+#: Mailman/Gui/General.py:161
+msgid "Poster"
+msgstr "Avsändare"
+
+# Mailman/Gui/General.py:157
+# Mailman/Gui/General.py:161
+#: Mailman/Gui/General.py:161
+msgid "This list"
+msgstr "Denna lista"
+
+# Mailman/Gui/General.py:158
+# Mailman/Gui/General.py:162
+#: Mailman/Gui/General.py:162
+msgid ""
+"Where are replies to list messages directed?\n"
+" <tt>Poster</tt> is <em>strongly</em> recommended for most "
+"mailing\n"
+" lists."
+msgstr ""
+"Hur ska svar på e-postbrev till listan riktas?\n"
+"<tt>Avsändare</tt> rekommenderas <em>å det varmaste</em> för de flesta e-"
+"postlistor."
+
+# Mailman/Gui/General.py:163
+# Mailman/Gui/General.py:167
+#: Mailman/Gui/General.py:167
+msgid ""
+"This option controls what Mailman does to the\n"
+" <tt>Reply-To:</tt> header in messages flowing through this\n"
+" mailing list. When set to <em>Poster</em>, no <tt>Reply-To:</"
+"tt>\n"
+" header is added by Mailman, although if one is present in the\n"
+" original message, it is not stripped. Setting this value to\n"
+" either <em>This list</em> or <em>Explicit address</em> causes\n"
+" Mailman to insert a specific <tt>Reply-To:</tt> header in all\n"
+" messages, overriding the header in the original message if\n"
+" necessary (<em>Explicit address</em> inserts the value of <a\n"
+" href=\"?VARHELP=general/reply_to_address\">reply_to_address</"
+"a>).\n"
+" \n"
+" <p>There are many reasons not to introduce or override the\n"
+" <tt>Reply-To:</tt> header. One is that some posters depend on\n"
+" their own <tt>Reply-To:</tt> settings to convey their valid\n"
+" return address. Another is that modifying <tt>Reply-To:</tt>\n"
+" makes it much more difficult to send private replies. See <a\n"
+" href=\"http://www.unicom.com/pw/reply-to-harmful.html\">`Reply-"
+"To'\n"
+" Munging Considered Harmful</a> for a general discussion of "
+"this\n"
+" issue. See <a\n"
+" href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml"
+"\">Reply-To\n"
+" Munging Considered Useful</a> for a dissenting opinion.\n"
+"\n"
+" <p>Some mailing lists have restricted posting privileges, with "
+"a\n"
+" parallel list devoted to discussions. Examples are `patches' "
+"or\n"
+" `checkin' lists, where software changes are posted by a "
+"revision\n"
+" control system, but discussion about the changes occurs on a\n"
+" developers mailing list. To support these types of mailing\n"
+" lists, select <tt>Explicit address</tt> and set the\n"
+" <tt>Reply-To:</tt> address below to point to the parallel\n"
+" list."
+msgstr ""
+"Denna inställning bestämmer vad Mailman ska göra med <tt>Reply-To:</tt>\n"
+"fältet i meddelandehuvudet på e-postbrev som skickas till listan. Är den "
+"satt till\n"
+"<em>Avsändare</em>, kommer Mailman inte att lägga till något <tt>Reply-To:</"
+"tt> fält,\n"
+"men finns det redan ett sådant fält, kommer det inte att tas bort.\n"
+"Sätts inställningen till antingen <em>E-postlistans adress</em> eller\n"
+"<em>Egendefinierad adress</em>, kommer Mailman att lägga till, eventuellt "
+"ersätta,\n"
+"ett <tt>Reply-To:</tt> fält. (<em>Egendefinierad adress</em> sätter in "
+"värdet\n"
+"av inställningen <a href=\"?VARHELP=general/reply_to_address"
+"\">reply_to_address</a>).\n"
+"\n"
+"<p>Det finns många anledningar till att inte införa eller ersätta <tt>Reply-"
+"To:</tt>\n"
+"fält. En anledning kan vara att någon av dem som skickar e-postbrev till "
+"listan är\n"
+"beroende av att själv sätta <tt>Reply-To:</tt> adressen. En annan anledning "
+"är att\n"
+"modifiering av <tt>Reply-To:</tt> adressen gör det svårare att skicka\n"
+"svar bara till avsändaren.\n"
+"Se <a href=\"http://www.unicom.com/pw/reply-to-harmful.html\">'Reply-To' "
+"Munging Considered Harmful</a>\n"
+"för en diskussion kring temat.\n"
+"Se <a href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml\">Reply-"
+"To Munging Considered Useful</a>\n"
+"för motsatta uppfattningar.\n"
+"\n"
+"<p>Några e-postlistor har begränsade rättigheter, med en egen parallell "
+"lista\n"
+"avsedd för diskussioner. Exempel på detta är 'patcher' eller 'checkin' "
+"listor,\n"
+"som system för revideringskontroll skickar ändringar i programvara till, "
+"medan\n"
+"diskussioner kring utveckling av programvaran skickas till utvecklarnas "
+"egen\n"
+"e-postlista. För att stödja sådana e-postlistor, välj <em>Egendefinierad "
+"adress</em>\n"
+"och sätt <tt>Reply-To:</tt> adressen i inställningen <tt>reply_to_address</"
+"tt> till att peka till\n"
+"den parallella diskussionslistan."
+
+# Mailman/Gui/General.py:195
+# Mailman/Gui/General.py:199
+#: Mailman/Gui/General.py:199
+msgid "Explicit <tt>Reply-To:</tt> header."
+msgstr "Egendefinierad <tt>Reply-To:</tt> adress."
+
+# Mailman/Gui/General.py:197
+# Mailman/Gui/General.py:201
+#: Mailman/Gui/General.py:201
+msgid ""
+"This is the address set in the <tt>Reply-To:</tt> header\n"
+" when the <a\n"
+" href=\"?VARHELP=general/reply_goes_to_list"
+"\">reply_goes_to_list</a>\n"
+" option is set to <em>Explicit address</em>.\n"
+"\n"
+" <p>There are many reasons not to introduce or override the\n"
+" <tt>Reply-To:</tt> header. One is that some posters depend on\n"
+" their own <tt>Reply-To:</tt> settings to convey their valid\n"
+" return address. Another is that modifying <tt>Reply-To:</tt>\n"
+" makes it much more difficult to send private replies. See <a\n"
+" href=\"http://www.unicom.com/pw/reply-to-harmful.html\">`Reply-"
+"To'\n"
+" Munging Considered Harmful</a> for a general discussion of "
+"this\n"
+" issue. See <a\n"
+" href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml"
+"\">Reply-To\n"
+" Munging Considered Useful</a> for a dissenting opinion.\n"
+"\n"
+" <p>Some mailing lists have restricted posting privileges, with "
+"a\n"
+" parallel list devoted to discussions. Examples are `patches' "
+"or\n"
+" `checkin' lists, where software changes are posted by a "
+"revision\n"
+" control system, but discussion about the changes occurs on a\n"
+" developers mailing list. To support these types of mailing\n"
+" lists, specify the explicit <tt>Reply-To:</tt> address here. "
+"You\n"
+" must also specify <tt>Explicit address</tt> in the\n"
+" <tt>reply_goes_to_list</tt>\n"
+" variable.\n"
+"\n"
+" <p>Note that if the original message contains a\n"
+" <tt>Reply-To:</tt> header, it will not be changed."
+msgstr ""
+"Här definierar du adressen som ska sättas i <tt>Reply-To:</tt> fältet\n"
+"när inställningen <a href=\"?VARHELP=general/reply_goes_to_list"
+"\">reply_goes_to_list</a>\n"
+"är satt till <em>Egendefinierd adress</em>.\n"
+"\n"
+"<p>Det finns många anledningar till att inte införa eller ersätta <tt>Reply-"
+"To:</tt>\n"
+"fält. En anledning kan vara att någon av dem som skickar e-postbrev til "
+"listan är\n"
+"beroende av att själv sätta <tt>Reply-To:</tt> adressen. En annan anledning "
+"är att\n"
+"modifiering av <tt>Reply-To:</tt> adressen gör det svårare att skicka\n"
+"svar bara till avsändaren.\n"
+"Se <a href=\"http://www.unicom.com/pw/reply-to-harmful.html\">'Reply-To' "
+"Munging Considered Harmful</a>\n"
+"för en diskussion kring temat.\n"
+"Se <a href=\"http://www.metasystema.org/essays/reply-to-useful.mhtml\">Reply-"
+"To Munging Considered Useful</a>\n"
+"för motsatta uppfattningar.\n"
+"\n"
+"<p>Några e-postlistor har begränsade rättigheter, med en egen parallell "
+"lista\n"
+"avsedd för diskussioner. Exempel på detta är 'patcher' eller 'checkin' "
+"listor,\n"
+"som system för revideringskontroll skickar ändringar i programvara till, "
+"medan\n"
+"diskussioner kring utveckling av programvaran skickas till utvecklarens "
+"egen\n"
+"e-postlista. För att stödja sådana e-postlistor, definiera <tt>Reply-To:</"
+"tt> adressen här,\n"
+"och välj <em>Egendefinierad adress</em> i inställningen "
+"<tt>reply_goes_to_list</tt>.\n"
+"\n"
+"<p>Observera att om det ursprungliga meddelandet innehåller ett <tt>Reply-To:"
+"</tt> fält,\n"
+"kommer det <em>inte</em> att ändras."
+
+# Mailman/Gui/General.py:226
+# Mailman/Gui/General.py:230
+#: Mailman/Gui/General.py:230
+msgid "Umbrella list settings"
+msgstr "Paraplylista - inställningar"
+
+# Mailman/Gui/General.py:229
+# Mailman/Gui/General.py:233
+#: Mailman/Gui/General.py:233
+msgid ""
+"Send password reminders to, eg, \"-owner\" address instead of\n"
+" directly to user."
+msgstr ""
+"Skicka påminnelser om lösenord till, till exempel, \"-owner\" adressen "
+"istället för direkt\n"
+"till medlemmen."
+
+# Mailman/Gui/General.py:232
+# Mailman/Gui/General.py:236
+#: Mailman/Gui/General.py:236
+msgid ""
+"Set this to yes when this list is intended to cascade only\n"
+" to other mailing lists. When set, meta notices like\n"
+" confirmations and password reminders will be directed to an\n"
+" address derived from the member's address - it will have the\n"
+" value of \"umbrella_member_suffix\" appended to the member's\n"
+" account name."
+msgstr ""
+"Sätt detta till 'ja' om listan ska användas som ett \"paraply\" för flera\n"
+"andra listor. När detta är aktiverat, kommer bekräftelser och meddelanden "
+"med lösenord\n"
+"att skickas till en egen adress som beräknas utifrån e-postadressen som\n"
+"är anmäld till listan - värdet av inställningen \"umbrella_member_suffix\"\n"
+"används till detta. Detta värde läggs till medlemmens kontonamn (det som\n"
+"står framför @-tecknet)."
+
+# Mailman/Gui/General.py:240
+# Mailman/Gui/General.py:244
+#: Mailman/Gui/General.py:244
+msgid ""
+"Suffix for use when this list is an umbrella for other\n"
+" lists, according to setting of previous \"umbrella_list\"\n"
+" setting."
+msgstr ""
+"Suffix som används när detta är en \"paraplylista\" för andra e-postlistor,\n"
+"enligt inställningen \"umbrella_list\" ovan."
+
+# Mailman/Gui/General.py:244
+# Mailman/Gui/General.py:248
+#: Mailman/Gui/General.py:248
+msgid ""
+"When \"umbrella_list\" is set to indicate that this list has\n"
+" other mailing lists as members, then administrative notices "
+"like\n"
+" confirmations and password reminders need to not be sent to "
+"the\n"
+" member list addresses, but rather to the owner of those member\n"
+" lists. In that case, the value of this setting is appended to\n"
+" the member's account name for such notices. `-owner' is the\n"
+" typical choice. This setting has no effect when \"umbrella_list"
+"\"\n"
+" is \"No\"."
+msgstr ""
+"När \"umbrella_list\" indikerar att denna lista har andra e-postlistor som "
+"medlemmar,\n"
+"är det ofta önskvärt att administrativa meddelanden som till exempel "
+"bekräftelser och\n"
+"lösenordspåminnelser inte skickas till själva listan som är medlem, utan "
+"till\n"
+"administratören för listan. Om detta är fallet, används värdet av denna\n"
+"inställning för att bestämma adressen som administrativa meddelanden ska\n"
+"skickas till. '-owner' är ett vanligt val för denna inställning.<br>\n"
+"Denna inställning har ingen effekt när \"umbrella_list\" är satt till \"Nej"
+"\"."
+
+# Mailman/Gui/General.py:256
+# Mailman/Gui/General.py:260
+#: Mailman/Gui/General.py:260
+msgid "Send monthly password reminders?"
+msgstr "Skicka påminnelse om lösenord en gång i månaden?"
+
+# Mailman/Gui/General.py:258
+# Mailman/Gui/General.py:262
+#: Mailman/Gui/General.py:262
+msgid ""
+"Turn this on if you want password reminders to be sent once\n"
+" per month to your members. Note that members may disable "
+"their\n"
+" own individual password reminders."
+msgstr ""
+"Sätt på denna om du vill att påminnelser om lösenord ska skickas till "
+"medlemmarna\n"
+"en gång i månaden. Kom ihåg att medlemmarna kan också sjäva avaktivera detta."
+
+# Mailman/Gui/General.py:263
+# Mailman/Gui/General.py:267
+#: Mailman/Gui/General.py:267
+msgid ""
+"List-specific text prepended to new-subscriber welcome\n"
+" message"
+msgstr ""
+"Text som läggs till i välkomsthälsning till nya medlemmar på denna lista."
+
+# Mailman/Gui/General.py:266
+# Mailman/Gui/General.py:270
+#: Mailman/Gui/General.py:270
+msgid ""
+"This value, if any, will be added to the front of the\n"
+" new-subscriber welcome message. The rest of the welcome "
+"message\n"
+" already describes the important addresses and URLs for the\n"
+" mailing list, so you don't need to include any of that kind of\n"
+" stuff here. This should just contain mission-specific kinds "
+"of\n"
+" things, like etiquette policies or team orientation, or that "
+"kind\n"
+" of thing.\n"
+"\n"
+" <p>Note that this text will be wrapped, according to the\n"
+" following rules:\n"
+" <ul><li>Each paragraph is filled so that no line is longer "
+"than\n"
+" 70 characters.\n"
+" <li>Any line that begins with whitespace is not filled.\n"
+" <li>A blank line separates paragraphs.\n"
+" </ul>"
+msgstr ""
+"Text som du skriver här kommer att läggas till överst i välkomsthälsningen "
+"som skickas till nya medlemmar.\n"
+"Välkomsthälsningen innehåller redan viktiga adresser och URL:er med "
+"anknytning till e-postlistan,\n"
+"så sådan information är det inte nödvändigt att inkludera här. Här kan du "
+"lägga in till exempel\n"
+"upplysningar om etikett eller regler för listan och liknande.\n"
+"\n"
+"<p>Observera: Raderna i denna text kommer att brytas efter följande regler:\n"
+"<ul>\n"
+" <li>Varje avsnitt fylls i så att ingen rad är längre än 70 tecken.</li>\n"
+" <li>Varje rad som börjar med tomma tecken fylls inte.</li>\n"
+" <li>Tomma rader avskiljer avsnitt.</li>\n"
+"</ul>"
+
+# Mailman/Gui/General.py:283
+# Mailman/Gui/General.py:287
+#: Mailman/Gui/General.py:287
+msgid "Send welcome message to newly subscribed members?"
+msgstr "Skicka välkomsthälsning till nya medlemmar?"
+
+# Mailman/Gui/General.py:284
+# Mailman/Gui/General.py:288
+#: Mailman/Gui/General.py:288
+msgid ""
+"Turn this off only if you plan on subscribing people manually\n"
+" and don't want them to know that you did so. This option is "
+"most\n"
+" useful for transparently migrating lists from some other "
+"mailing\n"
+" list manager to Mailman."
+msgstr ""
+"Sätt detta till 'Nej' bara om du ska lägga in nya medlemmar manuellt,\n"
+"och inte vill att de ska få veta om det.\n"
+"Detta är ofta användbart när man går över från\n"
+"ett annat e-postlistsystem till Mailman,\n"
+"och vill att övergången ska märkas så lite som möjligt."
+
+# Mailman/Gui/General.py:290
+# Mailman/Gui/General.py:294
+#: Mailman/Gui/General.py:294
+msgid ""
+"Text sent to people leaving the list. If empty, no special\n"
+" text will be added to the unsubscribe message."
+msgstr ""
+"Text som skickas till medlemmar som avanmäler sig från listan.\n"
+"Är denna tom, läggs det inte till någon speciell text till "
+"avanmälningsmeddelandet."
+
+# Mailman/Gui/General.py:294
+# Mailman/Gui/General.py:298
+#: Mailman/Gui/General.py:298
+msgid "Send goodbye message to members when they are unsubscribed?"
+msgstr "Skicka avskedshälsning till medlemmar när de avanmäler sig?"
+
+# Mailman/Gui/General.py:297
+# Mailman/Gui/General.py:301
+#: Mailman/Gui/General.py:301
+msgid ""
+"Should the list moderators get immediate notice of new\n"
+" requests, as well as daily notices about collected ones?"
+msgstr ""
+"Ska listmoderatorn ta emot nya meddelanden med frågor så snart de kommer,\n"
+"liksom även dagliga meddelanden om frågor som väntar på behandling?"
+
+# Mailman/Gui/General.py:300
+# Mailman/Gui/General.py:304
+#: Mailman/Gui/General.py:304
+msgid ""
+"List moderators (and list administrators) are sent daily\n"
+" reminders of requests pending approval, like subscriptions to "
+"a\n"
+" moderated list, or postings that are being held for one reason "
+"or\n"
+" another. Setting this option causes notices to be sent\n"
+" immediately on the arrival of new requests as well."
+msgstr ""
+"Det skickas ut påminnelse till listmoderatorn (och listadministratören) "
+"varje dag om frågor som av\n"
+"en eller annan anledning väntar på behandling. Väljer du \"Ja\", kommer\n"
+"listadminstratören också att ta emot ett meddelande så snart en fråga kommer "
+"in."
+
+# Mailman/Gui/General.py:307
+# Mailman/Gui/General.py:311
+#: Mailman/Gui/General.py:311
+msgid ""
+"Should administrator get notices of subscribes and\n"
+" unsubscribes?"
+msgstr ""
+"Ska listadministratören också ta emot meddelanden om nya medlemmar som "
+"anmäler sig\n"
+"och gamla medlemmar som avanmäler sig?"
+
+# Mailman/Gui/General.py:312
+# Mailman/Gui/General.py:316
+#: Mailman/Gui/General.py:316
+msgid "Send mail to poster when their posting is held for approval?"
+msgstr ""
+"Skicka e-postbrev till avsändare när deras e-postbrev till listan hålls "
+"tillbaka för godkännande?"
+
+# Mailman/Gui/General.py:314
+# Mailman/Gui/General.py:318
+#: Mailman/Gui/General.py:318
+msgid ""
+"Approval notices are sent when mail triggers certain of the\n"
+" limits <em>except</em> routine list moderation and spam "
+"filters,\n"
+" for which notices are <em>not</em> sent. This option "
+"overrides\n"
+" ever sending the notice."
+msgstr ""
+"Besked om att ett meddelande måste godkännas skickas ut till avsändaren om\n"
+"meddelandet stoppas p g a något annat än listmoderation eller spamfilter.\n"
+"Sätts denna inställning till 'Nej', kommer avsändaren över huvud taget inte "
+"att ta emot\n"
+"detta besked."
+
+# Mailman/Gui/General.py:319
+# Mailman/Gui/General.py:323
+#: Mailman/Gui/General.py:323
+msgid "Additional settings"
+msgstr "Ytterligare inställningar"
+
+# Mailman/Cgi/admin.py:466
+# Mailman/Cgi/admin.py:467
+#: Mailman/Gui/General.py:326
+#, fuzzy
+msgid "Emergency moderation of all list traffic."
+msgstr "Omedelbart återhållande av anmälningar till listan:"
+
+#: Mailman/Gui/General.py:327
+msgid ""
+"When this option is enabled, all list traffic is emergency\n"
+" moderated, i.e. held for moderation. Turn this option on when\n"
+" your list is experiencing a flamewar and you want a cooling "
+"off\n"
+" period."
+msgstr ""
+
+# Mailman/Gui/General.py:328
+# Mailman/Gui/General.py:332
+#: Mailman/Gui/General.py:339
+msgid ""
+"Default options for new members joining this list.<input\n"
+" type=\"hidden\" name=\"new_member_options\" value=\"ignore\">"
+msgstr ""
+"Standardval för nya medlemmar som anmäls till listan.\n"
+"<input type=\"hidden\" name=\"new_member_options\" value=\"ignore\">"
+
+# Mailman/Gui/General.py:331
+# Mailman/Gui/General.py:335
+#: Mailman/Gui/General.py:342
+msgid ""
+"When a new member is subscribed to this list, their initial\n"
+" set of options is taken from the this variable's setting."
+msgstr ""
+"När en ny medlem anmäls på listan, blir medlemmens inställningar hämtade "
+"härifrån."
+
+# Mailman/Gui/General.py:335
+# Mailman/Gui/General.py:339
+#: Mailman/Gui/General.py:346
+msgid ""
+"(Administrivia filter) Check postings and intercept ones\n"
+" that seem to be administrative requests?"
+msgstr ""
+"(Filter för administrativa meddelanden) Göra en undersökning av meddelanden\n"
+"till e-postlistan och ta tag i meddelanden som ser ut som om de är\n"
+"administrativa frågor?"
+
+# Mailman/Gui/General.py:338
+# Mailman/Gui/General.py:342
+#: Mailman/Gui/General.py:349
+msgid ""
+"Administrivia tests will check postings to see whether it's\n"
+" really meant as an administrative request (like subscribe,\n"
+" unsubscribe, etc), and will add it to the the administrative\n"
+" requests queue, notifying the administrator of the new "
+"request,\n"
+" in the process."
+msgstr ""
+"Filter för administrativa meddelanden kommer att undersöka om meddelandet "
+"egentligen är\n"
+"menat som en administrativ fråga (till exempel anmälan, avanmälan och "
+"liknande),\n"
+"och i så fall skicka meddelandet till administratören istället."
+
+# Mailman/Gui/General.py:345
+# Mailman/Gui/General.py:349
+#: Mailman/Gui/General.py:356
+msgid ""
+"Maximum length in kilobytes (KB) of a message body. Use 0\n"
+" for no limit."
+msgstr ""
+"Maximal storlek i kilobytes (KB) för innehållet i e-postbrev som skickas "
+"till listan.\n"
+"Använd värdet '0' för att inte ha någon begränsning."
+
+# Mailman/Gui/General.py:349
+# Mailman/Gui/General.py:353
+#: Mailman/Gui/General.py:360
+msgid "Host name this list prefers for email."
+msgstr "Namn på värddator som denna lista ska använda för e-postadresser."
+
+# Mailman/Gui/General.py:351
+# Mailman/Gui/General.py:355
+#: Mailman/Gui/General.py:362
+msgid ""
+"The \"host_name\" is the preferred name for email to\n"
+" mailman-related addresses on this host, and generally should "
+"be\n"
+" the mail host's exchanger address, if any. This setting can "
+"be\n"
+" useful for selecting among alternative names of a host that "
+"has\n"
+" multiple addresses."
+msgstr ""
+"\"Namn på värddator\" är det namn som ska användas för e-postadresser som är "
+"relaterade till\n"
+"Mailman på denna maskin, och är vanligvis det namn som är förknippat med\n"
+"e-posttjänsten på denna maskin. Denna inställning kan vara användbar om\n"
+"maskinen/värddatorn har flera namn."
+
+# Mailman/Gui/General.py:363
+# Mailman/Gui/General.py:367
+#: Mailman/Gui/General.py:374
+#, fuzzy
+msgid ""
+"Should messages from this mailing list include the\n"
+" <a href=\"http://www.faqs.org/rfcs/rfc2369.html\">RFC 2369</"
+"a>\n"
+" (i.e. <tt>List-*</tt>) headers? <em>Yes</em> is highly\n"
+" recommended."
+msgstr ""
+"Ska meddelanden som skickas ut från denna e-postlista innehålla\n"
+"<a href=\"http://www.faqs.org/rfc/rfc2369.html\">RFC 2369</a>\n"
+"(<tt>List-*</tt>) fält i meddelandehuvudet?\n"
+"<em>Ja</em> rekommenderas varmt."
+
+# Mailman/Gui/General.py:368
+# Mailman/Gui/General.py:372
+#: Mailman/Gui/General.py:379
+msgid ""
+"RFC 2369 defines a set of List-* headers that are\n"
+" normally added to every message sent to the list "
+"membership.\n"
+" These greatly aid end-users who are using standards "
+"compliant\n"
+" mail readers. They should normally always be enabled.\n"
+"\n"
+" <p>However, not all mail readers are standards compliant "
+"yet,\n"
+" and if you have a large number of members who are using\n"
+" non-compliant mail readers, they may be annoyed at these\n"
+" headers. You should first try to educate your members as "
+"to\n"
+" why these headers exist, and how to hide them in their "
+"mail\n"
+" clients. As a last resort you can disable these headers, "
+"but\n"
+" this is not recommended (and in fact, your ability to "
+"disable\n"
+" these headers may eventually go away)."
+msgstr ""
+"I RFC 2369 definieras en rad List-* fält i meddelandehuvudet, som "
+"vanligtvis\n"
+"läggs till varje meddelande som skickas ut via listan. Dessa fält kan "
+"hjälpa\n"
+"de användare av listan som nyttjar en e-postläsare som följer denna "
+"standard.\n"
+"Dessa fält bör därför alltid vara med.\n"
+"\n"
+"<p>Det är dock inte alla e-postläsare som följer denna standard. Är det "
+"många av medlemmarna\n"
+"på listan som använder sådana e-postläsare, och som blir förvirrade av \n"
+"fälten i meddelandehuvudet, kan du välja att utesluta fälten.\n"
+"Men du bör först försöka att lära och förklara för medlemmarna vad avsikten "
+"är med sådana\n"
+"fält, och hur de kan dölja dem i sina e-postläsare. Som en sista utväg\n"
+"kan du utesluta dessa fält, men detta rekommenderas inte (denna möjligghet "
+"kan\n"
+"faktiskt också försvinna i senare versioner)."
+
+# Mailman/Gui/General.py:386
+# Mailman/Gui/General.py:390
+#: Mailman/Gui/General.py:397
+msgid "Should postings include the <tt>List-Post:</tt> header?"
+msgstr "Ska e-postbrev till listan innehålla <tt>List-Post</tt> fältet?"
+
+# Mailman/Gui/General.py:387
+# Mailman/Gui/General.py:391
+#: Mailman/Gui/General.py:398
+#, fuzzy
+msgid ""
+"The <tt>List-Post:</tt> header is one of the headers\n"
+" recommended by\n"
+" <a href=\"http://www.faqs.org/rfcs/rfc2369.html\">RFC 2369</"
+"a>.\n"
+" However for some <em>announce-only</em> mailing lists, only a\n"
+" very select group of people are allowed to post to the list; "
+"the\n"
+" general membership is usually not allowed to post. For lists "
+"of\n"
+" this nature, the <tt>List-Post:</tt> header is misleading.\n"
+" Select <em>No</em> to disable the inclusion of this header. "
+"(This\n"
+" does not affect the inclusion of the other <tt>List-*:</tt>\n"
+" headers.)"
+msgstr ""
+"<tt>List-Post:</tt> fältet är ett av fälten som rekommenderas av \n"
+"<a href=\"http://www.faqs.org/rfc/rfc2369.html\">RFC 2369</a>.\n"
+"Vissa e-postlistor (som till exempel sådana som bara används för "
+"kungörelser),\n"
+"är det bara vissa personer som får lov att skicka till;\n"
+"de som är medlemmar av listan har i allmänhet inte rättighet att skicka till "
+"listan.\n"
+"För sådana listor, är <tt>List-Post:</tt> fältet förvirrande.\n"
+"Det kan då vara bra att sätta denna inställning till <em>Nej</em>,\n"
+"så att detta fält inte läggs till.\n"
+"(Detta påverkar inte andra <tt>List-*:</tt> fält.)"
+
+# Mailman/Gui/General.py:405
+# Mailman/Gui/General.py:409
+#: Mailman/Gui/General.py:416
+msgid ""
+"<b>real_name</b> attribute not\n"
+" changed! It must differ from the list's name by case\n"
+" only."
+msgstr ""
+"<b>real_name</b> ändrades inte! Du kan bara ändra stora eller små bokstäver "
+"i namnet."
+
+# Mailman/Gui/General.py:422
+# Mailman/Gui/General.py:430
+#: Mailman/Gui/General.py:437
+msgid ""
+"You cannot add a Reply-To: to an explicit\n"
+" address if that address is blank. Resetting these values."
+msgstr ""
+"Du kan inte lägga till ett Reply-To: fält om adressen är tom.\n"
+"Sätter tillbaka denna inställning."
+
+# Mailman/Gui/Language.py:32
+# Mailman/Gui/Language.py:32
+#: Mailman/Gui/Language.py:34
+msgid "Language&nbsp;options"
+msgstr "Inställningar&nbsp;för&nbsp;språk"
+
+# Mailman/Gui/Language.py:53
+# Mailman/Gui/Language.py:53
+#: Mailman/Gui/Language.py:66
+msgid "Natural language (internationalization) options."
+msgstr "Stöd för flera språk. (Internationalisering)"
+
+# Mailman/Gui/Language.py:58
+# Mailman/Gui/Language.py:58
+#: Mailman/Gui/Language.py:71
+msgid "Default language for this list."
+msgstr "Standardspråk för denna lista."
+
+# Mailman/Gui/Language.py:59
+# Mailman/Gui/Language.py:59
+#: Mailman/Gui/Language.py:72
+msgid ""
+"This is the default natural language for this mailing list.\n"
+" If <a href=\"?VARHELP=language/available_languages\">more than "
+"one\n"
+" language</a> is supported then users will be able to select "
+"their\n"
+" own preferences for when they interact with the list. All "
+"other\n"
+" interactions will be conducted in the default language. This\n"
+" applies to both web-based and email-based messages, but not to\n"
+" email posted by list members."
+msgstr ""
+"Detta är det standardspråk som används för denna e-postlista.\n"
+"Om <a href=\"?VARHELP=language/available_languages\">mer än ett språk/<a>\n"
+"stöds, kommer medlemmar av listan att själva kunna välja vilket språk som "
+"ska\n"
+"användas när de går in på sin personliga webbsida, och när meddelanden från\n"
+"systemet skickas till dem.\n"
+"Om medlemmen inte själv ändrar något, kommer detta standardspråk att "
+"användas.\n"
+"Detta gäller både webbaserade och e-postbaserade meddelanden, men inte "
+"meddelanden\n"
+"som skickas av listans medlemmar."
+
+# Mailman/Gui/Language.py:69
+# Mailman/Gui/Language.py:69
+#: Mailman/Gui/Language.py:82
+msgid "Languages supported by this list."
+msgstr "Språk som denna lista stöder."
+
+# Mailman/Gui/Language.py:71
+# Mailman/Gui/Language.py:71
+#: Mailman/Gui/Language.py:84
+msgid ""
+"These are all the natural languages supported by this list.\n"
+" Note that the\n"
+" <a href=\"?VARHELP=language/preferred_language\">default\n"
+" language</a> must be included."
+msgstr ""
+"Här är alla språk som denna lista har stöd för.\n"
+"Observera att <a href=\"?VARHELP=language/preferred_language"
+"\">standardspråket</a>\n"
+"måste vara med."
+
+# Mailman/Cgi/options.py:664
+# Mailman/Gui/Language.py:77
+#: Mailman/Gui/Language.py:90
+#, fuzzy
+msgid "Always"
+msgstr "Alltid"
+
+# Mailman/Gui/Language.py:77
+#: Mailman/Gui/Language.py:90
+msgid "As needed"
+msgstr "Efter behov"
+
+# Mailman/Cgi/admindb.py:279 Mailman/Cgi/admindb.py:328
+# Mailman/Cgi/admindb.py:367 Mailman/Cgi/admindb.py:574
+# Mailman/Gui/Language.py:77
+#: Mailman/Gui/Language.py:90
+#, fuzzy
+msgid "Never"
+msgstr "Aldrig"
+
+# Mailman/Gui/Language.py:78
+#: Mailman/Gui/Language.py:91
+msgid ""
+"Encode the\n"
+" <a href=\"?VARHELP=general/subject_prefix\">subject\n"
+" prefix</a> even when it consists of only ASCII characters?"
+msgstr ""
+"Koda\n"
+" <a href=\"?VARHELP=general/subject_prefix\">subject\n"
+" prefix</a> även när det endast består av ASCII-tecken?"
+
+# Mailman/Gui/Language.py:82
+#: Mailman/Gui/Language.py:95
+msgid ""
+"If your mailing list's default language uses a non-ASCII\n"
+" character set and the prefix contains non-ASCII characters, "
+"the\n"
+" prefix will always be encoded according to the relevant\n"
+" standards. However, if your prefix contains only ASCII\n"
+" characters, you may want to set this option to <em>Never</em> "
+"to\n"
+" disable prefix encoding. This can make the subject headers\n"
+" slightly more readable for users with mail readers that don't\n"
+" properly handle non-ASCII encodings.\n"
+"\n"
+" <p>Note however, that if your mailing list receives both "
+"encoded\n"
+" and unencoded subject headers, you might want to choose <em>As\n"
+" needed</em>. Using this setting, Mailman will not encode "
+"ASCII\n"
+" prefixes when the rest of the header contains only ASCII\n"
+" characters, but if the original header contains non-ASCII\n"
+" characters, it will encode the prefix. This avoids an "
+"ambiguity\n"
+" in the standards which could cause some mail readers to "
+"display\n"
+" extra, or missing spaces between the prefix and the original\n"
+" header."
+msgstr ""
+"Om din e-postlistas standardspråk använder en teckenuppsättning som inte "
+"använder ASCII\n"
+" och om prefixen innehåller tecken som inte är ASCII, kommer\n"
+" prefixet alltid att kodas i enlighet med gällande\n"
+" standard. Om ditt prefix bara innehåller ASCII-\n"
+" tecken, kanske du vill sätt ditt val till <em>Aldrig</em> för\n"
+" att avaktivera prefixkodning. Detta kan göra ämnesrubrikerna\n"
+" mer läsbara för användare med e-postprogram som inte\n"
+" klarar av att hantera non-ASCII tecken.\n"
+"\n"
+" <p>Observera att om din e-postlista får meddelanden som kan ha "
+"både kodade och okodade\n"
+" ämnesrubriker, så kanske du vill välja <em>Efter\n"
+" behov</em>. Om du väljer denna inställning, kommer Mailman "
+"inte att koda ASCII\n"
+" -prefix om resten av huvudet bara innehåller bara ASCII-"
+"tecken,\n"
+" men om originalhuvudet innehåller non-ASCII-tecken\n"
+" kommer Mailman att koda prefix. Detta gör att man undviker en "
+"ambivalens\n"
+" i standarden som kan orsaka att vissa e-postläsare visar extra\n"
+" eller saknade utrymmen mellan prefix och originalhuvud."
+
+# Mailman/Gui/Membership.py:26
+# Mailman/Gui/Membership.py:26
+#: Mailman/Gui/Membership.py:26
+msgid "Membership&nbsp;Management"
+msgstr "Administrera&nbsp;medlemmar"
+
+# Mailman/Gui/Membership.py:30
+# Mailman/Gui/Membership.py:30
+#: Mailman/Gui/Membership.py:30
+msgid "Membership&nbsp;List"
+msgstr "Lista&nbsp;&ouml;ver&nbsp;medlemmar"
+
+# Mailman/Gui/Membership.py:31
+# Mailman/Gui/Membership.py:31
+#: Mailman/Gui/Membership.py:31
+msgid "Mass&nbsp;Subscription"
+msgstr "L&auml;gga&nbsp;in&nbsp;nya&nbsp;medlemmar&nbsp;p&aring;&nbsp;listan"
+
+# Mailman/Gui/Membership.py:32
+# Mailman/Gui/Membership.py:32
+#: Mailman/Gui/Membership.py:32
+msgid "Mass&nbsp;Removal"
+msgstr "Ta&nbsp;bort&nbsp;medlemmar&nbsp;fr&aring;n&nbsp;listan"
+
+# Mailman/Gui/NonDigest.py:34
+# Mailman/Gui/NonDigest.py:34
+#: Mailman/Gui/NonDigest.py:34
+msgid "Non-digest&nbsp;options"
+msgstr "Inst&auml;llningar&nbsp;f&ouml;r&nbsp;normalversion"
+
+# Mailman/Gui/NonDigest.py:42
+# Mailman/Gui/NonDigest.py:42
+#: Mailman/Gui/NonDigest.py:42
+msgid "Policies concerning immediately delivered list traffic."
+msgstr "Regler för utskick i normalversion."
+
+# Mailman/Gui/NonDigest.py:45
+# Mailman/Gui/NonDigest.py:45
+#: Mailman/Gui/NonDigest.py:45
+msgid ""
+"Can subscribers choose to receive mail immediately, rather\n"
+" than in batched digests?"
+msgstr ""
+"Kan medlemmar välja att ta emot e-postbrev omedelbart, istället\n"
+"för i samlingsepost?"
+
+#: Mailman/Gui/NonDigest.py:52
+msgid "Full Personalization"
+msgstr ""
+
+# Mailman/Gui/NonDigest.py:53
+# Mailman/Gui/NonDigest.py:53
+#: Mailman/Gui/NonDigest.py:54
+msgid ""
+"Should Mailman personalize each non-digest delivery?\n"
+" This is often useful for announce-only lists, but <a\n"
+" href=\"?VARHELP=nondigest/personalize\">read the details</"
+"a>\n"
+" section for a discussion of important performance\n"
+" issues."
+msgstr ""
+"Ska Mailman göra varje e-postbrev som skickas via listan (i normalversion) "
+"personligt?\n"
+"Detta är ofta användbart för e-postlistor avsedda att användas för "
+"kungörelser,\n"
+"men <a href=\"?VARHELP=nondigest/personalize\">läs hjälptexten</a> för en\n"
+"diskussion kring resultatet."
+
+# Mailman/Gui/NonDigest.py:59
+# Mailman/Gui/NonDigest.py:59
+#: Mailman/Gui/NonDigest.py:60
+#, fuzzy
+msgid ""
+"Normally, Mailman sends the regular delivery messages to\n"
+" the mail server in batches. This is much more efficent\n"
+" because it reduces the amount of traffic between Mailman "
+"and\n"
+" the mail server.\n"
+"\n"
+" <p>However, some lists can benefit from a more "
+"personalized\n"
+" approach. In this case, Mailman crafts a new message for\n"
+" each member on the regular delivery list. Turning this\n"
+" feature on may degrade the performance of your site, so "
+"you\n"
+" need to carefully consider whether the trade-off is worth "
+"it,\n"
+" or whether there are other ways to accomplish what you "
+"want.\n"
+" You should also carefully monitor your system load to make\n"
+" sure it is acceptable.\n"
+"\n"
+" <p>Select <em>No</em> to disable personalization and send\n"
+" messages to the members in batches. Select <em>Yes</em> "
+"to\n"
+" personalize deliveries and allow additional substitution\n"
+" variables in message headers and footers (see below). In\n"
+" addition, by selecting <em>Full Personalization</em>, the\n"
+" <code>To</code> header of posted messages will be modified "
+"to\n"
+" include the member's address instead of the list's posting\n"
+" address.\n"
+"\n"
+" <p>When personalization is enabled, a few more expansion\n"
+" variables that can be included in the <a\n"
+" href=\"?VARHELP=nondigest/msg_header\">message header</a> "
+"and\n"
+" <a href=\"?VARHELP=nondigest/msg_footer\">message footer</"
+"a>.\n"
+"\n"
+" <p>These additional substitution variables will be "
+"available\n"
+" for your headers and footers, when this feature is "
+"enabled:\n"
+"\n"
+" <ul><li><b>user_address</b> - The address of the user,\n"
+" coerced to lower case.\n"
+" <li><b>user_delivered_to</b> - The case-preserved "
+"address\n"
+" that the user is subscribed with.\n"
+" <li><b>user_password</b> - The user's password.\n"
+" <li><b>user_name</b> - The user's full name.\n"
+" <li><b>user_optionsurl</b> - The url to the user's "
+"option\n"
+" page.\n"
+" </ul>\n"
+" "
+msgstr ""
+"Vanligtvis skickas meddelanden till listan till mailservern gruppvis.\n"
+"Denna metod är mycket mer effektiv och lönsam, eftersom den reducerar "
+"trafiken\n"
+"mellan Mailman och mailservern.\n"
+"<p>För några e-postlistor kan det emellertid vara önskvärt att göra "
+"meddelandena som\n"
+"distribueras till medlemmarna lite mer personliga. Då kommer Mailman att "
+"vara tvungen \n"
+"att göra ett eget meddelande till varje medlem, och det kommer att leda till "
+"ökad trafik och\n"
+"belastning på servern. Om du använder denna möjlighet, bör du först ha "
+"tänkt\n"
+"igenom vad detta kan få för konsekvenser för servern och belastningen på "
+"systemet, och om\n"
+"det är värt det. Kanske kan det du önskar att uppnå göras på ett annat sätt. "
+"Det kan också vara svårt att övervaka belastningen på\n"
+"servern om denna möjlighet tas i bruk.\n"
+"<p>När möjligheten till personalisering av listan används, händer två "
+"saker.\n"
+"Det ena är att <code>Till:</code> fältet i meddelandehuvudet på e-postbrevet "
+"som ska\n"
+"distribueras, modifieras så att e-postbrevet adresseras till den enskilde "
+"medlemmen.\n"
+"Det kommer då att se ut som om meddelandet skickades direkt til medlemmen, "
+"och inte till\n"
+"listan.\n"
+"<p>Det andra är att några ytterligare variabler kan användas i\n"
+"<a href=\"?VARHELP=nondigest/msg_header\">topptext</a> och i\n"
+"<a href=\"?VARHELP=nondigest/msg_footer\">bottentext</a>, nämligen\n"
+"följande variabler:\n"
+"\n"
+"<ul>\n"
+" <li><b>user_address</b> - medlemmens e-postadress, med små bokstäver</li>\n"
+" <li><b>user_delivered_to</b> - medlemmens e-postadress, såsom den blev "
+"anmäld till listan.</li>\n"
+" <li><b>user_password</b> - medlemmens lösenord</li>\n"
+" <li><b>user_name</b> - Medlemmens fullständiga namn</li>\n"
+" <li><b>user_optionsurl</b> - URL till webbsidan med personliga "
+"inställningar för medlemmen.\n"
+"</ul>\n"
+" "
+
+# Mailman/Gui/NonDigest.py:104
+# Mailman/Gui/NonDigest.py:104
+#: Mailman/Gui/NonDigest.py:108
+msgid "Header added to mail sent to regular list members"
+msgstr ""
+"Rubrik som läggs till överst i e-postbrev som skickas till listans medlemmar"
+
+# Mailman/Gui/NonDigest.py:105
+# Mailman/Gui/NonDigest.py:105
+#: Mailman/Gui/NonDigest.py:109
+msgid ""
+"Text prepended to the top of every immediately-delivery\n"
+" message. "
+msgstr "Text som läggs till överst i alla e-postbrev som skickas direkt. "
+
+# Mailman/Gui/NonDigest.py:110
+# Mailman/Gui/NonDigest.py:110
+#: Mailman/Gui/NonDigest.py:114
+msgid "Footer added to mail sent to regular list members"
+msgstr ""
+"Bottentext som läggs till nederst i e-postbrev som skickas till listans "
+"medlemmar"
+
+# Mailman/Gui/NonDigest.py:111
+# Mailman/Gui/NonDigest.py:111
+#: Mailman/Gui/NonDigest.py:115
+msgid ""
+"Text appended to the bottom of every immediately-delivery\n"
+" message. "
+msgstr "Text som läggs till nederst i e-postbrev som skickas direkt. "
+
+# Mailman/Gui/Passwords.py:27
+# Mailman/Gui/Passwords.py:27
+#: Mailman/Gui/Passwords.py:27
+msgid "Passwords"
+msgstr "Lösenord"
+
+# Mailman/Gui/Privacy.py:28
+# Mailman/Gui/Privacy.py:28
+#: Mailman/Gui/Privacy.py:28
+msgid "Privacy options"
+msgstr "Personliga val"
+
+# Mailman/Gui/Privacy.py:32
+# Mailman/Gui/Privacy.py:32
+#: Mailman/Gui/Privacy.py:32
+msgid "Subscription&nbsp;rules"
+msgstr "Ans&ouml;kningsregler"
+
+# Mailman/Gui/Privacy.py:33
+# Mailman/Gui/Privacy.py:33
+#: Mailman/Gui/Privacy.py:33
+msgid "Sender&nbsp;filters"
+msgstr "Filtrering&nbsp;p&aring;&nbsp;avs&auml;ndare"
+
+# Mailman/Gui/Privacy.py:33
+# Mailman/Gui/Privacy.py:34
+#: Mailman/Gui/Privacy.py:34
+#, fuzzy
+msgid "Recipient&nbsp;filters"
+msgstr "Filtrering&nbsp;p&aring;&nbsp;mottagare"
+
+# Mailman/Gui/Privacy.py:34
+# Mailman/Gui/Privacy.py:35
+#: Mailman/Gui/Privacy.py:35
+msgid "Spam&nbsp;filters"
+msgstr "Spamfilter"
+
+# Mailman/Gui/Privacy.py:48
+# Mailman/Gui/Privacy.py:49 Mailman/Gui/Usenet.py:61
+#: Mailman/Gui/Privacy.py:49 Mailman/Gui/Usenet.py:61
+msgid "None"
+msgstr "Ingen"
+
+# Mailman/Gui/Privacy.py:49 Mailman/Gui/Privacy.py:72
+# Mailman/Gui/Privacy.py:50 Mailman/Gui/Privacy.py:73
+#: Mailman/Gui/Privacy.py:50 Mailman/Gui/Privacy.py:73
+msgid "Confirm"
+msgstr "Bekräfta"
+
+# Mailman/Gui/Privacy.py:50 Mailman/Gui/Privacy.py:73
+# Mailman/Gui/Privacy.py:51 Mailman/Gui/Privacy.py:74
+#: Mailman/Gui/Privacy.py:51 Mailman/Gui/Privacy.py:74
+msgid "Require approval"
+msgstr "Begär godkännande"
+
+# Mailman/Gui/Privacy.py:51 Mailman/Gui/Privacy.py:74
+# Mailman/Gui/Privacy.py:52 Mailman/Gui/Privacy.py:75
+#: Mailman/Gui/Privacy.py:52 Mailman/Gui/Privacy.py:75
+msgid "Confirm and approve"
+msgstr "Bekräfta och godkänn"
+
+# Mailman/Gui/Privacy.py:53 Mailman/Gui/Privacy.py:76
+# Mailman/Gui/Privacy.py:54 Mailman/Gui/Privacy.py:77
+#: Mailman/Gui/Privacy.py:54 Mailman/Gui/Privacy.py:77
+msgid "What steps are required for subscription?<br>"
+msgstr "Vad krävs när någon önskar att anmäla sig på listan?"
+
+# Mailman/Gui/Privacy.py:54
+# Mailman/Gui/Privacy.py:55
+#: Mailman/Gui/Privacy.py:55
+msgid ""
+"None - no verification steps (<em>Not\n"
+" Recommended </em>)<br>\n"
+" Confirm (*) - email confirmation step required "
+"<br>\n"
+" Require approval - require list administrator\n"
+" Approval for subscriptions <br>\n"
+" Confirm and approve - both confirm and approve\n"
+" \n"
+" <p>(*) when someone requests a subscription,\n"
+" Mailman sends them a notice with a unique\n"
+" subscription request number that they must reply "
+"to\n"
+" in order to subscribe.<br>\n"
+"\n"
+" This prevents mischievous (or malicious) people\n"
+" from creating subscriptions for others without\n"
+" their consent."
+msgstr ""
+"Ingen - ingen bekräftelse nödvändig (<em>Rekommenderas inte!</em>)<br>\n"
+"Bekräftelse(*) - bekräftelse på e-post är nödvändig<br>\n"
+"Godkännande - ansökan om medlemskap måste godkännas av listadministratör "
+"(eller eventuellt listmoderator)<br>\n"
+"Bekräftelse+godkännande - både bekräftelse på e-post och godkännande av "
+"listadministratör (eventuellt listmoderator) är nödvändigt<br>\n"
+"\n"
+"<p>(*) när någon vill anmäla sig på en lista, skickar Mailman ett meddelande "
+"med en unik identifikator som måste uppges för att bekräfta anmälan.<br>\n"
+"På detta sätt kommer det då inte att vara möjligt att anmäla någon till "
+"listan mot dennes vilja."
+
+# Mailman/Gui/Privacy.py:77
+# Mailman/Gui/Privacy.py:78
+#: Mailman/Gui/Privacy.py:78
+msgid ""
+"Confirm (*) - email confirmation required <br>\n"
+" Require approval - require list administrator\n"
+" approval for subscriptions <br>\n"
+" Confirm and approve - both confirm and approve\n"
+" \n"
+" <p>(*) when someone requests a subscription,\n"
+" Mailman sends them a notice with a unique\n"
+" subscription request number that they must reply "
+"to\n"
+" in order to subscribe.<br> This prevents\n"
+" mischievous (or malicious) people from creating\n"
+" subscriptions for others without their consent."
+msgstr ""
+"bekräftelse(*) - bekräftelse på e-postbrev är nödvändig<br>\n"
+"godkännande - ansökan om medlemskap måste godkännas av listadministratör "
+"(eller eventuellt listmoderator)<br>\n"
+"bekräftelse+godkännande - både bekräftelse på e-post och godkännade av "
+"listadministratör (eventuellt listmoderator) är nödvändig<br>\n"
+"\n"
+"<p>(*) när någon vill anmäla sig på en lista, skickar Mailman ett meddelande "
+"med en unik identifikator som måste uppges för att bekräfta anmälan.<br>\n"
+"På detta sätt kommer det inte att vara möjligt att anmäla någon på listan "
+"mot dennes vilja."
+
+# Mailman/Gui/Privacy.py:93
+# Mailman/Gui/Privacy.py:94
+#: Mailman/Gui/Privacy.py:94
+msgid ""
+"This section allows you to configure subscription and\n"
+" membership exposure policy. You can also control whether this\n"
+" list is public or not. See also the\n"
+" <a href=\"%(admin)s/archive\">Archival Options</a> section for\n"
+" separate archive-related privacy settings."
+msgstr ""
+"Här kan du bestämma vad som krävs för att anmäla sig på e-postlistan,\n"
+"och bland annat bestämma om e-postlistan ska vara dold eller inte.\n"
+"Se också <a href=\"%(admin)s/archive\">Inställningar för arkivering</a> för "
+"egna\n"
+"inställningar när det gäller arkivet och arkivering."
+
+# Mailman/Gui/Privacy.py:99
+# Mailman/Gui/Privacy.py:100
+#: Mailman/Gui/Privacy.py:100
+msgid "Subscribing"
+msgstr "Anmälan"
+
+# Mailman/Gui/Privacy.py:101
+# Mailman/Gui/Privacy.py:102
+#: Mailman/Gui/Privacy.py:102
+msgid ""
+"Advertise this list when people ask what lists are on this\n"
+" machine?"
+msgstr ""
+"Visa denna e-postlista när någon ber om att få se en översikt över e-"
+"postlistor på denna maskin?"
+
+# Mailman/Gui/Privacy.py:107
+# Mailman/Gui/Privacy.py:108
+#: Mailman/Gui/Privacy.py:108
+msgid ""
+"Is the list moderator's approval required for unsubscription\n"
+" requests? (<em>No</em> is recommended)"
+msgstr ""
+"Måste listmoderatorn godkänna avanmälningar från listan?\n"
+"(<em>Nej</em> rekommenderas)"
+
+# Mailman/Gui/Privacy.py:110
+# Mailman/Gui/Privacy.py:111
+#: Mailman/Gui/Privacy.py:111
+msgid ""
+"When members want to leave a list, they will make an\n"
+" unsubscription request, either via the web or via email.\n"
+" Normally it is best for you to allow open unsubscriptions so "
+"that\n"
+" users can easily remove themselves from mailing lists (they "
+"get\n"
+" really upset if they can't get off lists!).\n"
+"\n"
+" <p>For some lists though, you may want to impose moderator\n"
+" approval before an unsubscription request is processed. "
+"Examples\n"
+" of such lists include a corporate mailing list that all "
+"employees\n"
+" are required to be members of."
+msgstr ""
+"När medlemmar önskar att lämna en e-postlista, skickar de en ansökan om "
+"avanmälan,\n"
+"antingen via webb, eller via e-postbrev. Vanligtvis är det bäst att låta "
+"sådana önskemål\n"
+"automatiskt godkännas, så att medlemmar kan avanmäla sig när de så önskar\n"
+"(de kommer att bli irriterade om de inte kan gå ur listan!).\n"
+"<p>För några enstaka e-postlistor kan det ändå vara aktuellt att ha kontroll "
+"på\n"
+"medlemmar som vill avanmäla sig.\n"
+"En lista som alla anställda i ett företag MåSTE vara medlem av, är ett "
+"exempel på\n"
+"en sådan lista."
+
+# Mailman/Gui/Privacy.py:121
+# Mailman/Gui/Privacy.py:122
+#: Mailman/Gui/Privacy.py:122
+msgid "Ban list"
+msgstr "Utestängda adresser"
+
+# Mailman/Gui/Privacy.py:123
+# Mailman/Gui/Privacy.py:124
+#: Mailman/Gui/Privacy.py:124
+msgid ""
+"List of addresses which are banned from membership in this\n"
+" mailing list."
+msgstr ""
+"Lista över e-postadresser som inte får lov att anmäla sig till denna e-"
+"postlista."
+
+# Mailman/Gui/Privacy.py:126
+# Mailman/Gui/Privacy.py:127
+#: Mailman/Gui/Privacy.py:127
+msgid ""
+"Addresses in this list are banned outright from subscribing\n"
+" to this mailing list, with no further moderation required. "
+"Add\n"
+" addresses one per line; start the line with a ^ character to\n"
+" designate a regular expression match."
+msgstr ""
+"Alla e-postadresser som anges här kommer att bli utestängda från listan, och "
+"kan inte\n"
+"anmäla sig. Lägg in e-postadresser, en per rad, börja raden med tecknet ^\n"
+"för att ange ett regexp-uttryck som ska passa med avsändaradressen."
+
+# Mailman/Gui/Privacy.py:131
+# Mailman/Gui/Privacy.py:132
+#: Mailman/Gui/Privacy.py:132
+msgid "Membership exposure"
+msgstr "Insyn i medlemskap"
+
+# Mailman/Gui/Privacy.py:133
+# Mailman/Gui/Privacy.py:134
+#: Mailman/Gui/Privacy.py:134
+msgid "Anyone"
+msgstr "Vem som helst"
+
+# Mailman/Gui/Privacy.py:133
+# Mailman/Gui/Privacy.py:134
+#: Mailman/Gui/Privacy.py:134
+msgid "List admin only"
+msgstr "Bara listadministratör"
+
+# Mailman/Gui/Privacy.py:133
+# Mailman/Gui/Privacy.py:134
+#: Mailman/Gui/Privacy.py:134
+msgid "List members"
+msgstr "Medlemmar av listan"
+
+# Mailman/Gui/Privacy.py:134
+# Mailman/Gui/Privacy.py:135
+#: Mailman/Gui/Privacy.py:135
+msgid "Who can view subscription list?"
+msgstr ""
+"Vem har tillgång till att se en lista över medlemmarna på e-postlistan?"
+
+# Mailman/Gui/Privacy.py:136
+# Mailman/Gui/Privacy.py:137
+#: Mailman/Gui/Privacy.py:137
+msgid ""
+"When set, the list of subscribers is protected by member or\n"
+" admin password authentication."
+msgstr ""
+"Om denna inställning är satt, kommer listan över medlemmarna på e-postlistan "
+"att bli skyddad av medlemmarnas eller adminstratörens lösenord."
+
+# Mailman/Gui/Privacy.py:140
+# Mailman/Gui/Privacy.py:141
+#: Mailman/Gui/Privacy.py:141
+#, fuzzy
+msgid ""
+"Show member addresses so they're not directly recognizable\n"
+" as email addresses?"
+msgstr ""
+"Visa medlemmars e-postadress så att de inte omedelbart ser ut som e-"
+"postadresser?"
+
+# Mailman/Gui/Privacy.py:142
+# Mailman/Gui/Privacy.py:143
+#: Mailman/Gui/Privacy.py:143
+msgid ""
+"Setting this option causes member email addresses to be\n"
+" transformed when they are presented on list web pages (both in\n"
+" text and as links), so they're not trivially recognizable as\n"
+" email addresses. The intention is to prevent the addresses\n"
+" from being snarfed up by automated web scanners for use by\n"
+" spammers."
+msgstr ""
+"Väljer du 'Ja' här, kommer medlemmars e-postadresser att skrivas om när de "
+"visas i en översikt på webbsidorna (både som text och i länkar),\n"
+"så att de inte är lätta att tolka som e-postadresser. Meningen med detta är "
+"att hindra robotar som går igenom webbsidor för att hitta e-postadresser\n"
+"och sedan använda dem för att skicka ut spam/skräppost. "
+
+# Mailman/Gui/Privacy.py:152
+# Mailman/Gui/Privacy.py:153
+#: Mailman/Gui/Privacy.py:153
+msgid ""
+"When a message is posted to the list, a series of\n"
+" moderation steps are take to decide whether the a moderator "
+"must\n"
+" first approve the message or not. This section contains the\n"
+" controls for moderation of both member and non-member postings.\n"
+"\n"
+" <p>Member postings are held for moderation if their\n"
+" <b>moderation flag</b> is turned on. You can control whether\n"
+" member postings are moderated by default or not.\n"
+"\n"
+" <p>Non-member postings can be automatically\n"
+" <a href=\"?VARHELP=privacy/sender/accept_these_nonmembers\"\n"
+" >accepted</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/hold_these_nonmembers\">held "
+"for\n"
+" moderation</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/reject_these_nonmembers\"\n"
+" >rejected</a> (bounced), or\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >discarded</a>,\n"
+" either individually or as a group. Any\n"
+" posting from a non-member who is not explicitly accepted,\n"
+" rejected, or discarded, will have their posting filtered by the\n"
+" <a href=\"?VARHELP=privacy/sender/generic_nonmember_action"
+"\">general\n"
+" non-member rules</a>.\n"
+"\n"
+" <p>In the text boxes below, add one address per line; start the\n"
+" line with a ^ character to designate a <a href=\n"
+" \"http://www.python.org/doc/current/lib/module-re.html\"\n"
+" >Python regular expression</a>. When entering backslashes, do "
+"so\n"
+" as if you were using Python raw strings (i.e. you generally "
+"just\n"
+" use a single backslash).\n"
+"\n"
+" <p>Note that non-regexp matches are always done first."
+msgstr ""
+"När en anmälan skickas till e-postlistan, går den igenom en rad steg\n"
+"för att avgöra om moderatorn måste godkänna anmälan eller ej.\n"
+"Här finns inställningar för att kontrollera moderering av e-postbrev från "
+"både medlemmar och icke-medlemmar.\n"
+"\n"
+"<p>E-postbrev från medlemmar hålls tillbaka för godkännande om "
+"<b>moderationsflaggan</b> är satt.\n"
+"Du kan bestämma om e-postbrev från medlemmar vanligtvis ska utvärderas eller "
+"inte innan de skickas till listan.\n"
+"\n"
+"<p>E-postbrev som inte har skickats av medlemmar av listan, kan automatiskt "
+"bli\n"
+"<a href=\"?VARHELP=privacy/sender/accept_these_nonmembers\">godkända</a>,\n"
+"<a href=\"?VARHELP=privacy/sender/hold_these_nonmembers\">hållas tillbaka "
+"för godkännande</a>,\n"
+"<a href=\"?VARHELP=privacy/sender/reject_these_nonmembers\">sändas i retur</"
+"a>, eller\n"
+"<a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\">kastade</a>,\n"
+"antingen individuellt eller som en grupp. Alla e-postbrev från icke-"
+"medlemmar,\n"
+"som inte specifikt blir godkända, återsända, eller kastade, kommer att bli "
+"behandlade\n"
+"allt efter vad <a href=\"?VARHELP=privacy/sender/generic_nonmember_action"
+"\">de allmänna reglerna för icke-medlemmar</a> säger.\n"
+"\n"
+"<p>I textrutorna nedan lägger du in en e-postadress per rad.\n"
+"Du kan också lägga in <a href=\"http://www.python.org/doc/current/lib/module-"
+"re.html\">Python regexp-uttryck</a>.\n"
+"Börja i så fall raden med tecknet ^ för att markera att det är ett sådant "
+"uttryck.\n"
+"När du använder backslash, skriv då såsom i rena strängar (Python raw "
+"strings) (vanligtvis bara en backslash per gång.\n"
+"\n"
+"<p>Observera: träff på vanliga e-postadresser utförs först, regexp-uttryck "
+"kommer därför att behandlas sist."
+
+# Mailman/Gui/Privacy.py:185
+# Mailman/Gui/Privacy.py:186
+#: Mailman/Gui/Privacy.py:186
+msgid "Member filters"
+msgstr "Filtrering av e-postbrev från medlemmar"
+
+# Mailman/Gui/Privacy.py:188
+# Mailman/Gui/Privacy.py:189
+#: Mailman/Gui/Privacy.py:189
+msgid "By default, should new list member postings be moderated?"
+msgstr ""
+"Ska e-postbrev till listan, skickade från nya medlemmar, vanligtvis "
+"utvärderas av moderatorn?"
+
+# Mailman/Gui/Privacy.py:190
+# Mailman/Gui/Privacy.py:191
+#: Mailman/Gui/Privacy.py:191
+msgid ""
+"Each list member has a <em>moderation flag</em> which says\n"
+" whether messages from the list member can be posted directly "
+"to\n"
+" the list, or must first be approved by the list moderator. "
+"When\n"
+" the moderation flag is turned on, list member postings must be\n"
+" approved first. You, the list administrator can decide whether "
+"a\n"
+" specific individual's postings will be moderated or not.\n"
+"\n"
+" <p>When a new member is subscribed, their initial moderation "
+"flag\n"
+" takes its value from this option. Turn this option off to "
+"accept\n"
+" member postings by default. Turn this option on to, by "
+"default,\n"
+" moderate member postings first. You can always manually set "
+"an\n"
+" individual member's moderation bit by using the\n"
+" <a href=\"%(adminurl)s/members\">membership management\n"
+" screens</a>."
+msgstr ""
+"Varje medlem av listan har en <em>moderationsflagga</em> som berättar om\n"
+"e-postbrev från medlemmen kan skickas direkt till e-postlistan, eller om de "
+"först\n"
+"måste godkännas av listmoderatorn.\n"
+"När moderationsflaggan är aktiverad måste e-postbrev från medlemmen "
+"godkännas av\n"
+"listmoderatorn innan det skickas ut till alla på listan. Som "
+"listadministratör\n"
+"kan du för varje enskild medlem bestämma om medlemmens e-postbrev ska "
+"modereras\n"
+"eller ej.\n"
+"<p>När en ny medlem anmäls på listan, sätts moderationsflaggan till den\n"
+"inställning du väljer här. Sätt den til 'Nej' om du önskar att e-postbrev\n"
+"från medlemmar vanligtvis ska gå direkt till listan. Sätt den till 'Ja' om "
+"du\n"
+"önskar att e-postbrev från nya medlemmar ska godkännas innan de skickas ut "
+"till hela\n"
+"listan. Du kan alltid ställa in moderationsflaggan för varje enskild medlem "
+"på\n"
+"<a href=\"%(adminurl)s/members\">Administrera medlemmar</a>-sidan."
+
+# Mailman/Gui/Privacy.py:206 Mailman/Gui/Privacy.py:280
+# Mailman/Gui/Privacy.py:207 Mailman/Gui/Privacy.py:281
+#: Mailman/Gui/Privacy.py:207 Mailman/Gui/Privacy.py:281
+msgid "Hold"
+msgstr "Hålla tillbaka"
+
+# Mailman/Gui/Privacy.py:207
+# Mailman/Gui/Privacy.py:208
+#: Mailman/Gui/Privacy.py:208
+msgid ""
+"Action to take when a moderated member posts to the\n"
+" list."
+msgstr "Vad som händer när en modererad medlem skickar e-postbrev till listan."
+
+# Mailman/Gui/Privacy.py:209
+# Mailman/Gui/Privacy.py:210
+#: Mailman/Gui/Privacy.py:210
+msgid ""
+"<ul><li><b>Hold</b> -- this holds the message for approval\n"
+" by the list moderators.\n"
+"\n"
+" <p><li><b>Reject</b> -- this automatically rejects the message "
+"by\n"
+" sending a bounce notice to the post's author. The text of the\n"
+" bounce notice can be <a\n"
+" href=\"?VARHELP=privacy/sender/member_moderation_notice\"\n"
+" >configured by you</a>.\n"
+"\n"
+" <p><li><b>Discard</b> -- this simply discards the message, "
+"with\n"
+" no notice sent to the post's author.\n"
+" </ul>"
+msgstr ""
+"<ul>\n"
+" <li><b>Håll tillbaka</b> -- meddelandet hålls tillbaka för godkännande av "
+"listmoderatorn.\n"
+" <p><li><b>Avslå</b> -- meddelandet skickas automatiskt i retur till "
+"avsändaren. Texten som bifogas kan du <a href=\"?VARHELP=privacy/sender/"
+"member_moderation_notice\">skriva själv</a>\n"
+" <p><li><b>Kasta</b> -- meddelandet kastas utan att ge besked om detta till "
+"avsändaren.\n"
+"</ul>"
+
+# Mailman/Gui/Privacy.py:223
+# Mailman/Gui/Privacy.py:224
+#: Mailman/Gui/Privacy.py:224
+msgid ""
+"Text to include in any\n"
+" <a href=\"?VARHELP/privacy/sender/member_moderation_action\"\n"
+" >rejection notice</a> to\n"
+" be sent to moderated members who post to this list."
+msgstr ""
+"Text som ska bifogas till\n"
+"<a href=\"?VARHELP/privacy/sender/member_moderation_action\">meddelandet om "
+"retur</a> som skickas til modererade medlemmar av listan."
+
+# Mailman/Gui/Privacy.py:228
+# Mailman/Gui/Privacy.py:229
+#: Mailman/Gui/Privacy.py:229
+msgid "Non-member filters"
+msgstr "Filtrering av e-postbrev från icke-medlemmar"
+
+# Mailman/Gui/Privacy.py:231
+# Mailman/Gui/Privacy.py:232
+#: Mailman/Gui/Privacy.py:232
+msgid ""
+"List of non-member addresses whose postings should be\n"
+" automatically accepted."
+msgstr ""
+"Lista över e-postadresser till icke-medlemmar som alltid ska godkännas."
+
+# Mailman/Gui/Privacy.py:234
+# Mailman/Gui/Privacy.py:235
+#: Mailman/Gui/Privacy.py:235
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" accepted with no further moderation applied. Add member\n"
+" addresses one per line; start the line with a ^ character to\n"
+" designate a regular expression match."
+msgstr ""
+"E-postbrev från dessa icke-medlemmar kommer automatiskt att godkännas.\n"
+"Lägg in e-postadresser, en per rad, börja raden med tecknet ^\n"
+"för att ange ett regexp-uttryck som ska passa med avsändaradressen."
+
+# Mailman/Gui/Privacy.py:240
+# Mailman/Gui/Privacy.py:241
+#: Mailman/Gui/Privacy.py:241
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" immediately held for moderation."
+msgstr ""
+"Lista över e-postadresser till icke-medlemmar som alltid ska hållas tillbaka "
+"för utvärdering."
+
+# Mailman/Gui/Privacy.py:243
+# Mailman/Gui/Privacy.py:244
+#: Mailman/Gui/Privacy.py:244
+msgid ""
+"Postings from any of these non-members will be immediately\n"
+" and automatically held for moderation by the list moderators.\n"
+" The sender will receive a notification message which will "
+"allow\n"
+" them to cancel their held message. Add member addresses one "
+"per\n"
+" line; start the line with a ^ character to designate a regular\n"
+" expression match."
+msgstr ""
+"E-postbrev från dessa icke-medlemmar kommer automatiskt att hållas tillbaka "
+"för\n"
+"utvärdering av listmoderatorn.\n"
+"Avsändaren kommer att ta emot ett meddelande om detta, med bland annat\n"
+"instruktioner om hur han/hon kan dra tillbaka sitt e-postbrev.\n"
+"Lägg in e-postadresser, en per rad, börja raden med tecknet ^\n"
+"för att ange ett regexp-uttryck som ska passa med avsändaradressen."
+
+# Mailman/Gui/Privacy.py:251
+# Mailman/Gui/Privacy.py:252
+#: Mailman/Gui/Privacy.py:252
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" automatically rejected."
+msgstr "Lista över e-postadresser till icke-medlemmar som alltid ska avvisas."
+
+# Mailman/Gui/Privacy.py:254
+# Mailman/Gui/Privacy.py:255
+#: Mailman/Gui/Privacy.py:255
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" rejected. In other words, their messages will be bounced back "
+"to\n"
+" the sender with a notification of automatic rejection. This\n"
+" option is not appropriate for known spam senders; their "
+"messages\n"
+" should be\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >automatically discarded</a>.\n"
+"\n"
+" <p>Add member addresses one per line; start the line with a ^\n"
+" character to designate a regular expression match."
+msgstr ""
+"E-postbrev från dessa icke-medlemmar kommer automatiskt att avvisas. De "
+"kommer att få e-postbrevet\n"
+"i retur, med ett meddelande om att det automatiskt blev avvisat. Detta val "
+"bör inte\n"
+"användas för kända spamavsändare, de bör\n"
+"<a href=\"?VARHELP=privacy/sender/discard_these_non_members\">automatiskt "
+"kastas</a>.\n"
+"<p>Lägg in e-postadresser, en per rad, börja raden med tecknet ^\n"
+"för att ange ett regexp-uttryck som ska passa med avsändaradressen."
+
+# Mailman/Gui/Privacy.py:266
+# Mailman/Gui/Privacy.py:267
+#: Mailman/Gui/Privacy.py:267
+msgid ""
+"List of non-member addresses whose postings will be\n"
+" automatically discarded."
+msgstr ""
+"Lista över e-postadresser till icke-medlemmar som automatiskt ska kastas."
+
+# Mailman/Gui/Privacy.py:269
+# Mailman/Gui/Privacy.py:270
+#: Mailman/Gui/Privacy.py:270
+msgid ""
+"Postings from any of these non-members will be automatically\n"
+" discarded. That is, the message will be thrown away with no\n"
+" further processing or notification. The sender will not "
+"receive\n"
+" a notification or a bounce, however the list moderators can\n"
+" optionally <a href=\"?VARHELP=privacy/sender/"
+"forward_auto_discards\"\n"
+" >receive copies of auto-discarded messages.</a>.\n"
+"\n"
+" <p>Add member addresses one per line; start the line with a ^\n"
+" character to designate a regular expression match."
+msgstr ""
+"E-postbrev från dessa icke-medlemmar kommer automatiskt att kastas.\n"
+"Det vill säga att meddelandet kastas utan någon form av meddelande om "
+"detta,\n"
+"men listmoderatorn kan (om så önskas)\n"
+"<a href=\"?VARHELP=privacy/sender/forward_auto_discards\">ta emot en kopia "
+"av det kastade e-postbrevet</a>.\n"
+"<p>Lägg in e-postadresser, en per rad, börja raden med tecknet ^\n"
+"för att ange ett regexp-uttryck som ska passa med avsändaradressen."
+
+# Mailman/Gui/Privacy.py:281
+# Mailman/Gui/Privacy.py:282
+#: Mailman/Gui/Privacy.py:282
+msgid ""
+"Action to take for postings from non-members for which no\n"
+" explicit action is defined."
+msgstr ""
+"Behandling av e-postbrev från icke-medlemmar som inte berörs av någon av de "
+"andra reglerna."
+
+# Mailman/Gui/Privacy.py:284
+# Mailman/Gui/Privacy.py:285
+#: Mailman/Gui/Privacy.py:285
+msgid ""
+"When a post from a non-member is received, the message's\n"
+" sender is matched against the list of explicitly\n"
+" <a href=\"?VARHELP=privacy/sender/accept_these_nonmembers\"\n"
+" >accepted</a>,\n"
+" <a href=\"?VARHELP=privacy/sender/hold_these_nonmembers\">held</"
+"a>,\n"
+" <a href=\"?VARHELP=privacy/sender/reject_these_nonmembers\"\n"
+" >rejected</a> (bounced), and\n"
+" <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\"\n"
+" >discarded</a> addresses. If no match is found, then this "
+"action\n"
+" is taken."
+msgstr ""
+"När ett e-posbrev från en icke-medlem tas emot, jämförs e-postbrevets "
+"avsändare med\n"
+"listorna över e-postadresser som ska\n"
+"<a href=\"?VARHELP=privacy/sender/accept_these_nonmembers\">godkännas</a>,\n"
+"<a href=\"?VARHELP=privacy/sender/hold_these_nonmembers\">hållas tillbaka</"
+"a>,\n"
+"<a href=\"?VARHELP=privacy/sender/reject_these_nonmembers\">avvisas</a> "
+"(skickas i retur),\n"
+"och <a href=\"?VARHELP=privacy/sender/discard_these_nonmembers\">kastas</"
+"a>.\n"
+"Om avsändaradressen inte stämmer med någon av dem som uppges i listorna,\n"
+"sker följande."
+
+# Mailman/Gui/Privacy.py:296
+# Mailman/Gui/Privacy.py:297
+#: Mailman/Gui/Privacy.py:297
+msgid ""
+"Should messages from non-members, which are automatically\n"
+" discarded, be forwarded to the list moderator?"
+msgstr ""
+"Ska meddelanden från icke-medlemmar, som automatiskt kastas, också skickas "
+"till listmoderatorn?"
+
+# Mailman/Gui/Privacy.py:303
+#: Mailman/Gui/Privacy.py:303
+msgid ""
+"This section allows you to configure various filters based on\n"
+" the recipient of the message."
+msgstr ""
+"Denna sektion tillåter dig att konfigurera olika filter baserade på\n"
+" meddelandets mottagare."
+
+# Mailman/Gui/Privacy.py:185
+# Mailman/Gui/Privacy.py:306
+#: Mailman/Gui/Privacy.py:306
+#, fuzzy
+msgid "Recipient filters"
+msgstr "Mottagarfilter"
+
+# Mailman/Gui/Privacy.py:311
+# Mailman/Gui/Privacy.py:310
+#: Mailman/Gui/Privacy.py:310
+msgid ""
+"Must posts have list named in destination (to, cc) field\n"
+" (or be among the acceptable alias names, specified below)?"
+msgstr ""
+"Måste e-postbrev till listan ha listans adress (eller andra giltiga "
+"adresser, se nedan) i <tt>Till:</tt> eller <tt>Cc:</tt> fälten?"
+
+# Mailman/Gui/Privacy.py:314
+# Mailman/Gui/Privacy.py:313
+#: Mailman/Gui/Privacy.py:313
+msgid ""
+"Many (in fact, most) spams do not explicitly name their\n"
+" myriad destinations in the explicit destination addresses - in\n"
+" fact often the To: field has a totally bogus address for\n"
+" obfuscation. The constraint applies only to the stuff in the\n"
+" address before the '@' sign, but still catches all such spams.\n"
+"\n"
+" <p>The cost is that the list will not accept unhindered any\n"
+" postings relayed from other addresses, unless\n"
+"\n"
+" <ol>\n"
+" <li>The relaying address has the same name, or\n"
+"\n"
+" <li>The relaying address name is included on the options "
+"that\n"
+" specifies acceptable aliases for the list.\n"
+"\n"
+" </ol>"
+msgstr ""
+"Många (faktiskt merparten av) spam/skräppost har inte de slutliga mottagarna "
+"i mottagningsfälten.\n"
+"Faktiskt så innehåller oftast <tt>Till:</tt> ch/eller <tt>Cc:</tt> fälten en "
+"fullständigt ogiltig adress.\n"
+"Begränsningen du sätter här har bara inverkan på det som står framför '@' "
+"tecknet i adressen(erna),\n"
+"men kommer i alla fall att fånga upp och blockera det mesta av spam/"
+"skräppost.\n"
+"\n"
+"<p>Priset för detta är att listan inte obehindrat kommer att kunna ta emot e-"
+"postbrev som vidarebefordrats via andra e-postadresser, om inte\n"
+"\n"
+"<ol>\n"
+" <li>Adressen som det vidarebefodras från har samma namn, eller</li>\n"
+" <li>Adressen som det vidarebefodras från inkluderas i inställningen som "
+"bestämmer giltiga alias för listan.</li>\n"
+"</ol>"
+
+# Mailman/Gui/Privacy.py:332
+# Mailman/Gui/Privacy.py:331
+#: Mailman/Gui/Privacy.py:331
+msgid ""
+"Alias names (regexps) which qualify as explicit to or cc\n"
+" destination names for this list."
+msgstr ""
+"Alias (regexp-uttryck) som kvalificerar giltiga <tt>Till:</tt> eller <tt>Cc:"
+"</tt> fält för denna lista."
+
+# Mailman/Gui/Privacy.py:335
+# Mailman/Gui/Privacy.py:334
+#: Mailman/Gui/Privacy.py:334
+msgid ""
+"Alternate addresses that are acceptable when\n"
+" `require_explicit_destination' is enabled. This option takes "
+"a\n"
+" list of regular expressions, one per line, which is matched\n"
+" against every recipient address in the message. The matching "
+"is\n"
+" performed with Python's re.match() function, meaning they are\n"
+" anchored to the start of the string.\n"
+" \n"
+" <p>For backwards compatibility with Mailman 1.1, if the regexp\n"
+" does not contain an `@', then the pattern is matched against "
+"just\n"
+" the local part of the recipient address. If that match fails, "
+"or\n"
+" if the pattern does contain an `@', then the pattern is "
+"matched\n"
+" against the entire recipient address.\n"
+" \n"
+" <p>Matching against the local part is deprecated; in a future\n"
+" release, the pattern will always be matched against the entire\n"
+" recipient address."
+msgstr ""
+"Alternativa e-postadresser som godtas när 'require_explicit_destination' är "
+"aktiverad.\n"
+"Som värde för denna inställning ska du uppge regexp-uttryck (\"regular "
+"expressions\"),\n"
+"ett uttryck per rad, som jämförs mot varje mottagaradress i meddelandet.\n"
+"Jämförelsen utförs med Pythons re.match() funktion, som innebär att det "
+"gäller bara för\n"
+"början av strängen.\n"
+"\n"
+"<p>För bakåtkompatibilitet med Mailman 1.1, om regexp-uttrycket inte "
+"innehåller ett '@',\n"
+"jämförs uttrycket endast mot den första delen (det som står framför '@') av "
+"mottagaradressen.\n"
+"Om jämförelsen inte lyckas, eller uttrycket inte innehåller tecknet '@', "
+"jämförs\n"
+"uttrycket med hela mottagaradressen.\n"
+"\n"
+"<p>Jämförelse mot enbart den första delen av en mottagaradress kommer inte "
+"att stödjas \n"
+"i en framtida version av Mailman, där enbart jämförelse mot hela "
+"mottagaradressen kommer att ha stöd."
+
+# Mailman/Gui/Privacy.py:353
+# Mailman/Gui/Privacy.py:352
+#: Mailman/Gui/Privacy.py:352
+msgid "Ceiling on acceptable number of recipients for a posting."
+msgstr "Maximalt antal mottagaradresser i e-postbrev skickade till listan."
+
+# Mailman/Gui/Privacy.py:355
+# Mailman/Gui/Privacy.py:354
+#: Mailman/Gui/Privacy.py:354
+msgid ""
+"If a posting has this number, or more, of recipients, it is\n"
+" held for admin approval. Use 0 for no ceiling."
+msgstr ""
+"Om ett e-postbrev som skickats till listan innehåller så många mottagare "
+"som, eller flera mottagare än, detta värde,\n"
+"hålls e-postbrevet tillbaka så att listadministratören eventuellt kan "
+"godkänna det.\n"
+"Använd värdet 0 för ingen begränsning."
+
+# Mailman/Gui/Privacy.py:302
+# Mailman/Gui/Privacy.py:359
+#: Mailman/Gui/Privacy.py:359
+msgid ""
+"This section allows you to configure various anti-spam\n"
+" filters posting filters, which can help reduce the amount of "
+"spam\n"
+" your list members end up receiving.\n"
+" "
+msgstr ""
+"Här kan du sätta upp olika anti-spamfilter, som kan vara till hjälp\n"
+"för att minska mängden spam som distribueras via e-postlistan."
+
+# Mailman/Gui/Privacy.py:307
+# Mailman/Gui/Privacy.py:364
+#: Mailman/Gui/Privacy.py:364
+msgid "Anti-Spam filters"
+msgstr "Antispamfilter"
+
+# Mailman/Gui/Privacy.py:359
+# Mailman/Gui/Privacy.py:367
+#: Mailman/Gui/Privacy.py:367
+msgid "Hold posts with header value matching a specified regexp."
+msgstr ""
+"Håll tillbaka e-postbrev som skickats till listan, som innehåller fält (i "
+"meddelandehuvudet) som passar med egendefinierade regexp-uttryck."
+
+# Mailman/Gui/Privacy.py:360
+# Mailman/Gui/Privacy.py:368
+#: Mailman/Gui/Privacy.py:368
+#, fuzzy
+msgid ""
+"Use this option to prohibit posts according to specific\n"
+" header values. The target value is a regular-expression for\n"
+" matching against the specified header. The match is done\n"
+" disregarding letter case. Lines beginning with '#' are "
+"ignored\n"
+" as comments.\n"
+"\n"
+" <p>For example:<pre>to: .*@public.com </pre> says to hold all\n"
+" postings with a <em>To:</em> mail header containing '@public."
+"com'\n"
+" anywhere among the addresses.\n"
+"\n"
+" <p>Note that leading whitespace is trimmed from the regexp. "
+"This\n"
+" can be circumvented in a number of ways, e.g. by escaping or\n"
+" bracketing it."
+msgstr ""
+"Använd denna inställning för att förbjuda e-postbrev till listan,\n"
+"baserat på innehållet av ett eller flera fält i meddelandehuvudet.\n"
+"Här ska du skriva in regexp-uttryck (regular expressions), ett per rad,\n"
+"som jämförs mot det aktuella fältet.\n"
+"Jämförelsen skiljer inte mellan stora och små bokstäver.\n"
+"Rader som börjar med '#' jämförs inte utan räknas som kommentarer.\n"
+"\n"
+"<p>Till exempel: uttrycket <pre>to: .*@public.com</pre> berättar att\n"
+"alla e-postbrev som innehåller '@public.com' i <tt>Till:</tt> fältet,\n"
+"ska hållas tillbaka för godkännande.\n"
+"\n"
+"<p>Observera: tomma tecken i början av regexp-uttrycket tas bort.\n"
+"Detta kan man undgå på flera sätt, till exempel genom att använda escape-"
+"tecken eller klammerparenteser."
+
+# Mailman/Gui/Topics.py:28
+# Mailman/Gui/Topics.py:28
+#: Mailman/Gui/Topics.py:28
+msgid "Topics"
+msgstr "Ämnen"
+
+# Mailman/Gui/Topics.py:36
+# Mailman/Gui/Topics.py:36
+#: Mailman/Gui/Topics.py:36
+msgid "List topic keywords"
+msgstr "Ämnesord för listan"
+
+# Mailman/Gui/Topics.py:38
+# Mailman/Gui/Topics.py:38
+#: Mailman/Gui/Topics.py:38
+msgid "Disabled"
+msgstr "Inte tillgängligt"
+
+# Mailman/Gui/Topics.py:38
+# Mailman/Gui/Topics.py:38
+#: Mailman/Gui/Topics.py:38
+msgid "Enabled"
+msgstr "Tillgängligt"
+
+# Mailman/Gui/Topics.py:39
+# Mailman/Gui/Topics.py:39
+#: Mailman/Gui/Topics.py:39
+msgid "Should the topic filter be enabled or disabled?"
+msgstr "Ska ämnesfiltret vara tillgängligt eller inte?"
+
+# Mailman/Gui/Topics.py:41
+# Mailman/Gui/Topics.py:41
+#: Mailman/Gui/Topics.py:41
+msgid ""
+"The topic filter categorizes each incoming email message\n"
+" according to <a\n"
+" href=\"http://www.python.org/doc/current/lib/module-re.html"
+"\">regular\n"
+" expression filters</a> you specify below. If the message's\n"
+" <code>Subject:</code> or <code>Keywords:</code> header contains "
+"a\n"
+" match against a topic filter, the message is logically placed\n"
+" into a topic <em>bucket</em>. Each user can then choose to "
+"only\n"
+" receive messages from the mailing list for a particular topic\n"
+" bucket (or buckets). Any message not categorized in a topic\n"
+" bucket registered with the user is not delivered to the list.\n"
+"\n"
+" <p>Note that this feature only works with regular delivery, "
+"not\n"
+" digest delivery.\n"
+"\n"
+" <p>The body of the message can also be optionally scanned for\n"
+" <code>Subject:</code> and <code>Keywords:</code> headers, as\n"
+" specified by the <a\n"
+" href=\"?VARHELP=topics/topics_bodylines_limit"
+"\">topics_bodylines_limit</a>\n"
+" configuration variable."
+msgstr ""
+"Ämnesfiltret kategoriserar varje e-postbrev som kommer till listan,\n"
+"efter <a href=\"http://www.python.org/doc/current/lib/module-re.html"
+"\">regexp-uttrycken</a>\n"
+"du skriver in nedan. Om fälten <code>Subject:</code> eller <code>Keywords:</"
+"code>\n"
+"i meddelandehuvudet i ett e-postbrev passar mot dessa uttryck, placeras det "
+"under detta\n"
+"ämne. Varje medlem av listan kan välja att enbart ta emot e-postbrev som "
+"passar in på önskade ämnen.\n"
+"E-postbrev som inte går in under något ämne, distribueras inte.\n"
+"\n"
+"<p>Observera: Detta fungerar bara i normalversion, inte i "
+"sammandragsversion.\n"
+"\n"
+"<p>Innehållet i e-postbrevet kan också undersökas när det gäller "
+"<code>Subject:</code> och <code>Keyword:</code>\n"
+"fält, allt efter vad inställningen <a href=\"?VARHELP=topics/"
+"topics_bodylines_limit\">topics_bodylines_limit</a> är satt till."
+
+# Mailman/Gui/Topics.py:62
+# Mailman/Gui/Topics.py:62
+#: Mailman/Gui/Topics.py:62
+msgid "How many body lines should the topic matcher scan?"
+msgstr "Hur många rader ska ämnesfiltret söka igenom?"
+
+# Mailman/Gui/Topics.py:64
+# Mailman/Gui/Topics.py:64
+#: Mailman/Gui/Topics.py:64
+msgid ""
+"The topic matcher will scan this many lines of the message\n"
+" body looking for topic keyword matches. Body scanning stops "
+"when\n"
+" either this many lines have been looked at, or a non-header-"
+"like\n"
+" body line is encountered. By setting this value to zero, no "
+"body\n"
+" lines will be scanned (i.e. only the <code>Keywords:</code> "
+"and\n"
+" <code>Subject:</code> headers will be scanned). By setting "
+"this\n"
+" value to a negative number, then all body lines will be "
+"scanned\n"
+" until a non-header-like line is encountered.\n"
+" "
+msgstr ""
+"Här uppger du hur många rader av e-postbrevets innehåll som ämnesfiltret ska "
+"söka igenom.\n"
+"Ett sådant sök stoppar när så många rader är genomsökta, eller när det "
+"stöter på en rad som inte\n"
+"ser ut som ett meddelandehuvudfält. Genom att sätta detta till noll (0), "
+"kommer inga rader\n"
+"i innehållet att bli undersökta (d v s bara <code>Keywords:</code> och "
+"<code>Subject:</code> i\n"
+"meddelandehuvudet undersöks). Genom att sätta detta värde till ett negativt "
+"tal,\n"
+"kommer alla rader att bli undersökta fram till den första raden som inte ser "
+"ut som ett meddelandehuvudfält."
+
+# Mailman/Gui/Topics.py:75
+# Mailman/Gui/Topics.py:75
+#: Mailman/Gui/Topics.py:75
+msgid "Topic keywords, one per line, to match against each message."
+msgstr "Ämnesord, ett per rad, som gör att ett e-postbrev går in under ämnet."
+
+# Mailman/Gui/Topics.py:77
+# Mailman/Gui/Topics.py:77
+#: Mailman/Gui/Topics.py:77
+msgid ""
+"Each topic keyword is actually a regular expression, which is\n"
+" matched against certain parts of a mail message, specifically "
+"the\n"
+" <code>Keywords:</code> and <code>Subject:</code> message "
+"headers.\n"
+" Note that the first few lines of the body of the message can "
+"also\n"
+" contain a <code>Keywords:</code> and <code>Subject:</code>\n"
+" \"header\" on which matching is also performed."
+msgstr ""
+"Varje ämnesord är faktiskt ett regexp-uttryck, som jämförs mot delar av e-"
+"postbrevet,\n"
+"nämligen fälten <code>Keywords:</code> och <code>Subject:</code> i "
+"meddelandehuvudet.\n"
+"Observera att de första raderna i e-postbrevets innehåll också kan bestå av "
+"sådana \"fält\", och\n"
+"kan därmed också bli undersökta."
+
+# Mailman/Gui/Topics.py:116
+# Mailman/Gui/Topics.py:116
+#: Mailman/Gui/Topics.py:116
+msgid ""
+"Topic specifications require both a name and\n"
+" a pattern. Incomplete topics will be ignored."
+msgstr ""
+"Ett ämne kräver både ett namn och ett uttryck. Ofullständiga ämnen kommer "
+"att ignoreras."
+
+# Mailman/Gui/Topics.py:124
+# Mailman/Gui/Topics.py:124
+#: Mailman/Gui/Topics.py:124
+msgid ""
+"The topic pattern `%(pattern)s' is not a\n"
+" legal regular expression. It will be discarded."
+msgstr ""
+"Ämnesfiltret '%(pattern)s' är inte ett giltigt regexp.\n"
+"Det kommer att kastas."
+
+# Mailman/Gui/Usenet.py:25
+# Mailman/Gui/Usenet.py:25
+#: Mailman/Gui/Usenet.py:25
+msgid "Mail&lt;-&gt;News&nbsp;gateways"
+msgstr "E-post&lt;-&gt;Nyhetsgrupper&nbsp;&ouml;verf&ouml;ring"
+
+# Mailman/Gui/Usenet.py:33
+# Mailman/Gui/Usenet.py:35
+#: Mailman/Gui/Usenet.py:35
+msgid "Mail-to-News and News-to-Mail gateway services."
+msgstr "E-post-till-nyhetsgrupp och nyhetsgrupp-till-e-posttjänst."
+
+# Mailman/Gui/Usenet.py:37
+#: Mailman/Gui/Usenet.py:37
+msgid "News server settings"
+msgstr "Inställningar för nyhetsserver"
+
+# Mailman/Gui/Usenet.py:36
+# Mailman/Gui/Usenet.py:40
+#: Mailman/Gui/Usenet.py:40
+msgid ""
+"The Internet address of the machine your News server is\n"
+" running on."
+msgstr "Internettadress för maskinen som kör nyhetsgrupptjänsten."
+
+# Mailman/Gui/Usenet.py:38
+# Mailman/Gui/Usenet.py:42
+#: Mailman/Gui/Usenet.py:42
+msgid ""
+"The News server is not part of Mailman proper. You have to\n"
+" already have access to a NNTP server, and that NNTP server has "
+"to\n"
+" recognize the machine this mailing list runs on as a machine\n"
+" capable of reading and posting news."
+msgstr ""
+"Nyhetsgrupptjänst är inte en del av Mailman.\n"
+"Du måste ha tillgång till en existerande NNTP-server,\n"
+"och maskinen som denna e-postlista körs på, måste ha tillgång till att läsa "
+"och skicka meddelanden till den NNTP-servern."
+
+# Mailman/Gui/Usenet.py:44
+# Mailman/Gui/Usenet.py:48
+#: Mailman/Gui/Usenet.py:48
+msgid "The name of the Usenet group to gateway to and/or from."
+msgstr "Namn på nyhetsgrupp som ska skickas till och/eller från."
+
+# Mailman/Gui/Usenet.py:47
+# Mailman/Gui/Usenet.py:51
+#: Mailman/Gui/Usenet.py:51
+msgid ""
+"Should new posts to the mailing list be sent to the\n"
+" newsgroup?"
+msgstr "Ska nya e-postbrev till denna lista skickas till nyhetsgruppen?"
+
+# Mailman/Gui/Usenet.py:51
+# Mailman/Gui/Usenet.py:55
+#: Mailman/Gui/Usenet.py:55
+msgid ""
+"Should new posts to the newsgroup be sent to the mailing\n"
+" list?"
+msgstr "Ska nya meddelanden till nyhetsgruppen skickas till denna e-postlista?"
+
+# Mailman/Gui/Archive.py:25
+# Mailman/Gui/Usenet.py:58
+#: Mailman/Gui/Usenet.py:58
+#, fuzzy
+msgid "Forwarding options"
+msgstr "Inställningar för vidarebefordran"
+
+# Mailman/Cgi/Auth.py:46
+# Mailman/Gui/Usenet.py:61
+#: Mailman/Gui/Usenet.py:61
+#, fuzzy
+msgid "Moderated"
+msgstr "Modererad"
+
+# Mailman/Gui/Usenet.py:61
+#: Mailman/Gui/Usenet.py:61
+msgid "Open list, moderated group"
+msgstr "Öppen lista, modererad grupp"
+
+# Mailman/Gui/Usenet.py:64
+#: Mailman/Gui/Usenet.py:64
+msgid "The moderation policy of the newsgroup."
+msgstr "Moderationsregler för nyhetsgruppen"
+
+# Mailman/Gui/Usenet.py:66
+#: Mailman/Gui/Usenet.py:66
+msgid ""
+"This setting determines the moderation policy of the\n"
+" newsgroup and its interaction with the moderation policy of "
+"the\n"
+" mailing list. This only applies to the newsgroup that you are\n"
+" gatewaying <em>to</em>, so if you are only gatewaying from\n"
+" Usenet, or the newsgroup you are gatewaying to is not "
+"moderated,\n"
+" set this option to <em>None</em>.\n"
+"\n"
+" <p>If the newsgroup is moderated, you can set this mailing "
+"list\n"
+" up to be the moderation address for the newsgroup. By "
+"selecting\n"
+" <em>Moderated</em>, an additional posting hold will be placed "
+"in\n"
+" the approval process. All messages posted to the mailing list\n"
+" will have to be approved before being sent on to the "
+"newsgroup,\n"
+" or to the mailing list membership.\n"
+"\n"
+" <p><em>Note that if the message has an <tt>Approved</tt> "
+"header\n"
+" with the list's administrative password in it, this hold test\n"
+" will be bypassed, allowing privileged posters to send messages\n"
+" directly to the list and the newsgroup.</em>\n"
+"\n"
+" <p>Finally, if the newsgroup is moderated, but you want to "
+"have\n"
+" an open posting policy anyway, you should select <em>Open "
+"list,\n"
+" moderated group</em>. The effect of this is to use the normal\n"
+" Mailman moderation facilities, but to add an <tt>Approved</tt>\n"
+" header to all messages that are gatewayed to Usenet."
+msgstr ""
+"Denna inställning bestämmer moderationsreglerna för nyhetsgruppen\n"
+" och dess interaktion med e-postlistans moderationsregler.\n"
+" Detta gäller bara den nyhetsgrupp som du har en gateway\n"
+" <em>till</em>, så om du bara skickar via en gateway från\n"
+" Usenet, eller om nyhetsgruppen som du skickar till inte är "
+"modererad,\n"
+" sätt inställningen till <em>Ingen</em>.\n"
+"\n"
+" <p>Om nyhetsgruppen är modererad kan du ställa in e-postlistan, "
+"som\n"
+" moderationsadress för nyhetsgruppen. Genom att välja\n"
+" <em>Modererad</em>, kommer ytterligare ett tillbakahållande av "
+"meddelanden att läggas till godkännandeprocessen.\n"
+" Alla meddelanden som skickas till e-postlistan måste då "
+"godkännas innan de skickas\n"
+"till nyhetsgruppen,\n"
+" eller till e-postlistans medlemmar.\n"
+"\n"
+" <p><em>Observera att om meddelandet har ett <tt>Approved</tt> "
+"fält\n"
+" med listans administrativa lösenord ifyllt, kan detta "
+"tillbakahållande\n"
+" slopas och tillåtelse ges till att skicka priviligierade "
+"meddelanden direkt\n"
+" till listan och nyhetsgruppen.</em>\n"
+"\n"
+" <p>Till sist, om nyhetsgruppen är modererad, men du ändå vill "
+"ha\n"
+" öppna regler för e-posthantering, så ska du välja <em>Öppen "
+"lista\n"
+" för modererad grupp</em>. Resultatet av detta val är att "
+"Mailmans\n"
+" normala moderationsmöjligheter används, förutom att lägga till "
+"fältet <tt>Approved</tt>\n"
+" till alla meddelanden som skickas via gateway till Usenet."
+
+# Mailman/Gui/Usenet.py:92
+#: Mailman/Gui/Usenet.py:92
+msgid "Prefix <tt>Subject:</tt> headers on postings gated to news?"
+msgstr ""
+"Lägga till prefix på ett <tt>Subject:</tt> fält på meddelanden som skickas "
+"till nyhetsgrupper?"
+
+# Mailman/Gui/Usenet.py:93
+#: Mailman/Gui/Usenet.py:93
+msgid ""
+"Mailman prefixes <tt>Subject:</tt> headers with\n"
+" <a href=\"?VARHELP=general/subject_prefix\">text you can\n"
+" customize</a> and normally, this prefix shows up in messages\n"
+" gatewayed to Usenet. You can set this option to <em>No</em> "
+"to\n"
+" disable the prefix on gated messages. Of course, if you turn "
+"off\n"
+" normal <tt>Subject:</tt> prefixes, they won't be prefixed for\n"
+" gated messages either."
+msgstr ""
+
+# Mailman/Gui/Usenet.py:69
+# Mailman/Gui/Usenet.py:101
+#: Mailman/Gui/Usenet.py:101
+#, fuzzy
+msgid "Mass catch up"
+msgstr "Göra uppdatering"
+
+# Mailman/Gui/Usenet.py:55
+# Mailman/Gui/Usenet.py:104
+#: Mailman/Gui/Usenet.py:104
+msgid "Should Mailman perform a <em>catchup</em> on the newsgroup?"
+msgstr "Ska Mailman göra en <em>uppdatering</em> på nyhetsgruppen?"
+
+# Mailman/Gui/Usenet.py:56
+# Mailman/Gui/Usenet.py:105
+#: Mailman/Gui/Usenet.py:105
+msgid ""
+"When you tell Mailman to perform a catchup on the newsgroup,\n"
+" this means that you want to start gating messages to the "
+"mailing\n"
+" list with the next new message found. All earlier messages on\n"
+" the newsgroup will be ignored. This is as if you were reading\n"
+" the newsgroup yourself, and you marked all current messages as\n"
+" <em>read</em>. By catching up, your mailing list members will\n"
+" not see any of the earlier messages."
+msgstr ""
+"Om du ber Mailman att utföra en <em>uppdatering (catchup)</em> på "
+"nyhetsgruppen,\n"
+"kommer från och med nu bara nya meddelanden till nyhetsgruppen att skickas "
+"till e-postlistan.\n"
+"Medlemmarna på e-postlistan kommer därför inte att ta mot eventuella "
+"existerande meddelanden i nyhetsgruppen."
+
+# Mailman/Gui/Usenet.py:69
+# Mailman/Gui/Usenet.py:119
+#: Mailman/Gui/Usenet.py:119
+msgid "Mass catchup completed"
+msgstr "Uppdatering utförd"
+
+# Mailman/Gui/Usenet.py:131
+#: Mailman/Gui/Usenet.py:131
+msgid ""
+"You cannot enable gatewaying unless both the\n"
+" <a href=\"?VARHELP=gateway/nntp_host\">news server field</a> "
+"and\n"
+" the <a href=\"?VARHELP=gateway/linked_newsgroup\">linked\n"
+" newsgroup</a> fields are filled in."
+msgstr ""
+
+# Mailman/HTMLFormatter.py:46
+# Mailman/HTMLFormatter.py:47
+#: Mailman/HTMLFormatter.py:47
+msgid "%(listinfo_link)s list run by %(owner_link)s"
+msgstr "E-postlistan %(listinfo_link)s administreras av %(owner_link)s"
+
+# Mailman/HTMLFormatter.py:54
+# Mailman/HTMLFormatter.py:55
+#: Mailman/HTMLFormatter.py:55
+msgid "%(realname)s administrative interface"
+msgstr "Administrativ sida för %(realname)s"
+
+# Mailman/HTMLFormatter.py:55
+# Mailman/HTMLFormatter.py:56
+#: Mailman/HTMLFormatter.py:56
+msgid " (requires authorization)"
+msgstr " (kräver inloggning)"
+
+# Mailman/HTMLFormatter.py:58
+# Mailman/HTMLFormatter.py:59
+#: Mailman/HTMLFormatter.py:59
+msgid "Overview of all %(hostname)s mailing lists"
+msgstr "Lista över alla e-postlistor på %(hostname)s"
+
+# Mailman/HTMLFormatter.py:79
+# Mailman/HTMLFormatter.py:80
+#: Mailman/HTMLFormatter.py:80
+msgid "<em>(1 private member not shown)</em>"
+msgstr "<em>(1 medlem visas inte)</em>"
+
+# Mailman/HTMLFormatter.py:81
+# Mailman/HTMLFormatter.py:82
+#: Mailman/HTMLFormatter.py:82
+msgid "<em>(%(num_concealed)d private members not shown)</em>"
+msgstr "<em>(%(num_concealed)d medlemmar visas inte)</em>"
+
+# Mailman/HTMLFormatter.py:136
+# Mailman/HTMLFormatter.py:137
+#: Mailman/HTMLFormatter.py:137
+msgid "; it was disabled by you"
+msgstr "; efter din egen önskan"
+
+# Mailman/HTMLFormatter.py:138
+# Mailman/HTMLFormatter.py:139
+#: Mailman/HTMLFormatter.py:139
+msgid "; it was disabled by the list administrator"
+msgstr "; avaktiverat av listadministratören"
+
+# Mailman/HTMLFormatter.py:140
+# Mailman/HTMLFormatter.py:143
+#: Mailman/HTMLFormatter.py:143
+#, fuzzy
+msgid ""
+"; it was disabled due to excessive bounces. The\n"
+" last bounce was received on %(date)s"
+msgstr ""
+"; avaktiverat på grund av upprepade \n"
+"returmeddelanden. Det sista mottogs %(date)s"
+
+# Mailman/HTMLFormatter.py:142
+# Mailman/HTMLFormatter.py:146
+#: Mailman/HTMLFormatter.py:146
+msgid "; it was disabled for unknown reasons"
+msgstr "; avaktiverat av okänd anledning"
+
+# Mailman/HTMLFormatter.py:144
+# Mailman/HTMLFormatter.py:148
+#: Mailman/HTMLFormatter.py:148
+#, fuzzy
+msgid "Note: your list delivery is currently disabled%(reason)s."
+msgstr ""
+"Observera: distribution av e-postbrev från listan har stoppats %(reason)s."
+
+# Mailman/HTMLFormatter.py:147
+# Mailman/HTMLFormatter.py:151
+#: Mailman/HTMLFormatter.py:151
+msgid "Mail delivery"
+msgstr "E-postutskick"
+
+# Mailman/HTMLFormatter.py:149 Mailman/HTMLFormatter.py:292
+# Mailman/HTMLFormatter.py:153 Mailman/HTMLFormatter.py:298
+#: Mailman/HTMLFormatter.py:153 Mailman/HTMLFormatter.py:298
+msgid "the list administrator"
+msgstr "listadministratören"
+
+# Mailman/HTMLFormatter.py:150
+# Mailman/HTMLFormatter.py:154
+#: Mailman/HTMLFormatter.py:154
+msgid ""
+"<p>%(note)s\n"
+"\n"
+" <p>You may have disabled list delivery intentionally,\n"
+" or it may have been triggered by bounces from your email\n"
+" address. In either case, to re-enable delivery, change the\n"
+" %(link)s option below. Contact %(mailto)s if you have any\n"
+" questions or need assistance."
+msgstr ""
+"<p>%(note)s\n"
+"\n"
+"<p>Du kan ha stoppat utskick från listan avsiktligt, eller så kan det ha "
+"blivit så på grund av returmeddelanden från din e-postadress.\n"
+"För att ta emot e-postbrev från listan igen, ändra inställningen %(link)s "
+"nedan.\n"
+"Kontakta %(mailto)s om du har frågor eller behöver ytterligare hjälp."
+
+# Mailman/HTMLFormatter.py:162
+# Mailman/HTMLFormatter.py:166
+#: Mailman/HTMLFormatter.py:166
+msgid ""
+"<p>We have received some recent bounces from your\n"
+" address. Your current <em>bounce score</em> is %(score)s out of "
+"a\n"
+" maximum of %(total)s. Please double check that your subscribed\n"
+" address is correct and that there are no problems with delivery "
+"to\n"
+" this address. Your bounce score will be automatically reset if\n"
+" the problems are corrected soon."
+msgstr ""
+"<p>Vi har på sistone fått en del returmeddelanden från din e-postadress.\n"
+"Ditt <em>returtal</em> är %(score)s av totalt %(total)s.\n"
+"Var vänlig kontrollera att din e-postadress är korrekt stavad,\n"
+"och att det inte är problem med utskick till den.\n"
+"Ditt returtal kommer automatiskt att annulleras om problemet rättar till sig "
+"snart."
+
+# Mailman/HTMLFormatter.py:174
+# Mailman/HTMLFormatter.py:178
+#: Mailman/HTMLFormatter.py:178
+msgid ""
+"(Note - you are subscribing to a list of mailing lists, so the %(type)s "
+"notice will be sent to the admin address for your membership, %(addr)s.)<p>"
+msgstr ""
+"(Observera - du är anmäld till en lista av flera e-postlistor, så %(type)s "
+"meddelande kommer att skickas till administrationsadressen för ditt "
+"medlemskap, %(addr)s.)<p>"
+
+# Mailman/HTMLFormatter.py:184
+# Mailman/HTMLFormatter.py:188
+#: Mailman/HTMLFormatter.py:188
+msgid ""
+"You will be sent email requesting confirmation, to\n"
+" prevent others from gratuitously subscribing you."
+msgstr ""
+"Du kommer att ta emot ett e-postbrev som ber dig bekräfta detta, så att inte "
+"någon annan ska kunna anmäla dig till listan mot din vilja."
+
+# Mailman/HTMLFormatter.py:187
+# Mailman/HTMLFormatter.py:191
+#: Mailman/HTMLFormatter.py:191
+msgid ""
+"This is a closed list, which means your subscription\n"
+" will be held for approval. You will be notified of the list\n"
+" moderator's decision by email."
+msgstr ""
+"Detta är en stängd lista, vilket betyder att din ansökan måste godkännas av "
+"listans administratör.\n"
+"När din anmälan har behandlats, kommer du att få listadministratörens beslut "
+"skickat till dig i ett e-postbrev."
+
+# Mailman/HTMLFormatter.py:190 Mailman/HTMLFormatter.py:197
+# Mailman/HTMLFormatter.py:194 Mailman/HTMLFormatter.py:201
+#: Mailman/HTMLFormatter.py:194 Mailman/HTMLFormatter.py:201
+msgid "also "
+msgstr "också "
+
+# Mailman/HTMLFormatter.py:192
+# Mailman/HTMLFormatter.py:196
+#: Mailman/HTMLFormatter.py:196
+msgid ""
+"You will be sent email requesting confirmation, to\n"
+" prevent others from gratuitously subscribing you. Once\n"
+" confirmation is received, your request will be held for "
+"approval\n"
+" by the list moderator. You will be notified of the moderator's\n"
+" decision by email."
+msgstr ""
+"Du kommer att ta emot ett e-postbrev som ber dig bekräfta detta, så att "
+"ingen annan ska kunna anmäla dig på listan mot din vilja.\n"
+"När du har bekräftat detta, kommer din anmälan att skickas till listans "
+"moderator för godkännande.\n"
+"Du kommer därefter att få moderatorns beslut skickat till dig i ett e-"
+"postbrev."
+
+# Mailman/HTMLFormatter.py:199
+# Mailman/HTMLFormatter.py:205
+#: Mailman/HTMLFormatter.py:205
+msgid ""
+"This is %(also)sa private list, which means that the\n"
+" list of members is not available to non-members."
+msgstr ""
+"Detta är %(also)sen privat lista, vilket betyder att en lista över e-"
+"postlistans medlemmar inte är tillgänglig för andra än dem som är medlemmar "
+"av e-postlistan."
+
+# Mailman/HTMLFormatter.py:202
+# Mailman/HTMLFormatter.py:208
+#: Mailman/HTMLFormatter.py:208
+msgid ""
+"This is %(also)sa hidden list, which means that the\n"
+" list of members is available only to the list administrator."
+msgstr ""
+"Detta är %(also)sen dold lista, vilket betyder att en lista över e-"
+"postlistans medlemmar bara är tillgänglig för listadministratören."
+
+# Mailman/HTMLFormatter.py:205
+# Mailman/HTMLFormatter.py:211
+#: Mailman/HTMLFormatter.py:211
+msgid ""
+"This is %(also)sa public list, which means that the\n"
+" list of members list is available to everyone."
+msgstr ""
+"Detta är %(also)sen offentlig lista, vilket innebär att listan över e-"
+"postlistans medlemmar är fritt tillgänglig för alla."
+
+# Mailman/HTMLFormatter.py:208
+# Mailman/HTMLFormatter.py:214
+#: Mailman/HTMLFormatter.py:214
+msgid ""
+" (but we obscure the addresses so they are not\n"
+" easily recognizable by spammers)."
+msgstr ""
+" (men vi döljer e-postadresserna så att de inte känns igen av spammare). "
+
+# Mailman/HTMLFormatter.py:213
+# Mailman/HTMLFormatter.py:219
+#: Mailman/HTMLFormatter.py:219
+msgid ""
+"<p>(Note that this is an umbrella list, intended to\n"
+" have only other mailing lists as members. Among other things,\n"
+" this means that your confirmation request will be sent to the\n"
+" `%(sfx)s' account for your address.)"
+msgstr ""
+"<p>(Observera att detta är en paraplylista, som är gjord för att bara ha "
+"andra e-postlistor som medlemmar. Detta betyder bland annat att din fråga om "
+"bekräftelse kommer att skickas till '%(sfx)s' kontot för din adress.)"
+
+# Mailman/HTMLFormatter.py:242
+# Mailman/HTMLFormatter.py:248
+#: Mailman/HTMLFormatter.py:248
+msgid "<b><i>either</i></b> "
+msgstr "<b><i>antingen</i></b> "
+
+# Mailman/HTMLFormatter.py:247
+# Mailman/HTMLFormatter.py:253
+#: Mailman/HTMLFormatter.py:253
+msgid ""
+"To unsubscribe from %(realname)s, get a password reminder,\n"
+" or change your subscription options %(either)senter your "
+"subscription\n"
+" email address:\n"
+" <p><center> "
+msgstr ""
+"För att ändra dina personliga inställningar för listan (till exempel "
+"distributionssätt, få lösenord skickat eller ändrat, eller avanmäla dig från "
+"listan %(realname)s),\n"
+"%(either)s skriv in din e-postadress:\n"
+"<p><center> "
+
+# Mailman/HTMLFormatter.py:254
+# Mailman/HTMLFormatter.py:260
+#: Mailman/HTMLFormatter.py:260
+msgid "Unsubscribe or edit options"
+msgstr "Avanmäla eller ändra dina personliga inställningar"
+
+# Mailman/HTMLFormatter.py:258
+# Mailman/HTMLFormatter.py:264
+#: Mailman/HTMLFormatter.py:264
+msgid ""
+"<p>... <b><i>or</i></b> select your entry from\n"
+" the subscribers list (see above)."
+msgstr ""
+"<p>... <b><i>eller</i></b> klicka på din adress i listan över medlemmar (se "
+"ovan)."
+
+# Mailman/HTMLFormatter.py:260
+# Mailman/HTMLFormatter.py:266
+#: Mailman/HTMLFormatter.py:266
+msgid ""
+" If you leave the field blank, you will be prompted for\n"
+" your email address"
+msgstr ""
+"Om du lät fältet stå tomt, kommer du att bli tillfrågad om din e-postadress"
+
+# Mailman/HTMLFormatter.py:268
+# Mailman/HTMLFormatter.py:274
+#: Mailman/HTMLFormatter.py:274
+#, fuzzy
+msgid ""
+"(<i>%(which)s is only available to the list\n"
+" members.</i>)"
+msgstr "(<i>%(which)s är bara tillgänglig för medlemmar av listan.</i>)"
+
+# Mailman/HTMLFormatter.py:272
+# Mailman/HTMLFormatter.py:278
+#: Mailman/HTMLFormatter.py:278
+#, fuzzy
+msgid ""
+"(<i>%(which)s is only available to the list\n"
+" administrator.</i>)"
+msgstr "(<i>%(which)s är bara tillgänglig för listans administratör.</i>)"
+
+# Mailman/HTMLFormatter.py:282
+# Mailman/HTMLFormatter.py:288
+#: Mailman/HTMLFormatter.py:288
+msgid "Click here for the list of "
+msgstr "Klicka här för att se listan över "
+
+# Mailman/HTMLFormatter.py:284
+# Mailman/HTMLFormatter.py:290
+#: Mailman/HTMLFormatter.py:290
+msgid " subscribers: "
+msgstr " medlemmar: "
+
+# Mailman/HTMLFormatter.py:286
+# Mailman/HTMLFormatter.py:292
+#: Mailman/HTMLFormatter.py:292
+msgid "Visit Subscriber list"
+msgstr "Visa medlemslista"
+
+# Mailman/HTMLFormatter.py:289
+# Mailman/HTMLFormatter.py:295
+#: Mailman/HTMLFormatter.py:295
+msgid "members"
+msgstr "medlemmar"
+
+# Mailman/HTMLFormatter.py:290
+# Mailman/HTMLFormatter.py:296
+#: Mailman/HTMLFormatter.py:296
+msgid "Address:"
+msgstr "Adress:"
+
+# Mailman/HTMLFormatter.py:293
+# Mailman/HTMLFormatter.py:299
+#: Mailman/HTMLFormatter.py:299
+msgid "Admin address:"
+msgstr "Administratörsadress:"
+
+# Mailman/HTMLFormatter.py:295
+# Mailman/HTMLFormatter.py:301
+#: Mailman/HTMLFormatter.py:302
+#, fuzzy
+msgid "The subscribers list"
+msgstr "lista över medlemmar"
+
+# Mailman/HTMLFormatter.py:297
+# Mailman/HTMLFormatter.py:303
+#: Mailman/HTMLFormatter.py:304
+msgid " <p>Enter your "
+msgstr " <p>Skriv in "
+
+# Mailman/HTMLFormatter.py:299
+# Mailman/HTMLFormatter.py:305
+#: Mailman/HTMLFormatter.py:306
+msgid " and password to visit the subscribers list: <p><center> "
+msgstr " och lösenord för att se listan över medlemmar: <p><center> "
+
+# Mailman/HTMLFormatter.py:304
+# Mailman/HTMLFormatter.py:310
+#: Mailman/HTMLFormatter.py:311
+msgid "Password: "
+msgstr "Lösenord: "
+
+# Mailman/HTMLFormatter.py:308
+# Mailman/HTMLFormatter.py:314
+#: Mailman/HTMLFormatter.py:315
+msgid "Visit Subscriber List"
+msgstr "Visa medlemslista"
+
+# Mailman/HTMLFormatter.py:338
+# Mailman/HTMLFormatter.py:344
+#: Mailman/HTMLFormatter.py:345
+msgid "Once a month, your password will be emailed to you as a reminder."
+msgstr ""
+"En gång i månaden kommer du som en påminnelse att få ta emot ditt lösenord i "
+"ett e-postbrev."
+
+# Mailman/HTMLFormatter.py:377
+# Mailman/HTMLFormatter.py:390
+#: Mailman/HTMLFormatter.py:391
+#, fuzzy
+msgid "The current archive"
+msgstr "nuvarande arkiv"
+
+# Mailman/Handlers/Acknowledge.py:64
+# Mailman/Handlers/Acknowledge.py:59
+#: Mailman/Handlers/Acknowledge.py:59
+msgid "%(realname)s post acknowledgement"
+msgstr "Meddelande om mottaget e-postbrev till %(realname)s"
+
+# Mailman/Handlers/CalcRecips.py:68
+# Mailman/Handlers/CalcRecips.py:68
+#: Mailman/Handlers/CalcRecips.py:68
+msgid ""
+"Your urgent message to the %(realname)s mailing list was not authorized for\n"
+"delivery. The original message as received by Mailman is attached.\n"
+msgstr ""
+"Ditt ilmeddelande till e-postlistan %(realname)s blev inte godkänt.\n"
+"Meddelandets ursprungliga innehåll så som det togs emot av Mailman ligger "
+"bifogat.\n"
+
+# Mailman/Handlers/Emergency.py:29
+# Mailman/Handlers/Emergency.py:29
+#: Mailman/Handlers/Emergency.py:29
+msgid "Emergency hold on all list traffic is in effect"
+msgstr "Alla e-postbrev till listan hålls tillbaka för godkännande."
+
+# Mailman/Handlers/Emergency.py:30 Mailman/Handlers/Hold.py:60
+# Mailman/Handlers/Emergency.py:30 Mailman/Handlers/Hold.py:58
+#: Mailman/Handlers/Emergency.py:30 Mailman/Handlers/Hold.py:58
+msgid "Your message was deemed inappropriate by the moderator."
+msgstr ""
+"Ditt meddelande blev karakteriserat som opassande för denna lista, av "
+"moderatorn."
+
+# Mailman/Handlers/Hold.py:55
+# Mailman/Handlers/Hold.py:53
+#: Mailman/Handlers/Hold.py:53
+msgid "Sender is explicitly forbidden"
+msgstr "Avsändaren är utestängd"
+
+# Mailman/Handlers/Hold.py:56
+# Mailman/Handlers/Hold.py:54
+#: Mailman/Handlers/Hold.py:54
+msgid "You are forbidden from posting messages to this list."
+msgstr "Du har inte tillstånd att skicka meddelanden till denna e-postlista."
+
+# Mailman/Handlers/Hold.py:59
+# Mailman/Handlers/Hold.py:57
+#: Mailman/Handlers/Hold.py:57
+msgid "Post to moderated list"
+msgstr "Meddelande till modererad lista"
+
+# Mailman/Handlers/Hold.py:63
+# Mailman/Handlers/Hold.py:61
+#: Mailman/Handlers/Hold.py:61
+msgid "Post by non-member to a members-only list"
+msgstr "Meddelande från icke-medlem till en lista för bara medlemmar. "
+
+# Mailman/Handlers/Hold.py:64
+# Mailman/Handlers/Hold.py:62
+#: Mailman/Handlers/Hold.py:62
+msgid "Non-members are not allowed to post messages to this list."
+msgstr ""
+"Man måste vara medlem för att kunna skicka meddelanden till denna e-"
+"postlista."
+
+# Mailman/Handlers/Hold.py:67
+# Mailman/Handlers/Hold.py:65
+#: Mailman/Handlers/Hold.py:65
+msgid "Posting to a restricted list by sender requires approval"
+msgstr "Meddelande till en begränsad lista kräver godkännande"
+
+# Mailman/Handlers/Hold.py:68
+# Mailman/Handlers/Hold.py:66
+#: Mailman/Handlers/Hold.py:66
+msgid "This list is restricted; your message was not approved."
+msgstr "Denna e-postlista är begränsad och ditt meddelande blev inte godkänt."
+
+# Mailman/Handlers/Hold.py:71
+# Mailman/Handlers/Hold.py:69
+#: Mailman/Handlers/Hold.py:69
+msgid "Too many recipients to the message"
+msgstr "Meddelandet har för många mottagare"
+
+# Mailman/Handlers/Hold.py:72
+# Mailman/Handlers/Hold.py:70
+#: Mailman/Handlers/Hold.py:70
+msgid "Please trim the recipient list; it is too long."
+msgstr "Var vänlig korta ner mottagarlistan; den är för lång."
+
+# Mailman/Handlers/Hold.py:75
+# Mailman/Handlers/Hold.py:73
+#: Mailman/Handlers/Hold.py:73
+msgid "Message has implicit destination"
+msgstr "Meddelandet har ett inte klart utsagt mål"
+
+# Mailman/Handlers/Hold.py:76
+# Mailman/Handlers/Hold.py:74
+#: Mailman/Handlers/Hold.py:74
+msgid ""
+"Blind carbon copies or other implicit destinations are\n"
+"not allowed. Try reposting your message by explicitly including the list\n"
+"address in the To: or Cc: fields."
+msgstr ""
+"'Bcc:' eller andra oklara mål är inte tillåtna.\n"
+"Försök att skicka meddelandet igen genom att tydligt specifisera e-"
+"postlistans adress i Till: eller Cc: fälten."
+
+# Mailman/Handlers/Hold.py:81
+# Mailman/Handlers/Hold.py:79
+#: Mailman/Handlers/Hold.py:79
+msgid "Message may contain administrivia"
+msgstr "Meddelandet kan ha administrativt innehåll"
+
+# Mailman/Handlers/Hold.py:86
+# Mailman/Handlers/Hold.py:84
+#: Mailman/Handlers/Hold.py:84
+msgid ""
+"Please do *not* post administrative requests to the mailing\n"
+"list. If you wish to subscribe, visit %(listurl)s or send a message with "
+"the\n"
+"word `help' in it to the request address, %(request)s, for further\n"
+"instructions."
+msgstr ""
+"Var vänlig och skicka *inte* administrativa frågor till e-postlistan.\n"
+"Om du vill avanmäla dig från listan, gå in på %(listurl)s eller skicka ett e-"
+"postbrev som bara innehåller ordet 'help' till %(request)s för att få "
+"närmare instruktioner."
+
+# Mailman/Handlers/Hold.py:92
+# Mailman/Handlers/Hold.py:90
+#: Mailman/Handlers/Hold.py:90
+msgid "Message has a suspicious header"
+msgstr "Meddelandet har ett misstänkt meddelandehuvud."
+
+# Mailman/Handlers/Hold.py:93
+# Mailman/Handlers/Hold.py:91
+#: Mailman/Handlers/Hold.py:91
+msgid "Your message had a suspicious header."
+msgstr "Ditt meddelande innehåller ett tvivelaktigt meddelandehuvud."
+
+# Mailman/Handlers/Hold.py:103
+# Mailman/Handlers/Hold.py:101
+#: Mailman/Handlers/Hold.py:101
+msgid ""
+"Message body is too big: %(size)d bytes with a limit of\n"
+"%(limit)d KB"
+msgstr "Meddelandet är för stort: %(size)d bytes, gränsen är %(limit)d KB"
+
+# Mailman/Handlers/Hold.py:108
+# Mailman/Handlers/Hold.py:106
+#: Mailman/Handlers/Hold.py:106
+msgid ""
+"Your message was too big; please trim it to less than\n"
+"%(kb)d KB in size."
+msgstr ""
+"Ditt meddelande är för stort, var vänlig och minska det så att det blir "
+"mindre än\n"
+"%(kb)d KB."
+
+# Mailman/Handlers/Hold.py:59
+# Mailman/Handlers/Hold.py:110
+#: Mailman/Handlers/Hold.py:110
+#, fuzzy
+msgid "Posting to a moderated newsgroup"
+msgstr "Meddelande till modererad nyhetsgrupp"
+
+# Mailman/Handlers/Hold.py:216
+# Mailman/Handlers/Hold.py:233
+#: Mailman/Handlers/Hold.py:233
+msgid "Your message to %(listname)s awaits moderator approval"
+msgstr ""
+"Meddelandet som du skickade till listan %(listname)s väntar på godkännande "
+"av moderatorn."
+
+# Mailman/Handlers/Hold.py:236
+# Mailman/Handlers/Hold.py:253
+#: Mailman/Handlers/Hold.py:253
+msgid "%(listname)s post from %(sender)s requires approval"
+msgstr "Meddelande till %(listname)s från %(sender)s kräver godkännande"
+
+# Mailman/Handlers/Hold.py:243
+# Mailman/Handlers/Hold.py:260
+#: Mailman/Handlers/Hold.py:260
+msgid ""
+"If you reply to this message, keeping the Subject: header intact, Mailman "
+"will\n"
+"discard the held message. Do this if the message is spam. If you reply to\n"
+"this message and include an Approved: header with the list password in it, "
+"the\n"
+"message will be approved for posting to the list. The Approved: header can\n"
+"also appear in the first line of the body of the reply."
+msgstr ""
+"Om du svarar på detta meddelande, och behåller Subject: fältet som det är, "
+"kommer\n"
+"Mailman att kasta det tillbakahållna meddelandet. Gör detta om meddelandet "
+"är spam.\n"
+"Om du svarar på detta meddelande, och lägger till ett Approved: fält i "
+"meddelandehuvudet\n"
+"som innehåller listans lösenord, kommer e-postbrevet att godkännas och "
+"skickas till listan.\n"
+"Approved: fältet kan du också skriva som den första raden i svaret du "
+"skickar."
+
+# Mailman/Handlers/MimeDel.py:56
+#: Mailman/Handlers/MimeDel.py:56
+msgid "The message's content type was explicitly disallowed"
+msgstr "Meddelandets innehållstyp var uttryckligen förbjudet"
+
+# Mailman/Handlers/MimeDel.py:61
+#: Mailman/Handlers/MimeDel.py:61
+msgid "The message's content type was not explicitly allowed"
+msgstr "Meddelandets innehållstyp var inte uttryckligen tillåtet"
+
+# Mailman/Handlers/MimeDel.py:73
+#: Mailman/Handlers/MimeDel.py:73
+msgid "After content filtering, the message was empty"
+msgstr "Efter innehållsfiltrering var meddelandet tomt"
+
+# Mailman/Handlers/MimeDel.py:208
+#: Mailman/Handlers/MimeDel.py:208
+msgid ""
+"The attached message matched the %(listname)s mailing list's content "
+"filtering\n"
+"rules and was prevented from being forwarded on to the list membership. "
+"You\n"
+"are receiving the only remaining copy of the discarded message.\n"
+"\n"
+msgstr ""
+"Det bifogade meddelandet matchade innehållsfiltreringen för e-postlistan %"
+"(listname)s \n"
+"och hindrades därför från att vidarebefordras till medlemslistan.Du\n"
+"får den enda kopian av det kastade meddelandet.\n"
+"\n"
+
+# Mailman/Handlers/MimeDel.py:214
+#: Mailman/Handlers/MimeDel.py:214
+msgid "Content filtered message notification"
+msgstr "Underrättelse om innehållsfiltrerat meddelande"
+
+# Mailman/Handlers/Moderate.py:129
+# Mailman/Handlers/Moderate.py:130
+#: Mailman/Handlers/Moderate.py:138
+msgid ""
+"You are not allowed to post to this mailing list, and your message has been\n"
+"automatically rejected. If you think that your messages are being rejected "
+"in\n"
+"error, contact the mailing list owner at %(listowner)s."
+msgstr ""
+"Du har inte tillåtelse att skicka e-postbrev till denna e-postlista, ditt "
+"meddelande blev därför\n"
+"automatiskt avvisat. Om du anser att dina e-postbrev avvisas felaktigt, "
+"kontakta\n"
+"e-postlistans ägare på %(listowner)s."
+
+# Mailman/Handlers/Moderate.py:144
+# Mailman/Handlers/Moderate.py:145
+#: Mailman/Handlers/Moderate.py:153
+msgid "Auto-discard notification"
+msgstr "Automatiskt meddelande: ditt e-postbrev avvisades"
+
+# Mailman/Handlers/Moderate.py:147
+# Mailman/Handlers/Moderate.py:148
+#: Mailman/Handlers/Moderate.py:156
+msgid "The attached message has been automatically discarded."
+msgstr "Det bifogade meddelandet kastades automatiskt."
+
+# Mailman/Handlers/Replybot.py:66
+# Mailman/Handlers/Replybot.py:74
+#: Mailman/Handlers/Replybot.py:74
+msgid "Auto-response for your message to "
+msgstr "Automatiskt svar för meddelandet som du skickade till "
+
+# Mailman/Handlers/Replybot.py:67
+# Mailman/Handlers/Replybot.py:75
+#: Mailman/Handlers/Replybot.py:75
+msgid "the \"%(realname)s\" mailing list"
+msgstr "e-postlistan \"%(realname)s\""
+
+# Mailman/Handlers/Replybot.py:97
+# Mailman/Handlers/Replybot.py:107
+#: Mailman/Handlers/Replybot.py:107
+msgid "The Mailman Replybot"
+msgstr "Mailmans automatiska svar"
+
+# Mailman/Handlers/Scrubber.py:82
+# Mailman/Handlers/Scrubber.py:116
+#: Mailman/Handlers/Scrubber.py:148
+msgid "HTML attachment scrubbed and removed"
+msgstr "En HTML-bilaga skiljdes ut och togs bort"
+
+# Mailman/Handlers/Scrubber.py:95 Mailman/Handlers/Scrubber.py:117
+# Mailman/Handlers/Scrubber.py:129 Mailman/Handlers/Scrubber.py:154
+#: Mailman/Handlers/Scrubber.py:162 Mailman/Handlers/Scrubber.py:188
+msgid ""
+"An HTML attachment was scrubbed...\n"
+"URL: %(url)s\n"
+msgstr ""
+"En HTML-bilaga skiljdes ut...\n"
+"URL: %(url)s\n"
+
+# Mailman/Handlers/Scrubber.py:129
+# Mailman/Handlers/Scrubber.py:166
+#: Mailman/Handlers/Scrubber.py:201
+msgid "no subject"
+msgstr "ingen titel"
+
+# Mailman/Handlers/Scrubber.py:130
+# Mailman/Handlers/Scrubber.py:167
+#: Mailman/Handlers/Scrubber.py:202
+msgid "no date"
+msgstr "inget datum"
+
+# Mailman/Handlers/Scrubber.py:131
+# Mailman/Handlers/Scrubber.py:168
+#: Mailman/Handlers/Scrubber.py:203
+msgid "unknown sender"
+msgstr "okänd avsändare"
+
+# Mailman/Handlers/Scrubber.py:133
+# Mailman/Handlers/Scrubber.py:170
+#: Mailman/Handlers/Scrubber.py:205
+msgid ""
+"An embedded message was scrubbed...\n"
+"From: %(who)s\n"
+"Subject: %(subject)s\n"
+"Date: %(date)s\n"
+"Size: %(size)s\n"
+"Url: %(url)s\n"
+msgstr ""
+"Ett inbäddat brev i e-postbrev, skiljdes ut...\n"
+"Från: %(who)s\n"
+"Titel: %(subject)s\n"
+"Datum: %(date)s\n"
+"Storlek: %(size)s\n"
+"Url: %(url)s\n"
+
+# Mailman/Handlers/Scrubber.py:159
+# Mailman/Handlers/Scrubber.py:196
+#: Mailman/Handlers/Scrubber.py:228
+msgid ""
+"A non-text attachment was scrubbed...\n"
+"Name: %(filename)s\n"
+"Type: %(ctype)s\n"
+"Size: %(size)d bytes\n"
+"Desc: %(desc)s\n"
+"Url : %(url)s\n"
+msgstr ""
+"En bilaga som inte var text, skiljdes ut...\n"
+"Namn : %(filename)s\n"
+"Typ : %(ctype)s\n"
+"Storlek: %(size)d bytes\n"
+"Beskrivning: %(desc)s\n"
+"URL : %(url)s\n"
+
+#: Mailman/Handlers/Scrubber.py:258
+msgid "Skipped content of type %(partctype)s"
+msgstr ""
+
+#: Mailman/Handlers/Scrubber.py:275
+msgid "-------------- next part --------------\n"
+msgstr ""
+
+# Mailman/Handlers/ToDigest.py:140
+# Mailman/Handlers/ToDigest.py:141
+#: Mailman/Handlers/ToDigest.py:141
+msgid "%(realname)s Digest, Vol %(volume)d, Issue %(issue)d"
+msgstr "Sammandrag av %(realname)s, Vol %(volume)d, Utgåva %(issue)d"
+
+# Mailman/Handlers/ToDigest.py:178
+# Mailman/Handlers/ToDigest.py:181
+#: Mailman/Handlers/ToDigest.py:181
+msgid "digest header"
+msgstr "topptext"
+
+# Mailman/Handlers/ToDigest.py:181
+# Mailman/Handlers/ToDigest.py:184
+#: Mailman/Handlers/ToDigest.py:184
+msgid "Digest Header"
+msgstr "Topptext"
+
+# Mailman/Handlers/ToDigest.py:194
+# Mailman/Handlers/ToDigest.py:197
+#: Mailman/Handlers/ToDigest.py:197
+msgid "Today's Topics:\n"
+msgstr "Dagens ämnen:\n"
+
+# Mailman/Handlers/ToDigest.py:261
+# Mailman/Handlers/ToDigest.py:267
+#: Mailman/Handlers/ToDigest.py:267
+msgid "Today's Topics (%(msgcount)d messages)"
+msgstr "Dagens ämnen (%(msgcount)d meddelanden)"
+
+# Mailman/Handlers/ToDigest.py:287
+# Mailman/Handlers/ToDigest.py:292
+#: Mailman/Handlers/ToDigest.py:292
+msgid "digest footer"
+msgstr "bottentext"
+
+# Mailman/Handlers/ToDigest.py:290
+# Mailman/Handlers/ToDigest.py:295
+#: Mailman/Handlers/ToDigest.py:295
+msgid "Digest Footer"
+msgstr "Bottentext"
+
+# Mailman/Handlers/ToDigest.py:304
+# Mailman/Handlers/ToDigest.py:309
+#: Mailman/Handlers/ToDigest.py:309
+msgid "End of "
+msgstr "Slut på "
+
+# Mailman/ListAdmin.py:306
+# Mailman/ListAdmin.py:307
+#: Mailman/ListAdmin.py:307
+msgid "Posting of your message titled \"%(subject)s\""
+msgstr "Ditt meddelande med titel \"%(subject)s\""
+
+# Mailman/ListAdmin.py:334
+# Mailman/ListAdmin.py:346
+#: Mailman/ListAdmin.py:346
+msgid "Forward of moderated message"
+msgstr "Vidaresändning av modererat meddelande"
+
+# Mailman/ListAdmin.py:393
+# Mailman/ListAdmin.py:405
+#: Mailman/ListAdmin.py:405
+msgid "New subscription request to list %(realname)s from %(addr)s"
+msgstr "Ny ansökan om medlemskap på listan %(realname)s från %(addr)s"
+
+# Mailman/ListAdmin.py:416
+# Mailman/ListAdmin.py:428
+#: Mailman/ListAdmin.py:428
+msgid "Subscription request"
+msgstr "Ansökan om medlemskap"
+
+# Mailman/ListAdmin.py:446
+# Mailman/ListAdmin.py:458
+#: Mailman/ListAdmin.py:458
+msgid "New unsubscription request from %(realname)s by %(addr)s"
+msgstr "Ansökan från %(addr)s om avanmälan från listan %(realname)s"
+
+# Mailman/ListAdmin.py:469
+# Mailman/ListAdmin.py:481
+#: Mailman/ListAdmin.py:481
+msgid "Unsubscription request"
+msgstr "Ansökan om avanmälan"
+
+# Mailman/ListAdmin.py:500
+# Mailman/ListAdmin.py:512
+#: Mailman/ListAdmin.py:512
+msgid "Original Message"
+msgstr "Ursprungligt meddelande"
+
+# Mailman/ListAdmin.py:503
+# Mailman/ListAdmin.py:515
+#: Mailman/ListAdmin.py:515
+msgid "Request to mailing list %(realname)s rejected"
+msgstr "Fråga till e-postlistan %(realname)s inte godkänd"
+
+# Mailman/MTA/Manual.py:55
+# Mailman/MTA/Manual.py:57
+#: Mailman/MTA/Manual.py:57
+msgid ""
+"The mailing list `%(listname)s' has been created via the through-the-web\n"
+"interface. In order to complete the activation of this mailing list, the\n"
+"proper /etc/aliases (or equivalent) file must be updated. The program\n"
+"`newaliases' may also have to be run.\n"
+"\n"
+"Here are the entries for the /etc/aliases file:\n"
+msgstr ""
+"E-postlistan '%(listname)s' har upprättats via webbsidorna. För att "
+"fullfölja\n"
+"upprättandet och aktivera e-postlistan, måste filen /etc/aliases (eller "
+"motsvarande\n"
+"aliasfil) uppdateras. Det kan också vara så att programmet 'newaliases' "
+"måste köras.\n"
+"\n"
+"Här är raderna som måste läggas in i aliasfilen:\n"
+
+# Mailman/MTA/Manual.py:65
+# Mailman/MTA/Manual.py:67
+#: Mailman/MTA/Manual.py:67
+msgid ""
+"\n"
+"To finish creating your mailing list, you must edit your /etc/aliases (or\n"
+"equivalent) file by adding the following lines, and possibly running the\n"
+"`newaliases' program:\n"
+"\n"
+"## %(listname)s mailing list"
+msgstr ""
+"\n"
+"För att fullfölja upprättandet av e-postlistan, måste du redigera filen /etc/"
+"aliases\n"
+"(eller motsvarande aliasfil), lägga till följande rader, och därefter\n"
+"eventuellt köra programmet 'newaliases':\n"
+"\n"
+"## E-postlista: %(listname)s"
+
+# Mailman/MTA/Manual.py:86
+# Mailman/MTA/Manual.py:88
+#: Mailman/MTA/Manual.py:88
+msgid "Mailing list creation request for list %(listname)s"
+msgstr "Resultat av upprättande av e-postlistan %(listname)s"
+
+# Mailman/MTA/Manual.py:101
+# Mailman/MTA/Manual.py:103
+#: Mailman/MTA/Manual.py:103
+msgid ""
+"The mailing list `%(listname)s' has been removed via the through-the-web\n"
+"interface. In order to complete the de-activation of this mailing list, "
+"the\n"
+"appropriate /etc/aliases (or equivalent) file must be updated. The program\n"
+"`newaliases' may also have to be run.\n"
+"\n"
+"Here are the entries in the /etc/aliases file that should be removed:\n"
+msgstr ""
+"E-postlistan '%(listname)s' har raderats via webbsidan. För att fullfölja "
+"raderingen\n"
+"av denna e-postlista, måste filen /etc/aliases (eller motsvarande aliasfil)\n"
+"uppdateras. Det kan också vara så att programmet 'newaliases' måste köras.\n"
+"\n"
+"Här är raderna som måste tas bort från aliasfilen:\n"
+
+# Mailman/MTA/Manual.py:111
+# Mailman/MTA/Manual.py:113
+#: Mailman/MTA/Manual.py:113
+msgid ""
+"\n"
+"To finish removing your mailing list, you must edit your /etc/aliases (or\n"
+"equivalent) file by removing the following lines, and possibly running the\n"
+"`newaliases' program:\n"
+"\n"
+"## %(listname)s mailing list"
+msgstr ""
+"\n"
+"För att fullfölja radering av denna e-postlista, måste följande rader "
+"raderas i\n"
+"filen /etc/aliases (eller motsvarande aliasfil), möjligen följt av\n"
+"att du kör programmet 'newaliases':\n"
+"\n"
+"## E-postlista: %(listname)s"
+
+# Mailman/MTA/Manual.py:130
+# Mailman/MTA/Manual.py:132
+#: Mailman/MTA/Manual.py:132
+msgid "Mailing list removal request for list %(listname)s"
+msgstr "Fråga om att radera e-postlistan %(listname)s"
+
+# Mailman/MTA/Postfix.py:299
+# Mailman/MTA/Postfix.py:300
+#: Mailman/MTA/Postfix.py:300
+msgid "checking permissions on %(file)s"
+msgstr "kontrollerar rättigheter för %(file)s"
+
+# Mailman/MTA/Postfix.py:309
+# Mailman/MTA/Postfix.py:310
+#: Mailman/MTA/Postfix.py:310
+msgid "%(file)s permissions must be 066x (got %(octmode)s)"
+msgstr "rättigheterna på %(file)s måste vara 066x (men är %(octmode)s)"
+
+# Mailman/MTA/Postfix.py:311 Mailman/MTA/Postfix.py:337 bin/check_perms:101
+# bin/check_perms:123 bin/check_perms:142 bin/check_perms:160
+# bin/check_perms:180 bin/check_perms:204 bin/check_perms:224
+# bin/check_perms:238 bin/check_perms:258 bin/check_perms:294
+# Mailman/MTA/Postfix.py:312 Mailman/MTA/Postfix.py:339 bin/check_perms:96
+# bin/check_perms:118 bin/check_perms:137 bin/check_perms:155
+# bin/check_perms:175 bin/check_perms:199 bin/check_perms:219
+# bin/check_perms:233 bin/check_perms:253 bin/check_perms:290
+#: Mailman/MTA/Postfix.py:312 Mailman/MTA/Postfix.py:339 bin/check_perms:100
+#: bin/check_perms:122 bin/check_perms:132 bin/check_perms:143
+#: bin/check_perms:162 bin/check_perms:180 bin/check_perms:200
+#: bin/check_perms:224 bin/check_perms:244 bin/check_perms:258
+#: bin/check_perms:278 bin/check_perms:315
+msgid "(fixing)"
+msgstr "(fixar)"
+
+# Mailman/MTA/Postfix.py:327
+# Mailman/MTA/Postfix.py:328
+#: Mailman/MTA/Postfix.py:328
+msgid "checking ownership of %(dbfile)s"
+msgstr "undersöker ägarskap på filen %(dbfile)s"
+
+# Mailman/MTA/Postfix.py:334
+# Mailman/MTA/Postfix.py:336
+#: Mailman/MTA/Postfix.py:336
+msgid "%(dbfile)s owned by %(owner)s (must be owned by %(user)s"
+msgstr "%(dbfile)s ägs av %(owner)s (måste ägas av %(user)s)"
+
+# Mailman/MailList.py:662
+# Mailman/MailList.py:709
+#: Mailman/MailList.py:697
+msgid "You have been invited to join the %(listname)s mailing list"
+msgstr "Du inbjuds härmed att anmäla dig till e-postlistan %(listname)s"
+
+# Mailman/MailList.py:766 Mailman/MailList.py:1120
+# Mailman/MailList.py:813 Mailman/MailList.py:1174
+#: Mailman/MailList.py:801 Mailman/MailList.py:1157
+msgid " from %(remote)s"
+msgstr " från %(remote)s"
+
+# Mailman/MailList.py:803
+# Mailman/MailList.py:850
+#: Mailman/MailList.py:835
+msgid "subscriptions to %(realname)s require moderator approval"
+msgstr "anmälan till %(realname)s kräver godkännande av moderator"
+
+# Mailman/MailList.py:861 bin/add_members:277
+# Mailman/MailList.py:909 bin/add_members:281
+#: Mailman/MailList.py:894 bin/add_members:281
+msgid "%(realname)s subscription notification"
+msgstr "Meddelande om anmälan till e-postlistan %(realname)s"
+
+# Mailman/MailList.py:879
+# Mailman/MailList.py:924
+#: Mailman/MailList.py:909
+msgid "unsubscriptions require moderator approval"
+msgstr "avanmälan kräver godkännande av moderator"
+
+# Mailman/MailList.py:900
+# Mailman/MailList.py:945
+#: Mailman/MailList.py:928
+msgid "%(realname)s unsubscribe notification"
+msgstr "Meddelande om avanmälan från e-postlistan %(realname)s"
+
+# Mailman/MailList.py:1040
+# Mailman/MailList.py:1089
+#: Mailman/MailList.py:1072
+msgid "subscriptions to %(name)s require administrator approval"
+msgstr "Anmälan till %(name)s kräver godkännande av administratör"
+
+# Mailman/MailList.py:1343
+#: Mailman/MailList.py:1326
+msgid "Last autoresponse notification for today"
+msgstr "Dagens sista automatiska svarsmeddelande"
+
+# Mailman/Queue/BounceRunner.py:174
+#: Mailman/Queue/BounceRunner.py:179
+msgid ""
+"The attached message was received as a bounce, but either the bounce format\n"
+"was not recognized, or no member addresses could be extracted from it. "
+"This\n"
+"mailing list has been configured to send all unrecognized bounce messages "
+"to\n"
+"the list administrator(s).\n"
+"\n"
+"For more information see:\n"
+"%(adminurl)s\n"
+"\n"
+msgstr ""
+"Det bifogade meddelandet mottogs som en retur, men antingen kändes formatet "
+"inte igen eller också kunde inga medlemsadresser hittas i det.\n"
+"Denna\n"
+"e-postlista har konfigurerats för att sända alla okända returmeddelanden "
+"till\n"
+"listans administratör.\n"
+"\n"
+"För mer information se:\n"
+"%(adminurl)s\n"
+"\n"
+
+# Mailman/Bouncer.py:173
+# Mailman/Queue/BounceRunner.py:184
+#: Mailman/Queue/BounceRunner.py:189
+#, fuzzy
+msgid "Uncaught bounce notification"
+msgstr "Icke uppfångat returmeddelande"
+
+# Mailman/Queue/CommandRunner.py:72
+# Mailman/Queue/CommandRunner.py:73
+#: Mailman/Queue/CommandRunner.py:74
+msgid "Ignoring non-text/plain MIME parts"
+msgstr "Hoppar över MIME-delar som inte är text/plain"
+
+# Mailman/Queue/CommandRunner.py:124
+# Mailman/Queue/CommandRunner.py:125
+#: Mailman/Queue/CommandRunner.py:129
+msgid ""
+"The results of your email command are provided below.\n"
+"Attached is your original message.\n"
+msgstr ""
+"Resultatet av dina kommandon visas nedan.\n"
+"Ditt ursprungliga meddelande finns bifogat.\n"
+
+# Mailman/Queue/CommandRunner.py:129
+# Mailman/Queue/CommandRunner.py:130
+#: Mailman/Queue/CommandRunner.py:134
+msgid "- Results:"
+msgstr "- Resultat:"
+
+# Mailman/Queue/CommandRunner.py:135
+# Mailman/Queue/CommandRunner.py:136
+#: Mailman/Queue/CommandRunner.py:140
+msgid ""
+"\n"
+"- Unprocessed:"
+msgstr ""
+"\n"
+"- Inte utfört:"
+
+# Mailman/Queue/CommandRunner.py:138
+# Mailman/Queue/CommandRunner.py:139
+#: Mailman/Queue/CommandRunner.py:143
+msgid ""
+"\n"
+"- Ignored:"
+msgstr ""
+"\n"
+"- Hoppat över:"
+
+# Mailman/Queue/CommandRunner.py:140
+# Mailman/Queue/CommandRunner.py:141
+#: Mailman/Queue/CommandRunner.py:145
+msgid ""
+"\n"
+"- Done.\n"
+"\n"
+msgstr ""
+"\n"
+"- Utfört.\n"
+"\n"
+
+# Mailman/Queue/CommandRunner.py:147
+# Mailman/Queue/CommandRunner.py:159
+#: Mailman/Queue/CommandRunner.py:163
+msgid "The results of your email commands"
+msgstr "Resultatet av dina kommandon"
+
+# Mailman/htmlformat.py:627
+# Mailman/htmlformat.py:627
+#: Mailman/htmlformat.py:627
+msgid "Delivered by Mailman<br>version %(version)s"
+msgstr "Levererat av Mailman<br>version %(version)s"
+
+# Mailman/htmlformat.py:628
+# Mailman/htmlformat.py:628
+#: Mailman/htmlformat.py:628
+msgid "Python Powered"
+msgstr "Programmerat i Python"
+
+# Mailman/htmlformat.py:629
+# Mailman/htmlformat.py:629
+#: Mailman/htmlformat.py:629
+msgid "Gnu's Not Unix"
+msgstr "GNU är inte Unix"
+
+# Mailman/Commands/cmd_set.py:153 Mailman/Commands/cmd_set.py:191
+# Mailman/Commands/cmd_set.py:194 Mailman/Commands/cmd_set.py:198
+# Mailman/Commands/cmd_set.py:202
+# Mailman/i18n.py:86
+#: Mailman/i18n.py:86
+#, fuzzy
+msgid "Mon"
+msgstr "Mån"
+
+# Mailman/i18n.py:86
+#: Mailman/i18n.py:86
+msgid "Thu"
+msgstr "Tors"
+
+# Mailman/i18n.py:86
+#: Mailman/i18n.py:86
+msgid "Tue"
+msgstr "Tis"
+
+# Mailman/i18n.py:86
+#: Mailman/i18n.py:86
+msgid "Wed"
+msgstr "Ons"
+
+# Mailman/i18n.py:87
+#: Mailman/i18n.py:87
+msgid "Fri"
+msgstr "Fre"
+
+# Mailman/Cgi/admin.py:513
+# Mailman/i18n.py:87
+#: Mailman/i18n.py:87
+#, fuzzy
+msgid "Sat"
+msgstr "Lör"
+
+# Mailman/i18n.py:87
+#: Mailman/i18n.py:87
+msgid "Sun"
+msgstr "Sön"
+
+# Mailman/Cgi/admindb.py:280 Mailman/Cgi/admindb.py:329
+# Mailman/Cgi/admindb.py:574
+# Mailman/i18n.py:91
+#: Mailman/i18n.py:91
+#, fuzzy
+msgid "Apr"
+msgstr "Apr"
+
+# Mailman/i18n.py:91
+#: Mailman/i18n.py:91
+msgid "Feb"
+msgstr "Feb"
+
+# Mailman/i18n.py:91
+#: Mailman/i18n.py:91
+msgid "Jan"
+msgstr "Jan"
+
+# Mailman/i18n.py:91
+#: Mailman/i18n.py:91
+msgid "Jun"
+msgstr "Juni"
+
+# Mailman/i18n.py:91
+#: Mailman/i18n.py:91
+msgid "Mar"
+msgstr "Mars"
+
+# Mailman/i18n.py:92
+#: Mailman/i18n.py:92
+msgid "Aug"
+msgstr "Aug"
+
+# Mailman/i18n.py:92
+#: Mailman/i18n.py:92
+msgid "Dec"
+msgstr "Dec"
+
+# Mailman/i18n.py:92
+#: Mailman/i18n.py:92
+msgid "Jul"
+msgstr "Juli"
+
+# Mailman/Cgi/admin.py:1067 Mailman/Cgi/admin.py:1076
+# Mailman/Cgi/admin.py:1100 Mailman/Cgi/admin.py:1108
+# Mailman/Cgi/confirm.py:260 Mailman/Cgi/create.py:323
+# Mailman/Cgi/create.py:351 Mailman/Cgi/create.py:383
+# Mailman/Cgi/rmlist.py:205 Mailman/Gui/Archive.py:33
+# Mailman/Gui/Autoresponse.py:55 Mailman/Gui/Autoresponse.py:63
+# Mailman/Gui/Autoresponse.py:72 Mailman/Gui/Bounce.py:77
+# Mailman/Gui/Bounce.py:108 Mailman/Gui/Bounce.py:134
+# Mailman/Gui/Bounce.py:143 Mailman/Gui/ContentFilter.py:40
+# Mailman/Gui/ContentFilter.py:64 Mailman/Gui/Digest.py:46
+# Mailman/Gui/Digest.py:62 Mailman/Gui/Digest.py:84 Mailman/Gui/Digest.py:89
+# Mailman/Gui/General.py:150 Mailman/Gui/General.py:228
+# Mailman/Gui/General.py:255 Mailman/Gui/General.py:282
+# Mailman/Gui/General.py:293 Mailman/Gui/General.py:296
+# Mailman/Gui/General.py:306 Mailman/Gui/General.py:311
+# Mailman/Gui/General.py:334 Mailman/Gui/General.py:362
+# Mailman/Gui/General.py:385 Mailman/Gui/NonDigest.py:44
+# Mailman/Gui/NonDigest.py:51 Mailman/Gui/Privacy.py:100
+# Mailman/Gui/Privacy.py:106 Mailman/Gui/Privacy.py:139
+# Mailman/Gui/Privacy.py:187 Mailman/Gui/Privacy.py:295
+# Mailman/Gui/Privacy.py:310 Mailman/Gui/Privacy.py:377
+# Mailman/Gui/Usenet.py:46 Mailman/Gui/Usenet.py:50 Mailman/Gui/Usenet.py:54
+# Mailman/i18n.py:92
+#: Mailman/i18n.py:92
+#, fuzzy
+msgid "Nov"
+msgstr "Nov"
+
+# Mailman/i18n.py:92
+#: Mailman/i18n.py:92
+msgid "Oct"
+msgstr "Okt"
+
+# Mailman/Cgi/admin.py:513
+# Mailman/i18n.py:92
+#: Mailman/i18n.py:92
+#, fuzzy
+msgid "Sep"
+msgstr "Sept"
+
+#: Mailman/i18n.py:95
+msgid "Server Local Time"
+msgstr ""
+
+#: Mailman/i18n.py:128
+msgid ""
+"%(wday)s %(mon)s %(day)2i %(hh)02i:%(mm)02i:%(ss)02i %(tzname)s %(year)04i"
+msgstr ""
+
+# bin/add_members:26
+# bin/add_members:26
+#: bin/add_members:26
+#, fuzzy
+msgid ""
+"Add members to a list from the command line.\n"
+"\n"
+"Usage:\n"
+" add_members [options] listname\n"
+"\n"
+"Options:\n"
+"\n"
+" --regular-members-file=file\n"
+" -r file\n"
+" A file containing addresses of the members to be added, one\n"
+" address per line. This list of people become non-digest\n"
+" members. If file is `-', read addresses from stdin. Note that\n"
+" -n/--non-digest-members-file are deprecated synonyms for this "
+"option.\n"
+"\n"
+" --digest-members-file=file\n"
+" -d=file\n"
+" Similar to above, but these people become digest members.\n"
+"\n"
+" --changes-msg=<y|n>\n"
+" -c <y|n> \n"
+"\tSet whether or not to send the list members the `there's going to be\n"
+"\tbig changes to your list' message. defaults to no.\n"
+"\n"
+" --welcome-msg=<y|n>\n"
+" -w <y|n>\n"
+" Set whether or not to send the list members a welcome message,\n"
+" overriding whatever the list's `send_welcome_msg' setting is.\n"
+"\n"
+" --admin-notify=<y|n>\n"
+" -a <y|n>\n"
+" Set whether or not to send the list administrators a notification "
+"on\n"
+" the success/failure of these subscriptions, overriding whatever the\n"
+" list's `admin_notify_mchanges' setting is.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname\n"
+" The name of the Mailman list you are adding members to. It must\n"
+" already exist.\n"
+"\n"
+"You must supply at least one of -r and -d options. At most one of the\n"
+"files can be `-'.\n"
+msgstr ""
+"Lägger in nya medlemmar på en lista från kommandoraden.\n"
+"\n"
+"Används så här:\n"
+" add_members [val] listnamn\n"
+"\n"
+"Val:\n"
+"\n"
+" --regular-members-file=filnamn\n"
+" -r filnamn\n"
+" Namn på en fil som innehåller e-postadresserna till medlemmar som "
+"ska\n"
+" läggas till, en per rad. Denna lista över medlemmar sätts upp\n"
+" för normalversion. Om filnamnet är `-', läses adresserna in från "
+"standard input.\n"
+"\n"
+" --digest-members-file=filnamn\n"
+" -d=filnavn\n"
+" Precis som -n valet ovan, men de som finns i denna fil blir uppsatta "
+"på listan\n"
+" för sammandragsversion.\n"
+"\n"
+" --changes-msg=<y|n>\n"
+" -c <y|n>\n"
+" Berättar om det ska skickas ut ett meddelande till listans medlemmar "
+"om\n"
+" att \"det kommer att bli en stor ändring på listan\".\n"
+" Default: n\n"
+"\n"
+" --welcome-msg=<y|n>\n"
+" -w <y|n>\n"
+" Berättar om det ska skickas ut välkomsthälsning till de nya "
+"medlemmarna på\n"
+" listan.\n"
+" Default: listans \"send_welcome_msg\" inställning.\n"
+"\n"
+" --admin-notify=<y|n>\n"
+" -a <y|n>\n"
+" Berättar om det ska skickas ut meddelande till listadministratören.\n"
+" Default: listans \"admin_notify_mchanges\" inställning.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Visar denna hjälptext.\n"
+"\n"
+" listenamn\n"
+" Namn på listan som ska få nya medlemmar. Den måste redan existera.\n"
+"\n"
+"Du måste använda minst valen \"-n\" eller \"-d\". Bara ett av filnamnen kan "
+"vara `-'.\n"
+
+# bin/add_members:130
+# bin/add_members:134
+#: bin/add_members:134
+msgid "Big change in %(listname)s@%(listhost)s mailing list"
+msgstr "Stor ändring av e-postlistan %(listname)s@%(listhost)s"
+
+# bin/add_members:163
+# bin/add_members:167
+#: bin/add_members:167
+msgid "Already a member: %(member)s"
+msgstr "Redan medlem: %(member)s"
+
+# bin/add_members:166
+# bin/add_members:170
+#: bin/add_members:170
+msgid "Bad/Invalid email address: blank line"
+msgstr "Fel/Ogiltig e-postadress: tom rad"
+
+# bin/add_members:168
+# bin/add_members:172
+#: bin/add_members:172
+msgid "Bad/Invalid email address: %(member)s"
+msgstr "Fel/Ogiltig e-postadress: %(member)s"
+
+# bin/add_members:170
+# bin/add_members:174
+#: bin/add_members:174
+msgid "Hostile address (illegal characters): %(member)s"
+msgstr "Ogiltigt tecken i e-postadressen: %(member)s"
+
+# bin/add_members:172
+# bin/add_members:176
+#: bin/add_members:176
+msgid "Subscribed: %(member)s"
+msgstr "Anmäld: %(member)s"
+
+# bin/add_members:219
+# bin/add_members:223
+#: bin/add_members:223
+msgid "Bad argument to -c/--changes-msg: %(arg)s"
+msgstr "Ogiltigt argument till -c/--changes-msg: %(arg)s"
+
+# bin/add_members:226
+# bin/add_members:230
+#: bin/add_members:230
+msgid "Bad argument to -w/--welcome-msg: %(arg)s"
+msgstr "Ogiltigt argument till -w/--welcome-msg: %(arg)s"
+
+# bin/add_members:233
+# bin/add_members:237
+#: bin/add_members:237
+msgid "Bad argument to -a/--admin-notify: %(arg)s"
+msgstr "Ogiltigt argument till -a/--admin-notify: %(arg)s"
+
+# bin/add_members:239
+# bin/add_members:243
+#: bin/add_members:243
+msgid "Cannot read both digest and normal members from standard input."
+msgstr ""
+"Kan inte läsa både medlemmar i normalversion och medlemmar i "
+"sammandragsversion från standard input."
+
+# bin/add_members:245 bin/config_list:101 bin/find_member:93 bin/inject:86
+# bin/list_admins:85 bin/list_members:175 bin/sync_members:218
+# cron/bumpdigests:82
+# bin/add_members:249 bin/config_list:105 bin/find_member:97 bin/inject:90
+# bin/list_admins:89 bin/list_members:187 bin/sync_members:222
+# cron/bumpdigests:86
+#: bin/add_members:249 bin/config_list:105 bin/find_member:97 bin/inject:90
+#: bin/list_admins:89 bin/list_members:187 bin/sync_members:222
+#: cron/bumpdigests:86
+msgid "No such list: %(listname)s"
+msgstr "Listan finns inte: %(listname)s"
+
+# bin/add_members:265 bin/change_pw:154 bin/check_db:110 bin/sync_members:240
+# cron/bumpdigests:74
+# bin/add_members:269 bin/change_pw:158 bin/check_db:114 bin/sync_members:244
+# cron/bumpdigests:78
+#: bin/add_members:269 bin/change_pw:158 bin/check_db:114 bin/sync_members:244
+#: cron/bumpdigests:78
+msgid "Nothing to do."
+msgstr "Ingenting att göra."
+
+# bin/arch:19
+# bin/arch:19
+#: bin/arch:19
+#, fuzzy
+msgid ""
+"Rebuild a list's archive.\n"
+"\n"
+"Use this command to rebuild the archives for a mailing list. You may want "
+"to\n"
+"do this if you edit some messages in an archive, or remove some messages "
+"from\n"
+"an archive.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] <listname> [<mbox>]\n"
+"\n"
+"Where options are:\n"
+" -h / --help\n"
+" Print this help message and exit.\n"
+"\n"
+" -q / --quiet\n"
+" Make the archiver output less verbose.\n"
+"\n"
+" --wipe\n"
+" First wipe out the original archive before regenerating. You "
+"usually\n"
+" want to specify this argument unless you're generating the archive "
+"in\n"
+" chunks.\n"
+"\n"
+" -s N\n"
+" --start=N\n"
+" Start indexing at article N, where article 0 is the first in the "
+"mbox.\n"
+" Defaults to 0.\n"
+"\n"
+" -e M\n"
+" --end=M\n"
+" End indexing at article M. This script is not very efficient with\n"
+" respect to memory management, and for large archives, it may not be\n"
+" possible to index the mbox entirely. For that reason, you can "
+"specify\n"
+" the start and end article numbers.\n"
+"\n"
+"Where <mbox> is the path to a list's complete mbox archive. Usually this "
+"will\n"
+"be some path in the archives/private directory. For example:\n"
+"\n"
+"%% bin/arch mylist archives/private/mylist.mbox/mylist.mbox\n"
+"\n"
+"<mbox> is optional. If it is missing, it is calculated.\n"
+msgstr ""
+"Bygger upp e-postlistans arkiv på nytt.\n"
+"\n"
+"Använd detta kommando för att bygga upp en e-postlistans arkiv på nytt. Det "
+"kan vara så\n"
+"att du får användning för detta om du manuellt redigerar något e-postbrev i "
+"ett arkiv, eller\n"
+"tar bort något e-postbrev från arkivet.\n"
+"\n"
+"Används så här: %(PROGRAM)s [val] <listnamn> [<mbox-fil>]\n"
+"\n"
+"Val:\n"
+"\n"
+" -h / --help\n"
+" Visar denna hjälptext.\n"
+"\n"
+" -s N\n"
+" --start=N\n"
+" Startar indexeringen på artikel N, där artikel 0 är första "
+"meddelande\n"
+" i mbox-filen.\n"
+" 0 är standardvärde.\n"
+"\n"
+" -e M\n"
+" --end=M\n"
+" Slutar att indexera på artikel M. Detta skript är inte minnes-\n"
+" effektivt, och stora arkiv kan kanske inte byggas från grunden.\n"
+" Genom att ange start- och slutvärden kan man på detta sätt bygga\n"
+" arkivet bit för bit.\n"
+"\n"
+"<mbox-fil> är fullständigt namn på en fil som innehåller listans kompletta "
+"arkiv\n"
+"i mbox-format. Detta är vanligtvis en fil i katalogen archives/private.\n"
+"Till exempel:\n"
+"\n"
+"%% bin/arch minliste archives/private/minliste.mbox/minliste.mbox\n"
+"\n"
+"<mbox-fil> är valfri. Anges den inte, försöker kommandot att gissa rätt "
+"namn.\n"
+
+# bin/arch:102
+# bin/arch:109
+#: bin/arch:125
+msgid "listname is required"
+msgstr "kräver listans namn"
+
+# bin/arch:120 bin/change_pw:102 bin/config_list:200
+# bin/arch:127 bin/change_pw:106 bin/config_list:239
+#: bin/arch:143 bin/change_pw:106 bin/config_list:242
+msgid ""
+"No such list \"%(listname)s\"\n"
+"%(e)s"
+msgstr ""
+"Listan \"%(listname)s\" finns inte\n"
+"%(e)s"
+
+# bin/arch:143
+# bin/arch:150
+#: bin/arch:170
+msgid "Cannot open mbox file %(mbox)s: %(msg)s"
+msgstr "Kan inte öppna mbox-fil %(mbox)s: %(msg)s"
+
+#: bin/b4b5-archfix:19
+msgid ""
+"Fix the MM2.1b4 archives.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] file ...\n"
+"\n"
+"Where options are:\n"
+" -h / --help\n"
+" Print this help message and exit.\n"
+"\n"
+"Only use this to `fix' some archive database files that may have gotten\n"
+"written in Mailman 2.1b4 with some bogus data. Use like this from your\n"
+"$PREFIX directory\n"
+"\n"
+"%% %(PROGRAM)s `grep -l _mlist archives/private/*/database/*-article`\n"
+"\n"
+"(note the backquotes are required)\n"
+"\n"
+"You will need to run `bin/check_perms -f' after running this script.\n"
+msgstr ""
+
+# bin/change_pw:19
+# bin/change_pw:19
+#: bin/change_pw:19
+msgid ""
+"Change a list's password.\n"
+"\n"
+"Prior to Mailman 2.1, list passwords were kept in crypt'd format -- "
+"usually.\n"
+"Some Python installations didn't have the crypt module available, so they'd\n"
+"fall back to md5. Then suddenly the Python installation might grow a crypt\n"
+"module and all list passwords would be broken.\n"
+"\n"
+"In Mailman 2.1, all list and site passwords are stored in SHA1 hexdigest\n"
+"form. This breaks list passwords for all existing pre-Mailman 2.1 lists, "
+"and\n"
+"since those passwords aren't stored anywhere in plain text, they cannot be\n"
+"retrieved and updated.\n"
+"\n"
+"Thus, this script generates new passwords for a list, and optionally sends "
+"it\n"
+"to all the owners of the list.\n"
+"\n"
+"Usage: change_pw [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" --all / -a\n"
+" Change the password for all lists.\n"
+"\n"
+" --domain=domain\n"
+" -d domain\n"
+" Change the password for all lists in the virtual domain `domain'. "
+"It\n"
+" is okay to give multiple -d options.\n"
+"\n"
+" --listname=listname\n"
+" -l listname\n"
+" Change the password only for the named list. It is okay to give\n"
+" multiple -l options.\n"
+"\n"
+" --password=newpassword\n"
+" -p newpassword\n"
+" Use the supplied plain text password `newpassword' as the new "
+"password\n"
+" for any lists that are being changed (as specified by the -a, -d, "
+"and\n"
+" -l options). If not given, lists will be assigned a randomly\n"
+" generated new password.\n"
+"\n"
+" --quiet / -q\n"
+" Don't notify list owners of the new password. You'll have to have\n"
+" some other way of letting the list owners know the new password\n"
+" (presumably out-of-band).\n"
+"\n"
+" --help / -h\n"
+" Print this help message and exit.\n"
+msgstr ""
+"Ändra lösenordet för en lista.\n"
+"\n"
+"Innan Mailman 2.1 kom, blev listlösenorden (vanligtvis) sparade i "
+"cryptformat.\n"
+"Några Python-installationer hade inte cryptmodulen installerad, så de\n"
+"använde md5-modulen isället. Om cryptmodulen då installerades,\n"
+"fungerade inga lösenord längre.\n"
+"\n"
+"I Mailman 2.1 sparas alla lösenord i SHA1 hexdigest format. Detta är inte\n"
+"bakåtkompatibelt med äldre versioner av Mailman, och eftersom lösenorden "
+"inte\n"
+"får sparas i klartext, kan de inte hämtas ut och uppdateras.\n"
+"\n"
+"Detta skript genererar nya lösenord för en lista, och kan skicka dem till\n"
+"alla ägare av listan om så önskas.\n"
+"\n"
+"Används så här: change_pw [val]\n"
+"\n"
+"Val:\n"
+"\n"
+" --all / -a\n"
+" ändrar lösenorden på alla listor.\n"
+"\n"
+" --domain=domän\n"
+" -d domän\n"
+" ändrar lösenord för alla listor i den virtuella domänen 'domän'.\n"
+" Detta val kan användas flera gånger.\n"
+"\n"
+" --listname=listnamn\n"
+" -l listnamn\n"
+" ändrar bara lösenordet för den angivna listan.\n"
+" Detta val kan användas flera gånger.\n"
+"\n"
+" --password=nyttlösenord\n"
+" -p nyttlösenord\n"
+" Sätter lösenordet till det angivna \"nyttlösenord\" för de listor "
+"som\n"
+" ska ändras. Om detta val inte används, kommer lösenordet att\n"
+" genereras automatiskt.\n"
+"\n"
+" --quiet / -q\n"
+" Skicka inte meddelande om det nya lösenordet till listans ägare. Du "
+"bör då\n"
+" ha ett annat sätt att ge det nya lösenordet till ägaren.\n"
+"\n"
+" --help / -h\n"
+" Visar denna hjälptext.\n"
+
+# bin/change_pw:140
+# bin/change_pw:144
+#: bin/change_pw:144
+msgid "Bad arguments: %(strargs)s"
+msgstr "Ogiltiga parametrar: %(strargs)s"
+
+# bin/change_pw:144
+# bin/change_pw:148
+#: bin/change_pw:148
+msgid "Empty list passwords are not allowed"
+msgstr "Tomma listlösenord är inte tillåtna"
+
+# bin/change_pw:175
+# bin/change_pw:179
+#: bin/change_pw:179
+msgid "New %(listname)s password: %(notifypassword)s"
+msgstr "Nytt lösenord för %(listname)s: %(notifypassword)s"
+
+# bin/change_pw:184
+# bin/change_pw:188
+#: bin/change_pw:188
+msgid "Your new %(listname)s list password"
+msgstr "Ditt nya lösenord för e-postlistan %(listname)s"
+
+# bin/change_pw:185
+# bin/change_pw:189
+#: bin/change_pw:189
+msgid ""
+"The site administrator at %(hostname)s has changed the password for your\n"
+"mailing list %(listname)s. It is now\n"
+"\n"
+" %(notifypassword)s\n"
+"\n"
+"Please be sure to use this for all future list administration. You may "
+"want\n"
+"to log in now to your list and change the password to something more to "
+"your\n"
+"liking. Visit your list admin page at\n"
+"\n"
+" %(adminurl)s\n"
+msgstr ""
+"Administratören för %(hostname)s har ändrat lösenordet för e-postlistan\n"
+"%(listname)s. Det nya lösenordet är:\n"
+"\n"
+" %(notifypassword)s\n"
+"\n"
+"Kom ihåg att hädanefter använda detta lösenord för all administration av "
+"listan.\n"
+"Kanske vill du logga in nu och ändra lösenordet till ett annat som du "
+"hellre\n"
+"vill ha. Detta kan du i så fall göra på listans administrationssida:\n"
+"\n"
+" %(adminurl)s\n"
+
+# bin/check_db:19
+# bin/check_db:19
+#: bin/check_db:19
+msgid ""
+"Check a list's config database file for integrity.\n"
+"\n"
+"All of the following files are checked:\n"
+"\n"
+" config.pck\n"
+" config.pck.last\n"
+" config.db\n"
+" config.db.last\n"
+" config.safety\n"
+"\n"
+"It's okay if any of these are missing. config.pck and config.pck.last are\n"
+"pickled versions of the config database file for 2.1a3 and beyond. config."
+"db\n"
+"and config.db.last are used in all earlier versions, and these are Python\n"
+"marshals. config.safety is a pickle written by 2.1a3 and beyond when the\n"
+"primary config.pck file could not be read.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname [listname ...]]\n"
+"\n"
+"Options:\n"
+"\n"
+" --all / -a\n"
+" Check the databases for all lists. Otherwise only the lists named "
+"on\n"
+" the command line are checked.\n"
+"\n"
+" --verbose / -v\n"
+" Verbose output. The state of every tested file is printed.\n"
+" Otherwise only corrupt files are displayed.\n"
+"\n"
+" --help / -h\n"
+" Print this text and exit.\n"
+msgstr ""
+"Undersöker en listas konfigurationsdatabas.\n"
+"\n"
+"Följande filer kontrolleras:\n"
+"\n"
+" config.pck\n"
+" config.pck.last\n"
+" config.db\n"
+" config.db.last\n"
+" config.safety\n"
+"\n"
+"Det gör ingenting om någon av dessa inte existerar.\n"
+"config.pck och config.pck.last är konfigurationsdatabasfilen för 2.1a3 och\n"
+"nyare, lagrade i en pickle. config.db och config.db.last används i alla\n"
+"tidigare versioner, dessa filer är i formatet \"Python marshal\".\n"
+"config.safety är en pickle skapad av 2.1a3 och nyare när config.pck inte\n"
+"kan läsas.\n"
+"\n"
+"Används så här: %(PROGRAM)s [val] [listnamn [listnamn ...]]\n"
+"\n"
+"Val:\n"
+"\n"
+" --all / -a\n"
+" Undersöker databaserna för alla listor. Vanligtvis undersöks bara "
+"de\n"
+" nämnda listorna.\n"
+"\n"
+" --verbose / -v\n"
+" Visa detaljer. Status för varje fil som testas, skrivs ut.\n"
+" Vanligtvis visas bara korrupta filer.\n"
+"\n"
+" --help / -h\n"
+" Visar denna hjälptext.\n"
+
+# bin/check_db:115
+# bin/check_db:119
+#: bin/check_db:119
+msgid "No list named:"
+msgstr "Hittade ingen lista med namnet:"
+
+# bin/check_db:124
+# bin/check_db:128
+#: bin/check_db:128
+msgid "List:"
+msgstr "Lista:"
+
+# bin/check_db:144
+# bin/check_db:148
+#: bin/check_db:148
+msgid " %(file)s: okay"
+msgstr " %(file)s: ok"
+
+# bin/check_perms:19
+# bin/check_perms:19
+#: bin/check_perms:19
+msgid ""
+"Check the permissions for the Mailman installation.\n"
+"\n"
+"Usage: %(PROGRAM)s [-f] [-v] [-h]\n"
+"\n"
+"With no arguments, just check and report all the files that have bogus\n"
+"permissions or group ownership. With -f (and run as root), fix all the\n"
+"permission problems found. With -v be verbose.\n"
+"\n"
+msgstr ""
+"Undersöker rättigheter på filerna i Mailmaninstallationen.\n"
+"\n"
+"Används så här: %(PROGRAM)s [-f] [-v] [-h]\n"
+"\n"
+"Om inget val är specifiserat, gör den bara en undersökning och rapporterar\n"
+"ogiltiga rättigheter och ägarskap på filer. Med -f (bör köras som root), "
+"rättar\n"
+"den till alla fel under tiden. Med -v visas detaljerad information.\n"
+"\n"
+
+# bin/check_perms:86
+# bin/check_perms:81
+#: bin/check_perms:85
+msgid " checking gid and mode for %(path)s"
+msgstr " kontrollerar gid och rättigheter för %(path)s"
+
+# bin/check_perms:98
+# bin/check_perms:93
+#: bin/check_perms:97
+#, fuzzy
+msgid "%(path)s bad group (has: %(groupname)s, expected %(MAILMAN_GROUP)s)"
+msgstr ""
+"felaktig grupp för %(path)s (har: %(groupname)s, förväntade %(MAILMAN_GROUP)"
+"s)"
+
+# bin/check_perms:121
+# bin/check_perms:116
+#: bin/check_perms:120
+msgid "directory permissions must be %(octperms)s: %(path)s"
+msgstr "rättigheterna på katalogen måste vara %(octperms)s: %(path)s"
+
+# bin/check_perms:121
+# bin/check_perms:116
+#: bin/check_perms:129
+#, fuzzy
+msgid "source perms must be %(octperms)s: %(path)s"
+msgstr "rättigheterna på katalogen måste vara %(octperms)s: %(path)s"
+
+# bin/check_perms:121
+# bin/check_perms:116
+#: bin/check_perms:140
+#, fuzzy
+msgid "article db files must be %(octperms)s: %(path)s"
+msgstr "rättigheterna på katalogen måste vara %(octperms)s: %(path)s"
+
+# bin/check_perms:132
+# bin/check_perms:127
+#: bin/check_perms:152
+msgid "checking mode for %(prefix)s"
+msgstr "kontrollerar rättigheter för %(prefix)s"
+
+# bin/check_perms:140
+# bin/check_perms:135
+#: bin/check_perms:160
+msgid "directory must be at least 02775: %(d)s"
+msgstr "katalogen måste minst ha rättigheterna 02775: %(d)s"
+
+# bin/check_perms:153
+# bin/check_perms:148
+#: bin/check_perms:173
+msgid "checking perms on %(private)s"
+msgstr "kontrollerar rättigheter för: %(private)s"
+
+# bin/check_perms:158
+# bin/check_perms:153
+#: bin/check_perms:178
+msgid "%(private)s must not be other-readable"
+msgstr "%(private)s får inte vara läsbara för alla"
+
+# bin/check_perms:178
+# bin/check_perms:173
+#: bin/check_perms:198
+msgid "mbox file must be at least 0660:"
+msgstr "mbox-filen måste minst ha rättigheterna 0660:"
+
+# bin/check_perms:202
+# bin/check_perms:197
+#: bin/check_perms:222
+msgid "%(dbdir)s \"other\" perms must be 000"
+msgstr "rättigheter för \"alla andra\" för katalogen %(dbdir)s måste vara 000"
+
+# bin/check_perms:213
+# bin/check_perms:208
+#: bin/check_perms:233
+msgid "checking cgi-bin permissions"
+msgstr "kontrollerar rättigheter till cgi-bin"
+
+# bin/check_perms:218
+# bin/check_perms:213
+#: bin/check_perms:238
+msgid " checking set-gid for %(path)s"
+msgstr " kontrollerar set-gid för %(path)s"
+
+# bin/check_perms:222
+# bin/check_perms:217
+#: bin/check_perms:242
+msgid "%(path)s must be set-gid"
+msgstr "%(path)s måste vara set-gid"
+
+# bin/check_perms:232
+# bin/check_perms:227
+#: bin/check_perms:252
+msgid "checking set-gid for %(wrapper)s"
+msgstr "kontrollerar set-gid för %(wrapper)s"
+
+# bin/check_perms:236
+# bin/check_perms:231
+#: bin/check_perms:256
+msgid "%(wrapper)s must be set-gid"
+msgstr "%(wrapper)s måste vara set-gid"
+
+# bin/check_perms:246
+# bin/check_perms:241
+#: bin/check_perms:266
+msgid "checking permissions on %(pwfile)s"
+msgstr "kontrollerar rättigheter för %(pwfile)s"
+
+# bin/check_perms:255
+# bin/check_perms:250
+#: bin/check_perms:275
+msgid "%(pwfile)s permissions must be exactly 0640 (got %(octmode)s)"
+msgstr ""
+"rättigheterna för %(pwfile)s måste vara satta till 0640 (de är %(octmode)s)"
+
+# bin/check_perms:278
+# bin/check_perms:274
+#: bin/check_perms:299
+msgid "checking permissions on list data"
+msgstr "kontrollerar rättigheter för listdata"
+
+# bin/check_perms:284
+# bin/check_perms:280
+#: bin/check_perms:305
+msgid " checking permissions on: %(path)s"
+msgstr " kontrollerar rättigheter för: %(path)s"
+
+# bin/check_perms:292
+# bin/check_perms:288
+#: bin/check_perms:313
+msgid "file permissions must be at least 660: %(path)s"
+msgstr "filrättigheter måste vara minst 660: %(path)s"
+
+# bin/check_perms:334
+# bin/check_perms:334
+#: bin/check_perms:359
+msgid "No problems found"
+msgstr "Hittade inga problem"
+
+# bin/check_perms:336
+# bin/check_perms:336
+#: bin/check_perms:361
+msgid "Problems found:"
+msgstr "Hittade problem:"
+
+# bin/check_perms:337
+# bin/check_perms:337
+#: bin/check_perms:362
+#, fuzzy
+msgid "Re-run as %(MAILMAN_USER)s (or root) with -f flag to fix"
+msgstr ""
+"Kör åter som %(MAILMAN_USER)s (eller root) med \"-f\" flaggan, för att fixa "
+"detta"
+
+# bin/cleanarch:19
+# bin/cleanarch:19
+#: bin/cleanarch:19
+msgid ""
+"Clean up an .mbox archive file.\n"
+"\n"
+"The archiver looks for Unix-From lines separating messages in an mbox "
+"archive\n"
+"file. For compatibility, it specifically looks for lines that start with\n"
+"\"From \" -- i.e. the letters capital-F, lowercase-r, o, m, space, ignoring\n"
+"everything else on the line.\n"
+"\n"
+"Normally, any lines that start \"From \" in the body of a message should be\n"
+"escaped such that a > character is actually the first on a line. It is\n"
+"possible though that body lines are not actually escaped. This script\n"
+"attempts to fix these by doing a stricter test of the Unix-From lines. Any\n"
+"lines that start \"From \" but do not pass this stricter test are escaped "
+"with a\n"
+"> character.\n"
+"\n"
+"Usage: cleanarch [options] < inputfile > outputfile\n"
+"Options:\n"
+" -s n\n"
+" --status=n\n"
+" Print a # character every n lines processed\n"
+"\n"
+" -q / --quiet\n"
+" Don't print changed line information to standard error.\n"
+"\n"
+" -n / --dry-run\n"
+" Don't actually output anything.\n"
+"\n"
+" -h / --help\n"
+" Print this message and exit\n"
+msgstr ""
+"Rensar upp i en .mbox fil.\n"
+"\n"
+"Arkivfunktionen ser efter Unix-From rader som skiljer meddelanden från "
+"varandra\n"
+"i en mbox fil. För kompatibilitet ser den efter rad som börjar med\n"
+"\"From\" -- altså stort F, litet r, o, och m, och ett mellanrum. Allt annat "
+"på\n"
+"raden bortses från.\n"
+"\n"
+"Vanligtvis ska rader som befinner sig i innehållet i ett e-postbrev, och som "
+"börjar\n"
+"med \"From \", egentligen börja med en \">\" så att meddelande kan tolkas på "
+"rätt\n"
+"sätt. Det händer att detta någon gång inte är fallet. Detta skript försöker\n"
+"att rätta till detta och göra en lite strängare kontroll på Unix-From "
+"rader.\n"
+"Rader som börjar med \"From \" men som inte passerar denna kontroll, får "
+"ett\n"
+"\">\" framför sig.\n"
+"\n"
+"Används så här: cleanarch [val] < infil > utfil\n"
+"\n"
+"Val:\n"
+" -s n\n"
+" --status=n\n"
+" Visa ett # för var n:te rad som läses.\n"
+"\n"
+" -q / --quietly\n"
+" Visa inte ändringar som görs.\n"
+"\n"
+" -n / --dry-run\n"
+" Skriv inget till standard output.\n"
+"\n"
+" -h / --help\n"
+" Visa denna hjälptext.\n"
+
+# bin/cleanarch:78
+# bin/cleanarch:82
+#: bin/cleanarch:82
+msgid "Unix-From line changed: %(lineno)d"
+msgstr "Unix-Från rad ändrad: %(lineno)d"
+
+# bin/cleanarch:106
+# bin/cleanarch:110
+#: bin/cleanarch:110
+msgid "Bad status number: %(arg)s"
+msgstr "Ogiltigt statusnummer: %(arg)s"
+
+# bin/cleanarch:158
+# bin/cleanarch:160
+#: bin/cleanarch:160
+msgid "%(messages)d messages found"
+msgstr "hittade %(messages)d meddelanden"
+
+# bin/clone_member:19
+# bin/clone_member:19
+#: bin/clone_member:19
+msgid ""
+"Clone a member address.\n"
+"\n"
+"Cloning a member address means that a new member will be added who has all "
+"the\n"
+"same options and passwords as the original member address. Note that this\n"
+"operation is fairly trusting of the user who runs it -- it does no\n"
+"verification to the new address, it does not send out a welcome message, "
+"etc.\n"
+"\n"
+"The existing member's subscription is usually not modified in any way. If "
+"you\n"
+"want to remove the old address, use the -r flag. If you also want to "
+"change\n"
+"any list admin addresses, use the -a flag.\n"
+"\n"
+"Usage:\n"
+" clone_member [options] fromoldaddr tonewaddr\n"
+"\n"
+"Where:\n"
+"\n"
+" --listname=listname\n"
+" -l listname\n"
+" Check and modify only the named mailing lists. If -l is not given,\n"
+" then all mailing lists are scanned from the address. Multiple -l\n"
+" options can be supplied.\n"
+"\n"
+" --remove\n"
+" -r\n"
+" Remove the old address from the mailing list after it's been "
+"cloned.\n"
+"\n"
+" --admin\n"
+" -a\n"
+" Scan the list admin addresses for the old address, and clone or "
+"change\n"
+" them too.\n"
+"\n"
+" --quiet\n"
+" -q\n"
+" Do the modifications quietly.\n"
+"\n"
+" --nomodify\n"
+" -n\n"
+" Print what would be done, but don't actually do it. Inhibits the\n"
+" --quiet flag.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" fromoldaddr (`from old address') is the old address of the user. "
+"tonewaddr\n"
+" (`to new address') is the new address of the user.\n"
+"\n"
+msgstr ""
+"Klonar en medlemsadress.\n"
+"\n"
+"Att klona en medlemsadress betyder att kopiera inställningarna för en medlem "
+"över\n"
+"till en ny medlem, med en annan e-postadress. Den uppsprungliga medlemmens\n"
+"inställningar ändras inte, men kan tas bort genom att använda -r flaggan. Om "
+"du\n"
+"också önskar att ändra e-postadressen till en av listadministratörerna,\n"
+"använd -a flaggan.\n"
+"\n"
+"Observera: detta kommando litar på den som kör det, det sänds ingen\n"
+"bekräftelse, välkomsthälsning eller liknande till den nya adressen.\n"
+"\n"
+"Används så här:\n"
+"\n"
+" clone_member [val] frångammaladresstillnyadress\n"
+"\n"
+"Där:\n"
+"\n"
+" --listname=listnamn\n"
+" -l listnamn\n"
+" Går igenom och ändrar bara på namngivna e-postlistor. Om -l inte\n"
+" uppges, används alla e-postlistor. Flera -l kan användas.\n"
+"\n"
+" --remove\n"
+" -r\n"
+" Avanmäler den gamla e-postadressen efter det att den nya är anmäld.\n"
+"\n"
+" --admin\n"
+" -a\n"
+" Går igenom och ändrar eventuellt även administratörsadresser.\n"
+"\n"
+" --quiet\n"
+" -q\n"
+" Utför ändringar så omärkligt som möjligt.\n"
+"\n"
+" --nomodify\n"
+" -n\n"
+" Utför inga ändringar, men visar vad som skulle blivit utfört.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Visar denna hjälptext.\n"
+"\n"
+"frångammaladress ('från gammal adress') är e-postadressen till medlemmen "
+"som\n"
+" ska kopieras från.\n"
+"tillnyadress ('till ny adress') är den nya e-postadressen som ska upprättas, "
+"och\n"
+" som ska få den gamla adressens inställningar.\n"
+"\n"
+
+# bin/clone_member:90
+# bin/clone_member:94
+#: bin/clone_member:94
+msgid "processing mailing list:"
+msgstr "behandlar e-postlistan:"
+
+# bin/clone_member:97
+# bin/clone_member:101
+#: bin/clone_member:101
+msgid " scanning list owners:"
+msgstr " går igenom listans ägare:"
+
+# bin/clone_member:115
+# bin/clone_member:119
+#: bin/clone_member:119
+msgid " new list owners:"
+msgstr " nya listägare:"
+
+# bin/clone_member:117
+# bin/clone_member:121
+#: bin/clone_member:121
+msgid "(no change)"
+msgstr "(ingen ändring)"
+
+# bin/clone_member:126
+# bin/clone_member:130
+#: bin/clone_member:130
+msgid " address not found:"
+msgstr " hittade inte adressen:"
+
+# bin/clone_member:135
+# bin/clone_member:139
+#: bin/clone_member:139
+msgid " clone address added:"
+msgstr " kopierade adressen:"
+
+# bin/clone_member:138
+# bin/clone_member:142
+#: bin/clone_member:142
+msgid " clone address is already a member:"
+msgstr " den kopierdee adressen är redan medlem:"
+
+# bin/clone_member:141
+# bin/clone_member:145
+#: bin/clone_member:145
+msgid " original address removed:"
+msgstr " den ursprungliga adressen togs bort:"
+
+# bin/clone_member:192
+# bin/clone_member:196
+#: bin/clone_member:196
+msgid "Not a valid email address: %(toaddr)s"
+msgstr "Ingen giltig e-postadress: %(toaddr)s"
+
+# bin/clone_member:205
+# bin/clone_member:209
+#: bin/clone_member:209
+msgid ""
+"Error opening list \"%(listname)s\", skipping.\n"
+"%(e)s"
+msgstr ""
+"Hoppar över listan \"%(listname)s\" p g a fel under öppnande.\n"
+"%(e)s"
+
+# bin/config_list:19
+# bin/config_list:19
+#: bin/config_list:19
+msgid ""
+"Configure a list from a text file description.\n"
+"\n"
+"Usage: config_list [options] listname\n"
+"\n"
+"Options:\n"
+" --inputfile filename\n"
+" -i filename\n"
+" Configure the list by assigning each module-global variable in the\n"
+" file to an attribute on the list object, then saving the list. The\n"
+" named file is loaded with execfile() and must be legal Python code.\n"
+" Any variable that isn't already an attribute of the list object is\n"
+" ignored (a warning message is printed). See also the -c option.\n"
+"\n"
+" A special variable named `mlist' is put into the globals during the\n"
+" execfile, which is bound to the actual MailList object. This lets "
+"you\n"
+" do all manner of bizarre thing to the list object, but BEWARE! "
+"Using\n"
+" this can severely (and possibly irreparably) damage your mailing "
+"list!\n"
+"\n"
+" --outputfile filename\n"
+" -o filename\n"
+" Instead of configuring the list, print out a list's configuration\n"
+" variables in a format suitable for input using this script. In "
+"this\n"
+" way, you can easily capture the configuration settings for a\n"
+" particular list and imprint those settings on another list. "
+"filename\n"
+" is the file to output the settings to. If filename is `-', "
+"standard\n"
+" out is used.\n"
+"\n"
+" --checkonly\n"
+" -c\n"
+" With this option, the modified list is not actually changed. Only\n"
+" useful with -i.\n"
+"\n"
+" --verbose\n"
+" -v\n"
+" Print the name of each attribute as it is being changed. Only "
+"useful\n"
+" with -i.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+"The options -o and -i are mutually exclusive.\n"
+"\n"
+msgstr ""
+"Konfigurerar listan från en textfil.\n"
+"\n"
+"\n"
+"Används så här: config_list [val] listnamn\n"
+"\n"
+"Val:\n"
+" --inputfile filnamn\n"
+" -i filnamn\n"
+" Konfigurerar listan genom att läsa in filen och sätta attribut till\n"
+" listans objekt efter variablerna i filen. Filen läses in med\n"
+" funktionen execfile() och måste därför vara giltig Pythonkod. Alla\n"
+" variabler som inte är ett attribut i listobjektet hoppas över\n"
+" (en varning visas). Se också -c valet.\n"
+"\n"
+" Den speciella variabeln 'mlist' inom execfile(), binds till\n"
+" själva MailList objektet. Detta gör att du kan göra allt med\n"
+" listobjektet, så VAR FöRSIKTIG! Felaktig användning kan fullständigt "
+"ödelägga\n"
+" e-postlistan!\n"
+"\n"
+" --outputfile filnamn\n"
+" -o filnamn\n"
+" Skriver ut hela listans konfiguration till en fil (som åter kan "
+"sparas\n"
+" med -i, se ovan), istället för att konfigurera listan. Detta är\n"
+" till exempel ett enkelt sätt att kopiera inställningarna för en lista "
+"över till en\n"
+" annan lista. 'filnamn' är namnet på filen som konfigurationen ska "
+"skrivas\n"
+" till. Om filnamnet är '-', skriver skriptet till standard output.\n"
+"\n"
+" --checkonly\n"
+" -c\n"
+" Gör bara en kontroll av data, utan att ändra på listan.\n"
+" Bara användbart för -i valet.\n"
+"\n"
+" --verbose\n"
+" -v\n"
+" Visar namnet på alla attribut som ändras.\n"
+" Bara användbart för -i valet.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Visar denna hjälptext.\n"
+"\n"
+"-o och -i kan inte användas samtidigt.\n"
+"\n"
+
+# bin/config_list:105
+# bin/config_list:109
+#: bin/config_list:109
+msgid ""
+"## \"%(listname)s\" mailing list configuration settings -*- python -*-\n"
+"## captured on %(when)s\n"
+msgstr ""
+"## Inställningar för e-postlistan \"%(listname)s\" -*- python -*-\n"
+"## Datum: %(when)s\n"
+
+# bin/config_list:126
+# bin/config_list:131
+#: bin/config_list:131
+msgid "options"
+msgstr "val"
+
+# bin/config_list:177
+# bin/config_list:188
+#: bin/config_list:188
+msgid "legal values are:"
+msgstr "giltiga värden:"
+
+# bin/config_list:212
+# bin/config_list:252
+#: bin/config_list:255
+msgid "attribute \"%(k)s\" ignored"
+msgstr "hoppar över attribut \"%(k)s\""
+
+# bin/config_list:215
+# bin/config_list:255
+#: bin/config_list:258
+msgid "attribute \"%(k)s\" changed"
+msgstr "ändrat på attributen \"%(k)s\""
+
+# bin/config_list:261
+#: bin/config_list:264
+msgid "Non-standard property restored: %(k)s"
+msgstr "Icke standardegenskap återställd: %(k)s"
+
+# Mailman/Gui/GUIBase.py:143
+# bin/config_list:269
+#: bin/config_list:272
+#, fuzzy
+msgid "Invalid value for property: %(k)s"
+msgstr "Ogiltigt värde för egenskap: %(k)s"
+
+# Mailman/Gui/GUIBase.py:147
+# bin/config_list:271
+#: bin/config_list:274
+#, fuzzy
+msgid "Bad email address for option %(k)s: %(v)s"
+msgstr "Ogiltig e-postadress för val %(k)s: %(v)s"
+
+# bin/config_list:251
+# bin/config_list:310
+#: bin/config_list:322
+msgid "Only one of -i or -o is allowed"
+msgstr "Bara en av parametrarna \"-i\" eller \"-o\" kan användas åt gången"
+
+# bin/config_list:253
+# bin/config_list:312
+#: bin/config_list:324
+msgid "One of -i or -o is required"
+msgstr "Du MåSTE använda en av parametrarna \"-i\" eller \"-o\""
+
+# bin/config_list:257
+# bin/config_list:316
+#: bin/config_list:328
+msgid "List name is required"
+msgstr "Du MåSTE specifisera listans namn"
+
+# bin/convert.py:19
+# bin/convert.py:19
+#: bin/convert.py:19
+msgid ""
+"Convert a list's interpolation strings from %-strings to $-strings.\n"
+"\n"
+"This script is intended to be run as a bin/withlist script, i.e.\n"
+"\n"
+"% bin/withlist -l -r convert <mylist>\n"
+msgstr ""
+
+# bin/convert.py:38 bin/fix_url.py:34
+# bin/convert.py:38 bin/fix_url.py:85
+#: bin/convert.py:38 bin/fix_url.py:85
+msgid "Saving list"
+msgstr "Sparar listan"
+
+# bin/convert.py:44 bin/fix_url.py:40
+# bin/convert.py:44 bin/fix_url.py:51
+#: bin/convert.py:44 bin/fix_url.py:51
+msgid "%%%"
+msgstr ""
+
+# bin/dumpdb:19
+# bin/dumpdb:19
+#: bin/dumpdb:19
+#, fuzzy
+msgid ""
+"Dump the contents of any Mailman `database' file.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] filename\n"
+"\n"
+"Options:\n"
+"\n"
+" --marshal/-m\n"
+" Assume the file contains a Python marshal, overridding any "
+"automatic\n"
+" guessing.\n"
+"\n"
+" --pickle/-p\n"
+" Assume the file contains a Python pickle, overridding any automatic\n"
+" guessing.\n"
+"\n"
+" --noprint/-n\n"
+" Don't attempt to pretty print the object. This is useful if "
+"there's\n"
+" some problem with the object and you just want to get an unpickled\n"
+" representation. Useful with `python -i bin/dumpdb <file>'. In "
+"that\n"
+" case, the root of the tree will be left in a global called \"msg\".\n"
+"\n"
+" --help/-h\n"
+" Print this help message and exit\n"
+"\n"
+"If the filename ends with `.db', then it is assumed that the file contains "
+"a\n"
+"Python marshal. If the file ends with `.pck' then it is assumed to contain "
+"a\n"
+"Python pickle. In either case, if you want to override the default "
+"assumption\n"
+"-- or if the file ends in neither suffix -- use the -p or -m flags.\n"
+msgstr ""
+"Visar innehållet i en Mailmandatabasfil.\n"
+"\n"
+"Används så här: %(PROGRAM)s [val] filnamn\n"
+"\n"
+"Val:\n"
+"\n"
+" --marshal / -m\n"
+" Utgå från att filen innehåller en Python marshal, och därmed "
+"överspelar\n"
+" automatisk uppskattning av filformatet.\n"
+"\n"
+" --pickle / -p\n"
+" Utgå från att filen innehåller en Python pickle, och därmed "
+"överspelar\n"
+" automatisk uppskattning av filformatet.\n"
+"\n"
+" --help / -h\n"
+" Visar denna hjälptext.\n"
+"\n"
+"Om filnamnet slutar på '.db', antar skriptet att filen innehåller en Python\n"
+"marshal. Om filnamnet slutar på '.pck', antar skriptet att filen innehåller\n"
+"en Python pickle. I bägge fallen kan du använda -p eller -m flaggorna om\n"
+"du önskar att överspela detta (eller om filnamnet inte slutar på\n"
+"någotdera).\n"
+
+# bin/dumpdb:88
+# bin/dumpdb:101
+#: bin/dumpdb:101
+msgid "No filename given."
+msgstr "Inget filnamn angett"
+
+# bin/dumpdb:91
+# bin/dumpdb:104
+#: bin/dumpdb:104
+msgid "Bad arguments: %(pargs)s"
+msgstr "Ogiltig parameter: %(pargs)s"
+
+# bin/dumpdb:101
+# bin/dumpdb:114
+#: bin/dumpdb:114
+msgid "Please specify either -p or -m."
+msgstr "Var vänlig använd -p eller -m."
+
+# bin/find_member:19
+# bin/find_member:19
+#: bin/find_member:19
+msgid ""
+"Find all lists that a member's address is on.\n"
+"\n"
+"Usage:\n"
+" find_member [options] regex [regex [...]]\n"
+"\n"
+"Where:\n"
+" --listname=listname\n"
+" -l listname\n"
+" Include only the named list in the search.\n"
+"\n"
+" --exclude=listname\n"
+" -x listname\n"
+" Exclude the named list from the search.\n"
+"\n"
+" --owners\n"
+" -w\n"
+" Search list owners as well as members.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" regex\n"
+" A Python regular expression to match against.\n"
+"\n"
+"The interaction between -l and -x is as follows. If any -l option is given\n"
+"then only the named list will be included in the search. If any -x option "
+"is\n"
+"given but no -l option is given, then all lists will be search except those\n"
+"specifically excluded.\n"
+"\n"
+"Regular expression syntax is Perl5-like, using the Python re module. "
+"Complete\n"
+"specifications are at:\n"
+"\n"
+"http://www.python.org/doc/current/lib/module-re.html\n"
+"\n"
+"Address matches are case-insensitive, but case-preserved addresses are\n"
+"displayed.\n"
+"\n"
+msgstr ""
+"Söker efter en e-postadress i e-postlistorna.\n"
+"\n"
+"Används så:\n"
+" find_member [val] regex [regex [...]]\n"
+"\n"
+"Där:\n"
+" --listname=listnamn\n"
+" -l listnamn\n"
+" Söker bara i den specifiserade e-postlistan.\n"
+"\n"
+" --exclude=listenamn\n"
+" -x listnamn\n"
+" Utelämnar den specifiserade e-postlistan från söket.\n"
+"\n"
+" --owners\n"
+" -w\n"
+" Söker bland listans ägare förutom bland listans medlemmar.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Visar denna hjälptext.\n"
+"\n"
+" regex\n"
+" Ett Python regexp-uttryck som ska användas som sökmönster.\n"
+"\n"
+"Förhållandet mellan -l och -x är som följer. Om -l anges, kommer bara den "
+"angivna\n"
+"listan att inkluderas i söket. Om -x anges, men inte -l, söks alla listor "
+"igenom\n"
+"bortsett från de som specifiserats med -x.\n"
+"\n"
+"Syntax för regexp-uttryck är som Perl5, när Pythons \"re\" modul används.\n"
+"Komplett specifikation finns på:\n"
+"\n"
+"http://www.python.org/doc/current/lib/module-re.html\n"
+"\n"
+"Adresser jämförs utan skillnad på små och stora bokstäver, men visas med\n"
+"stora/små bokstäver som de stavas.\n"
+"\n"
+
+# bin/find_member:155
+# bin/find_member:159
+#: bin/find_member:159
+msgid "Search regular expression required"
+msgstr "Du MåSTE specifisera ett regexp-uttryck"
+
+# bin/find_member:160
+# bin/find_member:164
+#: bin/find_member:164
+msgid "No lists to search"
+msgstr "Inga listor att söka i"
+
+# bin/find_member:169
+# bin/find_member:173
+#: bin/find_member:173
+msgid "found in:"
+msgstr "finns i:"
+
+# bin/find_member:175
+# bin/find_member:179
+#: bin/find_member:179
+msgid "(as owner)"
+msgstr "(som ägare)"
+
+# bin/fix_url.py:19
+#: bin/fix_url.py:19
+msgid ""
+"Reset a list's web_page_url attribute to the default setting.\n"
+"\n"
+"This script is intended to be run as a bin/withlist script, i.e.\n"
+"\n"
+"% bin/withlist -l -r fix_url listname [options]\n"
+"\n"
+"Options:\n"
+" -u urlhost\n"
+" --urlhost=urlhost\n"
+" Look up urlhost in the virtual host table and set the web_page_url "
+"and\n"
+" host_name attributes of the list to the values found. This\n"
+" essentially moves the list from one virtual domain to another.\n"
+"\n"
+" Without this option, the default web_page_url and host_name values "
+"are\n"
+" used.\n"
+"\n"
+" -v / --verbose\n"
+" Print what the script is doing.\n"
+"\n"
+"If run standalone, it prints this help text and exits.\n"
+msgstr ""
+
+# bin/fix_url.py:80
+#: bin/fix_url.py:80
+msgid "Setting web_page_url to: %(web_page_url)s"
+msgstr "Ställer in web_page_url till: %(web_page_url)s"
+
+# bin/fix_url.py:83
+#: bin/fix_url.py:83
+msgid "Setting host_name to: %(mailhost)s"
+msgstr "Ställer in host_name till: %(mailhost)s"
+
+# bin/genaliases:19
+# bin/genaliases:19
+#: bin/genaliases:19
+msgid ""
+"Regenerate Postfix's data/aliases and data/aliases.db files from scratch.\n"
+"\n"
+"Usage:\n"
+"\n"
+" genaliases [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+msgstr ""
+"Genererar Postfix filer data/aliases och data/aliases.db på nytt.\n"
+"\n"
+"Används så här:\n"
+"\n"
+" genaliases [val]\n"
+"\n"
+"Val:\n"
+"\n"
+" --help / -h\n"
+" Visar denna hjälptext.\n"
+
+# bin/inject:19
+# bin/inject:19
+#: bin/inject:19
+msgid ""
+"Inject a message from a file into Mailman's incoming queue.\n"
+"\n"
+"Usage: inject [options] [filename]\n"
+"\n"
+"Options:\n"
+"\n"
+" -h / --help\n"
+" Print this text and exit.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" The name of the list to inject this message to. Required.\n"
+"\n"
+" -q queuename\n"
+" --queue=queuename\n"
+" The name of the queue to inject the message to. The queuename must "
+"be\n"
+" one of the directories inside the qfiles directory. If omitted, "
+"the\n"
+" incoming queue is used.\n"
+"\n"
+"filename is the name of the plaintext message file to inject. If omitted,\n"
+"standard input is used.\n"
+msgstr ""
+"Sätta in ett e-postbrev i en Mailmankö.\n"
+"\n"
+"Används så här: inject [val] [filnamn]\n"
+"\n"
+"Val:\n"
+"\n"
+" -l listnamn\n"
+" --listname=listnamn\n"
+" Namn på listan som ska ta emot meddelandet. MåSTE specifiseras.\n"
+"\n"
+" -q könamn\n"
+" --queue=könamn\n"
+" Namn på kön som meddelandet ska sättas in i. Könamnet ska motsvara\n"
+" namn på en av katalogerna i qfiles katalogen. 'incoming' kön "
+"används\n"
+" om ingen kö anges.\n"
+"\n"
+"filnamn är namnet på filen som innehåller ett e-postbrev i ren text som ska "
+"sättas\n"
+"in i en kö. Om ingen fil anges, används standard input.\n"
+
+# bin/inject:79
+# bin/inject:83
+#: bin/inject:83
+msgid "Bad queue directory: %(qdir)s"
+msgstr "Ogiltig kökatalog: %(qdir)s"
+
+# bin/inject:84
+# bin/inject:88
+#: bin/inject:88
+msgid "A list name is required"
+msgstr "Namn på lista måste anges"
+
+# bin/list_admins:19
+# bin/list_admins:19
+#: bin/list_admins:19
+msgid ""
+"List all the owners of a mailing list.\n"
+"\n"
+"Usage: %(program)s [options] listname ...\n"
+"\n"
+"Where:\n"
+"\n"
+" --all-vhost=vhost\n"
+" -v=vhost\n"
+" List the owners of all the mailing lists for the given virtual "
+"host.\n"
+"\n"
+" --all\n"
+" -a\n"
+" List the owners of all the mailing lists on this system.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+"`listname' is the name of the mailing list to print the owners of. You can\n"
+"have more than one named list on the command line.\n"
+msgstr ""
+"Visar vem som är ägare (owner) till en e-postlista.\n"
+"\n"
+"Används så här: %(program)s [val] listnamn ...\n"
+"\n"
+"Val:\n"
+"\n"
+" --all-vhost=vhost\n"
+" -v=vhost\n"
+" Visar alla ägare till e-postlistor på given virtuell host/"
+"värddator.\n"
+"\n"
+" --all\n"
+" -a\n"
+" Visar alla ägare av alla e-postlistor på systemet.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Visar denna hjälptext.\n"
+"\n"
+"'listnamn' är namn på en e-postlista som du vill se ägarna till. Du kan "
+"ange\n"
+"namn på flera e-postlistor.\n"
+
+# bin/list_admins:91
+# bin/list_admins:96
+#: bin/list_admins:96
+msgid "List: %(listname)s, \tOwners: %(owners)s"
+msgstr "Lista: %(listname)s, \tÄgare: %(owners)s"
+
+# bin/list_lists:19
+# bin/list_lists:19
+#: bin/list_lists:19
+#, fuzzy
+msgid ""
+"List all mailing lists.\n"
+"\n"
+"Usage: %(program)s [options]\n"
+"\n"
+"Where:\n"
+"\n"
+" -a / --advertised\n"
+" List only those mailing lists that are publically advertised\n"
+"\n"
+" --virtual-host-overview=domain\n"
+" -V domain\n"
+" List only those mailing lists that are homed to the given virtual\n"
+" domain. This only works if the VIRTUAL_HOST_OVERVIEW variable is\n"
+" set.\n"
+"\n"
+" -b / --bare\n"
+" Displays only the list name, with no description.\n"
+"\n"
+" -h / --help\n"
+" Print this text and exit.\n"
+"\n"
+msgstr ""
+"Listar namn på alla e-postlistor.\n"
+"\n"
+"Används så: %(program)s [val]\n"
+"\n"
+"Val:\n"
+" --advertised\n"
+" -a\n"
+" Visar bara de e-postlistor som är tillgängliga offentligt.\n"
+"\n"
+" --virtual-host-overview=domän\n"
+" -V domän\n"
+" Visar bara e-postlistor på den angivna domänen. Detta val kan bara\n"
+" användas om VIRTUAL_HOST_OVERVIEW variabeln är satt.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Visar denna hjälptext.\n"
+"\n"
+
+# bin/list_lists:97
+# bin/list_lists:101
+#: bin/list_lists:105
+msgid "No matching mailing lists found"
+msgstr "Hittade ingen träff på denna e-postlista"
+
+# bin/list_lists:100
+# bin/list_lists:104
+#: bin/list_lists:109
+msgid "matching mailing lists found:"
+msgstr "träff på denna e-postlista:"
+
+# bin/list_members:19
+# bin/list_members:19
+#: bin/list_members:19
+#, fuzzy
+msgid ""
+"List all the members of a mailing list.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] listname\n"
+"\n"
+"Where:\n"
+"\n"
+" --output file\n"
+" -o file\n"
+" Write output to specified file instead of standard out.\n"
+"\n"
+" --regular / -r\n"
+" Print just the regular (non-digest) members.\n"
+"\n"
+" --digest[=kind] / -d [kind]\n"
+" Print just the digest members. Optional argument can be \"mime\" "
+"or\n"
+" \"plain\" which prints just the digest members receiving that kind "
+"of\n"
+" digest.\n"
+"\n"
+" --nomail[=why] / -n [why]\n"
+" Print the members that have delivery disabled. Optional argument "
+"can\n"
+" be \"byadmin\", \"byuser\", \"bybounce\", or \"unknown\" which "
+"prints just the\n"
+" users who have delivery disabled for that reason. It can also be\n"
+" \"enabled\" which prints just those member for whom delivery is\n"
+" enabled.\n"
+"\n"
+" --fullnames / -f\n"
+" Include the full names in the output.\n"
+"\n"
+" --preserve\n"
+" -p\n"
+" Output member addresses case preserved the way they were added to "
+"the\n"
+" list. Otherwise, addresses are printed in all lowercase.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname is the name of the mailing list to use.\n"
+"\n"
+"Note that if neither -r or -d is supplied, both regular members are printed\n"
+"first, followed by digest members, but no indication is given as to address\n"
+"status.\n"
+msgstr ""
+"Listar alla medlemmar av en e-postlista.\n"
+"\n"
+"Används så här: %(PROGRAM)s [-o file] [-r] [-d] [-p] [-h] listnamn\n"
+"\n"
+"Där:\n"
+"\n"
+" --output filnamn\n"
+" -o filnamn\n"
+" Skriver till en fil istället för standard output.\n"
+"\n"
+" --regular / -r\n"
+" Visar bara medlemmar som använder normalversion.\n"
+"\n"
+" --digest[=typ] / -d [typ]\n"
+" Visar bara medlemmar som använder sammandragsversion.\n"
+" Den valfria parametern kan antingen vara \"mime\" eller \"plain\",\n"
+" som leder till att bara medlemmar med den angivna typen "
+"samlingsepost\n"
+" kommer att visas.\n"
+"\n"
+" --nomail[=varför] / -n [varför]\n"
+" Visar alla medlemmar som har stoppat mottagning av e-postbrev.\n"
+" Den valfria parametern anger orsak till att mottagningen stoppats, "
+"och\n"
+" kan vara \"byadmin\", \"byuser\", \"bybounce\", eller \"unknown\".\n"
+" Den kan också vara \"enabled\", då alla medlemmar som INTE har\n"
+" stoppat mottagningen av e-postbrev kommer att visas.\n"
+"\n"
+" --preserve\n"
+" -p\n"
+" Visar medlemmarnas e-postadress såsom de blev anmälda till listan.\n"
+" Används inte detta val, visas alla e-postadresser med små\n"
+" bokstäver.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Visar denna hjälptext.\n"
+"\n"
+" listnamn är namnet på e-postlistan.\n"
+"\n"
+"Observera att om varken -r eller -d används, kommer medlemmar i "
+"normalversion\n"
+"att visas först, därefter medlemmar i sammandragsversion, men ingen status "
+"visas.\n"
+"\n"
+
+# bin/list_members:138
+# bin/list_members:150
+#: bin/list_members:150
+msgid "Bad --nomail option: %(why)s"
+msgstr "Ogiltig --nomail parameter: %(why)s"
+
+# bin/list_members:149
+# bin/list_members:161
+#: bin/list_members:161
+msgid "Bad --digest option: %(kind)s"
+msgstr "Ogiltig --digest parameter: %(kind)s"
+
+# bin/list_members:167
+# bin/list_members:179
+#: bin/list_members:179
+msgid "Could not open file for writing:"
+msgstr "Kan inte öppna filen för att skriva:"
+
+#: bin/list_owners:19
+msgid ""
+"List the owners of a mailing list, or all mailing lists.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname ...]\n"
+"Options:\n"
+"\n"
+" -w / --with-listnames\n"
+" Group the owners by list names and include the list names in the\n"
+" output. Otherwise, the owners will be sorted and uniquified based "
+"on\n"
+" the email address.\n"
+"\n"
+" -m / --moderators\n"
+" Include the list moderators in the output.\n"
+"\n"
+" -h / --help\n"
+" Print this help message and exit.\n"
+"\n"
+" listname\n"
+" Print the owners of the specified lists. More than one can appear\n"
+" after the options. If there are no listnames provided, the owners "
+"of\n"
+" all the lists will be displayed.\n"
+msgstr ""
+
+# bin/mailmanctl:19
+# bin/mailmanctl:19
+#: bin/mailmanctl:19
+#, fuzzy
+msgid ""
+"Primary start-up and shutdown script for Mailman's qrunner daemon.\n"
+"\n"
+"This script starts, stops, and restarts the main Mailman queue runners, "
+"making\n"
+"sure that the various long-running qrunners are still alive and kicking. "
+"It\n"
+"does this by forking and exec'ing the qrunners and waiting on their pids.\n"
+"When it detects a subprocess has exited, it may restart it.\n"
+"\n"
+"The qrunners respond to SIGINT, SIGTERM, and SIGHUP. SIGINT and SIGTERM "
+"both\n"
+"cause the qrunners to exit cleanly, but the master will only restart "
+"qrunners\n"
+"that have exited due to a SIGINT. SIGHUP causes the master and the "
+"qrunners\n"
+"to close their log files, and reopen then upon the next printed message.\n"
+"\n"
+"The master also responds to SIGINT, SIGTERM, and SIGHUP, which it simply\n"
+"passes on to the qrunners (note that the master will close and reopen its "
+"own\n"
+"log files on receipt of a SIGHUP). The master also leaves its own process "
+"id\n"
+"in the file data/master-qrunner.pid but you normally don't need to use this\n"
+"pid directly. The `start', `stop', `restart', and `reopen' commands handle\n"
+"everything for you.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [ start | stop | restart | reopen ]\n"
+"\n"
+"Options:\n"
+"\n"
+" -n/--no-restart\n"
+" Don't restart the qrunners when they exit because of an error or a\n"
+" SIGINT. They are never restarted if they exit in response to a\n"
+" SIGTERM. Use this only for debugging. Only useful if the `start'\n"
+" command is given.\n"
+"\n"
+" -u/--run-as-user\n"
+" Normally, this script will refuse to run if the user id and group "
+"id\n"
+" are not set to the `mailman' user and group (as defined when you\n"
+" configured Mailman). If run as root, this script will change to "
+"this\n"
+" user and group before the check is made.\n"
+"\n"
+" This can be inconvenient for testing and debugging purposes, so the -"
+"u\n"
+" flag means that the step that sets and checks the uid/gid is "
+"skipped,\n"
+" and the program is run as the current user and group. This flag is\n"
+" not recommended for normal production environments.\n"
+"\n"
+" Note though, that if you run with -u and are not in the mailman "
+"group,\n"
+" you may have permission problems, such as begin unable to delete a\n"
+" list's archives through the web. Tough luck!\n"
+"\n"
+" -s/--stale-lock-cleanup\n"
+" If mailmanctl finds an existing master lock, it will normally exit\n"
+" with an error message. With this option, mailmanctl will perform "
+"an\n"
+" extra level of checking. If a process matching the host/pid "
+"described\n"
+" in the lock file is running, mailmanctl will still exit, but if no\n"
+" matching process is found, mailmanctl will remove the apparently "
+"stale\n"
+" lock and make another attempt to claim the master lock.\n"
+"\n"
+" -q/--quiet\n"
+" Don't print status messages. Error messages are still printed to\n"
+" standard error.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+"\n"
+"Commands:\n"
+"\n"
+" start - Start the master daemon and all qrunners. Prints a message "
+"and\n"
+" exits if the master daemon is already running.\n"
+"\n"
+" stop - Stops the master daemon and all qrunners. After stopping, no\n"
+" more messages will be processed.\n"
+"\n"
+" restart - Restarts the qrunners, but not the master process. Use this\n"
+" whenever you upgrade or update Mailman so that the qrunners "
+"will\n"
+" use the newly installed code.\n"
+"\n"
+" reopen - This will close all log files, causing them to be re-opened "
+"the\n"
+" next time a message is written to them\n"
+msgstr ""
+"Primärt start- och stoppskript för Mailmans qrunner daemon.\n"
+"\n"
+"Detta skript startar, stoppar, och omstartar Mailmans qrunner, och "
+"ombesörjer\n"
+"enkelt och smidigt att de olika qrunner-processerna fungerar och kör på\n"
+"systemet, genom att starta de nödvändiga processerna, och väntapå deras "
+"pid'er.\n"
+"När det upptäcks att en process har avslutats, kan det starta processen på\n"
+"nytt. Detta skript kan användas som ett initskript.\n"
+"\n"
+"Qrunnerna reagerar på SIGINT, SIGTERM, och SIGHUP. SIGINT och SIGTERM\n"
+"leder till att de avslutar på ett normalt sätt, men master-qrunnern "
+"omstartar\n"
+"bara qrunners som har avslutats genom att ha fått en SIGINT. SIGHUP leder "
+"till\n"
+"att processerna stänger sina loggfiler, och öppnar dem på nytt när något "
+"åter ska\n"
+"loggas.\n"
+"\n"
+"Master-qrunnern reagerar också på SIGINT, SIGTERM, och SIGHUP, som den "
+"enkelt\n"
+"och smidigt sänder vidare till sina qrunners (observera att master-qrunnern "
+"kommer\n"
+"att stänga och öppna sina loggfiler om den får en SIGHUP).\n"
+"Masterqrunnern lägger också sin pid i filen data/master-qrunner.pid, men\n"
+"denna pid behöver man vanligtvis inte.\n"
+"Med 'start', 'stop', 'restart', och 'open' kommandona kan man göra det\n"
+"man har användning för.\n"
+"\n"
+"Används så här: %(PROGRAM)s [val] [ start | stop | restart | reopen ]\n"
+"\n"
+"Val:\n"
+"\n"
+" -n / --no-restart\n"
+" Starta inte qrunners på nytt när de avslutar på grund av fel eller\n"
+" SIGINT (de startas aldrig på nytt när de avslutas på grund av en\n"
+" SIGTERM). Används bara vid debugging av systemet, och har bara\n"
+" verkan när 'start' kommandot anges.\n"
+"\n"
+" -u / --run-as-user\n"
+" Vanligtvis kommer detta skript att neka till att köra om brukar-id "
+"och\n"
+" grupp-id inte är satt till brukare och grupp 'mailman' (eller\n"
+" som definierat vid konfiguration av Mailman). Om skriptet\n"
+" körs som root, kommer skriptet att byta till denna brukare och "
+"grupp\n"
+" innan den kontrollerar brukare och grupp.\n"
+" Detta kan vara praktiskt vid testning och debugging, gör därför "
+"detta\n"
+" -u val så att denna kontroll hoppas över, och programmet körs\n"
+" med den brukare och grupp som kör skriptet.\n"
+" Detta val används normalt inte i vanliga system som är i\n"
+" produktion.\n"
+"\n"
+" -s / --stale-lock-cleanup\n"
+" Om mailmanctl hittar en existerande masterqrunner låsfil,\n"
+" avslutar den vanligtvis med ett felmeddelande. Med detta val, "
+"kommer\n"
+" mailmanctl att utföra några extra kontroller. Om en process som kör\n"
+" passar med den host/pid som står i låsfilen, kommer mailmanctl att "
+"avsluta,\n"
+" men om ingen process som passar kör, kommer mailmanctl att ta bort\n"
+" låsfilen och fortsätta att köra.\n"
+"\n"
+" -q / --quiet\n"
+" Visa inte statusmeddelanden. Felmeddelanden kommer ändå att visas på "
+"standard\n"
+" error.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Visar denna hjälptext.\n"
+"\n"
+"Kommandon:\n"
+"\n"
+" start - Startar masterdaemon och alla qrunners. Visar ett meddelande\n"
+" och avbryter om master daemon redan kör.\n"
+" stop - Stoppar master daemon och qrunners. Efter att dessa har\n"
+" stoppat, kommer inga meddelanden att behandlas.\n"
+" restart - Startar qrunnern på nytt, men inte masterprocessen.\n"
+" Använd denna då Mailman uppdateras eller uppgraderas, så att\n"
+" den eventuellt uppgraderade programkoden tas i bruk.\n"
+" reopen - Detta leder till att alla loggfiler stängs och därefter öppnas "
+"på\n"
+" nytt nästa gång något ska skrivas till dem.\n"
+
+# bin/mailmanctl:140
+# bin/mailmanctl:145
+#: bin/mailmanctl:149
+msgid "PID unreadable in: %(pidfile)s"
+msgstr "Oläslig PID i: %(pidfile)s"
+
+# bin/mailmanctl:147
+#: bin/mailmanctl:151
+msgid "Is qrunner even running?"
+msgstr "Kör qrunnern?"
+
+# bin/mailmanctl:148
+# bin/mailmanctl:153
+#: bin/mailmanctl:157
+msgid "No child with pid: %(pid)s"
+msgstr "Ingen child med pid: %(pid)s"
+
+# bin/mailmanctl:155
+#: bin/mailmanctl:159
+msgid "Stale pid file removed."
+msgstr "Gammal pid-fil borttagen"
+
+# bin/mailmanctl:208
+# bin/mailmanctl:213
+#: bin/mailmanctl:217
+msgid ""
+"The master qrunner lock could not be acquired because it appears as if "
+"another\n"
+"master qrunner is already running.\n"
+msgstr ""
+"Kunde inte upprätta låsfil för master qrunnern eftersom det ser ut som\n"
+"om en annan qrunner redan kör.\n"
+
+# bin/mailmanctl:214
+# bin/mailmanctl:219
+#: bin/mailmanctl:223
+msgid ""
+"The master qrunner lock could not be acquired. It appears as though there "
+"is\n"
+"a stale master qrunner lock. Try re-running mailmanctl with the -s flag.\n"
+msgstr ""
+"Kunde inte upprätta låsfil för master qrunnern. Det ser ut som om det\n"
+"existerar en gammal låsfil. Kör mailmanctl med \"-s\" valet.\n"
+
+# bin/mailmanctl:220
+# bin/mailmanctl:225
+#: bin/mailmanctl:229
+msgid ""
+"The master qrunner lock could not be acquired, because it appears as if "
+"some\n"
+"process on some other host may have acquired it. We can't test for stale\n"
+"locks across host boundaries, so you'll have to do this manually. Or, if "
+"you\n"
+"know the lock is stale, re-run mailmanctl with the -s flag.\n"
+"\n"
+"Lock file: %(LOCKFILE)s\n"
+"Lock host: %(status)s\n"
+"\n"
+"Exiting."
+msgstr ""
+"Kunde inte upprätta låsfil för master qrunnern, eftersom det ser ut som en\n"
+"redan existerande låsfil har öppnats av en process på en annan maskin.\n"
+"Det är inte möjligt för detta program att ta reda på om denna låsfilen är "
+"gammal\n"
+"eller inte, så du måste undersöka detta manuellt. Om du vet att inga andra\n"
+"processer använder låsfilen, kan du köra mailmanctl med \"-s\" valet.\n"
+"\n"
+"Låsfil: %(LOCKFILE)s\n"
+"Maskin: %(status)s\n"
+"\n"
+"Avbryter."
+
+# bin/mailmanctl:269
+# bin/mailmanctl:278
+#: bin/mailmanctl:282
+msgid "Run this program as root or as the %(name)s user, or use -u."
+msgstr "Kör detta program som root eller som %(name)s, eller använd -u."
+
+# bin/mailmanctl:300
+# bin/mailmanctl:309
+#: bin/mailmanctl:313
+msgid "No command given."
+msgstr "Inget kommando angett."
+
+# bin/mailmanctl:303
+# bin/mailmanctl:312
+#: bin/mailmanctl:316
+msgid "Bad command: %(command)s"
+msgstr "Ogiltigt kommando: %(command)s"
+
+#: bin/mailmanctl:321
+msgid "Warning! You may encounter permission problems."
+msgstr ""
+
+# bin/mailmanctl:315
+# bin/mailmanctl:324
+#: bin/mailmanctl:330
+msgid "Shutting down Mailman's master qrunner"
+msgstr "Stoppar Mailmans master qrunner."
+
+# bin/mailmanctl:322
+# bin/mailmanctl:331
+#: bin/mailmanctl:337
+msgid "Restarting Mailman's master qrunner"
+msgstr "Startar Mailmans master qrunner på nytt."
+
+# bin/mailmanctl:326
+# bin/mailmanctl:335
+#: bin/mailmanctl:341
+msgid "Re-opening all log files"
+msgstr "öppnar alla loggfiler på nytt"
+
+# bin/mailmanctl:360
+# bin/mailmanctl:369
+#: bin/mailmanctl:375
+msgid "Starting Mailman's master qrunner."
+msgstr "Startar Mailmans master qrunner."
+
+# bin/mmsitepass:19
+# bin/mmsitepass:19
+#: bin/mmsitepass:19
+msgid ""
+"Set the site password, prompting from the terminal.\n"
+"\n"
+"The site password can be used in most if not all places that the list\n"
+"administrator's password can be used, which in turn can be used in most "
+"places\n"
+"that a list users password can be used.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [password]\n"
+"\n"
+"Options:\n"
+"\n"
+" -c/--listcreator\n"
+" Set the list creator password instead of the site password. The "
+"list\n"
+" creator is authorized to create and remove lists, but does not have\n"
+" the total power of the site administrator.\n"
+"\n"
+" -h/--help\n"
+" Print this help message and exit.\n"
+"\n"
+"If password is not given on the command line, it will be prompted for.\n"
+msgstr ""
+"Sätter det globala Mailman lösenordet, från terminalen.\n"
+"\n"
+"Det globala Mailman lösenordet kan användas på de flesta, om inte alla, "
+"ställen\n"
+"där listans administratörslösenord kan användas, liksom det kan användas\n"
+"på de flesta ställen där ett medlemslösenord används.\n"
+"\n"
+"Används så här: %(PROGRAM)s [val] [lösenord]\n"
+"\n"
+" -c / --listcreator\n"
+" Sätter lösenordet som måste användas för att upprätta listor, "
+"istället för att\n"
+" sätta det globala lösenordet. Detta lösenord kan användas för att\n"
+" upprätta eller ta bort listor, men kan inte användas på samma sätt "
+"som\n"
+" det globala lösenordet.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Visar denna hjälptext.\n"
+"\n"
+"Om inte lösenordet ges på kommandoraden, kommer programmet att be om "
+"lösenordet istället.\n"
+
+# bin/mmsitepass:69
+# bin/mmsitepass:73
+#: bin/mmsitepass:73
+msgid "site"
+msgstr "system"
+
+# bin/mmsitepass:76
+# bin/mmsitepass:80
+#: bin/mmsitepass:80
+msgid "list creator"
+msgstr "person som upprättade listan"
+
+# bin/mmsitepass:82
+# bin/mmsitepass:86
+#: bin/mmsitepass:86
+msgid "New %(pwdesc)s password: "
+msgstr "Nytt %(pwdesc)s lösenord: "
+
+# bin/mmsitepass:83
+# bin/mmsitepass:87
+#: bin/mmsitepass:87
+msgid "Again to confirm password: "
+msgstr "Skriv lösenordet en gång till: "
+
+# bin/mmsitepass:85
+# bin/mmsitepass:89
+#: bin/mmsitepass:89
+msgid "Passwords do not match; no changes made."
+msgstr "Lösenorden är inte lika; ingen ändring gjord."
+
+# bin/mmsitepass:88
+# bin/mmsitepass:92
+#: bin/mmsitepass:92
+msgid "Interrupted..."
+msgstr "Avbrutet..."
+
+# bin/mmsitepass:94
+# bin/mmsitepass:98
+#: bin/mmsitepass:98
+msgid "Password changed."
+msgstr "Lösenordet är ändrat."
+
+# bin/mmsitepass:96
+# bin/mmsitepass:100
+#: bin/mmsitepass:100
+msgid "Password change failed."
+msgstr "Fel under ändring av lösenord."
+
+# bin/newlist:19
+# bin/newlist:19
+#: bin/newlist:19
+#, fuzzy
+msgid ""
+"Create a new, unpopulated mailing list.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname [listadmin-addr [admin-password]]]\n"
+"\n"
+"Options:\n"
+"\n"
+" -l language\n"
+" --language language\n"
+" Make the list's preferred language `language', which must be a two\n"
+" letter language code.\n"
+"\n"
+" -q/--quiet\n"
+" Normally the administrator is notified by email (after a prompt) "
+"that\n"
+" their list has been created. This option suppresses the prompt and\n"
+" notification.\n"
+"\n"
+" -h/--help\n"
+" Print this help text and exit.\n"
+"\n"
+"You can specify as many of the arguments as you want on the command line:\n"
+"you will be prompted for the missing ones.\n"
+"\n"
+"Every Mailman list has two parameters which define the default host name "
+"for\n"
+"outgoing email, and the default URL for all web interfaces. When you\n"
+"configured Mailman, certain defaults were calculated, but if you are "
+"running\n"
+"multiple virtual Mailman sites, then the defaults may not be appropriate "
+"for\n"
+"the list you are creating.\n"
+"\n"
+"You can specify the domain to create your new list in by spelling the "
+"listname\n"
+"like so:\n"
+"\n"
+" mylist@www.mydom.ain\n"
+"\n"
+"where `www.mydom.ain' should be the base hostname for the URL to this "
+"virtual\n"
+"hosts's lists. E.g. with is setting people will view the general list\n"
+"overviews at http://www.mydom.ain/mailman/listinfo. Also, www.mydom.ain\n"
+"should be a key in the VIRTUAL_HOSTS mapping in mm_cfg.py/Defaults.py. It\n"
+"will be looked up to give the email hostname. If this can't be found, then\n"
+"www.mydom.ain will be used for both the web interface and the email\n"
+"interface.\n"
+"\n"
+"If you spell the list name as just `mylist', then the email hostname will "
+"be\n"
+"taken from DEFAULT_EMAIL_HOST and the url will be taken from DEFAULT_URL "
+"(as\n"
+"defined in your Defaults.py file or overridden by settings in mm_cfg.py).\n"
+"\n"
+"Note that listnames are forced to lowercase.\n"
+msgstr ""
+"Upprätta en ny e-postlista utan medlemmar.\n"
+"\n"
+"Används så här: %(PROGRAM)s [val] [listnamn [admin-adr [admin-lösenord]]]\n"
+"\n"
+"Val:\n"
+"\n"
+" -l språk\n"
+" --language språk\n"
+" Sätter standardspråket för listan med parametern 'språk', som måste\n"
+" vara en landskod på två bokstäver. Se i templates eller messages\n"
+" katalogen för tillgängliga landskoder.\n"
+"\n"
+" -q / --quiet\n"
+" Normalt kommer adminstratören att få meddelande via e-post (efter "
+"input från\n"
+" den som kör detta kommando) om att listan är upprättad.\n"
+" Detta val gör att administratören inte får ta emot något sådant "
+"meddelande.\n"
+"\n"
+" -h / --help\n"
+" Visar denna hjälptext.\n"
+"\n"
+"Du kan uppge så många parametrar du vill på kommandoraden; de som du inte "
+"uppger\n"
+"kommer du att bli ombedd att lämna.\n"
+"\n"
+"Varje Mailmanlista har två parametrar som bestämmer standard host namn för\n"
+"utgående e-postbrev, och standard URL för alla tillhörande webbsidor. När "
+"Mailman\n"
+"konfigurerades, blev dessa standardparametrar automatiskt beräknade, men\n"
+"om du kör flera virtuella Mailmansystem på samma maskin, kan det\n"
+"hända att standardinställningarna inte passar med den e-postlista du "
+"upprättar.\n"
+"\n"
+"Du kan uppge domänen för den nya listan genom att ange listnamnet så:\n"
+"\n"
+" minlista@www.mindomän.com\n"
+"\n"
+"där 'www.mindomän.com' är namnet som ska användas i URL:en för e-"
+"postlistan.\n"
+"I exemplet ovan kommer URL:en till översikt över listor att bli:\n"
+"http://www.mindomän.com/mailman/listinfo. Namnet som specifiseras måste "
+"också\n"
+"existera i en VIRTUAL_HOSTS mapping i mm_cfg.py/Default.py. Den mappingen\n"
+"ska berätta vilken domän som ska användas för e-postadresser till\n"
+"listan. Om mappingen inte existerar, kommer namnet du specifiserar\n"
+"att användas både för URL:er och för e-postadresser.\n"
+"\n"
+"Om du stavar listnamnet bara som 'minlista', kommer \"host_name\" att sättas "
+"till\n"
+"DEFAULT_HOST_NAME (från Mailmankonfigurationen) och \"web_page_url\" sätts "
+"till\n"
+"DEFAULT_URL.\n"
+"\n"
+"Observera att listnamn kommer att göras om till små bokstäver.\n"
+
+# bin/newlist:114
+# bin/newlist:118
+#: bin/newlist:118
+msgid "Unknown language: %(lang)s"
+msgstr "Okänt språk: %(lang)s"
+
+# bin/newlist:119
+# bin/newlist:123
+#: bin/newlist:123
+msgid "Enter the name of the list: "
+msgstr "Uppge e-postlistans namn:"
+
+# bin/newlist:136
+# bin/newlist:140
+#: bin/newlist:140
+msgid "Enter the email of the person running the list: "
+msgstr "Uppge e-postadressen till den person som ansvarar för listan:"
+
+# bin/newlist:141
+# bin/newlist:145
+#: bin/newlist:145
+msgid "Initial %(listname)s password: "
+msgstr "Det första lösenordet för \"%(listname)s\" är: "
+
+# bin/newlist:145
+# bin/newlist:149
+#: bin/newlist:149
+msgid "The list password cannot be empty"
+msgstr "Listan måste ha ett lösenord (listans lösenord kan inte vara blankt)"
+
+# bin/newlist:184
+# bin/newlist:190
+#: bin/newlist:190
+msgid "Hit enter to notify %(listname)s owner..."
+msgstr ""
+"Tryck [Enter] för att skicka meddelande till ägaren av listan %(listname)"
+"s..."
+
+# bin/qrunner:19
+# bin/qrunner:19
+#: bin/qrunner:19
+msgid ""
+"Run one or more qrunners, once or repeatedly.\n"
+"\n"
+"Each named runner class is run in round-robin fashion. In other words, the\n"
+"first named runner is run to consume all the files currently in its\n"
+"directory. When that qrunner is done, the next one is run to consume all "
+"the\n"
+"files in /its/ directory, and so on. The number of total iterations can be\n"
+"given on the command line.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+"\n"
+" -r runner[:slice:range]\n"
+" --runner=runner[:slice:range]\n"
+" Run the named qrunner, which must be one of the strings returned by\n"
+" the -l option. Optional slice:range if given, is used to assign\n"
+" multiple qrunner processes to a queue. range is the total number "
+"of\n"
+" qrunners for this queue while slice is the number of this qrunner "
+"from\n"
+" [0..range).\n"
+"\n"
+" If using the slice:range form, you better make sure that each "
+"qrunner\n"
+" for the queue is given the same range value. If slice:runner is "
+"not\n"
+" given, then 1:1 is used.\n"
+"\n"
+" Multiple -r options may be given, in which case each qrunner will "
+"run\n"
+" once in round-robin fashion. The special runner `All' is shorthand\n"
+" for a qrunner for each listed by the -l option.\n"
+"\n"
+" --once\n"
+" -o\n"
+" Run each named qrunner exactly once through its main loop. "
+"Otherwise,\n"
+" each qrunner runs indefinitely, until the process receives a "
+"SIGTERM\n"
+" or SIGINT.\n"
+"\n"
+" -l/--list\n"
+" Shows the available qrunner names and exit.\n"
+"\n"
+" -v/--verbose\n"
+" Spit out more debugging information to the logs/qrunner log file.\n"
+"\n"
+" -s/--subproc\n"
+" This should only be used when running qrunner as a subprocess of "
+"the\n"
+" mailmanctl startup script. It changes some of the exit-on-error\n"
+" behavior to work better with that framework.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+"\n"
+"runner is required unless -l or -h is given, and it must be one of the "
+"names\n"
+"displayed by the -l switch.\n"
+msgstr ""
+
+# bin/qrunner:172
+# bin/qrunner:176
+#: bin/qrunner:176
+msgid "%(name)s runs the %(runnername)s qrunner"
+msgstr "%(name)s startar %(runnername)s qrunnern"
+
+# bin/qrunner:173
+# bin/qrunner:177
+#: bin/qrunner:177
+msgid "All runs all the above qrunners"
+msgstr "\"All\" kör alla qrunners ovan"
+
+# bin/qrunner:209
+# bin/qrunner:213
+#: bin/qrunner:213
+msgid "No runner name given."
+msgstr "Inget runnernamn blev angett."
+
+# bin/remove_members:19
+# bin/remove_members:19
+#: bin/remove_members:19
+#, fuzzy
+msgid ""
+"Remove members from a list.\n"
+"\n"
+"Usage:\n"
+" remove_members [options] [listname] [addr1 ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" --file=file\n"
+" -f file\n"
+" Remove member addresses found in the given file. If file is\n"
+" `-', read stdin.\n"
+"\n"
+" --all\n"
+" -a\n"
+" Remove all members of the mailing list.\n"
+" (mutually exclusive with --fromall)\n"
+"\n"
+" --fromall\n"
+" Removes the given addresses from all the lists on this system\n"
+" regardless of virtual domains if you have any. This option cannot "
+"be\n"
+" used -a/--all. Also, you should not specify a listname when using "
+"this\n"
+" option.\n"
+"\n"
+" --nouserack\n"
+" -n\n"
+" Don't send the user acknowledgements.\n"
+"\n"
+" --noadminack\n"
+" -N\n"
+" Don't send the admin acknowledgements.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+" listname is the name of the mailing list to use.\n"
+"\n"
+" addr1 ... are additional addresses to remove.\n"
+"\n"
+msgstr ""
+"Tar bort medlemmar från en lista.\n"
+"\n"
+"Används så här: remove_members [val] [listnamn] [addr1 ...]\n"
+"\n"
+"Val:\n"
+"\n"
+" --file=filnamn\n"
+" -f filnamn\n"
+" Ta bort alla medlemmar som har e-postadresserna i den angivna "
+"filen.\n"
+" Om filnamnet är '-', läses e-postadresserna från standard input.\n"
+"\n"
+" --all\n"
+" -a\n"
+" Tar bort alla medlemmar på e-postlistan.\n"
+" (Kan inte användas med --fromall)\n"
+"\n"
+" --fromall\n"
+" Tar bort de angivna e-postadresserna från alla e-postlistor, "
+"oavsett\n"
+" domän om det finns flera domäner. Detta val kan inte användas "
+"tillsammans\n"
+" med -a/--all. Du bör inte ange något listnamn om du\n"
+" använder detta val.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Visar denna hjälptext.\n"
+"\n"
+" listnamn är namnet på listan som det ska tas bort från.\n"
+"\n"
+" addr1 ... är ytterligare adresser som ska tas bort.\n"
+"\n"
+
+# bin/remove_members:128
+# bin/remove_members:132
+#: bin/remove_members:147
+msgid "Could not open file for reading: %(filename)s."
+msgstr "Kunde inte öppna filen \"%(filename)s\" för att läsa."
+
+# bin/remove_members:135
+# bin/remove_members:139
+#: bin/remove_members:154
+msgid "Error opening list %(listname)s... skipping."
+msgstr "Hoppar över listan \"%(listname)s\" p g a fel under öppnandet."
+
+# bin/remove_members:145
+# bin/remove_members:149
+#: bin/remove_members:164
+msgid "No such member: %(addr)s"
+msgstr "Medlemmen finns inte: %(addr)s."
+
+# bin/remove_members:149
+# bin/remove_members:153
+#: bin/remove_members:171
+msgid "User `%(addr)s' removed from list: %(listname)s."
+msgstr "%(addr)s är nu borttagen från listan %(listname)s."
+
+# bin/rmlist:19
+# bin/rmlist:19
+#: bin/rmlist:19
+msgid ""
+"Remove the components of a mailing list with impunity - beware!\n"
+"\n"
+"This removes (almost) all traces of a mailing list. By default, the lists\n"
+"archives are not removed, which is very handy for retiring old lists.\n"
+"\n"
+"Usage:\n"
+" rmlist [-a] [-h] listname\n"
+"\n"
+"Where:\n"
+" --archives\n"
+" -a\n"
+" Remove the list's archives too, or if the list has already been\n"
+" deleted, remove any residual archives.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this help message and exit.\n"
+"\n"
+msgstr ""
+"Tar bort alla komponenter av en e-postlista från systemet!\n"
+"\n"
+"Detta kommando tar bort (nästan) alla spår av en e-postlista. Utan -a valet\n"
+"tas inte listans arkiv bort, vilket kan vara nyttigt att ha för att "
+"avveckla\n"
+"gamla listor.\n"
+"\n"
+"Används så här: rmlist [-a] [-h] listnamn\n"
+"\n"
+"Där:\n"
+" --archives\n"
+" -a\n"
+" Ta bort (radera) även listans arkiv, eller om listan redan är\n"
+" raderad, ta bort arkiven som eventuellt ligger kvar.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Visar denna hjälptext.\n"
+"\n"
+
+# bin/rmlist:61 bin/rmlist:64
+# bin/rmlist:65 bin/rmlist:68
+#: bin/rmlist:66 bin/rmlist:69
+msgid "Removing %(msg)s"
+msgstr "Tar bort %(msg)s"
+
+# bin/rmlist:67
+# bin/rmlist:71
+#: bin/rmlist:72
+msgid "%(listname)s %(msg)s not found as %(dir)s"
+msgstr "Hittade inte %(listname)s %(msg)s som %(dir)s"
+
+# bin/rmlist:91
+# bin/rmlist:95
+#: bin/rmlist:96
+msgid "No such list (or list already deleted): %(listname)s"
+msgstr "Listan finns inte (eller är redan raderad): %(listname)s"
+
+# bin/rmlist:93
+# bin/rmlist:97
+#: bin/rmlist:98
+msgid "No such list: %(listname)s. Removing its residual archives."
+msgstr "Listan finns inte: %(listname)s. Tar bort arkivet som ligger kvar."
+
+# bin/rmlist:97
+# bin/rmlist:101
+#: bin/rmlist:102
+msgid "Not removing archives. Reinvoke with -a to remove them."
+msgstr ""
+"Tar inte bort arkiv. Kör kommandot på nytt med parametern \"-a\" för\n"
+"att ta bort arkiv."
+
+# bin/rmlist:111
+# bin/rmlist:115
+#: bin/rmlist:116
+msgid "list info"
+msgstr "listinformation"
+
+# bin/rmlist:117 bin/rmlist:119
+# bin/rmlist:121 bin/rmlist:123
+#: bin/rmlist:122 bin/rmlist:124
+msgid "private archives"
+msgstr "privat arkiv"
+
+# bin/rmlist:121 bin/rmlist:123
+# bin/rmlist:125 bin/rmlist:127
+#: bin/rmlist:126 bin/rmlist:128
+msgid "public archives"
+msgstr "offentligt arkiv"
+
+# bin/sync_members:19
+# bin/sync_members:19
+#: bin/sync_members:19
+#, fuzzy
+msgid ""
+"Synchronize a mailing list's membership with a flat file.\n"
+"\n"
+"This script is useful if you have a Mailman mailing list and a sendmail\n"
+":include: style list of addresses (also as is used in Majordomo). For "
+"every\n"
+"address in the file that does not appear in the mailing list, the address "
+"is\n"
+"added. For every address in the mailing list that does not appear in the\n"
+"file, the address is removed. Other options control what happens when an\n"
+"address is added or removed.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] -f file listname\n"
+"\n"
+"Where `options' are:\n"
+"\n"
+" --no-change\n"
+" -n\n"
+" Don't actually make the changes. Instead, print out what would be\n"
+" done to the list.\n"
+"\n"
+" --welcome-msg[=<yes|no>]\n"
+" -w[=<yes|no>]\n"
+" Sets whether or not to send the newly added members a welcome\n"
+" message, overriding whatever the list's `send_welcome_msg' setting\n"
+" is. With -w=yes or -w, the welcome message is sent. With -w=no, "
+"no\n"
+" message is sent.\n"
+"\n"
+" --goodbye-msg[=<yes|no>]\n"
+" -g[=<yes|no>]\n"
+" Sets whether or not to send the goodbye message to removed members,\n"
+" overriding whatever the list's `send_goodbye_msg' setting is. With\n"
+" -g=yes or -g, the goodbye message is sent. With -g=no, no message "
+"is\n"
+" sent.\n"
+"\n"
+" --digest[=<yes|no>]\n"
+" -d[=<yes|no>]\n"
+" Selects whether to make newly added members receive messages in\n"
+" digests. With -d=yes or -d, they become digest members. With -"
+"d=no\n"
+" (or if no -d option given) they are added as regular members.\n"
+"\n"
+" --notifyadmin[=<yes|no>]\n"
+" -a[=<yes|no>]\n"
+" Specifies whether the admin should be notified for each "
+"subscription\n"
+" or unsubscription. If you're adding a lot of addresses, you\n"
+" definitely want to turn this off! With -a=yes or -a, the admin is\n"
+" notified. With -a=no, the admin is not notified. With no -a "
+"option,\n"
+" the default for the list is used.\n"
+"\n"
+" --file <filename | ->\n"
+" -f <filename | ->\n"
+" This option is required. It specifies the flat file to synchronize\n"
+" against. Email addresses must appear one per line. If filename is\n"
+" `-' then stdin is used.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this message.\n"
+"\n"
+" listname\n"
+" Required. This specifies the list to synchronize.\n"
+msgstr ""
+"Synkroniserar en e-postlistas medlemmar med en fil.\n"
+"\n"
+"Detta skript är användbart om du har en Mailman e-postlista och en sendmail\n"
+":include: typ lista över adresser (som även används i Majordomo). Varje\n"
+"e-postadress i filen som inte är medlem av e-postlistan, kommer att bli "
+"anmäld\n"
+"på listan. Varje adress i e-postlistan som inte existerar i filen, kommer "
+"att bli\n"
+"borttagen från listan. Vad som sker när medlemmar anmäls eller avanmäls\n"
+"på detta sätt, bestäms av valen nedan.\n"
+"\n"
+"Används så här: %(PROGRAM)s [val] -f filnamn listnamn\n"
+"\n"
+"Val:\n"
+"\n"
+" --no-change\n"
+" -n\n"
+" Gör inga ändringar, men visa vad som skulle gjorts.\n"
+"\n"
+" --welcome-msg[=<yes|no>]\n"
+" -w[=<yes|no>]\n"
+" Bestämmer om nya medlemmar ska ta emot välkomstmeddelande eller "
+"inte.\n"
+" Detta val överrider listans 'send_welcome_msg' inställning.\n"
+" -w=yes eller -w leder till att ett välkomstmeddelande skickas, -"
+"w=no\n"
+" leder till att det inte skickas något välkomstmeddelande.\n"
+"\n"
+" --goodbye-msg[=<yes|no>]\n"
+" -g[=<yes|no>]\n"
+" Bestämmer om medlemmar som avanmäls från listan ska ta emot ett\n"
+" avskedsmeddelande eller inte. Detta val överrider listans "
+"'send_goodbye_msg'\n"
+" inställning. -g=yes eller -g leder till att ett avskedsmeddelande "
+"skickas,\n"
+" -g=no leder till att det inte skickas något avskedsmeddelande.\n"
+"\n"
+" --digest[=<yes|no>]\n"
+" -d[=<yes|no>]\n"
+" Bestämmer om nya medlemmar ska använda sammandragsversion eller "
+"inte.\n"
+" Med -d=yes eller -d, blir de satta i sammandragsversion. Med -d=no\n"
+" (eller om inte -d används) blir de satta i normalversion.\n"
+"\n"
+" --notifyadmin[=<yes|no>]\n"
+" --a[=<yes|no>]\n"
+" Bestämmer om administratören ska få besked om vilka som anmäls\n"
+" och vilka som avanmäls. Om du lägger in många nya adresser, kommer\n"
+" du nog helt säkert att avaktivera detta! Med -a=yes eller -a, "
+"kommer\n"
+" admin att få besked. Med -a=no, kommer admin inte att få besked. Om -"
+"a\n"
+" inte används, kommer listans inställning att bestämma om admin ska "
+"få\n"
+" besked eller ej.\n"
+"\n"
+" --file <filnamn | ->\n"
+" -f <filnamn | ->\n"
+" Detta val måste användas. Det specifiserar namnet på filen som\n"
+" innehåller e-postadresserna som ska synkroniseras med listan.\n"
+" Om filnamnet är '-', används standard input.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Visar denna hjälptext.\n"
+"\n"
+" listnamn\n"
+" Måste användas. Anger namnet på listan som ska synkroniseras.\n"
+
+# bin/sync_members:111
+# bin/sync_members:115
+#: bin/sync_members:115
+msgid "Bad choice: %(yesno)s"
+msgstr "Ogiltigt val: %(yesno)s"
+
+# bin/sync_members:134
+# bin/sync_members:138
+#: bin/sync_members:138
+msgid "Dry run mode"
+msgstr "Utför inga ändringar."
+
+# bin/sync_members:155
+# bin/sync_members:159
+#: bin/sync_members:159
+msgid "Only one -f switch allowed"
+msgstr "Bara en \"-f\" parameter kan användas"
+
+# bin/sync_members:159
+# bin/sync_members:163
+#: bin/sync_members:163
+msgid "No argument to -f given"
+msgstr "\"-f\" parametern saknar värde"
+
+# bin/sync_members:168
+# bin/sync_members:172
+#: bin/sync_members:172
+msgid "Illegal option: %(opt)s"
+msgstr "Ogiltig parameter: %(opt)s"
+
+# bin/sync_members:174
+# bin/sync_members:178
+#: bin/sync_members:178
+msgid "No listname given"
+msgstr "Ingen lista har angetts"
+
+# bin/sync_members:178
+# bin/sync_members:182
+#: bin/sync_members:182
+msgid "Must have a listname and a filename"
+msgstr "Måste ha ett listnamn och ett filnamn"
+
+# bin/sync_members:187
+# bin/sync_members:191
+#: bin/sync_members:191
+msgid "Cannot read address file: %(filename)s: %(msg)s"
+msgstr "Kan inte läsa adressfil: %(filename)s: %(msg)s"
+
+# bin/sync_members:199
+# bin/sync_members:203
+#: bin/sync_members:203
+msgid "Ignore : %(addr)30s"
+msgstr "Hoppar över : %(addr)30s"
+
+# bin/sync_members:208
+# bin/sync_members:212
+#: bin/sync_members:212
+msgid "Invalid : %(addr)30s"
+msgstr "Ogiltig : %(addr)30s"
+
+# bin/sync_members:211
+# bin/sync_members:215
+#: bin/sync_members:215
+msgid "You must fix the preceding invalid addresses first."
+msgstr "Du måste fixa de ogiltiga adresserna först."
+
+# bin/sync_members:254
+# bin/sync_members:258
+#: bin/sync_members:259
+msgid "Added : %(s)s"
+msgstr "Lade till : %(s)s"
+
+# bin/rmlist:61 bin/rmlist:64
+# bin/rmlist:65 bin/rmlist:68
+#: bin/sync_members:278
+msgid "Removed: %(s)s"
+msgstr "Tar bort %(s)s"
+
+# bin/transcheck:18
+#: bin/transcheck:18
+msgid ""
+"\n"
+"Check a given Mailman translation, making sure that variables and\n"
+"tags referenced in translation are the same variables and tags in\n"
+"the original templates and catalog.\n"
+"\n"
+"Usage:\n"
+"\n"
+"cd $MAILMAN_DIR\n"
+"%(program)s [-q] <lang>\n"
+"\n"
+"Where <lang> is your country code (e.g. 'it' for Italy) and -q is\n"
+"to ask for a brief summary.\n"
+msgstr ""
+
+# bin/transcheck:55
+#: bin/transcheck:57
+msgid "check a translation comparing with the original string"
+msgstr "kontroller en översättning jämfört med originalsträng"
+
+# bin/transcheck:62
+#: bin/transcheck:64
+msgid "scan a string from the original file"
+msgstr "läs in en sträng från originalfilen"
+
+# bin/transcheck:70
+#: bin/transcheck:72
+msgid "scan a translated string"
+msgstr "läs in en översatt sträng"
+
+# bin/transcheck:81
+#: bin/transcheck:83
+msgid "check for differences between checked in and checked out"
+msgstr "se efter skillnader mellan inkommande och utgående "
+
+# bin/transcheck:114
+#: bin/transcheck:116
+msgid "parse a .po file extracting msgids and msgstrs"
+msgstr "tolka (parse) en po-fil genom att extrahera msgids och msgstrs"
+
+# bin/transcheck:133
+#: bin/transcheck:135
+msgid ""
+"States table for the finite-states-machine parser:\n"
+" 0 idle\n"
+" 1 filename-or-comment\n"
+" 2 msgid\n"
+" 3 msgstr\n"
+" 4 end\n"
+" "
+msgstr ""
+
+# bin/transcheck:270
+#: bin/transcheck:272
+msgid ""
+"check a translated template against the original one\n"
+" search also <MM-*> tags if html is not zero"
+msgstr ""
+
+# bin/transcheck:317
+#: bin/transcheck:319
+msgid "scan the po file comparing msgids with msgstrs"
+msgstr "läs po-filen och jämför msgids och msgstrs"
+
+# bin/unshunt:19
+# bin/unshunt:19
+#: bin/unshunt:19
+msgid ""
+"Move a message from the shunt queue to the original queue.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [directory]\n"
+"\n"
+"Where:\n"
+"\n"
+" -h / --help\n"
+" Print help and exit.\n"
+"\n"
+"Optional `directory' specifies a directory to dequeue from other than\n"
+"qfiles/shunt.\n"
+msgstr ""
+
+# bin/unshunt:81
+#: bin/unshunt:81
+msgid ""
+"Cannot unshunt message %(filebase)s, skipping:\n"
+"%(e)s"
+msgstr ""
+
+# bin/update:19
+# bin/update:19
+#: bin/update:19
+msgid ""
+"Perform all necessary upgrades.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -f/--force\n"
+" Force running the upgrade procedures. Normally, if the version "
+"number\n"
+" of the installed Mailman matches the current version number (or a\n"
+" `downgrade' is detected), nothing will be done.\n"
+"\n"
+" -h/--help\n"
+" Print this text and exit.\n"
+"\n"
+"Use this script to help you update to the latest release of Mailman from\n"
+"some previous version. It knows about versions back to 1.0b4 (?).\n"
+msgstr ""
+"Utför all nödvändig uppgradering.\n"
+"\n"
+"Används så här: %(PROGRAM)s [val]\n"
+"\n"
+"Val:\n"
+" -f / --force\n"
+" Vanligtvis görs ingenting om den installerade Mailmanversionen är\n"
+" samma som den nya versionen (eller en nedgradering prövas). Med "
+"detta\n"
+" val kommer uppgradering att köras oavsett versionsnummer.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Visar denna hjälptext.\n"
+"\n"
+"Använd detta skript till att hjälpa dig att uppgradera Mailman från "
+"tidigare\n"
+"versioner till ny version. Skriptet känner till versioner ända tillbaka "
+"till\n"
+"1.0b4 (?).\n"
+
+# bin/update:99
+# bin/update:101
+#: bin/update:102
+msgid "Fixing language templates: %(listname)s"
+msgstr "Uppdaterar språkfiler: %(listname)s"
+
+# bin/update:188 bin/update:442
+# bin/update:190 bin/update:465
+#: bin/update:191 bin/update:466
+msgid "WARNING: could not acquire lock for list: %(listname)s"
+msgstr "VARNING: kunde inte låsa listan: %(listname)s"
+
+# bin/update:209
+#: bin/update:210
+msgid "Resetting %(n)s BYBOUNCEs disabled addrs with no bounce info"
+msgstr ""
+
+# bin/update:193
+# bin/update:215
+#: bin/update:216
+msgid "Updating the held requests database."
+msgstr "Uppdaterar databasen över tillbakahållna meddelanden."
+
+# bin/update:215
+# bin/update:237
+#: bin/update:238
+msgid ""
+"For some reason, %(mbox_dir)s exists as a file. This won't work with\n"
+"b6, so I'm renaming it to %(mbox_dir)s.tmp and proceeding."
+msgstr ""
+"Av en eller annan anledning, existerar %(mbox_dir)s som en fil. Detta kommer "
+"inte\n"
+"att fungera i b6, så jag ändrar namnet till %(mbox_dir)s.tmp och fortsätter."
+
+# bin/update:227
+# bin/update:249
+#: bin/update:250
+msgid ""
+"\n"
+"%(listname)s has both public and private mbox archives. Since this list\n"
+"currently uses private archiving, I'm installing the private mbox archive\n"
+"-- %(o_pri_mbox_file)s -- as the active archive, and renaming\n"
+" %(o_pub_mbox_file)s\n"
+"to\n"
+" %(o_pub_mbox_file)s.preb6\n"
+"\n"
+"You can integrate that into the archives if you want by using the 'arch'\n"
+"script.\n"
+msgstr ""
+"\n"
+"%(listname)s har både offentliga och privata mbox arkiv. Eftersom denna "
+"lista\n"
+"bara använder privata arkiv, installerar jag det privata mbox arkivet\n"
+"-- %(o_pri_mbox_file)s -- som det aktiva arkivet, och ändrar namnet\n"
+" %(o_pub_mbox_file)s\n"
+"till\n"
+" %(o_pub_mbox_file)s.preb6\n"
+"\n"
+"Om du vill kan du integrera detta in i arkivet genom att använda 'arch' "
+"skriptet.\n"
+
+# bin/update:242
+# bin/update:264
+#: bin/update:265
+msgid ""
+"%s has both public and private mbox archives. Since this list\n"
+"currently uses public archiving, I'm installing the public mbox file\n"
+"archive file (%s) as the active one, and renaming\n"
+" %s\n"
+" to\n"
+" %s.preb6\n"
+"\n"
+"You can integrate that into the archives if you want by using the 'arch'\n"
+"script.\n"
+msgstr ""
+"%s har både offentliga och privata mbox arkiv. Eftersom denna lista\n"
+"bara använder offentligt arkiv, installerar jag den offentliga mbox "
+"arkivfilen\n"
+"(%s) som den aktiva, och ändrar namnet\n"
+" %s\n"
+"till\n"
+" %s.preb6\n"
+"\n"
+"Om du vill kan du integrera detta in i arkivet genom att använda 'arch' "
+"skriptet.\n"
+
+# bin/update:259
+# bin/update:281
+#: bin/update:282
+msgid "- updating old private mbox file"
+msgstr "- uppdaterar den gamla privata mbox-filen"
+
+# bin/update:267
+# bin/update:289
+#: bin/update:290
+msgid ""
+" unknown file in the way, moving\n"
+" %(o_pri_mbox_file)s\n"
+" to\n"
+" %(newname)s"
+msgstr ""
+" okänd fil i vägen, flyttar\n"
+" %(o_pri_mbox_file)s\n"
+" till\n"
+" %(newname)s"
+
+# bin/update:274 bin/update:297
+# bin/update:296 bin/update:319
+#: bin/update:297 bin/update:320
+msgid ""
+" looks like you have a really recent CVS installation...\n"
+" you're either one brave soul, or you already ran me"
+msgstr ""
+" ser ut som om du har en ganska ny CVS installation...\n"
+" antingen är du en modig själ, eller så har du redan kört detta skript"
+
+# bin/update:283
+# bin/update:305
+#: bin/update:306
+msgid "- updating old public mbox file"
+msgstr "- uppdaterar den gamla offentliga mbox-filen"
+
+# bin/update:291
+# bin/update:313
+#: bin/update:314
+msgid ""
+" unknown file in the way, moving\n"
+" %(o_pub_mbox_file)s\n"
+" to\n"
+" %(newname)s"
+msgstr ""
+" okänd fil i vägen, flyttar\n"
+" %(o_pub_mbox_file)s\n"
+" till\n"
+" %(newname)s"
+
+# bin/update:322
+# bin/update:344
+#: bin/update:345
+msgid "- This list looks like it might have <= b4 list templates around"
+msgstr "- Det ser ut som denna lista har templates äldre än b5 liggande"
+
+# bin/update:329
+# bin/update:351
+#: bin/update:352
+msgid "- moved %(o_tmpl)s to %(n_tmpl)s"
+msgstr "- flyttat %(o_tmpl)s till %(n_tmpl)s"
+
+# bin/update:331
+# bin/update:353
+#: bin/update:354
+msgid "- both %(o_tmpl)s and %(n_tmpl)s exist, leaving untouched"
+msgstr "- både %(o_tmpl)s och %(n_tmpl)s existerar, rör inte dessa"
+
+# bin/update:361
+# bin/update:383
+#: bin/update:384
+msgid "removing directory %(src)s and everything underneath"
+msgstr "tar bort katalogen %(src)s och alla underkataloger"
+
+# bin/update:364
+# bin/update:386
+#: bin/update:387
+msgid "removing %(src)s"
+msgstr "tar bort %(src)s"
+
+# bin/update:368
+# bin/update:390
+#: bin/update:391
+msgid "Warning: couldn't remove %(src)s -- %(rest)s"
+msgstr "Varning: kunde inte ta bort %(src)s -- %(rest)s"
+
+# bin/update:373
+# bin/update:395
+#: bin/update:396
+msgid "couldn't remove old file %(pyc)s -- %(rest)s"
+msgstr "kunde inte ta bort den gamla filen %(pyc)s -- %(rest)s"
+
+# bin/update:377
+# bin/update:399
+#: bin/update:400
+msgid "updating old qfiles"
+msgstr "uppdaterar gamla qfiler"
+
+# bin/update:399
+# bin/update:421
+#: bin/update:422
+msgid "getting rid of old source files"
+msgstr "tar bort gamla källfiler"
+
+# bin/update:409
+# bin/update:431
+#: bin/update:432
+msgid "no lists == nothing to do, exiting"
+msgstr "inga listor == ingenting att göra, avslutar"
+
+# bin/update:416
+# bin/update:438
+#: bin/update:439
+msgid ""
+"fixing all the perms on your old html archives to work with b6\n"
+"If your archives are big, this could take a minute or two..."
+msgstr ""
+"uppdaterar rättigheter för alla dina gamla htmlarkiv så att de ska fungera\n"
+"med b6. Om arkiven är stora, kan detta ta en stund..."
+
+# bin/update:421
+# bin/update:443
+#: bin/update:444
+msgid "done"
+msgstr "utfört"
+
+# bin/update:423
+# bin/update:445
+#: bin/update:446
+msgid "Updating mailing list: %(listname)s"
+msgstr "Uppdaterar e-postlista: %(listname)s"
+
+# bin/update:425
+# bin/update:448
+#: bin/update:449
+msgid "Updating Usenet watermarks"
+msgstr "Uppdaterar Usenet watermarks (vattenmärken för nyhetsgrupper)"
+
+# bin/update:430
+# bin/update:453
+#: bin/update:454
+msgid "- nothing to update here"
+msgstr "- ingenting att uppdatera här"
+
+# bin/update:453
+# bin/update:476
+#: bin/update:477
+msgid "- usenet watermarks updated and gate_watermarks removed"
+msgstr "- usenet watermarks och gate_watermarks är borttagna"
+
+# bin/update:463
+# bin/update:486
+#: bin/update:487
+msgid "Updating old pending_subscriptions.db database"
+msgstr "Uppdaterar den gamla pending_subscriptions.db databasen"
+
+# bin/update:480
+# bin/update:503
+#: bin/update:504
+msgid ""
+"\n"
+"\n"
+"NOTE NOTE NOTE NOTE NOTE\n"
+"\n"
+" You are upgrading an existing Mailman installation, but I can't tell "
+"what\n"
+" version you were previously running.\n"
+"\n"
+" If you are upgrading from Mailman 1.0b9 or earlier you will need to\n"
+" manually update your mailing lists. For each mailing list you need to\n"
+" copy the file templates/options.html lists/<listname>/options.html.\n"
+"\n"
+" However, if you have edited this file via the Web interface, you will "
+"have\n"
+" to merge your changes into this file, otherwise you will lose your\n"
+" changes.\n"
+"\n"
+"NOTE NOTE NOTE NOTE NOTE\n"
+"\n"
+msgstr ""
+"\n"
+"\n"
+"OBS! OBS! OBS! OBS! OBS!\n"
+"\n"
+" Du är i färd med att uppgradera en existerande Mailmaninstallation, men\n"
+" jeg klarar inte att ta reda på vilken version som är installerad.\n"
+"\n"
+" Om du uppgraderar från Mailman 1.0b9 eller tidigare, blir du tvungen "
+"att\n"
+" uppdatera dina e-postlistor manuellt. För varje e-postlista måste du "
+"kopiera över\n"
+" filen templates/options.html till lists/<listnamn>/options.html.\n"
+"\n"
+" Har du för övrigt redigerat denna fil via webbsidorna, måste du manuellt "
+"sätta\n"
+" samman dina ändringar med den nya filen, annars kommer du att förlora "
+"ändringarna du\n"
+" gjort tidigare.\n"
+"\n"
+"OBS! OBS! OBS! OBS! OBS!\n"
+"\n"
+
+# bin/update:533
+# bin/update:560
+#: bin/update:561
+msgid "No updates are necessary."
+msgstr "Ingen uppdatering är nödvändig."
+
+# bin/update:536
+# bin/update:563
+#: bin/update:564
+msgid ""
+"Downgrade detected, from version %(hexlversion)s to version %(hextversion)s\n"
+"This is probably not safe.\n"
+"Exiting."
+msgstr ""
+"Nedgradering från version %(hexlversion)s till version %(hextversion)s.\n"
+"Detta kommer antagligen inte att fungera.\n"
+"Avbryter."
+
+# bin/update:541
+# bin/update:568
+#: bin/update:569
+msgid "Upgrading from version %(hexlversion)s to %(hextversion)s"
+msgstr "Uppgraderar från version %(hexlversion)s till %(hextversion)s"
+
+# bin/update:550
+# bin/update:577
+#: bin/update:578
+msgid ""
+"\n"
+"ERROR:\n"
+"\n"
+"The locks for some lists could not be acquired. This means that either\n"
+"Mailman was still active when you upgraded, or there were stale locks in "
+"the\n"
+"%(lockdir)s directory.\n"
+"\n"
+"You must put Mailman into a quiescent state and remove all stale locks, "
+"then\n"
+"re-run \"make update\" manually. See the INSTALL and UPGRADE files for "
+"details.\n"
+msgstr ""
+"\n"
+"FEL:\n"
+"\n"
+"Kunde inte låsa någon av listorna. Detta innebär att Mailman forfarande var "
+"aktiv då\n"
+"du uppgraderade, eller så var gamla låsfiler i katalogen %(lockdir)s.\n"
+"\n"
+"Du måste emellertid stoppa Mailman och ta bort alla gamla lås-filer innan "
+"du\n"
+"försöker att köra \"make update\" igen manuellt. Se INSTALL och UPGRADE "
+"filerna för\n"
+"mer information.\n"
+
+# bin/version:19
+# bin/version:19
+#: bin/version:19
+msgid "Print the Mailman version.\n"
+msgstr "Visa Mailmanversionen.\n"
+
+# bin/version:26
+# bin/version:26
+#: bin/version:26
+msgid "Using Mailman version:"
+msgstr "Använder Mailman version:"
+
+# bin/withlist:19
+# bin/withlist:19
+#: bin/withlist:19
+msgid ""
+"General framework for interacting with a mailing list object.\n"
+"\n"
+"There are two ways to use this script: interactively or programmatically.\n"
+"Using it interactively allows you to play with, examine and modify a "
+"MailList\n"
+"object from Python's interactive interpreter. When running interactively, "
+"a\n"
+"MailList object called `m' will be available in the global namespace. It "
+"also\n"
+"loads the class MailList into the global namespace.\n"
+"\n"
+"Programmatically, you can write a function to operate on a MailList object,\n"
+"and this script will take care of the housekeeping (see below for "
+"examples).\n"
+"In that case, the general usage syntax is:\n"
+"\n"
+"%% bin/withlist [options] listname [args ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" -l / --lock\n"
+" Lock the list when opening. Normally the list is opened unlocked\n"
+" (e.g. for read-only operations). You can always lock the file "
+"after\n"
+" the fact by typing `m.Lock()'\n"
+"\n"
+" Note that if you use this option, you should explicitly call m.Save"
+"()\n"
+" before exiting, since the interpreter's clean up procedure will not\n"
+" automatically save changes to the MailList object (but it will "
+"unlock\n"
+" the list).\n"
+"\n"
+" -i / --interactive\n"
+" Leaves you at an interactive prompt after all other processing is\n"
+" complete. This is the default unless the -r option is given.\n"
+"\n"
+" --run [module.]callable\n"
+" -r [module.]callable\n"
+" This can be used to run a script with the opened MailList object.\n"
+" This works by attempting to import `module' (which must already be\n"
+" accessible on your sys.path), and then calling `callable' from the\n"
+" module. callable can be a class or function; it is called with the\n"
+" MailList object as the first argument. If additional args are "
+"given\n"
+" on the command line, they are passed as subsequent positional args "
+"to\n"
+" the callable.\n"
+"\n"
+" Note that `module.' is optional; if it is omitted then a module "
+"with\n"
+" the name `callable' will be imported.\n"
+"\n"
+" The global variable `r' will be set to the results of this call.\n"
+"\n"
+" --all / -a\n"
+" This option only works with the -r option. Use this if you want to\n"
+" execute the script on all mailing lists. When you use -a you "
+"should\n"
+" not include a listname argument on the command line. The variable "
+"`r'\n"
+" will be a list of all the results.\n"
+"\n"
+" --quiet / -q\n"
+" Suppress all status messages.\n"
+"\n"
+" --help / -h\n"
+" Print this message and exit\n"
+"\n"
+"\n"
+"Here's an example of how to use the -r option. Say you have a file in the\n"
+"Mailman installation directory called `listaddr.py', with the following\n"
+"two functions:\n"
+"\n"
+"def listaddr(mlist):\n"
+" print mlist.GetListEmail()\n"
+"\n"
+"def requestaddr(mlist):\n"
+" print mlist.GetRequestEmail()\n"
+"\n"
+"Now, from the command line you can print the list's posting address by "
+"running\n"
+"the following from the command line:\n"
+"\n"
+"%% bin/withlist -r listaddr mylist\n"
+"Loading list: mylist (unlocked)\n"
+"Importing listaddr ...\n"
+"Running listaddr.listaddr() ...\n"
+"mylist@myhost.com\n"
+"\n"
+"And you can print the list's request address by running:\n"
+"\n"
+"%% bin/withlist -r listaddr.requestaddr mylist\n"
+"Loading list: mylist (unlocked)\n"
+"Importing listaddr ...\n"
+"Running listaddr.requestaddr() ...\n"
+"mylist-request@myhost.com\n"
+"\n"
+"As another example, say you wanted to change the password for a particular\n"
+"user on a particular list. You could put the following function in a file\n"
+"called `changepw.py':\n"
+"\n"
+"from Mailman.Errors import NotAMember\n"
+"\n"
+"def changepw(mlist, addr, newpasswd):\n"
+" try:\n"
+" mlist.setMemberPassword(addr, newpasswd)\n"
+" mlist.Save()\n"
+" except NotAMember:\n"
+" print 'No address matched:', addr\n"
+"\n"
+"and run this from the command line:\n"
+"%% bin/withlist -l -r changepw mylist somebody@somewhere.org foobar\n"
+msgstr ""
+
+# bin/withlist:147
+# bin/withlist:151
+#: bin/withlist:151
+msgid ""
+"Unlock a locked list, but do not implicitly Save() it.\n"
+"\n"
+" This does not get run if the interpreter exits because of a signal, or "
+"if\n"
+" os._exit() is called. It will get called if an exception occurs "
+"though.\n"
+" "
+msgstr ""
+
+# bin/withlist:158
+# bin/withlist:162
+#: bin/withlist:162
+msgid "Unlocking (but not saving) list: %(listname)s"
+msgstr "Låser upp (men sparar inte ) listan: %(listname)s"
+
+# bin/withlist:162
+# bin/withlist:166
+#: bin/withlist:166
+msgid "Finalizing"
+msgstr "Avslutar"
+
+# bin/withlist:171
+# bin/withlist:175
+#: bin/withlist:175
+msgid "Loading list %(listname)s"
+msgstr "Läser listan %(listname)s"
+
+# bin/withlist:173
+# bin/withlist:177
+#: bin/withlist:177
+msgid "(locked)"
+msgstr "(låst)"
+
+# bin/withlist:175
+# bin/withlist:179
+#: bin/withlist:179
+msgid "(unlocked)"
+msgstr "(öppen)"
+
+# bin/withlist:180
+# bin/withlist:184
+#: bin/withlist:184
+msgid "Unknown list: %(listname)s"
+msgstr "Okänd lista: %(listname)s"
+
+# bin/withlist:219
+# bin/withlist:223
+#: bin/withlist:223
+msgid "No list name supplied."
+msgstr "Inget listnamn angett"
+
+# bin/withlist:222
+# bin/withlist:226
+#: bin/withlist:226
+msgid "--all requires --run"
+msgstr "--all kräver --run"
+
+# bin/withlist:242
+# bin/withlist:246
+#: bin/withlist:246
+msgid "Importing %(module)s..."
+msgstr "Importerar %(module)s..."
+
+# bin/withlist:245
+# bin/withlist:249
+#: bin/withlist:249
+msgid "Running %(module)s.%(callable)s()..."
+msgstr "Kör %(module)s.%(callable)s()..."
+
+# bin/withlist:266
+# bin/withlist:270
+#: bin/withlist:270
+msgid "The variable `m' is the %(listname)s MailList instance"
+msgstr "Variabeln 'm' är förekomsten av %(listname)s MailList objektet"
+
+# cron/bumpdigests:19
+# cron/bumpdigests:19
+#: cron/bumpdigests:19
+msgid ""
+"Increment the digest volume number and reset the digest number to one.\n"
+"\n"
+"Usage: %(PROGRAM)s [options] [listname ...]\n"
+"\n"
+"Options:\n"
+"\n"
+" --help/-h\n"
+" Print this message and exit.\n"
+"\n"
+"The lists named on the command line are bumped. If no list names are "
+"given,\n"
+"all lists are bumped.\n"
+msgstr ""
+"Ökar volymnummer i sammandragsversion, och sätter utgivningsnumret till 1.\n"
+"\n"
+"Används så här: %(PROGRAM)s [val] [listnamn ...]\n"
+"\n"
+"Val:\n"
+"\n"
+" --help\n"
+" -h\n"
+" Visar denna hjälptext.\n"
+"\n"
+"Volymnumret ökas för den angivna listan. Om ingen lista anges, ökas\n"
+"volymnummer för alla listor.\n"
+
+# cron/checkdbs:19
+# cron/checkdbs:19
+#: cron/checkdbs:19
+msgid ""
+"Invoked by cron, this checks for pending moderation requests and mails the\n"
+"list moderators if necessary.\n"
+msgstr ""
+"Detta skript startas från cron, och undersöker om det finns frågor som\n"
+"kräver behandling av en listmoderator. Om det finns, varnar skriptet\n"
+"listmoderatorn.\n"
+
+# cron/checkdbs:68
+# cron/checkdbs:81
+#: cron/checkdbs:81
+msgid "%(count)d %(realname)s moderator request(s) waiting"
+msgstr "%(count)d frågor väntar på behandling på listan %(realname)s"
+
+# cron/checkdbs:82
+# cron/checkdbs:100
+#: cron/checkdbs:100
+msgid "Pending subscriptions:"
+msgstr "Ansökningar om medlemskap som väntar på behandling:"
+
+# cron/checkdbs:91
+# cron/checkdbs:109
+#: cron/checkdbs:109
+msgid ""
+"\n"
+"Pending posts:"
+msgstr ""
+"\n"
+"E-postbrev till listan som kräver godkännande:"
+
+# cron/checkdbs:96
+# cron/checkdbs:114
+#: cron/checkdbs:114
+#, fuzzy
+msgid ""
+"From: %(sender)s on %(date)s\n"
+"Subject: %(subject)s\n"
+"Cause: %(reason)s"
+msgstr ""
+" Från: %(sender)s %(date)s\n"
+" Orsak: %(reason)s"
+
+# cron/disabled:19
+#: cron/disabled:19
+msgid ""
+"Process disabled members, recommended once per day.\n"
+"\n"
+"This script cruises through every mailing list looking for members whose\n"
+"delivery is disabled. If they have been disabled due to bounces, they will\n"
+"receive another notification, or they may be removed if they've received "
+"the\n"
+"maximum number of notifications.\n"
+"\n"
+"Use the --byadmin, --byuser, and --unknown flags to also send notifications "
+"to\n"
+"members whose accounts have been disabled for those reasons. Use --all to\n"
+"send the notification to all disabled members.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -h / --help\n"
+" Print this message and exit.\n"
+"\n"
+" -o / --byadmin\n"
+" Also send notifications to any member disabled by the list\n"
+" owner/administrator.\n"
+"\n"
+" -m / --byuser\n"
+" Also send notifications to any member disabled by themselves.\n"
+"\n"
+" -u / --unknown\n"
+" Also send notifications to any member disabled for unknown reasons\n"
+" (usually a legacy disabled address).\n"
+"\n"
+" -b / --notbybounce\n"
+" Don't send notifications to members disabled because of bounces "
+"(the\n"
+" default is to notify bounce disabled members).\n"
+"\n"
+" -a / --all\n"
+" Send notifications to all disabled members.\n"
+"\n"
+" -f / --force\n"
+" Send notifications to disabled members even if they're not due a "
+"new\n"
+" notification yet.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" Process only the given list, otherwise do all lists.\n"
+msgstr ""
+
+# cron/disabled:87
+# cron/disabled:143
+#: cron/disabled:143
+msgid "[disabled by periodic sweep and cull, no message available]"
+msgstr "[stoppat för periodisk undersökning, inget meddelande tillgängligt]"
+
+# cron/gate_news:19
+# cron/gate_news:19
+#: cron/gate_news:19
+msgid ""
+"Poll the NNTP servers for messages to be gatewayed to mailing lists.\n"
+"\n"
+"Usage: gate_news [options]\n"
+"\n"
+"Where options are\n"
+"\n"
+" --help\n"
+" -h\n"
+" Print this text and exit.\n"
+"\n"
+msgstr ""
+"Kontaktar NNTP-servern för att se om nya meddelanden ska distribueras till\n"
+"de respektive e-postlistorna.\n"
+"\n"
+"Används så här: gate_news [val]\n"
+"\n"
+"Val:\n"
+"\n"
+" --help\n"
+" -h\n"
+" Visar denna hjälptext.\n"
+"\n"
+
+# cron/mailpasswds:19
+# cron/mailpasswds:19
+#: cron/mailpasswds:19
+#, fuzzy
+msgid ""
+"Send password reminders for all lists to all users.\n"
+"\n"
+"This program scans all mailing lists and collects users and their "
+"passwords,\n"
+"grouped by the list's host_name if mm_cfg.VIRTUAL_HOST_OVERVIEW is true. "
+"Then\n"
+"one email message is sent to each unique user (per-virtual host) containing\n"
+"the list passwords and options url for the user. The password reminder "
+"comes\n"
+"from the mm_cfg.MAILMAN_SITE_LIST, which must exist.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -l listname\n"
+" --listname=listname\n"
+" Send password reminders for the named list only. If omitted,\n"
+" reminders are sent for all lists. Multiple -l/--listname options "
+"are\n"
+" allowed.\n"
+"\n"
+" -h/--help\n"
+" Print this message and exit.\n"
+msgstr ""
+"Skicka påminnelse om lösenord till alla medlemmar av alla listor.\n"
+"\n"
+"Detta program går igenom alla e-postlistorna och samlar upp information\n"
+"om medlemmar och deras lösenord, grupperade efter listans hostnamn om\n"
+"mm_cfg.VIRTUAL_HOST_OVERVIEW är satt. Därefter skickas ett e-postbrev ut "
+"till\n"
+"varje unik medlem (per virtuell host), som innehåller medlemmens lösenord\n"
+"och URL till medlemmens personliga inställningar. E-postbrev kommer från\n"
+"mm_cfg.MAILMAN_SITE_LIST, som måste existera.\n"
+"\n"
+"Anänds så här: %(PROGRAM)s [val]\n"
+"\n"
+"Val:\n"
+" -l listname\n"
+" --listname=listname\n"
+" Skicka påminnelse om lösenord endast för den valda listan. Om "
+"detta,\n"
+" utelämnas, skickas påminnelser till alla listor. Flera val för -l/--"
+"listname är tillåtna.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Visar denna hjälptext.\n"
+
+# cron/mailpasswds:91
+# cron/mailpasswds:111
+#: cron/mailpasswds:111
+msgid "Site list is missing: %(sitelistname)s"
+msgstr "Systemets e-postlista saknas: %(sitelistname)s"
+
+# cron/mailpasswds:157
+# cron/mailpasswds:177
+#: cron/mailpasswds:179
+msgid "Password // URL"
+msgstr "Lösenord // URL"
+
+# cron/mailpasswds:177
+# cron/mailpasswds:197
+#: cron/mailpasswds:199
+msgid "%(host)s mailing list memberships reminder"
+msgstr "Påminnelse om lösenord för e-postlistor på %(host)s"
+
+# cron/nightly_gzip:19
+# cron/nightly_gzip:19
+#: cron/nightly_gzip:19
+msgid ""
+"Re-generate the Pipermail gzip'd archive flat files.\n"
+"\n"
+"This script should be run nightly from cron. When run from the command "
+"line,\n"
+"the following usage is understood:\n"
+"\n"
+"Usage: %(program)s [-v] [-h] [listnames]\n"
+"\n"
+"Where:\n"
+" --verbose\n"
+" -v\n"
+" print each file as it's being gzip'd\n"
+"\n"
+" --help\n"
+" -h\n"
+" print this message and exit\n"
+"\n"
+" listnames\n"
+" Optionally, only compress the .txt files for the named lists. "
+"Without \n"
+" this, all archivable lists are processed.\n"
+"\n"
+msgstr ""
+"Genererar Pipermails gzip arkiv från flat files.\n"
+"\n"
+"Detta skript bör köras nattetid från cron. När det körs från kommandoraden\n"
+"kan det användas på följande sätt:\n"
+"\n"
+"Används så här: %(program)s [-v] [-h] [listnamn ...]\n"
+"\n"
+"Där:\n"
+" --verbose\n"
+" -v\n"
+" Skriver namnet på varje fil efter hand som den blir gzip'ad.\n"
+"\n"
+" --help\n"
+" -h\n"
+" Visar denna hjälptext.\n"
+"\n"
+" listnamn\n"
+" Valfritt. Om listnamn anges, komprimeras bara .txt filerna till\n"
+" de nämnda listorna. Om inget listnamn anges, komprimeras .txt\n"
+" filerna för alla listor som har aktiverat arkiv.\n"
+"\n"
+
+# cron/bumpdigests:19
+# cron/senddigests:19
+#: cron/senddigests:19
+msgid ""
+"Dispatch digests for lists w/pending messages and digest_send_periodic set.\n"
+"\n"
+"Usage: %(PROGRAM)s [options]\n"
+"\n"
+"Options:\n"
+" -h / --help\n"
+" Print this message and exit.\n"
+"\n"
+" -l listname\n"
+" --listname=listname\n"
+" Send the digest for the given list only, otherwise the digests for "
+"all\n"
+" lists are sent out.\n"
+msgstr ""
+
+# Mailman/Commands/cmd_subscribe.py:118
+# Mailman/Commands/cmd_subscribe.py:128
+#~ msgid "A confirmation email has been sent separately."
+#~ msgstr "Ett e-postbrev med förfrågan om bekräftelse har skickats."
+
+# Mailman/Commands/cmd_unsubscribe.py:77
+# Mailman/Commands/cmd_unsubscribe.py:77
+#~ msgid "A removal confirmation message has been sent."
+#~ msgstr "En förfrågan om bekräftelse på avanmälan har skickats."
+
+# Mailman/Handlers/Decorate.py:53
+# Mailman/Handlers/Decorate.py:53
+#~ msgid "non-digest header"
+#~ msgstr "topptext i normalversion"
+
+# Mailman/Handlers/Decorate.py:54
+# Mailman/Handlers/Decorate.py:54
+#~ msgid "non-digest footer"
+#~ msgstr "bottentext i normalversion"
+
+# Mailman/Handlers/Moderate.py:35
+#~ msgid "Posts by member are currently quarantined for moderation"
+#~ msgstr "Meddelanden hålls för tillfället tillbaka för moderering"
+
+# bin/sync_members:271
+# bin/sync_members:275
+#~ msgid "Removed: <%(addr)30s> %(name)s"
+#~ msgstr "Tog bort: <%30(addr)s> %30(name)s"
+
+# Mailman/Gui/ContentFilter.py:38
+#~ msgid "Policies concerning concerning the content of list traffic."
+#~ msgstr "Regler för innehåll i e-postbrev som skickas till listan."
+
+# Mailman/Gui/ContentFilter.py:48
+#~ msgid ""
+#~ "Use this option to remove each message section with a\n"
+#~ " matching MIME type. Each line should contain a string "
+#~ "naming a\n"
+#~ " MIME <tt>type/subtype</tt>, e.g. <tt>image/gif</tt>. Leave "
+#~ "off\n"
+#~ " the subtype to remove all parts with a matching MIME major "
+#~ "type,\n"
+#~ " e.g. <tt>image</tt>. Blank lines are ignored.\n"
+#~ "\n"
+#~ " <p>After stripping message parts, any <tt>multipart</tt>\n"
+#~ " attachment that is empty as a result is removed all "
+#~ "together. If\n"
+#~ " the outer part's MIME type matches one of the strip types, "
+#~ "or if\n"
+#~ " all of the outer part's subparts are stripped, then the "
+#~ "whole\n"
+#~ " message is discarded. Finally, each\n"
+#~ " <tt>multipart/alternative</tt> section will be replaced by "
+#~ "just\n"
+#~ " the first alternative that is non-empty after the specified "
+#~ "types\n"
+#~ " have been removed."
+#~ msgstr ""
+#~ "Använd denna inställning till att ta bort de delar som har en angiven "
+#~ "MIME-typ.\n"
+#~ "Ange en MIME <tt>typ/undertyp</tt> på varje rad, till exempel <tt>image/"
+#~ "gif</tt>.\n"
+#~ "För att ta bort alla delar som har en MIME-huvudtyp, låt bli att ange "
+#~ "subtyp,\n"
+#~ "till exempel, <tt>image></tt>. Blanka linjer kommer att ignoreras.\n"
+#~ "\n"
+#~ "<p>Om en <tt>multipart</tt> bilaga blir tom efter att filtret har\n"
+#~ "tagit bort önskade delar, kommer bilagan att tas bort. Om MIME-typerna "
+#~ "till en\n"
+#~ "av de yttre delarna passar med filtret, eller alla delarna av en yttre "
+#~ "del\n"
+#~ "tas bort, förkastas hela meddelandet. Varje <tt>multipart/alternativ</tt> "
+#~ "del\n"
+#~ "kommer att ersättas av det första alternativet som inte är tomt efter att "
+#~ "de\n"
+#~ "specifiserade delarna tagits bort."
+
+# Mailman/MTA/Aliases.py:40
+#~ msgid ""
+#~ "To finish creating your mailing list, you must edit your\n"
+#~ "/etc/aliases (or equivalent) file by adding the following lines:\n"
+#~ "\n"
+#~ "## %(listname)s mailing list\n"
+#~ "## created: %(date)s %(user)s\n"
+#~ "%(list)s \"|%(wrapper)s post %(listname)s\"\n"
+#~ "%(admin)s \"|%(wrapper)s mailowner %(listname)s\"\n"
+#~ "%(request)s \"|%(wrapper)s mailcmd %(listname)s\"\n"
+#~ "%(owner)s %(listname)s-admin\n"
+#~ msgstr ""
+#~ "För att fullfölja upprättandet av e-postlistan, måste du redigera filen /"
+#~ "etc/aliases\n"
+#~ "(eller motsvarande aliasfil) och lägga till följande rader:\n"
+#~ "\n"
+#~ "## E-postlista: %(listname)s\n"
+#~ "## Upprättad: %(date)s %(user)s\n"
+#~ "%(list)s \"|%(wrapper)s post %(listname)s\"\n"
+#~ "%(admin)s \"|%(wrapper)s mailowner %(listname)s\"\n"
+#~ "%(request)s \"|%(wrapper)s mailcmd %(listname)s\"\n"
+#~ "%(owner)s %(listname)s-admin\n"
+
+# Mailman/MTA/Aliases.py:63
+#~ msgid ""
+#~ "To finish removing your mailing list, you must edit your\n"
+#~ "/etc/aliases (or equivalent) file by removing the following lines:\n"
+#~ "\n"
+#~ "%(list)s \"|%(wrapper)s post %(listname)s\"\n"
+#~ "%(admin)s \"|%(wrapper)s mailowner %(listname)s\"\n"
+#~ "%(request)s \"|%(wrapper)s mailcmd %(listname)s\"\n"
+#~ "%(owner)s %(listname)s-admin\n"
+#~ msgstr ""
+#~ "För att fullfölja radering av e-postlistan, måste du redigera /etc/"
+#~ "aliases\n"
+#~ "(eller motsvarande aliasfil) och ta bort följande rader:\n"
+#~ "\n"
+#~ "%(list)s \"|%(wrapper)s post %(listname)s\"\n"
+#~ "%(admin)s \"|%(wrapper)s mailowner %(listname)s\"\n"
+#~ "%(request)s \"|%(wrapper)s mailcmd %(listname)s\"\n"
+#~ "%(owner)s %(listname)s-admin\n"
+
+# Mailman/MTA/Qmail.py:31
+#~ msgid ""
+#~ "To finish creating your mailing list, execute the following\n"
+#~ "commands with the proper permission:\n"
+#~ "\n"
+#~ "echo '|preline %(wrapper)s post %(listname)s' >~alias/.qmail-%(listname)"
+#~ "s\n"
+#~ "echo '|preline %(wrapper)s mailowner %(listname)s' >~alias/.qmail-%"
+#~ "(listname)s-admin\n"
+#~ "echo '|preline %(wrapper)s mailcmd %(listname)s' >~alias/.qmail-%"
+#~ "(listname)s-request\n"
+#~ "echo '&%(listname)s-admin' >~alias/.qmail-owner-%(listname)s\n"
+#~ "echo '&%(listname)s-admin' >~alias/.qmail-%(listname)s-owner\n"
+#~ "\n"
+#~ "chmod 644 ~alias/.qmail-%(listname)s ~alias/.qmail-%(listname)s-admin\n"
+#~ "chmod 644 ~alias/.qmail-%(listname)s-request ~alias/.qmail-%(listname)s-"
+#~ "owner\n"
+#~ "chmod 644 ~alias/.qmail-owner-%(listname)s\n"
+#~ msgstr ""
+#~ "För att fullfölja upprättandet av e-postlistan %(listname)s, kör "
+#~ "följande\n"
+#~ "kommandon med de rättigheter som krävs:\n"
+#~ "\n"
+#~ "echo '|preline %(wrapper)s post %(listname)s' >~alias/.qmail-%(listname)"
+#~ "s\n"
+#~ "echo '|preline %(wrapper)s mailowner %(listname)s' >~alias/.qmail-%"
+#~ "(listname)s-admin\n"
+#~ "echo '|preline %(wrapper)s mailcmd %(listname)s' >~alias/.qmail-%"
+#~ "(listname)s-request\n"
+#~ "echo '&%(listname)s-admin' >~alias/.qmail-owner-%(listname)s\n"
+#~ "echo '&%(listname)s-admin' >~alias/.qmail-%(listname)s-owner\n"
+#~ "\n"
+#~ "chmod 644 ~alias/.qmail-%(listname)s ~alias/.qmail-%(listname)s-admin\n"
+#~ "chmod 644 ~alias/.qmail-%(listname)s-request ~alias/.qmail-%(listname)s-"
+#~ "owner\n"
+#~ "chmod 644 ~alias/.qmail-owner-%(listname)s\n"
+
+# Mailman/MTA/Qmail.py:48
+#~ msgid ""
+#~ "To finish removing your mailing list, you must remove the\n"
+#~ "all the entires for the %(listname)s aliases."
+#~ msgstr ""
+#~ "För att fullfölja radering av e-postlistan, måste du ta bort alla filerna "
+#~ "för\n"
+#~ "%(listname)s aliaser."
+
+# bin/newlist:160
+#~ msgid "Bad owner email address: %(owner_mail)s"
+#~ msgstr "Ogiltig e-postadress: %(owner_mail)s"
+
+# cron/senddigests:19
+#~ msgid ""
+#~ "Dispatch digests for lists w/pending messages and digest_send_periodic "
+#~ "set.\n"
+#~ "\n"
+#~ "Typically it's invoked via cron.\n"
+#~ msgstr ""
+#~ "Sänder ut sammandrag för de listor som har meddelanden som väntar på att "
+#~ "bli\n"
+#~ "utskickade, och som har 'digest_send_periodic' satt.\n"
+#~ "\n"
+#~ "Körs vanligtvis av cron.\n"
+
+# Mailman/Gui/Autoresponse.py:69
+#~ msgid "Auto-response text to send to -admin and -owner emails."
+#~ msgstr ""
+#~ "Automatiskt svar på e-postbrev som skickas till -admin och "
+#~ "äägaradresserna."
+
+# Mailman/Handlers/Moderate.py:35
+#~ msgid "Post by a moderated member"
+#~ msgstr "Meddelande skickat av en modererad medlem"
+
+# cron/disabled:19
+#~ msgid ""
+#~ "Process disabled members, recommended once per day.\n"
+#~ "\n"
+#~ "This script cruises through every mailing list looking for members whose\n"
+#~ "delivery is disabled. If they have been disabled due to bounces, they "
+#~ "will\n"
+#~ "receive another notification, or they may be removed if they've received "
+#~ "the\n"
+#~ "maximum number of notifications.\n"
+#~ "\n"
+#~ "Usage: %(PROGRAM)s [options]\n"
+#~ "\n"
+#~ "Options:\n"
+#~ " -h / --help\n"
+#~ " Print this message and exit.\n"
+#~ "\n"
+#~ " -l listname\n"
+#~ " --list listname\n"
+#~ " Process only the given list, otherwise do all lists.\n"
+#~ msgstr ""
+#~ "Behandla medlemmar som har stoppat distribution, detta bör göras "
+#~ "dagligen.\n"
+#~ "\n"
+#~ "Detta skript går igenom alla e-postlistorna för att hitta medlemmar som\n"
+#~ "har stoppat distributionen. Om orsaken är returmeddelanden, kommer dessa\n"
+#~ "medlemmar att ta emot en ny varning om detta, eller bli avanmälda från "
+#~ "listan\n"
+#~ "om max antal varningar har nåtts.\n"
+#~ "\n"
+#~ "Används så här: %(PROGRAM)s [val]\n"
+#~ "\n"
+#~ "Val:\n"
+#~ " -h / --help\n"
+#~ " Visar denna hjälptext.\n"
+#~ "\n"
+#~ " -l listnamn\n"
+#~ " --list listnamn\n"
+#~ " Behandla bara den angivna listan. Om detta val inte används\n"
+#~ " kommer alla listor att behandlas.\n"
+
+#~ msgid "Get plain text digests (RFC 1153) rather than MIME digests"
+#~ msgstr "Ta emot samlingsepost i ren text (RFC 1153) istället för MIME"
+
+#~ msgid ""
+#~ "When turned on, your email address is concealed on the Web page\n"
+#~ "that lists the members of the mailing list."
+#~ msgstr ""
+#~ "Sätter du denna till 'on', kommer din e-postadress inte att visas på\n"
+#~ "webbsidan med översikt över medlemmar på listan."
+
+#~ msgid ""
+#~ "When turned on, delivery to your email address is disabled, but\n"
+#~ "your address is still subscribed. This is useful if you plan on taking "
+#~ "a\n"
+#~ "short vacation."
+#~ msgstr ""
+#~ "När denna är satt till 'on', kommer du inte att ta emot meddelanden som "
+#~ "skickas till listan.\n"
+#~ "Det kan vara användbart om du till exempel ska vara borta en period. Du "
+#~ "kan\n"
+#~ "när som helst sätta detta val till 'off', och då kommer du åter att ta "
+#~ "emot meddelanden\n"
+#~ "som skickas till denna lista."
+
+#~ msgid ""
+#~ "When turned on, you get a separate acknowledgement email when you\n"
+#~ "post messages to the list."
+#~ msgstr ""
+#~ "Sätter du denna till 'on', kommer du att ta emot ett e-postbrev med "
+#~ "bekräftelse varje gång\n"
+#~ "som du själv skickar ett meddelande till listan."
+
+#~ msgid ""
+#~ "When turned on, you do *not* get copies of your own posts to\n"
+#~ "the list. Otherwise, you do get copies of your own posts (yes, this "
+#~ "seems a\n"
+#~ "little backwards). This does not affect the contents of digests, so if "
+#~ "you\n"
+#~ "receive postings in digests, you will always get copies of your messages "
+#~ "in\n"
+#~ "the digest."
+#~ msgstr ""
+#~ "Sätter du denna till 'on', kommer du *inte* att ta emot meddelanden som "
+#~ "du själv skickar till\n"
+#~ "listan. Sätter du denna till 'off', kommer du att ta emot dina egna "
+#~ "meddelanden.\n"
+#~ "(Ja, detta kan kanske verka lite bakvänt) Denna inställning har ingen\n"
+#~ "påverkan i sammandragsversion, så om du använder denna version kommer du\n"
+#~ "alltid att se dina egna meddelanden i samlingseposten du tar emot med "
+#~ "jämna mellanrum."
+
+#~ msgid ""
+#~ "When turned on, you get postings from the list bundled into\n"
+#~ "digests. Otherwise, you get each individual message immediately as it "
+#~ "is\n"
+#~ "posted to the list."
+#~ msgstr ""
+#~ "Om denna är satt till 'on', kommer du med jämna mellanrum att ta emot en "
+#~ "samlingsepost med många\n"
+#~ "meddelanden, istället för att ta emot varje enskilt meddelanden. Detta "
+#~ "kallas\n"
+#~ "'sammandragsversion'. är detta satt till 'off', kommer du att ta mot "
+#~ "varje enskilt\n"
+#~ "meddelande som skickas till listan."
+
+#~ msgid ""
+#~ "When turned on, you get `plain' digests, which are actually\n"
+#~ "formatted using the RFC1154 digest format. This format can be easier to "
+#~ "read\n"
+#~ "if you have a non-MIME compliant mail reader. When this option is turned "
+#~ "off,\n"
+#~ "you get digests in MIME format, which are much better if you have a mail\n"
+#~ "reader that supports MIME."
+#~ msgstr ""
+#~ "Om denna är 'on', kommer du att ta emot samlingsepost som ren text, som "
+#~ "formateras\n"
+#~ "efter RFC1154-digest standarden. Detta format kan vara enklare att läsa "
+#~ "om\n"
+#~ "du har en e-postläsare som inte stöder MIME. Om denna inställning är "
+#~ "satt\n"
+#~ "till 'off', kommer du att ta emot samlingsepost i MIME-format, som är ett "
+#~ "mycket bättre\n"
+#~ "format om din e-postläsare stöder det."
+
+#~ msgid ""
+#~ "When turned on, you do *not* receive list copies of message\n"
+#~ "which have you as an explicit recipient (i.e. if you're both a member of "
+#~ "the\n"
+#~ "list and in either the To: or Cc: headers)."
+#~ msgstr ""
+#~ "När denna är på, kommer du *inte* att ta emot e-postbrev till listan som "
+#~ "har dig som mottagare\n"
+#~ "(till exempel om din e-postadress både är medlem av listan och står i "
+#~ "Till: eller Cc: fältet)"
+
+#~ msgid ""
+#~ "Subject line ignored:\n"
+#~ " "
+#~ msgstr ""
+#~ "Ämnesfältet kunde inte tolkas:\n"
+#~ " "
+
+#~ msgid ""
+#~ "Maximum command lines (%(maxlines)d) encountered, ignoring the rest..."
+#~ msgstr ""
+#~ "Maximalt antal kommandon (%(maxlines)d) uppnått, ignorerar resten..."
+
+#~ msgid "End: "
+#~ msgstr "Slut: "
+
+#~ msgid "The rest of the message is ignored:"
+#~ msgstr "Resten av meddelandet tolkas inte:"
+
+#~ msgid "Command? "
+#~ msgstr "Kommando? "
+
+#~ msgid ""
+#~ "\n"
+#~ "Too many errors encountered; the rest of the message is ignored:"
+#~ msgstr ""
+#~ "\n"
+#~ "För många fel; resten av meddelandet kastas:"
+
+#~ msgid ""
+#~ "An unexpected Mailman error has occurred.\n"
+#~ "\n"
+#~ "Please forward your request to the human list administrator in charge of "
+#~ "this\n"
+#~ "list at <%(admin)s>. The traceback is attached below and will be "
+#~ "forwarded to\n"
+#~ "the list administrator automatically."
+#~ msgstr ""
+#~ "Det uppstod ett oväntat fel i Mailman.\n"
+#~ "\n"
+#~ "Var vänlig vidaresänd din fråga till personen som administrerar denna\n"
+#~ "lista, på <%(admin)s>. Felmeddelandet nedan kommer automatiskt att "
+#~ "skickas\n"
+#~ "till administratören, så det behöver du inte skicka."
+
+#~ msgid "Unexpected Mailman error"
+#~ msgstr "Oväntat fel i Mailman"
+
+#~ msgid ""
+#~ "An unexpected Mailman error has occurred in\n"
+#~ "MailCommandHandler.ParseMailCommands(). Here is the traceback:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Mailman: Ett oväntat fel uppstod i MailCommandHandler.ParseMailCommands"
+#~ "().\n"
+#~ "Här är en traceback:\n"
+
+#~ msgid ""
+#~ "This is an automated response.\n"
+#~ "\n"
+#~ "There were problems with the email commands you sent to Mailman via the\n"
+#~ "administrative address %(requestaddr)s.\n"
+#~ "\n"
+#~ "To obtain instructions on valid Mailman email commands, send email to\n"
+#~ "%(requestaddr)s with the word \"help\" in the subject line or in the body "
+#~ "of the\n"
+#~ "message.\n"
+#~ "\n"
+#~ "If you want to reach the human being that manages this mailing list, "
+#~ "please\n"
+#~ "send your message to %(adminaddr)s.\n"
+#~ "\n"
+#~ "The following is a detailed description of the problems.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Detta är ett automatiskt svar från e-postlistsystemet Mailman.\n"
+#~ "\n"
+#~ "Det uppstod problem i samband med kommandona du skickade i ett e-postbrev "
+#~ "till\n"
+#~ "%(requestaddr)s.\n"
+#~ "\n"
+#~ "För att få hjälp och instruktioner om giltiga kommandon och hur du "
+#~ "använder\n"
+#~ "detta kommandosystem, skicka ett e-postbrev till adressen %(requestaddr)"
+#~ "s, med\n"
+#~ "ordet 'help' som innehåll eller i ämnesfältet.\n"
+#~ "\n"
+#~ "Om du önskar att nå personen som administrerar denna e-postlista, skicka "
+#~ "din\n"
+#~ "hänvisning till %(adminaddr)s.\n"
+#~ "\n"
+#~ "Här följer en detaljerad beskrivning av problemet/problemen som uppstod:\n"
+#~ "\n"
+
+#~ msgid "Mailman results for %(realname)s"
+#~ msgstr "Resultat av Mailmankommando till %(realname)s"
+
+#~ msgid "Usage: password [<oldpw> <newpw>]"
+#~ msgstr "Används så här: lösenord [<gammaltlösenord> <nyttlösenord>]"
+
+#~ msgid "You are subscribed as %(user)s, with password: %(password)s"
+#~ msgstr "Du är anmäld som %(user)s, med lösenordet: %(password)s"
+
+#~ msgid "Found no password for %(sender)s"
+#~ msgstr "Hittade inte något lösenord för %(sender)s"
+
+#~ msgid "Succeeded."
+#~ msgstr "Utfört."
+
+#~ msgid "by your configuration"
+#~ msgstr "efter din önskan"
+
+#~ msgid "on (%(reason)s"
+#~ msgstr "på (%(reason)s)"
+
+#~ msgid ""
+#~ "To change an option, do: set <option> <on|off> <password>\n"
+#~ "\n"
+#~ "Option explanations:\n"
+#~ "--------------------\n"
+#~ msgstr ""
+#~ "För att ändra på en inställning, använd kommandot så här:\n"
+#~ " set <inställning> <on|off> <lösenord>\n"
+#~ "\n"
+#~ "Förklaring till de olika inställningarna:\n"
+#~ "--------------------------------------\n"
+
+#~ msgid ""
+#~ "Usage: set <option> <on|off> <password>\n"
+#~ "Valid options are:\n"
+#~ msgstr ""
+#~ "Används så här:set <inställning> <on|off> <lösenord>\n"
+#~ "Giltiga inställningar är:\n"
+
+#~ msgid "You are already receiving digests."
+#~ msgstr "Du får redan sammandragsversion."
+
+#~ msgid "List only accepts digest members."
+#~ msgstr "Man kan bara använda sammandragsversion för denna lista."
+
+#~ msgid "List doesn't accept digest members."
+#~ msgstr "Man kan bara använda normalversion för denna lista."
+
+#~ msgid "\trequests to: "
+#~ msgstr "\tfrågor till:"
+
+#~ msgid "\tdescription: "
+#~ msgstr "\tbeskrivning:"
+
+#~ msgid ""
+#~ "\n"
+#~ "Usage: info\n"
+#~ "To get info for a particular list, send your request to\n"
+#~ "the `-request' address for that list, or use the `lists' command\n"
+#~ "to get info for all the lists."
+#~ msgstr ""
+#~ "\n"
+#~ "Används så här: info\n"
+#~ "För att få information om en e-postlista, skicka en fråga till listans\n"
+#~ "'-request' adress, eller använd kommandot 'lists' för att se information "
+#~ "om\n"
+#~ "alla listorna."
+
+#~ msgid "Private list: only members may see info."
+#~ msgstr "Privat lista: bara medlemmar kan få information om listan."
+
+#~ msgid ""
+#~ "\n"
+#~ "For more complete info about the %(listname)s mailing list, including\n"
+#~ "background and instructions for subscribing to and using it, visit:\n"
+#~ "\n"
+#~ " %(url)s\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\n"
+#~ "För mer information om e-postlistan %(listname)s, bland annat bakgrund,\n"
+#~ "instruktioner för anmälan, och hur den används, gå in på:\n"
+#~ "\n"
+#~ " %(url)s\n"
+#~ "\n"
+
+#~ msgid "No other details are available."
+#~ msgstr "Fler detaljer finns inte."
+
+#~ msgid ""
+#~ "Usage: who\n"
+#~ "To get subscribership for a particular list, send your request\n"
+#~ "to the `-request' address for that list."
+#~ msgstr ""
+#~ "Används så: who\n"
+#~ "För att få se vilka som finns på en e-postlista, skicka detta kommando "
+#~ "till\n"
+#~ "'-request' adressen för listan."
+
+#~ msgid "Private list: No one may see subscription list."
+#~ msgstr "Privat lista: Ingen har tillgång till att se medlemslistan."
+
+#~ msgid "Private list: only members may see list of subscribers."
+#~ msgstr "Privat lista: bara medlemmar kan se medlemslistan."
+
+#~ msgid "NO MEMBERS."
+#~ msgstr "INGA MEDLEMMAR."
+
+#~ msgid ""
+#~ "Usage: unsubscribe [password] [email-address]\n"
+#~ "To unsubscribe from a particular list, send your request to\n"
+#~ "the `-request' address for that list."
+#~ msgstr ""
+#~ "Används så här: unsubscribe [lösenord] [e-postadress]\n"
+#~ "För att avanmäla dig från en e-postlista, skicka detta kommando\n"
+#~ "till '-request' adressen för listan."
+
+#~ msgid ""
+#~ "Usage: subscribe [password] [digest|nodigest] [address=<email-address>]"
+#~ msgstr ""
+#~ "Används så här: subscribe [lösenord] [digest|nodigest] [address=<e-"
+#~ "postadress>]"
+
+#~ msgid ""
+#~ "The list is not fully functional, and can not accept subscription "
+#~ "requests."
+#~ msgstr ""
+#~ "E-postlistan är inte i funktion, och kan därför inte ta emot ansökningar "
+#~ "om\n"
+#~ "medlemskap."
+
+#~ msgid "Succeeded"
+#~ msgstr "Utfört"
+
+#~ msgid "Usage: confirm <confirmation string>\n"
+#~ msgstr "Används så här: confirm <identifikator>\n"
+
+#~ msgid ""
+#~ "Remove members from a list.\n"
+#~ "\n"
+#~ "Usage:\n"
+#~ " remove_members [options] listname [addr1 ...]\n"
+#~ "\n"
+#~ "Options:\n"
+#~ "\n"
+#~ " --file=file\n"
+#~ " -f file\n"
+#~ " Remove member addresses found in the given file. If file is\n"
+#~ " `-', read stdin.\n"
+#~ "\n"
+#~ " --all\n"
+#~ " -a\n"
+#~ " Remove all members of the mailing list.\n"
+#~ "\n"
+#~ " --help\n"
+#~ " -h\n"
+#~ " Print this help message and exit.\n"
+#~ "\n"
+#~ " listname is the name of the mailing list to use.\n"
+#~ "\n"
+#~ " addr1 ... are additional addresses to remove.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Tar bort medlemmar från en lista.\n"
+#~ "\n"
+#~ "Används så här: remove_members [val] [listnamn] [addr1 ...]\n"
+#~ "\n"
+#~ "Val:\n"
+#~ "\n"
+#~ " --file=filnamn\n"
+#~ " -f filnamn\n"
+#~ " Ta bort alla medlemmar som har e-postadress i den angivna filen.\n"
+#~ " Om filnamnet är '-', läses e-postadresserna från standard input.\n"
+#~ "\n"
+#~ " --all\n"
+#~ " -a\n"
+#~ " Tar bort alla medlemmar av e-postlistan.\n"
+#~ " (Kan inte användas med --fromall)\n"
+#~ "\n"
+#~ " --fromall\n"
+#~ " Tar bort de angivna e-postadresserna från alla e-postlistor, "
+#~ "oavsett\n"
+#~ " domän om det finns flera domäner. Detta val kan inte användas "
+#~ "tillsammans\n"
+#~ " med -a/--all. Du bör inte ange något listnamn om du\n"
+#~ " använder detta val.\n"
+#~ "\n"
+#~ " --help\n"
+#~ " -h\n"
+#~ " Visar denna hjälptext.\n"
+#~ "\n"
+#~ " listnamn är namnet på listan som ska användas.\n"
+#~ "\n"
+#~ " addr1 ... är ytterligere adresser som ska tas bort.\n"
+#~ "\n"
+
+#~ msgid "User `%(addr)s' not found."
+#~ msgstr "Hittade inte medlemmen '%(addr)s'."
+
+#~ msgid ""
+#~ "<li>Find members by\n"
+#~ " <a href=\"http://www.python.org/doc/current/lib/re-syntax."
+#~ "html\"\n"
+#~ " >Python regular expression</a> (<em>regexp</em>)<br>"
+#~ msgstr ""
+#~ "<li>Hitta medlemmar genom att söka med en <a href=\"http://www.python.org/"
+#~ "doc/current/lib/re-syntax.html\">Python regular expression</a> "
+#~ "(<em>regexp</em>)<br>"
+
+#~ msgid "Send welcome message to this batch?"
+#~ msgstr "skicka välkomsthälsning?"
+
+#~ msgid " no "
+#~ msgstr " nej "
+
+#~ msgid " yes "
+#~ msgstr " ja "
+
+#~ msgid "Send notifications to the list owner? "
+#~ msgstr "Skicka besked till listans ägare?"
+
+#~ msgid "Successfully Subscribed:"
+#~ msgstr "Anmälan utförd:"
+
+#~ msgid "Error Subscribing:"
+#~ msgstr "Fel under anmälan av:"
+
+#~ msgid "via the member options page"
+#~ msgstr "via medlemmens personliga sida"
+
+#~ msgid "Default options for new members joining this list."
+#~ msgstr "Standard inställningar för nya medlemmar som anmäls till listan."
+
+#~ msgid ""
+#~ "<p><b>reply_to_address</b> does not have a\n"
+#~ " valid email address! Its valid will not be changed."
+#~ msgstr ""
+#~ "<p><b>reply_to_address</b> har ingen giltig e-postadress!\n"
+#~ "Den redan giltiga adressen kommer inte att ändras."
+
+#~ msgid ""
+#~ "\n"
+#~ "NOTE: This is being deprecated since mailman has been shifted over to an\n"
+#~ " external archiver (ie, andrew kuchling's latest version of "
+#~ "pipermail.)\n"
+#~ "\n"
+#~ "This program shouldn't be attempted by people who don't understand "
+#~ "Python.\n"
+#~ "I wrote it to build archives for a few lists I'd been running for a long\n"
+#~ "time under majordomo.\n"
+#~ "\n"
+#~ "Convert majordomo digests all stored in one directory into mailbox\n"
+#~ "format. Note that the digests correct order in the dir should be\n"
+#~ "alphabetical order.\n"
+#~ "\n"
+#~ "The output file is ARCHIVE.ME in the same directory the digests are "
+#~ "in. \n"
+#~ "Run this program before you transfer the majordomo list. \n"
+#~ "\n"
+#~ "To get the output file archived, create the list under mailman, \n"
+#~ "run this script, and then do the following:\n"
+#~ "\n"
+#~ "cat ARCHIVE.ME >> ~mailman/mailman/lists/mylist/archived.mail\n"
+#~ "\n"
+#~ "You also need to adjust the variable: \n"
+#~ "NUM_LINES_TO_STRIP_FROM_TOP\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Observera: Detta är inte längre i bruk, eftersom Mailman nu använder en "
+#~ "extern\n"
+#~ " arkivering (till exempel Andrew Kuchlings sista version av "
+#~ "pipermail.)\n"
+#~ "\n"
+#~ "Personer som inte känner till Python bör inte köra detta program.\n"
+#~ "Det skrevs för att göra arkiv av några listor som jag under en period\n"
+#~ "körde under majordomo.\n"
+#~ "\n"
+#~ "Skriptet konverterar sammandrag från majordomo som är sparade i en "
+#~ "katalog,\n"
+#~ "över till mailbox-format. Observera att sammandragen bör vara sorterade "
+#~ "alfabetiskt\n"
+#~ "i katalogen.\n"
+#~ "\n"
+#~ "Filen ARCHIVE.ME upprättas i samma katalog som sammandragen ligger i.\n"
+#~ "Kör detta program innan du konverterar majordomo-listan.\n"
+#~ "\n"
+#~ "För att upprätta arkiv av denna fil, upprätta listan i Mailman, kör "
+#~ "detta\n"
+#~ "skript, och kör därefter följande kommando:\n"
+#~ "\n"
+#~ "cat ARCHIVE.ME >> ~mailman/mailman/lists/mylist/archived.mail\n"
+#~ "\n"
+#~ "Du måste också justera variabeln:\n"
+#~ "NUM_LINES_TO_STRIP_FROM_TOP\n"
+
+#~ msgid "Password (confirm):"
+#~ msgstr "Lösenord (en gång till):"
+
+#~ msgid ""
+#~ " The passwords you entered in the confirmation screen did "
+#~ "not\n"
+#~ " match, so your original subscription password will be "
+#~ "used\n"
+#~ " instead. Your password will have been generated by "
+#~ "Mailman if\n"
+#~ " you left the password fields blank. In any event, your\n"
+#~ " membership password will be sent to you in a separate\n"
+#~ " acknowledgement email.<p>"
+#~ msgstr ""
+#~ "Lösenorden som du uppgav var inte lika, så lösenorden från din "
+#~ "ursprungliga ansökan kommer att användas istället.\n"
+#~ "Lösenordet kommer att genereras av Mailman om du inte skrev in något "
+#~ "lösenord.\n"
+#~ "Oavsett vilket så kommer du att få lösenordet skickat till dig i ett "
+#~ "separat e-postbrev.<p>"
+
+#~ msgid ""
+#~ "Before adding a list-specific <tt>Reply-To:</tt> header,\n"
+#~ " should any existing <tt>Reply-To:</tt> field be stripped "
+#~ "from\n"
+#~ " the message?"
+#~ msgstr ""
+#~ "Ska existerande <tt>Reply-To:</tt> fält tas bort från meddelandehuvudet\n"
+#~ "innan ett <tt>Reply-To:</tt> fält som är knutet till listan, läggs till?"
+
+#~ msgid ""
+#~ "The attached message has been automatically discarded because the "
+#~ "sender's\n"
+#~ "address, %(sender)s, was on the discard_these_nonmembers list. For the "
+#~ "list\n"
+#~ "of auto-discard addresses, see\n"
+#~ "\n"
+#~ " %(varhelp)s\n"
+#~ msgstr ""
+#~ "Följande meddelande har automatiskt kastats eftersom avsändaradressen,\n"
+#~ "%(sender)s, fanns på discard_these_nonmembers listan. För en lista över\n"
+#~ "adresser som kastas automatiskt, se\n"
+#~ "\n"
+#~ " %(varhelp)s\n"
+
+#~ msgid "checking permissions on %(DBFILE)s"
+#~ msgstr "undersöker rättigheter på filen %(DBFILE)s"
+
+#~ msgid "nomail"
+#~ msgstr "stoppa e-postbrev"
+
+#~ msgid "<b>nomail</b> -- Is delivery to the member disabled?"
+#~ msgstr ""
+#~ "<b>stoppa e-postbrev</b> -- Stoppa distribution av e-postbrev till "
+#~ "medlemmen?"
+
+#~ msgid "General sender filters"
+#~ msgstr "Allmän filtrering på avsändaren"
+
+#~ msgid "removed"
+#~ msgstr "borttaget"
+
+#~ msgid "not "
+#~ msgstr "inte "
+
+#~ msgid "BUT: %(succeeded)s"
+#~ msgstr "MEN: %(succeeded)s"
+
+#~ msgid "%(rname)s member %(addr)s bouncing - %(negative)s%(did)s"
+#~ msgstr ""
+#~ "Adressen till %(rname)s, %(addr)s, kommer bara i retur - %(negative)s%"
+#~ "(did)s"
+
+#~ msgid "User not found."
+#~ msgstr "Medlemmen finns inte."
+
+#~ msgid "No file"
+#~ msgstr "Ingen fil"
+
+#~ msgid ""
+#~ "Policies regarding systematic processing of bounce messages,\n"
+#~ " to help automate recognition and handling of defunct\n"
+#~ " addresses."
+#~ msgstr ""
+#~ "Regler för behandling av returmeddelanden, för att automatisera\n"
+#~ " igenkänning och behandling av ogiltiga e-postadresser."
+
+#~ msgid "Try to figure out error messages automatically?"
+#~ msgstr "Försök att tolka felmeddelanden automatiskt?"
+
+#~ msgid ""
+#~ "Minimum number of days an address has been non-fatally bad\n"
+#~ " before we take action"
+#~ msgstr ""
+#~ "Minimum antal dagar innan vi gör något med en e-postadress som har haft "
+#~ "icke-kritiska fel"
+
+#~ msgid ""
+#~ "Minimum number of posts to the list since members first\n"
+#~ " bounce before we consider removing them from the list"
+#~ msgstr ""
+#~ "Minimum antal returmeddelanden som skickats till listan från en medlem, "
+#~ "innan vi överväger att ta bort medlemmen från listan"
+
+#~ msgid ""
+#~ "Maximum number of messages your list gets in an hour. (Yes,\n"
+#~ " bounce detection finds this info useful)"
+#~ msgstr ""
+#~ "Maximum antal meddelanden som kommer till listan inom loppet av en "
+#~ "timme.\n"
+#~ " (Ja, detta kan faktiskt vara användbart..)"
+
+#~ msgid "Do nothing"
+#~ msgstr "Gör ingenting"
+
+#~ msgid "Disable and notify me"
+#~ msgstr "Stoppa distribution till medlemmen och ge mig besked om det"
+
+#~ msgid "Disable and DON'T notify me"
+#~ msgstr "Stoppa distribution, men ge INTE mig något besked"
+
+#~ msgid "Remove and notify me"
+#~ msgstr "Ta bort medlemmen och ge mig besked om detta"
+
+#~ msgid "Action when critical or excessive bounces are detected."
+#~ msgstr ""
+#~ "Vad ska göras med en medlem av listan när kritiska fel med medlemmens e-"
+#~ "postadress uppstår,\n"
+#~ " eller det kommer för många returmeddelanden knutna till "
+#~ "medlemmens e-postadress?"
+
+#~ msgid "PID unreadable in: %(PIDFILE)s"
+#~ msgstr "Oläslig PID i: %(PIDFILE)s"
+
+#~ msgid "mailcmd script, list not found: %(listname)s"
+#~ msgstr "mailcmd skript, listan finns inte: %(listname)s"
diff --git a/messages/sv/README.sv b/messages/sv/README.sv
new file mode 100644
index 00000000..f74eaec5
--- /dev/null
+++ b/messages/sv/README.sv
@@ -0,0 +1,30 @@
+I allmänhet behöver du göra två saker för att lägga till översättningar
+för ett språk i Mailman. Du måste översätta meddelandekatalogen och du
+måste översätta mallarna.
+
+För att översätta meddelandekatalogen gör du en kopia av filen
+/messages/mailman.pot. Kopian döper du till mailman.po och lägger
+i underkatalogen messages/xx/LC_MESSAGES. Sen redigerar du filen och
+lägger till översättningarna för varje meddelande som finns i katalogen.
+Att ha ett bra verktyg i denna del av arbetet är en god hjälp, till exempel
+po-mode for Emacs.
+
+När du lagt till dina översättningar, kan du köra msgfmt via din .po-fil
+för att generera messages/xx/LC_MESSAGE/mailman.mo.
+
+Nästa steg är att skapa underkatalogen templates/xx och översätta alla
+filerna i templates/en/*.{html,txt}. Dessa bör du också återföra till
+Mailman-projektet.
+
+För att uppmärksamma Mailman och dina listor på det nya språket, följer du
+direktiven i avsnittet ovan.
+
+ÖVERSÄTTNINGSTIPS
+ Fråga: Hur ska bokstäver och tecken som inte ingår i ASCII-alfabetet,
+ till exempel franskans cedilj, hanteras i kataloger och mallar?
+
+ Svar: Alla meddelanden som är avsedda för att visas på webben
+ kan innehålla en begreppshänvisning i HTML när det
+ behövs. Meddelanden som är avsedda för e-post bör uttryckligen
+ använda specialtecken utanför ASCII-alfabetet. Detta gäller
+ för både meddelandekatalogen och mallarna.
diff --git a/misc/.cvsignore b/misc/.cvsignore
new file mode 100644
index 00000000..e7a13ed2
--- /dev/null
+++ b/misc/.cvsignore
@@ -0,0 +1,3 @@
+Makefile
+paths.py
+mailman
diff --git a/misc/JapaneseCodecs-1.4.9.tar.gz b/misc/JapaneseCodecs-1.4.9.tar.gz
new file mode 100644
index 00000000..c119a3d5
--- /dev/null
+++ b/misc/JapaneseCodecs-1.4.9.tar.gz
Binary files differ
diff --git a/misc/KoreanCodecs-2.0.5.tar.gz b/misc/KoreanCodecs-2.0.5.tar.gz
new file mode 100644
index 00000000..77edebdc
--- /dev/null
+++ b/misc/KoreanCodecs-2.0.5.tar.gz
Binary files differ
diff --git a/misc/Makefile.in b/misc/Makefile.in
new file mode 100644
index 00000000..bf2a0859
--- /dev/null
+++ b/misc/Makefile.in
@@ -0,0 +1,99 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# NOTE: Makefile.in is converted into Makefile by the configure script
+# in the parent directory. Once configure has run, you can recreate
+# the Makefile by running just config.status.
+
+# Variables set by configure
+
+VPATH= @srcdir@
+srcdir= @srcdir@
+bindir= @bindir@
+prefix= @prefix@
+exec_prefix= @exec_prefix@
+var_prefix= @VAR_PREFIX@
+
+CC= @CC@
+CHMOD= @CHMOD@
+INSTALL= @INSTALL@
+PYTHON= @PYTHON@
+
+DEFS= @DEFS@
+
+# Customizable but not set by configure
+
+OPT= @OPT@
+CFLAGS= $(OPT) $(DEFS)
+PACKAGEDIR= $(prefix)/Mailman
+DATADIR= $(var_prefix)/data
+ICONDIR= $(prefix)/icons
+SCRIPTSDIR= $(prefix)/scripts
+
+SHELL= /bin/sh
+PYTHONLIBDIR= $(prefix)/pythonlib
+SETUPINSTOPTS= --install-lib $(PYTHONLIBDIR) \
+ --install-purelib $(PYTHONLIBDIR) \
+ --install-data $(PYTHONLIBDIR)
+SETUPCMD= setup.py --quiet install $(SETUPINSTOPTS)
+
+EMAILPKG= email-2.4.3
+JACODECSPKG= JapaneseCodecs-1.4.9
+KOCODECSPKG= KoreanCodecs-2.0.5
+
+PACKAGES= $(EMAILPKG) $(JACODECSPKG) $(KOCODECSPKG)
+
+# Modes for directories and executables created by the install
+# process. Default to group-writable directories but
+# user-only-writable for executables.
+DIRMODE= 775
+EXEMODE= 755
+FILEMODE= 644
+DATAMODE= 664
+INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
+
+PATHSDIRS= bin cron scripts tests
+ICONS= $(srcdir)/*.jpg $(srcdir)/*.png
+
+# Rules
+
+all:
+
+install: install-other install-packages
+
+install-other:
+ $(INSTALL) -m $(FILEMODE) $(ICONS) $(ICONDIR)
+ for d in $(PATHSDIRS); \
+ do \
+ dir=$(prefix)/$$d; \
+ $(INSTALL) -m $(FILEMODE) paths.py $$dir; \
+ done
+ $(INSTALL) -m $(EXEMODE) mailman $(SCRIPTSDIR)
+
+install-packages:
+ for p in $(PACKAGES); \
+ do \
+ gunzip -c $(srcdir)/$$p.tar.gz | tar xf -; \
+ (cd $$p ; umask 02 ; PYTHONPATH=$(PYTHONLIBDIR) $(PYTHON) $(SETUPCMD)); \
+ done
+
+finish:
+
+clean:
+
+distclean:
+ -rm Makefile paths.py mailman
+ -rm -rf $(PACKAGES)
diff --git a/misc/PythonPowered.png b/misc/PythonPowered.png
new file mode 100644
index 00000000..2e9d99c2
--- /dev/null
+++ b/misc/PythonPowered.png
Binary files differ
diff --git a/misc/email-2.4.3.tar.gz b/misc/email-2.4.3.tar.gz
new file mode 100644
index 00000000..0a971b07
--- /dev/null
+++ b/misc/email-2.4.3.tar.gz
Binary files differ
diff --git a/misc/gnu-head-tiny.jpg b/misc/gnu-head-tiny.jpg
new file mode 100644
index 00000000..441be50d
--- /dev/null
+++ b/misc/gnu-head-tiny.jpg
Binary files differ
diff --git a/misc/mailman-large.jpg b/misc/mailman-large.jpg
new file mode 100644
index 00000000..e184f3c6
--- /dev/null
+++ b/misc/mailman-large.jpg
Binary files differ
diff --git a/misc/mailman.in b/misc/mailman.in
new file mode 100644
index 00000000..458e4f24
--- /dev/null
+++ b/misc/mailman.in
@@ -0,0 +1,54 @@
+#!/bin/sh
+#
+# mailman This shell script that starts and stops GNU Mailman.
+#
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# Copy this file to /etc/init.d/ (or /etc/rc.d/init.d/ depending on
+# your system) and activate it as such:
+#
+# On Debian, type "update-rc.d mailman defaults"
+# On RedHat, and derivatives, install with "chkconfig --add mailman"
+#
+# chkconfig: 2345 98 12
+# description: Mailman is the GNU Mailing List Manager, a program that \
+# manages electronic mail discussion groups. For more \
+# on GNU Mailman see http://www.list.org
+# processname: mailmanctl
+# config: @prefix@/Mailman/mm_cfg.py
+# pidfile: @prefix@/data/qrunner.pid
+
+PYTHON=@PYTHON@
+MAILMANHOME=@prefix@
+MAILMANCTL=$MAILMANHOME/bin/mailmanctl
+
+case "$1" in
+'start')
+ #rm -f $MAILMANHOME/locks/*
+ $PYTHON $MAILMANCTL -s -q start
+ ;;
+
+'stop')
+ $PYTHON $MAILMANCTL -q stop
+ ;;
+
+'restart')
+ $PYTHON $MAILMANCTL -q restart
+ ;;
+
+esac
+exit 0
diff --git a/misc/mailman.jpg b/misc/mailman.jpg
new file mode 100644
index 00000000..94a4c011
--- /dev/null
+++ b/misc/mailman.jpg
Binary files differ
diff --git a/misc/mm-icon.png b/misc/mm-icon.png
new file mode 100644
index 00000000..42c3cf75
--- /dev/null
+++ b/misc/mm-icon.png
Binary files differ
diff --git a/misc/paths.py.in b/misc/paths.py.in
new file mode 100644
index 00000000..18451ac8
--- /dev/null
+++ b/misc/paths.py.in
@@ -0,0 +1,60 @@
+# -*- python -*-
+
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# This file becomes paths.py which is installed in may directories. By
+# importing this module, sys.path gets `hacked' so that the $prefix/Mailman
+# directory is inserted at the start of that list. That directory really
+# contains the Mailman modules in package form. This file exports two
+# attributes that other modules may use to get the absolute path to the
+# installed Mailman distribution.
+
+import sys
+import os
+
+# some scripts expect this attribute to be in this module
+prefix = '@prefix@'
+exec_prefix = '@exec_prefix@'
+
+# work around a bogus autoconf 2.12 bug
+if exec_prefix == '${prefix}':
+ exec_prefix = prefix
+
+# Hack the path to include the parent directory of the $prefix/Mailman package
+# directory.
+sys.path.insert(0, prefix)
+
+# We also need the pythonlib directory on the path to pick up any overrides of
+# standard modules and packages. Note that these must go at the front of the
+# path for this reason.
+sys.path.insert(0, os.path.join(prefix, 'pythonlib'))
+
+# Include Python's site-packages directory.
+sitedir = os.path.join(sys.prefix, 'lib', 'python'+sys.version[:3],
+ 'site-packages')
+sys.path.append(sitedir)
+
+
+# In a normal interactive Python environment, the japanese.pth and korean.pth
+# files would be imported automatically. But because we inhibit the importing
+# of the site module, we need to be explicit about importing these codecs.
+import japanese
+# As of KoreanCodecs 2.0.5, you had to do the second import to get the Korean
+# codecs installed, however leave the first import in there in case an upgrade
+# changes this.
+import korean
+import korean.aliases
diff --git a/mkinstalldirs b/mkinstalldirs
new file mode 100755
index 00000000..845ebffd
--- /dev/null
+++ b/mkinstalldirs
@@ -0,0 +1,40 @@
+#! /bin/sh
+# mkinstalldirs --- make directory hierarchy
+# Author: Noah Friedman <friedman@prep.ai.mit.edu>
+# Created: 1993-05-16
+# Public domain
+
+# $Id: mkinstalldirs 2858 2000-12-07 16:53:23Z bwarsaw $
+
+errstatus=0
+
+for file
+do
+ set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
+ shift
+
+ pathcomp=
+ for d
+ do
+ pathcomp="$pathcomp$d"
+ case "$pathcomp" in
+ -* ) pathcomp=./$pathcomp ;;
+ esac
+
+ if test ! -d "$pathcomp"; then
+ echo "mkdir $pathcomp" 1>&2
+
+ mkdir "$pathcomp" || lasterr=$?
+
+ if test ! -d "$pathcomp"; then
+ errstatus=$lasterr
+ fi
+ fi
+
+ pathcomp="$pathcomp/"
+ done
+done
+
+exit $errstatus
+
+# mkinstalldirs ends here
diff --git a/scripts/.cvsignore b/scripts/.cvsignore
new file mode 100644
index 00000000..f3c7a7c5
--- /dev/null
+++ b/scripts/.cvsignore
@@ -0,0 +1 @@
+Makefile
diff --git a/scripts/Makefile.in b/scripts/Makefile.in
new file mode 100644
index 00000000..c3971066
--- /dev/null
+++ b/scripts/Makefile.in
@@ -0,0 +1,75 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# NOTE: Makefile.in is converted into Makefile by the configure script
+# in the parent directory. Once configure has run, you can recreate
+# the Makefile by running just config.status.
+
+# Variables set by configure
+
+VPATH= @srcdir@
+srcdir= @srcdir@
+bindir= @bindir@
+prefix= @prefix@
+exec_prefix= @exec_prefix@
+
+CC= @CC@
+CHMOD= @CHMOD@
+INSTALL= @INSTALL@
+
+DEFS= @DEFS@
+
+# Customizable but not set by configure
+
+OPT= @OPT@
+CFLAGS= $(OPT) $(DEFS)
+SCRIPTSDIR= $(prefix)/scripts
+
+SHELL= /bin/sh
+
+# Note that `admin' is a backwards compatible alias for `bounces'
+# 'subscribe' is an alias for join
+# 'unsubscribe' is an alias for leave
+SCRIPTS= bounces confirm driver join leave owner post request
+
+# Modes for directories and executables created by the install
+# process. Default to group-writable directories but
+# user-only-writable for executables.
+DIRMODE= 775
+EXEMODE= 755
+FILEMODE= 644
+INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
+
+
+# Rules
+
+all:
+
+install:
+ for f in $(SCRIPTS); \
+ do \
+ $(INSTALL) -m $(FILEMODE) $(srcdir)/$$f $(SCRIPTSDIR); \
+ done
+ $(INSTALL) -m $(FILEMODE) $(srcdir)/bounces $(SCRIPTSDIR)/admin
+ $(INSTALL) -m $(FILEMODE) $(srcdir)/join $(SCRIPTSDIR)/subscribe
+ $(INSTALL) -m $(FILEMODE) $(srcdir)/leave $(SCRIPTSDIR)/unsubscribe
+
+finish:
+
+clean:
+
+distclean:
+ -rm Makefile
diff --git a/scripts/bounces b/scripts/bounces
new file mode 100644
index 00000000..b93c6d60
--- /dev/null
+++ b/scripts/bounces
@@ -0,0 +1,61 @@
+# -*- python -*-
+#
+# Copyright (C) 2001 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Process VERP'd bounces.
+
+Called by the wrapper, stdin is the mail message, and argv[1] is the name
+of the target mailing list.
+
+Errors are redirected to logs/errors.
+"""
+
+import sys
+
+import paths
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman.i18n import _
+from Mailman.Queue.sbcache import get_switchboard
+from Mailman.Logging.Utils import LogStdErr
+
+LogStdErr('error', 'bounces')
+
+
+
+def main():
+ try:
+ listname = sys.argv[1]
+ except IndexError:
+ print >> sys.stderr, _('bounces script got no listname.')
+ sys.exit(1)
+ # Make sure the list exists
+ if not Utils.list_exists(listname):
+ print >> sys.stderr, _('bounces script, list not found: %(listname)s')
+ sys.exit(1)
+ # Immediately queue the message for the bounces qrunner to process. The
+ # advantage to this approach is that messages should never get lost --
+ # some MTAs have a hard limit to the time a filter prog can run. Postfix
+ # is a good example; if the limit is hit, the proc is SIGKILL'd giving us
+ # no chance to save the message.
+ bounceq = get_switchboard(mm_cfg.BOUNCEQUEUE_DIR)
+ bounceq.enqueue(sys.stdin.read(), listname=listname, _plaintext=1)
+
+
+
+if __name__ == '__main__':
+ main()
diff --git a/scripts/confirm b/scripts/confirm
new file mode 100755
index 00000000..653940ae
--- /dev/null
+++ b/scripts/confirm
@@ -0,0 +1,62 @@
+# -*- python -*-
+#
+# Copyright (C) 2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Simple confirm via VERP-ish sender.
+
+Called by the wrapper, stdin is the mail message, and argv[1] is the name
+of the target mailing list.
+
+Errors are redirected to logs/errors.
+"""
+
+import sys
+
+import paths
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman.i18n import _
+from Mailman.Queue.sbcache import get_switchboard
+from Mailman.Logging.Utils import LogStdErr
+
+LogStdErr('error', 'confirm')
+
+
+
+def main():
+ try:
+ listname = sys.argv[1]
+ except IndexError:
+ print >> sys.stderr, _('confirm script got no listname.')
+ sys.exit(1)
+ # Make sure the list exists
+ if not Utils.list_exists(listname):
+ print >> sys.stderr, _('confirm script, list not found: %(listname)s')
+ sys.exit(1)
+ # Immediately queue the message for the bounce/cmd qrunner to process.
+ # The advantage to this approach is that messages should never get lost --
+ # some MTAs have a hard limit to the time a filter prog can run. Postfix
+ # is a good example; if the limit is hit, the proc is SIGKILL'd giving us
+ # no chance to save the message.
+ cmdq = get_switchboard(mm_cfg.CMDQUEUE_DIR)
+ cmdq.enqueue(sys.stdin.read(), listname=listname, toconfirm=1,
+ _plaintext=1)
+
+
+
+if __name__ == '__main__':
+ main()
diff --git a/scripts/driver b/scripts/driver
new file mode 100644
index 00000000..60c8c79e
--- /dev/null
+++ b/scripts/driver
@@ -0,0 +1,243 @@
+# -*- python -*-
+
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# This better succeed. If this fails, Python is royally screwed so we might
+# as well let the Web server give us a fatal and obtrusive error.
+import sys
+
+# From here on we are as bulletproof as possible!
+
+# The driver script prints out a lot of information when a Mailman bug is
+# encountered. This really helps for development, but it also reveals
+# information about the host system that some administrators are not
+# comfortable with. By setting STEALTH_MODE to 1, you disable the printing of
+# this information to the web pages. This information is still, and always,
+# printed in the error logs.
+STEALTH_MODE = 0
+
+
+
+# This standard driver script is used to run CGI programs, wrapped in code
+# that catches errors, and displays them as HTML. This guarantees that
+# (almost) any problem in the Mailman software doesn't result in a Web server
+# error. It is much more helpful to generate and show a traceback, which the
+# user could send to the administrator, than to display a server error and
+# have to trudge through server logs.
+
+# Note: this isn't 100% perfect! Here are some things that can go wrong that
+# are not caught and reported as traceback-containing HTML:
+#
+# - This file could contain a syntax error. In that case, you would indeed
+# get a Web server error since this file wouldn't even compile, and there's
+# no way to catch that. Mailman's install procedure should make this highly
+# unlikely.
+#
+# - The sys module could be royally screwed, probably we couldn't import it.
+# This would indicate a serious problem with the Python installation, so
+# it's also highly unlikely to occur.
+
+
+def run_main():
+ # These will ensure that even if something between now and the
+ # creation of the real logger below fails, we can still get
+ # *something* meaningful.
+ logger = None
+ try:
+ import paths
+ # Map stderr to a logger, if possible.
+ from Mailman.Logging.StampedLogger import StampedLogger
+ logger = StampedLogger('error',
+ label='admin',
+ manual_reprime=1,
+ nofail=0,
+ immediate=1)
+ # Collect stdout in a cStringIO so that if /any/ errors occur during
+ # printing it won't mess up our diagnostics page.
+ from cStringIO import StringIO
+ tempstdout = StringIO()
+ # The name of the module to run is passed in argv[1]. What we
+ # actually do is import the module named by argv[1] that lives in the
+ # Mailman.Cgi package. That module must have a main() function, which
+ # we dig out and call.
+ scriptname = sys.argv[1]
+ # See the reference manual for why we have to do things this way.
+ # Note that importing should have no side-effects!
+ pkg = __import__('Mailman.Cgi', globals(), locals(), [scriptname])
+ module = getattr(pkg, scriptname)
+ main = getattr(module, 'main')
+ try:
+ try:
+ sys.stderr = logger
+ sys.stdout = tempstdout
+ main()
+ sys.__stdout__.write(tempstdout.getvalue())
+ finally:
+ sys.stderr = sys.__stderr__
+ sys.stdout = sys.__stdout__
+ except SystemExit:
+ # This is a valid way for the function to exit.
+ pass
+ except:
+ print_traceback(logger)
+ print_environment(logger)
+
+
+
+# We are printing error reporting to two places. One will always be stdout
+# and the other will always be the log file. It is assumed that stdout is an
+# HTML sink and the log file is a plain text sink.
+
+def print_traceback(logfp=None):
+ if logfp is None:
+ logfp = sys.__stderr__
+
+ try:
+ import traceback
+ except ImportError:
+ traceback = None
+ try:
+ from Mailman.mm_cfg import VERSION
+ except ImportError:
+ VERSION = '&lt;undetermined&gt;'
+
+ # Write to the log file first.
+ print >> logfp, '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'
+ print >> logfp, '[----- Mailman Version: %s -----]' % VERSION
+ print >> logfp, '[----- Traceback ------]'
+ if traceback:
+ traceback.print_exc(file=logfp)
+ else:
+ print >> logfp, '[failed to import module traceback]'
+ print >> logfp, '[exc: %s, var: %s]' % sys.exc_info()[0:2]
+
+ # Write to the HTML sink.
+ print """\
+Content-type: text/html
+
+<head><title>Bug in Mailman version %(VERSION)s</title></head>
+<body bgcolor=#ffffff><h2>Bug in Mailman version %(VERSION)s</h2>
+<p><h3>We're sorry, we hit a bug!</h3>
+""" % locals()
+ if not STEALTH_MODE:
+ print '''<p>If you would like to help us identify the problem,
+please email a copy of this page to the webmaster for this site with
+a description of what happened. Thanks!
+
+<h4>Traceback:</h4><p><pre>'''
+ if traceback:
+ traceback.print_exc(file=sys.stdout)
+ else:
+ print '[failed to import module traceback]'
+ print '[exc: %s, var: %s]' % sys.exc_info()[0:2]
+ print '\n\n</pre></body>'
+ else:
+ print '''<p>Please inform the webmaster for this site of this
+problem. Printing of traceback and other system information has been
+explicitly inhibited, but the webmaster can find this information in the
+Mailman error logs.'''
+
+
+
+def print_environment(logfp=None):
+ if logfp is None:
+ logfp = sys.__stderr__
+
+ try:
+ import os
+ except ImportError:
+ os = None
+
+ # Write some information about our Python executable to the log file.
+ print >> logfp, '[----- Python Information -----]'
+ print >> logfp, 'sys.version =', sys.version
+ print >> logfp, 'sys.executable =', sys.executable
+ print >> logfp, 'sys.prefix =', sys.prefix
+ print >> logfp, 'sys.exec_prefix =', sys.exec_prefix
+ print >> logfp, 'sys.path =', sys.exec_prefix
+ print >> logfp, 'sys.platform =', sys.platform
+
+ # Write the same information to the HTML sink.
+ if not STEALTH_MODE:
+ print '''\
+<p><hr><h4>Python information:</h4>
+
+<p><table>
+<tr><th>Variable</th><th>Value</th></tr>
+'''
+ print '<tr><td><tt>sys.version</tt></td><td>', \
+ sys.version, '</td></tr>'
+ print '<tr><td><tt>sys.executable</tt></td><td>', \
+ sys.executable, '</td></tr>'
+ print '<tr><td><tt>sys.prefix</tt></td><td>', sys.prefix, '</td></tr>'
+ print '<tr><td><tt>sys.exec_prefix</tt></td><td>', \
+ sys.exec_prefix, '</td></tr>'
+ # what else?
+ print '<tr><td><tt>sys.path</tt></td><td>', \
+ sys.exec_prefix, '</td></tr>'
+ print '<tr><td><tt>sys.platform</tt></td><td>', \
+ sys.platform, '</td></tr>'
+ print '</table>'
+
+ # Write environment variables to the log file.
+ print >> logfp, '[----- Environment Variables -----]'
+ if os:
+ for k, v in os.environ.items():
+ print >> logfp, '\t%s: %s' % (k, v)
+ else:
+ print >> logfp, '[failed to import module os]'
+
+ # Write environment variables to the HTML sink.
+ if not STEALTH_MODE:
+ print '''\
+<p><hr><h4>Environment variables:</h4>
+
+<p><table>
+<tr><th>Variable</th><th>Value</th></tr>
+'''
+ if os:
+ for k, v in os.environ.items():
+ print '<tr><td><tt>', k, '</tt></td><td>', v, '</td></tr>'
+ print '</table>'
+ else:
+ print '<p><hr>[failed to import module os]'
+
+
+
+try:
+ run_main()
+except:
+ # Some exception percolated all the way back up to the top. This
+ # generally shouldn't happen because the run_main() call is similarly
+ # wrapped, but just in case, we'll give it one last ditch effort to report
+ # problems to *somebody*. Most likely this will end up in the Web server
+ # log file.
+ try:
+ print_traceback()
+ print_environment()
+ except:
+ # Nope, we're quite screwed
+ print """\
+Content-type: text/html
+
+<p><h3>We're sorry, we hit a bug!</h3>
+
+Mailman experienced a very low level failure and could not even generate a
+useful traceback for you. Please report this to the Mailman administrator at
+this site.
+"""
+ print >> sys.__stderr__, '[Mailman: low level unrecoverable exception]'
diff --git a/scripts/join b/scripts/join
new file mode 100755
index 00000000..77ca506b
--- /dev/null
+++ b/scripts/join
@@ -0,0 +1,61 @@
+# -*- python -*-
+#
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Simple join-a-list email address.
+
+Called by the wrapper, stdin is the mail message, and argv[1] is the name
+of the target mailing list.
+
+Errors are redirected to logs/errors.
+"""
+
+import sys
+
+import paths
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman.i18n import _
+from Mailman.Queue.sbcache import get_switchboard
+from Mailman.Logging.Utils import LogStdErr
+
+LogStdErr('error', 'join')
+
+
+
+def main():
+ try:
+ listname = sys.argv[1]
+ except IndexError:
+ print >> sys.stderr, _('join script got no listname.')
+ sys.exit(1)
+ # Make sure the list exists
+ if not Utils.list_exists(listname):
+ print >> sys.stderr, _('join script, list not found: %(listname)s')
+ sys.exit(1)
+ # Immediately queue the message for the bounce/cmd qrunner to process.
+ # The advantage to this approach is that messages should never get lost --
+ # some MTAs have a hard limit to the time a filter prog can run. Postfix
+ # is a good example; if the limit is hit, the proc is SIGKILL'd giving us
+ # no chance to save the message.
+ cmdq = get_switchboard(mm_cfg.CMDQUEUE_DIR)
+ cmdq.enqueue(sys.stdin.read(), listname=listname, tojoin=1, _plaintext=1)
+
+
+
+if __name__ == '__main__':
+ main()
diff --git a/scripts/leave b/scripts/leave
new file mode 100755
index 00000000..d7419e1a
--- /dev/null
+++ b/scripts/leave
@@ -0,0 +1,61 @@
+# -*- python -*-
+#
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Simple leave-a-list email address.
+
+Called by the wrapper, stdin is the mail message, and argv[1] is the name
+of the target mailing list.
+
+Errors are redirected to logs/errors.
+"""
+
+import sys
+
+import paths
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman.i18n import _
+from Mailman.Queue.sbcache import get_switchboard
+from Mailman.Logging.Utils import LogStdErr
+
+LogStdErr('error', 'leave')
+
+
+
+def main():
+ try:
+ listname = sys.argv[1]
+ except IndexError:
+ print >> sys.stderr, _('leave script got no listname.')
+ sys.exit(1)
+ # Make sure the list exists
+ if not Utils.list_exists(listname):
+ print >> sys.stderr, _('leave script, list not found: %(listname)s')
+ sys.exit(1)
+ # Immediately queue the message for the bounce/cmd qrunner to process.
+ # The advantage to this approach is that messages should never get lost --
+ # some MTAs have a hard limit to the time a filter prog can run. Postfix
+ # is a good example; if the limit is hit, the proc is SIGKILL'd giving us
+ # no chance to save the message.
+ cmdq = get_switchboard(mm_cfg.CMDQUEUE_DIR)
+ cmdq.enqueue(sys.stdin.read(), listname=listname, toleave=1, _plaintext=1)
+
+
+
+if __name__ == '__main__':
+ main()
diff --git a/scripts/owner b/scripts/owner
new file mode 100755
index 00000000..947c74c9
--- /dev/null
+++ b/scripts/owner
@@ -0,0 +1,67 @@
+# -*- python -*-
+#
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Send a message to the mailing list owner.
+
+All messages to a list's -owner address should be piped through this script.
+The -owner address is defined to be delivered directly to the list owners plus
+the list moderators, with no intervention for bounce processing.
+
+Stdin is the mail message, and argv[1] is the name of the target mailing list.
+"""
+
+import sys
+
+import paths
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman.i18n import _
+from Mailman.Queue.sbcache import get_switchboard
+from Mailman.Logging.Utils import LogStdErr
+
+LogStdErr('error', 'mailowner')
+
+
+
+def main():
+ try:
+ listname = sys.argv[1]
+ except IndexError:
+ print >> sys.stderr, _('mailowner got no listname.')
+ sys.exit(1)
+ # Make sure the list exists
+ if not Utils.list_exists(listname):
+ print >> sys.stderr, _(
+ 'mailowner script, list not found: %(listname)s')
+ sys.exit(1)
+ # Queue the message for the owners. We will send them through the
+ # incoming queue because we need some processing done on the message. The
+ # processing is minimal though, so craft our own pipeline, expressly for
+ # the purpose of delivering to the list owners.
+ inq = get_switchboard(mm_cfg.INQUEUE_DIR)
+ inq.enqueue(sys.stdin.read(),
+ listname=listname,
+ _plaintext=1,
+ envsender=Utils.get_site_email(extra='bounces'),
+ pipeline=mm_cfg.OWNER_PIPELINE,
+ toowner=1)
+
+
+
+if __name__ == '__main__':
+ main()
diff --git a/scripts/post b/scripts/post
new file mode 100755
index 00000000..5dde0639
--- /dev/null
+++ b/scripts/post
@@ -0,0 +1,69 @@
+# -*- python -*-
+#
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Accept posts to a list and handle them properly.
+
+The main advertised address for a list should be filtered to this program,
+through the mail wrapper. E.g. for list `test@yourdomain.com', the `test'
+alias would deliver to this script.
+
+Stdin is the mail message, and argv[1] is the name of the target mailing list.
+
+"""
+
+import sys
+
+import paths
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman.i18n import _
+from Mailman.Queue.sbcache import get_switchboard
+from Mailman.Logging.Utils import LogStdErr
+
+LogStdErr("error", "post")
+
+
+
+def main():
+ # TBD: If you've configured your list or aliases so poorly as to get
+ # either of these first two errors, there's little that can be done to
+ # save your messages. They will be lost. Minimal testing of new lists
+ # should avoid either of these problems.
+ try:
+ listname = sys.argv[1]
+ except IndexError:
+ print >> sys.stderr, _('post script got no listname.')
+ sys.exit(1)
+ # Make sure the list exists
+ if not Utils.list_exists(listname):
+ print >> sys.stderr, _('post script, list not found: %(listname)s')
+ sys.exit(1)
+ # Immediately queue the message for the incoming qrunner to process. The
+ # advantage to this approach is that messages should never get lost --
+ # some MTAs have a hard limit to the time a filter prog can run. Postfix
+ # is a good example; if the limit is hit, the proc is SIGKILL'd giving us
+ # no chance to save the message.
+ inq = get_switchboard(mm_cfg.INQUEUE_DIR)
+ inq.enqueue(sys.stdin.read(),
+ listname=listname,
+ tolist=1, _plaintext=1)
+
+
+
+if __name__ == '__main__':
+ main()
diff --git a/scripts/request b/scripts/request
new file mode 100755
index 00000000..a55577f0
--- /dev/null
+++ b/scripts/request
@@ -0,0 +1,64 @@
+# -*- python -*-
+#
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Process emailed commands.
+
+Called by the wrapper, stdin is the mail message, and argv[1] is the name
+of the target mailing list.
+
+Errors are redirected to logs/errors.
+"""
+
+import sys
+
+import paths
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman.i18n import _
+from Mailman.Queue.sbcache import get_switchboard
+from Mailman.Logging.Utils import LogStdErr
+
+LogStdErr('error', 'mailcmd')
+
+
+
+def main():
+ try:
+ listname = sys.argv[1]
+ except IndexError:
+ print >> sys.stderr, _('mailcmd script got no listname.')
+ sys.exit(1)
+ # Make sure the list exists
+ if not Utils.list_exists(listname):
+ print >> sys.stderr, _('mailcmd script, list not found: %(listname)s')
+ sys.exit(1)
+ # Immediately queue the message for the bounce/cmd qrunner to process.
+ # The advantage to this approach is that messages should never get lost --
+ # some MTAs have a hard limit to the time a filter prog can run. Postfix
+ # is a good example; if the limit is hit, the proc is SIGKILL'd giving us
+ # no chance to save the message.
+ cmdq = get_switchboard(mm_cfg.CMDQUEUE_DIR)
+ cmdq.enqueue(sys.stdin.read(),
+ listname=listname,
+ torequest=1,
+ _plaintext=1)
+
+
+
+if __name__ == '__main__':
+ main()
diff --git a/src/.cvsignore b/src/.cvsignore
new file mode 100644
index 00000000..34054773
--- /dev/null
+++ b/src/.cvsignore
@@ -0,0 +1,15 @@
+Makefile
+admin
+admindb
+archives
+confirm
+create
+edithtml
+handle_opts
+listinfo
+mailman
+options
+private
+rmlist
+roster
+subscribe
diff --git a/src/Makefile.in b/src/Makefile.in
new file mode 100644
index 00000000..05e144f2
--- /dev/null
+++ b/src/Makefile.in
@@ -0,0 +1,133 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# NOTE: Makefile.in is converted into Makefile by the configure script
+# in the parent directory. Once configure has run, you can recreate
+# the Makefile by running just config.status.
+
+# Variables set by configure
+
+prefix= @prefix@
+exec_prefix= @exec_prefix@
+VPATH= @srcdir@
+srcdir= @srcdir@
+bindir= @bindir@
+
+CC= @CC@
+CHMOD= @CHMOD@
+INSTALL= @INSTALL@
+PYTHON= @PYTHON@
+
+DEFS= @DEFS@
+LIBS= @LIBS@
+
+# user and group ids/names
+MAIL_GROUP= @MAIL_GROUP@
+CGI_GROUP= @CGI_GROUP@
+MAILMAN_USER= @MAILMAN_USER@
+
+# Customizable but not set by configure
+OPT= @OPT@
+CFLAGS= @CFLAGS@ $(OPT) $(DEFS) $(LIBS)
+CGIDIR= $(exec_prefix)/cgi-bin
+CGIEXT= @CGIEXT@
+MAILDIR= $(exec_prefix)/mail
+
+SHELL= /bin/sh
+
+MAIL_FLAGS= -DMAIL_GROUP="\"$(MAIL_GROUP)\""
+
+CGI_FLAGS= -DCGI_GROUP="\"$(CGI_GROUP)\""
+
+HELPFUL= -DHELPFUL
+
+COMMON_FLAGS= -DPREFIX="\"$(prefix)\"" \
+ -DPYTHON="\"$(PYTHON)\"" \
+ $(HELPFUL)
+
+
+# Modes for directories and executables created by the install
+# process. Default to group-writable directories but
+# user-only-writable for executables.
+DIRMODE= 775
+EXEMODE= 755
+INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
+DIRSETGID= chmod g+s
+
+# Fixed definitions
+
+CGI_PROGS= admindb admin confirm create edithtml listinfo options \
+ private rmlist roster subscribe
+
+COMMONOBJS= common.o vsnprintf.o
+
+MAIL_PROGS= mailman
+
+#ALIAS_PROGS= addaliases
+
+SUID_CGI_PROGS= private
+
+SUID_MAIL_PROGS=
+
+PROGRAMS= $(CGI_PROGS) $(MAIL_PROGS) $(ALIAS_PROGS)
+
+
+# Rules
+
+all: $(PROGRAMS)
+
+mailman: $(srcdir)/mail-wrapper.c $(COMMONOBJS)
+ $(CC) -I. $(MAIL_FLAGS) $(CFLAGS) $(COMMONOBJS) -o $@ $(srcdir)/mail-wrapper.c
+
+#addaliases: $(srcdir)/alias-wrapper.c $(COMMONOBJS)
+# $(CC) -I. $(ALIAS_FLAGS) $(CFLAGS) -o $@ $(srcdir)/alias-wrapper.c
+
+$(CGI_PROGS): $(srcdir)/cgi-wrapper.c $(COMMONOBJS)
+ $(CC) -DSCRIPT="\"$@\"" -I. $(CGI_FLAGS) $(CFLAGS) $(COMMONOBJS) -o $@ $(srcdir)/cgi-wrapper.c
+
+common.o: $(srcdir)/common.c $(srcdir)/common.h Makefile
+ $(CC) -c -I. $(COMMON_FLAGS) $(CFLAGS) $(srcdir)/common.c
+
+vsnprintf.o: $(srcdir)/vsnprintf.c Makefile
+ $(CC) -c -I. $(COMMON_FLAGS) $(CFLAGS) $(srcdir)/vsnprintf.c
+
+install: all
+ for f in $(CGI_PROGS); \
+ do \
+ exe=$(CGIDIR)/$$f$(CGIEXT); \
+ $(INSTALL_PROGRAM) $$f $$exe; \
+ $(DIRSETGID) $$exe; \
+ done
+ for f in $(MAIL_PROGS); \
+ do \
+ $(INSTALL_PROGRAM) $$f $(MAILDIR); \
+ $(DIRSETGID) $(MAILDIR)/$$f; \
+ done
+
+finish:
+ -for f in $(SUID_CGI_PROGS); \
+ do \
+ exe=$(CGIDIR)/$$f$(CGIEXT); \
+ chmod u+s $$exe; \
+ chown $(MAILMAN_USER) $$exe; \
+ done
+
+clean:
+ -@rm *.o
+ -@rm -f $(PROGRAMS)
+
+distclean: clean
+ -@rm Makefile
diff --git a/src/cgi-wrapper.c b/src/cgi-wrapper.c
new file mode 100644
index 00000000..351d4e1e
--- /dev/null
+++ b/src/cgi-wrapper.c
@@ -0,0 +1,68 @@
+/* cgi-wrapper.c --- Generic wrapper that will take info from a environment
+ * variable, and pass it to two commands.
+ *
+ * Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ */
+
+#include "common.h"
+
+/* passed in by configure */
+#define SCRIPTNAME SCRIPT
+#define LOG_IDENT "Mailman cgi-wrapper (" SCRIPT ")"
+
+/* Group name that CGI scripts run as. See your web server's documentation
+ * for details.
+ */
+#define LEGAL_PARENT_GROUP CGI_GROUP
+
+const char* logident = LOG_IDENT;
+char* script = SCRIPTNAME;
+const char* parentgroup = LEGAL_PARENT_GROUP;
+
+
+int
+main(int argc, char** argv, char** env)
+{
+ int status;
+ char* fake_argv[3];
+
+ running_as_cgi = 1;
+ check_caller(logident, parentgroup);
+
+ /* For these CGI programs, we can ignore argc and argv since they
+ * don't contain anything useful. `script' will always be the driver
+ * program and argv will always just contain the name of the real
+ * script for the driver to import and execute (padded with two dummy
+ * values in argv[0] and argv[1] that are ignored by run_script().
+ */
+ fake_argv[0] = NULL;
+ fake_argv[1] = NULL;
+ fake_argv[2] = script;
+
+ status = run_script("driver", 3, fake_argv, env);
+ fatal(logident, status, "%s", strerror(errno));
+ return status;
+}
+
+
+
+/*
+ * Local Variables:
+ * c-file-style: "python"
+ * End:
+ */
diff --git a/src/common.c b/src/common.c
new file mode 100644
index 00000000..cde8064c
--- /dev/null
+++ b/src/common.c
@@ -0,0 +1,299 @@
+/* common.c --- Common routines, constants, etc. Used by all the wrappers.
+ *
+ * Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include "common.h"
+
+/* Passed in by configure. */
+#define SCRIPTDIR PREFIX "/scripts/" /* trailing slash */
+#define MODULEDIR PREFIX /* no trailing slash */
+
+const char* scriptdir = SCRIPTDIR;
+const char* moduledir = MODULEDIR;
+char* python = PYTHON;
+
+/* Global variable used as a flag */
+int running_as_cgi = 0;
+
+
+
+/* Some older systems don't define strerror(). Provide a replacement that is
+ * good enough for our purposes.
+ */
+#ifndef HAVE_STRERROR
+
+extern char *sys_errlist[];
+extern int sys_nerr;
+
+char* strerror(int errno)
+{
+ if (errno < 0 || errno >= sys_nerr) {
+ return "unknown error";
+ }
+ else {
+ return sys_errlist[errno];
+ }
+}
+
+#endif /* ! HAVE_STRERROR */
+
+
+
+/* Report on errors and exit
+ */
+#define BUFSIZE 1024
+
+void
+fatal(const char* ident, int exitcode, char* format, ...)
+{
+#ifndef HAVE_VSNPRINTF
+ /* A replacement is provided in vsnprintf.c for ancient systems still
+ * lacking one in their C library.
+ */
+ int vsnprintf(char*, size_t, const char*, va_list);
+#endif /* !HAVE_VSNPRINTF */
+
+ char log_entry[BUFSIZE];
+
+ va_list arg_ptr;
+ va_start(arg_ptr, format);
+
+ vsnprintf(log_entry, BUFSIZE, format, arg_ptr);
+ va_end(arg_ptr);
+
+#ifdef HAVE_SYSLOG
+ /* Write to the console, maillog is often mostly ignored, and root
+ * should definitely know about any problems.
+ */
+ openlog(ident, LOG_CONS, LOG_MAIL);
+ syslog(LOG_ERR, "%s\n", log_entry);
+ closelog();
+#endif /* HAVE_SYSLOG */
+
+#ifdef HELPFUL
+ /* If we're running as a CGI script, we also want to write the log
+ * file out as HTML, so the admin who is probably trying to debug his
+ * installation will have a better clue as to what's going on.
+ *
+ * Otherwise, print to stderr a short message, hopefully returned to
+ * the sender by the MTA.
+ */
+ if (running_as_cgi) {
+ printf("Content-type: text/html\n\n");
+ printf("<head>\n");
+ printf("<title>Mailman CGI error!!!</title>\n");
+ printf("</head><body>\n");
+ printf("<h1>Mailman CGI error!!!</h1>\n");
+ printf("The Mailman CGI wrapper encountered a fatal error. ");
+ printf("This entry is being stored in your syslog:");
+ printf("\n<pre>\n");
+ printf(log_entry);
+ printf("</pre>\n");
+ }
+ else
+ fprintf(stderr, "%s\n", log_entry);
+#endif /* HELPFUL */
+ exit(exitcode);
+}
+
+
+
+/* Is the parent process allowed to call us?
+ */
+void
+check_caller(const char* ident, const char* parentgroup)
+{
+ GID_T mygid = getgid();
+ struct group *mygroup = getgrgid(mygid);
+ char* option;
+ char* server;
+ char* wrapper;
+
+ if (running_as_cgi) {
+ option = "--with-cgi-gid";
+ server = "web";
+ wrapper = "CGI";
+ }
+ else {
+ option = "--with-mail-gid";
+ server = "mail";
+ wrapper = "mail";
+ }
+
+ if (!mygroup)
+ fatal(ident, GROUP_NAME_NOT_FOUND,
+ "Failure to find group name %s. Try adding this group\n"
+ "to your system, or re-run configure, providing an\n"
+ "existing group name with the command line option %s.",
+ parentgroup, option);
+
+ if (strcmp(parentgroup, mygroup->gr_name))
+ fatal(ident, GROUP_MISMATCH,
+ "Group mismatch error. Mailman expected the %s\n"
+ "wrapper script to be executed as group \"%s\", but\n"
+ "the system's %s server executed the %s script as\n"
+ "group \"%s\". Try tweaking the %s server to run the\n"
+ "script as group \"%s\", or re-run configure, \n"
+ "providing the command line option `%s=%s'.",
+ wrapper, parentgroup, server, wrapper, mygroup->gr_name,
+ server, parentgroup, option, mygroup->gr_name);
+}
+
+
+
+/* list of environment variables which are removed from the given
+ * environment. Some may or may not be hand crafted and passed into
+ * the execv'd environment.
+ *
+ * TBD: The logic of this should be inverted. IOW, we should audit the
+ * Mailman CGI code for those environment variables that are used, and
+ * specifically white list them, removing all other variables. John Viega
+ * also suggests imposing a maximum size just in case Python doesn't handle
+ * them right (which it should because Python strings have no hard limits).
+ */
+static char* killenvars[] = {
+ "PYTHONPATH=",
+ "PYTHONHOME=",
+ "PATH=",
+ NULL
+};
+
+
+
+/* Run a Python script out of the script directory
+ *
+ * args[0] should be the abs path to the Python script to execute
+ * argv[1:] are other args for the script
+ * env may or may not contain PYTHONPATH, we'll substitute our own
+ *
+ * TBD: third argument env may not be universally portable
+ */
+int
+run_script(const char* script, int argc, char** argv, char** env)
+{
+ const char envstr[] = "PYTHONPATH=";
+ const int envlen = strlen(envstr);
+
+ int envcnt = 0;
+ int i, j, status;
+ char** newenv;
+ char** newargv;
+
+ /* We need to set the real gid to the effective gid because there are
+ * some Linux systems which do not preserve the effective gid across
+ * popen() calls. This breaks mail delivery unless the ~mailman/data
+ * directory is chown'd to the uid that runs mail programs, and that
+ * isn't a viable alternative.
+ */
+#ifdef HAVE_SETREGID
+ status = setregid(getegid(), -1);
+ if (status)
+ fatal(logident, SETREGID_FAILURE, "%s", strerror(errno));
+#endif /* HAVE_SETREGID */
+
+ /* We want to tightly control how the CGI scripts get executed.
+ * For portability and security, the path to the Python executable
+ * is hard-coded into this C wrapper, rather than encoded in the #!
+ * line of the script that gets executed. So we invoke those
+ * scripts by passing the script name on the command line to the
+ * Python executable.
+ *
+ * We also need to hack on the PYTHONPATH environment variable so
+ * that the path to the installed Mailman modules will show up
+ * first on sys.path.
+ *
+ */
+ for (envcnt = 0; env[envcnt]; envcnt++)
+ ;
+
+ /* okay to be a little too big */
+ newenv = (char**)malloc(sizeof(char*) * (envcnt + 2));
+
+ /* filter out any troublesome environment variables */
+ for (i = 0, j = 0; i < envcnt; i++) {
+ char** k = &killenvars[0];
+ int keep = 1;
+ while (*k) {
+ if (!strncmp(*k, env[i], strlen(*k))) {
+ keep = 0;
+ break;
+ }
+ *k++;
+ }
+ if (keep)
+ newenv[j++] = env[i];
+ }
+
+ /* Tack on our own version of PYTHONPATH, which should contain only
+ * the path to the Mailman package modules.
+ *
+ * $(PREFIX)/modules
+ */
+ newenv[j] = (char*)malloc(sizeof(char) * (
+ strlen(envstr) +
+ strlen(moduledir) +
+ 1));
+ strcpy(newenv[j], envstr);
+ strcat(newenv[j], moduledir);
+ j++;
+
+ newenv[j] = NULL;
+
+ /* Now put together argv. This will contain first the absolute path
+ * to the Python executable, then the -S option (to speed executable
+ * start times), then the absolute path to the script, then any
+ * additional args passed in argv above.
+ */
+ newargv = (char**)malloc(sizeof(char*) * (argc + 3));
+ j = 0;
+ newargv[j++] = python;
+ newargv[j++] = "-S";
+ newargv[j] = (char*)malloc(sizeof(char) * (
+ strlen(scriptdir) +
+ strlen(script) +
+ 1));
+ strcpy(newargv[j], scriptdir);
+ strcat(newargv[j], script);
+
+ /* now tack on all the rest of the arguments. we can skip argv's
+ * first two arguments because, for cgi-wrapper there is only argv[0].
+ * For mail-wrapper, argv[1] is the mail command (e.g. post,
+ * mailowner, or mailcmd) and argv[2] is the listname. The mail
+ * command to execute gets passed in as this function's `script'
+ * parameter and becomes the argument to the python interpreter. The
+ * list name therefore should become argv[2] to this process.
+ *
+ * TBD: have to make sure this works with alias-wrapper.
+ */
+ for (i=2, j++; i < argc; i++)
+ newargv[j++] = argv[i];
+
+ newargv[j] = NULL;
+
+ /* return always means failure */
+ (void)execve(python, &newargv[0], &newenv[0]);
+ return EXECVE_FAILURE;
+}
+
+
+
+/*
+ * Local Variables:
+ * c-file-style: "python"
+ * End:
+ */
diff --git a/src/common.h b/src/common.h
new file mode 100644
index 00000000..c0ce0a05
--- /dev/null
+++ b/src/common.h
@@ -0,0 +1,61 @@
+/* common.h --- Prototypes for common routines
+ *
+ * Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include <stdlib.h>
+#include <stdarg.h>
+#ifdef HAVE_SYSLOG_H
+#include <syslog.h>
+#endif /* HAVE_SYSLOG_H */
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+#include <sys/types.h>
+#include <grp.h>
+#include <unistd.h>
+
+/* GETGROUPS_T gets set in the makefile by configure */
+#define GID_T GETGROUPS_T
+
+extern void fatal(const char*, int, char*, ...);
+extern void check_caller(const char*, const char*);
+extern int run_script(const char*, int, char**, char**);
+
+/* Global variable used as a flag. */
+extern int running_as_cgi;
+
+/* Extern to reference this global from one of the wrapper mains */
+extern const char* logident;
+
+/* Exit codes, so it's easier to distinguish what caused fatal errors when
+ * looking at syslogs.
+ */
+#define GROUP_MISMATCH 2
+#define SETREGID_FAILURE 3
+#define EXECVE_FAILURE 4
+#define MAIL_USAGE_ERROR 5
+#define MAIL_ILLEGAL_COMMAND 6
+#define ADDALIAS_USAGE_ERROR 7
+#define GROUP_NAME_NOT_FOUND 8
+
+
+/*
+ * Local Variables:
+ * c-file-style: "python"
+ * End:
+ */
diff --git a/src/mail-wrapper.c b/src/mail-wrapper.c
new file mode 100644
index 00000000..2d63a980
--- /dev/null
+++ b/src/mail-wrapper.c
@@ -0,0 +1,91 @@
+/* mail-wrapper.c --- Generic wrapper that will take info from a environment
+ * variable, and pass it to two commands.
+ *
+ * Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include "common.h"
+
+/* Group name that your mail programs run as. See your mail server's
+ * documentation for details.
+ */
+#define LEGAL_PARENT_GROUP MAIL_GROUP
+
+const char* parentgroup = LEGAL_PARENT_GROUP;
+const char* logident = "Mailman mail-wrapper";
+
+
+
+const char *VALID_COMMANDS[] = {
+ "admin",
+ "bounces",
+ "confirm",
+ "join",
+ "leave",
+ "post",
+ "owner",
+ "request",
+ "subscribe",
+ "unsubscribe",
+ NULL /* Sentinel, don't remove */
+};
+
+
+int
+check_command(char *command)
+{
+ int i = 0;
+
+ while (VALID_COMMANDS[i] != NULL) {
+ if (!strcmp(command, VALID_COMMANDS[i]))
+ return 1;
+ i++;
+ }
+ return 0;
+}
+
+
+
+int
+main(int argc, char** argv, char** env)
+{
+ int status;
+
+ /* sanity check arguments */
+ if (argc < 2)
+ fatal(logident, MAIL_USAGE_ERROR,
+ "Usage: %s program [args...]", argv[0]);
+
+ if (!check_command(argv[1]))
+ fatal(logident, MAIL_ILLEGAL_COMMAND,
+ "Illegal command: %s", argv[1]);
+
+ check_caller(logident, parentgroup);
+
+ /* If we got here, everything must be OK */
+ status = run_script(argv[1], argc, argv, env);
+ fatal(logident, status, "%s", strerror(errno));
+ return status;
+}
+
+
+
+/*
+ * Local Variables:
+ * c-file-style: "python"
+ * End:
+ */
diff --git a/src/vsnprintf.c b/src/vsnprintf.c
new file mode 100644
index 00000000..80ce2ebb
--- /dev/null
+++ b/src/vsnprintf.c
@@ -0,0 +1,125 @@
+/* Copyright (c) 1993
+ * Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de)
+ * Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de)
+ * Copyright (c) 1987 Oliver Laumann
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program (see the file COPYING); if not, write to the
+ * Free Software Foundation, Inc.,
+ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ *
+ ****************************************************************
+ */
+
+
+/* Implementation of vsnprintf() for systems that don't have it
+ * (e.g. Solaris 2.5). This hasn't been tested much in the context of
+ * Mailman; it was ripped from screen 3.7.6's misc.c file which contains
+ * the above copyright.
+ *
+ * This code has been modified slightly:
+ *
+ * - use prototypes unconditionally
+ * - Don't use macros for stdargs calls
+ * - Reformat to Python C standard
+ *
+ * RMS says it's okay to include this code in Mailman but it should be kept
+ * in a separate file.
+ *
+ * TBD: This file needs a security audit.
+ */
+
+#ifndef HAVE_VSNPRINTF
+#include <strings.h>
+#include <stdarg.h>
+
+int vsnprintf(char* s, size_t n, const char* fmt, va_list stack)
+{
+ char *f, *sf = 0;
+ int i, on, argl = 0;
+ char myf[10], buf[20];
+ char *arg, *myfp;
+
+ on = n;
+ f = (char*)fmt;
+ arg = 0;
+ while (arg || (sf = index(f, '%')) || (sf = f + strlen(f))) {
+ if (arg == 0) {
+ arg = f;
+ argl = sf - f;
+ }
+ if (argl) {
+ i = argl > n - 1 ? n - 1 : argl;
+ strncpy(s, arg, i);
+ s += i;
+ n -= i;
+ if (i < argl) {
+ *s = 0;
+ return on;
+ }
+ }
+ arg = 0;
+ if (sf == 0)
+ continue;
+ f = sf;
+ sf = 0;
+ if (!*f)
+ break;
+ myfp = myf;
+ *myfp++ = *f++;
+ while (((*f >= '0' && *f <='9') || *f == '#')
+ && myfp - myf < 8)
+ {
+ *myfp++ = *f++;
+ }
+ *myfp++ = *f;
+ *myfp = 0;
+ if (!*f++)
+ break;
+ switch(f[-1])
+ {
+ case '%':
+ arg = "%";
+ break;
+ case 'c':
+ case 'o':
+ case 'd':
+ case 'x':
+ i = va_arg(stack, int);
+ sprintf(buf, myf, i);
+ arg = buf;
+ break;
+ case 's':
+ arg = va_arg(stack, char *);
+ if (arg == 0)
+ arg = "NULL";
+ break;
+ default:
+ arg = "";
+ break;
+ }
+ argl = strlen(arg);
+ }
+ *s = 0;
+ return on - n;
+
+ va_end(stack);
+}
+#endif /* !HAVE_VSNPRINTF */
+
+
+/*
+ * Local Variables:
+ * c-file-style: "python"
+ * End:
+ */
diff --git a/templates/.cvsignore b/templates/.cvsignore
new file mode 100644
index 00000000..f3c7a7c5
--- /dev/null
+++ b/templates/.cvsignore
@@ -0,0 +1 @@
+Makefile
diff --git a/templates/Makefile.in b/templates/Makefile.in
new file mode 100644
index 00000000..9eb369be
--- /dev/null
+++ b/templates/Makefile.in
@@ -0,0 +1,74 @@
+# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# NOTE: Makefile.in is converted into Makefile by the configure script
+# in the parent directory. Once configure has run, you can recreate
+# the Makefile by running just config.status.
+
+# Variables set by configure
+
+VPATH= @srcdir@
+srcdir= @srcdir@
+bindir= @bindir@
+prefix= @prefix@
+exec_prefix= @exec_prefix@
+
+CC= @CC@
+CHMOD= @CHMOD@
+INSTALL= @INSTALL@
+TRUE= @TRUE@
+
+DEFS= @DEFS@
+
+# Customizable but not set by configure
+
+OPT= @OPT@
+CFLAGS= $(OPT) $(DEFS)
+TEMPLATEDIR= $(prefix)/templates
+
+SHELL= /bin/sh
+
+LANGUAGES= big5 cs en es et de fi fr gb hu it ja ko lt nl no pt_BR ru sv
+
+# Modes for directories and executables created by the install
+# process. Default to group-writable directories but
+# user-only-writable for executables.
+DIRMODE= 775
+EXEMODE= 755
+FILEMODE= 644
+INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
+
+
+# Rules
+
+all:
+
+install:
+ for d in $(LANGUAGES); \
+ do \
+ $(srcdir)/../mkinstalldirs $(TEMPLATEDIR)/$$d; \
+ for f in $(srcdir)/$$d/*.html $(srcdir)/$$d/*.txt; \
+ do \
+ $(INSTALL) -m $(FILEMODE) $$f $(TEMPLATEDIR)/$$d; \
+ done; \
+ done
+
+finish:
+
+clean:
+
+distclean:
+ -rm -f Makefile
diff --git a/templates/big5/admindbpreamble.html b/templates/big5/admindbpreamble.html
new file mode 100644
index 00000000..c4944115
--- /dev/null
+++ b/templates/big5/admindbpreamble.html
@@ -0,0 +1,22 @@
+½×¾Â<em>%(listname)s</em> ¤¤¦³«Ý¨M®×¥ó»Ý­n±zªº¼f®Ö¡C
+­º¥ý±zÀ³¨ì«Ý¨M®×¥óªººô­¶¬d¸ß¬ÛÃö°T®§¡C
+
+<p>­YÄÝ©ó­q¾\ªº¥Ó½Ð¡A½Ð¿ï¾Ü <b>Refuse</b> ©Úµ´¡A©Î
+<b>Subscribe</b> ±µ¨ü¡C
+¦pªG±z©Úµ´­q¾\ªº¥Ó½Ð¡A±z¥i¥H¦b¤å¦r²°¤¤²¤­z©Úµ´­q¾\ªº²z¥Ñ¡C
+
+<p>­YÄÝ©ó¾D¯d¸mªº«H¥ó¡A½Ð¿ï¾Ü
+
+<ul>
+<li><b>Defer</b> - ¼È½w¨M©w¡C±z©|¥¼·Q³B²z³o¨Ç«H¥ó¡C
+<li><b>Approve</b> - ©ñ¦æ«H¥ó¨Ã°e¤W½×¾Â¡C
+<li><b>Reject</b> - °h«H¨Ã¦V±H«H¤H²µu»¡©ú°h«H­ì¦]¡A¸Ó«H¥ó¤£·|°e¤W½×¾Â¡C
+<li><b>Discard</b> - ³w¦æ¥á±ó¡A¦¹¿ï¶µ¹ï©ó©U§£¶l¥ó¤Q¤À¦³¥Î¡C
+</ul>
+
+<p>¦pªG«H¥ó¬Oµ¹¾Â¥D¡A¦pªG±z­n¦s¤@¥÷°Æ¥»®É¡A±N <b>Preserve</b> ¿ï¶µ¥´¶}¡C
+³o¿ï¶µ¹ï½|¤Hªº«H¥ó«Ü¦³¥Î ¡C ¦pªG±z·Q±N«H¥óÂà±H¤£¦b¦¹½×¾Âªº¤H¤h¡A±N
+<b>Forward to</b> ¿ï¶µ¥´¶}¡A¨Ã¶ñ¤WÂà«H¦a§}¡C
+
+<p>·í±z§¹¦¨¤u§@¡A½Ð«ö¦bºô­¶¤W¤è©Î¤U¤èªº <em>Submit All Data</em> «ö¶s
+¥H«K°õ¦æ±zªº¨M©w¡C¦pªG±z¤£·Q²{¦b§@¨M©w¡A½Ð¤Å«ö¦¹¶s¡C µy­Ô±z¥i¥H¦A¨M©w¡C
diff --git a/templates/big5/adminsubscribeack.txt b/templates/big5/adminsubscribeack.txt
new file mode 100644
index 00000000..4fcb52bd
--- /dev/null
+++ b/templates/big5/adminsubscribeack.txt
@@ -0,0 +1,2 @@
+%(member)s ¤w¸g­q¾\ %(listname)s ¦¨¥\¤F.
+
diff --git a/templates/big5/adminunsubscribeack.txt b/templates/big5/adminunsubscribeack.txt
new file mode 100644
index 00000000..9e5ab812
--- /dev/null
+++ b/templates/big5/adminunsubscribeack.txt
@@ -0,0 +1,3 @@
+%(member)s ¤w¸g¨ú®ø­q¾\ %(listname)s ¤F.
+
+
diff --git a/templates/big5/admlogin.html b/templates/big5/admlogin.html
new file mode 100644
index 00000000..f8f188d1
--- /dev/null
+++ b/templates/big5/admlogin.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+ <title>%(listname)s ½×¾Â ¾Â¥DÅçÃÒ</title>
+</head>
+<body bgcolor="#ffffff">
+<FORM METHOD=POST ACTION="%(path)s">
+%(message)s
+ <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1">%(listname)s ½×¾Â ¾Â¥DÅçÃÒ</FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <TD> <div ALIGN="Right"> ¾Â¥D±K½X: </div> </TD>
+ <TD> <INPUT TYPE=password NAME=adminpw SIZE=30></TD>
+ </tr>
+ <tr>
+ <td colspan=2 align=middle> <INPUT TYPE=SUBMIT name="request_login"
+ value="§Ú¶ñ¦n¤F...">
+ </td>
+ </tr>
+ </TABLE>
+ <p><strong><em>­«ÂI:</em></strong> ±q²{¦b¶}©l¡A ±z¥²¶·
+ ±NÂsÄý¾¹ªº cookie ¥\¯à¥´¶}¡A§_«h±z©Ò§@ªº²§°Ê±N¤£·|µo¥Í®Ä¥Î¡C
+
+ <p>Mailman ªººÞ²z¤¶­±¨Ï¥Î¤F Session cookies ¡A ¦]¦¹±z¤£»Ý­n¦b¨C¦¸
+ ²§°Ê¸ê®Æ®É­«·sÅçÃÒ±K½X¡C¦¹cookie ¦b±zÃö³¬ÂsÄý¾¹®É¦Û°Ê¥¢®Ä¡A
+ ©ÎªÌ±z«ö¤U¦b <em>Other Administrative Activities</em> ºô­¶¤¤
+ <em>Logout</em> ªº¶W³sµ² (¤@¥¹±z¦¨¥\ªºµn¿ý¤§«á¡A±z´N¥i¥H¬Ý¨ì)¡C
+</FORM>
diff --git a/templates/big5/approve.txt b/templates/big5/approve.txt
new file mode 100644
index 00000000..c6149a1d
--- /dev/null
+++ b/templates/big5/approve.txt
@@ -0,0 +1,12 @@
+±z¦V %(requestaddr)s ´£¥Xªº¥Ó½Ð :
+
+ %(cmd)s
+
+¤w¸gÂà°e¾Â¥D .
+
+³o³q±`¬O¦]¬°±z¹Á¸Õ­q¾\¤@­Ó '«Ê³¬' ªº½×¾Â.
+±z·|¦¬¨ì½×¾ÂºÞ²z¤HÃö©ó±z­q¾\¥Ó½Ðªº¨M©w .
+
+°²¨Ï¹ï½×¾ÂºÞ²z¤Hªº¬Fµ¦¦³¥ô¦óªº°ÝÃD , ½Ð³w¬¢ :
+
+ %(adminaddr)s
diff --git a/templates/big5/bounce.txt b/templates/big5/bounce.txt
new file mode 100644
index 00000000..118de2e8
--- /dev/null
+++ b/templates/big5/bounce.txt
@@ -0,0 +1,12 @@
+³o¬O¤@«Ê Mailman ¹q¤l½×¾Â°h«H³qª¾ :
+
+ List(½×¾Â): %(listname)s
+ Member(·|­û): %(addr)s
+ Action(°Ê§@): ­q¾\ %(negative)s%(did)s.
+ Reason(²z¥Ñ): °h«H¦¸¼Æ¤Ó¦h.
+ %(but)s
+
+%(reenable)s
+°h«Hªº³qª¾¤º®e¦p¤U.
+
+¦³¥ô¦óºÃ°Ý½Ð³w¬¢ Mailman Á`¾Â¥D %(owneraddr)s. \ No newline at end of file
diff --git a/templates/big5/checkdbs.txt b/templates/big5/checkdbs.txt
new file mode 100644
index 00000000..5bc54901
--- /dev/null
+++ b/templates/big5/checkdbs.txt
@@ -0,0 +1,8 @@
+ %(real_name)s@%(host_name)s ªº½×¾Â¤¤©|¦³ %(count)d ¶µ­n¨D
+µ¥«Ý±zªºµô¨M , ½Ð¨ì :
+
+ %(adminDB)s
+
+½Ð¼·¤¾¾¨³t³B²z !
+
+ps. ­Y¦³¥Ó½Ð¨Æ¶µ«Ýµô¨M®É , ¥»³qª¾±N¨C¤é¦Û°Êµo°e . \ No newline at end of file
diff --git a/templates/big5/convert.txt b/templates/big5/convert.txt
new file mode 100644
index 00000000..6e422353
--- /dev/null
+++ b/templates/big5/convert.txt
@@ -0,0 +1,40 @@
+The %(listname)s mailing list has just undergone a big change. It is
+running on a new mailing list package called "Mailman". This will
+hopefully solve a lot of problems that administering this list has
+presented.
+
+How does this affect you?
+¹ï±zªº¼vÅT ?
+
+1) Mail intended for the whole list should be sent to: %(listaddr)s.
+
+2) You have been given an arbitrary password to prevent others from
+unsubscribing you without your knowledge. It will be mailed to you in
+a separate email, which you may have already received. Don't worry if
+you forget this password; a reminder will be sent to you via email
+every month.
+
+3) If you have World Wide Web access, you can use it any time to
+unsubscribe from this list, to switch to and from digest mode, to
+check back issues of the list (which will be available after the list
+has been getting posts for a day or so), etc. The Web address for
+these resources is:
+
+ %(listinfo_url)s
+
+4) ¦pªG±z¤£¯à¥Ñ WWW ¦s¨ú , ±z¥i¥H¸g¥Ñ email ¹F¨ì¬Û¦Pªº¥\¯à .
+ email ¤@«Ê¼ÐÃD©Î¤º¤å¬° "help" ( ¤£»Ý¤Þ¸¹ )¤@­Ó³æ¦r¨ì
+ %(requestaddr)s .±z·|¦¬¨ì¦Û°Ê¦^ÂЪº email , ¤W­±·|¦³§ó¸Ô
+²Óªº»¡©ú .
+
+Please address any questions or problems with this new setup to:
+¹ï·sªº³]©w¦³¥ô¦óªººÃ°Ý½Ð³w¬¢:
+
+%(adminaddr)s.
+
+
+¥»°T®§¥Ñ Mailman %(version)s ¦Û°Ê²£¥Í , Ãö©ó Mailman ³nÅ骺
+¸Ô²Ó¸ê°T½Ð³y³X Mailman ªº­º­¶
+
+http://www.list.org/
+
diff --git a/templates/big5/cronpass.txt b/templates/big5/cronpass.txt
new file mode 100644
index 00000000..d76bb712
--- /dev/null
+++ b/templates/big5/cronpass.txt
@@ -0,0 +1,16 @@
+³o¬O¤@«Ê³Æ§Ñ«H , ¨C¤ë¤@¦¸±N±z¦b %(hostname)s ¥þ³¡½×¾Âªº­q
+¾\¸ê°T¤Î¦p¦óÅܧó©Î¨ú®ø­q¾\ªº¤èªk email µ¹±z .
+
+±z¥i¥H³s½u¨ì URLs Åܧó­q¾\³]©w©Î¨ú®ø­q¾\...µ¥µ¥.
+
+°£¤F URL ªº¤¶­±¥H¥~ , ±z¤]¥i³z¹L email Åܧó­q¾\³]©w©Î¨ú
+®ø­q¾\...µ¥µ¥ . ¸Ô±¡½Ð¥H "help" ¬°¼ÐÃD©Î¤º¤å email ¨ì½×¾Âªº
+ '-request' ±b¸¹ (¨Ò¦p ,%(exreq)s) . ±z±N¦¬¨ì¸Ô²Óªº«ü¾É .
+
+°²¨Ï±z¦³¥ô¦óºÃ°Ý , §xÂZ , «ØÄ³ ... µ¥µ¥ , ½Ð email µ¹
+
+%(owner)s.
+
+ÁÂÁÂ!
+
+%(useraddr)s ªº±K½X : \ No newline at end of file
diff --git a/templates/big5/handle_opts.html b/templates/big5/handle_opts.html
new file mode 100644
index 00000000..38d5ff29
--- /dev/null
+++ b/templates/big5/handle_opts.html
@@ -0,0 +1,9 @@
+<!-- $Revision: 3408 $ -->
+<html>
+<title><MM-List-Name> <MM-Operation> Results</title>
+<body>
+<h1><MM-List-Name> <MM-Operation> Results</h1>
+<MM-Results>
+<MM-Mailman-Footer>
+</body>
+</html>
diff --git a/templates/big5/headfoot.html b/templates/big5/headfoot.html
new file mode 100644
index 00000000..9cde1108
--- /dev/null
+++ b/templates/big5/headfoot.html
@@ -0,0 +1,23 @@
+¥»¤å¥i¥]§t <b><code>%(attribute)s</code></b> ®æ¦¡¦r¦ê¡A¨ä¥i´À´«¬°³q«H½×¾Â
+¬ÛÀ³ªºÄݩʡC¸Ô±¡½Ð°Ñ·Ó
+<a href="http://www.python.org/doc/current/lib/typesseq-strings.html">Python
+®æ¦¡¤Æ¦r¦ê³W«h</a>. ¹w³]Äݩʦp¤U¡G
+
+<ul>
+ <li><b><code>real_name</code></b> - ¥»½×¾Â "¸û¨Î" ªº¦WºÙ¡F
+ ³q±`³£¥Î¤j¼g¡C
+
+ <li><b><code>_internal_name</code></b> - ¦¹½×¾Â¦WºÙ¥Î©ó URL ÃѧO
+ ¡A¨ä¤j¤p¼g¤£¥i¦³»~¡C
+
+ <li><b><code>host_name</code></b> - °õ¦æ½×¾Âªº¦øªA¾¹¸ÔºÉªº¥D¾÷¦WºÙ¡]FQDN¡^¡C
+
+ <li><b><code>web_page_url</code></b> - Mailman ªº URL base. ¨ä«á¥i²K¥[
+ ¤@¨Ç°Ñ¼Æ¥H²£¥Í¦³¥Îªººô§}¡C
+ ¨Ò¦p¡G ¥[¤W <em><code>listinfo/%(_internal_name)s</code></em>
+ ¥i²£¥Í³q«H½×¾Âªº listinfo ºô§}¡C
+
+ <li><b><code>description</code></b> - ¸Ó³q«H½×¾ÂªººK­n»¡©ú¡C
+
+ <li><b><code>info</code></b> - ¸Ó³q«H½×¾Âªº¸Ô²Ó»¡©ú¡C
+</ul>
diff --git a/templates/big5/help.txt b/templates/big5/help.txt
new file mode 100644
index 00000000..654eda31
--- /dev/null
+++ b/templates/big5/help.txt
@@ -0,0 +1,33 @@
+Help for %(listname)s mailing list:
+
+This is email command help for version %(version)s of the "Mailman"
+list manager. The following describes commands you can send to get
+information about and control your subscription to Mailman lists at
+this site. A command can be in the subject line or in the body of the
+message.
+
+Note that much of the following can also be accomplished via the World
+Wide Web, at:
+
+ %(listinfo_url)s
+
+In particular, you can use the Web site to have your password sent to
+your delivery address.
+
+List specific commands (subscribe, who, etc) should be sent to the
+*-request address for the particular list, e.g. for the 'mailman'
+list, use 'mailman-request@...'.
+
+About the descriptions - words in "<>"s signify REQUIRED items and
+words in "[]" denote OPTIONAL items. Do not include the "<>"s or
+"[]"s when you use the commands.
+
+The following commands are valid:
+
+ %(commands)s
+
+Commands should be sent to %(requestaddr)s
+
+Questions and concerns for the attention of a person should be sent to
+
+ %(adminaddr)s
diff --git a/templates/big5/listinfo.html b/templates/big5/listinfo.html
new file mode 100644
index 00000000..52feafc6
--- /dev/null
+++ b/templates/big5/listinfo.html
@@ -0,0 +1,127 @@
+<!-- $Revision: 5012 $ -->
+<HTML>
+ <HEAD>
+ <TITLE><MM-List-Name> ¬ÛÃö¸ê°T</TITLE>
+
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+
+ <P>
+ <TABLE COLS="1" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1"><MM-List-Name> --
+ <MM-List-Description></FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <p>&nbsp;
+ </td>
+ </tr>
+ <tr>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000">Ãö©ó <MM-List-Name> ½×¾Â</FONT></B>
+ </TD>
+ <TD COLSPAN="1" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <MM-lang-form-start><MM-displang-box> <MM-list-langs>
+ <MM-form-end>
+ <MM-Subscribe-Form-Start>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <P><MM-List-Info></P>
+ <p> ±ý¬d¥»½×¾Â«H¡A½Ð³w¬¢ <MM-Archive><MM-List-Name>
+ Àɮ׫OºÞ³B</MM-Archive>¡C
+ <MM-Restricted-List-Message>
+ </p>
+ </TD>
+ </TR>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000">¨Ï¥Î <MM-List-Name> ½×¾Â</FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ ±ý¦b½×¾Âµo¨¥¡A½Ð±H¨ì <A
+HREF="mailto:<MM-Posting-Addr>"><MM-Posting-Addr></A>¡C
+
+ <p>¦b¤U­±ªººô­¶¥iÅý±z¥i¥H¥[¤J³o­Ó½×¾Â¡A©ÎÅܧó­q¾\³]©w¡C
+ </td>
+ </tr>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000">¥[¤J <MM-List-Name> ½×¾Â</FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <P>
+ ±ý¥[¤J(­q¾\) <MM-List-Name> ½×¾Â½Ð¨Ì§Ç¶ñ§´¤U¦C¸ê®Æ¡C
+ <MM-List-Subscription-Msg>
+ <ul>
+ <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"
+ WIDTH="70%" HEIGHT= "112">
+ <TR>
+ <TD BGCOLOR="#dddddd" WIDTH="55%">±zªº E-Mail:</TD>
+ <TD WIDTH="33%"><MM-Subscribe-Box>
+ </TD>
+ <TD WIDTH="12%">&nbsp;</TD></TR>
+ <TR>
+ <TD COLSPAN="3"><FONT SIZE=-1>
+ §A ¥² ¶· ¿é ¤J ¤@ ­Ó ¨p ¤H ±K ½X ¥H ¨Ñ ¨ú ®ø ­q ¾\ ©Î ¨ä ¥L ¬Û Ãö ³] ©w ªº
+Åv ¤O ¡C <b> ½Ð ¤Å ¨Ï ¥Î ¦³ »ù ­È ªº ±K ½X</b> ! ¦] ¬° °¸ ¦Ó ¥i ¥H ±N ±K ½X ¥H
+©ú ½X ªº ¤è ¦¡ ¶l ±H µ¹ ±z¡C
+ <MM-Reminder>
+ </TD>
+ </TR>
+ <TR>
+ <TD BGCOLOR="#dddddd">¿é¤J±K½X:</TD>
+ <TD><MM-New-Password-Box></TD>
+ <TD>&nbsp;</TD></TR>
+ <TR>
+ <TD BGCOLOR="#dddddd">½T»{¿é¤J±K½X:</TD>
+ <TD><MM-Confirm-Password></TD>
+ <TD>&nbsp; </TD></TR>
+ <tr>
+ <TD BGCOLOR="#dddddd"> ±z¾A¥Îªº»y¨¥?</TD>
+ <TD> <MM-list-langs></TD>
+ <TD>&nbsp; </TD></TR>
+ <tr>
+ <td>§A ·Q ¥H ¨C ¤é ºK ­n ªº §Î ¦¡ ¦¬ «H ¶Ü ?
+ </td>
+ <td><MM-Undigest-Radio-Button> No
+ <MM-Digest-Radio-Button> Yes
+ </TD>
+ </tr>
+ <tr>
+ <td colspan="3">
+ <center><MM-Subscribe-Button></P></center>
+ </TABLE>
+ <MM-Form-End>
+ </ul>
+ </td>
+ </tr>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <a name="subscribers">
+ <B><FONT COLOR="#000000"><MM-List-Name> ­q ¾\ ªÌ </FONT></B></a>
+ </TD>
+ </TR>
+ <tr>
+ <TD COLSPAN="2" WIDTH="100%">
+ <MM-Roster-Form-Start>
+ <MM-Roster-Option>
+ <MM-Form-End>
+ <p>
+ <MM-Options-Form-Start>
+ <MM-Editing-Options>
+ <MM-Form-End>
+ </td>
+ </tr>
+ </table>
+<MM-Mailman-Footer>
+</BODY>
+</HTML>
diff --git a/templates/big5/masthead.txt b/templates/big5/masthead.txt
new file mode 100644
index 00000000..8f6e6071
--- /dev/null
+++ b/templates/big5/masthead.txt
@@ -0,0 +1,18 @@
+±ý¦b %(real_name)s ½×¾Âµo¨¥ , ½Ð email µ¹
+
+ %(got_list_email)s
+
+¸g¥Ñ WWW ­q¾\©Î¨ú®ø­q¾\ , ½Ð¨ì
+
+ %(got_listinfo_url)s
+
+©Î¸g¥Ñ email , °e¥X¤@«Ê¼ÐÃD©Î¤º¤å¬° 'help' ¨ì
+
+ %(got_request_email)s
+
+±ý»P¾Â¥D(½×¾ÂºÞ²z¤H)¨ú±o³sµ¸®É , ½Ð email µ¹
+
+ %(got_owner_email)s
+
+·í¦^«H®É , ½Ðµ¹¤@­Ó¾A·íªº¼ÐÃD , ¦p¦¹·|¤ñ
+ "Re: Contents of %(real_name)s digest..."¨Ó±o¦³·N¸q.
diff --git a/templates/big5/newlist.txt b/templates/big5/newlist.txt
new file mode 100644
index 00000000..d6426925
--- /dev/null
+++ b/templates/big5/newlist.txt
@@ -0,0 +1,32 @@
+¤U­±¬O±z·s«Ø¥ßªº `%(listname)s' ¹q¤l½×¾Âªº¬ÛÃö¸ê°T.
+
+½×¾ÂºÞ²z¤H(¼ÊºÙ:¾Â¥D)ªº±K½X¬O:
+
+ %(password)s
+
+ºÞ²z»P³]©w¹q¤l½×¾Â§¡»Ý­n±K½X. ¨Ò¦p®Ö­ãµo¨¥Åv...µ¥µ¥.
+
+±z¥i¦b¥H¤Uªººô­¶³]©w±zªº¹q¤l½×¾Â .
+
+ %(admin_url)s
+
+½×¾Â·|­û(©ÎºÙ:­q¾\¤H)ªº¬ÛÃö¸ê°Tºô­¶¦b:
+
+ %(listinfo_url)s
+
+±z¥i¥H¦Û­q¹q¤l½×¾Âªº³]©wºô­¶. ·íµM , ±z¹ï HTML »Ý­n¦³
+¤@ÂI»{ÃÑ.
+
+¥t¥~ , ¨Ï¥ÎªÌ(«DºÞ²z­û)¤]¥i³z¹L email ¬°¥Dªº¤è¦¡³]©w¦Û¤vªº
+¿ï¶µ (Ķª` : ¤£«ØÄ³¦¹¤è®×) ; ­Y»Ý­n¬ÛÃöªº¸ê°T , ±z¥i¥H³æ¿W
+'help' ¤@­Ó³æ¦r¬°¥DÃD©Î¤º¤å email ¨ì¥H¤Uªº±b¸¹ :
+
+ %(requestaddr)s
+
+±ý¨ú®ø­q¾\:½Ð¥Ñ ¹q¤l½×¾Â 'listinfo' ºô­¶,ÂI¿ï©Î¿é¤J­q¾\¤H
+ªº email ±b¸¹. ¨ú®ø­q¾\¶·­n±K½X.½Ð¿é¤J¾Â¥Dªº±K½X .
+¦P²z, §A¥i¥HÅܧó¨Ï¥ÎªÌ¿ï¶µ. ¨Ò¦p:¼È°±°e«H...µ¥µ¥ .
+
+­Y¦³¥ô¦ó¨Ï¥Î¤Wªº°ÝÃD½Ð email ¨ì:
+
+%(siteowner)s
diff --git a/templates/big5/options.html b/templates/big5/options.html
new file mode 100644
index 00000000..62c5160c
--- /dev/null
+++ b/templates/big5/options.html
@@ -0,0 +1,150 @@
+<!-- $Revision: 3408 $ -->
+<html>
+<head>
+<title><MM-Presentable-User> <MM-List-Name>½×¾Â³]©w</title>
+
+</head>
+<BODY BGCOLOR="#ffffff">
+ <TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#99CCFF"><B>
+ <FONT COLOR="#000000" SIZE=+1>
+<MM-List-Name><MM-Presentable-User> ªº³]©w
+ </FONT></B></TD></TR> </TABLE>
+<MM-Form-Start>
+
+<p>
+
+<b><MM-Presentable-User></b>
+ ¦b <MM-List-Name> ½×¾Âªº­q¾\ª¬ºA¡A±K½X¤Î¿ï¶µ¡C
+<MM-Case-Preserved-User>
+
+<MM-Disabled-Notice>
+
+<p>
+
+<a name=unsub>
+ <TABLE WIDTH="100%" BORDER="0" CELLSPACING=5" CELLPADDING="5">
+ <TR><TD WIDTH="50%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+<B>¨ú®ø­q¾\<MM-List-Name></B>
+ <TD WIDTH="50%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+<B>±z¨ä¥¦¦b <MM-Host> ªº­q¾\</B>
+ </FONT></TD></TR>
+
+ <tr>
+ <td>
+
+±ý¨ú®ø­q¾\½Ð¿é¤J±zªº±K½X«á«ö¦¹«ö¶s¡]­Y±z§Ñ°O±K½X¡A½Ð¨£¤U¤å¦p¦ó¨ú±o±zªº±K½X¡^
+
+<p>
+±K½X: <MM-Unsub-Pw-Box> &nbsp;
+<MM-Unsubscribe-Button>
+</a>
+ <td>
+
+¿é¤J±zªº±K½X¥i³sµ²¨ì±z¦b¥»½×¾Â¨ä¥¦ªº­q¾\ªº³]©wµe­±¡C
+
+<p>
+±K½X: <MM-Other-Subscriptions-Pw-Box> <MM-Other-Subscriptions-Submit><p>
+
+ </TD></TR> </table>
+
+ <TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD COLSPAN=2 WIDTH="100%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+<B>±z¦b <MM-List-Name> ªº±K½X</B>
+ </FONT></TD>
+</TR>
+<tr valign="TOP">
+<td WIDTH="50%">
+<a name=reminder>
+<center>
+<h3>§Ñ°O±K½X«ç»ò¿ì?</h3>
+</center>
+«ö¤U¦¹¶s¥i±N±zªº±K½X¶l±Hµ¹±z¡C<p>
+<MM-Umbrella-Notice>
+<center>
+<MM-Email-My-Pw>
+</center>
+</td>
+<td WIDTH="50%">
+<a name=changepw>
+<center>
+<h3>Åܧó±K½X</h3>
+ <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2" WIDTH="70%" COLS=2>
+ <TR>
+ <TD WIDTH="30%" BGCOLOR="#dddddd">±K½X:</TD>
+ <TD WIDTH="70%"><MM-Old-Pw-Box></TD>
+ </TR>
+ <TR>
+ <TD BGCOLOR="#dddddd">·s±K½X:</TD>
+ <TD><MM-New-Pass-Box></TD>
+ </TR>
+ <TR>
+ <TD BGCOLOR="#dddddd">¦A¿é¤J¤@¦¸·s±K½X:</TD>
+ <TD><MM-Confirm-Pass-Box></TD>
+ </TR>
+</table>
+ <MM-Change-Pass-Button>
+ </TABLE>
+
+<p>
+
+<a name=options>
+ <TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+<B>Your <MM-List-Name> ­q¾\¿ï¶µ</B>
+ </FONT></TD></TR> </table>
+
+<p>
+<i><strong>²{¦bªº³]©w­È¦³§@°O¸¹¡C</strong></i><p>
+<p>
+<TABLE BORDER="0" CELLSPACING="2" CELLPADDING="3" WIDTH="80%">
+<tr><TD BGCOLOR="#dcdcdc">
+<a name="disable">
+<strong> ¼È°±¦¬«H </strong> <br>
+¦pªG±zµu´Á¤º¤£·Q¦¬¨ì½×¾Â±H¥Xªº«H¡A½Ð¿ï On¡C<br>
+<mm-delivery-enable-button> Off
+<mm-delivery-disable-button> On <p>
+</a>
+</td></tr>
+<tr><TD BGCOLOR="#dcdcdc">
+<strong> ³]©wºK­n¼Ò¦¡</strong> <br>
+­Y±z¿ï¾ÜºK­n¼Ò¦¡¡A±z·|¦¬¨ì¨C¤Ñ¶°¦¨¤@«ÊªººK­n¡A¦Ó¤£¬O¨C¦¸µo¨¥¤@«Ê¡C
+¤@¥¹±z±N¿ï¶µ¥Ñ On Âର Off ±z·|¦¬¨ì³Ìªñ¤@«ÊªººK­n¡C<br>
+<MM-Undigest-Radio-Button> Off
+<MM-Digest-Radio-Button> On<br>
+</td></tr>
+<tr><TD BGCOLOR="#dcdcdc">
+<strong> ¦¬ MIME ©Î ¯Â¤å¦rªººK­n?</strong> <br>
+¦pªG±z¦¬ MIME ªººK­n·|¦³°ÝÃD¡A½Ð¿ï¾Ü¯Â¤å¦rªººK­n¡C<br>
+<MM-Mime-Digests-Button> MIME
+<MM-Plain-Digests-Button> ¯Â¤å¦r <p>
+</td></tr>
+<tr><TD BGCOLOR="#dcdcdc">
+<strong> ±z·Q¦¬¨ì¦Û¤v±H¨ì½×¾Âªº«H¶Ü? </strong><br>
+<mm-receive-own-mail-button> Yes
+<mm-dont-receive-own-mail-button> No <p>
+</td></tr>
+<tr><TD BGCOLOR="#dcdcdc">
+<strong> ±z·Q¦b±H«H¨ì½×¾Â«á¡A¦¬¨ì½T»{«H¶Ü? </strong><br>
+<mm-dont-ack-posts-button> No
+<mm-ack-posts-button> Yes <p>
+</td></tr>
+<tr><TD BGCOLOR="#dcdcdc">
+<strong> ±z¤£·Q¥X²{¦b­q¾\ªÌ¦W³æ¤¤¶Ü? ´N¬O¼ç¸¥³¡¶¤°Õ!</strong><br>
+<MM-Public-Subscription-Button> No
+<MM-Hide-Subscription-Button> Yes <p>
+</td></tr>
+<tr><TD BGCOLOR="#dcdcdc">
+<strong> ±z¾A¥Îªº»y¨¥?</strong><MM-list-langs>
+</td></tr>
+<tr><TD BGCOLOR="#dcdcdc">
+±K½X: <MM-Digest-Pw-Box> <MM-Digest-Submit><p>
+</td></tr></table>
+</center>
+
+<p>
+<MM-Form-End>
+
+<MM-Mailman-Footer>
+</body>
+</html>
diff --git a/templates/big5/postack.txt b/templates/big5/postack.txt
new file mode 100644
index 00000000..2283d46e
--- /dev/null
+++ b/templates/big5/postack.txt
@@ -0,0 +1,7 @@
+±zªº°T®§¼ÐÃD¬°:
+
+ %(subject)s
+
+%(listname)s ½×¾Â¤w¸g¦¨¥\¦¬¨ì¤F.
+
+¥»½×¾Â¬ÛÃö¸ê°Tºô­¶¦b : %(listinfo_url)s
diff --git a/templates/big5/postauth.txt b/templates/big5/postauth.txt
new file mode 100644
index 00000000..f8c46bfc
--- /dev/null
+++ b/templates/big5/postauth.txt
@@ -0,0 +1,12 @@
+¥»½×¾Âµo¨¥¶·¸g±zªº®Ö­ã :
+
+ List(½×¾Â¦WºÙ) : %(listname)s@%(hostname)s
+ From(µo«H¤H) : %(sender)s
+ Subject(¼ÐÃD) : %(subject)s
+ Reason(¯d¸m­ì¦]): %(reason)s
+
+¬°«K§Q±z§@·~°_¨£ , ½Ð¨ì :
+
+ %(admindb_url)s
+
+¤¹³\©Î©Úµ´µo¨¥¥Ó½Ð .
diff --git a/templates/big5/postheld.txt b/templates/big5/postheld.txt
new file mode 100644
index 00000000..fa34f753
--- /dev/null
+++ b/templates/big5/postheld.txt
@@ -0,0 +1,11 @@
+±z±H¨ì½×¾Â '%(listname)s' ªº¶l¥ó , ¼ÐÃD¬° :
+
+ %(subject)s
+
+¤w¸g¾D¯d¸m , ª½¨ì½×¾Â "¾Â¥D" ¼f¬d¬O§_©ñ¦æ .
+
+¯d¸m¶l¥óªº­ì¦]¬° :
+
+ %(reason)s
+
+±zªº email ¥i¯à·|°e¨ì½×¾Â , ©ÎªÌ¬O¦¬¨ì¾Â¥Dªº¨M©w³qª¾ .
diff --git a/templates/big5/refuse.txt b/templates/big5/refuse.txt
new file mode 100644
index 00000000..14d25ace
--- /dev/null
+++ b/templates/big5/refuse.txt
@@ -0,0 +1,11 @@
+±z¦b %(listname)s ½×¾Â´£¥Xªº¥Ó½Ð
+
+ %(request)s
+
+¤w¸g³Q¾Â¥D©Úµ´ . ¾Â¥D¦^ÂЩڵ´ªº­ì¦]¦p¤U :
+
+ %(reason)s
+
+­Y¦³¨ä¥Lªº°ÝÃD©Î«ØÄ³ , ½Ð³w¬¢¾Â¥D :
+
+ %(adminaddr)s
diff --git a/templates/big5/roster.html b/templates/big5/roster.html
new file mode 100644
index 00000000..c9d052b1
--- /dev/null
+++ b/templates/big5/roster.html
@@ -0,0 +1,50 @@
+<!-- $Revision: 3408 $ -->
+<HTML>
+ <HEAD>
+ <TITLE><MM-List-Name> ­q¾\·|­û</TITLE>
+
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+
+ <P>
+ <TABLE WIDTH="100%" COLS="1" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1"><MM-List-Name>
+ ­q¾\·|­û¤@Äýªí</FONT></B>
+ </TD>
+ </TR>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" ALIGN="CENTER">
+ <P align = "right"> <MM-lang-form-start><MM-displang-box>
+ <MM-list-langs><MM-form-end></p>
+ <P>ÂI ¿ï ±z ªº email ¥i ¨ì ­Ó ¤H ªº ­q ¾\ ³] ©w ºô ­¶ ¡C
+ <br><I>(¬A ¸¹ ¬A °_ ¨Ó ªº ¥N ªí ½Ð °² ¤¤ ( ¼È °± ¦¬ «H )¡C)</I></P>
+ </TD>
+ </TR>
+ <TR WIDTH="100%" VALIGN="top">
+ <TD BGCOLOR="#FFF0D0" WIDTH="50%">
+ <center>
+ <B><FONT COLOR="#000000"> <MM-List-Name> ¤@ ¯ë ·| ­û :
+ <MM-Num-Reg-Users> ¤H </FONT></B>
+ </center>
+ </TD>
+ <TD BGCOLOR="#FFF0D0" WIDTH="50%">
+ <center>
+ <B><FONT COLOR="#000000">
+ <MM-List-Name> ¨C ¤é ¦X ±H :<MM-Num-Digesters> ¤H </FONT></B>
+ </center>
+ </TD>
+ </TR>
+ <TR VALIGN="top">
+ <td>
+ <P><MM-Regular-Users>
+ </td>
+ <td>
+ <P><MM-Digest-Users>
+ </td>
+ </tr>
+ </table>
+<MM-Mailman-Footer>
+</BODY>
+</HTML>
diff --git a/templates/big5/subauth.txt b/templates/big5/subauth.txt
new file mode 100644
index 00000000..50d44685
--- /dev/null
+++ b/templates/big5/subauth.txt
@@ -0,0 +1,10 @@
+¹q¤l½×¾Âªº­q¾\¥Ó½Ð»Ý¸g¥Ñ±zªº®Ö­ã
+
+ For(­q¾\¤H): %(username)s
+ List(½×¾Â¦WºÙ): %(listname)s@%(hostname)s
+
+¬°«K§Q°_¨£ , ½Ð¨ì :
+
+ %(admindb_url)s
+
+³B²z«e¶µ­n¨D . \ No newline at end of file
diff --git a/templates/big5/subscribe.html b/templates/big5/subscribe.html
new file mode 100644
index 00000000..da44b7d5
--- /dev/null
+++ b/templates/big5/subscribe.html
@@ -0,0 +1,9 @@
+<!-- $Revision: 3408 $ -->
+<html>
+<head><title><MM-List-Name> ­q¾\µ²ªG</title></head>
+<body>
+<h1><MM-List-Name> ­q ¾\ µ² ªG </h1>
+<MM-Results>
+<MM-Mailman-Footer>
+</body>
+</html>
diff --git a/templates/big5/subscribeack.txt b/templates/big5/subscribeack.txt
new file mode 100644
index 00000000..da7d8b67
--- /dev/null
+++ b/templates/big5/subscribeack.txt
@@ -0,0 +1,34 @@
+Åwªï±z¥[¤J %(real_name)s@%(host_name)s ¹q¤l½×¾Âªº°Q½×¦æ¦C!
+
+%(welcome)s
+
+±ý¦b¥»½×¾Âµo¨¥ , ½Ð email ¨ì :
+
+ %(emailaddr)s
+
+Ãö©ó¥»½×¾ÂªºÂ²¤¶¦b :
+
+ %(listinfo_url)s
+
+­Y±z·Q¨ú®ø­q¾\©ÎªÌÅܧó¬ÛÃö³]©w , ½Ð¨ì :
+
+ %(optionsurl)s
+%(umbrella)s
+
+±z¤]¥i¥HÂÇ¥Ñ email Åܧó³]©w­È , ½Ð email ¨ì:
+
+ %(real_name)s-request@%(host_name)s
+
+¼ÐÃD©Î¤º¤å½Ð¥u¿é¤J 'help' ³o­Ó³æ¦r(¤£»Ý¤Þ¸¹) ,
+±z´N¥i¥H¨ú±o«ü¾É¤å¥ó .(Ķª`:¤£«ØÄ³¦¹¤è®×)
+
+°²¨Ï±z­nÅܧó³]©w­È (¥]¬AÅܧó±K½X ) ©Î¨ú®ø­q¾\ , ³£»Ý­n±K½X .
+±zªº±K½X¬O :
+
+ %(password)s
+
+°²¨Ï±z§Ñ°O±K½X¤]¤£¥Î¾á¤ß , ¨C¤ë±z³£·|¦¬¨ì±z¦b%(host_name)s
+©Ò¦³­q¾\½×¾Âªº±K½X , ¤Î¦p¦ó¨ú®ø­q¾\©ÎÅܧó³]©wªº¤èªk .
+¦b±zªº³]©wºô­¶¤¤ , ¤]¦³¤@­Ó«ö¶s¥i¥H±N±zªº±K½X±Hµ¹±z .
+
+¦b«e­±½×¾Â²¤¶ªººô­¶¤¤ , ±z¥i­n¨D½×¾Â±N±z¦Û¤vªº±K½X±Hµ¹±z . \ No newline at end of file
diff --git a/templates/big5/userpass.txt b/templates/big5/userpass.txt
new file mode 100644
index 00000000..af4c4609
--- /dev/null
+++ b/templates/big5/userpass.txt
@@ -0,0 +1,17 @@
+³o¬O¤@«Ê´£¿ô±z¦p¦ó¨ú®ø­q¾\©ÎÅܧó "%(user)s" ¦b %(listname)s
+­q¾\ªº³]©w­È . ±z¥²¶·¦³±K½X¤~¯à¶i¦æ¤W­zªºÅܧó . ±z¦b %(listname)s
+ªº±K½X¬O :
+
+ %(password)s
+
+±ýÅܧó±z­q¾\ªº¬ÛÃö³]©w , ½Ð¦b¤U¦Cªººô­¶¤¤¿é¤J±K½X«á¦Û¦æÅܧó :
+
+ %(options_url)s
+
+±z¤]¥i¸g¥Ñ email Åܧó¿ï¶µ . ±z»Ý email ¨ì:
+
+ %(requestaddr)s
+
+«H¥ó¼ÐÃD©Î¤º¤å½Ð¶ñ¤J "help" , ±z¥i¥H¦¬¨ì email ªº«ü¥Ü.
+
+§Ú­ÌÅwªï¥ô¦ó°ÝÃD©Î«ØÄ³ ! ½Ð email µ¹ %(adminaddr)s.
diff --git a/templates/big5/verify.txt b/templates/big5/verify.txt
new file mode 100644
index 00000000..5241853e
--- /dev/null
+++ b/templates/big5/verify.txt
@@ -0,0 +1,17 @@
+%(listname)s -- ­q ¾\ ½T »{ «H -- request %(cookie)s
+
+§Ú­Ì¤w¦¬¨ì­q¾\¥Ó½Ð%(remote)s , ¥H±zªº email ±b¸¹ , <%(email)s> ,
+­q¾\¤F%(listaddr)s ¹q¤l½×¾Â . ¬°½T»{«e¶µ­q¾\ , ½Ð±z¦^«H¨ì
+%(requestaddr)s , ¦P®É½Ðª`·N¥H¤U¨Æ¶µ:
+
+-½Ð«O«ù«H¥óªº¼ÐÃDªº­ì»ª(¦^«H®É¦Û°Ê¥[¤Jªº "Re:" ¨S¦³¼vÅT)
+
+-©ÎªÌ , ¦b«H¥ó¤º¤å¼g¤J¦p¤U¦æ - ¦Ó¥B¶È­­¤@¦æ¤º¤å:
+
+confirm %(cookie)s
+
+(±z¥u­n±N³o«Ê«H­ì«Ê¤£°Êªº¦^«H§Y¥i , ¦]¬°«H¥ó¼ÐÃD¥i«O«ù¥¿
+½Tªº®æ¦¡ .)
+
+°²¨Ï±z¤£Ä@­q¾\(¥i¯à¥Ñ±zªº¦n¤Í¥N­q) , ½Ð¤£¥Î¦b·N³o«Ê½T»{«H.
+­YÁÙ¦³¨ä¥L¬ÛÃö­q¾\ªººÃ°Ý , ½Ð±z±N°ÝÃD email ¨ì %(listadmin)s.
diff --git a/templates/cs/admindbdetails.html b/templates/cs/admindbdetails.html
new file mode 100644
index 00000000..37cea1e1
--- /dev/null
+++ b/templates/cs/admindbdetails.html
@@ -0,0 +1,66 @@
+Administrativní po¾adavky mohou být zobrazeny dvìma zpùsoby. Buï
+<a href="%(summaryurl)s">hromadnì</a> a nebo <em>detailnì</em>.
+Pøi hromadném zobrazení jsou v¹echny po¾adavky pocházející od
+stejného u¾ivatele zobrazeny dohromady a mù¾e o nich být rozhodnuto
+najednou. Pøi detailním zobrazení je ka¾dý pøíspìvek zobrazen
+samostatnì a administrátor rozhoduje o ka¾dém pøíspìvku zvlá¹».
+Detailní zobrazení obsahuje navíc v¹echny hlavièky a èást z tìla
+zprávy.
+
+<p>Pro pozastavené pøíspìvky vyberte jednu z tìchto akcí:
+<ul>
+<li><b>Ponechat</b> - Nech zprávu èekat ve frontì, nemá to vliv na
+nastavení forwardování, to znamená, ¾e zprávu mù¾ete forwardovat
+a pøitom ponechat ve frontì
+
+<li><b>Akceptovat</b> - Roze¹li zprávu do konference. Pokud se
+nejedná o zprávu, ale o po¾adavek na pøihlá¹ení úèastníka, pøihlas
+ho.
+
+<li><b>Zamítnout</b> - Vra» zprávu odesílateli. Mù¾ete uvést i dùvod,
+který bude uveden v zamítavé odpovìdi. Zpráva bude z fronty
+vymazána. Pokud se jedná o po¾adavek na pøihlá¹ení, bude zamítnut.
+
+<li><b>Zahodit</b> - vhodné pro SPAM. Zpráva potichu zmizí, nikomu se
+nic neposílá. I kdy¾ se jedná o po¾adavek na pøihlá¹ení, nebude se
+posílat ¾ádné oznámení.
+</ul>
+
+<p>Vybráním volby <b>Ponechat</b> mù¾ete napø. ponechat zprávu ve
+frontì pro správce serveru. To vyu¾ijete asi pøedev¹ím u zpráv, které
+nejsou obyèejným spamem, ale vy¾adují dal¹í odvetné akce.
+
+S pomocí volby<b>Pøeposlat</b> mù¾ete kopii zprávy odeslat na adresu,
+kterou vyplníte do vstupního pole vedle této volby. Pokud potøebujete
+nìjaký pøíspìvek modifikovat, pøed rozesláním u¾ivatelùm, musíte si
+jej pøeposlat na svou adresu a pùvodní zprávu zahodit. Poté co zprávu
+upravíte, musíte ji poslat zpìt do konference, pøípadnì s hlavièkou
+<tt>Approved:</tt> do které doplníte heslo pro danou
+konferenci. Netiquetta vy¾aduje, abyste v takovém pøípadì do textu
+uvedli upozornìní, ¾e jste zprávu pozmìnili a vysvìtlili, proè jste
+to udìlali.
+
+<p>Pokud má pøispìvatel nastaven pøíznak moderovat, co¾ se typicky
+pou¾ívá u nových úèastníkù, kdy se nejdøíve èeká, jakou úroveò budou
+mít jejich pøíspìvky, mù¾ete souèasnì s propu¹tìním pøíspìvku do
+distribuce tento pøíznak zru¹it, tak¾e u¾ivatel bude moci nadále
+pøispívat sám.
+
+<p>Pokud odesílatel není úèastníkem konference, mù¾ete jeho emailovou
+adresu vlo¾it do <em>filtru odesílatelù</em>. Jak tyto filtry fungují
+je popsáno na <a href="%(filterurl)s">stránce s konfigurací filtrování
+</a>. Pøíspìvky mohou být na základì filtrù buï automaticky
+akceptovány, automaticky pozdr¾eny do rozhodnutí moderátora,
+automaticky vráceny a nebo automaticky zahozeny (SPAM). Pokud
+odesílatel je úèastníkem a nebo u¾ je zaveden ve filtrech, tato volba
+nebude k dispozici.
+
+<p>Pokud jste ji¾ pro¹li celou stránkou kliknìte na jejím horním nebo
+spodním okraji na tlaèítko <em>Potvrdit v¹echny zmìny</em>. Tím se
+pøenesou provedené zmìny do databáze a server podle daných pokynù provede
+potøebné operace. Pokud u nìkteré polo¾ky nevyberete ani jednu volbu,
+polo¾ka nebude nijak ovlivnìna a zùstane ulo¾ena v databázi. Budete o ni
+moci rozhodnout kdykoliv pøí¹tì.
+
+
+<p><a href="%(summaryurl)s">Zpìt na pøehled èekajících po¾adavkù</a>.
diff --git a/templates/cs/admindbpreamble.html b/templates/cs/admindbpreamble.html
new file mode 100644
index 00000000..896e94e0
--- /dev/null
+++ b/templates/cs/admindbpreamble.html
@@ -0,0 +1,14 @@
+Na této stránce naleznete v¹echny pøíspìvky do konference <em>%(listname)s</em>,
+které nebyly z nìjakého dùvodu rozeslány a èekají na Va¹e rozhodnutí.
+Momentálnì jsou zobrazeny %(description)s
+
+<p>U ka¾dého administrativního po¾adavku musíte vybrat akci, která se
+s ním má provést a nakonec vybrané akce provedete kliknutím na
+<b>Potvrdit v¹echny zmìny</b>. Podrobnìj¹í informace o tom, jak
+zacházet s administrativním rozhraním naleznete
+<a href="%(detailsurl)s">zde</a>.
+
+<p>Takté¾ si mù¾ete prohlédnout pøehled v¹ech
+<a href="%(summaryurl)s">èekajících po¾adavkù</a> zobrazený tak, ¾e
+pøíspìvky od jednoho pøispìvatele jsou slouèeny dohromady a mù¾ete
+o nich rozhodnout souèasnì.
diff --git a/templates/cs/admindbsummary.html b/templates/cs/admindbsummary.html
new file mode 100644
index 00000000..51e4fb8a
--- /dev/null
+++ b/templates/cs/admindbsummary.html
@@ -0,0 +1,18 @@
+Pøehled po¾adavkù pro konferenci <a href="%(adminurl)s"><em>%(listname)s</em></a>.
+
+Tato stránka obsahuje pøehled v¹ech po¾adavkù pro administrátora
+setøídìný tak, ¾e po¾adavky od jednoho u¾ivatele jsou slouèeny
+dohromady a mù¾e o nich být rozhodnuto najednou.
+
+Nejdøíve jsou zaøazeny po¾adavky na pøihlá¹ení a odhlá¹ení a za nimi
+pøípadnì pøíspìvky, které èekají na schválení distribuce moderátorem.
+
+<p>U ka¾dého administrativního po¾adavku musíte vybrat akci, která se
+s ním má provést a nakonec vybrané akce provedete kliknutím na
+<b>Potvrdit v¹echny zmìny</b>. Podrobnìj¹í informace o tom, jak
+zacházet s administrativním rozhraním naleznete
+<a href="%(detailsurl)s">zde</a>.
+
+<p>Takté¾ si mù¾ete prohlédnout detailní pøehled v¹ech
+<a href="%(viewallurl)s">èekajících po¾adavkù</a> kde je ka¾dý
+pøíspìvek zobrazen samostatnì.
diff --git a/templates/cs/adminsubscribeack.txt b/templates/cs/adminsubscribeack.txt
new file mode 100644
index 00000000..5db6c9ca
--- /dev/null
+++ b/templates/cs/adminsubscribeack.txt
@@ -0,0 +1,3 @@
+%(member)s byl úspì¹nì pøihlá¹en do konference %(listname)s.
+
+
diff --git a/templates/cs/adminunsubscribeack.txt b/templates/cs/adminunsubscribeack.txt
new file mode 100644
index 00000000..fc90d833
--- /dev/null
+++ b/templates/cs/adminunsubscribeack.txt
@@ -0,0 +1,2 @@
+%(member)s byl odhlá¹en z konference %(listname)s.
+
diff --git a/templates/cs/admlogin.html b/templates/cs/admlogin.html
new file mode 100644
index 00000000..4355c218
--- /dev/null
+++ b/templates/cs/admlogin.html
@@ -0,0 +1,36 @@
+<html>
+<head>
+ <title>%(listname)s %(who)s pøihlá¹ení</title>
+</head>
+<body bgcolor="#ffffff">
+<FORM METHOD=POST ACTION="%(path)s">
+%(message)s
+ <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1">%(listname)s %(who)s
+ pøihlá¹ení</FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <TD><div ALIGN="Right">Heslo pro %(who)s:</div></TD>
+ <TD><INPUT TYPE="password" NAME="adminpw" SIZE="30"></TD>
+ </tr>
+ <tr>
+ <td colspan=2 align=middle><INPUT type="SUBMIT"
+ name="admlogin"
+ value="Pus» mì dovnitø...">
+ </td>
+ </tr>
+ </TABLE>
+ <p><strong><em>Pozor:</em></strong> Aby systém fungoval
+ správnì musíte mít povolené cookie ve Va¹em prohlí¾eèi.
+
+ <p>Cookies se pou¾ívají na to, abyste nemuseli jeden
+ ka¾dý po¾adavek znovu potvrzovat heslem. Zaniknou
+ pokud ukonèíte prohlí¾eè a nebo kdy¾ se odhlásíte.
+ Odhlásit se mù¾ete kliknutím na <em>Odhlásit</em>.
+ Tento odkaz uvidíte a¾ po úspì¹ném pøihlá¹ení.
+</FORM>
+</body>
+</html>
diff --git a/templates/cs/approve.txt b/templates/cs/approve.txt
new file mode 100644
index 00000000..486656a9
--- /dev/null
+++ b/templates/cs/approve.txt
@@ -0,0 +1,17 @@
+Vá¹ po¾adavek zaslaný na adresu %(requestaddr)s:
+
+ %(cmd)s
+
+byl pøedán správci konference.
+
+Pravdìpodobnì se pøihla¹ujete do uzavøené konference, která
+vy¾aduje pro pøihlá¹ení schválení správce. Pøípadnì automatický
+systém správy konference po¾adavku neporozumìl.
+
+O rozhodnutí správce budete informováni elektronickou po¹tou.
+
+Jakékoliv dal¹í dotazy smìøujte, prosím, na správce konference:
+
+ %(adminaddr)s
+
+
diff --git a/templates/cs/article.html b/templates/cs/article.html
new file mode 100644
index 00000000..84c674c1
--- /dev/null
+++ b/templates/cs/article.html
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+ <HEAD>
+ <TITLE> %(title)s
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:%(email_url)s?Subject=%(subject_url)s&In-Reply-To=%(in_reply_to_url)s">
+ <META NAME="robots" CONTENT="index,nofollow">
+ %(encoding)s
+ %(prev)s
+ %(next)s
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>%(subject_html)s</H1>
+ <B>%(author_html)s</B>
+ <A HREF="mailto:%(email_url)s?Subject=%(subject_url)s&In-Reply-To=%(in_reply_to_url)s"
+ TITLE="%(subject_html)s">%(email_html)s
+ </A><BR>
+ <I>%(datestr_html)s</I>
+ <P><UL>
+ %(prev_wsubj)s
+ %(next_wsubj)s
+ <LI> <B>Zprávy tøídìné podle:</B>
+ <a href="date.html#%(sequence)s">[ data ]</a>
+ <a href="thread.html#%(sequence)s">[ vlákna ]</a>
+ <a href="subject.html#%(sequence)s">[ subjektu ]</a>
+ <a href="author.html#%(sequence)s">[ autora ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+%(body)s
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ %(prev_wsubj)s
+ %(next_wsubj)s
+ <LI> <B>Zprávy tøídìné podle:</B>
+ <a href="date.html#%(sequence)s">[ data ]</a>
+ <a href="thread.html#%(sequence)s">[ vlákna ]</a>
+ <a href="subject.html#%(sequence)s">[ subjektu ]</a>
+ <a href="author.html#%(sequence)s">[ autora ]</a>
+ </LI>
+ </UL>
+<hr>
+<a href="%(listurl)s">Dal¹í informace o konferenci %(listname)s</a><br>
+</body></html>
diff --git a/templates/cs/bounce.txt b/templates/cs/bounce.txt
new file mode 100644
index 00000000..b27339c7
--- /dev/null
+++ b/templates/cs/bounce.txt
@@ -0,0 +1,16 @@
+Toto je zpráva od automatického systému pro detekci
+neplatných elektronických adres systému Mailman.
+
+
+ Konference: %(listname)s
+ Úèastník: %(addr)s
+ Akce: Èlenství %(negative)s%(did)s.
+ Dùvod: Pøekroèení poètu nedoruèitelných pøíspìvkù.
+ %(but)s
+
+%(reenable)s
+Zpráva, kterou se nedaøí doruèit je pøilo¾ena ní¾e.
+
+Dotazy? Kontaktuje správce Mailmana na %(owneraddr)s.
+
+
diff --git a/templates/cs/checkdbs.txt b/templates/cs/checkdbs.txt
new file mode 100644
index 00000000..9c2f6aae
--- /dev/null
+++ b/templates/cs/checkdbs.txt
@@ -0,0 +1,8 @@
+Konference %(real_name)s@%(host_name)s má %(count)d po¾adavkù, které
+èekají na Va¹e rozhodnutí na:
+
+ %(adminDB)s
+
+Prosím, rozhodnìte co nejdøíve o osudu èekajících po¾adavkù. Tato zpráva
+je zasílána jednou dennì, pokud nìjaké po¾adavky èekají na vyøízení.
+
diff --git a/templates/cs/convert.txt b/templates/cs/convert.txt
new file mode 100644
index 00000000..cb0d6494
--- /dev/null
+++ b/templates/cs/convert.txt
@@ -0,0 +1,42 @@
+Konference %(listname)s právì prodìlal velkou zmìnu. Od nynìj¹ka je
+provozována novým programem, který se jmenuje "Mailman". Doufám,
+¾e to vyøe¹í v¹echny problémy, které se mo¾ná døíve pøi bìhu
+konference vyskytly.
+
+A jak se to týká Vás?
+
+1) Pøíspìvky do konference budou nyní zasílány na adresu:
+ %(listaddr)s.
+ Je docela dobøe mo¾né, ¾e tato adresa se shoduje s adresou
+ pùvodní, zále¾í to na lokální situaci.
+
+2) Bude Vám pøidìleno unikátní heslo, které znemo¾ní, aby nìkdo
+ jiný modifikoval nastavení Va¹eho u¾ivatelského konta, pøípadnì
+ aby Vás bez Va¹eho vìdomí pøihlásil nebo odhlásil. Pokud heslo
+ zapomenete, ¾ádný problém. Heslo je znovu zasíláno ka¾dý mìsíc
+ a kromì toho si jej mù¾ete nechat zaslat z www stránky konference.
+ Pøípadnì se jej tam mù¾ete i zmìnit.
+
+3) Pokud máte pøístup WWW, mù¾ete kdykoliv mìnit nastavení
+ svého u¾ivatelského úètu na adrese:
+
+ %(listinfo_url)s
+
+ Zde se mù¾ete jednak pøihlásit a odhlásit a jednak mìnit nastavení
+ jako tøeba doèasný zákaz zasílání pøíspìvkù, zapnutí a vypnutí
+ digest re¾imu. (Pokud je digest aktivní, jsou Vám pøíspìvky zasílány
+ jen jednou za nastavený èas. Napø. dostanete veèer jeden dopis
+ obsahující pøíspìvky z celého dne.)
+
+4) Pokud nemáte pøístup k WWW, nevadí. Svùj úèet mù¾ete spravovat
+ i pomocí elektronické po¹ty. Za¹lete na adresu %(requestaddr)s
+ dopis obsahující slùvko help v tìle dopisu a obratem obdr¾íte
+ podrobný návod.
+
+Pokud máte jakékoliv dotazy nebo problémy, mù¾ete kontaktovat správce
+konference na adrese:
+%(adminaddr)s.
+
+Tato zprávy byla generována automaticky programem Mailman verze %(version)s.
+Jakékoliv dal¹í informace o tomto programu naleznete na adrese:
+http://www.list.org/
diff --git a/templates/cs/cronpass.txt b/templates/cs/cronpass.txt
new file mode 100644
index 00000000..006d42ec
--- /dev/null
+++ b/templates/cs/cronpass.txt
@@ -0,0 +1,21 @@
+Tato zpráva je zasílána jednou mìsíènì, aby Vás upozornila na stav
+Va¹eho èlenství v konferencích na serveru %(hostname)s
+Zároveò obsahuje pro pøipomenutí hesla pro správu Va¹eho èlenského
+konta a informace o správì konference.
+
+Pokud nav¹tívíte ní¾e uvedený odkaz, mù¾ete si zmìnit parametry
+svého èlenského konta, vèetnì pøihlá¹ení a odhlá¹ení.
+
+Kromì http pøístupu mù¾ete parametry svého èlenského konta
+mìnit zasláním po¾adavkù na '-request'adresu konference.
+Dopis zaslaný (napø. na, %(exreq)s) obsahující slovo 'help'
+v tìle dopisu vrátí zpìt kompletní popis ovládání konference
+elektronickou po¹tou.
+
+Pokud máte nìjaké dotazy, problémy, pøipomínky a tak podobnì,
+za¹lete je, prosím, na adresu %(owner)s. Dìkuji!
+
+Hesla pro %(useraddr)s:
+
+
+
diff --git a/templates/cs/disabled.txt b/templates/cs/disabled.txt
new file mode 100644
index 00000000..72d036b1
--- /dev/null
+++ b/templates/cs/disabled.txt
@@ -0,0 +1,24 @@
+Va¹e èlenství v konferenci %(listname)s
+bylo pozastaveno, z dùvodu: %(reason)s
+Toto varování bude zasláno je¹tì %(noticesleft)s
+a pokud nebudete reagovat, budete z konference odhlá¹en.
+
+Pokud máte zájem být i nadále èlenem, odpovìzte na tuto zprávu,
+tak, abyste nezmìnil to, co je napsáno v Subjectu. Nebo mù¾ete
+nav¹tívit stránku
+
+ %(confirmurl)s
+
+Kde mù¾ete své èlenství potvrdit. Také mù¾ete nav¹tívit stránku
+s konfigurací úèastníka na adrese:
+
+ %(optionsurl)s
+
+A na této stránce zmìnit parametry doruèování nebo emailovou
+adresu. Pro pøístup budete potøebovat heslo, které zní:
+
+ %(password)s
+
+Pokud máte nìjaké dal¹í otázky nebo problémy, kontaktujte správce na
+
+ %(owneraddr)s
diff --git a/templates/cs/emptyarchive.html b/templates/cs/emptyarchive.html
new file mode 100644
index 00000000..61ea2e76
--- /dev/null
+++ b/templates/cs/emptyarchive.html
@@ -0,0 +1,15 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+ <HEAD>
+ <title>Archiv konference %(listname)s</title>
+ <META NAME="robots" CONTENT="noindex,follow">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <h1>Archiv konference %(listname)s</h1>
+ <p>
+ Do této konference nebyl dosud zaslán ¾ádný pøíspìvek.
+ Proto je tento archiv prázdný. Více informací o konferenci
+ získáte na <a href="%(listinfo)s">informaèní stránce.</a>.
+ </p>
+ </BODY>
+ </HTML>
diff --git a/templates/cs/headfoot.html b/templates/cs/headfoot.html
new file mode 100644
index 00000000..88307afe
--- /dev/null
+++ b/templates/cs/headfoot.html
@@ -0,0 +1,30 @@
+Tento text mù¾e obsahovat <a
+href="http://www.python.org/doc/current/lib/typesseq-strings.html">formátovací
+pøíkazy Pythonu</a> které se nahrazují odpovídajícími hodnotami, pøi
+generování stránky. Nejdùle¾itìj¹í promìnné jsou:
+
+<ul>
+ <li><b><code>real_name</code></b> - `Hezké' jméno konference,
+ obvykle název, který má zachovánu velikost písmen tak jak je
+ zadán v konfiguraci.
+
+ <li><b><code>list_name</code></b> - Jméno konference, tak jak
+ se pou¾ívá v URL, tedy tam kde zále¾í na velikosti písmen (v¹echna
+ jsou pøevedena na malá).
+
+ <li><b><code>host_name</code></b> - Celé DNS jméno serveru na
+ kterém konference bì¾í.
+
+ <li><b><code>web_page_url</code></b> - Základní URL pro Mailman.
+ Pokud je následováno napø. tímto pøíkazem:
+ <em><code>listinfo/%(internal_name)s</code></em>
+ vede na stránku s informacemi o konferenci.
+
+ <li><b><code>description</code></b> - Krátký, charakteristický
+ popis konference, tak jak byl zadán pøi konfiguraci.
+
+ <li><b><code>info</code></b> - Kompletní, dlouhý, popis konference.
+
+ <li><b><code>cgiext</code></b> - pøípona pøidávaná k cgi scriptùm.
+
+</ul>
diff --git a/templates/cs/help.txt b/templates/cs/help.txt
new file mode 100644
index 00000000..501a5cc5
--- /dev/null
+++ b/templates/cs/help.txt
@@ -0,0 +1,41 @@
+Nápovìda pro konferenci %(listname)s:
+
+Tato konference je zaji¹»ována programem "Mailman" verze %(version)s.
+Pro její ovládání mù¾ete pou¾ít dále popsané pøíkazy. Pøíkaz mù¾e být
+zadán v tìle dopisu nebo v øádce subject: (v èeských programech
+pøekládáme jako vìc:). Je lep¹í, kdy¾ dopis nebude kromì pøíkazù
+obsahovat nic jiného (tøeba podpis) a pøíkazy musíte zasílat z
+adresy, ze které jste se pøihlásili. Pokud je omezeno pøispívání do
+konference pouze pro její úèastníky, musíte se pøihlásit z adresy,
+kterou budete pou¾ívat pro pøispívání. Také se mù¾ete pøihlásit
+nìkolikrát, ze v¹ech adres, které budete pou¾ívat a u nìkterých
+nastavit, ¾e si nepøejete zasílat pøíspìvky.
+
+Vìt¹inu zde popsaných akcí mù¾ete mnohem pohodlnìji provést pomocí www
+prohlí¾eèe na adrese:
+
+ %(listinfo_url)s
+
+Pokud zapomenete heslo, mù¾ete si jej nechat na vý¹e uvedené adrese
+zaslat na svou e-mailovou adresu.
+
+Pøíkazy vztahující se na urèitou konferenci (subscribe, who atd.)
+zasílejte na tzv. request adresu, která má tvar
+jméno_konference-request@..., tedy napøíklad pro konferenci, které se
+jmenuje mailman na adresu mailman-request@....
+
+Konvence zápisu: slova uvedená mezi ostrými závorkami "<>" oznaèují
+povinné parametry, které musí být u pøíkazu uvedeny, slova v hranatých
+závorkách "[]" jsou nepovinné parametry, které uvedete jen tehdy, kdy¾
+po¾adujete nìjakou zvlá¹tní konfiguraci. Závorky "<>" a "[]" nejsou
+souèástí pøíkazù a neuvádìjí se.
+
+Systém rozumí následujícím pøíkazùm:
+
+ %(commands)s
+
+Pøíkazy zasílejte na adresu %(requestaddr)s
+
+Pøípadnì dotazy nebo námìty zasílejte na adresu
+
+ %(adminaddr)s
diff --git a/templates/cs/listinfo.html b/templates/cs/listinfo.html
new file mode 100644
index 00000000..b8066ea8
--- /dev/null
+++ b/templates/cs/listinfo.html
@@ -0,0 +1,141 @@
+<!-- $Revision: 6023 $ -->
+<HTML>
+ <HEAD>
+ <TITLE>Informace o konferenci<MM-List-Name></TITLE>
+
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+
+ <P>
+ <TABLE COLS="1" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1"><MM-List-Name> --
+ <MM-List-Description></FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <p>&nbsp;
+ </td>
+ </tr>
+ <tr>
+ <TD COLSPAN="1" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000">Konference <MM-List-Name></FONT></B>
+ </TD>
+ <TD COLSPAN="1" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <MM-lang-form-start><MM-displang-box> <MM-list-langs>
+ <MM-form-end>
+ <MM-Subscribe-Form-Start>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <P><MM-List-Info></P>
+ <p> Pokud si chcete prohlédnou pøedchozí pøíspìvky
+ v této konferenci, nav¹tivte
+ <MM-Archive>archiv konference <MM-List-Name>
+ </MM-Archive>.
+ <MM-Restricted-List-Message>
+ </p>
+ </TD>
+ </TR>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000">Jak komunikovat s konferencí <MM-List-Name></FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ Pøíspìvky zasílejte na adresu:
+ <A HREF="mailto:<MM-Posting-Addr>"><MM-Posting-Addr></A>.
+
+ <p>Pokud se chcete pøihlásit, nebo nìjak konfigurovat své u¾ivatelské konto,
+ mù¾ete tak uèinit právì zde.
+ </td>
+ </tr>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000">Pøihlá¹ení do konference <MM-List-Name></FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <P>
+ Pro pøihlá¹ení do konference <MM-List-Name> musíte vyplnit následující formuláø.
+ <MM-List-Subscription-Msg>
+ <ul>
+ <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"
+ WIDTH="70%" HEIGHT= "112">
+ <TR>
+ <TD BGCOLOR="#dddddd" WIDTH="55%">Va¹e e-mailová adresa:</TD>
+ <TD WIDTH="33%"><MM-Subscribe-Box>
+ </TD>
+ <TD WIDTH="12%">&nbsp;</TD></TR>
+ <tr>
+ <td bgcolor="#dddddd" width="55%">Va¹e jméno (nepovinné):</td>
+ <td width="33%"><mm-fullname-box></td>
+ <TD WIDTH="12%">&nbsp;</TD></TR>
+ <TR>
+ <TD COLSPAN="3"><FONT SIZE=-1>Musíte zadat heslo pro ochranu svého konta
+ pøed nepovolanými osobami. V ¾ádném pøípadì nepou¾ívejte ¾ádné heslo, které
+ pou¾íváte na nìjakém jiném systému, pøípadnì heslo, které je potøeba
+ utajovat. Heslo je pøená¹eno bez jakéhokoliv zabezpeèení a navíc
+ Vám bude zasíláno elektronickou po¹tou.
+ <p>
+ Pokud heslo nezadáte, systém Vám pøidìlí náhodné heslo, které Vám
+ bude zasláno mailem.
+ <MM-Reminder>
+ </TD>
+ </TR>
+ <TR>
+ <TD BGCOLOR="#dddddd">Zvolte si heslo:</TD>
+ <TD><MM-New-Password-Box></TD>
+ <TD>&nbsp;</TD></TR>
+ <TR>
+ <TD BGCOLOR="#dddddd">A je¹tì jednou to samé pro kontrolu:</TD>
+ <TD><MM-Confirm-Password></TD>
+ <TD>&nbsp; </TD></TR>
+ <tr>
+ <TD BGCOLOR="#dddddd">Jaký jazyk preferujete pro komunikaci s mailmanem?</TD>
+ <TD> <MM-list-langs></TD>
+ <TD>&nbsp; </TD></TR>
+ <mm-digest-question-start>
+ <tr>
+ <td>Pøejete si dostávat pøíspìvky jen jednou dennì, v¹echny v jednom
+ dopise? Tuto volbu znáte asi jako digest.
+ </td>
+ <td><MM-Undigest-Radio-Button> Ne
+ <MM-Digest-Radio-Button> Ano
+ </TD>
+ </tr>
+ <mm-digest-question-end>
+ <tr>
+ <td colspan="3">
+ <center><MM-Subscribe-Button></P></center>
+ </TABLE>
+ <MM-Form-End>
+ </ul>
+ </td>
+ </tr>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <a name="subscribers">
+ <B><FONT COLOR="#000000">Úèastníci konference <MM-List-Name></FONT></B></a>
+ </TD>
+ </TR>
+ <tr>
+ <TD COLSPAN="2" WIDTH="100%">
+ <MM-Roster-Form-Start>
+ <MM-Roster-Option>
+ <MM-Form-End>
+ <p>
+ <MM-Options-Form-Start>
+ <MM-Editing-Options>
+ <MM-Form-End>
+ </td>
+ </tr>
+ </table>
+<MM-Mailman-Footer>
+</BODY>
+</HTML>
diff --git a/templates/cs/masthead.txt b/templates/cs/masthead.txt
new file mode 100644
index 00000000..c5b57447
--- /dev/null
+++ b/templates/cs/masthead.txt
@@ -0,0 +1,16 @@
+Pøíspìvky do konference %(real_name)s zasílejte na adresu:
+ %(got_list_email)s
+
+Pro pøihlá¹ení nebo odhlá¹ení pou¾ijte WWW rozhraní na adrese"
+ %(got_listinfo_url)s
+nebo pou¾ijte elektronickou po¹tu, za¹lete slovo help v tìle dopisu
+na adresu
+ %(got_request_email)s
+
+Správce konference mù¾ete nalézt na adrese
+ %(got_owner_email)s
+
+Kdy¾ budete odpovídat na pøíspìvek, zmìòte, prosím, Subject: na
+nìco rozumnìj¹ího ne¾ je:
+"Re: Contents of %(real_name)s digest..."
+
diff --git a/templates/cs/newlist.txt b/templates/cs/newlist.txt
new file mode 100644
index 00000000..868c814c
--- /dev/null
+++ b/templates/cs/newlist.txt
@@ -0,0 +1,40 @@
+Právì pro Vás byla vytvoøena konference `%(listname)s'.
+Následují informace o tom, jak s konferencí zacházet.
+
+Va¹e heslo, pro správu konference je:
+
+ %(password)s
+
+Toto heslo budete potøebovat pro konfiguraci konference, pro
+vyøizování administrativních úkonù jako tøeba akcetapce pøihlá¹ení
+úèastníka do uzavøené konference nebo pro akceptaci pøíspìvkù do
+moderovaných konferencí.
+
+Na následující adrese mù¾ete nakonfigurovat svou konferenci.
+
+ %(admin_url)s
+
+U¾ivatelé budou ke konferenci pøistupovat pøes stránku:
+
+ %(listinfo_url)s
+
+Vzhled tìchto stránek mù¾ete mìnit dle své úvahy, ale budete
+potøebovat alespoò základní znalosti HTML.
+
+U¾ivatelé mohou vyu¾ívat i emailové rozhraní
+konference. Administrovat pøes nìj konferenci ale není mo¾né. Jak se
+toto rozhraní pou¾ívá mù¾ete zjistit zasláním pøíkazu help v tìle
+dopisu na tuto adresu:
+
+
+ %(requestaddr)s
+
+Pokud potøebujete odhlásit ruènì úèastníka konference, mù¾ete tak
+udìlat pøes stránku s informacemi o konferenci, kliknutím seznam
+úèastníkù a potom na pøíslu¹nou e-mailovou adresu. Jako heslo pou¾ijte
+své administrátorské heslo. Také mù¾ete stejným zpùsobem nastavovat
+úèastníkùm parametry jejich kont.
+
+Pokud máte nìjaké dotazy, zasílejte je na adresu
+%(siteowner)s, pokud to ov¹em není Va¹e vlastní adresa.
+
diff --git a/templates/cs/options.html b/templates/cs/options.html
new file mode 100644
index 00000000..8748b2fb
--- /dev/null
+++ b/templates/cs/options.html
@@ -0,0 +1,293 @@
+<!-- $Revision: 6023 $ -->
+<html>
+<head>
+ <link rel="SHORTCUT ICON" href="<mm-favicon>">
+ <title><MM-Presentable-User> Konfigurace konference <MM-List-Name></title>
+
+</head>
+<BODY BGCOLOR="#ffffff">
+ <TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#99CCFF"><B>
+ <FONT COLOR="#000000" SIZE=+1>
+ <MM-List-Name> Nastavení pro u¾ivatele: <MM-Presentable-User>
+ </FONT></B></TD></TR> </TABLE>
+<p>
+<table width="100%" border="0" cellspacing="5" cellpadding="5">
+ <tr><td>
+ <b>U¾ivatel <MM-Presentable-User></b>, konfigurace
+ u¾ivatelského úètu pro konferenci <MM-List-Name>.
+ </td><td><MM-Form-Start><mm-logout-button><MM-Form-End></td>
+ </tr><tr>
+ <td colspan="2">
+ <MM-Case-Preserved-User>
+
+ <MM-Disabled-Notice>
+
+ <p><mm-results>
+ </td>
+ </tr>
+</table>
+
+<MM-Form-Start>
+<p>
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#FFF0D0" colspan="2">
+ <FONT COLOR="#000000">
+ <B>Zmìna konfigurace pro konferenci <MM-List-Name></B>
+ </FONT></TD></TR>
+ <tr><td colspan="2">Mù¾ete zmìnit e-mailovou adresu, na kterou se
+ zasílají pøíspìvky. Zadejte novou adresu do tohoto pole. Na Va¹i
+ stávající adresu bude zaslána ¾ádost o ovìøení a zmìna bude
+ provedena teprve po potvrzení.
+
+ <p>Na potvrzení budeme èekat <mm-pending-days> dní.
+
+ <p>Mù¾ete si nastavit i své jméno, jako napø.
+ <em>Petr Novák</em>.
+
+ <p>Pokud se mají provedené zmìny projevit ve v¹ech
+ konferencích na tomto serveru, musíte za¹krtnout volbu
+ <em>Zmìnit globálnì</em>.
+
+ </td></tr>
+ <tr><td><center>
+ <table border="0" cellspacing="2" cellpadding="2" width="80%" cols="2">
+ <tr><td bgcolor="#dddddd"><div align="right">Nová adresa:</div></td>
+ <td><mm-new-address-box></td>
+ </tr>
+ <tr><td bgcolor="#dddddd"><div align="right">Znovu pro potvrzení:
+ </div></td>
+ <td><mm-confirm-address-box></td>
+ </tr>
+ </tr></table></center>
+ </td>
+ <td><center>
+ <table border="0" cellspacing="2" cellpadding="2" width="80%" cols="2">
+ <tr><td bgcolor="#dddddd"><div align="right">Celé jméno
+ (nepovinné):</div></td>
+ <td><mm-fullname-box></td>
+ </tr>
+ </table></center>
+ </td>
+ </tr>
+ <tr><td colspan="2"><center><mm-change-address-button>
+ <p><mm-global-change-of-address>Zmìnit globálnì</center></td>
+ </tr>
+</table>
+
+<p>
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING=5" CELLPADDING="5">
+ <TR><TD WIDTH="50%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+<B>Odhlá¹ení z <MM-List-Name></B>
+
+ <TD WIDTH="50%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+<B>Va¹e ostatní pøihlá¹ené konference na <MM-Host></B>
+ </FONT></TD></TR>
+
+ <tr><td>
+ Pro odhlá¹ení za¹krtnìte políèko a kliknìte na tlaèítko
+ Odhlásit. <strong>Pozor:</strong>
+ Zmìna se projeví okam¾itì.
+ <p>
+ <center><MM-Unsubscribe-Button></center></td>
+ <td>
+ Mù¾ete si zobrazit seznam v¹ech dal¹ích konferencí na tomto
+ serveru, jejich¾ jste èleny. Pokud zvolíte tuto volbu,
+ promítnou se zde provedené zmìny i do v¹ech ostatních kont.
+ <p>
+ <center><MM-Other-Subscriptions-Submit></center>
+ </TD></TR>
+</table>
+
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD COLSPAN=2 WIDTH="100%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>Va¹e heslo pro <MM-List-Name></B>
+ </FONT></TD></TR>
+
+ <tr valign="TOP"><td WIDTH="50%">
+ <a name=reminder>
+ <center>
+ <h3>Zapomnìli jste heslo?</h3>
+ </center>
+ Kliknìte na toto tlaèítko a heslo Vám bude zasláno na Va¹í
+ e-mailovou adresu.
+ <p>
+ <MM-Umbrella-Notice>
+ <center>
+ <MM-Email-My-Pw>
+ </center>
+ </td>
+
+ <td WIDTH="50%">
+ <a name=changepw>
+ <center>
+ <h3>Zmìna hesla</h3>
+ <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2" WIDTH="70%" COLS=2>
+ <TR><TD BGCOLOR="#dddddd">Nové heslo:</TD>
+ <TD><MM-New-Pass-Box></TD>
+ </TR>
+ <TR>
+ <TD BGCOLOR="#dddddd">A je¹tì jednou nové pro kontrolu:</TD>
+ <TD><MM-Confirm-Pass-Box></TD>
+ </TR>
+</table>
+ <MM-Change-Pass-Button>
+ <p><center><mm-global-pw-changes-button>Zmìnit globálnì.
+ </TABLE>
+
+<p>
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+<B>Nastavení Va¹eho konta pro konferenci <MM-List-Name> </B>
+ </FONT></TD></TR>
+</table>
+
+<p>
+<i><strong>Aktuální hodnoty jsou za¹krtnuty</strong></i><p>
+
+<p>Pozor, u nìkterých voleb je checkbox <em>Nastavit globálnì</em>.
+Pokud jej za¹krtnete, provedou se zmìny ve v¹ech konferencích, do
+kterých jste pøihlá¹eni na tomto serveru. Pokud chcete vìdìt, které to
+jsou, kliknìte na <em>Seznam ostatních konferencí</em> nahoøe na stránce.
+<p>
+<TABLE BORDER="0" CELLSPACING="3" CELLPADDING="4" WIDTH="100%">
+ <tr><TD BGCOLOR="#cccccc">
+ <a name="disable">
+ <strong>Zakázat zasílání pøíspìvkù</strong></a><p>
+Vyberte tuto volbu, pokud si nepøejete dostávat ¾ádné pøíspìvky.
+</td><td bgcolor="#cccccc">
+<mm-delivery-enable-button> Zasílat<br>
+<mm-delivery-disable-button> Nezasílat<br>
+ <mm-global-deliver-button><i>Nastavit globálnì</i>
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Zapnutí digest re¾imu</strong><p>
+Pokud je zapnut digest re¾im dostanete v¹echny pøíspìvky v jednom dopise
+jednou dennì. Pokud digest vypnete, dostanete pøíspìvky z posledního dne
+je¹tì v digest formì.
+ </td><td bgcolor="#cccccc">
+ <MM-Undigest-Radio-Button>Vypnuto<br>
+ <MM-Digest-Radio-Button>Zapnuto
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Pøejete si digest dostávat jako MIME zprávu nebo èistý
+ text?</strong><p>
+Pokud Vá¹ po¹tovní klient nedoká¾e pøeèíst MIME zprávu, nastavte si zde
+volbu èistý text. Tato volba nemá ¾ádný význam, pokud není digest aktivní.<br>
+ </td><td bgcolor="#cccccc">
+ <MM-Mime-Digests-Button>MIME<br>
+ <MM-Plain-Digests-Button>Èistý text<p>
+ <mm-global-mime-button><i>Nastavit globálnìkk</i>
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Pøejete si dostávat pøíspìvky, které jste sami zaslali do
+konference?</strong><p>
+ </td><td bgcolor="#cccccc">
+ <mm-dont-receive-own-mail-button>Ne<br>
+ <mm-receive-own-mail-button>Ano
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong> Pøejete si dostávat oznámení o rozeslání vlastních pøíspìvkù?</strong><p>
+ </td><td bgcolor="#cccccc">
+ <mm-dont-ack-posts-button>Ne<br>
+ <mm-ack-posts-button>Ano
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>Chcete dostávat upozornìní na hesla?</strong><p>
+ Ve výchozí konfiguraci dostáváte jednou mìsíènì mailem
+ zprávu, kde je uveden seznam konferencí a k nim pøíslu¹ná
+ hesla, která potøebujete pro rùzné administrativní operace.
+ Pokud vyberete <em>Ne</em>, nebudete tento mail
+ dostávat. Pøípadnì zapomenuté heslo si mù¾ete poslat
+ z webovského rozhraní.
+ </td><td bgcolor="#cccccc">
+ <mm-dont-get-password-reminder-button>Ne<br>
+ <mm-get-password-reminder-button>Ano<p>
+ <mm-global-remind-button><i>Nastavit globálnì</i>
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Pøejete si být vidìt v seznamu úèastníkù?</strong><p>
+ Pokud si nìkdo zobrazí seznam úèastníkù, ve výchozí
+ konfiguraci vidí adresy v¹ech úèastníkù. Pokud na tomto
+ seznamu nechcete být uvedeni, mù¾ete zde zobrazení zakázat.
+ </td><td bgcolor="#cccccc">
+ <MM-Public-Subscription-Button>Zobrazit<br>
+ <MM-Hide-Subscription-Button>Skrýt
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Jakou øeè preferujete pro komunikaci s listserverem?</strong><p>
+ </td><td bgcolor="#cccccc">
+ <MM-list-langs>
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>Která témata Vás zajímají?</strong><p>
+ Pokud si vyberete jedno nebo více témat, mù¾ete
+ filtrovat pøíspìvky z konference a dostávat jedinì
+ ty, které Vás zajímají.
+
+ <p>U pøíspìvkù, které se nepodaøí zatøídit do ¾ádné
+ kategorie, závisí na nastavení dal¹í volby, jestli je
+ dostanete nebo ne. Pokud nezvolíte ¾ádné téma, budete
+ dostávat v¹echny pøíspìvky.
+ </td><td bgcolor="#cccccc">
+ <mm-topics>
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>Chcete dostávat pøíspìvky, které se nepodaøilo
+ zaøadit do ¾ádné kategorie?</strong><p>
+
+ Tato volba má smysl jedinì pokud jste si v pøedchozí
+ volbì vybral nìjaké téma. Pokud zde
+ odpovíte <em>Ne</em> nebudete dostávat ¾ádné
+ pøíspìvky, které nespadají do Va¹ich témat, jinak
+ budete dostávat i nezatøíditelné.
+ </td><td bgcolor="#cccccc">
+ <mm-suppress-nonmatching-topics>Ne<br>
+ <mm-receive-nonmatching-topics>Ano
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>Eliminuj duplicitní pøíspìvky?</strong><p>
+
+ Pokud dostane listserver k rozeslání pøíspìvek
+ jste uvedeni v hlavièèe <tt>To:</tt>
+ nebo <tt>Cc:</tt> dostanete pøíspìvek dvakrát, jednou
+ pøímo a jednou pøes konferenci. Pokud vyberete
+ volbu <em>Ano</em>, listserv takový pøíspìvek na va¹i
+ adresu neza¹le a vy dostanete jen ten, který vám
+ zasílá pøímo autor. Pokud vyberete volbu <em>Ne</em>
+ dostanete pøíspìvek pravdìpodobnì dvakrát.
+
+ <p>Pokud listserver rozesílá ka¾dý pøíspìvek zvlá¹»,
+ a vy máte nastaveno, ¾e si pøejete dostávat
+ duplicitní pøíspìvky, bude mít ka¾dý duplicitní
+ pøíspìvek pøidánu hlavièku
+ <tt>X-Mailman-Copy: yes</tt>.
+
+ </td><td bgcolor="#cccccc">
+ <mm-receive-duplicates-button>Ne<br>
+ <mm-dont-receive-duplicates-button>Ano<p>
+ <mm-global-nodupes-button><i>Nastavit globálnì</i>
+ </td></tr>
+
+ <tr><TD colspan="2">
+ <center><MM-options-Submit-button></center>
+ </td></tr>
+
+</table>
+</center>
+<p>
+<MM-Form-End>
+
+<MM-Mailman-Footer>
+</body>
+</html>
diff --git a/templates/cs/postack.txt b/templates/cs/postack.txt
new file mode 100644
index 00000000..e41f669b
--- /dev/null
+++ b/templates/cs/postack.txt
@@ -0,0 +1,8 @@
+Va¹e zpráva ve vìci:
+
+ %(subject)s
+
+byla úspì¹nì doruèena do konference %(listname)s.
+
+Informace o konferenci: %(listinfo_url)s
+Konfigurace Va¹eho úètu: %(optionsurl)s
diff --git a/templates/cs/postauth.txt b/templates/cs/postauth.txt
new file mode 100644
index 00000000..954e7485
--- /dev/null
+++ b/templates/cs/postauth.txt
@@ -0,0 +1,13 @@
+Proto¾e jste správcem konference, je po¾adován Vá¹ souhlas s distribucí
+následujícího pøíspìvku:
+
+ Konference: %(listname)s@%(hostname)s
+ Od: %(sender)s
+ Vìc: %(subject)s
+ Dùvod: %(reason)s
+
+Nav¹tivte, dle Va¹ich mo¾ností, následující adresu:
+
+ %(admindb_url)s
+
+pro povolení nebo zamítnutí po¾adavku.
diff --git a/templates/cs/postheld.txt b/templates/cs/postheld.txt
new file mode 100644
index 00000000..b687a2fe
--- /dev/null
+++ b/templates/cs/postheld.txt
@@ -0,0 +1,16 @@
+Va¹e zpráva pro konferenci '%(listname)s' ve vìci
+
+ %(subject)s
+
+Nebyla rozeslána. Pro její distribuci je nutný souhlas moderátora.
+
+Dùvod pozdr¾ení distribuce zprávy je:
+
+ %(reason)s
+
+Va¹e zpráva buï bude rozeslána nebo dostanete zprávu o rozhodnutí
+moderátora.
+
+Pokud si zprávu nepøejete rozeslat, mù¾ete si stornovat na této adrese:
+
+ %(confirmurl)s
diff --git a/templates/cs/private.html b/templates/cs/private.html
new file mode 100644
index 00000000..a7f75fdc
--- /dev/null
+++ b/templates/cs/private.html
@@ -0,0 +1,41 @@
+<html>
+<head>
+ <title>Konference %(realname)s - pøihlá¹ení pro pøístup do privátního archivu </title>
+</head>
+<body bgcolor="#ffffff">
+<FORM METHOD=POST ACTION="%(action)s/">
+%(message)s
+ <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1">Konference %(realname)s -
+ pøihlá¹ení pro pøístup do privátního archivu</FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <TD><div ALIGN="Right">Emailová adresa:</div></TD>
+ <TD><INPUT TYPE="text" NAME="username" SIZE="30"></TD>
+ </tr>
+ <tr>
+ <TD><div ALIGN="Right">Heslo:</div></TD>
+ <TD><INPUT TYPE="password" NAME="password" SIZE="30"></TD>
+ </tr>
+ <tr>
+ <td colspan=2 align="middle"><INPUT type="SUBMIT"
+ name="submit"
+ value="Pus» mì dovnitø...">
+ </td>
+ </tr>
+ </TABLE>
+ <p><strong><em>Pozor:</em></strong> Aby systém fungoval
+ správnì musíte mít povolené cookie ve Va¹em prohlí¾eèi.
+
+ <p>Cookies se pou¾ívají na to, abyste nemuseli jeden
+ ka¾dý po¾adavek znovu potvrzovat heslem. Zaniknou
+ pokud ukonèíte prohlí¾eè a nebo kdy¾ se odhlásíte.
+ Odhlásit se mù¾ete kliknutím na <em>Odhlásit</em>.
+ Tento odkaz uvidíte a¾ po úspì¹ném pøihlá¹ení.
+
+</FORM>
+</body>
+</html>
diff --git a/templates/cs/refuse.txt b/templates/cs/refuse.txt
new file mode 100644
index 00000000..83ec5334
--- /dev/null
+++ b/templates/cs/refuse.txt
@@ -0,0 +1,12 @@
+Vá¹ po¾adavek pro konferenci %(listname)s
+
+ %(request)s
+
+byl zamítnut správcem konference. Správce uvedl následující dùvod zamítnutí
+po¾adavku:
+
+"%(reason)s"
+
+Jakékoliv dotazy nebo pøipomínky zasílejte laskavì na adresu:
+
+ %(adminaddr)s
diff --git a/templates/cs/roster.html b/templates/cs/roster.html
new file mode 100644
index 00000000..da790b47
--- /dev/null
+++ b/templates/cs/roster.html
@@ -0,0 +1,54 @@
+<!-- $Revision: 5338 $ -->
+<HTML>
+ <HEAD>
+ <TITLE>Úèastníci konference <MM-List-Name></TITLE>
+
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+
+ <P>
+ <TABLE WIDTH="100%" COLS="1" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1"> Úèastníci konference <MM-List-Name>
+ </FONT></B>
+ </TD>
+ </TR>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" ALIGN="CENTER">
+
+ <P align = "right"> <MM-lang-form-start><MM-displang-box>
+ <MM-list-langs><MM-form-end></p>
+
+ <P>
+ Kliknìte na svou adresu. Vstoupíte tím na stránku na které si
+mù¾ete libovolnì konfigurovat své úèastnické konto. <br>
+<I>(Úèastníci v závorkách mají zakázáno doruèování po¹ty. )</I></P>
+ </TD>
+ </TR>
+ <TR WIDTH="100%" VALIGN="top">
+ <TD BGCOLOR="#FFF0D0" WIDTH="50%">
+ <center>
+ <B><FONT COLOR="#000000"><MM-Num-Reg-Users>
+ bì¾ných úèastníkù konference <MM-List-Name>:</FONT></B>
+ </center>
+ </TD>
+ <TD BGCOLOR="#FFF0D0" WIDTH="50%">
+ <center>
+ <B><FONT COLOR="#000000"><MM-Num-Digesters> Úèastníkù konference
+<MM-List-Name> vyu¾ívá digest:</FONT></B>
+ </center>
+ </TD>
+ </TR>
+ <TR VALIGN="top">
+ <td>
+ <P><MM-Regular-Users>
+ </td>
+ <td>
+ <P><MM-Digest-Users>
+ </td>
+ </tr>
+ </table>
+<MM-Mailman-Footer>
+</BODY>
+</HTML>
diff --git a/templates/cs/subauth.txt b/templates/cs/subauth.txt
new file mode 100644
index 00000000..e5f2d418
--- /dev/null
+++ b/templates/cs/subauth.txt
@@ -0,0 +1,10 @@
+Je nutné, aby jste rozhodl o pøihlá¹ení úèastníka do konference.
+
+ Úèastník: %(username)s
+ Konference: %(listname)s@%(hostname)s
+
+Nav¹tivte, prosím, adresu:
+
+ %(admindb_url)s
+
+pro vyøízení po¾adavku.
diff --git a/templates/cs/subscribe.html b/templates/cs/subscribe.html
new file mode 100644
index 00000000..98a73877
--- /dev/null
+++ b/templates/cs/subscribe.html
@@ -0,0 +1,9 @@
+<!-- $Revision: 4565 $ -->
+<html>
+<head><title><MM-List-Name> Výsledky pøihlá¹ení</title></head>
+<body bgcolor="white">
+<h1><MM-List-Name> Výsledky pøihlá¹ení</h1>
+<MM-Results>
+<MM-Mailman-Footer>
+</body>
+</html>
diff --git a/templates/cs/subscribeack.txt b/templates/cs/subscribeack.txt
new file mode 100644
index 00000000..9bade188
--- /dev/null
+++ b/templates/cs/subscribeack.txt
@@ -0,0 +1,34 @@
+Vítejte v konferenci %(real_name)s@%(host_name)s!
+%(welcome)s
+Pøíspìvky zasílejte na adresu:
+
+ %(emailaddr)s
+
+V¹eobecné informace o konferenci naleznete na adrese:
+
+ %(listinfo_url)s
+
+Pokud se nìkdy budete chtít odhlásit, nebo zmìnit nìjaké nastavení svého
+úèastnického konta (zmìnit heslo, digest a podobnì..), nav¹tivte
+konfiguraèní stránku na adrese:
+
+ %(optionsurl)s
+%(umbrella)s
+Konfiguraci mù¾ete udìlat i pomocí e-mailového klienta, pokud za¹lete na
+adresu:
+
+ %(real_name)s-request@%(host_name)s
+
+slovo help v tìle dopisu, dostanete podrobnìj¹í informace.
+
+Pro zmìnu konfigurace, nebo pro odhlá¹ení, budete potøebovat zadat heslo.
+Teï máte nastavené heslo:
+
+ %(password)s
+
+Pokud své heslo zapomenete, nevadí, ka¾dý mìsíc dostanete dopis, ve kterém
+Vám pøipomeneme nejen heslo, ale i do kterých konferencí jste na serveru
+%(host_name)s pøihlá¹eni.
+
+Kromì toho si kdykoliv mù¾ete nechat heslo zaslat kliknutím na tlaèítko na
+konfiguraèní stránce.
diff --git a/templates/cs/unsub.txt b/templates/cs/unsub.txt
new file mode 100644
index 00000000..96b0f5f4
--- /dev/null
+++ b/templates/cs/unsub.txt
@@ -0,0 +1,19 @@
+®ádost o potvrzení po¾adavku na odhlá¹ení z konference %(listname)s
+
+Dostali jsme po¾adavek od %(remote)s na odhlá¹ení Va¹í emailové adresy
+"%(email)s" z konference %(listaddr)s. Pro potvrzení tohoto po¾adavku
+musíte buï nav¹tívit toto URL:
+
+ %(confirmurl)s
+
+nebo zaslat na adresu %(requestaddr)s pøíkaz:
+
+ confirm %(cookie)s
+
+Zcela postaèí pokud odpovíte na tuto zprávu pøes reply (odpovìdìt)
+a ponecháte Subject: zprávy beze zmìny (pøípadné Re: èi podobný
+text pøidaný po¹tovním klientem nevadí).
+
+Pokud nechcete být odhlá¹eni, prostì tento po¾adavek ignorujte.
+Pokud máte dal¹í dotazy, kontaktujte správce konference na adrese:
+%(listadmin)s.
diff --git a/templates/cs/unsubauth.txt b/templates/cs/unsubauth.txt
new file mode 100644
index 00000000..a76596bf
--- /dev/null
+++ b/templates/cs/unsubauth.txt
@@ -0,0 +1,12 @@
+Proto¾e jste správcem konference, je po¾adován Vá¹ souhlas s pøihlá¹ením
+následujícího u¾ivatele:
+
+ U¾ivatel: %(username)s
+ email: %(listname)s@%(hostname)s
+
+
+Nav¹tivte, dle Va¹ich mo¾ností, následující adresu:
+
+ %(admindb_url)s
+
+pro povolení nebo zamítnutí po¾adavku.
diff --git a/templates/cs/userpass.txt b/templates/cs/userpass.txt
new file mode 100644
index 00000000..01ca3879
--- /dev/null
+++ b/templates/cs/userpass.txt
@@ -0,0 +1,18 @@
+Tento dopis dostáváte pro pøipomenutí hesla pro konferenci na %(fqdn_lname)s,
+do které jste pøihlá¹eni z adresy "%(user)s".
+
+Va¹e heslo pro konferenci %(listname)s je: %(password)s
+
+Abyste mohli mìnit nastavení svého úèastnického konta, nav¹tivte WWW
+stránku:
+
+ %(options_url)s
+
+Nebo za¹lete dopis obsahující slovo help na adresu:
+
+ %(requestaddr)s
+
+Budou Vám zaslány podrobnìj¹í instrukce.
+
+Máte nìjaký dotaz nebo pøipomínku? Pi¹te správci konference
+%(listname)s na adresu %(owneraddr)s.
diff --git a/templates/cs/verify.txt b/templates/cs/verify.txt
new file mode 100644
index 00000000..3c715746
--- /dev/null
+++ b/templates/cs/verify.txt
@@ -0,0 +1,26 @@
+Konference %(listname)s -- potvrzení pøihlá¹ení
+
+Obdr¾eli jsme po¾adavek z %(remote)s na pøihlá¹ení adresy
+"%(email)s", do konference %(listaddr)s. Pro potvrzení, ¾e tento po¾adavek
+pochází od Vás za¹lete, prosíme, zprávu na adresu %(requestaddr)s
+a buï:
+
+- ponechte øádek vìc: (Subject:) beze zmìny (pøípadné "Re:" doplnìné
+ automaticky po¹tovním klientem nevadí),
+
+- nebo vlo¾te do tìla dopisu následující øádek. Kromì nìj odstraòte
+ jakýkoliv dal¹í text, øádek musí být na první øádce a zaèínat hned
+ na zaèátku øádky.
+
+confirm %(cookie)s
+
+(Ve vìt¹inì po¹tovních klientù prostì za¹lete odpovìï na tento dopis.
+Obvykle je toti¾ øádek vìc: ponechán beze zmìny.)
+
+Nebo mù¾ete místo zaslání mailu nav¹tívit následující URL:
+
+ %(confirmurl)s
+
+Pokud se do konference pøihlásit nechcete, nebo dokonce nevíte, proè jste
+tento dopis dostali, prostì jej zahoïte. Pokud máte nìjaký dotaz nebo
+problém, prosím, kontaktujte správce na adrese: %(listadmin)s.
diff --git a/templates/de/admindbdetails.html b/templates/de/admindbdetails.html
new file mode 100644
index 00000000..0ada3641
--- /dev/null
+++ b/templates/de/admindbdetails.html
@@ -0,0 +1,78 @@
+<!-- based on en 2.1 -->
+Administrative Anfragen werden auf zwei verschiedene Arten angezeigt,
+und zwar in einer <a href="%(summaryurl)s">&Uuml;bersicht</a>, und
+in einer <em>Detailansicht</em>. Die Zusammenfassung zeigt offene
+Abonnement- und K&uuml;ndigungsanfragen sowie Nachrichten, die auf Ihre
+Genehmigung warten (sortiert nach der Emailadresse des Absenders).
+Die Detailansicht zeigt eine genauere Beschreibung jeder wartenden
+Nachricht, einschlie&szlig;lich aller Kopfzeilen, und einen Auszug des
+Nachrichtentextes.
+
+<p>Die folgenden Funktionen sind auf allen Seiten verf&uuml;gbar:
+
+<ul>
+<li><b>Verschieben.</b> -- Die Entscheidung auf sp&auml;ter verschieben. Offene
+ administrative Anfragen werden nicht bearbeitet, aber wartende
+ Nachrichten k&ouml;nnen zus&auml;tzlich weitergeleitet oder sichergestellt
+ werden (siehe unten).
+
+<p><li><b>Annehmen</b> -- Die Nachricht annehmen, und an die Liste
+ verteilen. F&uuml;r Antr&auml;ge betreffend Mitgliedschaft: Die
+ &Auml;nderung des Mitgliedsstatus wird genehmigt.
+
+<p><li><b>Ablehnen</b> -- Die Nachricht ablehnen, eine entsprechende
+ Mitteilung an den Absender senden, und das Original wegwerfen.
+ Antr&auml;ge betreffend Mitgliedschaft: Die &Auml;nderung des
+ Mitgliedsstatus wird abgelehnt. In beiden F&auml;llen sollte in der
+ nebenstehenden Textbox ein Grund f&uuml;r die Ablehnung angegeben
+ werden.
+
+<p><li><b>Wegwerfen</b> -- Das Original der Nachricht wegwerfen, ohne eine
+ entsprechende Mitteilung zu senden. F&uuml;r Antr&auml;ge betreffend
+ Mitgliedschaft wird der Antrag einfach weggeworfen, ohne den
+ Antragsteller dar&uuml;ber zu informieren. Das wird &uuml;blicherweise
+ die Reaktion auf sicher erkannten Spam (Werbemails) sein.</ul>
+
+<p>F&uuml;r wartende Nachrichten kann die Option <b>Sicherstellen</b>
+gew&auml;hlt werden, um eine Kopie der Nachricht f&uuml;r den Systemverwalter
+aufzuheben. Das ist dann sinnvoll, wenn es sich um beleidigende
+Nachrichten handelt, die zwar nicht verteilt werden sollen, aber f&uuml;r eine
+sp&auml;tere Untersuchung ben&ouml;tigt werden.
+
+<p>Aktivieren Sie die Option <b>Weiterleiten</b>, und geben Sie eine Zieladresse
+an, um die Nachricht an jemanden weiterzuleiten, der nicht Mitglied der Liste
+ist. Um eine Nachricht zu bearbeiten, bevor sie an die Liste verteilt wird,
+leiten sie diese an sich selbst (oder den Betreiber der Liste) weiter, und
+verwerfen das Original. Wenn die Nachricht dann in Ihrem Postfach angekommen
+ist, f&uuml;hren Sie die gew&uuml;nschten &Auml;nderungen am Text durch, und
+ senden die so
+modifizierte Nachricht mit einer <tt>Approved:</tt> Kopfzeile mit dem
+Listenpasswort als Wert zur&uuml;ck an die Liste. Es folgt den allgemeinen
+ Regeln der
+Netiquette, wenn Sie in derartigen F&auml;llen in der Nachricht darauf
+ hinweisen,
+dass der Text von Ihnen bearbeitet wurde.
+
+<p>Wenn der Absender ein moderiertes Mitglied der Liste ist, k&ouml;nnen Sie
+ optional
+auch das "moderiert"-Flag l&ouml;schen. Das ist dann n&uuml;tzlich, wenn Ihre
+ Liste so
+konfiguriert ist, dass neue Mitglieder eine Probezeit durchlaufen m&uuml;ssen,
+ und
+Sie entschieden haben, dass diesem Mitglied ein Senden an die Liste ohne weitere
+Genehmigung gestattet werden kann.
+
+<p>Wenn der Absender kein Mitglied der Liste ist, dann k&ouml;nnen sie dessen
+Emailadresse zu einem der <em>Absender-Adressfilter</em> hinzuf&uuml;gen. Diese
+sind im Punkt <a href="%(filterurl)s">Privatsph&auml;re</a> n&auml;her
+erkl&auml;rt, und hei&szlig;en <b>Auto-Annehmen</b> (Nachricht annehmen),
+ <b>Auto-Halten</b>
+(Nachricht zurückhalten), <b>Auto-Abweisen</b> (Nachricht abweisen), oder
+<b>Auto-Wegwerfen</b> (Nachricht wegwerfen). Diese Option ist nicht
+verf&uuml;gbar, wenn die Adresse des Absenders bereits in einem
+der Filter eingetragen ist.
+
+<p>Wenn Sie fertig sind, klicken Sie auf den <em>&Auml;nderungen speichern</em>
+Knopf am Beginn dieser Seite, damit werden alle gew&auml;hlten Optionen aktiv.
+
+<p><a href="%(summaryurl)s">Zur&uuml;ck zur &Uuml;bersicht</a>. \ No newline at end of file
diff --git a/templates/de/admindbpreamble.html b/templates/de/admindbpreamble.html
new file mode 100644
index 00000000..41d2629f
--- /dev/null
+++ b/templates/de/admindbpreamble.html
@@ -0,0 +1,32 @@
+Diese Seite enth&auml;lt die aktuellen administrativen Anfragen f&uuml;r die
+Mailingliste <em>%(listname)s</em> die Ihre Aufmerksamkeit ben&ouml;tigen.
+Zuerst sehen Sie die Liste der anstehenden Abonnementanfragen (falls es
+welche gibt), gefolgt von Emails, die Ihre Genehmigung erfordern.
+
+<p>W&auml;hlen Sie f&uuml;r jede Abonnementanfrage <b>Annehmen</b> oder
+<b>Ablehnen</b>. Sollten Sie eine Abonnementanfrage abweisen, k&ouml;nnen Sie
+optional einen Grund angeben.
+
+<p>W&auml;hlen Sie f&uuml;r jede zur&uuml;ckgehalte Email an die Liste eine der
+folgenden Aktionen aus: <ul>
+<li><b>Verschieben</b> - Die Entscheidung auf sp&auml;ter verschieben. Benutzen Sie
+diese Funktion, wenn Sie die Nachricht weiterleiten oder sicherstellen (siehe
+unten) m&ouml;chten, sie aber nicht sofort verwerfen wollen.
+<li><b>Annehmen</b> -
+Genehmigen und an die Liste senden.
+<li><b>Ablehnen</b> - Abweisen und eine entsprechende Nachricht an den Absender
+schicken. Die urspr&uuml;ngliche Nachricht wird weggeworfen.
+<li><b>Wegwerfen</b> - Die urspr&uuml;ngliche Nachricht wird weggeworfen,
+ohne den Absender dar&uuml;ber zu informieren, n&uuml;tzlich f&uuml;r Spam (Werbemails).</ul>
+
+<p>W&auml;hlen Sie <b>Sicherstellen</b>, wenn Sie eine Kopie der
+Nachricht f&uuml;r den Systemverwalter aufbewahren m&ouml;chten (zB wenn es sich um
+unfl&auml;tige oder beleidigende Nachrichten handelt). Aktivieren <b>Weiterleiten</b>
+und geben Sie den Empf&auml;nger an, falls Sie die Email an jemanden weiterleiten
+m&ouml;chten, der nicht Mitglied der Liste ist.
+
+<p>Wenn Sie fertig sind, klicken sie auf den <em>&Auml;nderungen speichern</em> Knopf
+am Kopf oder Fu&szlig; dieser Seite. Dieser Knopf l&auml;sst alle von Ihnen getroffenen
+Entscheidungen aktiv werden (wenn Sie f&uuml;r einige Nachrichten keine
+Entscheidung treffen, werden diese Nachrichten nicht aus der Datenbank der
+zu bearbeitenden Anfragen gel&ouml;scht).
diff --git a/templates/de/admindbsummary.html b/templates/de/admindbsummary.html
new file mode 100644
index 00000000..a2c5baf7
--- /dev/null
+++ b/templates/de/admindbsummary.html
@@ -0,0 +1,15 @@
+<!-- based on en 2.0 / StD-->
+Diese Seite zeigt eine &Uuml;bersicht der gegenw&auml;rtigen administrativen
+Anfragen f&uuml;r die <a href="%(adminurl)s"><em>%(listname)s</em>
+Mailingliste</a>, die auf Ihre Genehmigung warten. Als erstes sehen Sie eine
+Liste allf&auml;lliger Abonnement- und K&uuml;ndigungsanfragen, gefolgt von
+eventuellen Nachrichten, die Ihre Genehmigung erfordern, und daher gestoppt
+wurden.
+
+<p>Bitte w&auml;hlen Sie f&uuml;r jede Anfrage die zu treffende Ma&szlig;nahme
+aus, und klicken Sie auf den <b>Alle Daten senden</b> Knopf, wenn sie fertig
+sind. Eine <a href="%(detailsurl)s">detaillierte Anleitung</a> ist ebenfalls
+verf&uuml;gbar.
+
+<p>Sie k&ouml;nnen sich auch <a href="%(viewallurl)s">Details</a> zu allen
+gestoppten Nachrichten anzeigen lassen. \ No newline at end of file
diff --git a/templates/de/adminsubscribeack.txt b/templates/de/adminsubscribeack.txt
new file mode 100644
index 00000000..ea0ef08b
--- /dev/null
+++ b/templates/de/adminsubscribeack.txt
@@ -0,0 +1 @@
+%(member)s hat die Liste %(listname)s erfolgreich abonniert. \ No newline at end of file
diff --git a/templates/de/adminunsubscribeack.txt b/templates/de/adminunsubscribeack.txt
new file mode 100644
index 00000000..2cf00121
--- /dev/null
+++ b/templates/de/adminunsubscribeack.txt
@@ -0,0 +1,2 @@
+%(member)s ist nicht mehr Mitglied der Liste %(listname)s.
+
diff --git a/templates/de/admlogin.html b/templates/de/admlogin.html
new file mode 100644
index 00000000..384f1dc4
--- /dev/null
+++ b/templates/de/admlogin.html
@@ -0,0 +1,39 @@
+<html>
+<head>
+ <title>Anmeldung als %(listname)s-%(who)s</title>
+</head>
+<body bgcolor="#ffffff">
+<FORM METHOD=POST ACTION="%(path)s">
+%(message)s
+ <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1">Anmeldung als %(listname)s-%(who)s
+ </FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <TD><div ALIGN="Right">%(who)s-Passwort:</div></TD>
+ <TD><INPUT TYPE="password" NAME="adminpw" SIZE="30"></TD>
+ </tr>
+ <tr>
+ <td colspan=2 align=middle><INPUT type="SUBMIT"
+ name="admlogin"
+ value="Sesam, &ouml;ffne dich...">
+ </td>
+ </tr>
+ </TABLE>
+ <p><strong><em>Wichtig:</em></strong> Ab diesem Punkt m&uuml;ssen in Ihrem
+ Browser "cookies" aktiviert sein, da ansonsten keine Ihrer &Auml;nderungen
+ gespeichert wird.
+
+ <p>Mailmans Administrationsinterface benutzt sog. "session cookies",
+ damit Sie sich nicht f&uuml;r jede Administrationsaufgabe erneut
+ authentifizieren m&uuml;ssen. Diese "cookies" verfallen automatisch beim
+ Schlie&szlig;en Ihres Webbrowsers, Sie k&ouml;nnen Sie allerdings auch sofort
+ verfallen lassen, indem Sie auf den <em>Abmelden</em> Link unter
+ <em>Andere administrative T&auml;tigkeiten</em> klicken (den Sie sehen
+ werden, sobald Sie erfolgreich eingeloggt sind).
+</FORM>
+</body>
+</html>
diff --git a/templates/de/approve.txt b/templates/de/approve.txt
new file mode 100644
index 00000000..13e8b6e1
--- /dev/null
+++ b/templates/de/approve.txt
@@ -0,0 +1,15 @@
+Ihre Anfrage an %(requestaddr)s:
+
+ %(cmd)s
+
+wurde an die Person, die die Liste betreut, weitergeleitet.
+
+Das liegt wahrscheinlich daran, dass Sie eine sogenannte "geschlossene"
+Liste abonnieren möchten.
+
+Sie werden eine Benachrichtigungs-Email mit der Entscheidung des
+Listenverwalters über Ihren Abonnementswunsch erhalten.
+
+Fragen betreffend die Abonnementspolitik der Liste richten Sie bitte an:
+
+ %(adminaddr)s
diff --git a/templates/de/article.html b/templates/de/article.html
new file mode 100644
index 00000000..a74852a3
--- /dev/null
+++ b/templates/de/article.html
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+ <HEAD>
+ <TITLE> %(title)s
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:%(email_url)s">
+ <META NAME="robots" CONTENT="index,nofollow">
+ %(encoding)s
+ %(prev)s
+ %(next)s
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>%(subject_html)s
+ </H1>
+ <B>%(author_html)s
+ </B>
+ <A HREF="mailto:%(email_url)s"
+ TITLE="%(subject_html)s">%(email_html)s
+ </A><BR>
+ <I>%(datestr_html)s</I>
+ <P><UL>
+ %(prev_wsubj)s
+ %(next_wsubj)s
+ <LI> <B>Nachrichten sortiert nach:</B>
+ <a href="date.html#%(sequence)s">[ Datum ]</a>
+ <a href="thread.html#%(sequence)s">[ Thema ]</a>
+ <a href="subject.html#%(sequence)s">[ Betreff (Subject) ]</a>
+ <a href="author.html#%(sequence)s">[ Autor ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+%(body)s
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ %(prev_wsubj)s
+ %(next_wsubj)s
+ <LI> <B>Nachrichten sortiert nach:</B>
+ <a href="date.html#%(sequence)s">[ Datum ]</a>
+ <a href="thread.html#%(sequence)s">[ Thema ]</a>
+ <a href="subject.html#%(sequence)s">[ Betreff (Subject)]</a>
+ <a href="author.html#%(sequence)s">[ Autor ]</a>
+ </LI>
+ </UL>
+</body></html>
diff --git a/templates/de/bounce.txt b/templates/de/bounce.txt
new file mode 100644
index 00000000..12f18881
--- /dev/null
+++ b/templates/de/bounce.txt
@@ -0,0 +1,13 @@
+Dies ist eine Mailman-Verständigung betreffend die Unzustellbarkeit von
+Emails an eine bestimmte Adresse ("bounce").
+
+ Liste: %(listname)s
+ Abonnent: %(addr)s
+ Vorgang: Abonnement %(negative)s%(did)s.
+ Grund: Zu viele oder fatale Bounces
+ %(but)s
+
+%(reenable)s
+Die auslösende Nachricht ist weiter unten angehängt.
+
+Fragen? Kontaktieren Sie den Mailman Systemverwalter unter %(owneraddr)s.
diff --git a/templates/de/checkdbs.txt b/templates/de/checkdbs.txt
new file mode 100644
index 00000000..e61a7484
--- /dev/null
+++ b/templates/de/checkdbs.txt
@@ -0,0 +1,9 @@
+Die Mailingliste %(real_name)s@%(host_name)s hat %(count)d offene Anfragen, die
+auf Ihre Bearbeitung warten. Bitte nehmen Sie sich dieser Anfragen unter
+der Adresse
+
+ %(adminDB)s
+
+baldmöglichst an.
+
+Diese Benachrichtigung wird bei Bedarf täglich verschickt.
diff --git a/templates/de/convert.txt b/templates/de/convert.txt
new file mode 100644
index 00000000..f6406ede
--- /dev/null
+++ b/templates/de/convert.txt
@@ -0,0 +1,34 @@
+Die Mailingliste %(listname)s wurde einer tiefgreifenden Veränderung
+unterzogen: Sie läuft nun auf einer neuen Listserver-Software namens
+"Mailman". Damit werden (hoffentlich) viele Probleme gelöst, die die
+Verwaltung dieser Liste in der Vergangenheit aufgeworfen hat.
+
+Inwiefern sind Sie als Benutzer davon betroffen?
+
+1) Nachrichten an die Liste sollten an %(listaddr)s geschickt werden.
+
+2) Ein willkürlich gewähltes Passwort wurde Ihnen zugewiesen, damit niemand
+ohne Ihr Wissen Ihr Abonnement kündigen kann. Das Passwort wird Ihnen mit
+getrennter Post zugestellt, möglicherweise haben Sie es bereits erhalten.
+Keine Sorge, falls Sie das Passwort einmal vergessen sollten: Sie erhalten
+monatlich eine Erinnerungsnachricht zugeschickt.
+
+3) Wenn Sie Web-Zugriff haben, dann können sie darüber jederzeit Ihr
+Abonnement kündigen, den Empfang von Nachrichtensammlungen ein- bzw.
+ausschalten, zurückliegende Themen einsehen, usw. Die Adresse für diese
+Funktionen ist
+
+ %(listinfo_url)s
+
+4) Sollten Sie keinen Web-Zugriff haben, dann können Sie all diese
+Funktionen auch per Email nützen: Senden sie ein Mail an %(requestaddr)s mit
+nur dem Wort "help" (ohne Anführungszeichen) im Betreff oder im
+Nachrichtentext. In der automatisch generierten Antwort erhalten Sie dann
+weitere Instruktionen.
+
+Bitte wenden Sie sich mit allen Fragen oder Problemen mit dieser neuen
+Installation an: %(adminaddr)s
+
+Dies ist eine von Mailman %(version)s automatisch erstellte Nachricht. Für
+weitere Informationen zur Mailman Software besuchen Sie bitte die Mailman
+Homepage auf http://www.list.org/ .
diff --git a/templates/de/cronpass.txt b/templates/de/cronpass.txt
new file mode 100644
index 00000000..4affe8fb
--- /dev/null
+++ b/templates/de/cronpass.txt
@@ -0,0 +1,35 @@
+
+Dies ist die monatliche Infomail, die Sie über Ihre Mitgliedschaften in den
+Mailinglisten auf dem Server %(hostname)s informiert. Mailinglisten sind
+Diskussionsrunden oder Infoverteiler von Privatpersonen, Gruppen, Vereinen
+o.ä., in den Sie sich eingetragen haben.
+
+Mit dieser monatlichen Erinnerungsmail geben wir Ihnen die Informationen,
+wie Sie den Bezug der genannten Mailinglisten beenden, ihre
+eingetragene Mailadresse ändern lassen, bzw. andere persönliche
+Einstellungen vornehmen lassen können.
+
+ * Wenn Sie sich austragen wollen: LESEN SIE DIESE E-MAIL! *
+
+Bitte antworten Sie nicht auf diese e-Mail, ohne es nicht vorher selbst
+versucht zu haben.
+
+Zusätzlich zum Web-Interface können Sie solche Änderungen auch via Email
+vornehmen. Um detaillierte Informationen zu dieser Methode zu erhalten,
+schicken Sie bitte ein Email an die '-request' Adresse der Liste (z.B. an
+%(exreq)s), die nur das Wort "help" (ohne Anführungszeichen) im Betreff oder
+im Nachrichtentext enthält.
+
+Sie erhalten dann eine Antwort mit genauen Instruktionen.
+
+Wenn Sie Fragen, Probleme, Kommentare etc. haben, dann wenden Sie sich
+bitte an %(owner)s. Danke!
+
+Sie kriegen jetzt den Namen der Mailingliste, daneben das Kennwort (oft ein
+sechsstelliger Buchstabencode) aufgelistet. *UM SICH AUSZUTRAGEN* klicken Sie
+bitte auf den jeweils darunter stehenden Link und geben Sie dann das
+geforderte Kennwort ein. Achten Sie darauf, daß Ihre Mailsoftware den Link
+nicht "abschneidet"!
+
+Passwörter für die Mailadresse %(useraddr)s:
+
diff --git a/templates/de/disabled.txt b/templates/de/disabled.txt
new file mode 100644
index 00000000..0e0e45c2
--- /dev/null
+++ b/templates/de/disabled.txt
@@ -0,0 +1,26 @@
+Ihre Mitgliedschaft in der Mailingliste %(listname)s wurde wegen
+wiederholter Unzustellbarkeit vorübergehend ausgesetzt. Sie werden so lange
+keine Nachrichten dieser Liste mehr erhalten, bis Ihre Mitgliedschaft
+reaktiviert wird. Nach %(noticesleft)s weiteren Mitteilungen wie dieser wird
+Ihre Mitgliedschaft komplett gelöscht werden.
+
+Um Ihre Mitgliedschaft zu reaktivieren können Sie einfach auf diese
+Nachricht antworten (ohne die Betreff bzw. Subject-Zeile zu verändern), oder
+Sie besuchen die Rückmeldungsseite unter
+
+ %(confirmurl)s
+
+Sie können auch Ihre Mitgliedschafts-Seite besuchen:
+
+ %(optionsurl)s
+
+Dort können Sie verschiedenste Einstellungen, wie den Empfang von
+Nachrichtensammlungen oder Ihre Emailadresse, konfigurieren.
+Zur Erinnerung: Ihr Passwort für diese Liste lautet
+
+ %(password)s
+
+Bei Fragen oder Problemen wenden Sie sich bitte an den Betreiber dieser
+Liste, erreichbar unter:
+
+ %(owneraddr)s
diff --git a/templates/de/headfoot.html b/templates/de/headfoot.html
new file mode 100644
index 00000000..4e8d1b0d
--- /dev/null
+++ b/templates/de/headfoot.html
@@ -0,0 +1,32 @@
+<!-- updated to en 2.1 -->
+Dieser Text kann sogenannte
+<a href="http://www.python.org/doc/current/lib/typesseq-strings.html">Python
+format strings</a> nach dem Muster <b><code>%(attribut)s</code></b>
+enthalten, die durch listenspezifische Werte ersetzt werden.
+
+Mögliche derartige "Attribute" sind:
+
+<ul>
+ <li><b><code>real_name</code></b> - Der "hübsche" Name der Liste;
+üblicherweise der Listenname in Groß-/Kleinschreibung.
+
+ <li><b><code>list_name</code></b> - Der Name der Liste für diverse URLs,
+wo die Groß-/Kleinschreibung wichtig ist (aus Gründen der
+Abwärtskompatibilität funktioniert auch <code>_internal_name</code>).
+
+ <li><b><code>host_name</code></b> - Der FQDN (fully qualified domain
+name) des Listservers.
+
+ <li><b><code>web_page_url</code></b> - Die Basis-URL für Mailman. Daran
+wird zB <em><code>listinfo/%(internal_name)s</code></em> angehängt, um die
+URL der Infoseite der Liste zu erhalten.
+
+ <li><b><code>description</code></b> - Eine kurze Beschreibung der
+Mailingsliste.
+
+ <li><b><code>info</code></b> - Die ausführliche Beschreibung der
+Mailingliste.
+
+ <li><b><code>cgiext</code></b> - Die Dateinamenerweiterung für CGI
+scripts.
+</ul> \ No newline at end of file
diff --git a/templates/de/help.txt b/templates/de/help.txt
new file mode 100644
index 00000000..f93c690e
--- /dev/null
+++ b/templates/de/help.txt
@@ -0,0 +1,38 @@
+Hilfetext zur Mailingliste %(listname)s:
+
+Sie lesen den Hilfetext für Email-Befehle des Mailinglistenservers
+"Mailman", Version %(version)s. Im Folgenden werden Befehle beschrieben,
+die Sie senden können, um Informationen über Ihre Abonnements zu erhalten
+oder diese zu ändern. Alle Befehle können in der Betreffzeile (Subject)
+oder im Nachrichtentext (Body) stehen.
+
+Auf viele der folgenden Befehle kann auch über ein Webinterface
+zugegriffen werden, das Sie unter
+
+ %(listinfo_url)s
+
+finden. Insbesondere können Sie über das Webinterface veranlassen, dass
+Ihnen Ihr Passwort an die Abonnementadresse geschickt wird.
+
+Listenspezifische Befehle (subscribe, who, usw.) sollten an die *-request
+Adresse der Liste geschickt werden, für die 'mailman' Liste zB würde diese
+'mailman-request@...' lauten.
+
+Noch kurz zu den Beschreibungen: Worte in "<>" (spitzen Klammern) sind
+ERFORDERLICHE Angaben, Worte in "[]" (eckigen Klammern) sind OPTIONALE
+Angaben. Die Klammern "<>" oder "[]" gehören NICHT zu den Befehlen.
+
+Die folgenden Befehle sind gültig:
+
+ %(commands)s
+
+Alle Befehle sollten an
+
+ %(requestaddr)s
+
+gesendet werden.
+Fragen und Anliegen, die eines menschlichen Wesens bedürfen, sollten an
+
+ %(adminaddr)s
+
+gesendet werden.
diff --git a/templates/de/invite.txt b/templates/de/invite.txt
new file mode 100644
index 00000000..1d4ee50a
--- /dev/null
+++ b/templates/de/invite.txt
@@ -0,0 +1,20 @@
+Sie wurden vom Betreiber der Liste %(listname)s eingeladen, sich unter der
+Adresse "%(email)s" der %(listname)s-Liste anzuschließen. Sie können die
+Einladung annehmen, indem Sie einfach auf diese Nachricht antworten, wobei
+Sie die "Betreff:" (Subject) Zeile intakt lassen müssen.
+
+Alternativ können Sie auch die folgende Webseite besuchen:
+
+ %(confirmurl)s
+
+Oder Sie senden die folgende Zeile - und *nur* die folgende Zeile - in
+einer neuen Nachricht an %(requestaddr)s:
+
+ confirm %(cookie)s
+
+Bei den meisten Email-Programmen sollte es aber reichen, wenn Sie einfach
+auf "Antworten" klicken.
+
+Wenn Sie die Einladung nicht annehmen möchten, dann beachten Sie diese
+Nachricht einfach nicht weiter. Bei Fragen wenden Sie sich bitte an
+%(listowner)s.
diff --git a/templates/de/listinfo.html b/templates/de/listinfo.html
new file mode 100644
index 00000000..d1cea604
--- /dev/null
+++ b/templates/de/listinfo.html
@@ -0,0 +1,142 @@
+<!-- updated from Revision 1.1 -->
+<HTML>
+ <HEAD>
+ <TITLE><MM-List-Name> Infoseite</TITLE>
+
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+
+ <P>
+ <TABLE COLS="1" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1"><MM-List-Name> --
+ <MM-List-Description></FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <p>&nbsp;
+ </td>
+ </tr>
+ <tr>
+ <TD COLSPAN="1" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000">&Uuml;ber <MM-List-Name></FONT></B>
+ </TD>
+ <TD COLSPAN="1" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <MM-lang-form-start><MM-displang-box> <MM-list-langs>
+ <MM-form-end>
+ <MM-Subscribe-Form-Start>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <P><MM-List-Info></P>
+ <p> Um das Archiv fr&uuml;herer Nachrichten an diese Liste zu sehen,
+besuchen Sie bitte das <MM-Archive>Archiv der
+Liste <MM-List-Name></MM-Archive>. <MM-Restricted-List-Message>
+ </p>
+ </TD>
+ </TR>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000">Benutzung von <MM-List-Name></FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ Um eine Nachricht an alle Listenmitglieder zu senden, schicken Sie eine
+ Email an
+ <A HREF="mailto:<MM-Posting-Addr>"><MM-Posting-Addr></A>.
+
+ <p>Sie k&ouml;nnen im folgenden Abschnitt diese Liste abonnieren,
+ oder ein bestehendes Abonnement &auml;ndern.
+ </td>
+ </tr>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000">Abonnieren von <MM-List-Name></FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <P>
+ Abonnieren Sie <MM-List-Name>, indem Sie das folgende Formular
+ ausf&uuml;llen:
+ <MM-List-Subscription-Msg>
+ <ul>
+ <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"
+ WIDTH="70%" HEIGHT= "112">
+ <TR>
+ <TD BGCOLOR="#dddddd" WIDTH="55%">Ihre Emailadresse:</TD>
+ <TD WIDTH="33%"><MM-Subscribe-Box>
+ </TD>
+ <TD WIDTH="12%">&nbsp;</TD></TR>
+ <tr>
+ <td bgcolor="#dddddd" width="55%">Ihr Name (optional):</td>
+ <td width="33%"><mm-fullname-box></td>
+ <TD WIDTH="12%">&nbsp;</TD></TR>
+ <TR>
+ <TD COLSPAN="3"><FONT SIZE=-1>Sie k&ouml;nnen weiter unten ein Passwort
+ eingeben. Dieses Passwort bietet nur eine geringe Sicherheit,
+ sollte aber verhindern, dass andere Ihr Abonnement
+ manipulieren. <b>Verwenden Sie kein wertvolles Passwort</b>,
+ da es ab und zu im Klartext an Sie geschickt wird!
+
+ <p>Wenn Sie kein Passwort eingeben, wird f&uuml;r Sie ein
+ Zufallspasswort generiert und Ihnen zugeschickt, sobald Sie Ihr
+ Abonnement best&auml;tigt haben. Sie k&ouml;nnen sich Ihr Passwort
+ jederzeit per Email zuschicken lassen, wenn Sie weiter unten
+ die Seite zum &Auml;ndern Ihrer pers&ouml;nlichen Einstellungen aufrufen.
+ <MM-Reminder> </TD>
+ </TR>
+ <TR>
+ <TD BGCOLOR="#dddddd">W&auml;hlen Sie ein Passwort:</TD>
+ <TD><MM-New-Password-Box></TD>
+ <TD>&nbsp;</TD></TR>
+ <TR>
+ <TD BGCOLOR="#dddddd">Erneute Eingabe zur Best&auml;tigung:</TD>
+ <TD><MM-Confirm-Password></TD>
+ <TD>&nbsp; </TD></TR>
+ <tr>
+ <TD BGCOLOR="#dddddd">Welche Sprache bevorzugen Sie zur
+ Benutzerf&uuml;hrung?</TD>
+ <TD> <MM-list-langs></TD>
+ <TD>&nbsp; </TD></TR>
+ <tr>
+ <td>M&ouml;chten Sie die Listenmails geb&uuml;ndelt in Form einer t&auml;glichen
+ Zusammenfassung (digest) erhalten?
+ </td>
+ <td><MM-Undigest-Radio-Button>Nein
+ <MM-Digest-Radio-Button>Ja
+ </TD>
+ </tr>
+ <tr>
+ <td colspan="3">
+ <center><MM-Subscribe-Button></P></center>
+ </TABLE>
+ <MM-Form-End>
+ </ul>
+ </td>
+ </tr>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <a name="subscribers">
+ <B><FONT COLOR="#000000"><MM-List-Name> Abonnenten</FONT></B></a>
+ </TD>
+ </TR>
+ <tr>
+ <TD COLSPAN="2" WIDTH="100%">
+ <MM-Roster-Form-Start>
+ <MM-Roster-Option>
+ <MM-Form-End>
+ <p>
+ <MM-Options-Form-Start>
+ <MM-Editing-Options>
+ <MM-Form-End>
+ </td>
+ </tr>
+ </table>
+<MM-Mailman-Footer>
+</BODY>
+</HTML>
diff --git a/templates/de/masthead.txt b/templates/de/masthead.txt
new file mode 100644
index 00000000..9ef90c0e
--- /dev/null
+++ b/templates/de/masthead.txt
@@ -0,0 +1,16 @@
+Um Emails an die Liste %(real_name)s zu schicken, schicken Sie diese an die
+Adresse
+ %(got_list_email)s
+
+Um sich via Web von der Liste zu entfernen oder draufzusetzen:
+ %(got_listinfo_url)s
+oder, via Email, schicken Sie eine Email mit dem Wort 'help' in
+Subject/Betreff oder im Text an
+ %(got_request_email)s
+
+Sie koennen den Listenverwalter dieser Lister unter der Adresse
+ %(got_owner_email)s
+erreichen
+
+Wenn Sie antworten, bitte editieren Sie die Subject/Betreff auf einen
+sinnvollen Inhalt der spezifischer ist als "Re: Contents of %(real_name)s digest..."
diff --git a/templates/de/newlist.txt b/templates/de/newlist.txt
new file mode 100644
index 00000000..0ed1556d
--- /dev/null
+++ b/templates/de/newlist.txt
@@ -0,0 +1,38 @@
+Die Mailing-Liste `%(listname)s' wurde soeben fuer Sie angelegt. Hier nun
+ein paar grundlegende Informationen ueber Ihre neue Liste.
+
+Ihr Mailing-Listen Passwort lautet:
+
+ %(password)s
+
+Sie benoetigen dieses Passwort um die Liste zu konfigurieren. Darueberhinaus
+wird es zur Bearbeitung von administrativen Anfragen (z.B. Genehmigung von
+Emails an die Liste) benoetigt.
+
+Sie koennen Ihre Mailing-Liste unter der folgenden Adresse administrieren:
+
+ %(admin_url)s
+
+Die Webseite fuer Benutzer Ihrer Mailing-Liste ist:
+
+ %(listinfo_url)s
+
+Sie koennen sogar diese Webseiten individuell gestalten. Allerding muessen
+sie HTML-Kenntnisse besitzen um dies zu bewerkstelligen.
+
+Es gibt eine Email-basierte Schnittstelle fuer die Abonennten (nicht aber
+fuer den Administrator!) Ihrer Liste; Informationen darueber erhalten Sie,
+indem Sie einem Email mit nur dem Wort `help' im Betreff/Subject oder im
+Text der Email an die Adresse:
+
+ %(requestaddr)s
+
+schicken.
+
+Um einem Abonnenten zu kuendigen: Klicken Sie auf der 'listinfo' Webseite
+auf die Email-Adresse des Abonnenten (oder geben Sie die Adresse ein) als ob
+Sie dieser Abonnent waeren.
+Anstelle des Passworts des Abonnenten geben Sie allerdings Ihr
+Adminsitrationspasswort ein.
+
+Bitte richten Sie alle Fragen an %(siteowner)s.
diff --git a/templates/de/options.html b/templates/de/options.html
new file mode 100644
index 00000000..100cec49
--- /dev/null
+++ b/templates/de/options.html
@@ -0,0 +1,287 @@
+<!-- $Revision: 6007 $ -->
+<html>
+<head>
+ <link rel="SHORTCUT ICON" href="<mm-favicon>">
+ <title>Persönliche Einstellungen für <MM-Presentable-User> und die Liste <MM-List-Name>
+ </title>
+</head>
+<BODY BGCOLOR="#ffffff">
+ <TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#99CCFF"><B>
+ <FONT COLOR="#000000" SIZE=+1>
+ Persönliche Einstellungen von <MM-Presentable-User> für die Liste <MM-List-Name>
+ </FONT></B></TD></TR>
+ </TABLE>
+<p>
+<table width="100%" border="0" cellspacing="5" cellpadding="5">
+ <tr><td>
+ <b>Abonnenment Status von <MM-Presentable-User></b>, Passwort und
+ persönliche Einstellungen für die Liste <MM-List-Name>.
+ </td><td><MM-Form-Start><mm-logout-button><mm-form-end></td>
+ </tr><tr>
+ <td colspan="2">
+ <MM-Case-Preserved-User>
+
+ <MM-Disabled-Notice>
+
+ <p><mm-results>
+ </td>
+ </tr>
+</table>
+
+<MM-Form-Start>
+<p>
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#FFF0D0" colspan="2">
+ <FONT COLOR="#000000">
+ <B>Änderung der Abonnementsinformation für die Liste <MM-List-Name></B>
+ </FONT></TD></TR>
+ <tr><td colspan="2">Sie können die Adresse unter der Sie die Liste
+ beziehen ändern, indem Sie die neue Adresse in die Felder unten
+ eintragen. <B>Hinweis:</B> An die neue Adresse wird eine
+ Bestätigungs-Email geschickt und die Änderung muß bestätigt werden,
+ bevor sie aktiv wird.
+ <p>Bestätigungs-Emails verfallen nach ca. <mm-pending-days>.
+
+ <p>Ebenso können Sie Ihren "Realname" setzen oder ändern (z.B. <em>Paul Schmidt</em>).
+
+ <p>Wenn Sie die Änderungen für alle Ihre Abonnements auf <mm-host>
+ vornehmen möchen, aktivieren Sie die Option <em>Global ändern</em>!
+
+ </td></tr>
+ <tr><td><center>
+ <table border="0" cellspacing="2" cellpadding="2" width="80%" cols="2">
+ <tr><td bgcolor="#dddddd"><div align="right">Neue Adresse:</div></td>
+ <td><mm-new-address-box></td>
+ </tr>
+ <tr><td bgcolor="#dddddd"><div align="right">Zur Bestätigung nochmal:</div></td>
+ <td><mm-confirm-address-box></td>
+ </tr>
+ </tr></table></center>
+ </td>
+ <td><center>
+ <table border="0" cellspacing="2" cellpadding="2" width="80%" cols="2">
+ <tr><td bgcolor="#dddddd"><div align="right">Ihr Name (optional):</div></td>
+ <td><mm-fullname-box></td>
+ </tr>
+ </table></center>
+ </td>
+ </tr>
+ <tr><td colspan="2"><center><mm-change-address-button>
+ <p><mm-global-change-of-address>Global ändern</center></td>
+ </tr>
+</table>
+
+<p>
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="5" CELLPADDING="5">
+ <TR><TD WIDTH="50%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>Abbestellen von <MM-List-Name></B></td>
+
+ <TD WIDTH="50%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>Ihre anderen Abonnements bei <MM-Host></B>
+ </FONT></TD></TR>
+
+ <tr><td>
+ Aktivieren Sie die Bestätigungs-Checkbox und drücken Sie diesen
+ Knopf um Ihr Abonnement dieser Mailingliste zu beenden.
+ <strong>Warnung:</strong>
+ Diese Aktion wird sofort aktiv!
+ <p>
+ <center><MM-Unsubscribe-Button></center></td>
+ <td>
+ Sie können sich eine Liste aller Ihrer Abonnements auf <mm-host>
+ anzeigen lassen. Benutzen Sie dies, falls Sie dieselben Änderungen
+ auch für die anderen Listen gelten lassen wollen.
+
+ <p>
+ <center><MM-Other-Subscriptions-Submit></center>
+ </TD></TR>
+</table>
+
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD COLSPAN=2 WIDTH="100%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>Ihr Passwort für die Liste <MM-List-Name></B>
+ </FONT></TD></TR>
+
+ <tr valign="TOP"><td WIDTH="50%">
+ <a name=reminder>
+ <center>
+ <h3>Haben Sie Ihr Passwort vergessen?</h3>
+ </center>
+ Klicken Sie auf diesen Knopf und Ihnen wird das Passwort an Ihre
+ Adresse zugeschickt.
+ <p><MM-Umbrella-Notice>
+ <center>
+ <MM-Email-My-Pw>
+ </center>
+ </td>
+
+ <td WIDTH="50%">
+ <a name=changepw>
+ <center>
+ <h3>Änderung des Passworts</h3>
+ <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2" WIDTH="70%" COLS=2>
+ <TR><TD BGCOLOR="#dddddd"><div align="right">Neues
+ Passwort:</div></TD>
+ <TD><MM-New-Pass-Box></TD>
+ </TR>
+ <TR>
+ <TD BGCOLOR="#dddddd"><div align="right">Nochmal zur Bestätigung:</div></TD>
+ <TD><MM-Confirm-Pass-Box></TD>
+ </TR>
+ </table>
+
+ <MM-Change-Pass-Button>
+ <p><center><mm-global-pw-changes-button>Global ändern
+ </center>
+</TABLE>
+
+<p>
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>Ihre persönlichen Einstellungen für <MM-List-Name></B>
+ </FONT></TD></TR>
+</table>
+
+<p>
+<i><strong>Die aktuellen Werte sind mit Häkchen versehen.</strong></i>
+
+<p>Bitte beachten Sie, daß einige der Optionen eine <em>Global ändern</em>
+Checkbox besitzen. Deren ankreuzen bewirkt, daß die Änderungen für
+jede von Ihnen abonnierte Mailingliste auf <mm-host> vorgenommen werden.
+Klicken Sie auf <em>List my other subscriptions</em> um zu sehen, welche
+weitern Abonnement Sie haben.
+<p>
+<TABLE BORDER="0" CELLSPACING="3" CELLPADDING="4" WIDTH="100%">
+ <tr><TD BGCOLOR="#cccccc">
+ <a name="disable">
+ <strong>Mailzustellung</strong></a><p>
+ Setzen Sie diese Option auf <em>An</em> um Nachrichten von der
+ Liste zu empfangen.
+ Setzen Sie diese Option auf <em>Aus</em> um keine Nachrichten
+ von der Liste zu empfangen (z.B. weil Sie im Urlaub sind)
+ Wenn Sie die Mailzustellung ausstellen, vergessen Sie nicht, diese
+ nach Ihrem Urlaub wieder anzustellen!
+ </td><td bgcolor="#cccccc">
+ <mm-delivery-enable-button>An<br>
+ <mm-delivery-disable-button>Aus<p>
+ <mm-global-deliver-button><i>Global ändern</i>
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Zusammenfassungs Modus</strong><p>
+ Wenn Sie den Zusammenfassungs Modus aktivieren, erhalten Sie die
+ Nachrichten eines Tages gebündelt anstatt einzeln.
+ Wenn der Zusammenfassungs Modus von an auf aus gewechselt wird,
+ erhalten Sie eine letzet Zusammenfassung!
+ </td><td bgcolor="#cccccc">
+ <MM-Undigest-Radio-Button>Aus<br>
+ <MM-Digest-Radio-Button>An
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>MIME oder Plain Text Zusammenfassungen?</strong><p>
+ Ihr Mailprogramm unterstützt MIME Zusammenfassungen (oder nicht!).
+ Generell sind MIME Zusammenfassungen bevorzugt, aber falls Sie ein
+ Problem damit haben, diese zu lesen, wählen Sie hier doch einfach
+ Plain Text Zusammenfassungen.
+ </td><td bgcolor="#cccccc">
+ <MM-Mime-Digests-Button>MIME<br>
+ <MM-Plain-Digests-Button>Plain Text<p>
+ <mm-global-mime-button><i>Global ändern</i>
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Wollen Sie Ihre eigenen Nachrichten über die Liste zurückerhalten?</strong><p>
+ Normalerweise erhalten Sie JEDE Mail. Wenn Sie Ihre eigenen Mails
+ nicht nochmal sehen möchten, setzen Sie diese Option auf <em>Nein</em>.
+ </td><td bgcolor="#cccccc">
+ <mm-dont-receive-own-mail-button>Nein<br>
+ <mm-receive-own-mail-button>Ja
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Bestätigunsmail wenn Sie Email an die Liste schicken?</strong><p>
+ </td><td bgcolor="#cccccc">
+ <mm-dont-ack-posts-button>Nein<br>
+ <mm-ack-posts-button>Ja
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>Monatliche Erinnerungsmail mit Passwort?</strong><p>
+ Einmal im Monat erhalten Sie eine Erinnerungsmail mit Ihrem Passwort
+ für jede Liste, die Sie abonniert haben.
+ Sie können dies auf Listenbasis an- und abstellen, indem Sie hier
+ <em>Nein</em> wählen. Wenn Sie die Erinnerungsmail für alle Ihre
+ Abonnements abstellen, erhalten Sie keinerlei Erinnerungsmails mehr.
+ </td><td bgcolor="#cccccc">
+ <mm-dont-get-password-reminder-button>Nein<br>
+ <mm-get-password-reminder-button>Ja<p>
+ <mm-global-remind-button><i>Global ändern</i>
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>In der Abonnenten Liste unsichtbar machen?</strong><p>
+ Wenn sich jemand die Mitglieder der Liste anzeigen läßt, wird Ihre
+ Emailadresse normalerweise angezeigt (in einer leicht modifizierten
+ Art und Weise um es Adresssammlern nicht zu leicht zu machen)
+ Wenn Sie nicht wünschen, daß Ihre Adresse gezeigt wird, wählen Sie
+ hier bitte <em>Nein</em>.
+ </td><td bgcolor="#cccccc">
+ <MM-Public-Subscription-Button>Nein<br>
+ <MM-Hide-Subscription-Button>Ja
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Welche Sprache bevorzugen Sie?</strong><p>
+ </td><td bgcolor="#cccccc">
+ <MM-list-langs>
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>Welche Themen interessieren Sie?</strong><p>
+ Indem Sie ein oder mehrere Themen wählen, können Sie den
+ Listenverkehr auf der Mailingliste filtern, so daß Sie nur
+ einen Teil der Nachrichten empfangen.
+ Wenn eine Nachricht auf ein Thema "paßt", dann erhalten Sie
+ die Nachricht, ansonsten nicht.
+
+ <p>Wenn eine Nachricht auf kein Thema "paßt", dann hängt es
+ von der folgenden Option ab, ob Sie keine oder alle
+ Nachrichten erhalten.
+ </td><td bgcolor="#cccccc">
+ <mm-topics>
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>Möchten Sie Nachrichten erhalten, auf die kein Themen-Filter
+ "paßt"?</strong><p>
+
+ Diese Option hat nur Auswirkungen wenn Sie oben mindestens
+ ein Thema angegeben haben. Sie gibt an wie die
+ Standardzustellungsregel für Nachrichten lautet, auf die
+ kein Thema "paßt".
+ Geben Sie hier <em>Nein</em> an, bedeutet dies, daß Sie
+ keine Nachrichten erhalten, wenn kein Thema "paßt",
+ wohingegen <em>Ja</em> bedeutet, daß Sie diese Nachrichten
+ doch erhalten!
+
+ <p>Wenn Sie gar keine Themen angegeben haben, erhalten Sie
+ selbstverständliche alle Nachrichten an die Mailingliste!
+ </td><td bgcolor="#cccccc">
+ <mm-suppress-nonmatching-topics>Nein<br>
+ <mm-receive-nonmatching-topics>Ja
+ </td></tr>
+
+ <tr><TD colspan="2">
+ <center><MM-options-Submit-button></center>
+ </td></tr>
+
+</table>
+</center>
+<p>
+<MM-Form-End>
+
+<MM-Mailman-Footer>
+</body>
+</html>
diff --git a/templates/de/postack.txt b/templates/de/postack.txt
new file mode 100644
index 00000000..6ed5850e
--- /dev/null
+++ b/templates/de/postack.txt
@@ -0,0 +1,7 @@
+Ihre Email mit dem Betreff/Subject
+
+ %(subject)s
+
+wurde von der Mailing-Liste %(listname)s erfolgreich verarbeitet.
+
+Informationsseite der Liste: %(listinfo_url)s
diff --git a/templates/de/postauth.txt b/templates/de/postauth.txt
new file mode 100644
index 00000000..5c433ae5
--- /dev/null
+++ b/templates/de/postauth.txt
@@ -0,0 +1,13 @@
+Als Listen-Administrator wird Ihre Genehmigung fuer die folgende Email
+benoetigt:
+
+ Liste: %(listname)s@%(hostname)s
+ Von: %(sender)s
+ Betreff: %(subject)s
+ Grund: %(reason)s
+
+Bitte besuchen Sie bei Gelegenheit:
+
+ %(admindb_url)s
+
+um die Email zu genehmigen oder abzulehnen.
diff --git a/templates/de/postheld.txt b/templates/de/postheld.txt
new file mode 100644
index 00000000..78408806
--- /dev/null
+++ b/templates/de/postheld.txt
@@ -0,0 +1,15 @@
+Ihre Mail an '%(listname)s' mit dem Subject/Betreff
+
+ %(subject)s
+
+wird zurueckgehalten bis der Listenmoderator Ihre Email genehmigt.
+
+Der Grund, weshalb eine Genehmigung erforderlich ist:
+
+ %(reason)s
+
+Entweder wird die Email die Liste erreichen, oder Sie erhalten eine
+Mitteilung ueber die Entscheidung des Moderators. Falls Sie diese Email
+zurueckziehen moechten, besuchen Sie bitte:
+
+ %(confirmurl)s
diff --git a/templates/de/private.html b/templates/de/private.html
new file mode 100644
index 00000000..02aa057a
--- /dev/null
+++ b/templates/de/private.html
@@ -0,0 +1,42 @@
+<html>
+<head>
+ <title>Authentifizierung für den Zugriff auf die Archive von %(realname)s</title>
+</head>
+<body bgcolor="#ffffff">
+<FORM METHOD=POST ACTION="%(action)s/">
+%(message)s
+ <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1">Authentifizierung für den Zugriff auf die Archive von %(realname)s</FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <TD><div ALIGN="Right">Email Adresse:</div></TD>
+ <TD><INPUT TYPE="text" NAME="username" SIZE="30"></TD>
+ </tr>
+ <tr>
+ <TD><div ALIGN="Right">Passwort:</div></TD>
+ <TD><INPUT TYPE="password" NAME="password" SIZE="30"></TD>
+ </tr>
+ <tr>
+ <td colspan=2 align="middle"><INPUT type="SUBMIT"
+ name="submit"
+ value="Let me in...">
+ </td>
+ </tr>
+ </TABLE>
+ <p><strong><em>Wichtig:</em></strong> Ab diesem Punkt müssen in Ihrem
+ Browser "Cookies" aktiviert sein, da ansonsten keine Ihrer Änderungen
+ in Aktion tritt.
+
+ <p>Mailmans Administrationsinterface benutzt sog. "session cookies",
+ damit Sie sich nicht für jede Administrationsaufgabe erneut
+ authentifizieren müssen. Diese "cookies" verfallen automatisch bei
+ Beendigung Ihres Webbrowsers; Sie können Sie allerdings auch sofort
+ verfallen lassen, indem Sie auf den <em>Ausloggen</em> Link unter
+ <em>Andere Administrative Tätigkeiten</em> klicken (den Sie sehen
+ werden sobald Sie erfolgreich eingeloggt sind).
+</FORM>
+</body>
+</html>
diff --git a/templates/de/refuse.txt b/templates/de/refuse.txt
new file mode 100644
index 00000000..15aa7f95
--- /dev/null
+++ b/templates/de/refuse.txt
@@ -0,0 +1,11 @@
+Ihre Anfrage an die Mailingliste %(listname)s
+
+ %(request)s
+
+wurde vom Listenmoderator mit folgender Begruendung abgewiesen:
+
+"%(reason)s"
+
+Fragen oder Kommentare richten Sie bitte an den Listenadministrator:
+
+ %(adminaddr)s
diff --git a/templates/de/roster.html b/templates/de/roster.html
new file mode 100644
index 00000000..c7efae94
--- /dev/null
+++ b/templates/de/roster.html
@@ -0,0 +1,51 @@
+<!-- $Revision: 4107 $ -->
+<HTML>
+ <HEAD>
+ <TITLE><MM-List-Name> Abonnenten</TITLE>
+
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+
+ <P>
+ <TABLE WIDTH="100%" COLS="1" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1"><MM-List-Name>
+ Abonnenten</FONT></B>
+ </TD>
+ </TR>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" ALIGN="CENTER">
+
+ <P align = "right"> <MM-lang-form-start><MM-displang-box>
+ <MM-list-langs><MM-form-end></p>
+
+ <P>Klicken Sie auf Ihre Adresse um zu Ihrer Abonnenmentsseite zu gelangen.<br>
+ <I>(Für Einträge in Klammern ist die Zustellung von Mail deaktiviert.)</I></P>
+ </TD>
+ </TR>
+ <TR WIDTH="100%" VALIGN="top">
+ <TD BGCOLOR="#FFF0D0" WIDTH="50%">
+ <center>
+ <B><FONT COLOR="#000000"><MM-Num-Reg-Users>
+ Abonnenten von <MM-List-Name>:</FONT></B>
+ </center>
+ </TD>
+ <TD BGCOLOR="#FFF0D0" WIDTH="50%">
+ <center>
+ <B><FONT COLOR="#000000"><MM-Num-Digesters> Abonnenten von <MM-List-Name> mit Tageszusammenfassung:</FONT></B>
+ </center>
+ </TD>
+ </TR>
+ <TR VALIGN="top">
+ <td>
+ <P><MM-Regular-Users>
+ </td>
+ <td>
+ <P><MM-Digest-Users>
+ </td>
+ </tr>
+ </table>
+<MM-Mailman-Footer>
+</BODY>
+</HTML>
diff --git a/templates/de/subauth.txt b/templates/de/subauth.txt
new file mode 100644
index 00000000..804284f0
--- /dev/null
+++ b/templates/de/subauth.txt
@@ -0,0 +1,10 @@
+Ihre Genehmigung ist fuer den folgenden Abonnementswunsch erforderlich:
+
+ Fuer: %(username)s
+ Liste: %(listname)s@%(hostname)s
+
+Bitte besuchen Sie bei Gelegenheit:
+
+ %(admindb_url)s
+
+um diese Anfrage zu beantworten.
diff --git a/templates/de/subscribe.html b/templates/de/subscribe.html
new file mode 100644
index 00000000..c0c164f6
--- /dev/null
+++ b/templates/de/subscribe.html
@@ -0,0 +1,9 @@
+<!-- $Revision: 4107 $ -->
+<html>
+<head><title><MM-List-Name> Resultate des Abonnierens</title></head>
+<body bgcolor="white">
+<h1><MM-List-Name> Resultate des Abonnierens</h1>
+<MM-Results>
+<MM-Mailman-Footer>
+</body>
+</html>
diff --git a/templates/de/subscribeack.txt b/templates/de/subscribeack.txt
new file mode 100644
index 00000000..dfd4c164
--- /dev/null
+++ b/templates/de/subscribeack.txt
@@ -0,0 +1,36 @@
+Willkommen auf der Mailingliste %(real_name)s@%(host_name)s!
+%(welcome)s
+Um Nachrichten an diese Liste zu schicken, schicken Sie sie an:
+
+ %(emailaddr)s
+
+Allgemeine Informationen ueber die Mailing-Liste finden Sie unter:
+
+ %(listinfo_url)s
+
+Falls Sie Ihr Abonnement aendern wollen, besuchen Sie bitte Ihre
+persoenliche Abonnements-Seite:
+
+ %(optionsurl)s
+%(umbrella)s
+Sie koennen Aenderungen auch vie Email vornehmen, indem Sie eine Email an
+die Adresse:
+
+ %(real_name)s-request@%(host_name)s
+
+schicken, die das Wort `help' (ohne die Anfuehrenszeichen!) im
+Subject/Betreff oder im Text der Email enthaelt. Sie erhalten dann eine
+Nachricht mit Instruktionen zurueck.
+
+Damit Sie Ihre Abonnements-Optionen aendern koennen, benoetigen Sie Ihr
+Passwort; es lautet:
+
+ %(password)s
+
+Normalerweise erhalten Sie von Mailman jeden Monat eine Email, die Ihre
+Abonnements auf %(host_name)s auflistet und die Passwoerter enthaelt.
+Dieser Erinnerungsmail enthaelt auch Informationen darueber, wie Sie Ihr
+Abonnement stornieren oder Ihrer Abonnements-Optionen aendern koennen.
+
+Auf der Seite mit den persoenliche Einstellungen gibt es einen Knopft, der
+Ihnen Ihr aktuelles Passwort zuschickt.
diff --git a/templates/de/unsub.txt b/templates/de/unsub.txt
new file mode 100644
index 00000000..9a038e63
--- /dev/null
+++ b/templates/de/unsub.txt
@@ -0,0 +1,27 @@
+Bitte um Rückbestätigung der Abbestellung der Mailing-Liste %(listname)s
+
+Wir haben eine Anfrage erhalten Ihre Email-Adresse
+"%(email)s" von der Mailingliste %(listaddr)s zu streichen.
+
+Wenn Sie Ihre e-mail-Adresse wirklich streichen lassen wollen, müssen Sie
+das bestätigen. Antworten Sie bitte in diesem Falle einfach auf diese Email,
+wobei der angehängte Code im Betreff/Subject intakt bleiben muss.
+
+Wenn Sie sich *nicht* austragen lassen wollen, so ignorieren Sie diese
+Anfrage einfach. Sie bleiben dann Mitglied der Liste.
+
+Alternativ koennen Sie zur Bestätigung auch die Web-Seite:
+
+ %(confirmurl)s
+
+besuchen. EIne weiter Moeglichkeit besteht darin, die folgende Zeile (UND
+NUR die folgende Zeile!!) an %(requestaddr)s zu schicken:
+
+ confirm %(cookie)s
+
+Normalerweise reicht eine einfache Antwort aus diese e-mail voellig aus.
+Fügt Ihre Mailsoftware bei einer Antwort ein "Re:" oder "AW:" vor
+den Betreff ein, so ist das übrigens kein Problem.
+
+Wenn Sie meinen, ungefragterweise auf diese Liste geraten zu sein
+oder andere Fragen haben, schicken Sie diese bitte an %(listadmin)s.
diff --git a/templates/de/userpass.txt b/templates/de/userpass.txt
new file mode 100644
index 00000000..d8bd31f4
--- /dev/null
+++ b/templates/de/userpass.txt
@@ -0,0 +1,24 @@
+Sie oder jemand, der sich auch Sie ausgibt, hat die Zusendung einer
+Passwort-Erinnerungsmail fuer Ihre Mitgliedschaft auf der Liste
+%(fqdn_lname)s angefordert. Sie benoetigen dieses Passwort, um Ihre
+persoenlichen Einstellungen zu aendern, bzw. um das Abonnement zu beenden.
+
+e-mails von dieser Liste werden an Ihre Adresse: %(user)s geschickt.
+
+Ihr Passwort fuer die Liste %(listname)s ist: %(password)s
+
+Um Ihre persoenlichen Einstellungen zu aendern, loggen Sie sich bitte ein
+und besuchen die Seite:
+
+ %(options_url)s
+
+Sie koennen allerdings auch Aenderunge via e-mail machen, indem Sie eine
+e-mail an die Adresse:
+
+ %(requestaddr)s
+
+schicken, die das Wort "help" im Subject/Betreff oder im Text der Nachricht
+enthaelt. Die automatische Antwort enthaelt dann detaillierte Instruktionen.
+
+Fragen oder Kommentare? Bitte senden Sie diese an den Listen-Administrator
+der Liste %(listname)s unter der Adresse %(owneraddr)s.
diff --git a/templates/de/verify.txt b/templates/de/verify.txt
new file mode 100644
index 00000000..b59f680c
--- /dev/null
+++ b/templates/de/verify.txt
@@ -0,0 +1,25 @@
+Abonnenmentsbestätigung für die Mailing-Liste %(listname)s
+
+Wir haben einen Auftrag %(remote)s zur Aufnahme Ihrer e-mail-Adresse
+"%(email)s" in die Mailing-Liste %(listaddr)s erhalten.
+
+Um sicherzustellen, dass Sie diese Mailing-Liste tatsaechlich abonnieren
+wollen, antworten Sie bitte einfach auf diese EMail, wobei Sie bitte darauf
+achten, dass das "Subject:" bzw. "Betreff:" intakt bleibt.
+
+Alternativ können Sie auch die folgende Webseite besuchen:
+
+ %(confirmurl)s
+
+Eine weitere Möglichkeit ist, die folgende Zeile -- und NUR die folgende
+Zeile! -- in einer Email an %(requestaddr)s zu schicken:
+
+ confirm %(cookie)s
+
+Normalerweise reicht eine einfache Antwort aus diese e-mail voellig aus, da
+das Generieren einer Antwort das "Subject:" bzw. "Betreff:" intakt laesst
+(das zusaetzliche "Re:" im "Subject:" bzw. "Betreff:" ist kein Problem).
+
+Wenn Sie diese Liste nicht abonnieren wollen, ignorieren Sie diese Nachricht
+einfach. Wenn Sie meinen, ungefragterweise auf diese Liste geraten zu sein
+oder andere Fragen haben, schicken Sie diese bitte an %(listadmin)s.
diff --git a/templates/en/admindbdetails.html b/templates/en/admindbdetails.html
new file mode 100644
index 00000000..1958b362
--- /dev/null
+++ b/templates/en/admindbdetails.html
@@ -0,0 +1,65 @@
+The administrative requests are displayed in one of two ways, on a <a
+href="%(summaryurl)s">summary page</a>, and on a <em>details</em>
+page. The summary page contains pending subscription and
+unsubscription requests, as well as postings being held for your
+approval, grouped by sender email address. The details page contains
+a more detailed view of each held message, including the all the
+message's headers and an excerpt of the message body.
+
+<p>On all the pages, the following actions are available:
+
+<ul>
+<li><b>Defer</b> -- Defer your decision until later. No action is
+ taken now for this pending administrative request, but for held
+ postings, you can still forward or preserve the message (see
+ below).
+
+<p><li><b>Approve</b> -- Approve the message, sending it on to the list.
+ For membership requests, approve the change in membership status.
+
+<p><li><b>Reject</b> -- Reject the message, sending a rejection notice to
+ the sender, and discarding the original message. For membership
+ requests, reject the change in membership status. In either case,
+ you should add a reason for the rejection in the accompanying text
+ box.
+
+<p><li><b>Discard</b> -- Throw away the original message, without sending
+ a rejection notice. For membership requests, this simply discards
+ the request without notice to the person making the request. This
+ is usually the action you want to take for known spam.
+</ul>
+
+<p>For held messages, turn on the <b>Preserve</b> option if you want
+to save a copy of the message for the site administrator. This is
+useful for abusive messages that you want to discard, but need to keep
+a record of for later inspection.
+
+<p>Turn on the <b>Forward to</b> option, and fill in the forwarding
+address if you want to forward the message to someone else not on the
+list. To edit a held message before it is sent on to the list, you
+should forward the message to yourself (or the list owners), and
+discard the original message. Then, when the message shows up in your
+mailbox, make your edits and resend the message to the list, including
+an <tt>Approved:</tt> header with the list password as its value. It
+is proper netiquette in this case to include a note in the resent
+message, explaining that you have modified the text.
+
+<p>If the sender is a list member who is being moderated, you can
+optionally clear their moderation flag. This is useful when your list
+is configured to put new members on probation, and you've decided that
+this member can be trusted to post to the list without approval.
+
+<p>If the sender is not a list member, you can add the email address to
+a <em>sender filter</em>. Sender filters are described on the <a
+href="%(filterurl)s">sender filter privacy page</a>, and may be one of
+<b>auto-accept</b> (Accepts), <b>auto-hold</b> (Holds),
+<b>auto-reject</b> (Rejects), or <b>auto-discard</b> (Discards). This
+option will not be available if the address is already on one of the
+sender filters.
+
+<p>When you're finished, click on the <em>Submit All Data</em> button
+at the top or bottom of the page. This button will submit all
+selected actions for all administrative requests that you've made a
+decision for.
+
+<p><a href="%(summaryurl)s">Return to the summary page</a>.
diff --git a/templates/en/admindbpreamble.html b/templates/en/admindbpreamble.html
new file mode 100644
index 00000000..659b77e7
--- /dev/null
+++ b/templates/en/admindbpreamble.html
@@ -0,0 +1,10 @@
+This page contains a subset of the <em>%(listname)s</em> mailing list
+postings that are being held for your approval. It currently shows
+%(description)s
+
+<p>For each administrative request, please select the action to take,
+clicking on the <b>Submit All Data</b> when finished. More detailed
+instructions are available <a href="%(detailsurl)s">here</a>.
+
+<p>You can also <a href="%(summaryurl)s">view a summary</a> of all
+pending requests.
diff --git a/templates/en/admindbsummary.html b/templates/en/admindbsummary.html
new file mode 100644
index 00000000..20ffef58
--- /dev/null
+++ b/templates/en/admindbsummary.html
@@ -0,0 +1,14 @@
+This page contains a summary of the current set of administrative
+requests requiring your approval for the
+<a href="%(adminurl)s"><em>%(listname)s</em> mailing list</a>.
+First, you will find the list of pending
+subscription and unsubscription requests, if any, followed by any
+postings being held for your approval.
+
+<p>For each administrative request, please select the action to take,
+clicking on the <b>Submit All Data</b> button when finished.
+<a href="%(detailsurl)s">More detailed instructions</a> are also
+available.
+
+<p>You can also <a href="%(viewallurl)s">view the details</a> of all
+held postings.
diff --git a/templates/en/adminsubscribeack.txt b/templates/en/adminsubscribeack.txt
new file mode 100644
index 00000000..388a3a24
--- /dev/null
+++ b/templates/en/adminsubscribeack.txt
@@ -0,0 +1,3 @@
+%(member)s has been successfully subscribed to %(listname)s.
+
+
diff --git a/templates/en/adminunsubscribeack.txt b/templates/en/adminunsubscribeack.txt
new file mode 100644
index 00000000..2ebcfeb7
--- /dev/null
+++ b/templates/en/adminunsubscribeack.txt
@@ -0,0 +1,2 @@
+%(member)s has been removed from %(listname)s.
+
diff --git a/templates/en/admlogin.html b/templates/en/admlogin.html
new file mode 100644
index 00000000..03f763b9
--- /dev/null
+++ b/templates/en/admlogin.html
@@ -0,0 +1,39 @@
+<html>
+<head>
+ <title>%(listname)s %(who)s Authentication</title>
+</head>
+<body bgcolor="#ffffff">
+<FORM METHOD=POST ACTION="%(path)s">
+%(message)s
+ <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1">%(listname)s %(who)s
+ Authentication</FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <TD><div ALIGN="Right">List %(who)s Password:</div></TD>
+ <TD><INPUT TYPE="password" NAME="adminpw" SIZE="30"></TD>
+ </tr>
+ <tr>
+ <td colspan=2 align=middle><INPUT type="SUBMIT"
+ name="admlogin"
+ value="Let me in...">
+ </td>
+ </tr>
+ </TABLE>
+ <p><strong><em>Important:</em></strong> From this point on, you
+ must have cookies enabled in your browser, otherwise no
+ administrative changes will take effect.
+
+ <p>Session cookies are used in Mailman's
+ administrative interface so that you don't need to
+ re-authenticate with every administrative operation. This
+ cookie will expire automatically when you exit your browser, or
+ you can explicitly expire the cookie by hitting the
+ <em>Logout</em> link under <em>Other Administrative
+ Activities</em> (which you'll see once you successfully log in).
+</FORM>
+</body>
+</html>
diff --git a/templates/en/approve.txt b/templates/en/approve.txt
new file mode 100644
index 00000000..dfb0dfb1
--- /dev/null
+++ b/templates/en/approve.txt
@@ -0,0 +1,15 @@
+Your request to %(requestaddr)s:
+
+ %(cmd)s
+
+has been forwarded to the person running the list.
+
+This is probably because you are trying to subscribe to a 'closed'
+list.
+
+You will receive email notification of the list owner's decision about
+your subscription request.
+
+Any questions about the list owner's policy should be directed to:
+
+ %(adminaddr)s
diff --git a/templates/en/archidxentry.html b/templates/en/archidxentry.html
new file mode 100644
index 00000000..f9bb57aa
--- /dev/null
+++ b/templates/en/archidxentry.html
@@ -0,0 +1,4 @@
+<LI><A HREF="%(filename)s">%(subject)s
+</A><A NAME="%(sequence)i">&nbsp;</A>
+<I>%(author)s
+</I>
diff --git a/templates/en/archidxfoot.html b/templates/en/archidxfoot.html
new file mode 100644
index 00000000..0b0a4207
--- /dev/null
+++ b/templates/en/archidxfoot.html
@@ -0,0 +1,21 @@
+ </ul>
+ <p>
+ <a name="end"><b>Last message date:</b></a>
+ <i>%(lastdate)s</i><br>
+ <b>Archived on:</b> <i>%(archivedate)s</i>
+ <p>
+ <ul>
+ <li> <b>Messages sorted by:</b>
+ %(thread_ref)s
+ %(subject_ref)s
+ %(author_ref)s
+ %(date_ref)s
+ <li><b><a href="%(listinfo)s">More info on this list...
+ </a></b></li>
+ </ul>
+ <p>
+ <hr>
+ <i>This archive was generated by
+ Pipermail %(version)s.</i>
+ </BODY>
+</HTML>
diff --git a/templates/en/archidxhead.html b/templates/en/archidxhead.html
new file mode 100644
index 00000000..4fdf4731
--- /dev/null
+++ b/templates/en/archidxhead.html
@@ -0,0 +1,24 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+ <HEAD>
+ <title>The %(listname)s %(archive)s Archive by %(archtype)s</title>
+ <META NAME="robots" CONTENT="noindex,follow">
+ %(encoding)s
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <a name="start"></A>
+ <h1>%(archive)s Archives by %(archtype)s</h1>
+ <ul>
+ <li> <b>Messages sorted by:</b>
+ %(thread_ref)s
+ %(subject_ref)s
+ %(author_ref)s
+ %(date_ref)s
+
+ <li><b><a href="%(listinfo)s">More info on this list...
+ </a></b></li>
+ </ul>
+ <p><b>Starting:</b> <i>%(firstdate)s</i><br>
+ <b>Ending:</b> <i>%(lastdate)s</i><br>
+ <b>Messages:</b> %(size)s<p>
+ <ul>
diff --git a/templates/en/archlistend.html b/templates/en/archlistend.html
new file mode 100644
index 00000000..9bc052dd
--- /dev/null
+++ b/templates/en/archlistend.html
@@ -0,0 +1 @@
+ </table>
diff --git a/templates/en/archliststart.html b/templates/en/archliststart.html
new file mode 100644
index 00000000..cdf5d17c
--- /dev/null
+++ b/templates/en/archliststart.html
@@ -0,0 +1,4 @@
+ <table border=3>
+ <tr><td>Archive</td>
+ <td>View by:</td>
+ <td>Downloadable version</td></tr>
diff --git a/templates/en/archtoc.html b/templates/en/archtoc.html
new file mode 100644
index 00000000..6969d515
--- /dev/null
+++ b/templates/en/archtoc.html
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+ <HEAD>
+ <title>The %(listname)s Archives</title>
+ <META NAME="robots" CONTENT="noindex,follow">
+ %(meta)s
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <h1>The %(listname)s Archives </h1>
+ <p>
+ You can get <a href="%(listinfo)s">more information about this list</a>
+ or you can <a href="%(fullarch)s">download the full raw archive</a>
+ (%(size)s).
+ </p>
+ %(noarchive_msg)s
+ %(archive_listing_start)s
+ %(archive_listing)s
+ %(archive_listing_end)s
+ </BODY>
+ </HTML>
diff --git a/templates/en/archtocentry.html b/templates/en/archtocentry.html
new file mode 100644
index 00000000..00cf9c47
--- /dev/null
+++ b/templates/en/archtocentry.html
@@ -0,0 +1,12 @@
+
+ <tr>
+ <td>%(archivelabel)s:</td>
+ <td>
+ <A href="%(archive)s/thread.html">[ Thread ]</a>
+ <A href="%(archive)s/subject.html">[ Subject ]</a>
+ <A href="%(archive)s/author.html">[ Author ]</a>
+ <A href="%(archive)s/date.html">[ Date ]</a>
+ </td>
+ %(textlink)s
+ </tr>
+
diff --git a/templates/en/article.html b/templates/en/article.html
new file mode 100644
index 00000000..38dbc554
--- /dev/null
+++ b/templates/en/article.html
@@ -0,0 +1,50 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+ <HEAD>
+ <TITLE> %(title)s
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:%(email_url)s?Subject=%(subject_url)s&In-Reply-To=%(in_reply_to_url)s">
+ <META NAME="robots" CONTENT="index,nofollow">
+ %(encoding)s
+ %(prev)s
+ %(next)s
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>%(subject_html)s</H1>
+ <B>%(author_html)s</B>
+ <A HREF="mailto:%(email_url)s?Subject=%(subject_url)s&In-Reply-To=%(in_reply_to_url)s"
+ TITLE="%(subject_html)s">%(email_html)s
+ </A><BR>
+ <I>%(datestr_html)s</I>
+ <P><UL>
+ %(prev_wsubj)s
+ %(next_wsubj)s
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#%(sequence)s">[ date ]</a>
+ <a href="thread.html#%(sequence)s">[ thread ]</a>
+ <a href="subject.html#%(sequence)s">[ subject ]</a>
+ <a href="author.html#%(sequence)s">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+%(body)s
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ %(prev_wsubj)s
+ %(next_wsubj)s
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#%(sequence)s">[ date ]</a>
+ <a href="thread.html#%(sequence)s">[ thread ]</a>
+ <a href="subject.html#%(sequence)s">[ subject ]</a>
+ <a href="author.html#%(sequence)s">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="%(listurl)s">More information about the %(listname)s
+mailing list</a><br>
+</body></html>
diff --git a/templates/en/bounce.txt b/templates/en/bounce.txt
new file mode 100644
index 00000000..8e02cc7a
--- /dev/null
+++ b/templates/en/bounce.txt
@@ -0,0 +1,13 @@
+This is a Mailman mailing list bounce action notice:
+
+ List: %(listname)s
+ Member: %(addr)s
+ Action: Subscription %(negative)s%(did)s.
+ Reason: Excessive or fatal bounces.
+ %(but)s
+
+%(reenable)s
+The triggering bounce notice is attached below.
+
+Questions?
+Contact the Mailman site administrator at %(owneraddr)s.
diff --git a/templates/en/checkdbs.txt b/templates/en/checkdbs.txt
new file mode 100644
index 00000000..d53925a4
--- /dev/null
+++ b/templates/en/checkdbs.txt
@@ -0,0 +1,7 @@
+The %(real_name)s@%(host_name)s mailing list has %(count)d request(s)
+waiting for your consideration at:
+
+ %(adminDB)s
+
+Please attend to this at your earliest convenience. This notice of
+pending requests, if any, will be sent out daily.
diff --git a/templates/en/convert.txt b/templates/en/convert.txt
new file mode 100644
index 00000000..ae17a79e
--- /dev/null
+++ b/templates/en/convert.txt
@@ -0,0 +1,34 @@
+The %(listname)s mailing list has just undergone a big change. It is
+running on a new mailing list package called "Mailman". This will
+hopefully solve a lot of problems that administering this list has
+presented.
+
+How does this affect you?
+
+1) Mail intended for the whole list should be sent to: %(listaddr)s.
+
+2) You have been given an arbitrary password to prevent others from
+unsubscribing you without your knowledge. It will be mailed to you in
+a separate email, which you may have already received. Don't worry if
+you forget this password; a reminder will be sent to you via email
+every month.
+
+3) If you have World Wide Web access, you can use it any time to
+unsubscribe from this list, to switch to and from digest mode, to
+check back issues of the list (which will be available after the list
+has been getting posts for a day or so), etc. The Web address for
+these resources is:
+
+ %(listinfo_url)s
+
+4) If you do not have WWW access, you can do these same things via
+email. Send mail to %(requestaddr)s with a subject or body containing
+just the word "help" (without the quotes). You will receive an
+automated reply giving you further directions.
+
+Please address any questions or problems with this new setup to:
+%(adminaddr)s.
+
+This message was auto-generated by Mailman %(version)s. For more
+information on the Mailman software, visit the Mailman homepage at
+http://www.list.org/
diff --git a/templates/en/cronpass.txt b/templates/en/cronpass.txt
new file mode 100644
index 00000000..52ce5ea6
--- /dev/null
+++ b/templates/en/cronpass.txt
@@ -0,0 +1,19 @@
+This is a reminder, sent out once a month, about your %(hostname)s
+mailing list memberships. It includes your subscription info and how
+to use it to change it or unsubscribe from a list.
+
+You can visit the URLs to change your membership status or
+configuration, including unsubscribing, setting digest-style delivery
+or disabling delivery altogether (e.g., for a vacation), and so on.
+
+In addition to the URL interfaces, you can also use email to make such
+changes. For more info, send a message to the '-request' address of
+the list (for example, %(exreq)s) containing just the word 'help' in
+the message body, and an email message will be sent to you with
+instructions.
+
+If you have questions, problems, comments, etc, send them to
+%(owner)s. Thanks!
+
+Passwords for %(useraddr)s:
+
diff --git a/templates/en/disabled.txt b/templates/en/disabled.txt
new file mode 100644
index 00000000..54998a83
--- /dev/null
+++ b/templates/en/disabled.txt
@@ -0,0 +1,25 @@
+Your membership in the mailing list %(listname)s has been disabled
+%(reason)s. You will not get any more messages from this
+list until you re-enable your membership. You will receive
+%(noticesleft)s more reminders like this before your membership in the
+list is deleted.
+
+To re-enable your membership, you can simply respond to this message
+(leaving the Subject: line intact), or visit the confirmation page at
+
+ %(confirmurl)s
+
+You can also visit your membership page at
+
+ %(optionsurl)s
+
+On your membership page, you can change various delivery options such
+as your email address and whether you get digests or not. As a
+reminder, your membership password is
+
+ %(password)s
+
+If you have any questions or problems, you can contact the list owner
+at
+
+ %(owneraddr)s
diff --git a/templates/en/emptyarchive.html b/templates/en/emptyarchive.html
new file mode 100644
index 00000000..2f10766c
--- /dev/null
+++ b/templates/en/emptyarchive.html
@@ -0,0 +1,15 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+ <HEAD>
+ <title>The %(listname)s Archives</title>
+ <META NAME="robots" CONTENT="noindex,follow">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <h1>The %(listname)s Archives </h1>
+ <p>
+ No messages have been posted to this list yet, so the archives are
+ currently empty. You can get <a href="%(listinfo)s">more information
+ about this list</a>.
+ </p>
+ </BODY>
+ </HTML>
diff --git a/templates/en/headfoot.html b/templates/en/headfoot.html
new file mode 100644
index 00000000..2d5e6d9f
--- /dev/null
+++ b/templates/en/headfoot.html
@@ -0,0 +1,29 @@
+This text can include
+<a href="http://www.python.org/doc/current/lib/typesseq-strings.html">Python
+format strings</a> which are resolved against list attributes. The
+list of substitutions allowed are:
+
+<ul>
+ <li><b><code>real_name</code></b> - The `pretty' name of the list; usually
+ the list name with capitalization.
+
+ <li><b><code>list_name</code></b> - The name by which the list is
+ identified in URLs, where case is significant. (For backwards
+ compability, <code>_internal_name</code> is equivalent.)
+
+ <li><b><code>host_name</code></b> - The fully qualified domain name
+ that the list server runs on.
+
+ <li><b><code>web_page_url</code></b> - The base URL for Mailman. This
+ can be appended with,
+ e.g. <em><code>listinfo/%(internal_name)s</code></em> to yield the
+ listinfo page for the mailing list.
+
+ <li><b><code>description</code></b> - The brief description of the
+ mailing list.
+
+ <li><b><code>info</code></b> - The full description of the mailing
+ list.
+
+ <li><b><code>cgiext</code></b> - The extension added to CGI scripts.
+</ul>
diff --git a/templates/en/help.txt b/templates/en/help.txt
new file mode 100644
index 00000000..654eda31
--- /dev/null
+++ b/templates/en/help.txt
@@ -0,0 +1,33 @@
+Help for %(listname)s mailing list:
+
+This is email command help for version %(version)s of the "Mailman"
+list manager. The following describes commands you can send to get
+information about and control your subscription to Mailman lists at
+this site. A command can be in the subject line or in the body of the
+message.
+
+Note that much of the following can also be accomplished via the World
+Wide Web, at:
+
+ %(listinfo_url)s
+
+In particular, you can use the Web site to have your password sent to
+your delivery address.
+
+List specific commands (subscribe, who, etc) should be sent to the
+*-request address for the particular list, e.g. for the 'mailman'
+list, use 'mailman-request@...'.
+
+About the descriptions - words in "<>"s signify REQUIRED items and
+words in "[]" denote OPTIONAL items. Do not include the "<>"s or
+"[]"s when you use the commands.
+
+The following commands are valid:
+
+ %(commands)s
+
+Commands should be sent to %(requestaddr)s
+
+Questions and concerns for the attention of a person should be sent to
+
+ %(adminaddr)s
diff --git a/templates/en/invite.txt b/templates/en/invite.txt
new file mode 100644
index 00000000..920c8421
--- /dev/null
+++ b/templates/en/invite.txt
@@ -0,0 +1,20 @@
+Your address "%(email)s" has been invited to join the %(listname)s
+mailing list at %(hostname)s by the %(listname)s mailing list owner.
+You may accept the invitation by simply replying to this message,
+keeping the Subject: header intact.
+
+You can also visit this web page:
+
+ %(confirmurl)s
+
+Or you should include the following line -- and only the following
+line -- in a message to %(requestaddr)s:
+
+ confirm %(cookie)s
+
+Note that simply sending a `reply' to this message should work from
+most mail readers.
+
+If you want to decline this invitation, please simply disregard this
+message. If you have any questions, please send them to
+%(listowner)s.
diff --git a/templates/en/listinfo.html b/templates/en/listinfo.html
new file mode 100644
index 00000000..f83055e2
--- /dev/null
+++ b/templates/en/listinfo.html
@@ -0,0 +1,144 @@
+<!-- $Revision: 5865 $ -->
+<HTML>
+ <HEAD>
+ <TITLE><MM-List-Name> Info Page</TITLE>
+
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+
+ <P>
+ <TABLE COLS="1" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1"><MM-List-Name> --
+ <MM-List-Description></FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <p>&nbsp;
+ </td>
+ </tr>
+ <tr>
+ <TD COLSPAN="1" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000">About <MM-List-Name></FONT></B>
+ </TD>
+ <TD COLSPAN="1" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <MM-lang-form-start><MM-displang-box> <MM-list-langs>
+ <MM-form-end>
+ <MM-Subscribe-Form-Start>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <P><MM-List-Info></P>
+ <p> To see the collection of prior postings to the list,
+ visit the <MM-Archive><MM-List-Name>
+ Archives</MM-Archive>.
+ <MM-Restricted-List-Message>
+ </p>
+ </TD>
+ </TR>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000">Using <MM-List-Name></FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ To post a message to all the list members, send email to
+ <A HREF="mailto:<MM-Posting-Addr>"><MM-Posting-Addr></A>.
+
+ <p>You can subscribe to the list, or change your existing
+ subscription, in the sections below.
+ </td>
+ </tr>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000">Subscribing to <MM-List-Name></FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <P>
+ Subscribe to <MM-List-Name> by filling out the following
+ form.
+ <MM-List-Subscription-Msg>
+ <ul>
+ <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"
+ WIDTH="70%" HEIGHT= "112">
+ <TR>
+ <TD BGCOLOR="#dddddd" WIDTH="55%">Your email address:</TD>
+ <TD WIDTH="33%"><MM-Subscribe-Box>
+ </TD>
+ <TD WIDTH="12%">&nbsp;</TD></TR>
+ <tr>
+ <td bgcolor="#dddddd" width="55%">Your name (optional):</td>
+ <td width="33%"><mm-fullname-box></td>
+ <TD WIDTH="12%">&nbsp;</TD></TR>
+ <TR>
+ <TD COLSPAN="3"><FONT SIZE=-1>You may enter a
+ privacy password below. This provides only mild security,
+ but should prevent others from messing with your
+ subscription. <b>Do not use a valuable password</b> as
+ it will occasionally be emailed back to you in cleartext.
+
+ <p>If you choose not to enter a password, one will be
+ automatically generated for you, and it will be sent to
+ you once you've confirmed your subscription. You can
+ always request a mail-back of your password when you edit
+ your personal options.
+ <MM-Reminder>
+ </TD>
+ </TR>
+ <TR>
+ <TD BGCOLOR="#dddddd">Pick a password:</TD>
+ <TD><MM-New-Password-Box></TD>
+ <TD>&nbsp;</TD></TR>
+ <TR>
+ <TD BGCOLOR="#dddddd">Reenter password to confirm:</TD>
+ <TD><MM-Confirm-Password></TD>
+ <TD>&nbsp; </TD></TR>
+ <tr>
+ <TD BGCOLOR="#dddddd">Which language do you prefer to display your messages?</TD>
+ <TD> <MM-list-langs></TD>
+ <TD>&nbsp; </TD></TR>
+ <mm-digest-question-start>
+ <tr>
+ <td>Would you like to receive list mail batched in a daily
+ digest?
+ </td>
+ <td><MM-Undigest-Radio-Button> No
+ <MM-Digest-Radio-Button> Yes
+ </TD>
+ </tr>
+ <mm-digest-question-end>
+ <tr>
+ <td colspan="3">
+ <center><MM-Subscribe-Button></P></center>
+ </TABLE>
+ <MM-Form-End>
+ </ul>
+ </td>
+ </tr>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <a name="subscribers">
+ <B><FONT COLOR="#000000"><MM-List-Name> Subscribers</FONT></B></a>
+ </TD>
+ </TR>
+ <tr>
+ <TD COLSPAN="2" WIDTH="100%">
+ <MM-Roster-Form-Start>
+ <MM-Roster-Option>
+ <MM-Form-End>
+ <p>
+ <MM-Options-Form-Start>
+ <MM-Editing-Options>
+ <MM-Form-End>
+ </td>
+ </tr>
+ </table>
+<MM-Mailman-Footer>
+</BODY>
+</HTML>
diff --git a/templates/en/masthead.txt b/templates/en/masthead.txt
new file mode 100644
index 00000000..30c526ac
--- /dev/null
+++ b/templates/en/masthead.txt
@@ -0,0 +1,13 @@
+Send %(real_name)s mailing list submissions to
+ %(got_list_email)s
+
+To subscribe or unsubscribe via the World Wide Web, visit
+ %(got_listinfo_url)s
+or, via email, send a message with subject or body 'help' to
+ %(got_request_email)s
+
+You can reach the person managing the list at
+ %(got_owner_email)s
+
+When replying, please edit your Subject line so it is more specific than
+"Re: Contents of %(real_name)s digest..."
diff --git a/templates/en/newlist.txt b/templates/en/newlist.txt
new file mode 100644
index 00000000..3362887d
--- /dev/null
+++ b/templates/en/newlist.txt
@@ -0,0 +1,35 @@
+The mailing list `%(listname)s' has just been created for you. The
+following is some basic information about your mailing list.
+
+Your mailing list password is:
+
+ %(password)s
+
+You need this password to configure your mailing list. You also need
+it to handle administrative requests, such as approving mail if you
+choose to run a moderated list.
+
+You can configure your mailing list at the following web page:
+
+ %(admin_url)s
+
+The web page for users of your mailing list is:
+
+ %(listinfo_url)s
+
+You can even customize these web pages from the list configuration
+page. However, you do need to know HTML to be able to do this.
+
+There is also an email-based interface for users (not administrators)
+of your list; you can get info about using it by sending a message
+with just the word `help' as subject or in the body, to:
+
+ %(requestaddr)s
+
+To unsubscribe a user: from the mailing list 'listinfo' web page,
+click on or enter the user's email address as if you were that user.
+Where that user would put in their password to unsubscribe, put in
+your admin password. You can also use your password to change
+member's options, including digestification, delivery disabling, etc.
+
+Please address all questions to %(siteowner)s.
diff --git a/templates/en/nomoretoday.txt b/templates/en/nomoretoday.txt
new file mode 100644
index 00000000..1019dce3
--- /dev/null
+++ b/templates/en/nomoretoday.txt
@@ -0,0 +1,8 @@
+We have received a message from your address `%(sender)s' requesting
+an automated response from the %(listname)s mailing list. We have
+seen %(num)s such messages from you today. In order to avoid problems
+such as mail loops between email robots, we will not be sending you
+any further email responses today. Please try again tomorrow.
+
+If you believe this message is in error, or if you have any questions,
+please contact the list owner at %(owneremail)s.
diff --git a/templates/en/options.html b/templates/en/options.html
new file mode 100644
index 00000000..664aeca0
--- /dev/null
+++ b/templates/en/options.html
@@ -0,0 +1,317 @@
+<!-- $Revision: 5380 $ -->
+<html>
+<head>
+ <link rel="SHORTCUT ICON" href="<mm-favicon>">
+ <title><MM-Presentable-User> membership configuration for <MM-List-Name>
+ </title>
+</head>
+<BODY BGCOLOR="#ffffff">
+ <TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#99CCFF"><B>
+ <FONT COLOR="#000000" SIZE=+1>
+ <MM-List-Name> mailing list membership configuration for
+ <MM-Presentable-User>
+ </FONT></B></TD></TR>
+ </TABLE>
+<p>
+<table width="100%" border="0" cellspacing="5" cellpadding="5">
+ <tr><td>
+ <b><MM-Presentable-User></b>'s subscription status,
+ password, and options for the <MM-List-Name> mailing list.
+ </td><td><MM-Form-Start><mm-logout-button><MM-Form-End></td>
+ </tr><tr>
+ <td colspan="2">
+ <MM-Case-Preserved-User>
+
+ <MM-Disabled-Notice>
+
+ <p><mm-results>
+ </td>
+ </tr>
+</table>
+
+<MM-Form-Start>
+<p>
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#FFF0D0" colspan="2">
+ <FONT COLOR="#000000">
+ <B>Changing your <MM-List-Name> membership information</B>
+ </FONT></TD></TR>
+ <tr><td colspan="2">You can change the address that you are subscribed
+ to the mailing list with by entering the new address in the
+ fields below. Note that a confirmation email will be sent to
+ the new address, and the change must be confirmed before it is
+ processed.
+
+ <p>Confirmations time out after about <mm-pending-days>.
+
+ <p>You can also optionally set or change your real name
+ (i.e. <em>John Smith</em>).
+
+ <p>If you want to make the membership changes for all the
+ lists that you are subscribed to at <mm-host>, turn on the
+ <em>Change globally</em> check box.
+
+ </td></tr>
+ <tr><td><center>
+ <table border="0" cellspacing="2" cellpadding="2" width="80%" cols="2">
+ <tr><td bgcolor="#dddddd"><div align="right">New address:</div></td>
+ <td><mm-new-address-box></td>
+ </tr>
+ <tr><td bgcolor="#dddddd"><div align="right">Again to
+ confirm:</div></td>
+ <td><mm-confirm-address-box></td>
+ </tr>
+ </tr></table></center>
+ </td>
+ <td><center>
+ <table border="0" cellspacing="2" cellpadding="2" width="80%" cols="2">
+ <tr><td bgcolor="#dddddd"><div align="right">Your name
+ (optional):</div></td>
+ <td><mm-fullname-box></td>
+ </tr>
+ </table></center>
+ </td>
+ </tr>
+ <tr><td colspan="2"><center><mm-change-address-button>
+ <p><mm-global-change-of-address>Change globally</center></td>
+ </tr>
+</table>
+
+<p>
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="5" CELLPADDING="5">
+ <TR><TD WIDTH="50%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>Unsubscribing from <MM-List-Name></B></td>
+
+ <TD WIDTH="50%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>Your other <MM-Host> subscriptions</B>
+ </FONT></TD></TR>
+
+ <tr><td>
+ Turn on the confirmation checkbox and hit this button to
+ unsubscribe from this mailing list. <strong>Warning:</strong>
+ This action will be taken immediately!
+ <p>
+ <center><MM-Unsubscribe-Button></center></td>
+ <td>
+ You can view a list of all the other mailing lists at
+ <mm-host> for which you are a member. Use this if you want to
+ make the same membership option changes to this other
+ subscriptions.
+
+ <p>
+ <center><MM-Other-Subscriptions-Submit></center>
+ </TD></TR>
+</table>
+
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD COLSPAN=2 WIDTH="100%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>Your <MM-List-Name> Password</B>
+ </FONT></TD></TR>
+
+ <tr valign="TOP"><td WIDTH="50%">
+ <a name=reminder>
+ <center>
+ <h3>Forgotten Your Password?</h3>
+ </center>
+ Click this button to have your password emailed to your
+ membership address.
+ <p><MM-Umbrella-Notice>
+ <center>
+ <MM-Email-My-Pw>
+ </center>
+ </td>
+
+ <td WIDTH="50%">
+ <a name=changepw>
+ <center>
+ <h3>Change Your Password</h3>
+ <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2" WIDTH="70%" COLS=2>
+ <TR><TD BGCOLOR="#dddddd"><div align="right">New
+ password:</div></TD>
+ <TD><MM-New-Pass-Box></TD>
+ </TR>
+ <TR>
+ <TD BGCOLOR="#dddddd"><div align="right">Again to
+ confirm:</div></TD>
+ <TD><MM-Confirm-Pass-Box></TD>
+ </TR>
+ </table>
+
+ <MM-Change-Pass-Button>
+ <p><center><mm-global-pw-changes-button>Change globally.
+ </center>
+</TABLE>
+
+<p>
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>Your <MM-List-Name> Subscription Options</B>
+ </FONT></TD></TR>
+</table>
+
+<p>
+<i><strong>Current values are checked.</strong></i>
+
+<p>Note that some of the options have a <em>Set globally</em>
+checkbox. Checking this field will cause the changes to be made to
+every mailing list that you are a member of on <mm-host>. Click on
+<em>List my other subscriptions</em> above to see which other mailing
+lists you are subscribed to.
+<p>
+<TABLE BORDER="0" CELLSPACING="3" CELLPADDING="4" WIDTH="100%">
+ <tr><TD BGCOLOR="#cccccc">
+ <a name="disable">
+ <strong>Mail delivery</strong></a><p>
+ Set this option to <em>Enabled</em> to receive messages posted
+ to this mailing list. Set it to <em>Disabled</em> if you want
+ to stay subscribed, but don't want mail delivered to you for a
+ while (e.g. you're going on vacation). If you disable mail
+ delivery, don't forget to re-enable it when you come back; it
+ will not be automatically re-enabled.
+ </td><td bgcolor="#cccccc">
+ <mm-delivery-enable-button>Enabled<br>
+ <mm-delivery-disable-button>Disabled<p>
+ <mm-global-deliver-button><i>Set globally</i>
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Set Digest Mode</strong><p>
+ If you turn digest mode on, you'll get posts bundled together
+ (usually one per day but possibly more on busy lists), instead
+ of singly when they're sent. If digest mode is changed from
+ on to off, you may receive one last digest.
+ </td><td bgcolor="#cccccc">
+ <MM-Undigest-Radio-Button>Off<br>
+ <MM-Digest-Radio-Button>On
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Get MIME or Plain Text Digests?</strong><p>
+ Your mail reader may or may not support MIME digests. In
+ general MIME digests are preferred, but if you have a problem
+ reading them, select plain text digests.
+ </td><td bgcolor="#cccccc">
+ <MM-Mime-Digests-Button>MIME<br>
+ <MM-Plain-Digests-Button>Plain Text<p>
+ <mm-global-mime-button><i>Set globally</i>
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Receive your own posts to the list?</strong><p>
+ Ordinarily, you will get a copy of every message you post to
+ the list. If you don't want to receive this copy, set this
+ option to <em>No</em>.
+ </td><td bgcolor="#cccccc">
+ <mm-dont-receive-own-mail-button>No<br>
+ <mm-receive-own-mail-button>Yes
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Receive acknowledgement mail when you send mail to
+ the list?</strong><p>
+ </td><td bgcolor="#cccccc">
+ <mm-dont-ack-posts-button>No<br>
+ <mm-ack-posts-button>Yes
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>Get password reminder email for this list?</strong><p>
+ Once a month, you will get an email containing a password
+ reminder for every list at this host to which you are
+ subscribed. You can turn this off on a per-list basis by
+ selecting <em>No</em> for this option. If you turn off
+ password reminders for all the lists you are subscribed to, no
+ reminder email will be sent to you.
+ </td><td bgcolor="#cccccc">
+ <mm-dont-get-password-reminder-button>No<br>
+ <mm-get-password-reminder-button>Yes<p>
+ <mm-global-remind-button><i>Set globally</i>
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Conceal yourself from subscriber list?</strong><p>
+ When someone views the list membership, your email address is
+ normally shown (in an obscured fashion to thwart spam
+ harvesters). If you do not want your email address to show up
+ on this membership roster at all, select <em>Yes</em> for this option.
+ </td><td bgcolor="#cccccc">
+ <MM-Public-Subscription-Button>No<br>
+ <MM-Hide-Subscription-Button>Yes
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>What language do you prefer?</strong><p>
+ </td><td bgcolor="#cccccc">
+ <MM-list-langs>
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>Which topic categories would you like to subscribe
+ to?</strong><p>
+ By selecting one or more topics, you can filter the
+ traffic on the mailing list, so as to receive only a
+ subset of the messages. If a message matches one of
+ your selected topics, then you will get the message,
+ otherwise you will not.
+
+ <p>If a message does not match any topic, the delivery
+ rule depends on the setting of the option below. If
+ you do not select any topics of interest, you will get
+ all the messages sent to the mailing list.
+ </td><td bgcolor="#cccccc">
+ <mm-topics>
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>Do you want to receive message that do not match any
+ topic filter?</strong><p>
+
+ This option only takes effect if you've subscribed to
+ at least one topic above. It describes what the
+ default delivery rule is for messages that don't match
+ any topic filter. Selecting <em>No</em> says that if
+ the message does not match any topic filters, then you
+ won't get the message, while selecting <em>Yes</em>
+ says to delivery such non-matching messages to you.
+
+ <p>If no topics of interest are selected above, then
+ you will receive every message sent to the mailing
+ list.
+ </td><td bgcolor="#cccccc">
+ <mm-suppress-nonmatching-topics>No<br>
+ <mm-receive-nonmatching-topics>Yes
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>Avoid duplicate copies of messages?</strong><p>
+
+ When you are listed explicitly in the <tt>To:</tt> or
+ <tt>Cc:</tt> headers of a list message, you can opt to
+ not receive another copy from the mailing list.
+ Select <em>Yes</em> to avoid receiving copies from the
+ mailing list; select <em>No</em> to receive copies.
+
+ <p>If the list has member personalized messages
+ enabled, and you elect to receive copies, every copy
+ will have a <tt>X-Mailman-Copy: yes</tt> header added
+ to it.
+
+ </td><td bgcolor="#cccccc">
+ <mm-receive-duplicates-button>No<br>
+ <mm-dont-receive-duplicates-button>Yes<p>
+ <mm-global-nodupes-button><i>Set globally</i>
+ </td></tr>
+
+ <tr><TD colspan="2">
+ <center><MM-options-Submit-button></center>
+ </td></tr>
+
+</table>
+</center>
+<p>
+<MM-Form-End>
+
+<MM-Mailman-Footer>
+</body>
+</html>
diff --git a/templates/en/postack.txt b/templates/en/postack.txt
new file mode 100644
index 00000000..7402e4c2
--- /dev/null
+++ b/templates/en/postack.txt
@@ -0,0 +1,8 @@
+Your message entitled
+
+ %(subject)s
+
+was successfully received by the %(listname)s mailing list.
+
+List info page: %(listinfo_url)s
+Your preferences: %(optionsurl)s
diff --git a/templates/en/postauth.txt b/templates/en/postauth.txt
new file mode 100644
index 00000000..a1072771
--- /dev/null
+++ b/templates/en/postauth.txt
@@ -0,0 +1,13 @@
+As list administrator, your authorization is requested for the
+following mailing list posting:
+
+ List: %(listname)s@%(hostname)s
+ From: %(sender)s
+ Subject: %(subject)s
+ Reason: %(reason)s
+
+At your convenience, visit:
+
+ %(admindb_url)s
+
+to approve or deny the request.
diff --git a/templates/en/postheld.txt b/templates/en/postheld.txt
new file mode 100644
index 00000000..877bb405
--- /dev/null
+++ b/templates/en/postheld.txt
@@ -0,0 +1,15 @@
+Your mail to '%(listname)s' with the subject
+
+ %(subject)s
+
+Is being held until the list moderator can review it for approval.
+
+The reason it is being held:
+
+ %(reason)s
+
+Either the message will get posted to the list, or you will receive
+notification of the moderator's decision. If you would like to cancel
+this posting, please visit the following URL:
+
+ %(confirmurl)s
diff --git a/templates/en/private.html b/templates/en/private.html
new file mode 100644
index 00000000..79a27dad
--- /dev/null
+++ b/templates/en/private.html
@@ -0,0 +1,43 @@
+<html>
+<head>
+ <title>%(realname)s Private Archives Authentication</title>
+</head>
+<body bgcolor="#ffffff">
+<FORM METHOD=POST ACTION="%(action)s/">
+%(message)s
+ <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1">%(realname)s Private
+ Archives Authentication</FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <TD><div ALIGN="Right">Email address:</div></TD>
+ <TD><INPUT TYPE="text" NAME="username" SIZE="30"></TD>
+ </tr>
+ <tr>
+ <TD><div ALIGN="Right">Password:</div></TD>
+ <TD><INPUT TYPE="password" NAME="password" SIZE="30"></TD>
+ </tr>
+ <tr>
+ <td colspan=2 align="middle"><INPUT type="SUBMIT"
+ name="submit"
+ value="Let me in...">
+ </td>
+ </tr>
+ </TABLE>
+ <p><strong><em>Important:</em></strong> From this point on, you
+ must have cookies enabled in your browser, otherwise no
+ administrative changes will take effect.
+
+ <p>Session cookies are used in Mailman's
+ administrative interface so that you don't need to
+ re-authenticate with every administrative operation. This
+ cookie will expire automatically when you exit your browser, or
+ you can explicitly expire the cookie by hitting the
+ <em>Logout</em> link under <em>Other Administrative
+ Activities</em> (which you'll see once you successfully log in).
+</FORM>
+</body>
+</html>
diff --git a/templates/en/refuse.txt b/templates/en/refuse.txt
new file mode 100644
index 00000000..9b6d9bb9
--- /dev/null
+++ b/templates/en/refuse.txt
@@ -0,0 +1,13 @@
+Your request to the %(listname)s mailing list
+
+ %(request)s
+
+has been rejected by the list moderator. The moderator gave the
+following reason for rejecting your request:
+
+"%(reason)s"
+
+Any questions or comments should be directed to the list administrator
+at:
+
+ %(adminaddr)s
diff --git a/templates/en/roster.html b/templates/en/roster.html
new file mode 100644
index 00000000..be3d1c89
--- /dev/null
+++ b/templates/en/roster.html
@@ -0,0 +1,53 @@
+<!-- $Revision: 3394 $ -->
+<HTML>
+ <HEAD>
+ <TITLE><MM-List-Name> Subscribers</TITLE>
+
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+
+ <P>
+ <TABLE WIDTH="100%" COLS="1" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1"><MM-List-Name>
+ Subscribers</FONT></B>
+ </TD>
+ </TR>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" ALIGN="CENTER">
+
+ <P align = "right"> <MM-lang-form-start><MM-displang-box>
+ <MM-list-langs><MM-form-end></p>
+
+ <P>Click on your address to visit your subscription
+ options page.<br><I>(Parenthesized entries have list delivery
+ disabled.)</I></P>
+ </TD>
+ </TR>
+ <TR WIDTH="100%" VALIGN="top">
+ <TD BGCOLOR="#FFF0D0" WIDTH="50%">
+ <center>
+ <B><FONT COLOR="#000000"><MM-Num-Reg-Users>
+ Non-digested Members of <MM-List-Name>:</FONT></B>
+ </center>
+ </TD>
+ <TD BGCOLOR="#FFF0D0" WIDTH="50%">
+ <center>
+ <B><FONT COLOR="#000000"><MM-Num-Digesters> Digested
+ Members of <MM-List-Name>:</FONT></B>
+ </center>
+ </TD>
+ </TR>
+ <TR VALIGN="top">
+ <td>
+ <P><MM-Regular-Users>
+ </td>
+ <td>
+ <P><MM-Digest-Users>
+ </td>
+ </tr>
+ </table>
+<MM-Mailman-Footer>
+</BODY>
+</HTML>
diff --git a/templates/en/subauth.txt b/templates/en/subauth.txt
new file mode 100644
index 00000000..9c20c3da
--- /dev/null
+++ b/templates/en/subauth.txt
@@ -0,0 +1,11 @@
+Your authorization is required for a mailing list subscription request
+approval:
+
+ For: %(username)s
+ List: %(listname)s@%(hostname)s
+
+At your convenience, visit:
+
+ %(admindb_url)s
+
+to process the request.
diff --git a/templates/en/subscribe.html b/templates/en/subscribe.html
new file mode 100644
index 00000000..197e6366
--- /dev/null
+++ b/templates/en/subscribe.html
@@ -0,0 +1,9 @@
+<!-- $Revision: 3550 $ -->
+<html>
+<head><title><MM-List-Name> Subscription results</title></head>
+<body bgcolor="white">
+<h1><MM-List-Name> Subscription results</h1>
+<MM-Results>
+<MM-Mailman-Footer>
+</body>
+</html>
diff --git a/templates/en/subscribeack.txt b/templates/en/subscribeack.txt
new file mode 100644
index 00000000..fad433f2
--- /dev/null
+++ b/templates/en/subscribeack.txt
@@ -0,0 +1,33 @@
+Welcome to the %(real_name)s@%(host_name)s mailing list!
+%(welcome)s
+To post to this list, send your email to:
+
+ %(emailaddr)s
+
+General information about the mailing list is at:
+
+ %(listinfo_url)s
+
+If you ever want to unsubscribe or change your options (eg, switch to or
+from digest mode, change your password, etc.), visit your subscription
+page at:
+
+ %(optionsurl)s
+%(umbrella)s
+You can also make such adjustments via email by sending a message to:
+
+ %(real_name)s-request@%(host_name)s
+
+with the word `help' in the subject or body (don't include the
+quotes), and you will get back a message with instructions.
+
+You must know your password to change your options (including changing
+the password, itself) or to unsubscribe. It is:
+
+ %(password)s
+
+Normally, Mailman will remind you of your %(host_name)s mailing list
+passwords once every month, although you can disable this if you
+prefer. This reminder will also include instructions on how to
+unsubscribe or change your account options. There is also a button on
+your options page that will email your current password to you.
diff --git a/templates/en/unsub.txt b/templates/en/unsub.txt
new file mode 100644
index 00000000..b08f65ba
--- /dev/null
+++ b/templates/en/unsub.txt
@@ -0,0 +1,23 @@
+Mailing list removal confirmation notice for mailing list %(listname)s
+
+We have received a request%(remote)s for the removal of your email
+address, "%(email)s" from the %(listaddr)s mailing list. To confirm
+that you want to be removed from this mailing list, simply reply to
+this message, keeping the Subject: header intact. Or visit this web
+page:
+
+ %(confirmurl)s
+
+Or include the following line -- and only the following line -- in a
+message to %(requestaddr)s:
+
+ confirm %(cookie)s
+
+Note that simply sending a `reply' to this message should work from
+most mail readers, since that usually leaves the Subject: line in
+the right form (additional "Re:" text in the Subject: is okay).
+
+If you do not wish to be removed from this list, please simply
+disregard this message. If you think you are being maliciously
+removed from the list, or have any other questions, send them to
+%(listadmin)s.
diff --git a/templates/en/unsubauth.txt b/templates/en/unsubauth.txt
new file mode 100644
index 00000000..920f6c1b
--- /dev/null
+++ b/templates/en/unsubauth.txt
@@ -0,0 +1,11 @@
+Your authorization is required for a mailing list unsubscription
+request approval:
+
+ By: %(username)s
+ From: %(listname)s@%(hostname)s
+
+At your convenience, visit:
+
+ %(admindb_url)s
+
+to process the request.
diff --git a/templates/en/userpass.txt b/templates/en/userpass.txt
new file mode 100644
index 00000000..2a53a846
--- /dev/null
+++ b/templates/en/userpass.txt
@@ -0,0 +1,24 @@
+You, or someone posing as you, has requested a password reminder for
+your membership on the mailing list %(fqdn_lname)s. You will need
+this password in order to change your membership options (e.g. do you
+want regular delivery or digest delivery), and having this password
+makes it easier for you to unsubscribe from the mailing list.
+
+You are subscribed with the address: %(user)s
+
+Your %(listname)s password is: %(password)s
+
+To make changes to your membership options, log in and visit your
+options web page:
+
+ %(options_url)s
+
+You can also make such changes via email by sending a message to:
+
+ %(requestaddr)s
+
+with the text "help" in the subject or body. The automatic reply will
+contain more detailed instructions.
+
+Questions or comments? Please send them to the %(listname)s mailing
+list administrator at %(owneraddr)s.
diff --git a/templates/en/verify.txt b/templates/en/verify.txt
new file mode 100644
index 00000000..36229f8c
--- /dev/null
+++ b/templates/en/verify.txt
@@ -0,0 +1,22 @@
+Mailing list subscription confirmation notice for mailing list %(listname)s
+
+We have received a request%(remote)s for subscription of your email
+address, "%(email)s", to the %(listaddr)s mailing list. To confirm
+that you want to be added to this mailing list, simply reply to this
+message, keeping the Subject: header intact. Or visit this web page:
+
+ %(confirmurl)s
+
+Or include the following line -- and only the following line -- in a
+message to %(requestaddr)s:
+
+ confirm %(cookie)s
+
+Note that simply sending a `reply' to this message should work from
+most mail readers, since that usually leaves the Subject: line in
+the right form (additional "Re:" text in the Subject: is okay).
+
+If you do not wish to be subscribed from this list, please simply
+disregard this message. If you think you are being maliciously
+subscribed to the list, or have any other questions, send them to
+%(listadmin)s.
diff --git a/templates/es/admindbdetails.html b/templates/es/admindbdetails.html
new file mode 100644
index 00000000..b6c4827c
--- /dev/null
+++ b/templates/es/admindbdetails.html
@@ -0,0 +1,63 @@
+Las solicitudes administrativas se muestran de una de las dos formas, como una
+<a href="%(summaryurl)s">página con un resumen</a>, o como una página
+<em>detallada</em>. La página con el sumario contiene solicitudes de
+alta o baja pendientes, envíos a la lista que han sido retenidos para que los
+apruebes, agrupados por dirección de remitente. La página con los detalles
+contiene una vista más detallada de cada uno de los mensajes retenidos,
+junto con las cabeceras del mensaje y un extracto del cuerpo del mismo.
+
+<p>En cualquiera de estas páginas están disponibles las siguientes acciones:
+
+<ul>
+<li><b>Diferir</b> -- Postpone tu decisión para más tarde. No se aplica ninguna
+acción ahora para esta solicitud administrativa pendiente, aún así puede reenviar
+o preservar el mensaje (vea más abajo).
+
+<p><li><b>Aprobar</b> -- Aprobar el mensaje, enviándolo a la lista. Para las
+solicitudes de subscripción, aprobar las mismas.
+
+<p><li><b>Rechazar</b> -- Rechazar el mensaje, enviando un mensaje de rechazo al
+remitente, y descartando el mensaje original. Para las solicitudes de
+subscripción, rechaza las mismas. En cualquier caso, deberias poner el motivo del
+rechazo en el cuadro de texto adjunto.
+
+<p><li><b>Descartar</b> -- Tirar el mensaje original, sin mandar un mensaje de
+rechazo. Para las solicitudes de subscripción, esto símplemente descarta la
+solicitud sin avisar a la persona que hizo la solicitud. Esta opción se usa
+normalmente con el correo no solicitado o spam.
+</ul>
+
+<p>Para los mensajes retenidos, active la opción <b>Preservar</b> si quiere
+guardar una copia de los mensajes para el administrador del servidor. Esto es
+útil para aquellos mensajes abusivos que quieres descartar, pero que necesites
+guardar un registro para ehcarle un vistazo después.
+
+<p>Active la opción <b>Redirigir a</b> y rellene la dirección correspondiente si
+quiere reenviar el mensaje a alguien que no esté en la lista. para editar un
+mensaje retenido antes de que se envíe a la lista, puede reenviarselo a si mismo
+(o al propietario de la lista), y descartar el mensaje original. Entonces,
+cuando el mensaje se muestre en su buzón de entrada, haga sus corecciones y
+reenvíe a la lista, incluyendo una cabecera <tt>Approved:</tt> con la clave de la
+lista como su valor. Es de buena costumbre en este caso, incluir una nota en el
+mensaje explicando que ha modificado el texto.
+
+<p>Si el remitente es un subscriptor que está siendo moderado, puede limpiar
+opcionalmente su marca de moderación. Esto es útil cuando su lista está
+configurada para poner a los subscriptores nuevos en cuarentena y decide que
+puede confiar en este subscriptor a la hora de mandar mensajes a la lista sin
+aprobación.
+
+<p>Si el remitente no es un subscriptor de la lista, puede añadir esta dirección
+de correo electrónico al <em>filtrado de remitentes</em>. El filtrado de
+remitentes se describen en la <a href="%(filterurl)s">página de fitros de
+privacidad</a>, y puede ser <b>aceptar automáticamente</b>, <b>retener
+automáticamente</b>, <b>rechazar automáticamente</b> o <b>descartar
+automáticamente</b>. Esta opción no estará disponible si la dirección ya está en
+uno de los filtros de remitente.
+
+<p>cuando hay terminado, dele con el ratón en el botón <em>Enviar todos los
+datos</em> del final de la página. Este botón entregará todas las acciones
+seleccionadas para todas las solicitudes administrativas para las que hay hecho
+alguna selección.
+
+<p><a href="%(summaryurl)s">Regresar a la página con los sumarios</a>.
diff --git a/templates/es/admindbpreamble.html b/templates/es/admindbpreamble.html
new file mode 100644
index 00000000..6f31f668
--- /dev/null
+++ b/templates/es/admindbpreamble.html
@@ -0,0 +1,10 @@
+Esta p&aacute;gina contiene un subconjunto de los envíos a la
+lista de distribución <em>%(listname)s</em> que requieren
+de su conformidad. Actualmente muestra %(description)s
+
+<p> Para cada solicitud administrativa, por favor seleccione la acción a tomar
+pulsando con el ratón en <b>mandar todos los datos</b> una vez que termine. Puede
+encontrar información adicional <a href="%(detailsurl)s">aquí</a>.
+
+<p>También puede <a href="%(summaryurl)s">ver un resumen</a> de todas las solicitudes
+pendientes.
diff --git a/templates/es/admindbsummary.html b/templates/es/admindbsummary.html
new file mode 100644
index 00000000..44cd2e78
--- /dev/null
+++ b/templates/es/admindbsummary.html
@@ -0,0 +1,14 @@
+Esta página contiene un sumario de las solicitudes administrativas que
+requieren de su aprobación para la <a href="%(adminurl)s">lista de distribución</em>
+<em>%(listname)s</em>.
+
+Lo primero que encontrará serán las solicitudes de alta y baja en la lista, siempre
+que exista alguna, seguida por cualquier envío a la lista que necesite de su
+aprobación.
+
+<p>Seleccione la acción a tomar para cada una de las solicitudes administrativa y
+pulse en el botón <b>Enviar todos los datos</b> cuando haya terminado.
+Hay disponibles <a href="%(detailsurl)s">instrucciones más detalladas</a>.
+
+<p>También puede <a href="%(viewallurl)s">ver los detalles</a> de todos los envíos
+retenidos.
diff --git a/templates/es/adminsubscribeack.txt b/templates/es/adminsubscribeack.txt
new file mode 100644
index 00000000..c792d49b
--- /dev/null
+++ b/templates/es/adminsubscribeack.txt
@@ -0,0 +1,3 @@
+%(member)s se ha subscrito satisfactoriamente a %(listname)s.
+
+
diff --git a/templates/es/adminunsubscribeack.txt b/templates/es/adminunsubscribeack.txt
new file mode 100644
index 00000000..0f70bf6d
--- /dev/null
+++ b/templates/es/adminunsubscribeack.txt
@@ -0,0 +1,3 @@
+%(member)s ha anulado su subscripción de %(listname)s.
+
+
diff --git a/templates/es/admlogin.html b/templates/es/admlogin.html
new file mode 100644
index 00000000..e56f8a30
--- /dev/null
+++ b/templates/es/admlogin.html
@@ -0,0 +1,37 @@
+<html>
+<head>
+ <title>Autentificación del %(who)s de %(listname)s </title>
+</head>
+<body bgcolor="#ffffff">
+<FORM METHOD=POST ACTION="%(path)s">
+%(message)s
+ <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1">
+ Autentificación del %(who)s de %(listname)s</FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <TD><div ALIGN="Right"></Clave del %(who)s de la lista:</div></TD>
+ <TD><INPUT TYPE="password" NAME="adminpw" SIZE="30"></TD>
+ </tr>
+ <tr>
+ <td colspan=2 align=middle><INPUT type="SUBMIT"
+ name="admlogin"
+ value="Con permiso...">
+ </td>
+ </tr>
+ </TABLE>
+ <p><strong><em>Importante:</em></strong> A partir de ahora, debe
+ tener habilitadas las cookies en su navegador, en caso contrario, sus cambios,
+ no tendr&aacute;n efecto.
+
+ <p>Las sesiones basadas en cookies se usan en la interfaz administrativa de Mailman, de
+manera que no necesita identificarse continuamente con cada operaci&oacute;n administrativa que
+realice. La cookie caducar&aacute; autom&aacute;ticamente cuando salga del navegador, or puede hacerla caducar seleccionando la opci&oacute;n <em>Salida</em> bajo la secci&oacute;n titulada
+ <em> Otras Actividades Administrativas</em> (que ver&aacute; una vez que consiga entrar
+satisfactoriamente).
+</FORM>
+</body>
+</html>
diff --git a/templates/es/approve.txt b/templates/es/approve.txt
new file mode 100644
index 00000000..aa0a990e
--- /dev/null
+++ b/templates/es/approve.txt
@@ -0,0 +1,16 @@
+Su petición a %(requestaddr)s:
+
+ %(cmd)s
+
+se ha enviado al administrador de la lista.
+
+Probablemente se debe a que ha intentado subscribirse a una lista
+'cerrada'.
+
+Se le enviará una notificación por correo electrónico de la decisión
+del administrador de la lista sobre su solicitud de subscripción.
+
+Cualquier pregunta sobre la política de subscripciones de la lista
+se debe enviar al administrador:
+
+ %(adminaddr)s
diff --git a/templates/es/article.html b/templates/es/article.html
new file mode 100644
index 00000000..56785c65
--- /dev/null
+++ b/templates/es/article.html
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+ <HEAD>
+ <TITLE> %(title)s
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:%(email_url)s">
+ <META NAME="robots" CONTENT="index,nofollow">
+ %(encoding)s
+ %(prev)s
+ %(next)s
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>%(subject_html)s
+ </H1>
+ <B>%(author_html)s
+ </B>
+ <A HREF="mailto:%(email_url)s"
+ TITLE="%(subject_html)s">%(email_html)s
+ </A><BR>
+ <I>%(datestr_html)s</I>
+ <P><UL>
+ %(prev_wsubj)s
+ %(next_wsubj)s
+ <LI> <B>Mensajes ordenados por:</B>
+ <a href="date.html#%(sequence)s">[ fecha ]</a>
+ <a href="thread.html#%(sequence)s">[ hilo ]</a>
+ <a href="subject.html#%(sequence)s">[ asunto ]</a>
+ <a href="author.html#%(sequence)s">[ autor ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+%(body)s
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ %(prev_wsubj)s
+ %(next_wsubj)s
+ <LI> <B>Mensajes ordenados por:</B>
+ <a href="date.html#%(sequence)s">[ fecha ]</a>
+ <a href="thread.html#%(sequence)s">[ hilo ]</a>
+ <a href="subject.html#%(sequence)s">[ asunto ]</a>
+ <a href="author.html#%(sequence)s">[ autor ]</a>
+ </LI>
+ </UL>
+</body></html>
diff --git a/templates/es/bounce.txt b/templates/es/bounce.txt
new file mode 100644
index 00000000..848b5b68
--- /dev/null
+++ b/templates/es/bounce.txt
@@ -0,0 +1,12 @@
+Esto es un aviso de rebote de correo de una lista Mailman.
+
+ Lista: %(listname)s
+ Miembro: %(addr)s
+ Acción: Suscripción %(negative)s%(did)s.
+ Razón: Rebotes excesivos o fatales.
+ %(but)s
+
+%(reenable)s
+Se adjunta abajo el mensaje de rebote que provocó el aviso.
+
+Si tiene alguna pregunta póngase en contacto con el administrador de mailman en %(owneraddr)s.
diff --git a/templates/es/checkdbs.txt b/templates/es/checkdbs.txt
new file mode 100644
index 00000000..59a020ba
--- /dev/null
+++ b/templates/es/checkdbs.txt
@@ -0,0 +1,8 @@
+La lista de distribución %(real_name)s@%(host_name)s tiene
+%(count)d peticion(es) pendientes para que usted las revise en la
+siguiente página:
+
+ %(adminDB)s
+
+Por favor, atiendalas tan pronto como le sea posible. Se le enviará
+esta notificación todos los días.
diff --git a/templates/es/convert.txt b/templates/es/convert.txt
new file mode 100644
index 00000000..4d1544c9
--- /dev/null
+++ b/templates/es/convert.txt
@@ -0,0 +1,38 @@
+La lista de distribución %(listname)s acaba de sufrir un cambio
+importante. Ahora la gestiona un nuevo paquete de listas de
+distribución llamado "Mailman". Esperamos que esto mejore el
+servicio y la administración de la lista.
+
+
+¿Como le afecta esto?
+
+1) Los mensajes de correo dirigidos a la lista deben enviarse a:
+
+ %(listaddr)s
+
+2) Se le ha asignado una clave aleatoria para impedir que otros
+anulen su subscripción sin que usted lo sepa. La clave se le enviara
+en otro mensaje de correo electrónico, que puede que ya haya
+recibido. No se preocupe si se le olvida esta clave, todos los
+meses recibirá un recordatorio por correo electronico.
+
+3) Si dispone de acceso WEB, lo puede utilizar para anular su
+subscripción a esta lista, para cambiar la forma de recepción
+de los mensajes, etc. La dirección es:
+
+ %(listinfo_url)s
+
+4) Si no dispone de acceso WEB, puede realizar estas mismas
+operaciones por correo electrónico. Envíe un mensaje a
+%(requestaddr)s con la palabra 'help' en el asunto (subject) o
+en el cuerpo del mensaje y recibirá un respuesta automática con
+instrucciones.
+
+Por favor, dirijase a la siguiente dirección si tiene alguna
+pregunta o problema con esta nueva configuración:
+
+ %(adminaddr)s.
+
+Este mensaje ha sido generado automaticamente por Mailman %(version)s.
+Para obtener mas información sobre Mailman, visite la pagina principal
+en http://www.list.org/
diff --git a/templates/es/cronpass.txt b/templates/es/cronpass.txt
new file mode 100644
index 00000000..590101ab
--- /dev/null
+++ b/templates/es/cronpass.txt
@@ -0,0 +1,23 @@
+Esto es un recordatorio que se envía mensualmente sobre las
+subscripciones a listas de distribución que tiene usted en
+%(hostname)s. Incluye información que se puede usar para
+cambiar sus opciones de subscripción así como para darse de
+baja de una lista.
+
+Puede visitar las URLs para cambiar la configuración de las
+subscripciones, darse de baja o desactivar la recepción de
+los mensajes (por ejemplo durante las vacaciones).
+
+Ademas de las URLs, puede utilizar el correo electrónico para
+realizar dichos cambios. Si necesita mas información envíe un
+mensaje a la dirección de solicitudes ('-request') de la lista
+(por ejemplo, %(exreq)s) con la palabra
+'help' en el asunto (subject) o en el cuerpo del mensaje y
+recibirá un mensaje con instrucciones.
+
+Si tiene alguna pregunta, problema, comentario, etc, envíelo,
+por favor, a la dirección %(owner)s.
+
+Gracias
+
+Claves correspondientes a la dirección %(useraddr)s:
diff --git a/templates/es/disabled.txt b/templates/es/disabled.txt
new file mode 100644
index 00000000..e3967797
--- /dev/null
+++ b/templates/es/disabled.txt
@@ -0,0 +1,27 @@
+Su subscripción a la lista de distribución %(listname)s se ha inhabilitado
+%(reason)s. No obtendrá ningún mensaje más de esta lista hasta que rehabilite su
+%subscripción. Recibirá %(noticesleft)s recordatorios como este antes de que su
+subscripción a la lista se borre.
+
+Para volver a activar su subscripción, solo tiene que responder a este mensaje
+(dejando la línea correspondiente al asunto intacto), o visite la página de
+confirmación sita en
+
+ %(confirmurl)s
+
+También puede visitar la página que tiene sus opciones en
+
+ %(optionsurl)s
+
+En la página que tiene sus opciones, puede variar distintos aspectos
+concernientes a la recepción de mensajes de esta lista, tal como cambiar la
+dirección de correo electrónico y si quiere recibir los mensajes de la lista en
+recopilaciones o no. Como recordatorio le diré que la clave asociada a su
+subscripción es
+
+ %(password)s
+
+Si tiene alguna pregunta o problema, puede contactar con el administrador de la
+lista en
+
+ %(owneraddr)s
diff --git a/templates/es/emptyarchive.html b/templates/es/emptyarchive.html
new file mode 100644
index 00000000..ed6edc36
--- /dev/null
+++ b/templates/es/emptyarchive.html
@@ -0,0 +1,15 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+ <HEAD>
+ <title>Archivo de la lista %(listname)s</title>
+ <META NAME="robots" CONTENT="noindex,follow">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <h1>Archivo de la lista %(listname)s</h1>
+ <p>
+ Todavía no se ha enviado ningún mensaje a esta lista, de manera que el
+ archivo está actualmente vacio. Puede obtener <a href="%(listinfo)s">
+ más información acerca de esta lista</a>.
+ </p>
+ </BODY>
+ </HTML>
diff --git a/templates/es/handle_opts.html b/templates/es/handle_opts.html
new file mode 100644
index 00000000..42a11fb2
--- /dev/null
+++ b/templates/es/handle_opts.html
@@ -0,0 +1,9 @@
+<!-- $Revision: 3407 $ -->
+<html>
+<title><MM-List-Name> <MM-Operation> Resultados</title>
+<body>
+<h1><MM-List-Name> <MM-Operation> Resultados</h1>
+<MM-Results>
+<MM-Mailman-Footer>
+</body>
+</html>
diff --git a/templates/es/headfoot.html b/templates/es/headfoot.html
new file mode 100644
index 00000000..5a3c9874
--- /dev/null
+++ b/templates/es/headfoot.html
@@ -0,0 +1,33 @@
+Este texto puede incluir
+<a href="http://www.python.org/doc/current/lib/typesseq-strings.html">
+cadenas de formato Python
+</a>
+que ser&aacute;n sustituidas por los atributos de la lista. La lista de
+substituciones permitidas son:
+
+<ul>
+ <li><b><code>real_name</code></b> - El nombre 'presentable' de la lista.
+ Suele ser el nombre de la lista con la primera letra en may&uacute;scula.
+
+
+ <li><b><code>list_name</code></b> - El nombre por el cual se identifica la lista
+ en las URLs, se distinguen las may&uacute;sculas de las min&uacute;sculas. (Debido a
+ compatibilidad con lo existente, es equivalente a <code>_internal_name</code>)
+
+ <li><b><code>host_name</code></b> - El nombre can&oacute;nico del servidor que
+ alberga la lista.
+
+ <li><b><code>web_page_url</code></b> - El URL base de Mailman. Por ejemplo
+ para indicar la p&aacute;gina de informaci&oacute;n de la lista
+ solo habría que agregarle detrás:<br>
+ <em><code>listinfo/%(_internal_name)s</code></em>
+
+ <li><b><code>description</code></b> - Una descripci&oacute;n concisa sobre
+ la lista de distribuci&oacute;n.
+
+ <li><b><code>info</code></b> - La descripci&oacute;n completa sobre la
+ lista de distribuci&oacute;n.
+
+ <li><b><code>cgiext</code></b> - La extensi&oacute;n que se agrega a los guiones
+ CGI.
+</ul>
diff --git a/templates/es/help.txt b/templates/es/help.txt
new file mode 100644
index 00000000..79644bd2
--- /dev/null
+++ b/templates/es/help.txt
@@ -0,0 +1,37 @@
+Ayuda de la lista de distribución %(listname)s:
+
+Esta es la ayuda con las ordenes que se pueden enviar por correo
+electrónico en la versión %(version)s del gestor de listas 'Mailman'.
+Seguidamente se describen las ordenes que se pueden enviar para
+obtener información y controlar su subscripción en las listas
+gestiondas por 'Mailman'. Las ordenes pueden enviarse en el asunto
+(subject) o en el cuerpo del mensaje.
+
+Observe que muchas de las cosas siguientes se pueden realizar tambien
+a través de WEB en:
+
+ %(listinfo_url)s
+
+En particular, puede usar este sitio WEB para hacer que se le envie
+su clave a su dirección de correo electrónico.
+
+Las ordenes especificas a las listas (subscribe, who, etc) se deben
+enviar a la dirección *-request para la lista concreta. Por ejemplo,
+para la lista 'mailman' se usaria mailman-request@...
+
+En la descripción de las ordenes se utilizan las siguientes convenciones:
+Las palabras indicadas entre ángulos '<>' son elementos IMPRESCINDIBLES,
+mientras que las palabras indicadas entre corchetes '[]' son elementos
+OPCIONALES. No incluya los ángulos o los corchetes cuando utilice las
+ordenes.
+
+Ordenes válidas:
+
+ %(commands)s
+
+Las ordenes se deben enviar a %(requestaddr)s
+
+Las preguntas y comentarios para el responsable de la lista se deben
+enviar a
+
+ %(adminaddr)s
diff --git a/templates/es/invite.txt b/templates/es/invite.txt
new file mode 100644
index 00000000..f09ccba2
--- /dev/null
+++ b/templates/es/invite.txt
@@ -0,0 +1,21 @@
+Tu dirección de correo electrónico "%(email)s" ha sido invitada a unirse a la
+lista de distribución %(listname)s de %(hostname)s por su administrador.
+Puede aceptar la invitación con solo responder a este mensjae manteniendo el
+asunto intacto.
+
+También puede visitar la página web:
+
+ %(confirmurl)s
+
+O puede incluir la línea siguiente -- y solo la línea siguiente -- en un
+mensaje dirijido a %(requestaddr)s:
+
+ confirm %(cookie)s
+
+Observe que dándole a la opción de responder debería de funcionar en la
+mayoría de los programas de correo.
+
+Si quiere declinar la invitación, solo tiene que ignorar este mensaje. Si
+tiene alguna pregunta que formular, por favor, envíela a
+
+%(listowner)s.
diff --git a/templates/es/listinfo.html b/templates/es/listinfo.html
new file mode 100644
index 00000000..c2ad4056
--- /dev/null
+++ b/templates/es/listinfo.html
@@ -0,0 +1,144 @@
+<!-- $Revision: 5354 $ -->
+<HTML>
+ <HEAD>
+ <TITLE>P&aacute;gina de Informaci&oacute;n de <MM-List-Name></TITLE>
+
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+
+ <P>
+ <TABLE COLS="1" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1"><MM-List-Name> --
+ <MM-List-Description></FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <p>&nbsp;
+ </td>
+ </tr>
+ <tr>
+ <TD COLSPAN="1" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000">Sobre <MM-List-Name></FONT></B>
+ </TD>
+ <TD COLSPAN="1" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <MM-lang-form-start><MM-displang-box> <MM-list-langs>
+ <MM-form-end>
+ <MM-Subscribe-Form-Start>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <P><MM-List-Info></P>
+ <p> Para ver env&iacute;os anteriores a la lista,
+ puede visitar los archivos de <MM-Archive><MM-List-Name>
+ </MM-Archive>.
+ <MM-Restricted-List-Message>
+ </p>
+ </TD>
+ </TR>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000">Como usar la lista <MM-List-Name></FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ Para enviar un mensaje a todos los miembros de la lista,
+ env&iacute;elo a la direcci&oacute;n
+ <A HREF="mailto:<MM-Posting-Addr>"><MM-Posting-Addr></A>.
+
+ <p>Puede usted subscribirse a la lista, o cambiar su
+ subscripci&oacute;n, en las siguientes secciones.
+ </td>
+ </tr>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000">Subscribirse a <MM-List-Name></FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <P>
+ Subscribase a <MM-List-Name> rellenando los datos del
+ siguiente formulario
+ <MM-List-Subscription-Msg>
+ <ul>
+ <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"
+ WIDTH="70%" HEIGHT= "112">
+ <TR>
+ <TD BGCOLOR="#dddddd" WIDTH="55%">Direcci&oacute;n de correo electr&oacute;nico:</TD>
+ <TD WIDTH="33%"><MM-Subscribe-Box>
+ </TD>
+ <TD WIDTH="12%">&nbsp;</TD></TR>
+ <tr>
+ <td bgcolor="#dddddd" width="55%">Su nombre (opcional):</td>
+ <td width="33%"><mm-fullname-box></td>
+ <TD WIDTH="12%">&nbsp;</TD></TR>
+ <TR>
+ <TD COLSPAN="3"><FONT SIZE=-1> Debe introducir una clave de
+ protecci&oacute;n. Esto le da un bajo nivel de seguridad,
+ pero deber&iacute;a evitar que otros enreden con su
+ subscripci&oacute;n. <b>No utilice claves valiosas</b> porque
+ puede que se le mande alguna vez sin cifrar por correo
+ electr&oacute;nico.
+
+ <p>Si decide no escribir ninguna clave, se le generar&aacute;
+ una autom&aacute;ticamente y se le enviar&aacute; una vez que
+ confirme su subscripci&oacute;n. Siempre podr&aacute; pedir
+ que se le env&iacute;e por correo su clave cuando edite sus
+ opciones personales
+ <MM-Reminder>
+ </TD>
+ </TR>
+ <TR>
+ <TD BGCOLOR="#dddddd">Elija una clave:</TD>
+ <TD><MM-New-Password-Box></TD>
+ <TD>&nbsp;</TD></TR>
+ <TR>
+ <TD BGCOLOR="#dddddd">Confirme la clave:</TD>
+ <TD><MM-Confirm-Password></TD>
+ <TD>&nbsp; </TD></TR>
+ <tr>
+ <TD BGCOLOR="#dddddd">&iquest;En que idioma desea visualizar sus mensajes?</TD>
+ <TD> <MM-list-langs></TD>
+ <TD>&nbsp; </TD></TR>
+ <tr>
+ <td>&iquest;Desea recibir los mensaje de cada d&iacute;a reunidos
+ en un &uacute;nico mensaje (digest)?
+ </td>
+ <td><MM-Undigest-Radio-Button> No
+ <MM-Digest-Radio-Button> S&iacute;
+ </TD>
+ </tr>
+ <tr>
+ <td colspan="3">
+ <center><MM-Subscribe-Button></P></center>
+ </TABLE>
+ <MM-Form-End>
+ </ul>
+ </td>
+ </tr>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <a name="subscribers">
+ <B><FONT COLOR="#000000">Suscriptores de <MM-List-Name></FONT></B></a>
+ </TD>
+ </TR>
+ <tr>
+ <TD COLSPAN="2" WIDTH="100%">
+ <MM-Roster-Form-Start>
+ <MM-Roster-Option>
+ <MM-Form-End>
+ <p>
+ <MM-Options-Form-Start>
+ <MM-Editing-Options>
+ <MM-Form-End>
+ </td>
+ </tr>
+ </table>
+<MM-Mailman-Footer>
+</BODY>
+</HTML>
diff --git a/templates/es/masthead.txt b/templates/es/masthead.txt
new file mode 100644
index 00000000..e1382099
--- /dev/null
+++ b/templates/es/masthead.txt
@@ -0,0 +1,18 @@
+Envie los mensajes para la lista %(real_name)s a
+ %(got_list_email)s
+
+Para subscribirse o anular su subscripción a través de WEB
+ %(got_listinfo_url)s
+
+O por correo electrónico, enviando un mensaje con el texto
+"help" en el asunto (subject) o en el cuerpo a:
+ %(got_request_email)s
+
+Puede contactar con el responsable de la lista escribiendo a:
+ %(got_owner_email)s
+
+Si responde a algún contenido de este mensaje, por favor, edite
+la linea del asunto (subject) para que el texto sea mas especifico
+que: "Re: Contents of %(real_name)s digest...". Ademas, por favor,
+incluya en la respuesta solo aquellas partes del mensaje a las que
+esta respondiendo.
diff --git a/templates/es/newlist.txt b/templates/es/newlist.txt
new file mode 100644
index 00000000..8bf9a3f0
--- /dev/null
+++ b/templates/es/newlist.txt
@@ -0,0 +1,37 @@
+La lista de distribución `%(listname)s' se acaba de crear para usted.
+A continuacion se incluye información básica sobre su lista.
+
+La clave para administrar la lista es:
+
+ %(password)s
+
+Necesita esta clave para configurar la lista. Tambien es necesaria para
+realizar tareas administrativas tales como aprobar los mensajes si decide
+que la lista sea moderada.
+
+Puede configurar su lista en la siguiente página WEB:
+
+ %(admin_url)s
+
+La página para los usuarios de su lista es:
+
+ %(listinfo_url)s
+
+Puede incluso personalizar esas páginas a traves de la pagina de
+configuracion de la lista. Es necesario que tenga usted conocimientos
+de HTML para poder hacerlo.
+
+Tambien, existe un mecanismo de gestión por correo electrónico para los
+usuarios de la lista (no para los administradores). Para obtener
+información sobre su uso, se debe enviar un mensaje con la palabra
+'help' como asunto (subject) o en el cuerpo del mismo, a:
+
+ %(requestaddr)s
+
+Para anular la subscripción de un usuario: consulte la página
+'listinfo' y siga el enlace de la dirección del usuario o
+introduzca la misma, como si usted fuera él. Utilice la clave de
+adminstración en lugar de la clave del usuario. Tambien puede usar la
+clave de administración para cambiar las opciones de los usuarios.
+
+Por favor, remita sus dudas a %(siteowner)s.
diff --git a/templates/es/nomoretoday.txt b/templates/es/nomoretoday.txt
new file mode 100644
index 00000000..8fa88de3
--- /dev/null
+++ b/templates/es/nomoretoday.txt
@@ -0,0 +1,10 @@
+Se ha recibido un mensaje procedente de su dirección de correo electrónico
+'%(sender)s' pidiendo una respuesta automática procedente de la lista de
+distribución %(listname)s. Se ha observado que has enviado %(num)s mensajes
+hoy. Para evitar problemas ya sean mensajes dentro de un bucle infinito
+entre robots de correo electrónico, hoy no le mandaremos más mensajes.
+Inténtelo mañana.
+
+Si piensa que este mensaje está en un error, o si tiene cualquier otra
+pregunta que hacer, por favor pongase en contacto con el propietario de la
+lista en %(owneremail)s.
diff --git a/templates/es/options.html b/templates/es/options.html
new file mode 100644
index 00000000..decfe6cc
--- /dev/null
+++ b/templates/es/options.html
@@ -0,0 +1,326 @@
+<!-- $Revision: 5446 $ -->
+<html>
+<head>
+ <link rel="SHORTCUT ICON" href="<mm-favicon>">
+ <title><MM-Presentable-User> membership configuration for <MM-List-Name>
+ </title>
+</head>
+<BODY BGCOLOR="#ffffff">
+ <TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#99CCFF"><B>
+ <FONT COLOR="#000000" SIZE=+1>
+ <MM-List-Name> Configuraci&oacute;n del usuario
+ <MM-Presentable-User>
+ </FONT></B></TD></TR>
+ </TABLE>
+<p>
+<table width="100%" border="0" cellspacing="5" cellpadding="5">
+ <tr><td>
+ Opciones de subscripci&oacute;n de <b><MM-Presentable-User></b>
+ en la lista de distribuci&oacute;n <MM-List-Name>.
+ </td><td><MM-Form-Start><mm-logout-button><MM-Form-End></td>
+ </tr><tr>
+ <td colspan="2">
+ <MM-Case-Preserved-User>
+
+ <MM-Disabled-Notice>
+
+ <p><mm-results>
+ </td>
+ </tr>
+</table>
+
+<MM-Form-Start>
+<p>
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#FFF0D0" colspan="2">
+ <FONT COLOR="#000000">
+ <B>Para cambiar la informaci&oacute;n con la que est&aacute; subscrito a <MM-List-Name></B>
+ </FONT></TD></TR>
+ <tr><td colspan="2"> Puede cambiar la direcci&oacute;n con la que
+ est&aacute; subscrito a la lista de distribuci&oacute;n,
+ introduciendo una direcci&oacute;n nueva en el campo que aparece
+ m&aacute;s abajo. Se le mandar&aacute; un mensaje de confirmaci&oacute;n
+ a la direcci&oacute;n que especifique, ya que los cambios no se
+ ser&aacute;n efectivos hasta que lo confirme.
+
+ <p>Las confirmaciones caducan despu&eacute;s de <mm-pending-days>.
+
+ <p>Opcionalmente, puede poner o cambiar su nombre y apellidos
+ (por ejemplo <em>Pepe P&eacute;rez</em>).
+
+ <p>Si quiere aplicar los modificaciones de subscripci&oacute;n a
+ todas las listas en los que est&aacute; subscrito en <mm-host>,
+ habilite la casilla de verificaci&oacute;n <em>Cambiar globalmente</em>.
+
+
+ </td></tr>
+ <tr><td><center>
+ <table border="0" cellspacing="2" cellpadding="2" width="80%" cols="2">
+ <tr><td bgcolor="#dddddd"><div align="right">Direcci&oacute;n nueva:</div></td>
+ <td><mm-new-address-box></td>
+ </tr>
+ <tr><td bgcolor="#dddddd"><div align="right">De nuevo para confirmar:</div></td>
+ <td><mm-confirm-address-box></td>
+ </tr>
+ </tr></table></center>
+ </td>
+ <td><center>
+ <table border="0" cellspacing="2" cellpadding="2" width="80%" cols="2">
+ <tr><td bgcolor="#dddddd"><div align="right">Su nombre
+ (opcional):</div></td>
+ <td><mm-fullname-box></td>
+ </tr>
+ </table></center>
+ </td>
+ </tr>
+ <tr><td colspan="2"><center><mm-change-address-button>
+ <p><mm-global-change-of-address>Cambiar globalmente</center></td>
+ </tr>
+</table>
+
+<p>
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="5" CELLPADDING="5">
+ <TR><TD WIDTH="50%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>Para anular la subscripci&oacute;n de <MM-List-Name></B></td>
+
+ <TD WIDTH="50%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>El resto de las subscripciones que tiene en <MM-Host></B>
+ </FONT></TD></TR>
+
+ <tr><td>
+ Seleccione la casilla de confirmaci&oacute;n y pulse este bot&oacute;n
+ para anular su subscripci&oacute;n de esta lista de distribuci&oacute;n.
+ <strong>Advertencia:</strong>
+ ¡Esta acci&oacute;n tendr&aacute; efecto inmediato!
+ <p>
+ <center><MM-Unsubscribe-Button></center></td>
+ <td>
+ Puede ver una informe del resto de las listas de distribuci&oacute;n de
+ <mm-host> en las que est&aacute; subscrito. Utilice esta parte, si
+ quiere aplicar cambios globales al resto de sus subscripciones
+
+ <p>
+ <center><MM-Other-Subscriptions-Submit></center>
+ </TD></TR>
+</table>
+
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD COLSPAN=2 WIDTH="100%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>Su clave para <MM-List-Name></B>
+ </FONT></TD></TR>
+
+ <tr valign="TOP"><td WIDTH="50%">
+ <a name=reminder>
+ <center>
+ <h3>&iquest;Ha olvidado su clave?</h3>
+ </center>
+ Pulse este bot&oacute;n para hacer que se le env&iacute;e por correo
+ electr&oacute;nico a la direcci&oacute;nn con la que est&aacute;
+ subscrito.
+ <p><MM-Umbrella-Notice>
+ <center>
+ <MM-Email-My-Pw>
+ </center>
+ </td>
+
+ <td WIDTH="50%">
+ <a name=changepw>
+ <center>
+ <h3>Para cambiar su clave</h3>
+ <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2" WIDTH="70%" COLS=2>
+ <TR><TD BGCOLOR="#dddddd"><div align="right">Clave
+ nueva:</div></TD>
+ <TD><MM-New-Pass-Box></TD>
+ </TR>
+ <TR>
+ <TD BGCOLOR="#dddddd"><div align="right">De nuevo para
+ confirmar:</div></TD>
+ <TD><MM-Confirm-Pass-Box></TD>
+ </TR>
+ </table>
+
+ <MM-Change-Pass-Button>
+ <p><center><mm-global-pw-changes-button>Cambiar globalmente.
+ </center>
+</TABLE>
+
+<p>
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>Sus opciones de subscripci&oacuten para la lista <MM-List-Name></B>
+ </FONT></TD></TR>
+</table>
+
+<p>
+<i><strong>Los valores actuales se han comprobado.</strong></i>
+
+<p>Observe que alguna de las opciones tienen una casilla seleccionable
+<em>Aplicar globalmente</em>.
+Activando este campo, causar&aacute; que los cambios se apliquen a cada una
+de las listas de distribuci&oacute;n de <mm-host> en las que est&aacute;
+subscrito. Dele con el rat&oacute;n a <em>Listar el resto de mis subscripciones</em>
+ m&aacute;s arriba para ver cuales son.
+
+<p>
+<TABLE BORDER="0" CELLSPACING="3" CELLPADDING="4" WIDTH="100%">
+ <tr><TD BGCOLOR="#cccccc">
+ <a name="disable">
+ <strong>Entrega de correo</strong></a><p>
+ Si selecciona <em>Habilitada</em> recibir&aacute; los mensajes que se
+ env&iacute;en a esta lista de distribuci&oacute;n. Si selecciona
+ <em>Inhabilitada</em> indica su deseo de no recibir el correo enviado
+ a la lista de distribuci&oacute;n durante un tiempo (por ejemplo, se va
+ de vacaciones). Si inhabilita la recepci&oacute;n de los mensajes de
+ correo, no olvide volver a habilitar la recepci&oacute;n cuando proceda.
+ </td><td bgcolor="#cccccc">
+ <mm-delivery-enable-button>Habilitado<br>
+ <mm-delivery-disable-button>Inhabilitado<p>
+ <mm-global-deliver-button><i>Aplicar globalmente</i>
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Activar modo Digest</strong><p>
+ Si habilita el modo digest, recibir&aacute; diariamente los mensajes
+ enviados a la lista recopilados en un &uacute;nico mensaje,
+ en lugar de recibirlos a medida que se env&iacute;n. Si cambia el modo
+ digest de Activar a Desactivar, puede que reciba un &uacute;ltimo
+ digest.
+ </td><td bgcolor="#cccccc">
+ <MM-Undigest-Radio-Button>Desativar<br>
+ <MM-Digest-Radio-Button>Activar
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>&iquest;Recibir los recopilatorios en texto plano
+ o con codificación MIME?</strong><p>
+ Su lector de correo puede que no soporte recopilaciones (digests) MIME.
+ En general se prefieren las recopilaciones MIME, pero si tiene problemas
+ a la hora de leerlas, seleccione las recopilaciones en texto plano.
+ </td><td bgcolor="#cccccc">
+ <MM-Mime-Digests-Button>MIME<br>
+ <MM-Plain-Digests-Button>Texto plano<p>
+ <mm-global-mime-button><i>Aplicar globalmente</i>
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>&iquest;Quiere recibir los mensajes que usted mismo
+ env&iacute;e a esta lista?</strong><p>
+ Normalmente, recibir&aacute; una copia de cada mensaje que env&iacute;
+ a la lista. Si no quiere recibir dicha copia, ponga esta opci&oacute;n a
+ <em>No</em>.
+ </td><td bgcolor="#cccccc">
+ <mm-dont-receive-own-mail-button>No<br>
+ <mm-receive-own-mail-button>Yes
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>&iquest;Quiere recibir una confirmación cuando envíe correo
+ a esta lista?</strong><p>
+ </td><td bgcolor="#cccccc">
+ <mm-dont-ack-posts-button>No<br>
+ <mm-ack-posts-button>Si
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>&iquest;Quiere recibir los recordatorios de esta lista?</strong><p>
+ Mensualmente, recibir&aacute; un mensaje de correo con la clave de
+ cada una de las listas en la que est&aacute; subscrito. Puede
+ inhabilitar este comportamiento por lista, con solo seleccionar
+ <em>No</em> en esta opci&oacute;n. Si decide inhabilitar el recordatorio
+ de las claves en todas las listas a las que est&aacute; subscrito, no
+ se le mandar&aacute; ning&uacute;n mensaje.
+ </td><td bgcolor="#cccccc">
+ <mm-dont-get-password-reminder-button>No<br>
+ <mm-get-password-reminder-button>Si<p>
+ <mm-global-remind-button><i>Aplicar globalmente</i>
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>&iquest;Quiere ocultarse de la lista de subscriptores?</strong><p>
+ Cuando alguien vea la lista de subscriptores, normalmente su
+ direcci&oacute;n de correo electr&oacute;nico saldr&aacute; listada
+ (de una forma obscura para frustrar los escaneadores spam). Si no
+ quiere que su direcci&oacute;n salga a relucir, seleccione <em>Si</em>.
+ </td><td bgcolor="#cccccc">
+ <MM-Public-Subscription-Button>No<br>
+ <MM-Hide-Subscription-Button>Si
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>&iquest;En que idioma deseas ver los mensajes de la lista?</strong><p>
+ </td><td bgcolor="#cccccc">
+ <MM-list-langs>
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>&iquest;A que tipo de temas le gustar&iacute;a subscribirse? </strong><p>
+ Al seleccionar uno o m&aacute;s temas, puede filtrar
+ el tr&aacute;fico de la lista de distribuci&oacute;n, de
+ manera que solo recibir&aacute; un subconjunto de los
+ mensajes. &Uacute;nicamente le llegaran los mensajes que
+ coincidan con alguno de los temas seleccionados.
+
+ <p>Si un mensaje no coincide con el tema, la regla que
+ decide si se entrega el mensaje depende de la
+ configuraci&oacute;n de la opci&oacute;n de abajo. Si
+ no selecciona ning&uacute;n tema de inter&eacute;s,
+ recibir&aacute; todos los mensajes dirijidos a la lista.
+ </td><td bgcolor="#cccccc">
+ <mm-topics>
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>&iquest;Quiere recibir los mensajes que no coincidan con
+ ning&uacute;n tema?</strong><p>
+ Esta opci&oacute;n solo surte efecto si est&aacute;
+ subscrito a alg&uacute;n tema de los de arriba. Esta
+ opci&oacute;n describe cual ser&aacute; la regla de
+ entrega por defecto para los mensajes que no coincidan
+ con ning&uacute;n tema. Si selecciona que <em>No</em>
+ indica su deseo de no recibir los mensajes que no
+ coincidan con ning&uacute;n tema, mientras que si
+ selecciona que <em>Si</em> significa que recibir&aacute;
+ todos los mensajes que no coincidan con ning&uacute;n
+ tema.
+
+ <p>Si no se selecciona ning&uacute;n tema de inter&eacute;s
+ en la parte de arriba, entonces recibir&aacute; todos los
+ mensajes que se env&iacute;en a la lista.
+ </td><td bgcolor="#cccccc">
+ <mm-suppress-nonmatching-topics>No<br>
+ <mm-receive-nonmatching-topics>Si
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>&iquest;Desea evitar copias duplicadas de sus propios mensajes?</strong><p>
+ Cuando esté incluido explícitamente en las cabeceras
+ <tt>To:</tt> o <tt>Cc:</tt> de un mensaje dirijido a
+ la lista, puede optar por no recibir otra copia de la
+ lista de distribución. Seleccione <em>Si</em> para
+ evitar recibir coias de la lista de distribución,
+ seleccione <em>No</em> para recibirlas.
+
+ <p>Si la lista tiene subscriptores con los mensajes
+ personalizados, y elijes que si deseas recibir copias,
+ cada copia tendrá una cabecera <tt>X-Mailman-Copy:
+ yes</tt> incluida en él.
+
+ </td><td bgcolor="#cccccc">
+ <mm-receive-duplicates-button>No<br>
+ <mm-dont-receive-duplicates-button>Si<p>
+ <mm-global-nodupes-button><i>Aplicar globalmente</i>
+ </td></tr>
+
+ <tr><TD colspan="2">
+ <center><MM-options-Submit-button></center>
+ </td></tr>
+
+</table>
+</center>
+<p>
+<MM-Form-End>
+
+<MM-Mailman-Footer>
+</body>
+</html>
diff --git a/templates/es/postack.txt b/templates/es/postack.txt
new file mode 100644
index 00000000..1c4df1bd
--- /dev/null
+++ b/templates/es/postack.txt
@@ -0,0 +1,7 @@
+Su mensaje que trata sobre:
+
+ %(subject)s
+
+se ha distribuido satisfactoriamente a la lista %(listname)s.
+
+Página de información de la lista: %(listinfo_url)s
diff --git a/templates/es/postauth.txt b/templates/es/postauth.txt
new file mode 100644
index 00000000..0ea08226
--- /dev/null
+++ b/templates/es/postauth.txt
@@ -0,0 +1,13 @@
+Como administrador de listas, se requiere su autorización para enviar un mensaje
+a la siguiente lista de distribución:
+
+ Lista: %(listname)s@%(hostname)s
+ Remitente: %(sender)s
+ Asunto: %(subject)s
+ Razón para retenerlo: %(reason)s
+
+Cuando pueda, acceda a la página:
+
+ %(admindb_url)s
+
+para aprobar o denegar el envío
diff --git a/templates/es/postheld.txt b/templates/es/postheld.txt
new file mode 100644
index 00000000..37745d50
--- /dev/null
+++ b/templates/es/postheld.txt
@@ -0,0 +1,16 @@
+El mensaje que ha enviado a la lista '%(listname)s' y que versa sobre:
+
+ %(subject)s
+
+Ha sido retenido en espera de que el moderador de la lista lo revise
+y lo apruebe.
+
+Ha sido retenido por:
+
+ %(reason)s
+
+O se mandará el mensaje a la lista o se le enviará una notificación
+con la decisión del moderador. Si desea cancelar este envío, puede
+hacerlo a través de la siguiente URL:
+
+ %(confirmurl)s
diff --git a/templates/es/private.html b/templates/es/private.html
new file mode 100644
index 00000000..e26253a1
--- /dev/null
+++ b/templates/es/private.html
@@ -0,0 +1,37 @@
+<html>
+<head>
+ <title>Autentificaci&oacute;n para los archivos privados de %(realname)s </title>
+</head>
+<body bgcolor="#ffffff">
+<FORM METHOD=POST ACTION="%(action)s/">
+%(message)s
+ <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1">Autentificaci&oacute;n de archivos
+ privados de %(realname)s </FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <TD> <div ALIGN="Right">Direcci&oacute;n: </div></TD>
+ <TD> <INPUT TYPE="text" NAME="username" SIZE="30"> </TD>
+ </tr>
+ <tr>
+ <TD> <div ALIGN="Right"> Clave: </div> </TD>
+ <TD> <INPUT TYPE="password" NAME="password" SIZE="30"></TD>
+ </tr>
+ <tr>
+ <td colspan=2 align="middle"><INPUT type="SUBMIT"
+ name="submit"
+ value="Con permiso...">
+ </td>
+ </tr>
+ </TABLE>
+ <p><strong><em>Importante:</em></strong> A partir de ahora, debe
+ tener habilitadas las cookies en su navegador, en caso contrario, sus cambios, no tendr&aacute;n efecto.
+ <p>Las sesiones basadas en cookies se usan en la interfaz administrativa de Mailman, de manera que no necesita identificarse continuamente con cada operaci&oacute;n administrativa que realice. La cookie caducar&aacute; autom&aacute;ticamente cuando salga del navegador, or puede hacerla caducar seleccionando la opci&oacute;n <em>Salida</em> bajo la secci&oacute;n titulada
+ <em> Otras Actividades Administrativas</em> (que ver&aacute; una vez que consiga entrar
+satisfactoriamente).
+</FORM>
+</body>
+</html>
diff --git a/templates/es/refuse.txt b/templates/es/refuse.txt
new file mode 100644
index 00000000..9d13e583
--- /dev/null
+++ b/templates/es/refuse.txt
@@ -0,0 +1,12 @@
+Su petición a la lista de distribución %(listname)s:
+
+ %(request)s
+
+ha sido rechazada por el moderador dando la siguiente razón:
+
+"%(reason)s"
+
+Cualquier pregunta o sugerencia se deberá dirigir al administrador de la
+lista en la siguiente dirección de correo:
+
+ %(adminaddr)s
diff --git a/templates/es/roster.html b/templates/es/roster.html
new file mode 100644
index 00000000..73226103
--- /dev/null
+++ b/templates/es/roster.html
@@ -0,0 +1,52 @@
+<!-- $Revision: 5354 $ -->
+<HTML>
+ <HEAD>
+ <TITLE>Subscriptores de <MM-List-Name></TITLE>
+
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+
+ <P>
+ <TABLE WIDTH="100%" COLS="1" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1">Subscriptores de <MM-List-Name> </FONT></B>
+ </TD>
+ </TR>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" ALIGN="CENTER">
+
+ <P align = "right"> <MM-lang-form-start><MM-displang-box>
+ <MM-list-langs><MM-form-end></p>
+
+ <P>Seleccione su direcci&oacute;n para visitar el estado de su subscripci&oacute;n.
+ <br><I>(Las entradas entre par&eacute;ntesis tienen la recepci&oacute;n del correo
+ de la lista desactivada.)</I></P>
+ </TD>
+ </TR>
+ <TR WIDTH="100%" VALIGN="top">
+ <TD BGCOLOR="#FFF0D0" WIDTH="50%">
+ <center>
+ <B><FONT COLOR="#000000"><MM-Num-Reg-Users>
+ Subscriptores en <MM-List-Name> con la recepci&oacute;n de los mensajes a medida que llegan:</FONT></B>
+ </center>
+ </TD>
+ <TD BGCOLOR="#FFF0D0" WIDTH="50%">
+ <center>
+ <B><FONT COLOR="#000000"><MM-Num-Digesters>
+ Subcriptores en <MM-List-Name> con la recepci&oacute;n diferida en resumenes:</FONT></B>
+ </center>
+ </TD>
+ </TR>
+ <TR VALIGN="top">
+ <td>
+ <P><MM-Regular-Users>
+ </td>
+ <td>
+ <P><MM-Digest-Users>
+ </td>
+ </tr>
+ </table>
+<MM-Mailman-Footer>
+</BODY>
+</HTML>
diff --git a/templates/es/subauth.txt b/templates/es/subauth.txt
new file mode 100644
index 00000000..86434b99
--- /dev/null
+++ b/templates/es/subauth.txt
@@ -0,0 +1,11 @@
+Se requiere su autorización para una petición de subscripción de la
+lista de distribución:
+
+ De: %(username)s
+ Lista: %(listname)s@%(hostname)s
+
+Cuando le sea posible, por favor, consulte:
+
+ %(admindb_url)s
+
+para procesar la petición
diff --git a/templates/es/subscribe.html b/templates/es/subscribe.html
new file mode 100644
index 00000000..fbf24d80
--- /dev/null
+++ b/templates/es/subscribe.html
@@ -0,0 +1,9 @@
+<!-- $Revision: 5354 $ -->
+<html>
+<head><title><MM-List-Name> Resultados de la subscripción</title></head>
+<body bgcolor="white">
+<h1><MM-List-Name> Resultados de la subscripción</h1>
+<MM-Results>
+<MM-Mailman-Footer>
+</body>
+</html>
diff --git a/templates/es/subscribeack.txt b/templates/es/subscribeack.txt
new file mode 100644
index 00000000..2fd93463
--- /dev/null
+++ b/templates/es/subscribeack.txt
@@ -0,0 +1,37 @@
+Bienvenido a la lista de distribución %(real_name)s@%(host_name)s
+%(welcome)s
+
+Para mandar un mensaje a esta lista, envíelo a:
+
+ %(emailaddr)s
+
+Puede obtener información general sobre la lista en:
+
+ %(listinfo_url)s
+
+Si alguna vez desea anular su subscripción o cambiar las opciones
+de la misma (p.ej.: cambiarse a modo resumido o no, cambiar su clave,
+etc.), consulte la página de su subscripción en:
+
+ %(optionsurl)s
+%(umbrella)s
+
+También puede realizar estos cambios por medio de correo electrónico,
+enviando un mensaje a:
+
+ %(real_name)s-request@%(host_name)s
+
+indicando la palabra "help" en el asunto (no ponga las comillas) o en
+el cuerpo del mensaje. Se le devolverá un mensaje con instrucciones.
+
+Tiene que saber su clave para poder cambiar sus opciones (incluido el
+cambio de la propia clave) o para anular su subscripción. Su clave es:
+
+ %(password)s
+
+Normalmente, Mailman le recordará mensualmente las claves que tenga en
+las listas de distribución de %(host_name)s, aunque si lo prefiere puede
+inhabilitar este comportamiento. El recordatorio también incluirá
+instrucciones sobre como anular su subscripción o como cambiar los
+parámetros de subscripción. En la página de opciones hay un botón que le
+enviará un mensaje de correo electrónico con su clave.
diff --git a/templates/es/unsub.txt b/templates/es/unsub.txt
new file mode 100644
index 00000000..cd1be9cd
--- /dev/null
+++ b/templates/es/unsub.txt
@@ -0,0 +1,24 @@
+Mensaje de confirmación para la anulación de la subscripción
+a la lista de distribución %(listname)s
+
+Se ha recibido una solicitud %(remote)s para quitar su dirección de
+correo electrónico "%(email)s" de la lista de distribución %(listaddr)s.
+Para confirmar que quiere borrarse de esta lista de distribución, solo
+tiene que responder este mensaje, manteniendo intacta la cabecera del
+asunto (Subject). O visite esta página web:
+
+ %(confirmurl)s
+
+O incluya la línea siguiente -- y solo la línea siguiente -- en un
+mensaje dirijido a %(requestaddr)s:
+
+ confirm %(cookie)s
+
+Responder este mensaje debería funcionar con la mayoría de los programas
+de correo electrónico, porque normalmente dejan de una forma válida la
+línea del Asunto (el texto adicional Re: en el asunto es correcto)
+
+Si no desea borrarse de esta lista de distribución, solo tiene que
+ignorar este mensaje. Si piensa que alguien quiere borrarle de la lista
+malintencionadamente o si tiene cualquier otra cuestión, mándelas al
+administrador de la lista a la dirección %(listadmin)s.
diff --git a/templates/es/unsubauth.txt b/templates/es/unsubauth.txt
new file mode 100644
index 00000000..97e465b6
--- /dev/null
+++ b/templates/es/unsubauth.txt
@@ -0,0 +1,11 @@
+Hace falta su autorización para que un subscriptor pueda darse de baja
+de una lista de distribución.
+
+ De: %(username)s
+ A: %(listname)s@%(hostname)s
+
+Cuando crea conveniente, visite:
+
+ %(admindb_url)s
+
+para atender la solicitud.
diff --git a/templates/es/userpass.txt b/templates/es/userpass.txt
new file mode 100644
index 00000000..07072847
--- /dev/null
+++ b/templates/es/userpass.txt
@@ -0,0 +1,28 @@
+Usted, o alguien que se hace pasar por usted, ha pedido que se le
+recuerde la clave con la que está subscrito a la lista de distribución
+%(fqdn_lname)s. Necesitará esta clave para poder cambiar cualquier
+opción de subscripción a la lista (por ejemplo, si quiere entrega
+regular o diferida en digest) así como para anular su subcripción (no
+necesita depender de nadie para darse de baja).
+
+La dirección con la que está subscrito a la lista es:
+%(user)s
+
+La clave para %(listname)s es: %(password)s
+
+Para efectuar cambios en su subscripción, visite su página web de
+opciones:
+
+ %(options_url)s
+
+Tambien puede realizar estos cambios por correo electrónico, enviando
+un mensaje a:
+
+ %(requestaddr)s
+
+con el texto "help" en el asunto (subject) o en el cuerpo del mensaje.
+El mensaje automático que se le enviará tiene información más detallada.
+
+Si tiene alguna pregunta o algun comentario, por favor, envielo al
+administrador de la lista de distribución %(listname)s a la
+dirección %(owneraddr)s
diff --git a/templates/es/verify.txt b/templates/es/verify.txt
new file mode 100644
index 00000000..83b33bc5
--- /dev/null
+++ b/templates/es/verify.txt
@@ -0,0 +1,26 @@
+Mensaje de confirmación para la subscripción a la lista de distribución
+%(listname)s
+
+Se ha recibido una solicitud de subscripción de su dirección "%(email)s",
+a la lista %(listaddr)s, %(remote)s. Para confirmar que quiere ser dado de
+alta en esta lista de distribución, solo tiene que responder a este mensaje
+manteniendo el asunto intacto o visitar la siguiente página web:
+
+ %(confirmurl)s
+
+También puede confirmar esta petición a través de correo electrónico, envíe
+un mensaje de correo-e incluyendo la línea siguiente (y SOLO la línea siguiente)
+a la dirección %(requestaddr)s:
+
+ confirm %(cookie)s
+
+Responder a este mensaje, debería funcionar con la mayoria de los programas
+de correo electrónico, ya que suelen dejar el asunto de la forma adecuada (el
+texto adicional "Re:" que suelen poner en el asunto funcionará correctamente))
+
+Si no desea subscribirse a esta lista, por favor, ignore este mensaje. Si cree
+que alguien de forma malintencionada está intentando subscribirle a la lista o
+si tiene alguna otra pregunta, póngase en contacto con la siguiente dirección:
+
+%(listadmin)s
+
diff --git a/templates/et/admindbdetails.html b/templates/et/admindbdetails.html
new file mode 100644
index 00000000..4093b396
--- /dev/null
+++ b/templates/et/admindbdetails.html
@@ -0,0 +1,63 @@
+Administratiivseid ülesandeid näidatakse kahel viisil,
+<a href="%(summaryurl)s">ülevaate lehel</a>, ja <em>detailide lehel</em>.
+Ülevaateleht sisaldab ootel olevaid tellimuse ja tellimuse katkestamise
+nõudeid ning ka postitusi, mis on ülevaatamiseks kinni peetud, sorteerituna
+saatja aadressi järgi. Detailide leht sisaldab põhjalikumat infot iga
+kinnipeetud postituse kohta, k.a. kõiki päiseid ja lõiku kirja sisust.
+
+<p>Mõlemal lehel on võimalik sooritada järgnevaid tegevusi:
+
+<ul>
+<li><b>Viivita</b> -- Viivita otsuse tegemisega. See taotlus jääb
+ edasist otsust ootama, kinni peetud kirju on siiski võimalik
+ edasi saata või preservida (lähme info allpool)
+
+<p><li><b>Nõustu</b> -- Anna luba kiri listi edastada või nõustu
+tellimuse või tellimuse katkestmaisega.
+
+<p><li><b>Keeldu</b> -- Keeldu kirja listi edastamisest, saatjat
+ teavitatakse ning kiri eemaldatakse järjekorrast. Tellimusnõuete
+ puhul keeldu nõude rahuldamisest. Mõlemal juhul oleks soovitav
+ lisada tekstikasti selgitus keeldumise kohta.
+
+<p><li><b>Viska ära</b> -- Viska kiri minema saatjat teavitamata.
+ Tellimusnõuete puhul visatakse tellimus lihtsalt minema, ilma
+ tellijat teavitamata. Seda on soovitav teha, kui tegemist on
+ spämmiga.
+</ul>
+
+<p>Kinni peetud kirjade puhul märgistage kastike <b>Preserve</b>
+kastikesse, kui soovite jätta koopiat sellest kirjast listserveri
+haldurile. See on kasulik abusive teadete puhul, mida soovid oma
+huvialast eemaldada, kui mida tahad siiski hilisemaks inspekteerimiseks
+alles hoida.
+
+<p>Märgistage <b>Edasta</b> kastike ja kirjutage vastavasse lahtrisse
+aadress kui soovite kirja edasi saata kellegile, kes ei ole listis.
+Kui soovite kinnipeetud kirja enne listi saatmist muuta, siis peaksite
+selle kirja kõigepealt endale edastama (või listihalduritele) ning
+seejärel originaalse kirja kustutama. Siis, kui kiri on teie postkasti
+jõudnud, tehke oma muudatused ja saatke kiri tagasi listi, lisades
+<tt>Approved:</tt> päise koos listi parooliga. Netiketi kohaselt
+on viisakas kui lisate originaalkirjale juurde märkuse selle kohta,
+et olete kirja muutnud.
+
+<p>Kui kirja saatjaks on listi tellija, keda modereeritakse, siis on
+teil võimalik saatjalt see piirang eemaldada. See on kasulik juhul,
+kui teie listis kasutatakse uute liikmete prooviaega ja te olete
+otsustanud, et see liige võib postitada ilma listihaldurit asjasse
+segamata.
+
+<p>Kui saatja ei ole listi liige, siis on teil võimalik tema aadress
+<em>saatjate filtrisse</em> lisada. Neid filtreid kirjeldatakse lähemalt
+<a href="%(filterurl)s">saatjafiltrite privaatsuse lehel</a> ja see
+võib olla üks järgnevatest: <b>auto-accept</b> (lubatakse läbi), <b>auto-hold</b>
+ (peetakse läbivaatuseks kinni), <b>auto-reject</b> (keeldutakse) või
+ <b>auto-discard</b> (visatakse minema). Seda seadistust ei ole võimalik
+ kasutada, kui aadress on juba ühes neist saatjafiltritest.
+
+<p>Kui olete lõpetanud, klikkide nupul <em>Salvesta kõik valikud</em> lehe
+alguses või lõpus. See submitid kõik tegevused kõigile administratiivnõutele
+mille kohta te olete otsuse teinud.
+
+<p><a href="%(summaryurl)s">Tagasi kokkuvõttesse</a>.
diff --git a/templates/et/admindbpreamble.html b/templates/et/admindbpreamble.html
new file mode 100644
index 00000000..188b13e8
--- /dev/null
+++ b/templates/et/admindbpreamble.html
@@ -0,0 +1,9 @@
+Siin lehel on näha osa listi <em>%(listname)s</em> saadetud kirjadest,
+mis on läbivaatuseks kinni peetud. Praegu on näha %(description)s
+
+<p>Palun valige iga administratiivtaotluse juurest tegevus, mida sellega
+ette võtta ja klikkide <b>Salvesta kõik valikud</b> kui olete lõpetanud.
+Detailsem juhend on saadaval <a href="%(detailsurl)s">siin</a>.
+
+<p>Võimalik on ka <a href="%(summaryurl)s">näha ülevaadet</a> kõigist
+ootel olevatest taotlustest.
diff --git a/templates/et/admindbsummary.html b/templates/et/admindbsummary.html
new file mode 100644
index 00000000..6c2376ca
--- /dev/null
+++ b/templates/et/admindbsummary.html
@@ -0,0 +1,13 @@
+Sellel lehel on ülevaade kõigist
+<a href="%(adminurl)s"><em>%(listname)s</em> listi</a>
+administratiivtaotlustest.
+
+Alguses on nimekiri kõigist tellimise ja tellimise katkestamise
+soovidest (kui neid on) ja seejärel tuleb läbivaatuseks kinni
+peetud kirjade nimekiri.
+
+<p>Iga taotluse juures valige toiming ja klikkige <b>Salvesta kõik valikud</b>
+kui olete lõpetanud.
+Täpsemad juhendeid <a href="%(detailsurl)s">võib lugeda siin</a>.
+
+<p><a href="%(viewallurl)s">Ülevaade</a> kõigist kinni peetud kirjadest.
diff --git a/templates/et/adminsubscribeack.txt b/templates/et/adminsubscribeack.txt
new file mode 100644
index 00000000..29e1b491
--- /dev/null
+++ b/templates/et/adminsubscribeack.txt
@@ -0,0 +1,3 @@
+%(member)s liideti listiga %(listname)s.
+
+
diff --git a/templates/et/adminunsubscribeack.txt b/templates/et/adminunsubscribeack.txt
new file mode 100644
index 00000000..f8bfc4a8
--- /dev/null
+++ b/templates/et/adminunsubscribeack.txt
@@ -0,0 +1,2 @@
+%(member)s eemaldati listist %(listname)s.
+
diff --git a/templates/et/admlogin.html b/templates/et/admlogin.html
new file mode 100644
index 00000000..2f9764ba
--- /dev/null
+++ b/templates/et/admlogin.html
@@ -0,0 +1,36 @@
+<html>
+<head>
+ <title>%(listname)s %(who)s autentimine</title>
+</head>
+<body bgcolor="#ffffff">
+<FORM METHOD=POST ACTION="%(path)s">
+%(message)s
+ <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1">%(listname)s %(who)s
+ autentimine</FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <TD><div ALIGN="Right">Listi %(who)s parool:</div></TD>
+ <TD><INPUT TYPE="password" NAME="adminpw" SIZE="30"></TD>
+ </tr>
+ <tr>
+ <td colspan=2 align=middle><INPUT type="SUBMIT"
+ name="admlogin"
+ value="Logi sisse">
+ </td>
+ </tr>
+ </TABLE>
+ <p><strong><em>NB:</em></strong> Selle veebiliidese kasutamiseks
+ peate oma brauseril lubama küpsiste vastuvõtmise sellest saidist,
+ vastasel korral ei saa muudatusi salvestada.
+
+ <p>Küpsised on kasutusel selleks, et te ei peaks igal lehel uuesti
+ parooli sisestama. Küpsis kustutatakse, kui oma brauseri sulgete või
+ veebiliidesest välja logite (klikkides linki <em>Logi välja</em>,
+ mis asub lingi <em>teised administratiivsed toimingud</em> all)
+</FORM>
+</body>
+</html>
diff --git a/templates/et/approve.txt b/templates/et/approve.txt
new file mode 100644
index 00000000..c960f17b
--- /dev/null
+++ b/templates/et/approve.txt
@@ -0,0 +1,14 @@
+Sinu soov %(requestaddr)s:
+
+ %(cmd)s
+
+edastati listi haldurile.
+
+Tõenäoliselt tehti seda sellepärast, et soovisid liituda 'suletud'
+listiga.
+
+Niipea, kui listi haldur on otsuse teinud, saad sellest teada meili
+teel.
+
+Listi halduriga saab kontakti, kui kirjutate
+ %(adminaddr)s
diff --git a/templates/et/article.html b/templates/et/article.html
new file mode 100644
index 00000000..1191dd68
--- /dev/null
+++ b/templates/et/article.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+ <HEAD>
+ <TITLE> %(title)s
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:%(email_url)s?Subject=%(subject_url)s&In-Reply-To=%(in_reply_to_url)s">
+ <META NAME="robots" CONTENT="index,nofollow">
+ %(encoding)s
+ %(prev)s
+ %(next)s
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>%(subject_html)s
+ </H1>
+ <B>%(author_html)s
+ </B>
+ <A HREF="mailto:%(email_url)s?Subject=%(subject_url)s&In-Reply-To=%(in_reply_to_url)s"
+ TITLE="%(subject_html)s">%(email_html)s
+ </A><BR>
+ <I>%(datestr_html)s</I>
+ <P><UL>
+ %(prev_wsubj)s
+ %(next_wsubj)s
+ <LI> <B>Sorteeri kirjad</B>
+ <a href="date.html#%(sequence)s">[ aja ]</a>
+ <a href="thread.html#%(sequence)s">[ lõime ]</a>
+ <a href="subject.html#%(sequence)s">[ teema ]</a>
+ <a href="author.html#%(sequence)s">[ autori ]</a>
+ järgi.
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+%(body)s
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ %(prev_wsubj)s
+ %(next_wsubj)s
+ <LI> <B>Sorteeri kirjad</B>
+ <a href="date.html#%(sequence)s">[ aja ]</a>
+ <a href="thread.html#%(sequence)s">[ lõime ]</a>
+ <a href="subject.html#%(sequence)s">[ teema ]</a>
+ <a href="author.html#%(sequence)s">[ autori ]</a>
+ </LI>
+ </UL>
+<hr>
+<a href="%(listurl)s">Listi '%(listname)s' info</a><br>
+</body></html>
diff --git a/templates/et/bounce.txt b/templates/et/bounce.txt
new file mode 100644
index 00000000..39b4baef
--- /dev/null
+++ b/templates/et/bounce.txt
@@ -0,0 +1,13 @@
+Mailmani listi kohaletoimetustõrke info:
+
+ List: %(listname)s
+ Tellija: %(addr)s
+ Tegevus: tellimine %(negative)s%(did)s.
+ Põhjus: tõrked kirjade kättetoimetamisel
+ %(but)s
+
+%(reenable)s
+Lähem info tõrke põhjuste kohta on kirjale lisatud.
+
+Küsimusi?
+Mailmani haldajaga saab kontakti aadressil %(owneraddr)s.
diff --git a/templates/et/checkdbs.txt b/templates/et/checkdbs.txt
new file mode 100644
index 00000000..e1cfe471
--- /dev/null
+++ b/templates/et/checkdbs.txt
@@ -0,0 +1,9 @@
+Listi %(real_name)s@%(host_name)s juures on ootel %(count)d taotlus(t),
+millega saab tutvuda aadressil:
+
+ %(adminDB)s
+
+Palun tegele sellega niipea, kui võimalik.
+
+Seda teadet ootelolevate taotluste kohta - kui neid on -
+saadetakse automaatselt iga päev.
diff --git a/templates/et/convert.txt b/templates/et/convert.txt
new file mode 100644
index 00000000..5418f7bd
--- /dev/null
+++ b/templates/et/convert.txt
@@ -0,0 +1,32 @@
+%(listname)s listi teenindab nüüdsest uus meililistide haldamise
+tarkvara nimega "Mailman". Loodetavasti lahendab see probleemid,
+mis selle listi haldamise ja kasutamisega varem seotud olid.
+
+Kuidas see muutus teid mõjutab?
+
+1) Listi saadetavad kirjad tuleb saata aadressile:
+ %(listaddr)s.
+
+2) Teile genereeriti unikaalne parool, mille abil listserver
+identifitseerib teid meili teel saadetavate korraldustes.
+Parool saadetakse eraldi kirjaga, mis võib olla juba varem laekunud.
+Juhuks kui peaksite parooli unustama, saadetakse nüüdsest alates see
+parool teile iga kuu uuesti meeldetuletusena.
+
+3) Kui teil on ligipääs WWW-le, siis saate seda parooli kasutada
+listist lahkumiseks, listkirjade kättetoimetamise mooduse muutmiseks
+(referaadid või üksikkirjad) ning listi arhiiviga tutvumiseks.
+Veebilehe aadress, mille kaudu kõiki neid toiminguid teha saab on:
+
+ %(listinfo_url)s
+
+4) Kui teil ei ole ligipääsu WWW-le, siis saate kõiki neid toiminguid
+teha ka meili teel. Saatke aadressile %(requestaddr)s kiri, mille
+teemaks või sisuks on ainult üks sõna - "help" (ilma jutumärkideta).
+Peagi saate automaatse vastuse, mis sisaldab edasisi juhendeid.
+
+Küsimuste või probleemidega pöörduge aadressile:
+ %(adminaddr)s.
+
+Selle teate genereeris ja saatis Mailman %(version)s. Mailmani
+kohta saab lähemat infot aadressilt http://www.list.org/
diff --git a/templates/et/cronpass.txt b/templates/et/cronpass.txt
new file mode 100644
index 00000000..ae693f12
--- /dev/null
+++ b/templates/et/cronpass.txt
@@ -0,0 +1,19 @@
+See on kord kuus saadetav automaatne meeldetuletus teile tellitud
+listide kohta listserveris aadressiga %(hostname)s. Allpool leiate
+info oma tellimuste kohta ning juhendid nende muutmiseks või
+listi(de)st lahkumiseks.
+
+Linkidele klikkides avaneb teil võimalus muuta oma seadistusi,
+näiteks saate lasta endale kirju saata referaatidena üksikirjade
+asemel või peatada kirjade saatmise ajutiselt (näiteks puhkuse ajaks),
+jne. Ka on teil võimalus oma tellimus päriselt lõpetada.
+
+Kõiki neid toiminguid saab teha ka meili teel, lähema info saamiseks
+selle kohta, saatke kiri, mis sisaldab ainult sõna 'help' listi -request
+aadressile (näiteks %(exreq)s), ning peagi saate vastuseks kirja,
+mis sisaldab täpsemaid juhendeid.
+
+Kui teil on küsimusi, probleeme, kommentaare, vmt. siis saatke
+need aadressile %(owner)s. Aitäh!
+
+%(useraddr)s paroolid:
diff --git a/templates/et/disabled.txt b/templates/et/disabled.txt
new file mode 100644
index 00000000..5a9e6bcb
--- /dev/null
+++ b/templates/et/disabled.txt
@@ -0,0 +1,26 @@
+Teie %(listname)s listi tellimus on katkestatud järgnetavel
+põhjustel:
+%(reason)s
+Te ei saa listist rohkem kirju enne, kui olete oma tellimust
+uuendanud. Te saate veel %(noticesleft)s sellist meeldetuletust, enne
+kui teie tellimus lõplikult tühistatakse.
+
+Tellimuse uuendamiseks lihtsalt vastake sellele kirjale (jättes
+teema samaks), või külastage aadressi:
+
+ %(confirmurl)s
+
+Alternatiivina võite külastada ka oma tellimisinfo lehte aadressil
+
+ %(optionsurl)s
+
+Tellimisinfo lehel on teil võimalik muuta kirjade kättetoimetamise
+seadistusi või muuta meiliaadressi, millele kirju saadetakse.
+
+Meeldetuletuseks, teie parool on
+
+ %(password)s
+
+Probleemide ja küsimustega pöörduge listi halduri poole aadressil
+
+ %(owneraddr)s
diff --git a/templates/et/emptyarchive.html b/templates/et/emptyarchive.html
new file mode 100644
index 00000000..d274535c
--- /dev/null
+++ b/templates/et/emptyarchive.html
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+ <HEAD>
+ <title>%(listname)s listi arhiiv</title>
+ <META NAME="robots" CONTENT="noindex,follow">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <h1>%(listname)s listi arhiiv</h1>
+ <p>
+ Sellesse listi pole veel kirju saadetud ja seetõttu on arhiiv praegu tühi.
+ <a href="%(listinfo)s">lähem info listi kohta</a>.
+ </p>
+ </BODY>
+ </HTML>
diff --git a/templates/et/headfoot.html b/templates/et/headfoot.html
new file mode 100644
index 00000000..1fb48c64
--- /dev/null
+++ b/templates/et/headfoot.html
@@ -0,0 +1,25 @@
+See tekst võib sisaldada
+<a href="http://www.python.org/doc/current/lib/typesseq-strings.html">Pythoni
+vormingustringe</a>, mis asendatakse selle listi atribuutidega. Lubatud
+asendused on järgmised:
+<ul>
+ <li><b><code>real_name</code></b> - Listi vormindatud nimi, üldjuhul
+ on see listi nimi suure esitähega.
+
+ <li><b><code>list_name</code></b> - Listi tõstutundetu nimi. Mõeldud
+ ennekõike URLides kasutamiseks. Tagasiühilduvuse tagamiseks töötab
+ siin ka <code>_internal_name</code>.
+
+ <li><b><code>host_name</code></b> - Listserveri poolt kasutatava domeeni
+ nimi.
+
+ <li><b><code>web_page_url</code></b> - Mailmani veebiliidese URL. URLi
+ lõppu võib lisada näiteks <em><code>listinfo/%(internal_name)s</code></em>
+ linkimaks otse listi üldinfo veebilehele.
+
+ <li><b><code>description</code></b> - Lühike listi kirjeldus.
+
+ <li><b><code>info</code></b> - Pikem listi tutvustav tekst.
+
+ <li><b><code>cgiext</code></b> - CGI skriptidele lisatav laiend.
+</ul>
diff --git a/templates/et/help.txt b/templates/et/help.txt
new file mode 100644
index 00000000..490ce10e
--- /dev/null
+++ b/templates/et/help.txt
@@ -0,0 +1,33 @@
+%(listname)s abiinfo.
+
+Mõningaid listserveri Mailman %(version)s" võimalusi saab kasutada ka
+meili teel, saates listserverile vastavalt allpool toodud reeglitele
+formuleeritud korraldusi. Korraldus võib olla kirja teema real või
+kirja sisus.
+
+Kõiki neid tegevusi saab teha ka läbi veebibrauseri, aadressil:
+
+ %(listinfo_url)s
+
+näiteks saate ülaltoodud aadressilt lasta saata endale oma parooli,
+juhul kui olete selle unustanud.
+
+Listidega seotud korraldused (subscribe, who, jne) tuleb saata
+vastava listi *-request aadressile, näiteks 'mailman' nimelise
+listi jaoks mõeldud korraldused saatke aadressile
+'mailman-request@...'.
+
+Legend:
+Nurksulgudega "<>" ümbritsetud elemendid on kohustuslikud.
+Kandiliste sulgudega "[]" ümbritsetud elemendid ei ole kohustuslikud.
+Sulge endid tohi käskudes kasutada.
+
+Sul on kasutada järgnevad korraldused:
+
+ %(commands)s
+
+Korraldused tuleb saata aadressile %(requestaddr)s
+
+Küsimused adresseerige listi haldurile aadressil
+
+ %(adminaddr)s
diff --git a/templates/et/invite.txt b/templates/et/invite.txt
new file mode 100644
index 00000000..fb718bc8
--- /dev/null
+++ b/templates/et/invite.txt
@@ -0,0 +1,22 @@
+Listi %(listname)s haldur soovib lisada teie aadressi
+"%(email)s" listi %(listname)s@%(hostname)s tellijate
+nimekirja. Kui olete sellega nõus, siis saatke sellele
+kirjale lihtne vastus jättes kirja Teema selliseks
+nagu ta praegu on.
+
+Alternatiivina külastage veebilehte:
+
+ %(confirmurl)s
+
+Veel ühe alternatiivina võite saata kirja, mille sisuks
+on järgnev -- ja ainult see -- tekst aadressile
+%(requestaddr)s:
+
+ confirm %(cookie)s
+
+Enamustes meilerites piisab lihtsalt "vastuse" saatmisest
+sellele kirjale.
+
+Kui te ei soovi selle listiga liituda, siis ignoreerige seda
+kirja. Kui teil on küsimusi, siis adresseerige need
+listi haldurile aadressil %(listowner)s.
diff --git a/templates/et/listinfo.html b/templates/et/listinfo.html
new file mode 100644
index 00000000..3bfe6a82
--- /dev/null
+++ b/templates/et/listinfo.html
@@ -0,0 +1,137 @@
+<!-- $Revision: 5835 $ -->
+<HTML>
+ <HEAD>
+ <TITLE>Listi <MM-List-Name> info</TITLE>
+
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+
+ <P>
+ <TABLE COLS="1" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1"><MM-List-Name> --
+ <MM-List-Description></FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <p>&nbsp;
+ </td>
+ </tr>
+ <tr>
+ <TD COLSPAN="1" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000">Listi <MM-List-Name> info</FONT></B>
+ </TD>
+ <TD COLSPAN="1" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <MM-lang-form-start><MM-displang-box> <MM-list-langs>
+ <MM-form-end>
+ <MM-Subscribe-Form-Start>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <P><MM-List-Info></P>
+ <p> <MM-Archive><MM-List-Name> arhiiv</MM-Archive>.
+ <MM-Restricted-List-Message>
+ </p>
+ </TD>
+ </TR>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000">Using <MM-List-Name></FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ Listi postitamiseks kirjutage aadressil
+ <A HREF="mailto:<MM-Posting-Addr>"><MM-Posting-Addr></A>.
+
+ <p>Listi saab tellida või tellimuse profiili saab muuta allpool</p>
+ </td>
+ </tr>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000">Listi <MM-List-Name> tellimine</FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <P>
+ <MM-List-Name> tellimiseks täitke järgnev vorm
+ <MM-List-Subscription-Msg>
+ <ul>
+ <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"
+ WIDTH="70%" HEIGHT= "112">
+ <TR>
+ <TD BGCOLOR="#dddddd" WIDTH="55%">Teie e-posti aadress:</TD>
+ <TD WIDTH="33%"><MM-Subscribe-Box>
+ </TD>
+ <TD WIDTH="12%">&nbsp;</TD></TR>
+ <tr>
+ <td bgcolor="#dddddd" width="55%">Teie nimi (võib tühjaks jätta):</td>
+ <td width="33%"><mm-fullname-box></td>
+ <TD WIDTH="12%">&nbsp;</TD></TR>
+ <TR>
+ <TD COLSPAN="3"><FONT SIZE=-1>Allpool olevasse vormi on
+ võimalik sisestada parool. See pole just üleliia turvaline,
+ kuid peaks ära hoidma selle, et keegi teine teie tellimusi
+ muuta saab. <b>ära sisesta parooli, mida juba mujal kasutad</b>,
+ sest siia sisestatud parool võidakse teile kirjaga saata.
+
+ <p>Kui te parooli ei sisesta, siis genereeritakse see automaatselt
+ ning saadetakse teile niipea, kui olete oma tellimuse kinnitanud.
+ Teil on ka võimalik lasta parooli uuesti meilida, kui muudate oma
+ tellimuse profiili.
+ <MM-Reminder>
+ </p>
+ </TD>
+ </TR>
+ <TR>
+ <TD BGCOLOR="#dddddd">Sisestage parool:</TD>
+ <TD><MM-New-Password-Box></TD>
+ <TD>&nbsp;</TD></TR>
+ <TR>
+ <TD BGCOLOR="#dddddd">Korrake parooli:</TD>
+ <TD><MM-Confirm-Password></TD>
+ <TD>&nbsp; </TD></TR>
+ <tr>
+ <TD BGCOLOR="#dddddd">Kasutajaliidese keel?</TD>
+ <TD> <MM-list-langs></TD>
+ <TD>&nbsp; </TD></TR>
+ <tr>
+ <td>Kirju saadetakse referaatidena
+ </td>
+ <td><MM-Undigest-Radio-Button> Ei
+ <MM-Digest-Radio-Button> Jah
+ </TD>
+ </tr>
+ <tr>
+ <td colspan="3">
+ <center><MM-Subscribe-Button></P></center>
+ </TABLE>
+ <MM-Form-End>
+ </ul>
+ </td>
+ </tr>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <a name="subscribers">
+ <B><FONT COLOR="#000000"><MM-List-Name> tellijad</FONT></B></a>
+ </TD>
+ </TR>
+ <tr>
+ <TD COLSPAN="2" WIDTH="100%">
+ <MM-Roster-Form-Start>
+ <MM-Roster-Option>
+ <MM-Form-End>
+ <p>
+ <MM-Options-Form-Start>
+ <MM-Editing-Options>
+ <MM-Form-End>
+ </td>
+ </tr>
+ </table>
+<MM-Mailman-Footer>
+</BODY>
+</HTML>
diff --git a/templates/et/masthead.txt b/templates/et/masthead.txt
new file mode 100644
index 00000000..892d7539
--- /dev/null
+++ b/templates/et/masthead.txt
@@ -0,0 +1,16 @@
+Listi %(real_name)s postitamiseks kirjutage aadressile
+ %(got_list_email)s
+
+Listi tellimiseks või tellimuse lõpetamiseks veebi kaudu
+külastage veebilehte
+ %(got_listinfo_url)s
+või saatke meil, mille sisu koosneb ainult sõnast 'help'
+aadressile
+ %(got_request_email)s
+
+Listi halduriga saab kontakti aadressil
+ %(got_owner_email)s
+
+Kirjale vastamisel oleks viisakas muuta kirja teemat, nii et see
+ei paistaks nagu
+"Re: %(real_name)s referaat"
diff --git a/templates/et/newlist.txt b/templates/et/newlist.txt
new file mode 100644
index 00000000..b5980612
--- /dev/null
+++ b/templates/et/newlist.txt
@@ -0,0 +1,36 @@
+List nimega '%(listname)s' on loodud. Järgnev tekst annab lühi-
+ülevaate listi seadistustest ja edasisest konfigureerimisest.
+
+Listi parool on:
+
+ %(password)s
+
+Seda parooli läheb tarvis listi konfiguratsiooni muutmiseks. Sama
+parooli kasutatakse ka administreerimiseks, näiteks kirja listi
+lubamiseks, kui otsustad listi muuta modereeritavaks.
+
+Listi saab konfigureerida aadressilt:
+
+ %(admin_url)s
+
+Listi kasutajate jaoks on veebileht aadressil:
+
+ %(listinfo_url)s
+
+Mõlema lehe kujundust on võimalik muuta listi konfigureerimise
+juures, kuid selleks pead tundma HTMLi.
+
+Eksisteerib ka meilipõhine kasutajaliides listi kasutajatele
+(mitte administraatoritele); selle kohta saab infot saates
+kirja, mille sisus on ainult sõna "help" aadressile:
+
+ %(requestaddr)s
+
+Tellija aadressi eemaldamiseks listist ava 'listinfo' veebileht,
+seejärel klikkige vastavale aadressile või sisesta see tekstiväljale.
+Parooliks sisestage listi administraatoriparool. Sealtsamast saab
+muuta ka kõiki selle listi tellija seadistusi, k.a. referaatide
+saatmine, saatmise katkestamine, jne.
+
+Võimalikele küsimustele vastab ja probleeme lahendab
+ %(siteowner)s
diff --git a/templates/et/options.html b/templates/et/options.html
new file mode 100644
index 00000000..9ae422b2
--- /dev/null
+++ b/templates/et/options.html
@@ -0,0 +1,303 @@
+<!-- $Revision: 5835 $ -->
+<html>
+<head>
+ <link rel="SHORTCUT ICON" href="<mm-favicon>">
+ <title><MM-Presentable-User> <MM-List-Name> tellimuse profiil
+ </title>
+</head>
+<BODY BGCOLOR="#ffffff">
+ <TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#99CCFF"><B>
+ <FONT COLOR="#000000" SIZE=+1>
+ <MM-List-Name> tellimuse profiil kasutajale
+ <MM-Presentable-User>
+ </FONT></B></TD></TR>
+ </TABLE>
+<p>
+<table width="100%" border="0" cellspacing="5" cellpadding="5">
+ <tr><td>
+ <b><MM-Presentable-User></b> tellimuse staatus,
+ parool, ja listi <MM-List-Name> seadistused.
+ </td><td><MM-Form-Start><mm-logout-button><MM-Form-End></td>
+ </tr><tr>
+ <td colspan="2">
+ <MM-Case-Preserved-User>
+
+ <MM-Disabled-Notice>
+
+ <p><mm-results>
+ </td>
+ </tr>
+</table>
+
+<MM-Form-Start>
+<p>
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#FFF0D0" colspan="2">
+ <FONT COLOR="#000000">
+ <B><MM-List-Name> tellimuse profiili muutmine</B>
+ </FONT></TD></TR>
+ <tr><td colspan="2">Tellimuse aadressi saab muuta sisestades uue
+ aadressi allpool asuvatesse vormi väljadesse. Enne kui aadress
+ muudetakse, saadetakse uuele aadressile veel täiendav kiri, millele
+ peab vastama, et aadressi muutus kinnitada.
+
+ <p>Kinnitus kaotab kehtivuse <mm-pending-days> pärast.
+
+ <p>Võite sisestada ka oma pärisnime (näiteks <em>Einar Kootikum</em>).
+
+ <p>Kui soovite rakendada muudatusi korraga kõigile serveri <mm-host>
+ listide tellimustele, siis märgistage ruuduke <em>Muuda kõiki</em>.
+
+ </td></tr>
+ <tr><td><center>
+ <table border="0" cellspacing="2" cellpadding="2" width="80%" cols="2">
+ <tr><td bgcolor="#dddddd"><div align="right">Uus aadress:</div></td>
+ <td><mm-new-address-box></td>
+ </tr>
+ <tr><td bgcolor="#dddddd"><div align="right">Uus aadress
+ (2x):</div></td>
+ <td><mm-confirm-address-box></td>
+ </tr>
+ </tr></table></center>
+ </td>
+ <td><center>
+ <table border="0" cellspacing="2" cellpadding="2" width="80%" cols="2">
+ <tr><td bgcolor="#dddddd"><div align="right">Teie nimi
+ (võib tühjaks jätta):</div></td>
+ <td><mm-fullname-box></td>
+ </tr>
+ </table></center>
+ </td>
+ </tr>
+ <tr><td colspan="2"><center><mm-change-address-button>
+ <p><mm-global-change-of-address>Muuda kõiki</center></td>
+ </tr>
+</table>
+
+<p>
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="5" CELLPADDING="5">
+ <TR><TD WIDTH="50%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>Listi <MM-List-Name> tellimuse katkestamine</B></td>
+
+ <TD WIDTH="50%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>Teised <MM-Host> listide tellimused</B>
+ </FONT></TD></TR>
+
+ <tr><td>
+ Märgistage ruuduke "Nõua kinnitust" ja klikkige seda nuppu
+ listi tellimuse katkestamiseks.
+ <strong>NB:</strong>
+ This action will be taken immediately!
+ <p>
+ <center><MM-Unsubscribe-Button></center></td>
+ <td>
+ Siit saate vaadata kõigi oma ülejäänud <mm-host> listide tellimusi.
+ Klikkige siia, kui soovite muudatusi rakendada ka teiste tellimuste
+ profiilidele.
+
+ <p>
+ <center><MM-Other-Subscriptions-Submit></center>
+ </TD></TR>
+</table>
+
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD COLSPAN=2 WIDTH="100%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>Teie <MM-List-Name> listi parool</B>
+ </FONT></TD></TR>
+
+ <tr valign="TOP"><td WIDTH="50%">
+ <a name=reminder>
+ <center>
+ <h3>Unustasite parooli?</h3>
+ </center>
+ Klikkige seda nuppu parooli saatmiseks aadressile, millele
+ listi tellisite
+ <p><MM-Umbrella-Notice>
+ <center>
+ <MM-Email-My-Pw>
+ </center>
+ </td>
+
+ <td WIDTH="50%">
+ <a name=changepw>
+ <center>
+ <h3>Change Your Password</h3>
+ <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2" WIDTH="70%" COLS=2>
+ <TR><TD BGCOLOR="#dddddd"><div align="right">Uus
+ parool:</div></TD>
+ <TD><MM-New-Pass-Box></TD>
+ </TR>
+ <TR>
+ <TD BGCOLOR="#dddddd"><div align="right">Korrake
+ parooli:</div></TD>
+ <TD><MM-Confirm-Pass-Box></TD>
+ </TR>
+ </table>
+
+ <MM-Change-Pass-Button>
+ <p><center><mm-global-pw-changes-button>Muuda kõiki.
+ </center>
+</TABLE>
+
+<p>
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>Listi <MM-List-Name> tellimuse profiil</B>
+ </FONT></TD></TR>
+</table>
+
+<p>
+<i><strong>Hetkel kehtivad valikud on märgistatud.</strong></i>
+
+<p>Osade valikute juures on ka valikukast <em>rakenda kõigile</em>,
+seda märgistades saab muudatusi rakendada kõigile teie tellimuste
+profiilidele servers <mm-host>.
+Klikkige nupule <em>teised tellimused</em> ülal, et näha millised
+listid teie aadressile veel tellitud on.
+<p>
+<TABLE BORDER="0" CELLSPACING="3" CELLPADDING="4" WIDTH="100%">
+ <tr><TD BGCOLOR="#cccccc">
+ <a name="disable">
+ <strong>Tellimuse staatus</strong></a><p>
+ Valige <em>aktiivne</em> kui soovite listi kirju saada.
+ Valige <em>peatatud</em> kui soovite kirjade kätte toimetamise
+ ajutiselt katkestada (näiteks puhkusel oleku ajaks). Viisakas oleks
+ ka tellimus uuesti aktiveerida, kui olete (puhkuselt) tagasi.
+
+ </td><td bgcolor="#cccccc">
+ <mm-delivery-enable-button>aktiivne<br>
+ <mm-delivery-disable-button>peatatud<p>
+ <mm-global-deliver-button><i>rakenda kõigile</i>
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Kirjade kättetoimetusviis</strong><p>
+ Kui lülitate referaatide saatmise sisse, siis hakkate saama
+ kirju saama nö "kokku köidetuna" (tavaliselt korra päevas,
+ suurema liiklusega listides ka tihedamini), üksikkirjade
+ asemel. Kui referaatide saatmise välja lülitate, siis võib
+ juhtuda, et saate veel ühe viimase referaadi.
+ </td><td bgcolor="#cccccc">
+ <MM-Undigest-Radio-Button>üksikkirjad<br>
+ <MM-Digest-Radio-Button>referaadid
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Referaatide vorming?</strong><p>
+ Teie meiliklient ei pruugi MIME vormingus referaate toetada.
+ Üldjuhul tuleks siiski MIME referaate eelistada, aga kui teil
+ on probleeme nende lugemisega, siis valige selle asemel
+ lihtteksti vorming
+ </td><td bgcolor="#cccccc">
+ <MM-Mime-Digests-Button>MIME<br>
+ <MM-Plain-Digests-Button>Lihttekst
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Oma kirjad läbi listi?</strong><p>
+ Vaikimisi saate listist ka koopiad oma kirjadest. Kui te ei soovi
+ koopiad listist saada, siis valige <em>Ei</em>
+ </td><td bgcolor="#cccccc">
+ <mm-dont-receive-own-mail-button>Ei<br>
+ <mm-receive-own-mail-button>Jah
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Saata kinnitus teie kirja listi jõudmise kohta?</strong><p>
+ </td><td bgcolor="#cccccc">
+ <mm-dont-ack-posts-button>Ei<br>
+ <mm-ack-posts-button>Jah
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>Automaatne paroolide meeldetuletus?</strong><p>
+ Kord kuus saate meili, mis sisaldab paroole kõigile listidele,
+ mida olete siit serverist tellinud. Teil on võimalik meeldetuletuste
+ saatmisest loobuda, kui valite siit <em>Ei</em>.
+ </td><td bgcolor="#cccccc">
+ <mm-dont-get-password-reminder-button>Ei<br>
+ <mm-get-password-reminder-button>Jah<p>
+ <mm-global-remind-button><i>rakenda kõigile</i>
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Näita aadressi tellijate nimekirjas?</strong><p>
+ Tavaliselt näidatakse sinu aadressi listi tellijate nimekirjas, kui keegi
+ seda vaatab (veidi muudetud kujul, et kaitsta spämmijate eest).
+ Kui te ei soovi oma aadressi selles nimekirjas näidata, siis valige
+ <em>Ei</em>
+ </td><td bgcolor="#cccccc">
+ <MM-Public-Subscription-Button>Ei<br>
+ <MM-Hide-Subscription-Button>Jah
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Mis keeles listserver teiega suhtlema peaks?</strong><p>
+ </td><td bgcolor="#cccccc">
+ <MM-list-langs>
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>Millised teemad teid huvitavad?
+ </strong><p>
+ Teil on võimalus filtreerida listi saadetavaid kirju
+ valides altpoolt ühe või mitu teid huvitavat teemat.
+
+ <p>Kui te ühtegi teemat ei vali, saate kätte kõik kirjad</p>
+ </td><td bgcolor="#cccccc">
+ <mm-topics>
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>Mida teha kirjadega, mille teema on väljaspool ülalkirjeldatud
+ teemade ringi?
+ </strong><p>
+
+ See valik kehtib ainult siis, kui olete valinud vähemalt
+ ühe teema ülalolevast teemade nimekirjast. Selle valik
+ määrab ära, mida tehakse kirjadega, mis on väljaspool
+ seda teemade ringi.
+
+ <em>Ära saada</em> - kirja ei saadeta teile
+ <em>Saada</em> - kiri saadetakse teile
+
+ <p>Kui te ühtegi teemat ei vali, saate kätte kõik kirjad</p>
+
+ </td><td bgcolor="#cccccc">
+ <mm-suppress-nonmatching-topics>Ära saada<br>
+ <mm-receive-nonmatching-topics>Saada
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>Duplikaatide kontroll?</strong><p>
+
+ Kui teie aadress on listi saadetud kirjade <tt>To:</tt>
+ ja/või <tt>Cc:</tt> ridadel, siis selle valiku abil
+ saate listserverile öelda, et ei soovi saada koopiat
+ kirjast läbi listi (Cc-ga saadetud kiri on teil ju olemas).
+ Valige <em>Jah</em> kui te ei soovi koopiat, või <em>Ei</em>
+ kui soovite koopiaid.
+
+ <p>Kui list kasutab personaliseeritud kirju ja teil on koopiate
+ saatmine sisse lülitatud, siis lisatakse igale listserverisse
+ saadetud kirjale <tt>X-Mailman-Copy: yes</tt> päis.
+
+ </td><td bgcolor="#cccccc">
+ <mm-receive-duplicates-button>Ei<br>
+ <mm-dont-receive-duplicates-button>Jah<p>
+ <mm-global-nodupes-button><i>rakenda kõigile</i>
+ </td></tr>
+
+ <tr><TD colspan="2">
+ <center><MM-options-Submit-button></center>
+ </td></tr>
+
+</table>
+</center>
+<p>
+<MM-Form-End>
+
+<MM-Mailman-Footer>
+</body>
+</html>
diff --git a/templates/et/postack.txt b/templates/et/postack.txt
new file mode 100644
index 00000000..ad0b6fca
--- /dev/null
+++ b/templates/et/postack.txt
@@ -0,0 +1,8 @@
+Sinu kiri teemal
+
+ %(subject)s
+
+edastati listi %(listname)s.
+
+Listi taustinfo on aadressil: %(listinfo_url)s
+Seadeid saad muuta aadressil: %(optionsurl)s
diff --git a/templates/et/postauth.txt b/templates/et/postauth.txt
new file mode 100644
index 00000000..fa6cb163
--- /dev/null
+++ b/templates/et/postauth.txt
@@ -0,0 +1,12 @@
+Listi administraatorina peate autoriseerima allpool kirjeldatud
+kirja listi saatmise
+
+ List: %(listname)s@%(hostname)s
+ From: %(sender)s
+ Subject: %(subject)s
+ Reason: %(reason)s
+
+Postitust saate autoriseerida või sellest keelduda aadressil
+
+ %(admindb_url)s
+
diff --git a/templates/et/postheld.txt b/templates/et/postheld.txt
new file mode 100644
index 00000000..1cb4b0f2
--- /dev/null
+++ b/templates/et/postheld.txt
@@ -0,0 +1,15 @@
+Teie kiri listi '%(listname)s' teemal
+
+ %(subject)s
+
+edastati listi moderaatorile üle vaatamiseks.
+
+Põhjus:
+
+ %(reason)s
+
+Sõltuvalt moderaatori otsusest kiri kas postitakse listi või
+teavitatakse teid moderaatori otsusest. Kui soovite seda postitust
+katkestada, külastage veebilehte
+
+ %(confirmurl)s
diff --git a/templates/et/private.html b/templates/et/private.html
new file mode 100644
index 00000000..6d55c24a
--- /dev/null
+++ b/templates/et/private.html
@@ -0,0 +1,40 @@
+<html>
+<head>
+ <title>%(realname)s privaatarhiiv</title>
+</head>
+<body bgcolor="#ffffff">
+<FORM METHOD=POST ACTION="%(action)s/">
+%(message)s
+ <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1">%(realname)s privaatarhiivi
+ sisse logimine</FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <TD><div ALIGN="Right">Meiliaadress:</div></TD>
+ <TD><INPUT TYPE="text" NAME="username" SIZE="30"></TD>
+ </tr>
+ <tr>
+ <TD><div ALIGN="Right">Parool:</div></TD>
+ <TD><INPUT TYPE="password" NAME="password" SIZE="30"></TD>
+ </tr>
+ <tr>
+ <td colspan=2 align="middle"><INPUT type="SUBMIT"
+ name="submit"
+ value="Lase mind sisse...">
+ </td>
+ </tr>
+ </TABLE>
+ <p><strong><em>Important:</em></strong> Sisse logimiseks peate
+ oma brauseril lubama 'cookie'-de aktsepteerimise sellest saidist.
+
+ <p>Küpsiseid kasutatakse Mailman'i veebiliidese kasutamise lihtsustamiseks,
+ nii ei pea te igal lehel uuesti kasutajanime ja parooli sisestama.
+ Küpsis kustutatakse automaatselt, kui oma brauseri sulgete või klikite
+ <em>Logi välja</em> lingil, mis asub lingi <em>Muud administreerimistegevused
+ </em> all (need lingid tulevad nähtavale, kui olete sisse loginud).
+</FORM>
+</body>
+</html>
diff --git a/templates/et/refuse.txt b/templates/et/refuse.txt
new file mode 100644
index 00000000..cb6071dd
--- /dev/null
+++ b/templates/et/refuse.txt
@@ -0,0 +1,12 @@
+Listi %(listname)s moderaator lükkas tagasi teie taotluse
+
+ %(request)s
+
+põhjendades seda järgnevalt:
+
+"%(reason)s"
+
+Küsimuste ja kommentaaridega pöörduge palun listi halduri poole
+aadressil:
+
+ %(adminaddr)s
diff --git a/templates/et/roster.html b/templates/et/roster.html
new file mode 100644
index 00000000..cf702255
--- /dev/null
+++ b/templates/et/roster.html
@@ -0,0 +1,53 @@
+<!-- $Revision: 5835 $ -->
+<HTML>
+ <HEAD>
+ <TITLE><MM-List-Name> tellijad</TITLE>
+
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+
+ <P>
+ <TABLE WIDTH="100%" COLS="1" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1"><MM-List-Name>
+ tellijad</FONT></B>
+ </TD>
+ </TR>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" ALIGN="CENTER">
+
+ <P align = "right"> <MM-lang-form-start><MM-displang-box>
+ <MM-list-langs><MM-form-end></p>
+
+ <P>Kliki oma aadressil tellimuse profiili muutmiseks
+ <br><I>(Tellijad, kelle aadress on sulgudes, on oma tellimuse
+ ajutiselt katkestanud.)</I></P>
+ </TD>
+ </TR>
+ <TR WIDTH="100%" VALIGN="top">
+ <TD BGCOLOR="#FFF0D0" WIDTH="50%">
+ <center>
+ <B><FONT COLOR="#000000"><MM-Num-Reg-Users>
+ <MM-List-Name> üksikkirjade tellijat:</FONT></B>
+ </center>
+ </TD>
+ <TD BGCOLOR="#FFF0D0" WIDTH="50%">
+ <center>
+ <B><FONT COLOR="#000000"><MM-Num-Digesters>
+ <MM-List-Name> referaatide tellijat:</FONT></B>
+ </center>
+ </TD>
+ </TR>
+ <TR VALIGN="top">
+ <td>
+ <P><MM-Regular-Users>
+ </td>
+ <td>
+ <P><MM-Digest-Users>
+ </td>
+ </tr>
+ </table>
+<MM-Mailman-Footer>
+</BODY>
+</HTML>
diff --git a/templates/et/subauth.txt b/templates/et/subauth.txt
new file mode 100644
index 00000000..79d06640
--- /dev/null
+++ b/templates/et/subauth.txt
@@ -0,0 +1,6 @@
+%(username)s soovib tellida listi %(listname)s@%(hostname)s.
+Selleks on vaja teie, kui listi halduri, nõusolekut.
+
+Tellimuse kinnitamiseks külastage esimesel sobival hetkel veebilehte
+
+ %(admindb_url)s
diff --git a/templates/et/subscribe.html b/templates/et/subscribe.html
new file mode 100644
index 00000000..1a16c100
--- /dev/null
+++ b/templates/et/subscribe.html
@@ -0,0 +1,9 @@
+<!-- $Revision: 5835 $ -->
+<html>
+<head><title><MM-List-Name> tellimus</title></head>
+<body bgcolor="white">
+<h1><MM-List-Name> tellimus</h1>
+<MM-Results>
+<MM-Mailman-Footer>
+</body>
+</html>
diff --git a/templates/et/subscribeack.txt b/templates/et/subscribeack.txt
new file mode 100644
index 00000000..fe13d557
--- /dev/null
+++ b/templates/et/subscribeack.txt
@@ -0,0 +1,38 @@
+Tere tulemast listi %(real_name)s@%(host_name)s!
+%(welcome)s
+
+Listi postitamiseks on aadress
+
+ %(emailaddr)s
+
+Taustinfot listi kohta saab aadressil
+
+ %(listinfo_url)s
+
+Kui soovite listi tellimust katkestada või tellimuse profiili
+muuta (näiteks listikirjade kättetoimetamise moodust, parooli
+vahetada, vmt), siis külastage aadressi
+
+ %(optionsurl)s
+%(umbrella)s
+
+Neid toimingud on võimalik teha ka meili teel. Selleks tuleb
+aadressile
+
+ %(real_name)s-request@%(host_name)s
+
+saata kiri, mille sisuks üksainus sõna - help
+
+Vastuseks saate listserverilt kasutusjuhendi.
+
+Profiili muutmiseks (k.a. parooli enda muutmiseks) või listi
+tellimuse katkestamiseks on vaja parooli. Teie parool on:
+
+ %(password)s
+
+Üldjuhul saadab Mailman teile meeldetuletusi teie %(host_name)s
+listide paroolide kohta kord kuus, kuid teil on võimalus nende
+meeldetuletuste saamisest loobuda.
+
+See meeldetuletus sisaldab ka juhendeid tellimuse katkestamiseks
+ning tellimuse profiili muutmiseks.
diff --git a/templates/et/unsub.txt b/templates/et/unsub.txt
new file mode 100644
index 00000000..60881aa0
--- /dev/null
+++ b/templates/et/unsub.txt
@@ -0,0 +1,29 @@
+Listi %(listname)s tellimuse katkestamise kinnitus.
+
+Keegi - tõenäoliselt teie ise - soovib lõpetada teie
+(aadress on %(email)s) tellimust listile %(listaddr)s.
+
+%(remote)s
+
+Kui soovite selle listi tellimust lõpetada, siis vastake
+sellele kirjale jättes kirja sisu ja teema muutmata
+(Re: teema alguses on lubatud).
+
+Alternatiivina saab tellimust katkestada ka veebilehel
+
+ %(confirmurl)s
+
+Kolmas võimalus on saata kiri aadressile %(requestaddr)s,
+kirja sisuks järgnev rida:
+
+ confirm %(cookie)s
+
+Kui te ei soovi selle listi tellimust katkestada, pole teil
+vaja rohkem midagi teha, võite seda kirja ignoreerida.
+
+Kui teil on põhjust arvata, et keegi soovib teie tellimust
+katkestada vastu teie tahtmist siis teatatage sellest listi
+haldurile aadressil %(listadmin)s.
+
+Listi halduri poole võib pöörduda ka teiste küsimustega,
+mis on seotud selle listiga.
diff --git a/templates/et/unsubauth.txt b/templates/et/unsubauth.txt
new file mode 100644
index 00000000..67cf29e1
--- /dev/null
+++ b/templates/et/unsubauth.txt
@@ -0,0 +1,7 @@
+%(username)s soovib lõpetada listi %(listname)s@%(hostname)s
+tellimust. Selleks on vaja teie, kui listi halduri, nõusolekut.
+
+Tellimuse katkestamise kinnitamiseks külastage esimesel sobival
+hetkel veebilehte
+
+ %(admindb_url)s
diff --git a/templates/et/userpass.txt b/templates/et/userpass.txt
new file mode 100644
index 00000000..669b53f3
--- /dev/null
+++ b/templates/et/userpass.txt
@@ -0,0 +1,26 @@
+Keegi - tõenäoliselt teie ise - esitas päringu teie
+%(fqdn_lname)s listi parooli meeldetuletuseks.
+
+Seda parooli läheb tarvis kui soovite muuta oma listi
+tellimuse profiili või lõpetada listi tellimust.
+
+List on tellitud aadressile: %(user)s
+
+Teie %(listname)s listi parool on: %(password)s
+
+Tellimuse profiili muutmiseks logige ülaltoodud andmeid
+kasutades sisse veebilehele aadressil
+
+ %(options_url)s
+
+Tellimuse profiili on võimalik muuta ka meili teel, lähemat
+infot selle kohta saab saates aadressile
+
+ %(requestaddr)s
+
+kirja, mille sisuks on üksainus sõna - help
+Listserver vastab sellele kasutusjuhendiga.
+
+Küsimuste ja/või kommentaaridega pöörduge listi
+%(listname)s halduri poole, tema aadress on
+%(owneraddr)s.
diff --git a/templates/et/verify.txt b/templates/et/verify.txt
new file mode 100644
index 00000000..c34f99f2
--- /dev/null
+++ b/templates/et/verify.txt
@@ -0,0 +1,30 @@
+Listi %(listname)s tellimuse kinnitus.
+
+Keegi - tõenäoliselt teie ise - soovib teie aadressile
+"%(email)s" tellida listi %(listaddr)s.
+
+%(remote)s
+
+Kui soovite seda
+listi tellida, siis vastakse sellele kirjale jättes kirja
+teema ja sisu samaks (Re: võib teema alguses olla).
+
+Alternatiivina saab tellimust kinnitada ka veebilehel
+
+ %(confirmurl)s
+
+Kolmas võimalus on saata vastus sellele kirjale aadressile
+%(requestaddr)s, sel juhul peaks kirja sisu koosnema ühest
+reast:
+
+ confirm %(cookie)s
+
+Kui te ei soovi seda listi tellida, siis pole teil vaja
+midagi teha, selle kirja võib kustutada.
+
+Kui teil on põhjust arvata, et keegi üritab teile seda listi
+tellida ilma teie nõusolekuta, siis teatage sellest listi
+haldurile aadressil %(listadmin)s
+
+Listi halduri poole võib pöörduda ka teiste küsimustega,
+mis on seotud selle listiga.
diff --git a/templates/fi/admindbdetails.html b/templates/fi/admindbdetails.html
new file mode 100644
index 00000000..dd8e57ea
--- /dev/null
+++ b/templates/fi/admindbdetails.html
@@ -0,0 +1,63 @@
+<!-- $Revision: 5063 $ -->
+Ylläpitäjän pyynnöt kootaan yhdeksi kahdesta eri kohteesta, <a
+href="%(summaryurl)s">yhteenvetosivulta</a>,ja <em>details</em>
+yksityiskohtasivulta. Yhteenvetosivu sisältää vahvistusta odottamassa
+olevat listalle liittymis- ja irtisanoutumispyynnöt, sekä hyväksymistä
+odottavat postit, jotka on ryhmitelty lähettäjän osoitteen mukaan.
+Yksityiskohtasivu sisältää tarkemmat tiedot kaikista hyväksymistä
+odottavista viesteistä, sisältäen viestien otsikot ja osan viestin tekstiä.
+
+<p>Seuraavat toimenpiteet ovat mahdollisia kaikilla sivuilla:
+
+<ul>
+<li><b>Siirrä</b> -- Siirtää päätöksesi myöhemmäksi. Tälle odottavalle
+ ylläpitäjän vahvistuspyynnölle ei tehdä nyt mitään, paitsi jätetään
+ odottavaksi postiksi, voit silti ohjata viestin eteenpäin
+ tai säilyttää sen (katso allaolevaa).
+
+<p><li><b>Hyväksy</b> -- Hyväksy viesti lähettämällä se listalle.
+ Jäsenyyspyynnöissä, hyväksyy muutoksen jäsenyystietoihin.
+
+<p><li><b>Hylkää</b> -- Hylkää viestin, lähettää hylkäysilmoituksen
+ lähettäjälle ja poistaa alkuperäisen viestin. Jäsenyyspyynnöissä
+ hylkää muutoksen jäsenyystietoihin. Kummassakin tapauksessa,
+ pitää liittää mukaan teksti hylkäyksen syystä.
+
+<p><li><b>Poista</b> -- Poista alkuperäinen viesti, ilman että lähetetään
+ hylkäysilmoitusta. Jäsenyyspyynnöissä pelkästään hävitetään pyyntö
+ eikä ilmoiteta siitä pyynnön esittäjälle. Toimintoa
+ käytetään yleensä tunnetulle roska(mainos)postille.
+</ul>
+
+<p>Odottavissa viesteissä aseta päälle <b>Säilytä</b> valinta jos haluat
+säilyttää kopion viestistä ylläpitäjän sivulla. Toiminto on hyödyllinen
+loukkaavien postien kohdalla, jotka haluat tuhota, mutta joista sinun
+tarvitsee säilyttää tallennettua tietoa myöhempää tarkastelua varten.
+
+<p>Laita päälle <b>Lähetä eteenpäin</b> valinta, ja täytä vastaanottajan
+osoitekenttä, jos haluat lähettää viestin jolle kulle, joka ei kuulu
+listalle. Muuttaaksesi odottavaa viestiä ennen kuin se lähetetään listalle,
+sinun pitää lähettää sen ensin itsellesi (tai listan omistajille) ja
+hävittää alkuperäinen viesti. Sitten kun viesti näkyy viestilaatikossasi,
+tee muutoksesi ja lähetä viesti uudelleen listalle, siten että se sisältää
+<tt>Hyväksytty:</tt> otsikon sekä listan salasanan sen arvona. Se
+on kunnon netiketti tässä tapauksessa sisällyttää huomautus viestiin siitä
+närkästyksestä, että olet joutunut muuttamaan tekstiä.
+
+<p>Yhteenvetosivulla voit myös lisätä sähköpostin osoitteen
+<em>lähettäjä filterointiin</em>. Lähettäjä filtereitä on selitetty <a
+href="%(filterurl)s">lähettäjän filterointi yksilöintisivulla</a>, ja arvo
+voi olla yksi seuraavista:
+<b>Hyväksy
+automaatisesti</b> (Hyväksytyt), <b> Odottaa automaattisesti</b>
+(Odottavat),
+<b>Hylätään automaattisesti</b> (Hylätyt), tai <b>Tuhotaan automaattisesti
+</b> (Tuhotut). Tämä arvo ei ole mahdollinen, jos osoite on jo
+yksi lähettäjän filtterointi -osoite.
+
+<p>Kun olet saanut kaiken valmiiksi, klikkaa sivun
+ylä- tai alalaidassa sijaitsevaa <em>Hyväksy
+muutokset</em> näppäintä. Tämä näppäin suorittaa kaikki valitut
+toimenpiteet kaikille ylläpitäjän pyynnöille, joista olet päätöksen tehnyt.
+
+<p><a href="%(summaryurl)s">Paluu yhteenvetosivulle</a>.
diff --git a/templates/fi/admindbpreamble.html b/templates/fi/admindbpreamble.html
new file mode 100644
index 00000000..a0bbb7aa
--- /dev/null
+++ b/templates/fi/admindbpreamble.html
@@ -0,0 +1,57 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<!-- $Revision: 5063 $ -->
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <meta name="GENERATOR" content="Mozilla/4.7 [en] (WinNT; I) [Netscape]">
+ <title>admindbpreamble</title>
+</head>
+<body>
+T&auml;ll&auml; sivulla on nykyiset pyynn&ouml;t, jotka
+kaipaavat yll&auml;pit&auml;j&auml;n hyv&auml;ksymist&auml; postituslistalle
+<i>%(listaname)s</i>. Ensin n&auml;ytet&auml;&auml;n listat, joissa on
+j&auml;seneksi hyv&auml;ksymispyynt&ouml;j&auml; (jos niit&auml; yleens&auml;
+on), sen j&auml;lkeen n&auml;ytet&auml;&auml;n mik&auml;li postituslistoille
+on tulossa viestej&auml;, jotka odottavat hyv&auml;ksymist&auml;si.
+<p>Jokaiseen j&auml;seneksi hyv&auml;ksymispyynt&ouml;&ouml;n, valitse
+<b>Ev&auml;tty</b> tai
+<b>Hyv&auml;ksytty</b>. Jos ev&auml;&auml;t pyynn&ouml;n,
+voit halutessasi lis&auml;t&auml; oheiseen tekstilaatikkoon syyn miksi
+n&auml;in k&auml;vi.
+<p>Jokaisen odottavan postin kohdalla, valitse toiminto oheisesta listasta
+<ul>
+<li>
+<b>Lykk&auml;&auml;</b> - Lykk&auml;&auml;t p&auml;&auml;t&ouml;st&auml;si
+tuonnemmaksi. K&auml;yt&auml; t&auml;t&auml;, mik&auml;li haluat lyk&auml;t&auml;
+tai s&auml;ilytt&auml;&auml; (katso edemp&auml;n&auml;) viestin mutta et
+h&auml;vitt&auml;&auml; sit&auml; viel&auml;.</li>
+
+<li>
+<b>Hyv&auml;ksy</b> - Hyv&auml;ksy viesti ja l&auml;het&auml; se listalle.</li>
+
+<li>
+<b>Ev&auml;&auml;</b> - Ev&auml;&auml; viestin l&auml;hetys l&auml;hett&auml;m&auml;ll&auml;
+kieltop&auml;&auml;t&ouml;s l&auml;hett&auml;j&auml;lle. Alkuper&auml;inen
+viesti h&auml;vitet&auml;&auml;n.</li>
+
+<li>
+<b>Tuhoa</b> - Alkuper&auml;inen viesti tuhotaan ilman, ett&auml; l&auml;hett&auml;j&auml;lle
+menee asiasta tietoa. T&auml;m&auml; vaihtoehto on k&auml;yt&auml;nn&ouml;llinen
+roskapostille.</li>
+</ul>
+Valitse <b>S&auml;ilyt&auml;</b> vaihtoehto, jos haluat tallentaa kopion
+t&auml;st&auml; viestist&auml; yll&auml;pit&auml;j&auml;n sivulle. T&auml;m&auml;
+on k&auml;yt&auml;nn&ouml;llist&auml; loukkaavien viestien kohdalla. Valitse
+<b>J&auml;lleenl&auml;hetys</b> vaihtoehto ja t&auml;yt&auml; kentt&auml;
+kenelle viesti l&auml;hetet&auml;&auml;n, jos haluat l&auml;hett&auml;&auml;
+viestin jollekin, joka ei kuulu listalle.
+<p>Kun olet saanut kaiken valmiiksi, klikkaa t&auml;m&auml;n sivun yl&auml;-
+tai alalaidassa olevaa <i>Hyv&auml;ksy muutokset</i> valintaa. T&auml;m&auml;
+valinta toteuttaa kaikki yll&auml;pit&auml;j&auml;n valitsemat toiminnot,
+jotka olet halunnut suoritettaviksi. Jos et halua tehd&auml; valintaa jonkin
+pyynn&ouml;n suhteen, j&auml;t&auml; kaikki valintakent&auml;t tyhjiksi,
+t&auml;ll&ouml;in ko. pyynt&ouml;&auml; ei poisteta odottavasta tietokannasta.
+Voit my&ouml;s
+<br>&nbsp;
+</body>
+</html>
diff --git a/templates/fi/admindbsummary.html b/templates/fi/admindbsummary.html
new file mode 100644
index 00000000..b29b23bc
--- /dev/null
+++ b/templates/fi/admindbsummary.html
@@ -0,0 +1,17 @@
+<!-- $Revision: 5063 $ -->
+Tällä sivulla on lista toimiasi vaativista
+ylläpitopyynnöistä
+
+<a href="%(adminurl)s"><em>%(listname)s</em> mailing list</a>.
+
+Ensin on lista liittymis ja eroamispyynnöistä, jos niitä on.
+
+Seuraavaksi on lista viesteistä, jotka vaativat hyväksyntäsi.
+
+<p>Valitse toiminta jokaiselle ylläpitotoimelle ja klikkaa
+<b>Submit All Data</b> button when finished.
+
+<a href="%(detailsurl)s">Lisäohjeita</a> on myös saatavilla.
+
+<p>Voit myös <a href="%(viewallurl)s"> tutustua tarkemmin</a>
+kaikkiin toimenpiteitä vaativiin viesteihin.
diff --git a/templates/fi/adminsubscribeack.txt b/templates/fi/adminsubscribeack.txt
new file mode 100644
index 00000000..6d1e9777
--- /dev/null
+++ b/templates/fi/adminsubscribeack.txt
@@ -0,0 +1,3 @@
+%(member)s on onnistuneesti liitetty listalle %(listname)s.
+
+
diff --git a/templates/fi/adminunsubscribeack.txt b/templates/fi/adminunsubscribeack.txt
new file mode 100644
index 00000000..b3d58119
--- /dev/null
+++ b/templates/fi/adminunsubscribeack.txt
@@ -0,0 +1,2 @@
+%(member)s on eronnut listalta %(listname)s.
+
diff --git a/templates/fi/admlogin.html b/templates/fi/admlogin.html
new file mode 100644
index 00000000..52ee1f16
--- /dev/null
+++ b/templates/fi/admlogin.html
@@ -0,0 +1,41 @@
+<!-- $Revision: 5063 $ -->
+<html>
+<head>
+ <title>%(listname)s %(who)s Authentication</title>
+</head>
+<body bgcolor="#ffffff">
+<FORM METHOD=POST ACTION="%(path)s">
+%(message)s
+ <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1">%(listname)s %(who)s
+ sisäänkirjautuminen</FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <TD><div ALIGN="Right">Listan %(who)s Salasana:</div></TD>
+ <TD><INPUT TYPE="password" NAME="adminpw" SIZE="30"></TD>
+ </tr>
+ <tr>
+ <td colspan=2 align=middle><INPUT type="SUBMIT"
+ name="admlogin"
+ value="Sisään ...">
+ </td>
+ </tr>
+ </TABLE>
+ <p><strong><em>Tärkeää:</em></strong> Tästä eteenpäin
+ sinulla pitää olla evästeet sallittuna selaimessasi,
+ muutoin haluamasi muutokset eivät tallennu.
+
+ <p>Istuntokohtaiset evästeet ovat käytössä Mailman
+ - ohjelmiston ylläpitosivuilla, joten sinun ei tarvitse
+ kirjautua erikseen joka ylläpitosivulle.
+ Eväste tuhoutuu automaattisesti selain-istunnon päätteeksi.
+ Jos haluat evästeen tuhoutuvan aikaisemmin, tämä
+ onnistuu <em>Lopeta</em> linkkiä painamalla
+ <em> kohdassa muut Ylläpitotoimet</em>
+ (jonka näet onnistuneen sisäänkirjautumisen jälkeen).
+</FORM>
+</body>
+</html>
diff --git a/templates/fi/approve.txt b/templates/fi/approve.txt
new file mode 100644
index 00000000..2fff22ae
--- /dev/null
+++ b/templates/fi/approve.txt
@@ -0,0 +1,17 @@
+Pyyntösi osoitteeseen %(requestaddr)s:
+
+ %(cmd)s
+
+on edelleenohjattu listan ylläpitohenkilöille.
+
+Tämä johtuu todennäköisesti siitä, että olet
+yrittänyt liittyä ylläpitäjän hyväksyntää
+vaativalle listalle.
+
+Tulet saamaan sähköpostitse listan ylläpitäjän päätöksen
+listalle liittymisestäsi.
+
+Lisäkysymykset asiasta voit osoittaa listan ylläpitäjälle
+osoitteeseen:
+
+ %(adminaddr)s
diff --git a/templates/fi/article.html b/templates/fi/article.html
new file mode 100644
index 00000000..14635df4
--- /dev/null
+++ b/templates/fi/article.html
@@ -0,0 +1,49 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!-- $Revision: 5063 $ -->
+<HTML>
+ <HEAD>
+ <TITLE> %(title)s
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:%(email_url)s">
+ <META NAME="robots" CONTENT="index,nofollow">
+ %(encoding)s
+ %(prev)s
+ %(next)s
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>%(subject_html)s
+ </H1>
+ <B>%(author_html)s
+ </B>
+ <A HREF="mailto:%(email_url)s"
+ TITLE="%(subject_html)s">%(email_html)s
+ </A><BR>
+ <I>%(datestr_html)s</I>
+ <P><UL>
+ %(prev_wsubj)s
+ %(next_wsubj)s
+ <LI> <B>Viestien lajittelu:</B>
+ <a href="date.html#%(sequence)s">[ päiväys ]</a>
+ <a href="thread.html#%(sequence)s">[ säie ]</a>
+ <a href="subject.html#%(sequence)s">[ otsikko ]</a>
+ <a href="author.html#%(sequence)s">[ kirjoittaja ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+%(body)s
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ %(prev_wsubj)s
+ %(next_wsubj)s
+ <LI> <B>Viestien lajittelu:</B>
+ <a href="date.html#%(sequence)s">[ päiväys ]</a>
+ <a href="thread.html#%(sequence)s">[ säie ]</a>
+ <a href="subject.html#%(sequence)s">[ otsikko ]</a>
+ <a href="author.html#%(sequence)s">[ kirjoittaja ]</a>
+ </LI>
+ </UL>
+</body></html>
diff --git a/templates/fi/bounce.txt b/templates/fi/bounce.txt
new file mode 100644
index 00000000..72934015
--- /dev/null
+++ b/templates/fi/bounce.txt
@@ -0,0 +1,12 @@
+Tämä on Mailman postituslistan kokeilu??toimenpide tiedotus:
+
+ Lista: %(listaname)s
+ Jäsen: %(addr)s
+ Toimenpide: Liittyminen %(negative)s%(did)s
+ Syy: Liialliset tai tuhoisat kokeilut?
+
+%(reenable)s
+Syntyneet kokeilu??huomautukset ovat ohessa liitteenä.
+
+Kysymyksiä?
+Ottakaa yhteyttä Mailman sivuille listan ylläpitäjään %(owneraddr)s.
diff --git a/templates/fi/checkdbs.txt b/templates/fi/checkdbs.txt
new file mode 100644
index 00000000..5c172113
--- /dev/null
+++ b/templates/fi/checkdbs.txt
@@ -0,0 +1,6 @@
+%(real_name)s@%(host_name)s postituslistalla on %(count)d
+pyyntöä odottamassa käsittelyäsi:
+
+ %(adminDB)s
+Hoida nämä ensi tilassa. Ilmoitus kesken olevista
+pyynnöistä, jos niitä on, lähetetään päivittäin.
diff --git a/templates/fi/convert.txt b/templates/fi/convert.txt
new file mode 100644
index 00000000..4a66d95b
--- /dev/null
+++ b/templates/fi/convert.txt
@@ -0,0 +1,41 @@
+%(listname)s postituslistalle on juuri suoritettu iso muutos.
+Se käyttää uutta postituslistaohjelmaa nimeltään "Mailman".
+Tämä toivottavasti ratkaisee monia ongelmia, joita on
+ilmennyt tämän palvelun ylläpidossa.
+
+Miten tämä vaikuttaa?
+
+1) Koko listalle tarkoitetut viestit tulee lähettää:
+
+%(listaddr)s.
+
+2) Sinulle on lähetetty umpimähkäinen salasana, jotta
+estettäisiin muita irtisanomasta sinua listalta tietämättäsi.
+Se lähetetään sinulle erillisenä viestinä, jonka olet jo saanut.
+Älä huolestu, jos unohdat tämän salasanan, sillä siitä
+lähetetään sinulle muistutus sähköpostiisi joka kuukausi.
+
+3) Jos sinulla on www-yhteys, voit käyttää sitä koska tahansa
+sanoutuaksesi irti listalta, vaihtaaksesi koostetilaa,
+tarkistaaksesi listalla ennen olleita aiheita
+(jotka ovat saatavilla kun listalle on tullut n. päivän
+ajalta viestejä), jne. WWW-osoite näille toiminnoille on:
+
+ %(listinfo_url)s
+
+4) Ellei sinulla ole www-yhteyttä, voit suorittaa nämä samat
+toiminnot sähköpostin avulla. Lähetä viesti osoitteeseen
+%(requestaddr)s laittamalla joko otsikkokenttään tai
+viestikenttään sana "help" (ilman lainausmerkkejä).
+Saat automaattisen vastauksen, joka sisältää tarkemmat ohjeet.
+
+Ole hyvä ja osoita kaikki kysymykset tai ongelmat tästä
+uudesta systeemistä osoitteeseen:
+
+%(adminaddr)s.
+
+Tämä viesti oli automaattisesti luotu Mailman %(version)s.
+Saadaksesi enemmän tietoa Mailman ohjelmistosta, vieraile
+Mailman-ohjelmiston kotisivulla osoitteessa:
+
+http://www.list.org/
diff --git a/templates/fi/cronpass.txt b/templates/fi/cronpass.txt
new file mode 100644
index 00000000..77bb6a10
--- /dev/null
+++ b/templates/fi/cronpass.txt
@@ -0,0 +1,19 @@
+Tämä on sinulle kuukausittain lähetettävä muistutus %(hostname)s
+-postituslistojen jäsenyydestä. Se sisältää sisäänkirjautumistietosi
+sekä ohjeet siitä, miten voit muuttaa niitä tai irtisanoutua listalta.
+
+Voit käydä URL-osoitteessa muuttamassa jäsenyysasetuksiasi. Esim. voit
+irtisanoutua listalta, muuttaa koostelähetyksen asetusta
+tai kieltää kaikkien postien vastaanoton (esim. loman ajaksi) jne.
+
+URL-osoitteessa sijaitsevien toimintojen sijasta voit käyttää myös
+sähköpostiasi yllälueteltujen toimintojen suorittamiseen. Lisätietoja
+saadaksesi, lähetä viesti listan "-pyyntö" -osoitteeseen (esim. %(exreq)s)
+siten, että laitat viestikenttään ainoastaan sanan 'help'. Sinulle lähetetään
+viesti tarkemmista ohjeista.
+
+Jos sinulla on kysymyksiä, ongelmia, kommentteja jne. lähetä ne
+%(owner)s. Kiitos!
+
+Salasana %(useraddr)s:
+
diff --git a/templates/fi/disabled.txt b/templates/fi/disabled.txt
new file mode 100644
index 00000000..7296c62d
--- /dev/null
+++ b/templates/fi/disabled.txt
@@ -0,0 +1,25 @@
+Jäsenyytesi postituslistalla %(listname)s on suljettu
+johtuen liiallisesta postin lähetyksestä???!!!. Et saa enää viestejä
+tältä listalta ennen kuin uudistat jäsenyytesi. Tulet saamaan
+%(noticesleft)s tämän kaltaisia huomautusviestejä siihen
+saakka kun jäsenyytesi listalta poistetaan.
+
+Voit saattaa jäsenyytesi taas voimaan yksinkertaisesti vastaamalla tähän
+viestiin (jätä Subject-kenttä: tyhjäksi) tai pistäytymällä varmistussivulla
+
+ %(confirmurl)s
+
+Voit pistäytyä myös jäsenyyssivullasi
+
+ %(optionsurl)s
+
+Voit jäsenyyssivullasi vaihtaa useita lähetysasetuksia kuten
+sähköpostiosoitettasi ja sitä saatko koostelähetyksiä vai et.
+Muistutukseksi salasanasi on:
+
+ %(password)s
+
+Mahdollisissa kysymyksissä ja ongelmissa voit ottaa yhteyttä
+listan omistajaan
+
+ %(owneraddr)s
diff --git a/templates/fi/headfoot.html b/templates/fi/headfoot.html
new file mode 100644
index 00000000..971671d4
--- /dev/null
+++ b/templates/fi/headfoot.html
@@ -0,0 +1,44 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<!-- $Revision: 5063 $ -->
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <meta name="GENERATOR" content="Mozilla/4.7 [en] (WinNT; I) [Netscape]">
+ <title>headfoot</title>
+</head>
+<body>
+??????
+<br>T&auml;m&auml; teksti voi sis&auml;lt&auml;&auml; %(attribute)s muotoiltuja
+merkkijonoja, jotka kumoavat listojen ominaisuudet. Lis&auml;tietoja
+saadaksesi, katso
+<br><a href="http://www.python.org/doc/current/lib/typesseq-strings.html">Pythonin
+merkkijonomuotoilun s&auml;&auml;nn&ouml;t </a>. Muutamia hy&ouml;dyllisi&auml;
+ominaisuuksia ovat:
+<br>
+<ul>
+<li>
+real_name - Listan "kaunis" nimi, normaalisti nimi, jolle listan asia on
+"omistettu"</li>
+
+<li>
+_internal_name - Nimi, jolla lista tunnistetaan URL-osoitteena, jossa asia
+on merkitt&auml;v&auml;</li>
+
+<li>
+host_name - T&auml;ydellisesti m&auml;&auml;ritelty toimialuenimi palvelimelle,
+jossa lista sijaitsee</li>
+
+<li>
+web_page_url - Mailman p&auml;&auml;sivun url-osoite. T&auml;h&auml;n voidaan
+lis&auml;t&auml; esim. listinfo/%(_internal_name)s, jolla p&auml;&auml;see
+suoraan postituslistan listinfo-sivulle</li>
+
+<li>
+description - Lyhyt kuvaus postituslistan k&auml;ytt&ouml;tarkoituksesta</li>
+
+<li>
+info - T&auml;ydellinen kuvaus postituslistasta</li>
+</ul>
+
+</body>
+</html>
diff --git a/templates/fi/help.txt b/templates/fi/help.txt
new file mode 100644
index 00000000..6637b7de
--- /dev/null
+++ b/templates/fi/help.txt
@@ -0,0 +1,107 @@
+Käyttöohje postituslistalle %(listname)s :
+
+Tämä on sähköpostipohjainen opastus version %(version)s "Mailman"
+postituslistapalvelimen ylläpitäjälle. Seuraavassa kuvataan
+komennot jotka voit lähettää sähköpostilla saadaksesi tietoja
+postituslistasta tai ohjataksesi listalle liittymiskomentoja.
+
+Komennot voivat olla joko viestin otsikossa tai tekstikentässä.
+
+Huomioi, että voit tehdä saman myös www-sivun kautta:
+
+ %(listinfo_url)s
+
+Etenkin kun haluat saada unohtamasi listan salasanan voit käyttää
+www-sivua salasanan lähettämiseen sähköpostiisi.
+
+Postituslistakohtaiset komennot (subscribe, who, jne) pitäisi lähettää
+listan *-request -alkuiseen osoitteeseen. Esim. jos listan nimi on
+'mailman' niin käytä osoitetta 'mailman-request@...'.
+
+Allaolevassa kuvauksessa - sanat jotka ovat "<>" -merkkien sisällä
+ovat PAKOLLISIA ja sanat "[]" -merkkien sisällä ovat VALINNAISIA.
+Älä laita sanojen ympärille ohjeissa olevia "<>" tai "[]" -merkkejä
+kun käytät komentoja.
+
+Seuraavassa käytettävät komennot:
+
+ subscribe [password] [digest-option] [address=<address>]
+ Postituslistalle liittyminen. Anna haluamasi salasana.
+ Salasanaa tarvitset listalta erotessasi tai muuttaessasi
+ määrityksiäsi listalla. Kun olet liittynyt listalle,
+ sinulle lähetetään säännöllisesti muistutus salasanastasi.
+ 'digest-määre' voi olla joko: 'nodigest' tai 'digest'
+ (ilman heittomerkkejä). Jos haluat liittyä listalle
+ muusta sähköpostiosoitteesta kuin tästä mistä lähetät
+ pyynnön niin määrittele liitettävä sähköpostiosoitteesi
+ määreellä "address=<sähköpostiosoite>" (ilman
+ lainausmerkkejä!)
+
+ unsubscribe <password> [address]
+ Postituslistalta eroaminen. Sinun täytyy antaa saamasi
+ salasana erotessasi listalta. Jos yrität erota listalta
+ toisesta sähköpostiosoitteesta niin sinun täytyy käyttää
+ 'address' -määrettä.
+
+ who
+ Näyttää listalle liittyneet.
+
+ info
+ Näyttää listan esittelyn.
+
+ lists
+ Näyttää tällä postituslistapalvelimella olevat sähköpostilistat.
+
+ help
+ Näyttää tämän ohjetiedoston.
+
+ set <option> <on|off> <password>
+ Laittaa päälle(on) tai pois(off) lisämääreitä. Käytössä
+ olevat lisämääreet ovat:
+
+ ack:
+ Laita tämä päälle(on) saadaksesi kuittauksen listalle
+ lähettämästäsi viestistä.
+
+ digest:
+ Vastaanota posti koottuna pakettina yksittäisten viestien
+ sijaan.
+
+ plain:
+ Get plain-text, not MIME-compliant, digests (only if
+ digest is set)
+
+ nomail:
+ Pysäyttää viestien tulon listalta. Hyödyllinen esimerkiksi
+ lomien aikana.
+
+
+ norcv:
+ Laita tämä päälle(on) estääksesi itse listalle lähettämäsi
+ postin tulo sinulle itselle (kopion tulo).
+ Määre ei toimi, jos 'digest' -määre on päällä.
+
+ hide:
+ Piilottaa sinun sähköpostiosoitteesi postituslistalle
+ liittyneiden joukosta.
+
+
+ options
+ Näyttää voimassa olevat lista-asetuksesi.
+
+ password <oldpassword> <newpassword>
+ Vaihtaa listan salasanasi.
+
+ end tai --
+ Pysäyttää komentojen käsittelyn. (hyvä jos sinulla on esimerkiksi
+ allekirjoitus viestissäsi tai automaattinen allekirjoituksen lisäys)
+ automatically adds a signature file - it'll save you from a lot
+ of cruft).
+
+
+Ohjauskomennot tulee lähettää osoitteeseen %(requestaddr)s
+
+Henkilökohtaiset yhteydenotot listan ylläpitäjiin sähköpostitse
+osoitteeseen:
+
+ %(adminaddr)s
diff --git a/templates/fi/listinfo.html b/templates/fi/listinfo.html
new file mode 100644
index 00000000..1f437ad0
--- /dev/null
+++ b/templates/fi/listinfo.html
@@ -0,0 +1,147 @@
+<!-- $Revision: 5063 $ -->
+<HTML>
+ <HEAD>
+ <TITLE><MM-List-Name> Info Page</TITLE>
+
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+
+ <P>
+ <TABLE COLS="1" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1"><MM-List-Name> --
+ <MM-List-Description></FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <p>&nbsp;
+ </td>
+ </tr>
+ <tr>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000">Tietoja listasta <MM-List-Name></FONT></B>
+ </TD>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <MM-lang-form-start><MM-displang-box> <MM-list-langs>
+ <MM-form-end>
+ <MM-Subscribe-Form-Start>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <P><MM-List-Info></P>
+ <p> Nähdäksesi listalle aikaisemmin lähetetyt viestit,
+ siirry <MM-Archive><MM-List-Name>
+ arkistoon</MM-Archive>.
+ <MM-Restricted-List-Message>
+ </p>
+ </TD>
+ </TR>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000">Listan käyttäminen <MM-List-Name></FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ Postittaaksesi viestin kaikille listan jäsenille, lähetä
+ viesti osoitteeseen
+ <A HREF="mailto:<MM-Posting-Addr>"><MM-Posting-Addr></A>.
+
+ <p>Voit liittyä listalle tai muuttaa asetuksiasi
+ allaolevassa kappaleessa.
+ </td>
+ </tr>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000">Listalle <MM-List-Name> liittyminen</FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <P>
+ Liity listalle <MM-List-Name> täyttämällä oheinen lomake.
+ <MM-List-Subscription-Msg>
+ <ul>
+ <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"
+ WIDTH="70%" HEIGHT= "112">
+ <TR>
+ <TD BGCOLOR="#dddddd" WIDTH="55%">Sähköpostiosoitteesi:</TD>
+ <TD WIDTH="33%"><MM-Subscribe-Box>
+ </TD>
+ <TD WIDTH="12%">&nbsp;</TD></TR>
+ <tr>
+ <td bgcolor="#dddddd" width="55%">Nimesi (vapaaehtoinen):</td>
+ <td width="33%"><mm-fullname-box></td>
+ <TD WIDTH="12%">&nbsp;</TD></TR>
+ <TR>
+ <TD COLSPAN="3"><FONT SIZE=-1>Voit antaa tähän salasanan
+ asetustesi ylläpitoa varten. Tämä salasanan suojaus
+ järjestelmässä on heikko, mutta se estää muita käyttäjiä
+ pääsemästä tahattomasti listalla oleviin tietoihisi käsiksi.
+ <b>Älä käytä tässä samaa salasanaa, jota käytät tärkeiden
+ asioiden suojaamiseen</b> sillä salasana lähetetään
+ tarvittaessa sinulle
+ suojaamattomana sähköpostiviestinä.
+
+ <p>Jos et täytä salasanakenttää niin järjestelmä
+ generoi automaattisesti sinulle salasanan.
+ Salasana lähetetään sinulle sähköpostilla,
+ kun olet vahvistanut listalle liittymisesi.
+ Voit aina pyytää järjestelmää lähettämään salasanasi
+ sähköpostitse, jolloin voit muuttaa omia
+ postituslista-asetuksiasi.
+ <MM-Reminder>
+ </TD>
+ </TR>
+ <TR>
+ <TD BGCOLOR="#dddddd">Valitse salasana:</TD>
+ <TD><MM-New-Password-Box></TD>
+ <TD>&nbsp;</TD></TR>
+ <TR>
+ <TD BGCOLOR="#dddddd">Valittu salasana uudestaan:</TD>
+ <TD><MM-Confirm-Password></TD>
+ <TD>&nbsp; </TD></TR>
+ <tr>
+ <TD BGCOLOR="#dddddd">Millä kielellä haluat ohjeet ja lomakkeet?</TD>
+ <TD> <MM-list-langs></TD>
+ <TD>&nbsp; </TD></TR>
+ <tr>
+ <td>Haluatko vastaanottaa listan viestit päivittäisenä kokoelmana yksittäisten
+ viestien sijaan?
+ </td>
+ <td><MM-Undigest-Radio-Button> Ei
+ <MM-Digest-Radio-Button> Kyllä
+ </TD>
+ </tr>
+ <tr>
+ <td colspan="3">
+ <center><MM-Subscribe-Button></P></center>
+ </TABLE>
+ <MM-Form-End>
+ </ul>
+ </td>
+ </tr>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <a name="subscribers">
+ <B><FONT COLOR="#000000"><MM-List-Name> Listalle liittyneet</FONT></B></a>
+ </TD>
+ </TR>
+ <tr>
+ <TD COLSPAN="2" WIDTH="100%">
+ <MM-Roster-Form-Start>
+ <MM-Roster-Option>
+ <MM-Form-End>
+ <p>
+ <MM-Options-Form-Start>
+ <MM-Editing-Options>
+ <MM-Form-End>
+ </td>
+ </tr>
+ </table>
+<MM-Mailman-Footer>
+</BODY>
+</HTML>
diff --git a/templates/fi/masthead.txt b/templates/fi/masthead.txt
new file mode 100644
index 00000000..c4603446
--- /dev/null
+++ b/templates/fi/masthead.txt
@@ -0,0 +1,18 @@
+Lähetä %(real_name)s postituslistalle lähetetyt viestit
+hyväksyttäväksi
+ %(got_list_email)s
+
+Liittyäksesi tai irtisanoutuaksesi listalta www-yhteyden
+kautta, vieraile
+ %(got_listinfo_url)s
+tai jos käytät sähköpostia niin kirjoita otsikko- tai
+viestikenttään sana
+'help' ja lähetä se
+ %(got_request_email)s
+
+Saat yhteyden listan ylläpitäjään
+ %(got_owner_email)s
+
+Kun vastaat listalle, muokkaa Otsikko-kenttää siten,
+että sopii paremmin kuin
+"Re: Kokoelman %(real_name)s sisältö..."
diff --git a/templates/fi/newlist.txt b/templates/fi/newlist.txt
new file mode 100644
index 00000000..8e9ae873
--- /dev/null
+++ b/templates/fi/newlist.txt
@@ -0,0 +1,42 @@
+Pyytämäsi postituslista `%(listname)s' on luotu.
+Seuraavassa perustietoa postituslistastasi.
+
+Postituslistasi ylläpitosalasana on:
+
+ %(password)s
+
+Tarvitset tätä salasanaa postituslistan konfigurointiin.
+Sinä tarvitset tätä salasanaa myös ylläpitokomentoihin,
+kuten esimerkiksi postituslistalle tulevien viestien
+hyväksymiseen, jos käytössä on toimitettu postituslista.
+
+Voit konfiguroida postituslistaasi www-sivulla:
+
+ %(admin_url)s
+
+Postituslistasi www-sivu käyttäjille on:
+
+ %(listinfo_url)s
+
+Sinä voit tarvittaessa muuttaa näitä sivuja postituslistan
+konfigurointisivulta. Sivujen muuttaminen edellyttää sinulta
+HTML taitoja.
+
+Listan käyttäjien on myös mahdollista ohjata listaa sähköpostikomennoilla.
+Listan ylläpitotoimia ei voi tehdä sähköpostikomennoilla.
+
+Lisätietoja komennoista saat lähettämällä sähköpostiviestin
+`help' joko viestin otsikoksi tai viestikenttään. Lähetä
+help-pyyntö sähköpostiosoitteeseen:
+
+ %(requestaddr)s
+
+Poistaaksesi käyttäjä postituslista, mene listan 'listinfo'
+www-sivulle. Anna poistettavan käyttäjän sähköpostiosoite
+aivan kuten olisit ko. käyttäjä.
+Kirjoita salasanakenttää salasanan tilalle listan ylläpidon salasana.
+
+Vastaavalla tavalla voit muuttaa myös muita käyttäjän asetuksia.
+
+Lisätietoja ja opastusta voit kysyä postituslistapalvelimen
+ylläpidolta %(siteowner)s.
diff --git a/templates/fi/options.html b/templates/fi/options.html
new file mode 100644
index 00000000..95d2dd6f
--- /dev/null
+++ b/templates/fi/options.html
@@ -0,0 +1,288 @@
+<!-- $Revision: 5063 $ -->
+<html>
+<head>
+ <title><MM-Presentable-User> membership configuration for <MM-List-Name>
+ </title>
+</head>
+<BODY BGCOLOR="#ffffff">
+ <TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#99CCFF"><B>
+ <FONT COLOR="#000000" SIZE=+1>
+ <MM-List-Name> Postituslistan jäsenyyden asetukset
+ <MM-Presentable-User>
+ </FONT></B></TD></TR>
+ </TABLE>
+<MM-Form-Start>
+<p>
+<table width="100%" border="0" cellspacing="5" cellpadding="5">
+ <tr><td>
+ <b><MM-Presentable-User></b>'s liittymistilanne,
+ salasana, ja postituslistan <MM-List-Name> asetukset.
+ </td><td><mm-logout-button></td>
+ </tr><tr>
+ <td colspan="2">
+ <MM-Case-Preserved-User>
+
+ <MM-Disabled-Notice>
+
+ <p><mm-results>
+ </td>
+ </tr>
+</table>
+
+<p>
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#FFF0D0" colspan="2">
+ <FONT COLOR="#000000">
+ <B>Jäsentietojen <MM-List-Name> muuttaminen</B>
+ </FONT></TD></TR>
+ <tr><td colspan="2">Voit vaihtaa osoitettasi, jolla olet liittynyt postituslistalle,
+ kirjoittamalla uuden osoitteen alapuolella olevaan kenttään. Huomioi, että tulet saamaan
+ vahvistuspyynnön uuteen osoitteeseesi ja muutos pitää hyväksyä, ennen kuin se suoritetaan.
+
+ <p>Confirmations time out after about <mm-pending-days>.
+
+ <p>Voit myös halutessasi asettaa tai vaihtaa nimesi.
+ (esim. <em>Ville Virtanen</em>).
+
+ <p>Jos haluat tehdä jäsenyystietojesi muutoksen kaikille listoille, joille olet liittynyt
+ <mm-host>, laita rasti
+ <em>Muuta kaikkiin</em> ruutuun.
+
+ </td></tr>
+ <tr><td><center>
+ <table border="0" cellspacing="2" cellpadding="2" width="80%" cols="2">
+ <tr><td bgcolor="#dddddd"><div align="right">Uusi osoite:</div></td>
+ <td><mm-new-address-box></td>
+ </tr>
+ <tr><td bgcolor="#dddddd"><div align="right">Uusi osoite uudestaan:
+ </div></td>
+ <td><mm-confirm-address-box></td>
+ </tr>
+ </tr></table></center>
+ </td>
+ <td><center>
+ <table border="0" cellspacing="2" cellpadding="2" width="80%" cols="2">
+ <tr><td bgcolor="#dddddd"><div align="right">Nimi
+ (vapaaehtoinen):</div></td>
+ <td><mm-fullname-box></td>
+ </tr>
+ </table></center>
+ </td>
+ </tr>
+ <tr><td colspan="2"><center><mm-change-address-button>
+ <p><mm-global-change-of-address>Muuta kaikkiin listoihin</center></td>
+ </tr>
+</table>
+
+<p>
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="5" CELLPADDING="5">
+ <TR><TD WIDTH="50%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>Eroaminen <MM-List-Name></B></td>
+
+ <TD WIDTH="50%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>Näytä muut <MM-Host> liittymätiedot</B>
+ </FONT></TD></TR>
+
+ <tr><td>
+ Aseta liittymistarkistusnappi??? aktiiviseksi ja paina tätä nappia
+ erotaksesi tältä postituslistalta. <strong>Varoitus:</strong>
+ Tämä toimenpide suoritetaan välittömästi!
+ <p>
+ <center><MM-Unsubscribe-Button></center></td>
+ <td>
+ Voit katsoa millä <mm-host> postituslistoilla, joissa olet jäsenenä.
+ Käytä tätä, mikäli haluat tehdä samat jäsenyystietojen muutokset myös muille postituslistoille,
+ joille olet liittynyt.
+
+ <p>
+ <center><MM-Other-Subscriptions-Submit></center>
+ </TD></TR>
+</table>
+
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD COLSPAN=2 WIDTH="100%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B><MM-List-Name> Salasana</B>
+ </FONT></TD></TR>
+
+ <tr valign="TOP"><td WIDTH="50%">
+ <a name=reminder>
+ <center>
+ <h3>Oletko unohtanut salasanasi?</h3>
+ </center>
+ Paina tätä valintaa, niin salasanasi lähetetään siihen osoitteeseen,
+ jonka olet ilmoittanut listalle liittyessäsi.
+ <p><MM-Umbrella-Notice>
+ <center>
+ <MM-Email-My-Pw>
+ </center>
+ </td>
+
+ <td WIDTH="50%">
+ <a name=changepw>
+ <center>
+ <h3>Vaihda salasana</h3>
+ <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2" WIDTH="70%" COLS=2>
+ <TR><TD BGCOLOR="#dddddd"><div align="right">Uusi
+ salasana:</div></TD>
+ <TD><MM-New-Pass-Box></TD>
+ </TR>
+ <TR>
+ <TD BGCOLOR="#dddddd"><div align="right">Uusi
+ salasana uudestaan:
+ </div></TD>
+ <TD><MM-Confirm-Pass-Box></TD>
+ </TR>
+ </table>
+
+ <MM-Change-Pass-Button>
+ <p><center><mm-global-pw-changes-button>Muuta kaikkiin.
+ </center>
+</TABLE>
+
+<p>
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B><MM-List-Name> Postituslistan jäsenkohtaiset määritykset</B>
+ </FONT></TD></TR>
+</table>
+
+<p>
+<i><strong>Nykyiset arvot on tarkistettu.</strong></i>
+
+<p>Huomioi, että joissakin valinnoissa on <em>Muuta kaikkiin</em>
+määritysmahdollisuus. Tämän kentän rastittaminen aiheuttaa sen, että muutokset tehdään
+kaikille <mm-host> postituslistoille, joihin olet liittynyt. Klikkaa ylläolevaa
+<em>Näytä muut liittymätiedot</em> -valintaa nähdäksesi, mille muille postituslistoille
+olet liittynyt.
+<p>
+<TABLE BORDER="0" CELLSPACING="3" CELLPADDING="4" WIDTH="100%">
+ <tr><TD BGCOLOR="#cccccc">
+ <a name="disable">
+ <strong>Viestin lähetys</strong></a><p>
+ Aseta tämän arvoksi <em>Päällä</em> saadaksesi tälle listalle
+ lähetetyt viestit. Aseta arvoksi <em>Pois</em> jos et
+ halua saada vähään aikaan viestejä itsellesi (esim. lähdet
+ lomalle). Mikäli asetat viestien tulon pois päältä, älä unohda
+ loman jälkeen laittaa sitä takaisin päälle!
+ </td><td bgcolor="#cccccc">
+ <mm-delivery-enable-button>Päällä<br>
+ <mm-delivery-disable-button>Pois<p>
+ <mm-global-deliver-button><i>Muuta kaikkiin</i>
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Koontitilan asetus</strong><p>
+ Jos asetat koontitilan päälle,
+ saat postisi koostettuna yhdeksi kokoelmaviestiksi
+ kerran päivässä, etkä erikseen jokaista lähetettyä postia. Jos koontitila
+ muutetaan pois päältä, saat viimeisen koontilähetyksen heti.
+ </td><td bgcolor="#cccccc">
+ <MM-Undigest-Radio-Button>Pois<br>
+ <MM-Digest-Radio-Button>Päällä
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>MIME-tyyliset tai tavalliset tekstikoonnit</strong><p>
+ Sähköpostiohjelmistosi joko tukee tai ei tue MIME-tyylisiä koonteja. Yleensä
+ MIME-tyyliset koonnit ovat parempia, mutta jos esiintyy ongelmia niiden
+ lukemisessa, valitse pelkät tekstikoonnit.
+ </td><td bgcolor="#cccccc">
+ <MM-Mime-Digests-Button>MIME<br>
+ <MM-Plain-Digests-Button>Teksti
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Haluatko saada listalle lähettämäsi postit itse?</strong><p>
+ Tavallisesti saat kopion jokaisesta tälle listalle lähettämästäsi viestistä.
+ Jos et halua saada kopiota omista viesteistäsi, aseta
+ arvoksi <em>Ei</em>.
+ </td><td bgcolor="#cccccc">
+ <mm-dont-receive-own-mail-button>Ei<br>
+ <mm-receive-own-mail-button>Kyllä
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Haluatko saada kuittauksen listalle lähettämästäsi viestistä?</strong><p>
+ </td><td bgcolor="#cccccc">
+ <mm-dont-ack-posts-button>Ei<br>
+ <mm-ack-posts-button>Kyllä
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>Lähetetäänkö tämän listan salasanasta muistutus?</strong><p>
+ Kerran kuukaudessa saat viestin, joka sisältää kaikkien niiden postituslistojen
+ salasanat, joille olet tällä postituslistapalvelimella liittynyt.
+ Voit asettaa tämän muistutuspyynnön pois päältä tietylle listalle, valitsemalla
+ <em>Ei</em>. Jos asetat salasanamuistuksen pois päältä kaikista listoista,
+ joille olet liittynyt, et saa ollenkaan salasanamuistusviestiä.
+ </td><td bgcolor="#cccccc">
+ <mm-dont-get-password-reminder-button>Ei<br>
+ <mm-get-password-reminder-button>Kyllä<p>
+ <mm-global-remind-button><i>Muuta kaikkiin</i>
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Piiloutuminen jäsenlistalta?</strong><p>
+ Kun joku katselee listan jäsenluetteloa, normaalisti sähköpostiosoitteesi
+ näkyy (in an obscured muoti to estää roskapostin
+ harvesters). Mikäli et halua sähköpostiosoitteesi näkyvän
+ tällä jäsenlistalla, valitse arvoksi <em>Ei</em>.
+ </td><td bgcolor="#cccccc">
+ <MM-Public-Subscription-Button>Ei<br>
+ <MM-Hide-Subscription-Button>Kyllä
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Oletuskieli?</strong><p>
+ </td><td bgcolor="#cccccc">
+ <MM-list-langs>
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>Mihin aihepiireihin haluaisit
+ liittyä?</strong><p>
+ Valitsemalla yhden tai useamman aihepiirin, voit filteroida
+ postituslistasi liikennettä, eli saat vain osan viesteistä.
+ Jos viesti täyttää valitsemasi aihepiirin kriteerit,
+ saat viestin, muuten et.
+
+ <p>Mikäli viesti ei sovi mihinkään valitsemaasi aihepiiriin, postin lähetys
+ riippuu niistä säännöistä, joille ylempänä asetit arvot. Ellet
+ valitse yhtään aihepiiriä tai mielenkiinnon kohdetta, saat
+ kaikki postituslistalle lähetettävät viestit.
+ </td><td bgcolor="#cccccc">
+ <mm-topics>
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>Haluatko saada viestin, joka ei sovi mihinkään valitsemaasi
+ aihepiiriin?</strong><p>
+
+ Tällä arvolla on merkitystä ainoastaan jos liityit
+ vähintään yhteen yläpuolella olevaan aihepiiriin. Se luonnehtii
+ oletussäännöt sellaisen viestin lähetykselle, joka ei
+ sovi mihinkään valitsemaasi kategoriaan. Mikäli olet valinnut <em>Ei</em>
+ viestiä ei lähetetä sinulle, ellei se sovi mihinkään aihepiirin "ehtoihin".
+ Valitsemalla <em>Kyllä</em>
+ myös ei-sopivat viestit lähetetään sinulle.
+
+ <p>Ellei mitään aihepiiriä tai mielenkiinnon kohdetta ole valittu yläpuolella,
+ niin kaikki postituslistalle tulevat viestit lähetetään sinulle.
+ </td><td bgcolor="#cccccc">
+ <mm-suppress-nonmatching-topics>Ei<br>
+ <mm-receive-nonmatching-topics>Kyllä
+ </td></tr>
+
+ <tr><TD colspan="2">
+ <center><MM-options-Submit-button></center>
+ </td></tr>
+
+</table>
+</center>
+<p>
+<MM-Form-End>
+
+<MM-Mailman-Footer>
+</body>
+</html>
diff --git a/templates/fi/postack.txt b/templates/fi/postack.txt
new file mode 100644
index 00000000..3381902a
--- /dev/null
+++ b/templates/fi/postack.txt
@@ -0,0 +1,7 @@
+Viestisi otsikolla:
+
+ %(subject)s
+
+on saapunut postituslistalle %(listname)s.
+
+Lisätietoja listasta: %(listinfo_url)s
diff --git a/templates/fi/postauth.txt b/templates/fi/postauth.txt
new file mode 100644
index 00000000..47b01ccb
--- /dev/null
+++ b/templates/fi/postauth.txt
@@ -0,0 +1,14 @@
+Ylläpitäjän toimia tarvitaan seuraavassa
+postituslistalle osoitetussa viestissä:
+
+
+ List: %(listname)s@%(hostname)s
+ From: %(sender)s
+ Subject: %(subject)s
+ Reason: %(reason)s
+
+Asian voit hoitaa www-sivulla:
+
+ %(admindb_url)s
+
+
diff --git a/templates/fi/postheld.txt b/templates/fi/postheld.txt
new file mode 100644
index 00000000..8285cb02
--- /dev/null
+++ b/templates/fi/postheld.txt
@@ -0,0 +1,16 @@
+Sähköpostiviestisi postituslistalle '%(listname)s' otsikolla:
+
+ %(subject)s
+
+odottaa listan ylläpitäjän tarkastusta ja hyväksyntää.
+
+Viestin tarkastuksen syy on:
+
+ %(reason)s
+
+Visti joko postitetaan listalle tai saat ilmoituksen ylläpitäjän
+päätöksestä olla postittamatta viestiä listalle.
+Jos haluat peruuttaa viestin lähetyksen listalle,
+voit tehdä sen www-sivulla:
+
+ %(confirmurl)s
diff --git a/templates/fi/private.html b/templates/fi/private.html
new file mode 100644
index 00000000..0efe1798
--- /dev/null
+++ b/templates/fi/private.html
@@ -0,0 +1,43 @@
+<!-- $Revision: 5063 $ -->
+<html>
+<head>
+ <title>%(realname)s Private Archives Authentication</title>
+</head>
+<body bgcolor="#ffffff">
+<FORM METHOD=POST ACTION="%(action)s/">
+%(message)s
+ <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1">Sisäänkirjautuminen
+ yksityiseen arkistoon %(realname)s
+ </FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <TD><div ALIGN="Right">Sähköpostiosoite:</div></TD>
+ <TD><INPUT TYPE="text" NAME="username" SIZE="30"></TD>
+ </tr>
+ <tr>
+ <TD><div ALIGN="Right">Salasana:</div></TD>
+ <TD><INPUT TYPE="password" NAME="password" SIZE="30"></TD>
+ </tr>
+ <tr>
+ <td colspan=2 align="middle"><INPUT type="SUBMIT"
+ name="submit"
+ value="Sisään...">
+ </td>
+ </tr>
+ </TABLE>
+ <p><strong><em>Tärkeää:</em></strong> Tästä eteenpäin sinulla
+ pitää olla evästeet valittuina aktiiviseksi selaimessasi. Muuten
+ mitkään ylläpitäjän toimet eivät tule suoritetuiksi.
+
+ <p>Istuntokohtaiset evästeet ovat aktiivisina Mailmanin ylläpitäjän ympäristössä/oikeuksissa,
+ joten sinun ei tarvitse uudelleenkirjautua jokaisen ylläpitäjän toimen suorittamiseksi. Tämä
+ eväste katoaa automaattisesti kun suljet selaimen tai voit nimenomaan sulkea evästeen painamalla
+ <em>Muut ylläpitäjän toimet</em> otsikon alla olevaa <em>Kirjaudu ulos</em> -valintaa.
+ (jonka näet, kun olet onnistuneesti kirjautunut sisään).
+</FORM>
+</body>
+</html>
diff --git a/templates/fi/reenable.txt b/templates/fi/reenable.txt
new file mode 100644
index 00000000..3257e7e3
--- /dev/null
+++ b/templates/fi/reenable.txt
@@ -0,0 +1,4 @@
+Voit uudelleenaktivoida heidän liittymisensä käymällä
+jäsenhallintavuilla
+%(admin_url)s/member
+ja asettemalla heidän jäsenyys"arvonsa" sen mukaisiksi
diff --git a/templates/fi/refuse.txt b/templates/fi/refuse.txt
new file mode 100644
index 00000000..46aabd7a
--- /dev/null
+++ b/templates/fi/refuse.txt
@@ -0,0 +1,13 @@
+Postituslistan %(listname)s ylläpitäjä on hylännyt
+pyyntösi
+
+ %(request)s
+
+Ylläpitäjän syy pyyntösi hylkäämiseen oli:
+
+"%(reason)s"
+
+Lisäkysymykset tai kommentit voit lähettää listan ylläpitäjälle
+osoitteeseen:
+
+ %(adminaddr)s
diff --git a/templates/fi/roster.html b/templates/fi/roster.html
new file mode 100644
index 00000000..ce1ab972
--- /dev/null
+++ b/templates/fi/roster.html
@@ -0,0 +1,53 @@
+<!-- $Revision: 5063 $ -->
+<HTML>
+ <HEAD>
+ <TITLE><MM-List-Name> Listalle liittyneet</TITLE>
+
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+
+ <P>
+ <TABLE WIDTH="100%" COLS="1" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1"><MM-List-Name>
+ Listalle liittyneet</FONT></B>
+ </TD>
+ </TR>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" ALIGN="CENTER">
+
+ <P align = "right"> <MM-lang-form-start><MM-displang-box>
+ <MM-list-langs><MM-form-end></p>
+
+ <P>Klikkaa osoitettasi, niin pääset jäsentietojesi asetussivulle.
+ <br><I>(Suluissa olevilla käyttäjillä on listan viestien vastaanotto asetettu
+ pois päältä.)</I></P>
+ </TD>
+ </TR>
+ <TR WIDTH="100%" VALIGN="top">
+ <TD BGCOLOR="#FFF0D0" WIDTH="50%">
+ <center>
+ <B><FONT COLOR="#000000"><MM-Num-Reg-Users>
+ Postituslistan <MM-List-Name> jäsenet:</FONT></B>
+ </center>
+ </TD>
+ <TD BGCOLOR="#FFF0D0" WIDTH="50%">
+ <center>
+ <B><FONT COLOR="#000000"><MM-Num-Digesters> Postituslistan
+ <MM-List-Name> koontiposteja vastaanottavat jäsenet:</FONT></B>
+ </center>
+ </TD>
+ </TR>
+ <TR VALIGN="top">
+ <td>
+ <P><MM-Regular-Users>
+ </td>
+ <td>
+ <P><MM-Digest-Users>
+ </td>
+ </tr>
+ </table>
+<MM-Mailman-Footer>
+</BODY>
+</HTML>
diff --git a/templates/fi/subauth.txt b/templates/fi/subauth.txt
new file mode 100644
index 00000000..f5bf3231
--- /dev/null
+++ b/templates/fi/subauth.txt
@@ -0,0 +1,8 @@
+Seuraava listalleliittymispyyntö vaatii hyväksyntäsi:
+
+ For: %(username)s
+ List: %(listname)s@%(hostname)s
+
+Asian voit hoitaa www-sivulla:
+
+ %(admindb_url)s
diff --git a/templates/fi/subscribe.html b/templates/fi/subscribe.html
new file mode 100644
index 00000000..089ea164
--- /dev/null
+++ b/templates/fi/subscribe.html
@@ -0,0 +1,9 @@
+<!-- $Revision: 5063 $ -->
+<html>
+<head><title><MM-List-Name> Subscription results</title></head>
+<body bgcolor="white">
+<h1><MM-List-Name> Liittymisen tulokset </h1>
+<MM-Results>
+<MM-Mailman-Footer>
+</body>
+</html>
diff --git a/templates/fi/subscribeack.txt b/templates/fi/subscribeack.txt
new file mode 100644
index 00000000..81d8d6e7
--- /dev/null
+++ b/templates/fi/subscribeack.txt
@@ -0,0 +1,41 @@
+Tervetuloa %(real_name)s@%(host_name)s postituslistalle!
+%(welcome)s
+Lähettääksesi postia tälle listalle, lähetä viesti osoitteeseen:
+
+ %(emailaddr)s
+
+Yleisiä tietoja listasta on saatavilla osoitteessa:
+
+ %(listinfo_url)s
+
+Mikäli haluat joskus erota listalta tai vaihtaa asetuksiasi
+(esim. asettaa koontimoodin pois päältä tai päälle, vaihtaa
+salasanasi jne.), käy jäsensivullasi osoitteessa:
+
+ %(optionsurl)s
+%(umbrella)s
+
+Voit myös tehdä samat muutokset sähköpostitse lähettämällä
+viestin osoitteeseen:
+
+ %(real_name)s-request@%(host_name)s
+
+Laita Otsikko- tai viestikenttään sana 'help'
+(ilman heittomerkkejä) ja saat takaisin viestin,
+joka sisältää ohjeet toimintojen suorittamiseksi.
+
+Sinun pitää tietää salasanasi listalle, että voit tehdä
+muutokset (myös listan salasanan vaihto) tai erota listalta.
+Salasanasi on:
+
+ %(password)s
+
+
+Normaalisti Mailman muistuttaa sinua %(host_name)s postituslistan
+salasanoista kerran kuukaudessa, vaikkakin voit asettaa halutessasi
+salasanan muistuksen pois päältä. Tämä muistutus sisältää myös
+ohjeet siitä, miten voit irtisanoutua listalta tai muuttaa tilisi
+asetuksia. Jäsensivuilla on myös painike, jolla voit pyytää
+järjestelmää lähettämään sinulle salasanasi.
+
+
diff --git a/templates/fi/unsub.txt b/templates/fi/unsub.txt
new file mode 100644
index 00000000..7a0a94a9
--- /dev/null
+++ b/templates/fi/unsub.txt
@@ -0,0 +1,25 @@
+Vahvistuspyyntö postituslistalta %(listname)s poistamiseksi
+
+Olemme saaneet pyynnön%(remote)s poistaa sähköpostiosoitteenne,
+"%(email)s" %(listaddr)s postituslistalta. Vahvistaaksenne,
+että haluatte erota tältä postituslistalta, vastatkaa
+tähän viestiin muuttamatta otsikkoa. Tai käväiskää www-sivulla:
+
+ %(confirmurl)s
+
+Tai sisällyttäkään seuraava rivi -- ja vain seuraava rivi -- viestiin
+%(requestaddr)s:
+
+ vahvista %(cookie)s
+
+Huomioi, että asian pitäisi hoitua, useimmilla sähköpostiohjelmilla
+pelkästään vastaamalla tähän viestiin, koska se tavallisesti
+jättää Otsikko-rivin oikeaan muotoon
+(lisäksi "Re: "teksti otsikossa on ok).
+
+Ellet halua itseäsi poistettavaksi tältä listalta,
+hävitä tämä viesti. Jos epäilet, että sinua yritetään
+pahansuovasti irtisanoa listalta tai sinulla
+on muita kysymyksiä, lähetä ne osoitteeseen
+%(listadmin)s.
+
diff --git a/templates/fi/unsubauth.txt b/templates/fi/unsubauth.txt
new file mode 100644
index 00000000..cbf851bc
--- /dev/null
+++ b/templates/fi/unsubauth.txt
@@ -0,0 +1,9 @@
+Hyväksyntääsi tarvitaan postituslistalta eroamispyyntöön:
+
+ By: %(username)s
+ From: %(listname)s@%(hostname)s
+
+Asian voit hoitaa www-sivulla:
+
+ %(admindb_url)s
+
diff --git a/templates/fi/userpass.txt b/templates/fi/userpass.txt
new file mode 100644
index 00000000..7b45f38b
--- /dev/null
+++ b/templates/fi/userpass.txt
@@ -0,0 +1,26 @@
+Sinä tai joku sinuksi tekeytyvä, on pyytänyt jäsentunnuksesi
+salasanan muistutusviestiä postituslistalta %(fqdn_lname)s.
+Tarvitset tätä salasanaa muuttaaksesi jäsenasetuksiasi
+(esim. haluatko säännöllisen postin vastaanoton
+vai koontilähetyksen). Lisäksi tämä salasana helpottaa
+listalta eroamista.
+
+Olet jäsenenä osoitteella: %(user)s
+
+Salasanasi listalle %(listname)s on: %(password)s
+
+Tehdäksesi muutoksia jäsenyytesi asetuksiin, kirjaudu sisään
+ja käväise listan jäsensivulla, osoitteessa:
+
+ %(options_url)s
+
+Voit tehdä samat muutokset myös sähköpostitse lähettämällä
+viestin osoitteeseen:
+
+ %(requestaddr)s
+
+ja laittamalla tekstin "help" otsikko- tai viestikenttään.
+Automaattinen vastaus viestiisi sisältää lisätietoja.
+
+Kysymyksiä tai kommentteja? Lähetä ne postituslistan
+%(listname)s ylläpitäjälle %(owneraddr)s.
diff --git a/templates/fi/verify.txt b/templates/fi/verify.txt
new file mode 100644
index 00000000..4abf2881
--- /dev/null
+++ b/templates/fi/verify.txt
@@ -0,0 +1,26 @@
+Vahvistuspyyntö postituslistalle %(listname)s liittymisestä
+
+Olemme saaneet liittymispyynnön osoitteesta %(remote)s
+liittää sinun sähköpostiosoitteesi, "%(email)s",
+postituslistalle %(listaddr)s
+
+Vahvistaaksesi liittymisesi postituslistalle vastaa tähän
+viestiin. Älä muuta viestin otsikossa olevia tietoja.
+
+Tai vahvista liittymisesi www-sivulla:
+
+ %(confirmurl)s
+
+Tai lähetä seuraava viesti -- ja ainoastaan vain seuraava rivi --
+osoitteeseen %(requestaddr)s:
+
+ confirm %(cookie)s
+
+Huomioi, että pelkkä Vastaa-toiminto on helpoin ja toimii lähes
+kaikilla sähköpostiohjelmilla. Jätä otsikkoriville teksti, jonka
+järjestelmä on sinne kirjoittanut.
+
+Jos et halua liittyä tälle postituslistalle, tuhoa tämä viesti.
+
+Jos sinulla on jotain kysyttävää lähetä tai kysymyksesi
+sähköpostiosoitteeseen: %(listadmin)s.
diff --git a/templates/fr/admindbdetails.html b/templates/fr/admindbdetails.html
new file mode 100644
index 00000000..f9e3074a
--- /dev/null
+++ b/templates/fr/admindbdetails.html
@@ -0,0 +1,64 @@
+Les requ&ecirc;tes administratives peuvent &ecirc;tre affich&eacute;es de
+deux fa&ccedil;ons diff&eacute;rentes, sur une <a
+ href="%(summaryurl)s">page r&eacute;sum&eacute;e</a> ou sur une page
+ <em>d&eacute;taill&eacute;e</em>. La page r&eacute;sum&eacute;e contient
+les requ&ecirc;tes en attente, les demandes de r&eacute;siliation d'abonnement
+ainsi que les soumissions mises en attente d'approbation, tous group&eacute;s
+en fonction de l'adresse courriel de l'exp&eacute;diteur. La page d&eacute;taill&eacute;e contient une vue plus d&eacute;taill&eacute;e de chaque message en attente
+avec tous les en-t&ecirc;tes du message et un extrait de son corps.
+
+<p>Sur toutes les pages, les mesures suivantes sont disponibles: </p>
+
+<ul>
+ <li><b>Diff&eacute;rer</b> -- Diff&eacute;rer votre d&eacute;cision jusqu'&agrave;
+une date ult&eacute;rieure. Dans ce cas rien n'est fait concernant cette requ&ecirc;te administrative en attente, mais vous pourrez tout de m&ecirc;me faire-suivre
+ou pr&eacute;server le message (voir ci-dessous). </li>
+ <li><b>Approuver</b> -- Approuver le message, en l'envoyant &agrave; la
+liste. Pour les demandes d'abonnement, approuver les modifications &agrave;
+apporter aux options de l'abonnement. </li>
+ <li><b>Rejeter</b> -- Rejeter le message, en envoyant un avis de rejet
+&agrave; l'exp&eacute;diteur et en ignorant le message original. Pour les
+demandes d'abonnements, rejeter les modifications demand&eacute;es. Dans tous
+les cas, vous devrez adjoindre un motif de rejet dans la zone de texte appropri&eacute;e.</li>
+ <li><b>Ignorer</b> -- Jeter le message original, sans envoi d'avis de
+rejet. Pour les demandes d'abonnement, ceci ignore tout simplement la requ&ecirc;te
+sans envoyer un avis &agrave; celui qui l'a &eacute;mise. Ceci est la mesure
+idoine pour les spam av&eacute;r&eacute;s. </li>
+
+</ul>
+
+<p>Pour les messages en attente, activer l'option <b>Pr&eacute;server</b>
+ si vous souhaitez conserver une copie du message &agrave; l'attention de
+l'administrateur du site. Ceci est utile pour les messages abusifs que vous
+voulez ignorer mais dont vous souhaitez garder une trace pour une analyse
+ult&eacute;rieure. </p>
+
+<p>Activez l'option <b>Faire-suivre &agrave;</b>, et remplissez l'adresse
+destinataire, si vous souhaitez faire-suivre le message &agrave; quelqu'un
+qui n'est pas abonn&eacute; &agrave; la liste. Pour modifier un message en
+attente avant qu'il ne soit envoy&eacute; &agrave; la liste, vous devez le
+faire-suivre &agrave; votre adresse personnelle (ou &agrave; celle du propri&eacute;taire de la liste), puis ignorer le message original. Le message appara&icirc;t
+alors dans votre bo&icirc;te &agrave; lettre, vous pourrez ainsi effectuer
+les modifications puis les envoyer &agrave; la liste en ajoutant l'en-t&ecirc;te
+<tt>Approved:</tt> avec le mot de passe de la liste comme valeur. Pour respecter
+la "netiquette", il est pr&eacute;f&eacute;rable d'ajouter une note dans
+le message final sp&eacute;cifiant que le texte original a &eacute;t&eacute;
+modifi&eacute;. </p>
+
+<p>Si l'exp&eacute;diteur est un abonn&eacute; dont les soumissions sont sujettes
+&agrave; approbation, vous pourrez &eacute;ventuellement d&eacute;sactiver
+cette option. Cela est utile lorsque votre liste est configur&eacute;e de
+sorte que les nouveaux abonn&eacute;s soient sujets &agrave; approbation et
+vous vous rendez compte que cet abonn&eacute; peut soumettre sans approbation.</p>
+
+<p>Si l'exp&eacute;diteur n'est pas abonn&eacute; &agrave; la liste, vous
+pourrez ajouter son adresse courriel dans un <em>filtre exp&eacute;diteur</em>.
+Les filtres exp&eacute;diteurs sont d&eacute;crits dans <a href="%(filterurl)s">la page de confidentialit&eacute; des filtres exp&eacute;diteurs</a> et peuvent avoir l'une des valeurs suivantes: <b>auto-accept (Approbations), <b>auto-hold</b> (Attentes), <b>auto-reject</b> (Rejets) et <auto-discard> (Ignorances). Cette option ne sera pas disponible si l'adresse fait d&eacute;j&agrave;
+l'objet de filtres exp&eacute;diteurs. </auto-discard></b></p>
+
+<p><b>Quand vous en aurez termin&eacute;, cliquez sur le bouton <em>Soumettre
+toutes les donn&eacute;es</em> au sommet ou au bas de la page. Ce bouton soumettra
+toutes les mesures s&eacute;lectionn&eacute;es pour toutes les requ&ecirc;tes
+administratives pour lesquelles vous avez pris une d&eacute;cision. </b></p>
+
+<p><a href="%(summaryurl)s">Retourner &agrave; la page r&eacute;sum&eacute;e</a>.
diff --git a/templates/fr/admindbpreamble.html b/templates/fr/admindbpreamble.html
new file mode 100644
index 00000000..68140438
--- /dev/null
+++ b/templates/fr/admindbpreamble.html
@@ -0,0 +1,12 @@
+Cette page contient un sous-ensemble des soumissions de la liste de diffusion
+<em>%(listname)s</em> en attente d'approbation. Elle montre actuellement
+%(description)s
+
+<p>Pour chaque requ&ecirc;te administrative, veuillez s&eacute;lectionner
+les mesures &agrave; prendre sans oublier de cliquer sur le bouton <b>Soumettre
+toutes les donn&eacute;es</b> quand vous aurez termin&eacute;. Des instructions
+plus d&eacute;taill&eacute;es sont disponible
+<a href="%(detailsurl)s">ici</a>.
+
+<p>Vous pourrez &eacute;galement <a href="%(summaryurl)s">voir un r&eacute;sum&eacute;</a>
+ de toutes les requ&ecirc;tes en attente.
diff --git a/templates/fr/admindbsummary.html b/templates/fr/admindbsummary.html
new file mode 100644
index 00000000..436f660d
--- /dev/null
+++ b/templates/fr/admindbsummary.html
@@ -0,0 +1,11 @@
+Cette page contient un r&eacute;sum&eacute; de l'ensemble des requ&ecirc;tes
+ administratives actuellement en attente d'approbation pour la liste de diffusion
+<a href="%(adminurl)s"> <em>%(listname)s</em></a>. Vous trouverez avant
+tout une liste des demandes d'abonnement et de r&eacute;siliation, si il y
+en a, suivie de tous les envois en attente d'approbation.
+
+<p>Pour chaque requ&ecirc;te administrative, veuillez choisir l'action &agrave;
+ entreprendre sans oublier de cliquer sur le bouton <b>Soumettre toutes les
+ donn&eacute;es</b> quand vous aurez termin&eacute;. <a href="%(detailsurl)s">Des instructions plus d&eacute;taill&eacute;es</a> sont aussi disponibles. </p>
+
+<p>Vous pourrez aussi <a href="%(viewallurl)s">voir les d&eacute;tails</a> de tous les envois en attente. </p>
diff --git a/templates/fr/adminsubscribeack.txt b/templates/fr/adminsubscribeack.txt
new file mode 100644
index 00000000..c92a8058
--- /dev/null
+++ b/templates/fr/adminsubscribeack.txt
@@ -0,0 +1,3 @@
+%(member)s a été abonné à %(listname)s avec succès.
+
+
diff --git a/templates/fr/adminunsubscribeack.txt b/templates/fr/adminunsubscribeack.txt
new file mode 100644
index 00000000..48cca8c0
--- /dev/null
+++ b/templates/fr/adminunsubscribeack.txt
@@ -0,0 +1,2 @@
+L'abonnement de %(member)s a été résilié de %(listname)s.
+
diff --git a/templates/fr/admlogin.html b/templates/fr/admlogin.html
new file mode 100644
index 00000000..2b434b8b
--- /dev/null
+++ b/templates/fr/admlogin.html
@@ -0,0 +1,40 @@
+<html>
+<head>
+ <title>Authentification %(who)s sur %(listname)s</title>
+</head>
+<body bgcolor="#ffffff">
+<FORM METHOD=POST ACTION="%(path)s">
+%(message)s
+ <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1">Authentification
+ %(who)s sur %(listname)s</FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <TD> <div ALIGN="Right">Mot de passe %(who)s de la liste: </div> </TD>
+ <TD> <INPUT TYPE="password" NAME="adminpw" SIZE="30"></TD>
+ </tr>
+ <tr>
+ <td colspan=2 align=middle> <INPUT type="SUBMIT"
+ name="admlogin"
+ value="Je veux entrer...">
+ </td>
+ </tr>
+ </TABLE>
+ <p><strong><em>Important:</em></strong> A partir d'ici, vous devez avoir
+ les cookies activ&eacute;s dans votre navigateur, autrement aucun
+ changement administratif ne s'appliquera.
+
+ <p>Les cookies de session sont utilis&eacute;s dans l'interface
+ d'administration de Mailman pour que vous n'ayez pas &agrave; vous
+ authentifier de nouveau pour chaque op&eacute;ration. Le cookie
+ expirera automatiquement lorsque vous quitterez votre navigateur, ou
+ vous pouvez le forcer &agrave; expirer en cliquant sur le lien
+ <em>D&eacute;connexion</em> en dessous d'<em>Autres op&eacute;rations
+ administratives</em> (que vous verrez apr&egrave;s vous &ecirc;tre
+ authentifi&eacute; avec succ&egrave;s).
+</FORM>
+</body>
+</html>
diff --git a/templates/fr/approve.txt b/templates/fr/approve.txt
new file mode 100644
index 00000000..cad352ed
--- /dev/null
+++ b/templates/fr/approve.txt
@@ -0,0 +1,16 @@
+Votre demande à %(requestaddr)s :
+
+ %(cmd)s
+
+a été envoyée à la personne qui gère de la liste.
+
+C'est probablement parceque vous essayez de vous abonner
+à une liste 'fermée'.
+
+Vous recevrez par courrier électronique la décision de
+l'administrateur concernant votre demande d'abonnement.
+
+Toute question au sujet des principes de gestion de la
+liste doit être adressée à :
+
+ %(adminaddr)s \ No newline at end of file
diff --git a/templates/fr/archidxentry.html b/templates/fr/archidxentry.html
new file mode 100644
index 00000000..b30b3bbb
--- /dev/null
+++ b/templates/fr/archidxentry.html
@@ -0,0 +1,4 @@
+<li><a href="%(filename)s">%(subject)s
+</a><a name="%(sequence)i">&nbsp;</a>
+ <i>%(author)s
+</i></li>
diff --git a/templates/fr/archidxfoot.html b/templates/fr/archidxfoot.html
new file mode 100644
index 00000000..e04fdc4e
--- /dev/null
+++ b/templates/fr/archidxfoot.html
@@ -0,0 +1,22 @@
+<html>
+ <body>
+</ul>
+<p>
+ <a name="end"><b>Date du dernier message:</b></a>
+<i>%(lastdate)s</i><br>
+ <b>Archiv&eacute; le:</b> <i>%(archivedate)s</i>
+<p>
+ <ul>
+ <li> <b>Messages tri&eacute;s par:</b>
+ %(thread_ref)s
+ %(subject_ref)s
+ %(author_ref)s
+ %(date_ref)s
+ <li><b><a href="%(listinfo)s">Plus d'infos sur cette liste...
+ </a></b></li>
+ </ul>
+ <p>
+ <hr>
+ <i>Archive g&eacute;n&eacute;r&eacute;e par Pipermail %(version)s.</i>
+ </body>
+</html>
diff --git a/templates/fr/archidxhead.html b/templates/fr/archidxhead.html
new file mode 100644
index 00000000..5158dae4
--- /dev/null
+++ b/templates/fr/archidxhead.html
@@ -0,0 +1,26 @@
+<html>
+<head>
+ <title>The %(listname)s %(archive)s Archive by %(archtype)s</title>
+
+ <meta name="robots" content="noindex,follow">
+</head>
+ <body bgcolor="#ffffff">
+%(encoding)s
+<a name="start"></a>
+<h1>%(archive)s Archives par %(archtype)s</h1>
+ <ul>
+ <li> <b>Messages tri&eacute;s par:</b>
+ %(thread_ref)s
+ %(subject_ref)s
+ %(author_ref)s
+ %(date_ref)s
+ </li>
+ <li><b><a href="%(listinfo)s">Plus d'infos sur cette liste...
+ </a></b></li>
+ </ul>
+ <p><b>D&eacute;but:</b> <i>%(firstdate)s</i><br>
+ <b>Fin:</b> <i>%(lastdate)s</i><br>
+ <b>Messages:</b> %(size)s</p>
+<ul>
+</body>
+</html>
diff --git a/templates/fr/archlistend.html b/templates/fr/archlistend.html
new file mode 100644
index 00000000..9bc052dd
--- /dev/null
+++ b/templates/fr/archlistend.html
@@ -0,0 +1 @@
+ </table>
diff --git a/templates/fr/archliststart.html b/templates/fr/archliststart.html
new file mode 100644
index 00000000..27a6c7a2
--- /dev/null
+++ b/templates/fr/archliststart.html
@@ -0,0 +1,6 @@
+<table border=3>
+ <tr>
+ <td>Archive</td>
+ <td>Vue par:</td>
+ <td>Version t&eacute;l&eacute;chargeable</td>
+ </tr>
diff --git a/templates/fr/archtoc.html b/templates/fr/archtoc.html
new file mode 100644
index 00000000..bc9dbd2e
--- /dev/null
+++ b/templates/fr/archtoc.html
@@ -0,0 +1,19 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<html>
+<head>
+ <title>Les Archives de %(listname)s</title>
+ <meta name="robots" content="noindex,follow">
+ %(meta)s
+</head>
+<body bgcolor="#ffffff">
+ <h1>Les Archives de %(listname)s</h1>
+ <p>vous pouvez obtenir <a href="%(listinfo)s">plus d' informations &agrave;
+ propos de cette liste</a> ou vous pouvez&nbsp; <a href="%(fullarch)s">t&eacute;l&eacute;charger les archives compl&egrave;tes</a>
+ (%(size)s).
+ </p>
+ %(noarchive_msg)s
+ %(archive_listing_start)s
+ %(archive_listing)s
+ %(archive_listing_end)s
+</body>
+</html>
diff --git a/templates/fr/archtocentry.html b/templates/fr/archtocentry.html
new file mode 100644
index 00000000..267e350b
--- /dev/null
+++ b/templates/fr/archtocentry.html
@@ -0,0 +1,10 @@
+
+ <tr>
+ <td>%(archivelabel)s:
+ <A href="%(archive)s/thread.html">[ Thread ]</a>
+ <A href="%(archive)s/subject.html">[ Sujet ]</a>
+ <A href="%(archive)s/author.html">[ Auteur ]</a>
+ <A href="%(archive)s/date.html">[ Date ]</a>
+ </td>
+ %(textlink)s
+ </tr>
diff --git a/templates/fr/article.html b/templates/fr/article.html
new file mode 100644
index 00000000..50177c07
--- /dev/null
+++ b/templates/fr/article.html
@@ -0,0 +1,52 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+ <HEAD>
+ <TITLE> %(title)s
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:%(email_url)s?Subject=%(subject_url)s&In-Reply-To=%(in_reply_to_url)s">
+ <META NAME="robots" CONTENT="index,nofollow">
+ %(encoding)s
+ %(prev)s
+ %(next)s
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>%(subject_html)s
+ </H1>
+ <B>%(author_html)s
+ </B>
+ <A HREF="mailto:%(email_url)s?Subject=%(subject_url)s&In-Reply-To=%(in_reply_to_url)s"
+ TITLE="%(subject_html)s">%(email_html)s
+ </A><BR>
+ <I>%(datestr_html)s</I>
+ <P><UL>
+ %(prev_wsubj)s
+ %(next_wsubj)s
+ <LI> <B>Messages tri&eacute;s par:</B>
+ <a href="date.html#%(sequence)s">[ date ]</a>
+ <a href="thread.html#%(sequence)s">[ thread ]</a>
+ <a href="subject.html#%(sequence)s">[ objet ]</a>
+ <a href="author.html#%(sequence)s">[ auteur ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+%(body)s
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ %(prev_wsubj)s
+ %(next_wsubj)s
+ <LI> <B>Messages tri&eacute;s par:</B>
+ <a href="date.html#%(sequence)s">[ date ]</a>
+ <a href="thread.html#%(sequence)s">[ thread ]</a>
+ <a href="subject.html#%(sequence)s">[ objet ]</a>
+ <a href="author.html#%(sequence)s">[ auteur ]</a>
+ </LI>
+ </UL>
+<hr>
+<a href="%(listurl)s">Plus d'informations sur la liste de diffusion %(listname)s</a><br>
+</body></html>
+
+
diff --git a/templates/fr/bounce.txt b/templates/fr/bounce.txt
new file mode 100644
index 00000000..f1a0840f
--- /dev/null
+++ b/templates/fr/bounce.txt
@@ -0,0 +1,13 @@
+Ceci est un avis de rebond sur une liste Mailman:
+
+ Liste: %(listname)s
+ Abonné: %(addr)s
+ Action: Abonnement %(negative)s%(did)s.
+ Raison: Rebonds excessifs ou fatals.
+ %(but)s
+
+%(reenable)s
+Ce qui a déclenché l'avis de rebond est joint ci-dessous.
+
+Des questions?
+Contactez l'administrateur du site Mailman à l'adresse %(owneraddr)s.
diff --git a/templates/fr/checkdbs.txt b/templates/fr/checkdbs.txt
new file mode 100644
index 00000000..331bdae1
--- /dev/null
+++ b/templates/fr/checkdbs.txt
@@ -0,0 +1,7 @@
+La liste %(real_name)s@%(host_name)s a %(count)d requête(s) en attente
+de votre décision à l'adresse :
+
+ %(adminDB)s
+
+Traitez ceux-ci aussi rapidement que possible. Cet avis de requêtes
+en attente, s'il y en a, vous sera envoyé quotidiennement.
diff --git a/templates/fr/convert.txt b/templates/fr/convert.txt
new file mode 100644
index 00000000..a6c56160
--- /dev/null
+++ b/templates/fr/convert.txt
@@ -0,0 +1,37 @@
+La liste de diffusion %(listname)s vient de connaître un grand
+changement. Elle est maintenant gérée par un nouveau logiciel de
+listes qui s'appelle "Mailman". Avec un peu de chance, cela
+corrigera beaucoup de problèmes qui ont été rencontrés lors de
+l'administration de cette liste.
+
+En quoi cela vous concerne-t-il?
+
+1) Le courrier destiné à la liste doit être envoyé à: %(listaddr)s.
+
+2) Il vous a été attribué un mot de passe généré automatiquement,
+pour empêcher quiconque de vous désabonner à votre insu. Il vous
+sera envoyé dans un autre courriel séparé, que vous avez peut-être
+déjà reçu. Ne vous inquiétez pas si vous oubliez ce mot de passe,
+un rappel mensuel vous sera envoyé par courriel.
+
+3) Si vous avez accès au web, vous pouvez vous en servir à tout moment
+pour vous désabonner, choisir de recevoir les messages en mode groupé
+ou non, consulter les archives de la liste (qui seront disponibles
+après qu'il y ait eu des messages dans un jour ou deux),
+etc. L'adresse web pour cette interface est:
+
+ %(listinfo_url)s
+
+4) Si vous n'avez pas accès au web, vous pourrez effectuer les mêmes
+opérations par courriel. Envoyez un message à %(requestaddr)s avec le
+mot "help" (sans les guillemets) dans le sujet ou le corps du
+message. Vous recevrez alors une réponse automatique vous expliquant
+la marche à suivre.
+
+Pour toute question ou problème concernant cette nouvelle
+configuration, envoyez un courriel à l'adresse:
+%(adminaddr)s.
+
+Ce message a été auto-généré par Mailman %(version)s. Pour plus
+d'informations sur le logiciel Mailman, consultez le site Internet
+de Mailman à l'adresse http://www.list.org/
diff --git a/templates/fr/cronpass.txt b/templates/fr/cronpass.txt
new file mode 100644
index 00000000..d0b008c3
--- /dev/null
+++ b/templates/fr/cronpass.txt
@@ -0,0 +1,21 @@
+Ceci est un rappel, envoyé une fois par mois, concernant vos
+abonnements aux listes de %(hostname)s. Il contient vos paramètres
+d'abonnement et la marche à suivre pour les changer ou résilier votre
+abonnement à une liste.
+
+Vous pouvez utiliser l'interface web pour changer votre statut ou vos
+paramètres d'abonnement, vous pouvez aussi y résilier votre
+abonnement, choisir de recevoir les messages en mode groupé ou encore
+désactiver toute réception de messages (par exemple si vous partez en
+vacances), etc.
+
+En plus de l'interface web, vous pouvez procéder à ces modifications
+par courrier électronique. Pour plus d'information, envoyez un message
+à l'adresse '-request' de la liste (par exemple %(exreq)s) contenant
+uniquement le mot 'help' dans le corps du message, vous recevrez alors
+un courrier vous indiquant la marche à suivre.
+
+Si vous avez des questions, des problèmes, des commentaires, etc.,
+envoyez-les à %(owner)s. Merci!
+
+Mots de passe pour %(useraddr)s: \ No newline at end of file
diff --git a/templates/fr/disabled.txt b/templates/fr/disabled.txt
new file mode 100644
index 00000000..034f11aa
--- /dev/null
+++ b/templates/fr/disabled.txt
@@ -0,0 +1,29 @@
+Votre abonnement à la liste %(listname)s a été désactivé suite à
+%(reason)s. Vous ne recevrez plus de messages en provenance de
+cette liste tant que vous n'aurez pas ré-acitiver votre
+abonnement. Vous recevrez encore %(noticesleft)s rappels comme celui
+que vous avez sous les yeux avant que votre abonnement ne soit
+supprimé.
+
+Pour ré-activer votre abonnement, vous pouvez répondre simplement à ce
+message (en laissant la ligne Subject: --Objet-- du message intact) ou
+vous rendre à la page de confirmation à l'adresse
+
+ %(confirmurl)s
+
+Vous pouvez également vous rendre à votre page personnel d'abonné à
+l'adresse
+
+ %(optionsurl)s
+
+Sur votre page personnel d'abonné, vous pourrez modifier nombre
+d'options de remise tels votre adresse courriel ou le type de remise
+selon que vous souhaitez recevoir les messages groupés ou
+individuellement. Pour mémoire, votre mot de passe d'abonné est
+
+ %(password)s
+
+Si vous avez des questions ou des problèmes, vous pourrez contacter le
+propriétaire de la liste à l'adresse
+
+ %(owneraddr)s \ No newline at end of file
diff --git a/templates/fr/emptyarchive.html b/templates/fr/emptyarchive.html
new file mode 100644
index 00000000..e10776e7
--- /dev/null
+++ b/templates/fr/emptyarchive.html
@@ -0,0 +1,18 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<html>
+<head>
+ <title>Archives de %(listname)s</title>
+
+ <meta name="robots" content="noindex,follow">
+</head>
+ <body bgcolor="#ffffff">
+
+<h1>Archives de %(listname)s </h1>
+ <p>
+ Aucun message n'a encore &eacute;t&eacute; post&eacute; sur
+ cette liste, il n y a donc pas encore d'archives disponibles. Pour
+ obtenir plus d'informations sur la liste, <a href="%(listinfo)s">cliquez
+ ici</a>
+ </p>
+</body>
+</html>
diff --git a/templates/fr/handle_opts.html b/templates/fr/handle_opts.html
new file mode 100644
index 00000000..3f925617
--- /dev/null
+++ b/templates/fr/handle_opts.html
@@ -0,0 +1,9 @@
+<!-- $Revision: 3406 $ -->
+<html>
+<title><MM-List-Name> <MM-Operation> R&eacute;sultats</title>
+<body>
+<h1><MM-List-Name> <MM-Operation> R&eacute;sultats</h1>
+<MM-Results>
+<MM-Mailman-Footer>
+</body>
+</html>
diff --git a/templates/fr/headfoot.html b/templates/fr/headfoot.html
new file mode 100644
index 00000000..36849193
--- /dev/null
+++ b/templates/fr/headfoot.html
@@ -0,0 +1,31 @@
+Ce texte peut contenir <a
+href="http://www.python.org/doc/current/lib/typesseq-strings.html">des formats
+de cha&icirc;nes Python </a>qui sont remplac&eacute;es par les attributs
+de la liste. La liste des substitutions valides est:
+<ul>
+ <li><b><code>real_name</code></b> - Le nom usuel de la liste;
+ habituellement le nom en capitales. </li>
+
+ <li><b><code>list_name</code></b> - Le nom par lequel la liste
+ est identifi&eacute;e dans les URLs, o&ugrave; la casse est important.
+ (pour assurer la compatibilit&eacute;, <code>_internal_name</code> est &eacute;quivalent).
+ </li>
+
+ <li><b><code>host_name</code></b> - Le "nom d'h&ocirc;te pleinement
+ qualifi&eacute;" (FQDN) du serveur sur lequel est install&eacute; le serveur de
+ listes. </li>
+
+ <li><b><code>web_page_url</code></b> - L'URL de base pour Mailman.
+ Elle peut &ecirc;tre concat&eacute;n&eacute;e avec, par exemple
+ <em><code>listinfo/%(internal_name)s</code></em> pour donner la
+ page d'infos de la liste. </li>
+
+ <li><b><code>description</code></b> - La description courte de la
+ liste de diffusion. </li>
+
+ <li><b><code>info</code></b> - La description compl&egrave;te de la
+ liste de diffusion.</li>
+
+ <li><b><code>cgiext</code></b> - L'extension ajout&eacute;e aux scripts
+ cgi. </li>
+</ul>
diff --git a/templates/fr/help.txt b/templates/fr/help.txt
new file mode 100644
index 00000000..a69b1a58
--- /dev/null
+++ b/templates/fr/help.txt
@@ -0,0 +1,35 @@
+Aide de la liste de diffusion %(listname)s:
+
+Ceci est l'aide sur les commandes par courrier pour la version
+%(version)s du gestionnaire de listes "Mailman". Vous trouverez
+ci-dessous la description des commandes qui vous permettent d'obtenir
+des informations sur vos abonnements et d'en modifier les options pour
+les listes de ce serveur. Chaque commande pour être placée au choix
+dans l'objet ou dans le corps du message.
+
+La plupart de ces tâches peuvent être également accomplies par
+l'interface web qui se trouve à l'adresse:
+
+ %(listinfo_url)s
+
+Vous pouvez notamment utiliser cette interface pour vous faire
+envoyer votre mot de passe à votre adresse d'abonné.
+
+Les commandes relatives à une liste (s'abonner, qui y est, etc..)
+doivent être envoyées à l'adresse *-request de la liste en question,
+par exemple pour la liste 'mailman', utilisez 'mailman-request@...'.
+
+A propos des descriptions - les mots entre "<>" sont les éléments
+OBLIGATOIRES tandis que ceux entre "[]" sont des éléments
+FACULTATIFS. N'incluez pas les "<>" ou "[]" dans les commandes.
+
+Les commandes suivantes sont reconnues:
+
+ %(commands)s
+
+Les commandes doivent être envoyées à %(requestaddr)s
+
+Toute question ou problème à l'attention d'une personne physique doit
+être envoyée à
+
+ %(adminaddr)s \ No newline at end of file
diff --git a/templates/fr/invite.txt b/templates/fr/invite.txt
new file mode 100644
index 00000000..ac0d5fde
--- /dev/null
+++ b/templates/fr/invite.txt
@@ -0,0 +1,20 @@
+Votre adresse "%(email)s" a été invitée à s'abonner à la liste de
+diffusion %(listname)s sur %(hostname)s par le propriétaire de la
+liste %(listname)s. Vous pouvez accepter cette invitation en répondant
+simplement à ce courriel avec l'en-tête Objet: intact.
+
+Vous pouvez également vous rendre à la page web suivante:
+
+ %(confirmurl)s
+
+Vous pouvez enfin inclure la ligne suivante -- et seulement cette
+ligne -- dans un courriel adressé à %(requestaddr)s:
+
+ confirm %(cookie)s
+
+Notez qu'un simple `répondre' devrait marcher pour nombres de lecteurs
+de courriels.
+
+Si vous souhaitez refuser cette invitation, veillez simplement ignorer
+ce message. Si vous avez des questions, veillez les faire parvenir à
+%(listowner)s.
diff --git a/templates/fr/listinfo.html b/templates/fr/listinfo.html
new file mode 100644
index 00000000..407f373c
--- /dev/null
+++ b/templates/fr/listinfo.html
@@ -0,0 +1,149 @@
+<!-- $Revision: 6073 $ -->
+<html>
+<head>
+ <title>Page d'infos de <MM-List-Name></title>
+</head>
+ <body bgcolor="#ffffff">
+
+<p>
+<table cols="1" border="0" cellspacing="4" cellpadding="5">
+ <tr>
+ <td colspan="2" width="100%" bgcolor="#99ccff" align="center">
+ <b><font color="#000000" size="+1"><MM-List-Name> -- <MM-List-Description></font></b>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ <p>&nbsp;</p>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="1" width="100%" bgcolor="#fff0d0">
+ <b><font color="#000000">A propos de <MM-List-Name></font></b>
+ </td>
+ <td colspan="1" width="100%" bgcolor="#fff0d0">
+ <MM-lang-form-start><MM-displang-box> <MM-list-langs>
+ <MM-form-end>
+ <MM-Subscribe-Form-Start>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ <p><MM-List-Info></p>
+ <p> Pour voir tous les messages pass&eacute;s de la liste, visitez les <MM-Archive>Archives de <MM-List-Name>
+ </MM-Archive>.
+ <MM-Restricted-List-Message>
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2" width="100%" bgcolor="#fff0d0"> <b><font
+ color="#000000">Utilisation de <MM-List-Name></font></b>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ Pour envoyer un message &agrave; tous les abonn&eacute;s de
+ la liste, envoyez un courriel &agrave;
+ <a href="mailto:<MM-Posting-Addr>"><MM-Posting-Addr></a>.
+
+ <p>Vous pouvez vous abonner &agrave; la liste ou modifier votre
+ abonnement actuel dans les sections suivantes. </p>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2" width="100%" bgcolor="#fff0d0">
+<b><font color="#000000">S'abonner &agrave; <MM-List-Name><font></b>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ <p>
+ Abonnez-vous &agrave; <MM-List-Name> en remplissant le formulaire
+ suivant.
+ <MM-List-Subscription-Msg>
+ <ul>
+ <table border="0" cellspacing="2" cellpadding="2" width="70%"
+ height="112">
+ <tr>
+ <td bgcolor="#dddddd" width="55%">Votre adresse courriel:</td>
+ <td width="33%"><MM-Subscribe-Box>
+ </td>
+ <td width="12%">&nbsp;</td>
+ </tr>
+ <tr>
+ <td bgcolor="#dddddd" width="55%">Votre nom (facultatif):</td>
+ <td width="33%"><mm-fullname-box</td>
+ <td width="12%">&nbsp;</td>
+ </tr>
+ <tr>
+ <td colspan="3"><font size="-1">Vous devez entrer un mot de passe pour la confidentialit&eacute;. Ceci ne procure qu'un faible niveau
+ de s&eacute;curit&eacute; mais devrait n&eacute;anmoins
+ enp&ecirc;cher que n'importe qui modifie vos abonnements.
+ <b>N'utilisez pas un mot de passe existant</b> car il
+ arrivera qu'il vous soit renvoy&eacute; par courriel en clair. </font>
+ <p><font size="-1">Si vous choisissez de ne pas en fournir, un mot de
+ passe vous sera g&eacute;n&eacute;r&eacute;
+ automatiquement, et il vous sera envoy&eacute; une fois que
+ votre requ&ecirc;te d'abonnement aura &eacute;t&eacute;
+ confirm&eacute;e. Il vous sera toujours possible de vous
+ faire envoyer votre mot de passe par courriel lorsque vous
+ visualisez vos options personnelles.
+ <MM-Reminder></font></p>
+ </td>
+ </tr>
+ <tr>
+ <td bgcolor="#dddddd">Choisissez un mot de passe:</td>
+ <td><MM-New-Password-Box></td>
+ <td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td bgcolor="#dddddd">Confirmer le mot de passe:</td>
+ <td><MM-Confirm-Password></td>
+ <td>&nbsp; </td>
+ </tr>
+ <tr>
+ <td bgcolor="#dddddd">Dans quelle langue voulez-vous que le
+ syst&egrave; vous parle?</td>
+ <td> <MM-list-langs></td>
+ <td>&nbsp; </td>
+ </tr>
+ <tr>
+ <td>Souhaitez-vous recevoir les messages de la liste dans
+ un seul courriel quotidien group&eacute;?
+ </td>
+ <td><MM-Undigest-Radio-Button> Non
+ <MM-Digest-Radio-Button> Oui
+ </td>
+ </tr>
+ <mm-digest-question-end>
+ <tr>
+ <td colspan="3">
+ <center><MM-Subscribe-Button></center>
+ </table>
+ <MM-Form-End>
+ </ul>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2" width="100%" bgcolor="#fff0d0">
+ <a name="subscribers">
+ <b><font color="#000000">Abonn&eacute;s de
+ <MM-List-Name></font></b></a>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2" width="100%">
+ <MM-Roster-Form-Start>
+ <MM-Roster-Option>
+ <MM-Form-End>
+ <p>
+ <MM-Options-Form-Start>
+ <MM-Editing-Options>
+ <MM-Form-End>
+ </td>
+ </tr>
+</table>
+ <MM-Mailman-Footer>
+</body>
+</html>
diff --git a/templates/fr/masthead.txt b/templates/fr/masthead.txt
new file mode 100644
index 00000000..34623c0f
--- /dev/null
+++ b/templates/fr/masthead.txt
@@ -0,0 +1,15 @@
+Envoyez vos messages pour la liste %(real_name)s à
+ %(got_list_email)s
+
+Pour vous (dés)abonner par le web, consultez
+ %(got_listinfo_url)s
+ou, par email, envoyez un message avec 'help' dans le corps
+ou dans le sujet à
+ %(got_request_email)s
+
+Vous pouvez contacter l'administrateur de la liste à l'adresse
+ %(got_owner_email)s
+
+Si vous répondez, n'oubliez pas de changer l'objet du message afin
+qu'il soit plus spécifique que "Re: Contenu du digest
+de %(real_name)s..."
diff --git a/templates/fr/newlist.txt b/templates/fr/newlist.txt
new file mode 100644
index 00000000..f0c27c9c
--- /dev/null
+++ b/templates/fr/newlist.txt
@@ -0,0 +1,40 @@
+La liste de diffusion `%(listname)s' vient d'être créée pour vous.
+Vous trouverez ci-dessous quelques informations indispensables sur
+cette liste.
+
+Votre mot de passe pour cette liste est:
+
+ %(password)s
+
+Ce mot de passe est nécessaire pour configurer votre liste de
+diffusion. Vous en aurez également besoin pour traiter les requêtes
+administratives, par exemple approuver les messages si votre liste
+est modérée.
+
+Vous pouvez configurer votre liste de diffusion à l'adresse suivante:
+
+ %(admin_url)s
+
+La page web pour les utilisateurs de votre liste est:
+
+ %(listinfo_url)s
+
+Vous pouvez même personnaliser ces pages web depuis la page de
+configuration de la liste. Il est nécessaire de connaître le HTML
+pour le faire.
+
+Il y a également un interface courriel pour les utilisateurs (et
+non les administrateurs) de votre liste; pour savoir comment
+l'utiliser, envoyez un message ne contenant que le mot `help',
+comme objet ou dans le corps du message, à:
+
+ %(requestaddr)s
+
+Pour résilier l'abonnement d'un utilisateur: sur la page 'listinfo' de
+la liste cliquez sur ou entrez l'adresse courriel de l'utilisateur
+comme si vous étiez lui. Là où il indiquerait normalement son mot de
+passe, entrez votre mot de passe d'administrateur. Vous pouvez aussi
+utiliser votre mot de passe pour changer les préférences des abonnés y
+compris les messages groupés, la désactivation de la remise, etc.
+
+Pour toute question adressez-vous à %(siteowner)s. \ No newline at end of file
diff --git a/templates/fr/nomoretoday.txt b/templates/fr/nomoretoday.txt
new file mode 100644
index 00000000..b8a994b8
--- /dev/null
+++ b/templates/fr/nomoretoday.txt
@@ -0,0 +1,10 @@
+Nous avons reçu un message en provenance de votre adresse courriel
+`%(sender)s' sollicitant une réponse automatique de la liste
+%(listname)s. Nous avons reçu %(num)s messages de ce type
+aujourd'hui. Pour éviter des problèmes tels que les rebonds de
+courriels entre les robots de courriels, nous n'allons plus envoyer de
+réponse à vos messages aujourd'hui. Veillez réessayer demain.
+
+Si vous pensez que ce message est erroné, ou si avez des questions,
+veillez contacter le propriétaire de la liste à l'adresse
+%(owneremail)s.
diff --git a/templates/fr/options.html b/templates/fr/options.html
new file mode 100644
index 00000000..93f2769f
--- /dev/null
+++ b/templates/fr/options.html
@@ -0,0 +1,339 @@
+<!-- $Revision: 6073 $ -->
+ <html>
+ <head>
+ <link rel="SHORTCUT ICON" href="<mm-favicon>">
+ <title><MM-Presentable-User> configuration d'abonnement sur <MM-List-Name></title>
+</head>
+ <body bgcolor="#ffffff">
+ <table width="100%" border="0" cellspacing="0" cellpadding="5">
+ <tr><td width="100%" bgcolor="#99ccff"><b>
+ <font color="#000000" size="+1">
+ <MM-List-Name> Configuration de l'abonnement de
+ <MM-Presentable-User>
+ </font></b></td>
+ </tr>
+</table>
+<p>
+<table width="100%" border="0" cellspacing="5" cellpadding="5">
+ <tr>
+ <td>
+ Etat de l'abonnement de <b><MM-Presentable-User></b>,
+ mot de passe et options pour la liste de diffusion <MM-List-Name>.
+ </td>
+ <td><MM-Form-Start><mm-logout-button><MM-Form-End></td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ <MM-Case-Preserved-User>
+
+ <MM-Disabled-Notice>
+
+ <p><mm-results>
+ </td>
+ </tr>
+
+</table>
+ <MM-Form-Start>
+<p>
+<table width="100%" border="0" cellspacing="0" cellpadding="5">
+ <tr>
+ <td width="100%" bgcolor="#fff0d0" colspan="2">
+ <font color="#000000">
+ <b>Modification de vos informations d'abonnement &agrave;
+ <MM-List-Name></b>
+ </font></td>
+ </tr>
+ <tr><td colspan="2">Vous pouvez modifier l'adresse avec
+ laquelle vous vous &ecirc;tes abonn&eacute; &agrave; la liste
+ en fournissant la nouvelle adresse dans les champs ci-dessous.
+ Notez que le courriel de demande de confirmation sera
+ envoy&eacute; &agrave; la nouvelle adresse, et que la
+ modification ne prendra effet que lorsque vous l'aurez
+ confirm&eacute;e.
+
+ <p>La demande de confirmation sera caduque au bout de
+ <mm-pending-days>.
+
+ <p>Vous pourrez accessoirement changer votre nom complet
+ (i.e. <em>Roger Dupont</em>)
+
+ <p>Si vous souhaitez changer vos informations d'abonnement
+ pour toute les listes sur <mm-host>, cochez la case
+ <em>Changer globalement</em>.
+
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <center>
+ <table border="0" cellspacing="2" cellpadding="2" width="80%" cols="2">
+ <tr>
+ <td bgcolor="#dddddd"><div align="right">Nouvelle adresse:</div>
+ </td>
+ <td><mm-new-address-box></td>
+ </tr>
+ <tr>
+ <td bgcolor="#dddddd"><div align="right">Confirmer l'adresse:</div>
+ </td>
+ <td><mm-confirm-address-box></td>
+ </tr>
+ </tr>
+ </table>
+ </center>
+ </td>
+ <td>
+ <center>
+ <table border="0" cellspacing="2" cellpadding="2" width="80%" cols="2">
+ <tr>
+ <td bgcolor="#dddddd">
+ <div align="right">Votre Nom Complet
+ (facultatif):</div>
+ </td>
+ <td><mm-fullname-box></td>
+ </tr>
+ </table>
+ </center>
+ </td>
+ </tr>
+ <tr><td colspan="2"><center><mm-change-address-button>
+ <p><mm-global-change-of-address>Changer globalement</center>
+ </td>
+ </tr>
+</table>
+
+<p>
+<table width="100%" border="0" cellspacing="5" cellpadding="5">
+ <tr><td width="50%" bgcolor="#fff0d0"><font color="#000000">
+ <b>R&eacute;silier l'abonnement &agrave; <MM-List-Name></b>
+ <td width="50%" bgcolor="#fff0d0"><font color="#000000">
+ <b>Vos autres abonnements sur <MM-Host></b>
+ </font></td></tr>
+
+ <tr>
+ <td>
+ Cochez la case confirmation et cliquez sur ce bouton pour
+ r&eacute;silier votre abonnement &agrave; cette liste.
+ <strong>Attention:</strong> Cette action prendra effet
+ imm&eacute;diatement!
+ <p>
+ <center><MM-Unsubscribe-Button></center>
+ </td>
+ <td>
+ Vous pouvez voir la liste de toutes les listes auxquelles vous
+ &ecirc;tes abonn&eacute; sur <mm-host>. Utilisez ceci si vous
+ voulez avoir les m&ecirc;mes options pour cette liste et les
+ autres auxquelles vous vous &ecirc;tes abonn&eacute;.
+<p>
+<center><MM-Other-Subscriptions-Submit></center>
+</td></tr>
+</table>
+
+<table width="100%" border="0" cellspacing="0" cellpadding="5">
+ <tr>
+ <td colspan="2" width="100%" bgcolor="#fff0d0"><font color="#000000">
+<b>Votre mot de passe pour <MM-List-Name></b>
+ </font></td></tr>
+
+<tr valign="top"><td width="50%">
+<a name=reminder> </a>
+<center>
+<h3>Egar&eacute; votre mot de passe?</h3>
+</center>
+Cliquez sur ce bouton pour qu'il vous soit envoy&eacute;
+&agrave; votre adresse d'abonnement.
+<p><MM-Umbrella-Notice>
+<center>
+<MM-Email-My-Pw>
+</center>
+</td>
+
+<td width="50%">
+<a name=changepw>
+<center>
+<h3>Changer votre mot de passe</h3>
+ <table border="0" cellspacing="2" cellpadding="2" width="70%" cols="2">
+ <tr>
+ <td bgcolor="#dddddd"><div align="right">Nouveau mot de passe:</div></td>
+ <td><MM-New-Pass-Box></td>
+ </tr>
+ <tr>
+ <td bgcolor="#dddddd"><div align="right">Confirmer le mot de passe:</div></td>
+ <td><MM-Confirm-Pass-Box></td>
+ </tr>
+ </table>
+ <MM-Change-Pass-Button>
+ <p><center><mm-global-pw-changes-button>Changez globalement.
+ </center>
+
+</table>
+
+<p>
+ <table width="100%" border="0" cellspacing="0" cellpadding="5">
+ <tr><td width="100%" bgcolor="#fff0d0"><font color="#000000">
+<b>Vos options d'abonnement &agrave; <MM-List-Name></b>
+</font></td></tr>
+</table>
+
+<p>
+<i><strong>Les options coch&eacute;es sont actives.</strong></i> </p>
+<p>Notez que certaines options ont une case <em>Changer globalement(ou Param&egrave;tre
+global)</em>. Cocher cette case signifie que la modification va s'appliquer
+&agrave; toutes les listes auxquelles vous &ecirc;tes abonn&eacute; sur <mm-host>
+. Cliquez sur <em>Afficher mes autres abonnements</em> pour voir les autres
+listes auxquelles vous &ecirc;tes abonn&eacute;.
+<p>
+<table border="0" cellspacing="3" cellpadding="4" width="100%">
+
+<tr><td bgcolor="#cccccc">
+<a name="disable">
+<strong>R&eacute;ception des messages</strong></a><p> Choisissez
+<em>Activ&eacute;</em> pour recevoir les messages adress&eacute;s
+&agrave; la liste. Choisissez <em>D&eacute;sactiv&eacute;</em> si vous voulez
+rester abonn&eacute; mais ne souhaitez pas recevoir les messages de la liste
+pendant un moment (e.g. si vous partez en vacance). Si vous d&eacute;sactivez
+la remise des courriels, n'oubliez pas de revenir la r&eacute;activer au
+retour des vacances; la remise ne se r&eacute;activera pas automatiquement.
+</td><td bgcolor="#cccccc">
+<mm-delivery-enable-button>Activ&eacute;<br>
+<mm-delivery-disable-button>D&eacute;sactiv&eacute;<p>
+<mm-global-deliver-button><i>Param&egrave;tre global</i>
+</td></tr>
+
+<tr><td bgcolor="#cccccc">
+<strong> Activer le mode Group&eacute;</strong><p>
+Si vous activez le mode group&eacute;, vous recevrez les messages
+regroup&eacute;s en un seul (une fois par jour en g&eacute;n&eacute;ral, peut
+&ecirc;tre plus sur une liste active) au lieu de les recevoir un par un.
+Si vous d&eacute;sactivez le mode group&eacute;, vous recevrez tout de m&ecirc;me
+un dernier envoi group&eacute;.
+</td><td bgcolor="#cccccc">
+<MM-Undigest-Radio-Button>Off<br>
+<MM-Digest-Radio-Button>On
+</td></tr>
+
+<tr><td bgcolor="#cccccc">
+<strong> Recevoir les digests en MIME ou en Texte brut?</strong><p>
+Votre client de messagerie pourrait ou non supporter les digests
+MIME. Les digests MIME sont g&eacute;n&eacute;ralement pr&eacute;f&eacute;r&eacute;s,
+mais si vous avez des probl&egrave;mes pour les lire, choisissez du texte
+brut.
+</td><td bgcolor="#cccccc">
+<MM-Mime-Digests-Button>MIME<br>
+<MM-Plain-Digests-Button>Texte brut <p>
+<mm-global-mime-button><i>Param&egrave;tre global</i>
+</td></tr>
+
+<tr><td bgcolor="#cccccc">
+<strong>Recevez les messages que vous envoyez &agrave; la liste?</strong><p>
+Par d&eacute;faut vous recevez une copie de chaque message que
+vous envoyez &agrave; la liste. Si vous ne voulez pas recevoir cette copie,
+choisissez <em>Non</em>.
+</td><td bgcolor="#cccccc">
+<mm-dont-receive-own-mail-button>Non<br>
+ <mm-receive-own-mail-button>Oui
+</td></tr>
+
+<tr><td bgcolor="#cccccc">
+<strong>Recevoir un accus&eacute; de r&eacute;ception pour chaque
+message envoy&eacute; &agrave; la liste? </strong><p>
+</td><td bgcolor="#cccccc">
+<mm-dont-ack-posts-button>Non<br>
+ <mm-ack-posts-button>Oui
+</td></tr>
+
+<tr><td bgcolor="#cccccc">
+<strong>Recevoir un rappel de votre mot passe pour cette liste?</strong><p>
+Une fois par mois, vous recevrez un courriel contenant un rappel
+de votre mot de passe pour chaque liste &agrave; laquelle vous &ecirc;tes
+abonn&eacute; sur ce serveur. Vous pouvez d&eacute;sactiver ce rappel pour
+les listes de votre choix en choisissant <em>Non</em> pour cette option.
+Si vous le faites pour toute les listes auxquelles vous &ecirc;tes abonn&eacute;,
+aucun courriel ne vous sera envoy&eacute;. </p>
+</td><td bgcolor="#cccccc">
+<mm-dont-get-password-reminder-button>Non<br>
+<mm-get-password-reminder-button>Oui<p>
+<mm-global-remind-button><i>Param&egrave;tre global</i>
+</td></tr>
+
+<tr><td bgcolor="#cccccc">
+<strong>Ne pas appara&icirc;tre dans la liste des abonn&eacute;s?</strong><p>
+Lorsque quelqu'un visualise la liste des abonn&eacute;s, votre
+adresse courriel est normalement affich&eacute;e (d'une fa&ccedil;on obscure
+pour contrarier "les moissonneurs de spam"). Si vous ne voulez pas de votre
+adresse dans cette liste d'abonn&eacute;s, choisissez <em>Oui</em> pour cette
+option.
+</td><td bgcolor="#cccccc">
+<MM-Public-Subscription-Button>Non<br>
+<MM-Hide-Subscription-Button> Oui
+</td></tr>
+
+<tr><td bgcolor="#cccccc">
+<strong>Quelle langue pr&eacute;f&eacute;r&eacute;z-vous?</strong><p>
+</td><td bgcolor="#cccccc">
+<MM-list-langs>
+</td></tr>
+
+<tr><td bgcolor="#cccccc">
+<strong>A quelles cat&eacute;gories de th&egrave;mes souhaitez-vous vous abonner? </strong><p>
+En s&eacute;lectionnant un ou plusieurs th&egrave;mes, vous pourrez
+limiter le trafic sur la liste de diffusion et ainsi recevoir juste un
+sous ensemble des messages. Les messages vous seront envoy&eacute;s ou
+pas, selon qu'ils concordent avec l'un des th&egrave;mes que vous avez
+s&eacute;lectionn&eacute;.
+<p>Si un message ne correspond &agrave; aucun des th&egrave;mes
+que vous avez s&eacute;lectionn&eacute;, il sera assujetti &agrave;
+l'option ci-dessous. Si vous ne s&eacute;lectionnez aucun th&egrave;me,
+vous recevrez tous les messages de la liste de diffusion.
+</td><td bgcolor="#cccccc">
+<mm-topics>
+</td></tr>
+
+<tr><td bgcolor="#cccccc">
+<strong>Voulez-vous recevoir les messages qui ne correspondent
+&agrave; aucun th&egrave;me?</strong><p>
+Cette option n'est active que si vous s&eacute;lectionnez ci-dessus
+au moins un th&egrave;me. Elle d&eacute;termine la r&egrave;gle de gestion
+des messages qui ne cadrent avec aucun th&egrave;me. Choisir <em>Non</em>
+signifie que vous ne recevrez pas les messages qui ne correspondent &agrave;
+aucun th&egrave;me alors qu'un <em>Oui</em> signifie que vous les recevrez.
+
+<p>Si aucun th&egrave;me n'a &eacute;t&eacute; s&eacute;lectionn&eacute;
+ci-dessus, vous recevrez tous les messages envoy&eacute;s &agrave; la liste.
+
+</td><td bgcolor="#cccccc">
+<mm-suppress-nonmatching-topics>Non<br>
+<mm-receive-nonmatching-topics>Oui
+</td></tr>
+
+<tr><td bgcolor="#cccccc">
+<strong>Refuser les copies multiples des messages?</strong><p>
+Lorsque votre adresse se trouve dans l'un des en-t&ecirc;tes
+<tt>A:</tt> ou <tt>Cc:</tt> d'un message adress&eacute; &agrave; la liste,
+vous pouvez choisir de ne pas recevoir de message suppl&eacute;mentaire
+en provenance de la liste. Choisissez
+<em>Oui</em> pour &eacute;viter de recevoir plusieurs copies;
+<em>Non</em> si vous voulez les avoir.
+
+<p>Si la liste accepte les messages personnalis&eacute;s des
+abonn&eacute;s et que vous avez opt&eacute; pour la reception des
+copies multiples, alors chaque copie suppl&eacute;mentaire
+aura l'en-t&ecirc;te <tt>X-Mailman-Copy: yes</tt>.
+
+</td><td bgcolor="#cccccc">
+<mm-receive-duplicates-button>Non<br>
+<mm-dont-receive-duplicates-button>Oui<p>
+<mm-global-nodupes-button><i>Param&egrave;tre global</i>
+
+</td></tr>
+<tr><td colspan="2">
+<center><MM-options-Submit-button></center>
+</td></tr></table>
+</center>
+
+<p>
+<MM-Form-End>
+
+<MM-Mailman-Footer>
+
+</body>
+</html>
diff --git a/templates/fr/postack.txt b/templates/fr/postack.txt
new file mode 100644
index 00000000..33bc8d42
--- /dev/null
+++ b/templates/fr/postack.txt
@@ -0,0 +1,8 @@
+Votre message intitulé
+
+ %(subject)s
+
+est bien parvenu à la liste de diffusion %(listname)s.
+
+Page Info de la liste : %(listinfo_url)s
+Vos options personnelles: %(optionsurl)s
diff --git a/templates/fr/postauth.txt b/templates/fr/postauth.txt
new file mode 100644
index 00000000..cd50e116
--- /dev/null
+++ b/templates/fr/postauth.txt
@@ -0,0 +1,13 @@
+En tant qu'administrateur de liste, votre autorisation est nécessaire
+pour l'envoi du message suivant vers la liste:
+
+ Liste: %(listname)s@%(hostname)s
+ De: %(sender)s
+ Objet: %(subject)s
+ Raison: %(reason)s
+
+Quand vous le souhaitez, rendez-vous à:
+
+ %(admindb_url)s
+
+pour approuver ou rejeter la demande.
diff --git a/templates/fr/postheld.txt b/templates/fr/postheld.txt
new file mode 100644
index 00000000..35a0cd96
--- /dev/null
+++ b/templates/fr/postheld.txt
@@ -0,0 +1,16 @@
+Votre courrier à '%(listname)s' dont l'objet est
+
+ %(subject)s
+
+est en attente jusqu'à ce que le modérateur de la liste puisse
+le consulter pour approbation.
+
+La raison de cette mise en attente:
+
+ %(reason)s
+
+Le message sera soit envoyé à la liste, soit vous recevrez une
+indication de la décision du modérateur. Si vous souhaitez annuler le
+message, veillez visiter l'URL suivante:
+
+ %(confirmurl)s
diff --git a/templates/fr/private.html b/templates/fr/private.html
new file mode 100644
index 00000000..a7369bd4
--- /dev/null
+++ b/templates/fr/private.html
@@ -0,0 +1,45 @@
+<html>
+<head>
+ <title>Authentifi:cation pour l'acc&egrave;s aux archives priv&eacute;es de
+%(realname)s</title>
+</head>
+ <body bgcolor="#ffffff">
+
+<form method="post" action="%(action)s/"></form>
+ %(message)s
+<table width="100%" border="0" cellspacing="4" cellpadding="5">
+ <tr>
+ <td colspan="2" width="100%" bgcolor="#99ccff" align="center">
+<b><font color="#000000" size="+1">Authentification pour l'acc&egrave;s aux archives
+priv&eacute;es de %(realname)s</font></b>
+ </td>
+ </tr>
+ <tr>
+ <td><div align="right">Adresse courriel:</div></td>
+ <td><input type="text" name="username" size="30"></td>
+ </tr>
+ <tr>
+ <td><div align="right">Mot de passe:</div></td>
+ <td><input type="password" name="password" size="30"></td>
+ </tr>
+ <tr>
+ <td colspan="2" align="middle"><input type="submit"
+ name="submit"
+ value="Laissez-moi entrer...">
+ </td>
+ </tr>
+</table>
+<p><strong><em>Important:</em></strong> A partir d'ici, vous devez avoir
+les cookies activ&eacute;s dans votre navigateur, sinon aucun
+changement ne s'appliquera.
+<p>Les cookies de session sont utilis&eacute;s dans l'interface
+d'administration de Mailman pour que vous n'ayez pas &agrave; vous
+authentifier de nouveau &agrave; chaque op&eacute;ration. Le cookie
+expirera automatiquement lorsque vous quitterez votre navigateur, ou
+vous pouvez le forcer &agrave; expirer en cliquant sur le lien
+<em>D&eacute;connexion</em> en dessous d'<em>Autres op&eacute;rations
+administratives</em> (que vous verrez apr&egrave;s vous &ecirc;tre
+authentifi&eacute; avec succ&egrave;s).
+</form>
+</body>
+</html>
diff --git a/templates/fr/refuse.txt b/templates/fr/refuse.txt
new file mode 100644
index 00000000..119e124a
--- /dev/null
+++ b/templates/fr/refuse.txt
@@ -0,0 +1,13 @@
+Votre demande à la liste de diffusion %(listname)s
+
+ %(request)s
+
+a été rejetée par le modérateur de la liste. Le modérateur a
+donné la justification suivante cause de ce rejet:
+
+ "%(reason)s"
+
+Toute question ou commentaire doit être adressé à l'administrateur
+de la liste à l'adresse:
+
+ %(adminaddr)s \ No newline at end of file
diff --git a/templates/fr/roster.html b/templates/fr/roster.html
new file mode 100644
index 00000000..3a735331
--- /dev/null
+++ b/templates/fr/roster.html
@@ -0,0 +1,52 @@
+<HTML>
+ <HEAD>
+ <TITLE><MM-List-Name> Abonn&eacute;s</TITLE>
+
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+
+ <P>
+ <TABLE WIDTH="100%" COLS="1" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1">
+ Abonn&eacute;s &agrave; <MM-List-Name></FONT></B>
+ </TD>
+ </TR>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" ALIGN="CENTER">
+
+ <P align="right"> <MM-lang-form-start><MM-displang-box>
+ <MM-list-langs><MM-form-end></p>
+
+ <P>Cliquez sur votre adresse pour acc&eacute;der &agrave; votre
+ page d'options d'abonnement.<br><I>(Les entr&eacute;es entre
+ parenth&egrave;ses ne re&ccedil;oivent pas les soumissions.)</I></P>
+ </TD>
+ </TR>
+ <TR WIDTH="100%" VALIGN="top">
+ <TD BGCOLOR="#FFF0D0" WIDTH="50%">
+ <center>
+ <B><FONT COLOR="#000000"><MM-Num-Reg-Users>
+ Abonnés de <MM-List-Name> en remise non groupée:</FONT></B>
+ </center>
+ </TD>
+ <TD BGCOLOR="#FFF0D0" WIDTH="50%">
+ <center>
+ <B><FONT COLOR="#000000"><MM-Num-Digesters>
+ Abonnés de <MM-List-Name> en remise groupée:</FONT></B>
+ </center>
+ </TD>
+ </TR>
+ <TR VALIGN="top">
+ <td>
+ <P><MM-Regular-Users>
+ </td>
+ <td>
+ <P><MM-Digest-Users>
+ </td>
+ </tr>
+ </table>
+<MM-Mailman-Footer>
+</BODY>
+</HTML>
diff --git a/templates/fr/subauth.txt b/templates/fr/subauth.txt
new file mode 100644
index 00000000..83f02562
--- /dev/null
+++ b/templates/fr/subauth.txt
@@ -0,0 +1,10 @@
+Votre autorisation est requise pour une demande d'abonnement:
+
+ Pour: %(username)s
+ Liste: %(listname)s@%(hostname)s
+
+Quand vous pourrez, consultez:
+
+ %(admindb_url)s
+
+pour traiter la requête. \ No newline at end of file
diff --git a/templates/fr/subscribe.html b/templates/fr/subscribe.html
new file mode 100644
index 00000000..9198f7f4
--- /dev/null
+++ b/templates/fr/subscribe.html
@@ -0,0 +1,9 @@
+<!-- $Revision: 3798 $ -->
+<html>
+<head><title><MM-List-Name> R&eacute;sultats de l'abonnement</title></head>
+<body bgcolor="white">
+<h1><MM-List-Name> R&eacute;sultats de l'abonnement</h1>
+<MM-Results>
+<MM-Mailman-Footer>
+</body>
+</html>
diff --git a/templates/fr/subscribeack.txt b/templates/fr/subscribeack.txt
new file mode 100644
index 00000000..4e334455
--- /dev/null
+++ b/templates/fr/subscribeack.txt
@@ -0,0 +1,36 @@
+Bienvenue sur la liste %(real_name)s@%(host_name)s!
+%(welcome)s
+Pour écrire dans la liste, envoyez votre message à:
+
+ %(emailaddr)s
+
+Les informations générales concernant cette liste sont à l'adresse:
+
+ %(listinfo_url)s
+
+Si vous souhaitez vous désabonner ou modifier vos options (par
+exemple activer/désactiver l'envoi groupé, changer votre mot de
+passe, etc.), consultez votre page d'abonnement à l'adresse:
+
+ %(optionsurl)s
+%(umbrella)s
+Vous pouvez également procéder par mail en envoyant un message à:
+
+ %(real_name)s-request@%(host_name)s
+
+avec le mot `help' dans le sujet ou le corps du message (sans les
+guillemets), vous recevrez alors un message avec des instructions.
+
+Votre mot de passe est nécessaire pour ces modifications (y compris
+pour changer le mot de passe lui-même) ou pour résilier votre
+abonnement. Votre mot de passe est:
+
+ %(password)s
+
+En principe, Mailman vous rappellera mensuellement vos mots de passe
+pour les listes gérées sur %(host_name)s, rappel que vous pourrez
+toutefois désactiver à votre convenance. Cet avis mensuel contiendra
+également des instructions vous permettant de résilier votre
+abonnement si vous le désirez ou de modifier vos options
+d'abonnement. Vous trouverez un bouton dans la page de vos options
+pour vous faire parvenir votre mot de passe par courriel. \ No newline at end of file
diff --git a/templates/fr/unsub.txt b/templates/fr/unsub.txt
new file mode 100644
index 00000000..cffaf2a9
--- /dev/null
+++ b/templates/fr/unsub.txt
@@ -0,0 +1,22 @@
+Avis de confirmation de suppression de la liste %(listname)s
+
+Nous avons reçu une requête de %(remote)s demandant la suppression de
+votre adresse "%(email)s" de la liste %(listaddr)s. Pour confirmer
+cette rquête, répondez à ce message en laissant l'en-tête Objet: du
+message intact. Vous pouvez également visiter la page:
+
+ %(confirmurl)s
+
+Ou composez un message destiné à %(requestaddr)s contenant la ligne
+suivante -- et uniquement cette ligne --:
+
+ confirm %(cookie)s
+
+Notez qu'un simple `répondre' devrait fonctionner avec la plupart des
+lecteurs de courriels, puisque ceux-ci laissent l'Objet: au format
+correcte en général (un "Re:" devant l'objet passe).
+
+Si vous ne voulez pas être supprimé de la liste, ignorez simplement ce
+message. Si vous pensez qu'on est en train de vous supprimer de la
+liste de façon abusive ou si vous avez d'autres questions, envoyez-les
+à %(listadmin)s. \ No newline at end of file
diff --git a/templates/fr/unsubauth.txt b/templates/fr/unsubauth.txt
new file mode 100644
index 00000000..dfcad5ad
--- /dev/null
+++ b/templates/fr/unsubauth.txt
@@ -0,0 +1,11 @@
+Votre accord est nécessaire pour l'approbation d'une requête
+de résiliation d'abonnement:
+
+ Par: %(username)s
+ De: %(listname)s@%(hostname)s
+
+Dés que possible, visitez:
+
+ %(admindb_url)s
+
+pour traiter la requête.
diff --git a/templates/fr/userpass.txt b/templates/fr/userpass.txt
new file mode 100644
index 00000000..f8870eef
--- /dev/null
+++ b/templates/fr/userpass.txt
@@ -0,0 +1,24 @@
+Vous, ou quelqu'un qui se fait passer pour vous, a demandé un
+rappel de votre mot de passe d'abonné à la liste %(fqdn_lname)s.
+Vous aurez besoin de ce mot de passe pour modifier vos options
+d'abonnement (le choix entre les modes groupé et normal par exemple),
+ce mot de passe vous facilite la tâche si vous voulez vous désabonner.
+
+Vous êtes abonné avec l'adresse: %(user)s
+
+Votre mot de passe pour la liste %(listname)s est: %(password)s
+
+Pour modifier vos options d'abonnement, loggez-vous et visitez
+votre page d'options:
+
+ %(options_url)s
+
+Vous pouvez également procéder par mail en envoyant un message à:
+
+ %(requestaddr)s
+
+avec le mot "help" comme objet ou dans le corps du message, la réponse
+automatique contiendra plus d'instructions.
+
+Questions ou commentaires? Veillez les envoyer à l'administrateur
+de la liste %(listname)s at %(owneraddr)s.
diff --git a/templates/fr/verify.txt b/templates/fr/verify.txt
new file mode 100644
index 00000000..51a050ab
--- /dev/null
+++ b/templates/fr/verify.txt
@@ -0,0 +1,21 @@
+Avis de confirmation de demande d'abonnement pour la liste %(listname)s
+
+Nous avons reçu une demande de %(remote)s, pour l'abonnement de votre
+adresse courriel "%(email)s", à la liste de diffusion
+%(listaddr)s. Pour confirmer la demande, répondez à ce message en
+gardant l'objet: intact, ou visitez la page:
+
+ %(confirmurl)s
+
+ou mettez la ligne suivante - et seulement la ligne suivante -
+dans le corps d'un message à l'attention de %(requestaddr)s:
+
+ confirm %(cookie)s
+
+Notez qu'un simple `répondre' devrait marcher pour la plupart des
+lecteurs de courriel, puisque ceux-ci laissent en général l'objet: au
+format correct (un "Re:" devant l'objet passe).
+
+Si vous ne souhaitez pas vous abonner à cette liste, ignorez simplement
+ce message. Si vous pensez être abonné à la liste contre votre
+gré ou si avez d'autres questions, envoyez un message à %(listadmin)s.
diff --git a/templates/gb/admindbpreamble.html b/templates/gb/admindbpreamble.html
new file mode 100644
index 00000000..3c95fa42
--- /dev/null
+++ b/templates/gb/admindbpreamble.html
@@ -0,0 +1,22 @@
+Áбí<em>%(listname)s</em> ÖÐÓÐÐèÒªÄú´¦ÀíµÄÓû§ÇëÇó¡£
+Ê×ÏÈÄúÓ¦µ½Óû§ÇëÇóÍøÒ³²éѯÏà¹ØÑ¶Ï¢¡£
+
+<p>ÈôÊôÓÚ¶©ÔĵÄÉêÇ룬ÇëÑ¡Ôñ <b>Refuse</b> ¾Ü¾ø£¬»ò
+<b>Subscribe</b> ½ÓÊÜ¡£
+Èç¹ûÄú¾Ü¾ø¶©ÔĵÄÉêÇ룬Äú¿ÉÒÔÔÚ¶Ô»°¿òÖгÂÊö¾Ü¾ø¶©ÔĵÄÀíÓÉ¡£
+
+<p>ÈôÊôÓÚ´ý´¦ÀíµÄÐżþ£¬ÇëÑ¡Ôñ
+
+<ul>
+<li><b>Defer</b> - ÔÝ»º¾ö¶¨¡£Äú»¹²»Ïë´¦ÀíÕâЩÐżþ¡£
+<li><b>Approve</b> - °ÑÐżþ·¢µ½ÁбíÖС£
+<li><b>Reject</b> - ÍËÐŲ¢Ïò¼ÄÐÅÈ˼ò¶Ì˵Ã÷ÍËÐÅÔ­Òò£¬¸ÃÐżþ²»»á·¢ÈëÁÐ±í¡£
+<li><b>Discard</b> - Ö±½Ó¶ªÆú£¬´ËÑ¡Ïî¶ÔÓÚÀ¬»øÓʼþÊ®·ÖÓÐÓá£
+</ul>
+
+<p>Èç¹ûÐżþÊǸø¹ÜÀíÔ±£¬Èç¹ûÄúÒª´æÒ»·Ý¸±±¾Ê±£¬½« <b>Preserve</b> Ñ¡Ïî´ò¿ª¡£
+ÕâÑ¡Ïî¶ÔÂîÈ˵ÄÐżþºÜÓÐÓà ¡£ Èç¹ûÄúÏ뽫Ðżþת¼Ä²»ÔÚ´ËÁбíµÄÈËÊ¿£¬½«
+<b>Forward to</b> Ñ¡Ïî´ò¿ª£¬²¢ÌîÉÏתÐŵØÖ·¡£
+
+<p>µ±ÄúÍê³É¹¤×÷£¬Çë°´ÔÚÍøÒ³ÉÏ·½»òÏ·½µÄ <em>Submit All Data</em> °´Å¥
+ÒÔ±ãÖ´ÐÐÄúµÄ¾ö¶¨¡£Èç¹ûÄú²»ÏëÏÖÔÚ×÷¾ö¶¨£¬ÇëÎð°´´ËÅ¥¡£ ÉÔºòÄú¿ÉÒÔÔÙ¾ö¶¨¡£
diff --git a/templates/gb/adminsubscribeack.txt b/templates/gb/adminsubscribeack.txt
new file mode 100644
index 00000000..3cb7271f
--- /dev/null
+++ b/templates/gb/adminsubscribeack.txt
@@ -0,0 +1,2 @@
+%(member)s ÒѾ­¶©ÔÄ %(listname)s ³É¹¦ÁË.
+
diff --git a/templates/gb/adminunsubscribeack.txt b/templates/gb/adminunsubscribeack.txt
new file mode 100644
index 00000000..eab93abd
--- /dev/null
+++ b/templates/gb/adminunsubscribeack.txt
@@ -0,0 +1,3 @@
+%(member)s ÒѾ­È¡Ïû¶©ÔÄ %(listname)s ÁË.
+
+
diff --git a/templates/gb/admlogin.html b/templates/gb/admlogin.html
new file mode 100644
index 00000000..68a670a2
--- /dev/null
+++ b/templates/gb/admlogin.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+ <title>%(listname)s ÁÐ±í ¹ÜÀíÔ±ÑéÖ¤</title>
+</head>
+<body bgcolor="#ffffff">
+<FORM METHOD=POST ACTION="%(path)s">
+%(message)s
+ <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1">%(listname)s ÁÐ±í ¹ÜÀíÔ±ÑéÖ¤</FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <TD> <div ALIGN="Right"> ¹ÜÀíÔ±ÃÜÂë: </div> </TD>
+ <TD> <INPUT TYPE=password NAME=adminpw SIZE=30></TD>
+ </tr>
+ <tr>
+ <td colspan=2 align=middle> <INPUT TYPE=SUBMIT name="request_login"
+ value="ÎÒÌîºÃÁË...">
+ </td>
+ </tr>
+ </TABLE>
+ <p><strong><em>ÖØµã:</em></strong> ´ÓÏÖÔÚ¿ªÊ¼£¬ Äú±ØÐë
+ ½«ä¯ÀÀÆ÷µÄ cookie ¹¦ÄÜ´ò¿ª£¬·ñÔòÄúËù×÷µÄ¸Ä¶¯½«²»»á·¢ÉúЧÓá£
+
+ <p>Mailman µÄ¹ÜÀí½éÃæÊ¹ÓÃÁË Session cookies £¬ Òò´ËÄú²»ÐèÒªÔÚÿ´Î
+ ¸Ä¶¯×ÊÁÏÊ±ÖØÐÂÑéÖ¤ÃÜÂë¡£´Ëcookie ÔÚÄú¹Ø±Õä¯ÀÀÆ÷ʱ×Ô¶¯Ê§Ð§£¬
+ »òÕßÄú°´ÏÂÔÚ <em>Other Administrative Activities</em> ÍøÒ³ÖÐ
+ <em>Logout</em> µÄÁ´½Ó (Ò»µ©Äú³É¹¦µÄµÇ¼֮ºó£¬Äú¾Í¿ÉÒÔ¿´µ½)¡£
+</FORM>
diff --git a/templates/gb/approve.txt b/templates/gb/approve.txt
new file mode 100644
index 00000000..6234ecad
--- /dev/null
+++ b/templates/gb/approve.txt
@@ -0,0 +1,12 @@
+ÄúÏò %(requestaddr)s Ìá³öµÄÉêÇë :
+
+ %(cmd)s
+
+ÒѾ­×ªË͹ÜÀíÔ± .
+
+Õâͨ³£ÊÇÒòΪÄú³¢ÊÔ¶©ÔÄÒ»¸ö '·â±Õ' µÄÁбí.
+Äú»áÊÕµ½Áбí¹ÜÀíÔ±¶ÔÓÚÄú¶©ÔÄÉêÇëµÄ¾ö¶¨ .
+
+¼Ùʹ¶ÔÁбí¹ÜÀíÔ±µÄ×ö·¨ÓÐÈκεÄÎÊÌâ , ÇëÖ±½ÓÁªÏµ :
+
+ %(adminaddr)s
diff --git a/templates/gb/bounce.txt b/templates/gb/bounce.txt
new file mode 100644
index 00000000..9471b260
--- /dev/null
+++ b/templates/gb/bounce.txt
@@ -0,0 +1,12 @@
+ÕâÊÇÒ»·â Mailman µç×ÓÓʼþÁбíÍËÐÅ֪ͨ :
+
+ List(Áбí): %(listname)s
+ Member(³ÉÔ±): %(addr)s
+ Action(¶¯×÷): ¶©ÔÄ %(negative)s%(did)s.
+ Reason(ÀíÓÉ): ÍËÐÅ´ÎÊýÌ«¶à.
+ %(but)s
+
+%(reenable)s
+ÍËÐŵÄ֪ͨÄÚÈÝÈçÏÂ.
+
+ÓÐÈκÎÒÉÎÊÇëÖ±½ÓÁªÏµ Mailman ×ܹÜÀíÔ± %(owneraddr)s.
diff --git a/templates/gb/checkdbs.txt b/templates/gb/checkdbs.txt
new file mode 100644
index 00000000..04b00310
--- /dev/null
+++ b/templates/gb/checkdbs.txt
@@ -0,0 +1,8 @@
+ %(real_name)s@%(host_name)s µÄÁбíÖÐÉÐÓÐ %(count)d ÏîÒªÇó
+µÈ´ýÄúµÄ´¦Àí , Çëµ½ :
+
+ %(adminDB)s
+
+Ç뾡¿ì´¦Àí !
+
+ps. ÈôÓÐÉêÇëÊÂÏî´ý´¦Àíʱ , ±¾Í¨Öª½«Ã¿ÈÕ×Ô¶¯·¢ËÍ .
diff --git a/templates/gb/convert.txt b/templates/gb/convert.txt
new file mode 100644
index 00000000..6f806175
--- /dev/null
+++ b/templates/gb/convert.txt
@@ -0,0 +1,40 @@
+The %(listname)s mailing list has just undergone a big change. It is
+running on a new mailing list package called "Mailman". This will
+hopefully solve a lot of problems that administering this list has
+presented.
+
+How does this affect you?
+¶ÔÄúµÄÓ°Ïì ?
+
+1) Mail intended for the whole list should be sent to: %(listaddr)s.
+
+2) You have been given an arbitrary password to prevent others from
+unsubscribing you without your knowledge. It will be mailed to you in
+a separate email, which you may have already received. Don't worry if
+you forget this password; a reminder will be sent to you via email
+every month.
+
+3) If you have World Wide Web access, you can use it any time to
+unsubscribe from this list, to switch to and from digest mode, to
+check back issues of the list (which will be available after the list
+has been getting posts for a day or so), etc. The Web address for
+these resources is:
+
+ %(listinfo_url)s
+
+4) Èç¹ûÄú²»ÄÜÓÉ WWW ´æÈ¡ , Äú¿ÉÒÔͨ¹ý email ´ïµ½ÏàͬµÄ¹¦ÄÜ .
+ email Ò»·â±êÌâ»òÄÚÎÄΪ "help" ( ²»ÐèÒýºÅ )Ò»¸öµ¥×Öµ½
+ %(requestaddr)s .Äú»áÊÕµ½×Ô¶¯»Ø¸´µÄ email , ÉÏÃæ»áÓиüÏê
+ϸµÄ˵Ã÷ .
+
+Please address any questions or problems with this new setup to:
+¶ÔеÄÉ趨ÓÐÈκεÄÒÉÎÊÇëÁªÏµ:
+
+%(adminaddr)s.
+
+
+±¾ÓʼþÓÉ Mailman %(version)s ×Ô¶¯²úÉú , ¹ØÓÚ Mailman Èí¼þµÄ
+ÏêϸÐÅÏ¢Çë·ÃÎÊ Mailman µÄÖ÷Ò³
+
+http://www.list.org/
+
diff --git a/templates/gb/cronpass.txt b/templates/gb/cronpass.txt
new file mode 100644
index 00000000..99658390
--- /dev/null
+++ b/templates/gb/cronpass.txt
@@ -0,0 +1,16 @@
+ÕâÊÇÒ»·â±¸ÍüÐÅ , ÿÔÂÒ»´Î½«ÄúÔÚ %(hostname)s È«²¿ÁбíµÄ¶©
+ÔÄÇé¿ö¼°ÈçºÎ±ä¸ü»òÈ¡Ïû¶©Ôĵķ½·¨ email ¸øÄú .
+
+Äú¿ÉÒÔÁ¬Ïßµ½ URLs ±ä¸ü¶©ÔÄÉ趨»òÈ¡Ïû¶©ÔÄ...µÈµÈ.
+
+³ýÁË URL µÄ½çÃæÒÔÍâ , ÄúÒ²¿Éͨ¹ý email ±ä¸ü¶©ÔÄÉ趨»òÈ¡
+Ïû¶©ÔÄ...µÈµÈ . ÏêÇéÇëÒÔ "help" Ϊ±êÌâ»òÄÚÎÄ email µ½ÂÛ̳µÄ
+ '-request' ÕʺŠ(ÀýÈç ,%(exreq)s) . Äú½«ÊÕµ½ÏêϸµÄÖ¸µ¼ .
+
+¼ÙʹÄúÓÐÈκÎÒÉÎÊ , À§ÈÅ , ½¨Òé ... µÈµÈ , Çë email ¸ø
+
+%(owner)s.
+
+лл!
+
+%(useraddr)s µÄÃÜÂë :
diff --git a/templates/gb/handle_opts.html b/templates/gb/handle_opts.html
new file mode 100644
index 00000000..75e4c072
--- /dev/null
+++ b/templates/gb/handle_opts.html
@@ -0,0 +1,9 @@
+<!-- $Revision: 3821 $ -->
+<html>
+<title><MM-List-Name> <MM-Operation> Results</title>
+<body>
+<h1><MM-List-Name> <MM-Operation> Results</h1>
+<MM-Results>
+<MM-Mailman-Footer>
+</body>
+</html>
diff --git a/templates/gb/headfoot.html b/templates/gb/headfoot.html
new file mode 100644
index 00000000..ea5af5e8
--- /dev/null
+++ b/templates/gb/headfoot.html
@@ -0,0 +1,23 @@
+±¾ÎĿɰüº¬ <b><code>%(attribute)s</code></b> ¸ñʽ×Ö´®£¬Õâ¿ÉÒÔÌæ»»ÎªÓʼþÁбí
+ÏàÓ¦µÄÊôÐÔ¡£ÏêÇéÇë²ÎÕÕ
+<a href="http://www.python.org/doc/current/lib/typesseq-strings.html">Python
+¸ñʽ»¯×Ö´®¹æÔò</a>. Ô¤ÉèÊôÐÔÈçÏ¡Ã
+
+<ul>
+ <li><b><code>real_name</code></b> - ±¾ÂÛ̳ "ºÃÌý" µÄÃû³Æ£»
+ ͨ³£¶¼Óôóд¡£
+
+ <li><b><code>_internal_name</code></b> - ´ËÂÛ̳Ãû³ÆÓÃÓÚ URL ʶ±ð
+ £¬Æä´óСд²»¿ÉÓÃ´í¡£
+
+ <li><b><code>host_name</code></b> - ÁбíËùÔڵķþÎñÆ÷Ö÷»úµÄÏêϸÃû³Æ£¨FQDN£©¡£
+
+ <li><b><code>web_page_url</code></b> - Mailman µÄ URL base. Æäºó¿ÉÌí¼Ó
+ һЩ²ÎÊýÒÔ²úÉúÓÐÓõÄÍøÖ·¡£
+ ÀýÈç¡Ã ¼ÓÉÏ <em><code>listinfo/%(_internal_name)s</code></em>
+ ¿É²úÉúÓʼþÁбíµÄ listinfo ÍøÖ·¡£
+
+ <li><b><code>description</code></b> - ¸ÃÓʼþÁбíµÄժҪ˵Ã÷¡£
+
+ <li><b><code>info</code></b> - ¸ÃÓʼþÁбíµÄÏêϸ˵Ã÷¡£
+</ul>
diff --git a/templates/gb/help.txt b/templates/gb/help.txt
new file mode 100644
index 00000000..654eda31
--- /dev/null
+++ b/templates/gb/help.txt
@@ -0,0 +1,33 @@
+Help for %(listname)s mailing list:
+
+This is email command help for version %(version)s of the "Mailman"
+list manager. The following describes commands you can send to get
+information about and control your subscription to Mailman lists at
+this site. A command can be in the subject line or in the body of the
+message.
+
+Note that much of the following can also be accomplished via the World
+Wide Web, at:
+
+ %(listinfo_url)s
+
+In particular, you can use the Web site to have your password sent to
+your delivery address.
+
+List specific commands (subscribe, who, etc) should be sent to the
+*-request address for the particular list, e.g. for the 'mailman'
+list, use 'mailman-request@...'.
+
+About the descriptions - words in "<>"s signify REQUIRED items and
+words in "[]" denote OPTIONAL items. Do not include the "<>"s or
+"[]"s when you use the commands.
+
+The following commands are valid:
+
+ %(commands)s
+
+Commands should be sent to %(requestaddr)s
+
+Questions and concerns for the attention of a person should be sent to
+
+ %(adminaddr)s
diff --git a/templates/gb/listinfo.html b/templates/gb/listinfo.html
new file mode 100644
index 00000000..e8c7e3bc
--- /dev/null
+++ b/templates/gb/listinfo.html
@@ -0,0 +1,127 @@
+<!-- $Revision: 5012 $ -->
+<HTML>
+ <HEAD>
+ <TITLE><MM-List-Name> Ïà¹ØÐÅÏ¢ </TITLE>
+
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+
+ <P>
+ <TABLE COLS="1" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1"><MM-List-Name> --
+ <MM-List-Description></FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <p>&nbsp;
+ </td>
+ </tr>
+ <tr>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000">¹ØÓÚ <MM-List-Name> Áбí</FONT></B>
+ </TD>
+ <TD COLSPAN="1" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <MM-lang-form-start><MM-displang-box> <MM-list-langs>
+ <MM-form-end>
+ <MM-Subscribe-Form-Start>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <P><MM-List-Info></P>
+ <p> Ïë²é¿´±¾ÁбíÖеľÉÐÅ£¬Çë·ÃÎÊ <MM-Archive><MM-List-Name>
+ µµ°¸ÊÒ</MM-Archive>¡£
+ <MM-Restricted-List-Message>
+ </p>
+ </TD>
+ </TR>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000">ʹÓà <MM-List-Name> Áбí</FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ ÏëÔÚÁÐ±í·¢ÑÔ£¬Çë¼Äµ½ <A
+HREF="mailto:<MM-Posting-Addr>"><MM-Posting-Addr></A>¡£
+
+ <p>ÔÚÏÂÃæµÄÍøÒ³¿ÉÈÃÄú¿ÉÒÔ¼ÓÈëÕâ¸öÁÐ±í£¬»ò±ä¸ü¶©ÔÄÉ趨¡£
+ </td>
+ </tr>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000">¼ÓÈë <MM-List-Name> Áбí</FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <P>
+ Óû¼ÓÈë(¶©ÔÄ) <MM-List-Name> ÁбíÇëÌîºÃÏÂÁÐ×ÊÁÏ¡£
+ <MM-List-Subscription-Msg>
+ <ul>
+ <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"
+ WIDTH="70%" HEIGHT= "112">
+ <TR>
+ <TD BGCOLOR="#dddddd" WIDTH="55%">ÄúµÄ E-Mail:</TD>
+ <TD WIDTH="33%"><MM-Subscribe-Box>
+ </TD>
+ <TD WIDTH="12%">&nbsp;</TD></TR>
+ <TR>
+ <TD COLSPAN="3"><FONT SIZE=-1>
+ Äã ±Ø Ðë Êä Èë Ò» ¸ö ˽ ÈË ÃÜ Âë ÒÔ ¹© È¡ Ïû ¶© ÔÄ »ò Æä Ëû Ïà ¹Ø Éè ¶¨ µÄ
+Ȩ Á¦ ¡£ <b> Çë Îð ʹ Óà ÓÐ ¼Û Öµ µÄ ÃÜ Âë</b> ! Òò Ϊ ż ¶û ¿É ÄÜ ½« ÃÜ Âë ÒÔ
+Ã÷ Âë µÄ ·½ ʽ ÓÊ ¼Ä ¸ø Äú¡£
+ <MM-Reminder>
+ </TD>
+ </TR>
+ <TR>
+ <TD BGCOLOR="#dddddd">ÊäÈëÃÜÂë:</TD>
+ <TD><MM-New-Password-Box></TD>
+ <TD>&nbsp;</TD></TR>
+ <TR>
+ <TD BGCOLOR="#dddddd">È·ÈÏÊäÈëÃÜÂë:</TD>
+ <TD><MM-Confirm-Password></TD>
+ <TD>&nbsp; </TD></TR>
+ <tr>
+ <TD BGCOLOR="#dddddd"> ÄúʹÓõÄÓïÑÔ?</TD>
+ <TD> <MM-list-langs></TD>
+ <TD>&nbsp; </TD></TR>
+ <tr>
+ <td>Äã Ïë ÒÔ Ã¿ ÈÕ Õª Òª µÄ ÐΠʽ ÊÕ ÐÅ Âð ?
+ </td>
+ <td><MM-Undigest-Radio-Button> No
+ <MM-Digest-Radio-Button> Yes
+ </TD>
+ </tr>
+ <tr>
+ <td colspan="3">
+ <center><MM-Subscribe-Button></P></center>
+ </TABLE>
+ <MM-Form-End>
+ </ul>
+ </td>
+ </tr>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <a name="subscribers">
+ <B><FONT COLOR="#000000"><MM-List-Name> ¶© ÔÄ Õß </FONT></B></a>
+ </TD>
+ </TR>
+ <tr>
+ <TD COLSPAN="2" WIDTH="100%">
+ <MM-Roster-Form-Start>
+ <MM-Roster-Option>
+ <MM-Form-End>
+ <p>
+ <MM-Options-Form-Start>
+ <MM-Editing-Options>
+ <MM-Form-End>
+ </td>
+ </tr>
+ </table>
+<MM-Mailman-Footer>
+</BODY>
+</HTML>
diff --git a/templates/gb/masthead.txt b/templates/gb/masthead.txt
new file mode 100644
index 00000000..4d332130
--- /dev/null
+++ b/templates/gb/masthead.txt
@@ -0,0 +1,18 @@
+ÏëÔÚ %(real_name)s ÁÐ±í·¢ÑÔ , Çë email ¸ø
+
+ %(got_list_email)s
+
+¾­ÓÉ WWW ¶©ÔÄ»òÈ¡Ïû¶©ÔÄ , Çëµ½
+
+ %(got_listinfo_url)s
+
+»òͨ¹ý email , ËͳöÒ»·â±êÌâ»òÄÚÎÄΪ 'help' µ½
+
+ %(got_request_email)s
+
+ÏëÓëÁбí¹ÜÀíԱȡµÃÁªÏµÊ± , Çë email ¸ø
+
+ %(got_owner_email)s
+
+µ±»ØÐÅʱ , Çë¸øÒ»¸öÊʵ±µÄ±êÌâ , ÕâÑù»á±È
+ "Re: Contents of %(real_name)s digest..."¸üÇå³þÃ÷°×.
diff --git a/templates/gb/newlist.txt b/templates/gb/newlist.txt
new file mode 100644
index 00000000..2ca2b947
--- /dev/null
+++ b/templates/gb/newlist.txt
@@ -0,0 +1,32 @@
+ÏÂÃæÊÇÄúн¨Á¢µÄ `%(listname)s' µç×ÓÓʼþÁбíµÄÏà¹ØÐÅÏ¢.
+
+Áбí¹ÜÀíÔ±µÄÃÜÂëÊÇ:
+
+ %(password)s
+
+¹ÜÀíÓëÉèÖõç×ÓÓʼþÁбí¾ùÐèÒªÃÜÂë. ÀýÈçºË×¼·¢ÑÔȨ...µÈµÈ.
+
+Äú¿ÉÔÚÒÔϵÄÍøÒ³ÉèÖÃÄúµÄµç×ÓÓʼþÁбí .
+
+ %(admin_url)s
+
+Áбí³ÉÔ±µÄÏà¹ØÐÅÏ¢ÍøÒ³ÔÚ:
+
+ %(listinfo_url)s
+
+Äú¿ÉÒÔ×Ô¶©µç×ÓÓʼþÁбíµÄÉèÖÃÍøÒ³. µ±È» , Äú¶Ô HTML ÐèÒªÓÐ
+Ò»µãÈÏʶ.
+
+ÁíÍâ , ʹÓÃÕß(·Ç¹ÜÀíÔ±)Ò²¿Éͨ¹ý email ΪÖ÷µÄ·½Ê½ÉèÖÃ×Ô¼ºµÄ
+Ñ¡Ïî (Òë×¢ : ²»½¨Òé´Ë·½°¸) ; ÈôÐèÒªÏà¹ØµÄÐÅÏ¢ , Äú¿ÉÒ԰ѵ¥¶À
+'help' Ò»¸öµ¥´ÊΪÖ÷Ìâ»òÄÚÎÄ email µ½ÒÔϵÄÕʺŠ:
+
+ %(requestaddr)s
+
+ÏëÈ¡Ïû¶©ÔÄ:ÇëÓÉ µç×ÓÓʼþÁбí 'listinfo' ÍøÒ³,µãÑ¡»òÊäÈë¶©ÔÄÈË
+µÄ email ÕʺÅ. È¡Ïû¶©ÔÄÐèÒªÃÜÂë.ÇëÊäÈë¹ÜÀíÔ±µÄÃÜÂë .
+ͬÀí, Äã¿ÉÒÔ±ä¸üʹÓÃÕßÑ¡Ïî. ÀýÈç:ÔÝÍ£ËÍÐÅ...µÈµÈ .
+
+ÈôÓÐÈκÎʹÓÃÉϵÄÎÊÌâÇë email µ½:
+
+%(siteowner)s
diff --git a/templates/gb/options.html b/templates/gb/options.html
new file mode 100644
index 00000000..3cc02f85
--- /dev/null
+++ b/templates/gb/options.html
@@ -0,0 +1,150 @@
+<!-- $Revision: 3821 $ -->
+<html>
+<head>
+<title><MM-Presentable-User> <MM-List-Name>ÁбíÉèÖÃ</title>
+
+</head>
+<BODY BGCOLOR="#ffffff">
+ <TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#99CCFF"><B>
+ <FONT COLOR="#000000" SIZE=+1>
+<MM-List-Name><MM-Presentable-User> µÄÉèÖÃ
+ </FONT></B></TD></TR> </TABLE>
+<MM-Form-Start>
+
+<p>
+
+<b><MM-Presentable-User></b>
+ ÔÚ <MM-List-Name> ÁбíµÄ¶©ÔÄ״̬£¬ÃÜÂë¼°Ñ¡Ïî¡£
+<MM-Case-Preserved-User>
+
+<MM-Disabled-Notice>
+
+<p>
+
+<a name=unsub>
+ <TABLE WIDTH="100%" BORDER="0" CELLSPACING=5" CELLPADDING="5">
+ <TR><TD WIDTH="50%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+<B>È¡Ïû¶©ÔÄ<MM-List-Name></B>
+ <TD WIDTH="50%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+<B>ÄúÆäËüÔÚ <MM-Host> µÄ¶©ÔÄ</B>
+ </FONT></TD></TR>
+
+ <tr>
+ <td>
+
+ÏëÈ¡Ïû¶©ÔÄÇëÊäÈëÄúµÄÃÜÂëºó°´´Ë°´Å¥£¨ÈôÄúÍü¼ÇÃÜÂ룬Çë¼ûÏÂÎÄÈçºÎÈ¡µÃÄúµÄÃÜÂ룩
+
+<p>
+ÃÜÂë: <MM-Unsub-Pw-Box> &nbsp;
+<MM-Unsubscribe-Button>
+</a>
+ <td>
+
+ÊäÈëÄúµÄÃÜÂë¿ÉÁ¬½áµ½ÄúÔÚ±¾ÁбíÆäËüµÄ¶©ÔĵÄÉ趨»­Ãæ¡£
+
+<p>
+ÃÜÂë: <MM-Other-Subscriptions-Pw-Box> <MM-Other-Subscriptions-Submit><p>
+
+ </TD></TR> </table>
+
+ <TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD COLSPAN=2 WIDTH="100%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+<B>ÄúÔÚ <MM-List-Name> µÄÃÜÂë</B>
+ </FONT></TD>
+</TR>
+<tr valign="TOP">
+<td WIDTH="50%">
+<a name=reminder>
+<center>
+<h3>Íü¼ÇÃÜÂëÔõô°ì?</h3>
+</center>
+°´Ï´ËÅ¥¿É½«ÄúµÄÃÜÂëÓʼĸøÄú¡£<p>
+<MM-Umbrella-Notice>
+<center>
+<MM-Email-My-Pw>
+</center>
+</td>
+<td WIDTH="50%">
+<a name=changepw>
+<center>
+<h3>±ä¸üÃÜÂë</h3>
+ <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2" WIDTH="70%" COLS=2>
+ <TR>
+ <TD WIDTH="30%" BGCOLOR="#dddddd">¾ÉÃÜÂë:</TD>
+ <TD WIDTH="70%"><MM-Old-Pw-Box></TD>
+ </TR>
+ <TR>
+ <TD BGCOLOR="#dddddd">ÐÂÃÜÂë:</TD>
+ <TD><MM-New-Pass-Box></TD>
+ </TR>
+ <TR>
+ <TD BGCOLOR="#dddddd">ÔÙÊäÈëÒ»´ÎÐÂÃÜÂë:</TD>
+ <TD><MM-Confirm-Pass-Box></TD>
+ </TR>
+</table>
+ <MM-Change-Pass-Button>
+ </TABLE>
+
+<p>
+
+<a name=options>
+ <TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+<B>Your <MM-List-Name> ¶©ÔÄÑ¡Ïî</B>
+ </FONT></TD></TR> </table>
+
+<p>
+<i><strong>ÏÖÔÚµÄÉ趨ֵÒѼǼ¡£</strong></i><p>
+<p>
+<TABLE BORDER="0" CELLSPACING="2" CELLPADDING="3" WIDTH="80%">
+<tr><TD BGCOLOR="#dcdcdc">
+<a name="disable">
+<strong> ÔÝÍ£ÊÕÐÅ </strong> <br>
+Èç¹ûÄú¶ÌÆÚÄÚ²»ÏëÊÕµ½Áбí¼Ä³öµÄÐÅ£¬ÇëÑ¡ On¡£<br>
+<mm-delivery-enable-button> Off
+<mm-delivery-disable-button> On <p>
+</a>
+</td></tr>
+<tr><TD BGCOLOR="#dcdcdc">
+<strong> É趨ժҪģʽ</strong> <br>
+ÈôÄúÑ¡ÔñժҪģʽ£¬Äú»áÊÕµ½Ã¿ÌìÊÕ¼¯³ÉÒ»·âµÄÕªÒª£¬¶ø²»ÊÇÿ´Î·¢ÑÔÒ»·â¡£
+Ò»µ©Äú½«Ñ¡ÏîÓÉ On תΪ Off Äú»áÊÕµ½×î½üÒ»·âµÄÕªÒª¡£<br>
+<MM-Undigest-Radio-Button> Off
+<MM-Digest-Radio-Button> On<br>
+</td></tr>
+<tr><TD BGCOLOR="#dcdcdc">
+<strong> ÊÕ MIME »ò ´¿ÎÄ×ÖµÄÕªÒª?</strong> <br>
+Èç¹ûÄúÊÕ MIME µÄÕªÒªÓÐÎÊÌ⣬ÇëÑ¡Ôñ´¿ÎÄ×ÖµÄÕªÒª¡£<br>
+<MM-Mime-Digests-Button> MIME
+<MM-Plain-Digests-Button> ´¿ÎÄ×Ö <p>
+</td></tr>
+<tr><TD BGCOLOR="#dcdcdc">
+<strong> ÄúÏëÊÕµ½×Ô¼º¼Äµ½ÁбíµÄÐÅÂð? </strong><br>
+<mm-receive-own-mail-button> Yes
+<mm-dont-receive-own-mail-button> No <p>
+</td></tr>
+<tr><TD BGCOLOR="#dcdcdc">
+<strong> ÄúÏëÔÚ¼ÄÐŵ½Áбíºó£¬ÊÕµ½È·ÈÏÐÅÂð? </strong><br>
+<mm-dont-ack-posts-button> No
+<mm-ack-posts-button> Yes <p>
+</td></tr>
+<tr><TD BGCOLOR="#dcdcdc">
+<strong> Äú²»Ïë³öÏÖÔÚ¶©ÔÄÕßÃûµ¥ÖÐÂð? </strong><br>
+<MM-Public-Subscription-Button> No
+<MM-Hide-Subscription-Button> Yes <p>
+</td></tr>
+<tr><TD BGCOLOR="#dcdcdc">
+<strong> ÄúÊÊÓõÄÓïÑÔ?</strong><MM-list-langs>
+</td></tr>
+<tr><TD BGCOLOR="#dcdcdc">
+ÃÜÂë: <MM-Digest-Pw-Box> <MM-Digest-Submit><p>
+</td></tr></table>
+</center>
+
+<p>
+<MM-Form-End>
+
+<MM-Mailman-Footer>
+</body>
+</html>
diff --git a/templates/gb/postack.txt b/templates/gb/postack.txt
new file mode 100644
index 00000000..ce0a57cb
--- /dev/null
+++ b/templates/gb/postack.txt
@@ -0,0 +1,7 @@
+ÄúµÄÐÅÏ¢±êÌâΪ:
+
+ %(subject)s
+
+%(listname)s ÁбíÒѾ­³É¹¦ÊÕµ½ÁË.
+
+±¾ÁбíÏà¹ØÐÅÏ¢ÍøÒ³ÔÚ : %(listinfo_url)s
diff --git a/templates/gb/postauth.txt b/templates/gb/postauth.txt
new file mode 100644
index 00000000..14f7779e
--- /dev/null
+++ b/templates/gb/postauth.txt
@@ -0,0 +1,12 @@
+±¾ÁÐ±í·¢ÑÔÐë¾­ÄúµÄºË×¼ :
+
+ List(ÁбíÃû³Æ) : %(listname)s@%(hostname)s
+ From(·¢ÐÅÈË) : %(sender)s
+ Subject(±êÌâ) : %(subject)s
+ Reason(ÁôÖÃÔ­Òò): %(reason)s
+
+Ϊ·½±ãÄú²Ù×÷Æð¼û , Çëµ½ :
+
+ %(admindb_url)s
+
+ÔÊÐí»ò¾Ü¾ø·¢ÑÔÉêÇë .
diff --git a/templates/gb/postheld.txt b/templates/gb/postheld.txt
new file mode 100644
index 00000000..bdebf891
--- /dev/null
+++ b/templates/gb/postheld.txt
@@ -0,0 +1,11 @@
+Äú¼Äµ½Áбí '%(listname)s' µÄÓʼþ , ±êÌâΪ :
+
+ %(subject)s
+
+ÒѾ­ÔâÁôÖà , Ö±µ½Áбí¹ÜÀíÔ±Éó²éÊÇ·ñ·ÅÐÐ .
+
+ÁôÖÃÓʼþµÄÔ­ÒòΪ :
+
+ %(reason)s
+
+ÄúµÄ email ¿ÉÄÜ»áË͵½Áбí , »òÕßÊÇÊÕµ½¹ÜÀíÔ±µÄ¾ö¶¨Í¨Öª .
diff --git a/templates/gb/refuse.txt b/templates/gb/refuse.txt
new file mode 100644
index 00000000..0221fb47
--- /dev/null
+++ b/templates/gb/refuse.txt
@@ -0,0 +1,11 @@
+ÄúÔÚ %(listname)s ÁбíÌá³öµÄÉêÇë
+
+ %(request)s
+
+ÒѾ­±»¹ÜÀíÔ±¾Ü¾ø . ¹ÜÀíÔ±»Ø¸´¾Ü¾øµÄÔ­ÒòÈçÏ :
+
+ %(reason)s
+
+ÈôÓÐÆäËûµÄÎÊÌâ»ò½¨Òé , ÇëÁªÏµ¹ÜÀíÔ± :
+
+ %(adminaddr)s
diff --git a/templates/gb/roster.html b/templates/gb/roster.html
new file mode 100644
index 00000000..03659654
--- /dev/null
+++ b/templates/gb/roster.html
@@ -0,0 +1,50 @@
+<!-- $Revision: 3821 $ -->
+<HTML>
+ <HEAD>
+ <TITLE><MM-List-Name> ¶©ÔÄ»áÔ±</TITLE>
+
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+
+ <P>
+ <TABLE WIDTH="100%" COLS="1" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1"><MM-List-Name>
+ ¶©ÔÄ»áÔ±Ò»ÀÀ±í</FONT></B>
+ </TD>
+ </TR>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" ALIGN="CENTER">
+ <P align = "right"> <MM-lang-form-start><MM-displang-box>
+ <MM-list-langs><MM-form-end></p>
+ <P>µã Ñ¡ Äú µÄ email ¿É µ½ ¸ö ÈË µÄ ¶© ÔÄ Éè ¶¨ Íø Ò³ ¡£
+ <br><I>(À¨ ºÅ À¨ Æð À´ µÄ ´ú ±í Çë ¼Ù ÖÐ ( ÔÝ Í£ ÊÕ ÐÅ )¡£)</I></P>
+ </TD>
+ </TR>
+ <TR WIDTH="100%" VALIGN="top">
+ <TD BGCOLOR="#FFF0D0" WIDTH="50%">
+ <center>
+ <B><FONT COLOR="#000000"> <MM-List-Name> Ò» °ã »á Ô± :
+ <MM-Num-Reg-Users> ÈË </FONT></B>
+ </center>
+ </TD>
+ <TD BGCOLOR="#FFF0D0" WIDTH="50%">
+ <center>
+ <B><FONT COLOR="#000000">
+ <MM-List-Name> ÿ ÈÕ ºÏ ¼Ä :<MM-Num-Digesters> ÈË </FONT></B>
+ </center>
+ </TD>
+ </TR>
+ <TR VALIGN="top">
+ <td>
+ <P><MM-Regular-Users>
+ </td>
+ <td>
+ <P><MM-Digest-Users>
+ </td>
+ </tr>
+ </table>
+<MM-Mailman-Footer>
+</BODY>
+</HTML>
diff --git a/templates/gb/subauth.txt b/templates/gb/subauth.txt
new file mode 100644
index 00000000..b0dac944
--- /dev/null
+++ b/templates/gb/subauth.txt
@@ -0,0 +1,10 @@
+µç×ÓÓʼþÁбíµÄ¶©ÔÄÉêÇëÐè¾­ÓÉÄúµÄºË×¼
+
+ For(¶©ÔÄÈË): %(username)s
+ List(ÁбíÃû³Æ): %(listname)s@%(hostname)s
+
+Ϊ±ãÀûÆð¼û , Çëµ½ :
+
+ %(admindb_url)s
+
+´¦ÀíǰÏîÒªÇó .
diff --git a/templates/gb/subscribe.html b/templates/gb/subscribe.html
new file mode 100644
index 00000000..3fe5d1be
--- /dev/null
+++ b/templates/gb/subscribe.html
@@ -0,0 +1,9 @@
+<!-- $Revision: 3821 $ -->
+<html>
+<head><title><MM-List-Name> ¶©ÔĽá¹û</title></head>
+<body>
+<h1><MM-List-Name> ¶© ÔÄ ½á ¹û </h1>
+<MM-Results>
+<MM-Mailman-Footer>
+</body>
+</html>
diff --git a/templates/gb/subscribeack.txt b/templates/gb/subscribeack.txt
new file mode 100644
index 00000000..36a0bc67
--- /dev/null
+++ b/templates/gb/subscribeack.txt
@@ -0,0 +1,34 @@
+»¶Ó­Äú¼ÓÈë %(real_name)s@%(host_name)s µç×ÓÓʼþÁбíµÄÌÖÂÛÐÐÁÐ!
+
+%(welcome)s
+
+ÓûÔÚ±¾ÁÐ±í·¢ÑÔ , Çë email µ½ :
+
+ %(emailaddr)s
+
+¹ØÓÚ±¾ÁбíµÄ¼ò½éÔÚ :
+
+ %(listinfo_url)s
+
+ÈôÄúÏëÈ¡Ïû¶©ÔÄ»òÕß±ä¸üÏà¹ØÉ趨 , Çëµ½ :
+
+ %(optionsurl)s
+%(umbrella)s
+
+ÄúÒ²¿ÉÒÔͨ¹ý email ±ä¸üÉ趨ֵ , Çë email µ½:
+
+ %(real_name)s-request@%(host_name)s
+
+±êÌâ»òÄÚÎÄÇëÖ»ÊäÈë 'help' Õâ¸öµ¥´Ê(²»ÐèÒýºÅ) ,
+Äú¾Í¿ÉÒÔÈ¡µÃ°ïÖúÎļþ .(Òë×¢:²»½¨Òé´Ë·½°¸)
+
+¼ÙʹÄúÒª±ä¸üÉ趨ֵ (°üÀ¨±ä¸üÃÜÂë ) »òÈ¡Ïû¶©ÔÄ , ¶¼ÐèÒªÃÜÂë .
+ÄúµÄÃÜÂëÊÇ :
+
+ %(password)s
+
+¼ÙʹÄúÍü¼ÇÃÜÂëÒ²²»Óõ£ÐÄ , ÿÔÂÄú¶¼»áÊÕµ½ÄúÔÚ%(host_name)s
+ËùÓж©ÔÄÁбíµÄÃÜÂë , ¼°ÈçºÎÈ¡Ïû¶©ÔÄ»ò±ä¸üÉ趨µÄ·½·¨ .
+ÔÚÄúµÄÉè¶¨ÍøÒ³ÖÐ , Ò²ÓÐÒ»¸ö°´Å¥¿ÉÒÔ½«ÄúµÄÃÜÂë¼Ä¸øÄú .
+
+ÔÚÇ°ÃæÁбí¼ò½éµÄÍøÒ³ÖÐ , Äú¿ÉÒªÇóÁÐ±í½«Äú×Ô¼ºµÄÃÜÂë¼Ä¸øÄú .
diff --git a/templates/gb/userpass.txt b/templates/gb/userpass.txt
new file mode 100644
index 00000000..0fe5941d
--- /dev/null
+++ b/templates/gb/userpass.txt
@@ -0,0 +1,17 @@
+ÕâÊÇÒ»·âÌáÐÑÄúÈçºÎÈ¡Ïû¶©ÔÄ»ò±ä¸ü "%(user)s" ÔÚ %(listname)s
+¶©ÔĵÄÉ趨ֵ . Äú±ØÐëÓÐÃÜÂë²ÅÄܽøÐÐÉÏÊöµÄ±ä¸ü . ÄúÔÚ %(listname)s
+µÄÃÜÂëÊÇ :
+
+ %(password)s
+
+Óû±ä¸üÄú¶©ÔĵÄÏà¹ØÉ趨 , ÇëÔÚÏÂÁеÄÍøÒ³ÖÐÊäÈëÃÜÂëºó×ÔÐбä¸ü :
+
+ %(options_url)s
+
+ÄúÒ²¿É¾­ÓÉ email ±ä¸üÑ¡Ïî . ÄúÐè email µ½:
+
+ %(requestaddr)s
+
+Ðżþ±êÌâ»òÄÚÎÄÇëÌîÈë "help" , Äú¿ÉÒÔÊÕµ½ email µÄָʾ.
+
+ÎÒÃÇ»¶Ó­ÈκÎÎÊÌâ»ò½¨Òé ! Çë email ¸ø %(adminaddr)s.
diff --git a/templates/gb/verify.txt b/templates/gb/verify.txt
new file mode 100644
index 00000000..1530a2fb
--- /dev/null
+++ b/templates/gb/verify.txt
@@ -0,0 +1,17 @@
+%(listname)s -- ¶© ÔÄ È· ÈÏ ÐÅ -- request %(cookie)s
+
+ÎÒÃÇÒÑÊÕµ½¶©ÔÄÉêÇë%(remote)s , ÒÔÄúµÄ email ÕʺŠ, <%(email)s> ,
+¶©ÔÄÁË%(listaddr)s µç×ÓÓʼþÁбí . ΪȷÈÏǰÏî¶©ÔÄ , ÇëÄú»ØÐŵ½
+%(requestaddr)s , ͬʱÇë×¢ÒâÒÔÏÂÊÂÏî:
+
+-Çë±£³ÖÐżþµÄ±êÌâµÄԭò(»ØÐÅʱ×Ô¶¯¼ÓÈëµÄ "Re:" ûÓÐÓ°Ïì)
+
+-»òÕß , ÔÚÐżþÄÚÎÄдÈëÈçÏÂÐÐ - ¶øÇÒ½öÏÞÒ»ÐÐÄÚÎÄ:
+
+confirm %(cookie)s
+
+(ÄúÖ»Òª½«Õâ·âÐÅÔ­·â²»¶¯µÄ»ØÐż´¿É , ÒòΪÐżþ±êÌâ¿É±£³ÖÕý
+È·µÄ¸ñʽ .)
+
+¼ÙʹÄú²»Ô¸¶©ÔÄ(¿ÉÄÜÓÉÄúµÄºÃÓÑ´ú¶©) , Çë²»ÓÃÔÚÒâÕâ·âÈ·ÈÏÐÅ.
+Èô»¹ÓÐÆäËûÏà¹Ø¶©ÔĵÄÒÉÎÊ , ÇëÄú½«ÎÊÌâ email µ½ %(listadmin)s.
diff --git a/templates/hu/admindbdetails.html b/templates/hu/admindbdetails.html
new file mode 100644
index 00000000..181ad6b3
--- /dev/null
+++ b/templates/hu/admindbdetails.html
@@ -0,0 +1,68 @@
+A beavatkozásra váró teendõk listáját kétféleképpen lehet megjeleníteni,
+vagy az <a href="%(summaryurl)s">összesítõ oldalon</a> vagy a <em>részletes</em>
+oldalon. Az összesítõ oldal a függõben lévõ fel- és leiratkozásokat,
+valamint az engedélyezésre váró leveleket mutatja a beküldõk címei
+szerint csoportosítva. A részletes oldalon az összes jóváhagyásra váró
+levélrõl bõvebb információt kapunk, megtekinthetjük azok fejléceit és
+rövid kivonatát.
+
+<p>Mindegyik oldalon a következõ lehetõségek közül választhatunk:
+
+<ul>
+<li><b>Elhalaszt</b> -- Várakoztatás a késõbbi döntésig. A beavatkozásra váró
+ üzenet továbbra is függõben marad, továbbítani vagy megõrizni lehet a
+ levelet (ld. késõbb), annak törlése nélkül.
+
+<p><li><b>Jóváhagy</b> -- A listára küldött levél megjelenését engedélyezed.
+ Listatagsághoz kapcsolódó kérelemnél engedélyezed a listatagság
+ megváltoztatását.
+
+<p><li><b>Visszautasít</b> -- Levelet visszautasítod, a beküldõ külön üzenetben
+ értesül a levél visszautasításáról. Az eredeti levél figyelmen kívül lesz
+ hagyva. Listatagsági kérelemnél nem engedélyezed a listatagság
+ megváltoztatását.
+ Mindkét esetben célszerû a visszautasítás indokát a megfelelõ szövegmezõben
+ megadni.
+
+<p><li><b>Elvet</b> -- Az eredeti levél figyelmen kívül lesz hagyva, de errõl a
+ beküldõje értesítést nem kap. Listatagsági kérelemnél a kérelmezõ
+ értesítése nélkül kerül visszautasításra a kérelem. Ez az opció fõleg
+ spam-ek esetén használatos.
+</ul>
+
+<p>A <b>Megõriz</b> opcióval a levél egy másolatát lehet a rendszer
+adminisztrátorának elküldeni. Sértegetõ levelek esetén elõnyös a használata,
+amikor a levelet visszautasítod, de késõbb jól jöhet a másolata.
+
+<p>A <b>Továbbít ide</b> opcióval a megadott címre (pl. aki nincs a listán)
+lehet a levelet továbbküldeni. Ha a listán való megjelenés elõtt módosítani
+szeretnénk a jóváhagyásra váró levélen, akkor küldjük tovább magunknak (vagy
+lista tulajdonosának), az eredeti levélre az <em>Elvet</em> parancsot
+használjuk. Ezek után módosítsuk igényünk szerint a levelet, majd küldjük
+el a listára úgy hogy a levélben egy <tt>Approved:</tt> fejlécben megadjuk
+a lista jelszavát (ezzel azonnal engedélyezzük a levél megjelenését a
+listán). A netetikett szerint ekkor tüntessük fel a levélben, hogy
+az eredeti levelet módosítottuk.
+
+<p>Ha a beküldõ olyan listatag, akinek a moderált jelzõje be van állítva,
+akkor az oldalon a tag moderálási jelzõjét is lehet törölni. Ez akkor
+hasznos, amikor a lista az új tagoknak <em>próbaidõre</em> automatikusan
+beállítja a moderált jelzõt és úgy döntünk, hogy a tagnál már törölni
+lehet ezt a beállítást.
+
+<p>Ha beküldõ nem listatag, akkor a címét felvehetjük a <em>feladók
+szûrése</em> beállításokhoz. Errõl a korlátozásról a <a href="%(filterurl)s">
+feladók szûrése oldalon</a> lehet olvasni. A szûrésnél az <b>
+automatikusan-engedélyezett</b> (Engedélyezett), <b>automatikusan-függõ</b>
+(Függõ), <b>automatikusan-visszautasított</b> (Visszautasított), vagy
+<b>automatikusan-elvetett</b> (Elvetett) opciók közül lehet választani.
+A kapcsoló csak akkor jelenik meg, ha a beküldõ címe egyik szûrõnél sincs
+megadva.
+
+<p>A mûveletek befejezéséhez kattintsunk a lap alján vagy tetején található
+<em>Összes változtatás mentése</em> gombra. Ekkor az összes beállítás
+végrehajtódik. Ha egy vagy több kérelemrõl nem akarsz most dönteni, akkor
+ne adj meg parancsot, ekkor ezek a kérelmek a megerõsítésére várók sorában
+maradnak.
+
+<p><a href="%(summaryurl)s">Vissza az összesítõ oldalra</a>.
diff --git a/templates/hu/admindbpreamble.html b/templates/hu/admindbpreamble.html
new file mode 100644
index 00000000..bd55d49d
--- /dev/null
+++ b/templates/hu/admindbpreamble.html
@@ -0,0 +1,11 @@
+Az oldalon a(z) <em>%(listname)s</em> levelezõlistához tartozó
+beavatkozásra váró teendõk listája található. Jelenleg
+%(description)s látható.
+
+<p>Mindenegyes kérelemhez válasszuk ki a megfelelõ parancsot,
+majd ezek után kattintsunk az <b>Összes változtatás mentése</b>
+gombra. Bõvebb információt <a href="%(detailsurl)s">ezen</a> az
+oldalon lehet találni.
+
+<p>Az összes függõben lévõ teendõ kivonatolva <a href="%(summaryurl)s">ezen</a>
+az oldalon tekinthetõ meg.
diff --git a/templates/hu/admindbsummary.html b/templates/hu/admindbsummary.html
new file mode 100644
index 00000000..bcb1e699
--- /dev/null
+++ b/templates/hu/admindbsummary.html
@@ -0,0 +1,13 @@
+Ezen az oldalon a(z) <a href="%(adminurl)s"><em>%(listname)s</em>
+levelezõlistához</a> tartozó beavatkozásra váró teendõk kivonatolt
+listája található.
+Elõl a jóváhagyásra váró fel- és leiratkozások, ha vannak,
+majd az engedélyezésre váró üzenetek találhatóak.
+
+<p>Mindenegyes kérelemhez válasszuk ki a megfelelõ parancsot,
+majd ezek után kattintsunk az <b>Összes változtatás mentése</b>
+gombra. Bõvebb információt <a href="%(detailsurl)s">ezen</a> az
+oldalon lehet találni.
+
+<p>Az összes függõben lévõ teendõ részletesen <a href="%(viewallurl)s">ezen</a>
+az oldalon érhetõ el.
diff --git a/templates/hu/adminsubscribeack.txt b/templates/hu/adminsubscribeack.txt
new file mode 100644
index 00000000..1ba4eec0
--- /dev/null
+++ b/templates/hu/adminsubscribeack.txt
@@ -0,0 +1 @@
+%(member)s feliratkozott a(z) %(listname)s listára.
diff --git a/templates/hu/adminunsubscribeack.txt b/templates/hu/adminunsubscribeack.txt
new file mode 100644
index 00000000..c49f2dea
--- /dev/null
+++ b/templates/hu/adminunsubscribeack.txt
@@ -0,0 +1 @@
+%(member)s törölve a(z) %(listname)s listáról.
diff --git a/templates/hu/admlogin.html b/templates/hu/admlogin.html
new file mode 100644
index 00000000..51c0b775
--- /dev/null
+++ b/templates/hu/admlogin.html
@@ -0,0 +1,32 @@
+<html>
+<head>
+ <title>%(listname)s %(who)s Azonosítás</title>
+</head>
+<body bgcolor="#ffffff">
+<FORM METHOD=POST ACTION="%(path)s">
+%(message)s
+ <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1">%(listname)s %(who)s Azonosítás</FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <TD> <div ALIGN="Right">Lista %(who)s Jelszava: </div> </TD>
+ <TD> <INPUT TYPE="password" NAME="adminpw" SIZE="30"></TD>
+ </tr>
+ <tr>
+ <td colspan=2 align=middle> <INPUT TYPE="SUBMIT" name="admlogin"
+ value="Belépés...">
+ </td>
+ </tr>
+ </TABLE>
+ <p><strong><em>Fontos:</em></strong> Ettõl az oldaltól engedélyezned kell a sütik
+ fogadását a böngészõdben, különben semmilyen adminisztrátori változtatás nem fog végrehajtódni.
+
+ <p>A Mailman az adminisztrációs mûveleteknél a folyamatos azonosításhoz, hogy ne kelljen minden adminisztrációs változtatáshoz újra azonosítanod magadat, sütiket használ.
+ A süti a böngészõ bezárásával, illetve az <em>Egyéb Adminisztrációs Teendõk</em> pontban a
+ <em>Kilépés</em>-re (ez csak sikeres bejelentkezés után látható) kattintva érvényét veszti.
+</FORM>
+</body>
+</html>
diff --git a/templates/hu/approve.txt b/templates/hu/approve.txt
new file mode 100644
index 00000000..7bacd1b3
--- /dev/null
+++ b/templates/hu/approve.txt
@@ -0,0 +1,15 @@
+Feliratkozási kérelmed a(z) %(requestaddr)s listára:
+
+ %(cmd)s
+
+a lista üzemeltetõjéhez lett továbbítva.
+
+Ez valószínûleg annak a következménye, hogy egy 'zártkörû' listára
+próbáltál meg feliratkozni.
+
+A lista üzemeltetõjének döntésérõl a feliratkozási kérelmeddel
+kapcsolatban e-mailben értesítést fogsz kapni.
+
+Észrevételeidet a lista politikájáról a következõ címen tedd meg:
+
+ %(adminaddr)s
diff --git a/templates/hu/archidxentry.html b/templates/hu/archidxentry.html
new file mode 100644
index 00000000..f9bb57aa
--- /dev/null
+++ b/templates/hu/archidxentry.html
@@ -0,0 +1,4 @@
+<LI><A HREF="%(filename)s">%(subject)s
+</A><A NAME="%(sequence)i">&nbsp;</A>
+<I>%(author)s
+</I>
diff --git a/templates/hu/archidxfoot.html b/templates/hu/archidxfoot.html
new file mode 100644
index 00000000..4fbd9e76
--- /dev/null
+++ b/templates/hu/archidxfoot.html
@@ -0,0 +1,19 @@
+ </ul>
+ <p>
+ <a name="end"><b>Utolsó levél idõpontja:</b></a>
+ <i>%(lastdate)s</i><br>
+ <b>Archíválás idõpontja:</b> <i>%(archivedate)s</i>
+ <p>
+ <ul>
+ <li> <b>Levelek sorrendje:</b>
+ %(thread_ref)s
+ %(subject_ref)s
+ %(author_ref)s
+ %(date_ref)s
+ <li><b><a href="%(listinfo)s">További információk errõl a listáról...</a></b></li>
+ </ul>
+ <p>
+ <hr>
+ <i>Az archívum a Pipermail %(version)s verzójával készült.</i>
+ </BODY>
+</HTML>
diff --git a/templates/hu/archidxhead.html b/templates/hu/archidxhead.html
new file mode 100644
index 00000000..5b449bf8
--- /dev/null
+++ b/templates/hu/archidxhead.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+ <HEAD>
+ <title>A(z) %(listname)s %(archive)si Archívuma %(archtype)s szerint rendezve</title>
+ <META NAME="robots" CONTENT="noindex,follow">
+ %(encoding)s
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <a name="start"></A>
+ <h1>%(archive)si Archívum %(archtype)s szerint rendezve</h1>
+ <ul>
+ <li> <b>Levelek sorrendje:</b>
+ %(thread_ref)s
+ %(subject_ref)s
+ %(author_ref)s
+ %(date_ref)s
+
+ <li><b><a href="%(listinfo)s">További információk errõl a listáról...</a></b></li>
+ </ul>
+ <p><b>Kezdõ idõpont:</b> <i>%(firstdate)s</i><br>
+ <b>Utolsó idõpont:</b> <i>%(lastdate)s</i><br>
+ <b>Üzenetek:</b> %(size)s<p>
+ <ul>
diff --git a/templates/hu/archlistend.html b/templates/hu/archlistend.html
new file mode 100644
index 00000000..9bc052dd
--- /dev/null
+++ b/templates/hu/archlistend.html
@@ -0,0 +1 @@
+ </table>
diff --git a/templates/hu/archliststart.html b/templates/hu/archliststart.html
new file mode 100644
index 00000000..f8034bec
--- /dev/null
+++ b/templates/hu/archliststart.html
@@ -0,0 +1,4 @@
+ <table border=3>
+ <tr><td>Archívum</td>
+ <td>Sorrend:</td>
+ <td>Letölthetõ verzió</td></tr>
diff --git a/templates/hu/archtoc.html b/templates/hu/archtoc.html
new file mode 100644
index 00000000..5256fad5
--- /dev/null
+++ b/templates/hu/archtoc.html
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+ <HEAD>
+ <title>A(z) %(listname)s Archívum</title>
+ <META NAME="robots" CONTENT="noindex,follow">
+ %(meta)s
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <h1>A(z) %(listname)s Archívum </h1>
+ <p>
+ További információkat <a href="%(listinfo)s">a listáról itt olvashatsz</a>
+ vagy letöltheted a <a href="%(fullarch)s">teljes nyers archívumát</a>
+ (%(size)s).
+ </p>
+ %(noarchive_msg)s
+ %(archive_listing_start)s
+ %(archive_listing)s
+ %(archive_listing_end)s
+ </BODY>
+ </HTML>
diff --git a/templates/hu/archtocentry.html b/templates/hu/archtocentry.html
new file mode 100644
index 00000000..bb492f46
--- /dev/null
+++ b/templates/hu/archtocentry.html
@@ -0,0 +1,12 @@
+
+ <tr>
+ <td>%(archivelabel)s:</td>
+ <td>
+ <A href="%(archive)s/thread.html">[ Téma ]</a>
+ <A href="%(archive)s/subject.html">[ Tárgy ]</a>
+ <A href="%(archive)s/author.html">[ Szerzõ ]</a>
+ <A href="%(archive)s/date.html">[ Dátum ]</a>
+ </td>
+ %(textlink)s
+ </tr>
+
diff --git a/templates/hu/article.html b/templates/hu/article.html
new file mode 100644
index 00000000..77af20e6
--- /dev/null
+++ b/templates/hu/article.html
@@ -0,0 +1,49 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+<HEAD>
+ <TITLE> %(title)s
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:%(email_url)s?Subject=%(subject_url)s&In-Reply-To=%(in_reply_to_url)s">
+ <META NAME="robots" CONTENT="index,nofollow">
+ %(encoding)s
+ %(prev)s
+ %(next)s
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>%(subject_html)s
+ </H1>
+ <B>%(author_html)s </B>
+ <A HREF="mailto:%(email_url)s?Subject=%(subject_url)s&In-Reply-To=%(in_reply_to_url)s"
+ TITLE="%(subject_html)s">%(email_html)s
+ </A><BR>
+ <I>%(datestr_html)s</I>
+ <P><UL>
+ %(prev_wsubj)s
+ %(next_wsubj)s
+ <LI> <B>Levelek sorrendje:</B>
+ <a href="date.html#%(sequence)s">[ dátum ]</a>
+ <a href="thread.html#%(sequence)s">[ téma ]</a>
+ <a href="subject.html#%(sequence)s">[ tárgy ]</a>
+ <a href="author.html#%(sequence)s">[ szerzõ ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+%(body)s
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ %(prev_wsubj)s
+ %(next_wsubj)s
+ <LI> <B>Levelek sorrendje:</B>
+ <a href="date.html#%(sequence)s">[ dátum ]</a>
+ <a href="thread.html#%(sequence)s">[ téma ]</a>
+ <a href="subject.html#%(sequence)s">[ tárgy ]</a>
+ <a href="author.html#%(sequence)s">[ szerzõ ]</a>
+ </LI>
+ </UL>
+<HR>
+<a href="%(listurl)s">További információk a(z) %(listname)s levelezõlistáról</a><br>
+</body></html>
diff --git a/templates/hu/bounce.txt b/templates/hu/bounce.txt
new file mode 100644
index 00000000..6d9d9da5
--- /dev/null
+++ b/templates/hu/bounce.txt
@@ -0,0 +1,13 @@
+Mailman levelezõlista visszapattanási (bounce) értesítés:
+
+ Lista: %(listname)s
+ Tag: %(addr)s
+ Teendõ: Feliratkozás %(negative)s%(did)s.
+ Indok: Problémás vagy hibás e-mail cím.
+ %(but)s
+
+%(reenable)s
+Az értesítés a levél alján látható.
+
+Kérdés?
+Fordulj a Mailman rendszer üzemeltetõjéhez: %(owneraddr)s.
diff --git a/templates/hu/checkdbs.txt b/templates/hu/checkdbs.txt
new file mode 100644
index 00000000..91cd9c28
--- /dev/null
+++ b/templates/hu/checkdbs.txt
@@ -0,0 +1,7 @@
+%(real_name)s@%(host_name)s levelezési listáról %(count)d
+kérelem vár a megerõsítésedre a következõ címen:
+
+ %(adminDB)s
+
+Minél hamarabb látogasd meg a címet. A megerõsítendõ kérelmekrõl,
+ha vannak egyáltalán, minden nap értesítést küldünk.
diff --git a/templates/hu/convert.txt b/templates/hu/convert.txt
new file mode 100644
index 00000000..52a37ad8
--- /dev/null
+++ b/templates/hu/convert.txt
@@ -0,0 +1,31 @@
+Tájékoztató a(z) %(listname)s levelezési listán bekövetkezõ változásokról.
+A levelezési listát a "Mailman" nevû listakezelõ program mûködteti.
+Reméljük ezzel számos eddig jelentkezõ probléma megszûnik.
+
+Mire kell figyelned?
+
+1) A lista tagjainak szánt üzeneteidet a(z) %(listaddr)s címre küldd el.
+
+2) Egyéni jelszóval lehet leiratkozni a listáról, ezzel elkerülhetõ,
+hogy más a tudtod nélkül töröl téged a listáról. A jelszót egy különálló
+e-mailben kapod meg, vagy már meg is kaptad. Ne ess pánikba, ha
+elfelejtetted a jelszavadat, mivel minden hónapban emlékeztetõül e-mailben
+elküldésre fog kerülni.
+
+3) Web elérés esetén bármikor leiratkozhatsz a listáról, beállíthatod
+a levelek fogadását, megtekintheted a lista archívumát, és más egyebet
+tehetsz meg. Mindezeket a következõ webcímen lehet végrehajtani:
+
+ %(listinfo_url)s
+
+4) Web elérés hiányában mindezeket e-mailen keresztül is meg lehet
+tenni. Küldj egy e-mailt a(z) %(requestaddr)s címre a levél törzsében
+vagy tárgyában megadott "help"-el. Ekkor egy automatikus válaszlevélben
+bõvebb leírást fogsz kapni a lehetséges beállításokról.
+
+Bármilyen kérdéseddel, észrevételeddel a következõ címre írj:
+%(adminaddr)s.
+
+Ezt a levelet a Mailman %(version)s automatikusan készítette. A Mailman
+programról további információkat a Mailman honlapján lehet olvasni a
+http://www.list.org/ címen.
diff --git a/templates/hu/cronpass.txt b/templates/hu/cronpass.txt
new file mode 100644
index 00000000..7144e960
--- /dev/null
+++ b/templates/hu/cronpass.txt
@@ -0,0 +1,20 @@
+Ez az emlékeztetõ %(hostname)s levelezõlista tagjainak minden hónap
+elején elküldésre kerül. Tartalmazza a feliratkozásaidat és azt,
+hogy hogyan lehet megváltoztatni a beállításaidat, vagy leiratkozni
+a levelezõlistáról.
+
+A Web-címeken a listával kapcsolatos beállításaidat, mint például
+a leiratkozást, vagy a levélküldés típusának beállítását, esetleg
+szüneteltetését (pl. nyaralás idejére) módosíthatod/állíthatod be.
+
+A Web elérhetõség mellett, természetesen e-mailen keresztül is el lehet
+végezni a változtatásokat. Bõvebb információért küldj egy levelet, a
+levelezési lista '-request' címére (például %(exreq)s) egy szimpla
+'help'-el a levél törzsében. A válaszlevélben részletes leírást
+fogsz kapni az alkalmazható parancsokról.
+
+Kérdéseidet, problémáidat, megjegyzéseidet, egyéb mást a(z)
+%(owner)s címre küld. Köszönjük!
+
+%(useraddr)s jelszava:
+
diff --git a/templates/hu/disabled.txt b/templates/hu/disabled.txt
new file mode 100644
index 00000000..1cf1320d
--- /dev/null
+++ b/templates/hu/disabled.txt
@@ -0,0 +1,24 @@
+A(z) %(listname)s levelezõlista tagságod szüneteltetve lett
+%(reason)s. A listáról addig nem kapsz
+újabb leveleket, amíg a listatagságodat vissza nem állítod. Még %(noticesleft)s
+ilyen emlékeztetõ üzenetet kapsz, utána a listáról törölni fogunk.
+
+Listatagságod visszaállításához elég erre a levélre válaszolnod
+(a Subject: sort ne változtasd), vagy a következõ címre ellátogatnod
+
+ %(confirmurl)s
+
+A listatagsági oldaladon is módosíthatod a beállításaidat
+
+ %(optionsurl)s
+
+Ezen az oldalon olyan különbözõ beállításokat módosíthatsz, mint
+például a feliratkozási címed vagy a digest fogadása. Emlékeztetõül
+a listatagsági jelszavad
+
+ %(password)s
+
+Kérdéseiddel és problémáiddal fordulj a lista tulajdonoshoz a
+következõ címen:
+
+ %(owneraddr)s
diff --git a/templates/hu/emptyarchive.html b/templates/hu/emptyarchive.html
new file mode 100644
index 00000000..40f96380
--- /dev/null
+++ b/templates/hu/emptyarchive.html
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+ <HEAD>
+ <title>%(listname)s archívum</title>
+ <META NAME="robots" CONTENT="noindex,follow">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <h1>%(listname)s archívum</h1>
+ <p>
+ A listára még nem küldtek levelet, ezért jelenleg üres az archívum.
+ Bõvebb <a href="%(listinfo)s">információ a listáról</a>.
+ </p>
+ </BODY>
+ </HTML>
diff --git a/templates/hu/headfoot.html b/templates/hu/headfoot.html
new file mode 100644
index 00000000..1da4dbff
--- /dev/null
+++ b/templates/hu/headfoot.html
@@ -0,0 +1,25 @@
+Ez a szöveg olyan <a href="http://www.python.org/doc/current/lib/typesseq-strings.html">Python-típusú változók</a>at mutat be, amelyekkel a lista egyes jellemzõire lehet hivatkozni.
+Az alábbi változók jelentése:
+
+<ul>
+ <li><b><code>real_name</code></b> - A lista `pedikûrözött' neve; általában a
+ lista neve nagy kezdõbetûvel.
+
+ <li><b><code>list_name</code></b> - Az a név, amellyel a listát az URL-lel
+ megadott cím alapján azonosítani lehet, kis- és nagybetûk számítanak.
+ (Hatása azonos a korábbi verziókban használt <code>_internal_name</code>
+ változóval.)
+
+ <li><b><code>host_name</code></b> - Tartománynévvel kiegészített teljes neve a gépnek,
+ amelyen a levelezõlisták mûködnek.
+
+ <li><b><code>web_page_url</code></b> - Mailman kiindulási URL-je. Ezután lehet megadni
+ pl. <em><code>listinfo/%(internal_name)s</code></em> részt, hogy a kívánt levelezõlista
+ információs lapja megjelenjen.
+
+ <li><b><code>description</code></b> - Rövid leírás a levelezõlistáról.
+
+ <li><b><code>info</code></b> - A levelezõlista részletes leírása.
+
+ <li><b><code>cgiext</code></b> - A CGI szkriptek kiterjesztése.
+</ul>
diff --git a/templates/hu/help.txt b/templates/hu/help.txt
new file mode 100644
index 00000000..e938b3c1
--- /dev/null
+++ b/templates/hu/help.txt
@@ -0,0 +1,34 @@
+Súgó %(listname)s levelezési lista használatához:
+
+Ez az e-mail a %(version)s verziószámú "Mailman" listakezelõ
+program parancsait ismerteti. A következõkben ismertetett parancsokkal
+a Mailman által üzemeltetett listákról és azok beállításáról
+lehet olvasni. A parancsokat mind a levél törzsében, vagy tárgyában
+meg lehet adni.
+
+Érdemes tudni, hogy az itt említett módosításokat weben keresztül is
+végre lehet hajtani a következõ címen:
+
+ %(listinfo_url)s
+
+Például az említett oldal segítségével kikérheted a saját címedre a
+jelszavadat.
+
+A lista beállító parancsokat (pl. subscribe, who, stb.) a listához
+tartozó *-request címre kell küldeni, pl. a 'mailman' lista esetén
+a 'mailman-request@...' címet kell használni.
+
+A leírásokkal kapcsolatban - a "<>" jelek közötti szavak mindig a
+KÖTELEZÕEN megadandó adatokat, míg a "[]" jelek közötti szavak csak az
+OPCIONÁLIS megadandókat jelölik. Azonban a parancsokban sohase használjuk
+a "<>" és "[]" jeleket.
+
+A következõ parancsok állnak rendelkezésre:
+
+ %(commands)s
+
+A parancsokat az alábbi címre kell küldeni %(requestaddr)s
+
+Kérdéseidet, észrevételeidet a következõ címre küldjed
+
+ %(adminaddr)s
diff --git a/templates/hu/illik.html b/templates/hu/illik.html
new file mode 100644
index 00000000..201a29c2
--- /dev/null
+++ b/templates/hu/illik.html
@@ -0,0 +1,1542 @@
+<html><head><title="Magyar Netikett"></head>
+<body>
+<h1>
+Magyar Netikett
+</h1>
+
+<h3>
+Az eml&eacute;keztet&ocirc; st&aacute;tusa
+</h3>
+<p>
+Ez a dokumentum az Internet k&ouml;z&ouml;ss&eacute;g
+t&aacute;j&eacute;koztat&aacute;s&aacute;ra szolg&aacute;l. Ez a
+dokumentum nem hat&aacute;roz meg semmilyen szabv&aacute;nyt. A
+terjeszt&eacute;st nem korl&aacute;tozza semmi.
+
+<h3>
+&Ouml;sszefoglal&oacute;
+</h3>
+<p>
+Ez a dokumentum a H&aacute;l&oacute;zati Etikett (Netiquette) egy
+minim&aacute;lis halmaz&aacute;t hat&aacute;rozza meg. A
+k&uuml;l&ouml;nb&ouml;z&ocirc; szervezetek szabadon
+m&oacute;dos&iacute;thatj&aacute;k; saj&aacute;t, hasonl&oacute;
+szab&aacute;lyzatuk alapj&aacute;ul szolg&aacute;lhat. Ez&eacute;rt a
+dokumentum pontosan meghat&aacute;rozott r&eacute;szekre van bontva,
+hogy az egyes r&eacute;szeket k&ouml;nnye(bbe)n
+tal&aacute;lhass&aacute;k meg. Mag&aacute;nszem&eacute;lyek,
+ak&aacute;r felhaszn&aacute;l&oacute;k, ak&aacute;r
+adminisztr&aacute;torok szint&eacute;n felhaszn&aacute;lhatj&aacute;k
+minim&aacute;lis ir&aacute;nyelvekk&eacute;nt. Ez a feljegyz&eacute;s
+az IETF Felel&ocirc;s H&aacute;l&oacute;zati Haszn&aacute;lat
+csoportj&aacute;nak munk&aacute;ja.
+
+<h3>
+A ford&iacute;t&aacute;sr&oacute;l
+</h3>
+<p>
+
+Ez a dokumentum az RFC 1855 ford&iacute;t&aacute;sa.
+N&eacute;h&aacute;ny helyen kieg&eacute;sz&iacute;tettem az eredeti
+sz&ouml;veget, igyekezv&eacute;n ezt annak szellem&eacute;ben tenni.
+Mindenfajta jav&iacute;t&aacute;st &ouml;r&ouml;mmel fogadok. A
+c&iacute;mem a dokumentum v&eacute;g&eacute;n
+tal&aacute;lhat&oacute;. Sok mondat v&eacute;g&eacute;re k&eacute;ne
+felki&aacute;lt&oacute;jel, ez elmaradt.
+<p>
+A sz&ouml;veg nem felt&eacute;tlen&uuml;l t&uuml;kr&ouml;zi a
+v&eacute;lem&eacute;nyemet, sem b&aacute;rmelyik
+munkaad&oacute;m&eacute;t. Semmilyen felel&ocirc;ss&eacute;get nem
+v&aacute;llalok a dokumentum haszn&aacute;lat&aacute;b&oacute;l vagy
+nem haszn&aacute;lat&aacute;b&oacute;l ered&ocirc;
+k&ouml;vetkezm&eacute;nyek&eacute;rt.
+
+<h2>
+Tartalomjegyz&eacute;k
+</h2>
+
+<ol>
+<li><a href="#1.0">Bemutatkoz&aacute;s</a>
+<li><a href="#2.0">Egy-egynek kommunik&aacute;ci&oacute;</a>
+<li><a href="#3.0">Egy-sokaknak kommunik&aacute;ci&oacute;</a>
+<li><a href="#4.0">Inform&aacute;ci&oacute;s
+szolg&aacute;ltat&aacute;sok</a>
+<li><a href="#5.0">V&aacute;logatott bibliogr&aacute;fia</a>
+<li><a href="#6.0">Biztons&aacute;gi k&eacute;rd&eacute;sek</a>
+<li><a href="#7.0">A k&eacute;sz&iacute;t&ocirc; c&iacute;me</a>
+</ol>
+
+<h2>
+<a name="1.0">1.0 Bemutatkoz&aacute;s
+</h2>
+<p>
+A m&uacute;ltban a n&eacute;pess&eacute;g Internet
+haszn&aacute;l&oacute; r&eacute;sze az Internettel "n&ocirc;tt" fel,
+m&ucirc;szaki tud&aacute;ssal b&iacute;rt, &eacute;s meg&eacute;rtette
+a protokollok &eacute;s a sz&aacute;ll&iacute;t&aacute;s
+term&eacute;szet&eacute;t. Manaps&aacute;g az Internet
+felhaszn&aacute;l&oacute;k k&ouml;z&ouml;ss&eacute;g&eacute;ben
+egyre t&ouml;bben vannak olyanok, akik &uacute;jak ebben a
+k&ouml;rnyezetben. Ezeknek a "Newbie"-knak ismeretlen ez a
+kult&uacute;ra &eacute;s nincs sz&uuml;ks&eacute;g&uuml;k a
+protokollok &eacute;s az &aacute;tvitel m&ucirc;szaki r&eacute;szleteire.
+Hogy ezek az &uacute;j felhaszn&aacute;l&oacute;kat gyorsan az
+Internet k&ouml;z&ouml;ss&eacute;g r&eacute;sz&eacute;ve
+v&aacute;lhassanak, ez az &iacute;r&aacute;s a magatart&aacute;si
+szab&aacute;lyok minim&aacute;lis halmaz&aacute;t ismerteti. Ezeket
+azt&aacute;n a k&uuml;l&ouml;nb&ouml;z&ocirc; szervezetek &eacute;s
+mag&aacute;nszem&eacute;lyek a saj&aacute;t c&eacute;ljaiknak
+megfelel&ocirc;en m&oacute;dos&iacute;thatj&aacute;k. Mindenkinek
+tiszt&aacute;ban kell lennie azzal, hogy b&aacute;rki is
+szolg&aacute;ltassa neki az Internet el&eacute;r&eacute;st -- legyen az
+egy ISP (Internet Szolg&aacute;ltat&oacute;), az egyetem, vagy a
+c&eacute;ge -- annak a szervezetnek megvan a maga szab&aacute;lyzata
+a levelek &eacute;s az &aacute;llom&aacute;nyok
+tulajdonjog&aacute;r&oacute;l; arr&oacute;l, hogy mit helyes
+post&aacute;zni &eacute;s k&uuml;ldeni, &eacute;s hogy
+mik&eacute;ppen prezent&aacute;ljuk magunkat.
+Felt&eacute;tlen&uuml;l ismerd meg ezeket,
+&eacute;rdekl&ocirc;dj&eacute;l a helyi illet&eacute;kes(ek)n&eacute;l.
+<p>
+Ezt az anyagot h&aacute;rom f&ocirc; r&eacute;szre bontottuk:
+egy-egynek kommunik&aacute;ci&oacute;, amibe a levelez&eacute;s
+&eacute;s a talk (besz&eacute;lget&eacute;s) foglaltatik benne;
+egy-sokaknak kommunik&aacute;ci&oacute;, amely alatt a Usenet-et
+&eacute;s a levelez&eacute;si list&aacute;kat &eacute;rtj&uuml;k;
+&eacute;s az inform&aacute;ci&oacute;s szolg&aacute;ltat&aacute;sok:
+ftp, WWW, gopher, MUD, MOO, IRC. V&eacute;g&uuml;l egy
+v&aacute;logatott bibliogr&aacute;fi&aacute;t tal&aacute;lhatnak,
+referencia c&eacute;lokra.
+
+<h2>
+<a name="2.0">2.0 Egy-egynek kommunik&aacute;ci&oacute;
+(elektronikus lev&eacute;l, besz&eacute;lget&eacute;s (talk))
+</h2>
+<p>
+Az egy-egy kommunik&aacute;ci&oacute;t &uacute;gy
+defini&aacute;ljuk, amiben egy ember kommunik&aacute;l egy
+m&aacute;sikkal, mintha szemt&ocirc;l-szembe &aacute;lln&aacute;nak:
+egy dial&oacute;gus. &Aacute;ltal&aacute;ban, az emberekkel
+val&oacute; t&aacute;rsalg&aacute;s norm&aacute;l
+illemszab&aacute;lyai az &eacute;rv&eacute;nyesek, csak ez az
+Interneten m&eacute;g fontosabb, mert hi&aacute;nyzik t&ouml;bbek
+k&ouml;z&ouml;tt a metakommunik&aacute;ci&oacute; &eacute;s a
+hangsz&iacute;n.
+
+<h3>
+2.1 Ir&aacute;nymutat&oacute; felhaszn&aacute;l&oacute;knak
+</h3>
+<h4>
+2.1.1 Levelez&eacute;shez
+</h4>
+<ul>
+
+<li>Ha nem egy Internet Szolg&aacute;ltat&oacute;n ker&uuml;lsz
+kapcsolatba az Internettel, akkor fontos ismerned a
+munk&aacute;ltat&oacute;d szab&aacute;lyait az elektronikus levelek
+tulajdonjog&aacute;r&oacute;l; ezek minden&uuml;tt m&aacute;sok.
+
+<li>Fel kell t&eacute;telezned hogy az Interneten
+t&ouml;rt&eacute;n&ocirc; levelez&eacute;s nem biztons&aacute;gos,
+kiv&eacute;ve ha valamilyen rejtjelez&ocirc; eszk&ouml;zt (ak&aacute;r
+szoftvert, ak&aacute;r hardvert) haszn&aacute;lsz. Ne &iacute;rj&aacute;l
+semmi olyasmit egy elektronikus lev&eacute;lbe, amit nem
+k&uuml;lden&eacute;l el levelez&ocirc;lapon.
+
+<li>Tiszteld a szerz&ocirc; jogait avval az anyaggal kapcsolatban, amit
+m&aacute;solsz. Majdnem minden orsz&aacute;gban vannak a
+szerz&ocirc;k jogait v&eacute;d&ocirc; t&ouml;rv&eacute;nyek.
+
+<li>Ha tov&aacute;bbk&uuml;ldesz (forward) vagy
+&uacute;jrapost&aacute;zol egy &uuml;zenetet, akkor ne
+v&aacute;ltoztasd meg annak a sz&oacute;haszn&aacute;lat&aacute;t. Ha
+ez egy neked &iacute;rt szem&eacute;lyes &uuml;zenet volt, &eacute;s
+egy csoportnak k&iacute;v&aacute;nod tov&aacute;bbadni, akkor
+k&eacute;rj&eacute;l el&ocirc;sz&ouml;r enged&eacute;lyt a
+felad&oacute;t&oacute;l.
+
+<li>Soha ne k&uuml;ldj "l&aacute;nc" levelet elektronikusan, Ezek
+tiltottak az Interneten. Ha m&eacute;gis ilyet k&uuml;ldesz, az
+val&oacute;sz&iacute;n&ucirc;leg a h&aacute;l&oacute;zati jogaid
+csorb&iacute;t&aacute;s&aacute;val fog j&aacute;rni. Ha ilyesmit
+kapn&aacute;l akkor &eacute;rtes&iacute;tsd a helyi
+rendszeradminisztr&aacute;tort.
+
+<li>Egy j&oacute; &ouml;k&ouml;lszab&aacute;ly: l&eacute;gy
+konzervat&iacute;v a k&uuml;ld&eacute;sben &eacute;s l&eacute;gy
+liber&aacute;lis a fogad&aacute;sban. Nem szabad indulatos leveleket
+k&uuml;ldened (ezeket "flame"-nek nevezz&uuml;k) m&eacute;g akkor
+sem, ha provok&aacute;lnak. M&aacute;sik oldalr&oacute;l viszont, ne
+legy&eacute;l meglepve, ha ilyet levelet kapsz, &eacute;s okosan teszed,
+ha nem v&aacute;laszolsz ezekre.
+
+<li>&Aacute;ltal&aacute;ban j&oacute;, ha ellen&ocirc;rz&ouml;d a
+leveleid subject-j&eacute;t miel&ocirc;tt v&aacute;laszolsz egy
+lev&eacute;lre. Van &uacute;gy, hogy az, aki kor&aacute;bban
+seg&iacute;ts&eacute;get (vagy felvil&aacute;gos&iacute;t&aacute;st)
+k&eacute;rt t&ocirc;led, m&aacute;r &iacute;rt egy levelet, aminek az a
+l&eacute;nyege, hogy "T&aacute;rgytalan". Szint&eacute;n
+c&eacute;lszer&ucirc; meggy&ocirc;z&ocirc;dni, hogy a lev&eacute;l,
+amire v&aacute;laszolsz, az neked volt-e c&iacute;mezve. Lehet hogy
+csak m&aacute;solatot kapt&aacute;l (cc:) az eredeti helyett.
+
+<li>K&ouml;nny&iacute;tsd meg a c&iacute;mzett dolg&aacute;t. Sok
+levelez&ocirc;program lev&aacute;gja a
+fejl&eacute;cinform&aacute;ci&oacute;kat amelyek a
+v&aacute;laszc&iacute;medet tartalmazz&aacute;k. Hogy biztos
+lehess&eacute;l abban, hogy a t&ouml;bbi ember tudja ki vagy,
+&iacute;rj&aacute;l az &uuml;zeneted v&eacute;g&eacute;re egy, esetleg
+k&eacute;t sort arr&oacute;l, hogy mik&eacute;ppen &eacute;rhetnek el.
+Ezt a file-t m&aacute;r j&oacute;el&ocirc;re elk&eacute;sz&iacute;theted,
+&eacute;s az &uuml;zeneteid v&eacute;g&eacute;re teheted azt&aacute;n.
+(N&eacute;h&aacute;ny program ezt automatikusan megteszi.) Az
+Internetes sz&oacute;haszn&aacute;latban ezt "sig" vagy "signature"
+file-nak nevezik. A n&eacute;vjegyk&aacute;rtya hely&eacute;t veszi
+&aacute;t a sig file. (&Eacute;s ak&aacute;r
+t&ouml;bbf&eacute;l&eacute;d is lehet, a t&ouml;bbf&eacute;le
+szitu&aacute;ci&oacute;nak megfelel&ocirc;en.)
+
+<li>L&eacute;gy &oacute;vatos a c&iacute;mz&eacute;ssel. Vannak
+c&iacute;mek, amelyek egy csoportot jelentek, a c&iacute;m
+m&eacute;gis &uacute;gy n&eacute;z ki, mintha egyetlen ember lenne.
+L&eacute;gy tiszt&aacute;ban azzal, hogy kinek &iacute;rsz.
+
+<li>Figyelj a cc:-kre a v&aacute;laszol&aacute;skor. Amikor m&aacute;r
+csak k&eacute;t ember k&ouml;z&ouml;tt folyik a
+kommunik&aacute;ci&oacute;, akkor ne k&uuml;ldd el ezeket a leveleket
+m&aacute;soknak.
+
+<li>&Aacute;ltal&aacute;ban egy Internetet haszn&aacute;l&oacute;
+embernek nincs ideje az Internet ill. annak bels&ocirc;
+m&ucirc;k&ouml;d&eacute;s&eacute;re vonatkoz&oacute;
+k&eacute;rd&eacute;sekre v&aacute;laszolni. Ne k&uuml;ldj&eacute;l
+k&eacute;retlen inform&aacute;ci&oacute;k&eacute;r&ocirc; leveleket
+olyan embereknek, akinek c&iacute;m&eacute;t egy levelez&eacute;si
+list&aacute;ban vagy egy RFC-ben l&aacute;thattad. (A
+ford&iacute;t&oacute; megjegyz&eacute;se: erre a c&eacute;lra is
+tal&aacute;lsz term&eacute;szetesen megfelel&ocirc; f&oacute;rumokat.)
+
+<li>Ne felejtsd el, hogy azok az emberek akikkel kommunik&aacute;lsz,
+az eg&eacute;sz vil&aacute;gon vannak sz&eacute;tsz&oacute;rva. Lehet,
+hogy annak a lev&eacute;lnek, amire azonnali v&aacute;laszt
+v&aacute;rsz, a c&iacute;mzettje &eacute;ppen alszik. Add meg neki a
+lehet&ocirc;s&eacute;get, hogy fel&eacute;bredjen, munk&aacute;ba
+menjen &eacute;s bel&eacute;pjen, miel&ocirc;tt &uacute;gy
+d&ouml;ntesz, hogy a lev&eacute;l nem &eacute;rkezett meg, vagy a
+c&iacute;mzett nem t&ouml;r&ocirc;dik vele.
+
+<li>Miel&ocirc;tt hossz&uacute;, vagy szem&eacute;lyes
+eszmecser&eacute;t kezdem&eacute;nyezel, ellen&ocirc;rizd a
+c&iacute;met. Szint&eacute;n helyes gyakorlat "Long" sz&oacute;t
+&iacute;rni a hossz&uacute; &uuml;zeneteknek a subject-j&eacute;be,
+mert &iacute;gy a c&iacute;mzett tudhatja, hogy id&ocirc;t kell
+sz&aacute;nnia az elolvas&aacute;s&aacute;ra. 100 sor felett
+sz&aacute;m&iacute;t hossz&uacute;nak egy &uuml;zenet.
+
+<li>L&eacute;gy tiszt&aacute;ban azzal, hogy kihez kell
+seg&iacute;ts&eacute;g&eacute;rt fordulnod. &Aacute;ltal&aacute;ban
+nem kell messzire menned. Keress&eacute;l helyben olyan embereket,
+akik szoftver- &eacute;s rendszerprobl&eacute;m&aacute;k
+elh&aacute;r&iacute;t&aacute;sban seg&eacute;dkezhetnek.
+Szint&eacute;n j&oacute;, ha tudod, hogy kit kell keresned, ha
+valamilyen megk&eacute;rd&ocirc;jelezhet&ocirc; vagy illeg&aacute;lis
+anyagot kapsz. A legt&ouml;bb helyen a "postmaster" c&iacute;mre
+&iacute;rhatsz seg&iacute;ts&eacute;gk&eacute;r&ocirc; levelet, mert ezt
+a c&iacute;met legt&ouml;bbsz&ouml;r megfelel&ocirc; tud&aacute;ssal
+b&iacute;r&oacute; ember olvassa.
+
+<li>Soha ne feledd, hogy a c&iacute;mzett is emberi l&eacute;ny,
+m&eacute;ghozz&aacute; olyan, akinek kult&uacute;r&aacute;ja, nyelve,
+humora eg&eacute;szen m&aacute;s is lehet, mint a ti&eacute;d.
+D&aacute;tumform&aacute;tumok,
+m&eacute;rt&eacute;kegys&eacute;gek, idi&oacute;m&aacute;k sem
+minden&uuml;tt ugyanazok.
+
+<li>Haszn&aacute;lj vegyesen kis- &eacute;s nagybet&ucirc;t,
+ak&aacute;rcsak a k&ouml;z&ouml;ns&eacute;ges
+&iacute;r&aacute;skor. A CSUPA NAGYBET&Ucirc; OLYAN,
+MINTHA ORD&Iacute;TAN&Aacute;L!
+
+<li>Haszn&aacute;lj szimb&oacute;lumokat
+hangs&uacute;lyoz&aacute;sra. *Erre* gondoltam. Haszn&aacute;lj
+al&aacute;h&uacute;z&aacute;sjeleket al&aacute;h&uacute;z&aacute;sra.
+A kedvenc k&ouml;nyvem a _H&aacute;bor&uacute; &eacute;s
+b&eacute;ke_.
+
+<li>Haszn&aacute;lj "mosolyg&oacute;kat" (smiley) a hangsz&iacute;n
+jelz&eacute;s&eacute;re, de b&aacute;nj vel&uuml;nk
+takar&eacute;kosan. :-) p&eacute;lda ilyen "mosolyg&oacute;ra"
+(d&ouml;ntsd oldalra a fejed &eacute;s n&eacute;zzd meg &uacute;gy.)
+Azonban ne felt&eacute;telezd, hogy egy "mosolyg&oacute;"
+szerepeltet&eacute;se r&ouml;gt&ouml;n el&eacute;ri, hogy a
+c&iacute;mzett egyet&eacute;rtsen veled, vagy hogy egy
+egy&eacute;bk&eacute;nt b&aacute;nt&oacute; megjegyz&eacute;s
+&eacute;l&eacute;t elvegye.
+
+<li>Aludj egyet, miel&ocirc;tt &eacute;rzelmekt&ocirc;l
+f&ucirc;t&ouml;tt v&aacute;laszt k&uuml;lden&eacute;l egy
+&uuml;zenetre. Ha biztosan er&ocirc;s &eacute;rz&eacute;seid vannak
+egy t&aacute;rgyr&oacute;l, akkor helyezd azt FLAME ON/OFF jelek
+k&ouml;z&eacute;:
+
+FLAME ON: Ez a fajta vita nem m&eacute;lt&oacute; arra a
+s&aacute;vsz&eacute;less&eacute;gre, ami a
+tov&aacute;bb&iacute;t&aacute;s&aacute;hoz kell. Teljess&eacute;ggel
+illogikus &eacute;s &eacute;rvekkel al&aacute; nem t&aacute;masztott.
+A vil&aacute;g t&ouml;bbi r&eacute;sze is egyet&eacute;rt velem.
+
+FLAME OFF
+
+<li>Ne &iacute;rj&aacute;l vez&eacute;rl&ocirc; karaktereket vagy
+nem-ASCII karaktereket, kiv&eacute;ve ha a programod elk&oacute;dolja
+ezeket, vagy MIME attachment form&aacute;j&aacute;ban
+k&uuml;ld&ouml;d. Ha elk&oacute;dolva k&uuml;ldesz valamit, akkor
+pr&oacute;b&aacute;lj megbizonyosodni arr&oacute;l, hogy a
+c&iacute;mzett vissza tudja majd k&oacute;dolni azt.
+
+<li>L&eacute;gy t&ouml;m&ouml;r an&eacute;lk&uuml;l, hogy
+t&uacute;ls&aacute;gon l&eacute;nyegret&ouml;r&ocirc; lenn&eacute;l.
+Amikor egy lev&eacute;lre v&aacute;laszolsz, csak annyit id&eacute;zz
+az eredeti anyagb&oacute;l, hogy &eacute;rthet&ocirc; legyen a
+v&aacute;laszod &eacute;s ne t&ouml;bbet. Rendk&iacute;v&uuml;l
+rossz szok&aacute;s az eg&eacute;sz levelet id&eacute;zni a
+v&aacute;laszban - t&ouml;r&ouml;ld ki a felesleget.
+
+<li>65 karakter sz&eacute;les, kocsivissza karakterrel lez&aacute;rt
+sorokat &iacute;rj&aacute;l. (Ford&iacute;t&oacute; megjegyz&eacute;se:
+e dokumentumt&oacute;l elt&eacute;r&ocirc;en 72-76 karaktert is
+szoktak aj&aacute;nlani.)
+
+<li>A lev&eacute;l fejl&eacute;c&eacute;ben kell, hogy legyen egy
+subject sor, ami visszat&uuml;kr&ouml;zi a lev&eacute;l
+tartalm&aacute;t.
+
+<li>Ha signature-t illesztesz a leveledbe, akkor azt fogd r&ouml;vidre.
+&Ouml;k&ouml;lszab&aacute;ly: 4 sorn&aacute;l ne legyen hosszabb.
+Sok ember a kapcsolat&eacute;rt percenk&eacute;nt fizet, &eacute;s
+min&eacute;l hosszabb az &uuml;zeneted, ann&aacute;l t&ouml;bbet
+fizetnek.
+
+<li>Ahogy egy lev&eacute;l (ma) nem lehet priv&aacute;t, &uacute;gy
+a lev&eacute;l (&eacute;s a news) is (ma m&eacute;g)
+hamis&iacute;that&oacute;, megv&aacute;ltoztathat&oacute;. A
+v&aacute;ltoztat&aacute;sokat nem mindig lehet felismerni
+(k&ouml;nnyen), &iacute;gy c&eacute;lszer&ucirc; a j&oacute;zan
+&eacute;sz alapj&aacute;n ellen&ocirc;rizni egy &uuml;zenet
+val&oacute;dis&aacute;g&aacute;t, miel&ocirc;tt elhissz&uuml;k azt.
+
+<li>K&uuml;ldj egy r&ouml;vid v&aacute;laszt a felad&oacute;nak,
+hogy megkaptad a level&eacute;t, ha &uacute;gy gondolod, hogy a
+lev&eacute;l fontoss&aacute;ga sz&uuml;ks&eacute;gess&eacute; teszi
+ezt. Tedd meg ezt akkor is, ha r&eacute;szletesen v&aacute;laszolni csak
+k&eacute;s&ocirc;bb lesz id&ocirc;d.
+
+<li>Az, hogy egy adott besz&eacute;lget&eacute;sb&ocirc;l ki mennyit
+&eacute;rt meg, az er&ocirc;sen f&uuml;gg az adott
+szitu&aacute;ci&oacute;t&oacute;l. Egy adott e-mail k&ouml;rnyezetben
+megtanult norm&aacute;k nem felt&eacute;tlen&uuml;l vonatkoznak
+&aacute;ltal&aacute;ban az Internetet haszn&aacute;l&oacute;
+emberekkel vonatkoz&oacute; kommunik&aacute;ci&oacute;ra.
+L&eacute;gy &oacute;vatos a helyi szlenggel &eacute;s a helyi
+r&ouml;vid&iacute;t&eacute;sekkel.
+
+<li>Egy e-mail &uuml;zenet sz&aacute;ll&iacute;t&aacute;si
+k&ouml;lts&eacute;ge nagyj&aacute;b&oacute;l egyenl&ocirc; a
+felad&oacute;n&aacute;l &eacute;s a c&iacute;mzettn&eacute;l (vagy
+szervezetein&eacute;l). Ez alapvet&ocirc;en elt&eacute;r a
+hagyom&aacute;nyos lev&eacute;lt&ocirc;l, a telefont&oacute;l, a
+r&aacute;di&oacute;t&oacute;l, &eacute;s a TV-t&ocirc;l. Egy
+lev&eacute;l elk&uuml;ld&eacute;se konkr&eacute;tan
+h&aacute;l&oacute;zati sz&eacute;less&eacute;gbe, diszk helybe,
+&eacute;s CPU id&ocirc;be is ker&uuml;lhet. Ez az alapvet&ocirc;
+gazdas&aacute;gi oka, ami&eacute;rt nem illik k&eacute;retlen
+hirdet&eacute;st k&uuml;ldeni e-mail-ben. (Ez r&aacute;ad&aacute;sul
+tilos is sok helyen.)
+
+<li>Ne k&uuml;ldj nagyt&ouml;meg&ucirc; k&eacute;retlen
+inform&aacute;ci&oacute;t az embereknek.
+
+<li>Ha a levelez&ocirc;rendszered k&eacute;pes automatikus
+tov&aacute;bbk&uuml;ld&eacute;sre, akkor vigy&aacute;zz, hogy ne
+l&eacute;pjen fel a rettegett "tov&aacute;bb&iacute;t&oacute;hurok". Ez
+&uacute;gy j&ouml;het l&eacute;tre, ha sok g&eacute;pen
+&aacute;ll&iacute;tod be az automata tov&aacute;bb&iacute;t&aacute;st,
+&uacute;gy, hogy egy neked k&uuml;ld&ouml;tt &uuml;zenet az egyik
+g&eacute;pt&ocirc;l a m&aacute;sikig utazik, majd a
+k&ouml;vetkez&ocirc;re &eacute;s &iacute;gy tov&aacute;bb
+eg&eacute;szen addig, amig vissza&eacute;rkezik az els&ocirc;
+c&iacute;mre a lev&eacute;l... (Ford&iacute;t&oacute;
+megjegyz&eacute;se: ennek elker&uuml;l&eacute;s&eacute;re nem
+minden&uuml;tt lehet automatikusan tov&aacute;bbk&uuml;ld&ouml;tt
+levelet tov&aacute;bbk&uuml;ldeni.)
+
+</ul>
+
+<h4>
+2.1.2 A talk
+</h4>
+
+A talk olyan protokollok gy&ucirc;jtem&eacute;nye, amelyek
+lehet&ocirc;v&eacute; teszik k&eacute;t ember interakt&iacute;v
+p&aacute;rbesz&eacute;d&eacute;t
+sz&aacute;m&iacute;t&oacute;g&eacute;pen kereszt&uuml;l.
+
+<ul>
+
+<li>Haszn&aacute;lj vegyesen kis- &eacute;s nagybet&ucirc;t, mintha
+egy levelet vagy egy e-mail-t &iacute;rn&aacute;l.
+
+<li>Ne hagyd, hogy az irom&aacute;nyod kifusson a
+k&eacute;perny&ocirc; sz&eacute;l&eacute;ig &eacute;s ott a
+termin&aacute;lod t&ouml;rj&ouml;n sort: haszn&aacute;lj egy
+Kocsivissza (CR) jelet a sor lez&aacute;r&aacute;s&aacute;ra. Nem
+t&eacute;telezheted fel azt sem, hogy a te k&eacute;perny&ocirc;d
+m&eacute;rete azonos b&aacute;rki m&aacute;s&eacute;val.
+&Ouml;k&ouml;lszab&aacute;ly: max. 70 karaktert &eacute;s max. 12
+sort &iacute;rj&aacute;l.
+
+<li>Hagyj&aacute;l marg&oacute;kat, ne &iacute;rj&aacute;l a
+k&eacute;perny&ocirc; sz&eacute;l&eacute;re.
+
+<li>Ha befejezted a mondand&oacute;dat, akkor &Uuml;ss&eacute;l
+k&eacute;t CR-t (egy &uuml;res sort), jelezve, hogy a m&aacute;sik
+k&ouml;vetkezik.
+
+<li>Mindig &iacute;rj&aacute;l egy "viszontl&aacute;t&aacute;sra"-t
+vagy m&aacute;s elk&ouml;sz&ouml;n&eacute;st &eacute;s v&aacute;rd
+meg a m&aacute;sik oldal k&ouml;sz&ouml;n&eacute;s&eacute;t is.
+K&uuml;l&ouml;n&ouml;sen fontos ez, ha egy t&aacute;voli valakivel
+kommunik&aacute;lsz. Ne felejtsd el, hogy a
+kommunik&aacute;ci&oacute;tok sebess&eacute;ge egyr&eacute;szt a
+rendelkez&eacute;sre &aacute;ll&oacute;
+s&aacute;vsz&eacute;less&eacute;gt&ocirc;l (a cs&ocirc;
+&aacute;tm&eacute;r&ocirc;je) &eacute;s a h&aacute;l&oacute;zat
+k&eacute;s&eacute;seit&ocirc;l (a f&eacute;ny sebess&eacute;ge) is
+f&uuml;gg.
+
+<li>Tiszt&aacute;ban kell lenned azzal, hogy a talk megzavarja a
+m&aacute;sik embert. Csak a rendeltet&eacute;s&eacute;nek
+megfelel&ocirc;en haszn&aacute;ld. Soha ne talk-olj idegenre!
+
+<li>Sok oka lehet annak, ha nem kapsz v&aacute;laszt.
+El&ocirc;sz&ouml;r is, nem biztos, hogy minden m&ucirc;k&ouml;dik.
+M&aacute;sodszor is, nem minden talk verzi&oacute; kompatibilis.
+Harmadr&eacute;szt, a c&iacute;mzett letilthatja a talk-ot. Ezt
+&aacute;ltal&aacute;ban te is megteheted, szok&aacute;s szerint
+&eacute;rdekl&ocirc;dj&eacute;l a helyi rendszergazd&aacute;n&aacute;l
+a konkr&eacute;t r&eacute;szletekr&ocirc;l.
+
+<li>Bizonyos talk verzi&oacute;k &uacute;jracsengetik a
+c&iacute;mzettet ha mag&aacute;ra hagyj&aacute;k. Hagyd
+egy-k&eacute;tszer csengetni, ut&aacute;na &aacute;ll&iacute;tsd le (kill)
+a programot.
+
+<li>Ha valaki nem v&aacute;laszol, akkor
+megpr&oacute;b&aacute;lkozhatsz egy m&aacute;sik tty-vel.
+Haszn&aacute;ld a finger parancsot, hogy l&aacute;tsd, hogy melyikekre
+van bel&eacute;pve. Ha a m&aacute;sik f&eacute;l m&eacute;g mindig
+nem v&aacute;laszol, ne er&ocirc;ltesd tov&aacute;bb.
+(Ford&iacute;t&oacute; megjegyz&eacute;se: n&eacute;hol a finger le
+van tiltva, ne lep&ocirc;dj meg teh&aacute;t, ha nem
+m&ucirc;k&ouml;dik. Megjegyz&eacute;s kett&ocirc;: Ez igen Unix
+specifikus pont, viszont a Unix a legelterjedtebb Internetes szerver
+oper&aacute;ci&oacute;s rendszer.).
+
+<li>A besz&eacute;lget&eacute;s (talk) alatt megmutatkozik a
+g&eacute;pel&eacute;si tud&aacute;sod. Ha lassan &eacute;s sok
+hib&aacute;val g&eacute;pelsz (ford&iacute;t&oacute;
+megjegyez&eacute;se: ne keseredj el) akkor legt&ouml;bbsz&ouml;r nem
+&eacute;ri meg visszamenni kijav&iacute;tani &ocirc;ket. A
+m&aacute;sik ember &uacute;gyis r&aacute;j&ouml;n, hogy mit akarsz
+mondani.
+
+<li>L&eacute;gy nagyon &oacute;vatos, ha egyszerre t&ouml;bb talk-od
+is fut! (Ford&iacute;t&oacute; megjegyz&eacute;se: Komoly
+es&eacute;lyed van r&aacute;, hogy el&ocirc;bb-ut&oacute;bb
+&ouml;sszekevered,
+hogy melyik talkn&aacute;l kivel &eacute;s mir&ocirc;l
+besz&eacute;lgetsz. K&eacute;rd&eacute;seidet &eacute;s
+v&aacute;laszaidat rossz helyre k&uuml;ldve komikus &eacute;s/vagy
+k&iacute;nos helyzetet teremthetsz.)
+
+</ul>
+
+<h3>
+2.2 Ir&aacute;nymutat&oacute; Adminisztr&aacute;toroknak
+</h3>
+
+<ul>
+
+<li>Felt&eacute;tlen&uuml;l r&ouml;gz&iacute;tsd
+&iacute;r&aacute;sban a szab&aacute;lyokat;
+k&uuml;l&ouml;n&ouml;sen az illeg&aacute;lis, hamis&iacute;tott
+&eacute;s az el&ocirc;&iacute;r&aacute;sokat megs&eacute;rt&ocirc;
+forgalomra vonatkoz&oacute;kat.
+
+<li>Id&ocirc;ben - lehet&ocirc;leg a k&ouml;vetkez&ocirc; munkanapig
+- v&aacute;laszold meg a felmer&uuml;l&ocirc;
+k&eacute;rd&eacute;seket.
+
+<li>Az illeg&aacute;lis &eacute;s el&ocirc;&iacute;r&aacute;sokat
+s&eacute;rt&ocirc; k&eacute;rd&eacute;seket sorold el&ocirc;re. A
+"l&aacute;nc" levelek azonnali int&eacute;zked&eacute;st
+k&iacute;v&aacute;nnak meg.
+
+<li>Magyar&aacute;zd meg a szab&aacute;lyokat - mint
+p&eacute;ld&aacute;ul a disk quota-kat - a
+felhaszn&aacute;l&oacute;idnak. &Eacute;rtesd meg vel&uuml;k a
+mail-en &aacute;t t&ouml;rt&eacute;n&ocirc; file k&eacute;r&eacute;s
+k&ouml;vetkezm&eacute;nyeit: magas telefonsz&aacute;ml&aacute;k,
+betel&ocirc; lemezek, m&aacute;s levelek k&eacute;s&eacute;se stb.
+
+<li>Legyen egy alias a "Postmaster" &eacute;s a "Root" c&iacute;meken.
+Felt&eacute;tlen&uuml;l olvassa el valaki ezeket a leveleket!
+(Ford&iacute;t&oacute; megjegyz&eacute;se: mint t&ouml;bbsz&ouml;r
+&iacute;rtuk m&aacute;r, ezeknek nem olvas&aacute;sa, hanem
+megv&aacute;laszol&aacute;sa is igen fontos!)
+
+<li>Nyitottan vizsg&aacute;ld meg a felhaszn&aacute;l&oacute;idat
+&eacute;rint&ocirc; panaszokat. A c&iacute;mek sajnos
+hamis&iacute;that&oacute;ak, a levelek megpiszk&aacute;lhat&oacute;ak.
+
+</ul>
+
+<h2>
+<a name="3.0">3.0 Egy-sokaknak kommunik&aacute;ci&oacute;
+(Levelez&eacute;si list&aacute;k, Usenet)
+</h2>
+<p>
+Amikor sok emberrel kommunik&aacute;lsz egyszerre, akkor a mail-re
+vonatkoz&oacute; szab&aacute;lyok is &eacute;rv&eacute;nyesek.
+V&eacute;g&uuml;lis nincs nagy k&uuml;l&ouml;nbs&eacute;g a
+k&ouml;z&ouml;tt, hogy egy embernek &iacute;rsz egy levelet vagy sok
+emberrel kommunik&aacute;lsz egy cikken kereszt&uuml;l - legfeljebb
+annyi, hogy &iacute;gy sokkal t&ouml;bb embert van
+lehet&ocirc;s&eacute;ged megb&aacute;ntani. &Iacute;gy azt&aacute;n
+k&uuml;l&ouml;n&ouml;sen fontos, hogy min&eacute;l t&ouml;bbet
+tudj&aacute;l a k&ouml;z&ouml;ns&eacute;gedr&ocirc;l.
+
+<h3>
+3.1 Ir&aacute;nymutat&oacute; Felhaszn&aacute;l&oacute;knak
+</h3>
+
+<h4>
+3.1.1 &Aacute;ltal&aacute;nos &uacute;tmutat&oacute; a
+levelez&eacute;si list&aacute;khoz &eacute;s a Usenet-hoz
+</h4>
+<ul>
+<li>Legal&aacute;bb egy, de ink&aacute;bb k&eacute;t h&oacute;napig
+olvasd az adott levelez&eacute;si list&aacute;t ill. h&iacute;rcsoportot
+miel&ocirc;tt post&aacute;zol valamit. Ez hozz&aacute;seg&iacute;t az
+adott csoport kult&uacute;rj&aacute;nak megismer&eacute;s&eacute;hez.
+(Ford&iacute;t&oacute; megjegyz&eacute;se: ez a tanul&aacute;s
+id&ocirc; jelent&ocirc;sen cs&ouml;kkenthet&ocirc; a lista/csoport
+arch&iacute;vum &eacute;s a megfelel&ocirc; FAQ
+tanulm&aacute;nyoz&aacute;s&aacute;val. Ez ut&oacute;bbit
+mindenk&eacute;ppen olvasd el, miel&ocirc;tt post&aacute;zn&aacute;l
+b&aacute;rmit is!)
+
+<li>Ne hib&aacute;ztasd a rendszeradminisztr&aacute;tort az adott
+rendszer felhaszn&aacute;l&oacute;inak viselked&eacute;se miatt.
+
+<li>V&eacute;sd j&oacute;l az eszedbe, hogy amit &iacute;rsz, azt
+sz&eacute;les k&ouml;z&ouml;ns&eacute;g olvashatja. Ebben
+&eacute;ppens&eacute;ggel a jelenlegi vagy a j&ouml;v&ocirc;beli
+f&ocirc;n&ouml;k&ouml;d is benne lehet. Vigy&aacute;zz teh&aacute;t
+arra, hogy mit &iacute;rsz. Jusson eszedbe az is, hogy a csoportokat
+&eacute;s k&uuml;l&ouml;n&ouml;sen a levelez&eacute;si
+list&aacute;kat archiv&aacute;lni is szokt&aacute;k, olyan helyen, amihez
+sokan f&eacute;rnek hozz&aacute;. &Iacute;gy a szavaidat hossz&uacute;
+id&ocirc;n &aacute;t olvashatja szinte b&aacute;rki.
+
+<li>Fel kell t&eacute;telezned, hogy minden egyes ember saj&aacute;t
+maga nev&eacute;ben &iacute;r, &eacute;s nincs k&ouml;ze a
+szervezet&eacute;hez, kiv&eacute;ve ha kifejezetten ezt
+&aacute;ll&iacute;tja.
+
+<li>Tudnod kell azt is, hogy ak&aacute;rcsak a lev&eacute;l, a news is
+er&ocirc;forr&aacute;sig&eacute;nyes. Ismerned kell teh&aacute;t a
+szervezeted speci&aacute;lis szab&aacute;lyzat&aacute;t erre
+vonatkoz&oacute;lag.
+
+<li>Az &uuml;zenetek &eacute;s a cikkek j&oacute;, ha r&ouml;videk
+&eacute;s c&eacute;lrat&ouml;r&ocirc;ek. Ne k&oacute;sz&aacute;lj el
+a t&eacute;m&aacute;t&oacute;l, ne besz&eacute;lj &ouml;ssze-vissza,
+&eacute;s soha, de soha ne &iacute;rj olyan levelet, ami csak valaki
+g&eacute;pel&eacute;si vagy helyes&iacute;r&aacute;si hib&aacute;ira
+mutat r&aacute;. Ez ut&oacute;bbi azonnal megmutatja, hogy milyen
+sz&ouml;rnyen kezd&ocirc; vagy.
+
+<li>A subject sorok az adott csoport konvenci&oacute;t kell
+k&ouml;vess&eacute;k. (Ford&iacute;t&oacute; megjegyz&eacute;se:
+L&aacute;tni fogod, hogy sok helyen a subject sor valamilyen
+oszt&aacute;lyoz&oacute; inform&aacute;ci&oacute;t hordoz, &eacute;s
+ha ez hi&aacute;nyzik, akkor val&oacute;sz&iacute;n&ucirc;leg pont
+azokhoz az emberekhez nem jut el az &iacute;r&aacute;sod, akiknek
+sz&aacute;ntad.)
+
+<li>B&aacute;r lehet, hogy lehet&ocirc;s&eacute;g ny&iacute;lik
+r&aacute;, de a hamis&iacute;t&aacute;s, a levelek tartalm&aacute;hoz
+vagy fejl&eacute;c&eacute;hez val&oacute;
+hozz&aacute;piszk&aacute;l&aacute;s &aacute;ltal&aacute;ban nem
+elfogadott.
+
+<li>Hirdetni csak &eacute;s kiz&aacute;r&oacute;lag az arra hivatott
+csoportokban &eacute;s levelez&eacute;si list&aacute;kban szabad! Ez
+is egy p&eacute;ld&aacute;ja annak, hogy c&eacute;lszer&ucirc;
+ismerned azt a k&ouml;z&ouml;ns&eacute;get, aki majd
+&iacute;r&aacute;sodat olvassa. A k&eacute;retlen hirdet&eacute;s - ami
+nem tartozik egy adott csoport/lista t&eacute;mak&ouml;r&eacute;be -
+val&oacute;sz&iacute;n&ucirc; k&ouml;vetkezm&eacute;nye: rengeteg
+durva v&aacute;laszlev&eacute;l. (Ford&iacute;t&oacute;
+megjegyz&eacute;se: semmik&eacute;ppen se nyilv&aacute;nosan
+v&aacute;laszolj&aacute;l, hiszen m&aacute;r ez is rekl&aacute;m.
+Hat&eacute;konyabb, ha a felad&oacute;
+rendszergazd&aacute;in&aacute;l panaszkodsz.)
+
+<li>Ha v&aacute;lasz&uuml;zenetet &iacute;rsz, akkor
+mindenk&eacute;ppen foglald &ouml;ssze vagy id&eacute;zz annyit az
+eredetib&ocirc;l, hogy &eacute;rthet&ocirc; legyen a v&aacute;laszod.
+K&uuml;l&ouml;n&ouml;sen a Usenet eset&eacute;ben l&eacute;nyeges
+ez, mivel ott olyan az &uuml;zenetek eloszt&aacute;sa, hogy
+el&ocirc;fordulhat, hogy valaki a v&aacute;laszodat olvassa el&ocirc;bb,
+mint az eredetit. &Iacute;gy teh&aacute;t j&oacute;, ha k&eacute;pbe
+helyezed olvas&oacute;idat - viszont ne id&eacute;zd az eg&eacute;szet!
+
+<li>&Uacute;jra hangs&uacute;lyozzuk, hogy igen c&eacute;lszer&ucirc;,
+ha van egy signature file-od, amit az &uuml;zeneteidhez csatolhatsz.
+Csak &eacute;s kiz&aacute;r&oacute;lag &iacute;gy tudod
+biztos&iacute;tani azt, hogy b&aacute;rmilyen program is
+nyirb&aacute;lja meg a fejl&eacute;cinform&aacute;ci&oacute;kat, az
+olvas&oacute;id m&eacute;g mindig r&aacute;d tal&aacute;lhassanak.
+
+<li>L&eacute;gy &oacute;vatos, amikor egy &uuml;zenetre vagy cikkre
+v&aacute;laszolsz. Gyakran a v&aacute;lasz a lista vagy a csoport
+c&iacute;m&eacute;re megy a felad&oacute; helyett.
+T&eacute;ved&eacute;sb&ocirc;l szem&eacute;lyes &uuml;zenetet
+k&uuml;ldhetsz egy helyett sok embernek, amivel csak mindenkit
+zavarba hozol. A legjobb az, ha v&aacute;laszad&aacute;sn&aacute;l
+beg&eacute;peled a c&iacute;met az automata "reply" helyett.
+(Ford&iacute;t&oacute; megjegyz&eacute;se: Kell&ocirc;
+&oacute;vatoss&aacute;ggal ez ut&oacute;bbit&oacute;l el lehet
+t&eacute;rni.)
+
+<li>(Ford&iacute;t&oacute; megjegyz&eacute;se: Ezt a pontot
+jelent&ocirc;sen ler&ouml;vid&iacute;tettem. A l&eacute;nyeg az, hogy
+ne k&uuml;ldj&uuml;nk automata (vacation, non-delivery stb.)
+&uuml;zeneteket levelez&eacute;si list&aacute;kra)
+
+<li>Ha v&eacute;letlen&uuml;l szem&eacute;lyes &uuml;zenetet
+k&uuml;ldt&eacute;l egy list&aacute;ra vagy csoportba, akkor
+k&uuml;ldj egy bocs&aacute;natk&eacute;r&ocirc; &uuml;zenetet az
+eredeti c&iacute;mzettnek &eacute;s a list&aacute;nak ill. csoportnak is.
+
+<li>Ha valakivel nem &eacute;rtesz egyet, akkor c&eacute;lszer&ucirc;bb
+szem&eacute;lyes &uuml;zenetekben rendezni a dolgot, mint vit&aacute;t
+folytatni egy list&aacute;n. Ha olyasmin vit&aacute;ztok, ami
+&eacute;rdekelheti a lista olvas&oacute;it, akkor &eacute;rdemes a
+vit&aacute;tok eredm&eacute;ny&eacute;t &ouml;sszefoglalni &eacute;s
+elk&uuml;ldeni a list&aacute;ra.
+
+<li>Ne keveredj flame war-ba! Ne &iacute;rj&aacute;l heves leveleket
+&eacute;s ne v&aacute;laszolj&aacute;l ilyenekre.
+
+<li>Ne k&uuml;ldj&eacute;l olyan v&aacute;laszokat, amelyek csak
+gratul&aacute;lnak egy m&aacute;sik v&aacute;laszhoz.
+(Ford&iacute;t&oacute; megyjez&eacute;se: Ezt szem&eacute;lyes
+lev&eacute;lben teheted meg, ha &uacute;gy &eacute;rzed,
+t&eacute;nyleg fontos)
+
+<li>L&eacute;gy &oacute;vatos a fixpontos bet&ucirc;kkel &eacute;s a
+rajzokkal. Ezeket egy m&aacute;sik rendszer - vagy ak&aacute;r
+ugyanazon rendszer egy m&aacute;sik programja -
+m&aacute;sk&eacute;ppen jelen&iacute;theti meg, mint a te szoftvered.
+
+<li>Vannak olyan h&iacute;rcsoportok &eacute;s levelez&eacute;si
+list&aacute;k, melyek t&eacute;m&aacute;ja igen sz&eacute;les
+&eacute;rdekl&ocirc;d&eacute;si k&ouml;rt fed le. Ez gyakran olyan
+olvas&oacute;kat jelenthet, akik &eacute;letst&iacute;lusban,
+vall&aacute;sban, &eacute;s kult&uacute;r&aacute;ban is jelent&ocirc;sen
+elt&eacute;rhetnek. Ne k&uuml;ldj&eacute;l olyan &uuml;zeneteket egy
+list&aacute;ra/csoportba - ha annak n&eacute;z&ocirc;pontja
+valami&eacute;rt nem egyezik a ti&eacute;ddel - ami csak annyit
+k&ouml;z&ouml;l, hogy az &ocirc; &aacute;ll&aacute;spontjukat
+b&aacute;nt&oacute;nak &eacute;rzed. Szexu&aacute;lis vagy faji
+zaklat&aacute;snak jogi k&ouml;vetkezm&eacute;nye is lehet. Az
+&aacute;ltalad megk&eacute;rd&ocirc;jelezhet&ocirc;nek &eacute;rzett
+&uuml;zenetek kisz&ucirc;r&eacute;s&eacute;re (filter) vannak
+programok.
+
+</ul>
+
+<h4>
+3.1.2 Ir&aacute;nymutat&oacute; levelez&eacute;si list&aacute;khoz
+</h4>
+<p>
+A l&eacute;tez&ocirc; levelez&eacute;si list&aacute;kr&oacute;l
+&eacute;s a hozz&aacute;juk val&oacute; csatlakoz&aacute;sr&oacute;l
+sokf&eacute;lek&eacute;ppen tal&aacute;lhatsz
+inform&aacute;ci&oacute;kat a Net-en. Term&eacute;szetesen ezen
+inform&aacute;ci&oacute; mellett sz&uuml;ks&eacute;ged lesz a
+helyiekre is; milyen szab&aacute;lyok vonatkoznak a levelez&eacute;si
+list&aacute;khoz val&oacute; csatlakoz&aacute;sra &eacute;s a
+post&aacute;z&aacute;sra. &Aacute;ltal&aacute;ban jobb, ha
+el&ocirc;sz&ouml;r a sz&ucirc;kebb k&ouml;rnyezetben kutatsz
+inform&aacute;ci&oacute; ut&aacute;n &eacute;s csak ut&aacute;na
+kezdesz az Interneten kutatni. Mindenesetre a
+<code>news.answers</code> h&iacute;rcsoportban rendszeresen
+megjelenik egy lista a levelez&eacute;si list&aacute;kr&oacute;l
+&eacute;s a csatlakoz&aacute;sr&oacute;l. B&aacute;rmilyen
+t&eacute;m&aacute;ban keresel levelez&eacute;si list&aacute;t, ez egy
+felbecs&uuml;lhetetlen &eacute;rt&eacute;k&ucirc; anyag. A
+v&aacute;logatott bibliogr&aacute;fi&aacute;nkban a [9,13,15]-&ouml;s
+anyagokb&oacute;l is t&aacute;j&eacute;koz&oacute;dhatsz.
+
+<ul>
+
+<li>A fel- &eacute;s leiratkoz&oacute; (subscribe - unsubscribe)
+&uuml;zeneteket a megfelel&ocirc; c&iacute;mre k&uuml;ldjed.
+N&eacute;h&aacute;ny szoftver ugyan megk&iacute;s&eacute;rli
+kisz&ucirc;rni a list&aacute;ra k&uuml;ld&ouml;tt ilyen
+t&iacute;pus&uacute; &uuml;zeneteket, de ezek sem
+mindenhat&oacute;ak. A te felel&ocirc;ss&eacute;ged megtanulni a
+levelez&eacute;si list&aacute;k m&ucirc;k&ouml;d&eacute;s&eacute;t
+&eacute;s a megfelel&ocirc; levelet a megfelel&ocirc; c&iacute;mre
+k&uuml;ldeni. Nagyon sok lista m&ucirc;k&ouml;dtet egy "-request"
+alias-t a fel-le iratkoz&oacute; &uuml;zeneteknek, de nem mindegyik.
+(Ford&iacute;t&oacute; megjegyz&eacute;se: ezt a mondatot csak akkor
+fogod meg&eacute;rteni, ha m&aacute;r elkezdted megtanulni a fent
+emlegetett m&ucirc;k&ouml;d&eacute;st) Mindig l&eacute;gy
+tiszt&aacute;ban annak a list&aacute;nak a szab&aacute;lyaival, amire
+el&ocirc;fizetsz.
+
+<li>Mentsd el a feliratkoz&aacute;sra kapott v&aacute;laszt. Ez
+legt&ouml;bbsz&ouml;r tartalmazza a leiratkoz&aacute;shoz
+sz&uuml;ks&eacute;ges inform&aacute;ci&oacute;kat.
+
+<li>&Aacute;ltal&aacute;ban nem lehet visszavonni egy
+elk&uuml;ld&ouml;tt levelet. A rendszergazd&aacute;d sem
+k&eacute;pes erre. Ez azt jelenti, hogy csak akkor szabad
+elk&uuml;ldened az &uuml;zenetedet, ha m&aacute;r bizonyos vagy
+benne, hogy azt szeretn&eacute;d, hogy megjelenjen.
+
+<li>Igen sok levelez&ocirc; program rendelkezik reply
+funkci&oacute;val. Ez k&eacute;nyelmes
+mag&aacute;nlevelez&eacute;skor, de igen bosszant&oacute; lehet
+levelez&eacute;si list&aacute;kn&aacute;l. Amikor list&aacute;n
+j&ouml;tt &uuml;zenetre v&aacute;laszolsz, akkor vizsg&aacute;ld meg
+a Reply-To: mez&ocirc;t. Az gyakorta a lista c&iacute;me, azaz a
+v&aacute;laszod a lista &ouml;sszes tagj&aacute;nak megy.
+
+<li>Felesleges, &eacute;s ez&eacute;rt helytelen nagy file-okat
+k&uuml;ldeni egy list&aacute;ra, ha egy Uniform Resource Locator
+(URL) vagy egy ftp-zhet&ocirc; verzi&oacute; c&iacute;me is
+el&eacute;g. Ha sok kis r&eacute;szletben szeretn&eacute;d
+elk&uuml;ldeni, akkor az adott lista erre vonatkoz&oacute;
+szab&aacute;lyait kell k&ouml;vetned. Ha ezeket nem ismered, akkor
+k&eacute;rdezd meg!
+
+<li>Fontold meg a leiratkoz&aacute;st vagy a "nomail" opci&oacute;
+bekapcsol&aacute;s&aacute;t (ahol lehet) ha hosszabb ideig nem tudod
+megn&eacute;zni a leveleidet. (Ford&iacute;t&oacute;
+megjegyz&eacute;se: A leglanyh&aacute;bb lista is robbanhat hirtelen,
+teh&aacute;t ezt minden egyes list&aacute;val meg kell tegyed hosszabb
+t&aacute;voll&eacute;t el&ocirc;tt!)
+
+<li>Ha egy &uuml;zenetet net&aacute;n t&ouml;bb list&aacute;ra
+k&uuml;lden&eacute;l, k&uuml;l&ouml;n&ouml;sen akkor, ha azok
+k&ouml;zel azonos t&eacute;m&aacute;j&uacute;ak, akkor k&eacute;rj
+eln&eacute;z&eacute;st a cross-posting miatt.
+
+<li>Ha felteszel egy k&eacute;rd&eacute;st, akkor a
+v&aacute;laszokb&oacute;l k&eacute;sz&iacute;ts egy
+&ouml;sszegz&eacute;st &eacute;s azt k&uuml;ldd el a list&aacute;ra.
+Ez semmi esetre se az &ouml;sszes v&aacute;lasz egyszer&ucirc;
+egym&aacute;sut&aacute;nja legyen, hanem egy gondos
+&ouml;sszegz&eacute;s. (Ford&iacute;t&oacute; megjegyz&eacute;se:
+Felmer&uuml;lhet a k&eacute;rd&eacute;s, hogy m&eacute;gis
+mi&eacute;rt tedd ezt meg. A v&aacute;lasz az Internet
+alapfiloz&oacute;fi&aacute;ja maga: seg&iacute;ts m&aacute;sokon,
+&eacute;s rajtad is seg&iacute;tenek. Ha valakik
+megv&aacute;laszolt&aacute;k egy k&eacute;rd&eacute;sedet, akkor
+megtehetsz annyit viszonz&aacute;sk&eacute;pp, hogy az &iacute;gy
+megszerzett tud&aacute;st megosztod m&aacute;sokkal)
+
+<li>Vannak priv&aacute;t levelez&eacute;si list&aacute;k. Ha nem
+h&iacute;vtak meg, akkor ne k&uuml;ldj ide &uuml;zeneteket. Az ilyen
+list&aacute;k &uuml;zeneteit ne add tov&aacute;bb egy sz&eacute;lesebb
+k&ouml;z&ouml;ns&eacute;gnek.
+
+<li>Ha vit&aacute;ba keveredsz, akkor a megbesz&eacute;l&eacute;st az
+adott t&eacute;m&aacute;r&oacute;l illik folytatni, nem pedig az adott
+szem&eacute;lyekr&ocirc;l.
+
+</ul>
+
+<h4>
+3.1.3 Ir&aacute;nymutat&oacute; a Usenet-hoz
+</h4>
+<p>
+A Usenet egy vil&aacute;gm&eacute;ret&ucirc; elosztott rendszer, ami
+a legk&uuml;l&ouml;nf&eacute;l&eacute;bb t&eacute;m&aacute;kban
+val&oacute; kommunik&aacute;ci&oacute;ra ad lehet&ocirc;s&eacute;get.
+A rendszer hierarchikus, a legfels&ocirc;bb szinten a
+k&ouml;vetkez&ocirc; t&eacute;m&aacute;k vannak: sci -
+tudom&aacute;nyos; comp - sz&aacute;m&iacute;t&oacute;g&eacute;pes;
+news - mag&aacute;r&oacute;l a Usenetr&oacute;l; rec -
+sz&oacute;rakoz&aacute;s, hobbi; soc - szoci&aacute;lis; talk - b&ocirc;
+l&eacute;re eresztett, soha v&eacute;get nem &eacute;r&ocirc;
+besz&eacute;lget&eacute;sek (pl. politika); biz - &uuml;zleti; alt -
+b&aacute;rmi egy&eacute;b. Az alt f&ocirc;csoportba tartoz&oacute;
+csoportok olyan &eacute;rtelemben is alternat&iacute;vok, hogy a
+l&eacute;trehoz&aacute;suk nem megy kereszt&uuml;l ugyanazon a
+l&eacute;p&eacute;seken, mint a t&ouml;bbi f&ocirc;csoportbeliek.
+Vannak m&eacute;g helyi f&ocirc;csoportok, sz&eacute;les k&ouml;rben
+terjesztett egyebek, mint a bionet, &eacute;s a saj&aacute;t
+szervezetednek is lehetnek saj&aacute;t, bels&ocirc; csoportjai.
+Nemr&eacute;giben egy "humanities" f&ocirc;csoport is
+l&eacute;trej&ouml;tt, &eacute;s v&aacute;rhat&oacute;ak
+tov&aacute;bbiak is. A bibliogr&aacute;fi&aacute;nk [2,8,22,23]-as
+anyagait &eacute;rdemes a t&eacute;m&aacute;ban elolvasni.
+
+<ul>
+
+<li>A Usenet sz&oacute;j&aacute;r&aacute;s&aacute;ban a "Posting"
+(post&aacute;z&aacute;s) egy &uacute;j vagy v&aacute;lasz cikk
+post&aacute;z&aacute;s&aacute;t jelenti egy csoportba. A
+"Cross-posting" kifejez&eacute;st arra haszn&aacute;lj&aacute;k, ha
+valaki egy cikket t&ouml;bb csoportba k&uuml;ld&ouml;tt el. Ha ezt
+vagy a Followup-To: mez&ocirc;t is haszn&aacute;ljuk, akkor ezt
+felt&eacute;tlen&uuml;l eml&iacute;ts&uuml;k meg a cikk&uuml;nkben.
+Az olvas&oacute;k &aacute;ltal&aacute;ban azt felt&eacute;telezik, hogy
+egy &uuml;zenet egy csoportba lett post&aacute;zva, &eacute;s a
+"follow-up" ebbe a csoportba ker&uuml;l. A fejl&eacute;c
+eml&iacute;tett mez&ocirc;je megv&aacute;ltoztathatja ezt. (A
+ford&iacute;t&oacute; megjegyz&eacute;se: A "follow-up" a
+v&aacute;laszcikk neve, a v&aacute;laszk&eacute;nt &iacute;rt
+mag&aacute;nlevelet "Reply" n&eacute;ven emlegetik. A Followup-To:
+azt a csoportot adja meg, ahov&aacute; a v&aacute;laszcikkek
+ker&uuml;lnek.)
+
+<li>Miel&ocirc;tt elk&uuml;lden&eacute;l egy t&eacute;m&aacute;ban
+egy cikket, olvasd el abban a t&eacute;m&aacute;ban &iacute;rott
+cikkeket. (Ezt thread-nek nevezz&uuml;k) Ne k&uuml;ldj&eacute;l
+"Egyet&eacute;rtek" vagy hasonl&oacute; &uuml;zeneteket, amelyek
+tartalma puszt&aacute;n arra korl&aacute;toz&oacute;dik, hogy
+egyet&eacute;rtesz valamely kor&aacute;bbi cikkel. Egy follow-up
+cikknek mindig hosszabbnak kell lennie az el&ocirc;z&ocirc;
+levelekb&ocirc;l vett id&eacute;zetekn&eacute;l. (Ford&iacute;t&oacute;
+megjegyz&eacute;se: Apr&oacute; pontos&iacute;t&aacute;s: Egy cikk
+&eacute;s r&aacute; adott v&aacute;laszcikkek
+&ouml;sszess&eacute;g&eacute;t nevez&uuml;nk thread-nek.)
+
+<li>Lev&eacute;lben (reply) &iacute;rd meg v&aacute;laszod, ha csak
+egy embernek sz&aacute;nod azt. L&eacute;gy a tudat&aacute;ban annak,
+hogy a News-t a vil&aacute;gon minden&uuml;tt olvashatj&aacute;k,
+&eacute;s a legt&ouml;bb embert NEM &eacute;rdekel egy priv&aacute;t
+v&aacute;lasz. Ugyanakkor ne habozz&aacute;l post&aacute;zni, ha
+olyasmi mondand&oacute;d van, ami az Internet sz&eacute;les
+olvas&oacute;k&ouml;z&ouml;ns&eacute;g&eacute;t &eacute;rdekelheti.
+(Ford&iacute;t&oacute; megjegyz&eacute;se: tipikus, &eacute;s nagyon
+bosszant&oacute; viselked&eacute;s pl. egy bolhapiac csoportban
+nyilv&aacute;nosan v&aacute;laszolni a hirdet&eacute;sekre.)
+
+<li>Ellen&ocirc;rizd le a fejl&eacute;c Distribution:
+mez&ocirc;j&eacute;t, de ne b&iacute;zz benne. A News
+meglehet&ocirc;sen bonyolult sz&aacute;ll&iacute;t&aacute;sa
+m&oacute;dja miatt a Distribution: mez&ocirc; megb&iacute;zhatatlan.
+Ha olyasvalamit &iacute;rsz, ami csak kissz&aacute;m&uacute; embert
+&eacute;rdekelhet, akkor haszn&aacute;lj egy megfelel&ocirc;
+Distribution: mez&ocirc;t; ezzel megk&iacute;s&eacute;rled az
+eloszt&aacute;st ezekre az emberekre korl&aacute;tozni.
+(Ford&iacute;t&oacute; megjegyz&eacute;se: P&eacute;ld&aacute;ul
+&aacute;ll&iacute;tsd be "hun"-ra ezt a mez&ocirc;t, ha csak magyarokat
+&eacute;rdekl&ocirc; cikket post&aacute;zol.)
+
+<li>Ha &uacute;gy &eacute;rzed, hogy egy cikk t&ouml;bb
+h&iacute;rcsoportba val&oacute;, akkor mindenk&eacute;ppen
+CROSSPOST-tal k&uuml;ldd el a cikkedet ahelyett, hogy
+k&uuml;l&ouml;n&aacute;ll&oacute; &uuml;zenetekben
+k&uuml;lden&eacute;d el. Biztos lehetsz abban, hogy
+&aacute;ltal&aacute;ban csak 5-6 csoportnak lesz el&eacute;gg&eacute;
+hasonl&oacute; t&eacute;m&aacute;ja. (Ford&iacute;t&oacute;
+megjegyz&eacute;se: Ez a pont ritk&aacute;n alkalmazand&oacute;!!
+RENDK&Iacute;V&Uuml;L nyom&oacute;s okodnak kell lennie ahhoz,
+hogy ak&aacute;r k&eacute;t csoportba is post&aacute;zz&aacute;l!!)
+
+<li>K&iacute;s&eacute;relj meg el&ocirc;sz&ouml;r a
+hagyom&aacute;nyos ismeretforr&aacute;sokb&oacute;l
+(K&eacute;zik&ouml;nyvek, &uacute;js&aacute;gok, help file-ok)
+mer&iacute;teni, miel&ocirc;tt egy k&eacute;rd&eacute;st
+post&aacute;zn&aacute;l. Ha ezekben megtal&aacute;lhat&oacute;
+k&eacute;rd&eacute;st teszel fel, akkor mogorva RTFM (Read the fine
+manual - noha az f bet&ucirc; egy sokkal durv&aacute;bb sz&oacute;t
+jel&ouml;lt eredetileg) &uuml;zeneteket kapsz csak
+viszonz&aacute;sk&eacute;ppen. (Ford&iacute;t&oacute;
+megjegyz&eacute;se: Ez is csak a j&oacute;zan &eacute;sz
+hat&aacute;r&aacute;ig &eacute;rv&eacute;nyes. T&eacute;nyleg olvasd
+el a k&eacute;zik&ouml;nyvet, de ne &aacute;ldozz &eacute;veket
+valaminek a kutat&aacute;s&aacute;ra - v&eacute;g&uuml;lis az Internet
+egyik haszna, hogy olyanok, akik ezt megtett&eacute;k,
+megosztj&aacute;k veled tud&aacute;sodat.)
+
+<li>B&aacute;r van n&eacute;h&aacute;ny h&iacute;rcsoport, amik
+kifejezetten hirdet&eacute;sre vannak kital&aacute;lva, a
+t&eacute;m&aacute;t&oacute;l elt&eacute;r&ocirc; (off-topic)
+hirdet&eacute;sek eg&eacute;szen egyszer&ucirc;en
+b&ucirc;n&ouml;z&eacute;snek sz&aacute;m&iacute;tanak a
+legt&ouml;bb csoportban. Ha egy hirdet&eacute;st minden egyes
+h&iacute;rcsoportba elk&uuml;ldesz, akkor szinte biztosan
+b&uacute;cs&uacute;t mondhatsz a h&aacute;l&oacute;zati
+el&eacute;r&eacute;sednek.
+
+<li>Ha felfedezel egy hib&aacute;t a cikkedben, akkor
+k&iacute;s&eacute;reld meg min&eacute;l hamarabb t&ouml;r&ouml;lni
+(cancel) azt. (Ford&iacute;t&oacute; megjegyz&eacute;se: A
+t&ouml;rl&eacute;s is csak egy &uuml;zenet, mint minden m&aacute;s.
+Nem b&iacute;zhatsz igaz&aacute;n abban, hogy senki sem fogja a
+cikkedet olvasni. C&eacute;lszer&ucirc; egy m&aacute;sodik, helyes
+cikket is k&uuml;ldeni, amelyben eln&eacute;z&eacute;st is k&eacute;rsz
+az el&ocirc;z&ocirc; hib&aacute;j&aacute;&eacute;rt. A j&oacute;zan
+&eacute;szt itt is c&eacute;lszer&ucirc; bevetni: a hiba alatt nem
+nyelvtani, g&eacute;pel&eacute;si stb. - vagyis apr&oacute;,
+l&eacute;nyegtelen - hib&aacute;t, hanem a l&eacute;nyeget
+&eacute;rint&ocirc; hib&aacute;ra gondolunk.)
+
+<li>MEG SE pr&oacute;b&aacute;ld m&aacute;s cikk&eacute;t
+t&ouml;r&ouml;lni (cancel). L&eacute;pj kapcsolatba
+rendszergazd&aacute;ddal, ha nem tudod, hogy hogyan kell saj&aacute;t
+cikkedet t&ouml;r&ouml;lni vagy ha valamilyen m&aacute;s
+post&aacute;z&aacute;s (pl. l&aacute;nc lev&eacute;l)
+t&ouml;rl&eacute;st k&iacute;v&aacute;n.
+
+<li>Ha post&aacute;zt&aacute;l valamit, &eacute;s nem l&aacute;tod
+viszont azonnal, akkor ne hidd r&ouml;gt&ouml;n azt, hogy valami nem
+m&ucirc;k&ouml;d&ouml;tt &eacute;s ne post&aacute;zd azonnal
+&uacute;jra.
+
+<li>N&eacute;h&aacute;ny csoport megengedi (n&eacute;h&aacute;ny
+pedig ez&eacute;rt van), hogy olyan cikkek is felker&uuml;ljenek, amik
+er&ocirc;sen megk&eacute;rd&ocirc;jelezhet&ocirc;ek. Ugyanakkor
+semmilyen garancia nincs arra, hogy a csoport t&ouml;bbi
+olvas&oacute;ja is ugyan&uacute;gy elfogadja az anyagot, mint te.
+Haszn&aacute;ld a Rot13 szoftvert, ami 13 karakterrel eltol minden egyes
+karaktert, hogy ne b&aacute;nts&aacute;l meg senkit.
+(Ford&iacute;t&oacute; megjegyz&eacute;se: Ez sok szoftverbe be van
+&eacute;p&iacute;tve)
+
+<li>Ha olyan &uuml;zenetet &iacute;rsz egy k&ouml;nyveket vagy
+filmeket t&aacute;rgyal&oacute; csoportba, ami l&eacute;nyeges titkot
+t&aacute;r fel, akkor c&eacute;lszer&ucirc; "Spoiler" sz&oacute;t tenni
+a Subject: sorba. &Uuml;thetsz egy p&aacute;r Enter-t a cikk
+elej&eacute;re, hogy elt&uuml;ntesd szem el&ouml;l a cikket, vagy
+haszn&aacute;lhatod az el&ocirc;bb eml&iacute;tett Rot13
+m&oacute;dszert. (Ford&iacute;t&oacute; megjegyz&eacute;se: A
+sz&aacute;m&iacute;t&oacute;g&eacute;pes j&aacute;t&eacute;kok is ez
+a kateg&oacute;ria. Esetleg tarthatunk att&oacute;l, hogy nem mindenki
+tudja a Rot13-at dek&oacute;dolni, &eacute;s az &uuml;res sorok mellett
+d&ouml;nt&uuml;nk. Ilyenkor &eacute;rdemes nemcsak a Subject sorba
+be&iacute;rni, hogy Spoiler, hanem a cikk els&ocirc; sor&aacute;ba is
+be&iacute;rni ezt, hogy aki r&aacute;n&eacute;z a cikkre az ne csak
+&uuml;res sorokat l&aacute;sson)
+
+<li>Ugyan a cikkek illet&eacute;ktelen megpiszk&aacute;l&aacute;sa,
+megv&aacute;ltoztat&aacute;sa a szab&aacute;lyokkal ellent&eacute;tes,
+m&eacute;gis megt&ouml;rt&eacute;nik. Ez ellen megfelel&ocirc;
+szoftverrel - mint p&eacute;ld&aacute;ul a PGP -
+v&eacute;dekezhet&uuml;nk.
+
+<li>Az anonim post&aacute;z&aacute;s bizonyos csoportokban
+elfogadott, m&aacute;sokban nem. Ha egy cikk nem felel meg a
+szab&aacute;lyoknak, ha rajta van a nev&uuml;nk, akkor sem fog, ha
+nincs rajta. (Ford&iacute;t&oacute; megjegyz&eacute;se: Azaz az
+anonimit&aacute;st legt&ouml;bbsz&ouml;r olyankor haszn&aacute;ljuk,
+ha elfogadhat&oacute;, de szem&eacute;ly&uuml;nkre valami&eacute;rt
+h&aacute;tr&aacute;nyos cikket szeretn&eacute;nk
+k&ouml;zz&eacute;tenni.)
+
+<li>Ha moder&aacute;lt csoportba post&aacute;zol, akkor
+sz&aacute;molnod kell egy kis k&eacute;sedelemmel. A
+moder&aacute;tor meg is v&aacute;ltoztathatja a Subject sorodat, hogy
+valamelyik thread-be illeszkedjen.
+
+<li>Ne keveredj flame war-ba! Ne &iacute;rj&aacute;l heves leveleket
+&eacute;s ne v&aacute;laszolj&aacute;l ilyenekre.
+
+</ul>
+
+<h3>
+3.2 Ir&aacute;nymutat&oacute; Adminisztr&aacute;toroknak
+</h3>
+<h4>
+3.2.1 &Aacute;ltal&aacute;nos t&eacute;m&aacute;k
+</h4>
+<ul>
+
+<li>Legyenek tiszt&aacute;k a feliratkoz&aacute;s szab&aacute;lyai a
+levelez&eacute;si list&aacute;kra &eacute;s a Usenet csoportokra.
+
+<li>Legyenek tiszt&aacute;k a post&aacute;z&aacute;s szab&aacute;lyai
+- a disclaimer-ek .sig-beli szerepeltet&eacute;s&eacute;t is
+bele&eacute;rtve - a levelez&eacute;si list&aacute;kba &eacute;s a
+Usenet csoportokba.
+
+<li>Legyenek tiszt&aacute;k &eacute;s sz&eacute;les k&ouml;rben
+ismertek az archiv&aacute;l&aacute;sra vonatkoz&oacute;
+szab&aacute;lyaid. (Mennyi ideig t&aacute;rolod a cikkeket?)
+
+<li>Nyitottan, de azonnal vizsg&aacute;ld meg a
+felhaszn&aacute;l&oacute;idat &eacute;rint&ocirc; panaszokat.
+
+<li>&Uuml;gyelj rendszered eg&eacute;szs&eacute;g&eacute;re!
+
+<li>Gondold &aacute;t, hogy milyen hosszan &ocirc;rz&ocirc;d meg a
+rendszer napl&oacute;file-jait, &eacute;s a d&ouml;nt&eacute;sed
+eredm&eacute;ny&eacute;t tedd k&ouml;zz&eacute;.
+
+</ul>
+
+<h4>
+3.2.2 Levelez&eacute;si list&aacute;k
+</h4>
+
+<ul>
+
+<li>A levelez&eacute;si list&aacute;k legyenek naprak&eacute;szek,
+hogy elker&uuml;ld a "bouncing mail" probl&eacute;m&aacute;t.
+(Ford&iacute;t&oacute; megjegyz&eacute;se: Ha nem
+l&eacute;tez&ocirc; c&iacute;mek is szerepelnek a list&aacute;ban, akkor
+a hiba&uuml;zenet is kimehet (szoftvert&ocirc;l f&uuml;gg&ocirc;en) a
+list&aacute;ra, &uacute;jabb hib&aacute;t gener&aacute;lva. Ez
+&iacute;gy mehet eg&eacute;szen addig, am&iacute;g valaki ki nem
+t&ouml;rli ezt a c&iacute;met.)
+
+<li>Seg&iacute;ts a listatulajdonosoknak a probl&eacute;m&aacute;k
+megold&aacute;s&aacute;ban
+
+<li>Inform&aacute;ld a listatulajdonosokat a tervezett
+rendszerkarbantart&aacute;sokr&oacute;l &eacute;s
+le&aacute;ll&aacute;sokr&oacute;l.
+
+<li>Legyen minden list&aacute;hoz "-request" alias az iratkoz&aacute;si
+&eacute;s adminisztr&aacute;ci&oacute;s levelekhez.
+
+<li>A mail gateway-eid m&ucirc;k&ouml;djenek sim&aacute;n.
+</ul>
+
+<h4>
+3.2.3 Usenet
+</h4>
+
+<ul>
+<li>Tedd k&ouml;zz&eacute;, hogy milyen feed-et kapsz. Ha ez nem
+teljes, lehet, hogy lesz, aki tudni szeretn&eacute;, hogy mi&eacute;rt
+nem.
+
+<li>Rengeteg f&eacute;le h&iacute;rolvas&oacute; szoftver van,
+&eacute;s ezek hib&aacute;j&aacute;&eacute;rt lehet, hogy a News
+Server-t fogj&aacute;k hib&aacute;ztatni.
+
+<li>Tiszteld &eacute;s teljes&iacute;tsd azonnal a
+felhaszn&aacute;l&oacute;id saj&aacute;t cikk&uuml;k vagy m&aacute;s
+helytelen (pl. l&aacute;nclev&eacute;l) t&ouml;rl&eacute;s&eacute;re
+vonatkoz&oacute; k&eacute;r&eacute;s&eacute;t. (Ford&iacute;t&oacute;
+megjegyz&eacute;se: Hallgass a j&oacute;zan &eacute;szre. Nem arra
+gondolunk, hogy egyes embereket zavar&oacute; cikkeket
+t&ouml;r&ouml;lj ki, hanem a sz&eacute;les k&ouml;rben elfogadott
+szab&aacute;lyokkal ellent&eacute;tesekre, amelyek leggyakoribb esetei
+a sok csoportra kiterjed&ocirc; hirdet&eacute;sek &eacute;s a
+l&aacute;nc levelek.)
+
+<li>Legyenek "Usenet", "Netnews", "News" alias-aid, &eacute;s
+gondoskodj arr&oacute;l, hogy valaki olvassa az ide &eacute;rkez&ocirc;
+leveleket.
+</ul>
+
+<h3>
+3.3 Ir&aacute;nymutat&oacute; moder&aacute;toroknak
+</h3>
+
+<h4>
+3.3.1 &Aacute;ltal&aacute;nos &uacute;tmutat&oacute;
+</h4>
+
+<ul>
+<li>Gondoskodj arr&oacute;l, hogy a Gyakran Ism&eacute;telt
+K&eacute;rd&eacute;sek v&aacute;laszai (GYIK ill. FAQ) rendszeres
+id&ocirc;k&ouml;z&ouml;nk&eacute;nt post&aacute;z&aacute;sra
+ker&uuml;ljenek. Szerepeljen ebben egy &uacute;tmutat&oacute; a
+cikkekr&ocirc;l/&uuml;zenetekr&ocirc;l. Ha nem te vagy a GYIK
+fenntart&oacute;ja, akkor gondoskodj arr&oacute;l, hogy &ocirc;(k)
+belevegy&eacute;(k) ezeket abba.
+
+<li>Legyen egy j&oacute; &uuml;dv&ouml;zl&ocirc; (welcome) file-od,
+amiben inform&aacute;ci&oacute;k vannak a
+fel/leiratkoz&aacute;sr&oacute;l. (Ford&iacute;t&oacute;
+megjegyz&eacute;se: &Eacute;s ezt persze k&uuml;ldd is el minden
+feliratkoz&oacute; felhaszn&aacute;l&oacute;nak. Ez a pont csak
+levelez&eacute;si list&aacute;kra &eacute;rv&eacute;nyes.)
+
+<li>A h&iacute;rcsoportok c&eacute;lj&aacute;t (charter)
+ir&aacute;nymutat&aacute;sait rendszeresen kell post&aacute;zni.
+
+<li>A h&iacute;rcsoportok/levelez&eacute;si list&aacute;k legyenek
+naprak&eacute;szek. Alak&iacute;ts ki egy menetrendet az
+&uuml;zenetek post&aacute;z&aacute;s&aacute;ra. Legyen helyettesed,
+ha szabads&aacute;gra m&eacute;gy vagy m&aacute;s egy&eacute;b
+miatt nem tudsz Net-hez jutni.
+
+<h2>
+<a name="4.0">4.0 Inform&aacute;ci&oacute;s
+szolg&aacute;ltat&aacute;sok (Gopher, Wais, WWW, ftp, telnet)
+</h2>
+<p>
+Az elm&uacute;lt &eacute;vekben robban&aacute;sszer&ucirc;en
+n&ocirc;tt a H&aacute;l&oacute;zat n&eacute;h&aacute;ny &uacute;j
+szolg&aacute;ltat&aacute;s nyom&aacute;n. Gopher, Wais, World Wide
+Web (WWW), Multi User Dimensions (MUD), ez ut&oacute;bbi
+objektumorient&aacute;lt verzi&oacute;ja (MOO) a legfontosabbak. Noha
+az inform&aacute;ci&oacute;lel&eacute;s lehet&ocirc;s&eacute;ge
+robban&aacute;sszer&ucirc;en terjed, a "Vev&ocirc; v&eacute;dd magad"
+(Caveat Emptor) elv &eacute;rv&eacute;nyben marad. Ezekr&ocirc;l
+r&eacute;szletesebben a v&aacute;logatott bibliogr&aacute;fi&aacute;nk
+[14,28]-as sz&aacute;m&uacute; anyagaiban olvashatsz.
+(Ford&iacute;t&oacute; megjegyz&eacute;se: &Eacute;rdekes lehet
+m&eacute;g az IRC is. Ez a Caveat Emptor arra akart vonatkozni, hogy
+nem musz&aacute;j mindenbe
+p&eacute;nzt/er&ocirc;fesz&iacute;t&eacute;st stb. bele&ouml;lni, ami
+els&ocirc;re sz&eacute;pnek l&aacute;tszik.)
+
+<h3>
+4.1 Ir&aacute;nymutat&oacute; felhaszn&aacute;l&oacute;knak
+</h3>
+
+<h4>
+4.1.1 &Aacute;ltal&aacute;nos &uacute;tmutat&oacute;
+</h4>
+
+<ul>
+<li>Ne feledd, hogy minden szolg&aacute;ltat&aacute;s valaki&eacute;.
+Aki fizeti a sz&aacute;ml&aacute;t, az szabja meg az adott
+szolg&aacute;ltat&aacute;sra vonatkoz&oacute; szab&aacute;lyokat is. Az
+inform&aacute;ci&oacute; lehet ingyen, de az is lehet, hogy nem
+ingyenes - ennek j&oacute;, ha ut&aacute;nan&eacute;zel.
+
+<li>Ha egy szolg&aacute;ltat&aacute;ssal probl&eacute;ma akad, akkor
+el&ocirc;sz&ouml;r mindig a saj&aacute;t port&aacute;don kell
+k&ouml;r&uuml;ln&eacute;zni. Ellen&ocirc;rizd (vagy
+ellen&ocirc;riztesd) a file-, szoftver-, &eacute;s h&aacute;l&oacute;zati
+be&aacute;ll&iacute;t&aacute;sokat stb. Mindenk&eacute;ppen tedd ezt
+meg, miel&ocirc;tt arra gondolsz, hogy a szolg&aacute;ltat&oacute;
+oldal&aacute;n van a hiba &eacute;s/vagy a szolg&aacute;ltat&oacute;t
+hib&aacute;ztatn&aacute;d &eacute;rte.
+
+<li>Vannak ugyan konvenci&oacute;k a haszn&aacute;lt
+filet&iacute;pusokra, de ne &eacute;p&iacute;ts arra, hogy ezeket mindig
+betartj&aacute;k. P&eacute;ld&aacute;ul egy ".doc" file nem
+felt&eacute;tlen&uuml;l Word file.
+
+<li>Maguk a szolg&aacute;ltat&aacute;sok is k&ouml;vetnek bizonyos
+konvenci&oacute;kat, mint a www.xyz.com. Mik&ouml;zben ezek
+ismerete hasznos, de megint csak nem b&ouml;lcs erre
+&eacute;p&iacute;teni.
+
+<li>Ismerd a saj&aacute;t rendszeredben a file nevek
+haszn&aacute;lat&aacute;t.
+
+<li>Ismerned kell egy-egy szolg&aacute;ltat&aacute;s speci&aacute;lis
+inform&aacute;ci&oacute;k&ouml;zl&ocirc; konvenci&oacute;it. Az FTP
+site-ok legt&ouml;bbj&eacute;n tal&aacute;lsz valahol a hierarchia
+tetej&eacute;n egy README file-t, ami a rendelkez&eacute;sre
+&aacute;ll&oacute; file-okr&oacute;l sz&oacute;l. Viszont nem
+felt&eacute;telezheted azt, hogy ezek pontosak &eacute;s/vagy
+naprak&eacute;szek.
+
+<li>Egy&aacute;ltal&aacute;n, SEMMILYEN
+inform&aacute;ci&oacute;r&oacute;l NE t&eacute;telezd fel hogy pontos
+vagy naprak&eacute;sz. Az &uacute;j technol&oacute;gi&aacute;k
+lehet&ocirc;v&eacute; teszik b&aacute;rkinek, hogy publik&aacute;ljon,
+de az ezzel j&aacute;r&oacute; felel&ocirc;ss&eacute;get m&eacute;g
+nem tanulta meg mindenki.
+
+<li>Tudod m&aacute;r, de fontoss&aacute;ga miatt
+megism&eacute;telj&uuml;k: hacsak nem haszn&aacute;lsz
+titkos&iacute;t&oacute; &eacute;s eredetis&eacute;get
+biztos&iacute;t&oacute; programokat, b&aacute;rmilyen
+inform&aacute;ci&oacute; amit az Interneten tov&aacute;bb&iacute;tasz
+"kint van a hidegen". Aki akarja, megszerezheti, vagy
+megv&aacute;ltoztathatja.
+
+<li>Minthogy az Internet vil&aacute;gm&eacute;ret&ucirc;,
+tal&aacute;lhatsz olyan inform&aacute;ci&oacute;s
+szolg&aacute;ltat&aacute;st, amely gy&ouml;keresen elt&eacute;r&ocirc;
+kult&uacute;r- &eacute;s szok&aacute;sk&ouml;rb&ocirc;l ered. Amit te
+b&aacute;nt&oacute;nak &eacute;rzel, az abban a
+kult&uacute;rk&ouml;rben teljesen elfogadott lehet. Maradj ny&iacute;lt
+a vil&aacute;g fel&eacute;.
+
+<li>Ha egy n&eacute;pszer&ucirc; site-r&oacute;l szeretn&eacute;l
+inform&aacute;ci&oacute;t, akkor n&eacute;zzd meg, nincs-e egy lista
+a mirror site-okr&oacute;l. Ha van ilyen, &eacute;s ott van
+hozz&aacute;d k&ouml;zelebbi mirror, haszn&aacute;ld azt.
+
+<li>Ne haszn&aacute;ld m&aacute;s FTP site-j&aacute;t arra, hogy egy
+(konkr&eacute;t) harmadik szem&eacute;lynek sz&aacute;nt file-t helyezz
+el ott. Ezt egyszer&ucirc;en szemetel&eacute;snek tartj&aacute;k,
+&eacute;s &aacute;ltal&aacute;ban nem elfogadott
+viselked&eacute;sforma.
+
+<li>Ha probl&eacute;m&aacute;d t&aacute;mad egy site-al, &eacute;s
+oda fordulsz seg&iacute;ts&eacute;g&eacute;rt, min&eacute;l t&ouml;bb
+inform&aacute;ci&oacute;t adj&aacute;l meg a probl&eacute;ma
+k&ouml;r&uuml;lm&eacute;nyeir&ocirc;l. Ezzel nekik is seg&iacute;tesz,
+hogy lokaliz&aacute;lhass&aacute;k a hib&aacute;t.
+
+<li>Ha te magad is szeretn&eacute;l valamilyen
+inform&aacute;ci&oacute;s szolg&aacute;ltat&aacute;st ind&iacute;tani,
+mint p&eacute;ld&aacute;ul egy homepage, akkor szok&aacute;s szerint
+fordulj a helyi rendszergazd&aacute;hoz, hogy megismerd az
+idevonatkoz&oacute; helyi szab&aacute;lyokat.
+
+<li>Ha van r&aacute; m&oacute;dod, akkor k&iacute;m&eacute;ld a
+n&eacute;pszer&ucirc; site-okat, seg&iacute;tsd elosztani a
+terhel&eacute;st, &eacute;s cs&uacute;csid&ocirc;n k&iacute;v&uuml;l
+l&eacute;pj&eacute;l be. (Ford&iacute;t&oacute; megjegyz&eacute;se: A
+vil&aacute;gh&aacute;l&oacute;n valahol mindig cs&uacute;csid&ocirc;
+van...)
+</ul>
+
+<h4>
+4.1.2 &Uacute;tmutat&oacute; Val&oacute;sidej&ucirc; Interakt&iacute;v
+Szolg&aacute;ltat&aacute;sokhoz (MUD-ok, MOO-k, IRC)
+</h4>
+
+<ul>
+<li>Ak&aacute;rcsak m&aacute;s rendszerekn&eacute;l, itt is b&ouml;lcs
+dolog csak figyelni egy kicsit, hogy a csoport
+kult&uacute;r&aacute;j&aacute;hoz szokhass&aacute;l.
+
+<li>Egy&aacute;ltal&aacute;n nem sz&uuml;ks&eacute;ges mindenkit
+szem&eacute;lyesen &uuml;dv&ouml;z&ouml;lni egy csatorn&aacute;n
+ill. szob&aacute;ban. Egy szimpla Hello vagy hasonl&oacute;
+k&ouml;sz&ouml;nt&eacute;s b&ocirc;ven el&eacute;g. NEM elfogadott
+viselked&eacute;s, ha a szoftvered automatik&aacute;j&aacute;t arra
+haszn&aacute;lod, hogy mindenkit &uuml;dv&ouml;z&ouml;lj&ouml;n.
+
+<li>Figyelmeztesd a r&eacute;sztvev&ocirc;ket ha nagyobb
+mennyis&eacute;g&ucirc; inform&aacute;ci&oacute;t szeretn&eacute;l
+vel&uuml;k megosztani. Ha mindenki egyet&eacute;rt vele, akkor mehet.
+E n&eacute;lk&uuml;l azonban s&uacute;lyos udvariatlans&aacute;g
+ilyesmit csin&aacute;lni - ak&aacute;rcsak lev&eacute;lben.
+
+<li>Ne t&eacute;telezd fel, hogy ismeretlen emberek besz&eacute;lni
+akarnak veled. Ha k&eacute;nyszer&iacute;tve &eacute;rzed magad arra,
+hogy szem&eacute;lyes &uuml;zenetet k&uuml;ldj&eacute;l egy
+ismeretlennek, akkor k&eacute;sz&uuml;lj fel arra, hogy &eacute;ppen
+elfoglalt lehet vagy eg&eacute;szen egyszer&ucirc;en nem akar veled
+besz&eacute;lgetni.
+
+<li>Tiszteld az adott csoport szok&aacute;sait. N&eacute;zz
+k&ouml;r&uuml;l bemutatkoz&oacute; anyagok&eacute;rt. Ezek egy ftp
+site-on is lehetnek.
+
+<li>Ha valaki becenevet, alias-t, pszeudonevet vagy hasonl&oacute;t
+haszn&aacute;l, akkor tiszteld az anonimit&aacute;shoz val&oacute;
+jog&aacute;t. M&eacute;g ha esetleg j&oacute;bar&aacute;tok is vagytok,
+akkor is udvariasabb ezt a becenevet haszn&aacute;lni.
+Egy&aacute;ltal&aacute;n ne haszn&aacute;ld a val&oacute;di
+nev&eacute;t on-line enged&eacute;ly n&eacute;lk&uuml;l.
+</ul>
+
+<h3>
+4.2 Ir&aacute;nymutat&oacute; adminisztr&aacute;toroknak
+</h3>
+
+<h4>
+4.2.1 &Aacute;ltal&aacute;nos &uacute;tmutat&oacute;
+</h4>
+
+<ul>
+<li>Legyen tiszta mindenki sz&aacute;m&aacute;ra, hogy mi
+m&aacute;solhat&oacute; &eacute;s mi nem.
+
+<li>Ismertesd, hogy az adott site-on ill. szervezetn&eacute;l milyen
+anyagok &aacute;llnak rendelkez&eacute;sre. Az &aacute;ltal&aacute;nos
+ir&aacute;nyelvek legyenek vil&aacute;gosak.
+
+<li>Az inform&aacute;ci&oacute;k, k&uuml;l&ouml;sen a README-k,
+legyenek naprak&eacute;szek. A README-ket sima ASCII
+file-k&eacute;nt szolg&aacute;ltasd. (Ford&iacute;t&oacute;
+megjegyz&eacute;se: Ha a README-k &eacute;s a FAQ-k nagyon
+el&uuml;tnek a val&oacute;s&aacute;gt&oacute;l, akkor rengeteg
+egyforma k&eacute;rd&eacute;st fogsz kapni, amelyek
+pontos&iacute;t&aacute;st v&aacute;rnak. Jobb ezt megel&ocirc;zni.)
+
+<li>Ha tudsz k&eacute;sz&iacute;teni egy list&aacute;t a
+mirror-jaidr&oacute;l, akkor tedd azt k&ouml;zz&eacute;.
+Mell&eacute;kelj&eacute;l egy mirror-okra vonatkoz&oacute;
+szerz&ocirc;i jogi dokumentumot. Ha ismered az update
+menetrendj&uuml;ket, azt is c&eacute;lszer&ucirc;
+k&ouml;zz&eacute;tenni.
+
+<li>Gondoskodj arr&oacute;l, hogy a n&eacute;pszer&ucirc; (&eacute;s
+nagymennyis&eacute;g&ucirc;) inform&aacute;ci&oacute;nak
+elegend&ocirc; s&aacute;vsz&eacute;less&eacute;g jusson.
+
+<li>Haszn&aacute;ld a filen&eacute;v konvenci&oacute;kat: .txt ascii
+sz&ouml;vegnek; .html vagy .htm HTML-nek; .ps Postscript-nek; .pdf
+Portable Document Format-nek; .sgml vagy .sgm SGML-nek; .exe
+nem-Unix v&eacute;grehajthat&oacute; file-oknak stb.
+
+<li>Let&ouml;lt&eacute;sre sz&aacute;nt file-ok nev&eacute;nek
+els&ocirc; nyolc karakter&eacute;t pr&oacute;b&aacute;ld meg
+k&uuml;l&ouml;nb&ouml;z&ocirc;v&eacute; tenni.
+(Ford&iacute;t&oacute; megjegyz&eacute;se: Lesznek (lehet, nem
+kevesen), akik DOS al&oacute;l k&iacute;v&aacute;nj&aacute;k
+haszn&aacute;lni rendszeredet. Ez a rendszer csak 8 karaktert
+k&eacute;pes megk&uuml;l&ouml;nb&ouml;ztetni a file
+nev&eacute;ben.)
+
+<li>Amikor inform&aacute;ci&oacute;t szolg&aacute;ltatsz, akkor legyen
+abban valami egyedi. Ker&uuml;ld el az olyan
+szolg&aacute;ltat&aacute;s ind&iacute;t&aacute;s&aacute;t, ami csak
+m&aacute;s szolg&aacute;ltat&oacute;kra mutat. (Ford&iacute;t&oacute;
+megjegyz&eacute;se: Olyan homepage-ek amik csak linkekb&ocirc;l
+&aacute;llnak, &aacute;ltal&aacute;ban &eacute;rtelmetlenek. Ezeket egy
+keres&ocirc;g&eacute;p legt&ouml;bbsz&ouml;r ki tudja v&aacute;ltani.
+)
+
+<li>Ne mutass m&aacute;s site-okra miel&ocirc;tt enged&eacute;lyt
+k&eacute;rn&eacute;l. (Ford&iacute;t&oacute; megjegyz&eacute;se: Ez
+mostanra kicsit elavult, de m&eacute;g mindig nem &aacute;rthat
+inform&aacute;lni a t&uacute;loldalt)
+
+<li>V&eacute;sd j&oacute;l az eszedbe, hogy egy
+szolg&aacute;ltat&aacute;s nemcsak design-t &eacute;s
+megval&oacute;s&iacute;t&aacute;s-t jelent. Hanem karbantart&aacute;st
+is.
+
+<li>Az &aacute;ltalad szolg&aacute;ltatott anyagoknak meg kell
+felelni&uuml;k a t&aacute;mogat&oacute; szervezet szab&aacute;lyainak.
+
+<li>Teszteld alkalmaz&aacute;saidat a szoftverek min&eacute;l
+sz&eacute;lesebb sk&aacute;l&aacute;j&aacute;val. Nem
+felt&eacute;telezheted, hogy minden ok&eacute;, ha csak egy klienssel
+ellen&ocirc;rizt&eacute;l. Viszont fel kell t&eacute;telezned, hogy lesz,
+aki egyszer&ucirc;bb lehet&ocirc;s&eacute;gekkel &eacute;s klienssel
+rendelkezik csak - teh&aacute;t ne tervezd olyanra a
+szolg&aacute;ltat&aacute;sodat, hogy csak grafikus
+termin&aacute;lr&oacute;l (GUI) lehessen haszn&aacute;lni.
+
+<li>Legyen egys&eacute;ges n&eacute;z&ocirc;pontja &eacute;s
+k&uuml;lleme az inform&aacute;ci&oacute;dnak.
+
+<li>Az exportkorl&aacute;toz&aacute;sok m&aacute;sok &eacute;s
+m&aacute;sok minden orsz&aacute;gban. Ismerned kell ezek
+k&ouml;vetkezm&eacute;nyeit is, ha szolg&aacute;ltatni akarsz.
+
+<li>Mondd el a felhaszn&aacute;l&oacute;idnak, hogy mit akarsz tenni
+a t&ocirc;l&uuml;k &ouml;sszegy&ucirc;jt&ouml;tt
+inform&aacute;ci&oacute;val, mint pl. a WWW-r&ocirc;l adott
+v&eacute;lem&eacute;ny&uuml;k. Figyelmeztetned kell az embereket, ha
+k&ouml;zz&eacute; akarsz tenni ebb&ocirc;l b&aacute;rmit,
+ak&aacute;rcsak passz&iacute;van, a t&ouml;bbi
+felhaszn&aacute;l&oacute; sz&aacute;m&aacute;ra
+l&aacute;that&oacute;an.
+
+<li>A felhaszn&aacute;l&oacute;i inform&aacute;ci&oacute;
+szolg&aacute;ltat&aacute;sokra (mint pl. egy homepage)
+vonatkoz&oacute; szab&aacute;lyaid legyenek ismertek!
+</ul>
+
+<h2>
+<a name="5.0">5.0 V&aacute;logatott bibliogr&aacute;fia
+</h2>
+
+Ez a dokumentum nagyobbr&eacute;szt ezeken a m&ucirc;veken alapul.
+Ami konkr&eacute;tan ezekben a m&ucirc;vekben nem
+tal&aacute;lhat&oacute; meg, az az IETF-RUN munkacsoport
+tapasztalat&aacute;n alapul.
+
+<ol>
+
+<li>Angell, D., and B. Heslop, "The Elements of E-mail Style", New
+York: Addison-Wesley, 1994.
+
+<li>"Answers to Frequently Asked Questions about Usenet"<br>
+Original author: jerry@eagle.UUCP (Jerry Schwarz)<br>
+Maintained by: netannounce@deshaw.com (Mark Moraes)<br>
+Archive-name: usenet-faq/part1<br>
+
+<li>Cerf, V., "Guidelines for Conduct on and Use of Internet",
+<a href="http://www.isoc.org/proceedings/conduct/cerf-Aug-draft.html">
+http://www.isoc.org/proceedings/conduct/cerf-Aug-draft.html</a>
+
+<li>Dern, D., "The Internet Guide for New Users", New
+York:McGraw-Hill, 1994.
+
+<li>"Emily Postnews Answers Your Questions on Netiquette"<br>
+Original author: brad@looking.on.ca (Brad Templeton)<br>
+Maintained by: netannounce@deshaw.com (Mark Moraes)<br>
+Archive-name: emily-postnews/part1<br>
+
+<li>Gaffin, A., "Everybody's Guide to the Internet", Cambridge, Mass.,
+MIT Press, 1994.
+
+<li>"Guidelines for Responsible Use of the Internet" from the US house
+of Representatives gopher,
+<a href="gopher.house.gov:70/OF-1%3a208%3aInternet %20Etiquette">
+gopher.house.gov:70/OF-1%3a208%3aInternet %20Etiquette</a>
+
+<li>How to find the right place to post (FAQ)by
+buglady@bronze.lcs.mit.edu (Aliza R. Panitz)<br>
+Archive-name: finding-groups/general
+
+<li> Hambridge, S., and J. Sedayao, "Horses and Barn Doors: Evolution
+of Corporate Guidelines for Internet Usage", LISA VII, Usenix,
+November 1-5, 1993, pp. 9-16.
+<a href="ftp://ftp.intel.com/pub/papers/horses.ps">
+ftp://ftp.intel.com/pub/papers/horses.ps</a> or
+<a href="ftp://ftp.intel.com/pub/papers/horses.ascii">
+ftp://ftp.intel.com/pub/papers/horses.ascii</a>
+
+<li> Heslop, B., and D. Angell, "The Instant Internet guide: Hands-on
+Global Networking", Reading, Mass., Addison-Wesley, 1994.
+
+
+<li> Horwitz, S., "Internet Etiquette Tips",
+<a href="ftp://ftp.temple.edu/pub/info/help-net/netiquette.infohn">
+ftp://ftp.temple.edu/pub/info/help-net/netiquette.infohn</a>
+
+<li> Internet Activities Board, "Ethics and the Internet", RFC 1087, IAB,
+January 1989.
+<a href="ftp://ds.internic.net/rfc/rfc1087.txt">
+ftp://ds.internic.net/rfc/rfc1087.txt</a>
+
+<li> Kehoe, B., "Zen and the Art of the Internet: A Beginner's Guide",
+a Netikett info tal&aacute;lhat&oacute; sz&eacute;tsz&oacute;rva a
+m&ucirc;ben. 3rd ed. Englewood Cliffs, NJ., Prentice-Hall, 1994.
+
+<li> Kochmer, J., "Internet Passport: NorthWestNet's Guide to our World
+Online", 4th ed. Bellevue, Wash., NorthWestNet, Northwest Academic
+Computing Consortium, 1993.
+
+<li> Krol, Ed, "The Whole Internet: User's Guide and Catalog",
+Sebastopol, CA, O'Reilly & Associates, 1992.
+
+<li> Lane, E. and C. Summerhill, "Internet Primer for Information
+Professionals: a basic guide to Internet networking technology",
+Westport, CT, Meckler, 1993.
+
+<li> LaQuey, T., and J. Ryer, "The Internet Companion", Chapter 3
+"Communicating with People", pp 41-74. Reading, MA, Addison-Wesley,
+1993.
+
+<li> Mandel, T., "Surfing the Wild Internet", SRI International Business
+Intelligence Program, Scan No. 2109. March, 1993.
+<a href="gopher://gopher.well.sf.ca.us:70/00/Communications/surf-wild">
+gopher://gopher.well.sf.ca.us:70/00/Communications/surf-wild</a>
+
+<li> Martin, J., "There's Gold in them thar Networks! or Searching for
+Treasure in all the Wrong Places", FYI 10, RFC 1402, January 1993.
+<a href="ftp://ds.internic.net/rfc/rfc1402.txt">
+ftp://ds.internic.net/rfc/rfc1402.txt</a>
+
+<li> Pioch, N., "A Short IRC Primer", Text conversion by Owe
+Rasmussen. Edition 1.1b, February 28, 1993.
+<a href="http://www.kei.com/irc/IRCprimer1.1.txt">
+http://www.kei.com/irc/IRCprimer1.1.txt</a>
+
+<li> Polly, J., "Surfing the Internet: an Introduction", Version 2.0.3.
+Revised May 15, 1993.
+<a
+href="gopher://nysernet.org:70/00/ftp%20archives/pub/resources/guides/
+surfing.2.0.3.txt">
+gopher://nysernet.org:70/00/ftp%20archives/pub/resources/guides/surfin
+g.2.0.3.txt</a>
+<a href="ftp://ftp.nysernet.org/pub/resources/guides/surfing.2.0.3.txt">
+ftp://ftp.nysernet.org/pub/resources/guides/surfing.2.0.3.txt</a>
+
+<li> "A Primer on How to Work With the Usenet Community"<br>
+Original author: chuq@apple.com (Chuq Von Rospach)<br>
+Maintained by: netannounce@deshaw.com (Mark Moraes)<br>
+Archive-name: usenet-primer/part1
+
+<li> Rinaldi, A., "The Net: User Guidelines and Netiquette", September
+3, 1992.
+<a href="http://www.fau.edu/rinaldi/net/index.htm">
+http://www.fau.edu/rinaldi/net/index.htm</a>
+
+<li> "Rules for posting to Usenet"<br>
+Original author: spaf@cs.purdue.edu (Gene Spafford)<br>
+Maintained by: netannounce@deshaw.com (Mark Moraes)<br>
+Archive-name: posting-rules/part1<br>
+
+<li> Shea, V., "Netiquette", San Francisco: Albion Books, 1994?.
+
+<li> Strangelove, M., with A. Bosley, "How to Advertise on the
+Internet", ISSN 1201-0758.
+
+<li> Tenant, R., "Internet Basics", ERIC Clearinghouse of Information
+Resources, EDO-IR-92-7. September, 1992.
+<a
+href="gopher://nic.merit.edu:7043/00/introducing.the.internet/internet.ba
+sics.eric-digest">
+gopher://nic.merit.edu:7043/00/introducing.the.internet/internet.basics.er
+ic-digest</a>
+<a
+href="gopher://vega.lib.ncsu.edu:70/00/library/reference/guides/tennet">
+gopher://vega.lib.ncsu.edu:70/00/library/reference/guides/tennet</a>
+
+<li> Wiggins, R., "The Internet for everyone: a guide for users and
+providers", New York, McGraw-Hill, 1995.
+
+</ol>
+
+<h2>
+<a name="6.0">6.0 Biztons&aacute;gi meggondol&aacute;sok
+</h2>
+
+<p>
+Ebben a dokumentumban nem t&aacute;rgyalunk biztons&aacute;gi
+t&eacute;m&aacute;kat.
+
+<h2>
+<a name="7.0">7.0 A szerz&ocirc; c&iacute;me
+</h2>
+
+<pre>
+Sally Hambridge
+Intel Corporation
+2880 Northwestern Parkway
+SC3-15
+Santa Clara, CA 95052
+
+Phone: 408-765-2931
+Fax: 408-765-3679
+EMail: sallyh@ludwig.sc.intel.com
+
+A ford&iacute;t&oacute; c&iacute;me:
+
+Ha Magyarorsz&aacute;gr&oacute;l &iacute;rsz:
+
+N&eacute;gyesi K&aacute;roly
+Budapest
+P.f.503
+1462
+
+K&uuml;lf&ouml;ldr&ocirc;l:
+
+Charlie Negyesi
+HUNGARY
+Budapest
+P.o.box 503
+H-1462
+
+Email: chx@cs.elte.hu
+
+K&ouml;sz&ouml;netet mondok a jav&iacute;t&aacute;sok&eacute;rt
+mindenkinek, de els&ocirc;sorban a k&ouml;vetkez&ocirc;knek: Varga
+&Aacute;kos Endre (Hamster), Liling Zolt&aacute;n, Kiss G&aacute;bor,
+M&aacute;rton &Aacute;d&aacute;m.
+</pre></body></html> \ No newline at end of file
diff --git a/templates/hu/invite.txt b/templates/hu/invite.txt
new file mode 100644
index 00000000..b86ab16f
--- /dev/null
+++ b/templates/hu/invite.txt
@@ -0,0 +1,21 @@
+A(z) %(listname)s levelezõlista tulajdonosa felkért, hogy
+csatlakozz a(z) %(hostname)s rendszeren mûködõ %(listname)s
+levelezõlistához "%(email)s" címeddel. Ha szeretnéd jóváhagyni
+a csatlakozást, akkor egyszerûen válaszolj erre a levélre úgy,
+hogy a Subject: fejlécet nem változtatod meg.
+
+A jóváhagyást ezen a web címen is megteheted:
+
+ %(confirmurl)s
+
+Vagy helyezd el a következõ sort -- és semmi mást -- egy levélben,
+s küld el a(z) %(requestaddr)s címre:
+
+ confirm %(cookie)s
+
+A jóváhagyáshoz legtöbbször elég, ha egyszerûen csak válaszolsz
+(`reply') erre a levélre.
+
+Ha nem szeretnél a felkérésnek eleget tenni, akkor nyugodtan hagyd
+figyelmen kívül ezt a levelet. Ha bármilyen kérdésed van, akkor
+kérlek küld el azt a(z) %(listowner)s címre.
diff --git a/templates/hu/listinfo.html b/templates/hu/listinfo.html
new file mode 100644
index 00000000..cd7ec459
--- /dev/null
+++ b/templates/hu/listinfo.html
@@ -0,0 +1,139 @@
+<!-- $Revision: 6029 $ -->
+<HTML>
+ <HEAD>
+ <TITLE><MM-List-Name> Információs lapja</TITLE>
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <P>
+ <TABLE COLS="1" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1"><MM-List-Name> --
+ <MM-List-Description></FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <p>&nbsp;
+ </td>
+ </tr>
+ <tr>
+ <TD COLSPAN="1" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000"><MM-List-Name> listáról</FONT></B>
+ </TD>
+ <TD COLSPAN="1" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <MM-lang-form-start><MM-displang-box> <MM-list-langs>
+ <MM-form-end>
+ <MM-Subscribe-Form-Start>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <P><MM-List-Info></P>
+ <p>Ha a korábbi leveleket, hozzászólásokat szeretnéd látni, látogasd meg
+ a(z) <MM-Archive><MM-List-Name> archívumot </MM-Archive>.
+ <MM-Restricted-List-Message>
+ </p>
+ </TD>
+ </TR>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000"><MM-List-Name> lista használata</FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ Ha a listára szeretnél írni, akkor erre a címre küldd hozzászólásodat:
+ <A HREF="mailto:<MM-Posting-Addr>"><MM-Posting-Addr></A>.
+
+ <p>Itt lejjebb feliratkozhatsz a listára, vagy módosíthatod
+ a listatagsági paramétereidet.
+ </td>
+ </tr>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000">Feliratkozás a(z) <MM-List-Name> listára</FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <P>
+ Töltsd ki az alábbi ûrlapot a(z) <MM-List-Name> listára való feliratkozáshoz.
+ <MM-List-Subscription-Msg>
+ <P>Feliratkozás elõtt kérlek olvasd el a listaszerver
+ <A HREF="/illik.html">illemtanát</A>!
+
+ <ul>
+ <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"
+ WIDTH="70%" HEIGHT= "112">
+ <TR>
+ <TD BGCOLOR="#dddddd" WIDTH="55%">E-mail címed:</TD>
+ <TD WIDTH="33%"><MM-Subscribe-Box>
+ </TD>
+ <TD WIDTH="12%">&nbsp;</TD></TR>
+ <TR>
+ <td bgcolor="#dddddd" width="55%">Neved (opcionális):</td>
+ <td width="33%"><mm-fullname-box></td>
+ <TD WIDTH="12%">&nbsp;</TD></TR>
+ <TR>
+ <TD COLSPAN="3"><FONT SIZE=-1>Meg kell adnod egy jelszót.
+ A jelszó csak enyhe biztonságot nyújt, de megelõzheted vele,
+ hogy mások tudtod nélkül módosítsák listatagsági beállításaidat!
+ <b>Ne használj olyan jelszavakat amiket máshol használsz</b>,
+ mivel havonta egyszer emlékeztetõül sima szöveges formában elküldésre fog kerülni.
+
+ <p>Ha nem adsz meg jelszót, akkor a Mailman automatikusan létrehoz egyet, és
+ feliratkozásod megerõsítése után elküldi neked. Személyes beállításaid szerkesztésénél
+ természetesen bármikor e-mailben kikérheted a jelszavadat.
+ <MM-Reminder>
+ </TD>
+ </TR>
+ <TR>
+ <TD BGCOLOR="#dddddd">A jelszó:</TD>
+ <TD><MM-New-Password-Box></TD>
+ <TD>&nbsp;</TD></TR>
+ <TR>
+ <TD BGCOLOR="#dddddd">A jelszó még egyszer:</TD>
+ <TD><MM-Confirm-Password></TD>
+ <TD>&nbsp; </TD></TR>
+ <tr>
+ <TD BGCOLOR="#dddddd">Milyen nyelven szeretnéd a listát használni?</TD>
+ <TD><MM-list-langs></TD>
+ <TD>&nbsp; </TD></TR>
+ <mm-digest-question-start>
+ <tr>
+ <td>Szeretnéd a listát digest formában kapni, naponta 1-2 levélben?</td>
+ <td><MM-Undigest-Radio-Button> Nem
+ <MM-Digest-Radio-Button> Igen
+ </TD>
+ </tr>
+ <tr>
+ <mm-digest-question-end>
+ <td colspan="3">
+ <center><MM-Subscribe-Button></P></center>
+ </TABLE>
+ <MM-Form-End>
+ </ul>
+ </td>
+ </tr>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <a name="subscribers">
+ <B><FONT COLOR="#000000"><MM-List-Name> lista tagjai</FONT></B></a>
+ </TD>
+ </TR>
+ <tr>
+ <TD COLSPAN="2" WIDTH="100%">
+ <MM-Roster-Form-Start>
+ <MM-Roster-Option>
+ <MM-Form-End>
+ <p>
+ <MM-Options-Form-Start>
+ <MM-Editing-Options>
+ <MM-Form-End>
+ </td>
+ </tr>
+ </table>
+<MM-Mailman-Footer>
+</BODY>
+</HTML>
diff --git a/templates/hu/masthead.txt b/templates/hu/masthead.txt
new file mode 100644
index 00000000..c1209b7f
--- /dev/null
+++ b/templates/hu/masthead.txt
@@ -0,0 +1,14 @@
+%(real_name)s listára a leveleidet a következõ címre küld
+ %(got_list_email)s
+
+Web-en keresztüli fel- vagy leiratkozáshoz látogass el ide
+ %(got_listinfo_url)s
+vagy, küldjél egy 'help' tartalmú levelet az alábbi címre
+ %(got_request_email)s
+
+A lista adminisztrátorát itt éred el
+ %(got_owner_email)s
+
+Levél tárgyának a tartalmára utaló szöveget adj meg, válasz esetén is,
+mert sokat nem lehet megtudni, ha a levél tárgya valami ilyen
+"Re: %(real_name)s digest tartalma..."
diff --git a/templates/hu/newlist.txt b/templates/hu/newlist.txt
new file mode 100644
index 00000000..b7eb6a35
--- /dev/null
+++ b/templates/hu/newlist.txt
@@ -0,0 +1,35 @@
+A(z) `%(listname)s' levelezési lista mûkõdik. A következõkben a
+levelezési lista alapvetõ információiról lehet olvasni.
+
+A levelezési lista jelszava a következõ:
+
+ %(password)s
+
+A megadott jelszóval lehet a lista beállításait megváltoztatni. Ezen-
+felül ezzel a jelszóval lehet néhány adminisztrátori tevékenységet is
+elvégezni, mint például moderált listán a levelek szûrését végrehajtani.
+
+A levelezési listát a következõ honlapon lehet beállítani:
+
+ %(admin_url)s
+
+A levelezési lista tagjai a következõ honlapot használhatják:
+
+ %(listinfo_url)s
+
+A honlap formáját is meg lehet változtatni, azonban ehhez ismerni kell a
+HTML-szerkesztés alapjait.
+
+E-mailen keresztül a tagok (de nem az adminisztrátor) is elvégezhetik
+beállításaik megváltoztatását; errõl bõvebb információt kaphatsz, ha egy
+'help' tartalmú levelet küldesz a következõ címre:
+
+ %(requestaddr)s
+
+Listatag eltávolításához a levelezési lista 'információs' lapján a
+listatag nevére kell kattintanod. Törlését pedig a listatagok eltávolítási
+oldalán lehet végrehajtani az adminisztrátori jelszóval. A listatag
+beállításait (például digest vagy nem-digest formájú levelek fogadása,
+vagy szüneteltetése, stb.) az adminisztrátori jelszóval is módosíthatod.
+
+További kérdéseiddel fordulj ide: %(siteowner)s
diff --git a/templates/hu/nomoretoday.txt b/templates/hu/nomoretoday.txt
new file mode 100644
index 00000000..69250db5
--- /dev/null
+++ b/templates/hu/nomoretoday.txt
@@ -0,0 +1,8 @@
+A(z) %(listname)s levelezõlista automatikus válaszokat küldõ címére
+a(z) `%(sender)s' címrõl ma már %(num)s üzenetet kaptunk.
+Ezek az üzenetek, lehet hogy egymásra hivatkozó levelek
+(mail loops), ezért a mai napon több automatikus válaszlevelet nem
+küldünk el neked. Kérünk holnap próbálkozz újra.
+
+Ha úgy gondolod, hogy mi tévedtünk, vagy egyéb észrevételed van,
+akkor írj a lista tulajdonosának a(z) %(owneremail)s címre. \ No newline at end of file
diff --git a/templates/hu/options.html b/templates/hu/options.html
new file mode 100644
index 00000000..5d62784c
--- /dev/null
+++ b/templates/hu/options.html
@@ -0,0 +1,306 @@
+<!-- $Revision: 6029 $ -->
+<html>
+<head>
+ <link rel="SHORTCUT ICON" href="<mm-favicon>">
+ <title><MM-Presentable-User> beállításai a(z) <MM-List-Name> listán
+ </title>
+</head>
+<BODY BGCOLOR="#ffffff">
+ <TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#99CCFF"><B>
+ <FONT COLOR="#000000" SIZE=+1>
+ <MM-Presentable-User> tag beállításai a(z) <MM-List-Name> levelezõlistán
+ </FONT></B></TD></TR>
+ </TABLE>
+<p>
+<table width="100%" border="0" cellspacing="5" cellpadding="5">
+ <tr><td>
+ <b><MM-Presentable-User></b> tag feliratkozási státusza,
+ jelszava és beállításai a(z) <MM-List-Name> levelezési listán.
+ </td><td><MM-Form-Start><mm-logout-button><MM-Form-End></td>
+ </tr><tr>
+ <td colspan="2">
+ <MM-Case-Preserved-User>
+
+ <MM-Disabled-Notice>
+
+ <p><mm-results>
+ </td>
+ </tr>
+</table>
+
+<MM-Form-Start>
+<p>
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#FFF0D0" colspan="2">
+ <FONT COLOR="#000000">
+ <B><MM-List-Name> levelezõlistán használt címed módosítása</B>
+ </FONT></TD></TR>
+ <tr><td colspan="2">A listán található feliratkozási címedet tudod
+ itt megváltoztatni egy új megadásával. A változtatás csak akkor
+ hajtódik végre, ha az új címedre elküldött értesítést megerõsíted.
+
+ <p>A megerõsítési lehetõség <mm-pending-days> múlva megszûnik.
+
+ <p>Ha akarod, akkor megadhatod a teljes nevedet is
+ (pl. <em>Tóth Béla</em>).
+
+ <p>Ha a(z) <mm-host> gépen található összes listatagságod feliratkozási
+ címét az itt megadottra akarod változtatni, akkor jelöld be a
+ <em>Állítsd mindenhol</em> kapcsolót.
+
+ </td></tr>
+ <tr><td><center>
+ <table border="0" cellspacing="2" cellpadding="2" width="80%" cols="2">
+ <tr><td bgcolor="#dddddd"><div align="right">Új cím:</div></td>
+ <td><mm-new-address-box></td>
+ </tr>
+ <tr><td bgcolor="#dddddd"><div align="right">Új cím még egyszer:</div></td>
+ <td><mm-confirm-address-box></td>
+ </tr>
+ </tr></table></center>
+ </td>
+ <td><center>
+ <table border="0" cellspacing="2" cellpadding="2" width="80%" cols="2">
+ <tr><td bgcolor="#dddddd"><div align="right">Teljes név (nem kötelezõ
+ megadni):</div></td>
+ <td><mm-fullname-box></td>
+ </tr>
+ </table></center>
+ </td>
+ </tr>
+ <tr><td colspan="2"><center><mm-change-address-button>
+ <p><mm-global-change-of-address>Állítsd mindenhol</center></td>
+ </tr>
+</table>
+
+<p>
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="5" CELLPADDING="5">
+ <TR><TD WIDTH="50%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B><MM-List-Name> listáról leiratkozás</B></td>
+
+ <TD WIDTH="50%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>További <MM-Host> listatagságaid</B>
+ </FONT></TD></TR>
+
+ <tr><td>
+ Jelöld be a leiratkozási szándékodat megerõsítõ kapcsolót
+ majd kattints a gombra. <strong>Fontos:</strong> A kattintás
+ után azonnal végrehajtódik a változtatás!
+ <p>
+ <center><MM-Unsubscribe-Button></center></td>
+ <td>
+ <mm-host> gépen található többi levelezõlista tagságodat
+ tekintheted meg a gombra kattintva. Használd akkor, ha azt
+ szeretnéd hogy a többi listán is ugyanezeket a beállításokat
+ tudd elvégezni.
+ <p>
+ <center><MM-Other-Subscriptions-Submit></center>
+ </TD></TR>
+</table>
+
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD COLSPAN=2 WIDTH="100%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B><MM-List-Name> listán a jelszavad </B>
+ </FONT></TD></TR>
+
+ <tr valign="TOP"><td WIDTH="50%">
+ <a name=reminder>
+ <center>
+ <h3>Elfelejtetted a jelszavadat?</h3>
+ </center>
+ Kattints a gombra, hogy emailben megkapd a jelszavadat.
+ <p><MM-Umbrella-Notice>
+ <center>
+ <MM-Email-My-Pw>
+ </center>
+ </td>
+
+ <td WIDTH="50%">
+ <a name=changepw>
+ <center>
+ <h3>Jelszó megváltoztatása</h3>
+ <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2" WIDTH="70%" COLS=2>
+ <TR><TD BGCOLOR="#dddddd"><div align="right">Új jelszó:</div></TD>
+ <TD><MM-New-Pass-Box></TD>
+ </TR>
+ <TR>
+ <TD BGCOLOR="#dddddd"><div align="right">Új jelszó még egyszer:</div></TD>
+ <TD><MM-Confirm-Pass-Box></TD>
+ </TR>
+ </table>
+
+ <MM-Change-Pass-Button>
+ <p><center><mm-global-pw-changes-button>Állítsd mindenhol
+ </center>
+</TABLE>
+
+<p>
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>Beállításaid a(z) <MM-List-Name> levelezõlistán</B>
+ </FONT></TD></TR>
+</table>
+
+<p>
+<i><strong>A jelenlegi beállítások pipával jelölve.</strong></i>
+
+<p>Néhány beállításnál <em>Állítsd mindenhol</em> kapcsolót is lehet
+választani. A kapcsoló bejelölésével minden olyan levelezõlista
+tagságod beállítását meg tudod változtatni, amely a(z) <mm-host> gépen
+mûködik. A <em>Mutassd a többi feliratkozásomat</em> gombra kattintva
+megtekintheted, mely levelezõlistáknak vagy tagja ezen a gépen.
+<p>
+<TABLE BORDER="0" CELLSPACING="3" CELLPADDING="4" WIDTH="100%">
+ <tr><TD BGCOLOR="#cccccc">
+ <a name="disable">
+ <strong>Levélküldés be-/kikapcsolása</strong></a><p>
+ A listáról akkor kapod meg a leveleket, ha <em>Bekapcsolva</em>
+ van megadva.
+ Ha nem akarsz a listáról egy bizonyos ideig levelet kapni (mert pl.
+ szabadságra mész), akkor állítsd át <em>Kikapcsoltra</em>.
+ El ne felejtsd újra bekapcsolni a levélküldést, ha újra
+ fogadni akarod a leveleket.
+ </td><td bgcolor="#cccccc">
+ <mm-delivery-enable-button>Bekapcsolva<br>
+ <mm-delivery-disable-button>Kikapcsolva<p>
+ <mm-global-deliver-button><i>Állítsd mindenhol</i>
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Digest forma megadása</strong><p>
+ Digest formában a leveleket nem egyesével kapod, hanem egybefûzve
+ naponta egyszer. A digest forma lemondása után még egyszer utoljára
+ digestben kapod meg a leveleket.
+ </td><td bgcolor="#cccccc">
+ <MM-Undigest-Radio-Button>Ki<br>
+ <MM-Digest-Radio-Button>Be
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>MIME kódolású vagy sima digest levelek?</strong><p>
+ A levelezõprogramod lehet hogy támogatja, de lehet hogy nem a
+ MIME kódolású digest levelek olvasását. Általában a MIME digest az
+ elfogadott, de ha bármilyen problémád van az ilyen típusú
+ levelekkel, akkor válaszd a sima formát.
+ </td><td bgcolor="#cccccc">
+ <MM-Mime-Digests-Button>MIME<br>
+ <MM-Plain-Digests-Button>Sima szöveg<p>
+ <mm-global-mime-button><i>Állítsd mindenhol</i>
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>A listára küldött leveleidrõl kérsz másolatot?</strong><p>
+ Alapesetben minden listára küldött leveledrõl másolatot kapsz.
+ Ha nem akarsz róluk másolatot kapni, akkor itt <em>Nem</em>-et
+ állíts be.
+ </td><td bgcolor="#cccccc">
+ <mm-dont-receive-own-mail-button>Nem<br>
+ <mm-receive-own-mail-button>Igen
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>A listára sikeresen elküldött leveleidrõl kérsz értesítést?</strong><p>
+ </td><td bgcolor="#cccccc">
+ <mm-dont-ack-posts-button>Nem<br>
+ <mm-ack-posts-button>Igen
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>Kérsz a listához tartozó jelszavadról havonta emlékezetõt?</strong><p>
+ Havonta egyszer minden ezen a gépen mûködõ levelezõlistához
+ tartozó jelszavad elküldésre kerül. Ezt a beállítást minden
+ listán egyedileg meg tudod változtatni, a <em>Nem</em>-mel
+ ki lehet kapcsolni a jelszó elküldést. Ha az összes listán
+ kikapcsolod a jelszó elküldést, akkor a géprõl nem kerül
+ havi jelszó emlékeztetõ elküldésre.
+ </td><td bgcolor="#cccccc">
+ <mm-dont-get-password-reminder-button>Nem<br>
+ <mm-get-password-reminder-button>Igen<p>
+ <mm-global-remind-button><i>Állítsd mindenhol</i>
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Elrejtsünk a feliratkozottak listájából?</strong><p>
+ Ha valaki lekéri a listatagok névsorát, akkor alapesetben
+ a te email címed is megjelenik (egy kicsit átalakítva, hogy
+ a spam gyûjtõk ne tudják felhasználni). Ha szeretnéd
+ az email címedet a listatagok névsorából eltüntetni, akkor
+ állítsd át ezt a beállítást <em>Igen</em>-re.
+ </td><td bgcolor="#cccccc">
+ <MM-Public-Subscription-Button>Nem<br>
+ <MM-Hide-Subscription-Button>Igen
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Milyen nyelven szeretnéd a listát használni?</strong><p>
+ </td><td bgcolor="#cccccc">
+ <MM-list-langs>
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>Milyen témájú leveleket szeretnél fogadni?</strong><p>
+ Egy vagy több téma megadásával a levelezõlistán
+ megjelenõ levelek közül csak azokat kapod meg, amelyek
+ a megadott témák legalább egyikének megfelelnek. Minden
+ más levél sorsáról a következõ beállítás dönt.
+
+ <p>Azon a levelek fogadásáról melyek témája nem egyezik a
+ kívánatos, beállított témák egyikével sem a következõ
+ beállítással lehet gondoskodni. Ha nincs egyetlen egy téma
+ sem megadva, akkor a levelezõlistára küldött összes levél
+ kézbesítve lesz.
+ </td><td bgcolor="#cccccc">
+ <mm-topics>
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>Szeretnéd azokat a leveleket is megkapni, amelyek nem feleltek
+ meg a beállított témák egyikének sem?</strong><p>
+
+ Ez a beállítás csak akkor érvényesül, ha feljebb legalább egy
+ témát kiválasztottunk. A beállítás megmondja, hogy alapesetben
+ mi történjen azokkal a levelekkel, amelyek a választott témák
+ egyikével sem egyezik meg. <em>Nem</em>-et választva nem kerülnek
+ továbbításra azok a levelek, amelyek témája a beállított témák
+ egyikével sem egyezik. Ha az ilyen leveleket mégis is meg akarod kapni,
+ akkor <em>Igen</em>-t kell beállítani.
+
+ <p>Ha nem lett a levelek szûrése feljebb beállítva, akkor a
+ levelezõlistára érkezõ összes levél kézbesítve lesz.
+ </td><td bgcolor="#cccccc">
+ <mm-suppress-nonmatching-topics>Nem<br>
+ <mm-receive-nonmatching-topics>Igen
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>Szeretnéd, hogy a leveleket csak egy példányban kapd meg?</strong><p>
+
+ Ha a listára küldött levél <tt>To:</tt> vagy <tt>Cc:</tt> mezõjében
+ külön meg van adva a címed, akkor beállíthatod, hogy a lista
+ ne kézbesítse neked az ilyen leveleket. <em>Igen</em>-t választva a
+ lista nem fogja neked kézbesíteni az ilyen leveleket; míg
+ <em>Nem</em>-et választva a listáról is meg fogod kapni a levelet.
+
+ <p>Ha a listán személyre szabott levélküldés van beállítva és
+ kéred a levelek további példányának küldését, akkor minden
+ egyes példányban megtalálható lesz a <tt>X-Mailman-Copy: yes</tt>
+ fejléc.
+ </td><td bgcolor="#cccccc">
+ <mm-receive-duplicates-button>Nem<br>
+ <mm-dont-receive-duplicates-button>Igen<p>
+ <mm-global-nodupes-button><i>Állítsd mindenhol</i>
+ </td></tr>
+
+ <tr><TD colspan="2">
+ <center><MM-options-Submit-button></center>
+ </td></tr>
+
+</table>
+</center>
+<p>
+<MM-Form-End>
+
+<MM-Mailman-Footer>
+</body>
+</html>
diff --git a/templates/hu/postack.txt b/templates/hu/postack.txt
new file mode 100644
index 00000000..c96a4529
--- /dev/null
+++ b/templates/hu/postack.txt
@@ -0,0 +1,8 @@
+Üzeneted a következõ tárggyal
+
+ %(subject)s
+
+%(listname)s levelezési listára sikeresen megérkezett.
+
+Lista honlapja: %(listinfo_url)s
+Saját beállításaid: %(optionsurl)s
diff --git a/templates/hu/postauth.txt b/templates/hu/postauth.txt
new file mode 100644
index 00000000..39524f31
--- /dev/null
+++ b/templates/hu/postauth.txt
@@ -0,0 +1,13 @@
+A lista adminisztrátorként a következõ levél megjelenéséhez szükség
+van az engedélyedre:
+
+ Lista: %(listname)s@%(hostname)s
+ Feladó: %(sender)s
+ Tárgy: %(subject)s
+ Indok: %(reason)s
+
+A következõ címen:
+
+ %(admindb_url)s
+
+engedélyezheted, vagy elutasíthatod a levél megjelenését.
diff --git a/templates/hu/postheld.txt b/templates/hu/postheld.txt
new file mode 100644
index 00000000..996c244e
--- /dev/null
+++ b/templates/hu/postheld.txt
@@ -0,0 +1,15 @@
+A(z) '%(listname)s' listára küldött alábbi tárgyú leveled
+
+ %(subject)s
+
+a szerkesztõ jóváhagyásáig nem kerül megjelenésre.
+
+Az ok amiért jóvá kell hagyni:
+
+ %(reason)s
+
+A levél vagy megjelenik a listán, vagy a szerkesztõ elutasító döntésérõl
+külön levélben értesítést kapsz. Ha mégsem szeretnéd, hogy a levél
+megjelenjen, akkor látogass el a következõ címre:
+
+ %(confirmurl)s
diff --git a/templates/hu/private.html b/templates/hu/private.html
new file mode 100644
index 00000000..a737b9f5
--- /dev/null
+++ b/templates/hu/private.html
@@ -0,0 +1,37 @@
+<html>
+<head>
+ <title>%(realname)s Privát archívum azonosítás</title>
+</head>
+<body bgcolor="#ffffff">
+<FORM METHOD=POST ACTION="%(action)s">
+%(message)s
+ <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1">%(realname)s Privát archívum
+ azonosítás</FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <TD> <div ALIGN="Right">E-mail cím: </div></TD>
+ <TD> <INPUT TYPE="TEXT" NAME="username" SIZE="30"> </TD>
+ <tr>
+ </tr>
+ <TD> <div ALIGN="Right">Jelszó: </div> </TD>
+ <TD> <INPUT TYPE="password" NAME="password" SIZE="30"></TD>
+ <tr>
+ </tr>
+ <td colspan=2 align="middle"><INPUT TYPE="SUBMIT" name="submit" VALUE="Belépés...">
+ </td>
+ </tr>
+ </TABLE>
+ <p><strong><em>Fontos:</em></strong> Ettõl az oldaltól engedélyezned kell a sütik
+ fogadását a böngészõdben, különben semmilyen adminisztrátori változtatás nem fog végrehajtódni.
+
+ <p>A Mailman az adminisztrációs mûveleteknél a folyamatos azonosításhoz sütiket használ,
+ így nem kell minden módosításhoz újraazonosítani magadat. A süti a böngészõ bezárásával,
+ illetve az <em>Egyéb adminisztrációs teendõk</em> a <em>Kilépés</em>-re kattintva (ezt
+ csak sikeres bejelentkezés után lehet elérni) érvényét veszti.
+</FORM>
+</body>
+</html>
diff --git a/templates/hu/refuse.txt b/templates/hu/refuse.txt
new file mode 100644
index 00000000..f31084e8
--- /dev/null
+++ b/templates/hu/refuse.txt
@@ -0,0 +1,13 @@
+A(z) '%(listname)s' listára történõ alábbi kérelmedet
+
+ %(request)s
+
+a lista szerkesztõje nem fogadta el. A visszautasítás indoka a
+következõ:
+
+"%(reason)s"
+
+Kérdéseiddel vagy észrevételeiddel közvetlenül a lista adminisztrá-
+torához fordulhatsz a következõ címen:
+
+ %(adminaddr)s
diff --git a/templates/hu/roster.html b/templates/hu/roster.html
new file mode 100644
index 00000000..a05a0972
--- /dev/null
+++ b/templates/hu/roster.html
@@ -0,0 +1,51 @@
+<!-- $Revision: 6029 $ -->
+<HTML>
+ <HEAD>
+ <TITLE><MM-List-Name> Tagok listája</TITLE>
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+
+ <P>
+ <TABLE WIDTH="100%" COLS="1" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1"><MM-List-Name>
+ Tagok listája</FONT></B>
+ </TD>
+ </TR>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" ALIGN="CENTER">
+ <P align = "right"> <MM-lang-form-start><MM-displang-box>
+ <MM-list-langs><MM-form-end></p>
+
+ <P>Kattints a címedre, hogy a beállításaidat tartalmazó oldalra
+ juss.<br><I>(Zárójelben a listáról levelet jelenleg nem fogadók.)
+ </I></P>
+ </TD>
+ </TR>
+ <TR WIDTH="100%" VALIGN="top">
+ <TD BGCOLOR="#FFF0D0" WIDTH="50%">
+ <center>
+ <B><FONT COLOR="#000000">
+ <MM-List-Name> lista <MM-Num-Reg-Users> nem-digest tagjai:</FONT></B>
+ </center>
+ </TD>
+ <TD BGCOLOR="#FFF0D0" WIDTH="50%">
+ <center>
+ <B><FONT COLOR="#000000">
+ <MM-List-Name> lista <MM-Num-Digesters> digest tagjai:</FONT></B>
+ </center>
+ </TD>
+ </TR>
+ <TR VALIGN="top">
+ <td>
+ <P><MM-Regular-Users>
+ </td>
+ <td>
+ <P><MM-Digest-Users>
+ </td>
+ </tr>
+ </table>
+<MM-Mailman-Footer>
+</BODY>
+</HTML>
diff --git a/templates/hu/subauth.txt b/templates/hu/subauth.txt
new file mode 100644
index 00000000..fe058782
--- /dev/null
+++ b/templates/hu/subauth.txt
@@ -0,0 +1,11 @@
+A következõ feliratkozási kérelem megerõsítéséhez szükséges az
+engedélyed:
+
+ Feladó: %(username)s
+ Lista: %(listname)s@%(hostname)s
+
+A kérelemrõl a(z)
+
+ %(admindb_url)s
+
+címen tudsz állást foglalni.
diff --git a/templates/hu/subscribe.html b/templates/hu/subscribe.html
new file mode 100644
index 00000000..2e5f4c6d
--- /dev/null
+++ b/templates/hu/subscribe.html
@@ -0,0 +1,10 @@
+<!-- $Revision: 6029 $ -->
+<html>
+<head><title><MM-List-Name> Feliratokozások</title>
+</head>
+<body bgcolor="white">
+<h1><MM-List-Name> Feliratkozások</h1>
+<MM-Results>
+<MM-Mailman-Footer>
+</body>
+</html>
diff --git a/templates/hu/subscribeack.txt b/templates/hu/subscribeack.txt
new file mode 100644
index 00000000..650103ce
--- /dev/null
+++ b/templates/hu/subscribeack.txt
@@ -0,0 +1,34 @@
+Üdvözlünk a(z) %(real_name)s@%(host_name)s levelezési listán!
+%(welcome)s
+A listára az alábbi címre küldhetsz levelet:
+
+ %(emailaddr)s
+
+A levelezési listáról információt itt találsz:
+
+ %(listinfo_url)s
+
+Ha le szeretnél iratkozni, vagy a beállításaidat megváltoztatni (pl.
+digest mód, jelszó változtatása, stb.), látogass el az alábbi címre:
+
+ %(optionsurl)s
+%(umbrella)s
+Ugyanezeket a dolgokat e-mailen keresztül is elvégezheted ezen a címen:
+
+ %(real_name)s-request@%(host_name)s
+
+Részletes ismertetõt kaphatsz a beállításokról, ha egy 'help' tartalmú
+levelet (a tárgyban vagy a törzsben feltüntetve, aposztrófok nélkül) küldesz
+a fenti címre.
+
+Csak a jelszavad ismeretében tudod megváltoztatni a beállításaidat,
+vagy a leiratkozást elvégezni. A jelszavad:
+
+ %(password)s
+
+A Mailman alapesetben minden hónapban elküldi a(z) %(host_name)s gépen
+található levelezõlistához tartozó jelszavadat, ha ezt az emlékeztetõt
+nem kéred, akkor a beállítások oldalon kikapcsolhatod a havi küldést.
+Az üzenet a leiratkozásról és beállításiad megváltoztatásának módjára
+emlékeztet. A listatagok oldalán található gomb megnyomásával e-mailben
+is kikérheted a jelszavadat.
diff --git a/templates/hu/unsub.txt b/templates/hu/unsub.txt
new file mode 100644
index 00000000..de548439
--- /dev/null
+++ b/templates/hu/unsub.txt
@@ -0,0 +1,24 @@
+Értesítés a(z) %(listname)s levelezõ listáról való törlésed megerõsítésérõl
+
+A(z)%(remote)s címrõl "%(email)s" címed törlését kérvényezték a(z)
+%(listaddr)s levelezõlistáról. Listatagságod törléséhez erre a
+levélre kell válaszolni úgy, hogy a Subject: (Tárgy:) mezõt
+változatlanul hagyod. Leiratkozási szándékodat a következõ webcímen
+is megerõsítheted:
+
+ %(confirmurl)s
+
+Vagy helyezd el a következõ sort -- és semmi mást -- egy levélben,
+s küld el a(z) %(requestaddr)s címre:
+
+ confirm %(cookie)s
+
+A jóváhagyáshoz legtöbbször elég, ha egyszerûen csak válaszolsz
+(`reply') erre a levélre, mivel a levelezõprogramok többsége nem
+módosítja a levél tárgyát (az ide beszúrt "Re:" vagy "VÁ:" nem
+okoz gondot).
+
+Ha nem szeretnél leiratkozni a listáról, akkor egyszerûen hagyd
+figyelmen kívül ezt a levelet. Ha úgy gondolod, hogy jogtalanul
+töröltek a listáról, vagy más észrevételed van, akkor fordulj
+a lista adminisztrátorához; %(listadmin)s.
diff --git a/templates/hu/unsubauth.txt b/templates/hu/unsubauth.txt
new file mode 100644
index 00000000..e941951e
--- /dev/null
+++ b/templates/hu/unsubauth.txt
@@ -0,0 +1,11 @@
+A következõ leiratkozási kérelem megerõsítéséhez szükséges az
+engedélyed:
+
+ Tag: %(username)s
+ Listáról: %(listname)s@%(hostname)s
+
+A kérelemrõl a
+
+ %(admindb_url)s
+
+címen tudsz állást foglalni.
diff --git a/templates/hu/userpass.txt b/templates/hu/userpass.txt
new file mode 100644
index 00000000..608a3d9e
--- /dev/null
+++ b/templates/hu/userpass.txt
@@ -0,0 +1,23 @@
+Te, vagy valaki a nevedben, a %(fqdn_lname)s levelezõlistához tartozó
+jelszavadat kérte ki e-mailben. A jelszóval a listatagsági beállításaidat
+(mint pl. a levelek küldésének módját) tudod beállítani. A jelszó
+ismeretében a listáról le is tudsz iratkozni.
+
+A következõ címmel vagy feliratkozva: %(user)s
+
+A %(listname)s jelszavad a következõ: %(password)s
+
+A beállításaid megváltoztatásához jelszavad ismeretében lépj be a
+következõ weboldalra:
+
+ %(options_url)s
+
+Ugyanezeket e-mailen keresztül is el tudod végezni ezen a címen:
+
+ %(requestaddr)s
+
+A fenti címre egy "help" tartalmú levél elküldésével bõvebb információt
+lehet megtudni a beállításokról.
+
+Kérdések, észrevételek? Küldj egy levelet a(z) %(listname)s levelezõlista
+adminisztrátorának, a(z) %(owneraddr)s címre.
diff --git a/templates/hu/verify.txt b/templates/hu/verify.txt
new file mode 100644
index 00000000..6a792f45
--- /dev/null
+++ b/templates/hu/verify.txt
@@ -0,0 +1,25 @@
+Értesítés a(z) %(listname)s levelezõlistára történõ feliratkozási
+kérelmed megerõsítésérõl.
+
+A(z)%(remote)s címrõl, "%(email)s" e-mail címmel,
+a(z) %(listaddr)s levelezési listára egy feliratkozási kérelmet
+regisztráltunk. A levelezõlistára való feliratkozás megerõsítéséhez
+erre a levélre kell válaszolni úgy, hogy a Subject: (Tárgy:) mezõt
+nem változtatod meg. Feliratkozási szándékodat a következõ weblapon
+is megerõsítheted:
+
+ %(confirmurl)s
+
+Vagy a következõ sort - és csak azt - helyezd el egy e-mail törzsébe,
+amelyet a(z) %(requestaddr)s címre kell elküldened.
+
+ confirm %(cookie)s
+
+A legtöbb e-mail klienssel történõ válaszadás (`reply') alkalmas a
+kérelem megerõsítésére, mivel a levél tárgyát nem módosítják (az ide
+beszúrt "Re:" vagy "VÁ:" nem okoz gondot).
+
+Ha nem szeretnél feliratkozni a listára, akkor egyszerûen hagyd
+figyelmen kívül ezt a levelet. Ha úgy gondolod, hogy jogtalanul
+írtak fel egy listára, vagy más észrevételed van, akkor fordulj
+a lista adminisztrátorához: %(listadmin)s.
diff --git a/templates/it/admindbdetails.html b/templates/it/admindbdetails.html
new file mode 100644
index 00000000..ecfa2f8b
--- /dev/null
+++ b/templates/it/admindbdetails.html
@@ -0,0 +1,81 @@
+Le richieste amministrative vengono visualizzate in due modalit&agrave;:
+in una <a href="%(summaryurl)s">pagina riassuntiva</a>, oppure in una
+pagina <em>dettagliata</em>. La pagina riassuntiva contiene le richieste
+pendenti di iscrizione e di cancellazione e i messaggi in attesa di
+approvazione raggruppati per indirizzo del mittente. La pagina
+dettagliata presenta una visualizzazione pi&ugrave; dettagliata di
+ciascun messaggio, compresi tutte le intestazioni i una parte del
+testo del messaggio.
+
+<p>In entrambe le pagine sono disponibili queste opzioni:
+
+<ul>
+<li><b>Rimando la decisione</b> -- Rimanda la decisione ad un momento
+ successivo. Non viene intrapresa alcuna azione in merito a questa
+ richiesta amministrativa pendente, ma per i messaggi in attesa
+ &egrave; comunque possibile inoltrarli o conservarli (vedi pi&ugrave;
+ aventi).
+
+<p><li><b>Approvo</b> -- Approva il messaggio inviandolo alla lista.
+ Se si tratta della richiesta di iscrizione o cancellazione, approva
+ la modifica dello stato.
+
+<p><li><b>Rigetta</b> -- Rifiuta il messaggio, invia un messaggio
+ al mittente che lo informa del rifiuto e scarta il messaggio.
+ Se si tratta di una richiesta di iscrizione o cancellazione, rifiuta
+ il cambiamento della modifica dello stato. In ogni caso, si
+ dovrebbe includere una motivazione del rifiuto nell'apposita
+ casella di testo.
+
+<p><li><b>Scarta</b> -- Scarta il messaggio senza inviare alcuna
+ informazione al mittente. Se si tratta di una richiesta di
+ iscrizione o cancellazione, la richiesta viene semplicemente
+ scartata senza inviare alcune informazione a chi ha presentato
+ la richiesta. Di solito, questa azione &egrave; riservata
+ ai messaggi di spam.
+</ul>
+
+<p>Per conservare i messaggi, abilita l'opzione <b>Conserva i
+messaggi per l'amministratore di Mailman</b>
+se desideri salvare una copia del messaggio per l'amministratore
+del sito. Questa &egrave; un'opzione utile per i messaggi di abuso
+che vuoi scartare, ma dei quali vuoi tenere una copia
+per usi futuri.
+
+<p>Puoi abilitare l'opzione <b>Inoltra i messaggi
+(uno per volta) a:</b> ed indicare l'indirizzo a cui inoltrare i
+messaggi per inviare i messaggi a qualcuno che non &egrave;
+iscritto alla lista. Se desideri modificare un messaggio prima
+di inviarlo alla lista devi inoltrarlo a te (o ad un altro
+gestore della lista) e scartare il messaggio originale. Quindi,
+quando ricevi il messaggio, apporta le modifiche che desideri
+ed invia di nuovo il messaggio alla lista includendo nella
+prima riga del messaggio (o negli header, se il tuo programma di
+posta elettronica lo consente) il campo <tt>Approved:</tt> con
+la password della lista. In questo caso, la Netiquette richiede
+che nel messaggio inviato venga inclusa una nota che indica che
+il testo del messaggio &egrave; stato modificato.
+
+<p>Se il mittente del messaggio &egrave; un membro sottoposto
+a moderazione, &egrave; possibile rimuovere lo stato di
+moderazione. Questa opzione &egrave; utile nel caso in
+cui una lista sia configurata per sottoporre a moderazione tutti
+i nuovi iscritti alla lista e tu hai deciso che quell'iscritto
+&egrave; una persona di cui ci si pu&ograve; fidare e che
+pu&ograve; inviare messaggi in lista senza bisogno di approvazione.
+
+<p>Se il mittente non &grave; un membro della lista, puoi aggiungere
+il suo indirizzo al <em>filtro mittenti</em>. Il filtro mittenti &egrave;
+descritto nella <a href="%(filterurl)s">pagina dei filtri sul mittente
+delle opzioni di privacy</a>, e pu&grave; essere una di queste
+opzioni: <b>Accetta</b>, <b>Sospendi</b>, <b>Rigetta</b> o
+<b>Scarta</b>. Questa opzione non &grave; disponibile
+se l'indirizzo del mittente &egrave; gi&agrave; presente in una
+delle liste dei filtri di mittenti.
+
+<p>Quando hai finito, clicca sul pulsante <em>Manda tutto</em> che si
+trova all'inzio o alla fine della pagina. Questo pulsante conferma
+tutte le azioni per le richieste amministrative per le quali hai
+preso una decisione.
+
+<p><a href="%(summaryurl)s">Ritorna alla pagina riassuntiva</a>.
diff --git a/templates/it/admindbpreamble.html b/templates/it/admindbpreamble.html
new file mode 100644
index 00000000..adb44486
--- /dev/null
+++ b/templates/it/admindbpreamble.html
@@ -0,0 +1,11 @@
+Questa pagina contiene tutti i messaggi sospesi che richiedono
+la tua approvazione per la lista <em>%(listname)s</em>.
+Attualmente mostra %(description)s
+
+<p>Per ogni richiesta amministrativa, scegli l'azione da eseguire
+e clicca su <b>Manda Tutto</b> quando hai finito. Istruzioni
+pi&ugrave; dettagliate sono disponibili <a href="%(detailsurl)s">qui</a>.
+
+<p>Puoi anche <a href="%(summaryurl)s">vedere un sommario</a> di
+tutte le richieste pendenti.
+
diff --git a/templates/it/admindbsummary.html b/templates/it/admindbsummary.html
new file mode 100644
index 00000000..3e940e6a
--- /dev/null
+++ b/templates/it/admindbsummary.html
@@ -0,0 +1,14 @@
+Questa pagina contiene la lista delle richieste amministrative
+che attualmente attendono la tua autorizzazione per la lista
+<a href="%(adminurl)s"><em>%(listname)s</em></a>.
+Innanzitutto, troverai la lista delle iscrizioni in attesa e delle
+richieste di cancellazione, seguite all'occorrenza da ogni messaggio
+trattenuto per la tua approvazione.
+
+<p>Per ogni richiesta amministrativa, per piacere seleziona come procedere
+e clicca sul pulsante <b>Manda tutto</b> quando hai concluso.
+Sono inoltre disponibili <a href="%(detailsurl)s">altre e pi&ugrave;
+dettagliate istruzioni</a>.
+
+<p>Puoi inoltre <a href="%(viewallurl)s">vedere i dettagli</a> di tutti
+i messaggi trattenuti.
diff --git a/templates/it/adminsubscribeack.txt b/templates/it/adminsubscribeack.txt
new file mode 100644
index 00000000..5783fd50
--- /dev/null
+++ b/templates/it/adminsubscribeack.txt
@@ -0,0 +1 @@
+%(member)s è stato iscritto con successo a %(listname)s.
diff --git a/templates/it/adminunsubscribeack.txt b/templates/it/adminunsubscribeack.txt
new file mode 100644
index 00000000..586f4fc7
--- /dev/null
+++ b/templates/it/adminunsubscribeack.txt
@@ -0,0 +1 @@
+%(member)s è stato rimosso da %(listname)s.
diff --git a/templates/it/admlogin.html b/templates/it/admlogin.html
new file mode 100644
index 00000000..f7dd4210
--- /dev/null
+++ b/templates/it/admlogin.html
@@ -0,0 +1,39 @@
+<html>
+<head>
+<title>Autenticazione per %(who)s di %(listname)s</title>
+</head>
+<body bgcolor="#ffffff">
+<FORM METHOD=POST ACTION="%(path)s">
+%(message)s
+ <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1">Autenticazione per %(who)s di
+ %(listname)s</FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <TD><div ALIGN="Right">Password di lista per %(who)s:</div></TD>
+ <TD><INPUT TYPE="password" NAME="adminpw" SIZE="30"></TD>
+ </tr>
+ <tr>
+ <td colspan=2 align=middle><INPUT type="SUBMIT"
+ name="admlogin"
+ value="Fammi entrare...">
+ </td>
+ </tr>
+ </TABLE>
+ <p><strong><em>Importante:</em></strong> Da questo momento in
+ avanti devi avere i cookie abilitati nel browser o non potrai
+ effettuare nessuna operazione.
+
+ <p>I cookie di sessione sono usati dal pannello di controllo
+ di mailman in modo che tu non sia costretto a ri-autenticarti ad
+ ogni operazione. Questo cookie sar&agrave; cancellato
+ automaticamente all'uscita dal tuo browser oppure puoi chiedere
+ la cancellazione esplicita cliccando il link <em>Logout</em> nella
+ sezione <em>Altre attivit&agrave; amministrative</em> (che vedrai
+ quando ti sarai correttamente autenticato).
+</FORM>
+</body>
+</html>
diff --git a/templates/it/approve.txt b/templates/it/approve.txt
new file mode 100644
index 00000000..50361d6d
--- /dev/null
+++ b/templates/it/approve.txt
@@ -0,0 +1,16 @@
+La tua richiesta alla lista %(requestaddr)s:
+
+ %(cmd)s
+
+è stata inoltrata all'amministratore.
+
+Questo probabilmente perché stai cercando di iscriverti ad una
+lista `chiusa'
+
+Riceverai una email di notifica sulla decisione
+dell'amministratore riguardo la tua richiesta di iscrizione.
+
+Ogni questione riguardante i principi secondo i quali l'amministratore
+della lista prende queste decisioni, può essere inviata a:
+
+ %(adminaddr)s
diff --git a/templates/it/archidxentry.html b/templates/it/archidxentry.html
new file mode 100644
index 00000000..f9bb57aa
--- /dev/null
+++ b/templates/it/archidxentry.html
@@ -0,0 +1,4 @@
+<LI><A HREF="%(filename)s">%(subject)s
+</A><A NAME="%(sequence)i">&nbsp;</A>
+<I>%(author)s
+</I>
diff --git a/templates/it/archidxfoot.html b/templates/it/archidxfoot.html
new file mode 100644
index 00000000..3fe4e5c8
--- /dev/null
+++ b/templates/it/archidxfoot.html
@@ -0,0 +1,21 @@
+ </ul>
+ <p>
+ <a name="end"><b>Data dell'ultimo messaggio:</b></a>
+ <i>%(lastdate)s</i><br>
+ <b>Archiviato il:</b> <i>%(archivedate)s</i>
+ <p>
+ <ul>
+ <li> <b>Messaggi ordinati per:</b>
+ %(thread_ref)s
+ %(subject_ref)s
+ %(author_ref)s
+ %(date_ref)s
+ <li><b><a href="%(listinfo)s">Altre informazioni su questa lista...
+ </a></b></li>
+ </ul>
+ <p>
+ <hr>
+ <i>Questo archivio &egrave; stato generato da
+ Pipermail %(version)s.</i>
+ </BODY>
+</HTML>
diff --git a/templates/it/archidxhead.html b/templates/it/archidxhead.html
new file mode 100644
index 00000000..f68364ec
--- /dev/null
+++ b/templates/it/archidxhead.html
@@ -0,0 +1,24 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+ <HEAD>
+ <title>L'archivio %(archive)s della lista %(listname)s ordinato per %(archtype)s</title>
+ <META NAME="robots" CONTENT="noindex,follow">
+ %(encoding)s
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <a name="start"></A>
+ <h1>Archivio %(archive)s ordinato per %(archtype)s</h1>
+ <ul>
+ <li> <b>Messaggi ordinati per:</b>
+ %(thread_ref)s
+ %(subject_ref)s
+ %(author_ref)s
+ %(date_ref)s
+
+ <li><b><a href="%(listinfo)s">Altre informazioni su questa lista...
+ </a></b></li>
+ </ul>
+ <p><b>Data inizio:</b> <i>%(firstdate)s</i><br>
+ <b>Data fine:</b> <i>%(lastdate)s</i><br>
+ <b>Messaggi:</b> %(size)s<p>
+ <ul>
diff --git a/templates/it/archlistend.html b/templates/it/archlistend.html
new file mode 100644
index 00000000..9bc052dd
--- /dev/null
+++ b/templates/it/archlistend.html
@@ -0,0 +1 @@
+ </table>
diff --git a/templates/it/archliststart.html b/templates/it/archliststart.html
new file mode 100644
index 00000000..35cf4cdf
--- /dev/null
+++ b/templates/it/archliststart.html
@@ -0,0 +1,4 @@
+ <table border=3>
+ <tr><td>Archivio</td>
+ <td>Vedi ordinato per:</td>
+ <td>Versione scaricabile</td></tr>
diff --git a/templates/it/archtoc.html b/templates/it/archtoc.html
new file mode 100644
index 00000000..c9a473ec
--- /dev/null
+++ b/templates/it/archtoc.html
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+ <HEAD>
+ <title>Gli archivi della lista %(listname)s</title>
+ <META NAME="robots" CONTENT="noindex,follow">
+ %(meta)s
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <h1>Gli archivi della lista %(listname)s</h1>
+ <p>
+ Puoi ottenere <a href="%(listinfo)s">ulteriori informazioni su questa lista</a>
+ o puoi <a href="%(fullarch)s">scaricare l'intero archivio grezzo</a>
+ (%(size)s).
+ </p>
+ %(noarchive_msg)s
+ %(archive_listing_start)s
+ %(archive_listing)s
+ %(archive_listing_end)s
+ </BODY>
+ </HTML>
diff --git a/templates/it/archtocentry.html b/templates/it/archtocentry.html
new file mode 100644
index 00000000..0b8ce080
--- /dev/null
+++ b/templates/it/archtocentry.html
@@ -0,0 +1,12 @@
+
+ <tr>
+ <td>%(archivelabel)s:</td>
+ <td>
+ <A href="%(archive)s/thread.html">[ Thread ]</a>
+ <A href="%(archive)s/subject.html">[ Soggetto ]</a>
+ <A href="%(archive)s/author.html">[ Autore ]</a>
+ <A href="%(archive)s/date.html">[ Data ]</a>
+ </td>
+ %(textlink)s
+ </tr>
+
diff --git a/templates/it/article.html b/templates/it/article.html
new file mode 100644
index 00000000..39345862
--- /dev/null
+++ b/templates/it/article.html
@@ -0,0 +1,49 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+ <HEAD>
+ <TITLE> %(title)s
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:%(email_url)s?Subject=%(subject_url)s&In-Reply-To=%(in_reply_to_url)s">
+ <META NAME="robots" CONTENT="index,nofollow">
+ %(encoding)s
+ %(prev)s
+ %(next)s
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>%(subject_html)s</H1>
+ <B>%(author_html)s</B>
+ <A HREF="mailto:%(email_url)s?Subject=%(subject_url)s&In-Reply-To=%(in_reply_to_url)s"
+ TITLE="%(subject_html)s">%(email_html)s
+ </A><BR>
+ <I>%(datestr_html)s</I>
+ <P><UL>
+ %(prev_wsubj)s
+ %(next_wsubj)s
+ <LI> <B>Messaggi ordinati per:</B>
+ <a href="date.html#%(sequence)s">[ Data ]</a>
+ <a href="thread.html#%(sequence)s">[ Thread ]</a>
+ <a href="subject.html#%(sequence)s">[ Oggetto ]</a>
+ <a href="author.html#%(sequence)s">[ Autore ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+%(body)s
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ %(prev_wsubj)s
+ %(next_wsubj)s
+ <LI> <B>Messaggi ordinati per:</B>
+ <a href="date.html#%(sequence)s">[ Data ]</a>
+ <a href="thread.html#%(sequence)s">[ Thread ]</a>
+ <a href="subject.html#%(sequence)s">[ Oggetto ]</a>
+ <a href="author.html#%(sequence)s">[ Autore ]</a>
+ </LI>
+ </UL>
+ <hr>
+ <a href="%(listurl)s">Maggiori informazioni sulla lista
+ %(listname)s</a><br>
+</body></html>
diff --git a/templates/it/bounce.txt b/templates/it/bounce.txt
new file mode 100644
index 00000000..b1dbc91b
--- /dev/null
+++ b/templates/it/bounce.txt
@@ -0,0 +1,15 @@
+Questo messaggio è la notifica di un provvedimento
+che è stato preso in seguito a problemi nell'invio
+di messaggi da parte di una delle liste di Mailman:
+
+ Lista: %(listname)s
+ Iscritto: %(addr)s
+ Azione: Iscrizione %(negative)s%(did)s.
+ Motivo: Errori (troppi o fatali) nell'invio dei messaggi.
+ %(but)s
+
+%(reenable)s
+L'evento che ha scatenato questo provvedimento è allegato.
+
+Domande?
+Contatta l'amministratore di Mailman all'indirizzo %(owneraddr)s.
diff --git a/templates/it/checkdbs.txt b/templates/it/checkdbs.txt
new file mode 100644
index 00000000..62d6b143
--- /dev/null
+++ b/templates/it/checkdbs.txt
@@ -0,0 +1,10 @@
+La lista %(real_name)s@%(host_name)s ha %(count)d richieste
+che attendono la tua attenzione a:
+
+ %(adminDB)s
+
+Per piacere occupatene appena ti è possibile.
+Questa notifica di richieste in attesa, in ogni caso,
+verrà spedita giornalmente.
+
+
diff --git a/templates/it/convert.txt b/templates/it/convert.txt
new file mode 100644
index 00000000..8aeabf80
--- /dev/null
+++ b/templates/it/convert.txt
@@ -0,0 +1,38 @@
+La lista %(listname)s ha appena subito un grande cambiamento.
+Sta infatti operando con un nuovo pachetto chiamato "Mailman".
+Questo si spera risolverà molti dei problemi che si presentano
+amministrando una lista.
+
+Cosa cambia?
+
+1) I messaggi destinati a tutta la lista possono essere inviati
+ a: %(listaddr)s.
+
+2) Hai ricevuto una password casuale per impedire ad altri di
+ cancellarti senza il tuo consenso. Ti è stata inviata in un
+ messaggio separato, che dovresti aver già ricevuto.
+ Non preoccuparti nel caso perdessi la password; un promemoria
+ ti verrà spedito ogni mese.
+
+3) Se hai un accesso al World Wide Web, puoi usarlo in ogni
+momento per cancellarti da questa lista, per passare da e verso
+la modalità digest, per controllare precedenti argomenti della
+lista (che saranno disponibili dopo che la lista ha ricevuto
+messaggi per un giorno o più), ecc.
+L'indirizzo Web di queste risorse è:
+
+ %(listinfo_url)s
+
+4) Se non hai un accesso WWW, puoi fare le stesse cose via email.
+Invia un messaggio a %(requestaddr)s con l'oggetto o il testo
+contenente solamente la parola "help" (senza le virgolette).
+Riceverai una risposta automatica che ti darà ulteriori informazioni.
+
+Per piacere invia qualsiasi domanda o problema relativo a questa
+nuova configurazione a:
+
+ %(adminaddr)s
+
+Questo messaggio è stato auto-generato da Mailman %(version)s.
+Per altre informazioni sul software Mailman, visita la homepage
+di Mailman all'indirizzo http://www.list.org/
diff --git a/templates/it/cronpass.txt b/templates/it/cronpass.txt
new file mode 100644
index 00000000..b131b92a
--- /dev/null
+++ b/templates/it/cronpass.txt
@@ -0,0 +1,22 @@
+Questo è un promemoria, inviato una volta al mese, riguardo la tua
+iscrizione alla lista %(hostname)s. Include le tue informazioni di
+sottoscrizione e come usarle per cambiarle o per cancellarti da una
+lista.
+
+Puoi visitare gli URL per cambiare il tuo stato d'iscrizione o la
+configurazione, inclusa la cancellazione, il settaggio della
+modalità di spedizione digest, o disabilitare completamente la
+spedizione (es., per una vacanza), e così via.
+
+In aggiunta all'interfaccia web, puoi usare anche l'email per
+fare alcuni cambiamenti. Per altre informazioni, invia un
+messaggio all'indirizzo '-request' della lista (per esempio,
+%(exreq)s) contenente solamente la parola 'help' nel corpo del
+messaggio. Ti sarà inviato un messaggio con le istruzioni.
+
+Se hai domande, problemi, commenti, ecc., inviali a %(owner)s.
+Grazie!
+
+Password per %(useraddr)s:
+
+
diff --git a/templates/it/disabled.txt b/templates/it/disabled.txt
new file mode 100644
index 00000000..054b0455
--- /dev/null
+++ b/templates/it/disabled.txt
@@ -0,0 +1,26 @@
+La tua iscrizione alla lista %(listname)s è stata disabilitata
+%(reason)s. Non riceverai ulteriori messaggi
+da questa lista fino a che non riattiverai la tua iscrizione.
+Riceverai altre %(noticesleft)s come questa prima che la tua iscrizione
+alla lista sia eliminata.
+
+Per riattivare la tua iscrizione, puoi semplicemente rispondere a questo
+messaggio (lasciando intatto l'oggetto), o visitando la pagina di conferma a
+
+ %(confirmurl)s
+
+Puoi inoltre visitare la tua pagina di iscrizione a
+
+ %(optionsurl)s
+
+Nella tua pagina, puoi cambiare varie opzioni di consegna quali il tuo
+indirizzo email e se usare o meno la modalità digest.
+Come promemoria, la tua password è
+
+ %(password)s
+
+Nel caso avessi qualche problema o domanda, puoi contattare l'amministratore
+della lista a
+
+ %(owneraddr)s
+
diff --git a/templates/it/emptyarchive.html b/templates/it/emptyarchive.html
new file mode 100644
index 00000000..f94054d0
--- /dev/null
+++ b/templates/it/emptyarchive.html
@@ -0,0 +1,16 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+ <HEAD>
+ <title>Gli archivi della lista %(listname)s</title>
+ <META NAME="robots" CONTENT="noindex,follow">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <h1>Gli archivi della lista %(listname)s</h1>
+ <p>
+ Non sono stati ancora inviati messaggi a questa lista e gli
+ archivi sono ancora vuoti.
+ Puoi avere <a href="%(listinfo)s">altre informazioni
+ su questa lista</a>.
+ </p>
+ </BODY>
+ </HTML>
diff --git a/templates/it/headfoot.html b/templates/it/headfoot.html
new file mode 100644
index 00000000..e3e77d5d
--- /dev/null
+++ b/templates/it/headfoot.html
@@ -0,0 +1,31 @@
+Questo testo pu&ograve; includere <a
+href="http://www.python.org/doc/current/lib/typesseq-strings.html">Stringhe
+di formato Python</a> che saranno sostituite automaticamente dai
+valori degli attributi della lista. L'elenco degli attributi permessi
+&egrave;:
+<ul>
+ <li><b><code>real_name</code></b> - Il nome `di facciata' della
+ lista; di solito &egrave; il nome della lista con lettere maiuscole.
+
+ <li><b><code>list_name</code></b> - Il nome con cui la lista
+ &egrave; identificata negli URL, dove maiuscole e minuscole sono
+ importanti. (Per compatibilit&agrave; all'indietro,
+ <code>_internal_name</code> è equivalente.)
+
+ <li><b><code>host_name</code></b> - Il nome FQDN dell'host sul
+ quale viene eseguito il list server.
+
+ <li><b><code>web_page_url</code></b> - L'URL di base per Mailman.
+ A questo valore viene appeso ad esempio
+ <em><code>listinfo/%(internal_name)s</code></em> per ottenere
+ l'indirizzo della pagina listinfo per la lista.
+
+ <li><b><code>description</code></b> - La descrizione sommaria
+ della lista.
+
+ <li><b><code>info</code></b> - La descrizione completa della
+ lista.
+
+ <li><b><code>cgiext</code></b> - Estensione aggiunta ai nomi
+ degli script CGI
+</ul>
diff --git a/templates/it/help.txt b/templates/it/help.txt
new file mode 100644
index 00000000..7318f0b1
--- /dev/null
+++ b/templates/it/help.txt
@@ -0,0 +1,33 @@
+Aiuto per la lista %(listname)s:
+
+Questo è il messaggio di aiuto per la versione %(version)s del
+list-manager "Mailman". Il testo seguente descrive i comandi che puoi
+mandare per ricevere informazioni e per controllare la tua iscrizione
+alle liste di Mailman di questo sito.
+Un comando può essere inviato nell'oggetto o nel corpo del messaggio.
+
+Nota che molto di quello che segue può essere compiuto via World Wide
+Web, all'indirizzo:
+
+ %(listinfo_url)s
+
+In particolare, puoi usare le pagine web per farti inviare la tua
+password all'indirizzo con il quale ti sei iscritto alla lista.
+
+I comandi specifici (subscribe, who, ecc.) possono essere inviati
+all'indirizzo *-request per la lista interessata, ad es. per la lista
+'mailman', usa 'mailman-request@...'.
+
+Riguardo le convenzioni - le parole tra "<>" sono RICHIESTE mentre
+quelle tra "[]" sono OPZIONALI. Non includere "<>" o "[]" quando usi
+i comandi.
+
+Puoi inviare i seguenti comandi:
+
+ %(commands)s
+
+I comandi possono essere inviati a %(requestaddr)s
+
+Domande e richieste di intervento manuale possono essere inviate a:
+
+ %(adminaddr)s
diff --git a/templates/it/invite.txt b/templates/it/invite.txt
new file mode 100644
index 00000000..8ba98478
--- /dev/null
+++ b/templates/it/invite.txt
@@ -0,0 +1,21 @@
+Il tuo indirizzo "%(email)s" è stato invitato ad iscriversi
+alla lista %(listname)s presso %(hostname)s dall'amministratore
+della stessa.
+
+Per accettare questo invito è sufficiente rispondere a questo
+messaggio, mantenendo la riga dell'oggetto intatta.
+
+Oppure puoi visitare questa pagina web:
+
+ %(confirmurl)s
+
+Oppure includi solo ed esclusivamente la linea seguente in un
+messaggio da spedire a %(requestaddr)s:
+
+ confirm %(cookie)s
+
+Tieni presente che una semplice risposta a questo messaggio dovrebbe
+essere sufficiente con la maggior parte dei programmi di posta.
+
+Se vuoi rifiutare l'invito, semplicemente ignora questo messaggio.
+Se hai domande, puoi scrivere a %(listowner)s.
diff --git a/templates/it/listinfo.html b/templates/it/listinfo.html
new file mode 100644
index 00000000..3cb48700
--- /dev/null
+++ b/templates/it/listinfo.html
@@ -0,0 +1,152 @@
+<HTML>
+ <HEAD>
+ <TITLE>Pagina di informazioni della lista <MM-List-Name></TITLE>
+
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+
+ <P>
+ <TABLE COLS="1" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1"><MM-List-Name> --
+ <MM-List-Description></FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <p>&nbsp;
+ </td>
+ </tr>
+ <tr>
+ <TD COLSPAN="1" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000">Dettagli su <MM-List-Name></FONT></B>
+ </TD>
+ <TD COLSPAN="1" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <MM-lang-form-start><MM-displang-box>
+ <MM-list-langs>
+ <MM-form-end>
+ <MM-Subscribe-Form-Start>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <P><MM-List-Info></P>
+ <p> Per consultare la raccolta dei messaggi precedentemente
+ inviati alla lista, visita gli <MM-Archive>Archivi della lista <MM-List-Name></MM-Archive>.
+ <MM-Restricted-List-Message>
+ </p>
+ </TD>
+ </TR>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000">Uso di <MM-List-Name></FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ Per inviare un messaggio a tutti gli iscritti della lista, scrivi
+ all'indirizzo
+ <A HREF="mailto:<MM-Posting-Addr>"><MM-Posting-Addr></A>.
+
+ <p>Puoi iscriverti alla lista, o cambiare la tua iscrizione
+ corrente, nella sezione sottostante.
+
+ </td>
+ </tr>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000">Iscrizione a <MM-List-Name></FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <P>
+ Iscriviti a <MM-List-Name> completando il seguente modulo.
+ <MM-List-Subscription-Msg>
+ <ul>
+ <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"
+ WIDTH="70%" HEIGHT= "112">
+ <TR>
+ <TD BGCOLOR="#dddddd" WIDTH="55%">Il tuo indirizzo email:</TD>
+ <TD WIDTH="33%"><MM-Subscribe-Box></TD>
+ <TD WIDTH="12%">&nbsp;</TD>
+ </TR>
+ <tr>
+ <td bgcolor="#dddddd" width="55%">Il tuo nome (opzionale):</td>
+ <td width="33%"><mm-fullname-box></td>
+ <TD WIDTH="12%">&nbsp;</TD>
+ </TR>
+ <TR>
+ <TD COLSPAN="3"><FONT SIZE=-1>Devi inserire una password
+ personale. Questo ti garantir&agrave; solo una minima
+ sicurezza, ma impedir&agrave; ad altri di fare scherzi con
+ la tua iscrizione.
+ <b>Non usare una password importante</b> visto che ti
+ verr&agrave; periodicamente ricordata via email con testo
+ non cifrato.
+ <p>Se non vuoi scegliere, lascia in bianco la password ed
+ una verr&agrave; automaticamente generata per te e spedita
+ al tuo indirizzo quando avrai confermato l'iscrizione.
+ Puoi chiedere in ogni momento che ti venga rispedita
+ la mail contenente la password, semplicemente
+ premendo un pulsante nel pannello delle tue opzioni
+ personali.
+ <MM-Reminder>
+ </TD>
+ </TR>
+ <TR>
+ <TD BGCOLOR="#dddddd">Scegli una password:</TD>
+ <TD><MM-New-Password-Box></TD>
+ <TD>&nbsp;</TD>
+ </TR>
+ <TR>
+ <TD BGCOLOR="#dddddd">Conferma la password:</TD>
+ <TD><MM-Confirm-Password></TD>
+ <TD>&nbsp; </TD></TR>
+ <tr>
+ <TD BGCOLOR="#dddddd">
+ In quale lingua preferisci vedere i tuoi messaggi?
+ </TD>
+ <TD> <MM-list-langs></TD>
+ <TD>&nbsp; </TD></TR>
+ <mm-digest-question-start>
+ <tr>
+ <td>Vuoi ricevere i messaggi della lista raggruppati in un
+ digest giornaliero?
+
+ </td>
+ <td><MM-Undigest-Radio-Button> No
+ <MM-Digest-Radio-Button> S&igrave;
+ </TD>
+ </tr>
+ <mm-digest-question-end>
+ <tr>
+ <td colspan="3">
+ <center><MM-Subscribe-Button></P></center>
+ </TABLE>
+ <MM-Form-End>
+ </ul>
+ </td>
+ </tr>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <a name="subscribers">
+ <B><FONT COLOR="#000000">Iscritti a <MM-List-Name></FONT></B></a>
+ </TD>
+ </TR>
+ <tr>
+ <TD COLSPAN="2" WIDTH="100%">
+ <MM-Roster-Form-Start>
+ <MM-Roster-Option>
+ <MM-Form-End>
+ <p>
+ <MM-Options-Form-Start>
+ <MM-Editing-Options>
+ <MM-Form-End>
+ </td>
+ </tr>
+ </table>
+<MM-Mailman-Footer>
+</BODY>
+</HTML>
diff --git a/templates/it/masthead.txt b/templates/it/masthead.txt
new file mode 100644
index 00000000..f473af05
--- /dev/null
+++ b/templates/it/masthead.txt
@@ -0,0 +1,16 @@
+Invia le richieste di iscrizione alla lista %(real_name)s
+all'indirizzo
+ %(got_list_email)s
+
+Per iscriverti o cancellarti attraverso il web, visita
+ %(got_listinfo_url)s
+oppure, via email, manda un messaggio con oggetto `help'
+all'indirizzo
+ %(got_request_email)s
+
+Puoi contattare la persona che gestisce la lista all'indirizzo
+ %(got_owner_email)s
+
+Se rispondi a questo messaggio, per favore edita la linea
+dell'oggetto in modo che sia più utile di un semplice
+"Re: Contenuti del digest della lista %(real_name)s..."
diff --git a/templates/it/newlist.txt b/templates/it/newlist.txt
new file mode 100644
index 00000000..2c833c2e
--- /dev/null
+++ b/templates/it/newlist.txt
@@ -0,0 +1,39 @@
+La lista `%(listname)s' è stata creata per te!
+Di seguito trovi alcune informazioni di base in proposito.
+
+La tua password per la lista è:
+
+ %(password)s
+
+Avrai bisogno di questa password per la configurazione.
+Inoltre la dovrai usare per gestire le richieste amministrative,
+come ad esempio l'approvazione di messaggi se sceglierai il
+regime di lista moderata.
+
+Puoi configurare la tua lista a questa pagina web:
+
+ %(admin_url)s
+
+La pagina per gli utenti della tua lista è:
+
+ %(listinfo_url)s
+
+Puoi anche personalizzare queste pagine web dalla pagina di
+configurazione. In ogni caso avrai bisogno di conoscere il
+linguaggio HTML per farlo.
+
+Esiste anche un'interfaccia per gli utenti basata sull'email
+(non per gli amministratori); puoi ottenere informazioni sul
+suo utilizzo inviando un messaggio con la sola parola `help'
+nell'oggetto o nel testo, all'indirizzo:
+
+ %(requestaddr)s
+
+Per cancellare un utente: dalla pagina web `listinfo' scegli
+la tua lista dall'elenco poi inserisci l'email dell'utente
+come se tu fossi lui. Dove l'utente metterebbe la sua password
+per cancellarsi, tu metti la tua password di amministratore.
+Puoi anche usare questa password per cambiare le opzioni degli
+utenti, incluso la modalità digest, la disabilitazione, etc.
+
+Per favore, invia ogni domanda a %(siteowner)s.
diff --git a/templates/it/nomoretoday.txt b/templates/it/nomoretoday.txt
new file mode 100644
index 00000000..161a2f8f
--- /dev/null
+++ b/templates/it/nomoretoday.txt
@@ -0,0 +1,9 @@
+E' stato ricevuto un messaggio proveniente dal tuo indirizzo
+`%(sender)s' con richiesta di una risposta automatica per la
+lista %(listname)s.
+Sono stati rilevati altri %(num)s simili messaggi da parte tua oggi.
+Per evitare problemi quali mail loop tra i robot, non ti verranno
+inviate ulteriori risposte oggi. Per piacere prova ancora domani.
+
+Se credi che questo sia un errore, o hai qualche domanda, per piacere
+contatta l'amministratore all'indirizzo %(owneremail)s.
diff --git a/templates/it/options.html b/templates/it/options.html
new file mode 100644
index 00000000..6de80c31
--- /dev/null
+++ b/templates/it/options.html
@@ -0,0 +1,317 @@
+<!-- $Revision: 5688 $ -->
+<html>
+<head>
+ <link rel="SHORTCUT ICON" href="<mm-favicon>">
+ <title>Configurazione utente <MM-Presentable-User> per la lista <MM-List-Name></title>
+</head>
+<BODY BGCOLOR="#ffffff">
+ <TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#99CCFF"><B>
+ <FONT COLOR="#000000" SIZE=+1>
+ Configurazione utente <MM-Presentable-User> per la
+ lista <MM-List-Name>
+ </FONT></B></TD></TR>
+ </TABLE>
+<p>
+<table width="100%" border="0" cellspacing="5" cellpadding="5">
+ <tr><td>
+ Stato di iscrizione dell'utente <b><MM-Presentable-User></b>,
+ password e opzioni per la lista <MM-List-Name>.
+ </td><td><MM-Form-Start><mm-logout-button><MM-Form-End></td>
+ </tr><tr>
+ <td colspan="2">
+ <MM-Case-Preserved-User>
+
+ <MM-Disabled-Notice>
+
+ <p><mm-results>
+ </td>
+ </tr>
+</table>
+
+<MM-Form-Start>
+<p>
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#FFF0D0" colspan="2">
+ <FONT COLOR="#000000">
+ <B>Cambiare le informazioni della tua iscrizione a <MM-List-Name></B>
+ </FONT></TD></TR>
+ <tr><td colspan="2">Puoi cambiare l'indirizzo con il quale sei
+ iscritto alla lista, semplicemente inserendo il nuovo
+ indirizzo nel campo sottostante. Nota che ti verr&agrave;
+ inviato, al nuovo indirizzo, un messaggio con la richiesta di
+ conferma. La variazione sar&agrave; completata solo dopo il
+ ricevimento della tua risposta.
+
+ <p>Le richieste di conferma scadono dopo circa <mm-pending-days>.
+
+ <p>Puoi anche opzionalmente inserire o cambiare il tuo vero
+ nome (ad esempio <em>Mario Rossi</em>).
+
+ <p>Se vuoi che le tue variazioni abbiano effetto su tutte le
+ liste alle quali sei iscritto su <mm-host>, metti la spunta
+ nel quadratino <em>Cambia globalmente</em>.
+
+ </td></tr>
+ <tr><td><center>
+ <table border="0" cellspacing="2" cellpadding="2" width="80%" cols="2">
+ <tr><td bgcolor="#dddddd"><div align="right">Nuovo indirizzo:</div></td>
+ <td><mm-new-address-box></td>
+ </tr>
+ <tr><td bgcolor="#dddddd"><div align="right">Di nuovo per
+ conferma:</div></td>
+ <td><mm-confirm-address-box></td>
+ </tr>
+ </tr></table></center>
+ </td>
+ <td><center>
+ <table border="0" cellspacing="2" cellpadding="2" width="80%" cols="2">
+ <tr><td bgcolor="#dddddd"><div align="right">Il tuo nome
+ (opzionale):</div></td>
+ <td><mm-fullname-box></td>
+ </tr>
+ </table></center>
+ </td>
+ </tr>
+ <tr><td colspan="2"><center><mm-change-address-button>
+ <p><mm-global-change-of-address>Cambia globalmente</center></td>
+ </tr>
+</table>
+
+<p>
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="5" CELLPADDING="5">
+ <TR><TD WIDTH="50%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>Cancellarsi da <MM-List-Name></B></td>
+
+ <TD WIDTH="50%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>Le altre tue iscrizioni su <MM-Host></B>
+ </FONT></TD></TR>
+
+ <tr><td>
+ Metti la spunta nel quadratino di conferma e clicca questo
+ pulsante per cancellarti da questa mailing list.
+ <strong>Attenzione:</strong> L'azione avr&agrave; effetto
+ immediato!
+ <p>
+ <center><MM-Unsubscribe-Button></center></td>
+ <td>
+ Puoi vedere un elenco delle altre mailing list alle quali sei
+ iscritto su questo stesso server <mm-host>. Usa questo se vuoi
+ che le modifiche che stai apportando abbiano effetto su tutte
+ le altre iscrizioni.
+
+ <p>
+ <center><MM-Other-Subscriptions-Submit></center>
+ </TD></TR>
+</table>
+
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD COLSPAN=2 WIDTH="100%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>La tua password per <MM-List-Name></B>
+ </FONT></TD></TR>
+
+ <tr valign="TOP"><td WIDTH="50%">
+ <a name=reminder>
+ <center>
+ <h3>Dimenticata la password?</h3>
+ </center>
+ Clicca questo pulsante se vuoi che la tua password ti
+ sia spedita al tuo indirizzo.
+ <p><MM-Umbrella-Notice>
+ <center>
+ <MM-Email-My-Pw>
+ </center>
+ </td>
+
+ <td WIDTH="50%">
+ <a name=changepw>
+ <center>
+ <h3>Cambiare la password</h3>
+ <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2" WIDTH="70%" COLS=2>
+ <TR><TD BGCOLOR="#dddddd"><div align="right">Nuova
+ password:</div></TD>
+ <TD><MM-New-Pass-Box></TD>
+ </TR>
+ <TR>
+ <TD BGCOLOR="#dddddd"><div align="right">Di nuovo per
+ conferma:</div></TD>
+ <TD><MM-Confirm-Pass-Box></TD>
+ </TR>
+ </table>
+
+ <MM-Change-Pass-Button>
+ <p><center><mm-global-pw-changes-button>Cambia globalmente.
+ </center>
+</TABLE>
+
+<p>
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>Le tue opzioni per la lista <MM-List-Name></B>
+ </FONT></TD></TR>
+</table>
+
+<p>
+<i><strong>I valori attualmente scelti sono spuntati.</strong></i>
+
+<p>Nota che alcune di queste opzioni hanno un quadratino
+<em>Globalmente</em>. Spuntando questo quadratino le tue variazioni
+avranno effetto su tutte le liste a cui sei iscritto su questo
+stesso server <mm-host>. Clicca su <em>Elenca le altre mie iscrizioni</em>
+qui sopra per vedere a quali altre liste sei iscritto.
+<p>
+<TABLE BORDER="0" CELLSPACING="3" CELLPADDING="4" WIDTH="100%">
+ <tr><TD BGCOLOR="#cccccc">
+ <a name="disable">
+ <strong>Consegna della posta</strong></a><p>
+ <em>Abilita</em> questa opzione per ricevere i messaggi che
+ sono inviati a questa lista. <em>Disabilitala</em> se non vuoi
+ ricevere i messaggi per qualche tempo (ad esempio se stai andando
+ in vacanza). Se disabiliti l'invio, non dimenticare che dopo
+ le vacanze dovrai tornare qui e riabilitarlo; non sar&agrave;
+ riabilitato automaticamente.
+ </td><td bgcolor="#cccccc">
+ <mm-delivery-enable-button>Abilitato<br>
+ <mm-delivery-disable-button>Disabilitato<p>
+ <mm-global-deliver-button><i>Globalmente</i>
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Modo Digest</strong><p>
+ Se abiliti il modo digest, riceverai i messaggi in un unico
+ pacchetto giornaliero (normalmente ne viene inviato uno al
+ giorno ma potrebbero essere pi&ugrave; frequenti su liste
+ particolarmente trafficate) invece di uno per volta. Se era
+ abilitato e lo stai disabilitando, potresti ricevere ancora un
+ ultimo digest prima che le cose vadano a regime.
+ </td><td bgcolor="#cccccc">
+ <MM-Undigest-Radio-Button>Off<br>
+ <MM-Digest-Radio-Button>On
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Digest in formato MIME o Testo?</strong><p>
+ Il tuo programma di posta potrebbe supportare i digest in
+ formato MIME oppure no. In generale il formato MIME &egrave;
+ preferibile ma se hai problemi scegli il formato testo.
+ </td><td bgcolor="#cccccc">
+ <MM-Mime-Digests-Button>MIME<br>
+ <MM-Plain-Digests-Button>Testo<p>
+ <mm-global-mime-button><i>globalmente</i>
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Vuoi ricevere una copia dei messaggi che mandi
+ alla lista?</strong><p>
+ Normalmente, riceverai una copia di ogni messaggio che
+ manderai alla lista. Se non vuoi che questo succeda, metti
+ questa opzione a <em>No</em>.
+ </td><td bgcolor="#cccccc">
+ <mm-dont-receive-own-mail-button>No<br>
+ <mm-receive-own-mail-button>S&igrave;
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Vuoi ricevere un messaggio di conferma quando
+ mandi una mail alla lista?</strong><p>
+ </td><td bgcolor="#cccccc">
+ <mm-dont-ack-posts-button>No<br>
+ <mm-ack-posts-button>S&igrave;
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>Vuoi ricevere un promemoria contente la password per
+ questa lista?</strong><p>
+ Una volta al mese riceverai un messaggio contenente un
+ promemoria per ogni lista a cui sei iscritto su questo server.
+ Puoi disabilitare questa opzione lista per lista, scegliendo
+ <em>No</em>. Se scegli di disabilitarla globalmente, allora
+ non riceverai alcun promemoria mensile.
+ </td><td bgcolor="#cccccc">
+ <mm-dont-get-password-reminder-button>No<br>
+ <mm-get-password-reminder-button>S&igrave;<p>
+ <mm-global-remind-button><i>Globalmente</i>
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Vuoi rimanere nascosto nell'elenco degli iscritti?</strong><p>
+ Quando qualcuno consulta l'elenco degli iscritti alla lista,
+ il tuo indirizzo di posta viene normalmente mostrato (in un
+ modo alterato, cos&igrave; da rendere difficile il lavoro
+ degli spammer). Se vuoi che il tuo indirizzo non compaia
+ in questi elenchi, scegli <em>S&igrave;</em> in questa opzione.
+ </td><td bgcolor="#cccccc">
+ <MM-Public-Subscription-Button>No<br>
+ <MM-Hide-Subscription-Button>S&igrave;
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Che lingua preferisci?</strong><p>
+ </td><td bgcolor="#cccccc">
+ <MM-list-langs>
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>A quali categorie di argomenti sei interessato?</strong><p>
+ Selezionando uno o pi&ugrave; argomenti puoi filtrare il
+ traffico della lista e ricevere soltanto un sottoinsieme
+ dei messaggi. Se un messaggio corrisponde ad uno degli
+ argomenti che hai scelto allora lo riceverai, altrimenti no.
+
+ <p>Se un messaggio non corrisponde a nessun argomento, allora
+ la scelta dipende dalla prossima opzione. Se non scegli
+ nessun argomento di interesse allora riceverai tutti i
+ messaggi che saranno inviati alla lista.
+ </td><td bgcolor="#cccccc">
+ <mm-topics>
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>Vuoi ricevere i messaggi che non corrispondono a nessuna
+ categoria?</strong><p>
+
+ Normalmente questa opzione ha effetto soltanto se ti sei iscritto
+ ad almeno una categoria di interesse tra quelle sopra elencate.
+ Quello che devi decidere &egrave; se i messaggi che non
+ corrispondono a nessuna categoria li vuoi ricevere o no.
+
+ <p>Se nella precedente opzione non hai scelto alcuna categoria
+ di interesse, allora riceverai tutti i messaggi inviati alla
+ lista.
+ </td><td bgcolor="#cccccc">
+ <mm-suppress-nonmatching-topics>No<br>
+ <mm-receive-nonmatching-topics>S&igrave;
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>Elimino i doppioni?</strong><p>
+
+ Quando sei indicato esplicitamente nel <tt>To:</tt> o
+ nel <tt>Cc:</tt> di un messaggio che era stato inviato
+ aalla lista, puoi scegliere di non ricevere la copia
+ che la lista ti avrebbe inviato.
+ Scegli <em>S&igrave;</em> per evitare di ricevere copie dalla
+ lista; scegli <em>No</em> per riceverle.
+
+ <p>Se la lista ha i messaggi personalizzati abilitati,
+ e tu hai deciso di ricevere le copie, ogni copia avrà una
+ intestazione <tt>X-Mailman-Copy: yes</tt> aggiunta.
+
+ </td><td bgcolor="#cccccc">
+ <mm-receive-duplicates-button>No<br>
+ <mm-dont-receive-duplicates-button>Yes<p>
+ <mm-global-nodupes-button><i>Set globally</i>
+ </td></tr>
+
+ <tr><TD colspan="2">
+ <center><MM-options-Submit-button></center>
+ </td></tr>
+
+</table>
+</center>
+<p>
+<MM-Form-End>
+
+<MM-Mailman-Footer>
+</body>
+</html>
diff --git a/templates/it/postack.txt b/templates/it/postack.txt
new file mode 100644
index 00000000..9a94b242
--- /dev/null
+++ b/templates/it/postack.txt
@@ -0,0 +1,8 @@
+Il tuo messaggio intitolato
+
+ %(subject)s
+
+è stato ricevuto correttamente dalla lista %(listname)s.
+
+Pagina di informazioni sulla lista: %(listinfo_url)s
+Le tue preferenze: %(optionsurl)s
diff --git a/templates/it/postauth.txt b/templates/it/postauth.txt
new file mode 100644
index 00000000..dd134192
--- /dev/null
+++ b/templates/it/postauth.txt
@@ -0,0 +1,13 @@
+E' richiesta la tua autorizzazione per approvare il seguente
+messaggio:
+
+ Lista: %(listname)s@%(hostname)s
+ Mittente: %(sender)s
+ Oggetto: %(subject)s
+ Motivo: %(reason)s
+
+Quando riterrai opportuno, visita:
+
+ %(admindb_url)s
+
+per approvare o rifiutare la richiesta.
diff --git a/templates/it/postheld.txt b/templates/it/postheld.txt
new file mode 100644
index 00000000..f513afe1
--- /dev/null
+++ b/templates/it/postheld.txt
@@ -0,0 +1,18 @@
+
+Il tuo messaggio alla lista '%(listname)s' con oggetto
+
+ %(subject)s
+
+è stato trattenuto in attesa che il moderatore della lista
+possa esaminarlo per l'approvazione.
+
+La ragione per la quale è stato trattenuto:
+
+ %(reason)s
+
+A seconda della decisione del moderatore, il messaggio verrà
+inviato alla lista oppure ti sarà inviata una notifica con la
+motivazione del rifiuto. Se vuoi cancellare questo messaggio,
+visita questo indirizzo:
+
+ %(confirmurl)s
diff --git a/templates/it/private.html b/templates/it/private.html
new file mode 100644
index 00000000..01975708
--- /dev/null
+++ b/templates/it/private.html
@@ -0,0 +1,44 @@
+<html>
+<head>
+<title>Autenticazione per gli archivi privati di %(realname)s</title>
+</head>
+<body bgcolor="#ffffff">
+<FORM METHOD=POST ACTION="%(action)s/">
+%(message)s
+ <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1">
+ Autenticazione per gli archivi privati di %(realname)s
+ </FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <TD><div ALIGN="Right">Indirizzo email:</div></TD>
+ <TD><INPUT TYPE="text" NAME="username" SIZE="30"></TD>
+ </tr>
+ <tr>
+ <TD><div ALIGN="Right">Password:</div></TD>
+ <TD><INPUT TYPE="password" NAME="password" SIZE="30"></TD>
+ </tr>
+ <tr>
+ <td colspan=2 align="middle"><INPUT type="SUBMIT"
+ name="submit"
+ value="Fammi entrare...">
+ </td>
+ </tr>
+ </TABLE>
+ <p><strong><em>Importante:</em></strong>Da questo momento in
+ avanti devi avere i cookie abilitati nel browser o non potrai
+ effettuare nessuna operazione.
+
+ <p>I cookie di sessione sono usati dall'interfaccia agli archivi
+ privati di mailman in modo che tu non sia costretto a ri-autenticarti
+ ad ogni operazione. Questo cookie sar&agrave; cancellato
+ automaticamente all'uscita dal tuo browser oppure puoi chiedere
+ la cancellazione esplicita cliccando il link <em>Logout</em> nella
+ sezione <em>Altre attivit&agrave; amministrative</em> (che vedrai
+ quando ti sarai correttamente autenticato).
+</FORM>
+</body>
+</html>
diff --git a/templates/it/refuse.txt b/templates/it/refuse.txt
new file mode 100644
index 00000000..6e3b75b1
--- /dev/null
+++ b/templates/it/refuse.txt
@@ -0,0 +1,13 @@
+La tua richiesta alla lista %(listname)s
+
+ %(request)s
+
+è stata rifiutata dal moderatore.
+Il moderatore ha dato la seguente ragione per il rifiuto:
+
+"%(reason)s"
+
+Qualunque domanda o commento può essere inviato
+all'amministratore della lista all'indirizzo:
+
+ %(adminaddr)s
diff --git a/templates/it/roster.html b/templates/it/roster.html
new file mode 100644
index 00000000..1dae44c0
--- /dev/null
+++ b/templates/it/roster.html
@@ -0,0 +1,52 @@
+<!-- $Revision: 5529 $ -->
+<HTML>
+ <HEAD>
+ <TITLE>Iscritti a <MM-List-Name></TITLE>
+
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+
+ <P>
+ <TABLE WIDTH="100%" COLS="1" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1">Iscritti a <MM-List-Name>
+ </FONT></B>
+ </TD>
+ </TR>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" ALIGN="CENTER">
+
+ <P align = "right"> <MM-lang-form-start><MM-displang-box>
+ <MM-list-langs><MM-form-end></p>
+
+ <P>Clicca sul tuo indirizzo per visitare la pagina di opzioni.<br>
+ <I>(Gli indirizzi tra parentesi hanno l'invio disabilitato.)</I></P>
+ </TD>
+ </TR>
+ <TR WIDTH="100%" VALIGN="top">
+ <TD BGCOLOR="#FFF0D0" WIDTH="50%">
+ <center>
+ <B><FONT COLOR="#000000"><MM-Num-Reg-Users>
+ iscritti non digest di <MM-List-Name>:</FONT></B>
+ </center>
+ </TD>
+ <TD BGCOLOR="#FFF0D0" WIDTH="50%">
+ <center>
+ <B><FONT COLOR="#000000"><MM-Num-Digesters>
+ iscritti digest di <MM-List-Name>:</FONT></B>
+ </center>
+ </TD>
+ </TR>
+ <TR VALIGN="top">
+ <td>
+ <P><MM-Regular-Users>
+ </td>
+ <td>
+ <P><MM-Digest-Users>
+ </td>
+ </tr>
+ </table>
+<MM-Mailman-Footer>
+</BODY>
+</HTML>
diff --git a/templates/it/subauth.txt b/templates/it/subauth.txt
new file mode 100644
index 00000000..3fd801bb
--- /dev/null
+++ b/templates/it/subauth.txt
@@ -0,0 +1,11 @@
+La tua autorizzazione è richiesta per approvare un'iscrizione
+ad una lista:
+
+ Per: %(username)s
+ Lista: %(listname)s@%(hostname)s
+
+Quando riterrai opportuno, visita la pagina:
+
+ %(admindb_url)s
+
+per elaborare la richiesta.
diff --git a/templates/it/subscribe.html b/templates/it/subscribe.html
new file mode 100644
index 00000000..21f71a4c
--- /dev/null
+++ b/templates/it/subscribe.html
@@ -0,0 +1,8 @@
+<html>
+<head><title><MM-List-Name> Risultato dell'iscrizione</title></head>
+<body>
+<h1><MM-List-Name> Risultato dell'iscrizione</h1>
+<MM-Results>
+<MM-Mailman-Footer>
+</body>
+</html>
diff --git a/templates/it/subscribeack.txt b/templates/it/subscribeack.txt
new file mode 100644
index 00000000..f03a433d
--- /dev/null
+++ b/templates/it/subscribeack.txt
@@ -0,0 +1,34 @@
+Benvenuto nella lista %(real_name)s@%(host_name)s!
+%(welcome)s
+
+Per inviare un messaggio a questa lista, spediscilo a:
+
+ %(emailaddr)s
+
+Informazioni generali sulla lista si trovano all'indirizzo:
+
+ %(listinfo_url)s
+
+Se un giorno vorrai cancellarti o cambiare le tue opzioni (ad esempio
+passare al modo digest o cambiare la tua password etc.), visita la
+tua pagina di iscrizione all'indirizzo:
+
+ %(optionsurl)s
+%(umbrella)s
+Puoi anche effettuare variazioni via email inviando un messaggio a:
+
+ %(real_name)s-request@%(host_name)s
+
+con la parola `help' nell'oggetto o nel testo (non includere le
+virgolette), e ti tornerà indietro un messaggio con le istruzioni.
+
+Devi conoscere la tua password per cambiare le tue opzioni (inclusi
+i cambi della stessa password) o per cancellarti. La password è:
+
+ %(password)s
+
+Se dimentichi la password, non preoccuparti, riceverai mensilmente un
+promemoria che ti elencherà tutte le tue password nelle nostre liste
+su %(host_name)s e ti spiegherà come cancellarti o cambiare le tue
+opzioni. C'è anche un pulsante, nella tua pagina delle opzioni, che
+ti spedirà la password ogni volta che lo premerai.
diff --git a/templates/it/unsub.txt b/templates/it/unsub.txt
new file mode 100644
index 00000000..94f3742e
--- /dev/null
+++ b/templates/it/unsub.txt
@@ -0,0 +1,24 @@
+Notifica di conferma rimozione dalla lista %(listname)s
+
+Abbiamo ricevuto una richiesta%(remote)s per la rimozione del tuo
+indirizzo email, "%(email)s" dalla mailing list %(listaddr)s.
+Per confermare che vuoi essere cancellato da questa lista,
+rispondi semplicemente a questo messaggio lasciando intatto
+l'oggetto. Oppure visita questa pagina:
+
+
+ %(confirmurl)s
+
+Oppure includi la riga seguente -- e solo quella -- in un messaggio
+indirizzato a %(requestaddr)s:
+
+ confirm %(cookie)s
+
+Nota che il semplice invio di un `reply' a questo messaggio dovrebbe
+essere sufficiente per la maggior parte dei programmi di lettura della
+posta, poiché questi lasciano normalmente inalterato l'oggetto
+(l'aggiunta di "Re:" non da problemi).
+
+Se non vuoi essere cancellato dalla lista, ignora questo messaggio.
+Se pensi che qualcuno stia cercando di farti uno scherzo o hai
+domande, parlane con %(listadmin)s.
diff --git a/templates/it/unsubauth.txt b/templates/it/unsubauth.txt
new file mode 100644
index 00000000..5493157b
--- /dev/null
+++ b/templates/it/unsubauth.txt
@@ -0,0 +1,11 @@
+La tua autorizzazione è richiesta per approvare una richiesta di
+cancellazione da una lista:
+
+ Da: %(username)s
+ Lista: %(listname)s@%(hostname)s
+
+Quando riterrai opportuno, visita:
+
+ %(admindb_url)s
+
+per elaborare la richiesta.
diff --git a/templates/it/userpass.txt b/templates/it/userpass.txt
new file mode 100644
index 00000000..cac5efe7
--- /dev/null
+++ b/templates/it/userpass.txt
@@ -0,0 +1,26 @@
+
+Tu o qualcuno che si è spacciato per te, avete richiesto un promemoria
+per la tua password di appartenenza alla lista %(fqdn_lname)s.
+Hai bisogno di questa password per cambiare le tue opzioni di
+iscrizione (ad esempio se vuoi la modalità digest) e l'uso di questa
+password ti rende la vita più semplice se ti vuoi cancellare dalla
+lista.
+
+Sei iscritto alla lista con l'indirizzo: %(user)s
+
+La tua password per la lista %(listname)s è: %(password)s
+
+Per fare variazioni alla tua iscrizione, inserisci la password nella
+pagina web delle tue opzioni:
+
+ %(options_url)s
+
+Puoi anche fare qualche variazione via email - invia un messaggio a:
+
+ %(requestaddr)s
+
+con la parola "help" nell'oggetto o nel testo, e riceverai una risposta
+contenente le istruzioni dettagliate.
+
+Domande o commenti? Scrivi all'amministratore della lista %(listname)s
+all'indirizzo %(owneraddr)s.
diff --git a/templates/it/verify.txt b/templates/it/verify.txt
new file mode 100644
index 00000000..fa20f160
--- /dev/null
+++ b/templates/it/verify.txt
@@ -0,0 +1,24 @@
+Notifica di conferma iscrizione alla lista %(listname)s
+
+Abbiamo ricevuto una richiesta%(remote)s di iscrizione del tuo
+indirizzo email, "%(email)s", alla mailing list %(listaddr)s.
+Per confermare che vuoi essere iscritto a questa lista, rispondi
+semplicemente a questo messaggio lasciando intatta la riga
+dell'oggetto. Oppure visita questa pagina:
+
+ %(confirmurl)s
+
+Oppure includi questa riga -- e solo quella -- in un messaggio
+indirizzato a %(requestaddr)s:
+
+ confirm %(cookie)s
+
+
+Nota che il semplice invio di un `reply' a questo messaggio dovrebbe
+essere sufficiente per la maggior parte dei programmi di lettura della
+posta, poiché questi lasciano normalmente inalterato l'oggetto
+(l'aggiunta di "Re:" non da problemi).
+
+Se non vuoi essere iscritto alla lista, ignora questo messaggio.
+Se pensi che qualcuno stia cercando di farti uno scherzo o hai
+domande, parlane con %(listadmin)s.
diff --git a/templates/ja/admindbdetails.html b/templates/ja/admindbdetails.html
new file mode 100644
index 00000000..655bddb3
--- /dev/null
+++ b/templates/ja/admindbdetails.html
@@ -0,0 +1,61 @@
+´ÉÍý¿½ÀÁ¤Ï¼¡¤Î2¤Ä¤ÎÊýË¡¤Çɽ¼¨¤µ¤ì¤Þ¤¹. <a href="%(summaryurl)s">
+Í×Ìó¥Ú¡¼¥¸</a>¤È<em>¾ÜºÙ</em>¥Ú¡¼¥¸¤Ç¤¹. Í×Ìó¥Ú¡¼¥¸¤Ë¤Ï, ÊÝα¤Ë
+¤Ê¤Ã¤Æ¤¤¤ëÆþ²ñ¤ÈÂà²ñ½èÍý¤Ë²Ã¤¨¤Æ, Á÷¿®¼Ô¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤Ç
+¥°¥ë¡¼¥×ʬ¤±¤µ¤ì¤¿ÊÝαÅê¹Æ¤¬É½¼¨¤µ¤ì¤Þ¤¹. ¾ÜºÙ¥Ú¡¼¥¸¤Ç¤Ï, ¤½¤ì¤¾¤ì
+¤ÎÊÝα¥á¡¼¥ë¤Î¾ÜºÙ¤Ä¤Þ¤ê, ¥á¡¼¥ë¤Î¥Ø¥Ã¥À¤ÎÁ´Éô¤ÈËÜʸ¤ÎÈ´½ñ¤­
+¤¬É½¼¨¤µ¤ì¤Þ¤¹.
+
+<p>¤É¤Á¤é¤Î¥Ú¡¼¥¸¤Ë¤â¼¡¤Î½èÍý¥á¥Ë¥å¡¼¤¬¤¢¤ê¤Þ¤¹:
+
+<ul>
+<li><b>ÊÝα</b> -- ·èÄê¤òÀè¤Ë±ä¤Ð¤¹¤¿¤á¤ËÊÝα¤·¤Þ¤¹.
+ ¤³¤Î»þÅÀ¤Ç¤Ï´ÉÍý¿½ÀÁ¤Î½èÍý¤Ï¹Ô¤¤¤Þ¤»¤ó¤¬, ÊÝᤵ¤ì¤¿Åê¹Æ¤Ë
+ ¤Ä¤¤¤Æ¤Ï, ¥á¡¼¥ë¤òžÁ÷¤·¤¿¤êÊݸ¤·¤¿¤ê¤Ç¤­¤Þ¤¹(²¼¤ò»²¾È).
+
+<p><li><b>¾µÇ§</b> -- Åê¹Æ¤ò¾µÇ§¤·, ¥ê¥¹¥È¤ØÁ÷¤ê¤Þ¤¹.
+ ÆþÂà²ñ¤Î¿½ÀÁ¤Ë´Ø¤·¤Æ¤Ï, ¤½¤ÎÊѹ¹¤ò¾µÇ§¤·¤Þ¤¹.
+
+<p><li><b>µñÈÝ</b> -- Åê¹Æ¤òµñÈݤ·, ¤½¤Î¤³¤È¤òÁ÷¿®¼Ô¤ËÄÌÃΤ·¤Þ¤¹.
+ ¤Þ¤¿, ¥ª¥ê¥¸¥Ê¥ë¤ÎÅê¹Æ¤ÏÇË´þ¤µ¤ì¤Þ¤¹. ÆþÂà²ñ¤Î¿½ÀÁ¤Ë´Ø¤·¤Æ¤Ï,
+ ¤½¤ÎÊѹ¹¤òµñÈݤ·¤Þ¤¹. ¤É¤Á¤é¤Î¾ì¹ç¤Ë¤â, ¥Æ¥­¥¹¥È¥Ü¥Ã¥¯¥¹¤Ë
+ µñÈݤÎÍýͳ¤ò½ñ¤­²Ã¤¨¤ë¤È¤è¤¤¤Ç¤·¤ç¤¦.
+
+<p><li><b>ÇË´þ</b> -- Åê¹Æ¥á¡¼¥ë¤òÅꤲ¼Î¤Æ, µñÈݤÎÄÌÃΤÏÁ÷¤ê¤Þ¤»¤ó.
+ ÆþÂà²ñ¿½ÀÁ¤Ë´Ø¤·¤Æ¤Ï, ñ¤Ë¿½ÀÁ¤òÇË´þ¤·, ¿½ÀÁ¤ò½Ð¤·¤¿¿Í¤Ø¤Î
+ ÄÌÃΤϹԤ¤¤Þ¤»¤ó. SPAM ¤ËÂФ·¤Æ¤Ï¤³¤ì¤ò»È¤¦¤È¤è¤¤¤Ç¤·¤ç¤¦.
+</ul>
+
+<p>ÊÝαÅê¹Æ¤Ë¤Ä¤¤¤Æ¤Ï, ¥µ¥¤¥È´ÉÍý¼Ô¤Î¤¿¤á¤Ë¥á¡¼¥ë¤Î¥³¥Ô¡¼¤ò
+Êݸ¤·¤è¤¦¤È»×¤Ã¤¿¤é, <b>Êݸ</b>¤Ë¥Á¥§¥Ã¥¯¤òÆþ¤ì¤Æ¤¯¤À¤µ¤¤.
+¤³¤ì¤Ï, ¥ê¥¹¥È¤ò°­ÍѤ·¤è¤¦¤È¤¹¤ë¥á¡¼¥ë¤òÇË´þ¤·¤¿¤¤¤¬, ¸å¤Î
+Ä´ºº¤Î¤¿¤á¤Ëµ­Ï¿¤ò»Ä¤¹É¬Íפ¬¤¢¤ë¾ì¹ç¤ËÍ­¸ú¤Ç¤¹.
+
+<p><b>žÁ÷</b>¥ª¥×¥·¥ç¥ó¤òÍ­¸ú¤Ë¤·¤Æ, žÁ÷Àè¥á¡¼¥ë¥¢¥É¥ì¥¹¤òµ­Æþ¤¹¤ë¤È,
+¥á¡¼¥ë¤ò狼¥ê¥¹¥È¤ËºÜ¤Ã¤Æ¤¤¤Ê¤¤¿Í¤Ë¤âžÁ÷¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹.
+ÊÝα¥á¡¼¥ë¤ò¥ê¥¹¥È¤ËÁ÷¤ëÁ°¤ËÊÔ½¸¤¹¤ë¤Ë¤Ï, ¥á¡¼¥ë¤ò¼«Ê¬¼«¿È(¤Þ¤¿¤Ï¥ê¥¹¥È
+´ÉÍý¿Í)¤ËžÁ÷¤·, ¥ª¥ê¥¸¥Ê¥ë¤Î¥á¡¼¥ë¤òÇË´þ¤¹¤ë¤È¤è¤¤¤Ç¤·¤ç¤¦.
+¤¹¤ë¤È, ¥á¡¼¥ë¤¬¼«Ê¬°¸¤Æ¤ËÃ夭¤Þ¤¹¤Î¤Ç, ¼«Ê¬¤ÇÊÔ½¸¤·, (ɬÍפʤé)
+<tt>Approved:</tt>¥Ø¥Ã¥À¤È¥ê¥¹¥È¤Î¥Ñ¥¹¥ï¡¼¥É¤òÉÕ¤±¤Æ, ¥ê¥¹¥È°¸¤Æ¤Ë
+ºÆÁ÷¤·¤Þ¤¹. ¤³¤Î¤È¤­, ËÜʸ¤Ë¼ê¤ò²Ã¤¨¤¿¤³¤È¤òºÆÁ÷¥á¡¼¥ë¤Ëµ­¤·¤Æ
+¤ª¤¯¤³¤È¤Ï¥Í¥Á¥±¥Ã¥È¤Ë¤«¤Ê¤Ã¤Æ¤¤¤ë¤Ç¤·¤ç¤¦.
+
+<p>¤â¤·Á÷¿®¼Ô¤¬¥ê¥¹¥È²ñ°÷¤Çȯ¸ÀÀ©¸Â¤ò¼õ¤±¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï,
+À©¸Â¥Õ¥é¥°¤ò¾Ã¤¹¤³¤È¤â¤Ç¤­¤Þ¤¹. ¤³¤Îµ¡Ç½¤Ï, ¿·Æþ²ñ°÷¤ò²¾ÅÐÏ¿¤È
+¤ß¤Ê¤·¤Æ¤¤¤ë¤¬, ´ÉÍý¼Ô¤¬¤³¤Î»þÅÀ¤Ç¤³¤Î²ñ°÷¤ò¿®Íê¤Ç¤­¤ë¤È¹Í¤¨,
+°Ê¸å¤ÎÅê¹Æ¤Ï¾µÇ§Ìµ¤·¤ËÅê¹Æ¤Ç¤­¤ë¤È¤¹¤ë¾ì¹ç¤ËÊØÍø¤Ç¤¹.
+
+<p>¤â¤·Á÷¿®¼Ô¤¬¥ê¥¹¥È²ñ°÷¤Ç¤Ê¤±¤ì¤Ð, ¤½¤Î¥¢¥É¥ì¥¹¤ò <em>Á÷¿®¼Ô
+¥Õ¥£¥ë¥¿¡¼</em> ¤ËÄɲ乤뤳¤È¤¬¤Ç¤­¤Þ¤¹. Á÷¿®¼Ô¥Õ¥£¥ë¥¿¡¼¤Ë¤Ä¤¤¤Æ
+¤Ï <a href="%(filterurl)s">Á÷¿®¼Ô¥Õ¥£¥ë¥¿¡¼¥×¥é¥¤¥Ð¥·¡¼¥Ú¡¼¥¸
+</a> ¤Ë½ñ¤¤¤Æ¤¢¤ê¤Þ¤¹¤¬, <b>auto-accept</b> (¾µÇ§) ¤Þ¤¿¤Ï,
+<b>auto-hold</b> (ÊÝα), <b>auto-reject</b> (µñÈÝ),
+<b>auto-discard</b> (ÇË´þ) ¤Î¤É¤ì¤«¤ËÀßÄꤷ¤Þ¤¹. ¤â¤·, Á÷¿®¼Ô¤¬
+´û¤ËÁ÷¿®¼Ô¥Õ¥£¥ë¥¿¡¼¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï, ¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï
+¸½¤ì¤Þ¤»¤ó.
+
+<p>ÀßÄê¤ò½ªÎ»¤·¤¿¤é, ¤³¤Î¥Ú¡¼¥¸¤ÎºÇ½é¤Þ¤¿¤ÏºÇ¸å¤Ë¤¢¤ë,
+<em>Á´ÉôÁ÷¿®</em>¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¤¯¤À¤µ¤¤.
+¤³¤Î¥Ü¥¿¥ó¤Ç, ¤¢¤Ê¤¿¤¬·èÄꤷ¤¿Á´¤Æ¤Î´ÉÍý¿½ÀÁ¤Ë¤Ä¤¤¤Æ, ÁªÂò¤·¤¿
+ưºî¤¬Á÷¿®¤µ¤ì¤Þ¤¹.
+
+<p><a href="%(summaryurl)s">Í×Ìó¥Ú¡¼¥¸¤ØÌá¤ë</a>.
diff --git a/templates/ja/admindbpreamble.html b/templates/ja/admindbpreamble.html
new file mode 100644
index 00000000..05debb14
--- /dev/null
+++ b/templates/ja/admindbpreamble.html
@@ -0,0 +1,12 @@
+¤³¤Î¥Ú¡¼¥¸¤Ë¤Ï,
+<em>%(listname)s</em>¥á¡¼¥ê¥ó¥°¥ê¥¹¥È
+¤Ë¤Ä¤¤¤Æ¾µÇ§¤òɬÍפȤ¹¤ë´ÉÍý¿½ÀÁ¤Î°ìÉô¤¬
+µ­¤µ¤ì¤Æ¤¤¤Þ¤¹.
+%(description)s ¤¬É½¼¨¤µ¤ì¤Æ¤¤¤Þ¤¹.
+
+<p>¤½¤ì¤¾¤ì¤Î´ÉÍý¿½ÀÁ¤Ë¤Ä¤¤¤Æ, ưºî¤òÁªÂò¤·¤Æ¤¯¤À¤µ¤¤.
+¤½¤ì¤¬¤Ç¤­¤¿¤é, <b>Á´ÉôÁ÷¿®</b> ¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¤¯¤À¤µ¤¤.
+<a href="%(detailsurl)s">¾Ü¤·¤¤ÀâÌÀ</a> ¤â¤¢¤ê¤Þ¤¹.
+
+<p>¤Þ¤¿, Á´¤Æ¤Î´ÉÍý¿½ÀÁ¤Î <a href="%(summaryurl)s">Í×Ìó¤ò¸«¤ë</a>
+¤³¤È¤â¤Ç¤­¤Þ¤¹.
diff --git a/templates/ja/admindbsummary.html b/templates/ja/admindbsummary.html
new file mode 100644
index 00000000..39ee213f
--- /dev/null
+++ b/templates/ja/admindbsummary.html
@@ -0,0 +1,13 @@
+¤³¤Î¥Ú¡¼¥¸¤Ë¤Ï,
+<a href="%(adminurl)s"><em>%(listname)s</em>¥á¡¼¥ê¥ó¥°¥ê¥¹¥È</a>
+¤Ë¤Ä¤¤¤Æ¾µÇ§¤òɬÍפȤ¹¤ë´ÉÍý¿½ÀÁ¤Ë¤Ä¤¤¤ÆÍ×Ìó¤¬
+µ­¤µ¤ì¤Æ¤¤¤Þ¤¹.
+¤Þ¤º, ¾µÇ§ÂÔ¤Á¤ÎÆþ²ñ¡¦Âà²ñ¿½ÀÁ¤¬¤¢¤ì¤Ðɽ¼¨¤µ¤ì¤Þ¤¹.
+¼¡¤Ë, ¾µÇ§¤ò¼õ¤±¤ë¤¿¤áÊÝᤵ¤ì¤Æ¤¤¤ëÅê¹Æ¤¬É½¼¨¤µ¤ì¤Þ¤¹.
+
+<p>¤½¤ì¤¾¤ì¤Î´ÉÍý¿½ÀÁ¤Ë¤Ä¤¤¤Æ, ưºî¤òÁªÂò¤·¤Æ¤¯¤À¤µ¤¤.
+¤½¤ì¤¬¤Ç¤­¤¿¤é, <b>Á´ÉôÁ÷¿®</b> ¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¤¯¤À¤µ¤¤.
+<a href="%(detailsurl)s">¾Ü¤·¤¤ÀâÌÀ</a> ¤â¤¢¤ê¤Þ¤¹.
+
+<p>¤Þ¤¿, ÊÝαÅê¹Æ¤Î <a href="%(viewallurl)s">¾ÜºÙ¤ò¸«¤ë</a>
+¤³¤È¤â¤Ç¤­¤Þ¤¹.
diff --git a/templates/ja/adminsubscribeack.txt b/templates/ja/adminsubscribeack.txt
new file mode 100644
index 00000000..b033bb08
--- /dev/null
+++ b/templates/ja/adminsubscribeack.txt
@@ -0,0 +1,3 @@
+%(member)s ¤µ¤ó¤Î %(listname)s ¤Ø¤ÎÆþ²ñ¼ê³¤­¤¬´°Î»¤·¤Þ¤·¤¿.
+
+
diff --git a/templates/ja/adminunsubscribeack.txt b/templates/ja/adminunsubscribeack.txt
new file mode 100644
index 00000000..ea6ad03d
--- /dev/null
+++ b/templates/ja/adminunsubscribeack.txt
@@ -0,0 +1,2 @@
+%(member)s ¤µ¤ó¤Î %(listname)s ¤«¤é¤ÎÂà²ñ¼ê³¤­¤¬´°Î»¤·¤Þ¤·¤¿.
+
diff --git a/templates/ja/admlogin.html b/templates/ja/admlogin.html
new file mode 100644
index 00000000..9c83cd48
--- /dev/null
+++ b/templates/ja/admlogin.html
@@ -0,0 +1,39 @@
+<html>
+<head>
+ <title>%(listname)s %(who)s ǧ¾Ú</title>
+</head>
+<body bgcolor="#ffffff">
+<FORM METHOD=POST ACTION="%(path)s">
+%(message)s
+ <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1">%(listname)s %(who)s
+ ǧ¾Ú</FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <TD><div ALIGN="Right">¥ê¥¹¥È %(who)s ¥Ñ¥¹¥ï¡¼¥É:</div></TD>
+ <TD><INPUT TYPE="password" NAME="adminpw" SIZE="30"></TD>
+ </tr>
+ <tr>
+ <td colspan=2 align=middle><INPUT type="SUBMIT"
+ name="admlogin"
+ value="¥í¥°¥¤¥ó...">
+ </td>
+ </tr>
+ </TABLE>
+ <p><strong><em>½ÅÍ×:</em></strong>
+ ¤³¤³¤«¤éÀè¤Ï¥Ö¥é¥¦¥¶¤Î¥¯¥Ã¥­¡¼¤òÍ­¸ú¤Ë¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹.
+ ¤Ç¤Ê¤¤¤È´ÉÍýÀßÄê¤ÎÊѹ¹¤ÏÍ­¸ú¤Ë¤Ê¤ê¤Þ¤»¤ó.
+
+ <p>¥»¥Ã¥·¥ç¥ó¥¯¥Ã¥­¡¼¤Ï Mailman ¤Î´ÉÍý¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç »ÈÍѤµ¤ì¤Þ¤¹¡¥
+ ½¾¤Ã¤Æ´ÉÍýÁàºî¤ò¤¹¤ë¤¿¤Ó¤ËºÆÇ§¾Ú¤ò¤ª¤³¤Ê¤¦ ɬÍפ¬¤Ê¤¯¤Ê¤ê¤Þ¤¹¡¥
+ ¤³¤Î¥¯¥Ã¥­¡¼¤Ï¥Ö¥é¥¦¥¶¤ò½ªÎ»¤·¤¿»þ¡¤ ¤¢¤ë¤¤¤Ï¡¤ÌÀ¼¨Åª¤Ë<em>¥í¥°¥¢¥¦¥È</em>
+ ¤ò¥¯¥ê¥Ã¥¯¤·¤¿ »þ¤Ë¼«Æ°Åª¤Ë̵¸ú¤Ë¤Ê¤ê¤Þ¤¹¡¥
+ (¥í¥°¥¢¥¦¥È¥ê¥ó¥¯¤Ïǧ¾Ú¤¬ ´°Î»¤·¤Æ¤¤¤ì¤Ð<em>¾¤Î´ÉÍý¹àÌÜ</em>
+ ¤Î²¼¤Î¤Û¤¦¤Ë½Ð¤Æ¤­¤Þ¤¹).
+
+</FORM>
+</body>
+</html>
diff --git a/templates/ja/approve.txt b/templates/ja/approve.txt
new file mode 100644
index 00000000..c92a991c
--- /dev/null
+++ b/templates/ja/approve.txt
@@ -0,0 +1,17 @@
+¤¢¤Ê¤¿¤Î %(requestaddr)s ¤Ø¤Î¿½ÀÁ:
+
+ %(cmd)s
+
+¤ò, ¥ê¥¹¥È´ÉÍý¼Ô¤ØÅ¾Á÷¤·¤Þ¤·¤¿.
+
+¤³¤ì¤Ï¤¢¤Ê¤¿¤¬(¿ʬ)'Êĺ¿'¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ËÆþ²ñ¤·¤è¤¦¤È
+¤·¤¿¤¿¤á¤È»×¤ï¤ì¤Þ¤¹.
+
+¤¢¤Ê¤¿¤ÎÆþ²ñ¿½ÀÁ¤Ï´ÉÍý¼Ô¤Î·èºÑ¤¬²¼¤ê¼¡Âè, ¥á¡¼¥ë¤Ç·èÄê
+ÄÌÃΤ¬ÆÏ¤¯¤Ç¤·¤ç¤¦.
+
+¥ê¥¹¥È´ÉÍý¼Ô¤Î¥Ý¥ê¥·¡¼¤Ë¤Ä¤¤¤Æ¤Î¼ÁÌä¤Ï,
+
+ %(adminaddr)s
+
+°¸¤Æ¤Ë¤ª´ê¤¤¤·¤Þ¤¹.
diff --git a/templates/ja/archidxentry.html b/templates/ja/archidxentry.html
new file mode 100644
index 00000000..f9bb57aa
--- /dev/null
+++ b/templates/ja/archidxentry.html
@@ -0,0 +1,4 @@
+<LI><A HREF="%(filename)s">%(subject)s
+</A><A NAME="%(sequence)i">&nbsp;</A>
+<I>%(author)s
+</I>
diff --git a/templates/ja/archidxfoot.html b/templates/ja/archidxfoot.html
new file mode 100644
index 00000000..17dd87bd
--- /dev/null
+++ b/templates/ja/archidxfoot.html
@@ -0,0 +1,21 @@
+ </ul>
+ <p>
+ <a name="end"><b>ºÇ¿·µ­»ö¤ÎÆüÉÕ:</b></a>
+ <i>%(lastdate)s</i><br>
+ <b>½ñ¸ËºîÀ®Æü»þ:</b> <i>%(archivedate)s</i>
+ <p>
+ <ul>
+ <li> <b>Ìܼ¡¤Î½ç:</b>
+ %(thread_ref)s
+ %(subject_ref)s
+ %(author_ref)s
+ %(date_ref)s
+ <li><b><a href="%(listinfo)s">¤³¤Î¥ê¥¹¥È¤Î°ÆÆâ...
+ </a></b></li>
+ </ul>
+ <p>
+ <hr>
+ <i>¤³¤ÎÊݸ½ñ¸Ë¤Ï
+ Pipermail %(version)s ¤ÇºîÀ®¤µ¤ì¤Þ¤·¤¿.</i>
+ </BODY>
+</HTML>
diff --git a/templates/ja/archidxhead.html b/templates/ja/archidxhead.html
new file mode 100644
index 00000000..001241a7
--- /dev/null
+++ b/templates/ja/archidxhead.html
@@ -0,0 +1,24 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+ <HEAD>
+ <title>%(listname)s %(archive)s Êݸ½ñ¸Ë %(archtype)s</title>
+ <META NAME="robots" CONTENT="noindex,follow">
+ %(encoding)s
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <a name="start"></A>
+ <h1>%(archive)s Êݸ½ñ¸Ë %(archtype)s</h1>
+ <ul>
+ <li> <b>Ìܼ¡¤Î½ç:</b>
+ %(thread_ref)s
+ %(subject_ref)s
+ %(author_ref)s
+ %(date_ref)s
+
+ <li><b><a href="%(listinfo)s">¤³¤Î¥ê¥¹¥È¤Î°ÆÆâ...
+ </a></b></li>
+ </ul>
+ <p><b>³«»Ï:</b> <i>%(firstdate)s</i><br>
+ <b>ºÇ½ª:</b> <i>%(lastdate)s</i><br>
+ <b>µ­»ö¿ô:</b> %(size)s<p>
+ <ul>
diff --git a/templates/ja/archlistend.html b/templates/ja/archlistend.html
new file mode 100644
index 00000000..9bc052dd
--- /dev/null
+++ b/templates/ja/archlistend.html
@@ -0,0 +1 @@
+ </table>
diff --git a/templates/ja/archliststart.html b/templates/ja/archliststart.html
new file mode 100644
index 00000000..81d326b5
--- /dev/null
+++ b/templates/ja/archliststart.html
@@ -0,0 +1,4 @@
+ <table border=3>
+ <tr><td>½ñê</td>
+ <td>ʤٽç:</td>
+ <td>¥À¥¦¥ó¥í¡¼¥ÉÈÇ</td></tr>
diff --git a/templates/ja/archtoc.html b/templates/ja/archtoc.html
new file mode 100644
index 00000000..f647724d
--- /dev/null
+++ b/templates/ja/archtoc.html
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+ <HEAD>
+ <title>%(listname)s Êݸ½ñ¸Ë</title>
+ <META NAME="robots" CONTENT="noindex,follow">
+ %(meta)s
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <h1>%(listname)s Êݸ½ñ¸Ë</h1>
+ <p>
+ <a href="%(listinfo)s">¤³¤Î¥ê¥¹¥È¤Î°ÆÆâ</a> *
+ <a href="%(fullarch)s">Á´Éô¤Î¥á¡¼¥ë¤òmbox·Á¼°¤Ç¥À¥¦¥ó¥í¡¼¥É</a>
+ (%(size)s).
+ </p>
+ %(noarchive_msg)s
+ %(archive_listing_start)s
+ %(archive_listing)s
+ %(archive_listing_end)s
+ </BODY>
+ </HTML>
diff --git a/templates/ja/archtocentry.html b/templates/ja/archtocentry.html
new file mode 100644
index 00000000..4fd7b12f
--- /dev/null
+++ b/templates/ja/archtocentry.html
@@ -0,0 +1,12 @@
+
+ <tr>
+ <td>%(archivelabel)s:</td>
+ <td>
+ <A href="%(archive)s/thread.html">[ ¥¹¥ì¥Ã¥É ]</a>
+ <A href="%(archive)s/subject.html">[ ·ï̾ ]</a>
+ <A href="%(archive)s/author.html">[ ȯ¿®¼Ô ]</a>
+ <A href="%(archive)s/date.html">[ ÆüÉÕ ]</a>
+ </td>
+ %(textlink)s
+ </tr>
+
diff --git a/templates/ja/article.html b/templates/ja/article.html
new file mode 100644
index 00000000..6d8febe8
--- /dev/null
+++ b/templates/ja/article.html
@@ -0,0 +1,50 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+ <HEAD>
+ <TITLE> %(title)s
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:%(email_url)s?Subject=%(subject_url)s&In-Reply-To=%(in_reply_to_url)s">
+ <META NAME="robots" CONTENT="index,nofollow">
+ %(encoding)s
+ %(prev)s
+ %(next)s
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>%(subject_html)s</H1>
+ <B>%(author_html)s</B>
+ <A HREF="mailto:%(email_url)s?Subject=%(subject_url)s&In-Reply-To=%(in_reply_to_url)s"
+ TITLE="%(subject_html)s">%(email_html)s
+ </A><BR>
+ <I>%(datestr_html)s</I>
+ <P><UL>
+ %(prev_wsubj)s
+ %(next_wsubj)s
+ <LI> <B>µ­»ö¤Îʤӽç:</B>
+ <a href="date.html#%(sequence)s">[ ÆüÉÕ ]</a>
+ <a href="thread.html#%(sequence)s">[ ¥¹¥ì¥Ã¥É ]</a>
+ <a href="subject.html#%(sequence)s">[ ·ï̾ ]</a>
+ <a href="author.html#%(sequence)s">[ Ãø¼Ô ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+%(body)s
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ %(prev_wsubj)s
+ %(next_wsubj)s
+ <LI> <B>µ­»ö¤Îʤӽç:</B>
+ <a href="date.html#%(sequence)s">[ ÆüÉÕ ]</a>
+ <a href="thread.html#%(sequence)s">[ ¥¹¥ì¥Ã¥É ]</a>
+ <a href="subject.html#%(sequence)s">[ ·ï̾ ]</a>
+ <a href="author.html#%(sequence)s">[ Ãø¼Ô ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="%(listurl)s">%(listname)s ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Î°ÆÆâ
+</a><br>
+</body></html>
diff --git a/templates/ja/bounce.txt b/templates/ja/bounce.txt
new file mode 100644
index 00000000..6314897c
--- /dev/null
+++ b/templates/ja/bounce.txt
@@ -0,0 +1,12 @@
+¤³¤ì¤Ï Mailman ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ÎÇÛÁ÷ÉÔ²ÄÄÌÃΤǤ¹.
+
+ ¥ê¥¹¥È: %(listname)s
+ ²ñ°÷: %(addr)s
+ Á¼ÃÖ: ²ñ°÷¤Ø¤ÎÇÛÁ÷¤ò %(negative)s%(did)s.
+ Íýͳ: ²á¾êËô¤ÏÃ×̿ŪÇÛÁ÷ÉÔ²Ä.
+ %(but)s
+
+%(reenable)s
+ºÇ½ª¤ÎÇÛÁ÷ÉÔ²ÄÄÌÃΤò°Ê²¼¤ËźÉÕ¤·¤Þ¤¹.
+
+¼ÁÌ䤬¤¢¤ì¤Ð¡¤Mailman ´ÉÍý¼Ô %(owneraddr)s ¤ËÏ¢Íí¤·¤Æ¤¯¤À¤µ¤¤.
diff --git a/templates/ja/checkdbs.txt b/templates/ja/checkdbs.txt
new file mode 100644
index 00000000..4f1f46a9
--- /dev/null
+++ b/templates/ja/checkdbs.txt
@@ -0,0 +1,9 @@
+ %(real_name)s@%(host_name)s ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ç¤Ï %(count)d ·ï
+¤Î¿½ÀÁ¤¬
+
+ %(adminDB)s
+
+¤ËÍè¤Æ¤ª¤ê¡¤¤¢¤Ê¤¿¤Î·èºÑ¤òÂԤäƤª¤ê¤Þ¤¹.
+
+¤Ç¤­¤ë¤À¤±Áá¤á¤ÎÅÔ¹ç¤ÎÎɤ¤¤È¤­¤Ë½èÍý¤ò¤ª´ê¤¤¤·¤Þ¤¹¡¥
+¤³¤Î̤½èÍý°Æ·ï¤ÎÄÌÃΤϡ¤É¬Íפ¬¤¢¤ì¤Ð¡¤ËèÆüÁ÷¿®¤µ¤ì¤Þ¤¹¡¥
diff --git a/templates/ja/convert.txt b/templates/ja/convert.txt
new file mode 100644
index 00000000..7837371e
--- /dev/null
+++ b/templates/ja/convert.txt
@@ -0,0 +1,33 @@
+%(listname)s ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ï¸½ºßÂç²þÂ¤Ãæ¤Ç¤¹.
+¤Ä¤Þ¤ê, ¿·¤·¤¤¥á¡¼¥ê¥ó¥°¥ê¥¹¥È´ÉÍý¥×¥í¥°¥é¥à "Mailman" ¤ò»È¤Ã¤Æ¤ª¤ê¤Þ¤¹.
+¤³¤ì¤Ë¤è¤ê, º£¤Þ¤Ç¤Î´ÉÍý¾å¤ÎÍÍ¡¹¤ÎÌäÂ꤬²ò·è¤µ¤ì¤ë¤â¤Î¤È´õ˾¤·¤Æ¤ª¤ê¤Þ¤¹¡¥
+
+¤É¤ó¤Ê±Æ¶Á¤¬¤¢¤ë¤Î¤Ç¤·¤ç¤¦¡©
+
+1) ¥ê¥¹¥ÈÁ´°÷¤Ø¤Î¥á¡¼¥ë¤Ï
+ %(listaddr)s
+°¸¤Æ¤ËÁ÷¤Ã¤Æ²¼¤µ¤¤.
+
+2) ¤¢¤Ê¤¿¤ÏǤ°Õ¤Î¥Ñ¥¹¥ï¡¼¥É¤òÀßÄꤷ, ¾¿Í¤¬¤³¤Ã¤½¤ê¤¢¤Ê¤¿¤òÂà²ñ¤µ¤»¤Æ¤·¤Þ¤¦
+¤è¤¦¤Ê¤³¤È¤òËɤ°¤³¤È¤¬¤Ç¤­¤Þ¤¹. ¥Ñ¥¹¥ï¡¼¥É¤ÏÊ̤Υ᡼¥ë¤ÇÁ÷¤é¤ì¤Þ¤¹¤Î¤Ç,
+´û¤Ë¼õ¤±¤È¤Ã¤Æ¤ª¤é¤ì¤ë¤Ç¤·¤ç¤¦. ¤â¤·, ¥Ñ¥¹¥ï¡¼¥É¤ò˺¤ì¤¿¤È¤·¤Æ¤â¿´ÇÛ¤¹¤ë
+ɬÍפϤ¢¤ê¤Þ¤»¤ó. Ëè·î¥Ñ¥¹¥ï¡¼¥É¤ò¤¢¤Ê¤¿¤ËÃΤ餻¤ë¤è¤¦¤Ë¤Ê¤Æ¤¤¤Þ¤¹.
+
+3) ¤â¤·, WWW ¤Ø¥¢¥¯¥»¥¹¤Ç¤­¤ë¤Ê¤é, ¥ê¥¹¥È¤«¤é¤ÎÂà²ñ, ¡Ö¤Þ¤È¤áÆÉ¤ß¡×¥â¡¼¥É
+¤Ø¤ÎÀÚ¤êÂØ¤¨, ²áµî¥í¥°¤Î»²¾È¤Ê¤É¤¬ Web ¥Ö¥é¥¦¥¶¤Ç¤Ç¤­¤Þ¤¹.
+Web ¥¢¥É¥ì¥¹¤Ï°Ê²¼¤Î¤È¤ª¤ê¤Ç¤¹.
+
+ %(listinfo_url)s
+
+4) ¤â¤· WWW ¤Ø¥¢¥¯¥»¥¹¤Ç¤­¤Ê¤¤¾ì¹ç¤Ë¤Ï, ¥á¡¼¥ë¤ò»È¤Ã¤ÆÆ±¤¸¤³¤È¤¬¤Ç¤­¤Þ¤¹.
+ËÜʸ¤Þ¤¿¤Ï·ï̾¤Ë help ¤È½ñ¤¤¤¿¥á¡¼¥ë¤ò
+ %(requestaddr)s
+°¸¤Æ¤ËÁ÷¤Ã¤Æ²¼¤µ¤¤. ¼«Æ°ÊÖ¿®¤Ë¤è¤Ã¤Æ, ¼¡¤Ë¤É¤¦¤·¤¿¤é¤è¤¤¤«¤Î¥á¡¼¥ë¤¬ÆÏ¤±¤é¤ì¤Þ¤¹.
+
+¤³¤Î¿·¤·¤¤ÀßÄê¤Ë¤Ä¤¤¤Æ¤Î¼ÁÌä¤äÌäÂêÅÀ¤Ë¤Ä¤¤¤Æ¤Ï
+ %(adminaddr)s
+¤Þ¤Ç¤ª´ê¤¤¤·¤Þ¤¹.
+
+¤³¤Î¥á¡¼¥ë¤Ï Mailman %(version)s ¤Ç¼«Æ°È¯¿®¤µ¤ì¤¿¤â¤Î¤Ç¤¹.
+Mailman ¤Ë¤Ä¤¤¤Æ¤â¤Ã¤ÈÃΤꤿ¤¤¾ì¹ç¤Ë¤Ï, Mailman ¥Û¡¼¥à¥Ú¡¼¥¸
+http://www.list.org/ ¤ò¤´Í÷¤¯¤À¤µ¤¤.
diff --git a/templates/ja/cronpass.txt b/templates/ja/cronpass.txt
new file mode 100644
index 00000000..38542ec5
--- /dev/null
+++ b/templates/ja/cronpass.txt
@@ -0,0 +1,16 @@
+¤³¤Î¥á¡¼¥ë¤Ï %(hostname)s ¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ç·î£±²óÁ÷¿®¤µ¤ì¤ë
+¤ªÃΤ餻¤Ç¤¹. ÀßÄêÊѹ¹¤äÂà²ñ¤ÎºÝ¤Ë»ÈÍѤ¹¤ë²ñ°÷¾ðÊ󤬽ñ¤«¤ì¤Æ¤¤¤Þ¤¹.
+
+°Ê²¼¤Î URL ¤Ç²ñ°÷¤Î¾õÂÖ¤äÀßÄꡤ¤Ä¤Þ¤ê¡¤Âà²ñ¡¤¤Þ¤È¤áÆÉ¤ß¤Î
+¥¹¥¿¥¤¥ë¡¦ÀßÄê¤Ê¤É¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹.
+
+URL¤Ë¤è¤ë¤Ð¤«¤ê¤Ç¤Ê¤¯, ÅŻҥ᡼¥ë¤ò»ÈÍѤ·¤Æ¤â¾å¤ÎÀßÄêÊѹ¹¤ò
+¤ª¤³¤Ê¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹. ¾Ü¤·¤¯¤Ï, ¥ê¥¹¥È¤Ë '-request'
+¤òÉÕ¤±¤¿¥¢¥É¥ì¥¹¤Ë°¸¤Æ¤Æ (Î㤨¤Ð %(exreq)s )
+'help' ¤ò¥á¡¼¥ëËÜʸ¤ËÆþ¤ì¤ÆÁ÷¿®¤·¤Æ¤¯¤À¤µ¤¤.
+ÊýË¡¤òµ­ºÜ¤·¤¿¥á¡¼¥ë¤¬ÆÏ¤­¤Þ¤¹.
+
+¤â¤·¼ÁÌ䡤ÌäÂꡤ¥³¥á¥ó¥È¤Ê¤É¤¬¤¢¤ê¤Þ¤·¤¿¤é
+%(owner)s ¤Þ¤Ç¤ª´ó¤»¤¯¤À¤µ¤¤.
+
+%(useraddr)s ¤Î¥Ñ¥¹¥ï¡¼¥É:
diff --git a/templates/ja/disabled.txt b/templates/ja/disabled.txt
new file mode 100644
index 00000000..d8568bca
--- /dev/null
+++ b/templates/ja/disabled.txt
@@ -0,0 +1,25 @@
+¤¢¤Ê¤¿¤Î %(listname)s ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È²ñ°÷¸¢¤Ï,
+%(reason)s °ì»þÄä»ß¤µ¤ì¤Æ¤¤¤Þ¤¹.
+¤¢¤Ê¤¿¤¬Ää»ß²ò½ü¤ÎÁàºî¤ò¤·¤Ê¤¤¤«¤®¤ê, ¤³¤Î¥ê¥¹¥È¤Î¥á¡¼¥ë¤ò
+¼õ¤±¼è¤ì¤Þ¤»¤ó. ¤¢¤È, %(noticesleft)s ²ó, ¤³¤ì¤ÈƱ¤¸ÄÌÃΤò
+ȯÁ÷¤·¤Þ¤¹¤¬, ¤½¤ì°Ê¹ß¤ÏÂà²ñÁ¼ÃÖ¤ò¤È¤é¤»¤Æ¤¤¤¿¤À¤­¤Þ¤¹.
+
+Ää»ß²ò½ü¤ò¤¹¤ë¤Ë¤Ï, ¤³¤Î¥á¡¼¥ë¤ËÊÖ¿® (⤷, Subject: ¹Ô
+¤ò¤½¤Î¤Þ¤Þ¤Ç) ¤¹¤ë¤«, ¤Þ¤¿¤Ï°Ê²¼¤Î³Îǧ¥Ú¡¼¥¸¤Ø¥¢¥¯¥»¥¹
+¤·¤Æ¤¯¤À¤µ¤¤.
+
+ %(confirmurl)s
+
+¤Þ¤¿, ¤¢¤Ê¤¿¤Î²ñ°÷¥ª¥×¥·¥ç¥ó¥Ú¡¼¥¸¤Ï°Ê²¼¤Ë¤¢¤ê¤Þ¤¹.
+
+ %(optionsurl)s
+
+²ñ°÷¥ª¥×¥·¥ç¥ó¥Ú¡¼¥¸¤Ç¤Ï, ¥á¡¼¥ë¥¢¥É¥ì¥¹¤ÎÊѹ¹¤ä¤Þ¤È¤áÆÉ¤ß¤ò
+¤¹¤ë¤«¤Ê¤É¤ÎÇÛÁ÷¥ª¥×¥·¥ç¥ó¤òÀßÄê¤Ç¤­¤Þ¤¹. ǰ¤Î¤¿¤á, ¤¢¤Ê¤¿¤Î
+¥Ñ¥¹¥ï¡¼¥É¤Ï°Ê²¼¤Î¤È¤ª¤ê¤Ç¤¹.
+
+ %(password)s
+
+ÌäÂê¤ä¼ÁÌ䤬¤¢¤ì¤Ð, ¥ê¥¹¥È´ÉÍý¼Ô¤Ø¥á¡¼¥ë¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤.
+
+ %(owneraddr)s
diff --git a/templates/ja/emptyarchive.html b/templates/ja/emptyarchive.html
new file mode 100644
index 00000000..587ba2c3
--- /dev/null
+++ b/templates/ja/emptyarchive.html
@@ -0,0 +1,16 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+ <HEAD>
+ <title>%(listname)s Êݸ½ñ¸Ë</title>
+ <META NAME="robots" CONTENT="noindex,follow">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <h1>%(listname)s Êݸ½ñ¸Ë </h1>
+ <p>
+ ¤³¤Î¥ê¥¹¥È¤Ë¤Ï, ¤Þ¤ÀÅê¹Æ¤¬¤¢¤ê¤Þ¤»¤ó. ¤·¤¿¤¬¤Ã¤Æ,
+ Êݸ½ñ¸Ë¤Ï¶õ¤Ã¤Ý¤Ç¤¹. <a href="%(listinfo)s">
+ ¥ê¥¹¥È¤Ë´Ø¤¹¤ë¾ðÊó¤Ï¤³¤Á¤é</a>
+ ¤Ë¤¢¤ê¤Þ¤¹.
+ </p>
+ </BODY>
+ </HTML>
diff --git a/templates/ja/headfoot.html b/templates/ja/headfoot.html
new file mode 100644
index 00000000..64543306
--- /dev/null
+++ b/templates/ja/headfoot.html
@@ -0,0 +1,28 @@
+¤³¤Îʸ¾Ï¤Ë¤Ï
+<a href="http://www.python.org/doc/current/lib/typesseq-strings.html">
+Python ¤ÎÃÖ¤­´¹¤¨Ê¸»úÎó</a>¤ò»È¤Ã¤Æ¡¢¥ê¥¹¥È¤Î°À­¤ËÃÖ¤­´¹¤¨¤ë
+¤³¤È¤¬¤Ç¤­¤ëʸ»úÎó¤òÆþ¤ì¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹.
+ÊØÍø¤Ê°À­¤È¤·¤Æ¤Ï¡¤°Ê²¼¤Î¤è¤¦¤Ê¤â¤Î¤¬¤¢¤ê¤Þ¤¹¡¥
+
+<ul>
+ <li><b><code>real_name</code></b> - ¥ê¥¹¥È¤Î¡Ö¤­¤ì¤¤¤Ê¡×̾Á°;
+ ÉáÄ̤ÏÂçʸ»ú¤ÎÆþ¤Ã¤¿¥ê¥¹¥È¤Î̾Á°¤Ë¤Ê¤ê¤Þ¤¹¡¥
+
+ <li><b><code>list_name</code></b> - URL ¤ÎÃæ¤Ç¥ê¥¹¥È¤¬¼±Ê̤µ¤ì¤ë
+ ̾Á°¡¥¤³¤³¤Ç¡¤Âç/¾®Ê¸»ú¤Î°ã¤¤¤Ï¶èÊ̤µ¤ì¤Þ¤¹¡¥(¸ß´¹À­¤Î¤¿¤á,
+ <code>_internal_name</code>¤Ç¤âƱ¤¸¤Ë¤Ê¤ê¤Þ¤¹)
+
+ <li><b><code>host_name</code></b> - ¥ê¥¹¥È¥µ¡¼¥Ð¡¼¤¬ºîư¤¹¤ë¥Û¥¹¥È¤Î
+ Àµ¼°¤Î¥É¥á¥¤¥ó̾(FQDN).
+
+ <li><b><code>web_page_url</code></b> - Mailman ¤Î´ðËÜ URL.
+ Î㤨¤Ð <em><code>listinfo/%(internal_name)s</code></em> ¤òÉÕ¤±²Ã¤¨¤ë¤È
+ ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Î°ÆÆâ¥Ú¡¼¥¸¤Ë¤Ê¤ê¤Þ¤¹¡¥
+
+ <li><b><code>description</code></b> - ¤³¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Îû¤¤
+ ÀâÌÀʸ.
+
+ <li><b><code>info</code></b> - ¤³¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ÎŤ¤ÀâÌÀʸ.
+
+ <li><b><code>cgiext</code></b> - CGI¥¹¥¯¥ê¥×¥È¤ËÉղ䵤ì¤ë³ÈÄ¥»Ò.
+</ul>
diff --git a/templates/ja/help.txt b/templates/ja/help.txt
new file mode 100644
index 00000000..daa5682c
--- /dev/null
+++ b/templates/ja/help.txt
@@ -0,0 +1,37 @@
+%(listname)s ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Î¥Ø¥ë¥×:
+
+¤³¤ì¤Ï, ¥ê¥¹¥È´ÉÍý¥×¥í¥°¥é¥à Mailman Âè %(version)s ÈÇ
+¤Î¥á¡¼¥ë¥³¥Þ¥ó¥É¥Ø¥ë¥×¤Ç¤¹. °Ê²¼¤Ë¤¢¤²¤¿¥³¥Þ¥ó¥É¤ò»È¤Ã¤Æ¡¤
+Mailman ¥ê¥¹¥È¤ËÅÐÏ¿¤µ¤ì¤¿¾ðÊó¤ò¼è¤ê½Ð¤·¤¿¤ê¡¤¤¢¤Ê¤¿¼«¿È¤Î
+²ñ°÷ÀßÄê¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡¥¥³¥Þ¥ó¥É¤Ï¡Ö·ï̾¡×
+¡ÖËÜʸ¡×¤Î¤É¤Á¤é¤Ë½ñ¤¯¤³¤È¤â¤Ç¤­¤Þ¤¹¡¥
+
+°Ê²¼¤Î¥³¥Þ¥ó¥É¤Î¤Û¤È¤ó¤É¤Ï WWW ¤Ç¤â¤Ç¤­¤Þ¤¹¡¥
+
+ %(listinfo_url)s
+
+ÆÃ¤Ë¡¤Web ¤ò»È¤Ã¤ÆÇÛÁ÷¥¢¥É¥ì¥¹¤Ë¤¢¤Æ¤Æ¥Ñ¥¹¥ï¡¼¥É¤òÁ÷¤Ã¤Æ
+¤â¤é¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡¥
+
+<ÌõÃí> Mailman ¤Ï Web ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤òÍ¥À褷¤ÆÀ߷פµ¤ì¤Æ
+¤¤¤Þ¤¹. °Ê²¼¤Î¥á¡¼¥ë¥³¥Þ¥ó¥É¤ò»È¤¦¤è¤ê¤â, ¾å¤Î URL ¤Ç,
+¤¢¤Ê¤¿¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤òÆþÎϤ·¤Æ¥ª¥×¥·¥ç¥ó¤ÎÀßÄê¤ä,
+ÆþÂà²ñ¤¹¤ë¤Û¤¦¤¬Áᤤ¤È»×¤¤¤Þ¤¹. </ÌõÃí>
+
+¥ê¥¹¥È¸ÇÍ­¤Î¥³¥Þ¥ó¥É (subscribe, who, Åù) ¤Ï¤½¤Î¥ê¥¹¥È¤Î
+*-request ¥¢¥É¥ì¥¹¤ËÁ÷¤ê¤Þ¤¹¡¥Î㤨¤Ð¡¤'mailman' ¤È¤¤¤¦
+¥ê¥¹¥È¤Ç¤¢¤ì¤Ð 'mailman-request@...' ¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹.
+
+°Ê²¼¤Îµ­½Ò¤ÎÃæ¤Ç <> ¤ËÆþ¤Ã¤¿Ã±¸ì¤Ïɬ¿Ü¤Î¹àÌܤǤ¹¡¥
+¤Þ¤¿ [] ¤Ï¥ª¥×¥·¥ç¥ó¤Ç¤¹¡¥<>[] ¤Îʸ»ú¤Ï¥³¥Þ¥ó¥É¤ËÆþ¤ì¤Æ¤Ï
+¤¤¤±¤Þ¤»¤ó¡¥
+
+°Ê²¼¤Î¥³¥Þ¥ó¥É¤¬Í­¸ú¤Ç¤¹:
+
+ %(commands)s
+
+¥³¥Þ¥ó¥É¤Ï %(requestaddr)s ¤ØÁ÷¤Ã¤Æ²¼¤µ¤¤¡¥
+
+¼ÁÌä¤ä´Ø·¸¤¹¤ë¿Í¤ËÃí°Õ¤·¤¿¤¤¤³¤È¤¬¤¢¤ì¤Ð
+ %(adminaddr)s
+¤ØÁ÷¤Ã¤Æ²¼¤µ¤¤¡¥
diff --git a/templates/ja/invite.txt b/templates/ja/invite.txt
new file mode 100644
index 00000000..0878d7e8
--- /dev/null
+++ b/templates/ja/invite.txt
@@ -0,0 +1,22 @@
+¤¢¤Ê¤¿¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹ "%(email)s" ¤Ï %(hostname)s ¤Î
+%(listname)s ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ËÆþ²ñ¤¹¤ë¤è¤¦¤Ë,
+%(listname)s ¥ê¥¹¥È´ÉÍý¿Í¤«¤é¾·ÂÔ¤µ¤ì¤Æ¤¤¤Þ¤¹.
+¤³¤Î¥á¡¼¥ë¤ËÊÖ¿®¤¹¤ë¤È¤­¤Ë Subject: ¥Ø¥Ã¥À (·ï̾)¤ò
+¤µ¤ï¤é¤Ê¤¤¤è¤¦¤Ë¤¹¤ì¤Ð, ¾·ÂÔ¤ò¾µÃΤ·¤¿¤³¤È¤Ë¤Ê¤ê¤Þ¤¹.
+
+¤¢¤ë¤¤¤Ï,
+ %(confirmurl)s
+¤Î¥¦¥§¥Ö¥Ú¡¼¥¸¤ò¤´Í÷¤Ë¤Ê¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹.
+
+Ê̤ÎÊýË¡¤È¤·¤Æ, °Ê²¼¤Î£±¹Ô¤À¤±¤ò¥á¡¼¥ë¤Ë½ñ¤¤¤Æ,
+%(requestaddr)s ¤ËÁ÷¿®¤¹¤ë¤³¤È¤Ç¤â¤«¤Þ¤¤¤Þ¤»¤ó.
+
+ confirm %(cookie)s
+
+¤³¤Î¥á¡¼¥ë¤Ëñ¤Ë¡ÖÊÖ¿®¡×¤¹¤ë¤À¤±¤Ç¤â, ¿¤¯¤Î¥á¡¼¥ë
+¥½¥Õ¥È¤Ç¤Ï¤¦¤Þ¤¯¤¤¤¯¤Ï¤º¤Ç¤¹.
+
+¤â¤·, ¾·ÂÔ¤òÃǤꤿ¤¤¤Î¤Ç¤¢¤ì¤Ð, ñ¤Ë¤³¤Î¥á¡¼¥ë¤ò̵»ë
+¤·¤Æ¤¯¤À¤µ¤¤. ¤â¤·, ¼ÁÌ䤬¤¢¤ì¤Ð
+ %(listowner)s
+°¸¤Æ¤Ë¤ª´ê¤¤¤·¤Þ¤¹.
diff --git a/templates/ja/listinfo.html b/templates/ja/listinfo.html
new file mode 100644
index 00000000..4c00be69
--- /dev/null
+++ b/templates/ja/listinfo.html
@@ -0,0 +1,149 @@
+<!-- $Revision: 6066 $ -->
+<HTML>
+ <HEAD>
+ <TITLE><MM-List-Name> °ÆÆâ¥Ú¡¼¥¸</TITLE>
+
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+
+ <P>
+ <TABLE COLS="1" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1"><MM-List-Name> --
+ <MM-List-Description></FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <p>&nbsp;
+ </td>
+ </tr>
+ <tr>
+ <TD COLSPAN="1" WIDTH="70%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000"><MM-List-Name>¤Ë¤Ä¤¤¤Æ</FONT></B>
+ </TD>
+ <TD COLSPAN="1" WIDTH="30%" BGCOLOR="#FFF0D0">
+ <MM-lang-form-start> <MM-displang-box> <MM-list-langs>
+ <MM-form-end>
+ <MM-Subscribe-Form-Start>
+ </TD>
+
+ </TR>
+ <tr>
+ <td colspan="2">
+ <P><MM-List-Info></P>
+ <p> ¤³¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ËÅê¹Æ¤µ¤ì¤¿²áµî¤Î¥á¡¼¥ë¤òÆÉ¤à¤Ë¤Ï,
+ <MM-Archive><MM-List-Name>
+ Êݸ½ñ¸Ë</MM-Archive>¤ò¤´Í÷²¼¤µ¤¤.
+ <MM-Restricted-List-Message>
+ </p>
+ </TD>
+ </TR>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000"><MM-List-Name> ¤ÎÍøÍÑË¡</FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Î¥á¥ó¥Ð¡¼Á´°÷¤Ë¥á¥Ã¥»¡¼¥¸¤òÁ÷¤ë¤Ë¤Ï¡¤ ¥á¡¼¥ë¤ò
+ <A HREF="mailto:<MM-Posting-Addr>"><MM-Posting-Addr></A>
+ °¸¤Æ¤ËÁ÷¿®¤·¤Æ¤¯¤À¤µ¤¤.
+
+ <p>¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Î¹ØÆÉ¤ä¸½ºß¤Î¹ØÆÉ¥ª¥×¥·¥ç¥ó¤ÎÊѹ¹¤Ë¤Ï,
+ °Ê²¼¤ÎÍͼ°¤ò¤´ÍøÍѲ¼¤µ¤¤.
+ </td>
+ </tr>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000"><MM-List-Name> ¤Î¹ØÆÉ</FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <P>
+ <MM-List-Name> ¤Î¹ØÆÉ¤Ë¤Ï, °Ê²¼¤ÎÍͼ°¤Ë µ­Æþ¤·¤Æ¤¯¤À¤µ¤¤.
+ <MM-List-Subscription-Msg>
+ <ul>
+ <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"
+ WIDTH="70%" HEIGHT= "112">
+ <TR>
+ <TD BGCOLOR="#dddddd" WIDTH="55%">¤¢¤Ê¤¿¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹:</TD>
+ <TD WIDTH="33%"><MM-Subscribe-Box>
+ </TD>
+ <TD WIDTH="12%">&nbsp;</TD></TR>
+ <TR>
+ <td bgcolor="#dddddd" width="55%">¤¢¤Ê¤¿¤Î¤ªÌ¾Á° (¥ª¥×¥·¥ç¥ó):</td>
+ <td width="33%"><mm-fullname-box></td>
+ <TD WIDTH="12%">&nbsp;</TD></TR>
+ <TR>
+ <TD COLSPAN="3"><FONT SIZE=-1>¤³¤³¤Ç¤¢¤Ê¤¿¤Î¥Ñ¥¹¥ï¡¼¥É
+ ¤òµ­Æþ¤·¤Æ¤¯¤À¤µ¤¤. ¤³¤Î¥Ñ¥¹¥ï¡¼¥É¤Ë´Ø¤¹¤ë¥»¥­¥å
+ ¥ê¥Æ¥£¤Ï ¤¢¤Þ¤ê¹â¤¯¤¢¤ê¤Þ¤»¤ó¤¬, ¾¿Í¤¬¹ØÆÉ¾ðÊó¹Ó¤·¤ò
+ ¤¹¤ë¤³¤È¤ò Ëɤ°ÄøÅÙ
+ ¤Î¤³¤È¤Ï¤Ç¤­¤Þ¤¹. ¤³¤Î¥Ñ¥¹¥ï¡¼¥É¤ò¥á¡¼¥ë¤Ç¤¢¤Ê¤¿¤ËÁ÷¤ê
+ ÊÖ¤¹¤³¤È¤¬¤¢¤ê¤Þ¤¹
+ ¤Î¤Ç,
+ <b>µ®½Å¤Ê¥Ñ¥¹¥ï¡¼¥É¤ò»È¤ï¤Ê¤¤¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤
+ </b>
+ Ëè·î1²ó, ¤¢¤Ê¤¿¤Î
+ ¥Ñ¥¹¥ï¡¼¥É¤òʶ¼ºËɻߤΤ¿¤á¤Ëʿʸ¤Î¥á¡¼¥ë¤ÇÁ÷¿®¤·¤Þ¤¹.
+ ¤â¤·¡¤¤³¤ÎÍó¤ò¶õÇò¤Ë¤·¤Æ¤ª¤¯¤È, Mailman¤¬¼«Æ°Åª¤Ë
+ ¤¢¤Ê¤¿¤Î¥Ñ¥¹¥ï¡¼¥É¤òºîÀ®¤·¤Þ¤¹. ¤½¤·¤Æ, ¤¢¤Ê¤¿¤¬Æþ²ñ¤ò
+ ³Îǧ¤·¤¿¤é¥á¡¼¥ë¤ÇÁ÷¤é¤ì¤Þ¤¹. ¼«Ê¬¤Î¥ª¥×¥·¥ç¥ó¤òÊÔ½¸¤¹¤ë
+ »þ¤Ë¤Ï, ¤¤¤Ä¤Ç¤â¥Ñ¥¹¥ï¡¼¥É¤ò¥á¡¼¥ë¤ÇÁ÷¤Ã¤Æ¤â¤é¤¦¤³¤È¤¬
+ ¤Ç¤­¤Þ¤¹.
+ <MM-Reminder>
+ </TD>
+ </TR>
+ <TR>
+ <TD BGCOLOR="#dddddd">¥Ñ¥¹¥ï¡¼¥É¤ò¹Í¤¨¤Æµ­Æþ¤·¤Æ¤¯¤À¤µ¤¤:</TD>
+ <TD><MM-New-Password-Box></TD>
+ <TD>&nbsp;</TD></TR>
+ <TR>
+ <TD BGCOLOR="#dddddd">³Îǧ¤Î¤¿¤áƱ¤¸¥Ñ¥¹¥ï¡¼¥É¤òµ­Æþ:</TD>
+ <TD><MM-Confirm-Password></TD>
+ <TD>&nbsp; </TD></TR>
+ <tr>
+ <TD BGCOLOR="#dddddd">¤É¤Î¸À¸ì¤Ç¥á¥Ã¥»¡¼¥¸¤òÆÉ¤ß¤¿¤¤¤Ç¤¹¤«?</TD>
+ <TD> <MM-list-langs></TD>
+ <TD>&nbsp; </TD></TR>
+ <mm-digest-question-start>
+ <tr>
+ <td>°ìÆüʬ¤´¤È¤Ë¥á¡¼¥ë¤ò¤Þ¤È¤áÆÉ¤ß¤·¤Þ¤¹¤«?
+ </td>
+ <td><MM-Undigest-Radio-Button> ¤¤¤¤¤¨
+ <MM-Digest-Radio-Button> ¤Ï¤¤
+ </TD>
+ </tr>
+ <mm-digest-question-end>
+ <tr>
+ <td colspan="3">
+ <center><MM-Subscribe-Button></P></center>
+ </TABLE>
+ <MM-Form-End>
+ </ul>
+ </td>
+ </tr>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <a name="subscribers">
+ <B><FONT COLOR="#000000"><MM-List-Name> ²ñ°÷¤ÎÊý¤Ø</FONT></B></a>
+ </TD>
+ </TR>
+ <tr>
+ <TD COLSPAN="2" WIDTH="100%">
+ <MM-Roster-Form-Start>
+ <MM-Roster-Option>
+ <MM-Form-End>
+ <p>
+ <MM-Options-Form-Start>
+ <MM-Editing-Options>
+ <MM-Form-End>
+ </td>
+ </tr>
+ </table>
+<MM-Mailman-Footer>
+</BODY>
+</HTML>
diff --git a/templates/ja/masthead.txt b/templates/ja/masthead.txt
new file mode 100644
index 00000000..c4a4e308
--- /dev/null
+++ b/templates/ja/masthead.txt
@@ -0,0 +1,14 @@
+%(real_name)s ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ø¤ÎÅê¹Æ¤Ï°Ê²¼¤ØÁ÷¤Ã¤Æ²¼¤µ¤¤¡¥
+ %(got_list_email)s
+
+WWW ¤ÇÆþÂà²ñ¤¹¤ë¤Ë¤Ï°Ê²¼¤Ø¤É¤¦¤¾¡¥
+ %(got_listinfo_url)s
+¥á¡¼¥ë¤Î¾ì¹ç¡¤·ï̾Ëô¤ÏËÜʸ¤Ë help ¤È½ñ¤¤¤Æ°Ê²¼¤ØÁ÷¤Ã¤Æ²¼¤µ¤¤¡¥
+ %(got_request_email)s
+
+¥ê¥¹¥È¤ò´ÉÍý¤¹¤ë¿Í¤ËÏ¢Íí¤¹¤ë¤Ë¤Ï¡¤°Ê²¼¤Î¥¢¥É¥ì¥¹¤Ø
+ %(got_owner_email)s
+
+ÊÖ¿®¤¹¤ë¾ì¹ç¡¤·ï̾¤ò½ñ¤­Ä¾¤·¤ÆÆâÍÆ¤¬¤ï¤«¤ë¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡¥
+¤½¤Î¤Þ¤Þ¤À¤È¡¤°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡¥
+"Re: %(real_name)s ¤Þ¤È¤áÆÉ¤ß, XX ´¬ XX ¹æ"
diff --git a/templates/ja/newlist.txt b/templates/ja/newlist.txt
new file mode 100644
index 00000000..024e6e03
--- /dev/null
+++ b/templates/ja/newlist.txt
@@ -0,0 +1,35 @@
+¤¢¤Ê¤¿¤Î¤¿¤á¤Ë `%(listname)s' ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤¬ºîÀ®¤µ¤ì¤Þ¤·¤¿¡¥
+°Ê²¼¤Ï¡¤¤³¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Î´ðËÜŪ¤Ê¾ðÊó¤Ç¤¹¡¥
+
+¤¢¤Ê¤¿¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Î¥Ñ¥¹¥ï¡¼¥É¤Ï:
+
+ %(password)s
+
+¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ÎÀßÄê¤ò¹Ô¤¦¤Ë¤Ï¤³¤Î¥Ñ¥¹¥ï¡¼¥É¤¬É¬ÍפǤ¹¡¥
+¤Þ¤¿¡¤»Ê²ñ¼ÔÉÕ¤­¤Î¥ê¥¹¥È¤Ø¤ÎÅê¹Æ¤ò¾µÇ§¤¹¤ë¤Ê¤É¡¤´ÉÍý¾å¤Î
+¿½ÀÁ¤ò½èÍý¤¹¤ëºÝ¤Ë¤âɬÍפˤʤê¤Þ¤¹¡¥
+
+¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ÎÀßÄê¤Ï°Ê²¼¤Î Web ¥Ú¡¼¥¸¤Ç¹Ô¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡¥
+
+ %(admin_url)s
+
+¥ê¥¹¥È¤Î°ìÈ̥桼¥¶¤Î¤¿¤á¤Î Web¥Ú¡¼¥¸¤Ï¡¤°Ê²¼¤Ë¤¢¤ê¤Þ¤¹¡¥
+
+ %(listinfo_url)s
+
+¤³¤ì¤é¤Î web¥Ú¡¼¥¸¤ò¥ê¥¹¥ÈÀßÄê¥Ú¡¼¥¸¤«¤éÊѹ¹¤¹¤ë¤³¤È¤â
+¤Ç¤­¤Þ¤¹¡¥¤·¤«¤·¡¤¤½¤ì¤Ë¤Ï HTML ¤ÎÃ챤òɬÍפȤ·¤Þ¤¹¡¥
+
+¥á¡¼¥ë¤ò»È¤Ã¤¿°ìÈ̥桼¥¶¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤â¤¢¤ê¤Þ¤¹¡¥
+¡Ê´ÉÍý¼Ô¸þ¤±¤Ë¤Ï¤¢¤ê¤Þ¤»¤ó¡Ë¤½¤Î»ÈÍÑË¡¤Ë¤Ä¤¤¤Æ¤Ï
+·ï̾¤Þ¤¿¤ÏËÜʸ¤Ë help ¤È½ñ¤¤¤Æ¡¤°Ê²¼¤Î¥¢¥É¥ì¥¹¤ØÁ÷¤Ã¤Æ²¼¤µ¤¤¡¥
+
+ %(requestaddr)s
+
+²ñ°÷¤ÎÂà²ñ¤Ë¤Ï¡¤listinfo Web¥Ú¡¼¥¸¤Ç ²ñ°÷¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤ò
+ÆþÎϤ·¡¤¥Ñ¥¹¥ï¡¼¥É¤Î½ê¤Ç´ÉÍý¥Ñ¥¹¥ï¡¼¥É¤òÆþÎϤ·¤Þ¤¹¡¥¤Þ¤¿
+Ʊ¤¸¤è¤¦¤Ë¡¤¤Þ¤È¤áÆÉ¤ß¡¤ÇÛÁ÷Ää»ß¤Ê¤É²ñ°÷¤Î¥ª¥×¥·¥ç¥óÀßÄê¤ò
+Êѹ¹¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡¥
+
+¼ÁÌ䤬¤¢¤ì¤Ð %(siteowner)s
+¤Þ¤Ç¤É¤¦¤¾¡¥
diff --git a/templates/ja/nomoretoday.txt b/templates/ja/nomoretoday.txt
new file mode 100644
index 00000000..d6b3ad60
--- /dev/null
+++ b/templates/ja/nomoretoday.txt
@@ -0,0 +1,10 @@
+¤¢¤Ê¤¿¤Î¥¢¥É¥ì¥¹ `%(sender)s' ¤«¤é¤Î¥á¡¼¥ë¤Ç,
+%(listname)s ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤«¤é¤Î¼«Æ°±þÅú¤ÎÍ׵᤬
+¤¢¤ê¤Þ¤·¤¿. ËÜÆü, Ʊ¤¸¤è¤¦¤Ê¥á¡¼¥ë¤ò %(num)s ÄÌ
+¼õ¤±¼è¤Ã¤Æ¤¤¤Þ¤¹¤Î¤Ç, ¥á¡¼¥ë¡¦¥ë¡¼¥×¤Î²ÄǽÀ­¤â¹Íθ
+¤·¤Æ, ¤³¤ì°Ê¾å¼«Æ°±þÅú¤ÏÁ÷¤é¤Ê¤¤¤è¤¦¤Ë¤·¤Þ¤¹.
+ÌÀÆü, ¤â¤¦°ìÅ٥ȥ饤¤·¤Æ¤¯¤À¤µ¤¤.
+
+¤³¤Î¥á¡¼¥ë¤¬´Ö°ã¤Ã¤ÆÇÛÁ÷¤µ¤ì¤Æ¤¤¤ë¤È»×¤ï¤ì¤¿¤ê,
+¼ÁÌ䤬¤¢¤ê¤Þ¤·¤¿¤é, %(owneremail)s ¤Þ¤Ç
+¤´Ï¢Íí¤¯¤À¤µ¤¤.
diff --git a/templates/ja/options.html b/templates/ja/options.html
new file mode 100644
index 00000000..edcacbc3
--- /dev/null
+++ b/templates/ja/options.html
@@ -0,0 +1,303 @@
+<!-- $Revision: 6066 $ -->
+<html>
+<head>
+ <link rel="SHORTCUT ICON" href="<mm-favicon>">
+<title><MM-List-Name> ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ç¤Î <MM-Presentable-User> ¤ÎÀßÄê</title>
+
+</head>
+<BODY BGCOLOR="#ffffff">
+ <TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#99CCFF"><B>
+ <FONT COLOR="#000000" SIZE=+1>
+ <MM-List-Name> ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ç¤Î <MM-Presentable-User> ¤ÎÀßÄê
+ </FONT></B></TD></TR>
+ </TABLE>
+<p>
+<table width="100%" border="0" cellspacing="5" cellpadding="5">
+ <tr><td>
+ <b><MM-List-Name> ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ç¤Î<MM-Presentable-User></b> ¤µ¤ó¤Î
+ ²ñ°÷ÀßÄê¾õ¶·¡¤¥Ñ¥¹¥ï¡¼¥É¡¤¥ª¥×¥·¥ç¥ó¤ÎÀßÄê¾õ¶·¡¥
+ </td><td><MM-Form-Start><mm-logout-button><MM-Form-End></td>
+ </tr><tr>
+ <td colspan="2">
+ <MM-Case-Preserved-User>
+
+ <MM-Disabled-Notice>
+
+ <p><mm-results>
+ </td>
+ </tr>
+</table>
+
+<MM-Form-Start>
+<p>
+<table width="100%" border="0" cellspacing="0" cellpadding="5">
+ <tr><td width="100%" bgcolor="#fff0d0" colspan="2">
+ <font color="#000000">
+ <b>¤¢¤Ê¤¿¤Î <MM-List-Name> ²ñ°÷¥¢¥É¥ì¥¹Êѹ¹</b>
+ </font></td></tr>
+ <tr><td colspan="2">¤³¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤ëÇÛÁ÷¥¢¥É¥ì¥¹
+ ¤òÊѹ¹¤¹¤ë¤Ë¤Ï¡¢²¼¤ÎÍó¤Ë¿·¤·¤¤¥¢¥É¥ì¥¹¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£
+ ¤½¤Î¿·¥¢¥É¥ì¥¹¤Ë³Îǧ¤Î¥á¡¼¥ë¤¬ÆÏ¤±¤é¤ì¤Þ¤¹¤Î¤Ç¡¢³Îǧ¤ÎÊÖ»ö¤¬
+ Íè¤ë¤Þ¤Ç¤Ï½èÍý¤ÏÊÝᤵ¤ì¤Þ¤¹¡£
+
+ <p>Ìó<mm-pending-days>¸å¤Ë³Îǧ¤Î´ü¸Â¤¬ÀÚ¤ì¤Þ¤¹¡£
+
+ <p>¤Þ¤¿¡¢¥ª¥×¥·¥ç¥ó¤Ç¤¢¤Ê¤¿¤Î¼Â̾(Îã:<em>»ûÅÄÆÒɧ</em>)¤ò
+ ÀßÄꤷ¤¿¤êÊѹ¹¤·¤¿¤ê¤Ç¤­¤Þ¤¹¡£
+
+ <p>¤â¤·¡¢<mm-host>¤ËÅÐÏ¿¤µ¤ì¤¿Á´¤Æ¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ë
+ ¤Ä¤¤¤Æ¡¢²ñ°÷¥¢¥É¥ì¥¹¤òÊѹ¹¤¹¤ë¤Î¤Ç¤¢¤ì¤Ð¡¢
+ <em>Á´ÉôÊѹ¹</em>¥Ü¥Ã¥¯¥¹¤ò¥Á¥§¥Ã¥¯¤·¤Æ¤¯¤À¤µ¤¤¡£
+ </td></tr>
+ <tr><td><center>
+ <table border="0" cellspacing="2" cellpadding="2" width="80%" cols="2">
+ <tr><td bgcolor="#dddddd"><div align="right">¿·¥¢¥É¥ì¥¹:</div></td>
+ <td><mm-new-address-box></td>
+ </tr>
+ <tr><td bgcolor="#dddddd"><div align="right">³Îǧ¤Î¤¿¤á
+ ¤â¤¦°ìÅÙ:</div></td>
+ <td><mm-confirm-address-box></td>
+ </tr>
+ </tr></table></center>
+ </td>
+ <td><center>
+ <table border="0" cellspacing="2" cellpadding="2" width="80%" cols="2">
+ <tr><td bgcolor="#dddddd"><div align="right">¤¢¤Ê¤¿¤Î¤ªÌ¾Á°
+ (¥ª¥×¥·¥ç¥ó):</div></td>
+ <td><mm-fullname-box></td>
+ </tr>
+ </table></center>
+ </td>
+ </tr>
+ <tr><td colspan="2"><center><mm-change-address-button>
+ <p><mm-global-change-of-address>Á´ÉôÊѹ¹
+ </center></td>
+ </tr>
+</table>
+
+<p>
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING=5" CELLPADDING="5">
+ <TR><TD WIDTH="50%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B><MM-List-Name> ¤òÂà²ñ¤¹¤ë</B></td>
+
+ <TD WIDTH="50%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>¤¢¤Ê¤¿¤Î¾¤Î <MM-Host> ¤Ç¤ÎÆþ²ñ¾õ¶·</B>
+ </FONT></TD></TR>
+
+ <tr><td>
+ Âà²ñ¤¹¤ë¤Ë¤Ï³Îǧ¥Ü¥Ã¥¯¥¹¤ò¥Á¥§¥Ã¥¯¤·¤Æ¡¢¤³¤Î
+ ¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¤¯¤À¤µ¤¤. <strong>·Ù¹ð:</strong>
+ ¤³¤ì¤Ïľ¤Á¤ËÂà²ñ¼ê³¤­¤ò´°Î»¤·¤Þ¤¹.
+ <p>
+ <center><MM-Unsubscribe-Button></center></td>
+ <td>
+ ¤¢¤Ê¤¿¤Ï¡¢<mm-host>¤ÇÆþ²ñ¤·¤Æ¤¤¤ëÁ´¤Æ¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È
+ ¤Î¥ê¥¹¥È¤ò¸«¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤â¤·¡¢Â¾¤Î²ñ°÷¥ª¥×¥·¥ç¥ó¤â
+ Êѹ¹¤·¤¿¤¤¤Î¤Ç¤¢¤ì¤Ð¤³¤ì¤òÍøÍѤ·¤Æ¤¯¤À¤µ¤¤¡£
+
+ <p>
+ <center><MM-Other-Subscriptions-Submit></center>
+ </TD></TR>
+</table>
+
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD COLSPAN=2 WIDTH="100%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>¤¢¤Ê¤¿¤Î <MM-List-Name> ¤Ç¤Î¥Ñ¥¹¥ï¡¼¥É</B>
+ </FONT></TD></TR>
+ <tr valign="TOP"><td WIDTH="50%">
+ <a name=reminder>
+ <center>
+ <h3>¥Ñ¥¹¥ï¡¼¥É¤ò˺¤ì¤Þ¤·¤¿¤«?</h3>
+ </center>
+ ¤³¤Î¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¡¤¤¢¤Ê¤¿¤ÎÇÛÁ÷¥¢¥É¥ì¥¹¤Ø¥á¡¼¥ë¤·¤Æ
+ Ìã¤Ã¤Æ¤¯¤À¤µ¤¤.
+ <p><MM-Umbrella-Notice>
+ <center>
+ <MM-Email-My-Pw>
+ </center>
+ </td>
+
+<td WIDTH="50%">
+ <a name=changepw>
+ <center>
+ <h3>¥Ñ¥¹¥ï¡¼¥ÉÊѹ¹</h3>
+ <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2" WIDTH="70%" COLS=2>
+ <TR><TD BGCOLOR="#dddddd"><div align="right">¿·
+ ¥Ñ¥¹¥ï¡¼¥É:</div></TD>
+ <TD><MM-New-Pass-Box></TD>
+ </TR>
+ <TR>
+ <TD BGCOLOR="#dddddd"><div align="right">³Îǧ¤Î¤¿¤á
+ ¤â¤¦°ìÅÙ:</div></TD>
+ <TD><MM-Confirm-Pass-Box></TD>
+ </TR>
+ </table>
+ <MM-Change-Pass-Button>
+ <p><center><mm-global-pw-changes-button>Á´ÉôÊѹ¹
+ </center>
+</TABLE>
+
+<p>
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>¤¢¤Ê¤¿¤Î <MM-List-Name> ²ñ°÷¥ª¥×¥·¥ç¥ó</B>
+ </FONT></TD></TR>
+</table>
+
+<p>
+<i><strong>¸½ºß¤ÎÀßÄ꤬¥Á¥§¥Ã¥¯¤µ¤ì¤Æ¤¤¤Þ¤¹.</strong></i>
+<p>¥ª¥×¥·¥ç¥ó¤ÎÃæ¤Ë¤Ï<em>Á´ÉôÀßÄê</em>¤Î¥Á¥§¥Ã¥¯¥Ü¥Ã¥¯¥¹¤¬
+ÉÕ¤¤¤Æ¤¤¤ë¤â¤Î¤¬¤¢¤ê¤Þ¤¹¡£¤³¤³¤ò¥Á¥§¥Ã¥¯¤·¤Æ¤ª¤¯¤È¡¢<mm-host>
+¤Ç¤¢¤Ê¤¿¤¬²ñ°÷¤Ë¤Ê¤Ã¤Æ¤¤¤ëÁ´¤Æ¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ç¤³¤Î
+ÀßÄ꤬ͭ¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£¾å¤Î<em>¾¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ø¤ÎÆþ²ñ¾õ¶·</em>
+¤Ç¡¢¤¢¤Ê¤¿¤¬Æþ²ñ¤·¤Æ¤¤¤ë¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤òÃΤ뤳¤È¤¬¤Ç¤­¤Þ¤¹¡£
+<p>
+<TABLE BORDER="0" CELLSPACING="2" CELLPADDING="3" WIDTH="80%">
+ <tr><TD BGCOLOR="#cccccc">
+ <a name="disable">
+ <strong> ¥á¡¼¥ëÇÛÁ÷ </strong> <br>
+ ¤³¤Î¥ª¥×¥·¥ç¥ó¤ò<em>Í­¸ú</em>¤Ë¤·¤Æ¤ª¤¯¤È¡¢¤³¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È
+ ¤ËÅê¹Æ¤µ¤ì¤ë¥á¡¼¥ë¤ò¼õ¤±¼è¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£¤³¤ì¤ò<em>Ää»ß</em>
+ ¤Ë¤·¤Æ¤ª¤¯¤Èû´ü´Ö¤Î´Ö¥á¡¼¥ëÇÛÁ÷¤ò»ß¤á¤Æ¤ª¤¯¤³¤È¤¬¤Ç¤­¤Þ¤¹
+ (Î㤨¤Ðû´ü´Ö¤ÎµÙ²ËÃæ¤Ê¤É). ¤â¤·ÇÛÁ÷¤òÄä»ß¤·¤¿¾ì¹ç¤Ë¤Ï¡¢
+ µÙ²Ë¤«¤éµ¢¤Ã¤Æ¤­¤¿¤éºÆÅÙÍ­¸ú¤Ë¤¹¤ë¤³¤È¤ò˺¤ì¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡£
+ </td><td bgcolor="#cccccc">
+ <mm-delivery-enable-button> Í­¸ú<br>
+ <mm-delivery-disable-button> Ää»ß<p>
+ <mm-global-deliver-button><i>Á´ÉôÀßÄê</i>
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong> ¤Þ¤È¤áÆÉ¤ß¥â¡¼¥É¤ËÀßÄê</strong> <br>
+ ¤â¤·¤Þ¤È¤áÆÉ¤ß¥â¡¼¥É¤ò Í­¸ú ¤Ë¤·¤Æ¤ª¤¯¤È¡¤£±ÆüËè¤Ë£±Ä̤À¤±¤Þ¤È¤á¤Æ
+ ¥á¡¼¥ë¤¬ÆÏ¤­¡¤Åê¹Æ¤¬¤¢¤ëÅ٤ˤÏÁ÷¤é¤ì¤Þ¤»¤ó¡¥¤â¤·¤Þ¤È¤áÆÉ¤ß¥â¡¼¥É
+ ¤ò Í­¸ú ¤«¤é ̵¸ú ¤Ë¤¹¤ë¤È¡¤ºÇ¸å¤Î¤Þ¤È¤á¥á¡¼¥ë¤¬ÆÏ¤±¤é¤ì¤Þ¤¹¡¥
+ </td><td bgcolor="#cccccc">
+ <MM-Undigest-Radio-Button> ̵¸ú<br>
+ <MM-Digest-Radio-Button> Í­¸ú
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong> ¤Þ¤È¤áÆÉ¤ß¤Î¥á¡¼¥ë¤òʿʸ¤Ç¼õ¤±¤Þ¤¹¤«¡©
+ MIME¤ÎźÉդǼõ¤±¤Þ¤¹¤«?</strong><p>
+ ¥á¡¼¥ë¥ê¡¼¥À¤Ë¤è¤Ã¤Æ¤Ï MIME ¤Î¤Þ¤È¤áÆÉ¤ß¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤
+ ¤«¤â¤·¤ì¤Þ¤»¤ó¡£°ìÈÌŪ¤Ë¤Ï MIME ¤ÎÊý¤¬¤è¤¤¤Ç¤¹¤¬¡¢
+ ¤â¤·¡¤MIME ¤Î¥á¡¼¥ë¤òÆÉ¤à¤Î¤¬º¤Æñ¤Ç¤¢¤ì¤Ð¡¤
+ ʿʸ¤ÎÊý¤òÁª¤ó¤Ç¤¯¤À¤µ¤¤¡¥
+ </td><td bgcolor="#cccccc">
+ <MM-Mime-Digests-Button> MIME <br>
+ <MM-Plain-Digests-Button> ʿʸ <p>
+ <mm-global-mime-button><i>Á´ÉôÀßÄê</i>
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong> ¤¢¤Ê¤¿¤¬Åê¹Æ¤·¤¿¥á¡¼¥ë¤ò¼õ¼è¤ê¤Þ¤¹¤«? </strong><p>
+ Ä̾ï¤Ï¡¢¤¢¤Ê¤¿¤Ï¼«Ê¬¤¬¥ê¥¹¥È¤ËÅê¹Æ¤·¤¿¥á¡¼¥ë¤Î¥³¥Ô¡¼¤ò¼õ¼è¤ê¤Þ¤¹¡£
+ ¤â¤·¡¢¤³¤Î¥³¥Ô¡¼¤ò¼õ¼è¤ê¤¿¤¯¤Ê¤±¤ì¤Ð¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ò
+ <em>¤¤¤¤¤¨</em>¤ËÀßÄꤷ¤Æ¤¯¤À¤µ¤¤¡£
+ </td><td bgcolor="#cccccc">
+ <mm-dont-receive-own-mail-button> ¤¤¤¤¤¨ <br>
+ <mm-receive-own-mail-button> ¤Ï¤¤
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong> ¤¢¤Ê¤¿¤¬¥ê¥¹¥È¤ËÅê¹Æ¤·¤¿¤È¤­¡¤¼õÎΥ᡼¥ë¤¬
+ ɬÍפǤ¹¤«? </strong><p>
+ </td><td bgcolor="#cccccc">
+ <mm-dont-ack-posts-button> ¤¤¤¤¤¨<br>
+ <mm-ack-posts-button> ¤Ï¤¤
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>¤³¤Î¥ê¥¹¥È¤Ë¤Ä¤¤¤Æ¥Ñ¥¹¥ï¡¼¥ÉÄÌÃΤò¼õ¤±¼è¤ê¤Þ¤¹¤«?</strong><p>
+ Ëè·î¡¢¤¢¤Ê¤¿¤Ï¤³¤Î¥Û¥¹¥È¤Î¤½¤ì¤¾¤ì¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ä¤¤¤Æ¡¢
+ ¥Ñ¥¹¥ï¡¼¥ÉÄÌÃÎ¤ÎÆþ¤Ã¤¿¥á¡¼¥ë¤ò¼õ¤±¼è¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£
+ ¤¢¤Ê¤¿¤Ï¡¢¥ê¥¹¥ÈËè¤Ë<em>¤¤¤¤¤¨</em>¤òÁª¤Ö¤³¤È¤Ç
+ ¥á¡¼¥ëÁ÷¿®¤ò»ß¤á¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤â¤·¡¢Á´ÉôÀßÄê¤Ç<em>¤¤¤¤¤¨</em>¤Ë
+ ÀßÄꤷ¤¿¾ì¹ç¤Ë¤Ï¡¢¥Ñ¥¹¥ï¡¼¥ÉÄÌÃΤΥ᡼¥ë¤ÏȯÁ÷¤µ¤ì¤Þ¤»¤ó¡£
+ </td><td bgcolor="#cccccc">
+ <mm-dont-get-password-reminder-button>¤¤¤¤¤¨<br>
+ <mm-get-password-reminder-button>¤Ï¤¤<p>
+ <mm-global-remind-button><i>Á´ÉôÀßÄê</i>
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong> ²ñ°÷¥ê¥¹¥È¤Ë¤¢¤Ê¤¿¤ò½Ð¤µ¤Ê¤¤¤è¤¦¤Ë¤·¤Þ¤¹¤«? </strong><br>
+ 狼¤¬¥ê¥¹¥È¤Î²ñ°÷̾Êí¤ò¸«¤ë¤È¤­¡¢¤¢¤Ê¤¿¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤¬
+ (¥¹¥Ñ¥à¥á¡¼¥ë¥¢¥É¥ì¥¹¼ý½¸ËɻߤΤ¿¤á¤Ü¤ä¤«¤·¤Þ¤¹¤¬)ɽ¼¨¤µ¤ì¤Þ¤¹¡£
+ ¤â¤·²ñ°÷̾Êí¤Ë¼«Ê¬¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤ò½Ð¤·¤¿¤¯¤Ê¤±¤ì¤Ð¡¢
+ ²¼¤Î<em>±£¤·¤Æ¤¯¤À¤µ¤¤</em>¤òÁª¤ó¤Ç²¼¤µ¤¤¡£
+ </td><td bgcolor="#cccccc">
+ <MM-Public-Subscription-Button> ½Ð¤·¤Þ¤¹ <br>
+ <MM-Hide-Subscription-Button> ±£¤·¤Æ¤¯¤À¤µ¤¤
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong> ¤É¤Î¸À¸ì¤ò»È¤¤¤Þ¤¹¤«?</strong><p>
+ </td><td bgcolor="#cccccc">
+ <MM-list-langs>
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>¤É¤ÎÏÃÂêʬÎà¤ò¹ØÆÉ¤·¤¿¤¤¤Ç¤¹¤«?</strong><p>
+ ÏÃÂê¤òÁª¤Ö¤³¤È¤Ç¡¢¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤òή¤ì¤ë¥á¡¼¥ë¤Ë
+ ¥Õ¥£¥ë¥¿¡¼¤ò¤«¤±¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤Ä¤Þ¤ê¡¢¥á¡¼¥ë¤Î
+ °ìÉôʬ¤À¤±¤ò¼õ¤±¼è¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£¤â¤·¡¢¥á¡¼¥ë¤¬
+ Áª¤ó¤ÀÏÃÂê¤Ë¹ç¤Ã¤Æ¤¤¤ì¤Ð¥á¡¼¥ë¤ò¼õ¤±¼è¤ê¡¢¹ç¤ï¤Ê¤±¤ì¤Ð
+ ¼õ¤±¼è¤ê¤Þ¤»¤ó¡£
+ <p>¤â¤·¡¢¥á¡¼¥ë¤¬¤É¤ÎÏÃÂê¤Ë¤â¹ç¤ï¤Ê¤±¤ì¤Ð¡¢ÇÛÁ÷¤Î
+ µ¬Â§¤Ï²¼¤Î¥ª¥×¥·¥ç¥ó¤ÎÀßÄê¤Ë¤è¤Ã¤ÆÊѤï¤ê¤Þ¤¹¡£
+ ¤â¤·¡¢²¿¤âÏÃÂê¤òÁª¤Ð¤Ê¤±¤ì¤Ð¡¢Á´Éô¤Î¥á¡¼¥ë¤ò¼õ¤±¼è¤ê¤Þ¤¹¡£
+ </td><td bgcolor="#cccccc">
+ <mm-topics>
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>¤É¤ÎÏÃÂê¥Õ¥£¥ë¥¿¡¼¤Ë¤âŬ¹ç¤·¤Ê¤¤¥á¡¼¥ë¤ò¼õ¤±¼è¤ê¤Þ¤¹¤«?</strong><p>
+ ¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¤¢¤Ê¤¿¤¬¾¯¤Ê¤¯¤È¤â¤Ò¤È¤ÄÏÃÂê¤òÁª¤ó¤Ç¤¤¤ë
+ ¾ì¹ç¤ËÍ­¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£ÏÃÂê¥Õ¥£¥ë¥¿¡¼¤Î¤É¤ì¤Ë¤â¹ç¤ï¤Ê¤«¤Ã¤¿
+ ¥á¡¼¥ë¤¬¤¢¤ë¤È¤­¡¢¥Ç¥Õ¥©¥ë¥È¤ÎÇÛÁ÷µ¬Â§¤òÄê¤á¤Þ¤¹¡£
+ <em>¤¤¤¤¤¨</em>¤òÁª¤Ö¤È¡¢¤É¤ÎÏÃÂê¥Õ¥£¥ë¥¿¡¼¤Ë¤â
+ ¹ç¤ï¤Ê¤«¤Ã¤¿¥á¡¼¥ë¤Ï¡¢¤¢¤Ê¤¿¤ËÇÛÁ÷¤µ¤ì¤Þ¤»¤ó¡£
+ ¤â¤·¡¢<em>¤Ï¤¤</em>¤òÁª¤Ö¤È¡¢¤³¤Î¤è¤¦¤ÊŬ¹ç¤·¤Ê¤¤¥á¡¼¥ë¤Ï
+ ÇÛÁ÷¤µ¤ì¤Þ¤¹¡£
+ <p>¤â¤·¡¢ÏÃÂ꤬¤Ò¤È¤Ä¤âÁªÂò¤µ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢
+ ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ËÅê¹Æ¤µ¤ì¤ëÁ´Éô¤Î¥á¡¼¥ë¤ò¼õ¤±¼è¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£
+ </td><td bgcolor="#cccccc">
+ <mm-suppress-nonmatching-topics>¤¤¤¤¤¨<br>
+ <mm-receive-nonmatching-topics>¤Ï¤¤
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>½ÅÊ£¤·¤¿¥á¡¼¥ë¤ò¼õ¤±¼è¤é¤Ê¤¤¤è¤¦¤Ë¤·¤Þ¤¹¤«?</strong><p>
+
+ ¤â¤·, ¤¢¤Ê¤¿¤¬<tt>To:</tt>¤Þ¤¿¤Ï<tt>Cc:</tt>¥Ø¥Ã¥À¤Ë
+ Æþ¤Ã¤Æ¤¤¤¿¤é, ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤«¤é¤Î¥á¡¼¥ë¤ò¼õ¤±¼è¤é¤Ê¤¤
+ ¤è¤¦¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹. ¥ê¥¹¥È¤«¤é½ÅÊ£¤·¤¿¥á¡¼¥ë¤ò
+ ¼õ¤±¼è¤é¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤Ë¤Ï<em>¤Ï¤¤</em>¤òÁª¤ó¤Ç¤¯¤À¤µ¤¤.
+ <em>¤¤¤¤¤¨</em>¤òÁª¤Ö¤È¥á¡¼¥ë¤ò¼õ¤±¼è¤ê¤Þ¤¹.
+
+ <p>¤â¤·, ¥ê¥¹¥È¤¬¸Ä¿ÍÊÌÇÛÁ÷¥â¡¼¥É¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç,
+ ¡Ö¤¤¤¤¤¨¡×¤òÁª¤Ö¤È <tt>X-Mailman-Copy: yes</tt> ¤È¤¤¤¦
+ ¥Ø¥Ã¥À¤¬ÉÕ¤¯¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹.
+
+ </td><td bgcolor="#cccccc">
+ <mm-receive-duplicates-button>¤¤¤¤¤¨<br>
+ <mm-dont-receive-duplicates-button>¤Ï¤¤<br>
+ <mm-global-nodupes-button><i>Á´ÉôÀßÄê</i>
+ </td></tr>
+
+ <tr><TD colspan="2">
+ <center><MM-options-Submit-button></center>
+ </td></tr>
+
+</table>
+</center>
+
+<p>
+<MM-Form-End>
+
+<MM-Mailman-Footer>
+</body>
+</html>
diff --git a/templates/ja/postack.txt b/templates/ja/postack.txt
new file mode 100644
index 00000000..38a41802
--- /dev/null
+++ b/templates/ja/postack.txt
@@ -0,0 +1,8 @@
+¤¢¤Ê¤¿¤Î¥á¡¼¥ë(·ï̾)
+
+ %(subject)s
+
+¤Ï %(listname)s ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ËÅþ㤷¤Þ¤·¤¿¡¥
+
+¥ê¥¹¥È°ÆÆâ¥Ú¡¼¥¸: %(listinfo_url)s
+¸Ä¿Í¥ª¥×¥·¥ç¥ó¥Ú¡¼¥¸: %(optionsurl)s
diff --git a/templates/ja/postauth.txt b/templates/ja/postauth.txt
new file mode 100644
index 00000000..ab3e69af
--- /dev/null
+++ b/templates/ja/postauth.txt
@@ -0,0 +1,10 @@
+°Ê²¼¤ÎÅê¹Æ¤Ë¤Ä¤¤¤Æ¥ê¥¹¥È´ÉÍý¼Ô¤Î¾µÇ§¤¬É¬ÍפǤ¹¡¥
+
+ ¥ê¥¹¥È: %(listname)s@%(hostname)s
+ ȯ¿®¼Ô: %(sender)s
+ ·ï̾: %(subject)s
+ Íýͳ: %(reason)s
+
+ÅÔ¹ç¤Î¤è¤¤»þ¤Ë¡¤°Ê²¼¤Î URL ¤Ç·èºÑ¤·¤Æ¤¯¤À¤µ¤¤¡¥
+
+ %(admindb_url)s
diff --git a/templates/ja/postheld.txt b/templates/ja/postheld.txt
new file mode 100644
index 00000000..bf8bb8af
--- /dev/null
+++ b/templates/ja/postheld.txt
@@ -0,0 +1,18 @@
+¤¢¤Ê¤¿¤Î
+'%(listname)s'
+¤Ø¤ÎÅê¹Æ(°Ê²¼¤Î·ï̾)¤Ï, ¥ê¥¹¥È»Ê²ñ¼Ô¤Î
+¾µÇ§¤¬½Ð¤ë¤Þ¤ÇÊÝᤵ¤ì¤Æ¤¤¤Þ¤¹.
+
+ %(subject)s
+
+ÊÝα¤ÎÍýͳ¤Ï°Ê²¼¤Î¤È¤ª¤ê¤Ç¤¹
+
+ %(reason)s
+
+¥á¡¼¥ë¤Ï¥ê¥¹¥È¤ØÇÛÁ÷¤µ¤ì¤ë¤«¡¤¤Ç¤Ê¤±¤ì
+¤Ð»Ê²ñ¼Ô¤ÎȽÄ꤬¤¢¤Ê¤¿¤ØÁ÷¤é¤ì¤Þ¤¹.
+¤â¤·¡¢Åê¹Æ¤ò¼è¤ê¾Ã¤·¤¿¤¤¤Î¤Ç¤¢¤ì¤Ð,
+°Ê²¼¤Î URL ¤Ø¥¢¥¯¥»¥¹¤·¤Æ¤¯¤À¤µ¤¤.
+
+ %(confirmurl)s
+
diff --git a/templates/ja/private.html b/templates/ja/private.html
new file mode 100644
index 00000000..79f279b9
--- /dev/null
+++ b/templates/ja/private.html
@@ -0,0 +1,41 @@
+<html>
+<head>
+ <title>%(realname)s ¸ÂÄê¸ø³«Êݸ½ñ¸Ë ǧ¾Ú</title>
+</head>
+<body bgcolor="#ffffff">
+<FORM METHOD=POST ACTION="%(action)s/">
+%(message)s
+ <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1">%(realname)s
+ ¸ÂÄê¸ø³«Êݸ½ñ¸Ë ǧ¾Ú</FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <TD><div ALIGN="Right">ÅŻҥ᡼¥ë¥¢¥É¥ì¥¹:</div></TD>
+ <TD><INPUT TYPE="text" NAME="username" SIZE="30"></TD>
+ </tr>
+ <tr>
+ <TD><div ALIGN="Right">¥Ñ¥¹¥ï¡¼¥É:</div></TD>
+ <TD><INPUT TYPE="password" NAME="password" SIZE="30"></TD>
+ </tr>
+ <tr>
+ <td colspan=2 align="middle"><INPUT type="SUBMIT"
+ name="submit"
+ value="ǧ¾Ú...">
+ </td>
+ </tr>
+ </TABLE>
+ <p><strong><em>½ÅÍ×:</em></strong>
+ ¤³¤³¤«¤éÀè¤Ï¥Ö¥é¥¦¥¶¤Î¥¯¥Ã¥­¡¼¤òÍ­¸ú¤Ë¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹.
+ ¤Ç¤Ê¤¤¤È, ¥Ñ¥¹¥ï¡¼¥É¤Ë¤è¤ëǧ¾Ú¤¬¤Ï¤¿¤é¤­¤Þ¤»¤ó.
+
+ <p>¥»¥Ã¥·¥ç¥ó¥¯¥Ã¥­¡¼¤Ï Mailman ¤Î¸ÂÄê¸ø³«Êݸ½ñ¸Ë
+ ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç »ÈÍѤµ¤ì¤Þ¤¹¡¥
+ ½¾¤Ã¤Æ¿·¤·¤¤¥É¥­¥å¥á¥ó¥È¤ò³«¤¯¤¿¤Ó¤ËºÆÇ§¾Ú¤ò¤ª¤³¤Ê¤¦ ɬÍפ¬¤Ê¤¯¤Ê¤ê¤Þ¤¹¡¥
+ ¤³¤Î¥¯¥Ã¥­¡¼¤Ï¥Ö¥é¥¦¥¶¤ò½ªÎ»¤·¤¿
+ »þ¤Ë¼«Æ°Åª¤Ë̵¸ú¤Ë¤Ê¤ê¤Þ¤¹¡¥
+</FORM>
+</body>
+</html>
diff --git a/templates/ja/refuse.txt b/templates/ja/refuse.txt
new file mode 100644
index 00000000..c2c7dd15
--- /dev/null
+++ b/templates/ja/refuse.txt
@@ -0,0 +1,12 @@
+¤¢¤Ê¤¿¤Î %(listname)s ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ø¤Î°Ê²¼¤Î¿½ÀÁ¤Ï
+¥ê¥¹¥È»Ê²ñ¼Ô¤Ë¤è¤Ã¤ÆµÑ²¼¤µ¤ì¤Þ¤·¤¿¡¥
+
+ %(request)s
+
+»Ê²ñ¼Ô¤Ë¤è¤ëµÑ²¼Íýͳ¤Ï°Ê²¼¤Î¤È¤ª¤ê¤Ç¤¹¡¥
+
+"%(reason)s"
+
+¼ÁÌ䥳¥á¥ó¥È¤Ï°Ê²¼¤Î¥ê¥¹¥È´ÉÍý¼Ô¤Ø¤É¤¦¤¾¡¥
+
+ %(adminaddr)s
diff --git a/templates/ja/roster.html b/templates/ja/roster.html
new file mode 100644
index 00000000..9d36e4a3
--- /dev/null
+++ b/templates/ja/roster.html
@@ -0,0 +1,54 @@
+<!-- $Revision: 6066 $ -->
+<HTML>
+ <HEAD>
+ <TITLE><MM-List-Name> ²ñ°÷̾Êí</TITLE>
+
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+
+ <P>
+ <TABLE WIDTH="100%" COLS="1" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="1" WIDTH="70%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1"><MM-List-Name>
+ ²ñ°÷̾Êí</FONT></B>
+ </TD>
+ <td colspan="1" width="30%" bgcolor="#99ccff">
+ <MM-lang-form-start><MM-displang-box><MM-list-langs>
+ <MM-form-end>
+ </td>
+ </TR>
+ </table>
+ <TABLE WIDTH="100%" COLS="1" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" ALIGN="CENTER">
+ <P>¤¢¤Ê¤¿¤Î¥¢¥É¥ì¥¹¤ò¥¯¥ê¥Ã¥¯¤·¤Æ²ñ°÷¥ª¥×¥·¥ç¥ó¥Ú¡¼¥¸¤Ø¿Ê¤á¤Þ¤¹¡¥
+ <br><I>(³ç¸Ì¤ËÆþ¤Ã¤¿²ñ°÷¤ÏÇÛÁ÷Ää»ßÃæ¤Ç¤¹.)</I></P>
+ </TD>
+ </TR>
+ <TR WIDTH="100%" VALIGN="top">
+ <TD BGCOLOR="#FFF0D0" WIDTH="50%">
+ <center>
+ <B><FONT COLOR="#000000">
+ <MM-List-Name>ÉáÄÌÇÛÁ÷²ñ°÷: <MM-Num-Reg-Users>̾</FONT></B>
+ </center>
+ </TD>
+ <TD BGCOLOR="#FFF0D0" WIDTH="50%">
+ <center>
+ <B><FONT COLOR="#000000">
+ <MM-List-Name>¤Þ¤È¤áÆÉ¤ß²ñ°÷: <MM-Num-Digesters>̾</FONT></B>
+ </center>
+ </TD>
+ </TR>
+ <TR VALIGN="top">
+ <td>
+ <P><MM-Regular-Users>
+ </td>
+ <td>
+ <P><MM-Digest-Users>
+ </td>
+ </tr>
+ </table>
+<MM-Mailman-Footer>
+</BODY>
+</HTML>
diff --git a/templates/ja/subauth.txt b/templates/ja/subauth.txt
new file mode 100644
index 00000000..3f671000
--- /dev/null
+++ b/templates/ja/subauth.txt
@@ -0,0 +1,9 @@
+°Ê²¼¤Î¡¤Æþ²ñ¿½ÀÁ¤Ë¤¢¤Ê¤¿¤Î¾µÇ§¤¬É¬ÍפǤ¹
+
+ ¿½ÀÁ¼Ô: %(username)s
+ ¥ê¥¹¥È: %(listname)s@%(hostname)s
+
+ÅÔ¹ç¤Î¤è¤¤¤È¤­¤Ë°Ê²¼¤Î URL¤Ç·èºÑ¤·¤Æ¤¯¤À¤µ¤¤¡¥
+
+ %(admindb_url)s
+
diff --git a/templates/ja/subscribe.html b/templates/ja/subscribe.html
new file mode 100644
index 00000000..742921b1
--- /dev/null
+++ b/templates/ja/subscribe.html
@@ -0,0 +1,9 @@
+<!-- $Revision: 3790 $ -->
+<html>
+<head><title><MM-List-Name> Æþ²ñ¼ê³¤­¤Î·ë²Ì</title></head>
+<body bgcolor="white">
+<h1><MM-List-Name> Æþ²ñ¼ê³¤­¤Î·ë²Ì</h1>
+<MM-Results>
+<MM-Mailman-Footer>
+</body>
+</html>
diff --git a/templates/ja/subscribeack.txt b/templates/ja/subscribeack.txt
new file mode 100644
index 00000000..579b6d05
--- /dev/null
+++ b/templates/ja/subscribeack.txt
@@ -0,0 +1,36 @@
+%(real_name)s@%(host_name)s ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ø¤è¤¦¤³¤½!
+%(welcome)s
+¤³¤Î¥ê¥¹¥È¤ËÅê¹Æ¤¹¤ë¤Ë¤Ï¡¤°Ê²¼¤Î¥¢¥É¥ì¥¹¤Ø¥á¡¼¥ë¤ò½Ð¤·¤Æ¤¯¤À¤µ¤¤¡¥
+
+ %(emailaddr)s
+
+¥ê¥¹¥È¤Ë¤Ä¤¤¤Æ¤Î°ìÈÌŪ¤Ê¾ðÊó¤Ï°Ê²¼¤Î URL¤Ë¤¢¤ê¤Þ¤¹¡¥
+
+ %(listinfo_url)s
+
+¤â¤·¡¤¤¢¤Ê¤¿¤¬Âà²ñ¤·¤¿¤ê¥ª¥×¥·¥ç¥ó¤ÎÊѹ¹(¤Ä¤Þ¤ê¤Þ¤È¤áÆÉ¤ß
+¥â¡¼¥É¤ÎÊѹ¹¤ä¥Ñ¥¹¥ï¡¼¥É¤ÎÊѹ¹¤Ê¤É)¤ò¤·¤¿¤¤¤È»×¤Ã¤¿¤é¡¤
+°Ê²¼¤Î¤¢¤Ê¤¿¤Î²ñ°÷¾ðÊó¥Ú¡¼¥¸¤ò¥¢¥¯¥»¥¹¤·¤Æ¤¯¤À¤µ¤¤¡¥
+
+ %(optionsurl)s
+%(umbrella)s
+¤Þ¤¿¥á¡¼¥ë¤ò»È¤Ã¤Æ¤â¡¤°Ê²¼¤Î¥¢¥É¥ì¥¹¤Ë help ¤òÁ÷¤ë¤³¤È¤Ç
+ƱÍͤÎÄ´À°¤ò¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡¥
+
+ %(real_name)s-request@%(host_name)s
+
+Help ¤ò¼è¤ê½Ð¤¹¤Ë¤Ï¡¤¥á¡¼¥ë¤Î·ï̾¤Þ¤¿¤ÏËÜʸ¤Ë help ¤È½ñ¤¤¤Æ
+¤¯¤À¤µ¤¤¡¥ÊÖ¿®¤ÇÊýË¡¤Î½ñ¤¤¤Æ¤¢¤ë¥á¥Ã¥»¡¼¥¸¤¬ÆÏ¤­¤Þ¤¹¡¥
+
+Âà²ñ¤ä¥ª¥×¥·¥ç¥ó¤ÎÊѹ¹¤Ë¤Ï¡¤¤¢¤Ê¤¿¤Î¥Ñ¥¹¥ï¡¼¥É¤¬É¬ÍפǤ¹¡¥
+(¤³¤ì¤Ï¥Ñ¥¹¥ï¡¼¥É¤ÎÊѹ¹¤â´Þ¤à)¤¢¤Ê¤¿¤Î¥Ñ¥¹¥ï¡¼¥É¤Ï¡¤
+
+ %(password)s
+
+¤Ç¤¹¡¥
+Ä̾ï¤Ï, Ëè·î %(host_name)s ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ÎÃæ¤Ç
+¤¢¤Ê¤¿¤¬Æþ²ñ¤·¤Æ¤¤¤ë¤â¤Î¤Ë¤Ä¤¤¤Æ¡¤¥Ñ¥¹¥ï¡¼¥É¤ò¶µ¤¨¤Æ
+¤¯¤ì¤ë¥á¡¼¥ë¤¬ÆÏ¤­¤Þ¤¹¡¥¤³¤ì¤Ï¡¢¤¢¤Ê¤¿¤Î¤ª¹¥¤ß¤Ë±þ¤¸¤Æ,
+»ß¤á¤ë¤³¤È¤â½ÐÍè¤Þ¤¹. ¥á¡¼¥ë¤Ë¤ÏÂà²ñÊýË¡¤ä¥ª¥×¥·¥ç¥ó
+Êѹ¹¤ÎÊýË¡¤â½ñ¤¤¤Æ¤¢¤ê¤Þ¤¹¡¥¼«Ê¬¤Î¥ª¥×¥·¥ç¥ó¥Ú¡¼¥¸¤Ë¤Ï
+¸½ºß¤Î¥Ñ¥¹¥ï¡¼¥É¤ò¥á¡¼¥ë¤Ç¶µ¤¨¤Æ¤¯¤ì¤ë¥Ü¥¿¥ó¤â¤¢¤ê¤Þ¤¹¡¥
diff --git a/templates/ja/unsub.txt b/templates/ja/unsub.txt
new file mode 100644
index 00000000..97487cdd
--- /dev/null
+++ b/templates/ja/unsub.txt
@@ -0,0 +1,25 @@
+%(listname)s ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ÎÂà²ñ³Îǧ.
+
+»ä¤¿¤Á¤Ï, ¤¢¤Ê¤¿¤ÎÅŻҥ᡼¥ë¥¢¥É¥ì¥¹ <%(email)s> ¤ò
+%(listaddr)s ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤«¤éÂà²ñ¤¹¤ë¤è¤¦%(remote)s
+¿½ÀÁ¤ò¼õ¤±ÉÕ¤±¤Þ¤·¤¿. ËÜÅö¤Ë¤³¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤«¤é
+Âà²ñ¤¹¤ë°Õ»Ö¤Î¤¢¤ë¤³¤È¤ò³Îǧ¤¹¤ë¤¿¤á, Subject: ¥Ø¥Ã¥À
+(·ï̾)¤ò¤½¤Î¤Þ¤Þ¤ÇÊÖ¿®¤·¤Æ¤¯¤À¤µ¤¤. ¤¢¤ë¤¤¤Ï, °Ê²¼¤Î
+Web ¥Ú¡¼¥¸¤ò¥¢¥¯¥»¥¹¤·¤Æ¤¯¤À¤µ¤¤.
+
+ %(confirmurl)s
+
+¤¢¤ë¤¤¤Ï, %(requestaddr)s °¸¤Æ¤Î¥á¡¼¥ë¤ÎËÜʸ¤Ë
+
+ confirm %(cookie)s
+
+¤À¤±¤òµ­Æþ¤·¤ÆÁ÷¿®¤·¤Æ¤â·ë¹½¤Ç¤¹.
+
+ñ¤Ë¤³¤Î¥á¡¼¥ë¤ËÊÖ¿®¤¹¤ë¤À¤±¤Ç¤â, ¿¤¯¤Î¥á¡¼¥ë¥×¥í¥°¥é¥à
+¤Ç¤Ï·ï̾¤òÀµ¤·¤¤·Á¤Ë¤·¤Æ¤¯¤ì¤ë¤Ï¤º¤Ç¤¹. (Subject: ¤Ë
+Re: ¤¬Æþ¤ë¤Î¤Ï¹½¤¤¤Þ¤»¤ó.)
+
+¤â¤·, ¤³¤Î¥ê¥¹¥È¤«¤éÂà²ñ¤¹¤ë°Õ»Ö¤¬Ìµ¤±¤ì¤Ð, ñ¤Ë¤³¤Î
+¥á¡¼¥ë¤ò̵»ë¤·¤Æ¤¯¤À¤µ¤¤. ¤â¤·Ã¯¤«¤Î°­°Õ¤Ç¥ê¥¹¥È¤«¤é
+Âà²ñ¤µ¤»¤é¤ì¤è¤¦¤È¤·¤Æ¤¤¤¿¤ê, ¼ÁÌäÅù¤¬¤¢¤ì¤Ð,
+%(listadmin)s ¤Þ¤Ç¤´Ï¢Íí²¼¤µ¤¤.
diff --git a/templates/ja/unsubauth.txt b/templates/ja/unsubauth.txt
new file mode 100644
index 00000000..e08b9ba7
--- /dev/null
+++ b/templates/ja/unsubauth.txt
@@ -0,0 +1,9 @@
+°Ê²¼¤Î¡¤Âà²ñ¿½ÀÁ¤Ë¤¢¤Ê¤¿¤Î¾µÇ§¤¬É¬ÍפǤ¹
+
+ ¿½ÀÁ¼Ô: %(username)s
+ ¥ê¥¹¥È: %(listname)s@%(hostname)s
+
+ÅÔ¹ç¤Î¤è¤¤¤È¤­¤Ë°Ê²¼¤Î URL¤Ç·èºÑ¤·¤Æ¤¯¤À¤µ¤¤¡¥
+
+ %(admindb_url)s
+
diff --git a/templates/ja/userpass.txt b/templates/ja/userpass.txt
new file mode 100644
index 00000000..586d1bed
--- /dev/null
+++ b/templates/ja/userpass.txt
@@ -0,0 +1,24 @@
+¤¢¤Ê¤¿¤«¤¢¤Ê¤¿¤ò¤«¤¿¤ë狼¤¬¡¢%(fqdn_lname)s ¥á¡¼¥ê¥ó¥°
+¥ê¥¹¥È²ñ°÷¥Ñ¥¹¥ï¡¼¥É¤Î¹µ¤¨¤òÍ׵ᤷ¤Þ¤·¤¿¡£¤¢¤Ê¤¿¤Ï
+ÀßÄê¤òÊѹ¹¤·¤¿¤ê(Î㤨¤ÐÉáÄÌÇÛÁ÷¤ò¤Þ¤È¤áÆÉ¤ß¤ËÀÚ¤êÂØ¤¨¤¿¤ê)
+¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤«¤éÂà²ñ¤¹¤ë¤Î¤Ë¤³¤Î¥Ñ¥¹¥ï¡¼¥É¤¬É¬ÍפǤ¹¡£
+
+¤¢¤Ê¤¿¤Ï¤³¤Î¥¢¥É¥ì¥¹¤ÇÆþ²ñ¤·¤Æ¤¤¤Þ¤¹¡£
+ %(user)s
+
+¤¢¤Ê¤¿¤Î %(listname)s ¤Î¥Ñ¥¹¥ï¡¼¥É¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡¥
+
+ %(password)s
+
+ÇÛÁ÷¥ª¥×¥·¥ç¥ó¤ÎÊѹ¹¤Ê¤É¤Ë¤Ï°Ê²¼¤Î WWW ¥Ú¡¼¥¸¤Ë
+¥í¥°¥¤¥ó¤·¤Æ¤¯¤À¤µ¤¤¡£
+
+ %(options_url)s
+
+¤Þ¤¿¥á¡¼¥ë¤ò»È¤Ã¤Æ¤â¡¤°Ê²¼¤Î¥¢¥É¥ì¥¹¤Ë help ¤ò
+Á÷¤ë¤³¤È¤ÇÍøÍÑË¡¤¬Ê֤äƤ­¤Þ¤¹¡¥
+
+ %(requestaddr)s
+
+¼ÁÌ䡦¥³¥á¥ó¥È¤Ï %(listname)s ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È´ÉÍý¼Ô¤Î
+%(owneraddr)s °¸¤Æ¤Ë¤É¤¦¤¾.
diff --git a/templates/ja/verify.txt b/templates/ja/verify.txt
new file mode 100644
index 00000000..f3b5622a
--- /dev/null
+++ b/templates/ja/verify.txt
@@ -0,0 +1,24 @@
+%(listname)s ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ÎÆþ²ñ³Îǧ.
+
+»ä¤¿¤Á¤Ï¡¤¤¢¤Ê¤¿¤ÎÅŻҥ᡼¥ë¥¢¥É¥ì¥¹ <%(email)s> ¤ò
+%(listaddr)s ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ËÆþ²ñ¤¹¤ë¤è¤¦%(remote)s
+¿½ÀÁ¤ò¼õ¤±¤Ä¤±¤Þ¤·¤¿¡¥³Îǧ¤Î¤¿¤á¡¤Subject: ¥Ø¥Ã¥À
+(·ï̾)¤ò¤½¤Î¤Þ¤Þ¤ÇÊÖ¿®¤·¤Æ¤¯¤À¤µ¤¤. ¤¢¤ë¤¤¤Ï, °Ê²¼¤Î
+Web ¥Ú¡¼¥¸¤ò¥¢¥¯¥»¥¹¤·¤Æ¤¯¤À¤µ¤¤.
+
+ %(confirmurl)s
+
+¤¢¤ë¤¤¤Ï, %(requestaddr)s °¸¤Æ¤Î¥á¡¼¥ë¤ÎËÜʸ¤Ë
+
+ confirm %(cookie)s
+
+¤À¤±¤òµ­Æþ¤·¤ÆÁ÷¿®¤·¤Æ¤â·ë¹½¤Ç¤¹.
+
+ñ¤Ë¤³¤Î¥á¡¼¥ë¤ËÊÖ¿®¤¹¤ë¤À¤±¤Ç¤â, ¿¤¯¤Î¥á¡¼¥ë¥×¥í¥°¥é¥à
+¤Ç¤Ï·ï̾¤òÀµ¤·¤¤·Á¤Ë¤·¤Æ¤¯¤ì¤ë¤Ï¤º¤Ç¤¹. (Subject: ¤Ë
+Re: ¤¬Æþ¤ë¤Î¤Ï¹½¤¤¤Þ¤»¤ó.)
+
+¤â¤·¡¤¤³¤Î¥ê¥¹¥È¤Ë²ÃÆþ¤¹¤ë¤Ä¤â¤ê¤¬¤Ê¤±¤ì¤Ð¡¤Ã±¤Ë¤³¤Î¥á¡¼¥ë
+¤ò̵»ë¤·¤Æ¤¯¤À¤µ¤¤¡¥¤â¤·¤¢¤Ê¤¿¤¬°­°Õ¤Ç¥ê¥¹¥È¤Ë²ÃÆþ¤µ¤ì
+¤½¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¹Í¤¨¤¿¤ê¡¢¤½¤Î¾¤Î¼ÁÌ䤬¤¢¤ì¤Ð¡¢
+´ÉÍý¼Ô¤Î %(listadmin)s ¤Þ¤Ç¥á¡¼¥ë¤¯¤À¤µ¤¤¡£
diff --git a/templates/ko/admindbdetails.html b/templates/ko/admindbdetails.html
new file mode 100644
index 00000000..ba825d66
--- /dev/null
+++ b/templates/ko/admindbdetails.html
@@ -0,0 +1,56 @@
+°ü¸®ÀÚ ¿äûÀº µÎ°¡Áö ¹æ½Ä Áß Çϳª·Î º¸¿©Áý´Ï´Ù. ÇѰ¡Áö´Â <a
+href="%(summaryurl)s">¿ä¾àÇÑ ÆäÀÌÁö</a>, ´Ù¸¥ ÇѰ¡Áö´Â <em>ÀÚ¼¼ÇÑ</em>
+ÆäÀÌÁöÀÔ´Ï´Ù. ¿ä¾àÇÑ ÆäÀÌÁö´Â º¸³½ÀÌÀÇ E¸ÞÀÏ ÁÖ¼Ò·Î ±×·ìÈ­ ÇÏ¿©
+°¡ÀÔ, Å»Åð, ´ç½ÅÀÇ ½ÂÀÎÀ» ±â´Ù¸®°í ÀÖ´Â ±ÛµéÀ» Æ÷ÇÔÇϰí ÀÖ½À´Ï´Ù.
+ÀÚ¼¼ÇÑ ÆäÀÌÁö´Â °¢ ¸Þ¼¼Áö¿¡ ´ëÇÑ ´õ ÀÚ¼¼ÇÑ °ÍÀ» º¸ÇÔÇϰí ÀÖ½À´Ï´Ù.
+¿¹¸¦ µé¸é ¸Þ¼¼ÁöÀÇ Çì´õ ¿Í ¸Þ¼¼Áö º»¹®ÀÇ ±ÛµéÀÌ ÀÖ½À´Ï´Ù.
+
+<p>¸ðµç ÆäÀÌÁö¿¡¼­ ´ÙÀ½ÀÇ ÇൿÀ» ÃëÇÒ ¼ö ÀÖ½À´Ï´Ù:
+
+<ul>
+<li><b>¿¬±âÇϱâ</b> - ³ªÁß¿¡ °áÁ¤Çϵµ·Ï ÇöÀç °áÁ¤À» ¿¬±âÇÕ´Ï´Ù.
+¸¸¾à ´ç½ÅÀÌ ¸Þ¼¼Áö¸¦ Áö¿ìÁö ¾Ê°í, ´Ù¸¥ »ç¶÷¿¡°Ô º¸³»°Å³ª, º¸°ü(¾Æ·¡¸¦ ÂüÁ¶Çϼ¼¿ä
+.)Çϱæ
+¿øÇÑ´Ù¸é ÀÌ °áÁ¤À» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
+<li><b>½ÂÀÎÇϱâ</b> - ¸Þ¼¼Áö¸¦ ½ÂÀÎÇÏ¿© ȸ¿øµé¿¡°Ô º¸³À´Ï´Ù.
+<li><b>°ÅÀýÇϱâ</b> - ¸Þ¼¼Áö¸¦ °ÅÀýÇÕ´Ï´Ù. º¸³½ÀÌ¿¡°Ô °ÅÀý¿¡ °üÇÑ °øÁö¸¦ º¸³À´Ï>
+´Ù.
+¿ø·¡ ¸Þ¼¼Áö´Â ¹ö·ÁÁö°Ô µË´Ï´Ù.
+<li><b>¹ö¸®±â</b> - º¸³½ÀÌ¿¡°Ô °ÅÀý °øÁö¸¦ º¸³»Áö ¾Ê°í ¸Þ¼¼Áö¸¦ ¹ö·Á ¹ö¸³´Ï´Ù.
+ÀÌ °áÁ¤Àº ½ºÆÔ ¸ÞÀÏÀÇ °æ¿ì ¾µ¸ðÀÖÀ» °ÍÀÔ´Ï´Ù.
+</ul>
+
+<p>¸¸¾à »çÀÌÆ® °ü¸®ÀÚ¸¦ À§ÇØ ÀÌ ¸Þ¼¼ÁöÀÇ º¹»çº»ÀÌ ÇÊ¿äÇÏ´Ù¸é
+<b>º¸°üÇϱâ</b>¿É¼ÇÀ» üũÇϽʽÿÀ. À̰ÍÀº µ¶¼³ÀÇ ¸Þ¼¼ÁöÀÇ °æ¿ì ¾µ¸ð
+ÀÖÀ» °ÍÀÔ´Ï´Ù. ¸¸¾à ¿©·¯ºÐÀÌ ¸®½ºÆ®¿¡ ¾ø´Â ¾î¶² ÀÌ¿¡°Ô ¸Þ¼¼Áö¸¦
+Àü´ÞÇÏ±æ ¿øÇÑ´Ù¸é Àü´ÞÇÒ ÁÖ¼Ò¸¦ ±âÀÔÇϽðí, <b>Àü´ÞÇϱâ</b> ¿É¼ÇÀ»
+üũÇϽʽÿÀ. ¸®½ºÆ®·Î º¸³»Áö Àü¿¡ Àâ¾ÆµÐ ¸Þ¼¼Áö¸¦ ¼öÁ¤Çϱâ À§ÇØ
+´ç½ÅÀº Àڱ⿡°Ô(ȤÀº ¸®½ºÆ® ¼ÒÀ¯ÁÖ)¿¡¼­ ¸ÞÀÏÀ» Àü´ÞÇÏ¿©¾ß Çϸç,
+¿øº» ¸Þ¼¼Áö´Â ¹ö·Á¾ß ÇÕ´Ï´Ù. ±×·³ ´ç½ÅÀÇ ¸ÞÀÏ»óÀÚ¿¡ ¸Þ¼¼Áö°¡ ³ªÅ¸
+³ª¸é ¼öÁ¤À» ÇÏ¿© ¸®½ºÆ®¿¡ ¸ÞÀÏÀ» ´Ù½Ã º¸³À´Ï´Ù. ¹°·Ð <tt>½ÂÀÎ:
+</tt> Çì´õ¿¡´Â ¸®½ºÆ® ºñ¹Ð¹øÈ£¸¦ Æ÷ÇÔÇØ¾ß ÇÕ´Ï´Ù. ¿©·¯ºÐÀÌ ¼öÁ¤ÇÑ
+ÅØ½ºÆ®¿¡¼­ ÀçÀü¼ÛÇÑ ÀÌÀ¯¿¡ ´ëÇÑ ÂªÀº ¼³¸íÀ» ºÙÀÌ´Â°Í ¿Â¶óÀÎ ¿¹Àý
+À̶ó°í »ý°¢ÇÕ´Ï´Ù.
+
+<p>¸¸¾à º¸³½À̰¡ ±Û°ü¸®µÇ´Â ¸®½ºÆ® ȸ¿øÀ̶ó¸é ´ç½ÅÀº ¼±ÅÃÀûÀ¸·Î
+±×µéÀÇ ±Û°ü¸® ±âÈ£¸¦ ¾ø¾ÖÁÙ ¼ö ÀÖ½À´Ï´Ù. À̰ÍÀº ´ç½ÅÀÇ ¸®½ºÆ®°¡
+»õ·Î¿î ȸ¿ø¿¡°Ô ±Û°ü¸®¸¦ ±âº»ÀûÀ¸·Î ¼³Á¤Çϰí, ´ç½ÅÀÌ ÀÌ È¸¿ø¿¡
+´ëÇØ ½ÂÀξøÀÌ ¸®½ºÆ®¿¡ ±ÛÀ» ½áµµ ¹®Á¦°¡ ¾ø°Ú´Ù »ý°¢ÇÏ´Â °æ¿ì¿¡
+À¯¿ëÇÏ°Ô »ç¿ëµÉ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù.
+
+<p>¸¸¾à º¸³½À̰¡ ¸®½ºÆ® ȸ¿øÀÌ ¾Æ´Ò °æ¿ì, ´ç½ÅÀº <em>º¸³½ÀÌ °É·¯³»±â
+</em>¿¡ E¸ÞÀÏ ÁÖ¼Ò¸¦ Ãß°¡ÇÒ ¼ö ÀÖ½À´Ï´Ù. º¸³½ÀÌ °É·¯³»±â´Â <a
+href="%(filterurl)s">º¸³½ÀÌ °É·¯³»±â °³ÀÎÁ¤º¸ Á¤Ã¥ ÆäÀÌÁö</a>¿¡ ¼³¸í
+µÇ¾î ÀÖ½º¸é <b>ÀÚµ¿-¹Þ¾ÆµéÀÓ</b> (¹Þ¾ÆµéÀÓ), <b>ÀÚµ¿-Àâ¾ÆµÎ±â</b>
+(Àâ¾ÆµÎ±â), <b>ÀÚµ¿-°ÅÀýÇϱâ</b> (°ÅÀýÇϱâ, ȤÀº <b>ÀÚµ¿-¹ö¸®±â</b>
+(¹ö¸®±â) Áß Çϳª¸¦ ¼±ÅÃÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¼³Á¤Àº ÁÖ¼Ò°¡ À̹Ì
+<em>º¸³½ÀÌ °É·¯³»±â</em>¿¡ Á¸ÀçÇÑ´Ù¸é ÀÌ¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.
+
+<p>¿©·¯ºÐÀÇ °áÁ¤ÀÌ ³¡³ª¼Ì´Ù¸é, ÀÌ ÆäÀÌÁöÀÇ À­ºÎºÐ°ú ¾Æ·¡ºÎºÐ¿¡ ÀÖ´Â
+<em>ÀÚ·á ó¸®Çϱâ</em> ¹öÅÏÀ» Ŭ¸¯Çϼ¼¿ä. ÀÌ ¹öÅÏÀº °ü¸®ÀûÀÎ ¿äûÀ»
+¿ä±¸ÇÑ ¸ðµç »çÇ׿¡ ´ëÇÑ ´ç½ÅÀÌ °áÁ¤ÇÑ ÇൿÀ» ÃëÇϵµ·Ï ÇÒ °ÍÀÔ´Ï´Ù.
+¸¸¾à ¿äû¿¡ ´ëÇÑ °áÁ¤À» Áö±Ý ÇÏÁö ¾ÊÀ¸½Ç °Å¸é ¾Æ¹«°Íµµ ¼Õ´ëÁö ¸»°í
+(¶óµð¿À¹öÅϵµ Æ÷ÇÔÇØ¼­) <em>ÀÚ·á ó¸®Çϱâ</em>À» ´©¸£½Ã¸é ´ë±â»óÅÂ
+DB ¿¡¼­ Á¦°ÅµÇÁö ¾ÊÀ» °ÍÀÔ´Ï´Ù.
+
+<p><a href="%(summaryurl)s">¿ä¾àÇÑ ÆäÀÌÁö·Î µ¹¾Æ°¡±â</a>.
diff --git a/templates/ko/admindbpreamble.html b/templates/ko/admindbpreamble.html
new file mode 100644
index 00000000..6100acd1
--- /dev/null
+++ b/templates/ko/admindbpreamble.html
@@ -0,0 +1,9 @@
+ÀÌ ÆäÀÌÁö´Â ´ç½ÅÀÇ ½ÂÀÎÀ» ±â´Ù¸®°í ÀÖ´Â ±ÛÀÇ ´ëÇÑ Á¤º¸¸¦ Æ÷ÇÔÇϰí ÀÖ½À
+´Ï´Ù. ÇöÀç %(description)s ·Î ³ªÅ¸³ª°í ÀÖ½À´Ï´Ù.
+
+<p>°¢°¢ÀÇ °ü¸® ¿äû¿¡ ´ëÇØ °áÁ¤ÀÌ ³¡³ª¼Ì´Ù¸é <b>ÀÚ·á ó¸®Çϱâ</b>¸¦
+Ŭ¸¯ÇÏ¿© Áֽñ⠹ٶø´Ï´Ù. ´õ ÀÚ¼¼ÇÑ ¸í·É¾î¿¡ ´ëÇÑ Á¤º¸´Â
+<a href="%(detailsurl)s">¿©±â</a>¿¡¼­ º¼ ¼ö ÀÖ½À´Ï´Ù.
+
+<p>¶ÇÇÑ ¿©·¯ºÐÀº ¸ðµç ´ë±â ¿äû¿¡ ´ëÇÑ <a href="%(summaryurl)s">
+¿ä¾àÇÑ ÆäÀÌÁö</a>¸¦ º¼ ¼ö ÀÖ½À´Ï´Ù.
diff --git a/templates/ko/admindbsummary.html b/templates/ko/admindbsummary.html
new file mode 100644
index 00000000..f3b27581
--- /dev/null
+++ b/templates/ko/admindbsummary.html
@@ -0,0 +1,11 @@
+ÀÌ ÆäÀÌÁö´Â <a href="%(adminurl)s"><em>%(listname)s</em> ¸ÞÀϸµ ¸®½ºÆ®
+</a>¿¡¼­ ´ç½ÅÀÇ ½ÂÀÎÀ» ±â´Ù¸®°í ÀÖ´Â °ü¸® ¿äû¿¡ ´ëÇÑ ÇöÀç ¿ä¾à
+³»¿ëÀ» °¡Áö°í ÀÖ½À´Ï´Ù. óÀ½¿¡ ¿©·¯ºÐÀº ´ç½ÅÀÇ ½ÂÀÎÀ» ±â´Ù¸®°í ÀÖ´Â
+°¡ÀÔ È¤Àº Å»Åð ¿äûÀÌ ÀÖÀ¸¸é ±×°ÍÀ» º¸°Ô µÉ°ÍÀÔ´Ï´Ù.
+
+<p>°¢°¢ÀÇ °ü¸® ¿äû¿¡ ´ëÇÑ ÇൿÀ» ¼±ÅÃÇÏ½Ã°í °áÁ¤Çϼ̴ٸé <b>ÀÚ·á
+ó¸®Çϱâ</b>¸¦ Ŭ¸¯ÇϽñ⠹ٶø´Ï´Ù. ¶ÇÇÑ <a href="%(detailsurl)s">
+´õ ÀÚ¼¼ÇÑ ¸í·É</a>¿¡ ´ëÇÑ °Íµµ À̿밡´É ÇÕ´Ï´Ù.
+
+<p>¶ÇÇÑ ¿©·¯ºÐÀº Àâ¾ÆµÐ ¸ðµç ±Ûµé¿¡ ´ëÇÑ <a href="%(viewallurl)s">
+ÀÚ¼¼ÇÑ ¼³¸í</a>À» º¼ ¼ö ÀÖ½À´Ï´Ù.
diff --git a/templates/ko/adminsubscribeack.txt b/templates/ko/adminsubscribeack.txt
new file mode 100644
index 00000000..8adecb2d
--- /dev/null
+++ b/templates/ko/adminsubscribeack.txt
@@ -0,0 +1,3 @@
+%(member)s ¸íÀÌ %(listname)s ¸ÞÀϸµ ¸®½ºÆ®¿¡ ¼º°øÀûÀ¸·Î µî·ÏµÇ¾ú½À´Ï´Ù.
+
+
diff --git a/templates/ko/adminunsubscribeack.txt b/templates/ko/adminunsubscribeack.txt
new file mode 100644
index 00000000..fb867bbd
--- /dev/null
+++ b/templates/ko/adminunsubscribeack.txt
@@ -0,0 +1,2 @@
+%(member)s ¸íÀÌ %(listname)s ¿¡¼­ Á¦°ÅµÇ¾ú½À´Ï´Ù.
+
diff --git a/templates/ko/admlogin.html b/templates/ko/admlogin.html
new file mode 100644
index 00000000..b857f931
--- /dev/null
+++ b/templates/ko/admlogin.html
@@ -0,0 +1,33 @@
+<html>
+<head>
+ <title>%(listname)s °ü¸®ÀÚ ÀÎÁõ</title>
+</head>
+<body bgcolor="#ffffff">
+<FORM METHOD=POST ACTION="%(path)s">
+%(message)s
+ <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1">%(listname)s °ü¸®ÀÚ ÀÎÁõ
+ </FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <TD> <div ALIGN="Right"> ¸ÞÀϸµ ¸®½ºÆ® °ü¸®ÀÚ ºñ¹Ð¹øÈ£: </div> </TD>
+ <TD> <INPUT TYPE=password NAME=adminpw SIZE=30></TD>
+ </tr>
+ <tr>
+ <td colspan=2 align=middle> <INPUT TYPE=SUBMIT name="request_login"
+ value="³ª¸¦ ¾ÈÀ¸·Î µé¿©º¸³»Áà!">
+ </td>
+ </tr>
+ </TABLE>
+ <p><strong><em>Áß¿ä:</em></strong> ÀÌ ½ÃÁ¡ºÎÅÍ ¿©·¯ºÐÀÇ ºê¶ó¿ìÀú¿¡
+ Äí۰¡ ÀúÀåµË´Ï´Ù. ÀÌ ºÎºÐºÎÅÍ ½ÃÀÛÇÏÁö ¾ÊÀ¸¸é, ´Ù¸¥ º¯°æµéÀº
+ ½ÇÁ¦·Î Àû¿ëµÇÁö ¾Ê½À´Ï´Ù.
+
+ <p>Mailman ÀÇ °ü¸® ÀÎÅÍÆäÀ̽º¿¡´Â ¼¼¼Ç Äí۸¦ »ç¿ëÇϱ⠶§¹®¿¡ ¸Å¹ø
+ ÀÎÁõÇÒ Çʿ䰡 ¾øÀ¸¸ç ÀÌ ÄíŰ´Â ¿©·¯ºÐÀÌ ºê¶ó¿ìÀú¸¦ ³¡³Â°Å³ª, <em>°ü¸®ÀÚ
+ È­¸é</em>¿¡¼­ º¼¼ö ÀÖ´Â "<em>·Î±×¾Æ¿ô</em>"(¿©·¯ºÐÀÌ ¼º°øÀûÀ¸·Î ·Î±ä À» ÇÏ¸é º¼ ¼ö
+ ÀÖ½À´Ï´Ù.) ¸¦ Ŭ¸¯Çϸé ÀÚµ¿À¸·Î Áö¿öÁý´Ï´Ù.
+</FORM>
diff --git a/templates/ko/approve.txt b/templates/ko/approve.txt
new file mode 100644
index 00000000..73534bf4
--- /dev/null
+++ b/templates/ko/approve.txt
@@ -0,0 +1,15 @@
+%(requestaddr)s ·Î º¸³½ ¾Æ·¡ÀÇ ¸í·É¾î´Â
+
+ %(cmd)s
+
+¸ÞÀϸµ ¸®½ºÆ® ¿î¿µÀÚ¿¡°Ô Æ÷¿öµù µÇ¾ú½À´Ï´Ù.
+
+À̰ÍÀº ¾Æ¸¶ '´ÝÈù'(°¡ÀÔÀÌ ¾ÈµÇ´Â) ¸ÞÀϸµ ¸®½ºÆ®¿¡ °¡ÀÔÀ» ½ÃµµÇß±â
+¶§¹®ÀÔ´Ï´Ù.
+
+¿©·¯ºÐÀÇ °¡ÀÔ ¿äû¿¡ ´ëÇÑ ¸ÞÀϸµ ¸®½ºÆ® ¿î¿µÀÚÀÇ °áÁ¤¿¡ ´ëÇÑ ºÎºÐÀ»
+¸ÞÀÏ·Î º¸³»ÁÙ °Í ÀÔ´Ï´Ù.
+
+¸ÞÀϸµ ¸®½ºÆ® ¿î¿µÀÚÀÇ Á¤Ã¥¿¡ ´ëÇÑ ¾î¶² Áú¹®Àº ¾Æ·¡ÀÇ ÁÖ¼Ò·Î ÇϽʽÿÀ.
+
+ %(adminaddr)s
diff --git a/templates/ko/article.html b/templates/ko/article.html
new file mode 100644
index 00000000..59cd636c
--- /dev/null
+++ b/templates/ko/article.html
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+ <HEAD>
+ <TITLE> %(title)s
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:%(email_url)s">
+ <META NAME="robots" CONTENT="index,nofollow">
+ %(encoding)s
+ %(prev)s
+ %(next)s
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>%(subject_html)s
+ </H1>
+ <B>%(author_html)s
+ </B>
+ <A HREF="mailto:%(email_url)s"
+ TITLE="%(subject_html)s">%(email_html)s
+ </A><BR>
+ <I>%(datestr_html)s</I>
+ <P><UL>
+ %(prev_wsubj)s
+ %(next_wsubj)s
+ <LI> <B>ÆíÁö Á¤·Ä ¼ø¼­:</B>
+ <a href="date.html#%(sequence)s">[ ³¯Â¥ ]</a>
+ <a href="thread.html#%(sequence)s">[ ¾²·¹µå ]</a>
+ <a href="subject.html#%(sequence)s">[ Á¦¸ñ ]</a>
+ <a href="author.html#%(sequence)s">[ ÀúÀÚ ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+%(body)s
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ %(prev_wsubj)s
+ %(next_wsubj)s
+ <LI> <B>ÆíÁö Á¤·Ä ¼ø¼­:</B>
+ <a href="date.html#%(sequence)s">[ ³¯Â¥ ]</a>
+ <a href="thread.html#%(sequence)s">[ ¾²·¹µå ]</a>
+ <a href="subject.html#%(sequence)s">[ Á¦¸ñ ]</a>
+ <a href="author.html#%(sequence)s">[ ÀúÀÚ ]</a>
+ </LI>
+ </UL>
+</body></html>
diff --git a/templates/ko/bounce.txt b/templates/ko/bounce.txt
new file mode 100644
index 00000000..626dcd51
--- /dev/null
+++ b/templates/ko/bounce.txt
@@ -0,0 +1,12 @@
+À̰ÍÀº Mailman ¸ÞÀϸµ ¸®½ºÆ® ¹Ù¿î½º ACTION ¿¡ ´ëÇÑ ºÎºÐÀÔ´Ï´Ù.
+
+ ¸®½ºÆ®: %(listname)s
+ ¸â¹ö : %(addr)s
+ Çൿ : °¡ÀÔ %(negative)s%(did)s.
+ ÀÌÀ¯ : ¹üÀ§ Ãʰú ȤÀº Ä¡¸íÀûÀÎ ¿¡·¯
+ %(but)s
+
+%(reenable)s
+¹Ù¿î½º ¿¡ ´ëÇÑ ºÎºÐÀº ¾Æ·¡¿¡ ÷ºÎÇÏ¿´½À´Ï´Ù.
+
+Áú¹®ÀÌ ÀÖ½À´Ï±î? %(owneraddr)s ÀÇ Mailman »çÀÌÆ® °ü¸®ÀÚ¿¡°Ô ¿¬¶ôÇϽʽÿÀ.
diff --git a/templates/ko/checkdbs.txt b/templates/ko/checkdbs.txt
new file mode 100644
index 00000000..a09105f6
--- /dev/null
+++ b/templates/ko/checkdbs.txt
@@ -0,0 +1,8 @@
+%(real_name)s@%(host_name)s ¸ÞÀϸµ ¸®½ºÆ®¿¡´Â ´ç½ÅÀÇ °ü½ÉÀ» ±â´Ù¸®´Â
+%(count)d °³ÀÇ ¿äû(µé)ÀÌ ¸ñÀÌ ºüÁúµí ±â´Ù¸®°í ÀÖ½À´Ï´Ù. ¾Æ·¡ÀÇ
+»çÀÌÆ®¸¦ ¹æ¹®ÇÏ½Ã¸é µË´Ï´Ù.
+
+ %(adminDB)s
+
+´ç½ÅÀÇ ÀÌÈÄÀÇ ÆíÀǸ¦ À§Çؼ­ °ü½ÉÀ» °¡Á®Áֽñ⠹ٶø´Ï´Ù. ÀÌ °ø±â´Â
+´ë±âÁßÀÎ ¿äûÀÌ ÇÏ·ç ÀÌ»ó ¹æÄ¡µÇ¾î ÀÖÀ» °æ¿ì º¸³»Áý´Ï´Ù.
diff --git a/templates/ko/convert.txt b/templates/ko/convert.txt
new file mode 100644
index 00000000..121acef3
--- /dev/null
+++ b/templates/ko/convert.txt
@@ -0,0 +1,37 @@
+%(listname)s ¸ÞÀϸµ ¸®½ºÆ®°¡ Áö±Ý Å« º¯È­¸¦ ÇÏ¿´½À´Ï´Ù. ÀÌÁ¦ºÎÅÍ
+"Mailman" À̶ó´Â ¸ÞÀϸµ ¸®½ºÆ® ÆÐŰÁö·Î ¿î¿µµË´Ï´Ù. ¸ÞÀϸµ ¸®½ºÆ®¸¦
+°ü¸®Çϸ鼭 °Ý°Ô µÇ´Â ¸¹Àº ¹®Á¦µéÀ» Mailman ÀÌ ÇØ°áÇØ ÁÖ¾úÀ½ ÇÕ´Ï´Ù.
+
+
+¿©·¯ºÐ¿¡°Ô ¾î¶°ÇÑ ¿µÇâÀ» ¹ÌÄ¡°Ô µÉ±î¿ä?
+
+1) ÀÌÁ¦ºÎÅÍ ¸ðµç ¸®½ºÆ®ÀÇ ¸ÞÀÏÀº %(listaddr)s ·Î º¸³»¼Å¾ß ÇÕ´Ï´Ù.
+
+2) ¿©·¯ºÐÀÌ ¾ËÁö ¸øÇÏ´Â »çÀÌ°Ô ´Ù¸¥ »ç¶÷¿¡ ÀÇÇØ Å»ÅðµÇ´Â °æ¿ì¸¦ ¸·±â
+À§ÇØ ÀÓÀÇÀÇ ºñ¹Ð¹øÈ£°¡ ÁÖ¾îÁö°Ô µË´Ï´Ù. ÀÌ ¸ÞÀÏÀº ¿©·¯ºÐ¿¡°Ô º¸³»Áö°Ô
+µÇ¹Ç·Î ºñ¹Ð¹øÈ£¸¦ ÀØÀ¸¼Ì´Ù°í °ÆÁ¤ÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù. ÇÑ´Þ¿¡ Çѹø E¸ÞÀÏ·Î
+ÆÐ½º¿öµå¸¦ º¸³»µå¸³´Ï´Ù.
+
+3) ¿©·¯ºÐÀÌ WWW ¿¡ Á¢¼ÓÇÒ ¼ö ÀÖ´Ù¸é ÀÌ ¸®½ºÆ®·ÎºÎÅÍ Å»ÅðÇϰųª,
+Digest ¿©ºÎ¸¦ ¼³Á¤Çϰųª ¹®Á¦Á¡µéÀ» °Ë»ç(¸®½ºÆ®°¡ ÇϷ絿¾È ±ÛµéÀ»
+¸ð¿î ÈÄ¿¡ ÀÌ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.)Çϰųª µîµîÀ» ¾ðÁ¦³ª ÇÒ ¼ö ÀÖ½À´Ï´Ù.
+±×·¯ÇÑ Á¤º¸ÀÇ WWW ÁÖ¼Ò´Â ¾Æ·¡¿Í °°½À´Ï´Ù.
+
+ %(listinfo_url)s
+
+4) ¿©·¯ºÐÀÌ WWW ¿¡ Á¢¼Ó ÇÒ ¼ö ¾ø´Ù¸é E¸ÞÀÏÀ» ÅëÇØ¼­ ¶È°°Àº ÀÏÀ»
+ÇÒ ¼ö ÀÖ½À´Ï´Ù. Á¦¸ñ ȤÀº º»¹®¿¡ "help"(µû¿ÈÇ¥ ¾øÀÌ) ¶ó°í ÀÔ·ÂÇϽðí
+%(requestaddr)s ·Î ¸ÞÀÏÀ» º¸³»½Ê½Ã¿À. »ç¿ë ¹æ¹ý¿¡ ´ëÇÑ ¼³¸í¼­¸¦
+¹Þ¾Æ º¸½Ç ¼ö ÀÖ½À´Ï´Ù.
+
+ÀÌ »õ·Î¿î ¼¼ÆÃ¿¡ ´ëÇÑ ¹®Á¦Á¡À̳ª, ¾î¶² Áú¹®ÀÌ ÀÖÀ¸½Ã¸é
+
+%(adminaddr)s
+
+·Î ¿¬¶ôÇØ ÁֽʽÿÀ.
+
+ÀÌ ¸Þ¼¼Áö´Â Mailman %(version)s ¿¡ ÀÇÇØ ÀÚµ¿ »ý¼ºµÇ¾ú½À´Ï´Ù.
+Mailman ¼ÒÇÁÆ®¿þ¾î¿¡ ´ëÇÑ ´õ ¸¹Àº Á¤º¸¸¦ ¿øÇϽŴٸé Mailman ȨÆäÀÌÁö
+http://www.list.org/
+¸¦ ¹æ¹®ÇØ Áֽñ⠹ٶø´Ï´Ù.
+
diff --git a/templates/ko/cronpass.txt b/templates/ko/cronpass.txt
new file mode 100644
index 00000000..020db307
--- /dev/null
+++ b/templates/ko/cronpass.txt
@@ -0,0 +1,16 @@
+ÀÌ ¸ÞÀÏÀº %(hostname)s ¸ÞÀϸµ ¸®½ºÆ® ¸â¹öµé¿¡°Ô ÇÑ´Þ¿¡ Çѹø¾¿ º¸³»´Â
+¸ÞÀÏÀÔ´Ï´Ù. ÀÌ ¸ÞÀÏÀº ¿©·¯ºÐÀÇ °¡ÀÔ Á¤º¸¿Í °¡ÀÔ Á¤º¸ º¯°æ ±×¸®°í
+¸ÞÀϸµ ¸®½ºÆ®¿¡¼­ Å»ÅðÇÏ´Â ¹æ¹ýÀ» ½Ç°í ÀÖ½À´Ï´Ù.
+
+¿©·¯ºÐÀÇ °¡ÀÔ ¼³Á¤, Å»Åð, Digest ¿©ºÎ ¼¼ÆÃ, Àá±ñµ¿¾È ¹è´Þ ±ÝÁö(¹æÇе¿¾È)
+µîµîÀÇ ¿©·¯ ¼¼ÆÃÀ» URL ¹æ¹®À» ÅëÇØ ÇÒ ¼ö ÀÖ½À´Ï´Ù.
+
+URL ÀÎÅÍÆäÀ̽º »Ó¸¸ ¾Æ´Ï¶ó E¸ÞÀÏÀ» ÅëÇØ¼­µµ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ´õ ¸¹Àº
+Á¤º¸¸¦ ¾òÀ¸½Ç·Á¸é º»¹®¿¡ 'help' ¶ó´Â ´Ü¾î¸¸ ³Ö°í, ¸ÞÀϸµ ¸®½ºÆ®ÀÇ ÁÖ¼Ò¿¡
+'-request' ¸¦ º¸Å¾( ¿¹¸¦ µé¸é, %(exreq)s ) º¸³»½Ê½Ã¿À. ±×·³ ¸í·É¾î
+¿¡ ´ëÇÑ ¼³¸íÀ» E¸ÞÀÏÀ» ÅëÇØ ¹ÞÀ¸½Ç ¼ö ÀÖ½À´Ï´Ù.
+
+¸¸¾à Áú¹®À̳ª, ¹®Á¦, ³íÀÇ °°Àº ³»¿ëÀÌ ÀÖÀ¸½Ã¸é %(owner)s ·Î º¸³» ÁֽʽÿÀ.
+°í¸¿½À´Ï´Ù.
+
+%(useraddr)s »ç¿ëÀÚÀÇ ÆÐ½º¿öµå´Â ¾Æ·¡¿Í °°½À´Ï´Ù.
diff --git a/templates/ko/disabled.txt b/templates/ko/disabled.txt
new file mode 100644
index 00000000..345478d2
--- /dev/null
+++ b/templates/ko/disabled.txt
@@ -0,0 +1,25 @@
+%(listname)s ¸ÞÀϸµ ¸®½ºÆ®¿¡¼­ ´ç½ÅÀÇ È°µ¿ÀÌ ¸¹Àº ¹Ù¿î½º ¹®Á¦·Î ±ÝÁö
+µÇ¾ú½À´Ï´Ù. ´ç½ÅÀº ½º½º·Î Ȱµ¿À» Àç°¡´ÉÇϱâ Àü±îÁö ÀÌ ¸ÞÀϸµ ¸®½ºÆ®
+¿¡¼­ ´õÀÌ»ó ¸ÞÀÏÀ» ¹ÞÀ¸½Ç ¼ö ¾ø½À´Ï´Ù. ´ç½ÅÀº ÀÌ ¸ÞÀϸµ ¸®½ºÆ®¿¡¼­
+»èÁ¦µÇ±â Àü¿¡ %(noticesleft)s ¹øÀÇ ÀÌ¿Í °°Àº ¸ÞÀÏÀ» ¹Þ°Ô µÉ °ÍÀÔ´Ï´Ù.
+
+¿©·¯ºÐÀÇ È¸¿ø±ÇÀ» Àç°¡´ÉÇÏ°Ô À§ÇØ ´ç½ÅÀº ÀÌ ¸Þ¼¼Áö¸¦ ȸ½ÅÀ» Çϰųª
+(Á¦¸ñ: ºÎºÐÀ» ±×´ë·Î µÎ¾î¾ß ÇÕ´Ï´Ù.) ȤÀº ¾Æ·¡ÀÇ È®ÀÎ ÆäÀÌÁö¸¦ ¹æ¹®
+ÇϽñ⠹ٶø´Ï´Ù.
+
+ %(confirmurl)s
+
+´ç½ÅÀº ¶ÇÇÑ È¸¿ø±Ç ÆäÀÌÁö¸¦ ¾Æ·¡ ¸µÅ©·Î ¹æ¹®ÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù.
+
+ %(optionsurl)s
+
+ȸ¿ø±Ç ÆäÀÌÁö¿¡¼­ ´ç½ÅÀÇ E¸ÞÀÏ ÁÖ¼Ò¶ó´ø°¡, ¹­À½¹è´Þ ¿©ºÎ¿Í °°Àº ¹è´Þ
+°ü·Ã ¼³Á¤À» º¯°æÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù. ´ç½ÅÀÇ È¸¿ø±Ç ºñ¹Ð¹øÈ£´Â ´ÙÀ½°ú
+°°½À´Ï´Ù.
+
+ %(password)s
+
+¸¸¾à ¾î¶² ¹®Á¦³ª Áú¹®ÀÌ ÀÖÀ¸½Ã¸é, ¸®½ºÆ® ¼ÒÀ¯ÁÖ¿¡°Ô ¿¬¶ô Áֽñ⠹ٶø
+´Ï´Ù.
+
+ %(owneraddr)s
diff --git a/templates/ko/emptyarchive.html b/templates/ko/emptyarchive.html
new file mode 100644
index 00000000..183f2bf8
--- /dev/null
+++ b/templates/ko/emptyarchive.html
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+ <HEAD>
+ <title>%(listname)s ÀúÀå¼Ò</title>
+ <META NAME="robots" CONTENT="noindex,follow">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <h1>%(listname)s ÀúÀå¼Ò </h1>
+ <p>
+ ¾ÆÁ÷ ÀÌ ¸ÞÀϸµ ¸®½ºÆ®¿¡ ¿Â ±ÛÀÌ ¾ø½À´Ï´Ù. ÇöÀç ÀúÀå¼Ò´Â ÇǾî ÀÖ½À´Ï´Ù.
+ ÀÌ ¸ÞÀϸµ ¸®½ºÆ®¿¡ ´ëÇÑ <a href="%(listinfo)s">´õ ¸¹Àº Á¤º¸</a>¸¦ ¾òÀ» ¼ö ÀÖ½À´Ï´Ù.
+ </p>
+ </BODY>
+ </HTML>
diff --git a/templates/ko/headfoot.html b/templates/ko/headfoot.html
new file mode 100644
index 00000000..a9daa054
--- /dev/null
+++ b/templates/ko/headfoot.html
@@ -0,0 +1,22 @@
+ÀÌ ¹®¼­´Â ¸ÞÀϸµ ¸®½ºÆ®¿¡ ¿¹¾àµÇ¾î Àִ Ư¼ºÀÇ <b><code>%(attribute)s</code></b>
+Çü½ÄÀ» Æ÷ÇÔÇϰí ÀÖ½À´Ï´Ù. ´õ ÀÚ¼¼ÇÑ ¼³¸íÀº
+<a href="http://www.python.org/doc/current/lib/typesseq-strings.html">PythonÀÇ
+¹®ÀÚ¿­ Çü½Ä ±ÔÄ¢</a>À» º¸½Ã±â ¹Ù¶ø´Ï´Ù. ¸î¸î À¯¿ëÇÑ ¼Ó¼ºÀº ¾Æ·¡¿Í °°½À´Ï´Ù.
+
+<ul>
+ <li><b><code>real_name</code></b> - ¸®½ºÆ®ÀÇ À̸§À» ³ªÅ¸³À´Ï´Ù. º¸Åë ´ë¹®ÀÚ·Î
+ ³ªÅ¸³³´Ï´Ù.
+
+ <li><b><code>_internal_name</code></b> - ½ÇÁ¦ URL ¿¡¼­ »ç¿ëµÇ´Â ¸®½ºÆ®ÀÇ À̸§
+
+ <li><b><code>host_name</code></b> - ¸ÞÀϸµ ¸®½ºÆ®°¡ ¿î¿µµÇ´Â È£½ºÆ®ÀÇ À̸§
+
+ <li><b><code>web_page_url</code></b> - Mailman ÀÇ ±âº» URL ÀÔ´Ï´Ù.
+ À̰ÍÀº ¸ÞÀϸµ ¸®½ºÆ®ÀÇ ¸ñ·ÏÁ¤º¸ ÆäÀÌÁö¸¦ ³ªÅ¸³»´Â
+ <em><code>listinfo/%(_internal_name)s</code></em> ¿Í °°ÀÌ Ã·°¡ µÉ ¼ö ÀÖ½À´Ï´Ù.
+
+ <li><b><code>description</code></b> - ¸ÞÀϸµ ¸®½ºÆ®ÀÇ °£·«ÇÑ ¼³¸í
+
+ <li><b><code>info</code></b> - ¸ÞÀϸµ ¸®½ºÆ®ÀÇ Àüü ¼³¸í
+ <li><b><code>cgiext</code></b> - CGI ½ºÅ©¸³Æ®¸¦ À§ÇÑ È®Àå.
+</ul>
diff --git a/templates/ko/help.txt b/templates/ko/help.txt
new file mode 100644
index 00000000..595d4fea
--- /dev/null
+++ b/templates/ko/help.txt
@@ -0,0 +1,32 @@
+%(listname)s ¸ÞÀϸµ ¸®½ºÆ®¸¦ À§ÇÑ µµ¿ò¸»ÀÔ´Ï´Ù :
+
+"Mailman" ¸®½ºÆ® ¸Å´ÏÀú ¹öÁ¯ %(version)sÀ» À§ÇÑ ¸ÞÀÏ ¸í·É µµ¿ò¸»ÀÔ´Ï´Ù.
+´ÙÀ½Àº ÀÌ »çÀÌÆ®¿¡¼­ Mailman ¸®½ºÆ®¿¡ ´ëÇÑ Á¤º¸¸¦ ¾ò°Å³ª ±¸µ¶¼³Á¤À» À§ÇØ
+º¸³¾ ¼ö ÀÖ´Â ¸í·É¿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù. ¸í·É¾î´Â Á¦¸ñÁÙ¿¡ ÀÔ·ÂÇϰųª ¸Þ¼¼Áö
+Áß°£¿¡ ÀÔ·ÂÇÒ ¼ö ÀÖ½À´Ï´Ù.
+
+´ëºÎºÐÀº ´ÙÀ½ÀÇ ÁÖ¼Ò¿¡¼­ ¼öÇàµÉ ¼ö ÀÖ½À´Ï´Ù :
+
+ %(listinfo_url)s
+
+ƯÈ÷, ´ç½ÅÀÇ ¸ÞÀÏ ¹è´Þ ÁÖ¼Ò·Î ´ç½ÅÀÇ ÆÐ½º¿öµå¸¦ Àü¼ÛÇϱâ À§ÇØ ÀÌ À¥»çÀÌÆ®¸¦
+ÀÌ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
+
+ƯÁ¤ ¸®½ºÆ®¿¡ ´ëÇØ ¸î °¡Áö ¸®½ºÆ® ¸í·É(subscribe, who, ±âŸ µîµî)Àº *-request
+ÁÖ¼Ò·Î Àü¼ÛÇØ¾ß¸¸ ÇÕ´Ï´Ù.
+¿¹¸¦ µé¸é 'mailman' ¸®½ºÆ®¿¡ ´ëÇØ¼­´Â 'mailman-request@...'¸¦ »ç¿ëÇÕ´Ï´Ù.
+
+"<>"¾ÈÀÇ ´Ü¾î´Â ¾ÆÀÌÅÛÀ» ¿ä±¸Çϸç, "[]"¾ÈÀÇ ´Ü¾î´Â ¾ÆÀÌÅÛÀ» ¼±ÅÃÀûÀ¸·Î
+ÇÊ¿äÇÕ´Ï´Ù. "<>"³ª "[]"¸¦ ¸í·É»ó¿¡ Æ÷ÇÔ½ÃŰÁö ¸¶½Ê½Ã¿ä.
+
+´ÙÀ½ÀÇ ¸í·ÉÀº À¯È¿ÇÕ´Ï´Ù :
+
+ %(commands)s
+
+¸í·É¾îµéÀº %(requestaddr)s·Î Àü¼ÛµË´Ï´Ù.
+
+»ç¶÷µéÀÇ ÆíÀǼºÀ» Á¦°øÇÒ ¼ö ÀÖ´Â Áú¹®À̳ª, °ü½ÉÀÌ ÀÖÀ¸½Ã¸é ¾Æ·¡ÀÇ ÁÖ¼Ò·Î
+º¸³»Áֽñ⠹ٶø´Ï´Ù.
+
+
+ %(adminaddr)s
diff --git a/templates/ko/invite.txt b/templates/ko/invite.txt
new file mode 100644
index 00000000..957a2540
--- /dev/null
+++ b/templates/ko/invite.txt
@@ -0,0 +1,20 @@
+%(hostname)s ¿¡¼­ ¿î¿µµÇ´Â %(listname)s ¸ÞÀϸµ ¸®½ºÆ® ÁÖÀÎÀåÀÌ
+´ç½Å("%(email)s")À» %(listname)s ¸ÞÀϸµ ¸®½ºÆ®·Î ÃÊ´ëÇÏ¿´½À´Ï´Ù.
+´ç½ÅÀº ÀÌ Ãʴ븦 ÀÌ ¸Þ¼¼Áö¿¡ ´ëÇØ °£´ÜÈ÷ ȸ½Å¸¸ ÇÔÀ¸·Î½á ¿äûÀ»
+¹Þ¾Æ µéÀÏ ¼ö ÀÖ½À´Ï´Ù. Çì´õÀÇ Á¦¸ñ: ºÎºÐÀº ±×´ë·Î À¯ÁöÇÏ¼Å¾ß ÇÕ
+´Ï´Ù.
+
+´ç½ÅÀº ¶ÇÇÑ ¾Æ·¡ÀÇ À¥ »çÀÌÆ®¸¦ ¹æ¹®ÇÒ ¼ö ÀÖ½À´Ï´Ù.
+
+ %(confirmurl)s
+
+ȤÀº ´ç½ÅÀº %(requestaddr)s ÁÖ¼Ò·Î
+´ÙÀ½ÀÇ ÇÑÁÙÀ» Æ÷ÇÔÇÏ¿© ȸ½ÅÇÒ ¼ö ÀÖ½À´Ï´Ù.
+
+ confirm %(cookie)s
+
+´ëºÎºÐÀÇ ¸ÞÀÏ ÇÁ·Î±×·¥¿¡¼­ ÀÌ ¸Þ¼¼Áö¿¡ ´ëÇØ °£´ÜÈ÷ `ȸ½Å'ÇÔÀ¸·Î½á
+¼Õ½±°Ô °¡ÀÔÇÒ ¼ö ÀÖ½À´Ï´Ù.
+
+¸¸¾à ÀÌ Ãʴ븦 °ÅÀýÇϽǷÁ¸é °£´ÜÈ÷ ÀÌ ¸Þ¼¼Áö¸¦ Áö¿ì½Ã±â ¹Ù¶ø´Ï´Ù.
+¾î¶² Áú¹®ÀÌ ÀÖÀ¸½Ã¸é %(listowner)s ·Î ÇØÁֽñ⠹ٶø´Ï´Ù.
diff --git a/templates/ko/listinfo.html b/templates/ko/listinfo.html
new file mode 100644
index 00000000..ba2b1a9e
--- /dev/null
+++ b/templates/ko/listinfo.html
@@ -0,0 +1,139 @@
+<!-- $Revision: 5046 $ -->
+<HTML>
+ <HEAD>
+ <TITLE><MM-List-Name> Á¤º¸ º¸±â</TITLE>
+
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+
+ <P>
+ <TABLE COLS="1" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1"><MM-List-Name> --
+ <MM-List-Description></FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <p>&nbsp;
+ </td>
+ </tr>
+ <tr>
+ <TD COLSPAN="1" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000"><MM-List-Name> ¼Ò°³</FONT></B>
+ </TD>
+ <TD COLSPAN="1" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <MM-lang-form-start><MM-displang-box> <MM-list-langs>
+ <MM-form-end>
+ <MM-Subscribe-Form-Start>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <P><MM-List-Info></P>
+ <p> ¸®½ºÆ®¿¡ Æ÷½ºÆÃµÈ ÀÌÀü ±ÛµéÀ» º¸½Ç·Á¸é
+ <MM-Archive><MM-List-Name>
+ ÀúÀå¼Ò</MM-Archive> ¸¦ º¸½Ã±â ¹Ù¶ø´Ï´Ù.
+ <MM-Restricted-List-Message>
+ </p>
+ </TD>
+ </TR>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000"><MM-List-Name> »ç¿ëÇϱâ</FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ ¸ÞÀϸµ ¸®½ºÆ® °¡ÀÔÀڵ鿡°Ô ¸Þ½ÃÁö¸¦ º¸³»·Á¸é
+ <A HREF="mailto:<MM-Posting-Addr>"><MM-Posting-Addr></A>
+ À¸·Î ¸ÞÀÏÀ» º¸³»½Ã¸é µË´Ï´Ù..
+
+ <p>¸ÞÀϸµ ¸®½ºÆ®¿¡ °¡ÀÔÇϰųª ÇöÀç °¡ÀԵǾî ÀÖ´Â »óŸ¦
+ ¾Æ·¡¿¡¼­ ¹Ù²Ù½Ç ¼ö ÀÖ½À´Ï´Ù.
+ </td>
+ </tr>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000"><MM-List-Name> °¡ÀÔÇϱâ</FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <P>
+ ´ÙÀ½ Ç׸ñµéÀ» ä¿ö Áּż­ <MM-List-Name> ¿¡ °¡ÀÔ ÇϽʽÿÀ.
+ <MM-List-Subscription-Msg>
+ <ul>
+ <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"
+ WIDTH="70%" HEIGHT= "112">
+ <TR>
+ <TD BGCOLOR="#dddddd" WIDTH="55%">ÀüÀÚ¿ìÆíÁÖ¼Ò:</TD>
+ <TD WIDTH="33%"><MM-Subscribe-Box>
+ </TD>
+ <TD WIDTH="12%">&nbsp;</TD></TR>
+ <tr>
+ <td bgcolor="#dddddd" width="55%">À̸§ (¼±ÅûçÇ×):</td>
+ <td width="33%"><mm-fullname-box></td>
+ <TD WIDTH="12%">&nbsp;</TD></TR>
+ <TR>
+ <TD COLSPAN="3"><FONT SIZE=-1>°³ÀÎÀûÀ¸·Î »ç¿ëÇÏÁö ¾Ê´Â ÆÐ½º¿öµå¸¦
+ »ç¿ëÇϽʽÿÀ. ¸ÞÀϸµ¸®½ºÆ®´Â ¿Ïº®ÇÑ º¸¾ÈÀ» Á¦°øÇÏÁö ¾Ê½À´Ï´Ù.
+ ÀÌ ÆÐ½º¿öµå´Â ´ÜÁö ½ºÆÐ¸Ó·Î ÀÎÇØ ¾Ç¿ëµÇÁö ¾Êµµ·Ï¸¸ ÇÕ´Ï´Ù.
+ ºñ¹Ð¹øÈ£´Â ¾Ïȣȭ ½ÃŰÁö ¾Ê°í ¿©·¯ºÐ¿¡°Ô º¸³»±â ¶§¹®¿¡ Àý´ë
+ <b>½ÇÁ¦ »ç¿ëÇÏ´Â ºñ¹Ð¹øÈ£´Â ÀÔ·ÂÇÏÁö ¸¶½Ê½Ã¿À.</b>
+ <p>¸¸¾à ¿©·¯ºÐÀÌ ºñ¹Ð¹øÈ£¸¦ ÀÔ·ÂÇÏÁö ¾Ê´Â´Ù¸é ÀÚµ¿À¸·Î ´ç½ÅÀ»
+ À§ÇÑ ºñ¹Ð¹øÈ£°¡ »ý¼ºµÇ¸ç, ´ç½ÅÀÇ °¡ÀÔ È®ÀÎ ¸ÞÀÏ¿¡ ÇÔ²² º¸³»
+ Áý´Ï´Ù. °³ÀÎ Á¤º¸ º¯°æÀ» À§ÇÑ ºñ¹Ð¹øÈ£¸¦ ¾ðÁ¦³ª ´Ù½Ã º¸³»
+ µå¸³´Ï´Ù.
+ <MM-Reminder>
+ </TD>
+ </TR>
+ <TR>
+ <TD BGCOLOR="#dddddd">ºñ¹Ð¹øÈ£ÀÔ·Â:</TD>
+ <TD><MM-New-Password-Box></TD>
+ <TD>&nbsp;</TD></TR>
+ <TR>
+ <TD BGCOLOR="#dddddd">´Ù½ÃÇѹøÀÔ·Â:</TD>
+ <TD><MM-Confirm-Password></TD>
+ <TD>&nbsp; </TD></TR>
+ <tr>
+ <TD BGCOLOR="#dddddd">»ç¿ëÇÒ ¾ð¾î¸¦ ¼±ÅÃÇϼ¼¿ä?</TD>
+ <TD> <MM-list-langs></TD>
+ <TD>&nbsp; </TD></TR>
+ <tr>
+ <td>¸Þ½ÃÁö¸¦ ÇÏ·ç¿¡ ÇÑ ¹ø¸¸ ¹­À½ Çü½ÄÀ¸·Î ¹Þ¾Æº¸µµ·Ï ¼³Á¤ÇϽðڽÀ´Ï±î?
+ </td>
+ <td><MM-Undigest-Radio-Button> ¾Æ´Ï¿ä
+ <MM-Digest-Radio-Button> ¿¹
+ </TD>
+ </tr>
+ <tr>
+ <td colspan="3">
+ <center><MM-Subscribe-Button></P></center>
+ </TABLE>
+ <MM-Form-End>
+ </ul>
+ </td>
+ </tr>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <a name="subscribers">
+ <B><FONT COLOR="#000000"><MM-List-Name> °¡ÀÔÀÚµé</FONT></B></a>
+ </TD>
+ </TR>
+ <tr>
+ <TD COLSPAN="2" WIDTH="100%">
+ <MM-Roster-Form-Start>
+ <MM-Roster-Option>
+ <MM-Form-End>
+ <p>
+ <MM-Options-Form-Start>
+ <MM-Editing-Options>
+ <MM-Form-End>
+ </td>
+ </tr>
+ </table>
+<MM-Mailman-Footer>
+</BODY>
+</HTML>
diff --git a/templates/ko/masthead.txt b/templates/ko/masthead.txt
new file mode 100644
index 00000000..bc43f2ad
--- /dev/null
+++ b/templates/ko/masthead.txt
@@ -0,0 +1,18 @@
+%(real_name)s ¸ÞÀϸµ ¸®½ºÆ® ÀÇ·Ú¼­¸¦ ¾Æ·¡ÀÇ ÁÖ¼Ò·Î º¸³»½Ê½Ã¿À.
+ %(got_list_email)s
+
+WWW À» ÅëÇØ¼­ °¡ÀÔ È¤Àº Å»Å𸦠ÇϽǷÁ¸é ¾Æ·¡ÀÇ »çÀÌÆ®¸¦ ¹æ¹®Çϼ¼¿ä.
+
+ %(got_listinfo_url)s
+
+ȤÀº E¸ÞÀÏÀ» ÅëÇØ¼­ ÇϽǷÁ¸é Á¦¸ñ ȤÀº º»¹®¿¡ 'help' ¸¦ ³Ö¾î ¾Æ·¡ÀÇ
+ÁÖ¼Ò·Î º¸³»½Ê½Ã¿À.
+
+ %(got_request_email)s
+
+¸ÞÀϸµ ¸®½ºÆ®ÀÇ ÁÖÀÎÀåÀº ¾Æ·¡ÀÇ ÁÖ¼Ò·Î ¿¬¶ô ÇÏ½Ã¸é µË´Ï´Ù.
+
+ %(got_owner_email)s
+
+´äÀåÀ» ¾²½Ç¶§ Á¦¸ñÀ» "Re: Contents of %(real_name)s digest..." º¸´Ù
+°£·«È÷ ÇÏ¿© º¸³»Áֽñ⠹ٶø´Ï´Ù.
diff --git a/templates/ko/newlist.txt b/templates/ko/newlist.txt
new file mode 100644
index 00000000..cdda0280
--- /dev/null
+++ b/templates/ko/newlist.txt
@@ -0,0 +1,35 @@
+´ç½ÅÀÇ `%(listname)s' ¸ÞÀϸµ ¸®½ºÆ®°¡ ÀÌÁ¦ »ý¼ºµÇ¾ú½À´Ï´Ù. ¸ÞÀϸµ ¸®½ºÆ®¿¡
+°üÇÑ ¸î¸î Á¤º¸°¡ ¾Æ·¡¿¡ ÀÖ½À´Ï´Ù. ÀÐ¾î º¸¼¼¿ä.
+
+¸ÞÀϸµ ¸®½ºÆ®ÀÇ ÆÐ½º¿öµå´Â
+
+ %(password)s
+
+ÀÔ´Ï´Ù. ¸ÞÀϸµ ¸®½ºÆ®¸¦ ¼³Á¤ÇÒ·Á¸é ÀÌ ÆÐ½º¿öµå°¡ ÇÊ¿äÇÕ´Ï´Ù. ¶ÇÇÑ
+moderator ¸®½ºÆ®¿Í °°Àº ´ç½ÅÀÇ ½ÂÀÎÀÌ ÇÊ¿äÇÑ ºÎºÐ¿¡¼­ ÀÌ ÆÐ½º¿öµå°¡
+ÇÊ¿äÇÕ´Ï´Ù.
+
+¾Æ·¡ÀÇ »çÀÌÆ®¿¡ Á¢¼ÓÇÔÀ¸·Î½á ´ç½ÅÀÇ ¸ÞÀϸµ ¸®½ºÆ®¸¦ ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
+
+ %(admin_url)s
+
+¸ÞÀϸµ ¸®½ºÆ® »ç¿ëÀÚ À¥ÆäÀÌÁö ÁÖ¼Ò´Â ¾Æ·¡¿Í °°½À´Ï´Ù.
+
+ %(listinfo_url)s
+
+¸ÞÀϸµ ¸®½ºÆ® ¼³Á¤ ºÎºÐ¿¡¼­ »ç¿ëÀÚ À¥ÆäÀÌÁö¸¦ °³¼ºÀÖ°Ô ²Ù¹Ð ¼ö ÀÖ½À´Ï´Ù.
+ÇÏÁö¸¸ À̰ÍÀ» ÇÒ·Á¸é HTML À» ´Ù·ê ¼ö ÀÖ¾î¾ß ÇÕ´Ï´Ù.
+
+¶ÇÇÑ E¸ÞÀÏ¿¡ ±â¹ÝÇÑ »ç¿ëÀÚ¿ë(°ü¸®ÀÚ¿ëÀÌ ¾Æ´Õ´Ï´Ù.) ÀÎÅÍÆäÀ̽º¸¦
+Á¦°øÇÕ´Ï´Ù. ´õ ¸¹Àº Á¤º¸´Â ¸Þ¼¼Áö º»¹®¿¡ ´ÜÁö 'help'¶ó´Â ´Ü¾î¸¸
+¾²°í ¾Æ·¡¿¡ ÁÖ¼Ò·Î º¸³¿À¸·Î½á »ç¿ë ¹æ¹ýÀ» ¹Þ¾Æ º¼ ¼ö ÀÖ½À´Ï´Ù.
+
+ %(requestaddr)s
+
+Å»ÅðÇϱâ À§Çؼ­ ¸ÞÀϸµ ¸®½ºÆ®ÀÇ 'listinfo' À¥ ÆäÀÌÁö¿¡¼­ ¿©·¯ºÐÀÇ
+E¸ÞÀÏ ÁÖ¼Ò¸¦ ÀÔ·ÂÇϰųª, Ŭ¸¯ÇÏ¿© ÇÒ¼ö ÀÖÀ¸¸ç, Å»ÅðÇϱâ À§Çؼ­´Â
+ÀÔ·ÂÇϽŠÆÐ½º¿öµå°¡ ÇÊ¿äÇÕ´Ï´Ù. °ü¸®ÀÚ ÆÐ½º¿öµå ¶ÇÇÑ »ç¿ë°¡´ÉÇÕ´Ï´Ù.
+¶ÇÇÑ ¸ÞÀϸµ ¸®½ºÆ® °¡ÀÔÀÚÀÇ ¿É¼Ç(Digest ¿©ºÎ, ¹è´Þ ±ÝÁö µîµî)À»
+¿©·¯ºÐÀÌ ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
+
+±âŸ ´Ù¸¥ Áú¹®Àº mailman-owner@%(hostname)s À¸·Î ÇÏ¿© Áֽñ⠹ٶø´Ï´Ù.
diff --git a/templates/ko/options.html b/templates/ko/options.html
new file mode 100644
index 00000000..635b1ef4
--- /dev/null
+++ b/templates/ko/options.html
@@ -0,0 +1,306 @@
+<!-- $Revision: 5046 $ -->
+<html>
+<head>
+ <title><MM-Presentable-User> ÀÇ <MM-List-Name> ¿¡¼­ »ç¿ëÀÚ ¼³Á¤Çϱâ
+ </title>
+</head>
+<BODY BGCOLOR="#ffffff">
+ <TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#99CCFF"><B>
+ <FONT COLOR="#000000" SIZE=+1>
+ <MM-List-Name> ÀÇ
+ <MM-Presentable-User> »ç¿ëÀÚ ¼³Á¤Çϱâ
+ </FONT></B></TD></TR>
+ </TABLE>
+<MM-Form-Start>
+<p>
+<table width="100%" border="0" cellspacing="5" cellpadding="5">
+ <tr><td>
+ <MM-List-Name> ¸ÞÀϸµ ¸®½ºÆ®¿¡¼­ <b><MM-Presentable-User></b>
+ »ç¿ëÀÚÀÇ °¡ÀÔ »óÅÂ, ÆÐ½º¿öµå, ±âŸ ¿É¼ÇµîÀ» ´Ù·ì´Ï´Ù.
+ </td><td><mm-logout-button></td>
+ </tr><tr>
+ <td colspan="2">
+ <MM-Case-Preserved-User>
+
+ <MM-Disabled-Notice>
+
+ <p><mm-results>
+ </td>
+ </tr>
+</table>
+
+<p>
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#FFF0D0" colspan="2">
+ <FONT COLOR="#000000">
+ <B><MM-List-Name> ȸ¿ø Á¤º¸ º¯°æÇϱâ</B>
+ </FONT></TD></TR>
+ <tr><td colspan="2">You can change the address that you are subscribed
+ to the mailing list with by entering the new address in the
+ fields below. Note that a confirmation email will be sent to
+ the new address, and the change must be confirmed before it is
+ processed.
+
+ <p>Confirmations time out after about <mm-pending-days>.
+
+ <p>You can also optionally set or change your real name
+ (i.e. <em>John Smith</em>).
+
+ <p>If you want to make the membership changes for all the
+ lists that you are subscribed to at <mm-host>, turn on the
+ <em>Change globally</em> check box.
+
+ </td></tr>
+ <tr><td><center>
+ <table border="0" cellspacing="2" cellpadding="2" width="80%" cols="2">
+ <tr><td bgcolor="#dddddd"><div align="right">»õ·Î¿î E¸ÞÀÏ ÁÖ¼Ò:</div></td>
+ <td><mm-new-address-box></td>
+ </tr>
+ <tr><td bgcolor="#dddddd"><div align="right">È®ÀÎÀ»À§ÇØ Çѹø ´õ ÀÔ·Â
+ :</div></td>
+ <td><mm-confirm-address-box></td>
+ </tr>
+ </tr></table></center>
+ </td>
+ <td><center>
+ <table border="0" cellspacing="2" cellpadding="2" width="80%" cols="2">
+ <tr><td bgcolor="#dddddd"><div align="right">À̸§
+ (¼±ÅûçÇ×):</div></td>
+ <td><mm-fullname-box></td>
+ </tr>
+ </table></center>
+ </td>
+ </tr>
+ <tr><td colspan="2"><center><mm-change-address-button>
+ <p><mm-global-change-of-address>ÀüüÀûÀ¸·Î º¯°æ</center></td>
+ </tr>
+</table>
+
+<p>
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="5" CELLPADDING="5">
+ <TR><TD WIDTH="50%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B><MM-List-Name> Å»ÅðÇϱâ</B></td>
+
+ <TD WIDTH="50%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B><MM-Host> ÀÇ ´Ù¸¥ ¸ÞÀϸµ ¸®½ºÆ® °¡ÀÔ »óȲ</B>
+ </FONT></TD></TR>
+
+ <tr><td>
+ ÀÌ ¸ÞÀϸµ ¸®½ºÆ®·Î ºÎÅÍ Å»ÅðÇϱâ À§ÇØ È®ÀΠüũ ¹Ú½º¸¦ üũ
+ ÇϽðí ÀÌ ¹öưÀ» ´©¸£½Ã±â ¹Ù¶ø´Ï´Ù.
+ <strong>°æ°í:</strong>
+ ÀÌ µ¿ÀÛÀº Áï°¢ÀûÀ¸·Î ÀÏ¾î ³³´Ï´Ù. µ¹ÀÌų ¼ö ¾ø½À´Ï´Ù.
+ <p>
+ <center><MM-Unsubscribe-Button></center></td>
+ <td>
+ ¿©·¯ºÐÀÇ È¸¿øÀ̽Š<mm-host> »óÀÇ ´Ù¸¥ ¸ÞÀϸµ ¸®½ºÆ® °¡ÀÔ »óȲ
+ ¹× ¿É¼Ç ÆäÀÌÁö¸¦ º¸½Ã°íÀÚ ÇÑ´Ù¸é À̰ÍÀ» »ç¿ëÇϽʽÿÀ.
+ <p>
+ <center><MM-Other-Subscriptions-Submit></center>
+ </TD></TR>
+</table>
+
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD COLSPAN=2 WIDTH="100%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>¼³Á¤ÇϽŠ<MM-List-Name> ºñ¹Ð¹øÈ£</B>
+ </FONT></TD></TR>
+
+ <tr valign="TOP"><td WIDTH="50%">
+ <a name=reminder>
+ <center>
+ <h3>ºñ¹Ð¹øÈ£¸¦ ÀØÀ¸¼Ì³ª¿ä?</h3>
+ </center>
+ ¾Æ·¡ ¹öưÀ» ´©¸£½Ã¸é ¸ÞÀϸµ ¸®½ºÆ®¿¡ µî·ÏµÈ ´ç½ÅÀÇ E¸ÞÀÏ ÁÖ¼Ò·Î
+ ºñ¹Ð¹øÈ£°¡ º¸³»¾î Áý´Ï´Ù.
+ <p><MM-Umbrella-Notice>
+ <center>
+ <MM-Email-My-Pw>
+ </center>
+ </td>
+
+ <td WIDTH="50%">
+ <a name=changepw>
+ <center>
+ <h3>Change Your Password</h3>
+ <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2" WIDTH="70%" COLS=2>
+ <TR><TD BGCOLOR="#dddddd"><div align="right">»õ
+ ºñ¹Ð¹øÈ£:</div></TD>
+ <TD><MM-New-Pass-Box></TD>
+ </TR>
+ <TR>
+ <TD BGCOLOR="#dddddd"><div align="right">Çѹø´õ
+ ÀÔ·Â:</div></TD>
+ <TD><MM-Confirm-Pass-Box></TD>
+ </TR>
+ </table>
+
+ <MM-Change-Pass-Button>
+ <p><center><mm-global-pw-changes-button>ÀüüÀûÀ¸·Î º¯°æ
+ </center>
+</TABLE>
+
+<p>
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B><MM-List-Name> ¸ÞÀϸµ ¸®½ºÆ® ±¸µ¶ ¿É¼Ç</B>
+ </FONT></TD></TR>
+</table>
+
+<p>
+<i><strong>üũµÇ¾î ÀÖ´Â Ç׸ñÀÌ ÇöÀç ¼±ÅõǾîÁø °ÍÀÔ´Ï´Ù.</strong></i>
+
+<p>¸î¸î ¼³Á¤ÀÇ °æ¿ì <em>ÀüüÀûÀ¸·Î ¼³Á¤</em>ÇÒ ¼ö ÀÖ½À´Ï´Ù. <mm-host>
+¿¡ ´ç½ÅÀÌ È¸¿øÀ̽ŠÀÌ ¸ÞÀϸµ ¸®½ºÆ®¿¡ ¼³Á¤º¯°æÀ» °¡ÇÏ°Ô µË´Ï´Ù. ´ç½ÅÀÌ
+<em>°¡ÀÔÇϽŠ´Ù¸¥ ¸®½ºÆ® ¸ñ·Ï</em>À» º¸½Ç·Á¸é À§¿¡ ÀÖ´Â °ÍÀ» Ŭ¸¯ÇÏ¿©
+Áֽñ⠹ٶø´Ï´Ù.
+<p>
+<TABLE BORDER="0" CELLSPACING="3" CELLPADDING="4" WIDTH="100%">
+ <tr><TD BGCOLOR="#cccccc">
+ <a name="disable">
+ <strong>ÆíÁö ¹è´Þ</strong></a><p>
+ ÀÌ ¸ÞÀϸµ ¸®½ºÆ®¿¡¼­ ¹ß»ýÇÑ ±ÛÀ» ¹Þ¾Æ º¸½Ç·Á¸é <em>¿¹</em>
+ ·Î ¼³Á¤ÇϽñ⠹ٶø´Ï´Ù. ¸¸¾à ¿©·¯ºÐÀÌ Àá±ñµ¿¾È ¸ÞÀÏÀ» ¹ÞÁö
+ ¾ÊÀ¸½Ç·Á¸é <em>¾Æ´Ï¿ä</em>·Î ¼¼ÆÃÇϽñ⠹ٶø´Ï´Ù. (¿¹¸¦ µé¸é
+ , ¹æÇе¿¾È) ¸¸¾à ¿©·¯ºÐÀÌ ÆíÁö ¹è´ÞÀ» ±ÝÁöÇÏ½Å´Ù¸é ¿©·¯ºÐ
+ ¹æÇÐ ÈÄ¿¡ ´Ù½Ã Àç°¡µ¿ ½ÃŰ´Â °É ÀØÁö ¸¶½Ã±â ¹Ù¶ø´Ï´Ù.
+ </td><td bgcolor="#cccccc">
+ <mm-delivery-enable-button>¿¹<br>
+ <mm-delivery-disable-button>¾Æ´Ï¿ä<p>
+ <mm-global-deliver-button><i>ÀüüÀûÀ¸·Î ¼³Á¤</i>
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>¹­À½¹è´Þ ¼³Á¤</strong><p>
+ ¸¸¾à ¿©·¯ºÐÀÌ ¼³Á¤À» "¿¹"¶ó°í ÇÏ½Å´Ù¸é ¹­À½¹è´ÞÀ» ½ÅûÇÏ´Â °ÍÀÔ´Ï´Ù.
+ (º¸Åë ÇÏ·ç¿¡ Çѹø Á¤µµ º¸³»Áý´Ï´Ù.) ´ë½Å º¸³¾¶§, ´Ü ÇÑÅ븸 º¸³»°Ô
+ µË´Ï´Ù. ¸¸¾à ¹­À½¹è´ÞÀÌ "¾Æ´Ï¿ä"·Î ¹Ù²Ù°Ô µÈ´Ù¸é, ±× ÈÄ¿¡ ÇѹøÀÇ
+ ¹­À½¹è´Þ ÆíÁö¸¦ ¹Þ°Ô µÉ °ÍÀÔ´Ï´Ù.
+ </td><td bgcolor="#cccccc">
+ <MM-Undigest-Radio-Button>¾Æ´Ï¿ä<br>
+ <MM-Digest-Radio-Button>¿¹
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>MIME ȤÀº Æò¹® ¹­À½ ¹è´ÞÁß ¾î¶² °É ¼±ÅÃÇϽðڽÀ´Ï±î?</strong><p>
+ ´ç½ÅÀÇ ¸ÞÀÏ ÇÁ·Î±×·¥Àº MIME¸¦ Áö¿øÇϰųª, ȤÀº ÇÏÁö ¾ÊÀ» °ÍÀÔ´Ï´Ù.
+ ÀϹÝÀûÀ¸·Î MIME ¹­À½¹è´ÞÀÌ ±âº»ÀÔ´Ï´Ù. ¸¸¾à MIME Çü½ÄÀ» Àдµ¥,
+ ¹®Á¦°¡ ÀÖÀ¸¸é "Æò¹®"À» ¼±ÅÃÇϽñ⠹ٶø´Ï´Ù.
+ </td><td bgcolor="#cccccc">
+ <MM-Mime-Digests-Button>MIME<br>
+ <MM-Plain-Digests-Button>Æò¹®
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>ÀÚ½ÅÀÌ º¸³½ ¿ìÆí¹°À» ¹ÞÀ» °Ç°¡¿ä?</strong><p>
+ ÀϹÝÀûÀ¸·Î ¿©·¯ºÐÀÌ ¸®½ºÆ®¿¡ ±ÛÀ» º¸³»°Ô µÇ¸é ¿©·¯ºÐÀÌ º¸³½
+ ¸Þ¼¼Áö¸¦ ´Ù½Ã ¹Þ°Ô µË´Ï´Ù. ¸¸¾à ÀÌ º¹»çº»À» ¹Þ±æ ¿øÇÏÁö ¾ÊÀ¸
+ ½Ã¸é, ÀÌ ¿É¼ÇÀ» <em>¾Æ´Ï¿ä</em>·Î ¼³Á¤ÇϽñ⠹ٶø´Ï´Ù.
+ </td><td bgcolor="#cccccc">
+ <mm-dont-receive-own-mail-button>¾Æ´Ï¿ä<br>
+ <mm-receive-own-mail-button>¿¹
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>¸®½ºÆ®¿¡ º¸³½ "¸ÞÀÏ È®ÀÎ" ¸ÞÀÏÀ» ¹Þ¾Æ º¸½Ç °Ç°¡¿ä?
+ </strong><p>
+ </td><td bgcolor="#cccccc">
+ <mm-dont-ack-posts-button>¾Æ´Ï¿ä<br>
+ <mm-ack-posts-button>¿¹
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>ÀÌ ¸®½ºÆ®¿¡¼­ º¸³»´Â ºñ¹Ð¹øÈ£ ÆíÁö¸¦ º¸³¾ °Ç°¡¿ä?</strong><p>
+ ÇÑ´Þ¿¡ Çѹø ¿©·¯ºÐÀÌ °¡ÀÔÇÑ È£½ºÆ®·Î ºÎÅÍ ºñ¹Ð¹øÈ£¸¦ ´ãÀº
+ ÆíÁö¸¦ ¹Þ°Ô µÉ °Í ÀÔ´Ï´Ù. ¿©·¯ºÐÀÌ ÀÌ ¼³Á¤Àº <em>¾Æ´Ï¿ä</em>
+ ·Î ¼³Á¤ÇÔÀ¸·Î½á ±× ¸ÞÀÏÀ» ¹ÞÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ¸¸¾à ´ç½ÅÀÌ
+ °¡ÀÔÇÑ ¸ðµç ¸®½ºÆ®ÀÇ ÀÌ ¼³Á¤ ºÎºÐÀ» <em>¾Æ´Ï¿ä</em>·Î ¼³Á¤
+ ÇÑ´Ù¸é ÆÐ½º¿öµå ÆíÁö´Â ¿©·¯ºÐ¿¡°Ô °¡Áö ¾ÊÀ» °ÍÀÔ´Ï´Ù.
+ </td><td bgcolor="#cccccc">
+ <mm-dont-get-password-reminder-button>¾Æ´Ï¿ä<br>
+ <mm-get-password-reminder-button>¿¹<p>
+ <mm-global-remind-button><i>ÀüüÀûÀ¸·Î º¯°æ</i>
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>°¡ÀÔÀÚ ¸í´Ü¿¡¼­ ¿©·¯ºÐÀÇ À̸§À» ¼û±æ±î¿ä?</strong><p>
+ ¾î¶² »ç¶÷ÀÌ ¸®½ºÆ® ȸ¿øÀ» º¼¶§, ´ç½ÅÀÇ E¸ÞÀÏ ÁÖ¼Ò´Â º¸Åë
+ º¸ÀÌ°Ô µË´Ï´Ù. ¹°·Ð ½ºÆÐ¸Ó°¡ E¸ÞÀÏÀ» °¡Á®°¡µµ »ó°ü¾ø°Ô º¯Á¶
+ µË´Ï´Ù. ¸¸¾à ¿©·¯ºÐÀÌ È¸¿ø ¸ñ·Ï¿¡ ÀÚ½ÅÀÇ E¸ÞÀÏ ÁÖ¼Ò°¡ º¸À̱æ
+ ¿øÇÏÁö ¾ÊÀ¸½Ã´Ù¸é ÀÌ ¼³Á¤À» <em>¾Æ´Ï¿ä</em>¸¦ ¼±ÅÃÇÏ¿© ÁֽʽÿÀ.
+ </td><td bgcolor="#cccccc">
+ <MM-Public-Subscription-Button>¾Æ´Ï¿ä<br>
+ <MM-Hide-Subscription-Button>¿¹
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>¿©·¯ºÐÀÌ »ç¿ëÇÒ ¾ð¾î´Â ¹«¾ùÀԴϱî?</strong><p>
+ </td><td bgcolor="#cccccc">
+ <MM-list-langs>
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>°¡ÀÔÇϰíÀÚ ÇÏ´Â ÁÖÁ¦ÀÇ ºÐ·ù´Â ¾î¶² °ÍÀԴϱî?</strong><p>
+ Çϳª ÀÌ»óÀÇ ÁÖÁ¦¸¦ ¼±ÅÃÇÔÀ¸·Î½á ´ç½ÅÀº ¸ÞÀϸµ ¸®½ºÆ®ÀÇ
+ Æ®·¡ÇÈÀ» °É·¯³¾ ¼ö ÀÖÀ¸¸ç, ÁÖÁ¦¿Í ¸Â´Â ¸Þ¼¼Áö¸¸ ¹ÞÀ»
+ ¼ö ÀÖ½À´Ï´Ù. ¸¸¾à ¿©·¯ºÐÀÌ ¼±ÅÃÇÑ ÁÖÁ¦¿Í ¸Þ¼¼Áö°¡ ¸Â
+ ´Â ´Ù¸é ¿©·¯ºÐ¿¡°Ô ¹è´ÞµÇÁö¸¸ ±×·¸Áö ¾ÊÀ» °æ¿ì ¹è´Þ
+ µÇÁö ¾Ê½À´Ï´Ù.
+
+ <p>¸¸¾à ¸Þ¼¼Áö°¡ ¾î¶°ÇÑ ÁÖÁ¦¿Íµµ ¸ÂÁö ¾Ê´Â´Ù¸é ¹è´Þ
+ ±ÔÄ¢Àº ¾Æ·¡ ¼³Á¤¿¡ ÀÇÁ¸ÇÏ°Ô µË´Ï´Ù. ¸¸¾à ¿©·¯ºÐÀÌ
+ °ü½ÉÀÖ¾îÇÏ´Â ÁÖÁ¦¸¦ ¼±ÅÃÇÏÁö ¾ÊÀ¸½Ã¸é ¿©·¯ºÐÀº
+ ¸ÞÀϸµ ¸®½ºÆ®·Î ¿À´Â ¸ðµç ¸Þ¼¼Áö¸¦ ¹ÞÀ» °ÍÀÔ´Ï´Ù.
+ </td><td bgcolor="#cccccc">
+ <mm-topics>
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>ÁÖÁ¦ °É·¯³»±â¿¡¼­ ¾î¶°ÇÑ ÆÐÅϰúµµ ¸ÂÁö ¾Ê´Â ¸Þ¼¼Áö¸¦
+ ¹Þ¾Æº¸½Ã°Ú½À´Ï±î?</strong><p>
+ ÀÌ ¼³ÀûÀº ´ÜÁö ¿©·¯ºÐÀÌ À§ÀÇ ÁÖÁ¦Áß Çϳª¶óµµ °¡ÀÔÇϼžß
+ Àû¿ëµÇ´Â ¼³Á¤ÀÔ´Ï´Ù. ÁÖÁ¦ °É·¯³»±â ÆÐÅϰú ¸ÂÁö ¾ÊÀ» °æ¿ì
+ ¿¡ ±× ¸Þ¼¼Áö¸¦ ¾î¶»°Ô ó¸®Çϴ°¡¿¡ ´ëÇÑ ¼³Á¤À» Çϰí ÀÖ½À´Ï´Ù.
+ <em>¾Æ´Ï¿ä</em> ·Î ¼±ÅÃÇϽøé, ÁÖÁ¦ °É·¯³»±â ÆÐÅϰú
+ ¾î´À°Íµµ ¸ÂÁö ¾ÊÀº ¸Þ¼¼Áö´Â ¿©·¯ºÐ¿¡°Ô ¹è´ÞµÇÁö ¾ÊÀ¸¸é
+ <em>¿¹</em>·Î ¼±ÅÃÇÏ½Ã¸é ¿©·¯ºÐ¿¡°Ô ¹è´ÞµË´Ï´Ù.
+
+ <p>¸¸¾à °ü½ÉÀÖ´Â ÁÖÁ¦°¡ ¾øÀ¸½Ã¸é ¸ÞÀϸµ ¸®½ºÆ®·Î ¿À´Â
+ ¸ðµç ¸Þ¼¼Áö¸¦ ¹Þ°Ô µÉ °ÍÀÔ´Ï´Ù.
+ </td><td bgcolor="#cccccc">
+ <mm-suppress-nonmatching-topics>¾Æ´Ï¿ä<br>
+ <mm-receive-nonmatching-topics>¿¹
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>¸Þ¼¼Áö°¡ Áߺ¹µÇ´Â °ÍÀº ¹ÞÁö ¾ÊÀ»±î¿ä?</strong><p>
+
+ ¿©·¯ºÐÀÌ ¸®½ºÆ® ¸Þ¼¼ÁöÀÇ Çì´õÀÇ <tt>To:</tt> ȤÀº <tt>Cc:</tt>
+ ºÎºÐ¿¡ ¿©·¯ºÐÀÇ ÁÖ¼Ò°¡ µé¾î ÀÖÀ¸¸é ¸ÞÀϸµ ¸®½ºÆ®·Î ºÎÅÍ
+ ¿©·¯ Áߺ¹µÇ´Â ¸Þ¼¼Áö¸¦ ¹Þ°Ô µË´Ï´Ù. <em>¿¹</em>·Î ¼±ÅÃ
+ ÇϽøé Áߺ¹µÇ´Â °ÍÀ» ¹ÞÁö ¾ÊÀ¸¸ç <em>¾Æ´Ï¿ä</em>·Î ¼±ÅÃ
+ ÇÏ½Ã¸é ¸ÞÀϸµ ¸®½ºÆ®·Î ºÎÅÍ ¸Þ¼¼Áö¸¦ ¹Þ°Ô µË´Ï´Ù.
+
+ <p>¸¸¾à ¸®½ºÆ®°¡ <em>ȸ¿ø °³º°È­µÈ ¸Þ¼¼Áö</em>°¡ °¡´É
+ ÇÏ°Ô µÇ¾î ÀÖ´Ù¸é ´ç½ÅÀº <tt>X-Mailman-Copy: yes</tt>
+ Çì´õ¸¦ ´õÇÔÀ¸·Î½á ¸ðµç º¹»ç¸Þ¼¼Áö¿¡ ´ëÇØ ¼±º°ÇÒ ¼ö ÀÖ
+ ½À´Ï´Ù.
+
+ </td><td bgcolor="#cccccc">
+ <mm-receive-duplicates-button>¾Æ´Ï¿ä<br>
+ <mm-dont-receive-duplicates-button>¿¹<p>
+ <mm-global-nodupes-button><i>ÀüüÀûÀ¸·Î º¯°æ</i>
+ </td></tr>
+
+ <tr><TD colspan="2">
+ <center><MM-options-Submit-button></center>
+ </td></tr>
+
+</table>
+</center>
+<p>
+<MM-Form-End>
+
+<MM-Mailman-Footer>
+</body>
+</html>
diff --git a/templates/ko/postack.txt b/templates/ko/postack.txt
new file mode 100644
index 00000000..5a30e970
--- /dev/null
+++ b/templates/ko/postack.txt
@@ -0,0 +1,7 @@
+¸Þ¼¼Áö Á¦¸ñ :
+
+ %(subject)s
+
+ %(listname)s ¸ÞÀϸµ ¸®½ºÆ®¿¡ ¸Þ¼¼Áö°¡ ¼º°øÀûÀ¸·Î µî·ÏµÇ¾ú½À´Ï´Ù .
+
+¸ÞÀϸµ ¸®½ºÆ® Á¤º¸ ÆäÀÌÁö : %(listinfo_url)s
diff --git a/templates/ko/postauth.txt b/templates/ko/postauth.txt
new file mode 100644
index 00000000..dceb1239
--- /dev/null
+++ b/templates/ko/postauth.txt
@@ -0,0 +1,12 @@
+¸®½ºÆ® °ü¸®Àڷμ­, ´ÙÀ½ÀÇ ¸ÞÀϸµ ¸®½ºÆ® µî·ÏÀ» À§ÇØ ÀÎÁõÀÌ ÇÊ¿äÇÕ´Ï´Ù :
+
+
+ ¸®½ºÆ®: %(listname)s@%(hostname)s
+ Àü¼ÛÀÚ: %(sender)s
+ Á¦¸ñ : %(subject)s
+ ÀÌÀ¯ : %(reason)s
+
+ÆíÀǸ¦ À§ÇØ, ¿äûÀ» ½ÂÀÎÇϰųª °ÅºÎÇϱâ À§Çؼ­ ´ÙÀ½À» ¹æ¹®ÇϽʽÿä :
+
+ %(admindb_url)s
+
diff --git a/templates/ko/postheld.txt b/templates/ko/postheld.txt
new file mode 100644
index 00000000..6189c595
--- /dev/null
+++ b/templates/ko/postheld.txt
@@ -0,0 +1,15 @@
+´ÙÀ½ÀÇ Á¦¸ñÀ¸·Î '%(listname)s'·Î º¸³½ ¸ÞÀÏÀÌ
+
+ %(subject)s
+
+¸®½ºÆ® °ü¸®ÀÚÀÇ ½ÂÀÎÀ» ¾ò±â À§ÇØ ´ë±âÁßÀÔ´Ï´Ù.
+
+´ë±âÁßÀÎ ÀÌÀ¯´Â :
+
+ %(reason)s
+
+¸Þ¼¼Áö´Â ¸ÞÀϸµ ¸®½ºÆ®¿¡ Æ÷½ºÆ®µÇ°Å³ª °ü¸®ÀÚÀÇ °áÁ¤¿¡ ´ëÇÑ °øÁö¸¦
+¹Þ°Ô µÉ°ÍÀÔ´Ï´Ù. ¸¸¾à ¿©·¯ºÐÀÌ º¸³½ ±ÛÀ» Ãë¼Ò ÇϽǷÁ¸é ´ÙÀ½ÀÇ URLÀ»
+¹æ¹®ÇϽñ⠹ٶø´Ï´Ù.
+
+ %(confirmurl)s
diff --git a/templates/ko/private.html b/templates/ko/private.html
new file mode 100644
index 00000000..e7f997c6
--- /dev/null
+++ b/templates/ko/private.html
@@ -0,0 +1,42 @@
+<html>
+<head>
+ <title>%(realname)s ºñ°ø°³ ÀúÀå¼Ò ÀÎÁõ</title>
+</head>
+<body bgcolor="#ffffff">
+<FORM METHOD=POST ACTION="%(action)s/">
+%(message)s
+ <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1">%(realname)s ºñ°ø°³
+ ÀúÀå¼Ò ÀÎÁõ</FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <TD><div ALIGN="Right">E¸ÞÀÏ ÁÖ¼Ò:</div></TD>
+ <TD><INPUT TYPE="text" NAME="username" SIZE="30"></TD>
+ </tr>
+ <tr>
+ <TD><div ALIGN="Right">ºñ¹Ð¹øÈ£:</div></TD>
+ <TD><INPUT TYPE="password" NAME="password" SIZE="30"></TD>
+ </tr>
+ <tr>
+ <td colspan=2 align="middle"><INPUT type="SUBMIT"
+ name="submit"
+ value="³ª¸¦ ¾ÈÀ¸·Î µé¿©º¸³»Áà!">
+ </td>
+ </tr>
+ </TABLE>
+ <p><strong><em>Áß¿ä</em></strong>: ÀÌ ½ÃÁ¡ºÎÅÍ ¿©·¯ºÐÀÇ
+ ºê¶ó¿ìÀú¿¡ Äí۰¡ ÀúÀåµË´Ï´Ù. ÀÌ ºÎºÐºÎÅÍ ½ÃÀÛÇÏÁö ¾ÊÀ¸¸é,
+ ´Ù¸¥ º¯°æµéÀº ½ÇÁ¦·Î Àû¿ëµÇÁö ¾Ê½À´Ï´Ù.
+
+ <p>Mailman ÀÇ °ü¸® ÀÎÅÍÆäÀ̽º¿¡´Â ¼¼¼Ç Äí۸¦ »ç¿ëÇϱ⠶§¹®¿¡
+ ¸Å¹ø ÀÎÁõÇÒ Çʿ䰡 ¾øÀ¸¸ç ÀÌ ÄíŰ´Â ¿©·¯ºÐÀÌ ºê¶ó¿ìÀú¸¦ ³¡³Â°Å³ª,
+ <em>°ü¸®ÀÚ È­¸é</em>¿¡¼­ º¼¼ö ÀÖ´Â "<em>·Î±×¾Æ¿ô</em>"(¿©·¯ºÐÀÌ
+ ¼º°øÀûÀ¸·Î ·Î±ä À» ÇÏ¸é º¼ ¼ö ÀÖ½À´Ï´Ù.) ¸¦ Ŭ¸¯Çϸé
+ ÀÚµ¿À¸·Î Áö¿öÁý´Ï´Ù.
+
+</FORM>
+</body>
+</html>
diff --git a/templates/ko/refuse.txt b/templates/ko/refuse.txt
new file mode 100644
index 00000000..17d0542b
--- /dev/null
+++ b/templates/ko/refuse.txt
@@ -0,0 +1,13 @@
+ %(listname)s ¸ÞÀϸµ ¸®½ºÆ®¿¡ ´ëÇÑ ´ÙÀ½ÀÇ ¿äûÀÌ
+
+ %(request)s
+
+¸®½ºÆ® °ü¸®ÀÚ¿¡ ÀÇÇØ °ÅºÎµÇ¾ú½À´Ï´Ù.
+
+¿äû °ÅºÎÀÌÀ¯´Â ´ÙÀ½°ú °°½À´Ï´Ù :
+
+"%(reason)s"
+
+Àǹ®»çÇ×À̳ª ÀǰßÀº ´ÙÀ½À» ÅëÇØ ¸®½ºÆ® °ü¸®ÀÚ¿¡°Ô Á÷Á¢ Àü´ÞµË´Ï´Ù :
+
+ %(adminaddr)s
diff --git a/templates/ko/roster.html b/templates/ko/roster.html
new file mode 100644
index 00000000..f27aff48
--- /dev/null
+++ b/templates/ko/roster.html
@@ -0,0 +1,50 @@
+<!-- $Revision: 5046 $ -->
+<HTML>
+ <HEAD>
+ <TITLE><MM-List-Name> °¡ÀÔÀÚµé</TITLE>
+
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+
+ <P>
+ <TABLE WIDTH="100%" COLS="1" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1"><MM-List-Name>
+ °¡ÀÔÀÚ¸í´Ü</FONT></B>
+ </TD>
+ </TR>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" ALIGN="CENTER">
+
+ <P>°¡ÀÔ º¯°æÀ» ÇϽǷÁ¸é ¿©·¯ºÐÀÇ Email ÁÖ¼Ò¸¦ ã¾Æ Ŭ¸¯ÇϽʽÿÀ.
+ <br><I>(°ýÈ£ Ç¥½ÃµÈ Ç׸ñÀº "±Û¾²±â ±ÇÇÑ"ÀÌ ¾ø´Â Ç׸ñÀ» °¡¸£Åµ´Ï´Ù.)
+ </I></P>
+ </TD>
+ </TR>
+ <TR WIDTH="100%" VALIGN="top">
+ <TD BGCOLOR="#FFF0D0" WIDTH="50%">
+ <center>
+ <B><FONT COLOR="#000000">
+ <MM-List-Name> ¿¡¼­ Digest¸¦ ½Åû ¾ÈÇϽŠºÐµé : <MM-Num-Reg-Users></FONT></B>
+ </center>
+ </TD>
+ <TD BGCOLOR="#FFF0D0" WIDTH="50%">
+ <center>
+ <B><FONT COLOR="#000000">
+ <MM-List-Name> ¿¡¼­ Digest¸¦ ½ÅûÇϽŠºÐµé : <MM-Num-Digesters></FONT></B>
+ </center>
+ </TD>
+ </TR>
+ <TR VALIGN="top">
+ <td>
+ <P><MM-Regular-Users>
+ </td>
+ <td>
+ <P><MM-Digest-Users>
+ </td>
+ </tr>
+ </table>
+<MM-Mailman-Footer>
+</BODY>
+</HTML>
diff --git a/templates/ko/subauth.txt b/templates/ko/subauth.txt
new file mode 100644
index 00000000..d457ebdf
--- /dev/null
+++ b/templates/ko/subauth.txt
@@ -0,0 +1,9 @@
+¸ÞÀϸµ ¸®½ºÆ® ±¸µ¶ ¿äûÀ» ½ÂÀÎÇϱâ À§Çؼ­ ÀÎÁõÀÌ ÇÊ¿äÇÕ´Ï´Ù :
+
+ »ç¿ëÀÚ: %(username)s
+ ¸®½ºÆ®: %(listname)s@%(hostname)s
+
+ÆíÀǸ¦ À§ÇØ, ¿äûÀ» ó¸®ÇÏ·Á¸é ´ÙÀ½À» ¹æ¹®Çϼ¼¿ä :
+
+ %(admindb_url)s
+
diff --git a/templates/ko/subscribe.html b/templates/ko/subscribe.html
new file mode 100644
index 00000000..ce8059f3
--- /dev/null
+++ b/templates/ko/subscribe.html
@@ -0,0 +1,9 @@
+<!-- $Revision: 5046 $ -->
+<html>
+<head><title><MM-List-Name> °¡ÀÔ °á°ú</title></head>
+<body>
+<h1><MM-List-Name> °¡ÀÔ °á°ú</h1>
+<MM-Results>
+<MM-Mailman-Footer>
+</body>
+</html>
diff --git a/templates/ko/subscribeack.txt b/templates/ko/subscribeack.txt
new file mode 100644
index 00000000..3b3cef06
--- /dev/null
+++ b/templates/ko/subscribeack.txt
@@ -0,0 +1,33 @@
+%(real_name)s@%(host_name)s ¸ÞÀϸµ ¸®½ºÆ®¿¡ °¡ÀÔÇϽаÍÀ» ȯ¿µÇÕ´Ï´Ù.
+%(welcome)s
+ÀÌ ¸ÞÀϸµ ¸®½ºÆ®¿¡ Æ÷½ºÆÃÀ» Çϱâ À§Çؼ­´Â ¾Æ·¡ÀÇ ÁÖ¼Ò·Î ÇϽʽÿÀ.
+
+ %(emailaddr)s
+
+¸ÞÀϸµ ¸®½ºÆ®¿¡ ´ëÇÑ ÀϹÝÀûÀÎ Á¤º¸´Â ¾Æ·¡ÀÇ »çÀÌÆ®¿¡ º¼ ¼ö ÀÖ½À´Ï´Ù.
+
+ %(listinfo_url)s
+
+¸¸¾à ¿©·¯ºÐÀÌ Å»ÅðÇϰųª, ¿©·¯ºÐÀÇ °¡ÀÔ ¼³Á¤(Digest ¿©ºÎ, ÆÐ½º¿öµå º¯°æ,
+±âŸµîµî)À» ¹Ù²Ù±æ ¿øÇÏ½Å´Ù¸é ¾Æ·¡ÀÇ »çÀÌÆ®¸¦ ¹æ¹®ÇØ ÁÖ¼¼¿ä.
+
+ %(optionsurl)s
+%(umbrella)s
+¿©·¯ºÐÀº ¶ÇÇÑ ¾Æ·¡ÀÇ E¸ÞÀÏ·Î ¸ÞÀÏÀ» º¸³¿À¸·Î½á ¸ÞÀÏÀ» ÅëÇØ ¼³Á¤À» Á¶Á¤
+ÇÒ¼ö ÀÖ½À´Ï´Ù.
+
+ %(real_name)s-request@%(host_name)s
+
+ÆíÁöÀÇ Á¦¸ñ, ȤÀº º»¹®¿¡ ´Ü¼øÈ÷ 'help' ¶ó´Â ´Ü¾î¸¦ ÀÔ·ÂÇϽðí À§ ÁÖ¼Ò
+·Î º¸³»¸é ¸í·É¾î¿¡ ´ëÇÑ ¼³Á¤À» ¹Þ¾Æ º¸½Ç ¼ö ÀÖ½À´Ï´Ù.
+
+¿©·¯ºÐÀÇ °¡ÀÔ ¼³Á¤(ÆÐ½º¿öµå¸¦ Æ÷ÇÔÇØ¼­)À» º¯°æÇϽðųª, Å»ÅðÇϽñâ
+À§Çؼ­´Â ²À ÆÐ½º¿öµå¸¦ ¾Ë¾Æ¾ß ÇÕ´Ï´Ù. ÆÐ½º¿öµå´Â ¾Æ·¡¿Í °°½À´Ï´Ù.
+
+ %(password)s
+
+ÆÐ½º¿öµå¸¦ Àؾú´Ù°í, °ÆÁ¤ÇÏÁö ¸¶½Ê½Ã¿À. ¿©·¯ºÐÀÇ %(host_name)s ¸ÞÀϸµ
+¸®½ºÆ®¿¡¼­ ÆÐ½º¿öµå ¹«¾ùÀÎÁö ÇÑ´Þ¿¡ Çѹø ¿©·¯ºÐÀÇ E¸ÞÀÏ·Î ÆíÁö¸¦ º¸³»
+µå¸³´Ï´Ù. ±× ÆíÁö¿¡´Â °¡ÀÔ ¼³Á¤ º¯°æ ȤÀº Å»Åð ¹æ¹ýÀ» Æ÷ÇÔÇϰí ÀÖ½À´Ï´Ù.
+¶ÇÇÑ ¼³Á¤ °ü·Ã ÆäÀÌÁö¿¡´Â ¹Ù·Î ¿©·¯ºÐÀÇ ÆÐ½º¿öµå¸¦ E¸ÞÀÏ·Î º¸³»ÁÖ´Â
+¹öưÀÌ ÀÖÀ¸´Ï, ÇÊ¿äÇÏ½Ã¸é ´­·¯(Click)ÁÖ¼¼¿ä.
diff --git a/templates/ko/unsub.txt b/templates/ko/unsub.txt
new file mode 100644
index 00000000..8da037d6
--- /dev/null
+++ b/templates/ko/unsub.txt
@@ -0,0 +1,20 @@
+%(listname)s ¸ÞÀϸµ ¸®½ºÆ® Á¦°Å È®ÀÎ °øÁö
+
+¿ì¸®´Â %(listaddr)s ¸ÞÀϸµ ¸®½ºÆ®·ÎºÎÅÍ ´ç½ÅÀÇ "%(email)s" ÁÖ¼ÒÀÇ
+Á¦°Å ¿äû %(remote)s À» ¹Þ¾Ò½À´Ï´Ù. ÀÌ ¸ÞÀϸµ ¸®½ºÆ®¿¡¼­ Á¤¸» »èÁ¦
+ÇÏ±æ ¿øÇϽŴٸé Çì´õÀÇ Á¦¸ñ: À» ±×´ë·Î À¯ÁöÇÑä, ±×´ë·Î ȸ½ÅÇϽñâ
+¹Ù¶ø´Ï´Ù. ȤÀº ÀúÈñ À¥ ÆäÀÌÁö¸¦ ¹æ¹®ÇϽñ⠹ٶø´Ï´Ù.
+
+ %(confirmurl)s
+
+ȤÀº ´ÙÀ½ ÁÙ(line)À» ³Ö¾î %(requestaddr)s ·Î ȸ½ÅÇØ Áּŵµ µË´Ï´Ù.
+
+ confirm %(cookie)s
+
+´ëºÎºÐÀÇ ¸ÞÀÏ ÇÁ·Î±×·¥¿¡¼­ ÀÌ ¸Þ¼¼Áö¿¡ ´ëÇØ `ȸ½Å' ¹öư¸¸ ´©¸§À¸·Î
+½á °£´ÜÈ÷ ÇÒ ¼ö ÀÖ½À´Ï´Ù. Çì´õÀÇ Á¦¸ñ: Àº ±×´ë·Î ³õ¾Æ µÎ¼Å¾ß ÇÕ´Ï´Ù.
+(Á¦¸ñ¿¡ Ãß°¡ÀûÀ¸·Î "Re:" °¡ µé¾î °¡¼Åµµ »ó°ü¾ø½À´Ï´Ù.)
+
+¸¸¾à ÀÌ ¸®½ºÆ®·Î ºÎÅÍ »èÁ¦ÇÏ´Â °É ¿øÇÏÁö ¾ÊÀ¸½Ã¸é °£´ÜÈ÷ ÀÌ ¸Þ¼¼Áö
+¸¦ Áö¿ì½Ê½Ã¿À. ¸¸¾à ´ç½ÅÀÌ ½º½º·Î ¸ÞÀϸµ ¸®½ºÆ®¿¡¼­ »èÁ¦ÇÒ ¼ö ¾ø
+°Å³ª, ¾î¶² Áú¹®ÀÌ ÀÖÀ¸½Ã¸é %(listadmin)s ·Î º¸³»ÁֽʽÿÀ.
diff --git a/templates/ko/unsubauth.txt b/templates/ko/unsubauth.txt
new file mode 100644
index 00000000..20c3cfc1
--- /dev/null
+++ b/templates/ko/unsubauth.txt
@@ -0,0 +1,10 @@
+Your authorization is required for a mailing list unsubscription
+request approval:
+¸ÞÀϸµ ¸®½ºÆ® Å»Åð ¿äû¿¡ ´ç½ÅÀÇ ÀÎÁõÀÌ ÇÊ¿äÇÕ´Ï´Ù.
+
+ º¸³½ÀÌ: %(username)s
+ º¸³½°÷: %(listname)s@%(hostname)s
+
+À¥À» ÅëÇØ ÇϽøé 󸮸¦ Æí¸®ÇÏ°Ô ÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù.
+
+ %(admindb_url)s
diff --git a/templates/ko/userpass.txt b/templates/ko/userpass.txt
new file mode 100644
index 00000000..62b41d21
--- /dev/null
+++ b/templates/ko/userpass.txt
@@ -0,0 +1,20 @@
+ÀÌ ÆíÁö´Â ¸ÞÀϸµ ¸®½ºÆ® %(listname)s »óÀÇ "%(user)s" »ç¿ëÀÚÀÇ °¡ÀÔ
+¼³Á¤À» º¯°æÇϰųª, Å»ÅðÇÏ´Â ¹æ¹ýÀ» ¼³Á¤ÇÑ ¸ÞÀÏÀÔ´Ï´Ù.
+´ç½ÅÀÇ %(listname)s ÆÐ½º¿öµå´Â ¾Æ·¡¿Í °°½À´Ï´Ù.
+
+ %(password)s
+
+¼³Á¤ º¯°æÀ» Çϱâ À§Çؼ­´Â ¾Æ·¡ÀÇ »çÀÌÆ®¿¡ Á¢¼ÓÇϼż­ ÆÐ½º¿öµå¸¦ »ç¿ë
+ÇϽʽÿÀ.
+
+ %(options_url)s
+
+¶ÇÇÑ E¸ÞÀÏÀ» ÅëÇØ¼­ ó¸®ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¾Æ·¡ÀÇ ÁÖ¼Ò·Î
+
+ %(requestaddr)s
+
+ÆíÁöÀÇ Á¦¸ñ ȤÀº º»¹®¿¡ "help" ¶ó´Â ´Ü¾î¸¦ ³Ö¾î º¸³»½Ã¸é, ¸í·É¾î¿¡
+´ëÇÑ ¼³¸íÀ» ¹Þ¾Æ º¸½Ç ¼ö ÀÖ½À´Ï´Ù.
+
+Áú¹®À̳ª, °ÇÀǰ¡ ÀÖÀ¸½Ê´Ï±î? %(adminaddr)s·Î º¸³»Áֽñ⠹ٶø´Ï´Ù.
+°¨»çÇÕ´Ï´Ù.
diff --git a/templates/ko/verify.txt b/templates/ko/verify.txt
new file mode 100644
index 00000000..483c5a8f
--- /dev/null
+++ b/templates/ko/verify.txt
@@ -0,0 +1,23 @@
+%(listname)s ¸ÞÀ̸µ ¸®½ºÆ® °¡ÀÔ È®ÀÎ °øÁö
+
+ÀúÈñ´Â %(remote)s ¿¡¼­ ´ç½ÅÀÇ E¸ÞÀÏ ÁÖ¼Ò( %(email)s )ÀÇ
+ %(listaddr)s ¸ÞÀϸµ ¸®½ºÆ® °¡ÀÔ ¿äûÀ» ¹Þ¾Ò½À´Ï´Ù. ¿äû¿¡ ´ëÇÑ È®ÀÎ
+À» À§Çؼ­ ÀÌ ¸ÞÀÏÀ» %(requestaddr)s ·Î º¸³»Áֽñ⠹ٶø´Ï´Ù. ÁÖÀÇÇØ¾ß
+ÇÒ »çÇ×Àº ¾Æ·¡¿Í °°½À´Ï´Ù.
+
+- ÆíÁöÀÇ Á¦¸ñÀ» ±×´ë·Î À¯ÁöÇϽʽÿÀ. ( "Re:" °¡ ºÙÀº °ÍÀº Çã¶ôÇÕ´Ï´Ù. ),
+
+- ȤÀº ¾Æ·¡ÀÇ ÁÙ¸¸ Æ÷ÇÔÇÏ¿© º¸³»Á־ µÇ¸ç, ¸ðµÎ º¸³»Á־ µË´Ï´Ù.
+
+confirm %(cookie)s
+
+(°£´ÜÈ÷ ÀÌ ¸Þ¼¼Áö¿¡ ´ëÇØ 'Reply' ¸¦ ÇÔÀ¸·Î½á ´ëºÎºÐÀÇ ¸ÞÀÏ È¯°æ¿¡¼­´Â
+¼Õ½±°Ô °¡ÀÔÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù.)
+
+ȤÀº Æí¸®ÇÏ°Ô À¥ »çÀÌÆ®¸¦ ¹æ¹®Çϼŵµ ¹«¹æÇÕ´Ï´Ù.
+
+ %(confirmurl)s
+
+¸¸¾à ¿©·¯ºÐÀÌ ÀÌ ¸ÞÀϸµ ¸®½ºÆ®¿¡ °¡ÀÔÇÏ±æ ¿øÇÏÁö ¾Ê´Â´Ù¸é, °£´ÜÈ÷ ÀÌ
+¸ÞÀÏÀ» ¹«½ÃÇϽñ⠹ٶø´Ï´Ù. Áú¹® »çÇ×Àº %(listadmin)s ·Î º¸³»Áֽñâ
+¹Ù¶ø´Ï´Ù.
diff --git a/templates/lt/admindbdetails.html b/templates/lt/admindbdetails.html
new file mode 100644
index 00000000..1958b362
--- /dev/null
+++ b/templates/lt/admindbdetails.html
@@ -0,0 +1,65 @@
+The administrative requests are displayed in one of two ways, on a <a
+href="%(summaryurl)s">summary page</a>, and on a <em>details</em>
+page. The summary page contains pending subscription and
+unsubscription requests, as well as postings being held for your
+approval, grouped by sender email address. The details page contains
+a more detailed view of each held message, including the all the
+message's headers and an excerpt of the message body.
+
+<p>On all the pages, the following actions are available:
+
+<ul>
+<li><b>Defer</b> -- Defer your decision until later. No action is
+ taken now for this pending administrative request, but for held
+ postings, you can still forward or preserve the message (see
+ below).
+
+<p><li><b>Approve</b> -- Approve the message, sending it on to the list.
+ For membership requests, approve the change in membership status.
+
+<p><li><b>Reject</b> -- Reject the message, sending a rejection notice to
+ the sender, and discarding the original message. For membership
+ requests, reject the change in membership status. In either case,
+ you should add a reason for the rejection in the accompanying text
+ box.
+
+<p><li><b>Discard</b> -- Throw away the original message, without sending
+ a rejection notice. For membership requests, this simply discards
+ the request without notice to the person making the request. This
+ is usually the action you want to take for known spam.
+</ul>
+
+<p>For held messages, turn on the <b>Preserve</b> option if you want
+to save a copy of the message for the site administrator. This is
+useful for abusive messages that you want to discard, but need to keep
+a record of for later inspection.
+
+<p>Turn on the <b>Forward to</b> option, and fill in the forwarding
+address if you want to forward the message to someone else not on the
+list. To edit a held message before it is sent on to the list, you
+should forward the message to yourself (or the list owners), and
+discard the original message. Then, when the message shows up in your
+mailbox, make your edits and resend the message to the list, including
+an <tt>Approved:</tt> header with the list password as its value. It
+is proper netiquette in this case to include a note in the resent
+message, explaining that you have modified the text.
+
+<p>If the sender is a list member who is being moderated, you can
+optionally clear their moderation flag. This is useful when your list
+is configured to put new members on probation, and you've decided that
+this member can be trusted to post to the list without approval.
+
+<p>If the sender is not a list member, you can add the email address to
+a <em>sender filter</em>. Sender filters are described on the <a
+href="%(filterurl)s">sender filter privacy page</a>, and may be one of
+<b>auto-accept</b> (Accepts), <b>auto-hold</b> (Holds),
+<b>auto-reject</b> (Rejects), or <b>auto-discard</b> (Discards). This
+option will not be available if the address is already on one of the
+sender filters.
+
+<p>When you're finished, click on the <em>Submit All Data</em> button
+at the top or bottom of the page. This button will submit all
+selected actions for all administrative requests that you've made a
+decision for.
+
+<p><a href="%(summaryurl)s">Return to the summary page</a>.
diff --git a/templates/lt/admindbpreamble.html b/templates/lt/admindbpreamble.html
new file mode 100644
index 00000000..7c033df9
--- /dev/null
+++ b/templates/lt/admindbpreamble.html
@@ -0,0 +1,13 @@
+Pilnas sprendimo laukianèiø laiðkø sàraðas
+
+<p>Ðiame tinklapyje matote disusijø forumo <em>%(listname)s</em>
+laiðkus, kurie laukia Jûsø sprendimo.
+
+Dabar rodoma %(description)s
+
+<p>Kiekvienai administravimo uþklausai paþymëkite veiksmà
+ir baigæ paspauskite <b>Siøsti Visus Duomenis</b>.
+
+<p>Smulkesnë instrukcija <a href="%(detailsurl)s">èia</a>.
+
+<p>Taip pat galite perþiûrëti <a href="%(summaryurl)s">sprendimo laukianèiø laiðkø santraukà</a>.
diff --git a/templates/lt/admindbsummary.html b/templates/lt/admindbsummary.html
new file mode 100644
index 00000000..2e5e2a2f
--- /dev/null
+++ b/templates/lt/admindbsummary.html
@@ -0,0 +1,14 @@
+Sprendimo laukianèiø laiðkø santrauka
+
+<p>Èia santrauka laiðkø, laukianèiø jûsø sprendimo dël
+<a href="%(adminurl)s">forumo <em>%(listname)s</em></a>.
+
+Pradþioje - prisijungimo ir atsijungimo praðymai,
+toliau - laiðkai, dël kuriø turite apsispræsti.
+
+<p>Kiekvienai administravimo uþklausai paþymëkite veiksmà
+ir baigæ paspauskite <b>Siøsti Visus Duomenis</b>.
+
+<p>Smulkesnë instrukcija <a href="%(detailsurl)s">èia</a>.
+
+<p>Taip pat galite perþiûrëti <a href="%(viewallurl)s">pilnà sprendimo laukianèiø laiðkø sàraðà</a>.
diff --git a/templates/lt/adminsubscribeack.txt b/templates/lt/adminsubscribeack.txt
new file mode 100644
index 00000000..4528ce2e
--- /dev/null
+++ b/templates/lt/adminsubscribeack.txt
@@ -0,0 +1,3 @@
+%(member)s sëkmingai prisijungë prie %(listname)s.
+
+
diff --git a/templates/lt/adminunsubscribeack.txt b/templates/lt/adminunsubscribeack.txt
new file mode 100644
index 00000000..155b5296
--- /dev/null
+++ b/templates/lt/adminunsubscribeack.txt
@@ -0,0 +1 @@
+%(member)s paðalintas ið %(listname)s.
diff --git a/templates/lt/admlogin.html b/templates/lt/admlogin.html
new file mode 100644
index 00000000..8a3858cb
--- /dev/null
+++ b/templates/lt/admlogin.html
@@ -0,0 +1,37 @@
+<html>
+<head>
+ <title>%(listname)s %(who)s prisijungimas</title>
+</head>
+<body bgcolor="#ffffff">
+<FORM METHOD=POST ACTION="%(path)s">
+%(message)s
+ <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1">%(listname)s %(who)s
+ prisijungimas</FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <TD><div ALIGN="Right">Forumo %(who)s slaptaþodis:</div></TD>
+ <TD><INPUT TYPE="password" NAME="adminpw" SIZE="30"></TD>
+ </tr>
+ <tr>
+ <td colspan=2 align=middle><INPUT type="SUBMIT"
+ name="admlogin"
+ value="Uþeiti">
+ </td>
+ </tr>
+ </TABLE>
+ <p><strong><em>Svarbu:</em></strong>
+ Jûs turite nustatyti "cookies enabled",
+ kitaip ðio puslapio nustatymø pakeitimai nebus iðsaugoti.
+
+ <p>Tai reikalinga tam, kad kiekvieno Jûsø veiksmo patrvirtinimui nereikëtø ið naujo ávedinëti slaptaþodþiø.
+ Prisijungimo informacija bus iðsaugota Jûsø kompiueryje.
+ Ði informacija iðtrinama kai tik iðeinate ið tinklapiø perþiûros programos
+ arba atsijungiate nuo administratoriaus puslapio paspausdami <em>Logout</em>
+ lange <em>Kita prieþiûros veikla</em>, nuoroda á kurá atsiras kai tik sëkmingai prisijungsite.
+</FORM>
+</body>
+</html>
diff --git a/templates/lt/approve.txt b/templates/lt/approve.txt
new file mode 100644
index 00000000..a6d7c1bc
--- /dev/null
+++ b/templates/lt/approve.txt
@@ -0,0 +1,13 @@
+Jûsø uþklausa, gauta adresu %(requestaddr)s:
+
+ %(cmd)s
+
+nukreipta asmeniui, priþiûrinèiam diskusijø forumà.
+
+Viena ið prieþasèiø, kodël tai ávyko, galëjo bûti
+Jûsø bandymas prisijungti prie 'uþdaro' diskusijø forumo.
+
+Apie minëto asmens sprendimà Jums bus praneðta el. paðtu.
+
+
+Visais klausimais praðome kreiptis á administratoriø %(adminaddr)s.
diff --git a/templates/lt/archidxentry.html b/templates/lt/archidxentry.html
new file mode 100644
index 00000000..f9bb57aa
--- /dev/null
+++ b/templates/lt/archidxentry.html
@@ -0,0 +1,4 @@
+<LI><A HREF="%(filename)s">%(subject)s
+</A><A NAME="%(sequence)i">&nbsp;</A>
+<I>%(author)s
+</I>
diff --git a/templates/lt/archidxfoot.html b/templates/lt/archidxfoot.html
new file mode 100644
index 00000000..893e5420
--- /dev/null
+++ b/templates/lt/archidxfoot.html
@@ -0,0 +1,20 @@
+ </ul>
+ <p>
+ <a name="end"><b>Paskutiniojo laiðko data:</b></a>
+ <i>%(lastdate)s</i><br>
+ <b>Suarchyvuota:</b> <i>%(archivedate)s</i>
+ <p>
+ <ul>
+ <li> <b>Laiðkai surûðiuoti pagal:</b>
+ %(thread_ref)s
+ %(subject_ref)s
+ %(author_ref)s
+ %(date_ref)s
+ <li><b><a href="%(listinfo)s">Daugiau apie forumà...
+ </a></b></li>
+ </ul>
+ <p>
+ <hr>
+ <i>Archyvø generavo Pipermail %(version)s.</i>
+ </BODY>
+</HTML>
diff --git a/templates/lt/archidxhead.html b/templates/lt/archidxhead.html
new file mode 100644
index 00000000..c0656536
--- /dev/null
+++ b/templates/lt/archidxhead.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+ <HEAD>
+ <title>Forumo %(listname)s %(archive)s Archyvas %(archtype)s</title>
+ <META NAME="robots" CONTENT="noindex,follow">
+ %(encoding)s
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <a name="start"></A>
+ <h1>%(archive)s Archyvas %(archtype)s</h1>
+ <ul>
+ <li> <b>Laiðkai surûðiuoti pagal:</b>
+ %(thread_ref)s
+ %(subject_ref)s
+ %(author_ref)s
+ %(date_ref)s
+ <li><b><a href="%(listinfo)s">Daugiau apie forumà...
+ </a></b></li>
+ </ul>
+ <p><b>Pradëta:</b> <i>%(firstdate)s</i><br>
+ <b>Paskutinysis:</b> <i>%(lastdate)s</i><br>
+ <b>Laiðkø:</b> %(size)s<p>
+ <ul>
diff --git a/templates/lt/archlistend.html b/templates/lt/archlistend.html
new file mode 100644
index 00000000..9bc052dd
--- /dev/null
+++ b/templates/lt/archlistend.html
@@ -0,0 +1 @@
+ </table>
diff --git a/templates/lt/archliststart.html b/templates/lt/archliststart.html
new file mode 100644
index 00000000..751467e1
--- /dev/null
+++ b/templates/lt/archliststart.html
@@ -0,0 +1,4 @@
+ <table border=3>
+ <tr><td>Archyvas</td>
+ <td>Perþiûra:</td>
+ <td>Parsisiøsti</td></tr>
diff --git a/templates/lt/archtoc.html b/templates/lt/archtoc.html
new file mode 100644
index 00000000..b445bcdd
--- /dev/null
+++ b/templates/lt/archtoc.html
@@ -0,0 +1,19 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+ <HEAD>
+ <title>Forumo %(listname)s archyvai</title>
+ <META NAME="robots" CONTENT="noindex,follow">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <h1>Forumo %(listname)s archyvai</h1>
+ <p>
+ <a href="%(listinfo)s">Paspaudæ èia galite suþinoti daugiau apie forumà</a>;
+ <a href="%(fullarch)s">Èia - atsisiøsti visà forumo archyvà</a>.
+ (%(size)s).
+ </p>
+ %(noarchive_msg)s
+ %(archive_listing_start)s
+ %(archive_listing)s
+ %(archive_listing_end)s
+ </BODY>
+ </HTML>
diff --git a/templates/lt/archtocentry.html b/templates/lt/archtocentry.html
new file mode 100644
index 00000000..c0d2a02c
--- /dev/null
+++ b/templates/lt/archtocentry.html
@@ -0,0 +1,12 @@
+
+ <tr>
+ <td>%(archivelabel)s:</td>
+ <td>
+ <A href="%(archive)s/thread.html">[ Gija ]</a>
+ <A href="%(archive)s/subject.html">[ Tema ]</a>
+ <A href="%(archive)s/author.html">[ Autorius ]</a>
+ <A href="%(archive)s/date.html">[ Data ]</a>
+ </td>
+ %(textlink)s
+ </tr>
+
diff --git a/templates/lt/article.html b/templates/lt/article.html
new file mode 100644
index 00000000..751c45aa
--- /dev/null
+++ b/templates/lt/article.html
@@ -0,0 +1,49 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+ <HEAD>
+ <TITLE> %(title)s
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:%(email_url)s?Subject=%(subject_url)s&In-Reply-To=%(in_reply_to_url)s">
+ <META NAME="robots" CONTENT="index,nofollow">
+ %(encoding)s
+ %(prev)s
+ %(next)s
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>%(subject_html)s
+ </H1>
+ <B>%(author_html)s
+ </B>
+ <A HREF="mailto:%(email_url)s?Subject=%(subject_url)s&In-Reply-To=%(in_reply_to_url)s"
+ TITLE="%(subject_html)s">%(email_html)s
+ </A><BR>
+ <I>%(datestr_html)s</I>
+ <P><UL>
+ %(prev_wsubj)s
+ %(next_wsubj)s
+ <LI> <B>Rûðiuoti laiðkus pagal:</B>
+ <a href="date.html#%(sequence)s">[ datà ]</a>
+ <a href="thread.html#%(sequence)s">[ gijas ]</a>
+ <a href="subject.html#%(sequence)s">[ temà ]</a>
+ <a href="author.html#%(sequence)s">[ autoriø ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+%(body)s
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ %(prev_wsubj)s
+ %(next_wsubj)s
+ <LI> <B>Rûðiuoti laiðkus pagal:</B>
+ <a href="date.html#%(sequence)s">[ datà ]</a>
+ <a href="thread.html#%(sequence)s">[ gijas ]</a>
+ <a href="subject.html#%(sequence)s">[ temà ]</a>
+ <a href="author.html#%(sequence)s">[ autoriø ]</a>
+ </LI>
+ </UL>
+</body></html>
+
diff --git a/templates/lt/bounce.txt b/templates/lt/bounce.txt
new file mode 100644
index 00000000..c23f70e3
--- /dev/null
+++ b/templates/lt/bounce.txt
@@ -0,0 +1,13 @@
+This is a Mailman mailing list bounce action notice:
+
+ List: %(listname)s
+ Member: %(addr)s
+ Action: Subscription %(negative)s%(did)s.
+ Reason: Excessive or fatal bounces.
+ %(but)s
+
+%(reenable)s
+The triggering bounce notice is attached below.
+
+
+Visais klausimais praðome kreiptis administratoriø %(owneraddr)s.
diff --git a/templates/lt/checkdbs.txt b/templates/lt/checkdbs.txt
new file mode 100644
index 00000000..a0742820
--- /dev/null
+++ b/templates/lt/checkdbs.txt
@@ -0,0 +1,9 @@
+Diskusijø forume %(real_name)s@%(host_name)s jûsø
+patvirtinimo laukianèiø laiðkø skaièius: %(count)d.
+
+Praðome kuo greièiau juos patvirtinti tinklapyje
+
+ %(adminDB)s
+
+Tokie praneðimai apie laukianèius laiðkus (jei tokiø
+yra) siunèiami kiekvienà dienà.
diff --git a/templates/lt/convert.txt b/templates/lt/convert.txt
new file mode 100644
index 00000000..ae17a79e
--- /dev/null
+++ b/templates/lt/convert.txt
@@ -0,0 +1,34 @@
+The %(listname)s mailing list has just undergone a big change. It is
+running on a new mailing list package called "Mailman". This will
+hopefully solve a lot of problems that administering this list has
+presented.
+
+How does this affect you?
+
+1) Mail intended for the whole list should be sent to: %(listaddr)s.
+
+2) You have been given an arbitrary password to prevent others from
+unsubscribing you without your knowledge. It will be mailed to you in
+a separate email, which you may have already received. Don't worry if
+you forget this password; a reminder will be sent to you via email
+every month.
+
+3) If you have World Wide Web access, you can use it any time to
+unsubscribe from this list, to switch to and from digest mode, to
+check back issues of the list (which will be available after the list
+has been getting posts for a day or so), etc. The Web address for
+these resources is:
+
+ %(listinfo_url)s
+
+4) If you do not have WWW access, you can do these same things via
+email. Send mail to %(requestaddr)s with a subject or body containing
+just the word "help" (without the quotes). You will receive an
+automated reply giving you further directions.
+
+Please address any questions or problems with this new setup to:
+%(adminaddr)s.
+
+This message was auto-generated by Mailman %(version)s. For more
+information on the Mailman software, visit the Mailman homepage at
+http://www.list.org/
diff --git a/templates/lt/cronpass.txt b/templates/lt/cronpass.txt
new file mode 100644
index 00000000..541b2763
--- /dev/null
+++ b/templates/lt/cronpass.txt
@@ -0,0 +1,12 @@
+Primename, kad Jûs dalyvaujate diskusijø forume %(hostname)s.
+Savo dalyvio nustatymus keisti bei atsijungti nuo forumo
+galite tinklapyje bei komandomis el. paðtu.
+
+Jei norite savo nuostatas keisti el. paðtu - nusiøskite laiðkà '-request'
+forumo adresu ir gausite daugiau informacijos apie komandas
+(pavyzdþiui, %(exreq)s) turinti tik þodá 'help' laiðko turinyje
+ir jums bus iðsiøstas laiðkas su instrukcijomis.
+
+Jei turite klausimø ar patarimø, raðykite %(owner)s.
+
+Vartotojo %(useraddr)s slaptaþodþiai:
diff --git a/templates/lt/disabled.txt b/templates/lt/disabled.txt
new file mode 100644
index 00000000..d77f1236
--- /dev/null
+++ b/templates/lt/disabled.txt
@@ -0,0 +1,28 @@
+Jûsø dalyvavimas diskusijø forume %(listname)s sustabdytas, dël
+%(reason)s.
+
+Jûs negausite daugiau forumo laiðkø kol neatnaujinsite savo narystës.
+
+Jums bus siunèiama dar %(noticesleft)s tokie praneðimai iki galutinio Jûsø iðtrynimo.
+
+Atstatyti narystæ forume galite vienu ið ðiø bûdø:
+
+Atsakykite á ðá laiðkà nepakeisdami jo temos (subject).
+Daugumoje paðto programø galite pasinaudoti komanda 'Atsakyti'
+arba 'Reply', nes ði komanda iðsaugo temà (subject).
+(Patvirtinimui netrukdo daþniausiai áterpiamas 'Ats:' arba 'Re:'.)
+
+Arba aplankykite mûsø tinklapá:
+
+ %(confirmurl)s
+
+Taip pat galite aplankyti forumo dalyvio tinklapá:
+
+ %(optionsurl)s
+
+Èia galite keisti savo nustatymus, tokius, kaip el. paðto
+adresas, nuolatiniø praneðimø siuntimas ir pan.
+
+Primename Jûsø slaptaþodá: %(password)s
+
+Visais klausimais praðome kreiptis á administratoriø: %(owneraddr)s.
diff --git a/templates/lt/emptyarchive.html b/templates/lt/emptyarchive.html
new file mode 100644
index 00000000..06ecf1c9
--- /dev/null
+++ b/templates/lt/emptyarchive.html
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+ <HEAD>
+ <title>Forumo %(listname)s archyvai</title>
+ <META NAME="robots" CONTENT="noindex,follow">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <h1>Forumo %(listname)s archyvai</h1>
+ <p>
+ Á ðá forumà dar neatsiøstas në vienas laiðkas.
+ <a href="%(listinfo)s">Paspaudæ èia galite suþinoti daugiau apie forumà</a>.
+ </p>
+ </BODY>
+ </HTML>
diff --git a/templates/lt/headfoot.html b/templates/lt/headfoot.html
new file mode 100644
index 00000000..a8e06c49
--- /dev/null
+++ b/templates/lt/headfoot.html
@@ -0,0 +1,27 @@
+Á ðá tekstà gali bûti átrauktos
+<a href="http://www.python.org/doc/current/lib/typesseq-strings.html">Python
+formato eilutës</a> kurios yra apdorojamos pagal poþymius.
+Èia pateikiame pakeitimø sàraðà:
+
+<ul>
+ <li><b><code>real_name</code></b> - Sàraðo pavadinimas; daþniausiai
+ ið didþiosios raidës.
+
+ <li><b><code>list_name</code></b> - The name by which the list is
+ identified in URLs, where case is significant. (For backwards
+ compability, <code>_internal_name</code> is equivalent.)
+
+ <li><b><code>host_name</code></b> - The fully qualified domain name
+ that the list server runs on.
+
+ <li><b><code>web_page_url</code></b> - The base URL for Mailman. This
+ can be appended with,
+ e.g. <em><code>listinfo/%(internal_name)s</code></em> to yield the
+ listinfo page for the mailing list.
+
+ <li><b><code>description</code></b> - Trumpas forumo apraðymas.
+
+ <li><b><code>info</code></b> - Pilnas forumo apraðymas.
+
+ <li><b><code>cgiext</code></b> - The extension added to CGI scripts.
+</ul>
diff --git a/templates/lt/help.txt b/templates/lt/help.txt
new file mode 100644
index 00000000..33ff0083
--- /dev/null
+++ b/templates/lt/help.txt
@@ -0,0 +1,36 @@
+Pagalba diskusijø forumo %(listname)s dalyviams
+
+
+Èia yra diskusijø forumo "Mailman" %(version)s komandø,
+siunèiamø el. paðtu, sàraðas.
+
+Ðios komandos gali bûti raðomos temos (subject) eilutëje,
+arba paèiame laiðke.
+
+Daugelis ðiø veiksmø gali bûti vykdoma ir narðykle, prisijungus adresu:
+
+ %(listinfo_url)s
+
+Tame tarpe, galite duoti komandà iðsiøsti Jums pamirðtà slaptaþodá.
+
+Komandos, susijusios su konkreèiu diskusijø forumu, turi bûti
+siunèiamos to forumo aptarnaujanèiai programai (robotui) adresu *-request@...
+pakeièiant '*' forumo pavadinimu.
+(Pvz. forumui 'mailman' adresas 'mailman-request@...')
+
+Apie komandø apraðymà:
+Þodþiai tarp þenklø "<>" apraðo BÛTINUS elementus
+Þodþiai tarp þenklø "[]" apraðo NEBÛTINUS elementus
+Þodþiai, neapskliausti nei "<>", nei "[]" yra komandos dalis.
+
+Galioja ðios komandos:
+
+ %(commands)s
+
+Komandos turi bûti siunèiamos ðiuo adresu:
+
+ %(requestaddr)s
+
+Klausimus ir pasiølymus darbuotojui praðome siøsti adresu:
+
+ %(adminaddr)s
diff --git a/templates/lt/invite.txt b/templates/lt/invite.txt
new file mode 100644
index 00000000..44ec88f7
--- /dev/null
+++ b/templates/lt/invite.txt
@@ -0,0 +1,21 @@
+Diskusijø forumo %(listname)s, esanèio %(hostname)s,
+administratorius kvieèia Jus, <%(email)s> dalyvauti forume %(listname)s.
+
+Jei norite dalyvauti ðiose diskusijose, atsakykite á ðá laiðkà
+nepakeisdami jo temos (subject), arba aplankykite mûsø tinklapá:
+
+ %(confirmurl)s
+
+Dar galite adresu %(requestaddr)s iðsiøsti laiðkà,
+áraðæ á jà tik ðià eilutæ:
+
+ confirm %(cookie)s
+
+Dauguma paðto programø galite pasinaudoti komanda 'Atsakyti'
+arba 'Reply', nes ði komanda iðsaugo temos (subject) laukà.
+(Patvirtinimui netrukdo daþniausiai áterpiamas 'Ats:' arba 'Re:'.)
+
+
+Ignoruokite ðá laiðkà, jeigu nenorite prisijungti prie ðio diskusijø forumo.
+
+Visais klausimais praðome kreiptis á administratoriø - %(listowner)s.
diff --git a/templates/lt/listinfo.html b/templates/lt/listinfo.html
new file mode 100644
index 00000000..ee8c214a
--- /dev/null
+++ b/templates/lt/listinfo.html
@@ -0,0 +1,141 @@
+<!-- $Revision: 6065 $ -->
+<HTML>
+ <HEAD>
+ <TITLE><MM-List-Name> Informacijos puslapis</TITLE>
+
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+
+ <P>
+ <TABLE COLS="1" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1"><MM-List-Name> --
+ <MM-List-Description></FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <p>&nbsp;
+ </td>
+ </tr>
+ <tr>
+ <TD COLSPAN="1" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000">Apie <MM-List-Name></FONT></B>
+ </TD>
+ <TD COLSPAN="1" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <MM-lang-form-start><MM-displang-box> <MM-list-langs>
+ <MM-form-end>
+ <MM-Subscribe-Form-Start>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <P><MM-List-Info></P>
+ <p> Jei norite perþiûrëti anksèiau siøstus laiðkus,
+ aplankykite forumo <MM-Archive><MM-List-Name>
+ Archyvus</MM-Archive>.
+ <MM-Restricted-List-Message>
+ </p>
+ </TD>
+ </TR>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000">Naudojant <MM-List-Name></FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ Jei norite iðsiøsti laiðkà visiems forumo dalyvams, iðsiøskite þinutæ adresu
+ <A HREF="mailto:<MM-Posting-Addr>"><MM-Posting-Addr></A>.
+
+ <p>Toliau galite prisijungti prie forumo arba pakeisti Jûsø nustatymus.
+ </td>
+ </tr>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000">Prisijungti prie <MM-List-Name></FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <P>
+ Prisijunkite prie <MM-List-Name> uþpildydami ðiuos laukus:
+ <MM-List-Subscription-Msg>
+ <ul>
+ <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"
+ WIDTH="70%" HEIGHT= "112">
+ <TR>
+ <TD BGCOLOR="#dddddd" WIDTH="55%">Jûsø el.paðto adresas:</TD>
+ <TD WIDTH="33%"><MM-Subscribe-Box>
+ </TD>
+ <TD WIDTH="12%">&nbsp;</TD></TR>
+ <tr>
+ <td bgcolor="#dddddd" width="55%">Jûsø vardas (nebûtina):</td>
+ <td width="33%"><mm-fullname-box></td>
+ <TD WIDTH="12%">&nbsp;</TD></TR>
+ <TR>
+ <TD COLSPAN="3"><FONT SIZE=-1>Èia áveskite slaptaþodá.
+ Èia veikia negrieþta saugumo sistema, jûsø slaptaþodis
+ ateityje gali bûti siunèiamas neðifruotu tekstu,
+ todël nenaudokite slaptaþodþiø, kuriais saugote ypaè
+ atsakingus duomenis.
+
+ <p>Jei neávesite slaptaþodþio, sistema já sukurs automatiðkai
+ ir iðsiøs Jums kai tik patvirtinsite prisijungimà prie forumo.
+
+ <p>Jei pamirðite slaptaþodá, galësi nurodyti sistemai,
+ kad já iðsiøstø Jûsø el.paðto adresu.
+
+ <MM-Reminder>
+ </TD>
+ </TR>
+ <TR>
+ <TD BGCOLOR="#dddddd">Pasirinkite slaptaþodá:</TD>
+ <TD><MM-New-Password-Box></TD>
+ <TD>&nbsp;</TD></TR>
+ <TR>
+ <TD BGCOLOR="#dddddd">Pakartokite slaptaþodá:</TD>
+ <TD><MM-Confirm-Password></TD>
+ <TD>&nbsp; </TD></TR>
+ <tr>
+ <TD BGCOLOR="#dddddd">Pasirinkite kalbà?</TD>
+ <TD> <MM-list-langs></TD>
+ <TD>&nbsp; </TD></TR>
+ <tr>
+ <td>Ar norite gauti dienos laiðkø rinkinius?
+ </td>
+ <td><MM-Undigest-Radio-Button> Ne
+ <MM-Digest-Radio-Button> Taip
+ </TD>
+ </tr>
+ <tr>
+ <td colspan="3">
+ <center><MM-Subscribe-Button></P></center>
+ </TABLE>
+ <MM-Form-End>
+ </ul>
+ </td>
+ </tr>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <a name="subscribers">
+ <B><FONT COLOR="#000000"><MM-List-Name> Nariai</FONT></B></a>
+ </TD>
+ </TR>
+ <tr>
+ <TD COLSPAN="2" WIDTH="100%">
+ <MM-Roster-Form-Start>
+ <MM-Roster-Option>
+ <MM-Form-End>
+ <p>
+ <MM-Options-Form-Start>
+ <MM-Editing-Options>
+ <MM-Form-End>
+ </td>
+ </tr>
+ </table>
+<MM-Mailman-Footer>
+</BODY>
+</HTML>
+
diff --git a/templates/lt/masthead.txt b/templates/lt/masthead.txt
new file mode 100644
index 00000000..1d9dbd1b
--- /dev/null
+++ b/templates/lt/masthead.txt
@@ -0,0 +1,16 @@
+Laiðkus diskusijø forumui %(real_name)s siøskite adresu
+ %(got_list_email)s
+
+Prisijungti arba atsijungti nuo diskusijø forumo galime su
+narðykle - apsilankykite adresu:
+ %(got_listinfo_url)s
+
+Taip pat tai galima atlikti el. paðtu - apie nustatymø keitimà
+komandomis el. paðtu galite suþinoti adresu %(got_request_email)s
+nusiuntæ laiðkà, kurio tema (subject) 'help'.
+
+Asmeniui, priþiûrinèiam diskusijø forumà, galite paraðyti adresu
+ %(got_owner_email)s
+
+Jei raðote atsakymà á ðá laiðkà, praðome raðyti temà, tiksliai
+apibûdinanèià Jûsø laiðko esmæ.
diff --git a/templates/lt/newlist.txt b/templates/lt/newlist.txt
new file mode 100644
index 00000000..3362887d
--- /dev/null
+++ b/templates/lt/newlist.txt
@@ -0,0 +1,35 @@
+The mailing list `%(listname)s' has just been created for you. The
+following is some basic information about your mailing list.
+
+Your mailing list password is:
+
+ %(password)s
+
+You need this password to configure your mailing list. You also need
+it to handle administrative requests, such as approving mail if you
+choose to run a moderated list.
+
+You can configure your mailing list at the following web page:
+
+ %(admin_url)s
+
+The web page for users of your mailing list is:
+
+ %(listinfo_url)s
+
+You can even customize these web pages from the list configuration
+page. However, you do need to know HTML to be able to do this.
+
+There is also an email-based interface for users (not administrators)
+of your list; you can get info about using it by sending a message
+with just the word `help' as subject or in the body, to:
+
+ %(requestaddr)s
+
+To unsubscribe a user: from the mailing list 'listinfo' web page,
+click on or enter the user's email address as if you were that user.
+Where that user would put in their password to unsubscribe, put in
+your admin password. You can also use your password to change
+member's options, including digestification, delivery disabling, etc.
+
+Please address all questions to %(siteowner)s.
diff --git a/templates/lt/nomoretoday.txt b/templates/lt/nomoretoday.txt
new file mode 100644
index 00000000..b520686f
--- /dev/null
+++ b/templates/lt/nomoretoday.txt
@@ -0,0 +1,12 @@
+ðiandien mes gavome %(num)s laiðkø, pasiraðytø Jûsø adresu
+ %(sender)s
+kuriuose praðome automatinio atsakymo ið %(listname)s forumo.
+
+Siekdami iðvengti nereikalingo laiðkø siuntinëjimo ðiandien
+á Jûsø laiðkus daugiau neatsakinësime.
+
+Atsakymà vël gausite jei siøsite laiðkà rytoj.
+
+Jei manote, kad ðá laiðkà gavote per klaidà taip pat
+ir kitais klausimais kreipkitës á forumo administratoriø:
+%(owneremail)s
diff --git a/templates/lt/options.html b/templates/lt/options.html
new file mode 100644
index 00000000..38951e04
--- /dev/null
+++ b/templates/lt/options.html
@@ -0,0 +1,276 @@
+<!-- $Revision: 6065 $ -->
+<html>
+<head>
+ <link rel="SHORTCUT ICON" href="<mm-favicon>">
+ <title><MM-Presentable-User> dalyvio nustatymai forumui <MM-List-Name>
+ </title>
+</head>
+<BODY BGCOLOR="#ffffff">
+ <TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#99CCFF"><B>
+ <FONT COLOR="#000000" SIZE=+1>
+ <MM-List-Name> forumo nustatymai dalyviui
+ <MM-Presentable-User>
+ </FONT></B></TD></TR>
+ </TABLE>
+<p>
+<table width="100%" border="0" cellspacing="5" cellpadding="5">
+ <tr><td>
+ <b><MM-Presentable-User></b> bûsena, slaptaþodþiai ir nustatymai forumui <MM-List-Name>.
+ </td><td><MM-Form-Start><mm-logout-button><MM-Form-End></td>
+ </tr><tr>
+ <td colspan="2">
+ <MM-Case-Preserved-User>
+
+ <MM-Disabled-Notice>
+
+ <p><mm-results>
+ </td>
+ </tr>
+</table>
+
+<MM-Form-Start>
+<p>
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#FFF0D0" colspan="2">
+ <FONT COLOR="#000000">
+ <B>Forumo <MM-List-Name> narystës informacijos pakeitimai</B>
+ </FONT></TD></TR>
+ <tr><td colspan="2">
+ Ðiame lauke galite pakeisti nurodytà dalyvio el. paðto adresà.
+ Tuo atveju jums bus iðsiøstas laiðkas ir pakeitimai ásigalios tik po to,
+ kai Jûs patvirtinsite juos.
+ <p>Patvirtinimui skiriama dienø: <mm-pending-days>.
+ <p>Taip pat galite pakeisti vardà, kuriuo pasiraðote
+ (pvz. <em>Tomas Jonuðas</em>).
+ <p>Jeigu norite, kad bûtø pakeisti visø forumø <mm-host> nustatymai,
+ paþytmëkite vëliavëlæ <em>Bendri pakeitimai</em>.
+
+ </td></tr>
+ <tr><td><center>
+ <table border="0" cellspacing="2" cellpadding="2" width="80%" cols="2">
+ <tr><td bgcolor="#dddddd"><div align="right">Naujas adresas:</div></td>
+ <td><mm-new-address-box></td>
+ </tr>
+ <tr><td bgcolor="#dddddd"><div align="right">Patvirtinimas:</div></td>
+ <td><mm-confirm-address-box></td>
+ </tr>
+ </tr></table></center>
+ </td>
+ <td><center>
+ <table border="0" cellspacing="2" cellpadding="2" width="80%" cols="2">
+ <tr><td bgcolor="#dddddd"><div align="right">Jûsø vardas (nebûtina):</div></td>
+ <td><mm-fullname-box></td>
+ </tr>
+ </table></center>
+ </td>
+ </tr>
+ <tr><td colspan="2"><center><mm-change-address-button>
+ <p><mm-global-change-of-address>Bendri pakeitimai</center></td>
+ </tr>
+</table>
+
+<p>
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="5" CELLPADDING="5">
+ <TR><TD WIDTH="50%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>Atsisakyti <MM-List-Name></B></td>
+
+ <TD WIDTH="50%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>Kiti Jûsø prisijungimai <MM-Host></B>
+ </FONT></TD></TR>
+
+ <tr><td>
+ Iðjunkite vëliavëlæ ir paspauskite ðá mygtukà,
+ jeigu norite atsisakyti ðio forumo. <strong>Atsargiai:</strong>
+ Tai ávyksta nedelsiant!
+ <p>
+ <center><MM-Unsubscribe-Button></center></td>
+ <td>
+ Galiet perþiûrëti sàraðà <mm-host> forumø, kuriuose Jûs dalyvaujate.
+ Pasinaudokite tuo, jei norite pakeisti visø jø nustatymus.
+ <p>
+ <center><MM-Other-Subscriptions-Submit></center>
+ </TD></TR>
+</table>
+
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD COLSPAN=2 WIDTH="100%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>Jûsø <MM-List-Name> slaptaþodis</B>
+ </FONT></TD></TR>
+
+ <tr valign="TOP"><td WIDTH="50%">
+ <a name=reminder>
+ <center>
+ <h3>Pamirðote slaptaþodá?</h3>
+ </center>
+ Paspauskite ðá mygtukà, jeigu norite, kad slaptaþodis bûtø iðsiøstas Jûsø adresu.
+ <p><MM-Umbrella-Notice>
+ <center>
+ <MM-Email-My-Pw>
+ </center>
+ </td>
+
+ <td WIDTH="50%">
+ <a name=changepw>
+ <center>
+ <h3>Pakeisti slaptaþodá</h3>
+ <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2" WIDTH="70%" COLS=2>
+ <TR><TD BGCOLOR="#dddddd"><div align="right">Naujas slaptaþodis:</div></TD>
+ <TD><MM-New-Pass-Box></TD>
+ </TR>
+ <TR>
+ <TD BGCOLOR="#dddddd"><div align="right">Pakartokite slaptaþodá:</div></TD>
+ <TD><MM-Confirm-Pass-Box></TD>
+ </TR>
+ </table>
+
+ <MM-Change-Pass-Button>
+ <p><center><mm-global-pw-changes-button>Bendri pakeitimai.
+ </center>
+</TABLE>
+
+<p>
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>Jûsø nustatymai forumui <MM-List-Name></B>
+ </FONT></TD></TR>
+</table>
+
+<p>
+<i><strong>Pradþioje paþymëti dabartiniai nustatymai.</strong></i>
+
+<p>Atkreipkite dëmesá, kad daliai nustatymø yra vëliavëlë <em>Bendri pakeitimai</em>.
+Paþymëjus ðià vëliavëlæ pakeèiami Jûsø nustatymai visuose <mm-host> forumuose.
+<p>Paspauskie <em>parodyti kitus mano forumus</em> jei norite pamatti kur dar Jûsø esate prisijungæ.
+<p>
+<TABLE BORDER="0" CELLSPACING="3" CELLPADDING="4" WIDTH="100%">
+ <tr><TD BGCOLOR="#cccccc">
+ <a name="disable"><strong>Paðto pristatymas</strong></a><p>
+ Ájungæ ðá nustatymà gausite forumui skirtus laiðkus.
+ Iðjungæ ðá nustatymà laiðkø negausite, nors ir liksite prisijungæ.
+ Naudokite ðá nustatymà pvz. iðvykdami atostogauti,
+ tik nepamirðkite gráþæ vël ájungti pristatymà!
+ </td><td bgcolor="#cccccc">
+ <mm-delivery-enable-button>Ájungta<br>
+ <mm-delivery-disable-button>Iðjungta<p>
+ <mm-global-deliver-button><i>Bendri pakeitimai</i>
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Rinkiniø siuntimas</strong><p>
+ Jeigu ájungsite rinkiniø siuntimà, Jums bus siuntinëjami
+ apjungti forumo laiðkai. Tai turëtø vykti kartà á dienà,
+ taèiau ypaè aktyviuose forumuose gali bûti ir daþniau.
+ Jei nepasirinksite rinkiniø siuntimo, tada gausite kiekvienà laiðkà
+ nedelsiant. Kai iðjungiate rinkiniø siuntimà, turëtumëte gauti
+ paskutiná Jums neiðsiøstø laiðkø rinkiná, kitus laiðkus gausite po vienà.
+ </td><td bgcolor="#cccccc">
+ <MM-Undigest-Radio-Button>Iðjungta<br>
+ <MM-Digest-Radio-Button>Ájungta
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>MIME ar vientiso teksto formato rinkiniai?</strong><p>
+ Jûsø paðto programa gali palaikyti MIME rinkinius arba ne.
+ MIME rinkiniai daugumai vartotojø yra patogesni,
+ taèiau pasirinkite vioentisà tekstà jei negalite normaliai
+ perskaityti MIME rinkiniø.
+ </td><td bgcolor="#cccccc">
+ <MM-Mime-Digests-Button>MIME<br>
+ <MM-Plain-Digests-Button>Vientisas tekstas<p>
+ <mm-global-mime-button><i>Bendri pakeitimai</i>
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Ar norite gauti savo siøstus á forumà laiðkus??</strong>
+ <p>Áprastu nustatymu gausite visus á forumà siøstus, tame tarpe
+ ir savo laiðkus. Jeigu nenorite gauti savo siøstø laiðkø kopijos
+ èia nustatykite <em>Ne</em>.
+ </td><td bgcolor="#cccccc">
+ <mm-dont-receive-own-mail-button>Ne<br>
+ <mm-receive-own-mail-button>Taip
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Ar patvirtini kiekvienà á forumà nusiøstà laiðkà?</strong><p>
+ </td><td bgcolor="#cccccc">
+ <mm-dont-ack-posts-button>Ne<br>
+ <mm-ack-posts-button>Taip
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>Ar siuntinëti ðio formo slaptaþodþio priminimus?</strong><p>
+ Kartà á mënesá gausite laiðkà su iðvardintais Jûsø uþsisakytø
+ pasirinktø forumø slaptaþodþiais. Jeigu visiems uþsisakytiems forumams
+ iðjungsite ðá parametrà, tada slaptaþodþiø priminimo laiðkas jums
+ nebus siuntinëjamas.
+ </td><td bgcolor="#cccccc">
+ <mm-dont-get-password-reminder-button>Iðjungta<br>
+ <mm-get-password-reminder-button>Ájungta<p>
+ <mm-global-remind-button><i>Bendri pakeitimai</i>
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Ar paslëpti Jûsø adresà nuo forumo dalyviø?</strong><p>
+ Kiekvienas perþiûrëdamas forumo nariø sàraðà mato ir Jûsø adresà.
+ (Tuo kartais piktybiðkai pasinaudoja nepageidaujamos reklamos
+ SPAM siuntinëtojai.) Nurodykite <em>Paslëpti</em> jei nenorite
+ rodyti Jûsø adreso.
+ </td><td bgcolor="#cccccc">
+ <MM-Public-Subscription-Button>Rodyti<br>
+ <MM-Hide-Subscription-Button>Paslëpti
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Jûsø pasirinkta kalba:</strong><p>
+ </td><td bgcolor="#cccccc">
+ <MM-list-langs>
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>Kokiø temø laiðkus norite auþsisakyti??</strong><p>
+ Pasirinkdami vienà ar kità temà galite sumaþinti gaunamø laiðkø srautà.
+ Gausite tik tuos laiðkus, kurie atitinka Jûsø pasirinktas temas.
+ <p>Jei nenurodysite në vienos temos, gausite visus forumo laiðkus.
+ </td><td bgcolor="#cccccc">
+ <mm-topics>
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>Ar norite gauti laiðkus, kurie neatitinka në vienos Jûsø nurodytos temos?</strong><p>
+ Ðis nustatymas veikia tik tuo atveju, jei esate nurodæ bent vienà temà.
+ Jei pasirinksite <em>Ne</em>, tada gausite tik Jûsø pasirinktø temø laiðkus.
+ Jei pasirinksite <em>Taip</em>, tada gausite visus laiðkus.
+ <p>Jeigu nenurodëte në vienos temos, tada gausite visus laiðkus
+ nepriklausomai nuo ðio nustatymo.
+ </td><td bgcolor="#cccccc">
+ <mm-suppress-nonmatching-topics>Taip<br>
+ <mm-receive-nonmatching-topics>Ne
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>Apsaugoti nuo laiðkø dubliavimo?</strong><p>
+ Jei Jûsø adresas nurodytas lauke <tt>To:</tt> arba
+ <tt>Cc:</tt> galite pasirinti negauti antros laiðko kopijos.
+ Pasirinkite <em>Taip</em> jei nenorite gauti kopijø;
+ pasirinkite <em>Ne</em> jei norite gauti visus laiðkus.
+ <p>Jei forumas leidþia asmeninius laiðkus, tada kiekvienai
+ laiðko kopijai pridedama antraðtë <tt>X-Mailman-Copy: yes</tt>.
+ </td><td bgcolor="#cccccc">
+ <mm-receive-duplicates-button>Ne<br>
+ <mm-dont-receive-duplicates-button>Taip<p>
+ <mm-global-nodupes-button><i>Bendri pakeitimai</i>
+ </td></tr>
+
+ <tr><TD colspan="2">
+ <center><MM-options-Submit-button></center>
+ </td></tr>
+
+</table>
+</center>
+<p>
+<MM-Form-End>
+
+<MM-Mailman-Footer>
+</body>
+</html>
diff --git a/templates/lt/postack.txt b/templates/lt/postack.txt
new file mode 100644
index 00000000..d24578f8
--- /dev/null
+++ b/templates/lt/postack.txt
@@ -0,0 +1,5 @@
+Diskusijø forumas %(listname)s gavo Jûsø þinutæ tema (subject)
+%(subject)s.
+
+Forumo informacija: %(listinfo_url)s
+Jûsø nustatymai: %(optionsurl)s
diff --git a/templates/lt/postauth.txt b/templates/lt/postauth.txt
new file mode 100644
index 00000000..60ba6fb2
--- /dev/null
+++ b/templates/lt/postauth.txt
@@ -0,0 +1,10 @@
+Jûsø (forumo administratoriaus) patvirtinimas bûtinas ðiam laiðkui:
+
+ Forumas: %(listname)s@%(hostname)s
+ Nuo: %(sender)s
+ Tema: %(subject)s
+ Kodël: %(reason)s
+
+Padarykite tai apsilankydami ðiuo adresu:
+
+ %(admindb_url)s
diff --git a/templates/lt/postheld.txt b/templates/lt/postheld.txt
new file mode 100644
index 00000000..352bfd6b
--- /dev/null
+++ b/templates/lt/postheld.txt
@@ -0,0 +1,10 @@
+Jûsø laiðkas diskusijø forumui tema: %(subject)s
+Laukia forumo %(listname)s priþiûrëtojo patvirtinimo.
+
+To prieþastis yra:
+
+ %(reason)s
+
+Laiðkas pateks á forumà arba Jums bus praneðta apie priþiûrëtojo sprendimà.
+
+Iðtrinti laiðkà galite adresu: %(confirmurl)s
diff --git a/templates/lt/private.html b/templates/lt/private.html
new file mode 100644
index 00000000..acef0127
--- /dev/null
+++ b/templates/lt/private.html
@@ -0,0 +1,42 @@
+<html>
+<head>
+ <title>%(realname)s privataus archyvo prisijungimas</title>
+</head>
+<body bgcolor="#ffffff">
+<FORM METHOD=POST ACTION="%(action)s/">
+%(message)s
+ <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1">%(realname)s privataus archyvo prisijungimas</FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <TD><div ALIGN="Right">El. paðto adresas:</div></TD>
+ <TD><INPUT TYPE="text" NAME="username" SIZE="30"></TD>
+ </tr>
+ <tr>
+ <TD><div ALIGN="Right">Slaptaþodis:</div></TD>
+ <TD><INPUT TYPE="password" NAME="password" SIZE="30"></TD>
+ </tr>
+ <tr>
+ <td colspan=2 align="middle"><INPUT type="SUBMIT"
+ name="submit"
+ value="Uþeiti">
+ </td>
+ </tr>
+ </TABLE>
+ <p><strong><em>Important:</em></strong> From this point on, you
+ must have cookies enabled in your browser, otherwise no
+ administrative changes will take effect.
+
+ <p>Session cookies are used in Mailman's
+ administrative interface so that you don't need to
+ re-authenticate with every administrative operation. This
+ cookie will expire automatically when you exit your browser, or
+ you can explicitly expire the cookie by hitting the
+ <em>Logout</em> link under <em>Other Administrative
+ Activities</em> (which you'll see once you successfully log in).
+</FORM>
+</body>
+</html>
diff --git a/templates/lt/refuse.txt b/templates/lt/refuse.txt
new file mode 100644
index 00000000..a775b86e
--- /dev/null
+++ b/templates/lt/refuse.txt
@@ -0,0 +1,12 @@
+Jûsø uþklausà diskusijø forumui %(listname)s
+
+ %(request)s
+
+atmetë forumo priþiûrëtojas nurodydamas ðià prieþastá:
+
+"%(reason)s"
+
+Visais klausimais praðome kreiptis á diskusijø forumo
+ administratoriø:
+
+ %(adminaddr)s.
diff --git a/templates/lt/roster.html b/templates/lt/roster.html
new file mode 100644
index 00000000..98ef17e9
--- /dev/null
+++ b/templates/lt/roster.html
@@ -0,0 +1,53 @@
+<!-- $Revision: 6065 $ -->
+<HTML>
+ <HEAD>
+ <TITLE><MM-List-Name> Dalyviai</TITLE>
+
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+
+ <P>
+ <TABLE WIDTH="100%" COLS="1" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1"><MM-List-Name>
+ Dalyviai</FONT></B>
+ </TD>
+ </TR>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" ALIGN="CENTER">
+
+ <P align = "right"> <MM-lang-form-start><MM-displang-box>
+ <MM-list-langs><MM-form-end></p>
+
+ <P>Paspauskite savo adresà, jei norite aplankyti nustatymø tinklapá.
+ <br><I>(Apskliausti uþdrausti nariai.)</I></P>
+ </TD>
+ </TR>
+ <TR WIDTH="100%" VALIGN="top">
+ <TD BGCOLOR="#FFF0D0" WIDTH="50%">
+ <center>
+ <B><FONT COLOR="#000000"><MM-Num-Reg-Users>
+ Nariai, gaunatys visus liðkus <MM-List-Name>:</FONT></B>
+ </center>
+ </TD>
+ <TD BGCOLOR="#FFF0D0" WIDTH="50%">
+ <center>
+ <B><FONT COLOR="#000000"><MM-Num-Digesters>
+ Dalyviai, gaunantys dienos laiðkø rinkinius <MM-List-Name>:</FONT></B>
+ </center>
+ </TD>
+ </TR>
+ <TR VALIGN="top">
+ <td>
+ <P><MM-Regular-Users>
+ </td>
+ <td>
+ <P><MM-Digest-Users>
+ </td>
+ </tr>
+ </table>
+<MM-Mailman-Footer>
+</BODY>
+</HTML>
+
diff --git a/templates/lt/subauth.txt b/templates/lt/subauth.txt
new file mode 100644
index 00000000..e2af9194
--- /dev/null
+++ b/templates/lt/subauth.txt
@@ -0,0 +1,8 @@
+Turite patvirtinti prisijungimà prie diskusijø forumo.
+
+ Dalyvis: %(username)s
+ Forumas: %(listname)s@%(hostname)s
+
+Padarykite tai apsilankydami ðiuo adresu:
+
+ %(admindb_url)s
diff --git a/templates/lt/subscribe.html b/templates/lt/subscribe.html
new file mode 100644
index 00000000..cda66c30
--- /dev/null
+++ b/templates/lt/subscribe.html
@@ -0,0 +1,9 @@
+<!-- $Revision: 6065 $ -->
+<html>
+<head><title><MM-List-Name> Prisijungimo rezultatai</title></head>
+<body bgcolor="white">
+<h1><MM-List-Name> Prisijungimo rezultatai</h1>
+<MM-Results>
+<MM-Mailman-Footer>
+</body>
+</html>
diff --git a/templates/lt/subscribeack.txt b/templates/lt/subscribeack.txt
new file mode 100644
index 00000000..f90be9be
--- /dev/null
+++ b/templates/lt/subscribeack.txt
@@ -0,0 +1,34 @@
+Sveiki prisijungæ prie diskusijø forumo %(real_name)s@%(host_name)s
+%(welcome)s
+
+Jei norite nusiøsti laiðkà forumo dalyviams, raðykite adresu:
+
+ %(emailaddr)s
+
+Bendra informacija apie forumà:
+
+ %(listinfo_url)s
+
+Jei kada nors norësite pakeisti dalyvio nustatymus
+arba atsisakyti dalyvavimo forume, apsilankykite tinklapyje:
+
+ %(optionsurl)s
+
+%(umbrella)s
+
+Tie pats pakeitimai ámanomi ir siunèiant komandà el. paðto adresu:
+
+ %(real_name)s-request@%(host_name)s
+
+Komandø sàraðà su paaiðkinimais gausite nusiuntæ komandà 'help'.
+
+Jûsø slaptaþodis yra:
+
+ %(password)s
+
+Sistema paprastai kartà per mënesá primena apie dalyvavimà %(host_name)s
+forume,jei tai jums nepatiks - galësite uþdrausti slaptaþodio priminimà.
+Priminimo laiðke siunèiama instrukcija kaip atsisakyti forumo bei kaip
+pakeisti nustatymus.
+
+Forumo tinklapyje bet kada galite papraðyti iðsiøsti Jums slaptaþodá.
diff --git a/templates/lt/unsub.txt b/templates/lt/unsub.txt
new file mode 100644
index 00000000..9ec8bd6f
--- /dev/null
+++ b/templates/lt/unsub.txt
@@ -0,0 +1,26 @@
+Diskusijø forumo %(listname)s atsijungimo patvirtinimo praneðimas
+
+
+Mes gavome praðymà %(remote)s atjungti Jûsø el. paðto
+adresà "%(email)s" nuo diskusijø forumo %(listaddr)s.
+
+Jei tikrai norite atsijungti nuo ðio diskusijø forumo,
+atsakykite á ðá laiðkà nepakeisdami jo temos (subject)
+
+Arba aplankykite mûsø tinklapá:
+
+ %(confirmurl)s
+
+Arba adresu %(requestaddr)s iðsiøskite laiðkà,
+áraðæ á já tik ðià eilutæ:
+
+ confirm %(cookie)s
+
+Daugumoje paðto programø galite pasinaudoti komanda 'Atsakyti'
+arba 'Reply', nes ði komanda iðsaugo temos (subject) laukà.
+(Patvirtinimui netrugdo daþniausia áterpiamas 'Ats:' arba 'Re:'.)
+
+
+Ignoruokite ðá laiðkà, jeigu nenorite atsijungti nuo ðio diskusijø forumo.
+
+Visais klausimais praðome kreiptis á administratoriø %(listadmin)s.
diff --git a/templates/lt/unsubauth.txt b/templates/lt/unsubauth.txt
new file mode 100644
index 00000000..11d5260e
--- /dev/null
+++ b/templates/lt/unsubauth.txt
@@ -0,0 +1,8 @@
+Turite patvirtinti atsijungimà nuo diskusijø forumo.
+
+ Dalyvis: %(username)s
+ Forumas: %(listname)s@%(hostname)s
+
+Padarykite tai apsilankydami ðiuo adresu:
+
+ %(admindb_url)s
diff --git a/templates/lt/userpass.txt b/templates/lt/userpass.txt
new file mode 100644
index 00000000..4603b60d
--- /dev/null
+++ b/templates/lt/userpass.txt
@@ -0,0 +1,26 @@
+Jûs arba kas nors uþ Jus papraðë priminti Jûsë slaptaþodá,
+kuriuo Jûs jungiatës prie diskusijø forumo %(fqdn_lname)s.
+
+Jums prireiks ðio slaptaþodþio jei norësite pakeisti forumo dalyvio
+nustatymus, pavz., uþsisakyti ar atsisakyti nuolatinio naujienø
+siuntimo jums arba lengviau atsijungti nuo diskusijø forumo.
+
+Jûs jungiatës nurodydami adresà: %(user)s
+
+Jûsø forumo %(listname)s slaptaþodis yra: %(password)s
+
+Jei norite pakeisti Jûsø prisijungimo nustatymus,
+prisijunkite ir aplankykite jûsø nustatymø tinklapá:
+
+ %(options_url)s
+
+Taip pat galite ávesti pakeitimus siøsdami komandà adresu:
+
+ %(requestaddr)s
+
+Jei þinutës tema (subject) bus "help" automatiðkai
+gausite tikslià nustatymø el. paðtu instrukcijà.
+
+
+Visais klausimais praðome kreiptis á diskusijø forumo
+%(listname)s administratoriø %(owneraddr)s.
diff --git a/templates/lt/verify.txt b/templates/lt/verify.txt
new file mode 100644
index 00000000..52269ae3
--- /dev/null
+++ b/templates/lt/verify.txt
@@ -0,0 +1,25 @@
+Diskusijø forumo %(listname)s prisijungimo patvirtinimo praneðimas
+
+
+Mes gavome praðymà%(remote)s prijungti Jûsø el. paðto
+adresà "%(email)s" prie diskusijø forumo %(listaddr)s.
+
+Jei tikrai norite dalyvauti ðio forumo diskusijose,
+atsakykite á ðá laiðkà nepakeisdami jo temos (subject)
+
+Arba aplankykite mûsø tinklapá:
+
+ %(confirmurl)s
+
+Dar galite adresu %(requestaddr)s iðsiøsti laiðkà, áraðæ á já tik ðià eilutæ:
+
+ confirm %(cookie)s
+
+Daugumoje paðto programø galite pasinaudoti komanda 'Atsakyti'
+arba 'Reply', nes ði komanda iðsaugo temos (subject) laukà.
+(Patvirtinimui netrugdo daþniausia áterpiamas 'Ats:' arba 'Re:'.)
+
+
+Ignoruokite ðá laiðkà, jeigu nenorite prisijungti prie ðio diskusijø forumo.
+
+Visais klausimais praðome kreiptis á administratoriø %(listadmin)s.
diff --git a/templates/nl/admindbdetails.html b/templates/nl/admindbdetails.html
new file mode 100644
index 00000000..1958b362
--- /dev/null
+++ b/templates/nl/admindbdetails.html
@@ -0,0 +1,65 @@
+The administrative requests are displayed in one of two ways, on a <a
+href="%(summaryurl)s">summary page</a>, and on a <em>details</em>
+page. The summary page contains pending subscription and
+unsubscription requests, as well as postings being held for your
+approval, grouped by sender email address. The details page contains
+a more detailed view of each held message, including the all the
+message's headers and an excerpt of the message body.
+
+<p>On all the pages, the following actions are available:
+
+<ul>
+<li><b>Defer</b> -- Defer your decision until later. No action is
+ taken now for this pending administrative request, but for held
+ postings, you can still forward or preserve the message (see
+ below).
+
+<p><li><b>Approve</b> -- Approve the message, sending it on to the list.
+ For membership requests, approve the change in membership status.
+
+<p><li><b>Reject</b> -- Reject the message, sending a rejection notice to
+ the sender, and discarding the original message. For membership
+ requests, reject the change in membership status. In either case,
+ you should add a reason for the rejection in the accompanying text
+ box.
+
+<p><li><b>Discard</b> -- Throw away the original message, without sending
+ a rejection notice. For membership requests, this simply discards
+ the request without notice to the person making the request. This
+ is usually the action you want to take for known spam.
+</ul>
+
+<p>For held messages, turn on the <b>Preserve</b> option if you want
+to save a copy of the message for the site administrator. This is
+useful for abusive messages that you want to discard, but need to keep
+a record of for later inspection.
+
+<p>Turn on the <b>Forward to</b> option, and fill in the forwarding
+address if you want to forward the message to someone else not on the
+list. To edit a held message before it is sent on to the list, you
+should forward the message to yourself (or the list owners), and
+discard the original message. Then, when the message shows up in your
+mailbox, make your edits and resend the message to the list, including
+an <tt>Approved:</tt> header with the list password as its value. It
+is proper netiquette in this case to include a note in the resent
+message, explaining that you have modified the text.
+
+<p>If the sender is a list member who is being moderated, you can
+optionally clear their moderation flag. This is useful when your list
+is configured to put new members on probation, and you've decided that
+this member can be trusted to post to the list without approval.
+
+<p>If the sender is not a list member, you can add the email address to
+a <em>sender filter</em>. Sender filters are described on the <a
+href="%(filterurl)s">sender filter privacy page</a>, and may be one of
+<b>auto-accept</b> (Accepts), <b>auto-hold</b> (Holds),
+<b>auto-reject</b> (Rejects), or <b>auto-discard</b> (Discards). This
+option will not be available if the address is already on one of the
+sender filters.
+
+<p>When you're finished, click on the <em>Submit All Data</em> button
+at the top or bottom of the page. This button will submit all
+selected actions for all administrative requests that you've made a
+decision for.
+
+<p><a href="%(summaryurl)s">Return to the summary page</a>.
diff --git a/templates/nl/admindbpreamble.html b/templates/nl/admindbpreamble.html
new file mode 100644
index 00000000..6a6eb874
--- /dev/null
+++ b/templates/nl/admindbpreamble.html
@@ -0,0 +1,8 @@
+Hier vind je informatie van alle <em>%(listname)s</em> mailing lijst
+berichten die worden vastgehouden voor goed of afkeuring.<br>
+It currently shows %(description)s
+
+<p>Als je klaar bent met je administartieve taak druk dan op <b>Submit All Data</b> knop.<br>
+Voor help klik <a href="%(detailsurl)s">hier</a>.
+
+<p>Bekijk <a href="%(summaryurl)s">hier</a> alle administratieve berichten. \ No newline at end of file
diff --git a/templates/nl/admindbsummary.html b/templates/nl/admindbsummary.html
new file mode 100644
index 00000000..d281a147
--- /dev/null
+++ b/templates/nl/admindbsummary.html
@@ -0,0 +1,7 @@
+Deze pagina laat alle administratieve handelingen zien voor de <a href="%(adminurl)s"><em>%(listname)s</em> mailing lijst</a>.
+Eerst zie je (als die er zijn) alle aanmeldings/afmeldings berichten gevolgd door de berichten die vastgehouden worden.
+
+<p>Druk na je administratieve taak op de <b>Submit All Data</b> knop om de gegevens te verwerken.
+Druk <a href="%(detailsurl)s">hier</a> voor help
+
+<p>Bekijk <a href="%(viewallurl)s">hier</a> alle vastgehouden berichten. \ No newline at end of file
diff --git a/templates/nl/adminsubscribeack.txt b/templates/nl/adminsubscribeack.txt
new file mode 100644
index 00000000..23280883
--- /dev/null
+++ b/templates/nl/adminsubscribeack.txt
@@ -0,0 +1,3 @@
+%(member)s is succesvol ingeschreven op de %(listname)s mailinglijst.
+
+
diff --git a/templates/nl/adminunsubscribeack.txt b/templates/nl/adminunsubscribeack.txt
new file mode 100644
index 00000000..1517a23b
--- /dev/null
+++ b/templates/nl/adminunsubscribeack.txt
@@ -0,0 +1,2 @@
+%(member)s is verwijderd van %(listname)s.
+
diff --git a/templates/nl/admlogin.html b/templates/nl/admlogin.html
new file mode 100644
index 00000000..168d450e
--- /dev/null
+++ b/templates/nl/admlogin.html
@@ -0,0 +1,30 @@
+<html>
+<head>
+ <title>%(listname)s %(who)s inloggen</title>
+</head>
+<body bgcolor="#ffffff">
+<FORM METHOD=POST ACTION="%(path)s">
+%(message)s
+ <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1">%(listname)s %(who)s
+ inloggen</FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <TD><div ALIGN="Right">List %(who)s Wachtwoord:</div></TD>
+ <TD><INPUT TYPE="password" NAME="adminpw" SIZE="30"></TD>
+ </tr>
+ <tr>
+ <td colspan=2 align=middle><INPUT type="SUBMIT"
+ name="admlogin"
+ value="Inloggen">
+ </td>
+ </tr>
+ </TABLE>
+ <p><strong><em>Belangrijk:</em></strong><br>
+ Vanaf hier werkt het alleen met cookies, zet de cookies aan in je browser. Anders kun je niet inloggen.
+</FORM>
+</body>
+</html> \ No newline at end of file
diff --git a/templates/nl/approve.txt b/templates/nl/approve.txt
new file mode 100644
index 00000000..e53fe3d8
--- /dev/null
+++ b/templates/nl/approve.txt
@@ -0,0 +1,14 @@
+Uw verzoek om %(requestaddr)s:
+
+ %(cmd)s
+
+is doorgestuurd naar de listowner van deze lijst.
+
+Dit komt waarschijnlijk doordat u lid probeert te worden van een
+'gesloten' lijst.
+
+U ontvangt een e-mail van de listowner over uw aanmelding.
+
+Vragen over het beleid van de listowner kunt u sturen naar:
+
+ %(adminaddr)s
diff --git a/templates/nl/article.html b/templates/nl/article.html
new file mode 100644
index 00000000..ed4933c7
--- /dev/null
+++ b/templates/nl/article.html
@@ -0,0 +1,53 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+ <HEAD>
+ <TITLE> %(title)s
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:%(email_url)s">
+ <META NAME="robots" CONTENT="index,nofollow">
+ %(encoding)s
+ %(prev)s
+ %(next)s
+ </HEAD>
+ <BODY BGCOLOR="#ffffff"><font face="Arial" size="4">
+ <H1><font color="#0000FF"><i>Onderwerp : </i> %(subject_html)s </font>
+ </H1>
+ <span style="background-color: #FFFFCC">
+ <i>Auteur :</i>
+ <B>%(author_html)s</B></span><br>
+ <span style="background-color: #CCFFFF">
+ <i>E-mail :</i>
+ <A HREF="mailto:%(email_url)s"
+ TITLE="%(subject_html)s">%(email_html)s
+ </A></span><br>
+ <span style="background-color: #FFCCFF">
+ <I>Datum :</I></td>
+ <I>%(datestr_html)s</I></td> </span>
+ </FONT><P><UL>
+ %(prev_wsubj)s
+ %(next_wsubj)s
+ <LI> <B>Berichten gesorteerd op:</B>
+ <a href="date.html#%(sequence)s">[ datum ]</a>
+ <a href="thread.html#%(sequence)s">[ draad ]</a>
+ <a href="subject.html#%(sequence)s">[ onderwerp ]</a>
+ <a href="author.html#%(sequence)s">[ auteur ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+%(body)s
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ %(prev_wsubj)s
+ %(next_wsubj)s
+ <LI> <B>Berichten gesorteerd op:</B>
+ <a href="date.html#%(sequence)s">[ datum ]</a>
+ <a href="thread.html#%(sequence)s">[ draad ]</a>
+ <a href="subject.html#%(sequence)s">[ onderwerp ]</a>
+ <a href="author.html#%(sequence)s">[ auteur ]</a>
+ </LI>
+ </UL>
+</body></html> \ No newline at end of file
diff --git a/templates/nl/bounce.txt b/templates/nl/bounce.txt
new file mode 100644
index 00000000..aa74c441
--- /dev/null
+++ b/templates/nl/bounce.txt
@@ -0,0 +1,12 @@
+Dit is een actie lijst voor bouncende berichten:
+
+ Lijst: %(listname)s
+ Member: %(addr)s
+ Actie : lidmaatschap %(negative)s%(did)s.
+ Reden : Maximale aantal bounces bereikt.
+ %(but)s
+
+%(reenable)s
+De veroorzakende bounce is bijgesloten.
+Vragen?
+Neem contact op met de Mailman site administrator op: %(owneraddr)s.
diff --git a/templates/nl/checkdbs.txt b/templates/nl/checkdbs.txt
new file mode 100644
index 00000000..46098663
--- /dev/null
+++ b/templates/nl/checkdbs.txt
@@ -0,0 +1,7 @@
+De %(real_name)s@%(host_name)s mailinglijst heeft %(count)d verzoek(en)
+die wachten op uw goedkeuring op:
+
+ %(adminDB)s
+
+Kunt u hier aub zo spoedig mogelijk naar kijken? Dit overzicht van wachtende verzoeken,
+als die er zijn, zal dagelijks naar u toegezonden worden.
diff --git a/templates/nl/convert.txt b/templates/nl/convert.txt
new file mode 100644
index 00000000..bf3b6f06
--- /dev/null
+++ b/templates/nl/convert.txt
@@ -0,0 +1,32 @@
+De %(listname)s mailinglijst heeft zojuist een grote verandering ondergaan.
+Het werkt nu op een nieuw mailinglijst pakket genaamd "Mailman". Dit zal hopelijk
+veel problemen oplossen.
+hopefully solve a lot of problems that administering this list has
+presented.
+
+Hoe zal dit u betreffen?
+
+1) Mail die naar de lijst gestuurd wordt, moet gestuurd worden naar: %(listaddr)s.
+
+2) U zult een paswoord ontvangen om te voorkomen dat anderen u kunnen uitschrijven
+zonder dat u dat weet. Deze zal naar u toe gemaild worden in een apart e-mailtje, het
+kan ook zijn dat u deze al ontvangen heeft. Mocht u dit paswoord vergeten is dat geen
+probleem. Er zal iedere maand een herinnering via e-mail naar u toegezonden worden.
+
+3) Als u toegang heeft tot internet dan kunt u ten allen tijde zich uitschrijven van deze
+lijst, aan en uitzetten van de Digest mode, het archief van deze lijst bekijken (deze zal
+beschikbaar zijn zodra er een paar dagen gemaild is op de lijst), etc.
+Het adres voor deze bron is:
+
+ %(listinfo_url)s
+
+4) Als u geen toegang heeft tot internet dan kunt u deze dingen ook doen via e-mail.
+Stuur een e-mail naar %(requestaddr)s met als onderwerp of in de tekst het woord
+"help" (zonder aanhalingstekens). U ontvangt dan automatisch een antwoord waar verdere
+aanwijzingen in staan.
+
+Heeft u nog vragen of problemen met deze nieuwe setup, dan kunt u die richten aan:
+%(adminaddr)s.
+
+Dit bericht was automatisch gegenereerd door Mailman %(version)s. Voor meer informatie
+over de Mailman software, bezoek dan de Mailman homepage op: http://www.list.org/
diff --git a/templates/nl/cronpass.txt b/templates/nl/cronpass.txt
new file mode 100644
index 00000000..1e8e6d7d
--- /dev/null
+++ b/templates/nl/cronpass.txt
@@ -0,0 +1,19 @@
+Dit is een maandelijkse herinnering m.b.t. uw %(hostname)s
+mailinglijst lidmaatschap. Dit bericht bevat uw inlog gegevens en uitleg hoe je
+een abonnement kunt wijzigen of stopzetten.
+
+U kunt de volgende URLs bezoeken om uw lidmaatschap status of
+configuratie te wijzigen, inclusief het annuleren van je lidmaatschap,
+het kiezen voor digest (samengestelde) berichten of het tijdelijk
+stopzetten van berichten (no-mail) i.v.m. vakantie etc.
+
+Behalve via onderstaande URLs, kunt u dergelijke veranderingen ook via
+e-mail doorgeven. Voor meer informatie hierover, stuur een e-mail naar
+'-request' adres van de mailinglijst (bijvoorbeeld: %(exreq)s) met als tekst van je
+e-mail alleen het woord 'help'. Je ontvangt dan een e-mail terug met verdere
+instructies.
+
+Voor verdere vragen, problemen, opmerkingen, etc. Stuur een e-mail naar
+%(owner)s. Bedankt!
+
+Paswoord voor %(useraddr)s: \ No newline at end of file
diff --git a/templates/nl/disabled.txt b/templates/nl/disabled.txt
new file mode 100644
index 00000000..4f96abbc
--- /dev/null
+++ b/templates/nl/disabled.txt
@@ -0,0 +1,24 @@
+Uw lidmaatschap van de mailinglijst %(listname)s is stopgezet. Dit i.v.m.
+teveel bounces.U ontvangt geen berichten meer van deze lijst totdat u uw
+lidmaatschap heeft hersteld. U ontvangt nog %(noticesleft)s herinneringen als
+deze, voordat uw lidmaatschap wordt opgeheven.
+
+Om uw lidmaatschap te herstellen kunt u simpelweg op dit bericht reageren
+(laat de onderwerp:/subject: regel staan), of bezoek de bevestigingspagina op:
+
+ %(confirmurl)s
+
+U kunt ook uw lidmaatschapspagina bezoeken
+
+ %(optionsurl)s
+
+Op uw lidmaatschapspagina kunt u enkele bezorg opties wijzigen.
+Bijvoorbeeld uw e-mail adres wijzigen, aangeven of u dagelijks een overzicht van
+berichten wilt ontvangen (digest).
+Als extra herinnering, uw paswoord is:
+
+ %(password)s
+
+Heeft u nog vragen of problemen, neem dan contact op met de list owner op
+
+ %(owneraddr)s
diff --git a/templates/nl/emptyarchive.html b/templates/nl/emptyarchive.html
new file mode 100644
index 00000000..dbd9184f
--- /dev/null
+++ b/templates/nl/emptyarchive.html
@@ -0,0 +1,13 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+ <HEAD>
+ <title>%(listname)s Archief</title>
+ <META NAME="robots" CONTENT="noindex,follow">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <h1>%(listname)s Archief</h1>
+ <p>
+ <b><FONT COLOR=RED SIZE="4">Het Archief is nog leeg.</FONT></b><br><br><a href="%(listinfo)s">Informatie pagina van de lijst</a>.
+ </p>
+ </BODY>
+ </HTML> \ No newline at end of file
diff --git a/templates/nl/headfoot.html b/templates/nl/headfoot.html
new file mode 100644
index 00000000..91d2e8a0
--- /dev/null
+++ b/templates/nl/headfoot.html
@@ -0,0 +1,43 @@
+Deze commando's kunnen gebruikt worden in je tekst:<br>
+&nbsp;<table border="0" cellspacing="1" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1">
+ <tr>
+ <td width="17%"><b><code>real_name</code></b></td>
+ <td width="83%">De lijstnaam met hoofdletters er in. </td>
+ </tr>
+ <tr>
+ <td width="17%"><b><code>list_name</code></b></td>
+ <td width="83%">De lijstnaam zonder hoofdletters er in, gepresenteerd als
+ URL. </td>
+ </tr>
+ <tr>
+ <td width="17%"><b><code>host_name</code></b></td>
+ <td width="83%">De hostnaam van de server waar deze mailing lijst op draait..
+ </td>
+ </tr>
+ <tr>
+ <td width="17%"><b><code>web_page_url</code></b></td>
+ <td width="83%">Basis URL van Mailman. Hier kan aan toegevoegd worden: <em><code>listinfo/%(internal_name)s</code></em>
+ om naar de lijst informatie pagina te gaan.. </td>
+ </tr>
+ <tr>
+ <td width="17%"><b><code>description</code></b></td>
+ <td width="83%">Dit laat de korte omschrijving zien van de mailing lijst..
+ </td>
+ </tr>
+ <tr>
+ <td width="17%"><b><code>info</code></b></td>
+ <td width="83%">De volledige omschrijving van de mailing lijst.. </td>
+ </tr>
+ <tr>
+ <td width="17%"><b><code>cgiext</code></b></td>
+ <td width="83%">Geeft weer de extentie die is toegevoegd aan CGI scripts..
+ </td>
+ </tr>
+</table>
+&nbsp;<p>Om het commando te laten werken voeg je er voor : <b>%(</b> en er na <b>
+)s</b> .</p>
+<p>Een voorbeeld van een voetnoot:</p>
+<p><b>---------------------------<br>
+Mailing lijst: %(real_name)s<br>
+Lijst informatie: %(web_page_url)slistinfo/%(internal_name)s</b></p>
+<p>&nbsp;</p>
diff --git a/templates/nl/help.txt b/templates/nl/help.txt
new file mode 100644
index 00000000..4d5cc354
--- /dev/null
+++ b/templates/nl/help.txt
@@ -0,0 +1,24 @@
+Help voor %(listname)s mailinglijsten:
+
+Dit is e-mail commando help voor versie %(version)s van de "Mailman"
+lijst manager.
+De Commando's kun je plaatsen in het onderwerp veld of in de body van een bericht.
+
+TIP: het beste is om dit in plaintekst mail te doen (geen HTML mail dus).
+
+
+De e-mail commando's kun je ook grafish instellen op de volgende website:
+
+ %(listinfo_url)s
+
+Woorden tussen "<>"s Zijn verplicht.
+Woorden tussen "[]" Zijn optionele commando's.
+De commando's invullen zonder <> en [].
+
+De lijst met commando's:
+
+ %(commands)s
+
+De commando's stuur je naar: %(requestaddr)s
+
+Voor vragen mail : %(adminaddr)s
diff --git a/templates/nl/invite.txt b/templates/nl/invite.txt
new file mode 100644
index 00000000..a8d231ce
--- /dev/null
+++ b/templates/nl/invite.txt
@@ -0,0 +1,20 @@
+Uw e-mail adres "%(email)s" is uitgenodigd om deel te nemen aan de %(listname)s
+mailinglijst op %(hostname)s door de %(listname)s mailing listowner.
+U kunt de uitnodiging accepteren door dit bericht te beantwoorden (replyen)
+en daarbij het Onderwerp:/Subject: te laten staan.
+
+U kunt ook de volgende web pagina bezoeken:
+
+ %(confirmurl)s
+
+Of u kunt een berichtje sturen met de volgende regel -- en alleen deze regel --
+aan %(requestaddr)s:
+
+ bevestig %(cookie)s
+
+Opmerking: Gewoon een reply op dit bericht sturen zou moeten voldoen in de
+meeste e-mail programma's.
+
+Als u niet in wilt gaan op deze uitnodiging, kunt u dit bericht negeren.
+Mocht u nog vragen hebben, stuur deze dan naar
+%(listowner)s.
diff --git a/templates/nl/listinfo.html b/templates/nl/listinfo.html
new file mode 100644
index 00000000..efb95d46
--- /dev/null
+++ b/templates/nl/listinfo.html
@@ -0,0 +1,126 @@
+<!-- $Revision: 5336 $ -->
+<HTML>
+ <HEAD>
+ <TITLE><MM-List-Name> Informatie Pagina</TITLE>
+
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+
+ <P>
+ <TABLE COLS="1" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1"><MM-List-Name> --
+ <MM-List-Description></FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <p>&nbsp;
+ </td>
+ </tr>
+ <tr>
+ <TD COLSPAN="1" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000">Lijst omschrijving <MM-List-Name></FONT></B>
+ </TD>
+ <TD COLSPAN="1" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <MM-lang-form-start><MM-displang-box> <MM-list-langs>
+ <MM-form-end>
+ <MM-Subscribe-Form-Start>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <P><MM-List-Info></P>
+ <p> Bezoek het archief van <MM-Archive><MM-List-Name></MM-Archive>.
+ <MM-Restricted-List-Message>
+ </p>
+ </TD>
+ </TR>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000">Mail Info <MM-List-Name></FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ Om een bericht naar de lijst te sturen gebruik je dit e-mail adres:<br>
+ <A HREF="mailto:<MM-Posting-Addr>"><MM-Posting-Addr></A>.
+ <p></td>
+ </tr>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000">Lid worden van deze lijst : <MM-List-Name></FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <P>
+ Om je aan te melden op de <MM-List-Name> Mailing lijst vul het onderstaande formulier in.
+ <MM-List-Subscription-Msg>
+ <ul>
+ <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"
+ WIDTH="70%" HEIGHT= "112">
+ <TR>
+ <TD BGCOLOR="#dddddd" WIDTH="55%">Je EMail adres:</TD>
+ <TD WIDTH="33%"><MM-Subscribe-Box>
+ </TD>
+ <TD WIDTH="12%">&nbsp;</TD></TR>
+ <tr>
+ <td bgcolor="#dddddd" width="55%">Je voor/achter naam (Optioneel):</td>
+ <td width="33%"><mm-fullname-box></td>
+ <TD WIDTH="12%">&nbsp;</TD></TR>
+ <TR>
+ <TD COLSPAN="3"><FONT SIZE=-1>Vul je eigen wachtwoord in of vul niets in zodat het systeem een wachtwoord aanmaakt.
+ Dit wachtwoord zal opgestuurd worden naar je opgegeven email adres.
+ <MM-Reminder>
+ </TD>
+ </TR>
+ <TR>
+ <TD BGCOLOR="#dddddd">Kies een wachtwoord:</TD>
+ <TD><MM-New-Password-Box></TD>
+ <TD>&nbsp;</TD></TR>
+ <TR>
+ <TD BGCOLOR="#dddddd">Vul het wachtwoord nogmaals in:</TD>
+ <TD><MM-Confirm-Password></TD>
+ <TD>&nbsp; </TD></TR>
+ <tr>
+ <TD BGCOLOR="#dddddd">Welke taal wil je?</TD>
+ <TD> <MM-list-langs></TD>
+ <TD>&nbsp; </TD></TR>
+ <tr>
+ <td>Wil je een dagelijkse digest ontvangen (Alle mail verzameld van 1 dag in 1 mailtje) in plaats van losse emailtjes?
+ </td>
+ <td><MM-Undigest-Radio-Button> No
+ <MM-Digest-Radio-Button> Yes
+ </TD>
+ </tr>
+ <tr>
+ <td colspan="3">
+ <center><MM-Subscribe-Button></P></center>
+ </TABLE>
+ <MM-Form-End>
+ </ul>
+ </td>
+ </tr>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <a name="Subscribers">
+ <B><FONT COLOR="#000000"><MM-List-Name> gebruikers</FONT></B></a>
+ </TD>
+ </TR>
+ <tr>
+ <TD COLSPAN="2" WIDTH="100%">
+ <MM-Roster-Form-Start>
+ <MM-Roster-Option>
+ <MM-Form-End>
+ <p>
+ <MM-Options-Form-Start>
+ <MM-Editing-Options>
+ <MM-Form-End>
+ </td>
+ </tr>
+ </table>
+<MM-Mailman-Footer>
+</BODY>
+</HTML> \ No newline at end of file
diff --git a/templates/nl/masthead.txt b/templates/nl/masthead.txt
new file mode 100644
index 00000000..5d105cd5
--- /dev/null
+++ b/templates/nl/masthead.txt
@@ -0,0 +1,13 @@
+Stuur %(real_name)s mailinglijst inschrijving naar
+ %(got_list_email)s
+
+Om lid te worden of uit te schrijven via internet, bezoek
+ %(got_listinfo_url)s
+of, via e-mail, stuur een bericht met als onderwerp of tekst het woord 'help' naar
+ %(got_request_email)s
+
+U kunt de persoon die de lijst bijhoudt bereiken op
+ %(got_owner_email)s
+
+Als u een bericht beantwoord (reply) bewerk dan uw onderwerp regel zo dat het meer
+specifiek is dan "Re: Contents of %(real_name)s digest..."
diff --git a/templates/nl/newlist.txt b/templates/nl/newlist.txt
new file mode 100644
index 00000000..28cfad2d
--- /dev/null
+++ b/templates/nl/newlist.txt
@@ -0,0 +1,35 @@
+De mailinglijst `%(listname)s' is zojuist voor u aangemaakt. Hier volgt
+wat basis informatie over uw mailinglijst.
+
+Uw mailinglijst paswoord is:
+
+ %(password)s
+
+U heeft dit paswoord nodig om uw mailinglijst te configureren. Ook heeft u
+dit nodig om enkele administratieve handelingen te kunnen verrichten, zoals
+berichten toelaten als de lijst op moderated staat.
+
+U kunt uw mailinglijst configureren op de volgende web pagina:
+
+ %(admin_url)s
+
+De web pagina voor de leden van uw mailinglijst is:
+
+ %(listinfo_url)s
+
+U kunt zelfs deze webpagina's aanpassen van de lijst configuratie-pagina.
+Hiervoor heeft u HTML-kennis nodig.
+
+Voor de leden is er ook de mogelijkheid om configuraties via e-mail te verrichten.
+Informatie hierover kunt u ontvangen door een bericht te sturen met het woord
+'help' als onderwerp of in de tekst, naar:
+
+ %(requestaddr)s
+
+Om een lid uit te schrijven: van de mailinglijst 'listinfo' web pagina,
+klik op of vul het desbetreffende e-mail adres in.
+Op de plaats waar het lid zijn paswoord in moet vullen om uit te schrijven, vul
+daar uw admin. paswoord in. U kunt ook uw paswoord gebruiken om leden-opties te
+wijzigen, zoals: op digest zetten, op no-mail zetten, etc.
+
+Alle vragen aub sturen naar %(siteowner)s.
diff --git a/templates/nl/options.html b/templates/nl/options.html
new file mode 100644
index 00000000..ee767c14
--- /dev/null
+++ b/templates/nl/options.html
@@ -0,0 +1,280 @@
+<!-- $Revision: 5336 $ -->
+<html>
+<head>
+ <link rel="SHORTCUT ICON" href="<mm-favicon>">
+ <title><MM-Presentable-User> instellingen voor <MM-List-Name> mailing lijst
+ </title>
+</head>
+<BODY BGCOLOR="#ffffff">
+ <TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#99CCFF"><B>
+ <FONT COLOR="#000000" SIZE=+1>
+ <MM-List-Name> mailing lijst instellingen voor <MM-Presentable-User>
+ </FONT></B></TD></TR>
+ </TABLE>
+<p>
+<table width="100%" border="0" cellspacing="5" cellpadding="5">
+ <tr><td>
+ <b><MM-Presentable-User></b>'s Aanmeld status,
+ wachtwoord, en andere opties voor <MM-List-Name> mailing lijst.
+ </td><td><MM-Form-Start><mm-logout-button><MM-Form-End></td>
+ </tr><tr>
+ <td colspan="2">
+ <MM-Case-Preserved-User>
+
+ <MM-Disabled-Notice>
+
+ <p><mm-results>
+ </td>
+ </tr>
+</table>
+
+<MM-Form-Start>
+<p>
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#FFF0D0" colspan="2">
+ <FONT COLOR="#000000">
+ <B>Wijzing je <MM-List-Name> lidmaatschap informatie</B>
+ </FONT></TD></TR>
+ <tr><td colspan="2">
+ Hier kun je je email adres veranderen. Je krijgt een nieuw emailtje toegestuurt
+ op je nieuwe email adres voor bevestiging. Je moet deze bevestigen voordat het nieuwe
+ email adres aktief wordt.
+
+ <p>Je moet de email adres wijziging bevestigen binnen <mm-pending-days>.
+
+ <p>Je kan ook optioneel je naam invoeren (vb. <em>John Smith</em>).
+
+ <p>Wil je al je email adressen in 1 keer op <mm-host> veranderen, dan het vinkje aanzetten bij
+ <em>Wijzig in alle lijsten</em> keuze.
+
+ </td></tr>
+ <tr><td><center>
+ <table border="0" cellspacing="2" cellpadding="2" width="80%" cols="2">
+ <tr><td bgcolor="#dddddd"><div align="right">Nieuw email adres:</div></td>
+ <td><mm-new-address-box></td>
+ </tr>
+ <tr><td bgcolor="#dddddd"><div align="right">Nogmaals het nieuwe adres:</div></td>
+ <td><mm-confirm-address-box></td>
+ </tr>
+ </tr></table></center>
+ </td>
+ <td><center>
+ <table border="0" cellspacing="2" cellpadding="2" width="80%" cols="2">
+ <tr><td bgcolor="#dddddd"><div align="right">Je naam (optioneel):</div></td>
+ <td><mm-fullname-box></td>
+ </tr>
+ </table></center>
+ </td>
+ </tr>
+ <tr><td colspan="2"><center><mm-change-address-button>
+ <p><mm-global-change-of-address>Wijzig in alle lijsten</center></td>
+ </tr>
+</table>
+
+<p>
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="5" CELLPADDING="5">
+ <TR><TD WIDTH="50%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>Afmelden van <MM-List-Name> mailing lijst</B></td>
+
+ <TD WIDTH="50%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>Je andere aangemelde <MM-Host> mailing lijsten</B>
+ </FONT></TD></TR>
+
+ <tr><td>
+ Zet het vinkje aan (onder de knop) om je af te melden bij deze mailing lijst.
+ En druk op de knop (hieronder) <strong>Waarschuwing:</strong>
+ Je word meteen van de lijst verwijderd.
+ <p>
+ <center>
+ <p><MM-Unsubscribe-Button></p>
+ </center></td>
+ <td>
+ Bekijk al alle lijsten waar je je aangemeld hebt op <mm-host>.
+ Als je een andere lijst heb geselecteerd kun je daar ook eventueel opties wijzigen.
+ <p>
+ <center>
+ <p><MM-Other-Subscriptions-Submit></p>
+ </center>
+ </TD></TR>
+</table>
+
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD COLSPAN=2 WIDTH="100%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>Je <MM-List-Name> Wachtwoord</B>
+ </FONT></TD></TR>
+
+ <tr valign="TOP"><td WIDTH="50%">
+ <a name=reminder>
+ <center>
+ <h3>Je wachtwoord vergeten?</h3>
+ </center>
+ Druk op de knop, en je wachtwoord wordt toegestuurd via email.
+ <p><MM-Umbrella-Notice>
+ <center>
+ <p>
+ <MM-Email-My-Pw>
+ </p>
+ </center>
+ </td>
+
+ <td WIDTH="50%">
+ <a name=changepw>
+ <center>
+ <h3>Wijzig je wachtwoord</h3>
+ <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2" WIDTH="70%" COLS=2>
+ <TR><TD BGCOLOR="#dddddd"><div align="right">Nieuw Wachtwoord:</div></TD>
+ <TD><MM-New-Pass-Box></TD>
+ </TR>
+ <TR>
+ <TD BGCOLOR="#dddddd"><div align="right">Nogmaals het nieuwe wachtwoord:</div></TD>
+ <TD><MM-Confirm-Pass-Box></TD>
+ </TR>
+ </table>
+
+ <MM-Change-Pass-Button>
+ <p><center><mm-global-pw-changes-button>Wijzig het voor alle mailing lijsten
+ </center>
+</TABLE>
+
+<p>
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>Je <MM-List-Name> mailing lijst aanmeldings optie's</B>
+ </FONT></TD></TR>
+</table>
+
+<p>
+<i><strong>De optie's zoals ze nu staan zijn aktief.</strong></i>
+<br><br>
+Notitie: Sommige opties hebben de instelling <em>Globaal</em>
+optie. Als je deze optie aanvinkt zal de optie ook ingesteld worden op alle andere
+mailing lijsten waar je lid van bent.
+<p>
+<TABLE BORDER="0" CELLSPACING="3" CELLPADDING="4" WIDTH="100%">
+ <tr><TD BGCOLOR="#cccccc">
+ <a name="disable">
+ <strong>Mail Bezorging</strong></a><p>
+ Zet deze optie op <em>Aan</em> om berichten die worden gepost naar de lijst
+ te ontvangen. Zet de optie op <em>Uit</em> om de bezorging van post
+ tijdelijk uit te schakelen. Bijvoorbeeld als je op vakantie gaat of om
+ andere redenen. Vergeet niet om weer de optie op <em>Aan</em> te zetten als
+ je weer post wilt ontvangen.
+ </td><td bgcolor="#cccccc">
+ <mm-delivery-enable-button>Aan<br>
+ <mm-delivery-disable-button>Uit<p>
+ <mm-global-deliver-button><i>Globaal</i>
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Digest</strong><p>
+ Als je deze optie op <em>Aan</em> zet dan krijg je de mail van 1 dag gebundeld
+ in 1 bericht. Zet je deze optie op <em>Uit</em> dan krijg je elk emailtje wat gestuurd
+ wordt naar de lijst appart.
+ </td><td bgcolor="#cccccc">
+ <MM-Undigest-Radio-Button>Uit<br>
+ <MM-Digest-Radio-Button>Aan
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>HTML of platte tekst Digests?</strong><p>
+ Als je op digest mode staat kun je keizen of je HTML of platte text berichten wilt
+ ontvangen.
+ </td><td bgcolor="#cccccc">
+ <MM-Mime-Digests-Button>HTML<br>
+ <MM-Plain-Digests-Button>Platte tekst<p>
+ <mm-global-mime-button><i>Globaal</i>
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Ontvang je eigen verstuurde berichten naar de lijst</strong><p>
+ Normaal gesproken krijg je je eigen verstuurde mail terug, als je dit niet wilt,
+ stel de optie in op <em>Nee</em>.
+ </td><td bgcolor="#cccccc">
+ <mm-dont-receive-own-mail-button>Nee<br>
+ <mm-receive-own-mail-button>Ja
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Ontvangst bevestiging?</strong><p>
+ Als je een ontvangst bevestiging wilt voor elk bericht wat je stuurt
+ aan de lijst zet je de optie op <em>Aan</em>.
+ </td><td bgcolor="#cccccc">
+ <mm-dont-ack-posts-button>Uit<br>
+ <mm-ack-posts-button>Aan
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>Wachtwoord herinneringen</strong><p>
+ Op de 1ste van de elke maand wordt er een herinnering gestuurd per email.
+ In dit emailtje staat je wachtwoord ter herinnering. Om dit uit te zetten als je dit niet wilt ontvangen zet je de optie op
+ <em>Nee</em>
+ </td><td bgcolor="#cccccc">
+ <mm-dont-get-password-reminder-button>Nee<br>
+ <mm-get-password-reminder-button>Ja<p>
+ <mm-global-remind-button><i>Globaal</i>
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Ontzichtbaar</strong><p>
+ Je kan jezelf op ontzichtbaar zetten op de ledenlijst. Andere leden zien dan niet dat je lid bent
+ van de mailing lijst. Zet de optie op <em>Ja</em> voor ontzichtbaar op de ledenlijst.
+ </td><td bgcolor="#cccccc">
+ <MM-Public-Subscription-Button>Nee<br>
+ <MM-Hide-Subscription-Button>Ja
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Welke taal wil je?</strong><p>
+ Deze taal instelling geld voor alle systeem berichten en webpagina's.
+ </td><td bgcolor="#cccccc">
+ <MM-list-langs>
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>Onderwerp categorie selectie</strong><p>
+ Bij het selecteren van 1 of meer onderwerpen, kun je berichten filteren.
+ Je krijgt dan alleen deze berichten toegestuurd, alle andere berichten gestuurd naar deze
+ lijst zul je dan niet ontvangen.
+ </td><td bgcolor="#cccccc">
+ <mm-topics>
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>Wil je berichten ontvangen die niet overeen komen met bovenstaande onderwerp filters?</strong><p>
+ Optie <em>Nee</em> zorgt ervoor dat je geen berichten ontvangt die niet overeen komen met
+ de ingestelde Onderwerp filter. Optie <em>Ja</em>
+ bezorgd ook alle berichten die niet aan de onderwerp filter voldoet.
+ </td><td bgcolor="#cccccc">
+ <mm-suppress-nonmatching-topics>Nee<br>
+ <mm-receive-nonmatching-topics>Ja
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>Onderschep dubbele berichten gestuurd naar de lijst?</strong><p>
+
+ Als je ook persoonlijk geadresseerd bent in <tt>Aan:</tt> of
+ <tt>Cc:</tt> headers van een bericht, dan kan je kiezen om
+ geen dubbele berichten te ontvangen.
+ Kies de optie <em>Ja</em> om dubbele berichten te voorkomen.
+ Selecteer <em>Nee</em> om dubbele berichten te ontvangen.
+ </td><td bgcolor="#cccccc">
+ <mm-receive-duplicates-button>Nee<br>
+ <mm-dont-receive-duplicates-button>Ja<p>
+ <mm-global-nodupes-button><i>Globaal</i>
+ </td></tr>
+
+ <tr><TD colspan="2">
+ <center>
+ <p><MM-options-Submit-button></p>
+ </center>
+ </td></tr>
+
+</table>
+</center>
+<p>
+<MM-Form-End>
+
+<MM-Mailman-Footer>
+</body>
+</html> \ No newline at end of file
diff --git a/templates/nl/postack.txt b/templates/nl/postack.txt
new file mode 100644
index 00000000..3fb1f8dc
--- /dev/null
+++ b/templates/nl/postack.txt
@@ -0,0 +1,7 @@
+Uw bericht getiteld
+
+ %(subject)s
+
+is goed ontvangen door de %(listname)s mailing lijst.
+
+Lijst info pagina: %(listinfo_url)s
diff --git a/templates/nl/postauth.txt b/templates/nl/postauth.txt
new file mode 100644
index 00000000..de114f2c
--- /dev/null
+++ b/templates/nl/postauth.txt
@@ -0,0 +1,13 @@
+Als lijst administrator, wordt uw goedkeuring gevraagd voor de
+volgende mailinglijst zending:
+
+ Lijst: %(listname)s@%(hostname)s
+ Van : %(sender)s
+ Onderwerp: %(subject)s
+ Reden: %(reason)s
+
+Bezoek:
+
+ %(admindb_url)s
+
+om het verzoek goed te keuren of te weigeren.
diff --git a/templates/nl/postheld.txt b/templates/nl/postheld.txt
new file mode 100644
index 00000000..f356b8f3
--- /dev/null
+++ b/templates/nl/postheld.txt
@@ -0,0 +1,15 @@
+Uw e-mail naar '%(listname)s' met als onderwerp/subject
+
+ %(subject)s
+
+Wordt tegengehouden totdat de lijst moderator deze kan bekijken.
+
+De reden waarom het is tegengehouden:
+
+ %(reason)s
+
+Of het bericht wordt naar de lijst gestuurd, of u ontvangt een bericht
+over de beslissing van de moderator. Als u dit bericht wilt annuleren,
+bezoek dan de volgende pagina:
+
+ %(confirmurl)s
diff --git a/templates/nl/private.html b/templates/nl/private.html
new file mode 100644
index 00000000..36a157a7
--- /dev/null
+++ b/templates/nl/private.html
@@ -0,0 +1,34 @@
+<html>
+<head>
+ <title>%(realname)s Prive Archief beveiligd</title>
+</head>
+<body bgcolor="#ffffff">
+<FORM METHOD=POST ACTION="%(action)s/">
+%(message)s
+ <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1">%(realname)s Prive Archief inloggen</FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <TD><div ALIGN="Right">Email adres:</div></TD>
+ <TD><INPUT TYPE="text" NAME="username" SIZE="30"></TD>
+ </tr>
+ <tr>
+ <TD><div ALIGN="Right">Wachtwoord:</div></TD>
+ <TD><INPUT TYPE="password" NAME="password" SIZE="30"></TD>
+ </tr>
+ <tr>
+ <td colspan=2 align="middle"><INPUT type="SUBMIT"
+ name="submit"
+ value="Inloggen">
+ </td>
+ </tr>
+ </TABLE>
+ <p><strong><em>Belangrijk:</em></strong><br>
+ Je moet cookies accepteren in je browser of de cookies aanzetten.<br>
+ Verdere pagina's werken alleen met cookies.
+</FORM>
+</body>
+</html> \ No newline at end of file
diff --git a/templates/nl/refuse.txt b/templates/nl/refuse.txt
new file mode 100644
index 00000000..9bd8cf2d
--- /dev/null
+++ b/templates/nl/refuse.txt
@@ -0,0 +1,12 @@
+Uw verzoek aan de %(listname)s mailinglijst
+
+ %(request)s
+
+is geweigerd door de lijst moderator. De moderator gaf de volgende reden
+voor het weigeren van uw verzoek:
+
+"%(reason)s"
+
+Vragen of opmerkingen kunt u richten aan de lijst administrator op:
+
+ %(adminaddr)s
diff --git a/templates/nl/roster.html b/templates/nl/roster.html
new file mode 100644
index 00000000..7039ce48
--- /dev/null
+++ b/templates/nl/roster.html
@@ -0,0 +1,50 @@
+<!-- $Revision: 5336 $ -->
+<HTML>
+ <HEAD>
+ <TITLE><MM-List-Name> Leden</TITLE>
+
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+
+ <P>
+ <TABLE WIDTH="100%" COLS="1" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1"><MM-List-Name>
+ Leden</FONT></B>
+ </TD>
+ </TR>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" ALIGN="CENTER">
+
+ <P align = "right"> <MM-lang-form-start><MM-displang-box>
+ <MM-list-langs><MM-form-end></p>
+
+ <P>Klik op je eigen email adres voor je instellingen.<br></P>
+ </TD>
+ </TR>
+ <TR WIDTH="100%" VALIGN="top">
+ <TD BGCOLOR="#FFF0D0" WIDTH="50%">
+ <center>
+ <B><FONT COLOR="#000000"><MM-Num-Reg-Users>
+ Normale leden op de lijst <MM-List-Name>:</FONT></B>
+ </center>
+ </TD>
+ <TD BGCOLOR="#FFF0D0" WIDTH="50%">
+ <center>
+ <B><FONT COLOR="#000000"><MM-Num-Digesters> Digest leden op de lijst <MM-List-Name>:</FONT></B>
+ </center>
+ </TD>
+ </TR>
+ <TR VALIGN="top">
+ <td>
+ <P><MM-Regular-Users>
+ </td>
+ <td>
+ <P><MM-Digest-Users>
+ </td>
+ </tr>
+ </table>
+<MM-Mailman-Footer>
+</BODY>
+</HTML> \ No newline at end of file
diff --git a/templates/nl/subauth.txt b/templates/nl/subauth.txt
new file mode 100644
index 00000000..0a253338
--- /dev/null
+++ b/templates/nl/subauth.txt
@@ -0,0 +1,11 @@
+Uw toestemming wordt gevraagd voor een mailinglijst
+inschrijvingsverzoek:
+
+ Voor : %(username)s
+ Lijst: %(listname)s@%(hostname)s
+
+Bezoek:
+
+ %(admindb_url)s
+
+om het verzoek te behandelen. \ No newline at end of file
diff --git a/templates/nl/subscribe.html b/templates/nl/subscribe.html
new file mode 100644
index 00000000..1287b876
--- /dev/null
+++ b/templates/nl/subscribe.html
@@ -0,0 +1,9 @@
+<!-- $Revision: 5336 $ -->
+<html>
+<head><title><MM-List-Name> Subscription results</title></head>
+<body bgcolor="white">
+<h1>Je aanmeldings status van :<MM-List-Name></h1>
+<MM-Results>
+<MM-Mailman-Footer>
+</body>
+</html> \ No newline at end of file
diff --git a/templates/nl/subscribeack.txt b/templates/nl/subscribeack.txt
new file mode 100644
index 00000000..fe1d3951
--- /dev/null
+++ b/templates/nl/subscribeack.txt
@@ -0,0 +1,33 @@
+Welkom op de %(real_name)s@%(host_name)s mailinglijst!
+%(welcome)s
+Om berichten te sturen naar deze lijst, stuur uw e-mails naar
+het volgende adres:
+
+ %(emailaddr)s
+
+Algemene informatie over de mailinglijst kunt u vinden op:
+
+ %(listinfo_url)s
+
+Als u ooit wilt uitschrijven of uw opties veranderen (bv. paswoord veranderen,
+digest aan of uitzetten, no-mail etc.), bezoek uw inschrijvingspagina op:
+
+ %(optionsurl)s
+%(umbrella)s
+Dergelijke wijzigingen kunt u ook doen via e-mail door een bericht te sturen aan:
+
+ %(real_name)s-request@%(host_name)s
+
+met het woord 'help' in de onderwerp/subject regel of in de tekst zelf. U
+ontvangt dan een bericht terug met aanwijzingen.
+
+Voor dergelijke wijzigingen heeft u een paswoord nodig. Deze is:
+
+ %(password)s
+
+Normaal gesproken zal Mailman u iedere maand op de hoogte houden van
+uw %(host_name)s mailinglijst paswoord. Deze mogelijkheid kunt u echter
+ook uitzetten als u dat wilt. Deze maandelijkse berichten zullen ook aanwijzingen
+bevatten over hoe u kunt uitschrijven of hoe u uw opties kunt veranderen.
+Op uw inschrijvingspagina vindt u ook een knop die, als u daarop klikt, uw
+huidige paswoord via e-mail naar u toestuurt. \ No newline at end of file
diff --git a/templates/nl/unsub.txt b/templates/nl/unsub.txt
new file mode 100644
index 00000000..6747ce67
--- /dev/null
+++ b/templates/nl/unsub.txt
@@ -0,0 +1,21 @@
+Bevestiging van uitschrijving van de mailinglijst %(listname)s
+
+Wij hebben een verzoek ontvangen %(remote)s voor het uitschrijven van uw
+e-mail adres, "%(email)s" van de %(listaddr)s mailinglijst. Om uw uitschrijving
+te bevestigen kunt u deze e-mail beantwoorden (replyen), waarbij u de
+onderwerp (subject) regel laat staan. Of bezoek de web pagina:
+
+ %(confirmurl)s
+
+Of stuur een bericht naar %(requestaddr)s , met de volgende regel
+-- en alleen deze regel --:
+
+ confirm %(cookie)s
+
+Opmerking: Dit bericht beantwoorden (replyen) is in de meeste gevallen
+voldoende. Waarbij u het onderwerp (subject) gewoon laat staan.
+
+Als u niet uitgeschreven wilt worden, kunt u dit bericht negeren.
+Wanneer u denkt dat u onterecht uitgeschreven wordt, of als u andere
+vragen heeft, stuur deze dan naar
+%(listadmin)s.
diff --git a/templates/nl/unsubauth.txt b/templates/nl/unsubauth.txt
new file mode 100644
index 00000000..4b3f4f3c
--- /dev/null
+++ b/templates/nl/unsubauth.txt
@@ -0,0 +1,10 @@
+Uw toestemming wordt gevraagd voor een verzoek tot uitschrijving:
+
+ Door: %(username)s
+ Van: %(listname)s@%(hostname)s
+
+Bezoek:
+
+ %(admindb_url)s
+
+om dit verzoek te behandelen. \ No newline at end of file
diff --git a/templates/nl/userpass.txt b/templates/nl/userpass.txt
new file mode 100644
index 00000000..d64694ca
--- /dev/null
+++ b/templates/nl/userpass.txt
@@ -0,0 +1,24 @@
+U, of iemand anders, heeft een paswoord opgevraagd voor uw lidmaatschap
+van de mailinglijst %(fqdn_lname)s. U heeft dit paswoord nodig om
+wijzigingen in uw lidmaatschap opties aan te brengen (bv. aan/uitzetten van
+de digest etc.), met dit paswoord kunt u ook makkelijker uitschrijven van
+deze mailinglijst.
+
+U bent ingeschreven met het adres: %(user)s
+
+Uw %(listname)s paswoord is: %(password)s
+
+Om wijzigingen aan te brengen in uw lidmaatschap opties, kunt u
+de volgende pagina bezoeken:
+
+ %(options_url)s
+
+U kunt deze wijzigingen ook via e-mail doen, door een bericht te sturen aan:
+
+ %(requestaddr)s
+
+Met de tekst 'help' in het onderwerp (subject) of in het tekstgedeelte.
+U krijgt dan automatisch een bericht terug met verdere aanwijzingen.
+
+Vragen of opmerkingen kunt u sturen aan %(listname)s mailinglijst
+administrator op %(owneraddr)s.
diff --git a/templates/nl/verify.txt b/templates/nl/verify.txt
new file mode 100644
index 00000000..764fa938
--- /dev/null
+++ b/templates/nl/verify.txt
@@ -0,0 +1,21 @@
+Mailing lijst aanmeldingsbevestiging voor de mailinglijst %(listname)s
+
+Wij hebben een verzoek ontvangen %(remote)s voor het aanmelden van uw
+e-mail adres, "%(email)s", bij de %(listaddr)s mailinglijst. Om te bevestigen
+dat u lid wilt worden van deze mailinglijst kunt u dit bericht replyen (beantwoorden),
+laat u het onderwerp (subject) gewoon staan. U kunt ook deze website bezoeken:
+
+%(confirmurl)s
+
+Of u stuurt de volgende regel -- en alleen deze regel -- in een berichtje
+aan %(requestaddr)s:
+
+confirm %(cookie)s
+
+Opmerking: Enkel een 'reply' op dit bericht zou in de meeste e-mail programma's
+moeten werken. Omdat deze meestal de Subject (onderwerp) regel intact laat (er wordt
+alleen "Re:" toegevoegd)
+
+Als u geen lid wilt worden van deze mailinglijst, kunt u deze e-mail negeren.
+Wanneer u denkt dat u valselijk lid bent gemaakt van deze lijst, of als u andere vragen
+heeft, stuur dan een e-mail naar: %(listadmin)s.
diff --git a/templates/no/admindbdetails.html b/templates/no/admindbdetails.html
new file mode 100644
index 00000000..a76f117d
--- /dev/null
+++ b/templates/no/admindbdetails.html
@@ -0,0 +1,62 @@
+Administrative foresp&oslash;rsler kan vises p&aring; to m&aring;ter, enten som en <a
+href="%(summaryurl)s">oversikt</a>, eller med <em>alle detaljer</em>.
+P&aring; oversiktsiden vises b&aring;de ventende p&aring;meldinger/utmeldinger og
+epost som venter p&aring; godkjenning for &aring; bli distribuert via listen.
+Detaljsiden viser i tillegg epostenes meldingshoder og et utdrag av
+innholdet i dem.
+
+<p>P&aring; begge sidene kan du angi f&oslash;lgende tiltak:
+
+<ul>
+<li><b>Avvent</b> -- Utsett avgj&oslash;relsen. Ingenting blir gjort med
+ denne foresp&oslash;rselen n&aring;, men epost som venter p&aring; godkjenning kan du
+ ta vare p&aring; eller videresende (se nedenfor).
+
+<li><b>Godkjenne</b> -- Godta meldingen slik den er og distribuere den
+ til listen. For foresp&oslash;rsler om medlemskap, iverksette utmelding eller
+ p&aring;melding.
+
+<li><b>Avsl&aring;</b> -- Slette meldingen og gi beskjed tilbake til
+ avsenderen om at meldingen ikke ble godkjent. For foresp&oslash;rsler om
+ medlemskap, avsl&aring; utmelding eller p&aring;melding. I alle tilfeller b&oslash;r
+ du ogs&aring; oppgi en grunn i den tilh&oslash;rende tekstboksen.
+
+<li><b>Kaste</b> -- Slette meldingen uten at noe beskjed sendes
+ til avsender. Nyttig for s&oslash;ppel-epost og reklame-epost (spam).
+ For foresp&oslash;rsler om medlemskap, avsl&aring; utmelding eller p&aring;melding, uten
+ at den som pr&oslash;vde &aring; melde seg ut av eller p&aring; listen f&aring;r vite noe
+ om det.
+
+</ul>
+
+<p>Kryss av for <b>Ta vare p&aring; meldingen</b> dersom du &oslash;nsker &aring; lagre en kopi for
+systemets administrator. Dette kan v&aelig;re nyttig for meldinger som er
+knyttet til misbruk av systemet og som du egentlig vil slette, men som kan
+v&aelig;re nyttig &aring; ta en titt p&aring; senere.
+
+<p>Kryss av for <b>Videresend denne meldingen</b> og oppgi en epostadresse
+hvis du vil videresende meldingen til noen andre. For &aring; redigere en epost
+som holdes tilbake f&oslash;r den sendes til listen, b&oslash;r du sende den til deg selv
+(eller evt. listens eiere), og slette den opprinnelige eposten.
+Deretter, n&aring;r eposten kommer i innboksen din, rediger den og gj&oslash;r de endringer
+du &oslash;nsker, og send den s&aring; til listen p&aring; nytt, med et <tt>Approved:</tt> felt
+i meldingshodet etterfulgt av listens passord. Husk at det er vanlig netiquette
+i et slikt tilfelle &aring; oppgi at du har redigert innholdet.
+
+<p>Hvis avsenderen er medlem av listen men er moderert, kan du fjerne
+moderasjonsflagget hvis du &oslash;nsker det. Dette er nyttig n&aring;r du har satt
+opp listen slik at nye medlemmer har en pr&oslash;vetid p&aring; listen, og du har bestemt
+at n&aring; er pr&oslash;vetiden over for dette medlemmet.
+
+<p>Hvis avsenderen ikke er medlem av listen, kan du f&aring; epostadressen lagt inn
+i et av <em>avsenderfiltrene</em>. Avsenderfiltre er forklart p&aring; <a
+href="%(filterurl)s">Filtrering p&aring; avsender</a>-siden, og kan v&aelig;re
+<b>auto-godkjenne</b>, <b>auto-holdetilbake</b>, <b>auto-avsl&aring;</b>, eller
+<b>auto-forkast</b>. Dette valget vil ikke v&aelig;re tilgjengelig dersom denne adressen
+allerede er lagt inn i et slikt filter.
+
+<p>Etter du har foretatt dine valg, klikk p&aring; <em>Utf&oslash;re</em>
+knappen p&aring; toppen eller bunnen av siden. Det vil iverksette dine
+avgj&oslash;relser.
+
+<p><a href="%(summaryurl)s">Tilbake til oversiktsiden</a>.
diff --git a/templates/no/admindbpreamble.html b/templates/no/admindbpreamble.html
new file mode 100644
index 00000000..465f52b6
--- /dev/null
+++ b/templates/no/admindbpreamble.html
@@ -0,0 +1,8 @@
+Denne siden inneholder noen av de epostene til listen <em>%(listname)s</em>
+som holdes tilbake for godkjenning. Nå viser den
+%(description)s
+
+<p>Velg ønsket avgjørelse for hver forespørsel, og trykk deretter <em>Utf&oslash;re</em>
+når du er ferdig. Nærmere instruksjoner finner du <a href="%(detailsurl)s">her</a>.
+
+<p>Du kan også <a href="%(summaryurl)s">vise en oversikt</a> over alle forepørsler som venter på en avgjørelse.
diff --git a/templates/no/admindbsummary.html b/templates/no/admindbsummary.html
new file mode 100644
index 00000000..43b54f4e
--- /dev/null
+++ b/templates/no/admindbsummary.html
@@ -0,0 +1,10 @@
+Her finner du en oversikt over foresp&oslash;rsler som skal vurderes for epostlisten
+<a href="%(adminurl)s"><em>%(listname)s</em></a>.<br>
+Eventuelle s&oslash;knader om medlemsskap til listen vil
+vises f&oslash;rst, deretter kommer meldinger som er sendt til listen
+men som trenger godkjenning for &aring; bli distribuert.
+
+<p>For hver foresp&oslash;rsel, velg &oslash;nsket tiltak, og klikk p&aring; <b>Utf&oslash;re</b> knappen n&aring;r du er ferdig.
+<a href="%(detailsurl)s">Nærmere instruksjoner</a> er ogs&aring; tilgjengelig.
+
+<p>Du kan ogs&aring; <a href="%(viewallurl)s">vise alle detaljer for alle tilbakeholdte meldinger</a> hvis du &oslash;nsker det.
diff --git a/templates/no/adminsubscribeack.txt b/templates/no/adminsubscribeack.txt
new file mode 100644
index 00000000..3348c83e
--- /dev/null
+++ b/templates/no/adminsubscribeack.txt
@@ -0,0 +1 @@
+%(member)s er nå påmeldt listen %(listname)s.
diff --git a/templates/no/adminunsubscribeack.txt b/templates/no/adminunsubscribeack.txt
new file mode 100644
index 00000000..4e848975
--- /dev/null
+++ b/templates/no/adminunsubscribeack.txt
@@ -0,0 +1,2 @@
+%(member)s er nå tatt ut av listen %(listname)s.
+
diff --git a/templates/no/admlogin.html b/templates/no/admlogin.html
new file mode 100644
index 00000000..74527221
--- /dev/null
+++ b/templates/no/admlogin.html
@@ -0,0 +1,38 @@
+<html>
+<head>
+ <title>%(listname)s %(who)s Innlogging</title>
+</head>
+<body bgcolor="#ffffff">
+<FORM METHOD=POST ACTION="%(path)s">
+%(message)s
+ <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1">%(listname)s %(who)s
+ Innlogging</FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <TD><div ALIGN="Right">Listens %(who)s passord:</div></TD>
+ <TD><INPUT TYPE="password" NAME="adminpw" SIZE="30"></TD>
+ </tr>
+ <tr>
+ <td colspan=2 align=middle><INPUT type="SUBMIT"
+ name="admlogin"
+ value="Logg meg inn...">
+ </td>
+ </tr>
+ </TABLE>
+ <p><strong><em>Viktig:</em></strong> Fra n&aring; av m&aring; du ha cookies
+ p&aring;sl&aring;tt i nettleseren din, ellers vil ingen administrative endringer
+ bli lagret.
+
+ <p><i>Session cookies</i> brukes i Mailmans administrative sider,
+ slik at du ikke skal beh&oslash;ve &aring; oppgi passord for hver endring du gj&oslash;r.
+ De vil forsvinne automatisk n&aring;r du lukker nettleseren din, eller du
+ kan fjerne de manuelt ved &aring; klikke
+ <em>Logg ut</em> linken under <em>Andre administrative aktiviteter</em>
+ (som du f&aring;r opp etter &aring; ha logget inn).
+</FORM>
+</body>
+</html>
diff --git a/templates/no/approve.txt b/templates/no/approve.txt
new file mode 100644
index 00000000..b279c6d7
--- /dev/null
+++ b/templates/no/approve.txt
@@ -0,0 +1,14 @@
+Din forespørsel til %(requestaddr)s:
+
+ %(cmd)s
+
+er videresendt til personen ansvarlig for listen.
+
+Det er nok fordi du prøver å melde deg på en 'lukket' liste.
+
+Du fil få en epost med avgjørelsen så snart forespørselen din er
+behandlet.
+
+Spørsmål om krav og grunnlag for å få bli med på listen kan rettes til:
+
+ %(adminaddr)s
diff --git a/templates/no/archidxfoot.html b/templates/no/archidxfoot.html
new file mode 100644
index 00000000..4cb308f6
--- /dev/null
+++ b/templates/no/archidxfoot.html
@@ -0,0 +1,21 @@
+ </ul>
+ <p>
+ <a name="end"><b>Dato på nyeste melding:</b></a>
+ <i>%(lastdate)s</i><br>
+ <b>Arkivert:</b> <i>%(archivedate)s</i>
+ <p>
+ <ul>
+ <li> <b>Meldinger sortert på:</b>
+ %(thread_ref)s
+ %(subject_ref)s
+ %(author_ref)s
+ %(date_ref)s
+ <li><b><a href="%(listinfo)s">Mer informasjon om denne listen...
+ </a></b></li>
+ </ul>
+ <p>
+ <hr>
+ <i>Dette arkivet ble generert av
+ Pipermail %(version)s.</i>
+ </BODY>
+</HTML>
diff --git a/templates/no/archidxhead.html b/templates/no/archidxhead.html
new file mode 100644
index 00000000..31168575
--- /dev/null
+++ b/templates/no/archidxhead.html
@@ -0,0 +1,24 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+ <HEAD>
+ <title>%(listname)s arkivet for %(archive)s sortert på %(archtype)s</title>
+ <META NAME="robots" CONTENT="noindex,follow">
+ %(encoding)s
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <a name="start"></A>
+ <h1>Arkivet for %(archive)s sortert på %(archtype)s</h1>
+ <ul>
+ <li> <b>Meldinger sortert på:</b>
+ %(thread_ref)s
+ %(subject_ref)s
+ %(author_ref)s
+ %(date_ref)s
+
+ <li><b><a href="%(listinfo)s">Mer informasjon om denne listen...
+ </a></b></li>
+ </ul>
+ <p><b>Startdato:</b> <i>%(firstdate)s</i><br>
+ <b>Sluttdato:</b> <i>%(lastdate)s</i><br>
+ <b>Meldinger:</b> %(size)s<p>
+ <ul>
diff --git a/templates/no/archliststart.html b/templates/no/archliststart.html
new file mode 100644
index 00000000..2d89a604
--- /dev/null
+++ b/templates/no/archliststart.html
@@ -0,0 +1,4 @@
+ <table border=3>
+ <tr><td>Arkiv</td>
+ <td>Sorter på:</td>
+ <td>Nedlastbar versjon</td></tr>
diff --git a/templates/no/archtoc.html b/templates/no/archtoc.html
new file mode 100644
index 00000000..7d28b614
--- /dev/null
+++ b/templates/no/archtoc.html
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+ <HEAD>
+ <title>%(listname)s arkivet</title>
+ <META NAME="robots" CONTENT="noindex,follow">
+ %(meta)s
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <h1>%(listname)s arkivet </h1>
+ <p>
+ Du kan se <a href="%(listinfo)s">mer informasjon om denne listen</a>
+ eller du kan <a href="%(fullarch)s">laste ned hele arkivet</a>
+ (%(size)s).
+ </p>
+ %(noarchive_msg)s
+ %(archive_listing_start)s
+ %(archive_listing)s
+ %(archive_listing_end)s
+ </BODY>
+ </HTML>
diff --git a/templates/no/archtocentry.html b/templates/no/archtocentry.html
new file mode 100644
index 00000000..ef4040ed
--- /dev/null
+++ b/templates/no/archtocentry.html
@@ -0,0 +1,12 @@
+
+ <tr>
+ <td>%(archivelabel)s:</td>
+ <td>
+ <A href="%(archive)s/thread.html">[ Tråd ]</a>
+ <A href="%(archive)s/subject.html">[ Tittel ]</a>
+ <A href="%(archive)s/author.html">[ Forfatter ]</a>
+ <A href="%(archive)s/date.html">[ Dato ]</a>
+ </td>
+ %(textlink)s
+ </tr>
+
diff --git a/templates/no/article.html b/templates/no/article.html
new file mode 100644
index 00000000..8f5bbf99
--- /dev/null
+++ b/templates/no/article.html
@@ -0,0 +1,49 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+ <HEAD>
+ <TITLE> %(title)s
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:%(email_url)s?Subject=%(subject_url)s&In-Reply-To=%(in_reply_to_url)s">
+ <META NAME="robots" CONTENT="index,nofollow">
+ %(encoding)s
+ %(prev)s
+ %(next)s
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>%(subject_html)s</H1>
+ <B>%(author_html)s</B>
+ <A HREF="mailto:%(email_url)s?Subject=%(subject_url)s&In-Reply-To=%(in_reply_to_url)s"
+ TITLE="%(subject_html)s">%(email_html)s
+ </A><BR>
+ <I>%(datestr_html)s</I>
+ <P><UL>
+ %(prev_wsubj)s
+ %(next_wsubj)s
+ <LI> <B>Meldinger sortert p&aring;:</B>
+ <a href="date.html#%(sequence)s">[ dato ]</a>
+ <a href="thread.html#%(sequence)s">[ tr&aring;d (thread) ]</a>
+ <a href="subject.html#%(sequence)s">[ emne ]</a>
+ <a href="author.html#%(sequence)s">[ avsender ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+%(body)s
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ %(prev_wsubj)s
+ %(next_wsubj)s
+ <LI> <B>Meldinger sortert p&aring;:</B>
+ <a href="date.html#%(sequence)s">[ dato ]</a>
+ <a href="thread.html#%(sequence)s">[ tr&aring;d (thread) ]</a>
+ <a href="subject.html#%(sequence)s">[ emne ]</a>
+ <a href="author.html#%(sequence)s">[ avsender ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="%(listurl)s">Mer informasjon om epostlisten %(listname)s</a>.<br>
+</body></html>
diff --git a/templates/no/bounce.txt b/templates/no/bounce.txt
new file mode 100644
index 00000000..ad0a7d31
--- /dev/null
+++ b/templates/no/bounce.txt
@@ -0,0 +1,13 @@
+Dette er en returmelding fra listesystemet Mailman:
+
+ Liste: %(listname)s
+ Medlem: %(addr)s
+ Hendelse: Medlemsskapet %(negative)s%(did)s.
+ På grunn av: Permanent retur eller for mye i retur
+ %(but)s
+
+%(reenable)s
+Meldingen om retur er gjengitt nedenfor.
+
+Spørsmål?
+Kontakt Mailman systemadministrator på %(owneraddr)s.
diff --git a/templates/no/checkdbs.txt b/templates/no/checkdbs.txt
new file mode 100644
index 00000000..c5575f99
--- /dev/null
+++ b/templates/no/checkdbs.txt
@@ -0,0 +1,7 @@
+Listen %(real_name)s@%(host_name)s har %(count)d forespørsel/forespørsler
+som venter på din behandling på:
+
+ %(adminDB)s
+
+Vennligst behandle disse så snart du får tid.
+Denne påminnelsen vil bli sent til deg daglig.
diff --git a/templates/no/convert.txt b/templates/no/convert.txt
new file mode 100644
index 00000000..ec218a2e
--- /dev/null
+++ b/templates/no/convert.txt
@@ -0,0 +1,33 @@
+Listen '%(listname)s' har nettopp gjennomgått en stor endring.
+Den styres nå av et nytt listesystem, som heter "Mailman". Dette nye
+systemet vil forhåpentligvis løse problemer som denne listen har hatt.
+
+Hvilken påvirkning får dette for deg?
+
+1) Epost som skal gå til alle på listen må sendes til: %(listaddr)s
+
+2) Du har fått tildelt et passord som skal forhindre andre fra å melde
+ deg ut av listen uten at du vet det. Du vil motta dette passordet i
+ en egen epost, som du kanskje allerede har fått. Fortvil ikke om du
+ glemmer passordet, det kan være du vil motta en påminnelse om
+ passordet en gang i måneden. Hvis ikke kan du be om å få det
+ tilsendt fra websiden til epostlisten.
+
+3) Har du tilgang til WWW, kan du gå inn på epostlistens webside
+ når som helst for å melde deg av, motta sammendrag av trafikk på
+ listen, og endre andre innstillinger, samt bla i tidligere meldinger
+ som er sendt til listen. Denne websiden finner du på:
+
+ %(listinfo_url)s
+
+4) Har du ikke tilgang til WWW, kan du gjøre dette via epost.
+ Send en epost til %(requestaddr)s med ordet "help" i emnefeltet
+ eller som innhold i eposten. Du vil da motta et automatisk svar med
+ hjelp og videre forklaring.
+
+Eventuelle spørsmål eller problemer med det nye system rettes til:
+%(adminaddr)s
+
+Denne meldingen ble auto-generert av Mailman %(version)s. For mer
+informasjon om programvaren Mailman, besøk Mailmans hjemmeside på
+http://www.list.org/
diff --git a/templates/no/cronpass.txt b/templates/no/cronpass.txt
new file mode 100644
index 00000000..72465b8e
--- /dev/null
+++ b/templates/no/cronpass.txt
@@ -0,0 +1,19 @@
+Dette er en påminnelse som sendes ut en gang i måneden, i forbindelse
+med ditt medlemskap på lister på %(hostname)s. Her følger litt informasjon
+om medlemskapet ditt, hvordan du kan endre det, og hvordan du kan melde
+deg av en liste.
+
+Du kan besøke websidene for å justere innstillinger for ditt medlemskap,
+bl.a. melde deg av, sette på sammendrag-modus, stoppe mail fra listen
+for en periode (f.eks. ferie), osv.
+
+I tillegg til å gjøre dette på websidene, kan du også gjøre dette via
+epost. For mer informasjon, send en epost til '-request' adressen til
+en liste (f.eks. %(exreq)s), som inneholder kun ordet 'help'. Du vil da
+like etterpå få en epost med nærmere instruksjoner.
+
+Har du spørsmål, problemer, kommentarer, etc, send dem til
+%(owner)s.
+
+Passord for %(useraddr)s:
+
diff --git a/templates/no/disabled.txt b/templates/no/disabled.txt
new file mode 100644
index 00000000..e4fad452
--- /dev/null
+++ b/templates/no/disabled.txt
@@ -0,0 +1,25 @@
+Ditt medlemskap på epostlisten %(listname)s er midlertidig skrudd av
+%(reason)s.
+Du vil ikke motta flere meldinger fra denne listen inntil
+du skrur medlemskapet ditt på igjen. Du vil motta %(noticesleft)s
+påminnelser som denne før du blir meldt ut av listen.
+
+For å skru på mottak av meldinger igjen, kan du svare på denne eposten
+(med Subject: feltet slik det er), eller gå inn på denne websiden:
+
+ %(confirmurl)s
+
+Du kan også gå inn på din personlige medlemswebside:
+
+ %(optionsurl)s
+
+På den siden kan du også tilpasse levering av epost fra listen, f.eks.
+endre epostadresse og om du vil benytte sammendrag-modus eller ikke.
+Passordet ditt er:
+
+ %(password)s
+
+Har du spørsmål eller problemer, kan du kontakte listens eier på
+følgende epostadresse:
+
+ %(owneraddr)s
diff --git a/templates/no/emptyarchive.html b/templates/no/emptyarchive.html
new file mode 100644
index 00000000..c04bd35d
--- /dev/null
+++ b/templates/no/emptyarchive.html
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+ <HEAD>
+ <title>Arkiv for epostlisten %(listname)s</title>
+ <META NAME="robots" CONTENT="noindex,follow">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <h1>Arkiv for epostlisten %(listname)s</h1>
+ <p>
+ Ingen meldinger er sendt til denne listen enda, s&aring; arkivet er for tiden tomt.
+ <a href="%(listinfo)s">Mer informasjon om listen</a> er tilgjengelig.
+ </p>
+ </BODY>
+ </HTML>
diff --git a/templates/no/headfoot.html b/templates/no/headfoot.html
new file mode 100644
index 00000000..bc477cb3
--- /dev/null
+++ b/templates/no/headfoot.html
@@ -0,0 +1,26 @@
+Teksten kan inneholde formateringskoder
+som byttes ut med verdier fra listens oppsett. For detaljer, se
+<a href="http://www.python.org/doc/current/lib/typesseq-strings.html">Pythons
+formateringsregler (engelsk)</a>. Gyldige koder er:
+
+<ul>
+ <li><b><code>real_name</code></b> - Listens formaterte navn; vanligvis
+ listenavnet med stor forbokstav eller store bokstaver enkelte steder.
+
+ <li><b><code>list_name</code></b> - Listens navn som brukt i URLer,
+ der det har betydning om den staves med store eller sm&aring; bokstaver.
+ (For bakoverkompatibilitet, er <code>_internal_name</code> det samme.)
+
+ <li><b><code>host_name</code></b> - Internettadressen (fully qulified
+ domain name) til maskinen som listeserveren g&aring;r p&aring;.
+
+ <li><b><code>web_page_url</code></b> - Basis URL for Mailman. Denne kan
+ legges til sammen med, f.eks. <em><code>listinfo/%(internal_name)s</code></em>
+ for &aring; danne URLen til en listes infoside.
+
+ <li><b><code>description</code></b> - En kort beskrivelse av listen.
+
+ <li><b><code>info</code></b> - Full beskrivelse av listen.
+
+ <li><b><code>cgiext</code></b> - Tillegg som legges til CGI scripts.
+</ul>
diff --git a/templates/no/help.txt b/templates/no/help.txt
new file mode 100644
index 00000000..d5141c24
--- /dev/null
+++ b/templates/no/help.txt
@@ -0,0 +1,33 @@
+Hjelp for epostlisten %(listname)s:
+
+Her er kommando hjelp for versjon %(version)s av epostlistesystemet
+"Mailman". Kommandoene som beskrives nedenfor vil kunne hjelpe deg til
+å melde deg på og av epostlister, og å gjøre andre endringer.
+
+En kommando skrives i emnefeltet eller i innholdet i en epost, og
+sendes til %(requestaddr)s
+
+Husk at mesteparten av det disse kommandoen gjør, kan også gjøres via
+listens webside:
+
+ %(listinfo_url)s
+
+For eksempel kan du fra websiden be om å få tilsendt passordet ditt.
+
+Kommandoer som er spesifikk for en liste (f.eks. subscribe, who,
+osv.), må sendes til listens *-request adresse, f.eks. for en liste
+som heter 'mailman', bruk adressen 'mailman-request@...'.
+
+Forklaring til beskrivelsen:
+Ord med <> rundt forteller at en parameter kreves,
+ord med [] rundt forteller at en parameter er valgfri.
+IKKE ta med selve tegnene <> og [] når du sender kommandoer.
+
+Følgende kommandoer er gyldige:
+
+ %(commands)s
+
+Spørsmål og andre henvendelser du eventuelt måtte ha om systemet,
+kan du sende til:
+
+ %(adminaddr)s
diff --git a/templates/no/invite.txt b/templates/no/invite.txt
new file mode 100644
index 00000000..8c260b71
--- /dev/null
+++ b/templates/no/invite.txt
@@ -0,0 +1,19 @@
+Eieren av epostlisten %(listname)s inviterer din epostadresse "%(email)s"
+til å bli med på epostlisten %(listname)s på %(hostname)s.
+Du kan takke ja til invitasjonen enkelt å greit ved å bare svare på denne
+eposten, så lenge Subject: feltet beholdes.
+
+Du kan også takke ja ved å gå inn på følgende webside:
+
+ %(confirmurl)s
+
+Eller du kan sende følgende linje -- og bare denne ene linjen -- i en epost
+til %(requestaddr)s:
+
+ confirm %(cookie)s
+
+Merk at bare å svare på denne eposten med epostprogrammet ditt bør fungere
+helt greit.
+
+Hvis du vil takke nei til invitasjonen, kan du bare slette denne eposten.
+Har du noen spørsmål, vennligst send dem til %(listowner)s.
diff --git a/templates/no/listinfo.html b/templates/no/listinfo.html
new file mode 100644
index 00000000..d5b659b2
--- /dev/null
+++ b/templates/no/listinfo.html
@@ -0,0 +1,137 @@
+<!-- $Revision: 5894 $ -->
+<HTML>
+ <HEAD>
+ <TITLE><MM-List-Name> Infoside</TITLE>
+
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+
+ <P>
+ <TABLE COLS="1" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1"><MM-List-Name> --
+ <MM-List-Description></FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <p>&nbsp;
+ </td>
+ </tr>
+ <tr>
+ <TD COLSPAN="1" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000">Om <MM-List-Name></FONT></B>
+ </TD>
+ <TD COLSPAN="1" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <MM-lang-form-start><MM-displang-box> <MM-list-langs>
+ <MM-form-end>
+ <MM-Subscribe-Form-Start>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <P><MM-List-Info></P>
+ <p> For &aring; se arkivet over eposter sendt til denne listen, g&aring; inn p&aring;
+ <MM-Archive><MM-List-Name>
+ Arkivet</MM-Archive>.
+ <MM-Restricted-List-Message>
+ </p>
+ </TD>
+ </TR>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000">Hvordan bruke epostlisten <MM-List-Name></FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ For &aring; sende en epost til alle p&aring; listen, send den til
+ <A HREF="mailto:<MM-Posting-Addr>"><MM-Posting-Addr></A>.
+
+ <p>Du kan melde deg p&aring; listen, eller endre innstillingene for
+ ditt medlemsskap p&aring; listen nedenfor:
+ </td>
+ </tr>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000">Melde deg p&aring; <MM-List-Name></FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <P>
+ Du kan melde deg p&aring; <MM-List-Name> ved &aring; fylle ut n&oslash;dvendig informasjon nedenfor.
+ <MM-List-Subscription-Msg>
+ <ul>
+ <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"
+ WIDTH="70%" HEIGHT= "112">
+ <TR>
+ <TD BGCOLOR="#dddddd" WIDTH="55%">Din epostadresse:</TD>
+ <TD WIDTH="33%"><MM-Subscribe-Box>
+ </TD>
+ <TD WIDTH="12%">&nbsp;</TD></TR>
+ <tr>
+ <td bgcolor="#dddddd" width="55%">Navn (valgfritt):</td>
+ <td width="33%"><mm-fullname-box></td>
+ <TD WIDTH="12%">&nbsp;</TD></TR>
+ <TR>
+ <TD COLSPAN="3"><FONT SIZE=-1>Du kan skrive et passord i f&oslash;lgende felter.
+ Dette gir en svak sikkerhet, men forhindrer at andre f&aring;r tilgang til dine innstillinger.
+ <b>Ikke bruk et verdifullt passord</b>, for passordet kan bli sendt til deg i klartekst via epost.
+
+ <p>Dersom du ikke skriver noe passord, vil du automatisk f&aring; tildelt et passord.
+ Det vil bli sendt til deg s&aring; snart du har bekreftet din p&aring;melding.
+ Du kan senere be om &aring; f&aring; passordet tilsendt, eller endre det.
+ <MM-Reminder>
+ </TD>
+ </TR>
+ <TR>
+ <TD BGCOLOR="#dddddd">&Oslash;nsket passord:</TD>
+ <TD><MM-New-Password-Box></TD>
+ <TD>&nbsp;</TD></TR>
+ <TR>
+ <TD BGCOLOR="#dddddd">&Oslash;nsket passord en gang til:</TD>
+ <TD><MM-Confirm-Password></TD>
+ <TD>&nbsp; </TD></TR>
+ <tr>
+ <TD BGCOLOR="#dddddd">Velg spr&aring;k for meldinger:</TD>
+ <TD> <MM-list-langs></TD>
+ <TD>&nbsp; </TD></TR>
+ <mm-digest-question-start>
+ <tr>
+ <td BGCOLOR="#dddddd">Vil du benytte sammendrag-modus?</td>
+ <td><MM-Undigest-Radio-Button> Nei
+ <MM-Digest-Radio-Button> Ja
+ </TD>
+ </tr>
+ <mm-digest-question-end>
+ <tr>
+ <td colspan="3">
+ <center><MM-Subscribe-Button></P></center>
+ </TABLE>
+ <MM-Form-End>
+ </ul>
+ </td>
+ </tr>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <a name="subscribers">
+ <B><FONT COLOR="#000000">Medlemmer av <MM-List-Name></FONT></B></a>
+ </TD>
+ </TR>
+ <tr>
+ <TD COLSPAN="2" WIDTH="100%">
+ <MM-Roster-Form-Start>
+ <MM-Roster-Option>
+ <MM-Form-End>
+ <p>
+ <MM-Options-Form-Start>
+ <MM-Editing-Options>
+ <MM-Form-End>
+ </td>
+ </tr>
+ </table>
+<MM-Mailman-Footer>
+</BODY>
+</HTML>
diff --git a/templates/no/masthead.txt b/templates/no/masthead.txt
new file mode 100644
index 00000000..83204fda
--- /dev/null
+++ b/templates/no/masthead.txt
@@ -0,0 +1,15 @@
+Send meldinger som skal distribueres til %(real_name)s til:
+ %(got_list_email)s
+
+For å melde deg av eller på listen via World Wide Web, gå inn på:
+ %(got_listinfo_url)s
+eller send en epost til
+ %(got_request_email)s
+med ordet 'help' i emnefeltet eller som innhold.
+
+Du kan nå ansvarlig(e) person(er) for listen på
+ %(got_owner_email)s
+
+Når du svarer på epost til listen, vennligst endre emnefeltet slik
+at det er litt mer beskrivende enn bare
+"Re: Innhold av %(real_name)s sammendrag..."
diff --git a/templates/no/newlist.txt b/templates/no/newlist.txt
new file mode 100644
index 00000000..4ec59bbc
--- /dev/null
+++ b/templates/no/newlist.txt
@@ -0,0 +1,38 @@
+Epostlisten `%(listname)s' er nå opprettet. Her følger litt
+grunnleggende informasjon om listen.
+
+Administrasjonspassordet er:
+
+ %(password)s
+
+Dette passordet er nødvendig for å konfigurere epostlisten. Du må også
+ha det for å behandle forespørsler til listen, f.eks. godkjenne epost
+hvis du velger å begrense listen til å være en moderert liste.
+
+
+Du kan konfigurere listen på følgende webside:
+
+ %(admin_url)s
+
+Websiden for medlemmer på listen er:
+
+ %(listinfo_url)s
+
+Du kan til og med gjøre din personlige tilpasning på disse sidene fra
+listens konfigurasjonsside, men da må du kunne skrive HTML-kode.
+
+Det finnes også et epostbasert grensesnitt for medlemmer (ikke
+administratorer) av listen. Du kan få mer informasjon om det ved å
+sende en epost til:
+
+ %(requestaddr)s
+
+med kun ordet 'help' som innhold eller i emnefeltet.
+
+For å fjerne noen fra listen, gå inn på listens webside, og klikk på
+eller skriv inn medlemmets epostadresse. Der medlemmet skulle ha
+skrevet inn passordet sitt, skriver du ditt administrasjonspassord.
+Du kan også f.eks. stoppe distribusjon til dette medlemmet, endre til
+sammendrag-modus, osv. på denne måten.
+
+Du kan nå systemadminstrator på %(siteowner)s.
diff --git a/templates/no/nomoretoday.txt b/templates/no/nomoretoday.txt
new file mode 100644
index 00000000..7c6946b8
--- /dev/null
+++ b/templates/no/nomoretoday.txt
@@ -0,0 +1,7 @@
+Vi har mottatt en forespørsel fra din adresse '%(sender)s', som krever et
+automatisk svar fra epostlisten %(listname)s. Vi har allerede fått %(num)s
+forespørsler fra deg idag. For å unngå problemer som f.eks. epost i uendelig
+løkke, vil vi ikke sende deg flere svar idag. Vennligst prøv igjen i morgen.
+
+Hvis du mener at dette kan ikke stemme, eller du har noen spørsmål,
+vennligst kontakt eieren av epostlisten på %(owneremail)s.
diff --git a/templates/no/options.html b/templates/no/options.html
new file mode 100644
index 00000000..90c51562
--- /dev/null
+++ b/templates/no/options.html
@@ -0,0 +1,300 @@
+<!-- $Revision: 6049 $ -->
+<html>
+<head>
+ <link rel="SHORTCUT ICON" href="<mm-favicon>">
+ <title>Personlig medlemside for <MM-Presentable-User> p&aring; listen <MM-List-Name>
+ </title>
+</head>
+<BODY BGCOLOR="#ffffff">
+ <TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#99CCFF"><B>
+ <FONT COLOR="#000000" SIZE=+1>
+ Personlig medlemside for <MM-Presentable-User> p&aring; listen <MM-List-Name>
+ </FONT></B></TD></TR>
+ </TABLE>
+<p>
+<table width="100%" border="0" cellspacing="5" cellpadding="5">
+ <tr><td>
+ <b>Medlemsstatus, passord, og innstillinger for <MM-Presentable-User></b>
+ p&aring; epostlisten <MM-List-Name>.
+ </td><td><MM-Form-Start><mm-logout-button><MM-Form-End></td>
+ </tr><tr>
+ <td colspan="2">
+ <MM-Case-Preserved-User>
+
+ <MM-Disabled-Notice>
+
+ <p><mm-results>
+ </td>
+ </tr>
+</table>
+
+<MM-Form-Start>
+<p>
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#FFF0D0" colspan="2">
+ <FONT COLOR="#000000">
+ <B>Bytte epostadresse p&aring; <MM-List-Name></B>
+ </FONT></TD></TR>
+ <tr><td colspan="2">Du kan bytte ut den epostadressen du har meldt inn p&aring;
+ listen ved &aring; skrive inn en annen epostadresse i feltene nedenfor.
+ Merk at en epost med n&aelig;rmere instruksjoner vil da bli sendt til den nye
+ adressen. Endringene trer ikke i kraft f&oslash;r du har bekreftet dem.
+ Du har <mm-pending-days> p&aring; deg til &aring; bekrefte endringen.
+
+ <p>Du kan ogs&aring; oppgi eller endre navnet ditt p&aring; listen (f.eks <em>Ola Normann</em>).
+
+ <p>Hvis du vil endre epostadressen din for alle
+ epostlistene du er p&aring;meldt p&aring; <mm-host>, kryss av for
+ <em>Endre alle lister</em>.
+
+ </td></tr>
+ <tr><td><center>
+ <table border="0" cellspacing="2" cellpadding="2" width="80%" cols="2">
+ <tr><td bgcolor="#dddddd"><div align="right">Ny epostadresse:</div></td>
+ <td><mm-new-address-box></td>
+ </tr>
+ <tr><td bgcolor="#dddddd"><div align="right">Epostadresse en gang til:
+ </div></td>
+ <td><mm-confirm-address-box></td>
+ </tr>
+ </tr></table></center>
+ </td>
+ <td><center>
+ <table border="0" cellspacing="2" cellpadding="2" width="80%" cols="2">
+ <tr><td bgcolor="#dddddd"><div align="right">Ditt navn
+ (valgfritt):</div></td>
+ <td><mm-fullname-box></td>
+ </tr>
+ </table></center>
+ </td>
+ </tr>
+ <tr><td colspan="2"><center><mm-change-address-button>
+ <p><mm-global-change-of-address>Endre min epostadresse p&aring; alle lister jeg er medlem av</center></td>
+ </tr>
+</table>
+
+<p>
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="5" CELLPADDING="5">
+ <TR><TD WIDTH="50%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>Melde deg av <MM-List-Name></B></td>
+
+ <TD WIDTH="50%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>Andre lister du er medlem av p&aring; <MM-Host></B>
+ </FONT></TD></TR>
+
+ <tr><td>
+ Kryss av i avkrysningsboksen og klikk f&oslash;lgende knapp for &aring; melde deg
+ av denne epostlisten.
+ <strong>MERK:</strong> Du vil umiddelbart bli meldt ut av listen!
+ <p>
+ <center><MM-Unsubscribe-Button></center></td>
+ <td>
+ Du kan velge &aring; se alle lister du er p&aring;meldt, slik at du kan gj&oslash;re samme
+ endringer p&aring; flere lister p&aring; en gang.
+
+ <p>
+ <center><MM-Other-Subscriptions-Submit></center>
+ </TD></TR>
+</table>
+
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD COLSPAN=2 WIDTH="100%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>Ditt passord for <MM-List-Name></B>
+ </FONT></TD></TR>
+
+ <tr valign="TOP"><td WIDTH="50%">
+ <a name=reminder>
+ <center>
+ <h3>Har du glemt passordet ditt?</h3>
+ </center>
+ Trykk p&aring; denne knappen for &aring; f&aring; passordet ditt tilsendt p&aring; epost.
+ <p><MM-Umbrella-Notice>
+ <center>
+ <MM-Email-My-Pw>
+ </center>
+ </td>
+
+ <td WIDTH="50%">
+ <a name=changepw>
+ <center>
+ <h3>Bytte passord</h3>
+ <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2" WIDTH="70%" COLS=2>
+ <TR><TD BGCOLOR="#dddddd"><div align="right">Nytt
+ passord:</div></TD>
+ <TD><MM-New-Pass-Box></TD>
+ </TR>
+ <TR>
+ <TD BGCOLOR="#dddddd"><div align="right">Nytt passord en gang
+ til:</div></TD>
+ <TD><MM-Confirm-Pass-Box></TD>
+ </TR>
+ </table>
+
+ <MM-Change-Pass-Button>
+ <p><center><mm-global-pw-changes-button>Endre passordet for alle
+ lister jeg er medlem av p&aring; <mm-host>.
+ </center>
+</TABLE>
+
+<p>
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>Dine innstillinger for <MM-List-Name></B>
+ </FONT></TD></TR>
+</table>
+
+<p>
+<i><strong>Gjeldende innstillinger er valgt.</strong></i>
+
+<p>Merk at noen av innstillingene har et <em>Bruk p&aring; alle</em> valg.
+Krysser du av for det, vil alle lister du er medlem av p&aring; <mm-host> ogs&aring;
+f&aring; innstillingen satt slik som du setter den her. Klikk p&aring; <em>Vise andre
+lister jeg er medlem av</em> ovenfor for &aring; se hvilke andre epostlister du
+er medlem av.
+<p>
+<TABLE BORDER="0" CELLSPACING="3" CELLPADDING="4" WIDTH="100%">
+ <tr><TD BGCOLOR="#cccccc">
+ <a name="disable">
+ <strong>Motta meldinger</strong></a><p>
+ Sett denne til <em>Ja</em> for &aring; motta epost som sendes til denne listen.
+ Sett den til <em>Nei</em> hvis du i en periode ikke &oslash;nsker &aring; motta epost som sendes til listen,
+ men likevel ønsker å være medlem av listen. (kan være nyttig f.eks. hvis du skal p&aring; ferie)
+ Setter du den til <em>Nei</em>, må du huske å sette den tilbake igjen,
+ for den vil ikke bli satt tilbake til <em>Ja</em> automatisk.
+ </td><td bgcolor="#cccccc">
+ <mm-delivery-enable-button>Ja<br>
+ <mm-delivery-disable-button>Nei<p>
+ <mm-global-deliver-button><i>Bruk p&aring; alle</i>
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Sammendrag-modus</strong><p>
+ Setter du p&aring; sammendrag-modus, vil du med jevne mellomrom (vanligvis en gang om dagen,
+ muligens flere ganger, det kommer an p&aring; hvor mye som sendes til listen) f&aring; en
+ samle-epost som inneholder alle meldinger som blir sendt til listen, istedenfor &aring; f&aring; hver
+ enkelt melding. Hvis du bytter fra sammendrag-modus til normal-
+ modus, vil du muligens allikevel f&aring; en siste epost med sammendrag
+ selv om du allerede da vil begynne &aring; motta alle meldinger som
+ kommer til listen.
+ </td><td bgcolor="#cccccc">
+ <MM-Undigest-Radio-Button>Av<br>
+ <MM-Digest-Radio-Button>P&aring;
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Motta sammendrag som ren tekst eller i MIME-format?</strong><p>
+ Det kan v&aelig;re epostleseren din ikke st&oslash;tter sammendrag i MIME-format.
+ &Aring; motta sammendrag i MIME-format anbefales, men f&aring;r du problemer med
+ &aring; lese epost i det formatet, kan du velge ren tekst her.
+ </td><td bgcolor="#cccccc">
+ <MM-Mime-Digests-Button>MIME<br>
+ <MM-Plain-Digests-Button>Ren tekst<p>
+ <mm-global-mime-button><i>Bruk p&aring; alle</i>
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Motta dine egne meldinger til listen?</strong><p>
+
+ Vanligvis vil du motta epost som du selv sender til listen.
+ Hvis du ikke vil motta disse, b&oslash;r du velge <em>Nei</em> her.
+ </td><td bgcolor="#cccccc">
+ <mm-dont-receive-own-mail-button>Nei<br>
+ <mm-receive-own-mail-button>Ja
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Motta bekreftelse n&aring;r du sender epost til listen?</strong><p>
+
+ Velg <em>Ja</em> her hvis du &oslash;nsker &aring; f&aring; en bekreftelse hver gang du sender en epost til listen.
+ </td><td bgcolor="#cccccc">
+ <mm-dont-ack-posts-button>Nei<br>
+ <mm-ack-posts-button>Ja
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>F&aring; passordet ditt tilsendt jevnlig?</strong><p>
+ En gang i m&aring;neneden kan det v&aelig;re du f&aring;r en epost som inneholder
+ passordene for alle listene du er medlem av p&aring; dette systemet.
+ Du kan skru av dette for denne enkelte listen her.
+ </td><td bgcolor="#cccccc">
+ <mm-dont-get-password-reminder-button>Nei<br>
+ <mm-get-password-reminder-button>Ja<p>
+ <mm-global-remind-button><i>Bruk p&aring; alle</i>
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Vil du vises p&aring; listen over medlemmer av listen?</strong><p>
+ N&aring;r noen g&aring;r inn p&aring; websiden for &aring; se alle medlemmer av listen, vil
+ vanligvis din epostadresse vises. (Men stavet p&aring; en m&aring;te slik at
+ roboter som plukker opp epostadresser fra websider (og kanskje
+ deretter sender s&oslash;ppel og reklame til den), ikke vil forst&aring; at det
+ er en epostadresse.) Velg 'Nei' her hvis du ikke vil at epostadressen
+ din skal vises p&aring; listen.
+ </td><td bgcolor="#cccccc">
+ <MM-Hide-Subscription-Button>Nei<br>
+ <MM-Public-Subscription-Button>Ja
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Hvilket spr&aring;k foretrekker du?</strong><p>
+ </td><td bgcolor="#cccccc">
+ <MM-list-langs>
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>Hvilke emner vil du motta?</strong>
+ <p>Ved &aring; velge ett eller flere emner, kan du filtrere meldingene som sendes til
+ epostlisten, slik at du kun vil motta det som kan interessere deg.
+
+ <p>Hvis en melding ikke g&aring;r under noen emner, kommer det an p&aring; innstillingen nedenfor
+ om du vil motta meldingen eller ikke. Hvis du ikke velger noen emner her, vil
+ du motta alle meldinger som sendes til listen.
+ </td><td bgcolor="#cccccc">
+ <mm-topics>
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>Vil du motta meldinger som ikke g&aring;r under noe emne?</strong>
+ <p>Dette valget gjelder bare hvis du har valgt et eller flere emner ovenfor.
+ Det avgj&oslash;r om du skal motta meldinger som ikke g&aring;r under noen emner.
+ Velger du <em>Nei</em> vil du ikke motta dem, velger du <em>Ja</em> vil
+ du motta dem.
+
+ <p>Hvis du ikke har valgt noen emner i innstillingen ovenfor, vil du motta alle
+ meldinger som sendes til listen.
+
+ </td><td bgcolor="#cccccc">
+ <mm-suppress-nonmatching-topics>Nei<br>
+ <mm-receive-nonmatching-topics>Ja
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>Unng&aring; &aring; f&aring; epost fra listen som ogs&aring; er adressert direkte til deg?</strong><p>
+
+ Du kan velge hva som skal skje dersom det kommer en epost til listen som i tillegg er
+ adressert direkte til deg (dvs. din epostadresse st&aring;r i <tt>To:</tt> eller <tt>Cc:</tt>
+ feltet). Velg <em>Ja</em> for da &aring; unng&aring; &aring; motta epost fra listen; velg <em>Nei</em>
+ for likevel &aring; motta epost fra listen.
+
+ <p>For spesielt interesserte: Dersom listen er satt opp til &aring; personifisere
+ meldinger sendt til listen, og du velger &aring; motta epost fra listen, vil hver
+ kopi ha et <tt>X-Mailman-Copy: yes</tt> felt i meldingshodet.
+
+ </td><td bgcolor="#cccccc">
+ <mm-receive-duplicates-button>Nei<br>
+ <mm-dont-receive-duplicates-button>Ja<p>
+ <mm-global-nodupes-button><i>Sett globalt</i>
+ </td></tr>
+ <tr><TD colspan="2">
+ <center><MM-options-Submit-button></center>
+ </td></tr>
+
+</table>
+</center>
+<p>
+<MM-Form-End>
+
+<MM-Mailman-Footer>
+</body>
+</html>
diff --git a/templates/no/postack.txt b/templates/no/postack.txt
new file mode 100644
index 00000000..cb43d38b
--- /dev/null
+++ b/templates/no/postack.txt
@@ -0,0 +1,8 @@
+Din epost med emne:
+
+ %(subject)s
+
+ble uten problemer distribuert til alle på listen %(listname)s.
+
+Listens informasjonsside: %(listinfo_url)s
+Din personlige medlemsside: %(optionsurl)s
diff --git a/templates/no/postauth.txt b/templates/no/postauth.txt
new file mode 100644
index 00000000..b6b62b8b
--- /dev/null
+++ b/templates/no/postauth.txt
@@ -0,0 +1,13 @@
+Siden du er en listeadministrator, får du følgende forespørsel om
+å godkjenne eller avslå følgende epost til listen:
+
+ Liste: %(listname)s@%(hostname)s
+ Fra: %(sender)s
+ Emne: %(subject)s
+ Grunn: %(reason)s
+
+For å godkjenne eller avslå forespørselen, gå til
+
+ %(admindb_url)s
+
+når du får tid.
diff --git a/templates/no/postheld.txt b/templates/no/postheld.txt
new file mode 100644
index 00000000..f910d9d8
--- /dev/null
+++ b/templates/no/postheld.txt
@@ -0,0 +1,16 @@
+Du sendte en epost til '%(listname)s' med emnet
+
+ %(subject)s
+
+Den holdes foreløpig igjen inntil moderatoren kan lese den for å
+godkjenne eller avslå den.
+
+Grunnen til at den holdes tilbake er:
+
+ %(reason)s
+
+Enten vil eposten din sendes ut på listen, eller du får den i retur
+med begrunnelse for hvorfor den ikke ble sendt ut. Ønsker du å trekke
+den tilbake, gå inn på følgende URL:
+
+ %(confirmurl)s
diff --git a/templates/no/private.html b/templates/no/private.html
new file mode 100644
index 00000000..2b436fef
--- /dev/null
+++ b/templates/no/private.html
@@ -0,0 +1,41 @@
+<html>
+<head>
+ <title>%(realname)s Innlogging til Private Arkiver</title>
+</head>
+<body bgcolor="#ffffff">
+<FORM METHOD=POST ACTION="%(action)s/">
+%(message)s
+ <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1">%(realname)s Innlogging til Private Arkiver</FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <TD><div ALIGN="Right">Epost adresse:</div></TD>
+ <TD><INPUT TYPE="text" NAME="username" SIZE="30"></TD>
+ </tr>
+ <tr>
+ <TD><div ALIGN="Right">Passord:</div></TD>
+ <TD><INPUT TYPE="password" NAME="password" SIZE="30"></TD>
+ </tr>
+ <tr>
+ <td colspan=2 align="middle"><INPUT type="SUBMIT"
+ name="submit"
+ value="Slipp meg inn...">
+ </td>
+ </tr>
+ </TABLE>
+ <p><strong><em>Viktig:</em></strong> Fra n&aring; av m&aring; du ha cookies
+ p&aring;sl&aring;tt i nettleseren din, ellers vil ingen administrative endringer
+ bli lagret.
+
+ <p><i>Session cookies</i> brukes i Mailmans administrative sider,
+ slik at du ikke skal beh&oslash;ve &aring; oppgi passord for hver endring du gj&oslash;r.
+ De vil forsvinne automatisk n&aring;r du lukker nettleseren din, eller du
+ kan fjerne de manuelt ved &aring; klikke
+ <em>Logout</em> linken under <em>Other Administrative
+ Activities</em> (som du f&aring;r opp etter &aring; ha logget inn).
+</FORM>
+</body>
+</html>
diff --git a/templates/no/refuse.txt b/templates/no/refuse.txt
new file mode 100644
index 00000000..90267c94
--- /dev/null
+++ b/templates/no/refuse.txt
@@ -0,0 +1,13 @@
+Din forespørsel til listen %(listname)s:
+
+ %(request)s
+
+ble avslått av listemoderatoren. Moderatoren har følgende begrunnelse
+for denne avgjørelsen:
+
+"%(reason)s"
+
+Spørsmål, kommentarer, eller klage på denne avgjørelsen skal sendes
+til listeadministratoren på følgende epostadresse:
+
+ %(adminaddr)s
diff --git a/templates/no/roster.html b/templates/no/roster.html
new file mode 100644
index 00000000..86e5c51e
--- /dev/null
+++ b/templates/no/roster.html
@@ -0,0 +1,52 @@
+<!-- $Revision: 3817 $ -->
+<HTML>
+ <HEAD>
+ <TITLE><MM-List-Name> Medlemmer</TITLE>
+
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+
+ <P>
+ <TABLE WIDTH="100%" COLS="1" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1"><MM-List-Name>
+ Medlemmer</FONT></B>
+ </TD>
+ </TR>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" ALIGN="CENTER">
+
+ <P align = "right"> <MM-lang-form-start><MM-displang-box>
+ <MM-list-langs><MM-form-end></p>
+
+ <P>Klikk p&aring; adressen din for &aring; g&aring; til din personlige side.
+<br><I>(Adresser i parentes har stoppet mottak av meldinger til listen.)</I></P>
+ </TD>
+ </TR>
+ <TR WIDTH="100%" VALIGN="top">
+ <TD BGCOLOR="#FFF0D0" WIDTH="50%">
+ <center>
+ <B><FONT COLOR="#000000"><MM-Num-Reg-Users>
+ Medlemmer i normal-modus p&aring; <MM-List-Name>:</FONT></B>
+ </center>
+ </TD>
+ <TD BGCOLOR="#FFF0D0" WIDTH="50%">
+ <center>
+ <B><FONT COLOR="#000000"><MM-Num-Digesters> Medlemmer i sammendrag-modus p&aring;
+ <MM-List-Name>:</FONT></B>
+ </center>
+ </TD>
+ </TR>
+ <TR VALIGN="top">
+ <td>
+ <P><MM-Regular-Users>
+ </td>
+ <td>
+ <P><MM-Digest-Users>
+ </td>
+ </tr>
+ </table>
+<MM-Mailman-Footer>
+</BODY>
+</HTML>
diff --git a/templates/no/subauth.txt b/templates/no/subauth.txt
new file mode 100644
index 00000000..10b3fc37
--- /dev/null
+++ b/templates/no/subauth.txt
@@ -0,0 +1,10 @@
+Følgende søknad om å få bli med på en liste må vurderes av deg:
+
+ For: %(username)s
+ Liste: %(listname)s@%(hostname)s
+
+Når du får tid, gå inn på:
+
+ %(admindb_url)s
+
+for å godkjenne eller avslå søknaden.
diff --git a/templates/no/subscribe.html b/templates/no/subscribe.html
new file mode 100644
index 00000000..855c091e
--- /dev/null
+++ b/templates/no/subscribe.html
@@ -0,0 +1,9 @@
+<!-- $Revision: 3977 $ -->
+<html>
+<head><title><MM-List-Name>: Resultat av p&aring;melding</title></head>
+<body bgcolor="white">
+<h1><MM-List-Name>: Resultat av p&aring;melding</h1>
+<MM-Results>
+<MM-Mailman-Footer>
+</body>
+</html>
diff --git a/templates/no/subscribeack.txt b/templates/no/subscribeack.txt
new file mode 100644
index 00000000..d3e669dc
--- /dev/null
+++ b/templates/no/subscribeack.txt
@@ -0,0 +1,37 @@
+Velkommen til epostlisten %(real_name)s@%(host_name)s !
+%(welcome)s
+For å sende en epost til listen, send den til:
+
+ %(emailaddr)s
+
+Generell informasjon om listen finner du på:
+
+ %(listinfo_url)s
+
+Hvis du ønsker å melde deg av listen eller endre på dine innstillinger
+for listen (f.eks. endre passord, få tilsendt sammendrag med jevne
+mellomrom isteden, etc.), gå inn på din personlige medlemsside:
+
+ %(optionsurl)s
+%(umbrella)s
+Du kan også endre slike innstillinger ved å sende en epost til:
+
+ %(real_name)s-request@%(host_name)s
+
+med ordet "help" i emnefeltet eller i innholdet. Du vil da motta en epost
+med nærmere instruksjoner.
+
+Du må benytte et passord for å endre på dine innstillinger for listen, (også
+for å endre passordet) eller for å melde deg av listen.
+Passordet ditt er:
+
+ %(password)s
+
+Normalt vil Mailman en gang i måneden sende deg en epost med påminnelse om
+passordene du har for epostlistene du er medlem av på %(host_name)s,
+men det kan du skru av dersom du ønsker det.
+Påminnelsen vil også inneholde informasjon om hvordan du kan melde deg av
+listen, eller endre dine personlige innstillinger for listen.
+
+På din personlige medlemsside finnes det også en knapp som du kan trykke
+hvis du ønsker å få passordet ditt tilsendt i en epost.
diff --git a/templates/no/unsub.txt b/templates/no/unsub.txt
new file mode 100644
index 00000000..8003dacc
--- /dev/null
+++ b/templates/no/unsub.txt
@@ -0,0 +1,21 @@
+Bekreftelse på utmelding fra listen %(listname)s
+
+Vi har mottatt en forespørsel%(remote)s om å fjerne din epostadresse
+"%(email)s" fra listen %(listaddr)s. Dersom det er riktig at du ønsker
+dette, send et svar på denne eposten, med samme emne som denne eposten
+har. Eller gå inn på denne websiden:
+
+ %(confirmurl)s
+
+Du kan også sende en epost til %(requestaddr)s, med følgende (og KUN
+følgende) innhold:
+
+ confirm %(cookie)s
+
+Merk at bare å sende et svar på denne eposten burde fungere fra de
+fleste epostlesere, siden det vanligvis fører til at emnefeltet beholdes
+(tillegg av 'Re:' eller 'SV:' foran emnet gjør ingenting).
+
+Hvis du ikke ønsker å melde deg av listen, kan du bare slette denne eposten.
+Tror du noen andre prøvde å melde deg av, eller har du andre spørsmål,
+send en epost til %(listadmin)s.
diff --git a/templates/no/unsubauth.txt b/templates/no/unsubauth.txt
new file mode 100644
index 00000000..a3e3ce8a
--- /dev/null
+++ b/templates/no/unsubauth.txt
@@ -0,0 +1,10 @@
+Følgende søknad om å bli meldt ut av en liste må vurderes av deg:
+
+ Fra: %(username)s
+ Liste: %(listname)s@%(hostname)s
+
+Når du får tid, gå inn på:
+
+ %(admindb_url)s
+
+for å godkjenne eller avslå søknaden.
diff --git a/templates/no/userpass.txt b/templates/no/userpass.txt
new file mode 100644
index 00000000..278ed7a7
--- /dev/null
+++ b/templates/no/userpass.txt
@@ -0,0 +1,26 @@
+Du, eller noen som utga seg for å være deg, har bedt om å få
+tilsendt passordet for epostlisten %(fqdn_lname)s. Du trenger
+dette passordet for å endre på dine innstillinger for listen
+(f.eks. endre passord, få tilsendt sammendrag med jevne mellomrom
+isteden, etc.). Passordet gjør det også lettere for deg å melde
+deg av listen hvis det skulle bli aktuelt.
+
+Du er medlem med epostadressen: %(user)s
+
+Passordet ditt på epostlisten %(listname)s er: %(password)s
+
+For å endre dine innstillinger for denne listen, logg inn på din
+personlige webside for listen:
+
+ %(options_url)s
+
+Du har også mulighet til å gjøre disse endringer via epost ved å sende
+en epost til:
+
+ %(requestaddr)s
+
+med ordet "help" som innhold eller i emnefeltet. Du vil da motta et
+automatisk svar fra systemet med nærmere instruksjoner.
+
+Har du spørsmål eller kommentarer? Kontakt listeadministratoren for
+%(listname)s på %(owneraddr)s.
diff --git a/templates/no/verify.txt b/templates/no/verify.txt
new file mode 100644
index 00000000..bc4cb0be
--- /dev/null
+++ b/templates/no/verify.txt
@@ -0,0 +1,21 @@
+Bekreftelse på påmelding til listen %(listname)s
+
+Vi har mottatt en forespørsel%(remote)s om å melde din epostadresse
+"%(email)s" på listen %(listaddr)s. Dersom det er riktig at du ønsker
+dette, send et svar på denne eposten, med samme emne som denne eposten
+har. Eller gå inn på denne websiden:
+
+ %(confirmurl)s
+
+Du kan også sende en epost til %(requestaddr)s, med følgende (og KUN
+følgende) innhold:
+
+ confirm %(cookie)s
+
+Merk at bare å sende et svar på denne eposten burde fungere fra de
+fleste epostlesere, siden det vanligvis fører til at emnefeltet beholdes
+(tillegg av 'Re:' eller 'SV:' foran emnet gjør ingenting).
+
+Hvis du ikke ønsker å melde deg på listen, kan du bare slette denne eposten.
+Tror du noen andre prøvde å melde deg på, eller har du andre spørsmål,
+send gjerne en epost til %(listadmin)s.
diff --git a/templates/pt_BR/admindbdetails.html b/templates/pt_BR/admindbdetails.html
new file mode 100644
index 00000000..881ff7d5
--- /dev/null
+++ b/templates/pt_BR/admindbdetails.html
@@ -0,0 +1,71 @@
+As requisíções são mostradas de uma forma ou de outra, em uma <a
+href="%(summaryurl)s">página de sumário</a>, e em uma página <em>detalhadas</em>.
+A página de sumário contém as inscrições pendentes e requisições de
+desinscrição, bem como postagens que requerem sua aprovação,
+agrupada por endereço de email do remetente. A página detalhada
+contém uma visualização mais detalhada de cada mensagem em espera,
+incluindo todos os cabeçalhos da mensagem com exceção do
+corpo da mensagem.
+
+<p>Em todas as páginas, as seguintes ações estão disponíveis:
+
+<ul>
+<li><b>Deferir</b> -- Adia sua decisão até mais tarde. Nenhuma ação é
+ tomada agora para esta requisição administrativa, mas para postagens
+ aguardando aprovação, você pode ainda encaminhar ou preservar a
+ mensagem (veja abaixo).
+
+<p><li><b>Aprovar</b> -- Aprova a mensagem, enviando-a para a lista.
+ Para requisições de membros, aprova a mudança no status do
+ membro.
+
+<p><li><b>Rejeitar</b> -- Rejeita a mensagem, enviando um aviso de
+ rejeição para o remetente e descartando a mensagem original.
+ Para requisições de membros, rejeita a modificação no status
+ do membro. Em ambos os cados, você deverá incluir uma razão
+ para esta rejeição na caixa de texto.
+
+<p><li><b>Descartar</b> -- Ignora a mensagem original, sem enviar uma
+ nodificação de rejeição. Para requisições de membros, isto
+ simplesmente descarta a requisição sem avisar a pessoa que
+ enviou a mensagem. Esta é normalemnte a ação que você deseja tomar
+ para trabalhar com spams conhecidos.
+</ul>
+
+<p>Para mensagens aguardando aprovação, ligue a opção <b>Preserve</b>
+se deseja salvar uma cópia da mensagem para o administrador do site.
+Isto é útil para mensagnes abusivas que deseja que sejam descartadas,
+mas você precisa manter um registro para inspeção posterior.
+<p>Ligue a opção <b>Forward to</b> e preencha o endereço de
+redirecionamento se desejar encaminhar a mensagem para alguém
+que não esteja na lista. Para editar uma mensagem em espera antes
+de ser enviad apara a lista, você deverá redirecionar a mensagem
+para voce mesmo (ou para os donos da lista) e descartar a mensagem
+original. Então quando a mensagem for mostrada em sua caixa
+de correio, faça suas modificações e reenvie a mensagem para a
+lista, incluindo um cabeçalho <tt>Approved:</tt> com a senha
+da lista como seu valor. Uma netiqueta própria neste caso é
+incluir uma nota na mensagem reenviada, explicando que
+você modificou o texto.
+
+<p>Caso o remetente é uma membro da lista que está sendo moderado,
+você poderá opcionalmente desativar sua opção de moderação. Isto é
+útil quando sua lista estiver configurada para colocar novos
+membros em proibição, e decidiu que este membro pode ser
+confiável para postar a lista sem aprovação.
+
+<p>Caso o remetente não seja o membro da lista, você poderá
+adicionar o endereço de email ao <em>sender filter</em>. Os
+ Sender filters são descritos na <a
+href="%(filterurl)s">página de privacidade de filtragem de remetentes</a>,
+e poderá ser uma das seguintes <b>auto-aceitar</b> (Aceita),
+<b>auto-bloqueia</b> (Bloqueia), <b>auto-rejeita</b> (Rejeita), ou
+<b>auto-descarta</b> (Descarta). Esta opção não estará disponível
+se o endereço já é um dos filtros do remetente.
+
+<p>Quando terminar, clique no botão <em>Enviar Todos os Dados</em>
+no topo ou rodapé da página. Este botão enviará todas as ações
+selecionadas para todas as requisições administrativas que
+fez.
+
+<p><a href="%(summaryurl)s">Retornar a página de sumário</a>.
diff --git a/templates/pt_BR/admindbpreamble.html b/templates/pt_BR/admindbpreamble.html
new file mode 100644
index 00000000..f034b0e3
--- /dev/null
+++ b/templates/pt_BR/admindbpreamble.html
@@ -0,0 +1,11 @@
+Esta página contém um subconjunto de postagens das listas de
+discussão para a lista <em>%(listname)s</em> que estão esperando
+aprovação. Ela atualmente mostra %(description)s
+
+<p>Para cada requisição administrativa, por favor selecione a ação
+qe será tomada, clicando em <b>Enviar todos os dados</b> quando
+terminar. Instruções mais detalhadas estão disponíveis
+<a href="%(detailsurl)s">aqui</a>.
+
+<p>Você também poderá <a href="%(summaryurl)s">ver um resumo</a> de todas
+as requisições pendentes.
diff --git a/templates/pt_BR/admindbsummary.html b/templates/pt_BR/admindbsummary.html
new file mode 100644
index 00000000..4f90b035
--- /dev/null
+++ b/templates/pt_BR/admindbsummary.html
@@ -0,0 +1,14 @@
+Esta página contém um resumo do conjunto atual de requisições
+administrativas requerendo sua aprovação na
+<a href="%(adminurl)s"><em>%(listname)s</em> lista de discussão</a>.
+Primeiro, você encontrará a lista de inscrições/desinscrições pendentes,
+se tiver alguma, seguida de qualquer postagem que esteja aguardando sua
+aprovação.
+
+<p>Para cada requisição administrativa, selecione a conexão para
+ser feita clicando em <b>Enviar todos os dados</b> quando terminar.
+<a href="%(detailsurl)s">Instruções mais detalhadas</a> também estão
+disponíveis.
+
+<p>Você também pode <a href="%(viewallurl)s">ver os detalhes</a> de
+todas as postagens aguardando aprovação.
diff --git a/templates/pt_BR/adminsubscribeack.txt b/templates/pt_BR/adminsubscribeack.txt
new file mode 100644
index 00000000..91870e1d
--- /dev/null
+++ b/templates/pt_BR/adminsubscribeack.txt
@@ -0,0 +1,3 @@
+%(member)s foi inscrito com sucesso na lista %(listname)s.
+
+
diff --git a/templates/pt_BR/adminunsubscribeack.txt b/templates/pt_BR/adminunsubscribeack.txt
new file mode 100644
index 00000000..39236c18
--- /dev/null
+++ b/templates/pt_BR/adminunsubscribeack.txt
@@ -0,0 +1,2 @@
+%(member)s foi removido da lista %(listname)s.
+
diff --git a/templates/pt_BR/admlogin.html b/templates/pt_BR/admlogin.html
new file mode 100644
index 00000000..c80c006d
--- /dev/null
+++ b/templates/pt_BR/admlogin.html
@@ -0,0 +1,39 @@
+<html>
+<head>
+ <title>Autenticação %(listname)s %(who)s</title>
+</head>
+<body bgcolor="#ffffff">
+<FORM METHOD=POST ACTION="%(path)s">
+%(message)s
+ <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1">Autenticação %(listname)s %(who)s
+ </FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <TD><div ALIGN="Right">Senha de %(who)s na Lista:</div></TD>
+ <TD><INPUT TYPE="password" NAME="adminpw" SIZE="30"></TD>
+ </tr>
+ <tr>
+ <td colspan=2 align=middle><INPUT type="SUBMIT"
+ name="admlogin"
+ value="Deixe-me entrar...">
+ </td>
+ </tr>
+ </TABLE>
+ <p><strong><em>Importante:</em></strong> Deste ponto em diante,
+ você deverá ter os cookies ativados em seu navegador, caso
+ contrário nenhuma modificação administrativa terá efeito.
+
+ <p>Os cookies de seção são usados na interface administrativa
+ do Mailman assim não será necessária uma nova autenticação em
+ cada operação administrativa. Este cookie expirará automaticamente
+ quando sair do seunavegador ou poderá expirar automaticamente o
+ cookie clicando no botão <em>Sair</em> em baixo de
+ <em>Outras Atividades Administrativas</em> (que verá
+ logo após logar na página).
+</FORM>
+</body>
+</html>
diff --git a/templates/pt_BR/admlogin.txt b/templates/pt_BR/admlogin.txt
new file mode 100644
index 00000000..0cb6a0ce
--- /dev/null
+++ b/templates/pt_BR/admlogin.txt
@@ -0,0 +1,38 @@
+<html>
+<head>
+ <title>%(listname)s - Autenticação Administrativa</title>
+</head>
+<body bgcolor="#ffffff">
+<FORM METHOD=POST ACTION="%(path)s">
+%(message)s
+ <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1">Autenticação Administrativa da lista %(listname)s
+ </FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <TD> <div ALIGN="Right"> Senha Administrativa da Lista: </div> </TD>
+ <TD> <INPUT TYPE=password NAME=adminpw SIZE=30></TD>
+ </tr>
+ <tr>
+ <td colspan=2 align=middle> <INPUT TYPE=SUBMIT name="request_login"
+ value="Entrar no sistema">
+ </td>
+ </tr>
+ </TABLE>
+ <p><strong><em>Importante:</em></strong> A partir deste ponto,
+ você deverá ter os cookies habilitados em seu navegador,
+ caso contrário nenhuma modificação administrativa terá
+ efeito.
+
+ <p>Cookies de seção são usadas na interface administrativa
+ do Mailman assim não será necessário refazer a autenticação
+ entre cada operação administrativa. O cookie expirará
+ automaticamente assim que sair do navegador, ou poderá
+ fazer isso clicando no botão <em>Sair</em> sob
+ <em>Outras Atividades Administrativas</em>
+ (que visualizará assim que entrar com sucesso no
+ sistema).
+</FORM>
diff --git a/templates/pt_BR/approve.txt b/templates/pt_BR/approve.txt
new file mode 100644
index 00000000..3d6ec672
--- /dev/null
+++ b/templates/pt_BR/approve.txt
@@ -0,0 +1,16 @@
+Sua requisição para o endereço %(requestaddr)s:
+
+ %(cmd)s
+
+foi direcionada para a pessoa que toma conta da lista.
+
+Uma provável causa é quando se você tenta se inscrever em uma
+lista "fechada".
+
+Você receberá uma notificação da decisão do dono da lista sobre
+sua solicitação de inscrição.
+
+Qualquer questões sobre a política do dono da lista deverá ser
+enviada para:
+
+ %(adminaddr)s
diff --git a/templates/pt_BR/article.html b/templates/pt_BR/article.html
new file mode 100644
index 00000000..9ef556cd
--- /dev/null
+++ b/templates/pt_BR/article.html
@@ -0,0 +1,50 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+ <HEAD>
+ <TITLE> %(title)s
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:%(email_url)s?Subject=%(subject_url)s&In-Reply-To=%(in_reply_to_url)s">
+ <META NAME="robots" CONTENT="index,nofollow">
+ %(encoding)s
+ %(prev)s
+ %(next)s
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>%(subject_html)s</H1>
+ <B>%(author_html)s</B>
+ <A HREF="mailto:%(email_url)s?Subject=%(subject_url)s&In-Reply-To=%(in_reply_to_url)s"
+ TITLE="%(subject_html)s">%(email_html)s
+ </A><BR>
+ <I>%(datestr_html)s</I>
+ <P><UL>
+ %(prev_wsubj)s
+ %(next_wsubj)s
+ <LI> <B>Mensagens classificadas por:</B>
+ <a href="date.html#%(sequence)s">[ date ]</a>
+ <a href="thread.html#%(sequence)s">[ thread ]</a>
+ <a href="subject.html#%(sequence)s">[ subject ]</a>
+ <a href="author.html#%(sequence)s">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+%(body)s
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ %(prev_wsubj)s
+ %(next_wsubj)s
+ <LI> <B>Mensagens classificadas por:</B>
+ <a href="date.html#%(sequence)s">[ date ]</a>
+ <a href="thread.html#%(sequence)s">[ thread ]</a>
+ <a href="subject.html#%(sequence)s">[ subject ]</a>
+ <a href="author.html#%(sequence)s">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="%(listurl)s">Mais detalhes sobre a lista de discussão %(listname)s
+</a><br>
+</body></html>
diff --git a/templates/pt_BR/bounce.txt b/templates/pt_BR/bounce.txt
new file mode 100644
index 00000000..a351a73a
--- /dev/null
+++ b/templates/pt_BR/bounce.txt
@@ -0,0 +1,14 @@
+Esta é a notificação de ação de retorno da lista de
+discussão gerenciada pelo Mailman:
+
+ Lista: %(listname)s
+ Membro: %(addr)s
+ Ação: Subscription %(negative)s%(did)s.
+ Razão: Excessive or fatal bounces.
+ %(but)s
+
+%(reenable)s
+A notificação da devolução está em anexo abaixo.
+
+Questões?
+Contacte o administrador Mailman do site em %(owneraddr)s.
diff --git a/templates/pt_BR/checkdbs.txt b/templates/pt_BR/checkdbs.txt
new file mode 100644
index 00000000..5b84f60b
--- /dev/null
+++ b/templates/pt_BR/checkdbs.txt
@@ -0,0 +1,6 @@
+A lista de discussão %(real_name)s@%(host_name)s tem %(count)d requisições
+aguardando por sua consideração em:
+
+ %(adminDB)s
+
+Por favor atenda isto no horário que te for mais conveniente.
diff --git a/templates/pt_BR/convert.txt b/templates/pt_BR/convert.txt
new file mode 100644
index 00000000..0a5c06c6
--- /dev/null
+++ b/templates/pt_BR/convert.txt
@@ -0,0 +1,37 @@
+A lista de discussão %(listname)s está passando por uma grande
+modificação. Ela está sendo executada em um novo sistema de
+listas de discussão chamado "Mailman". Isto felizmente resolverá
+uma série de problemas que existiam na administração desta lista
+de discussão.
+
+O que isto te afeta?
+
+1) As mensagens intencionadas a toda a lista devem ser enviadas para: %(listaddr)s.
+
+2) Será lhe fornecida uma senha aleatória para prevenir que outras pessoas
+te descadastrem sem seu conhecimento. Ela será lhe passada em um email
+separado, que já terá recebido. Não se preocupe se esquecer desta
+senha; um lembrete lhe será enviada por email a cada mês.
+
+3) Se tiver acesso a Web, você poderá usa-la a qualquer omento para
+se descadastrar desta lista, para mudar para o modo normal de
+recebimento ou digest, para visualizar as mensagens enviadas para
+a lista (que estarão disponíveis após a lista receber mensagens
+por um dia, por exemplo), etc. O endereço Web para estes recursos
+é:
+
+ %(listinfo_url)s
+
+4) Se nào tiver acesso WWW, você poderá fazer estas mesmas coisas
+por email. Envie um email para %(requestaddr)s
+com o asssunto ou mensagem contendo apenas a palavra "help"
+(sem as aspas). Você receberá uma resposta automática lhe dando
+outras instruções.
+
+Por favor, envie quaisquer questões ou problemas com a nova
+configuração para:
+%(adminaddr)s.
+
+Esta mensagem foi gerada automaticamente pelo Mailman %(version)s.
+Para mais detalhes sobre o software do Mailman, visite a página Web
+do Mailman em http://www.list.org/
diff --git a/templates/pt_BR/cronpass.txt b/templates/pt_BR/cronpass.txt
new file mode 100644
index 00000000..b4010a31
--- /dev/null
+++ b/templates/pt_BR/cronpass.txt
@@ -0,0 +1,21 @@
+Este é um lembrete, enviado de mes em mes, sobre os membros de
+sua lista de discussão %(hostname)s. Isto inclui seus dados de
+inscrição e como usa-lo para modificar ou se desiscrever de uma
+lista.
+
+Você pode visitar a URL para modificar seu status de membro ou
+configuração, incluindo descadastramenentos, ajustando a entrega
+no estilo digest ou desativando a entrega (e.g. para férias) e
+assim por diante.
+
+Em adição a interface de URL, você também pode usar o email para
+fazer tais mudanças. Para mais detalhes, envie uma mensagem ao
+endereço "-request" da lista (por exemplo, %(exreq)s) contendo
+apenas a palavra 'help' no corpo da mensagem e uma mensagem
+de email será lhe enviada com instruções.
+
+Se tiver questões, problemas, comentários, etc, envie-os para
+%(owner)s. Obrigado!
+
+Senha para %(useraddr)s:
+
diff --git a/templates/pt_BR/disabled.txt b/templates/pt_BR/disabled.txt
new file mode 100644
index 00000000..51aaf361
--- /dev/null
+++ b/templates/pt_BR/disabled.txt
@@ -0,0 +1,27 @@
+O membro de sua lista de discussão %(listname)s foi desativado
+por %(reason)s. Você não receberá mais
+mensagens desta lista até que re-ative seu membro.
+Você receberá mais %(noticesleft)s lembretes antes que o membro da lista
+seja removidod.
+
+Para reativar seu membro, você poderá simplesmente responder a esta
+mensagem (deixando a linha Subject intacta) ou visitando a página
+de confirmação em:
+
+ %(confirmurl)s
+
+Você também poderá visitar sua página de gerenciamento de membros
+em:
+
+ %(optionsurl)s
+
+Na sua página de membros, você poderá modificar várias opções de
+entrega tal como seu endereço de e-mail e o que precisa ser feito
+por digest ou não. Como lembrete, sua senha de membro é:
+
+ %(password)s
+
+Se tiver qualquer questão ou problema, você poderá contactar o
+dono da lista em:
+
+ %(owneraddr)s
diff --git a/templates/pt_BR/emptyarchive.html b/templates/pt_BR/emptyarchive.html
new file mode 100644
index 00000000..295eca1f
--- /dev/null
+++ b/templates/pt_BR/emptyarchive.html
@@ -0,0 +1,15 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+ <HEAD>
+ <title>Arquivos da lista %(listname)s</title>
+ <META NAME="robots" CONTENT="noindex,follow">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <h1>The %(listname)s Archives </h1>
+ <p>
+ Ainda não foi postada nenhuma mensagem para esta lista, assim os
+ arquivos estão atualmente vazios. Você poderá ter
+ <a href="%(listinfo)s">mais detalhes sobre esta lista</a>.
+ </p>
+ </BODY>
+ </HTML>
diff --git a/templates/pt_BR/headfoot.html b/templates/pt_BR/headfoot.html
new file mode 100644
index 00000000..898b83f7
--- /dev/null
+++ b/templates/pt_BR/headfoot.html
@@ -0,0 +1,31 @@
+Este texto pode incluir
+<a href="http://www.python.org/doc/current/lib/typesseq-strings.html">strings no formato
+do pythons</a> que são resolvidos contra atributos da lista. a lista
+de substituições permitidas são:
+
+<ul>
+ <li><b><code>real_name</code></b> - O nome 'bonito' da lista; normalmente
+ o nome da lista com capitalização.
+
+ <li><b><code>list_name</code></b> - O nome no qual a lista é
+ identificada nas URLs, onde maiúsculas/minúsculas são
+ significantes. (Por compatibilidade anterior,
+ <code>_internal_name</code> é equivalente.)
+
+ <li><b><code>host_name</code></b> - O nome completo do
+ servidor (FQDN) onde a lista é executada.
+
+ <li><b><code>web_page_url</code></b> - A URL base do Mailman. Isto
+ pode ser adicionado com,
+ e.g. <em><code>listinfo/%(internal_name)s</code></em> para chegar até
+ a página de detalhes sobre a lista de discussão.
+
+ <li><b><code>description</code></b> - uma breve descrição da lista
+ de discussão.
+
+ <li><b><code>info</code></b> - A descrição completa da lista de
+ discussão.
+
+ <li><b><code>cgiext</code></b> - A extensão adicionada a
+ scripts CGI.
+</ul>
diff --git a/templates/pt_BR/help.txt b/templates/pt_BR/help.txt
new file mode 100644
index 00000000..7cee9d4f
--- /dev/null
+++ b/templates/pt_BR/help.txt
@@ -0,0 +1,34 @@
+Ajuda da lista de discussão %(listname)s:
+
+Esta é a ajuda por email para o gerenciador de listas "Mailman"
+%(version)s. Esta mensagem descreve comandos que pode enviar para
+obter detalhes sobre o controle de sua inscrição nas listas
+de discussão do Mailman neste site. O comando pode ser
+especificado no assunto ou no corpo da mensagem.
+
+Note que muitas das tarefas também podem ser feitas via World
+Wide Web, emt:
+
+ %(listinfo_url)s
+
+Em particular, você poderá usar o Web site para ter sua senha
+enviada para seu endereço de entrega.
+
+Comandos específicos da lista (subscribe, who, etc) devem ser
+enviados para o endereço *-request da lista em particular, e.g.
+para a lista do 'mailman', use 'mailman-request@...'.
+
+Sobre os descritores - palavras entre "<>" significam itens
+REQUERIDOS e palavras entre "[]" significam itens OPCIONAIS. Não
+inclua "<>" ou "[]" quando usar os comandos.
+
+Os seguintes comandos são válidos:
+
+ %(commands)s
+
+Os comandos devem ser enviados para %(requestaddr)s
+
+Questões e outras perguntas que requerem atenção devem ser enviadas
+para
+
+ %(adminaddr)s
diff --git a/templates/pt_BR/invite.txt b/templates/pt_BR/invite.txt
new file mode 100644
index 00000000..d6a4b2f8
--- /dev/null
+++ b/templates/pt_BR/invite.txt
@@ -0,0 +1,21 @@
+Seu endereço de email "%(email)s" foi convidado para participar da
+lista de discussão %(listname)s em %(hostname)s sendo
+coordenada por %(listname)s.
+Você pdoerá aceitar o convite simplesmente respondendo a esta
+mensagem, mantendo a linha de Assunto intacta.
+
+Você também poderá visitar esta página:
+
+ %(confirmurl)s
+
+Ou deverá incluir as seguintes listas -- e somente a seguinte
+linha -- em uma mensagem para %(requestaddr)s:
+
+ confirm %(cookie)s
+
+Note que simplesmente enviando um 'reply' a esta mensagem deve
+funcionar para a maioria dos leitures de e-mail.
+
+Se desejar recusar este convite, ignore esta mensagem. Se tiver
+qualquer estão, envie-as para
+%(listowner)s.
diff --git a/templates/pt_BR/listinfo.html b/templates/pt_BR/listinfo.html
new file mode 100644
index 00000000..98e0eebf
--- /dev/null
+++ b/templates/pt_BR/listinfo.html
@@ -0,0 +1,144 @@
+<!-- $Revision: 5423 $ -->
+<HTML>
+ <HEAD>
+ <TITLE><MM-List-Name> Página de Detalhes</TITLE>
+
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+
+ <P>
+ <TABLE COLS="1" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1"><MM-List-Name> --
+ <MM-List-Description></FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <p>&nbsp;
+ </td>
+ </tr>
+ <tr>
+ <TD COLSPAN="1" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000">Sobre <MM-List-Name></FONT></B>
+ </TD>
+ <TD COLSPAN="1" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <MM-lang-form-start><MM-displang-box> <MM-list-langs>
+ <MM-form-end>
+ <MM-Subscribe-Form-Start>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <P><MM-List-Info></P>
+ <p> Para ver a coleção de postagens anteriores a lista,
+ visite os arquivos da <MM-Archive><MM-List-Name>
+ </MM-Archive>.
+ <MM-Restricted-List-Message>
+ </p>
+ </TD>
+ </TR>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000">Usando <MM-List-Name></FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ Para postar uma mensagem a todos os membros da lista, envie um
+ email para
+ <A HREF="mailto:<MM-Posting-Addr>"><MM-Posting-Addr></A>.
+
+ <p>Você poderá se inscrever na lista ou modificar sua inscrição
+ existente, nas seções abaixo.
+ </td>
+ </tr>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000">Inscrevendo-se na <MM-List-Name></FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <P>
+ Inscreva-se na lista <MM-List-Name> preenchendo o seguinte
+ formulário.
+ <MM-List-Subscription-Msg>
+ <ul>
+ <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"
+ WIDTH="70%" HEIGHT= "112">
+ <TR>
+ <TD BGCOLOR="#dddddd" WIDTH="55%">Seu endereço de email:</TD>
+ <TD WIDTH="33%"><MM-Subscribe-Box>
+ </TD>
+ <TD WIDTH="12%">&nbsp;</TD></TR>
+ <tr>
+ <td bgcolor="#dddddd" width="55%">Seu nome (opcional):</td>
+ <td width="33%"><mm-fullname-box></td>
+ <TD WIDTH="12%">&nbsp;</TD></TR>
+ <TR>
+ <TD COLSPAN="3"><FONT SIZE=-1>Você poderá entrar com uma
+ senha privativa abaixo. Isto oferece somente
+ uma segurança média, mas deve prevenir outras pessoas
+ de obter sua inscrição. <b>Não utilize uma senha
+ válida</b> pois ela provavelmente será lhe encaminhada
+ de volta em formato texto plano.
+
+ <p>Caso tenha escolhido não entrar com uma senha, uma senha
+ será gerada automaticamente para voce, e lhe será enviada
+ assim que confirmar sua inscrição. Você pode sempre
+ requisitar um reenvio de ua senha quando editar suas
+ opções pessoais.
+ <MM-Reminder>
+ </TD>
+ </TR>
+ <TR>
+ <TD BGCOLOR="#dddddd">Selecione uma senha:</TD>
+ <TD><MM-New-Password-Box></TD>
+ <TD>&nbsp;</TD></TR>
+ <TR>
+ <TD BGCOLOR="#dddddd">Reentre com a senha para confirmar:</TD>
+ <TD><MM-Confirm-Password></TD>
+ <TD>&nbsp; </TD></TR>
+ <tr>
+ <TD BGCOLOR="#dddddd">EM que idiomas prefere exibir suas mensagens?</TD>
+ <TD> <MM-list-langs></TD>
+ <TD>&nbsp; </TD></TR>
+ <tr>
+ <td>Deseja receber e-mails da lista enviados uma vez por dia em um único
+ email (digest)?
+ </td>
+ <td><MM-Undigest-Radio-Button> Não
+ <MM-Digest-Radio-Button> Sim
+ </TD>
+ </tr>
+ <tr>
+ <td colspan="3">
+ <center><MM-Subscribe-Button></P></center>
+ </TABLE>
+ <MM-Form-End>
+ </ul>
+ </td>
+ </tr>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <a name="subscribers">
+ <B><FONT COLOR="#000000"><MM-List-Name> Inscritos</FONT></B></a>
+ </TD>
+ </TR>
+ <tr>
+ <TD COLSPAN="2" WIDTH="100%">
+ <MM-Roster-Form-Start>
+ <MM-Roster-Option>
+ <MM-Form-End>
+ <p>
+ <MM-Options-Form-Start>
+ <MM-Editing-Options>
+ <MM-Form-End>
+ </td>
+ </tr>
+ </table>
+<MM-Mailman-Footer>
+</BODY>
+</HTML>
diff --git a/templates/pt_BR/masthead.txt b/templates/pt_BR/masthead.txt
new file mode 100644
index 00000000..e85b5f6d
--- /dev/null
+++ b/templates/pt_BR/masthead.txt
@@ -0,0 +1,16 @@
+enviar inscrições da lista de discussão Send %(real_name)s para
+ %(got_list_email)s
+
+Para se cadastrar ou descadastrar via WWW, visite o endereço
+ %(got_listinfo_url)s
+ou, via email, envie uma mensagem com a palavra 'help' no
+assunto ou corpo da mensagem para
+ %(got_request_email)s
+
+Você poderá entrar em contato com a pessoa que gerencia a lista
+pelo endereço
+ %(got_owner_email)s
+
+Quando responder, por favor edite sua linha Assunto assim ela será
+mais específica que
+"Re: Contents of %(real_name)s digest..."
diff --git a/templates/pt_BR/newlist.txt b/templates/pt_BR/newlist.txt
new file mode 100644
index 00000000..78097918
--- /dev/null
+++ b/templates/pt_BR/newlist.txt
@@ -0,0 +1,41 @@
+A lista de discussão `%(listname)s' foi criada. Seguem
+algumas informações básicas sobre sua lista de discussão.
+
+A senha de sua lista de discussão é:
+
+ %(password)s
+
+Você precisará desta senha para configurar sua lista. Ela também
+será necessária para manipular requisições administrativas, tais
+como liberar mensagens se desejar fazer uma lista de discussão
+moderada.
+
+Você poderá configurar sua lista de discussão na seguinte
+página web:
+
+ %(admin_url)s
+
+A página web para usuários de sua lista de discussão é:
+
+ %(listinfo_url)s
+
+Você até mesmo pode personalizar estas páginas através da
+página de configuração da lista. No entanto, é necessário que
+conheça a linguagem HTML para ser capaz de fazer isto.
+
+Também existe uma interface baseada em email para usuários
+(não administradores) de sua lista; você pode obter detalhes
+de sua utilização enviando um e-mail com a palavra "help"
+no corpo da mensagem ou no assunto para o endereço:
+
+ %(requestaddr)s
+
+Para descadastrar um usuário: através da página web 'listinfo',
+clique ou entre com o endereço de email do usuário como
+se fosse ele. No espaço onde o usuário deve colocar sua senha
+para descadastramento, coloque sua senha administrativa.
+Você também poderá usar sua senha para modificar as opções dos
+membros, incluindo agrupamento de mensagens (digest),
+desativação de entrega, etc.
+
+Por favor, envie qualquer questão para %(siteowner)s.
diff --git a/templates/pt_BR/options.html b/templates/pt_BR/options.html
new file mode 100644
index 00000000..8c84de60
--- /dev/null
+++ b/templates/pt_BR/options.html
@@ -0,0 +1,324 @@
+<!-- $Revision: 5423 $ -->
+<html>
+<head>
+ <link rel="SHORTCUT ICON" href="<mm-favicon>">
+ <title><MM-Presentable-User> configuração de membros para <MM-List-Name>
+ </title>
+</head>
+<BODY BGCOLOR="#ffffff">
+ <TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#99CCFF"><B>
+ <FONT COLOR="#000000" SIZE=+1>
+ <MM-List-Name> configuração de membros da lista para
+ <MM-Presentable-User>
+ </FONT></B></TD></TR>
+ </TABLE>
+<p>
+<table width="100%" border="0" cellspacing="5" cellpadding="5">
+ <tr><td>
+ <b><MM-Presentable-User></b>'s status de inscriçãos,
+ senha e opções para a lista de discussão <MM-List-Name>.
+ </td><td><MM-Form-Start><mm-logout-button><MM-Form-End></td>
+ </tr><tr>
+ <td colspan="2">
+ <MM-Case-Preserved-User>
+
+ <MM-Disabled-Notice>
+
+ <p><mm-results>
+ </td>
+ </tr>
+</table>
+
+<MM-Form-Start>
+<p>
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#FFF0D0" colspan="2">
+ <FONT COLOR="#000000">
+ <B>Modificação seus detalhes na <MM-List-Name></B>
+ </FONT></TD></TR>
+ <tr><td colspan="2">Você pode mudar o endereço que está
+ inscrito na lista de discussão entrando com o novo endereço
+ nos campos abaixo. Note que o email de confirmação será
+ enviado para o novo endereço, e a modificação deverá ser
+ confirmada antes de ser feita.
+
+ <p>Tempo de confirmação após <mm-pending-days>.
+
+ <p>Você também pode ajustar ou modificar seu nome real
+ (i.e. <em>John Smith</em>).
+
+ <p>Se deseja fazer modificações nos membros em todas as
+ listas que está inscritos em <mm-host>, ligue
+ a caixa de diálogo <em>Modificar globalmente</em>.
+
+ </td></tr>
+ <tr><td><center>
+ <table border="0" cellspacing="2" cellpadding="2" width="80%" cols="2">
+ <tr><td bgcolor="#dddddd"><div align="right">Novo Endereço:</div></td>
+ <td><mm-new-address-box></td>
+ </tr>
+ <tr><td bgcolor="#dddddd"><div align="right">Denovo para
+ confirmação:</div></td>
+ <td><mm-confirm-address-box></td>
+ </tr>
+ </tr></table></center>
+ </td>
+ <td><center>
+ <table border="0" cellspacing="2" cellpadding="2" width="80%" cols="2">
+ <tr><td bgcolor="#dddddd"><div align="right">Seu nome
+ (optional):</div></td>
+ <td><mm-fullname-box></td>
+ </tr>
+ </table></center>
+ </td>
+ </tr>
+ <tr><td colspan="2"><center><mm-change-address-button>
+ <p><mm-global-change-of-address>Modificar Globalmente</center></td>
+ </tr>
+</table>
+
+<p>
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="5" CELLPADDING="5">
+ <TR><TD WIDTH="50%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>Descadastrando-se da <MM-List-Name></B></td>
+
+ <TD WIDTH="50%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>Suas outras inscrições na <MM-Host></B>
+ </FONT></TD></TR>
+
+ <tr><td>
+ Ligue a caixa de confirmação e pressione este botão para
+ descadastrar-se da lista de discussão. <strong>Atenção:</strong>
+ Esta ação será feita imediatamente!
+ <p>
+ <center><MM-Unsubscribe-Button></center></td>
+ <td>
+ Você poderá visualizar uma lista de todas as listas de
+ discussão em <mm-host> no qual é membro. Use isto se deseja
+ fazer as mesmas modificações nas opções de membros a estas
+ outras inscrições.
+
+ <p>
+ <center><MM-Other-Subscriptions-Submit></center>
+ </TD></TR>
+</table>
+
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD COLSPAN=2 WIDTH="100%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>Your <MM-List-Name> Senha</B>
+ </FONT></TD></TR>
+
+ <tr valign="TOP"><td WIDTH="50%">
+ <a name=reminder>
+ <center>
+ <h3>Esqueceu sua senha?</h3>
+ </center>
+ Clique neste botão para ter sua senha enviada para seu
+ email de membro da lista.
+ <p><MM-Umbrella-Notice>
+ <center>
+ <MM-Email-My-Pw>
+ </center>
+ </td>
+
+ <td WIDTH="50%">
+ <a name=changepw>
+ <center>
+ <h3>Alterar sua senha</h3>
+ <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2" WIDTH="70%" COLS=2>
+ <TR><TD BGCOLOR="#dddddd"><div align="right">New
+ password:</div></TD>
+ <TD><MM-New-Pass-Box></TD>
+ </TR>
+ <TR>
+ <TD BGCOLOR="#dddddd"><div align="right">Again to
+ confirm:</div></TD>
+ <TD><MM-Confirm-Pass-Box></TD>
+ </TR>
+ </table>
+
+ <MM-Change-Pass-Button>
+ <p><center><mm-global-pw-changes-button>Modificar Globalmente.
+ </center>
+</TABLE>
+
+<p>
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>Your <MM-List-Name> Opções de Inscrição</B>
+ </FONT></TD></TR>
+</table>
+
+<p>
+<i><strong>Os valores atuais estão marcados.</strong></i>
+
+<p>Note que algumas opções tem a caixa <em>Ajustar glocalmente</em>.
+Marcando este campo fará com que todas as mudanças sejam feitas para
+cada lista de discussão que você é membro em <mm-host>. Clique em
+<em>Liste minhas outras inscrições</em> acima para ver
+outras listas de discussão que está inscrito.
+<p>
+<TABLE BORDER="0" CELLSPACING="3" CELLPADDING="4" WIDTH="100%">
+ <tr><TD BGCOLOR="#cccccc">
+ <a name="disable">
+ <strong>Entrega de Emails</strong></a><p>
+ Ajuste esta opção para <em>Ativar</em> o recebimento de
+ mensagens postadas a esta lista de discussão. Selecione
+ <em>Desativado</em> se deseja permanecer inscrito, mas não
+ quer mensagnes enviadas a você por algum tempo (e.g. você
+ está entrando de férias, por exemplo). Se desativar a
+ entrega de mensagens, não se esqueça de reativa-la quando
+ voltar; ela não será automaticamente reativada.
+ </td><td bgcolor="#cccccc">
+ <mm-delivery-enable-button>Ativada<br>
+ <mm-delivery-disable-button>Desativada<p>
+ <mm-global-deliver-button><i>Ajustar Globalmente</i>
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Ajustar o Modo Digest</strong><p>
+ Se ativar o modo digest, você receberá postagens concatenadas
+ em um único email uma vez por dia, possívelmente mais em
+ listas muito movimentadas), ao invés de recebe-las quando
+ são enviadas. Caso o modo digest seja modificado de ativado
+ para desativado, você poderá ereceber uma última mensagem
+ digest.
+ </td><td bgcolor="#cccccc">
+ <MM-Undigest-Radio-Button>Desligado<br>
+ <MM-Digest-Radio-Button>Ligado
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Receber digests em MIME ou Texto Plano?</strong><p>
+ Seu leitor de email pode ou não suportar digests MIME. Em geral
+ os digests MIME sã preferidos, mas se tiver um problema durante
+ sua leitura, selecione digests em texto plano.
+ </td><td bgcolor="#cccccc">
+ <MM-Mime-Digests-Button>MIME<br>
+ <MM-Plain-Digests-Button>Texto Plano<p>
+ <mm-global-mime-button><i>Ajustar Globalmente</i>
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Receber suas próprias postagens a esta lista?</strong><p>
+ Ordinariamente, você receberá uma cópia de cada mensagem que
+ postar a lista. Se não desejar receber esta cópia, mude esta
+ opção para <em>Não</em>.
+ </td><td bgcolor="#cccccc">
+ <mm-dont-receive-own-mail-button>Não<br>
+ <mm-receive-own-mail-button>Sim
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Receber um email de reconhecimento quando enviar um email para
+ a lista?</strong><p>
+ </td><td bgcolor="#cccccc">
+ <mm-dont-ack-posts-button>Não<br>
+ <mm-ack-posts-button>Sim
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>Receber um email lembrando a senha desta lista?</strong><p>
+ Uma vez por mes, você receberá um email contendo um lembrete de
+ senha de cada lista que está cadastrado. Você poderá desativar
+ esta opção individualmente por listas selecionando
+ <em>não</em> nesta opção. Se desativar o lembrete de senhas
+ para todas as listas que está inscrito, nenhum email de
+ lembrete será enviado a você.
+ </td><td bgcolor="#cccccc">
+ <mm-dont-get-password-reminder-button>Não<br>
+ <mm-get-password-reminder-button>Sim<p>
+ <mm-global-remind-button><i>Ajustar Globalmente</i>
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Ocultar seu nome na lista de inscritos?</strong><p>
+ Quando alguém visualiza a lista de membros, seu endereço de
+ email normalmente é mostrado (de uma forma obscura para frustrar
+ spammers). Se não deseja usasr seu endereço de email para
+ mostrar sua lista de membros, selecione <em>Não</em> para esta
+ opção.
+ </td><td bgcolor="#cccccc">
+ <MM-Public-Subscription-Button>Não<br>
+ <MM-Hide-Subscription-Button>Sim
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Que idioma prefere?</strong><p>
+ </td><td bgcolor="#cccccc">
+ <MM-list-langs>
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>Que categorias de tópicos deseja se inscrever?</strong><p>
+ Selecionando um ou mais tópicos, você pode filtrar o
+ tráfego da lista de discussão, assim como receber
+ somente alguns tipos de mensagens. Se uma mensagem
+ confere com um dos tópicos selecionados, você
+ receberá a mensagem, caso contrário, não.
+
+ <p>Caso uma mensagem não conferir com qualquer tópico,
+ a regra de entrega depende da próxima opção de
+ configuração. Se não selecionar qualquer tópico de
+ interesse, você receberá todas as mensagens enviadas
+ para a lista de discussão.
+ </td><td bgcolor="#cccccc">
+ <mm-topics>
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>Deseja receber mensagens que não conferem com qualquer filtro
+ de tópicor?</strong><p>
+
+ Esta opção somente faz efeito caso tenha se inscrito
+ em pelo menos um tópico acima. Ela descreve qual é a
+ regra de entrega padrão para mensagens que não conferem
+ com qualquer filtro de tópico. Selecionando <em>Não</em>
+ significa que se a mensagem não conferir com qualquer
+ filtro de tópico, então você não receberá a mensagem,
+ enquanto selecionando <em>Sim</em> diz para entregar
+ mensagens que não conferem para voce.
+
+ <p>Caso nenhum tópico de interesse seja selecionado acima,
+ você receberá cada mensagem enviada para a lista de
+ discussão.
+ </td><td bgcolor="#cccccc">
+ <mm-suppress-nonmatching-topics>Não<br>
+ <mm-receive-nonmatching-topics>Sim
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>Evitar cópias duplicadas de mensagenss?</strong><p>
+
+ Quando você está explicitamente listado nos cabeçalhos
+ <tt>To:</tt> ou <tt>Cc:</tt> da mensagem da lista,
+ você pode optar por não receber outra cópia da
+ lista de discussão.
+ Selecione <em>Sim</em> para evitar o recebimento de
+ cópias das listas de discussão, enquanto
+ <em>Não</em> recebe cópias.
+
+ <p>Caso a lista tenha personalização de mensagens
+ personalizadas pelos membros e você selecione receber
+ cópias, cada cópia terá um cabeçalho
+ <tt>X-Mailman-Copy: yes</tt> adicionado na mensagem.
+
+ </td><td bgcolor="#cccccc">
+ <mm-receive-duplicates-button>Não<br>
+ <mm-dont-receive-duplicates-button>Sim<p>
+ <mm-global-nodupes-button><i>Ajustar Globalmente</i>
+ </td></tr>
+
+ <tr><TD colspan="2">
+ <center><MM-options-Submit-button></center>
+ </td></tr>
+
+</table>
+</center>
+<p>
+<MM-Form-End>
+
+<MM-Mailman-Footer>
+</body>
+</html>
diff --git a/templates/pt_BR/postack.txt b/templates/pt_BR/postack.txt
new file mode 100644
index 00000000..385b1cb5
--- /dev/null
+++ b/templates/pt_BR/postack.txt
@@ -0,0 +1,8 @@
+Sua mensagem com o assunto
+
+ %(subject)s
+
+Foi recebida com sucesso pela lista de discussãoe %(listname)s.
+
+Página de informações da lista: %(listinfo_url)s
+Suas preferências: %(optionsurl)s \ No newline at end of file
diff --git a/templates/pt_BR/postauth.txt b/templates/pt_BR/postauth.txt
new file mode 100644
index 00000000..c8cf7a5f
--- /dev/null
+++ b/templates/pt_BR/postauth.txt
@@ -0,0 +1,13 @@
+Como administrador da lista, é necessária sua autorização para
+a postagem da seguinte mensagem da lista:
+
+ Lista ..: %(listname)s@%(hostname)s
+ De .....: %(sender)s
+ Assunto : %(subject)s
+ Razão ..: %(reason)s
+
+Para sua conveniência, visite:
+
+ %(admindb_url)s
+
+para aprovar ou não a mensagem.
diff --git a/templates/pt_BR/postheld.txt b/templates/pt_BR/postheld.txt
new file mode 100644
index 00000000..2cd10310
--- /dev/null
+++ b/templates/pt_BR/postheld.txt
@@ -0,0 +1,15 @@
+Seu email para '%(listname)s' com o assunto
+
+ %(subject)s
+
+Esta em espera até que o moderador da lista revise-a para aprovação.
+
+A razão de estar em espera é:
+
+ %(reason)s
+
+Ou a mensagem será postada a lsita, ou receberá uma notificação da
+decisão do moderador. Se desejar cancelar esta postagem, visite
+o seguinte endereço:
+
+ %(confirmurl)s
diff --git a/templates/pt_BR/private.html b/templates/pt_BR/private.html
new file mode 100644
index 00000000..efb5dd84
--- /dev/null
+++ b/templates/pt_BR/private.html
@@ -0,0 +1,43 @@
+<html>
+<head>
+ <title>%(realname)s Autenticação de Arquivos Privados</title>
+</head>
+<body bgcolor="#ffffff">
+<FORM METHOD=POST ACTION="%(action)s/">
+%(message)s
+ <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1">%(realname)s Autenticação
+ de Arquivos Privados</FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <TD><div ALIGN="Right">Endereço de Email:</div></TD>
+ <TD><INPUT TYPE="text" NAME="username" SIZE="30"></TD>
+ </tr>
+ <tr>
+ <TD><div ALIGN="Right">Senha:</div></TD>
+ <TD><INPUT TYPE="password" NAME="password" SIZE="30"></TD>
+ </tr>
+ <tr>
+ <td colspan=2 align="middle"><INPUT type="SUBMIT"
+ name="submit"
+ value="Deixe-me entrar...">
+ </td>
+ </tr>
+ </TABLE>
+ <p><strong><em>Importante:</em></strong> Deste ponto em diante,
+ você deverá ter os cookies ativados em seu navegador, caso
+ contrário nenhuma modificação administrativa terá efeito.
+
+ <p>Os cookies de seção são usados pela interface administrativa
+ do Mailman para não ser necessária uma nova autenticação após
+ cada operação administrativa. Este cookie expirará automaticamente
+ quando sair do seu navegador ou quando expirar o cookie explicitamente
+ clicando no link <em>Sair</em> abaixo de <em>Outras Atividades
+ Administrativas</em> (que será visto logo que entrar com sucesso no
+ sistema).
+</FORM>
+</body>
+</html>
diff --git a/templates/pt_BR/refuse.txt b/templates/pt_BR/refuse.txt
new file mode 100644
index 00000000..d897b9b9
--- /dev/null
+++ b/templates/pt_BR/refuse.txt
@@ -0,0 +1,13 @@
+Sua requisição para a lista %(listname)s
+
+ %(request)s
+
+foi rejeitada pelo moderador da lista. O moderador deu a seguinte
+razão para rejeitar sua mensagem:
+
+"%(reason)s"
+
+Quaisquer questões ou comentáris devem ser direcionados para o
+moderador da lista em:
+
+ %(adminaddr)s
diff --git a/templates/pt_BR/roster.html b/templates/pt_BR/roster.html
new file mode 100644
index 00000000..2681bed8
--- /dev/null
+++ b/templates/pt_BR/roster.html
@@ -0,0 +1,53 @@
+<!-- $Revision: 5423 $ -->
+<HTML>
+ <HEAD>
+ <TITLE><MM-List-Name> Membros Inscritoss</TITLE>
+
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+
+ <P>
+ <TABLE WIDTH="100%" COLS="1" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1"><MM-List-Name>
+ Inscritos</FONT></B>
+ </TD>
+ </TR>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" ALIGN="CENTER">
+
+ <P align = "right"> <MM-lang-form-start><MM-displang-box>
+ <MM-list-langs><MM-form-end></p>
+
+ <p>Clique em seu endereço para visualizar a página
+ de inscrição<br><i>(valkores entre parênteses tem a
+ entrega de mensagens desativada na lista.)</i></p>
+ </TD>
+ </TR>
+ <TR WIDTH="100%" VALIGN="top">
+ <TD BGCOLOR="#FFF0D0" WIDTH="50%">
+ <center>
+ <B><FONT COLOR="#000000"><MM-Num-Reg-Users>
+ Membros não digest de <MM-List-Name>:</FONT></B>
+ </center>
+ </TD>
+ <TD BGCOLOR="#FFF0D0" WIDTH="50%">
+ <center>
+ <B><FONT COLOR="#000000"><MM-Num-Digesters> Membros
+ digest de <MM-List-Name>:</FONT></B>
+ </center>
+ </TD>
+ </TR>
+ <TR VALIGN="top">
+ <td>
+ <P><MM-Regular-Users>
+ </td>
+ <td>
+ <P><MM-Digest-Users>
+ </td>
+ </tr>
+ </table>
+<MM-Mailman-Footer>
+</BODY>
+</HTML>
diff --git a/templates/pt_BR/subauth.txt b/templates/pt_BR/subauth.txt
new file mode 100644
index 00000000..bb7b1c0b
--- /dev/null
+++ b/templates/pt_BR/subauth.txt
@@ -0,0 +1,11 @@
+A sua autorização é requerida para a aprovação da requisição de inscrição
+na lista de discussão:
+
+ Para: %(username)s
+ Lista: %(listname)s@%(hostname)s
+
+Para sua conveniência, visite:
+
+ %(admindb_url)s
+
+para processar a requisição.
diff --git a/templates/pt_BR/subscribe.html b/templates/pt_BR/subscribe.html
new file mode 100644
index 00000000..9b8dcd5b
--- /dev/null
+++ b/templates/pt_BR/subscribe.html
@@ -0,0 +1,9 @@
+<!-- $Revision: 5423 $ -->
+<html>
+<head><title><MM-List-Name> Resultados de inscrição</title></head>
+<body bgcolor="white">
+<h1><MM-List-Name> Resultados de inscrição</h1>
+<MM-Results>
+<MM-Mailman-Footer>
+</body>
+</html>
diff --git a/templates/pt_BR/subscribeack.txt b/templates/pt_BR/subscribeack.txt
new file mode 100644
index 00000000..785cc0e0
--- /dev/null
+++ b/templates/pt_BR/subscribeack.txt
@@ -0,0 +1,32 @@
+Bem Vindo a lista de discussão %(real_name)s@%(host_name)s!
+%(welcome)s
+Para postar a esta lista, envie uma mensagem para:
+
+ %(emailaddr)s
+
+Informações gerais sobre esta lista de discussão podem ser encontradas em:
+
+ %(listinfo_url)s
+
+Se deseja se deinscrever ou modificar suas opções (eg, mudar de/para o
+modo digest, modificar a senha, etc.), visite sua página de inscrição
+em:
+
+ %(optionsurl)s
+%(umbrella)s
+Você também pode fazer tais ajustes via e-mail enviando uma mensagem para:
+
+ %(real_name)s-request@%(host_name)s
+
+com a palavra 'help' no assunto ou corpo da mensagem (não inclua
+as aspas), e você receberá uma mensagem com instruções.
+Você deve saber sua senha para modificar as suas opções (incluindo
+a própria senha) ou para se desinscrever. Ela é:
+
+ %(password)s
+
+Normalmente, o Mailman lhe lembrará de suas senhas em %(host_name)s
+uma vez por mes, mas pode desativar isto se preferir. Este lembrete
+também inclui instruções de como se desinscrever ou modificar suas
+opções de conta. Também existe um botão em sua página de opçòes que
+poderá lhe enviar a senha.
diff --git a/templates/pt_BR/unsub.txt b/templates/pt_BR/unsub.txt
new file mode 100644
index 00000000..8a445587
--- /dev/null
+++ b/templates/pt_BR/unsub.txt
@@ -0,0 +1,23 @@
+Notificação de confirmação da remoção da lista de discussão %(listname)s
+
+Nós recebemos uma requisiçãot%(remote)s para remoção do seu endereço
+de email, "%(email)s" da lista de discussão %(listaddr)s. Para
+confirmar que você deseja ser removido desta listas, simplesmente
+resposda a esta mensagem, mantendo a linha de cabeçalho Assunto
+intacta ou visite esta página web:
+
+ %(confirmurl)s
+
+Ou inclua a seguinte linha -- e somente a seguinte linha -- em uma
+mensagem para %(requestaddr)s:
+
+ confirm %(cookie)s
+
+Note que a simples resposta a esta mensagem deverá funcionar para
+a maioria dos leitores de email, pois eles normalmente deixam
+a linha de assunto intacta (a palavra "Re:" adicionada no assunto
+não causa problemas).
+
+Se não deeja ser removido da lista, por favor ignore esta mensagem.
+Se achar que esta tentando ser maliciosamente removido da lista, ou
+tem qualquer outra questão, envie-as para %(listadmin)s.
diff --git a/templates/pt_BR/unsubauth.txt b/templates/pt_BR/unsubauth.txt
new file mode 100644
index 00000000..51db9bec
--- /dev/null
+++ b/templates/pt_BR/unsubauth.txt
@@ -0,0 +1,12 @@
+A sua autorização é necessária para a aprovação de desinscricao
+na lista de discussão:
+
+ Por: %(username)s
+ De: %(listname)s@%(hostname)s
+
+Para sua conveniência, visite:
+
+ %(admindb_url)s
+
+para processar a requisição.
+
diff --git a/templates/pt_BR/userpass.txt b/templates/pt_BR/userpass.txt
new file mode 100644
index 00000000..617d6fb0
--- /dev/null
+++ b/templates/pt_BR/userpass.txt
@@ -0,0 +1,25 @@
+Alguém, ou alguém se fazendo passar por você, solicitou o lembrete de
+senha para seu membro na lista de discussão %(fqdn_lname)s. Você
+precisará desta senha para modificar suas opções de membro (e.g. você
+deseja fazer entrega regular ou entrega digest) e tendo esta senha
+torna simples desinscrever você da lista de discussão.
+
+Você está inscrito com o endereço: %(user)s
+
+Sua senha na lista %(listname)s é: %(password)s
+
+Para fazer modificações em suas opções de membro, entre e visite
+sua página web de opções:
+
+ %(options_url)s
+
+Você também poderá realizar tais modificações por email enviando
+uma mensagem para:
+
+ %(requestaddr)s
+
+com o texto "help" no assunto ou corpo da mensagem. A resposta
+automática trará instruções mais detalhadas.
+
+Questões ou comentários? Por favor envie-as para o administrador
+da lista de discussão %(listname)s no endereço %(owneraddr)s.
diff --git a/templates/pt_BR/verify.txt b/templates/pt_BR/verify.txt
new file mode 100644
index 00000000..cb157404
--- /dev/null
+++ b/templates/pt_BR/verify.txt
@@ -0,0 +1,23 @@
+Notificação de inscrição para a lista de discussão %(listname)s
+
+Nós recebemos uma requisição%(remote)s para inscrição de seu endereço
+de email, "%(email)s", para a lista de discussão %(listaddr)s. Para
+confirmara que deseja ser adicionado a esta lista de discussão,
+simplesmente responda a esta mensagem, mantendo o cabeçalho
+Assunto intacto. Ou visite esta página web:
+
+ %(confirmurl)s
+
+Ou adicione as seguinte linha -- e somente a seguinte linha -- em uma
+mensagem para %(requestaddr)s:
+
+ confirm %(cookie)s
+
+Note que oa simples resposta a esta mensagem deverá funcionar com
+a maioria dos leitores de email, pois eles deixam a linha de
+assunto da forma traducional (a palavra "Re:" não causa problemas).
+
+Se não deseja se inscrever nesta lista, desconsidere esta
+mensagem. Se achar que está sendo maliciosamente inscrito
+na lista, ou tem quaisquer outras questões, envie-as para
+%(listadmin)s.
diff --git a/templates/ru/Makefile b/templates/ru/Makefile
new file mode 100644
index 00000000..148099df
--- /dev/null
+++ b/templates/ru/Makefile
@@ -0,0 +1,50 @@
+# FILES=admindbpreamble.html adminsubscribeack.txt adminunsubscribeack.txt admlogin.html approve.txt article.html bounce.txt checkdbs.txt convert.txt cronpass.txt headfoot.html help.txt listinfo.html masthead.txt newlist.txt nopass.txt options.html postack.txt postauth.txt postheld.txt private.html reenable.txt refuse.txt roster.html subauth.txt subscribeack.txt subscribe.html unsub.txt userpass.txt verify.txt
+FILES=$(shell cat status | sed -e 's/ .*$$//')
+TARGET=/var/home/mailman/templates/ru/
+WEB=/var/www/mailman-ru
+WFILES_DIR=/var/www/mailman-ru/files
+
+TFILES=$(addprefix $(TARGET),$(FILES))
+WFILES=$(addprefix $(WEB),$(FILES))
+
+diff_args=-ub
+
+all:
+ @echo there is nothing to do
+
+diff-%: %
+ @-(cd ../en/ ; cvs -z6 diff $(diff_args) -r$(shell fgrep $< status | awk '{ print $$2; }') $<)
+
+check:
+ @(cd ../en/ ; cvs -z6 -q status ) | ./s2s.py
+
+todo:
+ @cat status | while read name version status rest; do [ "$$status" == "done" ] || echo $$name; done | sort
+
+done:
+ @cat status | while read name version status rest; do [ "$$status" == "done" ] && echo $$name; done | sort
+
+started:
+ @cat status | while read name version status rest; do [ "$$status" == "started" ] && echo $$name; done | sort
+
+status-%: %
+ @ cat status | grep "^$< "
+
+$(WEB)/%: %
+ cp $< $@
+
+#update: $(WFILES)
+update: update-files update-status
+
+update-files:
+ install -d $(WFILES_DIR)
+ @for file in $(FILES); do if [ ! -e $(WFILES_DIR)/$$file -o $$file -nt $(WFILES_DIR)/$$file ]; then cp -vf $$file $(WFILES_DIR)/$$file; fi; done
+
+update-status: $(WEB)/status.html
+
+$(WEB)/status.html: status s2h.py
+ ./s2h.py > $@
+
+install:
+ sudo -u mailman install -d $(TARGET)
+ sudo -u mailman install $(FILES) $(TARGET)
diff --git a/templates/ru/admindbdetails.html b/templates/ru/admindbdetails.html
new file mode 100644
index 00000000..bca30ef4
--- /dev/null
+++ b/templates/ru/admindbdetails.html
@@ -0,0 +1,60 @@
+áÄÍÉÎÉÓÔÒÁÔÉ×ÎÙÅ ÚÁÐÒÏÓÙ ÐÒÅÄÓÔÁ×ÌÅÎÙ Ä×ÕÍ ÓÐÏÓÏÂÁÍÉ: ÎÁ ÓÔÒÁÎÉÃÅ
+<a href="%(summaryurl)s">Ó×ÏÄÎÙÊ ÓÐÉÓÏË</a> É ÎÁ ÓÔÒÁÎÉÃÅ <em>ÐÏÄÒÏÂÎÁÑ
+ÉÎÆÏÒÍÁÃÉÑ</em>. ÷ Ó×ÏÄÎÏÍ ÓÐÉÓËÅ ÐÒÅÄÓÔÁ×ÌÅÎÙ ÏÖÉÄÁÀÝÉÅ ÏÂÒÁÂÏÔËÉ
+ÚÁÐÒÏÓÙ ÎÁ ÐÏÄÐÉÓËÕ É ÕÄÁÌÅÎÉÅ ÏÎÏÊ, Á ÔÁËÖÅ ÓÏÏÂÝÅÎÉÑ, ËÏÔÏÒÙÅ
+ÂÙÌÉ ÏÔÌÏÖÅÎÙ ÄÌÑ ÒÁÓÓÍÏÔÒÅÎÉÑ (×ÓÅ ÔÁËÉÅ ÓÏÏÂÝÅÎÉÑ ÓÇÒÕÐÉÒÏ×ÁÎÙ
+ÐÏ ÁÄÒÅÓÕ ÏÔÐÒÁ×ÉÔÅÌÑ). îÁ ÓÔÒÁÎÉÃÅ Ó ÐÏÄÒÏÂÎÏÊ ÉÎÆÏÒÍÁÃÉÅÊ ×Ù ÍÏÖÅÔÅ
+Õ×ÉÄÅÔØ ËÁË ×ÓÅ ÚÁÇÏÌÏ×ËÉ ÔÁË É ÎÅÂÏÌØÛÕÀ ÞÁÓÔØ ÓÏÏÂÝÅÎÉÑ.
+
+<p>îÁ ËÁÖÄÏÊ ÉÚ ÓÔÒÁÎÉà ÷Ù ÍÏÖÅÔÅ ×ÙÂÒÁÔØ ÏÄÎÏ ÉÚ ÓÌÅÄÕÀÝÉÈ ÄÅÊÓÔ×ÉÊ:
+
+<ul>
+ <li><b>ïÔÌÏÖÉÔØ</b> &mdash; ÏÔÌÏÖÉÔØ ÒÅÛÅÎÉÅ ÎÁ ÐÏÔÏÍ. éÓÐÏÌØÚÕÊÔÅ ÜÔÏ
+ ÄÅÊÓÔ×ÉÅ, ÅÓÌÉ ×Ù ÈÏÔÉÔÅ ÕËÁÚÁÎÎÏ ÓÏÏÂÖÅÎÉÅ ÐÅÒÅÐÒÁ×ÉÔØ ÉÌÉ ÓÏÈÒÁÎÉÔØ (ÓÍ.
+ ÎÉÖÅ).
+
+ <li><b>ïÄÏÂÒÉÔØ</b> &mdash; ÐÅÒÅÐÒÁ×ÉÔØ ÓÏÏÂÝÅÎÉÅ × ÓÐÉÓÏË ÒÁÓÓÙÌËÉ.
+
+ <li><b>ïÔËÁÚÁÔØ</b> &mdash; ÏÔ×ÅÒÇÎÕÔØ ÓÏÏÂÝÅÎÉÅ, ÏÔÐÒÁ×É× ÏÔÐÒÁ×ÉÔÅÌÀ
+ Õ×ÅÄÏÍÌÅÎÉÅ, ÞÔÏ ÅÇÏ ÓÏÏÂÝÅÎÉÅ ÐÒÉÎÑÔÏ ÎÅ ÂÙÌÏ. óÁÍÏ ÓÏÏÂÝÅÎÉÅ ÐÏÓÌÅ
+ ÜÔÏÇÏ ÕÄÁÌÑÅÔÓÑ.
+
+ <li><b>õÄÁÌÉÔØ</b> &mdash; ÕÄÁÌÉÔØ ÕËÁÚÁÎÎÏÅ ÓÏÏÂÝÅÎÉÅ ÂÅÚ ËÁËÉÈ-ÌÉÂÏ
+ ÉÚ×ÅÝÅÎÉÊ ÏÔÐÒÁ×ÉÔÅÌÀ. äÁÎÎÏÅ ÄÅÊÓÔ×ÉÅ ÍÏÖÅÔ ÂÙÔØ ÐÏÌÅÚÎÙÍ × ÓÌÕÞÁÅ
+ ÓÐÁÍÁ.
+</ul>
+
+<p>ðÁÒÁÍÅÔÒ <b>óÏÈÒÁÎÉÔØ</b> ÐÏÚ×ÏÌÑÅÔ ×ÁÍ ÓÏÈÒÁÎÉÔØ ËÏÐÉÀ ÓÏÏÂÝÅÎÉÑ ÄÌÑ
+ÁÄÍÉÎÉÓÔÒÁÔÏÒÁ ÓÅÒ×ÅÒÁ. üÔÏ ÍÏÖÅÔ ÏËÁÚÁÔØÓÑ ÐÏÌÅÚÎÙÍ ÄÌÑ ÓÏÏÂÝÅÎÉÊ, ËÏÔÏÒÙÅ
+×Ù ÈÏÔÅÌÉ ÂÙ ÕÄÁÌÉÔØ, ÎÏ ÐÅÒÅÄ ÜÔÉÍ ×ÎÉÍÁÔÅÌØÎÏ ÅÇÏ ÒÁÓÓÍÏÔÒÅÔØ.
+
+<p>ðÁÒÁÍÅÔÒ <b>ðÅÒÅÓÌÁÔØ ËÏÐÉÀ</b> ÐÏÚ×ÏÌÑÅÔ ×ÁÍ ÐÅÒÅÓÌÁÔØ ËÏÐÉÀ ÓÏÏÂÝÅÎÉÑ
+ËÏÍÕ-ÎÉÂÕÄØ, ËÔÏ ÎÅ ÐÏÄÐÉÓÁÎ ÎÁ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ. äÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÉÚÍÅÎÉÔØ
+ÏÔÌÏÖÅÎÎÏÅ ÓÏÏÂÝÅÎÉÅ ÄÌÑ ÐÏÓÌÅÄÕÀÝÅÊ ÐÅÒÅÐÒÁ×ËÉ ÅÇÏ × ÓÐÉÓÏË ÒÁÓÓÙÌËÉ, ÍÙ
+ÒÅËÏÍÅÎÄÕÅÍ ÐÅÒÅÓÌÁÔØ ÜÔÏ ÓÏÏÂÝÅÎÉÅ ÓÅÂÅ (ÉÌÉ ×ÌÁÄÅÌØÃÁÍ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ),
+ÐÒÉ ÜÔÏÍ ÕÄÁÌÉ× ÏÔÌÏÖÅÎÎÏÅ ÓÏÏÂÝÅÎÉÅ ÉÚ ÏÞÅÒÅÄÉ. ðÏÓÌÅ ÔÏÇÏ, ËÁË ÓÏÏÂÝÅÎÉÅ
+ÐÏÑ×ÉÔÓÑ × ×ÁÛÅÍ ÐÏÞÔÏ×ÏÍ ÑÝÉËÅ, ×Ù ÍÏÖÅÔÅ ÎÅÏÂÈÏÄÉÍÙÍ ÏÂÒÁÚÏÍ ÉÚÍÅÎÉÔØ ÅÇÏ,
+Á ÚÁÔÅÍ ÐÅÒÅÓÌÁÔØ ÐÒÑÍÏ × ÓÐÉÓÏË ÒÁÓÓÙÌËÉ, ÐÒÉ ÜÔÏÍ ×ÁÍ ÎÅÏÂÈÏÄÉÍÏ ÕËÁÚÁÔØ
+ÄÏÐÏÌÎÉÔÅÌØÎÙÊ ÚÁÇÏÌÏ×ÏË <tt>Approved:</tt>, ÚÎÁÞÅÎÉÅÍ ËÏÔÏÒÏÇÏ ÎÅÏÂÈÏÄÉÍÏ
+ÕËÁÚÁÔØ ÐÁÒÏÌØ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ. ÷ ÜÔÏÍ ÓÌÕÞÁÅ ÔÁËÖÅ Ñ×ÌÑÅÔÓÑ ÈÏÒÏÛÉÍ ÔÏÎÏÍ
+ÕËÁÚÁÔØ, ÞÔÏ ×Ù ÉÚÍÅÎÉÌÉ ÔÅËÓÔ ÏÒÉÇÉÎÁÌØÎÏÇÏ ÓÏÏÂÝÅÎÉÑ.
+
+<p>åÓÌÉ ÏÔÐÒÁ×ÉÔÅÌØ ÓÏÏÂÝÅÎÉÑ Ñ×ÌÑÅÔÓÑ ÐÏÄÐÉÓÞÉËÏÍ ÜÔÏÇÏ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ,
+×Ù ÍÏÖÅÔÅ ÕÂÒÁÔØ ÆÌÁÖÏË ÍÏÄÅÒÉÒÏ×ÁÎÉÑ, ÞÔÏ ÏÚÎÁÞÁÅÔ ÞÔÏ ÜÔÏÔ ÐÏÄÐÉÓÞÉË
+ÍÏÖÅÔ ÏÔÐÒÁ×ÌÑÔØ ÓÏÏÂÝÅÎÉÑ × ÓÐÉÓÏË ÒÁÓÓÙÌËÉ ÂÅÚ ÄÏÐÏÌÎÉÔÅÌØÎÏÇÏ ÕÔ×ÅÒÖÄÅÎÉÑ.
+üÔÏ ÍÏÖÅÔ ÏËÁÚÁÔØÓÑ ÐÏÌÅÚÎÙÍ × ÓÌÕÞÁÅ, ÅÓÌÉ ×ÓÅ ÎÏ×ÙÅ ÐÏÄÐÉÓÞÉËÉ ÄÏÌÖÎÙ ÐÒÏÊÔÉ
+ÉÓÐÙÔÁÔÅÌØÎÙÊ ÓÒÏË.
+
+<p>åÓÌÉ ÏÔÐÒÁ×ÉÔÅÌØ ÓÏÏÂÝÅÎÉÑ ÎÅ Ñ×ÌÑÅÔÓÑ ÐÏÄÐÉÓÞÉËÏÍ ÜÔÏÇÏ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ,
+×Ù ÍÏÖÅÔÅ ÄÏÂÁ×ÉÔØ ÅÇÏ ÁÄÒÅÓ × <em>ÓÐÉÓÏË ÆÉÌØÔÒÁÃÉÑ</em>. üÔÉ ÓÐÉÓËÉ ÏÐÉÓÁÎÙ
+ÎÁ ÓÔÒÁÎÉÞËÅ <a href="%(filterurl)s">sender filter privacy page</a>, É
+ÉÈ ÎÅÓËÏÌØËÏ ÔÉÐÏ×: <b>auto-accept</b> (Accepts), <b>auto-hold</b> (Holds),
+<b>auto-reject</b> (Rejects) ÉÌÉ <b>auto-discard</b> (Discards). üÔÏÔ ÐÁÒÁÍÅÔÒ
+ÎÅ ÂÕÄÅÔ ÄÏÓÔÕÐÅÎ, ÅÓÌÉ ÁÄÒÅÓ ÏÔÐÒÁ×ÉÔÅÌÑ ÕÖÅ ÐÒÉÓÕÔÓÔ×ÕÅÔ × ÏÄÎÏÍ ÉÚ ÓÐÉÓËÏ×
+ÆÉÌØÔÒÁÃÉÉ.
+
+<p>ðÏÓÌÅ ÔÏÇÏ, ËÁË ×Ù ÏÂÒÁÂÏÔÁÌÉ ×ÓÅ ÚÁÐÒÏÓÙ, ÎÁÖÍÉÔÅ ÎÁ ËÎÏÐËÕ
+<em>÷ÙÐÏÌÎÉÔØ</em> × ÎÁÞÁÌÅ ÉÌÉ × ËÏÎÃÅ ÜÔÏÊ ÓÔÒÁÎÉÃÙ. ôÏÌØËÏ ÐÏÓÌÅ ÜÔÏÇÏ
+×ÓÅ ×ÙÂÒÁÎÎÙÅ ÄÅÊÓÔ×ÉÑ ÂÕÄÕÔ ×ÙÐÏÌÎÅÎÙ.
+
+<p><a href="%(summaryurl)s">÷ÅÒÕÔØÓÑ Ë Ó×ÏÄÎÏÍÕ ÓÐÉÓËÕ ÚÁÐÒÏÓÏ×</a>.
diff --git a/templates/ru/admindbpreamble.html b/templates/ru/admindbpreamble.html
new file mode 100644
index 00000000..4d12d314
--- /dev/null
+++ b/templates/ru/admindbpreamble.html
@@ -0,0 +1,11 @@
+îÁ ÜÔÏÊ ÓÔÒÁÎÉÃÅ ×Ù Õ×ÉÄÉÔÅ ÔÒÅÂÕÀÝÉÅ ×ÁÛÅÇÏ ÒÅÛÅÎÉÑ ÁÄÍÉÎÉÓÔÒÁÔÉ×ÎÙÅ ÚÁÐÒÏÓÙ
+ÄÌÑ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ <em>%(listname)s</em>. ÷ ÎÁÞÁÌÅ ÐÅÒÅÞÉÓÌÅÎÙ ÚÁÐÒÏÓÙ
+ÎÁ ÐÏÄÐÉÓËÕ (ÅÓÌÉ ÅÓÔØ), ÚÁ ËÏÔÏÒÙÍÉ ÕËÁÚÁÎÙ ÓÏÏÂÝÅÎÉÑ ÄÌÑ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ,
+ÔÒÅÂÕÀÝÉÅ ÒÁÓÓÍÏÔÒÅÎÉÑ É ÏÂÒÁÂÏÔËÉ.
+
+<p>ðÏÓÌÅ ÔÏÇÏ, ËÁË ×Ù ÏÂÒÁÂÏÔÁÌÉ ×ÓÅ ÚÁÐÒÏÓÙ, ÎÁÖÍÉÔÅ ÎÁ ËÎÏÐËÕ
+<em>÷ÙÐÏÌÎÉÔØ</em> × ÎÁÞÁÌÅ ÉÌÉ × ËÏÎÃÅ ÜÔÏÊ ÓÔÒÁÎÉÃÙ.
+
+<!--
+ vim:tw=78
+ -->
diff --git a/templates/ru/admindbsummary.html b/templates/ru/admindbsummary.html
new file mode 100644
index 00000000..20dfdc16
--- /dev/null
+++ b/templates/ru/admindbsummary.html
@@ -0,0 +1,11 @@
+üÔÁ ÓÔÒÁÎÉÃÁ ÓÏÄÅÒÖÉÔ Ó×ÏÄÎÙÊ ÓÐÉÓÏË ÔÒÅÂÕÀÝÉÈ ÏÂÒÁÂÏÔËÉ ÁÄÍÉÎÉÓÔÒÁÔÉ×ÎÙÈ
+ÚÁÐÒÏÓÏ× ÄÌÑ ÓÐÉÓËÁ <a href="%(adminurl)s"><em>%(listname)s</em> mailing
+list</a>. ÷ ÎÁÞÁÌÅ ÐÒÅÄÓÔÁ×ÌÅÎÙ ÚÁÐÒÏÓÙ ÎÁ ÐÏÄÐÉÓËÕ ÉÌÉ ÕÄÁÌÅÎÉÅ ÏÎÏÊ, ÚÁ ËÏÔÏÒÙÍÉ
+ÐÅÒÅÞÉÓÌÅÎÙ ÓÏÏÂÝÅÎÉÑ, ÔÒÅÂÕÀÝÉÅ ÏÂÒÁÂÏÔËÉ (ÍÏÄÅÒÉÒÏ×ÁÎÉÅ).
+
+<p>äÌÑ ËÁÖÄÏÇÏ ÔÁËÏÇÏ ÚÁÐÒÏÓÁ ÕËÁÖÉÔÅ ÎÅÏÂÈÏÄÉÍÏÅ ÄÅÊÓÔ×ÉÅ, Á ÚÁÔÅÍ
+ÎÁÖÍÉÔÅ ËÎÏÐËÕ <b>÷ÙÐÏÌÎÉÔØ</b>. ðÏÄÒÏÂÎÕÀ ÐÏÑÓÎÅÎÉÅ Ï ÚÎÁÞÅÎÉÑÈ ËÁÖÄÏÇÏ
+ÉÚ ÄÅÊÓÔ×ÉÊ ×Ù ÍÏÖÅÔÅ ÎÁÊÔÉ <a href="%(detailsurl)s">ÚÄÅÓØ</a>.
+
+<p>îÁ ÓÔÒÁÎÉÃÅ <a href="%(viewallurl)s">ðÏÄÒÏÂÎÙÊ ÓÐÉÓÏË ÚÁÐÒÏÓÏ×</a> ×Ù ÎÁÊÄÅÔÅ
+ÄÏÐÏÌÎÉÔÅÌØÎÕÀ ÉÎÆÏÒÍÁÃÉÀ Ï ËÁÖÄÏÍ ÉÚ ÐÅÒÅÞÉÓÌÅÎÎÙÈ ÎÉÖÅ ÓÏÏÂÝÅÎÉÊ.
diff --git a/templates/ru/adminsubscribeack.txt b/templates/ru/adminsubscribeack.txt
new file mode 100644
index 00000000..1f8118dc
--- /dev/null
+++ b/templates/ru/adminsubscribeack.txt
@@ -0,0 +1,2 @@
+%(member)s ÂÙÌ ÕÓÐÅÛÎÏ ÐÏÄÐÉÓÁÎ ÎÁ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ %(listname)s.
+
diff --git a/templates/ru/adminunsubscribeack.txt b/templates/ru/adminunsubscribeack.txt
new file mode 100644
index 00000000..65ec1557
--- /dev/null
+++ b/templates/ru/adminunsubscribeack.txt
@@ -0,0 +1,2 @@
+%(member)s ÂÙÌ ÕÄÁÌÅÎ ÉÚ ÐÏÄÐÉÓÞÉËÏ× ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ %(listname)s.
+
diff --git a/templates/ru/admlogin.html b/templates/ru/admlogin.html
new file mode 100644
index 00000000..d1892ff0
--- /dev/null
+++ b/templates/ru/admlogin.html
@@ -0,0 +1,37 @@
+<html>
+<head>
+ <title>áÕÔÅÎÔÉÆÉËÁÃÉÑ %(who)s ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ %(listname)s</title>
+</head>
+<body bgcolor="#ffffff">
+<FORM METHOD=POST ACTION="%(path)s">
+%(message)s
+ <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1">áÕÔÅÎÔÉÆÉËÁÃÉÑ %(who)s ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ %(listname)s</FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <!-- %(who)s -->
+ <!-- ÈÅ. ÓÌÏ×Ï ÍÏÄÅÒÁÔÏÒ, ÁÄÍÉÎÉÎÓÔÒÁÔÏÒ ÎÁÄÏ ÓËÌÏÎÑÔØ... :( -->
+ <TD><div ALIGN="Right">÷×ÅÄÉÔÅ ÐÁÒÏÌØ %(who)s:</div></TD>
+ <TD><INPUT TYPE="password" NAME="adminpw" SIZE="30"></TD>
+ </tr>
+ <tr>
+ <td colspan=2 align=middle><INPUT type="SUBMIT" name="admlogin" value="îÁÞÁÔØ ÒÁÂÏÔÕ..."></td>
+ </tr>
+ </TABLE>
+ <p><strong><em>÷ÁÖÎÏ</em></strong>: ×Ù ÄÏÌÖÎÙ ÒÁÚÒÅÛÉÔØ ÐÒÉÅÍ ÆÁÊÌÁ cookies,
+ × ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ, ×Ù ÎÅ ÓÍÏÖÅÔÅ ×ÎÅÓÉÔØ ËÁËÉÅ ÂÙ ÔÏ ÎÉ ÂÙÌÏ ÉÚÍÅÎÅÎÉÑ.
+
+ <p>æÁÊÌ cookies ÉÓÐÏÌØÚÕÅÔÓÑ ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÈÒÁÎÉÔØ ÐÁÒÁÍÅÔÒÙ ÓÅÁÎÓÁ ÒÁÂÏÔÙ.
+ ÷ ÞÁÓÔÎÏÓÔÉ, ÐÒÉ ÅÇÏ ÉÓÐÏÌØÚÏ×ÁÎÉÉ ×ÁÍ ÎÅ ÐÏÔÒÅÂÕÅÔÓÑ ××ÏÄÉÔØ ÐÁÒÏÌØ ÐÒÉ
+ ×ÙÐÏÌÎÅÎÉÉ ÌÀÂÏÊ ÁÄÍÉÎÉÓÔÒÁÔÉ×ÎÏÊ ÏÐÅÒÁÃÉÉ. éÎÆÏÒÍÁÃÉÑ, Ó×ÑÚÁÎÎÁÑ Ó
+ ×ÁÛÉÍ ÓÅÁÎÓÏÍ ÒÁÂÏÔÙ, ÂÕÄÅÔ ÕÄÁÌÅÎÁ × ÍÏÍÅÎÔ, ËÏÇÄÁ ×Ù ×ÙÊÄÅÔÅ ÉÚ Ó×ÏÅÇÏ
+ ÂÒÁÕÚÅÒÁ. ÷Ù ÔÁËÖÅ ÍÏÖÅÔÅ Ñ×ÎÙÍ ÏÂÒÁÚÏÍ ÚÁ×ÅÒÛÉÔØ ÒÁÂÏÔÕ, ÝÅÌËÎÕ× ÎÁ
+ ÓÓÙÌËÕ <em>ïÔËÌÀÞÉÔØÓÑ</em> × ÒÁÚÄÅÌÅ <em>Other Administrative
+ Activities</em> (÷Ù Õ×ÉÄÉÔÅ ÅÅ ÐÏÓÌÅ ÐÏÄËÌÀÞÅÎÉÑ Ë ÁÄÍÉÎÉÓÔÒÁÔÉ×ÎÏÍÕ
+ ÉÎÔÅÒÆÅÊÓÕ).
+</FORM>
+</body>
+</html>
diff --git a/templates/ru/approve.txt b/templates/ru/approve.txt
new file mode 100644
index 00000000..262914d2
--- /dev/null
+++ b/templates/ru/approve.txt
@@ -0,0 +1,15 @@
+÷ÁÛ ÚÁÐÒÏÓ, ÏÔÐÒÁ×ÌÅÎÎÙÊ ÐÏ ÁÄÒÅÓÕ %(requestaddr)s:
+
+ %(cmd)s
+
+ÂÙÌ ÐÅÒÅÐÒÁ×ÌÅÎ ÞÅÌÏ×ÅËÕ, ÏÔ×ÅÞÁÀÝÅÍÕ ÚÁ ÜÔÏÔ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ.
+
+üÔÏ, ÓËÏÒÅÅ ×ÓÅÇÏ, Ó×ÑÚÁÎÏ Ó ÔÅÍ, ÞÔÏ ÷Ù ÐÙÔÁÅÔÅÓØ ÐÏÄÐÉÓÁÔØÓÑ ÎÁ
+'ÚÁËÒÙÔÙÊ' ÓÐÉÓÏË ÒÁÓÓÙÌËÉ.
+
+ï ÒÅÛÅÎÉÉ ÷Ù ÂÕÄÅÔÅ ÏÐÏ×ÅÝÅÎÙ ÏÔÄÅÌØÎÙÍ ÐÉÓØÍÏÍ.
+
+÷ÓÅ ×ÏÐÒÏÓÙ, Ó×ÑÚÁÎÎÙÅ Ó ÐÏÌÉÔÉËÏÊ ÄÁÎÎÏÇÏ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ, ÷Ù ÍÏÖÅÔÅ
+ÏÔÐÒÁ×ÉÔØ ÐÏ ÁÄÒÅÓÕ
+
+ %(adminaddr)s.
diff --git a/templates/ru/archidxentry.html b/templates/ru/archidxentry.html
new file mode 100644
index 00000000..19232e54
--- /dev/null
+++ b/templates/ru/archidxentry.html
@@ -0,0 +1 @@
+<LI><A HREF="%(filename)s">%(subject)s</A><A NAME="%(sequence)i">&nbsp;</A><I>%(author)s</I>
diff --git a/templates/ru/archidxfoot.html b/templates/ru/archidxfoot.html
new file mode 100644
index 00000000..6e08a88c
--- /dev/null
+++ b/templates/ru/archidxfoot.html
@@ -0,0 +1,19 @@
+ </ul>
+ <p>
+ <a name="end"><b>äÁÔÁ ÐÏÓÌÅÄÎÅÇÏ ÓÏÏÂÝÅÎÉÑ:</b></a>
+ <i>%(lastdate)s</i><br>
+ <b>áÒÈÉ× ÏÂÎÏ×ÌÅÎ:</b> <i>%(archivedate)s</i>
+ <p>
+ <ul>
+ <li> <b>óÏÒÔÉÒÏ×ÁÔØ ÐÏ:</b>
+ %(thread_ref)s
+ %(subject_ref)s
+ %(author_ref)s
+ %(date_ref)s
+ <li><b><a href="%(listinfo)s">ðÏÄÒÏÂÎÁÑ ÉÎÆÏÒÍÁÃÉÑ Ï ÓÐÉÓËÅ ÒÁÓÓÙÌËÉ...</a></b></li>
+ </ul>
+ <p>
+ <hr>
+ <i>üÔÏÔ ÁÒÈÉ× ÂÙÌ ÓÏÚÄÁÎ ÐÒÏÇÒÁÍÍÏÊ Pipermail %(version)s.</i>
+ </BODY>
+</HTML>
diff --git a/templates/ru/archidxhead.html b/templates/ru/archidxhead.html
new file mode 100644
index 00000000..95d52343
--- /dev/null
+++ b/templates/ru/archidxhead.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+ <HEAD>
+ <title>áÒÈÉ× %(listname)s, ÔÏÍ %(archive)s, ÓÏÏÂÝÅÎÉÑ ÕÐÏÒÑÄÏÞÅÎÙ ÐÏ %(archtype)s</title>
+ <META NAME="robots" CONTENT="noindex,follow">
+ %(encoding)s
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <a name="start"></A>
+ <h1>ôÏÍ %(archive)s, ÓÏÏÂÝÅÎÉÑ ÕÐÏÒÑÄÏÞÅÎÙ ÐÏ %(archtype)s</h1>
+ <ul>
+ <li> <b>óÏÒÔÉÒÏ×ÁÔØ ÐÏ:</b>
+ %(thread_ref)s
+ %(subject_ref)s
+ %(author_ref)s
+ %(date_ref)s
+
+ <li><b><a href="%(listinfo)s">ðÏÄÒÏÂÎÁÑ ÉÎÆÏÒÍÁÃÉÑ Ï ÓÐÉÓËÅ ÒÁÓÓÙÌËÉ...</a></b></li>
+ </ul>
+ <p><b>ðÅÒ×ÏÅ ÓÏÏÂÝÅÎÉÅ:</b> <i>%(firstdate)s</i><br>
+ <b>ðÏÓÌÅÄÎÅÅ ÓÏÏÂÝÅÎÉÅ:</b> <i>%(lastdate)s</i><br>
+ <b>óÏÏÂÝÅÎÉÊ:</b> %(size)s<p>
+ <ul>
diff --git a/templates/ru/archlistend.html b/templates/ru/archlistend.html
new file mode 100644
index 00000000..9bc052dd
--- /dev/null
+++ b/templates/ru/archlistend.html
@@ -0,0 +1 @@
+ </table>
diff --git a/templates/ru/archliststart.html b/templates/ru/archliststart.html
new file mode 100644
index 00000000..edc67efc
--- /dev/null
+++ b/templates/ru/archliststart.html
@@ -0,0 +1,4 @@
+ <table border=3>
+ <tr><td>ôÏÍ ÁÒÈÉ×Á</td>
+ <td>óÏÒÔÉÒÏ×ÁÔØ ÐÏ:</td>
+ <td>÷ÅÒÓÉÑ ÄÌÑ ÚÁÇÒÕÚËÉ</td></tr>
diff --git a/templates/ru/archtoc.html b/templates/ru/archtoc.html
new file mode 100644
index 00000000..4719053f
--- /dev/null
+++ b/templates/ru/archtoc.html
@@ -0,0 +1,19 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+ <HEAD>
+ <title>áÒÈÉ× %(listname)s</title>
+ <META NAME="robots" CONTENT="noindex,follow">
+ %(meta)s
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <h1>áÒÈÉ× %(listname)s</h1>
+ <p><a href="%(listinfo)s">úÄÅÓØ</a> ×Ù ÎÁÊÄÅÔÅ ÉÎÆÏÒÍÁÃÉÀ Ï ÓÐÉÓËÅ
+ ÒÁÓÓÙÌËÉ. ÷Ù ÔÁËÖÅ ÍÏÖÅÔÅ <a href="%(fullarch)s">ÚÁÇÒÕÚÉÔØ</a> ×ÅÓØ
+ ÁÒÈÉ× × ÆÏÒÍÁÔÅ mbox (%(size)s).
+ </p>
+ %(noarchive_msg)s
+ %(archive_listing_start)s
+ %(archive_listing)s
+ %(archive_listing_end)s
+ </BODY>
+ </HTML>
diff --git a/templates/ru/archtocentry.html b/templates/ru/archtocentry.html
new file mode 100644
index 00000000..9efa5a9c
--- /dev/null
+++ b/templates/ru/archtocentry.html
@@ -0,0 +1,12 @@
+
+ <tr>
+ <td>%(archivelabel)s:</td>
+ <td>
+ <A href="%(archive)s/thread.html">[ ÐÏ ÄÉÓËÕÓÓÉÑÍ ]</a>
+ <A href="%(archive)s/subject.html">[ ÐÏ ÔÅÍÅ ]</a>
+ <A href="%(archive)s/author.html">[ ÐÏ Á×ÔÏÒÕ ]</a>
+ <A href="%(archive)s/date.html">[ ÐÏ ÄÁÔÅ ]</a>
+ </td>
+ %(textlink)s
+ </tr>
+
diff --git a/templates/ru/article.html b/templates/ru/article.html
new file mode 100644
index 00000000..bd6bc0d4
--- /dev/null
+++ b/templates/ru/article.html
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+ <HEAD>
+ <TITLE> %(title)s
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:%(email_url)s?Subject=%(subject_url)s&In-Reply-To=%(in_reply_to_url)s">
+ <META NAME="robots" CONTENT="index,nofollow">
+ %(encoding)s
+ %(prev)s
+ %(next)s
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>%(subject_html)s</H1>
+ <B>%(author_html)s</B>
+ <A HREF="mailto:%(email_url)s?Subject=%(subject_url)s&In-Reply-To=%(in_reply_to_url)s"
+ TITLE="%(subject_html)s">%(email_html)s
+ </A><BR>
+ <I>%(datestr_html)s</I>
+ <P><UL>
+ %(prev_wsubj)s
+ %(next_wsubj)s
+ <LI> <B>óÏÏÂÝÅÎÉÑ, ÕÐÏÒÑÄÏÞÅÎÎÙÅ ÐÏ:</B>
+ <a href="date.html#%(sequence)s">[ ÄÁÔÅ ]</a>
+ <a href="thread.html#%(sequence)s">[ ÄÉÓËÕÓÓÉÉ ]</a>
+ <a href="subject.html#%(sequence)s">[ ÔÅÍÅ ]</a>
+ <a href="author.html#%(sequence)s">[ Á×ÔÏÒÕ ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+%(body)s
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ %(prev_wsubj)s
+ %(next_wsubj)s
+ <LI> <B>óÏÏÂÝÅÎÉÑ, ÕÐÏÒÑÄÏÞÅÎÎÙÅ ÐÏ:</B>
+ <a href="date.html#%(sequence)s">[ ÄÁÔÅ ]</a>
+ <a href="thread.html#%(sequence)s">[ ÄÉÓËÕÓÓÉÉ ]</a>
+ <a href="subject.html#%(sequence)s">[ ÔÅÍÅ ]</a>
+ <a href="author.html#%(sequence)s">[ Á×ÔÏÒÕ ]</a>
+ </LI>
+ </UL>
+<hr>
+<a href="%(listurl)s">ðÏÄÒÏÂÎÁÑ ÉÎÆÏÒÍÁÃÉÑ Ï ÓÐÉÓËÅ ÒÁÓÓÙÌËÉ %(listname)s</a><br>
+</body></html>
diff --git a/templates/ru/bounce.txt b/templates/ru/bounce.txt
new file mode 100644
index 00000000..62816836
--- /dev/null
+++ b/templates/ru/bounce.txt
@@ -0,0 +1,13 @@
+üÔÏ ÉÚ×ÅÝÅÎÉÅ ÏÔ ÏÂÒÁÂÏÔÞÉËÁ ÏÛÉÂÏË ÐÒÏÇÒÁÍÍÙ Mailman:
+
+ óÐÉÓÏË ÒÁÓÓÙÌËÉ: %(listname)s
+ ðÏÄÐÉÓÞÉË: %(addr)s
+ äÅÊÓÔ×ÉÅ: ÐÏÄÐÉÓËÁ %(negative)s%(did)s.
+ ðÒÉÞÉÎÁ: ðÏ×ÔÏÒÎÁÑ ÉÌÉ ËÒÉÔÉÞÅÓËÁÑ ÏÛÉÂËÁ.
+ %(but)s
+
+%(reenable)s
+óÏÏÂÝÅÎÉÅ, ×ÙÚ×Á×ÛÅÅ ÄÁÎÎÕÀ ÒÅÁËÃÉÀ, ÷Ù ÍÏÖÅÔÅ ÎÁÊÔÉ ÎÉÖÅ.
+
+åÓÌÉ Õ ÷ÁÓ ×ÏÚÎÉËÌÉ ×ÏÐÒÏÓÙ, ÷Ù ÍÏÖÅÔÅ ÚÁÄÁÔØ ÉÈ, ÏÔÐÒÁ×É× ÐÉÓØÍÏ ÐÏ
+ÁÄÒÅÓÕ %(owneraddr)s.
diff --git a/templates/ru/checkdbs.txt b/templates/ru/checkdbs.txt
new file mode 100644
index 00000000..944b2d10
--- /dev/null
+++ b/templates/ru/checkdbs.txt
@@ -0,0 +1,9 @@
+÷ ÏÞÅÒÅÄÉ ÚÁÐÒÏÓÏ× ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ %(real_name)s@%(host_name)s ÎÁÈÏÄÑÔÓÑ
+%(count)d ÚÁÐÒÏÓÏ×. ÷Ù ÍÏÖÅÔÅ ÐÒÏÓÍÏÔÒÅÔØ ÐÒÏÓÍÏÔÒÅÔØ ÏÞÅÒÅÄØ, ÐÏÓÅÔÉ×
+ÓÔÒÁÎÉÃÕ
+
+ %(adminDB)s
+
+ðÏÖÁÌÕÊÓÔÁ, ÏÂÒÁÂÏÔÁÊÔÅ ÜÔÉ ÚÁÐÒÏÓÙ ËÁË ÔÏÌØËÏ Õ ×ÁÓ ÐÏÑ×ÉÔÓÑ ×ÏÚÍÏÖÎÏÓÔØ.
+üÔÏ ÏÐÏ×ÅÝÅÎÉÅ Ï ÎÅÏÂÒÁÂÏÔÁÎÎÙÈ ÚÁÐÒÏÓÁÈ, ÅÓÌÉ ÔÁËÏ×ÙÅ ÐÒÉÓÕÔÓÔ×ÕÀÔ, ÂÕÄÅÔ
+ÐÒÉÓÙÌÁÔØÓÑ ËÁÖÄÙÊ ÄÅÎØ.
diff --git a/templates/ru/convert.txt b/templates/ru/convert.txt
new file mode 100644
index 00000000..5ad40f18
--- /dev/null
+++ b/templates/ru/convert.txt
@@ -0,0 +1,33 @@
+óÐÉÓÏË ÒÁÓÓÙÌËÉ %(listname)s ÐÒÅÔÅÒÐÅÌ ÚÎÁÞÉÔÅÌØÎÙÅ ÉÚÍÅÎÅÎÉÑ. ôÅÐÅÒØ
+ÏÎ ÎÁÈÏÄÉÔÓÑ ÐÏÄ ÕÐÒÁ×ÌÅÎÉÅÍ ÐÒÏÇÒÁÍÍÙ "Mailman". üÔÏ ÂÙÌÏ ÓÄÅÌÁÎÏ ×
+ÎÁÄÅÖÄÅ, ÞÔÏ ÁÄÍÉÎÉÓÔÒÉÒÏ×ÁÎÉÅ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ ÕÐÒÏÓÔÉÔÓÑ.
+
+þÔÏ ×ÁÍ ×ÁÖÎÏ ÕÚÎÁÔØ?
+
+1) ðÉÓØÍÁ × ÓÐÉÓÏË ÒÁÓÓÙÌËÉ ÄÏÌÖÎÙ ÏÔÐÒÁ×ÌÑÔØÓÑ ÐÏ ÁÄÒÅÓÕ: %(listaddr)s.
+
+2) ÷ÁÍ ÂÙÌ ÎÁÚÎÁÞÅÎ ÓÌÕÞÁÊÎÙÊ ÐÁÒÏÌØ; ÜÔÏ ÐÏÚ×ÏÌÉÔ ÉÓËÌÀÞÉÔØ ÓÉÔÕÁÃÉÀ,
+ËÏÇÄÁ ËÔÏ-ÎÉÂÕÄØ ÐÒÅËÒÁÔÉÌ ×ÁÛÕ ÐÏÄÐÉÓËÕ ÂÅÚ ×ÁÛÅÇÏ ÎÁ ÔÏ ÖÅÌÁÎÉÑ.
+üÔÏÔ ÐÁÒÏÌØ ÂÕÄÅÔ ×ÁÍ ÏÔÐÒÁ×ÌÅÎ ÏÔÄÅÌØÎÙÍ ÐÉÓØÍÏÍ, ËÏÔÏÒÏÅ, ×ÏÚÍÏÖÎÏ,
+÷Ù ÕÖÅ ÐÏÌÕÞÉÌÉ. îÅ ×ÏÌÎÕÊÔÅÓØ: ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÷Ù ÎÅ ÚÁÂÙÌÉ ÐÁÒÏÌØ,
+ÓÉÓÔÅÍÁ ÂÕÄÅÔ ×ÁÍ ÅÇÏ ÐÒÉÓÙÌÁÔØ × ÎÁÞÁÌÅ ËÁÖÄÏÇÏ ÍÅÓÑÃÁ.
+
+3) åÓÌÉ Õ ×ÁÓ ÅÓÔØ ÎÅÐÏÓÒÅÄÓÔ×ÅÎÎÙÊ ÄÏÓÔÕÐ × éÎÔÅÒÎÅÔ, ÷Ù ÍÏÖÅÔÅ ÉÍ
+×ÏÓÐÏÌØÚÏ×ÁÔØÓÑ ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÉÚÍÅÎÑÔØ ÐÁÒÁÍÅÔÒÙ Ó×ÏÅÊ ÐÏÄÐÉÓËÉ, Á
+ÔÁËÖÅ ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÏÔËÁÚÁÔØÓÑ ÏÔ ÐÏÄÐÉÓËÉ ÎÁ ÜÔÏÔ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ.
+áÄÒÅÓ ÓÔÒÁÎÉÃÙ ÐÁÒÁÍÅÔÒÏ× ×ÁÛÅÊ ÐÏÄÐÉÓËÉ:
+
+ %(listinfo_url)s
+
+4) åÓÌÉ Õ ×ÁÓ ÎÅÔ ÄÏÓÔÕÐÁ Ë éÎÔÅÒÎÅÔÕ, ÷Ù ÍÏÖÅÔÅ ÐÒÏÉÚ×ÏÄÉÔØ ÔÅ ÖÅ
+ÄÅÊÓÔ×ÉÑ ÐÒÉ ÐÏÍÏÝÉ ÜÌÅËÔÒÏÎÎÏÊ ÐÏÞÔÙ. ïÔÐÒÁרÔÅ ÐÏ ÁÄÒÅÓÕ
+%(requestaddr)s ÐÉÓØÍÏ, × ÔÅÍÅ ÉÌÉ ÔÅÌÅ ËÏÔÏÒÏÇÏ ÎÅÏÂÈÏÄÉÍÏ ÎÁÐÉÓÁÔØ
+ÓÌÏ×Ï "help" (ÂÅÚ ËÁ×ÙÞÅË). ÷ ÏÔ×ÅÔ ÷Ù ÐÏÌÕÞÉÔÅ Á×ÔÏÍÁÔÉÞÅÓËÉÊ ÏÔ×ÅÔ,
+× ËÏÔÏÒÏÍ ÂÕÄÕÔ ÐÒÉ×ÅÄÅÎÙ ÄÁÌØÎÅÊÛÉÅ ÉÎÓÔÒÕËÃÉÉ.
+
+÷ÓÅ ×ÏÐÒÏÓÙ ÉÌÉ ÐÒÏÂÌÅÍÙ ÷Ù ÍÏÖÅÔÅ ÁÄÒÅÓÏ×ÁÔØ ÁÄÍÉÎÉÓÔÒÁÔÏÒÕ ÐÏ ÁÄÒÅÓÕ
+%(adminaddr)s.
+
+üÔÏ ÓÏÏÂÝÅÎÉÅ ÂÙÌÏ Á×ÔÏÍÁÔÉÞÅÓËÉ ÏÔÐÒÁ×ÌÅÎÏ ÐÒÏÇÒÁÍÍÏÊ Mailman, ×ÅÒÓÉÉ
+%(version)s. âÏÌÅÅ ÐÏÌÎÕÀ ÉÎÆÏÒÍÁÃÉÀ Ï ÜÔÏÊ ÐÒÏÇÒÁÍÍÅ ÷Ù ÍÏÖÅÔÅ
+ÎÁÊÔÉ ÐÏ ÁÄÒÅÓÕ http://www.list.org/
diff --git a/templates/ru/cronpass.txt b/templates/ru/cronpass.txt
new file mode 100644
index 00000000..7bbbe6bb
--- /dev/null
+++ b/templates/ru/cronpass.txt
@@ -0,0 +1,19 @@
+üÔÏ ÏÔÐÒÁ×ÌÑÅÍÏÅ ÒÁÚ × ÍÅÓÑà ÓÏÏÂÝÅÎÉÅ ÓÏÄÅÒÖÉÔ ÉÎÆÏÒÍÁÃÉÀ Ï ÷ÁÛÅÊ
+ÐÏÄÐÉÓËÅ ÎÁ ÓÐÉÓËÉ ÒÁÓÓÙÌËÉ, ÒÁÓÐÏÌÏÖÅÎÎÏÍ ÎÁ ÍÁÛÉÎÅ %(hostname)s.
+úÄÅÓØ ÔÁËÖÅ ÓÏÏÂÝÁÅÔÓÑ Ï ÔÏÍ, ËÁË ÐÏÌÕÞÉÔØ ÂÏÌÅÅ ÐÏÄÒÏÂÎÕÀ ÉÎÆÏÒÍÁÃÉÀ
+Ï ÷ÁÛÅÊ ÐÏÄÐÉÓËÅ, ËÁË ÉÚÍÅÎÉÔØ ÅÅ ÐÁÒÁÍÅÔÒÙ, Á ÔÁËÖÅ ËÁË ÅÅ ÕÄÁÌÉÔØ.
+
+äÌÑ ÉÚÍÅÎÅÎÉÑ ÐÁÒÁÍÅÔÒÏ× Ó×ÏÅÊ ÐÏÄÐÉÓËÉ, ÷Ù ÍÏÖÅÔÅ ×ÏÓÐÏÌØÚÏ×ÁÔØÓÑ
+ÕËÁÚÁÎÎÙÍÉ ÓÔÒÁÎÉÃÁÍÉ.
+
+äÌÑ ×ÙÐÏÌÅÎÅÎÉÑ ÔÅÈ ÖÅ ÄÅÊÓÔ×ÉÊ ×Ù ÍÏÖÅÔÅ ×ÏÓÐÏÌØÚÏ×ÁÔØÓÑ ÜÌÅËÔÒÏÎÎÏÊ
+ÐÏÞÔÏÊ. äÌÑ ÐÏÌÕÞÅÎÉÑ ÐÏÌÎÏÊ ÉÎÆÏÒÍÁÃÉÉ Ï ÜÔÏÊ ×ÏÚÍÏÖÎÏÓÔÉ, ÐÏ
+ÁÄÒÅÓÕ '-request' (ÎÁÐÒÉÍÅÒ, %(exreq)s) ÏÔÐÒÁרÔÅ ÐÉÓØÍÏ, × ÔÅÌÅ
+ËÏÔÏÒÏÇÏ ÕËÁÖÉÔÅ ÓÌÏ×Ï 'help'. ÷ ÏÔ×ÅÔ ÐÏÞÔÏ×ÙÊ ÓÅÒ×ÅÒ ×ÁÍ ÐÒÉÛÌÅÔ
+ÐÉÓØÍÏ Ó ÐÏÄÒÏÂÎÏÊ ÉÎÓÔÒÕËÃÉÅÊ.
+
+åÓÌÉ Õ ×ÁÓ ×ÏÚÎÉËÌÉ ×ÏÐÒÏÓÙ, ÷Ù ÍÏÖÅÔÅ ÚÁÄÁÔØ ÉÈ, ÏÔÐÒÁ×É× ÐÉÓØÍÏ ÐÏ
+ÁÄÒÅÓÕ %(owner)s.
+
+ðÁÒÏÌÉ ÄÌÑ %(useraddr)s:
+
diff --git a/templates/ru/disabled.txt b/templates/ru/disabled.txt
new file mode 100644
index 00000000..938b8f0f
--- /dev/null
+++ b/templates/ru/disabled.txt
@@ -0,0 +1,23 @@
+÷ÁÛÁ ÐÏÄÐÉÓËÁ ÎÁ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ %(listname)s ÐÒÉÏÓÔÁÎÏ×ÌÅÎÁ
+%(reason)s. üÔÏ ÏÚÎÁÞÁÅÔ, ÞÔÏ ÷Ù
+ÎÅ ÂÕÄÅÔÅ ÐÏÌÕÞÁÔØ ÐÉÓÅÍ ÜÔÏÇÏ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ, ÐÏËÁ ÷Ù ÎÅ ×ÏÚÏÂÎÏ×ÉÔÅ
+ÐÏÄÐÉÓËÕ. ðÅÒÅÄ ÔÅÍ ËÁË ×ÁÛÁ ÐÏÄÐÉÓËÁ ÎÁ ÜÔÏÔ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ ÂÕÄÅÔ
+ÐÏÌÎÏÓÔØÀ ÐÒÅËÒÁÝÅÎÁ, ÷Ù ÐÏÌÕÞÉÔÅ ÅÝÅ %(noticesleft)s ÓÏÏÂÝÅÎÉÊ,
+ÐÏÄÏÂÎÙÈ ÜÔÏÍÕ.
+
+äÌÑ ÔÏÇÏ, ÞÔÏÂÙ ×ÏÚÏÂÎÏ×ÉÔØ ÐÏÄÐÉÓËÕ, ×ÁÍ ÄÏÓÔÁÔÏÞÎÏ ÏÔ×ÅÔÉÔØ ÎÁ ÜÔÏ ÐÉÓØÍÏ,
+ÎÅ ÉÚÍÅÎÑÑ ÐÏÌÅ ÔÅÍÙ ÐÉÓØÍÁ. ÷Ù ÔÁËÖÅ ÍÏÖÅÔÅ ÓÄÅÌÁÔØ ÜÔÏ, ÐÏÓÅÔÉ× ÓÔÒÁÎÉÃÕ
+
+ %(confirmurl)s
+
+îÁ ÓÔÒÁÎÉÃÅ
+
+ %(optionsurl)s
+
+÷Ù ÍÏÖÅÔÅ ÎÁÊÔÉ ÐÁÒÁÍÅÔÒÙ Ó×ÏÅÊ ÐÏÄÐÉÓËÉ. îÁ ×ÓÑËÉÊ ÓÌÕÞÁÊ, ÐÁÒÏÌØ ×ÁÛÅÊ
+ÐÏÄÐÉÓËÉ
+
+ %(password)s
+
+åÓÌÉ Õ ÷ÁÓ ×ÏÚÎÉËÌÉ ×ÏÐÒÏÓÙ, ÷Ù ÍÏÖÅÔÅ ÚÁÄÁÔØ ÉÈ, ÏÔÐÒÁ×É× ÐÉÓØÍÏ ÐÏ
+ÁÄÒÅÓÕ %(owneraddr)s.
diff --git a/templates/ru/emptyarchive.html b/templates/ru/emptyarchive.html
new file mode 100644
index 00000000..deea75c9
--- /dev/null
+++ b/templates/ru/emptyarchive.html
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+ <HEAD>
+ <title>áÒÈÉ× ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ %(listname)s</title>
+ <META NAME="robots" CONTENT="noindex,follow">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <h1>áÒÈÉ× ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ %(listname)s</h1>
+ <p>÷ ÜÔÏÔ ÓÐÉÓÏË ÐÏËÁ ÅÝÅ ÎÅ ÂÙÌÏ ÏÔÐÒÁ×ÌÅÎÏ ÎÉ ÏÄÎÏÇÏ ÓÏÏÂÝÅÎÉÑ, ËÁË
+ ÒÅÚÕÌØÔÁÔ, ÁÒÈÉ× ÐÕÓÔ. ðÏËÁ ×Ù ÍÏÖÅÔÅ ÐÏÞÉÔÁÔØ <a href="%(listinfo)s">ÏÂÝÕÀ
+ ÉÎÆÏÍÁÃÉÀ Ï ÓÐÉÓËÅ ÒÁÓÓÙÌËÉ</a>.
+ </p>
+ </BODY>
+ </HTML>
diff --git a/templates/ru/headfoot.html b/templates/ru/headfoot.html
new file mode 100644
index 00000000..5a39b0bd
--- /dev/null
+++ b/templates/ru/headfoot.html
@@ -0,0 +1,23 @@
+üÔÏÔ ÔÅËÓÔ ÍÏÖÅÔ ×ËÌÀÞÁÔØ <a
+href="http://www.python.org/doc/current/lib/typesseq-strings.html">ÆÏÒÍÁÔÎÙÅ
+ÓÔÒÏËÉ (ÔÅËÓÔ ÐÏ-ÁÎÇÌÉÊÓËÉ)</a>, ËÏÔÏÒÙÅ ÒÁÚÒÅÛÁÀÔÓÑ ÏÔÎÏÓÉÔÅÌØÎÏ ÓÐÉÓËÁ
+ÁÔÒÉÂÕÔÏ×. óÐÉÓËÏ ÁÔÒÉÂÕÔÏ× ÐÅÒÅÞÉÓÌÅÎ ÎÉÖÅ.
+
+<ul>
+ <li><b><code>real_name</code></b> -- "ËÒÁÓÉ×ÏÅ" ÉÍÑ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ;
+ ÏÂÙÞÎÏ ÉÍÑ ÓÐÉÓËÁ ÒÁÓÓÙËÌÉ Ó ÚÁÇÌÁ×ÎÏÊ ÐÅÒ×ÏÊ ÂÕË×ÏÊ.
+
+ <li><b><code>list_name</code></b> -- ÉÍÑ, ËÏÔÏÒÏÅ ÉÓÐÏÌØÚÕÅÔÓÑ × ÁÄÒÅÓÁÈ
+ ÓÔÒÁÎÉÃ. (<code>_internal_name</code> Ñ×ÌÑÅÔÓÑ ÜË×É×ÁÌÅÎÔÎÏÊ, ÄÌÑ
+ ÓÏ×ÍÅÓÔÉÍÏÓÔÉ Ó ÐÒÅÄÙÄÕÝÉÍÉ ×ÅÒÓÉÑÍÉ.)
+
+ <li><b><code>host_name</code></b> -- ÐÏÌÎÏÅ ÎÁÚ×ÁÎÉÅ ÄÏÍÅÎÁ ÄÌÑ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ.
+
+ <li><b><code>web_page_url</code></b> -- ÂÁÚÏ×ÙÊ ÁÄÒÅÓ ÄÌÑ Mailman. éÍÅÎÎÏ Ë ÜÔÏÍÕ
+ ÁÄÒÅÓÕ ÎÕÖÎÏ ÄÏÂÁ×ÌÑÔØ, ÎÁÐÒÉÍÅÒ, <em><code>listinfo/%(internal_name)s</code></em>
+ ÞÔÏÂÙ ÐÏÌÕÞÉÔØÓÑ ÁÄÒÅÓ ÉÎÆÏÒÍÁÃÉÏÎÎÏÊ ÓÔÒÁÎÉÃÙ ÄÌÑ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ.
+
+ <li><b><code>description</code></b> - ËÒÁÔËÏÅ ÏÐÉÓÁÎÉÅ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ.
+ <li><b><code>info</code></b> - ÐÏÌÎÏÅ ÏÐÉÓÁÎÉÅ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ.
+ <li><b><code>cgiext</code></b> - ÒÁÓÛÉÒÅÎÉÅ ÆÁÊÌÏ× CGI-ÓÃÅÎÁÒÉÅ×.
+</ul>
diff --git a/templates/ru/help.txt b/templates/ru/help.txt
new file mode 100644
index 00000000..1d150c77
--- /dev/null
+++ b/templates/ru/help.txt
@@ -0,0 +1,33 @@
+éÎÆÏÒÍÁÃÉÑ Ï ÓÐÉÓËÅ ÒÁÓÓÙÌËÉ %(listname)s:
+
+üÔÏ ÐÉÓØÍÏ ÓÏÄÅÒÖÉÔ ÉÎÆÏÒÍÁÃÉÀ Ï ËÏÍÁÎÄÁÈ ÐÒÏÇÒÁÍÍÙ ÕÐÒÁ×ÌÅÎÉÑ
+ÓÐÉÓËÁÍÉ ÒÁÓÓÙÌËÉ Mailman, ×ÅÒÓÉÉ %(version)s. îÉÖÅÐÒÉ×ÅÄÅÎÎÙÅ
+ËÏÍÁÎÄÙ ÐÏÚ×ÏÌÑÔ ÷ÁÍ ÐÏÌÕÞÉÔØ ÉÎÆÏÒÍÁÃÉÀ É ÕÐÒÁ×ÌÑÔØ Ó×ÏÅÊ ÐÏÄÐÉÓËÏÊ
+ÎÁ ÓÐÉÓËÉ ÒÁÓÓÙÌËÉ, ÄÏÓÔÕÐÎÙÅ ÎÁ ÜÔÏÍ ÓÁÊÔÅ. ÷Ù ÍÏÖÅÔÅ ÕËÁÚÙ×ÁÔØ
+ËÏÍÁÎÄÙ ËÁË × ÔÅÌÅ ÐÉÓØÍÁ, ÔÁË É × ÔÅÍÅ ÓÏÏÂÝÅÎÉÑ.
+
+ïÂÒÁÔÉÔÅ ÔÁËÖÅ ×ÎÉÍÁÎÉÅ, ÞÔÏ ÂÏÌØÛÉÎÓÔ×Ï ÄÅÊÓÔ×ÉÊ ÍÏÖÅÔ ÂÙÔØ ÔÁËÖÅ
+×ÙÐÏÌÎÅÎÏ Ó ÐÏÍÏÝØÀ ×ÅÂ-ÉÎÔÅÒÆÅÊÓÁ, ÄÏÓÔÕÐÎÏÇÏ ÐÏ ÁÄÒÅÓÕ
+
+ %(listinfo_url)s
+
+÷ ÞÁÓÔÎÏÓÔÉ, ÷Ù ÍÏÖÅÔÅ ×ÏÓÐÏÌØÚÏ×ÁÔØÓÑ ÜÔÏÊ ×ÏÚÍÏÖÎÏÓÔØÀ ÄÌÑ ÔÏÇÏ,
+ÞÔÏÂÙ ÏÔÐÒÁ×ÉÔØ ÷ÁÛ ÐÁÒÏÌØ ÐÏ ÁÄÒÅÓÕ, ËÏÔÏÒÙÊ ÷Ù ÉÓÐÏÌØÚÏ×ÁÌÉ ÐÒÉ
+ÐÏÄÐÉÓËÅ.
+
+ëÏÍÁÎÄÙ, ÏÔÎÏÓÑÝÉÅÓÑ Ë ËÏÎËÒÅÔÎÏÍÕ ÓÐÉÓËÕ ÒÁÓÓÙÌËÉ (subscribe, who,
+É Ô.Ð.) ÄÏÌÖÎÙ ÏÔÐÒÁ×ÌÑÔØÓÑ ÎÁ ÁÄÒÅÓ *-request ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÇÏ
+ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ. îÁÐÒÉÍÅÒ, ÄÌÑ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ `mailman' ×Ù ÄÏÌÖÎÙ
+ÉÓÐÏÌØÚÏ×ÁÔØ `mailman-request@...'.
+
+éÓÐÏÌØÚÕÅÍÙÅ ÓÏÇÌÁÛÅÎÉÑ. ôÅËÓÔ × "<>" Ñ×ÌÑÅÔÓÑ ÏÂÑÚÁÔÅÌØÎÙÍ, ÔÏÇÄÁ
+ËÁË ÔÅËÓÔ × "[]" Ñ×ÌÑÅÔÓÑ ÎÅÏÂÑÚÁÔÅÌØÎÙÍ. óÉÍ×ÏÌÙ "<>" É "[]"
+ÎÕÖÎÏ ÏÐÕÓËÁÔØ.
+
+äÏÐÕÓÔÉÍÙ ÓÌÅÄÕÀÝÉÅ ËÏÍÁÎÄÙ:
+
+ %(commands)s
+
+÷ÓÅ ÜÔÉ ËÏÍÁÎÄÙ ÷Ù ÄÏÌÖÎÙ ÏÔÐÒÁ×ÌÑÔØ ÐÏ ÁÄÒÅÓÕ %(requestaddr)s
+
+÷ÏÐÒÏÓÙ É ÚÁÍÅÞÁÎÉÑ ÷Ù ÍÏÖÅÔÅ ÏÔÐÒÁ×ÉÔØ ÐÏ ÁÄÒÅÓÕ %(adminaddr)s
diff --git a/templates/ru/invite.txt b/templates/ru/invite.txt
new file mode 100644
index 00000000..741a9135
--- /dev/null
+++ b/templates/ru/invite.txt
@@ -0,0 +1,22 @@
+äÌÑ ×ÁÛÅÇÏ ÁÄÒÅÓÁ -- %(email)s -- ÂÙÌ ÐÏÌÕÞÅÎÏ ÐÒÉÇÌÁÛÅÎÉÅ ÐÏÄÐÉÓÁÔØÓÑ
+ÎÁ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ %(listaddr)s. äÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÐÏÄÐÉÓÁÔØÓÑ ÎÁ ÜÔÏÔ
+ÓÐÉÓÏË ÒÁÓÓÙÌËÉ, ×Ù ÄÏÌÖÎÙ ×ÙÐÏÌÎÉÔØ ÏÄÎÕ ÉÚ ÓÌÅÄÕÀÝÉÈ ÏÐÅÒÁÃÉÊ.
+
+ðÏÓÅÔÉÔØ ÓÔÒÁÎÉÃÕ
+
+ %(confirmurl)s
+
+éÌÉ ÖÅ ÐÏ ÁÄÒÅÓÕ %(requestaddr)s ÷Ù ÍÏÖÅÔÅ ÏÔÐÒÁ×ÉÔØ ÐÉÓØÍÏ, × ÔÅÌÅ
+ËÏÔÏÒÏÇÏ ×ÁÍ ÎÅÏÂÈÏÄÉÍÏ ÕËÁÚÁÔØ (ÜÔÏ ÄÏÌÖÎÁ ÂÙÔØ ÅÄÉÎÓÔ×ÅÎÎÁÑ ÓÔÒÏÞËÁ
+×ÁÛÅÇÏ ÐÉÓØÍÁ):
+
+ confirm %(cookie)s
+
+éÌÉ ÖÅ ÐÒÏÓÔÏ ÏÔ×ÅÔÉÔØ ÎÁ ÜÔÏ ÐÉÓØÍÏ, ÞÔÏ ÄÏÌÖÎÏ ÂÙÔØ ÄÏÓÔÁÔÏÞÎÏ,
+ÐÏÓËÏÌØËÕ ÂÏÌØÛÉÎÓÔ×Ï ÓÏ×ÒÅÍÅÎÎÙÈ ÐÒÏÇÒÁÍÍ ÄÌÑ ÒÁÂÏÔÙ Ó ÜÌÅËÔÒÏÎÎÏÊ
+ÐÏÞÔÙ, ÏÓÔÁ×ÌÑÀÔ ÔÅÍÕ ÐÉÓØÍÁ ÎÅÉÚÍÅÎÎÏÊ (ÄÏÂÁ×ÌÅÎÉÅ "Re:" ÉÌÉ "îÁ:"
+ÎÅ ×ÌÉÑÅÔ ÎÁ ÒÅÚÕÌØÔÁÔ).
+
+åÓÌÉ ÷Ù ÎÅ ÖÅÌÁÅÔÅ ÐÏÄÐÉÓÙ×ÁÔØÓÑ ÎÁ ÜÔÏÔ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ, ×ÁÍ ÎÅ ÎÕÖÎÏ
+ÎÉÞÅÇÏ ÄÅÌÁÔØ, ÐÒÏÓÔÏ ÐÒÏÉÇÎÏÒÉÒÕÊÔÅ ÜÔÏ ÓÏÏÂÝÅÎÉÅ. åÓÌÉ Õ ×ÁÓ ×ÏÚÎÉËÌÉ
+×ÏÐÒÏÓÙ, ÷Ù ÍÏÖÅÔÅ ÏÔÐÒÁ×ÉÔØ ÉÈ ÐÏÄ ÁÄÒÅÓÕ %(listadmin)s.
diff --git a/templates/ru/listinfo.html b/templates/ru/listinfo.html
new file mode 100644
index 00000000..cd90d9ab
--- /dev/null
+++ b/templates/ru/listinfo.html
@@ -0,0 +1,132 @@
+<!-- $Revision: 5895 $ -->
+<HTML>
+<HEAD>
+ <TITLE>ïÂÝÁÑ ÉÎÆÏÒÍÁÃÉÑ Ï ÓÐÉÓËÅ ÒÁÓÓÙÌËÉ <MM-List-Name></TITLE>
+</HEAD>
+<BODY BGCOLOR="#ffffff">
+ <P>
+ <TABLE COLS="1" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1"><MM-List-Name> &mdash; <MM-List-Description></FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <p>&nbsp;
+ </td>
+ </tr>
+ <tr>
+ <TD COLSPAN="1" WIDTH="100%" BGCOLOR="#FFF0D0"><B><FONT COLOR="#000000">ï ÓÐÉÓËÅ ÒÁÓÓÙÌËÉ <MM-List-Name></FONT></B></TD>
+ <TD COLSPAN="1" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <MM-lang-form-start><MM-displang-box> <MM-list-langs>
+ <MM-form-end>
+ <MM-Subscribe-Form-Start>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <P><MM-List-Info></P>
+ <p>äÌÑ ÐÏÉÓËÁ ÎÅÏÂÈÏÄÉÍÏÊ ×ÁÍ ÉÎÆÏÒÍÁÃÉÉ, ×Ù ÍÏÖÅÔÅ ×ÏÓÐÏÌØÚÏ×ÁÔØÓÑ <MM-Archive>ÁÒÈÉ×ÏÍ ÓÏÏÂÝÅÎÉÊ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ <MM-List-Name></MM-Archive>.
+ <MM-Restricted-List-Message></p>
+ </TD>
+ </TR>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0"><B><FONT COLOR="#000000">ëÁË ÐÏÌØÚÏ×ÁÔØÓÑ ÓÐÉÓËÏÍ ÒÁÓÓÙÌËÉ <MM-List-Name></FONT></B></TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ äÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÏÔÐÒÁ×ÉÔØ ÓÏÏÂÝÅÎÉÅ ×ÓÅÍ ÐÏÄÐÉÓÞÉËÁÍ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ, ÏÔÐÒÁרÔÅ ÓÏÏÂÝÅÎÉÅ
+ ÐÏ ÁÄÒÅÓÕ <A HREF="mailto:<MM-Posting-Addr>"><MM-Posting-Addr></A>.
+
+ <p>îÉÖÅ ÐÒÉ×ÅÄÅÎÁ ÉÎÆÏÒÍÁÃÉÑ Ï ÔÏÍ, ËÁË ×Ù ÍÏÖÅÔÅ ÐÏÄÐÉÓÁÔØÓÑ ÎÁ ÜÔÏÔ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ
+ ÉÌÉ ÉÚÍÅÎÉÔØ ÐÁÒÁÍÅÔÒÙ Ó×ÏÅÊ ÐÏÄÐÉÓËÉ</p>
+ </td>
+ </tr>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000">ðÏÄÐÉÓÁÔØÓÑ ÎÁ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ <MM-List-Name></FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <P>
+ äÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÐÏÄÐÉÓÁÔØÓÑ ÎÁ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ <MM-List-Name>, ÚÁÐÏÌÎÉÔÅ ÓÌÅÄÕÀÝÕÀ ÆÏÒÍÕ.
+ <MM-List-Subscription-Msg>
+ <ul>
+ <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"
+ WIDTH="70%" HEIGHT= "112">
+ <TR>
+ <TD BGCOLOR="#dddddd" WIDTH="55%">÷ÁÛ ÜÌÅËÔÒÏÎÎÙÊ ÁÄÒÅÓ:</TD>
+ <TD WIDTH="33%"><MM-Subscribe-Box>
+ </TD>
+ <TD WIDTH="12%">&nbsp;</TD></TR>
+ <tr>
+ <td bgcolor="#dddddd" width="55%">÷ÁÛÅ ÉÍÑ (ÎÅÏÂÑÚÁÔÅÌØÎÏ):</td>
+ <td width="33%"><mm-fullname-box></td>
+ <TD WIDTH="12%">&nbsp;</TD></TR>
+ <TR>
+ <TD COLSPAN="3"><FONT SIZE=-1>÷Ù ÍÏÖÅÔÅ ÕËÁÚÁÔØ ÐÁÒÏÌØ, ËÏÔÏÒÙÊ ÐÏÚ×ÏÌÉÔ
+ ÚÁÔÒÕÄÎÉÔØ ÄÒÕÇÉÍ ÌÀÄÑÍ ÐÏÐÙÔËÉ ÉÚÍÅÎÑÔØ ÐÁÒÁÍÅÔÒÙ ÷ÁÛÅÊ ÐÏÄÐÉÓËÉ. <b>îÅ ÉÓÐÏÌØÚÕÊÔÅ
+ ÃÅÎÎÙÈ ÐÁÒÏÌÅÊ</b>, ÔÁË ËÁË ÐÁÒÏÌÉ × ÓÉÓÔÅÍ Mailman ÐÅÒÅÓÙÌÁÀÔÓÑ ÐÏ ÐÏÞÔÅ ÏÔËÒÙÔÙÍ
+ ÔÅËÓÔÏÍ.
+
+ <p>åÓÌÉ ÷Ù ÎÅ ÈÏÔÉÔÅ ÕËÁÚÙ×ÁÔØ ÐÁÒÏÌØ, ÓÉÓÔÅÍÁ Á×ÔÏÍÁÔÉÞÅÓËÉ ÓÏÚÄÁÓÔ,
+ Á ÚÁÔÅÍ ×ÙÛÌÅÔ ÐÁÒÏÌØ ÄÌÑ ÷ÁÛÅÊ ÐÏÄÐÉÓËÉ. ÷Ù ×ÓÅÇÄÁ ÍÏÖÅÔÅ ÐÏÐÒÏÓÉÔØ
+ ÐÒÉÓÌÁÔØ ×ÁÍ ÜÔÏÔ ÐÁÒÏÌØ ÓÏ ÓÔÒÁÎÉÃÙ ÐÁÒÁÍÅÔÒÏ× ÷ÁÛÅÊ ÐÏÄÐÉÓËÉ.
+ <MM-Reminder>
+ </TD>
+ </TR>
+ <TR>
+ <TD BGCOLOR="#dddddd">õËÁÖÉÔÅ ÐÁÒÏÌØ:</TD>
+ <TD><MM-New-Password-Box></TD>
+ <TD>&nbsp;</TD></TR>
+ <TR>
+ <TD BGCOLOR="#dddddd">ðÏÄÔ×ÅÒÄÉÔÅ ×ÙÂÒÁÎÎÙÊ ÐÁÒÏÌØ:</TD>
+ <TD><MM-Confirm-Password></TD>
+ <TD>&nbsp; </TD></TR>
+ <tr>
+ <TD BGCOLOR="#dddddd">îÁ ËÁËÏÍ ÑÚÙËÅ ÷Ù ÈÏÔÅÌÉ ÂÙ ×ÉÄÅÔØ ÓÏÏÂÝÅÎÉÑ ÏÔ ÓÅÒ×ÅÒÁ?</TD>
+ <TD> <MM-list-langs></TD>
+ <TD>&nbsp; </TD></TR>
+ <mm-digest-question-start>
+ <tr>
+ <td>èÏÔÉÔÅ ÌÉ ×Ù ÐÏÌÕÞÁÔØ ÐÏÄÐÉÓËÕ × ×ÉÄÅ ÄÁÊÄÖÅÓÔÏ×?</td>
+ <td><MM-Undigest-Radio-Button> îÅÔ
+ <MM-Digest-Radio-Button> äÁ
+ </TD>
+ </tr>
+ <mm-digest-question-end>
+ <tr>
+ <td colspan="3">
+ <center><MM-Subscribe-Button></P></center>
+ </TABLE>
+ <MM-Form-End>
+ </ul>
+ </td>
+ </tr>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <a name="subscribers">
+ <B><FONT COLOR="#000000">ðÏÄÐÉÓÞÉËÉ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ <MM-List-Name></FONT></B></a>
+ </TD>
+ </TR>
+ <tr>
+ <TD COLSPAN="2" WIDTH="100%">
+ <MM-Roster-Form-Start>
+ <MM-Roster-Option>
+ <MM-Form-End>
+ <p>
+ <MM-Subscribe-Form-Start>
+ <MM-Editing-Options>
+ <MM-Form-End>
+ </td>
+ </tr>
+ </table>
+<MM-Mailman-Footer>
+</BODY>
+</HTML>
+
+<!--
+ vim:tw=100
+ -->
diff --git a/templates/ru/masthead.txt b/templates/ru/masthead.txt
new file mode 100644
index 00000000..8b6550f7
--- /dev/null
+++ b/templates/ru/masthead.txt
@@ -0,0 +1,18 @@
+óÏÏÂÝÅÎÉÑ, ÐÒÅÄÎÁÚÎÁÞÅÎÎÙÅ ÄÌÑ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ %(real_name)s,
+ÎÅÏÂÈÏÄÉÍÏ ÏÔÐÒÁ×ÌÑÔØ ÐÏ ÁÄÒÅÓÕ
+ %(got_list_email)s
+
+äÌÑ ÉÚÍÅÎÅÎÉÑ ÐÁÒÁÍÅÔÒÏ× ÐÏÄÐÉÓËÉ ×Ù ÍÏÖÅÖÅ ÉÓÐÏÌØÚÏ×ÁÔØ ×ÅÂ-ÓÔÒÁÎÉÃÕ
+ %(got_listinfo_url)s
+
+äÌÑ ÐÏÌÕÞÅÎÉÑ ÉÎÆÏÒÍÁÃÉÉ Ï ÔÏÍ, ËÁË ÐÏÌØÚÏ×ÁÔØ ÐÏÞÔÏ×ÙÍ ÉÎÔÅÒÆÅÊÓÏÍ,
+ÏÔÐÒÁרÔÅ ÐÉÓØÍÏ, × ÔÅÌÅ ÉÌÉ ÔÅÍÅ ËÏÔÏÒÏÇÏ ÂÕÄÅÔ ÓÌÏ×Ï 'help', ÐÏ
+ÁÄÒÅÓÕ:
+ %(got_request_email)s
+
+áÄÒÅÓ ÞÅÌÏ×ÅËÁ, ÏÔ×ÅÔÓÔ×ÅÎÎÏÇÏ ÚÁ ÜÔÏÔ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ:
+ %(got_owner_email)s
+
+ðÒÉ ÏÔ×ÅÔÅ, ÐÏÖÁÌÕÊÓÔÁ, ÉÚÍÅÎÉÅ ÔÅÍÕ ÐÉÓØÍÁ ÔÁË, ÞÔÏÂÙ ÏÎÁ ÂÙÌÁ ÂÏÌÅÅ
+ÓÏÄÅÒÖÁÔÅÌØÎÏÊ ÞÅÍ "Re: óÏÄÅÒÖÁÎÉÅ ÄÁÊÄÖÅÓÔÁ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ
+%(real_name)s..."
diff --git a/templates/ru/newlist.txt b/templates/ru/newlist.txt
new file mode 100644
index 00000000..f119188d
--- /dev/null
+++ b/templates/ru/newlist.txt
@@ -0,0 +1,40 @@
+äÌÑ ×ÁÓ ÂÙÌ ÔÏÌØËÏ ÞÔÏ ÓÏÚÄÁÎ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ `%(listname)s'. îÉÖÅ
+ÐÒÉ×ÅÄÅÎÁ ÏÂÝÁÑ ÉÎÆÏÒÍÁÃÉÑ Ï ÜÔÏÍ ÓÐÉÓËÅ ÒÁÓÓÙÌËÉ.
+
+÷ÁÛ ÐÁÒÏÌØ ÄÌÑ ÜÔÏÇÏ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ
+
+ %(password)s
+
+ïÎ ×ÁÍ ÐÏÎÁÄÏÂÉÔÓÑ ÄÌÑ ÎÁÓÔÒÏÊËÉ ÐÁÒÁÍÅÔÒÏ× ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ É ÄÌÑ
+ÏÂÒÁÂÏÔËÉ ÁÄÍÉÎÉÓÔÒÁÔÉ×ÎÙÈ ÚÁÐÒÏÓÏ×, ÎÁÐÒÉÍÅÒ, ÍÏÄÅÒÉÒÏ×ÁÎÉÑ, ÅÓÌÉ ÷Ù
+ÒÅÛÉÔÅ, ÞÔÏ ÜÔÏ ÂÕÄÅÔ ÐÏÌÅÚÎÏ.
+
+äÌÑ ÎÁÓÔÒÏÊËÉ ÐÁÒÁÍÅÔÒÏ× ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ ÷Ù ÍÏÖÅÔÅ ×ÏÓÐÏÌØÚÏ×ÁÔØÓÑ
+ÓÌÅÄÕÀÝÅÊ ÓÔÒÁÎÉÃÅÊ:
+
+ %(admin_url)s
+
+ïÂÝÁÑ ÉÎÆÏÒÍÁÃÉÑ Ï ÓÐÉÓËÅ ÒÁÓÓÙÌËÅ ÄÏÓÔÕÐÎÁ ÐÏ ÓÌÅÄÕÀÝÅÍÕ ÁÄÒÅÓÕ:
+
+ %(listinfo_url)s
+
+÷Ù ÍÏÖÅÔÅ ÉÚÍÅÎÉÔØ ×ÉÄ ÜÔÉÈ ÓÔÒÁÎÉÃ, ×ÏÓÐÏÌØÚÏ×ÁÛÉÓØ ÍÏÄÕÌÅÍ
+ÎÁÓÔÒÏÊËÉ; ÐÏÍÎÉÔÅ, ÏÄÎÁËÏ, ÞÔÏ ÄÌÑ ÜÔÏÇÏ ÷Ù ÄÏÌÖÎÙ ÚÎÁÔØ HTML.
+
+ðÏÌØÚÏ×ÁÔÅÌÉ (ÎÅ ÁÄÍÉÎÉÓÔÒÁÔÏÒÙ) ÍÏÇÕÔ ×ÏÓÐÏÌØÚÏ×ÁÔØÓÑ ÐÏÞÔÏ×ÙÍ
+ÉÎÔÅÒÆÅÊÓÏÍ ÄÌÑ ÉÚÍÅÎÅÎÉÑ ÐÁÒÁÍÅÔÒÏ× Ó×ÏÅÊ ÐÏÄÐÉÓËÉ. äÌÑ ÔÏÇÏ, ÞÔÏÂÙ
+ÐÏÌÕÞÉÔØ ÏÐÉÓÁÎÉÅ ×ÏÚÍÏÖÎÏÓÔÅÊ ÜÔÏÇÏ ÉÎÔÅÒÆÅÊÓÁ, ÐÏ ÎÉÖÅÐÒÉ×ÅÄÅÎÎÏÍÕ
+ÁÄÒÅÓÕ ÏÔÐÒÁרÔÅ ÐÉÓØÍÏ, × ÔÅÌÅ ËÏÔÏÒÏÇÏ ÂÕÄÅÔ ÓÌÏ×Ï 'help'
+
+ %(requestaddr)s
+
+äÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÕÄÁÌÉÔØ ÐÏÄÐÉÓËÕ ÐÏÌØÚÏ×ÁÔÅÌÑ, ÏÔËÒÏÊÔÅ ÓÔÒÁÎÉÃÕ Ó
+ÏÂÝÅÊ ÉÎÆÏÒÍÁÃÉÅÊ Ï ÓÐÉÓËÅ ÒÁÓÓÙÌËÉ, ÕËÁÖÉÔÅ ÁÄÒÅÓ ÐÏÌØÚÏ×ÁÔÅÌÑ, ËÁË
+ÅÓÌÉ ÂÙ ×Ù ÂÙÌÉ ÜÔÉÍ ÐÏÌØÚÏ×ÁÔÅÌÅÍ É ÕËÁÖÉÔÅ ÐÁÒÏÌØ ÁÄÍÉÎÉÓÔÒÁÔÏÒÁ
+ÓÐÉÓËÁ, × ÐÏÌÅ, × ËÏÔÏÒÏÅ ÂÙ ÐÏÌØÚÏ×ÁÔÅÌØ ÄÏÌÖÅÎ ÂÙÌ ÕËÁÚÁÔØ Ó×ÏÊ
+ÐÁÒÏÌØ, ÞÔÏÂÙ ÏÔÐÉÓÁÔØÓÑ ÏÔ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ. ÷Ù ÔÁËÖÅ ÍÏÖÅÔÅ
+ÉÓÐÏÌØÚÏ×ÁÔØ Ó×ÏÊ ÐÁÒÏÌØ ÄÌÑ ÉÚÍÅÎÅÎÉÑ ÐÁÒÁÍÅÔÒÏ× ÐÏÄÐÉÓËÉ ÜÔÏÇÏ
+ÐÏÌØÚÏ×ÁÔÅÌÑ.
+
+÷ÓÅ ×ÏÐÒÏÓÙ Ï ÓÉÓÔÅÍÅ ÷Ù ÍÏÖÅÔÅ ÚÁÄÁÔØ, ÏÔÐÒÁ×É× ÐÉÓØÍÏ ÐÏ ÁÄÒÅÓÕ
+mailman-owner@%(hostname)s.
diff --git a/templates/ru/nomoretoday.txt b/templates/ru/nomoretoday.txt
new file mode 100644
index 00000000..a49ac123
--- /dev/null
+++ b/templates/ru/nomoretoday.txt
@@ -0,0 +1,9 @@
+óÅÇÏÄÎÑ Ó ÁÄÒÅÓÁ '%(sender)s' ÂÙÌÏ ÐÏÌÕÞÅÎÏ ÎÅÓËÏÌØËÏ (%(num)s) ÓÏÏÂÝÅÎÉÊ,
+ÔÒÅÂÕÀÝÉÈ Á×ÔÏÍÁÔÉÞÅÓËÏÊ ÏÂÒÁÂÏÔËÉ. äÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÉÚÂÅÖÁÔØ ÐÒÏÂÌÅÍ,
+ËÏÔÏÒÙÅ ÍÏÇÕÔ ×ÏÚÎÉËÎÕÔØ ÉÚ-ÚÁ ÐÅÒÅËÉÄÙ×ÁÎÉÑ ÓÏÏÂÝÅÎÉÊ ÍÅÖÄÕ ÒÏÂÏÔÁÍÉ,
+×ÓÅ ÐÏÓÌÅÄÕÀÝÉÅ ÓÏÏÂÝÅÎÉÑ Ó ÜÔÏÇÏ ÁÄÒÅÓÁ -- %(sender)s -- ÓÅÇÏÄÎÑ ÂÕÄÕÔ
+ÏÓÔÁ×ÌÅÎÙ ÂÅÚ ÏÔ×ÅÔÁ. ðÏÖÁÌÕÊÓÔÁ, ÐÏÐÒÏÂÕÊÔÅ ÚÁ×ÔÒÁ.
+
+åÓÌÉ ×Ù ÄÕÍÁÅÔÅ, ÞÔÏ ÜÔÏ ÓÏÏÂÝÅÎÉÅ ÐÒÉÛÌÏ Ë ×ÁÍ ÐÏ ÏÛÉÂËÅ, ÉÌÉ ÖÅ Õ ×ÁÓ
+×ÏÚÎÉËÌÉ ËÁËÉÅ-ÎÉÂÕÄØ ×ÏÐÒÏÓÙ, ×Ù ÍÏÖÅÔÅ Ó×ÑÚÁÔØÓÑ Ó ÁÄÍÉÎÉÓÔÒÁÔÏÒÏÍ
+ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ ÐÏ ÁÄÒÅÓÕ %(owneremail)s.
diff --git a/templates/ru/options.html b/templates/ru/options.html
new file mode 100644
index 00000000..8d503bed
--- /dev/null
+++ b/templates/ru/options.html
@@ -0,0 +1,306 @@
+<!-- $Revision: 5789 $ -->
+<html>
+<head>
+ <link rel="SHORTCUT ICON" href="<mm-favicon>">
+ <title><MM-Presentable-User>: ÐÁÒÁÍÅÔÒÙ ÐÏÄÐÉÓËÉ ÎÁ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ <MM-List-Name>
+ </title>
+</head>
+<BODY BGCOLOR="#ffffff">
+ <TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#99CCFF"><B>
+ <FONT COLOR="#000000" SIZE=+1>
+ ðÁÒÁÍÅÔÒÙ ÐÏÄÐÉÓËÉ <MM-Presentable-User> ÄÌÑ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ <MM-List-Name>
+ </FONT></B></TD></TR>
+ </TABLE>
+<p>
+<table width="100%" border="0" cellspacing="5" cellpadding="5">
+ <tr><td>
+ <b>óÏÓÔÏÑÎÉÅ ÐÏÄÐÉÓËÉ <MM-Presentable-User></b>,
+ ÐÁÒÏÌØ É ÐÁÒÁÍÅÔÒÙ ÐÏÄÐÉÓËÉ ÎÁ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ <MM-List-Name>.
+ </td><td><MM-Form-Start><mm-logout-button><MM-Form-End></td>
+ </tr><tr>
+ <td colspan="2">
+ <MM-Case-Preserved-User>
+
+ <MM-Disabled-Notice>
+
+ <p><mm-results>
+ </td>
+ </tr>
+</table>
+
+<MM-Form-Start>
+<p>
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#FFF0D0" colspan="2">
+ <FONT COLOR="#000000">
+ <B>éÚÍÅÎÅÎÉÅ ×ÁÛÅÊ ÐÏÄÐÉÓËÉ ÎÁ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ <MM-List-Name></B>
+ </FONT></TD></TR>
+ <tr><td colspan="2">÷Ù ÍÏÖÅÔÅ ÉÚÍÅÎÉÔØ ÁÄÒÅÓ, ËÕÄÁ ÄÏÌÖÎÁ ÄÏÓÔÁ×ÌÑÔØÓÑ ÐÏÄÐÉÓËÁ.
+ äÌÑ ÜÔÏÇÏ ÕËÁÖÉÔÅ ÅÇÏ × ÐÏÌÅ ÎÉÖÅ. éÍÅÊÔÅ × ×ÉÄÕ, ÞÔÏ ÎÁ ÎÏ×ÙÊ ÁÄÒÅÓ
+ ÂÕÄÅÔ ×ÙÓÌÁÎÁ ÐÒÏÓØÂÁ ÐÏÄÔ×ÅÒÄÉÔØ ÜÔÕ ÏÐÅÒÁÃÉÀ É ÞÔÏ ÂÅÚ ÜÔÏÇÏ
+ ÐÏÄÔ×ÅÒÖÄÅÎÉÑ ÁÄÒÅÓ ÉÚÍÅÎÅÎ ÎÅ ÂÕÄÅÔ.
+
+ <p>ðÏÄÔ×ÅÒÖÄÅÎÉÅ ÐÏÄÐÉÓËÉ ÏÖÉÄÁÅÔÓÑ × ÔÅÞÅÎÉÉ <mm-pending-days>.
+
+ <p>÷Ù ÔÁËÖÅ ÍÏÖÔÅ ÕËÁÚÁÔØ ÉÌÉ ÉÚÍÅÎÉÔØ Ó×ÏÅ ÉÍÑ
+ (ÎÁÐÒÉÍÅÒ, <em>é×ÁÎ ðÅÔÒÏ×</em>).
+
+ <p>åÓÌÉ ×Ù ÈÏÔÉÔÅ, ÞÔÏÂÙ ÕËÁÚÁÎÎÙÅ ÉÚÍÅÎÅÎÉÑ ÐÒÏÉÚÏÛÌÉ ×Ï ×ÓÅÈ
+ ×ÁÛÉÈ ÐÏÄÐÉÓËÁÈ ÎÁ ÓÅÒ×ÅÒÅ <mm-host>, ×Ù ÍÏÖÅÔÅ ×ÏÓÐÏÌØÚÏ×ÁÔØÓÑ
+ ÐÁÒÁÍÅÔÒÏÍ <em>éÚÍÅÎÉÔØ ×Ï ×ÓÅÈ ÐÏÄÐÉÓËÁÈ</em>.
+
+ </td></tr>
+ <tr><td><center>
+ <table border="0" cellspacing="2" cellpadding="2" width="80%" cols="2">
+ <tr><td bgcolor="#dddddd"><div align="right">îÏ×ÙÊ ÁÄÒÅÓ:</div></td>
+ <td><mm-new-address-box></td>
+ </tr>
+ <tr><td bgcolor="#dddddd"><div align="right">Again to
+ åÝÅ ÒÁÚ ÎÏ×ÙÊ ÁÄÒÅÓ:</div></td>
+ <td><mm-confirm-address-box></td>
+ </tr>
+ </tr></table></center>
+ </td>
+ <td><center>
+ <table border="0" cellspacing="2" cellpadding="2" width="80%" cols="2">
+ <tr><td bgcolor="#dddddd"><div align="right">÷ÁÛÅ ÉÍÑ (ÎÅÏÂÑÚÁÔÅÌØÎÏ):</div></td>
+ <td><mm-fullname-box></td>
+ </tr>
+ </table></center>
+ </td>
+ </tr>
+ <tr><td colspan="2"><center><mm-change-address-button>
+ <p><mm-global-change-of-address>éÚÍÅÎÉÔØ ×Ï ×ÓÅÈ ÐÏÄÐÉÓËÁÈ</center></td>
+ </tr>
+</table>
+
+<p>
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="5" CELLPADDING="5">
+ <TR><TD WIDTH="50%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>õÄÁÌÉÔØ ÐÏÄÐÉÓËÕ ÎÁ <MM-List-Name></B></td>
+
+ <TD WIDTH="50%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>äÒÕÇÉÅ ÓÐÉÓËÉ ÒÁÓÓÙÌËÉ ÎÁ ÓÅÒ×ÅÒÅ <MM-Host>, ÎÁ ËÏÔÏÒÙÅ ×Ù ÐÏÄÐÉÓÁÎÙ</B>
+ </FONT></TD></TR>
+
+ <tr><td>
+ Turn on the confirmation checkbox and hit this button to
+ unsubscribe from this mailing list. <strong>ðÒÅÄÕÐÒÅÖÄÅÎÉÅ:</strong>
+ üÔÏ ÄÅÊÓÔ×ÉÅ ÂÕÄÅÔ ÉÍÅÔØ ÎÅÍÅÄÌÅÎÎÙÊ ÜÆÆÅËÔ!
+ <p>
+ <center><MM-Unsubscribe-Button></center></td>
+ <td>÷Ù ÔÁËÖÅ ÍÏÖÅÔÅ ÐÏÌÕÞÉÔØ ÓÐÉÓÏË ×ÓÅÈ Ó×ÏÉÈ ÐÏÄÐÉÓÏË ÎÁ ÓÅÒ×ÅÒÅ
+ <mm-host>; ÅÓÌÉ ×Ù ÈÏÔÉÔÅ ÉÚÍÅÎÉÔØ ÐÁÒÁÍÅÔÒÙ ËÁËÏÊ-ÌÉÂÏ ÉÚ ÎÉÈ,
+ ÎÁÖÍÉÔÅ ÎÁ ÜÔÕ ËÎÏÐËÕ.
+
+ <p>
+ <center><MM-Other-Subscriptions-Submit></center>
+ </TD></TR>
+</table>
+
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD COLSPAN=2 WIDTH="100%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>ðÁÒÏÌØ ÄÌÑ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ <MM-List-Name></B>
+ </FONT></TD></TR>
+
+ <tr valign="TOP"><td WIDTH="50%">
+ <a name=reminder>
+ <center><h3>úÁÂÙÌÉ Ó×ÏÊ ÐÁÒÏÌØ?</h3></center>
+ îÁÖÍÉÔÅ ÎÁ ÜÔÕ ËÎÏÐËÕ, ÞÔÏÂÙ ÐÏÌÕÞÉÔØ ÐÁÒÏÌØ ÎÁ ÁÄÒÅÓ, ÕËÁÚÁÎÎÙÊ ×
+ ×ÁÛÅÊ ÐÏÄÐÉÓËÅ.
+ <p><MM-Umbrella-Notice>
+ <center>
+ <MM-Email-My-Pw>
+ </center>
+ </td>
+
+ <td WIDTH="50%">
+ <a name=changepw>
+ <center>
+ <h3>éÚÍÅÎÉÔØ ÐÁÒÏÌØ ÄÌÑ ÐÏÄÐÉÓËÉ</h3>
+ <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2" WIDTH="70%" COLS=2>
+ <TR><TD BGCOLOR="#dddddd"><div align="right">îÏ×ÙÊ ÐÁÒÏÌØ:</div></TD>
+ <TD><MM-New-Pass-Box></TD>
+ </TR>
+ <TR>
+ <TD BGCOLOR="#dddddd"><div align="right">ðÏÄÔ×ÅÒÄÉÔÅ ÎÏ×ÙÊ ÐÁÒÏÌØ:</div></TD>
+ <TD><MM-Confirm-Pass-Box></TD>
+ </TR>
+ </table>
+
+ <MM-Change-Pass-Button>
+ <p><center><mm-global-pw-changes-button>éÚÍÅÎÉÔØ ×Ï ×ÓÅÈ ÐÏÄÐÉÓËÁÈ.
+ </center>
+</TABLE>
+
+<p>
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>ðÁÒÁÍÅÔÒÙ ×ÁÛÅÊ ÐÏÄÐÉÓËÉ ÎÁ <MM-List-Name></B>
+ </FONT></TD></TR>
+</table>
+
+<p>
+<i><strong>îÉÖÅ ×Ù ×ÉÄÉÔÅ ÔÅËÕÝÉÅ ÚÎÁÞÅÎÉÑ</strong></i>
+
+<p>ïÂÒÁÔÉÔÅ ×ÎÉÍÁÎÉÅ, ÞÔÏ ÚÎÁÞÅÎÉÑ ÎÅËÏÔÏÒÙÈ ÐÁÒÁÍÅÔÒÏ× ×Ù ÍÏÖÅÔÅ <em>éÚÍÅÎÉÔØ
+×Ï ×ÓÅÈ ÐÏÄÐÉÓËÁÈ</em>. Checking this field will cause the changes to be made
+to
+every mailing list that you are a member of on <mm-host>. Click on
+<em>List my other subscriptions</em> above to see which other mailing
+lists you are subscribed to.
+<p>
+<TABLE BORDER="0" CELLSPACING="3" CELLPADDING="4" WIDTH="100%">
+ <tr><TD BGCOLOR="#cccccc">
+ <a name="disable">
+ <strong>Mail delivery</strong></a><p>
+ Set this option to <em>Enabled</em> to receive messages posted
+ to this mailing list. Set it to <em>Disabled</em> if you want
+ to stay subscribed, but don't want mail delivered to you for a
+ while (e.g. you're going on vacation). If you disable mail
+ delivery, don't forget to re-enable it when you come back; it
+ will not be automatically re-enabled.
+ </td><td bgcolor="#cccccc">
+ <mm-delivery-enable-button>Enabled<br>
+ <mm-delivery-disable-button>Disabled<p>
+ <mm-global-deliver-button><i>éÚÍÅÎÉÔØ ×Ï ×ÓÅÈ ÐÏÄÐÉÓËÁÈ</i>
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Set Digest Mode</strong><p>
+ If you turn digest mode on, you'll get posts bundled together
+ (usually one per day but possibly more on busy lists), instead
+ of singly when they're sent. If digest mode is changed from
+ on to off, you may receive one last digest.
+ </td><td bgcolor="#cccccc">
+ <MM-Undigest-Radio-Button>Off<br>
+ <MM-Digest-Radio-Button>On
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Get MIME or Plain Text Digests?</strong><p>
+ Your mail reader may or may not support MIME digests. In
+ general MIME digests are preferred, but if you have a problem
+ reading them, select plain text digests.
+ </td><td bgcolor="#cccccc">
+ <MM-Mime-Digests-Button>MIME<br>
+ <MM-Plain-Digests-Button>Plain Text<p>
+ <mm-global-mime-button><i>éÚÍÅÎÉÔØ ×Ï ×ÓÅÈ ÐÏÄÐÉÓËÁÈ</i>
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Receive your own posts to the list?</strong><p>
+ Ordinarily, you will get a copy of every message you post to
+ the list. If you don't want to receive this copy, set this
+ option to <em>No</em>.
+ </td><td bgcolor="#cccccc">
+ <mm-dont-receive-own-mail-button>No<br>
+ <mm-receive-own-mail-button>Yes
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Receive acknowledgement mail when you send mail to
+ the list?</strong><p>
+ </td><td bgcolor="#cccccc">
+ <mm-dont-ack-posts-button>No<br>
+ <mm-ack-posts-button>Yes
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>Get password reminder email for this list?</strong><p>
+ Once a month, you will get an email containing a password
+ reminder for every list at this host to which you are
+ subscribed. You can turn this off on a per-list basis by
+ selecting <em>No</em> for this option. If you turn off
+ password reminders for all the lists you are subscribed to, no
+ reminder email will be sent to you.
+ </td><td bgcolor="#cccccc">
+ <mm-dont-get-password-reminder-button>No<br>
+ <mm-get-password-reminder-button>Yes<p>
+ <mm-global-remind-button><i>éÚÍÅÎÉÔØ ×Ï ×ÓÅÈ ÐÏÄÐÉÓËÁÈ</i>
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>óËÒÙÔØ ÓÅÂÑ ÉÚ ÓÐÉÓËÁ ÐÏÄÐÉÓÞÉËÏ×?</strong><p>
+ îÁ ÓÔÒÁÎÉÃÅ ÐÒÏÓÍÏÔÒÁ ÓÐÉÓËÁ ÐÏÄÐÉÓÞÉËÏ× ×ÁÛ ÜÌÅËÔÒÏÎÎÙÊ
+ ÁÄÒÅÓ ÂÕÄÅÔ ÐÏËÁÚÁÎ (× ÓÐÅÃÉÁÌØÎÏÍ ×ÉÄÅ, ÞÔÏÂÙ ÚÁÔÒÕÄÎÉÔØ
+ ÒÁÂÏÔÕ ÓÂÏÒÝÉËÏ× ÁÄÒÅÓÏ× ÄÌÑ ÒÁÓÓÙÌËÉ ÓÐÁÍÁ). åÓÌÉ ×Ù ÎÅ ÈÏÔÉÔÅ,
+ ÞÔÏÂÙ ×ÁÛ ÁÄÒÅÓ ×ÏÏÂÝÅ ÔÁÍ ÐÏËÁÚÙ×ÁÌÓÑ, ×Ù ÍÏÖÅÔÅ ÕËÁÚÁÔØ ÄÌÑ
+ ÜÔÏÇÏ ÐÁÒÁÍÅÔÒÁ ÚÎÁÞÅÎÉÅ <em>îÅÔ</em>.
+ </td><td bgcolor="#cccccc">
+ <MM-Public-Subscription-Button>No<br>
+ <MM-Hide-Subscription-Button>Yes
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>ëÁËÏÊ ÑÚÙË ×Ù ÐÒÅÄÐÏÞÉÔÁÅÔÅ?</strong><p>
+ </td><td bgcolor="#cccccc">
+ <MM-list-langs>
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>Which topic categories would you like to subscribe
+ to?</strong><p>
+ By selecting one or more topics, you can filter the
+ traffic on the mailing list, so as to receive only a
+ subset of the messages. If a message matches one of
+ your selected topics, then you will get the message,
+ otherwise you will not.
+
+ <p>If a message does not match any topic, the delivery
+ rule depends on the setting of the option below. If
+ you do not select any topics of interest, you will get
+ all the messages sent to the mailing list.
+ </td><td bgcolor="#cccccc">
+ <mm-topics>
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>Do you want to receive message that do not match any topic filter?</strong>
+
+ <p>This option only takes effect if you've subscribed to at least one
+ topic above. It describes what the default delivery rule is for
+ messages that don't match any topic filter. Selecting <em>No</em> says
+ that if the message does not match any topic filters, then you won't
+ get the message, while selecting <em>Yes</em> says to delivery such
+ non-matching messages to you.
+
+ <p>If no topics of interest are selected above, then you will receive
+ every message sent to the mailing list.
+ </td>
+ <td bgcolor="#cccccc">
+ <mm-suppress-nonmatching-topics>No<br>
+ <mm-receive-nonmatching-topics>Yes
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>âÌÏËÉÒÏ×ÁÔØ ÏÔÐÒÁ×ËÕ ËÏÐÉÊ ÓÏÏÂÝÅÎÉÊ?</strong>
+
+ <p>÷Ù ÍÏÖÅÔÅ ÉÚÂÅÖÁÔØ ÐÏÌÕÞÅÎÉÅ ËÏÐÉÊ ÓÏÏÂÝÅÎÉÊ, × ËÏÔÏÒÙÈ ×Ù ÕËÁÚÁÎÙ
+ × ÐÏÌÅ <tt>To:</tt> ÉÌÉ <tt>Cc:</tt>. äÌÑ ÜÔÏÇÏ ÕËÁÖÉÔÅ <em>äÁ</em>
+ × ËÁÞÅÓÔ×Å ÚÎÁÞÅÎÉÑ ÜÔÏÇÏ ÐÁÒÁÍÅÔÒÁ. åÓÌÉ ×Ù ÕËÁÖÉÔÅ <em>îÅÔ</em>, ÔÏ
+ ×Ù ÂÕÄÅÔÅ ÐÏÌÕÞÁÔØ ËÏÐÉÉ ÔÁËÉÈ ÓÏÏÂÝÅÎÉÊ.
+
+ <p>If the list has member personalized messages enabled, and you elect
+ to receive copies, every copy will have a <tt>X-Mailman-Copy: yes</tt>
+ header added to it.
+ </td>
+ <td bgcolor="#cccccc">
+ <mm-receive-duplicates-button>îÅÔ<br>
+ <mm-dont-receive-duplicates-button>äÁ<p>
+ <mm-global-nodupes-button><i>éÚÍÅÎÉÔØ ×Ï ×ÓÅÈ ÐÏÄÐÉÓËÁÈ</i>
+ </td></tr>
+
+ <tr><TD colspan="2">
+ <center><MM-options-Submit-button></center>
+ </td></tr>
+
+</table>
+</center>
+<p>
+<MM-Form-End>
+
+<MM-Mailman-Footer>
+</body>
+</html>
diff --git a/templates/ru/postack.txt b/templates/ru/postack.txt
new file mode 100644
index 00000000..5ef30850
--- /dev/null
+++ b/templates/ru/postack.txt
@@ -0,0 +1,8 @@
+÷ÁÛÅ ÓÏÏÂÝÅÎÉÅ ÐÏÄ ÔÅÍÏÊ
+
+ %(subject)s
+
+ÂÙÌÏ ÕÓÐÅÛÎÏ ÐÅÒÅÓÌÁÎÏ × ÓÐÉÓÏË ÒÁÓÓÙÌËÉ %(listname)s.
+
+éÎÆÏÒÍÁÃÉÑ Ï ÓÐÉÓËÅ ÒÁÓÓÙÌËÉ: %(listinfo_url)s
+ðÁÒÁÍÅÔÒÙ ×ÁÛÅÊ ÐÏÄÐÉÓËÉ: %(optionsurl)s
diff --git a/templates/ru/postauth.txt b/templates/ru/postauth.txt
new file mode 100644
index 00000000..b4c41f63
--- /dev/null
+++ b/templates/ru/postauth.txt
@@ -0,0 +1,12 @@
+÷Ù, ËÁË ÁÄÍÉÎÉÓÔÒÁÔÏÒ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ, ÄÏÌÖÎÙ ÒÁÓÓÍÏÔÒÅÔØ É
+Á×ÔÏÒÉÚÏ×ÁÔØ ÓÌÅÄÕÀÝÅÅ ÓÏÏÂÝÅÎÉÅ:
+
+ óÐÉÓÏË ÒÁÓÓÙÌËÉ: %(listname)s@%(hostname)s
+ á×ÔÏÒ: %(sender)s
+ ôÅÍÁ: %(subject)s
+ ðÒÉÞÉÎÁ: %(reason)s
+
+äÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÓÄÅÌÁÔØ ÜÔÏ, ÷Ù ÍÏÖÅÔÅ ×ÏÓÐÏÌØÚÏ×ÁÔØÓÑ
+ÓÌÅÄÕÀÝÅÊ ÓÓÙÌËÏÊ:
+
+ %(admindb_url)s
diff --git a/templates/ru/postheld.txt b/templates/ru/postheld.txt
new file mode 100644
index 00000000..07d49a9a
--- /dev/null
+++ b/templates/ru/postheld.txt
@@ -0,0 +1,12 @@
+÷ÁÛÅ ÓÏÏÂÝÅÎÉÅ ÐÏÄ ÔÅÍÏÊ
+
+ %(subject)s
+
+ÂÙÌÏ ÏÔÌÏÖÅÎÏ ÄÌÑ ÒÁÓÓÍÏÔÒÅÎÉÑ ÍÏÄÅÒÁÔÏÒÏÍ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ.
+
+ðÒÉÞÉÎÁ:
+
+ %(reason)s
+
+ðÏÓÌÅ ÒÁÓÓÍÏÔÒÅÎÉÑ, ÓÏÏÂÝÅÎÉÑ ÍÏÖÅÔ ÂÙÔØ ÐÅÒÅÐÒÁ×ÌÅÎÏ × ÓÐÉÓÏË
+ÒÁÓÓÙÌËÉ, ÉÌÉ ÖÅ ÷Ù ÐÏÌÕÞÉÔÅ ÉÚ×ÅÝÅÎÉÅ Ï ÒÅÛÅÎÉÉ Ï ÍÏÄÅÒÁÔÏÒÁ.
diff --git a/templates/ru/private.html b/templates/ru/private.html
new file mode 100644
index 00000000..f4565650
--- /dev/null
+++ b/templates/ru/private.html
@@ -0,0 +1,40 @@
+<html>
+<head>
+ <title>áÕÔÅÎÔÉÆÉËÁÃÉÑ ÄÌÑ ÄÏÓÔÕÐÁ Ë ÚÁËÒÙÔÏÍÕ ÁÒÈÉ×Õ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ %(realname)s</title>
+</head>
+<body bgcolor="#ffffff">
+<FORM METHOD=POST ACTION="%(action)s/">
+%(message)s
+ <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1">áÕÔÅÎÔÉÆÉËÁÃÉÑ ÄÌÑ ÄÏÓÔÕÐÁ Ë ÚÁËÒÙÔÏÍÕ ÁÒÈÉ×Õ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ %(realname)s</FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <TD><div ALIGN="Right">üÌÅËÔÒÏÎÎÙÊ ÁÄÒÅÓ:</div></TD>
+ <TD><INPUT TYPE="text" NAME="username" SIZE="30"></TD>
+ </tr>
+ <tr>
+ <TD><div ALIGN="Right">ðÁÒÏÌØ:</div></TD>
+ <TD><INPUT TYPE="password" NAME="password" SIZE="30"></TD>
+ </tr>
+ <tr>
+ <td colspan=2 align="middle"><INPUT type="SUBMIT" name="submit" value="Let me in...">
+ </td>
+ </tr>
+ </TABLE>
+ <p><strong><em>÷ÁÖÎÏ</em></strong>: ×Ù ÄÏÌÖÎÙ ÒÁÚÒÅÛÉÔØ ÐÒÉÅÍ ÆÁÊÌÁ cookies,
+ × ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ, ×Ù ÎÅ ÓÍÏÖÅÔÅ ×ÎÅÓÉÔØ ËÁËÉÅ ÂÙ ÔÏ ÎÉ ÂÙÌÏ ÉÚÍÅÎÅÎÉÑ.
+
+ <p>æÁÊÌ cookies ÉÓÐÏÌØÚÕÅÔÓÑ ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÈÒÁÎÉÔØ ÐÁÒÁÍÅÔÒÙ ÓÅÁÎÓÁ ÒÁÂÏÔÙ.
+ ÷ ÞÁÓÔÎÏÓÔÉ, ÐÒÉ ÅÇÏ ÉÓÐÏÌØÚÏ×ÁÎÉÉ ×ÁÍ ÎÅ ÐÏÔÒÅÂÕÅÔÓÑ ××ÏÄÉÔØ ÐÁÒÏÌØ ÐÒÉ
+ ×ÙÐÏÌÎÅÎÉÉ ÌÀÂÏÊ ÁÄÍÉÎÉÓÔÒÁÔÉ×ÎÏÊ ÏÐÅÒÁÃÉÉ. éÎÆÏÒÍÁÃÉÑ, Ó×ÑÚÁÎÎÁÑ Ó
+ ×ÁÛÉÍ ÓÅÁÎÓÏÍ ÒÁÂÏÔÙ, ÂÕÄÅÔ ÕÄÁÌÅÎÁ × ÍÏÍÅÎÔ, ËÏÇÄÁ ×Ù ×ÙÊÄÅÔÅ ÉÚ Ó×ÏÅÇÏ
+ ÂÒÁÕÚÅÒÁ. ÷Ù ÔÁËÖÅ ÍÏÖÅÔÅ Ñ×ÎÙÍ ÏÂÒÁÚÏÍ ÚÁ×ÅÒÛÉÔØ ÒÁÂÏÔÕ, ÝÅÌËÎÕ× ÎÁ
+ ÓÓÙÌËÕ <em>ïÔËÌÀÞÉÔØÓÑ</em> × ÒÁÚÄÅÌÅ <em>Other Administrative
+ Activities</em> (÷Ù Õ×ÉÄÉÔÅ ÅÅ ÐÏÓÌÅ ÐÏÄËÌÀÞÅÎÉÑ Ë ÁÄÍÉÎÉÓÔÒÁÔÉ×ÎÏÍÕ
+ ÉÎÔÅÒÆÅÊÓÕ).
+</FORM>
+</body>
+</html>
diff --git a/templates/ru/refuse.txt b/templates/ru/refuse.txt
new file mode 100644
index 00000000..85cc062d
--- /dev/null
+++ b/templates/ru/refuse.txt
@@ -0,0 +1,13 @@
+÷ÁÛ ÚÁÐÒÏÓ, ÏÔÐÒÁ×ÌÅÎÎÙÊ × ÓÐÉÓÏË ÒÁÓÓÙÌËÉ %(listname)s
+
+ %(request)s
+
+ÂÙÌ ÏÔËÌÏÎÅÎ ÍÏÄÅÒÁÔÏÒÏÍ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ. ðÒÉÞÉÎÁ ÄÌÑ ÏÔËÁÚÁ,
+ÕËÁÚÁÎÎÁÑ ÍÏÄÅÒÁÔÏÒÏÍ, ÐÒÉ×ÅÄÅÎÁ ÎÉÖÅ:
+
+"%(reason)s"
+
+ìÀÂÙÅ ×ÏÐÒÏÓÙ É/ÉÌÉ ËÏÍÍÅÎÔÁÒÉÉ ÷Ù ÍÏÖÅÔÅ ÎÁÐÒÁ×ÉÔØ
+ÁÄÍÉÎÉÓÔÒÁÔÏÒÕ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ ÐÏ ÁÄÒÅÓÕ:
+
+ %(adminaddr)s
diff --git a/templates/ru/roster.html b/templates/ru/roster.html
new file mode 100644
index 00000000..30c5f7c0
--- /dev/null
+++ b/templates/ru/roster.html
@@ -0,0 +1,48 @@
+<!-- $Revision: 5624 $ -->
+<HTML>
+<HEAD>
+ <TITLE>ðÏÄÐÉÓÞÉËÉ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ <MM-List-Name></TITLE>
+</HEAD>
+<BODY BGCOLOR="#ffffff">
+<P>
+ <TABLE WIDTH="100%" COLS="1" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1">ðÏÄÐÉÓÞÉËÉ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ <MM-List-Name></FONT></B>
+ </TD>
+ </TR>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" ALIGN="CENTER">
+
+ <P align = "right"> <MM-lang-form-start><MM-displang-box>
+ <MM-list-langs><MM-form-end></p>
+
+ <P>äÌÑ ÐÒÏÓÍÏÔÒÁ É/ÉÌÉ ÉÚÍÅÎÅÎÉÑ ÐÁÒÁÍÅÔÒÏ× Ó×ÏÅÊ ÐÏÄÐÉÓËÉ, ÎÁÖÍÉÔÅ
+ ÎÁ ÓÓÙÌËÕ Ó ×ÁÛÉÍ ÜÌÅËÔÒÏÎÎÙÍ ÁÄÒÅÓÏÍ.<br>
+ <I>(ÄÏÓÔÁ×ËÁ ÐÏÄÐÉÓËÉ ÐÏÌØÚÏ×ÁÔÅÌÑÍ, ÕËÁÚÁÎÎÙÈ × ÓËÏÂËÁÈ, × ÎÁÓÔÏÑÝÉÊ ÚÁÂÌÏËÉÒÏ×ÁÎÁ)</I></P>
+ </TD>
+ </TR>
+ <TR WIDTH="100%" VALIGN="top">
+ <TD BGCOLOR="#FFF0D0" WIDTH="50%">
+ <center>
+ <B><FONT COLOR="#000000">ðÏÄÐÉÓÞÉËÏ×, ÐÏÌÕÞÁÀÝÉÈ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ <MM-List-Name> ÏÂÙÞÎÙÍ ÏÂÒÁÚÏÍ: <MM-Num-Reg-Users></FONT></B>
+ </center>
+ </TD>
+ <TD BGCOLOR="#FFF0D0" WIDTH="50%">
+ <center>
+ <B><FONT COLOR="#000000">ðÏÄÐÉÓÞÉËÏ×, ÐÏÌÕÞÁÀÝÉÈ ÄÁÊÄÖÅÓÔÙ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ <MM-List-Name>: <MM-Num-Digesters></FONT></B>
+ </center>
+ </TD>
+ </TR>
+ <TR VALIGN="top">
+ <td>
+ <P><MM-Regular-Users>
+ </td>
+ <td>
+ <P><MM-Digest-Users>
+ </td>
+ </tr>
+</table>
+<MM-Mailman-Footer>
+</BODY>
+</HTML>
diff --git a/templates/ru/s2s.py b/templates/ru/s2s.py
new file mode 100755
index 00000000..5f3e08bd
--- /dev/null
+++ b/templates/ru/s2s.py
@@ -0,0 +1,66 @@
+#! /usr/bin/python
+
+# A simple script to check the status of the translation.
+
+import sys, string
+from pprint import pprint
+
+def chop (line):
+ if line[-2:] == '\r\n':
+ line = line[:-2]
+
+ if line[-1:] == '\n':
+ line = line[:-1]
+
+ return line
+
+def cmprevision (a, b):
+ '''revisions are something delimited with dots'''
+
+ return cmp (map (lambda x: x.lower (), a.split ('.')), map (lambda x: x.lower (), b.split ('.')))
+
+name = None
+revision = None
+
+files = {}
+
+for line in sys.stdin.readlines ():
+ parts = string.split (chop (line))
+
+ if len (parts) > 0:
+ if parts[0] == 'File:':
+ name = parts[1]
+ elif parts[0] == 'Repository':
+ files[name] = parts[2]
+
+# pprint (files)
+
+action = 0
+
+for line in open ('status', 'r').readlines ():
+ parts = string.split (chop (line))
+
+ if len (parts) > 0:
+ if files.has_key (parts[0]):
+ pass # check the version
+
+ relation = cmprevision (parts[1], files[parts[0]])
+
+ if relation < 0:
+ print 'Update: %s (%s -> %s)' % (parts[0], parts[1], files[parts[0]])
+ action = 1
+ elif relation > 0:
+ print 'Downgrade?: %s (%s -> %s)' % (parts[0], parts[1], files[parts[0]])
+ action = 1
+
+ del files[parts[0]] # delete the item
+ else:
+ print 'Delete:', parts[0]
+ action = 1
+
+for file in files.keys ():
+ print 'New:', file
+ action = 1
+
+if not action:
+ print 'You are translating the latest versions'
diff --git a/templates/ru/status b/templates/ru/status
new file mode 100644
index 00000000..fb267c74
--- /dev/null
+++ b/templates/ru/status
@@ -0,0 +1,42 @@
+admindbdetails.html 2.1 done
+admindbpreamble.html 2.3 done
+adminsubscribeack.txt 2.0 done
+adminunsubscribeack.txt 2.0 done
+admlogin.html 2.0 done
+approve.txt 2.0 done
+article.html 2.2 done
+bounce.txt 2.1 done
+checkdbs.txt 2.0 done
+convert.txt 2.0 done
+cronpass.txt 2.0 done
+headfoot.html 2.1 done
+help.txt 2.2 done
+invite.txt 2.0 done
+listinfo.html 2.4 done
+masthead.txt 2.0 done
+newlist.txt 2.1 done
+nomoretoday.txt 2.0 done
+options.html 2.10 started
+postack.txt 2.1 done
+postauth.txt 2.0 done
+postheld.txt 2.1 done
+private.html 2.1 done
+refuse.txt 2.0 done
+roster.html 2.0 done
+subauth.txt 2.1 done
+subscribeack.txt 2.1 done
+subscribe.html 2.1 done
+unsub.txt 2.1 done
+unsubauth.txt 2.0 done
+userpass.txt 2.1 done
+verify.txt 2.1 done
+emptyarchive.html 2.0 done
+admindbsummary.html 2.0 done
+disabled.txt 2.1 done
+archidxentry.html 2.0 done
+archidxfoot.html 2.0 done
+archidxhead.html 2.0 done
+archlistend.html 2.0 done
+archliststart.html 2.0 done
+archtocentry.html 2.0 done
+archtoc.html 1.2 done
diff --git a/templates/ru/subauth.txt b/templates/ru/subauth.txt
new file mode 100644
index 00000000..0dfca09e
--- /dev/null
+++ b/templates/ru/subauth.txt
@@ -0,0 +1,9 @@
+ôÒÅÂÕÅÔÓÑ ×ÁÛÁ ÓÁÎËÃÉÑ ÎÁ ÄÏÂÁ×ÌÅÎÉÅ ÎÏ×ÏÇÏ ÐÏÄÐÉÓÞÉËÁ
+
+ ëÔÏ: %(username)s
+ óÐÉÓÏË: %(listname)s@%(hostname)s
+
+äÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÷Ù ÍÏÇÌÉ ÐÅÒÅÊÔÉ ÐÒÑÍÏ Ë ÏÂÒÁÂÏÔËÅ ÁÄÍÉÎÉÓÔÒÁÔÉ×ÎÙÈ
+ÚÁÐÒÏÓÏ×, ×ÏÓÐÏÌØÚÕÊÔÅÓØ ÜÔÏÊ ÓÓÙÌËÏÊ:
+
+ %(admindb_url)s
diff --git a/templates/ru/subscribe.html b/templates/ru/subscribe.html
new file mode 100644
index 00000000..3e39fcaa
--- /dev/null
+++ b/templates/ru/subscribe.html
@@ -0,0 +1,8 @@
+<html>
+<head><title>òÅÚÕÌØÔÁÔÙ ÐÏÄÐÉÓËÉ ÎÁ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ <MM-List-Name></title></head>
+<body bgcolor="white">
+<h1>òÅÚÕÌØÔÁÔÙ ÐÏÄÐÉÓËÉ ÎÁ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ <MM-List-Name></h1>
+<MM-Results>
+<MM-Mailman-Footer>
+</body>
+</html>
diff --git a/templates/ru/subscribeack.txt b/templates/ru/subscribeack.txt
new file mode 100644
index 00000000..99fdd5d9
--- /dev/null
+++ b/templates/ru/subscribeack.txt
@@ -0,0 +1,41 @@
+
+äÏÂÒÏ ÐÏÖÁÌÏ×ÁÔØ × ÓÐÉÓÏË ÒÁÓÓÙÌËÉ %(real_name)s@%(host_name)s.
+%(welcome)s
+äÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÒÁÓÐÒÏÓÔÒÁÎÉÔØ ÓÏÏÂÝÅÎÉÅ ÓÒÅÄÉ ÕÞÁÓÔÎÉËÏ× ÓÐÉÓËÁ
+ÒÁÓÓÙÌËÉ, ÉÓÐÏÌØÚÕÊÔÅ ÁÄÒÅÓ
+
+ %(emailaddr)s
+
+ïÂÝÁÑ ÉÎÆÏÒÍÁÃÉÑ Ï ÓÐÉÓËÅ ÒÁÓÓÙÌËÉ ÄÏÓÔÕÐÎÁ ÎÁ ÓÔÒÁÎÉÃÅ
+
+ %(listinfo_url)s
+
+åÓÌÉ ÷Ù ÈÏÔÉÔÅ ÐÒÅËÒÁÔÉÔØ ÐÏÄÐÉÓËÕ ÉÌÉ ÉÚÍÅÎÉÔØ ÐÁÒÁÍÅÔÒÙ ÄÏÓÔÁ×ËÉ
+ÓÏÏÂÝÅÎÉÊ (ÔÁËÉÅ ËÁË ÏÂßÅÄÉÎÅÎÉÅ ÓÏÏÂÝÅÎÉÊ × ÄÁÊÄÖÅÓÔÙ), ÉÚÍÅÎÉÔØ
+ÐÁÒÏÌØ É Ô.Ð., ÐÏÓÅÔÉÔÅ ÓÔÒÁÎÉÃÕ
+
+ %(optionsurl)s
+%(umbrella)s
+
+üÔÉ ÖÅ ÉÚÍÅÎÅÎÉÑ ÷Ù ÍÏÖÅÔÅ ÓÄÅÌÁÔØ, ÏÔÐÒÁ×É× ÐÉÓØÍÏ Ó ÎÅÏÂÈÏÄÉÍÙÍÉ
+ËÏÍÁÎÄÁÍÉ ÐÏ ÁÄÒÅÓÕ
+
+ %(real_name)s-request@%(host_name)s
+
+äÌÑ ÐÏÌÕÞÅÎÉÑ ÉÎÓÔÒÕËÃÉÊ Ï ×ÏÚÍÏÖÎÙÈ ËÏÍÁÎÄÁÈ É ÉÈ ÎÁÚÎÁÞÅÎÉÉ
+ÏÔÐÒÁרÔÅ ÐÏ ÜÔÏÍÕ ÁÄÒÅÓÕ ÐÉÓØÍÏ, × ËÁÞÅÓÔ×Å ÔÅÍÙ ÉÌÉ × ÔÅËÓÔÅ
+ËÏÔÏÒÏÇÏ ÐÏÍÅÓÔÉÔÅ ÏÄÎÕ ËÏÍÁÎÄÕ -- 'help' (ÂÅÚ ËÁ×ÙÞÅË).
+
+äÌÑ ×ÙÐÏÌÎÅÎÉÑ ÎÅËÏÔÏÒÙÈ ËÏÍÁÎÄ ÷ÁÍ ÐÏÔÒÅÂÕÅÔÓÑ ÕËÁÚÁÔØ ÐÁÒÏÌØ.
+÷ÁÛ ÐÁÒÏÌØ:
+
+ %(password)s
+
+åÓÌÉ ÷Ù ÚÁÂÕÄÅÔÅ ÐÁÒÏÌØ - ÎÅ ÂÅÓÐÏËÏÊÔÅÓØ. åÖÅÍÅÓÑÞÎÏ ÷Ù ÂÕÄÅÔÅ
+ÐÏÌÕÞÁÔØ ÐÉÓØÍÏ ÏÔ %(host_name)s Ó ÎÁÐÏÍÉÎÁÎÉÅÍ Ï ÓÐÉÓËÁÈ ÒÁÓÓÙÌËÉ, ×
+ËÏÔÏÒÙÈ ÷Ù ÕÞÁÓÔ×ÕÅÔÅ. äÌÑ ËÁÖÄÏÇÏ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ ÂÕÄÅÔ ÕËÁÚÁÎ
+ÐÁÒÏÌØ, ÉÓÐÏÌØÚÕÅÍÙÊ ÷ÁÍÉ. ÷ ÜÔÏÍ ÖÅ ÐÉÓØÍÅ ÂÕÄÕÔ ÉÎÓÔÒÕËÃÉÉ Ï ÔÏÍ,
+ËÁË ÏÔËÁÚÁÔØÓÑ ÏÔ ÐÏÄÐÉÓËÉ ÉÌÉ ÉÚÍÅÎÉÔØ ÐÁÒÁÍÅÔÒÙ ÄÏÓÔÁ×ËÉ ÓÏÏÂÝÅÎÉÊ.
+
+ëÒÏÍÅ ÔÏÇÏ, ÎÁ ÓÔÒÁÎÉÃÅ %(optionsurl)s ÷Ù ÍÏÖÅÔÅ × ÌÀÂÏÊ ÍÏÍÅÎÔ
+ÚÁÐÒÏÓÉÔØ ÏÔÐÒÁ×ËÕ ÐÁÒÏÌÑ ÎÁ ÷ÁÛ ÁÄÒÅÓ.
diff --git a/templates/ru/unsub.txt b/templates/ru/unsub.txt
new file mode 100644
index 00000000..a3fdee3c
--- /dev/null
+++ b/templates/ru/unsub.txt
@@ -0,0 +1,24 @@
+ðÏÄÔ×ÅÒÖÄÅÎÉÅ ÕÄÁÌÅÎÉÑ ÐÏÄÐÉÓËÉ ÎÁ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ %(listname)s
+
+äÌÑ ×ÁÛÅÇÏ ÁÄÒÅÓÁ -- %(email)s -- ÂÙÌ ÐÏÌÕÞÅÎ ÚÁÐÒÏÓ (ÏÔÐÒÁ×ÌÅÎÎÙÊ Ó
+ÁÄÒÅÓÁ %(remote)s) ÎÁ ÕÄÁÌÅÎÉÅ ÐÏÄÐÉÓËÉ ÎÁ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ
+%(listaddr)s. äÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÐÏÄÔ×ÅÒÄÉÔØ ÜÔÕ ÏÐÅÒÁÃÉÀ, ×ÁÍ
+ÄÏÓÔÁÔÏÞÎÏ ÏÔ×ÅÔÉÔØ ÎÁ ÜÔÏ ÐÉÓØÍÏ, ÎÅ ÉÚÍÅÎÑÑ ÓÔÒÏÞËÕ ÔÅÍÙ ÐÉÓØÍÁ. ÷Ù
+ÔÁËÖÅ ÍÏÖÅÔÅ ÐÏÄÔ×ÅÒÄÉÔØ ÜÔÕ ÏÐÅÒÁÃÉÀ, ÐÏÓÅÔÉ× ÓÔÒÁÎÉÃÕ
+
+ %(confirmurl)s
+
+éÌÉ ÖÅ × ÔÅÌÅ ÐÉÓØÍÁ ÕËÁÖÉÔÅ (ÜÔÏ ÄÏÌÖÎÁ ÂÙÔØ ÅÄÉÎÓÔ×ÅÎÎÁÑ ÓÔÒÏÞËÁ
+×ÁÛÅÇÏ ÐÉÓØÍÁ):
+
+ confirm %(cookie)s
+
+ïÂÒÁÔÉÔÅ ×ÎÉÍÁÎÉÅ, ÞÔÏ ÅÓÌÉ ÷Ù ÐÒÏÓÔÏ ÏÔ×ÅÔÉÔÅ ÎÁ ÜÔÏ ÐÉÓØÍÏ, ÜÔÏÇÏ
+ÄÏÌÖÎÏ ÂÙÔØ ÄÏÓÔÁÔÏÞÎÏ, ÐÏÓËÏÌØËÕ ÂÏÌØÛÉÎÓÔ×Ï ÓÏ×ÒÅÍÅÎÎÙÈ ÐÒÏÇÒÁÍÍ ÄÌÑ
+ÒÁÂÏÔÙ Ó ÜÌÅËÔÒÏÎÎÏÊ ÐÏÞÔÙ, ÏÓÔÁ×ÌÑÀÔ ÔÅÍÕ ÐÉÓØÍÁ ÎÅÉÚÍÅÎÎÏÊ
+(ÄÏÂÁ×ÌÅÎÉÅ "Re:" ÉÌÉ "îÁ:" ÎÅ ×ÌÉÑÅÔ ÎÁ ÒÅÚÕÌØÔÁÔ).
+
+åÓÌÉ ÷Ù ÎÅ ÈÏÔÉÔÅ ÏÔËÁÚÙ×ÁÔØÓÑ ÏÔ ÐÏÄÐÉÓËÉ ÎÁ ÜÔÏÔ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ,
+ÐÒÏÓÔÏ ÐÒÏÉÇÎÏÒÉÒÕÊÔÅ ÜÔÏ ÓÏÏÂÝÅÎÉÅ. åÓÌÉ ÷Ù ÓÞÉÔÁÅÔÅ, ÞÔÏ ËÔÏ-ÔÏ
+ÐÏÐÙÔÁÌÓÑ ÕÄÁÌÉÔØ ×ÁÛÕ ÐÏÄÐÉÓËÕ ÐÏ ÚÌÏÍÕ ÕÍÙÓÌÕ, ÷Ù ÍÏÖÅÔÅ Ó×ÑÚÁÔØÓÑ
+Ó ÁÄÍÉÎÉÓÔÒÁÔÏÒÏÍ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ ÐÏ ÁÄÒÅÓÕ %(listadmin)s.
diff --git a/templates/ru/unsubauth.txt b/templates/ru/unsubauth.txt
new file mode 100644
index 00000000..0d83de0f
--- /dev/null
+++ b/templates/ru/unsubauth.txt
@@ -0,0 +1,9 @@
+ôÒÅÂÕÅÔÓÑ ×ÁÛÁ ÓÁÎËÃÉÑ ÎÁ ÐÒÅËÒÁÝÅÎÉÅ ÐÏÄÐÉÓËÉ
+
+ ëÔÏ: %(username)s
+ óÐÉÓÏË: %(listname)s@%(hostname)s
+
+äÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÷Ù ÍÏÇÌÉ ÐÅÒÅÊÔÉ ÐÒÑÍÏ Ë ÏÂÒÁÂÏÔËÅ ÁÄÍÉÎÉÓÔÒÁÔÉ×ÎÙÈ
+ÚÁÐÒÏÓÏ×, ×ÏÓÐÏÌØÚÕÊÔÅÓØ ÜÔÏÊ ÓÓÙÌËÏÊ:
+
+ %(admindb_url)s
diff --git a/templates/ru/userpass.txt b/templates/ru/userpass.txt
new file mode 100644
index 00000000..7efb934f
--- /dev/null
+++ b/templates/ru/userpass.txt
@@ -0,0 +1,22 @@
+÷Ù ÉÌÉ ËÔÏ-ÔÏ ×ÍÅÓÔÏ ×ÁÓ ÚÁÐÒÏÓÉÌ ÐÁÒÏÌØ ×ÁÛÅÊ ÐÏÄÐÉÓËÉ ÎÁ ÓÐÉÓÏË
+ÒÁÓÓÙÌËÉ $(fqdn_lname)s. üÔÏÔ ÐÁÒÏÌØ ×ÁÍ ÎÅÏÂÈÏÄÉÍ ÄÌÑ ËÁË ÔÏÇÏ,
+ÞÔÏÂÙ ÉÚÍÅÎÑÔØ ÐÁÒÁÍÅÔÒÙ ×ÁÛÅÊ ÐÏÄÐÉÓËÉ, ÔÁË É ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ
+ÏÔËÁÚÁÔØÓÑ ÏÔ ÐÏÄÐÉÓËÉ ÎÁ ÜÔÏÔ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ.
+
+áÄÒÅÓ ×ÁÛÅÊ ÐÏÄÐÉÓËÉ: %(user)s
+
+ðÁÒÏÌØ ×ÁÛÅÊ ÐÏÄÐÉÓËÉ ÎÁ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ %(listname)s: %(password)s
+
+äÌÑ ÉÚÍÅÎÅÎÉÑ ÐÁÒÁÍÅÔÒÏ× ×ÁÛÅÊ ÐÏÄÐÉÓËÉ ÷Ù ÍÏÖÅÔÅ ÐÅÒÅÊÔÉ ÎÁ ÓÔÒÁÎÉÃÕ
+
+ %(options_url)s
+
+ìÉÂÏ ÷Ù ÍÏÖÅÔÅ ÜÔÏ ÓÄÅÌÁÔØ, ÏÔÐÒÁ×É× ÐÉÓØÍÏ ÐÏ ÁÄÒÅÓÕ
+
+ %(requestaddr)s
+
+(ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÓÐÉÓËÁ ËÏÍÁÎÄ ÏÔÐÒÁרÔÅ ÐÉÓØÍÏ, × ÔÅÌÅ ËÏÔÏÒÏÇÏ ÂÕÄÅÔ
+ËÏÍÁÎÄÁ "help").
+
+÷ÓÅ ×ÏÐÒÏÓÙ É/ÉÌÉ ËÏÍÍÅÎÔÁÒÉÉ ÷Ù ÍÏÖÅÔÅ ÏÔÐÒÁ×ÌÑÔØ ÁÄÍÉÎÉÓÔÒÁÔÏÒÕ
+ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ ÐÏ ÁÄÒÅÓÕ %(owneraddr)s.
diff --git a/templates/ru/verify.txt b/templates/ru/verify.txt
new file mode 100644
index 00000000..a9350c92
--- /dev/null
+++ b/templates/ru/verify.txt
@@ -0,0 +1,27 @@
+ðÏÄÔ×ÅÒÖÄÅÎÉÅ ÐÏÄÐÉÓËÉ ÎÁ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ %(listname)s
+
+äÌÑ ×ÁÛÅÇÏ ÁÄÒÅÓÁ -- %(email)s -- ÂÙÌ ÐÏÌÕÞÅÎ ÚÁÐÒÏÓ (ÏÔÐÒÁ×ÌÅÎÎÙÊ Ó
+ÁÄÒÅÓÁ %(remote)s) ÎÁ ÄÏÂÁ×ÌÅÎÉÅ ÅÇÏ Ë ÓÐÉÓËÕ ÐÏÄÐÉÓÞÉËÏ× ÎÁ ÓÐÉÓÏË
+ÒÁÓÓÙÌËÉ %(listaddr)s. äÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÐÏÄÔ×ÅÒÄÉÔØ ÜÔÕ ÏÐÅÒÁÃÉÀ, ×Ù
+ÄÏÌÖÎÙ ×ÙÐÏÌÎÉÔØ ÏÄÎÕ ÉÚ ÓÌÅÄÕÀÝÉÈ ÏÐÅÒÁÃÉÊ.
+
+ðÏÓÅÔÉÔØ ÓÔÒÁÎÉÃÕ
+
+ %(confirmurl)s
+
+éÌÉ ÖÅ ÐÏ ÁÄÒÅÓÕ %(requestaddr)s ÏÔÐÒÁ×ÉÔØ ÐÉÓØÍÏ, × ÔÅÌÅ ËÏÔÏÒÏÇÏ
+×ÁÍ ÎÅÏÂÈÏÄÉÍÏ ÕËÁÚÁÔØ (ÜÔÏ ÄÏÌÖÎÁ ÂÙÔØ ÅÄÉÎÓÔ×ÅÎÎÁÑ ÓÔÒÏÞËÁ ×ÁÛÅÇÏ
+ÐÉÓØÍÁ):
+
+ confirm %(cookie)s
+
+éÌÉ ÖÅ ÐÒÏÓÔÏ ÏÔ×ÅÔÉÔØ ÎÁ ÜÔÏ ÐÉÓØÍÏ, ÞÔÏ ÄÏÌÖÎÏ ÂÙÔØ ÄÏÓÔÁÔÏÞÎÏ,
+ÐÏÓËÏÌØËÕ ÂÏÌØÛÉÎÓÔ×Ï ÓÏ×ÒÅÍÅÎÎÙÈ ÐÒÏÇÒÁÍÍ ÄÌÑ ÒÁÂÏÔÙ Ó ÜÌÅËÔÒÏÎÎÏÊ
+ÐÏÞÔÙ, ÏÓÔÁ×ÌÑÀÔ ÔÅÍÕ ÐÉÓØÍÁ ÎÅÉÚÍÅÎÎÏÊ (ÄÏÂÁ×ÌÅÎÉÅ "Re:" ÉÌÉ "îÁ:"
+ÎÅ ×ÌÉÑÅÔ ÎÁ ÒÅÚÕÌØÔÁÔ).
+
+åÓÌÉ ÷Ù ÎÅ ÖÅÌÁÅÔÅ ÐÏÄÐÉÓÙ×ÁÔØÓÑ ÎÁ ÜÔÏÔ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ, ×ÁÍ ÎÅ ÎÕÖÎÏ
+ÎÉÞÅÇÏ ÄÅÌÁÔØ, ÐÒÏÓÔÏ ÐÒÏÉÇÎÏÒÉÒÕÊÔÅ ÜÔÏ ÓÏÏÂÝÅÎÉÅ. åÓÌÉ ÷Ù ÄÕÍÁÅÔÅ,
+ÞÔÏ ×ÁÓ ÐÙÔÁÀÔÓÑ ÐÏÄÐÉÓÁÔØ ÎÁ ÜÔÏÔ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ ÐÏ ÚÌÏÍÕ ÕÍÙÓÌÕ,
+ÉÌÉ ÖÅ Õ ×ÁÓ ×ÏÚÎÉËÌÉ ÄÒÕÇÉÅ ×ÏÐÒÏÓÙ, ÷Ù ÍÏÖÅÔÅ ÏÔÐÒÁ×ÉÔØ ÉÈ ÐÏÄ
+ÁÄÒÅÓÕ %(listadmin)s.
diff --git a/templates/sv/admindbdetails.html b/templates/sv/admindbdetails.html
new file mode 100644
index 00000000..b92fb490
--- /dev/null
+++ b/templates/sv/admindbdetails.html
@@ -0,0 +1,21 @@
+<body>Administrativa f&ouml;rfr&aring;gningar kan visas p&aring; tv&aring; s&auml;tt, antingen som en <a
+href="%(summaryurl)s">&ouml;versikt</a>, eller med <em>alla detaljer</em>. P&aring; &ouml;versiktssidan visas b&aring;de v&auml;ntande anm&auml;lningar/avanm&auml;lningar och e-postbrev som v&auml;ntar p&aring; godk&auml;nnande f&ouml;r att distribueras via listan. Detaljsidan visar dessutom e-postbrevens meddelandehuvuden och ett utdrag av inneh&aring;llet.
+<p>P&aring; b&aring;da sidorna kan du ange f&ouml;ljande &aring;tg&auml;rder:
+<ul>
+<li><b>V&auml;nta</b> -- V&auml;nta med avg&ouml;randet. Ingenting blir gjort med denna f&ouml;rfr&aring;gan nu, men e-postbrev som v&auml;ntar p&aring; godk&auml;nnande kan du h&aring;lla p&aring; eller skicka vidare (se nedan).
+<li><b>Godk&auml;nna</b> -- Godk&auml;nna meddelandet som det &auml;r och distribuera det till listan. F&ouml;r f&ouml;rfr&aring;gningar om medlemskap, anm&auml;lningar, avanm&auml;lningar och andra &auml;ndringar.
+<li><b>Avsl&aring;</b> -- Radera meddelandet och ge besked tillbaka till avs&auml;ndaren om att meddelandet inte blev godk&auml;nt. F&ouml;r f&ouml;rfr&aring;gningar om medlemskap, avslag p&aring; anm&auml;lan eller avanm&auml;lan. Du b&ouml;r alltid ocks&aring; ange en orsak i den tillh&ouml;rande textrutan.
+<li><b>Kasta</b> -- Radera meddelandet utan att n&aring;got besked skickas till avs&auml;ndaren. Anv&auml;ndbart f&ouml;r skr&auml;ppost och reklampost (spam). F&ouml;r f&ouml;rfr&aring;gningar om medlemskap, avslag p&aring; anm&auml;lan eller avanm&auml;lan utan att den som f&ouml;rs&ouml;kte anm&auml;la sig eller avanm&auml;la sig p&aring; listan f&aring;r veta n&aring;got.
+</ul>
+
+<p>Kryssa f&ouml;r <b>Beh&aring;ll meddelandet</b> om du &ouml;nskar att spara en kopia f&ouml;r systemets administrat&ouml;r. Detta kan vara anv&auml;ndbart f&ouml;r meddelanden som &auml;r f&ouml;rknippade med missbruk av systemet och som du egentligen vill radera, men som det kan vara nyttigt att ta en titt p&aring; senare.
+<p>Kryssa f&ouml;r <b>Skicka meddelandet vidare</b> och uppge en e-postadress om du vill skicka meddelandet vidare till n&aring;gon annan. F&ouml;r att redigera ett e-postbrev som h&aring;lls tillbaka innan det skickas till listan, b&ouml;r du skicka det till dig sj&auml;lv (eller eventuellt till listans &auml;gare), och radera det ursprungliga e-postbrevet. D&auml;refter, n&auml;r e-postbrevet kommer till din in-box, redigerar du det och g&ouml;r de &auml;ndringar som du &ouml;nskar. Skicka d&auml;refter brevet till listan p&aring;
+nytt med ett <tt>Approved:</tt> f&auml;lt i meddelandehuvudet efterf&ouml;ljt av listans l&ouml;senord. Kom ih&aring;g att det &auml;r vanlig netiquette i ett s&aring;dant fall att uppge att du har redigerat inneh&aring;llet.
+<p>Om avs&auml;ndaren &auml;r medlem av listan, men &auml;r modererad, kan du ta bort moderationsflaggan om du s&aring; &ouml;nskar. Detta &auml;r anv&auml;ndbart n&auml;r du har satt upp listan p&aring; ett s&aring;dant s&auml;tt att nya medlemmar har en pr&ouml;votid p&aring; listan, och du har best&auml;mt att den pr&ouml;votiden nu &auml;r &ouml;ver f&ouml;r denna medlem.
+<p>Om avs&auml;ndaren inte &auml;r medlem av listan, kan du f&aring; e-postadressen inlagd i ett av <em>avs&auml;ndarfiltren</em>. Avs&auml;ndarfilter f&ouml;rklaras p&aring; sidan <a
+href="%(filterurl)s">Filtrering av avs&auml;ndare</a> och kan vara inst&auml;llt p&aring; <b>auto-godk&auml;nna</b>, <b>auto-h&aring;llatillbaka</b>, <b>auto-avsl&aring;</b>, eller
+<b>auto-kasta</b>. Detta val kommer inte att vara tillg&auml;ngligt om adressen redan &auml;r
+inlagd i ett s&aring;dant filter.
+<p>Efter det att du gjort dina val, klickar du p&aring; knappen <em>Utf&ouml;r</em> &ouml;verst eller nederst p&aring; sidan f&ouml;r att verkst&auml;lla dina beslut.
+<p><a href="%(summaryurl)s">Tillbaka till &ouml;versiktssidan</a>.
+</body> \ No newline at end of file
diff --git a/templates/sv/admindbpreamble.html b/templates/sv/admindbpreamble.html
new file mode 100644
index 00000000..ae0c41c0
--- /dev/null
+++ b/templates/sv/admindbpreamble.html
@@ -0,0 +1,4 @@
+<body>Denna sida inneh&aring;ller n&aring;gra av de e-postbrev till listan <em>%(listname)s</em> som h&aring;lls tillbaka f&ouml;r godk&auml;nnande. Nu visar den %(description)s
+<p>V&auml;lj &ouml;nskat beslut f&ouml;r varje f&ouml;rfr&aring;gan. N&auml;r du &auml;r klar, klicka p&aring; <em>Utf&ouml;r</em>. N&auml;rmare instruktioner hittar du <a href="%(detailsurl)s">h&auml;r</a>.
+
+<p>Du kan ocks&aring; <a href="%(summaryurl)s">visa en &ouml;versikt</a> &ouml;ver alla f&ouml;rfr&aring;gningar som v&auml;ntar p&aring; ett avg&ouml;rande. </body> \ No newline at end of file
diff --git a/templates/sv/admindbsummary.html b/templates/sv/admindbsummary.html
new file mode 100644
index 00000000..8615045c
--- /dev/null
+++ b/templates/sv/admindbsummary.html
@@ -0,0 +1,3 @@
+<body>H&auml;r finns en &ouml;versikt &ouml;ver f&ouml;rfr&aring;gningar som ska avg&ouml;ras f&ouml;r e-postlistan <a href="%(adminurl)s"><em>%(listname)s</em></a>.<br>Eventuella ans&ouml;kningar om medlemskap till listan kommer att visas f&ouml;rst, d&auml;refter kommer meddelanden som har skickats till listan, men som beh&ouml;ver godk&auml;nnande f&ouml;r att bli distribuerade.
+<p>V&auml;lj &ouml;nskad &aring;tg&auml;rd f&ouml;r varje f&ouml;rfr&aring;gan och klicka p&aring; knappen<b><i> </i></b><i>Utf&ouml;r</i> n&auml;r du &auml;r klar. <a href="%(detailsurl)s">N&auml;rmare instruktioner</a> finns ocks&aring; tillg&auml;ngliga.
+<p>Du kan ocks&aring; <a href="%(viewallurl)s">visa alla detaljer f&ouml;r alla tillbakah&aring;llna meddelanden</a> om du s&aring; &ouml;nskar. </body> \ No newline at end of file
diff --git a/templates/sv/adminsubscribeack.txt b/templates/sv/adminsubscribeack.txt
new file mode 100644
index 00000000..35b500df
--- /dev/null
+++ b/templates/sv/adminsubscribeack.txt
@@ -0,0 +1 @@
+%(member)s är nu anmälda till listan %(listname)s.
diff --git a/templates/sv/adminunsubscribeack.txt b/templates/sv/adminunsubscribeack.txt
new file mode 100644
index 00000000..f931171b
--- /dev/null
+++ b/templates/sv/adminunsubscribeack.txt
@@ -0,0 +1,2 @@
+%(member)s är nu borttagna från listan %(listname)s.
+
diff --git a/templates/sv/admlogin.html b/templates/sv/admlogin.html
new file mode 100644
index 00000000..5fdfd1d3
--- /dev/null
+++ b/templates/sv/admlogin.html
@@ -0,0 +1,28 @@
+<html>
+<head>
+ <title>%(listname)s %(who)s Inloggning</title>
+</head>
+<body bgcolor="#ffffff">
+<FORM METHOD=POST ACTION="%(path)s">
+%(message)s
+ <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1">%(listname)s %(who)s Inloggning</FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <TD><div ALIGN="Right">Listan %(who)s l&ouml;senord:</div></TD>
+ <TD><INPUT TYPE="password" NAME="adminpw" SIZE="30"></TD>
+ </tr>
+ <tr>
+ <td colspan=2 align=middle><INPUT type="SUBMIT"
+ name="admlogin"
+ value="Logga in mig...">
+ </td>
+ </tr>
+ </TABLE>
+ <p><strong><em>Viktigt:</em></strong> Fr&aring;n och med nu m&aring;ste du ha alternativet cookies aktiverat i din browser, annars kommer inga administrativa &auml;ndringar att sparas.
+ <p><i>Session cookies</i> anv&auml;nds p&aring; Mailmans administrativa sidor, f&ouml;r att du inte ska beh&ouml;va uppge ditt l&ouml;senord f&ouml;r varje &auml;ndring som du g&ouml;r. Dessa cookies kommer att f&ouml;rsvinna automatiskt n&auml;r du st&auml;nger din browser. Du kan ocks&aring; ta bort dem manuellt genom att klicka p&aring; l&auml;nken <em>Logga ut</em> under <em>Andra administrativa aktiviteter</em> (som du f&aring;r upp efter att ha loggat in).</FORM>
+</body>
+</html>
diff --git a/templates/sv/approve.txt b/templates/sv/approve.txt
new file mode 100644
index 00000000..417e5ceb
--- /dev/null
+++ b/templates/sv/approve.txt
@@ -0,0 +1,14 @@
+Din förfrågan till %(requestaddr)s:
+
+ %(cmd)s
+
+har skickats vidare till den person som ansvarar för listan.
+
+Det är antagligen därför du försöker att anmäla dig till en 'stängd' lista.
+
+Du kommer att få ett e-postbrev med beslut så snart din förfrågan har
+behandlats.
+
+Frågor som rör policy för listan kan skickas till:
+
+ %(adminaddr)s
diff --git a/templates/sv/archtoc.html b/templates/sv/archtoc.html
new file mode 100644
index 00000000..533ee72f
--- /dev/null
+++ b/templates/sv/archtoc.html
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+ <HEAD>
+ <title>Arkiv f&ouml;r %(listname)s </title>
+ <META NAME="robots" CONTENT="noindex,follow">
+ %(meta)s
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <h1>Arkiv f&ouml;r %(listname)s </h1>
+ <p>
+ Du kan f&aring; <a href="%(listinfo)s">mer information om denna lista</a> eller
+ s&aring; kan du <a href="%(fullarch)s">ladda ner det kompletta arkivet</a>
+ (%(size)s).
+ </p>
+ %(noarchive_msg)s
+ %(archive_listing_start)s
+ %(archive_listing)s
+ %(archive_listing_end)s
+ </BODY>
+ </HTML>
diff --git a/templates/sv/archtocentry.html b/templates/sv/archtocentry.html
new file mode 100644
index 00000000..e78ba5ec
--- /dev/null
+++ b/templates/sv/archtocentry.html
@@ -0,0 +1,12 @@
+
+ <tr>
+ <td>%(archivelabel)s:</td>
+ <td>
+ <A href="%(archive)s/thread.html">[ Tr&aring;d (thread) ]</a>
+ <A href="%(archive)s/subject.html">[ &Auml;mne ]</a>
+ <A href="%(archive)s/author.html">[ Avs&auml;ndare ]</a>
+ <A href="%(archive)s/date.html">[ Datum ]</a>
+ </td>
+ %(textlink)s
+ </tr>
+
diff --git a/templates/sv/article.html b/templates/sv/article.html
new file mode 100644
index 00000000..80624964
--- /dev/null
+++ b/templates/sv/article.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+ <HEAD>
+ <TITLE> %(title)s
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:%(email_url)s?Subject=%(subject_url)s&In-Reply-To=%(in_reply_to_url)s">
+ <META NAME="robots" CONTENT="index,nofollow">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ %(encoding)s
+ %(prev)s
+ %(next)s
+ <H1>%(subject_html)s
+ </H1>
+ <B>%(author_html)s
+ </B>
+ <A HREF="mailto:%(email_url)s?Subject=%(subject_url)s&In-Reply-To=%(in_reply_to_url)s"
+ TITLE="%(subject_html)s">%(email_html)s
+ </A><BR>
+ <I>%(datestr_html)s</I>
+ <P><UL>
+ %(prev_wsubj)s
+ %(next_wsubj)s
+ <LI> <B>Meddelanden sorterade efter:</B>
+ <a href="date.html#%(sequence)s">[ datum ]</a>
+ <a href="thread.html#%(sequence)s">[ tr&aring;d (thread) ]</a>
+ <a href="subject.html#%(sequence)s">[ &auml;mne ]</a>
+ <a href="author.html#%(sequence)s">[ avs&auml;ndare ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+%(body)s
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ %(prev_wsubj)s
+ %(next_wsubj)s
+ <LI> <B>Meddelanden sorterade efter:</B>
+ <a href="date.html#%(sequence)s">[ datum ]</a>
+ <a href="thread.html#%(sequence)s">[ tr&aring;d (thread) ]</a>
+ <a href="subject.html#%(sequence)s">[ &auml;mne ]</a>
+ <a href="author.html#%(sequence)s">[ avs&auml;ndare ]</a>
+ </LI>
+ </UL>
+<hr>
+<a href="%(listurl)s">More information about the %(listname)s
+mailing list</a><br>
+</body></html>
diff --git a/templates/sv/bounce.txt b/templates/sv/bounce.txt
new file mode 100644
index 00000000..332570d9
--- /dev/null
+++ b/templates/sv/bounce.txt
@@ -0,0 +1,13 @@
+Detta är ett returmeddelande från listsystemet Mailman:
+
+ Lista: %(listname)s
+ Medlem: %(addr)s
+ Händelse: Medlemskapet %(negative)s%(did)s.
+ På grund av: Permanent retur eller för mycket i retur
+ %(but)s
+
+%(reenable)s
+Meddelandet om retur återges nedan.
+
+Frågor?
+Kontakta systemadministratören för Mailman på %(owneraddr)s.
diff --git a/templates/sv/checkdbs.txt b/templates/sv/checkdbs.txt
new file mode 100644
index 00000000..de81b3d6
--- /dev/null
+++ b/templates/sv/checkdbs.txt
@@ -0,0 +1,7 @@
+Listan %(real_name)s@%(host_name)s har %(count)d en förfrågan/förfrågningar
+som väntar på din behandling på:
+
+ %(adminDB)s
+
+Var vänlig behandla dessa så snart du får tid.
+Denna påminnelse kommer att skickas till dig dagligen. \ No newline at end of file
diff --git a/templates/sv/convert.txt b/templates/sv/convert.txt
new file mode 100644
index 00000000..f78f5334
--- /dev/null
+++ b/templates/sv/convert.txt
@@ -0,0 +1,33 @@
+Listan '%(listname)s' har just genomgått en stor ändring.
+Den styrs nu av ett nytt listsystem, som heter "Mailman". Detta nya
+system kommer förhoppningsvis att lösa problem som denna lista har haft.
+
+Hur påverkar det mig?
+
+1) E-post som ska gå til alla på listan ska skickas till: %(listaddr)s
+
+2) Du har fått dig tilldelat ett lösenord som ska förhindra andra från att
+ avanmäla dig från listan utan att du vet om det. Du kommer att få lösenordet
+ i ett e-postbrev, som du kanske redan fått. Var inte rädd för att du ska
+ glömma bort lösenordet. Det kan bli så att du kommer att få ta emot en
+ påminnelse om lösenordet en gång i månaden. Dessutom kan du via webbsidan be
+ att få det skickat till dig.
+
+3) Om du har tillgång till Internet, kan du gå in på e-postlistans webbsida
+ när som helst för att avanmäla dig, ta emot sammandrag av trafik på
+ listan, ändra andra inställningar och se tidigare meddelanden som
+ skickats till listan. Denna webbsida finner du på:
+
+ %(listinfo_url)s
+
+4) Har du inte tillgång till Internet, kan du göra detta via e-post.
+ Skicka ett e-postbrev till %(requestaddr)s med ordet "help" i ämnesfältet
+ eller som innehåll i e-postbrevet. Du kommer då att få ett automatiskt svar
+ med hjälp och ytterligare förklaring.
+
+Eventuella frågor eller problem med det nya systemet skickas till:
+%(adminaddr)s
+
+Dtta meddelande genererades automatiskt av Mailman %(version)s. För mer
+information om programvaran Mailman, besök Mailmans hemsida på
+http://www.list.org/
diff --git a/templates/sv/cronpass.txt b/templates/sv/cronpass.txt
new file mode 100644
index 00000000..727cab69
--- /dev/null
+++ b/templates/sv/cronpass.txt
@@ -0,0 +1,19 @@
+Detta är en påminnelse som skickas ut en gång i månaden, till följd
+av ditt medlemskap på listor på %(hostname)s. Här följer lite information
+om ditt medlemskap, hur du kan ändra det och hur du kan avanmäla dig
+från en lista.
+
+Du kan besöka webbsidorna för att justera inställningar för ditt medlemskap,
+bland annat avanmäla dig, få en sammandragsversion, stoppa brev från listan
+under en period osv.
+
+Allt detta kan du också göra via e-post. För mer information, skicka ett
+e-postbrev till '-request' adressen till en lista (till exempel %(exreq)s),
+som innehåller enbart ordet 'help'. Du kommer då att få ett e-postbrev med
+närmare instruktioner.
+
+Har du frågor, problem, kommentarer, etc, skicka dem till
+%(owner)s.
+
+Lösenord för %(useraddr)s:
+
diff --git a/templates/sv/disabled.txt b/templates/sv/disabled.txt
new file mode 100644
index 00000000..8c24aa11
--- /dev/null
+++ b/templates/sv/disabled.txt
@@ -0,0 +1,25 @@
+Ditt medlemskap på e-postlistan %(listname)s är för närvarande avaktiverat
+%(reason)s. Du kommer
+inte att få ta emot fler meddelanden från denna lista förrän du aktiverar
+ditt medlemskap igen. Du kommer att få %(noticesleft)s påminnelser som denna
+innan du blir permanent avanmäld från listan.
+
+För att aktivera mottagningen av meddelanden igen, kan du svara på detta e-postbrev
+(med Subject: fältet som det är), eller gå in på denna webbsida:
+
+ %(confirmurl)s
+
+Du kan också gå in på din personliga medlemswebbsida:
+
+ %(optionsurl)s
+
+På den sidan kan du också anpassa distributionen av e-postbrev från listan, till
+exempel ändra e-postadress eller om du vill använda sammandragsversion eller inte.
+Ditt lösenord är:
+
+ %(password)s
+
+Har du frågor eller problem, kan du kontakta listans ägare på
+följande e-postadress:
+
+ %(owneraddr)s
diff --git a/templates/sv/emptyarchive.html b/templates/sv/emptyarchive.html
new file mode 100644
index 00000000..be7c6818
--- /dev/null
+++ b/templates/sv/emptyarchive.html
@@ -0,0 +1,11 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+ <HEAD>
+ <title>Arkiv f&ouml;r e-postlistan %(listname)s</title>
+ <META NAME="robots" CONTENT="noindex,follow">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <h1>Arkiv f&ouml;r e-postlistan %(listname)s</h1>
+ <p>Inga meddelanden har skickats till denna lista &auml;n, s&aring; arkivet &auml;r f&ouml;r n&auml;rvarande tomt. <a href="%(listinfo)s">Mer information om listan</a> finns tillg&auml;nglig. </p>
+ </BODY>
+ </HTML>
diff --git a/templates/sv/headfoot.html b/templates/sv/headfoot.html
new file mode 100644
index 00000000..4aa13f5d
--- /dev/null
+++ b/templates/sv/headfoot.html
@@ -0,0 +1,9 @@
+<body>Den h&auml;r texten kan inneh&aring;lla formateringskoder som byts ut mot v&auml;rden fr&aring;n listans upps&auml;ttning. F&ouml;r detaljer, se <a href="http://www.python.org/doc/current/lib/typesseq-strings.html">Pythons formateringsregler (engelska)</a>. Giltiga koder &auml;r:
+<ul>
+ <li><b><code>real_name</code></b> - Listans formaterade namn, vanligtvis listnamnet med stor initial eller stora bokst&auml;ver rakt igenom.
+ <li><b><code>list_name</code></b> - Listens namn, s&aring;som det anv&auml;nds i URL:er, d&auml;r det har betydelse om namnet stavas med stora eller sm&aring; bokst&auml;ver. (F&ouml;r bak&aring;tkompatibilitet, s&aring; &auml;r det samma sak som <code>_internal_name</code>)
+ <li><b><code>host_name</code></b> - Internetadressen (fully qualified domain name) till maskinen som listservern k&ouml;rs p&aring;.
+ <li><b><code>web_page_url</code></b> - Bas-URL f&ouml;r Mailman. Denna kan l&auml;ggas tillsammans med till exempel <em><code>listinfo/%(internal_name)s</code></em> f&ouml;r att skapa URL:en till en listas informationssida.
+ <li><b><code>description</code></b> - En kort beskrivning av listan.
+ <li><b><code>info</code></b> - Fullst&auml;ndig beskrivning av listan.
+ <li><b><code>cgiext</code></b> - Till&auml;gg som l&auml;ggs till CGI-skript.</ul></body>
diff --git a/templates/sv/help.txt b/templates/sv/help.txt
new file mode 100644
index 00000000..24909b47
--- /dev/null
+++ b/templates/sv/help.txt
@@ -0,0 +1,33 @@
+Hjälp för e-postlistan %(listname)s:
+
+Här är kommandohjälp för version %(version)s av e-postlistesystemet
+"Mailman". Kommandona som beskrivs nedan hjälper dig att anmäla till/
+avanmäla från e-postlistor och att göra andra ändringar.
+
+Ett kommando skrivs i ämnesfältet eller i innehållet i ett e-postbrev,
+och skickas till %(requestaddr)s
+
+Kom ihåg att merparten av vad dessa kommandon utför, också kan göras via
+listans webbsida:
+
+ %(listinfo_url)s
+
+Till exempel kan du från webbsidan be att få ditt lösenord skickat till dig.
+
+Kommandon som är specifika för en lista (till exempel subscribe, who,
+osv.), måste skickas till listans *-request adress, (exempel: för en lista
+som heter 'mailman', används adressen 'mailman-request@...'.)
+
+Förklaring till beskrivningen
+Ord med <> runt berättar att en parameter krävs,
+ord med [] runt berättar att en parameter är valfri.
+Ta INTE med själva tecknen <> och [] när du skickar kommandon.
+
+Följande kommandon är giltiga:
+
+ %(commands)s
+
+Frågor och andra funderingar som du eventuellt har om systemet,
+kan du skicka till:
+
+ %(adminaddr)s
diff --git a/templates/sv/invite.txt b/templates/sv/invite.txt
new file mode 100644
index 00000000..23296423
--- /dev/null
+++ b/templates/sv/invite.txt
@@ -0,0 +1,19 @@
+Ägaren av e-postlistan %(listname)s inbjuder din e-postadress "%(email)s"
+att bli medlem av e-postlistan %(listname)s på %(hostname)s.
+Du kan snabbt och enkelt tacka ja till inbjudan genom att besvara detta
+e-postbrev, så länge som du behåller fältet Subject: oförändrat.
+
+Du kan också tacka ja genom att gå in på nedanstående webbsida:
+
+ %(confirmurl)s
+
+Eller så kan du skicka följande rad - och bara denna enda rad - i ett e-postbrev
+till %(requestaddr)s:
+
+ confirm %(cookie)s
+
+Observera att anmälan till e-postlistan bör fungera bra genom att bara svara
+på detta e-postbrev via ditt e-postprogram.
+
+Om du vill tacka nej till inbjudan, raderar du bara detta e-postbrev.
+Har du några frågor, var snäll och skicka dem till %(listowner)s.
diff --git a/templates/sv/listinfo.html b/templates/sv/listinfo.html
new file mode 100644
index 00000000..6640ac1f
--- /dev/null
+++ b/templates/sv/listinfo.html
@@ -0,0 +1,124 @@
+<!-- $Revision: 6052 $ -->
+<HTML>
+ <HEAD>
+ <TITLE><MM-List-Name> Infosida</TITLE>
+
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+
+ <P>
+ <TABLE COLS="1" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1"><MM-List-Name> --
+ <MM-List-Description></FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <p>&nbsp;
+ </td>
+ </tr>
+ <tr>
+ <TD COLSPAN="1" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000">Om <MM-List-Name></FONT></B>
+ </TD>
+ <TD COLSPAN="1" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <MM-lang-form-start><MM-displang-box> <MM-list-langs>
+ <MM-form-end>
+ <MM-Subscribe-Form-Start>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <P><MM-List-Info></P>
+ <p>F&ouml;r att se arkivet &ouml;ver e-postbrev som skickats till denna lista, g&aring; in p&aring; arkivet <MM-Archive>
+ <MM-List-Name>
+ </MM-Archive>.
+ <MM-Restricted-List-Message>
+ </p>
+ </TD>
+ </TR>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <B><FONT COLOR="#000000">Hur anv&auml;nds e-postlistan <MM-List-Name></FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <td colspan="2">F&ouml;r att skicka ett e-postbrev till alla p&aring; listan, skicka det till <A HREF="mailto:<MM-Posting-Addr>"><MM-Posting-Addr></A>.
+
+ <p>Du kan anm&auml;la dig till listan eller &auml;ndra inst&auml;llningarna f&ouml;r ditt medlemskap p&aring; listan nedan: </td>
+ </tr>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0"><B><FONT COLOR="#000000">Anm&auml;l dig till
+ <MM-List-Name>
+ </FONT></B></TD>
+ </TR>
+ <tr>
+ <td colspan="2">
+ <P>Du kan anm&auml;la dig till <MM-List-Name> genom att fylla i n&ouml;dv&auml;ndig information nedan. <MM-List-Subscription-Msg>
+ <ul>
+ <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"
+ WIDTH="70%" HEIGHT= "112">
+ <TR>
+ <TD BGCOLOR="#dddddd" WIDTH="55%">Din e-postadress:</TD>
+ <TD WIDTH="33%"><MM-Subscribe-Box>
+ </TD>
+ <TD WIDTH="12%">&nbsp;</TD></TR>
+ <tr>
+ <td bgcolor="#dddddd" width="55%">Namn (valfritt):</td>
+ <td width="33%"><mm-fullname-box></td>
+ <TD WIDTH="12%">&nbsp;</TD></TR>
+ <TR>
+ <TD COLSPAN="3"><font size=-1>Du kan skriva ett l&ouml;senord i f&ouml;ljande f&auml;lt. Detta ger d&aring;lig s&auml;kerhet, men f&ouml;rhindrar att andra f&aring;r tillg&aring;ng til dina inst&auml;llningar. <b>Anv&auml;nd inte n&aring;got v&auml;rdefullt l&ouml;senord</b> - l&ouml;senordet kan n&auml;mligen bli skickat till dig i klartext via e-postbrev. </font>
+ <p>Om du inte skriver n&aring;got l&ouml;senord, kommer du att automatiskt bli tilldelad ett l&ouml;senord. Det kommer att skickas till dig s&aring; snart du har bekr&auml;ftat din anm&auml;lan. Du kan senare beg&auml;ra att f&aring; l&ouml;senordet skickat till dig eller &auml;ndrat.&nbsp;
+ <MM-Reminder>
+ </TD>
+ </TR>
+ <TR>
+ <TD BGCOLOR="#dddddd">&Ouml;nskat l&ouml;senord:</TD>
+ <TD><MM-New-Password-Box></TD>
+ <TD>&nbsp;</TD></TR>
+ <TR>
+ <TD BGCOLOR="#dddddd">&Ouml;nskat l&ouml;senord en g&aring;ng till:</TD>
+ <TD><MM-Confirm-Password></TD>
+ <TD>&nbsp; </TD></TR>
+ <tr>
+ <TD BGCOLOR="#dddddd">V&auml;lj spr&aring;k f&ouml;r meddelanden:</TD>
+ <TD> <MM-list-langs></TD>
+ <TD>&nbsp; </TD></TR>
+ <mm-digest-question-start>
+ <tr>
+ <td BGCOLOR="#dddddd">Vill du f&aring; sammandragsversioner?</td>
+ <td><MM-Undigest-Radio-Button> Nej <MM-Digest-Radio-Button> Ja </TD>
+ </tr>
+ <mm-digest-question-end>
+ <tr>
+ <td colspan="3">
+ <center><MM-Subscribe-Button></center>
+ </TABLE>
+ <MM-Form-End>
+ </ul>
+ </td>
+ </tr>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#FFF0D0">
+ <a name="subscribers">
+ <B><FONT COLOR="#000000">Medlemmar av <MM-List-Name></FONT></B></a>
+ </TD>
+ </TR>
+ <tr>
+ <TD COLSPAN="2" WIDTH="100%">
+ <MM-Roster-Form-Start>
+ <MM-Roster-Option>
+ <MM-Form-End>
+ <p>
+ <MM-Options-Form-Start>
+ <MM-Editing-Options>
+ <MM-Form-End>
+ </td>
+ </tr>
+ </table>
+<MM-Mailman-Footer>
+</BODY>
+</HTML>
diff --git a/templates/sv/masthead.txt b/templates/sv/masthead.txt
new file mode 100644
index 00000000..1d9dc3dd
--- /dev/null
+++ b/templates/sv/masthead.txt
@@ -0,0 +1,15 @@
+Skicka meddelanden som ska distribueras till %(real_name)s till:
+ %(got_list_email)s
+
+För att anmäla dig till eller avanmäla dig från listan via Internet, gå in på:
+ %(got_listinfo_url)s
+eller skicka ett e-postbrev till
+ %(got_request_email)s
+med ordet 'help' i ämnesfältet eller som innehåll.
+
+Du kan nå ansvarig(a) person(er) för listan på
+ %(got_owner_email)s
+
+När du svarar på e-postbrev till listan, var vänlig och ändra ämnesfältet så
+att det är lite mer beskrivande än bara
+"Re: Innehåll av %(real_name)s sammandrag..."
diff --git a/templates/sv/newlist.txt b/templates/sv/newlist.txt
new file mode 100644
index 00000000..2de2a3a9
--- /dev/null
+++ b/templates/sv/newlist.txt
@@ -0,0 +1,39 @@
+E-postlistan `%(listname)s' är nu upprättad. Här följer lite
+grundläggande information om listan.
+
+Administrationslösenordet är:
+
+ %(password)s
+
+Detta lösenord är nödvändigt för att konfigurera e-postlistan. Du måste
+också ha det för att behandla förfrågningar till listan, till exempel
+godkänna e-postbrev, om du väljer att att begränsa listan till att vara
+en modererad lista.
+
+
+Du kan konfigurera listan på följande webbsida:
+
+ %(admin_url)s
+
+Webbsidan för medlemmar på listan är:
+
+ %(listinfo_url)s
+
+Du kan till och med göra din personliga anpassning för dessa sidor från
+listans konfigurationssida, men då måste du kunna skriva HTML-kod.
+
+Det finns också ett e-postbaserat gränssnitt för medlemmar (inte
+administratörer) av listan. Du kan få mer information om detta genom
+att skicka ett e-postbrev till:
+
+ %(requestaddr)s
+
+med enbart ordet 'help' som innehåll eller i ämnesfältet.
+
+För att ta bort någon från listan, gå in på listans webbsida och klicka på
+eller skriv in medlemmens e-postadress. Där medlemmen skulle ha
+skrivit in sitt lösenord, skriver du ditt administrationslösenord.
+Du kan också till exempel stoppa distribution till en medlem, ändra till
+sammandragsversion och så vidare, på denna sätt.
+
+Du kan nå systemadminstratör på %(siteowner)s.
diff --git a/templates/sv/nomoretoday.txt b/templates/sv/nomoretoday.txt
new file mode 100644
index 00000000..c0232b2e
--- /dev/null
+++ b/templates/sv/nomoretoday.txt
@@ -0,0 +1,7 @@
+Vi har fått en förfrågan från din adress '%(sender)s', som kräver ett
+automatiskt svar från e-postlistan %(listname)s. Vi har redan fått %(num)s
+frågor från dig idag. För att undvika problem som till exempel oändliga e-postloopar
+mellan e-postrobotar, kommer vi inte att skicka fler svar till dig idag. Var snäll och försök igen i morgon.
+
+Om du anser att detta inte kan stämma, eller du om har frågor,
+kontakta ägaren till e-postlistan på %(owneremail)s.
diff --git a/templates/sv/options.html b/templates/sv/options.html
new file mode 100644
index 00000000..e391d0b4
--- /dev/null
+++ b/templates/sv/options.html
@@ -0,0 +1,251 @@
+<!-- $Revision: 6052 $ -->
+<html>
+<head>
+ <link rel="SHORTCUT ICON" href="<mm-favicon>">
+ <title>Personlig medlemsida för&nbsp; <MM-Presentable-User> på listan <MM-List-Name>
+ </title>
+</head>
+<BODY BGCOLOR="#ffffff">
+ <TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#99CCFF"><B><FONT COLOR="#000000" SIZE=+1>Personlig medlemsida f&ouml;r
+ <MM-Presentable-User>
+ p&aring; listan
+ <MM-List-Name>
+ </FONT></B></TD></TR>
+ </TABLE>
+<p>
+<table width="100%" border="0" cellspacing="5" cellpadding="5">
+ <tr><td>
+ Medlemsstatus, l&ouml;senord och inst&auml;llningar f&ouml;r
+ <b><MM-Presentable-User></b>p&aring; e-postlistan <MM-List-Name>.
+ </td><td><MM-Form-Start><mm-logout-button><MM-Form-End></td>
+ </tr><tr>
+ <td colspan="2">
+ <MM-Case-Preserved-User>
+
+ <MM-Disabled-Notice>
+
+ <p><mm-results>
+ </td>
+ </tr>
+</table>
+
+<MM-Form-Start>
+<p>
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#FFF0D0" colspan="2"><FONT COLOR="#000000"><B>&Auml;ndra e-postadress p&aring;
+ <MM-List-Name>
+ </B></FONT></TD></TR>
+ <tr><td colspan="2">Du kan &auml;ndra den e-postadress som du anv&auml;nde n&auml;r du anm&auml;lde dig till listan, genom att skriva in en annan e-postadress i f&auml;lten nedan. Observera att ett e-postbrev med
+ n&auml;rmare instruktioner kommer d&aring; att skickas till den nya adressen. &Auml;ndringarna tr&auml;der inte i kraft f&ouml;rr&auml;n du har bekr&auml;ftat dem. Du har <mm-pending-days> p&aring; dig att bekr&auml;fta &auml;ndringen.
+ <p>Du kan &auml;ven &auml;ndra ditt namn p&aring; listan (till exempel <em>Sven Svensson</em>).
+
+ <p>Om du vill &auml;ndra din e-postadress p&aring; alla e-postlistor som du &auml;r anm&auml;ld till p&aring; <mm-host>, kryssa f&ouml;r <em>&Auml;ndra alla listor</em>.
+
+ </td></tr>
+ <tr>
+ <td><center>
+ <table border="0" cellspacing="2" cellpadding="2" width="80%" cols="2">
+ <tr><td bgcolor="#dddddd"><div align="right">Ny e-postadress:</div></td>
+ <td><mm-new-address-box></td>
+ </tr>
+ <tr><td bgcolor="#dddddd"><div align="right">Ny e-postadress en g&aring;ng till: </div></td>
+ <td><mm-confirm-address-box></td>
+ </tr>
+ </table></center>
+ </td>
+ <td><center>
+ <table border="0" cellspacing="2" cellpadding="2" width="80%" cols="2">
+ <tr><td bgcolor="#dddddd"><div align="right">Ditt namn
+ (valfritt):</div></td>
+ <td><mm-fullname-box></td>
+ </tr>
+ </table></center>
+ </td>
+ </tr>
+ <tr><td colspan="2"><center><mm-change-address-button>
+ <p><mm-global-change-of-address>Ändra min e-postadress p&aring; alla
+ listor som jag är medlem av</center></td>
+ </tr>
+</table>
+
+<p>
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="5" CELLPADDING="5">
+ <TR><TD WIDTH="50%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000"><B>Avanm&auml;l dig fr&aring;n
+ <MM-List-Name>
+ </B></font></td>
+
+ <TD WIDTH="50%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000"><B>Visa listor som du &auml;r medlem av p&aring; <MM-Host></B>
+ </FONT></TD></TR>
+
+ <tr><td>Kryssa f&ouml;r i kryssrutan och klicka p&aring; knappen f&ouml;r att avanm&auml;la dig fr&aring;n denna e-postlista. <strong>OBS!</strong> Du blir d&aring; omedelbart avanm&auml;ld fr&aring;n listan!
+ <p>
+ <center><MM-Unsubscribe-Button></center></td>
+ <td>Du kan v&auml;lja att se alla listor som du &auml;r anm&auml;ld till, s&aring; att du kan g&ouml;ra samma &auml;ndringar p&aring; flera listor p&aring; en g&aring;ng.
+ <p>
+ <center><MM-Other-Subscriptions-Submit></center>
+ </TD></TR>
+</table>
+
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD COLSPAN=2 WIDTH="100%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>Ditt l&ouml;senord f&ouml;r <MM-List-Name></B>
+ </FONT></TD></TR>
+
+ <tr valign="TOP"><td WIDTH="50%"><a name=reminder>
+ <center>
+ <h3>Har du gl&ouml;mt ditt l&ouml;senord?</a></h3>
+ </center>
+ Klicka p&aring; denna knapp f&ouml;r att f&aring; ditt l&ouml;senord skickat till dig i ett e-postbrev.</a>
+ <p>
+ <MM-Umbrella-Notice>
+ <center>
+ <MM-Email-My-Pw>
+ </center>
+ </td>
+
+ <td WIDTH="50%"><a name=changepw>
+ <center>
+ <h3>&Auml;ndra l&ouml;senord</h3>
+ <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2" WIDTH="70%" COLS=2>
+ <TR>
+ <TD BGCOLOR="#dddddd">
+ <div align="right">
+ Nytt l&ouml;senord:</div>
+ </TD>
+ <TD>
+ <MM-New-Pass-Box>
+ </TD>
+ </TR>
+ <TR>
+ <TD BGCOLOR="#dddddd">
+ <div align="right">
+ Nytt l&ouml;senord en g&aring;ng till:</div>
+ </TD>
+ <TD>
+ <MM-Confirm-Pass-Box>
+ </TD>
+ </TR>
+ </table>
+ <MM-Change-Pass-Button>
+ <p>
+ <center>
+ <mm-global-pw-changes-button>
+ &Auml;ndra l&ouml;senordet f&ouml;r alla listor som jag &auml;r medlem av p&aring;
+ <mm-host>
+ .
+</center>
+</center>
+</TABLE>
+
+<p>
+<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
+ <TR><TD WIDTH="100%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
+ <B>Dina inst&auml;llningar f&ouml;r <MM-List-Name></B>
+ </FONT></TD></TR>
+</table>
+
+<p><i><strong>G&auml;llande inst&auml;llningar &auml;r valda.</strong></i>
+ <p>Observera att n&aring;gra av inst&auml;llningarna har ett <em>Anv&auml;nd p&aring; alla</em> -val. Kryssar du f&ouml;r detta val, kommer alla listor som du &auml;r medlem av p&aring;
+ <mm-host> ocks&aring; f&aring; den inst&auml;llning som du s&auml;tter h&auml;r. Klicka p&aring; <em>Visa andra listor som jag &auml;r medlem av</em> ovan f&ouml;r att se vilka andra e-postlistor som du &auml;r medlem av.
+ <p>
+ <TABLE BORDER="0" CELLSPACING="3" CELLPADDING="4" WIDTH="100%">
+ <tr><TD BGCOLOR="#cccccc"><a name="disable"><strong>Ta emot meddelanden</strong></a>
+ <p>S&auml;tt detta till <em>Ja</em> f&ouml;r att ta emot e-postbrev som skickas till denna lista. S&auml;tt <em>Nej</em> om du under en period inte &ouml;nskar att ta emot e-postbrev
+ som skickas till listan, men &auml;nd&aring; vill st&aring; kvar som medlem av listan. (Kan vara anv&auml;ndbart
+ till exempel om du &aring;ker bort p&aring; semester.) S&auml;tter du detta till <em>Nej</em>, m&aring;ste
+ du komma &iacute;h&aring;g att s&auml;tta tillbaka till <i>Ja</i> igen, n&auml;r du &aring;ter vill ta emot e-postbrev.
+ </td><td bgcolor="#cccccc">
+ <mm-delivery-enable-button> Ja<br>
+ <mm-delivery-disable-button> Nej<p>
+ <mm-global-deliver-button>
+ <i>Anv&auml;nd p&aring; alla</i>
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Sammandragsversion</strong><p>S&auml;tter du p&aring; alternativet sammandragsversion, kommer du att med j&auml;mna mellanrum (till exempel en g&aring;ng om dagen - det beror p&aring; hur mycket som skickas till listan) f&aring; en samlingsepost som inneh&aring;ller alla meddelanden som skickas till
+ listan, ist&auml;llet f&ouml;r att f&aring; varje enskilt meddelande. Om du byter fr&aring;n sammandragsversion
+ till normalversion, kommer du kanske i alla fall att f&aring; ett sista e-postbrev med sammandrag, &auml;ven om du d&aring;
+ redan b&ouml;rjat ta emot enskilda meddelanden till listan. </td><td bgcolor="#cccccc">
+ <MM-Undigest-Radio-Button> Av<br>
+ <MM-Digest-Radio-Button> P&aring; </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc"><strong>Ta emot sammandrag som ren text eller i MIME-format?</strong>
+ <p>Det finns e-postl&auml;sare/mejlprogram som inte st&ouml;der sammandrag i MIME-format. Att ta emot sammandrag i MIME-format rekommenderas, men f&aring;r du problem med att l&auml;sa e-post i det formatet, kan du v&auml;lja ren text h&auml;r.
+ </td><td bgcolor="#cccccc">
+ <MM-Mime-Digests-Button> MIME<br>
+ <MM-Plain-Digests-Button> Ren text<p>
+ <mm-global-mime-button>
+ <i> Anv&auml;nd p&aring; alla</i>
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc"><strong>Ta emot dina egna meddelanden till listan?</strong>
+ <p>Vanligtvis kommer du att f&aring; ta emot e-postbrev som du sj&auml;lv skickar till listan.&nbsp;Om du inte vill ta emot dessa, b&ouml;r du v&auml;lja <em>Nej</em> h&auml;r.
+ </td><td bgcolor="#cccccc">
+ <mm-dont-receive-own-mail-button> Nej<br>
+ <mm-receive-own-mail-button> Ja </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc"><strong>Ta emot bekr&auml;ftelse n&auml;r du skickar e-post till listan?</strong>
+ <p>V&auml;lj <em>Ja</em> h&auml;r om du vill f&aring; en bekr&auml;ftelse varje g&aring;ng du skickar ett e-postbrev till listan.
+ </td><td bgcolor="#cccccc">
+ <mm-dont-ack-posts-button> Nej<br>
+ <mm-ack-posts-button> Ja </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>F&aring; ditt l&ouml;senord skickat till dig med j&auml;mna mellanrum?</strong><p>En g&aring;ng i m&aring;naden kan det vara s&aring; att du f&aring;r ett e-postbrev som inneh&aring;ller l&ouml;senord till alla listor som du &auml;r medlem av p&aring; detta system. Du kan h&auml;r sl&aring; av denna
+ inst&auml;llning f&ouml;r den enskilda listan - eller f&ouml;r alla listor. </td><td bgcolor="#cccccc">
+ <mm-dont-get-password-reminder-button>Nej<br>
+ <mm-get-password-reminder-button> Ja<p>
+ <mm-global-remind-button>
+ <i>Anv&auml;nd p&aring; alla</i>
+ </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc">
+ <strong>Vill du visas p&aring; listan &ouml;ver medlemmar av listan?</strong><p>N&auml;r n&aring;gon g&aring;r in p&aring; webbsidan f&ouml;r att se alla medlemmar av listan kommer vanligtvis din e-postadress att visas. (Men stavad p&aring; ett s&aring;dant s&auml;tt att robotar som plockar upp e-postadresser fr&aring;n hemsidor - och kanske d&auml;refter
+ skickar skr&auml;ppost och reklam/spam till den - inte kommer att f&ouml;rst&aring; att det &auml;r en e-postadress.)
+ V&auml;lj <i>Nej</i> h&auml;r, om du inte vill att din e-postadress ska visas p&aring; listan. </td><td bgcolor="#cccccc">
+ <MM-Hide-Subscription-Button> Nej<br>
+ <MM-Public-Subscription-Button> Ja </td></tr>
+
+ <tr><TD BGCOLOR="#cccccc"><strong>Vilket spr&aring;k f&ouml;redrar du?</strong>
+ <p>
+ </td><td bgcolor="#cccccc">
+ <MM-list-langs>
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc"><strong>Vilka &auml;mnen vill du ta emot?</strong>
+ <p>Genom att v&auml;lja ett eller flera &auml;mnen, kan du filtrera meddelandena som skickas till e-postlistan, s&aring; att du bara tar emot s&aring;dana e-postbrev som intresserar dig.
+ <p>Om ett meddelande inte g&aring;r under n&aring;got &auml;mne, beror det p&aring; inst&auml;llningen nedan, om du vill ta emot meddelandet eller inte.&nbsp;Om du inte v&auml;ljer n&aring;got &auml;mne h&auml;r, kommer du att f&aring; ta emot alla meddelanden som skickas till listan. </td><td bgcolor="#cccccc">
+ <mm-topics>
+ </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>Vill du ta emot meddelanden som inte g&aring;r in under n&aring;got &auml;mne?</strong>
+ <p>Detta val g&auml;ller bara om du valt ett eller flera &auml;mnen ovan. Det avg&ouml;r om du ska ta mot meddelanden som inte g&aring;r under n&aring;got &auml;mne.&nbsp;V&auml;ljer du <em>Nej</em> kommer du inte att ta emot dem, v&auml;ljer du <em>Ja,</em> kommer du att ta emot dem.
+ <p>Om du inte valt n&aring;gra &auml;mnen i inst&auml;llningen ovan, kommer du att ta emot alla meddelanden som skickas till listan.
+ </td><td bgcolor="#cccccc">
+ <mm-suppress-nonmatching-topics> Nej<br>
+ <mm-receive-nonmatching-topics> Ja </td></tr>
+
+ <tr><td bgcolor="#cccccc">
+ <strong>Undvika att f&aring; e-postbrev fr&aring;n listan som &auml;ven &auml;r adresserade direkt till dig?</strong><p>Du kan v&auml;lja vad som ska h&auml;nda om det kommer ett e-postbrev till listan som dessutom &auml;r adresserat direkt till dig (det vill s&auml;ga att din e-postadress
+ st&aring;r i f&auml;ltet <tt>To:</tt> eller <tt>Cc:</tt>). V&auml;lj <em>Ja</em> f&ouml;r att undvika
+ att ta emot samma e-postbrev fr&aring;n listan, v&auml;lj <em>Nej</em> f&ouml;r att i alla fall ta emot e-postbrev fr&aring;n listan.
+ <p>F&ouml;r s&auml;rskilt intresserade: Om listan &auml;r uppsatt f&ouml;r att personalisera meddelanden som skickas till listan och du v&auml;ljer att ta emot e-post fr&aring;n listan, s&aring; kommer varje kopia att ha f&auml;ltet <tt>X-Mailman-Copy: yes</tt> i meddelandehuvudet.
+ </td><td bgcolor="#cccccc">
+ <mm-receive-duplicates-button> Nej<br>
+ <mm-dont-receive-duplicates-button> Ja<p>
+ <mm-global-nodupes-button>
+ <i>Anv&auml;nd p&aring; alla</i>
+ </td></tr>
+ <tr><TD colspan="2">
+ <center><MM-options-Submit-button></center>
+ </td></tr>
+
+</table>
+<p>
+<MM-Form-End>
+
+<MM-Mailman-Footer>
+ </body>
+</html>
diff --git a/templates/sv/postack.txt b/templates/sv/postack.txt
new file mode 100644
index 00000000..b3d26f88
--- /dev/null
+++ b/templates/sv/postack.txt
@@ -0,0 +1,7 @@
+Ditt e-postbrev med ämne:
+
+ %(subject)s
+
+blev utan problem distribuerat till alla på listan %(listname)s.
+
+Listans informationssida: %(listinfo_url)s
diff --git a/templates/sv/postauth.txt b/templates/sv/postauth.txt
new file mode 100644
index 00000000..6cf8a3f8
--- /dev/null
+++ b/templates/sv/postauth.txt
@@ -0,0 +1,13 @@
+Eftersom du är en listadministratör, får du denna förfrågan om
+att godkänna eller avslå följande e-postbrev till listan:
+
+ Lista: %(listname)s@%(hostname)s
+ Från: %(sender)s
+ Ämne: %(subject)s
+ Orsak: %(reason)s
+
+För att godkänna eller avslå förfrågan, gå till
+
+ %(admindb_url)s
+
+när du får tid.
diff --git a/templates/sv/postheld.txt b/templates/sv/postheld.txt
new file mode 100644
index 00000000..75c8bf70
--- /dev/null
+++ b/templates/sv/postheld.txt
@@ -0,0 +1,16 @@
+Du skickade ett e-postbrev till '%(listname)s' med ämnet
+
+ %(subject)s
+
+Det hålls tills vidare tillbaka tills moderatorn kan läsa det för att
+godkänna eller avslå det.
+
+Anledningen till att brevet hålls tillbaka är:
+
+ %(reason)s
+
+Antingen kommer ditt e-postbrev att skickas ut på listan eller också får du
+det i retur med en förklaring till varför det inte skickades ut. Önskar du att
+dra tillbaka ditt e-postbrev, gå in på följande URL:
+
+ %(confirmurl)s
diff --git a/templates/sv/private.html b/templates/sv/private.html
new file mode 100644
index 00000000..9c055823
--- /dev/null
+++ b/templates/sv/private.html
@@ -0,0 +1,32 @@
+<html>
+<head>
+ <title>%(realname)s Inloggning till Privata Arkiv</title>
+</head>
+<body bgcolor="#ffffff">
+<FORM METHOD=POST ACTION="%(action)s/">
+%(message)s
+ <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1">%(realname)s Inloggning till Privata Arkiv</FONT></B>
+ </TD>
+ </TR>
+ <tr>
+ <TD><div ALIGN="Right">E-postadress:</div></TD>
+ <TD><INPUT TYPE="text" NAME="username" SIZE="30"></TD>
+ </tr>
+ <tr>
+ <TD><div ALIGN="Right">L&ouml;senord:</div></TD>
+ <TD><INPUT TYPE="password" NAME="password" SIZE="30"></TD>
+ </tr>
+ <tr>
+ <td colspan=2 align="middle"><INPUT type="SUBMIT"
+ name="submit"
+ value="Logga in mig...">
+ </td>
+ </tr>
+ </TABLE>
+ <p><strong><em>Viktigt:</em></strong> Fr&aring;n och med nu m&aring;ste du ha alternativet cookies aktiverat i din browser, annars kommer inga administrativa &auml;ndringar att sparas.
+ <p><i>Session cookies</i> anv&auml;nds p&aring; Mailmans administrativa sidor, f&ouml;r att du inte ska beh&ouml;va uppge l&ouml;senord f&ouml;r varje &auml;ndring som du g&ouml;r. Dessa cookies kommer att f&ouml;rsvinna automatiskt n&auml;r du st&auml;nger din browser.&nbsp;Du kan ocks&aring; ta bort dem manuellt genom att klicka p&aring; l&auml;nken <em>Logga ut</em> under <em>Andra administrativa aktiviteter</em> (som du f&aring;r upp efter att ha loggat in).</FORM>
+</body>
+</html>
diff --git a/templates/sv/refuse.txt b/templates/sv/refuse.txt
new file mode 100644
index 00000000..ce6e61c3
--- /dev/null
+++ b/templates/sv/refuse.txt
@@ -0,0 +1,13 @@
+Din förfrågan till listan %(listname)s:
+
+ %(request)s
+
+avslogs av listmoderatorn. Moderatorn har följande bevekelsegrund
+för detta beslut:
+
+"%(reason)s"
+
+Frågor, kommentarer eller klagomål som rör detta beslut ska skickas
+till listadministratören på följande e-postadress:
+
+ %(adminaddr)s
diff --git a/templates/sv/roster.html b/templates/sv/roster.html
new file mode 100644
index 00000000..db9687a6
--- /dev/null
+++ b/templates/sv/roster.html
@@ -0,0 +1,48 @@
+<!-- $Revision: 5981 $ -->
+<HTML>
+ <HEAD>
+ <TITLE><MM-List-Name> Medlemmar</TITLE>
+
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+
+ <P>
+ <TABLE WIDTH="100%" COLS="1" BORDER="0" CELLSPACING="4" CELLPADDING="5">
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" BGCOLOR="#99CCFF" ALIGN="CENTER">
+ <B><FONT COLOR="#000000" SIZE="+1"><MM-List-Name> Medlemmar</FONT></B>
+ </TD>
+ </TR>
+ <TR>
+ <TD COLSPAN="2" WIDTH="100%" ALIGN="CENTER">
+
+ <P align = "right"> <MM-lang-form-start><MM-displang-box>
+ <MM-list-langs><MM-form-end></p>
+
+ <P>Klicka p&aring; din adress f&ouml;r att g&aring; till din personliga sida.<br><I>(Adresser inom parentes har stoppat mottagningen av meddelanden till listan.)</I></P>
+ </TD>
+ </TR>
+ <TR WIDTH="100%" VALIGN="top">
+ <TD BGCOLOR="#FFF0D0" WIDTH="50%">
+ <center>
+ <B><FONT COLOR="#000000"><MM-Num-Reg-Users> Medlemmar i normalversion p&aring; <MM-List-Name>:</FONT></B>
+ </center>
+ </TD>
+ <TD BGCOLOR="#FFF0D0" WIDTH="50%">
+ <center>
+ <B><FONT COLOR="#000000"><MM-Num-Digesters> Medlemmar i sammandragsversion p&aring; <MM-List-Name>:</FONT></B>
+ </center>
+ </TD>
+ </TR>
+ <TR VALIGN="top">
+ <td>
+ <P><MM-Regular-Users>
+ </td>
+ <td>
+ <P><MM-Digest-Users>
+ </td>
+ </tr>
+ </table>
+<MM-Mailman-Footer>
+</BODY>
+</HTML>
diff --git a/templates/sv/subauth.txt b/templates/sv/subauth.txt
new file mode 100644
index 00000000..e5dc007d
--- /dev/null
+++ b/templates/sv/subauth.txt
@@ -0,0 +1,10 @@
+Följande ansökan om att få bli medlem av en lista måste utvärderas av dig:
+
+ För: %(username)s
+ Lista: %(listname)s@%(hostname)s
+
+När du får tid, gå in på:
+
+ %(admindb_url)s
+
+för att godkänna eller avslå ansökan.
diff --git a/templates/sv/subscribe.html b/templates/sv/subscribe.html
new file mode 100644
index 00000000..96dbf954
--- /dev/null
+++ b/templates/sv/subscribe.html
@@ -0,0 +1,9 @@
+<!-- $Revision: 5981 $ -->
+<html>
+<head><title><MM-List-Name>: Resultat av anmälan</title></head>
+<body bgcolor="white">
+<h1><MM-List-Name>: Resultat av anm&auml;lan</h1>
+<MM-Results>
+<MM-Mailman-Footer>
+</body>
+</html>
diff --git a/templates/sv/subscribeack.txt b/templates/sv/subscribeack.txt
new file mode 100644
index 00000000..579a0aa8
--- /dev/null
+++ b/templates/sv/subscribeack.txt
@@ -0,0 +1,35 @@
+Välkommen till e-postlistan %(real_name)s@%(host_name)s !
+%(welcome)s
+För att skicka ett e-postbrev till listan, skicka det till:
+
+ %(emailaddr)s
+
+Allmän information om listan hittar du på:
+
+ %(listinfo_url)s
+
+Om du önskar att avanmäla dig från listan eller ändra på dina inställningar
+för listan (till exempel ändra lösenord, få ett sammandrag sänt till dig med jämna mellanrum istället etc), gå in på din personliga medlemssida:
+
+ %(optionsurl)s
+%(umbrella)s
+Du kan också ändra sådana inställningar genom att skicka ett e-postbrev till:
+
+ %(real_name)s-request@%(host_name)s
+
+med ordet "help" i ämnesfältet eller i innehållet. Du kommer då att få ett e-postbrev
+med närmare instruktioner.
+
+Du måste använda ett lösenord för att ändra på dina inställningar för listan, (även
+för att ändra lösenordet) eller för att avanmäla dig från listan.
+Ditt lösenord är:
+
+ %(password)s
+
+Normalt kommer Mailman att skicka ett e-postbrev till dig en gång i månaden med påminnelse om de lösenord som du har fått för de e-postlistor som du är medlem av
+på %(host_name)s, men detta kan du avaktivera om du så önskar.
+Påminnelsen kommer också att innehålla information om hur du kan avanmäla dig
+från listan eller ändra dina personliga inställningar för listan.
+
+På din personliga medlemssida finns det också en knapp som du kan klicka på,
+om du vill få ditt lösenord skickat till dig i ett e-postbrev.
diff --git a/templates/sv/unsub.txt b/templates/sv/unsub.txt
new file mode 100644
index 00000000..11c91c42
--- /dev/null
+++ b/templates/sv/unsub.txt
@@ -0,0 +1,19 @@
+Bekräftelse på avanmälan från listan %(listname)s
+
+Vi har tagit emot en förfrågan%(remote)s om att ta bort din e-postadress
+"%(email)s" från listan %(listaddr)s. Om det stämmer att detta är din önskan,
+skicka ett svar på detta e-postbrev, med samme ämne som e-postbrevet
+har. Eller gå in på webbsidan:
+
+ %(confirmurl)s
+
+Du kan också skicka ett e-postbrev till %(requestaddr)s, med följande (och BARA
+följande) innehåll:
+
+ confirm %(cookie)s
+
+Observera att skickandet av ett svar på detta e-postbrev, borde fungera via de flesta e-postläsare, eftersom det vanligtvis leder till att ämnesfältet behålls
+(tillägg av 'Re:' eller 'SV:' framför ämnet spelar ingen roll).
+
+Om du inte önskar att avanmäla dig från listan, kan du bara radera detta e-postbrev.
+Om du tror att någon annan försökte avanmäla dig eller om du har andra frågor, kan du skicka ett e-postbrev till %(listadmin)s.
diff --git a/templates/sv/unsubauth.txt b/templates/sv/unsubauth.txt
new file mode 100644
index 00000000..83f0bdfa
--- /dev/null
+++ b/templates/sv/unsubauth.txt
@@ -0,0 +1,10 @@
+Följande ansökan om att bli avanmäld från en lista måste utvärderas av dig:
+
+ Från: %(username)s
+ Lista: %(listname)s@%(hostname)s
+
+När du får tid, gå in på:
+
+ %(admindb_url)s
+
+för att godkänna eller avslå ansökan.
diff --git a/templates/sv/userpass.txt b/templates/sv/userpass.txt
new file mode 100644
index 00000000..2b8836d3
--- /dev/null
+++ b/templates/sv/userpass.txt
@@ -0,0 +1,26 @@
+Du, eller någon som utgav sig för att vara dig, har bett om att få
+lösenordet för e-postlistan %(fqdn_lname)s skickat till sig. Du behöver
+detta lösenord för att ändra på dina inställningar för listan
+(till exempel ändra lösenordord, få sammandrag skickat till dig med
+jämna mellanrum istället etc). Lösenorden gör det också enklare för dig
+att avanmäla dig från listan om detta skulle bli aktuellt.
+
+Du är medlem med e-postadressen: %(user)s
+
+Ditt lösenord på e-postlistan %(listname)s är: %(password)s
+
+För att ändra dina inställningar för denna lista, logga in på din
+personliga webbsida för listan:
+
+ %(options_url)s
+
+Du har också möjlighet att göra dessa ändringar via e-post genom att
+skicka ett e-postbrev till:
+
+ %(requestaddr)s
+
+med ordet "help" som innehåll eller i ämnesfältet. Du kommer då att få ta
+emot ett automatiskt svar från systemet med närmare instruktioner.
+
+Har du frågor eller kommentarer? Kontakta listadministratören för
+%(listname)s på %(owneraddr)s.
diff --git a/templates/sv/verify.txt b/templates/sv/verify.txt
new file mode 100644
index 00000000..560e2e3c
--- /dev/null
+++ b/templates/sv/verify.txt
@@ -0,0 +1,20 @@
+Bekräftelse av anmälan till listan %(listname)s
+
+Vi har tagit emot en förfrågan%(remote)s om att anmäla din e-postadress
+"%(email)s" till listan %(listaddr)s. Om det är stämmer att detta är din önskan,
+skicka ett svar på detta e-postbrev, med samma ämne som e-postbrevet
+har. Eller gå in på webbsidan:
+
+ %(confirmurl)s
+
+Du kan också skicka ett e-postbrev till %(requestaddr)s, med följande (och BARA
+följande) innehåll:
+
+ confirm %(cookie)s
+
+Observera att skickandet av ett svar på detta e-postbrev, borde fungera via de flesta e-postläsare, eftersom det vanligtvis leder till att ämnesfältet behålls
+(tillägg av 'Re:' eller 'SV:' framför ämnet spelar ingen roll).
+
+Om du inte önskar att anmäla dig till listan, kan du bara radera detta e-postbrev.
+Tror du någon annan försökte att anmäla dig eller har andra frågor, skicka gärna ett
+e-postbrev till %(listadmin)s.
diff --git a/tests/.cvsignore b/tests/.cvsignore
new file mode 100644
index 00000000..f3c7a7c5
--- /dev/null
+++ b/tests/.cvsignore
@@ -0,0 +1 @@
+Makefile
diff --git a/tests/EmailBase.py b/tests/EmailBase.py
new file mode 100644
index 00000000..1dffe032
--- /dev/null
+++ b/tests/EmailBase.py
@@ -0,0 +1,75 @@
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Base class for tests that email things.
+"""
+
+import socket
+import asyncore
+import smtpd
+
+from Mailman import mm_cfg
+
+from TestBase import TestBase
+
+
+
+MSGTEXT = None
+
+class OneShotChannel(smtpd.SMTPChannel):
+ def smtp_QUIT(self, arg):
+ smtpd.SMTPChannel.smtp_QUIT(self, arg)
+ raise asyncore.ExitNow
+
+
+class SinkServer(smtpd.SMTPServer):
+ def handle_accept(self):
+ conn, addr = self.accept()
+ channel = OneShotChannel(self, conn, addr)
+
+ def process_message(self, peer, mailfrom, rcpttos, data):
+ global MSGTEXT
+ MSGTEXT = data
+
+
+
+class EmailBase(TestBase):
+ def setUp(self):
+ TestBase.setUp(self)
+ # Second argument tuple is ignored.
+ self._server = SinkServer(('localhost', mm_cfg.SMTPPORT),
+ ('localhost', 25))
+
+ def tearDown(self):
+ self._server.close()
+ TestBase.tearDown(self)
+
+ def _readmsg(self):
+ global MSGTEXT
+ # Save and unlock the list so that the qrunner process can open it and
+ # lock it if necessary. We'll re-lock the list in our finally clause
+ # since that if an invariant of the test harness.
+ self._mlist.Unlock()
+ try:
+ try:
+ # timeout is in milliseconds, see asyncore.py poll3()
+ asyncore.loop(timeout=30.0)
+ MSGTEXT = None
+ except asyncore.ExitNow:
+ pass
+ return MSGTEXT
+ finally:
+ self._mlist.Lock()
diff --git a/tests/Makefile.in b/tests/Makefile.in
new file mode 100644
index 00000000..f04397c4
--- /dev/null
+++ b/tests/Makefile.in
@@ -0,0 +1,83 @@
+# Copyright (C) 2001 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# NOTE: Makefile.in is converted into Makefile by the configure script
+# in the parent directory. Once configure has run, you can recreate
+# the Makefile by running just config.status.
+
+# Variables set by configure
+
+VPATH= @srcdir@
+srcdir= @srcdir@
+bindir= @bindir@
+prefix= @prefix@
+exec_prefix= @exec_prefix@
+
+CC= @CC@
+CHMOD= @CHMOD@
+INSTALL= @INSTALL@
+
+DEFS= @DEFS@
+
+# Customizable but not set by configure
+
+OPT= @OPT@
+CFLAGS= $(OPT) $(DEFS)
+TESTDIR= $(prefix)/tests
+SHELL= /bin/sh
+
+TEST_MODULES= $(srcdir)/test*.py $(srcdir)/*Base.py
+EXECS= $(srcdir)/onebounce.py $(srcdir)/fblast.py
+
+# Modes for directories and executables created by the install
+# process. Default to group-writable directories but
+# user-only-writable for executables.
+DIRMODE= 775
+EXEMODE= 755
+FILEMODE= 644
+INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
+
+# Directories make should decend into
+SUBDIRS= bounces msgs
+
+# Rules
+all:
+
+install:
+ for f in $(TEST_MODULES); \
+ do \
+ $(INSTALL) -m $(FILEMODE) $$f $(TESTDIR); \
+ done
+ for f in $(EXECS); \
+ do \
+ $(INSTALL) -m $(EXEMODE) $$f $(TESTDIR); \
+ done
+ for d in $(SUBDIRS); \
+ do \
+ (cd $$d; $(MAKE) install); \
+ done
+
+finish:
+
+clean:
+
+distclean:
+ -rm *.pyc
+ -rm Makefile
+ @for d in $(SUBDIRS); \
+ do \
+ (cd $$d; $(MAKE) distclean); \
+ done
diff --git a/tests/TestBase.py b/tests/TestBase.py
new file mode 100644
index 00000000..816abaa2
--- /dev/null
+++ b/tests/TestBase.py
@@ -0,0 +1,53 @@
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Test base class which handles creating and deleting a test list.
+"""
+
+import os
+import shutil
+import unittest
+
+from Mailman import MailList
+from Mailman import Utils
+from Mailman import mm_cfg
+
+
+
+class TestBase(unittest.TestCase):
+ def setUp(self):
+ mlist = MailList.MailList()
+ mlist.Create('_xtest', 'test@dom.ain', 'xxxxx')
+ mlist.host_name = 'dom.ain'
+ mlist.web_page_url = 'http://www.dom.ain/mailman/'
+ mlist.Save()
+ # This leaves the list in a locked state
+ self._mlist = mlist
+
+ def tearDown(self):
+ self._mlist.Unlock()
+ listname = self._mlist.internal_name()
+ for dirtmpl in ['lists/%s',
+ 'archives/private/%s',
+ 'archives/private/%s.mbox',
+ 'archives/public/%s',
+ 'archives/public/%s.mbox',
+ ]:
+ dir = os.path.join(mm_cfg.VAR_PREFIX, dirtmpl % listname)
+ if os.path.islink(dir):
+ os.unlink(dir)
+ elif os.path.isdir(dir):
+ shutil.rmtree(dir)
diff --git a/tests/bounces/.cvsignore b/tests/bounces/.cvsignore
new file mode 100644
index 00000000..f3c7a7c5
--- /dev/null
+++ b/tests/bounces/.cvsignore
@@ -0,0 +1 @@
+Makefile
diff --git a/tests/bounces/Makefile.in b/tests/bounces/Makefile.in
new file mode 100644
index 00000000..120832d3
--- /dev/null
+++ b/tests/bounces/Makefile.in
@@ -0,0 +1,68 @@
+# Copyright (C) 2001 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public Licenseo
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# NOTE: Makefile.in is converted into Makefile by the configure script
+# in the parent directory. Once configure has run, you can recreate
+# the Makefile by running just config.status.
+
+# Variables set by configure
+
+VPATH= @srcdir@
+srcdir= @srcdir@
+bindir= @bindir@
+prefix= @prefix@
+exec_prefix= @exec_prefix@
+
+CC= @CC@
+CHMOD= @CHMOD@
+INSTALL= @INSTALL@
+
+DEFS= @DEFS@
+
+# Customizable but not set by configure
+
+OPT= @OPT@
+CFLAGS= $(OPT) $(DEFS)
+BOUNCEDIR= $(prefix)/tests/bounces
+SHELL= /bin/sh
+
+BOUNCE_FILES= $(srcdir)/*.txt
+
+
+# Modes for directories and executables created by the install
+# process. Default to group-writable directories but
+# user-only-writable for executables.
+DIRMODE= 775
+EXEMODE= 755
+FILEMODE= 644
+INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
+
+# Rules
+all:
+
+install:
+ for f in $(BOUNCE_FILES); \
+ do \
+ $(INSTALL) -m $(FILEMODE) $$f $(BOUNCEDIR); \
+ done
+
+finish:
+
+clean:
+
+distclean:
+ -rm *.pyc
+ -rm Makefile
diff --git a/tests/bounces/bounce_01.txt b/tests/bounces/bounce_01.txt
new file mode 100644
index 00000000..ab7f45d4
--- /dev/null
+++ b/tests/bounces/bounce_01.txt
@@ -0,0 +1,95 @@
+From VM Wed Feb 7 14:01:33 2001
+X-VM-v5-Data: ([nil nil nil nil nil nil nil nil nil]
+ [nil "" "6" "February" "2001" "14:41:27" "GMT" "\"Jetmail System\" <>" "\"Jetmail System\" <>" nil "48" "Mail Error" "^From:" nil nil "2" nil nil nil nil nil]
+ nil)
+Return-Path: <python-list-admin@python.org>
+Delivered-To: bwarsaw@wooz.org
+Received: from digicool.com (host15.digitalcreations.d.subnet.rcn.com [208.59.6.15])
+ by mail.wooz.org (Postfix) with ESMTP id 1AE74D37AC
+ for <barry@wooz.org>; Tue, 6 Feb 2001 01:41:50 -0500 (EST)
+Received: from <python-list-admin@python.org>
+ by digicool.com (CommuniGate Pro RULES 3.3.2)
+ with RULES id 1443386; Tue, 06 Feb 2001 01:43:53 -0500
+Received: from ns2.digicool.com ([216.164.72.2] verified)
+ by digicool.com (CommuniGate Pro SMTP 3.3.2)
+ with ESMTP id 1443385 for barry@mail.digicool.com; Tue, 06 Feb 2001 01:43:53 -0500
+Received: from mail.python.org (mail.python.org [63.102.49.29])
+ by ns2.digicool.com (8.9.3/8.9.3) with ESMTP id BAA24701
+ for <barry@digicool.com>; Tue, 6 Feb 2001 01:42:30 -0500
+Received: from localhost.localdomain ([127.0.0.1] helo=mail.python.org)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 14Q1pg-0006hx-00
+ for barry@digicool.com; Tue, 06 Feb 2001 01:42:32 -0500
+Received: from host2.btamail.net.cn ([202.106.196.72] helo=btamail.net.cn)
+ by mail.python.org with smtp (Exim 3.21 #1)
+ id 14Q1oj-0006ek-00
+ for python-list-admin@python.org; Tue, 06 Feb 2001 01:41:33 -0500
+Message-Id: <E14Q1oj-0006ek-00@mail.python.org>
+Precedence: bulk
+List-Help: <mailto:python-list-request@python.org?subject=help>
+List-Post: <mailto:python-list@python.org>
+List-Subscribe: <http://mail.python.org/mailman/listinfo/python-list>,
+ <mailto:python-list-request@python.org?subject=subscribe>
+List-Id: General discussion list for the Python programming language <python-list.python.org>
+List-Unsubscribe: <http://mail.python.org/mailman/listinfo/python-list>,
+ <mailto:python-list-request@python.org?subject=unsubscribe>
+List-Archive: <http://mail.python.org/pipermail/python-list/>
+From: "Jetmail System" <>
+Sender: python-list-owner@python.org
+To: python-list-admin@python.org
+Subject: Mail Error
+Date: 06 Feb 2001 14:41:27 GMT
+X-Autogenerated: Mirror
+X-Mirrored-by: <python-list-admin@python.org>
+X-BeenThere: python-list@python.org
+X-Mailman-Version: 2.0.1 (101270)
+
+Your mail cannot be delivered to the following address(es):
+
+ dylan "(0), ErrMsg=mail box space not enough, account=dylan "
+
+Please check the above address(es) and then try again.
+
+---- Header of the source mail attached ----
+
+Received: from bjmx2.163.net([202.108.255.253]) by btamail.net.cn(JetMail 2.5.3.0)
+ with SMTP id jmb3a800bb6; Tue, 6 Feb 2001 06:41:26 -0000
+Received: by bjmx2.163.net (Postfix)
+ id ; Tue, 6 Feb 2001 06:31:28 +0800 (CST)
+Received: from mail.python.org (mail.python.org [63.102.49.29])
+ by bjmx2.163.net (Postfix) with ESMTP id A468F1CB4210C
+ for <windchi@163.net>; Tue, 6 Feb 2001 06:31:27 +0800 (CST)
+Received: from mail.python.org (localhost.localdomain [127.0.0.1])
+ by mail.python.org (Postfix) with ESMTP
+ id 1B087E827; Mon, 5 Feb 2001 17:31:27 -0500 (EST)
+Delivered-To: mm+python-list@python.org
+Received: from onca.catsden.net (unknown [216.218.194.20])
+ by mail.python.org (Postfix) with ESMTP id F004BE72E
+ for <python-list@python.org>; Mon, 5 Feb 2001 17:30:44 -0500 (EST)
+Received: from localhost (chris@localhost)
+ by onca.catsden.net (8.9.3/8.9.3) with ESMTP id OAA28446;
+ Mon, 5 Feb 2001 14:23:15 -0800
+From: <chris@onca.catsden.net>
+To: Sam Wun <swun@esec.com.au>
+Cc: <python-list@python.org>
+Subject: Re: sorting on IP addresses
+In-Reply-To: <3A7F26CB.BE85C96F@esec.com.au>
+Message-ID: <Pine.LNX.4.30.0102051415240.27504-100000@onca.catsden.net>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Sender: python-list-admin@python.org
+Errors-To: python-list-admin@python.org
+X-BeenThere: python-list@python.org
+X-Mailman-Version: 2.0.1 (101270)
+Precedence: bulk
+List-Help: <mailto:python-list-request@python.org?subject=help>
+List-Post: <mailto:python-list@python.org>
+List-Subscribe: <http://mail.python.org/mailman/listinfo/python-list>,
+ <mailto:python-list-request@python.org?subject=subscribe>
+List-Id: General discussion list for the Python programming language <python-list.python.org>
+List-Unsubscribe: <http://mail.python.org/mailman/listinfo/python-list>,
+ <mailto:python-list-request@python.org?subject=unsubscribe>
+List-Archive: <http://mail.python.org/pipermail/python-list/>
+Date: Mon, 5 Feb 2001 14:23:15 -0800 (PST)
+
+
diff --git a/tests/bounces/bounce_02.txt b/tests/bounces/bounce_02.txt
new file mode 100644
index 00000000..0f7d7f32
--- /dev/null
+++ b/tests/bounces/bounce_02.txt
@@ -0,0 +1,36 @@
+From: E500_SMTP_Mail_Service@lerctr.org
+To: <macarthur1975-bounces@lerctr.org>
+Subject: Returned Mail - Error During Delivery
+Date: Wed, 20 Nov 2002 19:58:47 -0500 (EST)
+X-Virus-Scanned: by amavisd-milter (http://amavis.org/)
+
+------ Failed Recipients ------
+
+<acinsp1@midsouth.rr.com>: Requested action not taken: mailbox unavailable. [SMTP Error Code 550]
+-------- Returned Mail --------
+
+Received: from tnmx01.mgw.rr.com(24.165.200.11) by tnav01.midsouth.rr.com via csmap
+ id 26013; Wed, 20 Nov 2002 19:58:47 -0500 (EST)
+Received: from lerami.lerctr.org (lerami.lerctr.org [207.158.72.11])
+ by tnmx01.mgw.rr.com (8.12.5/8.12.5) with ESMTP id gAL0wLBM020447
+ for <acinsp1@midsouth.rr.com>; Wed, 20 Nov 2002 19:58:21 -0500 (EST)
+Received: from lerami.lerctr.org (localhost [127.0.0.1])
+ by lerami.lerctr.org (8.12.6/8.12.6/20020902/$Revision: 5940 $) with ESMTP id gAL0wHwV016400
+ for <acinsp1@midsouth.rr.com>; Wed, 20 Nov 2002 18:58:18 -0600 (CST)
+MIME-Version: 1.0
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Subject: You have been unsubscribed from the MacArthur1975 mailing list
+From: macarthur1975-bounces@lerctr.org
+To: acinsp1@midsouth.rr.com
+Message-ID: <mailman.0.1037840296.16399.macarthur1975@lerctr.org>
+Date: Wed, 20 Nov 2002 18:58:16 -0600
+Precedence: bulk
+X-BeenThere: macarthur1975@lerctr.org
+X-Mailman-Version: 2.1b4
+List-Id: MacArthur Class of 1975 Discussion <macarthur1975.lerctr.org>
+X-List-Administrivia: yes
+Sender: macarthur1975-bounces@lerctr.org
+Errors-To: macarthur1975-bounces@lerctr.org
+X-Virus-Scanned: by amavisd-milter (http://amavis.org/)
+
diff --git a/tests/bounces/bounce_03.txt b/tests/bounces/bounce_03.txt
new file mode 100644
index 00000000..fc62dcab
--- /dev/null
+++ b/tests/bounces/bounce_03.txt
@@ -0,0 +1,109 @@
+Received: from tele-punt-22.mail.demon.net ([194.217.242.7])
+ by mail.python.org with esmtp (Exim 4.05)
+ id 18GwM4-0000D4-00
+ for mailman-users-admin@python.org; Wed, 27 Nov 2002 02:11:28 -0500
+Received: from root by tele-punt-22.mail.demon.net with local (Exim 2.12 #1)
+ id 18GwLf-0003ka-00
+ for mailman-users-admin@python.org; Wed, 27 Nov 2002 07:11:03 +0000
+Subject: Mail delivery failure
+Message-Id: <E18GwLf-0003ka-00@tele-punt-22.mail.demon.net>
+From: Mail Delivery System <Mailer-Daemon@tele-punt-22.mail.demon.net>
+To: mailman-users-admin@python.org
+Date: Wed, 27 Nov 2002 07:11:03 +0000
+X-Spam-Status: No, hits=-2.5 required=5.0
+ tests=FROM_MAILER_DAEMON,MAILER_DAEMON,MAILTO_WITH_SUBJ,SPAM_PHRASE_03_05
+X-Spam-Level:
+
+This message was created automatically by mail delivery
+software. A message that you sent could not be delivered
+to all of its recipients.
+
+The following message, addressed to 'james@jeborall.demon.co.uk',
+failed because it has not been collected after 30 days
+
+Here is a copy of the first part of the message, including
+all headers.
+
+---- START OF RETURNED MESSAGE ----
+Received: from punt-2.mail.demon.net by mailstore for james@jeborall.demon.co.uk
+ id 1035738253:20:01723:229; Sun, 27 Oct 2002 17:04:13 GMT
+Received: from mail.python.org ([12.155.117.29]) by punt-2.mail.demon.net
+ id aa2004462; 27 Oct 2002 17:02 GMT
+Received: from localhost.localdomain ([127.0.0.1] helo=mail.python.org)
+ by mail.python.org with esmtp (Exim 4.05)
+ id 185qn2-0007ru-00; Sun, 27 Oct 2002 12:01:28 -0500
+Date: Sun, 27 Oct 2002 12:00:04 -0500
+Message-ID: <20021027170004.27298.9909.Mailman@mail.python.org>
+From: mailman-users-request@python.org
+Subject: Mailman-Users digest, Vol 1 #2344 - 14 msgs
+Reply-to: mailman-users@python.org
+X-Mailer: Mailman v2.0.13 (101270)
+MIME-version: 1.0
+Content-type: multipart/mixed; boundary=10.0.11.1.506.27298.1035738004.364.17787
+To: mailman-users@python.org
+Sender: mailman-users-admin@python.org
+Errors-To: mailman-users-admin@python.org
+X-BeenThere: mailman-users@python.org
+X-Mailman-Version: 2.0.13 (101270)
+Precedence: bulk
+List-Help: <mailto:mailman-users-request@python.org?subject=help>
+List-Post: <mailto:mailman-users@python.org>
+List-Subscribe: <http://mail.python.org/mailman/listinfo/mailman-users>,
+ <mailto:mailman-users-request@python.org?subject=subscribe>
+List-Id: Mailman mailing list management users <mailman-users.python.org>
+List-Unsubscribe: <http://mail.python.org/mailman/listinfo/mailman-users>,
+ <mailto:mailman-users-request@python.org?subject=unsubscribe>
+List-Archive: <http://mail.python.org/pipermail/mailman-users/>
+
+--10.0.11.1.506.27298.1035738004.364.17787
+Content-type: text/plain; charset=us-ascii
+Content-description: Masthead (Mailman-Users digest, Vol 1 #2344)
+
+Send Mailman-Users mailing list submissions to
+ mailman-users@python.org
+
+To subscribe or unsubscribe via the World Wide Web, visit
+ http://mail.python.org/mailman/listinfo/mailman-users
+or, via email, send a message with subject or body 'help' to
+ mailman-users-request@python.org
+
+You can reach the person managing the list at
+ mailman-users-admin@python.org
+
+When replying, please edit your Subject line so it is more specific
+than "Re: Contents of Mailman-Users digest..."
+
+
+--10.0.11.1.506.27298.1035738004.364.17787
+Content-type: text/plain; charset=us-ascii
+Content-description: Today's Topics (14 msgs)
+
+Today's Topics:
+
+ 1. RELEASED Mailman 2.1 beta 4 (Barry A. Warsaw)
+ 2. bin/arch not working (Aparajita Fishman)
+ 3. Can't receive mail (Aparajita Fishman)
+ 4. I have the same problem with the list not sending mail..but
+ getting confirmations... (jared sanders)
+ 5. Re: RELEASED Mailman 2.1 beta 4 (Jeremy Portzer)
+ 6. Re: I have the same problem with the list not sending mail..but getting confirmations... (Aparajita Fishman)
+ 7. 2.1b4 problem (Fuzzy)
+ 8. inetd doesn't start mailman...? (Nick Arnett)
+ 9. Re: rejecting non-subscriber postings (G. Armour Van Horn)
+ 10. Re: No public lists? (Armando Soto Baeza)
+ 11. Re: No public lists? (Armando Soto Baeza)
+ 12. Re: I have the same problem with the list not sending mail..but getting confirmations... (Armando Soto Baeza)
+ 13. Re: Can't subscribe via web (Armando Soto Baeza)
+
+--10.0.11.1.506.27298.1035738004.364.17787
+Content-type: multipart/digest; boundary="__--__--"
+
+--__--__--
+
+Message: 1
+MIME-Version: 1.0
+Content-Type: text/plain; charset=us-ascii
+Content-Transfer-Encoding: 7bit
+Message-ID: <15802.52753.139705.927733@gargle.gargle.HOWL>
+---- MESSAGE TRUNCATED ----
+
diff --git a/tests/bounces/dsn_01.txt b/tests/bounces/dsn_01.txt
new file mode 100644
index 00000000..d09768c6
--- /dev/null
+++ b/tests/bounces/dsn_01.txt
@@ -0,0 +1,217 @@
+From VM Wed Oct 4 02:03:34 2000
+Return-Path: <jpython-interest-admin@python.org>
+Delivered-To: zzzzz@mail.wooz.org
+Received: from ns1.beopen.com (unknown [208.185.174.104])
+ by mail.wooz.org (Postfix) with ESMTP id 0E701D37D5
+ for <yyyyy@wooz.org>; Tue, 3 Oct 2000 18:33:46 -0400 (EDT)
+Received: from dinsdale.python.org (dinsdale.cnri.reston.va.us [132.151.1.21])
+ by ns1.beopen.com (8.9.3/8.9.3) with ESMTP id PAA65588
+ for <zzzzz@beopen.com>; Tue, 3 Oct 2000 15:34:07 -0700 (PDT)
+ (envelope-from jpython-interest-admin@python.org)
+Received: from dinsdale.python.org (localhost [127.0.0.1])
+ by dinsdale.python.org (Postfix) with ESMTP id D2E691CC09
+ for <zzzzz@beopen.com>; Tue, 3 Oct 2000 18:32:02 -0400 (EDT)
+Delivered-To: jpython-interest-admin@python.org
+Received: from mta01f.seamail.go.com (mta01f.seamail.go.com [204.202.140.193])
+ by dinsdale.python.org (Postfix) with ESMTP id D33DA1CD8E
+ for <jpython-interest-admin@python.org>; Tue, 3 Oct 2000 18:31:09 -0400 (EDT)
+Received: from msg00.seamail.go.com (msg00.seamail.go.com [10.212.0.32])
+ by mta01.seamail.go.com
+ (Sun Internet Mail Server sims.4.0.2000.05.17.04.13.p6) with ESMTP id
+ <0G1V0040VJN3RY@mta01.seamail.go.com> for jpython-interest-admin@python.org;
+ Tue, 3 Oct 2000 14:57:04 -0700 (PDT)
+Received: from process-daemon by msg00.seamail.go.com
+ (Sun Internet Mail Server sims.4.0.2000.05.17.04.13.p6)
+ id <0G1V00701JN2C7@msg00.seamail.go.com> for
+ jpython-interest-admin@python.org; Tue, 03 Oct 2000 14:57:02 -0700 (PDT)
+Received: from msg00.seamail.go.com
+ (Sun Internet Mail Server sims.4.0.2000.05.17.04.13.p6)
+ id <0G1V00703JN1C6@msg00.seamail.go.com>; Tue, 03 Oct 2000 14:57:02 -0700 (PDT)
+Message-id: <0G1V0070AJN2C6@msg00.seamail.go.com>
+MIME-version: 1.0
+Content-type: MULTIPART/REPORT;
+ BOUNDARY="Boundary_(ID_+h6gzBCYzjhP3wCVCkWTrg)"; REPORT-TYPE=DELIVERY-STATUS
+Errors-To: jpython-interest-owner@python.org
+Precedence: bulk
+List-Help: <mailto:jpython-interest-request@python.org?subject=help>
+List-Post: <mailto:jpython-interest@python.org>
+List-Subscribe: <http://www.python.org/mailman/listinfo/jpython-interest>, <mailto:jpython-interest-request@python.org?subject=subscribe>
+List-Id: Python for the Java<SUP><FONT SIZE=-2>TM</FONT></SUP> Platform <jpython-interest.python.org>
+List-Unsubscribe: <http://www.python.org/mailman/listinfo/jpython-interest>, <mailto:jpython-interest-request@python.org?subject=unsubscribe>
+List-Archive: <http://www.python.org/pipermail/jpython-interest/>
+From: Internet Mail Delivery <postmaster@go.com>
+Sender: jpython-interest-owner@python.org
+To: jpython-interest-admin@python.org
+Subject: Delivery Notification: Delivery has failed
+Date: Tue, 03 Oct 2000 14:57:02 -0700 (PDT)
+X-BeenThere: jpython-interest@python.org
+X-Mailman-Version: 2.0beta6
+
+
+--Boundary_(ID_+h6gzBCYzjhP3wCVCkWTrg)
+Content-type: text/plain; charset=ISO-8859-1
+Content-transfer-encoding: 7BIT
+
+This report relates to a message you sent with the following header fields:
+
+ Message-id: <F1218V8zDv60gxapzha000001ae@hotmail.com>
+ Date: Tue, 03 Oct 2000 19:28:29 +0000 (GMT)
+ From: heiho1@hotmail.com
+ To: thaank@nl.packardbell.org, jpython-interest@python.org
+ Subject: [JPython] Re: JPython testing framework
+
+Your message cannot be delivered to the following recipients:
+
+ Recipient address: JimmyMcEgypt@sims-ms-daemon
+ Original address: JimmyMcEgypt@go.com
+ Reason: recipient reached disk quota
+
+
+--Boundary_(ID_+h6gzBCYzjhP3wCVCkWTrg)
+Content-type: message/DELIVERY-STATUS
+
+Reporting-MTA: dns;msg00.seamail.go.com
+
+Action: failed
+Status: 5.0.0 (recipient reached disk quota)
+Original-recipient: rfc822;JimmyMcEgypt@go.com
+Final-recipient: rfc822;JimmyMcEgypt@sims-ms-daemon
+
+--Boundary_(ID_+h6gzBCYzjhP3wCVCkWTrg)
+Content-type: MESSAGE/RFC822
+
+Return-path: jpython-interest-admin@python.org
+Received: from sims-ms-daemon by msg00.seamail.go.com
+ (Sun Internet Mail Server sims.4.0.2000.05.17.04.13.p6)
+ id <0G1V00703JN1C6@msg00.seamail.go.com>; Tue, 03 Oct 2000 14:57:01 -0700 (PDT)
+Received: from mta01.seamail.go.com (mta01.seamail.go.com [10.212.0.193])
+ by msg00.seamail.go.com
+ (Sun Internet Mail Server sims.4.0.2000.05.17.04.13.p6) with ESMTP id
+ <0G1V00L69JG1BD@msg00.seamail.go.com> for JimmyMcEgypt@sims-ms-daemon
+ (ORCPT rfc822;JimmyMcEgypt@go.com); Tue, 03 Oct 2000 14:56:57 -0700 (PDT)
+Received: from dinsdale.python.org (dinsdale.cnri.reston.va.us [132.151.1.21])
+ by mta01.seamail.go.com
+ (Sun Internet Mail Server sims.4.0.2000.05.17.04.13.p6) with ESMTP id
+ <0G1V004NTCTFPX@mta01.seamail.go.com> for JimmyMcEgypt@msg00.seamail.go.com
+ (ORCPT rfc822;JimmyMcEgypt@go.com); Tue, 03 Oct 2000 12:29:39 -0700 (PDT)
+Received: from dinsdale.python.org (localhost [127.0.0.1])
+ by dinsdale.python.org (Postfix) with ESMTP id 76FC61CF28; Tue,
+ 03 Oct 2000 15:29:27 -0400 (EDT)
+Received: from hotmail.com (f121.pav1.hotmail.com [64.4.31.121])
+ by dinsdale.python.org (Postfix) with ESMTP id AFF4D1CD11 for
+ <jpython-interest@python.org>; Tue, 03 Oct 2000 15:28:28 -0400 (EDT)
+Received: from mail pickup service by hotmail.com with Microsoft SMTPSVC; Tue,
+ 03 Oct 2000 12:28:29 -0700
+Received: from 206.41.27.49 by pv1fd.pav1.hotmail.msn.com with HTTP; Tue,
+ 03 Oct 2000 19:28:29 +0000 (GMT)
+Date: Tue, 03 Oct 2000 19:28:29 +0000 (GMT)
+From: heiho1@hotmail.com
+Subject: [JPython] Re: JPython testing framework
+X-Originating-IP: [206.41.27.49]
+Sender: jpython-interest-admin@python.org
+To: thaank@nl.packardbell.org, jpython-interest@python.org
+Errors-to: jpython-interest-admin@python.org
+Message-id: <F1218V8zDv60gxapzha000001ae@hotmail.com>
+MIME-version: 1.0
+Content-type: text/plain; format=flowed
+Content-transfer-encoding: 7BIT
+Precedence: bulk
+Delivered-to: jpython-interest@python.org
+X-BeenThere: jpython-interest@python.org
+X-Mailman-Version: 2.0beta6
+List-Post: <mailto:jpython-interest@python.org>
+List-Subscribe: <http://www.python.org/mailman/listinfo/jpython-interest>,
+ <mailto:jpython-interest-request@python.org?subject=subscribe>
+List-Unsubscribe: <http://www.python.org/mailman/listinfo/jpython-interest>,
+ <mailto:jpython-interest-request@python.org?subject=unsubscribe>
+List-Archive: <http://www.python.org/pipermail/jpython-interest/>
+List-Help: <mailto:jpython-interest-request@python.org?subject=help>
+List-Id: Python for the Java<SUP><FONT SIZE=-2>TM</FONT></SUP> Platform
+ <jpython-interest.python.org>
+X-OriginalArrivalTime: 03 Oct 2000 19:28:29.0320 (UTC)
+ FILETIME=[1BD98080:01C02D70]
+
+Otto,
+
+Thanks for the reply. I remembered hearing of this PyUnit but had lost
+track of it for a while. I just visited the sourceforge homepage:
+
+http://pyunit.sourceforge.net/pyunit.html
+
+I'm pretty sure that PyUnit [as its coded to Python 1.5.2] should be
+workable with JPython, but the web page says:
+
+"""
+PyUnit cannot be used with JPython, the users of which should probably use
+JUnit and create JPython subclasses of its TestCase class. I haven't tried
+doing this.
+"""
+
+Now, I don't see why this would be the case, so I'm going to download PyUnit
+and sniff around. Are any of these modifications you mentioned to get
+PyUnit running under JPython published on the Web anywhere? I'd like to
+take a look, as they would probably save me some time.
+
+Thanks again,
+
+James
+
+>
+>James,
+>
+>I'm using PyUnit from within JPython to drive unit tests that test a Java
+>applications. Some minor changes had to be made to PyUnit to make it work
+>with JPython, and the testrunner only works textually. But nevertheless,
+>it's a much better option than using JUnit from within JPython.
+>
+>-Otto Perdeck
+>
+>
+>Hello all,
+>
+>I've used JPython for close to two years and I find the language to be
+>indispensable. The recent, protracted silence regarding the "official"
+>status of JPython has concerned me quite a bit as I didn't want this
+>language to die out when it shows such promise.
+>
+>I hope that BeOpen and CNRI can come to an agreement that will benefit the
+>community as a whole.
+>
+>Regardless, my major use of JPython [due to the status of the 1.1 release
+>and its errata (not an attack on Finn Bock, just an engineer not willing to
+>deploy certain software on "unofficial" patches)] has been to facilitate
+>prototyping and [almost ;)] XP style repetitive testing. My interest is if
+>a JPython testing framework exists? Something that is a JUnit for JPython,
+>but with functional level testing as well [similar to what Inline-Standard
+>provides: http://www.inline-software.com/products/datasheet.html but not
+>restricted to EJBs].
+>
+>If not, what is the interest of the JPython mailing list on collaborating
+>to
+>produce such an entity [maybe sourceforge.net]?
+>
+>Also, has anybody played around with AspectJ [ www.aspectj.org very cool
+>stuff ;)] and JPython? It seems that AOP and JPython could be a pretty
+>good
+>one-two punch for knocking out larger scale Java problems.
+>
+>James Richards
+>Java Software Engineer
+>
+>
+>- Tjitske Haank & Otto Perdeck
+
+_________________________________________________________________________
+Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com.
+
+Share information about yourself, create your own public profile at
+http://profiles.msn.com.
+
+
+_______________________________________________
+JPython-Interest maillist - JPython-Interest@python.org
+http://www.python.org/mailman/listinfo/jpython-interest
+
+--Boundary_(ID_+h6gzBCYzjhP3wCVCkWTrg)--
+
+
diff --git a/tests/bounces/dsn_02.txt b/tests/bounces/dsn_02.txt
new file mode 100644
index 00000000..3525605f
--- /dev/null
+++ b/tests/bounces/dsn_02.txt
@@ -0,0 +1,187 @@
+From VM Tue Dec 26 18:03:42 2000
+Return-Path: <python-list-admin@python.org>
+Received: from ns2.digicool.com ([216.164.72.2] verified)
+ by digicool.com (CommuniGate Pro SMTP 3.3.1)
+ with ESMTP id 399952 for xxxxx@mail.digicool.com; Tue, 26 Dec 2000 16:49:08 -0500
+Received: from mail.python.org (starship.python.net [63.102.49.30])
+ by ns2.digicool.com (8.9.3/8.9.3) with ESMTP id QAA00928
+ for <xxxxx@digicool.com>; Tue, 26 Dec 2000 16:49:01 -0500
+Received: from ns1.zope.org (localhost.localdomain [127.0.0.1])
+ by mail.python.org (Postfix) with ESMTP id 0CE1CE9B2
+ for <xxxxx@digicool.com>; Tue, 26 Dec 2000 16:48:01 -0500 (EST)
+Delivered-To: mm+python-list-admin@python.org
+Received: from cata.hud.ac.uk (cata.hud.ac.uk [161.112.232.16])
+ by mail.python.org (Postfix) with ESMTP id 5398EE9B2
+ for <python-list-admin@python.org>; Tue, 26 Dec 2000 16:47:33 -0500 (EST)
+Received: from hud.ac.uk by cata.hud.ac.uk id <13167-0@cata.hud.ac.uk>;
+ Tue, 26 Dec 2000 21:47:28 +0000
+Message-Type: Delivery Report
+X400-Received: by /PRMD=UK.AC/ADMD= /C=GB/; Relayed;
+ Tue, 26 Dec 2000 21:47:27 +0000
+X400-Received: by mta cata.hud.ac.uk in /PRMD=UK.AC/ADMD= /C=GB/; Relayed;
+ Tue, 26 Dec 2000 21:47:27 +0000
+X400-MTS-Identifier: [/PRMD=UK.AC/ADMD= /C=GB/;cata.hud.a:131600:20001226214727]
+Message-ID: <"cata.hud.a:131600:20001226214727"@hud.ac.uk>
+Content-Identifier: RE: A Q conce...
+MIME-Version: 1.0
+Content-Type: multipart/report; boundary="---Multi-Part-Report-Level-1-1-13166"
+Errors-To: python-list-owner@python.org
+Precedence: bulk
+List-Help: <mailto:python-list-request@python.org?subject=help>
+List-Post: <mailto:python-list@python.org>
+List-Subscribe: <http://www.python.org/mailman/listinfo/python-list>,
+ <mailto:python-list-request@python.org?subject=subscribe>
+List-Id: General discussion list for the Python programming language <python-list.python.org>
+List-Unsubscribe: <http://www.python.org/mailman/listinfo/python-list>,
+ <mailto:python-list-request@python.org?subject=unsubscribe>
+List-Archive: <http://www.python.org/pipermail/python-list/>
+From: postmaster@hud.ac.uk
+Sender: python-list-owner@python.org
+To: python-list-admin@python.org
+Subject: Delivery Report (failure) for zzzzz@zeus.hud.ac.uk
+Date: Tue, 26 Dec 2000 21:47:28 +0000
+X-BeenThere: python-list@python.org
+X-Mailman-Version: 2.0
+
+
+-----Multi-Part-Report-Level-1-1-13166
+
+This report relates to your message:
+Subject: RE: A Q concerning map (a comparison to Maple V),
+ Message-ID: <LNBBLJKPBEHFEDALKOLCMEEDIFAA.tim.one@home.com>,
+ To: <python-list@python.org>
+
+of Tue, 26 Dec 2000 21:47:27 +0000
+
+Your message was not delivered to:
+ zzzzz@zeus.hud.ac.uk
+for the following reason:
+Diagnostic was Unable to transfer, Message timed out
+Information Message timed out
+
+The Original Message follows:
+
+-----Multi-Part-Report-Level-1-1-13166
+Content-Type: message/delivery-status
+
+Reporting-MTA: x400; mta cata.hud.ac.uk in /PRMD=UK.AC/ADMD= /C=GB/
+Arrival-Date: Sat, 23 Dec 2000 21:44:56 +0000
+DSN-Gateway: dns; cata.hud.ac.uk
+X400-Conversion-Date: Tue, 26 Dec 2000 21:47:28 +0000
+Original-Envelope-Id: [/PRMD=UK.AC/ADMD= /C=GB/;<LNBBLJKPBEHFEDALKOLCMEEDIFAA.ti]
+X400-Content-Identifier: RE: A Q conce...
+X400-Content-Type: 822
+X400-Encoded-Info: ia5-text
+X400-Content-Correlator: Subject: RE: A Q concerning map (a comparison to Maple V),
+ Message-ID: <LNBBLJKPBEHFEDALKOLCMEEDIFAA.tim.one@home.com>,
+ To: <python-list@python.org>
+
+Original-Recipient: rfc822; zzzzz@zeus.hud.ac.uk
+Final-Recipient: x400; /S=zzzzz/OU=zeus/O=hud/PRMD=UK.AC/ADMD= /C=GB/
+X400-Originally-Specified-Recipient-Number: 1
+Action: failed
+Diagnostic-Code: Reason 1 (Unable-To-Transfer); Diagnostic 5 (Maximum-Time-Expired)
+Status: 4.4.7
+X400-Supplementary-Info: "Message timed out"
+X400-Last-Trace: Sat, 23 Dec 2000 21:44:56 +0000
+
+-----Multi-Part-Report-Level-1-1-13166
+Content-Type: message/rfc822
+
+Received: from mail.python.org (actually host starship.python.net)
+ by cata.hud.ac.uk with SMTP (Mailer); Sat, 23 Dec 2000 21:44:56 +0000
+Received: from ns1.zope.org (localhost.localdomain [127.0.0.1])
+ by mail.python.org (Postfix) with ESMTP id 9200FEB18;
+ Sat, 23 Dec 2000 13:10:09 -0500 (EST)
+Delivered-To: mm+python-list@python.org
+Received: from mail.rdc1.md.home.com (ha1.rdc1.md.home.com [24.2.2.66])
+ by mail.python.org (Postfix) with ESMTP id 9FA2AEC45
+ for <python-list@python.org>; Sat, 23 Dec 2000 12:35:46 -0500 (EST)
+Received: from cj569191b ([65.1.136.53])
+ by mail.rdc1.md.home.com (InterMail vM.4.01.03.00 201-229-121)
+ with SMTP
+ id <20001223173546.KSYS10139.mail.rdc1.md.home.com@cj569191b>
+ for <python-list@python.org>; Sat, 23 Dec 2000 09:35:46 -0800
+From: Tim Peters <tim.one@home.com>
+To: python-list <python-list@python.org>
+Subject: RE: A Q concerning map (a comparison to Maple V)
+Message-ID: <LNBBLJKPBEHFEDALKOLCMEEDIFAA.tim.one@home.com>
+MIME-Version: 1.0
+Content-Type: text/plain; charset="iso-8859-1"
+Content-Transfer-Encoding: 7bit
+X-Priority: 3 (Normal)
+X-MSMail-Priority: Normal
+X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2911.0)
+X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200
+In-Reply-To: <3A448735.4DF3C95C@schneider-kamp.de>
+Importance: Normal
+Sender: python-list-admin@python.org
+Errors-To: python-list-admin@python.org
+X-BeenThere: python-list@python.org
+X-Mailman-Version: 2.0
+Precedence: bulk
+List-Help: <mailto:python-list-request@python.org?subject=help>
+List-Post: <mailto:python-list@python.org>
+List-Subscribe: <http://www.python.org/mailman/listinfo/python-list>,
+ <mailto:python-list-request@python.org?subject=subscribe>
+List-Id: General discussion list for the Python programming language
+ <python-list.python.org>
+List-Unsubscribe: <http://www.python.org/mailman/listinfo/python-list>,
+ <mailto:python-list-request@python.org?subject=unsubscribe>
+List-Archive: <http://www.python.org/pipermail/python-list/>
+Date: Sat, 23 Dec 2000 12:35:50 -0500
+
+[Franz GEIGER]
+> > map(replace, ["abc", "cde"], "c", "C");
+> > instead of having to create a lambda function.
+> > Wouldn't it make sense to have that in Python too? Do there come
+> > more such opportunities into your mind?
+
+[Peter Schneider-Kamp]
+> If I get you right you intend this to mean:
+>
+> map(replace, ["abc", "cde"], ["c"]*2, ["C"]*2)
+>
+> So basically your proposal is to reuse map parameters
+> which are no sequences in every iteration over the
+> parameters who are,
+
+It's hard to tell for sure, but that was my guess too. In array languages,
+this kind of thing is ubiquitous and is often called "scalar broadcast"
+(where a scalar is any atomic value (as opposed to an array), and is
+"broadcast" to every position of the arrays in which it's combined via some
+operation).
+
+There was a long debate about this a few years ago on c.l.py, where I
+championed scalar broadcast in map specifically. It collapsed under its own
+hideous weight when-- as such things always do <wink> --that originally
+modest goal got hijacked by people seeking to extend the semantics to every
+corner of the language. That won't happen.
+
+> ...
+> But how would you decide if "abc" is a sequence parameter
+> or not?
+
+That is a problem! Kinda. Mostly people want to broadcast numbers (as in
+Franz's original example), and there's no problem there. A cheap workaround
+for sequences that are desired to be treated as scalars would have been to
+introduce a new builtin scalar() function, that simply hid the
+"sequenceness" of its argument from map.
+
+Note that the listcomps in 2.0 make scalar broadcast much easier to spell;
+e.g.
+
+ [replace(x, "c", "C") for x in ("abc", "cde")]
+ [x**2 + 5 for x in L]
+
+So the better solution is not to extend map, but to forget it <0.9 wink>.
+
+a-life-strategy-of-universal-applicability-ly y'rs - tim
+
+
+--
+http://www.python.org/mailman/listinfo/python-list
+
+-----Multi-Part-Report-Level-1-1-13166--
+
+
diff --git a/tests/bounces/dsn_03.txt b/tests/bounces/dsn_03.txt
new file mode 100644
index 00000000..4e4fef05
--- /dev/null
+++ b/tests/bounces/dsn_03.txt
@@ -0,0 +1,144 @@
+From VM Fri Feb 9 13:30:37 2001
+Return-Path: <python-list-admin@python.org>
+Delivered-To: zzzzz@wwwww.org
+Received: from digicool.com (host15.digitalcreations.d.subnet.rcn.com [208.59.6.15])
+ by mail.wwwww.org (Postfix) with ESMTP id 1E50CD37AC
+ for <yyyyy@wwwww.org>; Thu, 8 Feb 2001 07:31:12 -0500 (EST)
+Received: from <python-list-admin@python.org>
+ by digicool.com (CommuniGate Pro RULES 3.3.2)
+ with RULES id 1450363; Thu, 08 Feb 2001 07:33:30 -0500
+Received: from ns2.digicool.com ([216.164.72.2] verified)
+ by digicool.com (CommuniGate Pro SMTP 3.3.2)
+ with ESMTP id 1450362 for yyyyy@mail.digicool.com; Thu, 08 Feb 2001 07:33:30 -0500
+Received: from mail.python.org (mail.python.org [63.102.49.29])
+ by ns2.digicool.com (8.9.3/8.9.3) with ESMTP id HAA17520
+ for <yyyyy@digicool.com>; Thu, 8 Feb 2001 07:32:00 -0500
+Received: from localhost.localdomain ([127.0.0.1] helo=mail.python.org)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 14QqF1-0002hJ-00
+ for yyyyy@digicool.com; Thu, 08 Feb 2001 07:32:03 -0500
+Received: from [194.78.23.194] (helo=pigeon.advalvas.be)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 14QqCJ-0002UN-00
+ for python-list-admin@python.org; Thu, 08 Feb 2001 07:29:15 -0500
+Message-Id: <12334670553230@pigeon.advalvas.be>
+Mime-Version: 1.0
+Content-Type: multipart/report; report-type=delivery-status; boundary="==_12334670553231@pigeon.advalvas.be==_"
+Precedence: bulk
+List-Help: <mailto:python-list-request@python.org?subject=help>
+List-Post: <mailto:python-list@python.org>
+List-Subscribe: <http://mail.python.org/mailman/listinfo/python-list>,
+ <mailto:python-list-request@python.org?subject=subscribe>
+List-Id: General discussion list for the Python programming language <python-list.python.org>
+List-Unsubscribe: <http://mail.python.org/mailman/listinfo/python-list>,
+ <mailto:python-list-request@python.org?subject=unsubscribe>
+List-Archive: <http://mail.python.org/pipermail/python-list/>
+From: "postmaster@advalvas.be" <postmaster@advalvas.be>
+Sender: python-list-owner@python.org
+To: "python-list-admin@python.org" <python-list-admin@python.org>
+Subject: Failed mail: exceeded maximum incoming message size
+Date: Thu, 8 Feb 2001 13:33:46 +0100
+X-Autogenerated: Mirror
+X-Mirrored-by: <python-list-admin@python.org>
+X-Mailer: NTMail v5.06.0014
+X-BeenThere: python-list@python.org
+X-Mailman-Version: 2.0.1 (101270)
+
+This is a MIME-encapsulated message
+
+--==_12334670553231@pigeon.advalvas.be==_
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Content-Disposition: inline
+
+Your message was not delivered to
+
+ ddd.kkk@advalvas.be
+
+This mail message has exceeded the maximum incoming message size.
+
+
+--==_12334670553231@pigeon.advalvas.be==_
+Content-Type: message/delivery-status
+Content-Transfer-Encoding: 7bit
+Content-Disposition: inline
+
+Reporting-MTA: dns;pigeon.net7.be
+
+Final-Recipient: rfc822;ddd.kkk@advalvas.be
+Action: failure
+Status: 553 Exceeded maximum inbound message size
+
+
+--==_12334670553231@pigeon.advalvas.be==_
+Content-Type: message/rfc822
+Content-Transfer-Encoding: 7bit
+Content-Disposition: inline
+
+Received: from localhost.localdomain ([127.0.0.1] helo=mail.python.org)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 14Qq5S-0001zk-00; Thu, 08 Feb 2001 07:22:10 -0500
+Received: from [193.123.0.194] (helo=intrepid.trisystems.co.uk)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 14Qq2n-0001kA-00
+ for python-list@python.org; Thu, 08 Feb 2001 07:19:25 -0500
+Received: by intrepid with Internet Mail Service (5.5.2650.21)
+ id <11PN1RRB>; Thu, 8 Feb 2001 12:21:16 -0000
+Message-ID: <31575A892FF6D1118F5800600846864D5B17D1@intrepid>
+From: Simon Brunning <Sssss@trisystems.co.uk>
+To: 'Ggggg Wwwww' <ggg@pppeval.be>, Python Mailling list
+ <python-list@python.org>
+Subject: RE: None assigment
+MIME-Version: 1.0
+X-Mailer: Internet Mail Service (5.5.2650.21)
+Content-Type: text/plain
+Sender: python-list-admin@python.org
+Errors-To: python-list-admin@python.org
+X-BeenThere: python-list@python.org
+X-Mailman-Version: 2.0.1 (101270)
+Precedence: bulk
+List-Help: <mailto:python-list-request@python.org?subject=help>
+List-Post: <mailto:python-list@python.org>
+List-Subscribe: <http://mail.python.org/mailman/listinfo/python-list>,
+ <mailto:python-list-request@python.org?subject=subscribe>
+List-Id: General discussion list for the Python programming language <python-list.python.org>
+List-Unsubscribe: <http://mail.python.org/mailman/listinfo/python-list>,
+ <mailto:python-list-request@python.org?subject=unsubscribe>
+List-Archive: <http://mail.python.org/pipermail/python-list/>
+Date: Thu, 8 Feb 2001 12:20:27 -0000
+
+> From: Ggggg Wwwww [SMTP:ggg@pppeval.be]
+> While playing a bit with python 2.0, I found that I can assign some value
+> to None
+(snip)
+> If it is a feature (I suppose it is not a bug :), what is the interest of
+> this ?
+
+Feature. 'None' is just a label, and just like any other label, you can
+always assign to it. I'm not aware of any way of preventing a label from
+being assigned to.
+
+Doesn't make it a good idea, though...
+
+Cheers,
+TriSystems Ltd.
+sssss@trisystems.co.uk
+
+
+
+
+
+-----------------------------------------------------------------------
+The information in this email is confidential and may be legally privileged.
+It is intended solely for the addressee. Access to this email by anyone else
+is unauthorised. If you are not the intended recipient, any disclosure,
+copying, distribution, or any action taken or omitted to be taken in
+reliance on it, is prohibited and may be unlawful. TriSystems Ltd. cannot
+accept liability for statements made which are clearly the senders own.
+
+--
+http://mail.python.org/mailman/listinfo/python-list
+
+--==_12334670553231@pigeon.advalvas.be==_--
+
+
diff --git a/tests/bounces/dsn_04.txt b/tests/bounces/dsn_04.txt
new file mode 100644
index 00000000..9bea9758
--- /dev/null
+++ b/tests/bounces/dsn_04.txt
@@ -0,0 +1,202 @@
+From VM Sat Jun 30 11:29:01 2001
+X-VM-v5-Data: ([nil nil nil nil nil nil nil nil nil]
+ [nil "Saturday" "30" "June" "2001" "00:21:42" "+0200" "PMDF e-Mail Interconnect" "postmaster@yogi.urz.unibas.ch" nil "147" "Delivery Notification: Delivery has failed" "^From:" nil nil "6" nil nil nil nil nil]
+ nil)
+Return-Path: <python-list-admin@python.org>
+Delivered-To: barry@wooz.org
+Received: from digicool.com (unknown [63.100.190.15])
+ by mail.wooz.org (Postfix) with ESMTP id 2852FD36EC
+ for <barry@wooz.org>; Fri, 29 Jun 2001 18:21:58 -0400 (EDT)
+Received: from <python-list-admin@python.org>
+ by digicool.com (CommuniGate Pro RULES 3.4)
+ with RULES id 2122693; Fri, 29 Jun 2001 18:23:52 -0400
+Received: from ns2.digicool.com ([63.100.190.2] verified)
+ by digicool.com (CommuniGate Pro SMTP 3.4)
+ with ESMTP id 2122692 for barry@mail.digicool.com; Fri, 29 Jun 2001 18:23:52 -0400
+Received: from mail.python.org (mail.python.org [63.102.49.29])
+ by ns2.digicool.com (8.9.3/8.9.3) with ESMTP id SAA15102
+ for <barry@digicool.com>; Fri, 29 Jun 2001 18:22:00 -0400
+Received: from localhost.localdomain ([127.0.0.1] helo=mail.python.org)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 15G6eH-0006NJ-00
+ for barry@digicool.com; Fri, 29 Jun 2001 18:22:01 -0400
+Received: from [131.152.1.4] (helo=yogi.urz.unibas.ch)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 15G6d4-0006Lg-00
+ for python-list-admin@python.org; Fri, 29 Jun 2001 18:20:46 -0400
+Received: from PROCESS-DAEMON by yogi.urz.unibas.ch (PMDF V5.2-29 #33343)
+ id <01K5CWRKUM2O8X1X1D@yogi.urz.unibas.ch> for python-list-admin@python.org;
+ Sat, 30 Jun 2001 00:21:44 +0200
+Received: from yogi.urz.unibas.ch (PMDF V5.2-29 #33343)
+ id <01K5CWRINUF48X46F4@yogi.urz.unibas.ch>; Sat, 30 Jun 2001 00:21:42 +0200
+Message-id: <01K5CWRJIDYU8X46F4@yogi.urz.unibas.ch>
+MIME-version: 1.0
+Content-type: MULTIPART/REPORT;
+ BOUNDARY="Boundary_(ID_MUSA353qRe9PeqtdeP14tg)"; REPORT-TYPE=DELIVERY-STATUS
+Precedence: bulk
+List-Help: <mailto:python-list-request@python.org?subject=help>
+List-Post: <mailto:python-list@python.org>
+List-Subscribe: <http://mail.python.org/mailman/listinfo/python-list>,
+ <mailto:python-list-request@python.org?subject=subscribe>
+List-Id: General discussion list for the Python programming language <python-list.python.org>
+List-Unsubscribe: <http://mail.python.org/mailman/listinfo/python-list>,
+ <mailto:python-list-request@python.org?subject=unsubscribe>
+List-Archive: <http://mail.python.org/pipermail/python-list/>
+From: PMDF e-Mail Interconnect <postmaster@yogi.urz.unibas.ch>
+Sender: python-list-owner@python.org
+To: python-list-admin@python.org
+Subject: Delivery Notification: Delivery has failed
+Date: Sat, 30 Jun 2001 00:21:42 +0200
+X-Autogenerated: Mirror
+X-Mirrored-by: <python-list-admin@python.org>
+X-BeenThere: python-list@python.org
+X-Mailman-Version: 2.0.5 (101270)
+
+
+--Boundary_(ID_MUSA353qRe9PeqtdeP14tg)
+Content-type: text/plain; charset=us-ascii
+Content-language: EN-US
+
+This report relates to a message you sent with the following header fields:
+
+ Message-id: <Pine.LNX.4.31.0106300001530.2750-100000@athlon.de>
+ Date: Sat, 30 Jun 2001 00:18:49 +0200 (CEST)
+ From: Carsten Geckeler <uioziaremwpl@spammotel.com>
+ To: Python <python-list@python.org>
+ Subject: Re: Augmented Assignement (was: Re: PEP scepticism)
+
+Your message cannot be delivered to the following recipients:
+
+ Recipient address: HAASM@yogi.urz.unibas.ch
+ Original address: max.haas@unibas.ch
+%MAIL-E-OPENOUT, error opening !AS as output
+-RMS-E-CRE, ACP file create failed
+-SYSTEM-F-EXDISKQUOTA, disk quota exceeded
+
+
+--Boundary_(ID_MUSA353qRe9PeqtdeP14tg)
+Content-type: message/DELIVERY-STATUS
+
+Original-envelope-id: 0GFP00202Q2DR3@mailhub.unibas.ch
+Reporting-MTA: dns;yogi.urz.unibas.ch
+
+Action: failed
+Status: 5.0.0
+Original-recipient: rfc822;max.haas@unibas.ch
+Final-recipient: rfc822;HAASM@yogi.urz.unibas.ch
+
+--Boundary_(ID_MUSA353qRe9PeqtdeP14tg)
+Content-type: MESSAGE/RFC822
+
+Return-path: python-list-admin@python.org
+Received: from yogi.urz.unibas.ch by yogi.urz.unibas.ch (PMDF V5.2-29 #33343)
+ id <01K5CWRINUF48X46F4@yogi.urz.unibas.ch>
+ (original mail from python-list-admin@python.org); Sat,
+ 30 Jun 2001 00:21:42 +0200
+Received: from maser.urz.unibas.ch ([131.152.1.5])
+ by yogi.urz.unibas.ch (PMDF V5.2-29 #33343)
+ with ESMTP id <01K5CWRGK0V68X4CRC@yogi.urz.unibas.ch> for
+ HAASM@yogi.urz.unibas.ch (ORCPT rfc822;max.haas@unibas.ch); Sat,
+ 30 Jun 2001 00:21:38 +0200
+Received: from DIRECTORY-DAEMON.mailhub.unibas.ch by mailhub.unibas.ch
+ (PMDF V6.0-24 #41480) id <0GFP00201Q2DR3@mailhub.unibas.ch> for
+ HAASM@yogi.urz.unibas.ch (ORCPT max.haas@unibas.ch); Sat,
+ 30 Jun 2001 00:20:37 +0200 (MET DST)
+Received: from mail.python.org (mail.python.org [63.102.49.29])
+ by mailhub.unibas.ch (PMDF V6.0-24 #41480)
+ with ESMTP id <0GFP00BEAQ2C5Y@mailhub.unibas.ch> for max.haas@unibas.ch; Sat,
+ 30 Jun 2001 00:20:37 +0200 (MET DST)
+Received: from localhost.localdomain ([127.0.0.1] helo=mail.python.org)
+ by mail.python.org with esmtp (Exim 3.21 #1) id 15G6bK-0006HW-00; Fri,
+ 29 Jun 2001 18:18:58 -0400
+Received: from [134.2.34.92] (helo=nemesis.jura.uni-tuebingen.de ident=qmailr)
+ by mail.python.org with smtp (Exim 3.21 #1)
+ id 15G6Zp-0006Ee-00 for python-list@python.org; Fri, 29 Jun 2001 18:17:25 -0400
+Received: (qmail 31643 invoked from network); Fri, 29 Jun 2001 22:17:24 +0000
+Received: from justitia.jura.uni-tuebingen.de (mail@134.2.34.12)
+ by nemesis.jura.uni-tuebingen.de with SMTP; Fri, 29 Jun 2001 22:17:24 +0000
+Received: from s-gec3 by justitia.jura.uni-tuebingen.de with local
+ (Exim 3.12 #1 (Debian)) id 15G6Zo-0002Zx-00 for <python-list@python.org>; Sat,
+ 30 Jun 2001 00:17:24 +0200
+Date: Sat, 30 Jun 2001 00:18:49 +0200 (CEST)
+From: Carsten Geckeler <uioziaremwpl@spammotel.com>
+Subject: Re: Augmented Assignement (was: Re: PEP scepticism)
+In-reply-to: <ubsn7hte7.fsf@ctwd0143.fitlinxx.com>
+Sender: python-list-admin@python.org
+To: Python <python-list@python.org>
+Errors-to: python-list-admin@python.org
+Message-id: <Pine.LNX.4.31.0106300001530.2750-100000@athlon.de>
+MIME-version: 1.0
+Content-type: TEXT/PLAIN; charset=US-ASCII
+Precedence: bulk
+X-BeenThere: python-list@python.org
+X-Mailman-Version: 2.0.5 (101270)
+List-Post: <mailto:python-list@python.org>
+List-Subscribe: <http://mail.python.org/mailman/listinfo/python-list>,
+ <mailto:python-list-request@python.org?subject=subscribe>
+List-Unsubscribe: <http://mail.python.org/mailman/listinfo/python-list>,
+ <mailto:python-list-request@python.org?subject=unsubscribe>
+List-Archive: <http://mail.python.org/pipermail/python-list/>
+List-Help: <mailto:python-list-request@python.org?subject=help>
+List-Id: General discussion list for the Python programming language
+ <python-list.python.org>
+
+On 29 Jun 2001, David Bolen wrote:
+
+> Carsten Geckeler <uioziaremwpl@spammotel.com> writes:
+>
+> > The problem which some people have with augmented assignment is not that
+> > they exist, but that they do not work as they expect (at least from the
+> > POV of some readers). I expect that
+> > ident op= expr
+> > works like
+> > ident = ident op expr
+> >
+> > At least that's what I'd have expectd comming from other programming
+> > languages.
+>
+> Of course, one interesting point is that while you may think the above
+> if coming from, say, C, what "ident = ident op expr" means in C is not
+> what "ident = ident op expr" means in Python.
+
+Yes, that's completely true. I can accept, that Python work differently
+in many cases. Actually I love Python's object stuff. That's something
+more natural that in many other languages. And I can accept, that objects
+(which are bound to different variable names) can be changed (like with
+l.extend).
+
+The point is not that Python differs from C (or other languages), but that
+the two statements above work differently. I can accept that, of course
+(well I have to, I thing ;) ). But, when I write the following three
+statements,
+ l = l + [3, 4]
+ l += [3, 4]
+ l.extend([3,4])
+it seems more logical to me, that the first two do the same than the last
+two. I know, of course, that the last two do the same. But anyway, the
+first two just _look_ more the same.
+
+> In C it has the result of changing data (in either case) that is
+> stored in a named location ident, in Python the long form just rebinds
+> the reference ident to a new object and doesn't touch the original
+> object. The short form can actually get closer to the C idiom if the
+> object is mutable.
+>
+> So I wonder if some of the confusion is people familiar with other
+> language's augmented assignment trying to extrapolate that into Python
+> and then running into the pre-existing differences in assignment
+> versus binding?
+
+No, that's at least no problem for me (see above).
+
+Cheers, Carsten
+--
+Carsten Geckeler
+
+
+--
+http://mail.python.org/mailman/listinfo/python-list
+
+--Boundary_(ID_MUSA353qRe9PeqtdeP14tg)--
+
+
diff --git a/tests/bounces/dsn_05.txt b/tests/bounces/dsn_05.txt
new file mode 100644
index 00000000..73331578
--- /dev/null
+++ b/tests/bounces/dsn_05.txt
@@ -0,0 +1,125 @@
+From VM Wed Mar 21 22:20:23 2001
+X-VM-v5-Data: ([nil nil nil nil nil nil nil nil nil]
+ [nil "Thursday" "22" "March" "2001" "02:52:34" "+0100" "postmaster@relay.atlas.cz" "postmaster@relay.atlas.cz" nil "76" "Message delayed (pkocmid@atlas.cz)" "^From:" nil nil "3" nil nil nil nil nil]
+ nil)
+Return-Path: <python-list-admin@python.org>
+Delivered-To: bwarsaw@wooz.org
+Received: from digicool.com (host15.digitalcreations.d.subnet.rcn.com [208.59.6.15])
+ by mail.wooz.org (Postfix) with ESMTP id 97D9ED37AC
+ for <barry@wooz.org>; Wed, 21 Mar 2001 21:34:33 -0500 (EST)
+Received: from <python-list-admin@python.org>
+ by digicool.com (CommuniGate Pro RULES 3.4)
+ with RULES id 1706776; Wed, 21 Mar 2001 21:39:26 -0500
+Received: from ns2.digicool.com ([216.164.72.2] verified)
+ by digicool.com (CommuniGate Pro SMTP 3.4)
+ with ESMTP id 1706775 for barry@mail.digicool.com; Wed, 21 Mar 2001 21:39:26 -0500
+Received: from mail.python.org (mail.python.org [63.102.49.29])
+ by ns2.digicool.com (8.9.3/8.9.3) with ESMTP id VAA12152
+ for <barry@digicool.com>; Wed, 21 Mar 2001 21:36:03 -0500
+Received: from localhost.localdomain ([127.0.0.1] helo=mail.python.org)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 14fuxH-0002AK-00
+ for barry@digicool.com; Wed, 21 Mar 2001 21:36:03 -0500
+Received: from [195.119.187.242] (helo=cuk.atlas.cz)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 14fuwk-00028x-00
+ for python-list-admin@python.org; Wed, 21 Mar 2001 21:35:31 -0500
+Message-Id: <B0008606065@cuk.atlas.cz>
+MIME-Version: 1.0
+Content-Type: multipart/report; report-type=delivery-status; boundary="45817/808/985225954/VOPmail/cuk.atlas.cz"
+Precedence: bulk
+List-Help: <mailto:python-list-request@python.org?subject=help>
+List-Post: <mailto:python-list@python.org>
+List-Subscribe: <http://mail.python.org/mailman/listinfo/python-list>,
+ <mailto:python-list-request@python.org?subject=subscribe>
+List-Id: General discussion list for the Python programming language <python-list.python.org>
+List-Unsubscribe: <http://mail.python.org/mailman/listinfo/python-list>,
+ <mailto:python-list-request@python.org?subject=unsubscribe>
+List-Archive: <http://mail.python.org/pipermail/python-list/>
+From: postmaster@relay.atlas.cz
+Sender: python-list-owner@python.org
+To: python-list-admin@python.org
+Subject: Message delayed (pkocmid@atlas.cz)
+Date: Thu, 22 Mar 2001 02:52:34 +0100
+X-Autogenerated: Mirror
+X-Mirrored-by: <python-list-admin@python.org>
+X-BeenThere: python-list@python.org
+X-Mailman-Version: 2.0.3 (101270)
+
+--45817/808/985225954/VOPmail/cuk.atlas.cz
+Content-Type: text/plain
+
+Your message has been delayed and is still awaiting delivery
+to the following recipient(s):
+
+pkocmid@atlas.cz
+Message delayed
+
+
+Your message is delayed
+Message for domain atlas.cz delayed at relay.atlas.cz.
+Unable to deliver to domain for 12 hours.
+Will continue trying for 96 hours.
+No action is required on your part.
+Last attempt failed because:
+Can't connect to host
+
+
+--45817/808/985225954/VOPmail/cuk.atlas.cz
+Content-Type: message/delivery-status
+
+Reporting-MTA: dns; cuk.atlas.cz
+Received-From-MTA: dns; mail.python.org (unverified [63.102.49.29])
+Arrival-Date: Wed, 21 Mar 2001 15:08:54 +0100
+
+Final-Recipient: rfc822; pkocmid@atlas.cz
+Action: delayed
+Status: 4.4.1 (Persistent transient failure - routing/network: no answer from host)
+Will-Retry-Until: Mon, 26 Mar 2001 03:42:45 +0100
+
+--45817/808/985225954/VOPmail/cuk.atlas.cz
+Content-Type: message/rfc822-headers
+
+Received: from mail.python.org (unverified [63.102.49.29]) by cuk.atlas.cz
+ (Vircom SMTPRS 4.5.186) with ESMTP id <B0008514592@cuk.atlas.cz> for <pkocmid@atlas.cz>;
+ Wed, 21 Mar 2001 15:08:54 +0100
+Received: from localhost.localdomain ([127.0.0.1] helo=mail.python.org)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 14fjGM-0007PZ-00; Wed, 21 Mar 2001 09:06:58 -0500
+Path: news.baymountain.net!uunet!ash.uu.net!sac.uu.net!newsfeed.attap.net!enews.sgi.com!feeder.via.net!news.he.net!typhoon.aracnet.com!not-for-mail
+From: Daniel Klein <danielk@aracnet.com>
+Newsgroups: comp.lang.python
+Subject: Re: Pick Systems D3 Database
+Message-ID: <pfchbtkf3j0p7prf0sp45vi21fro3bs7ad@4ax.com>
+References: <rG%t6.555$45.2416@newsfeeds.bigpond.com>
+X-Newsreader: Forte Agent 1.8/32.548
+MIME-Version: 1.0
+Content-Type: text/plain; charset=us-ascii
+Content-Transfer-Encoding: 7bit
+Lines: 25
+NNTP-Posting-Host: 216.99.212.46
+X-Complaints-To: news@aracnet.com
+X-Trace: typhoon.aracnet.com 985183028 216.99.212.46 (Wed, 21 Mar 2001 05:57:08 PST)
+NNTP-Posting-Date: Wed, 21 Mar 2001 05:57:08 PST
+Organization: Aracnet Internet
+Xref: news.baymountain.net comp.lang.python:93719
+To: python-list@python.org
+Sender: python-list-admin@python.org
+Errors-To: python-list-admin@python.org
+X-BeenThere: python-list@python.org
+X-Mailman-Version: 2.0.3 (101270)
+Precedence: bulk
+List-Help: <mailto:python-list-request@python.org?subject=help>
+List-Post: <mailto:python-list@python.org>
+List-Subscribe: <http://mail.python.org/mailman/listinfo/python-list>,
+ <mailto:python-list-request@python.org?subject=subscribe>
+List-Id: General discussion list for the Python programming language <python-list.python.org>
+List-Unsubscribe: <http://mail.python.org/mailman/listinfo/python-list>,
+ <mailto:python-list-request@python.org?subject=unsubscribe>
+List-Archive: <http://mail.python.org/pipermail/python-list/>
+Date: Wed, 21 Mar 2001 06:05:14 -0800
+
+--45817/808/985225954/VOPmail/cuk.atlas.cz--
+
+
+
diff --git a/tests/bounces/dsn_06.txt b/tests/bounces/dsn_06.txt
new file mode 100644
index 00000000..22f69760
--- /dev/null
+++ b/tests/bounces/dsn_06.txt
@@ -0,0 +1,122 @@
+From VM Mon Jul 2 04:05:06 2001
+X-VM-v5-Data: ([nil nil nil nil nil nil nil nil nil]
+ [nil "Sunday" "1" "July" "2001" "16:07:50" "+0200" "Mail Delivery Service" "mailadm@thales-is.com" nil "72" "Delivery Status Notification (Mail Delivery Delayed)" "^From:" nil nil "7" nil nil nil nil nil]
+ nil)
+Return-Path: <python-list-admin@python.org>
+Delivered-To: barry@wooz.org
+Received: from digicool.com (unknown [63.100.190.15])
+ by mail.wooz.org (Postfix) with ESMTP id 1F5FED36EC
+ for <barry@wooz.org>; Sun, 1 Jul 2001 10:07:00 -0400 (EDT)
+Received: from <python-list-admin@python.org>
+ by digicool.com (CommuniGate Pro RULES 3.4)
+ with RULES id 2125237; Sun, 01 Jul 2001 10:08:57 -0400
+Received: from ns2.digicool.com ([63.100.190.2] verified)
+ by digicool.com (CommuniGate Pro SMTP 3.4)
+ with ESMTP id 2125244 for barry@mail.digicool.com; Sun, 01 Jul 2001 10:08:57 -0400
+Received: from mail.python.org (mail.python.org [63.102.49.29])
+ by ns2.digicool.com (8.9.3/8.9.3) with ESMTP id KAA26383
+ for <barry@digicool.com>; Sun, 1 Jul 2001 10:07:00 -0400
+Received: from localhost.localdomain ([127.0.0.1] helo=mail.python.org)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 15GhsL-0001Ey-00
+ for barry@digicool.com; Sun, 01 Jul 2001 10:07:01 -0400
+Received: from [195.101.39.226] (helo=gwsmtp.thomson-csf.com)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 15GhrZ-0001D4-00
+ for python-list-admin@python.org; Sun, 01 Jul 2001 10:06:13 -0400
+Received: by gwsmtp.thomson-csf.com (NPlex 5.1.053) id 3B3CE20D00005041 for python-list-admin@python.org; Sun, 1 Jul 2001 16:07:50 +0200
+Message-ID: <3B3CE20D0000503F@gwsmtp.thomson-csf.com>
+MIME-Version: 1.0
+Content-Type: Multipart/Report; report-type=delivery-status; boundary="=========3B3CE20D00004815/gwsmtp.thomson-csf.com"
+Precedence: bulk
+List-Help: <mailto:python-list-request@python.org?subject=help>
+List-Post: <mailto:python-list@python.org>
+List-Subscribe: <http://mail.python.org/mailman/listinfo/python-list>,
+ <mailto:python-list-request@python.org?subject=subscribe>
+List-Id: General discussion list for the Python programming language <python-list.python.org>
+List-Unsubscribe: <http://mail.python.org/mailman/listinfo/python-list>,
+ <mailto:python-list-request@python.org?subject=unsubscribe>
+List-Archive: <http://mail.python.org/pipermail/python-list/>
+From: Mail Delivery Service <mailadm@thales-is.com>
+Sender: python-list-owner@python.org
+To: python-list-admin@python.org
+Subject: Delivery Status Notification (Mail Delivery Delayed)
+Date: Sun, 1 Jul 2001 16:07:50 +0200
+X-Autogenerated: Mirror
+X-Mirrored-by: <python-list-admin@python.org>
+X-BeenThere: python-list@python.org
+X-Mailman-Version: 2.0.5 (101270)
+
+This multi-part MIME message contains a Delivery Status Notification.
+If you can see this text, your mail client may not be able to understand MIME
+formatted messages or DSNs (see RFC 2045 through 2049 for general MIME
+information and RFC 1891 through 1894 for DSN specific information).
+
+--=========3B3CE20D00004815/gwsmtp.thomson-csf.com
+Content-Type: text/plain; charset=us-ascii
+
+ - This is only a notification about a delay in the delivery of your message.
+ - There is no need to resend your message at this time.
+ - The following recipients have not yet received your message:
+
+hao-nghi.au@fr.thalesgroup.com; Action: Delayed
+
+ - The server will continue trying for up to 21 hours.
+
+
+--=========3B3CE20D00004815/gwsmtp.thomson-csf.com
+Content-Type: Message/Delivery-Status
+
+Reporting-MTA: dns; gwsmtp.thomson-csf.com
+Received-from-MTA: dns; mail.python.org (63.102.49.29)
+Arrival-Date: Sun, 1 Jul 2001 13:07:44 +0200
+
+Final-Recipient: rfc822; hao-nghi.au@fr.thalesgroup.com
+Action: Delayed
+Status: 4.4.0 (other or undefined network or routing status)
+Will-Retry-Until: Mon, 2 Jul 2001 13:07:44 +0200
+
+--=========3B3CE20D00004815/gwsmtp.thomson-csf.com
+Content-Type: Text/RFC822-headers
+
+Return-Path: <python-list-admin@python.org>
+Received: from mail.python.org (63.102.49.29) by gwsmtp.thomson-csf.com (NPlex 5.1.053)
+ id 3B3CE20D00004815 for hao-nghi.au@fr.thalesgroup.com; Sun, 1 Jul 2001 13:07:44 +0200
+Received: from localhost.localdomain ([127.0.0.1] helo=mail.python.org)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 15Gf3C-0005ft-00; Sun, 01 Jul 2001 07:06:02 -0400
+Path: news.baymountain.net!uunet!ash.uu.net!dca.uu.net!feed2.onemain.com!feed1.onemain.com!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!fu-berlin.de!hahn.informatik.hu-berlin.de!not-for-mail
+From: Martin von Loewis <loewis@informatik.hu-berlin.de>
+Newsgroups: comp.lang.python
+Subject: Re: GCC 3.0, Standard ABI & C++/Python Integration
+Organization: Humboldt University Berlin, Department of Computer Science
+Lines: 8
+Message-ID: <j4d77kvs79.fsf@informatik.hu-berlin.de>
+References: <mailman.993664666.10985.python-list@python.org>
+NNTP-Posting-Host: pandora.informatik.hu-berlin.de
+X-Trace: hahn.informatik.hu-berlin.de 993984634 26083 141.20.23.176 (1 Jul 2001 10:50:34 GMT)
+X-Complaints-To: news@hahn.informatik.hu-berlin.de
+NNTP-Posting-Date: 1 Jul 2001 10:50:34 GMT
+X-Newsreader: Gnus v5.7/Emacs 20.7
+Xref: news.baymountain.net comp.lang.python:110477
+To: python-list@python.org
+Sender: python-list-admin@python.org
+Errors-To: python-list-admin@python.org
+X-BeenThere: python-list@python.org
+X-Mailman-Version: 2.0.5 (101270)
+Precedence: bulk
+List-Help: <mailto:python-list-request@python.org?subject=help>
+List-Post: <mailto:python-list@python.org>
+List-Subscribe: <http://mail.python.org/mailman/listinfo/python-list>,
+ <mailto:python-list-request@python.org?subject=subscribe>
+List-Id: General discussion list for the Python programming language <python-list.python.org>
+List-Unsubscribe: <http://mail.python.org/mailman/listinfo/python-list>,
+ <mailto:python-list-request@python.org?subject=unsubscribe>
+List-Archive: <http://mail.python.org/pipermail/python-list/>
+Date: 01 Jul 2001 12:50:34 +0200
+
+
+--=========3B3CE20D00004815/gwsmtp.thomson-csf.com--
+
+
+
diff --git a/tests/bounces/dsn_07.txt b/tests/bounces/dsn_07.txt
new file mode 100644
index 00000000..2e5a0e5d
--- /dev/null
+++ b/tests/bounces/dsn_07.txt
@@ -0,0 +1,121 @@
+From VM Wed Aug 1 17:56:11 2001
+X-VM-v5-Data: ([nil nil nil nil nil nil nil nil nil]
+ [nil "Thursday" "2" "August" "2001" "08:02:07" "+1200" "postmaster@Parliament.govt.nz" "postmaster@Parliament.govt.nz" nil "73" "Message delayed (david.farrar@parliament.govt.nz)" "^From:" "mailman-users-admin@python.org" "mailman-users-admin@python.org" "8" nil nil nil nil nil]
+ nil)
+Return-Path: <mailman-users-admin@python.org>
+Delivered-To: barry@wooz.org
+Received: from digicool.com (unknown [63.100.190.15])
+ by mail.wooz.org (Postfix) with ESMTP id D431ED35F0
+ for <barry@wooz.org>; Wed, 1 Aug 2001 16:26:59 -0400 (EDT)
+Received: from <mailman-users-admin@python.org>
+ by digicool.com (CommuniGate Pro RULES 3.4)
+ with RULES id 2462291; Wed, 01 Aug 2001 16:27:02 -0400
+Received: from smtp.zope.com ([63.100.190.10] verified)
+ by digicool.com (CommuniGate Pro SMTP 3.4)
+ with ESMTP id 2462289 for barry@mail.zope.com; Wed, 01 Aug 2001 16:27:02 -0400
+Received: from mail.python.org (mail.python.org [63.102.49.29])
+ by smtp.zope.com (8.11.2/8.11.2) with ESMTP id f71KR2X19854
+ for <barry@zope.com>; Wed, 1 Aug 2001 16:27:02 -0400
+Received: from localhost.localdomain ([127.0.0.1] helo=mail.python.org)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 15S2a4-0003D5-00; Wed, 01 Aug 2001 16:27:00 -0400
+Received: from [203.97.232.93] (helo=ns1.parliament.govt.nz)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 15S2Z4-0003Bh-00
+ for mailman-users-admin@python.org; Wed, 01 Aug 2001 16:25:59 -0400
+Message-Id: <Tcb61e85d551eb3e8b4@ns1.parliament.govt.nz>
+MIME-Version: 1.0
+Content-Type: multipart/report; report-type=delivery-status; boundary="23/89/996696127/MAILsweeper/ns1.parliament.govt.nz"
+Precedence: bulk
+List-Help: <mailto:mailman-users-request@python.org?subject=help>
+List-Post: <mailto:mailman-users@python.org>
+List-Subscribe: <http://mail.python.org/mailman/listinfo/mailman-users>,
+ <mailto:mailman-users-request@python.org?subject=subscribe>
+List-Id: Mailman mailing list management users <mailman-users.python.org>
+List-Unsubscribe: <http://mail.python.org/mailman/listinfo/mailman-users>,
+ <mailto:mailman-users-request@python.org?subject=unsubscribe>
+List-Archive: <http://mail.python.org/pipermail/mailman-users/>
+From: postmaster@Parliament.govt.nz
+Sender: mailman-users-owner@python.org
+To: mailman-users-admin@python.org
+Subject: Message delayed (david.farrar@parliament.govt.nz)
+Date: Thu, 2 Aug 2001 08:02:07 +1200
+X-Autogenerated: Mirror
+X-Mirrored-by: <mailman-users-admin@python.org>
+X-BeenThere: mailman-users@python.org
+X-Mailman-Version: 2.0.6 (101270)
+
+--23/89/996696127/MAILsweeper/ns1.parliament.govt.nz
+Content-Type: text/plain
+
+Your message has been delayed and is still awaiting delivery
+to the following recipient(s):
+
+david.farrar@Parliament.govt.nz
+(Was addressed to david.farrar@parliament.govt.nz)
+Message delayed
+
+
+Your message is delayed
+Message for domain parliament.govt.nz delayed at Parliament.govt.nz.
+Unable to deliver to domain for 6 hours.
+Will continue trying for 66 hours.
+No action is required on your part.
+Last attempt failed because:
+Can't connect to host
+
+
+--23/89/996696127/MAILsweeper/ns1.parliament.govt.nz
+Content-Type: message/delivery-status
+
+Reporting-MTA: dns; ns1.parliament.govt.nz
+Received-From-MTA: dns; mail.python.org (unverified [63.102.49.29])
+Arrival-Date: Thu, 2 Aug 2001 02:00:22 +1200
+
+Final-Recipient: rfc822; david.farrar@parliament.govt.nz
+Action: delayed
+Status: 4.4.1 (Persistent transient failure - routing/network: no answer from host)
+Will-Retry-Until: Sun, 5 Aug 2001 02:02:05 +1200
+
+--23/89/996696127/MAILsweeper/ns1.parliament.govt.nz
+Content-Type: message/rfc822-headers
+
+Received: from mail.python.org (unverified) by ns1.parliament.govt.nz
+ (Content Technologies SMTPRS 4.1.5) with ESMTP id <Tcb61e85d551d68b75d@ns1.parliament.govt.nz> for <david.farrar@parliament.govt.nz>;
+ Thu, 2 Aug 2001 02:00:22 +1200
+Received: from localhost.localdomain ([127.0.0.1] helo=mail.python.org)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 15RvjO-00089v-00; Wed, 01 Aug 2001 09:08:10 -0400
+Received: from [144.122.169.16] (helo=robot.metu.edu.tr)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 15Rvie-00086Z-00
+ for mailman-users@python.org; Wed, 01 Aug 2001 09:07:26 -0400
+Received: from localhost (ceyhun@localhost)
+ by robot.metu.edu.tr (8.11.2/8.11.2) with ESMTP id f71DBH312336
+ for <mailman-users@python.org>; Wed, 1 Aug 2001 16:11:18 +0300
+From: <ceyhun@robot.metu.edu.tr>
+To: <mailman-users@python.org>
+Message-ID: <Pine.LNX.4.33.0108011605240.12261-100000@robot.metu.edu.tr>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Subject: [Mailman-Users] Hi there,
+Sender: mailman-users-admin@python.org
+Errors-To: mailman-users-admin@python.org
+X-BeenThere: mailman-users@python.org
+X-Mailman-Version: 2.0.6 (101270)
+Precedence: bulk
+List-Help: <mailto:mailman-users-request@python.org?subject=help>
+List-Post: <mailto:mailman-users@python.org>
+List-Subscribe: <http://mail.python.org/mailman/listinfo/mailman-users>,
+ <mailto:mailman-users-request@python.org?subject=subscribe>
+List-Id: Mailman mailing list management users <mailman-users.python.org>
+List-Unsubscribe: <http://mail.python.org/mailman/listinfo/mailman-users>,
+ <mailto:mailman-users-request@python.org?subject=unsubscribe>
+List-Archive: <http://mail.python.org/pipermail/mailman-users/>
+Date: Wed, 1 Aug 2001 16:11:17 +0300 (EEST)
+X-Mime-Type: Plain
+
+--23/89/996696127/MAILsweeper/ns1.parliament.govt.nz--
+
+
+
diff --git a/tests/bounces/dsn_08.txt b/tests/bounces/dsn_08.txt
new file mode 100644
index 00000000..8d4d3b8b
--- /dev/null
+++ b/tests/bounces/dsn_08.txt
@@ -0,0 +1,131 @@
+Return-Path: <zope-admin@zope.org>
+Received: from smtp.zope.com ([63.100.190.10] verified)
+ by digicool.com (CommuniGate Pro SMTP 3.4)
+ with ESMTP id 2769384 for mj@mail.zope.com; Thu, 04 Oct 2001 04:48:48 -0400
+Received: from mail.python.org (mail.python.org [63.102.49.29])
+ by smtp.zope.com (8.11.2/8.11.2) with ESMTP id f948k0X28835
+ for <mj@zope.com>; Thu, 4 Oct 2001 04:46:00 -0400
+Received: from localhost.localdomain ([127.0.0.1] helo=mail.python.org)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 15p48n-0001n2-00
+ for mj@zope.com; Thu, 04 Oct 2001 04:46:01 -0400
+Received: from [212.84.234.29] (helo=daswort.innominate.com)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 15p48K-0001ku-00
+ for zope-admin@zope.org; Thu, 04 Oct 2001 04:45:32 -0400
+Received: from mate.bln.innominate.de (cerberus.berlin.innominate.de [212.84.234.251])
+ by daswort.innominate.com (Postfix) with ESMTP id BC8F2272F7
+ for <zope-admin@zope.org>; Thu, 4 Oct 2001 09:45:26 +0000 (GMT)
+Received: by mate.bln.innominate.de (Postfix)
+ id 27AD62CB3A; Thu, 4 Oct 2001 10:45:28 +0200 (CEST)
+Date: Thu, 4 Oct 2001 10:45:28 +0200 (CEST)
+From: MAILER-DAEMON@innominate.de (Mail Delivery System)
+Subject: Delayed Mail (still being retried)
+To: zope-admin@zope.org
+MIME-Version: 1.0
+Content-Type: multipart/report; report-type=delivery-status;
+ boundary="A216D2D16B.1002185128/mate.bln.innominate.de"
+Message-Id: <20011004084528.27AD62CB3A@mate.bln.innominate.de>
+Sender: zope-owner@zope.org
+Errors-To: zope-owner@zope.org
+X-BeenThere: zope@zope.org
+X-Mailman-Version: 2.0.6 (101270)
+Precedence: bulk
+List-Help: <mailto:zope-request@zope.org?subject=help>
+List-Post: <mailto:zope@zope.org>
+List-Subscribe: <http://lists.zope.org/mailman/listinfo/zope>,
+ <mailto:zope-request@zope.org?subject=subscribe>
+List-Id: Users of the Z Object Publishing Environment <zope.zope.org>
+List-Unsubscribe: <http://lists.zope.org/mailman/listinfo/zope>,
+ <mailto:zope-request@zope.org?subject=unsubscribe>
+List-Archive: <http://lists.zope.org/pipermail/zope/>
+
+This is a MIME-encapsulated message.
+
+--A216D2D16B.1002185128/mate.bln.innominate.de
+Content-Description: Notification
+Content-Type: text/plain
+
+This is the Postfix program at host mate.bln.innominate.de.
+
+####################################################################
+# THIS IS A WARNING ONLY. YOU DO NOT NEED TO RESEND YOUR MESSAGE. #
+####################################################################
+
+Your message could not be delivered for 0.2 hours.
+It will be retried until it is 5.0 days old.
+
+For further assistance, please send mail to <postmaster>
+
+ The Postfix program
+
+<news-list.zope@localhost.bln.innominate.de>: temporary failure. Command
+ output: avpcheck: unable to connect to avp daemon: Connection refused
+
+--A216D2D16B.1002185128/mate.bln.innominate.de
+Content-Description: Delivery error report
+Content-Type: message/delivery-status
+
+Reporting-MTA: dns; mate.bln.innominate.de
+Arrival-Date: Thu, 4 Oct 2001 10:20:46 +0200 (CEST)
+
+Final-Recipient: rfc822; news-list.zope@localhost.bln.innominate.de
+Action: delayed
+Status: 4.0.0
+Diagnostic-Code: X-Postfix; temporary failure. Command output: avpcheck: unable
+ to connect to avp daemon: Connection refused
+Will-Retry-Until: Tue, 9 Oct 2001 10:20:46 +0200 (CEST)
+
+--A216D2D16B.1002185128/mate.bln.innominate.de
+Content-Description: Undelivered Message Headers
+Content-Type: text/rfc822-headers
+
+Received: from daswort.innominate.com (daswort.innominate.com [212.84.234.29])
+ by mate.bln.innominate.de (Postfix) with ESMTP id A216D2D16B
+ for <news-list.zope@innominate.de>; Thu, 4 Oct 2001 10:20:46 +0200 (CEST)
+Received: from mail.python.org (mail.python.org [63.102.49.29])
+ by daswort.innominate.com (Postfix) with ESMTP id 8106A284DD
+ for <news-list.zope@innominate.de>; Thu, 4 Oct 2001 04:42:06 +0000 (GMT)
+Received: from localhost.localdomain ([127.0.0.1] helo=mail.python.org)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 15ozMj-000236-00; Wed, 03 Oct 2001 23:40:05 -0400
+Received: from [65.32.1.43] (helo=smtp-server6.tampabay.rr.com)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 15ozMQ-00021c-00
+ for zope@zope.org; Wed, 03 Oct 2001 23:39:46 -0400
+Received: from tlc2 (242850hfc162.tampabay.rr.com [24.28.50.162])
+ by smtp-server6.tampabay.rr.com (8.11.2/8.11.2) with SMTP id f943dcd28305;
+ Wed, 3 Oct 2001 23:39:42 -0400 (EDT)
+From: "Trevor Toenjes" <zope@toenjes.com>
+To: "Martijn Pieters" <mj@zope.com>,
+ "Trevor Toenjes" <zope@toenjes.com>
+Cc: <zope@zope.org>
+Subject: RE: [Zope] what is error_message and how do I alter it??
+Message-ID: <NEBBLDPBKLOKNHPAEECGAENDCIAA.zope@toenjes.com>
+MIME-Version: 1.0
+Content-Type: text/plain;
+ charset="iso-8859-1"
+Content-Transfer-Encoding: 7bit
+X-Priority: 3 (Normal)
+X-MSMail-Priority: Normal
+X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2910.0)
+Importance: Normal
+X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2314.1300
+In-Reply-To: <20011003223154.D27261@zope.com>
+Sender: zope-admin@zope.org
+Errors-To: zope-admin@zope.org
+X-BeenThere: zope@zope.org
+X-Mailman-Version: 2.0.6 (101270)
+Precedence: bulk
+List-Help: <mailto:zope-request@zope.org?subject=help>
+List-Post: <mailto:zope@zope.org>
+List-Subscribe: <http://lists.zope.org/mailman/listinfo/zope>,
+ <mailto:zope-request@zope.org?subject=subscribe>
+List-Id: Users of the Z Object Publishing Environment <zope.zope.org>
+List-Unsubscribe: <http://lists.zope.org/mailman/listinfo/zope>,
+ <mailto:zope-request@zope.org?subject=unsubscribe>
+List-Archive: <http://lists.zope.org/pipermail/zope/>
+Date: Wed, 3 Oct 2001 23:41:18 -0400
+
+--A216D2D16B.1002185128/mate.bln.innominate.de--
+
diff --git a/tests/bounces/dsn_09.txt b/tests/bounces/dsn_09.txt
new file mode 100644
index 00000000..c24fc14d
--- /dev/null
+++ b/tests/bounces/dsn_09.txt
@@ -0,0 +1,89 @@
+Received: by main.nlenet.net (mbox bob)
+ (with Cubic Circle's cucipop (v1.31 1998/05/13) Sun Nov 4 02:46:01 2001)
+X-From_: postmaster@btconnect.com Sun Nov 4 02:45:50 2001
+>From bob Sun Nov 4 02:45:50 2001
+Return-Path: <postmaster@btconnect.com>
+Delivered-To: bob@nlenet.net
+Received: from c2bapps1.btconnect.com (c2bapps1.btconnect.com [193.113.209.21])
+ by main.nlenet.net (Postfix) with SMTP id ED8D113D126
+ for <bob@nleaudio.com>; Sun, 4 Nov 2001 02:45:49 -0500 (EST)
+Received: from btconnect.com by c2bapps1.btconnect.com id <g.02673-0@c2bapps1.btconnect.com>; Sun, 4 Nov 2001 07:45:32 +0000
+Message-Type: Delivery Report
+X400-Received: by /ADMD= /C=WW/; Relayed; Sun, 4 Nov 2001 07:45:31 +0000
+X400-Received: by mta c2bapps1-hme1 in /ADMD= /C=WW/; Relayed; Sun, 4 Nov 2001 07:45:31 +0000
+X400-MTS-Identifier: [/ADMD= /C=WW/;c2bapps1.b:026710:20011104074531]
+From: postmaster@btconnect.com
+To: bob@nleaudio.com
+Subject: Delivery Report (failure) for pr@allen-heath.com
+Date: Sun, 4 Nov 2001 07:45:32 +0000
+Message-ID: <"c2bapps1.b:026710:20011104074531"@btconnect.com>
+Content-Identifier: test
+MIME-Version: 1.0
+Content-Type: multipart/report; boundary="---Multi-Part-Report-Level-1-1-2672"
+X-Mozilla-Status: 8001
+X-Mozilla-Status2: 00000000
+X-UIDL: 34456246710d0000
+
+
+-----Multi-Part-Report-Level-1-1-2672
+
+This report relates to your message:
+Subject: test,
+ Message-ID: <3BE4F1EC.8306C281@nleaudio.com>,
+ To: pr@allen-heath.com
+
+of Sun, 4 Nov 2001 07:45:31 +0000
+
+Your message was not delivered to:
+ pr@allen-heath.com
+for the following reason:
+Diagnostic was Unable to transfer, -1
+Information MTA '62.6.150.133' gives error message 5.7.1 Unable to relay for pr@allen-heath.com
+
+The Original Message follows:
+
+-----Multi-Part-Report-Level-1-1-2672
+Content-Type: message/delivery-status
+
+Reporting-MTA: x400; mta c2bapps1-hme1 in /ADMD= /C=WW/
+Arrival-Date: Sun, 4 Nov 2001 07:45:00 +0000
+DSN-Gateway: dns; c2bapps1.btconnect.com
+X400-Conversion-Date: Sun, 4 Nov 2001 07:45:32 +0000
+Original-Envelope-Id: [/ADMD= /C=WW/;<3BE4F1EC.8306C281@nleaudio.com>]
+X400-Content-Identifier: test
+X400-Encoded-Info: ia5-text
+X400-Content-Correlator: Subject: test,
+ Message-ID: <3BE4F1EC.8306C281@nleaudio.com>,
+ To: pr@allen-heath.com
+
+Original-Recipient: rfc822; pr@allen-heath.com
+Final-Recipient: x400; /RFC-822=pr(a)allen-heath.com/ADMD= /C=WW/
+X400-Originally-Specified-Recipient-Number: 1
+Action: failed
+Diagnostic-Code: Reason 1 (Unable-To-Transfer); Diagnostic -1 (Unknown)
+Status: 5.0.0
+X400-Supplementary-Info: "MTA '62.6.150.133' gives error message 5.7.1 Unable to relay for pr(a)allen-heath.com"
+X400-Last-Trace: Sun, 4 Nov 2001 07:45:00 +0000
+
+-----Multi-Part-Report-Level-1-1-2672
+Content-Type: message/rfc822
+
+Received: from ns.nlenet.net by c2bapps1 with SMTP (XT-PP); Sun, 4 Nov 2001 07:45:00 +0000
+Received: from nleaudio.com (66-133-142-213.roc.frontiernet.net [66.133.142.213])
+ by ns.nlenet.net (Postfix) with ESMTP id E354A770C
+ for <pr@allen-heath.com>; Sun, 4 Nov 2001 02:44:57 -0500 (EST)
+Message-ID: <3BE4F1EC.8306C281@nleaudio.com>
+Date: Sun, 04 Nov 2001 02:44:44 -0500
+From: "Bob Puff@NLE" <bob@nleaudio.com>
+X-Mailer: Mozilla 4.78 [en] (Win95; U)
+X-Accept-Language: en
+MIME-Version: 1.0
+To: pr@allen-heath.com
+Subject: test
+Content-Type: text/plain; charset=us-ascii
+Content-Transfer-Encoding: 7bit
+
+test, please disregard.
+
+-----Multi-Part-Report-Level-1-1-2672--
+
diff --git a/tests/bounces/dsn_10.txt b/tests/bounces/dsn_10.txt
new file mode 100644
index 00000000..d37aa174
--- /dev/null
+++ b/tests/bounces/dsn_10.txt
@@ -0,0 +1,66 @@
+Return-Path: <>
+From: MAILER-DAEMON@example.com (Mail Delivery System)
+Message-ID: <20021021152058.7A58560E24@brainy.example.com>
+MIME-Version: 1.0
+Content-Type: multipart/report; report-type=delivery-status;
+ boundary="AA0C160E1D.1035213658/brainy.example.com"
+Content-Transfer-Encoding: 8bit
+Subject: Undelivered Mail Returned to Sender
+Date: 21 Oct 2002 15:20:58 GMT
+To: somelist-bounces@listi.example.com
+
+This is a MIME-encapsulated message.
+
+--AA0C160E1D.1035213658/brainy.example.com
+Content-Description: Notification
+Content-Type: text/plain
+
+This is the Postfix program at host brainy.example.com.
+
+I'm sorry to have to inform you that the message returned
+below could not be delivered to one or more destinations.
+
+For further assistance, please send mail to <postmaster>
+
+If you do so, please include this problem report. You can
+delete your own text from the message returned below.
+
+ The Postfix program
+
+<anne.person@dom.ain>: host mx.dom.ain[192.168.1.100] said: 550 {mx001-rz3}
+ <anne.person@dom.ain>... User unknown or not available - Empfaenger
+ unbekannt oder nicht erreichbar (in reply to RCPT TO command)
+
+--AA0C160E1D.1035213658/brainy.example.com
+Content-Description: Delivery error report
+Content-Type: message/delivery-status
+
+Reporting-MTA: dns; brainy.example.com
+Arrival-Date: Mon, 21 Oct 2002 17:20:56 +0200 (CEST)
+
+Final-Recipient: rfc822; anne.person@dom.ain
+Action: failed
+Status: 5.0.0
+Diagnostic-Code: X-Postfix; host mx.dom.ain[192.168.1.100] said: 550
+ {mx001-rz3} <anne.person@dom.ain>... User unknown or not available -
+ Empfaenger unbekannt oder nicht erreichbar (in reply to RCPT TO command)
+
+--AA0C160E1D.1035213658/brainy.example.com
+Content-Description: Undelivered Message
+Content-Type: message/rfc822
+Content-Transfer-Encoding: 8bit
+
+From: b.a.dude@example.com (Peer Heinlein)
+Message-ID: <200210211625.12753.b.a.dude@example.com>
+X-Gateway: ZCONNECT UU example.com [DUUCP vom 25.09.2000], RFC1036/822 UU
+ example.com [DUUCP vom 25.09.2000]
+MIME-Version: 1.0
+Content-Type: text/plain; charset=iso-8859-1
+Content-Transfer-Encoding: 8bit
+Subject: [lb] Probleme =?iso-8859-15?q?gel=F6st?=, Bugs gefunden
+Date: 21 Oct 2002 14:25:12 GMT
+To: people@example.com
+
+A message about stuff.
+
+--AA0C160E1D.1035213658/brainy.example.com--
diff --git a/tests/bounces/dsn_11.txt b/tests/bounces/dsn_11.txt
new file mode 100644
index 00000000..f3e8acaa
--- /dev/null
+++ b/tests/bounces/dsn_11.txt
@@ -0,0 +1,176 @@
+Date: Sat, 26 Oct 2002 22:00:26 +0900 (JST)
+From: Mail Delivery Subsystem <MAILER-DAEMON@example.com>
+Message-Id: <200210261300.WAA27079@example.com>
+To: <mailman-developers-bounces@python.org>
+MIME-Version: 1.0
+Content-Type: multipart/report; report-type=delivery-status;
+ boundary="WAA27079.1035637226/example.com"
+Subject: Returned mail: User unknown
+Auto-Submitted: auto-generated (failure)
+X-Scanned-By: MIMEDefang 2.16 (www . roaringpenguin . com / mimedefang)
+X-Spam-Status: No, hits=-4.0 required=5.0
+ tests=ATTACH_DS,FAILURE_NOTICE_1,FAILURE_NOTICE_2,FROM_MAILER_DAEMON,MAILER_DAEMON,RCVD_IN_RFCI,SPAM_PHRASE_00_01
+X-Spam-Level:
+
+This is a MIME-encapsulated message
+
+--WAA27079.1035637226/example.com
+
+The original message was received at Sat, 26 Oct 2002 22:00:24 +0900 (JST)
+from mailhub-nyc3-hme0.ny.ssmb.com [162.124.148.17]
+
+ ----- The following addresses had permanent fatal errors -----
+<joem@example.com>
+joem@example.com
+ (expanded from: <joem@example.com>)
+joem@example.com
+ (expanded from: joem@example.com)
+joem@example.com
+ (expanded from: joem@example.com)
+joem@example.com
+ (expanded from: joem@example.com)
+joem@example.com
+ (expanded from: joem@example.com)
+joem@example.com
+ (expanded from: joem@example.com)
+joem@example.com
+ (expanded from: joem@example.com)
+joem@example.com
+ (expanded from: joem@example.com)
+joem@example.com
+ (expanded from: joem@example.com)
+joem@example.com
+ (expanded from: joem@example.com)
+
+ ----- Transcript of session follows -----
+554 joem@example.com... aliasing/forwarding loop broken (11 aliases deep; 10 max)
+550 joem@example.com... User unknown
+550 joem@example.com... User unknown
+550 joem@example.com... User unknown
+550 joem@example.com... User unknown
+550 joem@example.com... User unknown
+550 joem@example.com... User unknown
+550 joem@example.com... User unknown
+550 joem@example.com... User unknown
+550 joem@example.com... User unknown
+550 joem@example.com... User unknown
+550 <joem@example.com>... User unknown
+
+--WAA27079.1035637226/example.com
+Content-Type: message/delivery-status
+
+Reporting-MTA: dns; example.com
+Received-From-MTA: DNS; mailhub-nyc3-hme0.ny.ssmb.com
+Arrival-Date: Sat, 26 Oct 2002 22:00:24 +0900 (JST)
+
+Final-Recipient: RFC822; <joem@example.com>
+Action: failed
+Status: 5.1.1
+Last-Attempt-Date: Sat, 26 Oct 2002 22:00:26 +0900 (JST)
+
+Final-Recipient: RFC822; <joem@example.com>
+X-Actual-Recipient: RFC822; joem@example.com
+Action: failed
+Status: 5.1.1
+Last-Attempt-Date: Sat, 26 Oct 2002 22:00:26 +0900 (JST)
+
+Final-Recipient: RFC822; <joem@example.com>
+X-Actual-Recipient: RFC822; joem@example.com
+Action: failed
+Status: 5.1.1
+Last-Attempt-Date: Sat, 26 Oct 2002 22:00:26 +0900 (JST)
+
+Final-Recipient: RFC822; <joem@example.com>
+X-Actual-Recipient: RFC822; joem@example.com
+Action: failed
+Status: 5.1.1
+Last-Attempt-Date: Sat, 26 Oct 2002 22:00:26 +0900 (JST)
+
+Final-Recipient: RFC822; <joem@example.com>
+X-Actual-Recipient: RFC822; joem@example.com
+Action: failed
+Status: 5.1.1
+Last-Attempt-Date: Sat, 26 Oct 2002 22:00:26 +0900 (JST)
+
+Final-Recipient: RFC822; <joem@example.com>
+X-Actual-Recipient: RFC822; joem@example.com
+Action: failed
+Status: 5.1.1
+Last-Attempt-Date: Sat, 26 Oct 2002 22:00:26 +0900 (JST)
+
+Final-Recipient: RFC822; <joem@example.com>
+X-Actual-Recipient: RFC822; joem@example.com
+Action: failed
+Status: 5.1.1
+Last-Attempt-Date: Sat, 26 Oct 2002 22:00:26 +0900 (JST)
+
+Final-Recipient: RFC822; <joem@example.com>
+X-Actual-Recipient: RFC822; joem@example.com
+Action: failed
+Status: 5.1.1
+Last-Attempt-Date: Sat, 26 Oct 2002 22:00:26 +0900 (JST)
+
+Final-Recipient: RFC822; <joem@example.com>
+X-Actual-Recipient: RFC822; joem@example.com
+Action: failed
+Status: 5.1.1
+Last-Attempt-Date: Sat, 26 Oct 2002 22:00:26 +0900 (JST)
+
+Final-Recipient: RFC822; <joem@example.com>
+X-Actual-Recipient: RFC822; joem@example.com
+Action: failed
+Status: 5.1.1
+Last-Attempt-Date: Sat, 26 Oct 2002 22:00:26 +0900 (JST)
+
+Final-Recipient: RFC822; <joem@example.com>
+X-Actual-Recipient: RFC822; joem@example.com
+Action: failed
+Status: 5.1.1
+Last-Attempt-Date: Sat, 26 Oct 2002 22:00:26 +0900 (JST)
+
+--WAA27079.1035637226/example.com
+Content-Type: text/rfc822-headers
+
+Return-Path: <mailman-developers-bounces@python.org>
+Received: from mailhub-nyc3.ny.ssmb.com (mailhub-nyc3-hme0.ny.ssmb.com [162.124.148.17])
+ by example.com (8.8.8+Sun/8.8.8) with ESMTP id WAA27077
+ for <joem@example.com>; Sat, 26 Oct 2002 22:00:24 +0900 (JST)
+Received: from imbarc-nj01.nj.ssmb.com (imbarc-nj01-1.nj.ssmb.com [150.110.115.169])
+ by mailhub-nyc3.ny.ssmb.com (8.9.3/8.9.3/SSMB-HUB) with ESMTP id JAA01226
+ for <joem@example.com>; Sat, 26 Oct 2002 09:00:23 -0400 (EDT)
+Received: from imbavirus-nj02.nj.ssmb.com (imbavirus-nj02-1.nj.ssmb.com [150.110.235.232])
+ by imbarc-nj01.nj.ssmb.com (8.12.4/8.12.4/SSMB_QQQ_IN/1.1) with ESMTP id g9QD0ZtR020988
+ for <joem@example.com>; Sat, 26 Oct 2002 09:00:35 -0400 (EDT)
+Received: (from uucp@localhost)
+ by imbavirus-nj02.nj.ssmb.com (8.11.0/8.11.0/SSMB_AV/1.1) id g9QD0GF15020
+ for <joem@example.com>; Sat, 26 Oct 2002 09:00:16 -0400 (EDT)
+Received: from nodnsquery(199.67.177.248) by imbavirus-nj02.nj.ssmb.com via csmap (V4.1)
+ id srcAAA5gaqvD; Sat, 26 Oct 02 09:00:15 -0400
+Received: from mail.python.org (mail.python.org [12.155.117.29])
+ by imbaspam-nj04.iplex.ssmb.com (8.12.5/8.12.5/SSMB_EXT/evision: 1.13 $) with ESMTP id g9QD0FnI008045
+ for <joem@example.com>; Sat, 26 Oct 2002 09:00:15 -0400 (EDT)
+Received: from localhost.localdomain ([127.0.0.1] helo=mail.python.org)
+ by mail.python.org with esmtp (Exim 4.05)
+ id 185QXq-0004y2-00
+ for joem@example.com; Sat, 26 Oct 2002 09:00:02 -0400
+MIME-Version: 1.0
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+From: mailman-developers-request@python.org
+To: joem@example.com
+Subject: confirm e70bc3961da9f415027185c8634596f7b226815a
+Message-ID: <mailman.0.1035637201.19036.mailman-developers@python.org>
+Date: Sat, 26 Oct 2002 09:00:01 -0400
+Precedence: bulk
+X-BeenThere: mailman-developers@python.org
+X-Mailman-Version: 2.1b4
+X-List-Administrivia: yes
+List-Id: GNU Mailman developers <mailman-developers.python.org>
+Sender: mailman-developers-bounces@python.org
+Errors-To: mailman-developers-bounces@python.org
+X-Spam-Score: -1.1 () NO_REAL_NAME
+X-Scanned-By: MIMEDefang 2.16 (www . roaringpenguin . com / mimedefang)
+
+--WAA27079.1035637226/example.com--
+
+
diff --git a/tests/bounces/dumbass_01.txt b/tests/bounces/dumbass_01.txt
new file mode 100644
index 00000000..c4e40d4b
--- /dev/null
+++ b/tests/bounces/dumbass_01.txt
@@ -0,0 +1,109 @@
+From VM Tue Dec 26 22:41:02 2000
+Return-Path: <python-list-admin@python.org>
+Received: from ns2.digicool.com ([216.164.72.2] verified)
+ by digicool.com (CommuniGate Pro SMTP 3.3.1)
+ with ESMTP id 400019 for xxxxx@mail.digicool.com; Tue, 26 Dec 2000 18:02:35 -0500
+Received: from mail.python.org (starship.python.net [63.102.49.30])
+ by ns2.digicool.com (8.9.3/8.9.3) with ESMTP id SAA02602
+ for <xxxxx@digicool.com>; Tue, 26 Dec 2000 18:02:28 -0500
+Received: from ns1.zope.org (localhost.localdomain [127.0.0.1])
+ by mail.python.org (Postfix) with ESMTP id 9D20DE71C
+ for <xxxxx@digicool.com>; Tue, 26 Dec 2000 12:47:01 -0500 (EST)
+Delivered-To: mm+python-list-admin@python.org
+Received: from mail1.microsoft.com (mail1.microsoft.com [131.107.3.125])
+ by mail.python.org (Postfix) with SMTP id 23085E950
+ for <python-list-admin@python.org>; Tue, 26 Dec 2000 12:46:03 -0500 (EST)
+Received: from 157.54.9.101 by mail1.microsoft.com (InterScan E-Mail VirusWall NT); Tue, 26 Dec 2000 09:43:37 -0800 (Pacific Standard Time)
+Received: from inet-imc-01.redmond.corp.microsoft.com ([157.54.9.101]) by inet-imc-01.redmond.corp.microsoft.com with Microsoft SMTPSVC(5.0.2195.1600);
+ Tue, 26 Dec 2000 09:44:45 -0800
+Received: from mail1.microsoft.com ([157.54.7.20]) by inet-imc-01.redmond.corp.microsoft.com with Microsoft SMTPSVC(5.0.2195.1600);
+ Tue, 26 Dec 2000 09:44:44 -0800
+MIME-Version: 1.0
+Content-Type: multipart/mixed;
+ boundary="------------InterScan_NT_MIME_Boundary"
+Message-ID: <INET-IMC-01r6j6TKAB0000313a@inet-imc-01.redmond.corp.microsoft.com>
+Errors-To: python-list-owner@python.org
+Precedence: bulk
+List-Help: <mailto:python-list-request@python.org?subject=help>
+List-Post: <mailto:python-list@python.org>
+List-Subscribe: <http://www.python.org/mailman/listinfo/python-list>,
+ <mailto:python-list-request@python.org?subject=subscribe>
+List-Id: General discussion list for the Python programming language <python-list.python.org>
+List-Unsubscribe: <http://www.python.org/mailman/listinfo/python-list>,
+ <mailto:python-list-request@python.org?subject=unsubscribe>
+List-Archive: <http://www.python.org/pipermail/python-list/>
+From: inetgw1@microsoft.com
+Sender: python-list-owner@python.org
+To: <python-list-admin@python.org>
+Subject: Mail could not be delivered
+Date: 26 Dec 2000 09:44:44 -0800
+X-OriginalArrivalTime: 26 Dec 2000 17:44:44.0596 (UTC) FILETIME=[8852FF40:01C06F63]
+X-BeenThere: python-list@python.org
+X-Mailman-Version: 2.0
+
+
+--------------InterScan_NT_MIME_Boundary
+Content-type: text/plain
+
+****** Message from InterScan E-Mail VirusWall NT ******
+
+The following mail could not be delivered.
+Reason: Exceeded Maximum Delivery Attempts. Verify that the recipient address is correct.
+
+***************** End of message ***************
+
+--------------InterScan_NT_MIME_Boundary
+Content-type: message/rfc822
+
+Received: from 63.102.49.30 by mail1.microsoft.com (InterScan E-Mail VirusWall NT); Mon, 25 Dec 2000 08:40:09 -0800 (Pacific Standard Time)
+Received: from ns1.zope.org (localhost.localdomain [127.0.0.1])
+ by mail.python.org (Postfix) with ESMTP
+ id 80C4BE86C; Mon, 25 Dec 2000 11:41:09 -0500 (EST)
+Path: news.baymountain.net!uunet!ash.uu.net!news.netins.net!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!howland.erols.net!panix!news.panix.com!panix2.panix.com!not-for-mail
+From: aahz@panix.com (Aahz Maruch)
+Newsgroups: comp.lang.python
+Subject: Season's greetings (was Re: Some Python 2.1 ideas)
+Organization: The Cat & Dragon
+Lines: 13
+Message-ID: <927suu$r5l$1@panix2.panix.com>
+References: <925tl301ub0@news1.newsguy.com> <mailman.977688488.25438.python-list@python.org> <20001225150250.6FA06A84F@darjeeling.zadka.site.co.il> <mailman.977760789.10224.python-list@python.org>
+NNTP-Posting-Host: panix2.panix.com
+X-Trace: news.panix.com 977762079 17648 166.84.0.227 (25 Dec 2000 16:34:39 GMT)
+X-Complaints-To: abuse@panix.com
+NNTP-Posting-Date: 25 Dec 2000 16:34:39 GMT
+Xref: news.baymountain.net comp.lang.python:81985
+To: python-list@python.org
+Sender: python-list-admin@python.org
+Errors-To: python-list-admin@python.org
+X-BeenThere: python-list@python.org
+X-Mailman-Version: 2.0
+Precedence: bulk
+List-Help: <mailto:python-list-request@python.org?subject=help>
+List-Post: <mailto:python-list@python.org>
+List-Subscribe: <http://www.python.org/mailman/listinfo/python-list>,
+ <mailto:python-list-request@python.org?subject=subscribe>
+List-Id: General discussion list for the Python programming language <python-list.python.org>
+List-Unsubscribe: <http://www.python.org/mailman/listinfo/python-list>,
+ <mailto:python-list-request@python.org?subject=unsubscribe>
+List-Archive: <http://www.python.org/pipermail/python-list/>
+Date: 25 Dec 2000 08:34:38 -0800
+
+In article <mailman.977760789.10224.python-list@python.org>,
+Bob Alexander <bobalex@home.com> wrote:
+>
+>P.S. Merry Christmas!
+
+Bah, humbug.
+--
+ --- Aahz (Copyright 2000 by aahz@pobox.com)
+
+Androgynous poly kinky vanilla queer het <*> http://www.rahul.net/aahz/
+Hugs and backrubs -- I break Rule 6
+
+'"Crisp" is a good quality for crackers; less so for pot roast.' --pnh
+--
+http://www.python.org/mailman/listinfo/python-list
+
+--------------InterScan_NT_MIME_Boundary--
+
+
diff --git a/tests/bounces/exim_01.txt b/tests/bounces/exim_01.txt
new file mode 100644
index 00000000..42ceb0b0
--- /dev/null
+++ b/tests/bounces/exim_01.txt
@@ -0,0 +1,58 @@
+Received: from localhost (k298r.balpol.tudelft.nl) [127.0.0.1]
+ by stereo.rotzorg.org with esmtp (Exim 2.05 #1 (Debian))
+ id 11SrFm-000595-00; Mon, 20 Sep 1999 02:24:22 +0200
+Received: from mail by stereo.rotzorg.org with local (Exim 2.05 #1 (Debian))
+ id 11SrFM-00058o-00; Mon, 20 Sep 1999 02:23:56 +0200
+X-Failed-Recipients: delangen@its.tudelft.nl
+From: Mail Delivery System <Mailer-Daemon@rotzorg.org>
+To: lanparty-helden-admin@rotzorg.org
+Subject: Mail delivery failed: returning message to sender
+Message-Id: <E11SrFM-00058o-00@stereo.rotzorg.org>
+Date: Mon, 20 Sep 1999 02:23:56 +0200
+Status: RO
+Content-Length: 1544
+Lines: 42
+
+This message was created automatically by mail delivery software.
+
+A message that you sent could not be delivered to all of its recipients. The
+following address(es) failed:
+
+ delangen@its.tudelft.nl:
+ SMTP error from remote mailer after RCPT TO:
+ <delangen@its.tudelft.nl>:
+ host mailhost1.et.tudelft.nl [130.161.33.163]:
+ 553 5.1.1 unknown or illegal user:
+ delangen@its.tudelft.nl
+
+----- This is a copy of the message, including all the headers. ------
+
+Return-path: <lanparty-helden-admin@rotzorg.org>
+Received: from localhost (k298r.balpol.tudelft.nl) [127.0.0.1]
+ by stereo.rotzorg.org with esmtp (Exim 2.05 #1 (Debian))
+ id 11SrFJ-00058j-00; Mon, 20 Sep 1999 02:23:53 +0200
+Received: from sgr by stereo.rotzorg.org with local (Exim 2.05 #1 (Debian))
+ id 11SrEp-00058U-00; Mon, 20 Sep 1999 02:23:23 +0200
+Date: Mon, 20 Sep 1999 02:23:22 +0200
+From: Sendy <sgr@rotzorg.org>
+To: lanparty-helden@rotzorg.org
+Message-ID: <19990920022322.A19735@stereo.rotzorg.org>
+Reply-To: sendy@dds.nl
+Mime-Version: 1.0
+Content-Type: text/plain; charset=us-ascii
+X-Mailer: Mutt 0.95.3i
+Subject: [Lanparty-helden] test
+Sender: lanparty-helden-admin@rotzorg.org
+Errors-To: lanparty-helden-admin@rotzorg.org
+X-Mailman-Version: 1.0rc2
+Precedence: bulk
+List-Id: Mailinglist voor de KB Lanparty organisatoren <lanparty-helden.rotzorg.
+org>
+X-BeenThere: lanparty-helden@rotzorg.org
+
+
+
+_______________________________________________
+Lanparty-helden mailing list - Lanparty-helden@rotzorg.org
+http://rotzorg.org/mailman/listinfo/lanparty-helden
+
diff --git a/tests/bounces/groupwise_01.txt b/tests/bounces/groupwise_01.txt
new file mode 100644
index 00000000..68101ba0
--- /dev/null
+++ b/tests/bounces/groupwise_01.txt
@@ -0,0 +1,151 @@
+From VM Fri Jul 20 14:14:47 2001
+X-VM-v5-Data: ([nil nil nil nil nil nil nil nil nil]
+ [nil "Friday" "20" "July" "2001" "11:09:00" "-0700" "System Administrator" "postmaster@mainex1.asu.edu" nil "93" "Undeliverable: [Mailman-Users] [ alexandria-Bugs-442987 ] mailman bug" "^From:" "mailman-users-admin@python.org" "mailman-users-admin@python.org" "7" nil nil nil nil nil]
+ nil)
+Return-Path: <mailman-users-admin@python.org>
+Delivered-To: barry@wooz.org
+Received: from digicool.com (unknown [63.100.190.15])
+ by mail.wooz.org (Postfix) with ESMTP id 2193BD35F0
+ for <barry@wooz.org>; Fri, 20 Jul 2001 14:11:42 -0400 (EDT)
+Received: from <mailman-users-admin@python.org>
+ by digicool.com (CommuniGate Pro RULES 3.4)
+ with RULES id 2267275; Fri, 20 Jul 2001 14:11:10 -0400
+Received: from ns2.digicool.com ([63.100.190.2] verified)
+ by digicool.com (CommuniGate Pro SMTP 3.4)
+ with ESMTP id 2267274 for barry@mail.digicool.com; Fri, 20 Jul 2001 14:11:10 -0400
+Received: from mail.python.org (mail.python.org [63.102.49.29])
+ by ns2.digicool.com (8.9.3/8.9.3) with ESMTP id OAA18755
+ for <barry@digicool.com>; Fri, 20 Jul 2001 14:11:40 -0400
+Received: from localhost.localdomain ([127.0.0.1] helo=mail.python.org)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 15NekX-00065F-00; Fri, 20 Jul 2001 14:11:41 -0400
+Received: from [129.219.110.73] (helo=post2.inre.asu.edu)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 15Nejg-0005zp-00
+ for mailman-users-admin@python.org; Fri, 20 Jul 2001 14:10:48 -0400
+Received: from conversion.post2.inre.asu.edu by asu.edu (PMDF V6.0-24 #47347)
+ id <0GGS00E01AF3DP@asu.edu> for mailman-users-admin@python.org; Fri,
+ 20 Jul 2001 11:09:03 -0700 (MST)
+Received: from mainex1.asu.edu (mainex1.asu.edu [129.219.10.200])
+ by asu.edu (PMDF V6.0-24 #47347) with ESMTP id <0GGS00E5WAF396@asu.edu> for
+ mailman-users-admin@python.org; Fri, 20 Jul 2001 11:09:03 -0700 (MST)
+Received: by mainex1.asu.edu with Internet Mail Service (5.5.2653.19)
+ id <3MQDQNK7>; Fri, 20 Jul 2001 11:09:02 -0700
+Message-id: <803148826976D411ADA600B0D03D6E2806F867BF@mainex1.asu.edu>
+MIME-version: 1.0
+Content-type: multipart/mixed; boundary="Boundary_(ID_T1d1xFzw5I4c8zjm3AkzoA)"
+Precedence: bulk
+List-Help: <mailto:mailman-users-request@python.org?subject=help>
+List-Post: <mailto:mailman-users@python.org>
+List-Subscribe: <http://mail.python.org/mailman/listinfo/mailman-users>,
+ <mailto:mailman-users-request@python.org?subject=subscribe>
+List-Id: Mailman mailing list management users <mailman-users.python.org>
+List-Unsubscribe: <http://mail.python.org/mailman/listinfo/mailman-users>,
+ <mailto:mailman-users-request@python.org?subject=unsubscribe>
+List-Archive: <http://mail.python.org/pipermail/mailman-users/>
+From: System Administrator <postmaster@mainex1.asu.edu>
+Sender: mailman-users-owner@python.org
+To: mailman-users-admin@python.org
+Subject: Undeliverable: [Mailman-Users] [ alexandria-Bugs-442987 ] mailman bug
+Date: Fri, 20 Jul 2001 11:09:00 -0700
+X-Autogenerated: Mirror
+X-Mirrored-by: <mailman-users-admin@python.org>
+X-Mailer: Internet Mail Service (5.5.2653.19)
+X-MS-Embedded-Report:
+X-BeenThere: mailman-users@python.org
+X-Mailman-Version: 2.0.5 (101270)
+
+This message is in MIME format. Since your mail reader does not understand
+this format, some or all of this message may not be legible.
+
+--Boundary_(ID_T1d1xFzw5I4c8zjm3AkzoA)
+Content-type: text/plain
+
+Your message
+
+ To: mailman-users@python.org
+ Subject: [Mailman-Users] [ alexandria-Bugs-442987 ] mailman bug
+ Sent: Fri, 20 Jul 2001 08:53:08 -0700
+
+did not reach the following recipient(s):
+
+thoff@MAINEX1.ASU.EDU on Fri, 20 Jul 2001 11:08:59 -0700
+ The recipient name is not recognized
+ The MTS-ID of the original message is: c=us;a= ;p=arizona state
+un;l=MAINEX101072018083MQDQNKX
+ MSEXCH:IMS:Arizona State University:MAIN:MAINEX1 0 (000C05A6) Unknown
+Recipient
+
+
+
+--Boundary_(ID_T1d1xFzw5I4c8zjm3AkzoA)
+Content-type: message/rfc822
+
+Date: Fri, 20 Jul 2001 08:53:08 -0700
+From: Marc MERLIN <marc@merlins.org>
+Subject: [Mailman-Users] [ alexandria-Bugs-442987 ] mailman bug
+To: mailman-users@python.org
+Message-id: <20010720085308.H17468@magic.merlins.org>
+MIME-version: 1.0
+X-Mailer: Internet Mail Service (5.5.2653.19)
+Content-type: text/plain
+X-MS-Embedded-Report:
+List-Subscribe: <http://mail.python.org/mailman/listinfo/mailman-users>,
+ <mailto:mailman-users-request@python.org?subject=subscribe>
+List-Unsubscribe: <http://mail.python.org/mailman/listinfo/mailman-users>,
+ <mailto:mailman-users-request@python.org?subject=unsubscribe>
+List-Help: <mailto:mailman-users-request@python.org?subject=help>
+
+Anyone has a clue about this error?
+
+----- Forwarded message from noreply@sourceforge.net -----
+
+To: noreply@sourceforge.net
+From: noreply@sourceforge.net
+Subject: [ alexandria-Bugs-442987 ] mailman bug
+Date: Fri, 20 Jul 2001 07:47:39 -0700
+
+Initial Comment:
+-----Forwarded Message-----
+From: rtfs-project-admin@lists.sourceforge.net
+To: rtfs-project-admin@lists.sourceforge.net
+Subject: Unexpected Mailman error
+
+
+An unexpected Mailman error has occurred in
+MailCommandHandler.ParseMailCommands(). Here is the
+traceback:
+
+Traceback (innermost last):
+ File
+"/var/local/mailman/Mailman/MailCommandHandler.py",
+line 221, in ParseMailCommands
+ self.__dispatch[cmd](args, line, msg)
+ File
+"/var/local/mailman/Mailman/MailCommandHandler.py",
+line 362, in ProcessSetCmd
+ self.ConfirmUserPassword(sender, args[2])
+ File "/var/local/mailman/Mailman/SecurityManager.py",
+line 140, in ConfirmUserPassword
+ raise Errors.MMBadUserError
+MMBadUserError
+
+----------------------------------------------------------------------
+
+----- End forwarded message -----
+
+--
+Microsoft is to operating systems & security ....
+ .... what McDonalds is to gourmet
+cooking
+
+Home page: http://marc.merlins.org/ | Finger marc_f@merlins.org for PGP
+key
+
+------------------------------------------------------
+Mailman-Users maillist - Mailman-Users@python.org
+http://mail.python.org/mailman/listinfo/mailman-users
+
+--Boundary_(ID_T1d1xFzw5I4c8zjm3AkzoA)--
+
+
diff --git a/tests/bounces/groupwise_02.txt b/tests/bounces/groupwise_02.txt
new file mode 100644
index 00000000..3abfdf86
--- /dev/null
+++ b/tests/bounces/groupwise_02.txt
@@ -0,0 +1,186 @@
+From MAILER-DAEMON Thu Jul 11 15:53:40 2002
+Envelope-to: mailman-developers-bounces@python.org
+Received: from [200.61.188.243] (helo=m3srv02)
+ by mail.python.org with esmtp (Exim 4.05)
+ id 17Sk0S-0004e9-00
+ for mailman-developers-bounces@python.org; Thu, 11 Jul 2002 15:53:40 -0400
+Received: from thedc02.thebas.com ([10.1.1.3]) by m3srv02 with Microsoft
+ SMTPSVC(5.0.2195.4905);
+ Thu, 11 Jul 2002 17:00:06 -0300
+Received: by thedc02.thebas.com with Internet Mail Service (5.5.2653.19)
+ id <NZ5X2T9R>; Thu, 11 Jul 2002 16:55:03 -0300
+Message-ID: <1E774123429CC84995E7DA78FED5F49D408FEF@thedc02.thebas.com>
+From: System Administrator <postmaster@thebas.com>
+To: mailman-developers-bounces@python.org
+Subject: Undeliverable: [Mailman-Developers] RELEASED Mailman 2.0.12
+Date: Thu, 11 Jul 2002 16:55:03 -0300
+MIME-Version: 1.0
+X-Mailer: Internet Mail Service (5.5.2653.19)
+X-MS-Embedded-Report:
+Content-Type: multipart/mixed;
+ boundary="----_=_NextPart_000_01C22914.D8CBF488"
+X-OriginalArrivalTime: 11 Jul 2002 20:00:06.0562 (UTC)
+ FILETIME=[8D8C2820:01C22915]
+
+This message is in MIME format. Since your mail reader does not understand
+this format, some or all of this message may not be legible.
+
+------_=_NextPart_000_01C22914.D8CBF488
+Content-Type: text/html;
+ charset="iso-8859-1"
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
+<META NAME="Generator" CONTENT="MS Exchange Server version 5.5.2653.12">
+<TITLE>Undeliverable: [Mailman-Developers] RELEASED Mailman 2.0.12</TITLE>
+</HEAD>
+<BODY>
+
+<P><FONT SIZE=2>Your message<BR>
+<BR>
+&nbsp; To:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mailman-announce@python.org<BR>
+&nbsp; Cc:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mailman-developers@python.org; mailman-users@python.org<BR>
+&nbsp; Subject: [Mailman-Developers] RELEASED Mailman 2.0.12<BR>
+&nbsp; Sent:&nbsp;&nbsp;&nbsp; Thu, 11 Jul 2002 16:52:33 -0300<BR>
+<BR>
+did not reach the following recipient(s):<BR>
+<BR>
+omarmo@thebas.com on Thu, 11 Jul 2002 16:54:54 -0300<BR>
+&nbsp;&nbsp;&nbsp; The recipient name is not recognized<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The MTS-ID of the original message is: c=us;a= ;p=thebas sa;l=THEDC020207111954NZ5X2T9P<BR>
+&nbsp;&nbsp;&nbsp; MSEXCH:IMS:Thebas sa:CENTRAL:THEDC02 0 (000C05A6) Unknown Recipient<BR>
+</FONT>
+</P>
+
+<P><FONT FACE="Arial" SIZE=2 COLOR="#000000"></FONT>&nbsp;
+
+</BODY>
+</HTML>
+------_=_NextPart_000_01C22914.D8CBF488
+Content-Type: message/rfc822
+
+Message-ID: <15661.57857.753290.942668@anthem.wooz.org>
+From: barry@zope.com
+To: mailman-announce@python.org
+Cc: mailman-developers@python.org, mailman-users@python.org
+Subject: [Mailman-Developers] RELEASED Mailman 2.0.12
+Date: Thu, 11 Jul 2002 16:52:33 -0300
+MIME-Version: 1.0
+X-Mailer: Internet Mail Service (5.5.2653.19)
+X-MS-Embedded-Report:
+List-Help: <mailto:mailman-developers-request@python.org?subject=help>
+List-Subscribe: <http://mail.python.org/mailman-21/listinfo/mailman-developers>,<mailto:mailman-developers-request@python.org?subject=subscribe>
+List-Unsubscribe: <http://mail.python.org/mailman-21/listinfo/mailman-developers>,<mailto:mailman-developers-request@python.org?subject=unsubscribe>
+Content-Type: text/html;
+ charset="iso-8859-1"
+Content-Transfer-Encoding: quoted-printable
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
+charset=3Diso-8859-1">
+<META NAME=3D"Generator" CONTENT=3D"MS Exchange Server version =
+5.5.2653.12">
+<TITLE>[Mailman-Developers] RELEASED Mailman 2.0.12</TITLE>
+</HEAD>
+<BODY>
+<BR>
+
+<P><FONT SIZE=3D2>I' released Mailman 2.0.12 which fixes a cross-site =
+scripting</FONT>
+<BR><FONT SIZE=3D2>vulnerability, among other changes.&nbsp; I =
+recommend that folks upgrade</FONT>
+<BR><FONT SIZE=3D2>their 2.0.x systems to this new version.&nbsp; See =
+below for a NEWS file</FONT>
+<BR><FONT SIZE=3D2>excerpt.</FONT>
+</P>
+
+<P><FONT SIZE=3D2>As usual, I've made both full source tarballs and =
+patches available.</FONT>
+<BR><FONT SIZE=3D2>See</FONT>
+</P>
+
+<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp; <A =
+HREF=3D"http://sourceforge.net/project/showfiles.php?group_id=3D103" =
+TARGET=3D"_blank">http://sourceforge.net/project/showfiles.php?group_id=3D=
+103</A></FONT>
+</P>
+
+<P><FONT SIZE=3D2>for links to download all the patches and the source =
+tarball.&nbsp; If you</FONT>
+<BR><FONT SIZE=3D2>decide to install the patches, please do read the =
+release notes first:</FONT>
+</P>
+
+<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp; <A =
+HREF=3D"http://sourceforge.net/project/shownotes.php?release_id=3D97760"=
+ =
+TARGET=3D"_blank">http://sourceforge.net/project/shownotes.php?release_i=
+d=3D97760</A></FONT>
+</P>
+
+<P><FONT SIZE=3D2>See also:</FONT>
+</P>
+
+<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp; <A =
+HREF=3D"http://www.gnu.org/software/mailman" =
+TARGET=3D"_blank">http://www.gnu.org/software/mailman</A></FONT>
+<BR><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp; <A HREF=3D"http://www.list.org" =
+TARGET=3D"_blank">http://www.list.org</A></FONT>
+<BR><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp; <A HREF=3D"http://mailman.sf.net" =
+TARGET=3D"_blank">http://mailman.sf.net</A></FONT>
+</P>
+
+<P><FONT SIZE=3D2>Cheers,</FONT>
+<BR><FONT SIZE=3D2>-Barry</FONT>
+</P>
+
+<P><FONT SIZE=3D2>-------------------- snip snip =
+--------------------</FONT>
+<BR><FONT SIZE=3D2>2.0.12 (02-Jul-2002)</FONT>
+</P>
+
+<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp; - Implemented a guard against some =
+reply loops and 'bot</FONT>
+<BR><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; subscription =
+attacks.&nbsp; Specifically, if a message to -request</FONT>
+<BR><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; has a Precedence: =
+bulk (or list, or junk) header, the command is</FONT>
+<BR><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ignored.&nbsp; =
+Well-behaved 'bots should always include such a</FONT>
+<BR><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; header.</FONT>
+</P>
+
+<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp; - Changes to the configure script =
+so that you can pass in the mail</FONT>
+<BR><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; host and web host by =
+setting the environment variables MAILHOST</FONT>
+<BR><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and WWWHOST =
+respectively.&nbsp; configure will also exit if it can't</FONT>
+<BR><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; figure out these =
+values (usually due to broken dns).</FONT>
+</P>
+
+<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp; - Closed another minor cross-site =
+scripting vulnerability.</FONT>
+</P>
+<BR>
+
+<P><FONT =
+SIZE=3D2>_______________________________________________</FONT>
+<BR><FONT SIZE=3D2>Mailman-Developers mailing list</FONT>
+<BR><FONT SIZE=3D2>Mailman-Developers@python.org</FONT>
+<BR><FONT SIZE=3D2><A =
+HREF=3D"http://mail.python.org/mailman-21/listinfo/mailman-developers" =
+TARGET=3D"_blank">http://mail.python.org/mailman-21/listinfo/mailman-dev=
+elopers</A></FONT>
+</P>
+
+</BODY>
+</HTML>
+------_=_NextPart_000_01C22914.D8CBF488--
+
+
diff --git a/tests/bounces/hotpop_01.txt b/tests/bounces/hotpop_01.txt
new file mode 100644
index 00000000..970c3998
--- /dev/null
+++ b/tests/bounces/hotpop_01.txt
@@ -0,0 +1,181 @@
+>From daemon Tue Nov 13 13:43:50 2001
+Return-Path: <scr-admin@socal-raves.org>
+Received: from westmail2.West.Sun.COM (westmail2.West.Sun.COM [129.153.100.30])
+ by angus.west.sun.com (8.11.4+Sun/8.11.4) with ESMTP id fADLhna07541
+ for <scr-listmaster@angus.west.sun.com>; Tue, 13 Nov 2001 13:43:49 -0800 (PST)
+Received: from pheriche.sun.com (pheriche.Central.Sun.COM [129.147.5.34])
+ by westmail2.West.Sun.COM (8.9.3+Sun/8.9.3/ENSMAIL,v2.1p1) with ESMTP id NAA21411
+ for <scr-listmaster@angus.west.sun.com>; Tue, 13 Nov 2001 13:43:49 -0800 (PST)
+Received: from babylon.socal-raves.org (ip-209-85-222-117.dreamhost.com [209.85.222.117])
+ by pheriche.sun.com (8.9.3+Sun/8.9.3) with ESMTP id OAA24699
+ for <scr-listmaster@angus.west.sun.com>; Tue, 13 Nov 2001 14:43:44 -0700 (MST)
+Received: by babylon.socal-raves.org (Postfix)
+ id 7153B51D5B; Tue, 13 Nov 2001 13:42:35 -0800 (PST)
+Delivered-To: dmick-lm@babylon.socal-raves.org
+Received: from babylon.socal-raves.org (localhost [127.0.0.1])
+ by babylon.socal-raves.org (Postfix) with ESMTP id 5E63D51B8A
+ for <listmaster@socal-raves.org>; Tue, 13 Nov 2001 13:42:35 -0800 (PST)
+Delivered-To: scr-admin@socal-raves.org
+Received: from kitkat.hotpop.com (kitkat.hotpop.com [204.57.55.30])
+ by babylon.socal-raves.org (Postfix) with ESMTP id DEC4D51B8A
+ for <scr-admin@socal-raves.org>; Tue, 13 Nov 2001 13:42:32 -0800 (PST)
+Received: from hotpop.com (unknown [204.57.55.31])
+ by kitkat.hotpop.com (Postfix) with SMTP id 53D27324D3
+ for <scr-admin@socal-raves.org>; Tue, 13 Nov 2001 21:43:27 +0000 (UTC)
+From: MAILER-DAEMON@HotPOP.com (Mail Delivery System)
+Subject: Undelivered Mail Returned to Sender
+MIME-Version: 1.0
+Content-Type: multipart/mixed;
+ boundary="------------1903.1005687801/HotPOP.com"
+Message-Id: <20011113214327.53D27324D3@kitkat.hotpop.com>
+Date: Tue, 13 Nov 2001 21:43:27 +0000 (UTC)
+To: undisclosed-recipients: ;
+Sender: scr-owner@socal-raves.org
+Errors-To: scr-owner@socal-raves.org
+X-BeenThere: scr@socal-raves.org
+X-Mailman-Version: 2.1a3+
+Precedence: bulk
+List-Help: <mailto:scr-request@socal-raves.org?subject=help>
+List-Post: <mailto:scr@socal-raves.org>
+List-Subscribe: <http://socal-raves.org/mailman/listinfo/scr>,
+ <mailto:scr-request@socal-raves.org?subject=subscribe>
+List-Id: SoCal-Raves <scr.socal-raves.org>
+List-Unsubscribe: <http://socal-raves.org/mailman/listinfo/scr>,
+ <mailto:scr-request@socal-raves.org?subject=unsubscribe>
+List-Archive: <http://socal-raves.org/mailman/private/scr/>
+Content-Length: 5470
+Status: O
+X-Status: $$$$
+X-UID: 0000014497
+
+This is a MIME-encapsulated message.
+
+--------------1903.1005687801/HotPOP.com
+Content-Description: Notification
+Content-Type: text/plain
+
+Undeliverable Address: allensmithee@hotpop.com
+
+Reason: The email you sent to the address specified
+above has been returned because the recipient is over disk quota. This
+account will not be able to receive any email until the account owner
+removes some email from the server.
+
+
+System Contact: postmaster@HotPOP.com
+
+
+Original message attached (Max 5k)
+
+--------------1903.1005687801/HotPOP.com
+Content-Description: Undelivered Message
+Content-Type: message/rfc822
+
+Received: from babylon.socal-raves.org (ip-209-85-222-117.dreamhost.com
+ [209.85.222.117])
+ by mx1.hotpop.com (Postfix) with ESMTP
+ id 3F802249091;
+ Tue, 13 Nov 2001 20:48:57 +0000 (UTC)
+Received: from babylon.socal-raves.org (localhost [127.0.0.1])
+ by babylon.socal-raves.org (Postfix) with ESMTP
+ id 62A6E51D4C; Tue, 13 Nov 2001 12:47:47 -0800 (PST)
+Delivered-To: scr-post@babylon.socal-raves.org
+Received: by babylon.socal-raves.org (Postfix, from userid 60001)
+ id D4A4551D4C; Tue, 13 Nov 2001 12:47:43 -0800 (PST)
+Delivered-To: scr@socal-raves.org
+Received: from mail24.bigmailbox.com (mail24.bigmailbox.com
+ [209.132.220.207]) by babylon.socal-raves.org (Postfix) with ESMTP id
+ 0750D51B8A for <scr@socal-raves.org>; Tue, 13 Nov 2001 12:47:43 -0800
+ (PST)
+Received: (from www@localhost) by mail24.bigmailbox.com (8.10.0/8.10.0)
+ id fADKmeG21560; Tue, 13 Nov 2001 12:48:40 -0800
+Date: Tue, 13 Nov 2001 12:48:40 -0800
+Message-Id: <200111132048.fADKmeG21560@mail24.bigmailbox.com>
+Content-Type: text/plain
+Content-Disposition: inline
+Content-Transfer-Encoding: 8bit
+X-Mailer: MIME-tools 4.104 (Entity 4.116)
+Mime-Version: 1.0
+X-Originating-Ip: [192.76.84.68]
+From: "Jim C" <globalenergymusik@housemusic.com>
+To: scr@socal-raves.org, fitrhaper@aol.com, pbrock@odin.ac.hmc.edu
+Subject: RE: Re: [scr] scary
+Sender: scr-admin@socal-raves.org
+Errors-To: scr-admin@socal-raves.org
+X-BeenThere: scr@socal-raves.org
+X-Mailman-Version: 2.1a3+
+Precedence: bulk
+List-Help: <mailto:scr-request@socal-raves.org?subject=help>
+List-Post: <mailto:scr@socal-raves.org>
+List-Subscribe: <http://socal-raves.org/mailman/listinfo/scr>,
+ <mailto:scr-request@socal-raves.org?subject=subscribe>
+List-Id: SoCal-Raves <scr.socal-raves.org>
+List-Unsubscribe: <http://socal-raves.org/mailman/listinfo/scr>,
+ <mailto:scr-request@socal-raves.org?subject=unsubscribe>
+List-Archive: <http://socal-raves.org/mailman/private/scr/>
+
+[demime could not interpret encoding binary - treating as plain text]
+Hi New to the List. Just curious. What would you have the government do instead? I see alot of passion over this topic so I assume you have an alternative to Ashcroft. These are tough times, and call for quick and concise thinking, Gov is doing its best, Do we have anything better in mind that can be implemented in a short amount of time like this is.?
+
+> FitRhapER@aol.comDate: Tue, 13 Nov 2001 00:39:20 EST
+> Re: [scr] scary pbrock@odin.ac.hmc.edu, scr@socal-raves.org
+>argh! That makes me so angry. Every time i see another people happily not
+>questioning anything and going along with the government for some idiotic
+>reason (i cant really figure out why people happily go along with things, i
+>guess just less stress or something) it just disheartens me further. Why
+>don't these people see just a bit further. I mean it's not hard to see how
+>this could be misused is it? And alot of these people wont be convinced
+>otherwise. You tell them the facts. They give you the obivious retort (the
+>one they've been spoon fed), you show them how that could be side stepped to
+>hurt the innocent, they give you another answer (usually one they thought up
+>themselves, oo how clever), you again show em how this is
+>wrong/unconstitutional/gonna fuck everything up. They give you a "yeah well,
+>the government needs to stop terrorism somehow!" kind of answer.
+>
+>grrrr. *slap* WAKE UP BITCH!!! then they ask you why your eyes are all glazed
+>over and you're smiling funny.
+>
+>peace
+>olly the limey
+>
+>> i know many mudders who think the goverenment is being perfectly
+>> reasonable and that everything about the war and the new laws is
+>> correct. one girl lives like a few doors down from me and it just cracks
+>> me up....
+>>
+>> jesus i can understand not hating everyth9ing, but being happy with every
+>> action the government is taking now just boggles my mind
+>>
+>> on an unrelated note./......
+>>
+>> i like buffy songs...yay buffy songs
+>>
+>> ,tricia
+>>
+>> AIM amphitrite27
+>>
+>> http://www.geocities.com/amphitrite27/index.html
+>>
+>> I wanted a perfect ending. Now I've learned, the hard way, that some poems
+>> don't rhyme, and some stories don't have a clear beginning, middle, and
+>> end. Life is about not knowing, having to change, taking the moment and
+>> making the best of it without knowing what's going to happen next.
+>> ~Gilda Radner
+>_______________________________________________
+>For event info, list questions, or to unsubscribe, see http://www.socal-raves.org/
+
+
+
+
+------------------------------------------------------------
+House music all night long...
+<a href="http://www.housemusic.com">http://www.housemusic.com</a>
+_______________________________________________
+For event info, list questions, or to unsubscribe, see http://www.socal-raves.org/
+
+
+
+--------------1903.1005687801/HotPOP.com--
+
+
+
diff --git a/tests/bounces/llnl_01.txt b/tests/bounces/llnl_01.txt
new file mode 100644
index 00000000..9a6de7f9
--- /dev/null
+++ b/tests/bounces/llnl_01.txt
@@ -0,0 +1,203 @@
+From VM Mon May 28 12:27:07 2001
+X-VM-v5-Data: ([nil nil nil nil nil nil nil nil nil]
+ [nil "Sunday" "27" "May" "2001" "14:25:17" "-0700" "Automated response from LLNL postmaster" "postmaster@llnl.gov" nil "153" "FAILED MAIL to \"trotts1\" regarding \"[ANNOUNCE] wxPython 2.3.0\"" "^From:" nil nil "5" nil nil nil nil nil]
+ nil)
+Return-Path: <python-announce-list-admin@python.org>
+Delivered-To: barry@wooz.org
+Received: from digicool.com (unknown [63.100.190.15])
+ by mail.wooz.org (Postfix) with ESMTP id 307A8D38E0
+ for <barry@wooz.org>; Sun, 27 May 2001 17:26:43 -0400 (EDT)
+Received: from <python-announce-list-admin@python.org>
+ by digicool.com (CommuniGate Pro RULES 3.4)
+ with RULES id 1985528; Sun, 27 May 2001 17:27:06 -0400
+Received: from ns2.digicool.com ([63.100.190.2] verified)
+ by digicool.com (CommuniGate Pro SMTP 3.4)
+ with ESMTP id 1985527 for barry@mail.digicool.com; Sun, 27 May 2001 17:27:06 -0400
+Received: from mail.python.org (mail.python.org [63.102.49.29])
+ by ns2.digicool.com (8.9.3/8.9.3) with ESMTP id RAA21782
+ for <barry@digicool.com>; Sun, 27 May 2001 17:26:42 -0400
+Received: from localhost.localdomain ([127.0.0.1] helo=mail.python.org)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 15483f-000890-00
+ for barry@digicool.com; Sun, 27 May 2001 17:26:43 -0400
+Received: from [128.115.41.100] (helo=pierce.llnl.gov)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 15482m-00086w-00
+ for python-announce-list-admin@python.org; Sun, 27 May 2001 17:25:48 -0400
+Received: (from postmaster@localhost)
+ by pierce.llnl.gov (8.8.8/LLNL-3.0.2/llnl.gov-5.1)
+ id OAA03843; Sun, 27 May 2001 14:25:17 -0700 (PDT)
+Message-Id: <200105272125.OAA03843@pierce.llnl.gov>
+Precedence: bulk
+List-Help: <mailto:python-announce-list-request@python.org?subject=help>
+List-Post: <mailto:python-announce-list@python.org>
+List-Subscribe: <http://mail.python.org/mailman/listinfo/python-announce-list>,
+ <mailto:python-announce-list-request@python.org?subject=subscribe>
+List-Id: Announcement-only list for the Python programming language <python-announce-list.python.org>
+List-Unsubscribe: <http://mail.python.org/mailman/listinfo/python-announce-list>,
+ <mailto:python-announce-list-request@python.org?subject=unsubscribe>
+List-Archive: <http://mail.python.org/pipermail/python-announce-list/>
+From: postmaster@llnl.gov (Automated response from LLNL postmaster)
+Sender: python-announce-list-owner@python.org
+To: python-announce-list-admin@python.org
+Subject: FAILED MAIL to "trotts1" regarding "[ANNOUNCE] wxPython 2.3.0"
+Date: Sun, 27 May 2001 14:25:17 -0700 (PDT)
+X-Autogenerated: Mirror
+X-Mirrored-by: <python-announce-list-admin@python.org>
+X-BeenThere: python-announce-list@python.org
+X-Mailman-Version: 2.0.5 (101270)
+
+The standard form of email address at LLNL is lastnameNumber@llnl.gov
+although individuals may choose an alternate email address. The address to
+which your message was addressed, trotts1@llnl.gov, did not exactly match an
+LLNL email address.
+
+The following locator information may be of help in finding another means
+of contacting "trotts1":
+
+ Judy L. Trotter +1 925-423-5635 trotter4@llnl.gov
+ L-149
+
+
+Original message as received is as follows:
+========================================================================
+>Return-Path: <python-announce-list-admin@python.org>
+>Received: from smtp-in-2.llnl.gov (smtp-in-2.llnl.gov [128.115.249.72]) by pierce.llnl.gov (8.8.8/LLNL-3.0.2/llnl.gov-5.1) with ESMTP id OAA03514 for <trotts1@llnl.gov>; Sun, 27 May 2001 14:21:25 -0700 (PDT)
+>Received: from mail.python.org (localhost [127.0.0.1]) by smtp-in-2.llnl.gov (8.9.3/8.9.3/LLNL-gateway-1.0) with ESMTP id OAA20597 for <trotts1@llnl.gov>; Sun, 27 May 2001 14:21:23 -0700 (PDT)
+>Received: from localhost.localdomain ([127.0.0.1] helo=mail.python.org) by mail.python.org with esmtp (Exim 3.21 #1) id 1547yA-0007w7-00; Sun, 27 May 2001 17:21:02 -0400
+>Path: news.baymountain.net!not-for-mail
+>From: "Robin Dunn" <robin@alldunn.com>
+>Newsgroups: comp.lang.python.announce
+>Subject: [ANNOUNCE] wxPython 2.3.0
+>Organization: Baymountain
+>Lines: 150
+>Message-ID: <mailman.990998285.30333.clpa-moderators@python.org>
+>NNTP-Posting-Host: mail.python.org
+>X-Trace: news.baymountain.net 990998285 26598 63.102.49.29 (27 May 2001 21:18:05 GMT)
+>X-Complaints-To: abuse@baymountain.net
+>NNTP-Posting-Date: 27 May 2001 21:18:05 GMT
+>X-Priority: 3
+>X-MSMail-Priority: Normal
+>X-Mailer: Microsoft Outlook Express 5.50.4133.2400
+>X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400
+>X-BeenThere: clpa-moderators@python.org
+>X-Mailman-Version: 2.0.5 (101270)
+>Precedence: bulk
+>X-BeenThere: clpa-moderators@python.org
+>Xref: news.baymountain.net comp.lang.python.announce:1064
+>X-Originally-To: <wx-announce@lists.wxwindows.org>, <python-announce-list@python.org>, <python-list@python.org>
+>To: python-announce-list@python.org
+>Sender: python-announce-list-admin@python.org
+>Errors-To: python-announce-list-admin@python.org
+>X-BeenThere: python-announce-list@python.org
+>List-Help: <mailto:python-announce-list-request@python.org?subject=help>
+>List-Post: <mailto:python-announce-list@python.org>
+>List-Subscribe: <http://mail.python.org/mailman/listinfo/python-announce-list>, <mailto:python-announce-list-request@python.org?subject=subscribe>
+>List-Id: Announcement-only list for the Python programming language <python-announce-list.python.org>
+>List-Unsubscribe: <http://mail.python.org/mailman/listinfo/python-announce-list>, <mailto:python-announce-list-request@python.org?subject=unsubscribe>
+>List-Archive: <http://mail.python.org/pipermail/python-announce-list/>
+>Date: Fri, 25 May 2001 10:24:51 -0700
+>
+>wxPython 2.3.0 is now available for download. Unfortunately the shell
+>server at sourceforge is down for a few days and so I can't update the
+>wxPython.org web page, but in the meantime you can get the files directly
+>from
+>
+>http://sourceforge.net/project/showfiles.php?group_id=10718.
+>
+>Sources and binaries for win32 and Linux for Python 1.5.2, 2.0 and 2.1 are
+>available. (The win32 binaries with "-hybrid" in the name are built with
+>extra debugging code enabled so some things that caused mysterious problems
+>before will now pop-up a slightly less mysterious message dialog.)
+>
+>There have been a large number of changes for this release. I'll include
+>the relevant portion of CHANGES.txt here:
+>
+>
+>
+>Removed initial startup dependency on the OpenGL DLLs so only the
+>glcanvasc.pyd depends on them, (on wxMSW.)
+>
+>Changed wxFont, wxPen, wxBrush to not implicitly use the
+>wxThe[Font|Pen|Brush]List objects behind the scenes, but to use normal
+>ctor and dtors.
+>
+>Exposed the wxThe[Font|Pen|Brush]List to wxPython.
+>
+>Also added wxTheColourDatabase and added a library module (in the
+>wxPython.lib.colourdb module) to load LOTS more colour names into the
+>colour database.
+>
+>Added wxWakeUpMainThread, wxMutexGuiEnter, wxMutexGuiLeave,
+>wxMutexGuiLocker and wxThread_IsMain to assist with dealing with GUI
+>access from non-GUI threads.
+>
+>wxPyOnDemandOutputWindow is now (more) thread safe if non-GUI threads
+>use print, sys.stdout.write, etc.
+>
+>Added CreateTextSizer and CreateButtonSizer to wxDialog
+>
+>Added wxPython/lib/infoframe.py from Chris Fama. It contains a class
+>that can be used in place of wxPyOnDemandOutputWindow.
+>
+>Added colourselect.py, imagebrowser.py and an updated calendar.py to
+>wxPython/lib from Lorne White.
+>
+>Added patch to wxPoint_LIST_helper from Tim Hochberg that should make
+>it gobs faster in certain situations.
+>
+>Added tools that will take an image file in a wx supported format and
+>convert it to data embedded in a Python source file. The image is
+>converted to XPM format which is essentially a list of strings
+>containing info about each pixel. The image's transparency mask is
+>included, if there is one, or a mask can be added if a mask colour is
+>specified on the command line. It is then pickled and optionally
+>compressed and written to a Python source file along with functions to
+>convert it to either a wxBitmap or a wxImage. See
+>wxPython/demo/images.py for examples, and wxPython/Tools/img2py.py for
+>the implementation.
+>
+>Fixed wxStyledTextCtrl to be much faster on wxGTK. There was some
+>experimental code that got left in place that ended up causing way too
+>many refreshes.
+>
+>A couple more hacks in my_distutils.py so wxPython can be built with
+>the distutils that comes with Python 2.1.
+>
+>Added a ton of missing methods for wxPrintData.
+>
+>Switched to InnoSetup for MSW distributions.
+>
+>Added wxToggleButton.
+>
+>Fixed bug that prevented wxTreeCtrl.OnCompareItems from being called.
+>
+>Added some methods to wxGrid:
+> GetCellHighlightPenWidth
+> GetCellHighlightROPenWidth
+> SetCellHighlightPenWidth
+> SetCellHighlightROPenWidth
+> GetGridWindow
+> GetGridRowLabelWindow
+> GetGridColLabelWindow
+> GetGridCornerLabelWindow
+>
+>Added wxGetClientDisplayRect which on wxMSW returns a wxRect
+>representing the area on screen not occupied by the taskbar and such.
+>On other platforms it is equivallent to wxGetDisplaySize.
+>
+>
+>***---***---***---***---***---***---***---***---***---***---***---
+> Implemented the first phase of OOR (Original Object Return). See
+> the text in the demo for more details of what this means, but in a
+> nutshell methods such as wxWindow.GetParent or FindWindowById will
+> now return a shadow object of the proper type if it can. By
+> "proper type" I mean that if the wxWindow pointer returned from
+> FindWindowById really points to a wxButton then the Python object
+> constructed will be of a wxButtonPtr class instead of wxWindowPtr
+> as before. This should reduce or eliminiate the need for
+> wxPyTypeCast. (Woo Hoo!) The objects returned are still not the
+> original Python object, but that is the next step. (Although it
+
+
+
diff --git a/tests/bounces/microsoft_01.txt b/tests/bounces/microsoft_01.txt
new file mode 100644
index 00000000..92465f78
--- /dev/null
+++ b/tests/bounces/microsoft_01.txt
@@ -0,0 +1,108 @@
+Return-Path: <MAILER-DAEMON>
+Received: from bkb01-ims-01.ikon.com (bkb01-ims-01.ikon.com [205.145.1.251])
+ by plaidworks.com (8.12.2/8.12.2) with ESMTP id g94LJbkw021463
+ for <pit-penguins-bounces@plaidworks.com>; Fri, 4 Oct 2002 14:19:37 -0700 (PDT)
+Received: by bkb01-ims-01.ikon.com with Internet Mail Service (5.5.2656.59)
+ id <4C3HZXG8>; Fri, 4 Oct 2002 17:12:36 -0400
+Message-ID: <44136F3E78E1C44EB52A3F95C986EAED09DB0AAB@BKB02-IMS-01.ikon.org>
+From: System Administrator <postmaster@IKON.com>
+To: pit-penguins-bounces@plaidworks.com
+Subject: Undeliverable: RE: Waiver draft results explained
+Date: Fri, 4 Oct 2002 17:12:35 -0400
+MIME-Version: 1.0
+X-Mailer: Internet Mail Service (5.5.2656.59)
+X-MS-Embedded-Report:
+Content-Type: multipart/mixed;
+ boundary="----_=_NextPart_000_01C26BEA.C2970D56"
+
+This message is in MIME format. Since your mail reader does not understand
+this format, some or all of this message may not be legible.
+
+------_=_NextPart_000_01C26BEA.C2970D56
+Content-Type: text/plain;
+ charset="iso-8859-1"
+
+Your message
+
+ To: pit-penguins@plaidworks.com
+ Subject: RE: Waiver draft results explained
+ Sent: Fri, 4 Oct 2002 17:10:56 -0400
+
+did not reach the following recipient(s):
+
+c=US;a= ;p=IKON;o=Nexus2;dda:SMTP=DJBENNETT@IKON.COM; on Fri, 4 Oct 2002
+17:12:28 -0400
+ The recipient name is not recognized
+ The MTS-ID of the original message is: c=us;a=
+;p=ikon;l=BKB02-IMS-010210042112TX06SNVK
+ MSEXCH:IMS:IKON:Nexus2:BKB02-IMS-01 0 (000C05A6) Unknown Recipient
+
+
+
+------_=_NextPart_000_01C26BEA.C2970D56
+Content-Type: message/rfc822
+
+Message-ID: <5.1.1.5.2.20021004224506.00bd9ff8@mail.chello.se>
+From: Mikael Hedberg <mhedberg@chello.se>
+To: pit-penguins@plaidworks.com
+Subject: RE: Waiver draft results explained
+Date: Fri, 4 Oct 2002 17:10:56 -0400
+MIME-Version: 1.0
+X-Mailer: Internet Mail Service (5.5.2656.59)
+X-MS-Embedded-Report:
+List-Help: <mailto:pit-penguins-request@plaidworks.com?subject=help>
+List-Subscribe: <http://plaidworks.com/mailman/listinfo/pit-penguins>,<mailto:pit-penguins-request@plaidworks.com?subject=subscribe>
+List-Unsubscribe: <http://plaidworks.com/mailman/listinfo/pit-penguins>,<mailto:pit-penguins-request@plaidworks.com?subject=unsubscribe>
+Content-Type: text/plain;
+ charset="iso-8859-1"
+
+
+OK, one more time...slowly:
+
+Youngsters like Berry, Meloche and TK are no longer exempt from regular
+season waivers. Hence, they'd have to pass through waivers to be sent down
+to WBS.
+
+Now, during the waiver draft, to claim a player you must also unprotect one
+of your own players. This is different from the regular waivers, where any
+team can claim any player without giving up anything but the waiver fee.
+This means teams are more reluctant to claim guys, since they run the risk
+of losing one of their own players.
+
+However, if a player was to pass through the waiver draft *unclaimed*, he
+would also count as having passed regular waivers -- and then be allowed to
+be sent down immidiately. This was most definitely Patrick's reasoning for
+Meloche and TK -- he said as much yesterday -- and probably also for Berry;
+ie. management wanted them playing in the minors, and this was the best
+chance of getting them there. The only other option would be to keep them
+on the big team for the entire season.
+
+Also, if Washington ever wants to send Berry down, they must put him
+through waivers, where the Pens have the option of claiming him back -- and
+would then, as the original owning team, be free to send him down to THEIR
+minor club without putting him on waivers (NHL CBA, article 13.20, I
+believe).
+
+Personally, I think this whole Rick Berry issue has been totally blown out
+of proportion. It's not like he's the second coming of Ray Bourque or even
+Scott Stevens. He's a borderline NHL:er who probably would've played out
+most of the season in the minors anyway (seeing as how Penguins management
+weren't too high on him after camp). While I can't say I feel content to
+lose one asset of the Kasparaitis trade already, the reasoning behind this
+move is sound, and all you Pittsburgh/Mario/CP-bashers are really making a
+chicken out of a feather here.
+
+__________________________________________________________________
+ Mikael Hedberg mhedberg@chello.se
+
+ "It does not do to leave a live dragon out of your calculations,
+ if you live near one." ---J.R.R. Tolkien
+
+_______________________________________________
+Do not post admin requests to the list. They will be ignored.
+pit-penguins mailing list
+pit-penguins@plaidworks.com
+http://plaidworks.com/mailman/listinfo/pit-penguins
+
+------_=_NextPart_000_01C26BEA.C2970D56--
+
diff --git a/tests/bounces/microsoft_02.txt b/tests/bounces/microsoft_02.txt
new file mode 100644
index 00000000..3c6c5416
--- /dev/null
+++ b/tests/bounces/microsoft_02.txt
@@ -0,0 +1,119 @@
+Precedence: bulk
+List-Help: <mailto:mailman-users-request@python.org?subject=help>
+List-Post: <mailto:mailman-users@python.org>
+List-Subscribe: <http://mail.python.org/mailman/listinfo/mailman-users>,
+ <mailto:mailman-users-request@python.org?subject=subscribe>
+List-Id: Mailman mailing list management users <mailman-users.python.org>
+List-Unsubscribe: <http://mail.python.org/mailman/listinfo/mailman-users>,
+ <mailto:mailman-users-request@python.org?subject=unsubscribe>
+List-Archive: <http://mail.python.org/pipermail/mailman-users/>
+From: System Administrator <postmaster@ball.com>
+Sender: mailman-users-owner@python.org
+To: mailman-users-admin@python.org
+Subject: Undeliverable: [Mailman-Users] Virus in ma mail ... these are the
+ headers....
+Date: Fri, 18 Oct 2002 09:13:31 -0600
+X-Mailer: Internet Mail Service (5.5.2653.19)
+X-MS-Embedded-Report:
+X-Spam-Status: No, hits=-5.0 required=5.0 tests=FROM_MAILER_DAEMON,MIME_NULL_BLOCK,ATTACH_RFC822
+X-Spam-Level:
+X-BeenThere: mailman-users@python.org
+X-Mailman-Version: 2.0.13 (101270)
+
+This message is in MIME format. Since your mail reader does not understand
+this format, some or all of this message may not be legible.
+
+------_=_NextPart_000_01C276B8.EB5EB90E
+Content-Type: text/plain;
+ charset="iso-8859-1"
+
+Your message
+
+ To: K12
+ Cc: Mailman; RedHat Mail List
+ Subject: [Mailman-Users] Virus in ma mail ... these are the headers....
+ Sent: Fri, 18 Oct 2002 09:25:07 -0600
+
+did not reach the following recipient(s):
+
+MDMOORE@BALL.COM on Fri, 18 Oct 2002 09:13:24 -0600
+ The recipient name is not recognized
+ The MTS-ID of the original message is: c=us;a=
+;p=ball;l=AEROMSG2021018151347W14KQ9
+ MSEXCH:IMS:BALL:AEROSPACE:AEROMSG2 0 (000C05A6) Unknown Recipient
+
+
+
+
+------_=_NextPart_000_01C276B8.EB5EB90E
+Content-Type: message/rfc822
+
+Message-ID: <NGBBLKFIDENNFHKFMGAIGEMNCJAA.badmangabriel@lycos.co.uk>
+From: Angel Gabriel <badmangabriel@lycos.co.uk>
+To: K12 <k12osn@redhat.com>
+Cc: Mailman <mailman-users@python.org>, RedHat Mail List
+ <redhat-install-list@redhat.com>
+Subject: [Mailman-Users] Virus in ma mail ... these are the headers....
+Date: Fri, 18 Oct 2002 09:25:07 -0600
+MIME-Version: 1.0
+X-Mailer: Internet Mail Service (5.5.2653.19)
+X-MS-Embedded-Report:
+List-Help: <mailto:mailman-users-request@python.org?subject=help>
+List-Subscribe: <http://mail.python.org/mailman/listinfo/mailman-users>,<mailto:mailman-users-request@python.org?subject=subscribe>
+List-Unsubscribe: <http://mail.python.org/mailman/listinfo/mailman-users>,<mailto:mailman-users-request@python.org?subject=unsubscribe>
+Content-Type: text/plain;
+ charset="iso-8859-1"
+
+This is a continuation of my viral problem.... I'm guessing that this person
+was either infected by my, or infected me.... but how do I notify them??
+These are the headers of one of the problem mails. Is there anything I can
+do?
+
+Return-Path: <friends@shakeit.net>
+Received: from smtp.lycos.co.uk (croy-gw1.homechoice.co.uk [212.187.250.18])
+
+ by mailbox-8.st1.spray.net (Postfix) with SMTP id 7E1E3252DF
+ for <badmangabriel@lycos.co.uk>; Fri, 18 Oct 2002 17:01:29 +0200
+(DST)
+From: werfriends <friends@shakeit.net>
+To: badmangabriel@lycos.co.uk
+Subject: Bullshit Screensaver to ur friends !!
+Date: Fri,18 Oct 2002 16:03:06 PM
+X-Mailer: Microsoft Outlook Express 5.50.4133.2400
+MIME-Version: 1.0
+Content-Type: multipart/mixed;
+ boundary=simqlgr
+Message-Id: <20021018150129.7E1E3252DF@mailbox-8.st1.spray.net>
+
+
+
+***
+
+Not everyone is touched by an Angel......and those that are, never forget
+the experience.
+
+***
+
+If you want guest list for bare club nights.....
+http://raw-talent.hopto.org/mailman/clubnights
+<http://raw-talent.hopto.org/mailman/clubnights>
+
+***
+
+Can you sing, dance, MC, DJ, do you have talent? Send an email to
+sign-me@raw-talent.hopto.org
+
+***
+
+
+---
+Outgoing mail is certified Virus Free.
+Checked by AVG anti-virus system ( http://www.grisoft.com
+<http://www.grisoft.com> ).
+Version: 6.0.394 / Virus Database: 224 - Release Date: 10/3/02
+
+
+
+------_=_NextPart_000_01C276B8.EB5EB90E--
+
+
diff --git a/tests/bounces/netscape_01.txt b/tests/bounces/netscape_01.txt
new file mode 100644
index 00000000..adcde15b
--- /dev/null
+++ b/tests/bounces/netscape_01.txt
@@ -0,0 +1,123 @@
+Received: by master.kde.org id <S742399AbQEZVQS>;
+ Fri, 26 May 2000 23:16:18 +0200
+Received: from nmail.corel.com ([209.167.40.11]:48557 "EHLO nsmail.corel.com")
+ by master.kde.org with ESMTP id <S742400AbQEZVP6>;
+ Fri, 26 May 2000 23:15:58 +0200
+To: kde-core-devel-admin@master.kde.org
+From: Mail Administrator <Postmaster@nsmail.corel.com>
+Reply-To: Mail Administrator <Postmaster@nsmail.corel.com>
+Subject: Mail System Error - Returned Mail
+Date: Fri, 26 May 2000 17:14:07 -0400
+Message-ID: <20000526211407.AAB24445@nsmail.corel.com>
+MIME-Version: 1.0
+Content-Type: multipart/report; report-type=delivery-status;
+ Boundary="===========================_ _= 461730(24445)"
+Sender: kde-core-devel-admin@master.kde.org
+Resent-Sender: kde-core-devel-admin@master.kde.org
+Resent-From: kde-core-devel@master.kde.org
+X-Mailing-List: <kde-core-devel@master.kde.org>
+Errors-To: kde-core-devel-admin@master.kde.org
+X-BeenThere: kde-core-devel@master.kde.org
+X-Mailman-Version: 2.0beta2
+Precedence: bulk
+List-Id: KDE's core development crew <kde-core-devel.master.kde.org>
+Resent-Date: Fri, 26 May 2000 23:16:18 +0200
+Return-Path: <kde-core-devel-admin@master.kde.org>
+X-Orcpt: rfc822;coolo@kde.org
+X-Mozilla-Status: 8001
+X-Mozilla-Status2: 00000000
+
+--===========================_ _= 461730(24445)
+Content-Type: text/plain; charset=us-ascii
+Content-Transfer-Encoding: 7bit
+
+This Message was undeliverable due to the following reason:
+
+Your message was not delivered because the destination computer was
+not reachable within the allowed queue period. The amount of time
+a message is queued before it is returned depends on local configura-
+tion parameters.
+
+Most likely there is a network problem that prevented delivery, but
+it is also possible that the computer is turned off, or does not
+have a mail system running right now.
+
+Your message was not delivered within 2 days.
+Host corel.com is not responding.
+
+The following recipients did not receive your message:
+
+ <aaaaa@corel.com>
+The following recipients did not receive your message:
+
+ <bbbbb@corel.com>
+
+Please reply to Postmaster@nsmail.corel.com
+if you feel this message to be in error.
+
+
+--===========================_ _= 461730(24445)
+Content-Type: message/delivery-status
+Content-Disposition: inline
+Content-Transfer-Encoding: 7bit
+
+
+Reporting-MTA: dns; nsmail.corel.com
+Received-From-MTA: dns; [120.2.1.9] [120.2.1.9]
+Arrival-Date: Wed, 24 May 2000 16:50:34 -0400
+
+--===========================_ _= 461730(24445)
+Content-Type: message/rfc822
+Content-Disposition: inline
+Content-Transfer-Encoding: 7bit
+
+Received: from fwsb1 ([120.2.1.9]) by nsmail.corel.com
+ (Netscape Messaging Server 3.61) with SMTP id AAA41D0
+ for <philipr@corel.com>; Wed, 24 May 2000 16:50:34 -0400
+Received: by master.kde.org id <S741513AbQEXUuI>;
+ Wed, 24 May 2000 22:50:08 +0200
+Received: from smtp.mail.yahoo.com ([128.11.68.32]:5906 "HELO
+ smtp.mail.yahoo.com") by master.kde.org with SMTP
+ id <S741709AbQEXUtl>; Wed, 24 May 2000 22:49:41 +0200
+Received: from pec-151-5.tnt7.b2.uunet.de (HELO yahoo.com) (149.225.151.5)
+ by smtp.mail.yahoo.com with SMTP; 24 May 2000 12:29:34 -0700
+X-Apparently-From: <gigafalk@yahoo.com>
+Message-ID: <392C2D67.C072CDA8@yahoo.com>
+Date: Wed, 24 May 2000 21:28:39 +0200
+From: Falk Brettschneider <gigafalk@yahoo.com>
+Organization: FBI (Falk Brettschneider International)
+X-Mailer: Mozilla 4.7 [de] (X11; I; Linux 2.2.13 i686)
+X-Accept-Language: en
+MIME-Version: 1.0
+To: kde-core-devel@kde.org
+Subject: private classes in KDE
+Content-Type: text/plain; charset=us-ascii
+Content-Transfer-Encoding: 7bit
+Sender: kde-core-devel-admin@master.kde.org
+Resent-Sender: kde-core-devel-admin@master.kde.org
+Resent-From: kde-core-devel@master.kde.org
+X-Mailing-List: <kde-core-devel@master.kde.org>
+Errors-To: kde-core-devel-admin@master.kde.org
+X-BeenThere: kde-core-devel@master.kde.org
+X-Mailman-Version: 2.0beta2
+Precedence: bulk
+Reply-To: kde-core-devel@master.kde.org
+List-Id: KDE's core development crew <kde-core-devel.master.kde.org>
+Resent-Date: Wed, 24 May 2000 22:50:08 +0200
+
+Hi,
+
+Can I move a class away from the public classes of KDE to a private
+header/source file of KDE when one of the public classes declares this
+private candidate as friend class?
+
+Thanks + Bye,
+ F@lk
+
+
+
+__________________________________________________
+Do You Yahoo!?
+Talk to your friends online with Yahoo! Messenger.
+http://im.yahoo.com
+--===========================_ _= 461730(24445)--
diff --git a/tests/bounces/newmailru_01.txt b/tests/bounces/newmailru_01.txt
new file mode 100644
index 00000000..7802c151
--- /dev/null
+++ b/tests/bounces/newmailru_01.txt
@@ -0,0 +1,112 @@
+From VM Thu Dec 7 15:07:27 2000
+Return-Path: <python-list-admin@python.org>
+Delivered-To: bxxxxx@mail.wooz.org
+Received: from dinsdale.python.org (dinsdale.python.org [132.151.1.21])
+ by mail.wooz.org (Postfix) with ESMTP id 276A9D37DB
+ for <yyyyy@wooz.org>; Thu, 7 Dec 2000 15:03:20 -0500 (EST)
+Received: from dinsdale.python.org (localhost [127.0.0.1])
+ by dinsdale.python.org (Postfix) with ESMTP id 13CF11CFD2
+ for <yyyyy@wooz.org>; Thu, 7 Dec 2000 14:58:02 -0500 (EST)
+Delivered-To: python-list-admin@python.org
+Received: from grif.newmail.ru (grif.newmail.ru [212.48.140.154])
+ by dinsdale.python.org (Postfix) with SMTP id D9F021CFD2
+ for <python-list-admin@python.org>; Thu, 7 Dec 2000 14:57:26 -0500 (EST)
+Received: (qmail 1933 invoked for bounce); 7 Dec 2000 19:57:26 -0000
+Content-Type: text/plain; charset=koi8-r
+Message-Id: <20001207195726.D9F021CFD2@dinsdale.python.org>
+Errors-To: python-list-owner@python.org
+Precedence: bulk
+List-Help: <mailto:python-list-request@python.org?subject=help>
+List-Post: <mailto:python-list@python.org>
+List-Subscribe: <http://www.python.org/mailman/listinfo/python-list>,
+ <mailto:python-list-request@python.org?subject=subscribe>
+List-Id: General discussion list for the Python programming language <python-list.python.org>
+List-Unsubscribe: <http://www.python.org/mailman/listinfo/python-list>,
+ <mailto:python-list-request@python.org?subject=unsubscribe>
+List-Archive: <http://www.python.org/pipermail/python-list/>
+From: MAILER-DAEMON@grif.newmail.ru
+Sender: python-list-owner@python.org
+To: python-list-admin@python.org
+Subject: failure notice
+Date: 7 Dec 2000 19:57:26 -0000
+X-BeenThere: python-list@python.org
+X-Mailman-Version: 2.0
+
+This is the machine generated message from mail service.
+Unfortunately, we were not able to deliver your message to the following address(es):
+
+üÔÏ ÓÏÏÂÝÅÎÉÅ ÓÏÚÄÁÎÏ Á×ÔÏÍÁÔÉÞÅÓËÉ mail-ÓÅÒ×ÉÓÏÍ.
+ë ÓÏÖÁÌÅÎÉÀ, ÎÅ×ÏÚÍÏÖÎÏ ÄÏÓÔÁ×ÉÔØ ÓÏÏÂÝÅÎÉÅ ÐÏ ÓÌÅÄÕÀÝÅÍÕ ÁÄÒÅÓÕ:
+
+<zzzzz@newmail.ru>:
+This person's account is exceeding their quota.
+
+--- Below the next line is a copy of the message.
+--- îÉÖÅ ÜÔÏÊ ÌÉÎÉÉ ÎÁÈÏÄÉÔÓÑ ËÏÐÉÑ ÓÏÏÂÝÅÎÉÑ.
+
+Return-Path: <python-list-admin@python.org>
+Received: (qmail 1924 invoked from network); 7 Dec 2000 19:57:26 -0000
+Received: from unknown (HELO dinsdale.python.org) (132.151.1.21)
+ by grif.newmail.ru with SMTP; 7 Dec 2000 19:57:26 -0000
+Received: from dinsdale.python.org (localhost [127.0.0.1])
+ by dinsdale.python.org (Postfix) with ESMTP
+ id 8E2A81CD7A; Thu, 7 Dec 2000 14:56:18 -0500 (EST)
+Message-ID: <3A2FEB05.5E9531C4@san.rr.com>
+From: Darren New <dnew@san.rr.com>
+Organization: Bookshelves and file cabinets?
+X-Mailer: Mozilla 4.06 [en] (WinNT; U)
+MIME-Version: 1.0
+Newsgroups: comp.lang.python
+Subject: Re: Python Origins
+References: <90k3pq$50p$1@nnrp1.deja.com> <3A2DD2CA.14A5D7E2@engcorp.com> <90l3j9$4bn$1@kapsel.intranet> <udzoi9cedt.fsf@box.home.de> <KHOX5.3213$TU6.94362@ptah.visi.com>
+Content-Type: text/plain; charset=us-ascii
+Content-Transfer-Encoding: 7bit
+Lines: 22
+NNTP-Posting-Host: 204.210.39.121
+X-Complaints-To: abuse@rr.com
+X-Trace: typhoon.san.rr.com 976218885 204.210.39.121 (Thu, 07 Dec 2000 11:54:45 PST)
+NNTP-Posting-Date: Thu, 07 Dec 2000 11:54:45 PST
+Path: news!uunet!ash.uu.net!hermes.visi.com!news-out.visi.com!cyclone-sjo1.usenetserver.com!news-out.usenetserver.com!cyclone-west.rr.com!news.rr.com!news-west.rr.com!lsnws01.we.mediaone.net!cyclone-LA3.rr.com!typhoon.san.rr.com.POSTED!not-for-mail
+Xref: news comp.lang.python:121135
+To: python-list@python.org
+Sender: python-list-admin@python.org
+Errors-To: python-list-admin@python.org
+X-BeenThere: python-list@python.org
+X-Mailman-Version: 2.0
+Precedence: bulk
+List-Help: <mailto:python-list-request@python.org?subject=help>
+List-Post: <mailto:python-list@python.org>
+List-Subscribe: <http://www.python.org/mailman/listinfo/python-list>,
+ <mailto:python-list-request@python.org?subject=subscribe>
+List-Id: General discussion list for the Python programming language <python-list.python.org>
+List-Unsubscribe: <http://www.python.org/mailman/listinfo/python-list>,
+ <mailto:python-list-request@python.org?subject=unsubscribe>
+List-Archive: <http://www.python.org/pipermail/python-list/>
+Date: Thu, 07 Dec 2000 19:54:45 GMT
+
+Grant Edwards wrote:
+> If a person who speaks two languages is "bilingual" and a
+> person who speaks three languages is "trilingual", then what do
+> you call a person who only speaks one langage?
+>
+> American!
+
+Yah. We just export our culture to y'all. ;-)
+
+Actually, we don't all speak the same language. We can just all understand
+each other.
+
+The traveling salesman saw "grits" on the menu. He asked the waitress "What
+are grits?" She said "They're extra." "But what *are* they?" he asked
+again. "They're fifty cents" she answered. "Yes, I'll have the grits,
+please."
+
+--
+Darren New / Senior MTS & Free Radical / Invisible Worlds Inc.
+San Diego, CA, USA (PST). Cryptokeys on demand.
+Personal malapropism generator free with purchase!
+Steganography: The manual is hidden in the source code.
+--
+http://www.python.org/mailman/listinfo/python-list
+
+
diff --git a/tests/bounces/postfix_01.txt b/tests/bounces/postfix_01.txt
new file mode 100644
index 00000000..186cc763
--- /dev/null
+++ b/tests/bounces/postfix_01.txt
@@ -0,0 +1,123 @@
+From VM Tue Oct 3 18:16:48 2000
+Return-Path: <mailman-developers-admin@python.org>
+Delivered-To: zzzzz@mail.wooz.org
+Received: from ns1.beopen.com (unknown [208.185.174.104])
+ by mail.wooz.org (Postfix) with ESMTP id 0C841D37D5
+ for <yyyyy@wooz.org>; Tue, 3 Oct 2000 18:08:44 -0400 (EDT)
+Received: from dinsdale.python.org (dinsdale.cnri.reston.va.us [132.151.1.21])
+ by ns1.beopen.com (8.9.3/8.9.3) with ESMTP id PAA65355
+ for <zzzzz@beopen.com>; Tue, 3 Oct 2000 15:09:08 -0700 (PDT)
+ (envelope-from mailman-developers-admin@python.org)
+Received: from dinsdale.python.org (localhost [127.0.0.1])
+ by dinsdale.python.org (Postfix) with ESMTP id 2EF421CDC9
+ for <zzzzz@beopen.com>; Tue, 3 Oct 2000 18:07:03 -0400 (EDT)
+Delivered-To: mailman-developers-admin@python.org
+Received: by dinsdale.python.org (Postfix) via BOUNCE
+ id 7CE611CE55; Tue, 3 Oct 2000 18:06:58 -0400 (EDT)
+MIME-Version: 1.0
+Content-Type: multipart/mixed;
+ boundary="BDD021CF6B.970610818/dinsdale.python.org"
+Message-Id: <20001003220658.7CE611CE55@dinsdale.python.org>
+Errors-To: mailman-developers-owner@python.org
+Precedence: bulk
+List-Help: <mailto:mailman-developers-request@python.org?subject=help>
+List-Post: <mailto:mailman-developers@python.org>
+List-Subscribe: <http://www.python.org/mailman/listinfo/mailman-developers>, <mailto:mailman-developers-request@python.org?subject=subscribe>
+List-Id: Mailman mailing list developers <mailman-developers.python.org>
+List-Unsubscribe: <http://www.python.org/mailman/listinfo/mailman-developers>, <mailto:mailman-developers-request@python.org?subject=unsubscribe>
+List-Archive: <http://www.python.org/pipermail/mailman-developers/>
+From: MAILER-DAEMON@python.org (Mail Delivery System)
+Sender: mailman-developers-owner@python.org
+To: mailman-developers-admin@python.org
+Subject: Undelivered Mail Returned to Sender
+Date: Tue, 3 Oct 2000 18:06:58 -0400 (EDT)
+X-BeenThere: mailman-developers@python.org
+X-Mailman-Version: 2.0beta6
+
+This is a MIME-encapsulated message.
+
+--BDD021CF6B.970610818/dinsdale.python.org
+Content-Description: Notification
+Content-Type: text/plain
+
+This is the Postfix program at host dinsdale.python.org.
+
+I'm sorry to have to inform you that the message returned
+below could not be delivered to one or more destinations.
+
+For further assistance, please contact <postmaster@python.org>
+
+If you do so, please include this problem report. You can
+delete your own text from the message returned below.
+
+ The Postfix program
+
+<xxxxx@local.ie>: host mail.local.ie[195.7.46.14] said: 550 5.1.1
+ <xxxxx@local.ie>... User unknown
+
+
+--BDD021CF6B.970610818/dinsdale.python.org
+Content-Description: Undelivered Message
+Content-Type: message/rfc822
+
+Received: from dinsdale.python.org (localhost [127.0.0.1])
+ by dinsdale.python.org (Postfix) with ESMTP
+ id BDD021CF6B; Tue, 3 Oct 2000 18:03:05 -0400 (EDT)
+Delivered-To: mailman-developers@python.org
+Received: from public.lists.apple.com (public.lists.apple.com [17.254.0.151])
+ by dinsdale.python.org (Postfix) with ESMTP id D05861CDC9
+ for <mailman-developers@python.org>; Tue, 3 Oct 2000 18:02:10 -0400 (EDT)
+Received: from [17.216.27.250] (A17-216-27-250.apple.com [17.216.27.250])
+ by public.lists.apple.com (8.9.1a/8.9.1) with ESMTP id PAA50322
+ ; Tue, 3 Oct 2000 15:09:09 -0700
+Mime-Version: 1.0
+Message-Id: <p04330122b60007b33216@[17.216.27.250]>
+To: mailman-developers@python.org
+From: Chuq Von Rospach <chuqui@plaidworks.com>
+Content-Type: text/plain; charset="us-ascii" ; format="flowed"
+Subject: [Mailman-Developers] broken CVS!
+Sender: mailman-developers-admin@python.org
+Errors-To: mailman-developers-admin@python.org
+X-BeenThere: mailman-developers@python.org
+X-Mailman-Version: 2.0beta6
+Precedence: bulk
+List-Help: <mailto:mailman-developers-request@python.org?subject=help>
+List-Post: <mailto:mailman-developers@python.org>
+List-Subscribe: <http://www.python.org/mailman/listinfo/mailman-developers>, <mailto:mailman-developers-request@python.org?subject=subscribe>
+List-Id: Mailman mailing list developers <mailman-developers.python.org>
+List-Unsubscribe: <http://www.python.org/mailman/listinfo/mailman-developers>, <mailto:mailman-developers-request@python.org?subject=unsubscribe>
+List-Archive: <http://www.python.org/pipermail/mailman-developers/>
+Date: Tue, 3 Oct 2000 15:01:50 -0700
+
+
+I just updated to the current CVS, and it's broken:
+
+Traceback (innermost last):
+ File "/home/mailman/cron/qrunner", line 85, in ?
+ from Mailman import MailList
+ File "/home/mailman/Mailman/MailList.py", line 45, in ?
+ from Mailman.Archiver import Archiver
+ File "/home/mailman/Mailman/Archiver/__init__.py", line 17, in ?
+ from Archiver import *
+ File "/home/mailman/Mailman/Archiver/Archiver.py", line 33, in ?
+ from Mailman import Mailbox
+ File "/home/mailman/Mailman/Mailbox.py", line 43
+ <<<<<<< Mailbox.py
+ ^
+SyntaxError: invalid syntax
+
+
+--
+Chuq Von Rospach - Plaidworks Consulting (mailto:chuqui@plaidworks.com)
+Apple Mail List Gnome (mailto:chuq@apple.com)
+
+You seem a decent fellow. I hate to die.
+
+_______________________________________________
+Mailman-Developers mailing list
+Mailman-Developers@python.org
+http://www.python.org/mailman/listinfo/mailman-developers
+
+--BDD021CF6B.970610818/dinsdale.python.org--
+
+
diff --git a/tests/bounces/postfix_02.txt b/tests/bounces/postfix_02.txt
new file mode 100644
index 00000000..c4065816
--- /dev/null
+++ b/tests/bounces/postfix_02.txt
@@ -0,0 +1,60 @@
+From VM Wed Dec 27 22:11:47 2000
+Return-Path: <>
+Delivered-To: xxxxx@mail.wooz.org
+Received: by mail.wooz.org (Postfix) via BOUNCE
+ id 68CBFD37E7; Wed, 27 Dec 2000 20:42:55 -0500 (EST)
+MIME-Version: 1.0
+Content-Type: multipart/mixed;
+ boundary="17E1DD37E0.977967775/mail.wooz.org"
+Message-Id: <20001228014255.68CBFD37E7@mail.wooz.org>
+From: MAILER-DAEMON@mail.wooz.org (Mail Delivery System)
+To: xxxxx@mail.wooz.org
+Subject: Undelivered Mail Returned to Sender
+Date: Wed, 27 Dec 2000 20:42:55 -0500 (EST)
+
+This is a MIME-encapsulated message.
+
+--17E1DD37E0.977967775/mail.wooz.org
+Content-Description: Notification
+Content-Type: text/plain
+
+This is the Postfix program at host mail.wooz.org.
+
+I'm sorry to have to inform you that the message returned
+below could not be delivered to one or more destinations.
+
+For further assistance, please contact <postmaster@mail.wooz.org>
+
+If you do so, please include this problem report. You can
+delete your own text from the message returned below.
+
+ The Postfix program
+
+<yyyyy@digicool.com>: Name service error for domain digicool.com: Host not
+ found, try again
+
+
+--17E1DD37E0.977967775/mail.wooz.org
+Content-Description: Undelivered Message
+Content-Type: message/rfc822
+
+Received: by mail.wooz.org (Postfix, from userid 889)
+ id 17E1DD37E0; Fri, 22 Dec 2000 20:06:42 -0500 (EST)
+MIME-Version: 1.0
+Content-Type: text/plain; charset=us-ascii
+Content-Transfer-Encoding: 7bit
+Message-ID: <14915.64162.965657.699956@anthem.concentric.net>
+Date: Fri, 22 Dec 2000 20:06:42 -0500
+To: yyyyy@digicool.com
+Subject: testing to yyyyy
+X-Mailer: VM 6.84 under 21.1 (patch 12) "Channel Islands" XEmacs Lucid
+X-Attribution: BAW
+X-Oblique-Strategy: You don't have to be ashamed of using your own ideas
+X-Url: http://www.wooz.org/yyyyy
+From: yyyyy@digicool.com (Yyyyy A. Zzzzz)
+
+
+hello yyyyy
+
+--17E1DD37E0.977967775/mail.wooz.org--
+
diff --git a/tests/bounces/postfix_03.txt b/tests/bounces/postfix_03.txt
new file mode 100644
index 00000000..5204712c
--- /dev/null
+++ b/tests/bounces/postfix_03.txt
@@ -0,0 +1,145 @@
+From VM Fri Feb 9 13:30:31 2001
+Return-Path: <python-list-admin@python.org>
+Delivered-To: xxxxxx@zzzz.org
+Received: from digicool.com (host15.digitalcreations.d.subnet.rcn.com [208.59.6.15])
+ by mail.zzzz.org (Postfix) with ESMTP id 3B39FD37AC
+ for <yyyyy@zzzz.org>; Thu, 8 Feb 2001 06:57:08 -0500 (EST)
+Received: from <python-list-admin@python.org>
+ by digicool.com (CommuniGate Pro RULES 3.3.2)
+ with RULES id 1450267; Thu, 08 Feb 2001 06:59:26 -0500
+Received: from ns2.digicool.com ([216.164.72.2] verified)
+ by digicool.com (CommuniGate Pro SMTP 3.3.2)
+ with ESMTP id 1450266 for yyyyy@mail.digicool.com; Thu, 08 Feb 2001 06:59:21 -0500
+Received: from mail.python.org (mail.python.org [63.102.49.29])
+ by ns2.digicool.com (8.9.3/8.9.3) with ESMTP id GAA16165
+ for <yyyyy@digicool.com>; Thu, 8 Feb 2001 06:57:51 -0500
+Received: from localhost.localdomain ([127.0.0.1] helo=mail.python.org)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 14Qphy-0000Sk-00
+ for yyyyy@digicool.com; Thu, 08 Feb 2001 06:57:54 -0500
+Received: from [212.55.105.23] (helo=proxy.ggggg.com)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 14Qpgv-0000O4-00
+ for python-list-admin@python.org; Thu, 08 Feb 2001 06:56:49 -0500
+Received: by proxy.ggggg.com (Postfix on SuSE Linux 6.4 (i386)) via BOUNCE
+ id 7EA84D1046; Thu, 8 Feb 2001 14:00:07 +0100 (CET)
+MIME-Version: 1.0
+Content-Type: multipart/mixed;
+ boundary="11D14D1045.981637207/proxy.ggggg.com"
+Message-Id: <20010208130007.7EA84D1046@proxy.ggggg.com>
+Precedence: bulk
+List-Help: <mailto:python-list-request@python.org?subject=help>
+List-Post: <mailto:python-list@python.org>
+List-Subscribe: <http://mail.python.org/mailman/listinfo/python-list>,
+ <mailto:python-list-request@python.org?subject=subscribe>
+List-Id: General discussion list for the Python programming language <python-list.python.org>
+List-Unsubscribe: <http://mail.python.org/mailman/listinfo/python-list>,
+ <mailto:python-list-request@python.org?subject=unsubscribe>
+List-Archive: <http://mail.python.org/pipermail/python-list/>
+From: MAILER-DAEMON@proxy.ggggg.com (Mail Delivery System)
+Sender: python-list-owner@python.org
+To: python-list-admin@python.org
+Subject: Undelivered Mail Returned to Sender
+Date: Thu, 8 Feb 2001 14:00:07 +0100 (CET)
+X-Autogenerated: Mirror
+X-Mirrored-by: <python-list-admin@python.org>
+X-BeenThere: python-list@python.org
+X-Mailman-Version: 2.0.1 (101270)
+
+This is a MIME-encapsulated message.
+
+--11D14D1045.981637207/proxy.ggggg.com
+Content-Description: Notification
+Content-Type: text/plain
+
+This is the Postfix on SuSE Linux 6.4 (i386) program at host proxy.ggggg.com.
+
+I'm sorry to have to inform you that the message returned
+below could not be delivered to one or more destinations.
+
+For further assistance, please contact <postmaster@proxy.ggggg.com>
+
+If you do so, please include this problem report. You can
+delete your own text from the message returned below.
+
+ The Postfix on SuSE Linux 6.4 (i386) program
+
+<ttttt@ggggg.com>: Command died with status 17: "/usr/sbin/amavis". Command
+ output: Can't use an undefined value as a symbol reference at
+ /usr/sbin/amavis line 1178.
+
+
+--11D14D1045.981637207/proxy.ggggg.com
+Content-Description: Undelivered Message
+Content-Type: message/rfc822
+
+Received: from mail.i-s-o.net (mail.i-s-o.net [212.55.96.66])
+ by proxy.ggggg.com (Postfix on SuSE Linux 6.4 (i386)) with SMTP id 11D14D1045
+ for <ttttt@ggggg.com>; Thu, 8 Feb 2001 14:00:06 +0100 (CET)
+Received: (qmail 14297 invoked by uid 0); 8 Feb 2001 11:56:43 -0000
+Received: from mail.python.org (63.102.49.29)
+ by mail.i-s-o.net with SMTP; 8 Feb 2001 11:56:43 -0000
+Received: from localhost.localdomain ([127.0.0.1] helo=mail.python.org)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 14QpgG-0000Lg-00; Thu, 08 Feb 2001 06:56:08 -0500
+Received: from [194.183.224.20] (helo=relay.ppppp.net)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 14QpeE-0000DS-00
+ for python-list@python.org; Thu, 08 Feb 2001 06:54:03 -0500
+Received: from hercule.ppppp.be (hercule.ppppp.be [194.183.229.151])
+ by relay.ppppp.net (8.11.0/8.11.0) with ESMTP id f18Bruv05655
+ for <python-list@python.org>; Thu, 8 Feb 2001 12:53:56 +0100 (MET)
+From: Gregoire Welraeds <greg@ppppp.be>
+X-Sender: gwelr@localhost
+To: Python Mailling list <python-list@python.org>
+Subject: None assigment
+Message-ID: <Pine.BSF.4.21.0102081248050.4685-100000@localhost>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Sender: python-list-admin@python.org
+Errors-To: python-list-admin@python.org
+X-BeenThere: python-list@python.org
+X-Mailman-Version: 2.0.1 (101270)
+Precedence: bulk
+List-Help: <mailto:python-list-request@python.org?subject=help>
+List-Post: <mailto:python-list@python.org>
+List-Subscribe: <http://mail.python.org/mailman/listinfo/python-list>,
+ <mailto:python-list-request@python.org?subject=subscribe>
+List-Id: General discussion list for the Python programming language <python-list.python.org>
+List-Unsubscribe: <http://mail.python.org/mailman/listinfo/python-list>,
+ <mailto:python-list-request@python.org?subject=unsubscribe>
+List-Archive: <http://mail.python.org/pipermail/python-list/>
+Date: Thu, 8 Feb 2001 12:54:00 +0100 (CET)
+
+
+While playing a bit with python 2.0, I found that I can assign some value
+to None
+
+EG: None= 2
+
+which I found to be very pernicious because then the following, for
+example, won't work any more:
+
+>>> b= filter(None, [1,2,'',3])
+
+Bug or feature ?
+
+If it is a feature (I suppose it is not a bug :), what is the interest of
+this ?
+
+Ppppp Development team
+-------------------------------------------------------------------------------
+Ppppp Technologies sa/nv Tel: +32-2-6409194
+Rue Tenbosch, 9 Fax: +32-2-6403154
+B-1000 Brussels general information: info@ppppp.net
+BELGIUM technical information: helpdesk@ppppp.net
+URL: http://www.ppppp.be/
+-------------------------------------------------------------------------------
+
+
+--
+http://mail.python.org/mailman/listinfo/python-list
+
+--11D14D1045.981637207/proxy.ggggg.com--
+
+
diff --git a/tests/bounces/postfix_04.txt b/tests/bounces/postfix_04.txt
new file mode 100644
index 00000000..86a60ea8
--- /dev/null
+++ b/tests/bounces/postfix_04.txt
@@ -0,0 +1,240 @@
+From VM Wed Mar 7 11:06:03 2001
+X-VM-v5-Data: ([nil nil nil nil nil nil nil nil nil]
+ [nil "Tuesday" "6" "March" "2001" "09:29:58" "-0800" "Mail Delivery System" "MAILER-DAEMON@keftamail.com" nil "185" "Undelivered Mail Returned to Sender" "^From:" nil nil "3" nil nil nil nil nil]
+ nil)
+Return-Path: <mailman-announce-admin@python.org>
+Delivered-To: bwarsaw@wooz.org
+Received: from digicool.com (host15.digitalcreations.d.subnet.rcn.com [208.59.6.15])
+ by mail.wooz.org (Postfix) with ESMTP id 6C2DCD37AC
+ for <barry@wooz.org>; Tue, 6 Mar 2001 12:30:35 -0500 (EST)
+Received: from <mailman-announce-admin@python.org>
+ by digicool.com (CommuniGate Pro RULES 3.4)
+ with RULES id 1650903; Tue, 06 Mar 2001 12:33:44 -0500
+Received: from ns2.digicool.com ([216.164.72.2] verified)
+ by digicool.com (CommuniGate Pro SMTP 3.4)
+ with ESMTP id 1650896 for barry@mail.digicool.com; Tue, 06 Mar 2001 12:33:44 -0500
+Received: from mail.python.org (mail.python.org [63.102.49.29])
+ by ns2.digicool.com (8.9.3/8.9.3) with ESMTP id MAA08939
+ for <barry@digicool.com>; Tue, 6 Mar 2001 12:31:02 -0500
+Received: from localhost.localdomain ([127.0.0.1] helo=mail.python.org)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 14aLIc-0001Wp-00
+ for barry@digicool.com; Tue, 06 Mar 2001 12:31:02 -0500
+Received: from [64.75.1.85] (helo=postal-worker1.kefta.com)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 14aLIB-0001VP-00
+ for mailman-announce-admin@python.org; Tue, 06 Mar 2001 12:30:35 -0500
+Received: from mail1.kefta.com (mail1.kefta.com [10.0.2.1])
+ by postal-worker1.kefta.com (Keftamail) with ESMTP id E57BC4081
+ for <mailman-announce-admin@python.org>; Tue, 6 Mar 2001 09:24:31 -0800 (PST)
+Received: by mail1.kefta.com (Keftamail) via BOUNCE
+ id 438064082; Tue, 6 Mar 2001 09:29:58 -0800 (PST)
+MIME-Version: 1.0
+Content-Type: multipart/mixed;
+ boundary="1EDF14081.983899798/mail1.kefta.com"
+Message-Id: <20010306172958.438064082@mail1.kefta.com>
+Precedence: bulk
+List-Help: <mailto:mailman-announce-request@python.org?subject=help>
+List-Post: <mailto:mailman-announce@python.org>
+List-Subscribe: <http://mail.python.org/mailman/listinfo/mailman-announce>,
+ <mailto:mailman-announce-request@python.org?subject=subscribe>
+List-Id: Announce-only list for Mailman releases and news <mailman-announce.python.org>
+List-Unsubscribe: <http://mail.python.org/mailman/listinfo/mailman-announce>,
+ <mailto:mailman-announce-request@python.org?subject=unsubscribe>
+List-Archive: <http://mail.python.org/pipermail/mailman-announce/>
+From: MAILER-DAEMON@keftamail.com (Mail Delivery System)
+Sender: mailman-announce-owner@python.org
+To: mailman-announce-admin@python.org
+Subject: Undelivered Mail Returned to Sender
+Date: Tue, 6 Mar 2001 09:29:58 -0800 (PST)
+X-Autogenerated: Mirror
+X-Mirrored-by: <mailman-announce-admin@python.org>
+X-BeenThere: mailman-announce@python.org
+X-Mailman-Version: 2.0.2 (101270)
+
+This is a MIME-encapsulated message.
+
+--1EDF14081.983899798/mail1.kefta.com
+Content-Description: Notification
+Content-Type: text/plain
+
+This is the Keftamail program at host mail1.kefta.com.
+
+I'm sorry to have to inform you that the message returned
+below could not be delivered to one or more destinations.
+
+For further assistance, please contact <postmaster@keftamail.com>
+
+If you do so, please include this problem report. You can
+delete your own text from the message returned below.
+
+ The Keftamail program
+
+<davidlowie@mail1.keftamail.com>: permission denied. Command output: Mail quota
+ exceeded.
+
+
+--1EDF14081.983899798/mail1.kefta.com
+Content-Description: Undelivered Message
+Content-Type: message/rfc822
+
+Received: from postal-worker2.kefta.com (postal-worker2.kefta.com [10.0.2.4])
+ by mail1.kefta.com (Keftamail) with ESMTP id 1EDF14081
+ for <davidlowie@mail1.keftamail.com>; Tue, 6 Mar 2001 09:29:58 -0800 (PST)
+Received: by postal-worker2.kefta.com (Keftamail)
+ id F089940C9; Tue, 6 Mar 2001 09:29:37 -0800 (PST)
+Delivered-To: davidlowie@keftamail.com
+Received: from lists.securityfocus.com (lists.securityfocus.com [66.38.151.7])
+ by postal-worker2.kefta.com (Keftamail) with ESMTP id BA59D40C0
+ for <davidlowie@KEFTAMAIL.COM>; Tue, 6 Mar 2001 09:29:37 -0800 (PST)
+Received: from lists.securityfocus.com (lists.securityfocus.com [66.38.151.7])
+ by lists.securityfocus.com (Postfix) with ESMTP
+ id 3A1C024CF8C; Tue, 6 Mar 2001 10:04:43 -0700 (MST)
+Received: from LISTS.SECURITYFOCUS.COM by LISTS.SECURITYFOCUS.COM
+ (LISTSERV-TCP/IP release 1.8d) with spool id 27825191 for
+ BUGTRAQ@LISTS.SECURITYFOCUS.COM; Tue, 6 Mar 2001 10:03:25 -0700
+Approved-By: aleph1@SECURITYFOCUS.COM
+Delivered-To: bugtraq@lists.securityfocus.com
+Received: from firewall.osb.hu (unknown [193.224.234.1]) by
+ lists.securityfocus.com (Postfix) with ESMTP id 48CD624C646 for
+ <BUGTRAQ@LISTS.SECURITYFOCUS.COM>; Tue, 6 Mar 2001 00:49:55 -0700
+ (MST)
+Received: from pimpa.intranet.osb.hu (IDENT:root@pimpa.intranet.osb.hu
+ [192.168.0.8]) by firewall.osb.hu (8.9.3/8.9.3/Debian 8.9.3-21) with
+ ESMTP id IAA11531 for <BUGTRAQ@LISTS.SECURITYFOCUS.COM>; Tue, 6 Mar
+ 2001 08:53:08 +0100
+Received: from localhost (sp@localhost) by pimpa.intranet.osb.hu (8.9.3/8.9.3)
+ with ESMTP id IAA05518 for <BUGTRAQ@LISTS.SECURITYFOCUS.COM>; Tue, 6
+ Mar 2001 08:53:08 +0100
+X-Authentication-Warning: pimpa.intranet.osb.hu: sp owned process doing -bs
+X-Received: from firewall.osb.hu (fw.intranet.osb.hu [192.168.0.1]) by
+ pimpa.intranet.osb.hu (8.9.3/8.9.3) with ESMTP id JAA18698 for
+ <sp@pimpa.intranet.osb.hu>; Sat, 3 Mar 2001 09:41:17 +0100
+X-Received: from pax.intranet.osb.hu (IDENT:root@pax.intranet.osb.hu
+ [192.168.0.2]) by firewall.osb.hu (8.9.3/8.9.3/Debian 8.9.3-21)
+ with ESMTP id JAA24373 for <sp@pimpa.intranet.osb.hu>; Sat, 3 Mar
+ 2001 09:41:17 +0100
+X-Received: from firewall.osb.hu (fw.intranet.osb.hu [192.168.0.1]) by
+ pax.intranet.osb.hu (8.9.3/8.9.3) with ESMTP id JAA09389 for
+ <sp@osb.hu>; Sat, 3 Mar 2001 09:41:16 +0100
+X-Received: from mail.python.org (mail.python.org [63.102.49.29]) by
+ firewall.osb.hu (8.9.3/8.9.3/Debian 8.9.3-21) with ESMTP id
+ JAA24367 for <sp@osb.hu>; Sat, 3 Mar 2001 09:41:07 +0100
+X-Received: from localhost.localdomain ([127.0.0.1] helo=mail.python.org) by
+ mail.python.org with esmtp (Exim 3.21 #1) id 14Z7OV-0000vs-00; Sat,
+ 03 Mar 2001 03:28:03 -0500
+X-Received: from [216.27.134.141] (helo=mail.wooz.org) by mail.python.org with
+ esmtp (Exim 3.21 #1) id 14Z7Nq-0000tq-00; Sat, 03 Mar 2001 03:27:22
+ -0500
+X-Received: by mail.wooz.org (Postfix, from userid 889) id BE7B0D37AC; Sat, 3
+ Mar 2001 03:26:35 -0500 (EST)
+MIME-Version: 1.0
+Content-Type: text/plain; charset=us-ascii
+Content-Transfer-Encoding: 7bit
+X-Mailer: VM 6.84 under 21.1 (patch 12) "Channel Islands" XEmacs Lucid
+X-Attribution: BAW
+X-Oblique-Strategy: Subvert your original idea
+X-Url: http://www.wooz.org/barry
+Errors-To: mailman-announce-admin@python.org
+X-BeenThere: mailman-announce@python.org
+X-Mailman-Version: 2.0.2 (101270)
+Precedence: bulk
+List-Help: <mailto:mailman-announce-request@python.org?subject=help>
+List-Post: <mailto:mailman-announce@python.org>
+List-Subscribe: <http://mail.python.org/mailman/listinfo/mailman-announce>,
+ <mailto:mailman-announce-request@python.org?subject=subscribe>
+List-Id: Announce-only list for Mailman releases and news
+ <mailman-announce.python.org>
+List-Unsubscribe: <http://mail.python.org/mailman/listinfo/mailman-announce>,
+ <mailto:mailman-announce-request@python.org?subject=unsubscribe>
+List-Archive: <http://mail.python.org/pipermail/mailman-announce/>
+X-AntiVirus: scanned for viruses by AMaViS 0.2.1 (http://amavis.org/)
+ReSent-Subject: [Mailman-Announce] ANNOUNCE Mailman 2.0.2 (important privacy
+ patch)
+Message-ID: <Pine.LNX.4.30.0103060853010.5499@pimpa.intranet.osb.hu>
+Date: Tue, 6 Mar 2001 08:53:01 +0100
+Reply-To: mailman-developers@python.org
+Sender: Bugtraq List <BUGTRAQ@SECURITYFOCUS.COM>
+Comments: RFC822 error: <W> CC field duplicated. Last occurrence was
+ retained.
+Comments: Resent-From: Soos Peter <sp@osb.hu>
+Comments: Originally-From: barry@digicool.com (Barry A. Warsaw)
+From: Soos Peter <sp@OSB.HU>
+Subject: [Mailman-Announce] ANNOUNCE Mailman 2.0.2 (important privacy
+ patch)
+X-cc: mailman-developers@python.org
+To: BUGTRAQ@SECURITYFOCUS.COM
+
+I've just uploaded the Mailman 2.0.2 release to SourceForge. This is
+a bug fix release that also fixes a potential privacy hole, which
+could allow a list administrator to get access to user passwords.
+Even with those passwords, I believe there's little additional harm
+that a list admin could do, but still they probably shouldn't have
+access to those passwords.
+
+There are a few other important fixes in this release, so I recommend
+that all sites running Mailman 2.0 or 2.0.1 should upgrade.
+
+As usual I'm releasing this as both a complete tarball and as a patch
+against Mailman 2.0.1. If you grab the patchfile, you'll want to cd
+into your 2.0 source, and apply it like so:
+
+ % patch -p1 < mailman-2.0.1-2.0.2.diff
+
+Currently only http://mailman.sourceforge.net is updated, but the
+list.org and gnu.org sites should be updated soon. The release
+information on SF is at
+
+ http://sourceforge.net/project/shownotes.php?release_id=25955
+
+My thanks to Thomas Wouters for his help!
+
+Enjoy,
+-Barry
+
+P.S. I'm not sure if I'll have time to release a 2.1 alpha of the I18N
+stuff before I leave for the Python9 conference. If we get the
+expected foot of snow between Sunday and Monday, it's a
+possibility. ;)
+
+
+[From the NEWS file]
+
+2.0.2 (03-Mar-2001)
+
+ Security fix:
+
+ - A fix for a potential privacy exploit where a clever list
+ administrator could gain access to user passwords. This doesn't
+ allow them to do much more harm to the user then they normally
+ could, but they still shouldn't have access to the passwords.
+
+ Bug fixes:
+
+ - In the admindb page, don't complain when approving a
+ subscription of someone who's already on the list (SF bug
+ #222409 - Thomas Wouters).
+
+ Also, quote for HTML the Subject: text printed for held
+ messages, otherwise messages with e.g. "Subject: </table>" could
+ royally screw page formatting.
+
+ - In Netscape.py bounce processor, don't bomb out on ill-formed
+ messages (no semi-colon separating parameters), otherwise mail
+ delivery could grind to a halt. Bug reported by Kambiz
+ Aghaiepour.
+
+ - Docstring fix bin/newlist to remove mention of "immediate"
+ argument (Thomas Wouters).
+
+ - Fix for bin/update when PREFIX != VAR_PREFIX (SF bug #229794 --
+ Thomas Wouters).
+
+_______________________________________________
+Mailman-announce mailing list
+Mailman-announce@python.org
+http://mail.python.org/mailman/listinfo/mailman-announce
+
+--1EDF14081.983899798/mail1.kefta.com--
+
+
diff --git a/tests/bounces/postfix_05.txt b/tests/bounces/postfix_05.txt
new file mode 100644
index 00000000..4bd56d60
--- /dev/null
+++ b/tests/bounces/postfix_05.txt
@@ -0,0 +1,231 @@
+From VM Wed Mar 7 11:08:33 2001
+X-VM-v5-Data: ([nil nil nil nil nil nil nil nil nil]
+ [nil "Tuesday" "6" "March" "2001" "19:02:13" "+0000" "Mail Delivery System" "MAILER-DAEMON@bucks.net" nil "179" "Undelivered Mail Returned to Sender" "^From:" nil nil "3" nil nil nil nil nil]
+ nil)
+Return-Path: <mailman-announce-admin@python.org>
+Delivered-To: bwarsaw@wooz.org
+Received: from digicool.com (host15.digitalcreations.d.subnet.rcn.com [208.59.6.15])
+ by mail.wooz.org (Postfix) with ESMTP id 590BFD37AC
+ for <barry@wooz.org>; Tue, 6 Mar 2001 14:02:37 -0500 (EST)
+Received: from <mailman-announce-admin@python.org>
+ by digicool.com (CommuniGate Pro RULES 3.4)
+ with RULES id 1651377; Tue, 06 Mar 2001 14:05:47 -0500
+Received: from ns2.digicool.com ([216.164.72.2] verified)
+ by digicool.com (CommuniGate Pro SMTP 3.4)
+ with ESMTP id 1651376 for barry@mail.digicool.com; Tue, 06 Mar 2001 14:05:46 -0500
+Received: from mail.python.org (mail.python.org [63.102.49.29])
+ by ns2.digicool.com (8.9.3/8.9.3) with ESMTP id OAA13908
+ for <barry@digicool.com>; Tue, 6 Mar 2001 14:03:04 -0500
+Received: from localhost.localdomain ([127.0.0.1] helo=mail.python.org)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 14aMje-0005oS-00
+ for barry@digicool.com; Tue, 06 Mar 2001 14:03:02 -0500
+Received: from [195.112.37.162] (helo=babylon.bucks.net ident=postfix)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 14aMix-0005nQ-00
+ for mailman-announce-admin@python.org; Tue, 06 Mar 2001 14:02:19 -0500
+Received: by babylon.bucks.net (BNS Postfix) via BOUNCE
+ id 59B9747B9E; Tue, 6 Mar 2001 19:02:13 +0000 (GMT)
+MIME-Version: 1.0
+Content-Type: multipart/mixed;
+ boundary="41A6B47B9D.983905333/babylon.bucks.net"
+Message-Id: <20010306190213.59B9747B9E@babylon.bucks.net>
+Precedence: bulk
+List-Help: <mailto:mailman-announce-request@python.org?subject=help>
+List-Post: <mailto:mailman-announce@python.org>
+List-Subscribe: <http://mail.python.org/mailman/listinfo/mailman-announce>,
+ <mailto:mailman-announce-request@python.org?subject=subscribe>
+List-Id: Announce-only list for Mailman releases and news <mailman-announce.python.org>
+List-Unsubscribe: <http://mail.python.org/mailman/listinfo/mailman-announce>,
+ <mailto:mailman-announce-request@python.org?subject=unsubscribe>
+List-Archive: <http://mail.python.org/pipermail/mailman-announce/>
+From: MAILER-DAEMON@bucks.net (Mail Delivery System)
+Sender: mailman-announce-owner@python.org
+To: mailman-announce-admin@python.org
+Subject: Undelivered Mail Returned to Sender
+Date: Tue, 6 Mar 2001 19:02:13 +0000 (GMT)
+X-Autogenerated: Mirror
+X-Mirrored-by: <mailman-announce-admin@python.org>
+X-BeenThere: mailman-announce@python.org
+X-Mailman-Version: 2.0.2 (101270)
+
+This is a MIME-encapsulated message.
+
+--41A6B47B9D.983905333/babylon.bucks.net
+Content-Description: Notification
+Content-Type: text/plain
+
+This is the BNS Postfix program at host babylon.bucks.net.
+
+I'm sorry to have to inform you that the message returned
+below could not be delivered to one or more destinations.
+
+For further assistance, please contact <postmaster@bucks.net>
+
+If you do so, please include this problem report. You can
+delete your own text from the message returned below.
+
+ The BNS Postfix program
+
+<bjelf@detectit.net>: host mail.btconnect.com[193.113.154.2] said: 554 No
+ Resent-From field given
+
+
+--41A6B47B9D.983905333/babylon.bucks.net
+Content-Description: Undelivered Message
+Content-Type: message/rfc822
+
+Received: from lists.securityfocus.com (lists.securityfocus.com [66.38.151.7])
+ by babylon.bucks.net (BNS Postfix) with ESMTP id 41A6B47B9D
+ for <bjelf@SAFESTONE.COM>; Tue, 6 Mar 2001 19:02:11 +0000 (GMT)
+Received: from lists.securityfocus.com (lists.securityfocus.com [66.38.151.7])
+ by lists.securityfocus.com (Postfix) with ESMTP
+ id C8A0024C93F; Tue, 6 Mar 2001 10:05:17 -0700 (MST)
+Received: from LISTS.SECURITYFOCUS.COM by LISTS.SECURITYFOCUS.COM
+ (LISTSERV-TCP/IP release 1.8d) with spool id 27825191 for
+ BUGTRAQ@LISTS.SECURITYFOCUS.COM; Tue, 6 Mar 2001 10:03:25 -0700
+Approved-By: aleph1@SECURITYFOCUS.COM
+Delivered-To: bugtraq@lists.securityfocus.com
+Received: from firewall.osb.hu (unknown [193.224.234.1]) by
+ lists.securityfocus.com (Postfix) with ESMTP id 48CD624C646 for
+ <BUGTRAQ@LISTS.SECURITYFOCUS.COM>; Tue, 6 Mar 2001 00:49:55 -0700
+ (MST)
+Received: from pimpa.intranet.osb.hu (IDENT:root@pimpa.intranet.osb.hu
+ [192.168.0.8]) by firewall.osb.hu (8.9.3/8.9.3/Debian 8.9.3-21) with
+ ESMTP id IAA11531 for <BUGTRAQ@LISTS.SECURITYFOCUS.COM>; Tue, 6 Mar
+ 2001 08:53:08 +0100
+Received: from localhost (sp@localhost) by pimpa.intranet.osb.hu (8.9.3/8.9.3)
+ with ESMTP id IAA05518 for <BUGTRAQ@LISTS.SECURITYFOCUS.COM>; Tue, 6
+ Mar 2001 08:53:08 +0100
+X-Authentication-Warning: pimpa.intranet.osb.hu: sp owned process doing -bs
+X-Received: from firewall.osb.hu (fw.intranet.osb.hu [192.168.0.1]) by
+ pimpa.intranet.osb.hu (8.9.3/8.9.3) with ESMTP id JAA18698 for
+ <sp@pimpa.intranet.osb.hu>; Sat, 3 Mar 2001 09:41:17 +0100
+X-Received: from pax.intranet.osb.hu (IDENT:root@pax.intranet.osb.hu
+ [192.168.0.2]) by firewall.osb.hu (8.9.3/8.9.3/Debian 8.9.3-21)
+ with ESMTP id JAA24373 for <sp@pimpa.intranet.osb.hu>; Sat, 3 Mar
+ 2001 09:41:17 +0100
+X-Received: from firewall.osb.hu (fw.intranet.osb.hu [192.168.0.1]) by
+ pax.intranet.osb.hu (8.9.3/8.9.3) with ESMTP id JAA09389 for
+ <sp@osb.hu>; Sat, 3 Mar 2001 09:41:16 +0100
+X-Received: from mail.python.org (mail.python.org [63.102.49.29]) by
+ firewall.osb.hu (8.9.3/8.9.3/Debian 8.9.3-21) with ESMTP id
+ JAA24367 for <sp@osb.hu>; Sat, 3 Mar 2001 09:41:07 +0100
+X-Received: from localhost.localdomain ([127.0.0.1] helo=mail.python.org) by
+ mail.python.org with esmtp (Exim 3.21 #1) id 14Z7OV-0000vs-00; Sat,
+ 03 Mar 2001 03:28:03 -0500
+X-Received: from [216.27.134.141] (helo=mail.wooz.org) by mail.python.org with
+ esmtp (Exim 3.21 #1) id 14Z7Nq-0000tq-00; Sat, 03 Mar 2001 03:27:22
+ -0500
+X-Received: by mail.wooz.org (Postfix, from userid 889) id BE7B0D37AC; Sat, 3
+ Mar 2001 03:26:35 -0500 (EST)
+MIME-Version: 1.0
+Content-Type: text/plain; charset=us-ascii
+Content-Transfer-Encoding: 7bit
+X-Mailer: VM 6.84 under 21.1 (patch 12) "Channel Islands" XEmacs Lucid
+X-Attribution: BAW
+X-Oblique-Strategy: Subvert your original idea
+X-Url: http://www.wooz.org/barry
+Errors-To: mailman-announce-admin@python.org
+X-BeenThere: mailman-announce@python.org
+X-Mailman-Version: 2.0.2 (101270)
+Precedence: bulk
+List-Help: <mailto:mailman-announce-request@python.org?subject=help>
+List-Post: <mailto:mailman-announce@python.org>
+List-Subscribe: <http://mail.python.org/mailman/listinfo/mailman-announce>,
+ <mailto:mailman-announce-request@python.org?subject=subscribe>
+List-Id: Announce-only list for Mailman releases and news
+ <mailman-announce.python.org>
+List-Unsubscribe: <http://mail.python.org/mailman/listinfo/mailman-announce>,
+ <mailto:mailman-announce-request@python.org?subject=unsubscribe>
+List-Archive: <http://mail.python.org/pipermail/mailman-announce/>
+X-AntiVirus: scanned for viruses by AMaViS 0.2.1 (http://amavis.org/)
+ReSent-Subject: [Mailman-Announce] ANNOUNCE Mailman 2.0.2 (important privacy
+ patch)
+Message-ID: <Pine.LNX.4.30.0103060853010.5499@pimpa.intranet.osb.hu>
+Date: Tue, 6 Mar 2001 08:53:01 +0100
+Reply-To: mailman-developers@python.org
+Sender: Bugtraq List <BUGTRAQ@SECURITYFOCUS.COM>
+Comments: RFC822 error: <W> CC field duplicated. Last occurrence was
+ retained.
+Comments: Resent-From: Soos Peter <sp@osb.hu>
+Comments: Originally-From: barry@digicool.com (Barry A. Warsaw)
+From: Soos Peter <sp@OSB.HU>
+Subject: [Mailman-Announce] ANNOUNCE Mailman 2.0.2 (important privacy
+ patch)
+X-cc: mailman-developers@python.org
+To: BUGTRAQ@SECURITYFOCUS.COM
+
+I've just uploaded the Mailman 2.0.2 release to SourceForge. This is
+a bug fix release that also fixes a potential privacy hole, which
+could allow a list administrator to get access to user passwords.
+Even with those passwords, I believe there's little additional harm
+that a list admin could do, but still they probably shouldn't have
+access to those passwords.
+
+There are a few other important fixes in this release, so I recommend
+that all sites running Mailman 2.0 or 2.0.1 should upgrade.
+
+As usual I'm releasing this as both a complete tarball and as a patch
+against Mailman 2.0.1. If you grab the patchfile, you'll want to cd
+into your 2.0 source, and apply it like so:
+
+ % patch -p1 < mailman-2.0.1-2.0.2.diff
+
+Currently only http://mailman.sourceforge.net is updated, but the
+list.org and gnu.org sites should be updated soon. The release
+information on SF is at
+
+ http://sourceforge.net/project/shownotes.php?release_id=25955
+
+My thanks to Thomas Wouters for his help!
+
+Enjoy,
+-Barry
+
+P.S. I'm not sure if I'll have time to release a 2.1 alpha of the I18N
+stuff before I leave for the Python9 conference. If we get the
+expected foot of snow between Sunday and Monday, it's a
+possibility. ;)
+
+
+[From the NEWS file]
+
+2.0.2 (03-Mar-2001)
+
+ Security fix:
+
+ - A fix for a potential privacy exploit where a clever list
+ administrator could gain access to user passwords. This doesn't
+ allow them to do much more harm to the user then they normally
+ could, but they still shouldn't have access to the passwords.
+
+ Bug fixes:
+
+ - In the admindb page, don't complain when approving a
+ subscription of someone who's already on the list (SF bug
+ #222409 - Thomas Wouters).
+
+ Also, quote for HTML the Subject: text printed for held
+ messages, otherwise messages with e.g. "Subject: </table>" could
+ royally screw page formatting.
+
+ - In Netscape.py bounce processor, don't bomb out on ill-formed
+ messages (no semi-colon separating parameters), otherwise mail
+ delivery could grind to a halt. Bug reported by Kambiz
+ Aghaiepour.
+
+ - Docstring fix bin/newlist to remove mention of "immediate"
+ argument (Thomas Wouters).
+
+ - Fix for bin/update when PREFIX != VAR_PREFIX (SF bug #229794 --
+ Thomas Wouters).
+
+_______________________________________________
+Mailman-announce mailing list
+Mailman-announce@python.org
+http://mail.python.org/mailman/listinfo/mailman-announce
+
+--41A6B47B9D.983905333/babylon.bucks.net--
+
+
diff --git a/tests/bounces/qmail_01.txt b/tests/bounces/qmail_01.txt
new file mode 100644
index 00000000..dbe6f435
--- /dev/null
+++ b/tests/bounces/qmail_01.txt
@@ -0,0 +1,103 @@
+From VM Thu Oct 4 15:25:26 2001
+X-VM-v5-Data: ([nil nil nil nil nil nil nil nil nil]
+ [nil "" "4" "November" "1999" "21:42:45" "-0000" "MAILER-DAEMON@gate0.n-h.net" "MAILER-DAEMON@gate0.n-h.net" nil "89" "failure notice" "^From:" nil nil "11" nil nil nil nil nil]
+ nil)
+Message-Id: <199911042119.QAA21584@python.org>
+Content-Length: 3215
+MIME-Version: 1.0
+From: MAILER-DAEMON@gate0.n-h.net
+To: psa-members-admin@python.org
+Subject: failure notice
+Date: 4 Nov 1999 21:42:45 -0000
+X-Digest: Mailman bounce lack-of-detection
+
+Hi. This is the qmail-send program at gate0.n-h.net.
+I'm afraid I wasn't able to deliver your message to the following addresses.
+This is a permanent error; I've given up. Sorry it didn't work out.
+
+<psadisc@wwwmail.n-h.de>:
+
+--- Below this line is a copy of the message.
+
+Return-Path: <psa-members-admin@python.org>
+Received: (qmail 23042 invoked from network); 4 Nov 1999 21:42:35 -0000
+Received: from one.n-h.net (HELO n-h.net) (root@195.254.4.1)
+ by wwwmail.n-h.de with SMTP; 4 Nov 1999 21:42:35 -0000
+Received: from python.org (parrot.python.org [132.151.1.90])
+ by n-h.net (8.8.5/8.8.5) with ESMTP id WAA00074
+ for <psadisc@n-h.net>; Thu, 4 Nov 1999 22:45:15 +0100
+Received: from python.org (localhost [127.0.0.1])
+ by python.org (8.9.1a/8.9.1) with ESMTP id QAA20872;
+ Thu, 4 Nov 1999 16:10:19 -0500 (EST)
+Received: from origin.ea.com (hidden-user@gnat6.owo.com [208.12.170.6])
+ by python.org (8.9.1a/8.9.1) with ESMTP id QAA20823
+ for <psa-members@python.org>; Thu, 4 Nov 1999 16:09:48 -0500 (EST)
+Received: from forest.origin.ea.com (molach.origin.ea.com [159.153.98.2])
+ by origin.ea.com (8.8.8/8.8.8PJ) with ESMTP id PAA19774;
+ Thu, 4 Nov 1999 15:26:35 -0600 (CST)
+Received: by molach.origin.ea.com with Internet Mail Service (5.5.2448.0)
+ id <VWGD5VQP>; Thu, 4 Nov 1999 15:00:30 -0600
+Message-ID: <11A17AA2B9EAD111BCEA00A0C9B4179303385B62@molach.origin.ea.com>
+From: "Asbahr, Jason" <Jasbahr@origin.EA.com>
+To: "'beazley@cs.uchicago.edu'" <beazley@cs.uchicago.edu>, chriss@dnastar.com
+Cc: psa-members@python.org
+Subject: RE: [PSA MEMBERS] ObjC.py ?
+Date: Thu, 4 Nov 1999 15:00:29 -0600
+MIME-Version: 1.0
+X-Mailer: Internet Mail Service (5.5.2448.0)
+Content-Type: text/plain;
+ charset="iso-8859-1"
+Sender: psa-members-admin@python.org
+Errors-To: psa-members-admin@python.org
+X-Mailman-Version: 1.0.2
+Precedence: bulk
+List-Id: Python Software Activity members discussion list <psa-members.python.org>
+X-BeenThere: psa-members@python.org
+
+I had the impression that SWIG supported the relatively recent
+versions of GNU ObjC, but not earlier versions, such as NeXT's
+original ObjC extensions to GCC. True?
+
+Cheers,
+
+Jason Asbahr
+Origin Systems, Inc.
+jasbahr@origin.ea.com
+
+-----Original Message-----
+From: David Beazley [mailto:beazley@cs.uchicago.edu]
+Sent: Wednesday, November 03, 1999 11:13 PM
+To: chriss@dnastar.com
+Cc: psa-members@python.org
+Subject: Re: [PSA MEMBERS] ObjC.py ?
+
+
+chriss@dnastar.com writes:
+> Does anyone know what is left of the effort to interface
+Python/ObjectiveC?
+> E.g. is there a module, bits of code ... ?
+>
+
+Well, it's not widely known, but SWIG has some support for ObjectiveC.
+I haven't used this feature of SWIG in quite awhile, but I did use it
+to build some Python interfaces to some simple ObjectiveC programs I
+wrote about 3 years ago. I can't think of any reason why it wouldn't
+work (unless there has been some sort of bit-rot that I'm not aware
+of).
+
+Cheers,
+
+Dave
+
+
+_______________________________________________
+PSA-members mailing list
+PSA-members@python.org
+http://www.python.org/mailman/listinfo/psa-members
+
+_______________________________________________
+PSA-members mailing list
+PSA-members@python.org
+http://www.python.org/mailman/listinfo/psa-members
+
+
diff --git a/tests/bounces/sendmail_01.txt b/tests/bounces/sendmail_01.txt
new file mode 100644
index 00000000..cfea95a2
--- /dev/null
+++ b/tests/bounces/sendmail_01.txt
@@ -0,0 +1,146 @@
+From VM Sat Oct 14 00:29:43 2000
+Return-Path: <mailman-users-admin@python.org>
+Delivered-To: bxxxxx@mail.wooz.org
+Received: from ns1.beopen.com (unknown [208.185.174.104])
+ by mail.wooz.org (Postfix) with ESMTP id DF2B1D38CD
+ for <yyyyy@wooz.org>; Sat, 14 Oct 2000 00:16:04 -0400 (EDT)
+Received: from dinsdale.python.org (dinsdale.cnri.reston.va.us [132.151.1.21])
+ by ns1.beopen.com (8.9.3/8.9.3) with ESMTP id VAA04124
+ for <bxxxxx@beopen.com>; Fri, 13 Oct 2000 21:17:08 -0700 (PDT)
+ (envelope-from mailman-users-admin@python.org)
+Received: from dinsdale.python.org (localhost [127.0.0.1])
+ by dinsdale.python.org (Postfix) with ESMTP id 46F711D08C
+ for <bxxxxx@beopen.com>; Sat, 14 Oct 2000 00:15:15 -0400 (EDT)
+Delivered-To: mailman-users-admin@python.org
+Received: from banzai.nfg.nl (banzai.nfg.nl [194.109.206.156])
+ by dinsdale.python.org (Postfix) with ESMTP id 201661D08C
+ for <mailman-users-admin@python.org>; Sat, 14 Oct 2000 00:14:45 -0400 (EDT)
+Received: from localhost (localhost)
+ by banzai.nfg.nl (8.9.3/8.9.3/Debian 8.9.3-21) with internal id GAB17388;
+ Sat, 14 Oct 2000 06:14:45 +0200
+Message-Id: <200010140414.GAB17388@banzai.nfg.nl>
+Auto-Submitted: auto-generated (failure)
+Errors-To: mailman-users-owner@python.org
+Precedence: bulk
+List-Help: <mailto:mailman-users-request@python.org?subject=help>
+List-Post: <mailto:mailman-users@python.org>
+List-Subscribe: <http://www.python.org/mailman/listinfo/mailman-users>,
+ <mailto:mailman-users-request@python.org?subject=subscribe>
+List-Id: Mailman mailing list management users <mailman-users.python.org>
+List-Unsubscribe: <http://www.python.org/mailman/listinfo/mailman-users>,
+ <mailto:mailman-users-request@python.org?subject=unsubscribe>
+List-Archive: <http://www.python.org/pipermail/mailman-users/>
+From: Mail Delivery Subsystem <MAILER-DAEMON@banzai.nfg.nl>
+Sender: mailman-users-owner@python.org
+To: mailman-users-admin@python.org
+To: postmaster@banzai.nfg.nl
+Subject: Returned mail: Too many hops 26 (25 max): from mailman-users-admin@python.org via localhost, to zzzzz@nfg.nl
+Date: Sat, 14 Oct 2000 06:14:45 +0200
+X-BeenThere: mailman-users@python.org
+X-Mailman-Version: 2.0beta6
+
+The original message was received at Sat, 14 Oct 2000 06:14:45 +0200
+from uucp@localhost
+
+ ----- The following addresses had permanent fatal errors -----
+zzzzz@shaft.coal.nl
+ (expanded from: zzzzz@nfg.nl)
+
+ ----- Transcript of session follows -----
+554 Too many hops 26 (25 max): from mailman-users-admin@python.org via localhost, to zzzzz@nfg.nl
+
+ ----- Message header follows -----
+
+Return-Path: <mailman-users-admin@python.org>
+Received: (from uucp@localhost)
+ by banzai.nfg.nl (8.9.3/8.9.3/Debian 8.9.3-21) with UUCP id GAA17388
+ for zzzzz@nfg.nl; Sat, 14 Oct 2000 06:14:45 +0200
+Received: by shaft.coal.nl (Postfix, from userid 10)
+ id A9BAE1B30B; Sat, 14 Oct 2000 06:06:08 +0200 (CEST)
+Received: (from uucp@localhost)
+ by banzai.nfg.nl (8.9.3/8.9.3/Debian 8.9.3-21) with UUCP id XAA25085
+ for zzzzz@nfg.nl; Fri, 13 Oct 2000 23:55:54 +0200
+Received: by shaft.coal.nl (Postfix, from userid 10)
+ id 62E251B307; Fri, 13 Oct 2000 23:46:43 +0200 (CEST)
+Received: (from uucp@localhost)
+ by banzai.nfg.nl (8.9.3/8.9.3/Debian 8.9.3-21) with UUCP id XAA20156
+ for zzzzz@nfg.nl; Fri, 13 Oct 2000 23:35:01 +0200
+Received: by shaft.coal.nl (Postfix, from userid 10)
+ id 247881B308; Fri, 13 Oct 2000 23:26:09 +0200 (CEST)
+Received: (from uucp@localhost)
+ by banzai.nfg.nl (8.9.3/8.9.3/Debian 8.9.3-21) with UUCP id XAA15152
+ for zzzzz@nfg.nl; Fri, 13 Oct 2000 23:15:47 +0200
+Received: by shaft.coal.nl (Postfix, from userid 10)
+ id E91F81B308; Fri, 13 Oct 2000 23:06:29 +0200 (CEST)
+Received: (from uucp@localhost)
+ by banzai.nfg.nl (8.9.3/8.9.3/Debian 8.9.3-21) with UUCP id WAA09896
+ for zzzzz@nfg.nl; Fri, 13 Oct 2000 22:54:42 +0200
+Received: by shaft.coal.nl (Postfix, from userid 10)
+ id 51CA11B308; Fri, 13 Oct 2000 22:45:24 +0200 (CEST)
+Received: (from uucp@localhost)
+ by banzai.nfg.nl (8.9.3/8.9.3/Debian 8.9.3-21) with UUCP id WAA04651
+ for zzzzz@nfg.nl; Fri, 13 Oct 2000 22:34:41 +0200
+Received: by shaft.coal.nl (Postfix, from userid 10)
+ id 6C48F1B308; Fri, 13 Oct 2000 22:25:19 +0200 (CEST)
+Received: (from uucp@localhost)
+ by banzai.nfg.nl (8.9.3/8.9.3/Debian 8.9.3-21) with UUCP id WAA31892
+ for zzzzz@nfg.nl; Fri, 13 Oct 2000 22:14:14 +0200
+Received: by shaft.coal.nl (Postfix, from userid 10)
+ id 8ABF91B308; Fri, 13 Oct 2000 22:04:33 +0200 (CEST)
+Received: (from uucp@localhost)
+ by banzai.nfg.nl (8.9.3/8.9.3/Debian 8.9.3-21) with UUCP id VAA26727
+ for zzzzz@nfg.nl; Fri, 13 Oct 2000 21:54:10 +0200
+Received: by shaft.coal.nl (Postfix, from userid 10)
+ id A44BC1B308; Fri, 13 Oct 2000 21:44:57 +0200 (CEST)
+Received: (from uucp@localhost)
+ by banzai.nfg.nl (8.9.3/8.9.3/Debian 8.9.3-21) with UUCP id VAA21600
+ for zzzzz@nfg.nl; Fri, 13 Oct 2000 21:33:40 +0200
+Received: by shaft.coal.nl (Postfix, from userid 10)
+ id 56B311B308; Fri, 13 Oct 2000 21:24:00 +0200 (CEST)
+Received: (from uucp@localhost)
+ by banzai.nfg.nl (8.9.3/8.9.3/Debian 8.9.3-21) with UUCP id VAA16279
+ for zzzzz@nfg.nl; Fri, 13 Oct 2000 21:13:21 +0200
+Received: by shaft.coal.nl (Postfix, from userid 10)
+ id 409701B308; Fri, 13 Oct 2000 21:04:32 +0200 (CEST)
+Received: (from uucp@localhost)
+ by banzai.nfg.nl (8.9.3/8.9.3/Debian 8.9.3-21) with UUCP id UAA11084
+ for zzzzz@nfg.nl; Fri, 13 Oct 2000 20:53:53 +0200
+Received: by shaft.coal.nl (Postfix, from userid 10)
+ id 05A9E1B307; Fri, 13 Oct 2000 20:44:14 +0200 (CEST)
+Received: from dinsdale.python.org (dinsdale.cnri.reston.va.us [132.151.1.21])
+ by banzai.nfg.nl (8.9.3/8.9.3/Debian 8.9.3-21) with ESMTP id UAA08474
+ for <zzzzz@nfg.nl>; Fri, 13 Oct 2000 20:41:13 +0200
+X-Authentication-Warning: banzai.nfg.nl: Host dinsdale.cnri.reston.va.us [132.151.1.21] claimed to be dinsdale.python.org
+Received: from dinsdale.python.org (localhost [127.0.0.1])
+ by dinsdale.python.org (Postfix) with ESMTP
+ id A1F631CFCC; Fri, 13 Oct 2000 14:38:00 -0400 (EDT)
+Delivered-To: mailman-users@python.org
+Received: from raptor.ebuilt.net (unknown [216.237.34.38])
+ by dinsdale.python.org (Postfix) with ESMTP id 7D3B21CDB9
+ for <mailman-users@python.org>; Fri, 13 Oct 2000 14:35:02 -0400 (EDT)
+Received: by raptor.ebuilt.net with Internet Mail Service (5.5.2650.21)
+ id <4V699WRN>; Fri, 13 Oct 2000 11:35:00 -0700
+Message-ID: <AA1E32BC8A58D411A2CB0050DACEDA43750916@raptor.ebuilt.net>
+From: "Young, Roger" <RYoung@eBuilt.com>
+To: mailman-users@python.org
+X-Mailer: Internet Mail Service (5.5.2650.21)
+Subject: [Mailman-Users] auto responder
+Sender: mailman-users-admin@python.org
+Errors-To: mailman-users-admin@python.org
+X-BeenThere: mailman-users@python.org
+X-Mailman-Version: 2.0beta6
+Precedence: bulk
+List-Help: <mailto:mailman-users-request@python.org?subject=help>
+List-Post: <mailto:mailman-users@python.org>
+List-Subscribe: <http://www.python.org/mailman/listinfo/mailman-users>,
+ <mailto:mailman-users-request@python.org?subject=subscribe>
+List-Id: Mailman mailing list management users <mailman-users.python.org>
+List-Unsubscribe: <http://www.python.org/mailman/listinfo/mailman-users>,
+ <mailto:mailman-users-request@python.org?subject=unsubscribe>
+List-Archive: <http://www.python.org/pipermail/mailman-users/>
+Date: Fri, 13 Oct 2000 11:34:51 -0700
+
+ ----- Message body suppressed -----
+
+
+
diff --git a/tests/bounces/simple_01.txt b/tests/bounces/simple_01.txt
new file mode 100644
index 00000000..f2d2669f
--- /dev/null
+++ b/tests/bounces/simple_01.txt
@@ -0,0 +1,153 @@
+From VM Tue Feb 20 10:32:44 2001
+Return-Path: <jpython-interest-admin@python.org>
+Delivered-To: zzzzz@wwww.org
+Received: from digicool.com (host15.digitalcreations.d.subnet.rcn.com [208.59.6.15])
+ by mail.wwww.org (Postfix) with ESMTP id 06EA8D37AC
+ for <yyyyy@wwww.org>; Sun, 18 Feb 2001 03:26:37 -0500 (EST)
+Received: from <jpython-interest-admin@python.org>
+ by digicool.com (CommuniGate Pro RULES 3.3.2)
+ with RULES id 1483250; Sun, 18 Feb 2001 03:27:53 -0500
+Received: from ns2.digicool.com ([216.164.72.2] verified)
+ by digicool.com (CommuniGate Pro SMTP 3.3.2)
+ with ESMTP id 1483249 for yyyyy@mail.digicool.com; Sun, 18 Feb 2001 03:27:53 -0500
+Received: from mail.python.org (mail.python.org [63.102.49.29])
+ by ns2.digicool.com (8.9.3/8.9.3) with ESMTP id DAA13272
+ for <yyyyy@digicool.com>; Sun, 18 Feb 2001 03:25:56 -0500
+Received: from localhost.localdomain ([127.0.0.1] helo=mail.python.org)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 14UPAP-0001ei-00
+ for yyyyy@digicool.com; Sun, 18 Feb 2001 03:26:01 -0500
+Received: from [63.118.43.131] (helo=receive.turbosport.com)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 14UP9j-0001c7-00
+ for jpython-interest-admin@python.org; Sun, 18 Feb 2001 03:25:19 -0500
+Received: from receive.turbosport.com [63.118.43.131] by receive.turbosport.com [63.118.43.131]
+ with RAW (MDaemon.v3.5.2.R)
+ for <jpython-interest-admin@python.org>; Sun, 18 Feb 2001 02:26:12 -0600
+Message-ID: <MDAEMON2560256200102180226.AA2612019@receive.turbosport.com>
+Mime-Version: 1.0
+Content-Type: multipart/mixed; boundary="0218-0226-12-PART-BREAK"
+Precedence: bulk
+List-Help: <mailto:jpython-interest-request@python.org?subject=help>
+List-Post: <mailto:jpython-interest@python.org>
+List-Subscribe: <http://mail.python.org/mailman/listinfo/jpython-interest>,
+ <mailto:jpython-interest-request@python.org?subject=subscribe>
+List-Id: Python for the Java<SUP><FONT SIZE=-2>TM</FONT></SUP> Platform <jpython-interest.python.org>
+List-Unsubscribe: <http://mail.python.org/mailman/listinfo/jpython-interest>,
+ <mailto:jpython-interest-request@python.org?subject=unsubscribe>
+List-Archive: <http://mail.python.org/pipermail/jpython-interest/>
+From: MDaemon@receive.turbosport.com
+Sender: jpython-interest-owner@python.org
+To: jpython-interest-admin@python.org
+Subject: Permanent Delivery Failure
+Date: Sun, 18 Feb 2001 02:26:12 -0600
+X-Autogenerated: Mirror
+X-Mirrored-by: <jpython-interest-admin@python.org>
+X-MDSend-Notifications-To: [trash]
+X-MDaemon-Deliver-To: jpython-interest-admin@python.org
+X-Actual-From: MDaemon@receive.turbosport.com
+X-BeenThere: jpython-interest@python.org
+X-Mailman-Version: 2.0.1 (101270)
+Reply-To: BadMsgQ@receive.turbosport.com
+
+ The following data may contain sections which represent BASE64 encoded
+ file attachments. These sections will be unreadable without MIME aware
+ tools. Seek your system administrator if you need help extracting any
+ files which may be embedded within this message.
+
+--0218-0226-12-PART-BREAK
+Content-Type: text/plain; charset=US-ASCII
+Content-Transfer-Encoding: 7bit
+
+The attached message had PERMANENT fatal delivery errors!
+
+After one or more unsuccessful delivery attempts the attached message has
+been removed from the mail queue on this server. The number and frequency
+of delivery attempts are determined by local configuration parameters.
+
+YOUR MESSAGE WAS NOT DELIVERED!
+
+The following addresses did NOT receive a copy of your message:
+
+> bbbsss@turbosport.com
+
+--- Session Transcript ---
+ Attempting SMTP connection to [63.118.43.130 : 25]
+ Waiting for socket connection...
+ Socket connection established
+ Waiting for protocol initiation...
+ 220 turbosport.com ESMTP MDaemon 3.5.2 ready
+ EHLO receive.turbosport.com
+ 250-turbosport.com Hello receive.turbosport.com, ESMTP hello!
+ 250-VRFY
+ 250-EXPN
+ 250-ETRN
+ 250-AUTH LOGIN CRAM-MD5
+ 250-8BITMIME
+ 250 SIZE 40000000
+ MAIL From:<jpython-interest-admin@python.org> SIZE=1861
+ 250 <jpython-interest-admin@python.org>, Sender ok
+ RCPT To:<bbbsss@turbosport.com>
+ 552 Message for <bbbsss@turbosport.com> would exceed mailbox quota
+ QUIT
+--- End Transcript ---
+
+: Message contains [1] file attachments
+
+--0218-0226-12-PART-BREAK
+Content-Type: message/rfc822; charset=US-ASCII; name="md50002271709.md"
+Content-Transfer-Encoding: 7bit
+Content-ID: <MDAEMON2560256200102180226.AA2612019@receive.turbosport.com>
+Content-Description:
+
+Return-path: <jpython-interest-admin@python.org>
+Received: from mta540.mail.yahoo.com [216.136.131.22] by receive.turbosport.com [63.118.43.131]
+ with SMTP (MDaemon.v3.5.2.R)
+ for <bbbsss@turbosport.com>; Sun, 18 Feb 2001 02:25:20 -0600
+Message-ID: <20010218082300.42071.qmail@mta540.mail.yahoo.com>
+Received: from mta540.mail.yahoo.com for bbbsss@turbosport.com; Feb 18 00:23:00 2001 -0800
+Received: from smtp015.mail.yahoo.com (216.136.173.59)
+X-Yahoo-Forwarded: from aaaaa_20@yahoo.com to bbbsss@turbosport.com
+ by mta540.mail.yahoo.com with SMTP; 18 Feb 2001 00:23:00 -0800 (PST)
+Date: 18 Feb 2001 08:22:57 -0000
+From: MAILER-DAEMON@yahoo.com
+To: aaaaa@yahoo.com
+Subject: failure delivery
+X-MDRcpt-To: bbbsss@turbosport.com
+X-MDRemoteIP: 216.136.131.22
+X-Return-Path: jpython-interest-admin@python.org
+X-MDaemon-Deliver-To: bbbsss@turbosport.com
+
+Message from yahoo.com.
+Unable to deliver message to the following address(es).
+
+<subscribe.motorcycles@listsociety.com>:
+Sorry, I wasn't able to establish an SMTP connection. (#4.4.1)
+I'm not going to try again; this message has been in the queue too long.
+
+--- Original message follows.
+
+Return-Path: <aaaaa@yahoo.com>
+Received: from c58148.upc-c.chello.nl (HELO localhost) (212.187.58.148)
+ by smtp.mail.vip.sc5.yahoo.com with SMTP; 11 Feb 2001 01:15:27 -0000
+X-Apparently-From: <aaaaa?20@yahoo.com>
+X-Sender: aaaaa@yahoo.com
+From: Albert Ttttt <aaaaa@yahoo.com>
+To: subscribe.motorcycles@listsociety.com
+Date: Sun, 11 Feb 2001 02:14:40 +0100
+Subject: Subscribe
+Reply-To: aaaaa@yahoo.com
+MIME-Version: 1.0
+Content-Type: text/plain; charset=iso-8859-1
+Content-Transfer-Encoding: 7bit
+
+
+
+_________________________________________________________
+Do You Yahoo!?
+Get your free @yahoo.com address at http://mail.yahoo.com
+
+--0218-0226-12-PART-BREAK--
+
+
+
diff --git a/tests/bounces/simple_02.txt b/tests/bounces/simple_02.txt
new file mode 100644
index 00000000..f017fa25
--- /dev/null
+++ b/tests/bounces/simple_02.txt
@@ -0,0 +1,118 @@
+From VM Thu Feb 22 16:05:17 2001
+Return-Path: <python-list-admin@python.org>
+Delivered-To: zzzzz@wwww.org
+Received: from digicool.com (host15.digitalcreations.d.subnet.rcn.com [208.59.6.15])
+ by mail.wwww.org (Postfix) with ESMTP id AD081D37AC
+ for <zzzzz@wwww.org>; Thu, 22 Feb 2001 04:54:37 -0500 (EST)
+Received: from <python-list-admin@python.org>
+ by digicool.com (CommuniGate Pro RULES 3.3.2)
+ with RULES id 1498944; Thu, 22 Feb 2001 04:56:22 -0500
+Received: from ns2.digicool.com ([216.164.72.2] verified)
+ by digicool.com (CommuniGate Pro SMTP 3.3.2)
+ with ESMTP id 1498943 for zzzzz@mail.digicool.com; Thu, 22 Feb 2001 04:56:22 -0500
+Received: from mail.python.org (mail.python.org [63.102.49.29])
+ by ns2.digicool.com (8.9.3/8.9.3) with ESMTP id EAA15538
+ for <zzzzz@digicool.com>; Thu, 22 Feb 2001 04:54:14 -0500
+Received: from localhost.localdomain ([127.0.0.1] helo=mail.python.org)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 14VsRz-0002Md-00
+ for zzzzz@digicool.com; Thu, 22 Feb 2001 04:54:15 -0500
+Received: from [204.68.24.95] (helo=nm195.netaddress.usa.net)
+ by mail.python.org with smtp (Exim 3.21 #1)
+ id 14VsRh-0002K2-00
+ for python-list-admin@python.org; Thu, 22 Feb 2001 04:53:57 -0500
+Received: (qmail 1169 invoked by uid 0); 22 Feb 2001 09:51:46 -0000
+Message-ID: <20010222095146.1166.qmail@nm195.netaddress.usa.net>
+Precedence: bulk
+List-Help: <mailto:python-list-request@python.org?subject=help>
+List-Post: <mailto:python-list@python.org>
+List-Subscribe: <http://mail.python.org/mailman/listinfo/python-list>,
+ <mailto:python-list-request@python.org?subject=subscribe>
+List-Id: General discussion list for the Python programming language <python-list.python.org>
+List-Unsubscribe: <http://mail.python.org/mailman/listinfo/python-list>,
+ <mailto:python-list-request@python.org?subject=unsubscribe>
+List-Archive: <http://mail.python.org/pipermail/python-list/>
+From: MAILER-DAEMON@usa.net
+Sender: python-list-owner@python.org
+To: python-list-admin@python.org
+Subject: Processing Error
+Date: 22 Feb 2001 09:51:46 -0000
+X-Autogenerated: Mirror
+X-Mirrored-by: <python-list-admin@python.org>
+X-BeenThere: python-list@python.org
+X-Mailman-Version: 2.0.1 (101270)
+
+Intended recipient: chris.ggggmmmm@usa.net
+
+The following mail has been returned because it encountered an error
+while being processed. Please try to resend this message.
+
+A notice of this error has been reported to the POSTMASTER at USA.NET
+which will attempt to contact the intended recipient.
+
+--------RETURNED MAIL FOLLOWS--------
+Received: from mail.python.org [63.102.49.29] by nm195 via mtad (34FM.0700.12.01)
+ with ESMTP id 167FBVJzI0889M19; Thu, 22 Feb 2001 09:51:43 GMT
+Received: from localhost.localdomain ([127.0.0.1] helo=mail.python.org)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 14Vs49-0000n4-00; Thu, 22 Feb 2001 04:29:37 -0500
+Path: news.baymountain.net!uunet!ash.uu.net!npeer.kpnqwest.net!news.tele.dk!130.133.1.3!fu-berlin.de!uni-berlin.de!adsl-138-89-39-3.nnj.adsl.bellatlantic.NET!not-for-mail
+From: ccccc@meezon.com (Ccccc Mmmmm)
+Newsgroups: comp.lang.python
+Subject: Re: import statement is case sensitive
+Lines: 28
+Message-ID: <3a947ac4.802440@News.CIS.DFN.DE>
+References: <3a943bea.525315589@News.CIS.DFN.DE> <t98i9hsgjkov26@corp.supernews.com>
+NNTP-Posting-Host: adsl-138-89-39-3.nnj.adsl.bellatlantic.net (138.89.39.3)
+X-Trace: fu-berlin.de 982810722 24108160 138.89.39.3 (16 [57226])
+X-Newsreader: Forte Free Agent 1.1/32.230
+Xref: news.baymountain.net comp.lang.python:89820
+To: python-list@python.org
+Sender: python-list-admin@python.org
+Errors-To: python-list-admin@python.org
+X-BeenThere: python-list@python.org
+X-Mailman-Version: 2.0.1 (101270)
+Precedence: bulk
+List-Help: <mailto:python-list-request@python.org?subject=help>
+List-Post: <mailto:python-list@python.org>
+List-Subscribe: <http://mail.python.org/mailman/listinfo/python-list>,
+ <mailto:python-list-request@python.org?subject=subscribe>
+List-Id: General discussion list for the Python programming language <python-list.python.org>
+List-Unsubscribe: <http://mail.python.org/mailman/listinfo/python-list>,
+ <mailto:python-list-request@python.org?subject=unsubscribe>
+List-Archive: <http://mail.python.org/pipermail/python-list/>
+Date: Thu, 22 Feb 2001 02:58:29 GMT
+
+"Lyle" <lllll@rrrrgggg.com> wrote:
+
+>> Also what is the purpose of even having it case sensitive. I've yet to
+>> see a file system that has case sensitive filenames....
+>
+>There is an operating system called "Unix" that has case-sensitive file
+>names. There is a slight chance that others on this newsgroup have also
+>heard of this obscure operating system.
+>
+
+Well given the fact that Linux and Windows is beating it to death I
+can see why Unix is becoming obscure :)
+
+Actually I would consider this a shortcoming of Unix. Shipping a
+product that depends on the directory names and files being in the
+right case must cause all sorts of headaches.
+
+I am trying to run an an application under Windows and now I have to
+worry if my directory name is in the correct case. I use PythonWin (a
+fantastic product) to run and test it. There is no option for telling
+it to ignore the case of the import filenames that I could see.
+
+And renaming directories and files is not an easy option.. But anyway,
+this is should automatically be handled in Python depending on the OS.
+
+
+Why would asnyone make the same filenames with different cases? Is
+there a good use?
+--
+http://mail.python.org/mailman/listinfo/python-list
+---------END OF RETURNED MAIL--------
+
+
diff --git a/tests/bounces/simple_03.txt b/tests/bounces/simple_03.txt
new file mode 100644
index 00000000..16fc04d6
--- /dev/null
+++ b/tests/bounces/simple_03.txt
@@ -0,0 +1,68 @@
+From VM Mon Apr 2 02:29:26 2001
+X-VM-v5-Data: ([nil nil nil nil nil nil t nil nil]
+ [nil "Monday" "2" "April" "2001" "08:27:16" "+0200" "Mail Delivery System" "Mailer-Daemon@pop3.pta.lia.net" nil "18" "Warning: message 14jRTi-0007jE-00 delayed 24 hours" "^From:" "python-list-admin@python.org" "python-list-admin@python.org" "4" nil nil nil nil nil]
+ nil)
+Return-Path: <python-list-admin@python.org>
+Delivered-To: bwarsaw@wooz.org
+Received: from digicool.com (host15.digitalcreations.d.subnet.rcn.com [208.59.6.15])
+ by mail.wooz.org (Postfix) with ESMTP id 458FAD3757
+ for <barry@wooz.org>; Mon, 2 Apr 2001 02:25:41 -0400 (EDT)
+Received: from <python-list-admin@python.org>
+ by digicool.com (CommuniGate Pro RULES 3.4)
+ with RULES id 1746501; Mon, 02 Apr 2001 02:27:54 -0400
+Received: from ns2.digicool.com ([216.164.72.2] verified)
+ by digicool.com (CommuniGate Pro SMTP 3.4)
+ with ESMTP id 1746500 for barry@mail.digicool.com; Mon, 02 Apr 2001 02:27:54 -0400
+Received: from mail.python.org (mail.python.org [63.102.49.29])
+ by ns2.digicool.com (8.9.3/8.9.3) with ESMTP id CAA09080
+ for <barry@digicool.com>; Mon, 2 Apr 2001 02:28:02 -0400
+Received: from localhost.localdomain ([127.0.0.1] helo=mail.python.org)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 14jxoo-0003mt-00
+ for barry@digicool.com; Mon, 02 Apr 2001 02:28:02 -0400
+Received: from [196.22.216.11] (helo=pop3.pta.lia.net ident=root)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 14jxo8-0003hg-00
+ for python-list-admin@python.org; Mon, 02 Apr 2001 02:27:23 -0400
+Received: from root by pop3.pta.lia.net with local (Exim 1.92 #1)
+ for python-list-admin@python.org
+ id 14jxo4-00007H-00; Mon, 2 Apr 2001 08:27:16 +0200
+Message-Id: <E14jxo4-00007H-00@pop3.pta.lia.net>
+Precedence: bulk
+List-Help: <mailto:python-list-request@python.org?subject=help>
+List-Post: <mailto:python-list@python.org>
+List-Subscribe: <http://mail.python.org/mailman/listinfo/python-list>,
+ <mailto:python-list-request@python.org?subject=subscribe>
+List-Id: General discussion list for the Python programming language <python-list.python.org>
+List-Unsubscribe: <http://mail.python.org/mailman/listinfo/python-list>,
+ <mailto:python-list-request@python.org?subject=unsubscribe>
+List-Archive: <http://mail.python.org/pipermail/python-list/>
+From: Mail Delivery System <Mailer-Daemon@pop3.pta.lia.net>
+Sender: python-list-owner@python.org
+To: python-list-admin@python.org
+Subject: Warning: message 14jRTi-0007jE-00 delayed 24 hours
+Date: Mon, 2 Apr 2001 08:27:16 +0200
+X-Autogenerated: Mirror
+X-Mirrored-by: <python-list-admin@python.org>
+X-BeenThere: python-list@python.org
+X-Mailman-Version: 2.0.3 (101270)
+
+This message was created automatically by mail delivery software.
+
+A message that you sent has not yet been delivered to all its recipients
+after more than 24 hours on the queue on pop3.pta.lia.net.
+
+The message identifier is: 14jRTi-0007jE-00
+The subject of the message is: I want to learn PYTHON!
+The date of the message is: Sat, 31 Mar 2001 14:33:06 -0500
+
+The address to which the message has not yet been delivered is:
+
+ jacobus@geo.co.za
+
+No action is required on your part. Delivery attempts will continue for
+some time, and this warning may be repeated at intervals if the message
+remains undelivered. Eventually the mail delivery software will give up,
+and when that happens, the message will be returned to you.
+
+
diff --git a/tests/bounces/simple_04.txt b/tests/bounces/simple_04.txt
new file mode 100644
index 00000000..022a3198
--- /dev/null
+++ b/tests/bounces/simple_04.txt
@@ -0,0 +1,105 @@
+From VM Sat Aug 4 01:17:43 2001
+X-VM-v5-Data: ([nil nil nil nil nil nil nil nil nil]
+ [nil "Friday" "3" "August" "2001" "23:59:56" "-0500" "MAILER-DAEMON@airmail.net" "MAILER-DAEMON@airmail.net" nil "51" "mail failed, returning to sender" "^From:" nil nil "8" nil nil nil nil nil]
+ nil)
+Return-Path: <mailman-users-admin@python.org>
+Delivered-To: barry@wooz.org
+Received: from digicool.com (unknown [63.100.190.15])
+ by mail.wooz.org (Postfix) with ESMTP id D0258D3738
+ for <barry@wooz.org>; Sat, 4 Aug 2001 01:00:57 -0400 (EDT)
+Received: from <mailman-users-admin@python.org>
+ by digicool.com (CommuniGate Pro RULES 3.4)
+ with RULES id 2491440; Sat, 04 Aug 2001 01:01:04 -0400
+Received: from smtp.zope.com ([63.100.190.10] verified)
+ by digicool.com (CommuniGate Pro SMTP 3.4)
+ with ESMTP id 2491439 for barry@mail.zope.com; Sat, 04 Aug 2001 01:01:04 -0400
+Received: from mail.python.org (mail.python.org [63.102.49.29])
+ by smtp.zope.com (8.11.2/8.11.2) with ESMTP id f74511X29279
+ for <barry@zope.com>; Sat, 4 Aug 2001 01:01:01 -0400
+Received: from localhost.localdomain ([127.0.0.1] helo=mail.python.org)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 15StYa-0005er-00; Sat, 04 Aug 2001 01:01:00 -0400
+Received: from [209.196.77.104] (helo=mx7.airmail.net)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 15StYG-0005ec-00
+ for mailman-users-admin@python.org; Sat, 04 Aug 2001 01:00:40 -0400
+Received: from mail3.iadfw.net ([209.196.123.3])
+ by mx7.airmail.net with smtp (Exim 3.16 #10)
+ id 15StY6-000E5t-00
+ for mailman-users-admin@python.org; Sat, 04 Aug 2001 00:00:30 -0500
+Received: from mail3.iadfw.net by mail3.iadfw.net
+ (/\##/\ Smail3.1.30.16 #30.25) with bsmtp for <mailman-users-admin@python.org> sender: <MAILER-DAEMON>
+ id <my/15StXY-00385Ey@mail3.iadfw.net>; Fri, 3 Aug 2001 23:59:56 -0500 (CDT)
+Message-Id: <my/15StXY-00385Ey@mail3.iadfw.net>
+Reference: <mm/15StXR-003859m@mail3.iadfw.net>
+Precedence: bulk
+List-Help: <mailto:mailman-users-request@python.org?subject=help>
+List-Post: <mailto:mailman-users@python.org>
+List-Subscribe: <http://mail.python.org/mailman/listinfo/mailman-users>,
+ <mailto:mailman-users-request@python.org?subject=subscribe>
+List-Id: Mailman mailing list management users <mailman-users.python.org>
+List-Unsubscribe: <http://mail.python.org/mailman/listinfo/mailman-users>,
+ <mailto:mailman-users-request@python.org?subject=unsubscribe>
+List-Archive: <http://mail.python.org/pipermail/mailman-users/>
+From: <MAILER-DAEMON@airmail.net>
+Sender: mailman-users-owner@python.org
+To: mailman-users-admin@python.org
+Subject: mail failed, returning to sender
+Date: Fri, 3 Aug 2001 23:59:56 -0500 (CDT)
+X-Autogenerated: Mirror
+X-Mirrored-by: <mailman-users-admin@python.org>
+X-BeenThere: mailman-users@python.org
+X-Mailman-Version: 2.0.6 (101270)
+
+|------------------------- Message log follows: -------------------------|
+ no valid recipients were found for this message
+|------------------------- Failed addresses follow: ---------------------|
+ claird@starbase.neosoft.com ... unknown host
+|------------------------- Message text follows: ------------------------|
+Received: from mx1.airmail.net from [209.196.77.98] by mail3.iadfw.net
+ (/\##/\ Smail3.1.30.16 #30.25) with esmtp sender: <mailman-users-admin@python.org>
+ id <mm/15StXR-003859m@mail3.iadfw.net>; Fri, 3 Aug 2001 23:59:49 -0500 (CDT)
+Received: from mail.python.org ([63.102.49.29])
+ by mx1.airmail.net with esmtp (Exim 3.16 #10)
+ id 15StVY-000P3g-00
+ for claird@neosoft.com; Fri, 03 Aug 2001 23:57:52 -0500
+Received: from localhost.localdomain ([127.0.0.1] helo=mail.python.org)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 15StSp-0005bx-00; Sat, 04 Aug 2001 00:55:03 -0400
+Received: from [206.81.192.3] (helo=sttlpop3.sttl.uswest.net)
+ by mail.python.org with smtp (Exim 3.21 #1)
+ id 15StRq-0005bS-00
+ for mailman-users@python.org; Sat, 04 Aug 2001 00:54:02 -0400
+Received: (qmail 14391 invoked by alias); 4 Aug 2001 04:53:49 -0000
+Delivered-To: fixup-mailman-users@python.org@fixme
+Received: (qmail 14361 invoked by uid 0); 4 Aug 2001 04:53:48 -0000
+Received: from sttldslgw14poola186.sttl.uswest.net (HELO first-last.ocentrix.com) (63.229.16.186)
+ by sttlpop3.sttl.uswest.net with SMTP; 4 Aug 2001 04:53:48 -0000
+Message-Id: <5.0.2.1.0.20010803211707.04770ce0@mail.ocentrix.com>
+X-Sender: benwa@mail.ocentrix.com
+X-Mailer: QUALCOMM Windows Eudora Version 5.0.2
+To: runaway@rahul.net (Colin Andrews)
+From: Ben Burnett <benwa@ocentrix.com>
+Subject: Re: [Mailman-Users] Excessive headers and Eudora
+Cc: mailman-users@python.org
+In-Reply-To: <20010803190718.3389699D03@waltz.rahul.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset="us-ascii"; format=flowed
+Sender: mailman-users-admin@python.org
+Errors-To: mailman-users-admin@python.org
+X-BeenThere: mailman-users@python.org
+X-Mailman-Version: 2.0.6 (101270)
+Precedence: bulk
+List-Help: <mailto:mailman-users-request@python.org?subject=help>
+List-Post: <mailto:mailman-users@python.org>
+List-Subscribe: <http://mail.python.org/mailman/listinfo/mailman-users>,
+ <mailto:mailman-users-request@python.org?subject=subscribe>
+List-Id: Mailman mailing list management users <mailman-users.python.org>
+List-Unsubscribe: <http://mail.python.org/mailman/listinfo/mailman-users>,
+ <mailto:mailman-users-request@python.org?subject=unsubscribe>
+List-Archive: <http://mail.python.org/pipermail/mailman-users/>
+Date: Fri, 03 Aug 2001 21:54:02 -0700
+
+[low-priority message, body not included]
+
+
diff --git a/tests/bounces/sina_01.txt b/tests/bounces/sina_01.txt
new file mode 100644
index 00000000..366500a9
--- /dev/null
+++ b/tests/bounces/sina_01.txt
@@ -0,0 +1,128 @@
+Return-Path: <boost-admin@lists.boost.org>
+Received: from mx04.mrf.mail.rcn.net ([207.172.4.53] [207.172.4.53])
+ by mta05.mrf.mail.rcn.net with ESMTP
+ id <20020403160608.EQZZ19155.mta05.mrf.mail.rcn.net@mx04.mrf.mail.rcn.net>;
+ Wed, 3 Apr 2002 11:06:08 -0500
+Received: from milliways.osl.iu.edu ([129.79.245.239])
+ by mx04.mrf.mail.rcn.net with esmtp (Exim 3.35 #5)
+ id 16snGx-0005F0-00
+ for david.abrahams@rcn.com; Wed, 03 Apr 2002 11:06:07 -0500
+Received: from milliways.osl.iu.edu (localhost [127.0.0.1])
+ by milliways.osl.iu.edu (8.11.6/8.11.6/IUCS_2.44) with ESMTP id g33G61A24861;
+ Wed, 3 Apr 2002 11:06:01 -0500
+Received: from sina.com ([202.106.187.178])
+ by milliways.osl.iu.edu (8.11.6/8.11.6/IUCS_2.44) with SMTP id g33G5CA24792
+ for <boost-admin@lists.boost.org>; Wed, 3 Apr 2002 11:05:13 -0500
+Message-Id: <200204031605.g33G5CA24792@milliways.osl.iu.edu>
+Received: (qmail 53818 invoked for bounce); 3 Apr 2002 15:55:44 -0000
+Date: 3 Apr 2002 15:55:44 -0000
+From: MAILER-DAEMON@sina.com
+To: boost-admin@lists.boost.org
+Subject: Óʼþ´«Êäʧ°Ü£¡
+MIME-Version: 1.0
+X-Priority: 3
+X-Mailer: SinaMail 3.0
+Content-Type: multipart/mixed;
+ boundary="----------101784934443375SINAEMAIL---"
+Sender: boost-owner@lists.boost.org
+Errors-To: boost-owner@lists.boost.org
+X-BeenThere: boost@lists.boost.org
+X-Mailman-Version: 2.0.8
+Precedence: bulk
+List-Help: <mailto:boost-request@lists.boost.org?subject=help>
+List-Post: <mailto:boost@lists.boost.org>
+List-Subscribe: <http://lists.boost.org/mailman/listinfo.cgi/boost>,
+ <mailto:boost-request@lists.boost.org?subject=subscribe>
+List-Id: Boost mailing list <boost.lists.boost.org>
+List-Unsubscribe: <http://lists.boost.org/mailman/listinfo.cgi/boost>,
+ <mailto:boost-request@lists.boost.org?subject=unsubscribe>
+List-Archive: <http://lists.boost.org/MailArchives/boost/>
+
+This is a multi-part message in MIME format.
+
+------------101784934443375SINAEMAIL---
+Content-Type: text/plain;
+ charset="gb2312"
+Content-Transfer-Encoding: binary
+
+sina.com.
+ÓʼþÎÞ·¨·¢Ë͵½ÄúÖ¸¶¨µÄµØÖ·ÖС£
+ÔÚÓʼþ´«Êä¹ý³ÌÖÐÓÉÓÚÍⲿµÄÎÞ·¨±ÜÃâµÄ´íÎóµ¼ÖÂÓʼþÎÞ·¨ËÍ´ï¡£
+
+<boboman76@sina.com>:
+
+<alan_t18@sina.com>:
+
+--- ¸½¼þÖеÄÄÚÈÝÊÇÔ­ÐżþµÄÒ»·Ý¿½±´
+
+------------101784934443375SINAEMAIL---
+Content-Type: message/rfc822;
+ name="original message.eml"
+Content-Transfer-Encoding: binary
+Content-Disposition: attachment;
+ filename="original message.eml"
+
+Return-Path: <boost-admin@lists.boost.org>
+Received: (qmail 31910 invoked from network); 3 Apr 2002 15:42:31 -0000
+Received: from unknown (HELO milliways.osl.iu.edu) (129.79.245.239)
+ by 202.106.187.178 with SMTP; 3 Apr 2002 15:42:31 -0000
+Received: from milliways.osl.iu.edu (localhost [127.0.0.1])
+ by milliways.osl.iu.edu (8.11.6/8.11.6/IUCS_2.44) with ESMTP id g33FaGA24120;
+ Wed, 3 Apr 2002 10:36:16 -0500
+Received: from hotmail.com (f128.law10.hotmail.com [64.4.15.128])
+ by milliways.osl.iu.edu (8.11.6/8.11.6/IUCS_2.44) with ESMTP id g33FYUA24076
+ for <boost@lists.boost.org>; Wed, 3 Apr 2002 10:34:31 -0500
+Received: from mail pickup service by hotmail.com with Microsoft SMTPSVC;
+ Wed, 3 Apr 2002 07:34:23 -0800
+Received: from 194.100.118.234 by lw10fd.law10.hotmail.msn.com with HTTP;
+ Wed, 03 Apr 2002 15:34:23 GMT
+X-Originating-IP: [194.100.118.234]
+From: "Vesa Karvonen" <vesa_karvonen@hotmail.com>
+To: boost@lists.boost.org
+Subject: Re: [boost] [Type Traits] Patch for type_with_alignment
+Mime-Version: 1.0
+Content-Type: text/plain; format=flowed
+Message-ID: <F128rzvsTDWWcuZcGwM00012d40@hotmail.com>
+X-OriginalArrivalTime: 03 Apr 2002 15:34:23.0543 (UTC) FILETIME=[07DF4470:01C1DB25]
+Sender: boost-admin@lists.boost.org
+Errors-To: boost-admin@lists.boost.org
+X-BeenThere: boost@lists.boost.org
+X-Mailman-Version: 2.0.8
+Precedence: bulk
+Reply-To: boost@lists.boost.org
+List-Help: <mailto:boost-request@lists.boost.org?subject=help>
+List-Post: <mailto:boost@lists.boost.org>
+List-Subscribe: <http://lists.boost.org/mailman/listinfo.cgi/boost>,
+ <mailto:boost-request@lists.boost.org?subject=subscribe>
+List-Id: Boost mailing list <boost.lists.boost.org>
+List-Unsubscribe: <http://lists.boost.org/mailman/listinfo.cgi/boost>,
+ <mailto:boost-request@lists.boost.org?subject=unsubscribe>
+List-Archive: <http://lists.boost.org/MailArchives/boost/>
+Date: Wed, 03 Apr 2002 18:34:23 +0300
+
+Douglas Gregor:
+>type_with_alignment<> is available in CVS.
+
+hmm... You are right, but it is in the compiler_supported_error_messages
+branch. Is this intentional?
+
+>I'm guessing we should also add aligned_storage somewhere, because I'm
+>sure quite a few of us will use it:
+
+Good idea.
+
+>Maybe this belongs in utility/aligned_storage.hpp?
+
+I have a feeling that something like this should probably go somewhere
+closer to <memory> rather than <utility>.
+
+
+_________________________________________________________________
+Send and receive Hotmail on your mobile device: http://mobile.msn.com
+
+_______________________________________________
+Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
+
+
+
+------------101784934443375SINAEMAIL----- \ No newline at end of file
diff --git a/tests/bounces/smtp32_01.txt b/tests/bounces/smtp32_01.txt
new file mode 100644
index 00000000..decf0ddc
--- /dev/null
+++ b/tests/bounces/smtp32_01.txt
@@ -0,0 +1,97 @@
+From VM Mon Apr 2 10:02:42 2001
+X-VM-v5-Data: ([nil nil nil nil nil nil nil nil nil]
+ [nil "Monday" "2" "April" "101" "04:20:10" "CST" "Postmaster" "postmaster@208.24.118.205" nil "48" "Undeliverable Mail" "^From:" nil nil "4" nil nil nil nil nil]
+ nil)
+Return-Path: <mailman-users-admin@python.org>
+Delivered-To: bwarsaw@wooz.org
+Received: from digicool.com (host15.digitalcreations.d.subnet.rcn.com [208.59.6.15])
+ by mail.wooz.org (Postfix) with ESMTP id B42DFD3757
+ for <barry@wooz.org>; Mon, 2 Apr 2001 06:21:39 -0400 (EDT)
+Received: from <mailman-users-admin@python.org>
+ by digicool.com (CommuniGate Pro RULES 3.4)
+ with RULES id 1746977; Mon, 02 Apr 2001 06:23:54 -0400
+Received: from ns2.digicool.com ([216.164.72.2] verified)
+ by digicool.com (CommuniGate Pro SMTP 3.4)
+ with ESMTP id 1746976 for barry@mail.digicool.com; Mon, 02 Apr 2001 06:23:54 -0400
+Received: from mail.python.org (mail.python.org [63.102.49.29])
+ by ns2.digicool.com (8.9.3/8.9.3) with ESMTP id GAA19223
+ for <barry@digicool.com>; Mon, 2 Apr 2001 06:24:01 -0400
+Received: from localhost.localdomain ([127.0.0.1] helo=mail.python.org)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 14k1VB-0006KC-00
+ for barry@digicool.com; Mon, 02 Apr 2001 06:24:01 -0400
+Received: from [207.51.255.218] (helo=208.24.118.205)
+ by mail.python.org with smtp (Exim 3.21 #1)
+ id 14k1UG-0006Ia-00
+ for mailman-users-admin@python.org; Mon, 02 Apr 2001 06:23:04 -0400
+Message-Id: <10104020420.AA00477@208.24.118.205>
+Precedence: bulk
+List-Help: <mailto:mailman-users-request@python.org?subject=help>
+List-Post: <mailto:mailman-users@python.org>
+List-Subscribe: <http://mail.python.org/mailman/listinfo/mailman-users>,
+ <mailto:mailman-users-request@python.org?subject=subscribe>
+List-Id: Mailman mailing list management users <mailman-users.python.org>
+List-Unsubscribe: <http://mail.python.org/mailman/listinfo/mailman-users>,
+ <mailto:mailman-users-request@python.org?subject=unsubscribe>
+List-Archive: <http://mail.python.org/pipermail/mailman-users/>
+From: "Postmaster" <postmaster@208.24.118.205>
+Sender: mailman-users-owner@python.org
+To: <mailman-users-admin@python.org>
+Subject: Undeliverable Mail
+Date: Mon, 2 Apr 101 04:20:10 CST
+X-Autogenerated: Mirror
+X-Mirrored-by: <mailman-users-admin@python.org>
+X-Mailer: <SMTP32 v980629>
+X-BeenThere: mailman-users@python.org
+X-Mailman-Version: 2.0.3 (101270)
+Reply-To: <postmaster@208.24.118.205>
+
+Delivery failed 20 attempts: oliver@pcworld.com.ph
+
+
+Original message follows.
+
+Received: from SMTP32-FWD by the-pentagon.com
+ (SMTP32) id A00000199; Sun, 1 Apr 101 09:53:32 CST
+Received: from mail.python.org [63.102.49.29] by 208.24.118.205 with ESMTP
+ (SMTPD32-6.00) id AEF8223011C; Sun, 01 Apr 2001 10:53:31 -0500
+Received: from localhost.localdomain ([127.0.0.1] helo=mail.python.org)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 14jk6B-0005u4-00; Sun, 01 Apr 2001 11:49:03 -0400
+Received: from [195.3.3.14] (helo=ibis.worldnet.net)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 14jk5s-0005t5-00
+ for mailman-users@python.org; Sun, 01 Apr 2001 11:48:45 -0400
+Received: from m3.worldnet.net (m2.worldnet.net [195.3.3.6])
+ by ibis.worldnet.net (8.11.3/8.11.1) with ESMTP id f31Fmgv23795
+ for <mailman-users@python.org>; Sun, 1 Apr 2001 17:48:42 +0200 (CEST)
+ (envelope-from bootc@worldnet.fr)
+Received: from [195.3.46.106] (i46-106.province.worldnet.fr [195.3.46.106])
+ by m3.worldnet.net (8.11.2/8.11.1) with ESMTP id f31FnIY00581
+ for <mailman-users@python.org>; Sun, 1 Apr 2001 17:49:18 +0200 (CEST)
+ (envelope-from bootc@worldnet.fr)
+User-Agent: Microsoft-Outlook-Express-Macintosh-Edition/5.02.2022
+Subject: Re: [Mailman-Users] List Info page showing wrong e-mail address
+From: Chris Boot <bootc@worldnet.fr>
+To: Mailman Users <mailman-users@python.org>
+Message-ID: <B6ED1A51.CD1E%bootc@worldnet.fr>
+In-Reply-To: <B6EC3825.CCB5%bootc@worldnet.fr>
+Mime-version: 1.0
+Content-type: text/plain; charset="US-ASCII"
+Content-transfer-encoding: 7bit
+Sender: mailman-users-admin@python.org
+Errors-To: mailman-users-admin@python.org
+X-BeenThere: mailman-users@python.org
+X-Mailman-Version: 2.0.3 (101270)
+Precedence: bulk
+List-Help: <mailto:mailman-users-request@python.org?subject=help>
+List-Post: <mailto:mailman-users@python.org>
+List-Subscribe: <http://mail.python.org/mailman/listinfo/mailman-users>,
+ <mailto:mailman-users-request@python.org?subject=subscribe>
+List-Id: Mailman mailing list management users <mailman-users.python.org>
+List-Unsubscribe: <http://mail.python.org/mailman/listinfo/mailman-users>,
+ <mailto:mailman-users-request@python.org?subject=unsubscribe>
+
+[message truncated]
+
+
diff --git a/tests/bounces/smtp32_02.txt b/tests/bounces/smtp32_02.txt
new file mode 100644
index 00000000..3336a28d
--- /dev/null
+++ b/tests/bounces/smtp32_02.txt
@@ -0,0 +1,96 @@
+From VM Wed May 30 01:59:29 2001
+X-VM-v5-Data: ([nil nil nil nil nil nil nil nil nil]
+ [nil "Tuesday" "29" "May" "2001" "20:19:37" "-0700" "Postmaster" "postmaster@launchpoint.net" nil "48" "Undeliverable Mail" "^From:" nil nil "5" nil nil nil nil nil]
+ nil)
+Return-Path: <python-list-admin@python.org>
+Delivered-To: barry@wooz.org
+Received: from digicool.com (unknown [63.100.190.15])
+ by mail.wooz.org (Postfix) with ESMTP id 5BA95D35D7
+ for <barry@wooz.org>; Tue, 29 May 2001 23:48:06 -0400 (EDT)
+Received: from <python-list-admin@python.org>
+ by digicool.com (CommuniGate Pro RULES 3.4)
+ with RULES id 1993021; Tue, 29 May 2001 23:48:38 -0400
+Received: from ns2.digicool.com ([63.100.190.2] verified)
+ by digicool.com (CommuniGate Pro SMTP 3.4)
+ with ESMTP id 1993014 for barry@mail.digicool.com; Tue, 29 May 2001 23:47:17 -0400
+Received: from mail.python.org (mail.python.org [63.102.49.29])
+ by ns2.digicool.com (8.9.3/8.9.3) with ESMTP id XAA05200
+ for <barry@digicool.com>; Tue, 29 May 2001 23:46:46 -0400
+Received: from localhost.localdomain ([127.0.0.1] helo=mail.python.org)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 154wwZ-0007Jf-00
+ for barry@digicool.com; Tue, 29 May 2001 23:46:47 -0400
+Received: from [65.200.12.28] (helo=launchpoint.net)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 154wv7-0007H3-00
+ for python-list-admin@python.org; Tue, 29 May 2001 23:45:17 -0400
+Message-Id: <10105292019.AA00136@launchpoint.net>
+Precedence: bulk
+List-Help: <mailto:python-list-request@python.org?subject=help>
+List-Post: <mailto:python-list@python.org>
+List-Subscribe: <http://mail.python.org/mailman/listinfo/python-list>,
+ <mailto:python-list-request@python.org?subject=subscribe>
+List-Id: General discussion list for the Python programming language <python-list.python.org>
+List-Unsubscribe: <http://mail.python.org/mailman/listinfo/python-list>,
+ <mailto:python-list-request@python.org?subject=unsubscribe>
+List-Archive: <http://mail.python.org/pipermail/python-list/>
+From: "Postmaster" <postmaster@launchpoint.net>
+Sender: python-list-owner@python.org
+To: <python-list-admin@python.org>
+Subject: Undeliverable Mail
+Date: Tue, 29 May 2001 20:19:37 -0700
+X-Autogenerated: Mirror
+X-Mirrored-by: <python-list-admin@python.org>
+X-Mailer: <SMTP32 v20010131>
+X-BeenThere: python-list@python.org
+X-Mailman-Version: 2.0.5 (101270)
+
+Delivery failed 20 attempts: lists@mail.spicynoodles.com
+
+
+Original message follows.
+
+Received: from mail.python.org [63.102.49.29] by launchpoint.net with ESMTP
+ (SMTPD32-6.06) id ACB127960212; Tue, 29 May 2001 09:22:09 -0700
+Received: from localhost.localdomain ([127.0.0.1] helo=mail.python.org)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 154mEf-0002VG-00; Tue, 29 May 2001 12:20:45 -0400
+Received: from [194.109.0.100] (helo=centurion.xs4all.nl)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 154mDK-0002Te-00
+ for python-list@python.org; Tue, 29 May 2001 12:19:22 -0400
+Received: by centurion.xs4all.nl (Postfix, from userid 1000)
+ id 14716147; Tue, 29 May 2001 18:18:49 +0200 (CEST)
+From: Thomas Wouters <thomas@xs4all.net>
+To: Jim Abrams <jim@publishingresources.com>
+Cc: python-list@python.org
+Subject: Re: Active State and the PSF
+Message-ID: <20010529181849.U690@xs4all.nl>
+References: <mailman.991021781.12258.python-list@python.org> <Xns90B07596E1F35jimpublishingresourc@64.152.100.91>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=us-ascii
+Content-Disposition: inline
+User-Agent: Mutt/1.3.17i
+In-Reply-To: <Xns90B07596E1F35jimpublishingresourc@64.152.100.91>; from jim@publishingresources.com on Tue, May 29, 2001 at 03:43:08PM +0000
+Sender: python-list-admin@python.org
+Errors-To: python-list-admin@python.org
+X-BeenThere: python-list@python.org
+X-Mailman-Version: 2.0.5 (101270)
+Precedence: bulk
+List-Help: <mailto:python-list-request@python.org?subject=help>
+List-Post: <mailto:python-list@python.org>
+List-Subscribe: <http://mail.python.org/mailman/listinfo/python-list>,
+ <mailto:python-list-request@python.org?subject=subscribe>
+List-Id: General discussion list for the Python programming language <python-list.python.org>
+List-Unsubscribe: <http://mail.python.org/mailman/listinfo/python-list>,
+ <mailto:python-list-request@python.org?subject=unsubscribe>
+List-Archive: <http://mail.python.org/pipermail/python-list/>
+Date: Tue, 29 May 2001 18:18:49 +0200
+
+On Tue, May 29, 2001 at 03:43:08PM +0000, Jim Abrams wrote:
+
+> Forgive my lazyiness in not deciphering the GPL, but does the GPL put some
+
+[message truncated]
+
+
diff --git a/tests/bounces/smtp32_03.txt b/tests/bounces/smtp32_03.txt
new file mode 100644
index 00000000..0c284afc
--- /dev/null
+++ b/tests/bounces/smtp32_03.txt
@@ -0,0 +1,92 @@
+From VM Wed Aug 1 17:39:21 2001
+X-VM-v5-Data: ([nil nil nil nil nil nil nil nil nil]
+ [nil "Wednesday" "1" "August" "2001" "12:02:47" "-0700" "Postmaster" "postmaster@mgw.xraymedia.com" nil "43" "Undeliverable Mail" "^From:" "mailman-users-admin@python.org" "mailman-users-admin@python.org" "8" nil nil nil nil nil]
+ nil)
+Return-Path: <mailman-users-admin@python.org>
+Delivered-To: barry@wooz.org
+Received: from digicool.com (unknown [63.100.190.15])
+ by mail.wooz.org (Postfix) with ESMTP id 012AFD35F4
+ for <barry@wooz.org>; Wed, 1 Aug 2001 15:24:04 -0400 (EDT)
+Received: from <mailman-users-admin@python.org>
+ by digicool.com (CommuniGate Pro RULES 3.4)
+ with RULES id 2461696; Wed, 01 Aug 2001 15:24:06 -0400
+Received: from smtp.zope.com ([63.100.190.10] verified)
+ by digicool.com (CommuniGate Pro SMTP 3.4)
+ with ESMTP id 2461695 for barry@mail.zope.com; Wed, 01 Aug 2001 15:24:06 -0400
+Received: from mail.python.org (mail.python.org [63.102.49.29])
+ by smtp.zope.com (8.11.2/8.11.2) with ESMTP id f71JO6X18645
+ for <barry@zope.com>; Wed, 1 Aug 2001 15:24:06 -0400
+Received: from localhost.localdomain ([127.0.0.1] helo=mail.python.org)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 15S1bB-0001XU-00; Wed, 01 Aug 2001 15:24:05 -0400
+Received: from [209.17.153.132] (helo=mgw.xraymedia.com)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 15S1aM-0001Wb-00
+ for mailman-users-admin@python.org; Wed, 01 Aug 2001 15:23:14 -0400
+Message-Id: <10108011202.AA00462@mgw.xraymedia.com>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=us-ascii
+Precedence: bulk
+List-Help: <mailto:mailman-users-request@python.org?subject=help>
+List-Post: <mailto:mailman-users@python.org>
+List-Subscribe: <http://mail.python.org/mailman/listinfo/mailman-users>,
+ <mailto:mailman-users-request@python.org?subject=subscribe>
+List-Id: Mailman mailing list management users <mailman-users.python.org>
+List-Unsubscribe: <http://mail.python.org/mailman/listinfo/mailman-users>,
+ <mailto:mailman-users-request@python.org?subject=unsubscribe>
+List-Archive: <http://mail.python.org/pipermail/mailman-users/>
+From: "Postmaster" <postmaster@mgw.xraymedia.com>
+Sender: mailman-users-owner@python.org
+To: mailman-users-admin@python.org
+Subject: Undeliverable Mail
+Date: Wed, 1 Aug 2001 12:02:47 -0700
+X-Autogenerated: Mirror
+X-Mirrored-by: <mailman-users-admin@python.org>
+X-Mailer: <SMTP32 v20010525EVAL>
+X-BeenThere: mailman-users@python.org
+X-Mailman-Version: 2.0.6 (101270)
+
+undeliverable to borisk@gw.xraymedia.com
+
+
+Original message follows.
+
+Received: from mgw.xraymedia.com [209.17.153.132] by mgw.xraymedia.com with ESMTP
+ (SMTPD32-7.00 EVAL) id A2541501BA; Wed, 01 Aug 2001 12:02:47 -0700
+Received: from mgw.xraymedia.com [209.17.153.132] by mgw.xraymedia.com with ESMTP
+ (SMTPD32-7.00 EVAL) id A2534501B6; Wed, 01 Aug 2001 12:02:46 -0700
+Received: from mgw.xraymedia.com [209.17.153.132] by mgw.xraymedia.com with ESMTP
+ (SMTPD32-7.00 EVAL) id A24D3A01B6; Wed, 01 Aug 2001 12:02:46 -0700
+Received: from mgw.xraymedia.com [209.17.153.132] by mgw.xraymedia.com with ESMTP
+ (SMTPD32-7.00 EVAL) id A2533401B6; Wed, 01 Aug 2001 12:02:46 -0700
+Received: from hercules.xraymedia.com [64.69.69.18] by mgw.xraymedia.com with ESMTP
+ (SMTPD32-7.00 EVAL) id A2553201B6; Wed, 01 Aug 2001 12:02:45 -0700
+Received: from mail.python.org (mail.python.org [63.102.49.29])
+ by hercules.xraymedia.com (8.11.0/8.11.0) with ESMTP id f71IEQb00859
+ for <borisk@xraymedia.com>; Wed, 1 Aug 2001 11:14:26 -0700
+Received: from localhost.localdomain ([127.0.0.1] helo=mail.python.org)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 15S13G-0008Mi-00; Wed, 01 Aug 2001 14:49:02 -0400
+Received: from [24.201.245.36] (helo=VL-MS-MR002.sc1.videotron.ca)
+ by mail.python.org with esmtp (Exim 3.21 #1)
+ id 15S12G-0008IE-00
+ for mailman-users@python.org; Wed, 01 Aug 2001 14:48:00 -0400
+Received: from cthulhu.gerg.ca ([24.203.122.44]) by
+ VL-MS-MR002.sc1.videotron.ca (Netscape Messaging Server 4.15)
+ with ESMTP id GHEK7K02.QG7 for <mailman-users@python.org>; Wed,
+ 1 Aug 2001 14:47:44 -0400
+Received: from gward by cthulhu.gerg.ca with local (Exim 3.22 #1 (Debian))
+ id 15S11y-0000ip-00
+ for <mailman-users@python.org>; Wed, 01 Aug 2001 14:47:42 -0400
+To: mailman-users@python.org
+Subject: Re: [Mailman-Users] pls HELP!!!
+Message-ID: <20010801144742.B2759@mems-exchange.org>
+Mail-Followup-To: mailman-users@python.org
+References: <DPEEILMMKFNDFMKLPIMFEEFLCMAA.rimas@beritrans.com>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=us-ascii
+Content-Disposition: inline
+
+[message truncated]
+
+
diff --git a/tests/bounces/yahoo_01.txt b/tests/bounces/yahoo_01.txt
new file mode 100644
index 00000000..0758957f
--- /dev/null
+++ b/tests/bounces/yahoo_01.txt
@@ -0,0 +1,47 @@
+Return-path: <jpython-interest-admin@python.org>
+Received: from mta540.mail.yahoo.com [216.136.131.22] by receive.turbosport.com [63.118.43.131]
+ with SMTP (MDaemon.v3.5.2.R)
+ for <bbbsss@turbosport.com>; Sun, 18 Feb 2001 02:25:20 -0600
+Message-ID: <20010218082300.42071.qmail@mta540.mail.yahoo.com>
+Received: from mta540.mail.yahoo.com for bbbsss@turbosport.com; Feb 18 00:23:00 2001 -0800
+Received: from smtp015.mail.yahoo.com (216.136.173.59)
+X-Yahoo-Forwarded: from aaaaa_20@yahoo.com to bbbsss@turbosport.com
+ by mta540.mail.yahoo.com with SMTP; 18 Feb 2001 00:23:00 -0800 (PST)
+Date: 18 Feb 2001 08:22:57 -0000
+From: MAILER-DAEMON@yahoo.com
+To: aaaaa@yahoo.com
+Subject: failure delivery
+X-MDRcpt-To: bbbsss@turbosport.com
+X-MDRemoteIP: 216.136.131.22
+X-Return-Path: jpython-interest-admin@python.org
+X-MDaemon-Deliver-To: bbbsss@turbosport.com
+
+Message from yahoo.com.
+Unable to deliver message to the following address(es).
+
+<subscribe.motorcycles@listsociety.com>:
+Sorry, I wasn't able to establish an SMTP connection. (#4.4.1)
+I'm not going to try again; this message has been in the queue too long.
+
+--- Original message follows.
+
+Return-Path: <aaaaa@yahoo.com>
+Received: from c58148.upc-c.chello.nl (HELO localhost) (212.187.58.148)
+ by smtp.mail.vip.sc5.yahoo.com with SMTP; 11 Feb 2001 01:15:27 -0000
+X-Apparently-From: <aaaaa?20@yahoo.com>
+X-Sender: aaaaa@yahoo.com
+From: Albert Ttttt <aaaaa@yahoo.com>
+To: subscribe.motorcycles@listsociety.com
+Date: Sun, 11 Feb 2001 02:14:40 +0100
+Subject: Subscribe
+Reply-To: aaaaa@yahoo.com
+MIME-Version: 1.0
+Content-Type: text/plain; charset=iso-8859-1
+Content-Transfer-Encoding: 7bit
+
+
+
+_________________________________________________________
+Do You Yahoo!?
+Get your free @yahoo.com address at http://mail.yahoo.com
+
diff --git a/tests/bounces/yahoo_02.txt b/tests/bounces/yahoo_02.txt
new file mode 100644
index 00000000..90d835dc
--- /dev/null
+++ b/tests/bounces/yahoo_02.txt
Binary files differ
diff --git a/tests/bounces/yahoo_03.txt b/tests/bounces/yahoo_03.txt
new file mode 100644
index 00000000..9de32a43
--- /dev/null
+++ b/tests/bounces/yahoo_03.txt
@@ -0,0 +1,98 @@
+Return-Path: <boost-admin@lists.boost.org>
+Received: from mx04.mrf.mail.rcn.net ([207.172.4.53] [207.172.4.53])
+ by mta02.mrf.mail.rcn.net with ESMTP
+ id <20020403141004.PXBK1795.mta02.mrf.mail.rcn.net@mx04.mrf.mail.rcn.net>;
+ Wed, 3 Apr 2002 09:10:04 -0500
+Received: from milliways.osl.iu.edu ([129.79.245.239])
+ by mx04.mrf.mail.rcn.net with esmtp (Exim 3.35 #5)
+ id 16slSd-0006Tx-00
+ for david.abrahams@rcn.com; Wed, 03 Apr 2002 09:10:04 -0500
+Received: from milliways.osl.iu.edu (localhost [127.0.0.1])
+ by milliways.osl.iu.edu (8.11.6/8.11.6/IUCS_2.44) with ESMTP id g33EA0A22345;
+ Wed, 3 Apr 2002 09:10:00 -0500
+Received: from mta545.mail.yahoo.com (mta545.mail.yahoo.com [216.136.131.27])
+ by milliways.osl.iu.edu (8.11.6/8.11.6/IUCS_2.44) with SMTP id g33E9DA22332
+ for <boost-admin@lists.boost.org>; Wed, 3 Apr 2002 09:09:13 -0500
+Date: Wed, 3 Apr 2002 09:09:13 -0500
+Message-Id: <200204031409.g33E9DA22332@milliways.osl.iu.edu>
+From: MAILER-DAEMON@yahoo.com
+To: boost-admin@lists.boost.org
+X-Loop: MAILER-DAEMON@yahoo.com
+Subject: Delivery failure
+Sender: boost-owner@lists.boost.org
+Errors-To: boost-owner@lists.boost.org
+X-BeenThere: boost@lists.boost.org
+X-Mailman-Version: 2.0.8
+Precedence: bulk
+List-Help: <mailto:boost-request@lists.boost.org?subject=help>
+List-Post: <mailto:boost@lists.boost.org>
+List-Subscribe: <http://lists.boost.org/mailman/listinfo.cgi/boost>,
+ <mailto:boost-request@lists.boost.org?subject=subscribe>
+List-Id: Boost mailing list <boost.lists.boost.org>
+List-Unsubscribe: <http://lists.boost.org/mailman/listinfo.cgi/boost>,
+ <mailto:boost-request@lists.boost.org?subject=unsubscribe>
+List-Archive: <http://lists.boost.org/MailArchives/boost/>
+
+Message from yahoo.com.
+Unable to deliver message to the following address(es).
+
+<cresus22@yahoo.com>:
+Sorry your message to cresus22@yahoo.com cannot be delivered. This account has been disabled or discontinued.
+
+--- Original message follows.
+
+X-Rocket-Spam: 129.79.245.239
+X-YahooFilteredBulk: 129.79.245.239
+X-Track: 111: 20
+Return-Path: <boost-admin@lists.boost.org>
+Received: from milliways.osl.iu.edu (129.79.245.239)
+ by mta545.mail.yahoo.com with SMTP; 03 Apr 2002 06:09:04 -0800 (PST)
+Received: from milliways.osl.iu.edu (localhost [127.0.0.1])
+ by milliways.osl.iu.edu (8.11.6/8.11.6/IUCS_2.44) with ESMTP id g33D6PA21151;
+ Wed, 3 Apr 2002 08:06:25 -0500
+Received: from exchsrv.uttc-utc.com ([63.80.119.4])
+ by milliways.osl.iu.edu (8.11.6/8.11.6/IUCS_2.44) with ESMTP id g33D42A21076
+ for <boost@lists.boost.org>; Wed, 3 Apr 2002 08:04:03 -0500
+Received: by EXCHSRV with Internet Mail Service (5.5.2653.19)
+ id <G9MVAA8Z>; Wed, 3 Apr 2002 08:03:59 -0500
+Message-ID: <2FE8C75C7A06D4118BB50008C7F7E83103D5DF@EXCHSRV>
+From: "Moore, Dave" <dmoore@ashtontechgroup.com>
+To: "'boost@lists.boost.org'" <boost@lists.boost.org>
+MIME-Version: 1.0
+X-Mailer: Internet Mail Service (5.5.2653.19)
+Content-Type: text/plain;
+ charset="iso-8859-1"
+Subject: [boost] OT(?) Top Posting, Discussion Threads, and Outlook/Exchange
+Sender: boost-admin@lists.boost.org
+Errors-To: boost-admin@lists.boost.org
+X-BeenThere: boost@lists.boost.org
+X-Mailman-Version: 2.0.8
+Precedence: bulk
+Reply-To: boost@lists.boost.org
+List-Help: <mailto:boost-request@lists.boost.org?subject=help>
+List-Post: <mailto:boost@lists.boost.org>
+List-Subscribe: <http://lists.boost.org/mailman/listinfo.cgi/boost>,
+ <mailto:boost-request@lists.boost.org?subject=subscribe>
+List-Id: Boost mailing list <boost.lists.boost.org>
+List-Unsubscribe: <http://lists.boost.org/mailman/listinfo.cgi/boost>,
+ <mailto:boost-request@lists.boost.org?subject=unsubscribe>
+List-Archive: <http://lists.boost.org/MailArchives/boost/>
+Date: Wed, 3 Apr 2002 08:03:58 -0500
+
+Since the recent discussion-discussion, I just tried to reply the "right"
+way in "RE: [boost] Thread locals", only to see my efforts cheerfully
+ignored by the Mailing List archive.
+(http://lists.boost.org/MailArchives/boost/)
+
+I am stuck with Outlook 2000 + Exchange 5.5 here at work, but have some
+considerable pull with the Exchange Admin.
+
+I notice that my replies have the "References:" field stripped off. Any
+Boosters successfully using this email combination, preserving the
+references field?
+
+Thanks, and sorry for the noise.
+Dave
+_______________________________________________
+Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
+.
diff --git a/tests/bounces/yahoo_04.txt b/tests/bounces/yahoo_04.txt
new file mode 100644
index 00000000..cf603636
--- /dev/null
+++ b/tests/bounces/yahoo_04.txt
@@ -0,0 +1,150 @@
+Return-Path: <boost-admin@lists.boost.org>
+Received: from mx04.mrf.mail.rcn.net ([207.172.4.53] [207.172.4.53])
+ by mta05.mrf.mail.rcn.net with ESMTP
+ id <20020403144504.BXMM19155.mta05.mrf.mail.rcn.net@mx04.mrf.mail.rcn.net>;
+ Wed, 3 Apr 2002 09:45:04 -0500
+Received: from milliways.osl.iu.edu ([129.79.245.239])
+ by mx04.mrf.mail.rcn.net with esmtp (Exim 3.35 #5)
+ id 16sm0V-0007O8-00
+ for david.abrahams@rcn.com; Wed, 03 Apr 2002 09:45:04 -0500
+Received: from milliways.osl.iu.edu (localhost [127.0.0.1])
+ by milliways.osl.iu.edu (8.11.6/8.11.6/IUCS_2.44) with ESMTP id g33Ej1A23023;
+ Wed, 3 Apr 2002 09:45:01 -0500
+Received: from mta468.mail.yahoo.com (mta468.mail.yahoo.com [216.136.130.133])
+ by milliways.osl.iu.edu (8.11.6/8.11.6/IUCS_2.44) with SMTP id g33EibA23012
+ for <boost-admin@lists.boost.org>; Wed, 3 Apr 2002 09:44:37 -0500
+Date: Wed, 3 Apr 2002 09:44:37 -0500
+Message-Id: <200204031444.g33EibA23012@milliways.osl.iu.edu>
+From: MAILER-DAEMON@yahoo.com
+To: boost-admin@lists.boost.org
+X-Loop: MAILER-DAEMON@yahoo.com
+Subject: Delivery failure
+Sender: boost-owner@lists.boost.org
+Errors-To: boost-owner@lists.boost.org
+X-BeenThere: boost@lists.boost.org
+X-Mailman-Version: 2.0.8
+Precedence: bulk
+List-Help: <mailto:boost-request@lists.boost.org?subject=help>
+List-Post: <mailto:boost@lists.boost.org>
+List-Subscribe: <http://lists.boost.org/mailman/listinfo.cgi/boost>,
+ <mailto:boost-request@lists.boost.org?subject=subscribe>
+List-Id: Boost mailing list <boost.lists.boost.org>
+List-Unsubscribe: <http://lists.boost.org/mailman/listinfo.cgi/boost>,
+ <mailto:boost-request@lists.boost.org?subject=unsubscribe>
+List-Archive: <http://lists.boost.org/MailArchives/boost/>
+
+Message from yahoo.com.
+Unable to deliver message to the following address(es).
+
+<agarciamartiartu@yahoo.es>:
+Sorry, your message to agarciamartiartu@yahoo.es cannot be delivered. This account is over quota.
+
+<open00now@yahoo.co.uk>:
+Sorry, your message to open00now@yahoo.co.uk cannot be delivered. This account is over quota.
+
+--- Original message follows.
+
+X-Track: 0: 100
+Return-Path: <boost-admin@lists.boost.org>
+Received: from milliways.osl.iu.edu (129.79.245.239)
+ by mta468.mail.yahoo.com with SMTP; 03 Apr 2002 06:44:13 -0800 (PST)
+Received: from milliways.osl.iu.edu (localhost [127.0.0.1])
+ by milliways.osl.iu.edu (8.11.6/8.11.6/IUCS_2.44) with ESMTP id g33EgcA22988;
+ Wed, 3 Apr 2002 09:42:38 -0500
+Received: from mail2.commerzbank.com (mail2.commerzbank.com [212.149.48.101])
+ by milliways.osl.iu.edu (8.11.6/8.11.6/IUCS_2.44) with ESMTP id g33EciA22890
+ for <boost@lists.boost.org>; Wed, 3 Apr 2002 09:38:44 -0500
+Received: from sv016317.exchange.commerzbank.com (sendmail.commerzbank.com [172.16.71.150])
+ by mail2.commerzbank.com (Commerzbank Mail-System) with ESMTP id 38105116C
+ for <boost@lists.boost.org>; Wed, 3 Apr 2002 16:35:15 +0200 (CEST)
+Received: by sv016317.exchange.commerzbank.com with Internet Mail Service (5.5.2653.19)
+ id <2GBLGLD2>; Wed, 3 Apr 2002 16:37:33 +0200
+Message-ID: <CD3F0650BD65D31191BF0008C75D8DBD0300F66F@SV018443>
+From: "Hoeffner, Detlef" <Detlef.Hoeffner@partner.commerzbank.com>
+To: "'boost@lists.boost.org'" <boost@lists.boost.org>
+Subject: RE: [boost] Thread locals
+MIME-Version: 1.0
+X-Mailer: Internet Mail Service (5.5.2653.19)
+Content-Type: text/plain;
+ charset="iso-8859-1"
+Sender: boost-admin@lists.boost.org
+Errors-To: boost-admin@lists.boost.org
+X-BeenThere: boost@lists.boost.org
+X-Mailman-Version: 2.0.8
+Precedence: bulk
+Reply-To: boost@lists.boost.org
+List-Help: <mailto:boost-request@lists.boost.org?subject=help>
+List-Post: <mailto:boost@lists.boost.org>
+List-Subscribe: <http://lists.boost.org/mailman/listinfo.cgi/boost>,
+ <mailto:boost-request@lists.boost.org?subject=subscribe>
+List-Id: Boost mailing list <boost.lists.boost.org>
+List-Unsubscribe: <http://lists.boost.org/mailman/listinfo.cgi/boost>,
+ <mailto:boost-request@lists.boost.org?subject=unsubscribe>
+List-Archive: <http://lists.boost.org/MailArchives/boost/>
+Date: Wed, 3 Apr 2002 16:37:41 +0200
+
+
+> As a substitute, try using the comparison operator for the boost::thread
+> class. This can fill the gap in many (but not all) cases where you are
+> managing the set of threads yourself.
+
+I need this mainly for tracing purposes in spots where I have no knowledge
+of the current instance of thread. This does not seem to help me in that
+case.
+
+> On some platforms (i.e. pthreads), the "thread_id" is actually an opaque
+> type (pthread_t) rather than a numeric value, and I think that is why no
+> such operation is exposed in the current version of the library.
+
+It is however possible to provide a class threadid, that has dependent on
+the
+platform different members but provides operations as ==, !=,
+operator<<(ostream&, ), ... That would be fine to solve the problem.
+
+Regards
+
+Detlef
+
+-----Original Message-----
+From: Moore, Dave [mailto:dmoore@ashtontechgroup.com]
+Sent: Mittwoch, 3. April 2002 14:33
+To: 'boost@lists.boost.org'
+Subject: RE: [boost] Thread locals
+
+
+> -----Original Message-----
+> From: Hoeffner, Detlef
+> [mailto:Detlef.Hoeffner@partner.commerzbank.com]
+> Sent: Wednesday, April 03, 2002 6:59 AM
+> To: 'boost@lists.boost.org'
+> Subject: [boost] Thread locals
+>
+>
+> Hello all,
+>
+> I am replacing my thread abstraction with the thread package
+> from boost. It
+> is very nice but I am missing two things.
+>
+> The first is the possibility to get an identifier for the
+> current thread, a
+> thread id.
+
+As a substitute, try using the comparison operator for the boost::thread
+class. This can fill the gap in many (but not all) cases where you are
+managing the set of threads yourself.
+
+On some platforms (i.e. pthreads), the "thread_id" is actually an opaque
+type (pthread_t) rather than a numeric value, and I think that is why no
+such operation is exposed in the current version of the library.
+
+Regards,
+Dave
+
+
+_______________________________________________
+Unsubscribe & other changes:
+http://lists.boost.org/mailman/listinfo.cgi/boost
+_______________________________________________
+Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
+.
diff --git a/tests/bounces/yahoo_05.txt b/tests/bounces/yahoo_05.txt
new file mode 100644
index 00000000..56d1a301
--- /dev/null
+++ b/tests/bounces/yahoo_05.txt
@@ -0,0 +1,150 @@
+Return-Path: <boost-admin@lists.boost.org>
+Received: from mx04.mrf.mail.rcn.net ([207.172.4.53] [207.172.4.53])
+ by mta05.mrf.mail.rcn.net with ESMTP
+ id <20020403160106.EMCB19155.mta05.mrf.mail.rcn.net@mx04.mrf.mail.rcn.net>;
+ Wed, 3 Apr 2002 11:01:06 -0500
+Received: from milliways.osl.iu.edu ([129.79.245.239])
+ by mx04.mrf.mail.rcn.net with esmtp (Exim 3.35 #5)
+ id 16snC5-0003g7-00
+ for david.abrahams@rcn.com; Wed, 03 Apr 2002 11:01:06 -0500
+Received: from milliways.osl.iu.edu (localhost [127.0.0.1])
+ by milliways.osl.iu.edu (8.11.6/8.11.6/IUCS_2.44) with ESMTP id g33G10A24726;
+ Wed, 3 Apr 2002 11:01:00 -0500
+Received: from mta414.mail.yahoo.com (mta414.mail.yahoo.com [216.136.128.66])
+ by milliways.osl.iu.edu (8.11.6/8.11.6/IUCS_2.44) with SMTP id g33G02A24708
+ for <boost-admin@lists.boost.org>; Wed, 3 Apr 2002 11:00:03 -0500
+Date: Wed, 3 Apr 2002 11:00:03 -0500
+Message-Id: <200204031600.g33G02A24708@milliways.osl.iu.edu>
+From: MAILER-DAEMON@yahoo.com
+To: boost-admin@lists.boost.org
+X-Loop: MAILER-DAEMON@yahoo.com
+Subject: Delivery failure
+Sender: boost-owner@lists.boost.org
+Errors-To: boost-owner@lists.boost.org
+X-BeenThere: boost@lists.boost.org
+X-Mailman-Version: 2.0.8
+Precedence: bulk
+List-Help: <mailto:boost-request@lists.boost.org?subject=help>
+List-Post: <mailto:boost@lists.boost.org>
+List-Subscribe: <http://lists.boost.org/mailman/listinfo.cgi/boost>,
+ <mailto:boost-request@lists.boost.org?subject=subscribe>
+List-Id: Boost mailing list <boost.lists.boost.org>
+List-Unsubscribe: <http://lists.boost.org/mailman/listinfo.cgi/boost>,
+ <mailto:boost-request@lists.boost.org?subject=unsubscribe>
+List-Archive: <http://lists.boost.org/MailArchives/boost/>
+
+Message from yahoo.com.
+Unable to deliver message to the following address(es).
+
+<cresus22@yahoo.com>:
+Sorry your message to cresus22@yahoo.com cannot be delivered. This account has been disabled or discontinued.
+
+<jjb700@yahoo.com>:
+Sorry your message to jjb700@yahoo.com cannot be delivered. This account has been disabled or discontinued.
+
+--- Original message follows.
+
+X-Track: 1: 40
+Return-Path: <boost-admin@lists.boost.org>
+Received: from milliways.osl.iu.edu (129.79.245.239)
+ by mta414.mail.yahoo.com with SMTP; 03 Apr 2002 07:59:49 -0800 (PST)
+Received: from milliways.osl.iu.edu (localhost [127.0.0.1])
+ by milliways.osl.iu.edu (8.11.6/8.11.6/IUCS_2.44) with ESMTP id g33EduA22960;
+ Wed, 3 Apr 2002 09:39:56 -0500
+Received: from mail2.commerzbank.com (mail2.commerzbank.com [212.149.48.101])
+ by milliways.osl.iu.edu (8.11.6/8.11.6/IUCS_2.44) with ESMTP id g33EciA22890
+ for <boost@lists.boost.org>; Wed, 3 Apr 2002 09:38:44 -0500
+Received: from sv016317.exchange.commerzbank.com (sendmail.commerzbank.com [172.16.71.150])
+ by mail2.commerzbank.com (Commerzbank Mail-System) with ESMTP id 38105116C
+ for <boost@lists.boost.org>; Wed, 3 Apr 2002 16:35:15 +0200 (CEST)
+Received: by sv016317.exchange.commerzbank.com with Internet Mail Service (5.5.2653.19)
+ id <2GBLGLD2>; Wed, 3 Apr 2002 16:37:33 +0200
+Message-ID: <CD3F0650BD65D31191BF0008C75D8DBD0300F66F@SV018443>
+From: "Hoeffner, Detlef" <Detlef.Hoeffner@partner.commerzbank.com>
+To: "'boost@lists.boost.org'" <boost@lists.boost.org>
+Subject: RE: [boost] Thread locals
+MIME-Version: 1.0
+X-Mailer: Internet Mail Service (5.5.2653.19)
+Content-Type: text/plain;
+ charset="iso-8859-1"
+Sender: boost-admin@lists.boost.org
+Errors-To: boost-admin@lists.boost.org
+X-BeenThere: boost@lists.boost.org
+X-Mailman-Version: 2.0.8
+Precedence: bulk
+Reply-To: boost@lists.boost.org
+List-Help: <mailto:boost-request@lists.boost.org?subject=help>
+List-Post: <mailto:boost@lists.boost.org>
+List-Subscribe: <http://lists.boost.org/mailman/listinfo.cgi/boost>,
+ <mailto:boost-request@lists.boost.org?subject=subscribe>
+List-Id: Boost mailing list <boost.lists.boost.org>
+List-Unsubscribe: <http://lists.boost.org/mailman/listinfo.cgi/boost>,
+ <mailto:boost-request@lists.boost.org?subject=unsubscribe>
+List-Archive: <http://lists.boost.org/MailArchives/boost/>
+Date: Wed, 3 Apr 2002 16:37:41 +0200
+
+
+> As a substitute, try using the comparison operator for the boost::thread
+> class. This can fill the gap in many (but not all) cases where you are
+> managing the set of threads yourself.
+
+I need this mainly for tracing purposes in spots where I have no knowledge
+of the current instance of thread. This does not seem to help me in that
+case.
+
+> On some platforms (i.e. pthreads), the "thread_id" is actually an opaque
+> type (pthread_t) rather than a numeric value, and I think that is why no
+> such operation is exposed in the current version of the library.
+
+It is however possible to provide a class threadid, that has dependent on
+the
+platform different members but provides operations as ==, !=,
+operator<<(ostream&, ), ... That would be fine to solve the problem.
+
+Regards
+
+Detlef
+
+-----Original Message-----
+From: Moore, Dave [mailto:dmoore@ashtontechgroup.com]
+Sent: Mittwoch, 3. April 2002 14:33
+To: 'boost@lists.boost.org'
+Subject: RE: [boost] Thread locals
+
+
+> -----Original Message-----
+> From: Hoeffner, Detlef
+> [mailto:Detlef.Hoeffner@partner.commerzbank.com]
+> Sent: Wednesday, April 03, 2002 6:59 AM
+> To: 'boost@lists.boost.org'
+> Subject: [boost] Thread locals
+>
+>
+> Hello all,
+>
+> I am replacing my thread abstraction with the thread package
+> from boost. It
+> is very nice but I am missing two things.
+>
+> The first is the possibility to get an identifier for the
+> current thread, a
+> thread id.
+
+As a substitute, try using the comparison operator for the boost::thread
+class. This can fill the gap in many (but not all) cases where you are
+managing the set of threads yourself.
+
+On some platforms (i.e. pthreads), the "thread_id" is actually an opaque
+type (pthread_t) rather than a numeric value, and I think that is why no
+such operation is exposed in the current version of the library.
+
+Regards,
+Dave
+
+
+_______________________________________________
+Unsubscribe & other changes:
+http://lists.boost.org/mailman/listinfo.cgi/boost
+_______________________________________________
+Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
+.
diff --git a/tests/bounces/yahoo_06.txt b/tests/bounces/yahoo_06.txt
new file mode 100644
index 00000000..16c04fd6
--- /dev/null
+++ b/tests/bounces/yahoo_06.txt
@@ -0,0 +1,105 @@
+Return-Path: <boost-admin@lists.boost.org>
+Received: from mx04.mrf.mail.rcn.net ([207.172.4.53] [207.172.4.53])
+ by mta03.mrf.mail.rcn.net with ESMTP
+ id <20020403160604.WVKA16695.mta03.mrf.mail.rcn.net@mx04.mrf.mail.rcn.net>;
+ Wed, 3 Apr 2002 11:06:04 -0500
+Received: from milliways.osl.iu.edu ([129.79.245.239])
+ by mx04.mrf.mail.rcn.net with esmtp (Exim 3.35 #5)
+ id 16snGt-0005FB-00
+ for david.abrahams@rcn.com; Wed, 03 Apr 2002 11:06:04 -0500
+Received: from milliways.osl.iu.edu (localhost [127.0.0.1])
+ by milliways.osl.iu.edu (8.11.6/8.11.6/IUCS_2.44) with ESMTP id g33G61A24869;
+ Wed, 3 Apr 2002 11:06:01 -0500
+Received: from mta593.mail.yahoo.com (mta593.mail.yahoo.com [216.136.224.181])
+ by milliways.osl.iu.edu (8.11.6/8.11.6/IUCS_2.44) with SMTP id g33G5lA24845
+ for <boost-admin@lists.boost.org>; Wed, 3 Apr 2002 11:05:47 -0500
+Date: Wed, 3 Apr 2002 11:05:47 -0500
+Message-Id: <200204031605.g33G5lA24845@milliways.osl.iu.edu>
+From: MAILER-DAEMON@yahoo.com
+To: boost-admin@lists.boost.org
+X-Loop: MAILER-DAEMON@yahoo.com
+Subject: Delivery failure
+Sender: boost-owner@lists.boost.org
+Errors-To: boost-owner@lists.boost.org
+X-BeenThere: boost@lists.boost.org
+X-Mailman-Version: 2.0.8
+Precedence: bulk
+List-Help: <mailto:boost-request@lists.boost.org?subject=help>
+List-Post: <mailto:boost@lists.boost.org>
+List-Subscribe: <http://lists.boost.org/mailman/listinfo.cgi/boost>,
+ <mailto:boost-request@lists.boost.org?subject=subscribe>
+List-Id: Boost mailing list <boost.lists.boost.org>
+List-Unsubscribe: <http://lists.boost.org/mailman/listinfo.cgi/boost>,
+ <mailto:boost-request@lists.boost.org?subject=unsubscribe>
+List-Archive: <http://lists.boost.org/MailArchives/boost/>
+
+Message from yahoo.com.
+Unable to deliver message to the following address(es).
+
+<andrew_polevoy@yahoo.com>:
+Sorry your message to andrew_polevoy@yahoo.com cannot be delivered. This account has been disabled or discontinued.
+
+<baruch_sterin@yahoo.com>:
+Sorry your message to baruch_sterin@yahoo.com cannot be delivered. This account has been disabled or discontinued.
+
+<rjhoeks@yahoo.com>:
+Sorry your message to rjhoeks@yahoo.com cannot be delivered. This account has been disabled or discontinued.
+
+<tritonrugger91@yahoo.com>:
+Sorry your message to tritonrugger91@yahoo.com cannot be delivered. This account has been disabled or discontinued.
+
+--- Original message follows.
+
+X-Track: 1: 40
+Return-Path: <boost-admin@lists.boost.org>
+Received: from milliways.osl.iu.edu (129.79.245.239)
+ by mta593.mail.yahoo.com with SMTP; 03 Apr 2002 08:03:49 -0800 (PST)
+Received: from milliways.osl.iu.edu (localhost [127.0.0.1])
+ by milliways.osl.iu.edu (8.11.6/8.11.6/IUCS_2.44) with ESMTP id g33D6PA21151;
+ Wed, 3 Apr 2002 08:06:25 -0500
+Received: from exchsrv.uttc-utc.com ([63.80.119.4])
+ by milliways.osl.iu.edu (8.11.6/8.11.6/IUCS_2.44) with ESMTP id g33D42A21076
+ for <boost@lists.boost.org>; Wed, 3 Apr 2002 08:04:03 -0500
+Received: by EXCHSRV with Internet Mail Service (5.5.2653.19)
+ id <G9MVAA8Z>; Wed, 3 Apr 2002 08:03:59 -0500
+Message-ID: <2FE8C75C7A06D4118BB50008C7F7E83103D5DF@EXCHSRV>
+From: "Moore, Dave" <dmoore@ashtontechgroup.com>
+To: "'boost@lists.boost.org'" <boost@lists.boost.org>
+MIME-Version: 1.0
+X-Mailer: Internet Mail Service (5.5.2653.19)
+Content-Type: text/plain;
+ charset="iso-8859-1"
+Subject: [boost] OT(?) Top Posting, Discussion Threads, and Outlook/Exchange
+Sender: boost-admin@lists.boost.org
+Errors-To: boost-admin@lists.boost.org
+X-BeenThere: boost@lists.boost.org
+X-Mailman-Version: 2.0.8
+Precedence: bulk
+Reply-To: boost@lists.boost.org
+List-Help: <mailto:boost-request@lists.boost.org?subject=help>
+List-Post: <mailto:boost@lists.boost.org>
+List-Subscribe: <http://lists.boost.org/mailman/listinfo.cgi/boost>,
+ <mailto:boost-request@lists.boost.org?subject=subscribe>
+List-Id: Boost mailing list <boost.lists.boost.org>
+List-Unsubscribe: <http://lists.boost.org/mailman/listinfo.cgi/boost>,
+ <mailto:boost-request@lists.boost.org?subject=unsubscribe>
+List-Archive: <http://lists.boost.org/MailArchives/boost/>
+Date: Wed, 3 Apr 2002 08:03:58 -0500
+
+Since the recent discussion-discussion, I just tried to reply the "right"
+way in "RE: [boost] Thread locals", only to see my efforts cheerfully
+ignored by the Mailing List archive.
+(http://lists.boost.org/MailArchives/boost/)
+
+I am stuck with Outlook 2000 + Exchange 5.5 here at work, but have some
+considerable pull with the Exchange Admin.
+
+I notice that my replies have the "References:" field stripped off. Any
+Boosters successfully using this email combination, preserving the
+references field?
+
+Thanks, and sorry for the noise.
+Dave
+_______________________________________________
+Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
+.
diff --git a/tests/bounces/yahoo_07.txt b/tests/bounces/yahoo_07.txt
new file mode 100644
index 00000000..1f35e70f
--- /dev/null
+++ b/tests/bounces/yahoo_07.txt
@@ -0,0 +1,112 @@
+Return-Path: <boost-admin@lists.boost.org>
+Received: from mx04.mrf.mail.rcn.net ([207.172.4.53] [207.172.4.53])
+ by mta05.mrf.mail.rcn.net with ESMTP
+ id <20020403160902.ETVB19155.mta05.mrf.mail.rcn.net@mx04.mrf.mail.rcn.net>;
+ Wed, 3 Apr 2002 11:09:02 -0500
+Received: from milliways.osl.iu.edu ([129.79.245.239])
+ by mx04.mrf.mail.rcn.net with esmtp (Exim 3.35 #5)
+ id 16snJm-00067W-00
+ for david.abrahams@rcn.com; Wed, 03 Apr 2002 11:09:02 -0500
+Received: from milliways.osl.iu.edu (localhost [127.0.0.1])
+ by milliways.osl.iu.edu (8.11.6/8.11.6/IUCS_2.44) with ESMTP id g33G90A24959;
+ Wed, 3 Apr 2002 11:09:00 -0500
+Received: from mta532.mail.yahoo.com (mta532.mail.yahoo.com [216.136.129.204])
+ by milliways.osl.iu.edu (8.11.6/8.11.6/IUCS_2.44) with SMTP id g33G84A24927
+ for <boost-admin@lists.boost.org>; Wed, 3 Apr 2002 11:08:05 -0500
+Date: Wed, 3 Apr 2002 11:08:05 -0500
+Message-Id: <200204031608.g33G84A24927@milliways.osl.iu.edu>
+From: MAILER-DAEMON@yahoo.com
+To: boost-admin@lists.boost.org
+X-Loop: MAILER-DAEMON@yahoo.com
+Subject: Delivery failure
+Sender: boost-owner@lists.boost.org
+Errors-To: boost-owner@lists.boost.org
+X-BeenThere: boost@lists.boost.org
+X-Mailman-Version: 2.0.8
+Precedence: bulk
+List-Help: <mailto:boost-request@lists.boost.org?subject=help>
+List-Post: <mailto:boost@lists.boost.org>
+List-Subscribe: <http://lists.boost.org/mailman/listinfo.cgi/boost>,
+ <mailto:boost-request@lists.boost.org?subject=subscribe>
+List-Id: Boost mailing list <boost.lists.boost.org>
+List-Unsubscribe: <http://lists.boost.org/mailman/listinfo.cgi/boost>,
+ <mailto:boost-request@lists.boost.org?subject=unsubscribe>
+List-Archive: <http://lists.boost.org/MailArchives/boost/>
+
+Message from yahoo.com.
+Unable to deliver message to the following address(es).
+
+<mark1960_1998@yahoo.com>:
+Sorry your message to mark1960_1998@yahoo.com cannot be delivered. This account has been disabled or discontinued.
+
+<ovchenkov@yahoo.com>:
+Sorry your message to ovchenkov@yahoo.com cannot be delivered. This account has been disabled or discontinued.
+
+<tsa412@yahoo.com>:
+Sorry your message to tsa412@yahoo.com cannot be delivered. This account has been disabled or discontinued.
+
+<vaxheadroom@yahoo.com>:
+Sorry your message to vaxheadroom@yahoo.com cannot be delivered. This account has been disabled or discontinued.
+
+--- Original message follows.
+
+X-Track: 1: 40
+Return-Path: <boost-admin@lists.boost.org>
+Received: from 129.79.245.239 (EHLO milliways.osl.iu.edu) (129.79.245.239)
+ by mta532.mail.yahoo.com with SMTP; 03 Apr 2002 08:06:35 -0800 (PST)
+Received: from milliways.osl.iu.edu (localhost [127.0.0.1])
+ by milliways.osl.iu.edu (8.11.6/8.11.6/IUCS_2.44) with ESMTP id g33DItA21480;
+ Wed, 3 Apr 2002 08:18:55 -0500
+Received: from hotmail.com (f110.law10.hotmail.com [64.4.15.110])
+ by milliways.osl.iu.edu (8.11.6/8.11.6/IUCS_2.44) with ESMTP id g33DH7A21450
+ for <boost@lists.boost.org>; Wed, 3 Apr 2002 08:17:07 -0500
+Received: from mail pickup service by hotmail.com with Microsoft SMTPSVC;
+ Wed, 3 Apr 2002 05:16:59 -0800
+Received: from 194.100.118.234 by lw10fd.law10.hotmail.msn.com with HTTP;
+ Wed, 03 Apr 2002 13:16:59 GMT
+X-Originating-IP: [194.100.118.234]
+From: "Vesa Karvonen" <vesa_karvonen@hotmail.com>
+To: boost@lists.boost.org
+Subject: Re: [boost] [Type Traits] Patch for type_with_alignment
+Mime-Version: 1.0
+Content-Type: text/plain; format=flowed
+Message-ID: <F110iKiIcN3VknIDBoH00014513@hotmail.com>
+X-OriginalArrivalTime: 03 Apr 2002 13:16:59.0830 (UTC) FILETIME=[D63C7D60:01C1DB11]
+Sender: boost-admin@lists.boost.org
+Errors-To: boost-admin@lists.boost.org
+X-BeenThere: boost@lists.boost.org
+X-Mailman-Version: 2.0.8
+Precedence: bulk
+Reply-To: boost@lists.boost.org
+List-Help: <mailto:boost-request@lists.boost.org?subject=help>
+List-Post: <mailto:boost@lists.boost.org>
+List-Subscribe: <http://lists.boost.org/mailman/listinfo.cgi/boost>,
+ <mailto:boost-request@lists.boost.org?subject=subscribe>
+List-Id: Boost mailing list <boost.lists.boost.org>
+List-Unsubscribe: <http://lists.boost.org/mailman/listinfo.cgi/boost>,
+ <mailto:boost-request@lists.boost.org?subject=unsubscribe>
+List-Archive: <http://lists.boost.org/MailArchives/boost/>
+Date: Wed, 03 Apr 2002 16:16:59 +0300
+
+>On Fri, 29 Mar 2002, David Abrahams wrote:
+>>Are you planning to apply this patch?
+>>
+>>-Dave
+>
+>Yes, but I can't right now. I'll apply it tomorrow if it hasn't already
+>been done.
+>
+> Doug
+
+How is the patch coming up (or did I miss some post on this subject)?
+
+I'm also working on something that could use type_with_alignment<>.
+
+
+_________________________________________________________________
+Join the world’s largest e-mail service with MSN Hotmail.
+http://www.hotmail.com
+
+_______________________________________________
+Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
+.
diff --git a/tests/bounces/yahoo_08.txt b/tests/bounces/yahoo_08.txt
new file mode 100644
index 00000000..c531cef9
--- /dev/null
+++ b/tests/bounces/yahoo_08.txt
@@ -0,0 +1,129 @@
+Return-Path: <boost-admin@lists.boost.org>
+Received: from mx04.mrf.mail.rcn.net ([207.172.4.53] [207.172.4.53])
+ by mta05.mrf.mail.rcn.net with ESMTP
+ id <20020403162905.FMNL19155.mta05.mrf.mail.rcn.net@mx04.mrf.mail.rcn.net>;
+ Wed, 3 Apr 2002 11:29:05 -0500
+Received: from milliways.osl.iu.edu ([129.79.245.239])
+ by mx04.mrf.mail.rcn.net with esmtp (Exim 3.35 #5)
+ id 16snd9-0004Fd-00
+ for david.abrahams@rcn.com; Wed, 03 Apr 2002 11:29:04 -0500
+Received: from milliways.osl.iu.edu (localhost [127.0.0.1])
+ by milliways.osl.iu.edu (8.11.6/8.11.6/IUCS_2.44) with ESMTP id g33GT1A25554;
+ Wed, 3 Apr 2002 11:29:01 -0500
+Received: from mta551.mail.yahoo.com (mta551.mail.yahoo.com [216.136.172.80])
+ by milliways.osl.iu.edu (8.11.6/8.11.6/IUCS_2.44) with SMTP id g33GSmA25536
+ for <boost-admin@lists.boost.org>; Wed, 3 Apr 2002 11:28:49 -0500
+Date: Wed, 3 Apr 2002 11:28:49 -0500
+Message-Id: <200204031628.g33GSmA25536@milliways.osl.iu.edu>
+From: MAILER-DAEMON@yahoo.com
+To: boost-admin@lists.boost.org
+X-Loop: MAILER-DAEMON@yahoo.com
+Subject: Delivery failure
+Sender: boost-owner@lists.boost.org
+Errors-To: boost-owner@lists.boost.org
+X-BeenThere: boost@lists.boost.org
+X-Mailman-Version: 2.0.8
+Precedence: bulk
+List-Help: <mailto:boost-request@lists.boost.org?subject=help>
+List-Post: <mailto:boost@lists.boost.org>
+List-Subscribe: <http://lists.boost.org/mailman/listinfo.cgi/boost>,
+ <mailto:boost-request@lists.boost.org?subject=subscribe>
+List-Id: Boost mailing list <boost.lists.boost.org>
+List-Unsubscribe: <http://lists.boost.org/mailman/listinfo.cgi/boost>,
+ <mailto:boost-request@lists.boost.org?subject=unsubscribe>
+List-Archive: <http://lists.boost.org/MailArchives/boost/>
+
+Message from yahoo.com.
+Unable to deliver message to the following address(es).
+
+<chatrathis@yahoo.com>:
+Sorry your message to chatrathis@yahoo.com cannot be delivered. This account has been disabled or discontinued.
+
+<crownjules01@yahoo.com>:
+Sorry your message to crownjules01@yahoo.com cannot be delivered. This account has been disabled or discontinued.
+
+<cwl_999@yahoo.com>:
+Sorry your message to cwl_999@yahoo.com cannot be delivered. This account has been disabled or discontinued.
+
+<eichaiwiu@yahoo.com>:
+Sorry your message to eichaiwiu@yahoo.com cannot be delivered. This account has been disabled or discontinued.
+
+<rjhoeks@yahoo.com>:
+Sorry your message to rjhoeks@yahoo.com cannot be delivered. This account has been disabled or discontinued.
+
+<yuli_kolesnikov@yahoo.com>:
+Sorry your message to yuli_kolesnikov@yahoo.com cannot be delivered. This account has been disabled or discontinued.
+
+--- Original message follows.
+
+X-Track: 1: 40
+Return-Path: <boost-admin@lists.boost.org>
+Received: from milliways.osl.iu.edu (129.79.245.239)
+ by mta551.mail.yahoo.com with SMTP; 03 Apr 2002 08:22:08 -0800 (PST)
+Received: from milliways.osl.iu.edu (localhost [127.0.0.1])
+ by milliways.osl.iu.edu (8.11.6/8.11.6/IUCS_2.44) with ESMTP id g33GJwA25252;
+ Wed, 3 Apr 2002 11:19:58 -0500
+Received: from mailout6-0.nyroc.rr.com (mailout6-0.nyroc.rr.com [24.92.226.125])
+ by milliways.osl.iu.edu (8.11.6/8.11.6/IUCS_2.44) with ESMTP id g33GInA25230
+ for <boost@lists.boost.org>; Wed, 3 Apr 2002 11:18:49 -0500
+Received: from there (alb-66-24-181-181.nycap.rr.com [66.24.181.181])
+ by mailout6-0.nyroc.rr.com (8.11.6/Road Runner 1.12) with SMTP id g33GIko18895
+ for <boost@lists.boost.org>; Wed, 3 Apr 2002 11:18:46 -0500 (EST)
+Message-Id: <200204031618.g33GIko18895@mailout6-0.nyroc.rr.com>
+Content-Type: text/plain;
+ charset="iso-8859-1"
+From: Douglas Gregor <gregod@cs.rpi.edu>
+Organization: Rensselaer Polytechnic Institute
+To: boost@lists.boost.org
+Subject: Re: [boost] [Type Traits] Patch for type_with_alignment
+X-Mailer: KMail [version 1.3.2]
+References: <F128rzvsTDWWcuZcGwM00012d40@hotmail.com>
+In-Reply-To: <F128rzvsTDWWcuZcGwM00012d40@hotmail.com>
+MIME-Version: 1.0
+Content-Transfer-Encoding: 8bit
+Sender: boost-admin@lists.boost.org
+Errors-To: boost-admin@lists.boost.org
+X-BeenThere: boost@lists.boost.org
+X-Mailman-Version: 2.0.8
+Precedence: bulk
+Reply-To: boost@lists.boost.org
+X-Reply-To: gregod@cs.rpi.edu
+List-Help: <mailto:boost-request@lists.boost.org?subject=help>
+List-Post: <mailto:boost@lists.boost.org>
+List-Subscribe: <http://lists.boost.org/mailman/listinfo.cgi/boost>,
+ <mailto:boost-request@lists.boost.org?subject=subscribe>
+List-Id: Boost mailing list <boost.lists.boost.org>
+List-Unsubscribe: <http://lists.boost.org/mailman/listinfo.cgi/boost>,
+ <mailto:boost-request@lists.boost.org?subject=unsubscribe>
+List-Archive: <http://lists.boost.org/MailArchives/boost/>
+Date: Wed, 3 Apr 2002 11:21:18 -0500
+
+On Wednesday 03 April 2002 10:34 am, you wrote:
+> Douglas Gregor:
+> >type_with_alignment<> is available in CVS.
+>
+> hmm... You are right, but it is in the compiler_supported_error_messages
+> branch. Is this intentional?
+
+It was a rogue sticky tag... type_with_alignment<> is now on the CVS main
+trunk, where it was supposed to be in the first place.
+
+> >I'm guessing we should also add aligned_storage somewhere, because I'm
+> >sure quite a few of us will use it:
+>
+> Good idea.
+>
+> >Maybe this belongs in utility/aligned_storage.hpp?
+>
+> I have a feeling that something like this should probably go somewhere
+> closer to <memory> rather than <utility>.
+
+<boost/memory.hpp>? I'd really like to have more than 6 lines in it, but we
+can do that. That'd probably be a good place for the small-string
+optimization allocator as well.
+
+ Doug
+_______________________________________________
+Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
+.
+
diff --git a/tests/bounces/yahoo_09.txt b/tests/bounces/yahoo_09.txt
new file mode 100644
index 00000000..f8067a5b
--- /dev/null
+++ b/tests/bounces/yahoo_09.txt
@@ -0,0 +1,165 @@
+Return-Path: <boost-admin@lists.boost.org>
+Received: from mx04.mrf.mail.rcn.net ([207.172.4.53] [207.172.4.53])
+ by mta01.mrf.mail.rcn.net with ESMTP
+ id <20020403190104.CHE29566.mta01.mrf.mail.rcn.net@mx04.mrf.mail.rcn.net>;
+ Wed, 3 Apr 2002 14:01:04 -0500
+Received: from milliways.osl.iu.edu ([129.79.245.239])
+ by mx04.mrf.mail.rcn.net with esmtp (Exim 3.35 #5)
+ id 16sq0F-0005l5-00
+ for david.abrahams@rcn.com; Wed, 03 Apr 2002 14:01:03 -0500
+Received: from milliways.osl.iu.edu (localhost [127.0.0.1])
+ by milliways.osl.iu.edu (8.11.6/8.11.6/IUCS_2.44) with ESMTP id g33J11A07189;
+ Wed, 3 Apr 2002 14:01:01 -0500
+Received: from mta446.mail.yahoo.com (mta446.mail.yahoo.com [216.136.129.101])
+ by milliways.osl.iu.edu (8.11.6/8.11.6/IUCS_2.44) with SMTP id g33J04A07150
+ for <boost-admin@lists.boost.org>; Wed, 3 Apr 2002 14:00:05 -0500
+Date: Wed, 3 Apr 2002 14:00:05 -0500
+Message-Id: <200204031900.g33J04A07150@milliways.osl.iu.edu>
+From: MAILER-DAEMON@yahoo.com
+To: boost-admin@lists.boost.org
+X-Loop: MAILER-DAEMON@yahoo.com
+Subject: Delivery failure
+Sender: boost-owner@lists.boost.org
+Errors-To: boost-owner@lists.boost.org
+X-BeenThere: boost@lists.boost.org
+X-Mailman-Version: 2.0.8
+Precedence: bulk
+List-Help: <mailto:boost-request@lists.boost.org?subject=help>
+List-Post: <mailto:boost@lists.boost.org>
+List-Subscribe: <http://lists.boost.org/mailman/listinfo.cgi/boost>,
+ <mailto:boost-request@lists.boost.org?subject=subscribe>
+List-Id: Boost mailing list <boost.lists.boost.org>
+List-Unsubscribe: <http://lists.boost.org/mailman/listinfo.cgi/boost>,
+ <mailto:boost-request@lists.boost.org?subject=unsubscribe>
+List-Archive: <http://lists.boost.org/MailArchives/boost/>
+
+Message from yahoo.com.
+Unable to deliver message to the following address(es).
+
+<hankel_o_fung@yahoo.com>:
+Sorry your message to hankel_o_fung@yahoo.com cannot be delivered. This account has been disabled or discontinued.
+
+<ultravirus2001@yahoo.com>:
+Sorry your message to ultravirus2001@yahoo.com cannot be delivered. This account has been disabled or discontinued.
+
+--- Original message follows.
+
+The original message is over 5K. Message truncated.
+
+X-Track: 1: 100
+Return-Path: <boost-admin@lists.boost.org>
+Received: from milliways.osl.iu.edu (129.79.245.239)
+ by mta446.mail.yahoo.com with SMTP; 03 Apr 2002 10:59:57 -0800 (PST)
+Received: from milliways.osl.iu.edu (localhost [127.0.0.1])
+ by milliways.osl.iu.edu (8.11.6/8.11.6/IUCS_2.44) with ESMTP id g33HexA27227;
+ Wed, 3 Apr 2002 12:40:59 -0500
+Received: from smtp016.mail.yahoo.com (smtp016.mail.yahoo.com [216.136.174.113])
+ by milliways.osl.iu.edu (8.11.6/8.11.6/IUCS_2.44) with SMTP id g33HcwA27186
+ for <boost@lists.boost.org>; Wed, 3 Apr 2002 12:38:58 -0500
+Received: from ppp-1-53.chel-5800-8.access.uk.tiscali.com (HELO albert) (RaoulGough@212.159.169.53 with login)
+ by smtp.mail.vip.sc5.yahoo.com with SMTP; 3 Apr 2002 17:38:54 -0000
+Message-ID: <001601c1db36$6da28950$0100a8c0@albert>
+From: "Raoul Gough" <RaoulGough@yahoo.co.uk>
+To: <boost@lists.boost.org>
+References: <200204011702.g31H2eA04494@milliways.osl.iu.edu>
+MIME-Version: 1.0
+Content-Type: text/plain;
+ charset="iso-8859-1"
+Content-Transfer-Encoding: 7bit
+X-Priority: 3
+X-MSMail-Priority: Normal
+X-Mailer: Microsoft Outlook Express 6.00.2600.0000
+X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
+Subject: [boost] Re: boost::weak_ptr suggestions
+Sender: boost-admin@lists.boost.org
+Errors-To: boost-admin@lists.boost.org
+X-BeenThere: boost@lists.boost.org
+X-Mailman-Version: 2.0.8
+Precedence: bulk
+Reply-To: boost@lists.boost.org
+List-Help: <mailto:boost-request@lists.boost.org?subject=help>
+List-Post: <mailto:boost@lists.boost.org>
+List-Subscribe: <http://lists.boost.org/mailman/listinfo.cgi/boost>,
+ <mailto:boost-request@lists.boost.org?subject=subscribe>
+List-Id: Boost mailing list <boost.lists.boost.org>
+List-Unsubscribe: <http://lists.boost.org/mailman/listinfo.cgi/boost>,
+ <mailto:boost-request@lists.boost.org?subject=unsubscribe>
+List-Archive: <http://lists.boost.org/MailArchives/boost/>
+Date: Wed, 3 Apr 2002 18:37:55 +0100
+
+> From: "Peter Dimov" <pdimov@mmltd.net>
+> To: <boost@lists.boost.org>
+> Subject: Re: [boost] boost::weak_ptr suggestions
+> Date: Mon, 1 Apr 2002 17:31:05 +0300
+> Organization: Multi Media Ltd.
+> Reply-To: boost@lists.boost.org
+>
+> From: "Raoul Gough" <RaoulGough@yahoo.co.uk>
+[snip]
+> > Secondly, I believe it would be better for the get() method to throw or
+> > assert when called on an invalidated pointer, instead of transparently
+> > returning 0. In my opinion, there is a fundamental difference between
+the
+> > two states (null and invalid) which is not observable with the current
+> > interface. The addition of a member function like "bool is_valid()
+const;"
+> > would also allow the user code to decide how to deal with an invalid
+> > pointer, instead of merging the two distinct states into the one (null)
+> > state.
+>
+> Right again. However, the primary methods of accessing a weak_ptr are (1)
+> constructing a shared_ptr (which does throw) and (2) make_shared. get()
+has
+> been retained for efficiency but is not recommended (in multithreaded
+> programs.)
+
+So why the difference in error semantics between the single and
+multi-threaded idioms? For example, if I converted single-threaded code that
+uses get() to thread-safe code using make_shared, I also get changed
+semantics for the invalid pointer case.
+
+Incidentally, it looks like the use_count member function can determine
+indirectly whether the target still exists or not. It seems a bit obscure
+though, seeing as the reference count is really an implementation detail and
+distinct from the concept of null/valid/invalid.
+
+>
+> > The big advantage of considering invalid.get() an error is that code
+which
+> > then works without error using weak_ptr would have *exactly* unchanged
+> > semantics using a plain pointer replacement. This allows (for example) a
+> > debug build/release build choice between weak_ptr<T> and T* for
+> performance
+> > reasons. If weak_ptr<T> silently returns null on invalid pointers, then
+> this
+> > guarantee cannot be made - what would be undefined use on a plain
+pointer
+> is
+> > not detected by the weak_ptr.
+>
+> Interesting point. You can write your own get() that does what you want:
+>
+> T * get(weak_ptr<T> const & p)
+> {
+> return shared_ptr<T>(p).get();
+> }
+>
+> but it's not as efficient as a throwing get(). Most people seem to prefer
+> the current get() semantics, though, where 0 is returned.
+
+Well, I can understand that point of view as well - either the weak pointer
+has a valid target object or not (in which case null or deleted doesn't
+really matter). However, my use of a smart weak pointer is really as a
+debugging aid, so I would like the error to be detected as soon as possible
+(and distinguished from a null-pointer assertion or SEGV). Short of adding a
+policy class template parameter, it would be easy to add a new member
+function which does get() with severe checking - along the lines of
+vector.at versus vector.operator[]. Just an idea.
+
+BTW, am I right in thinking that sharede_ptr always maintains an extra weak
+reference counter? I mean, even if my code doesn't use weak_ptr, shared_ptr
+still has to maintain the extra counter, right? That, combined with the
+*** MESSAGE TRUNCATED ***
+
+
+.
diff --git a/tests/bounces/yale_01.txt b/tests/bounces/yale_01.txt
new file mode 100644
index 00000000..7be4754e
--- /dev/null
+++ b/tests/bounces/yale_01.txt
@@ -0,0 +1,422 @@
+From VM Tue Dec 26 22:41:08 2000
+Return-Path: <mailman-users-admin@python.org>
+Received: from ns2.digicool.com ([216.164.72.2] verified)
+ by digicool.com (CommuniGate Pro SMTP 3.3.1)
+ with ESMTP id 400038 for xxxxx@mail.digicool.com; Tue, 26 Dec 2000 18:41:55 -0500
+Received: from mail.python.org (starship.python.net [63.102.49.30])
+ by ns2.digicool.com (8.9.3/8.9.3) with ESMTP id SAA03359
+ for <xxxxx@digicool.com>; Tue, 26 Dec 2000 18:41:47 -0500
+Received: from ns1.zope.org (localhost.localdomain [127.0.0.1])
+ by mail.python.org (Postfix) with ESMTP id DC80BE904
+ for <xxxxx@digicool.com>; Tue, 26 Dec 2000 13:27:01 -0500 (EST)
+Delivered-To: mm+mailman-users-admin@python.org
+Received: from mr2.its.yale.edu (mr2.its.yale.edu [130.132.21.43])
+ by mail.python.org (Postfix) with ESMTP id E27E8E904
+ for <mailman-users-admin@python.org>; Tue, 26 Dec 2000 13:26:19 -0500 (EST)
+Received: (from mailnull@localhost)
+ by mr2.its.yale.edu (8.8.8/8.8.8) id NAA14658;
+ Tue, 26 Dec 2000 13:26:18 -0500 (EST)
+Message-Id: <200012261826.NAA14658@mr2.its.yale.edu>
+Errors-To: mailman-users-owner@python.org
+Precedence: bulk
+List-Help: <mailto:mailman-users-request@python.org?subject=help>
+List-Post: <mailto:mailman-users@python.org>
+List-Subscribe: <http://www.python.org/mailman/listinfo/mailman-users>,
+ <mailto:mailman-users-request@python.org?subject=subscribe>
+List-Id: Mailman mailing list management users <mailman-users.python.org>
+List-Unsubscribe: <http://www.python.org/mailman/listinfo/mailman-users>,
+ <mailto:mailman-users-request@python.org?subject=unsubscribe>
+List-Archive: <http://www.python.org/pipermail/mailman-users/>
+From: MAILER-DAEMON@mr2.its.yale.edu
+Sender: mailman-users-owner@python.org
+To: mailman-users-admin@python.org
+Subject: Returned mail - nameserver error report
+Date: Tue, 26 Dec 2000 13:26:18 -0500 (EST)
+X-BeenThere: mailman-users@python.org
+X-Mailman-Version: 2.0
+
+ --------Message not delivered to the following:
+
+ thomas.dtankengine No matches to nameserver query
+
+ --------Error Detail (phquery V4.1):
+
+ The message, "No matches to nameserver query," is generated whenever
+ Yale's on-line directory fails to locate either a ph alias, name or
+ nickname field that matches the supplied name. The usual causes are
+ typographical errors. Recommended action is to query the Yale on-line
+ directory prior to mailing using the ``ph -s directory.yale.edu NAME'',
+ ``finger NAME@directory.yale.edu'', or equivalent commands, or by
+ querying the Yale Directory within YaleInfo, where NAME is your party's
+ name, email alias, or nickname. If no lookup tools are available to
+ you, try sending to the most explicit form of the name, e.g., if
+ mike.fox@yale.edu fails, try michael.j.fox@yale.edu.
+
+ To reach a party that was formerly reachable by emailing NAME@yale.edu,
+ try emailing to NAME@cs.yale.edu instead.
+
+
+ --------Unsent Message below:
+
+Received: from mail.python.org ([63.102.49.30])
+ by mr2.its.yale.edu (8.8.8/8.8.8) with ESMTP id NAA14654
+ for <thomas.dtankengine@yale.edu>; Tue, 26 Dec 2000 13:26:17 -0500 (EST)
+Received: from ns1.zope.org (localhost.localdomain [127.0.0.1])
+ by mail.python.org (Postfix) with ESMTP
+ id 3DFEDE904; Tue, 26 Dec 2000 12:01:13 -0500 (EST)
+From: mailman-users-request@python.org
+Subject: Mailman-Users digest, Vol 1 #948 - 11 msgs
+Reply-To: mailman-users@python.org
+X-Mailer: Mailman v2.0
+MIME-version: 1.0
+Content-type: text/plain
+To: mailman-users@python.org
+Sender: mailman-users-admin@python.org
+Errors-To: mailman-users-admin@python.org
+X-BeenThere: mailman-users@python.org
+X-Mailman-Version: 2.0
+Precedence: bulk
+List-Help: <mailto:mailman-users-request@python.org?subject=help>
+List-Post: <mailto:mailman-users@python.org>
+List-Subscribe: <http://www.python.org/mailman/listinfo/mailman-users>,
+ <mailto:mailman-users-request@python.org?subject=subscribe>
+List-Id: Mailman mailing list management users <mailman-users.python.org>
+List-Unsubscribe: <http://www.python.org/mailman/listinfo/mailman-users>,
+ <mailto:mailman-users-request@python.org?subject=unsubscribe>
+List-Archive: <http://www.python.org/pipermail/mailman-users/>
+Message-Id: <20001226170113.3DFEDE904@mail.python.org>
+Date: Tue, 26 Dec 2000 12:01:13 -0500 (EST)
+
+Send Mailman-Users mailing list submissions to
+ mailman-users@python.org
+
+To subscribe or unsubscribe via the World Wide Web, visit
+ http://www.python.org/mailman/listinfo/mailman-users
+or, via email, send a message with subject or body 'help' to
+ mailman-users-request@python.org
+
+You can reach the person managing the list at
+ mailman-users-admin@python.org
+
+When replying, please edit your Subject line so it is more specific
+than "Re: Contents of Mailman-Users digest..."
+
+
+Today's Topics:
+
+ 1. Re: GID error (Bradley Leonard)
+ 2. Password bug in Mailman 2.0 (Juan Eliseo Carrasco Diaz)
+ 3. Re: Password bug in Mailman 2.0 (Bek Oberin)
+ 4. Re: Password bug in Mailman 2.0 (Juan Eliseo Carrasco Diaz)
+ 5. Re: Password bug in Mailman 2.0 (Bek Oberin)
+ 6. Re: Is this a bug, or just because I called it from an
+ unpriveledged account? (Dan Mick)
+ 7. Re: Re: Password bug in Mailman 2.0 (Dan Mick)
+ 8. Mailman 2.0 with Python 2.0 (Leonard Jacobs)
+ 9. Recovering/resetting a list admin password (Jim Trigg)
+ 10. (no subject) (Michael Albert)
+
+--__--__--
+
+Message: 1
+Date: Mon, 25 Dec 2000 14:05:42 -0500 (EST)
+Subject: Re: [Mailman-Users] GID error
+From: "Bradley Leonard" <bradley@stygianresearch.com>
+To: jaym@opensourcedirectory.com
+Cc: mailman-users@python.org
+Reply-To: bradley@stygianresearch.com
+
+If the rpm was compiled for RH 7 then its probably set to apache. If not,
+you need to find the src rpm and rebuild it using the --rebuilddb option.
+You'll need to pass in new options or change the spec file.
+
+Brad
+
+
+0> How would I set the GID for the cgi to execute. If I installed mailman
+> via rpm(on a slackware system)?
+>
+>
+> ------------------------------------------------------
+> Mailman-Users maillist - Mailman-Users@python.org
+> http://www.python.org/mailman/listinfo/mailman-users
+
+
+--
+Bradley Leonard (bradley@stygianresearch.com)
+Stygian Research (http://stygianresearch.com)
+
+Life is simple. We make it complicated.
+
+
+
+
+--__--__--
+
+Message: 2
+Date: Mon, 25 Dec 2000 22:48:07 -0500
+From: Juan Eliseo Carrasco Diaz <eliseocd@teleline.es>
+To: mailman-users@python.org
+Subject: [Mailman-Users] Password bug in Mailman 2.0
+
+ The Administrator name can be used as password to go into and change
+administrative and users options in theirs respective html pages.
+
+ It's this a bug?
+
+
+
+--__--__--
+
+Message: 3
+Date: Tue, 26 Dec 2000 11:49:21 +1100
+From: Bek Oberin <gossamer@tertius.net.au>
+To: Juan Eliseo Carrasco Diaz <eliseocd@teleline.es>
+Cc: mailman-users@python.org
+Subject: [Mailman-Users] Re: Password bug in Mailman 2.0
+
+Juan Eliseo Carrasco Diaz wrote:
+> The Administrator name can be used as password to go into and change
+> administrative and users options in theirs respective html pages.
+
+It's a feature.
+
+
+bekj
+
+--
+: --Hacker-Neophile-Eclectic-Geek-Grrl-Queer-Disabled-Boychick--
+: gossamer@tertius.net.au http://www.tertius.net.au/~gossamer/
+: Artificial Intelligence: the art of making computers that behave
+: like the ones in movies. -- Bill Bulko
+
+
+--__--__--
+
+Message: 4
+Date: Tue, 26 Dec 2000 01:21:42 -0500
+From: Juan Eliseo Carrasco Diaz <eliseocd@teleline.es>
+To: Bek Oberin <gossamer@tertius.net.au>
+Cc: mailman-users@python.org
+Subject: [Mailman-Users] Re: Password bug in Mailman 2.0
+
+Bek Oberin wrote:
+
+> Juan Eliseo Carrasco Diaz wrote:
+> > The Administrator name can be used as password to go into and change
+> > administrative and users options in theirs respective html pages.
+>
+> It's a feature.
+>
+> bekj
+>
+> --
+> : --Hacker-Neophile-Eclectic-Geek-Grrl-Queer-Disabled-Boychick--
+> : gossamer@tertius.net.au http://www.tertius.net.au/~gossamer/
+> : Artificial Intelligence: the art of making computers that behave
+> : like the ones in movies. -- Bill Bulko
+
+Ok, but It can be used by anyone, so a list member can modify the
+administrative options.
+
+ If it's a feature, I don't understand it.
+
+
+
+--__--__--
+
+Message: 5
+Date: Tue, 26 Dec 2000 12:23:42 +1100
+From: Bek Oberin <gossamer@tertius.net.au>
+To: Juan Eliseo Carrasco Diaz <eliseocd@teleline.es>
+Cc: mailman-users@python.org
+Subject: [Mailman-Users] Re: Password bug in Mailman 2.0
+
+Juan Eliseo Carrasco Diaz wrote:
+> Bek Oberin wrote:
+> > Juan Eliseo Carrasco Diaz wrote:
+> > > The Administrator name can be used as password to go into and change
+> > > administrative and users options in theirs respective html pages.
+> > It's a feature.
+> Ok, but It can be used by anyone, so a list member can modify the
+> administrative options.
+
+Hang on, I mis-read that as "The Administrator password ...".
+Their -name-? You mean their email address? There isn't
+anywhere in mailman that their name is used ....
+
+bekj
+
+--
+: --Hacker-Neophile-Eclectic-Geek-Grrl-Queer-Disabled-Boychick--
+: gossamer@tertius.net.au http://www.tertius.net.au/~gossamer/
+: Uptime DSW's are the highest form of geek competition.
+: -- Mike Whitaker
+
+
+--__--__--
+
+Message: 6
+Date: Mon, 25 Dec 2000 21:00:25 -0800
+From: Dan Mick <Dan.Mick@west.sun.com>
+To: scott-brown@home.com
+Cc: mailman-users@python.org
+Subject: Re: [Mailman-Users] Is this a bug, or just because I called it from an
+ unpriveledged account?
+
+
+
+> If it's trying to delete a lock file, it's no doubt due to the fact that it
+> (thought that it) created a lock file. Since no lock file is present... why
+> did it get as far as it did without producing an error?
+
+I believe the underlying code is trying to clean up any possibly pre-existing lock file
+as part of the "taking care" section when creating a list. There's no known live lock
+file for the list because the list is being created now, and this code is just a
+prophylactic measure to try to make newlist more bulletproof. The fact
+that you didn't have permission would be a fatal error for either creating or
+removing a lock, so dying if it happens is not unreasonable.
+
+It is a bit confusing, but it's part of trying to make the filesystem persistence
+less of a problem.
+
+
+--__--__--
+
+Message: 7
+Date: Mon, 25 Dec 2000 21:06:48 -0800
+From: Dan Mick <Dan.Mick@west.sun.com>
+To: Juan Eliseo Carrasco Diaz <eliseocd@teleline.es>,
+ mailman-users@python.org
+Subject: Re: [Mailman-Users] Re: Password bug in Mailman 2.0
+
+
+
+Juan Eliseo Carrasco Diaz wrote:
+>
+> Bek Oberin wrote:
+>
+> > Juan Eliseo Carrasco Diaz wrote:
+> > > The Administrator name can be used as password to go into and change
+> > > administrative and users options in theirs respective html pages.
+> >
+> > It's a feature.
+> >
+> > bekj
+> >
+> > --
+> > : --Hacker-Neophile-Eclectic-Geek-Grrl-Queer-Disabled-Boychick--
+> > : gossamer@tertius.net.au http://www.tertius.net.au/~gossamer/
+> > : Artificial Intelligence: the art of making computers that behave
+> > : like the ones in movies. -- Bill Bulko
+>
+> Ok, but It can be used by anyone, so a list member can modify the
+> administrative options.
+
+?? You said, correctly, the administrator password can be used as password to go
+change users' options. That's not at all true in the reverse; user passwords don't
+get you admin privileges.
+
+Think of the admin password like the "root" user password; you can do more with it.
+And the site password works for even more things (for admin privs on any list,
+for example).
+
+
+--__--__--
+
+Message: 8
+From: "Leonard Jacobs" <lj@mandala-designs.com>
+To: mailman-users@python.org
+Date: Tue, 26 Dec 2000 01:31:17 -0500
+Reply-To: lj@mandala-designs.com
+Subject: [Mailman-Users] Mailman 2.0 with Python 2.0
+
+Mailman seems to be continually retrying sending mail to hosts
+which can't be resolved via the DNS. Is this correct?
+
+Also why is it that Mailman seems to invoke sendmail in such a
+way that it causes sendmail to return a failure on hostnames that
+can't be resolved (presumably a temporary condition) rather than
+just passing the message to sendmail and letting sendmail do all
+the retries itself (which is how most mailers invoke sendmail). I
+imagine this must relate to the program's needing more detailed
+info about the state of each message to be sent, but when you tie
+this in with the default frequency of its retries, it's very strange.
+
+------------------
+
+ Leonard Jacobs
+ www.mandala-designs.com
+ (508) 359-5473
+
+
+
+--__--__--
+
+Message: 9
+Date: Tue, 26 Dec 2000 09:08:39 -0500
+To: mailman-users@python.org
+From: Jim Trigg <blaise@scadian.net>
+Subject: [Mailman-Users] Recovering/resetting a list admin password
+
+I lost the email giving me my list admin password for one list. The site
+admin claims that there is no way to either recover or reset that password,
+and that I have to recreate the list. Is that true, or can he use the site
+admin password to get access to the list administrative page and reset the
+password that way? It looks to me from the documentation that he should be
+able to.
+
+Thanks,
+Jim Trigg
+
+
+
+--__--__--
+
+Message: 10
+From: "Michael Albert" <sysop@zmag.org>
+To: <mailman-users@python.org>
+Date: Tue, 26 Dec 2000 10:03:03 -0800
+Subject: [Mailman-Users] (no subject)
+
+There is a list about ethiopia maintained or adminstered or otherwise
+related to your operations.
+
+People are being added to this list without having any knowledge of it. They
+are given passwords they don't know. They cannot, therefore, remove
+themsleves. I am such a person.
+
+Perhaps this is ignorance, more likely a stupid but venal undertaking, At
+any rate, you should immediately shut down this list and inform those
+attempting to create it of proper procedures.
+
+Thank you.
+
+The list is
+
+Pol.ethiopia mailing list
+Pol.ethiopia@lists.sn.apc.org
+http://lists.sn.apc.org/mailman/listinfo/pol.ethiopia
+
+
+
+Michael Albert
+Z Magazine / ZNet
+sysop@zmag.org
+www.zmag.org
+
+
+
+
+--__--__--
+
+------------------------------------------------------
+Mailman-Users maillist - Mailman-Users@python.org
+http://www.python.org/mailman/listinfo/mailman-users
+
+
+End of Mailman-Users Digest
+
+ --------End of Unsent Message
+
+
diff --git a/tests/fblast.py b/tests/fblast.py
new file mode 100644
index 00000000..2add9458
--- /dev/null
+++ b/tests/fblast.py
@@ -0,0 +1,60 @@
+"""Throw email at Mailman as fast as you can.
+
+This is not a unit test, it's a functional test, so you can't run it within
+the unit test framework (hence its filename doesn't start with `test_').
+Here's how I use this one:
+
+- set up a dummy list
+
+- add an alias to your MTA, say `devnull' that pipes its messages to, you
+ guessed it, /dev/null
+
+- make this address a member of your list
+
+- add another address to `accept_these_non_members', let's call it ok@dom.ain
+
+- change the FROMADDR variable to ok@dom.ain
+
+- change the LISTADDR variable to point to your list
+
+- run this program like so: python fblast.py N
+ where N is the number of seconds to sleep before sending the next msg
+
+- let this run until you're tired of it, then hit ^C
+"""
+
+FROMADDR = 'ok@dom.ain'
+LISTADDR = 'list@dom.ain'
+
+import sys
+import time
+import smtplib
+
+conn = smtplib.SMTP()
+conn.connect()
+
+snooze = int(sys.argv[1])
+
+try:
+ i = 1
+ while 1:
+ sys.stdout.write('.')
+ sys.stdout.flush()
+ i += 1
+ if i % 50 == 0:
+ print
+ for j in range(10):
+ conn.sendmail(FROMADDR, [LISTADDR], """\
+From: %(FROMADDR)s
+To: $(LISTADDR)s
+Subject: test %(num)d
+X-No-Archive: yes
+
+testing %(num)d
+""" % {'num' : i,
+ 'FROMADDR': FROMADDR,
+ 'LISTADDR': LISTADDR,
+ }
+ time.sleep(snooze)
+finally:
+ conn.quit()
diff --git a/tests/msgs/.cvsignore b/tests/msgs/.cvsignore
new file mode 100644
index 00000000..f3c7a7c5
--- /dev/null
+++ b/tests/msgs/.cvsignore
@@ -0,0 +1 @@
+Makefile
diff --git a/tests/msgs/Makefile.in b/tests/msgs/Makefile.in
new file mode 100644
index 00000000..3844820b
--- /dev/null
+++ b/tests/msgs/Makefile.in
@@ -0,0 +1,68 @@
+# Copyright (C) 2001 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public Licenseo
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# NOTE: Makefile.in is converted into Makefile by the configure script
+# in the parent directory. Once configure has run, you can recreate
+# the Makefile by running just config.status.
+
+# Variables set by configure
+
+VPATH= @srcdir@
+srcdir= @srcdir@
+bindir= @bindir@
+prefix= @prefix@
+exec_prefix= @exec_prefix@
+
+CC= @CC@
+CHMOD= @CHMOD@
+INSTALL= @INSTALL@
+
+DEFS= @DEFS@
+
+# Customizable but not set by configure
+
+OPT= @OPT@
+CFLAGS= $(OPT) $(DEFS)
+MSGSDIR= $(prefix)/tests/msgs
+SHELL= /bin/sh
+
+MSG_FILES= $(srcdir)/*.txt
+
+
+# Modes for directories and executables created by the install
+# process. Default to group-writable directories but
+# user-only-writable for executables.
+DIRMODE= 775
+EXEMODE= 755
+FILEMODE= 644
+INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
+
+# Rules
+all:
+
+install:
+ for f in $(MSG_FILES); \
+ do \
+ $(INSTALL) -m $(FILEMODE) $$f $(MSGSDIR); \
+ done
+
+finish:
+
+clean:
+
+distclean:
+ -rm *.pyc
+ -rm Makefile
diff --git a/tests/msgs/bad_01.txt b/tests/msgs/bad_01.txt
new file mode 100644
index 00000000..04a17267
--- /dev/null
+++ b/tests/msgs/bad_01.txt
@@ -0,0 +1,62 @@
+From xxxxx@webmail6.catholic.org Mon Oct 2 22:11:14 2000
+Return-Path: <xxxxx@webmail6.catholic.org>
+Delivered-To: mailman-developers@python.org
+Received: from webmail6.catholic.org (unknown [63.196.163.10])
+ by dinsdale.python.org (Postfix) with ESMTP id 680521CF4C
+ for <mailman-developers@python.org>; Mon, 2 Oct 2000 22:11:14 -0400 (EDT)
+Received: (from root@localhost)
+ by webmail6.catholic.org (8.10.1/8.10.1) id e932BDE08525;
+ Mon, 2 Oct 2000 19:11:13 -0700 (PDT)
+To: "catholic.org@catholicnet.org.uk" <@@forward@@.python.org>
+Received: from dinsdale.python.org (dinsdale.cnri.reston.va.us [132.151.1.21])
+ by webmail6.catholic.org (8.10.1/8.10.1) with SMTP id e932BBa08476
+ for <xxxxx@catholic.org>; Mon, 2 Oct 2000 19:11:11 -0700 (PDT)
+Received: from dinsdale.python.org (localhost [127.0.0.1])
+ by dinsdale.python.org (Postfix) with ESMTP
+ id 1DF9A1CF35; Mon, 2 Oct 2000 22:11:07 -0400 (EDT)
+Delivered-To: mailman-users@python.org
+Received: from alb-net.com (www.alb-net.com [205.216.244.65])
+ by dinsdale.python.org (Postfix) with ESMTP
+ id 55FEC1CF28; Mon, 2 Oct 2000 22:10:11 -0400 (EDT)
+Received: from localhost (localhost [127.0.0.1])
+ by alb-net.com (8.11.0/8.11.0) with ESMTP id e932AAU22315;
+ Mon, 2 Oct 2000 22:10:10 -0400 (EDT)
+From: Zzzzz TTTT <zzzzz@alb-net.com>
+Cc: mailman-developers@python.org
+Message-ID: <Pine.GSO.4.21.0010022206280.5021-100000@alb-net.com>
+Organization: "http://www.alb-net.com/"
+X-Loop: ZZZZZ
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Subject: [Mailman-Users] "download the full raw archive"
+Sender: mailman-users-admin@python.org
+Errors-To: mailman-users-admin@python.org
+X-BeenThere: mailman-users@python.org
+X-Mailman-Version: 2.0beta6
+Precedence: bulk
+List-Help: <mailto:mailman-users-request@python.org?subject=help>
+List-Post: <mailto:mailman-users@python.org>
+List-Subscribe: <http://www.python.org/mailman/listinfo/mailman-users>, <mailto:mailman-users-request@python.org?subject=subscribe>
+List-Id: Mailman mailing list management users <mailman-users.python.org>
+List-Unsubscribe: <http://www.python.org/mailman/listinfo/mailman-users>, <mailto:mailman-users-request@python.org?subject=unsubscribe>
+List-Archive: <http://www.python.org/pipermail/mailman-users/>
+Date: Mon, 2 Oct 2000 22:10:10 -0400 (EDT)
+X-Date-Received: Tue, 3 Oct 2000 02:11:12 -0800
+X-EdgeMail-Forward: catholic.org@catholicnet.org.uk <@@forward@@>
+
+
+Doesn't this link run contrary to the "obscure_addresses" Option?
+
+Even if I have the obscure_addresses Option set to YES, the e-mail
+addresses of public archives can be still harvested by various robots out
+there.
+
+later,
+Zzzzz
+
+
+------------------------------------------------------
+Mailman-Users maillist - Mailman-Users@python.org
+http://www.python.org/mailman/listinfo/mailman-users
+
+
diff --git a/tests/msgs/nimda.txt b/tests/msgs/nimda.txt
new file mode 100644
index 00000000..fba0ae09
--- /dev/null
+++ b/tests/msgs/nimda.txt
@@ -0,0 +1,43 @@
+Received: from tom.interq.or.jp (tom.interq.or.jp [210.172.128.229])
+ by imap.interq.or.jp with ESMTP id f8J1sCHb006936
+ for <ben@gmo.jp>;
+ Wed, 19 Sep 2001 10:54:13 +0900 (JST)
+Received: from master.debian.org (mail@master.debian.org [216.234.231.130])
+ by tom.interq.or.jp with ESMTP id f8J1sAS04533
+ for <ben@gmo.jp>; ) Wed, 19 Sep 2001 10:54:11 +0900 (JST)
+Date: Wed, 19 Sep 2001 10:54:11 +0900 (JST)
+From: <crt@kiski.net>
+Subject: C:\WINNT\mmc.exebqinsghtmstaskicwconnhtml helpdialerhypertrmgotodlgmsicwie6bakieexbqqviewie6bakeudcediticwdldwintlreadmehypertrmmsicwnpbqv32hypertrmicwhelpieexmscreatehmmapiwrite32npbqs32fixiehtml helpicwconn1write32ie6setupicwtutorieexsupportsetuphtml helplover.com.install
+MIME-Version: 1.0
+Content-Type: multipart/related;
+ type="multipart/alternative";
+ boundary="====_ABC1234567890DEF_===="
+X-Priority: 3
+X-MSMail-Priority: Normal
+X-Unsent: 1
+
+--====_ABC1234567890DEF_====
+Content-Type: multipart/alternative;
+ boundary="====_ABC0987654321DEF_===="
+
+--====_ABC0987654321DEF_====
+Content-Type: text/html;
+ charset="iso-8859-1"
+Content-Transfer-Encoding: quoted-printable
+
+
+<HTML><HEAD></HEAD><BODY bgColor=3D#ffffff>
+<iframe src=3Dcid:EA4DMGBP9p height=3D0 width=3D0>
+</iframe></BODY></HTML>
+--====_ABC0987654321DEF_====--
+
+--====_ABC1234567890DEF_====
+Content-Type: audio/x-wav;
+ name="readme.exe"
+Content-Transfer-Encoding: base64
+Content-ID: <EA4DMGBP9p>
+
+XXXX
+--====_ABC1234567890DEF_====
+
+
diff --git a/tests/onebounce.py b/tests/onebounce.py
new file mode 100755
index 00000000..24467342
--- /dev/null
+++ b/tests/onebounce.py
@@ -0,0 +1,94 @@
+#! /usr/bin/env python
+
+# Copyright (C) 2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Test the bounce detection for files containing bounces.
+
+Usage: %(PROGRAM)s [options] file1 ...
+
+Options:
+ -h / --help
+ Print this text and exit.
+
+ -v / --verbose
+ Verbose output.
+
+ -a / --all
+ Run the message through all the bounce modules. Normally this script
+ stops at the first one that finds a match.
+"""
+
+import sys
+import email
+import getopt
+
+import paths
+from Mailman.Bouncers import BouncerAPI
+
+PROGRAM = sys.argv[0]
+COMMASPACE = ', '
+
+
+
+def usage(code, msg=''):
+ print __doc__ % globals()
+ if msg:
+ print msg
+ sys.exit(code)
+
+
+
+def main():
+ try:
+ opts, args = getopt.getopt(sys.argv[1:], 'hva',
+ ['help', 'verbose', 'all'])
+ except getopt.error, msg:
+ usage(1, msg)
+
+ all = verbose = 0
+ for opt, arg in opts:
+ if opt in ('-h', '--help'):
+ usage(0)
+ elif opt in ('-v', '--verbose'):
+ verbose = 1
+ elif opt in ('-a', '--all'):
+ all = 1
+
+ for file in args:
+ fp = open(file)
+ msg = email.message_from_file(fp)
+ fp.close()
+ for module in BouncerAPI.BOUNCE_PIPELINE:
+ modname = 'Mailman.Bouncers.' + module
+ __import__(modname)
+ addrs = sys.modules[modname].process(msg)
+ if addrs is BouncerAPI.Stop:
+ print module, 'got a Stop'
+ if not all:
+ break
+ if not addrs:
+ if verbose:
+ print module, 'found no matches'
+ else:
+ print module, 'found', COMMASPACE.join(addrs)
+ if not all:
+ break
+
+
+
+if __name__ == '__main__':
+ main()
diff --git a/tests/test_bounces.py b/tests/test_bounces.py
new file mode 100644
index 00000000..2cb417e3
--- /dev/null
+++ b/tests/test_bounces.py
@@ -0,0 +1,175 @@
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Test the bounce detection modules."""
+
+import sys
+import os
+import unittest
+import email
+
+
+
+class BounceTest(unittest.TestCase):
+ DATA = (
+ # Postfix bounces
+ ('Postfix', 'postfix_01.txt', ['xxxxx@local.ie']),
+ ('Postfix', 'postfix_02.txt', ['yyyyy@digicool.com']),
+ ('Postfix', 'postfix_03.txt', ['ttttt@ggggg.com']),
+ ('Postfix', 'postfix_04.txt', ['davidlowie@mail1.keftamail.com']),
+ ('Postfix', 'postfix_05.txt', ['bjelf@detectit.net']),
+ # Exim bounces
+ ('Exim', 'exim_01.txt', ['delangen@its.tudelft.nl']),
+ # SimpleMatch bounces
+ ('SimpleMatch', 'sendmail_01.txt', ['zzzzz@nfg.nl']),
+ ('SimpleMatch', 'simple_01.txt', ['bbbsss@turbosport.com']),
+ ('SimpleMatch', 'simple_02.txt', ['chris.ggggmmmm@usa.net']),
+ ('SimpleMatch', 'simple_04.txt', ['claird@starbase.neosoft.com']),
+ ('SimpleMatch', 'newmailru_01.txt', ['zzzzz@newmail.ru']),
+ ('SimpleMatch', 'hotpop_01.txt', ['allensmithee@hotpop.com']),
+ # SimpleWarning
+ ('SimpleWarning', 'simple_03.txt', ['jacobus@geo.co.za']),
+ # GroupWise
+ ('GroupWise', 'groupwise_01.txt', ['thoff@MAINEX1.ASU.EDU']),
+ # This one really sucks 'cause it's text/html. Just make sure it
+ # doesn't throw an exception, but we won't get any meaningful
+ # addresses back from it.
+ ('GroupWise', 'groupwise_02.txt', []),
+ # Yale's own
+ ('Yale', 'yale_01.txt', ['thomas.dtankengine@cs.yale.edu',
+ 'thomas.dtankengine@yale.edu']),
+ # DSN, i.e. RFC 1894
+ ('DSN', 'dsn_01.txt', ['JimmyMcEgypt@go.com']),
+ ('DSN', 'dsn_02.txt', ['zzzzz@zeus.hud.ac.uk']),
+ ('DSN', 'dsn_03.txt', ['ddd.kkk@advalvas.be']),
+ ('DSN', 'dsn_04.txt', ['max.haas@unibas.ch']),
+ ('DSN', 'dsn_05.txt', ['pkocmid@atlas.cz']),
+ ('DSN', 'dsn_06.txt', ['hao-nghi.au@fr.thalesgroup.com']),
+ ('DSN', 'dsn_07.txt', ['david.farrar@parliament.govt.nz']),
+ ('DSN', 'dsn_08.txt', ['news-list.zope@localhost.bln.innominate.de']),
+ ('DSN', 'dsn_09.txt', ['pr@allen-heath.com']),
+ ('DSN', 'dsn_10.txt', ['anne.person@dom.ain']),
+ ('DSN', 'dsn_11.txt', ['joem@example.com']),
+ # Microsoft Exchange
+ ('Exchange', 'microsoft_01.txt', ['DJBENNETT@IKON.COM']),
+ ('Exchange', 'microsoft_02.txt', ['MDMOORE@BALL.COM']),
+ # SMTP32
+ ('SMTP32', 'smtp32_01.txt', ['oliver@pcworld.com.ph']),
+ ('SMTP32', 'smtp32_02.txt', ['lists@mail.spicynoodles.com']),
+ ('SMTP32', 'smtp32_03.txt', ['borisk@gw.xraymedia.com']),
+ # Qmail
+ ('Qmail', 'qmail_01.txt', ['psadisc@wwwmail.n-h.de']),
+ # LLNL's custom Sendmail
+ ('LLNL', 'llnl_01.txt', ['trotts1@llnl.gov']),
+ # Netscape's server...
+ ('Netscape', 'netscape_01.txt', ['aaaaa@corel.com',
+ 'bbbbb@corel.com']),
+ # Yahoo's proprietary format
+ ('Yahoo', 'yahoo_01.txt', ['subscribe.motorcycles@listsociety.com']),
+ ('Yahoo', 'yahoo_02.txt', ['agarciamartiartu@yahoo.es']),
+ ('Yahoo', 'yahoo_03.txt', ['cresus22@yahoo.com']),
+ ('Yahoo', 'yahoo_04.txt', ['agarciamartiartu@yahoo.es',
+ 'open00now@yahoo.co.uk']),
+ ('Yahoo', 'yahoo_05.txt', ['cresus22@yahoo.com',
+ 'jjb700@yahoo.com']),
+ ('Yahoo', 'yahoo_06.txt', ['andrew_polevoy@yahoo.com',
+ 'baruch_sterin@yahoo.com',
+ 'rjhoeks@yahoo.com',
+ 'tritonrugger91@yahoo.com']),
+ ('Yahoo', 'yahoo_07.txt', ['mark1960_1998@yahoo.com',
+ 'ovchenkov@yahoo.com',
+ 'tsa412@yahoo.com',
+ 'vaxheadroom@yahoo.com']),
+ ('Yahoo', 'yahoo_08.txt', ['chatrathis@yahoo.com',
+ 'crownjules01@yahoo.com',
+ 'cwl_999@yahoo.com',
+ 'eichaiwiu@yahoo.com',
+ 'rjhoeks@yahoo.com',
+ 'yuli_kolesnikov@yahoo.com']),
+ ('Yahoo', 'yahoo_09.txt', ['hankel_o_fung@yahoo.com',
+ 'ultravirus2001@yahoo.com']),
+ # sina.com appears to use their own weird SINAEMAIL MTA
+ ('Sina', 'sina_01.txt', ['boboman76@sina.com', 'alan_t18@sina.com']),
+ # No address can be detected in these...
+ # dumbass_01.txt - We love Microsoft. :(
+ # Done
+ )
+
+ def test_bounce(self):
+ for modname, file, addrs in self.DATA:
+ module = 'Mailman.Bouncers.' + modname
+ __import__(module)
+ fp = open(os.path.join('tests', 'bounces', file))
+ try:
+ msg = email.message_from_file(fp)
+ finally:
+ fp.close()
+ foundaddrs = sys.modules[module].process(msg)
+ # Some modules return None instead of [] for failure
+ if foundaddrs is None:
+ foundaddrs = []
+ addrs.sort()
+ foundaddrs.sort()
+ self.assertEqual(addrs, foundaddrs)
+
+ def test_SMTP32_failure(self):
+ from Mailman.Bouncers import SMTP32
+ # This file has no X-Mailer: header
+ fp = open(os.path.join('tests', 'bounces', 'postfix_01.txt'))
+ try:
+ msg = email.message_from_file(fp)
+ finally:
+ fp.close()
+ self.failIf(msg['x-mailer'] is not None)
+ self.failIf(SMTP32.process(msg))
+
+ def test_caiwireless(self):
+ from Mailman.Bouncers import Caiwireless
+ # BAW: this is a mostly bogus test; I lost the samples. :(
+ msg = email.message_from_string("""\
+Content-Type: multipart/report; boundary=BOUNDARY
+
+--BOUNDARY
+
+--BOUNDARY--
+
+""")
+ self.assertEqual(None, Caiwireless.process(msg))
+
+ def test_microsoft(self):
+ from Mailman.Bouncers import Microsoft
+ # BAW: similarly as above, I lost the samples. :(
+ msg = email.message_from_string("""\
+Content-Type: multipart/report; boundary=BOUNDARY
+
+--BOUNDARY
+
+--BOUNDARY--
+
+""")
+ self.assertEqual(None, Microsoft.process(msg))
+
+
+
+def suite():
+ suite = unittest.TestSuite()
+ suite.addTest(unittest.makeSuite(BounceTest))
+ return suite
+
+
+
+if __name__ == '__main__':
+ unittest.main(defaultTest='suite')
diff --git a/tests/test_handlers.py b/tests/test_handlers.py
new file mode 100644
index 00000000..d169c51e
--- /dev/null
+++ b/tests/test_handlers.py
@@ -0,0 +1,1741 @@
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Unit tests for the various Mailman/Handlers/*.py modules.
+"""
+
+import os
+import time
+import sha
+import unittest
+import cPickle
+import errno
+import email
+from email.Generator import Generator
+from types import ListType
+
+from Mailman import mm_cfg
+from Mailman.MailList import MailList
+from Mailman import Message
+from Mailman import Errors
+from Mailman import Pending
+from Mailman.Queue.Switchboard import Switchboard
+
+from Mailman.Handlers import Acknowledge
+from Mailman.Handlers import AfterDelivery
+from Mailman.Handlers import Approve
+from Mailman.Handlers import CalcRecips
+from Mailman.Handlers import Cleanse
+from Mailman.Handlers import CookHeaders
+from Mailman.Handlers import Decorate
+from Mailman.Handlers import FileRecips
+from Mailman.Handlers import Hold
+from Mailman.Handlers import MimeDel
+from Mailman.Handlers import Moderate
+from Mailman.Handlers import Personalize
+from Mailman.Handlers import Replybot
+from Mailman.Handlers import SMTPDirect
+from Mailman.Handlers import Sendmail
+from Mailman.Handlers import SpamDetect
+from Mailman.Handlers import Tagger
+from Mailman.Handlers import ToArchive
+from Mailman.Handlers import ToDigest
+from Mailman.Handlers import ToOutgoing
+from Mailman.Handlers import ToUsenet
+
+from TestBase import TestBase
+
+
+
+def password(plaintext):
+ return sha.new(plaintext).hexdigest()
+
+
+
+class TestAcknowledge(TestBase):
+ def setUp(self):
+ TestBase.setUp(self)
+ # We're going to want to inspect this queue directory
+ self._sb = Switchboard(mm_cfg.VIRGINQUEUE_DIR)
+ # Add a member
+ self._mlist.addNewMember('aperson@dom.ain')
+
+ def tearDown(self):
+ for f in os.listdir(mm_cfg.VIRGINQUEUE_DIR):
+ os.unlink(os.path.join(mm_cfg.VIRGINQUEUE_DIR, f))
+ TestBase.tearDown(self)
+
+ def test_no_ack_msgdata(self):
+ eq = self.assertEqual
+ # Make sure there are no files in the virgin queue already
+ eq(len(self._sb.files()), 0)
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+
+""", Message.Message)
+ Acknowledge.process(self._mlist, msg,
+ {'original_sender': 'aperson@dom.ain'})
+ eq(len(self._sb.files()), 0)
+
+ def test_no_ack_not_a_member(self):
+ eq = self.assertEqual
+ # Make sure there are no files in the virgin queue already
+ eq(len(self._sb.files()), 0)
+ msg = email.message_from_string("""\
+From: bperson@dom.ain
+
+""", Message.Message)
+ Acknowledge.process(self._mlist, msg,
+ {'original_sender': 'bperson@dom.ain'})
+ eq(len(self._sb.files()), 0)
+
+ def test_no_ack_sender(self):
+ eq = self.assertEqual
+ eq(len(self._sb.files()), 0)
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+
+""", Message.Message)
+ Acknowledge.process(self._mlist, msg, {})
+ eq(len(self._sb.files()), 0)
+
+ def test_ack_no_subject(self):
+ eq = self.assertEqual
+ self._mlist.setMemberOption(
+ 'aperson@dom.ain', mm_cfg.AcknowledgePosts, 1)
+ eq(len(self._sb.files()), 0)
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+
+""", Message.Message)
+ Acknowledge.process(self._mlist, msg, {})
+ files = self._sb.files()
+ eq(len(files), 1)
+ qmsg, qdata = self._sb.dequeue(files[0])
+ # Check the .db file
+ eq(qdata.get('listname'), '_xtest')
+ eq(qdata.get('recips'), ['aperson@dom.ain'])
+ eq(qdata.get('version'), 3)
+ # Check the .pck
+ eq(str(str(qmsg['subject'])), '_xtest post acknowledgement')
+ eq(qmsg['to'], 'aperson@dom.ain')
+ eq(qmsg['from'], '_xtest-bounces@dom.ain')
+ eq(qmsg.get_type(), 'text/plain')
+ eq(qmsg.get_param('charset'), 'us-ascii')
+ msgid = qmsg['message-id']
+ self.failUnless(msgid.startswith('<mailman.'))
+ self.failUnless(msgid.endswith('._xtest@dom.ain>'))
+ eq(qmsg.get_payload(), """\
+Your message entitled
+
+ (no subject)
+
+was successfully received by the _xtest mailing list.
+
+List info page: http://www.dom.ain/mailman/listinfo/_xtest
+""")
+ # Make sure we dequeued the only message
+ eq(len(self._sb.files()), 0)
+
+ def test_ack_with_subject(self):
+ eq = self.assertEqual
+ self._mlist.setMemberOption(
+ 'aperson@dom.ain', mm_cfg.AcknowledgePosts, 1)
+ eq(len(self._sb.files()), 0)
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+Subject: Wish you were here
+
+""", Message.Message)
+ Acknowledge.process(self._mlist, msg, {})
+ files = self._sb.files()
+ eq(len(files), 1)
+ qmsg, qdata = self._sb.dequeue(files[0])
+ # Check the .db file
+ eq(qdata.get('listname'), '_xtest')
+ eq(qdata.get('recips'), ['aperson@dom.ain'])
+ eq(qdata.get('version'), 3)
+ # Check the .pck
+ eq(str(qmsg['subject']), '_xtest post acknowledgement')
+ eq(qmsg['to'], 'aperson@dom.ain')
+ eq(qmsg['from'], '_xtest-bounces@dom.ain')
+ eq(qmsg.get_type(), 'text/plain')
+ eq(qmsg.get_param('charset'), 'us-ascii')
+ msgid = qmsg['message-id']
+ self.failUnless(msgid.startswith('<mailman.'))
+ self.failUnless(msgid.endswith('._xtest@dom.ain>'))
+ eq(qmsg.get_payload(), """\
+Your message entitled
+
+ Wish you were here
+
+was successfully received by the _xtest mailing list.
+
+List info page: http://www.dom.ain/mailman/listinfo/_xtest
+""")
+ # Make sure we dequeued the only message
+ eq(len(self._sb.files()), 0)
+
+ def test_ack_with_prefixed_subject(self):
+ eq = self.assertEqual
+ self._mlist.subject_prefix = '[XTEST] '
+ self._mlist.setMemberOption(
+ 'aperson@dom.ain', mm_cfg.AcknowledgePosts, 1)
+ eq(len(self._sb.files()), 0)
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+Subject: [XTEST] Wish you were here
+
+""", Message.Message)
+ Acknowledge.process(self._mlist, msg, {})
+ files = self._sb.files()
+ eq(len(files), 1)
+ qmsg, qdata = self._sb.dequeue(files[0])
+ # Check the .db file
+ eq(qdata.get('listname'), '_xtest')
+ eq(qdata.get('recips'), ['aperson@dom.ain'])
+ eq(qdata.get('version'), 3)
+ # Check the .pck
+ eq(str(qmsg['subject']), '_xtest post acknowledgement')
+ eq(qmsg['to'], 'aperson@dom.ain')
+ eq(qmsg['from'], '_xtest-bounces@dom.ain')
+ eq(qmsg.get_type(), 'text/plain')
+ eq(qmsg.get_param('charset'), 'us-ascii')
+ msgid = qmsg['message-id']
+ self.failUnless(msgid.startswith('<mailman.'))
+ self.failUnless(msgid.endswith('._xtest@dom.ain>'))
+ eq(qmsg.get_payload(), """\
+Your message entitled
+
+ Wish you were here
+
+was successfully received by the _xtest mailing list.
+
+List info page: http://www.dom.ain/mailman/listinfo/_xtest
+""")
+ # Make sure we dequeued the only message
+ eq(len(self._sb.files()), 0)
+
+
+
+class TestAfterDelivery(TestBase):
+ # Both msg and msgdata are ignored
+ def test_process(self):
+ mlist = self._mlist
+ last_post_time = mlist.last_post_time
+ post_id = mlist.post_id
+ AfterDelivery.process(mlist, None, None)
+ self.failUnless(mlist.last_post_time > last_post_time)
+ self.assertEqual(mlist.post_id, post_id + 1)
+
+
+
+class TestApprove(TestBase):
+ def test_short_circuit(self):
+ msgdata = {'approved': 1}
+ rtn = Approve.process(self._mlist, None, msgdata)
+ # Not really a great test, but there's little else to assert
+ self.assertEqual(rtn, None)
+
+ def test_approved_moderator(self):
+ mlist = self._mlist
+ mlist.mod_password = password('wazoo')
+ msg = email.message_from_string("""\
+Approved: wazoo
+
+""")
+ msgdata = {}
+ Approve.process(mlist, msg, msgdata)
+ self.failUnless(msgdata.has_key('approved'))
+ self.assertEqual(msgdata['approved'], 1)
+
+ def test_approve_moderator(self):
+ mlist = self._mlist
+ mlist.mod_password = password('wazoo')
+ msg = email.message_from_string("""\
+Approve: wazoo
+
+""")
+ msgdata = {}
+ Approve.process(mlist, msg, msgdata)
+ self.failUnless(msgdata.has_key('approved'))
+ self.assertEqual(msgdata['approved'], 1)
+
+ def test_approved_admin(self):
+ mlist = self._mlist
+ mlist.password = password('wazoo')
+ msg = email.message_from_string("""\
+Approved: wazoo
+
+""")
+ msgdata = {}
+ Approve.process(mlist, msg, msgdata)
+ self.failUnless(msgdata.has_key('approved'))
+ self.assertEqual(msgdata['approved'], 1)
+
+ def test_approve_admin(self):
+ mlist = self._mlist
+ mlist.password = password('wazoo')
+ msg = email.message_from_string("""\
+Approve: wazoo
+
+""")
+ msgdata = {}
+ Approve.process(mlist, msg, msgdata)
+ self.failUnless(msgdata.has_key('approved'))
+ self.assertEqual(msgdata['approved'], 1)
+
+ def test_unapproved(self):
+ mlist = self._mlist
+ mlist.password = password('zoowa')
+ msg = email.message_from_string("""\
+Approve: wazoo
+
+""")
+ msgdata = {}
+ Approve.process(mlist, msg, msgdata)
+ self.assertEqual(msgdata.get('approved'), None)
+
+ def test_trip_beentheres(self):
+ mlist = self._mlist
+ msg = email.message_from_string("""\
+X-BeenThere: %s
+
+""" % mlist.GetListEmail())
+ self.assertRaises(Errors.LoopError, Approve.process, mlist, msg, {})
+
+
+
+class TestCalcRecips(TestBase):
+ def setUp(self):
+ TestBase.setUp(self)
+ # Add a bunch of regular members
+ mlist = self._mlist
+ mlist.addNewMember('aperson@dom.ain')
+ mlist.addNewMember('bperson@dom.ain')
+ mlist.addNewMember('cperson@dom.ain')
+ # And a bunch of digest members
+ mlist.addNewMember('dperson@dom.ain', digest=1)
+ mlist.addNewMember('eperson@dom.ain', digest=1)
+ mlist.addNewMember('fperson@dom.ain', digest=1)
+
+ def test_short_circuit(self):
+ msgdata = {'recips': 1}
+ rtn = CalcRecips.process(self._mlist, None, msgdata)
+ # Not really a great test, but there's little else to assert
+ self.assertEqual(rtn, None)
+
+ def test_simple_path(self):
+ msgdata = {}
+ msg = email.message_from_string("""\
+From: dperson@dom.ain
+
+""", Message.Message)
+ CalcRecips.process(self._mlist, msg, msgdata)
+ self.failUnless(msgdata.has_key('recips'))
+ recips = msgdata['recips']
+ recips.sort()
+ self.assertEqual(recips, ['aperson@dom.ain', 'bperson@dom.ain',
+ 'cperson@dom.ain'])
+
+ def test_exclude_sender(self):
+ msgdata = {}
+ msg = email.message_from_string("""\
+From: cperson@dom.ain
+
+""", Message.Message)
+ self._mlist.setMemberOption('cperson@dom.ain',
+ mm_cfg.DontReceiveOwnPosts, 1)
+ CalcRecips.process(self._mlist, msg, msgdata)
+ self.failUnless(msgdata.has_key('recips'))
+ recips = msgdata['recips']
+ recips.sort()
+ self.assertEqual(recips, ['aperson@dom.ain', 'bperson@dom.ain'])
+
+ def test_urgent_moderator(self):
+ self._mlist.mod_password = password('xxXXxx')
+ msgdata = {}
+ msg = email.message_from_string("""\
+From: dperson@dom.ain
+Urgent: xxXXxx
+
+""", Message.Message)
+ CalcRecips.process(self._mlist, msg, msgdata)
+ self.failUnless(msgdata.has_key('recips'))
+ recips = msgdata['recips']
+ recips.sort()
+ self.assertEqual(recips, ['aperson@dom.ain', 'bperson@dom.ain',
+ 'cperson@dom.ain', 'dperson@dom.ain',
+ 'eperson@dom.ain', 'fperson@dom.ain'])
+
+ def test_urgent_admin(self):
+ self._mlist.mod_password = password('yyYYyy')
+ self._mlist.password = password('xxXXxx')
+ msgdata = {}
+ msg = email.message_from_string("""\
+From: dperson@dom.ain
+Urgent: xxXXxx
+
+""", Message.Message)
+ CalcRecips.process(self._mlist, msg, msgdata)
+ self.failUnless(msgdata.has_key('recips'))
+ recips = msgdata['recips']
+ recips.sort()
+ self.assertEqual(recips, ['aperson@dom.ain', 'bperson@dom.ain',
+ 'cperson@dom.ain', 'dperson@dom.ain',
+ 'eperson@dom.ain', 'fperson@dom.ain'])
+
+ def test_urgent_reject(self):
+ self._mlist.mod_password = password('yyYYyy')
+ self._mlist.password = password('xxXXxx')
+ msgdata = {}
+ msg = email.message_from_string("""\
+From: dperson@dom.ain
+Urgent: zzZZzz
+
+""", Message.Message)
+ self.assertRaises(Errors.RejectMessage,
+ CalcRecips.process,
+ self._mlist, msg, msgdata)
+
+ # BAW: must test the do_topic_filters() path...
+
+
+
+class TestCleanse(TestBase):
+ def setUp(self):
+ TestBase.setUp(self)
+
+ def test_simple_cleanse(self):
+ eq = self.assertEqual
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+Approved: yes
+Urgent: indeed
+Reply-To: bperson@dom.ain
+Sender: asystem@dom.ain
+Return-Receipt-To: another@dom.ain
+Disposition-Notification-To: athird@dom.ain
+X-Confirm-Reading-To: afourth@dom.ain
+X-PMRQC: afifth@dom.ain
+Subject: a message to you
+
+""", Message.Message)
+ Cleanse.process(self._mlist, msg, {})
+ eq(msg['approved'], None)
+ eq(msg['urgent'], None)
+ eq(msg['return-receipt-to'], None)
+ eq(msg['disposition-notification-to'], None)
+ eq(msg['x-confirm-reading-to'], None)
+ eq(msg['x-pmrqc'], None)
+ eq(msg['from'], 'aperson@dom.ain')
+ eq(msg['reply-to'], 'bperson@dom.ain')
+ eq(msg['sender'], 'asystem@dom.ain')
+ eq(msg['subject'], 'a message to you')
+
+ def test_anon_cleanse(self):
+ eq = self.assertEqual
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+Approved: yes
+Urgent: indeed
+Reply-To: bperson@dom.ain
+Sender: asystem@dom.ain
+Return-Receipt-To: another@dom.ain
+Disposition-Notification-To: athird@dom.ain
+X-Confirm-Reading-To: afourth@dom.ain
+X-PMRQC: afifth@dom.ain
+Subject: a message to you
+
+""", Message.Message)
+ self._mlist.anonymous_list = 1
+ Cleanse.process(self._mlist, msg, {})
+ eq(msg['approved'], None)
+ eq(msg['urgent'], None)
+ eq(msg['return-receipt-to'], None)
+ eq(msg['disposition-notification-to'], None)
+ eq(msg['x-confirm-reading-to'], None)
+ eq(msg['x-pmrqc'], None)
+ eq(len(msg.get_all('from')), 1)
+ eq(len(msg.get_all('reply-to')), 1)
+ eq(msg['from'], '_xtest@dom.ain')
+ eq(msg['reply-to'], '_xtest@dom.ain')
+ eq(msg['sender'], None)
+ eq(msg['subject'], 'a message to you')
+
+
+
+class TestCookHeaders(TestBase):
+ def test_transform_noack_to_xack(self):
+ eq = self.assertEqual
+ msg = email.message_from_string("""\
+X-Ack: yes
+
+""", Message.Message)
+ CookHeaders.process(self._mlist, msg, {'noack': 1})
+ eq(len(msg.get_all('x-ack')), 1)
+ eq(msg['x-ack'], 'no')
+
+ def test_original_sender(self):
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+
+""", Message.Message)
+ msgdata = {}
+ CookHeaders.process(self._mlist, msg, msgdata)
+ self.assertEqual(msgdata.get('original_sender'), 'aperson@dom.ain')
+
+ def test_no_original_sender(self):
+ msg = email.message_from_string("""\
+Subject: about this message
+
+""", Message.Message)
+ msgdata = {}
+ CookHeaders.process(self._mlist, msg, msgdata)
+ self.assertEqual(msgdata.get('original_sender'), '')
+
+ def test_xbeenthere(self):
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+
+""", Message.Message)
+ CookHeaders.process(self._mlist, msg, {})
+ self.assertEqual(msg['x-beenthere'], '_xtest@dom.ain')
+
+ def test_multiple_xbeentheres(self):
+ eq = self.assertEqual
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+X-BeenThere: alist@another.dom.ain
+
+""", Message.Message)
+ CookHeaders.process(self._mlist, msg, {})
+ eq(len(msg.get_all('x-beenthere')), 2)
+ beentheres = msg.get_all('x-beenthere')
+ beentheres.sort()
+ eq(beentheres, ['_xtest@dom.ain', 'alist@another.dom.ain'])
+
+ def test_nonexisting_mmversion(self):
+ eq = self.assertEqual
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+
+""", Message.Message)
+ CookHeaders.process(self._mlist, msg, {})
+ eq(msg['x-mailman-version'], mm_cfg.VERSION)
+
+ def test_existing_mmversion(self):
+ eq = self.assertEqual
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+X-Mailman-Version: 3000
+
+""", Message.Message)
+ CookHeaders.process(self._mlist, msg, {})
+ eq(len(msg.get_all('x-mailman-version')), 1)
+ eq(msg['x-mailman-version'], '3000')
+
+ def test_nonexisting_precedence(self):
+ eq = self.assertEqual
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+
+""", Message.Message)
+ CookHeaders.process(self._mlist, msg, {})
+ eq(msg['precedence'], 'bulk')
+
+ def test_existing_precedence(self):
+ eq = self.assertEqual
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+Precedence: junk
+
+""", Message.Message)
+ CookHeaders.process(self._mlist, msg, {})
+ eq(len(msg.get_all('precedence')), 1)
+ eq(msg['precedence'], 'junk')
+
+ def test_subject_munging_no_subject(self):
+ self._mlist.subject_prefix = '[XTEST] '
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+
+""", Message.Message)
+ CookHeaders.process(self._mlist, msg, {})
+ self.assertEqual(str(msg['subject']), '[XTEST] (no subject)')
+
+ def test_subject_munging(self):
+ self._mlist.subject_prefix = '[XTEST] '
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+Subject: About Mailman...
+
+""", Message.Message)
+ CookHeaders.process(self._mlist, msg, {})
+ self.assertEqual(msg['subject'], '[XTEST] About Mailman...')
+
+ def test_no_subject_munging_for_digests(self):
+ self._mlist.subject_prefix = '[XTEST] '
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+Subject: About Mailman...
+
+""", Message.Message)
+ CookHeaders.process(self._mlist, msg, {'isdigest': 1})
+ self.assertEqual(msg['subject'], 'About Mailman...')
+
+ def test_no_subject_munging_for_fasttrack(self):
+ self._mlist.subject_prefix = '[XTEST] '
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+Subject: About Mailman...
+
+""", Message.Message)
+ CookHeaders.process(self._mlist, msg, {'_fasttrack': 1})
+ self.assertEqual(msg['subject'], 'About Mailman...')
+
+ def test_no_subject_munging_has_prefix(self):
+ self._mlist.subject_prefix = '[XTEST] '
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+Subject: Re: [XTEST] About Mailman...
+
+""", Message.Message)
+ CookHeaders.process(self._mlist, msg, {})
+ self.assertEqual(msg['subject'], 'Re: [XTEST] About Mailman...')
+
+ def test_reply_to_list(self):
+ eq = self.assertEqual
+ mlist = self._mlist
+ mlist.reply_goes_to_list = 1
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+
+""", Message.Message)
+ CookHeaders.process(mlist, msg, {})
+ eq(msg['reply-to'], '_xtest@dom.ain')
+ eq(msg.get_all('reply-to'), ['_xtest@dom.ain'])
+
+ def test_reply_to_list_with_strip(self):
+ eq = self.assertEqual
+ mlist = self._mlist
+ mlist.reply_goes_to_list = 1
+ mlist.first_strip_reply_to = 1
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+Reply-To: bperson@dom.ain
+
+""", Message.Message)
+ CookHeaders.process(mlist, msg, {})
+ eq(msg['reply-to'], '_xtest@dom.ain')
+ eq(msg.get_all('reply-to'), ['_xtest@dom.ain'])
+
+ def test_reply_to_explicit(self):
+ eq = self.assertEqual
+ mlist = self._mlist
+ mlist.reply_goes_to_list = 2
+ mlist.reply_to_address = 'mlist@dom.ain'
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+
+""", Message.Message)
+ CookHeaders.process(mlist, msg, {})
+ eq(msg['reply-to'], 'mlist@dom.ain')
+ eq(msg.get_all('reply-to'), ['mlist@dom.ain'])
+
+ def test_reply_to_explicit_with_strip(self):
+ eq = self.assertEqual
+ mlist = self._mlist
+ mlist.reply_goes_to_list = 2
+ mlist.first_strip_reply_to = 1
+ mlist.reply_to_address = 'mlist@dom.ain'
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+Reply-To: bperson@dom.ain
+
+""", Message.Message)
+ CookHeaders.process(self._mlist, msg, {})
+ eq(msg['reply-to'], 'mlist@dom.ain')
+ eq(msg.get_all('reply-to'), ['mlist@dom.ain'])
+
+ def test_reply_to_extends_to_list(self):
+ eq = self.assertEqual
+ mlist = self._mlist
+ mlist.reply_goes_to_list = 1
+ mlist.first_strip_reply_to = 0
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+Reply-To: bperson@dom.ain
+
+""", Message.Message)
+ CookHeaders.process(mlist, msg, {})
+ eq(msg['reply-to'], 'bperson@dom.ain, _xtest@dom.ain')
+
+ def test_reply_to_extends_to_explicit(self):
+ eq = self.assertEqual
+ mlist = self._mlist
+ mlist.reply_goes_to_list = 2
+ mlist.first_strip_reply_to = 0
+ mlist.reply_to_address = 'mlist@dom.ain'
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+Reply-To: bperson@dom.ain
+
+""", Message.Message)
+ CookHeaders.process(mlist, msg, {})
+ eq(msg['reply-to'], 'mlist@dom.ain, bperson@dom.ain')
+
+ def test_list_headers_nolist(self):
+ eq = self.assertEqual
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+
+""", Message.Message)
+ CookHeaders.process(self._mlist, msg, {'_nolist': 1})
+ eq(msg['list-id'], None)
+ eq(msg['list-help'], None)
+ eq(msg['list-unsubscribe'], None)
+ eq(msg['list-subscribe'], None)
+ eq(msg['list-post'], None)
+ eq(msg['list-archive'], None)
+
+ def test_list_headers(self):
+ eq = self.assertEqual
+ self._mlist.archive = 1
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+
+""", Message.Message)
+ oldval = mm_cfg.DEFAULT_URL_HOST
+ mm_cfg.DEFAULT_URL_HOST = 'www.dom.ain'
+ try:
+ CookHeaders.process(self._mlist, msg, {})
+ finally:
+ mm_cfg.DEFAULT_URL_HOST = oldval
+ eq(msg['list-id'], '<_xtest.dom.ain>')
+ eq(msg['list-help'], '<mailto:_xtest-request@dom.ain?subject=help>')
+ eq(msg['list-unsubscribe'],
+ '<http://www.dom.ain/mailman/listinfo/_xtest>,'
+ '\n\t<mailto:_xtest-request@dom.ain?subject=unsubscribe>')
+ eq(msg['list-subscribe'],
+ '<http://www.dom.ain/mailman/listinfo/_xtest>,'
+ '\n\t<mailto:_xtest-request@dom.ain?subject=subscribe>')
+ eq(msg['list-post'], '<mailto:_xtest@dom.ain>')
+ eq(msg['list-archive'], '<http://www.dom.ain/pipermail/_xtest>')
+
+ def test_list_headers_with_description(self):
+ eq = self.assertEqual
+ self._mlist.archive = 1
+ self._mlist.description = 'A Test List'
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+
+""", Message.Message)
+ CookHeaders.process(self._mlist, msg, {})
+ eq(msg['list-id'], 'A Test List <_xtest.dom.ain>')
+ eq(msg['list-help'], '<mailto:_xtest-request@dom.ain?subject=help>')
+ eq(msg['list-unsubscribe'],
+ '<http://www.dom.ain/mailman/listinfo/_xtest>,'
+ '\n\t<mailto:_xtest-request@dom.ain?subject=unsubscribe>')
+ eq(msg['list-subscribe'],
+ '<http://www.dom.ain/mailman/listinfo/_xtest>,'
+ '\n\t<mailto:_xtest-request@dom.ain?subject=subscribe>')
+ eq(msg['list-post'], '<mailto:_xtest@dom.ain>')
+
+
+
+class TestDecorate(TestBase):
+ def test_short_circuit(self):
+ msgdata = {'isdigest': 1}
+ rtn = Decorate.process(self._mlist, None, msgdata)
+ # Not really a great test, but there's little else to assert
+ self.assertEqual(rtn, None)
+
+ def test_no_multipart(self):
+ mlist = self._mlist
+ mlist.msg_header = 'header\n'
+ mlist.msg_footer = 'footer'
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+
+Here is a message.
+""")
+ Decorate.process(self._mlist, msg, {})
+ self.assertEqual(msg.get_payload(), """\
+header
+Here is a message.
+footer""")
+
+ def test_no_multipart_template(self):
+ mlist = self._mlist
+ mlist.msg_header = '%(real_name)s header\n'
+ mlist.msg_footer = '%(real_name)s footer'
+ mlist.real_name = 'XTest'
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+
+Here is a message.
+""")
+ Decorate.process(self._mlist, msg, {})
+ self.assertEqual(msg.get_payload(), """\
+XTest header
+Here is a message.
+XTest footer""")
+
+ def test_no_multipart_type_error(self):
+ mlist = self._mlist
+ mlist.msg_header = '%(real_name) header\n'
+ mlist.msg_footer = '%(real_name) footer'
+ mlist.real_name = 'XTest'
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+
+Here is a message.
+""")
+ Decorate.process(self._mlist, msg, {})
+ self.assertEqual(msg.get_payload(), """\
+%(real_name) header
+Here is a message.
+%(real_name) footer""")
+
+ def test_no_multipart_value_error(self):
+ mlist = self._mlist
+ # These will generate warnings in logs/error
+ mlist.msg_header = '%(real_name)p header\n'
+ mlist.msg_footer = '%(real_name)p footer'
+ mlist.real_name = 'XTest'
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+
+Here is a message.
+""")
+ Decorate.process(self._mlist, msg, {})
+ self.assertEqual(msg.get_payload(), """\
+%(real_name)p header
+Here is a message.
+%(real_name)p footer""")
+
+ def test_no_multipart_missing_key(self):
+ mlist = self._mlist
+ mlist.msg_header = '%(spooge)s header\n'
+ mlist.msg_footer = '%(spooge)s footer'
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+
+Here is a message.
+""")
+ Decorate.process(self._mlist, msg, {})
+ self.assertEqual(msg.get_payload(), """\
+%(spooge)s header
+Here is a message.
+%(spooge)s footer""")
+
+ def test_multipart(self):
+ mlist = self._mlist
+ mlist.msg_header = 'header\n'
+ mlist.msg_footer = 'footer'
+ msg1 = email.message_from_string("""\
+From: aperson@dom.ain
+
+Here is the first message.
+""")
+ msg2 = email.message_from_string("""\
+From: bperson@dom.ain
+
+Here is the second message.
+""")
+ msg = Message.Message()
+ msg.set_type('multipart/mixed')
+ msg.set_boundary('BOUNDARY')
+ msg.attach(msg1)
+ msg.attach(msg2)
+ Decorate.process(self._mlist, msg, {})
+ self.assertEqual(msg.as_string(unixfrom=0), """\
+MIME-Version: 1.0
+Content-Type: multipart/mixed; boundary="BOUNDARY"
+
+--BOUNDARY
+Content-Type: text/plain; charset="us-ascii"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+
+header
+
+--BOUNDARY
+From: aperson@dom.ain
+
+Here is the first message.
+
+--BOUNDARY
+From: bperson@dom.ain
+
+Here is the second message.
+
+--BOUNDARY
+Content-Type: text/plain; charset="us-ascii"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+
+footer
+
+--BOUNDARY--""")
+
+ def test_image(self):
+ mlist = self._mlist
+ mlist.msg_header = 'header\n'
+ mlist.msg_footer = 'footer'
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+Content-type: image/x-spooge
+
+IMAGEDATAIMAGEDATAIMAGEDATA
+""")
+ Decorate.process(self._mlist, msg, {})
+ self.assertEqual(msg.get_payload(), """\
+IMAGEDATAIMAGEDATAIMAGEDATA
+""")
+
+ def test_personalize_assert(self):
+ raises = self.assertRaises
+ raises(AssertionError, Decorate.process,
+ self._mlist, None, {'personalize': 1})
+ raises(AssertionError, Decorate.process,
+ self._mlist, None, {'personalize': 1,
+ 'recips': [1, 2, 3]})
+
+
+
+class TestFileRecips(TestBase):
+ def test_short_circuit(self):
+ msgdata = {'recips': 1}
+ rtn = FileRecips.process(self._mlist, None, msgdata)
+ # Not really a great test, but there's little else to assert
+ self.assertEqual(rtn, None)
+
+ def test_file_nonexistant(self):
+ msgdata = {}
+ FileRecips.process(self._mlist, None, msgdata)
+ self.assertEqual(msgdata.get('recips'), [])
+
+ def test_file_exists_no_sender(self):
+ msg = email.message_from_string("""\
+To: yall@dom.ain
+
+""", Message.Message)
+ msgdata = {}
+ file = os.path.join(self._mlist.fullpath(), 'members.txt')
+ addrs = ['aperson@dom.ain', 'bperson@dom.ain',
+ 'cperson@dom.ain', 'dperson@dom.ain']
+ fp = open(file, 'w')
+ try:
+ for addr in addrs:
+ print >> fp, addr
+ fp.close()
+ FileRecips.process(self._mlist, msg, msgdata)
+ self.assertEqual(msgdata.get('recips'), addrs)
+ finally:
+ try:
+ os.unlink(file)
+ except OSError, e:
+ if e.errno <> e.ENOENT: raise
+
+ def test_file_exists_no_member(self):
+ msg = email.message_from_string("""\
+From: eperson@dom.ain
+To: yall@dom.ain
+
+""", Message.Message)
+ msgdata = {}
+ file = os.path.join(self._mlist.fullpath(), 'members.txt')
+ addrs = ['aperson@dom.ain', 'bperson@dom.ain',
+ 'cperson@dom.ain', 'dperson@dom.ain']
+ fp = open(file, 'w')
+ try:
+ for addr in addrs:
+ print >> fp, addr
+ fp.close()
+ FileRecips.process(self._mlist, msg, msgdata)
+ self.assertEqual(msgdata.get('recips'), addrs)
+ finally:
+ try:
+ os.unlink(file)
+ except OSError, e:
+ if e.errno <> e.ENOENT: raise
+
+ def test_file_exists_is_member(self):
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+To: yall@dom.ain
+
+""", Message.Message)
+ msgdata = {}
+ file = os.path.join(self._mlist.fullpath(), 'members.txt')
+ addrs = ['aperson@dom.ain', 'bperson@dom.ain',
+ 'cperson@dom.ain', 'dperson@dom.ain']
+ fp = open(file, 'w')
+ try:
+ for addr in addrs:
+ print >> fp, addr
+ self._mlist.addNewMember(addr)
+ fp.close()
+ FileRecips.process(self._mlist, msg, msgdata)
+ self.assertEqual(msgdata.get('recips'), addrs[1:])
+ finally:
+ try:
+ os.unlink(file)
+ except OSError, e:
+ if e.errno <> e.ENOENT: raise
+
+
+
+class TestHold(TestBase):
+ def setUp(self):
+ TestBase.setUp(self)
+ self._mlist.administrivia = 1
+ self._mlist.respond_to_post_requests = 0
+ self._mlist.admin_immed_notify = 0
+ # We're going to want to inspect this queue directory
+ self._sb = Switchboard(mm_cfg.VIRGINQUEUE_DIR)
+
+ def tearDown(self):
+ for f in os.listdir(mm_cfg.VIRGINQUEUE_DIR):
+ os.unlink(os.path.join(mm_cfg.VIRGINQUEUE_DIR, f))
+ TestBase.tearDown(self)
+ try:
+ os.unlink(os.path.join(mm_cfg.DATA_DIR, 'pending.db'))
+ except OSError, e:
+ if e.errno <> errno.ENOENT: raise
+ for f in [holdfile for holdfile in os.listdir(mm_cfg.DATA_DIR)
+ if holdfile.startswith('heldmsg-')]:
+ os.unlink(os.path.join(mm_cfg.DATA_DIR, f))
+
+ def test_short_circuit(self):
+ msgdata = {'approved': 1}
+ rtn = Hold.process(self._mlist, None, msgdata)
+ # Not really a great test, but there's little else to assert
+ self.assertEqual(rtn, None)
+
+ def test_administrivia(self):
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+Subject: unsubscribe
+
+""", Message.Message)
+ self.assertRaises(Hold.Administrivia, Hold.process,
+ self._mlist, msg, {})
+
+ def test_max_recips(self):
+ self._mlist.max_num_recipients = 5
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+To: _xtest@dom.ain, bperson@dom.ain
+Cc: cperson@dom.ain
+Cc: dperson@dom.ain (Jimmy D. Person)
+To: Billy E. Person <eperson@dom.ain>
+
+Hey folks!
+""", Message.Message)
+ self.assertRaises(Hold.TooManyRecipients, Hold.process,
+ self._mlist, msg, {})
+
+ def test_implicit_destination(self):
+ self._mlist.require_explicit_destination = 1
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+Subject: An implicit message
+
+""", Message.Message)
+ self.assertRaises(Hold.ImplicitDestination, Hold.process,
+ self._mlist, msg, {})
+
+ def test_implicit_destination_fromusenet(self):
+ self._mlist.require_explicit_destination = 1
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+Subject: An implicit message
+
+""", Message.Message)
+ rtn = Hold.process(self._mlist, msg, {'fromusenet': 1})
+ self.assertEqual(rtn, None)
+
+ def test_suspicious_header(self):
+ self._mlist.bounce_matching_headers = 'From: .*person@(blah.)?dom.ain'
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+To: _xtest@dom.ain
+Subject: An implicit message
+
+""", Message.Message)
+ self.assertRaises(Hold.SuspiciousHeaders, Hold.process,
+ self._mlist, msg, {})
+
+ def test_suspicious_header_ok(self):
+ self._mlist.bounce_matching_headers = 'From: .*person@blah.dom.ain'
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+To: _xtest@dom.ain
+Subject: An implicit message
+
+""", Message.Message)
+ rtn = Hold.process(self._mlist, msg, {})
+ self.assertEqual(rtn, None)
+
+ def test_max_message_size(self):
+ self._mlist.max_message_size = 1
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+To: _xtest@dom.ain
+
+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+""", Message.Message)
+ self.assertRaises(Hold.MessageTooBig, Hold.process,
+ self._mlist, msg, {})
+
+ def test_hold_notifications(self):
+ eq = self.assertEqual
+ self._mlist.respond_to_post_requests = 1
+ self._mlist.admin_immed_notify = 1
+ # Now cause an implicit destination hold
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+
+""", Message.Message)
+ self.assertRaises(Hold.ImplicitDestination, Hold.process,
+ self._mlist, msg, {})
+ # Now we have to make sure there are two messages in the virgin queue,
+ # one to the sender and one to the list owners.
+ qfiles = {}
+ files = self._sb.files()
+ eq(len(files), 2)
+ for filebase in files:
+ qmsg, qdata = self._sb.dequeue(filebase)
+ to = qmsg['to']
+ qfiles[to] = qmsg, qdata
+ # BAW: We could be testing many other attributes of either the
+ # messages or the metadata files...
+ keys = qfiles.keys()
+ keys.sort()
+ eq(keys, ['_xtest-owner@dom.ain', 'aperson@dom.ain'])
+ # Get the pending cookie from the message to the sender
+ pmsg, pdata = qfiles['aperson@dom.ain']
+ confirmlines = pmsg.get_payload().split('\n')
+ cookie = confirmlines[-3].split('/')[-1]
+ # We also need to make sure there's an entry in the Pending database
+ # for the heold message.
+ data = Pending.confirm(cookie)
+ eq(data, ('H', 1))
+ heldmsg = os.path.join(mm_cfg.DATA_DIR, 'heldmsg-_xtest-1.pck')
+ self.failUnless(os.path.exists(heldmsg))
+ os.unlink(heldmsg)
+ holdfiles = [f for f in os.listdir(mm_cfg.DATA_DIR)
+ if f.startswith('heldmsg-')]
+ eq(len(holdfiles), 0)
+
+
+
+class TestMimeDel(TestBase):
+ def setUp(self):
+ TestBase.setUp(self)
+ self._mlist.filter_content = 1
+ self._mlist.filter_mime_types = ['image/jpeg']
+ self._mlist.convert_html_to_plaintext = 1
+
+ def test_outer_matches(self):
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+Content-Type: image/jpeg
+MIME-Version: 1.0
+
+xxxxx
+""")
+ self.assertRaises(Errors.DiscardMessage, MimeDel.process,
+ self._mlist, msg, {})
+
+ def test_strain_multipart(self):
+ eq = self.assertEqual
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+Content-Type: multipart/mixed; boundary=BOUNDARY
+MIME-Version: 1.0
+
+--BOUNDARY
+Content-Type: image/jpeg
+MIME-Version: 1.0
+
+xxx
+
+--BOUNDARY
+Content-Type: image/gif
+MIME-Version: 1.0
+
+yyy
+--BOUNDARY--
+""")
+ MimeDel.process(self._mlist, msg, {})
+ eq(len(msg.get_payload()), 1)
+ subpart = msg.get_payload(0)
+ eq(subpart.get_type(), 'image/gif')
+ eq(subpart.get_payload(), 'yyy')
+
+ def test_collapse_multipart_alternative(self):
+ eq = self.assertEqual
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+Content-Type: multipart/mixed; boundary=BOUNDARY
+MIME-Version: 1.0
+
+--BOUNDARY
+Content-Type: multipart/alternative; boundary=BOUND2
+MIME-Version: 1.0
+
+--BOUND2
+Content-Type: image/jpeg
+MIME-Version: 1.0
+
+xxx
+
+--BOUND2
+Content-Type: image/gif
+MIME-Version: 1.0
+
+yyy
+--BOUND2--
+
+--BOUNDARY--
+""")
+ MimeDel.process(self._mlist, msg, {})
+ eq(len(msg.get_payload()), 1)
+ eq(msg.get_type(), 'multipart/mixed')
+ subpart = msg.get_payload(0)
+ eq(subpart.get_type(), 'image/gif')
+ eq(subpart.get_payload(), 'yyy')
+
+ def test_convert_to_plaintext(self):
+ # BAW: This test is dependent on your particular lynx version
+ eq = self.assertEqual
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+Content-Type: text/html
+MIME-Version: 1.0
+
+<html><head></head>
+<body></body></html>
+""")
+ MimeDel.process(self._mlist, msg, {})
+ eq(msg.get_type(), 'text/plain')
+ eq(msg.get_payload(), '\n \n\n')
+
+ def test_deep_structure(self):
+ eq = self.assertEqual
+ self._mlist.filter_mime_types.append('text/html')
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+Content-Type: multipart/mixed; boundary=AAA
+
+--AAA
+Content-Type: multipart/mixed; boundary=BBB
+
+--BBB
+Content-Type: image/jpeg
+
+xxx
+--BBB
+Content-Type: image/jpeg
+
+yyy
+--BBB---
+--AAA
+Content-Type: multipart/alternative; boundary=CCC
+
+--CCC
+Content-Type: text/html
+
+<h2>This is a header</h2>
+
+--CCC
+Content-Type: text/plain
+
+A different message
+--CCC--
+--AAA
+Content-Type: image/gif
+
+zzz
+--AAA
+Content-Type: image/gif
+
+aaa
+--AAA--
+""")
+ MimeDel.process(self._mlist, msg, {})
+ payload = msg.get_payload()
+ eq(len(payload), 3)
+ part1 = msg.get_payload(0)
+ eq(part1.get_type(), 'text/plain')
+ eq(part1.get_payload(), 'A different message')
+ part2 = msg.get_payload(1)
+ eq(part2.get_type(), 'image/gif')
+ eq(part2.get_payload(), 'zzz')
+ part3 = msg.get_payload(2)
+ eq(part3.get_type(), 'image/gif')
+ eq(part3.get_payload(), 'aaa')
+
+ def test_top_multipart_alternative(self):
+ eq = self.assertEqual
+ self._mlist.filter_mime_types.append('text/html')
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+Content-Type: multipart/alternative; boundary=AAA
+
+--AAA
+Content-Type: text/html
+
+<b>This is some html</b>
+--AAA
+Content-Type: text/plain
+
+This is plain text
+--AAA--
+""")
+ MimeDel.process(self._mlist, msg, {})
+ eq(msg.get_type(), 'text/plain')
+ eq(msg.get_payload(), 'This is plain text')
+
+
+
+class TestModerate(TestBase):
+ pass
+
+
+
+class TestReplybot(TestBase):
+ pass
+
+
+
+class TestSMTPDirect(TestBase):
+ pass
+
+
+
+class TestSendmail(TestBase):
+ pass
+
+
+
+class TestSpamDetect(TestBase):
+ def test_short_circuit(self):
+ msgdata = {'approved': 1}
+ rtn = SpamDetect.process(self._mlist, None, msgdata)
+ # Not really a great test, but there's little else to assert
+ self.assertEqual(rtn, None)
+
+ def test_spam_detect(self):
+ msg1 = email.message_from_string("""\
+From: aperson@dom.ain
+
+A message.
+""")
+ msg2 = email.message_from_string("""\
+To: xlist@dom.ain
+
+A message.
+""")
+ spammers = mm_cfg.KNOWN_SPAMMERS[:]
+ try:
+ mm_cfg.KNOWN_SPAMMERS.append(('from', '.?person'))
+ self.assertRaises(SpamDetect.SpamDetected,
+ SpamDetect.process, self._mlist, msg1, {})
+ rtn = SpamDetect.process(self._mlist, msg2, {})
+ self.assertEqual(rtn, None)
+ finally:
+ mm_cfg.KNOWN_SPAMMERS = spammers
+
+
+
+class TestTagger(TestBase):
+ def setUp(self):
+ TestBase.setUp(self)
+ self._mlist.topics = [('bar fight', '.*bar.*', 'catch any bars', 1)]
+ self._mlist.topics_enabled = 1
+
+ def test_short_circuit(self):
+ self._mlist.topics_enabled = 0
+ rtn = Tagger.process(self._mlist, None, {})
+ # Not really a great test, but there's little else to assert
+ self.assertEqual(rtn, None)
+
+ def test_simple(self):
+ eq = self.assertEqual
+ mlist = self._mlist
+ mlist.topics_bodylines_limit = 0
+ msg = email.message_from_string("""\
+Subject: foobar
+Keywords: barbaz
+
+""")
+ msgdata = {}
+ Tagger.process(mlist, msg, msgdata)
+ eq(msg['x-topics'], 'bar fight')
+ eq(msgdata.get('topichits'), ['bar fight'])
+
+ def test_all_body_lines_plain_text(self):
+ eq = self.assertEqual
+ mlist = self._mlist
+ mlist.topics_bodylines_limit = -1
+ msg = email.message_from_string("""\
+Subject: Was
+Keywords: Raw
+
+Subject: farbaw
+Keywords: barbaz
+""")
+ msgdata = {}
+ Tagger.process(mlist, msg, msgdata)
+ eq(msg['x-topics'], 'bar fight')
+ eq(msgdata.get('topichits'), ['bar fight'])
+
+ def test_no_body_lines(self):
+ eq = self.assertEqual
+ mlist = self._mlist
+ mlist.topics_bodylines_limit = 0
+ msg = email.message_from_string("""\
+Subject: Was
+Keywords: Raw
+
+Subject: farbaw
+Keywords: barbaz
+""")
+ msgdata = {}
+ Tagger.process(mlist, msg, msgdata)
+ eq(msg['x-topics'], None)
+ eq(msgdata.get('topichits'), None)
+
+ def test_body_lines_in_multipart(self):
+ eq = self.assertEqual
+ mlist = self._mlist
+ mlist.topics_bodylines_limit = -1
+ msg = email.message_from_string("""\
+Subject: Was
+Keywords: Raw
+Content-Type: multipart/alternative; boundary="BOUNDARY"
+
+--BOUNDARY
+From: sabo
+To: obas
+
+Subject: farbaw
+Keywords: barbaz
+
+--BOUNDARY--
+""")
+ msgdata = {}
+ Tagger.process(mlist, msg, msgdata)
+ eq(msg['x-topics'], 'bar fight')
+ eq(msgdata.get('topichits'), ['bar fight'])
+
+ def test_body_lines_no_part(self):
+ eq = self.assertEqual
+ mlist = self._mlist
+ mlist.topics_bodylines_limit = -1
+ msg = email.message_from_string("""\
+Subject: Was
+Keywords: Raw
+Content-Type: multipart/alternative; boundary=BOUNDARY
+
+--BOUNDARY
+From: sabo
+To: obas
+Content-Type: message/rfc822
+
+Subject: farbaw
+Keywords: barbaz
+
+--BOUNDARY
+From: sabo
+To: obas
+Content-Type: message/rfc822
+
+Subject: farbaw
+Keywords: barbaz
+
+--BOUNDARY--
+""")
+ msgdata = {}
+ Tagger.process(mlist, msg, msgdata)
+ eq(msg['x-topics'], None)
+ eq(msgdata.get('topichits'), None)
+
+
+
+class TestToArchive(TestBase):
+ def setUp(self):
+ TestBase.setUp(self)
+ # We're going to want to inspect this queue directory
+ self._sb = Switchboard(mm_cfg.ARCHQUEUE_DIR)
+
+ def tearDown(self):
+ for f in os.listdir(mm_cfg.ARCHQUEUE_DIR):
+ os.unlink(os.path.join(mm_cfg.ARCHQUEUE_DIR, f))
+ TestBase.tearDown(self)
+
+ def test_short_circuit(self):
+ eq = self.assertEqual
+ msgdata = {'isdigest': 1}
+ ToArchive.process(self._mlist, None, msgdata)
+ eq(len(self._sb.files()), 0)
+ # Try the other half of the or...
+ self._mlist.archive = 0
+ ToArchive.process(self._mlist, None, msgdata)
+ eq(len(self._sb.files()), 0)
+ # Now try the various message header shortcuts
+ msg = email.message_from_string("""\
+X-No-Archive: YES
+
+""")
+ self._mlist.archive = 1
+ ToArchive.process(self._mlist, msg, {})
+ eq(len(self._sb.files()), 0)
+ # And for backwards compatibility
+ msg = email.message_from_string("""\
+X-Archive: NO
+
+""")
+ ToArchive.process(self._mlist, msg, {})
+ eq(len(self._sb.files()), 0)
+
+ def test_normal_archiving(self):
+ eq = self.assertEqual
+ msg = email.message_from_string("""\
+Subject: About Mailman
+
+It rocks!
+""")
+ ToArchive.process(self._mlist, msg, {})
+ files = self._sb.files()
+ eq(len(files), 1)
+ msg2, data = self._sb.dequeue(files[0])
+ eq(len(data), 2)
+ eq(data['version'], 3)
+ # Clock skew makes this unreliable
+ #self.failUnless(data['received_time'] <= time.time())
+ eq(msg.as_string(unixfrom=0), msg2.as_string(unixfrom=0))
+
+
+
+class TestToDigest(TestBase):
+ def _makemsg(self, i=0):
+ msg = email.message_from_string("""From: aperson@dom.ain
+To: _xtest@dom.ain
+Subject: message number %(i)d
+
+Here is message %(i)d
+""" % {'i' : i})
+ return msg
+
+ def setUp(self):
+ TestBase.setUp(self)
+ self._path = os.path.join(self._mlist.fullpath(), 'digest.mbox')
+ fp = open(self._path, 'w')
+ g = Generator(fp)
+ for i in range(5):
+ g(self._makemsg(i), unixfrom=1)
+ fp.close()
+ self._sb = Switchboard(mm_cfg.VIRGINQUEUE_DIR)
+
+ def tearDown(self):
+ try:
+ os.unlink(self._path)
+ except OSError, e:
+ if e.errno <> errno.ENOENT: raise
+ for f in os.listdir(mm_cfg.VIRGINQUEUE_DIR):
+ os.unlink(os.path.join(mm_cfg.VIRGINQUEUE_DIR, f))
+ TestBase.tearDown(self)
+
+ def test_short_circuit(self):
+ eq = self.assertEqual
+ mlist = self._mlist
+ mlist.digestable = 0
+ eq(ToDigest.process(mlist, None, {}), None)
+ mlist.digestable = 1
+ eq(ToDigest.process(mlist, None, {'isdigest': 1}), None)
+ eq(self._sb.files(), [])
+
+ def test_undersized(self):
+ msg = self._makemsg(99)
+ size = os.path.getsize(self._path) + len(str(msg))
+ self._mlist.digest_size_threshhold = (size + 1) * 1024
+ ToDigest.process(self._mlist, msg, {})
+ self.assertEqual(self._sb.files(), [])
+
+ def test_send_a_digest(self):
+ eq = self.assertEqual
+ mlist = self._mlist
+ msg = self._makemsg(99)
+ size = os.path.getsize(self._path) + len(str(msg))
+ mlist.digest_size_threshhold = 0
+ ToDigest.process(mlist, msg, {})
+ files = self._sb.files()
+ # There should be two files in the queue, one for the MIME digest and
+ # one for the RFC 1153 digest.
+ eq(len(files), 2)
+ # Now figure out which of the two files is the MIME digest and which
+ # is the RFC 1153 digest.
+ for filebase in files:
+ qmsg, qdata = self._sb.dequeue(filebase)
+ if qmsg['mime-version']:
+ mimemsg = qmsg
+ mimedata = qdata
+ else:
+ rfc1153msg = qmsg
+ rfc1153data = qdata
+ eq(mimemsg.get_type(), 'multipart/mixed')
+ eq(mimemsg['from'], mlist.GetRequestEmail())
+ eq(mimemsg['subject'],
+ '%(realname)s Digest, Vol %(volume)d, Issue %(issue)d' % {
+ 'realname': mlist.real_name,
+ 'volume' : mlist.volume,
+ 'issue' : mlist.next_digest_number - 1,
+ })
+ eq(mimemsg['to'], mlist.GetListEmail())
+ # BAW: this test is incomplete...
+
+
+
+class TestToOutgoing(TestBase):
+ def setUp(self):
+ TestBase.setUp(self)
+ # We're going to want to inspect this queue directory
+ self._sb = Switchboard(mm_cfg.OUTQUEUE_DIR)
+
+ def tearDown(self):
+ for f in os.listdir(mm_cfg.OUTQUEUE_DIR):
+ os.unlink(os.path.join(mm_cfg.OUTQUEUE_DIR, f))
+ TestBase.tearDown(self)
+
+ def test_outgoing(self):
+ eq = self.assertEqual
+ msg = email.message_from_string("""\
+Subject: About Mailman
+
+It rocks!
+""")
+ msgdata = {'foo': 1, 'bar': 2}
+ ToOutgoing.process(self._mlist, msg, msgdata)
+ files = self._sb.files()
+ eq(len(files), 1)
+ msg2, data = self._sb.dequeue(files[0])
+ eq(msg.as_string(unixfrom=0), msg2.as_string(unixfrom=0))
+ eq(len(data), 6)
+ eq(data['foo'], 1)
+ eq(data['bar'], 2)
+ eq(data['version'], 3)
+ eq(data['listname'], '_xtest')
+ eq(data['verp'], 0)
+ # Clock skew makes this unreliable
+ #self.failUnless(data['received_time'] <= time.time())
+
+
+
+class TestToUsenet(TestBase):
+ def setUp(self):
+ TestBase.setUp(self)
+ # We're going to want to inspect this queue directory
+ self._sb = Switchboard(mm_cfg.NEWSQUEUE_DIR)
+
+ def tearDown(self):
+ for f in os.listdir(mm_cfg.NEWSQUEUE_DIR):
+ os.unlink(os.path.join(mm_cfg.NEWSQUEUE_DIR, f))
+ TestBase.tearDown(self)
+
+ def test_short_circuit(self):
+ eq = self.assertEqual
+ mlist = self._mlist
+ mlist.gateway_to_news = 0
+ ToUsenet.process(mlist, None, {})
+ eq(len(self._sb.files()), 0)
+ mlist.gateway_to_news = 1
+ ToUsenet.process(mlist, None, {'isdigest': 1})
+ eq(len(self._sb.files()), 0)
+ ToUsenet.process(mlist, None, {'fromusenet': 1})
+ eq(len(self._sb.files()), 0)
+
+ def test_to_usenet(self):
+ # BAW: Should we, can we, test the error conditions that only log to a
+ # file instead of raising an exception?
+ eq = self.assertEqual
+ mlist = self._mlist
+ mlist.gateway_to_news = 1
+ mlist.linked_newsgroup = 'foo'
+ mlist.nntp_host = 'bar'
+ msg = email.message_from_string("""\
+Subject: About Mailman
+
+Mailman rocks!
+""")
+ ToUsenet.process(mlist, msg, {})
+ files = self._sb.files()
+ eq(len(files), 1)
+ msg2, data = self._sb.dequeue(files[0])
+ eq(msg.as_string(unixfrom=0), msg2.as_string(unixfrom=0))
+ eq(data['version'], 3)
+ eq(data['listname'], '_xtest')
+ # Clock skew makes this unreliable
+ #self.failUnless(data['received_time'] <= time.time())
+
+
+
+def suite():
+ suite = unittest.TestSuite()
+ suite.addTest(unittest.makeSuite(TestAcknowledge))
+ suite.addTest(unittest.makeSuite(TestAfterDelivery))
+ suite.addTest(unittest.makeSuite(TestApprove))
+ suite.addTest(unittest.makeSuite(TestCalcRecips))
+ suite.addTest(unittest.makeSuite(TestCleanse))
+ suite.addTest(unittest.makeSuite(TestCookHeaders))
+ suite.addTest(unittest.makeSuite(TestDecorate))
+ suite.addTest(unittest.makeSuite(TestFileRecips))
+ suite.addTest(unittest.makeSuite(TestHold))
+ suite.addTest(unittest.makeSuite(TestMimeDel))
+ suite.addTest(unittest.makeSuite(TestModerate))
+ suite.addTest(unittest.makeSuite(TestReplybot))
+ suite.addTest(unittest.makeSuite(TestSMTPDirect))
+ suite.addTest(unittest.makeSuite(TestSendmail))
+ suite.addTest(unittest.makeSuite(TestSpamDetect))
+ suite.addTest(unittest.makeSuite(TestTagger))
+ suite.addTest(unittest.makeSuite(TestToArchive))
+ suite.addTest(unittest.makeSuite(TestToDigest))
+ suite.addTest(unittest.makeSuite(TestToOutgoing))
+ suite.addTest(unittest.makeSuite(TestToUsenet))
+ return suite
+
+
+
+if __name__ == '__main__':
+ unittest.main(defaultTest='suite')
diff --git a/tests/test_lockfile.py b/tests/test_lockfile.py
new file mode 100644
index 00000000..7f300c6b
--- /dev/null
+++ b/tests/test_lockfile.py
@@ -0,0 +1,45 @@
+# Copyright (C) 2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Unit tests for the LockFile class.
+"""
+
+import unittest
+
+from Mailman.LockFile import LockFile
+
+LOCKFILE_NAME = '/tmp/.mm-test-lock'
+
+
+
+class TestLockFile(unittest.TestCase):
+ def test_two_lockfiles_same_proc(self):
+ lf1 = LockFile(LOCKFILE_NAME)
+ lf2 = LockFile(LOCKFILE_NAME)
+ lf1.lock()
+ self.failIf(lf2.locked())
+
+
+
+def suite():
+ suite = unittest.TestSuite()
+ suite.addTest(unittest.makeSuite(TestLockFile))
+ return suite
+
+
+
+if __name__ == '__main__':
+ unittest.main(defaultTest='suite')
diff --git a/tests/test_membership.py b/tests/test_membership.py
new file mode 100644
index 00000000..c3850186
--- /dev/null
+++ b/tests/test_membership.py
@@ -0,0 +1,380 @@
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Unit tests for OldStyleMemberships.
+"""
+
+import os
+import time
+import unittest
+
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman import MailList
+from Mailman import MemberAdaptor
+from Mailman.Errors import NotAMemberError
+from Mailman.UserDesc import UserDesc
+
+from TestBase import TestBase
+
+
+
+class TestNoMembers(TestBase):
+ def test_no_member(self):
+ eq = self.assertEqual
+ raises = self.assertRaises
+ mlist = self._mlist
+ eq(mlist.getMembers(), [])
+ eq(mlist.getRegularMemberKeys(), [])
+ eq(mlist.getDigestMemberKeys(), [])
+ self.failIf(mlist.isMember('nobody@dom.ain'))
+ raises(NotAMemberError, mlist.getMemberKey, 'nobody@dom.ain')
+ raises(NotAMemberError, mlist.getMemberCPAddress, 'nobody@dom.ain')
+ eq(mlist.getMemberCPAddresses(('nobody@dom.ain', 'noperson@dom.ain')),
+ [None, None])
+ raises(NotAMemberError, mlist.getMemberPassword, 'nobody@dom.ain')
+ raises(NotAMemberError, mlist.authenticateMember,
+ 'nobody@dom.ain', 'blarg')
+ eq(mlist.getMemberLanguage('nobody@dom.ain'), mlist.preferred_language)
+ raises(NotAMemberError, mlist.getMemberOption,
+ 'nobody@dom.ain', mm_cfg.AcknowledgePosts)
+ raises(NotAMemberError, mlist.getMemberName, 'nobody@dom.ain')
+ raises(NotAMemberError, mlist.getMemberTopics, 'nobody@dom.ain')
+ raises(NotAMemberError, mlist.removeMember, 'nobody@dom.ain')
+
+ def test_add_member_mixed_case(self):
+ eq = self.assertEqual
+ mlist = self._mlist
+ mlist.addNewMember('APerson@dom.AIN')
+ eq(mlist.getMembers(), ['aperson@dom.ain'])
+ eq(mlist.getRegularMemberKeys(), ['aperson@dom.ain'])
+ self.failUnless(mlist.isMember('APerson@dom.AIN'))
+ self.failUnless(mlist.isMember('aperson@dom.ain'))
+ self.failUnless(mlist.isMember('APERSON@DOM.AIN'))
+ eq(mlist.getMemberCPAddress('aperson@dom.ain'), 'APerson@dom.AIN')
+ eq(mlist.getMemberCPAddress('APerson@dom.ain'), 'APerson@dom.AIN')
+ eq(mlist.getMemberCPAddress('APERSON@DOM.AIN'), 'APerson@dom.AIN')
+ eq(mlist.getMemberCPAddresses(('aperson@dom.ain',)),
+ ['APerson@dom.AIN'])
+ eq(mlist.getMemberCPAddresses(('APerson@dom.ain',)),
+ ['APerson@dom.AIN'])
+ eq(mlist.getMemberCPAddresses(('APERSON@DOM.AIN',)),
+ ['APerson@dom.AIN'])
+
+
+
+class TestMembers(TestBase):
+ def setUp(self):
+ TestBase.setUp(self)
+ self._mlist.addNewMember('person@dom.ain',
+ digest=0,
+ password='xxXXxx',
+ language='xx',
+ realname='A. Nice Person')
+
+ def test_add_member(self):
+ eq = self.assertEqual
+ mlist = self._mlist
+ eq(mlist.getMembers(), ['person@dom.ain'])
+ eq(mlist.getRegularMemberKeys(), ['person@dom.ain'])
+ eq(mlist.getDigestMemberKeys(), [])
+ self.failUnless(mlist.isMember('person@dom.ain'))
+ eq(mlist.getMemberKey('person@dom.ain'), 'person@dom.ain')
+ eq(mlist.getMemberCPAddress('person@dom.ain'), 'person@dom.ain')
+ eq(mlist.getMemberCPAddresses(('person@dom.ain', 'noperson@dom.ain')),
+ ['person@dom.ain', None])
+ eq(mlist.getMemberPassword('person@dom.ain'), 'xxXXxx')
+ eq(mlist.getMemberLanguage('person@dom.ain'), 'xx')
+ eq(mlist.getMemberOption('person@dom.ain', mm_cfg.Digests), 0)
+ eq(mlist.getMemberOption('person@dom.ain', mm_cfg.AcknowledgePosts), 0)
+ eq(mlist.getMemberName('person@dom.ain'), 'A. Nice Person')
+ eq(mlist.getMemberTopics('person@dom.ain'), [])
+
+ def test_authentication(self):
+ mlist = self._mlist
+ self.failIf(mlist.authenticateMember('person@dom.ain', 'xxx'))
+ self.assertEqual(mlist.authenticateMember('person@dom.ain', 'xxXXxx'),
+ 'xxXXxx')
+
+ def test_remove_member(self):
+ eq = self.assertEqual
+ raises = self.assertRaises
+ mlist = self._mlist
+ mlist.removeMember('person@dom.ain')
+ eq(mlist.getMembers(), [])
+ eq(mlist.getRegularMemberKeys(), [])
+ eq(mlist.getDigestMemberKeys(), [])
+ self.failIf(mlist.isMember('person@dom.ain'))
+ raises(NotAMemberError, mlist.getMemberKey, 'person@dom.ain')
+ raises(NotAMemberError, mlist.getMemberCPAddress, 'person@dom.ain')
+ eq(mlist.getMemberCPAddresses(('person@dom.ain', 'noperson@dom.ain')),
+ [None, None])
+ raises(NotAMemberError, mlist.getMemberPassword, 'person@dom.ain')
+ raises(NotAMemberError, mlist.authenticateMember,
+ 'person@dom.ain', 'blarg')
+ eq(mlist.getMemberLanguage('person@dom.ain'), mlist.preferred_language)
+ raises(NotAMemberError, mlist.getMemberOption,
+ 'person@dom.ain', mm_cfg.AcknowledgePosts)
+ raises(NotAMemberError, mlist.getMemberName, 'person@dom.ain')
+ raises(NotAMemberError, mlist.getMemberTopics, 'person@dom.ain')
+
+ def test_remove_member_clears(self):
+ eq = self.assertEqual
+ raises = self.assertRaises
+ # We don't really care what the bounce info is
+ class Info: pass
+ info = Info()
+ mlist = self._mlist
+ mlist.setBounceInfo('person@dom.ain', info)
+ mlist.setDeliveryStatus('person@dom.ain', MemberAdaptor.BYADMIN)
+ mlist.removeMember('person@dom.ain')
+ raises(NotAMemberError, mlist.getDeliveryStatus, 'person@dom.ain')
+ raises(NotAMemberError, mlist.getDeliveryStatusChangeTime,
+ 'person@dom.ain')
+ raises(NotAMemberError, mlist.getBounceInfo, 'person@dom.ain')
+ eq(mlist.getDeliveryStatusMembers(), [])
+ eq(mlist.getBouncingMembers(), [])
+
+ def test_change_address(self):
+ eq = self.assertEqual
+ raises = self.assertRaises
+ mlist = self._mlist
+ mlist.changeMemberAddress('person@dom.ain', 'nice@dom.ain')
+ # Check the new address
+ eq(mlist.getMembers(), ['nice@dom.ain'])
+ eq(mlist.getRegularMemberKeys(), ['nice@dom.ain'])
+ eq(mlist.getDigestMemberKeys(), [])
+ self.failUnless(mlist.isMember('nice@dom.ain'))
+ eq(mlist.getMemberKey('nice@dom.ain'), 'nice@dom.ain')
+ eq(mlist.getMemberCPAddress('nice@dom.ain'), 'nice@dom.ain')
+ eq(mlist.getMemberCPAddresses(('nice@dom.ain', 'nonice@dom.ain')),
+ ['nice@dom.ain', None])
+ eq(mlist.getMemberPassword('nice@dom.ain'), 'xxXXxx')
+ eq(mlist.getMemberLanguage('nice@dom.ain'), 'xx')
+ eq(mlist.getMemberOption('nice@dom.ain', mm_cfg.Digests), 0)
+ eq(mlist.getMemberOption('nice@dom.ain', mm_cfg.AcknowledgePosts), 0)
+ eq(mlist.getMemberName('nice@dom.ain'), 'A. Nice Person')
+ eq(mlist.getMemberTopics('nice@dom.ain'), [])
+ # Check the old address
+ eq(mlist.getMembers(), ['nice@dom.ain'])
+ eq(mlist.getRegularMemberKeys(), ['nice@dom.ain'])
+ eq(mlist.getDigestMemberKeys(), [])
+ self.failIf(mlist.isMember('person@dom.ain'))
+ raises(NotAMemberError, mlist.getMemberKey, 'person@dom.ain')
+ raises(NotAMemberError, mlist.getMemberCPAddress, 'person@dom.ain')
+ eq(mlist.getMemberCPAddresses(('person@dom.ain', 'noperson@dom.ain')),
+ [None, None])
+ raises(NotAMemberError, mlist.getMemberPassword, 'person@dom.ain')
+ raises(NotAMemberError, mlist.authenticateMember,
+ 'person@dom.ain', 'blarg')
+ eq(mlist.getMemberLanguage('person@dom.ain'), mlist.preferred_language)
+ raises(NotAMemberError, mlist.getMemberOption,
+ 'person@dom.ain', mm_cfg.AcknowledgePosts)
+ raises(NotAMemberError, mlist.getMemberName, 'person@dom.ain')
+ raises(NotAMemberError, mlist.getMemberTopics, 'person@dom.ain')
+
+ def test_set_password(self):
+ eq = self.assertEqual
+ mlist = self._mlist
+ mlist.setMemberPassword('person@dom.ain', 'yyYYyy')
+ eq(mlist.getMemberPassword('person@dom.ain'), 'yyYYyy')
+ eq(mlist.authenticateMember('person@dom.ain', 'yyYYyy'), 'yyYYyy')
+ self.failIf(mlist.authenticateMember('person@dom.ain', 'xxXXxx'))
+
+ def test_set_language(self):
+ self._mlist.setMemberLanguage('person@dom.ain', 'yy')
+ self.assertEqual(self._mlist.getMemberLanguage('person@dom.ain'), 'yy')
+
+ def test_basic_option(self):
+ eq = self.assertEqual
+ gmo = self._mlist.getMemberOption
+ # First test the current option values
+ eq(gmo('person@dom.ain', mm_cfg.Digests), 0)
+ eq(gmo('person@dom.ain', mm_cfg.DontReceiveOwnPosts), 0)
+ eq(gmo('person@dom.ain', mm_cfg.AcknowledgePosts), 0)
+ eq(gmo('person@dom.ain', mm_cfg.DisableMime), 0)
+ eq(gmo('person@dom.ain', mm_cfg.ConcealSubscription), 0)
+ eq(gmo('person@dom.ain', mm_cfg.SuppressPasswordReminder), 0)
+ eq(gmo('person@dom.ain', mm_cfg.ReceiveNonmatchingTopics), 0)
+
+ def test_set_digests(self):
+ eq = self.assertEqual
+ gmo = self._mlist.getMemberOption
+ self._mlist.setMemberOption('person@dom.ain', mm_cfg.Digests, 1)
+ eq(gmo('person@dom.ain', mm_cfg.Digests), 1)
+ eq(gmo('person@dom.ain', mm_cfg.DontReceiveOwnPosts), 0)
+ eq(gmo('person@dom.ain', mm_cfg.AcknowledgePosts), 0)
+ eq(gmo('person@dom.ain', mm_cfg.DisableMime), 0)
+ eq(gmo('person@dom.ain', mm_cfg.ConcealSubscription), 0)
+ eq(gmo('person@dom.ain', mm_cfg.SuppressPasswordReminder), 0)
+ eq(gmo('person@dom.ain', mm_cfg.ReceiveNonmatchingTopics), 0)
+
+ def test_set_disable_delivery(self):
+ eq = self.assertEqual
+ gds = self._mlist.getDeliveryStatus
+ eq(gds('person@dom.ain'), MemberAdaptor.ENABLED)
+ self._mlist.setDeliveryStatus('person@dom.ain', MemberAdaptor.UNKNOWN)
+ eq(gds('person@dom.ain'), MemberAdaptor.UNKNOWN)
+ self._mlist.setDeliveryStatus('person@dom.ain', MemberAdaptor.BYUSER)
+ eq(gds('person@dom.ain'), MemberAdaptor.BYUSER)
+ self._mlist.setDeliveryStatus('person@dom.ain', MemberAdaptor.BYBOUNCE)
+ eq(gds('person@dom.ain'), MemberAdaptor.BYBOUNCE)
+ self._mlist.setDeliveryStatus('person@dom.ain', MemberAdaptor.BYADMIN)
+ eq(gds('person@dom.ain'), MemberAdaptor.BYADMIN)
+
+ def test_delivery_status_time(self):
+ now = time.time()
+ time.sleep(1)
+ self._mlist.setDeliveryStatus('person@dom.ain', MemberAdaptor.BYUSER)
+ self.failUnless(
+ self._mlist.getDeliveryStatusChangeTime('person@dom.ain')
+ > now)
+ self._mlist.setDeliveryStatus('person@dom.ain', MemberAdaptor.ENABLED)
+ self.assertEqual(
+ self._mlist.getDeliveryStatusChangeTime('person@dom.ain'),
+ 0)
+
+ def test_set_dont_receive_own_posts(self):
+ eq = self.assertEqual
+ gmo = self._mlist.getMemberOption
+ self._mlist.setMemberOption('person@dom.ain',
+ mm_cfg.DontReceiveOwnPosts, 1)
+ eq(gmo('person@dom.ain', mm_cfg.Digests), 0)
+ eq(gmo('person@dom.ain', mm_cfg.DontReceiveOwnPosts), 1)
+ eq(gmo('person@dom.ain', mm_cfg.AcknowledgePosts), 0)
+ eq(gmo('person@dom.ain', mm_cfg.DisableMime), 0)
+ eq(gmo('person@dom.ain', mm_cfg.ConcealSubscription), 0)
+ eq(gmo('person@dom.ain', mm_cfg.SuppressPasswordReminder), 0)
+ eq(gmo('person@dom.ain', mm_cfg.ReceiveNonmatchingTopics), 0)
+
+ def test_set_acknowledge_posts(self):
+ eq = self.assertEqual
+ gmo = self._mlist.getMemberOption
+ self._mlist.setMemberOption('person@dom.ain',
+ mm_cfg.AcknowledgePosts, 1)
+ eq(gmo('person@dom.ain', mm_cfg.Digests), 0)
+ eq(gmo('person@dom.ain', mm_cfg.DontReceiveOwnPosts), 0)
+ eq(gmo('person@dom.ain', mm_cfg.AcknowledgePosts), 1)
+ eq(gmo('person@dom.ain', mm_cfg.DisableMime), 0)
+ eq(gmo('person@dom.ain', mm_cfg.ConcealSubscription), 0)
+ eq(gmo('person@dom.ain', mm_cfg.SuppressPasswordReminder), 0)
+ eq(gmo('person@dom.ain', mm_cfg.ReceiveNonmatchingTopics), 0)
+
+ def test_disable_mime(self):
+ eq = self.assertEqual
+ gmo = self._mlist.getMemberOption
+ self._mlist.setMemberOption('person@dom.ain',
+ mm_cfg.DisableMime, 1)
+ eq(gmo('person@dom.ain', mm_cfg.Digests), 0)
+ eq(gmo('person@dom.ain', mm_cfg.DontReceiveOwnPosts), 0)
+ eq(gmo('person@dom.ain', mm_cfg.AcknowledgePosts), 0)
+ eq(gmo('person@dom.ain', mm_cfg.DisableMime), 1)
+ eq(gmo('person@dom.ain', mm_cfg.ConcealSubscription), 0)
+ eq(gmo('person@dom.ain', mm_cfg.SuppressPasswordReminder), 0)
+ eq(gmo('person@dom.ain', mm_cfg.ReceiveNonmatchingTopics), 0)
+
+ def test_conceal_subscription(self):
+ eq = self.assertEqual
+ gmo = self._mlist.getMemberOption
+ self._mlist.setMemberOption('person@dom.ain',
+ mm_cfg.ConcealSubscription, 1)
+ eq(gmo('person@dom.ain', mm_cfg.Digests), 0)
+ eq(gmo('person@dom.ain', mm_cfg.DontReceiveOwnPosts), 0)
+ eq(gmo('person@dom.ain', mm_cfg.AcknowledgePosts), 0)
+ eq(gmo('person@dom.ain', mm_cfg.DisableMime), 0)
+ eq(gmo('person@dom.ain', mm_cfg.ConcealSubscription), 1)
+ eq(gmo('person@dom.ain', mm_cfg.SuppressPasswordReminder), 0)
+ eq(gmo('person@dom.ain', mm_cfg.ReceiveNonmatchingTopics), 0)
+
+ def test_suppress_password_reminder(self):
+ eq = self.assertEqual
+ gmo = self._mlist.getMemberOption
+ self._mlist.setMemberOption('person@dom.ain',
+ mm_cfg.SuppressPasswordReminder, 1)
+ eq(gmo('person@dom.ain', mm_cfg.Digests), 0)
+ eq(gmo('person@dom.ain', mm_cfg.DontReceiveOwnPosts), 0)
+ eq(gmo('person@dom.ain', mm_cfg.AcknowledgePosts), 0)
+ eq(gmo('person@dom.ain', mm_cfg.DisableMime), 0)
+ eq(gmo('person@dom.ain', mm_cfg.ConcealSubscription), 0)
+ eq(gmo('person@dom.ain', mm_cfg.SuppressPasswordReminder), 1)
+ eq(gmo('person@dom.ain', mm_cfg.ReceiveNonmatchingTopics), 0)
+
+ def test_receive_nonmatching_topics(self):
+ eq = self.assertEqual
+ gmo = self._mlist.getMemberOption
+ self._mlist.setMemberOption('person@dom.ain',
+ mm_cfg.ReceiveNonmatchingTopics, 1)
+ eq(gmo('person@dom.ain', mm_cfg.Digests), 0)
+ eq(gmo('person@dom.ain', mm_cfg.DontReceiveOwnPosts), 0)
+ eq(gmo('person@dom.ain', mm_cfg.AcknowledgePosts), 0)
+ eq(gmo('person@dom.ain', mm_cfg.DisableMime), 0)
+ eq(gmo('person@dom.ain', mm_cfg.ConcealSubscription), 0)
+ eq(gmo('person@dom.ain', mm_cfg.SuppressPasswordReminder), 0)
+ eq(gmo('person@dom.ain', mm_cfg.ReceiveNonmatchingTopics), 1)
+
+ def test_member_name(self):
+ self._mlist.setMemberName('person@dom.ain', 'A. Good Person')
+ self.assertEqual(self._mlist.getMemberName('person@dom.ain'),
+ 'A. Good Person')
+
+ def test_member_topics(self):
+ eq = self.assertEqual
+ mlist = self._mlist
+ mlist.setMemberTopics('person@dom.ain', ['topic1', 'topic2', 'topic3'])
+ eq(mlist.getMemberTopics('person@dom.ain'),
+ ['topic1', 'topic2', 'topic3'])
+ mlist.setMemberTopics('person@dom.ain', None)
+ eq(mlist.getMemberTopics('person@dom.ain'), [])
+
+ def test_bounce_info(self):
+ eq = self.assertEqual
+ mlist = self._mlist
+ # We don't really care what info is stored
+ class Info: pass
+ info = Info()
+ # Test setting and getting
+ mlist.setBounceInfo('person@dom.ain', info)
+ eq(mlist.getBounceInfo('person@dom.ain'), info)
+ # Test case sensitivity
+ eq(mlist.getBounceInfo('PERSON@dom.ain'), info)
+ info2 = Info()
+ mlist.setBounceInfo('PeRsOn@dom.ain', info2)
+ eq(mlist.getBounceInfo('person@dom.ain'), info2)
+ eq(mlist.getBounceInfo('PeRsOn@dom.ain'), info2)
+ eq(mlist.getBounceInfo('PERSON@DOM.AIN'), info2)
+ # Test getBouncingMembers...
+ eq(mlist.getBouncingMembers(), ['person@dom.ain'])
+ # Test clearing bounce information...
+ mlist.setBounceInfo('person@dom.ain', None)
+ eq(mlist.getBouncingMembers(), [])
+ eq(mlist.getBounceInfo('person@dom.ain'), None)
+ # Make sure that you can clear the attributes case insensitively
+ mlist.setBounceInfo('person@dom.ain', info)
+ mlist.setBounceInfo('PERSON@dom.ain', None)
+ eq(mlist.getBouncingMembers(), [])
+
+
+
+def suite():
+ suite = unittest.TestSuite()
+ suite.addTest(unittest.makeSuite(TestNoMembers))
+ suite.addTest(unittest.makeSuite(TestMembers))
+ return suite
+
+
+
+if __name__ == '__main__':
+ unittest.main(defaultTest='suite')
diff --git a/tests/test_message.py b/tests/test_message.py
new file mode 100644
index 00000000..7a104f05
--- /dev/null
+++ b/tests/test_message.py
@@ -0,0 +1,102 @@
+# Copyright (C) 2001 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Unit tests for the various Message class methods.
+"""
+
+import unittest
+import email
+
+from Mailman import Message
+from Mailman import Version
+from Mailman import Errors
+
+from EmailBase import EmailBase
+
+
+
+class TestSentMessage(EmailBase):
+ def test_user_notification(self):
+ eq = self.assertEqual
+ unless = self.failUnless
+ msg = Message.UserNotification(
+ 'aperson@dom.ain',
+ '_xtest@dom.ain',
+ 'Your Test List',
+ 'About your test list')
+ msg.send(self._mlist)
+ qmsg = email.message_from_string(self._readmsg())
+ eq(qmsg['subject'], 'Your Test List')
+ eq(qmsg['from'], '_xtest@dom.ain')
+ eq(qmsg['to'], 'aperson@dom.ain')
+ # The Message-ID: header has some time-variant information
+ msgid = qmsg['message-id']
+ unless(msgid.startswith('<mailman.'))
+ unless(msgid.endswith('._xtest@dom.ain>'))
+ eq(qmsg['sender'], '_xtest-admin@dom.ain')
+ eq(qmsg['errors-to'], '_xtest-admin@dom.ain')
+ eq(qmsg['x-beenthere'], '_xtest@dom.ain')
+ eq(qmsg['x-mailman-version'], Version.VERSION)
+ eq(qmsg['precedence'], 'bulk')
+ eq(qmsg['list-help'], '<mailto:_xtest-request@dom.ain?subject=help>')
+ eq(qmsg['list-post'], '<mailto:_xtest@dom.ain>')
+ eq(qmsg['list-subscribe'], """\
+<http://www.dom.ain/mailman/listinfo/_xtest>,
+ <mailto:_xtest-request@dom.ain?subject=subscribe>""")
+ eq(qmsg['list-id'], '<_xtest.dom.ain>')
+ eq(qmsg['list-unsubscribe'], """\
+<http://www.dom.ain/mailman/listinfo/_xtest>,
+ <mailto:_xtest-request@dom.ain?subject=unsubscribe>""")
+ eq(qmsg['list-archive'], '<http://www.dom.ain/pipermail/_xtest>')
+ eq(qmsg.get_payload(), 'About your test list')
+
+ def test_bounce_message(self):
+ eq = self.assertEqual
+ unless = self.failUnless
+ msg = email.message_from_string("""\
+To: _xtest@dom.ain
+From: nobody@dom.ain
+Subject: and another thing
+
+yadda yadda yadda
+""", Message.Message)
+ self._mlist.BounceMessage(msg, {})
+ qmsg = email.message_from_string(self._readmsg())
+ unless(qmsg.is_multipart())
+ eq(len(qmsg.get_payload()), 2)
+ # The first payload is the details of the bounce action, and the
+ # second message is the message/rfc822 attachment of the original
+ # message.
+ msg1 = qmsg.get_payload(0)
+ eq(msg1.get_type(), 'text/plain')
+ eq(msg1.get_payload(), '[No bounce details are available]\n')
+ msg2 = qmsg.get_payload(1)
+ eq(msg2.get_type(), 'message/rfc822')
+ unless(not msg2.is_multipart())
+ msg3 = msg2.get_payload()
+ eq(msg3.get_payload(), 'yadda yadda yadda\n')
+
+
+
+def suite():
+ suite = unittest.TestSuite()
+ suite.addTest(unittest.makeSuite(TestSentMessage))
+ return suite
+
+
+
+if __name__ == '__main__':
+ unittest.main(defaultTest='suite')
diff --git a/tests/test_runners.py b/tests/test_runners.py
new file mode 100644
index 00000000..6363ac66
--- /dev/null
+++ b/tests/test_runners.py
@@ -0,0 +1,120 @@
+# Copyright (C) 2001 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Unit tests for the various Mailman/Queue/*Runner.py modules
+"""
+
+import unittest
+import email
+
+from Mailman.Queue.NewsRunner import prepare_message
+
+from TestBase import TestBase
+
+
+
+class TestPrepMessage(TestBase):
+ def test_remove_unacceptables(self):
+ eq = self.assertEqual
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+To: _xtest@dom.ain
+NNTP-Posting-Host: news.dom.ain
+NNTP-Posting-Date: today
+X-Trace: blah blah
+X-Complaints-To: abuse@dom.ain
+Xref: blah blah
+Xref: blah blah
+Date-Received: yesterday
+Posted: tomorrow
+Posting-Version: 99.99
+Relay-Version: 88.88
+Received: blah blah
+
+A message
+""")
+ msgdata = {}
+ prepare_message(self._mlist, msg, msgdata)
+ eq(msgdata.get('prepped'), 1)
+ eq(msg['from'], 'aperson@dom.ain')
+ eq(msg['to'], '_xtest@dom.ain')
+ eq(msg['nntp-posting-host'], None)
+ eq(msg['nntp-posting-date'], None)
+ eq(msg['x-trace'], None)
+ eq(msg['x-complaints-to'], None)
+ eq(msg['xref'], None)
+ eq(msg['date-received'], None)
+ eq(msg['posted'], None)
+ eq(msg['posting-version'], None)
+ eq(msg['relay-version'], None)
+ eq(msg['received'], None)
+
+ def test_munge_duplicates_no_duplicates(self):
+ eq = self.assertEqual
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+To: _xtest@dom.ain
+Cc: someother@dom.ain
+Content-Transfer-Encoding: yes
+
+A message
+""")
+ msgdata = {}
+ prepare_message(self._mlist, msg, msgdata)
+ eq(msgdata.get('prepped'), 1)
+ eq(msg['from'], 'aperson@dom.ain')
+ eq(msg['to'], '_xtest@dom.ain')
+ eq(msg['cc'], 'someother@dom.ain')
+ eq(msg['content-transfer-encoding'], 'yes')
+
+ def test_munge_duplicates(self):
+ eq = self.assertEqual
+ msg = email.message_from_string("""\
+From: aperson@dom.ain
+To: _xtest@dom.ain
+To: two@dom.ain
+Cc: three@dom.ain
+Cc: four@dom.ain
+Cc: five@dom.ain
+Content-Transfer-Encoding: yes
+Content-Transfer-Encoding: no
+Content-Transfer-Encoding: maybe
+
+A message
+""")
+ msgdata = {}
+ prepare_message(self._mlist, msg, msgdata)
+ eq(msgdata.get('prepped'), 1)
+ eq(msg.get_all('from'), ['aperson@dom.ain'])
+ eq(msg.get_all('to'), ['_xtest@dom.ain'])
+ eq(msg.get_all('cc'), ['three@dom.ain'])
+ eq(msg.get_all('content-transfer-encoding'), ['yes'])
+ eq(msg.get_all('x-original-to'), ['two@dom.ain'])
+ eq(msg.get_all('x-original-cc'), ['four@dom.ain', 'five@dom.ain'])
+ eq(msg.get_all('x-original-content-transfer-encoding'),
+ ['no', 'maybe'])
+
+
+
+def suite():
+ suite = unittest.TestSuite()
+ suite.addTest(unittest.makeSuite(TestPrepMessage))
+ return suite
+
+
+
+if __name__ == '__main__':
+ unittest.main(defaultTest='suite')
diff --git a/tests/test_safedict.py b/tests/test_safedict.py
new file mode 100644
index 00000000..ac340918
--- /dev/null
+++ b/tests/test_safedict.py
@@ -0,0 +1,103 @@
+# Copyright (C) 2001 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Unit tests for the SafeDict.py module
+"""
+
+import email
+import unittest
+
+from Mailman import SafeDict
+
+
+
+class TestSafeDict(unittest.TestCase):
+ def test_okay(self):
+ sd = SafeDict.SafeDict({'foo': 'bar'})
+ si = '%(foo)s' % sd
+ self.assertEqual(si, 'bar')
+
+ def test_key_error(self):
+ sd = SafeDict.SafeDict({'foo': 'bar'})
+ si = '%(baz)s' % sd
+ self.assertEqual(si, '%(baz)s')
+
+ def test_key_error_not_string(self):
+ key = ()
+ sd = SafeDict.SafeDict({})
+ self.assertEqual(sd[key], '<Missing key: ()>')
+
+
+
+class TestMsgSafeDict(unittest.TestCase):
+ def setUp(self):
+ self._msg = email.message_from_string("""To: foo
+From: bar
+Subject: baz
+Cc: aperson@dom.ain
+Cc: bperson@dom.ain
+
+""")
+
+ def test_normal_key(self):
+ sd = SafeDict.MsgSafeDict(self._msg, {'key': 'value'})
+ si = '%(key)s' % sd
+ self.assertEqual(si, 'value')
+
+ def test_msg_key(self):
+ sd = SafeDict.MsgSafeDict(self._msg, {'to': 'value'})
+ si = '%(msg_to)s' % sd
+ self.assertEqual(si, 'foo')
+
+ def test_allmsg_key(self):
+ sd = SafeDict.MsgSafeDict(self._msg, {'cc': 'value'})
+ si = '%(allmsg_cc)s' % sd
+ self.assertEqual(si, 'aperson@dom.ain, bperson@dom.ain')
+
+ def test_msg_no_key(self):
+ sd = SafeDict.MsgSafeDict(self._msg)
+ si = '%(msg_date)s' % sd
+ self.assertEqual(si, 'n/a')
+
+ def test_allmsg_no_key(self):
+ sd = SafeDict.MsgSafeDict(self._msg)
+ si = '%(allmsg_date)s' % sd
+ self.assertEqual(si, 'n/a')
+
+ def test_copy(self):
+ sd = SafeDict.MsgSafeDict(self._msg, {'foo': 'bar'})
+ copy = sd.copy()
+ items = copy.items()
+ items.sort()
+ self.assertEqual(items, [
+ ('allmsg_cc', 'aperson@dom.ain, bperson@dom.ain'),
+ ('foo', 'bar'),
+ ('msg_from', 'bar'),
+ ('msg_subject', 'baz'),
+ ('msg_to', 'foo'),
+ ])
+
+
+def suite():
+ suite = unittest.TestSuite()
+ suite.addTest(unittest.makeSuite(TestSafeDict))
+ suite.addTest(unittest.makeSuite(TestMsgSafeDict))
+ return suite
+
+
+
+if __name__ == '__main__':
+ unittest.main(defaultTest='suite')
diff --git a/tests/test_security_mgr.py b/tests/test_security_mgr.py
new file mode 100644
index 00000000..451e6bbd
--- /dev/null
+++ b/tests/test_security_mgr.py
@@ -0,0 +1,261 @@
+# Copyright (C) 2001 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""Unit tests for Mailman/SecurityManager.py
+"""
+
+import os
+import unittest
+import errno
+import md5
+import sha
+import Cookie
+try:
+ import crypt
+except ImportError:
+ crypt = None
+from cStringIO import StringIO
+
+from Mailman import mm_cfg
+from Mailman import Utils
+from Mailman import Errors
+
+from TestBase import TestBase
+
+
+
+def password(plaintext):
+ return sha.new(plaintext).hexdigest()
+
+
+
+class TestSecurityManager(TestBase):
+ def test_init_vars(self):
+ eq = self.assertEqual
+ eq(self._mlist.mod_password, None)
+ eq(self._mlist.passwords, {})
+
+ def test_auth_context_info_authuser(self):
+ mlist = self._mlist
+ self.assertRaises(TypeError, mlist.AuthContextInfo, mm_cfg.AuthUser)
+ # Add a member
+ mlist.addNewMember('aperson@dom.ain', password='xxXXxx')
+ self.assertEqual(
+ mlist.AuthContextInfo(mm_cfg.AuthUser, 'aperson@dom.ain'),
+ ('_xtest+user+aperson--at--dom.ain', 'xxXXxx'))
+
+ def test_auth_context_moderator(self):
+ mlist = self._mlist
+ mlist.mod_password = 'yyYYyy'
+ self.assertEqual(
+ mlist.AuthContextInfo(mm_cfg.AuthListModerator),
+ ('_xtest+moderator', 'yyYYyy'))
+
+ def test_auth_context_admin(self):
+ mlist = self._mlist
+ mlist.password = 'zzZZzz'
+ self.assertEqual(
+ mlist.AuthContextInfo(mm_cfg.AuthListAdmin),
+ ('_xtest+admin', 'zzZZzz'))
+
+ def test_auth_context_site(self):
+ mlist = self._mlist
+ mlist.password = 'aaAAaa'
+ self.assertEqual(
+ mlist.AuthContextInfo(mm_cfg.AuthSiteAdmin),
+ ('_xtest+admin', 'aaAAaa'))
+
+ def test_auth_context_huh(self):
+ self.assertEqual(
+ self._mlist.AuthContextInfo('foo'),
+ (None, None))
+
+
+
+class TestAuthenticate(TestBase):
+ def setUp(self):
+ TestBase.setUp(self)
+ Utils.set_global_password('bbBBbb', siteadmin=1)
+ Utils.set_global_password('ccCCcc', siteadmin=0)
+
+ def tearDown(self):
+ try:
+ os.unlink(mm_cfg.SITE_PW_FILE)
+ except OSError, e:
+ if e.errno <> errno.ENOENT: raise
+ try:
+ os.unlink(mm_cfg.LISTCREATOR_PW_FILE)
+ except OSError, e:
+ if e.errno <> errno.ENOENT: raise
+ TestBase.tearDown(self)
+
+ def test_auth_creator(self):
+ self.assertEqual(self._mlist.Authenticate(
+ [mm_cfg.AuthCreator], 'ccCCcc'), mm_cfg.AuthCreator)
+
+ def test_auth_creator_unauth(self):
+ self.assertEqual(self._mlist.Authenticate(
+ [mm_cfg.AuthCreator], 'xxxxxx'), mm_cfg.UnAuthorized)
+
+ def test_auth_site_admin(self):
+ self.assertEqual(self._mlist.Authenticate(
+ [mm_cfg.AuthSiteAdmin], 'bbBBbb'), mm_cfg.AuthSiteAdmin)
+
+ def test_auth_site_admin_unauth(self):
+ self.assertEqual(self._mlist.Authenticate(
+ [mm_cfg.AuthSiteAdmin], 'xxxxxx'), mm_cfg.UnAuthorized)
+
+ def test_list_admin(self):
+ self._mlist.password = password('ttTTtt')
+ self.assertEqual(self._mlist.Authenticate(
+ [mm_cfg.AuthListAdmin], 'ttTTtt'), mm_cfg.AuthListAdmin)
+
+ def test_list_admin_unauth(self):
+ self._mlist.password = password('ttTTtt')
+ self.assertEqual(self._mlist.Authenticate(
+ [mm_cfg.AuthListAdmin], 'xxxxxx'), mm_cfg.UnAuthorized)
+
+ def test_list_admin_upgrade(self):
+ eq = self.assertEqual
+ mlist = self._mlist
+ mlist.password = md5.new('ssSSss').digest()
+ eq(mlist.Authenticate(
+ [mm_cfg.AuthListAdmin], 'ssSSss'), mm_cfg.AuthListAdmin)
+ eq(mlist.password, password('ssSSss'))
+ # Test crypt upgrades if crypt is supported
+ if crypt:
+ mlist.password = crypt.crypt('rrRRrr', 'zc')
+ eq(self._mlist.Authenticate(
+ [mm_cfg.AuthListAdmin], 'rrRRrr'), mm_cfg.AuthListAdmin)
+ eq(mlist.password, password('rrRRrr'))
+
+ def test_list_admin_oldstyle_unauth(self):
+ eq = self.assertEqual
+ mlist = self._mlist
+ mlist.password = md5.new('ssSSss').digest()
+ eq(mlist.Authenticate(
+ [mm_cfg.AuthListAdmin], 'xxxxxx'), mm_cfg.UnAuthorized)
+ eq(mlist.password, md5.new('ssSSss').digest())
+ # Test crypt upgrades if crypt is supported
+ if crypt:
+ mlist.password = crypted = crypt.crypt('rrRRrr', 'zc')
+ eq(self._mlist.Authenticate(
+ [mm_cfg.AuthListAdmin], 'xxxxxx'), mm_cfg.UnAuthorized)
+ eq(mlist.password, crypted)
+
+ def test_list_moderator(self):
+ self._mlist.mod_password = password('mmMMmm')
+ self.assertEqual(self._mlist.Authenticate(
+ [mm_cfg.AuthListModerator], 'mmMMmm'), mm_cfg.AuthListModerator)
+
+ def test_user(self):
+ mlist = self._mlist
+ mlist.addNewMember('aperson@dom.ain', password='nosrepa')
+ self.assertEqual(mlist.Authenticate(
+ [mm_cfg.AuthUser], 'nosrepa', 'aperson@dom.ain'), mm_cfg.AuthUser)
+
+ def test_wrong_user(self):
+ mlist = self._mlist
+ mlist.addNewMember('aperson@dom.ain', password='nosrepa')
+ self.assertRaises(Errors.NotAMemberError, mlist.Authenticate,
+ [mm_cfg.AuthUser], 'nosrepa', 'bperson@dom.ain')
+
+ def test_no_user(self):
+ mlist = self._mlist
+ mlist.addNewMember('aperson@dom.ain', password='nosrepa')
+ self.assertRaises(TypeError, mlist.Authenticate,
+ [mm_cfg.AuthUser], 'nosrepa')
+
+ def test_user_unauth(self):
+ mlist = self._mlist
+ mlist.addNewMember('aperson@dom.ain', password='nosrepa')
+ self.assertEqual(mlist.Authenticate(
+ [mm_cfg.AuthUser], 'xxxxxx', 'aperson@dom.ain'),
+ mm_cfg.UnAuthorized)
+
+ def test_value_error(self):
+ self.assertRaises(ValueError, self._mlist.Authenticate,
+ ['spooge'], 'xxxxxx', 'zperson@dom.ain')
+
+
+
+class TestWebAuthenticate(TestBase):
+ def setUp(self):
+ TestBase.setUp(self)
+ Utils.set_global_password('bbBBbb', siteadmin=1)
+ Utils.set_global_password('ccCCcc', siteadmin=0)
+ mlist = self._mlist
+ mlist.mod_password = password('abcdefg')
+ mlist.addNewMember('aperson@dom.ain', password='qqQQqq')
+ # Set up the cookie data
+ sfp = StringIO()
+ print >> sfp, mlist.MakeCookie(mm_cfg.AuthSiteAdmin)
+ # AuthCreator isn't handled in AuthContextInfo()
+ print >> sfp, mlist.MakeCookie(mm_cfg.AuthListAdmin)
+ print >> sfp, mlist.MakeCookie(mm_cfg.AuthListModerator)
+ print >> sfp, mlist.MakeCookie(mm_cfg.AuthUser, 'aperson@dom.ain')
+ os.environ['HTTP_COOKIE'] = sfp.getvalue()
+
+ def tearDown(self):
+ try:
+ os.unlink(mm_cfg.SITE_PW_FILE)
+ except OSError, e:
+ if e.errno <> errno.ENOENT: raise
+ try:
+ os.unlink(mm_cfg.LISTCREATOR_PW_FILE)
+ except OSError, e:
+ if e.errno <> errno.ENOENT: raise
+ TestBase.tearDown(self)
+
+ def test_auth_site_admin(self):
+ self.assertEqual(self._mlist.WebAuthenticate(
+ [mm_cfg.AuthSiteAdmin], 'xxxxxx'), 1)
+
+ def test_list_admin(self):
+ self.assertEqual(self._mlist.WebAuthenticate(
+ [mm_cfg.AuthListAdmin], 'xxxxxx'), 1)
+
+ def test_list_moderator(self):
+ self.assertEqual(self._mlist.WebAuthenticate(
+ [mm_cfg.AuthListModerator], 'xxxxxx'), 1)
+
+ def test_user(self):
+ self.assertEqual(self._mlist.WebAuthenticate(
+ [mm_cfg.AuthUser], 'xxxxxx'), 1)
+
+ def test_not_a_user(self):
+ self._mlist.removeMember('aperson@dom.ain')
+ self.assertEqual(self._mlist.WebAuthenticate(
+ [mm_cfg.AuthUser], 'xxxxxx', 'aperson@dom.ain'), 0)
+
+
+
+# TBD: Tests for MakeCookie(), ZapCookie(), CheckCookie() -- although the
+# latter is implicitly tested by testing WebAuthenticate() above.
+
+
+
+def suite():
+ suite = unittest.TestSuite()
+ suite.addTest(unittest.makeSuite(TestSecurityManager))
+ suite.addTest(unittest.makeSuite(TestAuthenticate))
+ suite.addTest(unittest.makeSuite(TestWebAuthenticate))
+ return suite
+
+
+
+if __name__ == '__main__':
+ unittest.main(defaultTest='suite')
diff --git a/tests/testall.py b/tests/testall.py
new file mode 100644
index 00000000..0f6a9be2
--- /dev/null
+++ b/tests/testall.py
@@ -0,0 +1,40 @@
+# Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+"""PyUnit-based test harness for Mailman."""
+
+import unittest
+
+MODULES = ('bounces', 'handlers', 'membership', 'safedict',
+ 'security_mgr', 'runners', 'lockfile',
+ )
+
+# test_message.py can only be run when mailmanctl is running, but mailmanctl
+# can't be run when the other tests are run, 'cause it'll clobber qfiles.
+# This means you have to run test_message.py manually. :(
+
+
+def suite():
+ alltests = unittest.TestSuite()
+ for modname in MODULES:
+ mod = __import__('test_'+modname)
+ alltests.addTest(mod.suite())
+ return alltests
+
+
+
+if __name__ == '__main__':
+ unittest.main(defaultTest='suite')